gmm/0000755000176200001440000000000013571772045011045 5ustar liggesusersgmm/NAMESPACE0000644000176200001440000000654213467070535012272 0ustar liggesusersuseDynLib(gmm, .registration = TRUE, .fixes="F_") import(stats) importFrom(sandwich, estfun, bread, kernHAC, weightsAndrews, vcovHAC, bwAndrews, meatHC) importFrom(methods, is) importFrom(graphics, abline, legend, lines, panel.smooth, par, plot, points) importFrom(grDevices, dev.interactive, devAskNewPage, extendrange) importFrom(utils, tail) export(gmm,summary.gmm,smoothG,getDat,summary.gel,getLamb,gel, estfun.gmmFct, estfun.gmm, estfun.gel, bread.gel, bread.gmm, print.gmm,coef.gmm,vcov.gmm,print.summary.gmm, confint.gel, print.gel, print.summary.gel, vcov.gel, coef.gel, fitted.gmm, residuals.gmm, fitted.gel, residuals.gel, plot.gmm, plot.gel,formula.gmm, formula.gel, charStable, specTest, specTest.gmm, specTest.gel, print.specTest, momentEstim.baseGmm.twoStep, momentEstim.baseGmm.twoStep.formula, momentEstim.baseGmm.iterative.formula, momentEstim.baseGmm.iterative, momentEstim.baseGmm.cue.formula, momentEstim.baseGmm.cue, getModel.baseGmm, getModel.baseGel, getModel.constGmm, getModel.constGel, FinRes.baseGmm.res, momentEstim.baseGel.mod, momentEstim.baseGel.modFormula,tsls,summary.tsls, print.summary.tsls, KTest, print.gmmTests, gmmWithConst, estfun.tsls, model.matrix.tsls,vcov.tsls, bread.tsls, evalGmm, momentEstim.baseGmm.eval, momentEstim.baseGel.eval, evalGel, confint.gmm, print.confint, sysGmm, getModel.sysGmm, momentEstim.sysGmm.twoStep.formula, momentEstim.tsls.twoStep.formula, getModel.tsls, summary.sysGmm, print.sysGmm, print.summary.sysGmm, sur, threeSLS, randEffect, five, bwWilhelm, getModel.ateGel, ATEgel, summary.ategel, vcov.ategel, confint.ategel, marginal, marginal.ategel,checkConv,getImpProb, getImpProb.gel) S3method(marginal, ategel) S3method(summary, gmm) S3method(summary, sysGmm) S3method(summary, tsls) S3method(summary, gel) S3method(summary, ategel) S3method(print, gmm) S3method(print, sysGmm) S3method(print, summary.gmm) S3method(print, summary.sysGmm) S3method(coef, gmm) S3method(vcov, gmm) S3method(vcov, tsls) S3method(confint, gmm) S3method(confint, ategel) S3method(fitted, gmm) S3method(residuals, gmm) S3method(plot, gmm) S3method(formula, gmm) S3method(print, gel) S3method(print, summary.gel) S3method(print, summary.tsls) S3method(print, gmmTests) S3method(coef, gel) S3method(vcov, gel) S3method(vcov, ategel) S3method(confint, gel) S3method(fitted, gel) S3method(residuals, gel) S3method(plot, gel) S3method(formula, gel) S3method(specTest, gmm) S3method(specTest, gel) S3method(getImpProb, gel) S3method(print, specTest) S3method(print, confint) S3method(FinRes, baseGmm.res) S3method(getModel, baseGmm) S3method(getModel, baseGel) S3method(getModel, sysGmm) S3method(getModel, constGmm) S3method(getModel, constGel) S3method(getModel, tsls) S3method(getModel, ateGel) S3method(momentEstim, baseGmm.twoStep) S3method(momentEstim, baseGmm.eval) S3method(momentEstim, baseGmm.twoStep.formula) S3method(momentEstim, tsls.twoStep.formula) S3method(momentEstim, sysGmm.twoStep.formula) S3method(momentEstim, baseGmm.iterative.formula) S3method(momentEstim, baseGmm.iterative) S3method(momentEstim, baseGmm.cue.formula) S3method(momentEstim, baseGmm.cue) S3method(momentEstim, baseGel.mod) S3method(momentEstim, baseGel.modFormula) S3method(momentEstim, baseGel.eval) S3method(estfun, gmmFct) S3method(estfun, gmm) S3method(estfun, tsls) S3method(model.matrix, tsls) S3method(estfun, gel) S3method(bread, gmm) S3method(bread, gel) S3method(bread, tsls) gmm/data/0000755000176200001440000000000013571761362011756 5ustar liggesusersgmm/data/wage.rda0000644000176200001440000002715013571761733013400 0ustar liggesusers7zXZi"6!X{.+])TW"nRʟKMd[_;zggBcG{jH? )> gmf†7U⤏ J F9).S ji*jX9oD0bh䃣79Co(#(, }VO1z9rW*}6 tl\K"g}5̖s/j@ޟ^3 DNK}-@?q#s=OF#S`lM;'̷[,Q&oɀ֬Pcf2۔}YsxҮsH#ס4bEf@\R ? Wm}'.~a*]Pzq.v\7@=7L#._&H/4k,nv"+%d?1ʼn%I8i#T, N!&I/~;+5>)erj. v=d 25,ϩ_®2~&520ajz6B9 hC 6\ę5^8  Y zVȐN">(WϨ-YgƞFqlp+ ꯑiMx XLe1_oE=嵺e>&QJe}ckMBx Ig xg1lgYc._,<$9%ĢZyphQ25QND_wwA/{M*YjO+{c2v?"x\%?6AFVf<=>ofJ^_-aS>%Cjrhi|<UGOCǃVrv$geuh ۠%V &ÇUOiKXϖ?qYU #*ӓĜݲۡ@f,/v͈͏ JO }BH#:Ӽ"yz-Zl|Z]c`"N:?ܵx2:a[WRp>ݡiv!8B]KTT ;0Ym r (0~Jԍ~F3֓OӰJsq~~ضh马֕mJlx&W x{6! oʔ+IYzlGQ&&Yh_¾,{*TcphZYanx C~g{-b*AjB6bQriT [(]sȐ2/\h;pONC6qU]SX?0Zs7ؚgU'-sW k%:`{Qdƿ[Z%. :-Ju3whϼI:$QK[3͝Rnbffup4|Q ,^XzwM?f1tG_F&BUPnJ&&nu1n mcϭ9+dI“ RZjhmO#'0LK`qIY UBְE"-#%|B 7L{X'V1s`4&wJg 4[t}{WwSdoݼw^>rvL{M Gvgr?+z~?ݔ1˫@7%'AT͓_]^lc!n=md*> z$v{J8Hx'I5XtVml?Zرi ظ|^LϦNEַ!(fҒd~ ^h\ޏO(ꡍvډ-zNWjȣ9#$^YT%0kx[lyzsXR OρhEwA|Xڍ xIS3DrIݭAL>dSl ~ۇ|/x[s'6P吮x{$x+nob,_]ʞxbf!)|1Yl_:e*#]T$xxDOVDEuɒ,]p*vy .DFiĻi%-^Q9 J;P˚-U,uX6rbqXWN8INf#i nRA|cA XVw:ݵFڷLY-#ofs1ނC4в!ykC\gC Vs}B'nw=ln^ $;r5y]I)!f6S6QVK^Q2'(j bI5C+~ j>);-?r;7cL%FܮMB)%sΡNGVe.rFЌ4T ~EcX 2Յ] = 8[.Ki$ EŅ-Maa2* CX0j1xF^;1$` ȝQ)/ZBiiQj}|1 j-TGwH)6XzQe p%?`pf/7s`v<Vm4EZ#k3`EUzŁcX,FfK\ȿ,^gہjVH  ue& -ju9ק#~Esֱ1־ 4^YOZ䳿^W%OD WU+AO. 1\iǓ[v[8;|DNт׀&n3F7u6m~Qvn Ac/ -Dl22/ ZᤏhDA A/>ד`4YwA8''OGp%d_c+fs&G_r9 ?e̅kB[o2h`1R $`n7j^>ƽ@Sg[jv97 1(^^g6@ĕrJT-)wZNJ,u7e۝{7y_|P].K< %K=JS4yRY6-G;Au.(Ejs1ڴC|JgX4}Ҭ _c0a %E<s)3_"|7KK'bQl'^9ˑ8JeZnewM\1~y;iwS& X: ~sA k TRjo[yխCGe9|n鹵XP6L.0 X(U/20F urjE(\AyMI> AmPgQ@Ï2_b4ջ"ņ^rL&.pXc/2j_ \ү9eA©%|@;[q#ǡ(~3d颱zhXz| ajW!L0&gg~|Fæ):iWAۡ +ѓ!\,cHwI>o;ICPP P$qv =4=<QW^]O>x:z9jX.F9\e һ|{QQ+R{*5S j^) MbN&ZL)A2!i6UfM?>rӬj9*!'A{A>Kfn;zWhl=&[B3S-kj^]*oX^ot6s)嫦j,v`x5Ҏ[Q?F x!jlSSJf94(8TGM-oNuUKύ)|5SSig9|#) df Nz5"[j(lѕL$0"dࡓ"0֐\g1XUSW[CΈG FTPkx <깖mkK.S 5 8$ :M"DXic|eώ Ew`lDO7v<~4x|yS(F/J\-] a0I|=6՛h9 s IyQY7T.Y^gQVR/Y5;G891SlZ~u5A#ǷbR%~S1)_~85<҂$-;!e*}KYV-(mmba^˜+llaK̔xwr@C+rpl11^$;܊^tP 9+s$u{3.?5Vd`ReL-5_LD Zt %0AAt=Lje؞HuJnz_.[9[|Rx [N0[10~l՗r}H]LuWb$Yϟ׽d؊FQϩm][zI!A+ =4$q˜YPQo0x舾^֚:ݥ 'Ь/l>&aRB}+>2x=hollѕh=%LQ O-`_ݖ֚p?-E Y>K\!0{d}Qu.JQז(:VY&pW]H"%+<_C ;}AJ$w%n."Pl i&L~˼Fx}V,,^[aO:cO#cbTՍ?Dq.F^ . De#4Ky0-ánJ6 u!T$\ÿec ?ʊ3s_^ Л|߱7㢶"f. a` +Iy10s?{’.h~'W`G(>mrHKtw8AQדRH(XR=#vY+)HS@PyV{JJK6{bǥr#ǧ%DҾ5?gXa;^Dt]>_mfC\#OO'n_Tn<Uhþ@/(KlhXY8-t[S,W5Y溏lEAPe\KDڽS5n'rE fjAorbV}UkScC{哥 aYIs͚c;S;/o\䈶 'w..(#Y =X1br5֜E*/KVxsʹhaQ:8f}gL_ao+*Pb4AqHU= 5JqcW}j_aR8}_H=y9 jS*4Q:Z'NAF0L8w /ຬ=Cgg0z~ِ ,~q \Nۍ 41_0SM!gi@0!u:Z-ev-KbH#Oq`+ZK8v#}xp=tJhMӈS@y_mȬosFE1R92UbnIkFݑ,aL״EU%hٺI٭ӌ%Au{u!/#D*,(m'QUCnvt0~KPtca`νLx4c ;iK3Dv3}O*f>@R_ZނĒљW2杌5IɅ(àm߳4a k+MZ XtGgxqlcXGel|煰dpkRSD:`>kA(7z?qۄ.tg'TcҎF4|NbpthbkKBF<9Gh#Tm_4Hтg_IC1we+LKS⚜&jn'; 4_9Eik4y'&\Åw1AiR`&6ﬧXEdKl s!p1.O}|^ @m n$7qb׋/Q-aW $[I*KJs:TJaدjs5 Ka n,Q`B5sV> NDorP7J0}cP6_b7/aGBh` ;Җt)6ް1h!ȝfBJ mKIxv?nL!HۊxH?N>8ċzupWc0bk=.ebMጋRCuX+yǃNyN0N^;,SE7C%sh=j&>lQA >fpt_1X|ҹYV28fdlJy(\a)ʃèєMD44y֛he'gT7^SzKJFM3wH\Jzohʨ# 8(T3'<[8.>kUrT:pZA!Sw@U'=bQW}ow- 2+sU#Yv9C6ek;)W;<suv8zVC"n B[:*$.- . &T3}!M?^ZG!DRW %Cus_4ih%Q+J%>/D~8+`?[]E"([sLA`ۼ/`pt6P& 㱡ٮ<Lz,77~a,P -86?!_ lv'v-z{~oN ͐.c̴3yvѠi19sL/P+il9o91``~)U,ԭĒdYqѪѮ_K0\c޸DO= 6r["ipM'kM)6~[⥀L ^gPer#nXL EB2 cFLAKlPVɫ5~W ,`/4|u Bv^4HCĝ1m9ĥC,AD NJr/jvo4޼Xd2L+l1VYV,o3GMm`u$Dwh>UhΒ1/P*:;4Ty'ܰv@pf",wp o:d~z=ўz[U1xg^e|2  c{>ԾX9-~_qCA4ڊCgo$Ay:Iptٿj\ zxk+,&iWWjz4a2Qe )gk+R3釫4GzW"ihCu4GK<Vb}".mMB ޵{8FfPB4]y#" AH'#vɒuh@+O m)NFWKm5c :ҙ*Y)6?|3vsF')8=9[;HhS?iƦ3nhJU&cpu谁suOn_Z (X'H^T(z&HbOply8+UX]lT6$LB[LN]Nah S7=Okan W؅1xHSxhzp $,bz/Rz̰PC3,MgPEISY=[gm9֍*ISnÒr7zЂ3{,y3Q@ NV=Z|3CAV6{wR~6Fݻw]J: :|k0[2sE"%g|ahE@ܶOX%P DE|ck˜jM I-Idtb66T" 1{GDÅàe{ [>R߱Su991xj. z>{z_"(+iVvKp&'=dRD]2eo3`Y=F|TGQ"SX_U5CʃFU)(4cJ(cF)N--\mPAc:脱̫B.L"q-iwv=^q*H1ad>{jmXoJ#1 !)EùmWَIZ lo"kZL)(X?Rl%^ݙp-&9>HAilɒ+1@U x?`L\"ab~ɄY"og%uʒ;7o?GP:v20aۓZaڐ;!̆YPYrqַ\c>EKӨRi(Eyd&M+\uȰ/K<4K[67~JނjEWpyS(d,C$'ɯ3`iXV?lzt&NR-*.ЏxW>tDwxa+6, [.3R!Whob+ǂǾG7Q (59lbbQ%{QSgoMI%FMf[q mln;w51 nl;ut1luSDR]*z 'vՐSoWa“sE,_Y4}m:/ܻz9&k[O;d̋w=Zewd.:>փ_/Il 8 :NvWa.[p qzX Py<9 (-+(OsBŐ6{c[]{w=T`3u&6%ˠܬ2>dX.! &Zg$!Uk@peۏJ/E,mns`ڱxڰM:m3u9bZG@;g_A/PRE)%1q Zѕ{)Iѯ(rEgO ~֮|BBi. 3[ƎxeڏUJ3Y}s7T8fӿA'S2-:nf ^@$%ryhSP$֓ , q^`o']S+hM H?P,E֦H,HJSy =:?o7]P~ϠD^ ǥLۙzbˤ3 y-J-'&~˅l=/YCHX;MNK.H" #T/ɏ~I(ږ.M01mNX*'1Kʢ򖴋 4釬B9k%Wwt vl*,f[5nOA=N"u(N7iTjz40oS rq/>k'rfxfgT˲\bR>0 YZgmm/data/nsw.rda0000644000176200001440000001631113571761733013261 0ustar liggesusersBZh91AY&SYH/xxxP|}'Bm->R`m4hy10J?Ѧiɴ`Sڛ4Ҟb4Ҟ1(ѣA=4<ҞMzTS=Ojm2dFiO$OR AMF#&B=56U=4A6z&4 z&OD3FTO5'?SM?RmCj=OқP=#OIS<53I&3(*4fęYЅMBoh.~*CgSr% ;$8f28μtJEIKX[t@n*_Q~~OQ wȎSqGZ^^ٷJZHzuwo| mrǞ^ÖKaQ '@+rR캄v8 q a9?ZQ[ʴ`UսXhAgI 4O&g3ql  c@(9IH2Cf0Gh96Hr  1#E$1=$B`z-,95;|17+[m{I$ G˟ҒMug!;ZWI^!?W&EI*cJ=Aw$}n?zV=Ճ6MwهPlrXI8hrHRBANzDAH vۢf@%dxwC&/[9D"]vW~`Z:}7^bxa^9zϴ'=WqqiՍO89W6 Jג2z(Đ+ϟa2ʩTTy\uR3 )RiүAHKb|S+cBe?Fqޣ`^8x۫wuk/*l|jQyMhvQ4^!mHƫ΅55YBat?hcjSk50{w",E1G l I̯<ή ۼ+T׽Vͱ~hsrK^mxכN- h5t|ۨA`G}#zY\ukwK%PV _kãq0Kx\_N? fj0(Bc8 DNYIN_屗rU O=!W4*5 ֞$w r:>V cm[uՔLA%Mͱ~4ahZ07 TKQ7#iyz}NGa![7Mj10`g(43&"[Bp9|?’I/><,ܵ^ʚJp@Ne5k+d}9+I[2'0E{ڿcP乮z siH ╅{/?utQLn 3U>~ZpzJT?0m*vْVYH_=PguVY\:kK0MDM #_!SĎv0t8ӼI$+;B@] Є0@` Lā@i@ M@ C@60`4Ѐi`ڐ7 Hbb$ 8 B!!0D6L@`DhI HblBl!  nLM4CB! 1@jam@Mli2P!9P!gɪ* hҢMmaH)@hjb!s6jNaD4Cc+Js D$s qs ] `[oI8xӭis.Q+Xrxe -o¸ȽխE1xܼpnOJmLkT ʛX` ++HB lm&$$@ H`$؁1Ch@6m $MhH` h#32&#{ E )H3~| 3CoޢG<>۫V \T/Z" QWѵ{M~ yezqm(1kI0RN= Vc ս!KXp?5fӎ CQ%Q0*-/;U 9EƙƊ>w!lH0f33S7B z3(N||R?y4}WWfv͚ oivSxݛ?CL)J:=n‰BOEyHզS;CAt`>3:!1i~j惚$5]m`Kk\\>c h,>dы3u5v9VbT1Y7-ԋf Q<&8ew,I-[MPyw&+4 ]6: UA :,{8ȍ IJӨp`TKg#j:wGQL1<9cwk%傹e'9")U90eם}bn[h"sS.p@;I~!N@8lly VRTkg,ϓܖ_2 lر^Wqr;イFʩmgh*q rea{SK'T-\%9!sf$BDKE= |"! 3= ( nϛV/G5y$#-k[ve#x#$K8%x8r\_N7nH=ι7`ec M<o<}hRw,̱ML]ѭ2d2YOͫuhrl,-1Z[\E9o00^USS[[q,͖I"ŜbPP f3HN{hQJ,t]|d[102do?U~#2*YZ4ˍ;K]F饬H(\y)x L^Oq̌OU]-5- a=Dγ5*5= BKLFY/#=#cKMQ0֚䑡qB5 V dXi?jɗ{?U%Π;`)@ꚶ>rLOc~CU̾:]Ybid){n^;̶. 9oFrsT"[V{OMU[ 4gݤG cX'DrB#z=o3k8[BG+,D͍6C%lz 5fJʑ_]c\o Uz[Bx UǬ޼OBTVbj@̭xd֢aIwajQ($e{.U+9ndDj\bh?\ Q<% -yi#׶iu38K[%D{>QM}u]g_G\O2%= 041mXWʁf0d8Vhř4"ƍ=M VK̻+| +g:a՞A3K:稈WH~Iᥙf[X|ƺc iN ظ';%87~c1nfra| CHwܯۋʑ'rJ5Qm9rZ:'\ӜhN 'ݾ޾d]G 4ˋ-V~9 km7|*\< .]ɭFH7Bb^ߥcڌKp}OK2zсzh蚹JsNb=w႘;m\2DH kk%,|3NkQe*&[&g2\fP8 H0{x6p*(0v^^.#® aK(Yj%\Jsų̐#ri;xhfկMAͧSzMUYg}.d, pUG]1\$ &(*өvݗRwuz#E.c$}wO;⥼U5tavwbwn/bPH_C~; _W9spIvo ow_ҐM3Te]6%%Jo'wa A"T 7ijIX9]̤N[@ *" ^ko:n]0LJlabm_ ^騩@{`"#n:*BL!.)"'32iE B…=ht! 5HK4>agX21+%7θ˂ar\)b"cn%g`I~B覹[Q&Ls('gKmo7^^N>a9 Nb$akz ng櫭 WዋԬ]AZXqf{DHB 603LzM~sEsFR; 5wlilPqq _@I @Qo|T]BC"<gmm/data/Growth.rda0000644000176200001440000003717013571761733013732 0ustar liggesusers7zXZi"6!X >:])TW"nRʟKMd[_;zkBm4o&ډfsgb52o&-mhÒu*sX{wh&uS4 РxBYžEv \P2YCϞ dy_TjdSgJ7dߥc֠ (h4 tF.]N7D<ФS*q禕M^ݛ4ᛶUhGVz&=Eoޅq rXg1IF R+v!9UxVil !jVDStF˿ՠhN\QFWKF/ŝʻ]*Iw{C•ۜ~q.Js.|+*ާ4 >PDS |zz7taxیɧߑ]P舱i8z췤Is0~* fw`/)U#V92ԌNPX8F1YKle,@9zn%bem\xD?0 Ds.xe.[~CIɶ EpգVSr5O ' a/$Ӻ(@ ۴Rjvm_aFs{4je{HqӅГ7KNȐ?ᖶ3ᝤfO>4Ձ O6(B沌<-]BDH B>4<\m~:<:Arz };sÅG?gg8IT\!{kJ$ː1Tp`7b,g E0N~濱uN^}Md~bܽ޵|}Um?5\v5*,>X?Vh3Z݌hgVVwyىyK!D ZxZ8(ynP(&dNA kݔrk|%Sl85]; ܶpb62I>Tnm}X)O|@Zf஝4}7/J1;MW볕8Cv3s"R8>Mq/_y%$*r.S9fDXguȤ:{KJa4=ڥ4g% GE%|3@pDIfPTIQ=nKLYLbOy-=m܉Ϯ=V맼HsD{eSD~ ߃)Oȼy,ʘ$<&zsKڬ$+EIKP>g4MbK܈Ac6*ZXכFqK[g<`R1Wsvx!!l- F\9;=Bf)*A Z~eW\ntMMz*ŴOmW_z[R}֩^c{`NhV$0YZ1Æ*<{.d!*t_(bycu?)3RDsY, LɊO͘eVA~ڨ.(YAsHMq{Pq&[/)4V.[{;A6 [ N^(gs+4F?}Ȯ ץ~irXB1)`ZIa۱3=o70#L@ۑp-ӆ}3 6|Ƅ]@:֗ f$59nyy)D='qʣ*&+N]V@y2L[d?ܺjE**ӷ9]񢼌S?ju!h(^>M% E[s}%FSYj8F~^Cfw$ ])_1bȺ톷0ߣ!c\%$s+eOjclSWkz=8ʗ;G&FDϪ`O}r3x92T6p9b-v3hjU}u,P~^RB/9}lțƽIЋZ8g(xrJ,!|UY[Ͽ=G_ :D'ZghC Fĸh`:N3@Cq9Rb`w5:~2Şzt-N] 2wumSt s8~"Yx-7jѭ%yɅeG<$o ssݑV3sԞ?' C:a2wDheu5+V,Pr-B;+Da0!?(Vy3iI^#2Ȥ&_""DQJ5?Qt6.(@W8G「YyBlɍ4CAWkhpMeU'oO#vNTFkgy{+Clxu`?<;VhM5 m+e/.1nUr[N؇sWD Q.*f(TU/Kؚ׎Ư0x`ڡYlEFY?ۇ f1$d.tqsXDO[;KL}#2$ D?$CkB~_x%G^$liӀoφ3i"F&BZ\"޽E%Kq>s c9\j=G;,= E;*4 ajY_0AK48U/ECI(,?Xr/@b7cf}kTOgW84[}-PZk4"Qr1ݛ v.yLZ"\{m[ee*/ u^ƏhAsNE+:R1zU(J6ʝ{bbzl6ca=sPD7f@ԵQJ5D.st6/U\๒XHM/z^ LGx(u VޣfO27>,_kX@]k"/U Y'O K8Ģ(?=M \TQ*>+FBuu3c:P5y2ch>d <P+YZ_ygM킇\eU {Ίj1Û"7?؇> j] ndٳ-`~5oN0!<2Uf@헭G ۋ]$_kw&m&3uٕZ G{q/w_gD0u&JXDdMZf-%6RLk[C;x!=2 A|dhtfh"+2O% w-urߤ jcɭD&"؋] 0te,uwd5$ ?Q\0tPn"dFqMĹ %ܺQ. VKQu|DQ[+;[ GON_k6i9̥߰pQ߁Emn@+Sr6N`$o ƑhÚԗi s4y9Ql柹C fIiߨ`S\`E%q6Ч.} *> sn'P[ͧsiAտNs͸.<˹b@m%z%xDZ(Vi,1ֳoȋ-5G?> ^U]b|=j\Cubd|I~#|,ET:(p@7E1qr+g샄9Y!7v5˯r鷺i=KS=hi\6½"P> ln<| E~➿v4cͲt+}w~1:룧 ~ ȳ#WTDTڪLFVY=VaJTe?Cbj^rʔx JCZB w*nن;܋R72{U:&r~-)VfW_F>V6[ZٯM9.5Q^IVqvWJY8)[}(uJ%<!>#0UزpbOSnqt k-шV@6t" s~sgu@0,ǰHV@[y>L0 +8_˨+K+Mؒr T}cJr {\t˾$3@w pY$Biat U%-I=L\\>&Aˎf+vMoTHxMiD&0CX|qs\6>Z+|NȼJi1/X-oQ'(x}؁]tL  )!)dfv\$Rr"`I\E~TQ=@X JӨ&-F( 0/gO_o|n%)b&"5I&+=AUoN:]yb-ؙ/ ?|Shr"%y50wˬ~\A:#+m}3dԾoF**r0*~-ݺ(]w%o, IᇝNP8{ĩD_RD&^by9 EĿ缫j'n a6 EoCB%.kMD .i% L6JhG+PJBʢN: bDIk)M3W $$ds]ЙNZ;|XgZ`Y"Z)}xZ~)6`7 [LZ D虳!]rNsC(PoxT,Uo,(3`[zbq98 V$< F&f?~gTT+*ށ0Ȅkl.o-eZ)E0κ>mLQxL9 /++/1)t$z`aZj œӻGtNn&of5tMB^dzߎ 6 \ ՅXs&e;R%r.JMYN_1=n$Yhc}U'h& cV 5~j q{m*΋sy\(9TMHՏ|>^MMs&5|Ӳ{ffDJ k^1Ǥ KU=e9NN09_EswS5"\ I(`wUm"&qo/\݀,p XS] I.$oO%pS8hGB'  IA v݀n7/+&d,EfBQW^n>x8H +:Vc쓽pJ/i0f.524(6.tx1I}nGI%W 1c~̤Qǭ1&V]n[@Qs;N?\ bp2,zR*s}bY0ztbհg q[o+[@<}h|, J E @r+ES2 jWe.0ޛrAQÄq%4hѱxN.(ͣ+g7msEN{K km'tk_$N͘Q{:}Ъs2*/}J=BJ'v ϝWqaoR)SQ\͋Woέz߭j󈪠Fm'S+JU=%S\ߙڇP5 @uf('+7qF}>/L"8M{=[^2?. *cER==MA Q9[MN,}GCΗߴsB"+;A=13^.8]k3@kNdqP 8e>Gn9V)~O܁yN64E8/*&dIk7V<y CC]} ojsFT2},YQX"2eGQ=9U0qe8XLy>4@^-~q#< >g52ieg-m@f Jk§SZB`%za,p1Ek|<DA/Zł{l~%yY8M2 i kKP8ur["q/bq)Q+ȍ lKt%4-\ y`/ޘ1CC ,N@Leq3Yu ^3*ֲ1zr6Ԟt+ Xd\BvBI㢆2u*``L?N: LrʔtlUHM~rA*' _2X3 -DՉv6*Ӎ9[ xmQpfܐ8x$ҼLq=SUQ/Wh XDpGG,A'DRJp4P)trMp#-5+{sd+*/=2LaM2WiK.vٽ ' 2IyCNVv $x^4OLiRXolY0IH+)ܻ^dzNR},V馘 ]G܃m"JNs'48bAN {ͺ'Yt2m8Dq@̀}ya˵%رc:1 Duce"QOG^>}fPE -"(Xnj-J$6SD.낃57\iJ5d<ڥiuQ.1zy|/V$g^ E돖g)<7ƍZ\olE-o{Lu/K\On@! {_Π併v@)RM%!*yڬahZ%<=p o,UvoBxISJoXTa9B+!` A $TU67mEۂ{t(ÈnP~S*b rDI2|CJ#2^H Z=s`U9Lꥇ%P1;e}oMWpUɴh2a߆opnQxKK*v#ǕMA#cٝ\u'hh|r*f^P;j8 +Ĝ&HjQ_ p.vRXZڶ22ʒ߃и͂fń*F S|3o')kԞ4;ܤ3Fl>=,=#"sRG#I|[= ugci[E{dDr൮wkg %,zp*p*\VƎJXk̍]p&냬mbHG^4yOqCafUrfz5f}s<)E-sPKdT-?g>9Jw 6lj9Nx\-`_cd/1=B$cm8HUhс 8#l쥛u5#)- ~.h7R0g [a|'gk҈ )']gyfP 6%=m[:|+W{0P ,C6eaF/3718$n1ʰPu1Ko+.>~qyυ̋W,uz<~2?fEc9p %':5ʥmWH[6sщE.蹕$cN&Q5F/C-{abZ4%en( x8Y`9i@"7CEq,WJ h ٗezM hX8^d!Ml2![ |%YgC!3 &'hZP0oUA ĸ [`KA3Gm c/}?-\I˞c{$yFĠV@ 4V:8Լ;בBq麢 GFB^xꟆ]o{e@ qQ;9D]X3v#ՌڅG%jϽCz`@'| tAI-\*}{VtQ2N .ջk+gy+6䢣Ca> l/G_4Ku̢IO~!r\o'X>yp7U21%t.-aG{VJ<~ Lv$*~g~CYLUub 1142 $#&*8Qؖe&:g|l}L+̖~8NDu!e;s74.FV eJm{wm햫5mI 1ķkۄ3+ߟƕ8%D_]̹E!IFT9]+D$YBiuU3Y UMkm+S|F1^Iskb "_О:?]̪& M n ʅkHH'N < ?Ș&z'w q&bO4%v8CKg\sDR0`7ߋ.a&[:6'5hHM" ! ~A1iͨG==@;hodJq^aTl MfIOwPhH*ePQ|J'Vږ=+auKo~- eРgy>ړ@%ppq(~ӧ 'q>ǔ6X4&?ITy跰U9YzU^5i!+$G@;\oQ.^h48SviXZej*O?9ec11#tl?cRds=X܉mVa@%V;9&q?|ΧgQ5Vc{ɮI\Z(s@Z R^Ã>nł-)x~qH*2`/7`(_f8E^ۯgXP^r4iDqhPw;i>1K@u IB7j:XcSکre+KÂE h^$MhS!sb+ Q:1 ڊʐ"|QTTUrSG$U4V\;9@VI۠EL7bVIuӎ]p/qkiYi: V;@g@]mK\ %~-Qv2ΡjC?xl EGϾ^Zt\UfQʬ%q7U>(c.T)sA(]3rmy -L.C&p&O(Oj4_!3Fl: O%˾}> .^4/aYLkOEq ' FAS#*,CVC!&gc&y;jFŭЯ5 'MJ˕z{ \%>4媯%u9سK|yJA8٣xxo}"_yGC|ԽԘ+~0}[p#2{~N`+H{4EM/.7Rr?G[mxv 5*bVI:t^ ؋vo1z؅]톳 `^2zG, j\m!HԔցR{Bw1M[@#`;l~XE"`B>3ٻR\lby>3dT)'cp9Y3Ǜ[)ȫljYF DG|4 G SqciU=7Zr{gU1)aCRʱ[3A7uZ?"8?HdNo= ;4"I6}kC G95ʭXpH;5{hW[ur,un22}b,@lcԘ# ,| c>0 YZgmm/data/Finance.rda0000644000176200001440000143631013571761733014023 0ustar liggesusers7zXZi"6!Xg])TW"nRʟKMd[_;zk]1FbzN^!/YQ׾'5'MdgM ‰H$?F#pB-q%8gw,Jʴߚ0#Y{Wۢ2k|ťR+w ^^B,rN'=[x,hNSݭƿUUcS,%/(WMArxk9xDy9́k*L3w&,Eex c0t" A#V#f'S I՜6bQ~$4@H)~ue#ݿDx woBE<̩Gl4kq =iOdZo) /<'nY5^f˔G}XR@V#1F%3Bb8Eqo"H`#"Wij :C6 foIG)(qi2bqT)6ղ |lm#$-λJpmUTf ELj#]ܘ0籭X(ފel>X*Z'9ĵ& J&ɻ5G Qc#\D9'Gӕ!y 'Z*3=(=!іO93MVDHh aq 4u<`T/c ] Ŭ]qJ:0!xjf%"o2 #峕z>3ڡe m>cđ '+hW/}^?Ws?.2$*I%E{ڜi(x|1L(Wb](^ڞ[9!Sg+ [,K{|4 wy~%EQM7!E2Ļkъ &$%% Y,29M>w!Ih:Jlƺz r.XI蟃.w&Y݈밍޺|ppN2`T=ϟ_Գκ'dB`{? CC _u@SĠR^^MyL%"w笴"5ˆ&SgocoKC1f[0ȯsAJ:$Uyc[m?VuZ0j#NYbQ3$$'}ɰ-JS <7k4G09}k&_[z) MA f虉~@tbB<܊X9.k:rzo[B,~!u=KOe ЂYy4l72=XՅ\G~!235'b4 Iry^W[Tx5z{P1}B]k'a=3>+H\4'aKJ+Wa!-m6i*AueѲNm'݉RHF{$MޢFIJSfإTDtﱙ֜D0Y&kl}-4Ɵؓଯns9XTn!EՄ~S6"IH P CD'? ۝vރfҫ^㘽(Cih 6VTriVX9嫎"||$fk ^~ CCeddȆ-AM-~g|#S79<)w)17W2≃ʼ1l&P9۔Q:jꢽ_W!ฉH8&Jp!O n- O $NOhOآy~G(򷗀72hTfТDRWFm?n7xU{!(s=zv* Zʮ;x&*aPn`\BEO {?%nkq! J U׀JM>kA|1RV^N)z@#nOC@BL!`V%$JGOj$ex7v8ۋqi-HEi JJqR4#@6#Ũ o]_d:BբŭM8|O۹1,cFT,t&Xd<␑jqךpOj,QAƇWɛ2im/R+'L \"oDWI^Y] B=\xD*'xLW[fAxOz$Ř3IR2%y?[y?IRNW 1pvoܢH1Nf+ jzel M,1>YGe2{-eB1{Q0I*Tn<='礐OW]Y͵}=UG*W94XݍAU2[ulHG'=(&$ГHj=xͫZ$@Qq)EYj3o}&"]i譸f$}<m0Q*gs2{ zN[ȔQx {©KWR N;X7s6,G}Db#\:{#iݢ{,p (+:js, i̺]hVBǦή<;j™Xx-B0tJ =GdqEFGS6ӃIRf;]u! -s!X49 v)Bs9oN}ECl%kۼ%?U?Ԙ_MpX Qƽ4W@2 `>H! s 4eZWpLUHmX{A^_,xrhcWE+C#Ƿ@.8e@9H:?9}NI3 c Brr!;yt폟A&p0!&VRr5ϓl+J]qLrJp2;қk2:Io(;mR5eȠ5l[=ͭɗ,| w ŠfC.D;oS,#j0g6TDPYana4e@rȃ~౿d!*#c[y*'1kxi.y=ch"Gޱ(4g7ĸPq#l r8&?5]0:#g^6O p_U`lhC*'ͩemCWy-nf s^. >Z@+އ8&Kc7sBgƤ:=P8*Z[ߓY5FMS.@Wxv#C,(O/ QwĎ:%;K `aڳ+s!33ra,|xU#P pϹM5P 1"*[)HmY'kqҜo_U5LVgG³HRӆnfY6h'#&R̆yZSaRْK `vAm8S}(`~^!Tq#/K Nbq ÀY*LSeAU=Q jT:|"._i"یwSͨ!} Z:k{ܩ޹XO SC")̤6} k>UT$%{^ϧWwLR<$r$yH/D4#=]K-I;I骢j"akA0)>'f*Nu_QZ'Iv"=A?-$ j^Bi [NLW AlWV-k~nYĥM9rONBQ*J`WDõ s&pn\b`Kp+?'@TSTnNʵQQͦ|Տp8IU*U'ZGٛ >ެ`h96oDeh\SQhZSg!;~zlL+XffzdGS3LneP,d/u i(tb7r6{Z;HCwI痓52ta Z\M:l>3ֽǎ9 JqffXb̎QJ @+A] ~3z6qoav:eE gijdvnHEF ޫFEW&ZP&o<Z 0G4?hri p̹v`:U UǑ #;o^i-x gZ$SV߾ DjNg!wFnlc0*a;S2e h95ȑV\[&Xk|b-o:0tq-"zv=(T < ͆ ; j;'w^c]+>ďѳB(L~!!1wgiw Z~} H&^@Y=~+yףTe(.iv %*Kz*2Bei5BF|YAh B;7%{|KjY8,Ph7yLsф -3Cv=,olQQf>!Xʼn̴\TfpuzZ>%Yj>tڀx|YyFޤ+N4}+/((?n})'6 ~?2]/nm"ǑUW Wujm+#OaN+|18 ,-f2\&.)+`DkӻCDPRf y(n3i^aÎ!,3.fJ>s -c >=c Mmz6lBPrX\yqf3a_p'eyɳxY2Vq-؂E,gܮ(:\Ukon DaMEJB?FZH=s7?Wɷ+wNSQy\  '9L狸{kUK Ĥ6TsVL`-¡|8j8`'QAkQ&S`\]NbzHEĊ_6vj%?۴ 6ŏ LѺBmR}X {QU:̯ikebz.9Ayn7bHd丷VYag'ϷR>cIoMgy1#VlN6Q-GAFZ h)p;Z^WCzGEeO|I4RAEx}t- K%D4J5iLLХ4~ptʃp!7t|̊!~PZl}/q^' >j ZWi"ݥAAD%V +h `m2 U^9b sҦFR O"%ོ4/|!$Q=e*,0]S%b%qd%0]jW(B3ܢl^7%K[VL KTؤ]PŒЈvC`Qmhi⧶DVkH5ŻavY %^L$6Pbh#*JFbuT7+4FlnU~稏%5~IqؙRMM2TѦ!ڜvX@;Եvy*[W5gg]b^0\j7 /#l<+5`KIix[n;_,Mb"%,9b֣~ϤFx'jkSsWg2߿p}}pWz8HqyjR#cBj\7KqRIr4qI<iEVhF@=Ol23L@m( B?`>- V,;_Ļ]D5p!y\Ā #]_ZW_J!;!E3,%+'i+UPkٞ"M[I$>l9 Q5Hl0/1,* O7Ǻ# B5|ٓD !jrqSp{][FP´D7^UvAÔpIs.!Қ^\zN52פ"P3!;-}$oikjJeǁաb|#LJAU`Ѵ$7p/XP(muJ=Q2]Ȇy| &ۼ@wC %ñ(u8%gi.E=ǘk[Na XzIikM6ը}u 3kԲ?nf32Zߢb,O j*_s{+o}SDC"Ok:~Dǂ`ɍdX$иYeeF@GM .C3YqP:}L73]&7Ao/S*9C蜊n\IN PL8r9: Uj_, jTc >F.PaiSG8[ug~B2UƵ.fg`ەo9+OWGx1)kw()× ڔ363&%JɤT62U8*-S!Ye14)"׆Y"\{Xa1nNk1 Ni[F+[%Y:oq9 N?.ڵKAiNt EFO~sR^Pu K/TG/^&eЮgqCʁ[d}MklMx= t iG8 \K0nC:̊Y*{Hi߬UXw-TUv5@ݓ:y.;J6'~/jJj0݈"?}G 6l4\4-kyMV$ Ͽx jpA2ك5#62C־ v'4, p @/H]2rc WLHH讶M,7;M3|Ѱ " ^g~˧996OmӗS? !XPk#H">gpvωdⰃe99~lZ)Ȉ3IhR_4)уTL7uH?5E#ThU_-P!WH!8s;R#JȦ3CHE]zYx=H܍W)H{ PĪayA[_ݫ\R!3ӍsK:e†*smCGeld 4y ^1d3Ngʰip^U׸1cu G/gnX^~>Zݟg'J4M=u [T&3K͖ZJft"C2L+jiՌʁgP3@*w*4\9GEp^Akt/:?lMh=]n6fM̞)5ֹvW.2^ez?xdPo>H% Xciŝtp>\ !|}W; 4X(Vmإ8Y`EPgsn$Ŭ++ss5*''%@ԬEU@nWz4N JV{)< 5SaXLlpavA@;I;~PQus峆4QH7wUU]`w=|6AC ?bnlJ&))x j#]]ēpn­s+eJ5?  } |NQU|݂(\N| -aO,:4NLVGJEFjQa,Ld(?bX^@R!H4{2L%[.4 nr<,-&|'&|IW^DRdcA`[NY{RїƢB| svvsAMo1 F2 czUs]t9TOsr$ ؟~bFdž.C Aةs%&éf"4ƽ@D?x&IlgߩI1kmLr7s4A.9m6Aln&/aT~zC-EQy%6g7W jqј%Gr|@m_I;\N(Ҽts6TgAҷ,cɳ8hTE3ޣ *ghHb_R}-A㥗Pdt#7Ɩѱ$m˕t^>HRq$笠TZH=B(3T<<(2B=UB_lh$Mb]v-ɃKO/qL67h,qCpCSN֭…&,rV$-ir*W2 6}@hee},ٲⰯ# Mg0K(Q`>I wu(M֫xuH!IndۑJ6<Bk^Me45SΒPemǮA\{;Xvl-.rj&Z,hqax,vN|< E@ȩ஠-Tόϴ$,JAk5Jp%Tl>f=׋DyF=WBi2a 3PiCJMyw8_ys&m^7r䄛cUlν19qioHOq zǣhic3cnPtꬣ"4 pnSZd{ :;Pw`$s:;&NSO&Z*'Yh]P5Y-u/E8N)e`J ^ޕ p&ΐr#N^ȫ ԮP}`|uxQo谯Gʊ`(7RW?.j1P4Uk{j a 1lI>TxU#ZԶ2_0:.hF=_Gh( ^V2DDraOx h# T5"rp=~| Cr}V?xl1f0-ɘh+ٌ6;:-oGaDUGhvrAvm{QCDYyDvCmҧ#YfBH)xٗ?CDDY SK ˇom I9}bW: fnwdpEv7TmBcz|=ʬ;"| /aB!#x0If85m=3Gi.W l20レGMr@܂GFKxӸ~Y`ot%<;߿VVH+~wDd+8soĮ>k7rUu~gFe:c1V?uH.یT} &R9&@iI%8mpNwrS^ǠmXușJ,~\sGXDJ{M  ӣ1#z_7E7c^ Xvo ݖfpiJ;5@$p>wVqAzDjlZ4ﰱ(ݝL Cphqus$=*-RY8fF42g<@ga> N3sn: 7\xm>*6wɑ:`wf׬2_%G>WXO*v*!y+Nd&CÝ:*wV(Zر p|0AE;g)[VJZ-#(}A \3zvm>edX>{g]qg#$y*O/׼0{=^ovE(_I[n/AR{0m 2(_  l ۳fjFU|.DNR'?%<̅c’F_bI'Bp2IsHU|"%oCYOϿ [K;VĈ'N1bdDTjT +O[,*0c&, Ǎ7lT>-\HhV~JmhD'=k KyB^ W3)+O'W DHw=VKܔ Rp)wO`SL|fu}ZPuʸIn[de^`륩>Eѣ+{]|9? >F1R!ݯ_΃ UR[+UY_hy F 7H=!_|[zpKN& v|MP%P1x6mzNug!+YCg€Vwcv}f: Xt5ys . \{HZS$^{# w\ r oRU0 5F-d)^~@W}RQ~k0V-eH-V\J!Ж5{A8dIYو'VaObOMfO ԙ& ՀgFO$A#Țw2jL~⭂7K \5U 7I9W{/ GGF '閺#yVtZDUY+`wX'O'F6PJ]Q5pX_S5a^bNFq/z@(nX&T5Z5*_"q..}$I+s CqCI:/ x,ֱ E%Vۼ2g#5Iza9i~-w1Gg#2}w4ޒe:=KA#R-L%bܷL[ 0)o;H`TFaB^ޢTxL֊"ˍψzH,=[6x&$`fH-Wb.$ZAM-F*"__I܍ZxѾ+8hxplu5)?H 2"mè2T*B^ + D'(ZYg wJ_bƩ[IǛ%#d'ryDXL% l $~.|$H {q}G8}nT/F̑Qp) Hǘl?y{E#Š&MY?q=>In/dzog`X]B X:Y(ՙ>2V-DqD DeV^֓V(H s,Wm{Њ\v-'4Z~+N9r?Ԧ(8Duc\a0P艒 cQW"qM S=aT,NU@ng3gFP*F:pIw*0(f&,` ?#^ {,<E-2Kԝte3Iݵ|XLsWsۘgqPB;m|Wax]Gi!P[q'aAN )A6k]Eu(&b3褲TQpiÓ |_miJXVex#HY6'@nУ>q1 F4i!.ņW8| CBlDu4*cG&fc"x`p&7&`fdkr+kso@H&oBY/O獢DGA_fU g?19]@bOnUpny 1B)~WG9scZ h,_" 1-(E#F} AoCC_4+M?Rzi}O=<WIVWo;V3_Z.Mk1V`0)R`.4nM /':WNW^8TP3cDN+hV zg ꩦVU@$,oLGao91Gg}tY>^A6sfT¤㛄n@ܡ+ꃶp>9Wk˂C%ŏ7fb# M I_A ^'k|z]M̩fT ?`Z}O+IƓl~"bɠGdv>'; [1g oR+QaQP8~20IU]k,I?ZuyY,JTZ.gӂ`>}j][Ev6D^a|ϚҦ&, &<KUl;z#W\6'##'[xԵ]: pr,3U7Pm4irpO~dʒ f{H$FI*qߚS)͉~'~xw%B*`cZ(!w`P]+. ]sDF>\~)@jzt}h βZl22 M^:hYD8C7 ݝRSq;!pĽ_'tǰ\8lf4Ո tp)!~\.6i nNe{gӐOC`@ _"g̀wJ7X:D87}{X_uChl-2-V=|h4d Xn*s*jX "EZ;< Z-e [ @^` XL#Twӡ8s 1g^r",v|RZ)| _ހsfuC5DHVɇq,, p?Ȫ95 ?FhҾunGeO<Y-4 h-4A&  s5qE`[m` R"LBͥ Š)ɻ޹HuqR\!j')lꨄ)Q+sȑ-PG⣝9?d ng3CjoQc#A1m=--vl6زA?xk{0~8m=tBjtY3z`9ghfrW`ಬuXrtrHaT+@;4x7\~GKE!7C181u/irF%!},*\1 .Ö&ρO{Sa4^uoWg {DϦcJs*S2qh㳾#fCAck]3g6W귈r*hT6#V;WCZM_H8nE,! ixk8f@RJ,P j?W yq(*۱НE%1܊ҋY4q< 56كYaJ[oK\b/}ZgI:? ΖE#iﲌE ۦj*#L~IhO3$)`1ANJW29lnv\E%ؿ%(=QyrP.Xm"z@}q:ƊqQxGEH{>j";sCO>VPs}{ _nDݨRɳrcWj(o C1$o|"9_HZYЉm =잙24Q~طꛃ_rq]-Sٱ.`o]4qTTu4sѴ|݇[ZG96rXS~b+nB/':2KD-yvM 8>x$|7#O<^Ni2M_v XR7лւ6"V ~jNTJ!3l*!y|Ԅ 6]W"dM0G>&|T"Wgfe{mT@QYb ij)"&菷(YESvnzKQ\J~4V-ٲ>il/!O6:W.ڲTǂ|x eU\5FZd-q܆ckASkVXx\ƃ{_P8}Umq֮+95n6^nRS5n ͈RR.{P}%Q[A0bfQX2\LY0&F|>>)B8}\=xp쪷6Ų`PU;kaI5:P )goZ|qSU .iXRYp: w[8.F;4!$| 3-lu#EKIⴺtʳCq.; +~rKTo~cNnF?|Wgr̼(F㮓Qa"?Gc4`8y}Wjq|2&!)ѱdspjt|uҀ{[ I3QrF~+iфؒ~8W."ܥIs. ^v'^@hDzrVM~,pU6SŢI/"R>Y<-H',9Ol%9{P TK/~kEy 3̊MD!yffA_B5U7RySaa A+2%˵PPzڻ i+\%mO]r5܌ zqx poilZVRW+3;!/lbeuN 2dS .p @0Ӡa쓹uU)muH%￿l)<ן6ԁJJ @oHMr+oש7J>HvW-!O50\J>D  'c}(u+4]!/N-  E}&S "8LVc z/{G MhmHx\i,y9t5X&<k}-PJ, N'){[ƵVc<{(Zk- ZgGSR:RkQOU~YN^S}MTM1UPD:PEh2}t^7y]  _BpR?VjwijRN ơم{yYЛ5k)LW[4'6F+DxҪ6W|[ØnLpGk>Z"agθ|pj}a a1Pk^t(4f)UP?P PWM9fYVٳ6(w5zyhIioz~(mk. Uw su6il/rئUwp ?P)'Zjĝr:&J|<  RC)ËbTe9=9hEzAZN h'-&EުjLJxF8M:8'Pw[/G14;ƭ<3E@ BEn7.SYqcXVAiS48=J}CG[۬ݝ d 8R{dyw,"nV^/VlXwX 8P}P6㋣644@GAJp|:>I;=#p-U0ۭeT Z!ѡV+1WY&MD"qhSwe'u2ce o0 $M^kRH׎X_V!{|@K&aa3T+M})VhD!K=#I)v5ـ!S_B ҝv[EL}VЦ ~6tTq6A~ьhE0}%p !\7ģMTE/>za͚eMR2][I[NudL @.۔H3 U <˟ AʊwLNH#:n[ ߹(vA'q{"ߛ>;zŮNKe$S2fI%יUBW1tuNAq.<ώj 0ΉfBۍ# *ws.d5n+*NoP'Xh[x'KNA!sKi49x1N:Tˊ{^, 0dEX,d|1VSeyV}{P6K)%͟Km"R"3 Z-ӧVҌiٚ*ɾwzZf^~@~%]$qw6f_ cL^wD]gm:[W¾~ЕUi׃[/J%"!zʰ3IBUM^'43.v1Bk1t6P6h`( [t7]S '9xaLDU6*C.y% :ZoP$ \Ub~ \ԭ&?)'\ X SvɃ OfI){[LRVH J~0>^=uwrثRf zR;5(ˈ̃RUJoRe䃳ꨥWXd}Fí,~jvxPO/d&1ݔ]dC5/鳹NSWH&d6B6`oYzUjfדFT"2pUAL'9)?-h4uCIؒ%lm_TYtsGL\Ъk] 2dZd\(9C-!j+e ! S}\?eAS8l`^nzZX&J: 0 ܥpy6M ;ϦYfRZoM".ܺ5)z3y4e!u3#* kIՋJ˚fRRGS׮$ɭo^W@&{拣q)%n_\I3oJ=SiKoJ& f+Gm<\>Iќ`wԩCir$u9 Hٯw%oĉ;\-9H=,IkT&>Pi57{zbv,wбǜgho uE21V4N,2 oWYZG{_!>Ud$! ywJUnh v)CZXrλ*L 4P3Tc26y؉VGx =2[CK~|  =~?ïHeNp $Q> Vxʾhtkާy1Mp;c)f}'d>{z\[7)OeFi_VɴY[2gL1rNz>ΒpQ22K]zC08,o#/ tK? ݿn!)둛o49Nݩܙ {3R4AJӧé}%6wBץɅuQ'm`/]R"=8L$ʖ Y#cTתT*avNʿ]Q.O]yS2$O k1JOs+e~y8lIJ۰w-Vw5O^x$5] 7QfR!>!Cu}C/;O]U !{f\ReIVl#.-~M$qj*G{\ή~lVIN .kT,8WMNjcۭ#v%(*[XӲsXyE Ew@y{F9É~ղ8Ʈ!jTk7Q^-eѩ8Zw r ~͘ts)٪`~C "vklx6xM[^1: ͂Mn_bb(Gp•Y9##`A/GrݎyjR8OW+R9O4IqcSdyv~φUvL0uRrI7vB`uowv@"u[!C:CјBgtOδ3[IP0HÔV?dg'lplad;)UԐW 4O5ǫZL:RQ~lGQ֎jp fD_`kE ImM+^& PƊP-L"; 2p iD6Z8U+2U8s7DH dOnhoך% Hd QLj# {D'И# CCꯒs?O[LweM<Ȋ;[pxNBѾMÐ>v[Url ؅)]>iL](Re/loDЮbͻ/dn'0δG]5 .>JE"PҌ )a9N\;Pèd`>$˧e8 Hé˻Vg݋_\s dzWypDb\ 猲=jOW oh B>-;h(+P%roJ۬GXŨm\Bkq+22#1͟K,hJ__#@_Y$;Ye>Ϣ8ȄouKS_[>R4Q2ZGsy#i#D:6 )'|buȯ)VmB.a,neDn nt|MCMk*aql i1^n͗0-m`br 'Imejl1q0#[`yc%+EO5L0G8<_+T >DLvpLIRC#%ztGFŧ aE>XGڽa,uF,o |ȟDExd%|&?,1HKWHh Xi0Լp#H f!6*">~/7c9߿;ѥ2LanĘts,"NJ蹶:I`I(osl}rE$t)O cҖ !9ׁN6 wXֱ:Ve\e?ɇHŤ5 rDJ p&kjgcMH;ﺤec`L_s%UYz hF!&j2}{X1Б쭼PBw51 ȕɘ/ ˈ Rrz9)]eSjn5h i~_>+u)И>Gv¦.ZDº yJIޘPh0F#Q|:ވ|HnO6pymkK]ORӕsb#\CWC`MI=jf( )Ħ(sӎ(:Ń ǜqިd^HnM?~u (%gVe1='m: usLRsf XI't>SKIf2Exo|;0'$ufiTp \z3x<ܙ}0RŠopĦY_c,=[Yo`io,pHW%eYe4k)9 0Xf!٨{*=DqشԾ/w L'W.$Q-.ٜ IwIx:xRd̬#חDaƛ%WXD$#/i~ܵ_7jL=x[}8m"i-.Wy~zvg@fN D6cwI7䍿pRw3`THO@S'O_h9  FG?:>| 2?"椺ua)eD!iû8ؕuWЋ5 :fNFRKp\fڤ/d]g1^4U.YBWŢg Ig( _|-Oh`\C4AdvtV"(vG㎒˳F'bgs 3jaN뉧K+Xh!/ƺ |"P$dk&a |3-*c=/+ !ٻ ZBէTq\]mZOTz\Ljm]=p\G`ҰUK]36%^ iiLK8NŞ3L߬Nhr*̽4?==zex- ic+|Tp_F?9E}q=yď*'㧵 C")+JYw?:oZs_, /A^n m,q=7m>9Rܛ%O45Ģ@{}`P3xl kFDpp72k**+ F+fy5?˥Z9,cNR1݇%v3`G0ī'y#V<ɝ:O5D)L&*חt2 ]UWv01hFEr!{zZXdnp&DC3/"(]0=4uـAy|˓:+v1n@Fx'+3c^%0Tq;tp|+sjMj~ƀu ,)3 !z"Ωk0d5,/]!I|2{BDmSٽȼ3O]yA4-Yk vĿ^2oJW!ޘ9h24Se`iP p0N9g we)b+8UY>lҊ}czkT>r]66?˲M$H~mK pkP95D9*lՐ ф$iIR$mPf+yڅҤ6z-[p3@rÒ!oc#  ?5Xң ̹Vscub;H"~FfL })-J;%O% qBK%6i"% ǛɋdD:2h^l U96Z?n=tc#&Yj-B{ wϡ޻8J#fxdfG]Lwήrjk" #Xu nh>$1}% HSS$ikwe>L8[TYg^ ñP)'\/o"k>QpU$~Gin腆ׂ2͖蠕jŭd{_3ȍ63<`˟'I >)旟bВV$N⅞l>~_N{ɴԗZ5K,bW,ݓBKݙZ֯{ggcHwz:&y~&VKtj5w-B99 lʑ WXW6#WFf(K̇|f: Γ,4vB!r6rIkR2kC3.':UB-mΠ~r&5Tog<؟ ƚr97]i1߷rqEY1\Ռ4χ\D6%_zҏFs^ z1羝T=<,N{67`two#'Gk3蹠j'||<"jPQ<1)Yٍu^h"PJ #}%?H*;=tisFv5cX@r!β0}A ȓ B 褝HɾSx\ YEVrdEж~~ aѡ@la#b}o|=ֱ9wc( 8##y^<@Ka BS(^=1m1gjM#͊ẅU.|4D9*g]f}R5.hg7U37/wc4߿CE5cQlf0{8dʧ@v?M})O`ɦ?:(X΄)q$>4*b\Ȩt^K<ôΡjlw~c txGyiFXg[] 1[󉀠A~ĔnAңw2o}OavQf:PMLo&{)zq^8~V:}|#1}et".F]9zeYr?yZ]#"@IɮNB(ks nrmW5 SZ4.K3>A h+5<^Il3~ZlLIyN1qY5p7+7kMF+#RٙSJrYuT4[zVibR1XJ- \7pWmu"ZLJt*{@3\Hhhsـ9kJR?ǪeÙg͕oQ ,Eu <APGz ʨS+/tq`_zƤJQ-۫i&IYnfU ia1]j̱jWT8V%rRbD4'zkoZ,33RCu([>$/jSV4 4%d?_P9/@v{۠ \:#u m/FuUx@x0Vv:*Ap+:(2AC"?hBr:ýsYv4df}E nh[IV . . K-oeJxsSrzrJUɸA=:ZPBFYxg#̫d ;$gcnstDjWOr(mۈ;G.7'NkO2lTV eb dkV"&:ƍny2JQ W+BJR?\6))e6cn-Pk/Ѵm,6pȆ{`/bm @v|7Y`e!XMєtD YUK"?@V:.Z)mbS2GCqz=ז>ah7R]Cukc&U=L13LHȶH)QSfn&d*@.ԗ"":X#vdkl8%yF~#I)E$sAf/ս il1(S![i{)~pn&5sl9jM\kMycUCQg0g*fn윥b]-͎%C/ڈrMmhW Saz͚JDAR=a F֧*0 0Ur+l 3yoT:`aKys: Ie!ub:zRvEl*F$fv_ Un~kW? h*QScnmR92d1% пTo\7LZ>;Ђ WFOа"0_̣:6(嘝=dxpnLYs$pC3Y/<_C&rѷѝs4 N&ɡ$l{ bχN7b+d]p.Fvd[&%ø/brɑum up+Z6:B0 a 0: ulk{YW6g]Pe T]NÈ/%PU.ڊYMISe!8xJ dK ĶϯEmB{XـKfvhgAirh$nFچ'ey?S(ČX"Y1Ⴭ0ErGj%&Vـf=,:# )+b{re`XN?[|"opY_ %[ Jqþ>oն{Jr%34bCBt31ST#(<Y a6( ?qX6>WY/)FJ-ӴTX'"Z.;e 59<"^dSE@Q~n/ذi`L)*iӷIk,`I\ZrCz hޭ*SB{V(njsW4!iF ianS6yϫgyarMKor*:洕lJsԉtG7nMVn.f.9=i6Է,>:'4bS}zc9%&8ҡM䃜_>Be F6M꾔ɤ"kҏA'mj1طxJWU0Xr%~5 dC,6!蕘zqhG(C 6) k8Qq S3  Hf=c#oC6RFծ0PJFi5;$(._̃Q>:f]6$ul2] 1y¢B|6E$CW.^=Xm "氩!JQ4nyFWzt͇Z{ȃ`h&c@`XN]RAbxkǀTNyM)M3hi=u{*j\1=JcsmV.`/BڥvbL"LC~ke8e-X.[xٿgbzm& !3D)#(z#xt5Tk5; iVŲ>H "L^-GgҰC<z 5aa9Tu[B:a 2dB4JZ [{0r¢{t7BU8 ]R0 s/Ov,P0Ti:Y$a6 _Fp}#X5+W}sXeAKK$щ1^F{d2S*׎DWCeFo9 !8+xvd:\ԏN8(Í>ڄ%X^It@ABz ޮZY+IB3FB'լ$7KZx`^P(C.pn7J9}Xs + gX?q8^5s2bQmpA.9 sBuj*"(9%]Qf5"*7$~ ^oT_׉xm[~[cBA,47c' u"| q>f'VWf]TL_6wQ=?B y{mȫS!\Ed^Fe᧡n2C1-Bgwߙ}0}9+8J/㭻}fQZhX뮂z|Iбb@7"Cžn P#L2lkǭ9 ح8!eq9#aA6#''/z [1q5{hGJU}@NlJmÀd%pZZ+f}t,L(:±L`k[h}ZmAr YF J,Fy8L,h[ :9;N[eYY&:"]Fs? @>(Xeb}dOJ"0ʘ 95R@`3 P3u;4_TS1#_HeH0@#4첟\u 9.oqM>ܘ?Mq⢼%"j?r+;* Xh2 +^ٯO>h񥹋f 9tF@ûkqVs5`#/JggG=Ά9Q|fCscˬ,>}`;δvSk a4r y1НL)Z8)OiheySn?!e,,lPެe$jv٣NtD/Փ{7N؎CW [(dOYՍ5j-P;tZhzgF9ݍf,נ^-<x9jmalqjHK]eאz*.5y?}\[=nX_6w~L!pt1 F1"!LCǃf&u˖zu1$Y㶨 )F-hF?[^^i(BVYDlYCB։ÀnFx xJ+"z3iꁞ2 Ԑ$mmqۏ M:;JI'ܶ>Q?CR .;<3X0So>L[Qmȴ{',D,OZ*ꔕ~Ry ?,iUF||ѷr%:{!KKm@\ɧN&F]AsRPO9e9KG0᥂ˏSF_Z/S<=EX﬒7US {rnv@{7tp OyV˞1l< &d8۬e C}K K'r|b:\mWS?]ws d/t;7gT( NʬF^6˖qbeA8;(rZ\#,u,a;z#,=J{~e*8$ápn"ޜ32&2r721,F;ƙWj#ߋiF/y9#ս9!g$ef` Ay(,־|E ɼ-̬aѫi+8CpVLu7*ޅd{upԱRR$]M9/}1{I?ӴY&$pKnM¬U8Dn0ꖳ]«q[UNmKz'ͼ1e4['+ۂCZ!ty.NiLʗM Aݽ0dQp#^̄PٶFRۧJZ TD[,byG6Tԫ'O4}֓+dQiI\FD)4e- ]q6~ XҍWuTNVSac"1Xvwk "COsL!EPw_qp FhԛyLR`p]Æ!B? sb%)$xPbUh"-)zhT"p .t>]ѽoAJGͺ>3H7)`DwEK]2/QG[&w𢡄%++H3Ur_(ͼcjxppln ߾ Nr wLut(,^IP'Irsc_lZ(OAj8N $^w{/Ff6}mv´:g/"'[5o7H-|֟VĽa?sjց{BԶ ̛b 1 N }^=tC 5LeS#nc7⏃f}k (b<& XaN aѽfu8g啵ɯE&"@S)_hX w^zf8;'-VT=U` xNWCJC Z(,3\{ʟK4&o؉$˂U c]h0ʱ 9/Cƹ:^ұaJ*|o6Gt{^O`#Qu3GxDc3iYZ\]3 O>iР"H8+3?Tf-&;B9 RNM}> 1餆0e&9%SΤ3^"qȾtlk2T! x/۶>( Nk`mmnSԸf t>u"lC.W8eڠMz)Re$6Wl]?]h1z I ]bxmB]d vN$kUd;,|'2XHu 1b|vSWt=˽B]A::]X7^q -M6QQ.UjXp|N.p玡wE, vQNizjTӹ yJ>7X15]D}Ӽ[ X[g5vj0(;7Y9C>0]_ѲE4`J?NW ~Yz<4A} ~VKPByRt}N5R<v* jic@)a}Kݓ;dNFRDry+ǰVU.5$l6 /RZ!n{y/LۏwjƽP'=G wZEd'?(tb'҂8:JrE`"@}^-xBł2׋ _fLٯk~g1҅: tnt7Q>r)G?FrkiĠ7\ّUeH\uFOVN:%hjis,(PfT-J{ ^YX#ޢ|qJHLL! i"D"dra0*uyZ;7!m^/g,@hf@[Ut L~+?e?J(62dE +%5RjZ% r' ɽa92+ %C(+DaIL4\u<= 57홗zkjn&NCǠ[_~ҟ_`[ȔZCj.NĶ*&,e1Ӈy~QyJE~Vthv" ~;kY&5b2c"B:ڂ׀y^6* rl$=fRp2UcO[-: bsbn3~`Rs<;~kQ!MsYKeq&-.u8JJ}&Uum5ybr8BݚUKN'Z~"8|R-ڣSORι-.H>M v +^=(uԾpb9N( XiQݙ:2/77n3یZʂ;PpMk}0x2rQS=ek GbHEqXfJĮiW NvώWŒHg>` (R}Q))D 3a!)3M՝']d!["rL?{%]e$@_#ȵ_R4w&aY^ k,01ZX0¨,nH:-2 &sMҁFO.Ԫ|%for>b75iC 9|kB9&؏m-Nk ikŎS_ѕgf<4*z*]LU⚠ȶ VC\n]};ВPx>fӬLX%(֔Jk*RꖧA^R`.п91F?ڬYҀSDw+ReƲBŴϕ喊3v 厚W<(MWDù>,R/C/ʭ59wNU>$BdLP6c" -[MQH2&|Q[LʙڄN4]x :MAa7B{gX NlOI~8TK lUq zg=Kps]q l 殗+_z{JctUlF?6u]bk_ a`1@^a`diդ&kpR pnbqGCR7I/W;xm3Mhp;0M0(X e~`$m4؊PW%꽀{NW:am0FK;KC c9-raq12cJ$kPvS[=g7G!m3{[1Z5p6?kY7Aw\Ee#}]sy)7~vB ^VERE_<'>U*Dq/>c,+j'? 0*-Ή$"[&uL.$+Rۅmv٥`=}PxRR`X%Zq$ZX=ɜ]NľSʯU] Ԍ.SII׌ U*nc N у0jAҁu1?jpCлCH0P<⽬7TIc$?hY}}jƈ(nH71Y<):n"3C_:i}= <fLeȀ Fw zӯua]tTS.>wBPFAAm]_KH`f8HQY_^U]n 8| ?ϮqhdZp>g|Qꄭ_/ /(J,j윾?Įu_d3G+~بEn .&uBÎK藖AЅٽ-8FmYHSdA4 M!`͛gxW1,GnrHFߡ^/;TB-nx{1[goQ8) բۊl-egEV?U+uh%E{X*M'Uߕty dg z5,Buj+숡dTW?1҃E*tBgn3mDASBMb5uf&Pt& 2]3ƀT|W=$jDDtIV:.."H`Fg4ϟd1JDrF.vcE݀<@ŠS\{$ 0FB(k&l|k5#9݅f3DX뛺Jh:L5e@оNFD( c'Xˆ\?j~W!tmO x;$ Z'LH #'|+J}^>jٓQRJ=6zvp@Nim\QQ-w?hF}Iצ#v1Q(z=MAKQOD&5u[(p ?hve.ixxB[&]G@{N, V;5De!ܷ(*Wזkm9W h3#'60WGpyEsOb13sp\^eja 9?CI9n^d}%"0oydߟU|4 oͦEk*.h8`d-U5IU«5B9QG鬝f2c_·b$-LR=PM! Q6c13Ȗ Ep}!Z!|˯Y3M,/D,LS®aF)Fp\$}4˖M (͠P]ӛrgy꼼OSDP%[q6nZ(- CYvQBQA5߶yf#d?ځȞ>H*&j4exb"<)5Qܦh7)׷ґ*u{jjǒj@hayĆ%Mv(BR4ĩX)']/j*&$.;c4^# hDLsf$/.$Fq baW/xdsL`K1]FshЀdiIK33 Y6[7]{: spoد~.RJS/>RJ$YMx\:lG?3,|z,i!%LHs D_Y CLנȃƓŏη(x;G|+5'BwKT-qz0fiu'p+?9BlЩfAO!30NAcg yVWQ`j+jZ2iE@! ԣVV D2Q?`L؅-6Bfg1' bT <ߺ>a1&u[BHd|Mͪ2I vs'py _9ñ˿±;0ęEaQ֔"#dTƙٰ~DG>e/ V:mػ3/LKrM_=LRq'%M .tf!:^6U&zю2ڪQe5^Gd>;Ę:|90cS+T?Ne"xqck-?3Y m* ~]@ Ge0N%BJ/pp)^\:$Sa*96^tf$L 5Ai,~?_r!4֚3[D,&#|LxZ2św%k qz|7'nv vCegp|>i($p³3v Q[Ss4'B苴m3Q3峑bg}0.z+@Μ 0K}AYzDm,NZVq5Jy~`;Woy]«eIgh旻NO N&ƑKޗxt8}d5VX8gXQݞ2&b]f7)0|kװjʿդ͚AK;漢*;$#ǒqA |2+.ўl_o[W $'pKU[/Q?9Tdp mc(#wo-k^v8W K{Ej)38.\lhVYf9t9%af} 5,,#3q=Bpɤ˰%JM~F=<\˱Q&:| 8"1B68.'+K̥QSUvH OZ a*ԖޓBBR\-)s\m.V랥ʿ=xxnVQ- 8WҧN9)6j (Yc꺐=TY L(?i ]?MFL|0eO(~xIo, HLJ\f=a 0L={{C'ΊKY $Ӥ'230cXq"\Li+#E%-%S\&xfX4RO^0r%ooͷ3&Ʒg*ꐡ>Dq h6;8J'  K(xUvWָ|52;WC*`2xpKwC~i?P٫JE2Ig@Qk0 lZ) )̔"z9e~QTw=!A<ɷ%z,.y?$$U>abvf>&n"i#嵰! 4~bG1F^;WɦUkUC좇;t'oJ@$PrVR($Dw(TY$/Yx-:D\'*+Ό R\; zv3CjذF HQJr%h#h)]ozVt w?qٞ jk?!2Ğ(mc־l):yx)Eɜ;XN,H!V%: t>n5Hu5wgg6UQP<}{=41m5yIm]1-f8Zw|)E]W?(5f1;Js+'jlKe8bE@e<NTao٭NТK*i6|R+&|*OƘ7sA͎_q="6r0Pƣ&(9xO 6գ#1±8Tn?K`y6ogÛsgαص&YvԷ"a"%KvM-G%TEiD-O#}-rWlyתY]ꯪu<ɌA1 ۇCߋ3;2Py>RF>e~ۆO;KI(n U,l]^#r!qKeZw%蓶 ~b!z!M_LHxti.lk)0 6"$=+9 wOwȾ!#3doZѾ~@ $^\s۸wT ИdJDJCrٸQO5￝}3="K̂ 頀D .ѷfrVLXU^5fDv}duh?5+vϰ I)@A &zGA²T 9c1e9zZKYi7Qz"5$b2w#?)N.N99\I%bt!EƸZ@+?F?3̰b+pi)i=Ny]LvmHdcueW5+XAUG621xyp%f+7ށ܀-Y6L$E q`Ӊo_q]{&Wiˉ@&0 >^lI1onNwÜ7Μ{ lDgp;%FwVmad:fє$ D&"(Do$wn#e4cԏw1(I:oSId@g[3>g^/65p=- ,bb"\}dp$֦KNݒn v"rpv1JdjaMFQj%/M%b| J ,}cTg˘_i GbΕ3e1qn*(b .XIHSMn)m*}ul8,YSï=$)ZS+>E|N'^i[DB:(*cT *sGmpNtԾW)J~_&'nHWL3=q۲ prN &٪b}SZYʼnYfOl:GXL:!8_mp a.#LJQpb-K4rԌo  WЛĮlJ6bSM'ۜ)% `~˗*@msc'Eh #3cڼ:73?IcRxsbIoj`E֮f0 pN5£63"X-`qg^MX ӆuk!%#~@=")J,&,,?\|<`>Y>DAt; eN򺶢dzÂאƖ||8'+7abM{EO$Њ,;ڨos?F6KY-q18Es9n`]Hn`bR0YiKH\L=?UmtrEŹb79¹8<*XUSJ2kloi.hˎRb`ˉMB1x*O1FWtؑ9LŢZyMe*NV۷T%oN#!,?A}q2hLeŗgަdz:etyqhtwvF8ֲgL*iρbՈm}u`%VzeOb(J C 1]0,yj\'ǜ<@(񫴆m7$(G(=iʎN^yʵ#R{ҫ *F3L)&pd$w ĸ J~)S$xQe?SD59AHOk^Bj p@ݥF{bnq-?"jRnv5"yxzbx!!1+"%N[>2һx)0zBoH1T-I.tcyWu\C@+7GsS5t'/)oFl|40`YNר+ X3x{{*ý :!Ad*|6Cobur>akpȍSw]kw/4DݧL6dBFp:n0jН1`SNeEY`4G:=iۅS7FpD`^)j1X‡qL)_pN&A0˭H:Q y4'a,@.3LAcQ&]3 3>92UL;2ɗ5w0Fd}܍ D:u;K%aa:ҟ# KȜsP⇇V%}w> P|+,fY4?e BY_WiլU3i#@P: XPb0F8,@Qgn ICuZY]S=>\nA\^KOjfJrs"c.F²BLħV!?9m"/4@oJS#γ{dg)/UI>zUItBkZI2qD|GJhHPm>I]wqgVq3&@qlN8un$b+ȹ˯5%\űD?g;*~d];T/JF+ 3.Qu+tܑq2n{~wfӡO5fQ,fWxZɠʡ%V<7 DPu<Ԅ ._HBa i:, Jˠ.eن}aCwSWT7v+qXϼ#gv,iv0;|}Me޼MTu~XVA=Hx?߇J 0Z8o[eY#+Aq?tV ϣ}ff7fhC, }e&HzX.K〳?F?l=8*_u4Ub"$O_JxfI.i?/yN2 ǵM:8*\}̂0jV`5MEj6GTXa_<ˊjgN'YھnZD \J۪}֔DI^S?c!h9lQ5vuՙ S74^E.>͹Xh/KJ[τ8M6`X<߀E YRa\ڂ=#I*"#TdkLmD9_ 1ilA󺐅$٣VFrRu2_ٌٕ-D~)(0Hğ*ݾ\ ej^xjGZ ߑ+FA a6I8jXy~E~fC cvNI( Pł{2 $u93jd? p@.CťiWvȁ"DNG:a@n)+*1S*ӛ/BB$Ujx0宙/Q‘oZ)Mk~`ʖq;G&Yd nRXVQ8(Q)Zvf&Խ(&5!p46~s@k)iڛCB%GYWWۛ8'{-Cuw1Nz;&.~*#doV(\0F\GT%B*Yb&eI뺟 wd,>Jk|C?(2/ca~ ȪB}`<9;; M:~-]g9{Gx)3Iw&1FLL+tUZ R ;FrtƥIa0Il֝u]$6KKqM@g7.{G٪(^ UXud壗ɒ JS*̖ab&hMLaƔ 7wBQwr]u$U5 遏mI }]ZfĚHYS"!əfhns14hd ;KLj /!Þ,LCImvN6oeˮwAܨdz;bOJ=BGyen|==I=#B}\LF;{qqyUk'L"$Z Ծ_&OdB"飿v`u9$55E sa90\+YI> εIV=!n}{*o1hhQs=9٩:7#*)7R JdXT~4f>eɺNYпL4)(Q9Q+ Q'-LLz$ cv!E5/$@b+g:[Fk cVK";Gt-a>(@A_Mk)8dq.رi[~`(;W7iЄYu#6vm}$hGs8 w57<ۖ]O 2A3 KUZV_@zrΟWhVsQs+D^U𜠗r>zU Ć4Ö_<R%@0+#kn˅PeB *͹/ W KnWB8 q)f}]n>V\tmA~g\#h`\ɫ}4^JFwU-EU%Zkay*c/eȩH|g@R݃LH~d<\TƧ0=5AcT:Ø9;3)D>ܾs?aNJЊ-:WfDaQlFvפUI1dm TW1fnNZ7\ V6l0aqFѣG2Q|.sTwu5xGǖmR\ej6^xp^|=HT4Pj+`2ͧe^h:,\?MDlEAdw.9=<ݟ)nɷE'U2 ԮaQ\r#Reׄ/"Ez3klϙ]wOϰ &+Di\f-lCrETp!w%ŇiCݼ~:qsYʱp9l b#CW3cx-K28WvR'|z^V_5i MnFg> S I*ힿ&oZO?ń#Lϒ.+;$++ 82bHMn1_LڮAIs /e^MdUA@]3XΠ'45KE@%i."3)UQhúGV>n>E=sIt@[,-)d?6ouNdiSC, Lg2? ٨AkzGT34Zp!;L*us-_ 69w]i)" q(za>mרz;[taW4 e3ٺw7 Cԉ˃АR50^i^Flח<~]RIi}cUfUv0'q%\lTU{œCLB72T1]};,X}O\}:Q6h>Sh}F*l"_vF3n{})gICƑj{| ZZȄ<( @+렗?F4ߞE("XX) ßz2䱄]@`| -)<;z-՗,m[:_S5Dg%1zi)]%%.*-zɇ]fIf\ | )ֻ+6x_zg|(N:v}mOI z:A({a e2 & dBEֳ>?=o0}W8DH6 r(^\=) 0jEc]Ϝ|¡u{°eD>#Ld/ݑ[Xi.(JQ=f#.{H{(~+[g#fBNo-OJWM  R|%o= j]+NP{h #;OiCKqעQH JXɤ+9)БkMm9b+^Bx~H痻׮썷IBY_v6qI3_g/, t>hWgtP_m< ;5!|1z٢\&j-R8%/apu|Tz43S %k5;뚘v {9srS-}cRρe46Ű.=l+d<( 4ƣ_ ;#y!I=l⟭66rRT^N,W*ҴvbZaoуR莗3W;w]~8z$e*ZD'֨z\Y_:s1lH`,|TV ͂"'HGL# kH|]Yf17Oͽ NrX-cɡxq#W.V4mfM') vUiM;v AP^4Ԥq#xؚ1u׈Z삹_W>*'z 0C {z0ʇjMn6'Q{5Jq2uVC5<>Lx6J7Tĉ(`HXnA/IHrjCW+̨jnڬxEF.Fgghs82EMPcՅ[@"qq30m Ia)){sy;ڲ]P|}2!2%] tn7)3٦?+`))|('ѢD^$45PUVH?P_y"24$&bo;F^ޒubXtNJߟ崳_ºA5}@ȶzWz| .߫{JDՌ=F \iЪإEMm8]UlAQ)GJO67r22۵v?|} &_&Z9mY=ay^e"_dݹoz x HPM[V_T/IPTpHP,Y7}䲵`$Pfw@t}R>G#s wn x3*i?+:h^/E5hś_=8H"\v3Q=[,ĥ@!ċ`1%oo5i*[5,\yK z"#-~W>X>s-M9.aQnnRiwQ;lʶmbC){!Kԕ$>H(nB% $HX"uK{^߄Զ{ oD`:v DJWpu$X*cp`L]Zyį`Ć6*~Z.$JJٜ|Nfc"C7M UЦ!(o!ѤNxZ?-~((k ȃ{KKo67}I)_u|."(TOγ#X B;|&X*؍BSCW\.Dl4TV&XkhBG3ՠTqE13YnB 5B`?!K;ﲂA?4Mf3ҹbq k`ͥQ`sozsYQ!cDwHX3=h5""{+sBH,`#`JJT,x"Ae o]d@vCݻe}j<?K 2x{e1ʜi!p.|+V prJ_ILJ`f=)`?*_"$HsзC{; xŢC!v1'Gn6NB.Ht0č;'eB[Ո^Dꈫ{; '| !ENi\a;Vqbj.5w(XO 1BVAg.*829joR#]61n 载,뵥P/E4?|$.׾DPٍ 9ҥAX$MXS=++jxG t/ZYlXs)]|gXpa.I5;43Fnfԙa>DX-%-a `1l~DZHYZB&yVA釠w %Z~% Q >OPT.#KW V@EDWzR5R۰2K:^X":D6-޳S[gpf@YǑ{g0S,flJFh9)VsKx ] 9s$i_UM -&`b`]?@t,;ׄm F(N1%q閔}7\&ϙ O(y) kH]k4t2l0JRڜUf+JD&,CpNي$З#ńՌ|VZN{ Yڽ^3z2R9a$;-uUodš"K[}<;D5~W]^\3s|*Oh2"ŀýcmKG(u0PƊ ڎ"2n߶ř&+a( $(✲]C:M*muqٰy]ǵtސw4EtG(Yy,d%w( 7eNr!>mvp} #SFBM%lI5#5geK$wRaRL,qT''aǘR[/3Ԉص9j>P9R޸[~Cua3w 78, "'v dag"gŃU'-~Zb5eU Y7 o&"Iɋ=TbI{>kM>;(= =)I/gޓY K^z(b]iH [΀Mn;kB6(|_b~;C1OM"=@QGߐa] mԵy6#Uq| Cn4br ,54 ۸A7=!>sMe&,u䂗T<ـx+4ޭD~";*ȺR4YM 5Y^ ~9ܩDBoLft負>\)=ۍnɼh |4,2b-߫s BuKt{;1/s7ĠqlyjY( _/UKׄjJԫS%&P3n a돡-: Y%\%fYOU!"P-6ݫ$5L(6dTxȍ}3tv̳un/O\Op++m , yq* uZR} (8Gs덉žҢ)ΣKWC XƍB$,!Cn RԠ {xngr̫^`FZ$T^{EcT_zDNY`a4*QAtVme啐)qwZR:,o!H~h|rd\'kayb{[OVJ#paE ιP:ӊw17$Ѫ,~dH),xRfAB$!Bhf~n$-L'D_HX^Zks}H_Lzq:3p *Ƴ0p_؜tE3嚖独n3 *Ps?fģ.XBߔ 皊9t >`A:} K*6+OΒzrsatu>oI&t|s39r5FH ǵl?(xfK*0OC7yy,biϛtw VGVZѧY9)I CMĠCC\Hd!rQjN0L]ʌ_BEX)VmsG=wY wJ}8_GeIpƋaIj>ȍA|fgݍ/"Ի׻_93ޚMI9)zĠaqp<޿nՂ7˿TE\acK[89SqgQozf" 6|H\ޣCl"DlFFTbKoAȯH*cNPg@^I ~F4v1fJ [YgzrԖ \߮Jm19`Ջ6=E\;Ě1xT;ۂhVgsP0]D^ȣiHӟ2aeDcZ20PI2+т9b@e5PEe&'`9ȄNhf~բi@%t^0"{Dߘd,qF}vP$d ba)S㒐J:\ƽ fU|3QHNGSQ&VZ2)'H{ekcI\| 0o섦fVG)Q_@dt/ŗ5pbiaV$Hwቴ̰Ҥpܢb,i ^u*W: CQNٞM.$gdҖ<=u}N"w`CF&q}&-$34RIDA>Q =)+m@!bsjhN:ww_Uc:S [:;P9SۮYPX WBFQ P¬dB)zwZێѩHc"r #b0+7PSM[$V%\&/ U3&͚#FQ&dNqJ:ul[мd% 4;O-BN#l3\4r~QEkogE lM4|WM3ywH&Ltc+Wގ)O.x ](HWXԤ)6*ڽ4ʶTuEjXŎ~aRRR\ |_`\JJI1# \GuΣ<:'5wcѝo*h.x;.`GDP+Bඹ8Y_QFWXiGw`kޝ};ߢ)y2kD"s"wNX2} bwWשI - :f uoLڻvFy'Q;xY{uH3-zLyAJǚ(2@I:ƭ0>FI6DB/7Yn&1vlcEZ7,͘Jmq59|LX>]~s?-nhi92_R{ 4td)X`iy3_/9jn&[j(v0;>W#e+mdC2xw> Fظd *[Tz!߻FITkL;l5DIQaa{eD߆ QԠg5aO%UACB^S6:3=v5Ӟ@|П]J]yh:oIփ [jg)Zѥԅ(G~!58ɪb d"TkFeO0wF%&_C[ЭfWU|{u^'=b|ye0:嬎;7HT=ѧ#Tq&vJ{ÇJ%iTOxOr Y {Kb"9{@ZƳn Uİ)5!C!>`ΆY6%K}(b崰QdXc_sګk'\Tձ?LA@H8x=:#x]2R!40<2VjU٢kjIY^F8PnG FǵmfQۖ!Qmd 71aDtm'F4^S/!ļ+5AIeSDsY O~ғUK dnˎ:g!Mm1|#ǽ\Nk:Etama_I {.07ȏv3uv>"inkq7n9;q{\573qV$cOTZMR&Z'.wUgPCZ<6~EVo4:yd '{mdd7 i,C !+aYzʁ@j?_NSC.]r ťd_m(C mIN̲\hppQrlA0:*$Pqaw##Q"TS⧂d0gED^^JOmj@i)|9T 2էF M0Y#Cݹ#ܣ'I9g*d(H&Q8=,(}eM$-RDuC/~"YpK*ݏ yl 9_!ॶErpWșvm4N5R !+k'Cn /N_c[8F3dGq@0mcHª:8& )b\ jꤛ[Ef(?O۫(.\"$==-IAC,B5&Uƶɝ(Ch(W S/- gyY;cxW(hWukv{`q uVI76@&e[>D6(?Bɍdƕvqe#&sejF"J 'F HÅFpރeu^{zIHЂDhל,$em(7 3A$#nX#4Ќ" FΪHb@J2-|`&m?bd?_+AHɰ{rߎKYѣJ:\Poҷ) &j'v_3Ҡ"x4 i]6jg[D<ә&aLЛ$ S-[<_0S fڣ9u*/‡'J ݁ԑ2i-5HjI`tJR? s[L#UÏTY){W̌fɖ`:4:V9+t̕<Iue€a*flhARX%wJ84QW4+=XhqL TV]xSQ+"xK6&C`=0U͕uHN⬐vkm /i_%@/^'oVXCݣBBKx~g)g)Q?2r°]Ķ& z.a 3}z9ܬ_H N e2kFˋ1}qi <RwKdq 6086ÄRbi3 `*& qLyv1Mw6\Ғ.,qo`ϫZ*aĆ\+4Tj|SPt[[~WM'){&#<7#0ʛY5tܖn5ϱy;3ǷLi2_5F ]ї D_[Fuqۡ"gsG9Lؔ|V&@qِ7jzVai;3 ~P6I?K=kT7PDYucT ZT9}duPbLd{w=3.{ytgMa-Qk_h@(U`1}D(Zx6 }:˿PW C1&Wn(pKfOv%^Š er̂rsl,4:~O(z tzEׂߏ~GڤHU+uԏu\]5anSQ"e\Na~&/^~8J;)0&1b%Q9roMf]Tw"?̸\)'̱HnhiT9W$$" jf("PCƻj<* >xv/ >όP"ʬ` < 9TN.n&PH`ۆ8>PO5㤸#i;j\VF?=I{9N#[cLշdZר{1,𷃴!"Myx%k݇G=*Ȅ5$ DJDfov%w5{fJ}a8I@o5AC𸽣᩺Z !L&iQr"j5 Mo! q/JQX1v&([YD\MrO;$EfK{A9\ynrjxп$5)ƒDz/_PqCtpF]_K8`\UfnܳiVws@ 1ռb ^{z@XB8<{E&U8COmֻۋo9 !ią5o~9X==q<cY} Nu(m #A} ͻ<Q?v(Aeî)# kz)W_uuYӂ׭G֥VF䒦T@Pٶ1^(ڐ`hP~z#j<KF=.)_$,@m|m3o#4!dO]9I wP}?$ϥ4-5⎕p2N9tT n*ҩ#DS@g槧#Uo?ަLتj?@!gM /c\ ":! 蝂bC8B^)=5<ܓPB"dw%T8Њ9FcgKV;%=> ^ưV<Լ`I{߾XxGzOi";a-k48{˅=F]b)A-SO['[-vd_;|Za z⿟r"kࣔ0?|5UK0\{ƫUG4tJ"S03,oYGQ:2+S}r^hȂ?q(ZLwiiYSu :=u Y^Bf3|s ?`_M~9-ưdF06 G %ˁZem uڤcu:r9l-S_]/F0~CEĤcJF;,k:PzoTֱ` }ž_m}SOc{1Of'g$s='Z+ r28 $o`*pn_]w-Iw2E*"*A,H2?-zf_nFE2 3ȉs:]hiR$u,[z׾nKװ{Dټ#, Sj-4ER93JkL>~xM Es40g^- 4m-.Iݴ1 =Y;YcQ8"K3iCkRvwQ7*+0Ud+uiBWs~UGսָ#n!(6ԭZ@[Y:يL%Fڵ$Zќ;[oO>kyp|*M0cL)ã=* gmF͊ElΚ J J$ \4xG+?Tԍ=M2Z VlZbˀo8]w.HCmꃔEslg]Dl}go&ux1(?.W/É=ARo*` ,=ڇą&?੸eUJA73$U^xeGPh04j#*mUWOZU-WjR-uF QUo~Iy,tWy5&ڍ҅johȠ˰/`dȮd&-@2 #Ƒm?;k3(CQ c4ϸ:ΟwVUGً+~uQn*ld+ayi/pK9Y8KGH` h?OdQtmv(xAlr˫ 9fw/T$MR_1mu"ٿ6"z<Ա  ɥ:f,VW jƴ@Jb7e;/ů~/֔0~KS5)e$Nh''{W-ƣ .05^XK6'VHFF5}%Z.Jy2yf %7m9H,o 0'6ʑނQx=\L)yzHE]o5B;gm23إ龠 G1fb6U^[3Lz 4wgk|S5tu> 4tvf]:U Qm!<־:]"G K~aA @*NjE}il[r˔\ϩڅB?s elphS[?):a~* 6RN-{cI._otu=N{L`vՖyɢ]3 ;gYs$hz1>6@MB'a~RyMqGsC)n4%q̚ >  ?dtkYP>B$?=H1b{PРI} :Pp] :vDbLKWnEBou3 Io,N}Aj~OELm5QlӺxWH%f 9OsH8pϥ7sz){`d_we ]=,dدr.mG-KJ\E j\#+],WKoY~uhiz19r6б؎5"P6w3d[u Ű䯦T nG.HɃ$iHq/5jNrlDO%mMuQN-5V$#=uOzr\5^ڬ~ =sHb0Ȕ -yhY^x\$~gTĿM AsxKXI)@[&)u"coΥ[補$~%ɱ Wk%QIxʽ=l-I73>mj6X < D*]X%_xCDgVNsSDD'Vv`b0LB(ߪ`zG|AlUGDNJ#Gz;I KkY ,T،W)A<4zJ 4oP9^gxhA DetMy}Ym(i 1uNm6"g񱕋C vo0=_SYXHCW/ _$X\CIBC-05#P|U"AEf_e'ǻO58~3zno)\J$`ux.|-D%M?WW?ċ$Kޥ^ЃV}cun ZG7}6DSYpG[PoEqIE2;&"XjAf~9 f\OB߅[wU΅HDoW+ΆfA%;?lEkv6 [k ACc"zRDɌkL;~X\~?WeXQ8ÕLhR!)A1E[P =)lc&uZ3YG2X1n{xƧz4[J{C&0QRn0F4L@SYW1O:g>G/ ~ '\ع%ZSy[DF%}śwHHCY/;;V84~a[ 7X0RPÿ@h SlW'JZ/Be#YhЇd4)^!16*⏚J[](?pf w|}qYRGt\»QEY-:ȠBYI8]@ -L}ݒ*,_;J!++] +:ssFMji}fήE,JQxZvI{_!1*ckUQ7Pq||O oC4vikVLZ D}1kj\-R56>ۆ{~J٩!oMEt8Pl|kxM`>Ԝb?hnL1;3a> y%dHu;鴽 ~~2^2e9RwҸMPrH BE쯫?95KX&-#-&/EE">g͟05\2`~Y h(+\ ah Kp' &Sc*NlBK{TÑN:;g\ߖ!%g Y^_Kae3(}J&%$Ͳ׍ ;=ב'kF-pQDecg< Cs5V#6D7xt3^ 3]qR``>Ym'q._<Hn?-!n봐b]nr.nF{kALx@U` j6S@-B{cpVd .2`6k_Q7`m!XP= 6Ns"`L; wlKkIQ_Bպ{X̃!e`N K @$QD\]!}J1;?'AUwWlz{1q<\sG#ǗĔ%\ĸI nX6ItNJ`.#Dey3cJgt1}誤w@I$1y̠?c5b #eDw֏}CNV0&h"sbL%_J]OD? ~t&" ZQ,FEs.~LJ Wb驄tʠ6-<[ !Z3W/6烠Nh ;8Ѹu4"sX=f?{~tAJ_l̗}:!R>)po"/R4^yU IjlIΚT|d*(>^i" XBH-LUT7\'ܼ'F] jL_9^-+2)4&|sP5L8ypD2>bîwԡ.bFU?;N  Ҁad= ) LzFpOGB'A>_*&z%zrH}4 nKPrbFaNB (o!9F|*ߠqN(-BO|`g?EKq4`:-;jf:CV]эm3دd|d[~[oK)O#IS[5_h ir%AƶR9=|1U<uƍx@A G/po1sM!~9kbJ<X>2[J<׿lI8`J SI:|hMVMƈIPc]+Hbyd-ffe6^E2 tmaYWکC,a'ahs[k#'0Ϫ(~NCgdu@^ۉmOvob'^&mH5@An=m:ׁgh mUutIÉ6O Z([,%^5#RYv+ULuXl`Z(%AIwt,On+Y(_rFw)31Uop?2"9@:%X1\%M^r|.x 7݌DTl#>ۄl\UqaDgUڕ܀wjx\lTwda52O=V,`&گqeW O E-˵5&RA'~>柀#Ҫque :fBZw"YD\tvy ݶ0sAm>d *xnc?1-ծy^'v_?ܞs~ܲ9n6cԗݼP 0>d㷖w8\_eFڒs=pL3V@shwgy+xWNrZ[hĨ( e 1ȩ{lD:op-: ؙ{?@vfj}{t]ܒHQ:y^~:Ǒѓǿ xeo p29ȆH9!9h5}يv5Fs*3lG|s_ȜVw"ضv]a7 (F8{b]I9'kC_z>/h#~$։B JOjCىRs iԮ/xĚ!PpcM95$Y(a!Y]duQ$X FT_"-| o;)O,3>( &Ws;!!",0=UЬ&D r RCmF"e@n<9MЋ R q\1Oh]P#Lq1MZ DM!bq)(٘9n4=ΧiM6JOWdE? Dux!1(5Nfz$67NM%9<&ZXrzWa)ɒ1Dw(o4VNBSݬN3˹2-mdE0 #&[!%I h4̯/kj:1m/ߟϾuLJ=^ $ݵr.M|F`YMbLyN@>QM>"ےԉ>Z`5YE>:3gp(DY )K*vq84ua² ذ6pGzEUpl}z)[,z&j A[Y25' T~ L]&BB6)t$-O‚~cHDC^[&+8" XA廬sʰ IސZG2PB߇s.JOYn"AnSP>1bW< H%(.>l⺗h$i ņ n'-Q I{O:>F9N(S*qQm! ,NY[5rF|%;r5[σw?ewx+|8N6F YWe LSP֫&`@2i?3C"2f$+.ũ ^=wGz%xQU2~$R?K" \LjQ\L*9)?`ĥcӇ;mi8@wCo.ե޿ t A'ڇRDB3_xը E@a[#Ot ~?ÉgܥR?a{S?l sUJx(^U'nH(-b}V$N 2몢lcAcSqH0z5 {߲>C"~KSϥ*̷3W5E{\hjJD48ܲ^z^[d?bTY;˳=7Ofhu q /}d ɟ/y+#:#./h=WPPbLcEVMOl}N\-'& 4VMA؎xȌ^U*E>, bBՄ L.b [Q?cjF4o? ލR{܏I[dNuѳ:,i^w+5bdg-ysRwp"ut4%RjbJ:}Ecz6&9xiΰϼ&̹JY UކMb%*pjWRԶRFVϻпk}{7!EU䊣+S]ykux;~hLt/@SFd@Zk@JtlF4 2DB2کrOVɶy:ՄhȫOG4֪CĤ%xs;}$}D[cz_ߓt&Fcl * 7pXWI',e<-pmU]G`Ž^#U4uRf ӂ~ 𛁲èf^PRKݩk>V+&,,/>*/WK *X^;HMpBϚR J;<]_9&r~0#lM 9\.V1&A pѳk?OeCtI!(3t$>B߿C=g;suri&0V g ˺4N|jv&3{bSA5nB:Cv9ιM t-.q4aYQV= -# GiťP>P.tAy7We~4Ŷ%I:oA6Fj12 *xXx$fQS!Ygե8e17 '):f\ţ_Q4#S9=G?+ )&%ouX!7h\#Y:s4!"_,WWKyf2X˪xG ( h٢0-g9WnTS#|/ט hށɃA^[a$S#ʁ2RI.vpXf9U F4dԘmOG3޸3 F&Ui '(A!G6!v5%#v8O<.Nf i&<.ڲ yM4m8e\:R>;9%PO? 8ҙBs%bQ[ܴFu6(Q6Y0bi_.?=[7JiYԉ=.8୧[#1źG"]ɈjsDl/xhSv_۾foSmoiPE!4)3g wrcC&?; fF?A^XWNDK2D*c6/ZO\/Tn^{I+aXӼS |8RHYpiK[&EW'j2dHuB#FLMK~cVAJc"H G5ڳ!_բbN8u/FL` {ܿJkȳƼT0:E%]]Oq%WV+xJ忴S_{򣫻 mId!0m$MJ98RryNu >j߹}m⹍K%_Ӥf)U,oZv?Ҍ?3#Έ?9M.}^O2zwgQmCGQ 4h%cz%ll'F'f0rrj* `{NFCpE7w~BK7vrou9 n,ZKeb4q S cJz^4OZ\$2\|zF ,鶙\ZB X,6ʊWz="ڇb3*74@fɪFr9Tӂ1< 7 9GTlF q[,_ٚC @8_B*ba/hAcVd[/-Ǒ0b+<,2J- 6Tۥr;:Ȓ{`.Gb=[cU2ճ3l;%OM+ƒˁF 3~.-Wa˥b"pL*jg5%R-U^HoD(߅v(wBטN]F{ Z%ut>Dx U1ƝvJ֩-0p=uЖptc5R i ,֝,Q7GVK鱡S+ @~)wQ@?x M!a'&2#xLp6'L?Ѻ*o?{4T %2Hs{(;{d +\֌AEՐͽ@|OC=f:kO&? ʷ'=\L11$MhH;yFCW/3`L.%2:?Ӭz<Z0ox}o^-"+K5?j38[l=tA2/,jD0J5\Q%e2v%mӕXY}>g[$2?/]+( W.T-=(|<%>c i L=%힔eƦ^m @κ~Sg0f%0nMl?cTm<%d/X蔩U`zY]"D d PAQ %U7|”/{PIv"G{y}F<\S>\ERl]c:* Y\{4܀u+.p sDB͌/.c2Hic݈O']7bG0\f[3(ntb =2!s2N?@V<>矀FTlz>q~ YB3Y|hn-SG4Nop w?mjўasPv˺p!^dt12\i ) FB&6DC ÐDbm. Ί56iD<8m3E,AܨgӋ5ߪ*[rQǃv/")1g{|4'#x\Ns/K]!nԨ&!X`k;Y*3z}E\bIǂto 92h-*Ni14:WFꚕ>^ k.[B. *x &QgQ̩5ݺQC/X2-r˼bކԒ!l>{8ۙJZg? _DMw~5smNǠ0'gVWwZl!CEr8r$m|A{áኹُ$t؛xd"c6?V<5wAHz]56v{. FY}lWC(򱎃Ӯ>/m?|ެ2 `TF*UV9+KGŵ 2xI1N*'9[3>kr#ap E|{e) VZjҬ.[ BGzSY}'?\ɉ[-Xj!u*r W $eRWT&M2B*~wåojY{qaZV?sXv/:98 Hc2Ԉ 9̱@i-#b l1A q&Ke-ٰX~!._B.dĔyT\3KcC!brQLjiu Z f*Xs&4jD2S*轂b_L$dCo=n < bۗpCH~aڅ `X 1HSξBV!{A|B7-? {Xx1vd*A=Qi28HecnyzѩMy?s3>[K[w{j< "gf Xawvv9 YBorj$Lk+t6Cn\À%¯YW@ |u+tQ]7-b8 GpM YflZip(lŤ[livhиfIuF.͝k164"$F_l"1KGUW@6d^#QmMt˿lV7bݽeyLFUqHܚw J_Ǿ{bX(Ay[ϵ끊- 9 ~pV~I5>x<\N R!X|wѬn* z&Ɓ̋,5W>L>0ũ'>ρ3|ZY+f mϬ_[y0FPd,BܽlOnfkR.gv3D+5'hZ9 %SeLL~6{vYd;$lOyW>@R%LaA>ݏt8\2 8<\HXad}}L7 }R &:S}^1 kp-҉E'A FHNDLCQ sX rfy2TFO[8 Σ$3+75$^Ş_7}6Z}s ͿIdT󜀍Y޴/]F<((hApWRU.2P< ܬޭ3%M>E˻m0]}!Hs-Jg Q協FUg*O7cg'z1penKa Kc\!1;R v['RZ`ʾo f z\@WũɚrQ@-9z1Z*{"yAVO[ppsCm?4K$}0n_Ek~۪:?tT/GU6P⌋V%J*\fٵ, g{_?k cI~HI8C\,?xDJRH4#|6M8Cn+BoV6_Ǣ^7#1q S0Hd/[<ܽNP(}-pX Z9ـ&:j?JgtOH75$q~(Dm&p Tn0ԢHPOzLT܏k ㄯa3%BoSJCEPI[Fs-H 39ߨp:!Xg>yN T9(dq {&1_g{1$ّMNiuYe-M\PkZ)i)agf㨂FgT-OAxFF9^HK0 %gվb[~"vU,ue`%W[{G;<ɬiULX٘ txbz$f8}1b7h)u_܁o.7LV' sçe FI|PliK !\et`\*/kڇO [2[=k^ՠzxի^)8L-7)"G[W(|I;&oC`㕉[?d21[\RSbr!,Z M͐qF5aONo%"x',PQi>Ֆ(gk>e<:Gf"G[YV1dāfRQ7#u. B,I'9Ef4@YPGcƬ:D7m+JU].yrJ!k}(4&ݨ{$a'gA2,<]_KsLj?%nؒwCCme P8˥7^#=)̀GWVT\.w<`&{flS>#5'/IYe+wq~tG{)c`-Ǹf2~ z l-((%:֧L$ɟY^ IVy`PTiE sA(ri@@ײp=Ct`N2 >޼$&J=x*o{ Tͨi-вlx$WӕT>7ELEkoNB#P;mwT&5&#߳5Ggb:1DheUde40kPE |!:ޜF<,/a$џ"UwR /AٱQSo֪7HǗ#˜Ѯܒy\]l 6uL@|A?̣ -E'*.r7 ~z.X UindOl(2M %ʱ]6֞QGZK>g g?f@X{#l~Td/S,`,qތpzVE^/V*69*H8ʻܙ]4?QNWmUGOdEEV?\ʹCOvۼDdWz6<˔pv Gh[rp0/'Sca -R!QbRD,{J k7-dZ'&R-Ԩi0RuwK?M+c;PHX#Om?>EY"FK@lF8{)`i";!gMj$Ash9B̭ƞa+.OS.B@%`Gn#B1P$?D#޲(od3d1g)CK5fRPG  S*7%8:߇Nឨ#wb @?) OTlPo-IW*ͤ*hpxĉe@QՎVkA He-@uo[1F:&{r:gd QYvq%m* ǷJ'iGX[9t)L&ke h Q=.\Pib:R$;y,#)d|xSmϜP*-=IieWxUT:y ΢%ESe 1y4rX1Dbz91=޻c{'Xʱ/NO>i LvʵY$çaFh|]n&Lb_T ;BtXu`-'lIpǡ>kP|F{.qW\NHl;ݛF2!NfGUzа#Qj&Mf XiwL-2˅o;5 ivRS-U, ?HaKqo4G_DL%i=Iv)WI}QVK^q:hF(:W)\x | QICF5rނ%Z6_T`F<^n)uO%6CvPF)z^@ 92yIL6Sh-09uOƏWb3GR]]PIe'u|)]h\C.֔BA~X~JbK:R))$3^nV*mE#-sݝEg:}ׅF0O~[<ŕޞi;pRQ#=8v/B?0Tx ~P2x%LN(KS:-65- MmgT^Xܧ1@(+ ЄA8U앞;m(lKByˎ+ɧ)+0z7Gf.4}^.J BM,pƃ|KRc&CqI]s?}d Ϯ #q2C5檦~ nn |FhDՠWy[椋4/ ]GF_{x]~ɍd7ge Y)2LRC-kNboHSnJv|/ 8?'U!WIzݏ§*oC;?-o.!F /'ABeiam]]ҽ03D? Y*9uRԺc^&@yDA+2ɰz2YOgJqFWtI#iN5T1R%zМҳW.^L#ׯ *jgh%Y3rrь %í&"޲\lNjW<=OF [< .c9Iu,l*op_3| Z>JRo ʆԢү7$yf+]^oDJ۲p.ciaS[KWG̹MvFS;m+]%60d! x-M׾bg.UV<.duFS3%ط;en>fGӎ'LCU^6ۇ?|#6'G |Q?669yCZع9\9@%TUml6s@ ^6UbK.;|;ג=rT/u[7$5LзMdP3hS P@S!]6E#*ޭ9x\U\PVc^/pT}];bҸW8%tЏ.3&@jy|؞THXRI$yυ@c_+0WJTP3*3x5aG@BJ$oF )~9oӱlQޘn҄JU_H54HILG? w h%aЏ+=-/"Qv4AAU;b`C5**KJ_¶{,jp8` \^Nuq5(7~aÍ )D<?Vg(.Mbc_'w[lZr/i6ǸC6;'Eշn?3.B9G(NfH#\I{;5\?sSWȠ`,JH0FB=q +" z97%agXwt:J kAO#/fakrJӑʱqn-bt29cchL17 b3 @k)kp~:wn<7'|NˑWW%`ȫ<]nS  ǓĈl.9hKEoCā5Yf4,aʯ+.B',a?ipR^o;i!*ΓL&?2H߳o`,ŇhfР>'X%m >=SrYT-_;u/$8-zʜY#&cHuɳRQ~x4ƬKo @ 4{b;mrIWƖ\_rt7kSPHIoo {@x?"\|6ԩ&rqQk1TGQېQ%x"ܴ,'4[W$CDǺIT ~7#7|u@G6 &^G52֬-oMIMh]ܹWv6}(&B1c4V@L $efwC3RǀM;Lt"{E!v7t<)M} iL q:WEf8#k NDƔh\+M@NkukͨT<=-PVBgM߷1s`53';xvSM} J#8Zufs<;==%!܂52EX)k>6VEFl!JYH`[6 >tN<s]4 찔޹x8Rz$w'3☯#B:Tɳ#Sx$[U5w7.8&X3 v"H}tu" YM7SQ$HRq+}8(*s@ѩT|3a{K${?D_(_4%021 @Zlta{_{DV"qaDG 1YWuaa`T[οI>9d>Ern^w|tijlh~Ou–q3rqg]/[Ӽ`i|`1Yw_i3Vi)] Ilҡ!ZisDS[)TӇ3G`wc5C\Ar HEE)k#8.E!V*\y*<+ [cs8eH|MzN&2d"}3I悉%SaG˅\^ (s0աqȨ;*cϏȨD'!=(_ԓ=ۉ C:m~])e==De3|[|Sdi9Gy!$XHuM9<`S1!l^+WU՘=DDl˫׎7  MbE:R\tv&TlbQQ?H;UX5s&񬧐*F>eg.XI!/wJU}Zw1|vIvRe]5PBهeɹKLdAs#Ny_b2k_9±񀑑^gQBW~QA<砃;Zo@LAQoqy:>q63MTixC Ȥ'%fOTz}{c¹̲PڥyIY,zrORG3y6[ :3XWcrV-4ZFFiglTK{b+WttRleXt!/ۣ2}Խ"y V`/znExm@0…2C#̢HBqlĈK3KP5S^eS#҅z{ Df6QWtK|+ېhy~ZΙ&n KTK!(% ZH?߸]9Y4)pG+b{q9I4i+I2b̻Sֹ5R0DRLKnQz|yvR+Ϧj\2$q%84W`%]]a`+$} aVqi,5=l^veEɊZG,aZGOI)a. )yG̊='V[Vl[ņ?Y74.DS4'/4-eC"OEj!bi <`t(n4Dm.c=lڅ8 X:՟7<.TՂv̽i1M^VE#5򑒄a{"^75.7cgJwd2pcTq|2.!\C*]NFP! w^K :ȒE:uSB#t3%'&#!D_LN˜hmMkD,b=WLݵ8NDYr<ؐv?L ʩ2(aN %./E:92-P(Q>bfùfmZ,WK&X;Cb1///Va 3Z@;U錅PhfJFt4C)'M963c:Qc1䵜=6g[JܮnpV%L,?$eݰn:orJ#Sg"At8̀oVb] zW* c` ncQl=lm+3Hor}k\;ZB~V H~{J1E cb@Q 'R;bf xkFrQy5^⯣̇w\_v&AB,2+oصc "ۋ "l' S);R= 9LZĢS"ްWQOpG>ℷlYOEkՙFU A~sn[y(#0r)W ̿:}ЖtY2U'_AU@1zk¬l JUXiW2d5wL1dċEg3B/'h"[ϭ.Vn2:޾1kNnk*n6{w0N~ɲ]t%U>)+x"i}W1ekA>X4["svޭU}%uRr̲E:bﶌJay"Ӈ5cb2#al.L[NBτ ++YZJ9Z_hoe@h=GR>Yg(J3Is=JqS@{3vy?{xK%W ؂j<#u+a#8b4 \PF{DEo`wgʚe_:%JF: PRh4.aCiWtIG\ -LLr_nWd:`b#@^9=b1Å$Rb'[lE*[h\NlE.B1m7;zadL)`2.LW|ylK;cF,x`H׳[wia!7iOqwd?tki9 li&s(ҩ>fH93NX]s"]Nժ@vJNDrSn$ B͈907!Y Lx`ȝ028g@vCu4XAuP +m[f8d4dўhaޜ$O@Җotx[ k6t(Lμewlwzel_Crixغ H F61woq&mWʝ]D.ߑ9AbObW=myP>Z-O {ΰD=~2PJ[ܡ3c`CO ]=uN ti08 [v2yK9M6Yͱ9a8S| ;5&2r&6\0^.KF7ABYVB2\30sO܂yS~<%0_A3zN(+"K/JG` C"r#-bgK1pvqG[ӞoQ;,?.p}'SKR$cI>,K~ୃr1LƊRQVِ<282TP좄0Y$us ܳ7$_ߌz[}.Z*)(: 6Vry_Jkʅ?A.QFXV{)9ٔ0(c-䍼';eQ<,I:mgc#pϓK+G`>e6\ig29vaSey*Ԅm@A4^ 8 IOϿklnp~ۊX(ߩqWjO#s7)^6EAh} ò 䎇,<5tX ܎q^2*i;Rer|c9W*ѱ&i3irw˦Yq_5.h(|s,un>./Y\EKTc kd4J `Gv~Ơe//59 ?/}wUe /%[uhڻZ!vTT)ʥ{zEHLxG?ً`Pǹ] icݤ=D9|wRTA/O0K:GibZ VQxKD;1~?MR/xZ.KC m`(!7b4bJ$aaH8s(QV7xԿMN9 ,G摛}$5sjRe.!uMK(,2pbDT8=_D{] ggfi4aXb4[x1 ^{,O#wV%T R\$.ű9e)}+`:gk#aUYE[42jsm\tS\ڢNr7y4T[#1$; RF+1z¡Dgެ>; q_X5aJVCGb\;m%b0@R{"g[-siT䇌9- 쭿vBU Tˬ#kᖼm Kh*x)Aq5:_|gѼ3<׷og*pFcZDGG?/EIh̘ZmW&tCi0φca`CRCܭw/?a7[",Y_e-۶TE.[|iC4#4 2m{vo-ق~n`Yimd7ηQju~GmMjFu]ɃW ϡr+K٦C/S5!`̞]e-)?MVT5|2"Bݦ9sgSZZ_iJC @JbQ@.:dOCF #!e6ml7pC"ZCd"}^<>M.\>& F dig\:Bh_A'w"UiCaUlO%$Z0LbJߓ6Hi0mG[띔Q3Tk3C(\4'_i:5v_-^-j|>n ²l q1FPDuRG`΅WWZKژymfQS  $3 ,lTG)!^uDeTB+/L:^'Tgl0bkš`zCút,1 Xx31oj 2b(isVnC,u<>0x-M],JTVq/NYv<>C#!:JbHvq$x<z~bA&oR ;V]GT55A,+aN*t4<,_Ԁ}Ag_Ը6,0 ql ƈ>KQJRޑ"RJ1j >vv{W' j@_:nB5DUّ"ߖcB0g0#8?&snQ*T0 v=V8h=T| l_E$jS Y$!O{А(IV-bśJGUtBij![0LrK)uU|%o t7 E hsJ)x+xՋ>'n@qZ/Z /#\k[N'%Bq \"#cOJr]wtE*eIՁ0WoAJXy7:(1B ?Ԗ캢abi^nu]55Ehp䖼=N '/V_l#S X߃3 s֎ZVmǿ`}tdVƟyu/o\rw6L< VR6nMͲܪ.?dA_qO!iu2 Jo91MbK_OH-{KW.ԋ=PBH`4 HI Oo#|t[$vM:Or/vI n>uV@g֖d. z:bP~fȢ&G"~F<%z5IQP-XdjP#s,4j+eaj.PtsKK73VquPK^?ȷ/.<.x['gU09;MC 4@THtXx ,!Q *11և?>>L`:]fu]Ldi$W-2;U+!LD'S%a`S'#9 a8_Ûكaog/tl  <&7?V*𖮟= E&h,9hﰗJM UVV%$c5b` ĂU9ZCuڌNxgF\g()@xn[|%oJf57c\ENr(µe{ͫ\1jJNL9ʋFU|mK׷ }m Qѕ5k/8x*&sy6| x4JX3be; EЬ52i WIR|츨`5ح‰J+R=d'PY]2FJzO]n=}:ڡ~h3}j8:]q|,6>)]섇80هA>ԫ,"T.!{1V@cL##Nq N0.>BDI9S`*jwӅ])jO֬bYhMZ`Jy<_ws#;3_cNAxٖނCp|ů;I"Otqvq$ZX&o\wb+˜=^_KV.Cch.iJ;";ɹ2}7zFhyKnr d:Ʌ0 K(v}c$ӋYkڱ"3,7.h^]3f.l̾G UWf}rW6|1 HO? ]iXVLV TGߋ,WIo3XfWA+wQ6n;-H:SK[qTu߶x 䳹>n&|S{.FZݯB?WFt &ҎpnwF92GOnǶ߉Z8jͪSiv"7S<7욓 c؟xcĀ`^'*0oR6#A0AY>L/ קqm<Wր^ eͷ:T `3D~Lޡ}DV,E_|=ͩ\:cFhkeBj48]Rk`*Tsn88K5 %ƍ-V%^T17D4肯##̮;}sΑ3~Ba %2JZ%v%/MM?oO~7i(ZE (ݧ[ױ̅nZcD8oeO5@<36@iyc'JJq"OY@912A9-yxah"\ep,j#KG{/loc]8:P,3kן]]s-u_uIF's'v6>ՌC<UI]v(< _D^_~SKj x;* L{@P$ݟr4CӠU+tyPH.`|OYza}ƚ\1@gRwW"u="BY*L&ybwGOՎ)c:k.!nom[Pv Ύ]jlW$ \ 5>MYOH:a  DR?c=9,@ECG|8 L!qdƱ'T[B3>ԯ-kg1 |Uc I@s,=gGtk͋AoZsnG"ބZ(yYFzߖz34P{ ,S]8g Y,'M:"3.7wv=4 H|[Yd2kl:9Nu.U/zT4 3M(S @X͈DAђ0Vƶgt60λ8hcjyLE LOfkKURN;!l'œ3-i"S]7T7Kx.N0Tsӎ*D6Fl}u1ߜ>QzBڧud,?eCc$> >at]?6!/_27de><ʹ1%YjO|~vX=b.<371)DUКo\d%#R'[R(q ikO WPZ}րZ0>Y9p&Qodpy$gx1̩h{[Y]>#N5ˉ!a^G솼 00W(답AܐϨ˷ @ݝVH2) rc}=MqObw^eu<3Z߫C5Xo܄r:㹒fD9ޙ<8q;RF=RR7ZAVŸV/z@zQvL7&f-]:L ۼ_`̠R"ntFD]'~YGJ %ymdg O htW`2d|U,5)8%A*#߳YE|h8;x'g9?QH{} 59c) US;k( -P0 h0X)WZ',3X8^MwO#ypxU|0bmQ܅]1Н [mtѩh,Y .[f174Z{nPm}gʮդ\|t1`Dr `0|BEU7a%CիTffWGXjezt[ګ]ѯ9u*:1̓%6- tkn6Gx&ݎ 5GY ; [{́Vk?j.}IE;X4ȱkX9j\ ($3=@O>I62HyM |EV)):".jدT5\r,X=T:H. dE~+03^M fDT4QU>,)̥\}&qpTs'D-8}=XMwWFY}vYqIpyIa95Pܱ㠲cv u2XnTa#!.nw/v&f ͺڙR_CäYdw3?;¸/:Rr׹k{}a-Yd3PGClD>=?Jnv5*KL+߁lX8c~0B(Yi7sG-L[dU@ v찺43KCJqP6fA_2J< Iˬ#X=4^YfH\ c:A 7̷kKG5WӂM#)5%6]u1*iK4/ 064qU:pU9rZ #ЅݺkoZSk듗:TbjݳdpO7_9 N<>knI<)pf b% cq~`3FMqJFsCO|ּk>ȧȺxon|~y2FI^ RFehh$N'BG{Tj(\JtgWn>6/1D/qBv䚩.%|k|]jgh83?Cդ75-+fn&#עdNglsd5`x=kL|~?8Vd].n?9" 4: ތRyb.:kpk8vҀIj9a:K[ZZ<$fh[I=BF5&@" A "vJR]G]}iZj뙮|ɯV;תxz,mrQ%O-IaC\=S?*E6kɴOW<Tu٦8It-#kUx1;dc%|f/:(oKmdqZa*&[ZKLH2,s|&P%'ZvFԴ_%Wâ2GTtvM_82Fsl}wa̱DTܠ=4@y76<:l!`y=R1yH9ePx|07%'u^4{)ZH=կ焎Wt6/ZnD`Ťt{ڴkgR~PI(BvVQ3t'G6w[a8E Md/2D(uNf;)>g4}Qъ|0SfBl N0;cKm*h| :vЙOjr~(_n),nx\W>MQl-MvbT>tMm;r=sx >dc&%J=A1d痓z=22qszeP|k*RQ7u.v{u&"3A&F}8aX) ZvqSi!i M-?v)cm}h2V,~Ţ*,Nۗ.Zc|^'!'RkQffw6'\Vpvdp d"RԷ(AN/pNKKSINd4+8Kj,@ƻs(!A$CҎ ni2n0LT<;؇4H *#ЕITRabn_Fy ;/o0%ʚ n}GK㔙yrf5A/ [lڿ2+u D78!P۞2CȮ]Ȋ.Vvw(`klEQ-rtnE(Lq@N&3Di\:Jehgil\DM0ȑV4Îiy&O ̓Ŋ߀\9kS8=?Ӧ-|: ;2ޅxQXcz䰋5lMr3MÀ7"g92P@" $k̙)vw #c5&Hz yl;k*fu"~o*bAzvIqKCN0eϖ$FRcdC9-_Ry|<%gp/j" \ :_< C~R!=m3zMxd=۾$']h}RXG%@`W)X$ Έ~sy _BM|%|k?̭ Ϝ6à{/ yarq 0}-ǯ\N_ޢOrQOP5.ho85\,ZWp&|["sY& sɦuz}S2״q]S`.yי37%sZ9RNɚV[7[L$6fw,0 _bi𓸡Q`01H8Q7iJ!qIA|wIMsCz5^(T тC !tKw:U$Ã#%%Q\7&!90/b"b.q֤l9UH,KIs)k~+B-g(UMqpř/S Ir?LWmE:ϰ/}+,cqM-b_$; gҢ1产= N_>rܯEհЕ k0?g58t`vK4 ?O^vz$I{~ w|y A8iNy.ɚ8ߓoa؟[ܞJh:PlR'b: WA4 ƹAjdalһ#(,vs0Ps~SmkfgdeB69ZXZ%+sTlX›``CbvN#e$~8Ua𳙘S2C ss[^x:eokhUhTc9D9ٲ!Tф=7o8 +ヘ' ]jEzb ,ĴGjGЬ[/МfS&ȹ˺HSܘ>8Jy{Oc+w+ӛ:Gi^!Mov@K$jC^[^aOP!6ƍݾ)DZ8R_˴>9< $:PK +'_C;I ;mLŐӥnEitB)Pea,'eeRahkk«mKeOh+9,h罉I,qxA:5TlMlG4bœTN6PxәQ8L#&2o['i2r8ȔkKmS uSlT˿} 1ā< : 2-da@A|UT,ZUGZ|AS$aw=ډFZ/! xsޞR@pZ%hNGXJf߆1n\J.djEVo;R bۃ#"SRdv#+HDb軟noşeI24*Yim?j ]ɱYt /\Ĭ.2M>ѓIN*}J.p>]iATG͐{ԃM$qop%)9K*D?FP0e|cɽ? nLT/gR+$|jK1':9}|Rj٬]tL_k{bK4u p+B'O 2yv'NzՈxf@1(Ĺ,VFp<9j9M)$Ld}AJxrJx(2X!؄hT0[iHH\=P]C=Wp0ZGAn|7݅S Q^GN5]Ji@MXI?V(+hҲ[tZ)}SΈ :~ן.2S֍A@KmW-B-j `pI4qF1 $HCĠ3b;cq!R+\U8]',hx5u`sۖoQAPYW|̬ j Q⸣m2k ćɪKY뜥muwLO\LeIO RPPi$iOَqVy]"`wVwº5~ #@ؠRb"t;>dt8/ڳ d̲ra_ƕ8[2+{aL*ٞh7ScAѩ}̰Y-Q]&OuC.苃q2$3.d4r35];#$)5d5K`_0V:w@^E=z jZW+o6af Zl_"قnX̋7"v/w4{cu> ʻy4ᴘ' 1="0Şh? {e+*z`j4xRg0[AqpGz;4U0GB G $&+6}缀T!{nZ<ۗMi@~%iADQ*ɭ2}H<_04d@}G_?2#Y&,,fpf''[i n ƥo!PVDj~!i78jD!$a{\m|b",.݄~Ukp̆D[CRV֢emZ2*ި!Ёp(ViBڎ l`6.,Pʠ'EL> @AI,#TyʽJ@@38iZՌ,EAϾ?BR'!$۠+A ؝ I#i }"2<$p!v5Cp7SP% A9!V9d>7V!-*_O^]HyZS!}䙶PS"̢J0ˡuCCZ>;xȩu<.3z&ԓp%5ؖvbx&x5VJ&Rb/sV+J\1u8S6Գ@t!T%?'xdHD[l/qWq_#l2DŐ§keȔt"( ?>f=wA&M"~ LPy|/ 05LWDr>so4؇/J XAd&'?0pEzWPd4t9]z/V=ol\ylŧτliI!(Q\JqfhxwΎeMq7 V'&ӫ9o W { #p *vtX~% OT+']?%dTHʺ79ڛ*1CgJzcPFN`t̓MWevۙUN@v"?ܲ搝'&=,UҚF|C;w8%_YL#-2[p&W0"A(0cr0i_P kƨƊTmM~2eZ?QᏜY#@«XdQ<`ģ'` M9-1woY#N~sͯ?&rDKSG8A';uhbfS<ZO2Omor2 0ȶR9xYT}@ ܲ,f&aĵ: рM$LG \7b+j Cؓe, &`UYe]f]/_ چ嚶THk-=.s +lx0L*<.,d ≁ >KFi* #Ff|p>$x:/эE{z[su ow8k>F[5&9[FLKԀqM;YyIGb_&[sAdwPhڧZ=I%XYbIbeuB+BUv"Ʀ1(C74?:W%O&e&g)[}Kw]NMtPjeװzWXy(,mu~?e+3eȰ.z#|^/~Z9t\`}^Ѓ˂wܟ]f/@Z(~+Y`YԢ S(]lLeAH?x,-oa!x:g9t(}D 8OqnR쿈⣿` KҺ ͫO&wsJ"&dР O&\ȚW+U+ m'Bga^?t̻:oL ]H'+v`@^x 0ζ4!ڄN:ѠSj?1ċ9ImvXN'j&%-NyTE{v \'gr/<}&&=sXTʰJhJ7#^VQ坙m  .*L^l[#a1>Rr .W&%!u0,) 㽘! k`GBXI=|} 4?NrɞbepCwfw+C,AAh)MCSq}4HN2ye[c&:2RM R<C{`|9{HŤ#|F0!g $mK5pMQiɆTOOِ@c#W(;h2gFjwzjP w;R^YGx>\MН82 k`}^|)q*+4t$\I\YpL@E˺#Ȑk|Mi2qzVo|\a|_Y !{`aoS|/0)@ы,)gV2='%ձ9T6>\:693ym PgeWڼ`i^2AKoiʶ\y*{_0\~ PV& q-6*;H=i]uwFys, ōˠt=Aӣ8U-R賲k蛽phukŒjKt⃰8=6My+.enzfN4ٷI(yU*3TE(=!x/ucsí ˆV~dbuI!l= <;+ hV?Kܱ%> 9жu5s2} j JQ)okP &ҹ Yp[q[ q\WT?lͩ)zc8a/ fw yD4o1-I) *TG'@Y!'2I(JgR,}MLu"zP%$nY]Ƽǔ)4}P(嶤t)k9;cP^U*ɏ]`Rpp;~\ƒѷg{lqhmꮶ^n<MEl5R9Kzke'ګN56ލZRiZyGHUS9J!Eި3H,5[ "\ 1X[CgBO3*Y3"&:˶Ͼ>a|{_,XuR) so%#Y1jȉm&a+@ &õ]BeRƅb`Ib~b+m!fc,(Po)Hq ⧊W7&tBwH5D ;pv4t4REA?rMSb pҸA !MfdGKmg0o53JȪTh ^|yvk&"^ <ڟE*+sJ9 ݘG 4n"zuvUV$ s9Qjچ`SAx.b]g=B%Ӑ ]_y&|kxTo7'1۫d_Δ$nWgNҴÃRG6R4;ܠc#UfPpM ն 7i$-,Х_75iq=))ַ'v~Tx=o+;LӠ }RgYl{VT2WO^*e[0 9ۛbYPզ.p 4ߓGL\evC߿K8.L.vo'7n3#A?o~m!B+g"tK4"IfA:{OT}3\ vՆ"9[Wȧ ~X|YN9^w ~%\G |`2Kr {:P(΋̺DHk"|54s mArrk4FLfEڍ-QM(K8s?Is5,7T'+aN!Qn~/Ò3qBk'p wIF,5<sؒQ#7~Ծ UKTrc?0,w0ݏB^89,evUQ!<@`d1 D:jǢr|>Z}S: sB-eӉݳ%o|7o_ChLy0 H(Sq@ 4//'cU΀b̻>qO#5xWmP&O瓔^S6`ZuڷvvqCP, Eq+:^~ IO] tKVӈPdUz|2B~sm >рI\IaʩWI}i0PH+uomʜS]fplHa3Tï^eH+y# ϠŔܽ -qC5t\֏4)+8R5w~}2N3xyQ$vL`yfp>yψkhoEۤcz8ж._[=Ѡ)BKX޼D3TD z#W3C`1 21PzU?jwB: ~Gebt5`MS`K3l*7 FyIUtk'F#Smt(96 937wG Ba KfP{/otX^AI&"&I~.黜:]7gYc'?ϟOش MQ|!Gz>`6[ c)ٺ GN,ޝx{k55eՇda-D3/e(΁#q|%w3OlTVWFuAu5 ݁^QhTP 6)r:g{(mcz`]z nsZ]cbLJ&Ljfa rX;Κd tZB}B ;ApgiZ?^ "mn+u< gi\OM*8ED$b|HYE_@3_PC= ل!'Yl诬djf&ɡ+5xV#-6#/̮Ū`$n2ns9xLq Ŧ+kTc7 |Sfaׯ/`V '39ȜȴxgGyZ>Aߚ>}@Vt&Fmi3lQp dv>LԼvcIĜԍQ+"Y;_DoWl{3(PBC0Hƚ׋= nx=*VP6; !`iY"#F91zP 5=JYu"8(ٸAϰk߰ ^ަt'JYZ#-+3UȪH|oaNSW3$6F`;MWtQsbVP.ց!#V#W2[!U 뇆ؗӔL!m1?:Q֗y'@$1LmG\ᖖ5ֵ?<֦`r/)3{Z䴦,^K 6#"GS@ElB54 ZOA:Ks;vrj TB</i4|/VȂ,r":ھT5W8C޼f<#(ރohT:G⩈A=Gp$O?}m.Ne`<7Fefy}X^H'Zw|?!:W49 >>ŧNSeOD;33ͷ56QS$TFwLm\,yNm12wKX+tN<"Y+fXھjR7"anG2{TJ|@ᛅPAXv~]'h5fox{8~Մl"1zbB<3/Fbpq:P~yf]8W#!lkb3肀^]XR\9I׿{',\ī%2Rw.1a;  ;{Uu*jv`#xZ%,FL~ů@R9B6/zakJҦg]UV̷ ) 1ZLORup5ufXZXP)K=o޶, MtH YS;Q \h;n2zL"2slV&hytw8x$,gwS}r00Dշ|b<w 9QiL˼ >NP[AS1Uή9S# 99]b3*,6!X_RcwV4W1(!/ UE @5ߦ5ě!DJǿ;}ʩ4C! =K !̼hc{t; ~fsq‚18u5迕CY=P-"p"^FuhtP^ 7hML{p )!((Lm422evuO,7/8Q &-)=4R$ݡ`fgvx%b:\%&swqef7IΤkOGTzr > Rk2zi,qBaSqfkMMuE ta9Fw3d&DZ#1}A:4%`}̧j|*JK,tWTEƯ֡?w4!T!VlUeiZDQm#vp=^"U[D,Hrڻ/ýLՏXpN͊فݷEe6@@X66 +3n+s֫.ZLe;/$۩ ^&4b ij`k?].ьF5={ζFYZڝYs s j{LA&wwD~5\ɼnN$o^4*Ji^_]e6'ALRT\@iAɌK*B]0+qgL9s"sC@&yqT9oAz#fϣud 1 ̔qr1JRYM_Y_H"DQol1ivI#SJ$dVb2YOJF@aJ@slP!S׭O"P6[Ƽgtuë݄2m/cW 2-aѼ1"A-!5̣noO,,(1"*( ׿,81";# b:iC.{,L|MY4>z𛯶GI&UFEJ\@j=FRu|,+J-bʐUlѴ L~iSI` HAOfx0=T 4B=;T p{>'|EծHeHMQ/Lb8ˇgH59]2q-F`Mg+pT8b@()ʦQJGmoRj/r]OO}'Ɵv.dO1֣pG$Ƚ;,Td^߹/[ۃ" ҐC^/g]O %<< ,mT <cQT] 6= );T^{RX9ָ_+e (l!t&EgDf;ݷ=r r-3:}^Rqz5V.S|3TggofQgNzS 5Es~6CT9cuSDŽ{<3ȓ|VXO]|Yጊx`_^?rQ4F ch8ev6D}gSD = 'DN<HՉ#`dژnyA4+_g+ 7 ~-"^9̒n gNK/57 #2UV$:00]9vZYްpvdES"pE?u@Cx|Lh"}&5.|vez'Áepn'ۡ5%Nf,sE;N=vs!$lmr#& nro#4zԱye`?@PsS"+;88OWu76Dˑp@o {?FS-+`x,&8F-bn]|E>ޝqnjd08)_?qQ:O|,\4LY损5EB8G:.\y=@P|BMAVBrRss L6䃗F8pa jNQ$ =-6yj7Hema促4vױ6d&?xJػ\m7{]N榛 YxB}]h9aƃ7Iwm.U.X7M.3XVGknNFw\0ņQ^?3jl/6\ʥ(=Z,2Lb7[X$q=!hV)덭*:cmsUj'ԸK=J{꺽ڄL,g5d^4*&!Ij S>U h|%=tY2hrZ2W<сGlg_1qRxM3aj;)0p][/ېۥ!v|}®xkHfRHMR7#h#o[/{vgb|{4%h\Op=PXjd&NXW1u5+d!UQGJ4 0I91]ŗn3-%$82U KSz&R:g8KMch5̖P^y.ҥmr'ih4yUhemw7V.Zu8`ȋwsT5|[0%͆h{7>JR%x .\c@ys@"[AEm,_8_Q#|C4%4m47JG a\jEwnPx& 4pNMfbM9Hb+"O)=H5MV{6 )uxHɘw_՛-+_>l疨B/ xØYC5|Ow.6جK%ȩm/9joSGpKHck}:O":MvR-``R=\#zbuM1Lb11f+= Aeeή< kʇQ  N&F4t4['\'(4Bi\WBtC \ ݑVh_㒹U@ 7Ė DuSͺ|Z?fΈ'c\S;ZȆ6]]t}d(Qxʺ1 )%qUV5j{0йu =0" ]N&ݶbaE"O&GN~УщXýh%+kYSۮgC1ԅ@f2ZjqT7h igsiDM!iQlהYC\`p\hkU0aԼϒUXԔI[0|zުJ)^w x*%7C2󂗦%;(\NVf7A'|f=ȌBdJ&Csju#]ݟC/Qh:39D.V.Pڌ6iདྷk'ƛa94t7ڶD߲HuQ.SL鹓z#dx<)oXo**0OΝtOYdMϹ& O1BB$p`燏jLT^o6nTD_'ϣ2c'/n~.FK%A%ʷ0'tMH$N`ʙ[Zo6("wzɥH;[@OuQ`ƩjpW6Z[kYhYp~;^LIE'ͦX=_U8YkG\7NUpb{y=8l|؄-]…ЃΉ Ktqzcr9G p?pWׂݣ͂Ha {<s|޻PXObgpjIz ئ(aR# v4h<\CvȏyΪS1X;/N˞ʷė?Ҙ#{hIAKZ%'r9|^%L3nUG̵6R[č4' w.G9T}x RNIF-2zi]$4L ] WGlS\n& l RMR]EϮ #}X- dߴٟ+5?3b(ܰshFjk4~rm*?qKԂ1ınΧBhdMmb:eED]9eޟ9j/!YJs*{IZ\ 4 >x ,x :ZA]?tvDVbabH>FHʌ%ɲZ6,Pg|D,?NBCK_aBHN-IAt~Uйf|7^ xz'*khz5m:5<#v. /OJK"u d#IR\l<3_ HYrZl3Y Oe-bP|d OZg҇~n`ZP a7a!TU4 wX1ެG'[& 䅜w^WcsQhg5e wBmkt YhydD6۾MkQdɑMý efžrLEHͪE3Ub .ֳ*uPY$PiR!&3?}=O#Is~ѩr:+ɰ=v-"2K Yz`?>'ܳz]@Qs|'Jg#aŽj4WbJI7?u>DIt<>RmN'bCbUN߲#^%MSWJrL 63uU);Quߴ}{͋yOsi*&kNpwCXT 2; ,rJqnuYj7*̴6ܸ\G :*lMh7"_8jVhFd{"X%.,N_\y*3 CRiUcp\Z3-0k;Z倂p*z$8} keCYG$&R]LQL3_qWIInn>͹h]F!%qk yNl/ʬ vLQ=[D@T*@n?Kx\mT$i M00ᔭGȣyO4T%K:FX#o{.ēԼ ޘ-eSLS7q_Er >w$^$d(}$t.0KywTb0 $#$w->(geʠO޷9)@i`6fέ/(ꁴ/c Xpz-vs\F#n/XH7D baHVw#u8; $f!{I/Nf˗2W@.ܑ~N3ʿ3Gl 8,{W4Vы7rn5SW4d~T8N"sŘ:R]aBlsX;kvsc~"3":D$4e$wB7Qa?mB.iS!OE@Qpw #-oERapJD6nK%{H4ya}X%-ygZ&nf*|v#D]˿?0 Ez8XB~Bgv C/X\u ~K~H !>VT]sUxvdkTIi]RץD0JpOVѴlW9"75xBU,abu֥j>J ФMٞ1&ڎ!pe^A<ʪ12\^!bC?~4πL"BDupO?9 @j4[7%4jpa]Gc y.R tNRBCTe5"]P-DQ9 `zkB#e*hլ#´G|K?'ֱ~3_֔\ȢW Nu+tR D`r ᖛ@Vٽ'!j.c H-GC5fm:oѾiw0 b>(ۧT ~`D;@Oz4/+nBOС9jpi/ݥ܌Q+W_H-'PDQysE@"WvBH1ɡբբ|H-2ݰݗ8n.pF#3?Wi'Q/ٓM/J湝e<9ti"$"ugJ} ^':k9@r}Yi7. 1\Ӈj&҄Qj.GK $+1VC:" V@B@ʰX=v:WRZ@i$W@lGaaJVJ?e~jX H B(,hZ1<2%F>-]a}Dt ##>sUPxBJ!3@$dUMʘ4U[]qW= oAa{ELƮ5r]ɏ7Ƹ aQC#Ǿ5;HMwDDbE*$jH(ΘbY-*n/kRwm5x:ةyװSW+&"_ޠAj_}4`l-r++gűl֋"+a(0wt]| MFBY-BcP R@fIU+G}dx3agxU@W1+7]uQ*M6ڞ z 0ؠ_#G9 v#ix*9*4]ʔ7u.Ȣ}LX0N/N"|vpLGnPZ\KM h)_>UF*![}Pl썀?N[OZvnBn PТa=t0,cvoobf- ÝݺC{D.[w .5h\VnNb1fE5ժF77Nvc#5Ꭸs-sۨ@ƥ*}d =$~ wAõ:*UCNA7I CٲPM)\,}1 T:*y@S$(inZpR ' .fbrT/yh%H-U6"~(S-NNd"^PRn # ? $cTbM?VtRrljsEY~^^%Q]!MW!;8vBsü)LM))YE<&>[2Rii9_4QED~A,j"l$ @^@rhص\149AKU/_= ]۔(F/]nF8͑wAԟcĚp%ý;ΌP[˦`1|B z}f;ezlbB5q&ΞфˁH3oI6֩I)D t 3TAm7+ umًA<0+/G:uub>ҧ=nD%t HRZK`D(Fs>Iv5ZnWC\"c+z,]+]h5/ld6rXn.=> 4HwE<Q$W=uWgё@hHWS84- ָ +Ѩơw OR2z[XJ韦 BXأ̈C&)`CM;d|/}@׆iT۠͟S 7+Ԍ胑7J9Ƥ^,ByJfq`',eřNI;۞6~ 8}Ӓa=:X2s,ݥlZ033;-gSg+ n4o$|.dW 3% >ԴE kD|\!!$b,Ξ9Me\: O `bB<0_PV:iRI怜xZrŔKǬ!tijfS펜ٗYynW>Sj\jrerIedd/ X72`BL\MtBI=v_[pdH~hs{!K*Yq竅T9-vK+ MP+D2jt9*/|OϫPQd&6vi݋ŽmZpVjaVklriJB=dZV.!b.gȋA4<:!i^\- \XnUGI8GY b Y1̷#$@ʄs3e}luGN)YFR<>AEdy0/ #pHV3Iα{Z6 j3?nJnȨڄs߰,o1ϛx3K0bَr!G\(7fppDnClBޞ: mZ wҹg4[[EJԞF! jWvxxcQLբ~Qu%vK٥'8__;߂slI:iFU²Ȗ>VZj,Y5OZ/8%}m9RZ@%֚e:F(,OuGKA w Ut )whA%N[~ aP'vsۥav_ ~ a 0YuN;aKqNz1,HrI)ԗyUf@cY/TDb#a 3azuZ]JH~+p)ar0L]lWΩ>nC>}Ud[>,BUpޔÔ pYX?HujC5)pivz!t(b8#6͢ {J6.t:-fP뛫UMm')[p`U%\/ .L#󇈗gk~3udn퍦2~ǯvg?/aes ^[=uGIL*)F;¡qJ;ORdRѰh^TWj21~#! z}/j(*R\)U)̒p9uСh^/' @Ԭ&^R.hm/p5ݰxw]g! 6,u"*gHYZFBR7NvAdVAi$=Y=G_h; #Dǂh=޴sKxqh]H_H2=-4w')'==Sϰf3^c+8BTdQu (̲rk-$-Ι>_~xpֿ k~%?Na4wE['v򖬲;MԟmRSEal`̦V #(~:6ND+Kɏ{_qëxVC]TOOL% JxEEDRr&\5U_e&Z2nAy5#^bXgY[-(WP _@q#LZNCЗݟ' &F͸\5["ڵs:PXG 2) Pд#Y>)|30grWGؿ:c7vW6P("&fR@%1&7ofr}PfxHCswgwRӽ%-S8-Ba㟇:js8?ekFۼ@iRcŸmAe)Riܾ*"-J䏛Fq׍tb)zl&PKaDb7^[n#&jqzRF_1F(HNjCȃKE 5`U lW-`pe6I؞R$?:>]Q',j`[^]iخw7$׼V@hĸ;7\=pDׁ@ y bTθsWp=VePj#@w/&u?oڤ  <~;* %Ew\Ex+?U_XZ#q ^g>WVl97Ӑ#)ں.UPD[|F*YQs*cĨy~^پ"uv]jjKz Р߲SqP0x oVlKFjttsGuE_}j#|3p4iEC|A3 8M>4jJ'B2=/,M!XL~2.Zҿa|v PPn=T~oעK%rі6VmI]AxXc H]?܈g$:E5*2,kAOaE.]7\F={qWxZ\?1H7J9@j3QFJo_U'qIӄYGqDZoў>\??rM3 ףq  y E0[{p? y*J"}nK$HXSM%F5ggilgRcJ{]!ٕrg-1eV8^(`j}o>|P7S]Wr^ sn'wX(n7 U},Z|2Jn-=y+:lwJ ;1kc&WD6CU=Zo(1.hMP^N[ vIME$łC"jJIv?v+l1l`6 0GLGA[>:ڻm|/m ZlΉ=(dޱll@ T'n4UFo]Y4/^m+d+̤S @m{ƞDΣNh㷒P*b=5Z^c0,y1_mD|Z͗U5UE@T3KF[$&j Z$bGufYV@vPF#<|a/%0`E]8ap=ۛ. )N_ N2Yk#zЀ7iҵT,l%]k"y7qCl[&z ¤6&7*"Ⱦ BzN{93]~vW \8OͷJXcJl0)M",Pj Q܆=} XOh*0˝rQނIPև g*]Bq.9&0yNsKWEn ԑ/9 mDRv4duXbpLYҩts‘,]Lh&\_U4Lq88.Nfr[Z&jP(D `%d-ω,Z8{kHxT %g%@URjʌ]9h/"dnV&:τ6hFQэsVٻ"vOx#3C{^e>֟\Ap3Sfz:KU7GH za<T1(~^9U<_@pէKJ6.7 /DX_w!|01RT/_ H⢕<5oeYJ" Sjo.`ހICUuR\v)Wy>]KAKVshytcjn[XE i+rKG9i,3$S }"`=0}_ ޸T4M0KW@h "]8Zu.}ͱ2wS3(M`E@1tY k;=M^Mkh2vJ9TF^% Zh(s&-Cުzh!pTk3RR-m8-ҁ }p>|O@Z4"PIDm7 _ƕO1~r47p |] RDT2,~ hiGO'^36#Ǔ Û.(WMe=U5`b {s84albp ;j m2t`Ϫo h.-nv.T~9j9z SgL4@ V!LeBⲚb~+ܩWf. p2}O/T27=t.m{{\CBR`lMYB_7~Y0iR^IK`C삖@pjj◁ ]BĕpZ=hEroL1m$\ִ̂Vf \2PS?$TK3| !) XVt&RզFR9tƌ6dYZc;{0Տ7~C q&/`bz8˰o"##GʀbZ"kN !yO[?C <YQ| &,:}`^63!7UMY.LqѹpB:*X'ͮ}BرV]omndcjWOBy{J=ۊ .I &@}$zN!ya{P<|zSev =F`-AeU|]1mDΙ:vу[iwͳ ?|d[\r"<upcM!5:w ~o\R(K~CHr.9~EGǁ7,ޑrZrWyNp?ȚXyW83_")'28vbIaH?( LX#.L=-Mg`:)S#L QuYz{mۿœ`QY\DwCPoz8|# s&jRXu؇HgN~/5V5UXi~grAp6,$d=۸$!P5#!ʼnƟU|_~U<’@&I#7 U eadL,1&nKFN~ jY ,8.l*76(RЁNВV1Vv}(X+J za_h訑Fds('Gvg3:XDcE\ )aRsvԮʥ9;O;p+fqdKHoʄ>J !23,W=ttٞR2${ahתּ*h/04b9XnsYtWoR}UN5q8| ԄX˂BO]f8$|@\I0ƑAں%unU {WOٙ`+=Jc !^@ZGJk 죡/0fzN,SĚQ˺)TRy`$Bʔڟs#5V<2ӄK뿙ľiJ:(ka i3=K i;" p,#֋Dc p*旱@LZ*hm"o(;R+/.3PS(ݔ9+P#|D,O_;9@5(1Ҟ39> sAB&,ъ@9c{IjO>GhL⮽!cNwp]k%)تx~?kWL ooX끋r k`z7 WjFN tV}uT&&BH9Cjʷ?b\mW^{ Bf?{f0]AWU ? %P?yjdQ@v܃ zLx-Aٽ.m_2qua 0Y*?DIW+6 Ƞ[,!jrހk'mB$Y \AsH>Vdp~u*B}7OďD)IkU٠y@S&HwKLB2mOQ"}ZGb1e˝!^()Gd_DBWU?8>wk蝸U{Ic.b1"QRpT]YFAu/5x$ҟ uSz>Ny0eK'MҊtkaUrK~ei8yzKj BUig-m[ ;9.D w?E˷(,M=v bsD|?'{Fx󭚬iD |)9@6&/$| rhkaz^ːU۸&^!c!zU}$,tZ2PTc"{PPbr " iׯҪhH*5o||r(>+>C0S ,Yo7A5hԣR@fO=3e/i Du03 5vGCC,3\xu}a?V9s_621 h0R+[% *ep5B_\+MfUpCGK[Z풗ca_xG<`Qe#W?ϫm^ZM>!D̲An4m6EUseWq5hPT,\kF^:0BoU)+=noU@Pu([}90vjro4@ >|a$ ȨL#ƁHĥc]KRKj'P y=(y+[09ۨWQ ~STl`J%m8IqL.#6y u*Lw(޺I6}xJY>E+ :% L[`5'˽Ѣyw& 'Ihau=*;!ČP,_wfW37AXpD>+gW$eqn)] H!>;l8dQTQtO[pe*JoIDŽ?"ԘBR+PZxm-Q`Eu{zn}&%H镜MuF˼%(^k|,WבV> G(DZv΀9ufMYI+T2Ԏx Fq]ۋZphL tN% n < lűdooo >8ꗟli>ޥ;(A+V'StV+6d4H3l9 Зm7}6V ԱWM|mIK(4(߁9ZȖ#tu8U𖊂uE\ `Аa"2L.}.v -q8ˌ~ܹܵiygܺiWX ߕ5 r,D~L#Sm\xh4 xg) <6n-=0"+1njSzt!~W?lJwW;Yf}Y5ޅz5w+'eŤS"6K{-`QVuVVh؇Wc'c:@ Pbj뵟A@t s*›lKa-Ї_4:Z9moq38^>ٷ|4s:y$(zy :u6w]jS3JT(?yG|OS#Y/8Ԇ䶵  dBorQˀ 7QX\\gX:GQ/ ,Xt:)Fv6l9F~C/"dB$8B/UKS3ǁukf^L|ؚFZpo3~Utoȶ̸,)^E0}p p(g2ݻ9xRKv/_E bP[aGOUkD~^6V])V*uq տ,[zْYcF#lǖK({i+ ӆ-QXWnQd,ҟA]YMԎ,^zbe$< @~~n /w!:ʹ[cJ:1Q ^EuD/l3k"E Yo!&ٰkl=>'̲c(2RG>tɇ^%~fv@nJF IyoCp->5V7fvbD* Ȟ׬[\:!'\Bc [9 1kO2'ot3::`XD|tݡe(݃=-YgB {z4&Κi1w (x_9d!I=n߅єm?[ds@C]%nD{ Β}rB+7) 5?5@:j!}2YY͋C+/s fk6{O;18os@ /fשidd4v3m𕄼@-ZSvAmi@.jh sa7rC%-#IԸKqːv'&9K%XZl$8if~75qw2$0p1n'2/7uzr~HƠ9b+`%&٢^z; 9!- ǵ+q"W߶a=*L.]ӈ+?~l,Y2m—͜Wz dl|͓4ˠG.ŝ1Y'Ά#EyG:27 5/oq%G*5 X$_*{ה5&(`A6V s.X(>>m*sઉ|^%V7e)+]x(WoehOr+@s2o"S?)ID(فpԞ !GzrtV• 5=+; %eT4$oq?TlP%2믵Ex $,.xVN>LՄ۟%}^{E_%|&^T Жv?n(Eds  ˴l~Yq"n9$shh=HP'[SBkIΘJVHÐTcE.2 yJ~'Pk"HE+TZxFs-p?l{ ymqfNqHl;B"x$9M_1RÈRy8VAl/1eUn 6XXRU$E ~_9㏂I^Iu[z|A\j2aj9>=60+įUqEl@4X5:u ~/ñA q,g/?mT0\~9k,ɹ-n x^ۖd"Qꪠ{exjiq-NP写~6_:Gk {S|il=Q}s̴ڧls͂ d迉m`;WF#\DIjamD D. -}Sj8_?Κz]6kSQp5;DE {Дk曩m#ߔZ9 Tw[.Z2_"y*0+#@+{0~+7c\, Aӗ=#h7iz`8|OIxY\,֘<ΜF8D>'cb42eِH͒s9^LjHyȪ0󦿿.TaR|wx9H5Xj-h@O &lDb45&cOt';N_Uƴykڿ (J.Y2HAÖ\J翢x#P|_}zҵ 3g{bҳqA?jȠ*JgbR=ŔɆJ3h#>ܲ=$[5%{ACtdA(yh$ڥWHbBnwɖysT]/kW~&S:P ͏;Zlq ש4$H0@2B(l'<jZiR=DzVe/y4'jퟙ "g [lefC;Z'MW@C?+V/uiD-A`IQ9-B29eiNnM\(A_;eW׎#dƀ,#sC`yw-wDU8ew8*v(qyl#:P^bg%۴TmjT $XB&F3 @DT8Gu/s|A-K7 vX!i6,~Ӕ'KyxNLM8Jv_v!=e)-([5jGaߡ"P*r@$u;|HEo 8,jf9z6K )"䛣*uA&t0DM> r Q5s! \sRиՙ_@I7"Pk]= r~L -]]0"YU*ʿX\ib8ڟjyRyYA &<-aKڡ ;KԘB\Bi$\3ഫwI:0:Yb:>{:ņ=yF⃳t266PP 8JPt!H(™_GJ w_P |tWcȯVRN:^\Ѵ#cHu0:bt13^w=RcU(^}O   _YN|_AU@"6 ~+5/ɲ Tƫ;g&$"#';G3$+'*>Їͯ hS+wpOlx.Wcad&0 c5,ZJvDB@z},Oa2*,`%^MpEs0/ hU޴w6fúS1Ulj[vBB@-d;He IBeO5ᴂؘR,˼}/ H@֙Y8'A"~Hk VJ($=71.xW+;PJ9+vtE^;RZb2M?eiĎbTaϦUW,3//6ADTL jBTwv]*BE:I)KJc\{ݻv,z.-`:!D \{54Q)q;qorw2A0 ΄͞ZfoYklVt\,\\:QNņx]_-a@j2'Q3R;v!)Aa1ț:'S,«މfN57V7M]$xsEZhvQ}^/Ȝ!ZwF* W!Z-S6E萕t{1"vYt($#9!׋9*@QdgĠXfr3 歜;$ ù ?}BÎΛ8[ɛ'[zfS{| 4U4ݨKpR&EG\#PJ}epהڹՈpN7YAF ^7.D"і^AemYZ_P-Yӌ]Ah J Z௰zA)CYeX0'!Jt¶TFZaZ(zDT |c:d ꘮p1IH2*Jn铭yϚfL!J"v#a!utL%IWvƃckk/̫. ;a ǮL(I}/="GX6b6&a ,Qۂo;4f G`Mė"p1kFU[h#G4lƄx`erQ';-37ɷ_X7rpa&O @9%˵)n|v Ϯ҄n{XޕK0a:,4ȋjw ?xU!AJ'`"WRNym9;8J_HQ`n_C*1|Y?xQ Z!lP L-<*VVLz)tQ*6BU!؂Hȵ4>={Ûz #R׭6Kc Jy60cd̪_>B4/naB/(cgTu 4X5Edh*\" OH8ƌ789Ci4=[@L9 Зc:7տ>7sNh}'+v5a=Bz1AQra"g݃$HO=TH>~[4ODHʼcnk߮t}#+09'2 5 .ۓ;Y_Y&/7^4UJ9iv> NʶB- hQȩ_ԷR9LK ~1KOe[i {Sd7$ID?$_UHV6d`/a:N!~=BlQ~Y̹fZ|jtوCOٽL/HJ擫Ch }xGQc!=d)Tu{N:1R^aٟ9~ MǺTS*bF=o6lp,0v't9MCW (Gc Co /xW{2٢I"'g s[]o^}n- [8:ڥה$z_gngY"R^r[rۗ^ P7:7񸥶#`ï$Y )$JJMYƺk$-PN ԁ>9cz3.M ꀒD ZS#qΠ vgJPEB]c3-PnQۅSFr?>$] ;0154?B7{S*\"s\ۮfX"rG+ g]`73ŒXl'LM+W YWf ZEWt ߭9JI@R5-VShgڄt:I>eoy :Xj텖zrAL`4L="Uw.DFVRxU@>#` z[SC01Sr~Yj6UPš<l4t+/~hSsȭ=TZ>Zmբ*v%ӹ- ˋsN_XuEΫQˀnAUQ} ԡsw.L\g[MTZި[NK+,5: N@:pՀAbԔN U{X'q#XQkvJΦ°6{'9uz\q4`30XcXsϭB0,g*'9 P© xGKmS1VSpt\?Gdɴj=oB'y%WUת3YSǘ^BcW˲XH2n/y p `{8j%AKg_$SoT"n"wc'.WM("@bQ &Ԃ3/K[On@ *F4SV+geTUͭ(3U`!:ZsBU!Є霻'ڨuO"8׺ru0z(8|{t9?=SvGyȶ6c31Uh `6t8 .?3sj9:al y/ E9ɟuA7E=WՍlB0<@SuM)^"O1,DLZ'MB ^#|AЎr%:SDi) 7sQҎ}j34֬Zyh0Dj_[@|OTlQ<HzoES0ANyt}ご#٦ ƮF2[qU!S [Yϻe(ݠmZ_kEPYb*p|4]=ڢί|<Ȣ),/[v!ˢ 3m]tSs84+{V:)\lM=|W=/4LJ&@ "zb*Uc<οK-`ovt_jHiL%wOǃab^j /1Y j5E2L!'.t"HΜ1*eiS( OY֏8dtr~~H=R}4y]ڟ=*?k:>A<=g'vdW fIVj|ݴ^mGE1 :jF1^DoW#%`G—8c$JߤTl Ʀ `$:Zä XӺ(r9~[ F[$(rfA&RZvp*b0D?gh2-vD1X!6 Yg rVANbJ%-ge/iOhft9 |3塢7o- 61C{>vZQ->E%˦61Jj+R3+]ؘF){408% 6. H]SL~Գkًg` U]l"6D)֒DclW;;6{b[迷?|PS~23AD-Kdbe~' 9,&*X wŤ+|h[4(][8D3yl lP Yqf9X_1,V{-=ۭ2!!x@L-ݰ2:r.f93iNzMS],m$RIQZaGHk ?",i"?ӭl|G@jBNT1K_UtJdW.pU Q*@t1/EKrDSLuJ+8̖'UqG/ t!8+j4PHɛ6 |WPg ?ŠZ;j@\ڸ;d9pdD!K1Lp ӹ09z*>skЧ\3l%8x ` DKvVjLiCnE.ޒfu>ϹeMh skfWtN Fun*k~ݕ@N w?P_Gۡ2Ȳb,{)鵷z_Ó*Yyk&f/aɊ^cL8IAtȗݭY]Q5hvW@pMn Y-K~(|M yM7Y&Ś÷mz0b61: Ș,u,5g7ͱ &%ѫkTYC?y+&g.Q5i|N&]r_h m>pA *R|kp 5 If55 w%^7F*O^E`F|i uo+q/\85&1g&ڜ4̈CLÄQJ  I6яĎl-ޤjηǮ4aT/xiJH 疖?c Qd{1[7tϲF:ݑ^oQoB>vLg!4o̥I0+x{P3{$SQ,,M^|ĥtw+M)6yNv[y~yy%1@s!XD+R"6{[Y$y+FEG.%ҼFn5%ZG~_g8pW~$QɋYYN zp?Z߼iLhPX4Fpfi|a}#6B;t6F2jM9h>@1j(ps<W- Z!ڧ^kDh cNQeER7)hvtk >mŢ%J{8͑H.l0o7k/tM B!Kt6PkFނ?H,B8"'0 *m ڥ1 #!^h9l ]f/&Qq^ZG%=>IWw/ZV樷UT}7BYo?d3{` G~/:Q=0@SI'V "[ W_=Yҕvoۭs Ƹ s=kr胓E*m"{9Lbp8fmOu5Bo)!yݓ.}-HT= XuKA%cv6KlmTf3|iDzWbc|=fQ߶O dA,n@5&oXZ SU߁ylOoy ,Q+fn@4/WXJ/y8ɽ ֬8g0D7ԸQuTzHU1՚mҥ;Y В1#0T &si1W kpi -ۤݎE(2TM7~%%aR ?g|R8ZR\!Λ8W3Rv5qdrE* Qqȋt%P)>BxE0@ZUBbVR5?CFMUCi ;_񼪸t s"-tS-~_ӭ)-DK=ݝϊ};KPE7:!N0hQS,ޘr;'j]*S-^;Q!Kb>"'pmW욚;&`6Աw[z[SCfrzA~ R:g mTZ`YhiT3 "alOG$i+C9nP\{? $32swC;1XXlLF>M!1 5ECMTc` 5c8W@"LKkS(KvŘRspWxBTE݆LWTpˏַ<*FA pR\oh.xO}GeDEJ5zlawR|sΔ!WAE o,";㬇ݮԿ#)pm[՜»a#\'g\̾LTV%<38ZĽ?`A0z #h𹆘NR7, .G/-CrLzdrX#qƥ!h8/ (&1_#@;G0n.S}pA5>)3@:"Ϥ?9ThʞUZVcЫ@P>'q;o.M- 's;UnSc ?~.~Ӊu= ÎV\EU~ %|Y֎$ u,czec? rhg=+?s1  Ct8 K IRPg,|!,+'  cR*B8tS5`uNDQ,Xs.RH8y VCfTt #"=eBuv [`f8.1dS,ËF}^bGi"?+QʸǠ9T,h.A8t?*! wgMFA.eK47f6+ִ<"u{ab-϶t"% /kQ0JO0`ħ\#'3b62َ?rIdJ>Vqe(s`di/0 t; Yƍ{\KxBw ^<Or;@jr̝%XL_~Jt~1o{Je$'jՆ^!8F4;2ڜ^1guo%mְ <̙UHudVǔFJeCPkLFd*5LIG}Z#ˠ':JT00DsoxX())huL6ewF*T+ ?+2R{\F{i\f$FWp`-<$ ;٥8%t4b% &oɫpTИN0kbM= 62$ڬ1;[VU cb _1).t[< T{7$K%B XDqIu\C>RL084A;5xMcx9n`R'XL? N'\3R(w90TYp3mE)Ik?dcÊ W*->F}f{?ň^| Qgd@(!#s*_KdM>v\E;:q_=:VJ Xވ@C1)iL%+1S.RS$kK|%ok"hvcN1Q([Z,`q:GO> =Mf;}%+r(#C`,V~@6ZI[EɊN`! ΐd‰4fgFφKE.۽zcD>I{;r|az%/c 7Rڰٯ0b&WD(hm@,+._2)ClXؿ}ؽlҝզaC }!tf(y>k¤KՖVY[uZq0\nʍ9b)6ezWt,ʁq+!Ϊ*[s>eBԢ" ^0[{?~D$V)L|´Yj|xUH[Mþ((5zV0:n *;eUC1L685ШKHK{#F` 8T8`'璎a_}܀ޏ=sx7xł7iGx8TY/QWM:JV ]PoQhm"|m25s඲q)[7*O-~ʏu&|Ip|qN)1&uCDFwcDR %MJ?U8X3pm4e0ؒJ=S` *CifwaZ!iE%/ f3eXd 8@AurJ-N?TžMy:y4X l:tr,E(_4PNUM Ωn㐥X.\FR#HO ;ơglN4AۈM@O6|`,hCk蚟Xg u<"C9e/_EX pZţYH|tǏaĸ{Բ?qSIҿlQjj6|mF,ODEVQ+rB8{LO㈡^N `֠_zb̨ H=7MiCg% Rud.?ịـzP)mp((4 형wM]^HXDEl+<7Cd=Q ,!-b2z] nis6[Uo{Z:vgϢL@]OoD4>i[Ț0ѠI&gE ثm1jNJIBJK{ק>x 9=,#2} aO9%뻣&4\P񞲉.0JZ]c lx-)ca_[F 7HYZ'Lpѥs5׊CH2|;E\sQŸ}[FܤV:T4/G$N#{msT@u_PYh;작N3 W0XX J_ 5 cGݷB-dj%W=V j3cid@$n[zG:WyZv;`5U4KU/HX\ Wǧgb}sM{hJQRn>uW%=:dӇf+:]GKvڱ!~V {<ݮU {֢X̢LåMDFJR V|2Q:1cfUIHַ7uA>jd(pzAPsLI;w' X4Vڏ^6RQ@|:1rs;PfXz6S.qMl$)Z \l{/U`͵P"F*WkFT;'4I;!NM7QΝgѤ0#.޷&gqcVs\5WEb|PIeC7i $Ӆ=0{zM%=<1egQa N!pS4J0ڄPtW(zS?}@Ƅ̎}>Kx >(eЃ%^ڭLpc&3x<dkW(]04k_^]p m'L"B`R4bn"X<{Mvwp\p{kţs֛1 Ieuޅ;(R#R02'@G$.xa\` ^-F'XVgU5S "^_֎37Ӭ>jKW)X9>0#APB:Sfϻd*gF)['mZUz1=z\@Bn=Z&~O~! Ψ;|:E~^w*$rܣ#ǟ.Mܧ-gŸt2Oy/XsZFjc9}d:PoK!˥s0k}`&R QQsHu1`je2Bä{8X)9A W#>4~)m%2 lzƊ5bFa)uu7"uRi iGhCL*Qڼcj /3m䅣9@'Ti1fF3x! 蜻^~X{Z13Q,Tu`|k׬bu{AQ/I~ѻ[&upl2G#ߢt~d E٢hPF+ = Ñ췶(hRN@:YM͊'x$Y}uv`jkjA !Mdo $jF*iMQ$yJW eWhPG$ 94S[^xU.l"_ 9_G4A|XOU榯>i⛙iK|BI8<[oV=*Tb;0`7_.TţiP;i'yZ, N]8Ό#s5EZksȐj-v󿔷v+;?Pvp+lFZBJ-e9{JM#fy ip%vL!%Gٔ{aT-Rs*;JbEI6IZ$6]ȴoL!û &c P?Ngi L"Jhi rhG^0D|/|P,%IŽZ~Z}- D3ED4Ҿw!S($IꅙJaz.Z?ȵuI[욪/[R`=o J'+n>;CrmۈM4/F9kF!v.MpaqfTث>[1x&=~S\HݬѠia4PŖŵVgQWT9۹7(t?Ӆa %:~Lr}GQRԵXQ4n ^.|#kFOs7l;ot2񹥷|oK!;Jz-89mJbu?`,C1LhT+}wO9ynLF %ږ cm#@)EBϕQcGBiesuՑ<)s"]"};1v]N)tW*҉jՏH8X'˪95@C+BGqE~@>Sk&]: 4ǿᅉG"VjYFRn+` kV×Q4Ee}Q]ݲL6{,h,D9,}&rfc?*D[:rzF{ܲ1QNő }kn-O[ZB)c%0Xa$H-# ToSÒTx#K؎/HsJHVޟDY۴{ԅx =KƴO?>!bjzFؽ1Ō'WoքlgΥ܍l׹Ei @6cz2L(D P!Q7 !}qܗ%JxaP43nH^R*$#wB\>k~cZ'M>0bwS'_ݵ#wdH6 "A',D/׽]bpCJ W!"q@dE zS[jWc.™"Ը>sidR֌o8Fe'0y<mu#Q5''k#UM0IeTDycL1i/bu bX֛#/SG} ]5pai7S9,gd+l Xۦ.s|h_i/$"fY3OJR '4Π4hU e]Sb(dME&q}fC-l]f̗XNݴ^CSHY5Ur87b5@amt>É iZ{`Ӑf#-3=#ϣ6$qu +j~ƈSsG1n@J6zAㆮOS%f*o{I>wsp4*ȸNc, 嗘on!dӑ!*\ɨt#CWb-E8D:Y',5%vImm@d)!N;<3D46Z6A3E\25]ؗlEj) H3+k]gxo]68G9@Q ~6]`ϟRWX%sXu ^GRޯf}jWrUw/|qѳj$4 o-sj-@pیGpuŧJ5sdd"ƷL+v~# ^5Bf@r# oJd͖2 -XnmJfxOLLjTΗDwKMTKHǞX oxf7s{I b-oHQCsj14y;SoӞi\]A*EU7;T@u;hX n;h mbTʞ/`gn0 ݵT<Vp MmϢ})%$,gZca'~$(Nmguޏr- h^%ݛm蟱/f㯌dx֤S撷ZNlгSv"ld:JЧX?&{H}ŢW_ º@oMe x|8r'W*ezVާ%q*yC[c!b?t]:+8Mߑ….Y3ͯjCeX0/깥O.*%Sbϋս(5$',9ϓ^"TX)rPڐ8Mq+ s|Z(((*7tXYsZ-Qwoƭdߵԡ3Nh*FYB:2L4_q ˏ%r^B'Z+,beSp]崱C,wsߖlnAP,t?'xN]wiB^l𾔻/ddӤXB7N|x .ltFO7׶P.8y/F`A|{&O`/~1Mh'˫Tӫ]gDlE!@"*.]qfU@ ['5%Ic\sbsz&5KOm{Wjk8#fP7 AJ-뙪{9Gʓ]UzF%ISԋÝc ,ȯvcx³|*~vM+ik>RJ =ףnS;9${VґEoW2=14bGA6&g0&1'[Y)ɐW4o̹,SHzD*gY;$ 9o`M[}C$V1|oyC*AB3\[C' HmL-7 "|.|=Jp1Ga\AACdƣQ 2C{R~>Pi?ۿ8kTۈپUŚO(˧/5S==fzٶpJ5{&3z$^bnD*L_2ts5t5Ԝ̺?s/Eer T*ߨ~BiFp] /Kф~ٹ2WKmmZDkC203iixvܼ!_X]Ϥ^3(%]6_hm#5qu<_Om1Hg)]oa*ȿڏÜaF!""HUEJtT&)X\c0Ζ[إ 2!dP[0%u.5{~흽ךvl?`*#Wܐy݈u{{aUxOSsZ K?\\Ϙ࡫D]&I?4/QVX]yPb@}ƞJݫKY:ہjt3­/0ϾՙqPfLA_tOyvkV\9UE~嚸;|괫(#43_DŹ`FKy$ hoi=UبZfPNɍx8G TjG HBڴi}&o-sP5٘N|sL$8qP<'s=`K1kwĜS#*^:#wzk4|^(Ovp]/BoO2}]iMF_<ᅘFDʬ_Y+2KS=Œo#t $7WH+?vYn~vI%ʁa27[uE@^3WșCɍiSrmeˎ]*|o$vJy듌ÿ7f&G.y3E3d V@<cˑ][uݣCu-gme(E Cٿwm@dHx,&xοwLn~:=.k4XG%Էs=A^]Z.|< *ꭴw Pk6]x nOCÛ{U`SE!C@˕:Ƴi rCB0~'Q`)֠U_aZ8Gxwf&;1˂ne-2GN~ Oo;bL}іtkˈQBϙmVq5#]ٙ5,V=\ޅ4GJ_ 9`l LW߈j788Fo<(&m3\@s3qw,9Z.tˮ0/-(Ƴ0NN{0m5j."s F%tYQ.9 M@7$3rS/w6öQ{O>k.2LE`lnScp1˛S6T랝R ƃP3O|Ӻ z~a>MA'iPŋ_d# \51煙hFzSMDeqÈlǡ6(PWٻ)M3wK tF5lHmɷC~L{Eb$Br?M1~RI3K$#)*29H%}rNCm7g;7ˎدAmT;a cָ,+Z^V<4Oe'gj`i5EqzFW4gƊVF4Uٞ*[X*@_(`nZlus56ߍX@{07sqnz[N4 룚߬;d,5Q&&wȐQJk{ŒVqE~Lz{U0dbHY'Rӱet /hJn Ocz%(U; KpZx6"^<׌-*y.Lгٌv X/,FJyU/tQDҺ@xBu7DzM 3PIt?O&\J[\OLSkFvtCOnUԺW%YG Pr{L4hzG*+RJ Y݇0xu@gAh~+ ηYB qTcY b xh?v2,%}3Lt,ڣb's x0HTa4kaetФ%9cJRK^ B mD> D*cq]xv,Q'74ЇVY0T(5Eu|O,tmTw/us{ t̛gD!њz!6KUmc vGG;#~)DC WxZb ^Y[{_I.ڂD"6 N, 9(emI,ffXȵ6pţfzĻegHlݦEKR1[۲k廨Rzgez KEޭ.uu/NRM#K07HrHdvPqæLm|,NMC$ zKyApT8I#ﰇB>)דzq&+տi D@8+r ҇WR}w5)aIkt 4qF[s"H;ex ika(g z`oR{:n<}7jnBqxWh\5l0 w\OJs1hk".mSQd>r&/(:G)0wFq[`iP"}|ƹJ6p5=7dbeaBmJ) Ű9Me? HɀwWsE\;#8Ջq`/d6:ygSPa`G=t/!!իio֋zɞ@*دHω 1l+jTفFT\h;5 .^3 mD˾v[h^?gVkAh-?Bkw=5öiG'3=|Yk?L=c>̹©{ h 'f$t -YWkU"m+nXQc usF7U-۫@A;{J#T:bJQ^w_-0_a.N&N_e}&'M 8D/WV}R8ik&]n󢫚pmM?50vZwp[xX%Hz|QN@ʏ^aI(AbGH ϯ wdPWƪ29=K*X{ОVN RQ|0/. Wn}#@k5&j%]EՃ%]zxjQmW|j6sdDgԽyvpZ/ϡڠQ]B4dpr+v㛺+[qhw2jIE\bPUͿr,QS.R]N l!#o㜊s]aH)to]Q|$c/K߰J ڙ)&Sج{^D(.݀@O's}ܟ#3| AxgzUm?Y+qxu_Z_fғ\LC:K&!PYonn 3`ţȀneN?v qeHftU[d"rg7턘:䗤Q"tsGҡ.E7Ng1S14nHr jaDH|7t]3qSME*H&h Le$oC\ErD'o8"=_nmZR/ȴ.ECWԳ ݟG#$7O=ޙƾڶV5)ic0:u?=i=#ThIyDleԘZ%6i5nh@/㥛їt  !8݀'-]HRbSUط֦;j`ae_s!vws+e6ހ0q*[-jUVM|q=.pM5`q+ !?K:&bfXk2?~)\//+ԪWH ތ({ەÅ5tBahD$ {axsI3W@3pSǙڏ}b] /;kyghLfs՛BAq5BtF&BԄz{? -,Eay9{(yۧ代+2 8Zܪ#,*/uNW5v8]U6ߎ &??d2Z[Sg^ H: wS9m6oyq,?r`lwCya&cB0Xܞkc+녬SR(;Vף>㢲QuNOֱ&Jk2Ǘl\@P.FYxpgz)^7u{ɣPlUg?;sk;W{uʣE} !lR b/#D4*z$OR2;\FA@x-G$xĕ»:®5= 8}0fӻft, O^MCYl|VeupH"sN2BoŬ:†"XQw<N된{z]Dvo>@`ǃY.ERh3+IwP־x}u&y_RY鞄qdK1tDxP(}<{TRsVqp6h*آLU FJY2҇!ApP +g^m;BQ=|cjtW!oC򍅙ȱdL2o7+$f/Fް(sk+=޲RL["*6.Li;KfhbIqN}muhi9, sfjPM~.&q w3NKMx\`(t_!op܇+#XlWI.ߥI^"Bp1gBRw*g :OX#;cv_6 iW0[}ϥ)HמL~m~])1[swJ|1'swLj]5UfxBWSw(uY%qsya?-8}g}lpM #( ڋǏ,xH8mkh-Er;.O _blټ̱P1^D8qINԾE&o~Ͱ@!vIP#Lܜ9ʟL ?hzMi O݉tS4*g~1CFEHvT?W8(8}4ZMC2h_O7${ Vmɨ! 8z^*>©@{)G9xd! jwKqG}Aɀi;M:)ሴ*Pf. $+Lj6u CjazQ"Ce\}x)OAmBj4—gD~aOZbav3N,f;I حb gwNgoݣ2-'0+NЪd^͌pKOGPYrp{{y;/Rldu'50Pi栟<׀-Zѡ⹨ ]@F$hiE\^P0DH`1F`gIs~ZɧlZH@z%[>A0ҘpKzo޾u5+'u~! pkp/Of{VZ_rv,74k1,G1>=Tt䩛طxzHk0P[>7V:p4s,fKͪp8xˣIց'CeFa^`-䇚%T#( H JN(Ǻ`~@0 l p|%NN>Vϩ wԧ:$s nS$'Q '!Љ}5h7l:>W*(S>A] ;H)k.*2{("Z9ZH&_;8a*Ş"Y϶-Z(dfwv;2{6mQƃ}{S +9#t‡+Iey=-Xt%h g9l@rzR%ԍft&'| b ki̟. {ݍVD6PЪSt%hAzs'Eh""V3gکo[  u曖eDVd k9i(@sa3~|RvxDѾf3le8j;1y?> ~iww$?)8̕ RDo2:я nj"LzVe_[d D@oT핔uU !IQQAMI%);v\Q`fѭm-TxbA j]O/'r,"͚ӯWnnÛ ~x\KD",O;񼸊 oa{ %~`̙rGTKwk["kfA >S620,e,;NH w"6g~*p=x2^+5 3 #_n!Al\;ݥn =Q| ɺq&1mW/z-h1DZ{X@@`6jYCTLOkWBP]RӣG/)8%KmPDvqX`߂x{gqr"cذݶWΆ8MQzDgKj?Ao"xad/ 8 <7S YHy$•;SeyDJn~TƩ:t'Z`fqr|CQI{0Tm\!Ȩ% "Bysw::MMܱqxAYMQ & R^(wzupq좔4๞Y4 C'@='ooNJn%\rnL)dN&5 shZK=X1Ga)7ӛxQu*d DpfQ8~ȑ>rh飗{ŷIC̈MA4J܃ P0= k;2"5s5 Ȳ]^y/0v8xfQPV^\`?}CuكGQ֣:/ b+t\]6.LO~0P9J9TɒRyw$L^U3l^,XN}Lٗ |I/7wCۭ*-O'1s8jd Wy#V/'K6V Yo1"H0BXdnhFQQL0~*li>[N<3{M3snV+sQNi(+rrtz?0CWE,5>DOz9%+3TAZ|]h>i5o3sTHDR4eO!8zzPp6FZ)e=έ_frns˄4"r~Gvf^#rVk Y$ηOV$\gy? 1oj`[\ĜV$C`Ap ~WLK,i[S== #tšHqꛍ,8//(jGo{Zq>{uZa$^o$& NUr#:!#׍wZ:3䡣rlztľnZ}PX*Y3X"g|#x[{}9]Cq7)Ls@)%w5H5KXefyw *(4pY\>jyPiB72Rn RYBmSl%S"-nlgԁ`'Ֆ,jW  2I*!yz6Pv<'&2<[-P{$p5!~]?I3?fqC*m~3e,w.,°i;VIh  AoMn V` 18PDND Jpw6Q)}F7 V<^Uo]$_\xa@߲+fw$a~ԁ?l2ϸnsbv}଀Ϳ@k1MJn$rs"T)Y Gx &Ǚ0j7ux/ 6梒k#l]qOjIDl&%s࿋z]gR77@`04ΰ VAumb)[r510b8Ƞnb&XIL0K7/x*!X=K8- h.)վd1-09MƑoH)Qw8f]('|kǟ*2}1f Sa$A_cp]3P[4,P]}~=B{n1{j-b8}\GGyKZZg+^;AL}t*4,#Լm)JUT'Q:4Ae?QC4DJ vX&lY1?Qڞ PKjyvbt&p+*Y ׎3o+R;7$XA+Q[+P*[^Q߲~0f;ro t͚=s,z|Ѵ~hrouwC a:eNvO5w+kL15̽0~dB7_;;t%[wߒF%OjS3z[3&H'yl)j{!beL6z|jQ;1 HW?v '>v?*]N C,ՂWRlc ^xɜ3! 6^#@#h&r:(؉F*v^rV> 2ҊfC҂{ly!Ȥzϛ;ͦS0BA(;Mŷ B(}}WSjN "s \!6 vpL cm^0e .F_zpK߂TBMpp{6\A|puU 3TW!N^Q[> tDj/K40+nE&| fW0ݘ.(v.f@e'iUR] aC+.N oN1(9Ґn_k!b j'yۉ4dFg8ŷvm!u__T\aLڝU, `ĭ^quSz$͗}m|+K,hl4vaR{߀Uաz\Fphd02gi;ot9# W: =ɯc"OB15(kӅ8IƜM,wewtvU3P1C0J*^#vDrha#i;ay|"=~[OmY$z,ESI Th. צ,vV˯ a0͠,[|*KE* t@ Z؍DEhnWƐu}hX;^oeWAq, `bִ$1Y0]lBr08%QJ%s]Z~; Z]Dq׾nn!/FedvպPS >Q1ɬ~ cMa$~p̖Rm$/i}750,T{<ZԖE1?p~n1 }lP7ћ38 [¹t>_+uV` s[/ 0x_-tB }kbyt2NVv Y5KRǡrjb%L An:؅Wb:S!fu[(Y,^7F=O>1lIۄR4٫G܍#r8iu |8 +v/7'8͢/&>9ɇsJZ7t6 `pA G9ɹ@t3fH'Y`1\VM6|<+YB#$HjU ~ gM1җ*װm./!&*4 R>]Z_y1qJ.bq uiaSlVO=gpCH=o2R`EL)ѣԦŲSEE>Q[l͕)?)\gN-7`J7,%Ge[`K`/Y7[#j]Rh7"kATW$R Di:hO#dbB(a}͇PUM}bdPd݆DY^Y?!+ov3|H3J D+`hNh2bUu}xrV CrY&]~[^ hŒig/RN24*̟seLj?tE=Zt*+ex 7xL6jbvS|Zُ 3y{{>^V\YQZDu*˓~܉_O \l;R$Oa 4':i+#D'ޗKfTEoZ@4bJ {tL^c;&:PLa׈_dK<q(>u@:׭[ϗk/CB-5Ә1g{߲~6Z=ztxpշ~ Ca&P;ǡ7fAUfk4J'Q6xr9/_cyXxCjэ#,wΨn}y22iև0 ZG^p.âJℐ|Y;/xgv:5JqI:E0%ma7!_6zc_E)9ijհ!I J+CՆ'hP4_+fɪ3Ԟѱ# KV+y@n !)#uɁOK5*Zm돵(&ZPC%fJ 55\|LJkT|o9H5S~g=mCVC\>ت~8LGAͮu]8f^6QIP#Gvca.B`pȐIkM=p>+q@i?7K]$f% p7A)L`w,G$qCy+W.Y pKr4n? PW$N %r%/TT:qE@>L_ Nq:a ?]"Q3-xZ[ΠhJ?K-[)"%he(N ʘ;Xu)N;Q ,Iu,"(0<5f`1 :n?nDИސomZ,[o?L&ve;yg-U&OhpOI@`*,LZ$9G\OO;wa+Ij%Fآ")S+'쒔#qN]FOc9P=w#K J>Ħ»}y=dKFe ӱ}Zmw@>)С VpMʸT=mK_]sobc8N1HL-x|r,^S)ŸRk?j5ƻo߬R#5H B#Qm zh&[]Jn~(CΝ2$]`B?Eue+a`ylH!}XM\odh@ k:H‹'-Q蓜 G2Fȭ!jwE 7P'A޽v$fQ7N tA؜`\kj{.*l?f* ~.##V޻w1p*q?ɄƧ0@ (_'g:瘭!YCd^be9O*y@P3p"2Zgm5%srF(sO'2XX$乸$=~OM 6FT*ׇG Â>\щF.Y|1P fɲ-r͛RYѻpȐsM0^˟[V,49_ >Elpdt_C"'gA?͉n{(qH[ WAmAƝˇ . ]4}OTz_5h {5ra# N_:Ft(t3~P&{g*IP5l8*sV܏&O&c}8dnxT\Na8Þ:G ;Ы %i,֟>XՀ~NO9c"Y 2ϛ_r v\R+63%3:JΩaNأ UBg#Hf]Z۔qfhb62.9ɂZ;q9^zg6LS#'*I˿@ȩ,qN<mOxrK^J7(=z"7x1QzqnX]W5[EZ+Pi~ZF1{x4h1\ ;<9~Hx5qi91oD~}V8ѵXW^4mzS'8Cz1ia39$?o5%ʩrY+7_LÁE3%oE |MN(~c.*5,"4˫g_|f 8`'vbs 8l Ƴ L ]aB.]R23Q|s!48jJpij-Jy.+Ȑ7F;m+N31h6KNVEKgniU=T~0'sOEOdP:N2Cm&U TD2| 6?{W%8= Ejo:qG\k* 'ZvX‚I$ա|L;Ot- |O\ݬQVi&,uVU=7אX+yGKJFN72aM<q}yN[uDz>ޘQi >evkQ?CP.p0;pgvͫK:*@McuGr.dwA ϳvr ??z^w"zz 0[R )N.K/L լ?Tn-1R-xyNH~g}@%U [Mc;h G;D%rn.^1xIȣ*/3yԝ Ɇ*~ IVV؛a;rQ$Oѧ/a/RetIx]BC)}Gtfޮsx(ͥW%5+PmbBnDJɜd2WB6yyf"c 2 ek>J mE^,3ͪ^J @2 |RG)4`S$t WQƬ*$:[;X v=c)HU{0Cd^e߷Пx8O;X+P^CTl8 `GșOI1k06Ǡ!lٛ7n@wyST?Uo׍h8fߐ.Uaz׶| yM>ȇj+Hu1C_B&+@_kof Po0Ju,Z-8#DVZSEs8~c/9$g+ Gb,I#pTxńw[YP/Gm=$)Sեgq2>*Mzjx5tėrJJW:\:[ܒ YvpS P`xQB P]xdʹ+YYY J%wҤk#=zcrNKrC{X̀%Y* xyr zAC+!f)t:7׬mZ#>y._Κ0YQ2gڣo5Tls^foPf<(;Ӯ!lf[aޖvLG0W%{ϭM?6?L&|Q0`V]D-KĎ'wFV&xA8wC%+iܔ#{'[.}K 6a\=nݚПKTlG_SEMbv$1aqb O6Bv3pp7+ΠIW O#ٺQR2/0?8]KCMZu tOu$`WSj1I 7qL=lc%uyf^wRh]F4}CV ' "ނʿ[݉M|J,Yniݐ*tOSL5:,x-g':vADRQ2Qs8 \qf_O<N jC FC_=hrxT.j+,h%}ALN#_6gjp#ۿ lQ""_xx3%Z[ hPA] +H=|̯x_η^ ْ=!I%XΒndJ_INsnr=!i},Pj \NFiXኩ"=/2dqKNdD[@H$M1aa*{;S&y'ƕlc6쫩+tA%ca 09%ELAf|ogtngO`e}hjDJ(EM]MAs'hG]溇Hc2O#$oPc圝YU~?\8=Rn{,4ϸ K0ʮ1%LO$M vሟ"?p-"IU7O5z0g0,T27P/*&Tvq&Suh]EqXr)}KP Bmdx"k]ٕJy3m{gIrіRӶE4s(:^mbp WDfh-OcR}/A콧k6XUO F8nԔ2K[/Ty3”ɐ0-DTSӡUbRrn)K_=bbbTk U `jO^TN*[FQ_NWIsQ:N?3Yuua!\a5DQYb1x:kp7ĢM6ŵeȃ oGڎ7EkN 6!/Qt4*+ bCK:Ù/lz_rƾ]}9?Pǃ՘Ỉ1__T;Ժ$fFeGZJ"mΜD 7G4WLw.V&a(BPf4XTԙ ̡F<̃@~j@5&A%D4\w O ЩSpy?|%y(6c\Yd-* h)wPR=Lu;ktjbNi=MqKo(w,-fHAV|Ñ@g٨00O<$ai0%zCۊHZꂤREwfzO7(RP,!'Ij=WJs =)_fͨ kulCz~o-9\ՅFYY3@4vAV]`7%@,U0g[]4H_!䳃>f i.k`mK%.eZBA$5ip wqϹ+f*fӜ:GZ["2nQ GqrGV5?h Q])6=A li KtK1m8tM,"@"x jUYM7,so-tؔRf1CUT=+!6Puoh"EfOҔn.HtxUݿKĻKE%$< *ѓNGOktuKZ~K|fV;)>lSABǞr||V@#sVt}> kunZrwl8:FDwO`# Yxf;QL HEX3Cm VE׻onL]+>88 G9$&"TJ^/oU{pퟘ]a9UStcх[~Q I6KFZCxD;0ɨr7^*'iFp/Ķ͑K`wFvnGxkHn_\:QQV; hb5B>еJwL)1ERKF-7[مPYf5(TpbʱZEn.(D56B;ȣ`{L[E$Ӆf<T˘Z^ʶ8xN&ˊc*Ύk{ǫe۝- wa ˴ձZ? [w.,zk)@Nb:B*є+yIm4?fhmMqC *t0ѺBMDz;>Y:04ZA ice};ƚ(M/.GOeS^p Ven(\B_( H6n E⁤Yj}VW~]r "iZץk}1~1>a4pC&Hq1>[?}ߚdIظó~\顇4Ey9 BYބw.+zRӁlĒ:1ou@X+V5J~:Mvz@qhV|ЅJ태&q{Qf|6_bѢԑ@=qfZe1 l?XFAC|"f+SN@0q{Õd{Hł&Ck~H%Q ܁tݭm)S{)uˀΗd78Зs-GHu]k =n2oMO0Q̇J"4)! Hw>v[i3x{|Ld>ЕXM7 8kVS02$ج^]zJ,ib_|vPYCQ,<l pi=OpC4q0hNE t _!@D*!U{Ğ}}3Tbsr8Jpeywېma#!a\UqX:5PfxNhֻA9~>'*Dl_ 1HC| Z2pbq>l'N(4C:ik矼>^SA9;aw!MF?g/ oW`~|j:$p߈ l8NuUp5b]^eE"h? [DP;T-9c Y\?Y_1kteNAy`17hq}2 Y1[kUBMEP 0(PP!g1Dg!1]boH$umZ\Tfe8oY*x'`0MZ0Eʰ3%ywP񸳽2 @#;:/8 L?۵侔3Xl̟t($q9oY:+d@'G;2ewdAT?-O6/}T}bY9٠ؽ7Q/ #嫅x:"Z 44BL^Ɍ RHRǂ$@,&d&6rʆs/ ~Zmi`L;*hhr*OF}\b-J 0o Cf v4 OuLg7%r?7<8nSy a8n-kaER )c cj_#_~c1[цA~'˧2MsΚiMپ^TЩ7J}"OVjؾ,j2:`u/$\p]|>HY}?d;640P61!t^ 2S/tkG r2%?SQ& L|JsH\"?i2Od EdyR|Y)օ2m""lk˽hJ;$H0flt"=94] al\݇FH6?i$]w*>zUF}'}  IZTVNMR0TDμ.j\h!d)9&&w7N&QZpFZte`W 1f6U~tpڕCV!N, ț7-Q(;7xF32yӯQ;}$F-]}yaۧ | @ Лa[EsÇ*8$;DvւoU8y}Ir6|Uť0PEYLbu}h؂tڞ{A3TN \$[n/8o/!HH KT5Ј;V6y[+2ڑ<[0R"FЂrVsÄuPVVgσ^t0t*Gt =R0OǧmhDz5^!RS9B4P22|G]c$ zs=`=l(kڷC"쐃k'$b'}UBaW]L~O]Cfx#ħWk {Ȍ<2/Eo|f[ɊDNd.eYMw5 K%@Dal1+ {u4|ZeQ<T_RA]=ZU/tA7a9gkt0 >JPw++frlCetYuh@IS+rY4Ey(O<4E#u2tN+,GNI&zHA+a? ˻4ZКhd zyl h J9 a؞@=2cLlW^YP<-hY0{U<\WEUqΔg1SA*| "TjF;*FMEucZ߸?Oj[?lj^p;2nFC{?18h9nm<%O1b#dԞjP(Y2tOǃ7 ҫ`",+C7ЍU>PSlxsʵG ^(eys3٨"c6Jh[Y5*<.T# 78LIWQfݾSkM{FTu`&ϴϢ0OZzo.=j>REvpwpA t` ie~W+Hkh"W{f<{91BP+I-y^{SIlt{$c#(h0ZAFBԍpf7EA_c!o}L7KNeN>F`z:iJPeh[E$`6Obb͠E!dVCK£05z$5>g{+O&A!VulA%V>MZk?$.eJ&L'JKًpح^ b7\;XYRAeImlѯYes^ǔ|ܔUKαus([)Ι4%5jx't]tyG6?k&'9 0_O&ǁFCS '$̞JJ$Y( sh UO\@&ĜETߤ>:{1ȥjf&_>R8Eʼ$Mˑ>Jhw~'0&aIk-tk;=ak>718{8%J+Wh`ɲ`QNTy`ЋK ?aE _'qlvzEMhO 3]%wb ~jO H? fm~JY<ࣴ]ذR )l,p!GP 7DߚTWh]Ck%:37$\k6DzI!W|k<:(EE_Լꪍ>Q$O;}@S*-˧'EpDȒF[,0aH5-"M@hPY/p+V%H8D[csܑY iVՄ%1vkW#beEaY,p{N{S"G_+1qnUE?AYXm)߁B'"-Y;@;]2~Tte$0es}|!aRZWs`aIDoOYWH6*/KPN2CBMh1,V3ۑE72n#| iewO5^@YQ2䪜(\)]eTyLA ,DAh~dUq{T E\`O,չw5b/AXGⷠ<`$1MI q|pKTfR㈬4awGzPORxT+QѿLn?ॕ݊;A,˂*6/͡^ʒFIIOH^32^xhl%I"ǫ~=%D vx0iSa?-N#:QAm" P<1(]Je 8p'I|[m@rRS~ ʔq?h!]EUg߀ӭ}ϬL4ѐ4TW+ U:,IcF }=~ (ZǸ.$kI}v:,FVZjޜĉU)3y^X]a򓒆[ݤu3OA{{^Q 7ˑ9و%KDVV9|n[@ۼMh(B2L:{eQkl4F!ɘBeg bغf"@<"v{ϱ%K5;8F\Ӳ lY? 38N[~[/(#\5aa{z.N 4P?{W[ XUw-Z$>D7]:kydN+|xnҋ,1k%s/=^4 $;h,j3VNaUv*Aj?9:a#ZY+6é>L;dg=&'c toKR x@b+(ȇ-ݣ³0AeJ T4v5lrS>J}ܲCOg)#̉q ;lWyGdXKv^ SgCtuХ(< h\z?PLCD.\o9COÖq(A=X>FZTFrAlhLY/7}/;pSi%0m$P$e\/ ?z`dW9ל>+]YȌ TEbSܢ ЗoV˵h89y!VgJz-vy6)lJÏћ )RHmCͳ+ϫ̣in}XavDa"- mY 92WSX4kRLP^6~\.i xP);Pi,K9D}#!v}Dwoa;ie,vhqܴP wqj$򑽁.]J)n{fB+E,7sRM*}٤7y{цLPNLj.j5aS N$KG=[6k/vxhf0<rKXVD*? j zԍPl'y$^9Aa>4y(jvN LNr0 @}@f4_QL)ɄKf.)؎!+LpL2V!SL80sSRJA+X]UD uBϻ0bl=oܧsXw?lF./_E,u47? `D'}-pVĒ. ^s /Ó)oXcqm7=lcESz&:7EBDYDZvDsMVf30EP#eKBA3QއGB7YO|g Ƞ fo~  &u<9G2xF꺪 *ΚHjMFR]83i"3\Jb֪'msw5ƨ:3HJaM\GR155ٖWA&-BE97(<7d[u~v,:Kd;T[6#\>Nbyµ}[^ý ͪyv&M31zHXb/䰲E״;i5 E.I|_)e$Q\2ƴz" %_"_bƣKG`qvblqq3lo9t#o!Q60xN _癡\x,!Z)˫ o|.縴~Kh^Nxi/y٩MGȌ(v@ u;xd&ϫw6Go9w✡FZ]ubB ZZC|h-}>7M!Se@tYP$hI(dP.wDEvt8&mSIP7U>47E鲑T!;X F3 kؘ%fpbعcj8i{+J~ws>=8{4W1_G)[AedU "b}ə .GPQ$N q.Z~fi΅v8.-Ԫ:n@ѺoNVUv:ؒ66dNz6[N/pNNHpw@vAwD@H5޴-?*8S V;¨Zo%JE>uhk0}QւB2I)O\,^h[~~f[#Ukܫ- ~Taf-i͙,wzfEt3H6v`}* 7Kenppf+O*ԭ;J=E펺a@N$~yQ$Y_o7JC߬0`2lVEZ"ϮԸ9K> Y#v&'r@ f{-7r kluZYۼffG_* 2%紘0nZɰ!ma=~<ږqYU |#'"@' 7"4G8ŖO\d)Fv }z7c][Iԁui 1KR{24FW[&l5P/gQƇnDg/T@}th'9n" <s o 4 cnPS {s34 qӅ ~|PBr*4x"&miax{OIX1LE-.gd'[`UW]j&\H~=Q ̳z^t)v>~''Kf"0;7EC^#/X̢. &ˬWbb?` "ÎvmIDxEHaͱ[8HaYF۫%]o1( z}&KU53iLQAszNU7b |9χw.êEy)sFV:Ђ6>`ۡ*?aKU1p/_Xm~^v8n +mUsHrK<e`{<,WY3(P!ש@9lAQW^/YsVΞPo2̵?#mE'Cn`u ̮ u(q .6;1 Sچ]@3#*.=,/?tϩyIJc)J gP[)@6nUÁrkY; ^]W3٠~zw'l~(}խIAvpye9X,6_rq4Utl"{o)W]ibsKK:4݉Ssuϸ&dHoY b́C?44k2w=w^eJ6]P1 a 9Sg%'}QLÐU]48 ]>^Ky.#y=K"GYe-ٶ(*KpD»& sŮrnx >{Y яF: AE~aj3k?/0'eEDFG) ,0$J*P(jPW߽aɞ[ N#OCM"P5څݭ;d`qAxqOXNuUidw_\O&?!v9-c-~#6$D1RH6? Y>B#N_-feU{ $ĖdTS9m?/lʃiUgct{9N(N R#;m6ᓎo&v' /~Dm6o/VGBG^F.^g$4Xd (VO//I)MR|NzrDFgOy{qYCCuAJ8ٛIۮ?AQ؏ֻނg!,.X[CY1{X;SqLk!J0|QmAoqo"}sU>0 wIk,UI}H.t *Fy,{yRҌu~2ø366?Rg܁Iw0R{~`CmВ0O aF{.䟮qF 'JmK!S]*7Et&s+Fijyu#X֦ދpd͉%.mH1}8m 趮ߪE[qe d;V7^+_Mېq6j0soң\2F=8.&[>ݴrwD=)}M>D}X6d1'AɋYIYdM`Ck˒ hS˙{}js>Zݜu5U.miafj 0_a]Y  ӄ2zl83b@c ~7ߖ)D"C3@u/׹sʠV_^|\#W$+,|3f=jIssw34.'>!W;v2PTWu蒤rxA#xapFweet6YK"VV.0r`UX#~6zN,eO;9h }}@Io܇ 7M=Orq{Aq[LaTSN#6Nb&ߺ1ı`T;Ψ79Ƽax"@bIh cٱzt;#j}[[%!mkgt>it7M9߁GFD|*SO} q΄hbr An{$s2mw/glcqjvpmUlo?yԖɨ]#Id*?)k823o.r{ I" mK沗%4bB;`g ֏dQmumLw }Yu_/};ك*$8,j >o&R܁zN-wۋhn)†E/2)<Q (PT?r.L%yTug@ l>Nx1 l# 9NtϠnu<\Ioe paqb.q^j^x3KPòu0 -XY Җ~܄ċJ0u8P>܃2Jgtz<>灧UBɢѓZV-9@Ckfrc<oy9ݿz@ň]= 03ɵM~eܴZus)03_}!k z,@>Nj][M~PIUDn VƞsDQaOr|Ԟ6' ~/H 3jFt7UݬYV.w4":a@7;='qD_&O,,\'WrR,_  1vBY?6X6s|B(z <榀F`і ɠuBlq$շa#ڢQm8ޢG2νVTD;YG 覠~H[( z FY K-E[lo_ &7Ӹd1睒:EX3uZec>I~[-H2~jxKRm8LE_'<2^jOdxJܑPmtՊ7W;nXӖ9ZBĬmbMSXEV\O+VKD3kjLwW*ghs=a &tOJ ba;hLJ3PTs{NE2z䗕>O8$'3 iXcn:/77/7vگ=~ad >i.e("NT$Ym ] ^(iE}׭0+ۋɇ&4b{LIGe";䟵w%kpyŊfd
&%i$ NEje&cld:}_N~# d BMn[HMn[dF? q)DHAFhsʴi}j9\i-w:/iՠ3˃70%e0udΎWo2@Jz>ùXLD5TdIy&2߸}\6uԪXhG{.ϰ*u7 % kB=RBXߍՉ8a4ӒLiIH.Z&g8p ^[9~CM+֋-0t#s9h~U!Lg=plJ~=샒K?[+p9TU665_1h4<̷o3Ta0`ɫd4ޔKG*8 pV'9? CȊFGmZPM7=X ($ʺXWYbq ( zOse233#$G7%dr(Gu5* (εLH%J4֞'(EndW${{TMvV]&^4j(dfSF ҦEj♬ƚFj.K?!wyc9wgˇ0)}`SRt'SU&~]M/Q1wEQ h5W"3hZGwr}{Pjݼn̓ߊCU-4nY9iK"erZh3^P0PR[!FU後D֡OZvQV7-Dd9 BGEݔ#f$bk/E,Y{˅Ju b ĐR#f?i]*'J^p3#1#.Ypn׎5e v0`A%pٯXXG91F SȭD^*2Cs=ܐܐbCZ7fC=%0AkjmK肣尹+S/:Vr2:| ~P{y^#!GC+ * SB{M,.5.UVpZYnύȘ`b:kֶo OS*Sʳ˶pGaBT.З \,h: 7a!5(u6w^ lm<씪2lur J5}oovf*1<`[=1Y߻V"=*z_hJSu5swSjeéN}_[pGfbt -O[]☫ vr}Vs^ۮX' JthYW௱:ڬ-w5AzkFrfs\f"SgP.i< d,h r/f\s@U*.lͫ3A?(u)vr0}GRngv8h{[@gnwm-5rMVNBV4߳/X oEfc(3g*3ưSGנp*nȤj$:gf9F|PɌe Wx,+hQ9)^6F'F]ʌFLOWJm^| $1mإ˴Q$n ##*rr8gk7d]a,/Ȋ#Z. ZpdAO>4H3ui"X E@ ƺU|IgUdx7R_r (KH3Now-P}k5]t%(z7̢ſpϬj6ǝ֌dLf ͺi;u%t繈`EߤUvB& 9qkS|f!QK6^ phqA \b"'nuU2% 6Jlo%vZ{&@V+n,+\LrE+5A}(=U. G9ZRq+q/`7 ?Z%sRyVXZ$wxa|QX¨SĈϹ>tsˢ!-x,ht<*P]^nGRLJ㍣@A%2-Cu{Lk{f8BeiORL `3k):x@A&edV|VL'P"N[ 6фгVo*w2#}_u#^8T Sq^Y: %mA- U=~00=ి"=1э@4Ki- ;h+' 6}ޗwQzGLi~!uMε'ܦTG1Gz!4Soݓ6ɽ5=5 KM3S-X@%0$xZ-hZz1l\}0MΟ,r4C0Y{\v5҄y+  [}bgMG0¥GfCyJ 8fӛ Wtp9X:ZuḆTTyY2rb>XPW_憅KF~}!,ǫLG4;2oX̍ĨE\JhS<_yYtXm3f.k 1#EƋe p AB 2R|++gS`њ2̶"'S)}3X~+X7^@h XuȖo(!nG]ҜxNPRo\% x{Y;Ao]gdr@gZNr|gfrCm9D򪥱v~/"ek&w>KVZn2 +bmjQKz*kE 03l&\# ƪHHƁfC ^qD=OC^O:Y)#.KNo,Yz> CGUnZ?r(Q(&{ue 4rʔ/{WL4M\#?+ࠀKIo4/#Q`L\ 9qe2 X[@↑˹[}%*@%xLC)ٷx8TMc5Q?^0z ;S1aW UYNh:8LxxJ'/BrPI@0馑ζ:͌NqŽCe8o( V#]'eQlP &.=E} &$pr@%.NWKb ؈YC=UvXȋޒ7dUnD\WܭG|ʼn!N;BwtD|*I,Mb4FJG;ސܝ.F"$]VcIJHh'uj p"a('N fv@l&ղ4 P>;6/][in?|A;iXQL*0sXDxd[-3p r?{CSs":׾fO9}PXA[=sA*HJrm-#tP VH2c!$ V* 0FI1ˌ%@ 26%f5yeh~U˟mFx[L+1eB݆F#uY͘:ui bdox/Y^:69D4g, C:Te'Eu@8? 2MFLBdX$vmE͢6\OtHM,f;V9Xe{l' *[/hBHu҂^M3\bqbwhȏ8E0v?Y"W 0z^/^VR2 ^OB723`R= ؕ _e4s]{~j?u(r2p,K쏲 &  )@l +cR|EX(T˼R^/3"[LCvRWScȏPZ5ܗ x|i+JloN$nԛ{2cnD_^atJT/z\\pߪqE^q{vt"~ ,8VΩTp&7#qA]uR=R6bRA&>7 z~fŞ./ *կl=t?g,;!PDm=JE0ojR/]Zbq ĿNs+Q=uL`\ɵO /9Fe**u\BN='sLƠ@AWM"/ `;KNjQӉ7فsyzc_5Nk 8 2^,GJ!\fgDMfs4 27\MF8udr Az@fƁnG[F!IGGFX&AYoUF W ps2LCe*̓p]'V5P vYpr#T _ Zҍ~u`cN48-(*ȩZ\,#lN'zʧz ək̚yVw0 T֫^CpKmL /6ȷK.yh:Oo}-X=*@Qg ɣ+07ZOCK|byriXh4y!YLc' eν\ 4is$L} [[Lt5%+SaKa9EpXW6b#55ew5B=N 쩕W~t=z3>$cMix ;4Rakm0GQSj0,^ЭKQ8 4~K6?Q2oA4Tsj=@PrUhDPCaR!zӗs&2τY't~Z"Z٤^iK$&O Nn8; ٦"@̏Jv ~I/,S]n h*wY`f1XmĚD׭$ey;/*F/oDVlB^4eck`R,EO3UEkt 袜}Rׯu +\X.űupt&4nn1ncBK^L I[[dc Ņb] tP?̸Ay}e` .ux1Nاp,9h9K(= &Cb3 <εjHy_-{oA\34ĕ (}BBt-glBVjf~xqC [)iq/ڌKhc JVMKxR b9=lu󾊍WFdx uR ZQV^uaZ!F{a/enZi$ĔGrO)1!dW⠉UљduN¥4]!!rg,]Q[/6,l˕H*S𻐨uE- $hVJEMgh"gLo҈ckǬEX O\8bŅaŋ.TƑG~;K9myIV6H߸C,)bOdۜ/KT}Z'I(BVs|\$ GYD݋4铮JQpLt"gae$ [X(;]ı \d }c2Fo9E  +\J2¾R>HRβnn:J^ {l&}^*I> :TQُ`ÈDŽSWjXsQ%UHSWg7ޣ,9_ +3}lA٦kDW95.XPN27r+݆ ja|"c%nnP:2E݇uӸ: u+̛) tj `W6QGOC _5Gb10ڣӞQ$!>ZKi)8&ŝiyfsi" La2x3(W 0ܲ_Go >%bZi3AQUjBE\xR3kftO~K 0 ;mvo$g& P fl:D&KwN7(IVBמ5OOz^ .PpU<bxufF@%8pcrY`ޭ /KϺȰ[UIyyÝ ywn⪮Q#C1Fh|S1~kOF}_(ED}mF6WYo*3[ǦJq).)F d 9- bj9y6?{rk5uRxvE{17A|b}O;C8=wu 2ҷ7^ȸH5fp~A{@F;l?ˆsMM9i3Io|YiЩNN{E]AT2W~C"%cE35bqZJ%8~4=Z 9*L5יGPye#}6 N ? E:FEM [* s [p7sfRa|7FLX{%(չXg$ gjҨE]m"mجl=ҟú`[owdKR=lY?5D< 鍮_ >q"tk,&J; :;hjMuB3L+b"t|.ԝjsi%zI$yI[{3fr8;1b%gp)v6YtDpZfʙp4o=>c‰s@j=Jr]߇i E#ۊ3`?T'< җB<Q 4T ?2/n:> =|/Cc. bktAfc6Xw+FXEROqe!8򳘻K9a&;Z$L7n`&"I.z<޿@66`NDRZ_Hϼ'`}Y3SV<ɮHECUB{)L%6X@讶$"Ђڔؒݗ- rN2S+_χ;Jxݿ¨۫_Q減a(%+6 HHӜAc01aCQvhr«;'Q_Ό9{mSplfZ]~ȩL-'ms8@4ϋ֬D1w(s£Vl:&4I;@z(wBW`PO|yI亁I9zjY!n#2fe**JD&"pjs/j@ r3Zٱ*80c@ɪZ%sc}A-L4A]:_I8ij)j:B;6:ZGܪ/ݙIrgʽzRպcc>2Fp*Y08(y}T||3vmZg_@q!dU/?$SWverNJV듡5 c=7J-XnҪFQ+~y`.ҿړ`WO*4|9qHQWm+3LYIY Nз>,s@0ұ=@ԔGeV@wAǗZX*1x+wa Z{F*><|BIs6S`H"?zl]bˮ$@2* B9l\PgJ1P3IS.[W .ˍjկdKΣ`%0i} _a]@6ڛCMPe~ሞ ra*WK]А&6xx!,Ja^[ϰ[?e} nU\U$SNL{BfVz|,dl@˯79Ǧe,'c7GQb)Amv '`}ƱLDsͲ[ӾxT!n1C8_;{U|M` S<( b5 }ܘ9nnǢ0,I:k3˾EۙO*C9fM%#fN*}.褣:Pq]ӝ)e$z?%i\=9O `f ĕKAy?TxNB 5_K*ej]?p7қCO bq Hb',LRcK8VpN-s°Vx2J{׶|xicDpݽa x06Ok4m;_1=ұ=МBĹR**6 9ࠉK6dpz"?\7I9aJAt8iN6` )[_) jL JfND, di @>H:b bTտ:B42o+ %@?$(j,%oe3(VKl ͢*SknRD.@kOF%@~y`z13 қ9r ۦ=DK4Nü\"I>ҙuQ,.DskmUKG Z;V8OA3XqA)I !rʩT~ꄠ)P(?lJNJҹ\_Py˄w٢[TBs_#d. ˙o6ѩB(ۋ.Hm,WZsSG;S_ľ_ VVgs8`?AQvsTbB #d?#ӭ9BYщ9vE6ͧvǟ_XOj(Zo,R5!`'&IIXC3A) H[2b˼ ۡ֡q4#1ffcn`D2.l QcN NkGtߕ5KRj%?LJ\$K7>| YsOQca=C'>,n!1Y:\{Dn]E鶂q >!ɸPB_Y'^,NO.;[01(tIw`uA5aь Z[%{dv6hƶOK؎9AۼLN"0$d[ *2Rh7+b}], Nxased^xbVd@k KdШx`2HXr `{XbhYV@DX@E/~8WtS&]UA*6 ;s˹E7өVdi_.BjfבS@i}%`^}U= e9|_a+%G 8n/Z{]ސW{ܒKL|t nfc6;/jũ\ώiMѴ?FȤ*]ɕl# r< (̱7 W΃RU69,&5T E^[/84h0 QBT*cSN>*1):'aQYoriHx^VsXz~3>ΥvMB@<#NC!J!;ȥ%^*Vtӕx{umKYQ4E2D#:fu]+tKV H7ϿW$3+iz ֹ,2lJ0OWo=IėͤNk.7E#P5?"UkU`}Ah{Z.zv3ͯ }/DDLky1A^,Yz c]pL Iᄂpי}qˏi ehYqs K3;>c-81NXZ NNz)r-:> =W-js]F֌d:گ{TMQ5C@~H\*u\JG=Z1r1lxJ]o gAW˿*T3<IJAْưX3CsKO}f˘ "aV7ioܒ<Udo3]%k[KcMKӆ4J^2"r vwpuKay;ZWtCKOXBB~cw( | A0E G .ȕy.S8@X" :yu A$A!%z;;%8Qi fhAs|jD0t`c+˨ "% b.}Z"fƍ+f3>IålhGQ(,aK꘣ a}P$vb{oWY`ʊkNjM-`蝥 5Ob+_aGY#Xxz:6w' E!wzi/5<?,s5?`#~MNز" UUO 48 -ENpY/B;#8K!ufH%g196T4 ֟jcI…r~w@^ |s6ۇ7lz=]nr=57Tp9v]j=M;ةf4.s/ >֭恺S;ՍjN὿똋3Pd@*ߢ%G BV#*p3wI=$\4Y O* i#˰_be` ٿlڻtq V9MaA=Cbo ^JFbSRc 6`RB4NcU@@JO'P4[rs"h,r XEiJYZ.̼QWCxb)"$ }#&sܺl L%=Ro%E5*X݂60c(ouN~ K.sr_o0H~og*:%Fjڦ[`W Pug zk.!=`fm_yXN ~bs[ǖk[ ~_Z^#U'[;u8|琵™i6d]sJ(D/SeX5S/Qm_f.PgSC4 HOr'FTivHt߾ M`BK#Œ)zdr-ۏZTCܿ @ ׁz]o@8un]DS or|I~~]^r[2 sVyTP%8Ej soK]@t1 ͌dAbKMFV|BIIQZY2-?|羳A^׵H&B@wDOga.{KT:[PtIԫ%UZqKWMDW;qbѶoBħr|b%.ݸk|F͈D_\cU;[ L!d $BEnq拜Ȣs"7Yyրߎ'oEwMi=i&Ki0un| s! 3q1 YQV\FG&=n@ "'lǜIC h7xR5@|i/q۔"3BnEvJ\R$*G#okJYO7bDF_ڦP#onMM`2EIzN#~R)<0w~h Mׇ"]4+G|QP]ȹAQ/TB)383pX YK]; *"a],XbGe]-$U~vhw<bj5dH+ $H~pBxcXpr: PMaclsV >E%(FwHW4n՜;CzEvt=xs0rӎaXalĐ&eK`Ϗ;Gt Hs t$2:f،?tɭ`Qj"6kB},tp2)-GWS!0պyA-!z+嵅0JJ tGC^5d ]roKIS*>\X6K'5JÌpb Rx $$A=_ߞ3+Ǡ ;CGDPJAʜ4RofwAOIR.{m4 :)W[;x/#e ! ,|&ό szR׍!=DvbAFмE+U6`engڛoh.dHzMnk4O5jQ'LsZH菺qPƒ9na]\Au,agd㻵&78YJ]Q>eA`FCz1u%ƒQI}c rDd+m ӫq7y`Q\o=Z)j̘&z6Rm3u8[]H% 9ޥ'5r)$hgn𭂩GcAIحg(,9jp.cW OKajڷI1 )/iwAsO%dt CLGyV ZC1[SfSN"2iOcq җwШuuS6MVL!mf/p"6oc3zs+O0XU^|.כO?m7Qtk}pFJz)@AJ]čJʮ"1s|\ltsKƖ pcNFr̕hx1< zt2]`n 0H)Oeh? \<&>3 e f4vicaī`N,he+ !?,b6vC;M,X=9#.Lv7ȕ.HbqjO֌>}{=5! z ̙ߞ;N(;o-'Q+g_f %|癩]8y0 :jæmpY 2k١ξA7bOJAeVeqZl!|6q :Qdr PrNIx]ŞE>bg&]u:i68mcSP lWv E=ު6Mx-;R\ tfn}w9fL%&? =z틖B|L'=>Pi2޴yrl~T@CFy~Y aR3rV-尿L?a'P]h~D^sfdfCh5-LǵʼO;σU{FLz[x4pG[7Ggv; Mh ˻J$ nBx%h nϪĊr,XBAX2kZmqw^^Etyc>>w4UgKr\ wPW7MЮu G̡t~g=g3KuqΈ~(zZ> t'Td@=,؂8Nt:; [d6 OwjWa!3ͦ.*g9R]fU@oqgȣ&=*Q[(-r+v- FC>Ya` 3o E?K,i_t182XD#0!mS6N> "dT^} Yg[F<B]*=&7˘_CuցNƉ'SZnPhZ Pz wLʖܚn6䬕=z^b/Я"Y#^'7[ ƫMC ;vxvZ: lt* 7,_+?/,9ըNۇY/ ՀNZ{V,*FJy; W\l©z0 p̤I܋Da=sOZ-a 8wI02ӼHk‘X ey3T¯<lN)iͽr8D+7Ş{=_D e MK&(mP+&|p3V(@sR*VIX)Cp=SP»3J:+ԗuMǏ[tqeV_ׯY+`#QhʁlD@-fxm0Qm2DFӣ~\wd\WuNq/16yE'IF@T6CUE>*ІP xutP5j73KW )RZJjTY2P0-xMV% M +|4A *WdGa^/.,/{6Ɠ4F3X0ٜXۡ;gk8Qs'OSXFx.}i慃i;-!rSZۡxLxy׵޿ U|{{C5LjznGRaX uꍌM!J*~u/U!$HdH7w'L 4#M9\Dʀ|SJ1=2 7(\~-|MHܤ?e-(+MU @+rAxl&rSEŒ)v6l/Ǘ9s5#W@p%'W{1c"p:Ȫ@LafIm1Y5PƤ5păy65A:EK[_UY!ha;@'7qxÝJ309\hOY³XEF9UhhZu{Q ZH̗ɫLAק#vŭ7 ΉYhc5*@t%9\ZK3û~Y=׍ѼN .q+蘘c%v4sMEXk7+fBiBLtYz% FuzIj 4 <> @ %ALKl2%%aen3]:sҊ6 n³r z+-]y0"&`|+a,=tTA>zn>0i!aB#hD6lw=9uhXWԜi.(uyoW*dRG9*0s> 0؅h?OÛ`/ժL{lY, ǰړ)sTaBΩ: eZMcGu"CeאSpۓ600 S<4\Nהmh\]h[zkؽ4b#>Czp&|jΊYeၷ!0MVea$5SvG|wȂ⚂$!gO֞M;^W?!!gl.ѵɡ{J' M>i8APwn% NPHD,Ie+~[2qvŠIۙuƜB=%s Z⩹]jӪ);e >Y[4ZL8M&g2 u :.3df;Wx%:=Op*mb#K8fJc1Ix͕\lI@_U!!M1&3sckq`$OAy9bZUCz瞽G˥Ե_޶4@pzɕn\ɤBݴ}v7vRr:r#xc5U;/~뫬SUY5ttXi 8?w]_Ngi ]09*$[X3sHw4xV/ks^,e"7h`߰S0CM`A@=ܣ!L*g(~!ސVj~Ðni~gtſ،]2~`#jP/%('j7ȼ(9B omw~ ,7$9d0[!j&mb K^/텗Ty!͔,) p۲QN׳#,QUv&WfA 6^8WS069I Og}K4Y>R~{*\%LRFǩw?pߺN6L]zI-o`<\F<*݄SOX Knk[, H%)I`yX[Z{?;ho\ \3Wѿ/QW#|Er}wV`s&{jSs%(*a#^UE ;5ۮBam0ŐGf|ez\2؀b#d/Vrtn2U}N2w(Wj9d Ȭ7 bFgOϻ=ɑnoyͽf|0&5Hc h4/rO+ ˿]Ԯ56V&C O6VPKKg ɆRW= ?;;s`\蚰[`QT9&SW#k+ }kml KNdy{`Ӡ݊GMtgZq+"m#G6KRE.pE`uAs\@3G"Ep!P(3x _P!FWrP* LDvV΋G(eemLk̡`tI귂Xc+:[G?Å"]*"_yH~($E+T| -2Wj h[vD)[ v돧]6x}:*0"J]|*5 H7wZVF8 W}8hmz&u0G:yOMb|}(R Hف7L5# }^Pa0Ij] #]EmHH  >j|籞==@m*Ԝ=gHnfi[h%[VFH?~<ښRl _'@RCGTѹ-3lq5܃4d}0?.%s oj2m!M!j>&SFYf΍a<}s@]*OWyǦٿ'Jܒ NR6or<@6T^Pi*:C '7}'zsֳx,^ы𘺈4[ ʱHvjGPrZfK J<}5}44< o[=ySsKbsZL ecEq#aoCBԮ-+^Q*{ֽ Mb9J5:Q{h pⅡձ &E? l_8a5?0f$ O5TY5 X@Q6Or zvCk.V?s0h xS'l}x,]PJ9z69I9O6_}rS4Ƴu@սo܉GmLw)3di/!5Cr-2j-i>4Fu=<toCWKB k+ld_E]u6iNT]t QH$&|]ڭZ \g@~тh Lj%˄\63єOPՅFj\2˾rYhl3AUΖC.v])xg74{>&t\! t`$;E!IU|@>"KŨ,D*1߁R#hoŜƣ1*Z4iuûl7]Ex\޴NT> @3\sLE+rv4YEWӰjxE U ?w߾_ Q]NbyO#[V(Շ/{-}sQ۸4ʊYÑ\%G>sAn0i3<]H\^4NF.Ah!@B? R^ё9>|'w2e@5; vwͳD C2ŬWqDduۋ}r=g҂EKvߣM*S;!1wŢa2};\t9UW4YrƄJ y eb /߻#% 9߃|Vg5.'4f*FEMF)+~6]ze$uC}UO]ƽykqu>;bL@eKH덬2P%*Һ |;v+FD 3DrLς*6ܶHhMm5F6tMdr/i hR<}Hr8(M" 8]pm]fzޙJOukFtuXMeoB?SU䞿iIrS?2l1 E`E^d~r[SE* nqZLʝ=We;M^39> !3yGʴ3ǎJ>Ip:gaҔ07WWyƚuCn ?d| R!ѕϢ OPWc;= JYcP‘}5'~4C)Z0ԺŠ`K o$+k92A1C~mQl!B2j.RE fMBɮhkJ]WzS"yMB˙ 4nj\ 3.iUܒn, >FVךX 4TbQd "&ogmL":4%KPK\}j, cj8P’&QE{ۇ nbCwt +y' , †DyzWlGULsqq)MW~ bV@-y*Z;,A1 x,v{HïZPgfk/bvF\rᲵv[/0:tU&15YkA~*(?AeFi WUFt\d$Qxijp>y!.g}l9S,D4 S)6SX8>@UgTK A y7ۛUO'aɡe~ӱQF+(8#6pW'*:%o5K*) v%"љa;~ _(x"b0;8Mkh!m~>c9{heNH\:ff-/W4M2-̳ /d`r< B?Vg=Q,ZBṇDnk[xϥ;-8H%,v6(ܻHs$pFE?`C@EIn*7NЄ9 .}oBQ W\r#ә=F ;[#'9LL,: <=dN[f/^g𬜓n[OhS̈k2ZxC 1MBA.5gCIygL{o4˦ӥB7gs)vP%]Aޑ0V:$ jHS<>w{ڐu09m5@=~4갬 T8"s'+jW~,c5ʹ|S4O/zĮD,AG5X@ɊDh5ť{(LC>_>yb&že!L,:ۈv{٘Ȟu̿| 1 Tni׹t1~5?eͫrܭBut[#D n-Rln@yM{Q"%[)Q҅XnRLd4J^PMvL0-2׸PTFߔ&5O7 g>׼ ѯ2Flž6A,6Kbf*KEqv5 (p7t0n"~ d۷£4NCZr4ra!W:EgʹoиڬN)=PpB>,4D5eqcD%A&uܨ'Ia͑l:P]n7;쁝.Op95,T<"Uϙ]qM:Miɾ6sLj=jDz+)w޲Z,d*0Å eyTī- X'M Oj|Ƅ2iP"=Q8j:T$_l=eF_(~&Gv'~ MJU-_nb00DbLG-#`K3}YtHp-EpdCii_V[ohMn+`B%^??D,_]eb P4O`=K6< &)u8$&i@%YsS܃D+di| 0|1刨o5 OC>@qgFfoσzL>z7^^ tm!:|ôM1̄brȆ>B'^M#)!EM HR?uIw݇c`!!;~UWoK7a3!&2s: U6?oT1{$pb;d!Ռe\ ўےj[v\6D䂌=e7+ѽ;v g' ِ[0ڳbZb! 㭂0:cnu H!bHxSS&BfF$7˵Syns6;%>?L>LCWDpԬ-ftQ(4ٰש&f<3,B VaCJI^K)qI&8s΁Y6дȬ4[J2璪*'JƩ1E#2n7'N[_&swRB@]jf89gxrP&uGSeVp!G6mQP+KY0" t;kS.&i:qv~pUzcz[:H"mS{3FЦ2< ZI,OVv1UfF | ~*uϳhy[Y`7Mim§hf,Qr(|ãae0vӣ8">:q<-QP9Rܕolׁg͙u@Ⱦ ]\Dc#y|; 2hK7en^}ţ1&'SÚ@vAG Ge񻛜oK2dCr[ľ ˧iQ,eiWJśՆG.[|eJV#m/V5 S[X{}5Ow(.K;QF{J5: /@=ց?5oV<;-vxfL@~?&dƏ]* r@Ka~|ADcF&xcﵯ$b cL "N+c$* p:D&Qzb&'Q )K(Ӂ vTrCx$0h3+aWE_N] Y ޺şYꍴU d?`4E>"ܷҚ _uR 3>%71_P:|ZC?ӎBU01l $9 $605W, )T"( .:Ԙ"gXyB#.lN5**pTȂ PAK~A}Xĥ]h)Љ)P+=kEl0AjA-B9sO?49o"d|o?R ZmE\ˈj!~-^je!=Mu]FXP\oI:yH(w(I=s?T8w- NI"~Qݺ?@'tiaUu<ȧ]C>oy=}234#'-65;53$HGe|G=^cJR7%+DŽi )?u9:atkҶ`,j@z$,xf$z xd1ꎯfyPy;apaj-8wH.<-4xgWΖqò?YffRo:R>G<%MJ!ʘAl[۰E 6IXY&,W*kQKY xϪ65ݵ]$ԱM`Ib 3/)MZDF$qΛĬR³ai"˒dth2;SpE mVmu` a!e#qSV7@^j0@M0x2SBy&EiBo(YnB7á@5NMy 4)2 g7rA k"FVE[g9tTEd/Q X?)mHtt'rS! s{:M":T TŋS{G&IX, d)^w Z!DVʓ$\HȞ›%G3ݕ禞w>{ojvyU-b@9> zk!˶Z>Fep}v't3tģ//{Ggmd|h>Wd8JYk"fݫm\=`kf|B}NfDw8+2g6uc# aʛ{}%uinO ;/!j}d#Z]TGAezy@SYow\h"J$5B&+:k Ber)O(1[HA#`cAELz+8wPI% 2{oq,2rCD,9'b6w> i^$ZӘ|$nN}t-}a~[|GH0?Q^~}EHڱ&bRTs2" Á9Xd #U:T `W!gE#20<6UOg0=)І̼%sW 0Kp"}pYÕNUҾ$Jp<f^_~ى<3bqfaIyQK-p r-I9Սx81遝U@pxnҕ' /u+L./Q:^嚨LPyV;\BܴdzuQP2io&Y$kYHCQ>OPHp) Q7`($弝ٔ8EA럍P6;qF~zZ4^%*t.*?h,UÅjY_6g\t(6<\/ cS±Y d :}<ɇǕvYf2:D̚лy5VJyR7^F cYaOIU "[|}nYNZZr+a9O~)rBpp*B0L)JJd0DIdT 3=> M~ѳB,6{U] Kh$[a ̐LV/03d+;Ř;M-?Fn'VJ5tKg*pۚ&XQfp %;dU?TVъk$Eeu1|ÛPyW!k|e;M/n2\>W{/Y8߫aVxT_]F0Sݱ4r[Ó(%z1V㵢^.w0k' ( {wb>?'qю7 <jM'Z]~#`qHkUĨ{ZvDn9oP:u<ՎJm6xpŞHA54P@b'NvE9 AusGZ&T8%=POb Rվ5k=iaFhRu#1ae?UTp&}>s LTk3j( -#W݇HZ%v[@5z̖-<юGJYj74RX뾛i%$4'Id}%[.Qo$ Y?85^L-wt=N\/Hxr8.QBQ H !=24mb7OY-T&ߊ9$fx)vԵ&ȲK*nrs/]ۋ⣷z"8ތEt8(9=7Q-]G[4w ^M % ^WnN-ƏY:Vv ):Sî:.-w3d#&T9\11IBlvLhxI!q>ޡdn0 ے2jd̪1vudpz2T#GN9r:*g1K]k*}X~/45D@NH5̂Hf| ]^%qA7mpS99!WixM?9tTzYgFpHY Lr:M/8>a^[/D_asqR,BQc#h #^ϊ9#\~Cl `g; <օ":hxpb`6Ј .w\ UD n(wAn57By/%ruDп|Z6h j\BA_y}ð پX _~'0S]Uã QFIb ՠjJ.nxU1[[..tRyѪH|y9q@ AsZݓ;(ɤ{-d,jۋ+/I.HfURu ZKo *߿Y9X1UgkJh$J?ڟ*I+ w߂&27Za'˗GYxu 煵TpF )O:_'' ̙L ,|l!~55U4˛m|bv+EPO,dQ I^u[_EEy e;Đb@g(C=eD[ ZoB| %"f'vdΣo1^ tbsC(i:%tEG!8KnDщyvTz ~Ξ3Ԥ{2-:ąbRC{b_AJ- rnվ% L cxAt8GBm v U32Xwku2b%yvOXݯ$y=x!PxJocMnVH5-5 D b-~Dg}<zEê?Zo9' qHp#ј!n̵'[=#P|ԝ##$=v:#s] z!Tq?'BAX\6m@bwk|r#|x0V!918mX >KUY>~Pq!!%w,V֕gJioQؼ?Ce~LlNrBO)^uuPcM 8ij{:uBT(Me 33ӐYތPhdA%4evR Vqvܠ اz\BуY-븙L_Uj좷qk>Gim`]Djd |?*SV,51߱-U\@Dqvw ݏ܁0h>OL-$od75OUʸzOG|<u_ioghx(8ZՄmM]hyD9|k</ua#$XUceQ~60E8s^Y'i Ly//qY \|n*kޅ![|(xVc;1NTI39\Cѹ!H֥Ӷ0"\s<`7ɛ#ؘ@2` 3:w5Gn tloFsZ kO6 m"Aj 29 FS*-m?D9 =|\4>ʭO=e.#=8T|`^'v|/ܯu+ WFsPTO/?U? 02~#%od9T1vojT JYLx(C|[=,\a#r3uP^ L.iN=t${3~/aې  `C^-dڝdC1Hn.uhCsq.* vZ_O^NH.9b&3[J\Dm _a(WO0B>jшa{d==;k/I잹/!Lh-U:o7 GtS4X;Z.; gfEHЛb11CbyMnerc^럇 x63sunNyagf}LI ӪPccjduU&E0QwM}QX0Ym %B+ٿ TJHƄ2Z>ޢ9=͙S-O#I w6٫锪IK'Q!8Fx$9V_'-Üe{ځx_  EtHmiX!?\gƞ4=oBCW/B|/_@'/<_;dS/͏1*#{'H5Ct85 2XPx1j#2}4:{Q_yIA{]Dq(4 j:J2iNEdM- d3\ɴC0so.b٧[T5Ӱv kt)ÖcO2I$jݣ'M@1\=FyЪ,#+!. Y+c]l.v{ɨTiMgǕ< Oc%2oT?3ϔ<-|!xmLs[4۹*^]ҵD4Vt,3cpJ,0myic+ǫ[gWY_BX2y>w%&y,×ѬsPڡdKfYJ5Ƈj;z.^lK '+q&vz wy8+dqW\;O€FDu."1vʑ_Ll"iSR&׸I[ wrՠ%VY7ү?j"4Qz LY𹳩:*+l/rf_ȉCɏ~. $C =K=>Z ߈qc%itnG[2bft5n&s$%<Ԅ{@li<n9rf *s Ý"ؠtL(x0!͒'>%ݩ H>\lzs4 A!y.WfxH[ǝ`Q?h}OI;=r H&,[}ܸ0`y[ge1S.y&Bxu:`; 55ϰWGT $s9>~ow9Ɗh6KkW+(ےYto[.l1#q-*E_Q!~%_ 8%YN:[mlԱ6.nskCby7X*uCM%4=Jހdda١yckQTdPy4u=L"B|cg$N{k} 0 \Tp93"9L+8YA2{X&iAS]V4n6r3uE `1 r "S{]9Ay1^=G/>OEgw(Y5YEnO=-@ U爊6y?pic迀{dGj@;٩dk |Р^B#L "~]^>6H`X"> .`9N5,=3C޲>Kiҗ*)ewD4gۧ_%&9n0Q/{o0emyGs--}'2Aҳ_D-A(c6.,-ն?@hĶ*A*He&׼{u\acbE^ݛNj=P'IIʐL`]KWNכ&AX~H5{HK[XY 0O'!#*|݋mZs/t*K+g_hZ" u!/O}oŤ_,m9Q# KyTLxxχY^(Fl&9tIVYQEf%" 2>bG'H+ܐ+B?C并71Ƣ' {c贤Î#| '&(CON 甭|}Tz ܹ0hf:}|ŷzID*Io*Fu c17_TJ4-8d:@)TRd!4]`@AZ3}^ٲo9>+~Y~)< jOeJڟ{gs=TVH!$`VOqhe{BV-)%a*(jel| PI"3g`_?X#/Bցβ$?Y؍4DGhp*Q' >k8k18^KiF? p̎}ب<=/Y6#3^qHѺZ9I]%S^ ODEaL28f}R}FY)?t(Q-X=޹F#wt|wn8nͦDĿ1{&#k)axOp'F'W7d^.JG-$ֶ?34~%ZQrsưț6N0kpaV7˥޽z8Xr<^$垌vI|~Cr²LXvoLߖDʟTZOe;ۂLTNX*&B  C3'WyoTzH83%* jߍ\$Fo D|Аq,Jmy_b"NY]d_&04*٘>;ֵUִŕe3_̕Z K|׏ɺ=W_W  ABהΐr7x:9OVU'wbS5Y¬n7;`Wo5ǜ۴KkP.M ] "m,+0EE RY&PտD?9e5m^{!{-/="! LZ> s/ KTW<¤6rdnQ1\l>~u0F`XLhԇLhRکׂom@Cz yduȹ"`%B6f}c~ L!wAC/U檋xTjK+U'5|=#Kw{h$e@!\[E^V r+?&K˜4~i.DP*~tWcaDCģh:f0} o~(d7 Ј6s9؄y)$<;DVpwoLlIP@kg =I͸̕R;Z9<DY3Tq<Ċfxq#vadM5ޭ'w'y)}t(3^Io t#8 fO@Y{єuklOuX=ܰ:ljB)9Փ w%Pm$P,D]hC *r}zqaPY%I\V)ʙ?xKݏ(vO\?Po:G*IKŽ1L<]S ʪ9vU|i>E(J3Cub)# q<3(xXEqZû 'R(6=67}?C#Dn`GLܰPJIצ2wNqŦggHdkKRFHૈB7 w2 S*`o`lSuΆL 8a @ahUCo g !WW+{ `biwK3〯G^$N KljaBխo#\D颹 _*{GV^aM5$1,";jeb+M2[] a0|6c@[OC%N1}8@Pkp` 5(JO^-WΆbo0ãKG Ui0p&D4OY~5O yRC9j(D\Q ;WqWE]WDtwrV茿w!un;/VENqU^xܯ/Gg] `ݖr48 H!>Y6dMTG;3&^jd~?[;w|1<Znq9*^7EfK5cd  S=F+ ϗZFz;סD|E7!%Iq:ad=Oq$`e҈6!ĕJhjLVkz^3AyFfg*Կp4Xpt$-CȿGB bYxM+1 !\35B׸hmVP V0-+$ɑq>pOϛ~-ӏ3HU2n8~3# }nk3Td5}Qo`.\:~"}NeikFMեIY>d#v;(u%~} Iy9et#pkTy"Rc4Z^_BD.wFR:H@;`PYԅKYs/3u!Zse=}IBiQ%j"ͅ`#޲,SHK=J{LS_@FnQV!,U^L=Ѣ^oTrgCMjN@f1^{rAR ˭Y^췯j<n)~#W gQT<N6PuA{0Ѩi\ནQ7r>TlC?=`c2<AD,~#ӌC+hV)yhrֈ!>&q$ Dߗ!e&B/Ef?գıƮ~:gU*^HOYh}aSrpg#,񽏗]ԖR%m",RƆ*d:<D98t5D%cQNUYrqu$XWQUD.t P,!wa1o-- B[jȷuB$&0oX'ߔZxqp|]Bq\:-Y&6+|tYgUu52.U:,C-@ k`< s@ۢ]q rz'5x7^=)c(Sy$WaYFMD}lƽ ` gq[܇D|fm˩8T$.(7-ɦ^ϝefVzuWwG&TgrqZGRh?v&QBXYShCZasWs5Q&joSP؟9#ē}/A p f'JL\i)l"p:i,2zi9O|%);4l_'ԤL<{ D{lS`*ӑy9-B[=^|i~QX I] cO$_U)Н'AT7D֘ yPL,a%7/% S]j$l͒_iIS&^yGѸLM0n~ A|uA͡^;+C<8 6JO sj~v:HKTnep}ןHxWAVf67;ŬҺMC yɛ'OL#i @տ+Hy]Ƴz/X$Y0`X ]?v{{8Nzlil! /̮HXx|aAji Lv͘%x8AbW"RփCsK:3,Uv$nel-+41O}.4Lز]'C@zFxYw#a5 xFf#dkglYT+藥<=7~UaDQy`ߊd|_XQNXfw{{l{ɨs ZvV/ޜj=˛ٟZpq'CR ;EP Tt V&>\RU\ M4ٚq8n«k`:X=$Ǝ[I 4k')P,l y19@\m㨛%=sk8ڎxmi< \Ykitm"@߀ 7ޞb\%TS yATȈiڄA姌&i.74t#>Rtu&Gs$3$Nq xjakw4T?bȩ lZd2e&֖LX/[`3H0o+bJW闵A[Y[!Eij ҨaTLfWIWfu8ϥw{ aYY_y;6&7:6z _fU}g=4+Nv 8x XɗN^Rm~2 ZWT;(#JMptoL[S1gzb-Y}e7!k:|w\xy(ρv/Ixm#ʎ ?S.tc9RoFF 3>@p1{9 q0;Xf'=S(mecY9>s^th <11/ʐ('E>h]>gO!H )չ0oÒ2K$g2}e#|nƗ>,-$*Ի4=͆L~~}ST3:)_Y$!}\O۲k@CG 5]Drt<̆eGԫ'xS-gyF uL\·>oW}($j(iKj yȴ' NJsevbVQG:tCq7.AnM4ar4'#}tfqu_Q`(;2%M䚃)U]ݝ=׆dΘ{DyEq)/=bwZ' SӒԤwъ$~!v)+9gׇw[蕯`8aŝd ;2{ӵ+ AbjS8EIF <8X?Z7g bn)E) 2qG3Jk#߾ (Daʪ{r `tډ-ztkrc!K$*53Sb sS.œ°-ݯhꀞlyl'B|YQŗbZ'w]\z)#֗ IՂN/)] }lEϖ92P5P*Uk#HR*WQ 8XEdCb0#~P@juIp'љ=S XF&7"ج\l QJ_\&N#Q$`ya@.5қJ.Ւ Dy-2qYhzO)")ij887{蕱cũ FqY-i:4o; (0/plԖ=$UAz"0U'jK0;"[0>pDf>B6"cg\ʺaI0EO!-(m۫+Q; ݌K #=~< '+2ѱOD1X&:aF Y=xfXzw ;(A1tc0W{B3N8R: ,"`| EՅ̸ƾJ,bmv>SU}S*Jb+;QfSV#{HnF%Hݰ9,c\9NF7h]׻ҥv1YF$OiR/UbPϭШ:W F9s]p/˭ ]xaăKPíZ7)zѓ{-RŚr ':ykg:y=MfK}]!lcoAylil@xu許+1V,`,c=c økr¶K*m^ax [J0-Sn_i8 >%:Zy*;!3,{Ҵla~n._Hr_-+kTjYO-ӏ9'`,&)1(r]L]۟fXxg.u6z_$I!B&lMS㪫yNXxCwSK ﵶ#˰kmmأUժNg?%)3c4ڀD6}o\JIIPv>qi:Vzpq渣a`WQog2>i@7eY=56Yd&-~1Fe0 \8u:Y*2aۋ$r^%F4EP6$sh##6 ERWUEEΈ \1xVb)}DEώOJ?V|ٓQ-A/@aՖ 4TG'юAK%\@ks1 'Od@&1Y/,5)ґߺo'[ :bPA-p$9A_;"T›~xV n]t4bej?P_2oh٧XL_]OƒF' eVʥ64{n`T*cfaB9G.d4֖-vԿ/:AGv9wәM`aX uȝ%{^oT_Ͻ0Ց4x_gN4F<[Fq׮5 ǏQ$qdnw_s wm6֙p|qe8vl "qzŖOs@CNUN譼NVD8S#܉i ʜ1YPBvmTiE*虧/ /fg(2JKjʍm+q6*Ci歯j!" h\lN1]bԣtF&vL?SrwJ;@ 앹PL,#BA ՂoK6(W[)lH)2tfΝ ,4dͨLY?yx^F?rsnPEU) >1,%2iMANL :kQu?|3V?rb7-G)Kh zhO޸H<".(7b"측}gT4AP&@5FRl\Kuh5e_1}nɠͽle l=À)DR1W_J<k<4u؝@7 ~*|1"(OʿўtO"pvN]oH9}7 5j[sk9ofڿgrs.a^ B"O-uyͼNM7FXsC[DN2Ž*W ϽDW~L6eֻWh5 ^J 8 _>B"QT:h1.hF)hd ޴(%,ܱfWŚR̉nn0F~d( JXMFs%fK3+jUD9DQ[$lh/\WQL] 8IЛPYòtyz4Vѝ{ODDwVx& KgFK(LsS5ٷdzRflg;"iR3_D! |qҰBӞ$^v/A1Rr# ?@37v8} Ts$-7{}/{: fژ9VJK^,h3}@Y#أUHk#ܧ0v+yT2Qo(!03V>/&LK2V+p,.>;|R7q _NTgzEEc4)w76`_პx=15k`gFqhQgMu󃤑'&b>:BIT-jK&@?FUI奨F8%J| !()_?vN]I[UƍŜN v?o),,\Ȋ[:,AhTΦT>|.Nu0EuM=:6EŸӮ9u~sK Q 96$xW:6_ǻfj׵2?pXeY \OK['Pv2@.egr%i^18ʅih)2wܣ3biy0SV݊a:$٣};KbV^?qS4 C\5-sh-!Wű8f|Q)R _Yf!wf_$'1|6}G M? Ik BSDȩũM> líI2<⥿Uh8Ӽ<&4.0ud%ewϞAE0,^mi!bÙw*^ҩȀ-ۂޞ5I>̢SPC^na<d^tGQ)!sqẃ*$^KoP{ic5!$EJ̵6)]t&σ]:ImiP*i&aw9k>eh7KYǥna}BP olW&1vAaSZɂc `Gde3>M0+PwJU sG^<DYv֎sߓCE 8OTDfq[c60 |U?!u [2>}e g%Fӓ񾋀CbՊwo"P2M^lTX/'LxMgNv`1( tt03:1ߺ|7%g>{H$8Z)|y W"oW:3 2]v_p+z3ET s-xbK\C'fIT ɻE2@-` ց[,KɝEⶹ^ BM~b[t@ f!4ђzLÒryL!沪UV@ehz_RE D26@w"U?57ۥJh(aP,UC7zs4Zd$m<ʟ=F-ы|#m& aPYz OolO!NF[ <)!bFm~+R;#ۚІjH TZ\I"1Ef%)C%ۙAeϔ EH"O{ҋ~MHNىs iH{kNuZbLܹN=sq)6C7j0+e>s,\ b,`S.IM|?t}uB'o_ˆZ:bS4 cX؞Ԕ66g-}2X;s<TNO%AGD]+ⵐ˜Q~d`VPK܁W &dc-e/$ }٤SUFK0vGw ueh3 74X0|Mp̜j#[$82 |Y%y͆qWTB=lOU*a QP&( |(a=G=AňC/xe5XPId;hEG9 [ )7ӭ. =Lܫvn>beB_Bq3mK㾘Ψ>Y[g̍NVq7wnH]c %ƎWLv$(7$d L0'NLG|HC "tY,Gm,-Ő6HY?,eD BvhB ]xuy /yz8Ig^sQ~ fR@Ӆw4WL+7 }>hb޸mT#~ѦqTÅ]QZPTGQ<[|՜7:[,Zi%E?E@d3s⼱ϴo7/ E MH}əYKÿs<.;> 2Ƕ(R >ބ}{K Y5 xgH„4-XΣET_::D㘪^ }Ա J7n]B?XW3)t%sž-0駰mXߦ$tA& (alX/)BD6o̐b1" bLUOwf{.TNTCNڦ F!6r+ԅ 'y>P;Ҹ ׅC9'~}b5vTX8Rk[º10 BMap` d$4I>H>Z _S[W^c 5œIFە@t'y54 Hu-3%/˛  Go@/Pm>3?ynE7윲 RW)O&Y*aL~6+C Iz|40Bv>$KĔUDyZ@bٛ@EjHmf&vGp'EhҦKc6UAb@́` xPRY{Ym[>Bt֬#nNV5N#ypps!}p[d*{KAbZG^/e@H rGIA%@nH sd _ƍSiF.Iɢjyy,qֿ]r V=0L ,=^k/3d|}C9)#>UGi'xbE}9GON@<l60.o3SN|Ћ`q$VOtWڊzv1pB5bq6^XOJܮTi\FPǢyrxL&,Gun+?69UYٕߧy/_=pi UX̤JlsO8E/<(ü9}Z4&q%4B&VfeP'h@uyGx (gn; X 7m|Vrڨ7a L lZE Z> oi9^IQV-}-!9QCr%~`O?f һ h0`T(,_Qqc]S-0cTaJR 8`_D(7?̇zd*$iHyef`$|yv1?F=٧ܔԨDZrQ"0kH?ep޿:鈅GWJuUTjsdMq e~ؖHCLBhfIWpM~"8vHduby*-xUebjZ[P()&@R7$<;[{- $A\;[کUAA0>q4{NËC/,m\WPcY-uhcFS$x' Z1y{Y_JC.CA{q l\q- ):l:b}SnޕFrQucpn.+}±c,PaǸCdś -՗߃Bg,ZoS47≯!rz/Wg_r93-Fͷ/&F(p'ȶs1"+Nu 3|$ [ vVJ]貁ڂ4k-46"7JEGch륜h<^qP, 0r1,,WR`~;vQtU<>%=-?>"I`&sm"M /!_ #pDok jKv$?t/4$ZcfӲ}YD:6.]>PKL9Lt=aM+?\WBLTX8t|g,pB;a,a4UST]:`5_ݗQ;rcO9@Yqٻ Vs[_(d@ 3e6FӢ+'ǯ#*@J[n2ҽQr5`NbUEFi3S}4dJp0tZ !sD T򌕯#TYIԣزТ"S@H{-F 1J$3dhyGak4^*WhaƪzB&';^P!]o`Y s-w@iijڦPj\g.ڙ~ p 1cPc䩁\X',ǯ7RLlاdF/* 9 a \d[Eg}᝺;r@(wf?vF}UE)\oG p B`-*_Wۑ^kHc[oLZ6wF$ĶBS2H{d ou8uŕNnw_ AQ!onL1xuOlz;˩jʩinWV CW6!BUs2E۪AS_'STo„Bx ŏ)յg ݝ Y0!֑̒(3[H .)?{R}%rWo^yE3BRC]7z ]q2(X ,yIȸYyVJ֍ npKa Ai6A X/dȺvqEHB*yk}Fb+Q%u`_?6냑ce]8g˾ d9"h 'W{-}s' H龐 |<$*ȲwvTd)Np,Rh$cv=5W~=Owʣ18qc pKN܈59Pvn"+29ٛ,zv*>Ÿ@9RamL H?uG=prj%7)G/v)i|l"@C3ƣ{c>elѱ,*yӦ a/ykrd~%7ґ=|Q+ܯ_XKs$! 7 ')A pec:8/{˻G3e5J5D2dO lPW63si? j(5masXab{aTDjwOh<%1FTKb 5N= >ƵqT0=ifN.H҆_w[A2qߋZ^/0pG"lmsIc+B4՝"w Q`O H^s4xp tN%Zլ~]T@R΁ ijq-yʨy2Ye1e8):-~냇##(TJ8wI^BNj9$~NCri (Q`BldHے/9upG\kg!^#sK XPXqeg-Ǜb_rajxC9#O*>Ws`ŏ1->Z70hBycj*L; G'4]j^2K$~o՞ <$ZRCѴ0#r-Fw$˾n<-ƷPڙgNk2N繱fMa,6MbtxnPM-S+ZmW +v^8(k|<]rg /pykYY56Ij@ͲMR؛ZZ$Aj;uj-V ɜ\ij#A`Sk |}^Fj1 _yvxf SzBhÁxLyq a.kʶHWl'X4K|RڦpIΪy%ո0G7qcj.@ÈM4m߅W2G0eYgq3P-!#6iVD xJ5z׻|TECY/@Utd+q׹JSfI)/ 0gxa|C`&zCfcHlc#nFV{c8r`cpB$+ZN &3Vh!*ڏpCAN8&ӓ6UP4J+u@`g^8LDha<{BK!"\ )&C ִ=3:ґ+q,$!]SjT0!'p7}=@t\vQt4;WX. )Ƶh-Q*欟CԜmX_ߊzn;'Zݻ>ws@!wR& y.qNI9F*Vv_UHx*AϱrM"Јj~3 0{GV#lP-+-Đ;{ ‹ ) WFa] Vf+ . >{Lu u_sq^-YKALwg X^2+u\q’M7h\.+bJ13(3`Yݮdh'ۑל,n#[.@yc@IltA-zdPTWD&>IsHt7zSߵ6iTI Y*=SԿe\ d|(턬%wzL +y?(ǩu dPAQv9" py4aZ.Q;Q BKdP,-܅rXkOt%q9~Xqvqm_~&HWb^XO7:Mk˙f!iMݬj-]*0)[kdθe3ޜH(8XǢYp~1<D&U|(} '{LD)&SũQV͠\2xk8X&7IfFܴx~Ppg.|*cG%9)ñOie >1IE9feL:|X&h j{?[y:*lj޺ÁR>Ei_\/"=qvOj(D2[YRzx.^PJd)oRʂU[^}WM8!5-UbXdmY|_m3PGog%ب\TB+L$y@lɟ~Y8k5Ҳʟ|o9BY)o'ZI OjZ$CbMi4(BN p]n;*EMH5!H*x ۟;* t1:xW3m;x ;?N>ar@'Aw'#,3cOw$V"q-,-twY O W~65^A~yfYuKR?m$x@.#98xQ(Q4fG^ͷkjl|_QK*!` ,9]2v`'AJD̎J?Ql蘓ۨNoGU+P68K4:2:b̈́zfOoۺ3MZ4H_X%у֤v3$0tm ,HܴPC>2K"tҒ~|H&d9vw] jɶgr%FypD1z&<,)=I 5/ĺ<oaSqRfLZP)jR.;ӶX:L)pF @iՆ$B.V{);2 ,ѷvP/;1/6qw r_7:K\=Gp1.^Bb4P.g3Yn2 DDAG Tw}X(IZDܲճzʩTe0ܤYݐweM\<Ž1@C>L 9V,GEݹyw,cKtREoF8)U #"Nu:ls<*]_\g3tm(.qO?{t'y;>? V0iX5WaTZmXr"BRD|a}! 2Q6-xYLR+_60ZBG=N' |ޱ址q_i,,W#oAEzBW@5&T5f' KLfgEК L֫Z!pc+?29s,*+_A__l+GU{io38C RErCθ#T,O"Ѧ{" ڽ]XqAxf^mKmǯg'H~CI&h8^hjh{:0ɗEV\$<(3=<ƧaحXtˊ5WzSbc' aZdȐswS|hJMJTo(wLWh֞ <&=e"N.@vEpF_ٵg%S(NV366%@8=9¹99]Ӈ4|EɅ$^'v>O2?S}X]ĈN^ dÕ"BإV).3$jXD7nƊXTI7Oxz V] 6wl0OUg6~go͹{7@` E V C I "c#ate`*,˛ 1xy QGIG];od" ۺ=c !d$H:T7VuH @Z.{fBk&%RM2L8Q~'P x-Uf,uNmjZ7 ue Qe:/ 1(kC>CZz+ AFu_aN,k`Hlsl,H:JvjmZBֶ']ٸ|4]g9E]Z Y8l>yņRxu/*A:Ž􃑦 cj3U9|Fq?1F}}4 V\f?tj*/wz&)|]̾WSp;ayO]ybL+U?nP$.7~VO. C_uOSY?HlQXw_#ˊ +C,} Y;"awܭQm"D}0$tq̊Dž ~CѫuPudrv 1>VTo:7тDb ]>e-!BBd?hiR ]b$3I\`\3>_Z^9Bg XsVpa$ ~b&\ܦmuHGL!Ayus~| 'D尅 ,=lj0;4UG!<cl-- U{TN+6QDFjI%KCb2GK23oȽXtKU;xcL"3z 5kW7m:ɠs$)ΞUy4%== wdwR"X>Ҷu51YB)BʊVƕJѵDWue4X+sKz^slN;0 e8qm3BL.&e|oB -=(M/#5m3VW@J(͎R匼g)їp@q-/y#r |οd lՍGF`R!z ձjW-˃:=1R,XWEB SLR-WxxJL>dh}lv7𕘚`n%rDz6Q/ g^)h3?V>bP܍fB\>MtV-hLzpDK$H]Ҵ$24yVSR+7΃#X%f!u1J,bG4J aj& R[Ne֪/E V5CL-vCV;L)5趑+][N$HR8 [~˪dAQ6';/qod ,pv F& /\;RUނipD6 X^6TVz8*L>5Iu+P䖢-)̷;9׏8cuΌ"@OY5I<"jz b?*/K!ҥ_9L *2|leXm=7@ྸh.--\e)Ӻ(7t b,# ~,`g~BrTnҼr&ǿ"Qչm@O\:Sd4:W!)JkwTZcڔÂάӊce */f`hьL͐뵩"Mn'(+#h3ʖ]ce9Lu`xy=%O^!b)0'XZDS@+9L'$ѷiopSձ!no4ä/ui-7.@){KRQlw,sU0U~k1_;b ^ma?!Vo JYv헫R7XB(Y2F 5Qyo`8/pe"ґlۤC.!Is^eDU rsbvRTo&v2`Ci-ȼ ~hM5?8zn^W-q<0XAcy14mc:NAc+?=em\]/%+}Irj,O_Dqٞ0l6Br!Pi&TsT^:ؠk'H6P_"!&CQIG-ZӎHOIZ*Zd8dG(Cjͽ\H#3ݭP:7 @TчP|3Ƅp8̑ɰe ݻyPaYmUm'-wP"gf}mO!6ip7e\"4hǠ Sk`),rM B(' |{AXtm0ܟTIwJ@GF&h.zt*?{L> mM\p %sWt?Ltx9q8yMC|TtN%Ee"槄 +)SO'J&&Kvq~ўN]0i;GkWKtoqKwg)L0:{Ұ|K&3#A{L3NH(VfJĉIRnĵ*1}Pf ]3=ҳeV\ZB7SS,^U+Cت=J誺9pn/GIxGQlxp-(Nٹ[ENN=Sd;0`Ôo~1 :.ttb)zP#2@;&AB#O`N)gxMtDPΕ@=:,iZs~MH$jŠުRmv Gȧ.[ 7xt%觤]X8E0Ui"ռ``l]a܇1v֠UN@ؤ(uY4?& _ADk e:@E:>hS7,V@ R,JQmWi +HOAPz5- TT}Gr'tP~hP;,% zXy3im ݨʩ`d}b^2qmD ѿE"AK޻s11OaT*16@2U`mAh f:p'U޵#/[˿+Z ^ʅ2ݣuYEm,umW({6gLR3K*b 6 5k0msx٠-6]G}^Ii9XP~d; Aq8FJ^iS!35 PչXj7Y+&U`k ,X52D/w vm ekpmz_cj5K=zJ߉<.`rkf%'K1sv8|T+kԖ\f /Ac4 ||=pqw%])CR%y bK?. P+L>P$*pnp71Vtճ-n,q}lEo EUVdjW0v8N^':m[# Lk&{?Š&֜ IU8ZHT-򫠸Jk L$fo,#snˆf7yh1xC"|E$8^l 52.J˂%i mbz|#jaAfTܳ-BT~JA(ƒ'pT4TZVߍHi6-n'M/rk$3&fSРIc7(S(21rĬY:,K3 sTuĤ]JZe;R kH$⟓:}|2 *MD3]zU}ufU!J0`r[x7ld!ڍYGtыQYwXcwo޻< OXey61L3 LCe )ͬn$@竰"<z^X6o> :PS;y0+% &QD_,l0a[&Md<&'4܍RR7m^j[yu֮ػ=ԕ{z_IYzMȉެ?woτvHI$geպm=i)N45o,3^&4;~xjeFbIgpQDYΞɂC8J!n/#|H:TX0,,qB\d ZSq[hJmFo (SMI7>{^Ts1T1E +ޥ'ҵŨ~pG 30RQ$NVi2IY"`d@,-jW㩼g 7E`,.JƸSߧ{qO+FlIɂІ^H3?DH Tuwoٕ`^X'͘p~L٤K%4(=ÜL+yϪ>) 1 7{WiWwdEx~sEp{~PNtxh#]K\DzLC"q͗ 5 re̚aM/|_Lu*IKw1ݿ?Pmm8;\zr@ײʚBb+[Kn\D~gL`-zIpd^ clY4g3N^`.O29Luw3 2Z0R6M/ejTRDx)'dW|K޿7$G  P^[&QܥC]dwR:k/rڸL1lb}Խb` #'F‹"{s)#c]Ꞵ7oΛ="x3eEHw-1tUL}yEwfEϫ/Pi0"3ehń-٘ hմs)^)>G_zF'r㤼O\ƀӭ jͶmw)ƨϓ>èAwvRi'r nXu\+Iɏq!H6+O-y6}4bs._̦^H$RZ bajjMٺa{V[ $Lf]Y69ov \iP1U bLO/CCRZK٧7=EqT40CBآvWE?z,h/7y]|fT[RV'ncZ\gs܃[2C8w\. % J@g>YYYl4$>vaILH=M{u+Άk5d@UIkQ>q@e 3XD<+# oh٦ M(fZ{BÊvz+iz2-|v?*zL֧ۗ>ms2Y&2¤_YWd.#DW:E݋kxh{ܺi%lLt^pMh]*d2qfL`lyW'RG/vBxʣ!B$ߝS$-o?́HIM]% u`~b;*k뺦V2aloH\ #b2aIWv(LQ_>?Y<~ùOm 9Ӟ_aS|h'όhL4TS2o 7+0 @ü0»uﲍ Ygߏ;\[O  "VpCrCG\F)BRՉRYꉼUB-Ñ_)XK>B%r fL,HWWj{]ʃ4AFH!촟oO6bН#K¢$Z9( 4e+uTH{Bl"=+0mfo ;Sptɍ?m>Oͦ0 D^/\uopi+s1[WePpüFJTsgVCqrk\w-d@ݡb/DxXl/ w1X0bLp[ wBm1Q+h1& "-,ӢքUxLlՅ佴-t6hXf{OR "=wi曥;սVZV 8._ɺ=E/ehm^b( 9pCp@Dώ Ww0}hj544k-@LO_QP1G?O:5ֈzl78U6>6Y%iv^*8]EJ]m6fHI%};m oy=j3 >/jaNz?y43w@.m0 H$zf1lbyJ&zjԲ*L^lW*/%IZ2r/c>.tl<s~ 䳯{WnRo\(<?k%qaQ0_k B`$iC8 pf8C^#b4he܅#Phܬ.EtB2$c~L{;mNCM| 6[lv1)cRMV(ɍ[@Glxv'Y[!7ZE?gno֚VD h{Pr|vַBzFRac[ 1Cvl@~X y ZƒDH6ICg_=Koĭ*%%m&+ljwO37фw>nE6ߜD)ecr%Ήۇho}SL s"j1ǼRU*8`(<캬HȥF;d*uH4uw*ҐN:3u1f H5TR v5ݞUC £_P-b!И.\G@I{/QS<@b%ц!ix8N}92Vs`Q_Ab+b_ M>٩Nyzƥ&g@ŊˢO6x[-g6KoQMh+rYD"`} Ne~0{}G0eDI {׹HYyާϋ °.fY#\( Z(XP, `9w&b3uUn!S# My{AH(]lCTUQ gs]%-r'jXq`|\JOWo͓9} h3TBB#ZY faviv6)(/65KO,VIZl"sR'hŋE%_։Txщ~f^cNb^=s`ud:5d2P~@ +8^.Uڏ@Y`JPڻXg,#Q"\7(SCR̖df-ǫ$S-F{ rNų^췩+Fvu,xn?$?7T (sXxdwe.U:5JS*ip9iA|ܘ; "W vq4fe9S8\YC!cU@V6p{uJi+ц`w*FK(n?M4rv˥- QWxvz+-~_7*X#7=dYF򙷼ue_|Y7~jR>.:'xsdsbpUçuPO#]P+D3(O=Eij)[`ff|qg#{C.F)Ey;"#qY1#8r~t`ry= F,vC \H!^Oa@|FfF7**c G ,cVL_;"[=Q`,<*1 64E WRk5*&ʪT+[.Vl2[ytv@k'LhKWHhwPP,S|aݕ#e_uf ο9ELOb[T BH'4BJ%Pg̔l-Zt, 0[M*uM27l 2_0H O tI'шq?,I bNk+aO|UPi\^Ŷv9&ic.9w ~pR!!E+=z wZpjڢ XUaT|S89C7#-J@<9Z/($CaX/0q E}naU\RsDA,/UPat6[%J5 ?U6d> k8M6Wf{0a h% 7"x4d!pt~E2ς!C^Gs/KK=ͺKDz$4xpgG`(ht{Of;p)x${,MgKC׷)ue?x|S-{ҍk8 `DaQ (k6Tcm6-6v*_ en -"fM~Q鉣E/px%&"Sj)Ǝ/RY9_ҿ3qe\5V( 0~N2y"A8YÈIq+\^L%1x&%JOT`'$ ݅įYXx56xbmyyl'oIb )-̄T5=c V>kWa>ND_i+D6ʯ1\7Bl-[H(]3έRcx,jbpxB6S2@||_>Xtff0b'm"ag!Ѹu[_Qgg%ਪsbt/lkCg@NT[3Zx"Poc&$ u%f~Ǵ6QOl٧DDߏhSyZNvdГCMGzx;dZFE|2FnhAoRU؛\ [@~<3 Opca#8fym7ѺO;vUf"C[;طH$4MU⣶ٰ*οr~vx0T2kE+Bk\a$".3i k%qgwn-CP{6$wJTI<[WX*=l{UԢm!0ܧ*v: xZF֏^`C_90U)A87`C~ΐA5^6_C@=޼qlTXئ{c1;kH5Co:YH+3C/,}Kjwtx0*wZah' ]L<&[(9r u#-.ל[=AAs@pI6x5nbO`PL{S5eXGYQc[js]B :эs=cEq?dO7L z7(?I.:&gWڔEdvY y vؤX ` [ ջv`dG# 5.L .vOxOD {, =q#/wwm:5—KPS->PJ)V'H6yVt"o׺^z{#9ֆF0(axXY}ʤǰsrK? QG t/&@L _ Pa^^5/+!+pj3 -o?1%[t4i2C`5"AQθ|Tna?jnurFt~7t!~ʳ癨Kk<9GtPEU~[i7w?.z-4Uڌbʻ%.s"P4_멾>yizF*i,)y_y3hI~TMK>B|\@ܚa̸)rjr* gIjӅYGfAdW(qo]Xah)b[&u?)z nf`Hsw-+QB-L<^e̿VtϪoVW@4o,3bcYSW>6YP~-I ȁfXܰ뛽NURi6p~߱zo=r *# ^>b!JmaN!@Ksŝ5uBfyf>ڟNN{<5* I*D$XU_GrX0.& ))0q}p,'W D \{<>|js?i8JG sr֚0,\iGMsW4K#G$^ 8IޤہkJ+61k!׻޶cH*>:BC9Z.Ķ*O',>??m}{ך3`WhKOK2*޳CQ)¡0Y^Gj㖏?F*V3pt9ITb S?[7p*[Q7 ؄k&-Vxհ夣Z&rϙ Ąe~ •ڶPlS1'W s"h5)>9x ."Wi_t8)7!Zs+`k@c6@x&vY_A*x붛ʝ<-θɞʯ3:B4}Xɗ%q~o, RE&~,@;!c6$0D%}k*gD&G+/1:.uq߷J^9`3I\{8D1Wdjn)lp=\EbcU]a^zBZ󚡐/2p~|'P3Pa+dli3|-r 1=O -b9AcWJ ۺM?avM5em Izחz8ƍ+Hd!7j})DLla60Z{ Rz$Tײ;j]K+vԶ_v"U1:qhYY_!c7Z?i~`l~wX šm)r+(By28 gxVlNUPEWT[-{U_i (?yw0A!ܞ0,1EhyHU]qM|Q:F3m3C4?3@M BBvP ,df1H0zF; /5KmRp$NO!3,] Ƃ2-c)#)> 4'| ]pė/eo]۲ܙY `㈩%>zYER +[fV/ XO>WO7Q0@X><ݐۈ8ڤY?]seX Xu83-+j.L~lhV{wOר=APz8گr&HA:© ˰+U}[?SD/滿Ǟ+l;nG.GτHRS V#YlWς:^}hrxq"QYQ,>LX!ȴ⚤= ѦZ8ߏ$D | c/I&עӞ_k$u7"sиfS@<'r'PY@U[8'5&VU~Y^֤;|E@"߱QC=~jjej={ϩBQÔsP_sCN*kDdrOBz-&gp5a 7˝žec6B pʝɌQAXy5`YLt' 1 m4p Ðyi2@GI%dS&HvE|t9HC*939) ヷk"MQ,ݬMeO׍CF,Z<ө3"{3 #@P ;rҀ]uy{O.IE3D"ɰ,L8E2ڔnvtgropnuJ^W} O6'V(=km1F◗XYԦFXʰ(ʹ)'=&Ʃ!F'g֟ΊA3CJIgK"2ކjCjS˩r{!H(05,.fz>:^dbdȶ8_gzCާd29 Y =4$"B5[-͊Ll\ЌFEi`PiU& AOy {ͭ`|w3$ $NƷosc.iNG4}̴:iI;<Ηi dܡWWpÎ'vyW(H0R}Hn7%w)D2TP=5 ]s5?`YSKiF ' G]58b򨜈- {%9B~DG޾4"J$Ȗ#Ya+%@E#_o:a6֭wKٔ#P7bbr6#L[4n񕣅-xL~[K@N rDc2 0>9;lٟqưF9`r|F˻+:3$-"F̚uiN Nq[PXEo*i_/m!FsG!3O(Ymɒ΋ /Ik"˭@:^{E~>_}I%ȚyZ(OtH<ѸlX͙;xcF13qAcdPjIC22ZE+XJq.z[W\-[^4oi273rJk4f?j:04V& pckiوme&tgq oǕ{JLIwwZ [rڞ04oL R?Tš VdFېEpƍ $W9e){"u\ʭġ厅sl"Ftb<E٠/ltIpebz5niɁ{ ѷTܰ#&%(E+¿釟O>o@Q gfT..JՇr0Exk%("՚c_ׯ!^v;13X#KY+I cd@7 u#0JJN4xs5 *Ny]QρdEsyu{+T+~R 7t`-Xh-WgV!rCQ0 X}JhGNR~&0rR&ŷJXF(~;߷||x^q2M 6Gӳ%k|WZ Z[\o$+O0&j>>Lc"|;費q~V30K"ʲ!|;->Z;16!Ek1%(GgQc^_i(0`%v?4$i qq BXoik=XKM!gJfڦwws􀧻YG 攛G zZV?cPƜ`WV٬=zHmEb IW`7YuBJ_&ѷfŸujQtoo RQ"S ,pܗ9StI(ϷLu3&@,JOEx{gi QRLq]txzd`9z-c#/itўR|>'ͧ0b Jt}F4&CW0'HÓ E| îMF0_@F%5B5A7=*N0+eX5-b.^._IIq jIXpszE/GZV}gf+C| :R&E5MhFj"]ukbSX&fLrKw¦AƮSRԒoi@ǰQx1SiهM9 SL.TIoAg!H,wnMzBIHJy7)4p]#e MlR&l~UYC-PT(T4HOugI&423nuc}t/{̙+O+ Q|\qQ;^f|Iߣ4VuYn8Ŕ>$b*wB솮Eo. (x\Tc}S9CH<1#| 1W֡9=왯=4.:\ g#ry7'߃>F}O581l?I\! C甦*gkG̉/MbL}N-av'Gh ii!;eFa%Rkb-d<Yn۱=1ko]a& Hނ ;@Uti6^6Tx8kI PȪRkyؘ3"DؕkR3='a ,-x$Gc=)#IAh)hUf?c~L$6IG|-C3"qY,e%َAύ;/tX][..-K!:є/F*7z3uho'p'vԐ:@J39Xw8? ',O\\nC{ Gy i""}#{gK:wSq_n_-~KEbkv"f)JpUF Q!F 1[  i?)ikOX̔q.r~Y&;2ԇJb*WZyp56C-Io|] , )K9 ..oMQuVpK$S3꛺p$ 46m˶CN-Ƨ9w ;EBLӬmq|ÍOz&W fQ1S} = 4m]%J E@\q%}XI7K1e`^̋Z#*POE߿0% ׁ,Mnla\5r42$Dc%M꽗w;9Nq; ZG$.j׈1qګE3DoÍk:{˰v䙈FSF.V]~133o36e%k$NP޾[t /SP֗+ҖwӪ4_7Z$O0R:&l-;7H 6D9r.  N5U>T{w>&'u$s}"epFEk dpK, r۰]dn<68AXb\%H> ٨RfVLKQoGI7v|Y0ē{%deTҢؼ~7H)|s7 ϦbBlR+ ˫ei3G+<ʇ Q}O*l , {N ~غmwcߖ?kiΖ+_LVҚQ_UIrsx4u81i SogbvY󪬕>ao9EċX Q~?KW_m۟tƴxOpu!f9¹9UM 3i1c-%?f*V*>izX_ Nfr8W@{R4m1)T^](UiR~>6֎E^.j>qV%^~XhϷ$`ij]|՜$lIgy~: 1‚/Eh{lճZO-̐u( vU4H]yy%P"(Dn-\s~1εygUr8cDvc"gHX-KS*UV0,#i.='Ml>/BԽ ,J`ݨdFӧƟ "( F6MMתZA*ן O&>FoOs#I5=4*TB?0)%l0LBobh"ZI?r9Hg)710 ,1ǩcD<}ddT;6@' TI!3H $ʕGKDVG4ܻ`c`I|ZT֧X$q ސ|K m`!S % Z2'g\Hk̖G~Dw$Pr)+k JEؑ<\aBlKw!5 fzQ]팗ȁ06C:`& uDPMvZ@:Ȃ:EZye|L:2.I;%w"+s6כvuG/M]COeE{LC$8 t(M )3ڋ; X-/-rȰ@: &VNf W;}Nj5߈8ٷ!clЗ%Pc M2lid sxe e`VXW+)%/\PҽH*W˖UW07jewsC8rjM/c@SJN[WעC뉧-[ ]iŽȦp|OF۔2r("OE)=|K>F\6{ YyE_i"erBj(eD{30xЇ-'`rIKF {O6KO9z!RfV7c*ލ-*" EZJlN;'lBpIQAUȧE9O}ߌ M54R:vaRkL~mUYS.]I i6۠1պ*R"J$av@(*2JYCC7ݪV9 Qr$ؼHK`dcY\"A.D<s6s\kXo"dCI80R_ZzWѝ\$~OqtK )'<W=A*uȤɀӵE[ևM̓,G?z%c6f_%N7Rc nx7Äu\sz) SHK1~-qZȏؚeXaND4.p^p ACQ Ü \tn>]Թ81g{! NVlLkp~Ds] CKUU= jVX[r1"No#ztz`Al9Q7):sǐcOF撱=]o4!?`Hh:6fViA$asA?r1d MR%`S^8ZdnX=kFIA%+?o2y$b'RSYieW'd#75flenz'׊sbb,JTRRr&ѮR y'aip{B e`}GW>pn؅'NEg&xa%yk*H:9@McS*/wH?] D U|/t|>rh`hA~ň"y!U QgKq=` |K;#%L/0Q[\SR@.Z3%v1DKaTaޑ+}Nkf,|yod3T ? QI8oq5ĕֹ8Fh[&G\vA? g*C/ɰQiP% "lNہ<9s?:@}!wph]jhQFPj~_brG,mE3̼ B(Q;CcCgNQF`!J> Gfh*em.y'j_ǹbvP|18y{PqM=v)`h#za/[&jŊOZ|^tEl%Ly}%LPibT|2~!dO;"W ^te?#l$m˚#O>e}~En F L@₾+Ʊn2PzS]JztʒT1QeEZ㼸,{Tz;Г#Lf`==娅R\"wJљ:=B?BEa8BA|@QSN$`M- 8'y}^#Vr.T)³ Ȍ*~m.'IfnG&E[ȀJK="o LfZTe)VS]1!<F{ d?4Hy`ljxHjvWFʝ޻}G*kdnT 3.ߠ};4q:,u>,KcJkdBC:aH|qNe3dPEn&mSXņh!4PUjzJwjw&<KUfb]!h6v%%&עuxOO~\%eZ92~* 9X3$MRąwq@oխt /pp2]a|uD? S:kOf24_ͷ0j"&LO4%Hiu8`>@F5UQ1[=æ^ /TGtu1.P0lÆevSj)j8yo`bLNA*{I哯3Kzä5(`\KV'c1 1.F1{na$r$!"yqi{ABe條/a=gFbEvK %%Gץ\&e&P zrhX5Aj.%Úms_cZ2(>/QB)G'k27Ǧ8YAjsϊCuiFMQ oU_CXȟbY  DcB=5X]cĆPM-\?Pr8E(wgMkuМ3tC[hS`8QW"FxGO +;`U l^sn}ԫW"|tU2C[$`JZeYal9qꋓ/D iKkmL˿^ސo3R\ Ÿ}%e-a&'. *JKڌkѮײATǝTZ1 .w Ox=<,GBn.E=‡_֭=f̞ <[ oV(KS!X)Q"҅eZst̊O^lwu]+O)B 1E\0yfӳxTZ¼HE3RqSBx2 E]dnJcսKt)j7X44lyk':qRTkܯZ_WsYVN׸˪֖u9podD+a?!TmHh/HaJͪ<., "[~ UV:Ty&x,Z"k2 µE"\T  KKK8G֬\lX3G&} 1 N$}m^Q7d[Pc" ;+(VH8ǥ0]_ʷΙ,ŷ.t5 VUmuY )ːK뚊WDrX'Hu!3f퓎6 *&jD̀!\j.{# -{&^dv}:iO'֨1-}G"XQ"tD) ´|~+Yj4Mp ;3`Η5gLCдw8 (ݜy$S\Q S;::yVV!X@R4gDIti|:ْ};Jma'mXsa-'yG9Z;[B*  H8B֢c %Aoj,2 KvQ@1p9j")f/U6H&ܱjlɍ1׉w 5R<>n\фrCjs~ӅN_wn_dgz2GedkݰkA\{ݍ§[:CQu7숊!ז)0!&sqgY6 sGuq1# !)}z4ܔgށPUPT= x N;d $=4HV?O}f7َܐymq@":qʛ ^;;ΫA:2#ty0UΞ*!a[UDX_ *n+P!)䲂*CR"駍ڧ  /_=S _Uݱ;76` <&B)OC8rL@)[4{Mu(8i`un˝K,|T٠!k$Wϭw@=F/Q}އKb\ca2 B1 *j,=tJHo.eXwuAn|\&\Ζ . U*($+C-Š8:?9?x9Ij pP^adTcidTK=>KY At sM+<@Ba~>=wå,.8*k#$`ik k>C˩2qiJzA!dBQn _1$NN~w_!̑ c8 π$\\|idq2=z3Yl0Pg6l\z?Go0OL :il}Cez鸶=[GlO4}}ո:/ lsx7(ҟZFSSO-xݗsB&J| @vf% NPm6QXuN3gBp⿖oMI=(fͪ/yOO#×OiEq!3YJ{.,IPcjQ[fk8 ]Pⅈ^+>HM9ӹ5؈&%foWzo -&Th sCX@*p/_,Q U n^-ca5m\r myWUӦH*E(O6#?_+ߏгu*X>~uB'\\Bļhg@LE(Zh8M|.ƠӚǶRf$86wSx \}<Fע<9F]qN`5ܤUyF~4M]Th o?h*P' &@]#^T%nT#E 1Ohހgz;RTETؕd:E22v.5>J5?S oѩLre-!YN.4 ⪿_}rAW߷uĀ_.v(*ą5a4NJwڎ-? mdS4{g0( gBY6׆Bo(Qx#9ߗȽEѶc,Mf2e"9[u>!ej@KÑ!uD|eSU6YbaQ-! LK0둃g Ȉf6p{^8夝0!M 1B{M&σ75eeZldP<r&3r(|դr؊mcj 'f.D!~JHb\m[;pG|PkBHhMOU %Yb\QYaJދƵj ;1gW#^LN[x3x蔐!, ^ gE?L$qo kG̘PouXWɚG"̭=)\C60svtXt~C=lQ-&k-F:2-:7 &9W( |xvP_ -H ,OݖWdt"Ŗ{yRFg5Kҩ=Ibc}5R뢌 8bQR Lfr"1N:ʐpZ1lؚ * . |[k6{%@8G>97wcvYͱ5Hox!3NKKQ S:[la,]GO|WRv'Ih_.Y6/|ۢ>TP1H]87~&piN *ZJ51Gf_B'P'5k4?~K *C֞՟% 5DHgOi8߸zs+e ! { ;|?4mo[}P>K G;l|!~rzTʄT#eowNȅ,vX::BCaJE$}zLsc4UA J9=' }wF!cJc8y1zu!sֆަ&x3o{嚡f ?U}(U 2ڽȺ3אJEDE >l$cG0j l8t'ƲR6D+G7 y 4+'+l-Uv/sXgwmAR( 'K1a y^Lrs0[&^ƨ~Vb iVkYf +]*vfq)f| QӐ &l}}U=)r+[9BWqL,\ȅ᎑+ObkԚL_I9/FX->kAxO+T,&muIB01S@nC^ ȨyDV6H]ڼХŶi4Me0D +w*5NfinTmvy6%[2'#.Xv^b im'nTQ˚Ba#sj2;?KJ)Ӥ=zɃP0òh)A lW2Iq1d{Ҕ{H]qz`rlY#,!4MruRD~TshvQbցH{M'{`|h)B\ _<<=~Ӫ]WlNp[5F78jAPݕ~E|Ӣ(o(af#KC<eHML9Mx*яZGMzZ.8LLy]72ua_'dƅה -5H_WVC3壗Ry8+\54!=_.3{W#⹢CITP(&Eޗ ஑3V~ +Ny_qS!!].G+_ݾ 0m}P/և.^ Ҧ)ⱽdf Zݔs kmmΪuKG(fljC;7@{ E6" 1lEE/QWEw2LD]$97i ],]?w wJnB \+~9(Ɗ?[ÊGԨp?8lk<}N2^[Pdf%]CH u|;3s/Mﻤ&x/Xϧ+ a&~D!R F#ʕC+G 8̹W7gpvn3dg: Q j Esha`\0rPi$W["^$$'qb9%ܴU!j;-JȂ}(!FN7 ]!m2%e\rTu]`,2 P35͔z}L^'\ݰdVw!f}5~0Zy1e oe(Ϙ8qg`t>HDeM8FVv׷/Pnc-O$v@˖& qoRji_R.AO\PKh(1%*PˆʕR'Q[d| cZh#Z-QnJ،ikSLx=$;{@Os?ԯחs4jҋ42yۊll(t&ws͎1[#sLU⠴t5*&/5<ՁTlC\Z3>P3>gcsiN&q=*G=%W 3eREtH9vw*aRXjnF=Jo8|}q&ϱ6O,? 'f)'sᢽଷ\U=Ϛ!)-jTDiF SMiʎ(:6Xh,8ǕC6* &kz7Q\=A˦epY:A 5dpmAs`*)=C8#PH4 ^v5 9"# RE[٣*pΫz X/@b%Oa`nf2@<+ma~ Ah]< YPI&TO=,A=W3Sn~תQ7w&Wt>Af&@ptqI2xSBN@0iK{3 {\v!NX4ѳCӗ}.oO$3d$'A2 9sBmRͽ'rn#(<%9* 9ZU6Wa࢖ĸͧpʄ{Y㽳\{I;'8Vn̠Ԟ+5J-Tܥ،ij-quL@մ@ ,'&^0Nzirqj w~( ?Tj?"^Q Kt5^SA#bU qutq鍈\"96nYw|EX)j\N]J}N+IrǺ n  }i7u-H("(6Va|I2 U@'wuQ=2_G n0fc2t E\z^m~ yk F/pqG&ui{tAӯQ` LӀ#SP#Jljt)iR 9,`5>Ё Zޤ}x嵌Y"ط,V"F$#΢}u {{u'IO;%ڦCt|ۓ02]ָefޤ@.)&0ܣ@\s*7Qf6Q}`6#-tf'aCl1ﴹ'srzǫ(W.g?/ZPWBnHE~5 L`$i^2bt #.Q2{pᲷꃄRsFpf[1I(-v )_μcH^IݱW? 8%֥EL+f[?m8x$-0. 㜫EB % =OȀGՌyG|wi 9oI6_ҜS\9Vs1$^gw3p/U*sg̽!e&02C2g#LH㜰C>U: *UdiĽMxHV۫TxI9 )@1z;q\ENF7 ER u!oʱVȫW&*Qq Wiq\`2ʭC=1e>si7I~xI!VGO(QYZGDGUdf_7)Ճ0mIb{5nCy84'p-ŵm #,re>-&/> bh`?2 )PDxh~zi\wɏ6W"qLMsO!!|Qu [2nu]. S mh~ "u xyd(PNSR#90cϨ\B/;EhV?:: Uq>4)rX\qAV zI;~B걁T=4` Ð|$*LM0*O%mkD`٧:g=3=Fmpv%^Ikf4$voZw]8E0Jd`9(7]8o>QבPp6Kq,}Ǚ;RCN0li@.G{'Wbt˕U" ڶe2FA' Uwi >t^poep4>ԏpA۱CTDby{. *nTyÆ{>zFos=^p|Ʈ%sTקY]E@anvl֌=<Vp.tP;'ʀ`XKْ~qLDӐQ&M;syO[{8]i19$qéT͗M#6*MdʽEZ‡I^2=yzS^yKR`0lA6-gPs2CT@՟^;q5HIJ3/E&:_V+̛JXD E'fU$wlwuI͊?<Ÿf|` l]FHÚ#16 h2 d|/#Ȝr g8lY (CCo`vB ,ϝGy wɡpÈ5VY'O09 U>E8VěccY${fPlwiԒrϑE62+L';\n`TзpX*_"s0(hVB9dH?e!,C%*}A &.tW N杏 fzꟁ hy\N#H N>q8oY H,X%!)!;Dž`!}we>@5Zװ}R!Х/L[aR@(v-*5镺9O~w%ត_|-&&_ʖMW1mP',xr6DUAsj.,s8 Ǒ*mTe͔ ;`kl.g]sLtj97.!*"ѧVsrJ&P'EYL-C$E9}XRrv+g;BS, XPE8c$]o\/ }T1q눃}CT?z2Am`ؑ"D.0Ε<']t]f{(*[`XX#聞 - #eثs8_BMьT>"g5ͪz,*WQ)Ɋ/O%"KXKz g^a#g /XTx衡 Wzwʞ}){<| V/!~q`e<RW8jtTNn{>0?xBwpzyfGv4v@wmn/ /A.;*BX0܂1HePyW(&bDP2eLUg0aRn?'^.C:SHi<˙@dz ])՞P$MA_)<{ P.~VK =Д4;8 B$2.%uFKS~,׼1\ui7<޻:ڗJh,82D ӫ RCVg(fs- /P^èØGN|P%ZKHqS-BY*{͜6xPaK\nl^;nrv?U)8T,s Q)gwb6 sFMꑉ4{ZI/!lj';''ی=@R 9X˓5` Aԗ"3[$bVpmO$-% SW$E"Nt;⻄7hv*0eOC!3s j9w fAJ.ouxTy3 P9bykV G}o05nyEVxf^0x\ {*y̨c&~Ů*WJd>n4X]6:9dw]mAa0beyNvǜ~5ja4?zACYKC` [k]_c)eD1يacq,3B2&dr26HCБyfuQH T5,Ѥ9xe_U{%1Ci7r5U^^Q hl5YRCPGOM(~=1 \먀5Kc 9>ώzL3 K=v u'$J^U?I`ӌX{T%_~/ׄD@&0@j6('=]6zo747Rga܏a*O,Xs|Rl*Klᄶ`j! J!dMAP2G氼@:%~,(v"^OH!cdTr+3 1 L雺<Ӥ|T`:0[yM .LP 0sǧO^ӯL/fiQhV^7ώY[yzP"/0V1DHcp1!fO*\q03Ϗ*],C=zK3VL%yߙAmZ"pai 5'|'atk!o,nӃN~tٌ`L95(L-'mʳfNN].y&! A!B-gak4 o;?j7ͨIe lj{f@Kɭp W_2*֓+MZx,-0Mf\aX+}'cw7+pb(ob1=JӼg;=vdme_) w7]v!̅bS(H).>h.V [krI\TOG?D EW j~Gz$\$?nG@ ?dh U|!~x+gm| 1\n7-VqWK#MN3UuV`R> ĆtVȢ蛢ϱ qkSa43ӢG^6B<}:*ҶUqꘂvG+%u)tYY{=TK=WϺ}Xn/UYqFۗݨu!P-6BaV(jt8";Wl:3ϭ[j= z !"+Ȏhٞ'h-q'ٴ`ӥtVyFsVjiu|U<6\ +2}L F{7}Tζ>&HΫKWf&)9Bư=F:J/}hSfPI06Α7]mqKlHTZFgهt_xե_MQp[RĽ~?" ! .Z@ܬ6klT`-5Ad5Uf4p8ݩt2{\JOO[-_u3w 1;z+EM,A`ҕP5`ch\iےOS`r|OvODz0O(t9ThSJw]QC64Of^ ՘H?ҤX~. S0:CPfgwm6/ʌ?tc8KL>% |o Xr|^ ١ӰVxwv;H&l1@#Im1ܘqxp;rwܵa/_Cn- .EKToMcN<%ErXE{ZgNi7 3ghkUSa^썕7,|82A-Cd*r㞁6 UHcʴ»? ff<7xj[$K&vPj;2 Uh^3UjSs@ϹpcPNX^2ms˂_}Do("SOENQQcAM&dxCC1q t]YrqS wm,H/ep)1!Y+[襉>̑3{kMh#,{4&rj=wrܘsҔf](]0BNq4/AIIMC_VJ >l2JN2_֏YΓNd2P2ˍWsA|hE/ԭ@ҮsCeY N|nMSz:BaUsNP\Q'ڨ+vMZ6o2VSh$uZ}Aidڐ ;?6ÚF eA-d~;nJCPEXfyn)qUa &B{EW˽*/.'SBn/WK * ef뇜Dr%ϑߺ"}RbkMҒ FK30Ț7Ju;bxgv&ǓUe+p,慇=N>%{ -bg~ 984 hcE0c=Αʐ-N.f5EjP|R<7L}MbԕnTz!\jsEyRwηtefAh]WVb{q|h+iu? :2IFK&"塻N}L a}/THW7h^{l+EV2QMf^Pi147bK|4_/Pޙ+0' IyŽ=QdmQ'gY} Ft5Ub撡񇹡w[Ox[m!ZrAß @l ._-% $~!Ηs16z64%큦ɖX@;eE ]Kz 'wY˸\_/ؚ>K -&T?s UD'lSnM7N h"^C\q9x>#߿Oe*QocXIS8g}^-I ŚƆ9BY`cwb6Ad3?I%bVX(v\ՋUq]{aRp&m|Mp]wohEu6S M"N"JD!Fs*>˥ .;Wa.SV`^Nc_VE|0i !wOk)6^Ldʇ$T5.H7+6f_~ @O4A92$+GAMZA89> 1=@PF{'l p$gsփ:|;|{Gx3 'f8<;b摜X{3,YuP .sk6%x.;IM"]7zJiïV@<TkG~Nm-~,|TJBFɤHԾ+ҺȦcK[RP*C&u ;|!1Ǒ*@G}Ł+Cヅ{J^3@rdXQ*^_G`UG7b+FޗG׆6$/QGρ<.ݖ3WhH/}ƥxr_a!MLԕ/piqV.r@,[+մXq}CiVb,+7g 03)Dh/Zr\тDȔl9rIKٸWk7SyjԲ9#7 [K)nvnJK Xp77@"^?0虋,*y\n@gDrEA±u}M7 GR"E4EeuQ;++CsXpyozDЯ Bhev}+ʑSPCvDjʷO7[_ퟍBtΠv"K4Cac_I/!Ei:q2{@?7ų5;o9]?Aj:JR Wp=ů%{.}W#JH6*Z4W1[ȲEEhh10o!>rSÄyϞ3Gs  >rrapLDWDCuoؿ r'lz 7P)ٹ-4x]w.P?dk):C3C#2r:$g$CVD.v:R5HTΰ7C.a? ʠO #>!`-OLt7D[prN,4Z$Q#0&Tcx!LY7)((}eqĝ d% ǫ30-.tNһfIA j.{IU.k5R}iyܟ`he{/3IdLZFAޮ'U`MYq%4O#ohX9|yMq|+RpC#4 YC, V( j.AL?O/s%M4P۠S)<|lD{'+^jygFx51@ 'Rs۬9xXW/]<͏C*Uߦʞ#Yws2=f3RQ ~<3 $0=TM/tS~-vYS:2/7s*tyN7Xj·U w3fT9ԭs SqxshNM]4-tߴۺ€_0tQsv ȁMйaB5Z w ۞.;U0N ְq&7B#_`|"pbŶM8! <3/ar<|ȳx>rGFY936T*PM\J(Fh}NT$%Jw.f)-'~’2ﯕ9c;.MDOT Vy&)', `_MHU{.?6₳Ndkѝ j/ $Ɉ"ܿ$l1֦wrlZ}_SݡA5)B` V<}p0jZ@UΖGbt؀NO,z7DepP*7*U5_ɂ5фFM%'~ Gb?ilJ#~g(6J62 1O pyv'ůR-1yT!;zjԨ@G_2S9mvj7Ԩ|:qCgN <{ov`5CQ p0gȖA[T%h 1v?d@-*_*ě 4uR-^PRиO!1RJi.pFc_׈AW ּcsB8 AvF/Vl$V(~7 >sV1?)R^z#y(tybUyUꡓ!p]\PMBYbSq(F2>?Π6ĩ ތ͋&γue{g]l;^r1 *YLbj' Րhl#T4(U߭Q5\\Mf)}y<]>?PĐ / oǣ^ Fe: 0f;h8/7(V剀iڙ}6$SmBK+YNI+d*z= X{4zt\#KZx7oZίD!W#1Pb 1ܶ#ĐvLbGy8b@ClιYؤQh%V;ϡJ&yV1\ POJã.|0ۖL<Ida黕J T9oF=22))T7iwͶ:MP4(HL?Re g.+ '\z|ڳn U+ } ZÚ)` uWWUnV^:a`OF=*CD/B!=]J,wR,Ž'6uWI:g8p\ 61l`%"yܣBty1k ɿ pg&V6lNq2^O\71EDhrPis&$. SuIx}{}Ʉ1On=?'E1ՖsDIb>w9sxujɓrUL֑Fq=QAMh˙jIwMJ>c=Yʠ{K/&\ A?BrOurL™\1DSJA|$@wH" r(X±46 +#ՖۢQm R}.ݰ.@uY_F@D2}=|"$&GxCem5GrYG#$[\e3"V@V;>KUT籆aݝu.-W_`\nv-la%?>G^LS0ZsE p/HA"B vN]{v$jOIyKOPpmoD V y7[5#V;1 .r40EMqZ|)¦`< tZ J& 6ݝSU n*Z{TS덖+kyW}p'?#VA xjm=5Gԓ$"%F48D(av? t'9ѬڻacsL3KTpp,trwu@ė M8X"'j<LD )PMߦ/(QP,q,jng8ؘ)nT֩1l!2gDn A!/0k:Pfd.Kߧl*GF/FHۺ>L㈑zrJ܃è:B ~T3W"U c &%2@:JӁwC?'Ϲ*{hl:"43oհ5e/ޮO&u1@-|̂vs_j /7BU򪔉:0ٱs`u6Vڡ[iVh .ŧL('c>{="iC.;@ZRT!mFuS;?mQ].7Cb{*P.$\91NFԬ$BAV1&&Gfا$&jE?aZ6EXgG`c,?Dx[*؄%CfA @冠T$u ǡi 㻇/tlþ e6m}ȅ4_ d|?V?SvQ oLt 3VfF6EYTKI!'? z_l6 1N4ߘEv{PuOU8g+|v㐬6B\r ΄VJbn֫h#3gal2|+]A#$E̷"JKuS 큏T]-'MLwxneL6,b $\qGPQIgLd;c}MԢ !a:Ȕ!%,(PRе#._DmJY- n dw"̀™qKeMr/\زb}`2BX*m6dѴ5wk/KjRFd{{ {"0Bftr$(`waY#AdX#NXx);Ϥ ^x$1g&T <oz]i'}nK:30'iqurDٚCn~4ܘB65 GxaTK-^!*ڢ}"sÀ8k]){y`y3V-VS%WdHdr{ Kɐ&ؿi) wxKgB)FHC+oc떏*qpoY]cp t^#5k*cwލ)y y("ǞZ3b +/R_yKb O `CpAxW=&KYrW@'Yoqqg- !1_ܣtz*+q|}Ll૏蒺v/S:"Qd?y+_K)vkֻ]51df9{+_oI36@iϩPHr8 2iIk/D @zT-Dp*+7˯Bp L7ibKGTZ5juc9قZ;^W#KqBn(K58'D.`c[ICʇVTc" t&\/0y UV^@$%yQ]rueHc1-CX s bU|gmdG\7^&leqL)O 8]•Y]tx EL:U]H:ЮScQ DaMU} ΝYƦ4nEIʟd ?=/|TޝoZMVKr0צH]߬oL0dlpG^`ؠE N1|f.e _rp<8•U`s HqZ P6|zW{y8aeDtB!\P4<8$:ٹc X! pBe%V˓ tENyp4^H|'s/[zk|}V/+|闹>WkQU%UY*j OU&XlKA-R+K!!QJB/M&, +dg3(Nv^&jߩI9ZXFg,>A+oOupG$t!ޘ[ 0bݼ;IN)6-jrgzFlKeTHd$Y7$nU)xT:9#46m) Rw]97?S1)67L@/)^늨5!b0"0=+džXϯКER!Ŀ4Mg/1J2y`y~VmX;pNk-3l= 4û$He$ J2E.\.g Kg&T6%VpeA_!&SϬ 6σ 88q bQO!u6'l$ko Ïs|H HҤo=ttY5K.@Ƒ˥5lIHC2W5PSvjCs~jFg;^ݏԦH1~~ |I9I~h7 $~Q k9"-*K :F{Q*XJڐD8ꥭ Wg_`njWKnTBG ý} '8&Szh?5('nl~E&?DgD`/:4"gxuސ㉌g3V8]VFy yYLto\v.o2/y'`Ϟ6D&Sz l]x}v2s^E(T*43L[-o4ڟ5 /RAqdiCeZXԶn-.0haأ鍹da V'[?huQxJκԅ\rǒ:jM!{0tThrio0ds㊽b1i"UD]m'yq[ c膹#}]2)p*;ą8ȅh`QPsXBWeKDđKױ[v'DDۅ&ƫ)> ZNMsseC#o%oXJF _8O)H|6!@\'{(-fg y1NqX^,!u#9v_e%!r"pPV}U F o,Pl? ̐)!<}W\Vbg"N@JUPx}f~QXj;)\@T B`H 5;h]j}|r0;a/b7l_;| "`}g4zg>:eLd?יU *0d[6XZe`N.䯌O.7މd~xAn;?#_zYյnj[]"`TAf{5}/8YD) /5%M)G@ϑ&?qt6bbl>ad12yFա5ޟ@ke0x5=ec{éNi wo63zr~A2GcfpL@hHr C Ih(r쇫 c!ڛݸ&ܲM@G^eFs6"=V@5lCVeW'l'¥mb$gxS9+]{vD+E QAƌM>t')>[RP W0y.jN Z$ߩIJmFQ248[)X:Q>І<+n3M1 ]:Zl_ĞMٿN%vo(57B2K~{[:CMZEl$uҝֺQK+gc$aWbF:Ўl7UG^,]2vo;=ܝS VF``A/Oo_uʺܨroƲ })F("fu B\ 8{_#}Wy`qNg.~ F\b2ª?-`A5y3Hֵٲ5Fs=Ttoî;tQ7 0x0V )V gu!:I=5)!6k@F4TAYmKB,zrA{`/}lLqc&u5  6tjT4xC_iK9Ql# H]JmI!VD~rVG†x4hš-6o%˳5IIԙKZ.>"¶br]㘜. {ύ*uuϰ>yuӉNzv]C!DR`2{>$ M}rED`Jg aQBDDp7Pm?F:IU+![_M5@\;mAU";Zm"6`]d"f0 7Їd/RJ^ښ!*uB"pKY˒SNLfd~L2jE+&c@<=7 RavkAeYQDwO} T~ $rhz0}ɋ.GUP&$;{kh{ q]ȯښafcYao8z,G--o{`%?ɒ<+[g^T5fr졞;D8*N(}ipUƐ:&7p72lRJu1Nh>r](h4uF[|"uli^ "m89ע@+u]N҆6SgL^ʌdlrc6Pt3>JZy#T` pK6iVn>9c. (!j=7MY†6>kWhIДbJEYdX7MЎ^0,pz?M,[b q IOFMdmpu.6[;tJvWZvfW&wa3-Rq!Y(r)Ri8SCߖrmWL&a,U>ɋA(]TuD=1Gz?=n6xUV+QhRf`6VP7mXNU 3aM@}Ӄ^poTi9aFyBMo+ӄhYJM|Pw>5C_K$w+6;UCVcn81l2!*5 ~xG':ERuwɭILj<}!dH[hJKZ'bPa yp|-$, 5<,-kaXΥ&0x?41>iʤ>慎Z٠[ުh>tW5"SV'Yj!9Y:_A';9Y<}Hچ9U ? Iԍ+NIp2nikꂣ~ eod4O( c0IU⑖qWC ՠ=^APyUChZ+Dzl; :w:lQ/IX">D@Ҋ?jRg܅+e-(i~BuNuI5FAh,< =J2zԞ/Oʮ]˜Κ4lurtߺ>PŸ} [qR+$IZ·u@˯BV4HoSd \&y 7@(5O& 9Y@(SƵ}ZfÎ1 `lp48}N򇊜)n?8,<:etVFaqy1ذy7{n2}?PQh갉2ʐP**64s)ͼCQ6ND ̤`J I|HRc(OB߇kOuxk|I.Nїi*zvXV!q;#1T{,ŏ,#.TnBpg4ٛsmvΰm7=!E֓L}P`W6Xq[:ذߍ֣ Sv B\u{aur@_@< XdYrS:23VyIgc߶UM^lMP:h||?HiDI1CȝYWo_cDZD1gyN5Gc˧K(BPB Ar1Y]pfvXL*']C6e@ΕDfQgl"؏^A&*v@he3HkКY@m~n@; Vzxpgl@PsFqp KLfz[{^@#]Uԭܭ;}*))+=]l jJU&Zzxk͜pi'  k;C6%EGs~Z~,+avv~E`JAFojJxfd5J[!BD'<+ //NQ{hS"Tl*by1|hj}:\xf:3a&1;<>6~¼=>x [n7B -x|\xEޫon#]ha<K2];sx 9ŦF!- #FS^(%'1_s kɛaTB|E:ъ |erTF]G2kꊊ\iڐ2[ < dJm9y= Oif6Ⱦu6TN_,>=7g#0͸C gq?l??0W#7.P~;U 0^{S(7E@yk,.|#m網yO_z,pa6oShz)S@` ?J`ǭ?G ~Zi`Q>=P>BU a$ROgYoB]ԦqxIt]Qj @AFg{o|>qجcђ?㿠U8RYJ^yWu {[. m5<>!ɸ?}yHZjm.vs?ghwnU9 ^+޿qƀGH.r3hJ$U[>!9^C07?W(@BUv[iݕlpJ<BhE@DGf_4׃vgZL2S-Ō#mMD2'2,M(CV[i &En-Shĸxo#e9ds mLK1"7EIB MeODSQC\&Q|fU>sP@w2s:uK``6ZĚE,+ .S$ּVnXGWJ;k."YRHe\|RÃhTL3Q l,ty͵ZD EOM:ERr=KmirDNu+uܣtban>fˋގx{o<&NQ,` Hu0BQxtCRJj,4 DU顑:[ZiQF^pźːGq_HL!RCkWEQ{.IQZNToJ A)[1Ù#((] o8w?bN1sdiӞE|6XqgCl A<&TlB]hxE-WA/5|X"[l Z X0oh*/ɑy0٩X@.c*jӀtM҂8Tg6EYco. 7AШKĬ!Z KbpRXf\ E?eۻ!’[U#;@FޕLMNga!zh+ 5^B0A?C+e& %:E4, 2v\?DV EC">"<*FP'DwdQ`=dcVS`ͻeybόa8?_Ng7[971({Ers .1EJ?)(MUv$-/$OEsm/ʤʈpY= 26Mo!ob/Tr7N~1C)R>fYcck|5XxinߊAp<)( 'aS>7SU(0m9TmsW#4:@~"]N7|THѤN|{H'X+oa.ʼL茁mJ/+U!c~c+pD|.Oj`wwwLT5!6SPH 1>Kߜ9cB R+-5&}X h3bKwBV.,t,_ar[m0axIkVCQJ"A"8GOS6Iq/ސ_HM M+3]Ѳ~/"O'M35#&co4ɜNx(A}26)Ab]xۊƉج:f{-NuŚ Y}W :qg\eC>a Ëjis+5#NneWd# eRrO cD8 eJh[ELR;X=sq^L(]2?A1 Gm9hc6 3hSүqؔ#FM#OǖGfh85_$$Xg D_0aZ¿b̊ؤJܤCqNR3 NXO G&i'8ng>i30":\STqjs,s|GH@%LAYhEYjP=(" N<;@yle g'#=w1K ı5Xy}8c,@yUGv6 g2C12jt4+5d*1uVrVf,~CK_X 0JJ#yN^5T#UH?źF8hkLye#-|h>heWQug0)vgd Ցrf %v9x]m D*HB,1JG0X)PEU!EE^6&ʟwb9E褼>Ƅ#VaYp,Am2/O+hXj_GZw+;J&$L/N2YF&ifZcr(M80VBC"ͰxN {6(B8fLol 3/G .\hԿ l@[I8 ?{\lP!?{'{܃G|#90MplQ[kUiC5)hd( {]L%;7UK-\MdlZT6SddҶ)*sgԀ(ϓOn 8a2#}pyW`W\wy%Et%iO^!![vJF$ON,JuM-G#7Ҽ (ц7'z؉2qlӜ: ~mn64?y0cm"{Gn3:F 0p K>,9nk7,p{=P\C\`i1a_SaII*y2XPQ&Iξ]{/"q1p#a P2(| NU& EDؘ;P9o')dysU"xHcIԿia{t:v"+=vH:B22wKses0B-ȝu^WT.xxs]yZ.?(Dl z~OF$c$[X)k?7"O~i[;x#!=TO' {CJIb3g2a_Y{5OZ^8pH D1݃Jqd2W7M~vd%k<,)#)if'ƥ"+֩ҳCfX,`:`CmLܒ򾱶}~@F&KOkД!K4o΀vyvO86'?&,pe,!L>LP'R%l_,VA':՛-V Ɲ ۅ+"+丑>'%u^K]:oXax<n(1lxR.dz u[0"6l&8f`#-R0b"*$Lzȍտ:ay?z䉴 \)2LyAC$=e:=j5=,_f%\8ȗ'yFˑiWpt>ʘʐğOعL$SqbHvT{s7̪6ݷJ0[,CiUo9vW23OV"-L  j(t?eaYf=ΧXk.BٞZZajEY-`o0%CPwP&DoZ.jKr?J6eߢ{#zma`Q*yˇ M=Ե5iKLo%M.꫙~,Yqc9g_0KVr*3 >kۅZ,i/.BK!Rv~}yh=aZNl,R$M=Hv5P(O1FzLq8[TjyL5XHn\0 èuQ:/6MfdKGWyKYlR(VozpĩCMW׊"ia_:G;p**H e/=Tl:r{TKsM:dvvr z"S<)7N3 i+2A;!3_u K E@gU7-9Di1"J `Eg,=8%qFA +,舿0a.Ym潤UؗD=M"Ubrb3xpD;0Am8+|T9jῇ}+68doNZbXʒU>l),vpuR"{ t4O/k6DağcUg$ûGi=lw(TfrB8-*Ӯw6wBGeMo{:mW?zjDF+u <إH/H]?󺩴d!_z"Ysb5iM,Y:ORށV:&3/WFOR#6&1YAt(]my#wU!9i_{xFl*JsC* q}r߲٫0D$eeUI֞, ]B^X͔^+]7p% bTWx~]SP1<&MP"Et1]=vzk;: UHA4$ts{]%X1D :酀2:nav$[X1#P>2j_?e$z[t^/!R+@ l4׮HQݚ g`$ne4v9R1,DFȊǖ]R1-#;&;FYr l x0qXTޙή7 MRX'4aI$%5kL#uUd4c F:,?X-.ۦay<tA& UWT`Ge02MZޠIM@Lx{&^|Z^Qxׯ QtVKfduW4K۝#gB=Ͷ')pn7eeߔe_TrO6#?5\YB*+d mNd5s_ /ӞT4~tUhJmo70;|?k8ْ4lgYl=^g\ b$J|v`NcVΛaf̾6͌u`Lv}!g DOLLY$8j%w:G؁:gjV wHMe϶Ad\sHBrKb/4塋]kbB4Uoı⪍0b,eL`:^\ Oc~H @1_ظ6&vR nTB uzNJ=?p]6׶I O׎O ҃V?XzANVX3৑フ5v>O$OTڑ:7ܚ7=vD} 5MaJݿ+Ux]~W w`_)n_)zC>4E* %a:SZuR,5uÐq 8P? ľ:~c%w0"hu2iɀ`*( "(;6![.AV1|@E J9qmgyl:8-b_e,63{PH2~eN0S.֝ugs2Þ[}::F t*ER}Gii{S6ӎPOJOw1X#Ǯ͊@Q,[;Ue)nlD| *.BN曋Gva6txooC+:U+Ru#)BNqf7>,"OgRLk= #u/6O\ R+fMTOO?hO7bei'z`SS)UQJyӼQ9Cpk-3߀dT+MS>o<^ vf$2Nv//"Llg;awL?Q4)`k7Z(=} ˾2'ig:w /ekel[f| -"/wmQz944;nE4a4W;io /om7ΧDx?"I>gz򨋏|^BcK\0-I"#ex ٧ ]sɂ]$ϋIKc v .=OÄ~yսLBpQz@ m@Ң)/ʒǩVl1w}5{q$z($:"N\HDPOD//iOmsX*Bqlv5;t33)Hvn`͡[&]d!([T-nƸKF4yDrdbXibي]QRFƌl;/kxOvf!JQ1C,;Ad9hj^:PwTh)8~|rbI+DSc8F*=y79~PO-s!x(2`Q>gQp yٌӑ4) μ؃YAv#Z[j3\a؜oQ Bo/w+>q]XQQ@"D{'^"Jޓb8}^g!¥yU{Z\FrT#y#dQՅM:;x,1΄1PH)\ZxTPIBR FƃYVĪudf^z%GBH0\+?eitx.V|]%i]Ľ6z2V[+/an j}:$6)I89suUIy0:&MAfCFB6|owH&8@(T9]HYFGGKij'I1}*#b@_nXwlH@H}t!R"IBJ`Lɒ&}32T\ TThac?})ݦA?" x$s11{2ɗdZ %_gSR}} )PL@z`Ӡ*P9;7J叜?) L'VF U?bag^9) ߖyГH^aVV ]|yHeS;pӝNh"cHL frgC(gu螙jYFs571_1W cZşa5w^/:R)2`W>cgSmAD]>}>[ٖ3qtx; QTwRE[@/\bvDVu-I ߶M֥%h5ZiB#~ǫoYno47yHVKˌ&oLrsʦЮ QW|Y% (m9b[avhw;?~$Qu|KBF$N*6yjshc| B/)?(\JS1gT@wf8RK"DaByth_zagIST E(oS%:}n^>\\-k!(|DrwpA v faS'.(e k X ;Yx*\9TWjr7 EX*"ER=Yu)>1Χ(4[!Fx5F !@o6hSBmt56y Rt!YCuxMh;i6η\dBεwXҁXB x&CKzΘWT?l ZyyϲtGg%O4EnmL{j|*>)&` B>_>'gq[ָCGB 7KM Ց" FEsNMnyqG@chWI(R6ܑ졢U|Xar@,+5po&gv ꟡6Iftu^ hk*Ĭ"GXHT;"&!Ĺab gFt@]{`X8BW2,Xף05\*d[I% b+' ^,g EC'U8> 7d(uz6C[0 &T)57Rn(FQHr<{gj@WQ2"kx:?{CϚ͊U&<Ĕ3ɥ̏pnƫ&\\}=f5Cg/ gJ@D@OjC TQLڲL(oPF&';3ᘑDzo@KFxRk\2|vkojx}5>nMSh_Xq7ؚþ< z912 _l5y@z3 6G *eXbc s%z-坾~F΃3,Ely+EAZx YF0`g= #YwO\_0˟liÍq}΍S,J$^X?8˅' iײ_&SW3R|۠2cb`| j 'd=7=ʗA6ع0#r UAkJ'A XFI֝c!-s8Ɛ f"i% <}&QkXDN9r[1:zqdu V_,W a2۬ X·3U`k >=t}Sm(3} a`Z}J(*}9߱dJĤzg<cC%$ ~_%BS%\e pЉtѢ{ɱ=@`лچ{5SΌ*kM PT2_`k$u$ ŝ&B3_C(ITԖQyR|8w Eۦ]Yu07]!5w ^O`@jƏ$S6{[|ak$%|LpoӖ{ 'J:d1D P!yJŵ'6R%KI n$k xY0;XXj<%nY(9~wHU½SrE$g8IQL&,.tGc< PY*'t a\X͋D^ %5M]ޥyqV bLn<bQ[aUym6=^9!WD%.5α A1{>7YA ;?kAG^Z`rY 8m 0R2xu8Ga;dk3E;]p, ~Ê(bcץ/A!rZHID3ef :VN8ɢ&^*2{-Ľ9`S'\vȬGBE@GqCn1-ʉ~]NRx|Ub׽=q`:DG6` (cZ-ƇHm1IX.ELޗdMל]F՜N>#ҥʒ}xA Lc1?v}.١tҳfq!߫_?rpRf!BLLL;=Hp~|z R/5/b% dehʥD!$t$Dg`璏]\C ";G4SzDQ| ̉6<skچ*/<$->Y9<@Em}?)8TTpkئYRYN-sWP1qI.?trZafoC'}gwc>qܳMX#3|{4Ο̝fWM1 š~ /JpH~Lvx>|I h\9 m=1Oθ|Kw6YbB ` =8|M9c%=GNKO峸1Nsu_ 7%!S]WeNy3Fd-2%'e9H $SG~Ե%I| cU;dHFcpo%v"E$ ,٥Cq~lMWkҙnpvV#zK5'R6P_? oL:xJ8$_ a<{j*VZv#_ Uu|Q.*ՄJg56 el-oSqۘr'iny)LcZ/f1?UVKхqUg2& /"GW6wmJ[WOG o|Zb,oـ$EΰdHؒ( 2-~Ec|=qVNc(D"],o J~Jr2|hJkI MzTH;̉c>Ն 3&&hYRF`=)s E&SPYŒdQlFzXd.%a 1>N"%$U֛[BJ*`&w9 Je4'QsPRcVネ&D m JBJީaCJ|~˒b/?YףMor='1}/C}8>"mz`qX:B!t; ]XЗJ4,[  d"I=Mf X*.}MI|jٵ$՘Fn O%ND<8VX@fxלEd[:Q;n7 ,h^C7q=`n\y]6bBLJW[sls dQ`^jڥ3gs5{0#;yx2\}VR~t_q@ 4mQ C"w5&~_qgIb(*h>sV׸K祍Vtёjn%9Uzt+ݒ9+'͵CvoP߄~Wr`\+_N0[ o!P4]RaGf L=]ě1Xʥǝu, ۮ2jp՜Gu21 ώo1z>֔ASV4#J'gES\Cj|H MK|<|tT׫;7u@?hEQeR()4\:FiVSӎCV"IqVx+-&P"I!>N#.1T>wb/ O!&bv$0–Tv!'qs;r=v.kƓߵ#ps0_UDʶņװZ*QݽФ(PtEj&d!\yW#SQN$YfMހF)HVFrUBe!1%=CȀ>pcN_7CɨJ9IzbUqO:_= 4!)xkCkUMfB,tDW#M\Yxk˱4qyd8DrR{] +F?`@l:t9cWk:#$q~\J/?gHNm1l5cdsh/(v )a!hY(& wi&>9qPrT $&3 UUqT`o\/粼k_6wxmIZaǓ[2ck p:CJ)5}GSp;4O;3\ Ljp6h}mEHeS=9!o^x"obVW:(~(2ʎғ৺~8w6dZ]$a(/M#\cBYos1jnv Ϲ7y,VP݀R|Nb?`Ae6p;9Aau!?uZzԟ꽯JgL޸i~!āN^Y9@R KϊcƵꅭ"u(rj)}]MANyOx$|c;E a!$# i!O `˟fA? Э@D " ws,A_8ׇ2 |X+C2N܈ Dgt8@\c%/5M>[\M<ޓb[(>v F^ '="9\3a j{4 c"j6Q'zBYRvaL* %@4{kmkS{O$M5vuvrib 3QLP[q,)I _!4X(zym~6RlXV=櫸Hjrtn}1\>8^L"!҃B 6"SՎ÷@sbkى(&SP~msp"is~|D;cֳc/F Nik`?H7B>&j`o`d=1>t PLLR̐04Ag$Ԛ^)K ~7*9TaOpPpKtMe}a.*nwZo`$T9mgR;cڍxֈi5[JY=b!k*ZCqFvp6U18A'y}8+QgА5ŏQKqBc^$@ӼPRVtLT̩xE'7{lAlީ~!j -^Q!3WlSMKD"#zAj*' .A2"MG= 7/Bhx 5 FAsg;4&Z/Bi0Eg>s^䡀:ǖvߦuc) "Z9oyLyh;bKT^'D+"AнCQhWۣ9ם,"}B\'&yZ3XGl5-x8ޭ,)聠Fzg{ -Wipk;X1dF/l4%KL ̂WP }%<Őէ(jpYOBي#$?^][Ѥ6B-?WU{S'8D<~+ތ8]uSP$ۂS X?ҧN4;5kyXk܀W@òuDk*NP͗g6.}<'K~%u>&{ԭ2a|4T9Q [}#Xd7<0u(fv= S,%JWJ^9svpI< Ci b ǩHH03<̒Kp\+*jq{ lwB*`KxgL=p݄G{921`(4-˸u uwh~"Q oʇf]OǺ)I(_vX{;\g6Y'h] OPI gCґ]2JEG + w;,@lpXNU,VkɓL;fi#zc^qVg\_4"XnlEݼsʉ_mGF@ܳP~OS)ZPrְ$+ٮ {SojY2 UP3^skExЧ)|`Cr÷D^ZܩMѻɅN?:9ENX2ܔq7zBδ}Q_=y9@gHCBRB]U(kOkJ' $~Qt,;*4o;)lA`+495YG$,;%㧬Xýv`wƱi̐xf+GC b%DŽOYb3HIpVҲ5RpPBnNeI=]CtP;koD0#+EbdtAWڔ6C,9p=HnEk7LЗÀ2>aOJh먎Rt^ݔ;a}|IM_À֢Wtг/RS~wDHߡhHy-p)c:<΋8Wu5r] tЀZ]U&rOP`_7 ,#N[ڎg5S[2Jii9uO0BR$y5BP4YAJ*ƫ<47g1b_,S)jM].~ uqTaU`c' L4ZtQپWN$Pˎ8xw֤:qۗ^ª\eDŽ- D\x&`JMu}55*vB+|,2aIlX՜&nzG ⩈9df񧃲H4,$% &dt/D&qoxuJ}i9U `FG^rw( |aO 9Lj ;=5m&v|2'~n^Wn?H괣7k-@DDAUE vуkV4YJ^Dv ^m?ϥTy Gq\z ѕMe2mMHw%>R-eYb߀%[OH[h\k߅f{ZD.llJј+/ "7ӝnAwS?}1c%*%o- dUfdGRIK=hD& )fck =:<$G\U^m&)XL> 5KQ ђ\&\;ʌ>XFMUw0땍3 4L,VS3A!>c,+(u/GF#ʿ%b|qkҥH { K qCf30m!Qŝ5twm}c`TWFV[:tS晟fķ{ua>a"Prs\ߝkh$ D`Z{'th,Q8~P"-ʯ+rߑr^hO ?}\ļ yIw"'oTEݚQ9Oٞ, dTM'H .&ח k*n1l~B͔d+NΊ#m2+en?E9 Jp]c D /H=718A8-cs| .Jn,TwJʘ{ {!>YBq֐p(I ~>U@w. r7~{bg[?[l&v3N z`-IXDt;Ӥu\~1iL|5vD)O@=FW4ۘs/PþF-y\v0Ÿ=<0,#ֻ\50)'nUx~ a_ jx([Iy=/)8$fIPqnI\ ց"#Ezl|$|"*_oÈBV*)좡p!!BE~>zn[0꠨?&g};(z(d*R! }WņX~|` X{6TܮC%R({8-Ȥ[:R,'굘[|^Bf>͒=Ǭ}|1=OBCVmWx 8;KyP=o6jh#s!-<Ϭ~/ iJb7Ea$>߫nk1Okw蕎`0U}|]~TdUtuP~D\P>LD  CPo?ykQd*pI^= iOFMu7'X&ΛMN%Hu+y;zW+檜uZ,2ݘh_ʯІ ?~D!El:ꃻ>~+4,#H|Xծ֩Va`D +jaGRXiIw4 PW[*ug-m@MA2쌡 3=pU-{y1O.IQ.ə|7~5 m@S>P#ěa@^5\,4~E|#(:jz xm ##^Wbj]f=Qo3'!b)80`hOkRCT*sD?{V]M87qh&U6Xf ?@K`_~^:_^$쟈ӲcED[%ٌۀ$NM P+`Z ^Y!h9};67dt$<^3~wf+ow{ )N7TFۣX^0qWF;󷏲3_ kp4)Uǫ{I`CX Z&]Ff#kei'YxYGfqH:EISGcPSJco&#xǁ .*_EيL:3MVWYr(OQm-5nj^)v,VR~i.Yb )e@rٿT|[ptZ߃=bSbF}#f"1A: (80}+DA-"`C`sy–/.h3r|}T9e1%I%COT -LoR-ߺRF\iv`fvsdl~saT ؊WYnȬ<=XdL5esyiSECj٢DhFň-|n,$.˷/=n|4j\t5:F' ; {֏LuEf|7q:_nC?‚qm@bupig-T}~jC`V3or5vBeT%Qh iߑ &7_S3D~[DmNgwI;DE6IND\BDEĥ rRyl^jjvBQ'gըw^P-"<c 2YVi`%n!%EtxXbM }D wEiы̱kN4WsߵnI rY/Bn&*mBk٭44v{GǬN2R6vح ͽ~^9Bo{ CiZŕbQ0Fd]׏k%7<+૧6,ُ e|or+qAZUp.I4}ȧG02,v}ak @# eYq| )ۺ2E00 ;7W׶>q<*%*k (klVL.mۼA'P\>O1[_HvL*0,ulkm] 0I.?Ff0+ ;(' Z} f%inēL[d,.@t&'=kn<d("'5H%rExMQBU7NJ(箽9CEO?rEp/ 1I-3j(|8u=]N5E!jX o.QAR`?MU۸)IZ&KVMn:KNƨ;z;K Ďos*7`=4vnJgqGenw^-B [31kco@Ho 櫙ȎRʓ2K_H2ABq'eS!ND&ϋncAPe \jvR_;iK2afئ_CGX؈`{1xtq$KҬ}AMQ6,3lTDy>N~1J*NM p\v/QCdؠeO]#Xշ _WyVܕ48f۝MTz ~n۽r=wln5黶#rߣ ߰1_〝C-QD÷l[&9:ٟ; /g\557%z)}L~2ẃT@ùDHZE7>(ǔw>dg v`A)\x~iM/B "0H9N]:()>/|p^?o>!l6mb;0B8϶>!N`H]YDmsxիS愌؝E@Q1[">7!Q]v@xB|2i"mb?rPwZQNvծ4 rUϪU]So5adLNBJ)Y`@^PVL\;E%@L, 9+v7"**HfVbwFQ?G`Fm Hw6KבDx ]@w} Z&e9{?{QGk=y Gajɿ· Dfz(n*P׸Le':I9{V΁%>hU2\c{|Xg݊tF}}zP \@,HqPcBJ($UhntRdѵhŖt UZ CML6NOÂ[b,k24\jtn6U4ߌS:>Raͮ[ d>?_нϧФAkgl$wyv3XlمS-r*dY4,z5EklA|6RE˽,bQTvs,䤵DD{2~aU0 X2wg{f":sOYPu,X|AnrD(a{maL|<~^11tHZv%{X#9'-mS' hvнr1B.FhU07UQ12ow$˥*Ij@W/}g's<xV #`_&WǗz!yqȴzƿu'@eDsUHOgB#"=%xbS;L`$N.0i? ir٩}Jrל"I&, H#Y e"L чqtпӕS+}MrDo]dXx,Uzu^1![g4nieYV0 RD<uсH~#unD6 ā>^P%VZ)]9j84ٴaQ$] r]_VCmnk=^Ԙ6y<)n4?@,p@7[*whgqh'+NȤ*Ea >62R~`o+!dM{/X[->[TC_F\Rbc2 .LYWI˾olSӻ99⭣)HZG.QfRݸ]3RuKq|)PKCŞ>/(qyUpqY)k^H*;k}Mq{28T]*tb#|x#C,ez>K ܀DweoA $W W[7煳of :2pkm}.yCA-IJ"&ڈuWS[+Va~.BT#P2۟JD9lEz$rP-ehґ-7?d«lUZμ5F^UJ-7dfu.5FX8h\n.r>c̢Di`7DTqPz\OotXGBDEUVAsESihR 6}C˜qQcJ'l$w+j*Ze51v~Գmgء^O%%0 y# ͼvΐ>$%$Ւk" s=gE.ZFe)ə-q?yѧǣAJEOۦ)_igzIg- Bp$cz-w41҇3.9[ϊ1xe^IA&ȟs Qȑ{'XTN;^GVDq/,jb,:v23PX]3Ycj`}SD%Gf\ֽKTOCެ;PrŊ&G Ai?(Sts lZ"xUPB)J@( V7p4H5;]όJǗQx2p'K_NfJlP ڎ!tj3)'t ĐAN%Oh`y$ f%) \zRw/.wE 6Ke֑5"]akAZ1BJ,ı*aCPF*8vL7Riŝ\ļ7]Uf8!PŚtUfZRv~TF ddQAwy@I 163}!O/hpiyĈ}QR00X k\2GMz2,C}Rd-FG|5µ !mG< t5̛T?nm'gf+T'M Fd^elkjg֬`:J%wwRvDaE-N[Ko5ZmǺIg,գ b鴉s_M95t uS>Kݙ_4'&Qktymbzx߸ m uBfS'[$A4zx+}H8=^7ipSMzMi7+?,xvN4h;z3oa94p^)CsKzSzm4DOom7uJ@T ]wz3d^"LLcU4Ӏ/,qܹ$.ńHԓgg˦<Lmm;c+ɱ' c@%uJ*"xV^9W\Nm̼bZAdR@vo|Kʷ]+=JE?tf!3@ʊN*FF y d9Z1L"i dxU)6;|NaAܗWn$tϦ䷡+F/\fS.)<ĕBGbo.w &Lσ#x^'*[M=jC46N3F+OIv,wcU#uK<3KࠅZP;" -gsd^r%޹UNBcC+KyU;ÄLv6K5pȅ2%U8whK-DG4#mUxʑIɍ:#ήs'/7:4ԕ)Pl]=كMl%Z:lg륑3N@xAYDw"vӼSkاVn^Ѭx^j{todif(IuQO3@Mw 4)jf3,8A?]$3?pmEZD:Keu Vp8N?fqq' QZu<)]?Qb9iANbĎC㄄igɒ7ؙ&PE_+ Xԇݝ^~ Z2;gMN?] ͶHcQSR 0W^q2;BH))fqi ԋv JvRMgAϔNRM)P*ZA*C%3Qdr7nCK-NSVrbQas22/FA٢3CzYd1Q5O`w\L|/HV-`t4"m7yw+ +pUR'R7cN_ڀTTje)%yc3zRkHLJd!+DS!r,="ڋ|9-`)TPȌfaF9Os›+2Znf@\JT?˃ՏLѝBl^~gNI'HUU^j!eszFrLOc1Gw񶿼)ϪC/rT(X2:UwF[a맍_b+ 4"~r.5ք*uxǿ7lн9v/<yRt+n ]tCGt̬xh\pcg[-l #L=e/BD+Ůh{%A.UȏlLaa%J,oz3ZJiK'+ BCuJPwİanDw%N*pG1&oE_pJe < M9/]pGͨ׹+aq@5P60X[~~x_x@`qgV+9h0 eߢSW!K0BFq @]c;m&ՔiEeBn=z,8[]ɛ$>HȦc۫YhYDz8׵9^Du1#\;Fb3B$bHaà!̍R8ImC͐\EK,~tpk?rJzX tr+ dm_})rvv 6nz)]lq< Nj,/H_KNﺺ?8Qצԕ@?ypg~6v؞$esCi})v!̕9:m_Ok|=o"<48^okJah:PZ- N1& Q>E|s ~ ,j !YK\RMjW#; Jo2 LF |qV*b09fΰ~n9㵛FCΠc9$9Aq +G"c 0zdsʼn!b?Fyʦ/?T٩m]1-@ 3Z(9rs~,` Y`%+-aD|8K2q%suLF,@yi+x 6L6\bSaqU9 W$|Sv/JR^nJl]rteQ}SlI;n.थxt34풨Za8@]>;R58@r9kX6}uT8H,I>X횘5JpAZ+aFNfjZXia쯂ʒ-Pa]~'h O r]#1uh h]T)c#VPh"P9#-8/ jD2K'1mn3V$OW>-:˅mj\J: J"eZK1gVuCuo4I6&-!$>*mvvz>;WR 9f9߱$|͗ěi7^(T,:?IW]ٻ6SP6Dⲽ釞 6սAV9;hƭB`>/oo-`_DhZͳۖHbS̿_.9:m??sAc6+Qh+8 @{H1UيOEbS(H;}JmG!NNn,ʦ!nL}'5Av njUF[?ZrŴdžKKq 1 ν 4Ɖjcmm7indNe#&#WPZ)s۔ۣ>dxT#MBT*2᪌\j]ĝقq/!IRDSC򯀛EF%*\2r 8 0eOfI7!2k@4Af6b 촼|~-c4B]%V=0o]KPqs^kȳSfNeMDM5#/ 5lKkԊ q5. FyϠM2GsZ9k.(Z F9Hw/-%=GS-NiP\,҅LѨ=q)R c{VzP&Q|ӘkڹǶҬJmr Q5k m#64k&Qңg8yuSaܓ;F5{Z"+N?\ujLToj%P#pP.Arn5)/QBp@>D1' [\ J/\S Hy A:!3BaǠ@U\ 6N ,ZKdKgEcK^V1`*s-rk8넲WǴN;*H.eV Н&m#hh 6Ua!o?v]%sI{8_\]:`k ""5~Ynk [ ЭFC]TЖ+w6<(9$3h_ۿNnê,D~J#+ypH;$;ʼn5i|چ2V >3&Ih8 T#wGQ k_Bhپ*}yƬv1>sJpܟ&G K͵b.Yu%UeT.8"[:E4pOYϯirU*2ꂑ"vvǪm@-w P4 ťaщi[by+IKҺ;m;&S?HېsJ<}GChbP ܗީOJ7_% [Pӥ26FG+ZIB=DK-E u)o3i Z,䵕KS?;j vF wlj WRvCƫ)EٍpN~?a?oʫ޷`!+a+E%GsE!|2dG\!TbISN8T=@Luu#%`;=ːo戂GRUArbԟCQ|.X'Lkփ|+MV.j 6<`w1MV@`*g!pӳ:IJ0qZu  ༮H >\7\3Q*G AB*cGfh.sƬk'MX|\g.R8b)  31fąPZ$O49Yl> >ҪEkux}>_SRԷ$H4k}d/Ǭoo^y-)_Q/kS73i/LM<~MI41L1jq#/QmTh|cqR!dlUPO҈EmbVuַ"$öK+5'\3TP~P o#v=y[5ढ़o|$h_VT*=tNN  ^ {7xdMif|GFpؗbIwgC;z=)O,NL洑5zS%ie鷄b{'m倒춅c[XX}/_4mYNNRVǐ<10(~ #U$Ndc nOM[m_!H~i iH4j?$قФt[}mT- Jv0掬^HI}UPTߜ ,0@mһ'Uɏ}}ϳI+YaדW}מ\[lurL.u|1,"1]s+]j?O b =fҩg6_l3<$qcy:E㑵m Yxu0]_b/2z5Xn f8$릾t,J0`3 DQ{ŐUv]a yEWY.Cޮq)Zj|tP7/iTژ:PU$-@X}$la5"GA{bLƦy.BUkxcnq'mKZ 诈3l"WcN!_\(5Ot!!IvzM.ywa_\F><1Y:ғt;~Wh)iE(6)r2rjerth%zw,=ym0$ˆ(cC}=URgy?aO˓BM)O%!v<3gL xYZ|YT s^\ߒto6@rTd6nx'Rgqڥy ''hi|zv,:M-[%`}kQB\8wݸ;VD4>YR9)LV~!.x6~Dlmp<x6fY`I jlc9n:A r2 n٧ 'g]SW t,8WMN]DXao"9s֟uXcKhjBaapQՉuߘ?QxmHsx<9m*(㴽D jEGT[(H _V[p2=UGVp"os|J5ߐql\`04h*CܵSÞ:oЪ 95S'^^oGHY [Bc]SfdZm^xl+<̷LynH 0íJZ7̩W1O*wdQ#ri:0{al)=GqMaQtr#ϧjwFE'$hgR}5C`蒢A !4ZiS/%#@ 8ŻP<\_aQhAxt5Arc4V' -`.Ef,As*>s,E,6:hvJ_|,Ǐ,d量 )|%}J&4gcŪ% I&QǞ52Mb4{w T*PDSۤj{24*,2{{)~ξ9ܰCPfF2FxO ȃH^+vn*7 QFm$hiZ>N8-+]|[{ɵuxpF$ulW5|CHsT CTW_J sRoA6[oHѩ&v cRwÇ<%Ֆ9,3 /@3$78 룋~qWAZ9V+0,w(7~kdMήnSP)HUN&equE&{5ʦՈv㗬EUW|y"#U*ɢVZ1_)ˠ)g<G-lb24E췐a%]JS0q?*tp1>X^eQY줹VdSp9a,OTSd"fyՁȀn %1mJѾt:ű2r|2t4fֈ>g΅|qbzpIMFaWb2sM3<{nd$(j=*J \ұsPkt6_0*8m'&iZ< T~2n@k"jV...Pܟ+50LZ'}KGL4U -Z\ձ5F=8<fY4pcbG,6iQJhE,9]ۦ vKl@]\?zpiyKY0 B!B!\shRj_ .&J%vzm fCB0h %$ gPi n{W 9,I$aP"I.*^/~wVT F[ܐܶ;0wibϕJׂ f^⟋8 QQ+zT:ۈO-z2*Cㆄ|׮"aPX&WbDka&Ea$т$?=ӽ <mBKrtl%8݈ mN~;{" [U>Ѽ̻W~Q5To\?aM˽q](dޫi;.ӓ$,P%w(l97F>g_Grݭ#6+\$8FxafR1O2ܤPDXƠ1C0yF~6) t}zzƀ*c-Zq;37=D=?ŖΚV>F,(;.E G <(~>5ݷ.šÙ%.Qoq~$_^k(}4CNӾQrp`ZWȷN~cɰʀL72wg %y"cBhzz]DȽS}gJѧjfl#./վ/E, B?sGժAjJPy02}yߢm>" 㼋&''A5ђF7?u 3Uߝ~(7C6BCA2-񾫹hcA" i;q?{/,~krB-)>gs3t"l/<Ew-Rce$y,ζMam*:f:wˮ&'0sOAK68< drn򇮃l -^5ijg4'M U [pi,č{V\|srٴӨN\}|x BCj UJiqR1H1_|HbbY@{ht2RȐhv*TGNj`hotӢdh,jv>kZوȸ+DYVu,l2<:A}u"WI?6Nc֧&#bT}|j3-TF.&ܲb͹yJzS5E%7bNo'&. 0zt$sud}ru=#&mMLvDjd:Ӫy&J[tH8zQeɹ2;%'Po⇢dd9SVޑE=yr쓫::5֯=A,Jc(i kBL֓JO2&2N /Dn\zvȯ~`T[XӪ<{a,6DSG#v Ksk&0)5" #'Yz60aJU$SߞKhVُ𲯸0-`3[jL_$4SPD Cf} H&$322YQO!qq(&yaIm0}X41^˒ ɇFƏ\ve*q,h(/GM@Y.u C%-|v @eRtA5aFX~ŻjʓmE5,s/Nai q疱h(v-hbXe'A2@LwG%iBrgyCrS7نS X .">Տ'qP&ݎS0:Et 8OnX+=$LQbKcUxCc`dj-fR>ύׯb R+ޱjoRo vR|AЋfu8 u 2<_sh@Gг—FڱOID h֭&P,EQ>#_PaSHeM͓5؛+ fADK*v_ ^&* )%**'j wߦsۏTʹT!)Y;` r=UZԃ=\C(0]/^YX"6Gz.• 7tyG~4ZBWy1C,{!R17 |j[/u#߀f>Lg{Ū?.B\ְ;f&wlc.͆<&PbQ J:W0_S"hz]*iKr \LrѺ.ᯡ6y29`\W YFF.R,ү`7p6(ɐCS66{&oFYTf4ރɁJEA,mѝ+񿬰f va-F/`~@>OR8Icη5kE%;xs8-ߟV2*qMUB)3]l#&+ *!FĖwE^$G_?a*4q5oVSOxu Wz4U~s^FB*FE_'<4p Sßf*]ƁA߭U\ Vz;\zݣVX(M(1^J^t%@f&;}fcR*Wr|8Q 6~͒/ARlB*lƑЃ#rwqjIkl|G%X3v܊:?m?QI<a(g+gF:.YR0VRoo6}-| af#~\eSgs_|-< QYuu:Tg&X{Y: B6=xyb(`!c׿Ak_UH/WJ nX[/ #s$omA<]n/ڥ,acga4d9BzF2 Ά;`A@9*NAk~]7z 1'j'.DyTѕǣNR mAuT"C6AbIjH,~H{Y|}53^Ѫ @#RCuU49iL(m(!Oce ',lG7wjxjvŲ☪IϘ:/ʠ`w5=+QV8Vsocy^=jNN>K%PTmPܙ3rcSuwl702}°4!$dp&Dh4Yބ0ɺ8ٴ1PA'Ū~ ϭḘ $حc6k;kf1_v3JN .y9t ٜ4 ݧ[Ћ$*tֿ2gDukyBFӒm\TNW+t$ [xq;^]O>X0gy% -r!y% vB,=&@mh^Dv&hx.>6.Dk8ɼn~24=ظ dUG r6Bml4+{xm@|nNWNɹ?oO (MGfx ך6<{ ƻ'W+AtM%NN|%vC"]4T^HV횶M>P ĻW2E6tɄcH:5m%7hG,"D(M:<łMXH"?}d (L`کyM$O̐b0HX.)Jv_ ٷ9YhYa8}}*;rb-]"Z<)ٙnԀ}٨u!ҩി8|%yrZ%ùĶ?`-4pgn9, +E>U< kRxDL o#rэ-%87f#C}hQ-]gplQH}~╥Pv=2J4z NA3ِtJp`~THZ4[az}p΅[N(Y攞\r&'< r4Qpf/ϟ!AX-0 >Qڶda{g, , YJ֊ #`ud[BCrZ)=:ju1&ѣXS!9!yLKོk,Иތ38࠷7d7GcR$ HIQa?D:rJ7ض;UүFzY'QtmQQEh;u/{sb7fi^A4hM7T 3ibU}@+q,XV2:[Ǵx}ʠ`Lpnξo,{nzDZtlN>V|x4h@1X-yeW3w} ˸9, W~Ot tpkyJI@7vJZ aDhk\n*cpo.~ˊNۍ I-,u6D^<:~٘4J*ȼ!SsB2E]ϔ8,O^TA%r핔__xb;ޅ)O8܂W{`On>'OSC r5 ͼ;F ,VrQrNAiV+D8k"``v#C)C oN}rOZ>-]X`s̈>(S^7eܒ&-ߣ@ls`0RgM10.+P\JuV'! ڜdp3(%mFm5$wU"q-I4YZDR$O `!-M6Z kЀ'"kߎJ.'QR k<S-4o0b+[ 11`~zfa76H^#h?7ˢ!:Vz8.Z7n8;֏`~)XoQP腜uo>8X4 z4eiDL" ˚/&nmإG.O"X̠86ge̩PۅN C>IlE(pO/f;7!\I$tu t]=#(SnW'l*jGtk@Y)+>+,阜bs,C8aKgK5{ e'pz?jcY}&H~$0NSv*ɝm0z~ܗhCD}(M&+DF,ѯ=T<~ro73fN m'HbԎ޵}t>z(D4JIF%(Z]3Civ9RXGDtZ1dM &QjFizȣom>l<L"Ht%%kP_P ] f,bαmM /e-m^}dpƝ:);k \{$zj4 | 4D7hɮyt*yR|ʻ5Z@ywD+qřW i(_z^pXOY8M3ǔ05ZE+:2-3?\-gY9pP2s ذ$M.{RW8>e#}\ydهltcl8(BFIVS)Nkk\ҡ2{gF.U ٨Pk !Ο4OXz :Z+^Ȥ!>٤_!&mt`Pt0H֭ʾGb$8?-֍4"@,ٷ֣n}ƨ\jWR8vŁc6,~o|0IZUX0NVC# s>xi{!vK!Km{ B+Hػͯ|MӹՂ%9TM/Ȥ;?b_ QՑ˩.θPxEԪ.e퐒-J) ͋ pjgbR6z 3f#鸰\ndObwl0&91R)2c:YEB GUubzO'OW,5L?q;s.v/;5%^rq3Sk[^w*r=<x^7[Y%SMd(SݺBv0J(ݠcaMsƀrnBQ7k[Tgv#)jq{c-#\`00Obp*wuhùikďZ)FF5wD_4>Q77q;hf֫$aY?"oWVUWi R̾Dv5#3Xφ*Hc\3 fzZp֣UX^\t~Tv^ՈaDH)5_!%nO]m+n v@KeCjIsf.bٟ_ _- ~/ּ /z9mH>hfTZw>{ԑ0MνP=y)#h#jl a,ZSY7 زMA u5L(7pp~'ƏU v]%kQϘc "f _F& .٣ſ~};][(,ˌieJ&vE&!@!:ԺV źͨA]GnDQnkdژe=X=Qjy䵝 #NQh+l G&9Y{˝ȴpUBE\OY0U`z .r 5esWW~9x6Gn`SUZbi:B.ZN&i@gE*0%"0SgY]̑I몬S+*)Țl\?kX)*+c*QyI`קխL%oy\[C3L_57jyc~])X١G'3ں Rs-"@kǜ .$_[w<>͢2r~n4ehCj(^(1e?vagM!.$dqE|/.k_oI'M.|+2'X*#=COЍVk*8춻)sDH:-!/²oNέz FRpF+dr+#3)-EuF$J4gMS%X6}WV"K`u* _˹%4N̨(2xC  ?yOf.&&.} H䠩h5[GX qdێ !͛ۍM!9,ؠu$~LGhl.4@Y7",Wbso{?th82p U7*:ZգvI& N]+#-IOw@/Gfk TO rQnJ|*0BXѼDU|ێ@O KUC]Rz3unye`zA, ] 2,lWơ%T|up:'L o _>90Nn7N`,Dxmd0_HWoqn?zDќvv/&! `m)c\`ʈD?dLR+ "JAp3T) Ώ^ȺN@_4pLB.1HT0ZOz[ydf!V)eƤhz*/Q +b,b\,ʅ׀Om,931dh9{Y&OcXMqS:͈gxOP0s9@ȒFu+JZ!Eo ES2T {687j D'Rl;Ss[տ<{̪ e7=uMhVgl? < s'I A( ea1 n!ы5HYe?'ݮU3ؽaS)IgDY]E{0YKu:ҁ͸Ё~A}6l H_:@)qd7"2m0w!%cnCL Foyz8RĦ{f]b9AYUY׭rb18/r5w$y `ĕv/eY|<&7fQ~H@ Th`{X m[޵;)%VJ9.%:kNl7 c"|ZiK*QlE;i7?R q1n&,lU3UxI'd O|- -O+TLGzm> Z?S;,Q.R1LZ\_FV8@eXUַ I>wwZP\A_EY/`kYwrj/hc;Ixaf`wX$gtS}Eا7Wle=x^jʊIHLJpŠ Frĥo=wtUl_IP=09u\5W,^Ȳ#sEl8^&Czhs{*wפ^6Ζ퀒%r]{8D|*rSQh,aF껏v ?)Fd՗Yn+oW$,s9;=ȼ;k~J'n8x @E!/>m9n62HdSj {+4ؕȨ֗鐼(5>t~{&rHt(KQ*y0l)>}"&ȹz9ʎC Wm'UFLA*.6`3g5qESo"Si;XJa(~pFG;%ARy;HJCVR|Nx%bm%n WuQ0}yjT}r:E.tFL[0noc*ہ!̗։Dpʂ2J4#&#v" 4BZg)fO8/Y{ "k P$^yql:KL -Yq VV;},7wR0 θ{<ξ) zV{;re7_ NL "z'v,"K",O0 ޡAkG?|Éﳓ}j287 }΃صjXfQ׳03O3}TE͆ocoε^^X'ꌦ2[[g.LSHb^QU@rpoW@[ +ҙHC?%t/*!B;mD֞rKQvT*3-$t 0Ccc }w 6`qdTUdQ+{Ik-B,ja_M;5HyU]3E6Ï hhN/USJA*J4E\&n+Vފ,-Rge]r]^ ?yKe\&T<a |.k!ږV8B5x0H-}鈙r+)a뽄_.*;.BrZ[r^$$'o(I$ੈM+gBsb;'9/i(^E# }/օ)ګ>7yпPo#}2INC7*M8*ͨߕtڇ mz \痃}B9!>ͯKU`-{($esڴ2Vz%SLul5Pk)!7yxs*(-6r.5=$3ۼJ+¿'$ ]D,w1$k 2$*e`› 2Cގ@E.G3IȎ͉qr?8ZfՃ]R\t0?KݜOzu1/aw'a N h$RS#7Rp'tPQq*v kJ#e.C..iT#EDD!mn^C/(P0j-O~(@.0cO "88XjMߩR=<bqݪᨿlœ ^ָr3X>0 YZgmm/man/0000755000176200001440000000000013571761362011620 5ustar liggesusersgmm/man/fitted.Rd0000644000176200001440000000266611305632271013365 0ustar liggesusers\name{fitted} \alias{fitted.gel} \alias{fitted.gmm} \title{Fitted values of GEL and GMM} \description{ Method to extract the fitted values of the model estimated by \code{\link{gel}} or \code{\link{gmm}}. } \usage{ \method{fitted}{gel}(object, ...) \method{fitted}{gmm}(object, ...) } \arguments{ \item{object}{An object of class \code{gel} or \code{gel} returned by the function \code{\link{gel}} or \code{\link{gmm}}} \item{...}{Other arguments when \code{fitted} is applied to an other class object} } \value{ It returns a matrix of the estimated mean \eqn{\hat{y}} in \code{g=y~x} as it is done by \code{fitted.lm}. } \examples{ # GEL can deal with endogeneity problems n = 200 phi<-c(.2,.7) thet <- 0.2 sd <- .2 set.seed(123) x <- matrix(arima.sim(n = n, list(order = c(2,0,1), ar = phi, ma = thet, sd = sd)), ncol = 1) y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] H <- cbind(x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) g <- y ~ ym1 + ym2 x <- H res <- gel(g, x, c(0,.3,.6)) plot(y, main = "Fitted ARMA with GEL") lines(fitted(res), col = 2) # GMM is like GLS for linear models without endogeneity problems set.seed(345) n = 200 phi<-c(.2,.7) thet <- 0 sd <- .2 x <- matrix(arima.sim(n = n, list(order = c(2,0,1), ar = phi, ma = thet, sd = sd)), ncol = 1) y <- 10 + 5*rnorm(n) + x res <- gmm(y ~ x, x) plot(x, y, main = "Fitted model with GMM") lines(x, fitted(res), col = 2) legend("topright", c("Y","Yhat"), col = 1:2, lty = c(1,1)) } gmm/man/getModel.Rd0000644000176200001440000000251513107655275013652 0ustar liggesusers\name{getModel} \alias{getModel.baseGmm} \alias{getModel.sysGmm} \alias{getModel.baseGel} \alias{getModel.constGmm} \alias{getModel.tsls} \alias{getModel.constGel} \alias{getModel.ateGel} \title{Method for setting the properties of a model} \description{ It collects what is needed by the method \code{momentEstim} (see details). } \usage{ \method{getModel}{baseGmm}(object, ...) \method{getModel}{sysGmm}(object, ...) \method{getModel}{baseGel}(object, ...) \method{getModel}{constGel}(object, ...) \method{getModel}{constGel}(object, ...) \method{getModel}{tsls}(object, ...) \method{getModel}{ateGel}(object, ...) } \arguments{ \item{object}{An object of class \code{baseGmm} } \item{...}{Other arguments when \code{getModel} is applied to another class object} } \value{ It returns an object of the right class which determines how the method \code{momentEstim} will treat it. For example, if \code{g} is a formula and \code{type} is set to "cue", it creates an object of class \code{baseGmm.cue.formula}. It this case, \code{momentEstim}, applied to this object, computes the continuously updated GMM of a linear model. It allows more flexibility this way. For example, it could be easy to add a GMM method which is robust in presence of weak identification simply by creating a new class of model and the associated \code{momentEstime} method. } gmm/man/gmm.Rd0000644000176200001440000004157713127737710012702 0ustar liggesusers\name{gmm} \alias{gmm} \alias{gmmWithConst} \alias{evalGmm} \title{Generalized method of moment estimation} \description{ Function to estimate a vector of parameters based on moment conditions using the GMM method of Hansen(82). } \usage{ gmm(g,x,t0=NULL,gradv=NULL, type=c("twoStep","cue","iterative"), wmatrix = c("optimal","ident"), vcov=c("HAC","MDS","iid","TrueFixed"), kernel=c("Quadratic Spectral","Truncated", "Bartlett", "Parzen", "Tukey-Hanning"), crit=10e-7,bw = bwAndrews, prewhite = 1, ar.method = "ols", approx="AR(1)", tol = 1e-7, itermax=100,optfct=c("optim","optimize","nlminb", "constrOptim"), model=TRUE, X=FALSE, Y=FALSE, TypeGmm = "baseGmm", centeredVcov = TRUE, weightsMatrix = NULL, traceIter = FALSE, data, eqConst = NULL, eqConstFullVcov = FALSE, mustar = NULL, onlyCoefficients=FALSE, ...) evalGmm(g, x, t0, tetw=NULL, gradv=NULL, wmatrix = c("optimal","ident"), vcov=c("HAC","iid","TrueFixed"), kernel=c("Quadratic Spectral","Truncated", "Bartlett", "Parzen", "Tukey-Hanning"),crit=10e-7,bw = bwAndrews, prewhite = FALSE, ar.method = "ols", approx="AR(1)",tol = 1e-7, model=TRUE, X=FALSE, Y=FALSE, centeredVcov = TRUE, weightsMatrix = NULL, data, mustar = NULL) gmmWithConst(obj, which, value) } \arguments{ \item{g}{A function of the form \eqn{g(\theta,x)} and which returns a \eqn{n \times q} matrix with typical element \eqn{g_i(\theta,x_t)} for \eqn{i=1,...q} and \eqn{t=1,...,n}. This matrix is then used to build the q sample moment conditions. It can also be a formula if the model is linear (see details below).} \item{x}{The matrix or vector of data from which the function \eqn{g(\theta,x)} is computed. If "g" is a formula, it is an \eqn{n \times Nh} matrix of instruments or a formula (see details below).} \item{t0}{A \eqn{k \times 1} vector of starting values. It is required only when "g" is a function because only then a numerical algorithm is used to minimize the objective function. If the dimension of \eqn{\theta} is one, see the argument "optfct".} \item{tetw}{A \eqn{k \times 1} vector to compute the weighting matrix.} \item{gradv}{A function of the form \eqn{G(\theta,x)} which returns a \eqn{q\times k} matrix of derivatives of \eqn{\bar{g}(\theta)} with respect to \eqn{\theta}. By default, the numerical algorithm \code{numericDeriv} is used. It is of course strongly suggested to provide this function when it is possible. This gradient is used to compute the asymptotic covariance matrix of \eqn{\hat{\theta}} and to obtain the analytical gradient of the objective function if the method is set to "CG" or "BFGS" in \code{\link{optim}} and if "type" is not set to "cue". If "g" is a formula, the gradiant is not required (see the details below).} \item{type}{The GMM method: "twostep" is the two step GMM proposed by Hansen(1982) and the "cue" and "iterative" are respectively the continuous updated and the iterative GMM proposed by Hansen, Eaton et Yaron (1996)} \item{wmatrix}{Which weighting matrix should be used in the objective function. By default, it is the inverse of the covariance matrix of \eqn{g(\theta,x)}. The other choice is the identity matrix which is usually used to obtain a first step estimate of \eqn{\theta} } \item{vcov}{Assumption on the properties of the random vector x. By default, x is a weakly dependant process. The "iid" option will avoid using the HAC matrix which will accelerate the estimation if one is ready to make that assumption. The option "TrueFixed" is used only when the matrix of weights is provided and it is the optimal one.} \item{kernel}{type of kernel used to compute the covariance matrix of the vector of sample moment conditions (see \code{\link{kernHAC}} for more details)} \item{crit}{The stopping rule for the iterative GMM. It can be reduce to increase the precision.} \item{bw}{The method to compute the bandwidth parameter in the HAC weighting matrix. The default is \code{link{bwAndrews}} (as proposed in Andrews (1991)), which minimizes the MSE of the weighting matrix. Alternatives are \code{link{bwWilhelm}} (as proposed in Wilhelm (2015)), which minimizes the mean-square error (MSE) of the resulting GMM estimator, and \code{link{bwNeweyWest}} (as proposed in Newey-West(1994)).} \item{prewhite}{logical or integer. Should the estimating functions be prewhitened? If \code{TRUE} or greater than 0 a VAR model of order \code{as.integer(prewhite)} is fitted via \code{ar} with method \code{"ols"} and \code{demean = FALSE}.} \item{ar.method}{character. The \code{method} argument passed to \code{\link{ar}} for prewhitening.} \item{approx}{A character specifying the approximation method if the bandwidth has to be chosen by \code{bwAndrews}.} \item{tol}{Weights that exceed \code{tol} are used for computing the covariance matrix, all other weights are treated as 0.} \item{itermax}{The maximum number of iterations for the iterative GMM. It is unlikely that the algorithm does not converge but we keep it as a safety.} \item{optfct}{Only when the dimension of \eqn{\theta} is 1, you can choose between the algorithm \code{\link{optim}} or \code{\link{optimize}}. In that case, the former is unreliable. If \code{\link{optimize}} is chosen, "t0" must be \eqn{1\times 2} which represents the interval in which the algorithm seeks the solution. It is also possible to choose the \code{\link{nlminb}} algorithm. In that case, boundaries for the coefficients can be set by the options \code{upper=} and \code{lower=}. The \code{\link{constrOptim}} is only available for nonlinear models for now. The standard errors may have to be corrected if the estimtes reach the boundary set by ui and ci.} \item{model, X, Y}{logical. If \code{TRUE} the corresponding components of the fit (the model frame, the model matrix, the response) are returned if g is a formula.} \item{TypeGmm}{The name of the class object created by the method \code{getModel}. It allows developers to extend the package and create other GMM methods.} \item{centeredVcov}{Should the moment function be centered when computing its covariance matrix. Doing so may improve inference.} \item{weightsMatrix}{It allows users to provide \code{gmm} with a fixed weighting matrix. This matrix must be \eqn{q \times q}, symmetric and strictly positive definite. When provided, the \code{type} option becomes irrelevant. } \item{traceIter}{Tracing information for GMM of type "iter"} \item{data}{A data.frame or a matrix with column names (Optional). } \item{eqConst}{Either a named vector (if "g" is a function), a simple vector for the nonlinear case indicating which of the \eqn{\theta_0} is restricted, or a qx2 vector defining equality constraints of the form \eqn{\theta_i=c_i}. See below for an example.} \item{which, value}{The equality constraint is of the form which=value. "which" can be a vector of type characters with the names of the coefficients being constrained, or a vector of type numeric with the position of the coefficient in the whole vector.} \item{obj}{Object of class "gmm"} \item{eqConstFullVcov}{If FALSE, the constrained coefficients are assumed to be fixed and only the covariance of the unconstrained coefficients is computed. If TRUE, the covariance matrix of the full set of coefficients is computed.} \item{mustar}{If not null, it must be a vector with the number of elements being equal to the number of moment conditions. In that case, the vector is subtracted from the sample moment vector before minimizing the objective function. It is useful to do a bootstrap procedure. } \item{onlyCoefficients}{If set to \code{TRUE}, the function only returns the coefficient estimates. It may be of interest when the standard errors are not needed} \item{...}{More options to give to \code{\link{optim}}.} } \details{ If we want to estimate a model like \eqn{Y_t = \theta_1 + X_{2t} \theta_2 + \cdots + X_{k}\theta_k + \epsilon_t} using the moment conditions \eqn{Cov(\epsilon_tH_t)=0}, where \eqn{H_t} is a vector of \eqn{Nh} instruments, than we can define "g" like we do for \code{\link{lm}}. We would have \eqn{g = y ~\tilde{}~ x2+x3+ \cdots +xk} and the argument "x" above would become the matrix H of instruments. As for \code{\link{lm}}, \eqn{Y_t} can be a \eqn{Ny \times 1} vector which would imply that \eqn{k=Nh \times Ny}. The intercept is included by default so you do not have to add a column of ones to the matrix \eqn{H}. You do not need to provide the gradiant in that case since in that case it is embedded in \code{\link{gmm}}. The intercept can be removed by adding -1 to the formula. In that case, the column of ones need to be added manually to H. It is also possible to express "x" as a formula. For example, if the instruments are \eqn{\{1,z_1,z_2,z_3\}}, we can set "x" to \eqn{\tilde{} z1+z2+z3}. By default, a column of ones is added. To remove it, set "x" to \eqn{\tilde{}z1+z2+z3-1}. The following explains the last example bellow. Thanks to Dieter Rozenich, a student from the Vienna University of Economics and Business Administration. He suggested that it would help to understand the implementation of the Jacobian. For the two parameters of a normal distribution \eqn{(\mu,\sigma)} we have the following three moment conditions: \deqn{ m_{1} = \mu - x_{i} } \deqn{ m_{2} = \sigma^2 - (x_{i}-\mu)^2 } \deqn{ m_{3} = x_{i}^{3} - \mu (\mu^2+3\sigma^{2}) } \eqn{m_{1},m_{2}} can be directly obtained by the definition of \eqn{(\mu,\sigma)}. The third moment condition comes from the third derivative of the moment generating function (MGF) \deqn{ M_{X}(t) = exp\Big(\mu t + \frac{\sigma^{2}t^{2}}{2}\Big) } evaluated at \eqn{(t=0)}. Note that we have more equations (3) than unknown parameters (2). The Jacobian of these two conditions is (it should be an array but I can't make it work): \deqn{ 1~~~~~~~~~~ 0 } \deqn{ -2\mu+2x ~~~~~ 2\sigma } \deqn{-3\mu^{2}-3\sigma^{2} ~~~~ -6\mu\sigma} \code{gmmWithConst()} re-estimates an unrestricted model by adding an equality constraint. \code{evalGmm()} creates an object of class '"gmm"' for a given parameter vector. If no vector "tetw" is provided and the weighting matrix needs to be computed, "t0" is used., } \value{ 'gmm' returns an object of 'class' '"gmm"' The functions 'summary' is used to obtain and print a summary of the results. It also compute the J-test of overidentying restriction The object of class "gmm" is a list containing at least: \item{coefficients}{\eqn{k\times 1} vector of coefficients} \item{residuals}{the residuals, that is response minus fitted values if "g" is a formula.} \item{fitted.values}{the fitted mean values if "g" is a formula.} \item{vcov}{the covariance matrix of the coefficients} \item{objective}{the value of the objective function \eqn{\| var(\bar{g})^{-1/2}\bar{g}\|^2}} \item{terms}{the \code{\link{terms}} object used when g is a formula.} \item{call}{the matched call.} \item{y}{if requested, the response used (if "g" is a formula).} \item{x}{if requested, the model matrix used if "g" is a formula or the data if "g" is a function.} \item{model}{if requested (the default), the model frame used if "g" is a formula.} \item{algoInfo}{Information produced by either \code{\link{optim}} or \code{\link{nlminb}} related to the convergence if "g" is a function. It is printed by the \code{summary.gmm} method.} } \references{ Zeileis A (2006), Object-oriented Computation of Sandwich Estimators. \emph{Journal of Statistical Software}, \bold{16}(9), 1--16. URL \url{http://www.jstatsoft.org/v16/i09/}. Pierre Chausse (2010), Computing Generalized Method of Moments and Generalized Empirical Likelihood with R. \emph{Journal of Statistical Software}, \bold{34}(11), 1--35. URL \url{http://www.jstatsoft.org/v34/i11/}. Andrews DWK (1991), Heteroskedasticity and Autocorrelation Consistent Covariance Matrix Estimation. \emph{Econometrica}, \bold{59}, 817--858. Newey WK & West KD (1987), A Simple, Positive Semi-Definite, Heteroskedasticity and Autocorrelation Consistent Covariance Matrix. \emph{Econometrica}, \bold{55}, 703--708. Newey WK & West KD (1994), Automatic Lag Selection in Covariance Matrix Estimation. \emph{Review of Economic Studies}, \bold{61}, 631-653. Hansen, L.P. (1982), Large Sample Properties of Generalized Method of Moments Estimators. \emph{Econometrica}, \bold{50}, 1029-1054, Hansen, L.P. and Heaton, J. and Yaron, A.(1996), Finite-Sample Properties of Some Alternative GMM Estimators. \emph{Journal of Business and Economic Statistics}, \bold{14} 262-280. } \examples{ ## CAPM test with GMM data(Finance) r <- Finance[1:300, 1:10] rm <- Finance[1:300, "rm"] rf <- Finance[1:300, "rf"] z <- as.matrix(r-rf) t <- nrow(z) zm <- rm-rf h <- matrix(zm, t, 1) res <- gmm(z ~ zm, x = h) summary(res) ## linear tests can be performed using linearHypothesis from the car package ## The CAPM can be tested as follows: library(car) linearHypothesis(res,cbind(diag(10),matrix(0,10,10)),rep(0,10)) # The CAPM of Black g <- function(theta, x) { e <- x[,2:11] - theta[1] - (x[,1] - theta[1]) \%*\% matrix(theta[2:11], 1, 10) gmat <- cbind(e, e*c(x[,1])) return(gmat) } x <- as.matrix(cbind(rm, r)) res_black <- gmm(g, x = x, t0 = rep(0, 11)) summary(res_black)$coefficients ## APT test with Fama-French factors and GMM f1 <- zm f2 <- Finance[1:300, "hml"] f3 <- Finance[1:300, "smb"] h <- cbind(f1, f2, f3) res2 <- gmm(z ~ f1 + f2 + f3, x = h) coef(res2) summary(res2)$coefficients ## Same result with x defined as a formula: res2 <- gmm(z ~ f1 + f2 + f3, ~ f1 + f2 + f3) coef(res2) ## The following example has been provided by Dieter Rozenich (see details). # It generates normal random numbers and uses the GMM to estimate # mean and sd. #------------------------------------------------------------------------------- # Random numbers of a normal distribution # First we generate normally distributed random numbers and compute the two parameters: n <- 1000 x <- rnorm(n, mean = 4, sd = 2) # Implementing the 3 moment conditions g <- function(tet, x) { m1 <- (tet[1] - x) m2 <- (tet[2]^2 - (x - tet[1])^2) m3 <- x^3 - tet[1]*(tet[1]^2 + 3*tet[2]^2) f <- cbind(m1, m2, m3) return(f) } # Implementing the jacobian Dg <- function(tet, x) { jacobian <- matrix(c( 1, 2*(-tet[1]+mean(x)), -3*tet[1]^2-3*tet[2]^2,0, 2*tet[2], -6*tet[1]*tet[2]), nrow=3,ncol=2) return(jacobian) } # Now we want to estimate the two parameters using the GMM. gmm(g, x, c(0, 0), grad = Dg) # Two-stage-least-squares (2SLS), or IV with iid errors. # The model is: # Y(t) = b[0] + b[1]C(t) + b[2]Y(t-1) + e(t) # e(t) is an MA(1) # The instruments are Z(t)={1 C(t) y(t-2) y(t-3) y(t-4)} getdat <- function(n) { e <- arima.sim(n,model=list(ma=.9)) C <- runif(n,0,5) Y <- rep(0,n) Y[1] = 1 + 2*C[1] + e[1] for (i in 2:n){ Y[i] = 1 + 2*C[i] + 0.9*Y[i-1] + e[i] } Yt <- Y[5:n] X <- cbind(1,C[5:n],Y[4:(n-1)]) Z <- cbind(1,C[5:n],Y[3:(n-2)],Y[2:(n-3)],Y[1:(n-4)]) return(list(Y=Yt,X=X,Z=Z)) } d <- getdat(5000) res4 <- gmm(d$Y~d$X-1,~d$Z-1,vcov="iid") res4 ### Examples with equality constraint ###################################### # Random numbers of a normal distribution ## Not run: # The following works but produces warning message because the dimension of coef is 1 # Brent should be used # without named vector # Method Brent is used because the problem is now one-dimensional gmm(g, x, c(4, 0), grad = Dg, eqConst=1, method="Brent", lower=-10,upper=10) # with named vector gmm(g, x, c(mu=4, sig=2), grad = Dg, eqConst="sig", method="Brent", lower=-10,upper=10) ## End(Not run) gmm(g, x, c(4, 0), grad = Dg, eqConst=1,method="Brent",lower=0,upper=6) gmm(g, x, c(mu=4, sig=2), grad = Dg, eqConst="sig",method="Brent",lower=0,upper=6) # Example with formula # first coef = 0 and second coef = 1 # Only available for one dimensional yt z <- z[,1] res2 <- gmm(z ~ f1 + f2 + f3, ~ f1 + f2 + f3, eqConst = matrix(c(1,2,0,1),2,2)) res2 # CUE with starting t0 requires eqConst to be a vector res3 <- gmm(z ~ f1 + f2 + f3, ~ f1 + f2 + f3, t0=c(0,1,.5,.5), type="cue", eqConst = c(1,2)) res3 ### Examples with equality constraints, where the constrained coefficients is used to compute ### the covariance matrix. ### Useful when some coefficients have been estimated before, they are just identified in GMM ### and don't need to be re-estimated. ### To use with caution because the covariance won't be valid if the coefficients do not solve ### the GMM FOC. ###################################### res4 <- gmm(z ~ f1 + f2 + f3, ~ f1 + f2 + f3, t0=c(0,1,.5,.5), eqConst = c(1,2), eqConstFullVcov=TRUE) summary(res4) ### Examples with equality constraint using gmmWithConst ########################################################### res2 <- gmm(z ~ f1 + f2 + f3, ~ f1 + f2 + f3) gmmWithConst(res2,c("f2","f3"),c(.5,.5)) gmmWithConst(res2,c(2,3),c(.5,.5)) ## Creating an object without estimation for a fixed parameter vector ################################################################### res2_2 <- evalGmm(z ~ f1 + f2 + f3, ~ f1 + f2 + f3, t0=res2$coefficients, tetw=res2$coefficients) summary(res2_2) } gmm/man/getLamb.Rd0000644000176200001440000000751713464357722013476 0ustar liggesusers\name{getLamb} \alias{getLamb} \title{Solving for the Lagrange multipliers of Generalized Empirical Likelihood (GEL) } \description{ It computes the vector of Lagrange multipliers, which maximizes the GEL objective function, using an iterative Newton method. } \usage{ getLamb(gt, l0, type = c("EL","ET","CUE", "ETEL", "HD","ETHD","RCUE"), tol_lam = 1e-7, maxiterlam = 100, tol_obj = 1e-7, k = 1, method = c("nlminb", "optim", "iter", "Wu"), control = list()) } \arguments{ \item{gt}{A \eqn{n \times q} matrix with typical element \eqn{g_i(\theta,x_t)}} \item{l0}{Vector of starting values for lambda} \item{type}{"EL" for empirical likelihood, "ET" for exponential tilting, "CUE" for continuous updated estimator, and "HD" for Hellinger Distance. See details for "ETEL" and "ETHD". "RCUE" is a restricted version of "CUE" in which the probabilities are bounded below by zero. In that case, an analytical Kuhn-Tucker method is used to find the solution.} \item{tol_lam}{Tolerance for \eqn{\lambda} between two iterations. The algorithm stops when \eqn{\|\lambda_i -\lambda_{i-1}\|} reaches \code{tol_lam} } \item{maxiterlam}{The algorithm stops if there is no convergence after "maxiterlam" iterations.} \item{tol_obj}{Tolerance for the gradiant of the objective function. The algorithm returns a non-convergence message if \eqn{\max(|gradiant|)} does not reach \code{tol_obj}. It helps the \code{gel} algorithm to select the right space to look for \eqn{\theta}} \item{k}{It represents the ratio k1/k2, where \eqn{k1=\int_{-\infty}^{\infty} k(s)ds} and \eqn{k2=\int_{-\infty}^{\infty} k(s)^2 ds}. See Smith(2004).} \item{method}{The iterative procedure uses a Newton method for solving the FOC. It i however recommended to use \code{optim} or \code{nlminb}. If type is set to "EL" and method to "optim", \code{\link{constrOptim}} is called to prevent \eqn{log(1-gt'\lambda)} from producing NA. The gradient and hessian is provided to \code{nlminb} which speed up the convergence. The latter is therefore the default value. "Wu" is for "EL" only. It uses the algorithm of Wu (2005). The value of \code{method} is ignored for "CUE" because in that case, the analytical solution exists.} \item{control}{Controls to send to \code{\link{optim}}, \code{\link{nlminb}} or \code{\link{constrOptim}}} } \details{ It solves the problem \eqn{\max_{\lambda} \frac{1}{n}\sum_{t=1}^n \rho(gt'\lambda)}. For the type "ETEL", it is only used by \code{\link{gel}}. In that case \eqn{\lambda} is obtained by maximizing \eqn{\frac{1}{n}\sum_{t=1}^n \rho(gt'\lambda)}, using \eqn{\rho(v)=-\exp{v}} (so ET) and \eqn{\theta} by minimizing the same equation but with \eqn{\rho(v)-\log{(1-v)}}. To avoid NA's, \code{\link{constrOptim}} is used with the restriction \eqn{\lambda'g_t < 1}. The type "ETHD" is experimental and proposed by Antoine-Dovonon (2015). The paper is not yet available. } \value{ lambda: A \eqn{q\times 1} vector of Lagrange multipliers which solve the system of equations given above. \code{conv}: Details on the type of convergence. } \references{ Newey, W.K. and Smith, R.J. (2004), Higher Order Properties of GMM and Generalized Empirical Likelihood Estimators. \emph{Econometrica}, \bold{72}, 219-255. Smith, R.J. (2004), GEL Criteria for Moment Condition Models. \emph{Working paper, CEMMAP}. Wu, C. (2005), Algorithms and R codes for the pseudo empirical likelihood method in survey sampling. \emph{Survey Methodology}, \bold{31}(2), page 239. } \examples{ g <- function(tet,x) { n <- nrow(x) u <- (x[7:n] - tet[1] - tet[2]*x[6:(n-1)] - tet[3]*x[5:(n-2)]) f <- cbind(u, u*x[4:(n-3)], u*x[3:(n-4)], u*x[2:(n-5)], u*x[1:(n-6)]) return(f) } n = 500 phi<-c(.2, .7) thet <- 0.2 sd <- .2 x <- matrix(arima.sim(n = n, list(order = c(2, 0, 1), ar = phi, ma = thet, sd = sd)), ncol = 1) gt <- g(c(0,phi),x) getLamb(gt, type = "EL",method="optim") } gmm/man/specTest.Rd0000644000176200001440000000244511305655400013672 0ustar liggesusers\name{specTest} \alias{specTest} \alias{specTest.gel} \alias{specTest.gmm} \alias{print.specTest} \title{Compute tests of specification} \description{ Generic function for testing the specification of estimated models. It computes the J-test from \code{gmm} objects and J-test, LR-test and LM-test from \code{gel} objects. } \usage{ \method{specTest}{gmm}(x, ...) \method{specTest}{gel}(x, ...) \method{print}{specTest}(x, digits = 5, ...) specTest(x, \dots) } \arguments{ \item{x}{A fitted model object.} \item{digits}{The number of digits to be printed.} \item{\dots}{Arguments passed to methods.} } \value{ Tests and p-values } \references{ Hansen, L.P. (1982), Large Sample Properties of Generalized Method of Moments Estimators. \emph{Econometrica}, \bold{50}, 1029-1054, Smith, R. J. (2004), GEL Criteria for Moment Condition Models. \emph{CeMMAP working papers, Institute for Fiscal Studies} } \examples{ ################# n = 500 phi<-c(.2,.7) thet <- 0 sd <- .2 x <- matrix(arima.sim(n=n,list(order=c(2,0,1),ar=phi,ma=thet,sd=sd)),ncol=1) y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] H <- cbind(x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) g <- y ~ ym1 + ym2 x <- H t0 <- c(0,.5,.5) res <- gel(g, x, t0) specTest(res) ################### res <- gmm(g, x) specTest(res) } gmm/man/sysGmm.Rd0000644000176200001440000001333112623157321013356 0ustar liggesusers\name{sysGmm} \alias{sysGmm} \alias{five} \alias{sur} \alias{randEffect} \alias{threeSLS} \title{Generalized method of moment estimation for system of equations} \description{ Functions to estimate a system of equations based on GMM. } \usage{ sysGmm(g, h, wmatrix = c("optimal","ident"), vcov=c("MDS", "HAC", "CondHom", "TrueFixed"), kernel=c("Quadratic Spectral","Truncated", "Bartlett", "Parzen", "Tukey-Hanning"), crit=10e-7,bw = bwAndrews, prewhite = FALSE, ar.method = "ols", approx="AR(1)", tol = 1e-7, model=TRUE, X=FALSE, Y=FALSE, centeredVcov = TRUE, weightsMatrix = NULL, data, crossEquConst = NULL, commonCoef = FALSE) five(g, h, commonCoef = FALSE, data = NULL) threeSLS(g, h, commonCoef = FALSE, data = NULL) sur(g, commonCoef = FALSE, data = NULL) randEffect(g, data = NULL) } \arguments{ \item{g}{A possibly named list of formulas} \item{h}{A formula if the same instruments are used in each equation or a list of formulas.} \item{wmatrix}{Which weighting matrix should be used in the objective function. By default, it is the inverse of the covariance matrix of \eqn{g(\theta,x)}. The other choice is the identity matrix.} \item{vcov}{Assumption on the properties of the moment vector. By default, it is a martingale difference sequence. "HAC" is for weakly dependent processes and "CondHom" implies conditional homoscedasticity. The option "TrueFixed" is used only when the matrix of weights is provided and it is the optimal one.} \item{kernel}{type of kernel used to compute the covariance matrix of the vector of sample moment conditions (see \code{\link{kernHAC}} for more details)} \item{crit}{The stopping rule for the iterative GMM. It can be reduce to increase the precision.} \item{bw}{The method to compute the bandwidth parameter. By default it is \code{\link{bwAndrews}} which is proposed by Andrews (1991). The alternative is \code{\link{bwNeweyWest}} of Newey-West(1994).} \item{prewhite}{logical or integer. Should the estimating functions be prewhitened? If \code{TRUE} or greater than 0 a VAR model of order \code{as.integer(prewhite)} is fitted via \code{ar} with method \code{"ols"} and \code{demean = FALSE}.} \item{ar.method}{character. The \code{method} argument passed to \code{\link{ar}} for prewhitening.} \item{approx}{A character specifying the approximation method if the bandwidth has to be chosen by \code{bwAndrews}.} \item{tol}{Weights that exceed \code{tol} are used for computing the covariance matrix, all other weights are treated as 0.} \item{model, X, Y}{logical. If \code{TRUE} the corresponding components of the fit (the model frame, the model matrix, the response) are returned if g is a formula.} \item{centeredVcov}{Should the moment function be centered when computing its covariance matrix. Doing so may improve inference.} \item{weightsMatrix}{It allows users to provide \code{gmm} with a fixed weighting matrix. This matrix must be \eqn{q \times q}, symmetric and strictly positive definite. When provided, the \code{type} option becomes irrelevant. } \item{data}{A data.frame or a matrix with column names (Optional). } \item{commonCoef}{If true, coefficients accross equations are the same} \item{crossEquConst}{Only used if the number of regressors are the same in each equation. It is a vector which indicates which coefficient are constant across equations. The order is 1 for Intercept and 2 to k as it is formulated in the formulas \code{g}. Setting it to \code{1:k} is equivalent to setting commonCoef to TRUE.} } \details{ This set of functions implement the estimation of system of equations as presented in Hayashi (2000) } \value{ 'sysGmm' returns an object of 'class' '"sysGmm"' The functions 'summary' is used to obtain and print a summary of the results. It also compute the J-test of overidentying restriction The object of class "sysGmm" is a list containing at least: \item{coefficients}{list of vectors of coefficients for each equation} \item{residuals}{list of the residuals for each equation.} \item{fitted.values}{list of the fitted values for each equation.} \item{vcov}{the covariance matrix of the stacked coefficients} \item{objective}{the value of the objective function \eqn{\| var(\bar{g})^{-1/2}\bar{g}\|^2}} \item{terms}{The list of \code{\link{terms}} objects for each equation} \item{call}{the matched call.} \item{y}{If requested, a list of response variables.} \item{x}{if requested, a list of the model matrices.} \item{model}{if requested (the default), a list of the model frames.} } \references{ Zeileis A (2006), Object-oriented Computation of Sandwich Estimators. \emph{Journal of Statistical Software}, \bold{16}(9), 1--16. URL \url{http://www.jstatsoft.org/v16/i09/}. Andrews DWK (1991), Heteroskedasticity and Autocorrelation Consistent Covariance Matrix Estimation. \emph{Econometrica}, \bold{59}, 817--858. Newey WK & West KD (1987), A Simple, Positive Semi-Definite, Heteroskedasticity and Autocorrelation Consistent Covariance Matrix. \emph{Econometrica}, \bold{55}, 703--708. Newey WK & West KD (1994), Automatic Lag Selection in Covariance Matrix Estimation. \emph{Review of Economic Studies}, \bold{61}, 631-653. Hayashi, F. (2000), Econometrics. \emph{Princeton University Press}. } \examples{ data(wage) eq1 <- LW~S+IQ+EXPR eq2 <- LW80~S80+IQ+EXPR80 g2 <- list(Wage69=eq1, WAGE80=eq2) h2 <- list(~S+EXPR+MED+KWW, ~S80+EXPR80+MED+KWW) res <- sysGmm(g2, h2, data=wage, commonCoef=TRUE) summary(res) res2 <- sysGmm(g2, h2, data=wage) summary(res2) five(g2, h2, data=wage) threeSLS(g2, h2[[1]], data=wage) sur(g2, data=wage) randEffect(g2, data=wage) ## Cross-Equation restrictions ## All but the intercept are assumed to be the same res <- sysGmm(g2, h2, data=wage, crossEquConst = 2:4) summary(res) } gmm/man/gel.Rd0000644000176200001440000003272113464357722012665 0ustar liggesusers\name{gel} \alias{gel} \alias{evalGel} \title{Generalized Empirical Likelihood estimation} \description{ Function to estimate a vector of parameters based on moment conditions using the GEL method as presented by Newey-Smith(2004) and Anatolyev(2005). } \usage{ gel(g, x, tet0 = NULL, gradv = NULL, smooth = FALSE, type = c("EL","ET","CUE","ETEL","HD","ETHD","RCUE"), kernel = c("Truncated", "Bartlett"), bw = bwAndrews, approx = c("AR(1)", "ARMA(1,1)"), prewhite = 1, ar.method = "ols", tol_weights = 1e-7, tol_lam = 1e-9, tol_obj = 1e-9, tol_mom = 1e-9, maxiterlam = 100, constraint = FALSE, optfct = c("optim", "optimize", "nlminb"), optlam = c("nlminb", "optim", "iter", "Wu"), data, Lambdacontrol = list(), model = TRUE, X = FALSE, Y = FALSE, TypeGel = "baseGel", alpha = NULL, eqConst = NULL, eqConstFullVcov = FALSE, onlyCoefficients=FALSE, ...) evalGel(g, x, tet0, gradv = NULL, smooth = FALSE, type = c("EL", "ET", "CUE", "ETEL", "HD", "ETHD","RCUE"), kernel = c("Truncated", "Bartlett"), bw = bwAndrews, approx = c("AR(1)", "ARMA(1,1)"), prewhite = 1, ar.method = "ols", tol_weights = 1e-7, tol_lam = 1e-9, tol_obj = 1e-9, tol_mom = 1e-9, maxiterlam = 100, optlam = c("nlminb", "optim", "iter", "Wu"), data, Lambdacontrol = list(), model = TRUE, X = FALSE, Y = FALSE, alpha = NULL, ...) } \arguments{ \item{g}{A function of the form \eqn{g(\theta,x)} and which returns a \eqn{n \times q} matrix with typical element \eqn{g_i(\theta,x_t)} for \eqn{i=1,...q} and \eqn{t=1,...,n}. This matrix is then used to build the q sample moment conditions. It can also be a formula if the model is linear (see details below). } \item{tet0}{A \eqn{k \times 1} vector of starting values. If the dimension of \eqn{\theta} is one, see the argument "optfct". In the linear case, if tet0=NULL, the 2-step gmm estimator is used as starting value. However, it has to be provided when eqConst is not NULL} \item{x}{The matrix or vector of data from which the function \eqn{g(\theta,x)} is computed. If "g" is a formula, it is an \eqn{n \times Nh} matrix of instruments (see details below).} \item{gradv}{A function of the form \eqn{G(\theta,x)} which returns a \eqn{q\times k} matrix of derivatives of \eqn{\bar{g}(\theta)} with respect to \eqn{\theta}. By default, the numerical algorithm \code{numericDeriv} is used. It is of course strongly suggested to provide this function when it is possible. This gradiant is used compute the asymptotic covariance matrix of \eqn{\hat{\theta}}. If "g" is a formula, the gradiant is not required (see the details below).} \item{smooth}{If set to TRUE, the moment function is smoothed as proposed by Kitamura(1997)} \item{type}{"EL" for empirical likelihood, "ET" for exponential tilting, "CUE" for continuous updated estimator, "ETEL" for exponentially tilted empirical likelihood of Schennach(2007), "HD" for Hellinger Distance of Kitamura-Otsu-Evdokimov (2013), and "ETHD" for the exponentially tilted Hellinger distance of Antoine-Dovonon (2015). "RCUE" is a restricted version of "CUE" in which the probabilities are bounded below by zero. In that case, an analytical Kuhn-Tucker method is used to find the solution.} \item{kernel}{type of kernel used to compute the covariance matrix of the vector of sample moment conditions (see \code{\link{kernHAC}} for more details) and to smooth the moment conditions if "smooth" is set to TRUE. Only two types of kernel are available. The truncated implies a Bartlett kernel for the HAC matrix and the Bartlett implies a Parzen kernel (see Smith 2004).} \item{bw}{The method to compute the bandwidth parameter. By default it is \code{\link{bwAndrews}} which is proposed by Andrews (1991). The alternative is \code{\link{bwNeweyWest}} of Newey-West(1994).} \item{prewhite}{logical or integer. Should the estimating functions be prewhitened? If \code{TRUE} or greater than 0 a VAR model of order \code{as.integer(prewhite)} is fitted via \code{ar} with method \code{"ols"} and \code{demean = FALSE}.} \item{ar.method}{character. The \code{method} argument passed to \code{\link{ar}} for prewhitening.} \item{approx}{a character specifying the approximation method if the bandwidth has to be chosen by \code{bwAndrews}.} \item{tol_weights}{numeric. Weights that exceed \code{tol} are used for computing the covariance matrix, all other weights are treated as 0.} \item{tol_lam}{Tolerance for \eqn{\lambda} between two iterations. The algorithm stops when \eqn{\|\lambda_i -\lambda_{i-1}\|} reaches \code{tol_lamb} (see \code{\link{getLamb}}) } \item{maxiterlam}{The algorithm to compute \eqn{\lambda} stops if there is no convergence after "maxiterlam" iterations (see \code{\link{getLamb}}).} \item{tol_obj}{Tolerance for the gradiant of the objective function to compute \eqn{\lambda} (see \code{\link{getLamb}}).} \item{optfct}{Only when the dimension of \eqn{\theta} is 1, you can choose between the algorithm \code{\link{optim}} or \code{\link{optimize}}. In that case, the former is unreliable. If \code{\link{optimize}} is chosen, "t0" must be \eqn{1\times 2} which represents the interval in which the algorithm seeks the solution.It is also possible to choose the \code{\link{nlminb}} algorithm. In that case, borns for the coefficients can be set by the options \code{upper=} and \code{lower=}.} \item{constraint}{If set to TRUE, the constraint optimization algorithm is used. See \code{\link{constrOptim}} to learn how it works. In particular, if you choose to use it, you need to provide "ui" and "ci" in order to impose the constraint \eqn{ui \theta - ci \geq 0}.} \item{tol_mom}{It is the tolerance for the moment condition \eqn{\sum_{t=1}^n p_t g(\theta(x_t)=0}, where \eqn{p_t=\frac{1}{n}D\rho()} is the implied probability. It adds a penalty if the solution diverges from its goal.} \item{optlam}{Algorithm used to solve for the lagrange multiplier in \code{\link{getLamb}}. The algorithm Wu is only for \code{type="EL"}. The value of \code{optlam} is ignored for "CUE" because in that case, the analytical solution exists.} \item{data}{A data.frame or a matrix with column names (Optional). } \item{Lambdacontrol}{Controls for the optimization of the vector of Lagrange multipliers used by either \code{\link{optim}}, \code{\link{nlminb}} or \code{\link{constrOptim}}} \item{model, X, Y}{logicals. If \code{TRUE} the corresponding components of the fit (the model frame, the model matrix, the response) are returned if g is a formula.} \item{TypeGel}{The name of the class object created by the method \code{getModel}. It allows developers to extand the package and create other GEL methods.} \item{alpha}{Regularization coefficient for discrete CGEL estimation (experimental). By setting alpha to any value, the model is estimated by CGEL of type specified by the option \code{type}. See Chausse (2011)} \item{eqConst}{Either a named vector (if "g" is a function), a simple vector for the nonlinear case indicating which of the \eqn{\theta_0} is restricted, or a qx2 vector defining equality constraints of the form \eqn{\theta_i=c_i}. See \code{\link{gmm}} for an example.} \item{eqConstFullVcov}{If FALSE, the constrained coefficients are assumed to be fixed and only the covariance of the unconstrained coefficients is computed. If TRUE, the covariance matrix of the full set of coefficients is computed.} \item{onlyCoefficients}{If \code{TRUE}, only the vector of coefficients and Lagrange multipliers are returned} \item{...}{More options to give to \code{\link{optim}}, \code{\link{optimize}} or \code{\link{constrOptim}}.} } \details{ If we want to estimate a model like \eqn{Y_t = \theta_1 + X_{2t}\theta_2 + ... + X_{k}\theta_k + \epsilon_t} using the moment conditions \eqn{Cov(\epsilon_tH_t)=0}, where \eqn{H_t} is a vector of \eqn{Nh} instruments, than we can define "g" like we do for \code{\link{lm}}. We would have \code{g = y~x2+x3+...+xk} and the argument "x" above would become the matrix H of instruments. As for \code{\link{lm}}, \eqn{Y_t} can be a \eqn{Ny \times 1} vector which would imply that \eqn{k=Nh \times Ny}. The intercept is included by default so you do not have to add a column of ones to the matrix \eqn{H}. You do not need to provide the gradiant in that case since in that case it is embedded in \code{\link{gel}}. The intercept can be removed by adding -1 to the formula. In that case, the column of ones need to be added manually to H. If "smooth" is set to TRUE, the sample moment conditions \eqn{\sum_{t=1}^n g(\theta,x_t)} is replaced by: \eqn{\sum_{t=1}^n g^k(\theta,x_t)}, where \eqn{g^k(\theta,x_t)=\sum_{i=-r}^r k(i) g(\theta,x_{t+i})}, where \eqn{r} is a truncated parameter that depends on the bandwidth and \eqn{k(i)} are normalized weights so that they sum to 1. The method solves \eqn{\hat{\theta} = \arg\min \left[\arg\max_\lambda \frac{1}{n}\sum_{t=1}^n \rho() - \rho(0) \right]} \code{\link{evalGel}} generates the object of class "gel" for a fixed vector of parameters. There is no estimation for \eqn{\theta}, but the optimal vector of Lagrange multipliers \eqn{\lambda} is computed. The objective function is then the profiled likelihood for a given \eqn{\theta}. It can be used to construct a confidence interval by inverting the likelihood ratio test. } \value{ 'gel' returns an object of 'class' '"gel"' The functions 'summary' is used to obtain and print a summary of the results. The object of class "gel" is a list containing at least the following: \item{coefficients}{\eqn{k\times 1} vector of parameters} \item{residuals}{the residuals, that is response minus fitted values if "g" is a formula.} \item{fitted.values}{the fitted mean values if "g" is a formula.} \item{lambda}{\eqn{q \times 1} vector of Lagrange multipliers.} \item{vcov_par}{the covariance matrix of "coefficients"} \item{vcov_lambda}{the covariance matrix of "lambda"} \item{pt}{The implied probabilities} \item{objective}{the value of the objective function} \item{conv_lambda}{Convergence code for "lambda" (see \code{\link{getLamb}})} \item{conv_mes}{Convergence message for "lambda" (see \code{\link{getLamb}})} \item{conv_par}{Convergence code for "coefficients" (see \code{\link{optim}}, \code{\link{optimize}} or \code{\link{constrOptim}})} \item{terms}{the \code{\link{terms}} object used when g is a formula.} \item{call}{the matched call.} \item{y}{if requested, the response used (if "g" is a formula).} \item{x}{if requested, the model matrix used if "g" is a formula or the data if "g" is a function.} \item{model}{if requested (the default), the model frame used if "g" is a formula.} } \references{ Anatolyev, S. (2005), GMM, GEL, Serial Correlation, and Asymptotic Bias. \emph{Econometrica}, \bold{73}, 983-1002. Andrews DWK (1991), Heteroskedasticity and Autocorrelation Consistent Covariance Matrix Estimation. \emph{Econometrica}, \bold{59}, 817--858. Kitamura, Yuichi (1997), Empirical Likelihood Methods With Weakly Dependent Processes. \emph{The Annals of Statistics}, \bold{25}, 2084-2102. Kitamura, Y. and Otsu, T. and Evdokimov, K. (2013), Robustness, Infinitesimal Neighborhoods and Moment Restrictions. \emph{Econometrica}, \bold{81}, 1185-1201. Newey, W.K. and Smith, R.J. (2004), Higher Order Properties of GMM and Generalized Empirical Likelihood Estimators. \emph{Econometrica}, \bold{72}, 219-255. Smith, R.J. (2004), GEL Criteria for Moment Condition Models. \emph{Working paper, CEMMAP}. Newey WK & West KD (1987), A Simple, Positive Semi-Definite, Heteroskedasticity and Autocorrelation Consistent Covariance Matrix. \emph{Econometrica}, \bold{55}, 703--708. Newey WK & West KD (1994), Automatic Lag Selection in Covariance Matrix Estimation. \emph{Review of Economic Studies}, \bold{61}, 631-653. Schennach, Susanne, M. (2007), Point Estimation with Exponentially Tilted Empirical Likelihood. \emph{Econometrica}, \bold{35}, 634-672. Wu, C. (2005), Algorithms and R codes for the pseudo empirical likelihood method in survey sampling. \emph{Survey Methodology}, \bold{31}(2), page 239. Zeileis A (2006), Object-oriented Computation of Sandwich Estimators. \emph{Journal of Statistical Software}, \bold{16}(9), 1--16. URL \url{http://www.jstatsoft.org/v16/i09/}. Chausse (2010), Computing Generalized Method of Moments and Generalized Empirical Likelihood with R. \emph{Journal of Statistical Software}, \bold{34}(11), 1--35. URL \url{http://www.jstatsoft.org/v34/i11/}. Chausse (2011), Generalized Empirical likelihood for a continumm of moment conditions. \emph{Working Paper}, \emph{Department of Economics}, \emph{University of Waterloo}. } \examples{ # First, an exemple with the fonction g() g <- function(tet, x) { n <- nrow(x) u <- (x[7:n] - tet[1] - tet[2]*x[6:(n-1)] - tet[3]*x[5:(n-2)]) f <- cbind(u, u*x[4:(n-3)], u*x[3:(n-4)], u*x[2:(n-5)], u*x[1:(n-6)]) return(f) } Dg <- function(tet,x) { n <- nrow(x) xx <- cbind(rep(1, (n-6)), x[6:(n-1)], x[5:(n-2)]) H <- cbind(rep(1, (n-6)), x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) f <- -crossprod(H, xx)/(n-6) return(f) } n = 200 phi<-c(.2, .7) thet <- 0.2 sd <- .2 set.seed(123) x <- matrix(arima.sim(n = n, list(order = c(2, 0, 1), ar = phi, ma = thet, sd = sd)), ncol = 1) res <- gel(g, x, c(0, .3, .6), grad = Dg) summary(res) # The same model but with g as a formula.... much simpler in that case y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] H <- cbind(x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) g <- y ~ ym1 + ym2 x <- H res <- gel(g, x, c(0, .3, .6)) summary(res) # Using evalGel to create the object without estimation res <- evalGel(g, x, res$coefficients) } gmm/man/KTest.Rd0000644000176200001440000000345011743071151013130 0ustar liggesusers\name{KTest} \alias{KTest} \alias{print.gmmTests} \title{Compute the K statistics of Kleibergen} \description{The test is proposed by Kleibergen (2005). It is robust to weak identification. } \usage{ KTest(obj, theta0 = NULL, alphaK = 0.04, alphaJ = 0.01) \method{print}{gmmTests}(x, digits = 5, ...) } \arguments{ \item{obj}{Object of class "gmm" returned by \code{\link{gmm}}} \item{theta0}{The null hypothesis being tested. See details.} \item{alphaK, alphaJ}{The size of the J and K tests when combining the two. The overall size is alphaK+alphaJ.} \item{x}{An object of class \code{gmmTests} returned by \code{KTest}} \item{digits}{The number of digits to be printed} \item{...}{Other arguments when \code{print} is applied to another class object} } \details{ The function produces the J-test and K-statistics which are robust to weak identification. The test is either \eqn{H0:\theta=theta_0}, in which case theta0 must be provided, or \eqn{\beta=\beta_0}, where \eqn{\theta=(\alpha', \beta')'}, and \eqn{\alpha} is assumed to be identified. In the latter case, theta0 is NULL and obj is a restricted estimation in which \eqn{\beta} is fixed to \eqn{\beta_0}. See \code{\link{gmm}} and the option "eqConst" for more details. } \value{ Tests and p-values } \references{ Keibergen, F. (2005), Testing Parameters in GMM without assuming that they are identified. \emph{Econometrica}, \bold{73}, 1103-1123, } \examples{ library(mvtnorm) sig <- matrix(c(1,.5,.5,1),2,2) n <- 400 e <- rmvnorm(n,sigma=sig) x4 <- rnorm(n) w <- exp(-x4^2) + e[,1] y <- 0.1*w + e[,2] h <- cbind(x4, x4^2, x4^3, x4^6) g3 <- y~w res <- gmm(g3,h) # Testing the whole vector: KTest(res,theta0=c(0,.1)) # Testing a subset of the vector (See \code{\link{gmm}}) res2 <- gmm(g3, h, eqConst=matrix(c(2,.1),1,2)) res2 KTest(res2) } gmm/man/marginal.Rd0000644000176200001440000000277013107655275013707 0ustar liggesusers\name{marginal} \alias{marginal} \alias{marginal.ategel} \title{Marginal effects Summary} \description{ It produces the summary table of marginal effects for GLM estimation with GEL. Only implemented for ATEgel. } \usage{ \method{marginal}{ategel}(object, ...) } \arguments{ \item{object}{An object of class \code{ategel} returned by the function \code{\link{ATEgel}}} \item{...}{Other arguments for other methods} } \value{ It returns a matrix with the marginal effects, the standard errors based on the Delta method when the link is nonlinear, the t-ratios, and the pvalues.} \references{ Owen, A.B. (2001), Empirical Likelihood. \emph{Monographs on Statistics and Applied Probability 92, Chapman and Hall/CRC} } \examples{ ## We create some artificial data with unbalanced groups and binary outcome genDat <- function(n) { eta=c(-1, .5, -.25, -.1) Z <- matrix(rnorm(n*4),ncol=4) b <- c(27.4, 13.7, 13.7, 13.7) bZ <- c(Z\%*\%b) Y1 <- as.numeric(rnorm(n, mean=210+bZ)>220) Y0 <- as.numeric(rnorm(n, mean=200-.5*bZ)>220) etaZ <- c(Z\%*\%eta) pZ <- exp(etaZ)/(1+exp(etaZ)) T <- rbinom(n, 1, pZ) Y <- T*Y1+(1-T)*Y0 X1 <- exp(Z[,1]/2) X2 <- Z[,2]/(1+exp(Z[,1])) X3 <- (Z[,1]*Z[,3]/25+0.6)^3 X4 <- (Z[,2]+Z[,4]+20)^2 data.frame(Y=Y, cbind(X1,X2,X3,X4), T=T) } dat <- genDat(200) res <- ATEgel(Y~T, ~X1+X2+X3+X4, data=dat, type="ET", family="logit") summary(res) marginal(res) } gmm/man/summary.Rd0000644000176200001440000000565413107655275013616 0ustar liggesusers\name{summary} \alias{summary.gmm} \alias{summary.sysGmm} \alias{summary.gel} \alias{summary.ategel} \alias{summary.tsls} \alias{print.summary.gmm} \alias{print.summary.sysGmm} \alias{print.summary.gel} \alias{print.summary.tsls} \title{Method for object of class gmm or gel} \description{ It presents the results from the \code{gmm} or \code{gel} estimation in the same fashion as \code{summary} does for the \code{lm} class objects for example. It also compute the tests for overidentifying restrictions. } \usage{ \method{summary}{gmm}(object, ...) \method{summary}{sysGmm}(object, ...) \method{summary}{gel}(object, ...) \method{summary}{ategel}(object, robToMiss = TRUE, ...) \method{summary}{tsls}(object, vcov = NULL, ...) \method{print}{summary.gmm}(x, digits = 5, ...) \method{print}{summary.sysGmm}(x, digits = 5, ...) \method{print}{summary.gel}(x, digits = 5, ...) \method{print}{summary.tsls}(x, digits = 5, ...) } \arguments{ \item{object}{An object of class \code{gmm} or \code{gel} returned by the function \code{\link{gmm}} or \code{\link{gel}}} \item{x}{An object of class \code{summary.gmm} or \code{summary.gel} returned by the function \code{\link{summary.gmm}} \code{\link{summary.gel}}} \item{digits}{The number of digits to be printed} \item{vcov}{An alternative covariance matrix computed with \code{vcov.tsls}} \item{robToMiss}{If \code{TRUE}, it computes the robust to misspecification covariance matrix} \item{...}{Other arguments when summary is applied to another class object} } \value{ It returns a list with the parameter estimates and their standard deviations, t-stat and p-values. It also returns the J-test and p-value for the null hypothesis that \eqn{E(g(\theta,X)=0} } \references{ Hansen, L.P. (1982), Large Sample Properties of Generalized Method of Moments Estimators. \emph{Econometrica}, \bold{50}, 1029-1054, Hansen, L.P. and Heaton, J. and Yaron, A.(1996), Finit-Sample Properties of Some Alternative GMM Estimators. \emph{Journal of Business and Economic Statistics}, \bold{14} 262-280. Anatolyev, S. (2005), GMM, GEL, Serial Correlation, and Asymptotic Bias. \emph{Econometrica}, \bold{73}, 983-1002. Kitamura, Yuichi (1997), Empirical Likelihood Methods With Weakly Dependent Processes. \emph{The Annals of Statistics}, \bold{25}, 2084-2102. Newey, W.K. and Smith, R.J. (2004), Higher Order Properties of GMM and Generalized Empirical Likelihood Estimators. \emph{Econometrica}, \bold{72}, 219-255. } \examples{ # GMM # set.seed(444) n = 500 phi<-c(.2,.7) thet <- 0 sd <- .2 x <- matrix(arima.sim(n = n, list(order = c(2,0,1), ar = phi, ma = thet, sd = sd)), ncol = 1) y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] ym3 <- x[4:(n-3)] ym4 <- x[3:(n-4)] ym5 <- x[2:(n-5)] ym6 <- x[1:(n-6)] g <- y ~ ym1 + ym2 x <- ~ym3+ym4+ym5+ym6 res <- gmm(g, x) summary(res) # GEL # t0 <- res$coef res <- gel(g, x, t0) summary(res) # tsls # res <- tsls(y ~ ym1 + ym2,~ym3+ym4+ym5+ym6) summary(res) } gmm/man/residuals.Rd0000644000176200001440000000261711305632271014075 0ustar liggesusers\name{residuals} \alias{residuals.gel} \alias{residuals.gmm} \title{Residuals of GEL or GMM} \description{ Method to extract the residuals of the model estimated by \code{gmm} or \code{gel}. } \usage{ \method{residuals}{gel}(object, ...) \method{residuals}{gmm}(object, ...) } \arguments{ \item{object}{An object of class \code{gmm} or \code{gel} returned by the function \code{\link{gmm}} or \code{\link{gel}}} \item{...}{Other arguments when \code{residuals} is applied to an other classe object} } \value{ It returns the matrix of residuals \eqn{(y-\hat{y})} in \code{g=y~x} as it is done by \code{residuals.lm}. } \examples{ # GEL can deal with endogeneity problems n = 200 phi<-c(.2,.7) thet <- 0.2 sd <- .2 set.seed(123) x <- matrix(arima.sim(n = n, list(order = c(2,0,1), ar = phi, ma = thet, sd = sd)), ncol = 1) y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] H <- cbind(x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) g <- y ~ ym1 + ym2 x <- H res <- gel(g, x, c(0,.3,.6)) e <- residuals(res) plot(e, type = 'l', main = "Residuals from an ARMA fit using GEL") # GMM is like GLS for linear models without endogeneity problems set.seed(345) n = 200 phi<-c(.2,.7) thet <- 0 sd <- .2 x <- matrix(arima.sim(n = n, list(order = c(2,0,1), ar = phi, ma = thet, sd = sd)), ncol = 1) y <- 10 + 5*rnorm(n) + x res <- gmm(y ~ x, x) plot(x, residuals(res), main = "Residuals of an estimated model with GMM") } gmm/man/charStable.Rd0000644000176200001440000000315511305626435014155 0ustar liggesusers\name{charStable} \alias{charStable} \title{The characteristic function of a stable distribution} \description{ It computes the theoretical characteristic function of a stable distribution for two different parametrizations. It is used in the vignette to illustrate the estimation of the parameters using GMM.} \usage{ charStable(theta, tau, pm = 0) } \arguments{ \item{theta}{Vector of parameters of the stable distribution. See details.} \item{tau}{A vector of numbers at which the function is evaluated.} \item{pm}{The type of parametization. It takes the values 0 or 1.} } \value{ It returns a vector of complex numbers with the dimension equals to \code{length(tau)}. } \details{ The function returns the vector \eqn{\Psi(\theta,\tau,pm)} defined as \eqn{E(e^{ix\tau}}, where \eqn{\tau} is a vector of real numbers, \eqn{i} is the imaginary number, \eqn{x} is a stable random variable with parameters \eqn{\theta} = \eqn{(\alpha,\beta,\gamma,\delta)} and \code{pm} is the type of parametrization. The vector of parameters are the characteristic exponent, the skewness, the scale and the location parameters, respectively. The restrictions on the parameters are: \eqn{\alpha \in (0,2]}, \eqn{\beta\in [-1,1]} and \eqn{\gamma>0}. For mode details see Nolan(2009). } \references{ Nolan J. P. (2009), Stable Disttributions. \emph{Math/Stat Department, American University}. URL \url{http://academic2.american.edu/~jpnolan/stable/stable.html}. } \examples{ # GMM is like GLS for linear models without endogeneity problems pm <- 0 theta <- c(1.5,.5,1,0) tau <- seq(-3, 3, length.out = 20) char_fct <- charStable(theta, tau, pm) } gmm/man/formula.Rd0000644000176200001440000000206211305632271013541 0ustar liggesusers\name{formula} \alias{formula.gel} \alias{formula.gmm} \title{Formula method for gel and gmm objects} \description{ Method to extract the formula from \code{gel} or \code{gmm} objects. } \usage{ \method{formula}{gel}(x, ...) \method{formula}{gmm}(x, ...) } \arguments{ \item{x}{An object of class \code{gel} or \code{gmm} returned by the function \code{\link{gel}} or \code{\link{gmm}}} \item{...}{Other arguments to pass to other methods} } \examples{ ## GEL ## n = 200 phi<-c(.2,.7) thet <- 0.2 sd <- .2 set.seed(123) x <- matrix(arima.sim(n = n, list(order = c(2,0,1), ar = phi, ma = thet, sd = sd)), ncol = 1) y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] H <- cbind(x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) g <- y ~ ym1 + ym2 x <- H res <- gel(g, x, c(0,.3,.6)) formula(res) # GMM is like GLS for linear models without endogeneity problems set.seed(345) n = 200 phi<-c(.2,.7) thet <- 0 sd <- .2 x <- matrix(arima.sim(n = n, list(order = c(2,0,1), ar = phi, ma = thet, sd = sd)), ncol = 1) y <- 10 + 5*rnorm(n) + x res <- gmm(y ~ x, x) formula(res) } gmm/man/vcov.Rd0000644000176200001440000000312313107655275013063 0ustar liggesusers\name{vcov} \alias{vcov.gmm} \alias{vcov.gel} \alias{vcov.tsls} \alias{vcov.ategel} \title{Variance-covariance matrix of GMM or GEL} \description{ It extracts the matrix of variances and covariances from \code{gmm} or \code{gel} objects. } \usage{ \method{vcov}{gmm}(object, ...) \method{vcov}{gel}(object, lambda = FALSE, ...) \method{vcov}{tsls}(object, type=c("Classical","HC0","HC1","HAC"), hacProp = list(), ...) \method{vcov}{ategel}(object, lambda = FALSE, robToMiss = TRUE, ...) } \arguments{ \item{object}{An object of class \code{gmm} or \code{gmm} returned by the function \code{\link{gmm}} or \code{\link{gel}}} \item{lambda}{If set to TRUE, the covariance matrix of the Lagrange multipliers is produced.} \item{type}{Type of covariance matrix for the meat} \item{hacProp}{A list of arguments to pass to \code{\link{kernHAC}}} \item{robToMiss}{If \code{TRUE}, it computes the robust to misspecification covariance matrix} \item{...}{Other arguments when \code{vcov} is applied to another class object} } \details{ For tsls(), if vcov is set to a different value thand "Classical", a sandwich covariance matrix is computed. } \value{ A matrix of variances and covariances } \examples{ # GMM # n = 500 phi<-c(.2,.7) thet <- 0 sd <- .2 x <- matrix(arima.sim(n = n,list(order = c(2,0,1), ar = phi, ma = thet, sd = sd)), ncol = 1) y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] H <- cbind(x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) g <- y ~ ym1 + ym2 x <- H res <- gmm(g, x) vcov(res) ## GEL ## t0 <- c(0,.5,.5) res <- gel(g, x, t0) vcov(res) vcov(res, lambda = TRUE) } gmm/man/tsls.Rd0000644000176200001440000000475411665451374013107 0ustar liggesusers\name{tsls} \alias{tsls} \title{Two stage least squares estimation} \description{ Function to estimate a linear model by the two stage least squares method. } \usage{ tsls(g,x,data) } \arguments{ \item{g}{A formula describing the linear regression model (see details below).} \item{x}{The matrix of instruments (see details below).} \item{data}{A data.frame or a matrix with column names (Optionnal). } } \details{ The function just calls \code{\link{gmm}} with the option vcov="iid". It just simplifies the the implementation of 2SLS. The users don't have to worry about all the options offered in \code{\link{gmm}}. The model is \deqn{ Y_i = X_i\beta + u_i } In the first step, \code{\link{lm}} is used to regress \eqn{X_i} on the set of instruments \eqn{Z_i}. The second step also uses \code{\link{lm}} to regress \eqn{Y_i} on the fitted values of the first step. } \value{ 'tsls' returns an object of 'class' '"tsls"' which inherits from class '"gmm"'. The functions 'summary' is used to obtain and print a summary of the results. It also compute the J-test of overidentying restriction The object of class "gmm" is a list containing at least: \item{coefficients}{\eqn{k\times 1} vector of coefficients} \item{residuals}{the residuals, that is response minus fitted values if "g" is a formula.} \item{fitted.values}{the fitted mean values if "g" is a formula.} \item{vcov}{the covariance matrix of the coefficients} \item{objective}{the value of the objective function \eqn{\| var(\bar{g})^{-1/2}\bar{g}\|^2}} \item{terms}{the \code{\link{terms}} object used when g is a formula.} \item{call}{the matched call.} \item{y}{if requested, the response used (if "g" is a formula).} \item{x}{if requested, the model matrix used if "g" is a formula or the data if "g" is a function.} \item{model}{if requested (the default), the model frame used if "g" is a formula.} \item{algoInfo}{Information produced by either \code{\link{optim}} or \code{\link{nlminb}} related to the convergence if "g" is a function. It is printed by the \code{summary.gmm} method.} } \references{ Hansen, L.P. (1982), Large Sample Properties of Generalized Method of Moments Estimators. \emph{Econometrica}, \bold{50}, 1029-1054, } \examples{ n <- 1000 e <- arima.sim(n,model=list(ma=.9)) C <- runif(n,0,5) Y <- rep(0,n) Y[1] = 1 + 2*C[1] + e[1] for (i in 2:n){ Y[i] = 1 + 2*C[i] + 0.9*Y[i-1] + e[i] } Yt <- Y[5:n] X <- cbind(C[5:n],Y[4:(n-1)]) Z <- cbind(C[5:n],Y[3:(n-2)],Y[2:(n-3)],Y[1:(n-4)]) res <- tsls(Yt~X,~Z) res } gmm/man/Finance.Rd0000644000176200001440000000275313107655275013461 0ustar liggesusers\name{Finance} \docType{data} \alias{Finance} \title{Returns on selected stocks} \description{ Daily returns on selected stocks, the Market portfolio and factors of Fama and French from 1993-01-05 to 2009-01-30 for CAPM and APT analysis } \usage{data(Finance)} \format{ A data frame containing 24 time series. Dates are reported as rownames(). In the following description, company symboles are used. \describe{ \item{WMK}{Returns of WEIS MARKETS INC} \item{UIS}{Returns of UNISYS CP NEW} \item{ORB}{Returns of ORBITAL SCIENCES CP} \item{MAT}{Returns of Mattel, Inc.} \item{ABAX}{Returns of ABAXIS, Inc.} \item{T}{Returns of AT&T INC.} \item{EMR}{Returns of EMERSON ELEC CO} \item{JCS}{Returns of Communications Systems Inc.} \item{VOXX}{Returns of Audiovox Corp.} \item{ZOOM}{Returns of ZOOM Technologies Inc.} \item{TDW}{Returns of TIDEWATER INC} \item{ROG}{Returns of Rogers Corporation} \item{GGG}{Returns of Graco Inc.} \item{PC}{Returns of Panasonic Corporation} \item{GCO}{Returns of Genesco Inc.} \item{EBF}{Returns of ENNIS, INC} \item{F}{Returns of FORD MOTOR CO} \item{FNM}{Returns of FANNIE MAE} \item{NHP}{Returns of NATIONWIDE HLTH PROP} \item{AA}{Returns of ALCOA INC} \item{rf}{Risk-free rate of Fama-French} \item{rm}{Return of the market portfolio of Fama-French} \item{hml}{Factor High-Minus-Low of Fama-French} \item{smb}{Factor Small-Minus-Big of Fama-French} } } \source{Yahoo Finance and \url{http://mba.tuck.dartmouth.edu/pages/faculty/ken.french}} \keyword{datasets} gmm/man/growth.Rd0000644000176200001440000000162712634331531013415 0ustar liggesusers\name{Growth} \docType{data} \alias{Growth} \title{Growth Data} \description{ Panel of Macroeconomic data for 125 countries from 1960 to 1985 constructed by Summers and Heston (1991)) } \usage{data(Growth)} \format{ A data frame containing 9 vectors. \describe{ \item{Country_ID}{Country identification number} \item{COM}{1 if the country is in a communist regime, 0 otherwise} \item{OPEC}{1 if the country is part of the OPEC, 0 otherwise} \item{Year}{Year} \item{GDP}{Per capita GDP (in thousands) in 1985 U.S. dollars.} \item{LagGDP}{GDP of the previous period} \item{SavRate}{Saving rate measured as the ratio of real investment to real GDP} \item{LagSavRate}{SavRate of the previous period} \item{Country}{Country names} \item{Pop}{Population in thousands} \item{LagPop}{Population of the previous period} } } \source{\url{http://fhayashi.fc2web.com/datasets.htm}} \keyword{datasets} gmm/man/momentEstim.Rd0000644000176200001440000000412512620733247014405 0ustar liggesusers\name{momentEstim} \alias{momentEstim.baseGmm.twoStep} \alias{momentEstim.baseGmm.twoStep.formula} \alias{momentEstim.sysGmm.twoStep.formula} \alias{momentEstim.tsls.twoStep.formula} \alias{momentEstim.baseGmm.iterative.formula} \alias{momentEstim.baseGmm.iterative} \alias{momentEstim.baseGmm.cue.formula} \alias{momentEstim.baseGmm.cue} \alias{momentEstim.baseGmm.eval} \alias{momentEstim.baseGel.mod} \alias{momentEstim.baseGel.modFormula} \alias{momentEstim.baseGel.eval} \title{Method for estimating models based on moment conditions} \description{ It estimates a model which is caracterized by the method \code{getModel} (see details). } \usage{ \method{momentEstim}{baseGmm.twoStep}(object, ...) \method{momentEstim}{baseGmm.twoStep.formula}(object, ...) \method{momentEstim}{sysGmm.twoStep.formula}(object, ...) \method{momentEstim}{tsls.twoStep.formula}(object, ...) \method{momentEstim}{baseGmm.iterative.formula}(object, ...) \method{momentEstim}{baseGmm.iterative}(object, ...) \method{momentEstim}{baseGmm.cue.formula}(object, ...) \method{momentEstim}{baseGmm.cue}(object, ...) \method{momentEstim}{baseGmm.eval}(object, ...) \method{momentEstim}{baseGel.mod}(object, ...) \method{momentEstim}{baseGel.modFormula}(object, ...) \method{momentEstim}{baseGel.eval}(object, ...) } \arguments{ \item{object}{An object created by the method \code{getModel}} \item{...}{Other arguments when \code{momentEstim} is applied to an other class object} } \value{ It returns an object of class determined by the argument "TypeGMM" of \code{\link{gmm}}. By default, it is of class \code{baseGmm.res}. It estimates the model and organize the results that will be finalized by the method \code{FinRes}. More methods can be created in order to use other GMM methods not yet included in the package. } \references{ Hansen, L.P. (1982), Large Sample Properties of Generalized Method of Moments Estimators. \emph{Econometrica}, \bold{50}, 1029-1054, Hansen, L.P. and Heaton, J. and Yaron, A.(1996), Finit-Sample Properties of Some Alternative GMM Estimators. \emph{Journal of Business and Economic Statistics}, \bold{14} 262-280. } gmm/man/smoothG.Rd0000644000176200001440000000672011332356440013522 0ustar liggesusers\name{smoothG} \alias{smoothG} \title{Kernel smoothing of a matrix of time series} \description{ It applies the required kernel smoothing to the moment function in order for the GEL estimator to be valid. It is used by the \code{gel} function.} \usage{ smoothG(x, bw = bwAndrews, prewhite = 1, ar.method = "ols", weights = weightsAndrews, kernel = c("Bartlett", "Parzen", "Truncated", "Tukey-Hanning"), approx = c("AR(1)", "ARMA(1,1)"), tol = 1e-7) } \arguments{ \item{x}{a \eqn{n\times q} matrix of time series, where n is the sample size.} \item{bw}{The method to compute the bandwidth parameter. By default, it uses the bandwidth proposed by Andrews(1991). As an alternative, we can choose bw=bwNeweyWest (without "") which is proposed by Newey-West(1996).} \item{prewhite}{logical or integer. Should the estimating functions be prewhitened? If \code{TRUE} or greater than 0 a VAR model of order \code{as.integer(prewhite)} is fitted via \code{ar} with method \code{"ols"} and \code{demean = FALSE}.} \item{ar.method}{character. The \code{method} argument passed to \code{\link{ar}} for prewhitening.} \item{weights}{The smoothing weights can be computed by \code{\link{weightsAndrews}} of it can be provided manually. If provided, it has to be a \eqn{r\times 1}vector (see details). } \item{approx}{a character specifying the approximation method if the bandwidth has to be chosen by \code{bwAndrews}.} \item{tol}{numeric. Weights that exceed \code{tol} are used for computing the covariance matrix, all other weights are treated as 0.} \item{kernel}{The choice of kernel} } \details{ The sample moment conditions \eqn{\sum_{t=1}^n g(\theta,x_t)} is replaced by: \eqn{\sum_{t=1}^n g^k(\theta,x_t)}, where \eqn{g^k(\theta,x_t)=\sum_{i=-r}^r k(i) g(\theta,x_{t+i})}, where \eqn{r} is a truncated parameter that depends on the bandwidth and \eqn{k(i)} are normalized weights so that they sum to 1. If the vector of weights is provided, it gives only one side weights. For exemple, if you provide the vector (1,.5,.25), \eqn{k(i)} will become \eqn{(.25,.5,1,.5,.25)/(.25+.5+1+.5+.25) = (.1,.2,.4,.2,.1)} } \value{ smoothx: A \eqn{q \times q} matrix containing an estimator of the asymptotic variance of \eqn{\sqrt{n} \bar{x}}, where \eqn{\bar{x}} is \eqn{q\times 1}vector with typical element \eqn{\bar{x}_i = \frac{1}{n}\sum_{j=1}^nx_{ji}}. This function is called by \code{\link{gel}} but can also be used by itself. \code{kern_weights}: Vector of weights used for the smoothing. } \references{ Anatolyev, S. (2005), GMM, GEL, Serial Correlation, and Asymptotic Bias. \emph{Econometrica}, \bold{73}, 983-1002. Andrews DWK (1991), Heteroskedasticity and Autocorrelation Consistent Covariance Matrix Estimation. \emph{Econometrica}, \bold{59}, 817--858. Kitamura, Yuichi (1997), Empirical Likelihood Methods With Weakly Dependent Processes. \emph{The Annals of Statistics}, \bold{25}, 2084-2102. Zeileis A (2006), Object-oriented Computation of Sandwich Estimators. \emph{Journal of Statistical Software}, \bold{16}(9), 1--16. URL \url{http://www.jstatsoft.org/v16/i09/}. } \examples{ g <- function(tet, x) { n <- nrow(x) u <- (x[7:n] - tet[1] - tet[2]*x[6:(n-1)] - tet[3]*x[5:(n-2)]) f <- cbind(u, u*x[4:(n-3)], u*x[3:(n-4)], u*x[2:(n-5)], u*x[1:(n-6)]) return(f) } n = 500 phi<-c(.2, .7) thet <- 0.2 sd <- .2 x <- matrix(arima.sim(n = n, list(order = c(2, 0, 1), ar = phi, ma = thet, sd = sd)), ncol = 1) gt <- g(c(0, phi), x) sgt <- smoothG(gt)$smoothx plot(gt[,1]) lines(sgt[,1]) } gmm/man/getDat.Rd0000644000176200001440000000275612623157321013320 0ustar liggesusers\name{getDat} \alias{getDat} \title{Extracting data from a formula} \description{ It extract the data from a formula y~z with instrument h and put everything in a matrix. It helps redefine the function \eqn{g(\theta,x)} that is required by \code{\link{gmm}} and \code{\link{gel}}. } \usage{ getDat(formula, h, data, error=TRUE) } \arguments{ \item{formula}{A formula that defines the linear model to be estimated (see details).} \item{h}{A \eqn{n\times nh} matrix of intruments(see details).} \item{data}{A data.frame or a matrix with colnames (Optionnal).} \item{error}{If FALSE, the data is generated without giving any error message} } \details{The model to be estimated is based on the moment conditions \eqn{=0}. It adds a column of ones to z and h by default. They are removed if -1 is added to the formula. The error argument has been added for \code{\link{sysGmm}} with common coefficients because the check is only valid for equation by equation identification. } \value{ x: A \eqn{n \times l} matrix, where \eqn{l = ncol(y)+ncol(z)+ncol(h)+2} if "intercept" is TRUE and \eqn{ncol(y)+ncol(z)+xcol(h)} if "intercept" is FALSE. nh: dimension of h k: dimension of z ny: dimension of y } \examples{ n = 500 phi<-c(.2, .7) thet <- 0.2 sd <- .2 x <- matrix(arima.sim(n = n, list(order = c(2, 0, 1), ar = phi, ma = thet, sd = sd)), ncol = 1) y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] H <- cbind(x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) x <- getDat(y ~ ym1 + ym2, H) } gmm/man/bread.Rd0000644000176200001440000000343512251675647013175 0ustar liggesusers\name{bread} \alias{bread.gmm} \alias{bread.gel} \alias{bread.tsls} \title{Bread for sandwiches} \description{ Computes the bread of the sandwich covariance matrix } \usage{ \method{bread}{gmm}(x, ...) \method{bread}{gel}(x, ...) \method{bread}{tsls}(x, ...) } \arguments{ \item{x}{A fitted model of class \code{gmm} or \code{gel}.} \item{...}{Other arguments when \code{bread} is applied to another class object} } \details{ When the weighting matrix is not the optimal one, the covariance matrix of the estimated coefficients is: \eqn{(G'WG)^{-1} G'W V W G(G'WG)^{-1}}, where \eqn{G=d\bar{g}/d\theta}, \eqn{W} is the matrix of weights, and \eqn{V} is the covariance matrix of the moment function. Therefore, the bread is \eqn{(G'WG)^{-1}}, which is the second derivative of the objective function. The method if not yet available for \code{gel} objects. } \value{ A \eqn{k \times k} matrix (see details). } \references{ Zeileis A (2006), Object-oriented Computation of Sandwich Estimators. \emph{Journal of Statistical Software}, \bold{16}(9), 1--16. URL \url{http://www.jstatsoft.org/v16/i09/}. } \examples{ # See \code{\link{gmm}} for more details on this example. # With the identity matrix # bread is the inverse of (G'G) n <- 1000 x <- rnorm(n, mean = 4, sd = 2) g <- function(tet, x) { m1 <- (tet[1] - x) m2 <- (tet[2]^2 - (x - tet[1])^2) m3 <- x^3 - tet[1]*(tet[1]^2 + 3*tet[2]^2) f <- cbind(m1, m2, m3) return(f) } Dg <- function(tet, x) { jacobian <- matrix(c( 1, 2*(-tet[1]+mean(x)), -3*tet[1]^2-3*tet[2]^2,0, 2*tet[2], -6*tet[1]*tet[2]), nrow=3,ncol=2) return(jacobian) } res <- gmm(g, x, c(0, 0), grad = Dg,weightsMatrix=diag(3)) G <- Dg(res$coef, x) bread(res) solve(crossprod(G)) } gmm/man/coef.Rd0000644000176200001440000000200311305632271013003 0ustar liggesusers\name{coef} \alias{coef.gel} \alias{coef.gmm} \title{Coefficients of GEL or GMM} \description{ It extracts the coefficients from \code{gel} or \code{gmm} objects. } \usage{ \method{coef}{gmm}(object, ...) \method{coef}{gel}(object, lambda = FALSE, ...) } \arguments{ \item{object}{An object of class \code{gel} or \code{gmm} returned by the function \code{\link{gel}} or \code{\link{gmm}}} \item{lambda}{If set to TRUE, the lagrange multipliers are extracted instead of the vector of coefficients} \item{...}{Other arguments when \code{coef} is applied to an other class object} } \value{ Vector of coefficients } \examples{ ################# n = 500 phi<-c(.2,.7) thet <- 0 sd <- .2 x <- matrix(arima.sim(n=n,list(order=c(2,0,1),ar=phi,ma=thet,sd=sd)),ncol=1) y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] H <- cbind(x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) g <- y ~ ym1 + ym2 x <- H t0 <- c(0,.5,.5) res <- gel(g, x, t0) coef(res) coef(res, lambda = TRUE) ################### res <- gmm(g, x) coef(res) } gmm/man/confint.Rd0000644000176200001440000000724413107655275013556 0ustar liggesusers\name{confint} \alias{confint.gel} \alias{confint.ategel} \alias{confint.gmm} \alias{print.confint} \title{Confidence intervals for GMM or GEL} \description{ It produces confidence intervals for the coefficients from \code{gel} or \code{gmm} estimation. } \usage{ \method{confint}{gel}(object, parm, level = 0.95, lambda = FALSE, type = c("Wald", "invLR", "invLM", "invJ"), fact = 3, corr = NULL, ...) \method{confint}{gmm}(object, parm, level = 0.95, ...) \method{confint}{ategel}(object, parm, level = 0.95, lambda = FALSE, type = c("Wald", "invLR", "invLM", "invJ"), fact = 3, corr = NULL, robToMiss=TRUE, ...) \method{print}{confint}(x, digits = 5, ...) } \arguments{ \item{object}{An object of class \code{gel} or \code{gmm} returned by the function \code{\link{gel}} or \code{\link{gmm}}} \item{parm}{A specification of which parameters are to be given confidence intervals, either a vector of numbers or a vector of names. If missing, all parameters are considered.} \item{level}{The confidence level} \item{lambda}{If set to TRUE, the confidence intervals for the Lagrange multipliers are produced.} \item{type}{'Wald' is the usual symetric confidence interval. The thee others are based on the inversion of the LR, LM, and J tests.} \item{fact}{This parameter control the span of search for the inversion of the test. By default we search within plus or minus 3 times the standard error of the coefficient estimate.} \item{corr}{This numeric scalar is meant to apply a correction to the critical value, such as a Bartlett correction. This value depends on the model (See Owen; 2001)} \item{x}{An object of class \code{confint} produced by \code{confint.gel} and \code{confint.gmm}} \item{digits}{The number of digits to be printed} \item{robToMiss}{If \code{TRUE}, the confidence interval is based on the standard errors that are robust to misspecification} \item{...}{Other arguments when \code{confint} is applied to another classe object} } \value{ It returns a matrix with the first column being the lower bound and the second the upper bound.} \references{ Hansen, L.P. (1982), Large Sample Properties of Generalized Method of Moments Estimators. \emph{Econometrica}, \bold{50}, 1029-1054, Hansen, L.P. and Heaton, J. and Yaron, A.(1996), Finit-Sample Properties of Some Alternative GMM Estimators. \emph{Journal of Business and Economic Statistics}, \bold{14} 262-280. Owen, A.B. (2001), Empirical Likelihood. \emph{Monographs on Statistics and Applied Probability 92, Chapman and Hall/CRC} } \examples{ ################# n = 500 phi<-c(.2,.7) thet <- 0 sd <- .2 x <- matrix(arima.sim(n = n, list(order = c(2,0,1), ar = phi, ma = thet, sd = sd)), ncol = 1) y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] H <- cbind(x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) g <- y ~ ym1 + ym2 x <- H t0 <- c(0,.5,.5) resGel <- gel(g, x, t0) confint(resGel) confint(resGel, level = 0.90) confint(resGel, lambda = TRUE) ######################## resGmm <- gmm(g, x) confint(resGmm) confint(resGmm, level = 0.90) ## Confidence interval with inversion of the LR, LM or J test. ############################################################## set.seed(112233) x <- rt(40, 3) y <- x+rt(40,3) # Simple interval on the mean res <- gel(x~1, ~1, method="Brent", lower=-4, upper=4) confint(res, type = "invLR") confint(res) # Using a Bartlett correction k <- mean((x-mean(x))^4)/sd(x)^4 s <- mean((x-mean(x))^3)/sd(x)^3 a <- k/2-s^2/3 corr <- 1+a/40 confint(res, type = "invLR", corr=corr) # Interval on the slope res <- gel(y~x, ~x) confint(res, "x", type="invLR") confint(res, "x") } gmm/man/FinRes.Rd0000644000176200001440000000161711313546054013271 0ustar liggesusers\name{FinRes} \alias{FinRes.baseGmm.res} \title{Method to finalize the result of the momentEstim method} \description{ It computes the final results that will be needed to create the object of class \code{gmm}.). } \usage{ \method{FinRes}{baseGmm.res}(z, object, ...) } \arguments{ \item{z}{An object of class determined by the method \code{momentEstim}.} \item{object}{An object produced my \code{getModel}} \item{...}{Other argument to be passed to other \code{FinRes} methods.} } \value{ It returns an object of class \code{gmm}. See \code{\link{gmm}} for more details. } \references{ Hansen, L.P. (1982), Large Sample Properties of Generalized Method of Moments Estimators. \emph{Econometrica}, \bold{50}, 1029-1054, Hansen, L.P. and Heaton, J. and Yaron, A.(1996), Finit-Sample Properties of Some Alternative GMM Estimators. \emph{Journal of Business and Economic Statistics}, \bold{14} 262-280. } gmm/man/ATEgel.Rd0000644000176200001440000001515613464357722013222 0ustar liggesusers\name{ATEgel} \alias{ATEgel} \alias{checkConv} \title{ATE with Generalized Empirical Likelihood estimation} \description{ Function to estimate the average treatment effect with the sample being balanced by GEL. } \usage{ ATEgel(g, balm, w=NULL, y=NULL, treat=NULL, tet0=NULL,momType=c("bal","balSample","ATT"), popMom = NULL, family=c("linear","logit", "probit"), type = c("EL", "ET", "CUE", "ETEL", "HD", "ETHD", "RCUE"), tol_lam = 1e-9, tol_obj = 1e-9, tol_mom = 1e-9, maxiterlam = 100, optfct = c("optim", "nlminb"), optlam = c("nlminb", "optim", "iter", "Wu"), data=NULL, Lambdacontrol = list(), model = TRUE, X = FALSE, Y = FALSE, ...) checkConv(obj, tolConv=1e-4, verbose=TRUE, ...) } \arguments{ \item{g}{A formula as \code{y~z}, where code{y} is the response and \code{z} the treatment indicator. If there is more than one treatment, more indicators can be added or \code{z} can be set as a factor. It can also be of the form \code{g(theta, y, z)} for non-linear models. It is however, not implemented yet.} \item{obj}{Object of class \code{"ategel"} produced y \code{ATEgel}} \item{balm}{A formula for the moments to be balanced between the treated and control groups (see details)} \item{y}{The response variable when \code{g} is a function. Not implemented yet} \item{treat}{The treatment indicator when \code{g} is a function. Not implemented yet} \item{w}{A formula to add covariates to the main regression. When \code{NULL}, the default value, the main regression only include treatment indicators.} \item{tet0}{A \eqn{3 \times 1} vector of starting values. If not provided, they are obtained using an OLS regression} \item{momType}{How the moments of the covariates should be balanced. By default, it is simply balanced without restriction. Alternatively, moments can be set equal to the sample moments of the whole sample, or to the sample moments of the treated group. The later will produce the average treatment effect of the treated (ATT)} \item{popMom}{A vector of population moments to use for balancing. It can be used of those moments are available from a census, for example. When available, it greatly improves efficiency.} \item{family}{By default, the outcome is linearly related to the treatment indicators. If the outcome is binary, it is possible to use the estimating equations of either the logit or probit model.} \item{type}{"EL" for empirical likelihood, "ET" for exponential tilting, "CUE" for continuous updated estimator, "ETEL" for exponentially tilted empirical likelihood of Schennach(2007), "HD" for Hellinger Distance of Kitamura-Otsu-Evdokimov (2013), and "ETHD" for the exponentially tilted Hellinger distance of Antoine-Dovonon (2015). "RCUE" is a restricted version of "CUE" in which the probabilities are bounded below by zero. In that case, an analytical Kuhn-Tucker method is used to find the solution.} \item{tol_lam}{Tolerance for \eqn{\lambda} between two iterations. The algorithm stops when \eqn{\|\lambda_i -\lambda_{i-1}\|} reaches \code{tol_lamb} (see \code{\link{getLamb}}) } \item{maxiterlam}{The algorithm to compute \eqn{\lambda} stops if there is no convergence after "maxiterlam" iterations (see \code{\link{getLamb}}).} \item{tol_obj}{Tolerance for the gradiant of the objective function to compute \eqn{\lambda} (see \code{\link{getLamb}}).} \item{optfct}{Algorithm used for the parameter estimates} \item{tol_mom}{It is the tolerance for the moment condition \eqn{\sum_{t=1}^n p_t g(\theta(x_t)=0}, where \eqn{p_t=\frac{1}{n}D\rho()} is the implied probability. It adds a penalty if the solution diverges from its goal.} \item{optlam}{Algorithm used to solve for the lagrange multiplier in \code{\link{getLamb}}. The algorithm Wu is only for \code{type="EL"}. The value of \code{optlam} is ignored for "CUE" because in that case, the analytical solution exists.} \item{data}{A data.frame or a matrix with column names (Optional). } \item{Lambdacontrol}{Controls for the optimization of the vector of Lagrange multipliers used by either \code{\link{optim}}, \code{\link{nlminb}} or \code{\link{constrOptim}}} \item{model, X, Y}{logicals. If \code{TRUE} the corresponding components of the fit (the model frame, the model matrix, the response) are returned if g is a formula.} \item{verbose}{If TRUE, a summary of the convergence is printed} \item{tolConv}{The tolerance for comparing moments between groups} \item{...}{More options to give to \code{\link{optim}} or \code{\link{nlminb}}. In \code{checkConv}, they are options passed to \code{\link{getImpProb}}.} } \details{ We want to estimate the model \eqn{Y_t = \theta_1 + \theta_2 treat + \epsilon_t}, where \eqn{\theta_2} is the treatment effect. GEL is used to balance the sample based on the argument \code{x} above. For example, if we want the sample mean of \code{x1} and \code{x2} to be balanced between the treated and control, we set \code{x} to \code{~x1+x2}. If we want the sample mean of \code{x1}, \code{x2}, \code{x1*x2}, \code{x1^2} and \code{x2^2}, we set \code{x} to \code{~x1*x2 + I(x1^2) + I(x2^2)}. } \value{ 'gel' returns an object of 'class' '"ategel"' The functions 'summary' is used to obtain and print a summary of the results. The object of class "ategel" is a list containing the same elements contained in objects of class \code{\link{gel}}. } \references{ Lee, Seojeong (2016), Asymptotic refinements of misspecified-robust bootstrap for GEL estimators, \emph{Journal of Econometrics}, \bold{192}, 86--104. Schennach, Susanne, M. (2007), Point Estimation with Exponentially Tilted Empirical Likelihood. \emph{Econometrica}, \bold{35}, 634-672. Wu, C. (2005), Algorithms and R codes for the pseudo empirical likelihood method in survey sampling. \emph{Survey Methodology}, \bold{31}(2), page 239. Chausse, P. (2010), Computing Generalized Method of Moments and Generalized Empirical Likelihood with R. \emph{Journal of Statistical Software}, \bold{34}(11), 1--35. URL \url{http://www.jstatsoft.org/v34/i11/}. Chausse, P and Luta, G. (2017) Estimating the Average Treatment Effect in Quasi-Experimental Studies using the Generalized Empirical Likelihood, Work in progress. } \examples{ data(nsw) # Scale income nsw$re78 <- nsw$re78/1000 nsw$re75 <- nsw$re75/1000 res <- ATEgel(re78~treat, ~age+ed+black+hisp+married+nodeg+re75, data=nsw,type="ET") summary(res) chk <- checkConv(res) res2 <- ATEgel(re78~treat, ~age+ed+black+hisp+married+nodeg+re75, data=nsw,type="ET", momType="balSample") summary(res2) chk2 <- checkConv(res2) } gmm/man/getImpProb.Rd0000644000176200001440000000247513460072542014157 0ustar liggesusers\name{getImpProb} \alias{getImpProb} \alias{getImpProb.gel} \title{Implied Probabilities} \description{ It computes the implied probabilities from objects of class \code{gel} with additional options. } \usage{ \method{getImpProb}{gel}(object, posProb=TRUE, normalize=TRUE, checkConv=FALSE,...) } \arguments{ \item{object}{Object of class \code{gel}.} \item{posProb}{Should the implied probabilities be transformed into positive probabilities?} \item{normalize}{Should we normalize the probabilities so that they sum to one?} \item{checkConv}{Should we add the attribute convergence to check the sum of the probabilities and the weighted sum of the moment conditions?} \item{...}{Additional arguments to pass to other methods} } \value{ A vector af implied probabilities. } \references{ Newey, W.K. and Smith, R.J. (2004), Higher Order Properties of GMM and Generalized Empirical Likelihood Estimators. \emph{Econometrica}, \bold{72}, 219-255. } \examples{ ################# n = 500 phi<-c(.2,.7) thet <- 0 sd <- .2 x <- matrix(arima.sim(n=n,list(order=c(2,0,1),ar=phi,ma=thet,sd=sd)),ncol=1) y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] H <- cbind(x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) g <- y ~ ym1 + ym2 x <- H t0 <- c(0,.5,.5) res <- gel(g, x, t0) pt <- getImpProb(res) } gmm/man/plot.Rd0000644000176200001440000000477011305632271013062 0ustar liggesusers\name{plot} \alias{plot.gel} \alias{plot.gmm} \title{Plot Diagnostics for gel and gmm objects} \description{ It is a plot method for \code{gel} or \code{gmm} objects. } \usage{ \method{plot}{gel}(x, which = c(1L:4), main = list("Residuals vs Fitted values", "Normal Q-Q", "Response variable and fitted values","Implied probabilities"), panel = if(add.smooth) panel.smooth else points, ask = prod(par("mfcol")) < length(which) && dev.interactive(), ..., add.smooth = getOption("add.smooth")) \method{plot}{gmm}(x, which = c(1L:3), main = list("Residuals vs Fitted values", "Normal Q-Q", "Response variable and fitted values"), panel = if(add.smooth) panel.smooth else points, ask = prod(par("mfcol")) < length(which) && dev.interactive(), ..., add.smooth = getOption("add.smooth")) } \arguments{ \item{x}{\code{gel} or \code{gmm} object, typically result of \code{\link{gel}} or \code{\link{gmm}}.} \item{which}{if a subset of the plots is required, specify a subset of the numbers \code{1:4} for \code{gel} or \code{1:3} for \code{gmm}.} \item{main}{Vector of titles for each plot. } \item{panel}{panel function. The useful alternative to \code{\link{points}}, \code{\link{panel.smooth}} can be chosen by \code{add.smooth = TRUE}.} \item{ask}{logical; if \code{TRUE}, the user is \emph{ask}ed before each plot, see \code{\link{par}(ask=.)}.} \item{\dots}{other parameters to be passed through to plotting functions.} \item{add.smooth}{logical indicating if a smoother should be added to most plots; see also \code{panel} above.} } \details{ It is a beta version of a plot method for \code{gel} objects. It is a modified version of \code{plot.lm}. For now, it is available only for linear models expressed as a formula. Any suggestions are welcome regarding plots or options to include. The first two plots are the same as the ones provided by \code{plot.lm}, the third is the dependant variable \eqn{y} with its mean \eqn{\hat{y}} (the fitted values) and the last plots the implied probabilities with the empirical density \eqn{1/T}. } \examples{ # GEL # n = 500 phi<-c(.2,.7) thet <- 0 sd <- .2 x <- matrix(arima.sim(n = n,list(order = c(2,0,1), ar = phi, ma = thet, sd = sd)), ncol = 1) y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] H <- cbind(x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) g <- y ~ ym1 + ym2 x <- H t0 <- c(0,.5,.5) res <- gel(g, x, t0) plot(res, which = 3) plot(res, which = 4) # GMM # res <- gmm(g, x) plot(res, which = 3) } gmm/man/estfun.Rd0000644000176200001440000000521412126665732013414 0ustar liggesusers\name{estfun} \alias{estfun.gmmFct} \alias{estfun.gmm} \alias{estfun.gel} \alias{estfun.tsls} \alias{model.matrix.tsls} \title{Extracts the empirical moment function} \description{ It extracts the matrix of empirical moments so that it can be used by the \code{\link{kernHAC}} function. } \usage{ \method{estfun}{gmmFct}(x, y = NULL, theta = NULL, ...) \method{estfun}{gmm}(x, ...) \method{estfun}{gel}(x, ...) \method{estfun}{tsls}(x, ...) \method{model.matrix}{tsls}(object, ...) } \arguments{ \item{x}{A function of the form \eqn{g(\theta,y)} or a \eqn{n \times q} matrix with typical element \eqn{g_i(\theta,y_t)} for \eqn{i=1,...q} and \eqn{t=1,...,n} or an object of class \code{gmm}. See \code{\link{gmm}} for more details. For \code{\link{tsls}}, it is an object of class \code{tsls}.} \item{object}{An object of class \code{tsls}.} \item{y}{The matrix or vector of data from which the function \eqn{g(\theta,y)} is computed if \code{g} is a function.} \item{theta}{Vector of parameters if \code{g} is a function.} \item{...}{Other arguments when \code{estfun} is applied to another class object} } \details{ For \code{estfun.gmmFct}, it returns a \eqn{n \times q} matrix with typical element \eqn{g_i(\theta,y_t)} for \eqn{i=1,...q} and \eqn{t=1,...,n}. It is only used by \code{gmm} to obtain the estimates. For \code{estfun.gmm}, it returns the matrix of first order conditions of \eqn{\min_\theta \bar{g}'W\bar{g}/2}, which is a \eqn{n \times k} matrix with the \eqn{t^{th}} row being \eqn{g(\theta, y_t)W G}, where \eqn{G} is \eqn{d\bar{g}/d\theta}. It allows to compute the sandwich covariance matrix using \code{\link{kernHAC}} or \code{\link{vcovHAC}} when \eqn{W} is not the optimal matrix. The method if not yet available for \code{gel} objects. For tsls, model.matrix and estfun are used by \code{vcov()} to compute different covariance matrices using the \code{\link{sandwich}} package. See \code{\link{vcov.tsls}}. \code{model.matrix} returns the fitted values frin the first stage regression and \code{esfun} the residuals. } \value{ A \eqn{n \times q} matrix (see details). } \references{ Zeileis A (2006), Object-oriented Computation of Sandwich Estimators. \emph{Journal of Statistical Software}, \bold{16}(9), 1--16. URL \url{http://www.jstatsoft.org/v16/i09/}. } \examples{ n = 500 phi<-c(.2,.7) thet <- 0 sd <- .2 x <- matrix(arima.sim(n=n,list(order=c(2,0,1),ar=phi,ma=thet,sd=sd)),ncol=1) y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] H <- cbind(x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) g <- y ~ ym1 + ym2 x <- H res <- gmm(g, x,weightsMatrix = diag(5)) gt <- res$gt G <- res$G foc <- gt%*%G foc2 <- estfun(res) foc[1:5,] foc2[1:5,] } gmm/man/wage.Rd0000644000176200001440000000144212620733247013026 0ustar liggesusers\name{wage} \docType{data} \alias{wage} \title{Labor Data} \description{ Data used to measure return to education by Griliches (1976) } \usage{data(wage)} \format{ A data frame containing 20 cross-sectional vectors. \describe{ \item{AGE, AGE80}{Age in 1969 and 1980 respetively} \item{EXPR, EXPR80}{Working experience in 1969 and 1980 respetively} \item{IQ}{IQ measure of the individual} \item{KWW}{A test score} \item{LW, LW80}{Log wage in 1969 and 1980 respectively} \item{MED}{Mother education} \item{MRT, MRT80}{} \item{RNS, RNS80}{} \item{S, S80}{Schooling in 1969 and 1980 respetively} \item{SMSA, SMSA80}{} \item{TENURE, TENURE80}{Tenure in 1969 and 1980 respetively} \item{YEAR}{} } } \source{\url{http://fhayashi.fc2web.com/datasets.htm}} \keyword{datasets} gmm/man/nsw.Rd0000644000176200001440000000303613552350472012713 0ustar liggesusers\name{nsw} \docType{data} \alias{nsw} \title{Lalonde subsample of the National Supported Work Demonstration Data (NSW)} \description{ This data was collected to evaluate the National Supported Work (NSW) Demonstration project in Lalonde (1986). } \usage{data(nsw)} \format{ A data frame containing 9 variables. \describe{ \item{treat}{Treatment assignment} \item{age}{Age} \item{ed}{Years of Education} \item{black}{1 if Black, 0 otherwise} \item{hisp}{1 if Hispanic 0 otherwise} \item{married}{1 if married 0 otherwise} \item{nodeg}{1 if no college degree 0 otherwise} \item{re75}{1975 earnings} \item{re78}{1978 earnings} } } \details{ The dataset was obtained from the ATE package (see reference). } \source{ "NSW Data Files" from Rajeev Dehejia's website. URL: \url{http://users.nber.org/~rdehejia/data/.nswdata2.html} "National Supported Work Evaluation Study, 1975-1979: Public Use Files." from the Interuniversity Consortium for Political and Social Research. URL: \url{http://www.icpsr.umich.edu/icpsrweb/ICPSR/studies/7865} } \references{ Lalonde, R. (1986). "Evaluating the Econometric Evaluations of Training Programs," American Economic Review, 76(4), 604-620. Dehejia R. and Wahba S. (1999). "Causal Effects in Non-Experimental Studies: Re-Evaluating the Evaluation of Training Programs," JASA 94 (448), 1053-1062. Asad Haris and Gary Chan (2015). ATE: Inference for Average Treatment Effects using Covariate Balancing. R package version 0.2.0. \url{https://CRAN.R-project.org/package=ATE} } \keyword{datasets} gmm/man/print.Rd0000644000176200001440000000206312620733247013237 0ustar liggesusers\name{print} \alias{print.gmm} \alias{print.sysGmm} \alias{print.gel} \title{Printing a gmm or gel object} \description{ It is a printing method for \code{gmm} or \code{gel} objects. } \usage{ \method{print}{gmm}(x, digits = 5, ...) \method{print}{gel}(x, digits = 5, ...) \method{print}{sysGmm}(x, digits = 5, ...) } \arguments{ \item{x}{An object of class \code{gmm} or \code{gel} returned by the function \code{\link{gmm}} or \code{\link{gel}}} \item{digits}{The number of digits to be printed} \item{...}{Other arguments when print is applied to an other class object} } \value{ It prints some results from the estimation like the coefficients and the value of the objective function. } \examples{ # GMM # n = 500 phi<-c(.2,.7) thet <- 0 sd <- .2 x <- matrix(arima.sim(n = n, list(order = c(2,0,1), ar = phi, ma = thet, sd = sd)), ncol = 1) y <- x[7:n] ym1 <- x[6:(n-1)] ym2 <- x[5:(n-2)] H <- cbind(x[4:(n-3)], x[3:(n-4)], x[2:(n-5)], x[1:(n-6)]) g <- y ~ ym1 + ym2 x <- H res <- gmm(g, x) print(res) # GEL # t0 <- c(0,.5,.5) res <- gel(g,x,t0) print(res) } gmm/man/bwWilhelm.Rd0000644000176200001440000000563112721113410014023 0ustar liggesusers\name{bwWilhelm} \alias{bwWilhelm} \title{Wilhelm (2015) bandwidth selection} \description{ It computes the optimal bandwidth for the HAC estimation of the covariance matrix of the moment conditions. The bandwidth was shown by Wilhelm (2005) to be the one that minimizes the MSE of the GMM estimator. } \usage{ bwWilhelm(x, order.by = NULL, kernel = c("Quadratic Spectral", "Bartlett", "Parzen", "Tukey-Hanning"), approx = c("AR(1)", "ARMA(1,1)"), weights = NULL, prewhite = 1, ar.method = "ols", data = list()) } \arguments{ \item{x}{An object of class \code{gmm}.} \item{order.by}{Either a vector 'z' or a formula with a single explanatory variable like '~ z'. The observations in the model are ordered by the size of 'z'. If set to 'NULL' (the default) the observations are assumed to be ordered (e.g., a time series).} \item{kernel}{type of kernel used to compute the covariance matrix of the vector of sample moment conditions (see \code{\link{kernHAC}} for more details)} \item{approx}{A character specifying the approximation method if the bandwidth has to be chosen by \code{bwAndrews}.} \item{weights}{numeric. A vector of weights used for weighting the estimated coefficients of the approximation model (as specified by 'approx'). By default all weights are 1 except that for the intercept term (if there is more than one variable)} \item{prewhite}{logical or integer. Should the estimating functions be prewhitened? If \code{TRUE} or greater than 0 a VAR model of order \code{as.integer(prewhite)} is fitted via \code{ar} with method \code{"ols"} and \code{demean = FALSE}.} \item{ar.method}{character. The \code{method} argument passed to \code{\link{ar}} for prewhitening.} \item{data}{an optional data frame containing the variables in the 'order.by' model.} } \value{ The function 'bwWilhelm' returns the optimal bandwidth. } \references{ Wilhelm, D. (2015), Optimal Bandwidth Selection for Robust Generalized Method of Moments Estimation. \emph{Econometric Theory}, \bold{31}, 1054--1077 Zeileis A (2006), Object-oriented Computation of Sandwich Estimators. \emph{Journal of Statistical Software}, \bold{16}(9), 1--16. URL \url{http://www.jstatsoft.org/v16/i09/}. } \note{ The function was written by Daniel Wilhelm and is based on \link{bwAndrews}. } \examples{ data(Finance) f1 <- Finance[1:300, "rm"] f2 <- Finance[1:300, "hml"] f3 <- Finance[1:300, "smb"] y <- Finance[1:300,"WMK"] ## Silly example just to make it over-identified ############################################### res <- gmm(y ~ f1, ~ f1 + f2 + f3) summary(res) ## Set the bandwidth using the second step estimate ################################################ bw <- bwWilhelm(res) res2 <- update(res, bw=bw) summary(res2) ## Set the bandwidth using the first-step estimate as for bwAndrews ################################################################### res3 <- gmm(y ~ f1, ~ f1 + f2 + f3, bw=bwWilhelm) summary(res3) } gmm/DESCRIPTION0000644000176200001440000000236413571772045012560 0ustar liggesusersPackage: gmm Version: 1.6-4 Date: 2019-12-04 Title: Generalized Method of Moments and Generalized Empirical Likelihood Author: Pierre Chausse Maintainer: Pierre Chausse Description: It is a complete suite to estimate models based on moment conditions. It includes the two step Generalized method of moments (Hansen 1982; ), the iterated GMM and continuous updated estimator (Hansen, Eaton and Yaron 1996; ) and several methods that belong to the Generalized Empirical Likelihood family of estimators (Smith 1997; , Kitamura 1997; , Newey and Smith 2004; , and Anatolyev 2005 ). Depends: R (>= 2.10.0), sandwich NeedsCompilation: yes Suggests: mvtnorm, car, stabledist, MASS, timeDate, timeSeries Imports: stats, methods, grDevices, graphics License: GPL (>= 2) Repository: CRAN Repository/R-Forge/Project: gmm Repository/R-Forge/Revision: 159 Repository/R-Forge/DateTimeStamp: 2019-12-04 16:32:33 Date/Publication: 2019-12-04 18:00:05 UTC Packaged: 2019-12-04 16:50:34 UTC; rforge gmm/build/0000755000176200001440000000000013571761732012145 5ustar liggesusersgmm/build/vignette.rds0000644000176200001440000000057113571761732014507 0ustar liggesusers}RMO0 } 8+Vܦx[D>4nIAv޳c?eAD0#4 n}\:A7l#vZN*Zh|e[6*'0r'SnxByo VkFb ,e3R^Cu =Nؑ3p9w8U܄gv7qfԂ, a #include #include "gmm.h" static const R_FortranMethodDef fortranMethods[] = { {"wu", (DL_FUNC) &F77_SUB(wu), 9}, {"lamcuep", (DL_FUNC) &F77_SUB(lamcuep), 9}, {NULL, NULL, 0} }; void R_init_gmm(DllInfo *dll) { R_registerRoutines(dll, NULL, NULL, fortranMethods, NULL); R_useDynamicSymbols(dll, FALSE); } gmm/src/Makevars0000644000176200001440000000006513464357722013333 0ustar liggesusersPKG_LIBS=$(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) -lgomp gmm/src/gmm.h0000644000176200001440000000052213467070535012563 0ustar liggesusers#ifndef R_GMM_H #define R_GMM_H #include void F77_SUB(wu)(double *gt, double *tol, int *maxit, int *n, int *q, int *k, int *conv, double *obj, double *lam); void F77_SUB(lamcuep)(double *gt, int *n, int *q, int *k, int *maxit, int *conv, double *lam, double *pt, double *obj); #endif gmm/src/lambda_met.f0000644000176200001440000000745113467070535014076 0ustar liggesusers subroutine prep(gt, lam, n, q, d2) integer n, q, i, info, ip(q) double precision gt(n,q), lam(q), d2(q), dd(q,q) double precision tmp(n), tmp2(n), tmp3(n,q) call dgemv('n', n, q, 1.0d0, gt, n, lam, 1, 0.0d0, tmp, 1) tmp = 1/(1+tmp) call dgemv('t', n, q, 1.0d0, gt, n, tmp, 1, 0.0d0, d2, 1) tmp2 = tmp**2 do i=1,q tmp3(:,i) = -gt(:,i)*tmp2 end do call dgemm('t','n',q,q,n,1.0d0, gt, n, tmp3, n, 0.0d0, dd, q) call dgesv(q, 1, dd, q, ip, d2, q, info) end subroutine wu(gt, tol, maxit, n, q, k, conv, obj, lam) integer n, q, i, conv, maxit double precision obj, lam(q), tol, gt(n,q), k double precision dif, d2(q), r, tmp(n), tmp2(q) lam = 0.0d0 i = 1 dif = 1.0d0 do while (dif>tol .and. i <= maxit) call prep(gt, lam, n, q, d2) dif = maxval(abs(d2)) r = 1.0d0 do while (r>0) r = 0.0d0 tmp2 = lam-d2 call dgemv('n', n, q, 1.0d0, gt, n, tmp2, 1, 0.0d0, * tmp, 1) if (minval(tmp)<=-1) then r = r+1 end if if (r>0) then d2 = d2/2 end if end do lam = tmp2 i = i+1 end do if (i>=maxit) then lam = 0.0d0 conv = 1 else lam = -lam conv = 0 end if obj = sum(log(1+tmp*k))/n end subroutine ols(x, y, n, m, lwork, nrhs, info, coef) integer n, m, lwork, nrhs, info double precision x(n,m), y(n,nrhs), work(lwork) double precision coef(m,nrhs) double precision xtmp(n,m), ytmp(n,nrhs) xtmp = x ytmp = y call dgels('n', n, m, nrhs, xtmp, n, ytmp, n, work, -1, info) lwork = min(m*n, int(work(1))) if (info == 0) then call dgels('n',n,m,nrhs,xtmp,n,ytmp,n,work,lwork,info) coef = ytmp(1:m,:) end if end subroutine lamcue(gt, n, q, k, lam, pt, obj) integer n, q, lwork, info double precision gt(n,q), lam(q), one(n), pt(n), obj, k lwork = q*3 one = -1.0d0 call ols(gt, one, n, q, lwork, 1, info, lam) call dgemv('n', n, q, 1.0d0, gt, n, lam, 1, 0.0d0, * pt, 1) pt = pt*k obj = sum(-pt-(pt**2)/2)/n pt = 1+pt where (pt < 0) pt = 0.0d0 end where pt = pt/sum(pt) end subroutine getpt(gt,n,q,k,lam,pt) integer n, q double precision gt(n,q), lam(q), k, pt(n) call dgemv('n', n, q, 1.0d0, gt, n, lam, 1, 0.0d0, * pt, 1) pt = 1.0d0 + pt*k where (pt < 0) pt = 0.0d0 end where pt = pt/sum(pt) end subroutine lamcuep(gt, n, q, k, maxit, conv, lam, pt, obj) integer n, q, i, maxit, n0, n1, conv, ind(n), wi(n) double precision gt(n,q), lam(q), pt(n), obj, pt0(n), k double precision pt2(n) logical w(n) call lamcue(gt, n, q, k, lam, pt, obj) ind = (/ (i, i=1,n) /) i = 1 conv = 0 do w = pt > 0 n1 = count(w) n0 = n-n1 if (n1 < (q+1)) then pt = 1.0d0/n conv = 2 obj = 0.0d0 lam = 0.0d0 exit end if if (i > maxit) then pt = 1.0d0/n conv = 1 obj = 0.0d0 lam = 0.0d0 exit end if wi(1:n1) = pack(ind, w) call lamcue(gt(wi(1:n1),:), n1, q, k, lam, * pt0(1:n1), obj) call getpt(gt,n,q,k,lam,pt2) if (all(pt==pt2)) then exit end if pt = pt2 i = i+1 end do if (conv == 0) then obj = obj*n1/n + dble(n0)/(2*n) end if end gmm/vignettes/0000755000176200001440000000000013571761732013056 5ustar liggesusersgmm/vignettes/empir.bib0000644000176200001440000004747312251675647014672 0ustar liggesusers @article{jagannathan-skoulakis02, AUTHOR={Jagannathan, R. and Skoulakis, G.}, TITLE={Generalized Method of Moments: Applications in Finance}, JOURNAL={Journal of Business and Economic Statistics}, VOLUME={20}, PAGES={470-481}, YEAR={2002}, Number={4} } @article{garcia-renault-veredas06, AUTHOR={Garcia, R. and Renault, E. and Veredas, D.}, TITLE={Estimation of Stable Distribution by Indirect Inference}, JOURNAL={Working Paper: UCL and CORE}, VOLUME={}, PAGES={}, YEAR={2006}, Number={} } @book{nolan09, author = {J. P. Nolan}, title = {Stable Distributions - Models for Heavy Tailed Data}, year = {2010}, publisher = {Birkh\"auser}, address = {}, note = {In progress, Chapter 1 online at academic2.american.edu/$\sim$jpnolan} } @Manual{timeDate, title = {timeDate: Rmetrics - Chronological and Calendarical Objects}, author = {Diethelm Wuertz and Yohan Chalabi with contributions from Martin Maechler and Joe W. Byers and others}, year = {2009}, note = {R package version 2100.86}, url = {http://CRAN.R-project.org/package=timeDate}, } @Manual{timeSeries, title = {timeSeries: Rmetrics - Financial Time Series Objects}, author = {Diethelm Wuertz and Yohan Chalabi}, year = {2009}, note = {R package version 2100.84}, url = {http://CRAN.R-project.org/package=timeSeries}, } @Book{MASS, title = {Modern Applied Statistics with S}, author = {W. N. Venables and B. D. Ripley}, publisher = {Springer}, edition = {Fourth}, address = {New York}, year = {2002}, note = {ISBN 0-387-95457-0}, url = {http://www.stats.ox.ac.uk/pub/MASS4} } @book{hall05, author = {A. R. Hall}, title = {Generalized Method of Moments (Advanced Texts in Econometrics)}, year = {2005}, publisher = {Oxford University Press}, address = {}, } @Book{wooldridge02, author = {Wooldridge, J. M.}, title = {Econometric Analysis of Cross Section and Panel Data}, publisher = {Cambridge, MA: MIT Press}, year = {2002}, } @Book{cochrane01, author = {Cochrane, J. H.}, title = {Asset Pricing}, publisher = {Princeton University Press}, year = {2001}, } @article{chausse09, AUTHOR={Chauss\'e, P.}, TITLE={Computing Generalized Empirical Likelihood and Generalized Method of Moments with R}, JOURNAL={Working Paper, University of Waterloo}, VOLUME={}, PAGES={}, YEAR={2011}, Number={} } @article{smith01, AUTHOR={Smith, R. J.}, TITLE={GEL Criteria for Moment Condition Models}, JOURNAL={Working Paper, University of Bristol}, VOLUME={}, PAGES={}, YEAR={2001}, Number={} } @article{chausse08, AUTHOR={Chauss\'e, P.}, TITLE={Generalized Emprical Likelihood for a Continuum of Moment Conditons}, JOURNAL={Working Paper, University of Waterloo}, VOLUME={}, PAGES={}, YEAR={2011}, Number={} } @Book{campbell-lo-mackinlay96, author = {Campbell, J. Y. and Lo, A. W. and Mackinlay, A. C.}, title = {The Econometrics of Financial Markets}, publisher = {Princeton University Press}, year = {1996}, } @article{newey-west94, AUTHOR={Newey, W. K. and West, K. D.}, TITLE={Automatic Lag Selection in Covariance Matrix Estimation}, JOURNAL={Review of Economic Studies}, VOLUME={61}, PAGES={631-653}, YEAR={1994}, Number={} } @article{andrews-monahan92, AUTHOR={Andrews, W. K. and Monahan, J. C.}, TITLE={An Improved Heteroskedasticity and Autocorrelation Consistent Covariance Matrix Estimator}, JOURNAL={Econometrica}, VOLUME={60}, PAGES={953-966}, YEAR={1992}, Number={4} } @Book{white84, author = {White, H.}, title = {Asymptotic Theory for Econometricians}, publisher = {Academic Press}, year = {1984}, } @Book{gallant87, author = {Gallant, A. R.}, title = {Nonlinear Statistical Models}, publisher = {Wiley}, year = {1987}, } @article{zeileis06, AUTHOR={Zeileis, A.}, TITLE={Object-oriented Computation of Sandwich Estimator}, JOURNAL={Journal of Statistical Software}, VOLUME={16}, PAGES={1-16}, YEAR={2006}, Number={9}, url={http://www.jstatsoft.org/v16/i09/} } @article{chausse10, title = {Computing Generalized Method of Moments and Generalized Empirical Likelihood with R}, author = {Pierre Chauss{\'e}}, journal = {Journal of Statistical Software}, year = {2010}, volume = {34}, number = {11}, pages = {1-35}, url = {http://www.jstatsoft.org/v34/i11/} } @article{zeileis04, AUTHOR={Zeileis, A.}, TITLE={Econometric Computing with HC and HAC Covariance Matrix Estimators}, JOURNAL={Journal of Statistical Software}, VOLUME={11}, PAGES={1-17}, YEAR={2004}, Number={10}, url={http://www.jstatsoft.org/v11/i10/} } @Book{luenberger97, author = {Luenberger, D. G.}, title = {Optimization by Vector Space Methods}, publisher = {Wiley and Sons}, year = {1997}, } @article{smith04, AUTHOR={Smith, R. J.}, TITLE={GEL Criteria for Moment Condition Models}, JOURNAL={CeMMAP working papers, Institute for Fiscal Studies}, VOLUME={}, PAGES={}, YEAR={2004}, Number={} } @article{kitamura-tripathi-ahn04, AUTHOR={Kitamura, Y. and Tripathi, G. and Ahn, H.}, TITLE={Empirical Likelihood-Based Inference in Conditional Moment Restriction Models}, JOURNAL={Econometrica}, VOLUME={72}, PAGES={1667-1714}, YEAR={2004}, Number={} } @article{blaschke-neubauer-scherzer97, AUTHOR={Blaschke, B. and Neubauer, A. and Scherzer, O.}, TITLE={On the Convergence Rates for the Iteratively Regularized Gauss-Newton Method}, JOURNAL={IMA Journal of Numerical Analysis}, VOLUME={17}, PAGES={421-436}, YEAR={1997}, Number={} } @article{carrasco-florens-renault07, AUTHOR={Carrasco, M. and Florens, J. P. and Renault, E.}, TITLE={Linear Inverse Problems in Structural Econometrics Estimation Based on Spectral Decomposition and Regularization}, JOURNAL={Handbook of Econometrics}, VOLUME={6B}, PAGES={5633-5751}, YEAR={2007}, Number={} } @article{donald-imbens-newey03, AUTHOR={Donald, S. and Imbens, G. and Newey, W. K.}, TITLE={Empirical Likelihood Estimation and Consistent Tests with Conditional Moment Restrictions}, JOURNAL={Journal of Econometrics}, VOLUME={117}, PAGES={55-93}, YEAR={2003}, Number={} } @article{carrasco07, AUTHOR={Carrasco, M.}, TITLE={A Regularization Approach to the Many Instruments Problem}, JOURNAL={Forthcoming in the Journal of Econometrics}, VOLUME={}, PAGES={}, YEAR={2009}, Number={} } @article{parzen70, AUTHOR={Parzen, E.}, TITLE={Statistical inference on time series by RKHS methods}, JOURNAL={Canadian Mathematical Congress}, VOLUME={Edited by R. Pyke}, PAGES={1-37}, YEAR={1970}, Number={} } @article{qi-nian00, AUTHOR={Qi-Nian, J.}, TITLE={On the Iterative Regularized Gauss-Newton Method for Solving Nonlinear Ill-posed Problem}, JOURNAL={Mathematics of Computation}, VOLUME={69}, PAGES={1603-1623}, YEAR={2000}, Number={232} } @article{schennach07, AUTHOR={Schennach, S. M.}, TITLE={Point Estimation with Exponentially Tilted Empirical Likelihood}, JOURNAL={Econometrica}, VOLUME={35}, PAGES={634-672}, YEAR={2007}, Number={2} } @article{guggenberger08, AUTHOR={Guggenberger, P.}, TITLE={Finite Sample Evidence Suggesting a Heavy Tail Problem of the Generalized Empirical Likelihood Estimator}, JOURNAL={Econometric Reviews}, VOLUME={26}, PAGES={526-541}, YEAR={2008}, Number={} } @article{guggenberger-hahn05, AUTHOR={Guggenberger, P. and Hahn, J.}, TITLE={Finite Sample Properties of the Two-Step Empirical Likelihood Estimator}, JOURNAL={Econometric Reviews}, VOLUME={24}, PAGES={247-263}, YEAR={2005}, Number={3} } @article{groetsch93, AUTHOR={Groetsch, C.}, TITLE={Inverse Problems in Mathematical Sciences}, JOURNAL={Wiesbaden: Vieweg}, VOLUME={}, PAGES={}, YEAR={1993} } @article{carrasco-florents00, AUTHOR={Carrasco, M. and Florens, J. P.}, TITLE={Generalization of GMM to a Continuum of Moment Conditions}, JOURNAL={Econometric Theory}, VOLUME={16}, PAGES={655-673}, YEAR={2000} } @article{carrasco-florens00, AUTHOR={Carrasco, M. and Florens, J. P.}, TITLE={Generalization of GMM to a Continuum of Moment Conditions}, JOURNAL={Econometric Theory}, VOLUME={16}, PAGES={655-673}, YEAR={2000} } @article{carrasco-florens02, AUTHOR={Carrasco, M. and Florens, J. P.}, TITLE={Efficient GMM Estimation Using the Empirical Characteristic Function}, JOURNAL={Working Paper, Institut d'Économie Industrielle, Toulouse}, VOLUME={}, PAGES={}, YEAR={2002} } @article{anatolyev05, AUTHOR={Anatolyev, S.}, TITLE={GMM, GEL, Serial Correlation, and Asymptotic Bias}, JOURNAL={Econometrica}, VOLUME={73}, PAGES={983-1002}, YEAR={2005} } @article{hansen82, AUTHOR={Hansen, L. P.}, TITLE={Large Sample Properties of Generalized Method of Moments Estimators}, JOURNAL={Econometrica}, VOLUME={50}, PAGES={1029-1054}, YEAR={1982} } @article{hansen-heaton-yaron96, AUTHOR={Hansen, L. P. and Heaton, J. and Yaron, A.}, TITLE={Finit-Sample Properties of Some Alternative GMM Estimators}, JOURNAL={Journal of Business and Economic Statistics}, VOLUME={14}, PAGES={262-280}, YEAR={1996} } @article{pakes-pollard89, AUTHOR={Pakes, A. and Pollard, D.}, TITLE={Simulation and the Asymptotics of Optimization Estimators}, JOURNAL={Econometrica}, VOLUME={57}, PAGES={1027-1057}, YEAR={1989} } @article{imbens02, NUMBER={4}, AUTHOR={Imbens, G. W.}, TITLE={Generalized Method of Moments and Empirical Likelihood}, JOURNAL={Journal of Business and Economic Statistics}, VOLUME={20}, PAGES={493-506}, YEAR={2002} } @article{imbens97, AUTHOR={Imbens, G. W.}, TITLE={One-Step Estimators for Over-Identified Generalized Method of Moments Models}, JOURNAL={Review of Economics Studies}, VOLUME={64}, PAGES={359-383}, YEAR={1997} } @article{smith97, AUTHOR={Smith, R. J.}, TITLE={Alternative Semi-Parametric Likelihood Approaches to Generalized Method of Moments Estimation}, JOURNAL={The Economic Journal}, VOLUME={107}, PAGES={503-519}, YEAR={1997} } @article{newey-smith04, author = {Newey, W. K. and Smith, R. J.}, title = {Higher Order Properties of GMM and Generalized Empirical Likelihood Estimators}, JOURNAL={Econometrica}, VOLUME={72}, PAGES={219-255}, YEAR={2004} } @article{kitamura97, NUMBER={5}, AUTHOR={Kitamura, Y.}, TITLE={Empirical Likelihood Methods With Weakly Dependent Processes}, JOURNAL={The Annals of Statistics}, VOLUME={25}, PAGES={2084-2102}, YEAR={1997} } @article{kitamura-stutzer97, NUMBER={5}, AUTHOR={Kitamura, Y. and Stutzer, M.}, TITLE={An Information-Theoretic Alternative to Generalized Method of Moments Estimation}, JOURNAL={Econometrica}, VOLUME={65}, PAGES={861-874}, YEAR={1997} } @article{owen88, NUMBER={}, AUTHOR={Owen, A. B.}, TITLE={Empirical Likelihood Ratio Confidence Intervals for a Single Functional}, JOURNAL={Biometrika}, VOLUME={75}, PAGES={237-249}, YEAR={1988} } @article{singleton01, NUMBER={102}, AUTHOR={Singleton, K.}, TITLE={Estimation of Affine Pricing Models Using the Empirical Characteristic Function}, JOURNAL={Journal of Econometrics}, VOLUME={}, PAGES={111-141}, YEAR={2001} } @Book{owen01, author = {Owen, A. B.}, publisher = {Chapman and Hall}, title = {Empirical Likelihood}, year = {2001}, } @article{carrasco-chernov-florens-ghysels07, NUMBER={140}, AUTHOR = {Carrasco, M. and Chernov, M. and Florens, J. P. and Ghysels, E.}, TITLE = {Efficient of General Dynamic Models with Continuun of Moment Conditions}, JOURNAL = {Journal of Econometrics}, VOLUME={}, PAGES={529-573}, YEAR={2007} } @Unpublished{Bindelli05, author = {Bindelli, L.}, title = {Testing the New Keynesian Phillips Curve: a Frequency Domain Approach}, note = {Université de Lausanne. Dernière version: 2005}, OPTkey = {}, OPTmonth = {}, OPTyear = {}, YEAR={2005}, OPTannote = {} } @article{chamberlain87, NUMBER={}, AUTHOR={Chamberlain, G.}, TITLE={Asymptotic Efficiency in Estimation with Conditional Moment Restrictions}, JOURNAL={Journal of Econometrics}, VOLUME={34}, PAGES={304-334}, YEAR={1987} } @article{nelson90, NUMBER={}, AUTHOR={Nelson, D.}, TITLE={ARCH Models as Diffusion Approximations}, JOURNAL={Journal of Econometrics}, VOLUME={45}, PAGES={7-38}, YEAR={1990} } @article{hull-white87, NUMBER={}, AUTHOR={Hull, J. and White, A.}, TITLE={The Pricing of Options on Assets with Stochastic Volatilities}, JOURNAL={Journal of Finance}, VOLUME={42}, PAGES={281-300}, YEAR={1987} } @article{nowman97, NUMBER={}, AUTHOR={Nowman, K.}, TITLE={Gaussian estimation of single-factor continuous time models of the term structure of interest rate}, JOURNAL={Journal of Finance}, VOLUME={52}, PAGES={1695-1703}, YEAR={1997} } @article{yu-phillips01, NUMBER={}, AUTHOR={Yu, J. and Phillips, P. C. B.}, TITLE={Gaussian estimation of continuous time models of the short term structure of interest rate}, JOURNAL={Cowles Foundation Discussion Paper}, VOLUME={1309}, PAGES={}, YEAR={2001} } @article{bandi-phillips03, NUMBER={}, AUTHOR={Bandi, F. M. and Phillips, P. C. B.}, TITLE={Fully nonparametric estimation of scalar diffusion models}, JOURNAL={Econometrica}, VOLUME={71}, PAGES={241-283}, YEAR={2003} } @article{qin-lawless94, NUMBER={1}, AUTHOR={Qin, J. and Lawless, J.}, TITLE={Empirical Likelihood and General Estimating Equation}, JOURNAL={The Annals of Statistics}, VOLUME={22}, PAGES={300-325}, YEAR={1994} } @Manual{gmm, title = {gmm: Generalized Method of Moments and Generalized Empirical Likelihood}, author = {Pierre Chausse}, year = {2009}, note = {R package version 1.4-0}, } @Manual{fBasics, title = {fBasics: Rmetrics - Markets and Basic Statistics}, author = {Diethelm Wuertz}, year = {2009}, note = {R package version 2100.78}, url = {http://CRAN.R-project.org/package=fBasics}, } @Manual{stabledist, title = {stabledist: Stable Distribution Functions}, author = {Diethelm Wuertz and Martin Maechler and Rmetrics core team members.}, year = {2012}, note = {R package version 0.6-4}, url = {http://CRAN.R-project.org/package=stabledist}, } @Manual{mvtnorm, title = {mvtnorm: Multivariate Normal and t Distributions}, author = {Alan Genz and Frank Bretz and Tetsuhisa Miwa and Xuefei Mi and Friedrich Leisch and Fabian Scheipl and Torsten Hothorn}, year = {2009}, note = {R package version 0.9-8}, url = {http://CRAN.R-project.org/package=mvtnorm}, } @Article{plm, title = {Panel Data Econometrics in {R}: The {plm} Package}, author = {Yves Croissant and Giovanni Millo}, journal = {Journal of Statistical Software}, year = {2008}, volume = {27}, number = {2}, url = {http://www.jstatsoft.org/v27/i02/}, } @Manual{car, title = {car: Companion to Applied Regression}, author = {John Fox}, year = {2009}, note = {R package version 1.2-16}, url = {http://CRAN.R-project.org/package=car}, } @article{diciccio-hall-romano91, NUMBER={2}, AUTHOR={DiCiccio, T. and Hall, P. and Romano, J.}, TITLE={Empirical Likelihood is Bartlett-Correctable}, JOURNAL={The Annals of Statistics}, VOLUME={19}, PAGES={1053-1061}, YEAR={1991} } @article{ramlau-teschke05, NUMBER={}, AUTHOR={Ramlau, R. and Teschke, G.}, TITLE={Tikhonov Replacement Functionals for Iteratively Solving Nonlinear Operator Equations}, JOURNAL={Inverse Problems}, VOLUME={21}, PAGES={1571-1592}, YEAR={2005} } @article{brown-newey02, AUTHOR={Brown, B. and Newey, W. K.}, TITLE={Generalized Method of Moments, Efficiency Bootsrapping, and Improved Inference}, JOURNAL={Journal of Business and Economic Statistics}, VOLUME={20}, PAGES={507-517}, YEAR={2002} } @article{newey-west87a, AUTHOR={Newey, W. K. and West, K. D.}, TITLE={A Simple, Positive Semi-definite, Heteroskedasticity and Autocorrelation Consistent Covariance Matrix}, JOURNAL={Econometrica}, VOLUME={55}, PAGES={703-708}, YEAR={1987} } @article{andrews91, AUTHOR={Andrews, D. W. K.}, TITLE={Heteroskedasticity and Autocorrelation Consistent Covariance Matrix Estimation}, JOURNAL={Econometrica}, VOLUME={59}, PAGES={817-858}, YEAR={1991} } @article{chesher-smith97, AUTHOR={Chesher, A. and Smith, R. J.}, TITLE={Likelihood Ratio Specification Tests}, JOURNAL={Econometrica}, VOLUME={65}, PAGES={627-646}, YEAR={1997} } @article{horowitz02, AUTHOR={Horowitz, J.}, TITLE={The Bootstrap in Econometrics}, JOURNAL={Handbook of Econometrics}, VOLUME={Vol. 5 eds. J. Heckman and E. Leamer, Amsterdam: North Holland}, YEAR={2002} } @article{imbens-spady-johnson98, AUTHOR={Imbens, G. W. and Spady, R. H. and Johnson, P.}, TITLE={Information Theoretic Approaches to Inference in Moment Condition Models}, JOURNAL={Econometrica}, VOLUME={66}, PAGES={333-357}, YEAR={1998} } @article{hullwhite87, NUMBER={}, AUTHOR={Hull, J. and White, A.}, TITLE={The Pricing of Options on Assets with Stochastic Volatilities}, JOURNAL={Journal of Finance}, VOLUME={42}, PAGES={281-300}, YEAR={1987} } @article{yu-phillips01, NUMBER={}, AUTHOR={Yu, J. and Phillips, P. C. B.}, TITLE={Gaussian estimation of continuous time models of the short term structure of interest rate}, JOURNAL={Cowles Foundation Discussion Paper}, VOLUME={1309}, PAGES={}, YEAR={2001} } @article{li-he05, NUMBER={4}, AUTHOR={Li, K. and He, Y.}, TITLE={Taylor Expansion Algorithme for the Branching Solution of the Navier-Stokes Equations}, JOURNAL={International Journal Numerical Analysis and Modeling}, VOLUME={2}, PAGES={459-478}, YEAR={2005} } @article{ramm04, NUMBER={N2}, AUTHOR={Ramm, A. G.}, TITLE={Dynamical systems method for solving operator equations}, JOURNAL={Comm. Nonlinear Sci. and Numer. Simul.}, VOLUME={9}, PAGES={383-402}, YEAR={2004a} } @article{airapetyan-ramm00, NUMBER={}, AUTHOR={Airayetpan, R. G. and Ramm, A. G.}, TITLE={Dynamical systems and Discrete Methods for Solving Nonlinear Ill-posed Problem}, JOURNAL={Applied Mathematics Review}, VOLUME={1}, PAGES={491-536}, YEAR={2000} } @article{ramm04-2, NUMBER={}, AUTHOR={Ramm, A. G.}, TITLE={Dynamical systems method for solving nonlinear operator equations}, JOURNAL={Int. J. Appl. Math. Sci.}, VOLUME={1}, PAGES={97-110}, YEAR={2004b} } @article{jin00, NUMBER={232}, AUTHOR={Jin, Q. N.}, TITLE={On the Iteratively Regularized Gauss-Newton Method for solving nonlinear Ill-Posed Problems}, JOURNAL={Mathematics of Computation}, VOLUME={69}, PAGES={1603-1623}, YEAR={2000} } @article{watson93, NUMBER={6}, AUTHOR={Watson, M. W.}, TITLE={Measures of Fit for Calibrated Models}, JOURNAL={The Journal of Political Economy}, VOLUME={101}, PAGES={1011-1041}, YEAR={1993} } @article{diebold-ohanian-berkowitz98, NUMBER={}, AUTHOR={Diebold, F. X. and Ohanian, L. E. and Berkowitz, J.}, TITLE={Dynamic Equilibrium Economies: A Framework for Comparing Models and Data}, JOURNAL={Review of Economic Studies}, VOLUME={65}, PAGES={433-451}, YEAR={1998} } @article{Berkowitz01, NUMBER={}, AUTHOR={Berkowitz, J.}, TITLE={Generalized Spectral Estimation of the Consumption based Pricing Model}, JOURNAL={Journal of Econometrics}, VOLUME={104}, PAGES={269-288}, YEAR={2001} } @article{christiano-vigfusson03, NUMBER={4}, AUTHOR={Christiano, J. L. and Vigfusson, R. J.}, TITLE={Maximum Likelihood in the Frequency Domain: The Importance of Time-to-Plan}, JOURNAL={Journal of Monetary Economics}, VOLUME={50}, PAGES={}, YEAR={2003} } @article{seidman-vogel89, NUMBER={}, AUTHOR={Seidman, T. I. and Vogel, C. R.}, TITLE={Well Posedness and Convergence of some Regularisation Methods for Non-linear Ill-posed Problems}, JOURNAL={Inverse Problems}, VOLUME={5}, PAGES={227-238}, YEAR={1989} } @Book{hamilton94, author = {Hamilton, J. D.}, publisher = {Princeton University Press}, title = {Time Series Analysis}, year = {1994}, } gmm/vignettes/gmm_with_R.rnw0000644000176200001440000017441013571757641015715 0ustar liggesusers\documentclass[article, nojss]{jss} \newtheorem{theorem}{Theorem} \newtheorem{col}{Corollary} \newtheorem{lem}{Lemma} \newtheorem{ass}{Assumption} \usepackage[active]{srcltx} \usepackage{amsmath} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{ucs} \usepackage[utf8x]{inputenc} %% need no \usepackage{Sweave.sty} \SweaveOpts{keep.source=TRUE} \author{Pierre Chauss\'e} \title{Computing Generalized Method of Moments and Generalized Empirical Likelihood with \proglang{R}} \Plainauthor{Pierre Chauss\'e} \Plaintitle{Computing Generalized Method of Moments and Generalized Empirical Likelihood with R} \Shorttitle{GMM and GEL with R} \Abstract{This paper shows how to estimate models by the generalized method of moments and the generalized empirical likelihood using the \proglang{R} package \pkg{gmm}. A brief discussion is offered on the theoretical aspects of both methods and the functionality of the package is presented through several examples in economics and finance. It is a modified version of \cite{chausse10} published in the Journal of Statistical Software. It has been adapted to the version 1.4-0. \textbf{Notice that the maintenance of the package is converging to zero. The new \pkg{gmm4} package, available on RForge, will soon replace the \pkg{gmm} package.} } \Keywords{generalized empirical likelihood, generalized method of moments, empirical likelihood, continuous updated estimator, exponential tilting, exponentially tilted empirical likelihood, \proglang{R}} \Plainkeywords{generalized empirical likelihood, generalized method of moments, empirical likelihood, continuous updated estimator, exponential tilting, exponentially tilted empirical likelihood, R} \Address{ Pierre Chaus\'e\\ Department of Economics\\ University of Waterloo\\ Waterloo (Ontario), Canada\\ E-mail: \email{pchausse@uwaterloo.ca} } \begin{document} \SweaveOpts{engine=R,eps=FALSE} %\VignetteIndexEntry{Computing Generalized Empirical Likelihood and Generalized Method of Moments with R} %\VignetteDepends{gmm,mvtnorm,stabledist, car, MASS, timeDate, timeSeries} %\VignetteKeywords{generalized empirical likelihood, generalized method of moments, empirical likelihood, continuous updated estimator, exponential tilting, exponentially tilted empirical likelihood} %\VignettePackage{gmm} \newcommand\R{ \mathbb{R} } \newcommand\C{ \mathbb{C} } \newcommand\rv{{\cal R}} \section{Introduction} The generalized method of moments (GMM) has become an important estimation procedure in many areas of applied economics and finance since \cite{hansen82} introduced the two step GMM (2SGMM). It can be seen as a generalization of many other estimation methods like least squares (LS), instrumental variables (IV) or maximum likelihood (ML). As a result, it is less likely to be misspecified. The properties of the estimators of LS depend on the exogeneity of the regressors and the circularity of the residuals, while those of ML depend on the choice of the likelihood function. GMM is much more flexible since it only requires some assumptions about moment conditions. In macroeconomics, for example, it allows to estimate a structural model equation by equation. In finance, most data such as stock returns are characterized by heavy-tailed and skewed distributions. Because it does not impose any restriction on the distribution of the data, GMM represents a good alternative in this area as well. As a result of its popularity, most statistical packages like \proglang{Matlab}, \proglang{Gauss} or \proglang{Stata} offer tool boxes to use the GMM procedure. It is now possible to easily use this method in \proglang{R} with the new \pkg{gmm} package. Although GMM has good potential theoretically, several applied studies have shown that the properties of the 2SGMM may in some cases be poor in small samples. In particular, the estimators may be strongly biased for certain choices of moment conditions. In response to this result, \cite{hansen-heaton-yaron96} proposed two other ways to compute GMM: the iterative GMM (ITGMM) and the continuous updated GMM (CUE)\footnote{See also \cite{hall05} for a detailed presentation of most recent developments regarding GMM.}. Furthermore, another family of estimation procedures inspired by \cite{owen01}, which also depends only on moment conditions, was introduced by \cite{smith97}. It is the generalized empirical likelihood (GEL). So far, this method has not reached the popularity of GMM and it was not included in any statistical package until \pkg{gmm} was developed for \proglang{R} which also includes a GEL procedure. Asymptotic properties of GMM and generalized empirical likelihood (GEL) are now well established in the econometric literature. \cite{newey-smith04} and \cite{anatolyev05} have compared their second order asymptotic properties. In particular, they show that the second order bias of the empirical likelihood (EL) estimator, which is a special case of GEL, is smaller than the bias of the estimators from the three GMM methods. Furthermore, as opposed to GMM, the bias does not increase with the number of moment conditions. Since the efficiency improves when the number of conditions goes up, this is a valuable property. However, these are only asymptotic results which do not necessarily hold in small sample as shown by \cite{guggenberger08}. In order to analyze small sample properties, we have to rely on Monte Carlo simulations. However, Monte Carlo studies on methods such as GMM or GEL depend on complicated algorithms which are often home made. Because of that, results from such studies are not easy to reproduce. The solution should be to use a common tool which can be tested and improved upon by the users. Because it is open source, \proglang{R} offers a perfect platform for such tool. The \pkg{gmm} package allows to estimate models using the three GMM methods, the empirical likelihood and the exponential tilting, which belong to the family of GEL methods, and the exponentially tilted empirical likelihood which was proposed by \cite{schennach07}, Also it offers several options to estimate the covariance matrix of the moment conditions. Users can also choose between \code{optim}, if no restrictions are required on the coefficients of the model to be estimated, and either \code{nlminb} or \code{constrOptim} for constrained optimizations. The results are presented in such a way that \proglang{R} users who are familiar with \code{lm} objects, find it natural. In fact, the same methods are available for \code{gmm} and \code{gel} objects produced by the estimation procedures. The paper is organized as follows. Section 2 presents the theoretical aspects of the GMM method along with several examples in economics and finance. Through these examples, the functionality of the \pkg{gmm} packages is presented in details. Section 3 presents the GEL method with some of the examples used in section 2. Section 4 concludes and Section 5 gives the computational details of the package. \section{Generalized method of moments} This section presents an overview of the GMM method. It is intended to help the users understand the options that the \pkg{gmm} package offers. For those who are not familiar with the method and require more details, see \cite{hansen82} and \cite{hansen-heaton-yaron96} for the method itself, \cite{newey-west94} and \cite{andrews91} for the choice of the covariance matrix or \cite{hamilton94}. We want to estimate a vector of parameters $\theta_0 \in \R^p$ from a model based on the following $q\times 1$ vector of unconditional moment conditions: \begin{equation}\label{mcond} E[g(\theta_0,x_i)] = 0 , \end{equation} where $x_i$ is a vector of cross-sectional data, time series or both. In order for GMM to produce consistent estimates from the above conditions, $\theta_0$ has to be the unique solution to $E[g(\theta,x_i)]=0$ and be an element of a compact space. Some boundary assumptions on higher moments of $g(\theta,x_i)$ are also required. However, it does not impose any condition on the distribution of $x_i$, except for the degree of dependence of the observations when it is a vector of time series. Several estimation methods such as least squares (LS), maximum likelihood (ML) or instrumental variables (IV) can also be seen as being based on such moment conditions, which make them special cases of GMM. For example, the following linear model: \[ Y = X\beta + u , \] where $Y$ and $X$ are respectively $n\times 1$ and $n\times k$ matrices, can be estimated by LS. The estimate $\hat{\beta}$ is obtained by solving $\min_\beta \|u\|^2$ and is therefore the solution to the following first order condition: \[ \frac{1}{n}X'u(\beta) = 0 , \] which is the estimate of the moment condition $E(X_iu_i(\beta))=0$. The same model can be estimated by ML in which case the moment condition becomes: \[ E\left[\frac{d l_i(\beta)}{d\beta}\right]=0 , \] where $l_i(\beta)$ is the density of $u_i$. In presence of endogeneity of the explanatory variable $X$, which implies that $E(X_iu_i)\neq 0$, the IV method is often used. It solves the endogeneity problem by substituting $X$ by a matrix of instruments $H$, which is required to be correlated with $X$ and uncorrelated with $u$. These properties allow the model to be estimated by the conditional moment condition $E(u_i|H_i)=0$ or its implied unconditional moment condition $E(u_iH_i)=0$. In general we say that $u_i$ is orthogonal to an information set $I_i$ or that $E(u_i|I_i)=0$ in which case $H_i$ is a vector containing functions of any element of $I_i$. The model can therefore be estimated by solving \[ \frac{1}{T}H'u(\beta)=0 . \] When there is no assumption on the covariance matrix of $u$, the IV corresponds to GMM. If $E(X_iu_i)=0$ holds, generalized LS with no assumption on the covariance matrix of $u$ other than boundary ones is also a GMM method. For the ML procedure to be viewed as GMM, the assumption on the distribution of $u$ must be satisfied. If it is not, but $E(dl_i(\theta_0)/d\theta)=0$ holds, as it is the case for linear models with non normal error terms, the pseudo-ML which uses a robust covariance matrix can be seen as being a GMM method. Because GMM depends only on moment conditions, it is a reliable estimation procedure for many models in economics and finance. For example, general equilibrium models suffer from endogeneity problems because these are misspecified and they represent only a fragment of the economy. GMM with the right moment conditions is therefore more appropriate than ML. In finance, there is no satisfying parametric distribution which reproduces the properties of stock returns. The family of stable distributions is a good candidate but only the densities of the normal, Cauchy and Lévy distributions, which belong to this family, have a closed form expression. The distribution-free feature of GMM is therefore appealing in that case. Although GMM estimators are easily consistent, efficiency and bias depend on the choice of moment conditions. Bad instruments implies bad information and therefore low efficiency. The effects on finite sample properties are even more severe and are well documented in the literature on weak instruments. \cite{newey-smith04} show that the bias increases with the number of instruments but efficiency decreases. Therefore, users need to be careful when selecting the instruments. \cite{carrasco07} gives a good review of recent developments on how to choose instruments in her introduction. In general, the moment conditions $E(g(\theta_0,x_i))=0$ is a vector of nonlinear functions of $\theta_0$ and the number of conditions is not limited by the dimension of $\theta_0$. Since efficiency increases with the number of instruments $q$ is often greater than $p$, which implies that there is no solution to \[ \bar{g}(\theta) \equiv \frac{1}{n}\sum_{i=1}^n g(\theta,x_i)=0. \] The best we can do is to make it as close as possible to zero by minimizing the quadratic function $\bar{g}(\theta)'W\bar{g}(\theta)$, where $W$ is a positive definite and symmetric $q\times q$ matrix of weights. The optimal matrix $W$ which produces efficient estimators is defined as: \begin{equation}\label{optw} W^* = \left\{\lim_{n\rightarrow \infty} Var(\sqrt{n} \bar{g}(\theta_0)) \equiv \Omega(\theta_0) \right\}^{-1}. \end{equation} This optimal matrix can be estimated by an heteroskedasticity and auto-correlation consistent (HAC) matrix like the one proposed by \cite{newey-west87a}. The general form is: \begin{equation}\label{optw_hat} \hat{\Omega} = \sum_{s=-(n-1)}^{n-1} k_h(s) \hat{\Gamma}_s(\theta^*), \end{equation} where $k_h(s)$ is a kernel, $h$ is the bandwidth which can be chosen using the procedures proposed by \cite{newey-west87a} and \cite{andrews91}, \[ \hat{\Gamma}_s(\theta^*) = \frac{1}{n}\sum_i g(\theta^*,x_i)g(\theta^*,x_{i+s})' \] and $\theta^*$ is a convergent estimate of $\theta_0$. There are many choices for the HAC matrix. They depend on the kernel and bandwidth selection. Although the choice does not affect the asymptotic properties of GMM, very little is known about the impacts in finite samples. The GMM estimator $\hat{\theta}$ is therefore defined as: \begin{equation}\label{gmm} \hat{\theta} = \arg\min_{\theta} \bar{g}(\theta)'\hat{\Omega}(\theta^*)^{-1}\bar{g}(\theta) \end{equation} The original version of GMM proposed by \cite{hansen82} is called two-step GMM (2SGMM). It computes $\theta^*$ by minimizing $\bar{g}(\theta)'\bar{g}(\theta)$. The algorithm is therefore: \begin{itemize} \item[1-] Compute $\theta^* = \arg\min_\theta \bar{g}(\theta)'\bar{g}(\theta)$ \item[2-] Compute the HAC matrix $\hat{\Omega}(\theta^*)$ \item[3-] Compute the 2SGMM $\hat{\theta} = \arg\min_\theta \bar{g}(\theta)'\big[\hat{\Omega}(\theta^*)\big]^{-1}\bar{g}(\theta)$ \end{itemize} In order to improve the properties of 2SGMM, \cite{hansen-heaton-yaron96} suggest two other methods. The first one is the iterative version of 2SGMM (ITGMM) and can be computed as follows: \begin{itemize} \item[1-] Compute $\theta^{(0)} = \arg\min_\theta \bar{g}(\theta)'\bar{g}(\theta)$ \item[2-] Compute the HAC matrix $\hat{\Omega}(\theta^{(0)})$ \item[3-] Compute the $\theta^{(1)} = \arg\min_\theta \bar{g}(\theta)'\big[\hat{\Omega}(\theta^{(0)})\big]^{-1}\bar{g}(\theta)$ \item[4-] If $\| \theta^{(0)}-\theta^{(1)}\|< tol$ stops, else $\theta^{(0)}=\theta^{(1)}$ and go to 2- \item[5-] Define the ITGMM estimator $\hat{\theta}$ as $\theta^{(1)}$ \end{itemize} where $tol$ can be set as small as we want to increase the precision. In the other method, no preliminary estimate is used to obtain the HAC matrix. The latter is treated as a function of $\theta$ and is allowed to change when the optimization algorithm computes the numerical derivatives. It is therefore continuously updated as we move toward the minimum. For that, it is called the continuous updated estimator (CUE). This method is highly nonlinear. It is therefore crucial to choose a starting value that is not too far from the minimum. A good choice is the estimate from 2SGMM which is known to be root-n convergent. The algorithm is: \begin{itemize} \item[1-] Compute $\theta^*$ using 2SGMM \item[2-] Compute the CUE estimator defined as \[ \hat{\theta} = \arg\min_\theta \bar{g}(\theta)'\big[\hat{\Omega}(\theta)\big]^{-1}\bar{g}(\theta) \] using $\theta^*$ as starting value. \end{itemize} According to \cite{newey-smith04} and \cite{anatolyev05}, 2SGMM and ITGMM are second order asymptotically equivalent. On the other hand, they show that the second order asymptotic bias of CUE is smaller. The difference in the bias comes from the randomness of $\theta^*$ in $\Omega(\theta^*)$. Iterating only makes $\theta^*$ more efficient. These are second order asymptotic properties. They are informative but may not apply in finite samples. In most cases, we have to rely on numerical simulations to analyze the properties in small samples. Given some regularity conditions, the GMM estimator converges as $n$ goes to infinity to the following distribution: \[ \sqrt{n}(\hat{\theta}-\theta_0) \stackrel{L}{\rightarrow} N(0,V), \] where \[ V = E\left(\frac{\partial g(\theta_0,x_i)}{\partial\theta}\right)'\Omega(\theta_0)^{-1}E\left(\frac{\partial g(\theta_0,x_i)}{\partial\theta}\right) \] Inference can therefore be performed on $\hat{\theta}$ using the assumption that it is approximately distributed as $N(\theta_0,\hat{V}/n)$. If $q>p$, we can perform a J-test to verify if the moment conditions hold. The null hypothesis and the statistics are respectively $H0:E[g(\theta,x_i)]=0$ and: \[ n\bar{g}(\hat{\theta})'[\hat{\Omega}(\theta^*)]^{-1}\bar{g}(\hat{\theta}) \stackrel{L}{\rightarrow} \chi^2_{q-p}. \] \section{GMM with R} The \pkg{gmm} package can be loaded the usual way. <<>>= library(gmm) @ The main function is \code{gmm()} which creates an object of class \code{gmm}. Many options are available but in many cases they can be set to their default values. They are explained in details below through examples. The main arguments are \code{g} and \code{x}. For a linear model, \code{g} is a formula like \code{y~z1+z2} and \code{x} the matrix of instruments. In the nonlinear case, they are respectively the function $g(\theta,x_i)$ and its argument. The available methods are \code{coef}, \code{vcov}, \code{summary}, \code{residuals}, \code{fitted.values}, \code{plot}, \code{confint}. The model and data in a \code{data.frame} format can be extracted by the generic function \code{model.frame}. \subsection{Estimating the parameters of a normal distribution} This example\footnote{Thanks to Dieter Rozenich for his suggestion.}, is not something we want to do in practice, but its simplicity allows us to understand how to implement the \code{gmm()} procedure by providing the gradient of $g(\theta,x_i)$. It is also a good example of the weakness of GMM when the moment conditions are not sufficiently informative. In fact, the ML estimators of the mean and the variance of a normal distribution are more efficient because the likelihood carries more information than few moment conditions. For the two parameters of a normal distribution $(\mu,\sigma)$ we have the following vector of moment conditions: \[ E[g(\theta,x_i)] \equiv E\left[ \begin{array}{c} \mu - x_{i} \\ \sigma^2 - (x_{i}-\mu)^2 \\ x_{i}^{3} - \mu (\mu^2+3\sigma^{2}) \end{array} \right] = 0 , \] where the first two can be directly obtained by the definition of $(\mu,\sigma)$ and the last comes from the third derivative of the moment generating function evaluated at 0. We first need to create a function $g(\theta,x)$ which returns an $n\times 3$ matrix: <<>>= g1 <- function(tet,x) { m1 <- (tet[1]-x) m2 <- (tet[2]^2 - (x - tet[1])^2) m3 <- x^3-tet[1]*(tet[1]^2+3*tet[2]^2) f <- cbind(m1,m2,m3) return(f) } @ The following is the gradient of $\bar{g}(\theta)$: \[ G\equiv \frac{\partial \bar{g}(\theta)}{\partial \theta} = \left( \begin{array}{cc} 1 & 0\\ 2(\bar{x}-\mu) & 2\sigma\\ -3(\mu^{2}+\sigma^{2}) & -6\mu\sigma \end{array} \right). \] If provided, it will be used to compute the covariance matrix of $\hat{\theta}$. It can be created as follows: <<>>= Dg <- function(tet,x) { G <- matrix(c( 1, 2*(-tet[1]+mean(x)), -3*tet[1]^2-3*tet[2]^2,0, 2*tet[2],-6*tet[1]*tet[2]), nrow=3,ncol=2) return(G) } @ First we generate normally distributed random numbers: <<>>= set.seed(123) n <- 200 x1 <- rnorm(n, mean = 4, sd = 2) @ We then run \code{gmm} using the starting values $(\mu_0,\sigma^2_0)=(0,0)$ <<>>= print(res <- gmm(g1,x1,c(mu = 0, sig = 0), grad = Dg)) @ The \code{summary} method prints more results from the estimation: <<>>= summary(res) @ The section "Initial values of the coefficients" shows the first step estimates used to either compute the weighting matrix in the 2-step GMM or the fixed bandwidth in CUE or iterative GMM. The J-test of over-identifying restrictions can also be extracted by using the method \code{specTest}: <<>>= specTest(res) @ A small simulation using the following function shows that ML produces estimators with smaller mean squared errors than GMM based on the above moment conditions. However, it is not GMM but the moment conditions that are not efficient, because ML is GMM with the likelihood derivatives as moment conditions. <<>>= sim_ex <- function(n,iter) { tet1 <- matrix(0,iter,2) tet2 <- tet1 for(i in 1:iter) { x1 <- rnorm(n, mean = 4, sd = 2) tet1[i,1] <- mean(x1) tet1[i,2] <- sqrt(var(x1)*(n-1)/n) tet2[i,] <- gmm(g1,x1,c(0,0),grad=Dg)$coefficients } bias <- cbind(rowMeans(t(tet1)-c(4,2)),rowMeans(t(tet2)-c(4,2))) dimnames(bias)<-list(c("mu","sigma"),c("ML","GMM")) Var <- cbind(diag(var(tet1)),diag(var(tet2))) dimnames(Var)<-list(c("mu","sigma"),c("ML","GMM")) MSE <- cbind(rowMeans((t(tet1)-c(4,2))^2),rowMeans((t(tet2)-c(4,2))^2)) dimnames(MSE)<-list(c("mu","sigma"),c("ML","GMM")) return(list(bias=bias,Variance=Var,MSE=MSE)) } @ The following results can be reproduced with $n=50$, $iter=2000$ and by setting \code{set.seed(345)}: \begin{center} \begin{tabular}{|c|c|c|c||c|c|c|} \hline &\multicolumn{3}{c||}{$\mu$}&\multicolumn{3}{c}{$\sigma$} \\ \hline & Bias & Variance & MSE & Bias & Variance &MSE \\ \hline GMM& 0.0020 &0.0929 & 0.0928& -0,0838 & 0.0481& 0.0551\\ ML& 0.0021 &0.0823 & 0.0822 & -0.0349 & 0.0411& 0.0423 \\ \hline \end{tabular} \end{center} \subsection{Estimating the parameters of a stable distribution} The previous example showed that ML should be used when the true distribution is known. However, when the density does not have a closed form expression, we have to consider other alternatives. \cite{garcia-renault-veredas06} propose to use indirect inference and perform a numerical study to compare it with several other methods. One of them is GMM for a continuum of moment conditions and was suggested by \cite{carrasco-florens02}. It uses the fact that the characteristic function $E(e^{ix_i\tau})$, where $i$ is the imaginary number and $\tau\in\R$, has a closed form expression (for more details on stable distribution, see \cite{nolan09}). The \pkg{gmm} package does not yet deal with continuum of moment conditions but we can choose a certain grid $\{\tau_1,..., \tau_q\}$ over a given interval and estimate the parameters using the following moment conditions: \[ E\left[e^{ix_i\tau_l}-\Psi(\theta;\tau_l) \right]=0~~\mbox{for}~~l=1,...,q~, \] where $\Psi(\theta;\tau_l)$ is the characteristic function. There is more than one way to define a stable distribution and it depends on the choice of parametrization. We will follow the notation of \cite{nolan09} and consider stable distributions $S(\alpha,\beta,\gamma,\delta;1)$, where $\alpha\in (0,2]$ is the characteristic exponent and $\beta\in[-1,1]$, $\gamma>0$ and $\delta\in\R$ are respectively the skewness, the scale and the location parameters. The last argument defines which parametrization we use. The \pkg{stabledist} package of \cite{stabledist} offers a function to generate random variables from stable distributions and uses the same notation. This parametrization implies that: \[ \Psi(\theta;\tau_l) = \left\{ \begin{array}{lcr} \exp{(-\gamma^\alpha|\tau_l|^\alpha[1-i\beta(\tan{\frac{\pi\alpha}{2}})(\text{sign}(\tau_l))] + i\delta \tau_l)} &\mbox{for}&\alpha\neq 1\\ \exp{(-\gamma|\tau_l|[1+i\beta\frac{2}{\pi}(\text{sign}(\tau_l))\log{|\tau_l|}] + i\delta \tau_l)} &\mbox{for}&\alpha= 1\\ \end{array} \right. , \] The function \code{charStable} included in the package computes the characteristic function and can be used to construct $g(\theta,x_i)$. To avoid dealing with complex numbers, it returns the imaginary and real parts in separate columns because both should have zero expectation. The function is: <<>>= g2 <- function(theta,x) { tau <- seq(1,5,length.out=10) pm <- 1 x <- matrix(c(x),ncol=1) x_comp <- x%*%matrix(tau,nrow=1) x_comp <- matrix(complex(ima=x_comp),ncol=length(tau)) emp_car <- exp(x_comp) the_car <- charStable(theta,tau,pm) gt <- t(t(emp_car) - the_car) gt <- cbind(Im(gt),Re(gt)) return(gt) } @ The parameters of a simulated random vector can be estimated as follows (by default, $\gamma$ and $\delta$ are set to $1$ and $0$ respectively in \code{rstable}). For the example, the starting values are the ones of a normal distribution with mean 0 and variance equals to \code{var(x)}: <<>>= library(stabledist) set.seed(345) x2 <- rstable(500,1.5,.5,pm=1) t0 <- c(alpha = 2, beta = 0, gamma = sd(x2)/sqrt(2), delta = 0) print(res <- gmm(g2,x2,t0)) @ The result is not very close to the true parameters. But we can see why by looking at the J-test that is provided by the \code{summary} method: <<>>= summary(res) @ The null hypothesis that the moment conditions are satisfied is rejected. For nonlinear models, a significant J-test may indicate that we have not reached the global minimum. Furthermore, the standard deviation of the coefficient of $\delta$ indicates that the covariance matrix is nearly singular. Notice also that the convergence code is equal to 1, which indicates that the algorithm did not converge. We could try different starting values, increase the number of iterations in the control option of \code{optim} or use \code{nlminb} which allows to put restrictions on the parameter space. The former would work but the latter will allow us to see how to select another optimizer. The option \code{optfct} can be modified to use this algorithm instead of \code{optim}. In that case, we can specify the upper and lower bounds of $\theta$. <<>>= res2 <- gmm(g2,x2,t0,optfct="nlminb",lower=c(0,-1,0,-Inf),upper=c(2,1,Inf,Inf)) summary(res2) @ Although the above modification solved the convergence problem, there is another issue that we need to address. The first step estimate used to compute the weighting matrix is almost identical to the starting values. There is therefore a convergence problem in the first step. In fact, choosing the initial $\alpha$ to be on the boundary was not a wise choice. Also, it seems that an initial value of $\beta$ equals to zero makes the objective function harder to minimize. Having a gobal minimum for the first step estimate is important if we care about efficiency. A wrong estimate will cause the weighting matrix not being a consistent estimate of the optimal matrix. The information about convergence is included in the argument 'initialAlgoInfo' of the gmm object. We conclude this example by estimating the parameters for a vector of stock returns from the data set \code{Finance} that comes with the \pkg{gmm} package. <<>>= data(Finance) x3 <- Finance[1:1500,"WMK"] t0<-c(alpha = 1.8, beta = 0.1, gamma = sd(x3)/sqrt(2),delta = 0) res3 <- gmm(g2,x3,t0,optfct="nlminb") summary(res3) @ For this sub-sample, the hypothesis that the return follows a stable distribution is rejected. The normality assumption can be analyzed by testing $H_0:\alpha=2,\beta=0$ using \code{linearHypothesis} from the \pkg{car} package: <<>>= library(car) linearHypothesis(res3,cbind(diag(2),c(0,0),c(0,0)),c(2,0)) @ It is clearly rejected. The result is even stronger if the whole sample is used. \subsection{A linear model with iid moment conditions} We want to estimate a linear model with an endogeneity problem. It is the model used by \cite{carrasco07} to compare several methods which deal with the many instruments problem. We want to estimate $\delta$ from: \[ y_i = \delta W_i + \epsilon_i \] with $\delta=0.1$ and \[ W_i = e^{-x_i^2} + u_i , \] where $(\epsilon_i,u_i) \sim ~iidN(0,\Sigma)$ with \[ \Sigma = \left( \begin{array}{cc} 1&0.5\\ 0.5&1 \end{array} \right) \] Any function of $x_i$ can be used as an instrument because it is orthogonal to $\epsilon_i$ and correlated with $W_i$. There is therefore an infinite number of possible instruments. For this example, $(x_i,x_i^2,x_i^3)$ will be the selected instruments and the sample size is set to $n=400$: <<>>= library(mvtnorm) set.seed(112233) sig <- matrix(c(1,.5,.5,1),2,2) n <- 400 e <- rmvnorm(n,sigma=sig) x4 <- rnorm(n) w <- exp(-x4^2) + e[,1] y <- 0.1*w + e[,2] @ where \code{rmvnorm} is a multivariate normal distribution random generator which is included in the package \pkg{mvtnorm} (\cite{mvtnorm}). For a linear model, the $g$ argument is a formula that specifies the right- and left-hand sides as for \code{lm} and $x$ is the matrix of instruments: <<>>= h <- cbind(x4, x4^2, x4^3) g3 <- y~w @ By default, an intercept is added to the formula and a vector of ones to the matrix of instruments. It implies the following moment conditions: \[ E\left(\begin{array}{c} (y_i-\alpha-\delta W_i)\\ (y_i-\alpha-\delta W_i)x_i\\ (y_i-\alpha-\delta W_i)x_i^2\\ (y_i-\alpha-\delta W_i)x_i^3 \end{array} \right)=0 \] In order the remove the intercept, -1 has to be added to the formula. In that case there is no column of ones added to the matrix of instruments. To keep the condition that the expected value of the error terms is zero, the column of ones needs to be included manually. We know that the moment conditions of this example are iid. Therefore, we can add the option \code{vcov="iid"}. This option tells \code{gmm} to estimate the covariance matrix of $\sqrt{n}\bar{g}(\theta^*)$ as follows: \[ \hat{\Omega}(\theta^*) = \frac{1}{n}\sum_{i=1}^n g(\theta^*,x_i)g(\theta^*,x_i)' \] However, it is recommended not to set this option to ``iid" in practice with real data because one of the reasons we want to use GMM is to avoid such restrictions. Finally, it is not necessary to provide the gradient when the model is linear since it is already included in \code{gmm}. The first results are: <<>>= summary(res <- gmm(g3,x=h)) @ By default, the 2SGMM is computed. Other methods can be chosen by modifying the option ``type". The second possibility is ITGMM: <<>>= res2 <- gmm(g3,x=h,type='iterative',crit=1e-8,itermax=200) coef(res2) @ The procedure iterates until the difference between the estimates of two successive iterations reaches a certain tolerance level, defined by the option \code{crit} (default is $10^{-7}$), or if the number of iterations reaches \code{itermax} (default is 100). In the latter case, a message is printed to indicate that the procedure did not converge. The third method is CUE. As you can see, the estimates from ITGMM is used as starting values. However, the starting values are required only when \code{g} is a function. When \code{g} is a formula, the default starting values are the ones obtained by setting the matrix of weights equal to the identity matrix. <<>>= res3 <- gmm(g3,x=h,res2$coef,type='cue') coef(res3) @ It is possible to produce confidence intervals by using the method \code{confint}: <<>>= confint(res3,level=.90) @ Whether \code{optim} or \code{nlminb} is used to compute the solution, it is possible to modify their default options by adding \code{control=list()}. For example, you can keep track of the convergence with \code{control=list(trace=TRUE)} or increase the number of iterations with \code{control=list(maxit=1000)}. You can also choose the \code{BFGS} algorithm with \code{method="BFGS"} (see \code{help(optim)} for more details). The methods \code{fitted} and \code{residuals} are also available for linear models. We can compare the fitted values of \code{lm} with the ones from \code{gmm} to see why this model cannot be estimated by LS. <>= plot(w,y,main="LS vs GMM estimation") lines(w,fitted(res),col=2) lines(w,fitted(lm(y~w)),col=3,lty=2) lines(w,.1*w,col=4,lty=3) legend("topleft",c("Data","Fitted GMM","Fitted LS","True line"),pch=c(1,NA,NA,NA),col=1:3,lty=c(NA,1,2,3)) @ The LS seems to fit the model better. But the graphics hides the endogeneity problem. LS overestimates the relationship between $y$ and $w$ because it does not take into account the fact that some of the correlation is caused by the fact that $y_i$ and $w_i$ are positively correlated with the error term $\epsilon_i$. Finally, the \code{plot} method produces some graphics to analyze the properties of the residuals. It can only be applied to \code{gmm} objects when \code{g} is a formula because when \code{g} is a function, residuals are not defined. \subsection{Estimating the AR coefficients of an ARMA process} \label{ar} The estimation of auto-regressive coefficients of ARMA(p,q) processes is better performed by ML or nonlinear LS. But in Monte Carlo experiments, it is often estimated by GMM to study its properties. It gives a good example of linear models with endogeneity problems in which the moment conditions are serially correlated and possibly conditionally heteroskedastic. As opposed to the previous example, the choice of the HAC matrix becomes an important issue. We want to estimate the AR coefficients of the following process: \[ X_t = 1.4 X_{t-1} - 0.6X_{t-2} + u_t \] where $u_t = 0.6\epsilon_{t-1} -0.3 \epsilon_{t-2} + \epsilon_t$ and $\epsilon_t\sim iidN(0,1)$. This model can be estimated by GMM using any $X_{t-s}$ for $s>2$, because they are uncorrelated with $u_t$ and correlated with $X_{t-1}$ and $X_{t-2}$. However, as $s$ increases the quality of the instruments decreases since the stationarity of the process implies that the auto-correlation goes to zero. For this example, the selected instruments are $(X_{t-3},X_{t-4},X_{t-5},X_{t-6})$ and the sample size equals 400. The ARMA(2,2) process is generated by the function \code{arima.sim}: <<>>= t <- 400 set.seed(345) x5 <- arima.sim(n=t,list(ar=c(1.4,-0.6),ma=c(0.6,-0.3))) x5t<-cbind(x5) for (i in 1:6) x5t<-cbind(x5t,lag(x5,-i)) x5t<-na.omit(x5t) g4<-x5t[,1]~x5t[,2]+x5t[,3] res<-gmm(g4,x5t[,4:7]) summary(res) @ The optimal matrix, when moment conditions are based on time series, is an HAC matrix which is defined by equation (\ref{optw_hat}). Several estimators of this matrix have been proposed in the literature. Given some regularity conditions, they are asymptotically equivalent. However, their impacts on the finite sample properties of GMM estimators may differ. The \pkg{gmm} package uses the \pkg{sandwich} package to compute these estimators which are well explained by \cite{zeileis06} and \cite{zeileis04}. We will therefore briefly summarize the available options. The option \code{kernel} allows to choose between five kernels: Truncated, Bartlett, Parzen, Tukey-Hanning and Quadratic spectral\footnote{The first three have been proposed by \cite{white84}, \cite{newey-west87a} and \cite{gallant87} respectively and the last two, applied to HAC estimation, by \cite{andrews91}. But the latter gives a good review of all five.}. By default, the Quadratic Spectral kernel is used as it was shown to be optimal by \cite{andrews91} with respect to some mean squared error criterion. In most statistical packages, the Bartlett kernel is used for its simplicity. It makes the estimation of large models less computationally intensive. It may also make the \code{gmm} algorithm more stable numerically when dealing with highly nonlinear models, especially with CUE. We can compare the results with different choices of kernel: <<>>= res2 <- gmm(g4,x=x5t[,4:7],kernel="Truncated") coef(res2) res3 <- gmm(g4,x=x5t[,4:7],kernel="Bartlett") coef(res3) res4 <- gmm(g4,x=x5t[,4:7],kernel="Parzen") coef(res4) res5<- gmm(g4,x=x5t[,4:7],kernel="Tukey-Hanning") coef(res5) @ The similarity of the results is not surprising since the matrix of weights should only affect the efficiency of the estimator. We can compare the estimated standard deviations using the method \code{vcov}: <<>>= diag(vcov(res2))^.5 diag(vcov(res3))^.5 diag(vcov(res4))^.5 diag(vcov(res5))^.5 @ which shows, for this example, that the Bartlett kernel generates the estimates with the smallest variances. However, it does not mean it is better. We have to run simulations and compute the true variance if we want to compare them. In fact, we do not know which one produces the most accurate estimate of the variance. The second options is for the bandwidth selection. By default it is the automatic selection proposed by \cite{andrews91}. It is also possible to choose the automatic selection of \cite{newey-west94} by adding \code{bw=bwNeweyWest} (without quotes because \code{bwNeweyWest} is a function). A prewhitened kernel estimator can also be computed using the option \code{prewhite=p}, where $p$ is the order of the vector auto-regressive (VAR) used to compute it. By default, it is set to \code{FALSE}. \cite{andrews-monahan92} show that a prewhitened kernel estimator improves the properties of hypothesis tests on parameters. Finally, the \code{plot} method can be applied to \code{gmm} objects to do a Q-Q plot of the residuals: <>= plot(res,which=2) @ or to plot the observations with the fitted values: <>= plot(res,which=3) @ \subsection{Estimating a system of equations: CAPM} We want to test one of the implications of the capital asset pricing model (CAPM). This example comes from \cite{campbell-lo-mackinlay96}. It shows how to apply the \pkg{gmm} package to estimate a system of equations. The theory of CAPM implies that $\mu_i-R_f = \beta_i (\mu_m-R_f)$ $\forall i$, where $\mu_i$ is the expected value of stock i's return, $R_f$ is the risk free rate and $\mu_m$ is the expected value of the market porfolio's return. The theory can be tested by running the following regression: \[ (R_t-R_f) = \alpha + \beta (R_{mt}-R_f) + \epsilon_t, \] where $R_t$ is a $N\times 1$ vector of observed returns on stocks, $R_{mt}$ if the observed return of a proxy for the market portfolio, $R_f$ is the interest rate on short term government bonds and $\epsilon_t$ is a vector of error terms with covariance matrix $\Sigma_t$. When estimated by ML or LS, $\Sigma$ is assumed to be fixed. However, GMM allows $\epsilon_t$ to be heteroskedastic and serially correlated. One implication of the CAPM is that the vector $\alpha$ should be zero. It can be tested by estimating the model with $(R_{mt}-R_f)$ as instruments, and by testing the null hypothesis $H_0:~\alpha=0$. The data, which are included in the package, are the daily returns of twenty selected stocks from January 1993 to February 2009, the risk-free rate and the three factors of Fama and French\footnote{The symbols of the stocks taken from \url{http://ca.finance.yahoo.com/} are ("WMK", "UIS", "ORB", "MAT", "ABAX","T", "EMR", "JCS", "VOXX", "ZOOM", "ROG", "GGG", "PC", "GCO", "EBF", "F", "FNM", "NHP", "AA", "TDW"). The four other series can be found on K. R. French's web site: \url{http://mba.tuck.dartmouth.edu/pages/faculty/ken.french/data\_library.html}}. The following test is performed using the returns of 5 stocks and a sample size of 500\footnote{The choice of sample size is arbitrary. The purpose is to show how to estimate a system of equations not to test the CAPM. Besides, the $\beta$'s seem to vary over time. It is therefore a good practice to estimate the model using short periods.}. <<>>= data(Finance) r <- Finance[1:500,1:5] rm <- Finance[1:500,"rm"] rf <- Finance[1:500,"rf"] z <- as.matrix(r-rf) zm <- as.matrix(rm-rf) res <- gmm(z~zm,x=zm) coef(res) R <- cbind(diag(5),matrix(0,5,5)) c <- rep(0,5) linearHypothesis(res,R,c,test = "Chisq") @ where the asymptotic chi-square is used since the default distribution requires a normality assumption. The same test could have been performed using the names of the coefficients: <>= test <- paste(names(coef(res)[1:5])," = 0",sep="") linearHypothesis(res,test) @ Another way to test the CAPM is to estimate the restricted model ($\alpha=0$), which is over-identified, and to perform a J-test. Adding $-1$ to the formula removes the intercept. In that case, a column of ones has to be added to the matrix of instruments: <<>>= res2<-gmm(z~zm-1,cbind(1,zm)) specTest(res2) @ which confirms the non-rejection of the theory. \subsection{Testing the CAPM using the stochastic discount factor representation} In some cases the theory is directly based on moment conditions. When it is the case, testing the validity of these conditions becomes a way of testing the theory. \cite{jagannathan-skoulakis02} present several GMM applications in finance and one of them is the stochastic discount factor (SDF) representation of the CAPM. The general theory implies that $E(m_tR_{it})=1$ for all $i$, where $m_t$ is the SDF and $R_{it}$ the gross return ($1 + r_{it}$). It can be shown that if the CAPM holds, $m_t=\theta_0 + \theta_0 R_{mt}$ which implies the following moment conditions: \[ E\Big[R_{it}(\theta_0-\theta_1R_{mt})-1 \Big] = 0~~\mbox{for}~~ i=1,...,N \] which can be tested as follows: <<>>= g5 <- function(tet, x) { gmat <- (tet[1] + tet[2] * (1 + c(x[, 1]))) * (1 + x[, 2:6]) - 1 return(gmat) } res_sdf <- gmm(g5, x = as.matrix(cbind(rm, r)), c(0, 0)) specTest(res_sdf) @ which is consistent with the two previous tests. \subsection{Estimating continuous time processes by discrete time approximation} This last example also comes from \cite{jagannathan-skoulakis02}. We want to estimate the coefficients of the following continuous time process which is often used in finance for interest rates: \[ dr_t = (\alpha + \beta r_t)dt + \sigma r_t^\gamma dW_t, \] where $W_t$ is a standard Brownian motion. Special cases of this process are the Brownian motion with drift ($\beta=0$ and $\gamma = 0$), the Ornstein-Uhlenbeck process ($\gamma=0$) and the Cox-Ingersoll-Ross or square root process ( $\gamma = 1/2$). It can be estimated using the following discrete time approximation: \[ r_{t+1}-r_t = \alpha + \beta r_t + \epsilon_{t+1} \] with \[ E_t \epsilon_{t+1}=0,~~\mbox{and}~~E_t(\epsilon_{t+1}^2) = \sigma^2r_t^{2\gamma} \] Notice that ML cannot be used to estimate this model because the distribution depends on $\gamma$. In particular, it is normal for $\gamma=0$ and gamma for $\gamma=1/2$. It can be estimated by GMM using the following moment conditions: \[ E[g(\theta,x_t)] \equiv E\left(\begin{array}{c} \epsilon_{t+1}\\ \epsilon_{t+1}r_t\\ \epsilon_{t+1}^2-\sigma^2r_t^{2\gamma}\\ (\epsilon_{t+1}^2-\sigma^2r_t^{2\gamma})r_t \end{array} \right) = 0 \] The related \code{g} function, with $\theta=\{\alpha, \beta, \sigma^2, \gamma\}$ is: <<>>= g6 <- function(theta, x) { t <- length(x) et1 <- diff(x) - theta[1] - theta[2] * x[-t] ht <- et1^2 - theta[3] * x[-t]^(2 * theta[4]) g <- cbind(et1, et1 * x[-t], ht, ht * x[-t]) return(g) } @ In order to estimate the model, the vector of interest rates needs to be properly scaled to avoid numerical problems. The transformed series is the annualized interest rates expressed in percentage. Also, the starting values are obtained using LS and some options for \code{optim} need to be modified. <<>>= rf <- Finance[,"rf"] rf <- ((1 + rf/100)^(365) - 1) * 100 dr <- diff(rf) res_0 <- lm(dr ~ rf[-length(rf)]) tet0 <- c(res_0$coef, var(residuals(res_0)), 0) names(tet0) <- c("alpha", "beta", "sigma^2", "gamma") res_rf <- gmm(g6, rf, tet0, control = list(maxit = 1000, reltol = 1e-10)) coef(res_rf) @ \subsection{Comments on models with panel data} The \pkg{gmm} package is not directly built to easily deal with panel data. However, it is flexible enough to make it possible in most cases. To see that, let us consider the following model (see \cite{wooldridge02} for more details): \[ y_{it} = x_{it} \beta + a_i + \epsilon_{it}\mbox{ for } i=1,...,N\mbox{ and }t=1,...,T, \] where $x_{it}$ is $1\times k$, $\beta$ is $k\times 1$, $\epsilon_{it}$ is an error term and $a_i$ is an unobserved component which is specific to individual $i$. If $a_i$ is correlated with $x_{it}$, it can be removed by subtracting the average of the equation over time, which gives: \[ (y_{it}-\bar{y}_i) = (x_{it}-\bar{x}_i) \beta + (\epsilon_{it}-\bar{\epsilon}_i) \mbox{ for } i=1,...,N\mbox{ and } t=1,...,T, \] which can be estimated by \code{gmm}. For example, if there are 3 individuals the following corresponds to the GMM fixed effects estimation: <>= y <- rbind(y1-mean(y1),y2-mean(y2),y3-mean(y3)) x <- rbind(x1-mean(x1),x2-mean(x2),x3-mean(x3)) res <- gmm(y~x,h) @ However, if $a_i$ is not correlated with $x_{it}$, the equation represents a random effects model. In that case, it is more efficient not to remove $a_i$ from the equation because of the information it carries about the individuals. The error terms are then combined in a single one, $\eta_{it}=(a_i + \epsilon_{it})$ to produce the linear model: \[ y_{it} = x_{it} \beta + \eta_{it} \] This model cannot be efficiently estimated by OLS because the presence of the common factor $a_i$ at each period implies that $\eta_{it}$ is serially correlated. However, GMM is well suited to deal with such specifications. The following will therefore produce a GMM random effects estimation: <>= y <- rbind(y1,y2,y3) x <- rbind(x1,x2,x3) res <- gmm(y~x,h) @ The package \pkg{plm} of \cite{plm} offers several functions to manipulate panel data. It could therefore be combined with \pkg{gmm} when estimating such models. It also offers a way to estimate them with its own GMM algorithm for panel data. \subsection{GMM and the sandwich package} In the \pkg{gmm} package, the estimation of the optimal weighting matrices are obtained using the \pkg{sandwich} package of \cite{zeileis06}. For example, the weighting matrix of the two-step GMM defined as: \[ W = \left[\lim_{n\rightarrow \infty} Var{(\sqrt{n}\bar{g})}\right]^{-1} \] is estimated as follows: <>= gt <- g(t0, x) V <- kernHAC(lm(gt~1),sandwich = FALSE) W <- solve(V) @ where $t0$ is any consistent estimate. As long as the optimal matrix is used, the covariance matrix of the coefficients can be estimated as follows: \[ (\hat{G}'W\hat{G})^{-1}/n \equiv (\hat{G}'\hat{V}^{-1}\hat{G})^{-1}/n, \] where $\hat{G}=d\bar{g}(\hat{\theta})/d\theta$ and $\hat{V}$ is obtained using \code{kernHAC()}. It is not a sandwich covariance matrix and is computed using the \code{vcov()} method included in \pkg{gmm}. However, if any other weighting matrix is used, say $W$, the estimated covariance matrix of the coefficients must then be estimated as follows: \[ (\hat{G}'W\hat{G})^{-1}\hat{G}'W\hat{V}W\hat{G}(\hat{G}'W\hat{G})^{-1}/n. \] A \code{bread()} and \code{estfun()} methods are available for \code{gmm} objects which allows to compute the above matrix using the \pkg{sandwich} package. The \code{bread()} method computes $(\hat{G}'W\hat{G})^{-1}$ while the \code{estfun()} method returns a $T\times q$ matrix with the $t^{th}$ row equals to $g(\hat{\theta}, x_t) W \hat{G}$. The \code{meatHAC()} method applied to the latter produces the right meat. Let us consider the example of section (\ref{ar}). Suppose we want to use the identity matrix to eliminate one source of bias, at the cost of lower efficiency. In that case, a consistent estimate of the covariance matrix is \[ (\hat{G}'\hat{G})^{-1}\hat{G}'\hat{V}\hat{G}(\hat{G}'\hat{G})^{-1}/n, \] which can be computed as: <<>>= print(res<-gmm(g4,x5t[,4:7],wmatrix="ident")) diag(vcovHAC(res))^.5 @ which is more robust than using \code{vcov()}: <<>>= diag(vcov(res))^.5 @ Notice that it is possible to fixe $W$. Therefore, the above results can also be obtained as: <<>>= print(res<-gmm(g4,x5t[,4:7], weightsMatrix = diag(5))) @ In this case, the choice of the type of GMM is irrelevant since the weighting matrix is fixed. \section{Generalized empirical likelihood} The GEL is a new family of estimation methods which, as GMM, is based on moment conditions. It follows \cite{owen01} who developed the idea of empirical likelihood estimation which was meant to improve the confidence regions of estimators. We present here a brief discussion on the method without going into too much details. For a complete review, see \cite{smith97}, \cite{newey-smith04} or \cite{anatolyev05}. The estimation is based on \[ E(g(\theta_0,x_i))=0, \] which can be estimated in general by \[ \tilde{g}(\theta) = \sum_{i=1}^n p_i g(\theta,x_i) =0, \] where $p_i$ is called the implied probability associated with the observation $x_i$. For the GEL method, it is assumed that $q>p$ because otherwise it would correspond to GMM. Therefore, as it is the case for GMM, there is no solution to $\bar{g}(\theta)=0$. However, there is a solution to $\tilde{g}(\theta)=0$ for some choice of the probabilities $p_i$ such that $\sum_i p_i=1$. In fact, there is an infinite number of solutions since there are $(n+q)$ unknowns and only $q+1$ equations. GEL selects among them the one for which the distance between the vector of probabilities $p$ and the empirical density $1/n$ is minimized. The empirical likelihood of \cite{owen01} is a special case in which the distance is the likelihood ratio. The other methods that belong to the GEL family of estimators use different metrics. If the moment conditions hold, the implied probabilities carry a lot of information about the stochastic properties of $x_i$. For GEL, the estimations of the expected value of the Jacobian and the covariance matrix of the moment conditions, which are required to estimate $\theta$, are based on $p_i$ while in GMM they are estimated using $1/n$. \cite{newey-smith04} show that this difference explains partially why the second order properties of GEL are better. Another difference between GEL and GMM is how they deal with the fact that $g(\theta,x_i)$ can be a conditionally heteroskedastic and weakly dependent process. GEL does not require to compute explicitly the HAC matrix of the moment conditions. However, if it does not take it into account, its estimators may not only be inefficient but may also fail to be consistent. \cite{smith01} proposes to replace $g(\theta,x_i)$ by: \[ g^w(\theta,x_i) = \sum_{s=-m}^m w(s)g(\theta,x_{i-s}) \] where $w(s)$ are kernel based weights that sum to one (see also \cite{kitamura-stutzer97} and \cite{smith97}). The sample moment conditions become: \begin{equation}\label{gel_mcond} \tilde{g}(\theta) = \sum_{i=1}^n p_i g^w(\theta,x_i) =0 \end{equation} The estimator is defined as the solution to the following constrained minimization problem: \begin{eqnarray} \hat{\theta}_n &=& \arg\min_{\theta,p_i} \sum_{i=1}^n h_n(p_i) ,\\ && \mbox{subject to } \\ && \sum_{i=1}^n p_ig^w(\theta,x_i) = 0 ~~\mbox{and} \label{const}\\ && \sum_{i=1}^n p_i=1, \end{eqnarray} where $h_n(p_i)$ has to belong to the following Cressie-Read family of discrepancies: \[ h_n(p_i) = \frac{[\gamma(\gamma+1)]^{-1}[(np_i)^{\gamma+1}-1]}{n} . \] \cite{smith97} showed that the empirical likelihood method (EL) of \cite{owen01} ($\gamma=0$) and the exponential tilting of \cite{kitamura-stutzer97} ($\gamma=-1$) belong to the GEL family of estimators while \cite{newey-smith04} show that it is also the case for the continuous updated estimator of \cite{hansen-heaton-yaron96} ($\gamma=1$). What makes them part of the same GEL family of estimation methods is the existence of a dual problem which is defined as: \begin{equation}\label{gel_obj} \hat{\theta} = \arg\min_{\theta}\left[\max_{\lambda} P_n(\theta,\lambda) = \frac{1}{n}\sum_{i=1}^n\rho\left(\lambda'g^w(\theta,x_i)\right)\right] \end{equation} where $\lambda$ is the Lagrange multiplier associated with the constraint (\ref{const}) and $\rho(v)$ is a strictly concave function normalized so that $\rho'(0)=\rho''(0)=-1$. It can be shown that $\rho(v)=\ln{(1-v)}$ corresponds to EL , $\rho(v)=-\exp{(v)}$ to ET and to CUE if it is quadratic. The equivalence of the primal and dual problems can easily be verified by showing that they both share the same following first order conditions: \begin{equation}\label{lam} \sum_{i=1}^n p_i g^w(\theta,x_i) = 0, \end{equation} \begin{equation} \sum_{i=1}^n p_i \lambda'\left(\frac{\partial g^w(\theta,x_i)}{\partial \theta}\right) = 0 , \end{equation} with \begin{equation} p_i = \frac{1}{n}\rho'\left(\lambda'g^w(\theta,x_i)\right) . \end{equation} Equation (\ref{gel_obj}) represents a saddle point problem. The solution is obtained by solving simultaneously two optimization problems. We can solve for $\theta$ by minimizing $P_n(\theta,\lambda(\theta))$, where $\lambda(\theta)$ is the solution to $\arg\max_\lambda P_n(\theta,\lambda)$ for a given $\theta$. Therefore an optimization algorithm needs to be called inside the $P_n(\theta,\lambda)$ function. It makes the GEL very hard to implement numerically. For example, \cite{guggenberger08}, who analyzes the small sample properties of GEL, uses an iterative procedure based on the Newton method for $\lambda$ and a grid search for $\theta$ in order to confidently reach the absolute minimum. Using such iterative procedures for $\lambda$ makes the problem less computationally demanding and does not seem to affect the properties of the estimator of $\theta_0$. Indeed, \cite{guggenberger-hahn05} show that going beyond two iterations for $\lambda$ does not improve the second order asymptotic properties of the estimator of $\theta_0$. The function \code{gel} offers two options. By default, $\lambda(\theta)$ is obtained by the following iterative method: \[ \lambda_l = \lambda_{l-1} - \left[\frac{1}{n}\sum_{i=1}^n \rho''(\lambda_{l-1}'g_t)g_tg_t'\right]^{-1}\left[\frac{1}{n} \sum_{i=1}^n \rho'(\lambda_{l-1}'g_i) g_i \right] \] starting with $\lambda=0$, which corresponds to its asymptotic value. The algorithm stops when $\|\lambda_l-\lambda_{l-1}\|$ reaches a certain tolerance level. The second option is to let \code{optim} solve the problem. Then, as for \code{gmm}, the minimization problem is solved either by \code{optim}, \code{nlminb} or \code{constrOptim}. In order to test the over-identifying restrictions, \cite{smith04} proposes three tests which are all asymptotically distributed as a $\chi^2_{q-p}$. The first one is the J-test: \[ n \bar{g}^w(\hat{\theta})'[\hat{\Omega}(\hat{\theta})]^{-1}\bar{g}^w(\hat{\theta}), \] the second is a Lagrange multiplier test (LM): \[ LM = n\hat{\lambda}'\hat{\Omega}(\hat{\theta})\hat{\lambda} \] and the last one is a likelihood ratio test (LR): \[ LR = 2\sum_{i=1}^n\left[ \rho\left(\hat{\lambda}'g^w(\hat{\theta},x_i)\right) - \rho(0)\right] \] \section{GEL with R} \subsection{Estimating the parameters of a normal distribution} For this example, we can leave the option \code{smooth} at its default value, which is \code{FALSE}, because of the iid properties of $x$. A good starting value is very important for GEL. The best choice is the sample mean and the standard deviation. By default the option \code{type} is set to \code{EL}. The same methods that apply to \code{gmm} objects, can also be applied to \code{gel} objects. <<>>= tet0 <- c(mu = mean(x1), sig = sd(x1)) res_el <- gel(g1,x1,tet0) summary(res_el) @ Each Lagrange multiplier represents a shadow price of the constraint implied by moment condition. A binding constraint will produce a multiplier different from zero. Therefore, its value informs us on the validity of the moment condition. In the above results, the $\lambda$'s are significantly different from zero which would normally suggest that the moment conditions associated with them are violated. As a result, the LM test also rejects the null hypothesis since it is based on the $\lambda$'s. Notice that \code{summary} reports two convergence codes, one for $\lambda$ et another for $\theta$. The ET and CUE estimates can be obtained as follows: <<>>= res_et <- gel(g1,x1,tet0,type="ET") coef(res_et) @ <<>>= res_cue <- gel(g1,x1,tet0,type="CUE") coef(res_cue) @ A fourth method is available which is called the exponentially tilted empirical likelihood (ETEL) and was proposed by \cite{schennach07}. However, it does not belong to the family of GEL estimators. It solves the problem of misspecified models. In such models there may not exist any pseudo value to which $\hat{\theta}$ converges as the sample size increases. ETEL uses the $\rho()$ of ET to solve for $\lambda$ and the $\rho()$ of EL to solve for $\theta$. \cite{schennach07} shows that ETEL shares the same asymptotic properties of EL without having to impose restrictions on the domain of $\rho(v)$ when solving for $\lambda$. <<>>= res_etel <- gel(g1,x1,c(mu=1,sig=1),type="ETEL") coef(res_etel) @ The type ETEL is experimental for now. Although it is supposed to be more stable because no restrictions are required to solve for $\lambda$, once we substitute $\lambda(\theta)$ in the EL objective function to estimate $\theta$, we still need to restrict $\lambda'g_t$ to avoid having NA's. The solution used in gel() is to obtain $\lambda(\theta)$ with \code{constrOptim} with the restriction $\lambda'gt > 1$ even if it is not required by ET ($\rho(v)=-\exp{(v)}$). It is however sensitive to starting values. That's the reason why we used different ones above. \subsection{Estimating the AR coefficients of an ARMA process} Because the moment conditions are weakly dependent, we need to set the option \code{smooth=TRUE}. Before going to the estimation procedure, we need to understand the relationship between the smoothing kernel and the HAC estimator. The reason why we need to smooth the moment function is that GEL estimates the covariance matrix of $\bar{g}(\theta,x_t)$, as if we had iid observations, using the expression $(1/T)\sum_{t=1}^T(g_tg_t')$. We can show that substituting $g_t$ by $g^w_t$ in this expression results in an HAC estimator. However, the relationship between the smoothing kernel and the kernel that appears in the HAC estimator is not obvious. For example, we can show that if the smoothing kernel is Truncated, then the kernel in the HAC estimator is the Bartlett. Let us consider the truncated kernel with a bandwidth of 2. This implies that $w(s)=1/5$ for $|s|\leq 2$ and 0 otherwise. Then, the expression for the covariance matrix becomes: \begin{eqnarray*} \frac{1}{T}\sum_{t=1}^T g^w_t (g^w_t)' &=& \frac{1}{T}\sum_{t=1}^T \left( \sum_{s=-2}^2 \frac{1}{5} g_{t+s} \right) \left( \sum_{l=-2}^2 \frac{1}{5} g_{t+l}' \right),\\ &=& \frac{1}{25}\sum_{s=-2}^2\sum_{l=-2}^2\left( \frac{1}{T}\sum_{t=1}^T g_{t+s}g_{t+l}' \right),\\ &=& \frac{1}{25}\sum_{s=-2}^2\sum_{l=-2}^2\hat{\Gamma}_{s-l} ,\\ &=& \frac{1}{25}\sum_{s=-4}^4 (5-|s|)\hat{\Gamma}_{s},\\ &=& \sum_{s=-4}^4 \left(\frac{1}{5}-\frac{|s|}{25}\right)\hat{\Gamma}_{s},\\ &=& \sum_{s=-T+1}^{T-1} k_5(s) \hat{\Gamma}_{s}, \end{eqnarray*} where $k_5(s)$ is the Bartlett kernel with a bandwidth of 5 defined as \[ K_5(s) = \left\{ \begin{array}{ccc} 1/5 - |s|/25 & \mbox{if}&|s|\leq 5\\ 0 &\mbox{otherwise}& \end{array}\right. . \] See \cite{smith01} for more details. The model will therefore be estimated using the kernel Truncated. The GMM estimate with the identity matrix is selected as starting value. <<>>= tet0 <- gmm(g4,x=x5t[,4:7],wmatrix="ident")$coef res <- gel(g4,x=x5t[,4:7],tet0,smooth=TRUE,kernel="Truncated") summary(res) @ The \code{specTest} method applied to a \code{gel} object computes the three tests proposed by \cite{smith04}: <<>>= specTest(res) @ The \code{plot} method produces one more graphics when applied to a \code{gel} object. It shows the implied probabilities along with the empirical density $(1/T)$. It allows to see which observations have more influence: <>= plot(res,which=4) @ We can also select \code{optfct="nlminb"} or \code{constraint=TRUE} in order to impose restrictions on the coefficients. The former sets lower and upper bounds for the coefficients, while the latter imposes linear constraints using the algorithm \code{constrOptim}. In this example we want the sum of the AR coefficients to be less than one. \code{constrOptim} imposes the constraint $ui\theta-ci \geq 0$. Therefore, we need to set: <>= ui=cbind(0,-1,-1) ci <- -1 @ and rerun the estimation as <>= res <- gel(g4,x=dat5[,4:7],tet0,smooth=TRUE,kernel="Truncated", constraint=TRUE, ui=ui,ci=ci) @ The result, which is not shown, is identical. They are also many option to compute the $\lambda$'s. From version 1.4-0, the default algorithm is \code{nlminb} because the gradient and Hessian matrix are well defined analytically which speed up convergence. The other choices are \code{optim} or "iter" which uses a Newton method to solve the first order condition. If the option optlam is set to "optim" and the type is EL, \code{contrOptim} is selected automatically to restrict $\lambda'g_t$ to be less than 1. It is also possible to change the default values in the control list of the optimizer with the option LambdaControl (see \code{?nlminb} or \code{?optim}). Here are some examples: <>= res <- gel(g4,x=dat5[,4:7],tet0,smooth=TRUE, optlam="optim") res <- gel(g4,x=dat5[,4:7],tet0,smooth=TRUE, optlam="optim", LambdaControl=list(trace=TRUE, parscale=rep(.1,5))) @ \subsection{Comments} The GEL method is very unstable numerically. This fact has been reported many times in the recent literature. The method has been included in the \pkg{gmm} package because recent theoretical evidence suggests that it may produce better estimators than GMM. Because \proglang{R} is an open source statistical package, it offers a good platform to experiment with numerical properties of estimators. \section{Conclusion} The \pkg{gmm} package offers complete and flexible algorithms to estimate models by GMM and GEL. Several options are available which allow to choose among several GMM and GEL methods and many different HAC matrix estimators. In order to estimate the vector of parameters, users can select their preferred optimization algorithm depending on whether inequality constraints are required. For the vector of Lagrange multiplier of GEL, it can be computed by an iterative procedure based on the Newton method which increases the speed of convergence and reduce the instability of the estimation procedure. It could then easily be used by those who are interested in studying the numerical properties of both methods. The package also offers an interface which is comparable to the least squares method \code{lm}. Linear model are estimated using formula and methods such as \code{summary}, \code{vcov}, \code{coef}, \code{confint}, \code{plot}. \code{residuals} or \code{fitted} are available for the objects of class \code{gmm} and \code{gel}. \proglang{R} users will therefore have little difficulty in using the package. \section{Computational Details} The package \pkg{gmm} is written entirely in \proglang{R} and S3-classes with methods are used. It can be found on the comprehensive \proglang{R} archive network (CRAN,\url{http://CRAN.R-project.org/}). It is also hosted on R-Forge (\url{http://r-forge.r-project.org/projects/gmm}). It is shipped with a NAMESPACE. The version used to produce this paper is 1.4-0. It depends on the \pkg{sandwich} package of \cite{zeileis06}, which is used to compute de HAC matrices. The packages \pkg{car} (\cite{car}), \pkg{mvtnorm} (\cite{mvtnorm}), \pkg{stabledist} (\cite{stabledist}), \pkg{MASS} (\cite{MASS}), \pkg{timeDate} (\cite{timeDate}) and \pkg{timeSeries} (\cite{timeSeries}) are suggested in order to reproduce the examples. \section*{Acknowledgments} I am grateful to the three anonymous referees of the Journal of Statistical Software for great comments on the paper and the package. I also want to thank Achim Zeileis for his suggestions regarding the way the \pkg{sandwich} package can be used within \code{gmm}. \bibliography{empir} \end{document} gmm/NEWS0000644000176200001440000004104113460072542011534 0ustar liggesusersChanges in version 1.6-2 o Fixed a bug with iterative GMM from the previous version o Added the option onlyCoefficients=FALSE to gmm() and gel(). If set to TRUE, no covariance matrix is computed. Only the coefficients objective and the lambdas (for gel only) are returned. o In previous versions, the HAC weighting matrix for linear models was computed without specifying that the first column of the instrument matrix was a column of ones (with its name being "(Intercept)"). It makes a difference when computing the bandwidth with bwNeweyWest. The new version, takes it into account. It is not possible to obtain the same sandwich covariance matrix with gmm and OLS. o In previous versions, the weighting matrix and, as a result, the standard errors were based on the small sample adjusted vcovHAC for weakly dependent processes. The adjustment is not justified for GMM. The option adjust=FALSE is therefore added to vcovHAC in .myKernHAC() o Added a method getImpProb, which extract the implied probabilities. It allows for negative probabilities as it often happens with CUE o lambda for CUE is solved analytically (it is minus the projection of gt on a vector of ones). The option RCue for optlam can be used to restrict the implied probabilities to be non-negative. Changes in version 1.6-1 o Added the function bwWilhelm() to compute the optimal bandwidth of Wilhelm(2015). o The argument $vcov of tsls object is the Classical covariance matrix. vcov() must be used to obtain a different covariance o Changed the default value of prewhite to 1 in gmm() because it is recommended for HAC estimation o gmm with optfct="optimize" was generating an error message. It has been fixed o A new set of functions to estimate the average treatment effect by GEL have been added. See ?ATEgel o Some other minor bugs that were reported by users were fixed. Changes in version 1.6-0 o tsls is now a real 2-stage least square. Before it was a 2-step optimal GMM with HCCM weighting matrix. o Fixed a typo in FinRes.R file. It was preventing to compute the proper vcov matrix for a very special case (fixed weights) o Added Helinger distance and Exponentially tilted Helinger estimator to gel() o Fixed the LR test of ETEL in gel() o Cleaned a lot of the codes. In particular, a single moment function and its gradiant function is used now. There is also a common weighting matrix generator function. The main goal is to make it more flexible and give the possibility of creating weighting matrix based on other assumption such as clustering. o For GEL with smooth=TRUE, the weights were not fixed which was creating problems of convergence. o Add the option of fixing the value of some coefficient in gel as it as already the case for gmmm. o It is no possible to provide gmm with the gradiant function when constrOptim is used. o There is now an evalGmm() function to create a gmm object with a given fixed vector. Not estimation is done, but the bandwidth and weights for the HAC estimator are generated. It is possible to give a different vector os parameters for the moment function and the weighting matrix. o There is also an evalGel(). You fix the parameters and only the lambda are computed. o Fixed NAMESPACE to avoid the notes given by CRAN. o Modified getDat to allow for ~1 as instruments. Useful for inference on the mean using empirical likelihood with gel(x~1,~1). o The Lambdas and specTest from gel are printed even if the model is just identified. It is consitent with gmm which prints the j-test for just identified models. The reason if to allow evalGel to generate the Lamdbas for testing purpose. o confint.gxx() has been modified. It now create an object and a print method has been created as well. o confint.gel includes the possibility of building a confidence interval using the inversion of one of the three specification tests. It is therefore possible de construct an Empirical Likelihood confidence interval as described in Owen 2001. See manual. o On the process to create a sysGmm for system og linear equations. The function sysGmm() will do the job. Not yet working. o getDat is modified so that the name of the dependent variable is the one included in the formula. o A set of functions have been added to estimate system of linear equations (this is a beta version not tested yet). o A set of labor data as been added to test the sysGmm function o A panel of Macro data has been added. Changes in version 1.5-2 o Added constrOptim to nonlinear gmm() with fixed W Changes in version 1.5-1 o Added importFrom element o Added element df.residual to gmm objects to allow F-type linearHypothesis o Removed the unnecessary ls estimations in the first stage 2SLS Changes in version 1.5-0 o Thanks to Eric Zivot. Many improvements are based on his testings of the package. o Fixed many bugs for the case in which vcov is set to iid o Added options to tsls(). There are options for different sandwich matrix when summary is called Changes in version 1.4-6 o Added the possibility of providing data.frame() with formula to gel() Changes in version 1.4-5 o Replaced the deprecated function real(), is.real() and as.real() by double() Changes in version 1.4-4 o Fixed an instability problem when the model is just identified and wmatrix is set to "ident" Changes in version 1.4-3 o Added the option "constrOptim" to optfct for nonlinear models o Added the option "eqConstFullVcov" to gmm() to allow the computation the covariance matrix of all coefficients including the constrained ones (see ?gmm for details and examples). o Removed the dependency on fBasics and replaced it with stabledist Changes in version 1.4-2 o Bugs fixed when running gel() with smooth=T and g() begina nonlinear function o Now, print.gel() and print.summary.gel() repports the bandwidth when smooth=T Changes in version 1.4-0 o The method for GMM-CUE has been modified. Before, the weights for the kernel estimation of the weighting matrix were flexible inside the optimizer which was making the algorithm long and unstable. It is now fixed using either the starting values provided by the user (for linear cases) or the first step GMM. o You can now trace the convergence of the iterative GMM with the option traceIter=T o The weights for the kernel are also fixed for iter-GMM. It is faster and I don't think it should change at each iteration. I am open to comments on that. o A function tsls() has been added to facilitate the estimation by 2SLS. The user does not have to worry about selecting the right gmm options o summary and print Methods have been added for tsls objects. The summary prints the f-statistics of the first stage LS o SmoothG for GEL uses now the kernapply() function which is more efficient. o Something the GMM converge to weird values which is sometimes caused by bad first step estimates used to compute the weighting matrix. Summary() prints the initial values to have more infortmation when convergence fails. o There was a bug in specTest() for GEL. The degrees of freedom for the J-test were wrong. It is fixed. o For GEL type CUE the implied probabilities are computed according to Antoine, Bonnal, and Renault (2007) which solves the problem of negative probabilities. o The data file Finance has been resaved which implies that the package depends now on R version ­2.10.0 and higher o The function rho() had been changed to .rho() because it is not useful outside the gel() function o The function getLamb() has been modified. It is now more efficient. The default for the gel() option optlam is now nlminb. The gradient and the hessian is provided which makes it much faster to solve for lambda. The argument of the function also changed. Instead of providing the function g() and the vector of coefficients, we provide the matrix gt. I may be useful to call the function sometimes to solve for lambda and it is easier that way. o The choice "iter" from the option optlam is kept for cases in which the optimizer fails to solve for lambda. It is often the case when type="ETEL" is chosen which tends to produce NA's. o For GEL of type "EL" and optfct="optim", the algorith constrOptim() is launched to make sure lambda'gt is always greater than 1 and avoid NA's when computing log(1-lambda'gt). The algorithm checks first with optim(), and swith to constrOptim() is optim() fails o Sometimes, problems happen in GMM estimation because of the bad first step estimates used to compute the weighting matrix. The first step estimates are usually computed using the identity matrix. The vector is now printed for better control. o Cleaned the codes. The data are in object$dat and we can get the moment matrix by calling gt <- object$g(object$coef,object$dat) for linear and non-linear models, where object is of class gmm. o We can now impose equality constraints of the type theta_i=c_i with the option eqConst=. See help(gmm) which includes examples. o The K statistics for weakly identified models of Kleiberben (2005) has been added. See ?KTest. o (gmm only) The bandwidth for the HAC estimation is set by the first step estimate. Its value, along with the weights, is saved in attr(obj$w0,"Spec"). If the user is not satisfied with this automatic bw selection, bw can be set to any fixed number when calling gmm(). See ?gmm for more details and examples. o The function gmmWithConst() reestimate an unrestricted model by imposing linear constraints, using the same specification. It also use the same bandwidth for the estimation of the HAC matrix o A regularized version of GEL based on Chausse(2011) is now implemented. The Lagrange multiplier can be regularized by setting the option "alpha=" to a number. The regularization can stabilize the GEL estimator. A preliminary paper will be available on my web site that analyze the properties of such modification. A method for selecting alpha will be implemented in future version. Changes in version 1.3-8 o A bug was found in the computation of linear GMM. The weighting matrix was not use properly. It is now fixed. Changes in version 1.3-7 o Until now there was no way to know whether optim or nlminb has converged in case of nonlinear GMM. The convergence code is now printed by print.gmm and the message and function evaluation by print.summary.gmm o For cases in which the weighting matrix is provided, you have the choice of assuming that it is just a fixed matrix not necessary equal to the inverse of the covariance matrix of the moment conditions (the default) or setting vcov="TrueFixed" if it is the inverse of the estimated covariance matrix. o If gradv is provided, it is not only used to compute the covariance matrix. It is also used to compute the gradiant of the objective function when the method is set to "CG" or "BFGS" in optim. For CUE, it is only used for the first step estimate because the gradiant can hardly be obtained analytically in that case. Changes in version 1.3-6 o Bug fixed when estimating model with timeSeries objects o When NA were present in the data and the instruments, gmm() was not working when omitting them created different dimension. If by chance it created the same dimensions, the data were not correctly aligned. Now it is aligned and the observations associated with the NA's are removed. When it happens, a warning message is displayed. Changes in version 1.3-5 o Bug fixed when estimating linear model with Z=X (OLS with robust matrix) Changes in version 1.3-4 o It is now possible to enter the instruments in x either as a matrix (like before) or as a formula. See details and examples in gmm help o A data argument is added to the gmm function. Therefore, it is no longer required that the variables in data.frames be attached before using gmm(). You just need to add the option data=your_data.frame. o 2SLS is now implemented in a more efficient way for linear models. Just add the option vcov="iid". An example as been included for that case Changes in version 1.3-3 o It is a very small modification to avoid errors in the installation. The function linear.hypothesis of the car package is now deprecated. They have be changed to linearHypothesis. Changes in version 1.3-2 o The functions HAC, weightsAndrews2, bwAndrews2 and all the others to compute the HAC matrix have been removed. The sandwich package is now used to compute these matrices. o The option centeredVcov has beed added to the gmm function. It allows to compute the covariance matrix using a centered moment function. o The option weightsMatrix has beed added to the gmm function. It allows to fixe the matrix of weights. o The methods bread() and estfun() are now available for gmm objects. It allows to compute a sandwich covariance matrix which is required if the weighting matrix is not the optimal one. o The results are obtained even if the covariance matrix cannot be computed o The vignette has been updated. Changes in version 1.3-0 o The method "getModel", "momentEstim" is now used also for the gel procedure. o The GEL procedure as been modified. For the case in which the option smooth=TRUE is used, the appropriate scaling parameters have been added following Smith(2004) in the estimation, the covariance matrix of the Lagrange multiplier and the tests of over-identifying restrictions. In this case, only the kernels Truncated and Bartlett are available. For the former, the optimal bandwidth of Andrews(91) for Bartlett is used and for the latter, it is the bandwidth proposed for the Parzen. See Smith(2004) for more details. Also, the option vcov as been removed since it is irrelevant for GEL. By setting smooth to FALSE, it is implied that the data are iid. Changes in version 1.2-0 The following modifications were suggested by the reviewers of JSS. These changes will not be noticed by users. They are intended to make it easier for developpers to contribute. o The new method specTest computes the specification tests from objects created by "gmm" or "gel" o The structure of the package has been modified in order to make it more flexible. The changes include: o The new method "getModel" prepares the estimation. It creates what is required by the method "momentEstim". o The method "momentEstim" estimates the model defined by "getModel" o The method "FinRes" finalizes the estimation when it is needed. For now, the method is used only by "gmm" to compute the final resutls. o Some bugs are fixed o The Vignette has been modified a little and the errors in the manual corrected. Changes in version 1.1-0 This is a major upgrade of the package. It follows great suggestions from two anonymous reviewers from JSS. The package as been modified so that it is now very close to lm and glm. o The name of the vector of parameters is now "coefficients" instead of "par" o The following methods are now available (see lm): fitted, residuals, vcov, coef, confint o There are now print methods for gmm, gel and summary.gel and summary.gmm o These modifications allows to use linear.hypothesis from the car package so the function lintest is no longer needed and as been removed o The following are now available from gmm and gel objects when g is a formula: residuals, fitted.values, model.frame, terms, model, the response and model matrix o Because the presence of the confint method, the option "interval" as been removed from the summary methods o A new plot method is available for both gmm and gel objects. It is a beta version. Comments and suggestions are welcome. o If there is only one instrument it can be provided as a vector. It does not need to be a matrix anymore. o It is now possible to select nlminb as optimizer. It allows to put restriction on the parameter space. o The package no longer depends on mvtnorm. It is a suggested package as it is only required for examples. o The packages car and fBasics (and therefore MASS, timeDate and timeSeries) are now suggested for examples in the vignette. o The new function charStable has been added. It computes the characteristic function of a stable distribution. An example is shown in the vignette o There was a bug when trying to estimate a model by ETEL with gel and numerical computation of lambda. It is fixed. Thanks to Márcio Laurini. o The vignette as beed rewritten. Changes in Version 1.0-7 o Modified some functions to remove dependencies on tseries and sandwich packages o Convert de Finance Data to data frame format Changes in Version 1.0-6 o Some bugs fixed. Thanks to Justinas Brazys Changes in Version 1.0-4 o documentation enhancements o Added finance data for applied examples Changes in Version 1.0-3 o Some bugs fixed Changes in Version 1.0-2 o Added a new example for better understanding. gmm/R/0000755000176200001440000000000013571761362011246 5ustar liggesusersgmm/R/Methods.sysGmm.R0000644000176200001440000001074612623157321014251 0ustar liggesusers# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ summary.sysGmm <- function(object, ...) { z <- object se <- sqrt(diag(z$vcov)) k <- attr(z$dat, "k") if (attr(z$dat, "sysInfo")$commonCoef) { seList <- rep(list(se), length(z$dat)) } else { seList <- list() for (i in 1:length(z$dat)) { seList[[i]] <- se[1:k[[i]]] se <- se[-(1:k[[i]])] } } par <- z$coefficients tval <- lapply(1:length(z$dat), function(i) par[[i]]/seList[[i]]) ans <- list(met=z$met,kernel=z$kernel,algo=z$algo,call=z$call) names(ans$met) <- "GMM method" names(ans$kernel) <- "kernel for cov matrix" ans$coefficients <- lapply(1:length(z$dat), function(i) cbind(par[[i]],seList[[i]], tval[[i]], 2 * pnorm(abs(tval[[i]]), lower.tail = FALSE))) ans$stest <- specTest(z) ans$algoInfo <- z$algoInfo ans$initTheta <- object$initTheta for (i in 1:length(z$dat)) { dimnames(ans$coefficients[[i]]) <- list(names(z$coefficients[[i]]), c("Estimate", "Std. Error", "t value", "Pr(>|t|)")) names(ans$initTheta[[i]]) <- names(z$coefficients[[i]]) } ans$specMod <- object$specMod ans$bw <- attr(object$w0,"Spec")$bw ans$weights <- attr(object$w0,"Spec")$weights ans$Sysnames <- names(z$dat) ans$met <- attr(object$dat, "sysInfo")$typeDesc if(object$infVcov != "HAC") ans$kernel <- NULL class(ans) <- "summary.sysGmm" ans } print.summary.sysGmm <- function(x, digits = 5, ...) { cat("\nCall:\n") cat(paste(deparse(x$call), sep="\n", collapse = "\n"), "\n\n", sep="") cat("Method\n", x$met,"\n\n") cat("\n") if( !is.null(x$kernel)) { cat("Kernel: ", x$kernel) if (!is.null(x$bw)) cat("(with bw = ", round(x$bw,5),")\n\n") else cat("\n\n") } cat("Coefficients:\n") m <- length(x$coefficients) for (i in 1:m) { cat(x$Sysnames[i], "\n") cat("#########\n") #print.default(format(x$coefficients[[i]], digits=digits), # print.gap = 2, quote = FALSE) printCoefmat(x$coefficients[[i]], digits=digits, ...) cat("\n") } cat(x$stest$ntest,"\n") print.default(format(x$stest$test, digits=digits), print.gap = 2, quote = FALSE) cat("\n") if(!is.null(x$initTheta)) { cat("Initial values of the coefficients\n") for (i in 1:m) { cat(x$Sysnames[i], "\n") print(x$initTheta[[i]]) } cat("\n") } cat(x$specMod) if(!is.null(x$algoInfo)) { cat("#############\n") cat("Information related to the numerical optimization\n") } if(!is.null(x$algoInfo$convergence)) cat("Convergence code = ", x$algoInfo$convergence,"\n") if(!is.null(x$algoInfo$counts)) { cat("Function eval. = ",x$algoInfo$counts[1],"\n") cat("Gradian eval. = ",x$algoInfo$counts[2],"\n") } if(!is.null(x$algoInfo$message)) cat("Message: ",x$algoInfo$message,"\n") invisible(x) } print.sysGmm <- function(x, digits=5, ...) { cat("Method\n", attr(x$dat, "sysInfo")$typeDesc,"\n\n") cat("Objective function value: ",x$objective,"\n\n") for (i in 1:length(x$coefficients)) { cat(names(x$dat)[[i]], ": \n") print.default(format(coef(x)[[i]], digits=digits), print.gap = 2, quote = FALSE) } cat("\n") if(!is.null(x$algoInfo$convergence)) cat("Convergence code = ", x$algoInfo$convergence,"\n") cat(x$specMod) invisible(x) } gmm/R/gel.R0000644000176200001440000005103513571757641012151 0ustar liggesusers# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ .rho <- function(x, lamb, derive = 0, type = c("EL", "ET", "CUE", "HD", "ETEL", "ETHD", "RCUE"), k = 1) { type <- match.arg(type) if (type == "RCUE") type <- "CUE" gml <- x%*%c(lamb)*k if (derive == 0) { if (type == "EL") { if (any(gml>=1)) stop("Computation of Lambda fails because NAs produced by log(1-gt*l)") rhomat <- log(1 - gml) } if (type == "ET") rhomat <- -exp(gml) if (type == "CUE") rhomat <- -gml -0.5*gml^2 if (type == "HD") rhomat <- -2/(1-gml/2) if (type == "ETEL") { w <- -exp(gml) w <- w/sum(w) rhomat <- -log(w*NROW(gml)) } if (type == "ETHD") { w <- -exp(gml) w <- w/sum(w) rhomat <- (sqrt(w)-1/sqrt(NROW(gml)))^2 } } if (derive==1) { if (type == "EL") rhomat <- -1/(1 - gml) if (type == "ET") rhomat <- -exp(gml) if (type == "CUE") rhomat <- -1 - gml if (type == "HD") rhomat <- -1/((1-gml/2)^2) if (any(type == c("ETEL","ETHD"))) rhomat <- NULL } if (derive==2) { if (type == "EL") rhomat <- -1/(1 - gml)^2 if (type == "ET") rhomat <- -exp(gml) if (type == "CUE") rhomat <- -rep(1,nrow(x)) if (type == "HD") rhomat <- -1/((1-gml/2)^3) if (any(type == c("ETEL","ETHD"))) rhomat <- NULL } return(c(rhomat)) } .getCgelLam <- function(gt, l0, type = c('EL', 'ET', 'CUE', "HD"), method = c("nlminb", "optim", "constrOptim"), control=list(), k = 1, alpha = 0.01) { type <- match.arg(type) method <- match.arg(method) fct <- function(l, X) { r1 <- colMeans(.rho(gt,l,derive=1,type=type,k=k)*X) crossprod(r1) + alpha*crossprod(l) } Dfct <- function(l, X) { r2 <- .rho(X,l,derive=2,type=type,k=k) r1 <- .rho(X,l,derive=1,type=type,k=k) H <- t(X*r2)%*%X/nrow(X) 2*H%*%colMeans(r1*X) + 2*alpha*l } if (method == "nlminb") res <- nlminb(l0, fct, Dfct, X = gt, control = control) if (method == "optim") res <- optim(l0, fct, Dfct, X = gt, method="BFGS", control = control) if (method == "constrOptim") { ci <- -rep(1,nrow(gt)) res <- constrOptim(rep(0,ncol(gt)),fct,Dfct,-gt,ci,control=control,X=gt) } if (method == "optim") { conv <- list(convergence = res$convergence, counts = res$counts, message = res$message) } else { conv <- list(convergence = res$convergence, counts = res$evaluations, message = res$message) } return(list(lambda = res$par, convergence = conv, obj = mean(.rho(gt,res$par, derive=0,type=type,k=k)) - .rho(1,0, derive=0,type=type,k=k))) } .Wu <- function(gt, tol_lam = 1e-8, maxiterlam = 50, K=1) { u <- as.matrix(gt) n=length(nrow(u)) M=rep(0,ncol(u)) dif=1 tol=tol_lam k=0 while(dif>tol & k<=maxiterlam) { D1=t(u)%*%((1/(1+u%*%M))*rep(1,n)) DD=-t(u)%*%(c((1/(1+u%*%M)^2))*u) D2=solve(DD,D1,tol=1e-40) dif=max(abs(D2)) rule=1 while(rule>0) { rule=0 if(min(1+t(M-D2)%*%t(u))<=0) rule=rule+1 if(rule>0) D2=D2/2 } M=M-D2 k=k+1 } if(k>=maxiterlam) { M=rep(0,ncol(u)) conv = list(convergence=1) } else { conv = list(convergence=0) } return(list(lambda = c(-M), convergence = conv, obj = mean(.rho(gt,-M,derive=0,type="EL",k=K)))) } .Wu2 <- function(gt, tol_lam = 1e-8, maxiter = 50, K = 1) { gt <- as.matrix(gt) res <- .Fortran(F_wu, as.double(gt), as.double(tol_lam), as.integer(maxiter), as.integer(nrow(gt)), as.integer(ncol(gt)), as.double(K), conv=integer(1), obj=double(1), lambda=double(ncol(gt))) list(lambda=res$lambda, convergence=list(convergence=res$conv), obj = res$obj) } .CUE_lam <- function(gt, K=1) { q <- qr(gt) n <- nrow(gt) l0 <- -qr.coef(q, rep(1,n)) conv <- list(convergence=0) list(lambda = l0, convergence = conv, obj = mean(.rho(gt,l0,derive=0,type="CUE",k=K))) } .CUE_lamPos <- function(gt, K=1, control=list()) { getpt <- function(gt,lam) { gl <- c(gt%*%lam) pt <- 1 + gl pt/sum(pt) } maxit <- ifelse("maxit" %in% names(control), control$maxit, 50) res <-.CUE_lam(gt, K) n <- nrow(gt) i <- 1 pt <- getpt(gt, res$lambda) w <- pt<0 while (TRUE) { gt2 <- gt[!w,] n1 <- nrow(gt2) if (n1 == n) break res <- try(.CUE_lam(gt2), silent=TRUE) if (i > maxit) return(list(lambda=rep(0,ncol(gt)), obj=0, pt=rep(1/n,n), convergence=list(convergence=1))) if (any(class(res) == "try-error")) return(list(lambda=rep(0,ncol(gt)), obj=0, pt=rep(1/n,n), convergence=list(convergence=2))) pt[!w] <- getpt(gt2, res$lambda) pt[w] <- 0 if (all(pt>=0)) break i <- i+1 w[!w] <- pt[!w]<0 } n0 <- n-n1 res$obj <- res$obj*n1/n + n0/(2*n) res } .CUE_lamPos2 <- function(gt, K=1, control=list()) { gt <- as.matrix(gt) n <- nrow(gt) q <- ncol(gt) maxit <- ifelse("maxit" %in% names(control), control$maxit, 50) res <- try(.Fortran(F_lamcuep, as.double(gt), as.integer(n), as.integer(q), as.double(K), as.integer(maxit),conv=integer(1), lam=double(q),pt=double(n), obj=double(1) ), silent=TRUE) if (any(class(res) == "try-error")) return(list(lambda=rep(0,q), obj=0, pt=rep(1/n,n), convergence=list(convergence=3))) list(lambda=res$lam, obj=res$obj, pt=res$pt, convergence=list(convergence=res$conv)) } getLamb <- function(gt, l0, type = c('EL', 'ET', 'CUE', "ETEL", "HD", "ETHD", "RCUE"), tol_lam = 1e-7, maxiterlam = 100, tol_obj = 1e-7, k = 1, method = c("nlminb", "optim", "iter", "Wu"), control=list()) { method <- match.arg(method) type <- match.arg(type) gt <- as.matrix(gt) if (method == "Wu" & type != "EL") stop("Wu (2005) method to compute Lambda is for EL only") if (method == "Wu") return(.Wu2(gt, tol_lam, maxiterlam, k)) if (type == "CUE") return(.CUE_lam(gt, k)) if (type == "RCUE") return(.CUE_lamPos2(gt, k, control)) if (method == "iter") { if ((type == "ETEL") | (type == "ETHD")) type = "ET" for (i in 1:maxiterlam) { r1 <- .rho(gt,l0,derive=1,type=type,k=k) r2 <- .rho(gt,l0,derive=2,type=type,k=k) F <- -colMeans(r1*gt) J <- crossprod(r2*gt,gt) if (sum(abs(F))= 2) { w <- c(w[rt:2], w) w <- w / sum(w) w <- kernel(w[rt:length(w)]) } else { w <- kernel(1) } } else { if (class(w)[1] != "tskernel") stop("Provided weights must be a numeric vector or an object of class 'tskernel'") } if (length(w$coef)>1) x <- kernapply(x, w) sx <- list("smoothx" = x, "kern_weights" = w, bw = bw) return(sx) } gel <- function(g, x, tet0 = NULL, gradv = NULL, smooth = FALSE, type = c("EL", "ET", "CUE", "ETEL", "HD", "ETHD","RCUE"), kernel = c("Truncated", "Bartlett"), bw = bwAndrews, approx = c("AR(1)", "ARMA(1,1)"), prewhite = 1, ar.method = "ols", tol_weights = 1e-7, tol_lam = 1e-9, tol_obj = 1e-9, tol_mom = 1e-9, maxiterlam = 100, constraint = FALSE, optfct = c("optim", "optimize", "nlminb"), optlam = c("nlminb", "optim", "iter", "Wu"), data, Lambdacontrol = list(), model = TRUE, X = FALSE, Y = FALSE, TypeGel = "baseGel", alpha = NULL, eqConst = NULL, eqConstFullVcov = FALSE, onlyCoefficients=FALSE, ...) { type <- match.arg(type) optfct <- match.arg(optfct) optlam <- match.arg(optlam) weights <- weightsAndrews approx <- match.arg(approx) kernel <- match.arg(kernel) if (!is.null(eqConst)) TypeGel <- "constGel" if(missing(data)) data<-NULL all_args <- list(g = g, x = x, tet0 = tet0, gradv = gradv, smooth = smooth, type = type, kernel = kernel, bw = bw, approx = approx, prewhite = prewhite, ar.method = ar.method, tol_weights = tol_weights, tol_lam = tol_lam, tol_obj = tol_obj, tol_mom = tol_mom, maxiterlam = maxiterlam, constraint = constraint, optfct = optfct, weights = weights, optlam = optlam, model = model, X = X, Y = Y, TypeGel = TypeGel, call = match.call(), Lambdacontrol = Lambdacontrol, alpha = alpha, data = data, eqConst = eqConst, eqConstFullVcov = eqConstFullVcov, onlyCoefficients=onlyCoefficients) class(all_args)<-TypeGel Model_info<-getModel(all_args) z <- momentEstim(Model_info, ...) if (!onlyCoefficients) class(z) <- "gel" return(z) } evalGel <- function(g, x, tet0, gradv = NULL, smooth = FALSE, type = c("EL", "ET", "CUE", "ETEL", "HD", "ETHD","RCUE"), kernel = c("Truncated", "Bartlett"), bw = bwAndrews, approx = c("AR(1)", "ARMA(1,1)"), prewhite = 1, ar.method = "ols", tol_weights = 1e-7, tol_lam = 1e-9, tol_obj = 1e-9, tol_mom = 1e-9, maxiterlam = 100, optlam = c("nlminb", "optim", "iter", "Wu"), data, Lambdacontrol = list(), model = TRUE, X = FALSE, Y = FALSE, alpha = NULL, ...) { type <- match.arg(type) optlam <- match.arg(optlam) weights <- weightsAndrews approx <- match.arg(approx) kernel <- match.arg(kernel) TypeGel <- "baseGel" if(missing(data)) data<-NULL all_args <- list(g = g, x = x, tet0 = tet0, gradv = gradv, smooth = smooth, type = type, kernel = kernel, bw = bw, approx = approx, prewhite = prewhite, ar.method = ar.method, tol_weights = tol_weights, tol_lam = tol_lam, tol_obj = tol_obj, tol_mom = tol_mom, maxiterlam = maxiterlam, weights = weights, optlam = optlam, model = model, X = X, Y = Y, call = match.call(), Lambdacontrol = Lambdacontrol, alpha = alpha, data = data, optfct="optim") class(all_args)<-TypeGel Model_info<-getModel(all_args) class(Model_info) <- "baseGel.eval" z <- momentEstim(Model_info, ...) class(z) <- "gel" return(z) } .thetf <- function(tet, P, output=c("obj","all"), l0Env) { output <- match.arg(output) gt <- P$g(tet, P$x) l0 <- get("l0",envir=l0Env) if (((P$type=="ETEL")|(P$type=="ETHD"))&(!is.null(P$CGEL))) { P$CGEL <- NULL warning("CGEL not implemented for ETEL or for ETHD") } if (is.null(P$CGEL)) { if (P$optlam != "optim" & P$type == "EL") { lamb <- try(getLamb(gt, l0, type = P$type, tol_lam = P$tol_lam, maxiterlam = P$maxiterlam, tol_obj = P$tol_obj, k = P$k1/P$k2, control = P$Lambdacontrol, method = P$optlam), silent = TRUE) if(any(class(lamb) == "try-error")) lamb <- getLamb(gt, l0, type = P$type, tol_lam = P$tol_lam, maxiterlam = P$maxiterlam, tol_obj = P$tol_obj, k = P$k1/P$k2, control = P$Lambdacontrol, method = "optim") } else { lamb <- getLamb(gt, l0, type = P$type, tol_lam = P$tol_lam, maxiterlam = P$maxiterlam, tol_obj = P$tol_obj, k = P$k1/P$k2, control = P$Lambdacontrol, method = P$optlam) } } else { lamb <- try(.getCgelLam(gt, l0, type = P$type, method = "nlminb", control=P$Lambdacontrol, k = P$k1/P$k2, alpha = P$CGEL),silent=TRUE) if (any(class(lamb) == "try-error")) lamb <- try(.getCgelLam(gt, l0, type = P$type, method = "constrOptim", control=P$Lambdacontrol, k = P$k1/P$k2, alpha = P$CGEL),silent=TRUE) } if (P$type == "ETEL") obj <- mean(.rho(gt, lamb$lambda, type = P$type, derive = 0, k = P$k1/P$k2) - .rho(1, 0, type = P$type, derive = 0, k = P$k1/P$k2)) else if (P$type == "ETHD") obj <- sum(.rho(gt, lamb$lambda, type = P$type, derive = 0, k = P$k1/P$k2) - .rho(1, 0, type = P$type, derive = 0, k = P$k1/P$k2)) else obj <- lamb$obj assign("l0",lamb$lambda,envir=l0Env) if(output == "obj") return(obj) else return(list(obj = obj, lambda = lamb, gt = gt)) } .getImpProb <- function(gt, lambda, type, k1, k2) { if ((type == "ETEL")|(type=="ETHD")) type <- "ET" n <- NROW(gt) pt <- -.rho(gt, lambda, type = type, derive = 1, k = k1/k2)/n # Making sure pt>0 if (type=="CUE") { eps <- -length(pt)*min(min(pt),0) pt <- (pt+eps/length(pt))/(1+eps) } if (type=="RCUE") pt[pt<0] <- 0 ################### conv_moment <- colSums(pt*gt) conv_pt <- sum(as.numeric(pt)) pt <- pt/sum(pt) attr(pt, "conv_moment") <- conv_moment attr(pt, "conv_pt") <- conv_pt pt } .vcovGel <- function(gt, G, k1, k2, bw, pt=NULL,tol=1e-16) { q <- NCOL(gt) n <- NROW(gt) if (is.null(pt)) pt <- 1/n G <- G/k1 gt <- gt*sqrt(pt*bw/k2) qrGt <- qr(gt) piv <- sort.int(qrGt$pivot, index.return=TRUE)$ix R <- qr.R(qrGt)[,piv] X <- forwardsolve(t(R), G) Y <- forwardsolve(t(R), diag(q)) res <- lm.fit(X,Y) u <- res$residuals Sigma <- chol2inv(res$qr$qr)/n diag(Sigma)[diag(Sigma)<0] <- tol if (q==ncol(G)) { SigmaLam <- matrix(0, q, q) } else { SigmaLam <- backsolve(R, u)/n*bw^2 diag(SigmaLam)[diag(SigmaLam)<0] <- tol } khat <- crossprod(R) list(vcov_par=Sigma, vcov_lambda=SigmaLam,khat=khat) } gmm/R/PlotMethods.R0000644000176200001440000000611311331045226013616 0ustar liggesusers# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ plot.gmm <- function (x, which = c(1L:3), main = list("Residuals vs Fitted values", "Normal Q-Q", "Response variable and fitted values"), panel = if(add.smooth) panel.smooth else points, ask = prod(par("mfcol")) < length(which) && dev.interactive(), ..., add.smooth = getOption("add.smooth")) { if (!inherits(x, "gmm")) stop("use only with \"gmm\" objects") if (!inherits(x, "gel")) { if(!is.numeric(which) || any(which < 1) || any(which > 3)) stop("'which' must be in 1L:3") show <- rep(FALSE, 3) } else { if(!is.numeric(which) || any(which < 1) || any(which > 4)) stop("'which' must be in 1L:4") show <- rep(FALSE, 4) } show[which] <- TRUE r <- residuals(x) if(ncol(r)>1) stop("plot.gmm is not yet implemented for system of equations") yh <- fitted(x) n <- length(r) if (ask) { oask <- devAskNewPage(TRUE) on.exit(devAskNewPage(oask)) } ##---------- Do the individual plots : ---------- if (show[1L]) { ylim <- range(r, na.rm=TRUE) ylim <- extendrange(r= ylim, f = 0.08) plot(yh, r, xlab = "Fitted", ylab = "Residuals", main = main[1L], ylim = ylim, type = "n", ...) panel(yh, r) abline(h = 0, lty = 3, col = "gray") } if (show[2L]) { ## Normal rs <- (r-mean(r))/sd(r) ylim <- range(rs, na.rm=TRUE) ylim[2L] <- ylim[2L] + diff(ylim) * 0.075 qq <- qqnorm(rs, main = main[2L], ylab = "stand. residuals", ylim = ylim, ...) qqline(rs, lty = 3, col = "gray50") } if (show[3L]) { y <- as.matrix(model.response(x$model, "numeric")) ylim <- range(yh, na.rm=TRUE) ylim <- extendrange(r= ylim, f = 0.08) plot(y, main = main[3L], ylim = ylim, ...) lines(yh,col=2) } if (inherits(x, "gel")) { if (show[4L]) { pt <- x$pt plot(pt, type='l',main = main[4L],ylab="Implied Prob.", ...) emp_pt <- rep(1/length(pt),length(pt)) lines(emp_pt,col=2) legend("topleft",c("Imp. Prob.","Empirical (1/T)"),col=1:2,lty=c(1,1)) } } invisible() } plot.gel <- function (x, which = c(1L:4), main = list("Residuals vs Fitted values", "Normal Q-Q", "Response variable and fitted values","Implied probabilities"), panel = if(add.smooth) panel.smooth else points, ask = prod(par("mfcol")) < length(which) && dev.interactive(), ..., add.smooth = getOption("add.smooth")) { if (!inherits(x, "gel")) stop("use only with \"gel\" objects") class(x) <- c("gmm","gel") plot(x,which=which,main=main,panel=panel, ask=ask, ..., add.smooth=add.smooth) invisible() } gmm/R/Methods.gmm.R0000644000176200001440000002171613571757641013567 0ustar liggesusers# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ summary.gmm <- function(object, ...) { z <- object se <- sqrt(diag(z$vcov)) par <- z$coefficients tval <- par/se ans <- list(met=z$met,kernel=z$kernel,algo=z$algo,call=z$call) names(ans$met) <- "GMM method" names(ans$kernel) <- "kernel for cov matrix" ans$coefficients <- cbind(par,se, tval, 2 * pnorm(abs(tval), lower.tail = FALSE)) dimnames(ans$coefficients) <- list(names(z$coefficients), c("Estimate", "Std. Error", "t value", "Pr(>|t|)")) ans$stest <- specTest(z) ans$algoInfo <- z$algoInfo if(z$met=="cue") ans$cue <- object$cue if (!is.null(object$initTheta)) { ans$initTheta <- object$initTheta names(ans$initTheta) <- names(z$coefficients) } ans$specMod <- object$specMod ans$bw <- attr(object$w0,"Spec")$bw ans$weights <- attr(object$w0,"Spec")$weights if(object$infVcov == "iid") ans$kernel <- NULL class(ans) <- "summary.gmm" ans } summary.tsls <- function(object, vcov = NULL, ...) { if (!is.null(vcov)) object$vcov=vcov ans <- summary.gmm(object) ans$met <- paste(ans$met, "(Meat type = ", attr(object$vcov, "vcovType"), ")",sep="") k <- object$dat$k if (!is.null(object$fsRes)) { fstat <- vector() fsRes <- object$fsRes if (class(fsRes)[1] == "listof") { nendo <- length(fsRes) } else { nendo <- 1 } if (nendo == 1) { fstat[1] <- fsRes$fstatistic[1] df1 <- fsRes$fstatistic[2] df2 <- fsRes$fstatistic[3] } else { fstat[1] <- fsRes[[1]]$fstatistic[1] df1 <- fsRes[[1]]$fstatistic[2] df2 <- fsRes[[1]]$fstatistic[3] } if (nendo > 1){ for (i in 2:nendo) fstat[i] <- fsRes[[i]]$fstatistic[1] } pvfstat <- 1-pf(fstat,df1, df2) names(fstat) <- attr(fsRes,"Endo") ans$fstatistic <- list(fstat = fstat, pvfstat = pvfstat, df1 = df1, df2 = df2) } ans$specMod <- object$specMod class(ans) <- "summary.tsls" return(ans) } print.summary.tsls <- function(x, digits = 5, ...) { print.summary.gmm(x,digits) if (!is.null(x$fstatistic)) { cat("\n First stage F-statistics: \n") if(names(x$fstatistic$fstat)[1]=="(Intercept)") start=2 else start=1 for (i in start:length(x$fstatistic$fstat)) cat(names(x$fstatistic$fstat)[i], ": F(",x$fstatistic$df1,", ",x$fstatistic$df2,") = ",x$fstatistic$fstat[i], " (P-Vavue = ",x$fstatistic$pvfstat[i],")\n") } else { cat("\n No first stage F-statistics (just identified model)\n") } } print.summary.gmm <- function(x, digits = 5, ...) { cat("\nCall:\n") cat(paste(deparse(x$call), sep="\n", collapse = "\n"), "\n\n", sep="") cat("\nMethod: ", x$met,"\n") if (x$met=="cue") { if (!is.null(x$cue$message)) { cat(" (",x$cue$message,")\n\n") } } else { cat("\n") } if( !is.null(x$kernel)) { cat("Kernel: ", x$kernel) if (!is.null(x$bw)) cat("(with bw = ", round(x$bw,5),")\n\n") else cat("\n\n") } cat("Coefficients:\n") print.default(format(x$coefficients, digits=digits), print.gap = 2, quote = FALSE) cat("\n") cat(x$stest$ntest,"\n") print.default(format(x$stest$test, digits=digits), print.gap = 2, quote = FALSE) cat("\n") if(!is.null(x$initTheta)) { cat("Initial values of the coefficients\n") print(x$initTheta) cat("\n") } cat(x$specMod) if(!is.null(x$algoInfo)) { cat("#############\n") cat("Information related to the numerical optimization\n") } if(!is.null(x$algoInfo$convergence)) cat("Convergence code = ", x$algoInfo$convergence,"\n") if(!is.null(x$algoInfo$counts)) { cat("Function eval. = ",x$algoInfo$counts[1],"\n") cat("Gradian eval. = ",x$algoInfo$counts[2],"\n") } if(!is.null(x$algoInfo$message)) cat("Message: ",x$algoInfo$message,"\n") invisible(x) } formula.gmm <- function(x, ...) { if(is.null(x$terms)) stop("The gmm object was not created by a formula") else formula(x$terms) } confint.gmm <- function(object, parm, level=0.95, ...) { ntest <- "Wald type confidence interval" z <- object se <- sqrt(diag(z$vcov)) par <- z$coefficients zs <- qnorm((1-level)/2,lower.tail=FALSE) ch <- zs*se ans <- cbind(par-ch,par+ch) dimnames(ans) <- list(names(par),c((1-level)/2,0.5+level/2)) if(!missing(parm)) ans <- ans[parm,] ans <- list(test=ans, ntest=ntest) class(ans) <- "confint" ans } residuals.gmm <- function(object,...) { if(is.null(object$model)) stop("The residuals method is valid only for g=formula") object$residuals } fitted.gmm <- function(object,...) { if(is.null(object$model)) stop("The residuals method is valid only for g=formula") object$fitted.value } print.gmm <- function(x, digits=5, ...) { cat("Method\n", x$met,"\n\n") cat("Objective function value: ",x$objective,"\n\n") print.default(format(coef(x), digits=digits), print.gap = 2, quote = FALSE) cat("\n") if(!is.null(x$algoInfo$convergence)) cat("Convergence code = ", x$algoInfo$convergence,"\n") cat(x$specMod) invisible(x) } coef.gmm <- function(object,...) object$coefficients vcov.gmm <- function(object,...) object$vcov estfun.gmmFct <- function(x, y = NULL, theta = NULL, ...) { if (is(x, "function")) { gmat <- x(theta, y) return(gmat) } else return(x) } estfun.tsls <- function(x, ...) { model.matrix(x)*c(residuals(x)) } model.matrix.tsls <- function(object, ...) { dat <- object$dat ny <- dat$ny nh <- dat$nh k <- dat$k x <- dat$x n <- nrow(x) hm <- as.matrix(x[,(ny+k+1):(ny+k+nh)]) xm <- as.matrix(x[,(ny+1):(ny+k)]) xhat <- lm(xm~hm-1)$fitted assign <- 1:ncol(xhat) if (attr(object$terms,"intercept")==1) assign <- assign-1 attr(xhat,"assign") <- assign xhat } vcov.tsls <- function(object, type=c("Classical","HC0","HC1","HAC"), hacProp = list(), ...) { type <- match.arg(type) if (type == "Classical") { sig <- sum(c(residuals(object))^2)/(nrow(object$dat$x)-object$dat$k) ny <- object$dat$ny nh <- object$dat$nh k <- object$dat$k n <- nrow(object$dat$x) hm <- as.matrix(object$dat$x[,(ny+k+1):(ny+k+nh)]) Omega <- crossprod(hm)*sig/nrow(object$dat$x) vcovType <- "Classical" V <- solve(crossprod(object$G,solve(Omega,object$G)))/nrow(object$dat$x) } else if (strtrim(type,2) == "HC") { meat <- meatHC(object, type) bread <- bread(object) vcovType <- paste("HCCM: ", type, sep="") V <- crossprod(bread, meat%*%bread)/nrow(object$dat$x) } else { object$centeredVcov <- TRUE gt <- model.matrix(object)*c(residuals(object)) gt <- lm(gt~1) arg <- c(list(x=gt,sandwich=FALSE),hacProp) meat <- do.call(kernHAC, arg) KType <- ifelse(is.null(hacProp$kernel), formals(kernHAC)$kernel[[2]], hacProp$kernel) vcovType <- paste("HAC: ", KType, sep="") bread <- bread(object) V <- crossprod(bread, meat%*%bread)/nrow(object$dat$x) } attr(V, "vcovType") <- vcovType return(V) } estfun.gmm <- function(x, ...) { foc <- x$gt %*% x$w %*% x$G return(foc) } bread.gmm <- function(x, ...) { GWG <- crossprod(x$G, x$w %*% x$G) b <- try(solve(GWG), silent = TRUE) if (any(class(b) == "try-error")) stop("The bread matrix is singular") return(b) } bread.tsls <- function(x, ...) { dat <- x$dat ny <- dat$ny nh <- dat$nh k <- dat$k x <- dat$x n <- nrow(x) hm <- as.matrix(x[,(ny+k+1):(ny+k+nh)]) xm <- as.matrix(x[,(ny+1):(ny+k)]) xhat <- lm(xm~hm-1)$fitted solve(crossprod(xhat)/n) } gmm/R/getModel.R0000644000176200001440000006505613571757641013152 0ustar liggesusers# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ getModel <- function(object, ...) { UseMethod("getModel") } getModel.tsls <- function(object, ...) { obj <- getModel.baseGmm(object, ...) return(obj) } getModel.sysGmm <- function(object, ...) { if (object$commonCoef & !is.null(object$crossEquConst)) { object$commonCoef <- FALSE warning("When crossEquConst is not NULL, commonCoef=TRUE is ignore and set to FALSE") } object$allArg <- c(object, ...) object$formula <- list(g=object$g, h=object$h) if (!is.list(object$g)) stop("g must be list of formulas") if (length(object$g) == 1) stop("For single equation GMM, use the function gmm()") if (!all(sapply(1:length(object$g), function(i) is(object$g[[i]], "formula")))) stop("g must be a list of formulas") if (!is.list(object$h)) { if(!is(object$h, "formula")) stop("h is either a list of formulas or a formula") else object$h <- list(object$h) } else { if (!all(sapply(1:length(object$h), function(i) is(object$h[[i]], "formula")))) stop("h is either a list of formulas or a formula") } if (length(object$h) == 1) { object$h <- rep(object$h, length(object$g)) typeDesc <- "System Gmm with common instruments" typeInst <- "Common" } else { if (length(object$h) != length(object$g)) stop("The number of formulas in h should be the same as the number of formulas in g, \nunless the instruments are the same in each equation, \nin which case the number of equations in h should be 1") typeDesc <- "System Gmm" typeInst <- "nonCommon" } if (object$commonCoef) typeDesc <- paste(typeDesc, " (Common Coefficients)") dat <- lapply(1:length(object$g), function(i) try(getDat(object$g[[i]], object$h[[i]], data = object$data, error=!object$commonCoef), silent=TRUE)) chk <- sapply(1:length(dat), function(i) any(class(dat[[i]]) == "try-error")) chk <- which(chk) mess <- vector() for (i in chk) { mess <- paste(mess, "\nSystem of equations:", i, "\n###############\n", sep="") mess <- paste(mess, attr(dat[[i]], "condition")[[1]]) } if (length(chk)>0) stop(mess) if (is.null(names(object$g))) names(dat) <- paste("System_", 1:length(dat), sep="") else names(dat) <- names(object$g) object$gradv <- .DmomentFct_Sys object$formula <- list(g=object$g, h=object$h) if (!all(sapply(1:length(dat), function(i) dat[[i]]$ny == 1))) stop("The number of dependent variable must be one in every equation") clname <- "sysGmm.twoStep.formula" object$x <- dat namex <- lapply(1:length(dat), function(i) colnames(dat[[i]]$x[,2:(1+dat[[i]]$k), drop=FALSE])) nameh <- lapply(1:length(dat), function(i) colnames(dat[[i]]$x[,(2+dat[[i]]$k):(1+dat[[i]]$k+dat[[i]]$nh), drop=FALSE])) namey <- lapply(1:length(dat), function(i) colnames(dat[[i]]$x[,1, drop=FALSE])) object$namesCoef <- namex namesgt <- lapply(1:length(dat), function(i) paste(namey[[i]], "_", nameh[[i]], sep="")) object$namesgt <- namesgt object$namesy <- namey attr(object$x,"ModelType") <- "linear" #for (i in 1:length(object$x)) # attr(object$x[[i]], c("linear")) <- attr(object$x, "modelType") attr(object$x, "k") <- lapply(1:length(dat), function(i) length(object$namesCoef[[i]])) attr(object$x, "q") <- lapply(1:length(dat), function(i) length(object$namesgt[[i]])) attr(object$x, "n") <- lapply(1:length(dat), function(i) nrow(object$x[[i]]$x)) object$TypeGmm <- class(object) attr(object$x, "weight") <- list(w=object$weightsMatrix, centeredVcov=object$centeredVcov) attr(object$x, "weight")$WSpec <- list() attr(object$x, "weight")$WSpec$sandwich <- list(kernel = object$kernel, bw = object$bw, prewhite = object$prewhite, ar.method = object$ar.method, approx = object$approx, tol = object$tol) attr(object$x, "weight")$vcov <- object$vcov k <- lapply(1:length(dat), function(i) dat[[i]]$k) q <- lapply(1:length(dat), function(i) dat[[i]]$nh) df <- lapply(1:length(dat), function(i) dat[[i]]$nh-dat[[i]]$k) k2 <- do.call(c,k) if (object$commonCoef | !is.null(object$crossEquConst)) { if (!all(k2==k2[1])) stop("In a common coefficient model the number of regressors is the same in each equation") if (object$commonCoef) totK <- k2[1] else totK <- length(dat)*(k2[1]-length(object$crossEquConst)) + length(object$crossEquConst) if (sum(do.call(c,q))=length(object$t0)) stop("Too many constraints; use evalGmm() if all coefficients are fixed") if (is.character(object$eqConst)) { if (is.null(names(object$t0))) stop("t0 must be a named vector if you want eqConst to be names") if (any(!(object$eqConst %in% names(object$t0)))) stop("Wrong coefficient names in eqConst") object$eqConst <- sort(match(object$eqConst,names(object$t0))) } restTet <- object$t0[object$eqConst] obj$t0 <- object$t0[-object$eqConst] object$eqConst <- cbind(object$eqConst,restTet) } else { if (is.null(dim(object$eqConst))) stop("When t0 is not provided, eqConst must be a 2xq matrix") } attr(obj$x, "eqConst") <- list(eqConst = object$eqConst) rownames(attr(obj$x, "eqConst")$eqConst) <- obj$namesCoef[object$eqConst[,1]] object$eqConst <- attr(obj$x, "eqConst")$eqConst if(is(object$g, "formula")) { if (obj$x$ny>1) stop("Constrained GMM not implemented yet for system of equations") if (obj$x$k<=0) stop("Nothing to estimate") } obj$eqConst <- object$eqConst attr(obj$x, "k") <- attr(obj$x, "k")-nrow(object$eqConst) obj$namesCoef <- obj$namesCoef[-object$eqConst[,1]] obj$type <- paste(obj$type,"(with equality constraints)",sep=" ") mess <- paste(rownames(object$eqConst), " = " , object$eqConst[,2], "\n",collapse="") mess <- paste("#### Equality constraints ####\n",mess,"##############################\n\n",sep="") obj$specMod <- mess return(obj) } getModel.baseGmm <- function(object, ...) { object$allArg <- c(object, list(...)) if(is(object$g, "formula")) { object$gradv <- .DmomentFct object$gradvf <- FALSE dat <- getDat(object$g, object$x, data = object$data) if(is.null(object$weightsMatrix)) { clname <- paste(class(object), ".", object$type, ".formula", sep = "") } else { clname <- "fixedW.formula" object$type <- "One step GMM with fixed W" } object$x <- dat object$gform<-object$g namex <- colnames(dat$x[,(dat$ny+1):(dat$ny+dat$k), drop=FALSE]) nameh <- colnames(dat$x[,(dat$ny+dat$k+1):(dat$ny+dat$k+dat$nh), drop=FALSE]) if (dat$ny > 1) { namey <- colnames(dat$x[,1:dat$ny, drop=FALSE]) object$namesCoef <- paste(rep(namey, dat$k), "_", rep(namex, rep(dat$ny, dat$k)), sep = "") object$namesgt <- paste(rep(namey, dat$nh), "_", rep(nameh, rep(dat$ny, dat$nh)), sep = "") } else { object$namesCoef <- namex object$namesgt <- nameh } attr(object$x,"ModelType") <- "linear" attr(object$x, "k") <- object$x$k attr(object$x, "q") <- object$x$ny*object$x$nh attr(object$x, "n") <- NROW(object$x$x) attr(object$x, "namesgt") <- object$namesgt } else { attr(object$x,"ModelType") <- "nonlinear" attr(object$x, "momentfct") <- object$g if (object$optfct == "optimize") attr(object$x, "k") <- 1 else attr(object$x, "k") <- length(object$t0) attr(object$x, "q") <- NCOL(object$g(object$t0, object$x)) attr(object$x, "n") <- NROW(object$x) if (object$optfct == "optimize") { object$namesCoef <- "Theta1" } else { if(is.null(names(object$t0))) object$namesCoef <- paste("Theta[" ,1:attr(object$x, "k"), "]", sep = "") else object$namesCoef <- names(object$t0) } if(is.null(object$weightsMatrix)) { clname <- paste(class(object), "." ,object$type, sep = "") } else { clname <- "fixedW" object$type <- "One step GMM with fixed W" attr(object$x, "weight")$w <- object$weightsMatrix } if (!is.function(object$gradv)) { object$gradvf <- FALSE } else { attr(object$x, "gradv") <- object$gradv object$gradvf <- TRUE } object$gradv <- .DmomentFct } object$TypeGmm <- class(object) attr(object$x, "weight") <- list(w=object$weightsMatrix, centeredVcov=object$centeredVcov) attr(object$x, "weight")$WSpec <- list() attr(object$x, "weight")$WSpec$sandwich <- list(kernel = object$kernel, bw = object$bw, prewhite = object$prewhite, ar.method = object$ar.method, approx = object$approx, tol = object$tol) attr(object$x, "weight")$vcov <- object$vcov attr(object$x, "mustar") <- object$mustar object$g <- .momentFct class(object) <- clname return(object) } getModel.constGel <- function(object, ...) { class(object) <- "baseGel" obj <- getModel(object) if (!is.null(dim(object$eqConst))) stop("eqConst must be a vector which indicates which parameters to fix") if (length(object$eqConst)>=length(object$tet0)) stop("Too many constraints; use evalGel() if all coefficients are fixed") if (is.character(object$eqConst)) { if (is.null(names(object$tet0))) stop("tet0 must be a named vector if you want eqConst to be names") if (any(!(object$eqConst %in% names(object$tet0)))) stop("Wrong coefficient names in eqConst") object$eqConst <- sort(match(object$eqConst,names(object$tet0))) } restTet <- object$tet0[object$eqConst] obj$tet0 <- object$tet0[-object$eqConst] object$eqConst <- cbind(object$eqConst,restTet) attr(obj$x, "eqConst") <- list(eqConst = object$eqConst) rownames(attr(obj$x, "eqConst")$eqConst) <- obj$namesCoef[object$eqConst[,1]] object$eqConst <- attr(obj$x, "eqConst")$eqConst if(is(object$g, "formula")) { if (obj$x$ny>1) stop("Constrained GMM not implemented yet for system of equations") } obj$eqConst <- object$eqConst attr(obj$x, "k") <- attr(obj$x, "k")-nrow(object$eqConst) obj$namesCoef <- obj$namesCoef[-object$eqConst[,1]] obj$typeDesc <- paste(obj$typeDesc,"(with equality constraints)",sep=" ") mess <- paste(rownames(object$eqConst), " = " , object$eqConst[,2], "\n",collapse="") mess <- paste("#### Equality constraints ####\n",mess,"##############################\n\n",sep="") obj$specMod <- mess return(obj) } getModel.baseGel <- function(object, ...) { object$allArg <- c(object, list(...)) object$allArg$weights <- NULL object$allArg$call <- NULL if(is(object$g, "formula")) { dat <- getDat(object$g, object$x, data = object$data) k <- dat$k if (is.null(object$tet0)) { if (!is.null(object$eqConst)) stop("You have to provide tet0 with equality constrains") if (object$optfct == "optimize") stop("For optimize, you must provide the 2x1 vector tet0") res0 <- gmm(object$g, object$x, data=object$data) object$tet0 <- res0$coefficients if (object$smooth) gt <- res0$gt } else { if (object$optfct == "optimize") { if (k != 1) stop("optimize() is for univariate optimization") if (length(object$tet0) != 2) stop("For optimize(), tet0 must be a 2x1 vector") } else { if (k != length(object$tet0)) stop("The number of starting values does not correspond to the number of regressors") } if (object$smooth) gt <- gmm(object$g, object$x, data=object$data)$gt } clname <- paste(class(object), ".modFormula", sep = "") object$gradv <- .DmomentFct object$gradvf <- FALSE object$x <- dat object$gform<-object$g namex <- colnames(dat$x[,(dat$ny+1):(dat$ny+dat$k), drop=FALSE]) nameh <- colnames(dat$x[,(dat$ny+dat$k+1):(dat$ny+dat$k+dat$nh), drop=FALSE]) if (dat$ny > 1) { namey <- colnames(dat$x[,1:dat$ny]) namesCoef <- paste(rep(namey, dat$k), "_", rep(namex, rep(dat$ny, dat$k)), sep = "") object$namesgt <- paste(rep(namey, dat$nh), "_", rep(nameh, rep(dat$ny, dat$nh)), sep = "") } else { namesCoef <- namex object$namesgt <- nameh } if (is.null(names(object$tet0))) object$namesCoef <- namesCoef else object$namesCoef <- names(object$tet0) attr(object$x,"ModelType") <- "linear" attr(object$x, "k") <- k attr(object$x, "q") <- object$x$ny*object$x$nh attr(object$x, "n") <- NROW(object$x$x) } else { if (is.null(object$tet0)) stop("You must provide the starting values tet0 for nonlinear moments") if(any(object$optfct == c("optim", "nlminb"))) k <- length(object$tet0) else k <- 1 attr(object$x,"ModelType") <- "nonlinear" attr(object$x, "momentfct") <- object$g attr(object$x, "k") <- k attr(object$x, "q") <- NCOL(object$g(object$tet0, object$x)) attr(object$x, "n") <- NROW(object$x) if(is.null(names(object$tet0))) object$namesCoef <- paste("Theta[" ,1:attr(object$x, "k"), "]", sep = "") else object$namesCoef <- names(object$tet0) if (!is.function(object$gradv) | object$smooth) { object$gradvf <- FALSE } else { attr(object$x, "gradv") <- object$gradv object$gradvf <- TRUE } object$gradv <- .DmomentFct if (object$smooth) gt <- gmm(object$g, object$x, object$tet0, wmatrix = "ident", ...)$gt clname <- paste(class(object), ".mod", sep = "") } if (object$smooth) { if (is.function(object$gradv)) warning("The provided gradv is not used when smooth=TRUE", call. = FALSE) if(object$kernel == "Truncated") { object$wkernel <- "Bartlett" object$k1 <- 2 object$k2 <- 2 } if(object$kernel == "Bartlett") { object$wkernel <- "Parzen" object$k1 <- 1 object$k2 <- 2/3 } gt <- scale(gt, scale=FALSE) class(gt) <- "gmmFct" if (is.function(object$bw)) object$bwVal <- object$bw(gt, kernel = object$wkernel, prewhite = object$prewhite, ar.method = object$ar.method, approx = object$approx) else object$bwVal <- object$bw object$w <- smoothG(gt, bw = object$bwVal, kernel = object$kernel, tol = object$tol_weights)$kern_weights attr(object$x,"smooth") <- list(bw=object$bwVal, w=object$w, kernel=object$kernel) } else { object$k1 <- 1 object$k2 <- 1 object$w <- kernel(1) object$bwVal <- 1 } object$g <- .momentFct object$CGEL <- object$alpha object$typeDesc <- object$type class(object) <- clname return(object) } getModel.ateGel <- function(object, ...) { object$allArg <- c(object, list(...)) object$allArg$weights <- NULL object$allArg$call <- NULL if(is(object$g, "formula")) { dat <- getDat(object$g, object$x, data = object$data) if (!is.null(object$w)) if (is(object$w, "formula")) { dat$w <- model.matrix(object$w, object$data)[,-1,drop=FALSE] } else { stop("w must be a formula") } if (dat$ny>1 | dat$ny==0) stop("You need one and only one dependent variable") k <- dat$k if (k>2 & object$momType=="ATT") stop("Cannot compute ATT with multiple treatments") if (attr(dat$mt, "intercept")!=1) stop("An intercept is needed to compute the treatment effect") if (!all(dat$x[,3:(k+1)] %in% c(0,1))) stop("The treatment indicators can only take values 0 or 1") if (colnames(dat$x)[k+2] == "(Intercept)") { dat$x <- dat$x[,-(k+2)] dat$nh <- dat$nh-1 } if (!is.null(object$popMom)) { if (length(object$popMom)!=dat$nh) stop("The dim. of the population moments does not match the dim. of the vector of covariates") } if (is.null(object$tet0)) { if (is.null(dat$w)) { tet0 <- lm(dat$x[,1]~dat$x[,3:(k+1)])$coef } else { tet0 <- lm(dat$x[,1]~dat$x[,3:(k+1)]+dat$w)$coef } tet0 <- c(tet0, colMeans(dat$x[,3:(k+1),drop=FALSE])) names(tet0) <- NULL object$tet0 <- tet0 } else { ntet0 <- 2*k-1 + ifelse(is.null(dat$w), 0, ncol(dat$w)) if (length(object$tet0) != ntet0) stop("tet0 should have a length equal to 2x(number of treatments)+1+number of w's if any") } if (object$family != "linear") { if (any(!(dat$x[,1]%in%c(0,1)))) stop("For logit or probit, Y can only take 0s and 1s") family <- binomial(link=object$family) if (object$family == "logit") family$mu.eta2 <- function(x, family) family$mu.eta(x)*(1-2*family$linkinv(x)) else family$mu.eta2 <- function(x, family) -x*family$mu.eta(x) } else { family <- NULL } q <- dat$nh + 2*k+1 if (object$momType != "bal" | !is.null(object$popMom)) q <- q+dat$nh if (!is.null(dat$w)) { q <- q+ncol(dat$w) namew <- colnames(dat$w) } else { namew <- NULL } object$gradv <- .DmomentFctATE object$x <- dat object$gradvf <- FALSE object$gform<-object$g namex <- colnames(dat$x[,2:(k+1)]) nameh <- colnames(dat$x[,(k+2):ncol(dat$x), drop=FALSE]) namesCoef <- c(namex, namew, paste("TreatProb", 1:(k-1), sep="")) namesgt <- paste(rep(paste("Treat", 1:(k-1), sep=""), rep(dat$nh, k-1)), "_", rep(nameh, k-1), sep="") object$namesgt <- c(namesCoef,namesgt) if (object$momType != "bal" | !is.null(object$popMom)) object$namesgt <- c(object$namesgt, paste("bal_", nameh, sep="")) if (is.null(names(object$tet0))) object$namesCoef <- namesCoef else object$namesCoef <- names(object$tet0) attr(object$x,"ModelType") <- "linear" attr(object$x, "k") <- k attr(object$x, "q") <- q attr(object$x, "n") <- nrow(dat$x) attr(object$x, "momType") <- object$momType attr(object$x, "popMom") <- object$popMom attr(object$x, "family") <- family } else { stop("Not implemented yet for nonlinear regression") } if (object$momType == "ATT") metname <- "ATT" else metname <- "ATE" if (!is.null(object$popMom)) { metname2 <- " with balancing based on population moments" } else { if (object$momType == "balSample") metname2 <- " with balancing based on the sample moments" else metname2 <- " with unrestricted balancing" } metname3 <- paste("\nMethod: ", object$type, sep="") if (!is.null(family)) metname3 <- paste(metname3, ", Family: Binomial with ", family$link, " link", sep="") clname <- "baseGel.mod" object$k1 <- 1 object$k2 <- 1 object$w <- kernel(1) object$bwVal <- 1 object$g <- .momentFctATE object$CGEL <- object$alpha object$typeDesc <- paste(metname, metname2, metname3, sep="") class(object) <- clname return(object) } gmm/R/charStable.R0000644000176200001440000000401211741057114013424 0ustar liggesusers# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ charStable <- function(theta, tau, pm = 0) { # pm is the type parametrization as described by Nolan(2009) # It takes the value 0 or 1 # const can fixe parameters. It is NULL for no constraint or # a matrix in which case the constraint is theta[const[,1]]=const[,2] a <- theta[1] b <- theta[2] g <- theta[3] d <- theta[4] if(pm == 0) { if(a == 1) { if(g == 0) { the_car <- exp(complex(imaginary = d*tau)) } else { re_p <- -g * abs(tau) im_p <- d * tau im_p[tau!=0] <- im_p[tau != 0] + re_p[tau != 0]*2/pi*b*sign(tau[tau != 0])*log(g*abs(tau[tau != 0])) the_car <- exp(complex(real = re_p, imaginary = im_p)) } } else { if(g == 0) { the_car <- exp(complex(imaginary = d*tau)) } else { phi <- tan(pi*a/2) re_p <- -g^a*abs(tau)^a im_p <- d*tau*1i im_p[tau != 0] <- im_p[tau != 0] + re_p*( b*phi*sign(tau[tau != 0])*(abs(g*tau[tau != 0])^(1-a) - 1) ) the_car <- exp(complex(real = re_p, imaginary = im_p)) } } } if(pm == 1) { if(a == 1) { re_p <- -g*abs(tau) im_p <- d*tau im_p[tau!=0] <- im_p[tau != 0]+re_p*(b*2/pi*sign(tau[tau != 0])*log(abs(tau[tau!=0]))) the_car <- exp(complex(real = re_p, imaginary = im_p)) } else { phi <- tan(pi*a/2) re_p <- -g^a*abs(tau)^a im_p <- re_p*(-phi*b*sign(tau)) + d*tau the_car <- exp(complex(real = re_p, imaginary = im_p)) } } return(the_car) } gmm/R/ategel.R0000644000176200001440000003442513467070535012641 0ustar liggesusersATEgel <- function(g, balm, w=NULL, y=NULL, treat=NULL, tet0=NULL, momType=c("bal","balSample","ATT"), popMom = NULL, family=c("linear","logit", "probit"), type = c("EL", "ET", "CUE", "ETEL", "HD", "ETHD","RCUE"), tol_lam = 1e-9, tol_obj = 1e-9, tol_mom = 1e-9, maxiterlam = 100, optfct = c("optim", "nlminb"), optlam = c("nlminb", "optim", "iter", "Wu"), data=NULL, Lambdacontrol = list(), model = TRUE, X = FALSE, Y = FALSE, ...) { type <- match.arg(type) optfct <- match.arg(optfct) optlam <- match.arg(optlam) momType <- match.arg(momType) family <- match.arg(family) TypeGel <- "ateGel" all_args <- list(g = g, x = balm, w=w, y=y, treat=treat, tet0 = tet0, type = type, tol_lam = tol_lam, tol_obj = tol_obj, tol_mom = tol_mom, maxiterlam = maxiterlam, optfct = optfct, optlam = optlam, model = model, X = X, Y = Y, TypeGel = TypeGel, call = match.call(), Lambdacontrol = Lambdacontrol, data = data, constraint=FALSE, kernel = "Truncated", bw = bwAndrews, approx = "AR(1)", prewhite = 1, ar.method = "ols", tol_weights = 1e-7, alpha = NULL, eqConst = NULL, eqConstFullVcov = FALSE, momType=momType, popMom=popMom, family=family, onlyCoefficients=FALSE) class(all_args)<-TypeGel Model_info<-getModel(all_args) z <- momentEstim(Model_info, ...) class(z) <- c("ategel", "gel") res <- try(.vcovate(z), silent=TRUE) if (any(class(res)=="try-error")) { warning("Could not compute the robust-to misspecification standard errors") z$robVcov <- FALSE } else { z$vcov_par <- res$vcov_par z$vcov_lambda <- res$vcov_lambda z$robVcov <- TRUE } return(z) } .momentFctATE <- function(tet, dat) { x <- dat$x k <- dat$k if (is.null(dat$w)) { Z <- x[,2:(k+1),drop=FALSE] } else { Z <- cbind(x[,2:(k+1)], dat$w) } tetz <- tet[1:ncol(Z)] tetb <- tail(tet, k-1) ZT <- c(Z%*%tetz) if (is.null(attr(dat, "family"))) e <- x[,1] - ZT else e <- x[,1] - attr(dat, "family")$linkinv(ZT) gt1 <- e * Z gt2 <- sweep(x[,3:(k+1),drop=FALSE],2,tetb,"-") gt3 <- lapply(1:(k-1), function(i) gt2[,i]*x[,-(1:(k+1))]) gt3 <- do.call(cbind, gt3) gt <- cbind(gt1,gt2,gt3) if (is.null(attr(dat, "popMom"))) { if (attr(dat, "momType") == "balSample") { momB <- scale(x[,-(1:(k+1)),drop=FALSE], scale=FALSE) gt <- cbind(gt, momB) } if (attr(dat, "momType") == "ATT") { momB <- sweep(x[,-(1:3), drop=FALSE], 2, colMeans(x[x[,3]==1,-(1:3), drop=FALSE]), FUN="-") gt <- cbind(gt, momB) } } else { momB <- sweep(x[,-(1:(k+1)), drop=FALSE], 2, attr(dat, "popMom"), "-") gt <- cbind(gt, momB) } return(as.matrix(gt)) } .DmomentFctATE <- function(tet, dat, pt=NULL) { if (is.null(pt)) pt <- rep(1/nrow(dat$x), nrow(dat$x)) x <- dat$x k <- dat$k q <- dat$nh*(k-1)+2*k-1 if (is.null(dat$w)) { Z <- x[,2:(k+1),drop=FALSE] } else { Z <- cbind(x[,2:(k+1)], dat$w) q <- q+ncol(dat$w) } l <- ncol(Z) ntet <- length(tet) ZT <- c(Z%*%tet[1:l]) G <- matrix(0, q, ntet) if (is.null(attr(dat, "family"))) { tau <- rep(1, nrow(x)) } else { tau <- attr(dat, "family")$mu.eta(ZT) } G11 <- lapply(1:l, function(i) -colSums(pt*Z[,i]*tau*Z)) G[1:l, 1:l] <- do.call(rbind, G11) G[(l+1):ntet, (l+1):ntet] <- -sum(pt)*diag(k-1) uK <- colSums(pt*x[,-(1:(k+1)),drop=FALSE]) G[(l+k):q, (l+1):ntet] <- -kronecker(diag(k-1), uK) if (attr(dat, "momType") != "bal" | !is.null(attr(dat, "popMom"))) G <- rbind(G, matrix(0, dat$nh, ntet)) return(G) } .DmomentFctATE2 <- function(tet, dat, pt=NULL) { G <- .DmomentFctATE(tet, dat, pt) #k <- attr(dat, "k") k <- dat$k q <- nrow(G)-dat$nh if (is.null(pt)) pt <- rep(1/nrow(dat$x), nrow(dat$x)) if (attr(dat, "momType") != "bal" & is.null(attr(dat, "popMom"))) G <- cbind(G, rbind(matrix(0,q, dat$nh), -sum(pt)*diag(dat$nh))) return(G) } .psiGam <- function(object) { n <- nrow(object$dat$x) nh <- object$dat$nh lam <- object$lambda q <- length(lam) k <- attr(object$dat, "k") theta <- object$coefficients gt <- object$gt rho1 <- .rho(x=gt, lamb=lam, derive=1, type=object$type) rho2 <- .rho(x=gt, lamb=lam, derive=2, type=object$type) if (is.null(object$dat$w)) { Z <- object$dat$x[,2:(k+1)] } else { Z <- cbind(object$dat$x[,2:(k+1)], object$dat$w) } l <- ncol(Z) ZT <- c(Z%*%theta[1:l]) X <- object$dat$x[,-(1:(k+1)), drop=FALSE] family <- attr(object$dat, "family") momType <- attr(object$dat, "momType") popMom <- attr(object$dat, "popMom") if (is.null(family)) { tau1 <- rep(1, n) } else { tau1 <- family$mu.eta(ZT) tau2 <- family$mu.eta2(ZT, family) } lG1 <- sapply(1:l, function(i) -(tau1*Z[,i]*Z)%*%lam[1:l]) q2 <- nh*(k-1)+l+k-1 lamM <- matrix(lam[(l+k):q2], ncol=(k-1)) lG2 <- sapply(1:(k-1), function(i) -lam[l+i]-X%*%lamM[,i]) lG <- cbind(lG1, lG2) G <- .DmomentFctATE2(theta, object$dat, rho1) G22 <- crossprod(rho2*gt, gt)/n if (momType == "bal" | !is.null(popMom)) { Psi <- cbind(rho1*lG, rho1*gt) G11 <- crossprod(rho2*lG, lG)/n G12 <- t(G)/n + crossprod(rho2*lG, gt)/n if (!is.null(family)) { G12tmp <- lapply(1:l, function(i) colSums(-rho1*tau2*Z[,i]*c(Z%*%lam[1:l])*Z)) G12.2 <- matrix(0, nrow(G12), ncol(G12)) G12.2[1:l,1:l] <- do.call(rbind, G12tmp) G12 <- G12 + G12.2/n } Gamma <- rbind(cbind(G11, G12), cbind(t(G12), G22)) addPar <- 0 } else { lG <- cbind(lG, matrix(-tail(lam, nh), n, nh, byrow=TRUE)) G11 <- crossprod(rho2*lG, lG)/n G12 <- t(G)/n + crossprod(rho2*lG, gt)/n if (!is.null(family)) { G12tmp <- lapply(1:l, function(i) colSums(-rho1*tau2*Z[,i]*c(Z%*%lam[1:l])*Z)) G12.2 <- matrix(0, nrow(G12), ncol(G12)) G12.2[1:l,1:l] <- do.call(rbind, G12tmp) G12 <- G12 + G12.2/n } if (momType == "balSample") Xi <- rep(1,n) else Xi <- Z[,(2:k)] nj <- sum(Xi) lam2 <- -sum(rho1)*tail(lam,nh)/nj theta4 <- colSums(Xi*X)/nj G13 <- rbind(matrix(0, l+k-1, nh), -nj/n*diag(nh)) G23 <- matrix(0,q, nh) G33 <- matrix(0, nh, nh) Psi <- cbind(rho1*lG, rho1*gt, Xi*sweep(X, 2, theta4, "-")) Psi[,(l+k):(l+k+nh-1)] <- Psi[,(l+k):(l+k+nh-1)]-Xi%*%t(lam2) Gamma <- rbind(cbind(G11, G12, G13), cbind(t(G12), G22, G23), cbind(t(G13), t(G23), G33)) addPar <- nh } list(Psi=Psi, Gamma=Gamma, k=length(theta), q=q, addPar=addPar, n=n) } .vcovate <- function (object) { res <- .psiGam(object) k <- res$k q <- res$q addPar <- res$addPar qrPsi <- qr(res$Psi/sqrt(res$n)) piv <- sort.int(qrPsi$pivot, index.return=TRUE)$ix R <- qr.R(qrPsi)[,piv] T1 <- solve(res$Gamma, t(R)) V <- T1%*%t(T1)/res$n allV <- list() allV$vcov_par <- V[1:k, 1:k] allV$vcov_lambda <- V[(k+addPar+1):(k+addPar+q), (k+addPar+1):(k+addPar+q)] if (addPar > 0) { allV$vcov_Allpar <- V[1:(k+addPar), 1:(k+addPar)] allV$vcov_Alllambda <- V[-(1:(k+addPar)), -(1:(k+addPar))] } allV } vcov.ategel <- function(object, lambda = FALSE, robToMiss=TRUE, ...) { if (robToMiss) { return(vcov.gel(object, lambda)) } else { object$lambda <- rep(0, length(object$lambda)) res <- .vcovate(object) object$vcov_par <- res$vcov_par object$vcov_lambda <- res$vcov_lambda return(vcov.gel(object, lambda)) } } summary.ategel <- function(object, robToMiss=TRUE, ...) { if (robToMiss) { ans <- summary.gel(object) ans$typeDesc = paste(ans$typeDesc, "\n(S.E. are robust to misspecification)", sep="") } else { object$vcov_par <- vcov(object, robToMiss=FALSE) object$vcov_lambda <- vcov(object, TRUE, robToMiss=FALSE) ans <- summary.gel(object) ans$typeDesc = paste(ans$typeDesc, "\n(S.E. are not robust to misspecification", sep="") } ans } confint.ategel <- function (object, parm, level = 0.95, lambda = FALSE, type = c("Wald", "invLR", "invLM", "invJ"), fact = 3, corr = NULL, robToMiss=TRUE, ...) { type <- match.arg(type) if (type=="Wald") { if (!robToMiss) { object$vcov_par <- vcov(object, robToMiss=FALSE) object$vcov_lambda <- vcov(object, TRUE, robToMiss=FALSE) } return(confint.gel(object, parm, level, lambda, type, fact, corr, ...)) } object$allArg$g <- .momentFctATE object$allArg$y <- NULL object$allArg$w <- NULL object$allArg$treat <- NULL object$allArg$popMom <- NULL object$allArg$momType <- NULL object$allArg$family <- NULL object$allArg$x <- object$dat return(confint.gel(object, parm, level, lambda, type, fact, corr, ...)) } marginal <- function(object, ...) UseMethod("marginal") marginal.ategel <- function(object, ...) { family <- attr(object$dat, "family") if (is.null(family)) return(summary(object)$coef) k <- attr(object$dat, "k") p0 <- family$linkinv(object$coef[1]) p1 <- family$linkinv(object$coef[1]+object$coef[2:k]) p01 <- family$mu.eta(object$coef[1]) p11 <- family$mu.eta(object$coef[1]+object$coef[2:k]) A <- cbind(p11-p01, p11) V <- vcov(object, ...)[1:k,1:k] sd0 <- p01*sqrt(V[1,1]) sdd <- sapply(1:(k-1), function(i) sqrt(c(t(A[i,])%*%V[c(1,i+1), c(1, i+1)]%*%A[i,]))) coef <- cbind(c(p0,p1-p0), c(sd0, sdd)) coef <- cbind(coef, coef[,1]/coef[,2]) coef <- cbind(coef, 2*pnorm(-abs(coef[,3]))) colnames(coef) <- c("Estimate", "Std. Error", "t value", "Pr(>|t|)") rownames(coef) <- c("Control", paste("Treat", 1:(k-1) , " versus Control", sep="")) coef } checkConv <- function(obj, tolConv=1e-4,verbose=TRUE, ...) { if (!any(class(obj)=="ategel")) stop("The function is for ategel objects produced by ATEgel()") momType <- obj$allArg$momType popMom <- obj$allArg$popMom conv <- c(Lambda=obj$conv_lambda$convergence==0, Coef= obj$conv_par == 0) dat <- obj$dat$x nZ <- attr(obj$dat, "k")-1 z <- dat[,3:(2+nZ),drop=FALSE] x <- dat[,-(1:(2+nZ)),drop=FALSE] pt <- getImpProb(obj, ...) pt1 <- lapply(1:nZ, function(i) pt[z[,i]==1]/sum(pt[z[,i]==1])) pt0 <- pt[rowSums(z)==0]/sum(pt[rowSums(z)==0]) m0 <- colSums(x[rowSums(z)==0,,drop=FALSE]*pt0) m1 <- sapply(1:nZ, function(i) colSums(x[z[,i]==1,,drop=FALSE]*pt1[[i]])) mAll <- cbind(m0, m1) n0 <- paste(paste(colnames(z),collapse="=", sep=""),"=0",sep="") colnames(mAll) <- c(n0, paste(colnames(z),"=1",sep="")) if (!is.null(popMom)) { m <- popMom } else { m <- switch(momType, bal=m0, balSample=colMeans(x), ATT=c(m1)) } chk <- all(abs(mAll-m)0,pchisq(j,x$df, lower.tail = FALSE), "*******"))) } J_test <- noquote(paste("J-Test: degrees of freedom is ",x$df,sep="")) dimnames(j) <- list("Test E(g)=0: ", c("J-test", "P-value")) ans<-list(ntest=J_test, test = j) class(ans) <- "specTest" ans } print.specTest <- function(x, digits=5, ...) { cat("\n","## ",x$ntest," ##","\n\n") print.default(format(x$test, digits=digits), print.gap = 2, quote = FALSE) cat("\n") invisible(x) } specTest.gel <- function(x, ...) { n <- nrow(x$gt) khat <- x$khat gbar <- colMeans(x$gt) LR_test <- 2*x$objective*n*x$k2/(x$bwVal*x$k1^2) if (x$type == "ETHD") LR_test <- LR_test*2 LM_test <- n*crossprod(x$lambda, crossprod(khat, x$lambda))/(x$bwVal^2) J_test <- n*crossprod(gbar, solve(khat, gbar))/(x$k1^2) test <- c(LR_test, LM_test, J_test) df <- x$df ntest <- noquote(paste("Over-identifying restrictions tests: degrees of freedom is ", df, sep = "")) vptest <- pchisq(test,df,lower.tail = FALSE) if (df == 0) vptest[] <- "###" test <- cbind(test,vptest) dimnames(test) <- list(c("LR test", "LM test", "J test"), c("statistics", "p-value")) ans <- list(test = test, ntest = ntest) class(ans) <- "specTest" ans } gmm/R/gmm.R0000644000176200001440000005473713571757641012176 0ustar liggesusers# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ gmm <- function(g,x,t0=NULL,gradv=NULL, type=c("twoStep","cue","iterative"), wmatrix = c("optimal","ident"), vcov=c("HAC","MDS","iid","TrueFixed"), kernel=c("Quadratic Spectral","Truncated", "Bartlett", "Parzen", "Tukey-Hanning"),crit=10e-7,bw = bwAndrews, prewhite = 1, ar.method = "ols", approx="AR(1)",tol = 1e-7, itermax=100,optfct=c("optim","optimize","nlminb", "constrOptim"), model=TRUE, X=FALSE, Y=FALSE, TypeGmm = "baseGmm", centeredVcov = TRUE, weightsMatrix = NULL, traceIter = FALSE, data, eqConst = NULL, eqConstFullVcov = FALSE, mustar = NULL, onlyCoefficients=FALSE, ...) { type <- match.arg(type) kernel <- match.arg(kernel) vcov <- match.arg(vcov) wmatrix <- match.arg(wmatrix) optfct <- match.arg(optfct) if (!is.null(eqConst)) TypeGmm <- "constGmm" if(vcov=="TrueFixed" & is.null(weightsMatrix)) stop("TrueFixed vcov only for fixed weighting matrix") if(!is.null(weightsMatrix)) wmatrix <- "optimal" if(missing(data)) data<-NULL all_args<-list(data = data, g = g, x = x, t0 = t0, gradv = gradv, type = type, wmatrix = wmatrix, vcov = vcov, kernel = kernel, crit = crit, bw = bw, prewhite = prewhite, ar.method = ar.method, approx = approx, weightsMatrix = weightsMatrix, centeredVcov = centeredVcov, tol = tol, itermax = itermax, optfct = optfct, model = model, X = X, Y = Y, call = match.call(), traceIter = traceIter, eqConst = eqConst, eqConstFullVcov = eqConstFullVcov, mustar = mustar) class(all_args)<-TypeGmm Model_info<-getModel(all_args, ...) z <- momentEstim(Model_info, ...) if (onlyCoefficients) return(z[c("coefficients","objective")]) z <- FinRes(z, Model_info) z } evalGmm <- function(g, x, t0, tetw=NULL, gradv=NULL, wmatrix = c("optimal","ident"), vcov=c("HAC","iid","TrueFixed"), kernel=c("Quadratic Spectral","Truncated", "Bartlett", "Parzen", "Tukey-Hanning"),crit=10e-7,bw = bwAndrews, prewhite = FALSE, ar.method = "ols", approx="AR(1)",tol = 1e-7, model=TRUE, X=FALSE, Y=FALSE, centeredVcov = TRUE, weightsMatrix = NULL, data, mustar = NULL) { TypeGmm = "baseGmm" type <- "eval" kernel <- match.arg(kernel) vcov <- match.arg(vcov) wmatrix <- match.arg(wmatrix) if (is.null(tetw) & is.null(weightsMatrix)) stop("If the weighting matrix is not provided, you need to provide the vector of parameters tetw") if(vcov=="TrueFixed" & is.null(weightsMatrix)) stop("TrueFixed vcov only for fixed weighting matrix") if(!is.null(weightsMatrix)) wmatrix <- "optimal" if(missing(data)) data<-NULL all_args<-list(data = data, g = g, x = x, t0 = t0, tetw = tetw, gradv = gradv, type = type, wmatrix = wmatrix, vcov = vcov, kernel = kernel, crit = crit, bw = bw, prewhite = prewhite, ar.method = ar.method, approx = approx, weightsMatrix = weightsMatrix, centeredVcov = centeredVcov, tol = tol, itermax = 100, model = model, X = X, Y = Y, call = match.call(), traceIter = NULL, optfct="optim", eqConst = NULL, eqConstFullVcov = FALSE, mustar = mustar) class(all_args)<-TypeGmm Model_info<-getModel(all_args) class(Model_info) <- "baseGmm.eval" z <- momentEstim(Model_info) z <- FinRes(z, Model_info) z } tsls <- function(g,x,data) { if(class(g)[1] != "formula") stop("2SLS is for linear models expressed as formula only") ans <- gmm(g,x,data=data,vcov="iid", TypeGmm="tsls") ans$met <- "Two Stage Least Squares" ans$call <- match.call() class(ans) <- c("tsls","gmm") ans$vcov <- vcov(ans, type="Classical") return(ans) } .myKernHAC <- function(gmat, obj) { gmat <- as.matrix(gmat) if(obj$centeredVcov) gmat <- scale(gmat, scale=FALSE) class(gmat) <- "gmmFct" AllArg <- obj$WSpec$sandwich AllArg$x <- gmat if (is.function(AllArg$bw)) { if (identical(AllArg$bw, bwWilhelm)) { G <- .DmomentFct(obj$tet, obj$dat) obj <- list(gt=gmat, G=G) class(obj) <- "gmm" } else { obj <- gmat } AllArg$bw <- AllArg$bw(obj, order.by = AllArg$order.by, kernel = AllArg$kernel, prewhite = AllArg$prewhite, ar.method = AllArg$ar.method, approx=AllArg$approx) } weights <- weightsAndrews(x=gmat, bw=AllArg$bw, kernel=AllArg$kernel, prewhite=AllArg$prewhite, tol=AllArg$tol) w <- vcovHAC(x=gmat, order.by=AllArg$order.by, weights=weights, prewhite=AllArg$prewhite, sandwich=FALSE, ar.method=AllArg$ar.method, adjust=FALSE) attr(w,"Spec") <- list(weights = weights, bw = AllArg$bw, kernel = AllArg$kernel) w } getDat <- function (formula, h, data, error=TRUE) { cl <- match.call() mf <- match.call(expand.dots = FALSE) m <- match(c("formula", "data"), names(mf), 0L) mf <- mf[c(1L, m)] mf$drop.unused.levels <- TRUE mf$na.action <- "na.pass" mf[[1L]] <- as.name("model.frame") mf <- eval(mf, parent.frame()) mt <- attr(mf, "terms") y <- as.matrix(model.response(mf, "numeric")) namey <- as.character(formula)[2] if (ncol(y)>1) namey <- paste(namey, ".", 1:ncol(y), sep="") xt <- as.matrix(model.matrix(mt, mf, NULL)) n <- NROW(y) if (inherits(h,'formula')) { tmp <- as.character(formula) termsh <- terms(h) h <- paste(tmp[2], "~", as.character(h)[2], sep="") h <- as.formula(h) mfh <- match.call(expand.dots = FALSE) mh <- match(c("h", "data"), names(mfh), 0L) mfh <- mfh[c(1L, mh)] mfh$formula <- h mfh$h <- NULL mfh$drop.unused.levels <- TRUE mfh$na.action <- "na.pass" mfh[[1L]] <- as.name("model.frame") mfh <- eval(mfh, parent.frame()) mth <- attr(mfh, "terms") h <- as.matrix(model.matrix(mth, mfh, NULL)) } else { h <- as.matrix(h) chkInt <- sapply(1:ncol(h), function(i) all(h[,i]/mean(h[,i]) == 1)) if (sum(chkInt) > 1) stop("Too many intercept in the matrix h") if (any(chkInt)) { h <- h[,!chkInt, drop=FALSE] h <- cbind(1,h) intercept_h <- TRUE } else { if (attr(mt,"intercept")==1) { h <- cbind(1, h) intercept_h <- TRUE } else { intercept_h <- FALSE } } if(is.null(colnames(h))) { if (intercept_h) colnames(h) <- c("(Intercept)",paste("h",1:(ncol(h)-1),sep="")) else colnames(h) <- paste("h",1:ncol(h),sep="") } else { if (intercept_h) colnames(h)[1] <- "(Intercept)" coln_h <- colnames(h) coln_h <- gsub(" ", "", coln_h) chk <- which(coln_h == "") if (length(chk) >0) coln_h[chk] <- paste("h", 1:length(chk), sep="") if (any(duplicated(coln_h))) stop("colnames of the matrix h must be unique") colnames(h) <- coln_h } if (!intercept_h) { hFormula <- paste(colnames(h), collapse="+") hFormula <- as.formula(paste("~", hFormula, "-1", sep="")) } else { hFormula <- paste(colnames(h)[-1], collapse="+") hFormula <- as.formula(paste("~", hFormula, sep="")) } termsh <- terms(hFormula) } ny <- ncol(y) k <- ncol(xt) nh <- ncol(h) if (nh 0) { endo <- xm[, -includeExo, drop = FALSE] endoName <- colnames(endo) if (ncol(endo) != 0) { if (attr(dat$termsh, "intercept") == 1) restsls <- lm(endo~hm[,-1]) else restsls <- lm(endo~hm-1) fsls <- xm fsls[, -includeExo] <- restsls$fitted } else { fsls <- xm restsls <- NULL } } else { if (attr(dat$termsh, "intercept") == 1) restsls <- lm(xm~hm[,-1]) else restsls <- lm(xm~hm-1) fsls <- restsls$fitted endoName <- colnames(xm) } par <- lm.fit(as.matrix(fsls), ym)$coefficients if (ny == 1) { e2sls <- ym-xm%*%par v2sls <- lm.fit(as.matrix(hm), e2sls)$fitted value <- sum(v2sls^2)/sum(e2sls^2) } else { par <- c(t(par)) g2sls <- g(par, dat) w <- crossprod(g2sls)/n gb <- matrix(colMeans(g2sls), ncol = 1) value <- crossprod(gb, solve(w, gb)) } } } else { if (ny>1) { if (inv) { whx <- solve(w, (crossprod(hm, xm) %x% diag(ny))) wvecyh <- solve(w, matrix(crossprod(ym, hm), ncol = 1)) } else { whx <- w%*% (crossprod(hm, xm) %x% diag(ny)) wvecyh <- w%*%matrix(crossprod(ym, hm), ncol = 1) } dg <- gradv(NULL, dat) xx <- crossprod(dg, whx) par <- solve(xx, crossprod(dg, wvecyh)) } else { if (nh>k) { if(inv) xzwz <- crossprod(xm,hm)%*%solve(w,t(hm)) else xzwz <- crossprod(xm,hm)%*%w%*%t(hm) par <- solve(xzwz%*%xm,xzwz%*%ym) } else { par <- solve(crossprod(hm,xm),crossprod(hm,ym)) } } gb <- matrix(colSums(g(par, dat))/n, ncol = 1) if(inv) value <- crossprod(gb, solve(w, gb)) else value <- crossprod(gb, w%*%gb) } res <- list(par = par, value = value) if (!is.null(mustar)) { if (!is.null(type)) { w <- crossprod(hm)/NROW(hm) attr(w, "inv") <- TRUE } res <- .mustarLin(par, xm, hm, w, dat, mustar) } if (!is.null(type)) { if (type == "2sls") res$firstStageReg <- restsls if (!is.null(restsls)) { chk <- .chkPerfectFit(restsls) res$fsRes <- suppressWarnings(summary(restsls))[!chk] attr(res$fsRes, "Endo") <- endoName[!chk] } } return(res) } .mustarLin <- function(par, xm, hm, w, dat, mustar) { if (ncol(xm) == ncol(hm)) { par <- par-solve(crossprod(hm,xm),mustar) } else { hmxm <- crossprod(hm,xm) if (attr(w, "inv")) T1 <- solve(w, hmxm) else T1 <- w%*%hmxm par <- par-solve(crossprod(hmxm, T1), crossprod(T1, mustar)) } gb <- colSums(.momentFct(par, dat))/NROW(xm) if(attr(w, "inv")) value <- crossprod(gb, solve(w, gb)) else value <- crossprod(gb, w%*%gb) list(value=value, par=par) } .obj1 <- function(thet, x, w) { gt <- .momentFct(thet, x) gbar <- as.vector(colMeans(gt)) INV <- attr(w, "inv") if (INV) obj <- crossprod(gbar, solve(w, gbar)) else obj <- crossprod(gbar,w)%*%gbar return(obj) } .Gf <- function(thet, x, pt = NULL) { myenv <- new.env() assign('x', x, envir = myenv) assign('thet', thet, envir = myenv) barg <- function(x, thet) { gt <- .momentFct(thet, x) if (is.null(pt)) gbar <- as.vector(colMeans(gt)) else gbar <- as.vector(colSums(c(pt)*gt)) return(gbar) } G <- attr(numericDeriv(quote(barg(x, thet)), "thet", myenv), "gradient") return(G) } .objCue <- function(thet, x, type=c("HAC", "MDS", "iid", "ident", "fct", "fixed")) { type <- match.arg(type) gt <- .momentFct(thet, x) gbar <- as.vector(colMeans(gt)) w <- .weightFct(thet, x, type) if (attr(w, "inv")) obj <- crossprod(gbar,solve(w,gbar)) else obj <- crossprod(gbar,w%*%gbar) return(obj) } .momentFct <- function(tet, dat) { if (!is.null(attr(dat, "eqConst"))) { resTet <- attr(dat,"eqConst")$eqConst tet2 <- vector(length=length(tet)+nrow(resTet)) tet2[resTet[,1]] <- resTet[,2] tet2[-resTet[,1]] <- tet } else { tet2 <- tet } if (attr(dat, "ModelType") == "linear") { x <- dat$x ny <- dat$ny nh <- dat$nh k <- dat$k tet2 <- matrix(tet2, ncol = k) e <- x[,1:ny] - x[,(ny+1):(ny+k)] %*% t(tet2) gt <- e * x[, ny+k+1] if(nh > 1) for (i in 2:nh) gt <- cbind(gt, e*x[, (ny+k+i)]) } else { gt <- attr(dat,"momentfct")(tet2, dat) } if (!is.null(attr(dat, "smooth"))) { bw <- attr(dat, "smooth")$bw w <- attr(dat, "smooth")$w gt <- smoothG(gt, bw = bw, weights = w)$smoothx } gt <- as.matrix(gt) if (!is.null(attr(dat, "mustar"))) { if (length(attr(dat, "mustar")) != ncol(gt)) stop("dim of mustar must match the number of moment conditions") gt <- sweep(gt, 2, attr(dat, "mustar"), "-") } return(gt) } .DmomentFct <- function(tet, dat, pt=NULL) { if (!is.null(attr(dat, "eqConst"))) { resTet <- attr(dat,"eqConst")$eqConst tet2 <- vector(length=length(tet)+nrow(resTet)) tet2[resTet[,1]] <- resTet[,2] tet2[-resTet[,1]] <- tet } else { tet2 <- tet } if ((attr(dat,"ModelType") == "linear") & (is.null(attr(dat, "smooth")))) { x <- dat$x ny <- dat$ny nh <- dat$nh k <- dat$k dgb <- -(t(x[,(ny+k+1):(ny+k+nh)]) %*% x[,(ny+1):(ny+k)]) %x% diag(rep(1,ny))/nrow(x) if (!is.null(attr(dat, "eqConst"))) dgb <- dgb[,-attr(dat,"eqConst")$eqConst[,1], drop=FALSE] } else { if (is.null(attr(dat,"gradv"))) { dgb <- .Gf(tet, dat, pt) } else { dgb <- attr(dat,"gradv")(tet2, dat) if (!is.null(attr(dat, "eqConst"))) dgb <- dgb[,-attr(dat,"eqConst")$eqConst[,1], drop=FALSE] } } return(as.matrix(dgb)) } .weightFct <- function(tet, dat, type=c("HAC", "MDS", "iid", "ident", "fct", "fixed")) { type <- match.arg(type) if (type == "fixed") { w <- attr(dat, "weight")$w attr(w, "inv") <- FALSE } else if (type == "ident") { w <- diag(attr(dat, "q")) attr(w, "inv") <- FALSE } else { gt <- .momentFct(tet,dat) if (!is.null(attr(dat, "namesgt"))) colnames(gt) <- attr(dat, "namesgt") if(attr(dat, "weight")$centeredVcov) gt <- scale(gt, scale=FALSE) n <- NROW(gt) } if (type == "HAC") { obj <- attr(dat, "weight") obj$centeredVcov <- FALSE obj$tet <- tet obj$dat <- dat w <- .myKernHAC(gt, obj) attr(w, "inv") <- TRUE } if (type == "MDS") { w <- crossprod(gt)/n attr(w, "inv") <- TRUE } if (type == "iid") { if (attr(dat, "ModelType") == "linear") { if (dat$ny == 1) { e <- .residuals(tet, dat)$residuals sig <- mean(scale(e,scale=FALSE)^2) z <- dat$x[,(1+dat$ny+dat$k):ncol(dat$x)] w <- sig*crossprod(z)/length(e) } else { w <- crossprod(gt)/n } } else { w <- crossprod(gt)/n } attr(w, "inv") <- TRUE } if (type == "fct") { w <- attr(dat, "weight")$fct(gt, attr(dat, "weight")$fctArg) attr(w, "inv") <- TRUE } return(w) } .residuals <- function(tet, dat) { if (!is.null(attr(dat, "eqConst"))) { resTet <- attr(dat,"eqConst")$eqConst tet2 <- vector(length=length(tet)+nrow(resTet)) tet2[resTet[,1]] <- resTet[,2] tet2[-resTet[,1]] <- tet } else { tet2 <- tet } tet2 <- t(matrix(tet2, nrow = dat$ny)) y <- as.matrix(dat$x[,1:dat$ny]) x <- as.matrix(dat$x[,(dat$ny+1):(dat$ny+dat$k)]) yhat <- x%*%tet2 e <- y-yhat return(list(residuals=e, yhat=yhat)) } gmm/R/FinRes.R0000644000176200001440000001776313571757641012602 0ustar liggesusers# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ FinRes <- function(z, object, ...) { # object is computed by the getModel method # UseMethod("FinRes") } FinRes.baseGmm.res <- function(z, object, ...) { P <- object x <- z$dat n <- ifelse(is.null(nrow(z$gt)),length(z$gt),nrow(z$gt)) if (!is.null(attr(x,"eqConst")) & P$allArg$eqConstFullVcov) { eqConst <- attr(x,"eqConst")$eqConst coef <- rep(0,length(eqConst[,1])+length(z$coefficients)) ncoef <- rep("",length(eqConst[,1])+length(z$coefficients)) coef[-eqConst[,1]] <- z$coefficients ncoef[-eqConst[,1]] <- names(z$coefficients) coef[eqConst[,1]] <- eqConst[,2] ncoef[eqConst[,1]] <- rownames(eqConst) names(coef) <- ncoef z$coefficients <- coef if (!is.null(z$initTheta)) { initTheta <- rep(0,length(z$coefficients)) initTheta[eqConst[,1]] <- eqConst[,2] initTheta[-eqConst[,1]] <- z$initTheta z$initTheta <- initTheta } z$k <- z$k+nrow(eqConst) z$k2 <- z$k2+nrow(eqConst) attr(x, "eqConst") <- NULL z$specMod <- paste(z$specMod, "** Note: Covariance matrix computed for all coefficients based on restricted values \n Tests non-valid**\n\n") } z$G <- z$gradv(z$coefficients, x) G <- z$G if (P$vcov == "TrueFixed") v <- .weightFct(z$coefficient, x, "fixed") else v <- .weightFct(z$coefficient, x, P$vcov) z$v <- v if (P$vcov == "TrueFixed") { z$vcov=try(solve(crossprod(G, P$weightsMatrix) %*% G)/n, silent = TRUE) if(any(class(z$vcov) == "try-error")) { z$vcov <- matrix(Inf,length(z$coef),length(z$coef)) warning("The covariance matrix of the coefficients is singular") } } else if ( (is.null(P$weightsMatrix)) & (P$wmatrix != "ident") ) { if (dim(G)[1] == dim(G)[2]) { T1 <- try(solve(G), silent=TRUE) z$vcov <- try(T1%*%v%*%t(T1)/n, silent=TRUE) } else { z$vcov <- try(solve(crossprod(G, solve(v, G)))/n, silent = TRUE) } if(any(class(z$vcov) == "try-error")) { z$vcov <- matrix(Inf,length(z$coef),length(z$coef)) warning("The covariance matrix of the coefficients is singular") } } else { if (is.null(P$weightsMatrix)) w <- diag(ncol(z$gt)) else w <- P$weightsMatrix if (dim(G)[1] == dim(G)[2]){ T1 <- try(solve(G), silent=TRUE) } else { T1 <- try(solve(t(G)%*%w%*%G,t(G)%*%w), silent = TRUE) } if(any(class(T1) == "try-error")) { z$vcov <- matrix(Inf,length(z$coef),length(z$coef)) warning("The covariance matrix of the coefficients is singular") } else { z$vcov <- T1%*%v%*%t(T1)/n } } dimnames(z$vcov) <- list(names(z$coefficients), names(z$coefficients)) z$call <- P$call if(is.null(P$weightsMatrix)) { if(P$wmatrix == "ident") { z$w <- diag(ncol(z$gt)) } else { z$w <- try(solve(v), silent = TRUE) if(any(class(z$w) == "try-error")) warning("The covariance matrix of the moment function is singular") } } else { z$w <- P$weightsMatrix } z$weightsMatrix <- P$weightsMatrix z$infVcov <- P$vcov z$infWmatrix <- P$wmatrix z$allArg <- P$allArg if (P$wmatrix=="ident") z$met <- "One step GMM with W = identity" else z$met <- P$type z$kernel <- P$kernel z$coefficients <- c(z$coefficients) class(z) <- "gmm" return(z) } FinRes.sysGmm.res <- function(z, object, ...) { P <- object x <- z$dat z$G <- z$gradv(z$coefficients, x) n <- z$n G <- z$G v <- .weightFct_Sys(z$coefficient, x, P$vcov) nk <- z$k z$v <- v if (P$vcov == "TrueFixed") { z$vcov=try(solve(crossprod(G, P$weightsMatrix) %*% G)/n, silent = TRUE) if(any(class(z$vcov) == "try-error")) { z$vcov <- matrix(Inf,nk,nk) warning("The covariance matrix of the coefficients is singular") } } else if ( (is.null(P$weightsMatrix)) & (P$wmatrix != "ident") ) { z$vcov <- try(solve(crossprod(G, solve(v, G)))/n, silent = TRUE) if(any(class(z$vcov) == "try-error")) { z$vcov <- matrix(Inf,nk,nk) warning("The covariance matrix of the coefficients is singular") } } else { if (is.null(P$weightsMatrix)) w <- .weightFct_Sys(z$coefficients, x, "ident") else w <- P$weightsMatrix if (dim(G)[1] == dim(G)[2]){ T1 <- try(solve(G), silent=TRUE) } else { T1 <- try(solve(t(G)%*%w%*%G,t(G)%*%w), silent = TRUE) } if(any(class(T1) == "try-error")) { z$vcov <- matrix(Inf, nk, nk) warning("The covariance matrix of the coefficients is singular") } else { z$vcov <- T1%*%v%*%t(T1)/n } } if (attr(x, "sysInfo")$commonCoef) dimnames(z$vcov) <- list(P$namesCoef[[1]], P$namesCoef[[1]]) else dimnames(z$vcov) <- list(do.call(c, P$namesCoef), do.call(c, P$namesCoef)) z$call <- P$call if(is.null(P$weightsMatrix)) { if(P$wmatrix == "ident") { z$w <- .weightFct_Sys(z$coefficient, x, "ident") } else { z$w <- try(solve(v), silent = TRUE) if(any(class(z$w) == "try-error")) warning("The covariance matrix of the moment function is singular") } } else { z$w <- P$weightsMatrix } for (i in 1:length(z$coefficients)) names(z$coefficients[[i]]) <- P$namesCoef[[i]] z$weightsMatrix <- P$weightsMatrix z$infVcov <- P$vcov z$infWmatrix <- P$wmatrix z$allArg <- P$allArg z$met <- paste("System of Equations: ", P$type, sep="") z$kernel <- P$kernel z$coefficients <- c(z$coefficients) class(z) <- c("sysGmm", "gmm") return(z) } gmm/R/gmmTests.R0000644000176200001440000001354413571757641013210 0ustar liggesusers# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ # This function compute what is needed for the K statistics of KleiBergen (2005) ##################################################################################### .BigCov <- function(obj,theta0) { insertRC <- function(A,w,v) { NewA <- matrix(ncol=ncol(A)+length(w),nrow=nrow(A)+length(w)) NewA[-w,-w] <- A NewA[w,] <- v NewA[,w] <- v NewA } dg <- function(obj) { dat <- obj$dat x <- dat$x[,(dat$ny+1):(dat$ny+dat$k)] k <- ncol(x) h <- dat$x[,(dat$ny+dat$k+1):ncol(dat$x)] qt <- array(dim=c(dim(obj$gt),k)) for (i in 1:k) qt[,,i] <- -x[,i]*h qt} if (attr(obj$dat,"ModelType") == "nonlinear") { Myenv <- new.env() assign("obj", obj, envir=Myenv) assign("theta", theta0, envir=Myenv) gFunct <- obj$g assign("g",gFunct,envir=Myenv) res <- numericDeriv(quote(g(theta,obj$dat)),"theta",Myenv) qT <- attr(res,"gradient") } else { qT <- dg(obj)} qTmat <- apply(qT,3,colSums) qT <- matrix(qT,nrow=dim(qT)[1]) gt <- obj$g(theta0,obj$dat) fT <- colSums(gt) n <- nrow(gt) q <- ncol(gt) All <- cbind(gt,qT) All <- sweep(All,2,colMeans(All),FUN="-") f <- function(x) all(abs(x)<1e-7) w <- which(apply(All,2,f)) if (length(w) != 0) All <- All[,-w] if (dim(All)[2] >= dim(All)[1]) stop("Too many moment conditions. Cannot estimate V") if (attr(obj$dat, "weight")$vcov == "iid") { V <- crossprod(All)/nrow(All) } else { class(All) <- "gmmFct" argSand <- attr(obj$dat, "weight")$WSpec$sandwich argSand$x <- All argSand$sandwich <- FALSE V <- do.call(kernHAC,argSand) } if (length(w) != 0) V <- insertRC(V,w,0) Vff <- V[1:q,1:q] Vthetaf <- V[(q+1):nrow(V),1:q] list(Vff=Vff,Vthetaf=Vthetaf,qT=qTmat,fT=fT,n=n,q=q) } KTest <- function(obj, theta0=NULL, alphaK = 0.04, alphaJ = 0.01) { if (class(obj)[1] != "gmm") stop("KTest is only for gmm type objects") if (!is.null(attr(obj$dat,"eqConst"))) { if (!is.null(theta0)) warning("setting a value for theta0 has no effect when the gmm is already constrained") resTet <- attr(obj$dat,"eqConst")$eqConst tet <- obj$coefficients theta0 <- vector(length=length(tet)+nrow(resTet)) theta0[resTet[,1]] <- resTet[,2] theta0[-resTet[,1]] <- tet testName <- paste(rownames(resTet), " = ", resTet[,2], collapse="\n") if (attr(obj$dat,"ModelType") == "linear") { obj$dat$k <- length(theta0) } dfK <- nrow(resTet) which <- resTet[,1] attr(obj$dat, "eqConst") <- NULL } else { if (is.null(theta0)) stop("You must either estimate a restricted model first or set theta0 under H0") if (length(theta0) != length(obj$coef)) stop("theta0 is only for tests on the whole vector theta when obj is an unrestricted GMM") dfK <- length(theta0) testName <- paste(names(obj$coef), " = ", theta0, collapse="\n") which <- 1:length(theta0) } V <- .BigCov(obj, theta0) Vff <- V$Vff Vtf <- V$Vthetaf qT <- V$qT fT <- V$fT dfJ <- V$q-length(theta0) # the following is vec(D) D <- c(qT)-Vtf%*%solve(Vff,fT) D <- matrix(D,ncol=length(theta0)) meat <- t(D)%*%solve(Vff,D) bread <- t(fT)%*%solve(Vff,D) K <- bread%*%solve(meat,t(bread))/V$n pv <- 1-pchisq(K,dfK) S <- t(fT)%*%solve(Vff,fT)/V$n J <- S-K dfS <- dfK + dfJ pvJ <- 1-pchisq(J,dfJ) type <- c("K statistics","J statistics", "S statistics") test <- c(K,J,S) pvS <- 1-pchisq(S,dfS) test <- cbind(test,c(pv,pvJ,pvS),c(dfK,dfJ,dfS)) dist <- paste("Chi_sq with ", c(dfK,dfJ,dfS), " degrees of freedom", sep="") if(dfJ>0) ans <- list(test=test,dist=dist,type=type,testName=testName) else ans <- list(test=matrix(test[1,],nrow=1),dist=dist[1],type=type[1],testName=testName) if (pvJ=length(obj$coefficients)) stop("Too many constraints") if (is.character(which)) { if (any(!(which %in% names(obj$coefficients)))) stop("Wrong coefficient names in eqConst") if (attr(obj$dat,"ModelType") == "linear") which <- match(which,names(obj$coefficients)) } if (!is.null(argCall$t0)) { argCall$t0 <- obj$coefficients argCall$t0[which] <- value } if (attr(obj$dat,"ModelType") == "nonlinear") { eqConst <- which } else { eqConst <- cbind(which,value) } argCall$eqConst <- eqConst res <- do.call(gmm,argCall) res$call <- match.call() return(res) } gmm/R/bandwidth.R0000644000176200001440000001232412717151771013335 0ustar liggesusers# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ bwWilhelm <- function(x, order.by = NULL, kernel = c("Quadratic Spectral", "Bartlett", "Parzen", "Tukey-Hanning"), approx = c("AR(1)", "ARMA(1,1)"), weights = NULL, prewhite = 1, ar.method = "ols", data=list()) { ## ensure that NAs are omitted if(is.list(x) && !is.null(x$na.action)) class(x$na.action) <- "omit" # ensure that x is a gmm object stopifnot(attr(x,"class") == "gmm") kernel <- match.arg(kernel) approx <- match.arg(approx) prewhite <- as.integer(prewhite) # the following line applies only to the case class(res)=="gmm" umat <- x$gt n <- nrow(umat) k <- ncol(umat) # the following line applies only to the case class(res)=="gmm" G <- x$G p <- ncol(G) # return Andrews' bandwidth in the just-identified case if (p==k) { class(umat) <- "gmmFct" return(bwAndrews(umat, order.by=order.by, kernel=kernel, approx=approx, weights=weights, prewhite=prewhite, ar.method=ar.method, data=data)) } if(!is.null(order.by)) { if(inherits(order.by, "formula")) { z <- model.matrix(order.by, data = data) z <- as.vector(z[,ncol(z)]) } else { z <- order.by } index <- order(z) } else { index <- 1:n } umat <- umat[index, , drop = FALSE] ## compute weights (w_a, see p. 834) ## (try to set the intercept weight to 0) #### could be ignored by using: weights = 1 if(is.null(weights)) { weights <- rep(1, p) unames <- colnames(umat) if(!is.null(unames) && "(Intercept)" %in% unames) weights[which(unames == "(Intercept)")] <- 0 else { res <- try(as.vector(rowMeans(estfun(x)/model.matrix(x), na.rm = TRUE)), silent = TRUE) if(inherits(res, "try-error")) res <- try(residuals(x), silent = TRUE) if(!inherits(res, "try-error")) weights[which(colSums((umat - res)^2) < 1e-16)] <- 0 } if(isTRUE(all.equal(weights, rep(0, p)))) weights <- rep(1, p) } else { weights <- rep(weights, length.out = p) } if(length(weights) < 2) weights <- 1 ## pre-whitening if(prewhite > 0) { var.fit <- ar(umat, order.max = prewhite, demean = FALSE, aic = FALSE, method = ar.method) if(inherits(var.fit, "try-error")) stop(sprintf("VAR(%i) prewhitening of estimating functions failed", prewhite)) umat <- as.matrix(na.omit(var.fit$resid)) n <- n - prewhite } # define kernel constants kernConst <- switch(kernel, "Bartlett" = list(q = 1, g_q = 1, mu1 = 1, mu2 = 2/3), "Parzen" = list(q = 2, g_q = 6, mu1 = 0.75, mu2 = 0.539286), "Tukey-Hanning" = list(q = 2, g_q = pi^2/4, mu1 = 1, mu2 = 0.75), "Quadratic Spectral" = list(q = 2, g_q = 1.421223, mu1 = 1.25003, mu2 = 0.999985)) # fit approximating model to moments if(approx == "AR(1)") { fitAR1 <- function(x) { rval <- ar(x, order.max = 1, aic = FALSE, method = "ols") rval <- c(rval$ar, sqrt(rval$var.pred)) names(rval) <- c("rho", "sigma") return(rval) } ar.coef <- apply(umat, 2, fitAR1) Omega0 <- ar.coef["sigma", ]^2 / (1-ar.coef["rho", ])^2 Omega_q <- if(kernConst$q == 1) { diag(2 * ar.coef["sigma", ]^2 * ar.coef["rho", ] / ((1 - ar.coef["rho", ])^3 * (1 + ar.coef["rho", ]))) } else { diag(2 * ar.coef["sigma", ]^2 * ar.coef["rho", ] / (1 - ar.coef["rho", ])^4) } } else { fitARMA11 <- function(x) { rval <- arima(x, order = c(1, 0, 1), include.mean = FALSE) rval <- c(rval$coef, sqrt(rval$sigma2)) names(rval) <- c("rho", "psi", "sigma") return(rval) } arma.coef <- apply(umat, 2, fitARMA11) Omega0 <- (1 + ar.coef["psi", ])^2 * ar.coef["sigma", ]^2 / (1 - ar.coef["rho", ])^2 Omega_q <- if(kernConst$q == 1) { diag(2 * (1 + ar.coef["psi", ] * ar.coef["rho", ]) * (ar.coef["psi", ] + ar.coef["rho", ]) * ar.coef["sigma", ]^2 / ((1 - ar.coef["rho", ])^3 * (1 + ar.coef["rho", ]))) } else { diag(2 * (1 + ar.coef["psi", ] * ar.coef["rho", ]) * (ar.coef["psi", ] + ar.coef["rho", ]) * ar.coef["sigma", ]^2 / (1 - ar.coef["rho", ])^4) } } # compute remaining bandwidth components W <- diag(weights) Omega0inv <- diag(1/Omega0) Sigma0 <- solve( crossprod(Omega0inv%*%G, G) ) H0 <- Sigma0 %*% t(G) %*% Omega0inv P0 <- Omega0inv - Omega0inv %*% G %*% H0 # compute optimal bandwidth nu2 <- (2 * kernConst$mu1 + kernConst$mu2) * (k - p) * sum(diag(Sigma0 %*% W)) nu3 <- kernConst$g_q^2 * sum(diag(t(Omega_q) %*% t(H0) %*% W %*% H0 %*% Omega_q %*% P0)) c0 <- if(nu2 * nu3 > 0) 2 * kernConst$q else -1 rval <- (c0 * nu3/nu2 * n)^(1/(1 + 2 * kernConst$q)) return(rval) } gmm/R/momentEstim.R0000644000176200001440000013227413571757641013710 0ustar liggesusers# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ momentEstim <- function(object, ...) { UseMethod("momentEstim") } momentEstim.sysGmm.twoStep.formula <- function(object, ...) { dat <- object$x y <- lapply(1:length(dat), function(i) dat[[i]]$x[,1]) y <- do.call(c, y) z <- lapply(1:length(dat), function(i) dat[[i]]$x[,(2+dat[[i]]$k):ncol(dat[[i]]$x), drop=FALSE]) z <- .diagMatrix(z) x <- lapply(1:length(dat), function(i) dat[[i]]$x[,2:(dat[[i]]$k+1), drop=FALSE]) if (attr(dat, "sysInfo")$commonCoef) { x <- do.call(rbind, x) } else if (!is.null(attr(dat, "sysInfo")$crossEquConst)) { k <- attr(dat, "k")[[1]] x <- .diagMatrix(x, (1:k)[-attr(dat, "sysInfo")$crossEquConst]) } else { x <- .diagMatrix(x) } names(y) <- rownames(x) <- rownames(z) <- 1:length(y) data <- list(y=y, x=x, z=z) dat2 <- getDat(y~x-1, ~z-1, data=data) attr(dat2, "ModelType") <- "linear" res0 <- .tetlin(dat2, 1, "2sls") tet0 <- .getThetaList(res0$par, dat) fsRes <- res0$fsRes w <- .weightFct_Sys(tet=tet0, dat=dat, type=object$vcov) #return(list(w=w,tet0=tet0,dat=dat,dat2=dat2)) res <- .tetlin(dat2, w) par <- .getThetaList(res$par, dat) names(par) <- names(dat) df <- ncol(z) - ncol(x) k <- ncol(x) q <- ncol(z) n <- nrow(x) df.residuals <- n - k z = list(coefficients = par, objective = res$value, dat=dat, k=k, q=q, df=df, df.residual=df.residual, n=n) z$gt <- object$g(z$coefficients, dat) z$initTheta <- tet0 tmp <- lapply(1:length(dat), function(i) .residuals(z$coefficients[[i]], dat[[i]])) z$fitted.values <- lapply(1:length(dat), function(i) tmp[[i]]$yhat) z$residuals <- lapply(1:length(dat), function(i) tmp[[i]]$residuals) z$terms <- lapply(1:length(dat), function(i) dat[[i]]$mt) if(object$model) z$model <- lapply(1:length(dat), function(i) dat[[i]]$mf) if(object$X) z$x <- lapply(1:length(dat), function(i) as.matrix(dat[[i]]$x[,(dat[[i]]$ny+1):(dat[[i]]$ny+dat[[i]]$k)])) if(object$Y) z$y <- lapply(1:length(dat), function(i) as.matrix(dat[[i]]$x[,1:dat[[i]]$ny])) z$gradv <- object$gradv z$g <- object$g z$WSpec <- object$WSpec z$w0 <- w colnames(z$gt) <- do.call(c, object$namesgt) z$fsRes <- fsRes class(z) <- "sysGmm.res" z$specMod <- object$specMod return(z) } momentEstim.baseGmm.eval <- function(object, ...) { P <- object x <- P$x n <- attr(x, "n") q <- attr(x, "q") k <- attr(x, "k") k2 <- k df <- q - k if (is.null(object$tetw)) object$tetw <- object$t0 if (is.null(attr(x, "weight")$w)) w <- .weightFct(object$tetw, x, P$vcov) else w <- .weightFct(object$tetw, x, "fixed") fct <- .obj1(object$t0, x, w) if (attr(x,"ModelType") == "linear") { z = list(coefficients = object$t0, objective = fct, dat = x, k = k, k2 = k2, n = n, q = q, df = df, df.residual = (n-k)) b <- z$coefficients tmp <- .residuals(b, x) z$fitted.values <- tmp$yhat z$residuals <- tmp$rediduals z$terms <- x$mt if(P$model) z$model <- x$mf if(P$X) z$x <- as.matrix(x$x[,(x$ny+1):(x$ny+x$k)]) if(P$Y) z$y <- as.matrix(x$x[,1:x$ny]) } else { attr z = list(coefficients = object$t0, objective = fct, k=k, k2=k2, n=n, q=q, df=df, initTheta = object$t0, dat=x) } z$gt <- .momentFct(z$coefficients, x) if (is.null(colnames(z$gt))) colnames(z$gt) <- paste("gt",1:ncol(z$gt),sep="") else colnames(z$gt) <- P$namesgt z$gradv <- P$gradv z$iid <- P$iid z$g <- P$g z$WSpec <- P$WSpec z$w0 <- w names(z$coefficients) <- P$namesCoef class(z) <- paste(P$TypeGmm,".res",sep="") z$specMod <- P$specMod return(z) } momentEstim.baseGmm.twoStep <- function(object, ...) { P <- object x <- P$x n <- attr(x, "n") q <- attr(x, "q") k <- attr(x, "k") k2 <- k df <- q - k w = .weightFct(NULL, x, "ident") chkOptim <- any(P$optfct == c("optim", "constrOptim")) if (chkOptim) { if (P$gradvf) { gr2 <- function(thet, x, w) { gt <- .momentFct(thet, x) Gbar <- .DmomentFct(thet, x) gbar <- as.vector(colMeans(gt)) INV <- attr(w, "inv") if (INV) obj <- crossprod(Gbar, solve(w, gbar)) else obj <- crossprod(Gbar,w)%*%gbar return(obj*2) } } else { gr2 <- NULL } } if (P$optfct == "optim") { argDots <- list(...) allArgOptim <- list(par = P$t0, fn = .obj1, gr = gr2, x = x, w = w) allArgOptim <- c(allArgOptim,argDots) res <- do.call(optim,allArgOptim) } if (P$optfct == "constrOptim") { if (!any(c("ui","ci") %in% names(list(...)))) stop("You must specify ui and ci when optfct is set to constrOptim") argDots <- list(...) ui <- argDots$ui ci <- argDots$ci argDots$ui <- NULL argDots$ci <- NULL allArgOptim <- list(theta = P$t0, f = .obj1, grad = gr2, ui = ui, ci = ci, x = x, w = w) allArgOptim <- c(allArgOptim,argDots) res <- do.call(constrOptim,allArgOptim) } if (P$optfct == "nlminb") { res <- nlminb(P$t0, .obj1, x = x, w = w, ...) res$value <- res$objective } if (P$optfct == "optimize") { res <- optimize(.obj1, P$t0, x = x, w = w, ...) res$par <- res$minimum res$value <- res$objective } if (q == k2 | P$wmatrix == "ident") { z = list(coefficients = res$par, objective = res$value, k=k, k2=k2, n=n, q=q, df=df) if (chkOptim) z$algoInfo <- list(convergence = res$convergence, counts = res$counts, message = res$message) else if(P$optfct == "nlminb") z$algoInfo <- list(convergence = res$convergence, counts = res$evaluations, message = res$message) } else { w <- .weightFct(res$par, P$x, P$vcov) if (chkOptim) { allArgOptim$w <- w res2 <- do.call(get(object$optfct),allArgOptim) } if (P$optfct == "nlminb") { res2 <- nlminb(P$t0, .obj1, x = x, w = w, ...) res2$value <- res2$objective } if (P$optfct == "optimize") { res2 <- optimize(.obj1, P$t0, x = x, w = w, ...) res2$par <- res2$minimum res2$value <- res2$objective } z = list(coefficients = res2$par, objective = res2$value, k=k, k2=k2, n=n, q=q, df=df, initTheta = res$par) if (chkOptim) { z$algoInfo <- list(convergence = res2$convergence, counts = res2$counts, message = res2$message) z$InitialAlgoInfo <- list(convergence = res$convergence, counts = res$counts, message = res$message) } else if(P$optfct == "nlminb") { z$algoInfo <- list(convergence = res2$convergence, counts = res2$evaluations, message = res2$message) z$InitialAlgoInfo <- list(convergence = res$convergence, counts = res$evaluations, message = res$message) } } z$dat <- P$x z$gt <- P$g(z$coefficients, P$x) z$gradv <- P$gradv z$iid <- P$iid z$g <- P$g z$WSpec <- P$WSpec names(z$coefficients) <- P$namesCoef if (is.null(colnames(z$gt))) colnames(z$gt) <- paste("gt",1:ncol(z$gt),sep="") class(z) <- paste(P$TypeGmm,".res",sep="") z$specMod <- P$specMod z$w0 <- w return(z) } momentEstim.tsls.twoStep.formula <- function(object, ...) { P <- object g <- P$g dat <- P$x if (dat$ny > 1) stop("tsls is for one dimentional dependent variable") n <- attr(dat, "n") q <- attr(dat, "q") k <- attr(dat, "k") k2 <- k*dat$ny df <- q-k*dat$ny w = .weightFct(NULL, dat, "ident") if (q == k2) { res2 <- .tetlin(dat, w) z = list(coefficients = res2$par, objective = res2$value, dat = dat, k = k, k2 = k2, n = n, q = q, df = df, df.residual = (n-k)) } else { res2 <- .tetlin(dat, w, type="2sls") z = list(coefficients = res2$par, objective = res2$value, dat=dat, k=k, k2=k2, n=n, q=q, df=df, df.residual = (n-k)) } z$gt <- g(z$coefficients, dat) tmp <- .residuals(z$coefficients, dat) z$fitted.values <- tmp$yhat z$residuals <- tmp$residuals z$terms <- dat$mt if(P$model) z$model <- dat$mf if(P$X) z$x <- as.matrix(dat$x[,(dat$ny+1):(dat$ny+dat$k)]) if(P$Y) z$y <- as.matrix(dat$x[,1:dat$ny]) z$gradv <- P$gradv z$iid <- P$iid z$g <- P$g z$WSpec <- P$WSpec z$w0 <- w names(z$coefficients) <- P$namesCoef colnames(z$gt) <- P$namesgt z$fsRes <- res2$fsRes class(z) <- "baseGmm.res" z$specMod <- P$specMod return(z) } momentEstim.baseGmm.twoStep.formula <- function(object, ...) { P <- object g <- P$g dat <- P$x n <- attr(dat, "n") q <- attr(dat, "q") k <- attr(dat, "k") k2 <- k*dat$ny df <- q-k*dat$ny w = .weightFct(NULL, dat, "ident") if (q == k2 | P$wmatrix == "ident") { res2 <- .tetlin(dat, w) z = list(coefficients = res2$par, objective = res2$value, dat = dat, k = k, k2 = k2, n = n, q = q, df = df, df.residual = (n-k)) } else { res1 <- .tetlin(dat, w, type="2sls") initTheta <- res1$par w <- .weightFct(res1$par, dat, P$vcov) res2 <- .tetlin(dat, w) res2$firstStageReg <- res1$firstStageReg res2$fsRes <- res1$fsRes z = list(coefficients = res2$par, objective = res2$value, dat=dat, k=k, k2=k2, n=n, q=q, df=df, initTheta = initTheta, df.residual = (n-k)) } z$gt <- g(z$coefficients, dat) b <- z$coefficients tmp <- .residuals(b, dat) z$fitted.values <- tmp$yhat z$residuals <- tmp$residuals z$terms <- dat$mt if(P$model) z$model <- dat$mf if(P$X) z$x <- as.matrix(dat$x[,(dat$ny+1):(dat$ny+dat$k)]) if(P$Y) z$y <- as.matrix(dat$x[,1:dat$ny]) z$gradv <- P$gradv z$iid <- P$iid z$g <- P$g z$WSpec <- P$WSpec z$w0 <- w names(z$coefficients) <- P$namesCoef colnames(z$gt) <- P$namesgt if (P$vcov == "iid" & P$wmatrix != "ident") z$fsRes <- res2$fsRes class(z) <- paste(P$TypeGmm,".res",sep="") z$specMod <- P$specMod return(z) } momentEstim.baseGmm.iterative.formula <- function(object, ...) { P <- object g <- P$g dat <- P$x n <- attr(dat, "n") q <- attr(dat, "q") k <- attr(dat, "k") k2 <- k*dat$ny df <- q-k*dat$ny w = .weightFct(NULL, dat, "ident") if (q == k2 | P$wmatrix == "ident") { res <- .tetlin(dat, w) z = list(coefficients = res$par, objective = res$value, dat = dat, k = k, k2 = k2, n = n, q = q, df = df, df.residual = (n-k)) } else { res <- .tetlin(dat, w, type="2sls") fsRes <- res$fsRes initTheta <- res$par ch <- 100000 j <- 1 while(ch > P$crit) { tet <- res$par w <- .weightFct(tet, dat, P$vcov) res <- .tetlin(dat, w) ch <- crossprod(abs(tet- res$par)/tet)^.5 if (j>P$itermax) { cat("No convergence after ", P$itermax, " iterations") ch <- P$crit } if(P$traceIter) cat("Iter :",j,": value=",res$value,", Coef = ", res$par,"\n") j <- j+1 } z = list(coefficients = res$par, objective = res$value, dat=dat, k=k, k2=k2, n=n, q=q, df=df, initTheta=initTheta, df.residual = (n-k)) } z$gt <- g(z$coefficients, dat) tmp <- .residuals(z$coefficients, dat) z$fitted.values <- tmp$yhat z$residuals <- tmp$residuals z$terms <- dat$mt if(P$model) z$model <- dat$mf if(P$X) z$x <- as.matrix(dat$x[,(dat$ny+1):(dat$ny+dat$k)]) if(P$Y) z$y <- as.matrix(dat$x[,1:dat$ny]) z$terms <- dat$mt if(P$model) z$model <- dat$mf z$gradv <- P$gradv z$iid <- P$iid z$g <- P$g z$WSpec <- P$WSpec z$w0 <- w names(z$coefficients) <- P$namesCoef colnames(z$gt) <- P$namesgt if (P$vcov == "iid" & P$wmatrix != "ident") z$fsRes <- fsRes class(z) <- paste(P$TypeGmm,".res",sep="") z$specMod <- P$specMod return(z) } momentEstim.baseGmm.iterative <- function(object, ...) { P <- object x <- P$x n <- attr(x, "n") q <- attr(x, "q") k <- attr(x, "k") k2 <- k df <- q - k w = .weightFct(NULL, x, "ident") chkOptim <- any(P$optfct == c("optim", "constrOptim")) if (chkOptim) { if (P$gradvf) { gr2 <- function(thet, x, w) { gt <- .momentFct(thet, x) Gbar <- .DmomentFct(thet, x) gbar <- as.vector(colMeans(gt)) INV <- attr(w, "inv") if (INV) obj <- crossprod(Gbar, solve(w, gbar)) else obj <- crossprod(Gbar,w)%*%gbar return(obj*2) } } else { gr2 <- NULL } } if (P$optfct == "optim") { argDots <- list(...) allArgOptim <- list(par = P$t0, fn = .obj1, gr = gr2, x = x, w = w) allArgOptim <- c(allArgOptim,argDots) res <- do.call(optim,allArgOptim) } if (P$optfct == "constrOptim") { if (!any(c("ui","ci") %in% names(list(...)))) stop("You must specify ui and ci when optfct is set to constrOptim") argDots <- list(...) ui <- argDots$ui ci <- argDots$ci argDots$ui <- NULL argDots$ci <- NULL allArgOptim <- list(theta = P$t0, f = .obj1, grad = gr2, ui = ui, ci = ci, x = x, w = w) allArgOptim <- c(allArgOptim,argDots) res <- do.call(constrOptim,allArgOptim) } if (P$optfct == "nlminb") { res <- nlminb(P$t0, .obj1, x = x, w = w, ...) res$value <- res$objective } if (P$optfct == "optimize") { res <- optimize(.obj1, P$t0, x = x, w = w, ...) res$par <- res$minimum res$value <- res$objective } if (q == k2 | P$wmatrix == "ident") { z <- list(coefficients = res$par, objective = res$value, k=k, k2=k2, n=n, q=q, df=df) if (chkOptim) z$algoInfo <- list(convergence = res$convergence, counts = res$counts, message = res$message) else if(P$optfct == "nlminb") z$algoInfo <- list(convergence = res$convergence, counts = res$evaluations, message = res$message) } else { initTheta = res$par z <- list() if (chkOptim) z$initialAlgoInfo <- list(convergence = res$convergence, counts = res$counts, message = res$message) else if(P$optfct == "nlminb") z$initialAlgoInfo <- list(convergence = res$convergence, counts = res$evaluations, message = res$message) ch <- 100000 j <- 1 while(ch > P$crit) { tet <- res$par w <- .weightFct(tet, P$x, P$vcov) if (chkOptim) { allArgOptim$w <- w allArgOptim[[1]] <- tet res <- do.call(get(P$optfct),allArgOptim) } if (P$optfct == "nlminb") { res <- nlminb(tet, .obj1, x = P$x, w = w, ...) res$value <- res$objective } if (P$optfct == "optimize") { res <- optimize(.obj1, P$t0, x = P$x, w = w, ...) res$par <- res$minimum res$value <- res$objective } ch <- crossprod(tet-res$par)^.5/(1+crossprod(tet)^.5) if (j>P$itermax) { cat("No convergence after ", P$itermax, " iterations") ch <- P$crit } if(P$traceIter) cat("Iter :",j,": value=",res$value,", Coef = ", res$par,"\n") j <- j+1 } z2 = list(coefficients = res$par, objective = res$value,k=k, k2=k2, n=n, q=q, df=df, initTheta=initTheta) z <- c(z, z2) if (chkOptim) z$algoInfo <- list(convergence = res$convergence, counts = res$counts, message = res$message) else if(P$optfct == "nlminb") z$algoInfo <- list(convergence = res$convergence, counts = res$evaluations, message = res$message) } z$dat <- P$x z$gt <- P$g(z$coefficients, P$x) z$gradv <- P$gradv z$iid <- P$iid z$g <- P$g z$WSpec <- P$WSpec z$w0 <- w names(z$coefficients) <- P$namesCoef if (is.null(colnames(z$gt))) colnames(z$gt) <- paste("gt",1:ncol(z$gt),sep="") z$specMod <- P$specMod class(z) <- paste(P$TypeGmm,".res",sep="") return(z) } momentEstim.baseGmm.cue.formula <- function(object, ...) { P <- object g <- P$g dat <- P$x n <- attr(dat, "n") q <- attr(dat, "q") k <- attr(dat, "k") k2 <- k*dat$ny df <- q-k*dat$ny w <- .weightFct(NULL, dat, "ident") if (q == k2 | P$wmatrix == "ident") { res <- .tetlin(dat, w) z = list(coefficients = res$par, objective = res$value, dat = dat, k = k, k2 = k2, n = n, q = q, df = df, df.residual = (n-k)) P$weightMessage <- "No CUE needed because the model is just identified" } else { if (is.null(P$t0)) { P$t0 <- .tetlin(dat, w, type="2sls")$par initTheta <- P$t0 } else { initTheta <- P$t0 } if (P$vcov == "HAC") { w <- .weightFct(P$t0, dat, P$vcov) attr(dat, "weight")$WSpec$sandwich$bw <- attr(w,"Spec")$bw P$weightMessage <- "Weights for kernel estimate of the covariance are fixed and based on the first step estimate of Theta" } if (P$optfct == "optim") res2 <- optim(P$t0,.objCue, x = dat, type = P$vcov, ...) if (P$optfct == "constrOptim") { if (!any(c("ui","ci") %in% names(list(...)))) stop("You must specify ui and ci when optfct is set to constrOptim") argDots <- list(...) ui <- argDots$ui ci <- argDots$ci argDots$ui <- NULL argDots$ci <- NULL allArgOptim <- list(theta = P$t0, f = .objCue, grad = NULL, ui = ui, ci = ci, x = dat, type = P$vcov) allArgOptim <- c(allArgOptim,argDots) res2 <- do.call(constrOptim,allArgOptim) } if (P$optfct == "nlminb") { res2 <- nlminb(P$t0,.objCue, x = dat, type = P$vcov, ...) res2$value <- res2$objective } if (P$optfct == "optimize") { res2 <- optimize(.objCue,P$t0, x = dat, type = P$vcov, ...) res2$par <- res2$minimum res2$value <- res2$objective } z = list(coefficients = res2$par, objective = res2$value, dat = dat, k = k, k2 = k2, n = n, q = q, df = df, initTheta=initTheta, df.residual = (n-k)) if (any(P$optfct == c("optim", "constrOptim"))) z$algoInfo <- list(convergence = res2$convergence, counts = res2$counts, message = res2$message) else if(P$optfct == "nlminb") z$algoInfo <- list(convergence = res2$convergence, counts = res2$evaluations, message = res2$message) } z$gt <- g(z$coefficients, dat) tmp <- .residuals(z$coefficients, dat) z$fitted.values <- tmp$yhat z$residuals <- tmp$residuals z$terms <- dat$mt if(P$model) z$model <- dat$mf if(P$X) z$x <- as.matrix(dat$x[,(dat$ny+1):(dat$ny+dat$k)]) if(P$Y) z$y <- as.matrix(dat$x[,1:dat$ny]) z$dat <- dat z$terms <- dat$mt if(P$model) z$model <- dat$mf z$gradv <- P$gradv z$iid <- P$iid z$g <- P$g z$specMod <- P$specMod z$cue <- list(weights=P$fixedKernW,message=P$weightMessage) z$WSpec <- P$WSpec z$w0 <- .weightFct(z$coefficients, dat, P$vcov) names(z$coefficients) <- P$namesCoef colnames(z$gt) <- P$namesgt class(z) <- paste(P$TypeGmm,".res",sep="") return(z) } momentEstim.baseGmm.cue <- function(object, ...) { P <- object x <- P$x n <- attr(x, "n") q <- attr(x, "q") k <- attr(x, "k") k2 <- k df <- q - k if (q == k2 | P$wmatrix == "ident") { w = .weightFct(NULL, x, "ident") res <- gmm(P$allArg$g,P$allArg$x,P$t0,wmatrix="ident",optfct=P$optfct, ...) z <- list(coefficients = res$coef, objective = res$objective, algoInfo = res$algoInfo, k=k, k2=k2, n=n, q=q, df=df, initTheta=P$t0) P$weightMessage <- "No CUE needed because the model if just identified or you set wmatrix=identity" } else { w <- .weightFct(P$t0, x, P$vcov) initTheta <- P$t0 if (P$vcov == "HAC") { res <- try(gmm(P$allArg$g,P$allArg$x,P$t0,wmatrix="ident", optfct=P$optfct, ...)) if(any(class(res)=="try-error")) stop("Cannot get a first step estimate to compute the weights for the Kernel estimate of the covariance matrix; try different starting values") w <- .weightFct(res$coefficients, x, P$vcov) attr(x, "weight")$WSpec$sandwich$bw <- attr(w,"Spec")$bw P$weightMessage <- "Weights for kernel estimate of the covariance are fixed and based on the first step estimate of Theta" } else { res <- list() } if (P$optfct == "optim") { res2 <- optim(P$t0, .objCue, x = x, type = P$vcov, ...) } if (P$optfct == "constrOptim") { if (!any(c("ui","ci") %in% names(list(...)))) stop("You must specify ui and ci when optfct is set to constrOptim") argDots <- list(...) ui <- argDots$ui ci <- argDots$ci argDots$ui <- NULL argDots$ci <- NULL allArgOptim <- list(theta = P$t0, f = .objCue, grad = NULL, ui = ui, ci = ci, x = x, type = P$vcov) allArgOptim <- c(allArgOptim,argDots) res2 <- do.call(constrOptim,allArgOptim) } if (P$optfct == "nlminb") { res2 <- nlminb(P$t0, .objCue, x = x, type = P$vcov, ...) res2$value <- res2$objective } if (P$optfct == "optimize") { res2 <- optimize(.objCue,P$t0, x = x, type = P$vcov, ...) res2$par <- res2$minimum res2$value <- res2$objective } z = list(coefficients=res2$par,objective=res2$value, k=k, k2=k2, n=n, q=q, df=df, initTheta=initTheta) if (any(P$optfct == c("optim", "constrOptim"))) { z$algoInfo <- list(convergence = res2$convergence, counts = res2$counts, message = res2$message) z$InitialAlgoInfo <- list(convergence = res$algoInfo$convergence, counts = res$algoInfo$counts, message = res$algoInfo$message) } else if (P$optfct == "nlminb") { z$algoInfo <- list(convergence = res2$convergence, counts = res2$evaluations, message = res2$message) z$InitialAlgoInfo <- list(convergence = res$algoInfo$convergence, counts = res$algoInfo$evaluations, message = res$algoInfo$message) } } z$dat <- x z$gradv <- P$gradv z$gt <- P$g(z$coefficients, x) z$w0 <- .weightFct(z$coefficients, x, P$vcov) z$iid <- P$iid z$g <- P$g z$cue <- list(weights=P$fixedKernW,message=P$weightMessage) names(z$coefficients) <- P$namesCoef if (is.null(colnames(z$gt))) colnames(z$gt) <- paste("gt",1:ncol(z$gt),sep="") z$WSpec <- P$WSpec z$specMod <- P$specMod class(z) <- paste(P$TypeGmm, ".res", sep = "") return(z) } momentEstim.baseGel.modFormula <- function(object, ...) { P <- object g <- P$g q <- attr(P$x, "q") n <- attr(P$x, "n") k <- attr(P$x, "k") df <- q-k*P$x$ny l0Env <- new.env() assign("l0",rep(0,q),envir=l0Env) if (!P$constraint) { if (P$optfct == "optim") res <- optim(P$tet0, .thetf, P = P, l0Env = l0Env, ...) if (P$optfct == "nlminb") res <- nlminb(P$tet0, .thetf, P = P, l0Env = l0Env, ...) if (P$optfct == "optimize") { res <- optimize(.thetf, P$tet0, P = P, l0Env = l0Env, ...) res$par <- res$minimum res$convergence <- "There is no convergence code for optimize" } } if(P$constraint) res <- constrOptim(P$tet0, .thetf, grad = NULL, P = P, l0Env = l0Env, ...) All <- .thetf(res$par, P, "all",l0Env = l0Env) gt <- All$gt rlamb <- All$lambda z <- list(coefficients = res$par, lambda = rlamb$lambda, conv_lambda = rlamb$conv, conv_par = res$convergence, dat=P$x) z$type <- P$type z$gt <- gt pt <- .getImpProb(z$gt, z$lambda, P$type, P$k1, P$k2) z$pt <- c(pt) z$conv_moment <- attr(pt, "conv_moment") z$conv_pt <- attr(pt, "conv_pt") z$objective <- All$obj z$call <- P$call z$k1 <- P$k1 z$k2 <- P$k2 z$CGEL <- P$CGEL z$typeDesc <- P$typeDesc z$specMod <- P$specMod z$df <- df names(z$coefficients) <- object$namesCoef if (P$onlyCoefficients) return(z[c("coefficients","lambda","conv_lambda","conv_par","objective")]) if (!is.null(object$namesgt)) { colnames(z$gt) <- object$namesgt } else { colnames(z$gt) <- paste("g",1:ncol(z$gt), sep="") } names(z$lambda) <- paste("Lam(", colnames(z$gt), ")", sep="") if (!is.null(attr(P$x,"eqConst")) & P$allArg$eqConstFullVcov) { eqConst <- attr(P$x,"eqConst")$eqConst coef <- rep(0,length(eqConst[,1])+length(z$coefficients)) ncoef <- rep("",length(eqConst[,1])+length(z$coefficients)) coef[-eqConst[,1]] <- z$coefficients ncoef[-eqConst[,1]] <- names(z$coefficients) coef[eqConst[,1]] <- eqConst[,2] ncoef[eqConst[,1]] <- rownames(eqConst) names(coef) <- ncoef z$coefficients <- coef attr(P$x, "k") <- attr(P$x, "k") + nrow(eqConst) z$df <- z$df - nrow(eqConst) attr(P$x,"eqConst") <- NULL z$specMod <- paste(z$specMod, "** Note: Covariance matrix computed for all coefficients based on restricted values \n Tests non-valid**\n\n") } if(P$gradvf) G <- P$gradv(z$coefficients, P$x) else G <- P$gradv(z$coefficients, P$x, z$pt) allVcov <- try(.vcovGel(gt, G, P$k1, P$k2, P$bwVal, z$pt), silent=TRUE) if (any(class(allVcov) == "try-error")) { z$vcov_par <- matrix(NA, length(z$coefficients), length(z$coefficients)) z$vcov_lambda <- matrix(NA, length(z$lambda), length(z$lambda)) z$khat <- NULL warning("Cannot compute the covariance matrices") } else { z <- c(z, allVcov) } z$weights <- P$w z$bwVal <- P$bwVal names(z$bwVal) <- "Bandwidth" dimnames(z$vcov_par) <- list(names(z$coefficients), names(z$coefficients)) dimnames(z$vcov_lambda) <- list(names(z$lambda), names(z$lambda)) tmp <- .residuals(z$coefficients, P$x) z$fitted.values <- tmp$yhat z$residuals <- tmp$residuals z$dat <- P$x z$terms <- P$x$mt if(P$model) z$model <- P$x$mf if(P$X) z$x <- as.matrix(P$x$x[,(P$x$ny+1):(P$x$ny+P$x$k)]) if(P$Y) z$y <- as.matrix(P$x$x[,1:P$x$ny]) class(z) <- paste(P$TypeGel, ".res", sep = "") z$allArg <- P$allArg return(z) } momentEstim.baseGel.mod <- function(object, ...) { P <- object x <- P$x q <- attr(x, "q") n <- attr(x, "n") df <- q - attr(x, "k") l0Env <- new.env() assign("l0",rep(0,q),envir=l0Env) if (!P$constraint) { if (P$optfct == "optim") res <- optim(P$tet0, .thetf, P = P, l0Env = l0Env, ...) if (P$optfct == "nlminb") res <- nlminb(P$tet0, .thetf, P = P, l0Env = l0Env, ...) if (P$optfct == "optimize") { res <- optimize(.thetf, P$tet0, P = P, l0Env = l0Env, ...) res$par <- res$minimum res$convergence <- "There is no convergence code for optimize" } } if(P$constraint) res <- constrOptim(P$tet0, .thetf, grad = NULL, P = P,l0Env = l0Env, ...) All <- .thetf(res$par, P, "all",l0Env = l0Env) gt <- All$gt rlamb <- All$lambda z <- list(coefficients = res$par, lambda = rlamb$lambda, conv_lambda = rlamb$conv, conv_par = res$convergence, dat=x) z$type <- P$type z$gt <- gt pt <- .getImpProb(z$gt, z$lambda, P$type, P$k1, P$k2) z$pt <- c(pt) z$conv_moment <- attr(pt, "conv_moment") z$conv_pt <- attr(pt, "conv_pt") z$objective <- All$obj names(z$coefficients) <- P$namesCoef z$specMod <- P$specMod z$df <- df if (!is.null(object$namesgt)) { colnames(z$gt) <- object$namesgt } else { colnames(z$gt) <- paste("g",1:ncol(z$gt), sep="") } names(z$lambda) <- paste("Lam(", colnames(z$gt), ")", sep="") if (!is.null(attr(x,"eqConst")) & P$allArg$eqConstFullVcov) { eqConst <- attr(x,"eqConst")$eqConst coef <- rep(0,length(eqConst[,1])+length(z$coefficients)) ncoef <- rep("",length(eqConst[,1])+length(z$coefficients)) coef[-eqConst[,1]] <- z$coefficients ncoef[-eqConst[,1]] <- names(z$coefficients) coef[eqConst[,1]] <- eqConst[,2] ncoef[eqConst[,1]] <- rownames(eqConst) names(coef) <- ncoef z$coefficients <- coef attr(x, "k") <- attr(x, "k") + nrow(eqConst) z$df <- z$df - nrow(eqConst) attr(x,"eqConst") <- NULL z$specMod <- paste(z$specMod, "** Note: Covariance matrix computed for all coefficients based on restricted values \n Tests non-valid**\n\n") } if (P$onlyCoefficients) return(z[c("coefficients", "lambda", "conv_lambda", "conv_par", "objective")]) if(P$gradvf) G <- P$gradv(z$coefficients, x) else G <- P$gradv(z$coefficients, x, z$pt) z$G <- G allVcov <- try(.vcovGel(gt, G, P$k1, P$k2, P$bwVal, z$pt), silent=TRUE) if (any(class(allVcov) == "try-error")) { z$vcov_par <- matrix(NA, length(z$coefficients), length(z$coefficients)) z$vcov_lambda <- matrix(NA, length(z$lambda), length(z$lambda)) z$khat <- NULL warning("Cannot compute the covariance matrices") } else { z <- c(z, allVcov) } z$weights <- P$w z$bwVal <- P$bwVal names(z$bwVal) <- "Bandwidth" dimnames(z$vcov_par) <- list(names(z$coefficients), names(z$coefficients)) dimnames(z$vcov_lambda) <- list(names(z$lambda), names(z$lambda)) if(P$X) z$x <- x z$call <- P$call z$k1 <- P$k1 z$k2 <- P$k2 z$CGEL <- P$CGEL z$typeDesc <- P$typeDesc z$allArg <- P$allArg class(z) <- paste(P$TypeGel, ".res", sep = "") return(z) } momentEstim.fixedW.formula <- function(object, ...) { P <- object g <- P$g dat <- P$x n <- attr(dat, "n") q <- attr(dat, "q") k <- attr(dat, "k") k2 <- k*dat$ny df <- q-k*dat$ny w = .weightFct(NULL, dat, "fixed") if(!all(dim(w) == c(q,q))) stop("The matrix of weights must be qxq") eigenW <- svd(w)$d if(!is.double(eigenW)) warning("The matrix of weights is not strictly positive definite") if(is.double(eigenW)) { if(any(eigenW<=0)) warning("The matrix of weights is not strictly positive definite") } res2 <- .tetlin(dat, w) z = list(coefficients = res2$par, objective = res2$value, dat=dat, k=k, k2=k2, n=n, q=q, df=df, df.residual = (n-k)) z$gt <- g(z$coefficients, dat) tmp <- .residuals(z$coefficients, dat) z$fitted.values <- tmp$yhat z$residuals <- tmp$rediduals z$terms <- dat$mt if(P$model) z$model <- dat$mf if(P$X) z$x <- as.matrix(dat$x[,(dat$ny+1):(dat$ny+dat$k)]) if(P$Y) z$y <- as.matrix(dat$x[,1:dat$ny]) z$dat <- dat z$terms <- dat$mt if(P$model) z$model <- dat$mf z$gradv <- P$gradv z$iid <- P$iid z$g <- P$g z$WSpec <- P$WSpec names(z$coefficients) <- P$namesCoef colnames(z$gt) <- P$namesgt z$specMod <- P$specMod class(z) <- paste(P$TypeGmm,".res",sep="") return(z) } momentEstim.fixedW <- function(object, ...) { P <- object x <- P$x n <- attr(x, "n") q <- attr(x, "q") k <- attr(x, "k") k2 <- k df <- q - k w = .weightFct(NULL, x, "fixed") if(!all(dim(w) == c(q,q))) stop("The matrix of weights must be qxq") eigenW <- svd(w)$d if(!is.double(eigenW)) warning("The matrix of weights is not strictly positive definite") if(is.double(eigenW)) { if(any(eigenW<=0)) warning("The matrix of weights is not strictly positive definite") } chkOptim <- any(P$optfct == c("optim", "constrOptim")) if (chkOptim) { if (P$gradvf) { gr2 <- function(thet, x, w) { gt <- .momentFct(thet, x) Gbar <- .DmomentFct(thet, x) gbar <- as.vector(colMeans(gt)) INV <- attr(w, "inv") if (INV) obj <- crossprod(Gbar, solve(w, gbar)) else obj <- crossprod(Gbar,w)%*%gbar return(obj*2) } } else { gr2 <- NULL } } if (P$optfct == "optim") { argDots <- list(...) allArgOptim <- list(par = P$t0, fn = .obj1, gr = gr2, x = x, w = w) argDots$gr <- NULL allArgOptim <- c(allArgOptim,argDots) res2 <- do.call(optim,allArgOptim) } if (P$optfct == "constrOptim") { if (!any(c("ui","ci") %in% names(list(...)))) stop("You must specify ui and ci when optfct is set to constrOptim") argDots <- list(...) ui <- argDots$ui ci <- argDots$ci argDots$ui <- NULL argDots$ci <- NULL allArgOptim <- list(theta = P$t0, f = .obj1, grad = gr2, ui = ui, ci = ci, x = x, w = w) allArgOptim <- c(allArgOptim,argDots) res2 <- do.call(constrOptim,allArgOptim) } if (P$optfct == "nlminb") { res2 <- nlminb(P$t0, .obj1, x = P$x, w = w, ...) res2$value <- res2$objective } if (P$optfct == "optimize") { res2 <- optimize(.obj1, P$t0, x = P$x, w = w, ...) res2$par <- res2$minimum res2$value <- res2$objective } z = list(coefficients = res2$par, objective = res2$value, k=k, k2=k2, n=n, q=q, df=df) if (chkOptim) z$algoInfo <- list(convergence = res2$convergence, counts = res2$counts, message = res2$message) else if(P$optfct == "nlminb") z$algoInfo <- list(convergence = res2$convergence, counts = res2$evaluations, message = res2$message) z$dat <- P$x z$gt <- P$g(z$coefficients, P$x) z$gradv <- P$gradv z$iid <- P$iid z$g <- P$g z$WSpec <- P$WSpec names(z$coefficients) <- P$namesCoef if (is.null(colnames(z$gt))) colnames(z$gt) <- paste("gt",1:ncol(z$gt),sep="") z$specMod <- P$specMod class(z) <- paste(P$TypeGmm,".res",sep="") return(z) } momentEstim.baseGel.eval <- function(object, ...) { P <- object q <- attr(P$x, "q") n <- attr(P$x, "n") l0Env <- new.env() assign("l0",rep(0,q),envir=l0Env) All <- .thetf(P$tet0, P, "all",l0Env = l0Env) gt <- All$gt rlamb <- All$lambda z <- list(coefficients = P$tet0, lambda = rlamb$lambda, conv_lambda = rlamb$conv, conv_par = NULL, dat=P$x) z$type <- P$type z$gt <- gt pt <- .getImpProb(z$gt, z$lambda, P$type, P$k1, P$k2) z$pt <- c(pt) z$conv_moment <- attr(pt, "conv_moment") z$conv_pt <- attr(pt, "conv_pt") z$objective <- All$obj z$call <- P$call z$k1 <- P$k1 z$k2 <- P$k2 z$CGEL <- P$CGEL z$typeDesc <- paste(P$typeDesc, " (Eval only, tests non-valid) ", sep="") z$specMod <- P$specMod names(z$coefficients) <- P$namesCoef z$df <- length(z$lambda) - length(z$coefficients) if (!is.null(object$namesgt)) { colnames(z$gt) <- object$namesgt } else { colnames(z$gt) <- paste("g",1:ncol(z$gt), sep="") } names(z$lambda) <- paste("Lam(", colnames(z$gt), ")", sep="") if(P$gradvf) G <- P$gradv(z$coefficients, P$x) else G <- P$gradv(z$coefficients, P$x, z$pt) z$G <- G allVcov <- .vcovGel(gt, G, P$k1, P$k2, P$bwVal, z$pt) z <- c(z, allVcov) z$weights <- P$w z$bwVal <- P$bwVal names(z$bwVal) <- "Bandwidth" dimnames(z$vcov_par) <- list(names(z$coefficients), names(z$coefficients)) dimnames(z$vcov_lambda) <- list(names(z$lambda), names(z$lambda)) if (attr(P$x,"ModelType") == "linear") { tmp <- .residuals(z$coefficients, P$x) z$fitted.values <- tmp$yhat z$residuals <- tmp$residuals z$terms <- P$x$mt if(P$model) z$model <- P$x$mf if(P$X) z$x <- as.matrix(P$x$x[,(P$x$ny+1):(P$x$ny+P$x$k)]) if(P$Y) z$y <- as.matrix(P$x$x[,1:P$x$ny]) } return(z) } gmm/R/sysGmm.R0000644000176200001440000002725112634331531012645 0ustar liggesusers# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ five <- function(g, h, commonCoef = FALSE, data = NULL) { res <- sysGmm(g, h, wmatrix = "optimal", vcov = "CondHom", commonCoef=commonCoef, data=data) attr(res$dat, "sysInfo")$typeDesc <- "Full-Information IV (FIVE)" res$call <- match.call() res } threeSLS <- function(g, h, commonCoef = FALSE, data = NULL) { if (!is(h, "formula")) if (length(h) != 1) stop("In 3SLS, h is a single equation since the same instruments are used in each equation") res <- sysGmm(g, h, vcov = "CondHom", commonCoef=commonCoef, data=data) attr(res$dat, "sysInfo")$typeDesc <- "3-stage Least Squares" res$call <- match.call() res } sur <- function(g, commonCoef = FALSE, data = NULL) { if (!is.list(g)) stop("g must be list of formulas") if (length(g) == 1) stop("For single equation GMM, use the function gmm()") if (!all(sapply(1:length(g), function(i) is(g[[i]], "formula")))) stop("g must be a list of formulas") tm <- lapply(1:length(g), function(i) terms(g[[i]])) reg <- lapply(1:length(g), function(i) attr(tm[[i]], "term.labels")) reg <- unique(do.call(c,reg)) h <- paste(reg, collapse = "+") if (all(sapply(1:length(g), function(i) attr(tm[[i]], "intercept") == 0))) h <- paste(h, "-1") h <- as.formula(paste("~", h)) res <- sysGmm(g, h, vcov = "CondHom", commonCoef=commonCoef, data=data) attr(res$dat, "sysInfo")$typeDesc <- "Seemingly Unrelated Regression (SUR)" res$call <- match.call() res } randEffect <- function(g, data = NULL) { res <- sur(g, commonCoef = TRUE, data = data) attr(res$dat, "sysInfo")$typeDesc <- "Random Effect Estimator" res$call <- match.call() res } sysGmm <- function(g, h, wmatrix = c("optimal","ident"), vcov=c("MDS", "HAC", "CondHom", "TrueFixed"), kernel=c("Quadratic Spectral","Truncated", "Bartlett", "Parzen", "Tukey-Hanning"), crit=10e-7,bw = bwAndrews, prewhite = FALSE, ar.method = "ols", approx="AR(1)",tol = 1e-7, model=TRUE, X=FALSE, Y=FALSE, centeredVcov = TRUE, weightsMatrix = NULL, data, crossEquConst = NULL, commonCoef = FALSE) { kernel <- match.arg(kernel) vcov <- match.arg(vcov) wmatrix <- match.arg(wmatrix) TypeGmm = "sysGmm" if(vcov=="TrueFixed" & is.null(weightsMatrix)) stop("TrueFixed vcov only for fixed weighting matrix") if(!is.null(weightsMatrix)) wmatrix <- "optimal" if(missing(data)) data<-NULL all_args<-list(data = data, g = g, h = h, wmatrix = wmatrix, vcov = vcov, kernel = kernel, crit = crit, bw = bw, prewhite = prewhite, ar.method = ar.method, approx = approx, weightsMatrix = weightsMatrix, centeredVcov = centeredVcov, tol = tol, model = model, X = X, Y = Y, call = match.call(), commonCoef=commonCoef, crossEquConst = crossEquConst) class(all_args)<-TypeGmm Model_info<-getModel(all_args) z <- momentEstim(Model_info) z <- FinRes(z, Model_info) return(z) } .momentFct_Sys <- function(tet, dat) { q <- length(dat) f <- function(i, dat) { d <- dat[[i]] attr(d, "eqConst") <- attr(dat, "eqConst") attr(d, "ModelType") <- attr(dat, "ModelType") attr(d,"momentfct") <- attr(dat,"momentfct") attr(d, "smooth") <- attr(dat, "smooth") .momentFct(tet[[i]], d) } mom <- lapply(1:q, function(i) f(i, dat)) do.call(cbind, mom) } .DmomentFct_Sys <- function(tet, dat, pt=NULL) { q <- length(dat) f <- function(i, dat) { d <- dat[[i]] attr(d, "eqConst") <- attr(dat, "eqConst") attr(d, "ModelType") <- attr(dat, "ModelType") attr(d,"momentfct") <- attr(dat,"momentfct") attr(d, "smooth") <- attr(dat, "smooth") .DmomentFct(tet[[i]], d, pt) } dmom <- lapply(1:q, function(i) f(i, dat)) if (attr(dat, "sysInfo")$commonCoef) do.call(rbind,dmom) else .diagMatrix(dmom) } .weightFct_Sys<- function(tet, dat, type=c("MDS", "HAC", "CondHom", "ident", "fct", "fixed")) { type <- match.arg(type) if (type == "fixed") { w <- attr(dat, "weight")$w attr(w, "inv") <- FALSE } else if (type == "ident") { w <- diag(attr(dat, "q")) attr(w, "inv") <- FALSE } else { if (type == "HAC") { gt <- .momentFct_Sys(tet,dat) if(attr(dat, "weight")$centeredVcov) gt <- residuals(lm(gt~1)) n <- NROW(gt) obj <- attr(dat, "weight") obj$centeredVcov <- FALSE w <- .myKernHAC(gt, obj) attr(w, "inv") <- TRUE } if (type == "MDS") { gt <- .momentFct_Sys(tet,dat) n <- NROW(gt) if(attr(dat, "weight")$centeredVcov) gt <- scale(gt, scale=FALSE) w <- crossprod(gt)/n attr(w, "inv") <- TRUE } if (type == "CondHom") { e <- lapply(1:length(dat), function(i) .residuals(tet[[i]], dat[[i]])$residuals) e <- do.call(cbind, e) Sig <- crossprod(scale(e, scale=FALSE))/nrow(e) Z <- lapply(1:length(dat), function(i) dat[[i]]$x[,(2+dat[[i]]$k):ncol(dat[[i]]$x)]) Z <- do.call(cbind, Z) w <- crossprod(Z)/nrow(e) for (i in 1:length(dat)) for (j in 1:length(dat)) { s1 <- 1+(i-1)*dat[[i]]$nh e1 <- i*dat[[i]]$nh s2 <- 1+(j-1)*dat[[j]]$nh e2 <- j*dat[[j]]$nh w[s1:e1, s2:e2] <- w[s1:e1, s2:e2]*Sig[i,j] } attr(w, "inv") <- TRUE } } return(w) } .diagMatrix <- function(xlist, which=NULL) { # Create block diagonal matrix from matrices with the same number of rows. m <- length(xlist) n <- NROW(xlist[[1]]) l <- sapply(1:m, function(i) dim(as.matrix(xlist[[i]]))) if (!is.null(which)) { if (any(l[2,1]!=l[2,])) stop("diagMatrix with which given is for X with the same number of columns") which <- sort(which) if (length(which) == l[2,1]) { dimX <- rowSums(l) which <- NULL } else { dimX <- c(sum(l[1,]), length(which)*m + l[2,1]-length(which)) } } else { dimX <- rowSums(l) } X <- matrix(0, dimX[1], dimX[2]) if (is.null(which)) { for (i in 1:m) { s1 <- 1 + (i-1)*n e1 <- n*i s2 <- 1 + sum(l[2,][-(i:m)]) e2 <- sum(l[2,][1:i]) X[s1:e1, s2:e2] <- xlist[[i]] } } else { q <- match(1:l[2,1],which) q2 <- which(is.na(q)) wai <- 1 for (j in q2) { if (wai < j) { xlist2 <- lapply(1:length(xlist), function(i) xlist[[i]][,wai:(j-1), drop=FALSE]) k <- j-wai Xtmp <- .diagMatrix(xlist2) X[,wai:(wai+length(xlist)*k-1)] <- Xtmp wai <- wai + length(xlist)*k } X[,wai] <- do.call(c, lapply(1:length(xlist), function(i) xlist[[i]][,j])) wai <- wai+1 } if (max(q2) < l[2,1]) { xlist2 <- lapply(1:length(xlist), function(i) xlist[[i]][,-(1:max(q2))]) Xtmp <- .diagMatrix(xlist2) X[,wai:ncol(X)] <- Xtmp } } X } .getThetaList <- function(tet, dat) { neq <- length(dat) if (attr(dat, "sysInfo")$commonCoef) { k <- attr(dat, "k")[[1]] if (length(tet) != k) stop("Wrong length of tet") tet2 <- rep(list(c(tet)), neq) } else if (!is.null(attr(dat, "sysInfo")$crossEquConst)) { k <- attr(dat, "k")[[1]] cst <- attr(dat, "sysInfo")$crossEquConst nk <- (k-length(cst))*neq + length(cst) if (nk != length(tet)) stop("Wrong length of tet") tet2 <- matrix(NA, k, neq) wai <- 1 for (j in cst) { if (wai < j) { ind <- wai:(j-1) tet2[ind,] <- tet[1:(neq*length(ind))] tet <- tet[-(1:(neq*(j-wai)))] wai <- wai + length(ind) } tet2[wai,] <- tet[1] tet <- tet[-1] wai <- wai+1 } if (max(cst) < k) tet2[(max(cst)+1):k,] <- tet attr(dat, "sysInfo")$crossEquConst <- NULL tet2 <- .getThetaList(c(tet2), dat) } else { k2 <- do.call(c, attr(dat, "k")) if (sum(k2) != length(tet)) stop("Wrong length of tet") tet2 <- list() for (j in 1:length(k2)) { tet2[[j]] <- tet[1:k2[j]] tet <- tet[-(1:k2[j])] } } tet2 } .chkPerfectFit <- function(obj) { r <- as.matrix(obj$residuals) f <- as.matrix(obj$fitted.values) rdf <- obj$df.residual rss <- colSums(r^2) mf <- colMeans(f) mv <- apply(f, 2, var) resvar <- rss/rdf resvar < (mf^2 + mv) * 1e-30 } gmm/R/Methods.gel.R0000644000176200001440000002552713460072542013545 0ustar liggesusers# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # A copy of the GNU General Public License is available at # http://www.r-project.org/Licenses/ .invTest <- function(object, which, level = 0.95, fact = 3, type=c("LR", "LM", "J"), corr=NULL) { type <- match.arg(type) argCall <- object$allArg if (length(which) > 1) stop("tests are inverted only for one parameter") if (is.character(which)) { which <- which(which == names(object$coefficients)) if (length(which) == 0) stop("Wrong parameter names") } wtest <- which(type==c("LR", "LM", "J")) if (object$df > 0) { test0 <- specTest(object)$test[wtest,] test0 <- test0[1] } else { test0 <- 0 } if (length(object$coefficients) == 1) { argCall$optfct <- NULL argCall$constraint <- NULL argCall$eqConst <- NULL argCall$eqConstFullVcov <- NULL fctCall <- "evalGel" } else { fctCall <- "gel" argCall$eqConst <- which } if (length(object$coefficients) == 2) { sdcoef <- sqrt(diag(vcov(object))[-which]) coef <- object$coefficients[-which] upper <- coef + fact*sdcoef lower <- coef - fact*sdcoef argCall$method <- "Brent" argCall$lower <- lower argCall$upper <- upper } sdcoef <- sqrt(diag(vcov(object))[which]) coef <- object$coefficients[which] int1 <- c(coef, coef + fact*sdcoef) int2 <- c(coef - fact*sdcoef, coef) fct <- function(coef, which, wtest, level, test0, corr=NULL) { argCall$tet0 <- object$coefficients argCall$tet0[which] <- coef obj <- do.call(get(fctCall), argCall) test <- as.numeric(specTest(obj)$test[wtest,1]) - test0 if (is.null(corr)) level - pchisq(test, 1) else level - pchisq(test/corr, 1) } res1 <- uniroot(fct, int1, which = which, wtest=wtest, level=level, test0=test0, corr=corr) res2 <- uniroot(fct, int2, which = which, wtest=wtest, level=level, test0=test0, corr=corr) sort(c(res1$root, res2$root)) } confint.gel <- function(object, parm, level = 0.95, lambda = FALSE, type = c("Wald", "invLR", "invLM", "invJ"), fact = 3, corr = NULL, ...) { type <- match.arg(type) z <- object n <- nrow(z$gt) if (type == "Wald") { ntest <- "Direct Wald type confidence interval" se_par <- sqrt(diag(z$vcov_par)) par <- z$coefficients tval <- par/se_par se_parl <- sqrt(diag(z$vcov_lambda)) lamb <- z$lambda zs <- qnorm((1 - level)/2, lower.tail=FALSE) ch <- zs*se_par if(!lambda) { ans <- cbind(par-ch, par+ch) dimnames(ans) <- list(names(par), c((1 - level)/2, 0.5+level/2)) } if(lambda) { if (length(z$coefficients) == length(z$lambda)) { cat("\nNo confidence intervals for lambda when the model is just identified.\n") return(NULL) } else { chl <- zs*se_parl ans <- cbind(lamb - chl, lamb + chl) dimnames(ans) <- list(names(lamb), c((1 - level)/2, 0.5 + level/2)) } } if(!missing(parm)) ans <- ans[parm,] } else { if(missing(parm)) parm <- names(object$coefficients) type <- strsplit(type, "v")[[1]][2] ntest <- paste("Confidence interval based on the inversion of the ", type, " test", sep="") ans <- lapply(parm, function(w) .invTest(object, w, level = level, fact = fact, type=type, corr=corr)) ans <- do.call(rbind, ans) if (!is.character(parm)) parm <- names(object$coefficients)[parm] dimnames(ans) <- list(parm, c((1 - level)/2, 0.5+level/2)) } ans <- list(test=ans,ntest=ntest) class(ans) <- "confint" ans } print.confint <- function(x, digits = 5, ...) { cat("\n", x$ntest, sep="") cat("\n#######################################\n") print.default(format(x$test, digits = digits), print.gap = 2, quote = FALSE) invisible(x) } coef.gel <- function(object, lambda = FALSE, ...) { if(!lambda) object$coefficients else object$lambda } vcov.gel <- function(object, lambda = FALSE, ...) { if(!lambda) object$vcov_par else object$vcov_lambda } print.gel <- function(x, digits = 5, ...) { if (is.null(x$CGEL)) cat("Type de GEL: ", x$typeDesc, "\n") else cat("CGEL of type: ", x$typeDesc, " (alpha = ", x$CGEL, ")\n") if (!is.null(attr(x$dat,"smooth"))) { cat("Kernel: ", attr(x$dat,"smooth")$kernel," (bw=", attr(x$dat,"smooth")$bw,")\n\n") } else cat("\n") cat("Coefficients:\n") print.default(format(coef(x), digits = digits), print.gap = 2, quote = FALSE) cat("\n") cat("Lambdas:\n") print.default(format(coef(x, lambda = TRUE), digits = digits), print.gap = 2, quote = FALSE) cat("\n") cat("Convergence code for the coefficients: ", x$conv_par,"\n") cat("Convergence code for Lambda: ", x$conv_lambda$convergence,"\n") cat(x$specMod) invisible(x) } print.summary.gel <- function(x, digits = 5, ...) { cat("\nCall:\n") cat(paste(deparse(x$call), sep = "\n", collapse = "\n"), "\n\n", sep = "") if (is.null(x$CGEL)) cat("Type of GEL: ", x$typeDesc, "\n") else cat("CGEL of type: ", x$typeDesc, " (alpha = ", x$CGEL, ")\n") if (!is.null(x$smooth)) { cat("Kernel: ", x$smooth$kernel," (bw=", x$smooth$bw,")\n\n") }else { cat("\n") } cat("Coefficients:\n") print.default(format(x$coefficients, digits = digits), print.gap = 2, quote = FALSE) if (length(x$coefficients)|t|)")) dimnames(ans$lambda) <- list(names(z$lambda), c("Estimate", "Std. Error", "t value", "Pr(>|t|)")) ans$stest=specTest(z) if (z$type == "EL") ans$badrho <- z$badrho if (!is.null(z$weights)) { ans$weights <- z$weights } ans$conv_par <- z$conv_par ans$conv_pt <- z$conv_pt ans$conv_moment <- cbind(z$conv_moment) ans$conv_lambda <- z$conv_lambda ans$CGEL <- z$CGEL ans$typeDesc <- z$typeDesc ans$specMod <- z$specMod if (!is.null(attr(object$dat,"smooth"))) ans$smooth <- attr(object$dat,"smooth") names(ans$conv_pt) <- "Sum_of_pt" dimnames(ans$conv_moment) <- list(names(z$gt), "Sample_moment_with_pt") class(ans) <- "summary.gel" ans } residuals.gel <- function(object, ...) { if(is.null(object$model)) stop("The residuals method is valid only for g=formula") object$residuals } fitted.gel <- function(object, ...) { if(is.null(object$model)) stop("The residuals method is valid only for g=formula") object$fitted.value } formula.gel <- function(x, ...) { if(is.null(x$terms)) stop("The gel object was not created by a formula") else formula(x$terms) } estfun.gel <- function(x, ...) { stop("estfun is not yet available for gel objects") } bread.gel <- function(x, ...) { stop("Bread is not yet available for gel objects") } getImpProb <- function(object, ...) UseMethod("getImpProb") getImpProb.gel <- function(object, posProb=TRUE, normalize=TRUE, checkConv=FALSE, ...) { if (!normalize || (object$type == "CUE" && !posProb)) { n <- NROW(object$gt) pt <- -.rho(object$gt, object$lambda, type = object$type, derive = 1, k = object$k1/object$k2)/n if (object$type == "CUE" && posProb) { eps <- -length(pt)*min(min(pt),0) pt <- (pt+eps/length(pt))/(1+eps) } if (normalize) pt <- pt/sum(pt) } else { pt <- object$pt } if (checkConv) attr(pt, "convergence") <- list(pt=sum(pt), ptgt=colSums(pt*as.matrix(object$gt))) pt } gmm/MD50000644000176200001440000000612013571772045011354 0ustar liggesusers003fa343fd86bde456494a56354dd2a1 *DESCRIPTION 8dbf0a1bf9e2ef0907845214e724577f *NAMESPACE d230116a1cd324288c3a73c313d11f47 *NEWS 34060d64cf14b2bc3ed236bf761fe875 *R/FinRes.R 8d15734187f2b41f1bc52c42213564ec *R/Methods.gel.R dec5ef37c3702d9603e2ed4401246664 *R/Methods.gmm.R 17568c5271105f0aa1460fb389195db1 *R/Methods.sysGmm.R f7fec7a4d5ec4e545ec61b3f3675e7d1 *R/PlotMethods.R 989f6a73d773a4113d55c6e80f04f845 *R/ategel.R 6edab88cccacdc9a87dcb228a934d699 *R/bandwidth.R 00a45548f548138d30c5f7c660ffdbbf *R/charStable.R d504335bd50c16265c02d128b3445601 *R/gel.R cd96e676b1130d23cbf98c21113e43fe *R/getModel.R f091319a29b31955bdc80f64688c2016 *R/gmm.R e50bb0d4f9c06ef3bcaf29a6ff9bcf62 *R/gmmTests.R f20717cd5d335a20b4d7723586065d35 *R/momentEstim.R f175f4ff505f6edea1b2e97a2a45d72e *R/specTest.R 5c43d9f22c0c1c9f028319f57004d8a4 *R/sysGmm.R fb3d42553d90e41d867a2c5cd3c6702b *build/vignette.rds 98362bc9ffffbb61216fad3814a205ce *data/Finance.rda 69d2125daabb173f0e8a0cf41f2bad98 *data/Growth.rda 504b349caab72fd96ac99e9eae0640af *data/nsw.rda 582924c2ff9ed769f567c6e75a72e4bc *data/wage.rda 6e22f15917d58c21acbf4551737659cb *inst/CITATION 8ba53e009c16774529c53d4496d0df51 *inst/doc/gmm_with_R.R fbd876e45e37fed969ff7a2155ebb66d *inst/doc/gmm_with_R.pdf afa0d7c8ba3d31e52dc26692a6418c2f *inst/doc/gmm_with_R.rnw 724eee49af44c80f8dd9eee1fe8d7be0 *man/ATEgel.Rd 5e37a93a689634ee38cd7fdd177c2827 *man/FinRes.Rd b29580551638be22bd1bcaf0bf4f95a5 *man/Finance.Rd f3672fdf3a8e1575afeebd6cf1269744 *man/KTest.Rd 824e97c600b658b9fb21894d3adbc738 *man/bread.Rd 228a19cd60ec4872a3e2e249210f94f7 *man/bwWilhelm.Rd 2ff1b1c37737bea5ebd151251c7052ed *man/charStable.Rd af701418d7b6f2bb0360e0d12311d3cf *man/coef.Rd 0f7e154c11fe4b909e75524831c431d7 *man/confint.Rd 0be682c7cfa9cad6045386acd5d75796 *man/estfun.Rd e2149d386f6102467f98b95b9e40a634 *man/fitted.Rd 9ab973a6d0f9157e45a3345ecd2aa474 *man/formula.Rd 037a501acb2179ce5540bbe2656700a3 *man/gel.Rd 0d586d2638432c60dcf1c0f3ffd0b02e *man/getDat.Rd 47577cf99ff1539239775621e439d88e *man/getImpProb.Rd d53244c2c556db6d8d317d7b73ad3748 *man/getLamb.Rd a3e02ce173d3b2f6fb5a73f67788eca2 *man/getModel.Rd e1eaa7a93f6b5df960569aa8d8f07175 *man/gmm.Rd f2a2180f6e5f8be6702196a78808b5ed *man/growth.Rd 512a3c4267f6146e373a1bdd6bc3a9e5 *man/marginal.Rd 19c918bb116d31ce090dfe3109d5e76e *man/momentEstim.Rd 579a6cb97e9ff6bb4000e1ffe24b2236 *man/nsw.Rd 9e89023030eb0c919c3a8243403999ea *man/plot.Rd ce22b21d434e85b31242ce58e0c976ec *man/print.Rd 05c3e41ccab1554d745de9c899f638c5 *man/residuals.Rd db3779a59a15c314ed86d6e749c6b514 *man/smoothG.Rd 52588d1b32001f7a264674c50dc1ec1a *man/specTest.Rd bbeb210028428733ce829e5d9620e94b *man/summary.Rd 9bb64df39ab2e392dbd8ba440574c293 *man/sysGmm.Rd 6fdb443b30bdea453487e4f1ccfc2133 *man/tsls.Rd 121855f3e950c50c3292347b76a0b255 *man/vcov.Rd c0a39ea7fcadb43dfe768cae259b6026 *man/wage.Rd e74091acc34917e8741e47b9e1fcbc0c *src/Makevars baa852d2640be132908899e51af70ad5 *src/gmm.h 16f0236c9e73143592e6d9ddd5ce08f7 *src/lambda_met.f c1c162760356490e4bf0119e0682ea0e *src/src.c c316d483df8629262f3535565e296314 *vignettes/empir.bib afa0d7c8ba3d31e52dc26692a6418c2f *vignettes/gmm_with_R.rnw gmm/inst/0000755000176200001440000000000013571761732012023 5ustar liggesusersgmm/inst/doc/0000755000176200001440000000000013571761732012570 5ustar liggesusersgmm/inst/doc/gmm_with_R.pdf0000644000176200001440000155450713571761731015377 0ustar liggesusers%PDF-1.5 % 94 0 obj << /Length 3349 /Filter /FlateDecode >> stream xڍZK6ϯh_%qڵgjɁ#qFHBJ;~ g<ģntP=Di&Ϸ7idĚEQmUQiMb\ݮ녉=w<8<,Yo[h; kОco^}O04`a(+g8Mɜ0viUǐmFO~xtD-Ld7iªRRr8t"I x қ,p=+5eQd *F-8aQUe| j2àj'X  \#-=h5٣g\Gx\Rǻک ruZFqJyRaǮ_=`Cu#&ګ ]AՇ]Edh-!@pqm3Bh&oD$d|%ci$d{\T1D쀍swo_9@)Pz P S$mu3KI޿ | O;zNw%.E80W.Q&iVl.p.K*S/L=|>Y R Y̨{Kw>DwXW'\/MQť͒vAѲ(=p2Q,w [ a~7bD$C3q Ѩ1sh}GpbЫ4 @_ܙZ c:ZԯmBβ"7+d> h_PtUO* 5*hP'Qws7g Hۉc#PUk$ "eAcÏ,źSsK,L޳}Vzu`#i>:'XRXڪPN/y19kMcH~Gis=ѓvN$=74̣ߏ:ƞl5&&k&!apݔ۴ [sM?AI Uu8Hgj,Ѧw[OFދY`z*HhaxA{)$[{$=oh7k&A^>(b_Z[6͍w䭳; y"Nň sc#7#KݏU|ʤLdEaj+'Hj+פ;>n$GxC|Nk4|*mvЂr=C9)Ko:23|*QDtl$XáaJy*3:K,rtXi$9EW)yf`ςp1P)$U26 |Ǭ0-^%cr8%sAR(3]Ot:?r>來IHŸ%έ9ĩԃ`N s D<cB9KqL({>=SM-ˠh8<<]9 *GaaS;Hp-*@}wUk՚bքo++OjJֹi5GnG8Zէ\?6=@(}w)oc< u3G-v{?U_]izc\~ @^GYR֚Cm]^$xN7h%g=A~ w luYL7iآ|niAݚ(tU9вIa`iT%uQ8*}z׶;tL,_Pp:  ޚ}XKn9Jh|d( !"wր^=%K27X 6nKA} ,o22!Yh endstream endobj 134 0 obj << /Length 3958 /Filter /FlateDecode >> stream xڥ[Y~_1C#v`18Q,O}PԌguuWGwۻݛ?.K&m:*iLqa}"_DŽIJS2[ޘ|Ʋo'M*L5Me+m`t{yiyv1leQi,'\-VR:Dq'8e-˼V/)NH2z#y^8Mzd3IajCuϲ8Ռ@IKuhGH<N gs4]|O4Y[Ip/zKdK}!vl99'>ǭ{i#sFHm3g9kb9*JS.gȌS98ˢ\ێf{4LRQp{8HO^%ykWXQ790c;xÉ筚['ifi(qQ"#u<v@e)1,́@j ZIu* -uR0:H٪q뷄w(UE9/+'n' 4OD-'qb. ~g9t&}PTUTʭ͝Vws2.3zO/}4Rr-"N^ުJ^,|, љH"n^76]z?OT!Q,Q3'Gz!k}:"TP菎n'hGڍ9l>epqr"fh=xlCeZ='4QhsG6N,XמeO<`p͙z9x@"H:nRhMW1՜8L3Pl]@9v*1K&B=k+T̒P?}p$WeXFnɭ(Soex\NE H4QMNZxǮ3(t{/-DЬFt԰iVb]'n)^T fɤns5mrYwpV.Ot|TJz;;(qYl9\>Y;A/gܞ$[z#pcPFqYqD eg(hRLY.:G:B8.IkP#~/_ExXJ?^] 8N+Zi ?f !˜VD6l;oc)ǃajf:PeFǹЮ9Ld' q'ANL̨ym(;l*] Y1=lp2,:)*n:1_]^ᆊ^|а1 5ר]iD!WA':{Wm6 <,{.}* M6xn[ArIk~Hau|~AN'vs)N^߅i[G@l <8sj>{8LIP_w~]-P]gny\d-J\M7搠'c3&iA`ɠ[ΌMiRӜ(m+M"⌌~sON9CHஐw8q5MPq1UNe%yj۟fvg\lNHvNBnsq7VDp8:qzEqkq2K빦45*H(X6uLGj(ox^X'*H[R2+v'OH6`+962jsn(c7ch;!iV/<'^kM:X4) g4<`0s N2 {h7RFd7 V }![zw-du-}n/TH54\̗}Pij$ Q{*RMc(NJùF+9⥊uò$MQ⇁7@"w; }av}ث$siVzw*KNHY̊ <3ݽ4 pgtky[+l)AJWKJ[4[9sCޣ>*jOp9'rn)fb:Mš%UZX\/O'"MR-[P`e8ַҾ8'jO2]2k΂1Ox'p(%Χ3:}R_J-K6ڲ  (#4׍'H)5ꎼH㓻RI b8ONɮb‹AXKm㝏.k qrn).cR*2j#}>CoKP ~:E`ࣸJʼn[.àSvK.uDM[FsGpxn۔8+ G:^B)Ծ Ntd| b]Qv> ́@Qg+j͸g=GͤgK!ZlyDO</B4s&Ѻ`r˹+XB0È5]7F.YxeN$f%Z+Dx:K@ FF +Jn`~/8+f"+P0wm?7tƛ`GpYMg:Ug+>Kz~\< P.{S&EV\U8oȽA`"td3+YH(~Hz8y$F9jd8gEd˲"H4!m?+^bAYJr]0qØP?#)PMg0uUS쁺7Y-% IJq$64/yzJWd9b#O*4\6P{\NR%3rUR`]\Z&tr ݞ[8C<>< ȂoAVSs̩.=|kg]5֪oi枪?xt2O9eU#ff5leU$iQH$6m~̖N z}V.$7M4n.Bo?trN>,)=B潅9:>g*=bM̹m`֋Ww]+EFYIEkHу{2L;r'۷s0c>4ރZ&z4jţgV_G6@?XYK endstream endobj 159 0 obj << /Length 4115 /Filter /FlateDecode >> stream x[[s~У5E-vaOޅT&{L ȕ#*K$_lY;rީ.~L*-HE@aD R )/*O[:8<+.%Pc;f܈EحԜ%7 Bdaô״Rg4M'||IF>ecsn_7;rdX[>_1 ꂽ%~iߓ6(։ z@rE u$lsKwE뜄;~p/2;=Ba/rKئ*.d$^cBCOR"Tn(Mpyʎx23pq&qcϕ@dv=\@jBdTaL{75{㥏9`!?e uvD2$*IS(Q0AnudN< Sq*:lYvNs)AM1C7o8~.Zp7W^FPP X!I]OS;\eE:4G9q.j*dj5' 泑f +Y4lmumD9[gIUBE}z̍яO2??v۔[a+ ɦEaDjK0Gc fŽOT }"zVÐ^+GD$5hQV,^z:U0Ueg_ AcfOu dz11MX`ᔐjP0=,HӬGydE10ͪB#Re!\I<&Q^@I!0:##@. +2aE/JEe xwEVxNJ&%idŧ/%湲>0[w7k%xyϳλ2e_p_r4eILsAKOp$5`K14VM=? M07TH/BXpg Wj*0 tU$B YC‰cˢUktaU~ )/NGLg̣*е(KJ@1^YTZ^wc!]SuGU`6| &ʨr~tR vxǎv߱y Q>s(C:Šw0F7ʎC#d(]Y 8|Y]gx 1ɌTFX`j=_ĻM3mێ?y5|ΜyҎ;"m"!!'0ʾ2KЏ  D]!=?Sa[Tn;@w'4J#PSCO*rD-eз5y<ׁ!!dJfzB@-.tt~Ic+pT*5fѓPn4e%|>);%\z[0l>Oy>C3sk Y;>VIX RO F[1z[M@ myv&>d)6^Xu)$cėc+VM$%qU>E~[wͿ)`Pb"cXe#@/D+nY.0vì.yicO[٣ ZՔ76K)PwľA0Mub(o6a=whݢ6Hh>XMɑ2Řk@PQOG_d'p!V R?|Ѳxŋ .(e%bZl9JW=ƕb~9\+*Dc~wCg"UE*\0R+o=rǛh ;FCy~ ^rư ^X G7R@GamuJ6IJЀml'd!>ˢJGH0)34Q)PC|J%^`R IwSJ1QrJ/}=w8Qq\,0ѕA*OUyO|2:`gw듉>_ڀ| PĀs !`dce\sG_c'h|Ё__J)7~,2rl9YR?O*Nj'G!ZO*ې3nJuOGp*\j\iaX \1apOڅTC8bI5-Ayk!wx2$Fo&PH› u;d߁]}~p򑃙V,Vl82m(QIѩgRcC1_x3Y3}MIm;1ZΝw3X]W4O|%@i'*Ȗ;uC"3M^~ U%9r] ΂Cg; 1V`>[+0a' u5t=UޭiǶ-9}*g 6iDBnEY_h*U/O 7qa?YT O;9J,6Wf)eOy%W~뷜j+\AζC8=×xP~44b"YmťYszfnzbo_˛CZ_fx2^jA dK[.MKn; ӟOƒb ?* aA ğgJ:P(9E2 4 9P5-,'4 0>Ӧ c?$a-U%Gp\SRV`q0=>i$d7.T'Ռ*%qܻ 7mRQk?_&yd7>/=TEcu}ѫ#d;"lk2% 7m~hr[,i5B`L/j*)z,~,њ"qG 3H"9EI|@>,M~{u_a=} endstream endobj 175 0 obj << /Length 3654 /Filter /FlateDecode >> stream xko#MF,K! M挦@kIg $׮p]rE=%WVp87|r1ᓷ'_n"8kx#&g'NLQfr64է `T $ TLRJN5|oa w{I@'<2kT0W״W^ &L~Ԫŧ->lQcSi_ 5]E _g@Yo9a9ߜV9 SY3\FE|>UB1j"*<2{G:NH؜~aȜc0XyZt4g7qV;0l\3Ax+V7e.-xQ`f&ۓO1f$H({b`&RgnUTrGSqD%m߿Uю/y.]dRFsdv0ATJ4dR<<s^"_?{4 f ̽U/)%+'a."}1'ުǰ1\%2 !x/f^B@Q^~!yV7^wL :(^(]MYTӋe.-`LE?2S as32);|s݂~u8Yt8}3^~FpeO$h=Q~y; eC̈́01y,$b5DE fRtQbi̥ @|!Qv /OvkV J!w:ù,lA1HPIu`$!x -b; qo񘮣/:]:Ԧai`,12۴eVf| i RS=Kt )+ͥW# m)KGxsGщ-48GN?sFpMrhK$=W(X&UKEwgʲ?(8a!j<9J6V;G2Nׂq-;*zPE$N8`Zu=wmPD..%oH:t5: SKH'dKh`ens} y8-5iy? vZ0Yh%9셱.qLOfǜ)"܆H"Dmi,*Gpɇc12nԘlu/|2CՓDTɻR?VEkKA3gDEa LlÆw KFd&'9s(k?/~`Qce ()3%+b JL*g7єu#hbBg椚8#(,> h .m8[͔MuΥ !Q l$U-!&=EB\T׃)7V 5jwpBL+, |];iݶ`361c/< f@l@a`_(/|XW$Vj8Dւr n,G_ޡ݋k1$pG*,XVPc#=2ٻs.KxojiX:uY̫Wqqn$J).iv63*)@%95!9p6#/;B7lp!B96uo}[Xk~~ xuu%e o 6(rP5T0TjP "]@mCqYZc)Z7`VO@M|VOTw@f|@*$j/a~G~쾲sQk+2&/4`ul0>Š@+7)"F_ `,5\O2]Mr~WFOVI;!{ +D5w)J]T̩ ?}KsI}.vѫ(xۮ𞉫iKm ؿuVg{7򡷓i"QgZZNWiv f mȥPtXHv\4UMR^y$喬LEZBB%%1qM:V_ٽh[Ae\ASI{Y(k&9dTv>D An{ǚ#<4NIy=Z3F _Wu Eѻs;GΫ\*aaw5V1jbCTcu3C$MكUh+}ݸ̎8ga+:/Q7ZW)? xn'OMp&Xc+ސ &a!~tv]y.edeVapnoz>$V> stream xZIoHWc!ڗAЀ;[7d|%&"{ERʢX )zKQ$90ZFHFmݨI)b}R _ЋTKqlkQbQ?I*>O%.Adsͬc"kSp i),WT Җ%"T"PDOA./N3zmHiD!h7W:@S9RYS٢xƒ&5R00T zFA!&V6$H V@QV;k!]@ &0] &p5RCd3 zP"Ldz`)s!U!Q,AIJ@jdԣio _/I[5Ϻ7eUo~|ֵJ)r^̪We{ VSi=oNVy`n[088h0}3ݮ55d1o^mQk*~A#.I'4~]uIw0`,ʘ8f988oiU|kI VNG38duz孑Fw5k|ׄ9݁ɎHoh{3 L9~v \a35"K5S> q5g4>HYz5}G:<_>nCx_BEz/_C^ECe|c5ulԱƗA]mطZշ=m{z{z{zg>a%PP̓YUܔܣ0}ZOR| # @]ޔ2ih+,ceRC~'8NQ#n3YD6q8OÀ9Apl*!Aq v4ˋ>+\=To@Z; 2N?X)LBm2W?\u]L.Ϲ+48 vuMKV Y)Й'-!b$!89Xj !"+\kW#~sHD?f{8Mh@vp4&t< m\ p _w)鼼Y}f^8ɇN Cٹp\9s,x&c4By\q\)^N\,30|-fNA?U=QޭNR21l@śV[]uC.TDHqCd=jw7?&ྐN[nUC]_qv}qߏ~}Ey{ {b1ȹ|9ŀI{8dX +8H pp((`aR|^ϋŤkV5p‰: T*2C-2/# _JP33EFQ5F?. #FH<9a7Jh5hcKjt\܍gd~0hoբ1("=ilVPl3iB . endstream endobj 189 0 obj << /Length 3601 /Filter /FlateDecode >> stream x[[s~P虈%.tM74eݼlDۚH#:Ɋ흦ή@887|[L'/~g&ȫ˫4e^rbKW\.&ﲿlY?[[O< εY}W0h4fi•0%V"YyL*sg \lΧR.`zO;h7[96\:n z[xYXnI$:5WU}/ƿxO^N)7 #/g5x: FcL6[A;'*t(LTJ/E=]_׭ּC?^ z!ѡZby2m!'SRWB{Q;ffbW^^K?cf7?/OƏ}ȷ45 S+qnUX Λ2kyu"FQŸƊ2 \\xwӑeQdy 6*)a CJOUL]mADe*ހ Zo +Pt@9eT"[/5h; #;'m9Lju"WPe^V/\j/@ZfBg "1ʅq~D\ae =4L_: 5_OJoh"r)yhLB$_JxJvSOXbUPK-xuj}ݫ^?ѫe\Q;(3Z0)[kv}z\GFۗ˝4YJ]ҒD7bQ$5ylXHJM%JM HДB @eNƀ+D9Bu@PgZA<'`4 fPmόB0nk׭wvԩ1D 2hP-En)%\HǛ~7}@IT %H"4-XaQDgSz!)w=WOh#{4E|#$%,Nt}=Su24çNEv]`Mm NYH?u U`&=]-y֡cW?XREFte 0bHWgwTnCVbSAn!B3?}uT |"@X3"{߇ ?u\3^3`6!;iԲcGFZ]|Dn, _f='|^(_ܰ{cMYd aZCB8s/q*ѹ6;b ~?2 om ?Y㝷FlM "pJwA>^":|s0L;\wC"J]v`y[L)-"D^F+74M$} v)_zL~I}A'nzGR\ŢUTJ a3{oGjYl d[BbLYB!ws_M>ZD ]szRI.|ݸe ry`X7LNmPKutpDĄ=~\cJ])G5(Csj^ ְ\rP/>HKaNZIQkÛ-|-T]t j>x`1@=Ԁξ9Cx`,vQϏ(fy"C`Q^mnkV MQqO9$KIK) G y /y'q&SduXx1k@#>X$U_=P^ K qb .?g'D_9Bx專Bg 'pC*PZ$WХ.Ja{CO5aV1aD" 0mB%M7֑NB {rԩFjLW$taKR/ą#POFc3>᫰>Gz`5g?$:Yu0:$(dgB~n\^ig~q@7mᣀ>آ2[mlF|{3|c/6@HE%lU8⍬L'+ZzT`\?JhvK6 ?We%Ͳ2m[(ph\Hl}ѠP]IofŁRϭH!m~2ʮz3hڨjiҷfJ#׈BBv~Q\ 5M|߅G f]sp-W@=pg :U&X2nȁ`a(+8\zFYIR``! /y@@v.*-xsbk'%N&L (bf ލH˳ODjBMw|c5$DF j|IoX*$F!=tL >%@ŋ/ W`3/4 W"q;/S@{||2ʌrӻg}pkx8,yLeenžĄc*!t^`F a{Nl4X GNHv{NaުO,TYHYxYz~H&0W8L^/C$,}\Ho0G bHt4DT0oy mQN$ SvL2O1m=Ȓ.K2`{H!${*!z."lA_!ZAz)d'~l _G 2 i e}&t{Chw^ڱ [*UfT,i? ֏@ 6@~.4=)g paWSg'1iQKEةچQ8Ia+11&ɿ#@#Vt{aX{?PȾ2 g]`cì=^p6ʟ3HqÃ<&X^ #nփQrPtYT/I)+ }ν9/*slG⤌˛y2I ˩=5¿| [|+横o\gL9,@YWXe{ʖg{EPܤ\Ե*W/y\D٨ySE8ULV|P>x6"DҪшyь> stream xZ[~_Gml1 9E[ u qV[]N8CF^9MZrHy}'|sWW_~]OVnͤ6XEոjj1y= o^}s\>ɄFa ͵xq=sN;xX`Qsn};~~K_i!˯EM3J!F^V׳J7a*.+^rSOf)W൥L|kofdM2e=,ίm´]-9q̆ a`.IJqvOnx]{`1*xp պf~-vH~Jß6.3±B|3gt'vs\Nw< D}NBt"/rV8XyHGw YVh±T~%uMݟr=էtoL`ak8>nI4^̤HnL[NscdQ$ݞQߖȦi-an-n`IxȥupUS6b d v_aYD=3 ~:d{J,t2O{hL3,z$e"5m+'w!y%a $ЋhN>%asvq8}vBˋ~ +4-$`Gy=<0$$mJH3ߝ &:5*M~w ߐ \K!_BPvlfdlL iRQidP[a$LPsҲ=:PȀӛXIJ^̵o'Ř \Fa R|7\fO ^SN-*&|۔}MH6#>.-O,i|K"Ǩxu 6 /HkyD<͒ btgɶrx=hQ)RX$NW!n $6Eg0Gw,[r'*h@w4e=4yNPOYFmEhX*i͐~ȗUp|'ID.qڠBd![ViSpQQFU75nbcsZ5MzT 1e]5&rnp"^k2UHC2glD}G-󋒬Jxw'?*s)Wy{$/'|ruXx |"v~A\({U9{cLdp'v(ʅ,}D?/3[웝y1QOƜD5nfVFbo9gp WYhȮ˖]xSuYxǧMhϗPGZR~䬔oS!&P $b4$;Dn}7ԌZЬӵk[YE9҈A e'ɧ$Br_*n&qWOJA̚ߨ:4IP*<L]D1cfĒ" ) E 0r%93$Ygv=c&C\gc@}a,RFd|u>p8sXQ\:?xhB r:BJOF#=W7gTu\TC`1Ù2 %{6f5J7ܾkD!}@WKX%>Ys9<7?3hηt=r:ƢISR<2ɆJ&:XUG3NnHZݼK|*]k7 VOXqƂ'{t]PC'ؒ6 1n"PpP7TYTs<9$dTLt+> stream xڵXKs6WH&7ȤΡt:M'!IgdK)4] (ŗ`Qb׷ihv}U%2FIMkM2ʌ2*̲O9<~M3墐=(TJIX^]1RRJBJkmQ*.w`m?ºXag(g,Q2AӢc{HxQ<nãfǸ~9`Y%_`jpo:;?VՎQkEC!Y#kCN_!mghU1cQHHm|;,'XYRhvo{%$Q/PHs(̋^auguSMV uvuڣSl7m+dcM%܊m^{vz>81M08r #D^rKzԳ3{2olzD }WWCBd3,*Rkto>yE5xYׁnJLŃ#|[bǦJen=iB|:<ʸ$G0]4 撡 -U&}/BheHP+H*/]qPXjRUl`n0E'5Eǒ&~XG~LQ.I%ch_!#$!5`9?$|aU{_"QxixEGuiaa/D;laC|v2kv%r7SzlURW"GxoԲ=&*Q&5@#KYGHL]8zrbi\R D`1Z"eB[,@_HPj ."^Lnˤb-Dv:`lLw]R0u`ʿePA KkuNB1z 9eE"+^PNt׉^g~'388re(kX"[eQ>Csp endstream endobj 207 0 obj << /Length 1618 /Filter /FlateDecode >> stream xYYoF~>PI>@N(Z5/IZd䐲\ݥ(_1P  .wvg9vf(Y0;<{~^$( &wN0x {"sS^eFQ 2yD'0k+i[B\%ō/OSλ00JPnŪo db4L+u-Ctˉ#Mؾun'Bo51]ZbIo.VgÇP%yQ^ 1]6҈+r>Βf> stream x\[s~ׯ􉚘ⶋu<$$ĞÊ(6)s.v RvDO3}v888XŨ}˳/ v UҫZQ+U[?z9\s|b{r=7ua칫x~_^TE%V#Y!<|.|J=qN&֫PSz`rj}ڳx|v*3*S՛b4OaHoFd<:ы##9k^A+~z[3JƜ V4s$~ݣx6'݆pCޭ=/GNAՏOnc4j4҂CȤCr/c,)z6V>vܴ{žzTep#@>GL_'`Z |z,\U5]Z?N59{4ʘqƗpyڨPY0x LRYR>cƅEq~C Ea#}T}צ>/Nw0,Mpe|rq-(n]>"pk ­+ssA'A ^l# xyP< WXeCٹI ]6S~Æ~6 7Sz`]}Oy4}9}Owk虾sJ 1>0-Ј=% ZTW'(#$|V\RG..;._\3Df nno3jw|0y!nQ/Og+y%l m兠U$4" 3)K" H&޸A "nwwn!.0 ̷LZ I {yso0%) /zGL Gl 0b+a5mM5rw /srBb'lG4e(y(dHkq3z']^w9J&^F)J*8q(inşE!,<d-%4lA&B *B $@T6҃D%$#kH2|{j4Iy,A\ )WRYfb  EtVWU*#8> g{sg<BFaR v*Tm?=jQ=K?0%ksP$^6#aheQ_V~w=a@&]Ƿ$g6:g;o~+d5̤G]p'Wx/YxjtnѾMn , ʤ"FA{{ȑ(ҍgYp%W1V5$786ǍvfaNb*p!YMmUړ#eֱ:p72\g9 HN9Py;s9ڻ*#^p|jS:+SwHz͍8߄j]U]aID]*S j:Ani޵4PFuݜoi wV{1)ZCW iu[DǠn })џlO hB4JS|Ϲ͆a2N\瓲,cOhr6'dU'zb?EH*/1ATWM0#]U4'H9)`O^}=E(“J@/dIհ*η`2Ai0"7[ "ִI<0i6 9&p2g5Drִԋ֙%zv^TY(S~U*;| },oˍ/N/_R )!F[}A--P\p]Rt̖=/hӭXg"Z.8pW~hAo=C`}ZtA[?߭Z&0{^!6emrpun`a+|Y͒zbw1?Q4Hy|>NO!b@A$ՙSg.]r[v[!B6F%n"3}"9>sPBZ_]falpoJ YOV6]G)-zߒbݟӾApIoby~LJ`_mצ?(.Nᒬr5& YSR)x"ݞFd'!e'~5{g|sW'0bG%W{fj͗=A+d5wkq/ gtz)a)xg z"]v{ςv\/# #J3ypN/GwGn Oga-Gs_78 endstream endobj 231 0 obj << /Length 1629 /Filter /FlateDecode >> stream xڝXK6ܮ{H 6h)ݸc#!gHd.z Dy|3)M۳Wg/ޔ&UZBIz>#w@8(tb)i5\+[_a}./ވTs!+y~Y!t|>ØXZG85T&-ZF#C))-sk"3a\H.x,T(wBa-a4C3邶>Z}{9f( q:@Ä;jkg}/G:BgDY7 crOʎC=Nۡ<سE yO)j((N)2wd#l3 JR 5b+0\Qْmgdg>YXLY၇,fFoZ\NZ㙛i |i:C8]wx1IQC(xhnl[%  `lKS*t*)ѐ^q&Ubyf:<[rJEƁ[p*Q *R0Z4"l)gL%ݖ#p@s_b .2=tfC0umWFK͎4/5~kV {o_Xb|ݡJQX\N2{aNL*TY"ҝ} m%$tD'=Nu,[&taHG2e:ɽјd)sjZ?]*,tn,|V}-]PD -`к d]/ڸ Ei9-Jj=Xq&@n|o䗦'}!ޙ RkOpeTF+ JRCS"U;b@gۮ` edBjask2N1s{pͧ&~|eX4ɿ}j;ra65JsMBZ{cao#%D[%Hgt5q#\n.)/+dP_D4ς%-:X?`j(;d!]RKv{ nU۰qaT TA  i %Ehc DmN~)nvwJjyuaْ9-6:h1CvIrd<8FB^ 7]1`bD[|I@;5߮{^] k- endstream endobj 235 0 obj << /Length 2087 /Filter /FlateDecode >> stream xYK#5﯈#&Mn+jw 8zL&]:nf J_+lVjM^7y<^:yYw6Y]zM`4|܌g/&-af6w>f, )<$.dvLgLk-+~kZôidZ)y-}ڠpPvn4+R&a#+[u^W м݀f7$k&͋`eRz ;;D'O5;L_-*4e>cBY٘~©`,/#j|`boPn^ұS8 ) ~X \ڰD3XMm[wEQ4=?R_پLYV.ۡQ?1\!}8l)NfvOKS7YO= m AEAٸQQNdϘ񄃂`;~5 }^A [VP\ѻ캞GGNj  #쨲^l+o]_MlD@KNQؖϖ\}0EҢ#1pN"lNQ$L=Wɉ-Xk *izPesڒFl ~ =r h @dS֖^cE-_Q` pևIChI0h'V; v a ?Aw^,FYսLxv"֠f v+c1v`I%ό2ЊI).d|L.lwK2BĘ9 k)r2C>C[;fS̞:e!4* E p)4Ft/HSlv hc/}faU}(8Zbౢۓʩ+"Z;ŏpAVF/D]P'+yKDe{{Ygo+jv) [q( sQN :CASИƭb,Z 1V:ė.'S @8Ї0h2u["qϘ1o1e8F1c$ ".!#Q*{\+xԩqp1E*Fx6?>\ZZ&c;e)1UZ{ M'">t[A0Fd߃)㼴i^iN[+;n(#vwwg:B{Fr tӼ["]bA{+9lð͆=cǪ%!UM6"S`/6!qd4$%ћ7z'U$$~e mpSD!9U1\r,Y@֧E>&PedFJpLvOuǂ5}G?iQ0!Z NPpLt|$a%=C}}c, aEuk"t}6ګj c&yR3v2F+!>8N4vcQ]3^uzЧ\4΢Lќ9k**W]ɣ̾:Xܭ^;Sg)'MNLZSo?HnG7z¿# LFPŭMJ/GH ^GMf5\gis;UW/~b@O80UV!~*GF ȂIDPFyԛͼ^A\*tXiU^~T P"X6t} ›A! =SG.+Oʚ]uЙExfWe،RPq^|/kWJq^vխA ӹlHKQ^5+uO{A!Z4_{)J=keMa@x͞  SZ?K ̪ H o襚CBBC('W7G endstream endobj 239 0 obj << /Length 2104 /Filter /FlateDecode >> stream xڝYK6W^tz+h A&mY-{Xf ?Gv@"3o$l3 gxb  K7X 7<(tv쯋@[*vC&z~^-8W{Xa?~-Юwd ]>s@B,4(e]ZGi?4 w'Ш5l]@ɅQS^(B!EMt+CrK\潺e1P f::NoU ߟ2bSf:RxWj+&ZhE5ŏ(42r>1T!↼M1Wfȧ_QC/.1+ zmF4ARh0 .KI ԍ's+ %R[Kҥf})h ӴWdx y]1!+0^rSmr~ZB*(,\Y}S`Z$1u@&qG$. + 4x3Xw廩ޒvz)oD` N˸fog=/"$*ciu (ߟ*ڂDFE8P!8Y7Mb_cK8皿$Yd6|p(9kj:xfqpYV1-K|~ކ0TR>QOm=Ex&5StmvS8-YW.n^ˮ oy>.FJ^8&Ei4sڦ}AhaZ4[x'o֔87b@*,?ΊO׍| ȁZo.oDž'ZL[*nj+ONNBd^ORZWؕ/E==J3%> O V{ʤftTXT"3 L6O̚diQ:&$‘ҡ\FUᡠD6D|"sͤݱy-Zw)> stream xڝXYo6~Їhۈ!pm\h5Ї@n⦿3!Ei) Z9|3C~\]g2{yٓɔlUvyʊV٬h.Dc[L ct|}afR:_L~|J:m%dcaIҦ ʜI6 %&l5-XT*)z/* هcu>,eBa֩?i%<ݫ4:Z67^AZh(cVO ek7O|l-Bk!Y8; N>4+4J3xݱ7;<24Jk:8 7ctZ7|eA"#Cvkc.Y7E}1Kqhy @L">R*70u_q> v$C# ,}wTrlx>J(vh$Mdy\Yl&ﺀ"e aHj-FՔ /Ҏ0 UBh9|9ONu@\y?+~v9c.)JV!uVn>mncldj(&r!;GFkB-kDL׽*;,cOG7 %RdJWG =U֍:~£v`_s/"L dGMmed|-Ij3QIDԢ@s/tZ{8pyҝ#M*B@Wcm#SFeJi)*mGJ 4e%ל3[ǩ w8k]):20P胍sy8NE<JDްYOވѸnVyw8.ہQ`S $ TʸF[➝euf\ #mΰ>#1[1{x u%F"-Lh9 |^Yn<T\B|+QHZ{;`(wd41Q͉;NĊ: ưGGT>8EUS̏gN%*:CpBkuNēɵaIŷZbutil!bCLkh}ASH*!a{ q*{i=056f$@;ʲ[ON*cu_[{c11%1& <$$*EZ #\SLN)nvs\p\{hK߫+qq48LwF|yrDwL \ y0 [ +C2L*!@884" A*n_`t89+Qs CV.@NJ-_.F,6‡>nc 7˳q?T&p_ymv=lQRn$y {] 94v#OqvoĀޥ$DA\#eFE[ȁФFQ;=1CbU*+ |qK]-nD9Ј-*MZX){kəMt@[%VDT ]$P*;pR:]VYuhBߥh:b)Jܻ`K@Z,ZWF5FNt߭<n%YuJvK&!AI2 |Wu pbФLW&`7 (uBZWu9*#!\0Ěo~p}JdNaA1=ٿUX` endstream endobj 253 0 obj << /Length 3110 /Filter /FlateDecode >> stream xZ_O!i՞X]6u8q& W/C?{g])rp83fH9YOӫ?=&JZjru=;/j&WB뫿C#R ,T/^Lgb% w ? ɼ1fƉ,H7}u+dP;t s+3yIDi&KK *V_Ng}RѬ$UJ桘KzaUN(MvY#36ШI9U՗:VT6,B _-EUt}U<чLjP ȹ6HɬfS4H*?3L#QԝΝOuɒwA- ͻ0n4Ch@5A\?ӰA9mo bØtKMZh{ cӎCF4-wiϟh{&ᴡb{ˬWo{¾!le'Mf*(I*J^w%=B O'@-u F4qlD's:dπ"kj61ixԗ<\5Z4ǿ"LEbuˁ-nCq\FU%]yTWKCh+\]`]&"d:IߑPsb3pRx<*󘪪TU~^U_ypu D~F~l UvP`Q\E$Dۯ-b|f(S4!ʥ=ڌV8YÅQ9oRd78*kӟd%-eυ䘚X2zMEk9YGPn !ɏ fF%ҧs`$e= /}bj7c~(H.=>bNlА@6Z5Ǡo)( P8(4:mM>#}j>g=g8 FqH34-]Vj@9`bZVD+*؆1a!Pתf5w"*mC"E-3'Y P%>dUF6}Bfɶ9>>s1kܞ#9<'ɣ\A&C앧č>j- h]ܨ>OH.C}g ^;}C]pZbXX$XwaUCm䀱fp1 g"z% %~G~3"P׶tEMۈVK juMǨv i>Tg9ZNPf2GoH t$Z(pg#\hZᓫ?<غIo*출'!M@$=Ijcܠ݆ڣuґc'5=O {XK endstream endobj 258 0 obj << /Length 1917 /Filter /FlateDecode >> stream xڭYYoF~ًh *>4}$J" ;גKFkR3s|3Kr.L.^@(WLQAQnd>sHpfx*s|Y;r&igD*A$q1\(Q[:*Ӄ,Ix)`e\"<6]DKXbh;|$0^:+ޥ=geHWØc\J2I33ira,)G9\ aZ?o.0X^vsJ$)#N#sBG3 SV.ڰ$qMik9Jz]=v?h.0Ǒ9ͻDa|_((Myo<1bbP4aЙ]!= >=ӌwXN9Ms]^ZdY2{"ɴD(z[@(9Zo/>1K\⓲!嚢^'s /W&Cz:rѥ 2\;B HM7X&!m`"ˉS1KԄ)#^yy$䟳gFO>;4+]J.ѳk?s*YOC摋5}SA Eɰ*74z`6J\՛[=ApY7>ۆ7M!jR w ]),&/!={FH`Vijyr*Cw :;q02"PFtHg!۬RÌ (TME%4s%Li%lx2v%qHQ$Pz)-񍈆.y%\AmI:ʸ,JLQЫq%6$I-ŝǥ391K!d.@W*@b&G=UW}oV[O0EuPjm('J5@'u6 C{f,2Cr4wlly,`&b<600Yi[zog- eH2#5 aGzwx>5AQ'7zk T7g ;dQ0,ۧ^79ώJVf-q{-c8q J* ,Mc, }Չy0#'Rj͠2."V c2Q7[yBFq`FڣR w>d|XZ"Cv}E7wڔ`e¨gtvh"cu ݤzNo#c㯺λJ2o)h#_fJIGMCŲlM#nwMcz6[,Ŭx|sܵ{=CiW4-2j< R"GynSyhwzuozXaZyirYJe>BkKar})EB&vQfFq2,' t px_c7}7jdwN|VN'gy;-mn#ȸޮY+.%j3qٓqjb׆ a뿵p~pt_SR9c$:Y:;3BJ3h@DNAdr|iP1h?ѷ8${\> stream xXK60܋\D "%h 6=$.Akk#enޙPly7mHz8o$-Gw#9zsjz))JYt1*((M&LTngz3QɻwT[qlh5Ѝ>`|Z{}%ٖJXIƊ9IjIf Bm QJ|@КoP $vVޔ_b!soڑY=:؉=oIa3+Ihl tb`B8k%th+fVK?J=;rY00^EÀ1ԆBPj<>gJAΆ+h cUvnY}}osm#YF]b 9wDbCc5GZ`s/ʨZ){R8-ԅSSɆ"?D2f=;Ca>tt6IF{ּ-.y芸dpyS#%۾ f3fnP[7rmd h,Y8Qς ٢\|^3sBS¶Z_(x&5[,mU[ ~-E݇ܐGfKl}V)R3ʴms[b`qD[U 0_*(Hp@ |Eu:i*M?+ꑿ4nq{1HD::]V`c udC{bp k@|*–uz%'fӞ0~%5,U=I~ا\ d"wO@?1~"?p'$K4I2_ endstream endobj 268 0 obj << /Length 2043 /Filter /FlateDecode >> stream xڽYms6_\tz3Nwz94@ˌ;KTE)/HʰfLF!,,vi9[Wg_fdfWgYQ);+l!*cgW7_U6Zxs]e6y׫鄧uB$n@3L@ԬT3SJl>L6R'Vtgai;u,挰F\W+Psy4YZ7*(t[נܚ"{ Ø -δ[<o;lp~ݒMK'2gew}KT0\iMӝ ^v"yj+9_wlObtܼhjb 8juñk`UD0rf[$8i) %)%(˚}³eIW28Ocږҽsb/ ҍ6QkD 4ؾEִe{;^]MFckO:题BO#A)$Xa J8㘪Mx lD]|rd!0m|‰zrn¤ۀ}866[t>,h]mSDo Ò㉽5έS(č V$\v8@E%Ck:ኂ^{lh2Ϟ!n,bhyD#U9IQ\Tf=<IInUKAB*vIC<lkbܑa.2YT_ ~n5?"֘2g}Ӳ(ʸS¨9l>* pSRҠ`d`!`G6x`YFe(b4>$geWr_H}7PC[| Gl }i7lw(@Ap,[ӢMW%]O2X&xU{MOs5.VTkr|x{ 洛go*&Ǡ_(/U1.4ND|PFE vݧ7/$ 񌚖,i^En}BK7BÓ(o;~k> Kb>uEc"y ͑GcbG;K3pC9apMc_ ^$MK)ml&Xudzn) J Ȣpf }]x e5Ǯ=Pdq[ JaKr# @ک)Tti斱q׆C=0ͤ?eXTV͸ z.q_mn.OB[>T:2+;Xxv;\~b&@W` CbYt@2 h;ow*ăPFD aWHeU>r(_G-1, X:žx \/MUКhlÆMЕt?و[TllbS"YK<ÊOɭ݈ wRJO#G4[ ʺi7NJ>=eNrx2ŗN0K  1ץP˫\lz I<~- 8QJi|9 qS0x```?ߥGAImٶ 8ʃ& %jۛRݷ*IfeW%\C\ VGΫ E{[9_虎ZSEO?i*Rׅu}JϼeQuWy,df`K';S<9|G7k߮Jt4ၪ)[ٯȥP IUV}%H( &l?p endstream endobj 261 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpEjjhpQ/Rbuild3ba61c35073e/gmm/vignettes/gmm_with_R-021.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 271 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 272 0 R/F2 273 0 R/F3 274 0 R>> /ExtGState << >>/ColorSpace << /sRGB 275 0 R >>>> /Length 10624 /Filter /FlateDecode >> stream xM,qWRZL2H&6 Xx/ / {Ƙ?8dսjɺo~z"G}Ocg˞?mh?|>w|*R<5_Q>~yOOznq=:Y6߷}ooNo籧=ޯ?}gCէk>+qzk{y6Ky3yeN?s2>sGwٮ"q~+"uv䥜g/_#uں|ۮr#?Hݯ֞sw[Ow9?W̻ϚYm?u{:zngm3BlƙG7{6쩉qfwbl>UYӎh׳&ĦMẅn9kNYH=kFUfG]dNkew:~Cpd>Zq]wnMnGZxGg7{#\}ݏq+#"eRgg);~tdg} w-O26,3ݭtmizΔ*nCYe5BUZfޏr̊kv ״e7_`!YJ'c'3q֊P)p,׹7zxV-m_?留澍uBU^B_=V昗Z=8DrRΉ[j;KGRǥTHKIM^=HWGY"8C3RawN'~o1ċ{%GKy$#ӏC~VjeuWOGG JTݖ'Z+R e< qI9'%Q;^HF˽”q9)Mَ(mȣesiZO6n@Ѧ汫wޅJ{ʼdRf X ϻ8Wքyߞl{&+KcbLRVΔ2j>qΆ^RHiZE2 c3J-˭՜gT;rFأtR6ܽ^a(3瑳{F_Xd׸oR2|usiʄ7Ӊh=Kظ塯+T~}j( =f``cNwkV|z)n#ȥj(sBs`"eO$t2uN5j҃@)\x\ mJ!}ysnHMwB،k䦵Z'@.0@4y8PA'KjT{[bJnE2ԌǰgfwjuAfYj':sw/HU2= d ֽ֎_rN|ˁ^û8H@p_JYX+qjI>t^rdxZm)͘zL"ѝq̜dK&8{0pTlG#6eroA2SKfNq+W6v.9N^V&|~F杣n̂B֙ B[3HakΧKwpiTj޽I "zNIf3U;T@kE"3 0RUm 4 #u4m.88xHVy*RiܽΈ"d̚g;VNƻ8 "qbеce<=Bc&޽D+=2/Hn=ʜ5uJlG@YXtl!9/ᗧJ(TK!w:M(KܼTo\H+R $WNܽJWWy2٘fxdQjXH%fY*Ԑn5E=@lϜ̻Az$=ݩd+Sycp roN{r>qgRUZG=qF(ȘH騇.|Mrz ]g%A\f\bwf-22~ʼn&!3WG{\-4\nQpˬz^rޕ7Cz2}8ZܻK/֯_‡ kGA*c`Nu,Q6κCAGw\JSFsZeVhMu p.|NuW\< GK+{Kbs*粼#2e N?߰nSR3:Щ$q(»^&%Ur<#O%pFÿJeJd3S>O2f) _.)4osJW4CdޛJOU"{1ʫ%]X5jEۋr3waRD+ (O6@ ޼e ГYS zvx1lԄ!b:r6Zv\էR(ξe=RG]?E0BWOMyqz;,#)9:U:+%6FLKCJT~=>Qiy1G=Ќ1PjTf+E2'vtƍSi#6:#:Rǭ2wR8]%rԿGu;˪جh +V ab&R[`Zء%:ޖq2r;u`9թe@ ,JRGL3WIM;;V2uZEWd|OV"Tt/KaǥX`QFlυ"vEn6b^^Ԟ 2gREZDf\kCw|*FPI^RLm>W-|Yh($Ne_{bRw7uWY)=ԅy5W˥3Hag}^#}o:38)+SP}}A`l ~YoK5z oT~G~j&swڡݛOeϐOlv2+V#!ۅ z*xȕq3|I5/l/ӓ=={fԎJ+ He0 =ؘjqgATНN\@BVsl=٩qfʛoȲ&J T= )AFsuFׂB@Brp˥ $[ݷ*jh| (Ϗ7_k!{|h=q|;6븫3u7wqSo6G[SgBO]WN._quWC1m{;t.v%`a7/W}}?ߎƼ'p羏u|q}~c6`x=}ٓ뫺ϟ}݅?-ԙZRs뵿^ki K!)zo:Q?}>4/QBuտXW$Z7w?ow_+ƭƛ:B^2O'ݧj\ى݃aNg]0'+,(cs-lƺܝ:=gؔQ†m]SmxhQ׋ܰ4g0X.;Lˏ?WqR)=Aw{yL[_{\m9sȼ,oF-T} 77]~+VߌѴԷ>ǹp0Ɵ'(H࿁1ovg{0w}(Qqjnh8FmIqhz;}< `/-yy1^^뫆PxX#3=[j2Ą 0 sȗG~^b}LQ?4]0~A./zG0_/| b6`?7T^s0e8/K5_̷XߏgBuw~=ِ+[\Wo:}zZ_ԿEo/EIv[i/`Sƣ^"Na鯇6TcKP/M>G*vm vkП[-w!l\ ¼]Nrx\P/' Y}C.TlҏJ~D>^s8/-Ւax5?)\<&6Pؤc_ 3Qp6Ǖot*"ŷ}8=b:SV3N8~%|\gg]Vj|w?WJx=(/WsT>Ws:wuӨni ^eTu<Dg|_m>T 00w݁{غ/W[ж8>_梹D4#q_Y4gW֎t#xrW{3wyy5mٷ S}ݏ q_?2\t}?wW4`~I_ lt3Khˠ9p0|^Ws%3k_kxߪ7H|ƗQV^a3`0?bb@߂:IK gqpwv9/jrn^mo~!2gζr}5V+|x8݌ms!w{}S!. # \F)1oh׺w\nm;5\ 7YWd_\}"zF@>{Kby `x+p]dQPwWdHZ&AED쯗w[~,1a i'ŕޥH4P}nEWyX-L IKu:7dOAh : mpu/|s 2Պʿ}F`-Ո ùkn ճepًL+x"Xs L%Lȱ`ddtZ,)T=tZ&OKڳJa9z%S_d(!, \\P’FpBXRtu,1j/ sÒ kEXE;x6uuAX,)&a >nX2bg,)%]_^/X2,!,<,aXdQ K!,K `ɂ'X}`Ɇ+X2l,!ܻa#, Xb%%eRK.K`ICXR0)Z,$~%Z%#X %wK`$\$,9bak yCX \[냰D!XRK䍰qK7*Zd"Y%Xr?aɸ"{ X9T?$O7! K*g%JL#%b>nX2Jԥa3zj% X2*d`ɥ薰mc%7X,3!%"&,^;dz#Fg%ܰl',Q6,KV,?'X2wK%0m}ܰ` K,)K!`#Cda= LF%WQ1a td}K:`ɒ|T4%uQԡ5adKaIK*%I.ha $aeR7,2N6FX2KJx aLp 8 н}%dk% !,0=#X-%09,Xژ4Ä%Y`1CX9a1,Y", K6’l` L,`aPmaIS2Tm ̟R%S3y/آ` a``:%=$,U9KfL,iK7,yՆܝ[^/+XRݰd6%8_d'_OҜm}yXkIXru’ꋰu?4`Gě>% ?K`-/`I|RP sZJܰd˜߰R \%,i-,C0%oh`8& 0\,%Ȃ|'’ݕlK%uN\7#,Q@X2T[*Xt`Ix1WT (X9RkBXoW811?L4Kf%,Qi`IS)`F BXBoĝO+`\%֞w׻Tf’R4ZwzOK"H,AKX-X⥪b_za)a',b%CX2]',]E%bӂ%dg%Cl%Hw-`OXRKTJCXRX/XSB Kς%CCXBk,X2&m%>k KMOX2XKs/X2Z`}K6vǰ$bЖaI%:K+91G;,qKT(Xb,iC%Jo6a |XXi/XbJ.rV FBRe(!ut a+Xb%, oO%m)k兂ΒN** KutZDф%Y>,1V Ka 7?u%FFX*}ܰu X7aѻ`g J^%INXb)X \#,Q`OnRݝ%LTgW3uZĔ #,i*KL|,Jfޝ%VK+a UǓ%kKEXb%M[%KK;K.`əx%Re-`IS+XXaauR4%K>y9^;KhYҌB^,a2aI!y% KܜV>^A%aIldqiz,i,fgV%7`#%vs%[0Kqc4)XU'Xb,=$,,` ܝ@%dY`3uTϔ{_,1?SRYB8Xb(%dY S,Y?%%,q3æDXbSWg 9$ۺ:KKL|,:]=:KNXfc K|`_[%b vF$#,*naQ3 YXEP_(|oR_L'Ds%^D,',Qe`U7,l:=:3`Q>KL=S'XIu=*:Yzbu8{%}Qߤ<,1 %X71x>uD%*e,ڬx:KTMXכ:KJSYR:KnĶ#G?Kͷ`YeL%m2%/Sr%m?ag Q%,D7,1vf?l+KKl?d]%(9?eS6:MCvD\%M,v,1uJX!,%,1:KyFX%M]%w%%.1%yN|\Im˄% KS@<,QwwtB#`I,6,,,1fY:)asJxsKL0YHXD#YrgKoi9,2ty;g{945hセDJ%%F$+ WYHX,Qpa=hTGvO^Fڏ,iC3%m0|yu|K(XZ"W_ﰤW Sm-a;KmĘ,;!KL%tTk Xa:,,jxS`IZ>]KlԴKxFc)YVy;%m*oʾ% KL%6`vKOYMk'",{pÒKdKK% ;K*%QJ1&;KL;,QgaIhp#%,a %{g]caɆB낶lZ"+$=Ԇ^#ocE~?}giZ$~=>Z ]r_ ?qo1w(#y=ǯ_O7?r_}vo΋7_} tٜkϾ9T?8b7ܧZau endstream endobj 277 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 296 0 obj << /Length 2555 /Filter /FlateDecode >> stream xZ[s6~#5Xg$iw&N<-k#Juo_x(ї6yZ$pp+|dF'NQ+SŨ"+*FgѻȖgxDS"F^'Iz?f`s>}K~O cszL2Is?%#0HY&)=}'Lc\Q%JA4FqVBXr *k)O,^nƮǮ?,zeLLVEt?`V_%}{47Գߜ4{;fϪYØ]7 0koqg Al*\^jo9c{&qV$0Cy07Wqt} ?03뜅Za: O/bk0i{$UZdžʹ^GUsᮇcȀ{KnOv [VᘳdmIٚùGVM7&܎8)qY-y<aP:DoGXn?єW*]pߴٺLW Ò;M*OwY1-Რl&YI/i96zpNaUfv]zAQrpς,}͓Em}ұI:*hv`szۥ/V?>|xi!'3SDCDkNU"!OB?CdI,@Ŵ;FӺ;xWwa&N.#1xKQ2# <M+2fG|=|+:l{|'L"2j;j޹]v_Jw10J;@ *I7aװ= {4p,51&&rZyev~̱3Vf1),a2 pKZR:/ˉ rwEayzl[ӥ4#:eb9ipK檷(-uU3:]5=W])Vf5TiCm8Шsq#@H+}"`ag/qP5ob8U76דwtD4,'5q6B^ߜqa)CsY28_۳z-a5Q(@9Jlchb,ѦUJcp ԲTY=&Uex>eB4QYr $ H.|.bU黂! la2 M؅ֲ]Ā5ˢz$YP&'EJt ॥*S)tVW+N*RE&nU0vqAxف~6R>GdhD;^,gmb{THҡ ezU4[I.Z櫡zDJY5FqG8%K ~j/]\$N*5 ram@2ANIj$v.64ᠰl[;NXr%}#fFd;U# E{ư3 ߰Dc,%zޑ7h~O_ M[.eBF[2*R93+lyW.t.%˲.wj&qQ8x?mBdMJ-M/;lj縸4ɇ)b'7YcHk)-!G~w\&N`> stream xXYo6~_!I,UIA[ yJ-฀"˻ k%gue94+ùqa謜ulT:" 0ʉbdB;NLjgy霻=nJa)=_}l[/7a$=Dn],_ OaA$q,BV/uƱh=Ԟš5[j47@֡n[+K_J2A9ѝ0$C;Uм u('dh*NFÆU\Ёe{Vh"E^#944;èZFSDը+ hof83xfk+ro=|i+T=$5v3R{*T_l L/2}+~4@ 'մrHg,uC̫"\V-7j5l.8: a KW(hQMMF;e12leL#87˝i$Ak7ipRA"2OW *3[ZneJjmVdg@C E {vcI)&szezk_G|j=M%DšR<1LCQ +FRצ ԿlbOšh7f#bӄJ-yj$űM($Ez,9|$)+S=XŁʘLL׏PMuGYA] P~fy iBI\pߵ7šxec{'0(l^r5h>5uro@C'qgT72=H 3=-"w+8 3z0%5LYU`.Càʘ}0Œް31<2.,QI{|}=#;D/`5 W_,b*é,e1yd{bK{LbN6n8I#dt7jBt,Iw$Bԭ:ĭMthv{ܬ6a3yɓNAIۂSH{e P'uޭyG f*@xS9#?Έ~kEI.#h6wSqd {^o%k̦Y=[ނ 3Y`Y`3qhH*R{8L>~?;챐qIVkLq!Lidۧ/%D)eVX2'Jvbx()T8" (b8KP,uDuD;1K^9,~3:t cG>a$ByK RׇKӜ[V9/zg!Ac<,eL,nT1ߗ89l mX b7/ҝT=zE;[⁡%?mI5o~u;}V0`N}K<8Y;K3|Q\U3QR~c3@pU endstream endobj 182 0 obj << /Type /ObjStm /N 100 /First 889 /Length 2469 /Filter /FlateDecode >> stream xZmo8_Xmwn$u%~=#oq8,5>gH:Da$ ^c] k % ,֣"ƄʘoOY:hp wQAb5sH۩N$!A \#2=o#>R7M PM: eIЅ68&F`4NP00qV5335%̀[H "7lbb)5pA8C V8 9&\>11Jc()Y$h $a1BpZ@`@XPOX%`1)sh,8F(3&H0s rb,9pe&{@0!&""%bF0&Jn"O4Feul0 <>Ņưx'~$zN6$dr9ڳMEi`{1d@A*^ ԼNw/j ` &"T2{̵ p/`nc z~VE#.Dk}(6b ÷O> {pE {Wl:,ֻU.FeU\paV˘.[> 8( /ZƐس%=/mW – {?شtTL[$2{^]2! 졂`+V9ҀE"P )M^EyvSMU}˧U3h/2AK\1Ը4LSpD Z‹U_ogQ?82.$V'ÓLj8%5V|VG#rAF,K4QKhؕ.]y {[w\MsH[w=ђhNhItyVrXm'/8Rһ{U檪tVHdc$s=ݣUampa\lzVpn^y, p)fL1͇{Oٽ0JrGK!lK*)첲qرNnjuhgdRw%uJە+}W}jHd4h\xdb݋u>3 6MŴ3XC!2H8aE%,F'#. ?MO7a-~5fͳvlٰW#3= Yk+ 9oxzE+7#x:7sь g9F`מoI^g/~W\h1lg\(ꪀ&Y"Y⪁Ӳ٨nz]OEgM jR|͚dTdpZi4ɇCI6z\gHQqMw6M&fV^$5Yu]şِS>,6=6Iw;)o|//{ -<'5VGGaL݆omvgԝSwOY&?_֯I 1͇(AÄ\_1^u] TmS@QZ )%[kB]yR*l'/}(wlPե-$^NCǵ=,9 X|{pM mؓF~oS7!q U0HkG4G|ȗnb<+zǪ(9y*8hYr#0(G$CK$c1Cr d'^)ؓY "Qd7ڥ3Qtfq /R>t4(uũc78,U92pါry9_WJE|5 endstream endobj 319 0 obj << /Length 1731 /Filter /FlateDecode >> stream xXYoF~ׯ#D\RAE <$)@S߹\ɴK!,8\~sTt"*)UUT(wyRZ],QO t$3ZW;xY"mi_vtcPL.O_jM~uIe׏3v1`\5Vhh`t0R G*Z,3s;9N#;B<_U+0) gE.uĥ%+Ds|02yBD/JOld/Ǽ^n)t*2+hM !&siy"-eG 9iXِqux U @mrlT զ W-`as 8Ze۰|řM<԰ya Pք3anj1ITd?Vݒ6~Шa| 铄`IpbF,EqTG- 9A^E\Wu/vǥ(IxGM:yM:gSmK>5Tʣ M'nCpemW"n=rK/̒{W9}SY`<6#sA %팧[ߋb-Zr;V`WAhn(NEv÷Q7AF}"KVSoQC*h uOR}%TIJI}u朽ӯ&%nM1|6O`p}<{9%)'z bPRuU1` P踇%ekk1{61% Zǿm +J7z՚$"%T3P)ˊOvlΪ^Ƿ۪0jңm?v,:ulTC:W ;o8n,@;AM_Qݸ ulնznȋmsPK %h',k<_>ikO%u,Mw?!jʠ@[$#omRI^ ¶.ڏnġer9?-DJ}hܲ}  41ړ<9I+3M<ĸ430}O2|k[O (i?C4 ~Z=93伧\72J0kxN\KwA6m_Ć6?FڣB endstream endobj 315 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpEjjhpQ/Rbuild3ba61c35073e/gmm/vignettes/gmm_with_R-025.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 322 0 R /BBox [0 0 720 504] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 323 0 R/F2 324 0 R/F3 325 0 R>> /ExtGState << >>/ColorSpace << /sRGB 326 0 R >>>> /Length 3775 /Filter /FlateDecode >> stream x]͎ S19xl6b@[AlH2,맊=ڐmǣt7bk7??=;~>:Kψ{9G=|ݗߕrk(Ί/Ef`0f Ι enR8`aƒѥ=:_~J/}V${v԰w)Ed&h;pl.ALTd"AqelsVei)Ί1,cEӶ~) {",S(J#<$tTrB2%H^U](PT( &7MF"&^DR$4HLXaJ2l2h6()0w+֝LdlSKJ9+0>¶f78Pine5P6&L6yĔ"k% cR+ݻzm}KԔгeI}I()mA{f!Uu2 VrTx6HM,Y2VJtoHgeB!JMVC޽%Fll޲4$o$L*k$%G)J# Õ^\=%F?( T17I=PAtMJuqěPaʥuS>wl61@.-F+$]6S)J@{es&#GeMvceTIqi.&YR _fag\ͭg-ZBERI I|(Bd.zM⹅uH -VAVG4hHEV)…@k2Ki6wR3`aR0ԅj|2VDUL=c+ldG") NX+cS%]l8 0}B,)!2th,*J 7sF`ƶ8lSБ<)2J);U YGΞLKDYJc!+0tY򀹛$ 8u!,Cy֎ZnȠPřo[ x 2 aUM~T]<zZETنflY̓k!-T:2tRi{5u fYFUIc+hϗPL[y#S֯+/oQFE|]goy]&~_l5Ɩ]svLbm6nzd/{qpú~r,ǃ&/z4>04@c >ṍ_}'`>"3t\b.{䷷x}uK8lu>q~]3x]G)u>E9}{4[_> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 338 0 obj << /Length 3143 /Filter /FlateDecode >> stream xڭks6澔$@27Iiw\۹5$I;x,ž!5ӣoΎ>Vy=9[NyUvr6l:[Ld}?5M2ŴL~= .W- sgGj'5:78ˆf= <|.&n~~GftXk&ʖyYi&[=wx5bgm.xŚ^haOLM %Խրlz\E~jLM n & H{9\H OK禥GZ\WwjFg3j$ݼU#7#-J>љnw4b-ul7%d%^z=` s^mU,^o/네{( 13 cBs DNZ-$A4Z@V'V+bFbDX " ؉NoL|n@ #N XJmUrW8\ nAJ o*cv˃v0Rߔ.gUꨣ6y27lSŦ/{Km:{m^6.)o:wI<@ `J]gI;6yTpGWyde(V>،{sVi 4i*|{1j-PX¦b߉}:Q*/Mh"l(jY!{)BNىCv\UԁI(p*\MGnF3oBhx8)ކv*QȨ-W)^Ag4Qπ8 $-`s\2F~#c‡H"3W5@@Id/8}/2#SNV[Xޅ@;7!xn7iiDQQN$2D8|i+Qpn xAL С[/ș,\2yC [*Jߞ|DY+>V<)V{J$4Q]4n-@f(c)#u Jt"چڃt{dIC`XQp(.@ELM=O⯲l`zQ56NUu\)&{u缾_H0 z"|tۿ Jnb|! nle*R^uK4bq Q0+SQRktM O.*w i`(T]y#)qOuX ulq/C.2scu 뛘o@^6_r-[~vك8ES6'TXaS8ٳ;/N{+d$ 70Vz,ɕ*uGdX>Jm)? }YʍS!=|N"⨚An'&}Hg9 D\c],2DmxOܻ,o!QH Ldk2S k `.Ìn[û 4ι(<ǏnΎGU#Xׅo{9L1.!yl%2uˈױ-@U B rq eu=yF\܎#$TU0=K*(#}uj$Md#"EFj Y6!ۥd1JRn~ 믿A A5y}3?rdks5PK'VjOD[9[ߧ90#9yN^i;X do{~h۵ 6(추!'rK'CKUѪX22;F.7G\Ӌt+ߙ-9'@IDkij+xHyTC@A]6&οƥ4pg35C&'ega'W+ت sp.r>`OewӇ2Ht_\6Q72>:ڱ0X;qĊ?A{\濡nS^@+^n "U~I͝ .٫3DwS[gr4Gj`+bp 0Mk -VĀ4v"b0lr5%dݒ> /ExtGState << >>/ColorSpace << /sRGB 350 0 R >>>> /Length 6471 /Filter /FlateDecode >> stream x]ɮeqܿKrll@b^Zb ѤMRk/ԏs 5dFNQ?y|8Wcv-{կoW?~/j=>s+K|z_}ǽ#.Vۏ_o}|Ǜo^{أs# ufLyv\c?k{^{=kF]nնۯ3B?{]הQך浄7]ݯ),F۸彍r҆]SZ-<7}^<,wkfΛ9\}WSGnWω?MY6='<GۣO 'iOt}c5#|7L\hݭ_-ZfW v\\/<sBCzzy8ڲ~9V~^lUĥseǥ;Mӭ}pZꚦ Xȉh$'._B%̰A9q-|\Ws){4t RX\s-ME3 yE˄]g zZC&+&rrւ6ؗ%I|&ɺR?ХӊȡʼC F{.Bf \hޤo@||j0`, <$7e'j)i׮=qE&"˷67B SJ~iAY|,|=ω7{1' z8Ѿ=|8ieR}hKOמT6p5I#&-Zٜ8{e*?Y5P5&a6}Z`3/::ڦ/7".,6p2J9#bJV+#hN:pAK6ĥ ԍ"9f3UdJſkFw43p6ߛ".l|pqK߾ ~D4 A$^K;J6ȷFPIRT"O~`\V)# 4CU *-)ee$C2p:IT j%0R7"t+a<]Bi8k}]xbIyLF4Wqi/f)[s(S`n`#+WAn *5-Uɑפ[]8>w|LLt-֡ C*ݘ Sv *- ܚ$*JH O0;4ܻs+Yf M)!-5PBjņ1TGf>PSj<*ɔebRFލJH}0@wgliR?)b*HV1SquJGNoO |$kcVPiJ/ԶU/RoԶUq: ܧA!dy.vh\ҢL%{*jHVj|5&rNWm ]C{34D%;50PJ%+e3aQdq`+;b&w\CI\TSJQ1%K*٩p"OFd m??6J?MH1RrD *K(Lbo,=epo< FCzdʢȗUtp ;.[u*nd$q6*%'s&&2a#4BPiL G>Apz%+P #]'~蚴$ۆ2r8-Ɔ}7@Vu;%qoL (iZ 9FTԝTQ`7Vi) =8eF0$BP,ڔ* N 334IfB"#HldAǙ6i e&OiL.vm(.S|AR#%bIt4KT VZV5?{?JvJVd`2)O,+tY qJBl21^Y0Ӥt KIzbq͖I9KT*:q 7뙥m."L+iўɠR-fjpBQ1ˊ#aFJ!(bRiUapu60#eΔ>e+r"z|ÌKٍJEgw3T (׉PܧٹܐŭXгo&)4bE]~6 YkPzh}yϷFJGycV Uy L;ӈARTJDX>A% %YhsX+Xsl2̤p|(Rj'jyG w/~vZUɁ$z|7_3_~7_u޿u ??rl[ O8apO_jUڷdaoވ8{='+_{k:ffEMO/wͪz9w:ʛST)l}@tJ!_oPwxx^uϺg&)+NC5]Bv3$/՞&@FD'6Ǫe:َVG8BhP&A{o m~|gӈ&^[\qPB~uW<.guj<@X:_zXdȮ?ltg104+z? >\okWa" fZ?ؤj,L_|?p/hO7 ّ>K3*S~/'I7Q)oyR_9^F0b(yt7sc(H*0vI&Mf5D9>w&3wIRv(6۽" Hxq)?I:X,rd$Ld--^w(v><$Q y na_2왋1?QY%S>TI2zp!%@$_f7R_y`%&,煚h :Rp|PUe 烌MNBWR0 2q=SɈz^W1k=ƨyDC9hFF A^>HrXă)jQ85 Z3oG+Ƅ/2'q2ڬ+FuxTXFd#)CyBz~x«J_ɗg)xڼ?H4~i/bGߤ $:/N 7"nXǽ@\gYv{/ȟP&M@"r^n@â{u?jzA*0/"Kۧsd|EWx~ύy]^Y _T];7~cz8O}a=Y >KgqirYm,('au#{bޥA큍N޿.D{R_U4ڻ2XO?3Ǘ3,m4K0AlK0cp`֩Y;ڽV5O^FܿmaY褼V ̸Fۨ򀥕^xy߇Džmd՟BpF* !i`z;׈77κLnz">cjv{ȵ46;: =(gy0n ŝ~Q'-coյPD8y 6'XuP-aψ Ы4raie&Fg١dWFNF&d6~fXnypd,[D{9Q|+~Ϣ7B&0s2Yy `o3n|&3anGv3R>V9[LCx1! RfMSȜS&aWsu7u;YE K>2)> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 356 0 obj << /Length 1522 /Filter /FlateDecode >> stream xXKo8W99!4nm] e'"+fCr8C8i "E řoHՀ ^<<9K`<|$̤G7HTNUoȽ"feA}I'y=ɜOPKb&<"E"׿ uCZv)Vv-1gQ2HK>?n Xs'yrwBL9P4'y&r&d$G/irfm4Y+, Ȫ|NWI,7f$| u+w\j]7Ȏm"?^8d#ǧgJ4YV(Y[ Ͳj}4TkH U4'shYxMWn lI<:@FKm4 }N+f;`ܖ)z'vu]:~)) q3R ʻ>TQ&H> bn~N0F5°~ב\&}#1qԱǣX:sR&ƚ]Ζbw9T2qTųlCđ_ il{$V"Tsa$vȿGwsfVdٖop+*i/ /{RAMԞ_^n jS=:"֤M][gQ=3hD,q¼5!Hy _Us;Py-kfZKmoBTF& sf Yg7.XR-P[_aIc v 2VX/ _C:AE&AsyI#T7n{c9 Zuw21O8s̘j=m 3pnhKTV;K1'srlQ$øs*)Nտ2W;@eʥbm^/a^?!'8]x d `sn3arRdB_7߼yîpq5u`Âe+D+Ճop8X,k0M"Lq Ho!k!Y7h`d}EY"(2sk /YFD<`hݧNj@"rxW z6S^z LĭTF4;*6Ǩc ~18F:x-RuWLQQlzWtq8>1%i:hxXv"IDkn^X!]dW66}*4ܿ#yjlm"~mT{~ +D{r=$ϲWMx&kۿkL endstream endobj 364 0 obj << /Length 2853 /Filter /FlateDecode >> stream xZݏ۸_a^݈oI{4 r@ "IP(vfQ˛ޙ!)Q2eor}(j8ÙOn&|ѯW~~^䥘\]O5fLgbg>˔ӧ^L\3i}7`i,ㅁ!P#=2 d,u~~:7gPX =H5/qݒ T]z@=}^vډO rm&/ 'dl,&DJ!L[1ɄbF]~$3~AU w 4TgP, EAT,JN)TI 4(3Of5 #4jsոV[˚(2RgմD> 3gDV#3Ž\ fD#)" ֠=O+|)wMh l8sYTaa2nĖn${)g}Zvĵ'uFA@#e2\,IYuZ5HdAWNjչ_]Ľ>9δEa_g)6nu֤Tz.B\tN`Ѽ1m&K52-;S1KCQgK6Yf%ϟ`Y0=&7Y$Vf[X& LvE]͋GY.Z#*ֱUkRO~Fl)VhMY$tL p5AW筈6xݦ3h& `_Qjֹ #R/Ф,(iѝWƑtk;X`Q& 4eHk4QlN_yT ;g[7+eO,zU6!ftғI Z6짺ۘ '94){af\!eZ1/zJs8o9uSnSYɤieb@rSȯCKNvo A82937 N)rf9S '!X3vlUIO<7hқ Kjs!w"<%2UL-2kVJ C禁 QY3ULȼzC !fpz q@ T3!-rY6tP6ŷs̾zC[L?:sRȎO=VmMSpCL8uJj8cI!qLChj]4C:vrs?SCy3E?slѺAW}9Llt;oR\OQ*=>|ǝy|kq=[YIKDrs(!Pu -\4/f- h4T&FEe@zL A"|bE6B'Yc4F`4ig-RqHAs Uh&V{P\N?k ؟r@ȬMjGJQ-r}ܷ9И8^-Z nMVaxWV'ծm< ]f.m'"q r'Fh17J!a˾v\U!ejuX ; F->Iud:ĸ(xI; M+"]TQ۲s-N*̮]sO^WT*#2VBbw]Q6d ßpcӨTu,Ɂ37Q.Ti S ŝ-Q ǰJ%0A854ű|cBvkFٻ hyD%,(Nh1VcGr:C^ &9쒗~"f`3>FeIZizרekc0efv;^b"J߶'#y7}c5I}< !ΪշC$Aa.̏Wc5"zP< o s2x!yG}C{wQFsL21Ֆƚht#ĿCa }=;R*?0$ LG$H5 -9k6WR8I#J7b A&XU endstream endobj 374 0 obj << /Length 3004 /Filter /FlateDecode >> stream xZݏ _a}_si&]Ku>i]{FvGo/ER3w(('jh17O|w~$EYZ.oF^uer6zW(3~G )t ތex*w2 _zn`]L*&|O]xW[]ר݆{U<zjoY嚘b hAkL(Vݔtoy߆grE5H'ɢ0D^,Kkj2_r)UU*kⲕѢDaMkߠ -TA F6d=]Q dtƕNETK[_B݌/Eզ+3DɬUYp-mhxFn0̷k4:D|y{D6/6Z`s}uN"+^|SJ<}7;te3Ay,5XrbTYIMJΘɗo].m,9&T&q3x"#œq}`Բiv`r["P@g~gQn"Bޭdie;6Fv|i'M0 cjtJZ1)bH`Sz^o-G(Ҳ%Z 4Rw3{3emy\\()NRꑂ9訒nzSĪF^sZA:&˂ ;lضz/dCP)SRޜX0`ѩ* nuAB%{ p'#LD}d&!* Hb,T`SʘH.lsF2!pK!EְڴCH׽t~<fXމ4Ka:ezy/$P86jzw_RxOx"gmD{K[v/$ED {O_[WqBzL!a )p$h84+HPYID KmY'<#0LFrrÿ!S$b!WY?Ru_uycӸ` dWr* UD5<Ԋ,W#8Yt:ËOMrSShHlEERW+Ek󱑖Nx.oxKFVQ,hm[!$9lcmn/-PK۴ҷ1s`t,WK8784|VB}[h(A)vܲL, dka]23}h\:H*?2MlfAՅ5:V͒'Z\,I^" SZ#ᵌݝu\dy=<~guRZNHԄ-7os\| 67G0 X9ۊ&-ӆq.nßxm>|H 2͌!g'sX>02(bKW n-qKU2E6 7$6Ndy 8>KGkĂzB#eQkk$~}٥tvo(?>Ds Sxy٥ژdD6m&oK6wӥHMÒgd+n?"X8=g)ɧDXvV) 1jtN. RTMIֺzoH%$I}]oPD_9/.+M2$&;paO pT"pUG1tqUR!wI 9Ϡ7Aj;a#WH*{Cfy@4ԉؚ5?;Y&۶Z[V:Ya\ I􌯄(^aVɴ!;CP@v1nǻ%{̅x]բpDJBXrQ ^\]A"`@x[=njմe\]! 8%Գ9HN(y`-c 2!R߼Mvxh2xss-rxc 3Y]n~ iV/6nf+7[ZruN6@+)l"tW7Lr`uF X8u;hWQ7OFRyMA7M *nhuNem$l:U _2eS[n2q׋Y K9i}NUitݿi&lir}>:gO]i8< RG.֫Jj{soϟ?*쏹[QhbeX+7]@O{J^'>ԍ3K ںtsW 6C+xE]R&Nb͘%oZqM^^:Ҫ:yz?-xV"A۵:Ren 0!OiFQW*Pu ~\v5?Fa) X -ӥW~#j[ױrz;D8r=.Oj},O>k7-G.  [0bf&M|{=9?w)}-AktxJh;FBzKzXt>m>Vg|)N} | Xe3{ <@&e07;Pe%nTdU?9ua,Cx?UT2=S^ ?u4J?z$3>0o#:`gSr|S A0ɪ?۴B3L+jxw#,U];/V'Я z~۳eN endstream endobj 385 0 obj << /Length 3157 /Filter /FlateDecode >> stream xZYo~ׯ`H9{xuF 6{IIQH=utL[쵑!s8Gu_}UC19ɳ'RTdji'vr}&+o\k5}z\׶zV(=3^MW_ fkZW`aKZMYs$1r2׶ 33gk9m.lt_V-<We$EvPP&Naֆ嗾N#0it"_g< |$HijU jv45e>lSyWI[,?KYlsz{=|>M}},f:-nҜ Eȁ~(.ƨcJJ  T]7q2z*5 |X1ao{8-+8=&)* a]3a Һz(mUTA>\w_2evENZO`,>< hȧ~U\\jl @`EĴPWV@-I UGYltz&9pf1Dad0Ibg$3\!glO*6Ih9JQ83aMIUԻӆ35]ʕ.'Ή(/$]0Az&mGw' P ,OnӨuZs.]=*^{C Nh~#G/j]?4e`,axt;]yY[R9/g*s&~]jL!KB0%'"H\Fgx_Ck7;485VD3?M8 Q]2jiS g ]Q,ٹw plXԵǩ. 6A,w!|)\ 8׮VLkb4XIµMWPbTP~y@)e.92ۈBBm(?@Cߟ_E0NuܸA{ 9zFj:>\ ]r& ?Û<p|e'o0TS2&{tپT и5{+>kg)i1 D+tevz&wZ3 Ofs7RZʤ8K˩n0l$tx#Ǐq=7|g(V5!R(, 1י#^ah\]}Q7,k^uR/Cu4D}K. $J-(I NvH>;)9E^ у^$㋨dzԝ51q*]7ڽJ`|\,IRD:>*ő/8#A c&5>H['-HQ9*.1`EdgM |eIcne )C*xc"8_/PVƵ,|؆$R+u,GtVj~Z<1&_bhlΑ]tpk/Ir89Ѫ@i,6Go~%<N% ɆXO^n-|Q[VrP"FPxݿ_6%ȒY K d%4r"Td :w 72erNɯd|i/TFO s$ʸ2%SRS v%bW'd-2~Y5 V M1Y1ǬV> stream xY[o6~ϯ0dƋ(J:ò]>8αR[%V -`ESG~>2j0χ{?J U |RX78< M6x;٘J{T1HFckp'8z~Ȳ!81.ɳwzhG'Aca1!arZOm(з/!_F0.a,߫Htz^T$p:|F.NІ xѾUmIOÆ3<-粆:]:NV3S ](̢•x:/Fu+7i^($Ekg&V?T+z.^Z*7i|^s~=.̒5.D&D9hV&qY'Y^|QLAd)M^ 5!h <@/fL'Mzn_T p$ ש>fp- -&&Y`݊5jMIA Y{7K@5鲐8Out|#L7sHJ8hvDMb->PV=If[9Ŭ7,y[P nyW  Eu_!GU(?1@[٪>2m"4:3gK ]r_JEb4t1|r4֙cnթ|;HADZG 59K=;3 Ӏ1}7;ϣ kܟuib]dprq!M}^2x2 3L|:sX 1#K:[.9;k^!%6.pŤ83?+)!A@<Ȥ+SlFAsΫ!¿ Vynop6 C̱^ X2ZRʗ_ͥU)+P#[PqᕺbVBXԲK [UiV39YXmx Χ A|/jEAqEI\"R܎rKv!I_NI,9/LuRںLG|.KvS MV@6-YKh`[KkK'Xwc")D%ʫO v"v|b|>Lc4I3e-4\xg|hDނs#V/{b v2x\b"uꘚcS>XbX%w?X:NV͉K1h8x7d3jaX)k:r$k 㣬] E*`<'p ݳQb~@Op "b^gݖlUm1// ytLѧDVpQEʁ|9j勏M1IEkDr%F^iIkRay8 yrtgJ*ődM8i.Ph$DBYv9:[P s-4Fhe4F ۈ"0Lɱt$[vWbJ=xYEs~qGPT͕?&*N$G-=i?m߆͵ .jD!% -.u/|T\ȶ.{*t`75c8Xjj8YԘ 7W:fGWx CoN.DŽCT1QoX>/B:)`l<Pn8%nwdJ0KoZN#%7eJ#@(JO\й*T2qV3yQ#EXYh'_W,iF5@p=`z7 >s-C#Ƿsp^O endstream endobj 414 0 obj << /Length 3434 /Filter /FlateDecode >> stream xZ[o6~_G֢ۨ tδݶ}PlMb/L&}߾FJThǙiLDyx9]Ջ]emgZj̔EbVUbvsU_Xkn;sd(c2Y7w0i4gQ.`IT8">}Yvuټ.le|~&{dl} 5XIUuh߮ՂG{fDwԼ{e⋦ʵf.o[ܼ6+h~ +d7[~lq=uEp^iҹi}kMopY Tٲ72p1(V y?1}Wl{43Ҹt۹w-v[\ @dh@qQFȾ= e;"zߋ_^׫* $HUd/P'љQJO>4vXZiҍ-.n#qK$/QW[dދ]'ky&̏nX"S!ҚkL%>kX3TS59$<~kߊ-P2iQol8~] ]yҤ)k׼Lֶlq%?ՖHN U &?ĖMcI=+݊4SgsnEcuj`:/!\w[W1H,0). pMS3 KmB嶲'MXTSyݏ].s{aIE БZD i }_褭AdjmbAiݰVz&~l)eRʼPu$gZIDOJ274򍑕VH ~g1>Z"mT z/=tg^U<.g @]PbE]u}T8g#2^|vcE178?<a_iIRfcJkX l@fl9M-'V. @dBѯvZcV:$*KԆ]0XR߶Ll9 A@YrM.9ч2W*)j@ϔS$-{!W&̓'a5@\䁸ǤܑT6c/gj.6"ib*]\IAOIK,C "l!^״|FR"eSDҨV1#JR u||P'X8B-7&ShEmP;qײ{yu}IYk=e-ux_Wm}-yH#; ާd h1/Ru G5u6RaQ vQ-s(;ovL}c ~l !`UuY[Y'b`fX>A6#<UKM(1ASjLMԄ`TÔĉ9qp"ݻSF&:y#p@P1@%}&2@]bc* Neqd{ 7Q!%`S%wQKgflkTŽTt/ҥepU"oZ]9r>[2##yBi޵ XzjvG+0g Ê^>~\x87߀eGZsa7ǶMg/%ϸ?{ݓI!1D? ^^ܳ5JL[$̍irh=@qyãg O6{4@jhԟs7q^#&yٛuO0M#w7:䂞2Q*/C%tbr[)@ҞZke}RS>m>]8)>G ȧa58 rWw&racsy҃ke&T 0.GŞ{?lCڴ/]_ u|w })_XOz((Ƣ!XC.2m@L3%ͷO]⳿O=W؊ǐ; >b]UN7،~}`m endstream endobj 438 0 obj << /Length 3683 /Filter /FlateDecode >> stream x[ib|=d0Đ8Xk8#94=SU$!KXOlUW%6nYUO'OU-j1y1/L[q+d|W3)ŴY%= \]_0Dfqԕ3Ətu .;]6xIηZ3wsk:t(nbUh+}h}M饰~unNwaۆ@ 2>[~jat_KņOPbtek5 W)d$D&DV9jX9}τMm k^i}UP|w]麞$>sz[zl%L1M@$jk g4%墒0!*T6m$ZR%l*&,KVJ|P4an)/ɝʀsAM%>)tMF3JJ(')*Y:0$x|<~rOmf늁d|jbg |2. Nhr߸tcfQs{CDar04yʂ1!{\Ϋ㉲NCb_֠Uc: ,it5Lfܘ%Ԗֲg"] x&Cg$NŞmL w6fp(*o:F*U<^MU]_F땰(<ӹdѼľOxWsw5ϻskfx゛nsfЈb ITtoxTF3(F;}6\7ܿOw!^Im$1*QK:(ṡW3v QL;Ze;-v*cU)iz44Yպ2VpG]xaXUY)=8 K2ڔ!gjg;E-RUN(G>ת|rGHO.^]`&|" \'ZJGŋd/J18m AHK.Bg:Rp*= ۛIf?LBPࡘ=XkF竄>(|ڎ>n\VwۇT? lvMpz0&G0Y-?>N_Nm\Vca-\Ȟp ?,CKNce'=;L`WPYil>#jM2EMZ0>7ƾx$4vp@XP͍@O80?dcw5QsXja \6C7E/H>L%Yo %Hs2,AH (Q.r;oQ{BkoN9AQg6:K; =8 kP:iyӅMj¶FI6`x~ Rg{Er>Q$*)0!Qb(6-٠gw$:x^38(vvjVr~?ZџB ^f!@"?ĴkHg~; 0:{qz =*2֒]N[h6k`N#q>ץ>Gȿg&J1pp3zLdk<; `1b'KF|140[OjlJlu#^TnU) 6bÿW ER9c?`R L'D%42+0 l T8ENdap9k%zz_m`v`nP++L=kɢ>4+:xo?\$[W=@I Aegq<`O1)Vޝh)x7],R-Ϛ-`q}<60Z5]V ,W'\׫x&" xρyy*x?na[%i ),vɯ˝:(^N]xҋ':"*p܂/yzLY>b/5ĥ?OAI.(PY(䙜hOx!%I) N$U4 1沏rgy6>+*p tFOC7A! "#Taz-G~fEZM iSsy6l'>ZG 4*|\d!hVlQ[(Fg8I9ȹq3xæ.BDZR|ӡXzv{%b #c*WQ :$K#j>4܈Z>1f '0$xёg=ηS$̅X4v{/W oj!5GȈ[C Q~hu/T e7[o22ᯇOJH~%~zt=)a!Y%5J-s~ 4He(i :QqN<:Sݟv# G#@S\ΫrrL{$jyυ&(t!T8]lķh:*!J ,@K8]tT XRd C&TH.@0c?@ hM$Mh$KRD ;Q}_ !4GkA2*M La˪ _! tNu;ٻ}@gjJxEk,m%QiC)3Yyv(+[hm]B oO r[ԗF{l1@7)U_cySw1H%8G__),#ug"Fw^0 7}Vʷ{м[ql~w !G\$3S2_F +ViJv|Y ڍwy+~4$ſìvلbJNQā{VgLs+6dq!rjbҊKL6@\S(m3EэBŪ)| c"zu Q'AMMZuQ#|&A2%@k##VꡚϛGRZDANvs)RLg0wʭgV_ZZ]zzWֺ$Hzױ`ƿ$f /9M|g2[P܎RhSw߿sFWf;ǫH+Y[_ 9| } e|:T}uq ,.% MVKK9CUP'MLN:ߞUہs5<#7"%S(#Ͼnw1]V>>*&U#J =N'> stream xZ[o8~c m3ENQ,[I4%L;8W[ ДL~cqD1c%[0[L Z cfVzxgV 5'uHj1~Y {SWmG Lbu!щԗ$z|qՓ%yzZX >[ϞY1^cޢjRsbBS/ WŤ_Y6-WfH,xA2 `rtieR ]Z:KFy[qJ*mB 'li_h/Aǟb\WWi^EP#z)G~CU:;4&kі|c䑈'o$yNn9{5}2Nl̵bIu}zY5im jf]m1-N[xPMjȦil-|hl\NjtRd|c(Z6)1ES6Ml1t:/Y>_̦곺*.qN|\|X&r8wLiȠ8܋UJ>ݒ &}EIY Xv/V\~+6p0{E1JqSRH! 6lpT9챂UKeWkguUT!B+!!힐?z{>y^*,$"nFYG壗:f|N>Y&߬| >飭G?1J<:wx!; 8]>:/j_E7`uqπLvN  dR,)xF\oOd7TU) -$Yy {+#]tpTSBzhY[H訛 {9&K}8o24?-[_u,;+;Wé f'9o >^缘,Kx&;ƟWEQS2$oL˓y>lRRh&UC1z֕PİrwD [dxヌ#Y{R= ?p[ap@/ƮhLT\QTLTu{LmL2m'#{<ޕ lq=G'箵R@d?P3D2l]> stream xko~h%w\zAm( Ze78,689>=3Ϟ}~K5U󫙴U̜qRfv~9{S}.9o5_(%ڶsYoTsd;@0e4C9Dl-aa4Bb8oZ]UEs5_h5W$k5>5n'Lʔ2㲣 π*Ä .5s D/bպid\"iK󄘇( Df-ò5nͥ+.zA<k}J ($fE6HP ]`ݠwk2UŌ ,f[ p78n.:jA&۰*3GYmG<*G.=c [knÃ7=ٻg#YE;CZ$xDe怰WVr?{oeޡZDAwW$liˡWm/(5;). xBg`Σ)>xS$jD' W5h9I9v EC냁f,8^|B|FG>2D#B!Zy ôL@ q\-GWd0s{t4 Y$u<A?$ ,G޿]P.0XLj,@sD*4GȜ6Y1 #fɢY fDFcGu*ɬLTyƓ,3e-0)Av) q<Ǚ(5tR!# nvgg~=<38ͬ6;=[n޼K|DžS/" ?B1iKi8UˈUBW 8Xх?s,w`?iл_vрd%<"kYHF?^vJP2r.43$yMy%!闝&2b3# Q|Q|c!_ H biڄT|!#묂Me2 0!#2 A}Tg!2$<>(>/uR|'T#{ ??:d*A~^t*"J |uhzh˶%"N+fP*bsAif8YƈnP'X%&e9PMKPfr +nC%:X 2}[Ԙ+bJ„}Z7kcyc 'z%C y4.7Z(2qhbcSs.A>o@ou*85 PC(io\0ݒz0RQ XӢ82kfgiva&SM/Շkfy'{R UMjߗ8*}/k`_uA_Z;gM62F4)Y%vraBsfc'5]"J5 %'.Īd(e+sI h֛R:ttG EN%ӝ'F'PK(Px;yEDJ}06hz}8 ;y)sGݪ2+̛!Z}ZC0!-k/l"Zz):eMQU?1&ya?sٶ PТ0Cll^FXWgOHKqe*C|bJkь[9sԙ7~ U (ԽС(ΐaZ@٦4]bdHUBIm ra].X*?6Rr?%Jd^Ny Uođ௲ִi'ՇMr7N@x˟=;Bdk/ydRzg 7qNQ-#=\_8wvYˇ+gI22j:9mwV>w]Ƌ .C)ڑqz8e9 b\_/_2{P"6mge{&!Ŕ:_ F+$66 <J>lZwjW|ʩL^nt"NΗ?XQWc3hDŽ 1>6Ql޽)GH$-ƴVz pYz&̂x ]?\uJ}e@+ ("tRYwŏW/wxkYKEǥp}%{adCtCW}Eʙ~ 1q̳=?K?>uB->!&_T4B-/d ?u_?] R oI. ЪSy_HgCK}W$-Uye(bҬ4 ?M59+e$M:ZPҝDޔtnh}Z[\Ϟ>eTo,˲Z&Ii;N}6|y<8 Wk \W:f0K^ 5j&FDՋۡ 'n{ѪШ J(nU/_ⲁe+QQ4G>QBw.tK-}콌 վH]H&M:d!g)@%V@ϓ﫴0ɡvzۧO[aYSXp +OiCueT3*~I> B ih)O%;=id=K Ru?BR4,"^(pͱGa5 4[~ioK[kB> stream xY[7~_{.Eh ?{b49{$.R&QF2l.J'/aQR*z|:61~J.n =k~3+6)GE, ䷆Vw}>Vɣ7=Nl'_^[ᲂv#l߄}by 0 71"ؚU]NJJimiȼ9[G o5T19T-X q!L(0/嗕bu%s&O*s+QR\VgVGD`UlL~ix nP,DfLLϮZ|7f,cqx=DNIkJ*X- ozzZ$HW2^ Ǫ8WaV ycm؟C( :N4ɒi@I$ M9 T4ݐԝVDΚ'j탔^}Lȇ[1qޛm-˵У:(\O/˴$QA=EJl)2P9,3IyI ]A;岊zMewui~}LPKσhXCBl;xʮ=z ,TAWMuhX]VEEt cr1 #Ɏ‷s1-Y;f 5s=ܟ6TI\cz+ @̮pyѺY4 A[.} ̐Iu8:V]W{N4ò2y5jz#TH3͖tvNpY͚~b2){\"VnE݊4g]3#Hƾ~CpJ `ն>wKfw. _\I*Y ^Lt(Eʖ/X{ZHup9Q$+`vrXv$X[wY1CJw*o{K,.ʸԾ{asprљŽFNYuFz@+f EQkw wGo/e>WW 456ܹ"\T_`P8⑋ ۇ>Ybc O]VǷ>g֍q܏оg5ѩh1~(RX<1ʤ-5 _ $c߽w ,M2p;J'3NǿO}=/uv2]L CO=oe4v! $6cf׽oڝeR%yxo +q_n#B܂9v5z _6^ 4v L$(/.(lW*O5[fݺ  7h}lֽlHx B@Z'I)G2&bV+IجjG1Y2#:׬ޝ<ПWwݎ.l[A[(VŞiZB> stream x[sP7*3NNI_:Lv(S£,>;J6xhwb]r$F}uzZH9[5ҎU|oȑ'ZW[ٶǪJND3U$Q篔JgOU?FhU k+g"7 H`M%wʗ0\ݱsw0h*:Ѧ+}ޯxyn*$ ෻}eX¨*lh;ڳcYxTj:C^m+u/M9VB IysOAOHe4QNUƩDʚki:hƜ:~}I 1^߬Ί D>D¸y 3"r%4jb .yzhVZdj4#Hn;`  /]"d*etL'6Kvls=N@YP J>%b۪D s@GCr8Ld:Dɫ^Xa7gQoI/F^e5|]کnpnooG?.elO-ڒ B@h/Uc[*XP[?2L -[):vQ7&u\Y/`  4//>c7o3;m`xI!?.Lp \n&1xa<\",I] zOi_sl1W!=ưא;( v1,Yu+{kD{j)8 I2 %K_E= jsᘱb3x).ɬSYD4rw8cX~ ^ftz( 9Gݡ8 2$*n$JXETQCoZcqʆT:  A2λceP'mO09AQA? +E%⍐InGw׫yi!upb$>UjQP^XKل25EPQm`5~:9pw`/KۖgPa qG*cg&Nq Vs8^_3SK/W q#ܞn£w)oCsQl|Ad &lS%뛤.Fo+ч6Tl6xJ`fkI)Ɨ뾟 ~L},xwB*<8sPTT;UfK 3ؕC-μ $He۸pu  bw1]W$ix/Xuc 'k=Mrqc;$Igm HGbuprϓUEU : }P:,h2R  eLTq.b蝁+oҡ9Umo d5dNs'%ġ+mla 7+YxPP&d)c;6^W H7BQ 9OdMYiYD#e_6|Βk>2Ztr N5j4>hr7~ڰJ^{o3ώ1lCRآHL$L O`d9奣Pi%ZYCruPv"&w{smJvJ)td}lL`] #y0U 9XuMD9N|W!zB"ʒ~q2Mšwny2 Ɏk(!Pܫ^.i)[8ojZAcm(Hj ],MxJG={Vtjs'śZڮf}hZ~b7vvoRl !fHW!,ܻJ%w;Z\&[zӷi ;I ?֛fS"Dv&r|Ơq@64ׄ.mI;x(iL/N'ZtlmI9X7*#*evRnzX6;#K US?Sr CN= b)% |ݢX1wFAK``*w|j%ɚ 58`>j2j7)QHˋiw(}vq}H4Uӣ$ ,h%G{ޏfG FpL2h5p-G_uHJ5I BM[y=Rvg9jkH_j@SzR}3 C#3h`yVsYN|إ#1xbZ{_*myR8U~&LV4|BYؑ2e9TRFe DGA!RH{a]p lu@۔ >tƽgSX` "vN 7B {+{2aUS  Or%Z=`!UJwYtŬ*\h?3~ҩ endstream endobj 476 0 obj << /Length 1798 /Filter /FlateDecode >> stream xYKo7WA+b\u)\IzJrؖȏ3%WT80c8rG/G^ g5`Tb`e2lPra TL%aʑt(H)YLn1suO[(W>w8d)êĕ`|\RƓ`FAOD°XR0棙UpG3eXp2L@ Vod:]C4 _co ~.o{DN6t\h{ot65 0˒uI>jy(1U UqLZQ1[AaaF bTQL" Ƅŏi:!MLaY9/e1HU),ŸzLV% "ˊ{]d7Js{ o\],3$I#h2deUh.19@ ">L)c: 6.ahnx{Ui8^&Ԑbj[,VYmؘ2YRipTj^CrSV{$.FNМ/ ?󆲏[fj9.]_$DhbڃҞ4GS+U۩nTwz6+ϛTK y$Նefs-Rxlb<4e1q<)xA,Y)(D ĒcׯPa@Ż]n7٫ ?w4hCP>P=myF uKtpy83d=6!&W_+uE%;ro:9OģI˘h|8'ZcCD[y{S*M7buMyN,^,h wc_F y{w'>| mlخjwv`ז3ia"> u6Ivt;'˒XRB:L xBmOT@R{dC[9q2VklQNTG[0ΔkK4"D!$8' *v`^C1dqcP#NBߊ; }+_v$Keuw2+YN6$Ambm&šrDZ|"pF..#(H7XBT }|CLTE~|C>]ldKҾ&V@?@vHp$$:~}h]Sm&VJj@a̶OWQA'1xCf&h1|yx NFzS)ԉe*#h5*aK3[Ma[6m+9 5sYY9>Ǘi4uES$'?ѝ):c.z3Z$^J$֟Dƻy&tvcl9c쭊2a\v|VFP~-Ӟ2kʯ;ќJ߷='s?5|u-AjwfB_ {V$Xw1ZJӽz=NyYrnW}6YLk exZޭW7d fxwŐV`^-.6]9w֐ ٬h!з'еqD:] ᑷUsۛ/y#0Ms>:|[ܷ]3{2>1G endstream endobj 481 0 obj << /Length 1521 /Filter /FlateDecode >> stream xڭXY6~]1t=bi}H Z[-g:%)" 8CF@?,]-Le}X*86xTaUŸ22F lۥ÷RMuX.߭^Љ82A%J3,$셒"kb3D͒v=]O6 _7)rZ {yw(9֖Y̲mmxKK[-%K*{V$7hN8HjؤYr"XFN3 7ݎN?Nz+amDʈ$G s$J GdD=ݭ[Dw%U?sU QP0ұ*y=q+V « n 9qrk@d$yuD# Ikf_f۩_2"C.HL<6Qp޸Qem^Vk+g:.43Nz(Ќx5+IX t<OokX솺cߡMX˖h]C}9xoNaNzSvuu=ۡWK_sߛkؠD~pJ#+ ;\3905h?<}Dl.}|v|OJqBLyt)rO5_Q[괟mI^L.Lߌo'(k&_ w' 3Fb5֧A!-\l?AgX&gL=Voۡ1_Wj endstream endobj 478 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpEjjhpQ/Rbuild3ba61c35073e/gmm/vignettes/gmm_with_R-045.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 483 0 R /BBox [0 0 720 504] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 484 0 R/F3 485 0 R>> /ExtGState << >>/ColorSpace << /sRGB 486 0 R >>>> /Length 4283 /Filter /FlateDecode >> stream xKG߯ț{6Q@D""#9sEOU#'ힾ>o#筦ZxjӇ?mxoOV>}Ŷoڇ!ʗ(i)^VVy4ʹJ;x|_C8C1lk|%}f0N]5jom*nV~Dv64b$wڇ@a6 1~_96|ʇ:ǣa!E=!CcF"x7r~@i8ʣ"rL3e0Xq4oTrdW퍈E8BS/ M7]SU?)4ȂX6mHkb"!'w7`obIדe9Aãij2Kj#`&}jajV_zpnCψ@azPm}#>1ǣ|BcNDzbt !>X=xc1F3lGZ $Î.SK}⛭W$y liUDExC✖,ı5_ 0l%aA/T?*?!)Ƈ8*!c|!^Thxv|-o%T\->i$ \ f/UǂYYIBdyl ċj'EWbB_4~SS"x\=! 3& Y"`*rEՇ@Fe4X6*9YUBsOxxHB#PfG75 ܦzXfc(<ΈU|5Ǥη@Ecڵ_3&[9ö4 Z9d+-AqpaaF)gL4xkFnj˂dk,f6MZwƌhJhy-%ﰻz@ƴ]W5#Z!K]T~얽eDk7ikO`'c0m [2jކE4 i1tϘȻiCov:f3͢YFḫ0tWvyz4~LnxG}6^EZmR}OOƴy;TyDfd57y;3-=yv;&yin/X*8O72oۓۑc ZiӦ iv;= &A`o9׌?- Cz7sXɹT?^絖5; 9o_ eKŴ*ftT[VjnL(yddaN~B ̅o<?]ًwAC|*h$6ZMp!{ HAiW&^L 9վW6 vڪ|Ri\i"o#pz\`i:֕~9(f`zTvY와i^Z\M^ ^tƧht1u"ǮU8(],M\Um$ݪ5ޡW vG qOӁdìϦc(ar`̨|)L^vym8sDgΌ[ *n A7#]*z-ytVMu˜CE28Oբ*\7]d:xWxQ\ĩnjWUK4ޕ Ae\ivW00\^f;IyUMdbnsžV՟5:N+EVpNW.:U8t徵+~_ü׬W,^vWί2s(a04t!cTNjZ@Y5ވC伃|u(0TTy ]c&/I[2L^8lS |:\|7r[s-~G趽;bcWl|{'/UAmEKUBƾJ)]jNS\egJvo\lW›eNnrqF>#S.>tKtHd 65|Z!,ó5ziC}5.m_CWsԐB;Qy mnعY~VMsfjW]hg7_}sa۳o^7nE4Nkg`~ͫ_F4ize={{9`=)yzM|i72irNNe7_tr<;^o;7e7_.Wǻnx6;f7/wnvEǓq6yqn^::/On>i7/ώǛf7zKǓxs|vxw|6yi.7|qmvi7_tt<;nvz~n^:8ώWn^S|xq:fRgNj~n^zͧ6yxu9>|KOf7/]wǝOyKݼts'dzf7/mvxq:.e7/mvEGdz͇>楃xu9>|Kݼtr8^;vn>KǛnxr\O3-Χݼtt<9^7ye7w>楣拖ݼOgǫqO}ͧ'Nji7/mvxsOf7/]o?SGn^zͧwǝOyxv楛§wnvEǓKiri8/Oǫq=/mEGdzxi8/P>Kgǫqf8_.ZEǫqf8_tt\Epxs3/:8ώph3w> 祣xu p>i8::/7e8/= 祃xu9> 狖|xu;>|KἴKǛΧtp<9nf8/w> 祣 6yqp^::/ἴ pxr<;^op^ 狎'Njss/ZEgNj~tp祧|xs|ܹ97yiswǝOyxvq^t'dzqs㼴9Oǫ8z9SGdzxss/:|zd2`;OH;hUT Sҷ{1KaMK)W%2-N?IGAz}Գ_fYϗon endstream endobj 488 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 507 0 obj << /Length 3782 /Filter /FlateDecode >> stream x]s~&/C4\.K:sۙ&y%ZV"(O!@X.H&I2ySMLIm&׷LʼkO#xWdQcl&<͙./Ϧ֦Q9-_sWE"!256`zs5V;|DZF2⚸vp9p ZOS4̔4nVMDߜUYC ּ{ĵ}vlOn֬dC3D{-:l! ̃fZz"}3e3lOjN6)^#pXnˣ}4EWVt(楱IJ7NLBMM]Cx}cCt-κ߫ h^Z/;?3l41q1ew=:YcF ny'fl7G#͚;=L#KGUV 3NCS\{ڻ)4/BKM2A +U3bpdJW"3$*񬭏T )s s5 \Sf)&7-&3dDd# ︬sqaփ)vjŠ8U#'A61whH={&PA]OF*kxk hEL J"yeź7}YD<o@_#a7+nţVK!b#[NFB?0?l;q3UMqf0o^ue|2 6pf ^ׁ2Hh`H#5GI=5(HGQ[DL HB=YTZB(A;UU.yWjJ.U˘USlɋu!=}w+D4b^iX|Em(r?qȂ"bؒؽ%oiEcHHс;e8~(3;曔~{d$!4Z) gAEiB'&`B^ۊ*LU -u` #mr@!$*# S>oa!yi *[Qb9 B B=ӽamA+)7vůՒɓ8PƨE;#B>wns/y sRT)V(n6rNé)cS -%j7qSzjk닐ܯu"尣Y WmX~z@p SIZQ6<&RBhʤ a˳46"n'@oOke?.dyA܆ǵpqujgKAnY Ư f)yUgk]Da|*!݅/h[FjC 9@y qKth`7g*_ EzE7 NAJٶU$z#+T3rqsM7[6^tDݹʰj{ktׯ vl&|["Ő&ĦpNjko*3} #4vLȅmI1Z,ǹץF뎦!yX)~E*Xso) d_z5EɜÊAnrK9N+GKV)j.Q %s9_ . J)8#+b,+F_%v\)aʭWݟ"?{xXx.V C!qR;]vQbTY YIzaP Ԭ+ܵɸޖ @q 98;y䎢zJ>,/,tob3`DӂZc"d26P!bWa(rFD>u ;~w-CCem%4Q̆Pm&z @~lpos ?/1U'=ဈfddcyJnJB*-/>Z!(Rk HV$*Yj$ pci>"S&/DNg`WW *}>kˁmL`PH]trn~5=TN@<;Ǭ#$}";͓{3rO؟RE$eM XxnQ| B18ٟXXf̰K ޽ |pt x}E1ˇ WjuW, EaKw_SL߲5j;kl -|aX+׵Cwk-pxr'|oqZM7XDO endstream endobj 523 0 obj << /Length 2944 /Filter /FlateDecode >> stream xZ[S~_K*ѹUy`X†2L6L-3v?I6l*Qnͻ7oSa]tT^ 5w=9PYVx䃡1rmr%f`cBwd($i7,Y 4 (gMQE9?a L"/򡂝Ě 2}-h;}e-iö)65.ac9mkz-oީ TJG8P4=W.O0֜\so*Pc8%`҈7DʻѯGAr! 0tp ㈟ypW30rRă7É1` <^SXKc~;Da #GI ;byp#kPdHWgzGV`}@@ BMuഭ<0A)[V`=VIM?~Z TՆ"}7U^?!VfSN>Aj%UƘsOb SD'D3rqw/!ᎎ7oS/߳h.݊J?Qjai,,?&.B 1,l^xyᵒaܳzwk3փ9'Wb: !wU :o'jQTIlrB\ _3Z<` [1BQ,/j}6.Q(`n5}t~ZU 'ީ 9cR,!4wb %+JaB>U| UKF ׮?d*x[i`юm6䄵?09ׁ X50PA x)1Qf&zzu0L` G Sk[t^) mxr<4@rr}Sw |3MI@WSO!*QJ{]= 9tC@=#=֣E~=Lge YuO^KnAItAa?I@+1*4#' Cw5 _ʢ|yI #$NwOco=DvWF/8"/ITG//5H(zwyoPƞ$ "{0@&{@靊߸aLbۂ Hflbqud^JYQ;bnG 9#x~·Gf.Ǭ,Zy T6,EѶZ[0~C%&CqUR š;$dDn*O$1l;gCғӿ˸͝"~G$u@r B II b;< In;Uϼm*5h .GZ\wf,g^]Y`4rI9ɷ:^|O(9*4pS#)#U|;Ȧq&8%p|]ΫR]g_U^8ϟ?d*xZmjHUv^Hdh:A4QA;C[r/8vbQ]T坂uIwQlPSp=ex]*"KMTdʹ@G/''C$~ml-զ~lN* J:v:z(71, ?cr?&g>Z1燮Q;GNeqc^ @xzq?>.(q=k&cif+U9IpO~쮛C%56IX7B~u\Kȓ{߈yp{ț~b&&PڼyqCv9GD۸/`G`Ňv#] 1"w(]S)W^;a'&whJ5p(g#mGvl^Cŋ5 endstream endobj 445 0 obj << /Type /ObjStm /N 100 /First 896 /Length 2672 /Filter /FlateDecode >> stream xZ[s6~ׯc`wtqMm䁑iDK}CQGls$(987j%V Z#,iV8:"Z6x\DƢF(Aր`JhA01,&  k:c-Acc ZZ;~ἠ1\X-ȋ ",HFvZ\B:#Qe#:;1`/tQq$:c}&2<{LX2 Af[Fy.$@ Z8B6Y9pC,LB„aTĺJ/&O H,@4f%01'cv&#ʊXɉsɋxP=EK#?N) tA"AӢBz֋0[NlU/*+;|ORspτnv[>kdH Dq;˼eu%o*t={X![`QpmTp&$dǫtQWFV&$VRDw$[bcimqq߁V[mcKbKą- y@7P~|~0|<-8 [eoxM=>- h>~)7VԝE1ʎG<5dVϛq1벃2QN9a8+":o0N|Oi s8YZvwCi30). BKeie~Y)7`bQqThQ"io;!Aq $@8y>6d{68ppOYVqy~^@ ,6vٴ3|ǼnIqr&;٬.cy[dϧs֖"㦮M c8;+Ĭe8Ir^]|:mV_U!s,]bñEuͱWm >%w <ǜ O[G8 _-yy%ӷ} eBm.s=6kI9n XHY[!;N]Yvtr<ٿjjlooKxK8=,~7f lb:!"9uuu.^v?gQNr,‹t $ɷ/K&.: u!k$ 4NrD| .ӏmU7ӡsqs]%\>fUH;0d'ݳvhQW\b Nh*^J.j%?y=GddPa8JSіӂC<_B! I#y[{x 5$ϑ}$xZ!rphb65N}0JCh+謳%=Fy}3]X9zRK2 v9费hz\vuQv}>QѼő#\ +iŒ4';Z;GcA}R2sa I5uߏ }F34FRG`]]obO&j$nQ ]8#y/Zeƿ L,p IH8cYJ\&6%u2dN*wrdHSr]h]DDkbN8 ).aDo5:޿o endstream endobj 535 0 obj << /Length 2970 /Filter /FlateDecode >> stream xZKSJWf%Gfa I [,ؔmKX_j%$C"Yؒ[Ndً?^ERA¸tȤ;9{LKe.ӄ;Q 1sC9?p%/ybC̡qqƻFc5|hʓx)͋X6 9sz žYt~?!K\ K Z.އ7sr"u`tW<OP87*-N4:+vknh-H~f+DZЊGDMf t6lKF3xv6::-RCU2G%>b]O7byi,oGV⑹ ; H_zh̦BJ΋clё,$csTuC҅÷ڵ#Ӎ.q` #"mq*ŃJpaL^#sᬬqVJe/` 50ӺipfwLxγ);&SҠ>C<_Gj,ɽ7L;|CV-tNI狊$(2 ){7 -& n^뤇M4@%9r(gr9 p&I! &>nQr041# }FfDW̖ woA^m 7a Ս8%< zĒGJyIycvP2w"1'۸x`͒UXRЍwɢϻ|I1jB˂HjBh.*}sSaxxW]eOW؇OPBH {̑+ (:8 5y7ؘ`(sMX{ulX7")C*$aY;J\L{YP{N&EF6:sEc,1 5{bWAd0quXGh5~MiD}r33o썱82P'?X,EJxB I ;lq"ӿs:[%"ѻ>VQI%[W:NUO7("ٿ[/e*ѹWT55UbNw:rUYD7"t-Cm8Qa-JgEjd'Z`6dP)l@oŘĊ^ޭ׻R߲@6T>%:29)>@IS"i1eͳ:P1IA|?"C ŞŶh_%suE_P1zI$րGZVVG{w߬~,*3}\ݚP0$ZEARJ=!QJYf?$XkEzZϩVeTJjnW eG|*T!_+Y99qBlt/9ѱvYG9'1s֡; f=9uvs6E/p4"zk>m]k 4f7t!+1M .YE %uDy7wzӰM8 7C(>AQ[Xi,h<+qٝ\bWo=6Jp5R;ʚ6Rܭ̭ڊ`}; P7܁!ddfmawVۙ|YS6cJHNՕH#Ploq,T8a"4i|Ό` |)cWI/mu]6⻗$#ޤ;w bP]t(HW2֭>ߴpwL>v@k@ؤEJˊLdLWEn [q&d6MS%b]1qiVtՎbY髖L&ڨN" yq_lzA&KH1ik)wcO甙4V;@Zo}' _J4En<%O*[JaKNX<4)}\ɣ&t9{,F/E= }ukzOxLvt4)Q>!($Vӵ!L{'[FctX'qHsNzy;㮧^5l3~r^FA$h> stream xŗMo6BOd@m¨quWxW~M;3$wD{Ɂ+RRÙ%"DI3)x%*]\gY^Iyymv1`撵 ,4ybz 2WJ+^¤9㢴IM{9щ/Ya my\>/ ['Vޱy+nrL,Y9藬#FSBcʱ }q)PB*xJqr-b4IH9 _j*ҍ.57 us+QUdpm kut$,4B)BLD>ҦA˷J䫽AJWUImU`J  lU ]{zWKq6Br+a&f%YRWR ;~Mo#ǖkẐ`RWH굉nFnhÅe> ]?M“xLj$Mb&1_^{MHɢ#05ߍ3T$u}bP^ Jv 3xN[4KRUL96dt+6)bPBb9< %9+<ZbqG+Pc.G ,N6[ "hA˖p=!8OB[camPtf;*4لTF[oQ_ǰs$;?cM@mp2i(Nbt`3FĔ Κ>n ث-OXwxy4'n8IZt[#RHuڿH;<B:E÷PB@fQa"Pkӛ/mЦ? OIU\qGwd=bDMt?.(NH .msHHQ0F֑e~ǻHe JS_\&* endstream endobj 570 0 obj << /Length1 1687 /Length2 9844 /Length3 0 /Length 10921 /Filter /FlateDecode >> stream xڍTm6,)ݍҍtw00C Jt#ݡ -() tII7|x{?>}kֺ:v{{s] 4:60k< Tpsqrsb00?b }+ (?کew# #( C@lP(à 7 0goW=^@ _i'+hYAN@+@YwrrㄹI7ߝu<[0w6\zP;HIGdv 8[Pr\z;R%~ },=aYypWwF<<0ف( p?7A!1\*z lWNFpsx_;4UgxL?r;:qjA )7?7<M(! ɻC VN`?C\5@凌AlN nP;ȿv{l4p߳\AP& Rpps/b/ǁKzܛa6_`jGyD_# .0WpI\"AAڿH/~Y=Y Uqy\!?/e||$ |dDHpG^Ͽ5x;<UyS0hç*iJOa tY/8OSX>f-Ku-1IQ6> |wk=ь13J=R+] Ԧߝ~#RB2CfgWͷwaSZT0oߍsEN2[g'EsP<; yVN`ߋ+5^捽A׭ܘ `pWf;Utڷ$zI|:G02w.+>9+M2אrVB\O`+D8`dA e(SM+~~}uGGh`yށ^+ V=#^ʤn@lXN"ō, \$PCmRثdi68K`_X䳍LJ%iGfŦǠaW<U1\[U'd8M^:ڒKx/n5K^Ŭ<AB NSkNeӧ~YE+O$J얛^E/#u:r^>d3l3`OC 1.8(\1ݻTOg/קNqtӯ,WaPx&Q@?߃\W6tydk叠h<6JVmM(d@ҎqlӁZ8˳hg "XgbzCU|lnD]ӂBI<}AK=f{ذܰ)hg'0sxm|,rc62{M*%Ő\iW;ZVB(PI2̯ȴ: US2/4jz hP-}3ȡlxxϤG^fF nlN/F6˕w;8XH HEU~;*buwL o);Q6 e z0WZԥ^|o܅p6_s#d VIo#w#">;})q-4QpV.A=Ao+q"oH3$#PrU4Ըr~sM.#D"3(CMdO[dP 1܅#Rid:51X'FrK~oY4BəauwѮ5S؅|ix1lm*] O/Zlg6$S턂M:'lPnNA"0č$?z{,/t/GU_JQHrtyOh m]LOܪLH `m?$ߩ=ԱB?s;'3W B4קd=#||' [.]Uݷp2<3Ar֥d>8NOIؑC2`:J/U8ѦN9J~L.;dA&'8iH[ܡZϜv+6|Xm?T[y*#5 pL79]2-rü8]xp[Owx2_e#v ۵v)jB@h(MH. }yh n޸h'8;+A0CyyH:=:H'f'el e7n]5D33a^0SN@tՏGr4Κ[(PbMHɷ"l oËWtˎzuGXzW9͐BJ12p.b(. bsPy80W F 8;.{O?{5qʥ *VXWQkDC:LLS-kx u N{/F^y)QbC$:j5S-Qh)٪Ɯ|iQ[BNKij9*-Eքshnģ@ Ih0$rL-j3|zυdN#t&R zFD?ٖr8pyQFicjm@[w ~6bc G"oXO}}|SoJJt~o {?=(>l4tBV1y\sfQЦVuͮjhwgQ-Mخ^>k3<ϿH]J,Mq?~U+t ʼХ^ CmSťuI F7d£Ƌ_{.zy(#Py:#cfuRe3ݎNϒR, ?CQwMIsBf2~qt=O6T8z\"-ps$6ݸ궲U8V˙n(&(_U90iv]x_𼴇r]y:{fp.R*=" _'[%o  9OXF1gQxOrd&I15^P\E`!0$f䁎~^k)D]ef{A\x/#\\遝g>T䱂(@fG)DdVnQ COϥT8 jDWRuۘ{_/R>/(aD4 wбwRJcfc ~R9z2*%׳>TLbD>aCJP}2G3~ui!)ϰgD_EU!xBluZQ0)r$ۢI :&O0;!|efK\oyZ ߃,D-ms'&YPʞI4øb]24m#E N QYv(wLQXIWcKYHZ)F xmK\SR,w)(an4OiK$eosO`O rHŪs̽nxra)>_؜ Re $[3̪h_G5M Ǘ㔛W<~7lyz g0U򥳜Ir<0ф -aη\.Yu[J/m.~N)q5s8nfWpN77!-7 {F${~ ٗO0ݚ$TV@٢"MZ"$YW艑"5@T6!޿0YصB.N7+荟wFM^ؔc[uӨQԦVi2$Em'ZV,`鴐m^Ma䂕QtfwŦbK^upl~kb9LC<#~ɘI EfFTI+* _|ZF;&F M;:jMr?SFA&gs#H^:G*F n&Ue^rp?ǞU>;oA=a֏TV_RW>Zt2<’~bW) p")R#LRh9̓S.\rRITM33 8pzٷ61?f v՘Jx5&wD,\9Q_h4\ ]_UiV"{Dg_S%#ԑ9Ir1β?eHˌg0$_h=G>y+acb֑c}Boxfh.e?Yޡ{^WŒ*U_@(PN71dRݓ`K~g-q:<{$ɬInOnw7n*QDozE0j-LUg c`Ƈ}f'+c[t kIdzVwzÚ/æ]⻁.3-9VnFT hAnw?t$=5=YrSzN F|~ ^ 5x >glKK]d eaOsV\ϞrMs =)ۨZ~MRNvSp_YFPlvbZڔD_LGKFv% av[U*5WWNYս'[:=bE㵂>lٝ5l3!34N|TE?mJ o7z$[R_9=$l[cWvCImoTsEay6QFx l>h$j3 ]jȟ #C('K>g[p2Jn􉭠s p'B\xHzௐk;uV`G4Ch^;J6ܘ@I/ܛ" <~0 nѠRG NQAkôL(%2Ŧ>:m( a_ 3֯*-[V8(b%]%W/;Y&N)$1kk'dg:j]Ueڎ'|ԱV%4v&16 .4߿+cĵzOdAI.yU ==fI|砵3Km%:- .۟\DL&T &k>؀<u_;y'E9l.3iz!?6*k ̦VԴK'opFy :9$.kɸM Gzeȉ pʎ7W9}BƟd^/^Z֑GF D[c?㉢gw\7={<82;#%~@L"8!(^Im&bkxd"Cr{h;iʝ5D* Ղj^qR/c[TÅs4Daƭr6nzC>xG ^F/G='讬J  kcо2_1:9CDZ:+S7FESd 1WI{@Zr,>v!ف>"kAD<AQlٵ2g2R RB/Nf,g$rv |OJ|nXznU+%)md"'-I*ᜩ1pS/rZ>Vۗy1nh5GX݄b{t? +<[͆-GHƶc};6NE83i g~izBj=S*va9UONۯ]}W^e׹A_t=Sz4gz {C>T'V-1l\qŖJ>m+Ef:7jǹ L 3Э]cͫ15B`*:cT];:'SD6(t.yâߍ 'N/L]d.#ANp?olH\df- gDSieEnMo M}2 4{1^. ޫ82P>[55iBOzNˈͧȢ3oQ2 Nm/]I)}uk|zjl_X%hF;:WɄ[ےek45]t\Yy/(G!0>}ͮ6@5p5cX(z3[{gl䰷\sPmFGbTzԯ7%m-n;l )?6/*``O_pzƘ_v[-˪,R|>Y(G>km< Ff˵ )|dYBcgt AͶ̤(T Jl\ʯƜܶ9n oy$aE+삙8 \j/vJc'NKpSԲtz)˘p%{nkNJ ~ؒ3ekC,~5xTljZ|F'~=_t y+6f޴^9be@ ͏/j}5l~Ӳ!=oSQL#=7/SvC Ԗ)|(SحABAj[Jb ɿ4Dl8fCCF)CƔ҃ixP|s6k#.=.@%:&A"W1Tf)*L~=lueϒCvW ~S(_o i/턣sC /]>t3@D>,I.NfR=o%lW%@ؒIa\gB*]M,.rQ>ehKA8ބ@KݨZs7?+)^ Y6v/?Z*3pɱ?v (dZ?elJTN㸕IWgδ)k1shj"I @dKo;~ [v0| 050D+Vs|A.Qpv ҘY~A:HmU|("ߩŋ7M_5=9^ 5i]oo C;aT; ]o4> S  jLu*ξu '[lA;bblw&Kw;|=I>G5`i]8$A䰥h!ИUQzV$oGE\g3~wFUlsX74<.~d5Dcjgr9qZGq)G程|ܟc6 keyA,`~1'{X~o1#FQ|֫ ? ,b #g]6P rWҵ3`nw<}eYIBC1Ĭ8y{SdnNw~*n@}#yH%.FO~dAKEnS-!v/Zd ?N0ױ!dKVHI5- 3խh OM4Cd HzhvUs;㬃.ޟ D8_fs׸vg@{K5X}_ko;Lslvz5°UybzX )AfKhlƲVi |`߶(~bx6nK\r4\1vcEotXzhpSh6)|H" oViz]M3{{@c$cU&w"{nn)]:gT$),>_? *Dٽ,bS?-щM|XX0Cu~Zw@Tt"z9|`zB}=jָ\yG؆ۭH!`L/?o ]zf`z[_=-*GDW J_V oXIۂv9{3reDJ\IS"ZR>d X ^h?Mhg<NGt2zAn~nnfW\xFӊ;{OiICgsSvn4E13)߯ay/Xش<6Zob=IYQ4{6?R(+Un!O[n ;Z~ q324EX776^B6t&bxR:Tn;OFѲqOI.UQr vgply,yup,C[]OfO㰰Ds3#y;MhM. Ř®|K!E);FbF,TCM_.x!6^V[KU h[~Jvk7t1pG̗=.8WrI*Z]OԈ4m4Hp|XiXٯ=l۴mVn&-؊a $ v%,V#̐F-N/{>^{ endstream endobj 572 0 obj << /Length1 1911 /Length2 14157 /Length3 0 /Length 15341 /Filter /FlateDecode >> stream xڍp 6:m۶7;tlwlVǶݱ7}RҮ6&;77##?NQ#7KS=@ G&bdin?J*![@hbob t.. FNTwK 2412@hpdU K*f.FN@hjg t|tHv@ pLL-w,L621u03Y ..#;?l?܌,m?nR}L|&N.Ζ6Gc3ڹ8O hq _c:0Y:D0c399@GĂ?L?fvw}4~v6r\\v/cbZvpT0da~}(?ASDTIRxӱLLhd7JٙqN(^*֒P.@uM>~1)TGW_F66) Zx\W-kumLOcm{@SEK]E*;[cL?M~,37c˘?n?cM@og`fǍ08 N'3A `P/0>A\"֏h]3?| Kl]b/_c@Tm??ֈv/sFHUCI>:tGǻOGMt\,:\1ۿe azљ:9}<> =&p & N ө 9ZvI8r")?Kx .+TE} ,#5Μ&r#F@E˞M(K{R୽4^܍CM~6>M-|$]\mo1#Jpܼ:"Sp _zl:iwIɤ<;X,d 鍄@%NԔsٹZOwln |;~OP eFf $+ f~)8G{ Υ/| )tRx1V?Vc1Pq4b;qL+Ō%,sX:eq_ LcJTz@i-W9/rdWT{YMj: F k 0 6q]dy 5Beaz-&r>u[UNS\98*MU ϻ  e%/cyĤj_xNKgadi afw\޵d;0JѼqRB !'O\F'M\$mOn_G\}ʺ,ykd8q/aQJ$V8:˲~db%PO۰w# k=3|&zgn8Ãi[35F 9X*V@ǽ wg\аg$sT(^Lqf*PՔkNh+?KȊNQ,iy-S۫2Q"41,ǯFʓiXV$cDm$mvcNۤ>U~B'Myi~fHtGo,[Q|d>1_w1΂//26 !a?+#5;tJq+gVEi-樂خGװVO)28igǎј+Va@WW&PM+`7\3JZzm٪Rl;mG/BDK5]d4iآ `֔h#q߭SP\ ðwkt%N K1a^MȺ(1V}SwsC*''QSaɕRDM#GmAMr|u"aK+jf#BYEpr[m"Q4[m썙MBhgGiH&c x٦2B܈T5,-@`ţ"ZG&4( X7t'_GX"AʮJC3 aM瑼=7Κ2w ݣ۩qk^atM06B9ӫ;u_ѿ Q,B Mdg/&S٨bv̤qnB]5)͜a98=-;HNV-6ChvF*T'֝ƙl*O::Fq! mi>єBUɊ%Nr}HY&ҥV軬+D9<%mٽ}**[2 LEO:#`TF0dX}(2Dӿ"&J.e`~<'dKe?Clܚ|WAX:Vw!@7\Rq'x/M05 W}%T2.7VuPc4։LΫ^hyWX_˔)7eF3x|AEe~ y<H#pE~& 9Ge4Ʉm8>e1_R_ % ;~ od8@ne?)FEY8GokRE^)HkGZlJmINH8mS?sELm{`Lp#]cy{kb|(',:^2@" s?a-Mbf==A' e1!W-娕%|fK'OƼOxr|O3X#Sv _PKݙY7PCMEtYrY%Azɐ y*]AAa; `<˥a2xL`7.I޵"ލ?@r`3Gzy'>Խfk?z̜bK{ōËZpq,Dc{9Rw$!9q+z'Rdswܥ7%{F8`]ȳtJ,V+@e-!4- 4AêJy)#I*޷杺ͽ/_SOק!h,80FbB \/ܟ~?8M"T[Rw1tkGR- $H,Q9{ˠ(_?B(sx6D; ^)},gN#({hR9noy`X,vU61PEG<8afa{cxͦ"3:0EW;eDFfLzN(y4b3$[Y$?HWxK$]Dm@Uu2ULFt]%^f4܇1}^ g)9tK=bZ>svݑYW*+[Ϯ|pA#~xPy#i:Bm&z/j1ͧџبdΟG>ay`jj$˩/W|"9iuTbFN;pqūZY!g?y޷-a`{Op_v&oCD9t2':ߞGxcFEquGLZB˶,) ( xC(e<<֊C$n&j:aqndUX]rKgOHCWh7^ )D)Zn ,2q,WhPsg085 R>~("zo7{3Xv0"ŻҜo}o#޷]:&(LA0`@5G"Z@򶽻*VBaG%23÷~s7Ϸ5㰬efPrfqszxkeǾ@A5k<\Kre,S1U>`= gf_ bUK ,,^ޤ7j]#4>oم j] &D~F !U& ]p) Od%<k?坟(C㝬kf3Εn@)bvXKRdnE˞;Kŋ@v<BssԎL+_`U8Z@rCvrQE䷎Rf ퟓFN_2:q/2E|*p>J.UmlrҬXtabonuS0Xq1W WGp@Y q6SiHoI+^Kjr)"" 6e5OvlL`OS|l9>쫟[@XKd{'&UyнTVEKӽ,)\09e.,< c$S3;iazGiE،9 kY(1KŠV}u+C|&moQ LMBi%~FY -8yeg.罹ץS(ANW~YfMff\9^s7В_CFZ(\BA_ +<#D+^M}7Ӎg/ tde=j*04lh.,4y2 v*5ĔCPuWш x=)~Zޯ~$ZdPrs9Yo-+-{A9 OM G,bNS"K;ƶNen|)I֥̿$O7tD%2bY=%|0Kl6#MpyVv (icO$~ QK VGB[YM?x8FP:l#^wqODq" 86NIћprw$5Z>_ia-=qse0 y\TQW&U9#ܮbnBGXqU$/6OжqV=VWUA j1ZࢇU`>]|j*%yΚ&c~w3~lƨϥMi(]iƎ}2.ޜ6ËY`)iB0WZHii'bJڍBfz崐Ծ RpeKFrLw?q)(r1op_i x0e̶#~2FZRep jhcOT0n|dӀ+ K=d2Db ]5;=4mwP+ ؙ&"!3闢1F`T4-<бFZY]0%g! ;5y=7^l6)TpY`"%_N%/EO޺N0{r,uM@$ɓeᶡNrYz< 3j1AgacÙlpN0<1Ѕ!;?.I4mʆ~&wv˗S`%e(SSJ~Tp'w0 Z6rk3y#EpP&OdZ~6Po# leEӽ3qQ7dFcp7@vtMU8y.t%+,5!B8ǬJ$M 'ʯqΒ#u7xMRƚHj~O5i;v?9hzX:82$=3&RBd؈@"}]q=RSWo2WᾊRPLs|ݕ܂ =7PyS@0}Cn6Fm'd} a|tQdx(I*I玏h+ %Uv8܂k{t2`:<6Ȇ?M` /K󙅔nj_ЇGV"]u% "XGAڧ>):Rv]BrM߽7 C' l!jCe@WZo?# ;Y"Buc޺yCc;kǏ$bH"l*#xL~'!: ٲ;fi2Ck~}&آAe5n;=j`vaCÛ'8[4fD$6#POs'L&"u~M&scۄ-G+FJ'yƬP$2ß `J;EI0g @UcuG6V3K煎J] OʯM|\Rx'6%JE^(ʩ\olx*{Me,lhrTcFf+uHalk>gON̯R<9uGm< \zпp厹"59Lpq/^W98 θ@>搄2~hA&lsED|ҷ}H)IB:]l*ܿ!|/D;^{چȚ6 lBLXW+G >*+Uk!lL& jp'JD:h,[~:6{t ^ߴ2T^?JۛWWPqg<YlAfQxY#jAakԋtiLpcj$+ WCltrJc fce=р +B<_M1N0Tj LIԇGy7ܺPF32%,Jtځ,>=^ӡZ%C;^"}ha*;ͥPvBqDD9EǓ8}V3\Ejnh~3m5ѬukL5Ea՛^2xmD!k03,1tK°`m rɰ%ye9ƅlܨ#Csm~e+hFR>tC^A5g)>&Dž$*phP]iц'\LWkjD^NQ5S +Ue4uՖ%ukǵ8Y^YCQ3u$f2Zj pv~8)MW[HaQG-fx$ :&+]u~8-P`ljڠ~/9g 2%4޼DZv\SJh{YpyK#?Ϝs!TxNs&&TK-{,7vd뎼GM\lآ1kp}?lsqcpGn\ $2L۾NツH}TEC^ O7C-f9!MEoɵ !5|DŽ,.-4z,hM| >jZ6=rٞĀ0;VR׋vXFݡQh 73|auvms^ k@QkasВHŜ<<95z(aJϪ؊`Ymi ZTK7z|DHڂY*5vIAUΫ ׈>C_?+ꌫ]4B>5t_#vyUb *^qs\^}͆!M8,AV93mͽ(s/h%q}2p9U+"Miߨ1ik^ U9 Z򮽅G'+ r=>BA$Hzyic:3HVq02ΦHECW 6L'aS ݡ1\) 0Dɍ*η@!˙Aj-InHE( QB"|24B#s#jPO#N=P48@!,U/a$ lL[FX(~8b?:LehK(poL':asL23Z}$[Ӷ{"+dM3nhLv t7#%Ea|_@C!&k rt/Ls4%! /4FV^`5/uݴHg2yˌi۷Kb. JC(HZF [w.c_% l6'&Y!ZBHΘEA/6-,#$ V(_IEKXʋ T^Z\K(j6l;ɸ*Nǖ Kjh ]Vpal`STEb'o@Vk5܁_\8onA3܆sk>ne]&T0e^2%R/]݌O4:T|Dn||yH w,.1W 4f{-1l3{)X|;036NK$\|l\@{Gu-]^< >!n[LaJOO d(ā. Nq1M=$@肗K̭saNC5j#`iwJkVyEGKFDzqC]9لҹEY7B3QU{I5D~!<ۿW\.e&r#'1<Kb]A:l Kfo$f!L2Su7sgL =:ֽ*,E+O+ t9gM;H-Ԏ"2t( ?&g !lwI$x4T/CO}1&%' kk=)^Okj ;h*L7{zV BdR7I8^UUЋ.=1I{6rLof2Axe +s(n[wB~ Ե[O|8[cx]"on$qf, dOV*(5]V=Ej6_`5o g{]e;허FQ^vbBbŕlRd6"Uk6GE -n=5\-vi^t=Ah?::03Y BU, BKIw8A;_;$|?fW8P\o '+*u5Fhxm( O>O :IZ7K@$ڕWx\S2dhJĀ.=.gdpsӦ"hqk)QNKcBDzT̃qW3)vs-tbuqe JȨ@W[]8]G6"e{<ypղ ߮~J&1)d==B-ruR;Ԁ5\[(W]rN68iOHOлZ$ ;M\b]"^oڿT xcEG>bf?-İ endstream endobj 574 0 obj << /Length1 2090 /Length2 14272 /Length3 0 /Length 15536 /Filter /FlateDecode >> stream xڍP[ n 6hpwwww`pww NBp!WrսwCAJ/ljo sgf`ʋh1XX((,]l@#Ph-xu]mb@w@ `aab01qhY2v g Q{O'Ks s@eB `; l r4. M6U{Kpqqadtwwg:3; P-],* gdoi 5 K9T\܁N djg rP(:E%;hbbo3Yڀr ..t_D{< hi4~']: ! +>g'KggK42v ;gtݓߗkmgndfigj SWFu;KGWؿ9&?6s r~>>av6_1%)"bggг3YLͣwLb*O)3@o. ;q;ߔuoE66Em-m{7:]{if{iffY#_t{W$xg|?XmR(c{ߵT?w{h漿K0ҝQ;'?}0X8ѻw=.xdy#;{>wu^W'O%yLMxCjBwg(v4S齗]Q`+3~; 'D[Z&~>j oIPn}y62ӊ8?H^MhG#S"ѕ E)޽Wңhn%,s4}z^`,Eq.) =!  zZou؇925.༿𝘐ҽV>P#"3[ddiWY LAZVByQ:2 \6}BX_pTq Y4-MŦYtA>EU~;1F-,'E}n~]xD3^7U<RϔtigyԊ sf)fB~WU 6B,!_1i@.^BVVf0Y@UEP=m{syvކhƴޙ.AN&(г‚6haJw%fEz] bo6\]-c炦Ɨr[f }qfƽi~nI{(@ o1|2h)wM.HΧɱ.k6|d{.8uvYB$B%I8rq.\ N[s>r}w/N: }Hxu|PmX]Ý<&=39t'yĶ@7?ձ.TpH^O˻āfό&b)/xE\Ï*TzE!-yPKӝi $+Wܵ*~NK⌕x}#/P(n0Gz[]l?0ɗiW&uWj.&9W"55+2c})#y$Sr}ރ>X샥o)ѐ1ecC86>i L۩jU@9-M%6噴4Oz}g6ewݮ>^1j o_Abm(tX '\zq7#!v- G+{gONʯ t\]57Nd6=al8L2}[mx&3SubuNDצ~< -HLz*3G o?-Ļ =S`?ᘲi@cĝ#iTƖv4-kb$U?/4͎h 8 q&6ɵ< ,d <ܔE2a |a (Ӟrjx:cl$+69Hx!=i7vK/eaw&3uШ٪i ?ؓtTt,rDSډ/ؔ1[wK=Z{%`ݓ÷ wl-J@fښt 2E\ )Kv~ OӓҲՒL7O' hBGT@˴@4&Ͽ1;/OP8)[s؊s,)X`!p=cs=sS lY\Va@w5Fm 7)Hl[o-jǿV>&Zn&Yx!L$<0A{ߖY0}¬z=s1ˌaǑ[l-='8m;gܶ&̍KG@nnIP1 琫b8 h E4sa݉Qb@I)gl "^v*" 2O5O0ܥDYD<}6MZsON[DBO5䆀QjR/ϞbzuTϕc2̮% ɶܰtC'ꨱeU S?j=qQsM_W \5=':;{q ؚeB5LZ?u?ZЃPʽݒ9@rtƠ+i2Ff2}xBM#(kȂZRS;gG_"6{FY` |Z:AZ FZJiSgzVUl"}&]69t7ZP3B>JJTLbP1l=!p$gySE+H'l c#lǢ$9 w3XK:.1"A؅NJ!qO}&XJVX%} >-u @MʡOo X XpWTsIQo{ lW[hfR{:տB$x"9ƕ@n+eR̉JY@S)˸Z'jVrf%;Yp! ":V/cj̀5yZ[Ɛ3:FVJާ$ZiAj9C;}\<;Μ{&'91åM'W21 D'Ȋ޵tA$E688ZeĘ[v tWgd5G~A=&w,_=:gC{HÖ4 HAEI|1:?)8Sٶ*{V-lQuη7hիMu,8-û#r=Mوa% US*BfGʢ]p ~[N$l/S7fJ'3RPN9 iz[, 1FLZժNȄ{!N9E5lGn[yy; 끩L[SGx)ȭzXd~JXO@D=67))#G%ǽISֽiF  Ažo0T@[)aޜwa^1w ` }DzUpmFXԎa9%Wrv]YV'Rkcmٖo+y;q3i$["IJu:mJi 8Eoh-3Zwy) L!g4ۢ0Q ۰k# ޺L$^Q@u5TXXgHnWf:ilLV)CpvP8) 3P\eP/4g'bK^5#tuħBwHcQD[^/6]ދ%tXmu#p1ENP8}.ktYFwv k "߇&M&eEl+4>N债 fn3&f.M}G/g>|ugdc-wMꡪ`O:L9Rm{%Yy Tș/}y4k7T}#]xb07(!2x$H.ٞX#7n9JU9'-G,?0@v4`YPz|tJlVXGck&N]urǤT.v7&96bVW){`UFIF O0n7y+J^QQ6{_ 5(hF% UXe4|ZpR:}oң=me 4i*|ݿ/7Hx S(˟–࿁+pJہ aTuo3oN%Mv~|+#)@ eI$]A?[^"uMN;R_"`'yVWFP([xi9H$oUv0sOMFğÝm.gؘ8nQswwY}$urjM?pY<-0`Kf+j>W9oG\Wox(ng7ۢMf;R* ]G.\Sc>E8#'E@R`5} ncw@2rb$F֠沛xg!l[ܡ8ӯlWĜ?kGv0ѷˡ|);+ 847T).w`|81sNB 3E|QJSN.X8$DqUKLC$eǘV%?լ%["?D,W-;s9j#ECk!=2^!4TǟJ9 zh-_=".oP~O#ha%BYX ?4m,PؔJVe^\ZYj\DJL`(YFj:;<#WAzRSΐ"㙡glo$f SK>6iK{u2 zj+`|ٺX@)Y#q%YJ(iAB䢷a Yh%l,{+zxE0"{+':E*y*$ WJK# G+7`o?])cGۦȖ)Lߒ!iNJc\\|d3Pwٸh%{W=$$ 5H~T+?9T[Ad iQ;+ S2xrr>[&8)ru'!Mv0&y0y0^bpvw/C:e|>m$'<*$eo-O7q жd,e&s\:m Iڇsk,zv"Ɉ=aXa+|͠duaqGhF^+PuO8<_s1l1J< \͇IuKp/<,1y9"sUf>Ij)D"nI`7tx4NiYQ)%p<<,hܗ]xCޏl,L fn~uC74a։z1^_ȀBYCb5\DP4P,q2 T" ``c7/)ʽM&L~J1X)yU[M f$#Z~\-|UД^d\$ΡݝSY8a]Z(GEX⌣ 7 nL> Y2#)ϿBG|o, |/ZO(SQC׊0j)ϕi=bLe G?~UuӰs~nmBTsz~8)w! #8z.8nt+qk OK8LsczլLJuOQ[50~LgwW8 + A,QM@U}5j5 N8NI0gRFl.SbQq4cFjs&%֠Ha|u/&@G"G+pF,kȀLU51ٚ[ݔ _ ^z2?lḢ( ;Rȿ~Y 88=ih0 btprqťՆ@cXax,6"a _`h&]m]JBڵ.;pşUiZWwE R`(&:OD]8b"F-9L*fAQKVb'ūh=8/-ʄhJ ,e؆ YONiB?đ݈9\^Ƨ^’<>M5xlyWo Pj.7O$ZУ͖MZ?J}%¥$} ǎWmNY:&А\Αt,xkEY5p-F &YA+ VC4J]{UՏ1Nqb:ln/vjosETb?ʡxs"^66v80:܋1/ʃob:˕ݲqAq4<9f#QP;!M~COO*gܚ'sٗHm+^O"=FՎBqE޾]U:==ƥu=_jC ;8}I(2uGcsGZ0H͓;ԶRm{uBˏX:x(6cNU&ӇN,0'Kl#0iYZKLv~Eb O?⌖~D}ژ" {x-rUu胚]n(1NGsOItouu+ VW[+V`ݩe2E5v?yͪÏmu0($-r6OgZ6LUO ;<}?g|8;ۯ"C7 _!q_(ޫlGv??'cG 9.diyw"dysxZqU! g#v-JΈY iW-!SJUD]\U9γ;$NNq Nx}p* pR 9>[e&o'X)T[3a1Ƅn-,:1ָ}벋86'but#C\1/y piwpےB?c7E=w(vCF%{.Py'~ז%A">bmЪ؟gq>%o$vo-ǬP({% E4zyCP•:/8İ?]B Os7;M_2ڵk '|Q:|g:&fi#Tb!t}7PAm&]mnM,A6Q;hRFaJSEYߋ5q{,o[h <7:l!+hv"gⵥ$8 ^CUS"lu_~Qn.NBZY5C3qW@<~M!9Sd%(7`.Y RR%)RC11b-A1-&[nn8P N0O6*o޺b"#)uar`(}}ֶ0N[̱$riY)D9q Gɴ孱¬E֭# ^qt-np̉PC?2^ I,B :kdo6P+h<'!+lv(mPN 3sIXWoD,Y |lZFQ"A#~_(.1:i8IBA ]67>=| 36u^Mo9D斵ō9c-@-cI(s9q s}+?xn$%gίơ6Bt1;Ds==l18֦$S q˃/y1wW"?EF>h.jrm>D} t *8mN0ɘm3zKl%(fAثFn˄Xin\wl×Fx]clVtۙjwlؼp{j XDh_e`(QfH3ap٭&@g0ύ.k>n3pRMNi0*^ԿY c}eDXoYx["?:y)ml }a2&|H-r3 1(eXc.r*$k.bzwX~Yם8f$ҩu=w$"yg8'tmeon9Zo5Vx!pMӝY}Ip40| "x쵀!~1[c2~6 Z롢j%ut:®J*qPMI+MDA.t)ޮJ¡pFIrگm ^ ܆ҤR j^Om[{%_8> ڑga94l~P_%עRj&B|6؜!-OQ6%hﺎBf5+ג7g>Q*imɀ.EMù@Q' H.!MM&JAUscRkد +ɣ9JJ$uzșQm$ ~'E|Gfv lTg8yN-wt L Twz"n*5_ lwsviX ϹV&gѦIxHL(r|#>>!N*䭂Sq4vQ|w14Q+G@v˗`Z#ϤVFɣ⛵x]7 :j ~.QotPJw3ʣ~7?n+= щZ}⫥ gbߓweBWx~EqiA a=-gSU# '?+K^ek܍CDb~9R{ſ (OMG_ZV!>zc+ɦ1 Ȯzgf>:: *REp9^CJb"*aHbi" k-6DqYu B^:8YCq󊜠1֕P#.tqb-3W|\(@n.fJqԚoAm-Vi եkO\m:O~X:UQƥQ]iG ުxZ ْ*{ /l}( iWG)enG^c^AKdCgn !8oVaW p9 cU9pBf"B+;~44)|9;x/HEBEX74w QI\:kjP]h 샚Xݎ\elX%SZ5z!=`ÓBec_ʍk7`5ȸ\ͣUayoie[;Ƀ\ݧ\@ޣ 5Ĥ諪A\_<@Ƕ*Y䦨 'q-KF(^gp{7>_/ %V9}ĽS:1RK"MAeSR7 1U"G3+E2xm rʁk.zhhteK ւv3n?[!iii`ysKAԭEv;:m۶?𴽐PZL!w. %P3mUQqqlMbnf6(BaLATYS "C #2p!DXJ^+ W =Ϝ&Jǧ[#))[|q7yYoì?%8YtS>~E/҉ >+ !mDIe8T-'ٻM1hXE!jk>Vc\ٿs o/Y+{}\S҂r_hC2wxN}5rҞ+A+o^Zȳȥ,?@Z\~ ZTqbY;{,(yG]˟*^4,M3UaMszi/{s0&kdI&qqWFo?嘡ԞYXʕǜeg؁"8ʰʾm>uUtP3b)†=Y(f>PK8%!z5/%QTFآ_|%i~GJ}_cBqP-LD⥧q[j{Я^o)u[C`ZJw+mC;5==+j]kѺ3?IrA(i7>l#A33mope&]U?"W endstream endobj 576 0 obj << /Length1 2175 /Length2 9788 /Length3 0 /Length 10962 /Filter /FlateDecode >> stream xڍTq+ V<܋C{qŋ(XP@q(9s[뽕fffVhԵ%`Y;;)Rq89\ Pw W7(I7)W& vtT9= nO/ #U ZTE A u?_L ? G+PBw;`P?R0غ; qpxyyn@3 n ЄA\=!V_%TJb0mn-x48@-!Nn!NVW-e3Og?7_ѿA[ZN>P'5PU{NVnx'xtC: +?VW}nPgw7W<K4bx>]?+k2<9t.|Ml ^NA.~>>3e~ᅟ3`X]= /~\a@+;bu;b]#8ì`N>qҒ2J_() sع8 ^??? -XSAG_Mׄ0Kغߝni?Bom+Hp#/p08U@ qpqABd+u]׬9@ 07诧 /8`OǶA[8Y¬~ / x/8V?t?{bScpX-!kwI/ X@m&&q8yD'f@7+o(w|eMu>o]Ho;[?6jtaÔHWȚޝ.z9s+@b¡5Dˌ Fԛ."esb<)TSV"ORfe.wef&Nl7vFDotU,J %^1]@Js7˕0]"aůjNun3RIaˢ̞}P(wEl$_r{ۍ pg㢞&+tGRu*Ǔ}g*Ombiv.u_,./(=_t$<u0:Ț 4FȤVC%JO]`E eplh h b1 T4(?e :iTP '>e"Y&g`~1>!YEU l۷;}[[($ʼ0joJ-}@bLk]Z6NK/G^d~W<~\bZ)dbn_ۺܨs]'R\5]R%CȥUT[w$מhK,ZU= Vjq3#Vm OK¯zM}R~-bM|9(vYf3f{ifv-h3{j/KwU](G- KBI+6vI+3vGָU&]ܚ-ˁjwI ZƌqKmbYnup)^l5?E+Uǭ!e%&M͓h T$IQu4Hx#h]?N+Z>1R:86eά1P-ihB}?#E̿tSˇO>C&\t:P{j-5$6ܛH/+Ko1W!#.>GS3N$]u%.:&=RkQNvye}1Ʋ1yRb j ͖ŕ,g{Lҡ-RF5Kdq_E#zT<`aUyE^7tDC#WI?0$|D#I+Q32Z;1ru 䭙KodX?3KU0|XrBZ.R _S3<.T>oWuǴһ]63y Ub4iMؒAnGS֚ɽOѝ=B$x*=K؅!Le(q;go-_nzN"ll$ R: 3bхĽ:ȌW&^ߖγ$1ڙ*D!Q~-6 Ī?bڂ+#x54yO00d}T9sBXwٝ"qW.IJhYM D5z^qAI)w@ bCsXbHҺFj@hoQç*(cLI*q>%v٧g y֮"!`kͤ1(y]'t Z\'߷q! 5&J#48 k!{g2oFק- ^%jzWOiU ;TF~ ?o3(̇nwtOekhf'KA M&M]笤q3Mi$2qՂI3 T/8hS&,c[k ='V11R8xbg[,wE>+T`|(+*w[Ci8Lc6cvL\+n6#CԔ|06[ѵLS?%QkX'4g<Bh=+t2> mih~ꌸN5"%[wYeZ-6}~^R\'s/hz$뽄ǰ ȱځ_u5' =w*`&KVc6,gCj/K3?ߍ!Б_Mm߫~%jbϒ0qX:p~JESvN]6o$.8HV*-2sL ;ӗ8{p ijY~y.~#zNZG D*!UKv/{m׆]DTἶ!8d2aDV^ozcM-"as.LR{&fRTu*x3`PA]}CPE;Ax8=9EF<[]xֿ*jgM%iTbjJH}?QޚMDebyOӀk_Ƈ*Z]8YN R!pV8qM4I|u)GmWoT59bz0G7;]=%V= D~˽:4M:!Ć`lD>h^EڙƲoO198 mO?IH}X+, ^{T" +}uR:BmS1v^yB<bH=#i'#:^*]z%Y-ҘK 6oM٢!0raۤr.Zc |؜pQh&eBiӜ/.6ן:qf^aUkIVAUmN7rFH9i#ITW5 C\֚%Uqb \r| pxgiNsFmAh-.\-ˍe N^tt6Ļצ LeO@ vg1(fvw[Rkb3g ϥ .PZ?biI! gY5 eQ8c-II磝dWf2#*Jf3ZFYUS)[WPeA2dC &8f=-9;1W*IRg7ӥ_b3/e['d3S5JdOJ˼uˣjHp59þT }ʲ[}\cѕcl"S\$Ad:$6$ Z& BE>=ͩcPB3 H_P*~D )tv{)9;_tZA B A"N&R!SyRݓ Uy1` s~Bhh9ܛEENupK`'nA2M&!ȫO]H"_/;ljhW W9:K;KhJQO6]U{iltK d|J1/ F[d"t|R0FzjoHOiqc# Fq ֶw/8Uwno0޽d!J{嚭n#4szL~XOꔺEDX^<4D۳7aB_$?Ev(臭d 7NΥb. K/~;E@%Ϣ0CCC }[5l94Y1;YSq۴l2emlz$<.='dS:2e[^*TulBR9'(|(B254p{'-“͞n2aW$m(,ߙhzkS@UئvD.mD0aDV;OT6vjP]̩_| ,Ց#yƖ܆1]?eB^"@>Z94揀9<<+zi&f iBZM0Ul-Oj75[vhy1_8:U$^^x?Izltn9QH=ѷR8U<Ԩ)l_N,8z"v|S3PU3RI6f䛴 uXQee,Wih;FQ[V0Pa1ԶVJ]l}!WXI{˱{ *xKq%_tE^*Kʪs-hCΗ+p{igHɺFk/pr.yH'[eN K(]obruE's +f=HG2B9<=?r6tX'5h/6D yL( \lQdq6\p?>AZ] }CH6:e3j2j}I^!@MĘbZ6=`9(L#-QpZj庠{X)Ol$#K+HVu E@ylmU?%I?ȑ ~QRW$ny vpWr8/T>q,t3q96 8?cYetp+Ҙ}rf?77%> OZdlzR놄eӈoIԇ0itI˦oo;k!&繒U虗|b5w͢Q]k !S^s%|" N QyU6"DؚI0,jL=78sE[Fa˹ٞɽDT'v=%3 Nd(Ug`QJ`b:uE^^Q$!L_ߛ %IRYOltG?!8n4Lݬ7x*+ O7keK(9 C[)և,2/x .38^"({4;gO]vUf.>;p! ]~VQ ax./bsx SSj9J/_]՘Uc$kf6?3nC둄Lr!ױ(Ӈ/LyCZࡶ^ CVCM>DP;z·UD7AiKhvu:=d!2"nLt6xu;QG$6V#TU/MUL:^ Lׯ0iXF.Iroce6ߕ E;`>Chb]i x. JLOmDNw7"gCpD Dv!wen(EF;!{gyS=LY3(|BC\|?S/#\mvϔWA7O䘢ێ9F\gIi3YܯO9ִ$FM™ o[zڎaCb ϲ Kʹ endstream endobj 578 0 obj << /Length1 2273 /Length2 17842 /Length3 0 /Length 19203 /Filter /FlateDecode >> stream xڌeP\  . 4;n.=@pK#y*zc9W( @`['zf&43\9:l󗅨*:ʁm̬ffN&&  <1 @l rD ۹;X;#ʘI;@`a A6BP;9022mftW 's22 ڀMjn/  -A.ζ& kv,@d/c3w `;PeprsmM~@5ҁ a%9;X9928ZX;kmMD66 ['GY8_õzZؚalǨfka ͫ `gdb 7cs T@(_9x{ځ4@/OG  [`ba0Y"* @uL?}{0QCLTUAߔvz& ` vzur~47Q `XR+Qb0AF?(qk?5`T^3A4 +#"WKJ2V`r#~u7/b}u06/f} z&k& k ^cƁ^9-kymZ///4B6F&xe{Z_} F_~d605ע^ _ M/3X8Y^9;Zݸײ5p~_-\]rk^|56vvpxr#,́y-k[o]wOSn5Y ħ 6T23eJ,2K[vȋf_xn׹]K̽\! CmH!H /hb֧BEY#ޕXcP|{gUq,MefAK\M耭i2|wqh{ >" vB$cT_Cyri$)tdWFt[#n}~GBin`nK$!'7d)+q@ Q'B{|cHLLx \sOzH`ʪ$mqZ CoӀ~2k VUe_MtVVd 5BkO缋vEpHeSfơ:QWkJ =pwG g RqtGͫ>a1ׇ)@r&ВFiIakг6e}#yg\.a[Aܛs* Ki0 .:Ux9;zd/ E? N z}0lù)1vCfz:-KP@~jr!|ZJJRflV"Jq]5vEY1 LQ{sǯ@/v/F\Nu(,~hBpߚ!`4Q@ư{:4 <.m/; "AB4^I #Q"*QkV9tFqi<ဈAl"0[çoPjװ|g=d~jwn:/U{C*~e<HsHKA[\Nϔ"QY3i i5aW-D]`ۺw`,M+M}o 7BwU٤:tAw G LӉzطإ/>ßέDBO\V56"ߺ`aznKГaP{X))9X4fZ!n]Oðݥ^.X ӤM(}*RBV#3PHP#= F:@\VO*iN@ng;1FZ1UPT_! M_RjM3KgyG@|ƪƷDS66w V-:} b}*E0h; Ryt ~b%#Tn{4WP$OUcf`~s8.@VQzޔ~=ջ_J~(*Q6`Yq_Җ^OmN%K}c - 0(Gcy4#yTfERu-kEt.6IQ)jzB%OFތcV?qo\9qC?$* |'/Z"w=kq:(?~sJ3oA'Sk?|™$4N18!  Ɋv5|z/"PȆgQ%,e,Y,G~,pDYh ؼgpX")*{jyPіPz>EV(Q1,fI 0:O+55hwOUÖH=U$ˇo2D6+B”-ӝptd x1H;_>#h. ?q{,\e5i%N+n[kNn,B񍗟Ȯ]pu n[0"BЮ}yV+"q pG1ʲܷ)֢xբי@Za/}L <n')CwDb;o=-@[HPe|O^ U!ַLQT_p?¥О4,h7=ۑ(Ѐ_PĿIHE@P[-`.sZSޱH&c"w"yM>3m#;)w\֍<,߫_jڪ2h:VQݭ Cl0Mpver24RսiB]~]_c+fp5'ݵ]!Ft=OG3)ot^6A`Cwv?g**3LgEǰaK5g.`sѨQѰc'gW' .=#<ȞWTۄAqpD j 58l<")n>C/\7L'I UztTRQ |j]ƒ.PS͞p} ayĀפKEP[uG]13b% .މ9{ƁX#'5pXf`h?B.IrvcCGrg<ӉOd*G$_Z6H|?p"}={p|KXo&+/oEnh7@/d s!Z)i՜r7σz'Mv{6pKN{u?hzEO *Fc(6|fO(Xbn(t Sj;TYP6ggV ]omN7cّY0GL5Օj3?Zpgvwuv^u.isq/zqzոNoitȅ!oSt૒f㌝ܛՔ֡b^H/jTQo:XU.YI/ᨎxk-z7ޯ-Hܱ8b5=יKƏʫ <;`0lqΊF鋊lWa8L&ceXۗStʃ3ej  ~cN9CԏL9GF7TQy!YyەOOKO36gq[f]Oi(F,W9"!^[[}1UU͊>\Mm_jRYv<3&qč1{z>8`k(AZt5  }aѼ\a qOW3BSB82+u|Z/A>=^祍k3蘗OEĕ½FueLi@ǽx1EQy6݆]AgʶS7VV/Tr>"R\JŇKrQN:+H*8I+ls@rb+1Ml_Zz=" QЫC6!~hHX'd1.Dy0|FwoqCixJ.}Ʃ`G\Cj{Th (%(ڝCʥQ&Q*"ld5SPv"54D'$l|~–>EE}/hOɕS ;#tn]jߢ;r9B,EvĠEBD]%,th|3 $yRKX^~6zvBBm800AI`hnW#84 RJ|. ojfٓM4L48wݕ6/3\B>JcyWi5x\VS[@٨ϭQɦ%miyvgF`P;ke]BN@!%ZotTI /-p (̀&pa{n^O54Շ2ťAPr=h"`#Sb},:շ'>/9g %i;E":h(FT9K|>|HZN"n kk2XԕCGebCOg<τdxZU7ȧ Q6 CCSCbqH d M0hyBNY8ݨ~!V(r0ua'r6⻊ՓU f:m9Nm1/NG?UࡾMv?냧LMN+L]4 ^{v;b.yfS 0'Vyאb+:}<ioF2ONpo7'6HM8? H4$zoϩsޒklT{YDK߲+nl^ Nj%&1p=geߥ }ڿskłT|ewB%䈾"7Î?om@^3qKKM"Ȫ7.`kr5CjGLa,z +YM%G7lU$_ |GܛL bB0V?o~JGQ]! *܄M0Ll|tTlE{NS{.hMqxD[2뻅Ky ~š& zJYp7[ 2teIVC&0<ʢcw*lSkԤO'9#OREF)l+ cܝ&#|&d:;ݻ;oӋٺ+vF8ED tFfD}"`f^ĵJH}eK|tqi?XQ֓AGyjlʠ4hֶ> K)?¾q^!ܨ]|eHOMݾTAg*.5Ҽ&xQ/a,zdm>~ $z@m7VTZ|*f%6k UeL,ruĪ7K0&`ovnufF$@/rӇčy-pH\WUYGf^cʞr99}O5 "DT,#wF)DH_f1֒YH,w7CU 97Q3;=Y=6;s8,E]ZZ6_c鸍k;/-~(E]_i' bT؏E)+}?ihG%Z 1L!"7 /x 7NNN5*4Мv,sLULնEwMsMI :,MmlEOAگ`G\_tdC %>}#*/EsAq[NI< 4V"Ty&%CВ "$X(gw{LPx!ܼ[bm ` M1UH,vTnnKp}'[j'zb]bL BP[6ݜM[+H|ƪ3eJbM|Fy $kO IO[3EEz!F͞Kޤv,ISZ~GSʚ"}BVm! _"P`NK+#$JqAy "o+ YVj. %7 tM^p~*vy<-,Q19r͘/|˳f4U7u3kθkr\Quƴ{$DncoL4 E1ljwHd9Ð:D*ݿ#V>)6Up)ߦ޿ێCx%6@,~S&'F=^Iqe9e?8i!cֺuˠA'Ծo#Jo MYG i*Bumt!8~ԁItvoL@]BD5j^V͵׆Uq>lPИ<%!\awRFѶ8&](l@#;L&XmAV=gS>Njlv:_F4Ixq':Xl ÊzR*"IHo]J03Fϴ+y|sStAOCIKR{fP aMPQje-QWBͦW [c˖2Εat3~(~`b@pގ]8zZ&RK! kf͂@naWh%ҎM(2RR;}aO7K&{RTGѻ맲8G=4enNp\WP o5y"}jLsKv=U4{\n:eЊ wY_q{u=C|3OyQeup*{rŎj m/nG6R4gU3Dsf!mu:DR'/ za X̨d4,%u|vۗR( #zr}ݵ"eS[8!gB0 epFĜZ`yW^oހM_7(lBwKcқODsJ\9.Exvlmh[f&j)U?z]1xHp?ݫtrFnnL TMi!Z_>3so @~0(*0cg]X:Nxw29d*><}3uk7HVkN~mepkm! KW.]Df<'E^9ɾf=縂;w+ZȞa;kf±}Q%MFwaw)|n>hxlb,9;6[oA|w%It¾yj--Ul}XqF/};y&0 h*ƃ\;FJ~Q䀋֕|X܃ث ~PS? *B2'/oHE7I(YOa$ 6 տRt}Gn&s3K,3u  yW{%N(D3D"op& -Lu]Qay}\銺i.Q̀uku\'6гajGLZzy|54G&kK׆&0L|k=L"ٛvE7r侎*C4؜K'Xʼn+€,-؃c ڲ[1zĦor̊E"7ψ&iAd*  Guo3('hJIW"C .4A2vH⵬!$ǜC{"zKy[OB 9]ߡH~YLsw&-:b4of9}, ~Qv}QmָOO *dH>V/&36^̈( BɣE*GZtnMN;/K,W&+ln4T&[3(TIg,skb-A4'f|}u8("4`ph=#Ktz]JM fͰ gQr{Rl1+hL2 H&hBi W}Q 8 qʆ2VB 3 qxTO)T(MtK;I5;n(v, `l7#T59u0Zҩ/h\֚iF\ˬ w"Aqv~NC]e6 wV8FMva͐Dmadx"8sp[qjM^pJ=W`=Grqf?S̸&uBl_,h'T =͸d[u9ln~7GRJFhƽx"Y[,R}Φ_Ek.oepxuȐ<[ʼ 2UJmZDR̢9b% :/5ue t%| ?Cɀfu{i'2]&H? fr(/;.U5ټ'y=r޻mi?tL̍Qam)yJեX^0Kp~Z{q4 ;&(1pwO|5A?Cݣ wM|6e= 3QXx/񥝹e;5~Fb,+ޑjLPyلcb;s #oLY9DJ-O+T[Bnn:}4^*`XgD%SϷ-'mG}~/(V8Q5"G_PӉmQ@eO&w$f ~QYRsfN̚<ԃԻS&zӋdok4?B~7SaH-žgkNr[5úgbSb>c*=`xl~}bQOG&&7Yu(b3)|!:N?ÜD)CY l';BsSdM u8pn'iRX13=ϵbǾB8, ښUZL_(f1o8^yfvC1XEFHɒEԀɰiewktulB\me1dbX\!zꭱao\3Ό1)S)1#2eZpQZ_zf?,{k~pajFK|GR'0ϝ!F~)? -(-_9!h%ϛ8#a{iJmC0)JzzC8&eQv^?!x%ϒNog9gH'2!XۖdOw%$bq"g.s IOJZ B89H^:|YHƾ2'ܧJaǸ‘|ӈ9Ja.Q=—Vvh~}f8%$D-&allVBʟDଖ!V r4ިYwB_|PC3^cEYcP}=Hb)DG 8V)(/&g|1pzl2M~6uIO 8F, "+4`G%!C8؎ǐT"0ͨ"H O2xm\Cҥ.Ok+m0y &K{hxX[ݞv8 𾐡.uݷyw;7 AAbJxLW^#Sca'Ƨ8̰!UD#2Ƀ̥aZ$+v䞨7>AXW>Kya:<#my[O(ud1%OEJ2'o*R#dAN˩v0#Ftuظz&+_S~ $`vxixQ3YX~vcO[=|UI-ڸ}mGbَj>Mm)tMG}~Fܐl iLDyh(`ǎ gn@4Sf.0j|$U7E{v]>aGҪ<'[Ĉ]a*i(ƯWI~GY,Fy~9BptY:]n,G6Ԭ\'>ʪuQ(GR^\ @oԂpnm$kcc")JJꦛfΛ:?uKYY ~ULQxqkx?{j~Gur'|.+GUϗד+; ISƷx$@ejmS #L#uAXPoISuL=mXk*(`CG%{G.vFvf< ywx7*aC KV-X1Ljҵ!cq<[ SYm9?sBM5/{\|6wq&|{Z=YdN4ѓk񩛊[JH7騛g/z @(lbb8O灥cv7~0TKb_->1A^\u_UƯ1I yM,8V}֯?j\fG#AGŘI5Q&" a!Kжj~zE]_vZ#/d+P*mnί;vS:Y~ALH.Dz}˝FPgqʇաtdVB wmX#n欇DLEC++毷832v  } {6y/x*,4Nr0r/ry*WB?#NawhIV\؈Wt Ģ\) ܫLLNJ`:ѬsLR$h0IG*vwy49J5x'N'r_YYC\ d*ߝ!yX7i% `Y񎟶N AC*T):շͱ׬[ڕ`j[oeg2SkW R>. [NBEw& ŮVzMj%tS4N].gDjtiVC~-ʆ &XHpǢ=0 7 - ӽ9/CiM&^íi׫"Ƃּk J7*mB=}A@cljΐφ"ֳI\6_1cRZm5SK^hQull Z>hBAaA1 d SkNd7+~l9۰)ڋԨR$"+2Jo]]"$ |޶tXWy.PwuYjfd J:8tE#|(щpŵ22z^R]H,T*Y*+f"<]%wY}-l-g’2b Z@KCd;\jF...=Q@4f eӗ^H7:~K#D'_| GJtQn*bF۩~O,5OEѧ`2R9 =3vQJ"D;2ڔ)4x{1iAسQXdEEW^UH7NVp,)ܞE,!H\Wn& [[b rt{a=,M`4G;xI0y}ZR+P,f3@9r]+byV? e0yVCFf UVJ!s~G ?+Y9&CY,U3a?3:YVU} RB3}[U!Ag9 AmƙeTU_ra}dG_pcUx- 'ϩ[NitWIT}"~SPl6l=)$9X#lf26*Ӑݛ<}H?=T vBK i]OsV :'IM'A"P\.Ttb8_s!y8⃀K[ /8޸ _y%\s]{RT(> =׷ Ooz{rfdSJ*u2mgX$BX\û )$:4K^DJA\h|k0})'Σ>X vXo8l$y]Kd"S- 席}J!Oh=l~ kz!Qfv\&M,?&+ZzPFfU6P쌒JXs٤cWw</ZҲE=Cj[}[Og'c%3E(n^YL|t|7/ڸΣA} ~<ƈzC Q͟c@T!WinS#+Gj >A?n01iP]SXJsKЂ3? eCi+3 X_ڴ_Fdq~yTj'TGOCn$tcDsERO(Y?8|۹TF=6x$ =+RKe3&:F#NŲ:<#㛯zOH~˶^S5NEU3X1"cӪNǸu WGLI_N֩{2@@4l Cr0Z3\ȻnHŐR:x.壪{ɃU4mJo90 0n2nm1g;FzrC"hلV09}Ҁ+M~3n16I8)ǖC^%D0fm!dwfLB;KHiabm|޹ZD !<޲6gcWyfqPӑmsyUs  ZcB#nBd$ E˰`2؜ 건6T 3Cz,ᴔ2/Xs`?݁:4N6\Ŕprww:b]Fa`l!;vs L`'DIщy@w$WCsM8ʏbΨ8 5ݪ&MejGQ20q V2Âp ]P1@1թ(×:FTιh;'Goݟi8TY<:V|ʐ?@!g^q<(ODav.Α|D,mCʝ5LFV u^KT-ߎ7ǝu!5UG?Y,  [)\4<`ë(:;: = [~$ ծutq inO:ѕ/PTSy7z܏ʆe7R12xg endstream endobj 580 0 obj << /Length1 1400 /Length2 6292 /Length3 0 /Length 7248 /Filter /FlateDecode >> stream xڍt4֮=DFDQF%HtA0f0F{'袋A$Z^䛔s?u~|` C($F$ hJ@1a PqUnR9 V `tPH$Iʀd@((/GZ @:-FʣrF#12:p3B8 PP|r0MSx"0}~ Ѕ8L&L0Gl14U8!p6 Mm}8A߻AN7W"w0 E9@k c0C< ' wXIw<7(qvC8QW-!a*(gg8F?U^ȟ:"QH߿- 5EpukuHc;Rbw@+[C±n8vo?%RC@1IX5]>0b}z t(?+g۔Q^_lM!Q $*Ha~?H[-ձ_%?tQX|P~@PC,/wC`w'f qF8yu% KVC;UA iH\(Gp# d~Q ?@!~-( lX~AL7,0Kc>ԐPD%$4M]=V"KP7"HEI ~w"N>~ÿ\ýPҙ)T6ء:RSheXp'TTh%1Gmj) 3c^ xthUv=k Gxݎ&f1D )\$ev"t$wav=C?xdq~FvX^b9<,JuA|>k2@ZOe\c)_c`ۣ._V6<˸:0-|(aO2K|>tM Ěõ\i&zYqgqgm=;>li-_t"jfn (SuoIrjJ@yߋ&d{mpK0u_qpxնt*+d1D$QQ'˵X;2ŏ 3m︩&Ž6Z'amxa&B[F[V{˥0*]3"߇u=Jv{~@3!:RM7I݄Ui L t.B:ꛨڕcn/M{!{nB/!VHSv4ـAY1QJ7"J?CxjG>Nb O2PhbUԸn<N$oa-"^qkhc`"KO܍,~3@ڴ5Gv#"s8l[˚u91qg=Z82CwTv܊esJ0rcfVaL%mDˢ&QNUc".Lؓ(pAAkx ="AW6' K/!-kEwxY^jJPo2Ű=rXMyS}Kywdn탟 - Gzq2;Z5E[=p/JJEE.l["@pz/I,kkph~N}W{lϊoLi' e?2✶ؽ;X0 i,iWC6{w&c"dG*sj\2odqSO]m2:۟y& R7/ !"'%P#Vgߙ RMuy5Id1#}4Lɛ FL*ˌٽMһ?ܢ?qB`!L{:roy`Vx-X·[?hLJ&[%[xvgx$rP[函Zx"W3K^ػ;㚐m{.&t1sWr@ΟEKr OmEz:.$IɝTt7tRvpŔ `ͱiX4Q4RU3Lƚy#20܇EoKD@}1: 5-.9+v/EBOk6~\FupWa}?E^1y,~U;{$yyj떐WCݕaSEaƔls&C.%)0֕/w +?Omi?Zu!'fNG%©G_Mjn~鑱e(5Kwp?k -ISA|5Tm:䤱Y;҂fKYe-tJс1/#U1im] P͋Imi˯}i7>Io18UPR..1hWe#3jL\_Q#7J3yvm?[t1` "V9 9[fef0 SY# H~5AAB0W>OH8?|Nw yG7okIUwxu+t ̫SB-ӎ: Ibq2 :чe$ w=%"&i oJ2,ޣ#hyVɗL Zkz¿og7hkeZkzV;RdչAxe; GRc7gt~%vIϨD%5P6W!_^BcaV0ޑշ*:g{+^KzyA/+/YY{ۦGO\XWlPͳ.1tAk[nau ~oϤfxql_0\ʭ3aIVтCUL5=$Flzάjga-.*39GcYἩZxgQbkJ0\/ܧ@:-8쟊2 ?w[bHe5c_ f&%.N[,?4hM\JS?d[;9Í`3~-!ֻ 2+RWL 5¬ 6h12XP շ!9?Wvj'LjVQ,?F_V˜ MfIjw De4ePsY9=>xLZKi חYUd1_78s!ο JJmNK{‰V:8ŋ>y 誡7A%p/P?;ә۱b# ,sƺaMm?氺wlb]bE:Pm@~Ҡ JZ}236JGٱ[ªL:$qj@HN$/Qmsϗzf:;'EbǂOșhV_'YPNJÍ{bҸF)ϊ|9`(̀7"JrzC҉_Z:Z$yz3nV%eQ`E$k]Yglj,Fk^O3W8tj]ֹZ)nі,oh:;#]Yk.m'%,Z쎙HNcfx(ch:D=}Atӳ''@ۏ+]kB.OhJ}$("g5 -l[f<=6 ] MůdO4S_6ׅ>e6XLyGW-yui|XPtt//H{ 9<m 4a}vmQl;z8P{ofm\)mú<<c~i^7(! %3mUG4[}izI8A1Ӽҹ%;#͏-\S5FH><}K/[̏fͳ0StRqGPUS構<9-Ku"ߥuU>Wv_90иTj[vГ.zN9Y">{e4NP,wiw#5K>ԕj}#LY[+V>nU:}&{Y,#I oXd4L@R: S0;'uJ c 5$OZ )\`7z])q3tџ+[]mo6Z]4$ͿlǙȦ~̛wnDŗKeJ!B)(0t6Sӻ|麧;6M+>#TdYUm?ƈ݄|>RwO57F ~8qU{ :]Ǜϥt@~DnՑ2+;z#rԿvnnWe@7@mxkğSiXqD@JvYGrwV#'pawnf^7Hy0[MҬM`K => endstream endobj 582 0 obj << /Length1 1718 /Length2 10218 /Length3 0 /Length 11331 /Filter /FlateDecode >> stream xڍP.&Cpww`p\{p `%\BpKv=_uoMt?o|5ToUԙDLAR`3+?@\QQʎLEa eF9X;Aw!/6 䅧ȹ8ll<vVV@7ks"3@ rAwptGp= (!V ̀vu3k_)h G~wwwf #bP@ ?;cFhXYiWwA 69^*A?  G0[,@e)f&\^n@k; ʁ)QUs1sv0Xnw[;ۃIX;^ݓڂ k&]Y4N Y(/&m r<̬X~tdm~`t ή _:f)w3O2|gk>Xd^`;Ͽ̗EJESLQώsx3sعXlllQZU߱`  r_?%dJ/k \f/_lϻGߊ-H7homek]!/ Ptxڠ?U2v_,Q63q2rivXC̬ܙ?횿fg 8X~DE`f//tyQ1Ơ=Iosq@Oѿ .7ۋBA6y  ppF=fno_,@;G+v)򷁋"~PX_8C%߄C,B9EX/;v| ߱/@cvR?n?fd2?2?ޔ  yiL ئ.Fȝi q;"#DHzzvֲ|RMM¹V=Y'Ԟ%il51$֨{w Rt4gv$SqvۑǘF y>M*e\"btcYoĎ ,0l= D\RB?^C/Oљ;\RS{Ju/ץ5ް h}ƹ7(|*|H% e#KZml7-޶`x_ 0;98busCD[JY|"+{#fsmYuRYkR}UcEC!τE#XJNj~z"N?AL :R;XGo-h 5}>,P8*ֈJBCUzS72z5q&w;5.;(,@ip@bN})W8fie f$an9G~b:sƢX֓,"mA= T/kjn~JF1q=Nko?1פ0參0jF$ϊpqQlWRrQӄ^-WbXV׷oy ({ԇ'}Luor}{X ?5!MbRINh}&^=%f⻝yd=#he=3cY b]|۠ ]\\I "AQ&Wu4ߣ{0 pn;d_mq]̜;/Ra-{U]>R\DH|j4(E-;;Ʈv~]aT,|xq`ewWAD+J * 3g?b!} Y1ȆyEܟhR΄`ֺ]<(β<3/=sH/=Bmo:gm=dy8#X'.WK֕*Cx~"Hp Qh՜״ t/CîsX >jdȗ]ECrD#P{gAxwYQ˛h,*]?=?jqNC|n(@79{oUvNŰzK@~,IhߕT]^߆\Ώ>@rꕡ f˝6Ý , wI߀eZa ^I]S %ԹКӊ~jghifuSdaǰLq', ?_g`3#d^$YLdP-ƍm6֣{@/{Ԟ=p(NB|h& k BTwq(۬~Ҩ2n܃ȣum 0iSwF,YXӬi5w~? jNi-ۊ F,{hΚI5KlSsDE/YsY\+F3OkG_Y!Yv^Yþ>z]pzUFb'_ w_%ޢP^1tf) *6X0s2(t8Y0'/xM3|M ZG sl]֕HVJ }ߜ\ǓO[H1vp]o?.o?`w6R))d=21aLG%?I{+ q^=ϚeP {"r+cהv)5X]\V`Z<^h-DB8? HS޷=W1}EUQ|T~J_hUȽY_mb$P|.N9e,_+pG6ǹh%\ULbhNbC}Y7ZM6[9&Ic5ayH f/t91;JJ/]iھڗCo[63*E*V_ _?+&rv*:JsY0z=)9Ev O=n:]fi~Ə*C-8v3h!ĮY H55t+ 3 zdH48= X(LKHEIpkfL)(tQWt]%;X[=E^c>rjg׈NZ2z]%p,oNAB#yzg^igu PXS*KR%CğEWvgӐD`x < n9̑(F}P&wd{z߶OU&^ FdSK0/|{w}󠫉\Cԣ~]o tc@(Od ׶]Ӷ"%T.&&kRd`6MM*SwXŧTT[c3'\] 93Y\9ߨ;8L}"(< LH)*PJbBs0{9ono~Vu _ N>^H:u17nJD:;".*+ tij8Ѿy"!3J!@N[U9Po\5BVfb.W^WH 5Dl_~ovA>/*K=QpchB,l_a3NASRDN~+JfElhwf2"]9[! >8v|Ð .*=t+]}(ʊH,}:Q8Q1]!rlv$e6]hc+/@&lԻqVu!Iqr7W:X)cFK^f1XuS!tj)ަqwo:8%#ʜHLCM2iD"kՌr./֒ nG)1\9MW$Oy4\1THAꛯwsP0,ܘWW SAc|>1p&6UKl a8A4%JK_hK~^72\/Bm(dZۘ {C !>P~\r" * ` EgLřE.v>d.DvMGe)=a@ g!^R F-CXr^bn9MC]^cNw,niJsu O- Χ,_ȒIXe۽Kcf JsΏޗ%s=g\YPMI䘈V" ۴l.3h7d){e`o0bYu:t YvA-˳0.i#@uF+C?'3QV})̅;눡g fߑWXшknV]w^miQ%3v '/BaaSڎh,\G&z.=W\Ywvmg7DHqRJ4'JOt91dw)$!袹̪ڹTڣb e'f$ӠcQ1?ʡC2'B7vݢ+OÇQ2Ȑ^=I*nj)ޯߴw+5m'k~\ ODet,fh{[*aAG* MTK%?;7(1<<::hD^>31PB=gax&M8"|GzU=bS"Mzو3\G_$fPIS2UD =.c5Qvt-Jbs]8&t.)펣&As972Ll>*xwDWLd&"o uS%l+EP1XL|Mw6jӂzeՠ$ƑXo? *htB[W7B2"bS͠opX1N% Ǟ}2iÄ^;g³QsC L.%M]hp% faQV!u[K7CMUn>x+ToGsn'V~pTx+$+qO0A $^Fg"P%Kb Ze.т1i$c);u"N!QiZŭrKbo]BCoW8@)C-UvSن;4Rr1Hw,҇b"}m4uRKxSR__ՉOݍ@mD x[(#| bRLz=+լ6JH++?p1 1d5BqwfY%wի͹(#Nnd5_@M`*m֕&dpr+ryc<XsVPD@r\a]A],Q'b92)}HGt\RRGY`֦ff2@} WX$,Ǵy6(27jg(SzDZ疣%`J\4a[H7*:Q\Q>d &zšV夔6o2ޚ//GK{3r1քRrzhGV[1gLJ҇zӝĉ qh!9!؁a}%}dYDvq9+OH"KjtN!J'x:E{')@ZvIڔK3\I+1gSFC@XiG>=*vj3'nQ3@QsqNRYGUP`R_/fp8dLvԃm,PH k h-{]&}g)3Vd S =Vp1l3_n+KRА2B<+,diwZPcYа8X9dps]H)]L/X3adG9uS3O&3j:~[_(_pc)1F,! ]Uxn({JNzKl4坅qŐՓD.ضL [Ov[fRO>8QN]ENޜ_IIQ?1}d|.aAyG*km2^S`Mq`D2Zpl/> >ULJ YIiMzh"qsDIo%lc9V]:X=!wbRYeVcV}E!#qgJ\Ló!0\futZkx[uX~,Thؼhʥ5Ai.ڮ= ޒ2x$Glc 6LI+zc>p8YnKt.>茻 X+yJ^&i4sA}Cs[ N,eH:\8Sl& fE9-|u9!8F^&швQX[ [XsxL)I{ǞrvA"(䍧mv)~lC!y(w3˴aMb(5:HRKyѩާn~f osqoW폭sZ%?`ҹW(#,]iʠ ly^#{3iqWk:lj*HG`ǁ2C@,w>"j~]׉m%$vkn3-ViywLc詳 S)AO TL^N2R~Q {۪̚9{Vۙ/z= 1}7M@8^ID$ a^P'$ZG~u;#W¶nj *d9BvAO= \J|;zB+V n}1U΄l)Dȧtf8fiԘsׅf\08Ӱ/CUIcG5GydWR|\\3C afgWV /"/fEi |Mf ,V]WEaV LC/1}cQ2Srbt&[Vi-ɿs7 $s8q[G=/ŪCA㒽̬°&vMjyEhCx^Z/[rst96TzG5 X Kj;3/!8(J j@KmRXN:Hv3Ge@'No֗yѵUF5Lmל"@VޱM.'ȅNHړ3 &_}m{;"_&'LFɤ+v1# 6XغA˪/C!?Ht7ANEO%Wh6rodyfn[up[ }~[:iћ?pȢǤwYVc@^}'ӹI*:(C枢oxM%[%SsdwZ9cz{dw邘"ZbPDV06{cK iI2R XBοd?Tde>&w_>#yFj#նr Bb!fWm ȇS.˰ !GPqgW/}4YԺ+J ى=FfxD&m^}ЌG (Y*/|]֦P?%x4w+x%!h-݅L :N`2d[+}ZBAs|LiwOe:`Q1t6 9as޹6 &}(ӧXa1<EY7awH][ f(g` w`Л/8O &jIUD-k臉ԗ*[PrOa-Fnǹ<7+;C|MnqUpui Cl] B<!Q2m` N?&>µa6jPANأֽK ۟=e]2d"&MW7h "è|ܞD\64zrl{׷Ww9biaiisJ܀L9U)Jz1Sً$ ~/eY#_2VHXreZӁo jj@)7'*|3#q+лDtfQ-ܶrI}Q]̍ ]&:2ǎƬka+%5, ނtvPA%F /! endstream endobj 584 0 obj << /Length1 1388 /Length2 6102 /Length3 0 /Length 7057 /Filter /FlateDecode >> stream xڍtT.-!) (␂ % ]0 0 % -Ht* %!-݈t Jsw]5k}߽< yyMMUq( rpNпnRC(C%@ >0DjnN!C Q   @J0&@ H9.^H={̿^\nYg(`={"C@`P?Jph ~~>3~((j50@ 3)@Cآ=H(pAp6 nET5.P߻ _``{v[D?6`'vÜX%Y];P$C~ 6gg("՟ `݋f_5 UU H㳃"@1Q!1a*Npbl?Ro @#ݠ;OT@`P;?ձn|$`rO^6/g"go^Aq b_|YF ?p[6O{WW܀B`i p@ URrsr?`g_nh4XjZM h0V p;,y0jCCp֜`pqf jC^/?PC6'(F"^c-V6Phl ;/$fA5 %Ge=7!o( !D@; n:6"M96{BV\̘Q/VPzЪ%z0SuK҆]ɫC#&Iz\$9f7n;Tm$6vz>u~N-TU iji(Рg7^yn_p/{9&h5EV:4ޣjoN{D{s4>&ks(γ߸ox[+ߐٲ.YN:~u`9ز`ڕUE,-7?^f0{di(|S`U1߳q@?eNϜ[gK'zr"G%I􎲂tD&65Hp"budYT>8$/Z <#A}pGqQ.LCI0K/;c77nߤr|hǕ0z@ n KPwd&#*c%-' Um=ȾVҭ Z pXm*T5£!}Т`dcyH&|?ؙ0zRv mU$ ku//Jo5N[6M x}ƜhCEUǷ〨oK+Y5_;pLڎݾxLI,uX˴gTFى80;+8.HeɸIGG>E\DO+u% _'ؙ~k<#Zl wߢRI&"C7Tz̐Ş飫ANJ1 LDkas'V?U?~)m x8[ΈשpI`vVXw,${gnj ȇUaf'eʆ;/_k}PkO{UNW)-B\= ]OcK;ob|+ϏuBnosfIӐLneЬI4r,'/G (ݵIn2,(bfB>L$eb;eyso[q8Ph0<,)b,k8;_o{+/m32SԻcszx|SnTQ_g" `W`k^+߷] frG>ܯOVd_ 7'驇6o `rn8Saj ƞuvL.'Sx)v=%t'>\iEM܆(Uц8ĭ85\Z!iȑxAAHpoUD]jz@v-ͳoO83}tSj GϟD#HP{N_-\A?}Mb.Y|9QFJb$OU2fo8ųzj.EO>z^v-m}[LZY۩܂$}bz>F f[`vj#sܯPHI@Wq<к:yXJ r8;L}z6-(1Od A3>!`rш׺KBEk@Rw6fIKw:'Uˏ:_O&8 2y.qm^a/1m3V6/+(Gukc E]VJ^ُ(V-1x FWSZm:EA1$AC(7XҫXa]GY$0'GeV%NDH$4f_pIŴɠyJ !RZF62 S7g]*@Iuv-6ذs?p[SsɠWU|P1탹%8|$%, wE7q,; M"e  CUGs¬2b+t?޺EtP]{IcWy> U$Qɛ,LIυ> XFB._cm7m+[x1.׸)U kfu )eXa?59IyAPiFvZs|~ iV=V!plr]LJJuȃ1Q|Wp&R;L-Zϖsd\ 8[֕sʬ=܃;ј(1J3vbZ.}Y*e\ropx=F_`xZhڽnp[{R%m*ӾJ&YJs4:OmPt~&ڟi=% 3Tg/9rO+}ДX/$kz\TPbӫ4@܆+hivZM* CLZ+B[qi/B1f {E4_y|Gp[Sh D&wIP<d|xq;ܟuNUO׌VKL:+UYj޳>it-LHħމݘ;Q/tʕ0@%g0In0u9S1/Ԣaky` 2GjWמҌcnL3"Uj  Kɐ( ax2(S s܅Ī/,slkpʌW6/((kz oA͛Lv@%DJxa: 1l^uլ~iWG͏9O"H8Y2?{.7$)dPu6O[M28 5!4l}wb(}l̥&@V@!k,o/왺+-ޛ 9(LxpR !`^^:|4g?wBc]jQ2~}dkax|HZMcO=Ägu0iTD]V;Cdgb#_ r}XQl]'t(33LINuB.Wwݬ !3A|sPU]RT(!Q5`} DԎ RGg=f]-_UcTLIu aJjt~9hmaμ^z-zQqEZD&(3pdlMt+҃Q1ܽ;3s*^R!d/QqGH=_9Ҭh<.)3&/\L 9p:t YSm5VsJD@uYTH]!2-$VMSN$7DO>]l2"|4ȶ+_^*ܨ|<)OuE]KX&\%nOl%5Aєf>NoU;x"&S(^;,&(IVȢ\m]r$E&&=\0tSgPC@fy[azhuc~gBW5O~9[u&=A%ŧt lҹ=uTa߈q~A!|`t7T@`0o٬3Q07S :4Rl8Y]vIu};r=w>L$"y8,nx$ SQD#|}'"IEt>.'53$`(ڡV h:+3*YM/jHzF|u1ɸ_]`E 7~(a!1lNc1쪩s6nSS۽ՠN ә { Zu4u>S!nA\Lhz ?*8?|$r0WQˁ22Өek[: ٚn<>8d[{f;'ޠ`}xjon;xe=2#3Ee͊Q xAUOK#;-Tp*5]cXqSK p9(A)RT{*8CǐC>lya Z sw nҌT7[;k: ټ ? =bSK|gc1mz+0"{)w'?&k_A*eқWwJT^#M+>zy?"G,ƖC$SM? Z. 2nmvCH "ť۱0ēAZoy"+YE["C3 њ'KY3|_^]@R' h)MIH mZVԊkS^V|z%]2EIvf$Q<f ^jB՚Jmj7>eΓw!%̑,;0Rm/\>kj<t~06Pȷ5XIrUIad.~Ż̚ 3fŀ}^x1Lv ui NEYW'S#躔(Q ΐLBjAѮ~Y۔lW\#zE)UAj{_6ԫ6Q5 zQ\&爂&nR@OGL xDM<|5T T0yU7s)VkuOgAY endstream endobj 586 0 obj << /Length1 2836 /Length2 24524 /Length3 0 /Length 26113 /Filter /FlateDecode >> stream xڌP]Y Czp \p{%!$@pww.df!սE짻WӶLEQ(eoWTce3!PQi\lN {;? ĝ&.` N j`errXXxgh0qrv@g*q{O' 8ftV^^7@f&vE+-8 @ t Z+>ffwww&[g&{'K!7w@ tr~' P2@ \  l@f@;g W;s.Pvm?2ӿ:lbffo`b Xle)&7;߆&6&n& S_MRplrpqfrNp%mmv.If{2Yk;{w;w̚v GW?&`‹daae@3+5<)Yz;;,I}A@og7 `2s-Av/b|'@<{?>2kJHʩ1:11{7# {ȸubge,__Jh_\ u߄6_jڿ?j[?uu/=x 6U\mVv6,\̬嚿dTwVx̬W3x$RߐvfW `dn2qYhkLv.#pz {'0b/,x/,/f0K V65yQe^;Yq^ SxA`r/LN)l |a*Π% U{A`/5k 0{zA`/ ya^ⱂ-M{2}ATLL̬Wˋ_19Z؀bNp 3{Oefm: w2C L<&V/E}|Q ,!`9C/9ۻ: l`a ,4gj dlM̜(=~`ov=/txQ93.H;,D7K9qqſ2Qh.@sS`xQ7 ;?Y|h rNghsl縱| ~1X9 o >n]d>G+ w\ s ޠ῾À@ܴw_޷T3nNPmi1z9ޡN ZqMB[ܐ%2O}uXSjσQV3(NѯD">>ZP r]yPT1o{=. NonWq#>3FkF~3͚#ua$8@u5T.0[w-vk\͹_nžYoE9oRјv2@jv 5nCsmI4} 5% XFNUF.5@6 +Nw)D_:VKCSnotj&tgҋX\ N)u~ա B{3c"t&vG^¢ 9Dt̙s[QwԶ:>cḁlڞrzZo.iJ!!o9F n2tIēT!~sCV{kr0B?-oӱVfGUHݺ+21C={ p5 yr:ӤE#__oLuÛRi6Ģjkm w?))S3(Ư!K -R&R UQ`M>*Dُ Jo O=~Ψ4(8jAڨ'eMwy>Vv,C@a MBtBu,;FJg/XB;t )W$5Gr=T#7AUTӉd3c l5zEtdQ!ov# 6h&aK摽gAA_}ECb".7!R A "Pk{`jZf0";Ԍ;gbz8OsH "☱_@ +K\ڳ@Imlr A|c D\ ) A72\i}]Y5!`@82._&|yE@>nj5S jᒍ=v -J#W?Ev:347 oM%%*S4tm}ɅUԵ4 A'G,{"X HgE$1e qP=Ze!L.tktѼu\Ic3KSAMAc4N[^ne:tnXnP3[C8bv>G%k*?sVWŹ }Z`w_X"qӈpd⤑޸fpL'$,v!*攌cWU# 6H>2jyv{,F붮9:> _|.r5D<ʾKҲHi^Pu|SҟhA4?[#k8k0A cLxQf:CQ k p:0"{\I6gup$MA-f[%NynHG`]ILrŪ*hMޞϰX1:Idp:['rv͊$I3d aYMV(Cz V:[A~NO&E钩Q~^h"1\΀1Z8!ĬA wahNAL]BUUy?S*mz(vӫρ,627d DeaZ⏡nvy.clϱ{c<4!.wNCB{Qg%Ss4[.,-M6c>J厥 tc\j,-}uGjC-AG23醝 @/G~HEBt}i2v_5}&U`fsyTu*}{oQP9sd5nrzuny*8]w srH eߚ01%+mQr}Q'A@W1xG8'ugrUCn+H^[]r%."H@]YwtVƛ-B3~k#- )cĝ"p4Dv-_'DO_MPi6H]<^N&@@!w${e\'U{GSiTL=(cH/HՇJߙ-P5Žf|I줵؅aP En$ &Ӿ Mo'oTgLPI~j(iߑȬ 3kK,5tVӰߤ$bfj3Tc$ s}|(=*yYuꚼ:eoGu9zzY4ŕ3y_^ZUsKQ4ߠAb^zY_:}rYlvyAML _*+I~ A z,ʼs<Č8ɷj["vk~Ģg{do"Pܱ>aK^>!A= SE|S-DObOz7&VPtx;V).A8UtM@ۻumB܋̀\{pWM:CXbwSәͅ8ƫ% #cQ5Pom>\cML6F[H}H^*o!х.EDGҌ㻓^@vg4y03^}}kxp7G_FtYeWUi5k9ޛ`ÏEj]I \\[#٪sS גO$T +ɲ+ {Oi&n[(ᇂ'P1Ъ>9eXhϜ'Dqz|F'_tGe>Fzڛa6|kK[ϑx|FݟZ>_=cF.`9dgb0ppƺȮURb {wI‰+Mܐ]8ŮC-BulD P:Ljk(Fcgr%ޞS75(s,ʀMgzˠS#122CAN|cu-"a!]֜]1YkrP%Obc,O 8–O=2MPgTp[;M ;aY(jN8 Ʈ?d-Gj+nO֪( e$UQqNz5->2IU12m=shQ:ZczG00}j4>.M eԞ3IuP]q[L>-O˲ϟZJL]+8?FcI^ŵwמ qG8_6¿s>M}45SIf/mo@{!nC$t; Է-*^{u5($l͠_?u~H( d\X0+6{>"W|Ӵ]3,Ќrz_$>1wQ KbVvI?[[ups T8@OWS_2Ԅ|w%|JA {,5,6HۀEj^үCF3 3TAZh=pX𤄺V5zW$=i72nº'<2 6nU*'L\DQ:S (e*ۏR [H=yd2TɈ!ősOqk_פf`FVj#@7!Ok&< 6W'^ސ qH[cw0$i1?MB}lf<*u*`Tb.a:O~0j`9bFiL=$1 i\`q-n&+9kAgwe8O\0_^]/y6;2ҨF6;ĒQاQ}\O3:{;>*,p7>,;Q:wH9HO "I?cNTş~I ]+KMHPV ]>@~F:/ 2Y'qy6'Anq+`8 jShw{8<;VǶQ.{YèF]Xu5 );D6!py`ۡ3u&̷ c "sn 7^f1q>>Ȅ F3=z&4Gw:#Rނ.\G2'C`%gNE r;NXJU)vﳵ ߲|CcM+R(}<"-tuU5+}ldq"$%_Jx ) P}sPs7 N5󈂆p|t=m VggIdpmȫ]ex7>R@%gRMsmfMfǛ×JC>ʱZr>>kP Lj]t"hxy)1@?+ET袡aNi:5'=5LԦai|U8/ OUV Pu=QlȞ#~:"x3 #uo- L:&wpJ䱀o˝Xz4r!Ër ԱV?6Mr*!<{)?j^L]g8#,>éF0^̈́oҡٙ""g#; 3=~6Qx JhE3=cb͆T΄o槆n{5;~ 'm:Q9Շr2EW1o, tQW`/PI2s${~dE0jU^Wz^S}Gjil rbQEl}rB:y} j zeޠЛ71k !Dd͝)_)ckE~Rq->G=}XVXS.9]g)SLD7y]JN_n6Hl-tDĜ ¯6 %%rC{dC2rC&Il천{7U\,tqtjiWhL-ƨzDb3 ھ;Ʃ gd)tx,N5f( 0صes]H9JsloSXz Q4[||/lG9v9p RfՁ2]Wagv-dd%VcJiY؏i,:XBѺ|fgBє&G9rw=F`@fBS)Q/&|Cz7llSq,5{#%+15#$-C0~cgIjgpǙ7q]՛ ȩ,ʫ@ٌxMQ Ix\ *[<>!g`]C7Vu &̓q=!AM^˾ b-*=nl(/U+6D^S>k/X7M >._#k7jGrꅟ&eYtkvqV&UHm M+W j S-.^G\S@m.Ђ?QWc-}]@xYL!]jf䔪*DxiC]pYմ'/hF{8oUE?T eY< o#z]+!%/@K0'No^RnW5YO&# w{Ҋ@85̓P;o?h2gЏ(Y{{6jBs oX]%hE9M/tm3kLJl=RGj(8tLH%I%?w$fN2~Onc Z)/ەɮ!X)chp|BV& B#6L +op*TTu=ڕƤjTl0::|I$;(S3!PkÒxDw0-wB-jܪY{Q=b81^ٚT5i6^^jm~|ʺ!fjr,% D<NnT9Cs%Hr%FP \!]D|.x1Yxj]_0;W_{r;ג_l^^i4a#"ІHL@@[LR1%Uxk]ahI;inl2?)BE+ ;aPmJf=qcCUTUߠ@ ir#DNDo(\تxzڦ-2hKEr7CdT3I!Ō \SEz6O |tEvS Ld4O%⍐(~W02J=ǿߘG"[ zpjYZ+Y-3֏+/Oy?6b=5lMj"]+wBt~bykP vU/ODl$2>%80iv]Oaʨ}7dNHYBhI qY_ x- iø+ym11p"@"-O7vH_hLj`p aMJ{Y,#_=c Md/Ezk,aI=9{r#aEG#:vڬ0F#/օ].6b4M8u(,'G )򓻼'X!yyhT||3my"+7*qWg؟Mf9aC#KCp✆{ϿF™` JTB)ƀ/ YK.N0;` ]EWn44X iyNk|3\qmX E^{9=i Dl~+yG#C76]X7t0iѲtBΊ0z}C}/`nt[G82hlnJ ]ŵK/o5eocqFsЏ.ڗ8b!Rwg4[GTΒ\*nDAD<Չrrf&-~JrZd0*Ԝ)ڹh.^l: ) Ts49{>T_,i*z?ңqݚ:Z3Vf7S9JF+Fk;8P68j6ɃӚZyZ;}Nl\ЬBk*#34?/ JS^OkN7FrZYuLr&x#> QeCf NMPS\ءCn38/5!$Dw使]EEfL@]ʢ9U#\R/5wdb$W%1B>21}) 9yM)'Ndjn4-8c 2#ɜiq2L)TBoZ_D`̓olV"O߳vD}5 K&T?aV%u2@a;VB} R*!$)^C)X䨧,LOkS}@yV}鴜0]&;WW4O ev ^nbGJy4#q-!IR\hBo b Er0<* 'u>C|: a'[Z4RڎV߶tv/d~MvwL +O!xhxhG]FW Ȫ7=-y5*cA-죿bMQr ףU'}U4lWΕ(|ӑ F1:+FgW Xis~83YIo7ҠM~aj53J_ۏ?b=bc֥@q/IH'e]h v  LbMWd4uQy'Yw;`h}isOU;M]sepn}?GVKcwSL*{;,הvG ײ5F̗1@}_mZ(> `,C}`H.s5 I&G~ T)RXiX32٣g'm Jk0?QK ɻ xV8La|M4by8!dphߦ18i1S{5DNq:JMC]x?3S FqAlŸ$vWVXQl([96t[O5X 4t-*d5QtfSdVV5]0"ߦ{oWeZ^[fړ)8Ll1{i>m?+RG&׸tͻ->50rq;X 45fLE]j%w"PIjҍpvnx#< Mڝ 41sb'K&5b g?AZ]w4% 3F47ѷ ~|v3y_mrϷ^2O*w M2].=(Vȓ,)S]Nq7<s/q@(4/2@2Jm_h^z Bu.\?4]4eҹn$_ +]@$3Olȏ~$dSLrz1˧ins-IIr> ҰqyGcH& Qu%*MK=eoy^Zbl 舼 nXƓ,$mZFdq 9vcϴ>Te!|H./d% Km YOET؏_- vP1C h}i in*tr+B%֊6J%N9g`0_}:\.C"YMK- ]s)rO=B]yͩG I-rkI6 $eXY)O69[O=x;`vnfGoW").u<2N @3ϐV;jBZ۩(Ixx>jҋ$ug(ʛ97H-pV dBHxG _dO23g/JIF97= %դל^L  OŋFYa#;l wF\Nowee+Ͷ, q ˟lgP "qEA͗T=U&Es5n !oEF}Tcixt;l+`n΅ 2)$kOS jm J})kBU6q*oO,̄1]Wa\]Qt>5,-E/ɋ*6/cLE (a ԋ H!eұ=""mC ux_ʿUp59 =h7[R{<ǟ,Zư ~>hFz`ﷁXUɃ7yChG =8E7"&?A v0m|Bn?df)S}c[>>M=֧ )&1CxSb2Y !m4q4:I w6i5ے?#Dﶎ-bvX5ywV|9TP,;Wb:tS&57cbR4![z[{- Sŏ<{iT uOtGm`ur;B9׎9]T`D(9f2=@ 3#ధ1f \z:Ҭ덆bke](5I%_~zbxR5%~zkXqKx< \!I'H%Kn$CR*<]ApvN{ >v=LЅuo_]O= DŽv1XrxU|8BӬRʊSoڎi{Q/ҋTL%] [ Kbm7#&`?GB@о8uϷe-h M:RBV2yfNc:tk$&NeLa_t¹8N.pΦl@-jZ[D,lXr,HsW! tk SIDBvKcdbͿ ]KIg.uN66񰂽*4& %{%~|UG‡!;v>,䅜e3mˍ5L< M.~Yo$!V.DC̦}76nۣ D*_?G!Nсͅ5]IH"$X!GhD o:&/]oD>lT<ȳ y*ۋ7ߪXeP 3.1n9fx@GAceƅkgi,.E:(_ m;DЍT" #L_&?X壳 3/9" }  7e$[ %ݐ@ٔjpTԖ9OG\ WR8oD8ԓ:3]{N`#f ױrAg-Kb fK.'@o @DYVj7&t^h̯U] cӲ5BƒE$_6C Gx7u_kEvr݆ݹ5Hc2Ā\:V(Ç`/,3kNY#Bpxbu;2MԢf{%Q;+7rj}Pa@X6%*bNrc^؁n|J eaP g$XS0kwGbeW:Ews:tL{;39dl}J%'! xNz0΀wP  %mNJA=ɶw̸f[(j@ok>hZV9|Daf{4 BW +ip'tEtvC9$\1| ~/-,o_ '蹒ˬhT/J;A6dkfL^ܠf;K€Fա jLi6!}l2#kC$K5p%z6F󔿚1k΁7Iʁ|ŋ Wc]o]z<,<ҁ7EPǡpQi VA;Ld!dƦ-r'Ml`_?n(Q-Q 4Ȧ;%oPn(VU<\pς=l 8Ǵ8sκ'jFL{j"O `K9_ﲈg(UYAD"$}83>{2cs9v5 dOD o!&'OKDRatUHS#FU`=- xYsm`|V. Qˁ1.Ξzql!{0C ax([ H#HjPS!4yOejOzp/)8a~4ER, uC𤭂;}|1${ i۝g;O^chӳ}n̰\*kC4 MLX`-odDq;rX/汀7PLji/ZXɿ?m@\]ZۤU#*Oi!{hk'只 )}a.yѺe`,or[`~ EiYhGs5SM`TDdÎJ {u, >Q*PJa(.@,0%dlrwrҗF6z˿$htU ~%%7>; <pŦ|+7dU=a{PGhde6@^Y:Hp@Luo.虊`)$|>I@p;Z>ρ)Ô_l3'#A߿_-/L/>OS?D !TI"`KEVetdzj=z4c5iեhC{]1;؀ M)@Vgoq cJע܃$s0]eY?!e8W,M1]n37GcqK5 s3T!0+ιawQrCOl8BAvq&VoƓ;P#`ex 8_$mKۖ~ mX#_gąpWCWp3oAr~cۮ@i5]ynEh܌$G1]f'gua~.s ^0k xQlI]Tuk |MZmH#u+`ߕ" {|Rl.O򬵔;Zi[Xq?t*[LT]IaA% nl?URkE9ǣdL/ȒS}8C=ascҧ/j 9=Sӻ ?.sio~FGc]wP)`—-WђA 'jueYtL gC^Vm澍RK~zKS9Nt9w4=fRgp'w9!~S-4mA_w/n9hkFvUg3,P(Hp<$ ~XLmWtӥ  (Zplm΅fF=*ښ$0V:z ꇀVstL\r]eOZ$=(뚔@I+=+Mxq͇۪_:m;`aڧuۀkpq=:hϖLH[$7.J\f7OB@]/!c򍔞?zIkDNmmB#AK3f;HWnG߯+ ] _cdv̱9ee1adp {` Zi{9 I1^,˔+r.ydID˛|Њ':?nRg44iz86A7`!jKM/ݿKOF );73n$6UDFSB!^!pϟmа}4sT.B>qE t*MbTbAgXKupv.E"ԩ>*8Cfyj>u3yzܝGL`X_kEH+r`39 ?9YP:%#VDP+]8>n}*5o$yt3J_$jSY=PזMxol ! iEY}zͳ}wį'S$X&mE,`nIl(ZŕjNxiP.CDy4mIN] |ecѬm@Dk}'3#3i:{ yw# ~>ЊRP&` %K!B2&}:Z``Aož&}"*(ܐ_0?I>`A}auApT2%~^UMwYJ{V -kHo~D(־_9;DQ|yI 5AKZiN/hPMիki>"tLjрr;5`6z5q*~ a-~s@ 2:FLl~k4h%L3t[ڱ4E|9q󛏌Yw&m«boX}CߝNc ]*aj=v< ɽ1Sx{e~|ڼ uߵیP ڬl \<0WP"՛%<7*Mhoisrmj3ZL ?/Y}>mN'dku+8}H e&'5z2詺(ȣXPüIEq)$d>Ç\D V|x!(4,b|H JYԱ0Ccdds| 2%HJ'NYC8u U3/.>~0Zmh-tfG(c MƙG fNI+SUY -^mXe3U-1&:[V%ȯ.tPx#_/^MFڠ+qTJau33a1HԔoڪHlounw:T-HOF'\w j{SS! Y`L?VE3l̳S6sI__5?#鰻Gecr-4dwI /m[ @9vەb@.IDRU8P 3+i{d*Z0-'zm A=҈E3[v!|}z:[} $lJe#E8 lR~ONH<3{(|`{2,43hMupۂw+y^=9xXI/ȴ*5=#~Ɲl1H։ X4w2]A=vWϯB-ȇ pˑx9!r|v8U9cGL1WQSKFViܮ33 endstream endobj 588 0 obj << /Length1 1425 /Length2 6648 /Length3 0 /Length 7625 /Filter /FlateDecode >> stream xڍwT6 C 9 HK7H 00Ѝ HIHIHHH("ݍA#!7{{k}zz;׽zƂJ({: e*F0XT !MWhG{ PHP Sbpj($@@$d 2`0@ " -Pz!B-ATAN)Zxa|$9@ FH. wÝQ0rCvRg;~ Ѓ'&D8#<(G7 W x"hl@G4m PnPpD:B,"~)B]=P8{ ) PW2@q pxy \e( jH * #.H7tp)"sc`0XRJca¿ !`\~(w#.xy@ !ÝH`=h`zqt[wsM 5~'o2 EDZ [ӋWm5(`qUW^uӗ X8o[0 oy_{?R/9uQ @9ϸn-@q3trw,9׀"pׅ%Mwix[ ?TCPKD\E>v?n   !Q ^&OqQ#GY(O1i0[8q7^ۧs޷l?V_N4 %J8>dFW"8 6+U/[.684M.|SF{X:z`Q( /3o9ogއ@)5an*=vfGZY!jVK mzA~6u{F ZaVr9&?Gކx2.6I$*A$:3+񳱰޷MyŏM,BmE6,v/Ku؇I0u~!Zg$Șfz"`XIg9NqAy.}nh—(S }IKNh-L ^HzL.|P1&F#ڭLQ"m*Ϧ` 7bh hT٧UntMתrjs: H:s;F_"csU9bߪ}'I {o~ |vA} M#zĐ woE?LV] H%}MT~Nڼ Ƽay@Xe'̦YUlK]7;Un-0G|/fugҔO^0A \*V߬ zg ۝gjHHG9H|ҝ+tA~2i}KJoTJw`ƳÌ_Uz}u1架'$X16$7Ǚܴ(kQW{$mߙ .%̋Ƿ lOoy! nwî*^xZ}JPzst.QI7F db1$|$ _.qYǼ4݊}2 *kx5&E݀+(:9 {IU4{Sn;t7)A B!v5 sEg4B=ݒ_z<9^o^1IOOFiu2'6}%tW?]p4믧^tO'"E3vP-7*{s'o <{ Y璷\gTղBOm "o~prdX=bàPY%68Vdq,H:vHWD^7bF"co$ 8T:r6JZo^J̵'0/.*R<͗vqK3+dYRϴ`ևYlgőc &?~IgTI=O1Gd{5z(%^;XJHjf$_ T+0`;ܻsשwS8(uYܜ}xT8G(,yAI3|㈬25>W2azpj]4,4ۙXVfPb)s9U9+Uz[0>B=ϊh=5i=kt*sPш3^ɶl֬s%?[jl^7CZ/q3m^.&L$vήγG29׫S4 :bDt izܘn&5ZZZėIqOJ7.2O|x4Z97͑f{jp&Ne )e>/ʦ͑= swhKEmUP)e7P^ul4g\!iF r+}3 Rcd'0fw?PXz(z`ʫMxg>2O5 z:rH ɪKW6&61~RXd3mgt8r1wI/qzΗɨX2|g\ EҦ" ūUϋX&P|DǡyNfԍ(M_s7 1S4;ΐ k ʰT{M_W07dF X89{RO)LĵYV_]*)=-XT|<\<Qꄌ串w*bo4!M*>]_%7əxFzwkTڎU8Lb7lnDQ 8^ZvK\2e!d!oCd"& 7in iȔXYYgɧfݳ=cҟi0'LhOsz1N1옌ǭ5 5ʯxc Wx"3e f =+RUt&xsghiǛȖH[FGxmKΛe 2Z(_` w̸uZT0-{nb=eݺCFDtCO_ZuN j'߲21 S|.="sFVZECL"س P|nFdJTiVa<b)%K+7;(^ت1:uVLre-48]*Ft6ӻCi7q;%[ڒk"U* ?kD(UW%ru[i8D[GKKO>N N bO~qRkcYOfj܎Z턞ݏQFp'U 4lW%S"auU*qIx fc1`A}Py5pe1^X317a6$@O KnXǐ7Z?pSˡumTﻪdQ3LQs$ՉQ%+xt!kѶ+{ MNmxUok.*U{B/YӋ<2|6bl{-XؚΌR 4l{ɡ^mtG'3O}YC*âVm!9}͓SiCJrðKg>j ?y.GQ:S-؁֏Т&L._2͝f6< S +_tfXde{J'q!}Ezl*oHy|YN6<ۅ+Zq;l:7 =KџuLb}і}88aG2z+ЕդX1n/ykHo/4쐫%OQ*ow@`CL+6`2ßéK?S\\zA)?s V`,=Û/-45?sk%j >6!V|=bί쏡0jj<%PUeh }ψJh/ge.֥F6uyߟ>sMPn|DcSFᵣr6 זF1#"|m8/ssE3 ֡ӕyʱ-EYuB<Ј+']IP}GKУbtDqXnR"y<w˖}~9B~k zW$ y֖lMOv>' v؟J+^ٳDܗz'RmTkZ]4ge '_FbA/>E Ͽ07Ԛlĕijk$Y-"F\Y`r endstream endobj 590 0 obj << /Length1 1556 /Length2 7580 /Length3 0 /Length 8619 /Filter /FlateDecode >> stream xڍtTk/-!2 ݃tI7*)10C t "tJJtwKJ Rߨ=;kݻf8ZRPn`%Jw%Y*sr;]\_r*"Z]ŧvYP; 5‰ vFT@A` 8@X@@@T 9@H+;_=@aT>^N0' *rp.Vp% ; :FP~>e B ~ g(7"oFo@.Bb~*.wB-(d0ʽ{a+ `FPQv.E; ?cpA_Ts@ $ nf%ʾUrY:wލa ֍8y\Dw8R_.&}"EDfk} ot/cu6gGGrVu1lz_;{8`֣f:#igtTFVu- Ool\FDOLfƁ2r"'ON'2FnUc}"zFOy. ѰQ3` ymU7U28E<lsxnhta:"AC͏I$1)G(2Rh+VV "ZIdyd;VUDb3vZbu] YӦ9Z^)KE5I[iO\ O9}It?z"~Z.5f%xkb:%PiZiQ}(?9+7̩o7b&OJxK͡#͕rGO\63dՌlxny4CiԑƲz RZwp ƻfv.*qB}ߖ=\MȠUYex^33=LUl-c8^SV6y?ghc}D7[݄2GxlHJ *Gv(l-{}$թljUŊU( x^P,I }?ayXFerw8@p-ά3ǜmA_b8.cEH n#.Ѳ Slw*ldx׷m+8Z F) $}[r"L4DUؘ^HjhJYQ ?P8(o=mt4 <^ 1Gi{qiBZ IFu=?qCz9YSaeݛ?,vR)hhr衇^KOrb5HK4hfi.(<;V1w ?5}{m4"ڶqD^a`F#{7f#V>]4?rmٱ!}UC5 BGb.( e@8~$^Zsw 1%:1WƖ؆ G-4* ;򉬰Ɖd-#J(4K%P8kUN}=bAlr:EKz]+kн^iOQ WϩzܛBZk}6e]TwA- qׂ[TL8Z)*#'w'HHfs(dm|0qhf0G5mg14vuZ٥8?yeAd:Z6EdZo|M;Vޙ*]0Lab@O.W+ٛoƂq|vũqGФZNlJo3X 0;kS+zs+f@7"6oSLO DNWa3IpYnKʼ`]ίW Vwz##DZQyvd*T Wr{eI=G5= ;o tYesmH -7{ %7gä29cY_em>^Y#{`]iO-ĴcnTyf6i2ƒ7Xڥsv&9 )7vQ㌫h/?QlI&nP+xxs|cgBC<S lNO/"?F:=cq~A~@~+z~sҙl^tab!NRVف)otoq|^SNrvpJx\or%3`]{,eۉM>rTˬ XdCy1"y> xK~SLr'"EwByA ,`zK=,)H>oi3#n; vw0B]2޵=ș|Mp'("lX9q8,]; M0uQ8f*МӑFoz=7'3?lށGo {YanQL%{ v:G87lT߳0SO,RGzw%sEE hƓ'z9㕱cXcB꼮:o ϣ%>܅ētZ5pʶ1HhNxU0 >)YoS/kd2#hIqAW[du~Ů{!N/WB7 2>#NV ej=3D:WQe<'FfSG2Q gq2ZZ~Ei[jK I >MtR s(SÍYbA:3m0+oB邆޶]jlMsw gیy2 /⋩F=(%acӤ#[ /W}mErX_am8k/9>nʬ[yۡY/{wp߼7Y QigpMY4 !-BVsާhcp\Dr˓TGNՒʃrDGxJ+1(։I%L\> Mnz})m81}f 2A`c.rӼܞ Ŝ 71=1ZyW}OC _qK*o{'({CbfIiv xuviq` @PRD@QuІ_]W0}RQ$TCx2Yڻ!,͂4 8'ɛgh^7$JIjJDw'&'ϡs)O1L去$8 p}zaswV}$@RO YOjNۼLE>l$r9π$G:^G_L)fUopNX=_UҴ-*7lbơ [YZZzU[) po`oT:ul2X+] b& ve>5l1boptטE$+2`V]UpܵQ bv =㰖PP-8l񪉪'09tQk#1 < /' GɨhYSJ$I3ʫȞ̕5yeJg'0삪<\efO<_`_-ES5(*@|ž`".-M&G1WASCٹ@vđ|( $"p4raݳ%Ve#] Cpu;A`b-a ndz0MK%Nġ1}M ci43!CzZE#&̎^UtoS70CT⼱8Z-u^>6 {f%QWƇE٘J~F|R>?ȋ~i&( `v n#4HOW1Hvw9N&d\/9B=pR{ypH8UbMUj"9z8 ӓC#}3A2)NcѸ[)D |_r YZ .%=US3 DsSϔ@n>yPnz Q+WnKt҄^ wƛ}r vXq Wn!8B) pU:ٜvwk<{x%Z,-MG^\15Lww%D';Ub#y2G ѮƭhMxsoqg7S"~CI>+i#!M %1q}B?sJyҠsmԦ-U9d+`ܜ#pI3`w!bNLP"#Na($ O'F Ri[F>9w|#~E0J4vHVq8`ksY 9ɚW =q#ldұש|8oU944NST2RmIau܊^t[eA>oJrRKov ?d-Zd<~`ӈd᾿.,qӪ *Hϵ.*{α}kswvFjyZ@kLru3;gO?CpnA$j|:m'&(;TƮ~x.'vWSTgPI=El;QZbIO2VG(9 ،xp"14l(Sz+Gy>QahIxTC ef>SU Bڄ]skWxLo;Ï8֬LӴp$=y9ok~>xCqէ*QV|2b a%7@QF A!(@\ 6`hڕeD2j;" kLWb[fgэ {w;uN];΍/<WpҰ Uk%#2o~JbFϟ>.R^H Syvz:zC:~b&0[LyqVWbuw۳]y LD{8ǴIq?96tO3uuv<M_S$PCƻaūWQJI;F^%:bqt/#vKk0EM"9l׾̺[]X ?[Z:PIb9U>Wɞ!}8̽=53< QNTcˊmAEk<*9ɖdٍbKN^}mp@TRYoѝ]sNt=]d]fXï頥s/.)G4m2D49[08qs2B-[2@td6#2.X M%x~rAV4/ȓMhCDJ`7ͪ<وKQx`8̕*e'tMAp7 ![DVU^U'E^~~HYjV; gwq͉̇D X_f h,wzvwE|lwq/17tdӔ:,cmORMϓɁ*@b5zptש(qhPṌІŦrKuIW.Dž!N)Hd3pxܤß$w}: !Mߙ;0př.mnxY!,#ljIšDlt5z~ h| ͽ9Kn5M RWUaUzD En޻]~wױIr#1-.~ IOrtBmJIxsyr2h֥pR2 &eO:~[\}kS{[O2޲WBhne|v+,<شMR㡹}z0ĪPr576[|VR]eqҋ+񠓄%65 "|ئp9@oOhK٪GyZ1UM5hi TʘsWB*Ab]ʶJ*%j䨁ޮHYN{؛Fdl''cgIz}:SAC;9o>x8cBEt&.^vWA ,V!a5MhNً%n!kh!/-{{f1O~`Hw~xE=S9x*PQ k_0J)kU_vIR(dA##3j+oFbN@eiɾ3DMCsL Xۦ.eDK\uy<{(Gr/pCvg΃^8EGWkg%aư-kͦdg3^K.33"U$K_'DcÎ7P#ӽpL]qçahDM83َOӖ5@˱{lT=f~BZs~W?l5G\OϜF9K"O=||txl&DؑElſiAz.|&款"!✶=8J{z{c!B|/0/oӴUBTO<]ΒVv:vtSLfcbzLdͷDkw DͿyT) E0Fxn8cqdfH?ล8O)0$:L z*GLCܷ99 f1+'hM'hd>4CtynS;%5x M MAZU4WB{Ţ^g6v2ϬҼer64OŗvDbZ81 _E:@b^[3e~@މvn}5fϊ>"1+O KwÙÞA ^WEˈe1Q;z43Y[_Fa(ziȺG&$7seoq8!vmWr#uW}Mt}ȗ5\|o̤Q6BŬV-ĝ]ѝhʬ0D?QԾ endstream endobj 592 0 obj << /Length1 2339 /Length2 18539 /Length3 0 /Length 19909 /Filter /FlateDecode >> stream xڌPZݽqww ݃CC58`?Ι3+Bk&Jv@I;[gFV&> / R l R^h.0r~7ȸXX\||,,61sHLL;[<#=|ИXyyvA&Fy#g {F#k _!h,ܘlͅhn g 4.@wcL5 ӿĪvfnF@duzwp5:sT@ˀXXldbbgcod5EI9&gwg_FNvFF k#w 7H*wwN& {g'&'_2}mMllN'rO݃csg3_-3ۂ\x,,,ܼlnbWp5{Jֿx[̀ཛྷ\gG?MS3h] 4#}X,nZ{1peŤn?*11;w#;/~Q@可_žO vb;4\5oY]Z }uq~}y`M5@SJ;Q[s $ r*M,*uA@%;'_ oS~53vqr<ߏ8^l]:O.N_YqY?Y̒;Yqe{-=zϮ޳+x޳+|*=zϧ5{v?]?O[wK?^]gbg~#Kbc`6'{Z?Ǟ/tGv.71Wd Yx[ma.۷h|d}oO(wW-[?ߝK^{0-[kٟp[_sxccپi3;;wps[/YY=1I8i/sr5qnvP>I{n86=컫'_0qq|[?734_]3]+Jx0%8OyN B[x'2ڇVd뤵&-I Ae~e{hD !ȡFD+X e R!oO'BkdcԣuJ( sqɠ`,ͣM$ư{l>,znV9QAܢORy,{o !1m02eՀTl\'VXSCIu_1 j 0حDG]fbwfiksܤIuHnZ|=yE2nEg Ҳؖ;Ofx8/LVu1:iwϾzd#+.2 ’k\'298 .̚!S u%''VA{b@ 1Zmuv)UY^$n:o|F_#Jlp`bsvY!r syG:46E⻱ #$gJXrEk8.~ix<EdLTO puߟ2X%YƵ}s*7n\֔lT'g:DgpĭMc؋MvG:_ o>xm8LW*"5MC 56֓2r_VA9phgIp W6FK8:,۰c#eQ깖h~]z=N,ޙ:pdi[dO^ F_購zDEU?{^i1(L7kp&fzwpͬ4!HZ>ON:ׁߐc>%?ڄ^~SGwRP/YچI@ KU;[yv0R}DR%wtyp`:T[=\or+'1 JB.:^FC&B;_ }A3 4׍a݁5ֺ,#&9{峫/,NLn4!xpOƛx!F/Tk.e_~C:q %6{HQuqV< X!Ǩ44}I,H3JɂV&jb S%af {#tv+fsAfSCj@VnQ'&Zq\!/_ Uۓc|9mjK^S:xa\(VȤɔ\ԭJl|.rvʿYv {d Uᑋ"/O#Z ] VsapoFOP&X >GS J柣 {{G']}_B}*vTIJC##ƓYZZ6kkn }}inSȆ(0)hz%-č4ͬ4q,njpPs/xEPDr Hyw\(W,; >b қ"Mh.& ?(@!y|^ Js*}PK5=Ddjm z ո@ڊ/x%+rn5#OF 5xLUF=\H_^ ~4M3?IJ\IHtJnhȴl@}5Aɥ r8.Б˭k?jLV8GT4}4L8:QQܢ>0MO[ǭ۵sT+{+dޣ6 d?1QN_7՟kzوggd}QCQrd\#eG4h*aL4F+x<58hՉy&Uno<饲&?|& 2 YfmW]`sЗGR'T}1Ko'*;e좀<@n\+@4 ?*J|-8g>c[QeaWљ?͡4_﹠:u7 _?V;ܯ#\>`+U5HΠph|T_¤6}xysjK6h0k>gbP\}4bzkՃȨϞo2;-{`[LGXC5juU0FxX~KCVҏ N y| mԵ3OA''_| j rhAlArS5X"O|MV|xd^7| ]!@V*o/`L%eę?+;2N46KmJ?`rahg#KQG =NG5k҂4~X-m{jh+|R0“g22t~] o`^o;(qNUi3@$f9!dcWyBA9+>n{%~GE)>^|+e }ׄɘ#jOUWǢI ?dw8Cc[F_)?ىa#sc&\(z2C}(!c+/Z}RaG)%cV'8L 9Yypb9@ѮYr;41κ%q잺O[qJ]4`x%*zh2W"u&kzӵs}^ -ȑ594[{pDU\@a9yXfϱ BQފ>rj7{_7N&:^#TN8%ڢ~b|.TSj^zn\#$]?7rA[3OTy2iɛ;N'+=!h@ڲS9|%~+mMR2! EzzE-2XjOKsINrт}25 h7|b|͈rk;3Alǹ Jn )׶ qf̓@(YHaEԏOշb#Փ~n.w|DFq)n ][0*(R1:!\e;E(|u+e%thd' alǖwe@,s*+)ٽykw-L~[75Cr>-q[+'j6n~A;ae]х#c`қ0j7v\ξ.О.k$/d†5 IJK衔#D Z({ܛ@PX,t{5_фD QMR{+`*ŅG.F-xi=Q?5=4x*҃0O {mqE@*Y+"tS71lqd2[;@q}r'4^J" sZtgRZ}@ȯh:eE?e*GQVd;M=ˣ =?( Xʄv@(82#k"v2aeUY Qi 1!U_"X2}!!myC 8Kp \*5$B_V:1[P$˃5Ouf+i vïR,Lv'ڏ1r5UhEx"8iŇpn7erv.p{:ꭋ%eC;EIۦP&D/VḪySnɶZ?+֍,i|)Xsiט&M)*ЏM c:N}T=߹?XӖv9r@ `%龞+UmZFBƼViKA{L/U[l$6, ԅ;~Yo ]+>߁>h2)^&ئtHFn,CHWV8̇XLR˸-}PQ^Gg9F(PMCq]NlD̓Hxf"_Nc~!| S9kHެH0Dv߼ic!KVR=@rY(G#* VlYBTAGx*fhǩ-E7ÌŔLjbIQ \lVdHUG'x}><+~x `j^GA!Ph.Vo_?8碘8idwaB9=EʰCΈ-&iH$b4|FNHNL -.ez!gJfs_V k9d2dBrI7Ľ =ke=zήUrml1+ւ)) FneRρmhpjo10)@5~G 32Aw`V'XsP{*Q9KY\uܦmWGlYe6xkC(s `Wq%xCNɎ+~Ko>̬2Zqys~[B,^Фe-j!"t*JQ"e^ـ]0;`<Mmq>>wP{TYǂUAΟG`db@ߐha!rLQ{Ճ-,2[WnWU&X3ͷ<xJ^兯(kIz$l8J];Z6_qS]hF8wӅBw< W~5]÷ƫ>,NpPn_E?ݼ 5|RO 3bt_P. a0?Zߖ]O>˜SnQLm~jД`,tGQ" fR)ƒ9;eɉζ1 E`T9ʰɩ0.x۲8ܱO^ӮQP|u/yX̬n>wN=T$ĭyGjk]KS\Mw_C|o\$)I:ꆖ n2E튧PtvN %enf1Ub$sQ y 84_?>tAm?7.46+S!w6$I10&a'ѝʹܑZԭ BAlGֵYM߹AUd"FFh׬a-Bel)>M YA1nVXmQ+rh߿iŖriHUP?[/D{'V]}X8rDc.vՏ qNḍe } ⑽/`6G:{dkԹh֎,aeUmQ$-P5R@(:񋦈q #u"fu+=R3"6Xo*LJd:=h?/2%O& 7;ў .q5/h{'/yȕڮ{ݼ$.ğuBw`nԅNE&Tq!RM@,dD߾[\c{5@CTpo޳Wo~Fq&vAI5D^^jӺ&<Lh;q5ܝ@oJm;~opIc2W.:,/揪I& KQx;A_@lBєUHNpZI tm:3/>Ey;25{ݮX}Im #-h׏e+K;".Ѵvo:^ OKD?02䕙+1N~-S1 Fwtʁ-yB}"4/fU8p~#]3Xtܗ⾘h艳5vb pO 8t|:U%b r~fѳiD\ h~Yˍm_VƧ2N&熧`&8im?ROo5މNMC{U D=0Yw­1Hx+$,0$:}lN>AY-r V^OͽbduCzB;ҊPqz"ȅj*57YlZ\j8 uCUmk?'?fNob/4Oeq/CZmxzvNSE\E`4B0B?m;qHpdx̴|._ٕ+6-)PJspՀN]j@aW̢kg G&|JS+=}ex/*SY}}^|3MlwɭW㮜)~rơ+TFCxDU#IʷHkfE[uL!=^M-p# c\W+D~t1xͺ>16(́Ofc"'kOJ\2%L4YPؕNmzRԯ#Ǩ”4Z/k]DȎ^0]V4h=P`NL8,iZ4qP\E!i]&GEѤ {VmC9!s Pԋ+q Jc8 ݕ79fg_qU*#'EFxZ=9rHhP ܩωjR-^eVm+z鎪PS)&oyXhEPQ\C6vHKZITֿn2Ɗ]Mjl30LYHY`L*4S3Bѵ! ˼W 3`^HQ,ku Ƣ['SX McLIeMslCaK+sn[E ([Ln4c'fvtUj;RF&}(TGlF\CPE@z L68h]eBJD^s' ׼%;W&響RMOIB6@g#eqWHsԃvpu釗ﳋy\_ؙ)=|x$4f;lzqzrVmTNT5LotrCi.vЬz5zBJ5Zi OI3A/G:pH<{X,mazꩻ?D9T WxJzO (e>h*)r 6wB/2E̮0EM-Ț~PK @Pm =m5.(1.XV,aa _r2\# nzkjqJ zF=5|p&K29TcT܉*ko%,kqYj4ՕRHt.ޥh?Dr#%0W3uƗV`cuSR:̥ѓr+HygpP *`{JZbУxIAͮ#f̐ [HZ@v3]~B鱃j;'R=] 2y|{ O;E5$|eF|'q +ҝ.ɊA^;T,HTջ6tMZs?5pGU)Γq|]cvٚs~@<ES^r{v3U|e,'z` h8C )a6jh"qD80\F?9b}tK $[1bifƮtKSAd'y& AD9 '#G /g9Hy*DX}OEaisFGFѡ?#|KgfDoQc]u?\[Y—.Hkz_,E,0Fr%w3hY<M٠23bʼn*Fpf+(9\fwL沌;D.)`*jA+ }!2:ϛ-lŃZ!BQ=ܨ(ʼw aj5XOA E)e01c&#dlbXP$NE癦_;,ՖmC z/v¤fߦ!4ޡ1-Tnwm5 `׍/]y^) RMD^U{4wn`. BCZ 7fbSŅfYu~-T̒4yqc QaVc\c,^gc QtegU'LԻ@@ }}87Q1ȳoUDbبC)wL܎č q.' ;E2uԪǀZP}^7"PZr۸7'W ӡJgGN?l|?&@SnO C4͍]#M?M(1Pr\Pމ;Y:螟e˜\CK|7zn~7[+ͬ*$4(['˄J2o֠ u Fm|M;$IbJGa`s_6Ug{AC* h(hAshPݎt&v=BHc:G EGTڦe}M+E\!l;0g#D%f)6 ҟ[ Tѧr3fRA5O㛤Z{dx]{>BPOIT%lV,v7{J#!9 wRz>?K>́L_>6NKWdڂ6QMLIW?9wQCÚ]XE 1ŻʻL思r .3ޜo&t|ƞ O&n? ] ոݡ7y @3 7ܺ!NFCk}qg^#>T~&[mLb-'vsѮJSو&T9Ό$pxR 9OM*-_@/*_6gɐԦ#2YE~gԛ$ "e6z^wUϯ8_,ge0LNNmgp }ptNWMCԡnaHVK C3NOl:~vP0J)qɟu9m}ܼ G2UձiW1`<4g,V߃,K&cyYf&oH"h.yi_C h[;b-#Ř>_xէ4c Dd)Q9X"z|iGgT=fY֕1 ҽȱ+"o/~ eIf0IAQp7xt0Nw3H[v_!8EhA9xB+f;,JUVOܣՊi$9Ͱ^)+Ӷaba8ƌe s 澩=(`ӪjHNծA_YOOh#R\PgH[&<-*_oy`O[+RLCH2[)MxCq*&5Z.e;hI>o 0y4'+;z)l8m[n[ ßH!4uMZ1'g˲E?1E4e {2'#{1eKOO5hh%;y~qg(Р:~~pbf.Ҹ2* x /ܫ\5X˗ilLUr% [@xc& LE{ *馇2!A`/)#p-Ee먈~\ M6`V M݁Z @ O5k:!%Q cm[8 Mn|z߭(%RAENXVVm4XŔxzBe119႔\>rxb4jaE.:!rK7Ӯfc$2,2A`ԇ$ T|nf p0C_PcהFpƻDaOR6VВ5]G$.)Y-pejQLF!C{Sv9VM3 "=̭cᩢ0>[BIqO :uLpL2IDžPZ;cn̅7`?^Hǂ% % CjzS5Ph ^5{_irLikq01 N &jz?ӼRǷImlW<4k>[h&w}혂WOAT2GwB&O&^.vW*I`te#1 )f~ĦM^x |tݻ,w)`}qOjwAA}ðOHQV En3zHT^~6/KelΚVf$ovpLwENM]a)hrl/^q+rT~:CSKkY-Ag4RΗgk'1|ޒGT.~%XuI>-}$exDnxΠ+Jh/'# O)ibFS[v2^릤dzesr!2> =0:.ʾ p [1 ̭a.N>: (]tk)Vkc _ ܙs4j:Ӣ:NɣxĩHVҡEr5c/0)iUKN2? YȜY8$]GQVG奘h&=Y'ڀ;]Tb:r.bb .;qvN˞0oY5DW3uiZ-8މv \}CqFU"2c۱ ] NB"x#r*֝x3v1݈-AΔ X7yiӹ ~q A@}z 8HnSіxt܆?'Ut IML Gd.X ?\ Tz Z~t 0t&~>x{/bkQZYjY-;D-F Γ 5oxIbp7'Xb[m)ۭm# ĢV\nBҒ 㮜٫( ŭӜw> sd )&+qgo h`W7;lFv'P=2 ;a; !2e4X#طkm`9"kv+ cUY5icO@),T0ڝIߛ>IK'nI (dP.`4v|cHJt9byc]) Bw1QA[(LBQw2mBZ[ǮA"I&QՓ#*䂻iv X\msby*1''l-{dl!4)`d9VoqnuDx tc(Eb9Ht{|q&Uz7*–ϚO| 1?nPNt:PyڦWt/uX*~Fptuy69cM?Ge`g>Y PoX_%fPm$>| DvFk 6NymRCk-I_:WLQqU$O"Mpր1kC}5 bS Yat&)"h~ЁTZ1+hXϿEU\#q\BdL[E*{H6<0gM!rV1@͠(~Uyf EQ[Դ)wR"#1m^Osp?b5.w>:E[PQ/@$4BAzpK8!.^)@O20@:.KvwK 20煿" 4nv4s #5jW} Gxf5f)y-vLD{AX}Mh6} a!k7ZXO}ʐ[/׌9~ 8I*2@0J[q!ߕ+_f@>ҧ[B]ꉞ,蘘+Ux?bj+uX5/KineG7Kԅx5e/LlH'ђ__%ĤFw:l+'z߆rf{RYg/X LSKv9^ȐK-MSh+SFU`ĚD:ψ&7e;֫“"g4\]q OԼnO9p7ĠQ(S N{rgzq=x(W0`p9 pSNcC(Z,ShNr%JvݎxNܹ=T"_5<-Fk|#A->aj\_b"~YN6׫[>1WO"+~'U,\]t=4nA#<I{$^&~So d!5=1쓄 ڂaLNh0ʪrfqdU a"Bs]ٞyϞ\f\q T*(W:w0TfJEL@9 ʬ`KWf{8-2)fN~xxx%Zݞu71ACxA fTd' (StRizE"%7ϾlġfpB<_y %xh,։8.N>Cia@QǺf)DdzۇCВ]4N@ ـ)PT\۾+Y=۫O̓@=Ni7 >OW~ȸ~bHq/gDfO*+&:–aa!'\&: uo@;e;҂G_;UsaOs /-[ wxHUI9[Qۮ's|}G x"}ܓ\_T7EW>qCCX4?N9r[Z %S*5aV)21hMO-U/{F2 Znbjtz.˓d"lEѻɱx;kmpJ#Q .@d2hXR(pNʦe[62jxıV'u_iHOݔk]0X$8Ph鱯uN$lAǵ>7N!sF—s.P*eTj/Bz5*7Pެ%' b &H'sUGDD@G 3-M `K;p]ȀHnz E1#7GTsԚ"Bu muIݚ|49\A?ց}[`O%߈,qwFAm%M (۞mα4=#3-AGgaF75x$R|Z]5 I#.2}-{K?'zwZT@rk# l7 mIQr3codwyMpt> stream xڍP.$8=`%hkРwKv9_uoMt?oRjhJ@r+'@ZU[FKrsGF@пPۓL퉨 ܝN>!N~!@dPe(A@4 w{G5#SPs3 T-O-k\0ػ{zzY: P;1F'@jJcC؃`*!nP IaO&` Pw$I`'b  ' @]Nˍ` MtA-=,ANVO?RIj,*>5c~Se6gg ;?hwo ق6˰qwa\݁2qDhn^~Ag@_ ? ܠ@+qrl@n+'1OtPi8??>M #fV֔g俕RR//+ zo?"3ݧ>'efa/5 /a7忽_3swrC't9yx\w-P<?WWhrw_6H&UO1&hܬ?庿 j@` tO;ft&i;,b{׸xP7Q?!^/Re;dx*` >W>~oџH.7*';տ]` >1-FO,jvyӸ'2_2WݡЧEx7F[X :Ԇ(Iɺ=Ń9py%KⱣ,-rs] ==fр_Fb}s[o,~0w]]F`;“f!KiF"׳=y'l1QUR534sWr{7#\K,p }L}^>Re 4V,]PVe^o@}fzOC׽W$ZMv^?WGJ\%mCzկ;TwT#34Z4+x$Z]0y]mx`SB"PɩRFEʑqk33C 6R6v܋`&D!]K>;ta BUдчG:j~i{xV`Eֆ͘*c/K5mVztn샖Ng!qrgtXG]+OeCpq;\OWފ ŕz204d>")unnk=:&Dh|4[4O\^DF,ɺ!ucFag4 n'CU1F _Κt0/p}#$5T{p5K >AA*W#H$zU}Fy>aB;|s2R "A|h(c ĜYM̐9@(:/[>7$Xj*o`bϠm6`S \ }fH Q ;WXOޥγ#}-ijӗu@[a6!`Λ_uR'Ye哫g$-|;3S~3΋!?:6t RMwXO;OĞyO@.HЩ7uڎ"lU9|5U|}Q B~Fu"ʼ;Y,?F =GodK\U:uWSNυ6hrܲw$ ?9PA*s/C;:ʦ8hf\RTmo:^;빯2k)`v70U.80lM>lS2oӟMjo0U Y f?Oٳ.!f-Crz~*-A:AvjMשҧ$ҕcfjX=8s"ZQ\0.ou>O&N8dMMpUSN`*!xp@P$kLfT7Db tFGZSB)GUƦ#M+"k+b(,kƋc"=+I$ZY!'/*j譯o= NX}E'l2./04F+ p*  K%w6~Ù$f%&e]F&ѱ M ujN9RTJ$M JfUdX%^zϊւ eDl3RnJCO Ҫ^%^7s63[lrV*'⩓ x$1~ pnW좁,'!tjND^QtjXW~ nt!; aZlm!ޢ覘m:/cz!bo*mΥlጃv4^T=_}[?D5 aQ'ďV$HIFyHBYj!a 4E*as9wHyᶥ`I> ͹ɾ q_Ni~.n!qF |[^ Y/Pl̗M;\]̥LƓ^ƭ~$|D[P ?ɯkhn,ҞA*0 xPzjjհpKWsϡ AEږ5]2GW| 2ec?^JNn5y3io=+^9_|L6^Ɏr9bTacfKh# G쓏~s.pY&7-:~j>d%˻|:ŀau .> !q`o캆^bňWf[R40nyRTf032Ί 3kӔŨ3BC?%w e| Wo-wvCC{F/9ASFG;^ Z+;_i1g,,* Nj/ MM/WRjIѸT6gbP4c,f>k/I1L(EzW, ԱCa}'RY;I`~jL$[hud^M Lmq^K}0BQU`C} 8g{5Lz3[m'E;@v2{~%%qIly+p}{ N@ϵ҂A 8%2,AWdĦ&rֻƟ]+rRd›[C% re|nr>{ͳ}^͔j?Ɲ`2 $?wE9.*s׀;7%{:zI^3McU'5i<BӒ.L5|B֥-vÔREAS%Yd LxLFԾyuXS1Vy3C9|5lYG JǤ T'^1|)$^y3 ?],Т"l*%*!RR.-ãϨeFŧq1PZ[Vo7eUv"&/SqoDC0)Zy>I;BI&[mt̳usF%;|IN%ȸ~$ņg.gStƩ:hE"M,c-_?oI| 9eTw*.|CQ q\ݸ8u<2͸07?iD^7c&o>W/9XպR8JM>Gkqk -H|8 I& 0XTHhIt2zES2"*cSL٧Q 9?35֭c|~%4yWF?f ko^-&E7ȕNo.+V?ƦDL)B~]RMʫXpM0Cg%]5 qQ^9{upUC)3jl4}t.g L=U0P87-n-׌rk=!=%grť%*%) @B Hhghq/kX,pMVgwSSo1LhjSwxxvwWd8]Uc[̏.<|5 ܯ(]7_n$ +-3YM-On,lgp'_8g|"ֹ0|.l /:7vMX0otP*))V囻N¸qI(lr B607/p%M"Cs) wԬm8Zԋ0z+|DY^a/{bԵ}gXA-crc_vJfZ(MK O)'$'H9;gk;"5Ko4*5!&t!ݳ%G- SzQN0a> }|4jȰ;KTdG誙Iӣ330NuO8(y3<>= aĪf0D' LzL;bE9 a+hlK7?pRFW|z~>n'H~2G ‹g>nOK;_pXmudڈ+ rFڥyZnA0n#>lrņ~_*#Nڕ}*YRoW.wQ|pO~oan0+ ,v\[6fj961׊?'LV[' !k tG xNy'RsRUMvDi{I-ޏ UyGX{U:;(^ϐc=s\ͅߤ) w8<ʥ#TYӃv{7b*Cdudew~y.;)#Y R~'Bcj>p3I] Ka*1:%-糯p!ck*틻h(>iH^}3t&䘓[As ~A]=I/P as#/ڤTa1k\dƄF;6=,ډV_~p\eL'ad̕윘QoU8%N vҢ >EH$} ZK4e{c3Be~*c.[}vpE#NK\uegH9k*`EÍ@125p8ݴGi@kVx/eS?Mabe^Kk/XgAWCљ|ovYCA\Xd:@TdJm`!Dί!"VA׵8*WXTa5gRz b/ѲA }Vdz}ةF-k2γu)pOfN@߮TL(9N_rk{T=-<-}լwN Z6T|8mCP+XC>,KBcF9,ܥ#((- =k}4VX5ćKKH'#πY:M94( И ]S~t*:7 [F.$Eh:f޻??˛%B̫0 OѮ{?4K4kh o¹q(C( ò 6C;ۤ_)_ғʌupn=K1M_Wv}yVX &c3 b,f_0ul@d_*mCӳ5"Bs€ַyx7F[rfEA3(^12ls8B~m>БxlRs"csӂoy?|CF<'qrp .oIO&['q~.CTw 3eд/h(2$F?fTw=sY:P#;Y'FReFlE3]59%If=GBvsQҍ (1ޔ8ӋYLH7z1Ŋb *_&ŲR5jaц<%x@~?2!^MTw2qHӎ M6wAL(6K>n=l8T\ 1O"Ѵ|PHR,jHF5S Ra&ձ [L$9LLnP;ٳ+MwPQ7L C)\Pi іz\ʣa`ܣąu+봨ke}jh$D;h~eW33bg%{M /$Ein,%4 Rcgr/F_Ze+7p9X&㋒bH)ꥐb1eu `ɔ͙.li/VOr1?2Kxj̱oIB\I*G#Z*to{-ȕ%0 \jX}{g$/tÍG[c(vdQ넳!}Ž6AvA$w/%Hm04oDg(j⸿)P#-*UE"1MEJ0j5wjL WBqLcu-:>&|a{'7ySw 3hu 7pD{k?*I ma9 X0S'0{c,5 uxcx錾(~65V&Wq/hMIqaLEf4*fK#]V̐OV#o0ӡ jg܉?<$rpsGlQ$͞-ެٽW3i_x_AN 7sC&о܏'f*j7 ^<݇R: d, {*Ec{mկQ}/נq:\ /$ib9F#~^?;@p+ WW_GВ PO&;(l yY7v&R)Dwѽ! E 0H#򌢡|ΰbBҨO-~2 er d@B}ik'OF/n tV5H ڣ%%X@|Gi:RinO oldg꽹{B-mKb/DE4RI8"WDeoz8C=ɘAݔ_[^+p9 yt4")gޣej0MlW=5 j uƧ$@gF-P=wLH_Kk Brm8LD7f#9To*_%TI,\zw./,Pv\\񌎵2I#_ok i,kjx܌D:b¼8H||Nsp)q~84^d<QnWO w`j8:_V9d AsUD*aƌN*AT8mb' jH562elmg*<=W9 hĥLIE/mS֪:rcJ5Gl>5yOq ٟrٔ4r ͂@AQ7X+\Z|y$-++o5 % 2]t2EԢТdq6Yۡ}$a'mzʎKXtp,~[=VTϧ? 9!{م&]'7Tg5:V.EN [H,.jBhQowy{/>On{H L  3y3--X}3T> *0iAbkOa{2M8!_\y$lÌ LlFDQзFUL%:,+4_oCeW!5rJQ tlM [;qV  KԯXv^g-Q'D6uօc3^tS2V. q50P .-S!vҤF Q9o|f52;zRrr [1?ȤxȂH, endstream endobj 596 0 obj << /Length1 2654 /Length2 17490 /Length3 0 /Length 19007 /Filter /FlateDecode >> stream xڌvuTZ.R9 ݝҝ!9t3tww#)]RݍtHJs~G?fu)ɔ>2 %lAL,|Qr,v&6$JJU 57Rdag#vgk+;?v|1C <@D)jghaf{cZ+//7a-@d{46|3{sȞՕƉLj2.@_i m&DŽD P5pj @[' (-P#,?2k?[ `ja (J1@ C[ .ֆF`7H+ 9'C'cG {_Y2e\hq[Q;- ,ʻ3b+[;W[TLl-b~̀ ' @؜/'yx{L-L$O'C `ba ,l~[`8ZtXC `?=ZRZb&/[D `dcgprxmH?*mkj'^p'f ߶ w]NcIo $ m,#agxKaE5l<sA56#/?d ' 71Y[,:j,,5c+qοY@*Wq[c;v `h*6NN'+x9Mn3V39"Z.N_Y70F<f߈,/f0KFf߈ ,#w]7{E<`J؃o70F`j؟o/#l_:+ ktApm8 @Sd٠Y![A%/)d/6Oٿ!rE_l/dfbgmm8Y_N;8 UZa/>"f-fݱ?E\1sw{s`M? Cm׎kG*oۜ`[w8`ebSFP`_@G](4 ߭ /ffrpM +GQY%m/t`q'SplNֆN;P 2wlp W?6,߯'c;? n\`?lw`K@"s\}WCt#-/Y2Mrݾ:r E[C0A(Yr$g) ~с #v`| %NpT^'K/A|^jΑ9Yŭ8;l_;CE8B*DZ^R>|psÝb,2]M2MVu`/ D4"*b{0 ("hײt; GnesOR8hE={W9 4KDSW"s1e'~\R493]3c`r"IS.iDLI 6߾ZIpoGzOm" ʨW`aźg d u μh2Fe|%TuxY[ ݒv f\vWqf/8n%qd iH@֛Z<'yVuc[5nJAzjwC Ѹ~A6NDڿ1NMeK`~c01ɢIX2qqNj:;dD5y$N%F&5ѰbR?닥|PƼp/]M&c3ۇjWPvsM g+W92hG7W52 %`Η iSHQ+D("Vɛx|tVRиPw:G%%"~MaH ?'|=6ø~0~T0[%mrGg1565DA\>jO>e0`},K/_Difm g z2jY<. mR"uD,jT Z]?KugrG\eS6X3v7stŒS{FF4 .X)L5VOJ:.JjUUĶ@>u?/nO]cT8i7@A]r G_ yC-o8 Ye[4'9cފ{]ުQ̒, [TU9fhǹ_8Ĩj N8cց{EerCsVӗL% OO-۴_P%*; eAn5\񲘭 ʋ>_jt*vLI e8KJcㅲ޾fǴGf^i?]xgfV̕ y҆C#^5%qop*xW6^9}axOaq _>jBC(%O4] ʌ8z-}Sitޙ|! v"8A#9aB9zܤ {5:s &ftKfsbdgNF֓# 4kFjsfP}z6*3Mک!] ΥUѸC.2ff#;2Gą'{tiLBg+uEv~xNR]y1@HvnőZt+;PCIc`L*d̈́;6Kj+Y|6g1&1*}>xE`ᨛ!k'}]j®V5¸I8 xI7+eJFe*l7'Y-Yyk:!x*l f5AȩBflHPi,f{#%o.Mf+E8“f'ZWS{ebMwNFL뒤mZG\jп:S0 OeU~{yGo]%J^7(q8d:)3Y@? ґD=Yx,-2E"nAdM`l0S7s7U|$@Z='5(V!ExB_ dX$B(bGchiNo}^OxZ܃+`+f*ahM< t-ߟ(4}Եi7B9׳ ZHGÐEa2ssa -f84 S}&ǎjCH0+pGڐy^sƹ`",ltSx1܍Jr_=fPFP^@AOn{It:D-S}wZb`\ ZHA2#< zxW+X_Dž5)JIiڗK< QM:[MGS/؆;6(/Eu3.,z e|;Cgj eWP1 UwX2]n2;Rpm.> / {T|M虧]@ AbUsAU;gf,n\Z? فD}!$ D:E؈l\k-Ir PZQLl&[%iHp+O:*/Mn Wu:_p xҾn  1L'~?/aoP]fFޫ5XLcs=JS+Xe^W0_q~Fp ?!]YFzOY.^j_m<*vQIi٪|zqfǽhs*z&a ʣ`b}'SN*T"n8M+^I:,= !X= >7Dk}}ü&x.;"Sg򈧮ϹGQFZlCԋDzB[(;+ak hGyN#@66hf1Q:FA)! fݚ`ok5b`Ƭ@; 3Lޖ@[o"_S!>7wO3Ddb*vz}8Ȉ{AƔ#A*%˧GHf^5) %._ֶhUC7-VNy2܅~"]^B:tn^?π-=u7qk7qҒUDFEtܜfe%н&Le|"I 39 J4-*Xc/EWP|՜99̳T“6?KC.heh1i.,-P=//RQBeV1HHxbFiPc^+:⢹7+^#$gYKDA5c(y! DBTV$1<+rEL5fn&gwxJU('DCj7% kpm9l"Py\ 2ƃx F7gw\&8$B؛ ҵ+D,$Vfw"vϦ{BTwrzUJz co,m(/[ &rDXDIG_j۪;f̗a`sP ((S4q9Sؿ$N^w؋[0b7X8v:D!;:n^U*_uYleu)if̹)x;^|lG0`*8'aUA'c3ba"ܝ(UUpPVm]75Y\%hMobvMX>[&\ fi6ZbxzL>?%n<0☾qbUՋd:-x[("4CN`}p%GV7]N=&sdzB]% @>io܏ iPcڛH< P fFP.QDU\NAC+2T%J؆KqsC-Q8NܓVl)b|!wQ &N:YqKU>XK29rMiH+HYSy8{WJ&1OXnoooQ$6YcoׂBY]I5N l\PDZm%5 3?*)uQSjr響@㪤Kbn'p@8j|X~J&#+ٕ˦-!5bGZB~Ɩa"SB4Y E@SqG Ky>T _3OFQeٕs]ʽ\P^Oo8< F AIHwnX,)PNNڊR41]r$ZGy2Oդ(/3HټlR}Jnetl ZUǜEgYx 6)s# -h{bWX>nǼ{ w@:WgnjNcֽ2y( j%[D}yDRB2U!P 7B73EDb X`}qZsݖ$s""r7扑oٴ,zF&MFa)KLbs(/)ѦI3 j} c.ƒaƒ XNzTz2I/SX~6?p;?Nf- Ǥ> W{%?[r''܇ć.8Bo\M&JVVdlY )[djܳe2i 9:njC>O4K ō+CS{9;Sm lkCF[-.ݮ6dJpAv Nh/v$qq?jJ_A~v sW\ʗC@E6Y{mFc|j?saIw꼋W/zHC\ 3u"M(ܪgՋ&^`]/䋵qih#)y؊M'h 8.c(OM+fQiI@nG!R3']k6u ÎK]ۥc GmSiଭt4bQr4⴩fMFIoWCL!9d'p99ttkXW[u갉2>@!wZ+{? >@M^9꧎<V-=N*<is **^dTKi^3*ٌb{΋bJ*إV6ϋ+$gl?GLh(ފB5`I<7r4-mVYA|V3$!%1.aK:@m1^J( .\zڭu>%[m)r4c:$[{:QJx-uu3nۡfj224x">a^ɥDDJYPK[WOpRBv.ZSy6q8haF} RLpL伏~զxZPK"t#[ҍS@.bS+0xdW4tCxfMz.whB+fr3yHS([!bC<"[څ'"=q.ẗ>Dɞ 8# j5ljQZAo(BtoYp$1><]?rh 27*u{)aja3,=Nӌ%4B+k5>ێrRَl0B'Qڪ 1bTNljŸҙ0Fu!>R oL'us3}:(Xwk.("#2EٟA.ԌkMN ڂs6qiPd URbhf31^׵%򃐨cѽWn;$@OjP/~׻j KiςuƢkA 7;}*:"\A{ca/uqXk}ʭ37_,5qө)T) Ѽ)c0?<wO#[&Gy#w`[3g9*ḋ7*ۖD?cb?MF%'slˎ6]m9f^5WEYT3Ma({ʗv/U_դ(]yP-JAJnV6jX_2Euu' 8fx*mF'ȵ"1nUItV &A#YSY>}" 4%{%޶fyYV7?sɑIM2~Qr5s, r)7WpR )|:(q efb1+Ϻl4NO֙#/*_dݦ%l5x\>9Y>R#?.tyl%ʼn#969 ]%E9,!xb=HNKNpI~' ɺAṚ̨)o >P[}›a^~Fy:y `.hԝ%CxIqĚ}*#hL3t?4HvfK3=Y<7|[’$AiSb!ԅq<b %ϟLV͍JeQaUհ6B°3QJխ7yl ^z&aB/G14ک3;aT. OR^xKsT^I|?2;rvOݛLu:-4$)/YS 2 y< 1E20$L 2bT|j2> Ӓ}ʚ5Bmh *gKPVW&O{Y.9`91d?od 84vo;v MŋćWݮab}USA? q.vG-%-m&CSsW&Bz*ot:` n:ͨ4UeE\'3t:=]=Ng\2M HDOgZZBLF%7;T.aiKxG6|;3$uҏ>Ck[R^!c‰[uYg'Z 6j?y"r pa lkDg-OrlU8sĜl7ꚳCf^Zx)Oac"  ~YL!d[ 1d-Z|]*ϰ7XTk=՚/kc&aw}Bi{v F4'LsCYGB\y%WBRcb醭B|.=^[ez7"JR2o`2{1⸺bv2.)X gxͣMiƙ 9L6ۑ v*S5*{ڸ c0)\&tgCne}5DNn$ ˶:NWoj|8f8x񞛄5 _};MFE6W> =NKp6Uk,z(8lRoGxg@G6Fjf۫/`jXWNJWodߑ*u{>&aj7ѿq7*,0sMgF"1^? #=lI͝Mr)ܤ* #&STTދ uwz5>1u^e0-5r.$KmҮǙG.ەlo, <3fHώvnI=}Vݤڨ Hq?w 5tҸ#:ŻrC < C;^Չ2m;m(Of N F~'ZVmz9HІaQ6j?Ȕh{O27ռPtv?C}oCݧ(y |ִnXF涵 c.\Ҵ Ҫ$SH8Z7vVeՑ5XŽMbY`6/-7OT1#{tiߚN܊;{`-l- n|)j19?ʯQ`GVݦ?=_Rk;b#(m^~6V'uw˭o6jT%S|֔)ڢ.F`2K"BC~8:m(!foS;N%XMhK%]߫Z.I3,\Xx[NL&(_:kBhCAёu6䓰}&rw eGn\8w%3tAƭ7~#If%:|c|?2 0w׵& thdh<%CbUc! J'V` (uOR04c0?_0/ JSQbںe5/pÄQzNMBCƄ'wʛ(N(E᥵qG @w) _%oD^>][um~-0;\9xt&\q285]bZa6 ]/hg0HK@=(X*w9l ¥k&e<⦋]c#u{P\ױNT~R`ꐖcR!Q'`}yWP,󼠻no'zV˴yLĻsx>=y0U!r0ZAG~W-[Qvn]ɺLz7p~EvJ{t:eT^&GLQrw[ۖBbճ-ۇ|w_n|i|~}M|v蜱+w7_{w H+8OƊҡou0qAܐ^ie2CʠqsS\DFtI O^amZ8ylK "GF8S+n c6ye]Yԅn1ټrH wr%Ӫ#pٯ5z(w;Op2?( FcM9Na +f]˃{9ӥ.Z;ZΕ!%J 1L\MZ4E߻;͗'gPzG~/;=UءUc9iE=qvHJʥ*l*Ĝ&ʅTSsC)'5dz_.y!2JSOڛqI03rOm7+&ΉW &t.+~nAF:k}\C ڗF®]ojhӫ:ES36s)4gA=}B3PLbC 'HFHaL?LY\mP6FG_dLzs('ifڭ SG7i96@HǾ6oY!y]L\ &H&iJݨonW!B"_D r.K[K'z?;w yS<4x`&f xn/pH9{ C ZMwuHz%-yvd EtZupbY \/{_M{91əR93g<:Oc/Wl$_}%@ۮS&Ou |nd3|^^r=~[mr'YVyid^'\}/;i%4s`4 QkŶ,>Ah8FiUR-^}{9} kySһ'SPGQ_bnZ]@TzcVy%ypUEɋ)Ǵ,^*6PJ:}lz.PQ Z0hC}q13egT}B"N2^\ILEo):%# D%ToKIGiPg\nڔ0[,cotS4k "G8$HsjE/n ~@p@mэ #hY=UBieXf!'Jz҃"o覞)t@ٽWץ=@BHᕂ P?9[s4`3 b M1:jd+623.Rxʸx)>{~x\J`[;DˈpWQ| SpXrR]qj~!ЧZ5)SwZvNf)O$Zxz5U)Rpk.hc\mWMrE/q}?2nF $_1rkEfdR1}r`@8gx*" gV}JB cT4_z Xp^ ٮa0ejrL41sdjH~\6VsJ_,/8N=)2wAUB"\϶1#iv,Gٛ/a(ݔr +ÓR̍ 欞qSԜLY`ʡe}ydž-'ƺ' &uɩ$&}ߠ 7Sȸ71@=B/о<.OseˉMF'8O$hѠs?;e/8whHu{@(B؈; Ϋ,x# N= _4鹊R;ʋ$^35zS˺#]֟>luyHm-V3GvpK,bƀKEm5#!qԺ &^T)Jj O1U=r#LX."*Vh̤b䗇[~&ŘHv2 *6:W~J^Ӱ >?MWUK03.t;d:`!pZK6nvU 0#`8RC-V#]c襪3Wh%7T\sb&|}X5XnTjELޢal͎GM L;7oO@rE^^S! SRzݜU"B}=Aj}~:πP=M U\oD3.5F.2U7nN,jg"ayj~nGBizPHgVN^[iĬjLւlje =2K_VA!!jNv2?i3V *l8B*hԿ$҉p%=_,tN7Ϳז[Ha7)TyFC)]=MO޴$z<Uu j:*q](Dol,#~n_!+ ʻگ8?~S's̠M1^:<q#rT5nĤ'"QWҴ`;{ :7b`>ۖ>\=||H Թ[<P/dm*9,O WY׏{ҳ%|-?P9v(ǻ9\jtK #,SZ[=:|C$$ՖSB.>7zɻ2EwwRA4!W:)Wl꾿yP /F }Int}p;" :ۇ!}ũyQ6h"2 P 2R6.[4-ͤBp IQT5n ڴg?V1}=&'=ڈګ`М72f&%+A4d:: uiI}$wy"W,%]҃aUp]Nqi%O ]jK!m m&!ɿ毿a){%W&*|"}r@NaIEZ(4E-TV29;wHFΔL/I9Ú!tӂT5l%UJkksW/{F#{d_:(IkEbj.@%I냈.mqbuq#I$b&^v O} 1PgILvL@0j^$ɒkcl3w>H@;Oa8ѫ<V R*e;t&Eñ='y:[ؾlSJ" ϤHnu_G,z8`>iR3|vWA>%$OǕ%e.J͙`jǥUeDTR ~ %s8L۴6J>~P-Mo`7!rh2}]{]ҾyJtSyhbXmQBCّ]MN{D v<н~`u ۜq&qx^lQr oPP=trm>3BI[IԉQX5+_8|?2F+A0HP#^s"Gp6sd} zKQ<0i;۱gA^٩lx< "݌ 0W(+6 ͝Vᦀ_hg6tXoaϺ"0 @x` ,%)mnro }.f.TeN:4H#<ĕQ'zzV QAWtnC b%~EĘ Q֍Vtȥe`H(O >\"wPnǺg,[3&mI6uH c۷ xиWȐ&"D}D݈AE>F4oZ̫^bduHh~٨'D}[n*\c&*A^/ђX:)p/y&Rv(& `ۃJQWa<~}&FŪeŭ= R1)ٝQ*"e*"7(b ),+Yތҕ?!jҗϡ=0~dN´Xӓ/ T9I7n^|Dx~E޿Clf5h :d/l[L>(>I1Lu8F CtWVO,x;ĸcl (?GU B6/ʩ k=d9łgVYrTa])}*RKDp{Cetx@k` &F>ŭ9\~G\t 淋ZnPU#[w۸p]J) ;mDM96@ 2u-ĎV%3vFש2h!{/NDQ Ey ں!_+rFT 7J bWe$;x,툼4cMT+BaMnh Q= ]BH*8į34{&WIj4Kmsˇ8/s͗9Lm#ٟZЯyU0D66GuH? },tt.WR~JmxXUc]Q>R>)Oy&/g N]bWc!-\OobQ q̂n/} "eԂe}]dH}c4:WFo~phnr~<3)sJ,"ĒztZVoW3 a6 ]^\UiemM^aa ߛ! 4bGk@vzm]~EksL@wgťz ^J7Uf)X y}< P$ƇL #ؒ1?ZF:p۬vjH U7[60o%q}X…J<b|!=~B}ujڒaLE_Tx v<`[ {? =R$kDMS<(/ MmX_t4\Tlq8jp+v}Vkm|@( endstream endobj 598 0 obj << /Length1 1500 /Length2 7121 /Length3 0 /Length 8117 /Filter /FlateDecode >> stream xڍw4]׶"J[^C`hѢ%5DI%N{$O{5k\\^khԵ8$98 UA `10hCX  ɀD8 PtuynnA"]D P0AEޮ#lp .$!.PK0 P#m!+Z-%W f1[$Iݝ؈P- A@\ V/ɀ*4N,@#F] mj !nK\aVvu@KAPs +A`<vVj.[Z0O(:@59eNì~m= u[~o Ij[CX@NF_mnYf% wt_@,oݓ˵a^!k( +W'. '6OA 8K[_ h{:A~'o5x9[5 vHW&+%@aXt C@@>?: s$u4wRJ xqp< @XX|F sQڱ۟`s>XR0sc?%?w$;Ƀ2n늼(crU VPW* q 9J/u~MQ#-7_񲴿} nM;/) [3~z⾝G+o\08X]~ݩ 7W$px./7eAB߈t ?x70KWm[/b51  +?/pXŘ[h1hG2ey*Ky6,enULڝ>^20M{aܜ? Dm_8jPYm×jP1^ 𮕬h@ o@)>M2J2a 5€~?(U[Aj4L>s(:LgZG{"[RGdi2_%#MSF0JJ duh=HOt~gK[U5B"p9'7x:=|TL Z/#:xf Qs@k!h+%0dcgz{ =ZnI! ؔCExR8_ZoMq]Xlx QzZJt ά=8 H,Dzfal1='JY˪/OL.^D[xUvm<5[zM0l:gtf4m 0\~viDIJQPVp0 =:ŧԛ>x J@hi%.ō0bfvx[q&%GV9f>K a>N, lQnw<}̚5-/u4];j( 0-w N_;&~zs `KwΞ, }Z&cbƨ]\dۅS8^E`qom-7^ԗKl DVF4>0WzQJavw޳ӲwD fkO 8@mJqCw@.㹻I}&goI0Ð"ģ!,x*@.ӚlRB&kW-cǔ qLѸ\e;S▇ "Ɍ;ǪZA$/+3&d )_8~xM{*do|BBsOf>ԢL/CEWkfzIo@g_z[#|hG^Md$s3 0srڔ掿7ՑJڤڻ ?&y *:})ВUk rl@GrI+Ow2"-n+ZvDOU1sb֑y\ D_uǬV1/Yd Ԁ}vzxgQ VA,Cݺ7pC%wNy8\BBjjoD$*Yu$VGpv{bԦm:j^ wh qi'7$e5?,uz`!~?)Lt,lS\m(!ijsQ#Wb #\asĝS*q?)bjj%NLpt$ M&ݲ"HJ~W#7jW&Mʰj,$I[>eG$/T,vȗJg$Jm{٣ctEKB^:;yq$%C]mgn.1BѻF1-[~oY5w笌,HGE ( e ~,o/;14[-;䕢rXoENH~L[9[ Pj^-]I Ne(1qdqv%4obuhOEF?/?xO:`ٮOG˼]J>HAqB.gb8>v7h Su: @aI)e2{Cg7o*LUgV<xT7SJX+~z}W:wJ=E?)Ŗ tUj@@|rTʊ/Z4ι"_LW]KߦW :|RdZ -ާaVЅҞۦ6 #gD_Є! Iq: { TUJCX}IԖ1!Kc.fb[;Ѵrf ^Ν n;O2m[lKQDuw&SIj&+|nO7.YxʁóNw^Gq ңe+p{3[S,l,Is۔ ) z&kݗ>Zm15(75}k$W䈦gim}8W&aw+ /tSW \Ǘ5$:a܈bao{*'*һMhLҨ鱒:5\榴p nڈF%#$w[*P4C~8>pl^tYӎ=oݩ\ӭ/Ll!F͎xp>\Y_:KmxËuPe bݠMI񝲫PG! 'x] &>N=W0܏8;ET8f:o*J|ş[m|~nވcdxjHE5ܻ*M!e/%o}-(Ql BF$&werjH{NJ&7Ⱦ(QEpϦq:|ZI;'yvRP{iA>'?iC@N[ӪP皠Qtdw4+ X3`f2 ̋T ׃#P`%KV\JfDkK85gV٦",CsnԎ8urvĮ AxWlHZ*VXC]xɒ|3Ooml3OЯ$C5RyIzNYyE[l  Չ1|Gtlyۡ}oMj[{`9AudĎIXY)f2N'#,] C>c@"v#VݩjS Wb{DJޝ4cRf=C26޺e$JeЧ+|OȬIKqqS  K`u*Y3WBC[GS\pgu8%'w]7;n;Nc<)/ɭ}5 MC&&yIBegy ݎs5.F /- ίnȻ`+],e :?[" `"Su~d+&˚R9 NSTdn|Yiqs)5VjWpK} .#zD22~M2Eq/W1eڪ&G'$~W2,ttCejj~n\0V\ƥ;vQ1T1 r@c; j{Btm޻T#LʊJX)@ 1 9ъkXcfES!ʚ hBs~ubIfs텧lbmTwDĀ_>D?~^Oz|TZ Aڃ'z.k _ _a6`&ZYdL;/7閣($cvVZ\=28N5"u:g岲;E**7yx2 %NQcT,JV~h*lTPǤiMim n {޲ Bs( l\giKmg6I1qx*Y>a@^Y){HxDjz/XcGL;1Ytpo㝉5473BvOY@ih{̩AI~@5 IO{\_ě"azB5HBmxJ II"/\ZDSϘ'-C4[4JMT/~M7'?޼XGTVLsJXx_D ŹTR(GR%voaP€/Ö#슃D/)~t*:" r?J$$J6Omz>%%={Ehk7{}'۳}|[zoiݘ >6l_4V`|lJ ;z@oAGlWw7[oC*;ߵ8PP~ێb,p`g ("_aJ4 b|│Iq\v9hުCwLD}VjoԖ*s*Œbgvux)1ϫBse]ݫW`*&FN =|dЭ@B-e!dW脋YٞAuB62}>sAd ZX5}AQZ[{`Rd1`;\cq &=n?V<_鿈(SH3km9iG[hM$vtc$~%J LָsKd#xjDЁhWk u+=d+ 븎6e:wC&n$(x/ۊHb>ZvZNwHo< *E53X>_9YѦGU˞Q3H7&|%,Z|k':/82X3s񩏅[{J1aߖM*rǶ븊A<8 ytN,O~%IT JVw%H/&Б.i~u.t#cSQ5'֥;(TE_}=]]*ÊP ^:cu F46wx\3kGd85ċ;s :6p:Ui&./rZHAx3{U篮r?ux(L!A/)=n|&;NΟ!Nmq+%0I5E T^FU֨>X8넞DijᄌЕʢ}K*]SAκ!CfZ6vrNLYFq$I|sޡ5z+n#-v{њ8e_a*95q?` j ?7mPh~a6ڼ?LLY[ O D%׈~fކ8cJ\TpR<\kQge#][NOQXK'VmO+%*2) ]v6E*?d{;<b*Zsi.@6rTq^i}ЙȇƂ;D-bJ_n`>vJ腁b󜥬mYj3LCCa&fX~o%dxˡI$ jEP-$}t,ϡVy&ET^yRXjtj^xBw03> !I*X#/Zj]>.ŭd܄UUz#s8:wAB<j> stream xڍTuXIHO$6fñ9BZA;iDDAIIAJnз~dz纮>χ!=Bbx| 0 @66#8'`3(`0ʧ\AQHE$ P BK p{6PQ>h_@N(,..;(Cá$Pq\uB@C*qqCex^pC{쁿@\`/`90^4 x@0U^ku]a?Zxܟٿ !P(#p Ň!H_@u+!@y} j?7tw>w8ז\2^CbSaЫ"Q^H?ik{W~c$'A Hs¼N~W{c]Q@U`p1h??`0`p$Wn po芄` 7+٣/_GP[S+(X^Q0W@Łb +ANHPNꯡ=dB0 ? WS/ Ϥ@Fp_ '+=hTo)+S@T!tD}pw7^:A?ƿ$#az(w  WJgЇW+fdH(E4+K_ @~>$ sZB~ݪ P4Jf/_oM`0(`r u m<]"N=~ ;Ph}өjCp iE#4R;gQ(h]g0~6B '@&kn;~ў7\/CyM3U֨2oLn ]_:e8R5LG`9c%1?¿ѵ '8S9u}6YwWqׄi쁵RT?mO?c5~;3Y ,Ÿ/+t<-yT(ÇibK xWŚe-lx٢ mequpu}  t};dZ[0Nm۵RзqNO^2PJmJԧޯק{3];l{-<$aO@g6jz.YA Pbە!]hWW.D`Se "&B-Y7 ˬ:|,?~[bqA'ld yi;BnV<1bmp XDg_4X\?)xTM@!&>S U2TKx.'n*.jDHUT1=yzm][־_c=.4$y 'RUHjNܙJY&-P@!i4AA'=paVhzJ˔xWTtF6wrl|#qLhnRٜ躰Iyq -Y[\ ! u%dz˽] "b̧^MӸ K!Htqgw3%K3L@zSYPMB^DsGpLYC:4#DeJE%KOTq 7:wx^2]|$މLrqzn YqB έ7Rig.\cP]Hb(נW45{>Ln!;N yl9'˺5řL &1XgWqc3,xgO !3[NE bDOiaƤ)~r~+v{zkLNfJ%vBSu%u0chd \`vPr}')~֑e6L袂 WF#eu|`'"xtzPp"3lTd^v }tb{b_cۖ/gэ!~hT@zo>TWQ8uC2%TlEI^R<6咎–?.] L,ܓ,~deGS2Ikg Na׈u"oHỌ83ZX9Ckn'~ `,g0#&Y9st{ŪDQBvLekxn>V3]8樃iZ}s 9mK3hSSӍ'n܏RoP<>4۽gE=kQb+cCv >IOJZje Сsqo Y4=H_.`[FkE|י8\\1@tay`۹{!hR-8oZa|ǣ:Qw܊:XL+&yG͵R3l ^[+7ޝKMV,# *ួqv: س-o&:;߯s UW6ͦ\hfH/]D&-zmώ(r$qiKC$.tX+_M^ɅvE}⭜V3kvb̺.6d$9f;wFo}EGfJ,?$xVZH./Մ."N$6h$܅68cM* ҁ.gmULZ -r8%M)=zk`cϾ=PLe]nMtVY-Uɭc6\V/V֝.fg9:y6F<_@CN)&CCiumr$~ lSA~ "b6[2N4#kMO~'eE:ӵlınu];bl( ^IJ\KgH^*;u菉Xxws/YG [a'3=Ƨ'_^y&u gH;1} "EaC/79m[23ueaxBZϨ/ܧnԕX[ :B-3 3h΍o)SOiE_^|(-\n3b_'>wMtĩpl\kLeS*z>!!"K5Mޢ2xDc̰y慯&'yOTW,/0uic^/W 4FA3+ft$o=Qj OҰ&\S;]Z w`ePYcWU {46CVUå.?T lLͨsrx;< I>z]Bw;41)l_sx($XmD aM1.g|asn'D|Ne›_S»0>Q{W&Oū԰x?GmI4w.8xP>?%. ?R&"(|SEFQkFejōGppk&2[Ѱq "Tjح 5rdҠ|> stream xڍTZ6 )=  30t7t#҈tKKHHH  (7z}k}ߚf<3!!y$چ|>>A>>2 ;߱t(l݊Ozo?H mg P? r)ІfTS_ vxUDM< hn~!>p AR_yB``= j@[ %&0j2 w5l"'kJJo1xy`p1XAA/ WP0?_o_ P /kvᢢ=!H  C)o\F{@ oA`^P7qG? xa`׹)Q|Oo'A㿪*17 k 0 '*S  -A.#;.ki}?Z]K2F|xଅCΡh|E\ -帯UO^JZMy`Cሻp Lq͌ 9L֧#kɚj:w%+K.- ]!D>k9b܊)eOǐ  W~OG>~|78)x\W#RMFM?2DMƢ |XH]Ͳa'ch=yHлIG1nXw=\xN:wf/8gL&AhA]JzV}ҭ4\ });8BK'9PO/DR2f2=u 5G\imeKDɇNTнZ|)2\:E:],/xi莒^"q=+L${#^͂. g2V Pi7z[}ؑJq-YyUO϶N c-qiC6l_uZ >}fr5}W#2U!hUSpA8cAVi gc>兤fvΡJ%)|Fv(x]X%31Rdcٱ o*HYk%y߃dmux5A%*b?z˟xtEûwM=hµ[bͅVN[HgNJ~ l ޫnS&al\7yHgv\ݚ8~%m# P*DJ (5d 'q8q?O{wa}Tc%&JMHYf ^Où1m*=-k[Q%cl3 gr(Fz׉ݗ)j &+7m#&%d[^lo}Cɴ:e.+ƪ)}Lb|<}%gA(aȀwy|~{ n󁩙%ɱ54=q٫%27i}݆=s(}deX!cdv aq4RmSX75uQAf͋;$( vjpX`:᝟ ;lxial@%NE8ڡ3Uף|Z5b/M7LJ"9֧۲\Bhj3Hn,׶ Xx!CoA'S䢣G"c{p9O/GQ-]Fi Յz?oR \{UEYF@w"OFK 4Jvΰw>U~4]s7-wk[4^A1 ݴ TnQ54EZboNFO' /sJf4OOٳΰ=9?,޵#Ki-WGj4onaX>\L Ό.[yDTi}ymK}ثl6|?"ƉB"o*?QTG=# LM\D>$= N*.OSn=y=r1qΉ^Sl9bT /#8.ȷn/JzU˶j2m5^%T4\ӑ֔ųv_*ckh6~_z]!?r}ӂ{>8;BDWk|M4[Nb^ֿ]oLkD@~ZzkEq4<+KK|\c_'BL3߄5TBIIOKdn]r5 }\(sRN>I>ӖsGQJo?"-y + NDZ)091RcyNRƃ˅Ӟv7>\֡`E7 ~q*5i޹$L( KP~4#ZRC߉a2 m%~[GwcM}O8myckt#  xK+l_7Cl9xJ?핂.cW߾<(2*G+=w,(rwRUC T}E#9qXa?ryb^A_ ӏ,SE(=R OqwQ*?[BzN;DaIc8GpIum uHp[ѢsDO<"I@>(Wɱfًd`q2&OȎ ;8W?kԑFҗ5J{xF RӲHKr@/7hM"ww<‚.J&䠾 am{+9]>G:ХJ@Dq8\4l?01sqW^rZQ AZ[<:03 u7^s望F An=#hG}`ٺ>nz`#q6$iֲg>5D‚%*NB7s˫H:=^O=\}2%ԈOS4yJ 9ÁӍ=,? >w4xBu{t[@Y3T:~o,jyK]v.'9\~u#՝Xqbmlr s @-r}:,n_Ș1uKR27QT۾|&6J5)wML)))PyE?E_KzPə"m* cu6&`ۅ^߱xZp%C>Pu)DLF_vAi?TZ2N=I9 w~Ke@IF/Azuq(~'mŮ>a k$;tկy%;Z9ɝƓR=Tʓtvgo4KJvcoXBD&(v^|cajtvMp=őpfp !i8Fth.iO~H|R}l}%aJ-IN|Ei.07̌,GoM]R8sًrzUDYͽ) oC=C2~5a]6ZyϺB(k@iӋZaz,zfovƯߗ 3zGg)*"<|2[X觜˚ӑ|Ԍ#USһa߼G5>T2\~ z &9*2Y|IR5h|WxΫA#F תNXcL1 ,8U+73w kW\eoEoctiby^<>5좚̂Hksňt沏g@hDӥfOd2_<`(+'q:GA6IwFG\WUYݰx\ݫov#8e)Y-"T?1x}jcW-0A?uZtB.Je% 1rS9U]t`]|ˇ5F9,p0z֎&٣;! *W_m/qusk4 AlԲ}o#;~)Lw/\g3 1Leb7e'l}m5^/>5!P@Ƒh7S"f0ۡRZ;/Y!# 2K?Pu}v}6;Y7VwAyo]8> N? 2~KeZ)݉s,woÒy.C^|g gu7\YxSx_/K"|ٿPUfqJC^Zvi>V5Q!eDM㏍F#^ ]f!!/ܺ޸T'֦siL>K1^j6[ߴyϳd!]m<PZ9Yގ(i˷G;\°Ut<5kOl;:!jZ0o^'Ӑ*%0Ϟ]4B1NuemX+'a|o0"HdX^?Wˢo}1>:. cr1FO#:Rյ\?ܵ`Yγ-.2 11Ve <"sG(X=èG<&һZpF[>܉5Qq\囃K'U T4Fe-5O F,eD {66j*!`ZȲN@-U >&k{(9޾ 7nai@=,&Z4{|m3&>Ϭ>liً׀-_KnԼz8p%6'+( @O4B ax/-|=s |[^3YZT2ېL),\h)^#rGӊb{:/K>>, p,ض69>~vG?OO_U4`qM)e=Ir9kU^vo"7AZ|7y#,M0~y--Th'=ǧ߲g4Y}3|kJ_>!obڥ_)̽_ZXV~ՏВLR]2N=5b\}_ o(b/!'Tzg{84\HuW(P[)B}z f| wſmf,Fe[_rQ;zA<ًAWΓ%.ZF^YX)~CĎ"z1ͧ!n`8qfI5HuDءu2Jv@>n:'^*l \,DY-ͱ6YJt'=.=9dIyd[$p%GZ_HzbFP֘1T0ˤYpuTkvQ-z5EQ7'즍 endstream endobj 604 0 obj << /Length1 1457 /Length2 6547 /Length3 0 /Length 7539 /Filter /FlateDecode >> stream xڍuT6-n! ) :#6FwH(!!P "!J(g<=;g'O\wF|-T G Ju%"vvcB(.P?]  K IH vD * B(2 w@c III *@00. g KvH{9n^' 4H(a wgv 7Bء=AH(8P8 @@@#M+Y/lBBI'g"W0 F0= м@B`A 3rPM4= sEQ0- L*pq(T`H(3voߛu#<v08gwW8hz~7v2 1"\v&0;(y@h;} !00h dPg0/ {B@ߙ[S -ݍ5MFpba'J-qgޫ{{DiwUWDPSh1 &S?jDaq(+$пrXtYJ5Fo<{z֨ƌh6;]лL!Բ N:_j XW ķ,ڙ~*קLJHpPWsa=$J5Tlc|VmŮ#jʈXyÇP㈪{muA YVD3amY:hKUB;zZ9^Y5y,8foq$J4bQϝ"vFsC r _gYgߑ>U_ܰ eHfN-#~V0] ̻m&;оS-K  NӢ^qJXF0D9] ᣉwiU tT}"$Oyf7T6n R]5zk~\˿a@.EsMײ0R1aw^,hX}ÐߪiT ˠPId1oOq!L$7lkAw[p,چOrE JڴO PX|37ݜɬ&՞?QtPk#=P jĪС$:,5&:eG x#sKUubk*m(nL4ui|cy*>,Ƴؾ%4^RXL#iV;;iy3|SaM$&kDa1q-8̿|aYxO146\"yhۀ|x NMDi,׆k}to n2굉̀: WTv2jxlzc2:G)NO/_A=oo2(sv Y2UetCꍷo|Xn7м7 3:iVg˜5̵''CعvwWaM;WJ꡽ ɚ)T c:ﹶvql.\{i-ϭђ&lQ 2E(?BQExTR}RQ([1P:jF- Q ,=@9{zfn5iqS@ PкMR(-/"]wfb>Ys]fĖүB S{q\ByJݦڸYΡ 4q/b_9z\+#4E\yl+#rzs7^xwrR>JfW%`\9? */5 ⤤Х52|1;bf:p,KZ]yӓ ҋ=7<aԷ{ 9бA0.7qghF):klRcM ^?+#T idKOɿSVJ2du RڻӸ+BF+wT׾8܈YY(AZr6Qv>I6+u Q]-K.a++ ww"o#b_%%ʬ6bi.f FF"K Ū_9Vyʭ+O*5ARQ,ix# <[kSY;Ʃy3ݴH|Iv;#նĚx<>rG4ړ2 -!Ϛq+P &-5NCエ?Xy1ΥWl0[7'w)0(m(U0GB8J\ ך0 7ZY=ز@=lqm3(q}EX@YWSQz=@®t{mۏ9:aйR\%67u4Ux%SђޠDž !ȟ/CbƧlwn}cB۬7OQw^Oa3.+N~#Pކb*Gz;V[-zx3O[DeTRJ Sjlގ{AX*i# ujXIτY@Mv&Q0sJh&C9ţxgp#ڍMMU'YuO(TT>ȿI/ԼM{dY41a>`#՘r|*q Ԓ)AUʒȏ 'Ӡ[U6ivo{&lEt #C,ϛ3DO(o?e_y+yx'bp[?hb IV>T H"VU5@8M vr /*^Z߬?Iu}"ƞjSk _ p|Ika) ЮdMy螹Fnrx}RbjnXNɄ,~LL c>V׽ޡiZT@MUfº{?D?rZc/إm8>MnvM)4C4d>r)擰t_EQ"w Huo"#O-9V[E$q9T{S[,m6(ħ$eX.sf$EMS$ э)葰cX}B) OXCv{ޫ󘰫c+M;[ |T/rHAGTC,yҷC˹=l|3=9ƽ6IP/$z'[GxԠ\ۭ}2|2j6rWW&}7To w?!*q#2zS O%b4zx/KAuh'odb.Jrq0g}S})g|0M[2=U7}F+Q_NWj/ERfr&EV_g~uYcLڭ/,\p4j-{Ŷ"F"ڧ wiI[$@TKBD}ЧObZ>pb*e9"☞|xնv?{]mL7%(z08aX>Yo=SJ}Ez\#1y6l_JXjv*Z '$9uPSu4x}=y|iN8Zs v .gN`ߞJ:re$:~?`ʎ p6HO`hFPG)J;~qRV#<3WE\P F˅G|ȁ|>d~M3|tϝwg ?ƒAiۑ?.r>VJ:+&} xR{_ dJ^e|>]xi̖ϬoLZ۾@%\ulk&O`wGPBzn_ K2d=XjFee7%}*5x8CzZ5RW,(X/(* L#4ے OI~@K12>) xmmEpĤ@g_ w{Ҟ7M!a3!&4/ÖnD%/vWiI k;q'LP{|k',><ױƮMv goag`WK)DOqgCe/d˗͛!?b̞hw*6DE%t>Cr (V̿f={f:A+VD|pWܖ*!a4 Ed rE6AȮ #jx 7:FlM;U3ɛ?OT`V2Onξ5a̮g2q [Ŗ" "Ї,ߚڷ"Ff˳GR d˪H+Aoϻ='*k ԒyN+{wEklv_3-(}DI%{nI#!Қq9CQ,ՕN^e2_6=g5~gp_vJn4=gJX lfǓo^l|CݷX6T%*|Aןgvn34haa T3:;$ $l J8qu Oєm P׷rNg$0yJ.ifdOS NBw2jg;G\߃F9??#> SСRd u/O$oϗu &P4IJ;6x,Ӳbͥgio顾jmK$mR߂Ӽeō]և\m't5Br«kU86=ݞSOeYuVN~Pv;fy4aIᵣپ~"A+W6QZqb^{/6XZĩJc<YIʼh!whBA &N5&a\V> stream xڌPҀ  k!8ݝe#{kfާWZ Ez!Sc3q{ =37@DNU GAj5B"fFP j `f0ffb01q jfe cH;؛Q88z:[YX?@eB `{9@ g4hbd Pq02z *^K Бݝ΅قn(9* odg(V.R8ݍ[+3{%f΀)Yee@߫rdeb#;G#{O+{ @A\ٛehdԍBJ ]#Ѕrb"vvf@r63wO2L]쭜\ͤDm!#0ؙ8Y8fN3Kƿz:dKQ# 3_+s8o#73%8ff `lfae_qVc0G:z1%h]ozVv= ; ~?Jٛ;>'eտ>: @uؙL>?Ku_^_f$jk_?z#;+[[|t+c >fjktL\V h1 BM/_]/_fkeob 󱊉>qhͿUf3qML6#gg#O v7TyF{Gsg3;Q/ѿ3QqE'QqKL](XR (>rC\G.#G.#>j#냌KL>:#?7/Ll??6$vvq4~a2,=-a!~?8GbW?#Q?|:~gḿ#)Ǐk6~vrudf(Q???s~TY>2~o4qu]1_~fff&ps&<ֵmB,lW70;bnJ"׬y B]3{h,M6XL6>Xmt>h|O.,{2چXʿo.wg3%x)++,ϡ?50 GEBpr" eW MtH\ &>o ,ҁZm!:d|Ɠ1LSqXXZ2>5CS.Iөt#荊*S&#AVtA YQ^dIx gc@|g\V9ɣόm[~3Ԝ>e;1_iDHg!ɒ:<}/.ɵo ^n zR&LjMfK,纠NYOlxԜXͼH~JV3j_;oBU<;ns@Jgmi_-ybݍU)e74Jq 0, We嬟K]AG }j]j@*sv֐C3]M*oE Fh:.93C*C4`$+_Gqp|J'ˤME>~8G%XmѾRM߈Cs7;\׾|&rҭua@v3f>ܬeEel zcNHYDޓ%= bAj-aiO޲"p)Tbw64r'N!8C'iyzd)-9,CYႄN e  | EdS'OhPaJaS^3͓7רn%?Av߂_dA#5L(ܖT6 P&ZnhHmS# %NY7DspUZe'BNLD dE@,2g~*+.ʙ\}*QRh9e7QEim7OcqδdR}S$O[,8dDQ{3LxѷU< _yx"&g}CY`꼃ڥÚ8&OJLZ_"PZR"d#b'!xxyq2)-R/Hi:]S\,fs5Ԟ,ת󛭓x0[0KB  ,e|'(V4.b\XϢC€qdnEv.FE=V(E[<'q@^ 'Di yZrĨv/=qLN広=qRjw_ὌJJVJklJܮ2)7"3~nws@@d::D@b]h\-γvYnmDHzP[\c!(%B]xWkrFSdkss))W9K>C۝c78)ы#|iyRqՠ[ȧ̊=dO<}*T 5Ĩ>kZY C&YK$uyB u)t[nIRӀ=@ſ3@ίFU)`܍ZZ/4Bܘxq O{PԬ݌/._1AͶGDP'jY s rٓUА@_iYF6':yyZҦ6Y~{10?l|2iDMMŢk}`@.9uԔwU%ΆC9).a݅UC 7yԩ0n^{W.qn`8dn>1SMSt=傇 HgF(*Rcqqe SI%˰q(f }'tWy%K.̱JE`ԋ,N*Q)SZsf~*8I[cSN[qmKkܽMкo}@6I0ԽWw3T&LKpę{8O#blc3Kcc"Zt2ssT`nCHR8 YyƈOQ04蹉FaHIȶg,fOA _;,_߃:Hj-> 8չ3drgS`td [Z)t^)^Q{U$I ٍu!/D#egm痗jtAP*x&D`滲>SaH {Btv\dc'2Di|2V'ׯX5ō?u8Lނ`j.@O (;8A\d zlY{&}c<;4Zy[dn;?֧H#ث,( 2{'?'2C>Rua_Bnɉ뭳`-q6.|nky`C>zu (/~SRzHAcfV#i<2-6SjG ,F }q//qV]mhkl|&ބkhQp֐[2D䢄~' ƻ+;q?84׋xT=LRY& S~(SH&KF̈VP ͯOr*SQ6e-e_G ,2 2Q3C 5*=|k$df>C c 35IPsJ`+x9řE ˺jB/ѐp4݌~j5:5ߖ:vd=O@|{$}NDo LII}J 7Y? {/Dqxf-)YpkK3=>upNU"bR߳t^u:Q>I.PD=~t[^)nF&4DŽ_{ŭA7_W`+b宒Kx^gW? izp@$|Y{'"kTqR~ @jY8C ?Ri:ZIyݗ-!i>U.;x? ehW|QОӿmk̥tC>!0HFӈ &NHG-8BoX A_34xGTd\%#&}6C3tL[{d%z!xܬ"DNvT4l'qt'$d0_Hq5xjt$NVChJ>e.g[wSzPؿ~t`(=U)cJ;Za*OZj-$Mpn57%0 Ap "W !|Cr.4ԓ&zr&/\ sյ Ds,oUHZAg4~jqvEv2c-\/F]$&^oV]KO }Gt0&h<.N $ZUz**T-vZYU@ekPoKu`W1VxrQdÊn'˱qǤll} r JŖRXuI  s\&;!Ѷ͛WY)e{Orj.EPpr^6O" DHguXB:PS!]q1|$ t={'dȰ28Ku-Kߦk9 l)H_սG9'Ls rٴ⨦B=)jJ< BJwP:ib W+ 9s"{(,31I9a*;o4}52mͲ_{V9ChO3#Q /#VDJ9w.r+W."AYb}L(Ĭ4d?%UN'd P[L=/7&t:Su0d͊ؑȲBM^qguW}-2S@5}r &؂x͖_SvG8;rA,',P=HǞ.݇SJ$MxT}F>@{ip("jư^e9:@1$B^$5ZvVLt g98P8T7 Zq9Tmq]#L@N\.mv;:q- h:Xޢ5iiϹk|C?1>oYK:1u 9\W3?=vԊ蹅pynk{V}ٳeRC!OP >*Dw26fPRUC]gIZ3HЅvu %c?^9'1(~vg Ŧ򱥈]cM'o\#򬃩JkpuIl6Kޅ21|tޱ_U{EZCS͕ao@~qrK4/oX֓ Z덶3/qTc09SȒ#-̲lb,Oc8qD!Ĵ䕯VdqA> rA9VXd7hRIzF+uq~FH8|)9U/$L9 AkQ)w]R,'62ZJoeVgkH[X]j'˷ca~=k ~\쩴6epj׼ V)׃^ ꎮG gݕ_CPc{3YbV_Ӝa܍E7xD;YI˟j4c!U)A3̸Ӑh$0R6Ym^i:A:R}s"*ב%J\ZCS/<8WǞGa(S64ˎPHлq{H"ij`?Wf4Vӗhȁs5o_#럢ki*iOڛ^"+hmҪ/sS=03pn2i֭8eo/$OTtv$+J} c.-ݣ$"T DHY[c*~rY-&@ ŁN\$?VY?%Menǜn_ÍEa|^, ŃDSpպfٚe<۩XĜ &rE ~r#P%3|_r}ᦴ*n9za\2Z/grWHܭ}{{lSD)"C0]Hiًaغ|tu<*̝>~(:M4u/T+Ni#/U;S?< @i/ۚJw Ꚕ?Aۉmrۻٰ(^H A. *썚f|1ü2S!Հ1g );3.jM5-_p> k[7"IƔEɹ=B]~`Eя?!ƶBR@>6 H\"E;K.MFDv8 4դ0]5%3P,y U|Tjl*j ]7_XJN3Q&^(0 %=F94TR{H&//_UKZϗS}T5 )T'PJ<*% \mҧMz<1v +ۥ/";'A^-WRwFBwcm[nuv/ÿ٭ngl+Slݿב} ”R8߰9STM-g5ɂ܋)<«2v$O娳RiKag6K_ĩ=K-L4FȲv{Y8C}^HOipڥjll{~AB達CSn4Ќ+ȫ W9P/$Z1/_r<^wֶP*OKǽ+ʈ݅r)ə(rU#}=%FbЮ0 <OsD+P3DWN EOb„ \,0Nρ\G?vتNn.®[L BH3#aI4 Zvѵ3.(ŻE)s$"`$.__ U1g$>gv5ÌBhI]o 5+DiMߒN]h8E@cp FU澭vq d;6tuWzYs[IeqCDc1 `9k-Bg:2"84' xOZ%^jEAtrK* be' FcHQgQ7Qа8ZxSirNt5(*aD)4r Z:hpskעPVgDr<"ߣ-4[Ont2d .#q^p CGdP 58;b6[79^Rjxx"uF3f`h.,X{^ȖyI]QD [.Z#$ʱ ڼb.@A>,4eZj2ߋp+cM50P"Ep*ص_$<2kaϋa.%`7a4A4=8٬$ÝmIHCSni4XRо㳫ycaHL V7Xt&h&sbn"po]:@>,벧KJT@PĤsJ3]Q/QY^䀞} c*}_)d-'Шw v-JYܗ~{Q-*-)zr3,ç0:9mPGb@cgZ$7t$ǡ97vwTUO0U}"H&Ȓ! G drgt[0 d] FǦo_f_[XUoj_P{XdAֿ֦ckݷm_DaC+cˬJ۞4VxtxfRC*)v_D;G<'>7n G56&RePQBB;( J"tsG},>ᷘTuh\ؚm&&$@î`CbzӞ;"8ddS2`o&c!} =\%~! uY(ӛ34yOKEh^A O``*:,s ll y,#BOږO4e?67ݥFH;2+GD%Rۚ#u_͓,2 R ~΅5RF Ã9Dh?S' uL ܣstgmOWmeQ-ÍΎ5&B V|5`|+Gf󔷩@T"t()I+[x?v5ĥ5 lD#ŮIO#^D5H K08[MMm8}}xˤ,]*SȖ Q^5PS>Un#8p!׋.ALƋw>|s= c@vPT7"]2/4XPGR b~쒦ޭi$ (/ZqzeZcdK՝Ắ+coɅ14&d&, Fd!G2HJoR s~}{[W3 Ukofn<y-^d'Pq.[*Y`yE[3U BhP̯r*r+C.[Oc$]<58YdNUъ_)*-_!ߐ? Ò10J}TVUOT#e#lo4 sq+Q] K蔙QpD@p@A\ڎZm6W edč*YM#LmbQ8+R> K;xWO-]:Q{#vl po\Ni91`Vz[b LI?,DSIճ$Pkrp5}?2I/qiWMX9~ˢ9mǔ[ڭ| `|4˘@DI"fZn{~8nd;| xBvE U8⥫ͷ^Ļ߹DvU0jQyBfJ2 LhKrvg TXD|l"gFE3Lr7to>@B*VOoQ =0P܄mL`jbX@} rΠmF_7T1ES0"jhF=}W%AI[>xڔaj NtŠS8 =|4'abھ8l|<Rݱu̪QcFx=uX y2/ySiRfp4A- T 5lU*8461- otPKDz1 ﻜ囫di!֔)0<4:Dshz!Dsr&E,{;J3o_+sQQuHAШaH>bm5+r>שR&^421 `zx\:ꀉeOlX {zavkiOzU݈1q j. AA,Hg0jfH6^8AȚ3ԔBGJQ{&,4gSd*_ۓ3|RqF*@~_xp[&k_ThI_ޱz;\aCWAs0OBCx CbvO$*1ӥ \Xi}ybi|9e"^.@j:ED`M7"^B8tRJLej|xVM8Wxa 5 W'h 3P΁E:QvNW"&T%VVio f7R7{{egl^ʬmq$:j s?:~;?n=hL߅W\zJ iw>B3Ux_mC-.01`_eOR*R${ỏwe|]/6Ip ?IظM} Q|ܴhCW*tHR1r> hV6Y u\92GÙwBx:;䐘VT/؈C~Knݠg5ذ6u(o.U8iT:СQQxZ1g*q͛A$2sr6rH"],HD}_t_#Mf?Z$ؚ6&5ĈuZ*Y_ qTX^[ -X r8 'Lf3{n.P u;ہsM {IOR5wY?wM _\U觝2/ZA`Үb n9q#Ttzz,U'f,]] BŞT`Rvn Il( YӪ6/^kM9bѾ|h8$>3XcoPf sOVDz[I`&>o֓T3%1x*:5ae_,ܰ+nmBkb ƧE^R IWOUg`%kZI-mKN Z8eq"3G6))G^a\M[a,)lM-K?Z 3#=;qiW4-p,WxSj @W b;N=;TEwCV$/|ɞcAw"F`/.; *ɍkĴ8`5E֧tz+99٤"PSsāAfM/Q65[oG1dp + f1HQ]VJ(XF9!uЫÍtrev;vRw"mN˜ mlC^W ߿rʁ7_^A@;x=O!<4 !'7G1gHm/@</ma/Y<ǚe)/`^nj{ˠħMWIJiVwU꣜3>G {G UoF}:W)>7ĴȓG+2F>Эܮ;: _)&FNFI>F*O<5"_Pnf:M)(OHN1m>"c\z﹬;%oYv@(, tH}rOE49U(rpv3[21V:¸NqlvWvUNQd>*cytAUUPr&)dF3'F=~MA8 Dʈ.mǩBYkl[h# &G8v4$ >,4RԑϑH&1JNhj 3?Gd!Pwpn9S z/P5{=(%\&q"b8\Ǐ^J >0Π~r{%osb6;RLd ;5WԊ(B?OQ&q9{#7Ұ1(7Ǖ8Q.ʨp~z2μ7E9#r'&*|3= vuN";~d5 - k?s;LbF5Hʐ0r0I@xJRtNئbN@Mm |6c? wIJcPU&!m0`:V+%06_|9fWP K(ZCnΓX\zuꞌyop`t(.U{dy eC;mǛi4!\?[JtvݨV[;;Ӈr e,jv<(0c )q|U(95MCRmI4"S #tjiѺvQ rq~Q?vIZv'&:_M&+Haz$x60fdw%8Dt3bO=WE2Pu}w)rNß 5:o8.%8DhtsFqq1%lL?)gje%)̺х&_U?B۞%|Μ+FU'"_ `Y;& % To;.T;)kj:rG 7y[VBExY@8..1ʗBU8z8s36dh.\ڻtŠ̀ĿnCE9L=>pui %VBb8-[; endstream endobj 608 0 obj << /Length1 2708 /Length2 19289 /Length3 0 /Length 20837 /Filter /FlateDecode >> stream xڌPX.ww =w NpI ܂;|^սEںsJRe5F3+#+ @LA]†@Inj Rb`3$7v*8dlV.>Vn> Vf&=R4V^^n"v@g+Sc{%`jtOKWWG>ff&c;&g AZ%@tv~ P4S%@o3Z]@.nf@g(;@MFXo?2_r665us4[JL c{_ƶ. cwc+[c_ԍ"*cPblbeF_a@m7sڻ 'n 4݋;x[ٛ*͑Y (# H[ftpN%^Ġ|2~V@cw `fe 0ZX#Ơ;[yX@ `'}І9z6k"ʢjjRT`dcgpsx~ll? ,78KHG~:s}3;J"@w^죻{?RҍGKy>:E#*3SVa| -h?H1 :(_Gsv/|#'Cy\zsI֒>pgz38XE/kkOzzX-+N~ 0W;<ݾEY>GӞ;j*%NP`R2P`e6sS~Kx_aVޢ qn:ܣamD z i±.VJFCwnܷ z;ra%#1ÊG34r Oo[ft?omI"Rƌa^4PWޟM 1V72N#coOTT\KGElJlѧo_,T3#ԦZ_Q㪊^Wl&-בN)~0PJ\/az, i}#TKZW5xL4IӊN݀Gܷii:OY4Qed&mxGsn_.̵_,}'&JUEV@e,Si-D =IᯜV}lL"X/)/V--𨤌Az*L>S]uļ[%Ig!`RLgF~sI^n+{p:n%c)V}h Iom~3܋`Eyc0ɕώj;|.| :i∲1QDڧOs~{e01$׈@!W n*AVU5BX ʠJx^hPbwy@8_)d8؋hTsz~X,Uj(GȲ]7+%Ȳ;tʍNѦ iRa2Q6sѲ%֕|إTQ 1`kP,]frL!Ƚx 2(]Pp+5Tେi)kăt3 iӥ/pX{2Xx7I7>-'RVIF{EP[|ERWl.@L!" 牏X.!_rT;9G87^ǭFILq9YUp.=Fuc)/0#jgHjaJeu2sdPB۴RD/}ela}`\PHBʳt`y ʹ{E=/nP .U@ w[$ԈkT<tIW >*LYIt Bie6!ӇI4"G+AUޞ >cY\5-aMmCUIb%I@}{ LygUɻ~?`{hW3,1pEo N)?lD3fQ[&.]C|Z"%nkoe/#yt6Z[1&'|Q;r\_)?%az6M.m06r[yÊ i*oc{ n>(LQ%z"9Oڦb%뮴5k;Z@IrYʹhڊ˞u s,ƣn֞g3rYyVl! !! ,Q/m-ӹ΍k,lcN8uj&m!GrJ=^/c 0_lGhX|=wƏ6e2y[PIf/k'ۋy ٜ (:]tm-\|oCiSe8@,_{JƼ dICՃ[U+(ʎD6$axz2=4n8~,1d[8])$ѵ|o'^nX K) #oYs6觴'nҤ6柉fYxHOG]il!L6-V WK>`RZN8RopVtq^r5N %;1( q5;TwIQ?Mfzj-y= UTאK̄Qb·²S]lw ˦nMԿ ${8[ga%Zj6S_MB78 LМ^F 177@$ 17KT'!3twTZ.7I ^`ȯS:`;T $wDӑ `2}+~liju-.خҳݺ ]O[۲5.3`IO);xśt(Ez?l|u񈠈 sܒ3Czd|6Z9-2oe:4ym3:][cq&1!<>Bvd[{r~f~YpN-Uб) ɺ<a80s}NsѤsfG9d3o/'K{J YfUJ )} 0r3x8=::#IdwB-ik~hm#?"vٟ7Cw_`)nV[p`hxDAnV;.c?e<Lu}{0)Ćgn?gIтF(=.QOI]jׅ${Ϗ6(QY(D?[#u A,jOŏ+z,Utv,'_bÇD}nn< by%G7F|$3!ʈy,>ȀS\K1*yId њ&.C^fro!ƴpM<4 &4Ƣ+PAy` 1w,af C6\o 'E.`'e+XHF̺_r8^%ӌMTFp)^ݖ·3'ؔÖJDCnV0b#ΨlpXnr.TI]kyEnc ~0?Za[L &;s&KָXۯ߽fg HKX)8Wd_geNXȳeyO2d CkͦtheX˒Zfa ~:n&ʐ-AB 6}+? rAK}yt8&*}>Fdz#Ef#GR}66+Ȳxf>-_~50}cgYkVN(00%HH]#YCub} $RoL]t}] UY&]% rxi>&rY2;S!D=1 _*Qwd4.[ͩ[ E6Y$sՖQ+x*DPK@& l8-d\?k`t[?>8=-'3qYrd׵&-b89JS\o1H5e6rSԺ$Ȝ A1]L,_Ͱ;{!޷]3ƉӸC> #Q7T~;nKs,jꍮ3QTƳ05}1zY) ~tܺ==w.8v:4Y; Hmڜ1N?Y1yJ:}Fpe2=rhbط(CY8vmz[F? ƞ,:V8֡055xJ 4Rp\[$qV[k&hϊH="#o3&KroR71wj+'b ~3)dz܇ETH%zXgu$-oϛ/HIq 85ߘ+c^|daZ2{'%i1oj6ُ:U6X.mgY;ܴ!kvTZ*3[I 7-a c dLݝ怈7Ytu8 7A|܄vYHM%P]m}z΀P'yx+.r |zy%[0!FyVD\\ ןPy$-A:6O>|7xWu9(wGևFު юzMi+ұ F whV$k7ĮϻI.l,BU%'Ɨaw8BƗgu%oԷeTW2 CU'/k#礊BJ4Fb+xge\5 tHgZ>g {d2PH|k;T9h{52䛣nx9>7uSXųy'szwe%BLGCAQL}KPr& Z-ɆeYl2e A=4^l9Am)yŔ Oz6'o8iDoͰ[92ǘgOO=#i3&IbxhD-q ߥ'>\Ys5ߵxQM]a|Um VDq>&ljo*z,Y(k/k$*a^M.IK=IFc,}RJ[cbsEm" ^GP.8ZJ?E4e%ϷN(B]OR\Pl^ͻ툐V`Rr=&IWnKYw|v관5G6ԁo \:l:G{am%j^ u+6x%x·S ǍJf81fՌfaԬ6Jx|P6GYJP Uxg .|^C)zG.j3S'c2JXX#b[g_j8=n`2>j"-bT7` /2 &*1})|c&s]đ2|`KhU]ݣ'TR[9*%T 5)D>0)T*ʼnM\D29(<`6 bqF' &J,rŰݏȘm#e# X阮 `i`h|Vc;JgI(`0u !Nr}dfൗlXN$bK&W0 x&l/_-`GmVJkә;ERV7j) cC5W#3( ^ъ[s8|x#_ "Tc>PN^n"bKNHR1=qNA 9뙎}GP^K̺9矿A-/ j!?UVO=40 t/MWL嘜+<؜VfeP鷮E?PjK5;7rxĔTa5XvCiaONX[o?1 k4z7WDPH\AfAa%Pz{t eUL0}rLVƆ\yNF(m[v24 nܧ_]*kaBš05 R3".lXtJ5)pJ)F IPwA9ПJK>`75[ScS\5:`N9mz3V2<-!pX6EGZJ=(bL}5N#_ϊ؊Wr>*-?fJ P,idYi8 5ع -#&p2F [K#Fˏkb lRN=6&%CXZjd=,E <#S $Õ\^7vIƆ21Z- n9XDZ~Fԥh:4d7ZY#rp(an7roO 9PNvgi઱JZ_R'^!XZi0}l0NDq%.-3ޠ-vv[-y#8Ugz[hkw&ǻ#@oDD,Y~d&Im[lSԖdŃ=d1mhyi[^FgJ=崷Iמ5**}9P_PP*!v|7+%(;*,q]:7@>k qLF^M"!. C(#۱f7lm+(~sQOOVE4qRT*DZneg"2[7s)p V7ug{Ze`whdEV+H5@!<n]f7;i,-xr9]:>OF?YQlR|&RN$3nT .\R=3fuLF֢|)$GIEzr?+tU"ie\óxtl/O 1)3N\JJF!k+ʽi#')*j+!6,\caqT"ceTcC,eYV[O>3Nl$ aHӮN-ݰc }n~Y̔}ʍeGD/cy}!;5ԲA  /4O[%ݪԹSzcשͫU3}l/Toh`ʍzDVgL=:S1fܽr5`ov_vBH}tvr# 'Ga(j;b סm|aU&Ϧoݾn/YEnt7+2! 6Pwk  iyjLRH׹+|bƚ:y{ur(WՐfOP?iVH#rN@_s7exotbκP<7`b ;Trqs%].)0v| ajQYxFb5R R-SyRZltﶵP+YTdthF}n$%ܕKo! yY]ID=]w</ܙKT|wqfnx&[suM ;QkȈ=|X5,x踞x {z}6*cc0+;2Lfl" UnO N9w%^pH5"#[z!XM.iyP:TTqI龨<+ xg~"SG?/~-6+ԋ:w fr&`\*}(CJѰ/~5O|w V  υ=% *H"E7ɠ//;ߛUM~TuH ܜӮçx,#WW>U'`o ^2%OXsS溿tuo?Emw;X?Q4&Jh,gkmmmvagPxV`q?fNo-7{gtEezV$$gW;]ٍDwKZt,'B2ډVw|(7K V>W9e#0o)6+bm2F3%噟P]"R5Z)8OGvpgࣿǪ~?B_ҵfa@%|hhq_fA' %sq&@y:zOe76j΃l>ZB,;"JW@ ěB~J%76w2xk%}U}2O<@5*?DlfÌsD)WI;̐`?OCIX Tیb߾~5g1(H}uM v;4/%5hd"R#.I`i G\C?w$n Ej(PXdXQ&');>YHgqKvw6dGf)]*TQڙJz3x潲L&< *-gd-u3y/wӕ{Gos>xB>K)>I 8ؠds4P18Gvp?#En1:Rans_vH@˽a!:ZRR]{\BqG^a0uRgHHN'ĀkHtHemPTrhܹ<;⸧(֧$!Q\>~C,⑘j$~-u2SE;Xҡ&wO1,/ٖfhoW˸[&\P5W-+l;,( I`'UB~ GA`ǎ,gt;ltD*5K XOG|ZD/$)lH+GGu¡G4t9|"V3PlFsU1jvڝ6 4פֵ( AN-Ctd/~uǾ "GV*h9ys*ܓGArܳ/xN2. 62E[; ͬZye&PB8 차" 3X_u^H iOzbMgfW0N󳵟Qǔd_$7LZ[I.*z EA|#UnPeGywg\PY\b5;= $ =d)oij!?4bߠ=X,5xyBŸ)|]ϘwBG=03m375$W}'9ґ[JȮ"A2οV3 ޝKpXVJ9 }ՉV*N4$gǕ]Xpq&'uʦ&r5D[DMD73&[4xƓ-Li݃1îl.򕳡L\ѲIG&56u # vnrXו:^1b/~,c [qzuqZ)ᱣIzxcQJ,?1.yQ?{Sr.vUVbn-aj9>x}"Jlx7F.lXҧx] ajp"&3` I o%L^ja`_|WXπ\՘o[jv:&5ToˎE2#5Qs& ' "HJ,EBVw7[G'?5_n]C40[̍l~gAjS4|bYW5LI3n ~zy˨UAKM1o c5a{ ]D}FQaPiX4-lhecGGh"FB/.X;F?-=Հu%J^l'dF-h", CQYr7?{6hǰEX+ 3xM&j &йkZf [EW'$' 7P#`ӺcK(?󨯖~/ h,Y$*he弫Kn&{`$27}LQ ";Pc3GWGdO_ASY9+>"=~|4N}> vZ|*F@R.+W7Yyq;*S|,נ\qKO`S༕/o \RRDb';GmS,Qb/>g;# |;c]ᾼ++yzٰ 7 9q5'a[Nǘ{m^;\מΐp`D0|iN<ڤ~hY#vF+T.MB\Pև;qHtx% z^} õȷӕBCf3XD]7 inըGao;!U+S&1#v2ΛXk)Wp;P}\[SCN+ج99h7FS}8@wfS"݀p ^4YdIN|}ґUS\^ڠlNQ tm/qx&1v}nc\.T|&6JoKtpsub25͑:c3 Ȁ .#ggL>Q>7HP{M +mUOYhoeBpL Hm:@U59JΨl74ε4eXg0!ng{.;-i2b$̟]^e T:-&)IZnEK#b 9/Ϲr_F_nT "0^Ľb^9X!ש>/d{Db\bxi5[銽`DF;]pw4yF&Zt3.Ljy(|"g 7`b"` ؟J~ȴ*1o"Խ7WS>%G4W DT4]:N(Y{R/ڷAGpU&VmZj'oȼR,zv듯\á1:P>Y}kz4MVT:Ӽ̵ Wqn,,I[{^k3J/ cC w9zkUMn|6 g/X,g1] !@ungQs rw;T8dꚧqeZjNh&-/Ɵoܒ:nr))U8T"eg!dV|z~~v5ˠFW+OEaX%A3{Dq3 V{gp`ɭQi$΀^Ԧ x/C sʾ)b6ćVܖ.Ғ.ʧͿ_MτFWJ4QzK#Ga;wy!Ľ un7 !IEO"Nl<+ey7/+IR;68zt"Ek|-)ğcs8IJl"J aP皟5r55b.{̻suCJ}NŤWbL#6@ Gi_ vo~-,2(@eooٽc֜l"ڴwbsn4ipH ,'vWfǔQSr~zJkXC뗒r/?L lc'> 7-wdto;%1%k>uq6S[y)#G;$e{yib^{NEzX`S`ATdne8SO[iƂ1McH Y# 6c2y1 >rp͞RW|$7c4˹X!Բ,$3ΐAƢ'm/{b9-YD'l;h~;!oԈCU( W\E`NH'f|t6g()Mm{z ȭ jֆ8=)C_Er\^jKލիje3b7SAauozmLI$ $(tH1 hkvY8+%YTIԏ 2gҰ:>6Ncw_?Qe`ZlD%F(Q{֔3UؚŜne< db.AȄv8Yv*boYR~Ql1&Y,{)xQ9+*Hf4v~$~);zVDǭjGy*<S+\ rWi*goi+NAe==A!QcM|G5;8zY# oA/XT玤J&lFy²jAqd eʟ!7t^e|GXEvR09;[N\ N1hrhL᱂W7k5q\Ȁ}kT=6LT9/td,ϜezJG_<'30MBJvglᥗ!VNAٲ}SaX/ LN9ˇM0xPcg픧 ƌ8௶ĥCGP9m!FUHmdmn [L}O0%7wVy#2|rV|`̭tz2~ >gnk {R^rt-H.k(1ݺO1pQjUޫX5#%k*..LxBߓY|ˡӟŝ*[^{膹SU=9y8[EGϻ0o ̩Biʥ$C%m:iOps 'fj@d3WjLexuiF/fHEUc.?~A.6 K%Bnv՚& QIԥ){s7AG^<wugFtǿߠ񈘥{DI)܋s)gH@\csjzeaLX(V%]Ȼ0~쇇lx=ߔ?@fu-׌b!vJ&on rELjG!3JP:zyp((uaͮ$Hs2e,j\~E?0 eXtЌތa:xR3?Rw0AuR;Mk unlIL[8ɪ=jX |暥j_@u +7NzgݬV>r4hjo@F !~DH(#sMC;Arh{B-(Fst >Ǭ(s惽AC(ŭxMM%E]3$PR{q[tBo!' o݂l)\ˤ8/L| [(x]KPݐ/Z#"+ܨzG:XXS5p˴.~ZW"p̋vмC\ZplDGBe)3mrOkO6>r'P> J0DNw`ݵU5F*5Iy'}7p'X8ųM6"ZB{i0rYSIAnKM'lrE#'<.;8~Wf7i3༞/KRyCbo yzjW~ߡâml=(/|mߍx'DlȀR7oXn-b֯G^t._VL[z9#jYԶ} 0д}^ՊUŗc>Þyt Fhr*GHj9DpyA\dhnPҐ`oS17wn|M[VRR0>.B9s#ntmPZaB%z&ZE#`xD)vAS8'̣_|1@Xy7&zm!^h֘jz5$vo{[r9%A,[- l|:Hr#`YRC5S Śy'fxIIq&:5tzl<Ւ`;QW[I@l\fq]d9E@>Jy`9tKʍc,YTŲ`-n b3L!6` ԸtI/0wi<|eC{UCHFD_Xp8:y2@>גU_ at|0O٪pK4i A\}Nm-(c!ϓq= å צyW"&4[8mJahq׏9[RK(D#Bt/oCM2f~ oгLUJ1+~yvl?Nqle^< -gE oT%NGVtkuEҤGvJ끹)nhrIY>==,@4 ,CL>oL[D0X0h Mޡ99_4d9'ҧ(=?,ɧ ̴"aqwAvI='$Zc2R`aeyS߳tR,J;3(<|塺az6S <5c540N,1vhPG9}D,&*wO7'Y ¥HS0LjZB׎'x n+XRh;ѥѷ #Ykhci?Mj9; %Cn$h(3k mk S.\_b:vVBY5B8SnKbW}klPZ2C}ŮB,edfZ{H.a9ᯩ ]6mk&db 2OPqLm.\(B7uQŃ'LA:$mk4 %(*ؘ_ ?G-h`+0vSbfoƩ$~vjrQ|> stream xڍT6LJHHH %  0CwH7Ht7Ҡt4ҍtꇞs_̳֬}~BM,j1IA,lqE ~' *5jیJ  Bl@S" l` 8qH]fEJ-ww[XBO)=w:@6PKӉ@: W :!K(^ՕhqxMpC-j ' aWg, K_vu9<l ; g;3#p@dW_Lg`gaٿ ~'MM!@;wl(K)@ݠLٯ@)M~3DUnlubqjW)KڙClmAvP'_$ ӧuvW;Ͽ9Wfv`g!O&m (rL-Ypv6?ui?5P=. *;; l ,vV2Ov=i/'yAl } * uOL d0spr8<|.MLY;s/OC_ՠw-%ȓfA%fYSMKH淛ڂmx3I%P-_+2;W |ZQ; vTPSˬklv כ`fgc^Z?NOz=(ig 1_<#IFOE4V0}JSX~e5XA@jZ?-?6'bB'z-V? =o'*'*N&<1q:О?N?73uvt|z~/~,A 7)Y`UMЧ*QbWQ)-zfϯmwHW/6$.,=z4!ī{=ŪMlΏ}?#AyŬf뭿5|3lu3J.΍k[m_pv%IsL>P<2 3`aN_^Mag$eD>|Y੻u;\IHEK@=|=,~ oO޳8,qv 0-RL0dvMr1Br4%M$Qc/_"jM\-Pl'{?Q_MrIB$A0uզ?DO^@omn* Fmb&e¢m9ʭhꭢ \WV 2\8/mN ó# !j]؟S{M[w2D^ZSM_9>OtlnݾXX`cnT !ܛj:u#QMA 6rJ1A)3\;~t)n%?Ipyɽ;r5̖VM)q5&}Snķ>liyIEu49]m9:"3d1|ʤ0 `Ne%&Yu]C&M8fugY_Xɋ:l.8m6U3v'WBvo ZBkBI}j!:NXbSsT\;Չ:vqEu3poxGsׁ7o\~[pGUv#Y I/tj"a88퐄}q=EAvK )5xn10yi3O& *6i5.#1靹9ca˲Um=Yw7`޴>5|6)_ wT$,l$w2[;y_1Z~;] D%"m'3DqQmX8)5Zu|{p~>֤0X:vgm ~Za6]vsdEU ԫL2:8yO^'M5Pl >: ]dG%٭,zUN6tʘ=sO_!ÊѼ,cޡtH"\™6U=~ي!z T+ѭ%/:Y M(a8eNpɿYA6 F=e;8׎)< B/"8R^i!zX  F̣ t,# ԇ+RL{oєQHCя7ئjf0-;YLFR/ ^8ΛzepUeM_R9U&!/~?4²rpl !JvW-s x7) WP|D>cL9$6tUy w)z~G\g;ZݿH^gU|κUf@8!_qxk\*tJb!bQ(Gw/n3)V ,g-߸6#r W1Dy_"{xu7aѸiԺ 55+* *7IDjI2ɾI;7U h/IE;]޸w%FM< ddrI}d%}uN]-0rW| .Qְg~Z?Mc&/n2V!Lɞl|s$+PVy< >bd}ύ;z(7MJN1MTv ;ц{mΥE絷?vv,gwC$4)tZ?@(<Eo&4HS3bk^rrl<ƀďk*QUiq>mD1DG0$538Mcjk ((riM~FTqZvHx?6kքBS끚qdDoӏ| ^E}ԟtJY"cE `[A5~3=*W'\Lޔ0WïOQ}|XPS\R[!$zʍydj7: 8!/3ԧKg2m_cD}nҬi9)-/5ʵF@:z00t rNָ8N&O رpw1., >˄4|ˢڲ,:#sqiS|Òxw…79 d"}V{UwvJF EfhBkSJ &tAG+5JDHLސW^@lJ7V@$F`Jĸ?~岼*xvm@*BhPKD{֖R#yibyhGCl 1G|'fN1EnYq|u{ij pĹc60oIӃϗ*OG( wi=b8>6V[oŎ{hjl:7u>/Ex[,j4٫pmݧ08 Z'M#~z.{r[@ɪטA0 6UOU2m=^YN0V%?Mm,BYX*zk0--@"/p>BR]9u3Q)r9 MGnP|6xB]xbINavI2`O3vkL# fqJ"#eϹ+(Eԁ3Q&+:lݻ{g}ߏm\~r;j|]{]>ܣ_;$*UIIŇ%2^idb6*J9?|(DNG>Obig[6=&vī_(QnPc^Ru2i(>W^~xNǻh閁@u(@{ng -x`zS0fAC8.cG2V4xe "!XF.{Ӣ8v%QkY`lL=އc,QM*QPoMV!Tܔ8]hPM%`nh&R?~*V5w@A^48 7D͟:n;4"8d]jy/70&GZ&vh#il\]j:}V!pΚ2u_ 9EL ˦XlpjX[!rE׊_q^'E N^Ӿ焪pY'6ޥVpRQn<8ݝ#kS_ zs܆7/[d Rw7;(hi h(+̠?Z 1 F')>A^Tr96OR4¡U |ѱqYB$G ud 2=>'!%  J"h6x< 2N$43(mւs5JO3j="&\NeVmZ>gƙh D{ pQ8'876kug!.[fZ[R3n2o=^] sVx "nQ g~fⴎ' ;΅':$S9\EJy93YlT 1\3$W#9Bkui\kvu&;5{D9nؗ¡TE5;?,G{,6~Kndp!_ޮxb5IS#˸*U/Ha3{V/ua Ȩ昶yӅVY^rYY%|qKuk㻈 @4;W1r>g._y3jeb~n"j4f VbYWzW Dn_T6_Ҭhsu!aеG{^&H!naOo:R:pVH"Xp7*s}=< ygZ0d&G @.~;G(ʙew1Ay̸bEUy []E*=^ߨS3^dfNckvρq6 nߴ[c|]4 %9b dVoP&.궟'T:&tWIwͬ 9c{]EKgr&@3KIIBΓZE΢mu_uR,4Rn.r4pn We&tÌVřۍK 6Tޕc25(>Zܲ/R8k1#W?k%‚#./7 ͧ|%8L1J(ǤZgqְ/u;}1~3ڍhԲ#kU1Z>G~&{BY*MӉgZʽcŒRyE:%?j9;d]l-.MGfwV)Rdp Q#ne,Ktu {B$]XY6QuӫPg|_#" uq?T%-ΗjbS~N(YKMjz6zo.1?&=9bmEVn0.,]}o}䗟̊R:oYd\\RGm/rZyx@P`d%툱;0>Y otkƋrBԯ透6:Z喵^ g`{pX? #DzМAf]ge MWPvH𹅥V羴Z?%ǻR:ѸHxϑ~K [Rb޷.fsK5o5--/|^e#Pt{0G""P+5<^rK Y qOCgA'|͙eԎR؜{X-7 Uup~ЅbKr/QKs[/͉ k 5u@Z*}3ĥ]^3\-58 Ua@3sQMfjse4˅a}do JL~Wy:Ǭ/) ]CaZ,8oMgcAʅr/BKWlx_%W ˎ n4XTy|n|?:ADsa]꺾,Mn[j+$oi;yɋXdzDukL ^O]Էg K=+:vn^9̏Y׉Dw˒*z*ꡔK/zWwQnW?ۃєmEm{*#m:Gœ i|z@}v1w9sxZ=(59(|C wB"$jͺO9D"b+ԼS(XN<$;fl(Z@%aNNyҦ:ىx+j[V-zP_Mf8khd~8x`C^pK~CRVB݈ڬQ *"HYW N%;<>KF> X4vNty0CY Kv%Q_f_&y/!)wJ+vTz C \dz_ 4 tk1<z$I)Sgwށd&!SkS ;2zCHckU/;(2aQjd%ֶ9%\=lNx; 50f5=zTL<2TR#ÖLHo=^mt@^X&|[M"M:%9Z vU `\mk#F8%SI_w:_}v7=7/pqM5R%kDa$@`:g-fƴ/+$ \Fڛʣ:A`Pvm,I`\C;vhG gίI]ذ-Vu;֋!!Cdn??Uţ1\<, z7Lig)gCF+2a5X5.eN~E\ApˢsgÜ؞xmI%nGs`o[ =DʵuS'$,ibX'qڑ\wOUeDbY~CelX=sPW*Go|fx99Hx2*] !jq[kR \׻6؅,? endstream endobj 612 0 obj << /Length1 1306 /Length2 1345 /Length3 0 /Length 2180 /Filter /FlateDecode >> stream xڍS 8Tޱ]EOQ-O2AR*Yk̬1&Q;]RNH؅JEI]ӖP.]8g h9Y]O1l ōidpqQ St' OvX"E0+pfJ gfjA[eA:j I,8c(,%bb p |8DB(pp,"^BBqWL a`%q"ɐHJ$ֆF@$e`-$'K#N8<0>.$0 B R"Cy'WN ` liMt qH  |DulW2)P|(B?OlzN'J1.%KF2 f{gD0KI %L7hاAy|e<"2nCH_l0T܌`r 1<)D abL Dp8‡?R .a_;H4!\J0;1  6S U|B(B)[re)o3b˄qo~H{| ' !2ѷ^'"v?P\L0\{kBgH"$*:10O<8t\BF1 |LBR)4$b;'G>0 sIM1eL`~LK,qG D/a@QVCSOY7;9Vq5hi JۍvZ=F*w\ɏ+ܕi0o(/Ź.ީ-/!k$%i14TbJY饹6y2eҾ55o_ݹOgxvhҖݭ)vH>Tů4,g5Pi/Xgn5 7D7Պ:3ya AM5o|I_Ԑ'{wζbAOliEiGs 2_fj4rgz9Gf[Wk3}/J9h~?Uk|4R[ٜNTش@__vdݼcp"=Oy\ظ+t38cZs2.-ӱ('5u]팴^Hb+M:wUz.& [G6Z̸9!k&lĕԭR?:I=tm/#Xa RG"2dtOW'=nU$ǃ/:^-2YeINVyé<-GDUn+˝qcxitz8gdYBR%GMܸ}ŗʧns7xfkP*3SLP~PoT$\1 w7Wu}}flYSW-*Nyi/ }xzGxVQ³:3 yFœ9.^o2js> stream xmysgn6~i۶mL۶m۶mO۶m[ӸssukuLBeچK4De&r<&'&]c3<.{0]0gBYRNJd?m"NH?E8,'fM?J%3iya7[֠J5& %m, kjPBC)d-]?w_-aw1aZ-qG fϝ"qظRSc6uf)A $Ya{pmsa3𕱲(^|m\C~-rݛ&e D.Om@ҼO[>2WGHQp%/=F$P_Yc GIf}xl}Q;=\[!z?ߒUrCwZ뗻St14<~;*S,> \'H:;ND1OL1ЎRvJOon69IP>h!M0@śd #SPb|1)b#0qP?݌JZz{&2ʐ"-rjg#&tQAf!Kh@ȚjbOpgNh;?°y~Z{vJ1nIȡzrKte]'@_Am~0{Ƅ̪++; ೎ْFh g߻g\ue4q0-l2H^QjSڊ@d0Z4@ce$Nh'T #OvqG*hFD%OU)f?u%U,@="l_=UtUP-tU)[땴=.3wB@:t:ufgpBpC.5 Y”D!ݓ Vǃy7iaԥZd~S}rBȼDh@|J)vn$Z˙h![,NvQ~&!dQqWNr1nBf?eDAqB EFj|^mٶvԥy^јA\R"CprgDfg&ZuqYqn 5r&n2rCͫVyL)U:{}|Kô8?^ħ DQ*(61dzo!q_=tXR'|bL -;dQhd0SʪiZO6.F]>sc&wBCciZI<iLu E|I IFy QidCKy25?צ:7|KR 5Mx{~HFɶs༧S9zz^y⣽Ժҽ8ela6ʃZnJl'/ 1'@IKǩ@LL-IWx6!uOp"ǝF䊯A3ʓt%9Y3 N.Ѳ+?;F<%1};XAGZa2' O"s1v~oN9Mѯ+S &.^|AkBn "K'%1d{a3(s͑cqhb,'Xl@2k?Xz %ΰ\c|4ś'/4ZDL40*DFyifoÒƌ9~%<`1)|mˀa֒N~JhѽHY#B -xǔXeT@\3^ {K/ X{b(yK8Iۗ5k@"6U gJVS]fA%(R$cR$!ѐULB#i۝|-6 [xL}y;uzK8Rlt{T_5ethv557K.Rɳ@P6#'QpJxhJ G_LjEZQv ;gsGF'U߸*UTƁPcHy1>zNH(׬oڵzn)u&QG@ T>\`[as{|BJq/bBK'ƥ*`_j/blvY2%}35K[joR% l CmNe2&^PkEQc!#5%(S?# #@$EV;gE`\lYԥCmhR~`K!ĄE b){Y4(k^C\ѡ b&t߱m"i )Zz ^k옐W+㪥iHE7& o~Gg?)D) %ȊgF ɘ zlTц&8Fj1qfVzhoiPgdQ3TI z1H3kȏs*o),PxBbwv_8`@!1mR4g)U6w VfIvnՓOxFeab^zޚv".&}#_Q|0<2*1!z-k#nG睨`b6CAqz9qfiJb5>R`_$clS#%F%u.S~v_GS,=4GA=a8/Yɵ#e9a.OXNpJ|Y9hnV=&2=ejcE?*KE9l7ȟ qJ:#ĦDrmF6%wwDkY5&oZb ]3PYmXztQT oZPn [cE0;pY`0[d ?aXۮ"jtI'TL@I nFP(˹^Y=^CªӶivGE >ur5;M#)ʽ=SZ3[<RhyctoXl X-!-ᥢzіcIB; 8cNnNk>rT +SfX@{6ͭTtC,OhP=$=߷_OI̩A\*=YurHFV`84{lI{)^:`ږ,:ʳ>x=\v bMpPGJtjLK`I='[vU>2W:5Lip^1d/UJN Ab_H\hCm> i^)K!O5 TkFKjr'i?}&}}2-*ztQNq V$<6+{gnA>꼫XY2藜qa* L[bj@b$O_diEZl7lꔎ?|;e _]ggJ*_po񒝯1^esVh:FQzzR8z) *waCm/ʗpBګ)'qt2>y-HJ%uEHX|픫Om%5ܗ| 5sdkMz wĥr`2l҈,jK @.Ïu4Og'Y*jnmvɫӶJp  @ϼիU0Uvof] dlFrEm&_1Yٔ`Wyks\(:TItt|O7}tu@ \p=+w2ݯ xp]pDAxs?x7]tr>"FfF՞\$ 'M4jѕz&G4KZ ҖqY;Eb1W٪{fqKVn7`O?KӢUwjFft _e[f?Doxxv1b.0{oICmpt@D஧Bc U ~8FT-Ϣ DJ{w0g]~JՊjR,O JH Ė]&:6'y=χ,AcHjA_b1hFiFLO6 /p^E1ZLrڐwR&obt„ʮի_)Ha۸hT=5X6٩{h90DH vgrI()^AOXǔSWRUt:vHK^u߻DGiL\6Gy3x'K7N4֝ pf2l* `x0k^J8)E >U#:C+6NXƞoZAGTD{qH LPnjȄw9Ÿ57$|h |%S/c}ΞW[%OǝX6#.-w{FRdHISۆ ~׭Qx&RD+p[Sd3_ˣٽ\(~Z5Uq"\ ԙuM_u?r[$IH뤮Z K1+M|;n!` ~Y\K󹐷}SXq㵞ݷʍtF}ȋāmOsnO7 T[inGq,yk}} %jG2b>.yoA}X nE7ۨP0UN%f%3+O8|N RgM?D "<"F7 lH~`P"is7ʭ:IZ3{>C eȇ{Ch/fs]]QDtX_D)`Z?Rb`j}EYNVdVf[f4Uy㼓\nVDx5zb\F HETY7%B-=63Ǚ[ay<ڿE&b1`U10᥺+J@*CeUᏢPK:"|\)tj'ӑ º ~rҵ5o~ xw2{Z_q aj%υ)uAf+rDNjx7ӫQD9bWB=\4i}PnOf];-^P/?[y5 B,53fq3!d|64D˲-`QOiJ2|WsI'N)mq΁:|#2f>&g6ʦv(ߢ\[h! 2_i5[yy Ne뫽y/b8P #m,+ g!uhw&azz~rej_mODK.V OxL_qāBozCqpOT' E r&kB<$# ƣQ+;#QLV_cx6Aq^ @RR ߱lUWD/uctsnPt#kkzTgX) ryZȠI{OU@,C k]c+UJD>B9edEG$ puTmB;vđ8OGZ/vG¡{KԖ렶GRA-6i-xՈY{oqre3H5zbOT~ ] !Gf=€ИBG*eօٴ+ OGl{ly󎇝2BP/)W 0iEb5-Ŏ:yϝe2O25/54KWp9M&!7 jP~p ow6~T Au6y#17x:SU^P HOO/EO4/i[_2flHB_b $2P{S^(p[3FG8nkz~<Ϋ^pnbru1HE;`60&zO 3#`I83]ͫѻXa1]=OFerF.zb{dNierWzX2$ Tjwgτ3"M w̃KSޠ!=ST[MʐދY+Ӑ կ[ MQs!>ѯ,kÉ .fWh28av-Ԡ.[QO* ;oCW7iF eOy .G15jG1fbڸ5"KW^{{N-) zj! !o}7ƥƽ;$>`7ۅ5/Gy.ʡbtwX(^dAÌp1,:d/2MQk(bXOCtȥs2XLDT.V1sM~(9'`mb u3aU߹$asZF_lqXtTkx0ӱrr&.hkh1ؓ@-+r-#%y_UN| \mZNrr6nA-֧Pa_ɧՄ;gkVY<*zZ~Mk G6 #Nz㲅'2gU~Rf?`W34Ak,$f0v8=kpv *rH?֑(XaV>(254fQuZn=Wu]"*1_]mͱ:dR: G_MЅ/X{ _u-niC"Ѱ}[Ҥ>€iy裆Ke: ZaN:Q*Qy_+OufNrI,[@<v;יNudC #zo#Pq|D6[giޖ]':&c9 2o0B01at3&O3(t*Y~ @z9:R'}83ݩYj\f]3ƁS%r RŻO!F9 FׯF+hՏOHlr"!JSO$>p~(?)ȽbXIy^ DdS[AI;0Y{ yY06פ>Cd􀅴lJluE(m&qO,)ҷ}`bՂ_K[b!4m?cיb}yS2hBEȧlv1eE0+7xI?-V[8^1³:(RjjW9rjdBMAUw!]ylBzQ_IlYtP~.%6/UQ?yw!BlCˁEqQRIDCQ+DBFu*Ontߛf Kٵ#2tC穚m7qJCdse2CZE^L, rtm,k'&&pē"4 }"1Ӫ?u"G >  ʓ.w3rQH.s۽x$M 6M'!UYC湃I`dm.fC ЛSd8#ϥيNd;PD_ s E"Ḅ\P+gxq'V.&B\V^GL{D̈́$H;fJ JZo.vgFubeY5cF7sBp Sx4]2I"If9 Pɻ ppX:K ]?Y/OfE P8eC/G: ԩ;*!zKF5EZLğlErl.ߚ(5 q"% {:҅R@uqN3T[f۵$Ө!ۅ{ľSʃ9DQqs'~WƀH&j}.Ie9JU+<E/Xh]y-b1-:,HeG A7("},Dw$3s(L~ ?ЊkP~Uf)6~MPiH #mL<,sRQS`msTTUAM=Bhb⌰EBN=EQXtH6m*LZ`Hɯ;p& i/`UF,,itiV* y*մMCdxy`"iwze[٠ŵR r$~^di|, ܥ`~k2]f)O48#ֿ*OhgShMAiQP% Kn9d\ V:ZvJT͞G;亅IV {. {J)gP_&sFT1%%xa+bM 7# VBdUWyO3 %hO[Mu\ (dMˊy׏9Aٯ6 Jn7ZvV.,1(>Q~w1-]h!Ok:cQwIvҧ4@&a3YS-&9o]Xgrf;{"YnvAxQw˹ԍȨ=xXG|L.r\<ם?Da^VeɟfA{Q)˻ki<vz<2|V:'++UǢyj3*ئ3]f9qtK>w U.@&G9&'C~Æg)\3DGBj/e9]a1X~PxwPkJ)[Ҕ[h.o"$[l^~VBvgY0kX);Ga zN19Z8JQjTw^ZTڥ`#YͰ5<8H0]1, sg}8 Gq|4rzbc Aף3l-g81t- SIq]^.ΈXϣCGKKhҭG͹5\vo C`vt s-+5^$3 LˑQq:*1klyZf5!LwbgUڀ:$V-tyT"Іf%w)9{LxDAbƣjʷ֐7z=LI/ex7Gf de@YP)*O ( _Z},i3+خDlM`҆(Bݪ;.Acu&ryd_ƊEuPJ{ '&S۩xG(sй.>wm$ߣm吗W? (v>IP5I-Klb%d)r)RhJE7Hʑ}X?<~ ,k8TTgpOk/Vnt=HMs-09|7} s^$n58T$QL.?v_ d2MΪ DІTM9J';"ޯMW#hu/pU߷6QU%R6ǁ^8h]:ѸpiDQ:VNr_XH(V?",0}݆pK$wQ6>:iW`'TuNl+ݻh((b'Ӽ a\E\0O(HXܐ E.Gڢ,>:ˊ) CMԤcrJɅ+XSOycҐ5/D8 d{끧2kvHɤwaaoldݹj7Hv+LӋoshS%d<dbUd5ݷ#\ G#F0zC\z^u,jYe(qQJqѽ@mEM(ߎvR17lԲ;K; pu]gR ڲ,?Ղmc!#9\QnIY rĒ~, zK4'g,p+k d^w4A ljpьw<i[ endstream endobj 528 0 obj << /Type /ObjStm /N 100 /First 915 /Length 4400 /Filter /FlateDecode >> stream x\[Sǒ~Wn8S b$YB@B%eZ{~_fL@AyTee}n46!4Xbcsj\ƆҸhJm|tMh+~#$49W|FX ZT 8ZإJ*M86й6lhJA6xt TX$8'R >EX\p%@[\jbMr4ԑkp\r7"Pz 1 ڈJ͘sIH=5TRC젣#s2M$Fy0%=``#[XVKsl kGpϵbmJrlqWr16ʮԌ 33&d,8 vݴHm1y#f*B}rBn{G-38aɹ`5nwaФy,©X &C*z}BJ D  Z{Qs tUQz52sTp mQ +O4Pr]I}`dg 9G,h[xpcӼ2ۣ_Ym[~sӧ筴ԄQ&n$_mkLGx֍ Qv$_U[W]56]*\-TuRgw?;g`zռk&/wvf>Oqa1%0GߘO/Ͽ\L/'Iw hSSmK}َ/ *98k n+ncu~BXǓ'm Vrh=miaȩ $h{ s_sÇ2dlr0yxu_^^_]'?&:<8 ߈4VL_v}{~a]9=^N/{hs%, ;t]Wdf=6Qتj8`ڜ8Z=ᡍh" 5.oH#oH"i b(D'^j˸0!4DQ1eyxm (گx^7ɮw^;k^[1US;wߥwNJ.2!yn+2lskJO g'{ )Ur[,"}StZ;9fry)u<ʁVUirj0FZpky ٵŭaO~:瓏_.//ŧx%vT'Zq-1GhHRےw_~ %fS ~u ȸ]} {4+ %ݪ~ew3RYYs2ڮNz95!aqj]|V]/!u*L;+qI,EQv2Edi.lԯ~PERB6lU Uoe޲K}=BCK!#%k158TnغG{s/, ]nc]y s]dx共جR!cS~@Ǩ'ZM>r4Ux#i zܽovױ9xf7ҽײ/}CZe%#|ωayr:mδoo#ԑ!=ڀ &gD yÖPОQKB#`OvZW.-x^jI=Wau}ڨ|@<˫})5\mV}΂LW$Iʃ9TCјk1}T[g-Zzċ}~#&r%qUJRRgː7,8zaT/pb@R&哠:`aV`PS)iBS|.Bx`x. B-:#PY43 U'Zv44Sٕ/րd7r_HshF5v Ec6X JMNb: qZQf VUE 31c&[&O*IR z$TW 1Id]θY@B'*ʝ!jj6ADqIz.kgmz(dC!Ґs^T=@C.!q*8qtƋ&qfC'疲Bm-F4r\bD3^.'1iah!/j}RƞS>^`5ʵ;wkԱJk AM'raYՓ T1m2'5:Iͧ3_Xj'a?hkStVQ9Rx9 *tCzoS"}Ė^NOPn7c_v<{էі,glu͑2nd$tϡ xk8.8i+$.VgPJ)k-bt$u_}פ-3ٷN)\^(ltC M!OpS邞SG\4JNR\#3r/SQK"IN"K@N2,(E] }r=.*T[ }z|ī v]F!_Nz[.(rUϏrnjK1@(֯#N8اbZK/+]ẁ9JS\N׻[ټ7<OK7 Xg I*KoʎtJg^dYjKWKKr?2gH \CFV&Mdk$E@ݲ֋jwOf@! [_B"Oʲ2H]v#u&A7k09V >D)#KWeu-c ~|W1[' ("(yU rIZnW&u^iaoKJUwգqnG88 Obl<:|=l "slCHQnRw$fd,v~dy>RR*2RRC\'ӗFEVTnֻ~bN _ؙ^\~:З&ç_>~ޖ5ht J%=$8qҡߘl^U4ed量YƄe瓫O'g>M?3cc?힂|m酚aow^=>$Cc :_m=hGѻ{}FA]qP.}M|yw7=܃7;ۇ/~'C\Cm@mQ /|tsnD;U_ |w$-Z#k} _d<~#:S}Fɾy}R`fM ͦ:}-}-Ʃ4 t[@'u)hOs1=Au-k}t{KBPw?Ww׵L7~쫙uwRu~XZAx8_D7mRKs97kkY曷iZis 'u-s}ut[yb sgm6dֲ͟v *V2d=ۂU'⟏~y*%Ծd-1z0vыS8:2Te/;N'HYl={@UCx]|8R%9|臽S,t&;Mu= iEgAo/!_V?i燃K7c<{z"q~hT\2f vogߧ3;_'jzyJﯯv74bo/&&KǿyWyv@r1ysKW 7Wo> endobj 616 0 obj << /Type /ObjStm /N 75 /First 646 /Length 2904 /Filter /FlateDecode >> stream xڽZrF}W1%3[T7ڊ(""${0T}t>saEG$TUFTೈX"UD$eIqDG8 #ψ$Hh3.XAH8d`A'][`E_z<'\Gm^~ϋÿ;].ޜY_x{ʯ˯tq~lrˍxƌO*.y?g\m_3O7ry\"~B?o?\.Z#x=to3~~tJsӻ.\ZG3Xg-HոLoM5;>+L^;M%'Ysm 'I\{n_AoҸU=;k\iW-`qH cO\,8>C9fcm;,Ν9o< 7{FwUM 0!oLȾ+wǎpהu??mʎ6ɁCrs7 N]|AǤ3ꭉW(q6m |ŗ+r73'Lx#u[?u#yRtt27uv2S S@E V*5go17Do| ;9y7Sa>hXG>n|:xpPaVi*`rM`Rюb:A1)iG1Ť)n,U2լ>71XO< NNawy/봬_Dٽy(꼨y$C)]=){]R no<~zJOaK"?^uY#D90)mY;ԛs*4Mb@ʲAZl`vV6EF[1G?!P%Ί|=T.Ä i{ǜAx8[4:3BQ[VcYpU\eG.NK`'K.k -Ioh]jyIs=JXAn[v`7foZ*˷齖82 ~و]bMYPm*ʀF@&-ݍleܦm ,XL{*K):bbCbNp{kSޚrI79 J@=6.E9Fr@%c%)!q'MshYPW_6ق2w旬Nw2WÔĉZUiRV;s? Ms9uC%)v 6?$@^@ɟŝcܯ~ 2'^6"XmlސM Uj$YB㷣b7'2%03768@4ef*t )bBwE]؆i~%0 gɶh5߾ XlH&IFbb5c%:WbF7ʏp/Ƕt,ǣ( 3(GSfW`O.v]1+/ ҝ%cN]7^鶸5!WmcJ}]5bm?T[OlQt_IȢ? endstream endobj 651 0 obj << /Type /XRef /Index [0 652] /Size 652 /W [1 3 1] /Root 649 0 R /Info 650 0 R /ID [<9A11815028E626480A61D51E7F35360F> <9A11815028E626480A61D51E7F35360F>] /Length 1563 /Filter /FlateDecode >> stream x%KlE|ZZJork7/Ђ q#1DMm,0a1qa1ԕqQy<9|Ϝy9_\t8EILkJ6|L7;$VO8n'Ew( 6EޞR0cE &F(n1C,Gn (%M0^ Ce`?jqAv,TUĪĭ'vW 5ĴuѠՄ#RW^0eR)V)͠]48A9Wl$,*wbm`؁{ K$VӱE@s<` p10&$ : @*7qnܫ4brPBYo^bd#`\`̛֏/|qw K`\j[虪 ̒43XbRm5P=^CxՌ$mn ua@a1e- }_@dnEu&69 ՠ \7KDt,&1桾= Q{']H ^z m>,t~_TB,t.'u)PN@9T@Ca 8@9 n )| d ,5VNM@/5Ux&ºen饠r8x5 Ϣfu)tL%u Z[.#^F3h$hzpyĪ xm\ 0Vq@?σ0hKːE7?5lѧF,CK[lZ؛.ZY kͲ_sE^<^P 'dp$, we can perform a J-test to verify if the moment conditions hold. The null hypothesis and the statistics are respectively $H0:E[g(\theta,x_i)]=0$ and: \[ n\bar{g}(\hat{\theta})'[\hat{\Omega}(\theta^*)]^{-1}\bar{g}(\hat{\theta}) \stackrel{L}{\rightarrow} \chi^2_{q-p}. \] \section{GMM with R} The \pkg{gmm} package can be loaded the usual way. <<>>= library(gmm) @ The main function is \code{gmm()} which creates an object of class \code{gmm}. Many options are available but in many cases they can be set to their default values. They are explained in details below through examples. The main arguments are \code{g} and \code{x}. For a linear model, \code{g} is a formula like \code{y~z1+z2} and \code{x} the matrix of instruments. In the nonlinear case, they are respectively the function $g(\theta,x_i)$ and its argument. The available methods are \code{coef}, \code{vcov}, \code{summary}, \code{residuals}, \code{fitted.values}, \code{plot}, \code{confint}. The model and data in a \code{data.frame} format can be extracted by the generic function \code{model.frame}. \subsection{Estimating the parameters of a normal distribution} This example\footnote{Thanks to Dieter Rozenich for his suggestion.}, is not something we want to do in practice, but its simplicity allows us to understand how to implement the \code{gmm()} procedure by providing the gradient of $g(\theta,x_i)$. It is also a good example of the weakness of GMM when the moment conditions are not sufficiently informative. In fact, the ML estimators of the mean and the variance of a normal distribution are more efficient because the likelihood carries more information than few moment conditions. For the two parameters of a normal distribution $(\mu,\sigma)$ we have the following vector of moment conditions: \[ E[g(\theta,x_i)] \equiv E\left[ \begin{array}{c} \mu - x_{i} \\ \sigma^2 - (x_{i}-\mu)^2 \\ x_{i}^{3} - \mu (\mu^2+3\sigma^{2}) \end{array} \right] = 0 , \] where the first two can be directly obtained by the definition of $(\mu,\sigma)$ and the last comes from the third derivative of the moment generating function evaluated at 0. We first need to create a function $g(\theta,x)$ which returns an $n\times 3$ matrix: <<>>= g1 <- function(tet,x) { m1 <- (tet[1]-x) m2 <- (tet[2]^2 - (x - tet[1])^2) m3 <- x^3-tet[1]*(tet[1]^2+3*tet[2]^2) f <- cbind(m1,m2,m3) return(f) } @ The following is the gradient of $\bar{g}(\theta)$: \[ G\equiv \frac{\partial \bar{g}(\theta)}{\partial \theta} = \left( \begin{array}{cc} 1 & 0\\ 2(\bar{x}-\mu) & 2\sigma\\ -3(\mu^{2}+\sigma^{2}) & -6\mu\sigma \end{array} \right). \] If provided, it will be used to compute the covariance matrix of $\hat{\theta}$. It can be created as follows: <<>>= Dg <- function(tet,x) { G <- matrix(c( 1, 2*(-tet[1]+mean(x)), -3*tet[1]^2-3*tet[2]^2,0, 2*tet[2],-6*tet[1]*tet[2]), nrow=3,ncol=2) return(G) } @ First we generate normally distributed random numbers: <<>>= set.seed(123) n <- 200 x1 <- rnorm(n, mean = 4, sd = 2) @ We then run \code{gmm} using the starting values $(\mu_0,\sigma^2_0)=(0,0)$ <<>>= print(res <- gmm(g1,x1,c(mu = 0, sig = 0), grad = Dg)) @ The \code{summary} method prints more results from the estimation: <<>>= summary(res) @ The section "Initial values of the coefficients" shows the first step estimates used to either compute the weighting matrix in the 2-step GMM or the fixed bandwidth in CUE or iterative GMM. The J-test of over-identifying restrictions can also be extracted by using the method \code{specTest}: <<>>= specTest(res) @ A small simulation using the following function shows that ML produces estimators with smaller mean squared errors than GMM based on the above moment conditions. However, it is not GMM but the moment conditions that are not efficient, because ML is GMM with the likelihood derivatives as moment conditions. <<>>= sim_ex <- function(n,iter) { tet1 <- matrix(0,iter,2) tet2 <- tet1 for(i in 1:iter) { x1 <- rnorm(n, mean = 4, sd = 2) tet1[i,1] <- mean(x1) tet1[i,2] <- sqrt(var(x1)*(n-1)/n) tet2[i,] <- gmm(g1,x1,c(0,0),grad=Dg)$coefficients } bias <- cbind(rowMeans(t(tet1)-c(4,2)),rowMeans(t(tet2)-c(4,2))) dimnames(bias)<-list(c("mu","sigma"),c("ML","GMM")) Var <- cbind(diag(var(tet1)),diag(var(tet2))) dimnames(Var)<-list(c("mu","sigma"),c("ML","GMM")) MSE <- cbind(rowMeans((t(tet1)-c(4,2))^2),rowMeans((t(tet2)-c(4,2))^2)) dimnames(MSE)<-list(c("mu","sigma"),c("ML","GMM")) return(list(bias=bias,Variance=Var,MSE=MSE)) } @ The following results can be reproduced with $n=50$, $iter=2000$ and by setting \code{set.seed(345)}: \begin{center} \begin{tabular}{|c|c|c|c||c|c|c|} \hline &\multicolumn{3}{c||}{$\mu$}&\multicolumn{3}{c}{$\sigma$} \\ \hline & Bias & Variance & MSE & Bias & Variance &MSE \\ \hline GMM& 0.0020 &0.0929 & 0.0928& -0,0838 & 0.0481& 0.0551\\ ML& 0.0021 &0.0823 & 0.0822 & -0.0349 & 0.0411& 0.0423 \\ \hline \end{tabular} \end{center} \subsection{Estimating the parameters of a stable distribution} The previous example showed that ML should be used when the true distribution is known. However, when the density does not have a closed form expression, we have to consider other alternatives. \cite{garcia-renault-veredas06} propose to use indirect inference and perform a numerical study to compare it with several other methods. One of them is GMM for a continuum of moment conditions and was suggested by \cite{carrasco-florens02}. It uses the fact that the characteristic function $E(e^{ix_i\tau})$, where $i$ is the imaginary number and $\tau\in\R$, has a closed form expression (for more details on stable distribution, see \cite{nolan09}). The \pkg{gmm} package does not yet deal with continuum of moment conditions but we can choose a certain grid $\{\tau_1,..., \tau_q\}$ over a given interval and estimate the parameters using the following moment conditions: \[ E\left[e^{ix_i\tau_l}-\Psi(\theta;\tau_l) \right]=0~~\mbox{for}~~l=1,...,q~, \] where $\Psi(\theta;\tau_l)$ is the characteristic function. There is more than one way to define a stable distribution and it depends on the choice of parametrization. We will follow the notation of \cite{nolan09} and consider stable distributions $S(\alpha,\beta,\gamma,\delta;1)$, where $\alpha\in (0,2]$ is the characteristic exponent and $\beta\in[-1,1]$, $\gamma>0$ and $\delta\in\R$ are respectively the skewness, the scale and the location parameters. The last argument defines which parametrization we use. The \pkg{stabledist} package of \cite{stabledist} offers a function to generate random variables from stable distributions and uses the same notation. This parametrization implies that: \[ \Psi(\theta;\tau_l) = \left\{ \begin{array}{lcr} \exp{(-\gamma^\alpha|\tau_l|^\alpha[1-i\beta(\tan{\frac{\pi\alpha}{2}})(\text{sign}(\tau_l))] + i\delta \tau_l)} &\mbox{for}&\alpha\neq 1\\ \exp{(-\gamma|\tau_l|[1+i\beta\frac{2}{\pi}(\text{sign}(\tau_l))\log{|\tau_l|}] + i\delta \tau_l)} &\mbox{for}&\alpha= 1\\ \end{array} \right. , \] The function \code{charStable} included in the package computes the characteristic function and can be used to construct $g(\theta,x_i)$. To avoid dealing with complex numbers, it returns the imaginary and real parts in separate columns because both should have zero expectation. The function is: <<>>= g2 <- function(theta,x) { tau <- seq(1,5,length.out=10) pm <- 1 x <- matrix(c(x),ncol=1) x_comp <- x%*%matrix(tau,nrow=1) x_comp <- matrix(complex(ima=x_comp),ncol=length(tau)) emp_car <- exp(x_comp) the_car <- charStable(theta,tau,pm) gt <- t(t(emp_car) - the_car) gt <- cbind(Im(gt),Re(gt)) return(gt) } @ The parameters of a simulated random vector can be estimated as follows (by default, $\gamma$ and $\delta$ are set to $1$ and $0$ respectively in \code{rstable}). For the example, the starting values are the ones of a normal distribution with mean 0 and variance equals to \code{var(x)}: <<>>= library(stabledist) set.seed(345) x2 <- rstable(500,1.5,.5,pm=1) t0 <- c(alpha = 2, beta = 0, gamma = sd(x2)/sqrt(2), delta = 0) print(res <- gmm(g2,x2,t0)) @ The result is not very close to the true parameters. But we can see why by looking at the J-test that is provided by the \code{summary} method: <<>>= summary(res) @ The null hypothesis that the moment conditions are satisfied is rejected. For nonlinear models, a significant J-test may indicate that we have not reached the global minimum. Furthermore, the standard deviation of the coefficient of $\delta$ indicates that the covariance matrix is nearly singular. Notice also that the convergence code is equal to 1, which indicates that the algorithm did not converge. We could try different starting values, increase the number of iterations in the control option of \code{optim} or use \code{nlminb} which allows to put restrictions on the parameter space. The former would work but the latter will allow us to see how to select another optimizer. The option \code{optfct} can be modified to use this algorithm instead of \code{optim}. In that case, we can specify the upper and lower bounds of $\theta$. <<>>= res2 <- gmm(g2,x2,t0,optfct="nlminb",lower=c(0,-1,0,-Inf),upper=c(2,1,Inf,Inf)) summary(res2) @ Although the above modification solved the convergence problem, there is another issue that we need to address. The first step estimate used to compute the weighting matrix is almost identical to the starting values. There is therefore a convergence problem in the first step. In fact, choosing the initial $\alpha$ to be on the boundary was not a wise choice. Also, it seems that an initial value of $\beta$ equals to zero makes the objective function harder to minimize. Having a gobal minimum for the first step estimate is important if we care about efficiency. A wrong estimate will cause the weighting matrix not being a consistent estimate of the optimal matrix. The information about convergence is included in the argument 'initialAlgoInfo' of the gmm object. We conclude this example by estimating the parameters for a vector of stock returns from the data set \code{Finance} that comes with the \pkg{gmm} package. <<>>= data(Finance) x3 <- Finance[1:1500,"WMK"] t0<-c(alpha = 1.8, beta = 0.1, gamma = sd(x3)/sqrt(2),delta = 0) res3 <- gmm(g2,x3,t0,optfct="nlminb") summary(res3) @ For this sub-sample, the hypothesis that the return follows a stable distribution is rejected. The normality assumption can be analyzed by testing $H_0:\alpha=2,\beta=0$ using \code{linearHypothesis} from the \pkg{car} package: <<>>= library(car) linearHypothesis(res3,cbind(diag(2),c(0,0),c(0,0)),c(2,0)) @ It is clearly rejected. The result is even stronger if the whole sample is used. \subsection{A linear model with iid moment conditions} We want to estimate a linear model with an endogeneity problem. It is the model used by \cite{carrasco07} to compare several methods which deal with the many instruments problem. We want to estimate $\delta$ from: \[ y_i = \delta W_i + \epsilon_i \] with $\delta=0.1$ and \[ W_i = e^{-x_i^2} + u_i , \] where $(\epsilon_i,u_i) \sim ~iidN(0,\Sigma)$ with \[ \Sigma = \left( \begin{array}{cc} 1&0.5\\ 0.5&1 \end{array} \right) \] Any function of $x_i$ can be used as an instrument because it is orthogonal to $\epsilon_i$ and correlated with $W_i$. There is therefore an infinite number of possible instruments. For this example, $(x_i,x_i^2,x_i^3)$ will be the selected instruments and the sample size is set to $n=400$: <<>>= library(mvtnorm) set.seed(112233) sig <- matrix(c(1,.5,.5,1),2,2) n <- 400 e <- rmvnorm(n,sigma=sig) x4 <- rnorm(n) w <- exp(-x4^2) + e[,1] y <- 0.1*w + e[,2] @ where \code{rmvnorm} is a multivariate normal distribution random generator which is included in the package \pkg{mvtnorm} (\cite{mvtnorm}). For a linear model, the $g$ argument is a formula that specifies the right- and left-hand sides as for \code{lm} and $x$ is the matrix of instruments: <<>>= h <- cbind(x4, x4^2, x4^3) g3 <- y~w @ By default, an intercept is added to the formula and a vector of ones to the matrix of instruments. It implies the following moment conditions: \[ E\left(\begin{array}{c} (y_i-\alpha-\delta W_i)\\ (y_i-\alpha-\delta W_i)x_i\\ (y_i-\alpha-\delta W_i)x_i^2\\ (y_i-\alpha-\delta W_i)x_i^3 \end{array} \right)=0 \] In order the remove the intercept, -1 has to be added to the formula. In that case there is no column of ones added to the matrix of instruments. To keep the condition that the expected value of the error terms is zero, the column of ones needs to be included manually. We know that the moment conditions of this example are iid. Therefore, we can add the option \code{vcov="iid"}. This option tells \code{gmm} to estimate the covariance matrix of $\sqrt{n}\bar{g}(\theta^*)$ as follows: \[ \hat{\Omega}(\theta^*) = \frac{1}{n}\sum_{i=1}^n g(\theta^*,x_i)g(\theta^*,x_i)' \] However, it is recommended not to set this option to ``iid" in practice with real data because one of the reasons we want to use GMM is to avoid such restrictions. Finally, it is not necessary to provide the gradient when the model is linear since it is already included in \code{gmm}. The first results are: <<>>= summary(res <- gmm(g3,x=h)) @ By default, the 2SGMM is computed. Other methods can be chosen by modifying the option ``type". The second possibility is ITGMM: <<>>= res2 <- gmm(g3,x=h,type='iterative',crit=1e-8,itermax=200) coef(res2) @ The procedure iterates until the difference between the estimates of two successive iterations reaches a certain tolerance level, defined by the option \code{crit} (default is $10^{-7}$), or if the number of iterations reaches \code{itermax} (default is 100). In the latter case, a message is printed to indicate that the procedure did not converge. The third method is CUE. As you can see, the estimates from ITGMM is used as starting values. However, the starting values are required only when \code{g} is a function. When \code{g} is a formula, the default starting values are the ones obtained by setting the matrix of weights equal to the identity matrix. <<>>= res3 <- gmm(g3,x=h,res2$coef,type='cue') coef(res3) @ It is possible to produce confidence intervals by using the method \code{confint}: <<>>= confint(res3,level=.90) @ Whether \code{optim} or \code{nlminb} is used to compute the solution, it is possible to modify their default options by adding \code{control=list()}. For example, you can keep track of the convergence with \code{control=list(trace=TRUE)} or increase the number of iterations with \code{control=list(maxit=1000)}. You can also choose the \code{BFGS} algorithm with \code{method="BFGS"} (see \code{help(optim)} for more details). The methods \code{fitted} and \code{residuals} are also available for linear models. We can compare the fitted values of \code{lm} with the ones from \code{gmm} to see why this model cannot be estimated by LS. <>= plot(w,y,main="LS vs GMM estimation") lines(w,fitted(res),col=2) lines(w,fitted(lm(y~w)),col=3,lty=2) lines(w,.1*w,col=4,lty=3) legend("topleft",c("Data","Fitted GMM","Fitted LS","True line"),pch=c(1,NA,NA,NA),col=1:3,lty=c(NA,1,2,3)) @ The LS seems to fit the model better. But the graphics hides the endogeneity problem. LS overestimates the relationship between $y$ and $w$ because it does not take into account the fact that some of the correlation is caused by the fact that $y_i$ and $w_i$ are positively correlated with the error term $\epsilon_i$. Finally, the \code{plot} method produces some graphics to analyze the properties of the residuals. It can only be applied to \code{gmm} objects when \code{g} is a formula because when \code{g} is a function, residuals are not defined. \subsection{Estimating the AR coefficients of an ARMA process} \label{ar} The estimation of auto-regressive coefficients of ARMA(p,q) processes is better performed by ML or nonlinear LS. But in Monte Carlo experiments, it is often estimated by GMM to study its properties. It gives a good example of linear models with endogeneity problems in which the moment conditions are serially correlated and possibly conditionally heteroskedastic. As opposed to the previous example, the choice of the HAC matrix becomes an important issue. We want to estimate the AR coefficients of the following process: \[ X_t = 1.4 X_{t-1} - 0.6X_{t-2} + u_t \] where $u_t = 0.6\epsilon_{t-1} -0.3 \epsilon_{t-2} + \epsilon_t$ and $\epsilon_t\sim iidN(0,1)$. This model can be estimated by GMM using any $X_{t-s}$ for $s>2$, because they are uncorrelated with $u_t$ and correlated with $X_{t-1}$ and $X_{t-2}$. However, as $s$ increases the quality of the instruments decreases since the stationarity of the process implies that the auto-correlation goes to zero. For this example, the selected instruments are $(X_{t-3},X_{t-4},X_{t-5},X_{t-6})$ and the sample size equals 400. The ARMA(2,2) process is generated by the function \code{arima.sim}: <<>>= t <- 400 set.seed(345) x5 <- arima.sim(n=t,list(ar=c(1.4,-0.6),ma=c(0.6,-0.3))) x5t<-cbind(x5) for (i in 1:6) x5t<-cbind(x5t,lag(x5,-i)) x5t<-na.omit(x5t) g4<-x5t[,1]~x5t[,2]+x5t[,3] res<-gmm(g4,x5t[,4:7]) summary(res) @ The optimal matrix, when moment conditions are based on time series, is an HAC matrix which is defined by equation (\ref{optw_hat}). Several estimators of this matrix have been proposed in the literature. Given some regularity conditions, they are asymptotically equivalent. However, their impacts on the finite sample properties of GMM estimators may differ. The \pkg{gmm} package uses the \pkg{sandwich} package to compute these estimators which are well explained by \cite{zeileis06} and \cite{zeileis04}. We will therefore briefly summarize the available options. The option \code{kernel} allows to choose between five kernels: Truncated, Bartlett, Parzen, Tukey-Hanning and Quadratic spectral\footnote{The first three have been proposed by \cite{white84}, \cite{newey-west87a} and \cite{gallant87} respectively and the last two, applied to HAC estimation, by \cite{andrews91}. But the latter gives a good review of all five.}. By default, the Quadratic Spectral kernel is used as it was shown to be optimal by \cite{andrews91} with respect to some mean squared error criterion. In most statistical packages, the Bartlett kernel is used for its simplicity. It makes the estimation of large models less computationally intensive. It may also make the \code{gmm} algorithm more stable numerically when dealing with highly nonlinear models, especially with CUE. We can compare the results with different choices of kernel: <<>>= res2 <- gmm(g4,x=x5t[,4:7],kernel="Truncated") coef(res2) res3 <- gmm(g4,x=x5t[,4:7],kernel="Bartlett") coef(res3) res4 <- gmm(g4,x=x5t[,4:7],kernel="Parzen") coef(res4) res5<- gmm(g4,x=x5t[,4:7],kernel="Tukey-Hanning") coef(res5) @ The similarity of the results is not surprising since the matrix of weights should only affect the efficiency of the estimator. We can compare the estimated standard deviations using the method \code{vcov}: <<>>= diag(vcov(res2))^.5 diag(vcov(res3))^.5 diag(vcov(res4))^.5 diag(vcov(res5))^.5 @ which shows, for this example, that the Bartlett kernel generates the estimates with the smallest variances. However, it does not mean it is better. We have to run simulations and compute the true variance if we want to compare them. In fact, we do not know which one produces the most accurate estimate of the variance. The second options is for the bandwidth selection. By default it is the automatic selection proposed by \cite{andrews91}. It is also possible to choose the automatic selection of \cite{newey-west94} by adding \code{bw=bwNeweyWest} (without quotes because \code{bwNeweyWest} is a function). A prewhitened kernel estimator can also be computed using the option \code{prewhite=p}, where $p$ is the order of the vector auto-regressive (VAR) used to compute it. By default, it is set to \code{FALSE}. \cite{andrews-monahan92} show that a prewhitened kernel estimator improves the properties of hypothesis tests on parameters. Finally, the \code{plot} method can be applied to \code{gmm} objects to do a Q-Q plot of the residuals: <>= plot(res,which=2) @ or to plot the observations with the fitted values: <>= plot(res,which=3) @ \subsection{Estimating a system of equations: CAPM} We want to test one of the implications of the capital asset pricing model (CAPM). This example comes from \cite{campbell-lo-mackinlay96}. It shows how to apply the \pkg{gmm} package to estimate a system of equations. The theory of CAPM implies that $\mu_i-R_f = \beta_i (\mu_m-R_f)$ $\forall i$, where $\mu_i$ is the expected value of stock i's return, $R_f$ is the risk free rate and $\mu_m$ is the expected value of the market porfolio's return. The theory can be tested by running the following regression: \[ (R_t-R_f) = \alpha + \beta (R_{mt}-R_f) + \epsilon_t, \] where $R_t$ is a $N\times 1$ vector of observed returns on stocks, $R_{mt}$ if the observed return of a proxy for the market portfolio, $R_f$ is the interest rate on short term government bonds and $\epsilon_t$ is a vector of error terms with covariance matrix $\Sigma_t$. When estimated by ML or LS, $\Sigma$ is assumed to be fixed. However, GMM allows $\epsilon_t$ to be heteroskedastic and serially correlated. One implication of the CAPM is that the vector $\alpha$ should be zero. It can be tested by estimating the model with $(R_{mt}-R_f)$ as instruments, and by testing the null hypothesis $H_0:~\alpha=0$. The data, which are included in the package, are the daily returns of twenty selected stocks from January 1993 to February 2009, the risk-free rate and the three factors of Fama and French\footnote{The symbols of the stocks taken from \url{http://ca.finance.yahoo.com/} are ("WMK", "UIS", "ORB", "MAT", "ABAX","T", "EMR", "JCS", "VOXX", "ZOOM", "ROG", "GGG", "PC", "GCO", "EBF", "F", "FNM", "NHP", "AA", "TDW"). The four other series can be found on K. R. French's web site: \url{http://mba.tuck.dartmouth.edu/pages/faculty/ken.french/data\_library.html}}. The following test is performed using the returns of 5 stocks and a sample size of 500\footnote{The choice of sample size is arbitrary. The purpose is to show how to estimate a system of equations not to test the CAPM. Besides, the $\beta$'s seem to vary over time. It is therefore a good practice to estimate the model using short periods.}. <<>>= data(Finance) r <- Finance[1:500,1:5] rm <- Finance[1:500,"rm"] rf <- Finance[1:500,"rf"] z <- as.matrix(r-rf) zm <- as.matrix(rm-rf) res <- gmm(z~zm,x=zm) coef(res) R <- cbind(diag(5),matrix(0,5,5)) c <- rep(0,5) linearHypothesis(res,R,c,test = "Chisq") @ where the asymptotic chi-square is used since the default distribution requires a normality assumption. The same test could have been performed using the names of the coefficients: <>= test <- paste(names(coef(res)[1:5])," = 0",sep="") linearHypothesis(res,test) @ Another way to test the CAPM is to estimate the restricted model ($\alpha=0$), which is over-identified, and to perform a J-test. Adding $-1$ to the formula removes the intercept. In that case, a column of ones has to be added to the matrix of instruments: <<>>= res2<-gmm(z~zm-1,cbind(1,zm)) specTest(res2) @ which confirms the non-rejection of the theory. \subsection{Testing the CAPM using the stochastic discount factor representation} In some cases the theory is directly based on moment conditions. When it is the case, testing the validity of these conditions becomes a way of testing the theory. \cite{jagannathan-skoulakis02} present several GMM applications in finance and one of them is the stochastic discount factor (SDF) representation of the CAPM. The general theory implies that $E(m_tR_{it})=1$ for all $i$, where $m_t$ is the SDF and $R_{it}$ the gross return ($1 + r_{it}$). It can be shown that if the CAPM holds, $m_t=\theta_0 + \theta_0 R_{mt}$ which implies the following moment conditions: \[ E\Big[R_{it}(\theta_0-\theta_1R_{mt})-1 \Big] = 0~~\mbox{for}~~ i=1,...,N \] which can be tested as follows: <<>>= g5 <- function(tet, x) { gmat <- (tet[1] + tet[2] * (1 + c(x[, 1]))) * (1 + x[, 2:6]) - 1 return(gmat) } res_sdf <- gmm(g5, x = as.matrix(cbind(rm, r)), c(0, 0)) specTest(res_sdf) @ which is consistent with the two previous tests. \subsection{Estimating continuous time processes by discrete time approximation} This last example also comes from \cite{jagannathan-skoulakis02}. We want to estimate the coefficients of the following continuous time process which is often used in finance for interest rates: \[ dr_t = (\alpha + \beta r_t)dt + \sigma r_t^\gamma dW_t, \] where $W_t$ is a standard Brownian motion. Special cases of this process are the Brownian motion with drift ($\beta=0$ and $\gamma = 0$), the Ornstein-Uhlenbeck process ($\gamma=0$) and the Cox-Ingersoll-Ross or square root process ( $\gamma = 1/2$). It can be estimated using the following discrete time approximation: \[ r_{t+1}-r_t = \alpha + \beta r_t + \epsilon_{t+1} \] with \[ E_t \epsilon_{t+1}=0,~~\mbox{and}~~E_t(\epsilon_{t+1}^2) = \sigma^2r_t^{2\gamma} \] Notice that ML cannot be used to estimate this model because the distribution depends on $\gamma$. In particular, it is normal for $\gamma=0$ and gamma for $\gamma=1/2$. It can be estimated by GMM using the following moment conditions: \[ E[g(\theta,x_t)] \equiv E\left(\begin{array}{c} \epsilon_{t+1}\\ \epsilon_{t+1}r_t\\ \epsilon_{t+1}^2-\sigma^2r_t^{2\gamma}\\ (\epsilon_{t+1}^2-\sigma^2r_t^{2\gamma})r_t \end{array} \right) = 0 \] The related \code{g} function, with $\theta=\{\alpha, \beta, \sigma^2, \gamma\}$ is: <<>>= g6 <- function(theta, x) { t <- length(x) et1 <- diff(x) - theta[1] - theta[2] * x[-t] ht <- et1^2 - theta[3] * x[-t]^(2 * theta[4]) g <- cbind(et1, et1 * x[-t], ht, ht * x[-t]) return(g) } @ In order to estimate the model, the vector of interest rates needs to be properly scaled to avoid numerical problems. The transformed series is the annualized interest rates expressed in percentage. Also, the starting values are obtained using LS and some options for \code{optim} need to be modified. <<>>= rf <- Finance[,"rf"] rf <- ((1 + rf/100)^(365) - 1) * 100 dr <- diff(rf) res_0 <- lm(dr ~ rf[-length(rf)]) tet0 <- c(res_0$coef, var(residuals(res_0)), 0) names(tet0) <- c("alpha", "beta", "sigma^2", "gamma") res_rf <- gmm(g6, rf, tet0, control = list(maxit = 1000, reltol = 1e-10)) coef(res_rf) @ \subsection{Comments on models with panel data} The \pkg{gmm} package is not directly built to easily deal with panel data. However, it is flexible enough to make it possible in most cases. To see that, let us consider the following model (see \cite{wooldridge02} for more details): \[ y_{it} = x_{it} \beta + a_i + \epsilon_{it}\mbox{ for } i=1,...,N\mbox{ and }t=1,...,T, \] where $x_{it}$ is $1\times k$, $\beta$ is $k\times 1$, $\epsilon_{it}$ is an error term and $a_i$ is an unobserved component which is specific to individual $i$. If $a_i$ is correlated with $x_{it}$, it can be removed by subtracting the average of the equation over time, which gives: \[ (y_{it}-\bar{y}_i) = (x_{it}-\bar{x}_i) \beta + (\epsilon_{it}-\bar{\epsilon}_i) \mbox{ for } i=1,...,N\mbox{ and } t=1,...,T, \] which can be estimated by \code{gmm}. For example, if there are 3 individuals the following corresponds to the GMM fixed effects estimation: <>= y <- rbind(y1-mean(y1),y2-mean(y2),y3-mean(y3)) x <- rbind(x1-mean(x1),x2-mean(x2),x3-mean(x3)) res <- gmm(y~x,h) @ However, if $a_i$ is not correlated with $x_{it}$, the equation represents a random effects model. In that case, it is more efficient not to remove $a_i$ from the equation because of the information it carries about the individuals. The error terms are then combined in a single one, $\eta_{it}=(a_i + \epsilon_{it})$ to produce the linear model: \[ y_{it} = x_{it} \beta + \eta_{it} \] This model cannot be efficiently estimated by OLS because the presence of the common factor $a_i$ at each period implies that $\eta_{it}$ is serially correlated. However, GMM is well suited to deal with such specifications. The following will therefore produce a GMM random effects estimation: <>= y <- rbind(y1,y2,y3) x <- rbind(x1,x2,x3) res <- gmm(y~x,h) @ The package \pkg{plm} of \cite{plm} offers several functions to manipulate panel data. It could therefore be combined with \pkg{gmm} when estimating such models. It also offers a way to estimate them with its own GMM algorithm for panel data. \subsection{GMM and the sandwich package} In the \pkg{gmm} package, the estimation of the optimal weighting matrices are obtained using the \pkg{sandwich} package of \cite{zeileis06}. For example, the weighting matrix of the two-step GMM defined as: \[ W = \left[\lim_{n\rightarrow \infty} Var{(\sqrt{n}\bar{g})}\right]^{-1} \] is estimated as follows: <>= gt <- g(t0, x) V <- kernHAC(lm(gt~1),sandwich = FALSE) W <- solve(V) @ where $t0$ is any consistent estimate. As long as the optimal matrix is used, the covariance matrix of the coefficients can be estimated as follows: \[ (\hat{G}'W\hat{G})^{-1}/n \equiv (\hat{G}'\hat{V}^{-1}\hat{G})^{-1}/n, \] where $\hat{G}=d\bar{g}(\hat{\theta})/d\theta$ and $\hat{V}$ is obtained using \code{kernHAC()}. It is not a sandwich covariance matrix and is computed using the \code{vcov()} method included in \pkg{gmm}. However, if any other weighting matrix is used, say $W$, the estimated covariance matrix of the coefficients must then be estimated as follows: \[ (\hat{G}'W\hat{G})^{-1}\hat{G}'W\hat{V}W\hat{G}(\hat{G}'W\hat{G})^{-1}/n. \] A \code{bread()} and \code{estfun()} methods are available for \code{gmm} objects which allows to compute the above matrix using the \pkg{sandwich} package. The \code{bread()} method computes $(\hat{G}'W\hat{G})^{-1}$ while the \code{estfun()} method returns a $T\times q$ matrix with the $t^{th}$ row equals to $g(\hat{\theta}, x_t) W \hat{G}$. The \code{meatHAC()} method applied to the latter produces the right meat. Let us consider the example of section (\ref{ar}). Suppose we want to use the identity matrix to eliminate one source of bias, at the cost of lower efficiency. In that case, a consistent estimate of the covariance matrix is \[ (\hat{G}'\hat{G})^{-1}\hat{G}'\hat{V}\hat{G}(\hat{G}'\hat{G})^{-1}/n, \] which can be computed as: <<>>= print(res<-gmm(g4,x5t[,4:7],wmatrix="ident")) diag(vcovHAC(res))^.5 @ which is more robust than using \code{vcov()}: <<>>= diag(vcov(res))^.5 @ Notice that it is possible to fixe $W$. Therefore, the above results can also be obtained as: <<>>= print(res<-gmm(g4,x5t[,4:7], weightsMatrix = diag(5))) @ In this case, the choice of the type of GMM is irrelevant since the weighting matrix is fixed. \section{Generalized empirical likelihood} The GEL is a new family of estimation methods which, as GMM, is based on moment conditions. It follows \cite{owen01} who developed the idea of empirical likelihood estimation which was meant to improve the confidence regions of estimators. We present here a brief discussion on the method without going into too much details. For a complete review, see \cite{smith97}, \cite{newey-smith04} or \cite{anatolyev05}. The estimation is based on \[ E(g(\theta_0,x_i))=0, \] which can be estimated in general by \[ \tilde{g}(\theta) = \sum_{i=1}^n p_i g(\theta,x_i) =0, \] where $p_i$ is called the implied probability associated with the observation $x_i$. For the GEL method, it is assumed that $q>p$ because otherwise it would correspond to GMM. Therefore, as it is the case for GMM, there is no solution to $\bar{g}(\theta)=0$. However, there is a solution to $\tilde{g}(\theta)=0$ for some choice of the probabilities $p_i$ such that $\sum_i p_i=1$. In fact, there is an infinite number of solutions since there are $(n+q)$ unknowns and only $q+1$ equations. GEL selects among them the one for which the distance between the vector of probabilities $p$ and the empirical density $1/n$ is minimized. The empirical likelihood of \cite{owen01} is a special case in which the distance is the likelihood ratio. The other methods that belong to the GEL family of estimators use different metrics. If the moment conditions hold, the implied probabilities carry a lot of information about the stochastic properties of $x_i$. For GEL, the estimations of the expected value of the Jacobian and the covariance matrix of the moment conditions, which are required to estimate $\theta$, are based on $p_i$ while in GMM they are estimated using $1/n$. \cite{newey-smith04} show that this difference explains partially why the second order properties of GEL are better. Another difference between GEL and GMM is how they deal with the fact that $g(\theta,x_i)$ can be a conditionally heteroskedastic and weakly dependent process. GEL does not require to compute explicitly the HAC matrix of the moment conditions. However, if it does not take it into account, its estimators may not only be inefficient but may also fail to be consistent. \cite{smith01} proposes to replace $g(\theta,x_i)$ by: \[ g^w(\theta,x_i) = \sum_{s=-m}^m w(s)g(\theta,x_{i-s}) \] where $w(s)$ are kernel based weights that sum to one (see also \cite{kitamura-stutzer97} and \cite{smith97}). The sample moment conditions become: \begin{equation}\label{gel_mcond} \tilde{g}(\theta) = \sum_{i=1}^n p_i g^w(\theta,x_i) =0 \end{equation} The estimator is defined as the solution to the following constrained minimization problem: \begin{eqnarray} \hat{\theta}_n &=& \arg\min_{\theta,p_i} \sum_{i=1}^n h_n(p_i) ,\\ && \mbox{subject to } \\ && \sum_{i=1}^n p_ig^w(\theta,x_i) = 0 ~~\mbox{and} \label{const}\\ && \sum_{i=1}^n p_i=1, \end{eqnarray} where $h_n(p_i)$ has to belong to the following Cressie-Read family of discrepancies: \[ h_n(p_i) = \frac{[\gamma(\gamma+1)]^{-1}[(np_i)^{\gamma+1}-1]}{n} . \] \cite{smith97} showed that the empirical likelihood method (EL) of \cite{owen01} ($\gamma=0$) and the exponential tilting of \cite{kitamura-stutzer97} ($\gamma=-1$) belong to the GEL family of estimators while \cite{newey-smith04} show that it is also the case for the continuous updated estimator of \cite{hansen-heaton-yaron96} ($\gamma=1$). What makes them part of the same GEL family of estimation methods is the existence of a dual problem which is defined as: \begin{equation}\label{gel_obj} \hat{\theta} = \arg\min_{\theta}\left[\max_{\lambda} P_n(\theta,\lambda) = \frac{1}{n}\sum_{i=1}^n\rho\left(\lambda'g^w(\theta,x_i)\right)\right] \end{equation} where $\lambda$ is the Lagrange multiplier associated with the constraint (\ref{const}) and $\rho(v)$ is a strictly concave function normalized so that $\rho'(0)=\rho''(0)=-1$. It can be shown that $\rho(v)=\ln{(1-v)}$ corresponds to EL , $\rho(v)=-\exp{(v)}$ to ET and to CUE if it is quadratic. The equivalence of the primal and dual problems can easily be verified by showing that they both share the same following first order conditions: \begin{equation}\label{lam} \sum_{i=1}^n p_i g^w(\theta,x_i) = 0, \end{equation} \begin{equation} \sum_{i=1}^n p_i \lambda'\left(\frac{\partial g^w(\theta,x_i)}{\partial \theta}\right) = 0 , \end{equation} with \begin{equation} p_i = \frac{1}{n}\rho'\left(\lambda'g^w(\theta,x_i)\right) . \end{equation} Equation (\ref{gel_obj}) represents a saddle point problem. The solution is obtained by solving simultaneously two optimization problems. We can solve for $\theta$ by minimizing $P_n(\theta,\lambda(\theta))$, where $\lambda(\theta)$ is the solution to $\arg\max_\lambda P_n(\theta,\lambda)$ for a given $\theta$. Therefore an optimization algorithm needs to be called inside the $P_n(\theta,\lambda)$ function. It makes the GEL very hard to implement numerically. For example, \cite{guggenberger08}, who analyzes the small sample properties of GEL, uses an iterative procedure based on the Newton method for $\lambda$ and a grid search for $\theta$ in order to confidently reach the absolute minimum. Using such iterative procedures for $\lambda$ makes the problem less computationally demanding and does not seem to affect the properties of the estimator of $\theta_0$. Indeed, \cite{guggenberger-hahn05} show that going beyond two iterations for $\lambda$ does not improve the second order asymptotic properties of the estimator of $\theta_0$. The function \code{gel} offers two options. By default, $\lambda(\theta)$ is obtained by the following iterative method: \[ \lambda_l = \lambda_{l-1} - \left[\frac{1}{n}\sum_{i=1}^n \rho''(\lambda_{l-1}'g_t)g_tg_t'\right]^{-1}\left[\frac{1}{n} \sum_{i=1}^n \rho'(\lambda_{l-1}'g_i) g_i \right] \] starting with $\lambda=0$, which corresponds to its asymptotic value. The algorithm stops when $\|\lambda_l-\lambda_{l-1}\|$ reaches a certain tolerance level. The second option is to let \code{optim} solve the problem. Then, as for \code{gmm}, the minimization problem is solved either by \code{optim}, \code{nlminb} or \code{constrOptim}. In order to test the over-identifying restrictions, \cite{smith04} proposes three tests which are all asymptotically distributed as a $\chi^2_{q-p}$. The first one is the J-test: \[ n \bar{g}^w(\hat{\theta})'[\hat{\Omega}(\hat{\theta})]^{-1}\bar{g}^w(\hat{\theta}), \] the second is a Lagrange multiplier test (LM): \[ LM = n\hat{\lambda}'\hat{\Omega}(\hat{\theta})\hat{\lambda} \] and the last one is a likelihood ratio test (LR): \[ LR = 2\sum_{i=1}^n\left[ \rho\left(\hat{\lambda}'g^w(\hat{\theta},x_i)\right) - \rho(0)\right] \] \section{GEL with R} \subsection{Estimating the parameters of a normal distribution} For this example, we can leave the option \code{smooth} at its default value, which is \code{FALSE}, because of the iid properties of $x$. A good starting value is very important for GEL. The best choice is the sample mean and the standard deviation. By default the option \code{type} is set to \code{EL}. The same methods that apply to \code{gmm} objects, can also be applied to \code{gel} objects. <<>>= tet0 <- c(mu = mean(x1), sig = sd(x1)) res_el <- gel(g1,x1,tet0) summary(res_el) @ Each Lagrange multiplier represents a shadow price of the constraint implied by moment condition. A binding constraint will produce a multiplier different from zero. Therefore, its value informs us on the validity of the moment condition. In the above results, the $\lambda$'s are significantly different from zero which would normally suggest that the moment conditions associated with them are violated. As a result, the LM test also rejects the null hypothesis since it is based on the $\lambda$'s. Notice that \code{summary} reports two convergence codes, one for $\lambda$ et another for $\theta$. The ET and CUE estimates can be obtained as follows: <<>>= res_et <- gel(g1,x1,tet0,type="ET") coef(res_et) @ <<>>= res_cue <- gel(g1,x1,tet0,type="CUE") coef(res_cue) @ A fourth method is available which is called the exponentially tilted empirical likelihood (ETEL) and was proposed by \cite{schennach07}. However, it does not belong to the family of GEL estimators. It solves the problem of misspecified models. In such models there may not exist any pseudo value to which $\hat{\theta}$ converges as the sample size increases. ETEL uses the $\rho()$ of ET to solve for $\lambda$ and the $\rho()$ of EL to solve for $\theta$. \cite{schennach07} shows that ETEL shares the same asymptotic properties of EL without having to impose restrictions on the domain of $\rho(v)$ when solving for $\lambda$. <<>>= res_etel <- gel(g1,x1,c(mu=1,sig=1),type="ETEL") coef(res_etel) @ The type ETEL is experimental for now. Although it is supposed to be more stable because no restrictions are required to solve for $\lambda$, once we substitute $\lambda(\theta)$ in the EL objective function to estimate $\theta$, we still need to restrict $\lambda'g_t$ to avoid having NA's. The solution used in gel() is to obtain $\lambda(\theta)$ with \code{constrOptim} with the restriction $\lambda'gt > 1$ even if it is not required by ET ($\rho(v)=-\exp{(v)}$). It is however sensitive to starting values. That's the reason why we used different ones above. \subsection{Estimating the AR coefficients of an ARMA process} Because the moment conditions are weakly dependent, we need to set the option \code{smooth=TRUE}. Before going to the estimation procedure, we need to understand the relationship between the smoothing kernel and the HAC estimator. The reason why we need to smooth the moment function is that GEL estimates the covariance matrix of $\bar{g}(\theta,x_t)$, as if we had iid observations, using the expression $(1/T)\sum_{t=1}^T(g_tg_t')$. We can show that substituting $g_t$ by $g^w_t$ in this expression results in an HAC estimator. However, the relationship between the smoothing kernel and the kernel that appears in the HAC estimator is not obvious. For example, we can show that if the smoothing kernel is Truncated, then the kernel in the HAC estimator is the Bartlett. Let us consider the truncated kernel with a bandwidth of 2. This implies that $w(s)=1/5$ for $|s|\leq 2$ and 0 otherwise. Then, the expression for the covariance matrix becomes: \begin{eqnarray*} \frac{1}{T}\sum_{t=1}^T g^w_t (g^w_t)' &=& \frac{1}{T}\sum_{t=1}^T \left( \sum_{s=-2}^2 \frac{1}{5} g_{t+s} \right) \left( \sum_{l=-2}^2 \frac{1}{5} g_{t+l}' \right),\\ &=& \frac{1}{25}\sum_{s=-2}^2\sum_{l=-2}^2\left( \frac{1}{T}\sum_{t=1}^T g_{t+s}g_{t+l}' \right),\\ &=& \frac{1}{25}\sum_{s=-2}^2\sum_{l=-2}^2\hat{\Gamma}_{s-l} ,\\ &=& \frac{1}{25}\sum_{s=-4}^4 (5-|s|)\hat{\Gamma}_{s},\\ &=& \sum_{s=-4}^4 \left(\frac{1}{5}-\frac{|s|}{25}\right)\hat{\Gamma}_{s},\\ &=& \sum_{s=-T+1}^{T-1} k_5(s) \hat{\Gamma}_{s}, \end{eqnarray*} where $k_5(s)$ is the Bartlett kernel with a bandwidth of 5 defined as \[ K_5(s) = \left\{ \begin{array}{ccc} 1/5 - |s|/25 & \mbox{if}&|s|\leq 5\\ 0 &\mbox{otherwise}& \end{array}\right. . \] See \cite{smith01} for more details. The model will therefore be estimated using the kernel Truncated. The GMM estimate with the identity matrix is selected as starting value. <<>>= tet0 <- gmm(g4,x=x5t[,4:7],wmatrix="ident")$coef res <- gel(g4,x=x5t[,4:7],tet0,smooth=TRUE,kernel="Truncated") summary(res) @ The \code{specTest} method applied to a \code{gel} object computes the three tests proposed by \cite{smith04}: <<>>= specTest(res) @ The \code{plot} method produces one more graphics when applied to a \code{gel} object. It shows the implied probabilities along with the empirical density $(1/T)$. It allows to see which observations have more influence: <>= plot(res,which=4) @ We can also select \code{optfct="nlminb"} or \code{constraint=TRUE} in order to impose restrictions on the coefficients. The former sets lower and upper bounds for the coefficients, while the latter imposes linear constraints using the algorithm \code{constrOptim}. In this example we want the sum of the AR coefficients to be less than one. \code{constrOptim} imposes the constraint $ui\theta-ci \geq 0$. Therefore, we need to set: <>= ui=cbind(0,-1,-1) ci <- -1 @ and rerun the estimation as <>= res <- gel(g4,x=dat5[,4:7],tet0,smooth=TRUE,kernel="Truncated", constraint=TRUE, ui=ui,ci=ci) @ The result, which is not shown, is identical. They are also many option to compute the $\lambda$'s. From version 1.4-0, the default algorithm is \code{nlminb} because the gradient and Hessian matrix are well defined analytically which speed up convergence. The other choices are \code{optim} or "iter" which uses a Newton method to solve the first order condition. If the option optlam is set to "optim" and the type is EL, \code{contrOptim} is selected automatically to restrict $\lambda'g_t$ to be less than 1. It is also possible to change the default values in the control list of the optimizer with the option LambdaControl (see \code{?nlminb} or \code{?optim}). Here are some examples: <>= res <- gel(g4,x=dat5[,4:7],tet0,smooth=TRUE, optlam="optim") res <- gel(g4,x=dat5[,4:7],tet0,smooth=TRUE, optlam="optim", LambdaControl=list(trace=TRUE, parscale=rep(.1,5))) @ \subsection{Comments} The GEL method is very unstable numerically. This fact has been reported many times in the recent literature. The method has been included in the \pkg{gmm} package because recent theoretical evidence suggests that it may produce better estimators than GMM. Because \proglang{R} is an open source statistical package, it offers a good platform to experiment with numerical properties of estimators. \section{Conclusion} The \pkg{gmm} package offers complete and flexible algorithms to estimate models by GMM and GEL. Several options are available which allow to choose among several GMM and GEL methods and many different HAC matrix estimators. In order to estimate the vector of parameters, users can select their preferred optimization algorithm depending on whether inequality constraints are required. For the vector of Lagrange multiplier of GEL, it can be computed by an iterative procedure based on the Newton method which increases the speed of convergence and reduce the instability of the estimation procedure. It could then easily be used by those who are interested in studying the numerical properties of both methods. The package also offers an interface which is comparable to the least squares method \code{lm}. Linear model are estimated using formula and methods such as \code{summary}, \code{vcov}, \code{coef}, \code{confint}, \code{plot}. \code{residuals} or \code{fitted} are available for the objects of class \code{gmm} and \code{gel}. \proglang{R} users will therefore have little difficulty in using the package. \section{Computational Details} The package \pkg{gmm} is written entirely in \proglang{R} and S3-classes with methods are used. It can be found on the comprehensive \proglang{R} archive network (CRAN,\url{http://CRAN.R-project.org/}). It is also hosted on R-Forge (\url{http://r-forge.r-project.org/projects/gmm}). It is shipped with a NAMESPACE. The version used to produce this paper is 1.4-0. It depends on the \pkg{sandwich} package of \cite{zeileis06}, which is used to compute de HAC matrices. The packages \pkg{car} (\cite{car}), \pkg{mvtnorm} (\cite{mvtnorm}), \pkg{stabledist} (\cite{stabledist}), \pkg{MASS} (\cite{MASS}), \pkg{timeDate} (\cite{timeDate}) and \pkg{timeSeries} (\cite{timeSeries}) are suggested in order to reproduce the examples. \section*{Acknowledgments} I am grateful to the three anonymous referees of the Journal of Statistical Software for great comments on the paper and the package. I also want to thank Achim Zeileis for his suggestions regarding the way the \pkg{sandwich} package can be used within \code{gmm}. \bibliography{empir} \end{document} gmm/inst/CITATION0000644000176200001440000000132511376762367013167 0ustar liggesuserscitHeader("To cite gmm in publications use:") citEntry(entry = "Article", title = "Computing Generalized Method of Moments and Generalized Empirical Likelihood with {R}", author = personList(as.person("Pierre Chauss{\\'e}")), journal = "Journal of Statistical Software", year = "2010", volume = "34", number = "11", pages = "1--35", url = "http://www.jstatsoft.org/v34/i11/", textVersion = paste("Pierre Chausse (2010).", "Computing Generalized Method of Moments and Generalized Empirical Likelihood with R.", "Journal of Statistical Software, 34(11), 1-35.", "URL http://www.jstatsoft.org/v34/i11/.") )