[Rcpp-commits] r3274 - pkg/RcppEigen/vignettes
noreply at r-forge.r-project.org
noreply at r-forge.r-project.org
Thu Nov 3 21:52:17 CET 2011
Author: dmbates
Date: 2011-11-03 21:52:17 +0100 (Thu, 03 Nov 2011)
New Revision: 3274
Modified:
pkg/RcppEigen/vignettes/RcppEigen-Intro.Rnw
pkg/RcppEigen/vignettes/RcppEigen-Intro.pdf
Log:
Added an example of the sparse Cholesky decomposition classes SimplicialLLT and CholmodDecomposition
Modified: pkg/RcppEigen/vignettes/RcppEigen-Intro.Rnw
===================================================================
--- pkg/RcppEigen/vignettes/RcppEigen-Intro.Rnw 2011-11-03 20:36:40 UTC (rev 3273)
+++ pkg/RcppEigen/vignettes/RcppEigen-Intro.Rnw 2011-11-03 20:52:17 UTC (rev 3274)
@@ -1398,12 +1398,82 @@
all.equal(rr$Aty, as.vector(crossprod(KNex$mm, KNex$y))))
@
-A sparse Cholesky decomposition is provided in \pkg{Eigen} as the
-\code{SimplicialCholesky} class. There are also linkages to the
-\pkg{CHOLMOD} code from the \pkg{Matrix} package. At present, both of
-these are regarded as experimental. \marginpar{Should there be a word about
- lme4Eigen and the speedups?}
+Sparse Cholesky decompositions are provided by the
+\code{SimplicialLLT} and \code{SimplicialLDLT} classes in the
+\pkg{RcppEigen} package for \proglang{R}. These templated classes are
+modifications to the \code{SimplicialCholesky} templated class in the
+\code{unsupported} section of the \pkg{Eigen} library. A sample usage
+is shown in Figure~\ref{fig:spLS}. The \pkg{RcppEigen} package also
+provides the \code{CholmodDecomposition} class which uses the
+\pkg{CHOLMOD} sparse matrix decompositions provided in the compiled
+code for the \pkg{Matrix} package. Its use is also shown in
+Figure~\ref{fig:spLS}.
+\marginpar{Should there be a word about lme4Eigen and the speedups?}
+
+<<echo=FALSE>>=
+sparseLSCpp <- '
+using Eigen::Lower;
+using Eigen::VectorXd;
+typedef Eigen::Map<VectorXd> MapVec;
+typedef Eigen::MappedSparseMatrix<double> MSpMat;
+typedef Eigen::SparseMatrix<double> SpMat;
+typedef Eigen::SimplicialLDLt<SpMat> SpChol;
+typedef Eigen::CholmodDecomposition<SpMat> CholMD;
+
+const SpMat At(as<MSpMat>(AA).adjoint());
+const VectorXd Aty(At * as<MapVec>(yy));
+const SpChol Ch(At * At.adjoint());
+if (Ch.info() != Eigen::Success)
+ return R_NilValue;
+const CholMD Cm(At);
+if (Cm.info() != Eigen::Success)
+ return R_NilValue;
+return List::create(_["betahatS"] = Ch.solve(Aty),
+ _["betahatC"] = Cm.solve(Aty),
+ _["perm"] = Ch.permutationP().indices());
+'
+@
+\begin{figure}[htb]
+ \begin{quote}
+ \noindent
+ \ttfamily
+ \hlstd{}\hlkwa{using}\hlstd{\ \ \ }\hlkwa{}\hlstd{Eigen}\hlopt{::}\hlstd{Lower}\hlopt{;}\hspace*{\fill}\\
+ \hlstd{}\hlkwa{using}\hlstd{\ \ \ }\hlkwa{}\hlstd{Eigen}\hlopt{::}\hlstd{VectorXd}\hlopt{;}\hspace*{\fill}\\
+ \hlstd{}\hlkwc{typedef\ }\hlstd{Eigen}\hlopt{::}\hlstd{Map}\hlopt{$<$}\hlstd{VectorXd}\hlopt{$>$}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlopt{}\hlstd{MapVec}\hlopt{;}\hspace*{\fill}\\
+ \hlstd{}\hlkwc{typedef\ }\hlstd{Eigen}\hlopt{::}\hlstd{MappedSparseMatrix}\hlopt{$<$}\hlstd{}\hlkwb{double}\hlstd{}\hlopt{$>$}\hlstd{\ \ }\hlopt{}\hlstd{MSpMat}\hlopt{;}\hspace*{\fill}\\
+ \hlstd{}\hlkwc{typedef\ }\hlstd{Eigen}\hlopt{::}\hlstd{SparseMatrix}\hlopt{$<$}\hlstd{}\hlkwb{double}\hlstd{}\hlopt{$>$}\hlstd{\ \ \ \ \ \ \ \ \ }\hlopt{}\hlstd{SpMat}\hlopt{;}\hspace*{\fill}\\
+ \hlstd{}\hlkwc{typedef\ }\hlstd{Eigen}\hlopt{::}\hlstd{SimplicialLDLt}\hlopt{$<$}\hlstd{SpMat}\hlopt{$>$}\hlstd{\ \ \ \ \ \ \ }\hlopt{}\hlstd{SpChol}\hlopt{;}\hspace*{\fill}\\
+ \hlstd{}\hlkwc{typedef\ }\hlstd{Eigen}\hlopt{::}\hlstd{CholmodDecomposition}\hlopt{$<$}\hlstd{SpMat}\hlopt{$>$\ }\hlstd{CholMD}\hlopt{;}\hspace*{\fill}\\
+ \hlstd{}\hspace*{\fill}\\
+ \hlkwb{const\ }\hlstd{SpMat}\hlstd{\ \ \ \ \ \ }\hlstd{}\hlkwd{At}\hlstd{}\hlopt{(}\hlstd{as}\hlopt{$<$}\hlstd{MSpMat}\hlopt{$>$(}\hlstd{AA}\hlopt{).}\hlstd{}\hlkwd{adjoint}\hlstd{}\hlopt{());}\hspace*{\fill}\\
+ \hlstd{}\hlkwb{const\ }\hlstd{VectorXd}\hlstd{\ \ }\hlstd{}\hlkwd{Aty}\hlstd{}\hlopt{(}\hlstd{At\ }\hlopt{{*}\ }\hlstd{as}\hlopt{$<$}\hlstd{MapVec}\hlopt{$>$(}\hlstd{yy}\hlopt{));}\hspace*{\fill}\\
+ \hlstd{}\hlkwb{const\ }\hlstd{SpChol}\hlstd{\ \ \ \ \ }\hlstd{}\hlkwd{Ch}\hlstd{}\hlopt{(}\hlstd{At\ }\hlopt{{*}\ }\hlstd{At}\hlopt{.}\hlstd{}\hlkwd{adjoint}\hlstd{}\hlopt{());}\hspace*{\fill}\\
+ \hlstd{}\hlkwa{if\ }\hlstd{}\hlopt{(}\hlstd{Ch}\hlopt{.}\hlstd{}\hlkwd{info}\hlstd{}\hlopt{()\ !=\ }\hlstd{Eigen}\hlopt{::}\hlstd{Success}\hlopt{)}\hspace*{\fill}\\
+ \hlstd{}\hlstd{\ \ \ }\hlstd{}\hlkwa{return\ }\hlstd{R\textunderscore NilValue}\hlopt{;}\hspace*{\fill}\\
+ \hlstd{}\hlkwb{const\ }\hlstd{CholMD}\hlstd{\ \ \ \ \ }\hlstd{}\hlkwd{Cm}\hlstd{}\hlopt{(}\hlstd{At}\hlopt{);}\hspace*{\fill}\\
+ \hlstd{}\hlkwa{if\ }\hlstd{}\hlopt{(}\hlstd{Cm}\hlopt{.}\hlstd{}\hlkwd{info}\hlstd{}\hlopt{()\ !=\ }\hlstd{Eigen}\hlopt{::}\hlstd{Success}\hlopt{)}\hspace*{\fill}\\
+ \hlstd{}\hlstd{\ \ \ }\hlstd{}\hlkwa{return\ }\hlstd{R\textunderscore NilValue}\hlopt{;}\hspace*{\fill}\\
+ \hlstd{}\hlkwa{return\ }\hlstd{List}\hlopt{::}\hlstd{}\hlkwd{create}\hlstd{}\hlopt{(}\hlstd{\textunderscore }\hlopt{{[}}\hlstd{}\hlstr{"betahatS"}\hlstd{}\hlopt{{]}\ =\ }\hlstd{Ch}\hlopt{.}\hlstd{}\hlkwd{solve}\hlstd{}\hlopt{(}\hlstd{Aty}\hlopt{),}\hspace*{\fill}\\
+ \hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{\textunderscore }\hlopt{{[}}\hlstd{}\hlstr{"betahatC"}\hlstd{}\hlopt{{]}\ =\ }\hlstd{Cm}\hlopt{.}\hlstd{}\hlkwd{solve}\hlstd{}\hlopt{(}\hlstd{Aty}\hlopt{),}\hspace*{\fill}\\
+ \hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{\textunderscore }\hlopt{{[}}\hlstd{}\hlstr{"perm"}\hlstd{}\hlopt{{]}}\hlstd{\ \ \ \ }\hlopt{=\ }\hlstd{Ch}\hlopt{.}\hlstd{}\hlkwd{permutationP}\hlstd{}\hlopt{().}\hlstd{}\hlkwd{indices}\hlstd{}\hlopt{());}\hlstd{}\hspace*{\fill}\\
+ \mbox{}
+ \normalfont
+ \normalsize
+ \end{quote}
+ \caption{sparseLSCpp: Solving a sparse least squares problem}
+ \label{fig:spLS}
+\end{figure}
+<<>>=
+sparse2 <- cxxfunction(signature(AA = "dgCMatrix", yy = "numeric"),
+ sparseLSCpp, "RcppEigen")
+str(rr <- sparse2(KNex$mm, KNex$y))
+res <- as.vector(solve(Ch <- Cholesky(crossprod(KNex$mm)),
+ crossprod(KNex$mm, KNex$y)))
+stopifnot(all.equal(rr$betahatS, res), all.equal(rr$betahatC, res))
+all(rr$perm == Ch at perm) # fill-reducing permutations are different
+@
+
\section{Summary}
This paper introduced the \pkg{RcppEigen} package which provides high-level
Modified: pkg/RcppEigen/vignettes/RcppEigen-Intro.pdf
===================================================================
--- pkg/RcppEigen/vignettes/RcppEigen-Intro.pdf 2011-11-03 20:36:40 UTC (rev 3273)
+++ pkg/RcppEigen/vignettes/RcppEigen-Intro.pdf 2011-11-03 20:52:17 UTC (rev 3274)
@@ -136,50 +136,46 @@
<< /S /GoTo /D [90 0 R /Fit ] >>
endobj
117 0 obj <<
-/Length 4503
+/Length 4504
/Filter /FlateDecode
>>
stream
-xÚµ[YÜF~÷¯(ÌËTcT43¼öÍdìÌì`3ö>TW³[\×Ñ «%µýÆu4¼jVÞÇÁ|ñ´È?}ùûýÇo¾ýPæSgÖnññqaÚ*k¬YTU¿,¿Ûß<_þçYîïl½<»-/P²çبwÿýñ¯0r\TYa`^ògìøÿ=¿ÿzxº=w³° µei±ÛÊ45¬¨]¬l5áî?BNþÏ5<#Lo«å÷ø~§ÛµÆ)ß°E¹|ÿ ?ðé¤÷=<8ZÝ\Ê]q¸µÎÑËaw]2ñ_ó"¿sE¹Üd¶1P!lÐ6SdE[¼U5u©$ü|gek{Y¥,.ÏàÝÀ¦JD lùȯÿ8à <Òÿ¿}W8*
-dßÉ_èãuÂGß~¨EµUE'ílV·XeÖT¥°RyDêkåsc5ÑXpüpì¦2«Lã}üD§ô
-ÍMUEyÉJÔ1ÇY×ÚñYvsgÛåoweM¿hR`ñ@íç^yiä*ÝÞʤðq`&¢ëdÅ°dW4aɧkk²º¨´Á¯yáà_V,¤¿þüÓ7_AsþØ}Æv[úYxÊÜâdA¶ôñ®_ë2ýÀï.NH½=Ès?¤4<Ó¸^åñìAÖEÖBwMçwöð¬Ëêªy
~zaRå
-[«6mÖ¶5pYÒÖò@XßÝ+¼È1¿cÁù+oDìîCyG
-¯zm³:\#&ôL9KÈ9F*@O:¥í_þ2G¬"óZ´äî9Ò¡Gáq[PQ[#^yW¸áß0;ÜöÐod-WÓ DÄuèCõOJY:ä2ËëIßQU¼áôú?Õý\êWº§Ì" "*´C1|@¡R Ú"µo¥¶¸A.?#{08Ñm<¤³ 4l~Ï`jâåM¯g/¿+ÃV¥uÞªÀ+R1ìM-²iìKlZ»k*ë}|¥l¤¢kãT±:uY^y9YVÉüÆfmâV&ã/À>KË/Äê¼ÆYfµY¤4± @;koã A97Ñ^s&
-Èålt<+kê實p¤^ý «*ö»<ß<
-5öÔ*TýÊjù?Qäò¯vYåK¯Ír´èè³ú.³î&>²uuz´ÊûÄΪë
qYá*ÆÖ 6 at e9[ó8 MÆX'¸@X#F
-Æ~ÙD<xº¢Î©U-Cý])êµd1£%¡ùïzÏ;b1é¬qTÿ ªÙú¯WðÖ·¼f}t¨
-2¼ÇHÚúQ%ΣfäóE[ï
§²»+íòÏ,gõÎõ¢ñIvêvº;~åBâh?7ò|*¨ÇÊ·©jxß±m
-ÞÄÀ¸*`¡! ð?±¶ìzEtDHnÕäðLßâøÕ?ôIk]5Ú!,lÜëSÍGK
-É</¢ö;Y¸3øºóÌü*«§vÑcJ7§
¶sïYÄ,_Ç;á]@DÒIpÇ#rkßI«Q ?¼ªÙ
-LÒwêÕÌ?¬"õÐcÌôHNdÍ:¿ÌTÜ`ÄO´>Q :ÚÝ{kÙí¹$Ò½¸µU
)LK¾&^³,}Âë$Cá³%¤'\bnðuäÚ9'VðõöVÅùE~?©ËÓØäðÀí0ù ¤}:îdÐTYQë=Ϭo
|ÑZ"/HUX;ü¹IÖ1¨8ÐIÒq
-{}yµIr"et
-åEÕ ñJâü£ç ¤½L:]V¹Dh´@ã<RïîëQýÏÐF½ÞÁÏø¢hq 9æÞ_H1mÃb:ÃÇ×E8¡ì&x×kÂÞ/Ö|HSÆ»ÜGÂòBj
-öélSÐÑÎQõÍÈ£¤ ËÎh¬AQªPp®ûã¥T÷)ËÊL±¶iXªñÀã1*:D½p3d¥ àÜ«6¦U³4.Û´ßwr`¸î½Z=¢£¼óK¹¹àlÏ*^B,*0¿WÊÈ´°äb!GEȳ^Ñ®:Ëÿ#}U»ÿV×fWçòÎ!¬ÂrÞÉc᯽¼3!Cì,$æõXwbA 0Ê+ÀåUʽêj¹N,r6^"¶m?~Wdü
-99Ý6Ö}½ªyå1v©²fÞB=
y71Ö$ÿ¹#7JÐ'ºu3Χ½Ó¸®®ÔÁT|îÆ9ý«¥[Ô¿®deÖ=j¯ªÉ9rsÁI¨!æ¡C 8E
-תæbG¯ô&ÕqüX"ÃîÄæ(M
-¬¶4Ç94BÂmFI¡Îs'L±I1jø:'ú¬Z^óx7[¾.O9æ][eÇÓïT
-Ô!
-´kØûË'oè÷ÆF?½¥Å>ïIQ/íÆú3Ï
-üTvp0Æsp´Øã8]ËKíu}]X*mOEµw1T*uCëYª^')bĦöá øÑ$?Þ¬¼¿Ñ
Ù> þá³])'îB3äBí©¶÷Ixß =¡V;õ¯¤×jY,Ô&ÛxP®eÌû0ìá1¬¹S*nãè*Teá5ÅjαÚEbcÛZ¢¤¢xW$Z¨&E¹N¸ðUmòH4?òïgbFæÊ.["<ò¯;D¸³P@
} >2P4×u#ë
-<Í@¦®zªäd* ðÚÅàUÕzDÞGnM©(6SÖzX3W=+;ìB£®ñ{Ê(rAòC§ªöK_RkµÖ;Énö7ê_§Âɨxäfª°óà ï`ÑÚ;ËÂëØÛ&lŦø>ÊðÉ]²að:¨Tc9¹Hñö¯£ \Cñ§<¡S,õ²¯r£¾ô¼0Àé
Xy
-àIÆ|@ÙxÐXòÂÙÜ«¦áHxñ&8&MÕN at SÊkjpÇß÷äâX¿ªÇ.õÆå\è úâ°õ%çÕu»\»ì&hñcÄ|èÕý1êI¹3tBÒß'" rÐxSg
-ð§O8rIT$ÏíijÜÅ!2ì¸S³A»!$¹éZ£³×IäaÎXùfè£û+á_ÞÊÕËØáò*YÝ)7´eÖ¶·ðBã|³ÓûAhUN/3\óÚËÜ2«
-ï¿``Úp£»ïÉųvöâÖY2ø4ÐÚÃêùB"Þp¹xýîvöº³l2®
ÞB!ïªÁt£¾d¶YÓLYÄ÷=¼-£4
-_üû·ßó'
_mo}º,Üàï½É|åØ%ùMcÛÏ\B߬s8×UëÌ^Á³hM28ë#û©qèfSCû1xöµVYQÛßExÖÇYâDÏ/ªèü=F¦pe[¤ôÅFS at -·±è!PGþCÔ_¢zÿûêäÁªoãPrrá2ÇÖT©oÑÒx=À:ú\Åz ßFjW)Ü3[dß±+*¨
-oõ»1³½#7&«ZsêaØÕºÉľ
¸h¬üÀìô¾JP
-troHë¿NÚe cÕ°/Q¼}Ûi¨=pËn°øßxÅ*·¯ï£ì$ÌÙòW°búèÎuÌSÜãLd9=ìÜÉÏëÇßú«iµë¹.'Ií.G.÷zÉ\D'Í*{ù¸
-ÆW˪hl¿ã{¸e
-§c[®Ô a
-ò(Ðó¬{öw[¦¶¤L->¬ùd-lô`
-Á_$£|Tl½{khÕé)\¤zeøzTß>rçù^Õ1;QÃVi#'Ã_ a#N8ä
-;}îÅ<UÅåd¶Íª2à4<ËCBáùf:8X¤þÜ(¿½º"°*Hs,-¤9ýYÓVÓÁLpùÕÕ¾ «kRâ\¶öõ³zµçQH¡
-®]>}g$Òxà¦^]{%+¨Î9\fCfÈ¥ë\Ì5ÆÂ(B&{ñzêQS7µ¿æÌ!fã¥]àð?ÑUIÇNsÊZ¼D2©>ÐÊö;ö¼ ø#ø/sPÁáÁq 0rÄúü»ý$÷gþóþ+!¼ôĪ¹]ÝÕ!1±
-áëÏ¡ðuÚ\Vêu×':í\jNEÊ'\kÍE7×O²aK;tÝÐíó U~ SzåÚût`ØêjvTÄ£´®ätxWgym/1-¼9övÐûÄÜ«ú7õ °yNd= 8ÏÝV·fµ»-pÕuÇÛ½ÉõÉ¢&½Å7ôy at 9*ú·ÞR§ëÁÑ?z*
-Ó{õGÚ¤!Ç*¾³9vÑëYF¶uÝ\ÉkoëF,Ïêâ¦ÛäÜy8½CJ¾ëÌ5åÕ´I½ÛT·Fë·Ý¨®K=ß Å÷Õ'#y`L"§t_â+lCáå;!Ôü6窶Js8Q6Ü µ'÷Ô@ï*¤È^;0Éáÿ`öµ|yS´õiöµ)Íÿsöµ3ñ§.çÍùWÜ·Oÿ.Iª}QóOB at .Jc¿Lsoþtæ;dô)ÌH@ ¤s·Ìb³:`²+ÚÁÚƧ`p¥ðÊß.ÄlÜq×sÂ0»Ì^ö
-8b=ÍÜNƪ襫jÅf¶tq>ò'½5.q»þÕ½ý{àoKYDUu0G¤VþCs¹ìBÀè6©ôH/*0LòeY¸/ƶs)]ã¸üm«4ý$»· º²ùAÏg(}-Ë¿·±Lâ }
-(\W½1ïý6:ó:mBB£Píg[©J¹åêöÏ?§åUaúË ÎÖô 4jÞf§)OÓ¢ü,ñXk(x« ÇV±;dûàËÆÔ´.kìù/ÙR ¼ñ®ðÍà
¯¸êÙ¯¸ª4]»ÜLê7qyÅ©Ga©8QyY¥?pÄU6·HÖ9æ ÅMßãÔàw×ÿ§îåxDóFÙù$KÃÒÂû(ôÜÎIج6 ã÷&k[7qÌ
-pÌlYÞîµA_çe}y»ª»Q¡!ÇD¥þü×LäyVáãµÏm·l-^íNÂã·aÔÉBÓý¡ûD3})
$«-¹ºùì
È^Ö Ýi4}J×.âi:.KnQüZOyCôjÁÓÞdÃ:Ì;¾)_~_8f³ånQEúNòÆØÏ~,x²Ã$¸
M.!$êDyæ!Õ)ìoÀ°Sç}Ib&UyZ e3¶UG×°)çWtùÊ8z3½Ò>ÜÙÏÜ*<Ψ4ð(+ü¤¦Lêf¤¨ÊÓéê$;§!
'Í¢¿!EdÞKH´KÁÈ~=»¹ Ùyð§®ÌÍx#½ÿöCèª+Vó
-èùÅÊUdä³¼¸ýûßü/*Wÿ
+xÚµ[YÜF~÷¯(ÌËTcT43¼öÍdìÌì`3ö>TW³[\×Ñ «%µýÆu4¼jVÞÇÁ|ñ´È?}ùûýÇo¾ýPæSgÖnññqaÚ*k¬YTU¿,¿Ûß<_þçYîïl½<»-/P²çبwÿýñ¯0r\TYa`^ògìøÿ=¿ÿzxº=w³° µei±ÛÊ45¬¨]¬l5áî?BNþÏ5<#Lo«å÷ø~§ÛµÆ)ß°E¹|ÿ ?ðé¤÷=<8ZÝ\Ê]q¸µÎÑËaw]2ñ_ó"¿sE¹Üd¶1P!lÐ6SdE[¼U5u©$ü|gek{Y¥,.ÏàÝÀS%"¶|ä×piÿßþ+*Þñ_=rÓà²NøèÛU±h²¶ªè¤Íj㫢̪B*HÝa<sn¬&ÝTðRfix´è𾡹i²ª(/1Q:&ó¸2+óZ;>ËÁnîl»üí®¬é×M
+,ÞR¨ýÜ+/\¥ÛÛP>ÌD4q¬ì&,ùtmMV6ø5/s!üËÅtã×úfñ1hλϸÀnS?cAÙ[ül3È>Þ5pðk]¦?óÝÅ ©·çyî'c g:·Âk³<=ȺÈZSè®éüÎuY]5o ÐO/L
+³\aK`Õ¦ÍÚ¶.ËAÚZë»{a
9æw,8ÅâÝ}(ï±áÕR¯mvBkÄ)1g 9ÇHèI§TÀ³ýË_æUd^Ü=G:ô(<n*êqk$±Ã+ïê7<ð;ñfÛú²åj¸}¨þI)KCg³\fy=#Éó;ª7~Pÿ§ºKýJ÷ÔYTD
v(f(4Cj@[¤6à-¢Ô7ÒåA`ágdÇ#Ú²-tÒÏñ¬@M¼¼éõLñåwå`pت´Î[xE*F°©E6
+}MkwQe½/²Tôam¼*V§.Ë+/'ëÐ*ßجµMÜÊóÂd<PàØgiù
X×8ˬ6+&v! hgímü4¨3ç&ÚkÎD¹geM½üÕNÔ¢?aUÂ>pç;Q¡ÆC
ª¿UY-ÿ§#ê\~ÁàÕ.«\qÉàµYýaVßeÖÝÄG¶®NÏVyØyÑCu½0.+\ÅøÓD¨l2gk¤ÉëkĨÁØ/OWÃ9µ ªe¨¿+E½,f´$Â#ÿ]ïùoÇB,&5ê_D5[¿óïõà
+Þú×°OuSA×ñI[?ªäoÒyÔ|¾hë½ðTv·r¥]þóYå¬þÀ¹^ô >É.CÝN×0`ǯ\HíçfCOe õØAù6U
+ïâ;¶R#°M¡òÃA,ô ¤ >²õDZ"öÂ]¯¨è³Éé[ü¿ú'>i£«F;
Í{}ªùh ´!çEÔ~'Ëw_wÞ_eõ£òÔn2zLéæT°Ðvî=åëx'¼¨H0 îxD.qíò;i5J#áW5[¡IúN½ùU¤úpɬYçøöÀGÑ2*r"3AB»{o-»=DºWð ¶Ê¢P2
iÉ×Äk¥OØpýdh"|Ö°ôKLÑ
+³\;ÇàðÄ
+¾±ÞÞª8¿Èï'uy~¸&T±ïAÇ=*+*s]£çõ/ZëO¤ã©
+kc?7É:Õb":I:®a/°/¯²²6é!QÎS¤N¡¼¡:!^Iô<´¢I§Ë*ÖhçQêÝ}=ªÿãYÚ¨×;ø_-$ÇÜû)¦mXÌCPgøóxàáú£'ÀïzMØûàÅ©cÊ8cûHX^HÁ>mc
+:c"zÓ9ª¾y sÙU3(J
+Îuââ``¼Ã°Tê>eY)Ö6
+ÒSÕ3~!x<FE¨.b¬± {ÕÆ´jÆsöûN×½W«G4Ðp`~i²²1· 3íYEÃKEæ÷êSvó|BR,ä¨ÙpÖë2ÚUÇqù_r¤¯j÷ßêÚÃìêÜáS¾Õ9U¢CØâSÎ;y,ü³÷w&dh
Ä¡ëN,(FÙàb
¸¼Jù¢WÝC-wÀEÎÆKömâgÀÏóJ¿!'§Ûƺï³W5¯<Æ.ÕÐPÖÌ[¨§0ï&Ƥõ_"WqäF úÄQסnÆù¡w7ÀÂÕU:#ÏÀÝ8§µtú׬̺GCâU5y"Gnp.8 U"Ä|2Tr g HáZÕ\ìèÞ¤:K`ÃØ¥IÕæøc1FH¸mÀ()Ôyî)6©1æB
+¿CçDUËk^ ïfKÀ×å)Ǽ k«ìâXpúJ:Pv
+{ùä
+ýÞøÑ觷´Øç!â=)ê¥Ý¸QæYÊ.ñæÒx{§kq©ý£®Õ°ï²S¥í©¨â0±6ð.J¥nh=PÕë$ELØÔ> ?äðàç Ñ÷7ºÐð0Û'Á?|¶+åÄ]h\¨=Õö> ï´'Ôj§þôzðRÍ#ÅÂd*еy=<5wJÅm]
Ê ,¼¦XÍ9V»Hll[KTTïDÕ¤1× ¾ªSiæïGþýì£U,ÒÈ\ÙeKäGþuHwö@
+è¢0¡ÔGæºnd½§9ÈÔUOlP ^»¼ªZhÑûÈ)ÅpÊZ/kæªge]htÁ5`/QE.H~èTÕ¾réòKjÖz'ùÀÍ~SðFÝÀãëT8ÜLv| á,Z{gYØp{ÛdØßG>¹³S6^j,')Þ>ðUqk(þ't¥^öáõCnÔ¾wF"½+ïB<É(K^8{Õ4I/ÞgÓD°)¢Ú hJyM-£îØòû^\ëó71PõØ¥ÞÐx²K @_¶¾Ðó¼ºÐ3q+pÝ-~½±?FÝ#é!wNHZòûDäbBz/qêAa³þô Gîã#*äY¢x»8Dwj6hW1$·2½@ëotö:<ÌùcË"ß}t%üKÂ[¹zùÏ ;\^%«;å¶ÌÚö^hovz?èòÊéeËc^»r[fUá] â¬Lnt÷ã=¹¸uÖÎ^Ü:KZ{X=1_HÄ.¯ßÝÎ^wMæµÐ[(ä½àA5ncÔWÌ6kI ¸â°·q¤ !àÿöã{~!2à¤ð«âÏS
ü½÷!¯< »$¿ilûKCèu§qÃà⺪`Ù+xIfg}dÿÁ#µ1ÝÀlªqh?oÀ¾vÂ*+jû»OÑúð8K¨ã³óE¿ÇhÁÔ®l¾Øh
+¨å6=êÈãKPïQÜ#XõmJN.\æÐ*3õí"Z¯XG«XôÛHí*{fëQì;vEe µám¸ö c7r¶wÄâàÆdUkN=ì»zQ7Ø·ÿxÞwòQªNî
+i]xã×I{°t¬ö
"·o;
+5²nÙ
+ÿ¯Xåöõ}dE¸£ÐGw®`rø0äg"ÈéaçN~ÎÌ\?þÖ_M«]Ï=ôp9IÈl7t9r¹×Kæ":ilVÙËWÄeh0¾*XTEcküßÃ-Ël8Ür¥
+S@GgEØ°¿Û2µ°%ejñaÍ'ka£k6Àøê$å£zdëÝ[C¨NoMá"Õ+ÛÄ×£røöK<Ï÷ª±0Ü9
+¶ükL+q<þJPqÂÉ WØés/æ©*.'£´mV÷̤äY
+Ï0Ó¹ÄÁÀ"õçFùíÕÕU1Dcyh!Íé϶²@èf#ȯ®ö5Y]wä²µ¯çÝÐûĨ=Bºmpí"ôé;#Æ7õrèÚ+YAuÖÜÌá22C.]àbN¬1F2Ù×Sº©ý5g`1ç(ìï·ü®"H:vSÖÚ¬äí$ÊLI½ôV¶§\ر§ä
+ÄÁ*4Ks ÖçßØuè'qHD¼?ó÷_)á¥7 6TÍíꮩýl§Ð\?x
¬Óæ²R¯ë´¼>ÑiçRãp*R>ùäZk.º¹Ö|
+[Ú¡{ìnòcðÒ+×Þ_̤ÀVW³£"¥µt}Ä$§Ã»:Ëk{iáÍù´·Þ'Îä^Õo¼© Ísp"ë Á¹|5´¬ÝmÜ«®;Øî½ØL¾¨O5é-¾¡Ïʹ¼PÑ¿ýôî:]þÑÔÐSÐÔPÞ«?Ò&}8¶Tñͱ®\Ï2²ÐèæJ^{[Ï0òÌ`yV7Ý&çγÀéRrìô]g®)¯¦MzìÝ º5Z¿íFu]êü(®¼ß¨>YÉûc9¥û_yd
+/ß ¡æ·9gPµU[IJá=¹¼O¤® zW!Eö²ØI§ø³¯åË¢O³¯Liþ³¯?u9o.È¿Òä¾}²üwIRíûrQûe£8xð§3ßÑ$£¯LYd®D!»eÕ]ÑÖ6>ë (
Wþv!fã»9ÜUdö²oØÄëiæv2VE(]U+6³¥ó?éIt¡Ûõw¨öìíß·|[Ê: ¬ª9"µòòËeGF·I¥G¢x1PÙp a/ËÂ}1¶KéÇ
äo[¥ií$ùÛ½
+ѽÍú¬|¦8CékYþ%¸e¢ßHèó$l@áºêyï·Ññ×i
rh?Û¢LUÊ%(W·7|þ9ý,¯
+Ó_u¶¦Ïù¤Qón5C8My²å¯`ùÇZCÁ[=¶Ýé$Üg _6¦¦uYcÏÉ äßp
o/|ÅUÏ~ÅU¥éÚÕäfR¿Ëë¬(&H=
+KÅZÈË*ýq#¬²¹E²Îé0¤,nú§¿»þ?àXt/Ç@ 7ÊæÌ'YnÜG¡ç>pNÂfµLÐÜ¿7YÛºcVcfËòvǬ
+züj¼8/ëËÛõTÝ
+
+9&*õç¿fÒ Ï°
+¯
+|n»udkñjw÷¼
+£N>^ìݧ$éL) YmÉÕÕÌg/Dö²µèN éSºvùOÓqYrÒà×zÈÚ¤_ÌlTööt ~ÐaÞñMù:ôûÂ1-w*Òïp0Æ~öcÁE&Á-lr !Q'Ê3©Na`:ïCL«4¹¬ÊÃÔJ@(ù°|¬Ò8ºMI<¿¢ËW¶ÀÑéÅöáÎ~æViäqF¥a´GYá'5eR7#EU&H·T'Ù9
+)<ieìøý)ú$ó^B¢]ÚFöëÙÍÉÎÐ<uenÆé%ü·@P]±o@Ï/V®"à åÅíßüæ¬
endstream
endobj
90 0 obj <<
@@ -704,7 +700,7 @@
/ProcSet [ /PDF /Text ]
>> endobj
188 0 obj <<
-/Length 3456
+/Length 3461
/Filter /FlateDecode
>>
stream
@@ -730,8 +726,9 @@
þàgÆÄX%lüµØÿ;±6$]¹#¹iUÓ̾ó&mRnB×QpÐiI¯|Þämùõy¼kQõ¶¨K³ðw+§,dzþ®\«}o]6L½¸n§ç?p
ËëÑÔac[»6ÜȺhRy³yrÚ±¡þʵP'\SPÄ6.©
/8ãOÛ©éQ0Éøµ:¼´]Ó¼ëÚ̼͸½àn¤£²¡ËålºÜ)
guc¯kW«ìUç×Kp¹t¡jðY4ºAm5q"*Ç{ºÓ3¢&\¸jÊQâ¨öh±÷mõ"ËF(AáW@a¯mÝAHeS<ߺ<sbj0`ööÉànTÔ½yï¬~é³´:LlyõÏí«õÏnÃpË<qÅmÖvw0/ÛG}õmZÛ*r26kUÈéú>Å[)ç¡KáÜE3y*¹;Õn¶ÍÉ{vÓfÙѳ1ìNºÝ
÷ÚÜNhuÛ&tdá)uXôÆ;NêiMX®r·Iy<»É,:ua:Ò©O*ßí·
-5÷yá;ò9@J?(>ßd_Ðã2þ¸þ0±ºÁ࿼2±³~ÚC1Ìô²WP]Q>àvgBaèHåp·U¦ãâÜ©LKãïÑ
-Àñ«ExUðÐ×áÄF8ÙxÃâHùqÚùôÈéÜñä~ßðGòá,>IðP ͪü5ÿ¿^,¯'[Îì¬páßãOg/|öäýïãÆ
+5÷yá;ò9@J?(>ßd_Ðã2þ¸þ0±ºÁ࿼2±³~ÚC1Ìô²WP]Q>àvgBaèHËDÌöç0Le&J û6^-«¾'6<À!ðÈÀöè?Ôò´÷Ó#¯s^ÆOS0
+ÃÉP2¤á¢$xÀn«èÚ«E
+üÿ`x1½zn9Ãgu%rüûü¢àéLã
ïÏüß)æ
endstream
endobj
187 0 obj <<
@@ -763,7 +760,7 @@
/ProcSet [ /PDF /Text ]
>> endobj
195 0 obj <<
-/Length 2784
+/Length 2787
/Filter /FlateDecode
>>
stream
@@ -773,27 +770,20 @@
çíMïa
¾Â Ñ0í_!X4s<e''rW.L×7~2?ÑTNf¿áï±÷Ò*]«£ûÆéõàH³D¿oîXr12^"
CÿåWY9{5^p;î÷v_°¬ÐR%K3#ÌñÚ,nó=ñÌ!<*ô¤µÇm· Ý¢,Q}îwÿnQçmk9¹tÿ¬'ØßN4Áß]ÌüüNù½yܶÇá&`¶eª¯oÂ]ªhÉÒù¾ üËÀÀ¿Þ¿ÃOðS±âpÍÁKiRØW~ËôÆYüç<Ï\Üx9ÁTÁ+
-»f×~-û#÷Ø.]0å44{Öí Á³¶åÔ8t>qY62í ÈÌvcx4.æ®ÚâÒ9pÖ]Ù«iémÓ|dÜï°Ï: «9Ã*Q¬°\*:ñ·ÐÞ !Üy4ÓP¾V¶Ø×¾Xn_vA
-Z,˪{vcû|£Ø×_8*ß]
-±l5'3,¢¹v´8ÆNpï³~-ðpÐô`@ð_(7Ñ;¬ê«½ÅÂì\yê6rºv?°å0¬\³Bºü³QUõÅ6Å°ZwAfÈè
F~[ÙÉ.l&²þØÆ5f
-?sé5J1ø4u®Zh
-ÆG´Ý±Ñ,g,EªØÌtqí)½£Üà©ßó±°÷FfúÄÕúÞ×vq3qû1=^²ìra¹ßy6þthl«ÏÆó.+mNr¶áíxåL°¡©xÈÎy¼rïÖHðÖÆk²ã¥ÅOáÓijú¶¥{ëÝÏ_=ÛéÍüºÀ-Ì¢ë@ÔêO¿j)êí«ê.I©µ;x&¼ÔN»É»Q
#QU{Ó@ë+OÈIp ÔêÁYOë)®ï<jÊ:¬Pç
-£y71_ 次¶±Þ7PX<fhOÃn¥2qO桲ªf¢²Ö¤Ã¿?ÐÖ,ðÒvPéKÕùNEA85&'L'`sT]DèÒ8§ö3äXA«;agA*eMàÖk]®NZâaaíòn8â&ÉÚàEÁZÀ·ÃtaøõÑüÛýPRªT_Ææ~<½û -¿÷DË&¶*º5Æ&dƲq¥tB~S¶c<2c
-k¸îëº2Q
-Ãj¯ËÐëë×
-ÆÂBÉkP'óEb,7b;'Õö6Ó¤Z&Ùd6´DÕ86Y¶0«* !ë+µ¿ òJÀ _'(Åû9òj~xc-"w´rP
¶ZICìi5v£¥$\)æ¬RíÏîw05àê¼ÌAÕ¢æÁÁ©²¸&î
-ê#*_k¶õm. XM§f&Õdz¨ E3S{l×Î mG <×»UÛæÜÔmÆL´çycéööôýÛP2Ðæ|¶KË]ôÛVõУ6w¤Ò¿Í»é¼ÝtX4ÛAD'k ³Ç¤"9çv{UsáoWò:
GqÈäõJÓÏÝB³"@÷& 1wÓÈ+ß{é3+]nvû¯×vKÅ>´ºë?£Å©í.,N±ßÆè
åÒ©xVõÍʵQ¾ë]Ö4¢låXJÎïʳEðÖ¯ý̸±KM¸¤·¹v ^W5?ð2#Ë×îÑÔrß$
H`è8å
-]Øtàc
-ÀKºß`ÔÈÏTu¿fFª¨zÞL»5ìdtÔ¢¼JS8¯ Ïik=¼÷µzÊ&µ£¦·Eºò:õ·-Ñ
ce0¢N¤ª!®¦Ôo~KJã¥
à6(°Vaào0";Ü
0ÚåÍFçîe]§äL¥`lX{P'óâ,aý½u
-°ËvWð`gZ;³µëùá¸s·G³²¯6°1¿¹d#
-×c»_ ?t¥I~cÉ®þ6Y{¸Ù[Mø·³xúÍGnÝUpM£Zñ9¬Dt*Õ
-Fzµ±Foõ`C vKÛ
-Çhíã0$îlôC ãGnu!eöÏ®µ®Ñða£j\
-¡÷§±
-^?ñµ__M"½ô'æ¨ímÂñÁt(ݦücæ(löRæÁ
*Ï·¿íT
s¶Ç×íñ¸Øúöî¯'m?ÈÛæç´
sÚÂ9maÏ´uN[8§->má47nSÁÂ[(Ýùîÿùîÿñîþ3IXêÍùîóÝÿâ|÷ÿ«½ûß*±·ýåcu2LÑÒjÊ,Þ>=¬ÚyµÃáuÄܹ#éöÞt¿Û8ÊBxoð×tKuºà+U]X[ÛíöWÛêÕáPßz dÅðPà^æýlÀbÕûÐÿ0öWgÕGβØ"èþ}Â|ï½î7gÏ.sq(wü
Öm§Mþr¿¼¾fÒÜ¥x÷q"ÛõS'Fþ0Pá}á×¢Âï|~0X½z0pí5»Ç£9ß´¤Sù¦ê|S¹o¾ißߦ¹%ëTDõ¬Ó~u?$ýa2¶WÀBn)¹¥Ö6{©sKmíêfñk_ä&?özá²`pï³{SÝ-[Å
-ó òÚ¼fzYâTV¼IÂç%qµfÿÁÞÜY°\"æQHßíB¬¢»ñÝë(ú26_xCc?t·o<íwcÎh?ª¤ãPÝç£W7-¢rkÓ$å»Ö²zkÞj,Ò·,WDå 3\Æ1KT%
-~ºøîÿ
-"}¡
+»f×~-û#÷Ø.]0å44{Öí Á³¶åÔ8t>qY62í ÈÌvcx4.æ®ÚâÒ9pÖ]Ù«iémÓ|dÜï°Ï: «9Ã*Q¬°\*:ñ·ÐÞ !Üy4ÓP¾VP¤}f«XEbaP8V³¶kÐfYVðtûÈB±J]óè;ÅÀbÛjfTXTsípq+ ß#§/1[à;å [éÁ á¿Pn¢wXÕW{
Ù©¹òÔ
+läví`ËaX/¹g
tùg£ªêmb?,´î8Íà|·²]0áLdý±sÌ03æãk sðiê\5Ñ2.=:h1ºb£Y0Î6XT±!-#èâÚ)!S:{G¹ÁW¿çcÕÀéWkè{_ÛÅÎÄíÏôxɲË
å|çÙøSЩ±>Ï»¬´}:ÉÙ&·ã?BÁ~¦âuP*;çñʽ[#Á[¯QÈ?
OÏêÿÙîo0v?G~5m§7óë·L2xr®=R¯?ý*.VxF¤«¸7®¨¿$¥Öî ðRw8)rì&oîFFUíMA®¯<!'ÁPl$¨/d%>#¦¸¾ó¨)WDê°b7æÞÄ~Á³^J"XØÖzß@aAò<T¡}
+»ÊÄ!N>ʪjÊ~Xÿþ@[3@°ÀKÛA¥/qôVç;áTÔP0ÍQyv¡KãÚÏüdjì%ª5in+Z¿mvV¸:ih
µË»á`6$kkÞÓ
á×Góol÷[@!JM¨.RE|ûqðüì´üÞ-ت êRÖeËbÆÒ ù]NÚñÈ)¬á^¸¯ëÊD5«!Ü.C¯¯_7
+&¬EBαxÞíTgÚÛLjediÚÐUãØdجª¬®Ôþ&È+'| WîçÈ«ùUtzà]1¶XÜÑÊE@nÚjM$
+±§ÕØapU¦fT°Jµ?»ßÁÔ«g#2U+"¤Ê~Dà
+¸+¨\ª|uÚÖ· ¸$Xby6Té¡B ÍLí1^;´Að\ïFPTmsS·3IhÐçh¦ÛÛÓ[ôosBÉ@óÙB.-wÑ[lÿYÕCjÚÜJw7'îzz¤óvÓaÑtl¬ÎäÛíVÍ
¿mÊëjÅ!Ö+M?weÌ Ý
+ÆÜÍ#¯|WîY¤Ï¬tA¸Ùì¿^Û-ûÐê®?«¶»°XÅ~£K{ÆâYÕ7+ÙFù2F
+®w9XÓ²c)9¿+ÏbnpÁ[¼ö2ãÆ.5áÞæÚx]Õ0þÀËp,_»GSË}& q]N¢ã+taÓ5`: '.eê>|Q#?RÖý&©¢ê z3íÖ°ÒQw:ò*Má¼x>§õðÞ×6&ê)ÖÞ]èÊoêÔ߶`$F!À:mªºR¿1ú-)Û ÀZ
¿Ñ4Nì,rÂhw´7»ijv¡r3±amìA̳õ÷ÖY*À.Û^ÁµjíÌÖ®ç?\ã~ÌÝöÍz>ȾÚ4ÂÆüæ29(\í~<üÐ:l&ù%»úoÚ `fíáfo5yâßÎâé7o,@¹uWÁµ4jÅSä°Ñ©tV78néÕ"Ľ]Ô%Ø-m7£]´Ã4¸³ÑW¹
+Ô
Ù?»VPÖºFêIrQ(ÞKÆ*lüyþØ~}5,ôÒ<£¶» ÇCÓ¡Lvxvö³°qúK[_ ª<ßjþ¶SÎÙ_öÇãbëoØgº¿v
+¶>4þ oÓÎiç4=ÓÔ9áÆpú4ÓÜlºuXN·
+·n¡tç\s.Àñr$¬LõæÐPs¾Ú\Vѽý/«aVSfñôéaÕΫ¯#æÒI·ïðæûÝÆQÂ#||w¼¦ûXªÓß\©êÂÚú8Ün·¿ÚV¯úÖ!+ÿô2ï·°t8dî«Þþ?±¿:«>zpýÃA÷ïæ{ïuç¸9{Îd|t#ÌH¹d0´nû8UlòSôü
+äù0æ.Å»9Ü®*88 4ò
+ï¿^T~WäóñøSÄêÕ¡h
k¯Ù=ÆÍù§%%2Ì?U·äÊ}óOûþ6ýË-Y¨²$¢¬g¡ö«;ø!é´½rMYÈ5µ¶iexÜ«LUkjkW7¯\»ø"ü4ù²×|ÝênñÌÜ*V0O¨ÀØædÖ4ÓÌ'Ô¤B°ä
H>/Ñ\«5ûöæ^ÈÊüå¡4BÚøndÝ]ï^ßDÑW±ùÂûñ¤»}CäIl¿sFûQP%!ê>7~½Ú¼i
+Ô\ó|&Al-ßµÎÌÕ[óVc¦¸e¹"*á0Y¢*iðÓÅwÿ=Yp
endstream
endobj
194 0 obj <<
@@ -828,38 +818,38 @@
/ProcSet [ /PDF /Text ]
>> endobj
202 0 obj <<
-/Length 3611
+/Length 3612
/Filter /FlateDecode
>>
stream
-xÚíksÛÆñ{~'ÈyÆÝá´éLãØi;j:MÕ§N¦CÄd´¢ßݽ $B")JÇ:,îöö½`ÁÙ üðUâ~¿;þêåL˵Nǧ.Kr=ÈxÂ
-§wÃéùh,µÎè\¸ó9OG¿ÿu0qÆp[®r{Ë)dí+!7ð$ÍÒ]Ïá0î°ç°òË7ÚÄèKf¸ 43öe1§I>\Âù9îÏVîÁNá'Ò Lj¤ù' UºÏoàø9QýáXJÍ`çî_Ü9a9HaÀÅgö7Fð:q« íñÑã ÂÍpî¾Î½Ð.çxé1ñÆB¹ÑÝvþ R±ÑX+3ün'nŪFè.B
-âPSjî8q¶Bc§Lçª)PµA)¡%¡{å9ð"ÔR§Iå7uÈ¿aÐnI6,Ttç0ÃâÄaJ7+[
'|9;±ë-
-×Ö¶SâÈå¢bå\y}<ñ;è$8ã0à Ïï*··÷D¬ÂþxÅÄê·$ §´·Â"Ù +ʵ3¯òKl²è.i ¥|0T°Éu!@ó`WË<e2CJK9g ·÷¦`R¸HG
§0^f)ÉóÇ×d?zx®¸÷˪»(ÁYjþ·¦V5/Õ
SI¼$jZfÀJRYG2s¿¸ô2¨uåOjí(aWÁEP55ìUѤÛjDÐûpE âóÑÝE4"Áú[¾j Ô¢OTl÷#ZÈ ó©-¹Þ{¸XPÆ)Gp?'<í ¾é%ã
Ej:Ãà-*ÅÔo
-ÉÚÖå
-ü&ÙN030ûmhT TæF@rºE¨è{jr3@`Ó©jOñX@àÞ ?ta&4 zsÓ1OÆøøį$]³äLÔéíh[ÑRv40"Ú¡ETÔYtÙ~¡$KR¤²fvª{}îÌ §TJë1Ýù¢a
-y=J2^¢Jüú¢ks Ì$Y½½u|r&ó,±TiÒZ'KYO§YVë¢F'©4"¹è%2rsÕ)\óztL"ʲ»0ÉÁh©z¡ºö¶3w¡,:B
[ÚOòM»|å:k fæ:TBJáæ\GRH¦µnmµ1ã-õÌÈ UmyÅMäОÈÆpÁhKCp Rþ¤Ò˨5Î]*Áx.î²*ÈÁãl¥·ë9^ã =º´7bΨåµëÈy-îüjIp[qsÌÛÅ.¸ÂýKÚÓ»Â^ªVäL És;0qãkN|'¹é±é_YÐÅÌmÆ_ãdna,ªz§x*z߯ÎýâäÆ?P8>NM5[kBÔá ËHw7é¼wc~Ê?sçè7ý5 ªT¤ô§ùÞÁp¡â+kÝfé:Ô¿°¾Ì³$ ÄpP6ZpÇD<"hGÒR·ËBHÏ2н=ùhf!W¡%o2ïïµ^K éfáõUÙüV
-h("¢¬(ÄÂRU¬LñêJ×¢ §ùÇOJȧy+²M $\(9tÏí2.ÀU®gö¶Uó G¿
½7ÍΩ¼wìPª£8°´±Ó§²d EPõÞs´¼Ø§¼AI@è³"ÀÜÂâY+¥õñó©ÅÅ©ÚÇÅÂ)LÃhl¡A×o¥."j|ß6nQôª×Áyá
-ïKâxÁ*ozV-²àÅ*:òÖî,zIÞ`æ¸tN¹¸ÕY²KÒf=c¦óÏ´×(¬]5Y+°}3À%7䤲
-êK=bÈÒºQà½Qf("³Np:ªmè²ÃÛ"_ÏYþÉzJA´nº\Óg¼Å]¼-G±4r¢ÝSPÁæRzøÓ ÞI+Îx"KL)4.=³ûE¸É,Mcÿ[TÌÆ,¯h!åò MÚ&·äÐnce`Á òÎWö:ðDµ½vjPñÎàObÇÄIXÆd±(B-È-æieLy¶â»D2pê Z(°A5Tâ6Ý=Ó&
¾Û ×5Æz
-ÃL¬ê¬í42È`T%y§7ˤVÏ»2Ìô®¬]oµÌ
-þ:-°ËVªuÏäO3mLþ5=Þv(¹Ø.^háÅ·gPμc.AEE"ʦ\ÈG"l
-_'ëÊïW,ZYÇzfÿZ#ÿUBAÆ{GN#¿¶Ã¯ÎIÃ6JäB]~ýÿg{òSt
a¦ÈP$jÒØoLJc¢Fù5˱T/°Ú
-ûHhÒk#ky4¡Óºð:r\
ÏØîmðch<6ÃyB÷ýý(hw<&AÒÏ(z×¾òH©)ÿæìÂÕnKÂ¥3¦ÃñÖ¾õ!dýwxd=¾ÚY~XÐÄ3"kcçå®{Å6Pß=.î«q@ùð©B?ÜmËÒP<ÜF`ÛXqéPäüc_ïäÊhJ|TyeÇ'ÀÂÓþ 3ï÷$5$kAUI<±9a7í8õ°ÚGWøÙ± )KE+âz¶Fdóü\ÈÍ#²#²kAÚ¹éÈqkDÔmF/Ð-wÁÃa¬
-ßîDúXy¶"e}VÛo©-//¶Ø~õyù$z
-º2ïT-MúØË©÷ý¦26¾\Ài¿7¿{¨ÌﯰuìS¾yÑO
-¯ú{¸í¼röPÉCÍÙ²³=ô¨PM÷ÓCþÏÚÛÊÆÌÁ_ßO«2Ãd¢w¢ë÷-¢¶cPÍx"úݵ\3ÆÚäÑ#Q|ðð/÷Èw?½ü<¼àír´s¸x5Uçj'þqLáñ}¼ñ>2TÆÛ9 b}=Üö¢VEק/Ô_H8×O?&ÏVUf«§jép>
-)½<ÔD²±¡ÐÏM(D+ûþ¤õXqÓ&ã~`ë}Ãó)- c?8}Æ_ìñWOÉÓè}Þ÷þ}ôÃ3PËwQÚLúûíÈp.v ¼ì'þÓéåo9?ºý>^
-§¼ãÛÉÿ6r×Ç_âÅhYú¶¿z,U;/å[ÜR·<z%¸%¥Û¾Ñµ½]üÿ¬$*úñæó-(ï±j{W=W(&ònK7wÒYhñT4c?¡ÂÜÈýßJlÜek-ÑÕ;\ºq\e,OE\õör»PùQp>jû¿=`ÞõfI ýXÒqó}=ªðîÉiø|´~<âm_E_lC_¶y¬NÕ§o÷_Ýy±`HgL¦¦iÞÅóîJíô)ê
-´2¯CòËÿßî·³'OÝë tüÙÁÙ+y*û²÷!µÏµf]&¥ê˺ê7Ϊ©3¼¬F¥TÍïÉÒ¾ÏݸÆoAu*Ó½
-éա٦˶+u?@¼º/úî¨yÞ߶nÎRòÃýBæ'Z3.Ä`,2fr§~oü7h«Ò5èr¨¿±/$5òÎT2U÷XSíÈqäÕ ¾¹dªXÝàÑ8
ᨸ§$R
-×Un>£¡·®ô%5öùÚÀ¶ÃÏÜw[üpco«ûP=¼¬;Ø&1]ßW·;áwõ¹¶£_L#ß+¥ôüBüÌսǩȺ±
-Ú¦ç¡QvÁ6#ºqt¶ðDDÝÒ»1øîgpÞhÖçk5'yW+jÁä[YàDSZvQ·²°¢6c
-9~õ$ãήÝU0cL«w0qCü3Þjhêq½²Vº´2{¨4ieéwÊDܾÊPÀ¨êk&Z½ÎpN/¡¥àqæ{ýøecéºkÀ³¥Y´¥9½»vpÝ'iê
-LsRúª+o·
-Oðö)Ͷz4Ôì3ÖÙVO¦ @uEèí&bb·TDÑùuéßäz»ÝÒcdB¹.m¤7¶ÜA£§¥mhCø;fõõJ'ÔNNâ9V³¦öoµt5ɽ
-î¹9ËòFÔ
?ë$¹S$|StºrtÒîÈúÖY£ëöùªøS'»²Lv´Ô·µ¼êaÃÞÆ2WÔT¦!
-×¾!Nù!"|Y¹^S·"4DEÆÏ£&¡ïmÓ½æµÜ0«æî:PÖQ]FË;ZÝ°býªûº¶ÚWùW¶Zæþ¹¢ÕZ]Û0(÷K¹Ög
Û¾í<èûÅM¨]g½éß3ÅTÒ÷ÝhÇiÇYþõñWÿx»~
+xÚíksÛÆñ{~'ÈyÆÝáHÎ4¶£¦ÓTíxêd:´I¬IIH+ú÷ÝÝ»(B")JÇ:,îöö½`ÁÙ üðUâ¿;þêå£eZ§ãÓ3°DÁñtðn8ñ!Sq:þ|>¿9þë`,³ÖÆp[¦2wË)¤ó+!ûñ$5Céa28¬?ÂyX¼|£m¼É,b6 ô#À^±ÌaI6\Âù9þÏþÁNq£IE«4f%Z 5iþ @þÀó8~NTâ~xR3Øùû9"wNX
ê.v8»p¿1º×_ùçþnð÷uî
v9ÇKgpG·ùQ(3ºÛÍ1@*6keßÑÍ°àįXÖÝE(¡A4jJÍ='Î6Rh,³iÉp-×¥î?渼ÄPCH:&ÜÔ
+"ÿmB»%ÙpPÑ
+FÂóOX)ü¬tîðÅìÄ[Íìhxkm7Å)\.:)¦XÆU Ø÷ ø)¿N3úÜó®ô»ñ[yOÄÊÝgO>pGÂ
+äö;$dE¹âqæÔ_XÃ+,ºKH) Õ¥Úäm!@áV32Ä¡¥¥D³»{S0+\¤Ã£<P
+/MJòüq4å'^"«%îýò¢ìÀ.JpZO?Á©SÍKDuáU/°ÒTÖÁÌü/.½¬Ôº'µöp«à"M¨ËMnÆÒc´ÞjDÐ÷pyE Ä磿hDõK¿þ|Õ4@¨D)¨ØîG´æS;r½p± 9S00à~Nx½× !d¼pHMGb¼C%!Y;Ðs²Ì¢±ßÄì38fߢM *ÊÜêáHN·5 }7 &(çÓ
+V1ªöäǧðÖ
+ðC¶`BJon:æ1Ì¿OÂZIÒ5KÆDmÞÆÆ®EK1ØIÒÀHh!PÑ@dÑeû
,IÊ%Ú«îõ¹7hR)Çôç5Èçõ(Éx*ñë®Í$0z{·ñÉÌL$c©Ò¤µ^LO§©uÑA#˸J#Y m{«NáRר¤cÉ1waÑRõ$Buílg&ïBX*t
+w´xåvøʵi fæÚTTBJá缤LkÝÚjc:Ç[!ê'A$ËÚWæ7QCwû"' -8øcÊ £ÎXzw©ãhºË2'³Á®C}#>` ôPètÒÁy£Õ®#㵸S<ò«$}¨ÜßcÖ°Ø>vÁ
|TÝ¿¤=-«ÈÝ¥rEÎ<w?~Ë)ï$7=Ö0ýk"ºY^Р͸ãkÌ/ìBEYoóOE3Â@ïÓóÕyXÜø
+ÇÇ©m¢fkMÚ#<áâéï&γôLàÃopSÙðg.ÑáᦿTþ ß{.4R\qå¬ÛÌÑÓ"=S[úîÏ÷ó 1ÔC¥Ke¦Ü3OK¢È'ÚtÔírÒ3º·'Í2¤à*´äMæý½b-×hºYxdî0S(!+ªba ©Ë*V¦Äu¥kQÎÓüã§%äSKYƦ®A<ºçn@à*׳î¶UóJaz³`6.1_SïØ¡"eFq`áb§O#åÈ@æ! ê½ç*Ð
+bò%a¶¡Ïò
+f
+g6Äϧn§h`¤0
+£q²
n]¿ºª8Qãû¶q¢çT\æy0¼K°>aãa+éYµÈg¨ÈëÈ»²þso©üÔKò3Ï¥sÊÅÎ].ë[0¦e`¼FîÔìª5<ÂôÍ<ÜGÊ6¨gõ!KçFsöFD¢ãàtTÛÐe·E¸°·üÛ)ѺévpÍñ:&Äó3M"ICºÑ=9l.)¥?½` ÆÒ³T%¦¹ý"Küd¦±ÿÍKæbW´Á*å
+ MÚ&krh7µ2°`¥òÞî:ðDµ½vjPñÎàObÇÄKXÖd¾È«Z_,ÐÊÚ(òlÅwdàÔ[Aµ°Q&àj©Äoº{"¦m
+|
+¶1@¯kõ XÕ¦í42È`TJòNof¤VÏ»2̼ô.]oµÌþ:-°ËVªuÏäO3k6&o»ÜDl/´ðâ
õYd$¢3/áKGPQ²)_$
+%"ÔÀºòûVαbŸÒã9J(îÃïÈ+å×nøÕ9i2å.Püª2ýí_üW
+ÜÉOÑÉ"Cq`«!Hs`_¾±ô$Ã\RlÙsf!¥=`hVÙ¥;ÖFîòhB§u%áuä»ò´Ý1ÛàÑxl<îûû
+0[QÐíxL²¤ Qô®CEå)R=+RþÍ«/$ÜKoO)`ãm¨}!ëCÈúïê©Qôk/d%úaMϬ¯"¤,óÝ(ìt±ú&¤èÉq_ÊÇO5x¼*ªøÃ=ÙfI«úá6ÛÆ3£«:çû|'Wn¦Ä§eq¤÷ iQvB^°¬z Ó`"aÖò²ñá¢æORd-H *©§[lNá¶ýì`§ÞVá(ùª~vlBdÊRѸÙÆ<?#róÅìßìZögDn:rÜõÎ5ºå1x2µå£Ã¨S+϶B¤²Ïrû-µååÅSÛ¯>2DB÷@æªe²I{9õ¾¡ßTfÐÆ8Íâwðæ÷1qùý v¢}Ê7/úIáU·Þñ#ÑþSUòPsv§ìlÁ$½*TSåÃfæôWÏÿçMAí]ecæá¯ï§UÆ2èèú}¨íT3~߹ܮø<pxh
þåúNã\/G;÷ûWSÅx¦wâ·ÉOÑ7ï#C5i¼ ó"Ö×Ãm/jep}ú¢Aý5ówýdøÀùcòlQçXÃkUKÃôiHé}dà¡ö$½
~nB!L¹WÂ#Ç~4÷{\ï[OiIX÷ÕÄéc0þb§¿zÒLF¯ô¾¯¤áZ¶ÐfÒß×´l¬\Ds±Û åe?oNwô(sÌùÑï÷ñj8}TäßNþ·»>Öìv ø%^Z_y;/å[¬©[=ÜÁÒmßèÚÞ.þ%|Y
+Cxóù÷Xµ½«+Y·¥û
+é¬êñT4c?¡ÂÜÈýßJlÜgk-ÑÕ;\ºq\¥"®Ïz{¹]¨üɨ8µýß0ïz³$KÊýG,iøù¾ÕxsÿÈä´ú´~<l_I_lC_¶y¬NÕ§o÷_Ýy±`H&SÛ4oâyw¥ÃµHú5ZE×!ùåÿo÷[ÄÙϧÁîÛ tüÙÁÙ+y*û²÷!µÏµfRõe]ùgÕÔ^ÖC#ÈRªæ÷diß
+Éçn\ã· È:etoCzuh¶éòíU I^G
+CJwHEÔ<ëo[7g)yá!sGb0ÙÌ«ßð
+Úªð=:¤êoÜI¼3LÕmæTb;òyu^o.*V÷øf4N!b8Ê'þ)Â7T_RÃÐ*XWú[}EDàO×äg.~¸q·ÕD¨^ÖMD\®ï«ÛÍÇðÓúLK×Ô/¦QhR~¡ÊüÌ׽ǩȺ±
+º¾çU¯l<FtêÇÑÙ)"4uWOlÈ Áy£__X¬ÕDd]Ý,¨SèfwMiÙEÝÍÂ]:5º4døÕG%wfpíN¨®
l³}°qOü3ÞjÕ×ã"ze-iS°\7ûiäEúwÊD¬ßKeUÀ(ë·zM´ÚáABðÀã,´û mËÆÜèºoÀAimiNDïÆ] \7ÆIºÓá¦òÊáºäª'
+¸~E³³
+5[uvÖ)(P]z»Ø0%ÃQt~]7ù¥6£önkÚL(ߨôÆ;hô´p=mèpǬ¾ÞSéÒáÚÁÉIÜ$ÇiÖÔ] ݶ¢.£>¹ë°éní}R>ü¬äNUJê¢Ó× vk`@6t4Æ_Øê£RÅ:Ùeìè:¨×u¼êÕ#5{½e¦¨¯LC®COâCDø¢ôí¦Ö"ti% G}Bß»¾{ýk¹e*SÍÝuô ,?£º÷(µbÅúU·vmu°
+]¯µý ÃsE?«³º®gPòÝÏr¿}×|0´ûQg»Î:{Ó¿ÅTÒ÷ÝhÇiǦÿúø«ÿcV¾
endstream
endobj
201 0 obj <<
@@ -961,33 +951,41 @@
/ProcSet [ /PDF /Text ]
>> endobj
220 0 obj <<
-/Length 3208
+/Length 3234
/Filter /FlateDecode
>>
stream
-xÚÝksÛÆñ»'éLÁÄq·v&v¬8tÒºJêÛ PPõ¥¿½ûºÃZ¤-;nǼۻÛÛ÷í¢ÉÙ$üx/÷£ã{òlRe%ãÓI
eOr
QOÁÓ©
-.๧§ç\Úð,¤
çð<¾:þ룬pæÍ0Ê`Mð/¦ºÞ6f|7ű62w?ãà>+Y¶3/A4r.¨¬.§3ÓgÓâT
-þZ3°A¿YÃgئ§Þ¾ì¦ú8S[ÑL y í
-1£%dõÝç{$ÕeæIn6ÿØ¡Üßeü[xƨ<Ãé&³8Sa\WÊ´äyå@sÄDC¹¶§ms#IòÄÂ,¯S3Écâaóy½[
-#tPq&
2É^{ÒâÐýE¨Õáû=±],´-Ökè÷H}shÍÓy¦q,+z±çê®Ð
4BÅa¡´Ïa¤Ps&3·5Âæ¿0´¨ÀüùìÇ{³8ÑA. ¬ÜÔÈôcÚáPÍ ²R¢]~m¦øÍ(]KJV |§NâÕ©Dy*°Úaïèîë1:uöj=T¸ÐÛñöÿR!¡lO *ÿJ¦¦ß°|R<éåi¦2PB¼Â4
-lÌpñG
-Æ÷3jø]x"[;Ù^ß2Ûä
-Nñ¹îôé9ÿtLOj¢i0uÔ^Î7ZÌt 2w
-+ÉËmHÍRßù^k.ÓÊ2TEaöÝ,GO`ÿMôl#Ø ÷ßÁóÜÐý±ãÙÿ²/knÅWiø,ͼûëýBó2J£=dëù00Þµ*ð´lx¦Øáì£ñ7´¹°øBؼ{?¾³4Ï8fªeÍJ¿Úí;áܾÖ#ü(d:GßÒv?ÃÖnöÊO!eú¿&.òàTìÛÆ8þZïNM ÑåýÀ>T·>ÁºU(ëF6w¸ô
-RQ>ýÜ_ïÇÖÙ~`_*¿TÕ/â" ìÿÆ÷¬vDmwY ú8,
-/ +þ¾&yù8 at OÂO!x*סÎc_k\~#ü¨¤ÿ7©bEáyFEö1gjÿ*¼»´§0ÑY¨"íÞ»Ü]Þ±ØκïcdûÈß?ÃOÎuíd\ð}ó¥(ïý»5¿Ø
-¼jëXÉk!ú¹®;²ékÇi¯î«CCy?8*¼ôÎøÄUN
-
-íUÛ'õól¼ôZiyá¿ÂóØÚBæJUD6
öp:K8ø¹®$øÅ´÷|Õ:E«NÐZõ ~§ê@)K?_iXxÆ`FMçTzȾî¬Z&'ij x¤ XT$¼cMÓWbçÆ[U~uå LÉfQpÔ8¾íÖÄq68ÎL
-xJ od²fcðÒ÷Äh¨éÝ'upìAsÂ^tý¸FrÇÐ}XdDA£f©JÉjÊæO+àÞÇ,hNy]C,!«9º-øgýÎVyh|ÝwõÒA¹ý±TýQÌU×@$JM;l©(d·rjÝØeµÊYÁßþ:õu}¤*²&î<õ³¥¸
HÛ9m9%Ï{s2À.Ï\äPñ9Y¶k»<NÍ×LZ
-Å:SãAÒTJD¢#Wßq¶îd©:Òà̼§ÈNù@®Muãʦ©ÀÁe%)¬MÙ¥]W§F[ ]c¡fÃOfë2"çöXiþ¼$S §àÓt<%¡[,©4F.ãòyJBý¯±Ä¸¨_F*7pÄl7j^¹pÀ·Ê!yóÚ¿^éeÏ)Ŷ«´-ñN°vãíÀ®h\3Mè ¢ú+U]«^4µWÒÂíiÝ®j-5ÛOFÁÊCËmµ~mB*]Á%:6rý|¬<Iβ¿,Û «#¯rº/hqþP @Æu¥X"×Ì®!ÔåÊr®@U3_¥l"û%¢cØxÃÕѬøÛaÚ056$N¼7cR Újñ¹½0ÓI¼T1Êûi_@¦uÇÕ4ð
-~ ¸5Uà¨Ñk¤:øÈÖ:umØí.¬Ñ¤(1áÚq87Ä¢¢fý7 ~ÍpLÚtüî*á
±MqÅ_6~Ù5GZåÞ¦¶A\Tã'CÈ]Åëïq§öv%.ðf/s/ä*þ'ÙÚh¤Ä>4ÂïÌÆÑ·X7ز¤>Qdì'ã\¹gÆèÈ×ß±PräaõÛiZ°!Ñ#iúÏK/0f¼8ÒÊHb¦5PK$(ÐgxC&lgÄáF3QÌ
)ËÑJ+s'PwS»q£]ô.çî5
{F\æv¦z/smÌQ¾¶³YBÙà£G*þ»wÅFæó,Exk.k8AL͵1
Ñ6yOY÷j²r[>úM(ºÓ,Ð~HWƸÒ
- ¿-ð]ôW,öÒäM"L`¢qâQÔâô=ZüÈ\ƨLE1Òú½á_
yº1å
ÔXÒ9xWuÛ̦e¨3[3?½r¤ÇÓBM²Èؤ®oÉZé±BEX¤;¬¸VdZ`¿Ã{ÓG,'F²VÆà g20Ý
- ¸Ò_7"¾ÌÍ¢¼ñëÖtÝçNà³à{DÉá,¤>/»9pfC§£²ôìHQ0[ð:êµð°ë/ñÌjÓß®ީÍnzWn ÍÆ[(°¹ìHJfi¹¡×*´Vbe8(íjAÏ>}mØáÕøÇÍ´H!Qaü;3Äin1z½lã¨1n+fçÜRñ˲aÜ t*
Ðuî¡9sx@u»RßÅ)¿ÃKëbíñS¶4w¯r¯M¶+\´á
- ëõRàUYWCkÝç{eOsC«nl¤_õÆH8$~éÃrN,d8G¨W¢£¹¬ ªdÞóNUm ?ÜpNÅÎéÏ%s÷bR}©Ù-éÆàÕßÔ#Íme³ßË@9bõfP@ÉxWù£~
-Ñ;Ù$d¹.bç U8æ ½@'UjÍ«Î=)0Qî+'ãy~Øݵ¹=:£Íç`K{²pÏÓ3|WÁÔ¨u9wq*ºXQÃvz¦óÉaUß(Êy?ByßñK <s¸4)b¬æ¨ãvg¦CÝÓ ?¿£Ë¶µr®(¤ÊúWbx%/]Gþ_g"?pP=YÿiR~'Wï¼i0åóÒ>ü<J$ft_Т\.Áù_õYèûc´ûv:+ÕïC6î1Ô »tîulÝ ÙØGV^/ú\wW´Ì«±Í 7ß9<;¥eÂÿ0³ûoûgú
§Täeð5w9n®Gç{(ì;Z¥0*S_(?L·³KAB;«<â×c~ý@c1-
-=ð^÷Kôd rëùmú83hn+åS¤¥<,c¼èè7®(3~·½ÕLa¹êWZÉ#ÙÞ\¥FrÜÚøY/An¬²pj¥E°µ õk{ÄÁs×û2Ù:©ô×ý¶k±aÏ9ÙÍøs*ßbüÏú>Ýß·SµE[ kΫ®½Yöÿ¶'x-?+',«¶n)ë¸6aíèR¼p¾¼ÎJìh"Aç=m}P`ÌUªÚäWÁFF Á.e7_îÈ}Ñð¯wJiÕ{ÿÏÜÌõäMOág6îqVçy¨#[2ùãý8Ût°,Ít±Æcëm»ÍAt°¤ëóq°Q
-SÓc&\±X¯½Â_ÒU%n&Hò0åoJoÀã{ÿñÑ
+xÚÝksÛÆñ»'éLÁØq·v&q¬¸tÒºJêÛ Põ¥¿½ûºÃZ¤-;nǼۻÛÛ÷í¢ÉÙ$üx/÷÷Ç÷åÙ¤Ë,K&ǧ2Ë(ä*
+£8/&/§S\ÀsOO
+Ϲ´-áYH[Ï?áy6}uü·GYáÌ%aÁ4á%_Lu¼mÌøn:cldîÆÁ |V²l3g^>iä\PY]Ng:§Ï§Å©üµf`~³ÿΰMO½}ÙMõ;",p¦¶¢ òAÚbFKÈ ê{À[÷HªË<ÌÜlþ±C¹Èø·ðQyÓMfq¦Â¸2®iÉóÊæ-rmO9ÚæFä
Y"^+¦fÇÄÃæ-ò{7·"-Fè â$L
+e08½.÷¤Å¡û-P«Ã÷{b»Xi[,¬×Ñïúæ)"Ð9¦ó$LãX8VôbÏ;Ô
]¡iÃBiÃH¡æLfnkÍ
a<iQùóÙ÷&/fq¢\@X¹©éÇ´Ã- d5¥>D»&ýÚL-ð+Qº[ øOÄ#«SòT8aµÃÞÑÝ×ct:ê4
+ìÕz¨p¡·ãí7þ3¤BBÙ0AUÿLM¿`ù¤yÒÊÓLe
[TRUNCATED]
To get the complete diff run:
svnlook diff /svnroot/rcpp -r 3274
More information about the Rcpp-commits
mailing list