coin/0000755000175100001440000000000012622372054011223 5ustar hornikuserscoin/inst/0000755000175100001440000000000012622326244012200 5ustar hornikuserscoin/inst/CITATION0000644000175100001440000000324212557641056013346 0ustar hornikuserscitHeader("To cite coin in publications use:") citEntry(entry="Article", title = "A Lego System for Conditional Inference", author = personList(as.person("Torsten Hothorn"), as.person("Kurt Hornik"), as.person("Mark A. van de Wiel"), as.person("Achim Zeileis")), journal = "The American Statistician", year = "2006", volume = "60", number = "3", pages = "257--263", textVersion = paste("Torsten Hothorn, Kurt Hornik, Mark A. van de Wiel and Achim Zeileis (2006).", "A Lego System for Conditional Inference.", "The American Statistician 60(3), 257-263."), header = "The main reference for the framework implemented in coin is:" ) citEntry(entry = "Article", title = "Implementing a Class of Permutation Tests: The {coin} Package", author = personList(as.person("Torsten Hothorn"), as.person("Kurt Hornik"), as.person("Mark A. van de Wiel"), as.person("Achim Zeileis")), journal = "Journal of Statistical Software", year = "2008", volume = "28", number = "8", pages = "1--23", url = "http://www.jstatsoft.org/v28/i08/", textVersion = paste("Torsten Hothorn, Kurt Hornik, Mark A. van de Wiel, Achim Zeileis (2008).", "Implementing a Class of Permutation Tests: The coin Package.", "Journal of Statistical Software 28(8), 1-23.", "URL http://www.jstatsoft.org/v28/i08/."), header = "The reference for the implementation approach in coin is:" ) coin/inst/NEWS.Rd0000644000175100001440000010415712622325172013252 0ustar hornikusers\name{NEWS} \encoding{UTF-8} \title{News for Package \pkg{coin}} \section{Changes in version 1.1-2 (2015-11-13)}{ \subsection{Bug fixes}{ \itemize{ \item \code{of_trafo()} did not handle ordered factors of length one \item Parallel operation (via \code{approximate()}) changed the random number generator state upon first invocation unless package \pkg{parallel}'s namespace had already been loaded } } \subsection{User-visible changes}{ \itemize{ \item Documentation updates } } } \section{Changes in version 1.1-1 (2015-10-25)}{ \subsection{Bug fixes}{ \itemize{ \item Methods \code{initialize()} and \code{show()} were not imported from package \pkg{methods} } } \subsection{User-visible changes}{ \itemize{ \item Documentation and vignette updates } } } \section{Changes in version 1.1-0 (2015-08-14)}{ \subsection{New features}{ \itemize{ \item The Fisher-Yates correlation test (based on van der Waerden scores) is now available (see \code{?fisyat_test}) \item The quadrant test is now available (see \code{?quadrant_test}) \item The Koziol-Nemec test and its corresponding transformation function are now available (see \code{?koziol_test} and \code{?koziol_trafo}) \item The Savage test and its corresponding transformation function are now available (see \code{?savage_test} and \code{?savage_trafo}) \item The Taha test is now available (see \code{?taha_test}) \item The Klotz test and its corresponding transformation function are now available (see \code{?klotz_test} and \code{?klotz_trafo}) \item The Mood test and its corresponding transformation function are now available (see \code{?mood_test} and \code{?mood_trafo}) \item The Conover-Iman test is now available (see \code{?conover_test}) \item The weighted logrank test and its corresponding transformation function are now available, including weights for generalized Wilcoxon tests (Gehan-Breslow, Prentice, Prentice-Marek and Andersen-Borgan-Gill-Keiding), the Tarone-Ware class of tests, the Fleming-Harrington class of tests and the Self class of tests (see \code{?logrank_test}, \code{?logrank_trafo} and \code{?logrank_weight}) \item The sign test for paired data is now available (see \code{?sign_test}) \item The Quade test is now available (see \code{?quade_test}) \item The Pearson chi-squared test, the generalized Cochran-Mantel-Haenszel test and the linear-by-linear association test now allow the alternative hypothesis to be specified in the doubly ordered case, i.e., when both the response variable and the explanatory variable are ordered factors (see \code{?chisq_test}, \code{?cmh_test} and \code{?lbl_test}) \item The Kruskal-Wallis test, the van der Waerden test, the Brown-Mood median test, the logrank test and the Friedman test now allow the alternative hypothesis to be specified when the explanatory variable is an ordered factor (see \code{?kruskal_test}, \code{?normal_test}, \code{?median_test}, \code{?logrank_test} and \code{?friedman_test}) \item The marginal homogeneity test now handles ordered responses and/or ordered measurement conditions and allows the alternative hypothesis to be specified in the doubly ordered case (see \code{?mh_test}) \item The Brown-Mood median test and its corresponding transformation function now offer the choice of three different versions of the mid-score (see \code{?median_test} and \code{?median_trafo}) \item The van der Waerden test, the Brown-Mood median test and the Ansari-Bradley test now handle \eqn{K}-sample problems (see \code{?normal_test}, \code{?median_test} and \code{?ansari_test}) \item The Fligner-Killeen test now handles two-sample problems (see \code{?fligner_test}) \item Maximally selected statistics can now be computed for objects of class \code{"table"} (see \code{?maxstat_test}) \item \code{symmetry_test()} has gained a new argument \code{paired} that is used to indicate if paired data have been transformed in such a way that the resulting unstandardized linear statistic is the sum of the absolute values of the positive differences between the paired observations (see \code{?symmetry_test}) \item All transformation functions are now passing through missing values \item New function for rank transformations (see \code{?rank_trafo}) \item New function for maximally selected statistics transformation of ordered factors (see \code{?ofmaxstat_trafo}) \item The Conover-Salsburg transformation function now allows the \eqn{a} constant to be set (see \code{?consal_trafo} and \code{?neuropathy}) \item The transformation function for ordered factors has gained a new argument \code{scores} that provides an alternative way of attaching scores to ordinal variables (see \code{?of_trafo}) \item The approximative (Monte Carlo) null distribution can now be obtained by parallel operation using package \pkg{parallel} (see \code{?approximate}) \item The exact null distribution of test statistics based on quadratic forms can now be obtained in the univariate two-sample case \item The exact null distribution can now be obtained for tests specified with case weights, implying that exact \eqn{p}-values can be computed for \eqn{2 \times 2}{2 x 2} tables or \eqn{K \times 2}{K x 2} tables with \eqn{K} ordered categories \item Evaluation of the null distribution can now be suppressed for all test procedures by setting \code{distribution = "none"} \item The mid-\eqn{p}-value can now be computed and is accompanied by a 99 \% mid-\eqn{p} confidence interval when resampling has been used to obtain the null distribution (see \code{?midpvalue}) \item The \eqn{p}-value interval can now be computed (see \code{?pvalue_interval}) \item Step-down adjusted \eqn{p}-values based on the joint distribution of the test statistics can now be obtained when the asymptotic null distribution is used \item Adjusted \eqn{p}-values based on the marginal distributions of the test statistics can now be obtained when the asymptotic null distribution is used \item Adjusted \eqn{p}-values based on the marginal distributions of the test statistics now use a max-\eqn{T} procedure, instead of a min-\eqn{P} (which is now deprecated), incorporating discrete distributional characteristics when the approximative (Monte Carlo) null distribution is used (see \code{?pvalue}) \item Single-step or step-down adjusted \eqn{p}-values based on the marginal distributions of the test statistics can now be obtained using the Bonferroni or the \enc{Šidák}{Sidak} method (see \code{?pvalue}) \item Unadjusted \eqn{p}-values can now be obtained (see \code{?pvalue}) \item Random numbers can now be generated from the permutation distribution (see \code{?rperm}) \item New data sets on gastric cancer, congenital sex organ malformation and unaided distance vision have been added (see \code{?GTSG}, \code{?malformations} and \code{?vision}) } } \subsection{Bug fixes}{ \itemize{ \item The standardized linear statistic of the Pearson chi-squared test was off by a factor \eqn{\sqrt{n / (n - 1)}}{sqrt(n / (n - 1))} \item The Pearson chi-squared test ignored user-specified transformations \item Partial matching of the \code{scores} argument did not work for Pearson's chi-squared test and the marginal homogeneity test \item The Fisher-Pitman permutation test, the Wilcoxon-Mann-Whitney test, the Kruskal-Wallis test, the van der Waerden test, the Brown-Mood median test, the Ansari-Bradley test, the Fligner-Killeen test, the Wilcoxon signed-rank test, the Friedman test and the Page test did not return an error message when supplied with a censored response variable \item The Brown-Mood median test \eqn{p}-value computation used the wrong tail of the null distribution in the one-sided case \item The test statistic of the Wilcoxon signed-rank test sometimes had the wrong sign, due to being based on the sum of the absolute values of the negative, instead of the positive, differences between the paired measurements \item The Friedman test did not warn when weights were supplied \item Maximally selected statistics did not handle user-specified scores for ordinal variables correctly \item Two-sample problems were not identified as such if the grouping variable had unused factor levels, causing problems if, e.g., trying to use the \code{subset} argument of \code{formula} methods \item Stratified tests were not allowed if \code{block} had unused factor levels, causing problems, e.g., if trying to use the \code{subset} argument of the \code{formula} methods \item Transformations involving ordered factors or survival data sometimes failed when performed within blocks \item The maximally selected statistics transformation for factors sometimes dropped its column names \item The maximally selected statistics transformation for factors retained unused levels \item Approximative (Monte Carlo) \eqn{p}-values for stratified tests were wrong when the data were not ordered with respect to the blocks \item Exact \eqn{p}-values for stratified tests were wrong when each block contained precisely two observations \item Exact \eqn{p}-values for tests with an ordinal grouping variable were wrong \item The smallest single-step and step-down adjusted \eqn{p}-values sometimes differed from the global \eqn{p}-value \item Single-step adjusted \eqn{p}-values were too small when the support of the null distribution contained values equal to the observed test statistics \item Monotonicity of step-down adjusted \eqn{p}-values was not enforced when using the approximative (Monte Carlo) null distribution \item The density function of asymptotic permutation distributions for maximum-type tests returned nonsense; it now reports \code{NA} \item The density function of approximative (Monte Carlo) permutation distributions returned nonzero probabilities for values not included in the support \item The density function of exact permutation distributions returned a zero-length vector for values not included in the support; the probability of such values are now reported as \samp{0} \item The distribution and quantile functions of asymptotic permutation distributions for maximum-type tests were not handling vector arguments correctly \item The quantile function of exact permutation distributions sometimes reported \code{NA} when the 100 \% quantile was requested \item The support of exact permutation distributions for stratified tests was not guaranteed to be distinct and ordered, which in turn caused failure when trying to obtain values from the density and quantile functions \item The printed output of the Pearson chi-squared test and the generalized Cochran-Mantel-Haenszel test claimed that a \samp{Linear-by-Linear Association Test} had been carried out even in the singly ordered case, i.e., when either the response variable or the explanatory variable is an ordered factor; these are now reported as \samp{Generalized Pearson Chi-squared Test} and \samp{Generalized Cochran-Mantel-Haenszel Test} respectively \item The printed output of the Fisher-Pitman permutation test reported the parameter tested in the two-sample case when the explanatory variable was an ordered factor \item The printed output of the one-sided Ansari-Bradley test reported the opposite direction of the specified alternative (but performed the test in the specified direction and thus reported the correct \eqn{p}-value) \item The printed output of the logrank test did not report whether a two- or \eqn{K}-sample test had been carried out \item The printed output of the logrank test did not report the tested parameter in the two-sample case \item The printed output of maximum-type tests did not include the alternative hypothesis \item The printed output of the general symmetry test claimed that a \samp{General Independence Test} had been carried out; it is now reported as \samp{General Symmetry Test} \item Objects of class \code{"SymmetryProblem"} were not checked for validity } } \subsection{User-visible changes}{ \itemize{ \item The Pearson chi-squared test, the generalized Cochran-Mantel-Haenszel test, the linear-by-linear association test and the marginal homogeneity test now use a scalar test statistic in the doubly ordered case \item The Fisher-Pitman permutation test, the Kruskal-Wallis test, the logrank test and the Friedman test now use a scalar test statistic in case the explanatory variable is an ordered factor \item The Fisher-Pitman permutation test no longer allows the test statistic to be specified \item The Pearson chi-squared test, the generalized Cochran-Mantel-Haenszel test, the Kruskal-Wallis test, the Friedman test, the Fligner-Killeen test and the marginal homogeneity test no longer features the \code{distribution} argument (but still allow the type of null distribution to be specified) \item The Ansari-Bradley test no longer features the \code{alternative} argument (but still allows the alternative hypothesis to be specified) \item The Wilcoxon signed-rank test no longer features the defunct \code{ties.method} argument \item When the general symmetry test or the marginal homogeneity test is applied to a table, the variable indicating the measurement conditions has been renamed to \samp{conditions} (from \samp{groups}) \item \code{surv_test()} is now deprecated and has been replaced by \code{logrank_test()} \item The \code{teststat} argument no longer allows the use of maximum-type statistics and quadratic forms to be specified using \code{"maxtype"} and \code{"quadtype"} respectively \item The median and logrank transformations are now increasing functions \item The default number of Monte Carlo replicates used to approximate the exact conditional distribution has been increased to 10000 \item The exact distribution of stratified test statistics is now obtained more efficiently, and especially so for large numbers of strata \item \code{exact()} has \code{algorithm = "auto"} as its new default, preserving the behavior of \code{algorithm = "shift"} in previous versions of the package \item The shift algorithm (\code{exact(algorithm = "shift")}) no longer silently switches to the split-up algorithm when non-integer scores are detected; it now fails with an error message \item Single-step adjusted \eqn{p}-values based on the joint distribution of the test statistics are now computed slightly faster due to using only the unique realizations of the test statistics \item The support of an asymptotic null distribution is now reported as \code{NA}. \item Small changes in the printed output of the Pearson chi-squared test, the Fisher-Pitman permutation test, the Wilcoxon-Mann-Whitney test, the van der Waerden test, the Brown-Mood median test, the marginal homogeneity test, the Wilcoxon signed-rank test, and generalized maximally selected statistics \item The printed output of the Fisher-Pitman permutation test now reports that a \samp{Linear-by-Linear Association Test} is carried out when the explanatory variable is an ordered factor \item In the printed output of the Ansari-Bradley test and the Spearman test the tested parameter has been renamed to \samp{ratio of scales} and \samp{rho} respectively \item \code{wilcoxsign_test.IndependenceProblem()} has been replaced by \code{wilcoxsign_test.SymmetryProblem()} \item The \code{"IndependenceTestStatistic"} class is now virtual \item Objects of class \code{"IndependenceProblem"} drop unused factor levels \item Objects of classes \code{"ScalarIndependenceTestStatistic"} or \code{"QuadTypeIndependenceTestStatistic"} now have a \code{paired} slot \item Objects of class \code{"ScalarIndependenceTest"} now has a \code{parameter} slot \item Objects of classes \code{"ApproxNullDistribution"} or \code{"AsymptNullDistribution"} now have a slot \code{seed} containing the state of the random number generator \item The package manual has been completely revised \item The memory consumption during computations has been reduced \item Henric Winell, a long-term collaborator who donated almost all changes in \pkg{coin} 1.1-0, is now listed as author. Welcome on board, Henric! } } } \section{Changes in version 1.0-24 (2014-09-17)}{ \itemize{ \item \code{as.integer(round(x))} is safer than \code{as.integer(x)} due to truncation in the latter } } \section{Changes in version 1.0-23 (2013-09-03)}{ \itemize{ \item Fix \file{DESCRIPTION} and \file{NAMESPACE} issues } } \section{Changes in version 1.0-22 (2013-04-16)}{ \itemize{ \item Documentation updates \item Test update (for Sparc Solaris) } } \section{Changes in version 1.0-21 (2012-03-08)}{ \itemize{ \item Move \file{inst/doc/vignettes/*} to \file{vignettes/*} \item New \code{CWD} data } } \section{Changes in version 1.0-20 (2011-10-04)}{ \itemize{ \item Report a warning for rank tests with weights } } \section{Changes in version 1.0-19 (2011-08-17)}{ \itemize{ \item No \code{require()} in \code{.onLoad()} } } \section{Changes in version 1.0-18 (2010-12-21)}{ \itemize{ \item \code{exact()} can not work for \code{symmetry_test()}; spotted by LE PAPE Gilles \email{lepape.gilles@neuf.fr} } } \section{Changes in version 1.0-17 (2010-09-13}{ \itemize{ \item Add dependencies required for \file{tests/*} } } \section{Changes in version 1.0-16 (2010-08-23)}{ \itemize{ \item Change \code{ties.method = c("HollanderWolfe", "Pratt")} to \code{zero.method = c("Pratt", "Wilcoxon")} in \code{wilcoxsign_test()} following a suggestion by Fritz Scholz. A warning is fired to avoid misleading and nonreproducible results. \item Use \code{quantile(..., type = 1)} for computing approximate quantiles (suggested by Fritz Scholz) } } \section{Changes in version 1.0-14 (2010-08-10}{ \itemize{ \item Documentation \code{Biobase::expressionSet} \item Further checks and better error messages for nonsense data in (paired) two-sample tests } } \section{Changes in version 1.0-12 (2010-07-03)}{ \itemize{ \item Better error message for \code{wilcoxsign_test(c(1, 1, 1) ~ c(1, 1, 1))} } } \section{Changes in version 1.0-11 (2010-04-13)}{ \itemize{ \item Bugfix in discrete MTP adjustment } } \section{Changes in version 1.0-10 (2010-01-27)}{ \itemize{ \item Improve upon \code{qperm()} for van de Wiel algorithm again } } \section{Changes in version 1.0-9 (2009-12-30)}{ \itemize{ \item Again precision problems in van de Wiel algorithm: \code{qperm()} suffered from too large tolerances of the inverted probability function. } } \section{Changes in version 1.0-8 (2009-10-30)}{ \itemize{ \item Precision problems in van de Wiel algorithm fixed. In rare cases, \eqn{P(T < t)} was returned as \eqn{p}-value instead of \eqn{P(T \le t)}. Two statistics are now considered equal (in all computations) when the difference is smaller than \code{sqrt(.Machine$double.eps)} } } \section{Changes in version 1.0-7 (2009-09-29)}{ \itemize{ \item \code{dperm()}, \code{pperm()} and \code{qperm()} are vectorized also for exact and approximative null distributions } } \section{Changes in version 1.0-6 (2009-09-08)}{ \itemize{ \item Exact distribution for independent two-sample problems with only two observations was wrong, spotted by Fritz Scholz \email{fscholz@u.washington.edu} } } \section{Changes in version 1.0-5 (2009-06-04)}{ \itemize{ \item Documentation updates } } \section{Changes in version 1.0-4 (2009-05-11)}{ \itemize{ \item Evaluate all \code{formula}e in \code{xxx_test()}'s \code{parent.frame} } } \section{Changes in version 1.0-3 (2009-04-01)}{ \itemize{ \item Add alternative ties handling to \code{wilcoxsign_test()} feature request by Fritz Scholz \email{fscholz@u.washington.edu} \item Vignette update } } \section{Changes in version 1.0-2 (2009-03-16)}{ \itemize{ \item Fix location confidence interval problem spotted by Fritz Scholz \email{fscholz@u.washington.edu} } } \section{Changes in version 1.0-1 (2009-01-09)}{ \itemize{ \item Add average scores for logrank test \item Fix Rd problems } } \section{Changes in version 1.0-0 (2008-11-06)}{ \itemize{ \item JSS paper \url{http://www.jstatsoft.org/v28/i08/} documents version 1.0-0 \item Set default for \code{@method} to \samp{General Independence Test} \item \code{covariance()} always returns a covariance matrix \item Add \code{show()} method for \code{"IndependenceTest"} objects \item Functions supplied via \code{distribution} does not need to have a class \item Export all classes \item Compute linear statistics, expectations and (co)variances when constructing instead of and define methods for this class. \item \code{maxstat_test()} with integer weights gave \code{NA} or wrong cutpoints } } \section{Changes in version 0.6-9 (2008-05-05)}{ \itemize{ \item \code{any()} was misused in one place, spotted by Kasper Daniel Hansen \email{khansen@stat.Berkeley.EDU} \item Code cosmetics by Johannes Huesing \email{johannes@huesing.name} } } \section{Changes in version 0.6-7 (2007-10-09)}{ \itemize{ \item Remove non_function entries from Rd files \item Disable \code{Biobase} example in vignette } } \section{Changes in version 0.6-6 (2007-08-13)}{ \itemize{ \item Fix precision problems with exact \eqn{p}-values (spotted by Michael Fay \email{mfay@niaid.nih.gov} } } \section{Changes in version 0.6-5 (2007-07-23)}{ \itemize{ \item Add new vignette on technical details \item Update to new \pkg{mvtnorm} 0.8-0 \item Check for overflow errors in \file{StreitbergRoehmel.c} (thanks for Michael Fay \email{mfay@niaid.nih.gov} for spotting this) } } \section{Changes in version 0.6-4 (2007-06-28)}{ \itemize{ \item Add new argument \code{ordered_trafo} to \code{trafo()} and deal with ordered factors in a more transparent way (via a new function \code{of_trafo()}) } } \section{Changes in version 0.6-3 (2007-06-21)}{ \itemize{ \item New vignette \sQuote{MAXtest} } } \section{Changes in version 0.6-2 (2007-05-13)}{ \itemize{ \item Print name of \code{x} variable and levels when \code{x} is a factor \item New class \code{"IndependenceLinearStatistic"} } } \section{Changes in version 0.6-1 (2007-04-25)}{ \itemize{ \item \code{LazyLoad: yes} } } \section{Changes in version 0.6-0 (2007-03-01)}{ \itemize{ \item Rename some C source files & update doxygen documentation \item Simplify some methods and the class structure \item Clean up code and simplify wrapper functions \item Documentation updates \item Deal with factors containing only one level \item Do not compute design matrices in \code{ModelEnvFormula} \item Expand weights if \code{distribution = approximate()} \item Assign names to user-specified transformation in case they are missing \item The \code{distribution} argument may now be a function with one argument allowing for user-specified distributions. \item \code{surv_test()} ignored the \code{alternative} argument } } \section{Changes in version 0.5-2 (2006-11-03)}{ \itemize{ \item \code{maxstat_trafo} did not always choose the correct maximal cutpoint \item Formula evaluation without \code{data} argument was partially broken (thanks to Achim Zeileis for spotting this) } } \section{Changes in version 0.5-1 (2006-10-27)}{ \itemize{ \item Improve formula interface for \code{wilcoxsign_test()} } } \section{Changes in version 0.5-0 (2006-10-17)}{ \itemize{ \item Implement exact distribution for symmetry problems (especially \code{wilcoxsign_test()}) \item Add more checks on StatXact examples } } \section{Changes in version 0.4-14 (2006-09-18)}{ \itemize{ \item Fix problems reported by valgrind } } \section{Changes in version 0.4-13 (2006-09-13)}{ \itemize{ \item \file{coin-Ex.R} generated by \R 2.4.0 \item Enhances: Biobase } } \section{Changes in version 0.4-12 (2006-09-07)}{ \itemize{ \item Add $(FLIBS) to \file{Makevars} \item Include doxygen documentation for C functions \item Documentation updates } } \section{Changes in version 0.4-10 (2006-08-25)}{ \itemize{ \item \code{maxstat_test(y ~ x)} is now able to deal with unordered \code{x} variables \item \code{maxstat_test()} returns estimates of both the selected variable and the cutpoint in multivariate situations (as a list) \item More checks for \code{maxstat_test()} \item Add \pkg{codetools} checks to tests } } \section{Changes in version 0.4-9 (2006-07-24)}{ \itemize{ \item Fix typo: Homegeneity \item Add ASA copyright to \sQuote{LegoCondInf} vignette } } \section{Changes in version 0.4-8 (2006-06-23)}{ \itemize{ \item Clarify that the Stuart-Maxwell test is computed by \code{mh_test()} and add a further example (thanks to Henric Nilsson \email{henric.nilsson@phadia.com} for pointing this out!) } } \section{Changes in version 0.4-7 (2006-05-16)}{ \itemize{ \item Improve \code{maxstat_trafo()}: some potential cutpoints could have been overlooked in case of ties equal to the maxprob and minprob sample quantiles \item Reproduce two examples from Hothorn and Lausen (2003) in \code{?maxstat_test} (and added \code{hohnloser} data set) \item Add more regression tests on \code{maxstat_test()} } } \section{Changes in version 0.4-6 (2006-04-24)}{ \itemize{ \item Updated \sQuote{LegoCondInf} vignette \item Printed names of test statistics are now \samp{chi-squared}, \samp{maxT}, or \samp{Z} instead of \samp{T} } } \section{Changes in version 0.4-5 (2006-04-12)}{ \itemize{ \item User-supplied transformations can return a vector which is coerced to \code{matrix(..., ncol = 1)} internally \item \code{ytrafo} and \code{xtrafo} may take functions like \code{rank()} directly. However, the use of \code{trafo()} is recommended. \item Argument \code{teststat} may take values \code{"max"}, \code{"quad"} or \code{"scalar"} \item Internal reimplementation of score handling for ordered factors \item Handling of multiple ordered factors / ordered factors in multivariate situations implemented \item \code{f_trafo()} returns a design matrix with \code{NA} rows in case missing values were present } } \section{Changes in version 0.4-4 (2006-02-03)}{ \itemize{ \item Make R CMD check happy and move \file{src/README} to \file{inst/README} } } \section{Changes in version 0.4-3 (2006-01-12)}{ \itemize{ \item \code{isequal()} must not check equality of attributes } } \section{Changes in version 0.4-2 (2005-12-21)}{ \itemize{ \item New data set \code{alpha} \item Data set \code{alzheimer} is now a \code{"data.frame"}, not a \code{"table"} \item New vignette with more applications } } \section{Changes in version 0.4-1 (2005-12-02)}{ \itemize{ \item Documentation updates \item Remove unused \code{setAs} definitions \item \code{expectation()}, \code{variance()} and \code{covariance()} return named vectors or matrices. Names for objects returned by \code{statistic()} have been partially improved. \item All observations with \code{NA}s are removed now \item Some internal improvements (removed unused code, avoid duplicated code chunks etc.) \item More checks on \code{NA}s, blocks and multiple ordinal variables (one univariate problems are currently allowed to have ordinal variables) } } \section{Changes in version 0.3-8 (2005-11-29)}{ \itemize{ \item Export \code{independence_test.table()} \item Add \code{conf.level} attribute for \code{MCp} objects when quasi-randomized Monte Carlo procedures (from \pkg{mvtnorm}) have been used \item Add new \code{var_trafo} argument to \code{trafo()} \item Documentation updates } } \section{Changes in version 0.3-7 (2005-11-23)}{ \itemize{ \item \code{statistic()} now returns correct linear and standardized statistics when scores are in play \item \code{alzheimer} data added \item \code{photocar} data added \item Documentation updates \item \code{support()} and \code{dperm()} methods have been improved for asymptotic and approximative null distributions } } \section{Changes in version 0.3-6 (2005-11-17)}{ \itemize{ \item Internal C function \code{R_MonteCarloIndependenceTest} returns a \eqn{pq \times B}{pq x B} matrix instead of a list with B elements (the linear statistic for each random permutation of the data) \item Various simplifications for the computations of adjusted \eqn{p}-values \item \code{I()} in \code{formula}e could still cause trouble with class \code{AsIs}, now fixed \item Logical variables are now allowed in \code{formula}e (and are treated like \code{factor}s) \item Fix \code{print} method for marginal homogeneity tests (\samp{...stratified by block...}) \item \code{R_kronecker} in C now available \item C versions of \code{nrow()} and \code{ncol()} return 1 or length for vectors \item Some internal optimisation \item C functions \code{nrow(x)} and \code{ncol(x)} return \code{LENGTH(x)} or \code{1} when \code{x} has no \code{dim} attribute \item New R-interface function \code{R_kronecker} to \code{C_kronecker} (which returns a _vector_!) \item Speedup of variance computations in internal functions } } \section{Changes in version 0.3-3 (2005-09-07)}{ \itemize{ \item Fix more problems reported by new \pkg{codetools}. Try to work around the \code{terms(y ~ ., data = data.frame(1:10))} problem in \R 2.2.0. } } \section{Changes in version 0.3-2 (2005-08-31)}{ \itemize{ \item Fix some problems reported by \pkg{codetools} } } \section{Changes in version 0.3-1 (2005-08-20)}{ \itemize{ \item \code{alternative = "less"} and \code{alternative = "greater"} are now defined for \code{"maxtype"} statistics as well \item One- and two-sided single-step and step-down max-\eqn{T} \eqn{p}-value adjustments are now available from the appropriate \code{pvalue()} method (NOTE: those procedures have not been tested carefully, yet) In addition, the Bonferroni-adjustment by Westfall & Wolfinger (1997) is available now. Note that the interface to \code{pvalue()} changed slightly, \code{adjustment = TRUE} was replaced by \code{method = "single-step"}. \item More examples added to the vignette. } } \section{Changes in version 0.2-14 (2005-07-14)}{ \itemize{ \item \code{distribution = "approximate"} for \code{"maxtype"} statistics was wrong in case both \code{xtrafo} \emph{and} \code{ytrafo} were multivariate (the conditional expectation was computed incorrectly) } } \section{Changes in version 0.2-13 (2005-07-11)}{ \itemize{ \item \code{I()} in \code{formula}e returns objects of class \code{AsIs} which caused troubles in \code{trafo()} } } \section{Changes in version 0.2-12 (2005-06-15)}{ \itemize{ \item Functionality for \code{formula} parsing and evaluation is now imported from package \pkg{modeltools} \item \code{show()} returns objects (of class \code{"htest"}, for example) invisibly, really \item \code{maxstat_trafo()} is much faster now and returns a matrix with both row- and column names set appropriately } } \section{Changes in version 0.2-11 (2005-06-02)}{ \itemize{ \item The \code{distribution} argument now takes the return values of functions \code{exact()}, \code{approximate()} or \code{asymptotic()} as well. Those functions can be used to specify parameters, such as the number of Monte Carlo replications via \code{..., distribution = approximate(B = 9999), ...} \item \code{show()} returns objects (of class \code{"htest"}, for example) invisibly \item \code{expectation()} returns a vector, not a matrix \item New generic \code{variance()} for extracting the variance(s) of linear statistics \item Only variances (instead of the whole covariance matrix) is computed when the distribution of maximum type test statistics is to be \emph{approximated} \item \code{data} may be an object of class \code{"exprSet"} (-> \pkg{Biobase}), the vignette has an example \item \code{logrank_trafo()} (and \code{surv_test()}) now have a \code{ties.method} argument, see \code{?surv_test} for more information } } \section{Changes in version 0.2-10 (2005-05-04)}{ \itemize{ \item \samp{asymptotical} \eqn{\rightarrow}{->} \samp{asymptotic} in \code{print} methods \item \code{mercuryfish} example added \item \code{trafo} now can return matrices with number of columns different from the lhs and rhs of \code{formula} } } \section{Changes in version 0.2-9 (2005-03-15)}{ \itemize{ \item \code{mergesort} is already defined in \file{/usr/include/stdlib.h}:270 on some platforms \item \code{delay} is deprecated in \R 2.1.0 } } coin/inst/doc/0000755000175100001440000000000012622326244012745 5ustar hornikuserscoin/inst/doc/MAXtest.R0000644000175100001440000010560312622326244014422 0ustar hornikusers### R code from vignette source 'MAXtest.Rnw' ################################################### ### code chunk number 1: coin-setup ################################################### library("coin") set.seed(290875) library("xtable") xtable.table <- function(x, ...) { tab2 <- function(x, pre = NULL, totals = TRUE) { if (totals) { x <- cbind(x, Total = rowSums(x)) x <- rbind(x, Total = colSums(x)) } if (!is.null(pre)) cat(pre, " & ") cat(" & ", paste(colnames(x), collapse = " & "), "\\\\ \\hline \n") tmp <- sapply(1:nrow(x), function(i) { if (!is.null(pre)) cat(" & ") cat(rownames(x)[i], " & ", paste(x[i,], collapse = " & "), " \\\\ \n") }) } if (length(dim(x)) == 2) { tab2(x, ...) } else { for (i in 1:dim(x)[3]) tab2(x[,,i], pre = dimnames(x)[[3]][i], ...) } } ### psoriasis data `psoriasis` <- structure(list(gender = structure(as.integer(c(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2)), .Label = c("Male", "Female"), class = "factor"), group = structure(as.integer(c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3)), .Label = c("Control", "Early Onset", "Late Onset"), class = "factor"), TNFA_238 = structure(as.integer(c(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 3, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1)), .Label = c("GG", "GA", "AA"), class = "factor"), IL1B_511 = structure(as.integer(c(2, 1, 2, 2, 1, 2, 2, 2, 1, 3, 2, 3, 2, 2, 1, 2, 3, 1, 2, 2, 2, 2, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 3, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 3, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 3, 1, 1, 2, 2, 2, 1, 3, 3, 2, 2, 3, 1, 3, 1, 1, 1, 3, 2, 2, 1, 2, 2, 1, 2, 3, 2, 2, 1, 3, 2, 3, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 3, 2, 3, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 3, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 3, 2, 3, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 3, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 3, 2, 1, 1, 2, 2, 1, 3, 2, 2, 2, 1, 3, 2, 1, 2, 3, 2, 2, 2, 1, 2, 2, 2, 2, 1, 3, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 3, 2, 2, 2, 1, 3, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 3, 2, 2, 2, 2, 2, 3, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 3, 2, 3, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 3, 2, 2, 1, 1, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 3, 2, 2, 3, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 3, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 3, 3, 1, 2, 2, 1, 1, 2, 1, 3, 1, 1, 2, 1, 2, 2, 2, 1, 3, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 3, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 3, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 3, 1, 2, 2, 1)), .Label = c("CC", "CT", "TT"), class = "factor")), .Names = c("gender", "group", "TNFA_238", "IL1B_511"), row.names = c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "100", "101", "102", "103", "104", "105", "106", "107", "108", "109", "110", "111", "112", "113", "114", "115", "116", "117", "118", "119", "120", "121", "122", "123", "124", "125", "126", "127", "128", "129", "130", "131", "132", "133", "134", "135", "136", "137", "138", "139", "140", "141", "142", "143", "144", "145", "146", "147", "148", "149", "150", "151", "152", "153", "154", "155", "156", "157", "158", "159", "160", "161", "162", "163", "164", "165", "166", "167", "168", "169", "170", "171", "172", "173", "174", "175", "176", "177", "178", "179", "180", "181", "182", "183", "184", "185", "186", "187", "188", "189", "190", "191", "192", "193", "194", "195", "196", "197", "198", "199", "200", "201", "202", "203", "204", "205", "206", "207", "208", "209", "210", "211", "212", "213", "214", "215", "216", "217", "218", "219", "220", "221", "222", "223", "224", "225", "226", "227", "228", "229", "230", "231", "232", "233", "234", "235", "236", "237", "238", "239", "240", "241", "242", "243", "244", "245", "246", "247", "248", "249", "250", "251", "252", "253", "254", "255", "256", "257", "258", "259", "260", "261", "262", "263", "264", "265", "266", "267", "268", "269", "270", "271", "272", "273", "274", "275", "276", "277", "278", "279", "280", "281", "282", "283", "284", "285", "286", "287", "288", "289", "290", "291", "292", "293", "294", "295", "296", "297", "298", "299", "300", "301", "302", "303", "304", "305", "306", "307", "308", "309", "310", "311", "312", "313", "314", "315", "316", "317", "318", "319", "320", "321", "322", "323", "324", "325", "326", "327", "328", "329", "330", "331", "332", "333", "334", "335", "336", "337", "338", "339", "340", "341", "342", "343", "344", "345", "346", "347", "348", "349", "350", "351", "352", "353", "354", "355", "356", "357", "358", "359", "360", "361", "362", "363", "364", "365", "366", "367", "368", "369", "370", "371", "372", "373", "374", "375", "376", "377", "378", "379", "380", "381", "382", "383", "384", "385", "386", "387", "388", "389", "390", "391", "392", "393", "394", "395", "396", "397", "398", "399", "400", "401", "402", "403", "404", "405", "406", "407", "408", "409", "410", "411", "412", "413", "414", "415", "416", "417", "418", "419", "420", "421", "422", "423", "424", "425", "426", "427", "428", "429", "430", "431", "432", "433", "434", "435", "436", "437", "438", "439", "440", "441", "442", "443", "444", "445", "446", "447", "448", "449", "450", "451", "452", "453", "454", "455", "456", "457", "458", "459", "460", "461", "462", "463", "464", "465", "466", "467", "468", "469", "470", "471", "472", "473", "474", "475", "476", "477", "478", "479", "480", "481", "482", "483", "484", "485", "486", "487", "488", "489", "490", "491", "492", "493", "494", "495", "496", "497", "498", "499", "500", "501", "502", "503", "504", "505", "506", "507", "508", "509", "510", "511", "512", "513", "514", "515", "516", "517", "518", "519", "520", "521", "522", "523", "524", "525", "526", "527", "528", "529", "530", "531", "532", "533", "534", "535", "536", "537", "538", "539", "540", "541", "542", "543", "544", "545", "546", "547", "548", "549", "550", "551", "552", "553", "554", "555", "556", "557", "558", "559", "560", "561", "562", "563", "564", "565", "566", "567", "568", "569", "570", "571", "572", "573", "574", "575", "576"), class = "data.frame") ### Bagos & Nikolopoulos (2007) example. `diabetes` <- structure(list(Study = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L), .Label = c("S1", "S2", "S3", "S4"), class = "factor"), Group = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("Cases", "Control"), class = "factor"), Locus = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("AA", "AB", "BB" ), class = "factor")), .Names = c("Study", "Group", "Locus" ), row.names = c(NA, 888L), class = "data.frame") ################################################### ### code chunk number 2: melanoma-table ################################################### me <- as.table(matrix(c( 6, 8, 10, 32, 47, 20), byrow = TRUE, nrow = 2, dimnames = list(Group = c("In situ", "Control"), Genotype = c("AA", "AG", "GG")))) me <- t(me) ################################################### ### code chunk number 3: melanoma-tabular ################################################### xtable.table(me) ################################################### ### code chunk number 4: melanoma-coin ################################################### add <- c(0, 1, 2) dom <- c(0, 1, 1) rec <- c(0, 0, 1) g <- function(x) { x <- unlist(x) cbind(dominant = dom[x], additive = add[x], recessive = rec[x]) } it <- independence_test(me, xtrafo = g, alternative = "greater") CA <- statistic(it, type = "linear") CAstand <- statistic(it, type = "standardized") pasympt <- pvalue(it, method = "single-step") itp <- independence_test(me, xtrafo = g, distribution = approximate(B = 49999), alternative = "greater") papprox <- pvalue(itp, method = "step-down") out <- cbind(CA, round(expectation(it), 4), round(sqrt(variance(it)), 4), round(CAstand, 4), round(pasympt, 4), round(papprox, 4)) rownames(out) <- rownames(CA) out[,2] <- formatC(out[,2], digits = 4, format = "f") ################################################### ### code chunk number 5: melanoma-cov ################################################### S <- round(covariance(it), 4) S <- formatC(S, digits = 4, format = "f") for (i in 1:nrow(S)) cat(paste(S[i,], collapse = " & "), "\\\\ \n") ################################################### ### code chunk number 6: melanoma-cor ################################################### S <- round(cov2cor(covariance(it)), 4) S <- formatC(S, digits = 4, format = "f") for (i in 1:nrow(S)) cat(paste(S[i,], collapse = " & "), "\\\\ \n") ################################################### ### code chunk number 7: melanoma-results ################################################### for (i in 1:nrow(out)) cat(rownames(out)[i], " & ", paste(out[i,], collapse = " & "), "\\\\ \n") ################################################### ### code chunk number 8: Reich-data-1 ################################################### xtable(xtabs(~ IL1B_511 + group + gender, data = psoriasis)) ################################################### ### code chunk number 9: Reich-data-2 ################################################### xtable(xtabs(~ TNFA_238 + group + gender, data = psoriasis)) ################################################### ### code chunk number 10: ps ################################################### it <- independence_test(TNFA_238 + IL1B_511 ~ group | gender, data = psoriasis, ytrafo = function(data) trafo(data, factor_trafo = g), scores = list(group = c(1, -1/2, -1/2)), alter = "tw") pvals <- matrix(round(pvalue(it, method = "single-step"), 4), nr = 3) pvals[pvals < 0.01] <- "$< 0.0001$" rownames(pvals) <- c("dominant", "additive", "recessive") ################################################### ### code chunk number 11: ps-res ################################################### for (i in 1:nrow(pvals)) cat(rownames(pvals)[i], " & ", paste(pvals[i,], collapse = "&"), "\\\\ \n") ################################################### ### code chunk number 12: bagos-coin ################################################### bit <- independence_test(Group ~ Locus | Study, data = diabetes, xtrafo = g, alternative = "greater") bCA <- statistic(bit, type = "linear") bCAstand <- statistic(bit, type = "standardized") bpasympt <- pvalue(bit, method = "single-step") bitp <- independence_test(Group ~ Locus | Study, data = diabetes, xtrafo = g, distribution = approximate(B = 49999), alternative = "greater") bpapprox <- pvalue(bitp, method = "step-down") out <- cbind(bCA, round(expectation(bit), 4), round(sqrt(variance(bit)), 4), round(bCAstand, 4), round(bpasympt, 4), round(bpapprox, 4)) rownames(out) <- rownames(bCA) out[,2] <- formatC(out[,2], digits = 4, format = "f") ################################################### ### code chunk number 13: diabetes-results ################################################### for (i in 1:nrow(out)) cat(rownames(out)[i], " & ", paste(out[i,], collapse = " & "), "\\\\ \n") ################################################### ### code chunk number 14: Ame-tab ################################################### me <- as.table(matrix(c( 6, 8, 10, 32, 47, 20), byrow = TRUE, nrow = 2, dimnames = list(Group = c("In situ", "Control"), Genotype = c("AA", "AG", "GG")))) me <- t(me) me ################################################### ### code chunk number 15: Ag ################################################### add <- c(0, 1, 2) dom <- c(0, 1, 1) rec <- c(0, 0, 1) g <- function(x) { x <- unlist(x) cbind(dominant = dom[x], additive = add[x], recessive = rec[x]) } ################################################### ### code chunk number 16: AMAX ################################################### library("coin") it <- independence_test(me, xtrafo = g, alternative = "greater") it ################################################### ### code chunk number 17: Ap (eval = FALSE) ################################################### ## pvalue(it, method = "single-step") ################################################### ### code chunk number 18: Ap ################################################### drop(pvalue(it, method = "single-step")) ################################################### ### code chunk number 19: Zheng-g ################################################### gZheng <- function(x) { x <- unlist(x) eta <- seq(from = 0, to = 1, by = 0.01) tr <- sapply(eta, function(n) c(0, n, 1)[x]) colnames(tr) <- paste("eta", eta, sep = "_") tr } itZ <- independence_test(me, xtrafo = gZheng, alternative = "greater") itZ ################################################### ### code chunk number 20: pZheng (eval = FALSE) ################################################### ## pvalue(itZ, method = "single-step") ################################################### ### code chunk number 21: pZheng ################################################### drop(pvalue(itZ, method = "single-step")) ################################################### ### code chunk number 22: Simulations (eval = FALSE) ################################################### ## library("coin") ## ## assocAS <- function(x, scores = 1:ncol(x), ...) { ## ## if (!is.table(x)) ## stop(sQuote("x"), " is not a table.") ## if (length(scores) != ncol(x)) ## stop("Length of ", sQuote(scores), " does not match ", sQuote("ncol(x)")) ## xtab <- as.vector(t(x)) ## ## tmpdat <- data.frame(groups = factor(rep(paste("G", 1:nrow(x), sep = ""), rowSums(x))), ## scores1 = rep(rep(scores, nrow(x)), xtab), ## scores2 = rep(rep(c(scores[1], scores[2], scores[2]), nrow(x)), xtab), ## scores3 = rep(rep(c(scores[1], scores[1], scores[2]), nrow(x)), xtab)) ## ## independence_test(scores1 + scores2 + scores3 ~ groups, data = tmpdat, ...) ## } ## ## set.seed(17057711) ## ## SIMG=function (sims,R,S,p,f0,f1,f2) ## { ## #sims=10000 ## #R=200; S=200; ## #p=0.2; f0=0.1; f1=0.1; f2=0.3 ## phi=f2*(p**2)+(2*f1)*((1-p)*p)+f0*((1-p)**2) ## p0=(f0*(1-p)**2)/phi ## p1=(2*f1*(1-p)*p)/phi ## p2=(f2*p**2)/phi ## q0=((1-f0)*(1-p)**2)/(1-phi) ## q1=(2*(1-f1)*(1-p)*p)/(1-phi) ## q2=((1-f2)*p**2)/(1-phi) ## Probs=list(c(p2,p1,p0), c(q2,q1,q0)) # ansteigend ## ntotal=c(R,S) ## ## assocASsim <- function(n = sims, ngroup = ntotal, ## probs =Probs, ## scores = 1:3, ...) { ## ## g1 <- rmultinom(n, ngroup[1], probs[[1]]) ## g2 <- rmultinom(n, ngroup[2], probs[[2]]) ## ## padj <- matrix(0, nrow = n, ncol = length(scores)) ## praw <- matrix(0, nrow = n, ncol = length(scores)) ## ## for (i in 1:n) { ## ## x <- as.table(rbind(g1[,i], g2[,i])) ## it <- assocAS(x, scores = scores, ...) ## ## ### adjusted p-value ## padj[i,] <- pvalue(it, method = "single-step") ## ## ### raw p-value ## praw[i,] <- pnorm(statistic(it, type = "standardized")) ## } ## list(padj = padj, praw = praw) ## } ## ## tw <- assocASsim(alternative = "less") ## ## ### minimum p-value erg=table(apply(tw$padj, 1, which.min)) ## welchmin=apply(tw$padj, 1, which.min) ## nwelc=factor(welchmin, levels=c(1,2,3)) ## kleinst=apply(tw$padj, 1, min) ## gg=kleinst<0.05 ## fgg=factor(gg, levels=c(TRUE, FALSE)) ## oma=table(nwelc,fgg) ## ## est1=oma[1,1]/sims ## est2=oma[2,1]/sims ## est3=oma[3,1]/sims ## estMax=length(which(tw$padj[,1]<0.05 | tw$padj[,2]<0.05 |tw$padj[,3]<0.05))/sims ## estA=length(which(tw$praw[,1]<0.05))/sims ## estR=length(which(tw$praw[,2]<0.05))/sims ## estD=length(which(tw$praw[,3]<0.05))/sims ## ergeb=c("Max"=estMax,"MaxA"=est1,"MaxR"=est2,"MaxD"=est3,"Add"=estA, "Rec"=estR, "Dom"=estD, ## "p"=p,"f0"=f0,"f1"=f1,"f2"=f2,"cas"=R, "con"=S ) ## ergeb ## } ## ## SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.1,f2=0.1) ## SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.187,f2=0.187) ## SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.15, f2=0.2) ## SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.1, f2=0.175) ## ## ## ## ## ## SIMG(sims=1000,R=180,S=220,p=0.5,f0=0.1,f1=0.187,f2=0.187) ## SIMG(sims=1000,R=150,S=250,p=0.5,f0=0.1,f1=0.187,f2=0.187) ## SIMG(sims=1000,R=100,S=300,p=0.5,f0=0.1,f1=0.187,f2=0.187) ## SIMG(sims=1000,R=180,S=220,p=0.5,f0=0.1,f1=0.15, f2=0.2) ## SIMG(sims=1000,R=150,S=250,p=0.5,f0=0.1,f1=0.15, f2=0.2) ## SIMG(sims=1000,R=100,S=300,p=0.5,f0=0.1,f1=0.15, f2=0.2) ## SIMG(sims=1000,R=180,S=220,p=0.5,f0=0.1,f1=0.1, f2=0.175) ## SIMG(sims=1000,R=150,S=250,p=0.5,f0=0.1,f1=0.1, f2=0.175) ## SIMG(sims=1000,R=100,S=300,p=0.5,f0=0.1,f1=0.1, f2=0.175) ## ## ## SIMG(sims=1000,R=220,S=180,p=0.5,f0=0.1,f1=0.187,f2=0.187) ## SIMG(sims=1000,R=250,S=150,p=0.5,f0=0.1,f1=0.187,f2=0.187) ## SIMG(sims=1000,R=300,S=100,p=0.5,f0=0.1,f1=0.187,f2=0.187) ## SIMG(sims=1000,R=220,S=180,p=0.5,f0=0.1,f1=0.15, f2=0.2) ## SIMG(sims=1000,R=250,S=150,p=0.5,f0=0.1,f1=0.15, f2=0.2) ## SIMG(sims=1000,R=300,S=100,p=0.5,f0=0.1,f1=0.15, f2=0.2) ## SIMG(sims=1000,R=220,S=180,p=0.5,f0=0.1,f1=0.1, f2=0.175) ## SIMG(sims=1000,R=250,S=150,p=0.5,f0=0.1,f1=0.1, f2=0.175) ## SIMG(sims=1000,R=300,S=100,p=0.5,f0=0.1,f1=0.1, f2=0.175) ## ## ## ## SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.1, f2=0.1) ## SIMG(sims=10000,R=180,S=220,p=0.5,f0=0.1,f1=0.1, f2=0.1) ## SIMG(sims=10000,R=150,S=250,p=0.5,f0=0.1,f1=0.1, f2=0.1) ## SIMG(sims=10000,R=100,S=300,p=0.5,f0=0.1,f1=0.1, f2=0.1) ## SIMG(sims=10000,R=300,S=100,p=0.5,f0=0.1,f1=0.1, f2=0.1) ## ## SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.187, f2=0.187) ## SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.15, f2=0.2) ## SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.1, f2=0.175) ## ## SIMG(sims=10000,R=100,S=100,p=0.2,f0=0.16,f1=0.26, f2=0.36) ## SIMG(sims=10000,R=100,S=100,p=0.2,f0=0.2,f1=0.2, f2=0.7) ## SIMG(sims=10000,R=100,S=100,p=0.2,f0=0.2,f1=0.35, f2=0.35) ## ## SIMG(sims=10000,R=300,S=100,p=0.5,f0=0.1,f1=0.187, f2=0.187) ## SIMG(sims=10000,R=300,S=100,p=0.5,f0=0.1,f1=0.15, f2=0.2) ## SIMG(sims=10000,R=300,S=100,p=0.5,f0=0.1,f1=0.1, f2=0.175) ## SIMG(sims=10000,R=100,S=300,p=0.5,f0=0.1,f1=0.187, f2=0.187) ## SIMG(sims=10000,R=100,S=300,p=0.5,f0=0.1,f1=0.15, f2=0.2) ## SIMG(sims=10000,R=100,S=300,p=0.5,f0=0.1,f1=0.1, f2=0.175) coin/inst/doc/coin.pdf0000644000175100001440000032665612622326335014413 0ustar hornikusers%PDF-1.5 % 1 0 obj << /Type /ObjStm /Length 3849 /Filter /FlateDecode /N 64 /First 518 >> stream x[[s6~_NAw:8q%Ƀ"67JTċЩێ, @\sg,e2c)aF[f9fbyH2Ä`BY&CƢ3a,:WtL =SRQʔE=iJ/1bh,SXQ ́ v N3kf2e.ՂIT4Iɜb΀(sDa-DK|f .&R-Qb:J\a)hc4ԥ`K '+xQAD ]q4[ ac= 45 *(ISLx =gF-aL]eҠg 39Zy~b|30$e'\bXU>_b:gg ϡuyXgɂger^|7٧Msgl)كxUxzV3{0ڧF#yIjŸ7qͅ_Y ꪫkTpQ5ܟ% &b_Pp=8[Swtc&.(Dj(S"JAx|X/' hx||Z]h]%B4/3?~xY_Jt EqbQ#UÇyZd+tbpg3 g\-ae2 $zܰ(O ,6K"wTEuYG9Б(u|U!WIh|Cp}r7l]DV&畒eiu0˪k|1ium6;kH bҒʒ51*PMlRQrāRDCzYs^]M|yxuY9?O9?3x~/rl/e>/I|Q5yY~^ƻe DZ,׋2Ga]mCi<>\_0W3lYO3, _ϊdhETˈ+"a:vtH[-n1$=qGe<扤׳#fљnZLo~U_m?}-etԾVIQlq 0^c^utRx ue_gj5\kUDQʼ_&e5Dс(vr'<]]W_krzRi9~ .d}W{ȆO ,*/8iQɃ~SMˆʟԄL-Yﶵ*Z|$0|keAq(Λz 0d#Y4|{.dхz'DE*'-cyFu=9Dny(Si;q/V:07@׵eV*Zlڶom]mgS~D}>}e~˯#7dCAVjMl-צ׆*Y~BPkղ!Ognɯ?*feK{3@ jj'VߊM~&D4JeQ!%j 1“U>tggZ|-*lGp94`88;:xz=ЀA龴Cуt}Jr793vXxR!aZ+BCِw#]ꤗ!ԎLiDDB /yb ԙ}iQiHPH"kg\A,G!lƖhlbkeX+C,̎6vvjp;x?s|2hI3j46c& uNMzWuG[Kgה/v v6ȸV(Hv&*ݒRִ͕-ݕPuBruۋ-޻_>`o[K~igv=߈9Hs}'5i0Q;;c. 7}%mZ.cOI,g7<=Ab^7!;Pz%TWjʮvg~#wEDŨp$1 ]kV޲j`n7ix3(e vTcB2ǨV$rؖfwvUhFKu;Mg+NP宴 w $xIq.u"x~MkXGmnjGVG GV cJeekϏɬYlŭrtmR-Zie/..EpHB﷋u邯ֈ );=-V׳A ?'Oɗ#pxJ!a Tϑ;3БeCa-tnR-~4Pqd{gnf,&y@*0.C V@fǖmIWm(0?==?at?80mMs@kx{zK[g z@UIFk1 ^:kKwx6tQwU'3 kV'tlX6Gj40UZ0E"Y `@[j`juf+'r.<vL(٪5L'NbDa- `5D%684[i[edg* d]bI(GMS'M>KLb(|*I$j7+U&40Rg 2a"%͖(G!ҏ4ӄJ+tB1y@aL*cK0X~0e@Dѥpà 9ޜ1!a!3k(ȸsu6ɶlg Im̂`Ӹ?Sg2i.9EN0jY {!# ? Zd<[i4lǡtv^NZ2DaVRp>RƔvdčj܀PM[GJ.Y/Aadw9̢endstream endobj 66 0 obj << /Subtype /XML /Type /Metadata /Length 1604 >> stream GPL Ghostscript 9.10 () 2015-11-16T11:15:56+01:00 2015-11-16T11:15:56+01:00 David M. Jones CMB10Torsten Hothorn, Kurt Hornik, Mark van de Wiel and Achim ZeileisManuscript endstream endobj 67 0 obj << /Type /ObjStm /Length 2522 /Filter /FlateDecode /N 63 /First 525 >> stream xZ[F~_яImk*$!&-c+3 2N˲-`\[>dd>1 i+YP8ǂfy =˂/KR6` ,DB LXIȢb౨RhNx(Zfq,:fVR ؔ5b<1$3%a0kxF;Bj$k΂2,`^2S.ڎf^iA4@Lajx> _ȼ491# @H uOPX;< H+ V-ڒ hDHJs\ .Љ!]*j3P9vIifbYbēA \CFJt5gL<(^WZj ?7\!{8P #5_qu$R[8ivlJޯGu+CZ/IނF5hLY}ﴜpBnz0*uz=M/`н_.Phޤ8_ Ўrœ,W@ǃG؀T @.vhDP mSK>Uqu8J-b5jαg`ǘ"/ Α8nh6M yA\,C⺅C(Qd3= } CJCVw1tO9t_#d žIO0i8#Ysmmȵ-RB`gMYhL9s+XD|q]~?U0CEmī6{,&$D:rvF@_!:x/|n?xh@b_.p2'޵In46\Bow}M69>ZmOf_- հ SfİNtHBjځru;Q[)yܴYyj1fK.bNj"'D[J{R`C|&?fa'iVy-i&1 Vú!Ͱ9V΀'>vG^uh7*u|rҸX\~')0[ B11=8~ ٽǏ{ӾMO ~ԿrjzM{;wY٢ѥ{f\l&& "/(+ĿB\E1bMVgV&r#i G9r.T Tukםr6/լ*'9Yܲ|hgg8QlQWx#֩q)-۞* }9!n -H8CMFiÚ51f>~6m8y#N-}P,׼_aPiXFbh_W>'Vup6"(w&2D4}8(!>R-I!ɴ&}S~ :qz~!whMUZvZ:czGU2,k% w4ʢf-ݛ@nW5UM;g.h.u\4T|p_ٰ;+TIvtLҟ[6ypbpws)'sk?6 i'S{ֻ:u'ť]ICV=vޤ v*]xgg>hendstream endobj 131 0 obj << /Filter /FlateDecode /Length 5192 >> stream x\s$qg>Φ|ɧĊ%XUS%Gɥ;FcûӝRbF?ÿl,7=ܞ\=_dus|}3FYIk6UNN qmo8;1z+f%sq6;i~/;# ӋN 9h֥r-%ltSDmyg~ڧU2}~͖<֝2Rk?UN雭sNO+p/K;* ./ܬwrz=Phi%G8;fe aVxH1ONqC;a_W9ɜI ˆKJ0!F+S~#qk GF$msIG/qQPZPo1%.k8mB۠:1"u cp?vHAB$ebfĪVBovK_-t;F>&89oirup"FIbVO> yOS6%g G9`M?n6}= c]ҋ0i=(i1\$;NK" ԪSXneMKɅl6ZFnUf##1.|వ8xE$e%7;[MZob&[MSĀAv$`* pD 5$+Nd unZϠI @4=FztPDN_?|\vc2=<zBdL!"8lj_6$|!J)-*M0L^ct/ZJ7!\<&\4@_qJCDb;&ObHH+`ʹaw deU8oy&;6? F*+x.YCMm`GZMPA[[i!L)(ONd` kb7vzqD q=iqRw8l#*vN<Dh-wl5yCR6i"aAݒ7 XB^PzTfd(}17ˎM6S]Ul\(|l !w(#^nw0XX')tvɈJd<=)X?ǴBg ŏr 82 5w*Q khWM@}IldiƆoU0a8ObÊSU }18;'G ZFi[Fo貌h.o8xׇz,ߕѮ~( HXFoh.c=Z_JEvgUH [W[`|P7;؀.x*]Ea9Df.v*{xj\ !46A;[nwơS@[u3%rawqV} Z# R;SQP2йᲅ@Yg\`>qڕ mHb]_χð]wX}92zwKt.CP;XZ7&/<=<0 q)lN#wW R1Q5_<9%M`^o O~!~(%QB?bPD]C1Ztݕj`=("7Z16jDxSѕ{ QXX1(s Ϩq^PfRq\3ʀ<10{]KTrtk;$(rȘ4~,2z?@Brʻޱ2_~#ͬ cpR+aQKT1OR 1E5@8J3wPqk4Xm8@k6 b 7\Pv80?R4Xb="CeZاbł园ak| %mx zpzyEBbTe|F@QtcZ.h}UNn>E)u~DZ O iPA(D^a+dii*Whb'5zSzI\A"HtDC|<2Z@fT F/*cz` UÓ!QA4w_̘yp6fɢE%]At%ֺN0xҴ TQ3Xl2)F]Ǣ25cVrRV.B/F[#$hGB81*3S|W͓*2eʅuX F\]4SL,#-ShK}>ppk*Bɪ+(PP sDl_0(aq/KqC_ ;&k_&Ts~~4u "]顰ͅZa{uRVf~":Y7ij#7Kg`n#HX(Ėm=glXaV{Re_K@v GWd~zZ"f(=jsÐUEmB{I}ҰDK,Qҝ~h7,<Μ! Y ^ќ-\z4W4_ 7! ŞTOP/Z] ߈3CC ѻEbWh_13?o1@"[E@3e1""=+镈esUg?ћ- io8EÖ^'7|KZC38Fy|&G%дվBp6p`ejۍ-}psTc,~Z mM"ѾGSnpak[ kWԜj]#_T UVbÖ8Q Ph|]5KvIndu6A*\eP1E VH N֌&Qg%Mh[b)M CW^G:Dևm,t|W}GUuf SY[3+.d-U2صA<|x9>*%oh6VfٖfT !UXs9 ӎ717 B=ooX9gmރy}$ OK&q`{A7+{B1B oCFS^($^ԿIA'U gFƠ3R@p(n Ţԩ*(,6KumqUҘ1TV写%A W Y>V}"#^J S2WH `N[Ab_xmJHb=8hom5.I~ b@:8\]vR¶ 5r@%?6D<& nCܘ&!y7mhC[c,{!S]O]( Is]p u:lЗ_ qmss=y4tna,ŧHs^(*8c;4a7 2h` lCRY/ABs0k[r L˟J%KUWf*\H V:vA $OvG~ŗcw5`\!ţ!onQA$Ii|ӗ)2M\-+.lTb7~R̀}|E7Z͋Eb63)._G-^WΏT>~X6V;;T;PV u q˴[}.Req(M4s9ِMfj0hjËq}{m"f%I ]>Nde !ko:TNvz SSч_,yJnxk؁/x`7GeFy/4 yUrE(_.LXS\lwO ]eċ*X})㉅@!ۏp>7IeimLs) QJԦ,oWN6`V/<5Eu0|Eݸ1]H.Zأ& =~rJʊm/7妶|i*W K~)Wcgxr}SlP$̞֠xxᅠ-%mE['y6,>Gk(!/D8QHp \[]Hjjg^j8endstream endobj 132 0 obj << /Filter /FlateDecode /Length 4991 >> stream x\Yo$~23Naqljq`JZifWקdE6{$Y#GU_, .>A[8ᯋC!8|r\qR +>0_>O'iE篗35;d p =6DpMNz8$"q0f;o?)ˬRVmsc/NEeHZ%y =^dھp踣I=yN~ 䫠I‚_, Lٸg#B yəxΕ^n"ߞFʯO8=v䨐MG=ª Cցoב`G;GA9}Zq2_(itrK؃*Xn{k=S'qDLm|WƢH .M.ک <9;g\/qWUykSrŤٲ cf"I om RZ"tQGQ"E᧢P@$ R;`3["bh ~0lHY6jQHo .3')E9dDFeAYǜ*LԊ≞2 }CI૿a)R'ao{֠LVqWu ,75!o>[O=WYx!.4 Y2mC"yÔUrhIb98IGr> H>,*W`cV=(x?ԝ$R(k|~yj#?*'l|ߞibӎ<س"SDEm9[A GW(֘0LʳGۅy]H5F$-FF,wA #K= 2y4 '_V;ƨs0dvitN>h!Sd#负bԈmGieK ]D1cU7DY2ն[铎#{!pI먰X@SUa!IM.Jmp3j2G7ڣE_*A~gk>BTncv!huŃ0rtCQ|2 pL3r_y ǚAHBA)!~c A۔fy bj>CSFلmy% 8K*"TTI# ~RfD":|şy!G"C N+͂q@\i twEQ篿槗^\O9G;ȃE餳ouvU ݼ^U0J]Ȁ wI⣦*7M *SCbCuj;3pVEs ϞNFԈ]i]: wԃa8&Ak3_Nx0\`9: ̈5u;*qw\U|h `q” vrno>0"vv. %,'"Xt/\WI#RDG:*k(IxbA/wjǬ˃)cL(7m9tf4 8{* zcuY^_2#JPaPLJ0sk&!;~ ' N9hBb9O>s g0,FdU̍AfL' %qW=NGex^h-cucm i̯kėXm U%2j {CLMofΣr@a9Bb" * SAD @(d<Ӵ8W(et%+(*WZ"BDn>ȵ,gEeTę劻QBR'?@i=5[ r5m*s:;Q[QiUaRK if&aJ7g-QL`XyΙOIbp^o?JTm2Y_~w?;i\ R-s7򻕄;e!+sDR< "WXDpF$T j\ $^bޘB3j>W]G)._k뒡53uoUm8 is}9Hki83'bo*4%+IZ뺇8U1Q(PXuR!LѶt*@|u2F_N=H6>.ΆRRN4 ?{HAih.7;'^ip\C=i|r1 #DCQzUL,|Zg͎Ԡ[6qO܊; de'n0-JZDn6V ڻ.HgI.oZ@vW/8|7{$r{9yoz|2>C/BnWN SOI$$Yz$oeQ?K^ ッp6yڅĨ iE1mVkk*S\w[Rn ={m,!`,EFY{tR]`qcRWhEpPB)3RjsQesTY=6"XYQ=ՐX23KtWx'\y i;fLDL:gFqtWǧJV[@ѓr~*A´2BS"CQ䕚jʛV̅6160X~ A )8ဌ]~1-D& U$jQ›vʮn EXREN5 IZNC08OڶnjC<N4 nJ4OB/.IgJP>K\v{^J}N>W T>b.!/+>VoIPtRU5]w!ȧijQ`^`4U[Ԫ4|ֻB>6%0M+3֜|8b};~{>L.Mh҇ȀԽMbɸk2Lpr@dfWKnDt (vGאy*x ޤ%wF>Z$Yv @|<_!o;8PYp-}*p] }Re o+4ͥXvÃdendstream endobj 133 0 obj << /Filter /FlateDecode /Length 6960 >> stream x]Kq/: cfV[aHD ҡ,D 3+g|QFOu=eVw1ɍ/ 6wduwqBMSn=RB3)6^)ĸypu탳s1)!ۧgbXε}o_\~ڊv_<A)e5<رF?%sNU;!t9^$$eؾ9Sn`s̋^G:FctAWj_᭍†׃_dtj)<½R55nhn'!sD~f-ow]fz8k"D+¶Nzk iOR[2lp:O Ư+vVCckFâ2h$`L8!"} 3/j!\m`n<]vS:AMQ͹SS7en֍JEe:{~8[okYAz (%LZJ{k=Hm+9?=;'?|is?f ꛳uv'.#y?FKwIߜD::4dS3h+Y{^uc,]'%c4 dLЍ;0v?M% ?F5啕QΝmokk޶=ozɃGd 0gJ#wz '5 ?.n"S*𘏾Hlls7 b%ъN4ϕ4'~O3",F,/ic$s##3/4Y@/Tw{(%uO*"/$1RdJmu*3f>M.E sI sB9dBZGp1B =2rJ`1,MHi@m/"UQjE1jB`l_dH1 ksBulwkc\h)CպݽeQ;M&(h|6튾]`2_b{r*wAS䒳1~(`ӕ]Y6{y+pQ/ DQ檀Pk$VnԨDEu9"!D(\9RNIڶ4lE :5!LY!6 3s]cFL3Xӹ:IOIr_=.m\SJ{_'L.nlĐU!'*\cۀt3UВnI;jCE=,̎xŨ'5L!Qz! sz.j|Y.⳹N4Sn,QpevfS ooUL$8%Tmr`ygY|3̑g0 qG N. >@TUdlEܟIk)A#[ZNҷ\ 4~rbB׬RC h dh31Zj 2"}s>d5O .F:֡mtjw7`:[jEA ZADZ1(LX)Ǝgi z~{8=je;3]ن1e9 e qVWѿ<6*(槸|Ya vlE'ڐe}E3c-v8GBez0h07T 8(%ei \|Cx|%2&5p o9a _L M!wvZt. 9gN"Uk=~H^-x n`3|(I9Pg88w<{0-.GvwYsCM̑%aPoV{qeS" o{]Xqz8z۪ xh?/wzm1Υ`6jcAaIP/^ݑ< "n ۵0ǔøi!ܲdTh. ~|D]㳆$//c+jE҇zURg"WZ֒?g8ՁU%M?\b<I}rx~RӺM0>Pk!<[.C':(@u f = ^ҋ+хj"aZ~,}"H Jf%j_#,sٳW0WM7d%'Ā W0y=0yu3֕]2{0&WgNιWy[D$Bypw/7ӹrϵ& ȑ0vjr0[v>#뎼;VW609\ĹC_Q[5UhEש.w򟫈́cµL{I]tF;Ȩ@РAmR#iZ^%p{Cmiq*- --[mm)HiqQA3o-*lx TR"m50)x~!wl~j a˰MRMݳk ΂&*>yŋ[Ѻ7`y2A+o}`baXܬ2:cT7ů@|b31 аRc-c )9;4z="Sh078:L<⹜L7?"״t6' VʳQEĖ T֌4,<]|70k"65d>_Ry#7,r".k::;DF~?ZdmPSe6[cǯ#KyY(惏#Jm2h ?eaR XxM4km[3L{7MO bQ5:X&,nfj[n.sSX: ^I#d8Z} u%ĈVrcDTy08cjXj5<6^Jo(Oƹxރ@ ܟ8˱ V76-!UOp~V&XFGX :5/*#$ RTlfOZ00B×>SqKG^qM^ ﮫ%+R֊SlH_fOW+Ɂ&`NϋX8fQ RlW9Pk!q|3j`^%,B00Vn"`+h8j {&;r8o6r}}/H@(2V(](nLlT6hr1'`ȃo><'-v=M,ĿCw"ky֖{Zxu?Ǿ<=*OӋw~O_[^ ~fi[-1 d8?0rxW %kZTNFDo㴸2 A#m3ǴmIE^0.}Rk0V'ԋЙ)ـZNÄ8:14h?{\ǰGʈ{$)N.|X(Bރ_Sx`{.b m,$|C gOqwdiE>pA@oL2@z9:@jF{ \VH! ӤZ;֕։bdC'f5++/MFv7g3Wn;s *

;?'z,!6@oaf=)@/.;e NlN%7n{m[3E}7-Vgyygfܦ^}A#5dvq)k/&XqzWz}0 ՊjҌˇ~ȩ7mJ2Q*{nZ4)ץe#7pKeb]pCI+jDYOCΕ2tbnKni d5Lu[e'сԼjWL#N=KYM$$$ʡn>OO򼭜kqͱgV#K@y\L"h&cr뮺Kjvw[_< ym9< x&Fw8#۔,nlGW1T NJ1Λ |-|W gS؟QCWϋ|fK nA(vIO_/`/uI&>tΠKK鲊eASS.Od=u*'?{H[\ӳ7d"g-f>XC1jpxhUzz_˟> stream x\[o7~Ώag!~ 0Xx2O&Nbq,ɲcYG8*"-˖X>l^uBx @{=R88=I_1 nS{KyVEk 1<~u7uHlm^SHٸu"[hap.L/|F}^m_㳋_gaO`Fg#Z5Ёjn>ARnSOZ"?:lskX 5ҍӫr0[Fs"ATJft/"gKttFNg;"=mBDkP Myݴ;ޣQN?м^޲YQ iNxotR>m[୙V al ^}.vo[̫OOvWD oZTZBl3^T)FV 0 AطiѶhay@:h,eYg pJfJj ?o~TG)$Z]gyg)aZ* m$65>/YhaI%J;l@,NRN:ܝܷN1mRNizFdf:J: Ի [jW-7ݠs2&hd:4oPue9M £[Hm>pYZmLEܑhZXO2Fyׄ6 enU#u.cGLt; 9B9Ӫs[h6&7S@zf[nLeCup`X+A:!&b*r.ٱknx0,YIҬg 캒jD1nOg҅== kCj~ ){:!A f+B;b( E 9X`xP(ِ8q w^q6pT1e7޽pSOS/zkBۂD7O[n9i\J *Ƹ1DAҼc6>)Hc ujgi@iW}?U1Тw) :?L:ۇ1ؒU4"Sɢ\b[/jI)g.Ũn01D?KsBG@8IՊçIGPLڭVq30&6>_6+{uϘ3lF0Qq?07JQEEƜ1Up!m(hr"1'Br "o28}z v %sYcƛ+ T `EAK;5J]Ari3mcfߋޔ"{h-Z_~8MROHfv[;{^g?8K^F&*e$qa"><*ƼLlPt2)`^UBpVR0^&ѻ4ښ$K_K= /:5$ p0Ve,,hn-Ąf? Ҿ_#a~ g,?0S0m9 [+oh 2hlZNl-E!{i`d<o08g hZBt0HDX2 Z~8>MVBR Ѝ+X)h@BiO^ P>ۂVvGR8ڛ47yٴ6HI3 J65Τ̯S@M 7X0ɷLrt/6_ֻ=vJchnlCZI+٥&EfX0uf xA!ʮ2șh !v`Wvg!j`#Q-sΫc(<jPͬYTr\b0 X0DuE t=P Y4la0u'㼨8x=5 (nHl"FxܟU|NviI(mO-dp0D|4'OKdG 5wo﨏x^WE)m3=N/aa8e,Y٭/9F[2/5p2چ&)-BJk E/cJQ ^K$4i=i1L? 6Rӟ펫eAo8}PUI boPRi8e#"+Q=0mRFIEh)B7 PCٌݔ Y:>E{Aщ{ޣcl2*xo0f$([RJ>E5&vjpѲonzhm!;ƛpƚNFsyW}T %ca!riu&ȩk@ag\J} y?f5JJlpCAaK"ZJ>ѶؔB3aER`X)6T-efz-$imMRh &'Ԍܢ7cn4JqRiFFNs$o*rY3W!#M,;U\J!Tiq0]x7;8Dkf X1(5?mSuW~.OGqX8x&4UVIhBG(p>RQݟ^2-qo*k~B#oAL[ ۊs5FSd (R@?bhzU lC}:W=p:$ h0/DXrpan< `qp(4WP7)mkEC{xZOb%SLIE ýV-a5[;PP x_mw døE,}h${5UGlul&*{R 4Cz XW[&WV(#ᛜH׿aʮ2P~Rd˥[Iwdώknj_'"I )П5Tq\A6<}6OW_FV :޹~}HT6a+ҧ,%6yF;X0aT5Zt[3-Ygtrּ'8 R kTh^_`*M\Wg Ʃj%\JN O,hrOR[L0˘IiN* V~@ Lrv9\ߤQaVCƙimyczkV=R>VMn*oVj\eX(z0u7%YRX{j1SfY30n,ah:|#$K !/4' ǛVճ5v%gu^T< ֏XVi\.24C^d7lu;Vq #l|-Z WvHv>ab*qh1"=T ~)$kÇƆZtE fJa "̝ 4DǙNgH` ^d L䯱:BbDF\o@Q>*t!f.>QPC jk7 ņʟs`+ a t?KmMo,ѹ< k c[Jd9l 4M T"Y_$N:Sj7 H_700Nz'p׆Gigzg`H-@ h_Ƞ?<ςb0QK@ڑ|*]s˩җ[S-ZݷD8͖ߺIg#؀{q+)TE[v~dt9MzATYzG^X}TMt {t;b.\1TX*XEdCb =pbR,&3P@҇0Ws;}a0 r%5nQǠgih?fz#]o)hE'hzHX`pN%3"MMP)9gCb i!ȕ Cs4Ѝ'@GN)Qӻ0o Qm ~bsX+V&Z.`COnJ5at*RE0^  , /&# #`5-8ijG&/A{Z1$LUѴjBmP!P(8{qyOőN+!͸ԌK}`T;ƥҒp)T@o@qަN}oJ8<<-UXWd ^K Ů`ewtvAF6AǬOkLDm]Ȕ3% "V?:^^F mǡ*&yҰ}IFn0D1p?MO: 5׆bLO>2Vn}=3 k"p>T0m-lƀƸ)+q=VX96%QJ)0oi㊞sqnqodi 62"q5H+qfW-pc6@Xbh h_G((QN)OVĞU|^%X & =-#sKx pdTzdxt7"2=zS=NG6="Tm1yB`꠭0O>-.aYapfV`xPH2n' *:+k9[ Vz-#EJ~:ݼdwN݃`S5OޢM"рx Ϩő%Iw`{Z=OuͫxMU,T.S1BC!9t  T 9)tu\IQb6er{PvU8FS +sAe%Oy IJ!c𬂏] jxpBHU G3ZM, ly 7+<Ֆ[b&j/&ւHYJLdx%UelCi>4\U{sZ\)B D :?vVj]@$DΔN A-4 `W i<7KyGoA42WVv*iα~Pm4&?fLݶI.dG:&cp(mު,^)3_G~yz8WvGu׃lL`븻A/ A g39`[+|ՋsromE3^)cë#8 `2Sc G7RݬwAs+{_>¢A~x|.^5FA2P)e˽rxlJ<_x*[*s6s/)~^vj]i:EL9D)[OT)8wH~-+)xDMd'*:DXC85il4yFX @],ݭh/ B}OQ?/{1Tă}S8^b~*7€RRW(p:'O'.RW]?l;g+"gyp/Dޕ+Ix-uz.cb׺Υi ;ycx!c€vE4YȚg>Ʒ~ܵ:_P>ÐB.si8AͬhbUax .{!6G,,mZ~2C.<8SBNJ< ƏcFRaR.FaxCt,'LCOB"]4=]\2Ok-ih&t^g޹k^)݁4@OXA`A#$#<).[^S> stream xTkLSg>=g0a;.[:ldcB&9Ţ+HokAzPKfit:6gٲyN4٩ܯK|o}y|$F$z"#Ä( R )AgP"IMYuVZ_^n%(&LMIJJ( y,Kn\ȍbQ"*ղFIL&S\cH3Oe9JRJL6W[je5JY[bJjtF^]ԗ!-+W,$M2W "X@! wl"%%#8BJDKj0쥰V*"<2|U^V-^n% YFN.,6aG{(@g'gK-ɩZ9V K^:,հ\iEO._v85FZLzjN̤9tƉjXx=spmsHЄ^:ϣhŃrnJAn^`&fWv[jܺ-k oT)| g{:G7y60֟;m*VvnCTkWStK  ^B()x7ddu[u'8Jm:2NTMMXټ杴nY¦͍VYvW:JAtiP ~y^_vJTŪ6FMֶ^o>emmM=4-#^OرJ>domt:x}PF#A=-@ e1'.|A(},nSDߟ^!$#eiK uL~HK LJض'ʠ?9+p3hyA , (*xPPf]]Ȍ̀\gyl'ŐmZ9 W> stream xzTTF&'3Xb%h%Xޤ&0aʞz/PFcb`&&&Frsw0-]߿\k0sygA@Yh'7$z`ݯ$k#>V[mo!7(+ (՟ԛKEER(;ʞH DMqTP;T/* RA L)GEʊ pKVZ׉rhlfJz.Y^.V~_h~do z# f7y]V<=@6]~ *l7cͷK8p 2dP?2c;#H9a‘[FY?ug-^iӞ&/ j +|Uf,ĂR=:Q{4`VUxa&zkBh%GkxF>pptsሺYe$^qZY[X*[[7K ue0ꁞvRr:M*ȳu>{ KJ竧/]u\ @C0pr ^ňou->yV6vIP޾^ȏbhf_MD{TaCG@P*U \;"G.5 !P|PØh_X֚*OAiJi0ZMvx&N 1 dfm-4)WZNCS %KEC  q5Nw(]&Ʀ} ej4"}tق< {HMj3r ѳw76 %$J\̣[\GrMGQN_ds`Gn`ad"'UfU.{_#?9?E=QGbb'\B PpP呣eVV:8J].A[y1ࡐ6\8V:Nd(*R&W%x.G)9t2caDDyиYUBYP䍿ÛElp+MʜF rmڽ&/x0[{wdI2'dK\I!;0Б070Bs؎#eunloЏu~HDtp E#[j[k E#> nChkP܋_3||)iCJ1єrZ-hKJVG>Dބ<_g[/rXWH4IDr|H/h)T$sJEbBUIln- Jm5U/>F)IL;}yͷnx7"/= L6dJ1-"gꍪ@ҭKdޒ(x[j!/L#8x5~On MSzx5S;ԣ`| $,g0VԳF+W&_z;&v{)|SuMhƒ6!ksor&r>i^Z*z[Q<']n@?V\g"R+3HIv-Qd ϵ6&g#G.}ɂ["c0 QPUnj k n"9~]m'銬L)Å|nw9\V4 J8!? =dlv( umLglPF@$ ;8[y>!־JT@K/B5,NIyqS#[]z.ٌ6#GTonHeNl2C *O~r`|s45bO_inG)PpWr:l.L.SNM,_Og֢Z,PSQUKݡT%>)oZ|ʕ .ga9p@Q&dGt^wT}4+b$3X:rC>vvH|ڡF ᲌xH$l{Eﲽ#J _˒%%1Z Dk#N3 nظ,Y㩑h *2c[6k"s)6"P ܢӧ0ԇ{Uփ;x9 sg)o M%X-\en( މ#}][$QN"$N_d/m/%r@O%e[qES(E1dKTRF`""GFJQ>"18?ytcJSZHi|sMgΔs6Zj4No8y\ꉂX4^j:])x&$B_y1/?"tX$(\MX 4 .uTW]9TwH>M2(?V_]x(@;ȿi4$w\1kıO'=ԃtM R2I:}b7{r c[Hwobh=)z G=,? } 30 ф,*YLvgCg9lО>\f_{Ensn 9gU*!>MSkȃ^]ޣԨ!(Lu.;A2K%1 UoSlv8H:ѝ ,C dNNf!Jg3}<%8ijDT3q8/!r l#aiN65I%OVq'C"l e'QH+gT{ty!lBOXǒt9^i؝غ xZh*rWkv,5*@yhgap6.oϘ(Ag-b=2'h!E GBJ!0&(P_]w7 0='6g3 $2ѝc tRX]Vx.WŢ^'BoX2M,7edWsd &>S)oɁ\Y:9Q-; tn-z"4BKpbЋ? M{@y€ZM{zދ*Ehy] oQV2 'b;(ʲ+@ kX(!Q)@ Nyt?4Y8A}N8VPK]J t˶fW n5 }! >*FE>W9-#Z]9o ,FK bӮɺҬ-3 e<`6㕪sdq d<m$˜Ndv,:qN:M`r D?~DŜNpAZ8ln> ۵>hĖBh%^ۗkNh`$b>yYbe۷ =3M*A~hی dދbL%{{SO1o9ӱ4NNP unߩ S'U)NQC"#2;$װd48sT3!p8IO!曟8hְN@F>z f̍~>,ꭤ7É.Q򿏞F IJ.IM,Vim 4m݄ڈYS]c}}8kSjH7 ȤmKvd:%Ti&c% Z]F[p.qGVt2_ w AJ|s:R`c~q);_$_wHl&/)ۅZE}x!{>otHhhqH 'FF q +WI LJ"=6\fA7a#'w ;t-zYٍ݆]>ăD*Y N<;,K{Kv7ؕx^^}@ s#ĕxbʶ5;'B>fŢ U awbtE23nA>ɧH; ~ ?,wH9\ tN)xxJAA$Pš g;{Ik6/\}/g~p.3O4r Zf'.7!H؋uA78䧥/jbsV`Fܪ~gM_5: {f?Aʹ?Xʪ.6Jc[U`e*K){nc ,r&M-\+#\5 {)ɣjEyY9VkѨVvqT nF눑B/C}ƋIv 7Gn-F/p' ł $iȇ(?/\Ϯ*.IXN*!ZsVJau4I-2Wyb  )mi=? NgB~9if[B"1Q 5feN-HY/&AB36i"]1;+BsOpDHpyYX_@!Ƿ,#9$OWl;IH7H /?}$7M9:w߆.^T.aCz00SinqyfM?ɱ(pj:Fi/5aIxHtHl)']dꪟCy*)a^O hz\D~+0qORM1 >WuQsu*)"A[H baa}endstream endobj 137 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 6059 >> stream xX \S1psU܈WAtq}_""a;vd(]W\6UjVmmϵC?!,?@̙|2FD"B' !݄wĻJ8YY0})H$[(ߩRxzȔ6#FL1cguWx8*eJ2Y-wtWlF̖);g<7`\1gMRfrnDYncnmwg]a (j|?+>R. v]m!t 2G^Nk|:>qR)SMo1w伍nj2ޣVRSPYPʑZM9Q#5Hj-5rFS-ZH6PFj15ZB}D-I=5ZFMSS)jN,͔OmXj5)15LCqOulԻl5MQ});ʌRQ* xlYy ݗ^Ot0c#gwH񠧺gES!{o}Oh/ߪ~_XNTY>??V8=pVVuAT88oH΄wIJ{ HE{/1腇lAuCa(jZ'EGƷrrT/yeT}s`[Wta%ٓ;2O D @6؊nt(f Z-dJǟWt`Gݧ@aXLKO{̹O Y:a=|~E,TJKvWu,Ywˀ`mnQ"$>ǹm?w#ry|jhJX bꐶİV`>o+fB!{ҹkw/-!(QD!~L{z $!(PHps*:ţhkRTkzfv-TRJ=e(([$7H/"nG>_ڪ;GO)0 [X $`ބ1}m)#V; 6qPwngJGX0 }~Lc p)G<̢+  qÌo~s8=,y@Ŝu NBY><݌QAH'ң?s᱖"yiB9c1s D #' MX] \4,}Vk=f) d8HaBӧF8֑%CZ6[s.h\ͻ@3FNO '̌rP&lz>' 9쮯b:Bɉ2A:ܟTS&&(=\)ԘӽU4{X̫6$Yg "bTr ($DZ` hbiM.Ú[Sg$nD~\ZzZ:*`CJpnz2|=u!J,l6% 8*WFz=>cwUF<#C$0+pƼX(ZT_-i0J.U[kE |aUJN.IKރYE/N}֏+NTf6cH &!>h#"aہC4-Mb?Y'O $dX.6RI~G=ntHx[z;5 N5Ww ^ovG"=ē\B(dr]Sߪ5,EB" n 7T`D]=#vī|5tBq6x,YU=\~%)fD(<5(9= a*TE*n/NUN)!H U~(>,:)841STH`erĔk /\x$lPυ}=D7p`FznI FjyoUKAo^Ol"{2bsr dc[~Y-նsp5 RwQGJV[ 3ܥ*!EoƠ`M" 5*,]JP>sKcRIGtӬRLˇ16V{m+:F)FNxڄfld9Vj捛W;uYlԝȤ`Jbw'ȓiXޚGVD5y!B9]*״!WNtAٰz}0` T!q|51r4;-|ͻsMt]UdGnc1dEonj]J Baḽ%6^L eyWf+՗B uХUJ5,b׸6xG7uܲř cS*햚*^['9cgYnV[A㹙ˑoF̘En-ᥘ dy.#LyCWW^t-t,@)I)A)(-%/m7=5vcNjkkKlt1-`lux{O&_\8FoI?=MׁeIU_BIʼM?= . ipf?/֡#̷sq/6/Zz>5V^+GޅUasӃ#rW&管2.ZUt Kp Xc _Uˤ:şhK!ɬ*T. KJK (~ðx#eFϖoHƹuTS)yl&K3jþD3\8vxgE"\:`}-?'K ̉/V$!7V&ׅyS: iʼD  N6(^ fPL; Q(rt!2E2*ea20o ,sg¯oEǘ*`kLwl&׺Ul."s$I[Ad$u&xITlkweV`IW~pD8K4=;==D*˿c^5y?8 6y<ŋOmgU[ k2n6I j H7צ# 5nEu|9bmܸQ0~`mUv/@z/*FFzsM2\lRM0R!ƻ#=<1"G6]1P ׁo; ,*>!> b#r#k=N$S"VTUݤQtEUe%ե=(нDT}M⃐D~ ʎA:L*._:uk0.˓(AY xe_I@nzRײVP#X2%n[ ץq)b )kwgq{k]"g&_uAN$V+ }cO̠/߁rD-\f[ vo6Ă`sC$_dQ.-WOxHIGz'Gfv'6': VĄD*Cȧq<vFŵ,,NM3nM kX}mkfAa9iJ([=ON[ϝ[pou9b*KJ΋GZMgy ~o!E .Fgzc`ڻ<\k2Cyu?02$Cgȍَ"8@n}l?'ҽ,^{g^Sb9qTlbJe?7gm(̿ /Cp_</Aol 6=X]%Gѡ(:yGyqN ރ/_Zu"zE b7^䅣'9q7 ^Yە]eؙH>756 q?%e . w+:Q@Dx~haM7{bFfrJ&׵yͻD(>5뺁7̜l.u2oёD+Wdm"q $؊7}̂dxeZA(ZZR'#,̆94VeJt==f*EwޢEQendstream endobj 138 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3260 >> stream xW TS>!$瀈X=-ס֊u@q ! d4ȠEV[ު.իП}kd=|ߑ1NL&c4}xu4I%q= pUL^a2&Y@9q|xUNQ'чh՚aIigG$%Ž흚:M8M>)IRB=5I1aMZKN K Є%2 #̏%$&%/NUm rU䚨3fzaF3+@f%Yìe1 =C}f!,b303Mf,g3Cʈ ƙa~-tt|yQL^2^y>掺Tsa@`74,{}ҒjǏ0N0ipm4}$R2}hBncl2L]]8t8(?'>*eZ ~}SXrW# Cޣjeer0^ 9CD)II)TbW*5"sұyiw&t!& M.5׽w2 {8G8X &'C]nwlb퉓 ka=so/KuvgdO=;%y\<ܞp8q< RgY2zkR+tWq._$ɸAKUڎh]ҏӧOc(&b.Žm:q![;A+4nA}L(L+Y̸"J*(7L@5ŐI@WubΚ N<jn-tR@$ڊbTV NF| Z㭩ĐHҥe+4w>Ԡܼ0$frj^}1#kyղ_).qjqbĉz[ׅ.zvqLl Q0zGgrw`yy9f}^nمw8߬Z8.JhM2xgvea& {C==zt5oJEşggc Y![r`,G've!  [;k΢DЁA5瑕 U$"jZK[ e=g$Q EdϷbHβʚ)!UY{jU75ԴTi ֒zJk%3-D\oϴW@Щ5;a*#TߴC~@v *]jAAy߮= E (DqA*,>ߨ M^#sb!.;N#V푲9!@6MGʡ&D'DnlWv4 =?:-t,BW.|yf:A=o q+`FQ2!S7iq!]#,7NV\=lr?3zLIKAיMmޕԃ[`'WdB~Q//YL-ZxVtϡngJ61|^ x|Ed4ܝmmJ;Tkho o{߇'N~˫zh.:cqv-)s}s\})F{k@38b# ;[ov>hW 9; rq}Iݝ,5ص`s'帥#CгyEQBƝEKa2H c))ucs)8&M^- J:zJy'rDTm@=^`DFyAWvy@|M.0W+)<Ȥ[7e(NCWktNYgϬk՜j%8յ.nAJ$1$5w'-VG#d(km6 kt~O ^IY\,K*k QƪA$D{ q7|NDΆ,GN6o,ZS)*D7CPANwA q:m$W4JH3@f@{W(Tx(LZL7#hseBIÓkoy _ũ_PQN2PmӤJ9nz*lm:{Pm4.WؔajXekMzlMI;U9ե=B>[2LƐAۖ$R{߰-棴8>o%EDr)T+ɦboKs3llendstream endobj 139 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 5586 >> stream xX xSeN *6DA@Te/+mKifϗӦk螶-"( wEeOsF:w>}Ҧ{cF`Q7l[haY67&{y06 r`3a20^sd*a0{:hCZ p| [)TyԠ6SZsy]񓑄asJH^e턃nh {T hH&*Hg8̵0&NU~6J@8+j{{# d \`(|b_c/[ 9Z(|]ﬥOuO|Ϳ{ٞ(4B2&0*7Jf|XzTJ z9eԚt`+E G npG雟aRė4 ý^G.L梴b oxcxgM2R% U(4Q/)]a5Sr }E(4ۏvQT*yV6۩P[z+f0#pyo![ڎ6]~y1әY3_z?J2v?zi9Mu m>ı}bE3Ӣm;cv' h'Jlbr:P[{ys.3L#bH([:j'@,]|M?_]C#K_|{2[*T\QB1;hЭ791xt!Dcjl:Հ-f 1׫Nrrş>~l4oQǢv& 2)E7B RMu6l;U z[}/Qȝ@lVtZV !dqWxj.-?mF[ЌexsgquÌG1̤MLԒG[^[{\y.ZsH3[.0 Y ~˨1%T13)0` n{U$ ] ,|r0kIɋr szH>EF!2LšO@IB@z-0[A]lblw\n5N/S֠W}snpu^lղ! t% :ޓ]")4s8QJƢ ސ oM  720{iPkRm=]m8:ě*KI& C uL8jG;@x|-nz b7Jx>q&Sm$_`zu`,%Y)>:Y%Yc+*xj vA 3[;KY 4|cU eTvd*&<}~X[PS Tvz jc2lw Nmhp|ġ' z* mqzF[F(7(nujz-@0:.vC76t A257cDw Z8Pv-:ơUXAE 3/'/O5dm5 L 3jxk' rD{2Ϣg>/~M[p6g/>,֪p2 Z>pCr+i(a!O<%r(Nm1Y؈N[]4߰ ]s:­/܏0έ ( _A OeLzG$[zKyA>%P`i .Y8=o7_:)0%qk=G&DLv8L6#%_<;b]Bu4@g"#zKӦ0f 3/=*v8Ru8fuچۀW}xwZg4Z̭ʾVgЙ\^ }םNlfnK-Qs9@<72mT'uT]RƛʗWDrQo&ml S P:JԮ8 BZagwlxBˈ@{hkH& . {?"Ae2jIi _醲`=H xH/YsD\h(i% a0Z&ĥ`U7uuu\ 8ߩk}~zf?O73|g&EFz^lվ]@u8 DSHn&v {+aI4At?yw8kyXFBhwxn}vЄ쳩=jɤR?/b{NoR5' 7 )fW),`8RK{A6~6?WC"/C?3y ?=YD=GWHZcL"ITnI@b狋Fl(RWEJyY:y=pRp5[%dYMCo')$8 4XƑYa2T=X!ve*JĠ5LgM]c#qwPOЧf63򢀰!~Xۚ^KmsۀIrSe[ Lzc(QJ4 gMf5W܉8NGNbܵ1d&Ж83N2iPhP9xAm_K2흌oي2Al22^FNR#)޴A?tf,&r%_+>u4Pv?0zB4fR,篺FKhk<xҤxKY~BO[DiqUvA,1w~!T3dWM2acf$3L[lߝ^/qb괍+ n79ڌF׼B՝>{sjGyry3{OFUTUSZ᱒%48r---_?ZN3D~<)6]mq艡8W Tqk/ؾܕY\%>+.3H⟬x~CC|sRZf(m{2^|0rNa fahhZ)3)=;+5hCф3@3x)| K[K; 9wZդjruyLxZ_|YӛH?y-!#>y:S/gT˪0ϊlwŒde7_4qkyaQBnk}c'#dbGxo,f {1th&ɨ1l$=wi E'@=7i[:QbKw,_a t~[kVe4ziݳ t} O3!8NKTU(8CPZV1 14n`f2VzZRV+iWд{gObbL 6pp"D2=*(RH ˪+2q1Bk2)F1+d`WHǮ/\ -D3=WOϏ NTT|f5PD4 Gy=[~e7 P'"G;JɊe|҂N :)e{ ASI > K7z:Npj]J2Y3.+tDj58ɕbOIׄ52B%`HXSO~Rc Z$f]9qI`hǏi:~O}H4SҟlГg?9Fڷ/T_(؝*x?~/kFch4]t*тO>?GQ+Odf/cb֋W{rNŊ2ID "s {h ~E4ȓKgo"cqqёKxp =b^lloɥQ\WX_1 C/xZzJv-dASZLt h EQ#=յ:6{Yil Iqj ~r+(%r 81{o\V rǼվw6pZ[db.^#sԷU6vlіGVSK"f1DB`zt46q_,. 6nGaͰN ydffWַZɈ,AzZz^-1 -_$z9N0<8v*,ɤL6qmKYӭɣi |繑|YWbDfE?ĢO{ 40I:#_w剓e=8B$[#a ŸR4scdu1sk(W{kعZ8[rV' -P97;6g!k)s8ϨKcF.;;_Tendstream endobj 140 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3251 >> stream xW{tSUNH)G(7Nsk:C2ZS !4i&iӦi6owSSP*EmȌYsݧYKwfud%~9ii֮[ e'74 B>_Vb]T\]$+WfJ\nݣIY.IiN$+01-S)Αf*ɗ],IR2ETʓ|PRΔ>*)Q%Qwd'>#+T&n͔$ \=*K9Ei윢,$7S*QfKr<G g7ڞC,ucEKxmeUy{yITZ޳xxy?yy 6>|/Ë_̿9+ h|2ز؏TQ+w9<ռ]Sy~}pD/̔F_j5yi#4i|x"fW}{FG8蕶jRzţ7r_@XVm۵rc0cCh~yx0u-rڑA8e:ur;X(]=m:TS*Va9Qt 8Ȅ` PZ(3->:pznx9^w:?42+@! -Bъ;Z?7;ѽz[hjjƐdrVmohvzloߞsgzS(ol!pCPWAƢlr -}3ز 6[zXЂƲԯmB9 7y='S=g1GS@ٱ`]gg'8 T<; p{TYYtɫud\VOhc<d.U tazjcl3Aw Y֟D!&zЋ@Yl4=evmTDQCHrq%9@HI- RYgV-9G#XU+[ \yTs&@/ 7{nZOGǻN`AF^"PvT aFѹLLhte44JxkhWOYw?T]&)lA3oAd5ʴ^*d5Z xC ?ޘ8y@[OW{ (b!Ӕ F71LTK&x,<.@SMuJ\!/)oijߌ:In5Hg<`W%_j,LU):#>I-O\ֽyj/kNDtwhji6[e5btOf;q'|E|#ן:uڂbv*`a?.\F)q5!oW-$0fOn@%0Fo~aoQ>;]t<%.8p6QJ>8[.be6ݼV4cvçOK#-e/A/47u/LffdGmMШ@Cv[Ey"Iq<va'QvIYendstream endobj 141 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4315 >> stream xW XS׶>1sTD%=7j8I@$̈L&YIQQIAHZqWgNjC7}vxo@v{׿$L>D"apvd~;F@"#I gSJ e߆a9X!:7 fIXT°qꠀH{_G)3gΘ`?iuw @HaAq##wΚ<9&&fwHĤ0u\ 1Anh?{װH!0,dgT~E:aaTGDF}'wnAkq2'Nb*f&3YbF1k:f=ldgf,b&1.+La02Kitf9Y a9c1V Ƒ$0/%}FIC_Z XchFE Wϡ% p۲vVV J51UU5%ڨ圕)$~Pc]}/Z(۲]~oׇۧ'3J+}eoX3{? \Ʒxgq1>nNȔ~;q!jx$EFA.#DBJQ(Pzhh> U$1-1uJ9Iצ7?W,yM/H_S GYQ7n;wKʝ])&kUnf @Yen D-V\zâKHMҴegop9rFOn^ w) RlSE5#x>=GDb(zMܗQ_- T4|VAfUV թA h}OҤtڽ)J#cA];Eӳ* -+s;yمop_lA[G!v!Nj24- 6{sTӛVS[3uT8QгxEn|+X#[})d&h[Y'Q 귈 q+$A_%M蓍aƬ1#>$ÉЁ" NWJ_bd|QWI^?g*UB^5P |9qVI}&}(̓6Tn3m(rO6mBqj˛¢XȈfJWFoq ^Jw ס)}sU@l?&7uɚz(jyAFS&qDI6`<*p4z+KjpzpkK׎\Oe΅wKzƛӄՎ54 6#-&>ߑYW뗥Pd8-\sx%lÄ~a&뚧.(E(.mHt?kmmpCX K>T=|{)Z:^)*1Hԅq<T@/E~4q)ޣ L=277'ja99UrcW*VNV+; /`Vw籟-`Ez>~ P:٤ڄ=>x8{ד6]h_x,N7Y>&38>Gة/K-YkF{}a3;c5+?I@+TB,8çzPkkCu{u UhTԯtv__W$m]t"?HqOErWcU0%VWy55{k`֭u-ͦVꗭamsl1T][ Z*/UVȌ;3z{^kڗn2aK{D);6צ$?yH;Yi#nKydB1:*tE/ꝱZcr E{7μ[YS7QU{^,V6SiWd h:\Ȼ}LT)I/E_B2Q5#!<"m4)Uq/ziL/LxVWUe9Ymnҡp)qP Zyo g>RdRNm־?aw_3˵1s ز}4i&pE̓F:y/;37M_M66ouJI8:.L4ƿT "4Vi:k"G)M pI:'-BQ4'0]h-`?|)'k!-E1mD*N\wQV Ş5?ڸs8^Q Xj^%Ĥ,۝>vQ+NGٷWx!;?i8qŔ'kKO>*7w}|W.ăx'&Q/c'.0Lnצ8m +q=wr|fe%-˅3KTj5eq;! * kh(}e8FfN'av'M¼#S1VgcnJywM<'r;R[P3B3?v ,9xXx{}ԵEwB-wqv'}o UV8ݩȈexwG3y-.2{23͕ 2o1_'Ѫ,N3&rst;u-u rt~.9x8\*$NRso NZZV\,˗lV菲}g[k̶DY@7 gendstream endobj 142 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1303 >> stream xeleǯ.5[^C tuP',n+[qmou]nm^֮s[~  S$& (F`qMO>_De {K6VL ˠP '.Yi=UB"Qzu}!/ eҍWl*SҫkZBI44J"hWj*,/y m7LMJaN_sFIM4 *}N[%+5*#MjN ^թZAVh=RC#/#rd!Q[g+;^Vq^95 }('`nERc1 ԁ7[+ohvb7I쭙gƴiaC><[a71 1H? P]v#̞>q~3s /}Tݍjb=@ Yd;(LrJQU/ۍY8eZw0^C\^$v,ߤv]'MaBSqn]:Co0TP`AAhz@m}~cCnleV,-jٵgo9XaƦ{5V_;o~Lyn\K.2L_\Wt˩@2F Fq@m`(@;dktwס16's!g}-f0&myo@&&/f:՞mKSмn8t $ n#0t'&m\AN @йK eaޟ0Ie̋ vs#3bKɣr{".nx^ZX&M2:\ۤĚ2z%eXMu+ B,< >}QӵZ8NO uℳM zVE]b޳P% ~4I-.-Y$s_G:"l4$4_G9<\Yy taAr$endstream endobj 143 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1474 >> stream xuS lSUw;U-Ѱ "lN&N$2``.[u+-vm{`n F|D#$sS&?|'$IQڪ‚{lL>A2RKgЁD:Ijl硑Sk:e}^S+/,.^'/*((/W:eB#_7jߨUZ%7sJƒ CBݔ/͓zֵu F/TiTSSVجu:ZQMMfJ١(ZVEUzeʨ鴆!h>FOկN'."b!#M|Tb@%q<RSw8gf.p\ N;-}vyV 5 Х|\gj 0jPh7}N-ȝOߋ_>0xk ^ O^9meNW0߷]w;>@0 'cFUwA!ԁ:ABAe& 3$u\b1~@w1]QYj  Ip]\5gT EGk b%%pہ2V{Ɨe mAQ n5V^wo ** bOdUD(UF"#c1Fh[ò9!1ނ6# kI[bg57a.tZ;,Hf~Z$ Y:}2sh5Zwwn6bǎLqldD!3I<&4`BqˍƦK/:!MM6l۹+΂p(9,C4Ο4L@,/V0'&G>p>tHኹ[_u*(^Sp:]$Bk79#[iҍo7 RP:-G,¢OmVvWԝ sW,ZDoLwD?T5Ux{ۏ|N*ZzeU2.x?#FkWJ)D9 J@; kKy ձ;)tލ[ĕW L |~21DOo)bXy0ӕxev`(GxVBD!:ٽ*ON$qm pQ{l+=(Ta!vփgQ3򘀲̄֜X)I#4N 2xMAÿ'<|Sfbv;d\d 7Y%Fq _t_ITA"m4/to.2<?ňQ _ nѣTfӡDYӥRaHmA vw@endstream endobj 144 0 obj << /Filter /FlateDecode /Length 6700 >> stream x=˒\uZLyM6]OnPJr\QQeKĪ8R&9$G4E}}p/nwC"w\_FFW~R3>{w&_7W7|#}tm.r^E؇7g{y}VD}s{tv{ mPBw;>ʰ|U&2:-0m,ld>|Wi^pype#saۻLåޗka:c4F81=>1;_~qdz 'S)׸B8H+gAb_VD@.ޜc%>͏-\ "\[,G#xZ-^-.:V/5( # >n5|@B^_d6lwyfhloa vp/c{9qXSSPA9sEv $Ji,Ќd|3D[ZFDoU,4$|PKmp8rVш;eHjr񛋧 8F*IpI8C rs|o2`BFGj:Ȁ 0o'&V^H20/iaSyUz=0p+phI]FkCf66i"#rN\M3j-үaKh8±/߈ydBG/`Ez畭$(̓4zU ^0[^ Ci9I{9E}64)骞8qBۘp ;%XΠ 2I8:^+7;')q ^[ɓ^ob #[`g1"cle>H{bo{af\dVxDa~#R?76x:q89J%'iBp4;8g'50@Aa)` qҡ'H;Q~ⰜA)(&˳أW3WB0!<'A^Vĩ!l SƂ:pI]ҟCB@(:( 2@n̽>Go ޔnܣ}U_*IC'CpZʀc0gkW^kx㒒[5`sи< K pB"GHX.8tCgrTnlC; B)װ.}KOcqև >Ix=Kyz' LLa`{ Bet쓴.HR(z2ڳ0gx 193QwCoѦ`Δq[B7:Gp:%zN&u :"DURplH0OyԓƇzdP,űm)eLX`q^2yhTE+7UA,$_$<|P1%EVc!Lh0 ޲D+HlhK5h y_"r٬o";~.DާOW1v>*dT(S#@QtYO;AX:C7"n4 Ƴ*( G]M)e!dDtaw4R&!3)"1MӋy$ERe:xPw&%I+'PLLh&\pl|AȥpnH="+.NTi՟F\hʠrG!AֳhNUToȐ6M̶ɣ ZĽkA|p37zw(8祩vNTF!vɁq /Ivų V1[C Jg]Z٩7r7zAjFدW^zh L5 ɽ5y'x-=)Fv ) n^~a0O{{*S~ރy3{)RF&)Gl+=lX-u툊:'DFA,mk8ULG3-lVi@>%p+;PbmɳNX_ժ0-R[  Lh֓;K$ C:al0Fjngղa@3SW6y7E~ŤՆsw~`j3(BFO"S5O\lvI3f m3 K;yrlisZ2C*o}9Z5x3T!C?N "="g{y`M`2-(:$ub]Yf˽n`HO+4A&-@ӳHrnYҙ^nM&"nW( lM_O_-\kkV4ӪNsћՁC-f\vp )R hN4,LKX,4. eV*@R>V2a#Fo,-8U!J6´Oq@U8X]SB(!t ,B" 8O/IҸLݽ!~ԇ+A+,A0*5&wD2aQ@L`Xk猪Ih0  /r2뻔~3lnG3u#'yw6MSS%) ިM8 ޡM]CCexÞe 65}1$b3Z696?9IX@9'ደkƲkr ECOʍc v D`v*#NpKk.Uj2C<څ՝q/ʸMH+Oyɥs$v l#l>` X r:z#pê$F7Ɓd>ιR /gKX+O &u}ГL;Ĥ;̄>Ȅ0(؞6^݇kA 1sI7b~Rc+p#iZLWR΄,׍>Vυ[}|lrź[hb}qM޻.4…#A~qҨ=-lf:$lMh 'kz -Q$PP;`S8*2SNBjL`.:'ri$RWL'i\DVEHyNUo,7Zhn]P^ {gˉMrfjXdO&_7ny$V'dy&َlEܫJ8X)K0%!^:HZvu/|T2~v1[ !>AQoV1.XR r0Ӑ&seSxc+DHyDm H(CїS0(&Y ]׸Vs9"ĆJ",Z}jF_Y,gkJ>O5mu}Nτ9ث*${OV2.2]&?5.S }*yd<7~lo9HC^ \YCJa7pnRMW E W &i եT4Z&_P-K@3cM9S7<*s!>won\?sV2A&FW,EJfn[1i,R)ʥJ2xc?7cfa

"[ILVYGXNğ;NǮɗOMwzϣ m.wn;]@Yۡ㺀v"Nⵯ&$O\vdU[|j܃ ЁСMιQ9_^ZUfGj 5 pK%Qk{/Jma;/ś/(WhU:s&rϏ[4 `1u}Kp^1L۠R/Jړw 8ܛdJ۽T~I&z+k\j=()iNW9pj=mM͝S\& HwJUjh8 =&H*"C"(*:Uե✻WԼGg $!tG@5<@i"bÏ^d>P)̞L`a&"oRW4 ]B*_g0 ?(7O!݅9uOz'39K*ra$l0v0ԄSM۾gv^vtϑu#ѥO8.݇8Bqܱq"{AsFʑ?6H}l%كί~uHuV8;D[dU}R5 rTVYS6i5 vѤ#'0+x3%ݴW)C|x[Β:,t:D:XM(*BѬZۢ0,k'G[$;:KMZlL?|1{T ~̗&_!]>Q)}j2ύYL cQ>Is#Zh6}gƭ~ؽ !61?(m7 oK)(\/u@.=HcVxPq\904%޻j nwu5G8"je'=3H@zY*οo<˘2 5O#z\L`7负 6)Αc-fƫsݘy}@V󓵜~ԍlڞ> vM0nqg%Sk#>pQ`Ru/2CaDP{]qs(H#`R:` X? a7&]Gі}a]-XߦI)$]IA2$-ގ^H8'E)"Mmt0c8cJ,TIw8?ЦJƔ*,rl`Pv܎02zeFwu1 yI(.~^>4x;ͬ\1Nwd}0xDBvE4:pp7m6>Ky^tl?\||k_H,Zb^chSv3m|C|f)w7f~J>)lуΚԛVh7&RAͭ Z9oyu?@5}bٌ3e<|V7yc W}L3)1{[QZ-z~.+_@'hg`vkfo l>'J? +zvD>endstream endobj 145 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1248 >> stream xU{LWgXXu谌X*AEgVFTEeS%EؙH@-X`A-6Ī51X4QZSRqsϗ{(CWe%)q|J+lvdqWu` ɉ)K82eiGQOv_ǫN5ObqIii)4nemعLXMslP.敔$X \ uy\_hq|~nZ xb;Sau[wsm|K3-hK)d䨈-Y-@72}z/ ZT0Ouӳh_Ь] vca:d*C~ "()3~Nj?FEv^w@f N(2n1PAY~Z1`,+he1uPQ!(%)s2D҉d^IvT )z\H^"wIsF0m~h WYRkV/$Meѻ! wjuhWAfP]dq$[q:Y\5 0\;i"n4}+q>)q8i{]jwRhVAM57C?k9am'\Ed)}:(ナIj, 5 za~!Β( l5K%SW|BI> stream x]M cMt1( tM17dϣ [ toQ`1UCED W4ȝk&5A*̀zJEo@_kLqθDNhD粫5埒x#TϪKZ{ypz],endstream endobj 147 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 485 >> stream x=kPmthSCQ lM_fL">I.mݺv5lӚR h}&fc9|p>|> B.xtݻGwq4ye\b"{2x*jT,4QD7)tsf&X ")aY$ᲊՂ]"DT*Q62^BCl`тt_1f {N5uW$DCE<:p@ȏwgg?#gQU&iOuM.OzTXkt [N8'%ާoFZm˪R(w/w4iföji2͝ytZ8)l=X߳4o6_[v,_Vv!-bDK=Bӟ¦A 3)z.\[ 6g–d_&%179ۉB] Աendstream endobj 148 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 923 >> stream xEO[U{){du^͜ۂM th0` dV( vmo)PJܖ^Z bE &_4N3ezNs=yϡit[`i?]2ԔU(>zk?'q^8xU[cuxl47'ZuxY0ͦ];Xӣ&$~lvl4GCoiviӀ>z.o1{k|XN^ENvCKT T-m9Psi*Vś*}_U/T^uձc토<ˀZVk Db9Xwv/{j@Y집18H {~f nI,_*095YC-Rd^6}c9;(oJ_rXwΥ8WZd󨙵,KQ@ā,º?fv>TXJ9g}Y&uXD%Rȯd՗CE3%38\y&l:ńtf`)LS~ID t]!Knv_ qo_y#g\{Lgq<1"sc5҂frA$ 0ɥY9 XebHOʗ */Vt彥?bF5ͬ$HZdɨ\jp 8!Fޓɋ."_&yMN,EQa+?<,@> stream xXMoϯt?dnĀkb#X bIld7{[tPG{UqUSn6xeQǍ_=fXMC"CMY1 &amj)m7^ 6?R0=+uKUa ]391`2f8bDgcs1 a4(wOx\i\ؿ 1my3_lnmMMF%.%?^5MWpڥNHo{ .%{y;߼&q;?RrS9")mʳmH{'ixG'~&k.%}橤MZ@rPl\pXF}o|blN5]G y2AX{60"΅Au8Sp>րhhh Dq\ISx'?"T^8hGEv 2i`n%HWpRp7U iQeVξ VqQMpHY3|Dمz!&"~J򢤵[ /̄b}<OkILB1R5lHvI1A,]A%AwXMcf @ƍQ)d,.j){=ہmCi~)S[ vOu{>tl2(ϰ`}9O`Js*"9 NR58$S 3eӣy92 &ՠq0֚Y~ںruD]8sg5} 8ǸeSp|zv^4+tp|jJz'iEy<)V"v)دr++!9]5Տ1_ԇB)NQ|'-hPHk,It !FC B!(-̕^yO 3^ϲtR.v] o]65%{hx?QH҈(wX:~MvCjdㅙ9C$HHi&iG 9Tqfi^n,9\KKrX']9|]a/rw¢L7 ~#F|;aq} (N#=ظxa"!.Y>W4!U]7&-U5B)V*mkp@QWRy0XVE:YߤVtb<6cNhE )Ͻ\'2a&}M/J~.}|J +gbM"SvW=B!36)..y{#$)3h$E\#,NN$>-@L $][,0-0kRqЊcQF"Zqp- RT~, 0㭑Ao,?UoE/*/MZ%D$jxhag,m k/b8 ߔҔZ2 \#8j=gPfx ev7/_MA5}粈fY}R V$ˊv}*F^Ɣy>i7g'kuxORDY]\J,6;=K`pޛ*#e 5]r5*\"M.nS۠JIFG@"f@c[c(t#u$?/'p$Z[Z#{EC47 irm\ )M̛eLijm,eeʽ9<7@:mw>CNE<fɉqY$G˧OHPKlmK`2zm^LP;f=FO*KyJy5n L*~/dd+piͬ$@\uWo.eendstream endobj 150 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1540 >> stream xmPSg{n m*Z&u .]/3`ץuK\$nxX;I"EW jH"QkH#;۱.;~:yv~9s9)U E4k0&%NOw '&f@ /b~5PìCiX%҂gI))W&&N[A]o̓bq[6Q/}*I%kV(//_W\ᴼ2}M"2ѬKbQ?ӫQ\D0N;EQ6G+m[T Iʢ^Ru*z2RSR*MLVLUعrFQ 2rj&a[f%5q-`֑ &70t{n@CkG J3q!`5L6*EiyuXv;Xp*.OEY7#` (LwݾBX̌{4`ԇA_p|H mgu&4‚R Mp7Me*RjbCD`a̋Fnȏn|7\-&$' vJ<| Mڝ p_[ppmp쭅  ^UwJ5P8Gqh-w׽)is7$;^}pprM>09U9{7P|)K:BsP⇃Bí́cqw,{HҒԖW[w|ǛTj'uya}X?"umrDjb}#otq|2" 7踠7 >Y{]͑&cɀb:RZ>=Twf)PWk? q|OR^1Ou\ڵoYpYAIۋ ¡;;*aao4cKYD8瑩O{'8<-4x=L ŠMQ{ҟjݱ`@6ҥw?gOhz Q{`ɤixk^$ ȼDٙ۵KՎN6\uo\ϠNv@ki[}'rԅa>pHeg.}s닝~!S%A 6 fT;%5E`bQAdQ*924?\m~D)PؖoOS'v` j'Hs.gbNg[;KpHFZTϊH 8Fkendstream endobj 151 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2121 >> stream xU{PTׅWAL\]y(`jJ$Ujeee`@\ka]y^  J1혒8Mmha=H1m3s;}hcEӴ42*zfkDZ4J,ν˽%:i"RCk_$4ۓtrE|a寇ΖW)ɊTyT.Iב"Y3$t𐐬xUzZ="`<+Y$V+D"uN"^?I.3RdZy:QM(h2d+ےwTSϨ*j*.CMPk@j=ZHM-SKTHM PE+OGm# J>q3ѳ[:]jyyFO }K@@;Zݽ˷0ड5I1Nk&FYWfUPn-P/~#Jr ~8ia9h>ݴ C>'.6D~B.st93'aboy$cv{1{7p3,_FY eh5Uk7ʖlc}XS^B/IH¡4;AF{hSsBW{BۘԼNH4lRo+qd >[1VoqN˾K7+GCpN(_wDT@q ,2#O{SUk`Y VIjuz!:.T}I4x.7BJp) د}&M]1E}`goRY`?0KtYϨd9P m{sEn۟lB{jmZv&KGfAϧI.2Hr{t^V;%I\nhOj%ʆ3an8 g8.C巙;)a2'ay)LVkI8) Q؏uJI9D'f\wJP!( 5OM 3{ !YObt۾9:#㞖 ]0Wx4$tAا`jށ8AmiJt,E^e*[c|g a*$h(r]U0 zH&k=찒ӘanN0Ii@+Y=Cr!:q"(o\mf+0Y@q`y`2M3p﫨l+,b?$9IDFv떇:_t*V(zNbA4X[KjA%6+b;;|(Q;pAw%~O:58 ۷HvNtԒmG̥CM -BYGǀ=ۻ5LYe^hQ-O2l%q;|n=U}SgfVh9 p_͊ںzCb#v`oqht7K(~@o8 FpѱGL@ϡ ͈,LKN,-<:+eM~Q^6"H6葠.?$\ 'f}wBl+-`gc]@e貒Uz`S_A1h=bmidL(udԠOD\EUK wEd1W'#zkt~8lhZ: ^{8DG@o_tЏ{"1cI̢O^S`LhٴZcuumpb{"z)?F1W?z CP,K'Y[F4.WuO NrO$$yؽo}6 x5"\匁9bMiсAA ,GfVfV[]W[h#T!uYCaˋaP{vTx{c)Pendstream endobj 152 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2527 >> stream xV PSW1$Z ބJvvԖ*$$ 3|>HZuXvg}ӭ}OCi3;L2s{Q~(H$۸4|B4KW 8Ɠ$1 gr߁4?Cϧ"*$Zf(FFF*~8R&KHIV)uʬdxN+|<]Ӭ ]DM{"$TKWlT(e)JOR*|-}G4zRS**dkTDmi!yCJ\2=c̬͡u ,zD%P!f* RK'T KQrjH(hH#:3YoO9$wI~/],=Gۘ|0V xֺD=lEFM{̸Cʨv;n˨"Ni;j;N@rHॎB90r*~K9]`{B .ѳ/L`,v .Q$ .!70C|g!)shw$v'$Ni1}=OA8?o+NH-ꗶ)\ yļh\( lP4 Jp-Ah0QWfDi+je8c&͟__^ۻvVq{Aè:Z]Tay~za?skYt<@%,s a1*d(.ӗq2wn業T~%grMzP3۵/=\lV)_|0;l6Qց-̗]_R'OTo̪jי"QL;g+J`$m'G](-F ((V/*L˺.\^oUɩ6nZ <:‹PUtXX=RYsK$ "!NRK;FO;\JeF( נ#rDNu,Q zUbgv^vu1O-O9\iB퇃<:,^JkNɑ@MB^tb!sbL0@lF8J,&S/p Cf+#{Ok-A+OLߔ9vS#@'AӾ.щwЎIXX֡mIۀMQ;ںA؈s)Shռ*`C#\Ֆtk~O~V1Ԩ.k{#Hh Q (+# FspoUyUhQ^_HU7¡=B\WFq$J}+H#mOWg{3'GVKM٧!Hdȿ %VsY_L1V|pttLAj<&{ yvYxBٲv+T.4mLvc3& / m4*fNUQei=֑ܨnAG ;xx X/ I`aMٴ\(chjhE1󬺭lo?Od~w~fMmo?E۬cYNf>'}E`1U8> w 8Tqr-5(uۡ yXx>}aDuTKP,숧u$?Ѓi[;[_C5e0385֏ccds)߶so4QBw^!7J݆Nuޠsv9xu}8oecP.̈́NAzYzK}׌ppnj-.t3¥$` =3raC;ԥ5pM" G9C$%r`+%[yqO:-גM /ȺX{|+b$A%_os-"0Mrt`G5MGaH1^aSF>Mqœ=,gMp_ߦ,1txEm7o!\c[GxN[,$a>[!LRKdxJK-TArUA> stream x>CMR8$vz-  ]VQmqCopyright (c) 1997, 2009 American Mathematical Society (), with Reserved Font Name CMR8.CMR8Computer Modern123OEpbcVs,jŦf,hjዸ⋴ #h,t`‹ ' <02ZYΤ<7#B? rGlwYx?{FvťbڽQ"DfVT@htkpozc,MI%ڧϋ1# :Q?f{ku؎׃$Ena}{mltNx~}vCoa  7 כ )Cendstream endobj 154 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 5080 >> stream xX XSWھ1z]~hR}CwDd K!$,,!$aI)/S[-Vjhնv95̌?@~;~#|<k6m0{ ƽOC?V @o>6t#<^$o0A%?lYf0a\DRtXh`(*".T?oEG$ωfO6!4.y0)rqiѢ( I˄"q¸QD0<") YE)+SWJ#EFm޸SLl\$)SM1s3wǍBAb1XOl 6b K,"b'XFˉJb J&k@b-џ@ADA!/Gۄx`A$"}l;C-6)P 1>'|GE@$뺏~d=8sLz{Om~k[Lַoۿ|opӁ1TFk\3ِCr|4/;s]CHi"w Ǔp>p ]x$Tu`֐T>tHW0Hi/l+ ]irH5pJA.@/h3*֓K ]i_u_1]H/ ;||Įa^qP]G#ɝSqtͦUǩ\69=,ϼQC,Z ^p(^{w??iy#&yrd8iIZk:!dGJ.Alص EAo]땲[*#DbjA2S _Ѫ輌ȴ̽QY} ׽ƅaNWZ(O9A0j/7t|Gc4n/5WJ=He(8M.(xvE7t+E3_20~V1^?DZ'X!+c:Qp9H eUo37t_#WT~@gRw>MXhbʪOV{ ukQz~ ĐG[*CɈ"m:.17<*D5ivSѸ_;xK\d*5Tu`32dUZr;ȥAAR1u }"bd2<tړ%&hrPZkRYJд}Aި;|n-z|愽jrsy@UgnCwby:7.{'+tgtA.kn/pظ%ģ ́8ӇNrӳĽ;š [FWwt\ g`fh9\7\+G?kCÐh&bD4RԈ4>>:_l+\ l͓m|hY6XNB>'$L`cb5/w:wNxCu IO.6kP}\t6:JK+tz֦hO>aHhOu3h tA㬗Np"^ wDAh'^ʼngu=Lz Йӏ}& ReSB': .e2#c0c>Tlj56/rV]9 (EaEf֗,aYx ̂{JF~$$ $6}xyu[SM??u<l=7j0"߫ ߁oM0AV^~77F˴Ih8偶J7xFx55=GR3ҤURmQtgKkYb`\^8 L",Bύc(_q+2lܸ, YQ5CKX_&n3 >> А~ k*ʬ62UGP=cz:.o9"Uf_c2P uPy`]8 G#؊5x~rpCK;3i֔`[{A'ʾNv|yɶƜzsn!g5u[v4!<>uODݦK3+$Y%#l*6eTWD`_<;&E$JV*)7 ds5^AI^!*ch.kt4끋=Υ4"2'TK@:) $ 7+3W2?TrA)7a>'j9>)kU@\t|Ɔs%p=QmTtt\D#PSSaf8WlsaH|+|n0w>jH))3>,uq1)jՌF'j6S-AGVBBdSM CN,[^:L0O[FbV; RgWn%Og૵fX 8\9yzu6/ PeЦ kCRd2 +rXKTiTó(ךU/U^f,*1yU v|9.i+45++TD+o.Y(),Piգ0WjR`#He"90&ܳwК,, HR3ˊ"wyfHƥǍ`3 ,wİ>*ܭa\`(.ʜmK Ch>:jri Sv)P5E7j<כU55%T*-[V2+_Un` @x4D#iLѹXud'|Zv,]ҊU OA/=)lݽ'12&ҙXz;ba5mv~umfCfw|;2qܿ(% $]=bzH{6Yendstream endobj 155 0 obj << /Filter /FlateDecode /Length 2568 >> stream xn1!>-͸'2F H,ȁ%)HC=3]ճˢ#AŞzuzo梗s g>Uj~u7LO#ySn~~9+>Z=Z!lgs";)a셈B->?R} j*/#oEC]pwn*E0k150 5Aw¯_-*ATA~9J,Ay GKe#~{:>8ZY~VhY mѴ3 [1B 1T,RO<]7>2@m}w|It~#o;f wrkKrIe?>(hOY͊'̈́SmI6Nyd/4GF'xo2k sXTkƿPHap>?䳥PRuԲB}vAC~ا+F/Q+;<ԍ$.q8Ϧ_˃bhePޛ 3zef+*d} %>5B߱c7]ǘf ˸: Ⱦ!hbjd);?련ѫd=먵AuA nQ: [ Q;> M^0vEc4E@\?$&[Vi¹PDt*\ iUx19< +¢0gEˈʸ%'čBGYhb{YhR H’ x^,7Hۄp/KONf/J[Δ"֧HSxpr`}61nHm3Es,ިwYN 4p%2c2tE #T*Nд8]ze쵶@&>V^FcPN.b:m )&4`(ܽSL %%@泞FOOlM V"¨'4uNžQ gxDk>6tFdVp7؀r%oj:?!°}f\z8kh4a,A4S!#iSTvH# iuSD!FB~ &@R-2Q JN4bɒC,Y2 95&UڻlYU,Z6Y" PN)4Bpa* ͤ*1RARPjxIS T?=X r BJ5qwPVl؂u\p(\A2{ `ݨbݔ a,3&' hIgp2K5maVmY`ty!pa9DZ:X UT>  WK wN7$឵Cx$'3Fb{^@l|e*J8K-l_~M&fv~Ӯ@L}_Jl@hyEDYHi.ƹNoMAh׌&= 6 lLhlzjJQ4PiX{ER&W$p܏@2_- ]0~ cdq 1/Riø_pR:`Cͅ'h8(50Ir_3g}h(|Y5 S1OUL' > c*Zɰg*Ԍd-CkJOiӳ~73>uĚ:^j3O&r`i+^0ޚLߧ PЋݠ>q!C78" Ӈ]֣o`c2ZiuByuǬG-S4}9QRT30{.0Ş_G4~@3x} `>8fp 7xU FARɦR?@endstream endobj 156 0 obj << /Filter /FlateDecode /Length 3642 >> stream x[Yo7~#YxzyA $; HEkFciFd-*pZr1 ͣX<_/XnO8y~E^|-|0I\+Y_O~~X1Dr]tw54Vk~ݔ/]3Neu@jr{ύ[9YB2/_Ge'jK˕nS/":>]pkJJ[ϻY0@1fc/lEΤ+^W{Ws:KB^) dpg4c7ca,W.Om4"̓K,-{E4,es΀YoJ@TwFǓtӲD;dJ4 v8.r'w^%Vr=s qq)8xt*lӽ\j D Wu/exåO5;_qFMˆ*u.}jxh8KAWW.V & T%hD2v~GynDނoB z^ǻ#8| x+Y2`y3`CCuHYZZk- Ph dy.Ûr"CgaDM'%$='[uҠ n/mXX0&7aur;oc.  ɕ'n+<,.*0mK2_钋nx. ptɴyΕC%):8D%gŁ4Lö< <-'tR04(HL91 Zqm){pl)*6T2̋0L#W75`! S} 1;]5ܸEgT`)i_!)v.C4C!Y_塠/4xNa*=EWj91GhvVM pdD0:FJsJw'ũt&q$ا_e]:*Z_jEe,2BhZ1pbԯ5 ʲEc[Ih>4 )h}bAeU\"cBeH#+!wJ^oŌ)Vq{HN,7mÏhFˎIʀ $\c\ *&\Ey]$4¨ʨ/MwŲ MQ3J{F«}Hb҉#off4¹*X0-#O ]i]}i]ؼ+ߟ6Opʶt)?ߕOd 1c{g\sG﷍q L3E=ѺmY!C&9|glA@џa4 97 k_Z~$iZ (-Tg yJqzJ(2[7$$8 ZH//q2Pvu% 5v5~:/[7OuhtrµC`G|sȀ?\] *YeD5?C}MQ%Ȝ瘇c`*Qn#8>1IF$$(n!o6c}Lwޏ !&{QW-MJr~4e?v!N "p$`,l2)C og M(V9oq63/ 5gҜjfHX]oNʶcZ>:#bISf$ɴ(P遚 P9W%UAaRDL 0:b ^d.˒RweEeeÀZMT ˦C\$V,l\fFaL$6?()IB;$Pg Νet֢F(/fRvJQp^zi3`C/< 5 &ŀ3HRQQQ[ T16"\R\r8)8@:hplp2a)X_܏jڶk"[<+/WshRTڑ-h`@c8iB9\ՖeX_c4 䬊aIAU K^hR}u-utrANkϬCiw-JGlʞ7i 񖴰((duBFPo1r(oݑPD% UR*Bq=蔼P$$lH'we O"C/+pa5!.V*BĔil{0`|0/3)ۭtI Չ v&?0Z!ޞ)7{Ы!E \s8Hqbτs!M) u9njJ4WSѓ;MbO q7lKĢw1*Ꙋ'cLӲEN>@Usܗ烚I`dB蜆ٹG6Kb#[#uGnvV]1c3; -@L7t֬'Xi8\l}#pYZoU7{3A 4Zs[nrX1Fc<o7["g0ՂO4@-*g "/gC#֪}XU=՟EeY@0_!&-*8-G;Q*`¡YTUE߄< Iܴ.Ηf[%%۽dX2_7_ҟײ,5+6[=LGS{FGfaqKXx$'hy3xj$RDxM 7d;>!>| AJ'#1\򫃜#ŶiπҒ8Dhk# ^M:J s>0=f`B='/H&ƻD ,hPSquCIJqC3ǯ^W?h6yc G=9i.d=ypܚQ,aj.WuwO%}{^ ɯl~1 Uʼn)*DSԘZK!>l-%IfU/~o_" UA;$šBsEA>QtZoQzYqf!y#zoGg bBV\XB!u|Ʉ<;m`+%,vbE_n^LixɶzP5R{b%uA)'('endstream endobj 157 0 obj << /Filter /FlateDecode /Length 3394 >> stream x[YN^y?6CHDD8VvnȮ]F,Z6u  \}Bū#xu_'/Cf>?J#k{iVyX_}}=cN,So3u\i!zd:SWԻHy9,S¼{ZĘw͘7ĐQ/V.֧ԍNged0N>S2 Jdfe/Wr{?Lq:!#+m:S2E|~~w T] !UdR |.98]jb?XAhR8MZAWAI$RI{ 3HYC(lY6OzEU>4LfrϮ ߛfG-ma-=ޠEk%f˕07,BYQi~Vo>Z%~azĈM󞛚o/͍pu\?+YRzj*q+'l'̫x J|N:_tBZ;fI]9͵V7IN pM!SqԅGxDRPeCŘ1<"{+D=2v[8t6k4ɇ| h+(#pw]J\C3 s.yxw+%0WZȨpq .giE`0뎃ځ8"w?,wi1\3/B3^<=S`H΄5xn;nx#W`"hR%[A0bmT jb.pJΞ-ln>-~Xj  nP$90P{2]ΕKZ5qLZgc/\=7:4ۖf|g1?o^*>[[ww1d.6I4@#NVr;0- '%, pi9bfFř,#==v}S?Ca)l/tUkldD{T@Ypi~)I[U+A|CU V5'4Ҭq射FkTTP"5w,-D@MSd6."r1 80 GBSwKlD'h BhHzAwP3f&yoQ-[7E_ 03Vxʋ0SasHib:JUD^k(\6ח(h 3ɫZN98ۛ}-94 uL7'vǨ9>$C*c$IGuT?g1ALJφPLf[a@Se(ȼď.ꍤ; bsF=XN1-!Ai ^a'b\ވSQEF +l$Y{yr!YO/0ޤefoihz'yZĘ6q+y9fhvNh!!F:N} pd))u M{@{sur$B@#H|A:ʎ8%zhxdo]kO1x6){;er<-[rVOog|edx9R%̈}H Ǫ vIAgL' ^CZu2 &ɋylu!M3t233=fsUW.h:B REBR@j]8˦6[óYdx;i*YʺAbrϞXؒlS}=+ U!3У/Qסw^_!91dwm X N \T!~J0qLH܉?'>or]3uM|@D5S '"Wx{rk+4MvI~دӬLc*`Ϩ=p 8%zK~!Y'ZpUF5!`YneZi*EzL= 8|'wqnq =.)?=(9V"i٫b5ϟ U,VdX*aqY<(Z4fJfdA8R )G?䢞HPO$W{C7֖(hGGD +b} W ,DJNɃ!'@C.Cw)p&wǛ*! ā7Ps_8R̕M6 'PPJ&w!|pe : ygq&ֹ6e.1᝭U4moH!*g (!Jg@C&vu8#JG,"o256ޥ)kϳvBMrbg x(0GxbfP_|;ܑCV ElfE$ٕ4I6ʨ_1oWY(Z}ju]}oBI>}Ks|K~L ZXݙxK@=^)V{ikߒPQͬ$VmRt%}2prh~\2U&{JQQ%*+mIRUDDi|SL=$ EItbelۓXq> stream xnv!(0d(f+pVKj%xI|{gzfR8 kO+5\fLOg,6)7;xWʙt1̼Mqvpl!!@W(ЊYw_ x['UA/@@G%paF nҞ?-lSq!kģ_@k{F# *3,# ,&M+33ZkAæ C1K%ckh#*#wxXF ,2b Ȫ "k!d bW"I RI>hP8.I[6p6cF7}76R]b4~q_eK i,BY~w^>`^} ՚9*zXt{P`l0JOqBG6,H 6NG%b @FIf] iTM8rUK2Ȋrd9f]Dmtpsv8+v"xT@a7dEzX'IcVVbȊ [ҁ!|%J= {eSpKWyr>3?:xL6ߓ|P$aTu8&H@1ku.ER҃-4< Td2`"$empD<2Jum#}=| $wq007(SD *[2R<]:Xn bj@lHuV1,`kE%UT&XhEܭC5mO|*]jEĤ飞{e.7_Un?-w;:qgIQn K[ƁXВ-YB0Kpavi8Fc7ŘWHM6fqq'餏{nϑNjc3r\J4/d|v9j\zq]3c4)A5nixb"_ϙ55vQ}p_@A슁ɗURT+m~'˪#' Nů2r0] 4;|WCkR"/] (Qn,S>f$M cZ"ɟG}L%uV?K 8;$9 ^2ZϙWpw˔G. Yނ1}S~Dpb DWG&V4XުM/ #jVb \  g:r̅$"\6 vѺ~|ZISCu#0-ز3cj\u}éAڿsgT_OȌ؁C#pN- OVejM=#J@L=hL뾛[sӪGZm> stream xZ[o[~ׯ>HEt%-"`@(f 4Xv6s8sF\Y`<$>|DZhXkƗۑ_>d:n^Ì(ƱNbTVqkфlBM~3YdOZTjYJWI%WjU3fɆ;2_(:93yVJ+unNNYUwI= uUJ=~?F3)h 2֊'_#fdh`d^zgG F эF϶r1N}ddj$)nXvRRRRu /MëӾDW實3' a|:gچF5q\Jw~4f:^v"Dk>;!e4&@ZJĔYH(3"9H^s"UFZ_J/us=y6W|u>O0.T=1+H3J[jIfƟ;Il?.ݞv5 S//n\(!d]>Q_5q{9~v>Ϡ/j0,}+`\zʥpE"x3`?VLyY)q慽\Q + cR֜X|5ۗK+&8Т͆;ÕΑYBѹF6d_Dٵ-7S,*Uܬ-qы.eҥ pa9`e$!m& {_!Є_!QÎZvԱ hdGUc:C+܉5g ^ x%eoVEn;aE;)rFcUf[kPb29t$,ˬM􎩺h.¾c2p%Ï+gA?m=44)!x\@IXca )@:ld(1N* QS!5-qP*谑˲l K(uV2fS${N"ky P,y^H)iͭ> Bй+3^J;WmxǺ@".FcAC G@E>jt)SNt%=bZ,^ nIoJHY"6@C0 6wE$IsN%`/3wB$I %#S֫EG*)b4!Zb^(ޛ:eF: v'/s^p$=*]DtSJ8%67J`)I+[IX ǫ,5=YƉš9T "KHd5㩙2вכ6uunx[zZC1O9%e7KbR>iUvu1LEE[J|]l& 8bAv4^g*B#0+ld̅CanF w@r5wv,Q2{G8+ӡ @XL{f ԏ&m8vzx,ؿxnvv|.%߱x> &:8HMmސ͓KGva"^cMoA㊻J^JGs/29 D~;!kcIQ?!y(%ol|MfۊD2l{ _ OSlV݀%ߝw]uua6Td.qCD/.χR5Q;ް0pgw1.3f. $Z_UKBKJ%Cl1W(zȸ1[*]HE6~,5Ju?P0<ΞOH]#C+= RjFoQendstream endobj 160 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 326 >> stream xcd`ab`dddw 641U~H3a!O/nn7 }=\19(3=DA#YS\GR17(391O7$#57QOL-Tа())///K-/JQ(,PJ-N-*KMQp+QKMUMB9)槤1000103012)ٽgf|;?̿ܥ;~3>,}} |g|Waq6;7<_s/wt\7Xp9yendstream endobj 161 0 obj << /Type /XRef /Length 156 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Info 3 0 R /Root 2 0 R /Size 162 /ID [<156072fd5ac9a41ef62c7a2d8e48754c><9f57dc9210d1d0d83d88c47e487b87d9>] >> stream xcb&F~0 $8J > Fb`bAA-2 "'AL"A` RLf 6[Re`5d"A$WQ 69^"@$bA$wk=`*5f.`Ll endstream endobj startxref 109567 %%EOF coin/inst/doc/coin_implementation.pdf0000644000175100001440000063271612622326334017514 0ustar hornikusers%PDF-1.5 % 1 0 obj << /Type /ObjStm /Length 4413 /Filter /FlateDecode /N 76 /First 625 >> stream x\ksȶ~E;L 9s `0Ixn[I48VƖy_n s*c{gobi<3ȂYT+t<+rr& &2gIɤt[)܀Lg,SL:pL(G 3^ <̬8V:#N b9yq1ATyyo% ܏[sYh˵QLkC5,w:S,9r,/p1XqR@ //3c0)`hV^bIX͌q4aŸpe%0b09F౓[,J fYPVz}5bϸfư*"6jrRNɰʏaFլVot&zPOt\8, p˧Y5z%NN|XOg EÊL p4g n`jƠwpT?W' !Xa`e a@hq[eG(<2&mCЉH,T:am:J|jM1IH M/MA61h⫕i+6sK\=蹼ev?oZDPQ5S[ :aoh`V*a9!JBK$K/rMQـ6sU~l@_ӶE#Owfk#$,'XLoSڴ>A &X "´ۋۭ<ત,,}CaM2ISwmFMP&ǣj򮝛 H8e%k"36N{8 ׄ-dZ+c1 >Ֆםzs9|92Y3˷ fex!?BdX)/ɬZw6RLz e&E5jH@Z8}"G{=z]ag3&gON `^鎖5p^wYo6 ^oeuzbzH7#~ȏ1|GY9Ox|+ #O9 %|.v<8Qp&Np1"0&^0qTK=xޞ̀ 0)ϟS$oeLm?e+ɞ/16!g7 {B+Y_ <}FLФmKOg#!!=C`=|]jHO8%t:qAl\/\0lA-&haݪ+nBF}"#&h-uU";t{|}`1ŸE;NPg9{_CySE9 &#8L 9Q.4p`vI5 ?*{_Շb0Г-υOg$e9IపGb<_)A.|<-yGmɬgcbٴ,y,'M+CY12W!"Hgt\3X;aZ^}!ٶNȟ$E[=ZC,B㭴۸+\tϮ)xC*. '[cuCPd<} 6TTUo^A&$ )KU%"$nX@UM(X( u7Rݗ=ބ񶣣ްu[b`B tozfwl~ @Wu֝lsYj/M(DE &.5ZCޔGmVC.NZ++EIjM" CAeU" Q }\MTHņ<80Ct}JUV3 5;*R0ȷM7N_OǑ7:K7@t1kFmu|!40ʆʬf_a%cJǔIlcVWXj\qŸR-qA 륺*@Wn8_pΨM{ݗ{֡tUo3kp `*8_uO=5-p3no; US0]U\$aU5xlz&hXڏ:9]@Yf0.gtRrFERdhXOV ZZZZ߁֔߯+2ǎV ikJ_{wy6"XRY[sStj`oY; ۸_ڣ\{/7邓sdogt˵oh6,F:!-҇'L-j**iPWKzϡKB Kh1p5Ϸ:t7L % <>C-Fe(DFn iEM%EZi;lbQGWtǢБTLb"HekSE$" yj ,dTg0D9Q5$iwxyfs-xjL 3 יɨe )TLdZ,&4hwaJvԆ Tr.~ lIaB/I yAwFxc7I^K!UuF ȿ>ÔzSQd߂-Ke ͓"yj]ʏ)7YQ+CB߄aݚvTx@0Tp{.3x." j_ϔlSE'0% w%6iɄT)Yd6Ԗ \[Dy`![7 GHJ אb\,@K\=5<*P?% 3B/xRP<%͎<-RWzFGp6k3f#9J)j l2U{wX\!d/[ެkۖ_w?E(xl1NBٱۻnZVh\|ZzWTzK^%̾֐Z5LwX#Ɵ>X@7S7Κ?| ?58ByM+TfQ,|BI}p+ԟ`Q=/{g.55f_ s.h*D&;n i7fy{!5N2'U9=u9A5}]8Wti<%H{xR#ju -!?f;!<ͷm(Ц_] A{Y3hv\J$|5oC`ɌVĩp0yw buQS20:<%x%t_2Ggw٨RdR9B )½Dci]! k/`L w?gI*ȯ9DHarD&U%Df1ކ,%dq̼ԣrx'x+M60O>MAWw_=zkz. -}p5Kuu]Vdrjʢ]ZNoIݡLnk*BJQ|fm3MXAKĖ5і.LwW8.N>X%iF-ȃ}{W{>U2eHNM_^k>nd,MCgmRd_sErT$١yQŴ ٳJ(,`sU2MFLC l鰊(5z =o!`g۴(H4,5˺>o}I6f>!0('o5W=~ټ+SB_a W|!3 cۇV3hP }Eߒ!}߿iT0ԤŁg d~H_v?>} C'S`m0pxtDoI=i*6Q Lb18 LիZODb?ONu'M,~DioBBoN|[Ġ/7O,}?k>endstream endobj 78 0 obj << /Subtype /XML /Type /Metadata /Length 1691 >> stream GPL Ghostscript 9.10 conditional inference, exact distribution, conditional Monte Carlo, categorical data analysis, R 2015-11-16T11:15:53+01:00 2015-11-16T11:15:53+01:00 David M. Jones CMBX12Torsten Hothorn, Kurt Hornik, Mark A. van de Wiel, Achim Zeileis() endstream endobj 79 0 obj << /Type /ObjStm /Length 3563 /Filter /FlateDecode /N 76 /First 688 >> stream x[YS~Jyz_&J]Ml-?byo陑f@pJHtY!&XLŬ,hg- IAI4t LS^ ,Ż~RŴi-p4L{K3yf, 8b4e& f8 R>mN4KNSg˜ǁ@w&d!VHQQi=h終t*ů%eGԁIF?xR+GGYUuUjwUMuUG_C<~`|{2.1ˎ (6 TLP<'$ E~x18"c>3>˯xi_/+qB QH]; H*#xUjG,|(wQg=Q>|<>e PjEv:&pώ_cИx/n,& }k*vCKFuuӓךyzԳ;xRH(*1=5Ug _:'_NG88#%)V/0CKm7۲oo;>N'_?t0FIQ |:e痣"}h?iɿ Fx||?Xq}KGd np&S'5QA؞Q]w cFoG|z%Ӯi}HO9ޚj,E!~5Dk >CKo*vocz5-^#$H?xqQηEcqսj^R%"hmq@rRDulDꉽV քj%}Ki8X}R()Dhy)Y%`pNy1Y5UPG(l?[q6(x! PlQwl%AQ"w|9QlH=5LPĀCcǟjqPH>$fN*QX<6@/*B x'"$N.AʺdAI@ =J]ztHH r:Ph Hm$/T% -DBې'?võVh uV Us5KΖ׫Zm j=o|j+jLÜm3/cz ׈auy^8)||`V;mt)+q^ysE !hpNiFt 0(?g.β<1f(:Q׆U@rRdGe#wFeAbz9 'ӬLo^֡]Qlvri5v73\5ڶthz0lh2IqE[%k;MJD ʦ 6@ToMw5CB.I:uX$#e|%6ր:oiT!M= \PckPکLpl$Hmf -WRH(I+%r"}OJx(Ѿ/Ht#GebA`wT;*Ho`#XDc(-}.mXBٍGEb@w T[ Ve7H5_w\T{zȋuǷ mo* eu Z;bX7|͔ҟ;w_ǜU{fik2JRem+wLvBn qhP0+&gѯx2Wh[Z[T=#SFŒ(7R򫼲TƖn ?8JRq/APM떑z6^/5L_wы˱-y: ;򶙜7`~VƉ͵L71aLZ>9(v.QٽûyhaensebrX>oNKU!ԧ%>jէԻO}H N= %iڋ݌@fF z T؍4" T h.Ja1 {KO^3vW; =ϟBHE)MɄ4bJMQR$$Zb&K\Ʉj_bMJP2/|BŽ* p:cp,27<`hwaH|8Aؔl2wtI&z,iA&` ϊgο~&e6sVoE:'7/胊q^Û !&~dSؚEQJaX܅jΰvuL5[5 4w~5 xb .5So9w'9)7RJnjD$endstream endobj 156 0 obj << /Type /ObjStm /Length 2194 /Filter /FlateDecode /N 76 /First 678 >> stream xZ]o[7}cP~Ehܢ}PTYɐ"{JVe A@^pf8sfhqƇl|h6:kMvL -txN0邵>:f%czӓ7f%2D 'b(d %`d(3I1fg3,1 | 'pV9q^gE#u9a"A@ѡS"S hL `l;:%K2!&$WC'3v@LtA"c;䂉(E'uV1xޒ{ob'*u6)=y1)BЃI!L%dw:&L;3'"g2,CL;t*nQK" T /OJT ,7%C$-/9ȗu'_~i&/ aSo3X.O&uo泗ˏ/`,Bz#iwn~o\>A[cW_5+t:WVmZ[KJkCkckzW:e\rQErQj}˭='կ ux\V hUÏWݍ.ޥϿPYu:v޿ׁJR ʡXّ8᜜-F 뺢vJXH.$c%68+RݪG`r&& !gL(O Nhk٨. y|UoyrLe~ qwGw, a"P#>"BFTd4!H@q ==T֧:8!X89EoMA4|'J0 6QR2gtea^4oI:QvFx N  `:'Fl ƝHl#e^ a:6=ʾ*!l#6֐@8 2Y[G 3Cc_ZF13Ol51ʪ=, kb0ϩJzꨁ<w!gM`j<; @ 3@w#J !Ic 1 H8D5{HYAQrkӀ_<"v\(ۧ) ㌐PD@@ 9iv8@σSZ Fd SVUSNՑ8%<&h-n7I`a M %EV͠Z52K-R`66(jhGmFշm=jQF'aPA_ƶNPxų}ؘ#:8tU )6PK z--kb~]u.\GlWni=DE?#17/g7Z}F<;{{_Ͱ|wru~K8ø/뷯04g9udT3o (N"? N0r'.LHj^3P,!xQ+7bBDw^n%Zw\dR}R@1`(LOLoU_<ԫT\v' g-p V'9Hx"= ,Mo#!U,| ۈ ->$ҮB* z PN9 +o\˗"csYoϠZ't҃w0$sn.@7y'>2Xi3C1qBb0bYtzL{*mZqt;V ?.E->׸OTzL)EyLe])I> stream xZَF}Hk_ 3A1d~%ñlPT)K/jK*% LiˤhBx60ȼw#XdѳbRVcS >9&&*f&#f(l%>u'Ô-&!w amZ9$ӞV88͌ 32bA6`uc" !u(E/:8@1+1Y DV':䙍DS|dN 9Me%A1*8OPa.`8H|"[g$``5J=CzFG3$G|pr$"` tOȂ@ q` ^g:$ 'â`0.Ѐ1(ej؟ l.~4?p*%{.~o$iˆo2gu5EU[XQ 5s7i5R ȫ^5IҸ3z2 Jh](UlV+jY9jv=D^5r9B-[/&[9]e~bYHq]5|N nbG08E˙xyEg='Hy#߁ }z(^sCw9dneʳWͫrQC,xwcLfxpgy8wD'-o>ƒ&o? fʀ\ȡ"SSxځx4y}ke^Ԍ3(>`ZŨʛ,zذG*ABm[/0 9Wd%1e,_UFp 'YTor:뗯`uNĠ O P545ZF:&l$}W $AnZ0{G{VC3FD%yvJRfF$i#7Mc'rI=N B@Nσjŧ)D1JG@є )NY Eǭa2Zg4f(DoH+,"Fϳb[$[LAcP~ v2Q 2]pX@%Ϛ3A2Z@2b;$'4fCoQ J!*&gir M`GF@G& ':/(`&`q^F&Ӹ[PmBT7THq!9(w4@9͕g`bAEz<$GRFx"I:g3o2a8q:8>$7tk=l>jam2s/QdE텶#FMQ>FT  OH3cHX娻6UՃt;VX1&*cҚ/)yS=\KX T޴mC۶ m[UmT8֧T['-Uh,͍Hx 4|C2C @f<9%s8UBta`5d, Z,Ub `c=Gԡ}@Dd; DFXuEVc:qJ?8YxjG%78acM$.af䭜< 7?$곫X6W?㷳/.yU> stream x\[su~Uf<Ɋq*EǮXyX @ .U\rg=ݧ;/_΅ټ:˙_wW_qA+gw/^jAFVeٟ_< ~>BӻŦS.YMnb m2iV93]]M𓙎&n2xh}93 sMb">ӗJO'jg| ӿ#6)=gvoٺdIopL$^3<'spn{N%} *[=+9up|sE H?wtBܝq$>J4 G{Z}Jaa63uv<;k۽ר=h@sG;W:szţ4Nޑ0mt}:3kZSL%%1}GXeT~Rӵ|:;j VOv`#QHE`E'#r CF5|ɪػRւ8VO{gڻ?MG}1FNNh ס/uH++[H]5 fiv$䢱N؋$ ӧPAy7l!t-3[oo ]RBX0xc-2ģOʱkP,y/z̻#{2So[gXhZݩNjP]Di2#ȨD 08c2>g06<iqkSJ8^Dt(7t dNSVOTнKnj?ŐiתfQ1cbWf$_5%3E{i4`\L8ɂK厵Җ#lvo,#k^,AһֵщBdMZۃ ) & hN0[4YoրXz7!(v(P@rfS2_8k}Y4<9Ӻys&hvA:$TԝL_+fzx(Gwvs@Īo@Ie's 8' BQޱ#EA28Љj!?78QbP)kԁtzͣC5)>.y^r}T:JG5AhR5nt&0]xGȜ|Wv [o&4+ ;V=i" q:)} ȏ!o&**^Lpudhj؏\ fpbr @r`f~huv1^i9EE BE<hU^qvN>'9P@Չ8AI*]HϹ`-g+Չ )5a(zD)dm:"pZ54J ̊bΦkEr h~ 9`y^1f :id hql'IC6@hg$˽`/l~"éh#w ) yU7{ Eq3Q@SdtR_U'<ձF1)K,{!\9Go0-'C,UhM36AK16a&O@e|`&A0-[8apРS`u.8U~jZ8wC0fZ 2 `A(='vdW>óK(WBᅌ##BOb.2;L\Fn[#m>hU+q1>W-qeKnOFtqQ'iT&4)d#Vg7W06c #ʶ|'(;5rQL DQ1J y')ϫ6u 2p,VHŔPvHI&3_0kAsr ) Y?rDUA8!gCݍD^}(4zfx!AQuO ' ٤MN,[cI @;<'rdtCJDY36mHku_YP 7Z5MQn[X"a5lYШ{oޯF%`B]*|% 9Q2D bR}o9M"v}eM.zge^E/F%* W%`xL; [2ej3h xƳK]wyTHSFL/eqX]^LSS2WLǃpd3@՘j9˨HOmؕ lsծ:;&)Vs@'LfRlhI+i,JۑbfC94~)/MR51pw|)㦖Į{Fp6 j$BAҬ\=USXBŭB[lGےdfrpBC=$% \ݗk?6eH:߱p}B5Tll-tYe\]׍k#mY*dmP aBa~*k0,ea*))\K^m hm/]_/J9h**VZ;B ~`% KB4(++.@Kct8ڧa.DD&}|zȳDetNy6qa2Z3|ӔDYi*ᬦ/xUv*~?liny aCfoPeSEnHpRK$PQMEwAМ Qccdv?59cWZBG5' Cox\p]xlɛBCPj0 =Ԯ cQNeڒА+9û臢XibZ07${`5 ]Kr0~'%/ck-Z "T*NO9REUv' s>x? B+tyrIQ ^l(Z)5Rݪg6e_ΕoJU-!O,1[Eg* Xd>ׯGZB\.ſʢO /4B˨W<}M\kMYߒ[nwnw{ BDw:./[>T:rzlq8o32.-a|0VA) $zV~ ;,nI(͒0*Ԏ/cboh2F-SW:c_X"L27cךfR zȉNڗG#/sƪ,]6Ym?)ʫ=Yb&O::+`\ixMsCJRSza;nR?BhsӗqC/- nߩ#BƷl t6anV_Y`#4"9\bz"y v &TQ !xT9n-Beˍ-8L4Ź m{{Y/^JT—p-ƌ60h7y}1*jPH k2HF Uqp['O8CIJ,goPJ`nx#0_*JetsJoj"=cJnHq-n 57w=(P\ǮK$40)zhqʲok3 OcƋ,6*+Xl e(6E)ڞ|{ ݸy" R=mRURbv{Ƴd986i x߯cc_BmKى35T.ɺoG #i?;$7Ē"v1!LN%zRiV8m{Nj*3+M`  0>ZkUySۛrߒNB[4Xn ?=\"OδA<5őQ:8fK|J;䭔Cn y1]>G)`ryfXmp`pDP"_' *{>C<'&s+ZBu<+ -Q4FӺCq% F7knO4ggyP;;9 A; &[b9:'#OޛU)}w㕩i*BuA)Z@cFNOE a[=r#k]2c~L2`!#[J\%qiE7a5Û vMg:܁'4X̤+~a~X2`Pȑ䴊n!8 p Uà>B vAf/9R D#7. JGWdC+OtgQGU\G\٘AqïElf{aU ^ o^ ?;%<f4>xN2q2q%{ouӱXr {.!0M*6We,6 4"N]t_k!s|nL$0⺋|z"Y9>[\=2u%!'>"ߝ0/BnAp'a #BK>G2WƹTUز tCUjb&/ZJfʛ<}s`ІTΗCP'N8w!f1o}eV)x /D?| Y`@뎬hFy[ZT,`rğu`H. (c5~+x`Md(_Rf tzThP쩘v`uRtizqe|I1ZEމcZ=T a[_xǕz'F%*aA*ҝ-FXϗ[IkiBPrEfk'RYZ)STiNMsN$[5(<nKtbW'bA 7Չk;T*DjHE@cO!צ-qzbh/?޴Wo/jy@tb`>/lu(.Z-@j;@\ҥe?& g4ֹDR+? ;@lM.{ib[LT:Ei=>xW{\cޯ6f}0n3C1Tc2vT({#ք- HȇS (C&tSgL Z*>b*.o3YW@ F;QxS+O7$Օ j)B&(хSa5RfGje@̡(&G"l?kJ…}'! cۭ'YC2S!5kG5 lDJgx{;jFeRžֳ\RK"xxدi{KדJljhA wVTV\\KαkCiY9Êq%xT#&ED1̢^+Zc)ƶKWjfU2f([$)}},7 6Ndڥ\6.9+{?.]endstream endobj 310 0 obj << /Filter /FlateDecode /Length 6577 >> stream x]IsǕs3?cND1E>@-K$-S0f)h)<_{/2_fW5':(U-R_^.3{}~#wHb|p QD8zz'T.\xNgCY>?8zrn<цm Z|M'v1:N SW>[}9U!%;BН`|]`=6(XrJwW<24ttycݪ4(8ruKnt<ŶSwKqn_-D0 sQuY[ "xE>hE-܌0::FUwKcӭq 5wp.F">NC^v+a6*]9i~'엏龝a80@8E}_%]opT]lݏxQ("¾F0쎻riJqCWt/ Rv+*'iH%,\.-.9NӚ R:/p"$Y$H8)L祢MU-`[ɍqH1I #i#=yPN:1 ޚҐ`=ta ׊ L{[Ĝz a8h<'++.|GwOi=< a_D+1qmGD^(Bۃ֮.ymuY4C*oe6݋p8I%4qQZG *Ȫ2x &Q.y!,<?IKArVl@?bVz 'JӕAY߫'蠢θ¤ȿ+=ִ,$NTV KƝp=(` u.%RAJg M".mU-h t!_{>suLs-tHu|M~cԜxd vB`=,7@]`=lV{,YV'ģE~S* U_ʅ Cx5#I[qJW(0@IU_G<o({NpZInzSz<9DԦ&0V Y@|~áxLLF~Bn&ZKcPlkҸ!)='^\Z<8YIZF$>d(& eH$ g.AjɎB)4|I dWLJ@:H? S1}Y:hVyZ) X%(+0p]|A U#L8uJ~$J (> ϯG7`O0p`a,mãB4z:;p.d~ּ4eᅳA>AA\M6_gyou;4ץnr<1B@а)ҼƶQpJi-!#w&r|Ac(j"Lj"w#Mӵyf%;i%DŽ^;^CkO^E!;ԃľdy1W-#᥃}@TM  V\CiyڢrDY42Mw01lۈE Is r"O(beÖ&5^VfJiR{1Xӆ5dwU8T\` i opK n0T7u᧵[7~0F[3} C¼fh&8+$!#,@5%*g# ϻMBRxW,r /.GCq?\ ܜ/\Nj"Yq3;x󏯆$ 2Ea2.\} g7D!6Fu ;p eIq+H=Ү`SJ]# O> )҈G~q$2Ԗ364ZvzX_V ӡq%l mZK?c$u3eoE5L`W?Iq*Y$]xyf{O`IsocƬg2;@~lݲXS9<փhx>d\q?:>2$D2Uv\Kjh.K$ PBn ˥Dr+L p)Nu2:ѕt4`Jtdei~L=DO3u Hjh>*|Xd_8cAX=,*Mi\'.ͫ6NiVd6'*KSnN@PE''0P}*,C ,+NQGr5~ð뎏S477?<|A M4 &|EAEbC,ht*$]ӖѠ|Y\Қ`%EhJ+zmFO5-$ز R==K_tF٫ucsitW2:-"h?+@P37j3H&tb][ |4KY$03_%XIDr&Ud# `H6%N4uF8M4÷lvRԺb9a6:[mCQl$&xZ_4 Ɯ>bnPt9K2܃9O~p%sxL27a#[Wd8_Cx7-Hq! r"_Mq6MLrQq @ M,LMt].0aI5 E ?mIL+3E+tkϯCQJHA4_ = ~*3dpd`#? ǽհTwHyeuK *U gAI WM@Z3`Jɬc V$%:hdw1|BÖbQ!Coכ$Zp6)A% X"w%mm299om kݳ&j߬y03kou!,}YxfPL $f#Vp't;ξ ^ y"ost> |*+ST?z)_ ˌʹظ( m" F);2:|P byn%}PJîT\S-|QJ4f?w89'~U,d.ظDj7'dѮ7<+>md^")a+H 5A r3pVby 33Ù IjX-[AZP4euqnmcsqIQJf`ZN皺 }M,bb-@ńgoB)~,]cF0wc9ĤecNBVсܒX:X3tyOGhvtHnld> 6(e[6 Bee0+ EJݲuÖj @V*5"0(.][8>&E0N4X9+{6abL`z)ޞ%1cK|zSJ_IӃ)_ =ZJv<Pೣm$9!S'KIyY 3Ʌ:1*:DؖR&!lQMdL:.92aq<Ƒ(>6sapPX>+{_O#a'?[OebeK>mc(mumlJAl IiHlZC7IWKp4o\,Ԗ,$p^He "F$Oa2n1wm5lwR9lNJP[kY!Vp h>#K"!vlݯbo`N 5GkTdZ$P!'R!HJ1-(J*R!Ԡ|0 X>PKꭗ `+fq>rjm5%+A FBG˜z|7}E6Mm&7 EUezZ"b^ N-V!1^r-chϭJU[m]Ө' JDY5<|eY1чlJJϥ1%1 TWklI  &mJ*{[?E_z#n4@k s5& : B#$AC['tW?AK3L*Dq]S:3WANLq e%=&oԩ.p̔$/[}L))o)8_lLJ4YTÿѧPL[eH*p&ƂڜPL?kŐ=Z;~zrJ҂ &$MLsmh Ly'Y$wy3JN`$dyӻ 8Wv!7L]Ye` X̾~"\KE5Sy'ۍސ ߍJ. B@_1ΰ'b _}Si8?!e4Mdr]ŁYδymāߔ*0ٗ!#1VUZ_t`Ö<_b靨0)M0~[THۃ=~P$Phrlߥ}s3Vn%N]tdӿOK1 :r[_s2<mg>KugFmٶ3=w L(]wN%˭xnS~9<Ր&s@M1rpTk(F^oMg hu[ BqbھMj<(?)EjsؾFFʱ8`9ep3F8Qr8uM,A۵՗\՗ TesP.F/99<*{P;i)LS[7X'6!CdR僤V8a<&K%lχ; V+p SIJ*lݠe"՝ 6U'MF5 DD{/"lM}}J4Y\Jjgɾ %,@&i?'jZendstream endobj 311 0 obj << /Filter /FlateDecode /Length 5612 >> stream x\YoǕ~ ! j_Zvql#Qvi0(Zp"azRuo7)Yrf ZO}٪z_{tw'{jd{w9:jh?|}msc?<{r^To3YwR> d1}Nl/}:Z9|6&lJձhU9vr^9F@3YE[U X%bN{/*|SG9lT0/eVS#ݦL1@iV k@O+c hx+8s>ti@>e#tp2ƲZԮh┻:tTN.6 ׆岾__#Â8gAFuF[;)| a4lnvvg|}R߲`E,5@pG\ua;zWrv=mkNٗIF]m<'++A^Yw+lMAnYмeYvӜ648h8mBFif Au-ZE hqce16h. r0#@ ٦fVurͤh^3 vS uA槲 Z5}ʡ{m頝oV F3Z,@A0=8]1v$xPr,-J 3 R$^{6 Lº9|yZNl28erv'Z=H Dd܂\*>y3 ·s 8k=>cL0_2ma+aKPކؽFD;Bٖ$k$ 0@n|OG>"$ΈU V}C4@8a&B' P](N j L*بq4 E|q /=`h)GڔX6AX 45 &C* 㹰F]Vi` @n9(3V p lms|m#RyMrf $FZy-(P$)>Mq"U^W0AaBy{\ ?XSpX,5zSM.w~_`.cE]z$]JJ>cRnt:!Z ]pŃ.%࿙(6@BjTBb?@hl#lϱ[oužqU,,Cdn{@X%],8 %7-qّ(;%h KZߣG`ˠ.0 (ft2,~#V}#bA@T=s.u151sM7R[ qv¡A{Nkjý?9tl>Y uRmo釪^k^-ޝ-د!'ZŏT/8I`zPq3Tٺl݋Z<ŻS-Zu_֢G]7X)[htCƪ{8'4P'r-ce`Ip{(~ 5E†?=8+)B\rnSG53ЮKKKŶ4ն/JGDGvIg"yYtMOuWH@8aο%6!'h$`T|v0wL:IqE!p,=ߟvQ3Zxp4MNO9l[I>è/umciUsR--us얱ZEp%*vq5@6pHiZDpvSiul*:(j5t%,):ɽ>1B\9+]@a:?x~t~dU#&HKeٳCLb_8/mqSoiWLȸ# v =6gI3 gRΰ#&j"IlV;momfWzů87"~:i BwB1ԁyu=M%3AѶYS<8uìaI|]}2y*:ǃPkQWĤ&qҕ;n=8ŃZ|Pl5F9A_Z >BqyS^jA '"W-HUD:,y.2>jӾ6ǧFHM|a N⪒iTfX~ ݪ 4X s "-BR L:D@mw*kg+ E)]**pA7=Q&"fM9YT8 gG &nuc^GbF@nˎZ r%daF]C«T FH|'imSz$J&4J1 i0qUwI2 =USk e`o'c0}d$$N Q=8s>$H{Hx~?N? 8ڵ5My`نA9QX_3Z#z#|TϛWYk`3V'y,I1;`Fmp{a;8xt*P]?@оjTXn96OS }XYBgGtf) 0ELj݄ _F 0. 3U9ГρՍQ ,jUpX RfJ_?)_v`Ef$t R<#hKN&o\؁) ^}Dn<ŷaY:ǵ(W_Z|^$6ݛu->[rN&ώ L3ًΌq-8tS]]]-}TP iUPfcjkQۙܪq6&K_7 VjIXM1 1G㤝LġFQiL4 v}d k㎒]dH>b56Ea|jsԸ y"MO  qeƤ@qj>P pVyH95sHrاS ^Jočo̦Mc;w@y`(r Rxx#oT!f隟{wq 5ezqOGB޹ I9Mhey˖)lCs\=)2) RNo]jU;>UGJ`qAciCC&-$CėGIr'ߚhC]`Wdq{˂ ukszq9#;QZK=AIiFfmW+F2ɻ|$o%P.e3idO!Rw:ҍk7)k0F3 pAI`L%%j`uPP^,@X0HK$ߌ$*Eq&$)$ZWYW9b1$<M6_ ٽ0]bˉ AE!IG7R6j $yDdULj^9Wl_jCK.JwzHݷq:-]'kq|3<$]qI1- ;d] A~ɉq?8ކ>b(XJb:2Q s>2R[o!eоh\^N6!9V}&5gF*93:th1[a x$R|g%Ll^Kw%χK19}jts@w: 6<-|HD<4iۯbvJ usf3 qW$)He aV N[~fcӦp | C19'kv)w&vRQZH~ir+(€SZ$:]{2卆CVs@ 13s;qUHx{|qפu#48a(1#4Sg&]h1lgH'&*r~ &`c]~ - xLC73~`x|ۿ̱;5v1`}DrJ$/<Ô1 a|鲪BemQ9~MӀ^Sr#S,pe0.7'ޝϐi,貆Q+|mՉ Xhdr^y82B<6G~.@HoJQOn_)w>+I~M(]F4M4qendstream endobj 312 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2726 >> stream xVkTSW1prGP{Vk}QVKlEjyH!4N("W$RhնΌm״֩N;:Ѯ_c]++瞽}c%H蠰C^'I#祀 o)x{&{x5C1hXJ*Si x|fK%Kϖ2$6!&J-+t.MLR%zNt޼QIs5Z՛/͖g$땩Jm2VQkrwrsݟA4R+*j&h1J %JxEP=j#LR[9 * ޡP"j5FQQ~5 ByPI1ՈvT#pyr>2V58~^zsx#~(uJC4ZhrSo`iЖjT0W+WCL劵\ph>=MAJI?VVXU i鱺 \1U? a| D|S!Uvb9n٠:5GPP!s:Yo ^iVB4Bpp> *h;p8t;*Hr(Mٞ iNB'yxW*&" ,OܼWtåh<8qq/LS6hv )d-y;An ͶL`S@'&W٭P^,-ujN!`јOo_՜S!٪G(6A/Ƚt+oɶISV#N,DcQު|o)"NhFy/X5`5}|Sld6WG#-+i\)0aAP#%\)+m ֤6k!"97]f̆\B2y^h9Ԕ)ٚʠiG8L ŕݻ (Hʐܣx) =TKa),J2_0 `*'.\"SؠjXL_JSGNvȯJ ,HEd"߲"_`M,VI0W{QCm5-C3d$W0ǭ\4ո%Ψ-ޒ/nf&2#VHB1բ䋦J SA<< wK3!b`ĻE9 QO·锴^h} } cEXF&7#6vreg hwUrfN}!u>cZ8mK ijx IO*d ]g0xө4c{;mpE'/o?z$43AIxG4-GRqRs*4, Mq&[MU&m:s@f]z и˲V9b4owr"II=10I(k.ŚrN@mbwf]&tsYy`h:pV}#u*ciZ!~cǑ&lW1AoJSֳwQO\<0Bs'u wG2mJ ީP5 L&$4gl18wn?OBS$79{PNT`5-E\R%Y=f!2C!οwX[cM,rPW4+W@0~^惎>w͗@k04ۺ:`Ȇmμ{i\Ŧ޴[!}?cػ ys=Un//X򍍗"?w?וnm,bl5{B0BA켧m4OQ"bkÆ>̰ 5h% j"*;{ < 2["hZ^Oh;Ni~{aY/ދ POL(xd8V肟mK﷕A=F.7l_%'ch1 j 1QRtsPʵЩ$U00?>v`a{C(>'`ݙֈh\9yBbb+ufÒb,2 : ڊ\E%_AcyF_E+yn7HUI \5;RQSv;#x!j屸{dQmޣ->o endstream endobj 313 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 8514 >> stream xtWGk+l`G zS{ý w[.ʕދ,,7lZ!'lBBBBޘ$$ngs|53{}cջ%D W2Q?ֽw@!gGv@ry-D*Fr5qʬYNNQCP>QcGEѓ<#'F7vc(>>|D9qn0iOPo ;=(n~{g6mD#Dnc63}kT7@o;65dy=j`ځ 67ˮc~كo/tx_q"riȗCSKK8V8^6m؎p;Ǒ+FVQo]e?KhD6Ҷ3Lh_4t;WEx<#{u}k+Yѻ5`vUX&zkZh% xF!xqAt3 ఺Me%^9F|6X*۴I vesyꅞvR&qm TX^*CK s8^"@]Ϡ 4<SPsbY~,U/4& Ň>M&xS`Tu7YаD{]TKGDW)*U \{"g.#2Pv@Øh X՚猪OAEzE(ZMx&H1 4mFhSЬ~&!OS#_{4i:( YnM*qt+Gwe21[H; hIO<$QߋEjQsC6i6',|>| 1_}u $]U?=.2*BYױP b@*QZIKm5Rb+eF~AP{(Eo~Q4؅uʰ4>8YupHݫaq8Kݤn![y1t϶\8A*/u:mҘhߟHί$;]= GӮ8jcr͡6/A~H<["~:<ܢ(;~80W/L6xN|aJЀ3 .UF!s(S@aJumɰ(A6wLQCNⲠ=DeHo!JÒx0xȶ3;^L9 {ڣ^"4qh Z!h 'o͑kMgkf\˜5~ۢ֯EWut1Zo*%/>Hi6⧵IgqM<(Đ| ux Ȥ0`~h{nMDjMq }x(DCo=v^<)j~ȡ;!HDƨ"o5(Bf\'3_p"uf 0I+tdi4V ԕDO>?\\( h%eCҢ[^YS&5*$?Z:CIRPzB 5RaCxDԔG&-K}y q"[$ULHz_fǤ7Iz,ݪ~JV#7.ۚqRq6)x,8 'ǀ^S@4^"N #b/3zjB3/D,a#zVX#'Wj\Dl .o8+|dB{L?OlWe+ŪI%r論{:4YIgl j%v)2$+jbhd -(Ih}[K3k˲`}\um0qFRtp3S%-+ܘwF\"px&dGttT=4+b"GN,Z8~L@"?X;{h8; R!>%%-wv{t忐 iĐ`NKd`of5M{igؕ|ܲͭ$(5B%{651"\'AޤMʢRD sL5ca-wah¬A 4#k~Do]f|֚4Pm*+HuEP 1>WVOėfzi`>u}ڨ:R\Go[%Ϻ9RPi&#>UҶڐX<]c ȓ ;}* AsxOn=xjM gpo:('=džb/=Yk憌 D{[$SN&&$O"͗Xa(KI9/䧑x\S Q,hԥqdKQ2Ga=""_I*8kX>$q]ytcArSfJҨhiRk߱gTqZͤq<.A!,rv"گTʃ! /֗:o{xۘ¯s_?!r܀秀TP <1i4CbrLw^9UwH9M5(<(0pijH8R#54WVRѫCr3 s늨'ZtZfOYWd&+ PЮ`0ڌ#[l^1Ei᫄gb"#ᆮ2PACb G} TwfQ}E="nN_?.{Q?J!g Y,~ 2+cl`PeoAdq]fWG oU!pآ=_wҴ$)m &ׂ8?LCkYB9M-TkbBՉJ@.QVjtUI$ :SOzjQS 9(]G i~.ayUshɩFYl6{߸xbQȠcJ2 "?M8S W}TKriuSУsaz"w< <OǞ&h1Zƣiȕ_xרQ Xp9[tRl+!Z/dCu%^%+b *+W6nM8L o qLu [.s!FY4W#γ|"/pd'EX:>i0l Df>w#mW}-vvW@MCQ[v?0_0u`B$-9*ԋf!v*+yrݒ=YЩe $3qEɥ9˒GN ̤ŋs3wIbwRTc^^6"[7o6ծդ^C&0s HėQ8NrN΋X,i)wnk|yn%50v{] K^Phk@#[Z.#y>yn2a}<ßߧ6=|hZRBSM;A,wJ^ͲP$tD?6A'Ic/mkXAh2-/쮿c _bGI!3AsR[EQS)I?f{ن iXx!Tkl ]j\kw:&␫'ޞoVxp6ٜFojur:>γu*߄Nӆַ2o4QCkvNv!Q\(iD㡜2_UD1D;!q8$jɿjф=#XqyftC+\6WHjW~~tư !ji+ #֩|N`1Zbfdʼr>?6m=CIJ({68*2HdBð=J3 l&3ųx\p_#Zxb0y=A2N<Ϡt#23?vNZ?3K"t H%v?jY'F06bye0Bۅ.[RS(׌쯎rՕҔre7ZyeB;Fibbvpf&A ]/sbEPڬb+<U5_ŝWo/ZC—Ègf`Uǁd—+ӈuy|:SMPmq:ܵ{@%>ǒx/S!3tuRu)E@ⓓYfYݮl/5Q{1 G>7HQ3m7q5~щ)r9Vj`TPِŏ$Y\ddff}Th*&uS)5t{B]evmk;Uk`Asa69uށwFEo.g݄[ WYoXkNv9'+PyFBc7H)tޭ9iǏf^!Τ7stS)ɪun;4u*jHa]2YqEw[C_v_Ҕa2^9L62$@|G+od,^GMqh;݌]VN Ntni4$;>Ui>vCF"XLGG+ h=c?l7ygEf=vx?m/_웢leVZ It;r\*t*i&%( i9Z]v&WPrqGnl2◤ A qt$- 4;f\zKĿ"،rj® &cšل*-$*\%IN&;T2Y{_rsOy?^h ٣;lMUm. \ yλ}8q0\"~Y +O<;,]KwKvٕ|^^{nC9s٣ðĕrak_A,"?!8m_yS`ۂHQD' ]iޜPD%i<$K-@ÇP>wSS'3w?85S'gPXAT}0EQe̅ۮ\yzk9Cyv`O=3y'j]\#Bfl3xOKA6Yvȧ_ 8{I/K&(x0ԍb]9O(xzs_/@k ~=6v@8*{ޢ&^;\ 3Wfq83C@/^IeQ=vD{"|IL%L5wmԩ9h8K  )XjzZ+@hٟ-B<<6A&+8O,1&~ m^DC|s%*pg|Ab7 ]؇ƃ,s}'cޛoXBӡ-k̟vTдqt0wFRd`vyOj,+VCc/Ij;UJ(< ֒#$%3hhY7dT 챮Btdƕ.4Ђhz ,~B'Or[pd,$:8m,&;S#(< X)C6"5#W(JPUJsOx/^_vIV3>Esqԫ jf%: xB~"37FQ1TDGCL"q##9D>!FbK$: ?{LaCP^_]!7kH}x}Pue)6eV>6ϰ=~${8'Sw둆.5^mZ!/`G)QzS%x&:bsO`Ew<@7hk3˶ȶUnRdWjK s9FQ']"ɮ޺W#^f׏XkloF|GjBXIJ3 6V ?BT5O8|-RkTE| ClnB$欠 QZÞ̨k_^!fRHiK=;]ج"sB0yDEJmAF:R 3u6WS\-tˇL)"K=Q{/Bs_%'HDISqUF)dPec%ax 0Nd߶! !xh~NrǪ{6uQdp!-€͘w|$ O}|64SE(䚈TeB2i{$n1uqCy+)`A|whzX.Cɦ ~VuKWU5epުHia|yc+5 PHAA= iS?|endstream endobj 314 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3735 >> stream xW T׶*z188bSl2 ge9t(Ȋy|ϘĜHb]UVsg}FPpk6} `m8q{c1e4(5a A3|/YhKKVGz:l?8l Np40::yzD X4!.(:??2amXhF_քDG:l efʪPϰk#cI=Kж!_rYp%sf2Ylf^a2[6f;dV3k]knƕYˬc^b3 Ff,cǨ 33Tc$1+jF(FU|douGXuTἸ&~>:}(QE-{oY7lydGslABGI^_h?C]T8ap8#3X-`0F r.XO8 7 Qa9>qTͦMK0Mɑ`YrFEY~;;dBvV76uj􃏯E;חǮI応ry{Y.2Yrkڪ+)[r>1T ~ biĞr:KEr D 3И BE,oi54 (0$MJ8GTJ !]ؼ%D7+qp4re)pP$FGXv|ze2?E)xEQ J j;!$m{BɗϏSp\Rb^_H$듵еWv P/j <xCԠWdJ 7qd垿fKSB8NMg`Ç8oiJlh3CC.S߽~/ ֕7]^CTh7Vޙe_khS8Z( _{wB劆$Cv9U[a|!s- /;i lȺ̫{-YwR6OX9b&EnM!(Ȋ%F8Q.|ʀ?s[́5]ei[W W)h>FI>Z Oۮ/i=uQa[FT#nrf(,IYe$nC&4jm2Շ7A[zy;]"~O$sbp {h NJlWSY,'C r͔t| gi/gYB$tXpr.ʣ `Ob[v *S Eǡ`;=>s3u-OŚ:1Wh8ZO'&1 .c??ܬy)KLb!-yxF:/ԝG;N}CQ'Qq|wQMkEiB}+u:Aa#Z@N)dk!ؔx҅#!c CclTCzpDOXطtzڨ}p1׽ɠ3d T?U)kWNQ* TXWX%ȳD],{y[ȺUtY5'á.%[p <No 'srkI-V)GF(˓!APdJbXK4A}q(1l Uitčd< TIr(Uq&I^*?-紑q玼^ _&4e@GՙwxnEL\J6-nԶHg 4WҌUt; 7JهB8u&  ..SX2_j}r$4݃h欕R~X-H0q@'aE#J)oVjZjar |1)-#y/s|斀eN&*9"h-hJD7ZqdN&$h xD*7Ig G*[8ߎBIB.%Sߠ?~Wyr@F_Cs\6肞 f\Ӭ7b\zx=A il f i!oˬ;vlM}[o ^tAg2 qG-{d`ү4:-pYzNCp>+0b?O!iEL? XL$Up*wz-eB%\^m)SB;ۭ@%F%h|uORcЮ'>u'g=kq7wrlc1"3B=r"jt9URsp8M+4 ݤ7 iFmyJq㑣bc{W!uv0XG^-*h/yJڑqaB#Ao-Zҁc:Pč8'S>J9@5DeJ>2: ;!Bʰƪk'd+҂WJ+>IsF=C⽂\v@xcۉupJx%u?a8Sc7&? H"bLM>{D_+l ɧ^GEypm,bde{[Hlԑ/|\~m^G}> stream x%mLSgǟKo+N!wk/X0-/[L2@%P^0GZ)eDF`%+[$cmIueK0a'kF,f/0q,-{3{$t; %(EQ⊚L?E 4-|ɮ5I䟗 Ꟁڭ(dnr \zCkeY,\\Cp -\ \ .Ah3;::LQTp .?y'*p{q)z*N׊TXOpy4dDϠCYP6AV(߇PBqJCy"Yѧ}Z$C4 S:Hel6CBeoI{bW2,9Ġt81)f{7ZJɽ14KLE`J=]Tc&#l㮛]pA\ԑ F,dfb31qDjmCp{U1P{TQ${{d'6zgayf=L=MC1~ IrN 3Cn??<~爨ktCz`5y 4_EqsY]WaҩkB]EvMbAރ}w=ŠDXk'+_g\BK d'- r2!Ǹ0Q7>w>>,եRK}мUzOu'(b-W 7g upCqRե-c3(DK= ё__$Ng9Rm)&.\e\yjGΌ0>&.l'&XÚMw45[+Ͷendstream endobj 316 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 7219 >> stream xyxTU CbT@{"E)  F:0ޓdf2}[zT2I ! D tPDԵMtN$~I!p9Çq\k7=dv<}v;^:6g=E>07?;yhQ()MR,OIK 1-`̙5kA䀵aQIaĀM)qQyS_L]K9993Ò2f,6= '.36`cTFTzvTd[)ə’nЧ)IYQkS"ғ9k˒HYf`[+2Wf^&7뢂n۴9aK֤mfϙ7 NČDN9z$ɜM)͜-i88/rsLssfpvpr^řYYYřYy mCձZN:J/rnh4C%P唃\(1s^rN''C*@t;t;`/Ӵy[Dm[ u.QBJ)yZ|G}R;E1hm?Rcv}ŞҺuv7~\i s64쐃jZ:mPٺzG>ޅ)ͮ vҊq͡9܈d0.3]yH4j*u* kl"Bݣ;Or߷Y(cE%c>(H|?>>Xsi|/٠Ъ ?8RbۡAD4ʞv?Vѡ0WQZJ _î<ւ܂_y?x" R@ע@cA8ϗA^OH u I2je/@Z(#(vK7v#`&J5 }oghȪ&뛭{lRnCjO/ R"HЩl WzbԏfX;^`V),'I,onUh )I ):UeVc.*7:3OUPjmNtj2dH&-0ml^>|x[ss]堲 ڡ]Q|`7:]o};4h,}V0$yXXWHcNf" Lj 4ym{HuD@olf2IvX%n4"қ(f{6c2&|qlCq2:[:PSౙ}io'P{2#2$;iN-}G:{Qh Kmz(-2{v4WJW"JpdP9}u΃6y쬭`z(SEKgJg7.- i}fX)Jʥ"4C!kB/a6 PFpk1#!`EKl8ّ.10p%ph]x.=tb=p,څQRS)z\E__O>`Yj̛~)Ztnn476:Kf2|ʯp๫+ccI\]e+ᓩfaR=s&)98sP(H,@]Q7^qůyT8}bMx#ݥC.?lVPhMI @%i[uXk>5p2J/z"5=sacm*%H$JZKڙuҵ*Q34 `PefHLҫ!G ߨȺ𾻭{)ϱSsRҫMU{q:E;/ݗyXVIM)}sɿ\[O2KY>*+i*bgPOt{F@ ,"^p*tfŪ78lQҾ|AP<4ޣJka\s]e+o.ӏnӊei::։}97۹i;=J&h/rlz*W+^KHzF+%^KzKi0VfBo3!psH`Q+xYZ F F` ф$_ jB[DҡHCGC& 潆tsf`W`U$R9ں~/ՎfOSWdm%rՉ^Z#E}øzW`Iʶq/ЃSy%Aٺ#&d΄4MAh1c +SkSRlb:Cꂞ% G k&ĉLWׂyRKsĺ]%a3 3M6CVXw ! 8*BO:<p A va~cf(^sD wnzm(7$VutdL6%YNgvo޿C9ō\6#x$ҤTtzɤ@EFeS>ETvԲ0H'eA(Qm<GsG21r~! YF`כx~h =>MP.w%g (4bx:}QYPR)뵴Eb* =aDfnpG]S_Ͽ<z:$5,#l[|i Wl0dkLF>Zs 2iJLiiBͿ7)o)jiȶj/ye2Q_ +x]Y.zi篝O^\z  6:-H{SvmkI㬅{`Jiqy1[{RK? (Q^cX'!x8qPa7W ބkh|S/S:x} ]J1$vO(q1mXs&%!>)>2LBjE)q 9Mm7tlPV]R8|*W={(T'VgU X'LaxU" vepʃJLô?N/ tѹK@)j/2<XCb4¤8ш[h4Vf&Mn;K슐j k%z=o7$D&'j˝&39܌Iv ]DASGV;G wJ~ZeY~ ?EHߑWYzI?s~ߍCzϛ+ke`G[seuU+=@sYd%37}|~,< `006.*U[rT҃zELfNa(wqsˏӏ _=j>j5endstream endobj 317 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 6568 >> stream xY XS׶>1prT% jϡChb8<@ )̐0Xg8[[bڮc7o׿FDYD"d !=w;p%#+!Cm"QPXH~Qgh f lw{{x~UVOyYryÇ*d^GWȽWzz=/ /7Z7kAP@pSfSHQyk[~a"OKÝK#,mϼVxYM넉&N:psF0vӸRԧ j(@}@fRèpj5rFRQj4JR:j5ZO-SEԇbj"D9R)'j J-QGrj:՟ʝbw-eGA`]x'eOޣfQ}T_ʚK>%,HQUzT)GYTY)9 0̾zz^)zXZem}nw`k~o3F/'jZv^{g; xvvv ~!#ΖSqx`?~f$BU_ ~ׁh+pMܧG(%z>[%ԡr%]Qv+_%LZz)@ _u8ug\.bal&}--ݱ)\ҹlE?P8FTOGBu?/F0.!h#o;y$S+I:2g>/~,Nt-(u},Xܲ.5|&C FB<|6 TW 24X0l-Pw-yqP$_Ky؛ ;;ׁ=7"c?]?4bT>.1bJ ծ ʠb]#.bk~gSxq҉V/8Wl-Əz3pOe9yի7n^q0y<A |FLХ xI2hx]C0_Keg۴ ` :~=\("l LMHNwXvz-aK0;@~;|xO(Ot>yCLQhxvC ݀&Q΅e:P:"NP^8YcG9<ǡFĀO I-߇>O/|c͋z]8,E*"8MJK"P^i( 1(%TJ^{ 'JTt~_zEN;Jve=-4 |0L؎ǒcY [cN;SMvYQ\p#b)hqhs~|=bv39];Gf;r( Ӂ{;7L,xLG_i;@ݴUUrO;_Go@p5t7$Svp=M``?(=2Xxge+jS.ۥ;8}e.ƥpKwkrF1- C>|!-7!]k&]`sSq:@ 8 k6;c-vJSۮFo&p2iofiPbne+y7Owp덒C D8YhO#Ւ(Coq҈f-FG>SծĔx<`SpG'|3pz"c}cF7` 4H"5 JT  (D7`1biCGafF$m@u\NnN.*cj"2yX߲l|v2<=u2!^,l2!녢H_QɷI zG]Ѹ Q 䭘ۡ`2hW8ib]rq j/yv~deTjedW1tk3TUP3.˩b?Q\gsV …l}vk$%7V?lhkJ͙TgdB^z /J Z|%' oFfIHB$dH(7-{hD[/Ƃ '07:+-JRU=GbBŬ{vS 8۲[81'ʀO١b=Q>b2>O_.i7| ˺.Q{OC/<S-BO# Ñ?=Xakˠ.]Huﱵ385: 1D۲XkW NRx d 1[?YܒMŘ"S [<1`UtIT'E7Š7pNثzD=%2.NL$WdڷnǯsP:ʰC@ YpTdޭ-Ϗma׭to!+@HRb#6C̴8 |LJe bj4"7T :V%=$Xq^)$FMtUB )x^ jە"/dJ 7].9bdURQr*F%%٪@UtlaQUD,P&ܢ%5QgfN=Ԩ'7ddIUHCQF=)XU*FyUqwRˇzKDK[}mEc: Y,r>{7~~U.&>mpJ&'&;1LCIaVL{e!}txϼet!aNtV5YTfnj jǵjE&E$akW'h̋lɭ g# >v'ALT}׌}wD ܎mM2ř(zMS5#Lb4ܬP֘ NMLN %0?}:1Xn&vەfXb5k6/C2xEwEtѦ|AD|q~́?A N;|ԙ׬tww'z-yrf[Cb}gw":b>BMp徥Sщaw n3S_-0ե#OyTMD": Ţ,CwW_FY('$g'evC+ |mY6DSn?;ZV="nyUWIő{WT4SA_  bgლ`p.nD*qh'"6LIt A諝NjV6*t*XKaO2,fCҌLbie$HLN?'obae WK ,KP/(;cK!QW `ܤlz4hԡs^^]"PcPU8 C Th"r?5v >)}{T:z2Oeawl{n%akl7K| 1#qߧ/t mXUPPXXPPUV[U庮"lN]W .VMa\76+h}ήǮ3*23*:{lTJ +an>ju0߲?8 F¡£ȳ ;r* S]͌K H4.r#ϝ5mQoCIL^ta6+Itww( yx{bHByV^. :>+[1&:=K۾Q vX)7I=Z ,kX6u͔ ᱖ʸ&+כEf{7IzxM/twspGkM񏴽SrcAm֯4~5Mҗo#t!k6oV41X1H !h_6;̸55s7dWӎтmf~N^ӳ #]4wt+6|.D06A"g8$ L'H#/>H[;P]a$+yc9%(O'l E P1X>=,Չ D(쒵2펿OZDIg(_ @xc3v(72`o.RgEvuw tک;9IvGfPy_rz0*γ| =ň/@a$q>0\[GxqgWR-TB+7)qq4t*RK+&HL8t ג@^y61)%)CԆAN/Ρ[^A0`5{͚1m6\S]-J-NJ}14y.'.pۧmJ3A ϵ/[-ڰطV6,V3-۽v- ;8 {P #QדKV,_lمB<"mIVl2'O93tco8rj~(NpɖŔEǧ$sA!JBآbhy"&0 E2ѥe\Uנ++A;I*+UE\]Z_*: =բ k4619 Ʒ y7r6+KLNri89߇ CQjF3dt8L%5m2B`z#-a d$Uor+%HX3x<4s-?D#cM,AI|1"^n3Hm?%ޏ,>7|C+u3I( }'}b X= ं+rr넶(t UA(#NX K/'Ewzɼ+tus$4e>86s `"+ 08-RiAaGgA MzB;;H_=u|k]GZ97hʣ᤿ _AN`ѳ;NiYتםÓs˖/v\5GpM^~S6O~,@63&;\jQnEf̸sz6kM>9J\2k"!2ET_BmIhuX<|:%h=;N9rX5_~x!\Q%==#Ԝhȸ^9L6B1,:?O}wsߞOjwU`U4[W*ꈢĴD%㭉)I(LﱧmIbv1eEՕim .bE{PSv®܎"^lI3yxK4Z=+ *=80!ʂDDG#dcGL'w)++,(1nu(I ʫYTY=v,}à rHO ě-.NlZǝgU br vo!E==Y_\N1Ͳyo*1LUqcy_ ~!aq <6MB[m(vN^""wTd)>'%\`Ě[s[C#KQ$&0JT!؎y"ٴ0i*Ľ;n ̻ /Cp?</@_l4{yM އQ/^=_o=.}p#W88lrPd+Ú1k_G3-7P؊C9!T!_6e1v$E"SU m}<ϳ^GǙvW4Ͼ~SQ:)ǚu@Ff΀@t7!p1ߣL۵tkZt^+^[ye31劰e89:$(uU^i_(,(94̓z{s,"zꬬV}(nendstream endobj 318 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3485 >> stream xW{tSuO ;F{""-bH y5m6M[SSch%;8nou'AUT倕#0q}?vrXP[VM/SigMI^G"G.AD,.#)1-2:f-eQȬհ1vz0S MJZrvg+ r?1SBGE;No!pPp 0AwN-pYl*pPB[Ѳtw3${i.OLF4Qd3BmQ …@;Uƅ.W v*,"a;.mWZTFտyd`Z-ZC{Φ.o6aNN;_]LWV68!*m ??ٌ1:?4STP)eO)fjXnQ6 ziZG|d w{쏟`P[@Rf& o zܓhI_X(!,j,kٕU糯k 2v)m0J\;T/;10@ص0^X =a z qTïq1d~VJ#"mrz=Jp%( dbaSK0I@܎_m<7.Wv 8>Kvz{\gq$WNHЇ2;W>&0t^#YrJY: &7SquP-`o3coT5m~L?Ѕ7.OUHGI-8h73"`9+IfF=Cֿ֯o8z}=ڠE+(PIUxo霈hpBG/|˗Os:> ;M\V'*(g}lV*xgOQmo OM sO#'hOm2hAM`N:L&RMn`˳ւPz,:ZcbMć+H|Oੋ @ $*fcR`QYz347OUG}s_ķyɌ~-VC]]V&Iܕh:p+em-nc-6Ln^rAvWc{9{f Σڈs#e _O[{m,O.38KDuzJ8S%l 9O(^Vh2PA#w%ҪruA7*2,SȫTjkN腉7ĩa .E6Z,6݊A7ЧSh i%5t(bcc(&|f:8<#y/oi]l$(*}V@l4$ivo}CR( }2 j77Gyhpr?VרJeRUr/qh&F)3ԍByZOeDz }“|+ߜO=DZ/`&z&vrѳW*oR0wڼ^#풝xycS좍cohH g4An#X^-is1q1 88!\Vq3L$D:;r9hQ&B)Z5Z<Cus˭j0v03"Ӓb1>K:QBwxehBQԶ& zj˾]PSiեCU'c;y+98g VE0>kiVi(6ՍwwV]n(60lSCxPD`l?<3vkM*V3JZ]+ .]O{z{[N6r 'dq#~0y1dլ}خ[^lwxX˃Ǭ-{Ybְk=fuHF塢\A"wsaS )CV{Yd`yq:% k5ŪRgy?Ŵ5Q8y8Jد{ &CGp}vxrhU 7x23 x [߳p>rT%endstream endobj 319 0 obj << /Filter /FlateDecode /Length 8434 >> stream x][o$uN^F^Ǚ@׭b vX60+0F$E嬖7>RuNuאK@mV\s^Sa.n_|_/^_%)7/S{Eҡ;h[jk!8_^ji)i ׾>csA٣s3|hW{p&Wbs}MN.ǻ ltN%^;d<^}) ~a9.wɘ|iyŗ-搡,΍F4 Z<. 灔)g߷7e=6ZK1ޣ}b:5kS=n7mױiy!'l~`]qDje&gds0Ǹ;Zx}Vme%M0;:RI[XkCn$۟ݍ8*ɜ-2K]?AoLJqub)7ya'rs("F%=VG1^<#vũ B_2IE,֬q%~CqY k~-.t5Ί[ ylm{zceWTzŋ*% Son-|)e*$`Z_Ǜ!C/ 1!N̼6Ms% Ç}y;@K0AF9s2~>`l,h@SZP&m{p6ThJ>I: &^t"B

  • ŝ;T=bҶЀ?ZfR հOѶlmX pX<07N +^Ont8JG0$py:_6Ӧʾ{ȣ{x2ĭF拀Q?"evu-6@8̫C0QC $h"W\1`LD/mUc"g 0YN8e5%A$=L^j{ ha~?iݗ @`8;I4]yz``2 F-O>I56 Bfƕ-T94]/*>W@ع `ꉳeg- "Oo:{ja3io%@4C CbF}\~(E|m]z .p$/>8s1zw>>32a _CdLDv{-|s~"I@HP{ :g"Cq1UF<V =W}8Km"ҞD] !#X!-o>=zHU=3(ImMn˃4RX >Ng@"/8IJO/+ QbYZHhF]+Welg,(=Ow!\̺lmWxCԞG8p<:voMfFqB ؗFũ-nmWI_-'ݒԧw6@C %$l):;&IS$cĹ#:C>A>ɱd\Yyg^5Pdz5b|bTzhl8-t7|8}m20 Ϲ'cKo{/e9ɺmB@(s;$gwzJBx:n;q'^Гd^8 bEl! /4_^ K_h&-jKRBŌ).|ؑ=h2h耢"B!um X]9juX|-`>?1N6dS'P%|4d ~.Ȅz2l3A~11hOSaiy1:,+n&<}^%<)jB~3lK4r$ sM-68\:0 e:v%D7 Uy%=EN)9U.V-lE૩qt5h;?"ˊLgu#;?rT Ўq Leq}m1@'IҠkD6rO:MHlZix)ml2g''@.Ѻ gAgS:.NVL?@8iw:*O6cbG [_㵂4F/DN:fEU1yB)Fad)θV zTg%8dM#%&l.  :EIa ʣuI)sHiŢ'6jSAC/\3m'zxk'؀&2GKPx.)K\"[p0N}{Ӂ{r_(#u<%q\C;1üD%I4FS~ߡ?(SМY1K(MVvhvIxVWf3t˜dxT刁ȓd ۥ3R:nRynuHwJZSY"1I[^3,8>޷:FHy~KL\ ;VB(h؎oXb{FUD=)WȜ%NANp֟1yϳ&]yP-$+}[z0ukO@VM?vX80K 'D#9 MN~>sg7l"wR4 KMjS.!AhSIv̶2k=Og*#3;wsXQy$SAv [7IxAnVg^=a cW/;ȠuwSBtQU2h*6hFkJE醻 2TTxwjxD,H-=/xƔ,OaD2 ː34^*0owX>B ai jeY'fC5,uNGDs]2b% UӬy< ͤ 5AHfi Ks%øaH+ YlGQAؑ1It'JS#7LX>;QWNc&a{ F,}\#RjC/da [Ka[N(mGeprXJ[t9Ҽ@C[rȮORM_c>-Z NQFn;AEmR&ʢ .#;XS.ivR)bPja=shMˣPV|&f!%bb |mٶ -bM4$aSNGQ&Ixj~Ei]gh_oT"J7,쯪K#Q/+ ! a LAtbeƆCxʠ?i.e2a9U5{I] chazy+)5jB'/ ,v$\N.ryURlHiL#;3(6'ǝ QP(3桺h-,qTdk=|gfߵw 7|/5G_7hU+VbM,TJX d 2 ^Um7I[.l p㴙JiڨqӒ.a.7Z)X mW^;^MvL=98#_wxTx{U۹ u=.JzcJ ;w˜p_^B/&_d]NsX ѷܱ5tnb?qNLI*0~Ki,iL._&%N Ά&5ܬDZq&ä3^m> QUU4EMuߵwQ4lP-?-Mm,ͮQbbŨ?_*賗/^V;mǤiD^;lb|}.:M3z2&G{@Z,fJ ɀvZ'SX=GY<Ȳ 3bq@TwuY%t orj66sY Q{t' |# @-X\%-^u񨚧Mocd^0vd`E$f]F41A]Pz`3zT>Ec8~8.ṡ,?Ǯ ^50p1:YxRQDy-t͍ڎ¡MLY,I]ct8^ع(Bf3}S[eGJ`@t:MRډYyHcEp0V;ėPWصNAbdždNUIN-+͛l=?j041xhEvs0HN*|r1RTNLlנ,^N %~3 tZBFS9BU r{D8E( DZ>bniG]ymq+ƙ5\x/5ЅQFl6ڗxyX P2HBWeڱWI_"%'ѻE?ɦY'xCpu>zN*3RT}+Ș }^s t1(wQ4J{]DחJd Z5VT:͕>죘詉rq*z+խ2yڅB^1PPNoE; tWJ=%I?"ͮ2'bZW P/6Eٷw587(?4cv.TM`GuBm:.u:NM.Q;p!+K2A37"J$Hu9,G.(ԑ9ټW"ZEG1njYmr@lZhŬS4H*w)ˆpTОXe-_xjKt-wkt7;{cmXtJFU$E47$k;p'ٌKӺ*-;iOG8dycfj!;qAϧ6O_/灥KVfE3 |){-MػzU! -j`f*ƛ vSչsmmxxq^$jX zUDt&>plFt=BV!N,\)>P^ޚ7rXݙ~P`GW7ùd/@EѢT,՛7^TrU8HV_n4..<|覚y$k >ͫ'%Rbɳȥe4-՗dʼ a 6`9j, Eo|_=օ wA8iɶص,3LfI0&u0`a9U> /nv_ǣ|1oxbY 4u) |Kxy YI;Iq2PlAGaPs₣H*]Zȯci_ ?Lv.lD4kd,!,oo` NPd8ߨ54}SBTobǘx;VaBTlUO0-hjz?Z&Lݴ`H*R%ꎦtjvJ+z8Fd`+:.rӔZ]R\zC imK~=&ݳ~Z~yO&Wԡc}bt)P@`VbQo#>coQx"P>Ԧ6ɲsz)BJ΍̞EumJa}#bMd-ؕ7mu"J2%ި1[[6>M/e>/^_x-Wˇ,sQ4~q){EZq0+vb=㗛l~25Id{TKat2O&Hfm`lKNť&q;l)W@R &J~T.HH^k"Țh5C/(cK5TpgW󮫋 E-)")GՔŘ\cotgn)w‘"}CVB}UU?Ny8GS9;.-?SyQXSSʫ;=683MrHN˨MHwUWs%{)+D>*&@a~ݏaBܫq# =G ı 'Ȱ-""wQA QDobÞQ7.VV )] _ UfGyGLU!˖sᯫ > stream xW pgn!tA ,1G22lpߘ#,lۖSwweYm|a.7 ,0Ä Õ 䨅25!l/ۻ%INTTz{{dAL&`e䊩SoKcdҫr3 wA{_}yKH7m~d)9iq1L:sIaӦL6/Q'*)le&V!"ĩ59aoEj4)&O JLON;aRXV&6l:][ [.߂Ĕ :-ler:-yI Rkd,͌Zgezظ fM שZj6I6PDj5D}@S Ebj*ZJ-~AVRj85zD jde :'WʫTEOrq1O^81tÖ 5iiͿH.K\`˃|0ybЌ%kb^ԉ--©qon,MlU- O9QrrHS z@1A7cĊ w;\r(.[A8΀ORzdҚkrQT?M AURt18r987$k`B;ij&h3|G 5/h%Zco/=q򸷹YbZ6o3`%(?^ZV~ikrtA斦EB$Q]A. SuYwsH*Et >PN'\Uv71MX>a0!>>2h59Ux~Pȟh(q~]j`n7)q0뾓b[DeMtʐ7ի?\Kϣf^dO\#`Pr@~ϊZ'8NYRч&y2)eZՌ&XwNQ( Eo": "7+x|_+^'وxÞBX>3;fks~72/  A>;]Ȏq!Kջނ3ih4e2[L5HYl:jY4]H-e/CЋ9=߸_iQ; t$82zYWb)áNݗtr)=Py^P $h [ DlL vf})wE= U$LhKz_TEp1{϶|PJ8lUL`{PN}F.7TC'faԸJOZYG[=S/^74唧*_96k  Ep_ImA"Ef-h}L*;wP{uYGkpR:Pbh|xۃ]-~M~9ޯP18^[w|>((x>{V)~㗵(lr3nK LDQlD7rl|TBF(O] D^f}F|j_fIurD1%::NщyT!)d] "Cvb}!G|@m>^+r{uM-B%aJ3 ՝GvF}oMxJoD*sހov>77jnͱ(s-"ԃ, "$u7}2Vfh4#4޼;x >19>=&.Sxb8s?0s8/hG4 Dr!> Crd#V'jmO ]o\*Hנ^DGdA.Tj;:Α5P ;ux5`$FKyZ713jszDY&FBU("Xv^;#VdfՀ7ĝn"N96}БMb ]D?~ oz[,BVz٢dyv/ O^C¾Čt_{׫Zo)*2R5oCE:>ChyB;mmϑEh79*Рoш2Z]YSU,QwK98#-FInƻˆ:xzm `/zendstream endobj 321 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3176 >> stream x}PSwO ģ"t:n[ծZ*! BHHB^8O!@Hk⊘R@Vj{uZ۹ڽڗuww̽'Hww޹L<ϏE-8Β݇^O?esa= ^'.0Y== 1\Zj4 )W)UZv(p GK2~pΊDؗH/' 8H5R&xU3tZ] s LQk0W{3f5Ԃ)^ܩ 4٦ع9g4G)(;mdhВ"ZNIȲwb+@R`d3w.xu- LȂ$J/n^#@#RkZ3qq$TB]%Cp>c0n,wAWi5$VW)kF.6Sf7(bM''`>pr5m*PZԠmcOJqPp=2&sfպEP& h7&>|m՞R&JJJjGx[(OWl}3cׅǫO$T9Xi!ԇ!h9:pKo*ݴk?q)eh+y%j%QP,O1lj8 Rsz 9\:U$gE{Y\$FOI:TWQ)'V+el0|6aAp%z-s;_*r5fohn:NC+ǵYT-h&o/3h0-ވ=)@6f*Kk>ÞmKߥWZ|]5fh}LЬUie+{]7xcf2TDJs@seЊUdݐoͻ{qaWBs3PG,(i a(Pٱ'ݷЋh 9O<"QG2*_fcbR fpu5 +@:DW]Ef'Sߴ'/Jeh¡\SffSfٝS: ׵kkBN& beъ^2xRK7 CoySkˆEh7Ţq:/3g~hLW,ybtaYx!f]Ȭ,$_ǫOBOJNAA:cIQw)ba~ቴEO}DG~Xq pCr0rBLdIè\v7C ̞uvZ݀xtm2X! "L)knM1>8\EQJJKURZy*Kvp>G8{ Mz*MDkfGX@j@QOv4lg(,Nsccf2ۘloEQpNybbׯ׳ď.؞)rՖ~f=O7b66HTŬ0USr lFwETWT'?EBX-BrQL@ĕ.fM v j=ooQxd轮 {q Ϸ>QRyތ؛ !zeXjVۼJzBS}l寽$U{6%KA| Z{ JI Zk'D>O5M_F=I0XcUa4BZgGOk>Z- GK?#OM|{S} |/fQ_Sy-+)IC%pгC7W+ 7 Vp6+p(p\R7<țE-,?xB)HGZ - #;4loрQAGeSV=>o(5- /\ 9 8`P?ka.`0&:jc&v6.[DUZP 8eLP_:l$rW ߕe޻%(I@~o.>/OL sXZ;lws ߿ˡYP[Ŋw(:Vpڜ]GD[s[*Ӽr``ȵ`8[ DA|dF|3LI̙g=k0kgp2ǻ0RedՄp<ЍG1,`=la=&Ve~JH,յz6xҴ`0\`Bi >,5^cAsl.pѭ3,C`מ2C|;j"9%3w"G*Sh|Ǟua>9p`&7?uϓ.<7_/R$)`vt9P3?Gj͗_~sBO '\$軪=ߣrVO-kqU؎ke0{Bpg=>\gw |n𩡼{ڲH`"s]9{n)Voc nmQ&xuk7LJEA)^cnLY֪#Me:˔, xbV'A|c5ea;*kxOjOmdwZk:!6+klT>z_>^AvżyO> stream x-mLSW=ܹzun/&hTp3#E[w/+t9+kAXZeҙͷ-{č%Msdsl~ B(TXt )^&'H"RpzoWzA_KSSrW)kJJBD)wF[qhN2ilQ[4@ jׯS-Sm]mRf.lu!rH.(]gӗHDvnzXJ$1EMZoq/@~h# l3NZ>VO{cjpPQ^6tqs ɳd!y,LGF/-?[7r_\}z4YY02$eCQEI%@4?7W͓e۞LbycBQ;=]$Px3G±!eLɾD\i(ٙ~7XC2kr> PIvendstream endobj 323 0 obj << /Filter /FlateDecode /Length 7213 >> stream x][o$7v~;qEn kO5hlKȶ!="Y,IcAyR}RߝM{u6܅Ӌw/,w/>MI|Ugʤ d˛_n^nɚvduRv74d75gwfsc'md'6oѪ`B0M6Bs0)n>/>g.yBHZ4MF)x!Ÿ?wVu^㔌ֵt|u:=~A%jgIh_E=3E&brBjʄL-WtqC7ަmh:E41-T?ϗZx1ۗ i+Ug;{ls+%omvO@kz >oW>?j+Yy֖q1ەYrŸŰߏYagLc"yȏxU/@tv_(>˴^'xĊ/G?I7ᶈa4؁wCǷpg˷~ٸ템μ) d՟gbc}l7=_6&Ӑdmχ91]?p̩DC'Xv:>}LuL^>Ix];P߈Mz;|gCb }9a $R1FCTZPoiowKJrИ7H׷WY;hgu6Vq=gcvI v|Ru]>hc>>~ݣ.h_[SC}L}CFpc~7=ˍxRFvVOÁ0~+{Nc5^!}W57w:y&`^0.*J i2ԬHjR2ϵ41 '0]EaxD}]UORV/7ԍsrj=i|F |gڣV'ch_Ӕ7aT>/^'87- -R%9+su޻qen$VW:UX%n fM.-IpUX͊5XX&4vJFJw#&'l\+ONh7Rp6qKI -: <8Z|@- Wd_:B5 JHn/ѱ4d㤥:Xw CtG> a6歉ի M,DOvoHjpGtҺ:YJ 8CJR,SwžNm;VDuebf[`\mCg|QZ7NJ#J >%)֡ѫoX8Z?Yk#y8#?5GZ(p\"r{H>gh~J&}mEϸ3&yN=}?Bgl4*~Ku%֤b=( uZh:&uvk>uذ6C9jћRe}eWO:ٛ#7-@%+YWh ZP;-S 1ظZHsy,]rc6"EM@Q?5WXUWste~ 2o\D-^LA}*p| sSɓoGPW cj'8G]FPjY&% wv* ȣc \ݖl V<+ɠ \"ޮeq$eG0d 8ZЩ*fHw[RC? UYf% &^Nvf4G4hWj՝UcKS64NjT!!}WD<ҚXN.M'5i 1)BR0?wWK&kM]GP{_4UK͈rr)ow1T|TĘ-<ˍ#qq.v%$ۄ9o).mVO ^Q! =H;RhV2EC NspWD UA$=XBi*s9@ 1=iX~dШJIWYږ/#+L{P]=p4$n W܈$bfB/?;>D1dz3*{U<5RR8{s gLpx FqK>>x ZZ(Bo;g,v&U72[4vG-&5e(6flv8 1NNy3B?E ̤~V=6Zvڿ5X2o.pڛX?C% =IV"jF6'+N4J#f68V jfD `*,9BfLGl#лf3s_U5 Z 5AZưԿ~b4_,"!J5wrP GƒMOXU^MO# M@.םt8""$\aX /Ҡ0 >SKҡG(5n6JFdKZmcHl9 n@l){#)gZ?-؛J=цOs;/C0qz{K3=a^1ja T ;^yB$/cvD[9 }BcH!]g;i:(:HA`t槻N6ia e)bn;֞S_O]r VA/܃9ҬҧA˲ّ9 GNqhaAH?ݴZ5AyiDWĬ﹏fiQ`&p!R+B5{}E5k8tbjHX-L4P&Nf~ş^7wn[knQ||"^\vC gPvKA0ꥥ:zڤU@k.sv'@r (g 2g1"-/^I Z*O(ؐC?`^K"/")5ūbSP\f8Sޫ J~,efy.EԬS:HI$$y5?l]R6Ԭݝ*134XW61aSbH ~Qۤo>X`VkNF$7B= qlH6~[o̡?Nʱ7VyUK3ȹIA.A&GgdOs@Kt\N\IbNiVmj3GU7^ur6QiĜGcY\ոIG6Lj-{n/M>fǺw1Mm<+RE:Z:%U/vJ{MʺϾ"8 5š^iDE(T(姀]?bU\p|nՏ8h @if*jBfes~ )`{3<9 %XݳS/ ka; R ȆPnANOhO ʡOFW :,vmB ,O8(N)+j'2v|]^fƠI c XU (kjvPj֋]b f.U\D0\v&/Ǖt^VgmmJe2>\,ODJpl247l?e<u\fpB缾]7)_n=a2*=s{3ˆe(ō`Rp>˨ !#Q-hjxQ@異wY)LE>P47yzq ~ӥ7XrӺHYhpIVAR"c?gKs%]7s֌K̚ EGTSS w)MG`d /BD;ۙF穩_`ip00,b65NcZgSl;x}  2dЊ[08n2CYFsk2&E+3A.ҽ6ijЪL,gZʞy\sO(~AE{k~8#tM.40a4Pņ`DnHNh@oѬ @W"3:)#p)~P5w"\EzO5sצWWU!W)RWdʩu1:n[ߎ""+^\~g+ $"8'O u@63<f*Jd-rlF75ă&)Joyz`9ij`@Yo҃{`sZPϭ}JhhEN3|nx&6p}\KGƻͭ@p =*$ %Gg,>3jK\3-Lsu cr.F[!d(PTzJE-7 %'~F=،ݺ'<=GC MD#>; )0O(<66%C8"5XA (py+_1Bκ\];'ydΔY D&n2 X+r^סnMP.ȩlnzVbN'ѳhg~4/?2Ј2" 0 crMJ8X9ǧ8 T0[Y)>t/oaIʏyLP䛨n':y!6 T: Ppfȹ7Pn"Hb [sI KfD7TYq^C-"%5/bA2ovGqD(T '*GVw,nZS$pO B gJkiiqVoڜjp FK6ZX]94|iRxj^BQB2LLГ3 :.R1XoȀM ok%B49>LZ?"`"q_C"tj7 ̩8 N8?JjZ  d]xNjRyeW|g,R+Yyb:ߞk9Ϋu^8qNb5a}q HJsk kcXEs÷sv̕L1Us>o}ZekzpfXTA>Pc:k Bs0TϘc3^160]{PP)BzӜx۷O@G_'.yUI;9 < |.xm),xgfL MшˈAlkؠP2WIsҭ+|Țj?zͦb|j&~Z VO AsۄnK{aidw #X .FY)K}ǐ mDzGx+wdPjWᡖd}q4hjer=SnjbҒ6F57@S; RT{OEྌ)?3!K3u_ZJ ,*B6W.?pN-~+X;xK! X[npkl[b2:S;8rC!3#2"zJaC3DQ.*Q ўdō}x^5BK4.BO+=/rxҤ=$9swV+2OWlD Q@ŊB'_-MX1&ev*{aJCf+pMz{]è`6'b6Gy$%*LhqGɅz$ayZCklz y?endstream endobj 324 0 obj << /Filter /FlateDecode /Length 7277 >> stream x]KGr^_|e|Ե~XZc /JʇQN5ZQYY=0 (fe#_<텚^?W>^\.}_/^_)LYe}H"8e/~sO9*NX?.jR9wK+|lsvnwV:eO&JLi˽svJ?{06{M)ݛKڦ_F+E`>/`'0ar݇eWm[t0>/֚)';L Y&;N)}_o;w~i"~;Ý(aq!k`FqHlY;#\jES;vz٦zV&;8:̓/QI<' {@aW_z:& d(!G@Z5񶗡rG/', Ĝ&aB%5soa\;c#waѡqb$/jS."r!}]^07m.@ FEVg9<4~ 0m`.`Ìv6$r0K;I+p ^5YpePѡidHvE-gӉCmCb6h3]P@ cj o͂r_@FTGC':jׇNBHG:FZ1 CL{`L2/g[i0Ⳏ/{`̺nϓ(նLCÆvIؔ@1slKx2Z4\@~{=A.P}BY٥{#b9R0 捕SzN-J_C$Qhӛ<*5k `I c\"KA|J_wt)I |? &x#y*(u @w:d0 |L; 8yBPG؃j5aG@0M9[;X42GtpG"?8䍦 kET哠a9p%A`E[7+`$åpvyxNqgPjP&HmqNOo% aߙNʀ3A!_hV8?HU7o~ϡ3Tf{+u[Zڃ0s?{Z~+]zdxdx_ C ~}WNmPAŎZFOo ~py#HJ plW 2Bg_wC'*󈠊b1cq{iGN5E,#0iM'- <Zcw4=o]5R%;?anl-t (K3g7 1#gr e,:t2s+'WB䢂JS(F \|,v2OMOL0 E\ cHyMʙXO O0G Ha#[E뜴5:rGligG. &)d^3S:!.!n -LGFg|0S@ 3RNրIfou)=I46+a>N\ T89lǗaEk4bG.wetȺ z 4~1E֫qiި<%{%Qױ8? $P9~X`9bZsx[Sw9LA,0. RՙB|>$o7 4B@(fw-E;w*YrLãZkETw M 2J?.PEu`yX*19hsB{Ͱ gj,| 3aS7! w\W%;Nr;uU뤎ap4- [R2JP4y:ލ ć hzS;&UDY=KlRbcЏhg|1D%izyHA DuhhliX M4_@߶"~P*uɯl&sx]@ywc~/{\V0#ʈ:mʳ~$}7;nY{3Ϛ"`L&ûtgS‡NzWi倜#I3H2Z \+ڶ)v5cU+O̜`6WY %WUP3{'gX礨3z({\Z=!8G|*b3],UQ~¶0A1'LHX$`rd"2̀Xbꅠ;P TG,Xe-Oڋ"W l˳[q.J.crOf$|/7/&ԚnPݯl?Z>43YO;GZTp{{#S:}"g}+̸ I4f }=LrT"U J5D1lX N[AS$ 2B(9lUfNة)ot@ 1w>?4頄 '<; ќt\zYmoh{|-aȧsdDm@hӾ?9C.'{&Bn%e\'%'%3/s K%41 cqg`5)SwD`hQD43*2'~\]'bE>/\;-h s-H6_U"J)8\_3\/1x]-N$P:3Br{,ZUtwh;*vQ_5-'M͓3v4~7{a>DaڴU/=s.uu^ [yW}J ;?} vS0R9E`0f$cFZx]. onͶ ~Q ^z`RƕY:V#3o嬀W{/M|HuP&!޴#ve2tdݼיȃ6ٮCY& L5(|xބ,VUd>)#hjN"rBR275K$7`xgRTxNw{x 5҇ JUP3\ p$14G׍WݼRчv+JXjinopϥcDնX*#l>o˩>#BTyc9D3F\~.%dʋ9;ar܉<3榼3FT6i WXK ľ/_%SB}T?%e6n#J\ig5d@FmMAm =ؾH󳖧.-C'bE1BiE`5IbujVLU/]rrM Nl((ZL:W__|uDFL7عkTxr@0Qj뼞.6W^@-{*:]fE*L^Hʏ?ȿOߌ-LSD Z>cd.:1!f7ִNycVØ*ldt\U4<)k#5fo Dy1A8]қ]s߈ޫF G{WQ 'cA餚@eVX4&6sKח ܀5>ΚnZb )_Jő')T٘і-Ð WupkP[c\٥ z O }O,z:etz|,/٦Mr+ r-{"Ѽ|!J Ҹ?~gm_#تb,~\=-:5]h= + |Zɠ뒜N%qYgM>_ʚ2K!Xq(4^bT"T|wi{c uDmyrHL`*7 C|W;CDᥩG}+Z-)%{ρcO XSKɗus"Mŕ`B,  5\Uȴm3&U^8,{jq(J|̓n=4Mrdj9)["p6C{HADU,hc^r\gVH>ɝ^>>pPl['l.CH]xo@6vNl^S<:.yr#YM̍Ԝ!C_.Ys,SrfV`Z-.3HG2s\X퇾OP1H[c }h 67Fՠ'WjZuLmD-|ş9 8mgj5v|0xq%/U=|_= .;hiWr㢒Q%zmx[g >FƝV&Zgendstream endobj 325 0 obj << /Filter /FlateDecode /Length 5493 >> stream x\o$uQ0?hK2c \X8ɬZҌZ;-yfȪc5[ĘCY<}BпO~z&Ͼ;Enw!uuQD8>ʅԱ[Emwg章 ^ޮDQQ.6#EPi6g~Z/Ha7h4#B4",?/U_+}Vy6F2m$v"ԭ#[Phg _.6"jiεY׷]nemde:S6R.mBI|w3m6mȆ~])9}4/./[7&b08Z[ *˾|8C˳],,좵]pFZjxt g\Jځn+/!$eC;8^He7.F(o1M4/$᪥.Wy&!"f+jyqcn`46/8,i=Itڹ *Z=IBX}i`MboqfZ"Wzqog*_ /7ۄ]ߦ ʆʀ{M3/c9zp[Kk;DtB f;F7\3|KuaSUVqCD#HxXM&3O"nQ}M Ѷ6J2QhW ]Iρ-҇ %|MWU)U_NNCtzSFk7mg&H 477ZܗLkBە2})!++<l6r?!LDfM%Q@[ a#6e[&" Im]M8R?;]5hE?tϚeĈHT.,[(/3Yj eǙ,lb%p?FN}ոm]s{Uи@PAHmšX}פN*1 qTՈ囤{(SA8k )kA/_#`/ЗjPq 2Z0h|EZ4WS &`2]lpV#m@2TiDoIENy=tsTs "XyCP.F!8oj[PuΛhMo\ {l5Q /~(cbs}4R0M{_l*ͷ+͋Ҽmp4=a4I@&VUg%#C߆,L AtB62yYW=m4ߖ4/J913s!H_A(<旅zoEWٰLT;_ϱ»33AJl`q+ش{n~94MzZXg;l|Ւ ȹR'Mi>6{Ҽn_=ZIu^Kبڊ EikӮI߶w=@w< WSR4NwMrSKMsO#3fH7MÔ@3N9Ξci€{ rR4?x$T#I >1>y#"0-M 6" d(WYyB+a$eK&o&;,z5g64R,V8Zݔ$ v-5lRU6A9GXwuJ7lӸ(v#xw>!Fh/^nm*p&.N1of\LU{8{# 99r4ZF; Z}3KdVHjakpchKZR<0Nz*gq4;n )dH:? D$es@’:"}jY3U9*R, ̲*KVQD(l&m: Jq`M6̉+V[󳌼l eqµJ'lAU ͉5-H:6 N +6o=@L;z- C?wDnJd 0[;`<]3~cѝwѓAuͲ1=K\"{@\4h |e:t/2!z@!IpM}cm+Cwy2M.SXmCXvy}jx8uoVv jVeB(UaEV%ufޢMLjCwEYkW+hxX 2fR|o0IEitfvԭa%c!_0- 'f>8ݞEioHjWgm:1]܉Yk+Ud|54ifI3&o4xCqwQx׸[qrcLJdK2TX~f3uStSWU;,sA!l&}/5<'n&8H9+zv&p$Ksep CGÙ\8WO2|r&WLN\slsC֟!&J)ͿN5RaB#D%YK &%5V0" Ft|]l0t*g ge s5KĘ5fHwY^SMҼ*͇f؀msW4wyQ>&_@Tf`ckywԗDx׎zmAupo%^ e[nJe*8~U&PAc?P%矛 !?2e:<.)Rt3RT3=|!CgdY׫ow;mh1Pw%{b jz'4|&j^E;O}ܞ*gҭ"sD:jx_Xy4צڏ7H WJ~MQ'Z8SHe8BfVd߾w4abQ%eɽ+~y”shS) 2 Y5,l.tI'q+FB8lj3(7̜!1+Db Fdٛ+3d#]8U5+Ҽ/z{`CP y0a432 mZ@JaC_ᾼ,d).S}Q$=`PM*މ:gЁ \D>;$ݧCo IPHi2̧wq1)"'w ,PZSc]|TlިtǡZG#1^wMo/JPyy,^dBN&(:7c˹!Qgum;̛_R6gSr&tfjVJWY<43d:+f:˙φD)h}ݱQ@#L8><˦QǪ7RLCk̵l`wX<&AҺ=?@?6AkijHzM(4lbΫ_H9&6I\@&א@4Կ9C ]HE*ksi-FQxVNtGzUJ2ꏤ` ,ɤgNT2$Vʫ<3%7fcSTͅiA^'B4aEY93Ec]b_,3&z+&r>ao/p\t_T 5 ǁŭ}BPO͂~etF75RTp'{0ikR,=]gGIɚaE< f|RMZYFܶ_9j.({ &Ujl8D >HbP[R:9#=Q-]iKRT"[Yr@0KU<zB*coogS$mZORB[ͪu}jޓoK&3c/&㕼9;-1 Hwyi]jXsIp˖ٻJpI"8K_/vendstream endobj 326 0 obj << /Filter /FlateDecode /Length 5866 >> stream xB]Z0m0::FtKsT|s(RE'nNsi ;cæ]m>P is͛Uz7U{4k3fM{.Z=x ?9_0PO/Di@h>csOU@;zz0L/՜/pp=a-m\sDIQ؄WElDeӟ+pXvoΤ qvه{D aL;knNh9@[|Qɟ&>CR!WD@%hEiF%+usRl-WLg4 !a ٛ ؞^7fJ'rvY>M;wp)Вy7G!ݬכfC^tdYL҇jgA-=D~[8F`5((| 35` zI\؀fLvq[_5p_e~T7[Fաb'gps@# ؜ZrNzpj;]?;2hKd' `7܀̀N5Qܠc6--B^qr yd/Rw~i0uy(݂|rRkwǰ29&[ё;\awǰeQ‰DlR-$b}ё~: @G-^(a)}2rb?i0l5lԊs-V bIEZyE[P7*&4q:ϖk:y`;P@~N`:I!OƼZaPCq\}WI@bԁʽP+&5g}J(vZ(Q[4$i7xDfu2tu30-\V:.hײOFݾTp%Ły]imr2i^v!c 6q7rL UG#Ʊ)7wǡmP`5̲7yVokem^WyWX"M{W 88Cm~3 {C64%ߥCS&.l|S9l IDk\7M}oӺr- L\~օA% ]U vP c;ݯڝvgvfC8<{Ф U*fq WQX8d}C E%:W@i'Ɖh? n%AW!z !b$K|H4h\Ü#YՕ2S,0*;9Eeʲܙq7H9e3WLOrzOij3(u6)5oD-1o3XMX/E86b/~XAɋM`>Mᚸ<ڻ>׀\l%@Љ 412KzVzZֱ==fODeZC%=1:6[3#?"Ja"BoS΢ra[%|#ݴ'Ov7ÙAp8z?P&΀&'7ݰɮ9dc8kp}A܄.&+rڸf*ݨ^,Ji0 l{δ%|1?JԄYCV7CNvYKì𔆠*f` g  Qb;qfJ#ؤ~Z2H"KFpL|srtڛ3-~4ٿ уljj-,ގ 45xt3xUs=A9nXD7X^Ԟ89K'WtEWK%fcg&O6 ٢ uF_"nQI!'Vk-kNx}:$N~Pdql g%&6*w^rVSR2\!rPA#Pv t<1 = R]"Ihz9嶸 +E⹢x_G٥&Tz,TG[88M1 M[Ë-Ӌ"䷕k=LdX8;j kU >ZN2y}Yέn+/7)G1sYMzzTaŊwOJFm"Ҹ$Y$8S6m8tY)xH8Zhļj>Ω4;]\OӚԼ1XNNkj2pJC:fM] ăl yxC#6sCJM,1b/wqVc0,dclG K|`*c4k[k&E a~)b+&5R)R!mXPMލa OP w@kEޤY $ThA4ʮi9Y.zRѸqճ Q*;8x!<AJn,Bzug,JQxKw[įJFqBޒruT,qB(8*zo=$NE.^6$<0?>ьbA>l Cv>[5Ĉ{sỘل82a[lzY%SHnvwp Lj h|@Y@venߕi: ) *3f0e3&h#dLMIcwm*^L}7d ^x ^a ?"*{$]3FRa -\" 2;R`@dCl<:U:]FeI]>g嶴+IRtQU,RZFwt鉆X)qv3bp^+h1"r&uZ=|!mo.]U҆#"\>A)Cɋ)'wHxaNȅ6W4"5=g$GQW{vRtHryBy(g62Y,pS|GĆL\Mz \n4+7|=C܃INkwEbK7褱sn#M[1gS.?(',|K;44E#pYj kZ8?.)I _bBETRzzk &[[tR3HS Kt_Vڱjժ]/J`O?&WH|wWD6jti#(0dEd;[ ).X<Ȩp$.C}TBAË3ACwlT(TiTZw(u @l_K8%w>)uk39T>*[la2i^DTSNyFMP;+:A/+A ):*b`&hJMѩq%=i) eD}O[\JJUxؼØ I+~ҳéxa-%GЃl}.+uKC d_N.ovi$5(z&QR8I=qNk]H&HP{|S%־NDXpjMGGeSPXF'M 4f16XbEUTo$>Yk%}Vu/,zҳEJG'x( l/hmӲ4F(Kh%;zK"MgΘ''='.̽>hVЁSϱ' ѩ6+;DC-#6>8f!"y-W[4"MB;FX]Iۖ;E2༺Av\EHqzahnd[|/(FVly (jP7OZm.I ЁsBϹl/NUL7.Vފm(iBv||CEbKEJ= )BfeW\K?>PSxA|xIKXƩk(7RpJ UwѲ9U$~~M I"??vЗ/Dx6 Imd{U#s>TkHc{Klc̨qWq㊔m ( endstream endobj 327 0 obj << /Filter /FlateDecode /Length 4377 >> stream x\n}'ٷI/~؎ N|! IARZI>U33=%-J?9KuթS5|%Z_?~gj"VW'O$ϧ)xF$*WAmvuzsH>:Pt > 'OF"Fb[C7hA4PB6[btxWN SUގ}|A_/Bsmcu!4RRhAǠ+:?.CHqgy-4tjZ1ئhA1J?LpMFMOݍ4 oܾX ܉a 碒ͫ "xE>h6MhchNNFvٳ:gs>M]y[iH$*!THWv&R)Bi AQ٤w&u˗-CFj{HeI{G !`&L DD*_2!X|a+V {Br<7_sUn^WW}Q{V/: `";B7zA7-Xd7;'prcm1גv=/nda`Ћ0aЪqpGGn"eU}W_l*2Ϯ3W#2..f 89ZUTQ5Ë1 ^JbaVBY6\x65(]utp.jHZjOgiB l.cY`SDw0Վ-2{3W9s~XӦuF6׆ήl:&]!>`A`Բk- xjf>"Q(8Nk/%e UM$Dt9Cōޝ3G2aO7(*G-O3کwFz5s2JHTQqLvJ5)DGuo4Q1Y䒈QH|M/ a 9s&nYaRcL!o^)@:9<=:sit?0x7UP ۄoOCMlFwr`C-Az 5о,kF5 qh7^V_c^[K[36YU3M͠i 5/"JͻvU蒅ٔ.n٬ T`+ Vтt5ڙxQ [b* gC%Q?tɋx崗m,<8rVb}M: ˰ÉGm@VJ-{bYm aVcmL;c f0l,Na(=8$ԧ"%wIB uFLV2|f47ɶA*M{gwĻd'ԥrXL)`{D5sXa9UۜmM 7̋$T% ӴRˣsz[ΒR37=@|mf- ,oCg. A7 kr=Q,σ]Ai%{DRKм1H@D%6O͆p(CgܷC׸%WnT02!ot,p;i)(A-9#XT1ID10 g F>x;9Ófw~*92(f]EӼf~7)Rq1 8M5R^F X=؟\`!q{Ǟ35 =I*]菦)Nr4TSиH$fbhg7ٷ"7Y|ttۅn&d"`R% gF=O]?Ok.t-i\1IC#`1,GyEznracXqyK6.-EpopUM`Bf-46M"f~M lcEnj~[@א ' -›<܅[M:e(9C\Æ3vt_d>>cp9cԜ2x @p<P!'|}{d.~[5sxJj&KODH)VA.C-w^Bă%ŏ̟-bwy8X^ч\ބRDG_c/I)sQDvaX=0;T) Q.Ń :`\t!%qqMqS5P+@\Š S۽r' /2r97VVoʏFV{B*౤KKc.vi|3%#diJ[cnPK$~_dwD~o*w2."&r% (|qO}#<G3"TB22Qfb5RU 1W90,c7M0H^ܩhŝ#V)9aD/>0W'bڮ"^ѐ#lsZ]7c1U;ƽ -}7/ܵXxt98S7Tp= ;T0j)h| W*7gsa)zq,U'A,+F0J/cI*ed" ۬Ӽi#:"xgP Jogxrj%iJ8޻Y',l'M.P_>VnI EwV*ݤ0aykc)<8V\޷xX,]-r1 !6:GƂ|OC< |(`=`7ٌ?͘%ca3<ےcޡN1զ>UU%)Y4&?^)L8]Drodz}FK^c|KfNhѪbV)20טv/bX,ge8zpv+f0|-J[M[CTn@o&S0^%-%5(~hJ H9H/8 ]4t-@ &9[y&PwzcɇBbûSm~Gx$23==z^XmNb|&VBUOzXˁY6\qkC,~ i*V= 9&`,;V=L.#ܫ'%&yGw\EIaM I9> 6P1[M?`W/6J_) ]9%.R5)Gw:Z@ 7#!H9]%Updz$q_HZ 0:gvsTtqŅo; ovgfKw42h/82xBD4)Z3ºpk 8>(/n@1X{yxlSzZSx\Q1a Px`ZC$.]0G=sΟo/PDߑA5Q{M=62qͫ4 dSd Ǯମvkrt5/U{OY8OYO3<HCB,Րyʶ!g~KM  7CDZ9"fn]Z5gYb* G+Fj=Vls"7YiEn;W;Vsen~_}U>kg|el- zWSAǀEnkE.Ξ3;Cq<<@—{qLպ"+bu=җ(I J:^_cHq:ɏ71) в,w]vW%]&?s| 򙚎[Gi%iQo۴f9&=Cѵ,44ҟseHvՊ7Ry(gi$x99TTekW!Q"`Mm~MyJH1[>+TdˏLN,~=%HЎBYͬ#8L)& _װ0uQjc{a "KN |RD~3endstream endobj 328 0 obj << /Filter /FlateDecode /Length 5842 >> stream xOiV_ܞw.gOg~].nWt3ԄviJjuU+e]2nu~{l}z'kևʹvirɮ)jscwf}c/Nޭ_Ъ`BD&L03ޅ%ũ.6ְ6MMSEQj /_!R'㝕bg0fXsdG%kԪ'=mB+x+ڐI }{~ [W%BhS64)kK 8)h9_@a5@#gk6?W[cU?=[3Ӥ ڭ\|NeCCFfMe Rr1&<ë:|=|kbplFLjgTN[c.2i}e2 uޛ]\r7㕳@;ݵwgf\3 jV@٫3( _ܜ}(CXD 6< D" 4:|Sx_y=F͗ &`rs_:nj` (ERaᲶ DWN0Hu4KoucxUX+X0)F͔`gqqc Σm>vA_nGhEL2((_ȸP\~i |9ӋǮ~Qs9w1.7rӡh,\+>D$4c*/?yHulUI?Y7;\,leS ڠɆ%X ln@h=(9\4I`"maӞ mD@Fm`0!"\֩K@kTa,< n@30 Nj}xKzl2ybi)W ?N)pw$}a 6~Iگg23KRIx_gчH@Ûv ~I YlH'Gm[Y ez tiqd&m Piy&[)w*ºUj9N7#ؐ'-;Irp-؞=_ho5! Z@漱쌃 S|dsN9{f3rak !qgZ'a 1O^}9Ha"]ᆤ<k?s uCVp@$xpq"͗|kV9OtJazѲ)5BbvZ*2e\h&TW@%.r_,&[?e 2V;chp E(8Pa#^XtظG|w|'53: W.8㝫4ˡ܅;wJSrKbBm,S Kb b @ j}6c2ME& QDp>H^,xYABy/fP͗cK9d5 cDbOL %_+T$Q/uEG~6!W h'(M<[,GC̨g*;Mo0 l,z[b?pvH@6S\ާdjn?G u*AU5$}cqGf](GH?;go7[^ |IZ=Hc\t*6ikyQbݓ!E_7lRSgxHɵd^x2Q4D(qSIY\l@ CH!II&p&*~<`/yb$+,}51b8@gu|0KDF W{5pn%Ф5RjqQ陌hxY%D`@ŒT7V(zPX7׿|v!ܛ / ,me}Ab8XUEc}z=Do@(e0Dؘ\g 4~M wݟ)7.uEĮm:u?![unG!n:vu(: ua3s<#?P`ԶV1lɊ : FXNp)+^lŴt(d-4vqe4nC|[X|vKD5_mw7q0Ș=gB-A2FF^HI$ A:llMHA#y iYd0-@xd+hBם7?Ŭ^7"c2~Nd/p(Xy s+~;Q՜!fib"% 7e?sZ#Ԋ`!o|R" v BG^Jc-uPr.98Onbq\}Ӌ_r'q/'w ϖJܳ9gJ]J H2PSw Mkwr19&)Ô}Km}+f<$hb3A2$yWav<-ٟXцzXTj0^uD(=CXO-GܑjB;IƳe^DP56,ɸنՍ)yvKlqXP")&D&qO0)z.1}"3Ykw_|0$brN4;-w e5EQߝu-X(~9! 92uJa%Zl/"P8-(CnA?&@ x¿@U=)Ļ]RӞ\ mr>Is_x?aLXAup\/olrE" UJ(<N .o;Leɀ2#m )Km)r-,| uez?:ŎV3$0%gT p]$SKd[V- RIE3G9?~{-]UrI Yyp&=h`#_@ @{̛^c-nQe?rJա'b v:S~[u5ɠ wMME\fif]Ȓqѝ]$JQx}}U[K}@9 = U +1!gm?q{]Pʔ1o !v"h l"^\r`߀\ _l7x,R3T N T> =qϚtoN_רj_ Vkk&AS.MQm$撦=q[AP"q+gr E$$tG23mnV-%` 峸FOVi"0z?&\MgLw 9Bߴ޼O~oi`õ$ ŕYQNڎ '.ॱY,\wEH E^$Ҟ4I 2p@Ih0`Yٔs$'ީw\fv,`!c;iKŹjkh3y=y}dgVuC"qFl aXMs":K5CK}|XrS_d;28)$Zrj\C`s )xڎV S{>9Ƹ ttޕr^{6] i۸![K)FŖڪ%3Ƣ ߡT׈`Aey %M.mJrYa DԬ*ՎN0mfO뜃oݡ,-DM#O)[H %8v ?yy%L5k8̇{7VwRΜ&w < %)ɌGusd7NDp`N{N9T|g/RVb};[v,e076n%e8SZ϶?uUϭpuV."Ӷa<%0 ΃J޳Wo]Zv%ێ"͜V'Ͳ(X4R=$nPzZYa&c> stream x\͓'9pC**m^-B H %E rXkc{mL.ɿnif1yvƤ\,jџnt:0;lN?{ht9?(96Oηagg;k,~pxrMsmYǜS5[-l>ĦfAsFsZ8Qx7g56O͝V7 k= Jga\u'va 4W9ݶBY~A΁.SN6Bw 9OmT-74zA;a85мHyDmf q SYP9n-rIv1y`Jk Li+M+TgQ a)hn.˜R+ [fA5ǴH8Z3!'CO'{9Fu_5[&\[ 6%(ݜGɕ%RmZ.:&G"Ρ1Lk^0DzBI6̉{`f^%Rz~>zL Aą^N (y Jd+ RMJ@<> j$qse

    M>P\aid͍@#I&შHVW#̕ryjtVglǕԯʍ̶iѴv烠4U +TBDdɾm,;=c,aGt#y'q׊NBpޥEA%B1BɓRi(#=?2"ٚ B$Zk'ӛ$y'ꌂ޴)L=ڍ@h8'q0" %p Xy@€4%G,Y`(`7}rwAR< #QRU$wΞz9*e~l8f{yЧs/H)4Z 4>$DcB֨hJ ZC^LЛyҿP=ɏ -}gD gëDW6rAqK39Jnk|Ne2qsN긶ek;+KJfmHlZ=C[ͧ PL4zX1:HʹcS1yДcTM An,ى,}X  T70i1䂐b0-KkOD1c)4g&|u4(Y#=BĔT;S1q%> K.a BYr;.V%ff<$T. C/voBĔu37T ښ/ǝe3t=N};USh@0&3/|pp&: O[sA[S}]:|4 2<֤Hyr8CMd!['a4iO13 0Jx&1ԞB85 q NC/9u ȼ5D`MA´bl3* wd@I+BV'9x`";4e_x@d5OGʸl1g7J t\!akЁz=:I;VDB ڏ+DbFր$Y&供&4Ai!YDht;.]7qkH%aMw%3͙orU`"]h<$>`(R(&AedQT5ݰXGtf:0oY"|op*j,R mu1],?,"]-rmLh+XNPrPrĚrHV_yzd ;ҦTSdELa8l ;B8;ڋb D Ph2/sګ40 dp>7 .H&})}6eAd Exlb4`)GY漠~p!QhdLhISvTlv村(Y(ejRzrTOn;,{$NĤ-bDjョjjrcW|bQVgRۯdڞ?,W7Ba|R}@7USbU/{gڇ$bg ^oD%7+"qxR7fdɐ5JO&&I?C`h+n(VñG}5TPVqEЍNqǻˉeD Uxpaƻ\8lBk(2i Y^eyLiNUdr 3+h&_WKzkܧ޼<`OPF e:UvT_|9[]ı6CRQ#S4'itZ rB~(h눯l*7fLi]Nn#oJW+vzZVut͕)=E. ;.Huf0뒮f?n@EUb5zϝTM;ډ_ ugq]@]1E7TE;|Ld2?Y3`R˭%!,U*H>K`HA8C@_.UIEo[=LÊ֟Qz*ZkiB7L#Wפּdނ'ⲫRt4nt+sc\)tדc\na]>ܙf$wT>WJR$a%SXĝRwy<ddxLI%d/._(n%RXͷ_Ȳ o7G>M֐#3GsXZ NWx> UY9#))&HIY#YAlO`rz/ >(O K>cWSEvݡ~_>.TJ^ػ@Ub;|2iwqȸhT?#=Pq[RJ!v|-%oݠ{rLH;ᆋ)3DɆ' /v,> stream xX TTǶm}8^qP1TLQGGTd`3*Ј4y@43<\ D}z.WK_gbA-ꜳk}1H$i/)NɁf!2مG㏣P7dI`!hTw,6 ڼhggo3]` W~6;}ёm<86{IbހE^2 8#2t3Jbz7w1_a«;.\$'a↳lԠ#hE1 U$[»,xuF+PQwn?ʽ j]bWJM"mq| ͣF\wO_'='@a}2yO%~k_(6/w^F3"lR*pI+ސ}c|8Y\y }x kgt8DyߴIq ֡YP.%"Idh$ͣ+pdc q"N6Oz&+E{w,G0 ?~ wv+24{GgNb˦uОg7V*y8}xYMÖ.n+-X+8c!q6k`_8&+{erK|~.hݚlmj$a{Rq/d $iꔴz/ ȰEU!9AŽb{6 ɥcCZl$ tPX*):֗  zMy[2w>T6X'f@W KqNWJ~"E/q:ӌdPɵ\gJ|Nj_BʅnVϥ,Xl(t4%ʧFOL`uϠgPݟx&ku𩸅"{ؕx5goJ`g xV1|nҗq^fdpA!ђ-TqQ *:fWqѬ)#h4V*L1I 2gd4p+U)j-hSd(%<ˮ塚tRliY\7:'RRօ)7s`^q8UiM,My b )$aQQq?H:)ISkVmVP::\p>.<ҧXl愙>ZC>tI=-I?X6,UEUT5 J(fO{;K^$rZKk0(eP^ӡ*8"[pkdj8A!i+XIEq9xd^N}6[i)?DCLe-v?y}|=I.-3RAdtPo( RO$Y1szuɜNʇV^ *)KQShgᲖ_|ȢNEofqzX+k:Rj~"+ҳPR2AR+u7)W@ଵjDy&^^~laJJ Kw_o <8iWdH_7 Wl$1 ? _>^NSF9\#uh.q( Zm\<~ɀq<ҤhZVƓm_V8Ò-, Al61 ʚnlHF@69J:'usOaMt>U'POH|pHp96E7#4RA6P#~ʌEĆL}.(\XtDHU[R #ǼKNyj5p'灛&&IػOӦG K0bR7yqړ`] 9 g2uΘpxBqZV*ӪSӵ-,܀;/@* BkԷ)T-;Nn3Id4ylsqŧE1MMVmn2ӵ8᪢Lל~\bn\cȆ~C'K{+3H0 !LEІLƣtdHo͵o~-5Soet7]T)ߖD`V>;+Eo7P/,{r&Mr*7aO-4x 93 ^-kԓpUʏ?w9tF0VFj|W7w#c{+lJG ,PvREnal yBp#9*nO>hhUTVfRh#˅Pف>|C?޻<:ٌ| 6\pq w[ya+SXˉfIJaFZbJR[ښ2{p\ Dyo;Y'ɾ3}5`n0dRCoMlJ"`;hںYL0P9ZTYCJm *&.Z*(^րjކD*KSt+' %ۢtzd9FUFg+uKϴpsLBzP[ oy({=6RdSQPvů/ShԙY܃WVvpS*?HH0>&.3mt}Ƕ4H>!d"SMz&&|CF˜SPKoVs@* @.cׂ# {Uo q1w^Bs%*g -zZ &NM$Rcz(I ?1QZ\爫䧵QHOV9|Czp͡E ɇG<Ï(˧20| *?l-H ȏj %A8/~Ek".M\$SVǗsS wia08>ΓM AUD_R{H\%T u4? iCpW } 7T5U{FQΫ*[S(b9H&Roa3c2,b,qPB 9z/͜/MLAeŎ2n7Nb?77߅4w:;>B2K HɧiX65@DA᪐zي+ߜAeC 3~!FDײZogT.nevRt/ᵁ)ת)p w> stream xUmTWqHfDD3Z;Q,V*VAH!2$" $SP>C0FT(~SE`i=Qmkm=3g}繗$|$IJDoZ-D 3 /S7{yK?3@d @ɓPd"̂5ꌜ])|nDBkҸUKKϞyc ϧBɉ|ͫ8Ȣs24B B;ju~b'#`;%,G}쳠W.ݖb6ɶp͗@tJR,h|O=A,G EѢebydq;\ϮBNԕ0$'(ڎ;NF9㤓&%gH3)z~C~Z=5쉡FDS1 *?mf$cr=Hq .l L gw)s( =c~EA%j̖fGV^d2ƫn'yR4Z2![/RP0U-d-둎XSxϹ(t!CX\RVh䊵9D\K/B뿜H] {c}rr5Ndޛk(9)QoL ?ؙ<:1^ !Iӑq;]M>p[c[$Qm1,Fn+pp N=^LlRtrT\&zk3RXO {b9+zAka8L z4¿ n*? !~^+4`ywv_[;p<ɦ:HUx6|^}WUpnU)z!FZDŎsvYIdK~Oj*v&nV2Utĥ(G->s:x[G?q ж\bZ&蘰B8O?؃V> stream xu]HSaَv_"m;TiReQ4y1<ն1BTr{d3iRV*ǤYT FTQW}Pg7(/z~P R+ ņ?fCH)zv% 2$dI6 3%5f N{+mkl%-.++ճ%Cm9;8Q6v^x[EѵrBݼ#_zl=ķ3|[%8Esw+Gp5 M P8nZ< (@/LT#R:%6DX`^yN~3uz|;3geY ܆wߨSUʫ/#H}ғ}vx!IQ)JG#!W(Ak8 p,(5|E9h:2FpL7D` ^8{۵.^ޟS ]xr=C%`} ڇJH)Dfkl=5=بA޻.unLnz`.11*͔}@GG (qeU< 1iA&5:0F oþ'endstream endobj 333 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1751 >> stream xU PSW#<,3iIX:BY)RV. |` $/'߁*]QQSu?Juw[ng׺3:>vǝ܏ssI"> IRP!.vWLv\(T+`d˰O \[FK9"<9Z- AHAx!~Df1t%NNLch1~3{!BY:v8b SY[ ġ>PF0$(:_eȡW&[]'M9*u@wőz& 2NvuuN&`䪇07Fst"X,^H {NpzndS'߳/X9+=_* '8 HpϽlW.o8X q?-|z8RVͻ 't%~-kx ނQv),xЉ^^xw~!~M5 R`)0(<@ʗL@/ ;V,;nN>S_l9l%7FGxM@YyJ*ΤѤ$n> stream x] w7@4.m/p }©:|lGtoQ`jAX"aM'`vسp|Iy k t3Do _ 9&NLg(*cSP Tƺ Tk?%-Fp %u> stream xUSlSU~oGLꆾ122 dNa FVm6`k{-87p,QC4(JTԈ5םB|/;]ѧ0,˦W-Z5 w*O]? &CL`5Qp;3Q;ȸ L0{!s9\aF6s;u^!f0(OYPP,,l5F歳7ؼZP/p8^;m*y衖|['vNZ:)h*\^I[].=Rjhൻ*WX4Y{W{Ǡ}Smo[t8nFNgCCRin^&XfI;6 [1͙WR:]vİ *llecl/찞y92l>~%ePYVe51j=U'Iʉf~/ |W'nKWJˁqfY|aVW4$ 0}@^q#j@#&bC$5[sӠG$|g=0Kjκ9^y-<($;lW~kOsZv+}YPZ)-C'+C[X_{I~.1j|^ͤYxQÜܿQInns:#]Jqd,:B %Kg 8I uC® (E?L2~ƑxU,".C]˓owqRq;8+(P$d=쉒w} "ѱ+YW/kc7l޳m@p['R"Z}3JAV!QA&JZ,b(|bј$:Ü8h7hGn>ipɤ} 'yendstream endobj 336 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 6157 >> stream xXtW!4Je 5jzMcm\dUdɲenɲ$a! HHldO?rI2H=֌~#:w"x<^k6޼y$?#Am=*og`fFP#KaGS-G o;ԛź 탻q:4σzOe*췯|Zbh;tC}(ki؛Ҷ.g#W8}f yt敓SmA;lFnGQw <p.:*w{_% >81ni%˰; nNڸ+=7}ԧ| a2rRoqhOVg{PNlYSd8v>[E0vp m4͢koI׊аhˎ#C'ǻaF7Uk&ieŌܝxr1P?uoJ6 4)Hg>X>[_VՂ%(M[~sDhh؟ԕh${*#S1mdlO10Z5&xPSU%fCyq\é>B.PB %vPhʡrhFT`vpj3|:IW}G醒F~&PUs|lj58M5zu =\71sz]>fG`]W0j֕RH@ Syyer9`R?ݙ9 )lWdfhSO]rߛæ3Hً+33Ub ST<}Y18 4d^Զ|-H%c{m"=rZ13zc#u:sTʢFehC`EG6V5:Vڀ TKKQ;j\GpN&h*"3)|ɟ(/}HZ ξ,O]ق%@\`0V<$ 9Y"f#Z:N/߹o%Vj=Ӧzhj47:nD`z7"} #pOMKIƘn@ 34  ݑ L0?QV59LD3Чᧂ 7c֓CKBjP -T8S ۂ 2mr Ukwd*/UɣW\M;n3s9?)KxHGΖ0y6$ GwD xXCn>Ӱ,)b'\nv2vyH(} A5cJ2)fJ*'SAZS*a,͆ 6ȧ@^XTr^b8f>h)=?" shP '5ǕAXдM%4ut÷OyZ()QSqMEo-/nV-V`e.%4cАUsptHN]|HjL8:W1rϸTOKb(ZI 0Яa?5؂Ͼn]38x\b_ρ5%yl1Z3lEM@}ffȁVW\'ljw!MTmik[ =!/fzۋE*l 6<Z> ߣl ޣo Zo =%y˾S*XYG7ݫS,TEU07XSS}:@W[c^59z.`Wzg>7LzEə"q'Ah' !$߅74,l_$Ƞ*Ž T_sǸ۴ޤCb%V&{lm/{u̖ZQu6ۘVa~7Qk-\32MO)"F)@(MU+wP o>Lh+(grMrV!ّQP>: :kbcǵaއƟ3/t@Vz|:cza*{a]#,եl(#j<םoc|"@U9ERC< uKk" *UdΩ? ; By/ރ~r Z^&vukL<a/(!h"ZQ"a_۠~(,;< P0iLuv8|ק7NJ:x+ִͨ9[g{VV"hjjYLѪ 궲30 BqIB ^>,`&ˑ,Q rUd դ70,DidXJy兮kћg6ە¼f*+J̎( 'ñ| }2 'y(]֕$#U| u2G~ŝ>Ϋ6_a- G?pތ7@BVR'O6``2 ӕn ̶!=-ZCRrU xNw~~KtlR&>|=fGpU^vo$>O:P9΃km>כ[կBWDU<@uƸf`1GJjpf ʋ}*ɸvi:l\ IOl5Yۣbya1t+(J\yU(2DK׺1];KDݻ0]endstream endobj 337 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1270 >> stream xUkLSo)U:f{t3>LĐln NAdb+i  }YJ{۞˥BZ /s~؈A}X=me$'|DHj "r>ﴉUįO_/-t1&/Z_Vs bHjUԷ(k)bsbGNm9~ʉ<)UMʤTr#**jHؼwge577oTʪwl#kjT&xO!|$/\"DTY.o=A#H!!r9AФ0$%Ҧ`)T4u?oX\gx\Ŀt3/J]Wun#28x}MI4u 3+8eLvhT9JPDa-E%k-T U4uR m>:Q3hԫllMͤ=B[Zh5` \^[O%/ /HLgm @uPuX<8n0}VLotK'8K T[ͽm{,:u3c^Q*#y`htj"2 toɩ3pdY)k|NgÅg'|=-q^^f(ThsaT*6o;h[넵tAjİo}!:z)`mU嗙~%Wxxe@zӶv,%"Wbnf1UtS r[^O`¦b1h-h,cA)/O`}!vgbL36úH`zOJBZ//v1Ѯ3ʒ~Np9j^Hj{UE:ODQL #|кm;h $W֒#wQ.==N?3g>-x=B>A733 h_@W&+0msqqZ&q8],8Pa6 ;J7ڌvhuA*۬``†_&7=K;Ƙ蟝95,6UoӁ=2y@/t^ӗ6H';nFCCvU`!`C)m8 ObsWߣEwl1O.K]6iLkց zvhsN/M8,ra2uqwz:U[endstream endobj 338 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 499 >> stream xcd`ab`ddd v541U~H3a!3#k7s7ˊ B߃``fd/r/,L(QHT04Q020TpM-LNSM,HM,rr3SK*4l2JJ s4u3K2RSRSJsS nӃP9E A L@30ֽucź>c9lߵ~L^2FrR}_nrlsguϝ:W>mr-S#z|gx2%[euweռG&Ddlk j讪=W2Is'} }wn=eKӻnn ߡkEt9`koߢ9~>':yn)?zٻv/k񝍭Dɕ3{VY3vgW>> stream x]= wN I,KdhT1!CoMUux>g0^Fg&6ߣd>]-endstream endobj 340 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 490 >> stream x=kAg/غ;H %ЈTJ@Dħd{f$$v4&+Kb-.} Vw8;ܳ[eg :"G`8 L=6!T󕍤/r6GDz]M$nNkx*ؐӒRaE"洴2#D==mfLR1LN!S&9/{JCI$['5E/l uQ"5&*f0>؃`q86ϚZ__Rυ/sŝ6^rG,kE_XNRJʰ̚U۬Z\leeX|UhS4|jl7Z4ݱvj[tCo{7'#_f;ƹ`P~@ ӮCй`s}weC!_ $;endstream endobj 341 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2193 >> stream xV}PX! 2110ETDC )pp}w{}qȧȇZELLm6tj8әNGD۴dy}}yXpB3o F3A|`3@‚֯E +%2dYi\Z(QbbE;wIu˖ҼQrB".UpEtYTż+Q(Jwm\YY[\'$*$#r\)헕(D)b KB!eby a%Dy@|4RXc؇X&ۋ%`>l?vێ%c)Zx,ʾVP?<PKe\c#Lif/ #+}7Ы*dW' >Jj&-(c'FL sJK9=N/c_WLI>^x4a,> ((sT@&Zvmk~^(iP*Lu^vT0E68:ΎF"1DAyРndž凟p6h'̕߿ڃ."GgF=~$ 9AJ̒Ke3>#PW7Wk@sPMd/`~ `oN*ʠeuL$-?+P(CQ_xGFR;]~ʕZB/n>U.e_%%NɊO6jh'~{ȽSaTt)ɾ|M+1R K'hJQ  '}]v@< i2v{[d֞q!(X=NI;pf}i+Sg|ԄƄI WWkRՂW:ϵ ϾW|T@hsJwƻhq{3LD W;Ρy0ITNAҥ!:j5g oc [5&ƻ|SF-ɯ 2(:a|_yAGV#-@仂qo.#]6\["!  c%4p8{ i xHmF(? :DžFcG߾5g(Vokpt:3^P Oj'/ܹĿH:M-Gno.hjZ @ۀ7{rM2<> Kツ'"b-+n( DUHVxg™%sx0O邀tjR;cj }myD[hпu4nh$aQF?9=azPJ4" ]>#c"6ظzt-Ug@X,)is)D<6}:tbwrLj߹N,uGԣA};9{;zY ( $!*GKۄj〹˛uupN3)HD/j ԑeE(mA9}*Oݸ4i[og@ХS+q)~g2rK qrrGR^gBo_աsVGd&'P *n$< :M\dAj°Xe!\9wqǴۈtv#-%P`IaYfmz  `*`QmN"VN*LSp fuݞA k 5VhMpdx \˷Di8VJ˹62sHruk%:/~)ƭIMfmTu4K ZYx 3 cG :=66M>MqiVM%Ky0vֿؗL6ڿbu;ްU^WX [endstream endobj 342 0 obj << /Filter /FlateDecode /Length 4939 >> stream x\Ksɇ-sųvÎS$N9bU"]Cr%R/ק.Iɶ|04 <]/7{W.ϮlyxۋOgE-_r{ ^AwrwLnbJx]֬Wig9B[{g.Wk)%Kvc3{MŭGa,cAwJ{K[o!YcW qJ;t$YrάS8޹C&VtUl :~hsݽXi6 ̾ 2B{Axz& ~N6yXv^}] .@0."N!1-885 tvs uN 1Cݢ,\޻K@ڟs _Z)oy\:3}9_ܟc9G{@$_Z!{8i$P @fm܋WVGdz͹z{L?B ]wíQs\(:t40 #̀,J!٦'1ȳfR>ɘ6I>cu67d LgЯ߇vS47^Z QgA0{#~" v4SB֌+?ڬiD*e ;avFPKCP)X+Ol' +G>{n]`Cl @E6v/zj/t\؁ݡ$7OGh w8ǹyIGHMn^M9[jT&I\s~ʹ& 4c(nTp$Abd6t$L}M@0#hrƴ G 7Mh[Hj=u[M=D`K04]&^vkBuc8ȦaA@,>ޟV jgs{A)Cg3>( X 8tHm)`o ;Q=kB6'P%ld}?Pt X[u5 #"-/ߵmֶ;`0 i<(v !fl`+ўC@o-ÌI|9}kvXt*Nnt`v°,3ˈk, JŝUv<27߮SvtQ]!#*I' ej!:4Hke- ttZ%T!vR*ɑ)]QӰ+.e-zB٩e8gLJQjLգAJ%zDU&2MoUy"^y]hI*gbK/$)R:6`~6q*1GvjхbL\ NNa8N#/E6fiLɯ4yCv*ˑQ(U>E39:}C Jx Yks"xWÌ'J ս+a1@;:+h;TKL5Ӷy6Hሸ.&D$ۘ!m[RlbH줱^6g1#.[L"3hk,׹ͷA(taVX<}1 !$tVEMmX}wvJd:8>_J.7pPA$ SYщ2YfA%bNpT#UW0D ĊmByY=Q9nWn'Ry4'h `t⼌ۂSQ4Ԟi(߲90/`k.ssbvv:Mv6jqn^fLԦAoDmZ)d%p)Ƅ²DžCH2vh4i}us/we\nO48Qn^hMR#a*j%~$e/aOZ Ӄ.^+_ur9H|G- =  ?zShCNSrJu/\*z]:;*d?7eFnQ_5"{M]bM1(l#d {ٲ ŻVnd+Աr&υJb48IskWBo. J⢑hT,q]#UQ0RjV;σPro>6pHV:"L--Ɂ,⳧1@SprILtZc U^G  ~s{?B9{%@ؽ8Fvʤ/9-n;sj R}܇uX"M-*r EDMTrT>$vâ3>:HUBˬ =kWPnzy7OΔB@V(J ^M uTN6z.$sqC5D-f}>$հIr0$GӾ"ٍ.I ڶnv*G 85(.|ŧyrzUZxF/5TC@>/WHa]$AV,[{ UcnfSb¾rܐ X+|8K:BJ%`r̵Z 0?D0DH=eZA]aGJa!VO|aL0&Ç ~rciV4ω~tRf}: #Yn78H|.'ETcrqACɥXfʰ*}o %E-uAKrQoN^ߖ,)Џ_H._Λ_əPi',<=_)o0,J==y}Ӛ@ܵ$pxIv)u:$*QR9V)|ޤ]n0 A ᶨ?F4L^Z*o6<%3%0__DCB;S O8A )l?p;HWE2Mq.>`sPDNtO)»/Y r0ral8*3{C#[Dk/ss}nRB?͓(FL n r*77u&uai{*S(C,w%RTf( OC4Pȓ(c"r=yɐhzHZ3U!(2d qN繢>UU&( ED4@tKngw%ٌŔNrzbF%QOflha`.T<ޣ%)_e"KY':?u/Mz(r\x2#An˯LqS.+!QsGqtOr/&H(7wIIPI{w}R"$wB̿Pv?Ͱ)_B\?8endstream endobj 343 0 obj << /Filter /FlateDecode /Length 3609 >> stream x[Io#F.9>Lf`vj_8@<0>%;H82%QY}ޫ]YMYq>M|o+\ ozǯ_^bya!_OO`S0G|AeKo}]\/::P7J7vцV0 ( /qXhnBhuwXP WTWކqŏWkct;E讑V1.C讀RRh30hg0Nds(tw _%n4)Zk`M!(ru=!l4ݞi9ҺwBv_ǽ}u;e 碒C9;i Bw}vН0n۳h a3||2\*k"(.9IΘyJpDM:@ގ\2.7e mW y!n7ESO yVH6aۜp_Z^u!?,G#+ 4zۜy2vM!! +)eo ྐw򼐻B~Z7Z+v' Pw/Ђ*ٌ^ * 6w2%"34;ʨ#̀g[WYbԽRZ k+im э'|ݬ2}Z`݅;#TЪ\ڸ9Ǻ7 vglT0hjxɦ0 %$q> aˌ]3- }ga9^3 :0W+kA˴CA?zLZAYўHAHлAPnLe] ba(86qKZ;kP= pBrPDၵh'3ni)% bz_~gl¶9B^6?csV2}DMs|հ &VJ6_kML*ĀiC8o?ݭdMs/G L,@S}l^&v ̛bY0`Mԁ$u(GrH9~ċA2 ;V[Z?iEghzzBN`ٕJ.zpr֧gZK>cF}7vp a sZ xJ_6'̡{?;۳']XHǴm&z +3"R;XH!ΖSMpxyȂDY!w|5<rIT=rJSoPRyv|P]<-`ų/K\i /VҐz)$,s=JbLgHtUKLN{|dyn 0o}JL;O\ Q&@8R%PGИE)liioH 0D;A!7VR\ޮt@u=4,|LjQ; _k9)?g:xNׅT *50aq= g/ ~TAМ0S@>( au)e$ sOG %@ *T ޱ-u48jnr5@+Vjȧ&ie?@) `qF% E%M#>چZRub[$`F0^Z 1]| R=SZ\عb${~Θz+{7.] g4X%%fWZU·9*8ԧT/=poSxQuRaeƒ Z4,R}P;*V̺9DF1J$':m H-)B45%BT#9`G]E;,]җplΏAtʂ4c&9Z`tdG*~0U IU·:*-lUެ(0˓/'=B=_r* ,i$UzT 1\+>WPaS#Y&PshTCMLA uc t|Ԙpƨx,6vlhZTS*oRl=x)p>"# gk R﯀wfZ.莞}k SNGaNZ^D)5OAZSB*œB}EUrfpY0̚=Ekir}FJG.9=1N-kBѾ,,2i(8Tu_= )C! e$ Эp:[t2ڗ[_-@ ΖUn z2Foc`j +.d7Mij=U@]rݷ3",G=bT=9< /uCؽ>h4%Pv)icn>;:6ƞOPԊt azPMZc&WT|ĝ֍(|>GU :ϞwY p&RjA|yJhҹwܙGI?&=>%]̺U3T(dMC|r_&kAvxmGۄ:4hG`K),z͓Sq*B-̺Qq57$m>+%F02<9IQHp+kmj|A>題nXGaߐYYsly%c/|%9%?z~Hlt, 3 :o ~s_҉Ԝj_3W)endstream endobj 344 0 obj << /Filter /FlateDecode /Length 5120 >> stream x\YsǑ~G?_ܳi}x)m6#B0H̪@'v|`O<DN9Uo{(\u W덜[wtKد2F#VRy"n~wun}&i=θ%K  8#O$ee\9`&V G/FC t(ؽYom\AQVrEŤnףyF*8 @P +\Dդt6kD-t H!QȚqlҒ/I|tK %xu#(d7c:=~?Vif+U/{^7Fqra\rph?̶?]iHڍ nJ/nbop oFo*'q=dY<^V1lo6$7ϴ6: kNMB:GmFE?適c9Tvf>^?$ՄlKNs'd-솩_g-Bp3rq<. w̟~vd63ȸc4ﮒ"g\#Ce~,Gy3I;UTgb(4^gY䓔B˙sC_ӷD|P:hlWM2rHɨ~g'=4FYo?zg*?) ZIm"\OEG G\wRIwt=-z~6zDRj`N7uA)URB-ULC0g6E|ўG~IO{@P9CEّX=(PWbRc^Y>zA]]1KJsl1-`jӼOM)Q%0)Tp5&r 0 .mŝ.J 30a(+IdQE@q:D0{u6'}ÌS~܉`㱁2p]UR^6;m`dOrsGa\ɲp)ެYE9 A&@ a$IS6cyV,N8GV(PLʤfo#m9!cY68KÚeN1 2P{lNxO1Q?D&[wK難LR tjI3Aeĉ䂟:r^3f,/ xG#{3vV}5W%#l:he'acq39sŹ8B~F/1棐%|t͕bIH1 !!1yp\N߱!/3YuU=(x Ӊ;fXJ,7*T$竔R2Z__ tsyM͏K5?c˧Λz=阍3Й#ݗ D0x\7qvK@0q>2>-O^3bBáw_/S^9۱d.Lvp +A>TC۱߯9=*̹Ԛ'$#8~j^ٸi6B2Pcjx51j<1ψsRF{Rm0;wē iQTB@ejt:g~B[yz\+9AZщO'ۀ*4i}c&/&ЄO5op<z{t5`P.RO9X%'w|2_$F#u;@y!S`P{wkL*}풁_Y(M}vyb4"4mWԎ/VN (&$R`Հ)Gfc,0pjtOb$ s*Vc}>,X2ٺZ%vg]9[Dp1ڌ[iQo> 200-n<.Μ[ 5+C5ofX"MmC*o*FQ"_;)1ws*d^NCGW4+C#~J-$=k5fϓ3>bo6gBB#(9GnnjLG O`~.\nEwNySp3ƺf$ 0FMxQ0L&B fơ_jl,'zp[ !hUtU f/*7棙qέֳK"=z*@ןRe>ǗAS] .}L1H52gw`Y7㝍6,cI}Pm7w'#`nhj=(DvњA戱gLKC!tԮ._2HJyKΔY].0 b6D%k7 ODUDkVOl"֝Ft%EIӳ׭'}K1eT0HB(`bZ.S}Uy˛C 4 UppTkS-V4Z6+Td` Bq6\@۩NX㖛,-IԒ^/@k{1ۜHk@L|4h5<:`Rѵ5VHySM`"PA-hfנvf2Me*& cRf*"1ɫjuDv5\@+Wv F3h6$ftolu Q"QOۥ6sJ࿙]:W3#b>>uH':i{aUH'('E':/& i]Qx1QsɽL'$rސnGO2)n;!a\ ʨ]$'cnY#FYA '!^ p 4Nnly-Ӝxŝzd༤R t?Gt+;VqPM?יuhoSG݄uv3YvSTBo}Ͼ4Z ~2A@x ߯ć@KK\QDXF=OojP(?qY</or](p/R 5d>S3)zLGu[>uqRH%m%c;!-ջN+=i]3y.CtCs͙$wڃqJp$ 'y]onŖWg (*L^9nc=}Cmb+Q r! cVz`-N(BQn6jj|1i򞏳41G*$k"Pn㋤:r*6Ar>^+s@8V,9gA e 61u2cROFe򚭅 #|ZL:'dj|;-g`>NM\|Iqo\Dt܌~.-܂c\G&4!=H2!Sʌ߃iG$XYARyɁ To.C1sGp^EPh#!Wi cT77ʆ|[/e3MMȶrbvv-:xAt L/v)(n$ pDVR+V^%5ߢ(OZrM6UOaEo z؃a؂K?mR}/1Ⱦq9[rDh9$G^Ō1y5\5$/VѵZ!A*AO)XJd~.Z{$_Ұm-nq쭞a;F׎[RXUorϴPi_=f/]}vue/Pitj4b0~8e8xsuj|U{6nq1G(d1MEoMb]$%_h.^>(syȒendstream endobj 345 0 obj << /Filter /FlateDecode /Length 5007 >> stream x\Yo$~ׯԓyFb w$H(yq`t{ȫݵǧnlrb 4GΏUͱ߳7G|i8:H=F8=cQ\Oq1j{|hasP j >'G_ gE6aaЂtB 9'|>F<ߧ1z " ob w0:ZJ pt ںj ؠ`ʍF*=]N8\mZ1;J󗴡VNawFpi%5PA(kjo$1g؜J6>w l1D;oӂ6df1z{^CX Ϸ voop.]ΗtΘ8|ZGV{һ-lmiEiu{~uҼ(;tΐ6£=-X&xe?+]pmN]w7[!%V9J`g_L;evexF~E+oGkJ;fDP"Zٗ.FYiޔ_L*f]X9D>]v?;{1?24]QO[-aj#;p|򇣓)1l>4-2J%i?|k GUٟ,2XWvn&e%;Zg/^lejSyiykH;;z NMVD!X{3۫JӔf6m9sd[̼[ۙ&*DNN&9Y"19Y^ NVY{7\+ Эd%{[ɡQ$gʹUV4WGDdg);E}.H ¿&Q[1&  & 7n5 M[@ήd'Dwur+#:׮^χ3>\`i }qƺ3t0՞3x -1}~0y \;y_|mxN󂻚"k6`N N=ʩ_çٝ0ʄqmתh)q"#&ğrսg-Ca>~pVpjMSer3|f@[*ܿC4"1np28 qԞK`Z"UUf,B&<DEH8 U-T7OG!t/%Qvx/*j髩w1eaJ5nA OHeҬtONb`$׌lokk%B1|ON}bthE#i2JV;̧o﹬&!!J+;e.. 16k"Y1Bs%ERxxs)oLp݊tV4؉XsƖ]&*1 Dy0ˆ9~$M3gaE3$>tUCQf%HLsv4 L|/zbegPx*P`Ukh<ܿF_3gw x62G069(AsF~Ock4!IG }yC2#ڰ]->nH6p ̗=O(18f*<6c}W>|ۃvrqn3,ӭ/V(Ąy$4Fct"oЉi_("h[g7Y8.jj8m){ٕ5g8:n+5bmɅ*ב>;kcY FIAg (wm*~T=Qa.4XBs;4VH[iwLgL]]@?[I&ܝ6yZ`ߕPFBI LRǽrj][v!wlx8Be<Řgʝ}##׉KD?%'F@+ﶬ-$ȞǭHKoq},:"Q5Hi&ʑ'ۧb<`h7i 4LxHaPkGe 6#}bx!$wO:~Bq3}jD$2#Z ܛ9QjO&c.P< 왔f[a`rzuB. iizbH IK\t CNDx""^%EJצ)q&$FJ VY 7K@iQXUvmm<17&sהOn-{ @PpW]YGJ'cK l.82ā:ZzefӚ !6r9Ij\&聂~yt8`Zti0fbK4"ʿEgԁuw=r|Bڥk z Izwf`U%)oz=>;AoàrݚEGŚ[ڤܔP fv@6xr,ٔ?US2&*܇4G4hk4Jn4urG6[HʊTk|AmCxN߿˕Wt/TRd-[{ê4Pl BMa4Q?*a΋vy־Z7uٞfB;bcAf]T:Ѳݖq6!i d\J,,kl5OLf*7Pd{܈^ʀ~^6+BJ/]>2 ﻽eʋoGǫ7y?狰̐~%:/¶+wm/Y £i;c_Jsw_v?;;4C?m%%'+pC$KrXA?%e0U`K8ܖ&Wx F=|O}{h?YL"~qmuMW+͓nKya"cX^ccLƔ4J3XRY:rHŻH/tFxvwCL=ct[k>YO9.TfߖKH63} !> +s93CϚޏAIsm llux,P9N#Vҵ8V=\?wI-b)CL)Jfiɗ= ^ \C QrA69 #ZQ:Bcy\3=@l9P2JC0S5G>)v_)c}H e}Owb>҂3ၴĞ}WEYh E6Kuŕ h4t{QU4ХM<<͍dTK7уpCFDR?SX $!j7R]PVJ]QG+KʹW9 Їx PG22࿮%)y|r|V]=[Ҩ'iw&ewlqd4|2?} 5VOOȜש,bwMr WhBЄP],vYL 7vP)Oڧ^Liwrڪ6q炪9J7B@ڎMh{_1dM!}dDMB:>mL)z*\cU E@t5sUh0C͇63Z,3T5 jz Bz NMyD^xxڜqoJ҈?t+@&~|zA{F]Bi7amJuT5dBtQMJc "|z5T3b)2GTȒ!wU|=ً+vơ.rWu P}J![IMeMJJM {2 ^#im|[@r`j*Uah|U{VF"ر?.L{|;)yFJQ6ʠ6\zgcrHe@ꏋ)9gR.&4y*XA~Ԭ*|_EVU/%Q {kRrN&릁nNfbn˷XR,zg^x62f*jp#Ǯ8IKz^fʢ,ɱ]O?Gxͪg@C.ht컇آPb!0 S>ZX2n5LP*><# }FJ%eA_%^Z ~rfӟ|i#&6huM13`7m 3ߧ">L!9B4ܞھ8w)}H]j8df+endstream endobj 346 0 obj << /Filter /FlateDecode /Length 7138 >> stream x]Kq n];B,,QtȡnΐC4!w;32QU=K*t#/BMB_yc/o~_/]'C+4eœoy㔭x׻'dݝd3Yn59|vY%C}AZ/}r* h:mL8" r Ѫ{4Sqo`B3榮YE?[U 8yH1{?T6x'U_űQe3}~2նo cbٯhW 4N~OWZ{M )\MReC)SXvTN.˦צ1Oͨr_O~   yr`ɟ}鋃S } p6l=~5J\׫rӑV~BN(x| ;uH{xnOG~F3}k;YYȑ]0 8&gf KA ّuhhpWP+$b04 eM'h:n"ùPmEqlIK+FWy2Xݼ+fHA5`g !X LaDdfpC LkQ3T&^OF>;(۲0qx)XD wyE#hohhμ`OSǭQu1MeۮvnSH}_/m&nˀtM9FN*SB;!'qwwSlqixV3[z `$]WX!qGz&9CK߾ޝ^@G< L0:=#2I3c~#n8ik38fa}<8S4MN<ʆ ڍṗ̕L`]%BiwԐoeu'0 @YLVdUr'HdxIU?3ö):H"醫[.mj |Ynx?v6_7Ov6TJe#VF@嶕Ѫ=+aRXBb//Wjqۙd[Aץo!f^5w\}Ctĺ4 ŎNەF̌w3<%Nb}*?**n/+`۝Z{YςR5FMI0/o`k۷h"u$4+7~Vpb<&YURpUeEp}NޞGw:F8icNuG.a*l@B' iV"7M&G-\ˬ iiʮ!30,; -wH$WCv0^ٷ(5rXX J @)֮!D#>#RL; ,<0`=B~sN5vص)` W<HC""|k[ GTf{;^2_w6 zhnJ @pzI:5o\p+ـm2I(vc0.1YKV"ĺx&ؽA9ޚ4x{o"rجkV$ȟ)I1SEEU 7.(DS]h H{"T 79SgSw}dk /ǤWU@ Rm:AQZh#l<1nPknmAld8J${ "RwU:()JnY { ^vIggK| 5$W ^vZ<.A ,g(LnA@=~iG{>uG-sTQ#Psn9G /f( *cu F8kH,8"L))ms7Jd,QMb ?[g c\jErL߳eQQͳgo7C*Շ=+As@* sƋ# T[(dsXȜS2LQFs`P=D>T%$8)?zHE :cj/[kMzZesA}ƨ>?W!r^dH1F||5nJzXHi(-3KgJ=IpC39xtx+MB'BeT6_#[{O%ܪnU0wJyK>nnިB裿Ex:]6gȑڃN`<%-]"xߛSoT=K~כOzWlNYڨ7{Qoڃ#na;,~H}3^UdL?:^hjf>g5)_8b,&7Lܝ6r+\qD ,JN#t]q6V~SRXqYN2D\I=Ɇ(iAa Ri 8&i &s︗4q] ;oDK9lse-8 ܤLB*0șqk~ ɫn&eT[=DJ_b9B3m6d|**h~Hxtrg/. }E(J9d7pWKW\W7k#ROI#Ȭņ˯s~)ُv?ZL{ux')JRBYԩW@!}j:z`fa~e U:"U-FK] 0ndBQT sʆ*Pk=mѕ]@HbWlDcL!K/[zsBwYZqla0fue&ѝr Rf.ٌ/݈' 0q |< 7+@pXeůewWP_ a_,X}|5 I, ˆ"JvRxhQ8aWL(*?׀/z@ȽcdB6+Ji\07]Q>u&?p)9!6݌_TSW8[ pÞdN`[YbEg 02<1{j3&k&3WI|VkW+9(%Xbԣ w$`Ί7]>Ņ Kc)pb6Ci٘ox^oQ.rxXHjYՑ(7`T.[ov=-㡥BTn?=6 (WKQAuN3(ю"#!u L<_jD"`[(Jb=/E3VEY5VVbIZQ6<Yy:*,"pu}* Y'V'([2|@C6V2 Ii%Tx?^›' 9 GEoY:9>2^_dy*$yR=hCQ2fFcsdYj/*/mlB66BE2s bwN専"´! k6#2n)WǺ ;BoJĠ+քA^rD~UaNsƿEF5?Db&O 8հGW -|ۛЛ_6YIo7վ,OG]o;jMǹ\Ŵ:oS!q$4D3zxStȰ&vptӰO='INj`rӦEz|^/TTjZ׹IfXSb& `\c80ȧ O@ + ctCuwU8VA m1Wk8ybUKg y{;~xi M.5d$5}{$(v"v87B\@2xuCy ݈ |0 m6\Z >^n-`Ky'O0_tQNWtFJG/y ?"ku_۬umzyQnנ5w^36x<0`]Ë\ƙs=XXmD$=z"b@*q5ekR-p89=Y ߰ ̓~:)Woj/Nߣ3j62pΎUU syw|6]CbSu&W/>3%{[7R*N`Ã-/aːT?c`'f68S_ГHuYNgȉϪݏ//ѳ e9­"tVGEX\8"J]qU7ޓ 嘺¡.0/_Beo}9}Y(QMʷKU2g/\eLփNV*e4|oVeKK!(),8_{,Y Z^6=>up@lh(c_uBKJ# G?6tJ#ڢKI}BD*4{q8^g 2FJ{|\XX}ɏI߱Gdz#3ǘY0@{yeś% Q8bM2C'Lng^W ^kbUׇv xxX2_[gdv o }ط>vQ3TelEڰX(`QUqIdK:wCζ|RO劗ٟھ5?Hj$P+PԿf"U 8843=sMe!<{|هKFc5-{E# 'i>f%N/:'oud77Xyr<|y'*)F/ͻk/%wqȱ?f-zvd#rs]Vendstream endobj 347 0 obj << /Filter /FlateDecode /Length 3674 >> stream x[[o~?Tȓ0_$@4٢a]xmo[A{?RHɔ4- w.<$V:_]*8~8Xu|hʲ(CPբfzy|:3NpYO+JsʺzD7P ߀ԔSV_9̏_49Fu>^_qk<͝V7,֧pV(|.GY9&qQ/;oki\}\ ^' s̴SsMuRd}tL3O mz/`#!3ӎ]#sij Ch0:Uo B3T櫝3w| y,0Q+"x%%us*iRT'4ȅcza!an+΄!LcgnqD E@k??Z4x=Opj B! mXkU8ޜVV_.1,t-P,,Sr ^\:[|]Wqо$g3^¸hU\;1m2-訞 1 Mè9 &DQRʫD.Xx9A~Ή0>l$h &^R+ rfs&a~Xhi!3 ډ"3hV1cX_:'ĸ=2w%&q\_WZ[NZiWMKhU׹E3 zP_^.a{_>f޻]LU%]]+i0t6`wG^Ȥx ;[^-/ZK9'2=$E9-0彬Bo$ȟy?j*l8%K$Ad|.#3e$#@kr|1=v[f5b|\.SSYl65 vLDQJ  NU) 4zUDbI:]8~8Ž˖11v#a;>v8ܷ9"A7"͛B% _٪Y0_=$Ni'k =TC7`0+cJv4]9a-D#3̓=;l({x(I'%`3F2-$ ͺմFXP8!Z^!'/ QTm~xL#A;0:(Ve!(,8$#pᲿ6i7͡"{ReS TK#0RT`gFx_W#$>;=zw8c`s&î5Z_Wp&p_֊p_\լxs!rنJnM`̈́TSq [_6W`A+>ڏeNOwJa%ݭ];r<&$exqq+u-Y@Xx lR;لVC׉/P'D^$rȟy77Ǜb߳Ⱃ Sv:$pg)yȿ;'414 aM 2uD%-7ߌ"_تOR*<W.u8-JcWE'ǜ(#|*$Fbsum"E^wElY7Ef<*ZS,`2ԙEGYD&627UZrUY/ e0bԱQ aX,4vc!:F}9ߡP֔g⫝_ռkh,RMk﮵"z T#<@Qr|2ϒ<͌6*!dX4>6ՑN'n%qv'IBg gT><z<&$gs1|$sܩinw!7>6e˥cЯIƼZNz |fQBʗҧ*cK޾Tr7jY7mZ.նl fTQ$n0 X&- iqS{,MA?̗6ꋀkM"歬[VyI!>}a<:f]IFmuUsVz#6ݲEPC!|u!@Bh%h}[b%kMuY!]f%?7UPe^ E/*|A?iUJl ܩGc/YS6C'!HDPWZD[ 9 SeY! =!喵i`*%=4ƚƨCGL2"r-QI2ʯHY}< ] MɾEuxEot"mS9g(1p4"2XՆ^3Sσӆ[VY*<6us'p,(7.e^~zlǞ®Gpg]Np+lV%F> mك?*G> o蝅] I!~#~,<7(/-] > 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 349 0 obj << /Filter /FlateDecode /Length 160 >> stream x]O10 @b C 8QC_Ct;,: ":ր#MEY' ߔ/MWBi )(HEѵtXIG`4.qJM5☛&e=O) p|Sendstream endobj 350 0 obj << /Filter /FlateDecode /Length 7167 >> stream x][\q~'#~l̝wЃİ P쵑 rIYqK>}f4zP먧ui&' gO'?s<5xu6i>qW5_/6 ڼz8ϵrmx^D_M1®6kͰ8ۗ?_ |qx1]~"i^: OYD_AwH~w~ok7~x/b⟇+y+ζnq8xbvb^ab< &G9؇hC!lj˸{n$%=J1#!,~=2˃]PO &q %#6g6~Ʋz}jzW/(vSm~5l[֯&[g~Q ei)>4x-,ͧņ Bk'lh.G8\( &>6Ҥ2`xg{i?;@YMA[\B 0`*n v IAh^yi,y?d\J8aI`!F4+qT|uʽ\Z;[1谂gn&.r}/)-FwS2 w#:BrqkR1#XojsWksNI-\׳ 缙7SluQqcC4lSQ9E.pSi)4lzrFTGz׈“&Z$Y&VCM[@:|/iÏNyEoͯSdFkv[BQ;d5} QK$ A |UY1߸+ qF]{B69xcrodsUk*trFI˻Rm)F2nV\^:W+;&/~ĖB 3j'ly*D.,092oޯ15YŠ0D"P;%O9{"Gs:yyS5XQbJh]uy\'{fa.%Vp]NL1LNk*rk![$X?mU ,V!i%vDmK.* ƼųU]eVVQun *WjϷskBՉ3,?[T@ZU 4%p:4pdM΋^)'xͺ&RnvX\YB3Ya^9 HoqVpKz"B~=GGvo+FЄiJPէ$8kE$ 1orKcs.e&tGNP}'\kΧ's.:\Twf |pdٯ!I&nӫH}.0ɯٽ-l&`("U|ӠlfleUa_D"Agu+4O;cTWGQiyy,:|R+y;I_XeIm9uؓ>Op=I>;3pc)` ߂ 5n-aWrgu% PPlGcݾBBFү,Mn*`B)+pMw*FQ+'[b%:On ~렝"̅did;V6w70=t&0%iHUۛN1vnIY!wJEZ#L¥oVONӊGIHй9ٲ0F'4$VdP, ;̩5SɪBB3 '_^{!@pUZѱd]z_bĩG9=4`znJ"jpu.)R4I gPhp~'A=,Jm85M_~/ -yB@<9ZK\%E2'ƚ!Lơ$o88T9?/ͻ$^ysm֕$+k&S { gGAR8)O"0t&UTò6FΤ|Wچó# wlLY"ow-wku#<%DzE`Ay1;c*LTqNa7+CBpC1fdJ= *3kЭCJ}< CDWA5,UCb9c)O!/B [0!:s~ BuFaIAHfi9kc6J  $4iNL)̙31 P"1RC-hO،@Wg5n=:&P@S0)O w[!SpqW%Ov9hL[j _Kt?)Ua1צ960͏b'hLΕ.8%V|DXpK* RI+E[jܤ1bL_E%L*2P`Xup-R#phN+cky1s U.ɞ{](eGvJ@DZK`|?Fb+@pVz`k.tf|8}O.Nab\@Y /jCJe?Q6UV"wc%QeMeY yXIY̨qQS8@!IJwrJyؚco^ķròA0YjnH 91k# | Ң:\9 >XM~I@gy 2#+On8R!'`$+]!,P}}S=Dwձ@L3S@s~ t?3F| В>'q,MTH:L'\x1\8e +`LN?J2h@?D*Y2  I OsX=~C6@@;vhh*;# [Mˢ٬mIi󉎑a~l+懒G_}ɃC4#"=u13>nc_V*w_@ZNL™`2oW E{}ùFȮ&x?(\r Uる<Rǂu $U};?q6xڀi?~@D"W =;TD+ҸS3YM.ї6(~ I7\&yqHD `.'~;5e>]Mo 4<%`?~Ńlǘڤ ;+bu8[OWiȥc2Cr*>˛E oEsF}W%)v VI$ȧfR師vJtE}oOfTPc 0a/?IE ü9I9j͏fq@WJ dLmP]:b)L]ƏDuEK}#gV Ht_1w{ðCTSp떏jôR@k_; 'j"n^Xr'WIjz&נ<5 xUy\Vﶩ >VzD``vSNf`/p.Taj5h?GNj.3wa [jo\;Y 5&6 ֲp*Q}/K-b/CtPغlͨ6B(ᄊO"3~MN [;dnKm_D[.Jam`(XDzW׵)aWp*r4WDy#kiZ7 .gĦŻⱐF2hK#5ejAv[yQNW c*H\VZ&EqYit| ƠۗfDj8( 8kX{ :H]t\S gÜj;\1jTc.@) "me%ݮ <87)i6eA-!K Т'v8 GBE1:K!gQp!1;uYEg\Ul鬒p"F_%WfW o?}<. `ZT\aKӚatdd .)p6lq446iCh6ݓ t&P*TxFȩ+/OPs/dP~,C3B<)Hzj*5h0Vc,6/-WE~9%RgA$yc'spjӒ88eÿ5F4bW@UX{v玶Ϟ ӽ:{)릺5ۮwqẨ[A?צxYV*9yaJ_p\a({K>@S8AӉ|Nv:?U\4rulqlRl1ij10QVhⷮ_h<8.Q@Q^v"`g#Dl =HN)BDFK/ bgeb7>> ʞwE2- |x erjJ`")%- un}9W 8$x/dC /Hq6Ƞk8+=te5z/4~e/tr2ubM2qӛ>e[& SbQ0ᡒ =#-'m=ё)+}w@j9z$6|endstream endobj 351 0 obj << /Filter /FlateDecode /Length 5419 >> stream x\sqʗ: \bWʩKV\Y%呔NJ*Ӎ`:ɺƫn(N'?9;z8NN?WgCLh Sg/N]q*T 2g7'g/G?i57(A 4i2Ax2 5nJ)K c1ɚ%4pyd4iݑSrt  &'ⵔ0v&c%,{BIY ^f5NAi{/fx1&viF؃Tq6NB x0uA }yvB[.#qCC(a?")x*´he1ٮ@g? P^ٿXChG.N6gxh8*3zkcWM 1Rvb-:vfxg ÎsI{8|:eTOV;?zj;`ow]f+h[Hlg" -7H*'i'9//f|,43MDj 7^A`g!r}Vg]m}W7ƪ`AH]O*`Z%0@(gI%I9a& Dh$\Ab+;RcQ0hJET(WeOgItWcԃ!XlBBk& 8p@ZȘ^4I`,'1,6+O  ZGgxVI gᤛùl oQ)JP=Gh}#×W;g7oy>-2cstb3/{Zc1>km u75Q:pBmB!JA L0q-=5 g# kd$?(v V^2I0,s2[MȫAᘩyjP謰(μ@h(>P{mG9_&tas\ty切 NIK}||ݗm!:fc^v&#lMLoCuWݵd':T ,^JPY_VZ#R{H<{z xk^ۑ2 [{2R{HkfN4<؃b8(WOa!jxss.n&IyZѰ`Q%}aV3{t/2s _1 8u '1o8{Ǻ{z r# Yqrcodqfr@ Tl~5 G\i-89XMb&phHt#3zOE;.EoˈWM D {8 pMpV[ ñĵ.sz]v C͂=@ usM٘|{n2ӣgͧm]QϬeۄF4KߥS[\%GGP @hLS *bY;%YN`KD{üIТjIGU$ya BeEk? J򿉧r,]i^Ҽlr s0Hދ*#a#ߌݿ%hNZGjm}AמPԖE38Z<N . o+h5a*|@GG3#$$kƩTG, vw>$\Vq]XJord|%>mˈv,>㠲ORL"8[b =Tm90:I.1>v^pbgNу )Ipʵy]0C 7t6REjzI0$ůC#tE0zBhzЮDaJm2*rZ1m]}a,ftL|{:Z=5ɞ>ӧaE4s؅u90:/5%ɶױ퍄`Ǽ4Ɏ\>/7mqGexxbw5ݬsƷgY"ϳ[zhX?G mxmێJm7md]E4}TwH-֠UJ{$TMb?P銦F,\6 Ґ*ƶ4o6-q)˧Js_$.ۢse'ϕ |y^nr"XVцu%+>; ~1"H' T (|:iGR`cǯ =d/J:7ZH*rk 4:¹.T:QUNo0IgX)]* BB: 2nAmA5Cf>3ȇ2֟BwlH w@Nћ<\*a Cџ.:蠧*A2C>A'Z9L* ౫eK{qVh\?K*V ۗ\#m$ߔC .Qk* ܥ01$͠mU/<6-Efbk#&H񬚜pgU^3**e"U*DnR S,豭K:DG' a8(a7Uje:;ru ڹwѣX*A|浌Mټh;04CiNWN~tC!ҩc5?Iwph,jXߛdI`\'_&p7mŽ=ޔ28L asUUCŰx`n7Cul%s,^My;.2܄h ]yɼzc Leӽ^Zh`}>@=,W ̘A(0/F.W5v٬c Bzr/q;tG$`G`~BuBC²Rh%ݪ6 ;VLX8ŪnkBڰ;U1q-8iNʙ@ekf? 䡢)U^/7/of-!}3ok}ƦO[tx2OE^Ⱦ¢MF_g2Oie!PU{){`քO|IKy̺Syp&'*B^ŬB, [Vi.Ee|fӤY&၄~$sDk"izOGo<>Tkdc(6HӇޔ'\lY_q`Tv;@? IV8ViiVEjˡYF8pʋIzE^|(Z~Ӗ/"6 Vr8Ze 6vv:4 ,2}3oGBϴAͣaSM lФiXd/.`ʎ04Ylמ=Vz,d; n㳽8~MuIwќfq 3 7_UbC`=Raw+@Ft{({_k -W[hr+[[n|-u7z 28~ hy TG"֭>ɓbtnS(U&Y'ae,xCQ!th&_p\OV_nLCLSsj`W >P$wtM#@vjv{],/jO:?74Qu}_ʼ;WVO-} & SWWGP%zmGG51KQ-S~QijB7w_J`HBFi5Bh[ݛj~/uiߋصq6܇_D=e zߞ?wendstream endobj 352 0 obj << /Filter /FlateDecode /Length 5705 >> stream x\[sdq~@^3yLjq֖IT$UYrW"9Wtqΐ"WJENA!.|}]X_?ѸѸ8HĿNV:bğ0:~yDߊPa03nʬ^7^~j݌ ZlA z~}ΡmF7[Ky}ĨGk֯S0G;K9 Ů&:.k)a5&8y.x?5Oe;αk|Hma6AֻE ]Yi G)m\ǿ:WƮ/れ/F l+B om ^j`ڴ2BԌ*ُBYʇ>0?p xh6_}q|#<]zѼX9)Ɐ K"2 h"ҎvGc{djo|;^ IݩpaiCqtβIL)@'~LwHWYt;80dP`*#] t-,O=CQo0v9=Dޭo)#O )}5 qHXp֧EN(agyL`Q@!AO\~\O1&u:kuTt򕼞u=Z"}qa/KiJ5,z%rVH9d+@ Q3Ȣ9*(ea;AX:GhE؂NAaҜyw"icdc./QTNDJCiu)S pf&⃰blDqbdẉ /D#PD7WEtr"D*0ZݳTMwDYV(Hz@)J6VDD>)9a?Z[ATW05]i^Ed/d Ǵ9֟ƌZ!mD VM=EO=tgńIcfY "m{R`+~'PdrRh>`(FNkh"L06F SЗ-ڇUF.7nBnVjɁfHP!} @i@+8Њ1c:k:5](߿H2h6"@WЭb/iB ;W]Vj+}/k""6Bd%ApLJ`MZ|m40?q+जl[f/k\3g,yǛXvw`H}ߎnY:GGvۇ e|2 'lDta,It;d`k] ﮋ8?tBs?Mjut;HT.+c$؆fTS#i`Є"O+̹GkI^:h(qFX{**tJ2@M` if%gwCTBQϪl9ś.iH$-(azgRiY‡3"1%Tť=)8zm7HFJ.|Ejg[챠\ nIAWzA*$<=|: -LĨ!餻]{\ \x_TxEЏ=0^& Ʀ`p/g} @:(*;a0_3hlfg> E] zt=L hp5  ^% ^Exq]r&v 0ӊu?.y5& E ;C_8fd h<@3iUmѓz m<ZfȎ*/y bfLzWDx t_ \,=QItq5t/'Pd <#n]EWoN3GŌi,lIĕHg(FObKaɝ}{I#@;+A`e8{1qdjbe!V+A|W'ver@z>U%f ` D -@+gW}~ւ#= چ2kYӼ pL_4u4CMRGE4r:$pK^T c4,4X`eY$AWaqhod6F!sy{7!фb X~rQ[‹M$$PDtW;7-KoE^Wj@xF8J#ΣȈzE"#qSɀbrّft{ giA# yK1:dX)k `U3y!ЂUi+bfO[؝@3vPA2-!,aZp~FM#XʶԕTf݀m ;Βb]IWyZLCӮJΦ ^Mr 6Ј/dwSK)So!kc=)HFc(Fs,L >i!M!9s <;) ҆a!89I6¹RYulFi;s'+ZxqLT~%`ҍQHcXUŰy>rET/Ul-T8PѦhu tSyѯzRLQ_$6Sl7*{:S}Gb&S 'wnrIGs=AI*B:1/#YaU~p3*n37tJ-j\:*@`.! e&fۧb/T mDVW i/dܝ-Tj+Z@*IyZƋ+gV 4iCyܕei-nZOi{>WZ9}W= &dk@ 6ui|]{Y7Vaʌ??-8eg;Yi?=D ?\_w?_1[)t 6SP8|bf`~՝kX[w^kL6Fa6f名Y^;B"~_U5X 侁%6^0_ 8֥2]l 9BN7tA+}ܜWB:,2Q@jNY. &OFM]GA| )nw0n͑h q4-xne!0AÈCa_veyWu;#(1mtn'|豮Cݕ(O1JoK1wc%Cb:<Vʡu#|G{R ǰtǰ0R| m؅za_/6Tpjf_[Mɖs˗[On=^,VÇ{w]rw<+I3 \3_ PkbYLVN0`*!CX'˹rci!ɐtS6;"3Pe7"; &5v 9pSK@'% >,ǀ.OHQ$!sgxD70-0_)?I4ߖeyi.ͻݾ'tKOC!ApV+^_^z{cLYۤ OJ|[4JMivtg{ֻDjH:Z` 1K̿]gU/3>6 o1[/2~q~\up>]`-KAOUO*7F^*}:gQHéNSj7R_^cD0gBck+a}I 2XjhzAՏ^CKeD15b>Kb3ƿO)Jn侏]@p 3*mLidq1}ϙzIhXB+:d=^|β槲 9K,4˘ aEUYaK7O,nzQj@S߯LkҍwY$ꀯ{8v%U.ь@^?lXCu:Wau5W'p,V5K _`CXh](QfGf-pӿ <.LX,Fc4Fv0Q0u7 ;Ų(ZD=+@SZg% M)JXz K]e=-ؠ0+NpG5 )*HtW8U7ۧlv:X3n/LH0g,(jΏS4U16mċ)ev=nW_m1!, _h_IXF,% aX@;O x/ -uU =Qs",B7& QxG? nADr9ht,f"O`:bjhϞpbO0҅ rW+/MJb R6"x }]v &/?S]bQX~+so*[ŸH8PGT8/{_W\@> stream x\[sGYGV೙Ņ B*$(HBXw,(8 ݙ=:G*׳==^ 3}pݓowdᯃC IE;U䮷_t4> ;_v{ ыmjN(!Klbt'P'ꕷE1'"t(CphQН.tG@ǠkA ơ\o^Q|VU\hS6v'{ UU}Pҏ]+'\FMwi1VAv)}f8j 碒]e BA!nu;1t{vFg!e:gaWҚ˛s6qY$z!F0$ʇU\V}loae}zWŋ*UgU<7l*Wq5't/xVV*Vq.vq̾vvb{{po֋ d0C@#8⪊[ - XD߾nY_oS5-h{Qs'z"Tf_{MKm*~ʊd/svBů8SVjo/{6-VawdH8!;EWm)Ibht8Lnk_bM4bPA. ywoP=4Q$ah<9NO5Nn_s!H/ ء&?;Z0QDGFR[PdW em"-"0m-쉆*ji-_ָ_1LȇoG袞gXv! K:#Ǒ@+H0BDw`fp'l!bPFe=Y-{y[Bq8AEpژnQIUZK}^ue,1^X@Wc=Tݲ:,ay0 PB+: Z_#ZJn7<)}bO"2Îg^v$e!d a K)[N'+oz5lh*h\bG ΀$>4^Uu)y a&64-@S_:DF ;峉ؼҼvX>I>Rtc'b#o qhtwlɹ`{ t~-hb85f?8xeei+pR-pˎ3kTk'fկ$B^ 1YM[s8X/$.ƒfh_3.HMM6%#2Q Өh`'ːKzA#3B{հ56f D K-%NɕF*'XpuM@*B5 | ;5Ȩ x!xkۈM+| OscS_VE\UWV>,dq*Ƣ %HU7=E쨆HKAMn_/.US:U86-] ,)OYKw,;ҢtN3ibH6v8,=](HvOi)7܋L$ۚ4F [f_f怂#*K,TS#aey*c9l7G%\O"8އ$}io8&$<;Ә N$4dG{ZҚ -P3w?ҙ -Ye"?9&o;B*, *-tDd>֠XX t!V.Y{ ,c)M ͑dԧ|iLG6"Wr XiDPv2bll1%&c@.̣P \Nn ޵jcMeEMXu>:)`c԰7M|.T9^ŠiP(EnxSTGRk916^isMgrJn V/cM! ,aև9NJG5'kYiJ r$v[*`x X/FEΠfjMMN>"<|Bh4G+]ZH3?ioW{M<12qE8mL&l_ }C=?*dDiM8W&@l(jgmx!LRUG~ar uK9H =WSOg>R?5hh&q@u;pvD;u#kCkZZV9Mpw y 6kC(#15M{tQ=JOABn@g:G c5,J3}ڟkh2Jaii~16gɧUVz~YOXg~jbޙa h U_ )Xx^ M,$*X·%%D㵯_NkB8c@ڒ& $]mP|'Agv1]ʇ>OgCܗQWhd51n邑Y*1ts18Agk-k<;ލ@&7:#)/=X9,'n(b}9YA xVh_<8GSظгS?:bh8? ۾ cH$[V<32q<; m_V}%5ke?&߮n{ΊxF\m_=,X;a{A8\ ?J= 9 ϧtRS|BL9 wLnk3\>4u]O,jeڛrx]Ƞ<-4m4&Ҭ IWNB3tpSҋWA屑KQ[%}fz9= Y&t$u%"kSkWrRux %3|s,s}s}%Ji__Tb*~SEBP5*n3 \#gdÕmS=Ah~C48`.4⢯K>6x&?lg7ܡĂT%jHX3pްJL:񗶆1$!I8$;-")sŎbRZںk=zMSFi)!}?RS:ʥ\fe~endstream endobj 354 0 obj << /Filter /FlateDecode /Length 3910 >> stream x[Yo$~W2SO}Mbvl :kvmI+ɛȿ>UEvH7R=lXW7+˕ӫij{{$Vۣ7G~]NV8R>(WG]:QыxTf-z]oDotwXEsalcpVw;#v/ah> z-B T =N1z:"$`oMRxO_E5| CQDm`2}K۽][KtCfgĕS6 詑߈z#"tƠ. =?]+;}˖J[h麿j"㫅JfRAH b-/SP~hc4Q'[+#WmN{A OA{oݧ Oʰ/ïʐ-vW /Z!cC^V^k ,W oJsܓ1{UF+/C[!mSqh)CYOYm#W`4LÇ?yott!?;: cLnͧexV}υs9ٴ2|U)29e(͜*g3.IHalj-á /{.nL2͡-g;F'Pxؼ-XU&@)|>f _O&ogf; M#6-m US(utSdlb<8mL { rDk-ͶDŇ0,c`Fq6Uq{^&fNCVC*<%sd/Z`wst]xdk:>F€l/ u[<|KFr?ޡ& UOQ[VV $>vfiX-Ft1(`LfdMrEY|(Q"47ဇSf\gԡb|j")Us4,fAZO0k:""nG/%=KK[Л<#@#^B@q1D$#b0؎T{`HC> Nr i9 tAlzlSF]bwoGt.h];DvY?G 1Ov| 3g\촐T =0lP2Wd(6֤J& f yLJ#*, 1MsAW&S\ʐqmV6T@s~r}^R,EGz]>ѹ_ߞRZhO`i>_5c {z_*Vn Y6R@ܔ![,'ҏhڤ|$SG:$gM&GwEDUXSe[p+my>ᧅ"ÖAT B%v@$v0l)_ ,($ 0jB2tbQ! vʘKܤ&i'!; ؤ,.@Ah 2q@#ZN5S%[N*Y|v4.ó愛И0.^hp@?V耕5m3r?V+^6'6Cf=YtozS@O2y2DE3T6<ս Չ*~RN Ym{ 4 @2ZY&g<9x&y?L=I{ ZkL p G|o4 _Vb!ڍ RM`bV~n7ƾƐd~$R"TP$ta_ ci-k7_2d d)k 6͹}s 04V?~6o"rr&?Y3rs%qeh:vk+>$ᐜ\S9vcsӶfnIooQ/VO[kE-ݒOiuZFjʲE愥SGWfCvL|+{El>m"{ƶkB"\aGwF唒8M2T/iHꔧam S[%|ӹܞ{HtyLP{p@ >ʥ};Us\,޿bд3}1L:AIJϺ\vX/\vr%7x;ȯI&Z&] ế O%ka0RDcPʩi)6?KР ;z|2> /W [ 1 3 1 ] /Info 3 0 R /Root 2 0 R /Size 357 /ID [] >> stream xcb&F~0 $8Ja?ভ@6[PX?CϠd+06o͡Ogߣ9 ۀlPPJf D*7UH`3Hq) fˀHL)|dDH MDJdف ,voMl vK*ؗ`yHRAl`@$a. endstream endobj startxref 209861 %%EOF coin/inst/doc/coin_implementation.R0000644000175100001440000002363312622326244017134 0ustar hornikusers### R code from vignette source 'coin_implementation.Rnw' ################################################### ### code chunk number 1: coin-setup ################################################### options(prompt = "R> ", continue = "+ ") library("coin") library("e1071") set.seed(290875) ### extract slots of a class c2t <- function(x) { classdef <- getClassDef(x) extends <- names(classdef@contains)[1] if (!is.null(extends)) { eslots <- names(getClassDef(extends)@slots) slots <- classdef@slots[!names(classdef@slots) %in% eslots] } else { slots <- classdef@slots } RET <- cbind(names(slots), slots) attr(RET, "contains") <- extends attr(RET, "name") <- x class(RET) <- "c2t" RET } ### pretty printing toLatex.c2t <- function(object, center = TRUE, ...) { RET <- c() if (center) RET <- c(RET, "\\begin{center}") ### class name RET <- c(RET, "\\begin{tabular}{ll}", paste("\\multicolumn{2}{l}{Class \\Rclass{", attr(object, "name"), "}} \\\\", sep = "")) ### extends? if (!is.null(attr(object, "contains"))) RET <- c(RET, paste("\\multicolumn{2}{l}{Contains \\Rclass{", attr(object, "contains"), "}} \\\\", sep = "")) ### slots RET <- c(RET, " & \\\\", "Slot & Class \\\\ \\hline ", apply(object, 1, function(x) { x <- cbind(paste("\\code{", x[1], "}", sep = ""), paste("\\Rclass{", x[2], "}", sep = "")) paste(paste(x, collapse = " & "), "\\\\") }), "\\hline") RET <- c(RET, "\\end{tabular}") if (center) RET <- c(RET, "\\end{center}") class(RET) <- "Latex" return(RET) } ################################################### ### code chunk number 2: Ex ################################################### library("coin") data("rotarod", package = "coin") independence_test(time ~ group, data = rotarod, ytrafo = rank_trafo, distribution = exact()) ################################################### ### code chunk number 3: IndependenceProblem ################################################### toLatex(c2t("IndependenceProblem")) ################################################### ### code chunk number 4: Ex-IndependenceProblem ################################################### ip <- new("IndependenceProblem", y = rotarod["time"], x = rotarod["group"]) ################################################### ### code chunk number 5: IndependenceTestProblem ################################################### toLatex(c2t("IndependenceTestProblem")) ################################################### ### code chunk number 6: Ex-IndependenceTestProblem ################################################### itp <- new("IndependenceTestProblem", ip, ytrafo = rank_trafo) ################################################### ### code chunk number 7: IndependenceLinearStatistic ################################################### toLatex(c2t("IndependenceLinearStatistic")) ################################################### ### code chunk number 8: Ex-IndependenceLinearStatistic ################################################### ils <- new("IndependenceLinearStatistic", itp) ################################################### ### code chunk number 9: Ex-IndependenceLinearStatistic-statistic ################################################### statistic(ils, type = "linear") ################################################### ### code chunk number 10: Ex-IndependenceLinearStatistic-statistic ################################################### expectation(ils) variance(ils) ################################################### ### code chunk number 11: IndependenceTestStatistic ################################################### toLatex(c2t("IndependenceTestStatistic")) ################################################### ### code chunk number 12: ScalarIndependenceTestStatistic ################################################### toLatex(c2t("ScalarIndependenceTestStatistic")) ################################################### ### code chunk number 13: Ex-ScalarIndependenceTestStatistic ################################################### sits <- new("ScalarIndependenceTestStatistic", ils, alternative = "two.sided") statistic(sits, type = "standardized") ################################################### ### code chunk number 14: MaxTypeIndependenceTestStatistic ################################################### toLatex(c2t("MaxTypeIndependenceTestStatistic")) ################################################### ### code chunk number 15: QuadTypeIndependenceTestStatistic ################################################### toLatex(c2t("QuadTypeIndependenceTestStatistic")) ################################################### ### code chunk number 16: PValue ################################################### toLatex(c2t("PValue")) ################################################### ### code chunk number 17: NullDistribution ################################################### toLatex(c2t("NullDistribution")) ################################################### ### code chunk number 18: Ex-NullDistribution-pvalue ################################################### end <- ExactNullDistribution(sits) pvalue(end, statistic(sits)) qperm(end, 0.95) ################################################### ### code chunk number 19: IndependenceTest ################################################### toLatex(c2t("IndependenceTest")) ################################################### ### code chunk number 20: IndependenceTest ################################################### new("IndependenceTest", statistic = sits, distribution = end) ################################################### ### code chunk number 21: Ex-distribution ################################################### set.seed(2908) correxample <- data.frame(x = rnorm(7), y = rnorm(7)) sexact <- function(object) { x <- object@xtrans y <- object@ytrans perms <- permutations(nrow(x)) pstats <- apply(perms, 1, function(p) sum(x[p,] * y)) pstats <- (pstats - expectation(object)) / sqrt(variance(object)) p <- function(q) 1 - mean(pstats > q) new("PValue", p = p, pvalue = p) } ################################################### ### code chunk number 22: Ex-distribution ################################################### independence_test(y ~ x, data = correxample, alternative = "less", distribution = sexact) ################################################### ### code chunk number 23: coin_implementation.Rnw:831-832 ################################################### mood_score <- function(y) (rank_trafo(y) - (sum(!is.na(y)) + 1) / 2)^2 ################################################### ### code chunk number 24: coin_implementation.Rnw:836-845 ################################################### ip <- new("IndependenceProblem", y = rotarod["time"], x = rotarod["group"]) itp <- new("IndependenceTestProblem", ip, ytrafo = mood_score) ils <- new("IndependenceLinearStatistic", itp) sits <- new("ScalarIndependenceTestStatistic", ils, alternative = "two.sided") new("ScalarIndependenceTest", statistic = sits, distribution = ExactNullDistribution(sits, algorithm = "split-up")) ################################################### ### code chunk number 25: coin_implementation.Rnw:849-851 ################################################### independence_test(time ~ group, data = rotarod, ytrafo = mood_score, distribution = exact(algorithm = "split-up")) ################################################### ### code chunk number 26: js ################################################### data("jobsatisfaction", package = "coin") js <- jobsatisfaction dimnames(js)[[2]] <- c("VeryDiss", "LitSat", "ModSat", "VerySat") ftable(Job.Satisfaction ~ Gender + Income, data = js) ################################################### ### code chunk number 27: js-plot ################################################### library("vcd") cotabplot(js, split_vertical = TRUE, spacing = spacing_highlighting, gp = gpar(fill = rev(gray.colors(4))), labeling_args = list(rot_labels = 0, varnames = FALSE, just_labels = c("center", "right")), panel_args = list(margins = c(3, 1, 2, 3.5))) ################################################### ### code chunk number 28: jobsatisfaction-it ################################################### it <- independence_test(js, teststat = "quadratic", distribution = asymptotic()) it ################################################### ### code chunk number 29: jobsatisfaction-T ################################################### statistic(it, type = "linear") ################################################### ### code chunk number 30: jobsatisfaction-margin ################################################### margin.table(js, 1:2) ################################################### ### code chunk number 31: jobsatisfaction-stat ################################################### statistic(it, type = "standardized") ################################################### ### code chunk number 32: jobsatisfaction-ordinal ################################################### it <- independence_test(js, distribution = approximate(B = 10000), scores = list(Job.Satisfaction = 1:4, Income = 1:4)) pvalue(it) ################################################### ### code chunk number 33: jobsatisfaction-max ################################################### independence_test(js, teststat = "maximum") ################################################### ### code chunk number 34: jobsatisfaction-minp ################################################### pvalue(independence_test(js, teststat = "maximum"), method = "single-step") ################################################### ### code chunk number 35: coin-doxygen (eval = FALSE) ################################################### ## browseURL(system.file("documentation", "html", "index.html", ## package = "coin")) coin/inst/doc/LegoCondInf.pdf0000644000175100001440000052301012622326337015573 0ustar hornikusers%PDF-1.5 % 1 0 obj << /Type /ObjStm /Length 4329 /Filter /FlateDecode /N 73 /First 602 >> stream x[ks8~mR! ɩ#qJݒ%F4J|6ul4 l41`0ɄPL1L393,Gg f\r8.UB[npŜ^X5RhDeBF 0`qdЈ3)s3ip3`F,L)+9:5a g/HgmNr^4e_FlSNh6aev~Oi-^<Y>){sq9)Ul.۸ɂ@ W) ܇!Miz^TץLze&Y:Oق k^93E9oa3/ 9Ê\g" }ff]iJe}ߖ@p)H'B+ʾƫkr_IcT >m}Վ @j[b։NѩrA_;m<'-}:6Z hQ'7]#* Q +gYM'i8*H7 >&?F>HVN)x@;9鼫(HxOLw{Jjs{9@yz4Y5˻Jl-,o4 asSM巪} ~4y2f *ݎ'F'SS"Vjc)4j2 rw[3K˦QGזK4wbUDwnmJ}Me}V1i7;j\ ^wϸ 2%uF$/q<ËCZ՗ )ϚTOrdUG)HiH7#uV۟:.6_"RE)N34כ}#-5_.+70۱yXm㝷''`3]'9ouhc۰{5I-#FDOo w[I$+NIY_!>zHMWc0Ƭ|yWi Fgߩ)a'oi/vm_+=ܱ .Vg)OR7uۛuZz+ضw[ɶ\n ,Wj[D4- G%~A{$};|{zৣAdڤeF)c1uk_:0@ԣ"zgy#N{Rw-qw?ywr"wY();ڼЛ{0-{>>Qwh]@8-uKswU`***]Y͍5šg\JҜT$ea,J-ƔZ]Ssu-)/_dmY6WGCxrGq4._[VEiCI.u*2uY^:w[O en_dK)VY,%:ʌAQ6)O?=:qVkJ^zOK9>g >8s?%'L ZlArlDZ5)u`S?)ǁL ~:̮Ζ|j^,ߟM}71Uw ”R%Te^zhznnۢۮ?GO9:C\tsBV:5mq[y+|vjӶjZA "*}3u>G8ݭ-=p@F8)4-5 n`U(>1Q-ޱkS ,v0\+\Ij Q }?yNeutL=/YOp+pC>y(b"0Y9MgM΂8vpQsz_"Ǐz?.JZxb1-,=],F38>16Ac׷J?2]k(2SZ&m12h3Dj}.h? qpL$ MG_竁;R;H WIt# URw1c*!endstream endobj 75 0 obj << /Subtype /XML /Type /Metadata /Length 1607 >> stream GPL Ghostscript 9.10 () 2015-11-16T11:15:57+01:00 2015-11-16T11:15:57+01:00 David M. Jones CMR17Torsten Hothorn, Kurt Hornik, Mark A. van de Wiel and Achim ZeileisManuscript endstream endobj 76 0 obj << /Type /ObjStm /Length 3041 /Filter /FlateDecode /N 73 /First 648 >> stream xZYs8~_ݚ A@TIӉGdj46mFI!rLr\,6:R+jX>;s?泭2_5eb`ϲ"* u;ƀ ~pg*cOŒx_zVHQ a h1!OH{K@Dք~ Zd e_U, +ؿʟ|[|~ȏ'~6^,"0Nlɟw%7_b{{lHc7d[(;wi.5\f*&dkv>0%dy -.?0aT[ -UlX#tu Ű߆?O{p %nKTjrP+{bPOuԚqxEO2DI]/ (jzhIV;hUdcΰm8j -@_W^A#? ?O3~3~Ϧ_oWٌ/>|_e|~| ?_+itO-L=]p}]A O`So+iށj|8 ޷W W B}_5MWyYws\ L\[ J p|{*U5^৴^͑@.RٶjC+mVڴa p~Dt/rrԞ/I-ޜO_^ lǗ9=ޔ`]bi=>T{kmf{8ы*Ɗ(+x@֜O)$Kȏ"LRz:IeR\Bѣ O)gm6US5͋# NI4jDR" ȏDۍkiH!w1.{;o>>B:{5C+V0<خ{l,nEiYes:忉.Um+\XFGNAமm岎NΡpIC]Ө:CS=&4V,~/~*ýѬr08.Gя‰->'ac#UhQVF@ 6>DY'2=M9UNGSË)#"!T/(^O('rFt{K`ݘ161r~`'*(k#$c差jy<̿R V'"H-]Mj2 va^bҾZ::/]-Z{bh/S +SGuMXuUhbF`<Y g餪y kL'ˋi\)iD~"A3- `IEn @仯}XgǫtvՓ6:*5Rxrnn&'ȳ;p\MlyY#V|>;͗WɷUC}-eS4+>JNNdT=ADbӱ{^m5u)pd׹,ǬWn-|ŗqћ:M3E~+~Ϯ)[gڸ6ڃA40Ji'f _/ۻ#apom~5*4eh|ȤQ{1yzr1}6:E={|YӒRWo*N;eA6ς+"r,O\Vet*SX=meIG6UYӁMgR$OhIH~ L%D*n{I) HSqq7;'5j'#7OSq)["=ɖhyxqPL, S܁;vxzi{7rI :HCڗxkc$-| ʮ!D h% "j&Blvf4IJă/5IhZ#;47}فTF'mH =URلKC񉡳PN<0qmB<%܁E'4Myru ll;^\Y iE_f/µIgnyÉOԕ ƷlR8,WU@e sBFoDD嶄ʻ0r{5y}:Tv X2 Ti) 5THvCPtJM@W+ж4!JSRHT5 .G)#F>TA+@'wsGH"K (U2ր&1WHX{iuB"e†LJۦAw(W z8k; #r*<j6YxI«9);|^M!Y+o;>*t>/&'Yd.h騅Gxp\w}> ^'Y X2΅Nƺad{>=ӷnn̲p凜pAmJh(U_J8M[z\E*g!;.M\vA슏pi> gY&W>}v"Z|;~yȌ_:Aq} EY\uʏ6Bau:I07lnh>:.koC:dwLF_vOblSĉ M֠h(o9tgS+Ϧ'? hAendstream endobj 150 0 obj << /Type /ObjStm /Length 2017 /Filter /FlateDecode /N 71 /First 630 >> stream xZ]o7}_h^^~EljSc'zyP#ԕI)~ϥf$#cY/&3sȋ7x!1! EHIu=uĚcs0>ifxC];c]SƟ:CDC`Y'ِԕb(Jr2*Y'd36Ll `8Nİԕh8Օd8Lpb.L`q_o z&$$"Q`8Rp])l BFb*R o%I' &z{ 1ɑIXNI>#&Ӊ꯮$UE'Ť+8v*jޛ bBa˜Ibrн|4Y LC'!cu9S\c"?l^60KsDb|0Gy5Ml&-GplN^zss[3h~u*ý[?ߝ_]^xī׃pTKخB{Q!{yӫ>ธs;4k!p8V<6XdvU:/.Z!wfP9XȺ' , %h&/![<|c^z>&&b@]jhQv+iKʠu<;R7ҽ} ~@qu5 FL o98`߼cX8;kl1J;v\ h= mƭ0-aho='9}3;|mY1Y+eI{vS2:PڰԮwZ]J(Z;Ȅ6CrLM|H}la.8qΪqMɧr׮"U׮73$9rFjJ,J_; 9eV1l 1{BL/x'g 'Z,vTFsG')w_?lw(%h5YlR+vݞSeR3~mu}ޓnN+p#mR ^W~CX[q;}ydڽ؄4-o] kDWrANʫYDYw]IŁE"O;I>v=lBwQ!"-_3\~P!WdM94*d~ڥHKH)ByO@'6&I郕9#'%&e9PJQi˻PO;ep5Nm ̢Sli[tP4;Uq*3pTt⧓7wY>gh:|N ]v=}Ow%ua bG矔@ -hSw*Ǫ$0ofP ՗X1Τ?)m>{fSgx|soFP1Vce0oD dGI-GI3endstream endobj 222 0 obj << /Filter /FlateDecode /Length 7465 >> stream x][w~Wo1gNqGY?{NFDi%rdѲ[BUh`8Ph U_]dzi&/|яTY珡E'vkg?Wՙ2f]8sj3=~F_(68sv5QkyMQͷFm/w5w@8+;vud}O̻ߏ,n'6Lգ=u)ZyH՛gF fsOWqۆ gN4U6nb ?Mh <OJʯRg1ZOl78nωfGcPy8E*jXk2A~!_b⃞3qsi]:&rE,%^QQޣN]2lATDg(DInDϐBz1Z 6J8x| {#Pܼ4[10WPXͻ7t0m ɓQif X(jr.duKp`{ 3$¸y룆MtEқ:>n {p}ZXdgK[WR4s`{\g۰M@X'w1th`Bet^լi*H!ϗyJv c'mvhgO%6lW}oXygsq7^7w052tXs q,-/8逤߸EOqYO kOK?i6΀9yRz,>#3)k\D7Y ;~S5)&ى.`z0auN6u iDA슃3'0S hEHtƗu-1GR2sҧ9AXۈlp91a~I ȿԓa:/*!ix ^Skf7@4[Y`jyY$&TF/UvQ߰CiPt/ҭbH\u .!>Q06(8a `댄%5(s6 KU):0餡hdRu>Au[>-A q$yJ)t" ݜm(BÛʫ39y`A~I4m/z} . "VzJ +plaQ!mL[zZbyyDa07s\GeM>mdpXۙ*nMۼ:vdn8\0dBp,Li؞Q6qu9( :rXQn5&eEHRSTm!x>%04hΨ/ZG+i(a']I'99 UU'Q3doed#?{oށՑ~Ոd*#q6udR^VI޿2K1EN7iqUSȹ%\cU:r2Ӭ aH^8#s 6?:{x7+ucֈ%F$ٰΙ/I4լ{sZM鼡riÌbcHJQ/S7tcۨM ?TgwuށOa}1bYjʚVK̗Yi~2!ġr>q,x6$ l>Kv  .&[4Χ L/T7(?oD0`f=a "!8T"?l]G}DH1/v}A~=MA<ʀjwلsc#})20G/ T)3,4}*PrS\dif26>X+#7}fs0`Eybqi޽a焄x*d9ΝheDVӡAn)0Y_UIסҺ~gDus9G#'CVh31w* !qh(c+ ]Sxi&F{]5;1愖%$K&R$;, ⯫\lB$wU(EW[AypsСjÞt}B&+"ᛝX]eɜ dW]WjT5U6S}8y VVkŻÇ dVY' ]  :?'@YRy@aUQs+.)פJGc@ᙽ.`>ھ=윕=嶞]0[z?Vv[uNc5ܕ` A)+˕ p) 'O!;vЂ$&GI9bҒBWX-׷> #(x6pϼUR' cO#PX=J˩`c 9QB@iqeJDnhF}NVIWh`gcqۑ>Ync`Oµ|hl>g8Ȼj4axk KV5%$PE wDL[e>p$oR- ?щeΟ넆u8j3ǧm2F Vd[+H,:/ EN֣ ,Y oK6vY1)78^Щȁ t'Յc7c2 $۵JEo9żMDF /ғ@䎝Lr#HF./h+;ym=Þ31yV|"+֙kC+8Dl V+Y&ӖQ8e ;swv!WM)x#Cd#I%Lsi"mAxٕ{G .h! '+W>qn2ѩ$NjT5Y#V. _~O #‚"}B넋rgY-OE?ЕY y}12&#CHJ,]hLZ!!$:ӄ83 t3>! MBSd< "$A=`a^smpSGp?[U!Xab2I7fjC4Š }U튓VM,- z@1 wQ1 XRGIA`lgլWwƵ38V:[Q9N^r'N} Z4&[ u)zxowŞ2q7^yVлcdz$GP9l9'/!L{c&MU430ΕƨAeu\=荷xJUUzV^ HM *WӜăMBhw9u 9සU=ke58٤V`[zڀ(Oh<Ҟo Lf Y2L5B6W[,6xi#5]Oϵ֚s/XJK6QߤAxH3_>gS&l{vۮ?eH V<]Ü$,用0acg :Q^{<Ų %AAQ,a!+ìds)1꾩Vw= ~*Ʉȴ~V{bY&#cC}؁8dDN/퀈=sK?%ڥ9E\u-cHG@ npRRKf)ŸTmv *iJ %c/"Qm4Ta\?kC E~ G Ȼ !KDSw?A#wI?uXBWh>`y8i;'H>E]<ʌ'8)z~ q0hAZtY$u@0Š wi6nmXrnVQ.Bz]vߣ:)LZ 5 =`}S,w=I@ÄbeVq ̆%A0ȦtP^ni&#ߏ)ǥxƂ5sn`OxK]iUpfqWz2[EyiQ\&bjj 8'7w$_ћP't\Lxo3!2y~XF>&EDff5bwۗ̆l/P݉a:R -as1,{&mU{ !9vؚ_=Lu\<=K8o 5XgBfiOm[cVRE0<%S?ԢFOn(bX}X-F"=i) aQW}Sl@ةcP˦<`ؽ(ո$ [ k*Y/`ԫћ.2P=+]k}3 0UU.Rn-.~nrUG@g^"]2ki WHUAa-LxT0Lb4Q^:9ӓysU(IH~g\5Z (´,HPc'[à2 2iP!\RtU%=|n&~%I%K穭8^C"!\YR[YUy\ wZ(ڂ b yYR'3*AV,WXBwXUur`CX5j.Ʈ[s.&-Cu.^I:E |̝:b 51ZV૯z%Tʏz5ڵj(`.}lX"AlŒmu`R^R9dMIT$l˥FnQb99lZS1$1ۇHx'‚9-2ht`@x]֖Y,3k. y#VH6Ro-|&Gu+c*'A{4Nj{j IyU0C-]z޺m@灻$u g+kg5bq\&cRϑVD;7aJm+WξPM7P~@f6X7vV)F~]W}-ֶQ, lG֓QJVsˡHj ^l]oH&ҊZ4JRS⯩x"W]ʉ\Qujҏp_1HpIwuű6\S:Vuݸt3jafTZ~9#:  蒣6ELEX62AXKE T0Y6vrg8ecQto6x0iU2}B ;}S*gKswP!CEJ'"SOO3xa081<.ŏ#odfueiqOB/ImS*ok/L\ߗSbTw ;  $6q ƂءWS:QK96)p>c*(-,Koj5z'W믘ʹTIȝ)xIyDKnzEYMoo?=CV"闧kQv{hRp5HC,5 1,ג `]8z#ݔ/.O(].9" xr/FT*ޒ-#+bWRnS |x*&;z,tyBu~?$pTU>'T` @C(w ɰZԳ&2Sr05W5lah҆Yr7GDVXBroGDD,WM>"PB1@c%cÓF>(Ժ `$yiܦ]y쪣r$KUOvQ0m(Xjwۖ:kݓ ahV``tYB'x-ac%PP! C}vG݌W0 quU2(@0T$мW4w#.g̻mg+ %,y N q.< a*@jؔ: =\1 0w!UQ9Ѧ|c7HN9 T5T|o\2qo|D]-,CIx/L\_u4%.{.{! Լ2;B!I w|P5.3ߜ&>h"{D*`>77ZoK0}p!Xw"֖z$ #ar½CsQ~أ|%7_vKQTKdΕ@m1*N_H 6R ؃ysV^3g[u&y︦x߱^E>;j:}J-O]<z_'Z9=;yYXcXͻ}v _Q 핒'ٖ %T6rm?"bs{ SXS`LiV5VR,vk/ = ݉_yl3len#z/*Bt~Ҧ%\\w4ʺiZ))):vJB'@1t>?ޗ*endstream endobj 223 0 obj << /Filter /FlateDecode /Length 6603 >> stream x]Ko$Gr6|/O6K~h!]aeC~숶w!pCRC̪Ȫl64YYa#F_ɧϥ\ܞ'2uS9{S&)9}uߔ]8G7Ï[ZizQ:;~vS֌FrJ` D5|:e z1HǞ t4%Q щ8, >NZ5D!/ుG?\i8Xh`78]P*ŧUs2]ĥ^**3\Rҧwn[o |t !2[c7T/[|0`{j "=v(z'/y|uO'ZQhdӗDs`k 'px8FN e}fp[iѝcV 'i  \T9sTP2 m΅B]Z0pH <p A;-[Ǟf/u~xU We:Xe?-.yBw[9Vң>Tz37{_9bV龬 J0ޫ*\F9Fg$#y^"\dHmc*B2k9Z'&Lt^:3`yˀTN jԽV~$^9XM:!;iru9,k/c/e)mO*鵴;<]I AO)<8\ 9Dg{Yϟ0Y&=6?-qڐ͉p9¡ 4 ϧDHUܛʗy(|*LP=nb@`ݤ,)&,X^,ȔvԑQuvUN-ry~lj#E˃ ,I7-6|83i(@"q(~;)sIk4JRBb^tl GR^:Yh1v Z+<@ r_4W6FyG?oߑtX@Ii|р5~/f\sCteE\\$2DmȓlyK- p>_WV&A*,,~YY,$S7ɨl_4@aQ.+!O[LtxLCĭ/ˎk1l~c2QmeUT|':XKy2b*F(<ڠ=vrp/>4~aĘ0T=< V( zE<`0.R W(lI{;޳8>WLU|qz(yw xRnl +_^Lük&[JEfŌϷJ3*1rLA@ a|i '~`W=9?:=t^Yo;Y&v5<|HLOP3?4iGA֧V}S97{V ˯oZ#<4agT5S퓡x&mj'Vc_U*z&f>yW~PLP(C/sM|#LaYˆߦBDf8456(pǕg_x|[8 ۂ 2Nn!-7 > b̨S8N 0AP[JC{<Sj̧wY[<)6% ÿ%s 4Ab^X* % UΣ8JZI_8|'\JߧdO<៳yPkV" ӯNNiGd >D0MIjت<띧@G\x 'HDH~O)ĵz`AgLd~տW1+M b#h=D=^z 3E` o 'һŸ93tcm ZW7`L,֪M֞Sf#抇0xX4(M;L) cG jOS4l=`wFT:I|8jT _ڗf~A|]1}3JЁbq>5oM1Q(~K(a$SnW 0 >m')O4upb n<DE ȡ19/lPYL9Sى%\JDٵLu) >^ \lL&B3*p j>lv9Y K G"/JY[ 3;ł"D$(׾H#.9]C cs@i,M 㓮&H'vPBDHU˘QML523@6ٓM7uPKsNO! "DiB^pvk=ns z @Lžg|^@?AUl^rnj$_xЇS +mX]SW.CK_׈-:}unRӗydwF~dK8f&4PÇY {8)Vߴ.3 <"PȎ;(t,>5׼Gу؃Pѫ PՅD <ĔNZΗ6v D. J(kfKwܰW>[8tg:k]Mpʦ'B\wcfgy ? 0U~蒽pIc2T~p*:X3ѥn2EFlbaZSN?ASfzQl[Sq4ݜ4pX'49\<ªvʦ"?_(9ȥrٯavhk3{bD;EH H\A<, aqŀ.)w +{X).q KPFN5vo(t{jvNu'7q返 Z8$0})ǜpԺ|NGη+_jS-̴{xEzuý|)_j˛HD*@4>D~8Eej;FRS)Ⱥ%;%XvSp7kk@[ pҺ_@tm0"K;'*Vc֧ ?pzxg~(d dl ǍJ'NˎA_vlk wcJj@ <]5ᑰ( ϲ ZTߍYGaIE5>kgdg퉆0Pc,3qVjڦ`Ǻvml4~mc7L~#LeiҾO rƄz<KUlh*;PU H`SjĻiҫhk>4S\Ύ0)(ju֩ Wq(8U3|V!*h xva'He ͱRdRp”ûTHs^[bۅN ;11Xv&E%4S,DMfqNu^cm:HM{P`N"Zo8`́m_N),앧V pNsXN/ 8ae`Ha2TaR.,Skṇ1 }Azkx]-2~/Uim.d7]P $C (s!x7ENX/>he ~p㚐îI)9, r\ վsף:u.X܌rރ܉cӃnۯb8+ 2_Њ$5c/NE" @?M{dߴ;S~B[ OyPx_V;-Z^1r/  ~YtWMra$Қr[ICwڅM%]Ly jg}ƣܯ~,܉iG;>U22a,AX^Y:C9F$ܼ hLe6*W9Jʨ隅M!{S0^ rN"2rلuTs Խ` :"ck=B#WI[qZnTr.MV1BGv2~v8|qD4dp~m ͵e #Mwk \W'̝S9.zKS{:\pL5AҐ%˻zCNSd ~':C^Kѧ6>o%H/:X8+2DŽdpU7$Wӓهv4jrncc~&a-uelnh55<4Ť X_Tvg3086%z 5u6ܝTD:<^M26NK#Ԡq9w{ۢXuOH,;HL1}n:ŵ2#pLm?xMx&Q[Ūd nK ^_'lo)}"-_鎰kO}E^hݹ`նhTz|^{ʪ󎻉!0ʲ%9lʵIpRegRP=ҪZ@;ԢaG膷jK6:YJhQH"uʔCQZ j$2 tŃbU(vAcb8CJU3vQY@\E—سSy,ļG^N\4oA|x`/^}Av\nD;ME|5$Z:%3`hHhL z* rl`k>N Sjkq P oڐqa-4Zm-PT~}@o`tS4Zj#;{akxM{av^_RASO5Mìе?_SѽOw" C[./grX=6\Fzq '{VP",(L8VD؆k.H_[E %AyZ&R.2E+i }AgVYCd|v䢹;S`T\aPPy`o_M +f$ۑ4pLtϞۄpeTl3[HӇ5lˠ9Wh 5˦g^8-UY+_G.l /ڵ+Z_/-eL.b'iQj.9=r FG ܳr㪜$ԐcAT$/[#X!8\OմTtg0?QE{y{''_w(W1EL;e26+ B%xh8[8臹1 j$輻e?,7-Z"03W./yY,hk9 $@OFSHbEז>l]{\-kJ A5n^݃(ac%A~ö`Փ#Kǿ|)8˛endstream endobj 224 0 obj << /Filter /FlateDecode /Length 6874 >> stream x]K7riξzBn][xRFhڕ^+$3iCR_wfdaSo(,VHI_~wz8z";كGҧL3y'mO}1۝Rzb;ʄe) h\Y-vjټg9^ xTU6bdٹy}To5'['amcoαB7;⼄H.1ncCns3Mk ^EgsxAX'+:Gau>yq1p>)TNhB0#De6_ArΊ{#lPƋ}}ChVBX0. rӲ+}+Ѯ;=ov^XOYM+4D`9]tfU_~0渶'y3EZT} %vWy`WP_,֧-1%V:DMc[2UXCj l9-}Vx7&Yт`z;`.km0wW^N !C`ˀ7mUFaBFl[vJREśt sL/R$E;2H@Y6le ,L$rBdoʼH@nL1cn>v+gAۮLȭˑ'fv&#p7;EdrUt^foc `;MٶM";fc `i-AA/Rc|gBvEjǁUg7!;L3 H9OsӤ1Q朁QSg"%A>"'{XY@I>f.Έ FpΌPNt77׬ &A{ $e€f'47X PTRoMҌT>>]Cy<]O:>*O:џ^_yyzMtn:ǝ)/n{pv+/o{Ì ̞-xSXVQM29kDXP050taJtA!o"“*Fu'@wXgKVIJlk]>XMF(FIg ےzos>6bH)5W_V*70;>1r*ՙQQzjKOry4ã5' `MZL]mRq󡁯r΋y]]ϩ?L@uC$3 aG-jD;T= 6kaHptQ}6Bl L;W^AQăi~vI*x.Ҝ]  eN ~uGQ܉y*M\/nahgcfKhޙZxVHAZJ8H5p\RIl<},>ڷ3,S=S [0(Xw AN{ V%-mBx1 i H,7Ջgzt3l=#qR'g2+!hG~:]&lexUxT9 g\8f_&0d6f'٦p%kDyn17EwZ|у{ʦ%^[ˬc{Ŋ\2?$qǂᜀ o+ һZ C.F3֑#E.}j"%q]b9Su9ޒDA LBkkC70$Ou;m1l&gLw0Mh iTOfdD&Fm̃<ݤ(lr~%*ORLg~puR/m ZmGMŃvB_ቬ1rh45Ҕ+dm&eZ #q"s1t#k;|ڔC,.BU{h0pN0)5~CyE7uph/6czj4Iu w^6C 2 F/YΜ2\"<`Rg2*7T *u*Y4* 4 7\ֈ"rb2V#93kOcHlHk֥P% , n3KƍjG/ꬹ.6ll?`9'BUռDU&Ɲ?`3aa2V6N/3hVNY44_6)( neb噧j B r(k6Kp;g@#,fJΌݟ`HdBK-L&ՠ-D6z L^I[C4Q\ekP.rQGHXxY|)Pģ:mT!qs a{7TTqWZ؄W+o`/21YjeNKS뮒ftkBBȴ'd vqO@ B#[7Ya,DyZHfmR %m8C2 =aQKp>hqv_C"Os--G]JYfMd,ۚף2bW~7ҝ~Igg}T:cm>J-P"ouᇋ"saM{`lpԥ,< 3Nwmm\”d_}! ۟lҽr+p&><gJ 4(V!H6FW|@ -Q^[r,O͌kh(֙М>}~tw7ƈS|k-ˠyL[`G^"م,՚4o Jݰk<,W kl(W`A=Se)m:h=_3u޸#t l7'M۷SO.tlKmq>vlxDKN{Z`I^{-z ՌnY5px+BShru \Ӎfi$Fˏ'ii鑽MK]a->ͭ,Hq d.jKJzAmt$7&P>~ W3k~ gU7Z.e@T_V 9V m8J0\BymO.m:B[,m"95WK lq=eteE^v 3'*+Q-5 n}?jIEW%ϕK:M9*`-n.(QmP/1š~ZjTLs9Iߏs^cC dh H* wL^3~g{>H7ZdEUT:SR+J1)]~ v,62>suQir"ڱ)oP3tohpJ6Ⱦ[)wv0NQmi-D#ܗ[s"Ki`z P<)k= ˚TdX+tT=@u?ě V:MWix''L )*eI/ >:Hn9]TGRcqWB" Ά48 Ǥ<*9wE莈vnܜ/" YT(J, ZiKzdK@i 5cSZM]W|6Mif쫹gJJ-"X%FIRϼNۜ(\U`- ܿ)2:C1|b$C3:*MVֳ^zU%$O+ YmIy6dcﶡŎ a|<찠&6*zO}O㊡KKNuc FH>ЮrycvYRl\ʽQڊ/P'kqz/!b5L(7%oD^a^ zSU8z'M@X=長)L;sʅ@cQ{"/j%'K.ؖ^t&]@OуDu&xBj i}u}dm<<9ܾ|mםSx28"`z/|endstream endobj 225 0 obj << /Filter /FlateDecode /Length 5228 >> stream x\Ks$q>mnqpz/eZ) kâY\]:_:* ʎ6j壪J7GquyVG?f H+[\ѫzl=߬Nn[oVdF Jl\\óO9{l9zTX 3R!VFOإ7#l}ڥ&? H{:3) .UKʯNΎ?ۜ| 5&ޥA۬qwMRCR*WvHH9ғm db -!'u|PʦPdm1h)ĦNUrTN@yyD.BAt5ʮF:+F#Zv&y1[աsu+*^a3ڮO V O":#y2!Oj n ˫CeI̸ݑj9̆@\7ۮklvOsz&__q4NdU RyY!i" I$쬓||fbB{78/N:Z 79eI)͈ XP'!g9!dޜGRZ!xnv;!4Rix œ!U~Q@ԡnX3$qчBABB w;-P [;DeQ4ώHYӜ tJ)ѲEytѭ\ zG b _]% ,ҿ }jG"Doe)BUM${3iaXq' FHZ<㹭t/<+Қɽfl//BNB[ޒVm&Y kNF NXcUM "]ԑS^|L]/muv;^BZ,PBF bߢ[m] F8Pw&T$֤hK (^2d^V|;kHArSfTP爑.ۉ.ۤwqҍKbP0 @|iCɆ;bDHm)p[w?GgW@);kMB}یKJ9hEWݲ}{zhO= 3w.Zç7i۞SwߞoO==aݾ$6PUv!5(C&#O ]6<0oVC&>OOC ).zj9GjJF,H,!)cDty7zWduhqӣi\q =fp<ܝ|Kr]Id$ο0d@(dxʱX0:O;$8m]e[21g[Xm*7Ǐ=\8g,дP:fA2Q~̲?_6K _5x{Շajӻy{=%r~(8N͌ 8dz?_{c1"FSXDx) fVz%nf+ʁzߋ*7VJ6U "B({Ht >(U.(,l-j& Q"v0>1զއY Ojk]9+S9,PqnG ¾=}|fdž731'c1|j{=6iQ9j o[F7ѕ2X6 `wXf (1R %ՎKUyT^Gkk?B]fK7.e _qi Ҙ-4X wh $yF6_]Uch%'~4 1e1|FaϮS@`#oD`J{v:ni"`qNؠ< "rr54-v]aI5Tނ nE@J9Ywx̩U]:;ʗ_}9++%Ąq &x(=UaTd HCk5#tuw_<0&Y¢| |F/WP安$W\sE4ۋdǢb ttQj}(^u> pAƒr6DB7geKQNH mvR]bBY2x?팦*D' 2{:-u kқ>d2dE't{[7A8+nJ aåz,㋌͸,dQs=a1-2'S;ZHQPဌY-UcSl)AzK0cvQ8b.2x͸ Ժ1(MRr@AH4ܺ@i2i)eyLZ X`f XF~S*'}J(eMn"1bNIb<I+vh-d1*VcMVqplH9u/xϒ̫Aqb o6Y?as Q:~sx1]{@:Quyv_Wl7S2aWO(_7s5ma tt/|tJ"s!Gwd..zc&etItĮ]ήgDI5Dzi'f8Q!}(I~ou<9^Y}8R_'aivuPѷZ;1יִƾ֢FV ܧ:а54~K1D` XAdX7\C"c$b5BCFG G_'9bۍX\YZ5 dّ\gXQD"!uE+s/==ߐ}M}GPEmc/ 5gS@}ud r# xij/AlrX AE<]ΣqeA.l4Xrb,/I|>^е|Oc 'X5F i,}b0ZY`Qu37b`(dF/LVٻzgrkl aP'jmE'.|lfma_@r>B3|o|^G6gƂ)&f`SWf̓F'9!bZ5x .oKƗVk 巶R2@0C$a4G#tR\DfbNN@3>$@ ׶P%!aa@ ãpx5t?M8Z]x+gN^+f~w*t}#v#Dd hD[)[Jrͷ[ا}XS\f:s 3렼2|y0EwWl+6PS ><黾 r/ߦ/phcNMWfSؔ>#cSeSW ;lz39 ^*@? endstream endobj 226 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2259 >> stream x{PSW5{iƭV|* Eժ@)BBDY^A%<1 !WDQlu@Gkc}mw>>Vw֞=tRٝc̜w=C!$)z䟜O _ D>;9'GG IUǫ N%#]lْg.\&]RhsiLTd:%_*tirNWSZZ-SE9qsKKsuJiH-QdK:J!}sZUXShl VE$z<[rNnj ~El$63T"B%V "H$^ db!'B 9T7&,h(_]Ȧ?. =$kxE'Ɖ92~}LԺ-uUPsm9V}5UE^ZC8j\lo79SQuP0M+=OC7p0pV0@y[A _b8wK="E$UYeUj {wRj ;Bd^g?΢4os)iH>{K">"AESHD~%t) .q, ܠa!1m{'$A>d[6P+ 8|_$I|V^ZQd,yƣq0 1x(EϣrB}Vֈ g%אyP;_Лs0@DߎfQWDh.|y`FSV 8z+^Ybc">)@;p`[| F/CvEGE"0 l2zm"͋˾Y07+ŐCˊ,ο|=`3mZKY<2ج 6[Sќ3(wnC֔Z7h3zyvV`Z#2?b|"4 )( T.'K B9C*PKV D s$zmyɠ 1gyvtv^0 cz~L4/_KF j $pȎ|8ә 䤗YM]}MVF3&jcjҰtܧ#=K>YC Xi۳NraNӑ3䏣FAl*~b_ڝ2NeYBqBxo>JH`4|qőD/mI6jz(Wt|1M FV>Z86-n@Y2A k@c;MMaP :@+ZRZ\Yf(<쐟}(p<| ɮ]7^ Ju8Xwj♸9O»nDX&VR ( Ϳ>zy}Z@8KPx~\ WH6O9ejȺ+tjB<?Eן \v4(4)6U7bP[ǮJ@e(ԕrk@<ՂR6D}v]f0yFɨBR_vpwg,y?q{=2poc/Xj S"dBfG@0\Ӷ|u6BG.A3"9>/ywsA71i4Iѫ_sjRRZZ7z<&XN<;g089͇ ^VkVHю EH^W.~UlסvFh0&C7W[2\רՁg8KS8XR(Z8%/ga;{+ @O(eo(# yY@/Ln&JKYNn=𲝭N}!:-alAi>4Mb1IЦ+t>}{xPgEZ_̴N@8Mƣ,/!8Ƃ)t㔈_c쵘M*I1s=L,vV#W:bqi:Wth#Kg5k<7t{[ێ %}S@#WX٥tWMR=[<:zN_NAmu̬;?q\*P8> stream xU pSUkWU:E[+GU*JpC|$m&m&y9yl&4"(F\l2ꈻ"23s_ut9?s$rs$5[Jol. pS;\w:w;#IcG{_j6v_E]T.XJ]^ZZޠL&AUcitЩMZbSUX,W[\b4[_JmZZ83gjյFE]sKSQfLfdqf3wMj ZIkjq6E۪i̒Tk/Т1֛r3XXbqjE9AT.b8BH @0/M%fd's9UD>{VƊ.8/<9}M+^VYӨJ^ZnE9()6 +e_*_HO3wUyrvt2U9]'垚 bb+_sZ>Ž{J,87NΎxE!%ڂWb"|ބXy=*BMگO :|3ķ_2s2܁ە=< #NP <t[+>U>\`P3dTb4`Ap:CNکHxz"Rtvv{Y􇍘;vr :13(Wx";8PZ\AL&S=W}|WCxRt9J7К~"u۹ֽ+񡠐3/~+$;A7·Lsʟ@]c-o>(ͳ,iH>7)~O*y-E R\.x9kQ5S/߹R<êBfA{]yCRB endstream endobj 228 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2560 >> stream xV PSW1$HB7PbYn`kE]+"D@!/JwH'ϐ2D|` Z[tۭұ>ۇ;ǹ=qv:;$3{\3+"f~/{o("@WKPHyz~1%d9%1rE*3=C@jHЊР Z-UeȂS5<5Sz Z:<<777,%;'LJ<$4(7SY#UiiAOeꠄli0w<[QKUA4JFQT:QHK'||;E/m}L>|nA ? \h_o?sDZjhR']r&#Y,p0 =qe.:Ŭr`6D*>WX @Ner s(Aw|'.DM)!kTGTˆUgr*eL8H$ߪ-K.:b%=Ir &:T#@_HpᏞ}T`ex]qaNi!ar374/w~ pxNfwCrlL1bz q?zX!/mϓs ]ID&0C Ӭ<'.9q ]A+A=A,ͦNO6F\8+Yྸe!Zt´[kSWZno:Ыp\) +LH(wNieƆ?b;&88G 4OSReugU%,J߸23$򁲓% ݹ& șgfXU`@/t>fրup$婳'IuqC$˲p6b]h]p} vc, v`~C&Gc%ą/rj1 Q7):+!1{"gwsQ l Hf/Vb| ?qwc\rPBMc G$ȆNaO"j!X:<*r2yQ'8>g<  ^NCQ:!84(Dbp7i퓣e3~i!^[WW ѬON&a E?8:>x Swo$DܡlY D2xfZB&;u9 HfHnT ;-\-w 5`2aMY5Qж B4^{KJZy("߉$͛>1,yFXEz.$ :MN.ً(1U8qPbp(~>h+Q74J ;Pa&~aH Q*/%B1JOSI߉Iis;[V愯3HRQHe1&Knٹ?EE`H@=lSh]y]}s8@F]9q2JgafWX$JD ЛW`jsM fQwEtSk̅f<.:t!\LoNv~3h.-uUy@]z3`:HD6(gD6e$x+/L־ crJ"T%0'6Sc grsM&Zq|F8)Z5E heq٣ 0Eó?e1Mqw_fNWVA3t&v_ߦ(:m7vo_e[G]4aI}3B. 2<*P;]^]G,W fCC~oj2f7WԨkAݚIBF)J|o-ZVZ[jZ  l':D"1v!Z4JEZUV  .0Pzk%Ds3&5!c*YZݝy>kb@L-D}|}Z}QԿ:[endstream endobj 229 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3910 >> stream xW PTWmk+ ;zybЌqMPQM ,"64,.l7MN/M6 ,*.hQgAML!qLٌ2T'yT:TU}{}W@MB i;_ac) =VBʬm[2PB ":U"U8,ZdNKW:ĄF:TH% ]*Q$9,X#U(VFBBw:9$*Kb%1nHl8$a$&y"Q1IAvJ {<#,}s[W;,9Ի{#r<ݔ'E\)jzr6QKj+'jZNlYK?R/Sv+ JNͤȨZ HwM ; &LE"" t/3)7',3-j8C>ふdU6n; &m7 creq2$2+7ǎ?ˌ߷0Th~ի&:@] -P^dkD]:> \}_xibS22ӏ0/cL4 "k!xMA#B>]` YΩE>b\I6R 䉶Cm}~v'ߵ捙mlu y% e#sŶ? 'Ȗ؃ ~cp픡©isf7CXQilI0_.[VBIZZv^r|Kk`|x @kdK8%Cgu60oϢ6T6_1b6&K]L֐k=Ğ&M#mT*2vt#Д'v3@f K\F@U`n_{ 0bO?.N 0RR<~ 㷣D>iC79yY`du-ƀ>}\{aDң3&A "_1lRR8!%A9)`=ZDDCCSas ywΥqyjB`&؆NMM5ӕt={U3nE[֋K@V['TJy>*TS9ُ%f3LhEMA N~B]&R;wZd_bt˟pdi7Yd3AchؿYO}Ib6j __[C&6*B AB|C}AMk~xIP@HmYbzw QMOEUB 娳spf>[O_`ئ'h+A> * Zn?;bF`bR@\P -1^H {^R@Pec_ִ :FfD$ uխlj}_Bl_ifw 4Pf3\v||`v,C s!=Ĥzs[Ch1Z/2XxwsѬ~cIFN`(2~%vw0A ~u<zRɆ胾V/f_L4.DyclFZ@:("U5$2z:# ӣY3i i~|e WAI D |!,_l7ZVFc`N@ӡ(ktR`B*b|)Df92haOweqK: iLtMp*s2W:LVt9$DYLdyٓ٣Q<. Ww0/'JJ;JTZ=4]^[kwZPFuemu7Y6B⮘㹍<yXXTׯSB TV]QUP7/Џ>P ̂nou ⸘pdq![4*6XLsv1|Sߩ3kU Ʋf`F$Il3zV~o|ӃuC/"̈́Sy= zTyz-y}OxxΏp | g11u?)iv\\kaK縥9ĎIpK+Dlf&d~-j&M̌t'N&:}=d=NʲN53Z:>ReyAoOZxvE]=ε _o'ӷf]!Ƴ3HŢiLLړ)DfZIF~d'~=d욃m7{z='mj0Q4Gɓ~؁Do|z] tWVr nJ1ַtWiF7F#d μDuNj1 gx{V#!r]4[RA!~I|Lx& 24Eڂ"W?v>yl+N -HyVvRqM>Lcn,OH ܷ3",[M L7~A-*x,D ^i8s**/2c`1qt;,ÍhoΖNo zy#,t?a=!QѣǘnFKk`d$DI'ɑ{13-3[\Jܴib JF& !D7+JufT9,Nx)^mʸ>c#FRDCA$fp3 QoɶGCqf#3.dak=9Y*52st>C=##;kuoE]R]=KtiT gZ_Q՚tFBXx6 , Y\H^RT'bĒjQge5Ri5 endstream endobj 230 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1532 >> stream xTkLSg>=g0a;.[:ldcB&9Ţ+HokAzPKfit:6gٲyN4٩ܯK|o}y|$F$z"#Ä( R )AgP"IMYuVZ_^n%(&LMIJJ( y,Kn\ȍbQ"*ղFIL&S\cH3Oe9JRJL6W[je5JY[bJjtF^]ԗ!-+W,$M2W "X@! wl"%%#8BJDKj0쥰V*"<2|U^V-^n% YFN.,6aG{(@g'gK-ɩZ9V K^:,հ\iEO._v85FZLzjN̤9tƉjXx=spmsHЄ^:ϣhŃrnJAn^`&fWv[jܺ-k oT)| g{:G7y60֟;m*VvnCTkWStK  ^B()x7ddu[u'8Jm:2NTMMXټ杴nY¦͍VYvW:JAtiP ~y^_vJTŪ6FMֶ^o>emmM=4-#^OرJ>domt:x}PF#A=-@ e1'.|A(},nSDߟ^!$#eiK uL~HK LJض'ʠ?9+p3hyA , (*xPPf]]Ȍ̀\gyl'ŐmZ9 W> stream xz TSD+驠ĩZ:עyVDF@y@ 8U ZuZK{7l/sλ~g?{յ %Ds?|?߿ k_[㬠zvT 5ߦ !qIs#{z:biӦ0aܸi܃XJ~&u{hĀ3BCAXXX= l{׀!;}tc-sBQ:{9nI v,sYmi벝nWxZ}Zu~뷎5aɃ>2ue7qc{eLXQkDS+j5zZM PèpʁAFRQj5HͥPyXj3 5G-S EDj15ZBMRR˨)rj*eOl(%%ޡX]*CRvT_՟Q4QCmQL*zQG5@%P zPI-ZW'ZM/|uKׯNJ"\6߻cSϷ{^Wo-{Io7;Sw߹fyY[{vg}Sc?tlFq)ZxwdC‡\C߿4v辡Wmop|^a&/ Z֥lb2-"A!OƮmFlprP1tzLЬR9Do 6jՙj c@tQ'id9_V{>8jT/W@t>EVf0VR r _#>,N2XHnTnҔA)yg/ ZJtsY9O?AUɠ54<omtnǭiE1.,R՚Cz[uK6MBɓ8yѥpy].ŷDtC#󔴕=_=~Ӯcad"GeZc[?mĚWȌ8'}7 ½GbٟFn!1#pdCz[K*pOp:K7c|$@_lݙSUh_*|a&HMK7䇇1Ir x4!4b7&Lb lQh!]<7x=V{m/\Z,G̽@[zHMcL6'^>5>g'7,vEh9 &bd ߥӰxn$g8h.4YRs=j7vgx'$x 6vFWP>c'{Cȸ&wyuBlYS eФ#gtJd×?}X$=*?.aRFXBW4hꙉ d!P5kn7_f[iY4&_a\Z K4dUyM%/jk 2PAs鬂EX>/OY&w{_kZg%t'V;Ef" G+jdz%_{)Bt.I[1fzP/##a:P>3,^sȟc3FwqCC*p*-e@|"!1>YѨ{n7NZGX< U&#eM3kFERdžuR~Ĉ Ee#(AN}V@|,a$j;wk_A 4}Ţ.4qdem[8WfJX"LӀJ)Ta *ߊ\y ls &:m;FoHXI(O:HM R= x.QdpO 5#[XdSm EC?#~:֐t72\gMG*c%Un.Dd-i[SuIqDrH)`!tbc8EҮ${6"ճv_+?L*? *Mct(ĿoїyGϱ9z,`2 =O{S>#rZWŎѐ,+I|aBh< ]|zs$jW Iςqh4'?+2}HYRsd3I\n0#R#2l&d>-rpAL%2=$(⣅$(.wAM:e_ !ES֩B!IIq-9ҽPHZ @pUYz%}9hFњȁLLuw +@׬/O96@ leţ^%QftC.#OtVIwk ƋȣG{Xfw-Q,x{zpf?>Ǒ\E4FiӶ#iOaBd~D)|P' *q/ݦ] Ci8gIHoZ($=NJhڵ+sCFYlH~4}_IojS1ҍ8RiPdU.}!?ж\:ިQ8j1wgJ;l2ɄuPĵhSk&MH_@dДn|44Ybzx%wH:3(E8<^y `#V} D](-mR* =eV< <Oۈǡh1&"'fG_\^ 3p!~okb[4~A^xPsY_~m$qI1̄懕UJ<}ẁg7jD&} SΙGK! CX4Kz"΋ߓWXYEkQDh" ͛ n_ئ9:sٹ FEq*(I..! TDKcC\ 7@7AQ̳KnEKjwצWUɒẻ,J+.r sos\]R`ΟݸC ^wS؊>[Zdt&iC9|,'z>;L@h2_bo:zpO~ m!i_YYh)hBK߶j 8Πuk@{ԀM6dG*d5工}įQ(zŢl!۠TǨk~~t<\"}^r dŢx?MHE4-5{<bpmpo<.fTȊA\J" )Ymۈ^iQW6_}r_?ː!3tJ}LSB䨦3MRJ?${ت`}40(d*7HGjZǕۜ( :._Gr۲Ӳ"}P*XtwtKV\6漌6F &/I ./Y eLi. ",hϞBjخ!%!!%!%%ĞzO#:A?BFail[Jhr^5J} !у8W_QG8H &\A r  ;O, % j |(D*U߉>5a3)|\}J'BU9Q,F lUT⻒L?Ԩћ"^noEL@Xt,q-L#nZMfA#gvݍh5KSދ-pZd@=p;Λ}ҿnO`$'e5{j?3td—+IGmœU2 Õ-PjI :j_siKd^ɉȱVݕ>i9hbҮfWQs 4۠tggX.S)U*0JMJYIy2iɉq%Nj Jn*V[`=~OoEWYxږo mY0>N0{a|Mեp*+NS8B"z E3lXJ@$jj?'XATgگkBt4ܲ%#j.eHbs>fzxP|:R(D|DH)m ?lF K4q ;$+&9ڂ҈Rx%\gZyog]&kC?!=/yWTB"P栤Wh3uѦuG4}ĘBݲ$mw'5tކ Pq8 94U rmޮVūB JP.F&A_tn֏ NyIjMC|=[ɓ9h`}{Q_B~I;N2w{nYIoJ-0 7F){N|m;a2X!:Zj@}~ ?"Fw@[Xc LmɡN^PE[*RTJP$J6-Wؒ樏*I])MhScw[#=4n&"%#h ;Oi H.04zG{%l|i$*Eb{%y+jSjf~# Cl *fӠQh :'aeXrBuKԝCO.dT|I=ct>6d%4q^o64ʷ(Wp-2Wf=TG 5!f3$o:o- a_giy^! ͪ2WS wzBzo @aV=D9IELo#Aq.';-&zd3@=xA85p\{? HGBGMᷰ[*vCs+Wϯm /~Qw.0O'7lS#[l$*kŸ7~poKa.,zkVy!?Xngi瞽RuC}zbNBtq-v:hvr+ L!yH8Ƕ}X2PG>$Ȁnpms u+' 440H"EȞb8e$/-#'rf 6_iU8A~Yx%imT(9tb8Ej5Ҥ-0 Ap,ZmDͯVVG65CT&+.C+1!Am\0p|ˌk v]=o {}1ՓP\8YǑZLjmïb v̸LMrV:gDzart4&AZ?w_6O Y"zy敭3|ޞs..EX%N|MD޳|o(R_@1v%^'sq07&sPꉖ f0=.TSei21D vly誙D|zbuvѶP=Mf;uS"M?bXF'E87A4gBs:nWrpX,$wVu[o=X Lj6^ѣKO.lN<տZl|~4, WjJtZhdZ\oZ`b$\ 3mk$.n+##""$J?i(ĿWh~ E2k-Zޚ.`IIr("$ ?'v<ocɓR3_DS\꒍p =^ Q:ֲ#_~^-l //_<{!DْR4 -ԕpr!/,($DTYn0sd݇GfOtL&z@4T+o'R*!D??[Y+TmS .)*.ί<~, 8,eߟ?ݠۥL=Av8! ,NM4+Z$`D.'J0 -D%dx=Iy1NF{ʭw@Nn# ‚5%nȓHog_Qq\\R.k܃xbks}葮=5zVPUl .\e.e|yhKҖvK F[=$h yb32!ټxLJQ$ctE,8: YP p.e6Wd8 X+DL$=k&FCt\{JgDοnMJ 01Sn_.qyyhE?pPs*z2̼S1 5!O;A&Kas>djר.E1̿:S%5e2.@YXK 䟕jmٴ\St=2zً.endstream endobj 232 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 5994 >> stream xY\SWa\^Ruj[+(U'l"!ž9a);,PqR5Vۆ:֪کoBį~x} (+J ͘nua0u pEQC;CjlLY ĥ2q®3}g:. rtxzJ qxT8aTiڴ𩞁!S';J}zxI¼v;Ixz9N7c8poK*% (j {7KVHW:{عZ5r=x]> }|FLE۳5iwLX8qіIM}Eާ>1ԇ0b5tQ518 Tŏ±N0'NPU$(q*54Ll*3g^Irt=|~a@Yr\b2Ң%~mIYrsс/EAi|D>wx&>mN|Fd1HSn`>N8A {On^\.yxlxo@ ~D0holj ^Jd%e="c8!5c?%zxP< NY\JBq;aAaRt+d7#kYDfd,ƒ>?Tf3e3]y.폾kug0E+  a# T!%Ո(/_stUn˃<_[qq_q2.2+[wKL#'ְ,w"yATQ=|'Gdl{cwôa琞|:~L5_՝):膉Ya a 38Udzd}7B#RCRivvA>sEܷMQMғ>qαRSErJ׵qR,@M%a: ƙy9<^~*ެS!1^0ao T=<6* *E J0RpJKK(rS|tJgғ!78Qt$I˼lp( 5Q](:7[̣'O9t*^k:1_XKcpVҌހ ď |ˑ9Jx ,փNPl6l3!A2 iYY&|VID9"$5(Ɔ&\J8mIФ(5;2Q-ȡe 3*ބd&DԄ23+t=]W0U[pZٌm xee$ b=UryGH9l;% uí`lY:ڬda22i/[ܙ{2[(xSbI*:wN(8Џ8 [E[Dq2Eb/|$,ݳm Od[ԶG,OzBC_<Ƴlw?>&Є> lš=ǼǮZWۢgѩQjNy( EQ[7lnB! RKmwmxSbydoұ!9\" `A(I%EGl]Kۿ=!FʧLQ*MI/z| ~,n: fl Rqނ4u\)t_ j;B?oV ]n9}^YꄂfuyFLM7YMQܪ#D VS@%>ɧl3Hk5,\"M>0PrT\4;/\!aϻzad{l?,1 &uyGoNpچ2oLc΂ec8}a$k ٘Q{󞅾wD*Vw)V fޠxRn?12\C |XjPЫ~CqI <8`ԣj#d |b-:#Ϩ.7.]hGIRt?= SPX{y[mnx7xе*v_u I#iŏRu*-k^,6(l~ [z5^]Y ӎ\uF?YxЃiO<q2|rJw(X] Nj6|3~: cٴp$Ciw :+Bbhg=ȩ#.V#zKdb3z:(.C? Tf= Jk3ͷ z;&])&&,VجTWJQQi>ɮؠ,eYGGK6p(W;˳|HK|C^yFGBLL-Ayjdza š0 [a]/< lp 9.&8/7oO]#mWO~KXTZ2rJ7"F]"G-ǂ"yeڄ !FQrMJR''V)%R3Iǹ CzZ*#3!T,!N=Vw耪1{Fdr"bb9ireX[R\TvD|t.4v9Ӎy!%[FP|QcA7Iz. IH3Yn#!p<}쏷|v*nၸhcK4%ڂ}\Ssmo-۫B}EZt½vKLDHxLtVBBxlZWKP~We Il*:2.DLJUzZ1Ȇr:L8X ߄}_P$cE|u:<"qbEDv3)ԶͺRh҂3~daBoWS m][_NLdet8u2,H-~&쪅{` zPI ڞ3hKqP Yy9# yyG*炘FL8,*0~{9OL<CNp\1.bE؊Q ƒZ. ` ,]*/MOG(N*z_{vNYh8%'}n2\e3ND}nӒr*U/? ̽M}{'aw'L" +RJV, /]Fܢ=Q!=$l0p&XqΡs%'0xL&᳛h~L+ /k 6?LC(9SktY`+ )K.×lYWm_ݼn]/7W]&K'4ڈ6zl]ˬ9Qgՙy9ц{lsq0C\Qx+rSUGH#ȧ<`gLc)-)PS3W"b,*J̔xmq~v&s˃lsq37qZG&P5 endstream endobj 233 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1018 >> stream x={LSw{]*cCǞ$[>2&RKֶPcPzJ ב2P!!S 1lb[۹s:,'99'9{TxEӴX_o'l„E\RH6~xs#)M,Fݬ+) Kii{v/ʵfFm3Rmj|QZ|BFjJOIlrK\ݼMg-峵R[21u_rSUk3Z(fbUPT CRQ)%ubCkQT5u.%-dkؠpG &w Ԃ=0'EU\2_|3c;A:0^QQxUHb##?`&']Őǂ^2AΊeBmH4-"4A>:PÞ] &WpndoCD>x|fa~]uF&|\VH!d/%[}MC+)n= $*U8?}lV#ݿ^3(v0vp[σ⫀/Oe2 . ,S N`= Pµ D nEP11H1G%v'}b5?~so279Pb7E?'?/˸@H9Hr6y9prpx?euu[4Q(cH:("Tt̀ ş@G=!~Hnc M*{VC71#rrO~cfeA⳸}}]]-G |,FcM6he })A2Ea4ĭ"/mol,`I `#q[FwVs4@{j2<8CC1=Dd&c`H 𲲳]BVuvɉv&% {|RxT+ҧ> stream xX TSW>19*g^0Um[ZGJ}@ H'`x@@ >Qizk;zumgW;Z[;Nkuܻu>x^ <_qqd>|6qqX6A$}cϬѳPZj5ZOEP&*>6SCj+ZF-VP+0j5NS!CɨT2KQIT /pr=>v׼nyK3L$sxĨFFQdzvytt߁4l71WsIH<XEhD9Xrr@/܋gaW%]Иk(L6!ʥkWh$8ҍf9߸=N߆Vm10FlOփÝ]Fa&qGnڜ+@i^6kvI~-1v5\sSvۍ y3xuz[?|Y%YȄ=)H`BVs7S_0_{x eh*i>;R[V*kY+<@>c$`4ڊCjV$=GE:t"iԜH *Zј&lv,8_m*1N0LQ9'ЖyL!OgAA`/(5WTL]Z_K=鮴Fa⁄j*gZAT|Q` F5Ց8'zޏWkM|t̺ZNI&2ʯp3R]jxY/DHV&R;rHb~nX.-bn^:3=ɻڹB<0J; )8|0F*BL8!ƽs:>Z5P8BMЩAɐPB@XB1 0gZeh"`;^n`ܴL: 7juI@cWlRgmV@ 97tb:!_Kt` :F'1ZKTJbLZ *+R~N 4VpÃآ 8rV2$#U&"`+ɷJ+Jj+ZH#%8mw뾾ZtJjt k5't`)<+HasBPV[Lg[*Z%e9]u&m&:txy\}B x}6yO)4[uU{I EU]Eg@lzOY#`Њ/]=f+ӔFvbd5C+[DYrRj~hPF6Ӏ:?73vC7)O?bt @]D_"WXBECEM[#Nsq$6M".-)V 1 ʱ1Y?KimT!Kϵv5k=z*rS0#g"Bdt)h3:@.-2yy*!Jkghm3FN?ݟ JnQsEcNJ!A8xo0.嶩o~=>Gqs Qԧ;ZgK;g᱘}2a+mTV ,@l" U Ni譛GU)= 8_ۍλnk4 c͇,Oo5m~"y۟1dWG-@w-{c~nKx -`I܎ˤ\ LҘ8qvE[)QsHCkn2g1}c[0=ݶh4b=y\4ɜĎ:6v̞ ?LEƲ"sAX/L2WBKնt1;kAsZgȀ3ha!.  (Es\W\./&P(2u/X7U7~e8օV_B.^YZY>l^`_qy[nP EڽEɨ2kmu9uDҰإYߋjI#ĚWfTv\.G~?]8.оfHdsԪdT1ٹel .k0*x[؋O0bq!GԔ~W8Jir|j }k^mQP+`DXX_)^AԸ !VskX<Eۋ{6PCy|HŠMJ%.ɍJw\[2#)_aNp{^xP/ryÃJ<.H5$oMȶx" æ!=+ ɼ- uyG_^8 /́/(< /~ܙ;$//=R]v*!y`G[Oiߺyu?f|.O_-#^."1dlBD+,+&>{/wb$䟭z#ѳgeCsY9XX `2Q$w3r|Rm9I 7} TP+zjMD ]uQ2\5z-?#4KJĘ4e.>:KuZ( 'sw؋.$#%%.R!0 0FCtCKL}Ahv喱zO(:x<aOmoФ:;5RcdFcϢgS{/qeB?G͹B'a47=Fpհ .}hqA$_*|a~Ff|[#f5>)Iendstream endobj 235 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 537 >> stream xkqǿnu(+K`~@ #DXPAГ8ܥRzmLywS nZQ#Q0q C{5~&Æ ws0/̋vC<9HGl512Fv6!$Bx_ⅹ9?cA01K ENS#6;󼏎|l2|cڋ(0K}:c4߱X"1Idd!DCȋl Mqbp'̦y̘yrc˭*-(zJP@"\΁Ր2@[W*,JbE7*G]_A-zMIS^1W^)YpWAiSoԢ%Ul0<*-pf SSRzžڄvs 2+T&Aᳱ`c.f*º;N˥|5MT;*t<]Q oA_k.e*,ח?9'һf@uXIϸcK"I6endstream endobj 236 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 637 >> stream x=_HSaƿ;f@)NED^hQAQ\qg6ێQLww:3vMe]G2}!U8Nm0^, q<_M Qb!lskpw="k1..z} wJF"KN::5!)~\T'+JgmY+8n|q 9_d nX>x`.E`&y\!+P32K r\ Ǹ=&Dn~2p^KW }f!9 ,`;CKThS܆0ÍGMCR&Y\$dh{@ɸ=93;[WfE?Υx=BOt|]M` FFHhppT!Ӑ = 8o}*˭ Jl~M.3,ll&fhm0vP4(5Eȝ񑨚 L2UcaQ$h^<5;Gendstream endobj 237 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 325 >> stream xcd`ab`ddds T~H3a!Sk7s7넾G ~"ȘW_PYQ`hii`d``ZXX('gT*hdX뗗%i(gd(((%*&s JKR|SRYt^}י1y#no~\~r]O9V=׋翛}}5۟'Wgq>7<_s.wt3\Xpso/)nxendstream endobj 238 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 440 >> stream xcd`ab`ddds 4T~H3a!cTnn?t ~O(ȘW_PYQ`hii`d``ZXX('gT*hdX뗗%i(gd(((%*ݦ&s JKR|SRl  ] L,tZ|EVvO3{5#D,qs'Ϛ4sB|ճ[ۚ~+_3]ws8̨b.ПS[DnY+_X\R]Q>f9&O9yS,>yF-usΚ1iifp/it\/b^;K:endstream endobj 239 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 427 >> stream x_ SFRM0800  %Computer Modern RomanComputer ModernbD`ZuƹR8Ay0C-)W7k.#,!#O&lpp;1(ӶݤߍWht|m^-_{pz/'76*! }06R2SQc`|ȋNjЧ΋F7|KvnVswliiwBoU  ? "endstream endobj 240 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1730 >> stream xT}TS~/ 7WK zhڍ/ WtǪҖRl.$|&(DH(!BjmV.vn :<{=;%|v윜n}>Ϗ(@J CQÒ\*t c$0F|[1関 *o 5c׭{b)$Q7'%9̙\`P9y\b[E$s9g&DRk xdg A`)xl`K`HH!Qߎ*.)Y3W$/mZ!C0 K }g/֥ۙ`GͤFvRU(l邽FXΪSĵso{2llx*=,Z1)WBc!BxTH%V'%8vb%"91bhE?^<58Bh lWX4DòԩᅎCG'7ڸ4͠cȤQg'VvZn|Hn:t*W X׵G+xK&f~c&2HDk$c(u15Fѳ}ЭފHݾzuoJ/,:hn煔7rVѰUHHOO5k|{꽕FCw۔f.1P?Dl0$o`:Cu][蝻O9}nhYBDR^P aS#uZm[h{FV?.A_7z9 qtǑmD!ϒGiI@%#(#Kĩ'닽gƱߑB#ɏDqV)Dk,)TXC2yͩDE ٍ|M37:2 ţ(@P4j^Q}>+]ls vBP߽nlqBxx}5 6VAsPkfIPBO5,8|Xjcbb1pCQendstream endobj 241 0 obj << /Filter /FlateDecode /Length 6003 >> stream x\[s7v~W`Cj&m܁*^7eR#hQY-zؿsAnM4ps8zoU8:~0?遢N^}z #tS5h: /uVoN5<V?$?!nU8~ v9>z)cRBBLIZ}@p. B QoWuSf*7-ѧݠ8F'R㚅LPt\(VnFLkrO7$:igZXȃ:u&RN)Y&*ۭQѨ7U1H%gZ:>a7!߹M$q?`ht^owjatv2`v$~g, G;_X:0ު7v ڶ91a}yA{h0knawdR ZonqA{$֚*3&ÎQ_@%dF)N 3ܖAo{ hQèͤ[`ޘզtV^/דOyzkKK[|X@xû)FyI2.xGSQa<}S88~eA*|Jdv ^LAbDL%ٟ?VPK@ol2D&)HI p %14_mcZYZ3 ti{ t0' 0_,2B݉늡QlV+ 4F~Y`&ga;{XL,Y_/D({ dagx3-MX<5Aٔ!<4QWs(3%>dy Z@a`sef \h gAq"T sy@!ٿ!kՆ _&^,Bql-JC] D#*\5lYWm@fhmmr{ o0w8䥡EB*ݍ`ѕ#*b9ѯ/Vlh0`ZVx"YbYfboh&Q<+?Sq( kC4KI;JAC`F >U΁KxSeKrWP[/=$-.siC֗a&ZA>6ٓ p0 }L:O |-c!pi;Pͯt!|L2W\w9p#JN$z_LulP Z[Xc,RTυ8 Dv ]Ra6{ږN1m U&tw"jC^ 1.:MtA]  )&r}{nj-YL^-R)!SxDOBw2{?D՟Ru_1HclES;LsvR0L7qY;WOTE*̌re'6k x~`ezG!yR4{ %NWsC7V!b3̤+zcOn)Bc,\]"U! m4 n"Fy~A4ڸR`jcsAdW?.qD7|D4 g41pElY\\# "YŹmT7E$ЙFژW"sD6e5LZ7KC,>k/H'4VHm#m5a薚7hČ0(ؽ6f}(W BPȔ7"Æ\l#7CN4^Đ[B͐| cctz܈%a_5o/[H'dԭ%/'2hzrr>,i27/H 7?}#]^XF[ \'94 / #>CVO5v-Bsy1"5>`%_ {} fsX]TNѼi+O=,j2r*: @d@|QXϩ<wms)N~w)E^(".w}G.͐ˀ+ M03? -CeuAhTxhr'i;ۋEO_}  w.?O4&Dޖ,< lGnQc"#I29itZK|8. kA(<154luk׏xi;_W+>= Ӈ`L? .5 pVwExX1؅YVzZ?ű8 G)+q$+25ŕ2BnuZ`UNcl>T]Am"*ms`d-#Mtɀ:.f{5i+ ̈N/odQ^i+ lOoN\1^}lnhʩn6Jߙ+k%oMXwiY1UѼףno]CnnX"6K{ SC~7"{<`,z<#ƶTh.gcm5aR4MDD.XX$)T#fq / лXE-8EPtO|V< %_Kc&7Gڻ4 x)n1Kd0E! ^32&X<"eu:̝*& nߡ檬>P)z@+<ā0'#d 0jOk?PW\Ph*r@PlyAahLKg\jXadCj'_V%z]qD Nl2|8"uӻ ,D\鶴խNrKۤ{nUa[\xD84]5 \C80~w[KyqLS9Lo?$$ t1KR u7ےR0@ڋ/6*]P>s[VtWl~:x_Qc qcJaY:Hx~ӥѺ&˞ F2r9Y=u+Mb)SΧZJ](檉_[O1CadL܌ ! ){[auxIxHh`wQM<* gkXR5NTDI.Oa| `7s)"71^#@(eU2C .:6ᤄFfszdꗼ7Ç{9wE"OAäAy :h敬c%8NA?wOG$хHCؤ!:TFpsw0)W\8 t;]ʴ `P;&g!ȄbMrr[V \Q*JE $z1`T'߉Xl Ň} Lmа)%]]{Ni SϧH]1G WɈ7ֺQH7!NX hsjϵ-JW Ǒ3\Ow#Dzl#}pI+!.{/LQY^*?s }}!x/zaFX%{e$-WFf.ٜx(} ?TStWXG{V"bgPJ!ėwKQ9Wsŀ+63X j",%.ȶ~,DM1%NRyESF݄`oQ @j\s'V,xeLT>/0 t;.oF=Nx/B{}nn,a۩eXğM/< C&#EhpwgeD8]_w7iVOvT$~E1"0փ4~L&lMV.2_ʇĥ#G̀8ϭleT@Z?2/*vm >9!1m"_ (ܪ'ex:l ,h7M'W5&|>nV˙@=*mI(?o-Tj!d> l-"x鋟fK?DZ2IGeEo01 nRB !?>> stream x\[sq~g*jV\d)&A3:A&C"OwLϜ]WJZ.fח9?Q /݃/Iw|@?Z;x })֣waY?*m=ǕUѨaZ+? )׫nAOH7|JaH%x`1~Wk1!T},(63oF/,5)6B\Vr9/N7\[D7lYuGgeE&0V²hLXql%-,(%h6ƍ.a?y!0y k!4x"4V1|v#mQǼA5(M V[=hg8Ú_=6 k YDbF4}OQ*5R fI.WFQG;)`E ' K00U÷eE #+P!YԘ _O!ܠ꟢R%'Eɉ\n|]؞qVq\/s/l%dS`(l>o=e1AZp8 ;M([gRft!f?3=k~Ss6e zR3P)+r;Y6A inAe@{ZZÞxKk]Ɛsh_Qs̀} NЌURxe 76pШɡBO e$?DsG )_{-,lvDY/r!xEίr>.9L:gkm BqVϑҲt X=z@Ā?f<I!ߖ53'shR]\6k#\3?=+سBql'aj1UE=hMn4tA`c$0͞5hp|[zPK썰6c]M9`7_2g`LDD}`r|Z 9K}#[SK6ouތR zLmcKN+A;pIb]MSB.4%t3f&1󪄻}VP p81V%aTgT:R}o `mM1')0ك.] 2t%̜.&=cMe YB}n7]gqXHXM]> J)vM>4f2nYŤt6JܾbAl(-8?mj9@1{O R T`2B7صu9C.YKeRkijYsR)r;6o $Qav*j@R ?qDj츏*.niFyJ$rd|L:Vܦ'*a5WEQ[$<(lR`KJ~:؂ SX[Ln|`_(Z'IE]6$=)̉q1 ጑H?؇ \/( $b?FSgB'Aޟf[6}'{͍fn/@ZU^8| *L[VYOAn(T!TIEQ`nAr Za9"*uxtg#*N:xߦ.DfB@ 1GO tGh;JUo`) +Z~Poj!? Bib`6p̥k3;QD1зEi +|$1L(Kz* uc_NrߏUwq Xm#1%kjpǝ .k$Z[OAW*!ǁ0j[Vkp_{6((Za1ǙSMlK0tefZ~nfdE:r/^HϜNIgQ}kM*k9rm$. S |uY K!x^Uvg : H8/`#͖Y=SyI!L >q(MH>~bm_5goQg>%OBAg+ baJ BOc]+|\ЈCo|*G)@&b>"VXBO hy_s9bbi s 0!֛ae1d([?vK,D81GhXYz A.A0iVw N^(O,`bfR>62ޯZ&g̭PFvg/ڔ8=999Nk4hoH3rOBDkэGL{}.|tWkk^vX%Cz6<>eG2J۟xb 1))(޶ ``5qeqqJKwUN0k`1-5,Vg@o gi)3:3'U_;9.H >%X+^\%ifҧ@,^ؾ`pbfa$mR3<+[=aB=,U>f͝nhTFtgj) tQ@̷91,{ Z( b(l-^>ƮvS{ekeEWFby<~Q'r,kJ5&TV  ^$5Lfc,[B&==T:>8c˶yy.8*Ev߲Ab&KcYH+:G -(O/`":zUNrݳlPb@5J91kQ0Fjm$ORC AR_wCR&?kp˨MBxS{ R{_NkZJҭBM>)zě;$n~SxDN҆B=3EܞVHEbdpAUafAޛ)W!HDt@~f4JeR!"v!]_"X(?3<~e0Tv*DL)iأvJr/_RBJ؞lhUAMU;v۸zkV;._MZ6F#P{'צKs;Jd E%a0R֘;: XwGKs`y+t&%M[ܙJqF~c _^0ߑTci9_vܓ?FNg31vMz ƫR⣲HvrMh~C HIjdNP1QtQN9M+'+8xUhnNV|()?Sտehj&a]ֿΌq>f&:׫ٿ.O73cvۙULTIy cfffpOYs$(7tZ?t^)OmW4'/s$;Y> stream x[[o$~#yIρ[`8I^ cͬVّFޗWd7YG ^NX,~u%Br!ϫۋ߾nq}x}&X+V^ʅ4*/owRHB.AuX|Ed/. ~1aq{ }pydwŷt}J. ^*RA)kg<Tޫ^ 0 *5H?_IMbMf$Dt46#z=i=:qu%܈NE:KP8[1-/qW?%8o1,t:H pzYkG&-U. [CAxMcV*G+3`C%- R*G#HTHԴQ,\I)|0i){8P^mo}5}+2dkzOLdt,Fُc8i]sS*< 3U^<yTgFոQ,_$K0 0VbKS1X:;0Fg=i;BUF J#hƝWQxܷTn85gvJS\{\C|ws/@fn^ SuŸ3 hۤc*$TTƸp4PѸJqqSYaa4RQ2*&3M^ARG'핂'ڇN_~L ;[gdaaWK0}zrjnFʆ썲 |>a{80'r $ ho6YaM#"${/5iDUkQ4©fي%A,.3@2P+p}rq*˗p»8 E\bYM.i"Gȃ :;"BHH߾ւi`H0ˬ0XD4^&^N0@ DTЭ!!kCf:7"xTHK˩'j+-`TDnd@ ߑboof~[:L /FU&J,@q#0"i U &-Ût(%T,N1NZ["GEWDj`vJ2 ^+mBӮuwĥ{ jTr0#C^N‰ 2a$Xi9xzF$XҙBRx04K]'',(dh#"WgR天98lhWe&{AF1`+3p↯n "V+r~V2ܲxxd*^ӧ8}feQU& HiNM3 < K":3`h=}av(᠐;lq%D})$w~$"8ƿpD%U] zq_vyx:[V߬w4cެv|Q}2-'͛##q~a{ږy!Oq&,s(.hKEhT+vP̂$ 1SܲU$,I]ؕHq$Wܰ-PßYXtp!_s"hZ@a])P#HKX\ ߳ T)e e R*["'!)0M<7[NCw0et7FJ, >DiRғHGʜw ѱkd]Jr%F)7py[AjQ(!)%;:ОBB`eJlc1b0\Kߪ T+e.0Drt{Fc((9[ߤa(̹d)D8+Q1$<|:o#CKRbBn:m: ;|0h=ӟ#elzj7.~LT1.t(=0ƒv)n4VZ":W#4 CM@5[#=rH-A:-^F8cĚC oud8RSc3A> % h Ap;,1d*wUsǓ.kPTӪ7=*?찍M͢*IcbF$y_&[1 Pߣ='iSo /Lt,F A;Ta(7Mxz 0UI[յ%uMGi 7 nSǖQT]W#:_ϫ9kxw(9PT>rnl}>o1ԓ*`Yg_g淍4cnHk"䄄\$|XȺ9k\BF_uEWU{޳dfɜ~%7`#i% LF&* p8ja|Cz „ܕ)aڴW^pãalOJ:j@P_.*)ZB-*~dƣt'Z C8~:?%4Poix̾HU8l;<4oJjEQw³Ѝ%ZX4J}גc9ԂPRw(.6= e30‘91ؠs{^߳HW6WVpR`Sf&R5&(+;U*D=(AAC8]zP#E8v ƪPr\FmQrB]ESwP[Jvk}Rei;0`Ƅc%]W=TRID.ȯbc3sY_Œ)'y޼uZA+?arͰÔ4v(tH-{sb%*U#-嚹ItQ!r.6*Ǜm8Q '掫 ([۹Gȉ{S:K9QW4Jxjf-(^+8q#yY*޿0@w~c =W ?l%$ŹG*?? :t^7'x\Ҿjd EXƞ)c1h=fJ٘c!|ԅH-ZgwxG!l2x.cz@EI?_Z!P+nDu~ՠ4x6kx}v4}!ctes}O_-.⾱̺ t٪zJ)Ͽ3)nूhk+ZxkF8sjz/?m]yw ]n)MjpO@zwN4jU~c)K]|.;4##"|RQlzh^Rs9єX`[$ ޯPwiT&5%ކK+b&FQNOR_AF@}8x!7߳M]+LLR.7F5 5l8!5,;U+B߅kVKM!}6nױ경jl{bDA=2fe(y⪎L|@aRƔlmخ+yq\ſ_;i_t T,b|CxT+Ş7D7iQ˻m*O]7mBFc7^ 9/ŧi݈҄;o=Y(U|jC,_+z\I"%8UXy 6=v7V3#S';'Fq5O^> stream xXyXSgֿVVⅤh ںo/TdS "U6Y&$[T;%Na|o4qw~#\7$PecZʊĄOC%iA㥖sn(}䜋_v!9;ܝKð<^~z?):xpLXjc-Je&KcRgΜ)ޘ)"^,I&??%-+%qjD#/  I$ɑ4lY8@%IHxc?Ąhi41!3q8E&$Q8LE)ȄTI85Q,MO\cRŲD| ~U'D%Keb|c%6S"S-Hcqb NJxYj4!E*HܳQ"#3X,Yj5!-Ek}8Y/IDH,>nUI|g̊qjbKr#Ŗ'Iyh/A.HXH6)9/5mi3%A1qҕ6oY=aSN>c9sxbD|L#bJ$Vc0 ‡XM!pbXL#>'K O,%SD$f O !“"J|Dx@&'A,Z…H4R~u^|e:I jMT{0~@V{U~bȁ 0Y{LhO br azzxFx6xkWqGӁS`Ͱ`0ӌFye 'P*EiCMISw 񖣜bIn` *$dp{O\j2Jڨ&-'xQղtyܙb,jb@_X҃jPQkh.M hir 0' 4f'p8{NRȩ sHd@yNd&CrP?y+eKE50Y?FԴ~{ 5\LS rC"}[p]4<.,^PR4JXhה7Ԫ9}俹.2h4 AH8w/z ClHcQ1Йk Oځ?A+d̟ϯ>QSN˧bTTك>ơD4[͊;rKeXZްTSUT"?[DϡWΡ;@}Ac^U]S]]e,ʩagj L}Y&εM! U]^贋QrPBcyCHWIĴtg^ iul \#[˳Lv0QT!7bU҆6,h0܂bڐ7%xAZuJC.۔K~蔢Ys[C^M:ȢC;+dF14ZKimo?s Y%L e9e 0f")h5"E7jJMl]O3" aoʪ-lJT+T=vߙ_Z#XqVm$P̚CpGi%i 7Z =L<89Ei*LFn|;PhGICK~:qv{hOue9+"J,EZ m&Lj?98 S[RN"W*~*TY;p[AV^w _.zڮSWE]52PƎLP9;8ofJA͆72XXs=0A[ aG)B#Bbd,=?mJc&|f(0{< п\-JL$`h՗a 4$i"t3x 31XFf!',$b NПEo &b0!@!Tc'ZN`VTu)-]SUYcP fRC4}07P0^,ϩ?L{a{}cӞs{go*? ڡ\4#nLsdas1f rԽb7.G cO(dbُ/?Gu9 )ՅhUYzrF~4+p}jK X㉦:+DS(8Silbs29n脆N/~%wa6j vxObSۜ֒w=FIaʮϭNỉGFonHV$.Ҩ,U\PPP\b%EY~?~ߩC/]m[On?`j}r|~u`Er9SUN`o߻`[nVp&LJMU5X؄|gq3e̼HK,T|jx g&H SɈoYR{s}:R?s8wDq7YE3`\os2v@qn%5*o5bXaHIVY{6ǵy M }׾ݭNK-#٣MޙZ44={ݑ6X;9xPkAx4Ș𵢼n i`ǩqz^zn䮾e .l]Gl]BdI0rV d8L6vQG3׍/u8sgKưO졡+hГ6G˷!r91tzypb]S}=75T6cҶ囖D)L=߭Ud[q TAPdᵡRWmkiϛv`%03 ̌FG gwuO4}?_]([Vrh9n̕}A­||]HhjdGX6z^nQuwKQc7j 3nwM L J.tAQniEo<k]En@!gb9Ӗ$\éc}G7n)ʊ @W}v%v~h8z 3 _~C8!|/k hra9x'(XOfeS|Ea7XwJw[oLTD)+@ʴVatD,29BAXt.*״uۚ|$[G #zCL.L_ 8j~lL ;FP*p UUUj$3'KgA14r;;;U.^53XcZ:jZ;0PNJ6ܡ֕Y Om\;vU(Rh!J}YQj}Q0(Jhe IIST}WdʴU4ֶl?xo>/4:̡g\ eUEbܥS3~62=K}Νyx?yA%UbLZ74MPenh8..pttܓA؋*=vXlD_7_y''9~l5qSMd2QGVVendstream endobj 245 0 obj << /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 246 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2254 >> stream xVkTTޛaQ[t.yCEhJ7{3(!c0`(E2"*۴r*j[ǎZGWj#Jw߸!ُYkf^y2A ˲|Rq{cAXT{S#Cc3hx >(XP`K2.2fgf4Q+Fi&Ek&hfW4zSVFD70i&gL_),,g0f<*ZSm03VjL Mq$CSQlXacF(צ>sN7RO}+n|yy gF0#(f430LL`Ld3Fd!0F.Ϟ U T,TGU+8"B[D<{ $Y ܛ v?#߷~m 2(Hq} m{P/ 0TT˵F`#%Uq\]hɏ:rLIsrC Wx3X;%`O\0@\Y {yARI;Y$.>fφ6.RIiuuhn8Ϯu|"aZjtCz'n(PMIьS!qd8y(2 8y ÐV+ltKH4`eV{'*O]\|RB^uTA-npVy< 8X&z|]Zc*FS.I4>ER$ QM4Ozb "~iYKx70r!ᎏzq#0ݢ3Q$i X8ݮNE݁-znU?F;0ñ:BV-gΫQ`So8y\a脛$=𷷾=-gZcTCI'@iX"J/K\]90f\?΃ +VY0'_\a9P;?oW:|_B-TP(J}A"K\}$i@Y.\AK6ɴ/τm:2AC錔A0gyR! Eb4ADlz<ǚ"{s.>WtiW+6;$ȟ8yl`cu'DjMu݅4^ZG"ټJ,=PIyIJމ,*K}Xm*j{=w(g'R0>p{=eNt-ާ4 1p1|2$$5DihP*#Y0ggK.+s׎}} g{\Y~dwM7f{VEQ׎ In__A&:IPRܧ.+]"@3aQ5vR]%<܊mR?t;j{zyC~IV (4iɦ=FY?8@s68/Ze6l/Y/iaZmI?l@8"!%1DKiQ[xsĨ ]8zǥdP z­nqёt}GmKWN۷鮩d޶c<u (U9vA]03nYU|f>ck-6*tOofrVHX\[0 ctU;U:ڔE倐OP<+>nEd7II*gϨz$>\& #$2LF0,B:zT*w//z쐣:(z/t!endstream endobj 247 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 5911 >> stream xY xSeM *@#νeMQE,.6M4}4{tMWB -[A,EeGQRnK[Ftqf><>{{^6k0tͦUsf:;}zwt&⮷/Fq`Ƨ4( NR.M'gM4gy3^={AВ􄨈51IASb2s)\999"3fǽ6mFPNBf|І7SS2F$ ~Yߖ& 2c֤҃FǤXKRH]*\<͌+VeΉE&/zmL캸 7 6'%𱙳X`$:dz3)gYXSYYX[XY!X[YoBYKY3YXXXYYϳd`adbZz2m\Z|Vk<+z5r7 [5#|;=U}D Dđ'zmΟO 13 8N^q /{=􏿻MZ>1x6we%Tc _d44:Zm4iIbp(@T8䴕}",ɐˤ :H~c쁽aʋ ZtTxvF1ŠQdDU3f^Rm2lwIMGqf$*HB6!-hɮe5B(lURkPp!>޶`{TIh 8' ցT׻Md# E&֊4bj1s\ՠˬ2Kۈ|ύyxo~q_{y~m@poW$}K1\$(!?O֝c$s+aPᩇ<-4߿/Jb۠BqD4ʮ6 b'I`vZbӦ2F{C9^3Yw% LdL>3?K2fh4Z{7HîuYTʦaۀەa8}Ez3*שAVH$P3bNF$ Alx.J -YČ~k>^<&Esaů>RZZWQ_VD1[ݷ3Z|Hڞh#J@YhŜ11Ľ~5. ,mòW|bfvVNH6)h3 yP-EX)t*R;FCyS fH2QB r{mm}H>EeB]6t)(*jXlq[`PҠSS̓07[ zE{ȪХ.̂i78ȁyzc'}&hJIL+5Q`Օ{Juv$%&eǣ+E7Zv[ XACԅ}.>㞷 4b|H5CWŬ0 V7þetLEsyܿЊ-{ V+a]pH͉EPbJ}E`(r0C~u{7'јww\p wa3!29k阘B܅KTdy}fD1OMVY lPPT Dj! ">Tn(kS=TGgR\~h_ 9jjP=wS2!/{x<H8deBGtsAWX$"`sok/R*S TG=♩AJH mZ\(Җ-⥞[kT U.Oy`64"%Eo'%Cu8/…1.HCEA6"!-.[vctu?PBJgB̢ (vD>[S@8`(|ٽ%'ќ#;GIL,(J&()uSČ,;tTjv=$:Issa1\)j:,oo N@MeTPj vw>ϫxֹpO CoX C_h7,6R[S]8uW}J1t9hV/k?^)Sl[Ç'>|JZ*L{PiH!$X2R;e8R)nAߟ9fyh]D2AMDRx<`Z^8XqYx; Cq,j{]:V]r ]+q@Gop)(9[LٔM$'Noff\ʠ/5Qw̨ XJIkd;ū_ -d@^IV ..\ݑupDVSC(Ք rk p6t׿sP 0Plx /pɾ9CӴ2D|Jrhrj?Ekßױ FY_fI$~^zbGm{v#.erB;{gc_>2 P;1#Q~b#sH"{8iV$/33ۗˉ\&uZ;R)~B}uf]@l8v)YDؑ+Vm iOxΗ?K܋C~ ^7m8\txjTq]}hC\]_n;ֽ!gU@O~IPhhZ |AΞ??7N+`޻*_+e(In,LFoέ3sO;%ca:BFZ_?Q9z)歹 zno3/pKp7XȒ6pUV^hl}*7t{B8ؒcK.-֪چ;߁ ]{@ź5Ժ N)_(f[._f˯*.s"Wki MM^OlW'':'gqQE?FsLfTrJh pQ&x W_Č&o?<*C,nGxD[(Hvh$ " hjљ hTKmL$o3(c Tx.ܧ"1ɓމt\@x"|늛[sun\ ;13i-\E33d)J< Q ]}M/"P{3y9VI0'5RQRP'SY l"u/jw 9=ΰ!-=Bʬu\#|,!qdA1{ѳ/,^N 7`9 |7 abtJZ Zʤ1[t8ŭwUAO1iMTGj 2%ԆW^~ +JMIKGieZ9#x1Ǫ ;Ւ5xґt2|R`,7hLX%oD]Ǭ6eEE`4^o;&4T!-j(B̙[ /b `q1cC۟J| ZH5[&PO|xPΝo `3ЮVlX%hJ Jo=np^<[E+.UWV[&Tz(߶UTU{O:Ui:Ç.%lKxDTaX_Lq6 7 o?oM=M-_MM&7߼3yBY 3n0Ƣa?}7>G u=VY_[L)97Zj-L[.HAƿ-k{і_o9gz.[]!)w Kgw_o7WXkW2R-1aݼ wrʼx-gjJE6zKLHf`N!~nQaw U2/2sy=a2) **}o(R(Ƹhou*9#_# z~}p;A[m8ՅWE*${/4g]>ڇ˼rIsЌyG?)Gn}y@#XL]1w^@ jnDziHV*75C퇄g^7u&ȈY>O聢8 lֆ86zFt7w %^R!*.Fے@e}?ԟ ?fh UĴOs#{W-LMH$e4xJ>2|^娑nۨQ,&endstream endobj 248 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3359 >> stream xWkx癕C6*B[%lҐԴ@66elKe4F۲lc2cB Ę&@CK&i4~MnGuy#l \.UuU+/{fViĮU@̾{W 棒\WjcB_dik,+xxʵWjJ[eUzhN]Lo,XB^bEcc⪺G.+h+ vՕ6P<]\UV0B]Uu`V[RӔWdojTo~Ӗ g_G-ɶʞ-=(%[*[&(/$,{Rbo(<|9#Y>FE6S||M1G=4?RKu<\} r-w)>?&Ňr񶫊/hKnjovAg|OPe.S + Xg Ba;6Mnʝhrzn!Iu^E35͢UH2 JmfMv0paMdĹ! sem5?GM yF.5h?U0 q"j<Et1V_-8w0y[@9RT.5vhC͌@0`}p—a8Ee䣐X/egrhHo~'9VR3DX"'SpݗBdz}M#lB+׮OOvbI6UPIP+ d(xA-VN ΠeSc8#y ,V08 i 1HDlвBt P1m<@wЃwvaJv؍Fyw6VGzVU76I@tWl^)2Q< fms6=lj_)TRc=f "@'WR#4SJHi:`(ii F% r@Qۻ}ҿ="͠o!([ .,\C+GV{B֒mYv4_Z"-^zyӧ({E;tN0۠1}jO|  s%Q6ϻsi$Rw.O[9]J:Ct;"o⛐Ag39zLf,*f<%#@|漂Ƹ=dGX (_wU>]MypB;92Ҩ'F|&+p fn#%OzjNQQixǗ=}`<‥h z\h?p{CƺΠ„Ox2BHV %D ;Y*y(ېP4u_J7 80cyi6ΗƔEo,i*}kr KWQRo E$"5'bat\k7)ue툁 7ɋKTϓ]5BhaN|v~: 롖r(  nhct1zgTu^N[ܯ#WVc_''}mTr: 9\m:Ě $p$)D! Th--&o8kg{ZZ$ݻjlh_DyWz.rI ~ygS^9 j|2뛡$&CoʑXg(>$y6Md:K)njJT nKQ/!8.Lj)ǡhMy՚'6UmgU:q.{4Cw<rҔ-Jh#Lc3iuTx_R~B<"SMZN[C+`TJ %W߸|l$LLÖC=v͒{N"DZE[;K 7'{m=rk ƣF-{MFJ=O|zd7Z׹^ěSLlPeS}t0V \9i#FiMϔ m ?K~<n:>!@o=ӉtDSL=M9nqLl|4ƈ>yh:jo|$5~z\'rTv}uuM0VP>\{37;G D4j̕@8[,|՟ʧ|uc7QX'#uńzb b!9\ϓrYҼu7Q _1Z-")hAwIϲa'g7xvJ+lk|\ksh[S+2vZФ"["i\$hdsȈҰ\ ~ |'p';SꩡגqиPGE4u0N6ic>uc6.0hKhSx.0m-u ST l ӛՖ4yS@뀚Z3p5A;[1TR\f*p,|_9ɟLQďE;|bNg< t ^AjŮdΛdӓ퇀'ѳA*dI:Ѕo-]hie՝)lākD*!"vJ{i&'KV 5XB[ǜ8Hd9ST@(Q:yԚo4nV'%&%v?ZnVq}vC}!G 7W&Hendstream endobj 249 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1448 >> stream x]yPSG%'B<6 XAAp(P gI @1 " QpXQ:(QA(UugYٝ~wIB`E$i-[1$YVWJ6KRV8K:@$4HRQ Ӥek :K{GҪcҵ ]*EE4\V鲥.~ :]{VV"eFu4KKWPi3U@MNHQIй}Yd J+]UiS ١SQůWGl‡b $#"b1JL{&, I?2$2rJFRszPdqCyz3Yم4֏ я!ZMt?zd>M ʌ2mm_[Rba F pQ+ `-6 E\a=xE4f8 O\`ؾ{8 /ee`vHlmV$">.|4g{`m#\Y<-vBxSI'vJ2j/C@?7X-[}&M36tLC]%t5ƞK;<ȶèӋ*ϴUwE0s?l ?R 㦱ԉ>/ { :'*OsLIyI1.t+n"zAw=.V݃m j1ިlF.H"l@ 蓾/KvE;V35[U-k/aIٕ dz Ok,sO{1y<_qݸ%Q],v$Lզ7ޒy!7 9~f8OKOm]Ss}:( 4,j,z$/Gy:a;ۻu%{D!ǥ( s=zvu;ÿy; cfOLCa ۙ;J}41W<* T%E?Ԫm(Yv`[c(V޽\Rl1/͏gJ=VqO\oDK0(Dߕ JQDdqOsT#apaxAbb#{Ƃhcp]͉Xܗ\"69g8C}x[X/a;G}|f-wA0Hq*q6jxl\]K Myg 뵆jQ4<-{ow#8zV3$[o$׆sRpPs 51[_=l,~<)aUW ft~ z_ i~B94['e79/ݺH͆8qzIH*^(У?ĸZQɫ X ]66o턮R[ہ#v/C"endstream endobj 250 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 5366 >> stream xX T׶4Jt# 1GMjD<:1;2 %N8EMqF_|I4&$&1SAMjA71d2n ip4_ݫBfM#l=Pكp`F.D- =nڬY3'Mwte07<3ngog$cݺ8s##CgO33(bJH߼ b"FG- [kw)}/BB"}V3 0=dӢŮK"FF"~k֭8m '7g5k8) 3YbV31f,cϬc1f#3qcf,f0[Wf Ƽü`1N3Yd0Vy5c2Ø X2gbƌI`~'_̜uW- ?\~,-- zg+W9d*֪K-|8tւflIc "ڋҲ2YK!$$xԴ8&=A:h5ۨ?i&85,F JYz4r27Lf} m _BC‰F %$춢>3Z!K/d$+KaeC#%ˡAJR/s?oh7iZ0.2YjWGHwʥXis0ToȲʅYOf~Yjݣ!IHj YdCF&DK3789 '6r eVFbVY4Mp}i; 9,!6BR-4o4o_mg)JoFYy\j`M}Jf[2q6y)I>Y. NWtmp_ Sl ܶe]+Τj֣Yw!AFetx2 =DW S<&*c!Nfj\t|FmZJA%8z}M-Mݎ_ hΑ/"QAnFNSܽQ?*u]{9RW|v77E.]*ExTߠ1tz~zyd >\ SwJAm 3U9o/O6uV7qeMۅyˊ@4@2d"iHyV |)UOE_DaC/q=!}"lѕx4+x/&rgEn:2#d %SHH8 Һfd(g˒Cè_$⪣`p: - +섭Wdˊ2U+4JɄ2sCuGck ùub4xWP.֐2v$R)-|[J .Vf!/gP-NLmfL ș7ln6iev.ɡ#YNɸX?s.jt}Z}^ ʰjfkAkZr #Mnp4VGD:ϛ+:S;7<ʋ7d, l sIܡGY誆a>`I >*=#jt&>f5p5]fN"%+ \W%pb Z}jVAve)4"Bc}Ew/^p&AͲF_\p{IB.m4/k҅t[~3G+ q:mb2lXw*[*qа_)QY B?+_jCI5IIE;VI0.Ӆh"4Z nR T[ jSW3ghg%Qau1E`[{ N"6^fY^߼P7PYfDEA$CdF"62 P8eClZ3`I]D9bU`n3W)V>D &lWR"ni[~ 2m2`NVVxՌdqq^'os5M#ba-\`Pˏ>7\fզtJq%NNc2lj۞? ڌ]-k#uh{ZuФo-?V\|?ޟĿC2Jcci@}<[f,!'O9IAuNh I{4+oik;0Ĝ:C-٧XT 2ʕTo]V8n|O=lՂ.h:2 ;q8a0LRQNqw7bU+q1K֊_0 3z{;\Kxg6xgX& ՔcÏ%SWn(k3)·2akZ]WYs^e^u{v3!;ABDK4,ݻ]]q4;uW$ߞ0{on>lEsX糁 %;:._RUև=KyShE?H%~{Zv?K2XkZ1'ڡקЈplrEfpRGSsZ3UFVZlZNqFZJ=dm@?I..lp"J&|6h]rN Ur3U[.g(XoβX+cQ ..2ĵNC+ZcoVpu_G[Z'y֊ے4] ck m2Rڗ6mv$')m_ӱhҨeǶG:7ק,WF].|O)QY _zvG#@=(.\JTtĤ;-)}q+6ik?DGnRb UuxKVj,2c%K]V♸rmдeRU 4oo46YD2Jߠ X~Ɵo_W>}m7e OY{;uztKeud=Iqp@yw5}tXAu5큵=Cݧ=Y.J1t?/(%W&K'Di{H%Qz5Wc 35טu=cxռ7hc []aotEՌ&|ܜd|FMZ6"m=1yuhIQ=`>l<VBmݐKEکJ(1d):fRE JHވo{+_e/v$1E+qVrV8my{sk*#2B! ijiyu$Af9WSvq'7h(6RDQH{&W7mJݷnatr)Ȯ5ա]z,:eF;;:[W-լ?ɣ𓒒lCQ}Oˮ_6-"Áu=Ĝ:'\//ݧq?pHc!*??tsX`pᆱ\rl',QΙ{ەG3߾v0eƝBJ2'v<~<3v{gzm+!F|n*;U "ŁKꄀxmK  AeYK<Zjϱ:`1I&&È8ļ<{ Ώç\ܘ*k _6vԤmQv,<^l[CC3E|Rψ#h0H(3QL E(>~;=(߻fB.Od%xQ7ExB.N8|ˤ"iun+/,b> stream xeoLuڂl\ټ;[Y2h05!e t(W:ڣZR-' BdN7_ FL&2w-L4'y<}`H$`nP(ސ50ȇkj {}0lv1a`ef6q6UbЪMBMj =fAOᲗI8yfkQGZ̖@eT;&[ml-l$ނ+:AP6 A])z:5A"|Q ܤT8sۡk)M,`zrtA3hO*d{B:ԘL{Q:ft}n%_Ti3sLzc,;>|WkD'}*@Q TC_?RJ\OWVY {^"0Z4r Vezl'H1R$g>K^Mu_6T(fI ;|FoPACIwKbz]c=j> stream xMmh[u5K1M1t]]:]u霂vSpbs6YN[ӗĥ$U?L2P2"ȴ_6EnpN]Apx8,c20,6<}bO}<@Z 9%X4VG5lO7 ϲɳO._DS/ΡvqOooKX`<_ yd=#CIN'ݿ{w2%&_<.ťXB#aY< Ib菄ò"^)zbR8(^áˑ7=,70fqljcVUX`sN11v;[1X ]$c}S6,kYΨNAqz 6\z@@. :qk#Z~EFͫ*IB6P(+qڝfjM~O]ϝtN9|B׌Pi{q\L&f jL.6F:hn^,IW^[.( dYxw^Uur׾t V/={x`^ꙛY؈?cwghC(1~v#gY5ﴀ 9dms3vL)EO,~7xq?Fh R2pɇwڼv{-e;lƾ.W`=P0-s7PՑbO={8}X':-rX҉ -PPrS%zo&"2=st\TQm6UẄ($*@|TÐqؒeNrCR䰘R}EUW# vљ0endstream endobj 253 0 obj << /Filter /FlateDecode /Length 176 >> stream x]O Kå^y8]s=[hcQrxⷪw>hy2Yendstream endobj 254 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 451 >> stream xcd`ab`ddds 4T~H3a!]O/nn?|g ~O/ȘW_PYQ`hii`d``ZXX('gT*hdX뗗%i(gd(((%*ݦ&s JKR|SRrKF00003110`Xr K͢[?:~ T-4ۏ5?~dN7{) r.8[cz`X[*Y;a放iU]1cBni3̞';{X*0~gi{݋tWyV]]\{20ǰxendstream endobj 255 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1054 >> stream xukhU߷ZbۨLFEhUimzْ4m\skK4iTlZVE/E2A& Ɣp7Tp?P4MOWV䯇2茸 ٮl(@Cp1n n|xtP_OVvR.*˪ʡNyYB۫T+Sj #j/t2ZS?RO+kPjC#.Y]yB7WvCE kO64Saz?(g.gˀßsxrp's [lM`IqR6Y%v㐔l1b9gW7}aۃ_P^k9vpoH yy^1ayIWaHdaGA&$ 8 Nf?ٵic#d׬.’]s!{vohVm3m7ԭϟދ}"+h|6 [ EM?_L`?M[q%'ϕOt!os&|u_?e^)!]XrK3 x))`Y[bvb1au̓giSuaE pZ0o}d:vW/-f `NQWR(Z,z a R$endstream endobj 256 0 obj << /Filter /FlateDecode /Length 6382 >> stream x]K$qvÄ'/:ueRP;$e9,WH>)l]zgB& ]Jva5 Hd~j'&O?Vݛ+zu%ӯ򯛇?>Jr'ϯrT;g=y/b1/@^U~^?\o4ŕ2^L1LU!'xe~r\!iJ1Y3/\ ę\RX_T@蹵B̃󪀵&]ayYάH0Q$~Alz ިe)1(2j΅y+JtXqg-R>&a+]zG4'x٫OP_8'Yס0#hv%'%/}@.X\,NRۈc:Fct09$,H3Q'-|(Lc8[7 sr0 wX 0;=vj=bMA&@$UC?Ji-:;ҷUkxQd*^e BH:6{-~ٗ_$ n*{TIidؿuu2:M@)K_`@,C\+T5P% *( 0/e @,nue ~ 0"!Oq^j?+%΀$LKlD^")"0Ӡ}Ԍ' c͗iNnF#g|Pv$OJ 'q 6랟]. AG$h5tYGZprv׉ZKwaKnc?OoyGABgbFi*d0&[?[YŸu!xuJO 1(N6?)(J\pu.TQ&s,iA(d9: Xl~׋"L ``mheIr6.71nw$z}h𴷏uWҞ!VPG/Ev|_',$^ Y-shn!#Z ;a5߯*u(td|>;L913[Z ~͵uǂh-jÌ " <$[ rm p3`P6y4 ^})tG _a~CyO ga^̏~{;;i+_6VncxO\3(m[*}uO.r-#"kן̳l,@9F~ HW}ɏq}>oJPrj.mMI,T?Fo}Nw~::_|Pd$݁PP@;Z r(mj`/M>SNʺ蕥EkJ`#f=8 }9C1(R* v5DŽa)@b2k9X>De#v" 7ս7d&֙ZU-kHIҭTtPz<x%"QޡTH$$ ɟ+s#sB 잠)qJ"_20l#g5)B0k!s+djM {},[X leW𯉷~L $[Pӭ Z9|Kf5,s`aR5d 9O=Hʱ5 e[?*Exspj\B$swmdz̑>a+rV~D7qfI U0/i@5ä/S˽R=s*)ʝwWڃ0?jT`JL쀝@ʍr5.Hj_yf֩:S |AaZ:DL/Rc,$LfXzj&CK+2L H6%4xz&ZFTU T4>X"u !45m8)#]pj3x##̜`.4EW^A[(XNSs+oOA5 ¬$L; (S2Z|ⳮE|VemI<(KJ[^1H,o2O~ րfHY'؉(;\@5R'H|ڹs|Ka[VS,v҈W͖ "U *٘HC#lwn9ٓ2WJNʐ+Ih"҅u+#@K ;F rb%Yҋ*88#_Z3sJJ4YHNg5 vK҂P !Us=}SWIO KE7j26i0vW#XMT3E"r?Hw>xQHT&oQhՙ(4(ӂ囲:)in/ёRa mX7 j@Zq"gD2b:bs|~,P{ *{9۶-`f)Vq ku!/VLv1s$:HLA0urCLؘG7&"C1ӊ?hrAj%Ft˪`k:%/sL800ϸr:yְoh}UOv!w4YƋ\RrK PǣAi O.m~neYS[К5ж}J#\<վ{$=(рNÂaU)Iz@]eEKdyΌq"&>ei"BR7!#B}ũ?[S{ Ǧ}0#hM!q\^UV*lSjSEm])oX ӈ*|todOF-6au0t;)6'2״<ؒ*9H:)ľ΅M'U;|OV)do[Ob')wҬӻ)krG!9#i&쬾ymécj*q\)WCsOSR ux#@ 6 dX,MS+<2-]S\4oz㘾}Y-8<:eRkSdLvOD6~WK`ݞ78<>ӔTy>D>3'=U/kg>lwi;zh~"JvT4miݛźAҕbʝ*Z% EvɪQxD;*9c.Ow^eǤ?hєq))KI~EϜ-M" !K FS/ Q$鯶Vn\ncB [۱$"3[inzP%@y4W^CNQ,3WЬhcNl*d0d^:Y# 1|.V n7nS,^Z!VUZ1 jUjNW8i_~nX>Kap@įKifO'b _Im7쵝.pdsMȸNS'xAk2L.Rܚ#4߇'kgd9nfM@pU‹G*ݪ-T6|!ț0|zS. fx]<ߝUH@T$oeӑˀ.ƭ B$Jzs(B9L')8;7K6E6%um)Rv5+=0K:lXpaq ʦk Fڽ63PLaI>֌D`E885=ߦ ҹι&Q;y6yT2me-2S=8%68v)H^wfK0]VE's*ڇNZ0&zg uHkJ@N3=AA]iuIؼwyQ::zkn}*ewܛH!G#s̖x6%T/,e@l~EˊLUA@ʮ\M=ܝVӦTF:}jןa[[_b6 mHLxO*F06Af@k c, A}y<;c4'TitWK4kw6b*+_4b?t -{`t=,|j`O.GT SIgb),|k T,Ɩ\v]C(yRUAsjlmeۺ1r߽:bx2 =w p:ƅT7ޱ-V*uޥoA{` PNqcuyj۰P/ٓ8p KĝcaYR,7ԔyB/VgP$Z )]MjNKht܂PʼnD/f(-vg3Tjtz^P0nE0|b8W|0|sY!TR1!ryzŽxM.^()Yi+fiщX cty(ϫ~Bba#1wZjZiWttb% YB|Vd4^koTpendstream endobj 257 0 obj << /Filter /FlateDecode /Length 161 >> stream x]O0 cA,ta@p' aߗ,N>˶ul#GpƲ4% @eQV-Ɲ剓B'X d6~Wgu=UiB GuQ41 `QqJM%☛&e=O)X!oSendstream endobj 258 0 obj << /Filter /FlateDecode /Length 6354 >> stream x\o9rB/;x:|?6%{. H֌GJY#{-#ߞ*M9HvGWO99?۳3;ߞ=_@ 0oK9X΍z ];i\+ Yl+6(ƌqq+%Ss_ܔ/r%̠p c1ƹX^b 挡m?pt~waL.)YTLB/aY|`_MOOwǿ(^v~K~z'5T܀0,WpZ|tr^,vH!W %6rϔkț?| '`NЂ / YV#w^i2>N dUaURyŭ+5}z͵ D*XCYo'uL"Չ ^ zd{3=YKK=3B]?@(#Jr-eZ:U %s{P13x$4007L!RY)lit/ON6 {% KNJI0L0==tڭB+ ZFf1@1?]]~B wq̿w~pZ:SOQ,qQ=4yNQ4 6!<0b绥4 ` %,UG-aܧ ZixՖ|gdx_Dg I͗WAZ3Y:;$B[qCe@R@shҀ~F*pњ}jH@&6okZBٛbZ"7+ǖ,jh1$ "w-jnm&%H#U⒅Jb׈ڸj?2)@Ko-P@ʚ PQɨAYH /hA5{lPM] Lf` [L-$CP<$l^y!ª, cc5$}]X p+^C  )opW/>9j^ѫ!^lec ~±ڲSfFEeby;)͝u5a.HxySw,*9Aئ|b_WILdr]6y*Ms("Un360з EquPQijK hT6_8d5Ķ /B&rrD;AJ0&~e#nŽ2F?RaY8p1wfbV3>3G)bI9xe ;FJJ Fa'2DI:0p`f>AX "G 4haASo7-iyɩ7k]a+Ov?XulsA:ܬrI$Y߃M{$Ma9{)q0%`&MwE8d&g7LS[ [-2\o"XObs6Q&Sk k1 ۬H ڡOL4 (?1/qB}KgnYlTj|byǎm\TFxTru:D4(E4PT_k瓻,G`ti^4dŠ %E1zPRgzEx-;4%); k3@H@li="*y2x^vm2npx%QC6:Ӡ6lMvߐ=5h @75+=_9①jE=UcJ"EĽF=& "~r-W@t@>ЦІ'SB :J?-@KgXe#G cn"L39FSs+45hGuET425Ǣ`j@6"_fujǟPWuI|2t҉um37$Fg1њP(Nt~0qSJdOu"wt媼|(;] @#i@N$ME~zQZK_rrnC[S7($pvWA+-ǪT@S~fbS:"A/O]^QDr hJ!@g\8qrCˍJb"9g^83ggsbN/QŠKCJRd9K\V^#4JMHeE67^Qg!Xqb$ 70/`wz__/;qցc跭95,xC-Zixy.h?q\{ 4$;Ì-1 62Χy!GwTtV9ӛmxe t<ǂ%@P5y/Ok}^nqB9}o௻L..6F󣤺 8s:Yln67OxU7Pk+DUEys}yݬM|mWu~H1&#^I_om 8]0Js48x>S,wWݰ^o]3+R'͘XYZ.(apyz`\Hnb acY 'n/i-@V1&cf ř|4~T[L>:!eFya5G"8-/EZI06vٟb'J`b(9uɽ90thoX "m\I17B X&g{9̂ڱſ쪼Ax'clC6欍 EǸ>L1)/KdjC:7 e$ ?Ҙ +Լ"[oHΧ$L䨘 iY ;bD6sAMhT *RU]Ars=5t.r) IyqU*GL@X},1ǛT aM# m]8<SeQf3% sZ Z&V3@F#BB>L=uu4kXm[ u4b@ :rzp} j "rygUG{哗5iqBeјqw#yLN{%һ(+ 0i0;\1~+FO<3TTM1hATD~ 2Ko/׫>^7]b݉ӈqxrEP _^r2*xyvQp>UBTTbjt,0+%h2S?l9 \2hc|sMHR! :Mۧ|38@p{6,Zqy9,ɕJ0|[ ,4-8,fM"@}V3Gƺ5׏ #Ep R/"dw,UaTSKULizDd%ZO79x(@iQVeoI 62>tRcO"0XYN63ň{*N&UdJx<&J {9mHDFXfkI N2t,vnxSJ);TF|a?A*_n@Cǝ+Sg,,Lt4i G:&D=_̠+spm='"\G8óR$= !vf]` yvRuIlkoEf=o0E%[T 63]g:=KhP>e8Zr._W[˻x kI|$Z%572_5y([MaNPdh:P0k&5lMuT AZ58 =<jQ#7Ҟj{?f\8 u,\|G_p,@fxkOuM .Ǯ+wFoO-co #!Z" ] [_< J׆C1v`kgLRr)}]Ҵ^E$U(:)\|4Ͷ<$A#;@->F<&9m5ѾA2CVrII1taGj~uxpĥ0m5,{aU%-%hog q ]}%g1qlxU#?v~$ljN]zZTP2”~r4@R$',N waXGfa Kmr$^ i΅9`KshP iw4?vu>c貐nWåXJmʛd'y#5aNHY[;C"TYMᚇz~ 6Hpu*.^`mIB!߫AkkMt&& /ZBC ]#0as&tߍ1Ώ6}ULR{K}9"Rj ކW:y&=<Qb ]?BMTA%\uOuƦBnS?SKL-^l"!-P;z-(A SHz[P3afOfrPޕ1[cEgSmSNp(}ӥk{^[yhA_PM'⡌_W%CeXgjڕr~h2]riF/Ф*U4,8%N^6N>%GOmJtKhO<ЈpݕrUĂ^ UPWUk 3LF5Փt^ L-Hv`j~XȆzM8nc-9O;?)hhO˪S, jJ ӳjfš@ogLg\uJ|E8,Jb/Q˴'c5?+CZu(oͱviLꩦ6^TӮy(^a*O^ O5R״A >\:kϔaH0/nCSitITr=ʼ"\[8Q_1ҩt]& GR4~Pr>Xf"%1r|)/KM~xjEGsǯi/݌_{'異TWy~2Jы-F&(Zg?vo: }W\Ld{ޖTM휇;ݴSش15lj2SBOeǢpoQ :.ͯendstream endobj 259 0 obj << /Filter /FlateDecode /Length 4066 >> stream x[~P!(Uam~hM$!E\ISrw:t;Cr+h qr^^Xg K^ܜkngm^u}r#afgq&q{ghKg7gus'zDž/󼻆&wz٭ )e:;HFv :_9FRCܺʭunms~` {~g$3xu&;o+`(@D>-0Im DbVp}|]z%Y^:T@.\+}bsq1.ypui5Ct~ՙ콛 ΌrvsgߐAZA {nH)~#~w/B.Zk,{LWr1Lxh3\6(@ŵƛGk]<*JSTT/ D?k\ua 0 ly 6ol(jmH8ϿB. LODLBlLtn hppQqaʀY -8J`󿞝;W\sA] J&"P#Ec ׅNuB@5>}HŗE0m}KKJ#^Su΅aVn% P`@zؐ:AGu]nDc%ƃαB,4 =y$y,[9 w+T\Ir Gj3b%T!E+t_ LRAIJyjQ bfaX zC!x;l/ $1}]/SoW5b= z/кhOiy@E[^Lݔ׭ {)l!L~X.[F\GGو0t<:`6ƽQZB$cWq7y0b~ N/$q&IKDZu[̭ܺ6L h`o5p€6oGs藎* 8&dm'cVۂ7!)'k㱤[i0ϚAM5b5=ʩ>)EZ}妊Iۏ%yb,@p̂6DheD:.B]3DIbL0nQs|0y$mZHK/~%<9Q$3u9ڃͳq-=ۈ`p[z 60 uOْk8if%*u#9( JGmZczda˜ vjG xVIdIA|hm6]0S:3b|* #ĜI- 挴mzv_T8~x|v {;C L!|rw\ S=Nܴ3 q b .#q, I|UxKR)8jvŒ0 ub@0D DOe+4zH46DE9\}LE=FwQG56jQ`t  (Z9?y}*#|Qֈ9PĒrAli0l%u5 J%l ӬvOGwt$@p_f8\8[6՚Q^sIG#*?hdrIMܑz|Qi~XsۨrJr 9k11돯Zoo)1 R Yf}{آzO.7z3>9'jh]Xjp2fg:Y%}Yؚr KJ8CSYZZȕ;nRy4L KƪΥD5D5 }DKNT[cEKmOlKxxWI.舣ii4q+%瘈ϖj &.}EEv eI]|wκTk3+P9r 7_CaEf)|໘ n! fc8r஘5k2R+hN!_cЛ  F0Sn@75Zg0EOnqa;e5Z*KT*&.QB5`& gDdruXPǘD+4U6LPaӰGVz NTCt"Y@kjx`LB hMV᎓Rr+NC*\XVR<:X5tJ_T˴}bEe&.O<_kA4o|uBqW#CPX#&PGb3#8eFkMHIjDUHf6G'Z]OJhM|K|q"bE@OQ"bJ4Aqk{+u"r]F$C*ּw*G_;/Fa]IR"=rǰb$xsyB/M☎@yM&25S|y\t!M)`~}ߤi(yBh$>HE[! De#ArH\72Ost ֦1dVUH|l?m̾9*>((?Ehrvv۟N^ɼa؇fK2q52m>}#Ek>_$+]6j=kɿJ|/"RR?4++BY4'*fPڕ'Ҥ48z}q,6/f/|h1eߺ Iobj̭U6OWWFl>=:ٿ endstream endobj 260 0 obj << /Filter /FlateDecode /Length 3720 >> stream x[K/#p 8NlHZ 0F;ݵwfV;zU7ˑ-9f_uS/+џ'q[]^q)mc\ 5ΪƩ~],[z5hTYef3ŋ(W{]-Tu9]_D/)^i[襅l5Pqj~|7XCFzYi l|_/_.?U{x\7=*.o?^g#`LTZ&r Xً3kS˧~)@%A1*1QτT:" IJyeWSa|ÔW f0FăGfMxpxi@4Ѽ :YEbUu+'7]CY ;yၠiyu<3 7 M͛ά"Lwyyu<xPB M͛aȱ{A<,=B4A ůey;푎v}PiXB͙9[TFFs⛬Y|LAy#9J>@:d 9[(!ϟ}N4OECrMfiA 6ADHa/- +TfMx$IK M͚a8 4 uC@+fJA͛eVs TPyyu<b%x+Lc`mի9DS)E(l!|Z<Ѽ:xăRQB%'͛aHY G=BTθ?3^w#hc#UR߂?|Ii6LƨȮ%IT $ $UUQh23\MF+r UW! (P B Bh k]s5MJe}p`hoFj](ׂ2;[?`Z-Rw3ce0d %ס@Zx(:ȕ*OBYW>Xm6/JC>[~΋F\:7F 255<_UÉ9|zߊ<+yIkBaU޵ q+m:ԭւr:FVG.M yK-EeQTj6$ߐksIzq(JXwxUuIjxhR7\dd.P}:= 7:ed|X$`i98 Є`Cug!Ⱥe/zs.LKKb-\ҘI"1[w@M "_Ж#&N %l1ȓ> 9WkuHLKiW UpBk6 v).=́zZ,+\D hCi|>}ٻ`,?sL⼎A.tqyd9C.", =UH"PHUF|Km% uF mB=]*ړ/GŠ2t;U#9}JxeZ?2(_BљVN.z@z wD}P`8-1E<2V.#k VⰝ?Z'()D|%3REO) ;,dH>OH^ ͏Eߚ,QϰR3GF,B<֗w}$OE*ϰ) <):eB B"-eQ:le1B/ 8cP]hZ&MEg w7؅)uJF &2gq ew &2:JS'$Gi |P}a$W@þP6HmA4ZAmo]j e[[X1圾KX9qxW. "Cz&G-FjNhqWJ]!~|r݌нYaeM>SH`L4֦6{ Ս>UWOc*yԚ#s5SzM(^Iw[kmwf{Me VI/njy"/@=lE,op*ovfi?yxk7jP[C:E~֟խ tʒC 'vg3$ӈsib'x@9G>9Xwqeڔ7jףG :PBWE2޿ke}gNwg\endstream endobj 261 0 obj << /Filter /FlateDecode /Length 5072 >> stream xxNgKpv'ˮaEHQYS՗ꞙC?~Q߆,?Lߜ}<Z9:/ޞћ\j={ΝFNRs zzae>~O?Nљ >>]}ZWT+7 >]b;>]UW5 ~xsR|/l?N 1 ii#ç)/)G&BPm8PW6ByXpδTf>a')v{1C^juMXiЂ1Ni]%{%}`j8 ٖ,q:2WPz pax;9Z.Ԁtf L 0Tjw;1hQ '@}DUܛg(])HmpW7ΖI0H6w #AzK8~=L2@KVC!6 N8ВGf2?QIeVdP#bb}uEXJh&~N/Ԟw\6y`1#j-}'@1b|^`{3v16jf HG2{p^>"II\Ui %Cd9H襉| (\! >ycoqA( ו4U׎Ɲ(ᙨI^@^Su"NH  N؛q>v w.BIr^p!l,`zYo{ULn2K -rajB1l¶ rNc&[ { RbЬ<(TpGJ[Z')5.Az:dFhS>JY3aaXÇvL8I" &<H)snhGimKX!Y=:IzLpcNyj3dܢuu]>h 0a V'A57ךq=0‰K vV #d9"%$N,Oڈn(hu `v*u97k` RH%޼FZŌf_Vz?n\8wڕl}2mr R25 &zIp,`( _PTm+M*/UfCg*2܁5pWV]vj*uxÂ>(%I5t{ vl,p }9QY:m1.~O>o7<ɟV+?!\b}/5JC??Z:R&_jJ!SR5O0* Ta z(aM!Wh7X:QY9FaU! /U8\h5 (* ϕ;SRD`8{)kV,Xl4HY60:tKZVR)HYFCHB8b Ae;P3 _N>,Qef+^JD(?ћJ"F"{ ߐ:aG1qXq |(Y=6+ݿh'c.{%#wn)GOL2a 䩰,]x}[Ǥ3ǜ:Țy}K=[?]}:Nk#ߺ7+h'ھ6e/Rܓ$(^\E㶈 f__t`Mgu ֙W2Y' +G[z8]N 8#uq)PڿWyS ?ͪ|˫dR59e?ffNo'NZt,"/ӤeBϯcsL a2n<笫tT [-ٕ2hfg;@91_^w>J?fa6ub,'Ї>i6a-"Z t5";ndHF4SA{ES}UlA`Tঞ,3t40{U$HgLhf#s26]]~^78P07 y=ٔkП0jE_! Fn5(pYYI%ѽOfCGgO)aŀLF]y׃jފ/;/׃ 8 UFi(e‰.}zvuԅWvAOhU>#9(|tY~7kDƦ5pK.ɦ%f2Q]|_wHZF]6f|.It#dZڜNIg~|wmȉqsm;(zT9P{J)N n`2@v!t$5ٲsQ]\HÖc+;6REMReS;+孾+һ!}͂EJEX>|ZPx,<1MyNڳ>vʕW|2M(eWՍXu}pnךU YR<#\, ^^QY [> P(H @QU<s>0Eⲉ#E%ڪ[{J!FRy+%D 42q'3ސgXyn9OԬdxId1!S8iN-5ӈ 6SNAU`5uL\ˏVZ(8ӀuHh#4(gc nJtlY_fZۍPb0y]1EϹbDͻ^Xqr?YkZ)V^#E|C8-+<3It.5wF@q2/йZ>0zp3']-aX&%2Zs;SR +]QBnCb!r1~٤$ S}VwIrm^֛,yDygw$~ VkmeV\R]"cN{ލoik+x|_ e-G_Azvbb#Nh2?}[KԱZE6+*VZV_[JLϱ+)mT_yW&/ttj E^oDXv7̤/:SC#Rmo5qbʾ:LH-{ʢ-GH{`<zؔcJH7:v $N1_2GDa}\~sq3C/?܁`9E=w;S_-x `+Tk0{`y]ѹ)7^P[9+;\p$'0iB=@T |$c&> V9sSq{I{U ʣ < lԹYx%J; 0ش9-YѕnX8ް`^n#ȊX Q* -Fp6r35Ď^\cy)I$:v}lܖ:GYFuc(* Li>S:;(xj:d|h dmt]B8W)>P eHp`ft:?kH".CОxsF)X>܌bT@XoeԿ3߶7N}G11^P̶|$Eu8_uUendstream endobj 262 0 obj << /Filter /FlateDecode /Length 8020 >> stream x]YǑ~'?mBS-{6^BXH N7(A謬ߟRE]XbIKo.xx◚=z'մl/^JI^bb,EgxdUY|!IHʥ]X#q ,&gS[%$>e]ɋw$/4b*$v)EXQb.qJ"ꒀBI*K $-{.Kbi-J,6ºKj3j* KUWtI^,p J*TwRB}P%qq\TɺU/ h_%m <.%蒼HWSUI])zjZSu X+ RXy@a.}$)݃&ɰ4 ֝.h(ݬ*[64K*5P{*5YphKZ7ځZkE $֣'&qm$LP%FNG%>-17ɒ$ C$m.ZU /{9M[0p3TIE}F DTIOG qT9٣Or$}XRiI}-P`MweڠIFy%|XT imn/3zi`DW$`u\o ".Z(J(jjU ^nGQECzHgQT_+bt/$Y%4I, "YdE ~UȎ%J " ~iӀPT!x: `\ƕfJҺ 3,-_pp Xb0Xa{Phmm侞"K[R4ڤ_&r c\ h3l 8gx'TK04i| 1x {k+/2U>\?3؇AuaI+MOV/djXDh ǩUL D0j *MVdjf$Z9&\NX Ւ f1x*ī0]Ѷu *z/ԟ3u%l_&s0Bi0c`zp`|-KO|KjT~T2H5]q`M6&NPp=H}Sǔ($&5e!ё~ E`N)>^jQYJĂ'p=HT 2Ew eMd5AcKȗF :mLW<΅W7xE漝_mȃ;SlO<خ̸̋:q\zx̩AWڦӕ rZYm͌-2Heh`~PHvk ;t[2|HNV1^lYdӸJ :I[de<I҆rk0V 6Z`p':TEcbAm =eiVW_IL8 Ls)804"Tpp]ҝF WP`|~yBMu+3G]'[ּxܗ*A1:Ar$G!Ѷ*ޱ5[x_V$&|"E 0ѩmpm60OѦ֊M>?=\߽;=/~5@ vSK[lA/ٟɳW^.1߽<x§r| &J9])m^@.I-1d&0hWeI"~= I\vB&4IT n'aU 6=)Mj&ju ֪]N`" Bh$3n!YJ .e REd-tsI [*Pi9b$+=]%8 Gnp.+JW)"g_p"Xk?M!pWLR%kn&xAqїBIgM8cH rƀHV+J6Y ^bƇTUb[W A0U p 5W9ЫQV N cq$`ϪIXS% .8U7@s.Nd?Is 4% e VUIdj(T@rV.II /3@ `n"U$(xwR40*ATNDf.LrŚUZy* ̊#]D. } fUIcm(ݫJ2j֟c%j`IU$ԈXOd.rZTIm$U.@$ϑ4 NDbCUA\."B@T4 aaIl)R4O) ;rn`cUr`h:^%! \ZCL,V6b&!:٨IVzUV:jL|D+1-nYk:k:諒+7]*&|,V buLz9*8c[T/^5돯p>#:K1̻F&r'c0HNȽ"`**!(-z$N'!!\g:cQ0S# ݒ 61FD#ـhך[М[Ă6ȵIl44"?%ѹAǃ=fnvD4͆Y㕓5N02s:YƕnVj |f% ۶kFuԺ5>k;18i=9i.fȍ>tb 34HcbiiSDى;^ !NNLc:>8ӌvp62q+!cչk<ʷU|no0 p1!X:3sXV6ԹO:פԲ% -at V,L7և89 "O%,q w}7'g%GJ4p\@qC+_7^pEXi5a|]R+@ȑcJ/]Ql ?`u9ijj4k𹶉f[d1(T:^^~av I[hp Bg:3O =26<4D4M`T3j{S" [Ao5k~C3hg| ^'f~hc媃QTa[.c=j=2lX@^-ڎn"np=}SrSfwvZk &6lZf<ق؇H!# #5yx fZrގ>Hr]tewj4)"fȱI~ |`a 'R{x%JyE$f-F8Xh gJb-Cx trqS4VZ4y}h~@%ChҴ[5btQmk MsYp@}e[tP-ʙsbj} Ϝ#"]$(;Y4N{l M[G[)+)ᑻ0#SH))-(EisJyKk_1%wh)ldzUM(ũm~:' 5s@&3,ƍ%{ ܔݖ4t#-xT Nsag.~qmĉڏGnޔuT3/FGט]Gɵ )8u+; X\߼_JS)p8)w2& ~ t{2JSs(6kD@׼pR,L$O#m/*?|"^<ٟ+_ /Jfd@|fЅiNxEo?}td"sv78r2( ܁0/X%krהyh䬢Rv=p-MXM$1jƊD8ʨX &│)HexcaeN,fm5L+7"'B@`#OK R5SdMutWtԸ Փ픮$lirۊM&5\qSֶHM!~=jMsf_TMЪ9+Yq2x0ʡT*G5{][hcʁV|g;# G2rVקt05a:z=av<ߦ+͡G>X˶pCxPV:-6CF̒[Yfg < tcTHp)ϸq67f-=q  8Q>%i3f}3DDvRyTkgE(UD(t:)t3!#kh.҉ MN6rCT _kQ=9D$_6 x@~nP5b^I= L`1^w~#[r ?&RadqƧs2S` H>sXsm71V9`{jc8H1W^Q XCN~~PqǿĭxmM=-O6{{SD%;n _Qߌ9:GB¸%z%i}=mSl6g|euZ@ 1΄60~ })^mLR(T/{$2; .<Y{z*KqgNފ<9gu:q%{u_2k~~Uv:KNĚ_N AQ9yc{3vb YOqԄs]l{6f9{gp&C5{VN8WCt]k1}/B7?<^`VXkT8\u+306oBu(m ˖ wK/AV0_I> stream x\ms$qNGlKfqJRNK[\=rG\NgWi`4f;R74O7Jr%󛓟#r_JO,JNN¯ZݞQɛ 'BߞġW~i'2Fq,o;\27 d[ƕ)0se RB4re ΌVsL\52-:}9Y}uF\CW'Br%)`P9*nNT*(T|6nsrس?g'gr j-TP.QK5S.m\3sY1RdʔKI9jϹfJ5q5~Mdi4C$ֳQFRs>(al _c6ս&7PIQ)Pj(|ݱrZ^VIQ>ޯO!Mp oެvzuvu]nWoa~bUS-Bhw/7/ޭPZygGc"[u'% d`T)pe"e>RRQ`L)#1-EaNA[Q4'; ǏW)hRM!wT.E=7f^CBUѨB#fa߄3T)N)2}: kJ(ӹƔLT^A{"!4LuB $ d%_U3:ՒhDRpڕ+Tnd]"xњ3bEX:EGi;t 9(E@ûF?ޡ] S7@ O;+hMH9Sـ^gbe/͔O 7X%;S)_RFsdjwٓlk|5JҦHlJ7 P8GΕ) IO88 H+ ZHdNDHq='TDR |e~/O( R0S8qIt'Pd*(p1Y((2sqY ,\ E.Wĸ~)Hb vMŮ)w)DƊxKVD*BdecCol}H SC;-u)Q^a $͔ 'k bX(L$6壵*,#c!Y㐠N"EH7N=q$BzH?F2s[EۯC!il4pQ T1(ֹd-U|@mД+IgapCV1!re i%@RONs}Dy'K^*{ZU( BGޗv:f&S$:I(T<LM9R<"ߌ[3J +=lct;&Bf.>fʔĕךkJuHaɪ8 6Mz&l_>R0 ruv2\GnGz W@1>6訍v+B.ҪP[4?1;Jb|V¾͘ZQL2sʔȕZ*L)VJin0eq:P JbQnRʔ0DxFrf 7L( 1N$&CcBíf&6dbʄ4,=KRs@yy&[jZw2m.-\¹4 xz@_O t̊G>TK7`3Nl/Lſ <Ř23w.LLh`VGWdҚ!XO+STг„R.{#r5M)# $*jp>te_S)T sbOKH}?F 6) wܭQ+ ?uyڕ<>; tN35˛s3]@Z $Wf@ډ+q }G@B-Y1asKi8%|pÿ5 0Mz֛Ux{ 15=L$ jpCdRf aؽJDǘwi5W]h|x0^6jF Rԓ$ $1% 1ȺȽ51bA>fb48D 4B6 "/ c{3?NzRaw-3axV(m_W_>g!U^1CU(H~&1f(k.#l!w"niE#ܐlZi;#ERL 6dF,>!5)2Y#82*U_ U>AJbyR%)H@ הie`EN!<$V&1q_3*j çQl;,ЌqE*mқ>,Ȋ<\&95^§bL y&y0M*WA86l @/OQ("+%PVYdh 0B|B \fMΪqUG`f/F_/|u&d.eᛨ6'}̻.vfSF:I_$1\@_+` OˡF!z[Yg rb۲Z{88"a?ljxQW z}JIAp=%҂ GмY1jC;yfΙDFȲQ*-|I VVq1qZIm3&1y̯Z(WpΘd'hkxstl NK)BZC!@"^inf&/~:GSdG0<:J8\&^{j`7:*o';c'KRy)?++Mcj*:cV*y%]U/S8FNp'41S҅P#ImLO:>k[lBdcA™)GS'g Ij✭=Rc%WmHGtVUC>Pjn"dk4kyT @rۥ8TDkB5REj4jٙD{g4 h+4.O!".eXuy6,ozBM7LlGVb #XG%]Բ ;ҝ9%UN!{ݻ]]VM%V\ ƷtۚOj"qRp,F:2A6o`sK vlh`-;ut^ߵv B,Q^lT S_dRaXa 2)"~R!VhY1d+;f}d Z$3uLP| /+>kC>G41Ag|5#nu{ Vsﶵ EO&)s1r ƠZu4G&?>n*(P khz>nůY 16:cM Clxq'Fabwco3kG T;"[Ti>ivo-_Po]ū)WB,OQy 7mXtQC{y?ηη/myzdӛ+utәɈo\q]#Ľ`B&0 l]u`?t&u8"yo33[MjL#so=0ZX~C߹cK}^x>qϦ ZD!c!a&ܿ{=\!"Hlï{Ji/ۻ-|pݧAedԬ+<5A:3o߼nՙo/֟թ-c{k m$Ԅx2^MǞ>+|_;F/pud]vpwfslyvph^oW+n_]l/z75e< yu[7!tLq c^3+}Ώsc'ּg=27nFmJ6;:pDub9~:l\$ya>L W/8өBa{L(d"X8bWǘ{' B$JuVNW,vLyJ'-oxW*=pmpNd"3׾rû}3wzG&(;>7-޸xoAÝ\REŤZYwv4Xۜd\f;s{!׉.ܧ++Fqʵ 7\t|o'*]#Ӎѱdanqk;M5֢/NCSv됛b<:(5,%@Z64sHLTOf@8?s;Oʴҩæwdx~ڼ—%Ũ>nFm sK{$ѓVxX:/Ѝxҁxvz0tŹtG#%3a\}cJo (~6/f}|ygq Lc^. fG}mߥ}7n }W{|M֟r|p Cۏqd#eA-"]~nR&bxcwNjBQi̗]gc*S_tR?7>\T ݶmh3zD[K 2!~䊭loZQvmQ,p8ि(뀛uK`G}&?v7ܑ0m-閙|h^oVW+:+ =yqIO8ZlG.{AGtD7mht _o+zY>6ov@u nqP< Ar1?L婤3~6bG26O袍oNoƊљ)^{(S>5qm}j{F< u[{뼲S|i߲Qv2Y+ӊ4؛d endstream endobj 264 0 obj << /Filter /FlateDecode /Length 5413 >> stream x\[s%q~KS:#/rlUR_,J9G$E"yVO_0@]i4;__բWx:>۳4z^wxKay\rT3Tkg cٟwzyݻǛ/.AEw\W]??T޽{y<_>/>85L;Ls%e签>1ބ|7ǘƞ__=|SFh?:xe{b:@U"6ĕW{hỽrY'"RIŐLZ&&Ð`eVyRE{Լ^ xlvoTo1sSx!]].LXli"w7sJ)v4w2,[gmCw>Ycٹ5w/uF񙜜' >ƓdtW)WmaGerF-N6),ϐ&rRi$jDA5I7oigJnvv3Fe `ST 34n%=5SY ayXς˅ !턴rCďGZqgֵ*d:%')i? L #@v?4>:@=M96CG9iUH' }U Q & pe=iLt 3:9Ff̀1L) gs5 V1$\3 4Y;;m 8OZm#7mRpq:#!vqj(A%4HΫ$Б[[L)[^jw$Q䵅8@">Z%I8[C>á=RscaHJ<4aA0XAD'm4?"?",|ٗ#Ĝvi_nZ:݂ڔF2=ؒoQ~fDa p}`E!0],|j{`"QJB\A)kB%Y)`L Fnh!  LKJnw+MƑ=3?7{3E'i !߶} >f{M( j鼰'1 z-^UNŦ{gper!o&LUMQЇZO"̪ U!iR$|[ķlQOc'P}?.#b+<,_GCB}.c{0g1PD)Ub|!0/: éA~,k%}k3nĊB * zbWDGyo:Dx-VB:_[% ;. hÅ 8 >ԧ>>eB>yp})z )'_e`xг{R|]omQϓ&g__ن{{WRԧT٦'&ܴm\L}OOzɯm+k8VP׌NK#$ttc"#M-kSTb pj5r DֆF hKZګ哿j=hp(I C3j3%JCzDxF,XF{h:B 4 q Oy/ؿ6eCmf^I"p!h{x4 1Wa >>ԧ1c'HnQЧ odƽX/7KaY ϐCIq [ RV:4b _t@^$/ e [D ^J# 8#Ga#.(M#A,N(`L'հ P㘘BL"aFC2e.ـuyqַ-L렏OnNp}5KTEo8Oc͓se5dn;392#˿j^L#GjZ /Ll)3ywm'O "Ϲ"وۺ MyH 2T_3;^nRU,b2tppO(!v>5ÔܥڢȐ_E8$r2mᨉ3eqrmB7~=\I! @ 3=+^NJrrQ[n!F !Z1M պTլLc}HԳ>au=FMa8ք~aR7.?d񘲤9(-C3$Fyũ=I*Kq:bԘt+n7@*OiN$ ?Iob[&:c[sфs8/#/ZԠ^L'IW"G2aڶ s[zBD^3jjxfF .=a1LT'Tٱ 8}A{SZjq'7@欛87c7Z U2y3ȱIdP5}TpՋT :<8f.<~+D !~/x2܋τ/xGM5K_ȩP=5jLd4\~,ŕ|SiDRNDzl^v=f)V&b}9C=^Z.ThZZkOk&m=yPC,7#:GQ.|)D=VVcTYoB77$R"Y==T]va`E!4^sHQpfivo^rkB<Ux}/׻ %isN` _ )04D e\y= jЖ>i:mp _cމ@>qQ}~i̇b;Sgx DXˆ.ulD,ᑲ .jeHvRrB`<^&=j`_ƘP&gW[#aX6 v'u2ST3?*?"Rh?[LW"vN.F:`8P3~dQ*NAgGGvFuD_ `˰nQzyrōjP(R8^r\டp+ GlfMZ8ٶE_Z j=[wl)"Afl2(".nՇzEGu3MP:v:ܮKQ3Yы ,Eܡ!J鴕!xl?XpJt5u+ãPxaqMGo+Gpn}t06R$8w_qPlيS\lPԌ]~njo {/ޓcE'Azj_Y-k]2*>Thۮ\ u%V\ QpF0goݹyR:`$I U髬\Id Zy}J*:OVFo:^1maqPBlU!')-!HJ=> stream x5 '!aHaŻɌ !.A^<8G[t)GRr\6Iyd $LXfʐdMY Rx)o!D6JAO)9 L*nHeQ V,X L \*U p(MiUSd,B3a̚EMQ {RYI/T:GVVߚcə7 ϙYSPژά5H}#9(2* f,:JcV+A(r$'X`%^ DxS)67P4ʐ<4dCPX8lڄ!yO܆Mwg;H{ w7KfiAǘX|)Cj.+:LtP^ONn[H`ڬPx~V̫Ќ'BV9ȝQ, XׄaphhWXAhi&J3c%HHEB+Ie@᤼3٨"LvT M×b-lv}c$dG B S($C1 XlON6LB=i4X7̈́!+ɚ! RޚCTe }JRiF(z[cIKըqoZ3/K<Kx+WKMJT H: (R$ìJevB$H6 f~Сz}\hKR^4A]D"|NƁpM7\r_s 1lovDjN#]ٛ2ἱS@jQI­pt0 Il }4}v Yeprz0щ6g2PF$#*,<.}zܭPSH}y:/Oo'z<ݔCy^G>q Y܃ :-Ȣ v ` ؀/2|ԍ">ClØ C\Px(>T|-9g 8uf7 s@"^Y685<@ vG*H^5;l#i%L ,{t~!ゾXΠ7fsF',f`>i`}g]+Y֗hİ{[uPQDUJ KDqUcM&5U`[-=&!hpOhӬqCMYg "PC(oiIFP`eKwXL θ画(42ZH!paCjS'X)Q, eysKB KXz n HM=!|CP rAGJAF!wCBp\D@AW!UyCդά+BþXc4?4ji'h!|*CS v lQmKܷPam\нD-v1 ~Z+ 8i;՘ߕ& H+OG toJ@NzֽV:C.GYlZ5fRf<=t`襞t6zJ]}g_jhX-#CWdviUmP_K%ĝK*uݴb`4LEZ<X1mG*c};Z[Jh Mإ48 ymM@PxwӞ=:nf%QI I[r ҎQGgnNpM}ah\YKf,*SJ\0GPMNH㩄2utb v6BŤ͙^86#\)e:u:r.u6{<$*0610ŮuEv,IXjsZC(0PvK< msV$#ONu ]\M0 'Bry^DB m{x! M:eS3={|2K11*%ՓZnʰs1fz(/VIb$[Z#ގZHUsDLͷ-{=db@hxcDk۶mVTP05GLFc:(Ce_0*:D32S 0)+;D-9 pٌGi41Ycp/p~ԧujVgM!4JF#W7\^b<${(D5&0g/7"}/ACsLj y,CxH tAM FEGW'-1x9 Sv_'|KC &:nP9nq}&>B{OJ]; .#5 LX|@P?} c(Ϻ${kik:&Ba6Nx묙T\ll< @NP8M(LtSaBI$Erֆ ;Fijp!k"\>%bnTI{߄?<605=H姭lzczשeY5g\O%ړF)LZ =5;:$^DJY59d@LcA?[]qFA=Лic@i7J}pja7dS#vT{fRwtGm>NS/,8؎0Ap3IlBkYnAƵWԿwE,_Q ExH?ϫ4RL"n>o^4Kt‡n-@H{8 2̋Ѱ#B^GY (/+5gRb: Za񟸙T*ܷ)'(n "!nL&~+%J`~7+p}d#x^c BkAcL~$ߏPM]BYSI;ۀ:q=DZL#Sa&D4Ey[ ̅$Ƚ ;+Km@hFI{ (NDwr{ VʆB͇\)H#8׌+79GO#ܑ#υ@y4^D` gV5Nr[ir<}c=K]њR\mKLoA7,tCZa> stream xcd`ab`ddp 44U~H3a!3k7s7ﻄ'~%XP_PYQ`hii`d``ZXX('gT*hdX뗗%i(gd(((%*@s JKR|SRYBt^}ω33G[7]z}r[~kb}vEly~_d}{O!lYwVWG g/d4mn9.<'yx.x:endstream endobj 267 0 obj << /Type /XRef /Length 220 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Info 3 0 R /Root 2 0 R /Size 268 /ID [<41bd6d1d701fd834825b483911a334ad>] >> stream xcb&F~0 $8J?` m&(_P#3|;q7 :_wٲŠ* Rdl`v4X J R(dd8?X lu0{> ]D RDHn^NMl V"Yzl2LJ)eN{@YK`IHy RD,b_" endstream endobj startxref 173081 %%EOF coin/inst/doc/coin.Rnw0000644000175100001440000005210612622326244014371 0ustar hornikusers\documentclass[a4paper]{article} \usepackage[a4paper]{geometry} \usepackage{amstext} \usepackage{amsfonts} \usepackage{hyperref} \usepackage[round]{natbib} \usepackage{hyperref} \let\proglang=\textsf \newcommand{\pkg}[1]{{\normalfont\fontseries{b}\selectfont #1}} \SweaveOpts{engine=R, eps=FALSE, keep.source = TRUE} %%\VignetteIndexEntry{coin: A Computational Framework for Conditional Inference} %%\VignetteDepends{coin} \input{head} \hypersetup{% pdftitle = {coin: A Computational Framework for Conditional Inference}, pdfsubject = {Manuscript}, pdfauthor = {Torsten Hothorn, Kurt Hornik, Mark van de Wiel and Achim Zeileis}, %% change colorlinks to false for pretty printing colorlinks = {true}, linkcolor = {blue}, citecolor = {blue}, urlcolor = {red}, hyperindex = {true}, linktocpage = {true}, } \begin{document} \title{\pkg{coin}: A Computational Framework for \\ Conditional Inference} \author{Torsten Hothorn$^1$, Kurt Hornik$^2$, Mark van de Wiel$^3$ \\ and Achim Zeileis$^2$} \date{} \maketitle \noindent$^1$Institut f\"ur Medizininformatik, Biometrie und Epidemiologie\\ Friedrich-Alexander-Universit\"at Erlangen-N\"urnberg\\ Waldstra{\ss}e 6, D-91054 Erlangen, Germany \\ \texttt{Torsten.Hothorn@R-project.org} \newline \noindent$^2$Department f\"ur Statistik und Mathematik, Wirtschaftsuniversit\"at Wien \\ Augasse 2-6, A-1090 Wien, Austria \\ \texttt{Kurt.Hornik@R-project.org} \\ \texttt{Achim.Zeileis@R-project.org} \newline \noindent$^3$Department of Mathematics, Vrije Universiteit \\ De Boelelaan 1081a, 1081 HV Amsterdam, The Netherlands \\ \texttt{mark.vdwiel@vumc.nl} \newline <>= options(width = 60) require("coin") set.seed(290875) @ \section{Introduction} The \pkg{coin} package provides a unified approach to conditional inference procedures commonly known as \textit{permutation tests}. The theoretical basis for the design and implementation is the general framework for permutation tests given by \cite{strasserweber1999}. For a very flexible formulation of multivariate linear statistics, \cite{strasserweber1999} derived the conditional expectation and covariance of the conditional (permutation) distribution as well as the multivariate limiting distribution. Test procedures for nominal, ordinal and continuous data with or without censoring are all part of this framework. For a more detailed overview see \cite{Hothorn:2006:AmStat}. The conceptual Strasser-Weber framework of permutation tests for arbitrary independence and symmetry problems are available via the generic functions \texttt{independence\_test} and \texttt{symmetry\_test} respectively. In addition to these very flexible procedures, a large set of convenience functions including well-known as well as lesser-known classical and non-classical procedures for tests of independence between two continuous variables, two- and $K$-sample tests for location and scale alternatives, tests of independence for contingency tables as well as tests of marginal homogeneity and symmetry have been implemented within the framework. Currently, the following conditional test procedures are available: \begin{center} \begin{tabular}{ll} % CorrelationTests \texttt{spearman\_test} & Spearman correlation test \\ \texttt{fisyat\_test} & Fisher-Yates correlation test \\ \texttt{quadrant\_test} & Quadrant test \\ \texttt{koziol\_test} & Koziol-Nemec test \\ % LocationTests \texttt{oneway\_test} & Two- and $K$-sample Fisher-Pitman permutation test \\ \texttt{wilcox\_test} & Wilcoxon-Mann-Whitney test \\ \texttt{kruskal\_test} & Kruskal-Wallis test \\ \texttt{normal\_test} & Two- and $K$-sample van der Waerden test \\ \texttt{median\_test} & Two- and $K$-sample Brown-Mood median test \\ \texttt{savage\_test} & Two- and $K$-sample Savage test \\ % ScaleTests \texttt{taha\_test} & Two- and $K$-sample Taha test \\ \texttt{klotz\_test} & Two- and $K$-sample Klotz test \\ \texttt{mood\_test} & Two- and $K$-sample Mood test \\ \texttt{ansari\_test} & Two- and $K$-sample Ansari-Bradley test \\ \texttt{fligner\_test} & Two- and $K$-sample Fligner-Killeen test \\ \texttt{conover\_test} & Two- and $K$-sample Conover-Iman test \\ % SurvivalTests \texttt{logrank\_test} & Two- and $K$-sample weighted logrank tests \\ & (Logrank test, Gehan-Breslow test, Tarone-Ware test, \dots) \\ % SymmetryTests \texttt{sign\_test} & Sign test \\ \texttt{wilcoxsign\_test} & Wilcoxon signed-rank test \\ \texttt{friedman\_test} & Friedman test and Page test \\ \texttt{quade\_test} & Quade test \\ % ContingencyTests \texttt{chisq\_test} & Pearson $\chi^2$ test \\ \texttt{cmh\_test} & Generalized Cochran-Mantel-Haenszel test \\ \texttt{lbl\_test} & Linear-by-linear association test \\ % MarginalHomogeneityTests \texttt{mh\_test} & Marginal homogeneity tests \\ & (McNemar test, Cochran $Q$ test, Stuart-Maxwell test, \dots) \\ % MaximallySelectedStatisticsTests \texttt{maxstat\_test} & Generalized maximally selected statistics \\ \end{tabular} \end{center} These convenience functions essentially perform a certain transformation of the data, e.g., a rank transformation, and then call \texttt{independence\_test} or \texttt{symmetry\_test} for the computation of the (multivariate) linear statistic and its conditional expectation and covariance as well as the scalar test statistic and its null distribution. The exact null distribution can be approximated by the asymptotic distribution or via conditional Monte Carlo resampling for all test procedures, whereas the exact null distribution is available for special cases only. Moreover, all test procedures allow for the specification of blocks pertaining to, e.g., stratification or repeated measurements. \section{Permutation Tests} In the following we assume that we are provided with $n$ observations \begin{eqnarray*} (\Y_i, \X_i, w_i, b_i), \quad i = 1, \dots, n. \end{eqnarray*} The variables $\Y$ and $\X$ from sample spaces $\mathcal{Y}$ and $\mathcal{X}$ may be measured at arbitrary scales and may be multivariate as well. In addition to those measurements, case weights $w$ and a factor $b$ coding blocks may be available. For the sake of simplicity, we assume $w_i = 1$ and $b_i = 0$ for all observations $i = 1, \dots, n$ for the moment. We are interested in testing the null hypothesis of independence of $\Y$ and $\X$ \begin{eqnarray*} H_0: D(\Y | \X) = D(\Y) \end{eqnarray*} against arbitrary alternatives. \cite{strasserweber1999} suggest to derive scalar test statistics for testing $H_0$ from multivariate linear statistics of the form \begin{eqnarray} \label{linstat} \T = \vec\left(\sum_{i = 1}^n w_i g(\X_i) h(\Y_i, (\Y_1, \dots, \Y_n))^\top\right) \in \R^{pq}. \end{eqnarray} Here, $g: \mathcal{X} \rightarrow \R^{p}$ is a transformation of $\X$ known as the \emph{regression function} and $h: \mathcal{Y} \times \mathcal{Y}^n \rightarrow \R^q$ is a transformation of $\Y$ known as the \emph{influence function}, where the latter may depend on $(\Y_1, \dots, \Y_n)$ in a permutation symmetric way. We will give specific examples on how to choose $g$ and $h$ later on. The distribution of $\T$ depends on the joint distribution of $\Y$ and $\X$, which is unknown under almost all practical circumstances. At least under the null hypothesis one can dispose of this dependency by fixing $\X_1, \dots, \X_n$ and conditioning on all possible permutations $S$ of the responses $\Y_1, \dots, \Y_n$. This principle leads to test procedures known as \textit{permutation tests}. The conditional expectation $\mu \in \R^{pq}$ and covariance $\Sigma \in \R^{pq \times pq}$ of $\T$ under $H_0$ given all permutations $\sigma \in S$ of the responses are derived by \cite{strasserweber1999}: \begin{eqnarray} \mu & = & \E(\T | S) = \vec \left( \left( \sum_{i = 1}^n w_i g(\X_i) \right) \E(h | S)^\top \right), \nonumber \\ \Sigma & = & \V(\T | S) \nonumber \\ & = & \frac{\ws}{\ws - 1} \V(h | S) \otimes \left(\sum_i w_i g(\X_i) \otimes w_i g(\X_i)^\top \right) \label{expectcovar} \\ & - & \frac{1}{\ws - 1} \V(h | S) \otimes \left( \sum_i w_i g(\X_i) \right) \otimes \left( \sum_i w_i g(\X_i)\right)^\top \nonumber \end{eqnarray} where $\ws = \sum_{i = 1}^n w_i$ denotes the sum of the case weights, and $\otimes$ is the Kronecker product. The conditional expectation of the influence function is \begin{eqnarray*} \E(h | S) = \ws^{-1} \sum_i w_i h(\Y_i, (\Y_1, \dots, \Y_n)) \in \R^q \end{eqnarray*} with corresponding $q \times q$ covariance matrix \begin{eqnarray*} \V(h | S) = \ws^{-1} \sum_i w_i \left(h(\Y_i, (\Y_1, \dots, \Y_n)) - \E(h | S) \right) \\ \left(h(\Y_i, (\Y_1, \dots, \Y_n)) - \E(h | S)\right)^\top. \end{eqnarray*} Having the conditional expectation and covariance at hand we are able to standardize a linear statistic $\T \in \R^{pq}$ of the form (\ref{linstat}). Univariate test statistics~$c$ mapping an observed linear statistic $\mathbf{t} \in \R^{pq}$ into the real line can be of arbitrary form. An obvious choice is the maximum of the absolute values of the standardized linear statistic \begin{eqnarray*} c_\text{max}(\mathbf{t}, \mu, \Sigma) = \max \left| \frac{\mathbf{t} - \mu}{\text{diag}(\Sigma)^{1/2}} \right| \end{eqnarray*} utilizing the conditional expectation $\mu$ and covariance matrix $\Sigma$. The application of a quadratic form $c_\text{quad}(\mathbf{t}, \mu, \Sigma) = (\mathbf{t} - \mu) \Sigma^+ (\mathbf{t} - \mu)^\top$ is one alternative, although computationally more expensive because the Moore-Penrose inverse $\Sigma^+$ of $\Sigma$ is involved. The definition of one- and two-sided $p$-values used for the computations in the \pkg{coin} package is \begin{eqnarray*} P(c(\T, \mu, \Sigma) &\le& c(\mathbf{t}, \mu, \Sigma)) \quad \text{(less)} \\ P(c(\T, \mu, \Sigma) &\ge& c(\mathbf{t}, \mu, \Sigma)) \quad \text{(greater)}\\ P(|c(\T, \mu, \Sigma)| &\le& |c(\mathbf{t}, \mu, \Sigma)|) \quad \text{(two-sided).} \end{eqnarray*} Note that for quadratic forms only two-sided $p$-values are available and that in the one-sided case maximum type test statistics are replaced by \begin{eqnarray*} \min \left( \frac{\mathbf{t} - \mu}{\text{diag}(\Sigma)^{1/2}} \right) \quad \text{(less) and } \max \left( \frac{\mathbf{t} - \mu}{\text{diag}(\Sigma)^{1/2}} \right) \quad \text{(greater).} \end{eqnarray*} The conditional distribution and thus the $p$-value of the statistics $c(\mathbf{t}, \mu, \Sigma)$ can be computed in several different ways. For some special forms of the linear statistic, the exact distribution of the test statistic is tractable. For two-sample problems, the shift-algorithm by \cite{axact-dist:1986} and \cite{exakte-ver:1987} and the split-up algorithm by \cite{vdWiel2001} are implemented as part of the package. Conditional Monte Carlo procedures can be used to approximate the exact distribution. \cite{strasserweber1999} proved (Theorem 2.3) that the conditional distribution of linear statistics $\T$ with conditional expectation $\mu$ and covariance $\Sigma$ tends to a multivariate normal distribution with parameters $\mu$ and $\Sigma$ as $n, \ws \rightarrow \infty$. Thus, the asymptotic conditional distribution of test statistics of the form $c_\text{max}$ is normal and can be computed directly in the univariate case ($pq = 1$) or approximated by means of quasi-randomized Monte Carlo procedures in the multivariate setting \citep{numerical-:1992}. For quadratic forms $c_\text{quad}$ which follow a $\chi^2$ distribution with degrees of freedom given by the rank of $\Sigma$ \citep[see][Chapter 29]{johnsonkotz1970}, exact probabilities can be computed efficiently. \section{Illustrations and Applications} The main workhorse \texttt{independence\_test} essentially allows for the specification of $\Y, \X$ and $b$ through a formula interface of the form \verb/y ~ x | b/, case weights can be defined by a formula with one variable on the right hand side only. Four additional arguments are available for the specification of the regression function $g$ (\texttt{xtrans}), the influence function $h$ (\texttt{ytrans}), the form of the test statistic $c$ (\texttt{teststat}) and the null distribution (\texttt{distribution}). \paragraph{Independent $K$-Sample Problems.} When we want to compare the distribution of an univariate qualitative response $\Y$ in $K$ groups given by a factor $\X$ at $K$ levels, the transformation $g$ is the dummy matrix coding the groups and $h$ is either the identity transformation or a some form of rank transformation. For example, the Kruskal-Wallis test may be computed as follows \citep[example taken from][Table 6.3, page 200]{HollanderWolfe1999}: <>= library("coin") YOY <- data.frame( length = c(46, 28, 46, 37, 32, 41, 42, 45, 38, 44, 42, 60, 32, 42, 45, 58, 27, 51, 42, 52, 38, 33, 26, 25, 28, 28, 26, 27, 27, 27, 31, 30, 27, 29, 30, 25, 25, 24, 27, 30), site = gl(4, 10, labels = as.roman(1:4)) ) it <- independence_test(length ~ site, data = YOY, ytrafo = function(data) trafo(data, numeric_trafo = rank_trafo), teststat = "quadratic") it @ The linear statistic $\T$ is the sum of the ranks in each group and can be extracted via <>= statistic(it, type = "linear") @ Note that \texttt{statistic(..., type = "linear")} currently returns the linear statistic in matrix form, i.e. \begin{eqnarray*} \sum_{i = 1}^n w_i g(\X_i) h(\Y_i, (\Y_1, \dots, \Y_n))^\top \in \R^{p \times q}. \end{eqnarray*} The conditional expectation and covariance are available from <>= expectation(it) covariance(it) @ and the standardized linear statistic $(\T - \mu)\text{diag}(\Sigma)^{-1/2}$ is <>= statistic(it, type = "standardized") @ Since a quadratic form of the test statistic was requested via \texttt{teststat = "quadratic"}, the test statistic is <>= statistic(it) @ By default, the asymptotic distribution of the test statistic is computed, the $p$-value is <>= pvalue(it) @ Life is much simpler with convenience functions very similar to those available in package \pkg{stats} for a long time. Here, the exact null distribution of the Kruskal-Wallis test is approximated by Monte Carlo resampling using $10000$ replicates via <>= kt <- kruskal_test(length ~ site, data = YOY, distribution = approximate(B = 10000)) kt @ with $p$-value (and $99~\%$ confidence interval) of <>= pvalue(kt) @ Of course it is possible to choose a $c_\text{max}$ type test statistic instead of a quadratic form. \paragraph{Independence in Contingency Tables.} Independence in general two- or three-dimensional contingency tables can be tested by the Cochran-Mantel-Haenszel test. Here, both $g$ and $h$ are dummy matrices \citep[example data from][Table 7.8, page 288]{agresti2002}: <>= data("jobsatisfaction", package = "coin") ct <- cmh_test(jobsatisfaction) ct @ The standardized contingency table allowing for an inspection of the deviation from the null hypothesis of independence of income and jobsatisfaction (stratified by gender) is <>= statistic(ct, type = "standardized") @ \paragraph{Ordered Alternatives.} Of course, both job satisfaction and income are ordered variables. When $\Y$ is measured at $J$ levels and $\X$ at $K$ levels, $\Y$ and $\X$ are associated with score vectors $\eta \in \R^J$ and $\gamma \in \R^K$, respectively. The linear statistic is now a linear combination of the linear statistic $\T$ of the form \begin{eqnarray*} \M \T & = & \vec \left( \sum_{i=1}^n w_i \gamma^\top g(\X_i) \left(\eta^\top h(\Y_i, (\Y_1, \dots, \Y_n)\right)^\top \right) \in \R \text{ with } \M = \eta \otimes \gamma. \end{eqnarray*} By default, scores are $\eta = 1, \dots, J$ and $\gamma = 1, \dots, K$. <>= lbl_test(jobsatisfaction) @ The scores $\eta$ and $\gamma$ can be specified to the linear-by-linear association test via a list whose names correspond to the variable names <>= lbl_test(jobsatisfaction, scores = list(Job.Satisfaction = c(1, 3, 4, 5), Income = c(3, 10, 20, 35))) @ Alternatively, scores can be specified through \texttt{of\_trafo} <>= lbl_test(jobsatisfaction, ytrafo = function(data) trafo(data, ordered_trafo = function(y) of_trafo(y, scores = c(1, 3, 4, 5))), xtrafo = function(data) trafo(data, ordered_trafo = function(x) of_trafo(x, scores = c(3, 10, 20, 35)))) @ \paragraph{Incomplete Randomised Blocks.} \cite{RaynerBest2001}, Chapter 7, discuss the application of Durbin's test to data from sensory experiments, where incomplete block designs are common. As an example, data from taste-testing on ten dried eggs where mean scores for off-flavour from seven judges are given and one wants to assess whether there is any difference in the scores between the ten egg samples. The sittings are a block variable which can be added to the formula via `\texttt{|}'. <>= egg_data <- data.frame( scores = c(9.7, 8.7, 5.4, 5.0, 9.6, 8.8, 5.6, 3.6, 9.0, 7.3, 3.8, 4.3, 9.3, 8.7, 6.8, 3.8, 10.0, 7.5, 4.2, 2.8, 9.6, 5.1, 4.6, 3.6, 9.8, 7.4, 4.4, 3.8, 9.4, 6.3, 5.1, 2.0, 9.4, 9.3, 8.2, 3.3, 8.7, 9.0, 6.0, 3.3, 9.7, 6.7, 6.6, 2.8, 9.3, 8.1, 3.7, 2.6, 9.8, 7.3, 5.4, 4.0, 9.0, 8.3, 4.8, 3.8, 9.3, 8.3, 6.3, 3.8), sitting = factor(rep(c(1:15), rep(4, 15))), product = factor(c(1, 2, 4, 5, 2, 3, 6, 10, 2, 4, 6, 7, 1, 3, 5, 7, 1, 4, 8, 10, 2, 7, 8, 9, 2, 5, 8, 10, 5, 7, 9, 10, 1, 2, 3, 9, 4, 5, 6, 9, 1, 6, 7, 10, 3, 4, 9, 10, 1, 6, 8, 9, 3, 4, 7, 8, 3, 5, 6, 8)) ) independence_test(scores ~ product | sitting, data = egg_data, teststat = "quadratic", ytrafo = function(data) trafo(data, numeric_trafo = rank_trafo, block = egg_data$sitting)) @ and the Monte Carlo $p$-value can be computed via <>= pvalue(independence_test(scores ~ product | sitting, data = egg_data, teststat = "quadratic", ytrafo = function(data) trafo(data, numeric_trafo = rank_trafo, block = egg_data$sitting), distribution = approximate(B = 19999))) @ If we assume that the products are ordered, the Page test is appropriate and can be computed as follows <>= independence_test(scores ~ product | sitting, data = egg_data, ytrafo = function(data) trafo(data, numeric_trafo = rank_trafo, block = egg_data$sitting), scores = list(product = 1:10)) @ \paragraph{Multiple Tests.} One may be interested in testing multiple hypotheses simultaneously, either by using a linear combination of the linear statistic $\K\T$, or by specifying multivariate variables $\Y$ and/or $\X$. For example, all pair comparisons may be implemented via <>= it <- independence_test(length ~ site, data = YOY, xtrafo = mcp_trafo(site = "Tukey"), teststat = "maximum", distribution = "approximate") pvalue(it) pvalue(it, method = "single-step") @ When either $g$ or $h$ are multivariate, single-step adjusted $p$-values based on maximum-type statistics are computed as described in \cite{WestfallYoung1993}, algorithm 2.5 (page 47) and equation (2.8), page 50. Note that for the example shown above only the \textit{minimum} $p$-value is adjusted appropriately because the subset pivotality condition is violated, i.e., the distribution of the test statistics under the complete null-hypothesis of no treatment effect of \texttt{site} is the basis of all adjustments instead of the corresponding partial null-hypothesis. \section{Quality Assurance} The test procedures implemented in package \pkg{coin} are continuously checked against results obtained by the corresponding implementations in package \pkg{stats} (where available). In addition, the test statistics and exact, approximative and asymptotic $p$-values for data examples given in the \pkg{StatXact}~-6 user manual \citep{StatXact6} are compared with the results reported in the \pkg{StatXact}~6 manual. Step-down multiple adjusted $p$-values have been checked against results reported by \texttt{mt.maxT} from package \pkg{multtest} \citep{PKG:multtest}. For details on the test procedures we refer to the \proglang{R} transcript files in directory \texttt{coin/tests}. \section{Acknowledgements} We would like to thank Helmut Strasser for discussions on the theoretical framework. Henric Winell provided clarification and examples for the Stuart-Maxwell test. \bibliographystyle{jss} \bibliography{coin} \end{document} coin/inst/doc/LegoCondInf.R0000644000175100001440000002524112622326244015223 0ustar hornikusers### R code from vignette source 'LegoCondInf.Rnw' ################################################### ### code chunk number 1: setup ################################################### options(width = 65, prompt = "R> ", continue = " ") require("coin") set.seed(290875) ### get rid of the NAMESPACE #load(file.path(.find.package("coin"), "R", "all.rda")) anonymous <- FALSE ################################################### ### code chunk number 2: authors ################################################### if(!anonymous) { cat("\\author{Torsten Hothorn$^1$, Kurt Hornik$^2$, \\\\ Mark A. van de Wiel$^3$ and Achim Zeileis$^2$}\n") } else { cat("\\author{TAS MS05-239, Revision}\n") } ################################################### ### code chunk number 3: affil ################################################### if(!anonymous) cat("\\noindent$^1$ Institut f\\\"ur Medizininformatik, Biometrie und Epidemiologie\\\\ Friedrich-Alexander-Universit\\\"at Erlangen-N\\\"urnberg\\\\ Waldstra{\\ss}e 6, D-91054 Erlangen, Germany \\\\ \\texttt{Torsten.Hothorn@R-project.org} \\newline \\noindent$^2$ Department f\\\"ur Statistik und Mathematik, Wirtschaftsuniversit\\\"at Wien \\\\ Augasse 2-6, A-1090 Wien, Austria \\\\ \\texttt{Kurt.Hornik@R-project.org} \\\\ \\texttt{Achim.Zeileis@R-project.org} \\newline \\noindent$^3$ Department of Mathematics, Vrije Universiteit \\\\ De Boelelaan 1081a, 1081 HV Amsterdam, The Netherlands \\\\ \\texttt{mark.vdwiel@vumc.nl} \\newline\n") ################################################### ### code chunk number 4: coincite ################################################### if (anonymous) { cat(" \\citep{PKG:coina} ") } else { cat(" \\citep{PKG:coin} ") } ################################################### ### code chunk number 5: alpha-data-figure ################################################### n <- table(alpha$alength) par(cex.lab = 1.3, cex.axis = 1.3) boxplot(elevel ~ alength, data = alpha, ylab = "Expression Level", xlab = "NACP-REP1 Allele Length", varwidth = TRUE) axis(3, at = 1:3, labels = paste("n = ", n)) rankif <- function(data) trafo(data, numeric_trafo = rank_trafo) ################################################### ### code chunk number 6: alpha-kruskal ################################################### kruskal.test(elevel ~ alength, data = alpha) ################################################### ### code chunk number 7: alpha-kruskal ################################################### independence_test(elevel ~ alength, data = alpha, ytrafo = rank_trafo, teststat = "quadratic") ################################################### ### code chunk number 8: mpoints ################################################### mpoints <- function(x) c(2, 7, 11)[unlist(x)] ################################################### ### code chunk number 9: alpha-kruskal-ordered ################################################### independence_test(elevel ~ alength, data = alpha, ytrafo = rank_trafo, xtrafo = mpoints) ################################################### ### code chunk number 10: alzheimer-demographics ################################################### total <- nrow(alzheimer) stopifnot(total == 538) male <- sum(alzheimer$gender == "Male") stopifnot(male == 200) female <- sum(alzheimer$gender == "Female") stopifnot(female == 338) disease <- table(alzheimer$disease) smoked <- sum(alzheimer$smoking != "None") atab <- xtabs(~ smoking + + disease + gender, data = alzheimer) ### there is a discrepancy between Table 1 (32% smokers of 117 women ### suffering from other diagnoses) and Table 4 (63% non-smokers). ### We used the data as given in Table 4. ################################################### ### code chunk number 11: alzheimer-tab ################################################### x <- t(atab[,,"Female"]) lines <- paste(paste(dimnames(x)$disease, " & "), paste(apply(x, 1, function(l) paste(l, collapse = " & ")), "\\\\")) for (i in 1:length(lines)) cat(lines[i], "\n") ################################################### ### code chunk number 12: alzheimer-tab ################################################### x <- t(atab[,,"Male"]) lines <- paste(paste(dimnames(x)$disease, " & "), paste(apply(x, 1, function(l) paste(l, collapse = " & ")), "\\\\")) for (i in 1:length(lines)) cat(lines[i], "\n") ################################################### ### code chunk number 13: alzheimer-plot ################################################### layout(matrix(1:2, ncol = 2)) spineplot(disease ~ smoking, data = alzheimer, subset = gender == "Male", main = "Male", xlab = "Smoking", ylab = "Disease", tol = 1) spineplot(disease ~ smoking, data = alzheimer, subset = gender == "Female", main = "Female", xlab = "Smoking", ylab = "Disease", tol = 1) ################################################### ### code chunk number 14: alzheimer-mantelhaen ################################################### it_alz <- independence_test(disease ~ smoking | gender, data = alzheimer, teststat = "quadratic") it_alz ################################################### ### code chunk number 15: alzheimer-statistic ################################################### statistic(it_alz, type = "linear") ################################################### ### code chunk number 16: alzheimer-men ################################################### females <- alzheimer$gender == "Female" males <- alzheimer$gender == "Male" pvalue(independence_test(disease ~ smoking, data = alzheimer, subset = females, teststat = "quadratic")) pvalue(independence_test(disease ~ smoking, data = alzheimer, subset = males, teststat = "quadratic")) ################################################### ### code chunk number 17: alzheimer-max ################################################### it_alzmax <- independence_test(disease ~ smoking, data = alzheimer, subset = males, teststat = "maximum") it_alzmax ################################################### ### code chunk number 18: alzheimer-maxstat ################################################### statistic(it_alzmax, type = "standardized") ################################################### ### code chunk number 19: alzheimer-qperm ################################################### qperm(it_alzmax, 0.95) ################################################### ### code chunk number 20: alzheimer-MTP ################################################### pvalue(it_alzmax, method = "single-step") ################################################### ### code chunk number 21: photocar-plot ################################################### par(cex.lab = 1.3, cex.axis = 1.3) layout(matrix(1:3, ncol = 3)) plot(survfit(Surv(time, event) ~ group, data = photocar), xmax = 50, xlab = "Survival Time (in weeks)", ylab = "Probability", lty = 1:3) legend("bottomleft", lty = 1:3, levels(photocar$group), bty = "n") plot(survfit(Surv(dmin, tumor) ~ group, data = photocar), xmax = 50, xlab = "Time to First Tumor (in weeks)", ylab = "Probability", lty = 1:3) legend("bottomleft", lty = 1:3, levels(photocar$group), bty = "n") boxplot(ntumor ~ group, data = photocar, ylab = "Number of Tumors", xlab = "Treatment Group", varwidth = TRUE) ################################################### ### code chunk number 22: photocar-global ################################################### it_ph <- independence_test(Surv(time, event) + Surv(dmin, tumor) + ntumor ~ group, data = photocar) it_ph ################################################### ### code chunk number 23: photocar-linear ################################################### statistic(it_ph, type = "linear") ################################################### ### code chunk number 24: photocar-stand ################################################### statistic(it_ph, type = "standardized") ################################################### ### code chunk number 25: photocar-stand (eval = FALSE) ################################################### ## pvalue(it_ph, method = "single-step") ################################################### ### code chunk number 26: photocar-stand ################################################### round(pvalue(it_ph, method = "single-step"), 5) ################################################### ### code chunk number 27: mercuryfish-plot ################################################### par(cex.lab = 1.3, cex.axis = 1.3) layout(matrix(1:3, ncol = 3)) boxplot(I(log(mercury)) ~ group, data = mercuryfish, ylab = "Mercury Blood Level (in logs)", varwidth = TRUE) boxplot(abnormal ~ group, data = mercuryfish, ylab = "Abnormal Cells (in %)", varwidth = TRUE) boxplot(ccells ~ group, data = mercuryfish, ylab = "Chromosome Aberrations (in %)", varwidth = TRUE) ################################################### ### code chunk number 28: mercurysfish-score ################################################### coherence <- function(data) { x <- t(as.matrix(data)) apply(x, 2, function(y) sum(colSums(x < y) == nrow(x)) - sum(colSums(x > y) == nrow(x))) } ################################################### ### code chunk number 29: mercuryfish-poset ################################################### poset <- independence_test(mercury + abnormal + ccells ~ group, data = mercuryfish, ytrafo = coherence, distribution = exact()) ################################################### ### code chunk number 30: mercuryfish-pvalue ################################################### pvalue(poset) ################################################### ### code chunk number 31: mercuryfish-ppermplot ################################################### par(cex.lab = 1.3, cex.axis = 1.1) ite <- poset ita <- independence_test(mercury + abnormal + ccells ~ group, data = mercuryfish, ytrafo = coherence) site <- support(ite) layout(matrix(1:2, ncol = 2)) site <- site[site <= qperm(ite, 0.1) & site > -3] pite <- sapply(site, function(x) pperm(ite, x)) pita <- sapply(site, function(x) pperm(ita, x)) plot(site, pite, type = "S", ylab = "Probability", xlab = "Standardized Statistic") lines(site, pita, lty = 3) legend("topleft", lty = c(1,3), legend = c("Conditional Distribution", "Approximation"), bty = "n") site <- support(ite) site <- site[site >= qperm(ite, 0.9) & site < 3] pite <- sapply(site, function(x) pperm(ite, x)) pita <- sapply(site, function(x) pperm(ita, x)) plot(site, pite, type = "S", ylab = "Probability", xlab = "Standardized Statistic") lines(site, pita, lty = 3) coin/inst/doc/coin_implementation.Rnw0000644000175100001440000014677212622326244017513 0ustar hornikusers\documentclass[nojss]{jss} %% packages \usepackage{amsfonts,amstext,amsmath} %% need no \usepackage{Sweave.sty} \SweaveOpts{eps = FALSE, keep.source = TRUE, echo = FALSE} %\VignetteIndexEntry{Implementing a Class of Permutation Tests: The coin Package} %\VignetteDepends{coin, e1071, vcd} %\VignetteKeywords{conditional inference, exact distribution, conditional Monte Carlo, categorical data analysis, R} %\VignettePackage{coin} %% math commands \newcommand{\R}{\mathbb{R} } \newcommand{\Var}{\COV} \newcommand{\V}{\COV} \newcommand{\z}{\mathbf{z}} \newcommand{\X}{\mathbf{X}} \newcommand{\Y}{\mathbf{Y}} \newcommand{\sX}{\mathcal{X}} \newcommand{\sY}{\mathcal{Y}} \newcommand{\T}{\mathbf{T}} \newcommand{\x}{\mathbf{x}} \newcommand{\y}{\mathbf{y}} \renewcommand{\t}{\mathbf{t}} \renewcommand{\vec}{\text{vec}} %% code commands \newcommand{\Rclass}[1]{`\code{#1}'} %% hyphenation \hyphenation{Qua-dra-tic} %% JSS \author{Torsten Hothorn\\Ludwig-Maximilians-Universit\"at M\"unchen \And Kurt Hornik\\Wirtschaftsuniversit\"at Wien \AND Mark A.\ van de Wiel\\Vrije Universiteit Amsterdam \And Achim Zeileis\\Wirtschaftsuniversit\"at Wien} \Plainauthor{Torsten Hothorn, Kurt Hornik, Mark A. van de Wiel, Achim Zeileis} \title{Implementing a Class of Permutation Tests: The \pkg{coin} Package} \Plaintitle{Implementing a Class of Permutation Tests: The coin Package} \Shorttitle{\pkg{coin}: Implementing a Class of Permutation Tests} \Abstract{ This description of the \proglang{R} package \pkg{coin} is a (slightly) modified version of \cite{Hothorn+Hornik+VanDeWiel:2008} published in the \textit{Journal of Statistical Software}. The \proglang{R} package \pkg{coin} implements a unified approach to permutation tests providing a huge class of independence tests for nominal, ordered, numeric, and censored data as well as multivariate data at mixed scales. Based on a rich and flexible conceptual framework that embeds different permutation test procedures into a common theory, a computational framework is established in \pkg{coin} that likewise embeds the corresponding \proglang{R} functionality in a common \proglang{S}4 class structure with associated generic functions. As a consequence, the computational tools in \pkg{coin} inherit the flexibility of the underlying theory and conditional inference functions for important special cases can be set up easily. Conditional versions of classical tests---such as tests for location and scale problems in two or more samples, independence in two- or three-way contingency tables, or association problems for censored, ordered categorical or multivariate data---can easily be implemented as special cases using this computational toolbox by choosing appropriate transformations of the observations. The paper gives a detailed exposition of both the internal structure of the package and the provided user interfaces along with examples on how to extend the implemented functionality. } \Keywords{conditional inference, exact distribution, conditional Monte Carlo, categorical data analysis, \proglang{R}} \Plainkeywords{conditional inference, exact distribution, conditional Monte Carlo, categorical data analysis, R} \Volume{28} \Issue{8} \Month{November} \Year{2008} \Submitdate{2007-07-05} \Acceptdate{2008-10-21} \Address{ Torsten Hothorn\\ Institut f\"ur Statistik\\ Ludwig-Maximilians-Universit\"at M\"unchen\\ Ludwigstra{\ss}e 33\\ DE-80539 M\"unchen, Germany \\ E-mail: \email{Torsten.Hothorn@R-project.org}\\ URL: \url{http://www.stat.uni-muenchen.de/~hothorn/}\\ Kurt Hornik, Achim Zeileis\\ Department of Statistics and Mathematics\\ Wirtschaftsuniversit\"at Wien\\ Augasse 2--6\\ AT-1090 Wien, Austria\\ E-mail: \email{Kurt.Hornik@R-project.org}, \email{Achim.Zeileis@R-project.org}\\ Mark A.\ van de Wiel\\ Department of Mathematics\\ Vrije Universiteit Amsterdam\\ De Boelelaan 1081a\\ NL-1081 HV Amsterdam, The Netherlands\\ E-mail: \email{mark.vdwiel@vumc.nl} } <>= options(prompt = "R> ", continue = "+ ") library("coin") library("e1071") set.seed(290875) ### extract slots of a class c2t <- function(x) { classdef <- getClassDef(x) extends <- names(classdef@contains)[1] if (!is.null(extends)) { eslots <- names(getClassDef(extends)@slots) slots <- classdef@slots[!names(classdef@slots) %in% eslots] } else { slots <- classdef@slots } RET <- cbind(names(slots), slots) attr(RET, "contains") <- extends attr(RET, "name") <- x class(RET) <- "c2t" RET } ### pretty printing toLatex.c2t <- function(object, center = TRUE, ...) { RET <- c() if (center) RET <- c(RET, "\\begin{center}") ### class name RET <- c(RET, "\\begin{tabular}{ll}", paste("\\multicolumn{2}{l}{Class \\Rclass{", attr(object, "name"), "}} \\\\", sep = "")) ### extends? if (!is.null(attr(object, "contains"))) RET <- c(RET, paste("\\multicolumn{2}{l}{Contains \\Rclass{", attr(object, "contains"), "}} \\\\", sep = "")) ### slots RET <- c(RET, " & \\\\", "Slot & Class \\\\ \\hline ", apply(object, 1, function(x) { x <- cbind(paste("\\code{", x[1], "}", sep = ""), paste("\\Rclass{", x[2], "}", sep = "")) paste(paste(x, collapse = " & "), "\\\\") }), "\\hline") RET <- c(RET, "\\end{tabular}") if (center) RET <- c(RET, "\\end{center}") class(RET) <- "Latex" return(RET) } @ \begin{document} \section{Introduction} Conditioning on all admissible permutations of the data for testing independence hypotheses is a very old, yet very powerful and popular, idea \citep{fisher1935,Ernst2004}. Conditional inference procedures, or simply \textit{permutation} or \textit{re-randomization} tests, are implemented in many different statistical computing environments. These implementations, for example \code{wilcox.test()} for the Wilcoxon-Mann-Whitney test or \code{mantelhaen.test()} for the Cochran-Mantel-Haenszel $\chi^2$ test in \proglang{R} \citep{rcore2007} or the tools implemented in \pkg{StatXact} \citep{StatXact6}, \pkg{LogXact} \citep{LogXact8}, or \proglang{Stata} \citep{Stata}---see \cite{Oster2002,Oster2003} for an overview---all follow the classical classification scheme of inference procedures and offer procedures for location problems, scale problems, correlation, or nominal and ordered categorical data. Thus, each test procedure is implemented separately, maybe with the exception of conditional versions of linear rank statistics \citep{theory-of-:-1999} in \texttt{NPAR1WAY} as available in \proglang{SAS} \citep{SAS}. Theoretical insights by \cite{StrasserWeber1999} open up the way to a unified treatment of a huge class of permutation tests. The \pkg{coin} package for \underline{co}nditional \underline{in}ference is the computational counterpart to this theoretical framework, implemented in the \proglang{R} system for statistical computing \citep{rcore2007}. \cite{Hothorn:2006:AmStat} introduce the package and illustrate the transition from theory to practice. Here, we focus on the design principles upon which the \pkg{coin} implementation is based as well as on the more technical issues that need to be addressed in the implementation of such conceptual tools. Within package \pkg{coin}, formal \proglang{S}4 classes describe the data model and the conditional test procedures, consisting of multivariate linear statistics, univariate test statistics and a reference distribution. Thus, one can work with objects representing the theoretical entities nearly in the same way as one would work with mathematical symbols. Generic functions for obtaining statistics, conditional expectation and covariance matrices as well as $p$-value, distribution, density and quantile functions for the reference distribution help to extract information from these objects. The infrastructure is conveniently interfaced in the function \code{independence_test()}, thus providing the computational counterpart of the theoretical framework of \cite{StrasserWeber1999}. Here, we start out with an illustrative application of \code{independence_test()} to a small 2-sample problem (see Table~\ref{rotarod}) and then continue to introduce the underlying computational building blocks using the same data set. The data was used previously by \cite{Bergmann:2000} as a challenging example in a comparison of test statistics and $p$-values of the Wilcoxon-Mann-Whitney rank sum test as reported by eleven statistical packages. More specifically, $n = 24$ rats received a fixed oral dose of a centrally acting muscle relaxant as active treatment or a saline solvent as control. The animals were placed on a rotating cylinder and the length of time each rat remained on the cylinder was measured, up to a maximum of $300$ seconds. The rats were randomly assigned to the control and treatment groups, thus a re-randomization test as implemented in \code{independence_test()} is the appropriate way to investigate if the response is independent of the group assignment. The data are particularly challenging because of the many ties in the (censored) response ($\Sexpr{sum(rotarod$time == 300)}$ observations take the maximal value $300$) and the quasi-complete separation (smaller values of time are only observed in the treatment group). Conceptually, this makes computation of the two-sided exact $p$-value for any 2-sample contrast very simple: $p = 2 \cdot {19 \choose 12} / {24 \choose 12} = \Sexpr{round(2 * choose(19, 12) / choose(24, 12), digits = 5)}$. However, in software, this often makes computations of the exact $p$-value more difficult because several simple algorithms fail. \begin{table}[t] \begin{center} \begin{tabular}{|r|rrrrrrrrrrrr|} \hline \code{group} & \multicolumn{12}{|l|}{\code{time}} \\ \hline control & \Sexpr{paste(rotarod$time[1:12], collapse = " & ")} \\ treatment & \Sexpr{paste(sort(rotarod$time[13:24]), collapse = " & ")} \\ \hline \end{tabular} \caption{The \code{rotarod} data: length of \code{time} on rotating cylinder by \code{group}. \label{rotarod}} \end{center} \end{table} Utilizing \pkg{coin}, the hypothesis of independence of length of time and group assignment can be specified by a formula which, together with a data frame \code{rotarod}, serve as arguments to \code{independence_test}: <>= library("coin") data("rotarod", package = "coin") independence_test(time ~ group, data = rotarod, ytrafo = rank_trafo, distribution = exact()) @ Here, the conditional Wilcoxon-Mann-Whitney test was performed via a rank transformation of the response, employing the exact distribution for obtaining the $p$-value (yielding the correct result outlined above). Users of \proglang{R} can easily interpret this output since it is represented in the same format as classical tests in the basic \pkg{stats} package. Based on the $p$-value derived from the exact conditional distribution of the test statistic \code{Z}, the independence of group assignment and time on the cylinder can be rejected. Although the above piece of code looks embarrassingly simple, the underlying computations are much more sophisticated than visible at first sight: The data are pre-processed along with their transformations, deviations from independence are captured by a (possibly multivariate) linear statistic, standardized by conditional expectation and variance, and aggregated to a final test statistic. Subsequently, the requested reference distribution is computed, from which a $p$-value is derived, and everything is wrapped into an object that can be conveniently printed or queried for more detailed information. After briefly reviewing the underlying theory from \cite{StrasserWeber1999} in Section~\ref{sec:theory}, we introduce formal \proglang{S}4 classes and methods capturing all the outlined steps in Section~\ref{sec:class}. Section~\ref{sec:ui} provides further information about high-level user interfaces and extensibility, and Section~\ref{sec:practice} further illustrates how to employ the software in practice using a categorical data example. Section~\ref{sec:oddsandends} concludes the paper with a short discussion, some more details about the underlying theory can be found in an appendix. \section{Permutation tests in a nutshell} \label{sec:theory} In the following we give a brief overview of the general theory for permutation tests as developed by \cite{StrasserWeber1999} and implemented by \cite{Hothorn:2006:AmStat}. The task is to test the independence of two variables $\Y$ and $\X$ from sample spaces $\mathcal{Y}$ and $\mathcal{X}$ which may be measured at arbitrary scales and may be multivariate as well. In addition, $b \in \{1, \dots, k\}$, a factor measured at $k$ levels, indicates a certain block structure of the observations: for example study centers in a multi-center randomized clinical trial where only a re-randomization of observations within blocks is admissible. We are interested in testing the null hypothesis \begin{eqnarray*} H_0: D(\Y | \X, b) = D(\Y | b) \end{eqnarray*} of conditional independence of $\Y$ and $\X$ within blocks~$b$ against arbitrary alternatives, for example shift or scale alternatives, linear trends, association in contingency tables etc. \cite{StrasserWeber1999} suggest deriving scalar test statistics for testing $H_0$ from multivariate linear statistics of the form \begin{eqnarray} \label{linstat} \T = \sum_{j = 1}^k \T_j \in \R^{pq} \end{eqnarray} where the linear statistic for each block is given by \begin{eqnarray*} \T_j = \vec\left(\sum_{i = 1}^n I(b_i = j) w_i g(\X_i) h(\Y_i)^\top\right) \in \R^{pq}. \end{eqnarray*} The function $I(\cdot)$ is the indicator function and $\vec$ denotes the vec operator (which stacks the columns of a matrix). Here, $g: \mathcal{X} \rightarrow \R^{p \times 1}$ is a transformation of the $\X$ measurements and $h: \mathcal{Y} \rightarrow \R^{q \times 1}$ is a transformation of the $\Y$ values. The function $h(\Y_i) = h(\Y_i, (\Y_1, \dots, \Y_n))$ is also called \emph{influence function} and may depend on the full vector of responses $(\Y_1, \dots, \Y_n)$, however only in a permutation symmetric way, i.e., the value of the function must not depend on the order in which $\Y_1, \dots, \Y_n$ appear. The case weights $w_i$ are assumed to be integer-valued, indicating that $w_i$ observations with realizations $\Y_i$, $\X_i$ and $b_i$ are available, with default $w_i \equiv 1$. The distribution of $\T$ depends on the joint distribution of $\Y$ and $\X$, which is unknown under almost all practical circumstances. At least under the null hypothesis one can dispose of this dependency by fixing $\X_1, \dots, \X_n$ and conditioning on all possible permutations of the responses $\Y_1, \dots, \Y_n$ within block $j, j = 1, \dots, k$. The conditional expectation $\mu \in \R^{pq}$ and covariance $\Sigma \in \R^{pq \times pq}$ of $\T$ under $H_0$ given all permutations $\sigma \in S$ of the responses are derived by \cite{StrasserWeber1999} and are given in Appendix~\ref{app}. Having the conditional expectation and covariance at hand we are able to standardize an observed linear statistic $\t \in \R^{pq}$ (of the form given in Equation~\ref{linstat}) and aggregate it to some univariate test statistic $c = c(\t, \mu,\Sigma)$. Various choices for $c(\t, \mu,\Sigma)$ are conceivable, e.g., a quadratic form or a maximum type statistic (see Section~\ref{sec:class}). In the latter case, a natural first step is to standardize each of the $pq$ statistics in $\t$ by its expectation and standard deviation: \begin{eqnarray} \label{standstat} \z = \text{diag}(\Sigma)^{-1/2} (\mathbf{t} - \mu). \end{eqnarray} In the following, we describe a class structure for representing these theoretical objects along with possible choices of test statistics $c$ and computations or approximations of the associated reference distributions. \section{A class structure for permutation tests} \label{sec:class} In this section, the theory of permutation tests, as briefly outlined in the previous section, is captured in a set of \proglang{S}4 classes and methods: In Section~\ref{sec:data}, we suggest objects representing the data and the independence problem, for which a test statistic is computed subsequently. Objects for the associated reference distribution are constructed in Section~\ref{sec:distr}. Finally, in Section~\ref{sec:testobj}, everything is combined in a single object for the whole testing procedure. \newpage \subsection{Data, independence problems and test statistics} \label{sec:data} \subsubsection{Data structure} We are provided with $n$ observations $(\Y_i, \X_i, b_i, w_i), i = 1, \dots, n.$ In addition to variables $\X$, $\Y$, and $b$, it is convenient (for example to efficiently represent large contingency tables) to include case weights $w_i$, defaulting to $w_i \equiv 1$. This data structure is represented by class \Rclass{IndependenceProblem}: <>= toLatex(c2t("IndependenceProblem")) @ Note that objects of this class implicitly define the null distribution $H_0$ and all admissible permutations of observations within blocks. For our illustrating rotating rats example, we specify the hypothesis of independence of variables \code{time} and \code{group} by initializing a new independence problem with the corresponding observations: <>= ip <- new("IndependenceProblem", y = rotarod["time"], x = rotarod["group"]) @ \subsubsection{Independence problems and linear statistics} The transformation functions $g$ and $h$ as well as the transformed observations $g(\X_i)$ and $h(\Y_i), i = 1, \dots, n$, are added to the data structure by extending class \Rclass{IndependenceProblem}: <>= toLatex(c2t("IndependenceTestProblem")) @ The \code{ytrafo} and \code{xtrafo} slots correspond to the transformations $h$ and $g$, respectively. The $i$th row of the $n \times q$ matrix \code{ytrans} corresponds to $h(\Y_i)$. Similarly, the rows of \code{xtrans} ($n \times p$) correspond to $g(\X_i)$. Note that, in addition to the data, hypothesis and permutation scheme, the test statistic $\T$ is defined by objects of class \Rclass{IndependenceTestProblem} as well. In the simplest case of both $\X$ and $\Y$ being univariate factors at $p$ and $q$ levels, $g$ and $h$ are the corresponding dummy codings and the linear statistic $\T$ is the (vectorized) $p \times q$ contingency table of $\X$ and $\Y$. In the rats example, the default dummy coding for factor \code{group} is employed and a rank transformation (via \code{rank_trafo()}) is applied to \code{time}. <>= itp <- new("IndependenceTestProblem", ip, ytrafo = rank_trafo) @ The linear statistic $\T$, its conditional expectation $\mu$ and covariance $\Sigma$ are stored in objects of class \Rclass{IndependenceLinearStatistic}: <>= toLatex(c2t("IndependenceLinearStatistic")) @ Class \Rclass{VarCovar} represents either a complete covariance matrix or its diagonal elements only. By default, only the conditional variances are stored, the whole covariance matrix can be computed as needed (see below). In the rotating rats example, such an object is easily created via <>= ils <- new("IndependenceLinearStatistic", itp) @ Using methods for suitable generic functions (see Table~\ref{tab:generics}), the linear statistic for the rotating rats can be extracted via <>= statistic(ils, type = "linear") @ This is simply the sum of the average ranks in the control group, i.e., $180 = 12 \cdot 15$ because all 12 observations have the maximal average rank 15. Additionally, the associated conditional mean and variance under $H_0$ can be computed via: <>= expectation(ils) variance(ils) @ based upon which we can now set up a test statistic. \subsubsection{Test statistics} \label{sec:teststat} \begin{table}[tb] \begin{center} \begin{tabular}{lp{9.5cm}} \hline Function & Description \\ \hline \code{statistic(object, type)} & Extraction of the linear statistic $\t$ (\code{type = "linear"}), the standardized statistic $\z$ (\code{type = "standardized"}) or the final test statistic $c$ (\code{type = "test"}, only for objects inheriting from \Rclass{IndependenceTestStatistic}). \\ \code{expectation(object)} & Extraction of the conditional expectation~$\mu$. \\ \code{covariance(object)} & Extraction of the complete conditional covariance matrix~$\Sigma$. \\ \code{variance(object)} & Extraction of the diagonal elements of the conditional covariance matrix $\text{diag}(\Sigma)$. \\ \hline \end{tabular} \caption{\label{tab:generics} List of generic functions with methods for classes inheriting from \Rclass{IndependenceLinearStatistic}.} \end{center} \end{table} The specification of the inference procedure is completed by the definition of a univariate test statistic $c$ which is represented by a \emph{virtual} class \Rclass{IndependenceTestStatistic}: <>= toLatex(c2t("IndependenceTestStatistic")) @ The slot \code{standardizedlinearstatistic} contains $\z$, the (possibly multivariate) linear statistic standardized by its conditional expectation and variance (Equation~\ref{standstat}). Slot \code{teststatistic} is for storing univariate test statistics $c$. Methods for all generics listed in Table~\ref{tab:generics} are also available for objects of this class. \pkg{coin} implements three \Rclass{IndependenceTestStatistic} subclasses with associated univariate test statistics: scalar test statistics $c_\text{scalar}$, maximum-type statistics $c_\text{max}$ and quadratic forms $c_\text{quad}$. In case of univariate linear statistics $\t$, i.e., for $pq = 1$, a natural test statistic $c$ is simply the standardized linear statistic \begin{eqnarray*} c_\text{scalar}(\t, \mu, \Sigma) = \frac{\t - \mu}{\sqrt{\Sigma}} = \z. \end{eqnarray*} A special class is available for this <>= toLatex(c2t("ScalarIndependenceTestStatistic")) @ that also defines a character vector specifying the alternative to test against (\code{"two.sided"}, \code{"greater"} and \code{"less"}). Thus, the construction of a scalar test statistic corresponds to the construction of a suitable object via <>= sits <- new("ScalarIndependenceTestStatistic", ils, alternative = "two.sided") statistic(sits, type = "standardized") @ which yields the standardized Wilcoxon-Mann-Whitney statistic reported in the introductory example. In the multivariate case ($pq > 1$), a natural extension is to employ a maximum-type statistic of the form \begin{displaymath} c_\text{max}(\mathbf{t}, \mu, \Sigma) = \begin{cases} \max \left| \z \right| & \text{(``two-sided'')}, \\ \min \left( \z \right) & \text{(``less'')}, \\ \max \left( \z \right) & \text{(``greater'')}, \end{cases} \end{displaymath} where the definition reflects the associated alternative with name given in quotes. Again a special class \Rclass{MaxTypeIndependenceTestStatistic} is available for this: <>= toLatex(c2t("MaxTypeIndependenceTestStatistic")) @ Alternatively, a quadratic form $c_\text{quad}(\mathbf{t}, \mu, \Sigma) = (\mathbf{t} - \mu)^\top \Sigma^+ (\mathbf{t} - \mu)$ can be used as test statistic. It is computationally more expensive because the Moore-Penrose inverse $\Sigma^+$ of $\Sigma$ is involved. Such statistics are represented by objects of class \Rclass{QuadTypeIndependenceTestStatistic} defining slots for $\Sigma^+$ and its rank (degrees of freedom): <>= toLatex(c2t("QuadTypeIndependenceTestStatistic")) @ A slot \code{alternative} is not needed because, by construction, quadratic forms cannot be applied to one-sided hypotheses. \subsection{Representation of conditional null distributions} \label{sec:distr} The conditional distribution (or an approximation thereof) and thus the $p$-value corresponding to the statistic $c(\mathbf{t}, \mu, \Sigma)$ can be computed in several different ways. For some special forms of the linear statistic, the exact distribution of the test statistic is tractable. For 2-sample problems, the shift algorithm by \cite{axact-dist:1986,exakte-ver:1987} and the split-up algorithm by \cite{vdWiel2001} are implemented as part of the package. Conditional Monte Carlo procedures can always be used to approximate the exact distribution. In this case, within each block, a sufficiently large number of random samples from all admissible permutations of the observations is drawn. The test statistic is computed for the permuted $\Y$ values and the distribution of these test statistics is an approximation to the conditional reference distribution. When $p$-values are computed, confidence intervals are available from the binomial distribution. \citet[Theorem 2.3]{StrasserWeber1999} showed that the conditional distribution of linear statistics $\T$ with conditional expectation $\mu$ and covariance $\Sigma$ tends to a multivariate normal distribution with parameters $\mu$ and $\Sigma$ as $\sum_{i = 1}^n I(b_i = j)w_i \rightarrow \infty$ for all $j = 1, \dots, k$. Thus, the asymptotic conditional distribution of the standardized linear statistic $\z$ is normal and therefore, $p$-values for scalar or maximum-type univariate statistics can be computed directly in the univariate case ($pq = 1$) or approximated by numerical algorithms \citep{numerical-:1992} as implemented in package \pkg{mvtnorm} \citep{PKG:mvtnorm} in the multivariate setting. For quadratic forms $c_\text{quad}$ which follow a $\chi^2$ distribution with degrees of freedom given by the rank of $\Sigma$ \citep[see][Chapter 29]{johnsonkotz1970}, asymptotic probabilities can be computed straightforwardly. A null distribution is represented by either a distribution (and $p$-value) function only <>= toLatex(c2t("PValue")) @ or, where possible, is augmented by its density and quantile functions: <>= toLatex(c2t("NullDistribution")) @ Currently, there are three classes extending \Rclass{NullDistribution}: \Rclass{ExactNullDistribution}, \Rclass{ApproxNullDistribution} (adding a slot \code{seed} containing the current state of the random number generator) and \Rclass{AsymptNullDistribution}. All of them can be queried for probabilities, quantiles, etc., using suitable methods (see Table~\ref{tab:dists} for an overview). New methods for computing or approximating the conditional distribution can be integrated into the framework via suitable inheritance from \Rclass{PValue} (an example is given in Section~\ref{sec:ui}). \begin{table}[tb] \begin{center} \begin{tabular}{lp{9.5cm}} \hline Class & Description \\ \hline \Rclass{ExactNullDistribution} & Exact conditional null distribution (e.g., computed via the shift algorithm). \\ \Rclass{ApproxNullDistribution} & Approximation of the exact conditional distribution using conditional Monte Carlo procedures. \\ \Rclass{AsymptNullDistribution} & Asymptotic conditional distribution (via multivariate normal or $\chi^2$ distribution). \\ \hline Method & Description \\ \hline \code{pvalue(object)} & Computation of the $p$-value (plus a confidence interval if Monte Carlo procedures have been used) based on an observed test statistic $c$ and its conditional null distribution. \\ \code{midpvalue(object)} & Computation of the mid-$p$-value (plus a confidence interval if Monte Carlo procedures have been used) based on an observed test statistic $c$ and its conditional null distribution. \\ \code{pvalue_interval(object)} & Computation of the $p$-value interval based on an observed test statistic $c$ and its conditional null distribution. \\ \code{dperm(object, x)} & Evaluation of the probability density function at $x$. \\ \code{pperm(object, q)} & Evaluation of the cumulative distribution function for quantile $q$.\\ \code{qperm(object, p)} & Evaluation of the quantile function for probability $p$.\\ \code{rperm(object, n)} & Generation of $n$ random numbers from the null distribution.\\ \code{support(object)} & Extraction of the support of the null distribution.\\ \hline \end{tabular} \caption{\label{tab:dists} Classes and methods for conditional null distributions.} \end{center} \end{table} The \code{support} function returns the support of a discrete distribution. Using these tools, the exact $p$-value for the independence test on the rotating rats along with the complete exact reference distribution (allowing for the computation of quantiles, for example) can be derived via <>= end <- ExactNullDistribution(sits) pvalue(end, statistic(sits)) qperm(end, 0.95) @ For maximum-type statistics $c_\text{max}$, single-step and step-down multiplicity adjusted $p$-values based on the limiting distribution and conditional Monte Carlo methods \citep[see][]{WestfallYoung1993} are available as well. \subsection{Objects for conditional tests} \label{sec:testobj} A conditional test is represented by a test statistic of class \Rclass{IndependenceTestStatistic} and its conditional null distribution inheriting from class \Rclass{PValue}. In addition, a character string giving the name of the test procedure is defined in class \Rclass{IndependenceTest}: <>= toLatex(c2t("IndependenceTest")) @ Remember that objects of class \Rclass{IndependenceTestStatistic} represent the data, hypothesis, linear statistic and test statistic along with conditional expectation and covariance matrix. The \code{estimates} slot may contain parameter estimates where available, for example an estimate and corresponding confidence interval for a shift parameter derived from a conditional Wilcoxon-Mann-Whitney test. A complete description of the conditional independence test for the rotating rats data is given by an object of class \Rclass{IndependenceTest} which is conveniently represented by the corresponding \code{show()} method: <>= new("IndependenceTest", statistic = sits, distribution = end) @ Of course, the methods previously defined in this section (see Tables~\ref{tab:generics} and \ref{tab:dists}) are defined for objects of class \Rclass{IndependenceTest} as well. Thus, all theoretical entities introduced in Section~\ref{sec:theory} are now captured in a single object of class \Rclass{IndependenceTest} and all methods for extracting information from it are readily available. \section{Interfaces to permutation inference} \label{sec:ui} In Section~\ref{sec:class}, all the necessary computational building blocks are introduced for implementing the general class of permutation tests outlined in Section~\ref{sec:theory}. However, one rarely needs to exploit the full flexibility of each component of the framework. More often, one wants to employ sensible defaults for most (if not all) steps in the analysis but preserving the possibility to extend a few steps based on user-supplied methods. For this purpose, \pkg{coin} provides the function \code{independence_test()} as the main user interface for performing independence tests. Many of its arguments have flexible defaults or can be specified by a simple character string while still allowing to plug in much more complex user-defined objects, e.g., for data preparation, computation of the null distribution, or transformation functions. \subsection{A convenient user interface} Via the generic function \code{independence_test()}, all steps described in Section~\ref{sec:class} can be carried out using a single command. The main workhorse behind it is the method for objects of class \Rclass{IndependenceProblem}: \begin{Sinput} independence_test(object, teststat = c("maximum", "quadratic", "scalar"), distribution = c("asymptotic", "approximate", "exact"), alternative = c("two.sided", "less", "greater"), xtrafo = trafo, ytrafo = trafo, scores = NULL, check = NULL, ...) \end{Sinput} Thus, \code{object} describes the data and the null hypothesis. Arguments \code{xtrafo} and \code{ytrafo} refer to the transformations $g$ and $h$: Both are by default set to function \code{trafo()} which chooses suitable transformations based on the scale of the considered variables (see below). The three types of univariate test statistics discussed above are hard-coded and can be specified by a simple string. Similarly, the reference distribution and the alternative hypothesis can be supplied as strings. In addition to these simple specifications, more flexible specifications for the data (\code{object}), the transformations (\code{xtrafo}, \code{ytrafo}), and the distribution are available, as discussed in the following. The \code{scores} argument takes a named list of numeric vectors to be used as scores for ordered factors. Validity checks for objects of class \Rclass{IndependenceProblem} specified to argument \code{check} can be used to test for certain aspects of the data, e.g., when one has to make sure that two independent samples are present. \subsection{Data specification} The standard way of specifying relationships between variables in \proglang{R} are formulas in combination with a data frame. Hence, a \Rclass{formula} method for \code{independence_test()} is provided that interprets the left hand side variables of a formula as $\Y$ variables (univariate or possibly multivariate), the right hand side as $\X$ variables (univariate or multivariate as well). An optional blocking factor can specified after a vertical bar, e.g., \begin{Sinput} y1 + y2 ~ x1 + x2 | block \end{Sinput} This specifies an independence problem between two $\Y$ variables and two $\X$ variables (in case all variables are numeric the linear statistic is 4-dimensional with $p = 2$ and $q = 2$) for each level in \code{block}. As usual, \code{data}, \code{weights} and \code{subset} arguments can be specified as well. Based on all these arguments the \Rclass{IndependenceProblem} is built and simply passed on to the \code{independence_test()} method described above. For (simple) categorical data, there is yet another way of specifying the independence problem, namely via the \Rclass{table} method of \code{independence_test()}. Its first argument is allowed to be a 2- or 3-dimensional table: The first two margins are interpreted as univariate categorical $\X$ and $\Y$ variables and the optional third margin is taken to be the blocking factor. Again, an \Rclass{IndependenceProblem} object is derived from this and passed on to the associated method. \subsection{Null distributions} In the simplest case, the \code{distribution} argument of the \code{independence_test()} methods can be specified by a simple character string. However, this is not flexible enough in some situations and hence it is also possible to supply a function that can compute a \Rclass{PValue} object from an \Rclass{IndependenceTestStatistic} object. For the most important special cases, suitable function \emph{generators} are provided in \pkg{coin}. For example, the function \code{approximate(B = 1000)} returns a Monte Carlo function that draws \code{B} (default: \Sexpr{formals(approximate)$B}) random permutations. Similarly, \code{exact()} and \code{approximate()} return functions computing the exact or asymptotic null distributions, respectively. Again, computational details in the computation of the null distribution can be controlled via arguments of the function generators. Additionally, it is also possible to set \code{distribution} to a user-supplied algorithm for computing the conditional null distribution. It just has to be provided in the form of a function taking an object inheriting from \Rclass{IndependenceTestStatistic} and returning an object inheriting from class \Rclass{PValue}. As an example, consider the computation of the exact $p$-value for testing independence of two continuous random variables. The identity transformation is used for both $g$ and $h$, thus a conditional version of the test for zero Pearson correlation is constructed. We use a tiny artificial example where enumeration and evaluation of all possible permutations is still feasible. The function \code{sexact()} extracts both variables, computes all permutations using the function \code{permutations()} from \pkg{e1071} \citep{PKG:e1071}, computes the linear test statistic for each permutation, standardizes it by expectation and variance, and then sets up the distribution function. <>= set.seed(2908) correxample <- data.frame(x = rnorm(7), y = rnorm(7)) sexact <- function(object) { x <- object@xtrans y <- object@ytrans perms <- permutations(nrow(x)) pstats <- apply(perms, 1, function(p) sum(x[p,] * y)) pstats <- (pstats - expectation(object)) / sqrt(variance(object)) p <- function(q) 1 - mean(pstats > q) new("PValue", p = p, pvalue = p) } @ Note that above implementation is kept simple for the purpose of illustration; it hard-codes the alternative (less) and assumes that the transformed variables are univariate. This function can then be passed to \code{independence_test()} for computing the distribution function and $p$-value: <>= independence_test(y ~ x, data = correxample, alternative = "less", distribution = sexact) @ \subsection{Transformations} By default, \code{independence_test()} chooses the transformations $g$ and $h$ via the wrapper function \code{trafo()}. This, in turn, chooses the actual transformation based on the scale of each variable (individually) in a data frame \code{data}: \begin{Sinput} trafo(data, numeric_trafo = id_trafo, factor_trafo = f_trafo, surv_trafo = logrank_trafo, var_trafo = NULL, block = NULL) \end{Sinput} The identity transformation is used for numeric variables (\code{id_trafo()}), factors are transformed to indicator variables (\code{f_trafo()}), and censored variables are transformed to log rank scores (\code{logrank_trafo()}). In \code{f_trafo()} a set of $k$ indicator functions is used for a factor with $k$ levels, unless $k = 2$ for which a univariate indicator function is employed. A named list containing different transformations to be applied to certain variables may be specified as \code{var_trafo} argument. When a factor is given as \code{block}, all transformations are applied separately within each block. The function \code{trafo()} can also easily be re-used by supplying other (possibly user defined functions) as arguments to \code{trafo()}. Instead of using \code{trafo()}, a user-defined transformation can also be passed directly to \code{xtrafo} or \code{ytrafo}. As an example, consider using a Mood test against scale alternatives for the rotating rats data. This amounts to using the transformation $h(Y_i) = (\text{rank}(Y_i) - (n + 1) / 2)^2$ for the response: <>= mood_score <- function(y) (rank_trafo(y) - (sum(!is.na(y)) + 1) / 2)^2 @ This can be used for constructing an exact test (based on the split-up algorithm) by hand: <>= ip <- new("IndependenceProblem", y = rotarod["time"], x = rotarod["group"]) itp <- new("IndependenceTestProblem", ip, ytrafo = mood_score) ils <- new("IndependenceLinearStatistic", itp) sits <- new("ScalarIndependenceTestStatistic", ils, alternative = "two.sided") new("ScalarIndependenceTest", statistic = sits, distribution = ExactNullDistribution(sits, algorithm = "split-up")) @ Alternatively, and more easily, the same result can be obtained by plugging \code{mood_score()} into \code{independence_test()}: <>= independence_test(time ~ group, data = rotarod, ytrafo = mood_score, distribution = exact(algorithm = "split-up")) @ Similarly to the Mood test, the conditional counterpart of many other classical tests (some of them implemented in package \pkg{stats}) are easily available through \code{independence_test()} by specifying the appropriate \code{xtrafo}, \code{ytrafo} and \code{teststat}. This includes the Wilcoxon-Mann-Whitney or Cochran-Mantel-Haenszel tests, but also many other well-known tests as shown in Table~\ref{confct}. Due to this flexibility, almost all special-purpose functionality implemented in packages \pkg{exactRankTests} \citep{Rnews:Hothorn:2001,HothornHornik:2002:CompStat,pkg:exactRankTests} and \pkg{maxstat} \citep{Rnews:Hothorn+Lausen:2002,pkg:maxstat} can be conveniently provided within the \pkg{coin} framework, so that both packages will become deprecated in the future. \begin{table}[tb] \begin{center} \begin{tabular}{lllll} \\ \hline Test & \code{xtrafo} $g$ & \code{ytrafo} $h$ & \code{teststat} $c$ \\ \hline \multicolumn{4}{c}{} \\ \multicolumn{4}{c}{Independent samples} \\ \multicolumn{4}{c}{} \\ Wilcoxon-Mann-Whitney & \code{f_trafo()} & \code{rank_trafo()} & \code{"scalar"} \\ Normal quantiles & \code{f_trafo()} & \code{normal_trafo()} & \code{"scalar"} \\ Median & \code{f_trafo()} & \code{median_trafo()} & \code{"scalar"} \\ Ansari-Bradley & \code{f_trafo()} & \code{ansari_trafo()} & \code{"scalar"} \\ Log rank & \code{f_trafo()} & \code{logrank_trafo()} & \code{"quadratic"} \\ Kruskal-Wallis & \code{f_trafo()} & \code{rank_trafo()} & \code{"quadratic"} \\ Fligner & \code{f_trafo()} & \code{fligner_trafo()} & \code{"quadratic"} \\ Spearman & \code{rank_trafo()} & \code{rank_trafo()} & \code{"scalar"} \\ Cochran-Mantel-Haenszel & \code{f_trafo()} & \code{f_trafo()} & \code{"quadratic"} \\ Pearson's $\chi^2$ & \code{f_trafo()} & \code{f_trafo()} & \code{"quadratic"} \\ Cochran-Armitage / Linear & scores & any & \code{"scalar"} \\ Association & & & \\ $K$-sample permutation test & \code{f_trafo()} & any & any \\ Maximally selected statistics & \code{maxstat_trafo()} & any & \code{"maximum"} \\ \multicolumn{4}{c}{} \\ \multicolumn{4}{c}{Dependent samples} \\ \multicolumn{4}{c}{} \\ Friedman & \code{f_trafo()} & \code{rank_trafo()} & \code{"quadratic"} \\ Stuart-Maxwell & \code{f_trafo()} & \code{f_trafo()} & \code{"quadratic"} \\ Wilcoxon signed-rank & \code{f_trafo()} & \code{rank_trafo()} & \code{"scalar"} \\ \hline \end{tabular} \caption{Representations of the conditional counterparts of important classical tests in \pkg{coin}. \label{confct}} \end{center} \end{table} \section{Permutation tests in practice: A categorical data example} \label{sec:practice} The job satisfaction of African-American males in the USA \citep[][Table 7.8]{agresti2002} is described by measures of income and reported job satisfaction in four (ordinal) classifications. It seems natural to surmise that job satisfaction increases with income. The data (see Figure~\ref{jsplot}) is given as a three-dimensional \Rclass{table} with variables \code{Income} and \code{Job.Satisfaction} according to \code{Gender} (labels slightly modified for convenience): <>= data("jobsatisfaction", package = "coin") js <- jobsatisfaction dimnames(js)[[2]] <- c("VeryDiss", "LitSat", "ModSat", "VerySat") ftable(Job.Satisfaction ~ Gender + Income, data = js) @ \setkeys{Gin}{width=\textwidth} \begin{figure} \begin{center} <>= library("vcd") cotabplot(js, split_vertical = TRUE, spacing = spacing_highlighting, gp = gpar(fill = rev(gray.colors(4))), labeling_args = list(rot_labels = 0, varnames = FALSE, just_labels = c("center", "right")), panel_args = list(margins = c(3, 1, 2, 3.5))) @ \caption{Conditional mosaic plot of job satisfaction and income given gender. \label{jsplot}} \end{center} \end{figure} The Cochran-Mantel-Haenszel test---a classical test for testing independence in stratified contingency tables---could be used for assessing the independence hypothesis of income and job satisfaction (stratified by gender). Traditionally, this test employs a $c_\text{quad}$ statistic derived from the contingency table and a $\chi^2$ approximation of the null distribution: <>= it <- independence_test(js, teststat = "quadratic", distribution = asymptotic()) it @ Thus, the test does not indicate significant departure from independence. However, ordering of the factors is not exploited by the Cochran-Mantel-Haenszel test. As some positive correlation of the two factors would seem natural, it is worth having a closer look at the data and the test result. The underlying linear statistic is <>= statistic(it, type = "linear") @ This is exactly the original contingency table aggregated over the block factor \code{Gender}: <>= margin.table(js, 1:2) @ Therefore, the standardized linear statistic can be interpreted similarly to Pearson residuals for the independence hypothesis: <>= statistic(it, type = "standardized") @ The positive diagonal and (mostly) negative off-diagonal elements convey that higher income categories seem to be associated with higher job satisfaction. Thus, to direct power against ordered alternatives, a linear-by-linear association statistic \citep{agresti2002} should be used instead of the omnibus $\chi^2$ statistic. This can be conveniently performed within \pkg{coin}, e.g., using simple equi-distant scores and a Monte Carlo approximation of the null distribution: <>= it <- independence_test(js, distribution = approximate(B = 10000), scores = list(Job.Satisfaction = 1:4, Income = 1:4)) pvalue(it) @ Using this strategy, the null hypothesis of independence of job satisfaction and income can be rejected in favor of a positive association of both variables. Other choices of scores are also conceivable. Especially when there is an underlying numeric scale, interval midpoints are often used \citep[see][for an example]{Hothorn:2006:AmStat}. For other patterns of dependence---e.g., when only a few cells in a large table deviate from independence---a maximum-type statistic is also useful for contingency tables. To complete our tour of \pkg{coin} tools for categorical data, we briefly illustrate this approach using the job satisfaction data again (even though a maximum-type statistic is clearly not very powerful for the dependence pattern in this data set). The maximum-type test is set up easily: <>= independence_test(js, teststat = "maximum") @ with its conditional asymptotic null distribution being available immediately (due to the joint multivariate normal distribution for the contingency table $\T$). Single-step adjusted $p$-values for each cell of the contingency table corresponding to this maximum test can be computed via <>= pvalue(independence_test(js, teststat = "maximum"), method = "single-step") @ These $p$-values can be interpreted in a way similar to standardized contingency tables. The discrepancy between the global adjusted $p$-value shown above and the minimum single-step adjusted $p$-value is due to simulation variance. For more practical examples, including applications with numeric variables, we refer to \cite{Hothorn:2006:AmStat}. \section{Odds and ends} \label{sec:oddsandends} \paragraph{Internal functionality.} The core functionality, i.e., a small set of functions computing the linear statistic $\T$ (both for the original and permuted data), the conditional expectation~$\mu$ and conditional covariance matrix~$\Sigma$, is coded in \proglang{C}. The shift and split-up algorithms \citep{axact-dist:1986,exakte-ver:1987,vdWiel2001} for computing the exact null distribution in 2-sample problems with univariate response as well as conditional Monte Carlo procedures for approximating the exact conditional null distribution are implemented in \proglang{C} as well. (In addition, some helper functions, e.g., the Kronecker product etc., are coded in \proglang{C}.) The complete \proglang{C} source code and its documentation can be accessed via <>= browseURL(system.file("documentation", "html", "index.html", package = "coin")) @ The naming scheme of the \proglang{C} routines distinguishes between functions only called at the \proglang{C} level (\code{C_}\textit{foo}) and functions which can be called from \proglang{R} via the \code{.Call} interface (\code{R_}\textit{foo}). Such functions are available for most of the internal \proglang{C} functions to enable unit testing. \paragraph{Quality assurance.} The test procedures implemented in \pkg{coin} are continuously checked against results obtained by the corresponding implementations in \pkg{stats} (where available). In addition, the test statistics and exact, approximate and asymptotic $p$-values for data examples given in the \pkg{StatXact}~6 user manual \citep{StatXact6} are compared with the results reported there. Step-down multiple adjusted $p$-values have been checked against results reported by \code{mt.maxT()} from package \pkg{multtest} \citep{PKG:multtest}. For details on the test procedures we refer to the \proglang{R} transcript files in directory `\code{tests}' of the \pkg{coin} package sources. \paragraph{Computational details.} The \pkg{coin} package imports packages \pkg{mvtnorm} \citep{PKG:mvtnorm} for the evaluation of the multivariate normal distribution and package \pkg{modeltools} \citep{PKG:modeltools} for formula parsing. The class structure, internal functionality, user interface and examples are based on \pkg{coin} version \Sexpr{packageDescription("coin")$Version}, available under the terms of the General Public License from \url{http://CRAN.R-project.org/}. \proglang{R} version \Sexpr{paste(version$major, version$minor, sep = ".")} \citep{rcore2007} was used for the computations, Figure~\ref{jsplot} was created using the \pkg{vcd} package \citep{vcd}. \section*{Acknowledgments} We would like to thank Helmut Strasser for discussions on the theoretical framework. Henric Winell provided clarification and examples for the Stuart-Maxwell test and helped identifying bugs. The work of Torsten Hothorn was supported by Deutsche Forschungsgemeinschaft (DFG) under grant HO 3242/1-3. \bibliography{coin} \newpage \begin{appendix} \section{Expectation and covariance} \label{app} The conditional expectation and covariance matrix of linear statistics $\T$ as given in Equation~\ref{linstat} in Section~\ref{sec:theory} are computed as follows. Let $w_{\cdot j} = \sum_{i = 1}^n I(b_i = j)w_i$ denote the sum of the weights in block $j$ and $S_j$ the set of all permutations of the observations in block $j$. The conditional expectation of the transformation $h$ in block $j$ is \begin{eqnarray*} \E(h | S_j) = w_{\cdot j}^{-1} \sum_i I(b_i = j)w_i h(\Y_i) \in \R^q \end{eqnarray*} with corresponding $q \times q$ covariance matrix \begin{eqnarray*} \V(h | S_j) = w_{\cdot j}^{-1} \sum_i I(b_i = j)w_i \left(h(\Y_i) - \E(h | S_j) \right) \left(h(\Y_i) - \E(h | S_j)\right)^\top. \end{eqnarray*} This is the basis for computing the conditional expectation and covariance of the linear statistic $\T_j$ in block $j$: \begin{eqnarray*} \mu_j & = & \E(\T_j | S_j) = \vec \left( \left( \sum_{i = 1}^n I(b_i = j)w_i g(\X_i) \right) \E(h | S_j)^\top \right) \end{eqnarray*} and \begin{eqnarray*} \Sigma_j & = & \V(\T_j | S_j) \nonumber \\ & = & \frac{w_{\cdot j}}{w_{\cdot j} - 1} \V(h | S_j) \otimes \left(\sum_i I(b_i = j) w_i \left( g(\X_i) \otimes g(\X_i)^\top\right) \right) \label{expectcovar} \\ & - & \frac{1}{w_{\cdot j} - 1} \V(h | S_j) \otimes \left( \sum_i I(b_i = j) w_i g(\X_i) \right) \otimes \left( \sum_i I(b_i = j) w_i g(\X_i)\right)^\top \nonumber \end{eqnarray*} where $\otimes$ is the Kronecker product. The conditional expectation and covariance of $\T$, aggregated over all $k$ blocks, are then given by \begin{eqnarray*} \E(\T | S_j) & = & \mu \; = \; \sum_{j = 1}^k \mu_j \; = \; \sum_{j = 1}^k \E(\T_j | S_j), \\ \V(\T | S_j) & = & \Sigma \; = \; \sum_{j = 1}^k \Sigma_j \; = \; \sum_{j = 1}^k \V(\T_j | S_j). \end{eqnarray*} \end{appendix} \end{document} coin/inst/doc/MAXtest.pdf0000644000175100001440000044475312622326341015004 0ustar hornikusers%PDF-1.5 % 1 0 obj << /Type /ObjStm /Length 4024 /Filter /FlateDecode /N 74 /First 605 >> stream x[YsF~_1oƘ@**J|JJr|l"! E*$c~= Aʰ,===}OC14sC`YmciYr&?`$|LgÔI˔x26SVT,:3Dad(gBgͬ0XҙVxq:كbRT 鰌`dx8NtbG6-fdĪb^ȮʫUBQIƬ8,0t%DfbX'G/ٓ鼚guL t8YY +קe5JCCŤ"/J?svߧO- =D:t$UJ[O *uYԴ͒N&ӊ0544>7hzD/؏GONmn3Eb-GjO!0#~T=9hA;6%y[3l:<)*Gajŧ @=u(,͉ZmsL\{<DL@M1~HI] MZzeQUN$Չ:-NCDi$E'(&A1庘ZbU gpi5qmBæ4sfb 6 m.g^ ]20~(o\~S=;%o3n5OjJG'>~<9H\VO1;+WE5+?,F6^A?]%HqAbFd'gc4`ޞ\*k2 BmFxYNZDqO8{@D('3iiX~(6j[d]03Z1Hg>*S'ʋYۘG(\t/,j>qD~ rrAna‹Llzn |.V0]WԤeCM9.Iu=E**u_&n@-`xM& 39"/$N@Y Ђ ؆?NDد~.0$tLK9Oib==_?/ŏ1?53>x:#^s~~^sx,/%|}YLx1>5.ftg|txūYQ/}1\PYQ)E_q"翕nUag8NpP`vqAIU\cx#!CDo R#|xYHxma:q=LZRtн}VZÇe֔rpR\Cv2A Kޡv N<˘_`D_6jTU=uhYqV m"`$f#FQgN{鈰E h7$Q-Rxœj%w{ 6LFҳ`Wjg4R|abG%y94Gt8/(ൌb>n$B?A|2pxPŴ*)vhOlI\i&+U2[ /o1V&>N0-φ^iyWžZ}ɻׯٚ^ MJU1&X[ 7GyC$ZLo6~)\|mMNcTWz4i!]!0!p=ԪĂm6+:Om[=ަx8HY|h CXr&!9pœ͇eYQUKT4V 6 be\6 3m7lKzjD !BeEu;-0YfIW슙33Iۯ+[0ulؘOh5QkT_{+75q\nCvgNAod~>f Tn7Oann/2:r7F&L+ZE9LX; 46i2he*$=^}fi?>q2YogI31.3ܱ )͓Q^pByi__ABeRZ]"eB}{DJ6mh #(>  _"A"[ P ?m2!dPe^PC 'L|TVgTQPΛRڻM*JJNmk$yKK 8VMF*pRRg$(;;JR,+"h*8WǵNN CVXۉ>uEwۮ!W&{vVmE JojE%6VhG+&~\ϻe@cb&]2[}bD_I:ɛ' lddoeǾŷT 结~G{&VIDOLyա۠Q\F)r)zg\[ݗ.j?&}OhKvfL*q蛵O7jm9 oՎ)㭳,n zc7zLU9YP.`\Ͻ<km+Aȭzc#Y]k*^n)U͎ǐYkȚkېo8nF6+ Xh~ooR9R)D *8B#VX%(Ev{МͿNӮ=Il椏Ѫ{iWHȚ|AD {lX.p} ^@JpOHT>ӹ_!(o<}C יoGj3KW^LPR?㢩"Rߔ!D)_apY!*u1\Va +%Zz{ˏsDM}HhX7KG1b:3Vps}Jgv읶vKcsʏ[^sֺQ߲X| kْ߁j!ɴH!˭_&<½dӧ1MneW`^:Uok08m[pꃻ-bgu,;X1꠮ʊY;4PůJn%J,BG>nY|ྡྷ`MFӇEniTvKۋ7.AњgOC?)C盗o5#hXq~1NC 8R[OZQշ46Deuh*[nJ2B]`xa h]-K-(mTn>ߪe{-"JXD)K{KoϚ +b-E2[g0#[7endstream endobj 76 0 obj << /Subtype /XML /Type /Metadata /Length 1660 >> stream GPL Ghostscript 9.10 genetic association, case-control study, robust trend test, maximum test, conditional inference 2015-11-16T11:15:59+01:00 2015-11-16T11:15:59+01:00 David M. Jones CMBX12Ludwig A. Hothorn, Torsten Hothorn() endstream endobj 77 0 obj << /Type /ObjStm /Length 2877 /Filter /FlateDecode /N 74 /First 654 >> stream x[ko7('P[lv&-A'`eɕi~pɑc)*y8yxyx!2Bb*Y%γXERa(ǢekŢCYLY L{:ҳ$> KY C}V{ᘵڲ"QK)Pif΢h% se+i (\I\D HT rTNdH*'1o$C Wȣ4! )eYP*7XO{)*'^Ϫ*Xi.]nq]6}C*.NO^<[K<]/գ'i=ᤞLi5ԷxB)x>(yȳMH[oesM5Z+>ѧ_\|CˣO~Z>עϨ2/xp諭na'x+މ .D">֟*]-j1zTm5Ǘb"bZ}FbZh'U%d T^ WS乲:zXtT=Z œհBNN܅⬩nγWY~ d m)htDLގQ-kHD)=ʥZu" .7  ucAP 9rX}ZeZEZt ŕr{ 8Y(nwSg&" _ңF,|DY"=PXdaKؚT}*#l2ja8tߌj[ŗ9趡"}T{ SaOo)@Q}tp6=ftw[M`LnnM=]!V|ŸjtI$VKO*=WB,j dKNn94z?;??Tp..q^r^)V)|廁t'ޝ8Xn_KőUee .*"qiꋪߊz|s7l%Rxz~bN~?ƓjRpqL: e ޾i#۬7CyZ]PN7CZ[Ge?(aA)7G P=Z (%O.2 "9yU pPaGC"` `2Iqa0) 1a泚'oֳiURm'5A Scsj,F8_R('WU_#0 _hY%isJ n4 c.mJ]Qot.iG*@k]#+3DMgN]; {ZeIҺnjUP!Q`y  -_EgTJ<ʰ P.$tR*bP\yG'(No=OhTӲ@m?t)"fuPkPE[CT ϵN=%y4}~B#yD}sk݁@aL;GzOk-F/:aQA[?1hQm*Hṿ ^c[ 6CzyrQVOn;ay G|@ݠsA&5ցl[Nl_`bMUFlhYeDrtHmyKnG]6 5Ph[iѪT⹂=W|"*-%`P}t  K) C&uO #~t*1O\*~ qrpGuҔ ;9&CivG+#6ie$P!z [xRvΊT7<aP<Pj'3HEhxDPhN]BTsPiL}Z+ e$60߮L%@.:NO˪:ϰ58:DS/"73PP]z ];:T@ib~݋r\mĠ%0I } Vl * (xT'U@kfmč弆~j`+@Z~3Pw=/I]uWME\2P #IG3g#ոo?LPtu cNQ I}1Һ m%gw>9& $$z;鼆 XN>6`2Lָ9; (Hˀ֔੼>^i(8Ô w0u@rKSȊF[:b}ekPIhA !AS#nЩqK0QuC`Z7Oٴhy={OI5?򱳥CGg4[>O-ZpCSSl0.bK?TDjrT{n~Zwo1` Cc x0?-Ϗְ57endstream endobj 152 0 obj << /Type /ObjStm /Length 2566 /Filter /FlateDecode /N 73 /First 646 >> stream xZrF}߯GRʦV/QmrHgcg KIEB߾/%2eJ5p0}j&IZlD똎gV[9K"N1 N,{RP7u`F+ciu0WtC&i"SRa/R񯌌0 u6@Ti%֖D !Y=Rh(KÌ$2u:Cόv XIDf3ABDD;*f%5fYC3Gˬdtzl%KB`PB0 ;:P KѰu%,S10{h%B0#Yς Faf%r@'3! ASZJPx2 Xa]Y,Yu;O,;ʚ=r,{/j_y' ZL;=+G:JWqy2Wy]s5?2.I]ӫ){ ?'D E8cdWk}5^MFuQz˜WMiWjBD[bRoeFY>ǰJ(עGs6kQ/"1EoEbVyAVMY>6!<ѼfIwi;H­HZ/D#2*r&E=OwUYZ –yGbd QvDit={S'٤VQvM ֈnfnզ"gS<,z9vllZմiMڦuMrwʚ@ o5{E~^WAl9ɁbA|Hs<4 Иsn3L@,/:Pl6- !;z:Znel'y=*&=({[r 벷;-¶CY}ݍ;elǧף "_x\yC"yZˋJ[ͽpu bV1 ,Q_ur!;- 5D( IEne  Vx/l RBR!~kIr0C^a{Ѓ0y p )@:/ Q'XH\\j!~)/4pX,`Ȇu>O" *nm`ȴCX 3mj4d_l "@}Resݮ'ۋ|A{x-azJb nVF(J&R+6DܤD$s,E[eԎkB)b8E bXJekvwLA5}Pa|8'7},i` ";UWQ7+z&D p;5f^p-m4O-uDN{sԴ*D1G[MB +ծ A(Q0QPCցP݃X؞S;m 4 BJ@|޳܀( ~X7aa{-#P*:$>(.t؂;+P(3RށNOUI#ݮAiXoͧjIΒ{F %\ƒojeA(#W|_P+P{/4G_>POJY=8(-ޙ\Jyt'okP;O[Z~\ Q3 z[X}pYzN_<֤_+NI u+IM~է7]V^ݬWz5+26U֪RK)z$T _WֺT%M R4In@oMZhw_]챿(mIΌ<ҿ0:jOz2vC>8[ Cte]~̲k~^_dH_RƐ !B7ESwSKGiUNE O }TBVY"EEQ?cR=ľO'/l^ l4(m'v&0;<],xGv#^۪TT%=Pd#&ق}łEV4(`U=|;|qr8<;P+4hݑ8v0c2D1c턁L2,f|ѵÞ(ۡYBU}e6swQ^VQtZA4Uuϕݯ)U"}?l=Kv˗cɣ35FAj3? )(N=x9u;)V"Xq,*2o> stream x\[sdq~g#)5rl˗ThWJ,KEάȥK~OeKswRUJU38@ї 'Λۧ ~6_j¤Wo.SI֛դlڼzv4q<ٔbJ fmz<<{R2iU2.{[Ƿ{F3rgRoO&)**u͟y.\rzhTRe%V[A[ck #MD_.**nEY fV2q$ >yv>׫^)x7;X. 6eʳ ݻ{d<:h zǘ)gȬ@qI*.nm~3=]w6jd$b`q>ފ#n?\d#w9ϺӤu\Ln:s.` #tgy&܉ujqN?(xr`%ΈL9:6I{\h{Qƚ26 "3TnFmKVk*oSQnSC@*=YXuwқ68"NY(U0؄D-bRs7jCdD.& l(dD{8["wQMQB1 | ݷ{*SKuӥ Dn@1qŕ1Ӭ'f/WJqjU[t֨X !`R .4?{Ebv\"Qճ[<'yĝ$`&XôۇbYwv{ZƼH"&]۝G"6Rd  W/ {e4G}5̮< :(m` a,_yR_8%Д8?f uq_Åa|r 2oifM@h<:$)l\𓎚!UQdem-HckL6'X#_gmm6 vɠF0UZwl- &V![v>#x]ĠRU KR+hVM pJ|Ųh=sY7ۋ>Pլxd_dt%rg5wߝ zB3À7yQlM3./19jS3 3OOϼ_҉g[Iǃ`%Zlm=}:)D`-@\4Rg2qzy%n/Z3VM0 dXR& 3);HoEL'\ XB[C'7|3`_)2Cfh R O,D$Ѷ@Z6$<]u]nHެ6]pd;v|&)HBx ˘ lxBt#>&g~!pQߡWq՗Kh'$V(hv*zl &'-fvP?!/4 >ft_`@X RH >d | Eq=6: Y7E$'_xzW~Neg< J ۟Q3qŧ>Ooө>=ԧ>=.|{]>6XR0>=֧c}ק4է.۪0KnX81'2&ʀbGlxB{#2S"V;bڢB$&tsN|ªTlMl 0?+$,\ihxx%dyy}U$2ֹn,0NPE&MM~ Y{i{P'&!Q%ZI#ꈵg'LF?hSiVu=. 3%p4AuжfGW&LҊIM`C'G- bmqOvz٢HPNg4,F )DS7r2Yw )IlV9T? HtviH2E#@:XZ ` H8j3l7m:KNgvt4#x] ,XZ.e7Ө*yr=*ڃI"L٘apYر2l-C(ј(۫A+ T^ l#A=ô!.f)epݐM\ӝ8,+0#E%X/slZ rE!ð/G|?D &-$ Xߵ5XDBS2M`L^סRFG~km2@ #.`(4썸ht$]0s/0Ӹ1 VN;kOvJ%s]K>ɒy?6`5nȢ!3CPȥk@uGs߷,FOГ>q?©-&E@ZXP!_Tb BmMsLg^)S{d…~'8bů Gqby. : W1FUhK/Y,>>?K%!+x14y!f>-Foild'Dį9ߋS7y-(/VT+0,My ϡUa.*4:4%Qop`h ^@1kʯW,~E7|WHv<>ĹвGE7ĵϘhY"B5 j?*tmNB|ْaC)lZqrSpg^h@RL4eX]pT=șZ'e@yr9<B1Ő+s3KgOۏ&N}D,0d;4sTO3OG^Sb%eau]6cp@6L6qar^> }!;k݋hJi0/8([WPz~⊟,OC|IKZեMZ%s/m/Ղ@L1XR9*|;a00 F_W\Z^ l̸Wx\Y0qKb{LLN۲ך#+ 3s ?eZl/pn $Qf &ZIJcc8;_xXabJ놫e*ub9`D/sR6Hwb*}u]eG[C]  {8c'K-hۢyapH>bXP|>{=-2IF zSs+Qu!XȓXasѵ DmȚ'u$8٬8F+)4fDlkznf;JDk m26hQёLWu7$tndBZ>e~>ǭsݔZV=7:{Gg֟*PY+J^*-YlL̸hϓ!J E̶e4g;yp G"MrE IΡ1|ﻜ~9 6ioieCʖ/4-0|Bl42skݝ{v g$k{[PÊΣS3 ~8jeDXTgO9+!o>vE93LֲrCU`MSxa>j5kt!+QRHm'LM `ܫ/OTbitЄےeZ!],&f /m.m !E Kn% PXKY>2i3ʉRT ߦtԲmٍŋ4?Ʒ}h]|Xb09!)~'g>=_k\ rӯ i,.n4I1+v+'1wgTj,dR)b͗>0j77ax&q(̣/^e4[Pr*t9H0"W"!RP%vK];rK<(I~H}[lG mr:fr!ᲆ!QJ Z؅PӺn :)z wo ^ymk|*cf\h\"Y b!k<`yC1ݓ]0:wz?il\ di|H;Lg>w,?!uYkɆRWmnҀ:%wLjVIJQ(%1gՊpp"}^ߌUbzQgz #4!Li9>3d.7q>?rsC6UQ {q'ӧ9u L|~!錪f n^́ oqwɍ,͟nk=Ԣ)"\jR"5؉]߀*vH 8gIll{\Ɯ1Go-]<\J!Bu7<۟Dk~,رI7Tc2c((g8Fo&3ª_7 O}S(!Ԭ I掖AyCϢ fg !S@n-{11Ɨ3}rzgq,d_^FG "Â+Hb/Do]#K̡\w>K<]çJQ|;_2\`0BHq^?҉2eWYu2-6z,[N7D[}No*۵ <4Il8x+e6aȻdHaDlCݽ!oBfUY1DNi AtU2`sqb~ĮBT94:Ԏ>E:H S|@+k h`z*P;,ǁa|qt'^(躋|TF$\̋ %&ԴH[|N61:h5^}>E [q3RY@SbMaeRƩn%(r1!^Z6B\l U aX,obF\e :z L$ٷEqݻVOL[`N(=^"Uj4i}Q+Zt,E?_/JmuW|(oiSN66psfK L3# yYL9w1 GaO[ DScֲQ3@DGa!# CE94^#=m1;WlHpm2)b(0,g|87;~(Hvgv%p,_ZV yl7[4Zd  N\yg\J ,-_>8Xr:͑*HK3]Y="jb72ny3mMI66qnvTZ-\C|,1۵<+yWdAOZj,WA,)h-=Cwg@>PR[.RQP5Ze\ f beC`k5%΢,t_UZ+J^?E^V8=AK#V:%IW]f}ƒA|K h>3,\nH ValkhZQ`sls+ڈ_%Ȭ9M`'.c7*ah>kA-E}Fԫ^7{ !DccݬСs:8d-]VWjp#b㻆d<b v$1%Bm⼯AH{ĹBYumE!|-X@}Xf,~w>/[E-YΏ3F*dɊ'nx?`ZRz2.ߥgLpg>Y2k~ʥdVਙ0ׄGb5`=@~x!~o-~=[Ck-QR+x8`qz7=-TY?C}2 :_XrxW'2+1l9kx{YC?{tQ] 8Cu/LG ]|ARk-rߗJ+Z4b3-$U8Ղy),kmꗕAiWCdexpO/ nUS-(:ky܍GЋ#CRdNʻ0ּܲL*&+%b`탉ۧ'endstream endobj 227 0 obj << /Filter /FlateDecode /Length 7143 >> stream x]YGr8֏nCΫlk/V6vE~hJ");ʞ&Z,jdGf3G3oo/nn~]ϋ~-<<9S77eKS:?ힽٻóm Tf^| \b 昌 yWs*%%'d}1I>Ŷ?/Oq<6e<&Zeڿb5$-=ر+c_n1X?\Rp+&{awC0#-=M@78k|e{O`-r ^=vama"͇ozF3mWMFb Z炪,wC=chL^߈.`79 1!]n$:w= #J c.D}c"{oч?ks-@3%x7?ZS' '$lӊтn4+4 b O+8鍞>?nf 9%aT'I4Dwt 4cFQxElѳ <]5+h6<9Pf6tiI]i&5=kz+;EG#sr[R 6[`h[$B ˞Eɔn>̈"gq_1V@&JCvS`]@=`/уFǏbrn^@1ⶀ;&~o dп/P!II +6‚X:rAXٱ(bXt`W9-NDd6g;1`KF ˩sp9o/Y@Z2!a [mR yT>r^q1uiV4JTWoqI+q$P!Et <ŅeK ĥ%(` s{.zM&X9͗l5Vr8+r,)"+"9/`CEf'LƒWʙZ_Npc*,<ҡÀL{gH/;ɒO ɨ׫y}<7ᐞ%G8ޮJ,XPԿ)j9r#U2x2<Ld%`"tE䢲t qmo_l\ք>>`}X'3]g?E݊X]IycsN] "~1 H^#jQ!l_~>`nmDk[RFhXm'b8RB/$WHB!^"&^N|r"XZ4U۬՛E[B \Y8W tRzQĖuO!ʱu[%wEN5MJ2'[Re=pmbjGi3suxj}GhP4XU$I$$[_x?&3X$|"]%XKnRiZ ȧ91qR)xr"sLʠ$҅>_#l)4//@^-ԘYK\2 T{ FG_/0VreI1U=8oбhĔMmGs=[#4%ź>.lY50̀Π0a8:>$Cc46W`W-j0$ eseRpH*Rl_bW>t;yM 9O/;0|`b!>vTg}X,~xkf'$b{x>hda l.: C,5/0zwgTqm2>4en4ȘI> |̀m<AlǬ6{y^#ZL%! FK*z6o-cvjhO+\[w3B{Q\O=oEzxvPD'6b:gK\3j Gz` 6)h|1yn3IKh4匄︝%%FQB8<]m`N /|i%ヲJ.,-k8m$"RjP 泰=C9gdGQq֦|ANưG. ) Wi%aɶKb<!3FeU AIl bL>VA 9ow(D1xf"梼緵/w 6O[k;r>:dEjf6#LRZfJ΅)P¨%"C#THU`RU'!Ϯxj*QUvCy h貜兠Qj{;p/JTLc0x!f}V_97$0?pt"${d؇uWq[HJ Ye.fܵyxXu9y 5IVg I_1#(g6IJ 9TҜ5IrIb21")[G9` z pz0Һ<71»ZLiTkxp I#$=1PK@\ޥ0F9Nw'_b ^-M1|;G>_m8  w9cb94_^{F}= y::r@WO70 Qj^/𛢜RfZZוn*yVX RzFfrˊ..*f],x y}by9/\ÏW:lU*8ZN2ä>cK&|VNGBY4qc E-ZS쎠aW Qu Ԃ'h<6:Ӌe!^ |_.bCNgHnW;O 3yy%(qʇ)L⧦c'}׼jdjXQrlQ^UY:~١RQ>2RyyadӕքGK|e$Yt/DJ&ɣtd>N,Ɠ^Y@߭lq4JEua,`}{XqՖ+bjm џ#)#p[Ff1XɯC?g01`&6CٷuMxG W]?u5RcX\:ѬyvXAΦ|wK|Z` 5܁ALMU0apDh i$:QM8w}! .jlIyϏJN^q*  Yۀo'^%G9ALd'qR;1Ȉ:*`i]H[McĭtEj<01ח„\w)LޅKa$Zݡ@~S0,>8ZՅ 4Cu7N^ÑTwYvi*YIWȦuEQ*u3M7Wr@>ͻƂFxّAlV?3uڒubq&8e.t-3&=}Dާu^aOWQ:䪢 ]C?3#<=^ge]2hq>F^1y!@jrA0KO(q.7]4L MLkk+D1ےUq=ZF顈ȑ#Vam#ՕMhvb S3 XkjFk485۹Ɏf[M9%js&K. DxX@q̄qlC<5r?C6YYy};)xxܺs8͊t4y$|g^h A9*\)6<"4'rۂs]m5)ŷ aj ­2-{AV!o1J.hiEE;I)}Ja'F+ Nx G>z`yctYeSbW L莗Eg3S#a* S ډ޾I"O [%A:qoԘ[$j?N5驁]6[#LF&#H|xYSe/}bCƅ|`߾857n^!^ <ŏJ.ĩ&*&>M)H>dHRʗ.1sU=뇿 y$ܤt \Ͳ;L_(uy+(91"+HKSbM'hJoendstream endobj 228 0 obj << /Filter /FlateDecode /Length 7176 >> stream x]YGr~Eo18lȆvז yhH-9MjYYY3$bU_NLr'>{s3bw ՏWuٛ?=7'SQ|>;%y맨ɛo_|-&#fFL6F4_+2*Fk5`;H# fGNٸ?a&h"E?J_O !waƨ%?1h8yߥAltgN?-C*jN# @'ϯW0:|ƨe ><YqRhpZkX^}z}cBpƆnVaٰ`ŗa0koo੓A ɪsݧC'" 'Cc!tcM|r97 dH(`?EzX%noᄿ2tj95 T!>(Gmvph1v61@zۻrLmnӚbFfa'1ޏ77+t7ずANbEp-W˪@far,2ԸҦqBHԸ2LܒV)$5Pکe+M<=S#X&mMᕃ bďL͛PnIJaIQ?$ѭ$LR @+& t ?F ? R4sII8H9lxI% f:;-LӠ[zPy.`Bt2j z9É1r^ gVMTL3LNރ8 U h A h%H؄ 'U}H>Fj•"g&@C\RqXD x RKrJNMNBڄ2Hf=AP`Y=SmRqF3aAQ5Q4f ( [!N2am~_|~y 䲑做q"讋qjDm'b8(~lj'!!@5dYe4DAٰ "b1`qQ4{Y,4Lh'L8`FBڂ0$?|QA @lOHBRؠa%4lbyFpNtJa U^}}0~vf9[3/,v.gE$n{"aWg3bi#m{ I6VԂTn y"H;zGZ; (J싄p7&[ӈs|Nah;(lvg?;=͗~0ig/]mKf_z%w `$pXr1iä󯙛R6#b]M`6ܱf,E)q*6 ӹI[yjHM&B@N"AS,3Lolltșx \쀩 d ln:c72N^ؚhybpqRTx0a;~a,$gVXyg{yۯvLG'w z,lG\RgwȂ,sd#`C> \CDs%ʃHv5Ee7(A %:4U|Y}+O! '&$WVSt>9ZtmT\bh4F}*txڤ1Y03i橅;o92GM;`lI(qd)]#.|p8nȜv^aNAZK9ԶBy(ڂޤcuS[6CeL^ے,q#.S)Q^1Gt ӌ (OuԗD-U̱2%yB>#gLYNε v 0Kn7bYgQc$zR,;qjN~7NV[Ԕe; :.KK S ƜT :-6}W)Yu 9׶t]WKWm0=qSQBbD8oYhhs v wɔQKAf$xM ץ0w&waU{'y(b %Y:5EPoex%ZaWiN IIg'B8'6žA]R/\Xҿ%[Vq%tf8v-iH'ZfLTOqH|ːN4H99K\hNMNw^bB*,n1?Xl2&41e Ѹ {pa*6f*x(8 mqNUr ¯XTh$?U4Ί};m;RCl1n(hD%-uϐ'M`k&Q<5Kfפ b/\@Is+'Se`A6Ʋ!RˋxعεZYvۈ1Lծ8|ZY01 zh807] CT.gjf9,by?ޔvZ<ۚ}Wb,?Ib|[*# ,p n+)ng?͉D Jlab:dRMFߤ\%Y/?yS8KBx!P -`n#PVADzysWq,|/\fҲD{BwA2k wn"*s9!n3Г78nCJ"TͅT $ l ʺH6Z?#}nteǬE.vݤ#AIC]cךxbD Û%l>jq@ xl.c0eЃNr](-EIxﲳH+Tf]99$ ۸,̯BȮGŗ, ߧ'$Q"YM}gd\*9 kMEi@S8KbC|r $ITts݆픚z{5rh-z$ov$ģcc"jvmNx^/{?wLaDyQs.zm<&7[--Hc|!aafTσY2ۥ>DUĶ;5)| (T`)/q_\.jhy=M??/%w[ \PW y _cdbh,Qpt"2#:ON]ŶU-Յ1L4r9n=\aZG+E`D6,#myʼnvAnzx8 &bc[URS*^.OvwVKyhCopp0Jh)P!.tW2@:SX8&]6$IE9W3G+1IpSu"?O| }MԌsӴa+֨߿@ ƈ=7SJC_ɾQ9c>wCy%rWMӬtMj?<'mEEէ$]&6kM8b~,[n?#` 3Ϗr>6}$?u?"lٰ:K3MoLDA'nÓ*dDW(=޿~Q j(3:?^> stream x\Y~ Qn>cZ䥴D%Ck8$)s}@ tPTDHd~y>QϾwߝ_hד@.O[N͠`KOHE+idm:=xxgzw铭~qzND906[phc]3܏)i+~xA"Î0Dd3?t&x҆mzXe a 9a9s`u H_" [vtzbGcU]?uC Ã4jgyZgAo2(|N9˾}8V, (J]tgMq3dʹFNldgߕ Wp |Ο(׳,z]$S!7̑g.P:UN.[ӥmlacd $P`W! zLs^9ԅ$LJ! TyijDN~gb(jwK ʆ`d+Ah  Bt8"3u+tpsã+SNqkƄ,g3FFm5(0 R4 WR Qu t3Cw$ e|eS$fUO tA:^BJ"< >)m@ >X\e*  K+4,)vv-_%?6"&h8t sS>Cd+S~𳯱oAf-L7פut%OqCyG[ R 7@ /bhlGNj gܐ@j^ż.x+9`bCgk^C'pl&HGMX *Ġ! 4[\൙2)6}΃2->_~+_bTb/*v/hBBzCjoI<,6v.!{k6x'-vnJQ~zK]/yx0!_#p}v]TUߩ={ՉcZg^DJ/AxZh DvW.XupG>]'8oN/ R7Tr0V,KT];\6K ޹PUi[Ρ69! |e#uj{\#y9w/}`Ɲo6#Mf$rUHYEX]@=*&Y6f4I,цzN+又g߲Ph뼰lMwӛӍ#iCΗ<4 /ze{#!n{Uف ;V$EA%ʒ L JԡG-{ 26Tb &$ vuV)=GrqW91u-:I % z ͒18$86nx C3 E6P옎N:fV` ]1 F%AAfyݬ\I! 6+^xNu_A+;qG[e=r!‡,Ly [ZP(|?LfQchc{N 5~36{1' M3Oҩ ٹMvq@rAw/2 5U4%}Ig`.S;wN)GIK"CU47 ZIWi@_6kb|bAZ`Cx%6 Wa1`R+T_uLtos<]ㅝ Ff`fb UQP?.eD0* O&Tw3ҿC&;#ƽ ԱyJl@|GX~;J!C^u# Ԅ_uzɣRPO!;&t,{+ѥϭbU!lWS+Y220%zq7m-l'd4 o8"= 3[5% (GFf=*<y0F`ǂ@mR7^"fS&h't8cJl1>aD|Œ-@yUU_mg![5SS19X۹`&+fq0cRsl2mI$ }qn͙2와v_I5B ؀{!2pU̱Dʷ i5[0C$܇ R•uHOyceϛcDE/ۙ5+<.KOj S0#!L a.qS9K<+8%'hiqtQ<G:ӐT_A8MK-au-& +q1;*opJo3 D&.7o"h}y v j~uX1DwFw PT{0wA%!Y)m3$;8 *gBp&9ieN@K}L֐C/0Nh֖}C>g kLV-1VLhSU:R VZ?7i'`ʢ2hWCswsPʩ^ D C@ hgT}akAr+ k-"Q b&dYW1Vu<RQ 8&P@QmEٙϸ̄ w@L̤d  keߛB=&! + (mZ> =f]:RM~.|uUJ4J-b#q"t%aڻ[f,MU)ۺ/E'eZbwGtC&1M㹦BSPLBɽ6@wW2[J|>ΠVܞRm \X\CG| ǾM"aPMW-#+Q踤!BMqT!klDlUf1ds0d>ī"SL}?Vl|St H@s 4`SN ܒx5Ua-(0m/[@P8jnm+ 5p j$*72>79<^Sb5h6i$ >6筩[Sn7ƭsk5MMۚzBkzqene(HSOݠW)2#.Ew+:JC,ElvQTϘGU1i}+U#QIkwlSp:˗CɌ,,XνmQRE;7zO9X&<OLU!K{\Rd`"m;#PI)zN$ XY3cDܺ lw9վh^a7Mc O\qXLי&gɖ8fl^ V XA8gH' DW8C/kp!} 2j& 5dx+]=hb{G7'qrɻ-/-!e'vT^Og,j} N#ޠh?d/=bseUx`3Z 5vo2 WhiE`I{4Zx0J)ikf&2 A%gʭΘ(Nr= {F;2\]:?B'6Y}*q1 (o ^cwV_ +x!˃U!eRʏ ?MZҔ?VE;Z@DMuJ;x8؆W?b_`;1r[!9.E!CqKc~͠ bׁPղ(% C"Vص%GHwCxJTN R@Skf1  xZlh7HLeM}5ovQi@Z&Q=5nvJEk[5.v,X?1ޓi3U"Ș{c|1T]m71?JMkt.b2e% nn8eI w7&R 'T oSݵQXToIz=$m|zy%C}ǔ#qq)ʷ4̕w9Bb){쿌(@JQ;ge&xJk;+NVX?_xbWQ[_)=Sr yr e'UAxyRjbJ\MA/ks35"h8Nr N*`SB agp]X973wc ')=`?. PK)`A[?E#L#l| UŻ[} S+,Wə>.vo"W42uQC5=-\KJ(Ft du .u>ޅ3cAoAp EeysGa)21,/Ϡ=31F-䚤pұdd]jM;-Wݓy(()Cs.5('G{Wr_:ʉuvIN3zt]R@a /|[UT{^S]=RG;cSG* 5x>,u1aP9y ]uɛ=CEIL}DIL6N $ 0VLPJPeYh4/^h)YnD6]аNXcoSB]|AZ*Ti@®̅6=2+b_4pt:=.$2 =^,>*RqQ+F]"[-9yAar*, S=5%'SPaCH{cw;.`v$'^=R#<3E6:ϯ\aZ{Nh4֑+ܾݗ :9$bWaڋ2ltg4iZ!o]tfmQ07.\4s"0*BnE-(YhYfʶnO]8*/\-ص5F[fNy2C==BiK>BЫkA[տcYzl-Ogk렋EkD$õ._3U邯9-_a1H4"ni.RDZYf3xY T¾/ "FEJムD23Myu m]HҊ0]Zeyy-$ѣz+1"x TN`mו-\ztU  b C> stream xZmo _q")" Pt'2EdYBsi%( x!~VND#oG2km;6('rTNWvoTFMDkc^5_45WEFei.3UmBiae0ͧQ:ecIl&4,kI}3`!N{Abߦc:m]8s-Llt/p$+jj# 4_5RO9ƩgNfr.lTMuHY$Iau2v/H^FX -eY}fՁ\e A=bsVUp6;ޓW;;Fm ߍ`V$H4ye >E*p8J,b`sF !bnYs$H=g4% $\|ޟ{mcb6.^<Y9JLK|VI zS'nUUcy^dY fԞwE'V9۲AgvVLtPwI[B cPv)H½tS@FBOV!":=@QzShĸ\m?i%tꔫ*'\KJjʙ49;pWT'nfXU/p(9Y|fH(U){8H^ВduRWUQG炭H[z#._>{D7n {AXҿ-05 ~AXDg|(G-;ºAIn~D@>2X$=<}o\,YTOS=Un@. ѾUnH~DA׺|ި{G%w`+&r-1^T `W+ֲPU=,@\Tț]7ߵH1P,y7e= *,0Av:3|: UAP C3Em\l⎍\'6H1Z w-{4R?wykvu_Ȇَ)f.Ia, H¼KcY}=v#"xi K$o/-s'ɭ $KR20$׎qP 6_. H"+)Iw$dK޳^̮cdCUgUF ]BRt֚=@n5-N_7O\G4>ݰ|@rΎI[G>% 鑌Hli[s"IV5JCj1Κ 9$xpϿ{>6=.d|}̸TQ~nšD~&V3S1#fJRI5^ 3l! Z( 9}ΚOџ[|fc-H "\=?ʴQپ6or6 Q~7U~jmrE}oA5,,9C@nT>RgIZZ(ޏD>[xF&p>V:2AJP>9@ZԾ- vF##O2qj.-UnwQ I+IhFtЪ60y'PH2QfpQ~IdT> /NˋԮ|r}=kiH^~]Hڥ_bHqeԉSӫ~w[Hq~23_'?-rp\hm 2p G\tP{ 6aEF^@#Hj$ <#h$?Ͱ[o`ExvUdؗG`m͏~?HКendstream endobj 231 0 obj << /Filter /FlateDecode /Length 5333 >> stream x\[s7r~W+ɜ*r2Ƶ-sجlm<Q hPT%\`v:}=3E?=<)0fLSRo ˜;8lPzs8ئ|pOv'3y?MK)=^^iq8A4NV-5);x=E'kA8mGaFh~;a:/oK&1N> N瘂u.;wdƵ*%}?M8j 򚒋 V b8|_߆tX7\\ n%95vDVPjΆ:x1BƐpv#G74"IO ׍Yg=ubr<{a.ވcڔ7˲Jϼ[ip9~Lɲm}l''`a+O+ ѓO^ ,9)ڠGh׵gMeqNoIS}j Ɓ=92E5)3:4OK월w+U {kPWhSH;b=,JyH䈗$5i Q%!A;=JmM`x 3 &Cp؛γNr<1hElj8?y|_Olw{ߨ5Wq)E221QRvTfdd¼C1vFNaKlay }y .CzLdJP0;ۇ Xh0zߊͧ>YgFq cRsȓ؏(>9;{VYnjbwR'PBٓL<,w#G[l@kw"Ujx+ap\ԉkm0m 3 \ ۘm1 k5rc]=BuvU>JkNh4MO0H_Q2)aTFCS muNpV6K7G@FmUJ;WY/}PD6jyf2phSb?`=ifa덅Ng01X kjTZkdtAXI%>43E);O( oÎ(쏛b;=[@1sy\\tH_6G*}JZW!: $?#Pp5PwD3'  s:>~)ɖ`5S(a^柷p (63o}%qBDf3oN8`_!<#"dM48;7 T:)ퟪGă엌 lSםVx; tlOF؎uP_0M!i˳{y2 5^osTeׄ?X ^,k:jIB-nf锺+K.гk2 T+!LW܉{$F9䱣rpIX1ɻ([l9r$][mf5gU3PPbR۪a_h{3D (nW -HT1 ?h#Wj%; sȯ{$_= x^wv: MQ=F3-M9e#Nl+E<`2nBݜx#-ܐHz&'Eh)[d8 Fmҍ5hro?=t GP,SZ%D8zQn63?2ǘ"y)]JڇVTH(ST)Z Tt:Sl Y(CC;"\|pG;*T ~=2՘y5)ƁccH(SnHRuSs\'ܠ8{NBō3H@ /K7 |TRW4wb{؝@{n+}DXKZh ɱJSHU=^Ș","JAGo~bN/BfqDQT iΪf8I,`xvhR$k/?l*P ɼ\6Sa'7;/E=<5y}_{ju,{tۮlSO`豽Z"/5)mm݀K$,ԪyD shP֖Nf {^"2;~,׎車",|6!d ^מ?r__#x8R)%WJvlUŸW NK%Ҕ{6d@€J׷bāq7)ەKFHmZqƒTo'F\=#ޔ.]p&V#&:Q=! !J0ʔ^x7HIyRXΗyIɖt^ R'-JW{%S"osN0hME_%cZ| sE*1!b1cEK|]8{sԼ@xٛr }u[#9 eכЬ7֮6E4oXx[{' FbySj['LN[mVgeƠ¢JnƍV1mGm ^ŏ7U6.@FbgXg ɢ|ZDj"C'I_qI*DB+J2Vuvb*tMc@z?Na4ǚj,z-gg)dıɢHlq@Y) z]W%Ԁ{^^{1|r_{4sB> stream xXTT׺>#"%3`bQcT; H6 u(3 H^E "0Xr5j,11kb>1hp>@Krߺ k^{}dYF&4c8qL|8Rl{hr4;ưb恌\& , b3m͌yLig7fGKKkn3oM6/xZ@؄yx٬R{جv9ݴE~CC?2|HPCo}oVv&qEL9jCh5DpMh pTA%܀2-GPL0RXḐvhZ*Na1G4} Ns0FQQ&y_>tGAǛ؋$Ul:ћEN#% RWSX+|BQVrx1AM^#O83,YÓ=/W6+4GP 637Gx-ڄqE dV7;c;ge*`M42$8LD-#VhQ2L!f:]j9(Ӽ'^<$RM2!20+i5e/ihtxLq"%p8q |ܔX׼ve9ibd[Qஜw$EVT'|/hM2C7 yCV%cqN d  J0^lI}dck <zm[kpVj f柔h7`P;#v|^$u]źL18+5+1ּGzǶNse/_@NqhB8j[Qa,hjxo{}wrGݢ٩T)>H06ղO1S_\Azd"Mbr@4O$ 5DcB*45 7ou!9DIXvh _,,:u A듁ưBkwdIC(Ayڒ ʐQ)eJWŦI̙8"_ZհVh8*˂܂¢|c]`-Lu~,c@KxQpXۿ!7د~֤(8WZdMXmf9zcyc"cE5XX'Zo^䨨$QCUVUΞ879vd-4`b/ PCit=3dJQnJɪzg-F\J%p\^of [7i!tñ8r#2qW~gS@ Co;[c}`) %ܸ^֬ztw{Yc 4vBt`$o% ;uEBB.9*AbڙgUf&ђå&ڙRv?s`}@[yg~ǣp "d$O<'[M ڢ@U~F?;8^ӧ-׮WVj59'lN5|MLͭˇMa"^(^~o6iBdl^PsnKZ<ᄱ U7ɫtl`xUxww_ 3>s0|]lq:[J6jΓm8Zr| W'BD gn_kRV嗧igũs<[TR^rUrM(ºwf6{+ 2*Yk9+puoT+a>v@^@i9C}~ilq߶ g+gƵ^^kAy%SWHbܖ~{=wj1bipw=vؐHp{>q-8)64ڛ6[pm>uWW 9r S4Q:ef_uܐȄ6M)#/ӅpN{2 P\A(5%ǭ!dQ~N6tGB7zDywv'_ݛ="f."/[ aڙ_5Ⱦ:uHim=^X\:YJ >•D.g٣*R\W)QfÏpݫ^FV,Z#~+Yq̇HJ #/_ O8S6"jK7 RK{ޢďQ[J[F7ECe_`t'nF;o[¨9+My54WL/}aпJʏ/—ܭEs|kшUmM>4_6j>h].I Hdh:JKpn$.TTRµ-Ux(LjQg6hu+bO>'8G(slWR!,jSMѩc9:-$ "89{kƐlH.b*I 存,>+CɭoO SYɀr?Vh,+|/`?dsJ}0$hq^vy!r|ӥͭGPͬO.HݜgeHAcAGAd| H_Pc3&tPF.+!tR>#܁L: ?-9DE )%Nc5O,z˩x*4@&6jYbʅ4kٙi_Ӟ jm"| 7pZ!"@zp 6q-Ss-Np(1r#rݪ{G?+.~,69^c6Yw^2oB]K?:>y"1ªب`vV5~n۫| .-ktbN&yq?PBd [R[\7>UwV^)EiרSPsDLQ Y fs-eZZ̲Ҋaӆendstream endobj 233 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 8417 >> stream xzxWä́b 6-t5@J%S{ý w[.ʑދ,,7۴C NHL`c7%$y`i={sw/J 0u!~h/-ֽw&@?!w;y j^z AɊ!a||#7l9&6eʜa vy [A~ 1cWD|#"B{nᓃ|7qXa½v{y[1l[0&[~. Fx [qOEQ . ޶8dÖ/X.]{e۪(kbn~{W6lD#Ene0-z_i7߽zq^z^yUvo#]ֽAsݵn0 qb*zo]6q/+#81oqv::}1<Wv& m3+΅B~Dj6@ c죷z9z怶LЦS7Do 3V40d@tO(rP8n.n}VKu%ge i"[ LM`z]F^^ ig,'7jVA%y^볗r< n0P2h# __5x #e6٩%t L B~4&B; u{:4&S :rYmB$T2,1UlHw|C c} `[k^UFԲ`ls48iZQiNMLB.=+@hN*t P:@4\UW"Ambl;~Cg,z:Ḥ0t6^=ixwPm2%|]&+BtC+tU>*\x?Tv9ױ0_b@*^*G􏭓/2gĖWʌ'c_&P~@bb'\C dGʛ VVzJpH]b!+mp.HTPZ-Q2yB.sp9^>N-d8q&ڇ`RR3Ȗ"o=Bw/j]!{WA/Am9dwf$~|}b.֢Y? br!+A$5G[O m{ :zNB`AW.AIt d HL-nzl8ux&]IfhZÌv/.{O|?ƣ8%wtfM[ Up\GrͣsV/A}Hg$` 5ZHh8e vD`mbį3-y nlyzeL r"9LdI~:M RPzUCUR.ZE<ɏQjJ֣0E_m$^d y@v-g|J[IHջcVuC[89x%ހVo1RpOa7fhDwnW=Gb/31zlB_. Q,i#0zNq FljW\΄mg^ߖpVc 5Yp!;Fm $U.$- >_KTݤ %r@st}p, ߷?H m%yZ!ة4gc?L:JǼ ^Jرl,ő6}MPN|&rp[߆v.WiluGVIuGB{Evnu9BV6 x!?=`sh7;U:a6)y*B6ζǽQWPJ U@K/B >3^VKP+5E&A =Sh,ζז_[wYxe]W?'deBHR;<,7?@/GokXf?-=f*h0%%aI!QְՆhTi SpXTW@~Гg!zjbUnBL.SM,~&ۊw3gӊ@}Leu2?~FRp4gq * |`qÙ II)٣+B.C&<39'=u0^|m/[uFQ"[oъJScK3,BUPR+,U dMJHo?d-tez*v&ZA>GO}wHl+&M%@(CM/c-+%KN 1Zi؆ڞ5E\Gwk#6?>qAzl5ª#hDQkCzڸ(|pu&fE4&xSpC+*uU난wx93T7Rsl{yΪ_2cD}_Bpg|- M"rKOIRVJR"GtBʋ5JI+Ǥ.!c\Z8t&(}Lb-Ei ~५ kQl3Q҄@Vc[ΜlHd4;-q5ĢYw[O\T4pJy $0Օ|SuNXu_nn(U\䕉ۗcy5#DqlAI6Q( hG$|FH xu]vzRwt]IeV 4U|E3|Q(:5w'#AjDjfŝ@4>8̟˚P/bzD"\?Y*Hs"@a_Gh23$>`u_?Ůј{Q?BA{Y,a,2#kcPyoFd1;fW mQ!I{Pi_I"q&?LC9B9MWkȃ^]ޣԨ!*Jiu>'Q$Q <#UoWlZA B$] h+",2L4q/0rO N͢:A?:>!cJ?OCHXMKVST﨩6)chFusVGgN/ExNWex݉h%#ga'ߠBFvk4r YHlYآ ԻB_" KTD'@QYUShớsp :h]4}3!DY4_!~ߒ8֢D%,c;Dh: '}p{"E\*CavzZHA"SX[$3EƹջL^}q$!.|q'^u1,qE}~9~!jnszXKR5M@h2 _fG/=~𾦃:9f:.6Nb=R`BK,pYŠgmg@{€LvdGjd/Qz|@A=0Qo~{i{xi|E>+&na>l$~>ײx9OsD =iӜV9jI E~t~[V 1u#IMSNW^B]Lr۳ Ӛ"ϓpn<9A=^-UNL|7ָL#pO,"SO<?JM.% ,ٶxVЂ'ԍP N7K@՟0Ak@$tYzÇ[vs1yhˍF;'\\Qh}pptdgr[W;'   !ԛd}N9Z$h4mvNv!Q\,G2WUD0 ~ j ɿgb= #Xaizt♖CDROjYݬ(Kn oQ1(r]朶xu:o ,FڴLү;xU[nA&.{68Թ2HDⲇc[{>L3j:MfNt}hSSޟ-1p:=@3p|;Tvh},D% ч+?UNh`$mbyyp;w;]3MQٲ:mSxUn{ -j0ZNsvk?5{B/>+*CY%($m߿Go![וiYDyp E6hO9JV/.~"7:&+-=M6{@CiU%Mio쿇 yWti}~NE͇AԖ޻yN—qn1_e=#c%h>Y^1]66w#,ՄAd&nt6+ LrMtV6[j:VmLWYTP&Ƨv(Te^ه O&cϑ˷Vo(x IxDSoc[li!27Ej%ӓMg{snio~2Yw?iQ5ZDzZ`KR\j "FK)fOv?<$:w~N2tw [g1 5ǜ 3m/htjj}$p.e:EJuqL%AݦeХA.4 i ǻLy ̑G7G[x7#7Hv/vE4V8-6맦1dHEȃ&+EHɿfc 6AÄ:NS;\c}}8SHʌT ivf9T$LJQ:R t.hbo'lc/ w I(D9!%Ɗ_oΙǣ{$6Fm_գ~R5A${>otHhhIH07FF ūHLj"#ޗ6,d޷0磕=VdxUys@E6gyg72؅J/1K#w%ӾBNܵ F`P_|] EG627>,> kL\7l%ll \ OoN{$ClY,a[P(ʘ0v'6AWs ?+&zzd@7xa8T=~be TBb>qU8f~6U§W^ڲxu!h32潅έN\^bSXgfn;x˟#(;EjfƸh#a[\ɽu:bM{Q|<a+DWX'ܹ>Q7;]Sb /&{.?b0#?i{+0x7PoNhisNGʛ+h .~Wsj5~:gv/P Bp?u;+"h?_05w@~q15k=ЂFeiY!1b޾hvFYU~[;|÷7tQ-'qVacTXRZZ)4y"rA}I{8ޒ5 7 w\02ygh8:̸ǯo.;1| h0]^ $4sgt\5cυ/Q?̞X{`:Bg& 5 CA?3+XWr^Y!SY2hcJ@dh> @ oɓ.⏸W"8??mV˒~kK݊t,ܔ:4`I Teђƞ{^ױ]5itEfϐwGBo5,@}(/'>ioGTB[Y,յ 9Y-5FCk jLhF"Z<6CQw ^HcX9{j >FOj"J _eBٞ=ŵ6.nD?ݠ"eFb9AkV$hK-=@,ZF*xD.'RX@_Ez%^^L]>r5 ;Q'fl)w@><*HI q%?ָ/d䷉=["[;+CBTֱgqzsQAB+P6kRHiK#v[͇mV NlFL^r,^_[\$W ybsr!|Pc7tŊ|8SC(\ſd\d%,8ax<\CFeȏ-7j&+FCwƏ\i\Pƌ`&bf ?=u1OVGS1H\VLdHd0Mwj=Z7_ܮH }ߥ q\D~0kkv| $ӯhH r}z{͐ӯe}fjendstream endobj 234 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 6269 >> stream xY xSUO ePD{AQTڦ龤l7ٻ/ޔn(X( 23n3ތȜ}來Ogyμn'9m.g8˝meKz5/^6x0i|ӳyS yr3ɒTQ\|Q f-[fY˗.]3k}RL(*B)j8J&eGɂ@O(`.6\fzI7 VHlz=0Z [^UQJ|υx.<{ulJ\,bgQB6|9|LrI2_Ari)vpߟE*j̑?ۡB4Mx>;bo '`ZLZ},/,|v뱍UtuTt k+'Y;7ҶГH_9UXzk9Ku h>ư x@eh}ЩuC)ZPo,l$frE$ F\tC ZT4]N~% V8\Cq/ϯL&My4 I|"v-9'}٩Uf@Yk0|Zi1|,jGuA85d8>*4 U'S֋ױ3!B>.~bd0mC\7whgWRS)5@rX&cE!xFat235d쌵@"vػI!GN-S}' +d 0k q\%ȬP5Ժ<}jhS&O k)YFnb,CN-0zs0C#T+2{v}CoądHIřC"뛭M6#f,\nԇkj]C|ƿbϓx^ƎQ[i)X f2ђ9Q+4:N# & ӽ^؋0 @J)V\Rw%W]SnSCS=xsPW {s3vOISf8 FRV} _Wi'&[l=OV_Сv :’[[^_yd ;1`{xJ~kII=ώf#ǀ(vBMg.ApQT2R8񋡜)fi*9c^[Ģ5!@-Z o2t&$ќ/ou4Q4W`/UVFUXM.Pg9Vh~a qsTe&6hv*~оgN Q|jȜQBueV(6RN~эZ܋CnސZlK@Tۡ©6! "Mid/(Y4KkRN6.規xY֯`{WB|P [ :c^ Z68<3F fpJbjs@_ f'€-8vxRjs TKQK I N:%M)ɏRRC0r@|Lkss-YGS P]W,, dh]oHxr'A15Lj(#!M&0 WWbV*Pmaf(zz讑ymMY4eDc%Z:Xr-;(=mr8=5=]fU[dm)Gl!;a@RI\+}+2\Wwsi hQI`טT\Zpݼ׫Gp_/s%.ǑTil<\4_=j Q sr#3""D}nuW,.G/lj hPYwMA~8wd=2LZeHޞ섲,}][q;:IEVAv*a <:F+Ru}8jG^lšN(@o5W}"(':̄T:!$A8vL0EZ,9yR76-:[jCsc3b=F楜Ud;1u@3uF|VXU3ȭr7PQ..C熖 F6d3  04-?L12bnƣh!z7cD "蘽 )k-K:[;.RM<3@`o8>1j7 -cۘ8G+HzR~ %CDh9CgɄ,.ƻDLOQzN3Jă=DCv w 8(ʈj3G-zG'i *} VGw>pu"<<hp)iuu xh-ES?Rʩ1RE_\ Ğށ3 ՟گb ՗FOm{߿~z2s)v*?hP_ _3w! MSwCB)VZMnM7EjiC)!q?81ԥ ,L_/=:0 :sgk#Dܒ|ҟHQ]ԣ\ we"!u!hF׌5]B/!m'T NTn+`%b9}fĪo~[tZ(KЃ^F"ͮC/:F*xho]Ի"Lq_k:~ɇvj}4IYDF'&rA*;MŔŋ,\R"D6e&Sɂ@ &EiWCړŶ{o(s`g=i5zAnr)?ˏO &c>n.S_<.lwgJN}qFZL F( D8lEZ *Sr:r~w[$zb+q;yJ#iʗ4ddzU7atWP ݪJؾ-f48UwX .WU 2ggx r,,mAӬwYvII.3.t nXhŏ`Fd*I y|/@sگއ׮I;p i>]RC6~06"1Z9MJJH"nh7՚)STù*5z3LAS'~t=#IĒqTe wRNL]b@c54XM%$;$a~󍈮5( \+d?l_&<~J5U5F2Wj@[G1+ ƃjXY7<"JD"b`U~}g0Am Ǟj+&J.V-MSs#A x} `,ncm˓j+[]h?,ו!aaIZpe(Cn= |ꉗЕKBAȷ%ٕՊ`FQd4bG5V rs]X& 1IuT~d͐ 6ia-ڞ (뙑A31]o7ﻮpajb0)mPN5+ks RɢSC!B;(Sl:x+ФJm_-֓Y_)kTޓIC QB8KSYqq"_d5TT͞[Uc <2,,&>@'iRru$a2 2#֙  ǚ)cP 2 [x&]&IYvrAJ2$6G;]uࡣw&'鰜AWkU{~YUciRYhhLcuEZ fT^fbMV+y;&̒=s2A۫?#JV Jгs4LvحoGcz渾UE Ӎr^?O3J$pI%Jȭoun&?AHE eY7鋆P9U@.* 籑``a.kφlPA5}7 ߉Ҍe.>~cWWMO7iOendstream endobj 235 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4767 >> stream xX XS׶>!pr ;gEV3VAD$a632&L*8TTqb֩n|>ֿ25D"d,;㟶x_=X-hs2CbdaZXdc #`HJ,Cȃ ofdY |0f/GR$ rO/fBRd?sJ2C^4yG)Ye\Yes=B^ g./E EQ7˗)BV(W SyT{Z[?n91ϝMx3)j)5ZGm\IFj2BR)Gj J-Q3 j%C9QʙZKYRVES,5CqxPCapjI}@L)5(RtdIX"45M4baFC,|,dڇ5$wφ7/89la ?8uD͈#Gb2RݨG:zhѪчB%]~W .Q$Júc%%'ǣ&q/jTߠB|/f0z[Q9.ERY( 1xfW 7\ c߀0mD%# jQ1w`]L6(P$h線Ϟ/a.Iu_l>~3{ zQ&- f4K FQtW*~)]f*P &Sbk\fJGkȧ AJ1lz7)Cߜ24"o1ogr3lMgL–X40+{๬'?\zƗNv3;$D^׋v.aKQM:%>)Kۃb}j a40w>:(0Ol1vs)0Y9fXz\]2Wn]r|2e氭iDZFĀ ~37/}ZV]<X`(`-?0.#LUJM~MW׸oJpؤjT#(X~|VRf(B3 ?8 8ˈȌh 1"':)s׺p3_GR4CJO死:ˑV;W"f:W07d W ؚA=c v2p{sj#0X00Š<ۓ.LӣpӢrܤKkݝ\oY~ сF$\Q@O5-eon@ y<1Pry@fԠqu{mZ A x`E6m3+AhYW*Txx=Zp0X/*vZFRXBCofژ-+2O!.45s{TL: gZ{]vܙ̊:r}ÌJ&qmC"QjBYٕL]V ;:P&4ӛlD%7v% gdh23R^z /K#LKNք:N50qDq>K7{|H##`IfG}!=l!{щG: ó7z0W(WDzǜʥU(z?HyigM-7%xcC cM->1ItJE6b$,l[vF]P{l}~fsB:n@Jc·9 fޒk?ցk?G |"1ڲ"7l ?}9u7 덢p5AMMK[|wESa)hʯ6tt?ӥ n-zO׮^u / O M l쁨 ĬF:Hy kRJku}QV3/HW=X-齭v]0@5߅V&WGc<-0ԣ#$>t9Zhgo^p C L_Q%Ѹ5Đkl>}+T)uHSUkE~hܦ~gk<=V ݪRQ?? =Nx/n۴ݕ%cҚy|Fg}B]Ug Jڋq[}󑅲툙te%Sq 㐬XQV8f0 F{\LG,,Q J̌B(88]2Qvfq^vc 5|MiN0Csث*'Ibc8J`tcLw-z5HC^e0hHGiR7?l:;~ .~_*{x(gؗCB=jWP䁜P@_Y. bTxSĴrtP)хux=_N:ql{gP<2>=?B.R. +CuJ݀;aLwׂitv4@^ /!QlfTfF9)”Z`%'}"-{ nQAon5ML%3+U2mv`N*ѤءYCČh<O3=: HMkWAj6[")= Ё5<_ew&N47H+F osx i*F_Zt s0rUikg˩'GK=;`g.9uP^]?_sRplM'v־c9 9Pgn^'INxG=: ׿$;@e-/<966䌢<%8eo'(zHՋ݆:KlBbr fkP)y|·9@_>cG}ǀm<]`n]\LW/!+9yb}}βV\P!x{㝟tBSA ضú WX-}ܷ&Zc V75khne_v ~4{ dȝ]n5v O99yHTk(Oב<O8St}UFnXpj^6ʖFF%$'qh[ bb>(#Pf"K"K ssrz]mi1KDi_MAJ4%uW(0D#6q3 1ը߂r0"7.%fa\& 5+CI;CXIWҾI ~<<;go>ptp'W_DuҰ]/S|Ĝ/LTX@ [t% 0~`{ҸJ&jk4e_L!0n5Sg >X=pRFdNhWJ +3祕h?׻W:]~IB^tp0"A0PYYaM05噙1"ɥjAGVz6SIJ\ Pe0B t'ε\;;?ъ.2⃅On6Z<`NB_f_k._a~o-&bhԲxGVʘj&X+_JģL܍y<.*>1E1:A.蹂C=!:C,k 5>tͰ5[?"R+ u:9HE+1_|;_> stream xy|Sum9W"R%ݒii''yiIn UT("~:Νq~f8wqh&9'y 3qN^fF|y<4/u|?iD7 x4!賻PtRLr%87d8wɜ'RrQW%E72 Sǫ;kPZ*.N]#..R3 ixO<#S? C*.fp8_*./.YQFκ\Ƽ?腔iI]9G8k99898s8[9/ssƙYYYyU՜g\+6:.n&g"'2 5GyI|z3 锤)S==ˤ˧r2ܒɌg~ܻ߹ f2t(-dA抬tZm(%[ hEw[ICP ^&C% UZ(N馱 hz xhꍑI(8+@X fQK+hޘFcqgj.n*L2 FQiM/R1wwylΚ~ D/'ovݔNnU%=2mDo5bT4N[6*yi:'i*+ULh`l17Yw9zh:To`7'c3d^l1րB2{hkjxS]Tm/x=iBEc@ ݅CzťvfQڷw7US*kjl91WP4OKKk+Qn];YM_ّn;A*y=HpܑݟЂ,~1 Zz }GYx8H~Md񗣡j-n4`Ҵ*u#olfS|@,^į mZm/8M:yON3nqZc^O[Ah M% #* |o(H}nΟнg)oWp)Sh) 3U B)QSbuw_ʦJU<=MLTdZxeLVXké̛}hzI$Et_7D[[Mojas ԉgdGrMI`-"X(^=eKP'aײt ;?Ծn)0nwQR7nh f?49.zLBC v JB!y$Z5كbp<R_n iNvAf((Aeh x>p@3@; Q?g9,ݸ.}. |bPASiM{Wtn.ͫ7U8tLG8BTJF hdEsd[eE"LS34~)}y&Y)jم0}+?|ft.k;CgNQjɊו!17p }(5 vpujE&_g,M{*%@l:4#~JBbp}51y/*Ǥ23PUU*KΞ샬}}xoѣ|t=FŢ7g\PZzo:QS'NKCw`C3WH⺃pm6WSy @ "Gި*j?xS@mQYiv)G69q΃6"-4j (w;ˁ 4z>Q\JaRF~faA1*6#V&Ь#1/y &?xK~;—ALtV*BQ7zW+g2Z[M#N멋oS+mA9uC W]J;!;t7> ftuW=0S6k=`ul_/ uD^ZS k35meRE@Ye:w Mm9F=wE&ʘ-Q.96PR/-2RoXAI$]κ}D>ʮ>]7_`'޿AjK8euD(2 M*QAWrP>}8b0XvWȁ3%ǜ=õ HF 9gxgd ZU+JeRE1o'N0[QWmOf-ۿkۥ ef-bZYu;;EG$foyol3 w8~d412GKHu7"Y%pX<:Z&wl liz6N_4vLEQң; FWMڜ6( 6Bml*p"1nGO\^Ch*;UaJW9s:'nA⿮gwJ0V6GLf¶8ƺX%*:cm+ ÕMs6T{juWqQYnf_K_ )92p>K6=|9c<&3ux"8}o+T Iq7uWJ0ZԖh/x{KmOl:87˲eV EuwR:c?@"o<2xQp5hIhnA@=#1_F2Ux-h@cS}+p5{53ZbH?:,BU@]8:ދvHQ[}z$~ʾxVq{5BWx2ɬb=]ަɠBiǼE|%{nzZqd50Q FcL4 clXcқ@-019KnǐmR2jgl@/~E+cQj3)_59 MFvZw#܋-7 b!4qՖO‚T8nn@sŸ?LqsÄ%?p-Z/MW,eiF2zG6%ԖRPW9q>MC{Oa].T4˭Zm ` d"L^d/R (hˣ@=؛*ח(zsE f]Cܱh^¡xBFB 6F`$Y%DBM@mmv٩}N7CҺ,4X׳?n#$; f5n c>bxeqk14+)TVx J0WQv+AXjZe4ho׳_:M"@ͤX-LzWӀ~ϏP"@ylnX+5@D"Q7؍ahYkv8P7t6boK!wdi`ɣ׆F)~>;Mvz< a P'H={x/y{_I >,]N[p_ŏhn)8DςNS?Ļ`gBV*kݛ2|ӝ\c!Tɉȩ&Mir'%q8 endstream endobj 237 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2690 >> stream xVitSe!MRf.4UZEThe)K)-kBKC6FݶIެmKڄaS@ΨsP 2GGt9sZfqx~J D"9eӒرsY CRwCe!#zߠ©hT"כ ʊYٺyG/y >Z*RHϋޜViuMtJJW=oeNW"&dqg/.Q벣UTEŪyt*z_NU9?SUGyEt%ddeS-\ !ID N'vEb-K' 2"J ˆ:I9> {4씌KG~gbijdӤIKCM<9W`"CF!S2Z+C +j+nEӳ kjXNx^OԃOw9K"y7EJy3öw!/(wk[ _OVuHQpR2G g! (!)*G_RFZ5-͔kNhsV?,;4֚# ۭuҮHcm@,[j׬͠SmmmtMy<Sko_]X\F? .䢐kHLcDaH((q#6Q(f4!p>}JDvIަ d0kt;i,8(+SF.β\1~NnTX 5N[_M0ՔA }=ݙSw<$NY\?RIӔ`#JeQlӻij.٣nuӇujH$E?ASJ `atxfkH.pAQ ݳ _/tlw54+$o;.Cl[y&%22=씠HQ=&Q ͖GϖM"yŢa}ԧ4g& ڕks5H^ǾXUX[Tn8y=>;oP@2 JCcxH\M6 T e ?]ݦbkji.cX=~keWB?q{pX7U96##CgpP_qB~T)LX8NuE?YxYSs>EnƠ2 v8N_@_hAiʐdb`7۩in+QpIՎVpEt 3Bk&?34gXsz@el iX1gvƴx:".̰ϳk| ɡi"X[Tĭg+D`5*,Mh{ CGA{XZ@v BnJC2H5@B V /A10,&2D <Gp<Olͭ_shFD6RL)pŚ{vЃDϞ>86[CYۅ⼒7 UsIG,,8DS;2ֲurOʚ _X߇~HFn/sQzIo¯a>)h 6U(?4 2=9c+n!Zt _\~klq+I1Og gt v˒RA,eA%YS_̓Y˵j'`KUmtmluz]iH#7\ۅ"ny]Wr _߸r+GBhh~O yh[ˤKJE[ňZ4ryp>mK\2Oig,z ȱ}bGbN/~FRy? 3ف_$9v+t$@SJ(RCYy]@__@dj<^M+ K+hm!BD_BKR3q6{W%O~O[ӏW\hOrr؅svhR6[ g)gjC,3 Rywrund@3Px'{F5Jk[ZUGNɚӢ3G>{k jl*s~IX`CŻ; ^h~ґ CL!w 'c'Ÿe X#.c&(K.S0*9uDH%? w8}R%˃8FޅVݕBaRCnٛ #!fق&|6TܼҦᎶz2]G[.HN^)X [eHS|<.RE-VCHWFW3&/OV-m V+uendstream endobj 238 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1463 >> stream x{L[Uoi7Bm.{iam0 h ڥAKG)c"fm|%FQ1\X薨1'99珓|{x xY"s?ck2؇JεY΄>RkfUދ xfRH~uytw,98#<ý3i _U0-fn8\uލ, 6J_6~YC7/oLGKbHOɔ~Mbt|8Erni֚ Е_9p;SK﨩I` *84/M>WRF1'1yoE&=7/h3v#MUK_,hEݖicJiMQF$' B[R4uΰJ֪hx*ʘF9)k+C$J+OGnurѫ8*D|*MQi=2b&_ъwՍVyLpAIAޛV>+Y }fzXHuI6L S8czG҂hpG0/'Im;e:N lAS%dElqƳcN\&W Yt`o5 'endstream endobj 239 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 889 >> stream xU_h[Us6b$w FvQQh5 I]rk°IOtڐ̡v,QpO{Q&"W97;Q<62q~/A0~rz1F=QOht`Ђask8*^A \Iʕr4q472>~ 7js|ti|L(w[<{VECND.a>K\g/A p>~qɥA"45>g Ee.3?2h>EdJ T~m隆S.:_ޑo`vޖJD_C˾w6.]jϻy%'rmF׾H yx+MuʇUQ=#ZFNim-.%"Y'tJR&ITW˲\'qٍj"C!]der\}ԑbb)'w*TJ̴;u_TqFbގ.QÖlmFX.Bmx*2[D: K[7GdfR> stream xcd`ab`dddw 641U~H3a!O/nn? }O=\19(3=DA#YS\GR17(391O7$#57QOL-Tа())///K-/JQ(,PJ-N-*KMQp+QKMUMB9)槤1000101ߧpS=rӻwM}O_ ~ wwwsN>d{N|q00~Ksp跲ֿ^_n=E'l~];\| pBIOpb1y4^*endstream endobj 241 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4789 >> stream xW XSg־1zQ~νSwquKZ""@0쐐YN$@P[vvt.c;KyK8<<,|{{Їm^ei?ƺ__0g €A u AA(r0%di$q!wO>w!3M$1F;:)d]tj\Lbt*#!dxw|LjVqNNL KbM)&%F'd8)5d}tbLȓBL# Y'#I(j$7JM[+kqlMH3}lfyy􂅋O>9bJh$E6PQ6RMXj3Om^&RoPۨT8zZNVR0j55ZC͢fSj5FS,5 )!x*G-QAbj ">KvLH'{tʑ49 NqCn3 JL4Q+Vs},M:i?v zz(_+,@H(wVq8VhQ4^Hn37~}/7j*Td|m G4t >ɢPĮl2UU=0d e ZYTGm(R4&`}X*8sIHQ$ G2Qn 8n(fyYUÿGgO]̪7#MK|dn&4m[2d)uB^[$("^#:}^i5ePŵz(=4{1y,1W\? bҩ4kgҖzq&Q#p9SE +$wY|ǫwy꟞9\`!k1UO @!wy 阕NVHcwYt755ׂҧ]XHqB ?mk=k<O³D;BdA]x(.I=FF)ZǁWUe5du+&= ^X%o۔]?`/K15֖`P󙩲}d Ś:+BҘ^EϓhX%_t:/b $;qCgGxd3U`݃k_?ގ wܳ~*c>܅yTu&uBO]s=XzsKs OߢL ;9}|GP@ +ӎ\m]OD@*$PL'QAQ\՛&c!ވ/ڶEo6)n/ p=}tRŒtgsCC3<2xh/44~YE<{yȎN yJ.ڷhy*zl,b_E=}o8Q?ߠa+]h(kgMC񺱞H/=_$#5|}-+9xSԷzıP)Iiҕx&X)%uVO* !XLAȲGTP^n r|Y%s!6MJVOo?'E%4A}va UHeRYg婋j݀' +>f6lMIħX1$7KNpS`(2'L':ec/[>L$%(Z3n4<#sPȤUm-E6#׉B+4Zd4J}Jزdiop vl!s,\gO8wJ܂k` 3O+Q۟Q8%-M?}'"#_[u'ɕ{wm|sS]e+)0،^Ϻ7IBVA{{G쿧s .#ɬ[jF((.*+ cηƕ|44Li M4זP_PSX8j㟓;7HTRY?XTr/8 T eL)yYBtj/c9Ga+L?^ "+_cn~hE萞.Vt*`(ĝ;u@ou_BHaX 1Fa? 5{rOuZ ѝ+lKjc\||bL#'݂Ӟ S' 2JF㬒~]~Y2%I;endstream endobj 242 0 obj << /Filter /FlateDecode /Length 5712 >> stream x]IutС}1|,ݲT 514>M$3#{%2Edf-Ax-"nzQ՛_~sBӿnWo6p#,[|sѹ06jϽ0ݿoaowJ]C\6>Q۬|cr~>SU2I9 {M}wE< JEM3\ow#tDž zQ[sl5fm}R!T;\+Xo+Yߧ}u9f9iMv ¿__FWPJgWFߛRPptB/sE O^5?wߐl4Ѳ\$b2!JF|F 1Z]v/Wm'r7P:FMݞL1.n!u[{f}٧Qѣl#)Y;I][z;2<5k LsrG`<轴Wnx=xi;Tem{Ӡo5rI[Mpb\ i#[\B7'#6VdX,sEGe+@294ި!AwKr26HۉYN);@:Ek<"O{Xq : Fi$k& -] ֹj 'Po.@lV؃X6;3_tT- ꖼ͟9ۢ9ҳ6 Z0KKyE\6RH#]ˠ EinZpp'l E>f?<"'yq/~ cHJ3}.UF]W>. Z!oJ\&c#'FL7[!ªWdhC P"mJBO+s<[Sф䊧-3u qD@C^#YhJ A>?Eb: o'[ Q> o TLJ k ;Gpt7Rn_020u315Dޅ nM 4g|@ 9lQAlw.^c00zoG^ l6P8;1q\ ª&}31Y Us5Y 9v9^*Hx \fH(t<߱' !y0 p2x\4TZ* 08w:|G1X8~!.:& ?켗Q+2=מgnnl9_nKy#L~kEԂ%fD :f Qɍ(/B@b`^ƛה#_i|dTmeY&IJRjPJ]{{m_<,R䤯0/8W$T\܂ڶU.lXSeVe˛"Jie")pBh.ڏg:>d(mWPL1XehYHkpXTQ~] 8V&HIk4Ith.;D dD u8] CoG~O>Hh. LwD s ȵ ccQ*dzcWƖodaE|i5{0.Y3D\dn!#/@G) gmē!σkO8)"6cywl=|1)S9IC$XD5|Ocʓ R~B[vXh)b* -게4ݾٰ[ĩÔ#<<}lm0dmop3[!I->iQ >W0"9% x]WPʱ?% 3 o 9ykJ5TU 7O FDa9R3|c(X ,D}e-s~A45f?w.;S6cn _Q/?Gh9֓Sh{ǰ5k` Z)s^uU(НB讜7u8&@ _7~ 0STUZ-~C}kvtս2b#}PRT(YMT\g |f2Ed0vMO qi̐ļR; Pyd'.Io vB7i/zcS>t#i8:@Ɠ-yw~9}͜LW79h>MpR@ -MGڈ!I!ݮޮ<CxwvuBLLHݵ|F-;Ջgզ.R)kmLٔ`davR@!=SDdB:"SO@a4R KŗķBkOԲt3z/savi2n'61F )~vc<ܐb{l Iׯ {W4O76.Ca< 8i`l Gܫ\|eP]kdn t(Pqie9[?eq7x"l S '}䠣S.?'$wyYc2;'܃T?j0 ixGH.fqKa<=ȟ!7=d+Y϶ 1|E*Sa շl-&(O8TIrY t z*P0*xͅ7>Ucå|{s./W 9rAZPڜb2~L=peQ [q76K)' 35o`Ku:endstream endobj 243 0 obj << /Filter /FlateDecode /Length 7336 >> stream x][$Uy4w!`3#ٻ3s.YYdeތ!FYY';t98Ŀ8g~࿓/17M}߿i4E;gfq28?k6'gLcw<ßa-ϓC*ZI# \?\\9gvWR+X+da\.jly9aJLYfOSu3E'ǀS4el&%}<YMA<3>ay+ _L4#!Pagpf^ۄp1Jd 4ew3' &g"AR3N,Gck tev٢Dy^pì!ϼ#zƕ> v}9h_.'I2BN+'Ǣ.{ݧF32g$T,cR³2)ݕg3y*C6Z |ZȢD^w i 'IWsvnb:wZjҵ*oIBVNhȊ3" i0\F4 xSh9(Sd,%^h!R 9LX *τVRj(}+NjY-8hHA 4xu)Rl QN-t-w6 Y/9ar6L'n>h)/e8:;i^iB"XɛSJ) \uzc8:K%{AU1lr ؘiUJQ, ]] n[vY&j*)Y8;ucb]DLM8 rȷ뢄͍jG9}l$<Ǭ;Κ\V7 6ՠSqW|'MXo3 &y8HMNc7VpW6t8C:h/T}qRn;y76=50oЕ$6(+ґ購`0 0,}5Qyb(9K\ELDsٿ = |XU'=#ȟ?k3Ö#}w3Gл]n, !{t$Ȟ޿A 'Ǵ(oāyu(O_JF[8Yo3w)27gL.{a`2!^SE=~FBVsoRځo,!jDd@֭JY?W Ea'ɸ(*< !$q)9.Q-xrM?h*EuʜAG#pўJ*̜XWųعdb!2 1W`<+Cc[; Ι EtMt&&哆H2T6ʤt)i,0 +8488xr`\}oV#k@2 <8 G.qf*MX^Fɶ)v˚:EdsUK/Nnc,+HA%<_= Hb'9QFq&i/y5B4 vE0Vӱ#%@7&UZEGRMqP@UPjZjN%>LUѲrBo[{ " /Bej5z jh a@>~a|)|G}]T%J(e|vkc'^+[dl({ &&SDjN:ʑ)`Z?IfJ} %Z'@ Ec))bB' x|;;@ l4 6L.pi,BX Qy1NJ /©rl`nCPl +51, ws(A,>;T><bcږ2dPR.5 fo5x`%D1Ϙ<UR43ļ")%M#MTU6kD&@ XpYZ0F;45 Ղ@m<1{Nq&ڙp)tȤA(z:2<x5 eg:"f`ZLZS6uBp;8C2k $r!&c*B̜(<a`~p1fjd;&i7՚|jW&D*S"u|w&T9&* _Ӫ  eX?_'w:omG$MN15Ek_񭢄?Z-֢~+@do t0߿k%@T))*[<L5)`WBAZn/=,B;X?d*4O<@XaIk=m?]e:PI+YhZGr@+=Lk:ֲV'g^{%-ޢz԰A*˺2n)N~1c/m;03&C4ǧwGqx88W 0B&gVx⣻ S~x̱@Ft;Ywtpx!Ï o+lr+hsEZ*P<(pS5X6^闽Ӄl>qRb"ϤWR JQŗFSʧ4I}wKo{L01e-Q1LWJ}Q&ajL Y)R)M$si.K[m qDѹbݢFϊc3Vk!is]M?r]Ul`!|_tOހyjҙ>O@~~3:Qie8tÜ+V /Jқ; JZjx͚Ţjw 5X3H%>9}U?p݄U2y!1ޗ&!%hr)LXdrP2k!us'sIGF $#<.'8[>{Y{jH72?ju>\6͢quS(J* L|MflO9Qrw',j!|z׋&wP *|=nA+Ӊm w UP%3SF.>l'14=zТ /kfٱ?֞ާwc` 0@#<[cԴDgwvn%\x/v;g/ %܊Fs;a,i%wi%S1|,~QN~D+0_H \k>9k脹9nǦRv]Fj@ +Ⱦ`nK!9^#r+!WY^s3Y1dޠ!@rm&uԗɮ$Ef S`'2%(۲S:<^j.b,i2S{Z%;UoM#X(xP稡F Pc%5[8`)nnhE+be0G7?T1 VmFeCZHd[>kCItWH`]r\LJV~#<|Bmףu9\B\W]͏W0tdrkuuH j6@T 2ĺber%Meue N~ʲuZ],Zc 1s;`;Nzc.ri emlʛZ.㏯Y#?r).H&<B\[`d2Ne>0HqbDpwj=/ڔU(>W=h*g$рӢAqp[ܷ*X-t˙$5 "RȂs\+W;JY nD yPp^nXv$%uA8Mιڊ~)s&LԫRXpuMPjm5N rMϣHk$Y-i"M!L(`,`)ZrYͯ.kupVԄPJWyYj胨|^/pUݒ{qd8CaޖY&F.ĶT$78"US[ٍS8x*Nܗ)%=V"6Liy9 |m9j!v0+z=(JG566"ڿ~Xt{<`s(m&&I?+Grәǖ4֛M|vtNFyl-<$-E ]C'N ] dyHK%~2SQ B#T ^PMdCzMw'Cv[)j1;3ÐA4Pmod8\~> stream x=ɒu |yyNrL+| %QEɖM ]~KV{Y=vX5Y|Vbʿ9{)>=dw8f & D-N3OO[ZhvS}oy='bŠX_s9w8,oy#q#E(: #NO?zr齹tbħ_/0,ab31xmU ĝ?؝ɑ!r;n! G;I189Ǜ==lwoťN\l3͖N.* eZ0]3Ot:5Ɣ]:G69xPIz:Iڥ7R+gG[)aSĽdcP#Jn F߉7/q#'I紇}f@@S8X6 xmk*MƤ\x@{rSan_"rq'O<]H0MA xsHyb}'~ŷcv7[c!X@ngQ lb\Nak휉h?p @a;"F ݙ^}h?93qϛ 85>tB8A6f'8\(3! )a£3I%%3H-o8Ny_= 9}FYNxрIP8߅ڐS YW,?{=* Ɖy?Q|t8B"88\6^IibRt${+n"`Q9ɜ,%cN7:pl=ip36̻aʺg,l!O%;l||A/f]A;7fN9ii1\(;{Kk)'g‹Eb v=ILo>򞢛 ;N3 z(\CF%ٮrK qn(,V`jg4"+'U߶7彔K~K029NI*!5!&s U+CA6cAL1ʑ2@|}YЩQ=ơ8b5(L?Y"J;*) e'o28]q@8O|Y/G1~̊`8d%x&UGw΀ȷeJ:?y IF3d/g-ANp@W|j/5EV-`3XJp0'/QEO|c@aw<aV1%PȈp&x-8\3>7+&ϊ|XfJSi(, E5^SXJ'U3JQK!) O䬠3sfS7Ɵ~NZgY=7WyЩ=hBnlV6;>I/ۆCs=Zf:QB9D;]H:45P]PhڠlsUH%MIn[+BH2.҂Iqp5];x6 F*wm2ch]վzF%_,#CpiJᢲD*NM;>GߢgZ5?o$l|ӜS/tEzfHn )V%lǀ"JNVއR6$EOJ.:gKJYy\NA4(s@|Vz#ZU؊JR ^D&xCY( w얽\ vLmYhq"A T#7M`Ppw $$Iܫظ)`E'᠔8qd| 01UO*Bd 6|#Ô"laۿe?ZFMkB'W'1#qXsA+dz3?CRZԐ"7<ˊv>0 11%цg;Z8J 4mOO{O/fbC1|/-@wnnZҺ H ^2+ \")}FwS*C 6ue RC1Ū N W&0)BKa n;0n-Z)CETѱҾx8cH)8ܥH6 B$Ǭw~Ė=Rc|FFJr2Odly^U`{1%9(9HrpibS xk }*r+򎎛JOqOFMh Hi! * EA# 7,Zd _Cή-jw4M`ThL3{V^&D;*{UP,X=H8RաxK^e<+i ]P̂%Dn; O[KFqt{LMk6?Z:qHmCbAJQzyPqaVHQ T54 #H``8Y/ t4X@a5G }uvN*9,z r4&G;B3z &m 5gkGU|ܸ&W`h8*/6-FIcR- tÌy;G nFuS%|^\ 8An>EB.) ,*SBv  )Pf^5igF+/Vf@ X@D ?CNpYKME`||M:8)Aj=Kü^U{/Iʢ)V6zeAW8.UC%Mi,dLy 4|d L8s$ y!,zd̎Xgy>CMqS"jĹO%EK#Z3#utvϕ~]< S!ILWf!5zwV1twYSFZ밙 N._SwqAYFs܏"]QħD9˦_>@&* ADV޳l cud3- \&(O==J]H,.i!*2-"ͥSw.$$;TF%N_#сULE=Z85 9u7 uar!mn5j%Hb2sň*Qs@c\^Z<$2PaNqz(a%Ǿwm+R."CR:-Fg%6nU?B*I` A\~]|=b>a]u xiܕNU&RX[j8+-Y?4s:TdUVl>˜4dB?H646.&/Zv| aU$X@zӰOE bk7bk;MjJoYv)4v`!O&aѢrYܴ`Iur^هUtyaS%ފ#ՆN.^7M@ ,/K$1۸;ĩ3ĞTZ@I~FB6}L&x l)!z8#h%_@N,(Z}}9)^,yw/~F%LWvm@G4kbS2+Lh,&4<-SYO%ջ)m  vSbn↛ I5;0N ӷv, ,T[U(QUۚڬIMnjУO z &6w RiDBOJ`|o F4&ne3K/5;Vr}'sR0"Sk3 Y"5vnpո_ aY$Ln.4[ً0QʩGٷGS ȽF rH߰v2Aވ~nY'sf :9 cq8 ARŃ@xİWdEVz*@AL];Do >WeOY}lP-+&;2/"0Y+gRm4[EA`, "+(974 5hpIA"'z5#=d!+^~BF%dZI.ڴ,aoWРy9k؈iVxlRY~AoLF:կ s1ZZ42.Z8P=k*j?,܋peb^8;ఝFCa] Ħ[7Gҋ5bЂN~<#oyqQƞVgNtKJ*G>׾Dx$* Zzsp-xL|B}8SDŽcVh{tRXϛ+%UE 2ƔI~KQ LZY;ӿJʈ}GS!7ox,@Z/2D8w:i1<'j=6%Q{k-Z>\y9lڲ,m~(ƒVwĈ"qMv;"Ä͔R82}3o Xu0a؈\Gӄє2 ^.P*`ga7Ea >_aʌnϾ oGR\p`$-"cG,ފNE̍b\hTw Ǚjw˶ϻֹBIT6յ>PrhNCfByiD3mf`*%0*`?$3 K2QϠ\JeΗR ~\weӷLcпM:07$ |a ,h/XR-` pzTdC@=7¶)OVio rfJH˭>_VB5JD"&rv|@}Z.çJQ6|v|6$qf>@ V`@ԓv9d8Mb:Ĝ5ʹCWAS/ߴ:*=FH#DnB`s$?h"s7]_1u]f;e.f1mR,I皇ָ~8)daQLUwt,y]K;PhzȏǬ"b vQ n-c˴&6͙U %( N+fOvKZMqF `tSd:eGoIͱW H6jewf~_ h?˗Jo 1u,6C*|G}='x],cvZ?kS NWQD}E2m:} إ37{_7.7sZtσ}Oz )aRVN|4Vn[_9/D/;30 y%Uf5FљkFUlSU7,\pݶ(6}@1S2h7V`J#ض>v4omr!O|S3 =.WA魖KfaW@DۺjKѻw؜W'pQV'ؕ:QP1f4ҍDʋӾf :| p*Ͼ} &;*3`a<̀ X(Rg?$|4! &9_eΐ*TW]q>TOAze&N8izwVNZD?QHrN19ХHrP?;Y`gy˫ofRd@ 0%K{_JWXL=s`Ѽu`B}&8VK.&3ejp|Zw`q['4pW%S{A>x_nn u޺X =@ڻԆ&u8bsc֎.;a~ vʀqd-ttA: SוGh7PnW-6zϐ&3㲆5ԗ=!4z åܑZ?:.磩gk8lZ*9v=ܺS8;+m)N:rR6߳Ա Ÿd~SDlߛH |v~+'G`zy%>)@t)}xP,^YTRcǦu)SGvMYQZJP6څZNUpTuvرo] {Eam|ޘ.ݺd չީ<:;&҃~a3Bendstream endobj 245 0 obj << /Filter /FlateDecode /Length 3692 >> stream x[K OG̱'MJqb{oNjݝW{GO\ ~V^+y~ۏNVJ߮g4b*ٳUYI}~}v̍s<]~9d٪>*RwA\6OsFNb4jU47(gFmNև%U2I9V!t׼,s^\ЇI؟;u9҈DK.Z$H߬y]Nb0 Wx,62.Go6[u_ܕΆo˹@swӵIaG1DIwi9e㋣ ø Q t(׬C 1(p޸q#`t]8_` u7]84<7fdxUv>1صKVgmE(J(Zvtvu}T$Ax~1zt2wƨV8Vvhu+o"aF?tv-a(k>\)KAֽނ@&oK9~ 9c!>5x$Ii҈>"4%/`>|<}H0> Pefs)p?q큢mz~FkGy27pcr eX$PelLaf?"c2hpa]RULj#xPnp@%d="Y!Έl0 7z=z#ZR c/˩eraŋl$LQhBz$fO⚮pafX@uN>j91|C|eT2 #n}VDP _m0UQԫv-d"1_h4&Y>9.qm ʎ;jY:#782&@Q"rqhє![drL'jQedkDECRnL UҺޅFw!ͅ0k(tIrS\(ABx2M'R8  huh^VYݭMSaL #ڐXd#7x8jF)x Dei\+!ᢌ[>w{wYtJu<Hf)Rq 4fe|NY2&4>+A^!\g+\0f iXvsubqq{qQ.^/n_ԻmkxFoH{8CF7ȜtgqF`c.(:T{bMղy[""(K:7HXFW G5Q 9R(p{M81 ָO6sb=]Ap/v %B[TUlJsc9@pʪnv4섔]  ׿}_@j#mP9;AD~=#tv^n =}H 37 4o ŭ T$m+y,\R: sF]ʝ%eykGf.8"R)h+ym'frٛRL"um\|G/WW5. pM4T:"(r37Eu1$0kJSRF.uhZkrlFiRj;=YRt+&*8g,AՃYتds W\pbT SSݍ ~ fx74`ӂ9J Ӣ38a Z{d^-`ZY>E3ϧMq+h)͹a(dIF"KIG*6p<=E)X*$Y$"s[9 ףWTaJY7 qOعğ@~+_&z¼z–-A*>o(Vp[:~Ld~S9oEBcbw9/(XFCb4%[ʹOjP*Ȩ>L/ }9Sg':zL}Ћ)<_3(5yϔy\|j_}5.V&N(UlJ‰A2yk,C݃wҒ/WC\(Oj4~Z5&-× ^雜ӣpbzQJ((߄a6=Oӏ;z0>ߞrf%2^L5,Yrl0ItwP3 _=p /H T\>12s=Otv3#-Fzu3r<stD",S>PCYL%nP>šBP#oYT-}xl?p}1֠*Ɵ[־Opdث&LFք:hbZ&ئLm( 3PɅEQ)|VFy3B Y}qR}/T9v))1ȼzC_2hRoSȤ"ȕĜ|̑^'!EyKPpRb]2),{+ͣ<R|4k: r]ᰪੳʁL&Rendstream endobj 246 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2788 >> stream xmyT'L-NB"E+nQ@@="$7hE6Ȏ#nhmվZyVNmn7C v99{~7 fFPp 8o'/(1CJп\.Jp2e֎:Q*I.HJJk'GNOӾ]N?oiW'EE보ɯΘ1="!mzRjSi3ڐ(DvyDBirӟ^$%$oGj%EE&2 3z~bh҆4}ȸ5>/7s 3Y0+Wf-,`2K(ƍQ31<Όf<OfAi0C摢nbHސBeЭCT*.-\=Gg|9QǶۺ) زh2jLAĠc(.ܦpMCv(9,r & 9GOfL$d䗓pν#T j@^;Ҥ9zڡ=:*&C_D!8Fٿ]](9tmG#WIly)=Q'n>< R7Yտ4^7 BE2i-4VEA K( kz#]8ue= p~S߾q ]fsV6$[3Z/_/!r~)*o08ݚ#>]ǝj#%a[2_[͉k EK Z(|}&ȌSc"O ӁGV&Wд6n[+=̀Rz;v `'i`k˄b+-P}f=*o^:vT}|k4ՆV]JtIʟJ N{oǟt]/BiIztpqI'O61%#A'ֈϼ9\[ [yjkr!WPc韂V@_a7uFnjh|YͦJUXϹsMy9WK*uk￀S~~LԨs`CbZ_Dzϝ] (My Qw ЉѪh8 OMY]"ji8gDN؝e6)K7eO4N_|\7>+_mt[$39MjTPi v;:)6:}*%܋q ɦSgT=GuE* ]rPy}p8JXyCE9d:83b 3ɟ2Bр{H $ Mo)h<vd>{tgPl:+ U~P )y&؛/"d߆˕!qMc|it@z5K".BQ)TA3ع70iG&RwMG{/]y&se^h<75 V\`m6* EL )ܤy1h"bC}[.}P'.0*$9"rW0&9D?T:l# 2T5>~Y~82zξoxw |ܯux2S8Xl 4!!M)ɷ-FwB^t-ܺ@rbi9oA0--!: r/7 G't f?;ζGiqz7Q(>\+]tdd%CWR{jĵqd I Eo0dN")ͷ'jzpz`;tD +&=og7B/T8 ̛DgNUrR\>sKJ(-+yL*ܹ?}TXRLֲ;@OT|]d*dG%(z[*x33RɇUWm`Zݵȭwg&9M.I:Mŭ_ݺxcJ\Xؙ*p4t»O>]%S*B{R-3TZ~w!KDXgI=ouJ_!SB]WQـ1Z:+pS"xYAPʜQ[AX*N.I_\*m~%$ɯO"0~A*nVaz=|Jͺ5߄U/M/: }wGX{awyeRUZƒŜ4 gaC+]i-vqAeŕaABendstream endobj 247 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2865 >> stream xV TSW~1DѾ)N^\`Qq- *   Dl ?K,&,!!⊀jڊťvC۱Vמ37R۞93ӓs{}Q#GP<o?-,FX,?zvd뤱 !NjIG'*BJSh…]Dn EK#% qGJ"J ʃ$DbRhΜrE;.0T^+QKE^(h8R"6)SJ"yDEQ+QE2.A+01(X*tۯϢwuzʗ6P͔R˨Rj"%l);U5J$[#G|w᧏|cQq)H\G=̩qYX 6ęG'‡- 棺N8uFq\RhB-Zx?Zc]Hwn>4Oe?.}fs$wK=[w"0y\H_ jH ~K<c->\fmHJ1 4jz/cTpy yteF܃2{bYVBIj={Ԑ *L** d۶EÑu9T{ &8S9r*` cIoo^^MP-ݧj+lSe䀬h3͵GC# ¼"u0PTCK6քxhGk-SXl[&u tf_aGq 6^JS)$L"Ŏkt@ʃ{ɼcB]ڍ3iO޼wjVHKFE'8z?]oyrB_uUyWk`'D@4DvMi $JtӐ!{@a^D7B:A D85`ppBe9$ T؝EN QñPS*G{ TBj=AOp60 +ֈo F^m5·,@'.ݮ F'58HΞ ^uQoHvpf޿b?rV$|Y5wFG&'Ň@G$;saLЦ殏/\FZ҆s<Gl2͆V܂ n lM R!5[J^dE{+;Ծ_p y>"<$]Ny?,"mCsc鶳NI )UǡM>iadXVqf9}BP) /i´;wskXrt~EuS[8qC2]dUt<@ BlO msHU 4Z>5ww ε H lbȁ/Ѥ)O"effD83"PXߒWK8IO^ COAJO#/FT\Q~])41elDZ%t(ǷLf{rbk}uͳ07 &јTPgf禫3qBNhڵӐh~19nPZzpn#{̷ 'fM#_jyH?~$'ȃc?ǶE>A:s}qI肮MpYAVtoKv/ n}'3E Ru4Mf 9OH믏쀏3He}P')&FJk5| ++P4[\T|Tq(8{+/3O娳!IܗZ]^E&um9b:j;0N^oo7H \"#b!P'ݽ)%0G٣'oD ײ)zΆk۴ WUg,k[x=.$;&$L/aֆwfw+{osvg1I!}]@g)~ioK%s7;*Ixun5h27O\+g?KocDudIAWYxю,<gC=4N VLzc] Ttv`}lxU?N;\OJ(iV[ZK`1ù*)^)qHoj'&]g5y.@\`A#Q\p;p|‘UHiuY G{]f)~YF%R@Ci."Z; oyŪjp5TѢu! I]mS[Dy\2-$q2fmή܌\HeRJh7t @:xCCrtA]],$s?$ǂR nh,d%b/HN +d0U.vt<+|JNAy- w.A9*"]N#kCIquuP[.COњ>^2Q'Zaj.^o@,.MclcFَ6jmm*mRԿ<iGendstream endobj 248 0 obj << /Filter /FlateDecode /Length 183 >> stream x]O9 y?dhE(0Zq߇Nbٝ:hV PFy%mHRe8X~*ƛp ճXjJHZ0 'p^3{y HYTXQUQaEsLړܽYvj .w֥ _q^gendstream endobj 249 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1461 >> stream xUlSU[YGfu÷F\` 0d,CgD#FK׸:ncݺ}~C"j2C4,3 @Dmϛ:7Ϲ{xNs3^Nټ;OqkxZmv+7DOxV Z!񘨼ZMzB4xE Nͽ0b:A/ s>jwR]]4?,S S(䠳6PeoB Ø no{ c z57€9v]Ys_T%0u),I+nW,i^]F7tܪ D j*l<PU;fOx0u&Cu,baUuRZoxo>Rq Gc@>P(R1m ~ (A$jO4c= wvNjq1j8Kl6-lj07shFۓu;C~/$|M!3>HgSBPּ)m'I89JD``p@๳W0 Q?O\!M"퍉.q54B0:;&jݙ}T߄}-]m&_, z.H5ń;Qۇ]8Lu,n*w=T rCz}Pz~ew|V&@shDwW_8칰*ᰎfTu.e쇽ޜT?(4c5Ld@5*ڽrn_]ǐ\[jOgQ--T /ugAL&tl]-*G>N]rـו;e\3zC&v>mb:o4ebV\cHz ‘`T@l{%BBۊqp89Ik @{)@"s^LR}Rjz^9<`?Pڸ~^^Hg/=]]38o$2endstream endobj 250 0 obj << /Filter /FlateDecode /Length 195 >> stream x] w7(= 84,u1 P8RB5#|jsB[j7iij^>VV=@h7;pQHO4F$ cVoyA&HzH ;eEYPǤc*d!)&yg5FK ]B,_rM7,cendstream endobj 251 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 808 >> stream xU_hSWIeNyta!\([QR+em7 2[rӤi䗦mbrSڴե{X7 Y9rl:~|Qak>u7VO@3ZNnF#46,k|DBCމa&sZrK~ʷ/B3-x~{! ]w%`0hsxGlbu=?/o 'g^gJB/ 0,x4A!2}*Z) ȤωP;WCAPMjfj:wO Ne=;z{sVIBBY,4gJ~=NM _\ެ C,4Us`sBQLs+c<@%NV3 da3ՀLa~(* +O@= 3ApA1ԛ,2ADxIw<.b:6*@K&x Սb: ubjۤ=-1iSFm:hV9ȲJ G'&,TЗ8J|&ቈG8⤮(8ĚBD 9h. J.> inz"]xX%*~6jHм (s~gGAakzTIV}"E;@;EQ~I;ɧ#'9ng(%KՏFKc&wۙ078˫-f FK%X^4Ҏ-1ԢTWo66{Boכ endstream endobj 252 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 678 >> stream x%PKSqͻ\#.!4Œ4(hiA,lnwtnn6[өr3T` (?! o<g$"KBjB @lcr,7 Z{'PGc^S;Kӎ3 ,T< hx8茴V]S= )p6ہACժH{%nj 6>q9Z>Tziy@hYY[ pGJf4$`K1*9.{L$+0I'8(jp OEL?@@Ԅ\ ]Je &R J%15NOd>2gMQo~w:|_>|bb=!D08zF|5wq` -I`h"FT34r=Ns?韅I-;tI3<ǯx4:O=#n[4^\|vOg$ҍT\=/;&d'~2endstream endobj 253 0 obj << /Filter /FlateDecode /Length 5388 >> stream x\ˏyɇ=\@ө@(-98\ KjI䬴({vXz|aFSOۋ/v׷?\h_/q'cVY.W.]q.^ a=< |q{X85F\^C\6ix ?}19OYE ŧ6'drFc^)^ .y 'gx?Xk`axˆEmu '6jx,߼7-.ɎIPS3{o hL~wpftN& LkF:2ɚ nG+ 9؄7ߜRhC)`w<(pzGM.i7B(hw$J(UwGTxǓ`dkん?h=~͑i8ۛZ?),vb p7y G}eQ]H Ľ>ys*c&1]xoQoLy.mKiwW&p8W.0pC*X^^_!Sp> V}ATuA?-wʹ̥WVzTJz''Lʅ~8;pF #49!ق}?0* 1;ٱLAC6ӽʠ{:Ȼt:`> xM5`b*Rr5<nw rzU A 5y,, [[XL^iΰƒsi ld._MȱX.ezd^͞N6vF 6C䚉PN1e~&.k p"^\ ƻ0ك[k2|6@#[-U^kRaUh(4(,(dCm~$?;6k8xi:? tKN7AV`N¯2@b$)qmv=oB|G=ISD[&Ա;$75^ -2l(U:s` V4gp9xFޢ)#6FKy7D .Amw@bߓQ| v6j{&qzQ]XL4iǖЅl\wvٛIop0+皴ѥi=*C}LBׅmЧYV ob_W̋)FpY0{рϭ7 qkZt7cʈ}?e.Vם3Bk̎ތaXTe 8 t+HT`Ust0cy' Fr^,׫r>2D96џ|R`YXSAgQ\)B8}DZWP^y8~0a 0E(R:_ٛ&Ԛ;&M9c 4q2jϑEUC hae m/]gNpb"W v-,lR6l,`1ܑM3iWW3 r(@"bigwӝ~'7)|Bl䯤~Œ ?GJ$Ԃ4M|aDOGDΖ(Xàߏ.C 01{f-DY8qO*/u!ˎsO n8VFf+f|_l ͢Řp`%Z8Q-srs@d$~DSVPa}(?- -*e"kEDP_0mMW`0Go_\laq}ه*+bˆd`A/mfP& g:t,7,z:^:oؠU0yĞ! ^R@җ ײ\Bc$OKiәbț1|uۼfGBл4HFPi2y&㴞=g Yp}my_=dpϧh6l`c8))ъdUmz|Jߛ%)h5SF2uޖ" oJu]S$ӛ`-QsτA0`b$78 >^8+@;$ L}0 (j##h}Ck~%]ʁd8iseRфK{UigSNگǑ$`3yk^ZmTGzzG8'y(ЉQMmѝy4y] &v=йz`0l &zuPY:Pxpp 1Eך~QX2~.NP(eW6WO(Y9ԌV7zoҌFD\8N, TD%u@57lY0mK9WeDڧ [Z9w&R]HS =sw!Lu-1 s4a#D_iK|d9LV /Q>cqoFGRWpku~콟ӎ Z k@DKyj.{?4TLAzu~P,{ϯMJ #I8]ԺujjuQOOxr<1;Q8ZHPnfigVX$7&Pb|lO09O1y;a]ىk^ז316K>xt͑ Ha kBsvX\:6w(>LЯ z?i~`=NFa0LDPLkSS=Ժ?7>ZIBߞZĜ)[x{q㓨Ex" TYW1XJJ%ـWbצd5I.P6qߐ?RL1sO4s<Mb5M"2g jsn)ө8/I.7СPF& zN&]ED u߭ uBXl,;Ǫm}eZK@(lXv2xm(Tzj-z=7r'uMp9#d#K3~RʅZ+8n!:+F-615ɳM8j"6Gcc)4Q`2*}#0%]Xsw}-"L6wy2J85[2c=>ιɠn`<8lx-S'j'{0YV>qkh~W@-:Rcn i:O̪7/{zCD6JA{NAY6!DF(3-͆nzcj%"^V?^V&TIa3dJs:9PiM5qTìiOg}sGSb=~6Fo -K !lj{G! N{g; F#BźIٜ>z&>~RLfY=jsWuQoѶi o4z[v@Nwt%ʞg =G~JXtKgr^9O |t;f_R4=rfPp#|W/$kH \Xct"3*x_rb)*BfA:ǶힳVCk8lx#f5$n:~oq*Ă (B"m!8; ο!)g* RݖPty~tӍ's}*GПھEZ?w]$j8Fqgqs/C΅D5.CtVP-=e]-d}7u+uUVU$G,r.~3f.-;qE1]A+)\tgL{![!Hגqirwo4V`<_m: `L'ԁR>S]U{"B>']0WK9 S5i\vJkBY%o-B[FC _+yBFBeu۹ F~W! cn7dqbtO7`b[i|tAĶL[i[y+m 摠_hC/SAYdCCG2n5\"X ;)E!Ýg_c,VmCM{13DYV DvJ^%6=ڏ+`[{Y+@m^٠<](7VLY 4untͼX؟eJNy=It\6C]Wjb3YEy݅(4Xܙ|YED0q@I6>n|i񁬦v^)Le`_3oZo0*ҷHn GF">nyJ^#  E^$ҝ|gIC]uSQ{ [FhZٰ^̪*5X{k9?_ ۭendstream endobj 254 0 obj << /Filter /FlateDecode /Length 6892 >> stream x=n%q@Xux8ve#fW3;ԅM#abźW33+~8u߳iY/ o>{ϒ>>.Z? ╇|?>kLRζ5ƒʆt`,^D)~/l&[/oK 2.I<PS>sљ},_pf.1`Vގ/q&ֲj~q~|f|3>_dQ+]FA9 9G&@ I;׸9hpi$) QxSk7+"6hv{JE`ڶFr LqQDw,M=Sxy?)kMKbD`|n$p=I$nM9ȦuLC2K,W@?hLvao[G#.-Iۃ:ͮ!AxUZ4.ʪў=_>"} ֹ2 ^6zBrwv<]60RhOb5Ī p(#(3/j*`TM 708N+0:-܂8.BMRNIaâSo 3Rcb mS;#f7y;s.h+@X MG^5@7L2%3Z䂕1b*PaJXlAFQ޳W]RVǗM fsh_򫿝[#Yˬµ_HmkHb6yQO$ ʺMsX|~dh9Re!vK0g8e<7!W|DGQt LKg_Qb@ >IQfo+Ji@kq D lc-ZY[r8BOϟtqNg?/Pp|<kgMT]=K.n;K @۶bOQŠ AG28Muwz׆WzO/z>ҼkzmR#hLFPy0mr k s|YLKf2j9튦3(ϻk#u` 6$rJ#D,,&/NQhib}@[_rEXI+U'8A'J-CxUIHզ70q}>CI]a\`p -)v7ҫdar"kDzZ!G*捤r# 10oX~BrYt&j}")>nYnrdu~cV +Js}[-,(H|SC\HEod/P+e^'{ {ipUhq${F-|{k;DfWɬjNH=L祉В~xM `c;F?xVN+zIcF lQj{=g3>tW_tޏłNhH+y ULzBٶ?uC|lJ|4[YܓώM60#Xϛe)8ҝ0u#=vBI|k!O̧Kχ֐,V fbjp?xpݶ0Wb?fQ77'74f>]b*Qm ze"Meß>O m\T>}{.fip;3G '1#i>EvY'hRT &u3T,'iȺ",\@P V]oQ$Z<=湌jߌ]lr_ p# /#$kYvȅ7t&bRCNC;dy j7Ih\,Ͼ@&<(ђ9.X:9cU}\J6gql#VH;um;m—,>%zپ>e)pL[He'ŒAboLE 5 @0l_)~yͦs:|OwY,ӄǚ_| 'z9?dЁ ~=lu/7ia|Rdc1lY!ZGK3 WH!R3,K_kMxx$Y$K_[nW#$doO\j,TXrm}񩩟Mm\|b%A!x`FWӀ_Ӷ%=m&9fY*oD yUXot;Z!B#%t%PYS@'#ٱO1PXS.4$}׬S^4xKl{i^}Կ@4VC. v"NP9@{&MHu"~ d#{\9|Ǧ=Q:1fJ/ÂF{,nc[9BAE^aBAhijp8ĖaT-&aG'';8ȴoR-e,/Ա%SM͐O3)5)u yQiqs vru@?@D1qW3%sДhN4^Mv 2v=3Ѿn\)$Ozt$HԽxqBi}n"K!É9X14XBRm>\ZA71K~4鴊VxzCmN*q8)C )1xˆ@ɞ:JG]aτ(\,AFG^>c D_#QA*o1t_B3|5&oi<~=\.e{ܑxҩuZ{DZU uKH]h0GLE4U'A5Z8{{^#=OgvO/. h >`{&Z _V!cȔɘņ{]dZ%*a^`:~(v$TFG4^ԝE!K J0ۃ7➌q6m6 .TfMuA*%2CKn2e7Gp6%/cAa,(Q9|Ue1.+bb%pܹ䆇7?Lp6F U9b8#MµOm= x9k{!ǥOpOK1Q< /#KGJ%Fy>hLx3bҦTRf(38N]N,NQMu,_c|BseV%^ΆR`8y' vN=IR<,==Z.6].Q_'iZ|5f0*@M5*v/W<' N{끠cf@N7<^ZpN^$u͒u_Xx$T$ V 2v$E^V=sчMX̝H@0⚭IhA++KRhA&A(t+RqI%+vKWso^DMV"I$h%aY`dnFMQ}j_ƚ6۟SLqJ%PW -ȏJ;˸N*ex(p)Rʪayo?hM2DPL/@BPx5$ܭ:UEj>' Z{G63cXkRYlLyE'ƼMkÛQ̀ȎWSɠ kJ2Y"{mq6#z?s_^^e;;bJOm /l i@!1΂,=ve%VL?4x 1!{{]S׌(*3Y%Tvb0_ ZJpbra}ɨc~f3*sTtu@cǕ(xe24[iD(֞g*gji#Nln%X7+n'QՇ J#Ҕj#NY 4oO/p=z ̒EŠ_bt?o#Vޣ,~ 3X0$߂Ku_:J/DT%>ARCE;W<׏I`r>ꟶoį'EI3v=xt{ܯRS!?vŃTmē΂4vt+6 ܼٟ(gTpendstream endobj 255 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 428 >> stream x]KZqOs* qfb7c7Ak`E`U,RرWFa[uu"ZAT7]/b{v|9缸np:aԙGfܭ^H 6ˆQWgu3q^- w )1ƿ1Mk[z/vP4|8#] JTK/HXKq̵;#|/3t*yt{ZYnIi+F@YEʓBlF_gsZV4^aN1*Tk0$F=EtHU\RSѨNJilz=г&E3ٰ6ׅ]B29:„595'o]~*ħUˆ׌Tf֭Rي Bendstream endobj 256 0 obj << /Filter /FlateDecode /Length 6553 >> stream x][uc /@;Ŏh#NHFl3H9@\j)\J s>{vW Lu]Nw.?]4_]07wş.,zzOaDͱj/~qKg1xc>V/|9cb c9[ 6M_[]Ha9\yɑ?}cL%L/qF\;&ޔ~2<==ca-~Z|Ll1/oxX".G닩~uq qbgth wnOw轇 )p3:OOG5:N7"W?}slSmފ[;x.O8$qD-\pb vyAhvb^5j[4 ,a|ng.$!O_)Ķf$$&x=X/`= rE_a 5q\_UXr\[jbqy.j >CXjH[\TrbM':} Ys1֖+^ق?+92s=V_,hx`zBgG.$W*^F*.~qgŅIWV[ΗÕ55k~T#bJߝO.-6̮Rf)Z- q1ҥc,/l=:j` Vƹ*p7 U зt.<_V;hc 1cHu] m 6ÕM2cgsf8^?PJ}*$3Nٝ$B۸&QGޑq"sR]մ6)2-l KD.vakbL@5Ki<^feeCwO ; ƶю;WA}C)U686vApxlȣC[GM{ pE]$o99~qC$a5%6el:ߥeܲyo7kF~?1+he=FX7n |EB@ .jA m{Ip6yrΥZnKBq@C3 { C+8YmjIׁmdGt$0k@2Ҧ][A8UI6p-sAsD`u}]P6+_2K{ͩ7Ah[.-CCf} )&-Ql9׻v!UKLw1ܒY 0X- Ȱp0sqaHZOryT |ITt?`"l_EbG'֪ 4% ɮV+půڌ%9$ Lpdސ d P]:'@No҃q-4S;\ 8j܄%y:Vx )PȦӾ&aϗ?(}}?.g`rjj|"X^_%۾]0~N<'ro$CwL_ pkɔg 3j(L .J*3m8 U0YjK sG:tĒ73MuTzN\FtfsÁAQ[-1lŢ1]@'ds;K"+xQ,Ufwph = \׌ʃONL~v?8Ƶ8)D+ m@w8ny[p$j^#pE`Pt^Y0m&ޕM(y߽rxЦK6L16?3pX͎Ԛ_ѷ?`rL> n'bF> ci`2V0z\^y{Vtn ?S\GHVS+W ǐ6&`Zb/80ciNE﫴נFUY8y=epkokLc&Ӧu\ 8T\Z*ro? >O̶}+GP!/E 8 ?U ƿipT8|wRpb T[̄͞*}|KjFx`ɜ)Y:FÐНGguŶ cj~3M#Uك af`!?ݼX2+&ZAo mU鎿G[-*b^='X疿5htV0:Zs?95ZP sX' DDpFx{Kv2‚ dPݐao @KlRdB[Y !Jv09-U>m%lGrۢOe$ h8g2 ߩN]AB'oh4lMg 4{fZ |4Pd{C/g?v%XFՋ+t.@Mτ8jXPb{6-TD/%?c#.%'oi37QٶH$CIN^%.ĿrRPԂ`6n(.tX RҚF yMj2׬~: pﲇwR~`B |csL2lÉC`JTm ~/iRq{,W祱ٶ'JO_/G[('-bu8Tp$dy2<ۃ6[Y((u,e3@1,[xa,|zp)ʥsX|€a>s f{Er; c 1©][tO|鸦V1ǘڪ [v}rFFdL0\y,-^ڀ` yIǧjg9Ba m%csNqɈOⷱEo<< B%ɒjl%WЭ1o:~h$ţ.\" 314(9m63qG^ T 3V&~r ,Gi d2\>F>|Ǫc* @E ӯP:~+=MwRM&э{6x=֡sTc=AJKUqtXnIgς;[EXK+4s(qd̈́UDuѼi$K 7ƻ) ЇXd [aF-'@JH_huY:ak_pW6 S%q+;~*hԒχD&A:|68|3bKbSlzl?20yD^)Zdr}e X3A+~05lUD<&wRCxp4ܻl~ ]j;oXx|U~M<'.@44ze@S.T Œٴzu8(sŴ K5׏YA ]~ oԺͭ:uؚcFiTHVwZZu- ½mDߵYt|].aXJäUPϮe8?!H{ ~ t> ȳ$PcCP/0>FGZ V~ŀ dM*?s"XR: )W9" [sE%GG] 8>8Exi B⿥z0uC%6,b\#1Н 5a:x K,8/׍7v<f܋FT\*q!R闳|ȫʚxĝTAӝbȅr|~6'"]'нIV(̭;bjlf.ddS <?y)ծ^sokHԪ%Z$oUZd){#C\Gwb6ɣ((*P4 ?.W**QBϚP+DB!쟚 RKAK0Ѓƒkot>-ω{Rmsw] s?Kh@&(43VF`ݦM3ݏ0#̰[.:t6nJgò=ءYT)Ms m] {Ğ:/(;&Jr\5o^*֞ nMlZ @61d9gM=*|_k}&pѷ)́SsZ }@#m Hp.dVozqv^- ]8qgBt\eM6ϛ4YWdA:%76!GN2x])TsTubqIL+ÅѧLu_&m62˕FnR^^f'Dd7 _ǥ hc%omCbߎbuXɣoB3Xs,D(O-{Heu0?B6>tol ]0hSݨ<;RyoQcsqԼךUft卞rQ >mwĘ)I *ȀL:#B{VWF>*Γ=6ϕ_HֲaD N0K,DcSJ cuP) 7Jt苮zWtýQ0]ߎې ٴ^ŵ3:.6DŲ:լIX&3V W Z D`55=H{96GeJgnkZ[ȖQU> stream x=_HSaƿ;f@)NED^hQAQ\qg6ێQLww:3vMe]G2}!U8Nm0^, q<_M Qb!lskpw="k1..z} wJF"KN::5!)~\T'+JgmY+8n|q 9_d nX>x`.E`&y\!+P32K r\ Ǹ=&Dn~2p^KW }f!9 ,`;CKThS܆0ÍGMCR&Y\$dh{@ɸ=93;[WfE?Υx=BOt|]M` FFHhppT!Ӑ = 8o}*˭ Jl~M.3,ll&fhm0vP4(5Eȝ񑨚 L2UcaQ$h^<5;Gendstream endobj 258 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 328 >> stream xcd`ab`ddp 44U~H3a!3k7s7ﻄ'~%XP_PYQ`hii`d``ZXX('gT*hdX뗗%i(gd(((%*@s JKR|SRYBt^}ω33G[7]z}r[~kb}vEly~_d}{O!lYwVWG g/d4mn9.<'yx.x:endstream endobj 259 0 obj << /Filter /FlateDecode /Length 3186 >> stream x\K ͷ>vN@ !AʜhwR}HRVb|.HɏdUy"Z9볟^1?}>N?ί''M+mQNV9 roY#t/bbv҆ٛSR]4pDkc^5褖1Ӳ„fF^(<_xQDާUyeTFPRh1otJ'e,ZM3w$wާK5im.Dk䁇Dz;늗gKʹmsG o>UEHYid-B; ;EbNʰ4r7)`6RE7s(%w#^1wi%j)s)twY.b6y_rvɗ]YY:'^RM:)Bx h>4WSfoU69E'BR)$iEblu1c?yM*v[Uk(ic!,w !=oԅ/F OsK[!)l}3ۋ.B* 3fދ {kdZSqa M$fqbHNuƑKIF qbFŒaRqT*AZ. t*t.fXTٲQ ZdSrЦ}V)ZTA$:qczR&['7OlZ73ۻ u//:fC:U[IUt=?,HT%=gRyI~o#H%ɁJ.ݔ꾧nZCJέѦ>1 gdML5V[H$r)]cpB sq}0ɲN3ruO};JvR^d}6 UiH)KI<<W a3csw@^ A,{G8J]G{c4AnɆ\gR(bjqu>'89Fj6IBGe| (i @}8-_,O;N%Vl2i)M_.j{X f+6&2 .2iin؂% 4a\VmjmTCWr_m 7֞7oW”2.zG '#GȁG=vŴ me~P-[G5>0*|z l˔ wpu6ܣ.pFyr >B_`FKUax]VeLM.ඏ]zi-Z2Ru[f oE! -M/ew? jNt} i侀e"V[,;/zj CFbMڐxnņf`|{_. 0^|3ݒIlD!'j[iԦ_ei3}зsB}?|I_uwºM*ύM_7fGDQuu:ܣ6!w}6_x7ۣos!&a{Oum. $T TUr4?jӯ.{Ԧ_]+wq%a+lGmXaKƦ1wcmgendstream endobj 260 0 obj << /Filter /FlateDecode /Length 2638 >> stream x[KoG{n≮el9ġ"`$GIv$=3âf( ԬWգK% ڟ׋g[^. ?]?ί*Xi<|aKyc^Zm/r}8^ݯX^U5{kEk㊛p/Q媖R4EhurwxNUWA"7BjwXƔq#+>MOZoʁdmxLz'dDyַIf@G`Em$V=hyj%d`q3P 8<ᣦ-wdl2iV5ז7"'PvM&$dIIq"Dr*xʹee}iTt$y&i[KJr!r3|I "upxu2[z̑ 3)gR!4)̐t! 1@D,3%=\w"“@)H^J>h7IEF#d dzJ!D%*G0}7KJ1hC\7\E/& Ҍ9d ˟DE*w=ti y$Lq9Uzlzz;K4m1y :P44E+O/(f-E;z[l% X08"2VRr3ċv3\<$c tglHI:=) xuntH^E?$^?M0iZ\9)pMEEH#w3NyN4Pӧg!KVRQ!7}Y>;k/$rg-H#nP4;* p, (Gy$%cR] q^n/%<%QY?k/_DE2ͷ']2yg|Lrkѐd$ѷ~tJ* oY[TDs{i/)L_XIy` BFwPk9 kr3ɔÙoȗXzEL`QgEBԌX&湱[x{R Ӝkb>ϿP) ]AVv[.AXAN9$bF1`o2S|IO[?&`Ii =zV;/N-HYFr0F bUBG0ݤUgm|-Z8?" F0#]<_Haz1V9`Bf"h.9ضS " 3ͥv2E+ژ7ƨdw<3aT9c%Alc#']4Xs-/R}Q@\M%:$ hs5Dۤ+=B}aQ]:)_AS^"T!po.n!"SmȢ} Sm{l]FXg&F#LB{_&$D= ZrABlÁ n;CɂpXC)h&=e>LA(H3xUclia$~WmX7ڄ/p?HF)Dʔ׋}/ _r,EaˡH_ZNLdvE7CoӶD/H_rZ|:2y]&g>$zgݐ 9はl z 火tרl߰f,"|g$ fGGA44IFž]'%]5Ƌ}?H(nHjvJendstream endobj 261 0 obj << /Type /XRef /Length 189 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Info 3 0 R /Root 2 0 R /Size 262 /ID [<2cab6932b0e78ee4ac6b0e27d64e9fa3><9b1131af67fedff9a2786799eade0ff1>] >> stream xcb&F~0 $8J1?v (_$3(l18 ;l~PH )e"~HQy)"m$ /0"H6!|D2= HY`e'e"yz@$,V6 L@JMf1X:X"ɻl  s endstream endobj startxref 149531 %%EOF coin/inst/doc/MAXtest.Rnw0000644000175100001440000020221512622326244014764 0ustar hornikusers \documentclass[nojss]{jss} %%\usepackage{Sweave} \usepackage[authoryear]{natbib} \setlength{\bibsep}{2pt} \setlength{\bibhang}{2em} \usepackage{verbatim} \usepackage{graphicx} \usepackage{amsfonts} \usepackage{amstext} \usepackage{amsmath} %%\usepackage{amsthm} %%\usepackage[round]{natbib} %%\usepackage{bibentry} %%\usepackage{hyperref} \usepackage{rotating} %%\usepackage{floatflt} \newcommand{\R}{\mathbb{R} } \newcommand{\N}{\mathbb{N} } \newcommand{\C}{\mathbb{C} } \newcommand{\V}{\mathbb{V}} %% cal{\mbox{\textnormal{Var}}} } %%\newcommand{\E}{\mathbb{E}} %%mathcal{\mbox{\textnormal{E}}} } \newcommand{\Var}{\mathbb{V}} %%mathcal{\mbox{\textnormal{Var}}} } \newcommand{\argmin}{\operatorname{argmin}\displaylimits} \newcommand{\argmax}{\operatorname{argmax}\displaylimits} \newcommand{\LS}{\mathcal{L}_n} \newcommand{\TS}{\mathcal{T}_n} \newcommand{\LSc}{\mathcal{L}_{\text{comb},n}} \newcommand{\LSbc}{\mathcal{L}^*_{\text{comb},n}} \newcommand{\F}{\mathcal{F}} \newcommand{\A}{\mathcal{A}} \newcommand{\yn}{y_{\text{new}}} \newcommand{\z}{\mathbf{z}} \newcommand{\X}{\mathbf{X}} \newcommand{\Y}{\mathbf{Y}} \newcommand{\sX}{\mathcal{X}} \newcommand{\sY}{\mathcal{Y}} \newcommand{\T}{\mathbf{T}} \newcommand{\x}{\mathbf{x}} \renewcommand{\a}{\mathbf{a}} \newcommand{\xn}{\mathbf{x}_{\text{new}}} \newcommand{\y}{\mathbf{y}} \newcommand{\w}{\mathbf{w}} \newcommand{\ws}{\mathbf{w}_\cdot} \renewcommand{\t}{\mathbf{t}} \newcommand{\M}{\mathbf{M}} \renewcommand{\vec}{\text{vec}} \newcommand{\B}{\mathbf{B}} \newcommand{\K}{\mathbf{K}} \newcommand{\W}{\mathbf{W}} \newcommand{\D}{\mathbf{D}} \newcommand{\I}{\mathbf{I}} \newcommand{\bS}{\mathbf{S}} \newcommand{\cellx}{\pi_n[\x]} \newcommand{\partn}{\pi_n(\mathcal{L}_n)} \newcommand{\err}{\text{Err}} \newcommand{\ea}{\widehat{\text{Err}}^{(a)}} \newcommand{\ecv}{\widehat{\text{Err}}^{(cv1)}} \newcommand{\ecvten}{\widehat{\text{Err}}^{(cv10)}} \newcommand{\eone}{\widehat{\text{Err}}^{(1)}} \newcommand{\eplus}{\widehat{\text{Err}}^{(.632+)}} \newcommand{\eoob}{\widehat{\text{Err}}^{(oob)}} \hyphenation{Qua-dra-tic} \newcommand{\Rpackage}[1]{{\normalfont\fontseries{b}\selectfont #1}} \newcommand{\Robject}[1]{\texttt{#1}} \newcommand{\Rclass}[1]{\textit{#1}} \newcommand{\Rcmd}[1]{\texttt{#1}} \newcommand{\Roperator}[1]{\texttt{#1}} \newcommand{\Rarg}[1]{\texttt{#1}} \newcommand{\Rlevel}[1]{\texttt{#1}} \newcommand{\RR}{\textsf{R}} \renewcommand{\S}{\textsf{S}} \SweaveOpts{eps=FALSE,keep.source=TRUE,echo=FALSE} %% end of declarations %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <>= library("coin") set.seed(290875) library("xtable") xtable.table <- function(x, ...) { tab2 <- function(x, pre = NULL, totals = TRUE) { if (totals) { x <- cbind(x, Total = rowSums(x)) x <- rbind(x, Total = colSums(x)) } if (!is.null(pre)) cat(pre, " & ") cat(" & ", paste(colnames(x), collapse = " & "), "\\\\ \\hline \n") tmp <- sapply(1:nrow(x), function(i) { if (!is.null(pre)) cat(" & ") cat(rownames(x)[i], " & ", paste(x[i,], collapse = " & "), " \\\\ \n") }) } if (length(dim(x)) == 2) { tab2(x, ...) } else { for (i in 1:dim(x)[3]) tab2(x[,,i], pre = dimnames(x)[[3]][i], ...) } } ### psoriasis data `psoriasis` <- structure(list(gender = structure(as.integer(c(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2)), .Label = c("Male", "Female"), class = "factor"), group = structure(as.integer(c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3)), .Label = c("Control", "Early Onset", "Late Onset"), class = "factor"), TNFA_238 = structure(as.integer(c(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 3, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1)), .Label = c("GG", "GA", "AA"), class = "factor"), IL1B_511 = structure(as.integer(c(2, 1, 2, 2, 1, 2, 2, 2, 1, 3, 2, 3, 2, 2, 1, 2, 3, 1, 2, 2, 2, 2, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 1, 3, 2, 2, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 3, 2, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 3, 1, 1, 2, 2, 2, 1, 3, 3, 2, 2, 3, 1, 3, 1, 1, 1, 3, 2, 2, 1, 2, 2, 1, 2, 3, 2, 2, 1, 3, 2, 3, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 3, 2, 3, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 3, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 3, 2, 3, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 3, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 3, 2, 1, 1, 2, 2, 1, 3, 2, 2, 2, 1, 3, 2, 1, 2, 3, 2, 2, 2, 1, 2, 2, 2, 2, 1, 3, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 3, 2, 2, 2, 1, 3, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 3, 2, 2, 2, 2, 2, 3, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 3, 2, 3, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, 3, 2, 2, 1, 1, 3, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 3, 2, 2, 3, 2, 2, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 3, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 3, 3, 1, 2, 2, 1, 1, 2, 1, 3, 1, 1, 2, 1, 2, 2, 2, 1, 3, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 3, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 3, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 3, 1, 2, 2, 1)), .Label = c("CC", "CT", "TT"), class = "factor")), .Names = c("gender", "group", "TNFA_238", "IL1B_511"), row.names = c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "100", "101", "102", "103", "104", "105", "106", "107", "108", "109", "110", "111", "112", "113", "114", "115", "116", "117", "118", "119", "120", "121", "122", "123", "124", "125", "126", "127", "128", "129", "130", "131", "132", "133", "134", "135", "136", "137", "138", "139", "140", "141", "142", "143", "144", "145", "146", "147", "148", "149", "150", "151", "152", "153", "154", "155", "156", "157", "158", "159", "160", "161", "162", "163", "164", "165", "166", "167", "168", "169", "170", "171", "172", "173", "174", "175", "176", "177", "178", "179", "180", "181", "182", "183", "184", "185", "186", "187", "188", "189", "190", "191", "192", "193", "194", "195", "196", "197", "198", "199", "200", "201", "202", "203", "204", "205", "206", "207", "208", "209", "210", "211", "212", "213", "214", "215", "216", "217", "218", "219", "220", "221", "222", "223", "224", "225", "226", "227", "228", "229", "230", "231", "232", "233", "234", "235", "236", "237", "238", "239", "240", "241", "242", "243", "244", "245", "246", "247", "248", "249", "250", "251", "252", "253", "254", "255", "256", "257", "258", "259", "260", "261", "262", "263", "264", "265", "266", "267", "268", "269", "270", "271", "272", "273", "274", "275", "276", "277", "278", "279", "280", "281", "282", "283", "284", "285", "286", "287", "288", "289", "290", "291", "292", "293", "294", "295", "296", "297", "298", "299", "300", "301", "302", "303", "304", "305", "306", "307", "308", "309", "310", "311", "312", "313", "314", "315", "316", "317", "318", "319", "320", "321", "322", "323", "324", "325", "326", "327", "328", "329", "330", "331", "332", "333", "334", "335", "336", "337", "338", "339", "340", "341", "342", "343", "344", "345", "346", "347", "348", "349", "350", "351", "352", "353", "354", "355", "356", "357", "358", "359", "360", "361", "362", "363", "364", "365", "366", "367", "368", "369", "370", "371", "372", "373", "374", "375", "376", "377", "378", "379", "380", "381", "382", "383", "384", "385", "386", "387", "388", "389", "390", "391", "392", "393", "394", "395", "396", "397", "398", "399", "400", "401", "402", "403", "404", "405", "406", "407", "408", "409", "410", "411", "412", "413", "414", "415", "416", "417", "418", "419", "420", "421", "422", "423", "424", "425", "426", "427", "428", "429", "430", "431", "432", "433", "434", "435", "436", "437", "438", "439", "440", "441", "442", "443", "444", "445", "446", "447", "448", "449", "450", "451", "452", "453", "454", "455", "456", "457", "458", "459", "460", "461", "462", "463", "464", "465", "466", "467", "468", "469", "470", "471", "472", "473", "474", "475", "476", "477", "478", "479", "480", "481", "482", "483", "484", "485", "486", "487", "488", "489", "490", "491", "492", "493", "494", "495", "496", "497", "498", "499", "500", "501", "502", "503", "504", "505", "506", "507", "508", "509", "510", "511", "512", "513", "514", "515", "516", "517", "518", "519", "520", "521", "522", "523", "524", "525", "526", "527", "528", "529", "530", "531", "532", "533", "534", "535", "536", "537", "538", "539", "540", "541", "542", "543", "544", "545", "546", "547", "548", "549", "550", "551", "552", "553", "554", "555", "556", "557", "558", "559", "560", "561", "562", "563", "564", "565", "566", "567", "568", "569", "570", "571", "572", "573", "574", "575", "576"), class = "data.frame") ### Bagos & Nikolopoulos (2007) example. `diabetes` <- structure(list(Study = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L), .Label = c("S1", "S2", "S3", "S4"), class = "factor"), Group = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("Cases", "Control"), class = "factor"), Locus = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("AA", "AB", "BB" ), class = "factor")), .Names = c("Study", "Group", "Locus" ), row.names = c(NA, 888L), class = "data.frame") @ %\VignetteIndexEntry{Order-restricted Scores Test} %\VignetteKeywords{genetic association, case-control study, robust trend test, maximum test, conditional inference} %\VignettePackage{coin} \title{Order-restricted Scores Test for the Evaluation of \\ Population-based Case-control Studies when the \\ Genetic Model is Unknown} \Shorttitle{Order-restricted Scores Test} \author{Ludwig A. Hothorn \\ Leibniz Universit\"at Hannover \And Torsten Hothorn \\ Ludwig-Maximilians-Universit{\"a}t M{\"u}nchen} \Plainauthor{Ludwig A. Hothorn, Torsten Hothorn} \Address{ Ludwig A. Hothorn \\ Institut f\"ur Biostatistik \\ Leibniz Universit\"at Hannover \\ Herrenh\"auser Stra{\ss}e 2 \\ DE--30419 Hannover, Germany \\ Torsten Hothorn\\ Institut f\"ur Statistik\\ Ludwig-Maximilians-Universit\"at M\"unchen\\ Ludwigstra{\ss}e 33\\ DE-80539 M\"unchen, Germany \\ E-mail: \email{Torsten.Hothorn@R-project.org}\\ URL: \url{http://www.stat.uni-muenchen.de/~hothorn/}\\ } \Abstract{ This is an preprint of an article to be published in \emph{Biometrical Journal}. Copyright \copyright{} 2009 WILEY-VCH Verlag GmbH \& Co. KGaA, Weinheim; available online at \url{http://www.biometrical-journal.com}. The Cochran-Armitage linear trend test for proportions is often used for genotype-based analysis of candidate gene association. Depending on the underlying genetic mode of inheritance, the use of model-specific scores maximises the power. Commonly, the underlying genetic model, i.e., additive, dominant or recessive mode of inheritance, is a priori unknown. Association studies are commonly analysed using permutation tests, where both inference and identification of the underlying mode of inheritance are important. Especially interesting are tests for case-control studies, defined by a maximum over a series of standardised Cochran-Armitage tests, because such a procedure has power under all three genetic models. We reformulate the test problem and propose a conditional maximum test of scores-specific linear-by-linear association tests \citep{bookagresti2002}. For maximum-type, sum and quadratic test statistics the asymptotic expectation and covariance can be derived in a closed form and the limiting distribution is known. Both the limiting distribution and approximations of the exact conditional distribution can easily be computed using standard software packages. In addition to these technical advances, we extend the area of application to stratified designs, studies involving more than two groups and the simultaneous analysis of multiple loci by means of multiplicity-adjusted $p$-values for the underlying multiple Cochran-Armitage trend tests. The new test is applied to reanalyse a study investigating genetic components of different subtypes of psoriasis. A new and flexible inference tool for association studies is available both theoretically as well as practically since already available software packages can be easily used to implement the suggested test procedures. } \Keywords{genetic association, case-control study, robust trend test, maximum test, conditional inference} \begin{document} \section{Objectives} In population-based case-control studies the association between a candidate allele and a disease can be evaluated by the Cochran-Armitage (CA) trend test \citep{Armitage:1955}, regardless of whether or not Hardy-Weinberg equilibrium holds \citep{Sasieni:1997}. The CA test is based on a set of scores assigned to the alleles. For genotypes $aa$, $Aa$, or $AA$, with $A$ denoting a high risk candidate allele and $a$ any of the other alleles, three-dimensional score vectors optimising the power of the CA test against dominant, additive, and recessive alternatives can be defined. If the underlying mode of inheritance is known, the choice of an appropriate score vector for the trend test is obvious. However, in situations where the underlying genetic model is unknown choosing the \textit{wrong} score vector leads to a substantial loss of power as shown by \citet{Freidlin:2002}. Therefore, inference procedures with good power under \textit{all} three genetic models are of special interest. An appealing approach is to construct a test based on all three possible trend tests, for example utilising the maximum of the standardised test statistics of the CA tests which are optimal under the dominant, additive, and recessive model. An unconditional version of this test was proposed and investigated by \citet{Freidlin:2002}. The distribution of this maximum test, called MAX test hereafter, under the null hypothesis of equal genotype distribution in cases and controls is approximated by simulation procedures by \citet{Freidlin:2002} since the unconditional asymptotic distribution is hard to derive. In this paper, we show that the conditional MAX test is a simple special case of a general class of linear statistics whose conditional distribution is easy to compute. Thus, without additional theoretical effort, the MAX test enjoys all the nice properties of this class of conditional tests. Therefore, we embed the MAX test as suggested by \citet{Freidlin:2002} into the flexible framework for conditional independence tests introduced by \citet{StrasserWeber1999}. The merits of doing so are i) the conditional reference distribution for the MAX test can be easily approximated either by evaluating a three-dimensional normal distribution or by conditional Monte Carlo experiments, ii) tests for stratified designs, designs with more than two groups and two or more loci can be defined in a rather straightforward way, iii) the most likely underlying mode of inheritance can be estimated by multiplicity-adjusted $p$-values for the three CA statistics under consideration, iv) the simultaneous analysis of multiple loci, and v) the analysis of genetic association studies using the MAX test and its newly introduced extension can be performed by already available software implementations of the \citet{StrasserWeber1999} framework. \section{Maximum Test} For case-control studies investigating the association between a binary phenotype and the measured alleles of a candidate gene the data are typically presented as empirical genotype distribution in each group. For a simple bi-allelic marker the data can be presented in a $3 \times 2$ contingency table, where $A$ is the high risk candidate allele and $a$ is any of the other alleles (see Table~\ref{gdistr}). \begin{table} \begin{center} \caption{Genotype distributions for cases and controls. \label{gdistr}} \vspace*{0.5cm} \begin{tabular}{l l l l} & Cases & Controls & Total \\ \hline $aa$ & $r_{aa}$ & $s_{aa}$ & $n_{aa}$\\ $aA$ & $r_{aA}$ & $s_{aA}$ & $n_{aA}$ \\ $AA$ & $r_{AA}$ & $s_{AA}$ & $n_{AA}$ \\ Total& $R$ & $S$ & $N$ \\ \hline \end{tabular} \end{center} \end{table} We are interested in a comparison of the genotype distributions, i.e., the penetrances $f_j = P(\text{case} | j)$ for $j \in \{aa, aA, AA\}$: \begin{eqnarray*} H_0: f_{aa} = f_{aA} = f_{AA} \text{ vs. } H_1: f_{aa} \le f_{aA} \le f_{AA} \end{eqnarray*} where at least one of the inequalities in the alternative is strict. The CA test statistic with scores $\mathbb{\xi} = (\xi_{aa}, \xi_{aA}, \xi_{AA})$ is essentially (modulo standardisation) \begin{eqnarray} \label{CAstat} \text{CA}(\mathbb{\xi}) = \sum_{j \in \{aa, aA, AA\}} \xi_j r_j. \end{eqnarray} If the mode of inheritance is best described by the dominant model, the scores $\mathbb{\xi}_\text{dom}=(0,1,1)$ ($f_{aa} < f_{aA} = f_{AA}$) will lead to a trend test with maximal power. Under the recessive model the score vector $\mathbb{\xi}_\text{rec}=(0,0,1)$ ($f_{aa} = f_{aA} < f_{AA}$) is power optimal whereas a linear trend represented by scores $\mathbb{\xi}_\text{add}=(0,1,2)$ should be chosen when the mode if inheritance is additive, i.e., $f_{aa} < f_{aA} < f_{AA}$ \citep{Sasieni:1997,Slager:2001}. However, the underlying genetic model is rarely known \textit{a priori}. Motivated by the problem of choosing the `right' score vector, \citet{Freidlin:2002} proposed the MAX unconditional test as the maximum of three standardised CA tests with scores $\mathbb{\xi}_\text{dom}, \mathbb{\xi}_\text{add}$, and $\mathbb{\xi}_\text{rec}$ as a global test for association. A similar approach \citep{Zheng:2003,Zheng:2008} is to introduce a parameter $\eta$ for the score vector $\mathbb{\xi}_\eta=(0,\eta,1)$ and to choose $\eta$ in a data-driven way. This procedure (based on a grid of $\eta$ values) is a special case of the general framework described in the following, see Appendix~\ref{ex} for more details. In the following, we reformulate the test problem and embed the MAX test into a general framework for conditional inference procedures, derive its limiting distribution and propose extensions to stratified designs, more than two groups and multiple loci. \subsection{Reformulation of the Problem} Let $\Y_i$ denote the case and control status and $\X_i$ the genotype for all cells $i = 1, \dots, n = 6$. The weights $w_i$ represent the number of observations in each cell with total number of observations $N = \sum_i w_i$. The influence function $h$ provides us with a zero-one dummy coding of the groups (being one for cases and zero for controls). Moreover, three transformations $g$ of the genotype are under test: $g_\text{dom}$ assigns scores $\xi_\text{dom}$ to genotypes $(aa, Aa, AA)$, $g_\text{add}$ assigns scores $\xi_\text{add}$ and $g_\text{rec}$ implements scores $\xi_\text{rec}$, cf. Table~\ref{gd}. \begin{table} \begin{center} \caption{Genotype distribution reformulated. \label{gd}} \vspace*{0.5cm} \begin{tabular}{lllc|cccc} $i$ & $\Y_i$ & $\X_i$ & $w_i$ & $h(\Y_i)$ & $g_\text{add}(\X_i)$ & $g_\text{dom}(\X_i)$ & $g_\text{rec}(\X_i)$ \\ \hline 1 & Case & $aa$ & $r_{aa}$ & 1 & 0 & 0 & 0 \\ 2 & Case & $Aa$ & $r_{aA}$ & 1 & 1 & 1 & 0 \\ 3 & Case & $AA$ & $r_{AA}$ & 1 & 2 & 1 & 1 \\ 4 & Control & $aa$ & $s_{aa}$ & 0 & 0 & 0 & 0 \\ 5 & Control & $Aa$ & $s_{aA}$ & 0 & 1 & 1 & 0 \\ 6 & Control & $AA$ & $s_{AA}$ & 0 & 2 & 1 & 1 \\ \hline \end{tabular} \end{center} \end{table} \subsection{Inference Problem and Linear Statistic} We are interested in testing the null hypothesis of independence of grouping $\Y$ and genotype $\X$, i.e., the equality of the distribution $D(\Y)$ to the conditional distribution $D(\Y | \X)$ of $\Y$ given $\X$ \begin{eqnarray*} H_0: D(\Y | \X) = D(\Y) \end{eqnarray*} against ordered alternatives. First, we define a three-dimensional statistic $\T$, each dimension being associated with one of the scores $g_\text{add}$, $g_\text{dom}$, and $g_\text{rec}$. Each statistic is defined by the sum of the scores multiplied by the weights associated with cases, i.e., is equivalent to the Cochran-Armitage statistic (\ref{CAstat}): \begin{eqnarray} \label{linstat} \T = (\T_\text{add}, \T_\text{dom}, \T_\text{rec}) = \sum_{i = 1}^n w_i g(\X_i) h(\Y_i) \in \R^{3} \end{eqnarray} with $g(\X_i) = (g_\text{add}(\X_i), g_\text{dom}(\X_i), g_\text{rec}(\X_i))$. Thus, the three-dimensional linear statistic $\T$ is the vector of the unstandardised Cochran-Armitage statistics $(\text{CA}(\xi_\text{dom}), \text{CA}(\xi_\text{add}), \text{CA}(\xi_\text{rec}))$ for the dominant, additive, and recessive model. \subsection{Conditional Expectation and Covariance} The distribution of $\T$ depends on the joint distribution of $\Y$ and $\X$, which is unknown under almost all practical circumstances. At least under the null hypothesis one can dispose of this dependency by fixing the genotypes and conditioning on all possible permutations of the groups. This principle leads to test procedures known as \textit{permutation tests}. \citet{StrasserWeber1999} derived closed-form expressions for the conditional expectation $\mu \in \R^{pq}$ and covariance $\Sigma \in \R^{3 \times 3}$ of $\T$ under $H_0$ given all permutations of the groupings. The conditional expectation of the influence function $h$ is \begin{eqnarray*} \E(h) = N^{-1} \sum_i w_i h(\Y_i) \in \R \end{eqnarray*} with corresponding variance \begin{eqnarray*} \V(h) = N^{-1} \sum_i w_i \left(h(\Y_i) - \E(h)\right)^2. \end{eqnarray*} The conditional expectation of the linear statistic $\T$ is \begin{eqnarray} \mu & = & \E(\T) = \E(h) \sum_{i = 1}^n w_i g(\X_i), \nonumber \\ \Sigma & = & \V(\T) \nonumber \\ & = & \frac{N}{N - 1} \V(h) \times \left(\sum_i w_i \left( g(\X_i) g(\X_i)^\top\right) \right) \label{expectcovar} \\ & - & \frac{1}{N - 1} \V(h) \times \left( \sum_i w_i g(\X_i) \right) \left( \sum_i w_i g(\X_i)\right)^\top. \nonumber \end{eqnarray} The three-dimensional expectation $\mu$ and the three diagonal elements of the covariance matrix $\Sigma$ contain the mean and the variances for the additive, dominant and recessive (unstandardised) Cochran-Armitage statistics under $H_0$, as given in (\ref{CAstat}) and (\ref{linstat}), respectively. Note that the complete covariance structure, and thus the correlation between the elements of the three-dimensional statistic $\T$, is known and can be computed for the data at hand. The corresponding correlation matrix coincides with the correlations obtained for the three CA test statistics by \citet{Freidlin:2002}. \subsection{Test Statistics} Based on the three-dimensional statistic $\T$ and its expectation $\mu$ and covariance matrix $\Sigma$, we can easily construct test statistics and derive their distribution under the conditions described in the null hypothesis. As the number of observations $N$ tends to infinity, \citet{StrasserWeber1999} proved that the limiting distribution of the three-dimensional statistic $\T$ is a three-dimensional normal distribution with expectation $\mu$ and covariance $\Sigma$. Thus, the asymptotic distribution of a maximum-type statistic \begin{eqnarray*} c_\text{max}(\T, \mu, \Sigma) = \max \left| \frac{\T - \mu}{\text{diag}(\Sigma)^{1/2}} \right| \end{eqnarray*} can be evaluated by computing three-dimensional normal probabilities. Here, $\text{diag}(\Sigma)^{1/2}$ are the conditional standard deviations of the elements of $\T$. Alternatively, either the sum (or average) statistic \begin{eqnarray*} c_\text{sum} = \frac{\mathbf{1}^\top \T - \mathbf{1}^\top\mu}{\mathbf{1}^\top \Sigma \mathbf{1}}, \quad \mathbf{1} = (1, 1, 1)^\top \end{eqnarray*} or a quadratic form based on the Moore-Penrose inverse $\Sigma^+$ of the conditional covariance matrix $\Sigma$, i.e., \begin{eqnarray*} c_\text{quad}(\T, \mu, \Sigma) = (\T - \mu)^\top \Sigma^+ (\T - \mu) \end{eqnarray*} can be used and follow a standard normal or a $\chi^2$ distribution with two degrees of freedom, respectively. The sum and quadratic form statistics, which are competitors for the MAX test statistic, reveal high power for an average alternative while the maximum-type form for a particular genetic alternative. In addition, simple linear combinations of the standardised optimum tests for each of the models have been proposed \citep{Gastwirth:1985}. Often the most appropriate test is not the average of all these tests but a linear combination of a few ``extreme'' members. Nonlinear MAX type tests have greater efficiency robustness properties when the minimum correlation between the optimal tests for the models considered is less than $.70$ \citep{Freidlin+Podgor+Gastwirth:1999}, therefore, we focus on the MAX test. A further advantage of maximum-type statistics is that information about the likely genetic model underlying the data is available using multiplicity-adjusted $p$-values. Note that, under any circumstances, the exact conditional distribution can be approximated by conditional Monte Carlo methods, which is especially attractive for small sample sizes $N$ when we can not expect asymptotics to work well. \subsection{Illustration} In order to compare the conditional test and its implementation with the unconditional results reported by \citet{Freidlin:2002}, we reanalyse a study on the association between a variant of the epidermal growth factor (EGF) gene and malignant melanoma according to \citet[Table~\ref{mel},][]{Shahbazi:2002}. <>= me <- as.table(matrix(c( 6, 8, 10, 32, 47, 20), byrow = TRUE, nrow = 2, dimnames = list(Group = c("In situ", "Control"), Genotype = c("AA", "AG", "GG")))) me <- t(me) @ \begin{table} \begin{center} \caption{Melanoma data. \label{mel}} \vspace*{0.5cm} \begin{tabular}{l l l l l} <>= xtable.table(me) @ \hline \end{tabular} \end{center} \end{table} <>= add <- c(0, 1, 2) dom <- c(0, 1, 1) rec <- c(0, 0, 1) g <- function(x) { x <- unlist(x) cbind(dominant = dom[x], additive = add[x], recessive = rec[x]) } it <- independence_test(me, xtrafo = g, alternative = "greater") CA <- statistic(it, type = "linear") CAstand <- statistic(it, type = "standardized") pasympt <- pvalue(it, method = "single-step") itp <- independence_test(me, xtrafo = g, distribution = approximate(B = 49999), alternative = "greater") papprox <- pvalue(itp, method = "step-down") out <- cbind(CA, round(expectation(it), 4), round(sqrt(variance(it)), 4), round(CAstand, 4), round(pasympt, 4), round(papprox, 4)) rownames(out) <- rownames(CA) out[,2] <- formatC(out[,2], digits = 4, format = "f") @ The linear statistic $\T$, its conditional expectation $\mu$, the standard deviations $\sigma = \sqrt{\text{diag}(\Sigma)}$, and the corresponding standardised CA statistics are given in Table~\ref{melres}. In addition, we immediately are provided with the covariance matrix \begin{eqnarray*} \Sigma = \left( \begin{array}{rrr} <>= S <- round(covariance(it), 4) S <- formatC(S, digits = 4, format = "f") for (i in 1:nrow(S)) cat(paste(S[i,], collapse = " & "), "\\\\ \n") @ \end{array} \right) \end{eqnarray*} and corresponding correlation matrix \begin{eqnarray*} \text{cor}(\Sigma) = \left( \begin{array}{rrr} <>= S <- round(cov2cor(covariance(it)), 4) S <- formatC(S, digits = 4, format = "f") for (i in 1:nrow(S)) cat(paste(S[i,], collapse = " & "), "\\\\ \n") @ \end{array} \right) \end{eqnarray*} These values are similar to the correlations between the three different CA test statistics as reported by \citet{Freidlin:2002}. \begin{table} \begin{center} \caption{MAX test for Melanoma data with linear statistic $\T$, its conditional expectation $\mu$, standard deviation $\sigma$ and corresponding standardised statistic along with multiplicity-adjusted $p$-values. \label{melres}} \vspace*{0.5cm} \begin{tabular}{l l l l l l l l} & $\T$ & $\mu$ & $ \sigma$ & $(\T - \mu) / \sigma$ & $p_\text{asympt}$ & $p_\text{step-down}$ \\ \hline <>= for (i in 1:nrow(out)) cat(rownames(out)[i], " & ", paste(out[i,], collapse = " & "), "\\\\ \n") @ \hline \end{tabular} \end{center} \end{table} The MAX test has a test statistic equal to $\Sexpr{round(max(CAstand), 4)}$ and its asymptotic $p$-value is \Sexpr{round(min(pasympt), 4)} (the minimum of $p_\text{asympt}$ in Table~\ref{melres}) which is roughly the same $p$-value as shown in Table~8 of \citet{Freidlin:2002}. However, this global $p$-value does not give any information about the underlying genetic model. Multiplicity-adjusted $p$-values ($p_\text{asympt}$ in Table~\ref{melres}) for each of the dominant, additive, and recessive tests indicate which mode of inheritance describes the data best (see Section~\ref{sim} in addition): These results suggest that the cancer follows a recessive model, although an additive or intermediate model cannot be ruled out based on these data. We might want to check whether the asymptotic approximation work well enough in this situation. The exact conditional $p$-value is approximated by a conditional Monte Carlo procedure with $49999$ random permutations of the data and the corresponding step-down multiplicity-adjusted $p$-values \citep{WestfallYoung1993} are given as $p_\text{step-down}$ in Table~\ref{melres}. The small differences between the asymptotic and approximated $p$-values indicates that using the asymptotic distribution is adequate. \subsection{Generalisations} A straightforward generalisation is the consideration of $3 \times k$ tables instead of $3 \times 2$ tables, where sub-types of cases are compared with a control. For example, the genotype distribution of the control can compare the genotype of cases with early and late onset of a certain disease. A score can be attached to each group, for example $1$ to the control group and $-1/2$ for both the early and late onset cases leading to a linear-by-linear association test. Alternatively, a trend in the onset of the disease can be described by scores $0, 1, 2$ for the three groups. In stratified designs, only permutations within each stratum, gender or family history, are admissible; therefore, the expectation $\mu$ and covariance $\Sigma$ has to be computed separately for each stratum and is then aggregated over all possible strata. A special version of a stratified design is the commonly used meta-analysis, including several independent studies as strata, see e.g. \citet{Kavvoura2008}. In the absence of a a priori assumption for a particular mode of inheritance, recently \citet{Salanti2008} proposed a Bayesian approach. In a recent meta-analysis of genome-wide association studies variants on chromosome 9p21.3 were identified affecting the coronary artery disease \citep{Schunkert2008} where all seven studies revealed the same additive mode of inheritance using the here proposed approach. Finally, it is interesting to consider multiple loci, i.e., multiple genotype distributions, simultaneously. For two loci, we can look at all six CA tests by defining a linear statistic $\T$ containing the three CA tests for the first as well as the three CA tests for the second locus. As a consequence, we can compute the complete covariance matrix and take the underlying correlations between the two loci as well as between the three genetic models into account. \section{Illustration and Application} \begin{table}[t!] \begin{center} \caption{Psoriasis data \label{reich}} \vspace*{0.5cm} \begin{tabular}{llllll} \\ \multicolumn{6}{c}{IL1B\_511 locus} \\ \multicolumn{6}{c}{} \\ <>= xtable(xtabs(~ IL1B_511 + group + gender, data = psoriasis)) @ \multicolumn{6}{c}{} \\ \multicolumn{6}{c}{TNFA\_238 locus} \\ \multicolumn{6}{c}{} \\ <>= xtable(xtabs(~ TNFA_238 + group + gender, data = psoriasis)) @ \hline \end{tabular} \end{center} \end{table} \citet{Reich:2002} investigate the association between psoriasis and polymorphisms of genes encoding tumour necrosis Factor-$\alpha$ and Interleukin-$1\beta$ where for the IL1B\_511 locus the related $3 \times 2$ table data are given in Table~\ref{reich}. A control group and two groups of affected people with early and late onset of the disease are under test. One is interested in detecting any deviation from independence of genotype distribution for both loci and the three groups in either females and / or males. Attaching scores $1, -1/2, -1/2$ to the control, early and late onset group results in a linear statistic $\T$ with six elements: three models for each of the two loci. <>= it <- independence_test(TNFA_238 + IL1B_511 ~ group | gender, data = psoriasis, ytrafo = function(data) trafo(data, factor_trafo = g), scores = list(group = c(1, -1/2, -1/2)), alter = "tw") pvals <- matrix(round(pvalue(it, method = "single-step"), 4), nr = 3) pvals[pvals < 0.01] <- "$< 0.0001$" rownames(pvals) <- c("dominant", "additive", "recessive") @ The multiplicity-adjusted $p$-values in Table~\ref{pstab} indicate that there is a strong deviation from independence for the TNFA\_238 locus. The recessive model has the largest $p$-value and thus it is not likely that this model is true. The $p$-values for the dominant and the additive are extremely small, so either of these models could have generated the data. We can simultaneously reject the null hypothesis of independence between the genotype distribution of the IL1B\_511 locus and the three groups. Here, the dominant model seems to explain the data best. Our analysis improves upon the original analysis of these data by \citet{Reich:2002} with respect to three points: All three groups and the stratification by gender are taken into account and and the new test makes use of the correlation between the two loci instead of applying a Bonferroni correction in order to maintain an overall significance level. \begin{table} \begin{center} \caption{MAX test for psoriasis data: Asymptotic multiplicity-adjusted $p$-values. \label{pstab}} \vspace*{0.5cm} \begin{tabular}{lrr} & TNFA\_238 & IL1B\_511 \\ \hline <>= for (i in 1:nrow(pvals)) cat(rownames(pvals)[i], " & ", paste(pvals[i,], collapse = "&"), "\\\\ \n") @ \hline \end{tabular} \end{center} \end{table} Recently, \citet{Bagos2007} proposed a penalty-free selection approach for the underlying mode of inheritance based on the parameter estimates in a logistic regression model. Here, we re-analyse their meta-analysis data on the association of KIR6.2 gene polymorphism with type II diabetes \citep[Table~1 on page 3 in][]{Bagos2007}. <>= bit <- independence_test(Group ~ Locus | Study, data = diabetes, xtrafo = g, alternative = "greater") bCA <- statistic(bit, type = "linear") bCAstand <- statistic(bit, type = "standardized") bpasympt <- pvalue(bit, method = "single-step") bitp <- independence_test(Group ~ Locus | Study, data = diabetes, xtrafo = g, distribution = approximate(B = 49999), alternative = "greater") bpapprox <- pvalue(bitp, method = "step-down") out <- cbind(bCA, round(expectation(bit), 4), round(sqrt(variance(bit)), 4), round(bCAstand, 4), round(bpasympt, 4), round(bpapprox, 4)) rownames(out) <- rownames(bCA) out[,2] <- formatC(out[,2], digits = 4, format = "f") @ \begin{table} \begin{center} \caption{MAX test for Type II diabetes data with linear statistic $\T$, its conditional expectation $\mu$, standard deviation $\sigma$ and corresponding standardised statistic along with multiplicity-adjusted $p$-values. \label{diares}} \vspace*{0.5cm} \begin{tabular}{l l l l l l l l} & $\T$ & $\mu$ & $ \sigma$ & $(\T - \mu) / \sigma$ & $p_\text{asympt}$ & $p_\text{step-down}$ \\ \hline <>= for (i in 1:nrow(out)) cat(rownames(out)[i], " & ", paste(out[i,], collapse = " & "), "\\\\ \n") @ \hline \end{tabular} \end{center} \end{table} \section{Simulation Experiments} \label{sim} It might be questioned if the minimal $p$-value can be observed for the correct mode of inheritance with high probability and thus how good the `estimator' is under practical circumstances. The frequency of correct model identifications and the power of the MAX test is investigated in some simple situations in the following. Many different patterns of penetrances $f_j$, $j \in \{aa, aA, AA\}$, disease prevalence $p$, sample size of cases and controls $R$, $S$ can be investigated in a simulation study. We will focus on a high prevalent disease (i.e., $p=0.5$), penetrances according to an additive, recessive and dominant genetic model (as well as no association characterising the null hypothesis) for a total sample size of $N=400$ divided into the balanced $R=S=200$ and several unbalanced sampling schemes. Unbalanced data are of interest because real data examples exist with seriously higher control sample size, see e.g. the data in Table~\ref{mel}, or with more cases, see e.g. the IL13 polymorphism in atopic dermatitis \cite{Neuhauser:2002}, Table 4. For the proposed MAX test both the global power $\pi_\text{global}$(the decision rate in favour of any alternative) and the correct model identification rates $\psi_\text{add}$,$\psi_\text{rec}$,$\psi_\text{dom}$ are compared with the power of the individual genetic model tests $\pi_\text{add}$, $\pi_\text{rec}$, $\pi_\text{dom}$ in Table~\ref{simtab}. \begin{table} \begin{center} \caption{Type I error rate and empirical power estimates ($\pi$) for prevalence $p=0.5$ based on 10000 runs with sample sizes $R$ (cases) and $S$ (controls) along with correct model identification rates $\psi$. \label{simtab}} \vspace*{0.5cm} \begin{tabular}{l l l l| l l l |l l l} Model & R & S & $\pi_{\text{global}}$ & $\psi_\text{add}$ & $\psi_\text{rec}$ & $\psi_\text{dom}$ & $\pi_\text{add}$ & $\pi_\text{rec}$ & $\pi_\text{dom}$ \\ \hline Null & 200 & 200 & 0.048& 0.012 & 0.017& 0.019 & 0.051 & 0.047 & 0.049 \\ dominant & 200 & 200 & 0.85 & 0.13 & 0.01 & \textit{0.71} & 0.75 & 0.23 & \textbf{0.91} \\ additive & 200 & 200 & 0.84 & \textit{0.53} & 0.10 & 0.21 & \textbf{0.88} & 0.71 & 0.78 \\ recessive & 200 & 200 & 0.86 & 0.16 & \textit{0.69} & 0.01 & 0.80 & \textbf{0.91} & 0.28 \\ dominant & 100 & 300 & 0.72 & 0.16 & 0.01 & \textit{0.55}& 0.63 & 0.21 & \textbf{0.80} \\ additive & 100 & 300 & 0.73 & \textit{0.43} & 0.14 & 0.16 & \textbf{0.78} & 0.60 & 0.65 \\ recessive & 100 & 300 & 0.77 & 0.16 & \textit{0.60} & 0.01 & 0.67 & \textbf{0.82} & 0.22 \\ dominant & 300 & 100 & 0.76 & 0.11 & 0.01 & \textit{0.64} & 0.66 & 0.19 & \textbf{0.82} \\ additive & 300 & 100 & 0.75 & \textit{0.42} & 0.09 & 0.24 & \textbf{0.79} & 0.59 & 0.69 \\ recessive & 300 & 100 & 0.75 & 0.17 & \textit{0.55} & 0.01 & 0.69 & \textbf{0.82 }& 0.24 \\ \hline \end{tabular} \end{center} \end{table} Per definition all tests control the type I error rates. Clearly, the power is maximal for the individual, unadjusted tests when the genetic model is known (bold marked). But the a priori knowledge of the genetic model is commonly unrealistic. For balanced samples sizes the power of the MAX test is independent of the underlying genetic model and marginal smaller compared with the maximum power for the known model. Additionally to the global decision that a significant association exists, the MAX test provide an adjusted $p$-value for the most likely genetic model. In this case, the identification of the additive model is most difficult because of the two equal competitors; whereas the identification of the dominant or recessive model is easier because the additive model is the only competitor. For unbalanced designs the power decreases although the total sample size remains constant. \section{Computational Details} \label{Comp} The \Rpackage{coin} add-on package \citep{Hothorn:2006:AmStat, Hothorn+Hornik+VanDeWiel:2008, PKG:coin} to the \textsf{R} system for statistical computing \citep{rcore2007} provides an implementation of the conditional inference framework sketched in this section. The analysis of an association study by the MAX test only requires the user to set-up the score function $g$. Then, the function \texttt{independence\_test} can be used to perform the MAX test and to compute multiplicity-adjusted $p$-values. \section{Conclusions} We propose a flexible approach to permutation tests for association of a bi-allelic marker with a disease in population-based case-control studies. The joint conditional asymptotic distribution of the three underlying linear association tests, i.e., Cochran-Armitage tests with optimal scores for additive, dominant, and recessive modes of inheritance, is known and can be used to approximate the distribution of the corresponding maximum statistic. Not only a global $p$-value can be derived this way but also multiplicity-adjusted $p$-values for each of the individual models. When the mode of inheritance is unknown, remarkably high correct model selection rates can be achieved. Based on a general framework for conditional inference we extend the MAX test to stratified designs, $3 \times k$ tables as well as multiple loci. Correlations between loci and corresponding association tests are taken into account leading to more powerful multiple test procedure. Further modifications and extensions and specific choices of $g$ and $h$ are described by \cite{Hothorn:2006:AmStat} and \cite{Hothorn+Hornik+VanDeWiel:2008}. For small sample sizes, a better approximation of the $p$-values can be obtained from Monte Carlo resampling techniques. For genome-wide association studies, computing time is a limiting factor; a further advantage for the above approach \citep{Ziegler2008}. The proposed procedures are easily applicable using the computational tools provided by the \textsf{R} add-on package \Rpackage{coin} as illustrated in Appendix~\ref{ex}. A future modification will be the use of model-specific genomic-control corrected tests analogously to \citet{Zang:2007} in the possible case of population stratification. \section{Acknowledgements} We would like to thank Andreas Ziegler and Inke R. Koenig for providing us with the psoriasis data. \bibliography{references} \newpage \begin{appendix} \section{Example Analyses} \label{ex} The Melanoma data are represented by a \texttt{table} object in \textsf{R} as follows: <>= me <- as.table(matrix(c( 6, 8, 10, 32, 47, 20), byrow = TRUE, nrow = 2, dimnames = list(Group = c("In situ", "Control"), Genotype = c("AA", "AG", "GG")))) me <- t(me) me @ The function $g$ is implemented by the following function: <>= add <- c(0, 1, 2) dom <- c(0, 1, 1) rec <- c(0, 0, 1) g <- function(x) { x <- unlist(x) cbind(dominant = dom[x], additive = add[x], recessive = rec[x]) } @ which then sets up the MAX test for the Melanoma data: <>= library("coin") it <- independence_test(me, xtrafo = g, alternative = "greater") it @ The multiplicity-adjusted $p$-values for both inference and estimating the underlying mode of inheritance are computed via: <>= pvalue(it, method = "single-step") @ <>= drop(pvalue(it, method = "single-step")) @ The score independent approach by \cite{Zheng:2008} maximises the Cochran-Armitage statistic over potential score vectors $\xi_\eta = (0, \eta, 1)$, i.e., one is interested in the test statistic $c_\text{max}$ where the maximium is taken over a grid of $\eta$ values. This procedure can be performed by choosing appropriate transformation $g$, i.e., a grid of $\eta$ values in $[0,1]$ <>= gZheng <- function(x) { x <- unlist(x) eta <- seq(from = 0, to = 1, by = 0.01) tr <- sapply(eta, function(n) c(0, n, 1)[x]) colnames(tr) <- paste("eta", eta, sep = "_") tr } itZ <- independence_test(me, xtrafo = gZheng, alternative = "greater") itZ @ <>= pvalue(itZ, method = "single-step") @ <>= drop(pvalue(itZ, method = "single-step")) @ The test statistic takes its maximum for the score $(0, 0, 1)$ (as above), its corresponding adjusted $p$-value is only marginally larger compared to the MAX test based on three score vectors (\Sexpr{round(pvalue(itZ, method = "single-step")[1], 5)} vs. \Sexpr{round(pvalue(it)[1], 5)}). \end{appendix} \end{document} <>= library("coin") assocAS <- function(x, scores = 1:ncol(x), ...) { if (!is.table(x)) stop(sQuote("x"), " is not a table.") if (length(scores) != ncol(x)) stop("Length of ", sQuote(scores), " does not match ", sQuote("ncol(x)")) xtab <- as.vector(t(x)) tmpdat <- data.frame(groups = factor(rep(paste("G", 1:nrow(x), sep = ""), rowSums(x))), scores1 = rep(rep(scores, nrow(x)), xtab), scores2 = rep(rep(c(scores[1], scores[2], scores[2]), nrow(x)), xtab), scores3 = rep(rep(c(scores[1], scores[1], scores[2]), nrow(x)), xtab)) independence_test(scores1 + scores2 + scores3 ~ groups, data = tmpdat, ...) } set.seed(17057711) SIMG=function (sims,R,S,p,f0,f1,f2) { #sims=10000 #R=200; S=200; #p=0.2; f0=0.1; f1=0.1; f2=0.3 phi=f2*(p**2)+(2*f1)*((1-p)*p)+f0*((1-p)**2) p0=(f0*(1-p)**2)/phi p1=(2*f1*(1-p)*p)/phi p2=(f2*p**2)/phi q0=((1-f0)*(1-p)**2)/(1-phi) q1=(2*(1-f1)*(1-p)*p)/(1-phi) q2=((1-f2)*p**2)/(1-phi) Probs=list(c(p2,p1,p0), c(q2,q1,q0)) # ansteigend ntotal=c(R,S) assocASsim <- function(n = sims, ngroup = ntotal, probs =Probs, scores = 1:3, ...) { g1 <- rmultinom(n, ngroup[1], probs[[1]]) g2 <- rmultinom(n, ngroup[2], probs[[2]]) padj <- matrix(0, nrow = n, ncol = length(scores)) praw <- matrix(0, nrow = n, ncol = length(scores)) for (i in 1:n) { x <- as.table(rbind(g1[,i], g2[,i])) it <- assocAS(x, scores = scores, ...) ### adjusted p-value padj[i,] <- pvalue(it, method = "single-step") ### raw p-value praw[i,] <- pnorm(statistic(it, type = "standardized")) } list(padj = padj, praw = praw) } tw <- assocASsim(alternative = "less") ### minimum p-value erg=table(apply(tw$padj, 1, which.min)) welchmin=apply(tw$padj, 1, which.min) nwelc=factor(welchmin, levels=c(1,2,3)) kleinst=apply(tw$padj, 1, min) gg=kleinst<0.05 fgg=factor(gg, levels=c(TRUE, FALSE)) oma=table(nwelc,fgg) est1=oma[1,1]/sims est2=oma[2,1]/sims est3=oma[3,1]/sims estMax=length(which(tw$padj[,1]<0.05 | tw$padj[,2]<0.05 |tw$padj[,3]<0.05))/sims estA=length(which(tw$praw[,1]<0.05))/sims estR=length(which(tw$praw[,2]<0.05))/sims estD=length(which(tw$praw[,3]<0.05))/sims ergeb=c("Max"=estMax,"MaxA"=est1,"MaxR"=est2,"MaxD"=est3,"Add"=estA, "Rec"=estR, "Dom"=estD, "p"=p,"f0"=f0,"f1"=f1,"f2"=f2,"cas"=R, "con"=S ) ergeb } SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.1,f2=0.1) SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.187,f2=0.187) SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.15, f2=0.2) SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.1, f2=0.175) SIMG(sims=1000,R=180,S=220,p=0.5,f0=0.1,f1=0.187,f2=0.187) SIMG(sims=1000,R=150,S=250,p=0.5,f0=0.1,f1=0.187,f2=0.187) SIMG(sims=1000,R=100,S=300,p=0.5,f0=0.1,f1=0.187,f2=0.187) SIMG(sims=1000,R=180,S=220,p=0.5,f0=0.1,f1=0.15, f2=0.2) SIMG(sims=1000,R=150,S=250,p=0.5,f0=0.1,f1=0.15, f2=0.2) SIMG(sims=1000,R=100,S=300,p=0.5,f0=0.1,f1=0.15, f2=0.2) SIMG(sims=1000,R=180,S=220,p=0.5,f0=0.1,f1=0.1, f2=0.175) SIMG(sims=1000,R=150,S=250,p=0.5,f0=0.1,f1=0.1, f2=0.175) SIMG(sims=1000,R=100,S=300,p=0.5,f0=0.1,f1=0.1, f2=0.175) SIMG(sims=1000,R=220,S=180,p=0.5,f0=0.1,f1=0.187,f2=0.187) SIMG(sims=1000,R=250,S=150,p=0.5,f0=0.1,f1=0.187,f2=0.187) SIMG(sims=1000,R=300,S=100,p=0.5,f0=0.1,f1=0.187,f2=0.187) SIMG(sims=1000,R=220,S=180,p=0.5,f0=0.1,f1=0.15, f2=0.2) SIMG(sims=1000,R=250,S=150,p=0.5,f0=0.1,f1=0.15, f2=0.2) SIMG(sims=1000,R=300,S=100,p=0.5,f0=0.1,f1=0.15, f2=0.2) SIMG(sims=1000,R=220,S=180,p=0.5,f0=0.1,f1=0.1, f2=0.175) SIMG(sims=1000,R=250,S=150,p=0.5,f0=0.1,f1=0.1, f2=0.175) SIMG(sims=1000,R=300,S=100,p=0.5,f0=0.1,f1=0.1, f2=0.175) SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.1, f2=0.1) SIMG(sims=10000,R=180,S=220,p=0.5,f0=0.1,f1=0.1, f2=0.1) SIMG(sims=10000,R=150,S=250,p=0.5,f0=0.1,f1=0.1, f2=0.1) SIMG(sims=10000,R=100,S=300,p=0.5,f0=0.1,f1=0.1, f2=0.1) SIMG(sims=10000,R=300,S=100,p=0.5,f0=0.1,f1=0.1, f2=0.1) SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.187, f2=0.187) SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.15, f2=0.2) SIMG(sims=10000,R=200,S=200,p=0.5,f0=0.1,f1=0.1, f2=0.175) SIMG(sims=10000,R=100,S=100,p=0.2,f0=0.16,f1=0.26, f2=0.36) SIMG(sims=10000,R=100,S=100,p=0.2,f0=0.2,f1=0.2, f2=0.7) SIMG(sims=10000,R=100,S=100,p=0.2,f0=0.2,f1=0.35, f2=0.35) SIMG(sims=10000,R=300,S=100,p=0.5,f0=0.1,f1=0.187, f2=0.187) SIMG(sims=10000,R=300,S=100,p=0.5,f0=0.1,f1=0.15, f2=0.2) SIMG(sims=10000,R=300,S=100,p=0.5,f0=0.1,f1=0.1, f2=0.175) SIMG(sims=10000,R=100,S=300,p=0.5,f0=0.1,f1=0.187, f2=0.187) SIMG(sims=10000,R=100,S=300,p=0.5,f0=0.1,f1=0.15, f2=0.2) SIMG(sims=10000,R=100,S=300,p=0.5,f0=0.1,f1=0.1, f2=0.175) @ coin/inst/doc/coin.R0000644000175100001440000001307012622326244014021 0ustar hornikusers### R code from vignette source 'coin.Rnw' ################################################### ### code chunk number 1: setup ################################################### options(width = 60) require("coin") set.seed(290875) ################################################### ### code chunk number 2: YOY-kruskal ################################################### library("coin") YOY <- data.frame( length = c(46, 28, 46, 37, 32, 41, 42, 45, 38, 44, 42, 60, 32, 42, 45, 58, 27, 51, 42, 52, 38, 33, 26, 25, 28, 28, 26, 27, 27, 27, 31, 30, 27, 29, 30, 25, 25, 24, 27, 30), site = gl(4, 10, labels = as.roman(1:4)) ) it <- independence_test(length ~ site, data = YOY, ytrafo = function(data) trafo(data, numeric_trafo = rank_trafo), teststat = "quadratic") it ################################################### ### code chunk number 3: YOY-T ################################################### statistic(it, type = "linear") ################################################### ### code chunk number 4: YOY-EV ################################################### expectation(it) covariance(it) ################################################### ### code chunk number 5: YOY-S ################################################### statistic(it, type = "standardized") ################################################### ### code chunk number 6: YOY-c ################################################### statistic(it) ################################################### ### code chunk number 7: YOY-p ################################################### pvalue(it) ################################################### ### code chunk number 8: YOY-KW ################################################### kt <- kruskal_test(length ~ site, data = YOY, distribution = approximate(B = 10000)) kt ################################################### ### code chunk number 9: YOY-KWp ################################################### pvalue(kt) ################################################### ### code chunk number 10: jobsatisfaction-cmh ################################################### data("jobsatisfaction", package = "coin") ct <- cmh_test(jobsatisfaction) ct ################################################### ### code chunk number 11: jobsatisfaction-s ################################################### statistic(ct, type = "standardized") ################################################### ### code chunk number 12: jobsatisfaction-lbl ################################################### lbl_test(jobsatisfaction) ################################################### ### code chunk number 13: jobsatisfaction-lbl-sc ################################################### lbl_test(jobsatisfaction, scores = list(Job.Satisfaction = c(1, 3, 4, 5), Income = c(3, 10, 20, 35))) ################################################### ### code chunk number 14: jobsatisfaction-lbl-sc-alt ################################################### lbl_test(jobsatisfaction, ytrafo = function(data) trafo(data, ordered_trafo = function(y) of_trafo(y, scores = c(1, 3, 4, 5))), xtrafo = function(data) trafo(data, ordered_trafo = function(x) of_trafo(x, scores = c(3, 10, 20, 35)))) ################################################### ### code chunk number 15: eggs-Durbin ################################################### egg_data <- data.frame( scores = c(9.7, 8.7, 5.4, 5.0, 9.6, 8.8, 5.6, 3.6, 9.0, 7.3, 3.8, 4.3, 9.3, 8.7, 6.8, 3.8, 10.0, 7.5, 4.2, 2.8, 9.6, 5.1, 4.6, 3.6, 9.8, 7.4, 4.4, 3.8, 9.4, 6.3, 5.1, 2.0, 9.4, 9.3, 8.2, 3.3, 8.7, 9.0, 6.0, 3.3, 9.7, 6.7, 6.6, 2.8, 9.3, 8.1, 3.7, 2.6, 9.8, 7.3, 5.4, 4.0, 9.0, 8.3, 4.8, 3.8, 9.3, 8.3, 6.3, 3.8), sitting = factor(rep(c(1:15), rep(4, 15))), product = factor(c(1, 2, 4, 5, 2, 3, 6, 10, 2, 4, 6, 7, 1, 3, 5, 7, 1, 4, 8, 10, 2, 7, 8, 9, 2, 5, 8, 10, 5, 7, 9, 10, 1, 2, 3, 9, 4, 5, 6, 9, 1, 6, 7, 10, 3, 4, 9, 10, 1, 6, 8, 9, 3, 4, 7, 8, 3, 5, 6, 8)) ) independence_test(scores ~ product | sitting, data = egg_data, teststat = "quadratic", ytrafo = function(data) trafo(data, numeric_trafo = rank_trafo, block = egg_data$sitting)) ################################################### ### code chunk number 16: eggs-Durbin-approx ################################################### pvalue(independence_test(scores ~ product | sitting, data = egg_data, teststat = "quadratic", ytrafo = function(data) trafo(data, numeric_trafo = rank_trafo, block = egg_data$sitting), distribution = approximate(B = 19999))) ################################################### ### code chunk number 17: eggs-Page ################################################### independence_test(scores ~ product | sitting, data = egg_data, ytrafo = function(data) trafo(data, numeric_trafo = rank_trafo, block = egg_data$sitting), scores = list(product = 1:10)) ################################################### ### code chunk number 18: warpbreaks-Tukey ################################################### it <- independence_test(length ~ site, data = YOY, xtrafo = mcp_trafo(site = "Tukey"), teststat = "maximum", distribution = "approximate") pvalue(it) pvalue(it, method = "single-step") coin/inst/doc/LegoCondInf.Rnw0000644000175100001440000012704112622326244015571 0ustar hornikusers\documentclass{article} \usepackage{amstext} \usepackage{amsfonts} \usepackage{hyperref} \usepackage[round]{natbib} \renewcommand{\refname}{REFERENCES} \usepackage{hyperref} \usepackage{graphicx} \usepackage{rotating} %%\usepackage[nolists]{endfloat} %%\usepackage{Sweave} %%\VignetteIndexEntry{A Lego System for Conditional Inference} \newcommand{\Rpackage}[1]{{\normalfont\fontseries{b}\selectfont #1}} \newcommand{\Robject}[1]{\texttt{#1}} \newcommand{\Rclass}[1]{\textit{#1}} \newcommand{\Rcmd}[1]{\texttt{#1}} \newcommand{\Roperator}[1]{\texttt{#1}} \newcommand{\Rarg}[1]{\texttt{#1}} \newcommand{\Rlevel}[1]{\texttt{#1}} \newcommand{\RR}{\textsf{R}} \renewcommand{\S}{\textsf{S}} \newcommand{\R}{\mathbb{R} } \newcommand{\Prob}{\mathbb{P} } \newcommand{\N}{\mathbb{N} } \newcommand{\C}{\mathbb{C} } \newcommand{\V}{\mathbb{V}} %% cal{\mbox{\textnormal{Var}}} } \newcommand{\E}{\mathbb{E}} %%mathcal{\mbox{\textnormal{E}}} } \newcommand{\Var}{\mathbb{V}} %%mathcal{\mbox{\textnormal{Var}}} } \newcommand{\argmin}{\operatorname{argmin}\displaylimits} \newcommand{\argmax}{\operatorname{argmax}\displaylimits} \newcommand{\LS}{\mathcal{L}_n} \newcommand{\TS}{\mathcal{T}_n} \newcommand{\LSc}{\mathcal{L}_{\text{comb},n}} \newcommand{\LSbc}{\mathcal{L}^*_{\text{comb},n}} \newcommand{\F}{\mathcal{F}} \newcommand{\A}{\mathcal{A}} \newcommand{\yn}{y_{\text{new}}} \newcommand{\z}{\mathbf{z}} \newcommand{\X}{\mathbf{X}} \newcommand{\Y}{\mathbf{Y}} \newcommand{\sX}{\mathcal{X}} \newcommand{\sY}{\mathcal{Y}} \newcommand{\T}{\mathbf{T}} \newcommand{\x}{\mathbf{x}} \renewcommand{\a}{\mathbf{a}} \newcommand{\xn}{\mathbf{x}_{\text{new}}} \newcommand{\y}{\mathbf{y}} \newcommand{\w}{\mathbf{w}} \newcommand{\ws}{\mathbf{w}_\cdot} \renewcommand{\t}{\mathbf{t}} \newcommand{\M}{\mathbf{M}} \renewcommand{\vec}{\text{vec}} \newcommand{\B}{\mathbf{B}} \newcommand{\K}{\mathbf{K}} \newcommand{\W}{\mathbf{W}} \newcommand{\D}{\mathbf{D}} \newcommand{\I}{\mathbf{I}} \newcommand{\bS}{\mathbf{S}} \newcommand{\cellx}{\pi_n[\x]} \newcommand{\partn}{\pi_n(\mathcal{L}_n)} \newcommand{\err}{\text{Err}} \newcommand{\ea}{\widehat{\text{Err}}^{(a)}} \newcommand{\ecv}{\widehat{\text{Err}}^{(cv1)}} \newcommand{\ecvten}{\widehat{\text{Err}}^{(cv10)}} \newcommand{\eone}{\widehat{\text{Err}}^{(1)}} \newcommand{\eplus}{\widehat{\text{Err}}^{(.632+)}} \newcommand{\eoob}{\widehat{\text{Err}}^{(oob)}} \RequirePackage[T1]{fontenc} \RequirePackage{graphicx,ae,fancyvrb} \IfFileExists{upquote.sty}{\RequirePackage{upquote}}{} \usepackage{relsize} \DefineVerbatimEnvironment{Sinput}{Verbatim}{baselinestretch=1} \DefineVerbatimEnvironment{Soutput}{Verbatim}{fontfamily=courier, baselinestretch=1, fontshape=it, fontsize=\relsize{-1}} \DefineVerbatimEnvironment{Scode}{Verbatim}{} \newenvironment{Schunk}{}{} \renewcommand{\baselinestretch}{1} \SweaveOpts{engine=R,eps=FALSE} \hypersetup{% pdftitle = {A Lego System for Conditional Inference}, pdfsubject = {Manuscript}, pdfauthor = {Torsten Hothorn, Kurt Hornik, Mark A. van de Wiel and Achim Zeileis}, %% change colorlinks to false for pretty printing colorlinks = {true}, linkcolor = {blue}, citecolor = {blue}, urlcolor = {red}, hyperindex = {true}, linktocpage = {true}, } <>= options(width = 65, prompt = "R> ", continue = " ") require("coin") set.seed(290875) ### get rid of the NAMESPACE #load(file.path(.find.package("coin"), "R", "all.rda")) anonymous <- FALSE @ \begin{document} \title{A Lego System for Conditional Inference \footnote{This is a preprint of an article published in The American Statistician, Volume 60, Number 3, Pages 257--263. Copyright \copyright{} 2006 American Statistical Association; available online at \url{http://www.amstat.org/publications/tas/}.}} <>= if(!anonymous) { cat("\\author{Torsten Hothorn$^1$, Kurt Hornik$^2$, \\\\ Mark A. van de Wiel$^3$ and Achim Zeileis$^2$}\n") } else { cat("\\author{TAS MS05-239, Revision}\n") } @ \setkeys{Gin}{width=\textwidth} \date{} \maketitle \thispagestyle{empty} <>= if(!anonymous) cat("\\noindent$^1$ Institut f\\\"ur Medizininformatik, Biometrie und Epidemiologie\\\\ Friedrich-Alexander-Universit\\\"at Erlangen-N\\\"urnberg\\\\ Waldstra{\\ss}e 6, D-91054 Erlangen, Germany \\\\ \\texttt{Torsten.Hothorn@R-project.org} \\newline \\noindent$^2$ Department f\\\"ur Statistik und Mathematik, Wirtschaftsuniversit\\\"at Wien \\\\ Augasse 2-6, A-1090 Wien, Austria \\\\ \\texttt{Kurt.Hornik@R-project.org} \\\\ \\texttt{Achim.Zeileis@R-project.org} \\newline \\noindent$^3$ Department of Mathematics, Vrije Universiteit \\\\ De Boelelaan 1081a, 1081 HV Amsterdam, The Netherlands \\\\ \\texttt{mark.vdwiel@vumc.nl} \\newline\n") @ \noindent \begin{abstract} Conditioning on the observed data is an important and flexible design principle for statistical test procedures. Although generally applicable, permutation tests currently in use are limited to the treatment of special cases, such as contingency tables or $K$-sample problems. A new theoretical framework for permutation tests opens up the way to a unified and generalized view. We argue that the transfer of such a theory to practical data analysis has important implications in many applications and requires tools that enable the data analyst to compute on the theoretical concepts as closely as possible. We re-analyze four data sets by adapting the general conceptual framework to these challenging inference problems and utilizing the \Rpackage{coin} add-on package in the \RR{} system for statistical computing to show what one can gain from going beyond the `classical' test procedures. \end{abstract} \noindent KEY WORDS: Permutation tests; Independence; Asymptotic distribution; Software. \newline %% \newpage \section{INTRODUCTION} The distribution of a test statistic under the circumstances of a null hypothesis clearly depends on the unknown distribution of the data and thus is unknown as well. Two concepts are commonly applied to dispose of this dependency. Unconditional tests impose assumptions on the distribution of the data such that the null distribution of a test statistic can be derived analytically. In contrast, conditional tests replace the unknown null distribution by the conditional null distribution, i.e., the distribution of the test statistic given the observed data. The latter approach is known as \textit{permutation testing} and was developed by R.~A.~Fisher more than 70 years ago \citep{Fisher1935}. The pros and cons of both approaches in different fields of application have been widely discussed \citep[e.g.~by][]{why-permut:1998,pros-and-c:2000,Shuster2005}. Here, we focus on the practical aspects of permutation testing rather than dealing with its methodological foundations. For the construction of permutation tests it is common exercise to `recycle' test statistics well known from the unconditional world, such as linear rank statistics, ANOVA $F$ statistics or $\chi^2$ statistics for contingency tables, and to replace the unconditional null distribution with the conditional distribution of the test statistic under the null hypothesis \citep{Edgington1987,Good2000,Pesarin2001,Ernst2004}. Because the choice of the test statistic is the only `degree of freedom' for the data analyst, the classical view on permutation tests requires a `cook book' classification of inference problems (categorical data analysis, multivariate analysis, $K$-sample location problems, correlation, etc.), each being associated with a `natural' form of the test statistic. The theoretical advances of the last decade \citep[notably][]{StrasserWeber1999, Pesarin2001,JanssenPauls2003} give us a much better understanding of the strong connections between the `classical' permutation tests defined for different inference problems. As we will argue in this paper, the new theoretical tools open up the way to a simple construction principle for test procedures in new and challenging inference problems. Especially attractive for this purpose is the theoretical framework for permutation tests developed by \cite{StrasserWeber1999}. This unifying theory is based on a flexible form of multivariate linear statistics for the general independence problem. This framework provides us with a conceptual Lego system for the construction of permutation tests consisting of Lego bricks for linear statistics suitable for different inference problems (contingency tables, multivariate problems, etc.), different forms of test statistics (such as quadratic forms for global tests or test statistics suitable for multiple comparison procedures), and several ways to derive the conditional null distribution (by means of exact computations or approximations). The classical procedures, such as a permutation $t$ test, are part of this framework and, even more interesting, new test procedures can be embedded into the same theory whose main ideas are sketched in Section~\ref{CI}. Currently, the statistician's toolbox consists of rather specialized spanners, such as the Wilcoxon-Mann-Whitney test for comparing two distributions or the Cochran-Mantel-Haenszel $\chi^2$ test for independence in contingency tables. With this work, we add an adjustable spanner to the statistician's toolbox which helps to address both the common as well as new or unusual inference problems with the appropriate conditional test procedures. In the main part of this paper we show how one can construct and implement permutation tests `on the fly' by plugging together Lego bricks for the multivariate linear statistic, the test statistic and the conditional null distribution, both conceptually and practically by means of the \Rpackage{coin} add-on package <>= if (anonymous) { cat(" \\citep{PKG:coina} ") } else { cat(" \\citep{PKG:coin} ") } @ in the \RR{} system for statistical computing \citep{Rcore2005}. \section{A CONCEPTUAL LEGO SYSTEM \label{CI}} To fix notations, we assume that we are provided with independent and identically distributed observations $(\Y_i, \X_i)$ for $i = 1, \dots, n$. The variables $\Y$ and $\X$ from sample spaces $\mathcal{Y}$ and $\mathcal{X}$ may be measured at arbitrary scales and may be multivariate as well. We are interested in testing the null hypothesis of independence of $\Y$ and $\X$ \begin{eqnarray*} H_0: D(\Y | \X) = D(\Y) \end{eqnarray*} against arbitrary alternatives. \cite{StrasserWeber1999} suggest to derive \textit{scalar} test statistics for testing $H_0$ from \textit{multivariate} linear statistics of the form \begin{eqnarray*} \T = \vec\left(\sum_{i = 1}^n g(\X_i) h(\Y_i)^\top\right) \in \R^{pq \times 1}. \end{eqnarray*} Here, $g: \mathcal{X} \rightarrow \R^{p \times 1}$ is a transformation of the $\X$ measurements and $h: \mathcal{Y} \rightarrow \R^{q \times 1}$ is called \emph{influence function}. The function $h(\Y_i) = h(\Y_i, (\Y_1, \dots, \Y_n))$ may depend on the full vector of responses $(\Y_1, \dots, \Y_n)$, however only in a permutation symmetric way, i.e., the value of the function must not depend on the order in which $\Y_1, \dots, \Y_n$ appear. We will give several examples how to choose $g$ and $h$ for specific inference problems in Section~\ref{play}. The distribution of $\T$ depends on the joint distribution of $\Y$ and $\X$, which is unknown under almost all practical circumstances. At least under the null hypothesis one can dispose of this dependency by fixing $\X_1, \dots, \X_n$ and conditioning on all possible permutations $S$ of the responses $\Y_1, \dots, \Y_n$. Tests that have been constructed by means of this conditioning principle are called \emph{permutation tests}. The conditional expectation $\mu \in \R^{pq \times 1}$ and covariance $\Sigma \in \R^{pq \times pq}$ of $\T$ under $H_0$ given all permutations $\sigma \in S$ of the responses are derived by \cite{StrasserWeber1999}: \begin{eqnarray*} \mu = \E(\T | S) & = & \vec \left( \left( \sum_{i = 1}^n g(\X_i) \right) \E(h | S)^\top \right) \\ \Sigma = \V(\T | S) & = & \frac{n}{n - 1} \V(h | S) \otimes \left(\sum_i g(\X_i) \otimes g(\X_i)^\top \right) \\ & - & \frac{1}{n - 1} \V(h | S) \otimes \left( \sum_i g(\X_i) \right) \otimes \left( \sum_i g(\X_i)\right)^\top \nonumber \end{eqnarray*} where $\otimes$ denotes the Kronecker product, and the conditional expectation of the influence function is $\E(h | S) = n^{-1} \sum_i h(\Y_i)$ with corresponding $q \times q$ covariance matrix \begin{eqnarray*} \V(h | S) = n^{-1} \sum_i \left(h(\Y_i) - \E(h | S) \right) \left(h(\Y_i) - \E(h | S)\right)^\top. \end{eqnarray*} The key step for the construction of test statistics based on the multivariate linear statistic $\T$ is its standardization utilizing the conditional expectation $\mu$ and covariance matrix $\Sigma$. Univariate test statistics~$c$ mapping a linear statistic $\T \in \R^{pq \times 1}$ into the real line can be of arbitrary form. Obvious choices are the maximum of the absolute values of the standardized linear statistic or a quadratic form: \begin{eqnarray*} c_\text{max}(\T, \mu, \Sigma) & = & \max \left| \frac{\T - \mu}{\text{diag}(\Sigma)^{1/2}} \right|, \\ c_\text{quad}(\T, \mu, \Sigma) & = & (\T - \mu)^\top \Sigma^+ (\T - \mu), \end{eqnarray*} involving the Moore-Penrose inverse $\Sigma^+$ of $\Sigma$. %%The definition of one- and two-sided $p$-values used for the computations in %%the \Rpackage{coin} package is %%\begin{eqnarray*} %%& & P(c(\T, \mu, \Sigma)\le c(\mathbf{t}, \mu, \Sigma)) \quad \text{(less)} \\ %%& & P(c(\T, \mu, \Sigma) \ge c(\mathbf{t}, \mu, \Sigma)) \quad \text{(greater)}\\ %%& & P(|c(\T, \mu, \Sigma)| \le |c(\mathbf{t}, \mu, \Sigma)|) \quad %%\text{(two-sided).} %%\end{eqnarray*} %%Note that for quadratic forms only two-sided $p$-values are available %%and that in the one-sided case maximum type test statistics are replaced by %%\begin{eqnarray*} %%\min \left( \frac{\mathbf{t} - \mu}{\text{diag}(\Sigma)^{1/2}} \right) %% \quad \text{(less) and } %%\max \left( \frac{\mathbf{t} - \mu}{\text{diag}(\Sigma)^{1/2}} \right) %% \quad \text{(greater).} %%\end{eqnarray*} The conditional distribution $\Prob(c(\T, \mu, \Sigma) \le z | S)$ is the number of permutations $\sigma \in S$ of the data with corresponding test statistic not exceeding $z$ divided by the total number of permutations in $S$. For some special forms of the multivariate linear statistic the exact distribution of some test statistics is tractable for small and moderate sample sizes. %%For two-sample problems, the shift-algorithm by \cite{axact-dist:1986} %%and \cite{exakte-ver:1987} and the split-up algorithm by %%\cite{vdWiel2001} are implemented as part of the package. In principle, resampling procedures can always be used to approximate the exact distribution up to any desired accuracy by evaluating the test statistic for a random sample from the set of all permutations $S$. It is important to note that in the presence of a grouping of the observations into independent blocks, only permutations within blocks are eligible and that the conditional expectation and covariance matrix need to be computed separately for each block. Less well known is the fact that a normal approximation of the conditional distribution can be computed for arbitrary choices of $g$ and $h$. \cite{StrasserWeber1999} showed in their Theorem~2.3 that the conditional distribution of linear statistics $\T$ with conditional expectation $\mu$ and covariance $\Sigma$ tends to a multivariate normal distribution with parameters $\mu$ and $\Sigma$ as $n \rightarrow \infty$. Thus, the asymptotic conditional distribution of test statistics of the form $c_\text{max}$ is normal and can be computed directly in the univariate case ($pq = 1$) and by numerical algorithms in the multivariate case \citep{numerical-:1992}. For quadratic forms $c_\text{quad}$ which follow a $\chi^2$ distribution with degrees of freedom given by the rank of $\Sigma$ \citep[see][Chapter 29]{johnsonkotz1970}, exact probabilities can be computed efficiently. \section{PLAYING LEGO \label{play}} The Lego system sketched in the previous section consists of Lego bricks for the multivariate linear statistic $\T$, namely the transformation $g$ and influence function $h$, multiple forms of the test statistic $c$ and several choices of approximations of the null distribution. In this section, we will show how classical procedures, starting with the conditional Kruskal-Wallis test and the Cochran-Mantel-Haenszel test, can be embedded into this general theory and, much more interesting from our point of view, how new conditional test procedures can be constructed conceptually \textit{and} practically. Therefore, each inference problem comes with \RR{} code performing the appropriate conditional test using the \Rpackage{coin} functionality which enables the data analyst to benefit from this simple methodology in typical data analyses. All following analyses are reproducible from the \Rpackage{coin} package vignette; this document can be accessed via \begin{Schunk} \begin{Sinput} R> vignette("LegoCondInf", package = "coin") \end{Sinput} \end{Schunk} directly in \RR{}. \paragraph{Independent $K$-Samples: Genetic Components of Alcoholism.} Various studies have linked alcohol dependence phenotypes to chromosome 4. One candidate gene is \textit{NACP} (non-amyloid component of plaques), coding for alpha synuclein. \cite{Boenscheta2005} found longer alleles of \textit{NACP}-REP1 in alcohol-dependent patients compared with healthy controls and report that the allele lengths show some association with levels of expressed alpha synuclein mRNA in alcohol-dependent subjects (see Figure~\ref{alpha-box}). Allele length is measured as a sum score built from additive dinucleotide repeat length and categorized into three groups: short ($0-4$, $n = 24$), intermediate ($5-9$, $n = 58$), and long ($10-12$, $n = 15$). \setkeys{Gin}{width=0.6\textwidth} \begin{figure} \begin{center} <>= n <- table(alpha$alength) par(cex.lab = 1.3, cex.axis = 1.3) boxplot(elevel ~ alength, data = alpha, ylab = "Expression Level", xlab = "NACP-REP1 Allele Length", varwidth = TRUE) axis(3, at = 1:3, labels = paste("n = ", n)) rankif <- function(data) trafo(data, numeric_trafo = rank_trafo) @ \caption{\Robject{alpha} data: Distribution of levels of expressed alpha synuclein mRNA in three groups defined by the \textit{NACP}-REP1 allele lengths. \label{alpha-box}} \end{center} \end{figure} Our first attempt to test for different levels of gene expression in the three groups is the classical Kruskal-Wallis test. Here, the transformation $g$ is a dummy coding of the allele length ($g(\X_i) = (0, 1, 0)^\top$ for intermediate length, for example) and the value of the influence function $h(\Y_i)$ is the rank of $\Y_i$ in $\Y_1, \dots, \Y_n$. Thus, the linear statistic $\T$ is the vector of rank sums in each of the three groups and the test statistic is a quadratic form $(\T - \mu) \Sigma^+ (\T - \mu)^\top$ utilizing the conditional expectation~$\mu$ and covariance matrix~$\Sigma$. For computing $p$-values, the limiting $\chi^2$ distribution is typically used. In \RR{}, this specific test is readily implemented in the well established function \Rcmd{kruskal.test} which takes a symbolic formula description of the inference problem and a data set containing the actual observations as its main arguments. Here, the independence of expression levels (\Robject{elevel}) and allele lengths (\Robject{alength}) is formulated as \verb|elevel ~ alength|, the associated observations are available in a data frame \Rcmd{alpha}: <>= kruskal.test(elevel ~ alength, data = alpha) @ Alternatively, the same result can be obtained by embedding the classical Kruskal-Wallis test into the more general conditional inference framework implemented in the \Rcmd{independence\_test} function in the \Rpackage{coin} package. This also takes a formula and a data frame as its main arguments and additionally allows for the specification of the transformations $g$ and $h$ via \Rcmd{xtrafo} and \Rcmd{ytrafo}, respectively, as well as setting \Rcmd{teststat} to \Rcmd{"maximum"} or \Rcmd{"quadratic"} (for $c_\text{max}$ or $c_\text{quad}$, respectively) and the \Rcmd{distribution} to be used. Thus, for computing the Kruskal-Wallis test \Rcmd{ytrafo} has to be set to the function \Rcmd{rank\_trafo} for computing ranks, in \Rcmd{xtrafo} dummy codings have to be used (the default for categorical variables), \Rcmd{teststat} is the \Rcmd{"quadratic"} type statistic $c_\text{quad}$ and the default asymptotic \Rcmd{distribution} is applied: <>= independence_test(elevel ~ alength, data = alpha, ytrafo = rank_trafo, teststat = "quadratic") @ The output gives equivalent results as reported by \Rcmd{kruskal.test} above. So what is the advantage of using \Rcmd{independence\_test}? Going beyond the classical functionality in \Rcmd{kruskal.test} would require extensive programming but is easily possible in \Rcmd{independence\_test}. For example, the resampling distribution instead of the asymptotic distribution could be used by setting \Rcmd{distribution = approximate()}. More interestingly, ignoring the ordinal structure of the allele length is suboptimal, especially when we have an ordered alternative in mind. An intuitive idea for capturing the ordinal information would be to assign numeric scores to the allele length categories in the transformation $g$ rather than the dummy codings used above. A natural choice of scores would be the mid-points of the intervals originally used to categorize the allele lengths, i.e., $g(X_i) = 2$ for short ($\in [0, 4]$), $7$ for intermediate ($\in [5, 9]$) and $11$ for long ($\in [10, 12]$) alleles. In \RR{}, such a function $g$ is easily implemented as <>= mpoints <- function(x) c(2, 7, 11)[unlist(x)] @ which returns an $n$-vector and can then be passed as \Rcmd{xtrafo} argument to \Rcmd{independence\_test}: <>= independence_test(elevel ~ alength, data = alpha, ytrafo = rank_trafo, xtrafo = mpoints) @ This $p$-value emphasizes the impression from Figure~\ref{alpha-box} that the expression levels increase with increasing allele lengths. Note that due to usage of scalar transformations $g$ and $h$, the $c_\text{max}$- and $c_\text{quad}$-type test statistics are equivalent and hence \Rcmd{teststat} is not set (defaulting to \Rcmd{"maximum"}). Furthermore, it should be pointed out that a test based on such a numerical transformation for ordinal variables is equivalent to linear-by-linear association tests \citep{Agresti2002} for which further convenience infrastructure is available in the \Rcmd{independence\_test} function via the \Rcmd{scores} argument. \paragraph{Contingency Tables: Smoking and Alzheimer's Disease.} \setkeys{Gin}{width=\textwidth} <>= total <- nrow(alzheimer) stopifnot(total == 538) male <- sum(alzheimer$gender == "Male") stopifnot(male == 200) female <- sum(alzheimer$gender == "Female") stopifnot(female == 338) disease <- table(alzheimer$disease) smoked <- sum(alzheimer$smoking != "None") atab <- xtabs(~ smoking + + disease + gender, data = alzheimer) ### there is a discrepancy between Table 1 (32% smokers of 117 women ### suffering from other diagnoses) and Table 4 (63% non-smokers). ### We used the data as given in Table 4. @ \cite{SalibHillier1997} report results of a case-control study on Alzheimer's disease and smoking behavior of $\Sexpr{disease["Alzheimer"]}$ female and male Alzheimer patients and $\Sexpr{sum(disease[names(disease) != "Alzheimer"])}$ controls. The data shown in Table~\ref{alzheimertab} have been re-constructed from Table~4 in \cite{SalibHillier1997} and are depicted in Figure~\ref{alz-plot}. The authors conclude that `cigarette smoking is less frequent in men with Alzheimer's disease.' \begin{table}[h] \begin{center} \caption{\Robject{alzheimer} data: Smoking and Alzheimer's disease. \label{alzheimertab}} \begin{tabular}{lrrrr} \hline \hline & \multicolumn{4}{c}{No. of cigarettes daily} \\ & None & <10 & 10--20 & >20 \\ \hline \textit{Female} & & & & \\ <>= x <- t(atab[,,"Female"]) lines <- paste(paste(dimnames(x)$disease, " & "), paste(apply(x, 1, function(l) paste(l, collapse = " & ")), "\\\\")) for (i in 1:length(lines)) cat(lines[i], "\n") @ & & & & \\ \textit{Male} & & & & \\ <>= x <- t(atab[,,"Male"]) lines <- paste(paste(dimnames(x)$disease, " & "), paste(apply(x, 1, function(l) paste(l, collapse = " & ")), "\\\\")) for (i in 1:length(lines)) cat(lines[i], "\n") @ \hline \end{tabular} \end{center} \end{table} \begin{figure} \begin{center} <>= layout(matrix(1:2, ncol = 2)) spineplot(disease ~ smoking, data = alzheimer, subset = gender == "Male", main = "Male", xlab = "Smoking", ylab = "Disease", tol = 1) spineplot(disease ~ smoking, data = alzheimer, subset = gender == "Female", main = "Female", xlab = "Smoking", ylab = "Disease", tol = 1) @ \caption{\Robject{alzheimer} data: Association of smoking behavior and disease status stratified by gender. \label{alz-plot}} \end{center} \end{figure} We are interested to assess whether there is any association between smoking and Alzheimer's (or other dementia) diseases and, in a second step, how a potential association can be described. First, the global null hypothesis of independence between smoking behavior and disease status for both females and males, i.e., treating gender as a block factor, can be tested with a $c_\text{quad}$-type test statistic, i.e., the Cochran-Mantel-Haenszel test: <>= it_alz <- independence_test(disease ~ smoking | gender, data = alzheimer, teststat = "quadratic") it_alz @ which suggests that there is a clear deviation from independence. By default, the influence function $h$ (the \Rcmd{ytrafo} argument) and the transformation $g$ (the \Rcmd{xtrafo} argument) are dummy codings of the factors disease status $\Y$ and smoking behavior $\X$, i.e., $h(\Y_i) = (1, 0, 0)^\top$ and $g(\X_i) = (1, 0, 0 ,0)^\top$ for a non-smoking Alzheimer patient. Consequently, the linear multivariate statistic $\T$ based on $g$ and $h$ is the contingency table of both variables <>= statistic(it_alz, type = "linear") @ with conditional expectation \Rcmd{expectation(it\_alz)} and conditional covariance \Rcmd{covariance(it\_alz)} which are available for standardizing the contingency table $\T$. The conditional distribution is approximated by its limiting $\chi^2$ distribution by default. Given that there is significant departure from independence, we further investigate the structure of association between smoking and Alzheimer's disease. First we assess for which gender the violation of independence occured, i.e., perform independence tests for female and male subjects separately <>= females <- alzheimer$gender == "Female" males <- alzheimer$gender == "Male" pvalue(independence_test(disease ~ smoking, data = alzheimer, subset = females, teststat = "quadratic")) pvalue(independence_test(disease ~ smoking, data = alzheimer, subset = males, teststat = "quadratic")) @ where it turns out that the association is due to the male patients only (see also Figure~\ref{alz-plot}) and we therefore focus on the male patients in the following. A standardized contingency table is useful for gaining insight into the association structure of contingency tables. Thus, a test statistic based on the standardized linear statistic $\T$ (and thus the standardized contingency table) would be more useful than a $c_\text{quad}$-type test statistic where the contributions of all cells are collapsed in such a quadratic form. Therefore, we choose the maximum of the standardized contingency table as $c_\text{max}$ test statistic via <>= it_alzmax <- independence_test(disease ~ smoking, data = alzheimer, subset = males, teststat = "maximum") it_alzmax @ where the underlying standardized contingency table highlights the cells with deviations from independence <>= statistic(it_alzmax, type = "standardized") @ This leads to the impression that heavy smokers suffer less frequently from Alzheimer's disease but more frequently from other dementias than expected under independence. However, interpreting the standardized contingency table requires knowledge about the distribution of the standardized statistics. An approximation of the joint distribution of all elements of the standardized contingency table can be obtained from the $\Sexpr{length(statistic(it_alzmax, type = "standardized"))}$-dimensional multivariate limiting normal distribution of the linear statistic $\T$. Most useful is an approximation of the $95\%$ quantile of the permutation null distribution which is available from <>= qperm(it_alzmax, 0.95) @ Alternatively, and more conveniently, one can switch to $p$-values adjusted for multiple testing by a single-step max-$T$ multiple testing approach: <>= pvalue(it_alzmax, method = "single-step") @ These results support the conclusion that the rejection of the null hypothesis of independence is due to a large number of patients with other dementias and a small number with Alzheimer's disease in the heavy smoking group. In addition, there is some evidence that, for the small group of men smoking less than ten cigarettes per day, the reverse association is true. \paragraph{Multivariate Response: Photococarcinogenicity Experiments.} The effect on tumor frequency and latency in photococarcinogenicity experiments, where carcinogenic doses of ultraviolet radiation (UVR) are administered, are measured by means of (at least) three response variables: the survival time, the time to first tumor and the total number of tumors of animals in different treatment groups. The main interest is testing the global null hypothesis of no treatment effect with respect to any of the three responses survival time, time to first tumor or number of tumors \citep[][analyze the detection time of tumors in addition, this data is not given here]{Molefeetal2005}. In case the global null hypothesis can be rejected, the deviations from the partial hypotheses are of special interest. \cite{Molefeetal2005} report data of an experiment where $\Sexpr{nrow(photocar)}$ female mice were exposed to different levels of UVR (group A: $n = 36$ with topical vehicle and 600 Robertson--Berger units of UVR, group B: $n = 36$ without topical vehicle and 600 Robertson--Berger units of UVR and group C: $n = 36$ without topical vehicle and 1200 Robertson--Berger units of UVR). The data are taken from Tables~1--3 in \cite{Molefeetal2005}, where a parametric test procedure is proposed. Figure~\ref{photocarfig} depicts the group effects for all three response variables. \begin{figure} \begin{center} <>= par(cex.lab = 1.3, cex.axis = 1.3) layout(matrix(1:3, ncol = 3)) plot(survfit(Surv(time, event) ~ group, data = photocar), xmax = 50, xlab = "Survival Time (in weeks)", ylab = "Probability", lty = 1:3) legend("bottomleft", lty = 1:3, levels(photocar$group), bty = "n") plot(survfit(Surv(dmin, tumor) ~ group, data = photocar), xmax = 50, xlab = "Time to First Tumor (in weeks)", ylab = "Probability", lty = 1:3) legend("bottomleft", lty = 1:3, levels(photocar$group), bty = "n") boxplot(ntumor ~ group, data = photocar, ylab = "Number of Tumors", xlab = "Treatment Group", varwidth = TRUE) @ \caption{\Robject{photocar} data: Kaplan-Meier estimates of time to death and time to first tumor as well as boxplots of the total number of tumors in three treatment groups. \label{photocarfig}} \end{center} \end{figure} First, we construct a global test for the null hypothesis of independence of treatment and \textit{all} three response variables. A $c_\text{max}$-type test based on the standardized multivariate linear statistic and an approximation of the conditional distribution utilizing the asymptotic distribution simply reads <>= it_ph <- independence_test(Surv(time, event) + Surv(dmin, tumor) + ntumor ~ group, data = photocar) it_ph @ Here, the influence function $h$ consists of the logrank scores (the default \Rcmd{ytrafo} argument for censored observations) of the survival time and time to first tumor as well as the number of tumors, i.e., for the first animal in the first group $h(\Y_1) = \Sexpr{paste("(", paste(round(it_ph@statistic@ytrans[1,], 2), collapse = ","), ")")}^\top$ and $g(\X_1) = (1, 0, 0)^\top$. The multivariate linear statistic $\T$ is the sum of each of the three components of the influence function $h$ in each of the groups, i.e., <>= statistic(it_ph, type = "linear") @ It is important to note that this global test utilizes the complete covariance structure $\Sigma$ when $p$-values are computed. Alternatively, a test statistic based on the quadratic form $c_\text{quad}$ directly incorporates the covariance matrix and leads to a very similar $p$-value. The deviations from the partial null hypotheses, i.e., independence of each single response and treatment groups, can be inspected by comparing the standardized linear statistic $\T$ to its critical value \Sexpr{round(qperm(it_ph, 0.95), digits = 3)} (which can be obtained by \verb+qperm(it_ph, 0.95)+) <>= statistic(it_ph, type = "standardized") @ or again by means of the corresponding adjusted $p$-values <>= pvalue(it_ph, method = "single-step") @ <>= round(pvalue(it_ph, method = "single-step"), 5) @ %%Of course, the goodness of the asymptotic procedure can be checked against %%the Monte Carlo approximation which is computed by %%<>= %%it <- independence_test(Surv(time, event) + Surv(dmin, tumor) + ntumor ~ group, %% data = photocar, distribution = approximate(50000)) %%pvalue(it, method = "single-step") %%@ %%The more powerful step-down multiple testing adjusted $p$-values %%\citep[Algorithm 2.8 in][]{WestfallYoung1993} are %%<>= %%pvalue(it, method = "step-down") %%@ Clearly, the rejection of the global null hypothesis is due to the group differences in both survival time and time to first tumor whereas no treatment effect on the total number of tumors can be observed. \paragraph{Independent Two-Samples: Contaminated Fish Consumption.} In the former three applications, pre-fabricated Lego bricks---i.e., standard transformations for $g$ and $h$ such as dummy codings, ranks and logrank scores---have been employed. In the fourth application, we will show how the Lego system can be used to construct new bricks and implement a newly invented test procedure. \cite{Rosenbaum1994a} proposed to compare groups by means of a \textit{coherence criterion} and studied a data set of subjects who ate contaminated fish for more than three years in the `exposed' group ($n = 23$) and a control group ($n = 16$). Three response variables are available: the mercury level of the blood, the percentage of cells with structural abnormalities and the proportion of cells with asymmetrical or incomplete-symmetrical chromosome aberrations (see Figure~\ref{mercurybox}). The coherence criterion defines a partial ordering: an observation is said to be smaller than another when all three variables are smaller. The rank score for observation $i$ is the number of observations that are larger (following the above sketched partial ordering) than observation $i$ minus the number of observations that are smaller. The distribution of the rank scores in both groups is to be compared and the corresponding test is called `POSET-test' (partially ordered sets test) and may be viewed as a multivariate form of the Wilcoxon-Mann-Whitney test. \begin{figure} \begin{center} <>= par(cex.lab = 1.3, cex.axis = 1.3) layout(matrix(1:3, ncol = 3)) boxplot(I(log(mercury)) ~ group, data = mercuryfish, ylab = "Mercury Blood Level (in logs)", varwidth = TRUE) boxplot(abnormal ~ group, data = mercuryfish, ylab = "Abnormal Cells (in %)", varwidth = TRUE) boxplot(ccells ~ group, data = mercuryfish, ylab = "Chromosome Aberrations (in %)", varwidth = TRUE) @ \caption{\Robject{mercuryfish} data: Distribution of all three response variables in the exposed group and control group. \label{mercurybox}} \end{center} \end{figure} The coherence criterion can be formulated in a simple function by utilizing column-wise sums of indicator functions applied to all individuals <>= coherence <- function(data) { x <- t(as.matrix(data)) apply(x, 2, function(y) sum(colSums(x < y) == nrow(x)) - sum(colSums(x > y) == nrow(x))) } @ which is now defined as influence function $h$ via the \Rcmd{ytrafo} argument <>= poset <- independence_test(mercury + abnormal + ccells ~ group, data = mercuryfish, ytrafo = coherence, distribution = exact()) @ Once the transformations $g$ (the default zero-one coding of the exposed and control group) and $h$ (the coherence criterion) are defined, we enjoy the whole functionality of the framework, including an exact two-sided $p$-value <>= pvalue(poset) @ and density (\Rcmd{dperm}), distribution (\Rcmd{pperm}) and quantile functions (\Rcmd{qperm}) of the conditional distribution. When only a small number of observations is available, it might be interesting to compare the exact conditional distribution and its approximation via the limiting distribution. For the \Robject{mercuryfish} data, the relevant parts of both distribution functions are shown in Figure~\ref{distplot}. It turns out that the quality of the normal approximation is excellent for this particular problem and using the normal approximation would be sufficient for all practical purposes in this application. \begin{figure} \begin{center} <>= par(cex.lab = 1.3, cex.axis = 1.1) ite <- poset ita <- independence_test(mercury + abnormal + ccells ~ group, data = mercuryfish, ytrafo = coherence) site <- support(ite) layout(matrix(1:2, ncol = 2)) site <- site[site <= qperm(ite, 0.1) & site > -3] pite <- sapply(site, function(x) pperm(ite, x)) pita <- sapply(site, function(x) pperm(ita, x)) plot(site, pite, type = "S", ylab = "Probability", xlab = "Standardized Statistic") lines(site, pita, lty = 3) legend("topleft", lty = c(1,3), legend = c("Conditional Distribution", "Approximation"), bty = "n") site <- support(ite) site <- site[site >= qperm(ite, 0.9) & site < 3] pite <- sapply(site, function(x) pperm(ite, x)) pita <- sapply(site, function(x) pperm(ita, x)) plot(site, pite, type = "S", ylab = "Probability", xlab = "Standardized Statistic") lines(site, pita, lty = 3) @ \caption{\Robject{mercuryfish} data: Conditional distribution and asymptotic normal approximation for the POSET test. \label{distplot}} \end{center} \end{figure} \section{DISCUSSION} Conditioning on the observed data is a simple, yet powerful, design principle for statistical tests. Conceptually, one only needs to choose an appropriate test statistic and evaluate it for all admissible permutations of the data \citep[][gives some examples]{Ernst2004}. In practical setups, an implementation of this two-step procedure requires a certain amount of programming and computing time. Sometimes, permutation tests are even regarded as being `computationally impractical' for larger sample sizes \citep{BalkinMallows2001}. The permutation test framework by \cite{StrasserWeber1999} helps us to take a fresh look at conditional inference procedures and makes at least two important contributions: analytic formulae for the conditional expectation and covariance and the limiting normal distribution of a class of multivariate linear statistics. Thus, test statistics can be defined for appropriately standardized linear statistics and a fast approximation of the conditional distribution is available, especially for large sample sizes. It is one mission, if not \textit{the} mission, of statistical computing to transform new theoretical developments into flexible software tools for the data analyst. The \Rpackage{coin} package is an attempt to translate the theoretical concepts of \cite{StrasserWeber1999} into software tools preserving the simplicity and flexibility of the theory as closely as possible. With this package, the specialized spanners currently in use, such as \Rcmd{wilcox.test} for the Wilcoxon-Mann-Whitney test or \Rcmd{mantelhaen.test} for the Cochran-Mantel-Haenszel $\chi^2$ test in the \S{} language and \texttt{NPAR1WAY} for linear rank statistics in \textsf{SAS} as well as the tools implemented in \textsf{StatXact}, \textsf{LogXact}, \textsf{Stata}, and \textsf{Testimate} \citep[see][for an overview]{Oster2002,Oster2003}, are extended by \Rcmd{independence\_test}, a much more flexible and adjustable spanner. But who stands to benefit from such a software infrastructure? We argue that an improved data analysis is possible in cases when the appropriate conditional test is not available from standard software packages. Statisticians can modify existing test procedures or even try new ideas by computing directly on the theory. A high-level Lego system is attractive for both researchers and software developers, because only the transformation $g$ and influence function $h$ need to be newly defined, but the burden of implementing a resampling procedure, or even deriving the limiting distribution of a newly invented test statistic, is waived. %%Since the \Rpackage{coin} package consists %%of only a few core functions that need to be tested, the setup of quality %%assurance tools is rather simple in this case \citep[the need for such tests %%is obvious,[]{different-:2000}. Many text books %%\citep[e.g.][]{HollanderWolfe1999} or software manuals \citep[first of all %%the excellent StatXact handbook by][]{StatXact6} include examples and results %%of the associated test procedures which have been reproduced with %%\Rpackage{coin}. %%Since the \Rpackage{coin} package is part of the Comprehensive \RR{} Archive %%Network (CRAN, \url{http://CRAN.R-project.org/}) we have been able to help %%several people asking `Is the xyz-test available in \RR{}' on the %%\texttt{r-help} email list with the answer `No, but its only whose %%two lines of \RR{} code'. With a unifying conceptual framework in mind and a software implementation, such as \Rpackage{coin}, at hand, we are no longer limited to already published and implemented permutation test procedures and are free to define our own transformations and influence functions, can choose several forms of suitable test statistics and utilize several methods for the computation or approximation of the conditional distribution of the test statistic of interest. Thus, the construction of an appropriate permutation test, for both classical and new inference problems, is only a matter of putting together adequate Lego bricks. %%\section*{ACKNOWLEDGEMENTS} %%Strasser, Dominikus, editor / AE + referees \renewcommand{\baselinestretch}{1} %%\setlength{\bibsep}{2mm} \bibliographystyle{jss} \bibliography{LegoCondInf} \clearpage \setkeys{Gin}{width=0.9\textheight} \pagestyle{empty} \end{document} coin/inst/doxygen.cfg0000644000175100001440000031351112553455150014344 0ustar hornikusers# Doxyfile 1.8.10 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. # # All text after a double hash (##) is considered a comment and is placed in # front of the TAG it is preceding. # # All text after a single hash (#) is considered a comment and will be ignored. # The format is: # TAG = value [value, ...] # For lists, items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (\" \"). #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all text # before the first occurrence of this tag. Doxygen uses libiconv (or the iconv # built into libc) for the transcoding. See http://www.gnu.org/software/libiconv # for the list of possible encodings. # The default value is: UTF-8. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by # double-quotes, unless you are using Doxywizard) that should identify the # project for which the documentation is generated. This name is used in the # title of most generated pages and in a few other places. # The default value is: My Project. PROJECT_NAME = coin # The PROJECT_NUMBER tag can be used to enter a project or revision number. This # could be handy for archiving the generated documentation or if some version # control system is used. PROJECT_NUMBER = # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a # quick idea about the purpose of the project. Keep the description short. PROJECT_BRIEF = # With the PROJECT_LOGO tag one can specify a logo or an icon that is included # in the documentation. The maximum height of the logo should not exceed 55 # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy # the logo to the output directory. PROJECT_LOGO = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is # entered, it will be relative to the location where doxygen was started. If # left blank the current directory will be used. OUTPUT_DIRECTORY = ./inst/documentation # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- # directories (in 2 levels) under the output directory of each output format and # will distribute the generated files over these directories. Enabling this # option can be useful when feeding doxygen a huge amount of source files, where # putting all generated files in the same directory would otherwise causes # performance problems for the file system. # The default value is: NO. CREATE_SUBDIRS = NO # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII # characters to appear in the names of generated files. If set to NO, non-ASCII # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode # U+3044. # The default value is: NO. ALLOW_UNICODE_NAMES = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, # Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), # Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, # Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), # Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, # Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, # Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, # Ukrainian and Vietnamese. # The default value is: English. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member # descriptions after the members that are listed in the file and class # documentation (similar to Javadoc). Set to NO to disable this. # The default value is: YES. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief # description of a member or function before the detailed description # # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. # The default value is: YES. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator that is # used to form the text in various listings. Each string in this list, if found # as the leading text of the brief description, will be stripped from the text # and the result, after processing the whole list, is used as the annotated # text. Otherwise, the brief description is used as-is. If left blank, the # following values are used ($name is automatically replaced with the name of # the entity):The $name class, The $name widget, The $name file, is, provides, # specifies, contains, represents, a, an and the. ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # doxygen will generate a detailed section even if there is only a brief # description. # The default value is: NO. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. # The default value is: NO. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path # before files name in the file list and in the header files. If set to NO the # shortest path that makes the file name unique will be used # The default value is: YES. FULL_PATH_NAMES = NO # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. # Stripping is only done if one of the specified strings matches the left-hand # part of the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the path to # strip. # # Note that you can specify absolute paths here, but also relative paths, which # will be relative from the directory where doxygen is started. # This tag requires that the tag FULL_PATH_NAMES is set to YES. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the # path mentioned in the documentation of a class, which tells the reader which # header file to include in order to use a class. If left blank only the name of # the header file containing the class definition is used. Otherwise one should # specify the list of include paths that are normally passed to the compiler # using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but # less readable) file names. This can be useful is your file systems doesn't # support long names like on DOS, Mac, or CD-ROM. # The default value is: NO. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the # first line (until the first dot) of a Javadoc-style comment as the brief # description. If set to NO, the Javadoc-style will behave just like regular Qt- # style comments (thus requiring an explicit @brief command for a brief # description.) # The default value is: NO. JAVADOC_AUTOBRIEF = NO # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first # line (until the first dot) of a Qt-style comment as the brief description. If # set to NO, the Qt-style will behave just like regular Qt-style comments (thus # requiring an explicit \brief command for a brief description.) # The default value is: NO. QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a # multi-line C++ special comment block (i.e. a block of //! or /// comments) as # a brief description. This used to be the default behavior. The new default is # to treat a multi-line C++ comment block as a detailed description. Set this # tag to YES if you prefer the old behavior instead. # # Note that setting this tag to YES also means that rational rose comments are # not recognized any more. # The default value is: NO. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the # documentation from any documented member that it re-implements. # The default value is: YES. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new # page for each member. If set to NO, the documentation of a member will be part # of the file/class/namespace that contains it. # The default value is: NO. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen # uses this value to replace tabs by spaces in code fragments. # Minimum value: 1, maximum value: 16, default value: 4. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that act as commands in # the documentation. An alias has the form: # name=value # For example adding # "sideeffect=@par Side Effects:\n" # will allow you to put the command \sideeffect (or @sideeffect) in the # documentation, which will result in a user-defined paragraph with heading # "Side Effects:". You can put \n's in the value part of an alias to insert # newlines. ALIASES = # This tag can be used to specify a number of word-keyword mappings (TCL only). # A mapping has the form "name=value". For example adding "class=itcl::class" # will allow you to use the command class in the itcl::class meaning. TCL_SUBST = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. For # instance, some of the names that are used will be different. The list of all # members will be omitted, etc. # The default value is: NO. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or # Python sources only. Doxygen will then generate output that is more tailored # for that language. For instance, namespaces will be presented as packages, # qualified scopes will look different, etc. # The default value is: NO. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources. Doxygen will then generate output that is tailored for Fortran. # The default value is: NO. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for VHDL. # The default value is: NO. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given # extension. Doxygen has a built-in mapping, but you can override or extend it # using this tag. The format is ext=language, where ext is a file extension, and # language is one of the parsers supported by doxygen: IDL, Java, Javascript, # C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: # FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: # Fortran. In the later case the parser tries to guess whether the code is fixed # or free formatted code, this is the default for Fortran type files), VHDL. For # instance to make doxygen treat .inc files as Fortran files (default is PHP), # and .f files as C (default is Fortran), use: inc=Fortran f=C. # # Note: For files without extension you can use no_extension as a placeholder. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise # the files are not read by doxygen. EXTENSION_MAPPING = # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments # according to the Markdown format, which allows for more readable # documentation. See http://daringfireball.net/projects/markdown/ for details. # The output of markdown processing is further processed by doxygen, so you can # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in # case of backward compatibilities issues. # The default value is: YES. MARKDOWN_SUPPORT = YES # When enabled doxygen tries to link words that correspond to documented # classes, or namespaces to their corresponding documentation. Such a link can # be prevented in individual cases by putting a % sign in front of the word or # globally by setting AUTOLINK_SUPPORT to NO. # The default value is: YES. AUTOLINK_SUPPORT = YES # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should set this # tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); # versus func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. # The default value is: NO. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. # The default value is: NO. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip (see: # http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen # will parse them like normal C++ but will assume all classes use public instead # of private inheritance when no explicit protection keyword is present. # The default value is: NO. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate # getter and setter methods for a property. Setting this option to YES will make # doxygen to replace the get and set methods by a property in the documentation. # This will only work if the methods are indeed getting or setting a simple # type. If this is not the case, or you want to show the methods anyway, you # should set this option to NO. # The default value is: YES. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. # The default value is: NO. DISTRIBUTE_GROUP_DOC = NO # If one adds a struct or class to a group and this option is enabled, then also # any nested class or struct is added to the same group. By default this option # is disabled and one has to add nested compounds explicitly via \ingroup. # The default value is: NO. GROUP_NESTED_COMPOUNDS = NO # Set the SUBGROUPING tag to YES to allow class member groups of the same type # (for instance a group of public functions) to be put as a subgroup of that # type (e.g. under the Public Functions section). Set it to NO to prevent # subgrouping. Alternatively, this can be done per class using the # \nosubgrouping command. # The default value is: YES. SUBGROUPING = YES # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions # are shown inside the group in which they are included (e.g. using \ingroup) # instead of on a separate page (for HTML and Man pages) or section (for LaTeX # and RTF). # # Note that this feature does not work in combination with # SEPARATE_MEMBER_PAGES. # The default value is: NO. INLINE_GROUPED_CLASSES = NO # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions # with only public data fields or simple typedef fields will be shown inline in # the documentation of the scope in which they are defined (i.e. file, # namespace, or group documentation), provided this scope is documented. If set # to NO, structs, classes, and unions are shown on a separate page (for HTML and # Man pages) or section (for LaTeX and RTF). # The default value is: NO. INLINE_SIMPLE_STRUCTS = NO # When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or # enum is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically be # useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. # The default value is: NO. TYPEDEF_HIDES_STRUCT = NO # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This # cache is used to resolve symbols given their name and scope. Since this can be # an expensive process and often the same symbol appears multiple times in the # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small # doxygen will become slower. If the cache is too large, memory is wasted. The # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 # symbols. At the end of a run doxygen will report the cache usage and suggest # the optimal cache size from a speed point of view. # Minimum value: 0, maximum value: 9, default value: 0. LOOKUP_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in # documentation are documented, even if no documentation was available. Private # class members and static file members will be hidden unless the # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. # Note: This will also disable the warnings about undocumented members that are # normally produced when WARNINGS is set to YES. # The default value is: NO. EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will # be included in the documentation. # The default value is: NO. EXTRACT_PRIVATE = YES # If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal # scope will be included in the documentation. # The default value is: NO. EXTRACT_PACKAGE = NO # If the EXTRACT_STATIC tag is set to YES, all static members of a file will be # included in the documentation. # The default value is: NO. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined # locally in source files will be included in the documentation. If set to NO, # only classes defined in header files are included. Does not have any effect # for Java sources. # The default value is: YES. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. If set to YES, local methods, # which are defined in the implementation section but not in the interface are # included in the documentation. If set to NO, only methods in the interface are # included. # The default value is: NO. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base name of # the file that contains the anonymous namespace. By default anonymous namespace # are hidden. # The default value is: NO. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all # undocumented members inside documented classes or files. If set to NO these # members will be included in the various overviews, but no documentation # section is generated. This option has no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. If set # to NO, these classes will be included in the various overviews. This option # has no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend # (class|struct|union) declarations. If set to NO, these declarations will be # included in the documentation. # The default value is: NO. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any # documentation blocks found inside the body of a function. If set to NO, these # blocks will be appended to the function's detailed documentation block. # The default value is: NO. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation that is typed after a # \internal command is included. If the tag is set to NO then the documentation # will be excluded. Set it to YES to include the internal documentation. # The default value is: NO. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file # names in lower-case letters. If set to YES, upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. # The default value is: system dependent. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with # their full class and namespace scopes in the documentation. If set to YES, the # scope will be hidden. # The default value is: NO. HIDE_SCOPE_NAMES = NO # If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will # append additional text to a page's title, such as Class Reference. If set to # YES the compound reference will be hidden. # The default value is: NO. HIDE_COMPOUND_REFERENCE= NO # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of # the files that are included by a file in the documentation of that file. # The default value is: YES. SHOW_INCLUDE_FILES = YES # If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each # grouped member an include statement to the documentation, telling the reader # which file to include in order to use the member. # The default value is: NO. SHOW_GROUPED_MEMB_INC = NO # If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include # files with double quotes in the documentation rather than with sharp brackets. # The default value is: NO. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the # documentation for inline members. # The default value is: YES. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the # (detailed) documentation of file and class members alphabetically by member # name. If set to NO, the members will appear in declaration order. # The default value is: YES. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief # descriptions of file, namespace and class members alphabetically by member # name. If set to NO, the members will appear in declaration order. Note that # this will also influence the order of the classes in the class list. # The default value is: NO. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the # (brief and detailed) documentation of class members so that constructors and # destructors are listed first. If set to NO the constructors will appear in the # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. # Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief # member documentation. # Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting # detailed member documentation. # The default value is: NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy # of group names into alphabetical order. If set to NO the group names will # appear in their defined order. # The default value is: NO. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by # fully-qualified names, including namespaces. If set to NO, the class list will # be sorted only by class name, not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the alphabetical # list. # The default value is: NO. SORT_BY_SCOPE_NAME = NO # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper # type resolution of all parameters of a function it will reject a match between # the prototype and the implementation of a member function even if there is # only one candidate or it is obvious which candidate to choose by doing a # simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still # accept a match between prototype and implementation in such cases. # The default value is: NO. STRICT_PROTO_MATCHING = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo # list. This list is created by putting \todo commands in the documentation. # The default value is: YES. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test # list. This list is created by putting \test commands in the documentation. # The default value is: YES. GENERATE_TESTLIST = NO # The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug # list. This list is created by putting \bug commands in the documentation. # The default value is: YES. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) # the deprecated list. This list is created by putting \deprecated commands in # the documentation. # The default value is: YES. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional documentation # sections, marked by \if ... \endif and \cond # ... \endcond blocks. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the # initial value of a variable or macro / define can have for it to appear in the # documentation. If the initializer consists of more lines than specified here # it will be hidden. Use a value of 0 to hide initializers completely. The # appearance of the value of individual variables and macros / defines can be # controlled using \showinitializer or \hideinitializer command in the # documentation regardless of this setting. # Minimum value: 0, maximum value: 10000, default value: 30. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at # the bottom of the documentation of classes and structs. If set to YES, the # list will mention the files that were used to generate the documentation. # The default value is: YES. SHOW_USED_FILES = YES # Set the SHOW_FILES tag to NO to disable the generation of the Files page. This # will remove the Files entry from the Quick Index and from the Folder Tree View # (if specified). # The default value is: YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces # page. This will remove the Namespaces entry from the Quick Index and from the # Folder Tree View (if specified). # The default value is: YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command command input-file, where command is the value of the # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided # by doxygen. Whatever the program writes to standard output is used as the file # version. For an example see the documentation. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. To create the layout file # that represents doxygen's defaults, run doxygen with the -l option. You can # optionally specify a file name after the option, if omitted DoxygenLayout.xml # will be used as the name of the layout file. # # Note that if you run doxygen from a directory containing a file called # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE # tag is left empty. LAYOUT_FILE = # The CITE_BIB_FILES tag can be used to specify one or more bib files containing # the reference definitions. This must be a list of .bib files. The .bib # extension is automatically appended if omitted. This requires the bibtex tool # to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. # For LaTeX the style of the bibliography can be controlled using # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the # search path. See also \cite for info how to create references. CITE_BIB_FILES = #--------------------------------------------------------------------------- # Configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated to # standard output by doxygen. If QUIET is set to YES this implies that the # messages are off. # The default value is: NO. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated to standard error (stderr) by doxygen. If WARNINGS is set to YES # this implies that the warnings are on. # # Tip: Turn warnings on while writing the documentation. # The default value is: YES. WARNINGS = YES # If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag # will automatically be disabled. # The default value is: YES. WARN_IF_UNDOCUMENTED = NO # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some parameters # in a documented function, or documenting parameters that don't exist or using # markup commands wrongly. # The default value is: YES. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return # value. If set to NO, doxygen will only warn about wrong or incomplete # parameter documentation, but not about the absence of documentation. # The default value is: NO. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that doxygen # can produce. The string should contain the $file, $line, and $text tags, which # will be replaced by the file and line number from which the warning originated # and the warning text. Optionally the format may contain $version, which will # be replaced by the version of the file (if it could be obtained via # FILE_VERSION_FILTER) # The default value is: $file:$line: $text. WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning and error # messages should be written. If left blank the output is written to standard # error (stderr). WARN_LOGFILE = #--------------------------------------------------------------------------- # Configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag is used to specify the files and/or directories that contain # documented source files. You may enter file names like myfile.cpp or # directories like /usr/src/myproject. Separate the files or directories with # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. INPUT = ./src # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses # libiconv (or the iconv built into libc) for the transcoding. See the libiconv # documentation (see: http://www.gnu.org/software/libiconv) for the list of # possible encodings. # The default value is: UTF-8. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and # *.h) to filter out the source-files in the directories. # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not # read by doxygen. # # If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, # *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, # *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, # *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, # *.vhdl, *.ucf, *.qsf, *.as and *.js. FILE_PATTERNS = # The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. # The default value is: NO. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should be # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. # # Note that relative paths are relative to the directory from which doxygen is # run. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded # from the input. # The default value is: NO. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. # # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test # # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories use the pattern */test/* EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or directories # that contain example code fragments that are included (see the \include # command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and # *.h) to filter out the source-files in the directories. If left blank all # files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude commands # irrespective of the value of the RECURSIVE tag. # The default value is: NO. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or directories # that contain images that are to be included in the documentation (see the # \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command: # # # # where is the value of the INPUT_FILTER tag, and is the # name of an input file. Doxygen will then use the output that the filter # program writes to standard output. If FILTER_PATTERNS is specified, this tag # will be ignored. # # Note that the filter must not add or remove lines; it is applied before the # code is scanned, but not when the output code is generated. If lines are added # or removed, the anchors will not be placed correctly. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the # filter if there is a match. The filters are a list of the form: pattern=filter # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how # filters are used. If the FILTER_PATTERNS tag is empty or if none of the # patterns match the file name, INPUT_FILTER is applied. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will also be used to filter the input files that are used for # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). # The default value is: NO. FILTER_SOURCE_FILES = NO # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file # pattern. A pattern will override the setting for FILTER_PATTERN (if any) and # it is also possible to disable source filtering for a specific pattern using # *.ext= (so without naming a filter). # This tag requires that the tag FILTER_SOURCE_FILES is set to YES. FILTER_SOURCE_PATTERNS = # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that # is part of the input, its contents will be placed on the main page # (index.html). This can be useful if you have a project on for instance GitHub # and want to reuse the introduction page also for the doxygen output. USE_MDFILE_AS_MAINPAGE = #--------------------------------------------------------------------------- # Configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will be # generated. Documented entities will be cross-referenced with these sources. # # Note: To get rid of all source code in the generated output, make sure that # also VERBATIM_HEADERS is set to NO. # The default value is: NO. SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body of functions, # classes and enums directly into the documentation. # The default value is: NO. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any # special comment blocks from generated source code fragments. Normal C, C++ and # Fortran comments will always remain visible. # The default value is: YES. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES then for each documented # function all documented functions referencing it will be listed. # The default value is: NO. REFERENCED_BY_RELATION = YES # If the REFERENCES_RELATION tag is set to YES then for each documented function # all documented entities called/used by that function will be listed. # The default value is: NO. REFERENCES_RELATION = YES # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set # to YES then the hyperlinks from functions in REFERENCES_RELATION and # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will # link to the documentation. # The default value is: YES. REFERENCES_LINK_SOURCE = YES # If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the # source code will show a tooltip with additional information such as prototype, # brief description and links to the definition and documentation. Since this # will make the HTML file larger and loading of large files a bit slower, you # can opt to disable this feature. # The default value is: YES. # This tag requires that the tag SOURCE_BROWSER is set to YES. SOURCE_TOOLTIPS = YES # If the USE_HTAGS tag is set to YES then the references to source code will # point to the HTML generated by the htags(1) tool instead of doxygen built-in # source browser. The htags tool is part of GNU's global source tagging system # (see http://www.gnu.org/software/global/global.html). You will need version # 4.8.6 or higher. # # To use it do the following: # - Install the latest version of global # - Enable SOURCE_BROWSER and USE_HTAGS in the config file # - Make sure the INPUT points to the root of the source tree # - Run doxygen as normal # # Doxygen will invoke htags (and that will in turn invoke gtags), so these # tools must be available from the command line (i.e. in the search path). # # The result: instead of the source browser generated by doxygen, the links to # source code will now point to the output of htags. # The default value is: NO. # This tag requires that the tag SOURCE_BROWSER is set to YES. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a # verbatim copy of the header file for each class for which an include is # specified. Set to NO to disable this. # See also: Section \class. # The default value is: YES. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # Configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all # compounds will be generated. Enable this if the project contains a lot of # classes, structs, unions or interfaces. # The default value is: YES. ALPHABETICAL_INDEX = YES # The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in # which the alphabetical index list will be split. # Minimum value: 1, maximum value: 20, default value: 5. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all classes will # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag # can be used to specify a prefix (or a list of prefixes) that should be ignored # while generating the index headers. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. IGNORE_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output # The default value is: YES. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of # it. # The default directory is: html. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_OUTPUT = html/ # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each # generated HTML page (for example: .htm, .php, .asp). # The default value is: .html. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a user-defined HTML header file for # each generated HTML page. If the tag is left blank doxygen will generate a # standard header. # # To get valid HTML the header file that includes any scripts and style sheets # that doxygen needs, which is dependent on the configuration options used (e.g. # the setting GENERATE_TREEVIEW). It is highly recommended to start with a # default header using # doxygen -w html new_header.html new_footer.html new_stylesheet.css # YourConfigFile # and then modify the file new_header.html. See also section "Doxygen usage" # for information on how to generate the default header that doxygen normally # uses. # Note: The header is subject to change so you typically have to regenerate the # default header when upgrading to a newer version of doxygen. For a description # of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each # generated HTML page. If the tag is left blank doxygen will generate a standard # footer. See HTML_HEADER for more information on how to generate a default # footer and what special commands can be used inside the footer. See also # section "Doxygen usage" for information on how to generate the default footer # that doxygen normally uses. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style # sheet that is used by each HTML page. It can be used to fine-tune the look of # the HTML output. If left blank doxygen will generate a default style sheet. # See also section "Doxygen usage" for information on how to generate the style # sheet that doxygen normally uses. # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as # it is more robust and this tag (HTML_STYLESHEET) will in the future become # obsolete. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_STYLESHEET = # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined # cascading style sheets that are included after the standard style sheets # created by doxygen. Using this option one can overrule certain style aspects. # This is preferred over using HTML_STYLESHEET since it does not replace the # standard style sheet and is therefore more robust against future updates. # Doxygen will copy the style sheet files to the output directory. # Note: The order of the extra style sheet files is of importance (e.g. the last # style sheet in the list overrules the setting of the previous ones in the # list). For an example see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_STYLESHEET = # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note # that these files will be copied to the base HTML output directory. Use the # $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these # files. In the HTML_STYLESHEET file, use the file name only. Also note that the # files will be copied as-is; there are no commands or markers available. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_FILES = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # will adjust the colors in the style sheet and background images according to # this color. Hue is specified as an angle on a colorwheel, see # http://en.wikipedia.org/wiki/Hue for more information. For instance the value # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 # purple, and 360 is red again. # Minimum value: 0, maximum value: 359, default value: 220. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors # in the HTML output. For a value of 0 the output will use grayscales only. A # value of 255 will produce the most vivid colors. # Minimum value: 0, maximum value: 255, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the # luminance component of the colors in the HTML output. Values below 100 # gradually make the output lighter, whereas values above 100 make the output # darker. The value divided by 100 is the actual gamma applied, so 80 represents # a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not # change the gamma. # Minimum value: 40, maximum value: 240, default value: 80. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting this # to YES can help to show when doxygen was last run and thus if the # documentation is up to date. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_TIMESTAMP = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_DYNAMIC_SECTIONS = NO # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries # shown in the various tree structured indices initially; the user can expand # and collapse entries dynamically later on. Doxygen will expand the tree to # such a level that at most the specified number of entries are visible (unless # a fully collapsed tree already exceeds this amount). So setting the number of # entries 1 will produce a full collapsed tree by default. 0 is a special value # representing an infinite number of entries and will result in a full expanded # tree by default. # Minimum value: 0, maximum value: 9999, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_INDEX_NUM_ENTRIES = 100 # If the GENERATE_DOCSET tag is set to YES, additional index files will be # generated that can be used as input for Apple's Xcode 3 integrated development # environment (see: http://developer.apple.com/tools/xcode/), introduced with # OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a # Makefile in the HTML output directory. Running make will produce the docset in # that directory and running make install will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at # startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html # for more information. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_DOCSET = NO # This tag determines the name of the docset feed. A documentation feed provides # an umbrella under which multiple documentation sets from a single provider # (such as a company or product suite) can be grouped. # The default value is: Doxygen generated docs. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_FEEDNAME = "Doxygen generated docs" # This tag specifies a string that should uniquely identify the documentation # set bundle. This should be a reverse domain-name style string, e.g. # com.mycompany.MyDocSet. Doxygen will append .docset to the name. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_BUNDLE_ID = org.doxygen.Project # The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. # The default value is: org.doxygen.Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. # The default value is: Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three # additional HTML index files: index.hhp, index.hhc, and index.hhk. The # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop # (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on # Windows. # # The HTML Help Workshop contains a compiler that can convert all HTML output # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML # files are now used as the Windows 98 help format, and will replace the old # Windows help format (.hlp) on all Windows platforms in the future. Compressed # HTML files also contain an index, a table of contents, and you can search for # words in the documentation. The HTML workshop also contains a viewer for # compressed HTML files. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_HTMLHELP = NO # The CHM_FILE tag can be used to specify the file name of the resulting .chm # file. You can add a path in front of the file if the result should not be # written to the html output directory. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_FILE = # The HHC_LOCATION tag can be used to specify the location (absolute path # including file name) of the HTML help compiler (hhc.exe). If non-empty, # doxygen will try to run the HTML help compiler on the generated index.hhp. # The file has to be specified with full path. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. HHC_LOCATION = # The GENERATE_CHI flag controls if a separate .chi index file is generated # (YES) or that it should be included in the master .chm file (NO). # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. GENERATE_CHI = NO # The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) # and project file content. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_INDEX_ENCODING = # The BINARY_TOC flag controls whether a binary table of contents is generated # (YES) or a normal table of contents (NO) in the .chm file. Furthermore it # enables the Previous and Next buttons. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members to # the table of contents of the HTML help documentation and to the tree view. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help # (.qch) of the generated HTML documentation. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify # the file name of the resulting .qch file. The path specified is relative to # the HTML output folder. # This tag requires that the tag GENERATE_QHP is set to YES. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # Project output. For more information please see Qt Help Project / Namespace # (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_QHP is set to YES. QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt # Help Project output. For more information please see Qt Help Project / Virtual # Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- # folders). # The default value is: doc. # This tag requires that the tag GENERATE_QHP is set to YES. QHP_VIRTUAL_FOLDER = doc # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom # filter to add. For more information please see Qt Help Project / Custom # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- # filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_NAME = # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see Qt Help Project / Custom # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- # filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's filter section matches. Qt Help Project / Filter Attributes (see: # http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_SECT_FILTER_ATTRS = # The QHG_LOCATION tag can be used to specify the location of Qt's # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the # generated .qhp file. # This tag requires that the tag GENERATE_QHP is set to YES. QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be # generated, together with the HTML files, they form an Eclipse help plugin. To # install this plugin and make it available under the help contents menu in # Eclipse, the contents of the directory containing the HTML and XML files needs # to be copied into the plugins directory of eclipse. The name of the directory # within the plugins directory should be the same as the ECLIPSE_DOC_ID value. # After copying Eclipse needs to be restarted before the help appears. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_ECLIPSEHELP = NO # A unique identifier for the Eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have this # name. Each documentation set should have its own identifier. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. ECLIPSE_DOC_ID = org.doxygen.Project # If you want full control over the layout of the generated HTML pages it might # be necessary to disable the index and replace it with your own. The # DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top # of each HTML page. A value of NO enables the index and the value YES disables # it. Since the tabs in the index contain the same information as the navigation # tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. DISABLE_INDEX = NO # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. If the tag # value is set to YES, a side panel will be generated containing a tree-like # index structure (just like the one that is generated for HTML Help). For this # to work a browser that supports JavaScript, DHTML, CSS and frames is required # (i.e. any modern browser). Windows users are probably better off using the # HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can # further fine-tune the look of the index. As an example, the default style # sheet generated by doxygen has an example that shows how to put an image at # the root of the tree instead of the PROJECT_NAME. Since the tree basically has # the same information as the tab index, you could consider setting # DISABLE_INDEX to YES when enabling this option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_TREEVIEW = YES # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that # doxygen will group on one line in the generated HTML documentation. # # Note that a value of 0 will completely suppress the enum values from appearing # in the overview section. # Minimum value: 0, maximum value: 20, default value: 4. # This tag requires that the tag GENERATE_HTML is set to YES. ENUM_VALUES_PER_LINE = 4 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used # to set the initial width (in pixels) of the frame in which the tree is shown. # Minimum value: 0, maximum value: 1500, default value: 250. # This tag requires that the tag GENERATE_HTML is set to YES. TREEVIEW_WIDTH = 250 # If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to # external symbols imported via tag files in a separate window. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of LaTeX formulas included as images in # the HTML documentation. When you change the font size after a successful # doxygen run you need to manually remove any form_*.png images from the HTML # output directory to force them to be regenerated. # Minimum value: 8, maximum value: 50, default value: 10. # This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are not # supported properly for IE 6.0, but are supported on all modern browsers. # # Note that when changing this option you need to delete any form_*.png files in # the HTML output directory before the changes have effect. # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_TRANSPARENT = YES # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see # http://www.mathjax.org) which uses client side Javascript for the rendering # instead of using pre-rendered bitmaps. Use this if you do not have LaTeX # installed or if you want to formulas look prettier in the HTML output. When # enabled you may also need to install MathJax separately and configure the path # to it using the MATHJAX_RELPATH option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. USE_MATHJAX = NO # When MathJax is enabled you can set the default output format to be used for # the MathJax output. See the MathJax site (see: # http://docs.mathjax.org/en/latest/output.html) for more details. # Possible values are: HTML-CSS (which is slower, but has the best # compatibility), NativeMML (i.e. MathML) and SVG. # The default value is: HTML-CSS. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_FORMAT = HTML-CSS # When MathJax is enabled you need to specify the location relative to the HTML # output directory using the MATHJAX_RELPATH option. The destination directory # should contain the MathJax.js script. For instance, if the mathjax directory # is located at the same level as the HTML output directory, then # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax # Content Delivery Network so you can quickly see the result without installing # MathJax. However, it is strongly recommended to install a local copy of # MathJax from http://www.mathjax.org before deployment. # The default value is: http://cdn.mathjax.org/mathjax/latest. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax # extension names that should be enabled during MathJax rendering. For example # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_EXTENSIONS = # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces # of code that will be used on startup of the MathJax code. See the MathJax site # (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an # example see the documentation. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_CODEFILE = # When the SEARCHENGINE tag is enabled doxygen will generate a search box for # the HTML output. The underlying search engine uses javascript and DHTML and # should work on any modern browser. Note that when using HTML help # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) # there is already a search function so this one should typically be disabled. # For large projects the javascript based search engine can be slow, then # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to # search using the keyboard; to jump to the search box use + S # (what the is depends on the OS and browser, but it is typically # , /