mcmc/0000755000176200001440000000000014525512623011176 5ustar liggesusersmcmc/NAMESPACE0000644000176200001440000000062413636316205012417 0ustar liggesusers useDynLib(mcmc, .registration = TRUE, .fixes = "C_") export(metrop) export(morph) export(olbm) export(initseq) export(temper) export(morph.metrop) export(morph) export(morph.identity) S3method(metrop, metropolis) S3method(metrop, "function") S3method(morph.metrop, morph.metropolis) S3method(morph.metrop, "function") S3method(temper, tempering) S3method(temper, "function") importFrom(stats, runif) mcmc/LICENSE0000644000176200001440000000012413636316205012200 0ustar liggesusersYEAR: 2005, 2009, 2010, 2012 COPYRIGHT HOLDER: Charles J. Geyer and Leif T. Johnson mcmc/ChangeLog0000644000176200001440000000703114524740547012760 0ustar liggesusers 0.4.1 fixed documentation for metrop 0.5 changed licence to X11 (was AFL, which apparently sucks) changed to NAMESPACE cleaned up latex in inst/doc, added Makefile removed src/Makevars had to get rid of R_IsNaNorNA in src/metrop.c generally, lots of changes to get ready for CRAN all of the tests/*.Rout.save redone because the digits in numerical printing seem to have changed -- cannot get bit for bit identical with earlier R (even before code changes). changed first arg of metrop from "o" to "obj" 0.5-1 changed package vignette to fix bogus MCSE calculation (bogosity still admitted and explained in appendix). 0.6 added initseq function 0.7 added temper function -- not tested yet 0.7-1 fix bug && to || much confusion about whether my_i and my_j were 0-origin or 1-origin forgot to allocate debug_acceptd confusion about dimension of state (nx + 1 vector if serial, ncomp x nx matrix if parallel) and <= nx versus < nx in loop bounds bug where my_swapped_proposal_log_dens was used twice when one should have been my_swapped_coproposal_log_dens bug in dimension of debug_state when parallel (last dim nx not nx + 1) accepted swap didn't actually swap, fixed all the accept decisions when log_hastings_ratio < 0 were backwards batch means accumulation has = instead of += batch means divided by nbatch rather than blen accepti entries stored in wrong places in output structure ripped out old system for caching lud values, put in new that caches all (more efficient, but real reason was old was broken somehow) of course, its first implementation had 0-origin vs 1-origin confuse yet another instance 0-origin vs 1-origin confusion (my_i should be my_i - 1 length of output structure (len_result) determined incorrectly, fixed caching of current lud value broken in serial case (stored in i not j) after all that, everything now checked even with --use-valgrind and --use-gct 0.7-3 add bugs section to initseq.Rd fix example in temper.Rd to actually be for temper rather than metrop fix comment in temper.c add inst/doc/debug.Rnw a vignette about debugging and debug output 0.7-4 some changes to /inst/doc/demo.Rnw 0.7-5 add inst/doc/bfst.Rnw a vignette about Bayes factors and serial tempering 0.8 earlier versions calculated the Hastings ratio wrong in doing serial tempering, ignoring the number of neighbors each component had, hence computing wrong answers when components differed in number of neighbors 0.9 morph, morph.metrop functions and morph.pdf vignette bumped required R version to 2.10.0 (required by xtable) 0.9-1 added PACKAGE = "mcmc" where missing to .C and .Call 0.9-3 move vignettes to vignettes directory changed LICENCE file yet again as per CRAN requirements 0.9-4 cleaned up some tests import from stats, as required by R-3.3.0 0.9-5 use registration of native routines described in Sections 5.4 and 6.15 of Writing R Extensions add calls to cmpfun inside metrop and temper 0.9-6 take out calls to cmpfun and requirement for R package compiler (R now automagically does jit) Fix problems found in CRAN static analysis 0.9-7 add calls to R_CheckUserInterrupt in C functions mcmc and temper 0.9-8 give intelligible error on zero length initial state vector also change e-mail to geyer@umn.edu mcmc/.Rinstignore0000644000176200001440000000002313636316205013475 0ustar liggesusersdesignDoc/Makefile mcmc/data/0000755000176200001440000000000014525055000012076 5ustar liggesusersmcmc/data/logit.txt.gz0000644000176200001440000000210614525055000014373 0ustar liggesusersUV]$7{S27>F7A~}~w_eq'-K?y*TY"=L 5/LYT{XCw{ \f)8\&};5g1{ƞ,r{xS>x fqim9>&^"3f)`T%"fE'[թ-9yAgGr u9+Fᰞ2Er~Jn5ypju\rJ/7eqexRi kB>vk7CYvhWڵM퓦/ #W0}tr}IĤ aGЩLjT}),C.:aߵU@PK9݋ ~^(`̿)Q DIJ9G7t>hK8Es[t7rDܣ܄EaetYm+OʫQYAsEMLObzlp|7^W)29^%`HW$Wߡ;9u_g: mcmc/data/foo.txt.gz0000644000176200001440000000542114525055000014043 0ustar liggesusers=[r 9 E{8 vֳ9•NI_?gݧVg/Yߛ79uNwZk]Y?tz徶+mV>Ӟ[٬Otin;o%~X{B^!ڝNoIbNNjnHIpR2lÐy " $Ь ЙIZwD]P gllf$^}aap,v`s [xx16<3sH3^&'QoQ$~9A[Mn)PJX E&9h/;Ժp.a Hb!J~6턮|R\L"ˢ{~@ sFIDJQ neϴ'mɳM@!ΙSL%ˌGW;lR}T?Y%KJrSD HTLN\OƁ4.f?; l(Qa,yUWHNggwC?ėd̉$BJ(mqtI.WB^֎ѐL Ѥ)ɃH5)VOC!E =Ks HފdS.cj0Rp&-lt4 j]=\cLyi2fbP(JgS%D9${=}87em Q $A ?x{I5j)P 4ug}]/!J$ۣoR3o}P5NN^x8,\Bj([ M&=bLy_D,yˍ`E-`n,.hc~&kBW*U5j& TcM܄}d$gL@Ɂ5_נ%4MS e!%]'9KD)"0KytHx>|_CxM!Nu4Q!Y9}y¨~d8 A-Z[u 7w# lp,bO,Dvh{_z_ B<˾(A 3Rc "!ҌK D>726p$I#zW\=QoQxjuqS\_C$ NAs~-VIEϔگI!ԧlU'(| IsƢ13Ͻl(C+V %Eїo,BC95]pNF\ǹRz>1mcmc/man/0000755000176200001440000000000014525055000011740 5ustar liggesusersmcmc/man/morph.Rd0000644000176200001440000001255113636316205013371 0ustar liggesusers\name{morph} \encoding{UTF-8} \alias{morph} \alias{morph.identity} \title{Variable Transformation} \description{ Utility functions for variable transformation. } \usage{ morph(b, r, p, center) morph.identity() } \arguments{ \item{b}{Positive real number. May be missing.} \item{r}{Non-negative real number. May be missing. If \code{p} is specified, \code{r} defaults to 0.} \item{p}{Real number strictly greater than 2. May be missing. If \code{r} is specified, \code{p} defaults to 3.} \item{center}{Real scalar or vector. May be missing. If \code{center} is a vector it should be the same length of the state of the Markov chain, \code{center} defaults to 0} } \section{Warning}{ The equations for the returned \code{transform} function (see below) do not have a general analytical solution when \code{p} is not equal to 3. This implementation uses numerical approximation to calculate \code{transform} when \code{p} is not equal to 3. If computation speed is a factor, it is advisable to use \code{p=3}. This is not a factor when using \code{\link{morph.metrop}}, as \code{transform} is only called once during setup, and not at all while running the Markov chain. } \details{ The \code{morph} function facilitates using variable transformations by providing functions to (using \eqn{X} for the original random variable with the pdf \eqn{f_X}{f.X}, and \eqn{Y} for the transformed random variable with the pdf \eqn{f_Y}{f.Y}): \itemize{ \item Calculate the log unnormalized probability density for \eqn{Y} induced by the transformation. \item Transform an arbitrary function of \eqn{X} to a function of \eqn{Y}. \item Transform values of \eqn{X} to values of \eqn{Y}. \item Transform values of \eqn{Y} to values of \eqn{X} (the inverse transformation). } for a select few transformations. \code{morph.identity} implements the identity transformation, \eqn{Y=X}. The parameters \code{r}, \code{p}, \code{b} and \code{center} specify the transformation function. In all cases, \code{center} gives the center of the transformation, which is the value \eqn{c} in the equation \deqn{Y = f(X - c).} If no parameters are specified, the identity transformation, \eqn{Y=X}, is used. The parameters \code{r}, \code{p} and \code{b} specify a function \eqn{g}, which is a monotonically increasing bijection from the non-negative reals to the non-negative reals. Then \deqn{f(X) = g\bigl(|X|\bigr) \frac{X}{|X|}}{f(X) = g(|X|) * X / |X|} where \eqn{|X|} represents the Euclidean norm of the vector \eqn{X}. The inverse function is given by \deqn{f^{-1}(Y) = g^{-1}\bigl(|Y|\bigr) \frac{Y}{|Y|}.}{f^{-1}(Y) = g^{-1}(|Y|) * Y / |Y|.} The parameters \code{r} and \code{p} are used to define the function \deqn{g_1(x) = x + (x-r)^p I(x > r)}{g1(x) = x + (x-r)^p * I(x > r)} where \eqn{I( \cdot )}{I(•)} is the indicator function. We require that \code{r} is non-negative and \code{p} is strictly greater than 2. The parameter \code{b} is used to define the function \deqn{g_2(x) = \bigl(e^{bx} - e / 3\bigr) I(x > \frac{1}{b}) + \bigl(x^3 b^3 e / 6 + x b e / 2\bigr) I(x \leq \frac{1}{b})}{ g2(x) = (exp(b * x) - exp(1) / 3) * I(x > 1 / b) + (x^3 * b^3 exp(1) / 6 + x * b * exp(1) / 2) * I(x <= 1 / b).} We require that \eqn{b} is positive. The parameters \code{r}, \code{p} and \code{b} specify \eqn{f^{-1}} in the following manner: \itemize{ \item If one or both of \code{r} and \code{p} is specified, and \code{b} is not specified, then \deqn{f^{-1}(X) = g_1(|X|) \frac{X}{|X|}.}{f^{-1}(X) = g1(|X|) * X / |X|.} If only \code{r} is specified, \code{p = 3} is used. If only \code{p} is specified, \code{r = 0} is used. \item If only \code{b} is specified, then \deqn{f^{-1}(X) = g_2(|X|) \frac{X}{|X|}.}{f^{-1}(X) = g2(|X|) * X / |X|.} \item If one or both of \code{r} and \code{p} is specified, and \code{b} is also specified, then \deqn{f^{-1}(X) = g_2(g_1(|X|)) \frac{X}{|X|}.}{f^{-1}(X) = g2(g1(|X|)) * X / |X|.} } } \value{ a list containing the functions \itemize{ \item \code{outfun(f)}, a function that operates on functions. \code{outfun(f)} returns the function \code{function(state, ...) f(inverse(state), ...)}. \item \code{inverse}, the inverse transformation function. \item \code{transform}, the transformation function. \item \code{lud}, a function that operates on functions. As input, \code{lud} takes a function that calculates a log unnormalized probability density, and returns a function that calculates the log unnormalized density by transforming a random variable using the \code{transform} function. \code{lud(f) = function(state, ...) f(inverse(state), ...) + log.jacobian(state)}, where \code{log.jacobian} represents the function that calculate the log Jacobian of the transformation. \code{log.jacobian} is not returned. } } \examples{ # use an exponential transformation, centered at 100. b1 <- morph(b=1, center=100) # original log unnormalized density is from a t distribution with 3 # degrees of freedom, centered at 100. lud.transformed <- b1$lud(function(x) dt(x - 100, df=3, log=TRUE)) d.transformed <- Vectorize(function(x) exp(lud.transformed(x))) \dontrun{ curve(d.transformed, from=-3, to=3, ylab="Induced Density") } } \seealso{ \code{\link{morph.metrop}} } \keyword{misc} mcmc/man/logit.Rd0000644000176200001440000000101413045741240013345 0ustar liggesusers\name{logit} \docType{data} \alias{logit} \title{Simulated logistic regression data.} \description{ Like it says } \usage{data(logit)} \format{ A data frame with variables \describe{ \item{x1}{quantitative predictor.} \item{x2}{quantitative predictor.} \item{x3}{quantitative predictor.} \item{x4}{quantitative predictor.} \item{y}{Bernoulli response.} } } \examples{ library(mcmc) data(logit) out <- glm(y ~ x1 + x2 + x3 + x4, family = binomial, data = logit) summary(out) } \keyword{datasets} mcmc/man/foo.Rd0000644000176200001440000000072613045741240013023 0ustar liggesusers\name{foo} \docType{data} \alias{foo} \title{Simulated logistic regression data.} \description{ Like it says } \usage{data(foo)} \format{ A data frame with variables \describe{ \item{x1}{quantitative predictor.} \item{x2}{quantitative predictor.} \item{x3}{quantitative predictor.} \item{y}{Bernoulli response.} } } \examples{ library(mcmc) data(foo) out <- glm(y ~ x1 + x2 + x3, family = binomial, data = foo) summary(out) } \keyword{datasets} mcmc/man/metrop.Rd0000644000176200001440000003012013636316205013542 0ustar liggesusers\name{metrop} \alias{metrop} \alias{metrop.function} \alias{metrop.metropolis} \title{Metropolis Algorithm} \description{ Markov chain Monte Carlo for continuous random vector using a Metropolis algorithm. } \usage{ metrop(obj, initial, nbatch, blen = 1, nspac = 1, scale = 1, outfun, debug = FALSE, ...) \method{metrop}{function}(obj, initial, nbatch, blen = 1, nspac = 1, scale = 1, outfun, debug = FALSE, ...) \method{metrop}{metropolis}(obj, initial, nbatch, blen = 1, nspac = 1, scale = 1, outfun, debug = FALSE, ...) } \arguments{ \item{obj}{Either an \R function or an object of class \code{"metropolis"} from a previous invocation of this function. If a function, it evaluates the log unnormalized probability density of the desired equilibrium distribution of the Markov chain. Its first argument is the state vector of the Markov chain. Other arguments arbitrary and taken from the \code{...} arguments of this function. It should return \code{-Inf} for points of the state space having probability zero under the desired equilibrium distribution. See also Details and Warning. If an object of class \code{"metropolis"}, any missing arguments (including the log unnormalized density function) are taken from this object. Also \code{initial} is ignored and the initial state of the Markov chain is the final state from the run recorded in \code{obj}. } \item{initial}{a real vector, the initial state of the Markov chain. Must be feasible, see Details. Ignored if \code{obj} is of class \code{"metropolis"}.} \item{nbatch}{the number of batches.} \item{blen}{the length of batches.} \item{nspac}{the spacing of iterations that contribute to batches.} \item{scale}{controls the proposal step size. If scalar or vector, the proposal is \code{x + scale * z} where \code{x} is the current state and \code{z} is a standard normal random vector. If matrix, the proposal is \code{x + scale \%*\% z}.} \item{outfun}{controls the output. If a function, then the batch means of \code{outfun(state, ...)} are returned. If a numeric or logical vector, then the batch means of \code{state[outfun]} (if this makes sense). If missing, the the batch means of \code{state} are returned.} \item{debug}{if \code{TRUE} extra output useful for testing.} \item{...}{additional arguments for \code{obj} or \code{outfun}.} } \details{ Runs a \dQuote{random-walk} Metropolis algorithm, terminology introduced by Tierney (1994), with multivariate normal proposal producing a Markov chain with equilibrium distribution having a specified unnormalized density. Distribution must be continuous. Support of the distribution is the support of the density specified by argument \code{obj}. The initial state must satisfy \code{obj(state, ...) > -Inf}. Description of a complete MCMC analysis (Bayesian logistic regression) using this function can be found in the vignette \code{vignette("demo", "mcmc")}. Suppose the function coded by the log unnormalized function (either \code{obj} or \code{obj$lud}) is actually a log unnormalized density, that is, if \eqn{w} denotes that function, then \eqn{e^w}{exp(w)} integrates to some value strictly between zero and infinity. Then the \code{metrop} function always simulates a reversible, Harris ergodic Markov chain having the equilibrium distribution with this log unnormalized density. The chain is not guaranteed to be geometrically ergodic. In fact it cannot be geometrically ergodic if the tails of the log unnormalized density are sufficiently heavy. The \code{\link{morph.metrop}} function deals with this situation. } \value{ an object of class \code{"mcmc"}, subclass \code{"metropolis"}, which is a list containing at least the following components: \item{accept}{fraction of Metropolis proposals accepted.} \item{batch}{\code{nbatch} by \code{p} matrix, the batch means, where \code{p} is the dimension of the result of \code{outfun} if \code{outfun} is a function, otherwise the dimension of \code{state[outfun]} if that makes sense, and the dimension of \code{state} when \code{outfun} is missing.} \item{accept.batch}{a vector of length \code{nbatch}, the batch means of the acceptances.} \item{initial}{value of argument \code{initial}.} \item{final}{final state of Markov chain.} \item{initial.seed}{value of \code{.Random.seed} before the run.} \item{final.seed}{value of \code{.Random.seed} after the run.} \item{time}{running time of Markov chain from \code{system.time()}.} \item{lud}{the function used to calculate log unnormalized density, either \code{obj} or \code{obj$lud} from a previous run.} \item{nbatch}{the argument \code{nbatch} or \code{obj$nbatch}.} \item{blen}{the argument \code{blen} or \code{obj$blen}.} \item{nspac}{the argument \code{nspac} or \code{obj$nspac}.} \item{outfun}{the argument \code{outfun} or \code{obj$outfun}.} Description of additional output when \code{debug = TRUE} can be found in the vignette \code{debug} (\url{../doc/debug.pdf}). } \section{Warning}{ If \code{outfun} is missing or not a function, then the log unnormalized density can be defined without a \ldots argument and that works fine. One can define it starting \code{ludfun <- function(state)} and that works or \code{ludfun <- function(state, foo, bar)}, where \code{foo} and \code{bar} are supplied as additional arguments to \code{metrop}. If \code{outfun} is a function, then both it and the log unnormalized density function can be defined without \ldots arguments \emph{if they have exactly the same arguments list} and that works fine. Otherwise it doesn't work. Define these functions by \preformatted{ ludfun <- function(state, foo) outfun <- function(state, bar) } and you get an error about unused arguments. Instead define these functions by \preformatted{ ludfun <- function(state, foo, \ldots) outfun <- function(state, bar, \ldots) } and supply \code{foo} and \code{bar} as additional arguments to \code{metrop}, and that works fine. In short, the log unnormalized density function and \code{outfun} need to have \ldots in their arguments list to be safe. Sometimes it works when \ldots is left out and sometimes it doesn't. Of course, one can avoid this whole issue by always defining the log unnormalized density function and \code{outfun} to have only one argument \code{state} and use global variables (objects in the \R global environment) to specify any other information these functions need to use. That too follows the \R way. But some people consider that bad programming practice. A third option is to define either or both of these functions using a function factory. This is demonstrated in the vignette for this package named \code{demo}, which is shown by \code{vignette("demo", "mcmc")}. } \section{Philosophy of MCMC}{ This function follows the philosophy of MCMC explained the introductory chapter of the \emph{Handbook of Markov Chain Monte Carlo} (Geyer, 2011). This function automatically does batch means in order to reduce the size of output and to enable easy calculation of Monte Carlo standard errors (MCSE), which measure error due to the Monte Carlo sampling (not error due to statistical sampling --- MCSE gets smaller when you run the computer longer, but statistical sampling variability only gets smaller when you get a larger data set). All of this is explained in the package vignette \code{vignette("demo", "mcmc")} and in Section 1.10 of Geyer (2011). This function does not apparently do \dQuote{burn-in} because this concept does not actually help with MCMC (Geyer, 2011, Section 1.11.4) but the re-entrant property of this function does allow one to do \dQuote{burn-in} if one wants. Assuming \code{ludfun}, \code{start.value}, \code{scale} have been already defined and are, respectively, an \R function coding the log unnormalized density of the target distribution, a valid state of the Markov chain, and a useful scale factor, \preformatted{ out <- metrop(ludfun, start.value, nbatch = 1, blen = 1e5, scale = scale) out <- metrop(out, nbatch = 100, blen = 1000) } throws away a run of 100 thousand iterations before doing another run of 100 thousand iterations that is actually useful for analysis, for example, \preformatted{ apply(out$batch, 2, mean) apply(out$batch, 2, sd) / sqrt(out$nbatch) } give estimates of posterior means and their MCSE assuming the batch length (here 1000) was long enough to contain almost all of the significant autocorrelation (see Geyer, 2011, Section 1.10, for more on MCSE). The re-entrant property of this function (the second run starts where the first one stops) assures that this is really \dQuote{burn-in}. The re-entrant property allows one to do very long runs without having to do them in one invocation of this function. \preformatted{ out2 <- metrop(out) out3 <- metrop(out2) batch <- rbind(out$batch, out2$batch, out3$batch) } produces a result as if the first run had been three times as long. } \section{Tuning}{ The \code{scale} argument must be adjusted so that the acceptance rate is not too low or too high to get reasonable performance. The rule of thumb is that the acceptance rate should be about 25\%. But this recommendation (Gelman, et al., 1996) is justified by analysis of a toy problem (simulating a spherical multivariate normal distribution) for which MCMC is unnecessary. There is no reason to believe this is optimal for all problems (if it were optimal, a stronger theorem could be proved). Nevertheless, it is clear that at very low acceptance rates the chain makes little progress (because in most iterations it does not move) and that at very high acceptance rates the chain also makes little progress (because unless the log unnormalized density is nearly constant, very high acceptance rates can only be achieved by very small values of \code{scale} so the steps the chain takes are also very small). Even in the Gelman, et al. (1996) result, the optimal rate for spherical multivariate normal depends on dimension. It is 44\% for \eqn{d = 1} and 23\% for \eqn{d = \infty}{d = infinity}. Geyer and Thompson (1995) have an example, admittedly for simulated tempering (see \code{\link{temper}}) rather than random-walk Metropolis, in which no acceptance rate less than 70\% produces an ergodic Markov chain. Thus 25\% is merely a rule of thumb. We only know we don't want too high or too low. Probably 1\% or 99\% is very inefficient. } \references{ Gelman, A., Roberts, G. O., and Gilks, W. R. (1996) Efficient Metropolis jumping rules. In \emph{Bayesian Statistics 5: Proceedings of the Fifth Valencia International Meeting}. Edited by J. M. Bernardo, J. O. Berger, A. P. Dawid, and A. F. M. Smith. Oxford University Press, Oxford, pp. 599--607. Geyer, C. J. (2011) Introduction to MCMC. In \emph{Handbook of Markov Chain Monte Carlo}. Edited by S. P. Brooks, A. E. Gelman, G. L. Jones, and X. L. Meng. Chapman & Hall/CRC, Boca Raton, FL, pp. 3--48. Geyer, C. J. and Thompson, E. A. (1995) Annealing Markov chain Monte Carlo with applications to ancestral inference. \emph{Journal of the American Statistical Association} \bold{90} 909--920. Tierney, L. (1994) Markov chains for exploring posterior distributions (with discussion). \emph{Annals of Statistics} \bold{22} 1701--1762. } \seealso{ \code{\link{morph.metrop}} and \code{\link{temper}} } \examples{ h <- function(x) if (all(x >= 0) && sum(x) <= 1) return(1) else return(-Inf) out <- metrop(h, rep(0, 5), 1000) out$accept # acceptance rate too low out <- metrop(out, scale = 0.1) out$accept t.test(out$accept.batch)$conf.int # acceptance rate o. k. (about 25 percent) plot(out$batch[ , 1]) # but run length too short (few excursions from end to end of range) out <- metrop(out, nbatch = 1e4) out$accept plot(out$batch[ , 1]) hist(out$batch[ , 1]) acf(out$batch[ , 1], lag.max = 250) # looks like batch length of 250 is perhaps OK out <- metrop(out, blen = 250, nbatch = 100) apply(out$batch, 2, mean) # Monte Carlo estimates of means apply(out$batch, 2, sd) / sqrt(out$nbatch) # Monte Carlo standard errors t.test(out$accept.batch)$conf.int acf(out$batch[ , 1]) # appears that blen is long enough } \keyword{misc} mcmc/man/initseq.Rd0000644000176200001440000001060113636316205013712 0ustar liggesusers\name{initseq} \alias{initseq} \title{Initial Sequence Estimators} \description{ Variance of sample mean of functional of reversible Markov chain using methods of Geyer (1992). } \usage{ initseq(x) } \arguments{ \item{x}{a numeric vector that is a scalar-valued functional of a reversible Markov chain.} } \details{ Let \deqn{\gamma_k = \textrm{cov}(X_i, X_{i + k})}{gamma[k] = cov(x[i], x[i + k])} considered as a function of the lag \eqn{k} be the autocovariance function of the input time series. Define \deqn{\Gamma_k = \gamma_{2 k} + \gamma_{2 k + 1}}{Gamma[k] = gamma[2 k] + gamma[2 k + 1]} the sum of consecutive pairs of autocovariances. Then Theorem 3.1 in Geyer (1992) says that \eqn{\Gamma_k}{Gamma[k]} considered as a function of \eqn{k} is strictly positive, strictly decreasing, and strictly convex, assuming the input time series is a scalar-valued functional of a reversible Markov chain. All of the MCMC done by this package is reversible. This \R function estimates the \dQuote{big gamma} function, \eqn{\Gamma_k}{Gamma[k]} considered as a function of \eqn{k}, subject to three different constraints, (1) nonnegative, (2) nonnegative and nonincreasing, and (3) nonnegative, nonincreasing, and convex. It also estimates the variance in the Markov chain central limit theorem (CLT) \deqn{\gamma_0 + 2 \sum_{k = 1}^\infty \gamma_k = - \gamma_0 + 2 \sum_{k = 0}^\infty \Gamma_k}{- gamma0 + 2 * sum(gamma) = - gamma0 + 2 * sum(Gamma)} \strong{Note:} The batch means provided by \code{\link{metrop}} are also scalar functionals of a reversible Markov chain. Thus these initial sequence estimators applied to the batch means give valid standard errors for the mean of the match means even when the batch length is too short to provide a valid estimate of asymptotic variance. One does, of course, have to multiply the asymptotic variance of the batch means by the batch length to get the asymptotic variance for the unbatched chain. } \value{ a list containing the following components: \item{gamma0}{the scalar \eqn{\gamma_0}{gamma[0]}, the marginal variance of \code{x}.} \item{Gamma.pos}{the vector \eqn{\Gamma}{Gamma}, estimated so as to be nonnegative, where, as always, \R uses one-origin indexing so \code{Gamma.pos[1]} is \eqn{\Gamma_0}{Gamma[0]}.} \item{Gamma.dec}{the vector \eqn{\Gamma}{Gamma}, estimated so as to be nonnegative and nonincreasing, where, as always, \R uses one-origin indexing so \code{Gamma.dec[1]} is \eqn{\Gamma_0}{Gamma[0]}.} \item{Gamma.con}{the vector \eqn{\Gamma}{Gamma}, estimated so as to be nonnegative and nonincreasing and convex, where, as always, \R uses one-origin indexing so \code{Gamma.con[1]} is \eqn{\Gamma_0}{Gamma[0]}.} \item{var.pos}{the scalar \code{- gamma0 + 2 * sum(Gamma.pos)}, which is the asymptotic variance in the Markov chain CLT. Divide by \code{length(x)} to get the approximate variance of the sample mean of \code{x}.} \item{var.dec}{the scalar \code{- gamma0 + 2 * sum(Gamma.dec)}, which is the asymptotic variance in the Markov chain CLT. Divide by \code{length(x)} to get the approximate variance of the sample mean of \code{x}.} \item{var.con}{the scalar \code{- gamma0 + 2 * sum(Gamma.con)}, which is the asymptotic variance in the Markov chain CLT. Divide by \code{length(x)} to get the approximate variance of the sample mean of \code{x}.} } \section{Bugs}{ Not precisely a bug, but \code{var.pos}, \code{var.dec}, and \code{var.con} can be negative. This happens only when the chain is way too short to estimate the variance, and even then rarely. But it does happen. } \references{ Geyer, C. J. (1992) Practical Markov Chain Monte Carlo. \emph{Statistical Science} \bold{7} 473--483. } \seealso{ \code{\link{metrop}} } \examples{ n <- 2e4 rho <- 0.99 x <- arima.sim(model = list(ar = rho), n = n) out <- initseq(x) \dontrun{ plot(seq(along = out$Gamma.pos) - 1, out$Gamma.pos, xlab = "k", ylab = expression(Gamma[k]), type = "l") lines(seq(along = out$Gamma.dec) - 1, out$Gamma.dec, col = "red") lines(seq(along = out$Gamma.con) - 1, out$Gamma.con, col = "blue") } # asymptotic 95\% confidence interval for mean of x mean(x) + c(-1, 1) * qnorm(0.975) * sqrt(out$var.con / length(x)) # estimated asymptotic variance out$var.con # theoretical asymptotic variance (1 + rho) / (1 - rho) * 1 / (1 - rho^2) # illustrating use with batch means bm <- apply(matrix(x, nrow = 5), 2, mean) initseq(bm)$var.con * 5 } \keyword{ts} mcmc/man/temper.Rd0000644000176200001440000003570713636316205013550 0ustar liggesusers\name{temper} \alias{temper} \alias{temper.function} \alias{temper.tempering} \title{Simulated Tempering and Umbrella Sampling} \description{ Markov chain Monte Carlo (MCMC) for continuous random vectors using parallel or serial tempering, the latter also called umbrella sampling and simulated tempering. The chain simulates \eqn{k} different distributions on the same state space. In parallel tempering, all the distributions are simulated in each iteration. In serial tempering, only one of the distributions is simulated (a random one). In parallel tempering, the state is a \eqn{k \times p}{k by p} matrix, each row of which is the state for one of the distributions. In serial tempering the state of the Markov chain is a pair \eqn{(i, x)}, where \eqn{i} is an integer between 1 and \eqn{k} and \eqn{x} is a vector of length \eqn{p}. This pair is represented as a single real vector \code{c(i, x)}. The variable \eqn{i} says which distribution \eqn{x} is a simulation for. } \usage{ temper(obj, initial, neighbors, nbatch, blen = 1, nspac = 1, scale = 1, outfun, debug = FALSE, parallel = FALSE, \dots) \method{temper}{function}(obj, initial, neighbors, nbatch, blen = 1, nspac = 1, scale = 1, outfun, debug = FALSE, parallel = FALSE, \dots) \method{temper}{tempering}(obj, initial, neighbors, nbatch, blen = 1, nspac = 1, scale = 1, outfun, debug = FALSE, parallel = FALSE, \dots) } \arguments{ \item{obj}{either an \R function or an object of class \code{"tempering"} from a previous run. If a function, it should evaluate the log unnormalized density \eqn{\log h(i, x)}{log h(i, x)} of the desired equilibrium distribution of the Markov chain for serial tempering (the same function is used for both serial and parallel tempering, see Details below for further explanation). If an object of class \code{"tempering"}, the log unnormalized density function is \code{obj$lud}, and missing arguments of \code{temper} are obtained from the corresponding elements of \code{obj}. The first argument of the log unnormalized density function is the is an \R vector \code{c(i, x)}, where \code{i} says which distribution \code{x} is supposed to be a simulation for. Other arguments are arbitrary and taken from the \code{\dots} arguments of \code{temper}. The log unnormalized density function should return \code{-Inf} in regions of the state space having probability zero.} \item{initial}{for serial tempering, a real vector \code{c(i, x)} as described above. For parallel tempering, a real \eqn{k \times p}{k by p} matrix as described above. In either case, the initial state of the Markov chain. Ignored if \code{obj} has class \code{"tempering"}.} \item{neighbors}{a logical symmetric matrix of dimension \code{k} by \code{k}. Elements that are \code{TRUE} indicate jumps or swaps attempted by the Markov chain. Ignored if \code{obj} has class \code{"tempering"}.} \item{nbatch}{the number of batches.} \item{blen}{the length of batches.} \item{nspac}{the spacing of iterations that contribute to batches.} \item{scale}{controls the proposal step size for real elements of the state vector. For serial tempering, proposing a new value for the \eqn{x} part of the state \eqn{(i, x)}. For parallel tempering, proposing a new value for the \eqn{x_i}{x[i]} part of the state \eqn{(x_1, \ldots, x_k)}{(x[1], \ldots, x[k])}. In either case, the proposal is a real vector of length \eqn{p}. If scalar or vector, the proposal is \code{x + scale * z} where \code{x} is the part \eqn{x} or \eqn{x_i}{x[i]} of the state the proposal may replace. If matrix, the proposal is \code{x + scale \%*\% z}. If list, the length must be \code{k}, and each element must be scalar, vector, or matrix, and operate as described above. The \eqn{i}-th component of the list is used to update \eqn{x} when the state is \eqn{(i, x)} or \eqn{x_i}{x[i]} otherwise.} \item{outfun}{controls the output. If a function, then the batch means of \code{outfun(state, \dots)} are returned. The argument \code{state} is like the argument \code{initial} of this function. If missing, the batch means of the real part of the state vector or matrix are returned, and for serial tempering the batch means of a multivariate Bernoulli indicating the current component are returned.} \item{debug}{if \code{TRUE} extra output useful for testing.} \item{parallel}{if \code{TRUE} does parallel tempering, if \code{FALSE} does serial tempering. Ignored if \code{obj} has class \code{"tempering"}.} \item{...}{additional arguments for \code{obj} or \code{outfun}.} } \details{ Serial tempering simulates a mixture of distributions of a continuous random vector. The number of components of the mixture is \code{k}, and the dimension of the random vector is \code{p}. Denote the state \eqn{(i, x)}, where \eqn{i} is a positive integer between 1 and \eqn{k}, and let \eqn{h(i, x)} denote the unnormalized joint density of their equilibrium distribution. The logarithm of this function is what \code{obj} or \code{obj$lud} calculates. The mixture distribution is the marginal for \eqn{x} derived from the equilibrium distribution \eqn{h(i, x)}, that is, \deqn{h(x) = \sum_{i = 1}^k h(i, x)}{h(x) = sum[i = 1 to k] h(i, x)} Parallel tempering simulates a product of distributions of a continuous random vector. Denote the state \eqn{(x_1, \ldots, x_k)}{(x[1], \ldots, x[k])}, then the unnormalized joint density of the equilibrium distribution is \deqn{h(x_1, \ldots, x_k) = \prod_{i = 1}^k h(i, x_i)}{h(x[1], \dots, x[k]) = prod[i = 1 to k] h(i, x[i])} The update mechanism of the Markov chain combines two kinds of elementary updates: jump/swap updates (jump for serial tempering, swap for parallel tempering) and within-component updates. Each iteration of the Markov chain one of these elementary updates is done. With probability 1/2 a jump/swap update is done, and with probability 1/2 a with-component update is done. Within-component updates are the same for both serial and parallel tempering. They are \dQuote{random-walk} Metropolis updates with multivariate normal proposal, the proposal distribution being determined by the argument \code{scale}. In serial tempering, the \eqn{x} part of the current state \eqn{(i, x)} is updated preserving \eqn{h(i, x)}. In parallel tempering, an index \eqn{i} is chosen at random and the part of the state \eqn{x_i}{x[i]} representing that component is updated, again preserving \eqn{h(i, x)}. Jump updates choose uniformly at random a neighbor of the current component: if \eqn{i} indexes the current component, then it chooses uniformly at random a \eqn{j} such that \code{neighbors[i, j] == TRUE}. It then does does a Metropolis-Hastings update for changing the current state from \eqn{(i, x)} to \eqn{(j, x)}. Swap updates choose a component uniformly at random and a neighbor of that component uniformly at random: first an index \eqn{i} is chosen uniformly at random between 1 and \eqn{k}, then an index \eqn{j} is chosen uniformly at random such that \code{neighbors[i, j] == TRUE}. It then does does a Metropolis-Hastings update for swapping the states of the two components: interchanging \eqn{x_i}{x[i, ]} and \eqn{x_j}{x[j, ]} while preserving \eqn{h(x_1, \ldots, x_k)}{h(x[1], \dots, x[k])}. The initial state must satisfy \code{lud(initial, ...) > - Inf} for serial tempering or must satisfy \code{lud(initial[i, ], ...) > - Inf} for each \code{i} for parallel tempering, where \code{lud} is either \code{obj} or \code{obj$lud}. That is, the initial state must have positive probability. } \value{ an object of class \code{"mcmc"}, subclass \code{"tempering"}, which is a list containing at least the following components: \item{batch}{the batch means of the continuous part of the state. If \code{outfun} is missing, an \code{nbatch} by \code{k} by \code{p} array. Otherwise, an \code{nbatch} by \code{m} matrix, where \code{m} is the length of the result of \code{outfun}.} \item{ibatch}{(returned for serial tempering only) an \code{nbatch} by \code{k} matrix giving batch means for the multivariate Bernoulli random vector that is all zeros except for a 1 in the \code{i}-th place when the current state is \eqn{(i, x)}.} \item{acceptx}{fraction of Metropolis within-component proposals accepted. A vector of length \code{k} giving the acceptance rate for each component.} \item{accepti}{fraction of Metropolis jump/swap proposals accepted. A \code{k} by \code{k} matrix giving the acceptance rate for each allowed jump or swap component. \code{NA} for elements such that the corresponding elements of \code{neighbors} is \code{FALSE}.} \item{initial}{value of argument \code{initial}.} \item{final}{final state of Markov chain.} \item{initial.seed}{value of \code{.Random.seed} before the run.} \item{final.seed}{value of \code{.Random.seed} after the run.} \item{time}{running time of Markov chain from \code{system.time()}.} \item{lud}{the function used to calculate log unnormalized density, either \code{obj} or \code{obj$lud} from a previous run.} \item{nbatch}{the argument \code{nbatch} or \code{obj$nbatch}.} \item{blen}{the argument \code{blen} or \code{obj$blen}.} \item{nspac}{the argument \code{nspac} or \code{obj$nspac}.} \item{outfun}{the argument \code{outfun} or \code{obj$outfun}.} Description of additional output when \code{debug = TRUE} can be found in the vignette \code{debug}, which is shown by \code{vignette("debug", "mcmc")}. } \section{Warning}{ If \code{outfun} is missing, then the log unnormalized density function can be defined without a \ldots argument and that works fine. One can define it starting \code{ludfun <- function(state)} and that works or \code{ludfun <- function(state, foo, bar)}, where \code{foo} and \code{bar} are supplied as additional arguments to \code{temper} and that works too. If \code{outfun} is a function, then both it and the log unnormalized density function can be defined without \ldots arguments \emph{if they have exactly the same arguments list} and that works fine. Otherwise it doesn't work. Define these functions by \preformatted{ ludfun <- function(state, foo) outfun <- function(state, bar) } and you get an error about unused arguments. Instead define these functions by \preformatted{ ludfun <- function(state, foo, \ldots) outfun <- function(state, bar, \ldots) } and supply \code{foo} and \code{bar} as additional arguments to \code{temper}, and that works fine. In short, the log unnormalized density function and \code{outfun} need to have \ldots in their arguments list to be safe. Sometimes it works when \ldots is left out and sometimes it doesn't. Of course, one can avoid this whole issue by always defining the log unnormalized density function and \code{outfun} to have only one argument \code{state} and use global variables (objects in the \R global environment) to specify any other information these functions need to use. That too follows the \R way. But some people consider that bad programming practice. A third option is to define either or both of these functions using a function factory. This is demonstrated in the vignette for this package named \code{demo}, which is shown by \code{vignette("demo", "mcmc")}. } \section{Philosophy of MCMC}{ This function follows the philosophy of MCMC explained the introductory chapter of the \emph{Handbook of Markov Chain Monte Carlo} (Geyer, 2011a) and in the chapter of that book on tempering and related subjects (Geyer, 2011b). See also the section on philosophy of \code{\link{metrop}}. } \section{Tuning}{ The \code{scale} argument must be adjusted so that the acceptance rate for within-component proposals (component \code{acceptx} of the result returned by this function) is not too low or too high to get reasonable performance. The log unnormalized density function must be chosen so that the acceptance rate for jump/swap proposals (component \code{accepti} of the result returned by this function) is not too low or too high to get reasonable performance. The former is a vector and the latter is a matrix, and all these rates must be adjusted to be reasonable. The rates in in \code{accepti} are influenced by the number of components of the tempering mixture distribution, by what those components are (how far apart they are in some unspecified metric on probability distributions), and by the chosen normalizing constants for those distributions. For examples of tuning tempering, see Geyer (2011b) and also the vignette of this package shown by \code{vignette("bfst", "mcmc")}. The help for R function \code{\link{metrop}} also gives advice on tuning its sampler, which is relevant for tuning the \code{acceptx} rates. See also Geyer (1991) and Geyer and Thompson (1995) for the general theory of tuning parallel and serial tempering. } \references{ Geyer, C. J. (1991) Markov chain Monte Carlo maximum likelihood. \emph{Computing Science and Statistics: Proc. 23rd Symp. Interface}, 156--163. \url{http://hdl.handle.net/11299/58440}. Geyer, C. J. (2011a) Introduction to MCMC. In \emph{Handbook of Markov Chain Monte Carlo}. Edited by S. P. Brooks, A. E. Gelman, G. L. Jones, and X. L. Meng. Chapman & Hall/CRC, Boca Raton, FL, pp. 3--48. Geyer, C. J. (2011b) Importance Sampling, Simulated Tempering, and Umbrella Sampling. In \emph{Handbook of Markov Chain Monte Carlo}. Edited by S. P. Brooks, A. E. Gelman, G. L. Jones, and X. L. Meng. Chapman & Hall/CRC, Boca Raton, FL, pp. 295--312. Geyer, C. J. and Thompson, E. A. (1995) Annealing Markov chain Monte Carlo with applications to ancestral inference. \emph{Journal of the American Statistical Association} \bold{90} 909--920. } \examples{ d <- 9 witch.which <- c(0.1, 0.3, 0.5, 0.7, 1.0) ncomp <- length(witch.which) neighbors <- matrix(FALSE, ncomp, ncomp) neighbors[row(neighbors) == col(neighbors) + 1] <- TRUE neighbors[row(neighbors) == col(neighbors) - 1] <- TRUE ludfun <- function(state, log.pseudo.prior = rep(0, ncomp)) { stopifnot(is.numeric(state)) stopifnot(length(state) == d + 1) icomp <- state[1] stopifnot(icomp == as.integer(icomp)) stopifnot(1 <= icomp && icomp <= ncomp) stopifnot(is.numeric(log.pseudo.prior)) stopifnot(length(log.pseudo.prior) == ncomp) theta <- state[-1] if (any(theta > 1.0)) return(-Inf) bnd <- witch.which[icomp] lpp <- log.pseudo.prior[icomp] if (any(theta > bnd)) return(lpp) return(- d * log(bnd) + lpp) } # parallel tempering thetas <- matrix(0.5, ncomp, d) out <- temper(ludfun, initial = thetas, neighbors = neighbors, nbatch = 20, blen = 10, nspac = 5, scale = 0.56789, parallel = TRUE, debug = TRUE) # serial tempering theta.initial <- c(1, rep(0.5, d)) # log pseudo prior found by trial and error qux <- c(0, 9.179, 13.73, 16.71, 20.56) out <- temper(ludfun, initial = theta.initial, neighbors = neighbors, nbatch = 50, blen = 30, nspac = 2, scale = 0.56789, parallel = FALSE, debug = FALSE, log.pseudo.prior = qux) } \keyword{misc} mcmc/man/morph.metrop.Rd0000644000176200001440000001527413636316205014703 0ustar liggesusers\name{morph.metrop} \alias{morph.metrop} \alias{morph.metrop.function} \alias{morph.metrop.morph.metropolis} \title{Morphometric Metropolis Algorithm} \description{ Markov chain Monte Carlo for continuous random vector using a Metropolis algorithm for an induced density. } \usage{ morph.metrop(obj, initial, nbatch, blen = 1, nspac = 1, scale = 1, outfun, debug = FALSE, morph, ...) } \arguments{ \item{obj}{see \code{\link{metrop}}.} \item{initial}{see \code{\link{metrop}}.} \item{nbatch}{see \code{\link{metrop}}.} \item{blen}{see \code{\link{metrop}}.} \item{nspac}{see \code{\link{metrop}}.} \item{scale}{see \code{\link{metrop}}.} \item{outfun}{unlike for \code{\link{metrop}} must be a function or missing; if missing the identity function, \code{function(x) x}, is used.} \item{debug}{see \code{\link{metrop}}.} \item{morph}{morph object used for transformations. See \code{\link{morph}}.} \item{...}{see \code{\link{metrop}}.} } \details{ \code{morph.metrop} implements morphometric methods for Markov chains. The caller specifies a log unnormalized probability density and a transformation. The transformation specified by the \code{morph} parameter is used to induce a new log unnormalized probability density, a Metropolis algorithm is run for the induced density. The Markov chain is transformed back to the original scale. Running the Metropolis algorithm for the induced density, instead of the original density, can result in a Markov chain with better convergence properties. For more details see Johnson and Geyer (submitted). Except for \code{morph}, all parameters are passed to \code{\link{metrop}}, transformed when necessary. The \code{scale} parameter is \emph{not} transformed. If \eqn{X} is a real vector valued continuous random variable, and \eqn{Y = f(X)} where \eqn{f} is a diffeomorphism, then the pdf of \eqn{Y} is given by \deqn{f_Y(y) = f_X(f^{-1}(y)) | \nabla f^{-1}(y) |}{ fY(y) = fX(f^{-1}(y)) | del f^{-1}(y) |} where \eqn{f_X}{fX} is the pdf of \eqn{X} and \eqn{\nabla f^{-1}}{del f^{-1}} is the Jacobian of \eqn{f^{-1}}. Because \eqn{f} is a diffeomorphism, a Markov chain for \eqn{f_Y}{fY} may be transformed into a Markov chain for \eqn{f_X}{fX}. Furthermore, these Markov chains are isomorphic (Johnson and Geyer, submitted) and have the same convergence rate. The \code{\link{morph}} variable provides a diffeomorphism, \code{morph.metrop} uses this diffeomorphism to induce the log unnormalized density, \eqn{\log f_Y}{log fY} based on the user supplied log unnormalized density, \eqn{\log f_X}{log fX}. \code{morph.metrop} runs a Metropolis algorithm for \eqn{\log f_Y}{log fY} and transforms the resulting Markov chain into a Markov chain for \eqn{f_X}{fX}. The user accessible output components are the same as those that come from \code{\link{metrop}}, see the documentation for \code{\link{metrop}} for details. Subsequent calls of \code{morph.metrop} may change to the transformation by specifying a new value for \code{morph}. Any of the other parameters to \code{morph.metrop} may also be modified in subsequent calls. See \code{\link{metrop}} for more details. The general idea is that a random-walk Metropolis sampler (what \code{\link{metrop}} does) will not be geometrically ergodic unless the tails of the unnormalized density decrease superexponentially fast (so the tails of the log unnormalized density decrease faster than linearly). It may not be geometrically ergodic even then (see Johnson and Geyer, submitted, for the complete theory). The transformations used by this function (provided by \code{\link{morph}}) can produce geometrically ergodic chains when the tails of the log unnormalized density are too light for \code{\link{metrop}} to do so. When the tails of the unnormalized density are exponentially light but not superexponentially light (so the tails of the log unnormalized density are asymptotically linear, as in the case of exponential family models when conjugate priors are used, for example logistic regression, Poisson regression with log link, or log-linear models for categorical data), one should use \code{\link{morph}} with \code{b = 0} (the default), which produces a transformation of the form \eqn{g_1}{g1} in the notation used in the details section of the help for \code{\link{morph}}. This will produce a geometrically ergodic sampler if other features of the log unnormalized density are well behaved. For example it will do so for the exponential family examples mentioned above. (See Johnson and Geyer, submitted, for the complete theory.) The transformation \eqn{g_1}{g1} behaves like a shift transformation on a ball of radius \code{r} centered at \code{center}, so these arguments to \code{\link{morph}} should be chosen so that a sizable proportion of the probability under the original (untransformed) unnormalized density is contained in this ball. This function will work when \code{r = 0} and \code{center = 0} (the defaults) are used, but may not work as well as when \code{r} and \code{center} are well chosen. When the tails of the unnormalized density are not exponentially light (so the tails of the log unnormalized density decrease sublinearly, as in the case of univariate and multivariate \eqn{t} distributions), one should use \code{\link{morph}} with \code{r > 0} and \code{p = 3}, which produces a transformation of the form \eqn{g_2}{g2} composed with \eqn{g_1}{g1} in the notation used in the details section of the help for \code{\link{morph}}. This will produce a geometrically ergodic sampler if other features of the log unnormalized density are well behaved. For example it will do so for the \eqn{t} examples mentioned above. (See Johnson and Geyer, submitted, for the complete theory.) } \value{ an object of class \code{mcmc}, subclass \code{morph.metropolis}. This object is a list containing all of the elements from an object returned by \code{\link{metrop}}, plus at least the following components: \item{morph}{the morph object used for the transformations.} \item{morph.final}{the final state of the Markov chain on the transformed scale.} } \examples{ out <- morph.metrop(function(x) dt(x, df=3, log=TRUE), 0, blen=100, nbatch=100, morph=morph(b=1)) # change the transformation. out <- morph.metrop(out, morph=morph(b=2)) out$accept # accept rate is high, increase the scale. out <- morph.metrop(out, scale=4) # close to 0.20 is about right. out$accept } \references{ Johnson, L. T. and Geyer, C. J. (submitted) Variable Transformation to Obtain Geometric Ergodicity in the Random-walk Metropolis Algorithm. } \seealso{ \code{\link{metrop}}, \code{\link{morph}}. } \keyword{misc} mcmc/man/olbm.Rd0000644000176200001440000000233213636316205013171 0ustar liggesusers\name{olbm} \alias{olbm} \title{Overlapping Batch Means} \description{ Variance of sample mean of time series calculated using overlapping batch means. } \usage{ olbm(x, batch.length, demean = TRUE) } \arguments{ \item{x}{a matrix or time series object. Each column of \code{x} is treated as a scalar time series.} \item{batch.length}{length of batches.} \item{demean}{when \code{demean = TRUE} (the default) the sample mean is subtracted from each batch mean when estimating the variance. Using \code{demean = FALSE} would essentially assume the true mean is known to be zero, which might be useful in a toy problem where the answer is known.} } \value{ The estimated variance of the sample mean. } \seealso{ \code{\link{ts}} } \examples{ h <- function(x) if (all(x >= 0) && sum(x) <= 1) return(1) else return(-Inf) out <- metrop(h, rep(0, 5), 1000) out <- metrop(out, scale = 0.1) out <- metrop(out, nbatch = 1e4) foo <- olbm(out$batch, 150) # monte carlo estimates (true means are same by symmetry) apply(out$batch, 2, mean) # monte carlo standard errors (true s. d. are same by symmetry) sqrt(diag(foo)) # check that batch length is reasonable acf(out$batch, lag.max = 200) } \keyword{ts} mcmc/DESCRIPTION0000644000176200001440000000200614525512622012701 0ustar liggesusersPackage: mcmc Version: 0.9-8 Date: 2023-11-14 Title: Markov Chain Monte Carlo Author: Charles J. Geyer and Leif T. Johnson Maintainer: Charles J. Geyer Depends: R (>= 3.6.0) Imports: stats Suggests: xtable, Iso ByteCompile: TRUE Description: Simulates continuous distributions of random vectors using Markov chain Monte Carlo (MCMC). Users specify the distribution by an R function that evaluates the log unnormalized density. Algorithms are random walk Metropolis algorithm (function metrop), simulated tempering (function temper), and morphometric random walk Metropolis (Johnson and Geyer, 2012, , function morph.metrop), which achieves geometric ergodicity by change of variable. License: MIT + file LICENSE URL: http://www.stat.umn.edu/geyer/mcmc/, https://github.com/cjgeyer/mcmc NeedsCompilation: yes Packaged: 2023-11-15 05:41:20 UTC; geyer Repository: CRAN Date/Publication: 2023-11-16 22:20:02 UTC mcmc/build/0000755000176200001440000000000014525055000012264 5ustar liggesusersmcmc/build/vignette.rds0000644000176200001440000000044614525055000014627 0ustar liggesusersRN0F@kw[ҦEqp#NE09\NEy(=;0!K8|ܛClQvx)g2. \(<J74ȱJ׊G*R=(y'8Y|nî,7m'%$-K|q ,+6:b8r‘VPax`Vͺ!iK jg)̺iДIPcN("%50OL?':D%q>o)|mcmc/tests/0000755000176200001440000000000014525054331012335 5ustar liggesusersmcmc/tests/logit.R0000644000176200001440000000535414525054331013605 0ustar liggesusers epsilon <- 1e-15 library(mcmc) suppressWarnings(RNGkind("Marsaglia-Multicarry")) set.seed(42) options(digits = 3) n <- 100 rho <- 0.5 beta0 <- 0.25 beta1 <- 1 beta2 <- 0.5 x1 <- rnorm(n) x2 <- rho * x1 + sqrt(1 - rho^2) * rnorm(n) eta <- beta0 + beta1 * x1 + beta2 * x2 p <- 1 / (1 + exp(- eta)) y <- as.numeric(runif(n) < p) out <- glm(y ~ x1 + x2, family = binomial()) ## IGNORE_RDIFF_BEGIN summary(out) ## IGNORE_RDIFF_END mlogl <- function(beta) { if (length(beta) != 3) stop("length(beta) != 3") beta0 <- beta[1] beta1 <- beta[2] beta2 <- beta[3] eta <- beta0 + beta1 * x1 + beta2 * x2 p <- exp(eta) / (1 + exp(eta)) return(- sum(log(p[y == 1])) - sum(log(1 - p[y == 0]))) } ## IGNORE_RDIFF_BEGIN out.nlm <- nlm(mlogl, coefficients(out), print.level = 2) ## IGNORE_RDIFF_END logl <- function(beta) { if (length(beta) != 3) stop("length(beta) != 3") beta0 <- beta[1] beta1 <- beta[2] beta2 <- beta[3] eta <- beta0 + beta1 * x1 + beta2 * x2 p <- exp(eta) / (1 + exp(eta)) return(sum(log(p[y == 1])) + sum(log(1 - p[y == 0]))) } out.metro <- metrop(logl, coefficients(out), 1e3, scale = 0.01) out.metro$accept out.metro <- metrop(out.metro, scale = 0.1) out.metro$accept out.metro <- metrop(out.metro, scale = 0.5) out.metro$accept apply(out.metro$batch, 2, mean) var(out.metro$batch) olbm(out.metro$batch, 25) saveseed <- .Random.seed out.metro <- metrop(logl, as.numeric(coefficients(out)), 1e2, scale = 0.5, debug = TRUE) all(out.metro$batch[- out.metro$nbatch, ] == out.metro$current[- 1, ]) all(out.metro$current[1, ] == out.metro$initial) all(out.metro$batch[out.metro$nbatch, ] == out.metro$final) .Random.seed <- saveseed d <- ncol(out.metro$proposal) n <- nrow(out.metro$proposal) my.proposal <- matrix(NA, n, d) my.u <- double(n) ska <- out.metro$scale for (i in 1:n) { my.proposal[i, ] <- out.metro$current[i, ] + ska * rnorm(d) if (is.na(out.metro$u[i])) { my.u[i] <- NA } else { my.u[i] <- runif(1) } } max(abs(out.metro$proposal - my.proposal)) < epsilon all(is.na(out.metro$u) == is.na(my.u)) all(out.metro$u[!is.na(out.metro$u)] == my.u[!is.na(my.u)]) my.curr.log.green <- apply(out.metro$current, 1, logl) my.prop.log.green <- apply(out.metro$proposal, 1, logl) all(is.na(out.metro$u) == (my.prop.log.green > my.curr.log.green)) foo <- my.prop.log.green - my.curr.log.green max(abs(foo - out.metro$log.green)) < epsilon my.accept <- is.na(my.u) | my.u < exp(foo) sum(my.accept) == round(n * out.metro$accept) my.path <- matrix(NA, n, d) my.path[my.accept, ] <- out.metro$proposal[my.accept, ] my.path[! my.accept, ] <- out.metro$current[! my.accept, ] all(my.path == out.metro$batch) mcmc/tests/accept-batch.Rout.save0000644000176200001440000000247313636316205016474 0ustar liggesusers R version 3.3.3 (2017-03-06) -- "Another Canoe" Copyright (C) 2017 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > > # new feature batching acceptance rates > > set.seed(42) > > library(mcmc) > > h <- function(x) if (all(x >= 0) && sum(x) <= 1) return(1) else return(-Inf) > out <- metrop(h, rep(0, 5), nbatch = 100, blen = 100, scale = 0.1, + debug = TRUE) > > all.equal(out$accept, mean(out$accept.batch)) [1] TRUE > > foo <- matrix(out$debug.accept, nrow = out$blen) > bar <- colMeans(foo) > all.equal(out$accept.batch, bar) [1] TRUE > > options(digits = 4) # try to keep insanity of computer arithmetic under control > > out$accept [1] 0.2257 > t.test(out$accept.batch)$conf.int [1] 0.2124 0.2390 attr(,"conf.level") [1] 0.95 > > > proc.time() user system elapsed 0.168 0.020 0.184 mcmc/tests/logitvec.Rout.save0000644000176200001440000001026314524777423016000 0ustar liggesusers R version 4.3.1 (2023-06-16) -- "Beagle Scouts" Copyright (C) 2023 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > > # test vector (diag(foo)) scaling > > epsilon <- 1e-15 > > library(mcmc) > > suppressWarnings(RNGkind("Marsaglia-Multicarry")) > set.seed(42) > > n <- 100 > rho <- 0.5 > beta0 <- 0.25 > beta1 <- 1 > beta2 <- 0.5 > > x1 <- rnorm(n) > x2 <- rho * x1 + sqrt(1 - rho^2) * rnorm(n) > eta <- beta0 + beta1 * x1 + beta2 * x2 > p <- 1 / (1 + exp(- eta)) > y <- as.numeric(runif(n) < p) > > out <- glm(y ~ x1 + x2, family = binomial()) > > logl <- function(beta) { + if (length(beta) != 3) stop("length(beta) != 3") + beta0 <- beta[1] + beta1 <- beta[2] + beta2 <- beta[3] + eta <- beta0 + beta1 * x1 + beta2 * x2 + p <- exp(eta) / (1 + exp(eta)) + return(sum(log(p[y == 1])) + sum(log(1 - p[y == 0]))) + } > > out.metro <- metrop(logl, coefficients(out), 1e3, scale = 0.01) > out.metro$accept [1] 0.982 > > out.metro <- metrop(out.metro, scale = 0.1) > out.metro$accept [1] 0.795 > > out.metro <- metrop(out.metro, scale = 0.5) > out.metro$accept [1] 0.264 > > apply(out.metro$batch, 2, mean) [1] 0.06080257 1.42304941 0.52634149 > sally <- apply(out.metro$batch, 2, sd) > > out.metro <- metrop(out.metro, scale = sally) > out.metro$accept [1] 0.398 > > out.metro <- metrop(logl, as.numeric(coefficients(out)), 1e2, + scale = sally, debug = TRUE) > > niter <- out.metro$nbatch * out.metro$blen * out.metro$nspac > niter == nrow(out.metro$current) [1] TRUE > niter == nrow(out.metro$proposal) [1] TRUE > all(out.metro$current[1, ] == out.metro$initial) [1] TRUE > all(out.metro$current[niter, ] == out.metro$final) | + all(out.metro$proposal[niter, ] == out.metro$final) [1] TRUE > > .Random.seed <- out.metro$initial.seed > d <- ncol(out.metro$proposal) > n <- nrow(out.metro$proposal) > my.proposal <- matrix(NA, n, d) > my.u <- double(n) > ska <- out.metro$scale > for (i in 1:n) { + my.proposal[i, ] <- out.metro$current[i, ] + ska * rnorm(d) + if (is.na(out.metro$u[i])) { + my.u[i] <- NA + } else { + my.u[i] <- runif(1) + } + } > max(abs(out.metro$proposal - my.proposal)) < epsilon [1] TRUE > > all(is.na(out.metro$u) == is.na(my.u)) [1] TRUE > all(out.metro$u[!is.na(out.metro$u)] == my.u[!is.na(my.u)]) [1] TRUE > > my.curr.log.green <- apply(out.metro$current, 1, logl) > my.prop.log.green <- apply(out.metro$proposal, 1, logl) > all(is.na(out.metro$u) == (my.prop.log.green > my.curr.log.green)) [1] TRUE > foo <- my.prop.log.green - my.curr.log.green > max(abs(foo - out.metro$log.green)) < epsilon [1] TRUE > > my.accept <- is.na(my.u) | my.u < exp(foo) > sum(my.accept) == round(n * out.metro$accept) [1] TRUE > if (my.accept[niter]) { + all(out.metro$proposal[niter, ] == out.metro$final) + } else { + all(out.metro$current[niter, ] == out.metro$final) + } [1] TRUE > > my.current <- out.metro$current > my.current[my.accept, ] <- my.proposal[my.accept, ] > my.current <- rbind(out.metro$initial, my.current[- niter, ]) > max(abs(out.metro$current - my.current)) < epsilon [1] TRUE > > my.path <- matrix(NA, n, d) > my.path[my.accept, ] <- out.metro$proposal[my.accept, ] > my.path[! my.accept, ] <- out.metro$current[! my.accept, ] > nspac <- out.metro$nspac > > my.path <- my.path[seq(nspac, niter, by = nspac), ] > > fred <- my.path > k <- ncol(fred) > > foom <- array(as.vector(t(fred)), c(k, out.metro$blen, out.metro$nbatch)) > boom <- t(apply(foom, c(1, 3), mean)) > > all(dim(boom) == dim(out.metro$batch)) [1] TRUE > max(abs(boom - out.metro$batch)) < epsilon [1] TRUE > > > proc.time() user system elapsed 0.336 0.018 0.347 mcmc/tests/logitidx.R0000644000176200001440000000601514524774431014316 0ustar liggesusers # test outfun (positive index vector) epsilon <- 1e-15 library(mcmc) suppressWarnings(RNGkind("Marsaglia-Multicarry")) set.seed(42) n <- 100 rho <- 0.5 beta0 <- 0.25 beta1 <- 1 beta2 <- 0.5 x1 <- rnorm(n) x2 <- rho * x1 + sqrt(1 - rho^2) * rnorm(n) eta <- beta0 + beta1 * x1 + beta2 * x2 p <- 1 / (1 + exp(- eta)) y <- as.numeric(runif(n) < p) out <- glm(y ~ x1 + x2, family = binomial()) logl <- function(beta) { if (length(beta) != 3) stop("length(beta) != 3") beta0 <- beta[1] beta1 <- beta[2] beta2 <- beta[3] eta <- beta0 + beta1 * x1 + beta2 * x2 p <- exp(eta) / (1 + exp(eta)) return(sum(log(p[y == 1])) + sum(log(1 - p[y == 0]))) } out.metro <- metrop(logl, coefficients(out), 1e3, scale = 0.01) out.metro$accept out.metro <- metrop(out.metro, scale = 0.1) out.metro$accept out.metro <- metrop(out.metro, scale = 0.5) out.metro$accept apply(out.metro$batch, 2, mean) out.metro <- metrop(logl, as.numeric(coefficients(out)), 1e2, scale = 0.5, debug = TRUE, outfun = c(2, 3)) niter <- out.metro$nbatch * out.metro$blen * out.metro$nspac niter == nrow(out.metro$current) niter == nrow(out.metro$proposal) all(out.metro$current[1, ] == out.metro$initial) all(out.metro$current[niter, ] == out.metro$final) | all(out.metro$proposal[niter, ] == out.metro$final) .Random.seed <- out.metro$initial.seed d <- ncol(out.metro$proposal) n <- nrow(out.metro$proposal) my.proposal <- matrix(NA, n, d) my.u <- double(n) ska <- out.metro$scale for (i in 1:n) { my.proposal[i, ] <- out.metro$current[i, ] + ska * rnorm(d) if (is.na(out.metro$u[i])) { my.u[i] <- NA } else { my.u[i] <- runif(1) } } max(abs(out.metro$proposal - my.proposal)) < epsilon all(is.na(out.metro$u) == is.na(my.u)) all(out.metro$u[!is.na(out.metro$u)] == my.u[!is.na(my.u)]) my.curr.log.green <- apply(out.metro$current, 1, logl) my.prop.log.green <- apply(out.metro$proposal, 1, logl) all(is.na(out.metro$u) == (my.prop.log.green > my.curr.log.green)) foo <- my.prop.log.green - my.curr.log.green max(abs(foo - out.metro$log.green)) < epsilon my.accept <- is.na(my.u) | my.u < exp(foo) sum(my.accept) == round(n * out.metro$accept) if (my.accept[niter]) { all(out.metro$proposal[niter, ] == out.metro$final) } else { all(out.metro$current[niter, ] == out.metro$final) } my.current <- out.metro$current my.current[my.accept, ] <- my.proposal[my.accept, ] my.current <- rbind(out.metro$initial, my.current[- niter, ]) max(abs(out.metro$current - my.current)) < epsilon my.path <- matrix(NA, n, d) my.path[my.accept, ] <- out.metro$proposal[my.accept, ] my.path[! my.accept, ] <- out.metro$current[! my.accept, ] nspac <- out.metro$nspac my.path <- my.path[seq(nspac, niter, by = nspac), ] fred <- my.path[ , out.metro$outfun] k <- ncol(fred) foom <- array(as.vector(t(fred)), c(k, out.metro$blen, out.metro$nbatch)) boom <- t(apply(foom, c(1, 3), mean)) all(dim(boom) == dim(out.metro$batch)) max(abs(boom - out.metro$batch)) < epsilon mcmc/tests/logitsub.R0000644000176200001440000000550314524775404014325 0ustar liggesusers # test spacing (nspac) epsilon <- 1e-15 library(mcmc) suppressWarnings(RNGkind("Marsaglia-Multicarry")) set.seed(42) n <- 100 rho <- 0.5 beta0 <- 0.25 beta1 <- 1 beta2 <- 0.5 x1 <- rnorm(n) x2 <- rho * x1 + sqrt(1 - rho^2) * rnorm(n) eta <- beta0 + beta1 * x1 + beta2 * x2 p <- 1 / (1 + exp(- eta)) y <- as.numeric(runif(n) < p) out <- glm(y ~ x1 + x2, family = binomial()) logl <- function(beta) { if (length(beta) != 3) stop("length(beta) != 3") beta0 <- beta[1] beta1 <- beta[2] beta2 <- beta[3] eta <- beta0 + beta1 * x1 + beta2 * x2 p <- exp(eta) / (1 + exp(eta)) return(sum(log(p[y == 1])) + sum(log(1 - p[y == 0]))) } out.metro <- metrop(logl, coefficients(out), 1e3, scale = 0.01) out.metro$accept out.metro <- metrop(out.metro, scale = 0.1) out.metro$accept out.metro <- metrop(out.metro, scale = 0.5) out.metro$accept apply(out.metro$batch, 2, mean) out.metro <- metrop(logl, as.numeric(coefficients(out)), 1e2, scale = 0.5, debug = TRUE, nspac = 3) niter <- out.metro$nbatch * out.metro$blen * out.metro$nspac niter == nrow(out.metro$current) niter == nrow(out.metro$proposal) all(out.metro$current[1, ] == out.metro$initial) all(out.metro$current[niter, ] == out.metro$final) | all(out.metro$proposal[niter, ] == out.metro$final) .Random.seed <- out.metro$initial.seed d <- ncol(out.metro$proposal) n <- nrow(out.metro$proposal) my.proposal <- matrix(NA, n, d) my.u <- double(n) ska <- out.metro$scale for (i in 1:n) { my.proposal[i, ] <- out.metro$current[i, ] + ska * rnorm(d) if (is.na(out.metro$u[i])) { my.u[i] <- NA } else { my.u[i] <- runif(1) } } max(abs(out.metro$proposal - my.proposal)) < epsilon all(is.na(out.metro$u) == is.na(my.u)) all(out.metro$u[!is.na(out.metro$u)] == my.u[!is.na(my.u)]) my.curr.log.green <- apply(out.metro$current, 1, logl) my.prop.log.green <- apply(out.metro$proposal, 1, logl) all(is.na(out.metro$u) == (my.prop.log.green > my.curr.log.green)) foo <- my.prop.log.green - my.curr.log.green max(abs(foo - out.metro$log.green)) < epsilon my.accept <- is.na(my.u) | my.u < exp(foo) sum(my.accept) == round(n * out.metro$accept) if (my.accept[niter]) { all(out.metro$proposal[niter, ] == out.metro$final) } else { all(out.metro$current[niter, ] == out.metro$final) } my.current <- out.metro$current my.current[my.accept, ] <- my.proposal[my.accept, ] my.current <- rbind(out.metro$initial, my.current[- niter, ]) max(abs(out.metro$current - my.current)) < epsilon my.path <- matrix(NA, n, d) my.path[my.accept, ] <- out.metro$proposal[my.accept, ] my.path[! my.accept, ] <- out.metro$current[! my.accept, ] nspac <- out.metro$nspac my.path <- my.path[seq(nspac, niter, by = nspac), ] all(dim(my.path) == dim(out.metro$batch)) all(my.path == out.metro$batch) mcmc/tests/isotropic.R0000644000176200001440000000243513636316205014502 0ustar liggesuserslibrary(mcmc) isotropic <- mcmc:::isotropic isotropic.logjacobian <- mcmc:::isotropic.logjacobian # create identity test function identity <- function(x) x d.identity <- function(x) 1 # check that isotropic is length preserving for vectors of lengths 1--1000 all(sapply(1:1000, function(x) length(isotropic(identity)(rep(1, x))) == x)) # test that isotropic(identity) is an identity function all.equal(isotropic(identity)(1:10), 1:10) x <- seq(0, 1, length.out=200) all.equal(isotropic(identity)(x), x) # make sure that isotropic.logjacobian(identity, d.identity) is a 0 function all.equal(isotropic.logjacobian(identity, d.identity)(1:10), 0) # make sure that 0 as an input does not cause divide-by-zero errors all.equal(isotropic(identity)(0), 0) all.equal(isotropic(identity)(0 * 1:4), rep(0, 4)) all.equal(isotropic.logjacobian(identity, d.identity)(0), 0) all.equal(isotropic.logjacobian(identity, d.identity)(0 * 1:4), 0) # try isotropic with f(x) = x^2, then we should get # istropic(f)(x) := |x| * x f <- function(x) x^2 all.equal(isotropic(f)(1), 1) all.equal(isotropic(f)(c(1, 1)), sqrt(2) * c(1, 1)) all.equal(isotropic(f)(c(1, 0, 1)), sqrt(2) * c(1, 0, 1)) # make sure lazy-loading works properly. g <- function(x) x^2 g.iso <- isotropic(g) g <- function(x) x all.equal(g.iso(2), 2*2) mcmc/tests/logitfun.Rout.save0000644000176200001440000001036714524774336016020 0ustar liggesusers R version 4.3.1 (2023-06-16) -- "Beagle Scouts" Copyright (C) 2023 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > > # test outfun (function) > > epsilon <- 1e-15 > > library(mcmc) > > suppressWarnings(RNGkind("Marsaglia-Multicarry")) > set.seed(42) > > n <- 100 > rho <- 0.5 > beta0 <- 0.25 > beta1 <- 1 > beta2 <- 0.5 > > x1 <- rnorm(n) > x2 <- rho * x1 + sqrt(1 - rho^2) * rnorm(n) > eta <- beta0 + beta1 * x1 + beta2 * x2 > p <- 1 / (1 + exp(- eta)) > y <- as.numeric(runif(n) < p) > > out <- glm(y ~ x1 + x2, family = binomial()) > > logl <- function(beta) { + if (length(beta) != 3) stop("length(beta) != 3") + beta0 <- beta[1] + beta1 <- beta[2] + beta2 <- beta[3] + eta <- beta0 + beta1 * x1 + beta2 * x2 + p <- exp(eta) / (1 + exp(eta)) + return(sum(log(p[y == 1])) + sum(log(1 - p[y == 0]))) + } > > out.metro <- metrop(logl, coefficients(out), 1e3, scale = 0.01) > out.metro$accept [1] 0.982 > > out.metro <- metrop(out.metro, scale = 0.1) > out.metro$accept [1] 0.795 > > out.metro <- metrop(out.metro, scale = 0.5) > out.metro$accept [1] 0.264 > > apply(out.metro$batch, 2, mean) [1] 0.06080257 1.42304941 0.52634149 > > out.metro <- metrop(logl, as.numeric(coefficients(out)), 1e2, + scale = 0.5, debug = TRUE, outfun = function(x) c(x, x^2)) > > niter <- out.metro$nbatch * out.metro$blen * out.metro$nspac > niter == nrow(out.metro$current) [1] TRUE > niter == nrow(out.metro$proposal) [1] TRUE > all(out.metro$current[1, ] == out.metro$initial) [1] TRUE > all(out.metro$current[niter, ] == out.metro$final) | + all(out.metro$proposal[niter, ] == out.metro$final) [1] TRUE > > .Random.seed <- out.metro$initial.seed > d <- ncol(out.metro$proposal) > n <- nrow(out.metro$proposal) > my.proposal <- matrix(NA, n, d) > my.u <- double(n) > ska <- out.metro$scale > for (i in 1:n) { + my.proposal[i, ] <- out.metro$current[i, ] + ska * rnorm(d) + if (is.na(out.metro$u[i])) { + my.u[i] <- NA + } else { + my.u[i] <- runif(1) + } + } > max(abs(out.metro$proposal - my.proposal)) < epsilon [1] TRUE > all(is.na(out.metro$u) == is.na(my.u)) [1] TRUE > all(out.metro$u[!is.na(out.metro$u)] == my.u[!is.na(my.u)]) [1] TRUE > > my.curr.log.green <- apply(out.metro$current, 1, logl) > my.prop.log.green <- apply(out.metro$proposal, 1, logl) > all(is.na(out.metro$u) == (my.prop.log.green > my.curr.log.green)) [1] TRUE > foo <- my.prop.log.green - my.curr.log.green > max(abs(foo - out.metro$log.green)) < epsilon [1] TRUE > > my.accept <- is.na(my.u) | my.u < exp(foo) > sum(my.accept) == round(n * out.metro$accept) [1] TRUE > if (my.accept[niter]) { + all(out.metro$proposal[niter, ] == out.metro$final) + } else { + all(out.metro$current[niter, ] == out.metro$final) + } [1] TRUE > > my.current <- out.metro$current > my.current[my.accept, ] <- my.proposal[my.accept, ] > my.current <- rbind(out.metro$initial, my.current[- niter, ]) > max(abs(out.metro$current - my.current)) < epsilon [1] TRUE > > my.path <- matrix(NA, n, d) > my.path[my.accept, ] <- out.metro$proposal[my.accept, ] > my.path[! my.accept, ] <- out.metro$current[! my.accept, ] > nspac <- out.metro$nspac > > my.path <- my.path[seq(nspac, niter, by = nspac), ] > > fred <- t(apply(my.path, 1, out.metro$outfun)) > k <- ncol(fred) > > foom <- array(as.vector(t(fred)), c(k, out.metro$blen, out.metro$nbatch)) > boom <- t(apply(foom, c(1, 3), mean)) > > all(dim(boom) == dim(out.metro$batch)) [1] TRUE > max(abs(boom - out.metro$batch)) < epsilon [1] TRUE > > goom <- cbind(my.path, my.path^2) > all(dim(goom) == dim(out.metro$batch)) [1] TRUE > max(abs(goom - out.metro$batch)) < epsilon [1] TRUE > > proc.time() user system elapsed 0.306 0.021 0.320 mcmc/tests/logitfun.R0000644000176200001440000000621714524773734014333 0ustar liggesusers # test outfun (function) epsilon <- 1e-15 library(mcmc) suppressWarnings(RNGkind("Marsaglia-Multicarry")) set.seed(42) n <- 100 rho <- 0.5 beta0 <- 0.25 beta1 <- 1 beta2 <- 0.5 x1 <- rnorm(n) x2 <- rho * x1 + sqrt(1 - rho^2) * rnorm(n) eta <- beta0 + beta1 * x1 + beta2 * x2 p <- 1 / (1 + exp(- eta)) y <- as.numeric(runif(n) < p) out <- glm(y ~ x1 + x2, family = binomial()) logl <- function(beta) { if (length(beta) != 3) stop("length(beta) != 3") beta0 <- beta[1] beta1 <- beta[2] beta2 <- beta[3] eta <- beta0 + beta1 * x1 + beta2 * x2 p <- exp(eta) / (1 + exp(eta)) return(sum(log(p[y == 1])) + sum(log(1 - p[y == 0]))) } out.metro <- metrop(logl, coefficients(out), 1e3, scale = 0.01) out.metro$accept out.metro <- metrop(out.metro, scale = 0.1) out.metro$accept out.metro <- metrop(out.metro, scale = 0.5) out.metro$accept apply(out.metro$batch, 2, mean) out.metro <- metrop(logl, as.numeric(coefficients(out)), 1e2, scale = 0.5, debug = TRUE, outfun = function(x) c(x, x^2)) niter <- out.metro$nbatch * out.metro$blen * out.metro$nspac niter == nrow(out.metro$current) niter == nrow(out.metro$proposal) all(out.metro$current[1, ] == out.metro$initial) all(out.metro$current[niter, ] == out.metro$final) | all(out.metro$proposal[niter, ] == out.metro$final) .Random.seed <- out.metro$initial.seed d <- ncol(out.metro$proposal) n <- nrow(out.metro$proposal) my.proposal <- matrix(NA, n, d) my.u <- double(n) ska <- out.metro$scale for (i in 1:n) { my.proposal[i, ] <- out.metro$current[i, ] + ska * rnorm(d) if (is.na(out.metro$u[i])) { my.u[i] <- NA } else { my.u[i] <- runif(1) } } max(abs(out.metro$proposal - my.proposal)) < epsilon all(is.na(out.metro$u) == is.na(my.u)) all(out.metro$u[!is.na(out.metro$u)] == my.u[!is.na(my.u)]) my.curr.log.green <- apply(out.metro$current, 1, logl) my.prop.log.green <- apply(out.metro$proposal, 1, logl) all(is.na(out.metro$u) == (my.prop.log.green > my.curr.log.green)) foo <- my.prop.log.green - my.curr.log.green max(abs(foo - out.metro$log.green)) < epsilon my.accept <- is.na(my.u) | my.u < exp(foo) sum(my.accept) == round(n * out.metro$accept) if (my.accept[niter]) { all(out.metro$proposal[niter, ] == out.metro$final) } else { all(out.metro$current[niter, ] == out.metro$final) } my.current <- out.metro$current my.current[my.accept, ] <- my.proposal[my.accept, ] my.current <- rbind(out.metro$initial, my.current[- niter, ]) max(abs(out.metro$current - my.current)) < epsilon my.path <- matrix(NA, n, d) my.path[my.accept, ] <- out.metro$proposal[my.accept, ] my.path[! my.accept, ] <- out.metro$current[! my.accept, ] nspac <- out.metro$nspac my.path <- my.path[seq(nspac, niter, by = nspac), ] fred <- t(apply(my.path, 1, out.metro$outfun)) k <- ncol(fred) foom <- array(as.vector(t(fred)), c(k, out.metro$blen, out.metro$nbatch)) boom <- t(apply(foom, c(1, 3), mean)) all(dim(boom) == dim(out.metro$batch)) max(abs(boom - out.metro$batch)) < epsilon goom <- cbind(my.path, my.path^2) all(dim(goom) == dim(out.metro$batch)) max(abs(goom - out.metro$batch)) < epsilon mcmc/tests/logitlogidx.R0000644000176200001440000000602114524774471015021 0ustar liggesusers # test outfun (logical index vector) epsilon <- 1e-15 library(mcmc) suppressWarnings(RNGkind("Marsaglia-Multicarry")) set.seed(42) n <- 100 rho <- 0.5 beta0 <- 0.25 beta1 <- 1 beta2 <- 0.5 x1 <- rnorm(n) x2 <- rho * x1 + sqrt(1 - rho^2) * rnorm(n) eta <- beta0 + beta1 * x1 + beta2 * x2 p <- 1 / (1 + exp(- eta)) y <- as.numeric(runif(n) < p) out <- glm(y ~ x1 + x2, family = binomial()) logl <- function(beta) { if (length(beta) != 3) stop("length(beta) != 3") beta0 <- beta[1] beta1 <- beta[2] beta2 <- beta[3] eta <- beta0 + beta1 * x1 + beta2 * x2 p <- exp(eta) / (1 + exp(eta)) return(sum(log(p[y == 1])) + sum(log(1 - p[y == 0]))) } out.metro <- metrop(logl, coefficients(out), 1e3, scale = 0.01) out.metro$accept out.metro <- metrop(out.metro, scale = 0.1) out.metro$accept out.metro <- metrop(out.metro, scale = 0.5) out.metro$accept apply(out.metro$batch, 2, mean) out.metro <- metrop(logl, as.numeric(coefficients(out)), 1e2, scale = 0.5, debug = TRUE, outfun = seq(1:3) > 1) niter <- out.metro$nbatch * out.metro$blen * out.metro$nspac niter == nrow(out.metro$current) niter == nrow(out.metro$proposal) all(out.metro$current[1, ] == out.metro$initial) all(out.metro$current[niter, ] == out.metro$final) | all(out.metro$proposal[niter, ] == out.metro$final) .Random.seed <- out.metro$initial.seed d <- ncol(out.metro$proposal) n <- nrow(out.metro$proposal) my.proposal <- matrix(NA, n, d) my.u <- double(n) ska <- out.metro$scale for (i in 1:n) { my.proposal[i, ] <- out.metro$current[i, ] + ska * rnorm(d) if (is.na(out.metro$u[i])) { my.u[i] <- NA } else { my.u[i] <- runif(1) } } max(abs(out.metro$proposal - my.proposal)) < epsilon all(is.na(out.metro$u) == is.na(my.u)) all(out.metro$u[!is.na(out.metro$u)] == my.u[!is.na(my.u)]) my.curr.log.green <- apply(out.metro$current, 1, logl) my.prop.log.green <- apply(out.metro$proposal, 1, logl) all(is.na(out.metro$u) == (my.prop.log.green > my.curr.log.green)) foo <- my.prop.log.green - my.curr.log.green max(abs(foo - out.metro$log.green)) < epsilon my.accept <- is.na(my.u) | my.u < exp(foo) sum(my.accept) == round(n * out.metro$accept) if (my.accept[niter]) { all(out.metro$proposal[niter, ] == out.metro$final) } else { all(out.metro$current[niter, ] == out.metro$final) } my.current <- out.metro$current my.current[my.accept, ] <- my.proposal[my.accept, ] my.current <- rbind(out.metro$initial, my.current[- niter, ]) max(abs(out.metro$current - my.current)) < epsilon my.path <- matrix(NA, n, d) my.path[my.accept, ] <- out.metro$proposal[my.accept, ] my.path[! my.accept, ] <- out.metro$current[! my.accept, ] nspac <- out.metro$nspac my.path <- my.path[seq(nspac, niter, by = nspac), ] fred <- my.path[ , out.metro$outfun] k <- ncol(fred) foom <- array(as.vector(t(fred)), c(k, out.metro$blen, out.metro$nbatch)) boom <- t(apply(foom, c(1, 3), mean)) all(dim(boom) == dim(out.metro$batch)) max(abs(boom - out.metro$batch)) < epsilon mcmc/tests/morph.R0000644000176200001440000000717113636316205013616 0ustar liggesuserslibrary(mcmc) isotropic <- mcmc:::isotropic isotropic.logjacobian <- mcmc:::isotropic.logjacobian # make sure morph identity works properly TestMorphIdentity <- function(m.id) { ident.func <- function(x) x if (!all.equal(m.id$transform(1:10), 1:10)) return(FALSE) if (!all.equal(m.id$inverse(1:10), 1:10)) return(FALSE) x <- seq(-1,1, length.out=15) if (!all.equal(sapply(x, m.id$lud(function(x) dnorm(x, log=TRUE))), dnorm(x, log=TRUE))) return(FALSE) if (!all.equal(m.id$outfun(ident.func)(x), x)) return(FALSE) return(TRUE) } TestMorphIdentity(morph()) TestMorphIdentity(morph.identity()) TestMorphIdentityOutfun <- function(m) { f <- m$outfun(NULL) x <- 1:20 if (!identical(x, f(x))) return(FALSE) f <- m$outfun(c(6, 8)) if (!identical(x[c(6, 8)], f(x))) return(FALSE) i <- rep(FALSE, 20) i[c(1, 3, 5)] <- TRUE f <- m$outfun(i) if (!identical(x[i], f(x))) return(FALSE) return(TRUE) } TestMorphIdentityOutfun(morph()) TestMorphIdentityOutfun(morph.identity()) # make sure that morph and morph.identity give back the same things all.equal(sort(names(morph.identity())), sort(names(morph(b=1)))) # test center parameter, univariate version zero.func <- function(x) 0 center <- 2 x <- seq(-1,1, length.out=15) morph.center <- morph(center=center) all.equal(sapply(x, morph.center$transform), x-center) all.equal(sapply(x, morph.center$inverse), x+center) all.equal(sapply(x, morph.center$lud(function(y) dnorm(y, log=TRUE))), dnorm(x, log=TRUE, mean=-2)) # test center parameter, multivariate version center <- 1:4 x <- rep(0, 4) morph.center <- morph(center=center) lud.mult.dnorm <- function(x) prod(dnorm(x, log=TRUE)) all.equal(morph.center$transform(x), x-center) all.equal(morph.center$inverse(x), x+center) all.equal(morph.center$lud(lud.mult.dnorm)(x), lud.mult.dnorm(x - center)) # test 'r'. r <- 1 morph.r <- morph(r=r) x <- seq(-1, 1, length.out=20) all.equal(sapply(x, morph.r$lud(function(x) dnorm(x, log=TRUE))), dnorm(x, log=TRUE)) x <- seq(1.1, 2, length.out=10) all(sapply(x, morph.r$lud(function(x) dnorm(x, log=TRUE))) != dnorm(x, log=TRUE)) TestExponentialEvenPWithRInverse <- function() { r <- 0.3 p <- 2.2 morph.r <- morph(r=r, p=p) x <- seq(0, r, length.out=20) all.equal(x, sapply(x, morph.r$inverse)) } TestExponentialEvenPWithRInverse() # make sure morph$lud passes '...' arguments. mean <- 2 ident.morph <- morph() dnorm.morph <- ident.morph$lud(function(x, mean=0) dnorm(x, mean=mean, log=TRUE)) all.equal(dnorm.morph(2, mean), dnorm(2, mean=mean, log=TRUE)) x <- seq(-3, 3, length.out=20) m2 <- morph(r=10) dnorm.morph <- m2$lud(function(x, mean) dnorm(x, mean=mean, log=TRUE)) all.equal(sapply(x, function(y) dnorm.morph(y, 2)), dnorm(x, mean=2, log=TRUE)) # make sure morph$outfun passes '...' arguments. outfun.orig <- function(x, mean) x + mean ident.morph <- morph() mean <- 1 outfun.morph <- ident.morph$outfun(outfun.orig) all.equal(outfun.morph(1:10, mean), 1:10+mean) m2 <- morph(r=10) outfun.morph <- m2$outfun(outfun.orig) all.equal(sapply(1:10, function(x) outfun.morph(x, mean)), 1:10+mean) ########################################################################### # test built-in exponential and polynomial transformations. f <- morph(b=3) x <- seq(0, 10, length.out=100) all.equal(x, sapply(sapply(x, f$transform), f$inverse)) f <- morph(p=3) all.equal(x, sapply(sapply(x, f$transform), f$inverse)) f <- morph(p=3, r=10) all.equal(-10:10, Vectorize(f$transform)(-10:10)) f <- morph(p=3, b=1) all.equal(x, sapply(sapply(x, f$transform), f$inverse)) mcmc/tests/logitidx.Rout.save0000644000176200001440000001013514524774760016006 0ustar liggesusers R version 4.3.1 (2023-06-16) -- "Beagle Scouts" Copyright (C) 2023 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > > # test outfun (positive index vector) > > epsilon <- 1e-15 > > library(mcmc) > > suppressWarnings(RNGkind("Marsaglia-Multicarry")) > set.seed(42) > > n <- 100 > rho <- 0.5 > beta0 <- 0.25 > beta1 <- 1 > beta2 <- 0.5 > > x1 <- rnorm(n) > x2 <- rho * x1 + sqrt(1 - rho^2) * rnorm(n) > eta <- beta0 + beta1 * x1 + beta2 * x2 > p <- 1 / (1 + exp(- eta)) > y <- as.numeric(runif(n) < p) > > out <- glm(y ~ x1 + x2, family = binomial()) > > logl <- function(beta) { + if (length(beta) != 3) stop("length(beta) != 3") + beta0 <- beta[1] + beta1 <- beta[2] + beta2 <- beta[3] + eta <- beta0 + beta1 * x1 + beta2 * x2 + p <- exp(eta) / (1 + exp(eta)) + return(sum(log(p[y == 1])) + sum(log(1 - p[y == 0]))) + } > > out.metro <- metrop(logl, coefficients(out), 1e3, scale = 0.01) > out.metro$accept [1] 0.982 > > out.metro <- metrop(out.metro, scale = 0.1) > out.metro$accept [1] 0.795 > > out.metro <- metrop(out.metro, scale = 0.5) > out.metro$accept [1] 0.264 > > apply(out.metro$batch, 2, mean) [1] 0.06080257 1.42304941 0.52634149 > > out.metro <- metrop(logl, as.numeric(coefficients(out)), 1e2, + scale = 0.5, debug = TRUE, outfun = c(2, 3)) > > niter <- out.metro$nbatch * out.metro$blen * out.metro$nspac > niter == nrow(out.metro$current) [1] TRUE > niter == nrow(out.metro$proposal) [1] TRUE > all(out.metro$current[1, ] == out.metro$initial) [1] TRUE > all(out.metro$current[niter, ] == out.metro$final) | + all(out.metro$proposal[niter, ] == out.metro$final) [1] TRUE > > .Random.seed <- out.metro$initial.seed > d <- ncol(out.metro$proposal) > n <- nrow(out.metro$proposal) > my.proposal <- matrix(NA, n, d) > my.u <- double(n) > ska <- out.metro$scale > for (i in 1:n) { + my.proposal[i, ] <- out.metro$current[i, ] + ska * rnorm(d) + if (is.na(out.metro$u[i])) { + my.u[i] <- NA + } else { + my.u[i] <- runif(1) + } + } > max(abs(out.metro$proposal - my.proposal)) < epsilon [1] TRUE > all(is.na(out.metro$u) == is.na(my.u)) [1] TRUE > all(out.metro$u[!is.na(out.metro$u)] == my.u[!is.na(my.u)]) [1] TRUE > > my.curr.log.green <- apply(out.metro$current, 1, logl) > my.prop.log.green <- apply(out.metro$proposal, 1, logl) > all(is.na(out.metro$u) == (my.prop.log.green > my.curr.log.green)) [1] TRUE > foo <- my.prop.log.green - my.curr.log.green > max(abs(foo - out.metro$log.green)) < epsilon [1] TRUE > > my.accept <- is.na(my.u) | my.u < exp(foo) > sum(my.accept) == round(n * out.metro$accept) [1] TRUE > if (my.accept[niter]) { + all(out.metro$proposal[niter, ] == out.metro$final) + } else { + all(out.metro$current[niter, ] == out.metro$final) + } [1] TRUE > > my.current <- out.metro$current > my.current[my.accept, ] <- my.proposal[my.accept, ] > my.current <- rbind(out.metro$initial, my.current[- niter, ]) > max(abs(out.metro$current - my.current)) < epsilon [1] TRUE > > my.path <- matrix(NA, n, d) > my.path[my.accept, ] <- out.metro$proposal[my.accept, ] > my.path[! my.accept, ] <- out.metro$current[! my.accept, ] > nspac <- out.metro$nspac > > my.path <- my.path[seq(nspac, niter, by = nspac), ] > > fred <- my.path[ , out.metro$outfun] > k <- ncol(fred) > > foom <- array(as.vector(t(fred)), c(k, out.metro$blen, out.metro$nbatch)) > boom <- t(apply(foom, c(1, 3), mean)) > > all(dim(boom) == dim(out.metro$batch)) [1] TRUE > max(abs(boom - out.metro$batch)) < epsilon [1] TRUE > > > proc.time() user system elapsed 0.312 0.033 0.338 mcmc/tests/zero-error.Rout.save0000644000176200001440000000172214524757322016266 0ustar liggesusers R version 4.3.1 (2023-06-16) -- "Beagle Scouts" Copyright (C) 2023 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > > library(mcmc) > > # should give intelligible error (unlike before ver 0.9-8) > > suppressMessages(try(metrop(function(x) x, double(0), nbatch = 10))) Error in system.time(out <- .Call(C_metrop, func1, initial, nbatch, blen, : argument "initial" must have nonzero length > > proc.time() user system elapsed 0.198 0.021 0.209 mcmc/tests/saveseedmorph.R0000644000176200001440000000116613636316205015334 0ustar liggesusers library(mcmc) set.seed(42) h <- function(x) if (all(x >= 0) && sum(x) <= 1) return(1) else return(-Inf) out <- morph.metrop(obj = h, initial = rep(0, 5), nbatch = 100, blen = 17, nspac = 3, scale = 0.1) out1 <- morph.metrop(out) out2 <- morph.metrop(out1) out3 <- morph.metrop(out, nbatch = 2 * out$nbatch) fred <- rbind(out1$batch, out2$batch) identical(fred, out3$batch) out <- morph.metrop(out, morph = morph(p = 2.2, r = 0.3)) out1 <- morph.metrop(out) out2 <- morph.metrop(out1) out3 <- morph.metrop(out, nbatch = 2 * out$nbatch) fred <- rbind(out1$batch, out2$batch) identical(fred, out3$batch) mcmc/tests/morph.metrop.Rout.save0000644000176200001440000000353413636316205016607 0ustar liggesusers R version 3.2.1 (2015-06-18) -- "World-Famous Astronaut" Copyright (C) 2015 The R Foundation for Statistical Computing Platform: i686-pc-linux-gnu (32-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > library(mcmc) > > .morph.unmorph <- mcmc:::.morph.unmorph > > ########################################################################### > # basic functionality check, can morph.metro run? Can we change the > # transformation? > set.seed(42) > obj <- morph.metrop(function(x) dt(x, df=3, log=TRUE), + 100, 100, morph=morph(b=3)) > obj <- morph.metrop(obj, morph=morph(b=1)) > > obj <- morph.metrop(function(x) prod(dt(x, df=3, log=TRUE)), + rep(100, 3), 100, morph=morph(p=3, b=1)) > obj <- morph.metrop(obj, morph=morph(r=1, p=3, b=1)) > > all.equal(class(obj), c("mcmc", "morph.metropolis")) [1] TRUE > > ########################################################################### > # check .morph.unmorph > obj <- list(final=10) > outfun <- function(x) x > m <- morph(p=3) > obj <- .morph.unmorph(obj, m, outfun) > all.equal(class(obj), c("mcmc", "morph.metropolis")) [1] TRUE > all.equal(sort(names(obj)), + sort(c("final", "morph", "morph.final", "outfun"))) [1] TRUE > all.equal(c(obj$final, obj$morph.final), c(m$inverse(10), 10)) [1] TRUE > all.equal(obj$outfun, outfun) [1] TRUE > all.equal(obj$morph, m) [1] TRUE > > proc.time() user system elapsed 0.384 0.024 0.401 mcmc/tests/initseq.R0000644000176200001440000000232413636316205014140 0ustar liggesusers library(mcmc) set.seed(42) n <- 1e5 rho <- 0.99 x <- arima.sim(model = list(ar = rho), n = n) gamma <- acf(x, lag.max = 1999, type = "covariance", plot = FALSE)$acf k <- seq(along = gamma) Gamma <- gamma[k %% 2 == 1] + gamma[k %% 2 == 0] k <- min(seq(along = Gamma)[Gamma < 0]) Gamma <- Gamma[1:k] Gamma[k] < 0 Gamma[k] <- 0 out <- .Call(mcmc:::C_initseq, x - mean(x)) names(out) all.equal(gamma[1], out$gamma0) length(out$Gamma.pos) == length(Gamma) all.equal(out$Gamma.pos, Gamma) Gamma.dec <- cummin(Gamma) all.equal(out$Gamma.dec, Gamma.dec) ## IGNORE_RDIFF_BEGIN library(Iso) ## IGNORE_RDIFF_END Gamma.con <- Gamma.dec[1] + cumsum(c(0, pava(diff(Gamma.dec)))) all.equal(out$Gamma.con, Gamma.con) all.equal(0, min(out$Gamma.pos - out$Gamma.dec)) max(diff(out$Gamma.dec)) < sqrt(.Machine$double.eps) all.equal(0, min(out$Gamma.dec - out$Gamma.con)) min(diff(diff(out$Gamma.con))) > (- sqrt(.Machine$double.eps)) all.equal(2 * sum(out$Gamma.pos) - out$gamma0, out$var.pos) all.equal(2 * sum(out$Gamma.dec) - out$gamma0, out$var.dec) all.equal(2 * sum(out$Gamma.con) - out$gamma0, out$var.con) rev(out$Gamma.pos)[1] == 0 rev(out$Gamma.dec)[1] == 0 all.equal(rev(out$Gamma.con)[1], 0) mcmc/tests/temp-ser.Rout.save0000644000176200001440000002773314525022346015716 0ustar liggesusers R version 4.3.1 (2023-06-16) -- "Beagle Scouts" Copyright (C) 2023 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > > library(mcmc) > > set.seed(42) > > data(foo) > attach(foo) > > out <- glm(y ~ x1 + x2 + x3, family = binomial, x = TRUE) > ## IGNORE_RDIFF_BEGIN > summary(out) Call: glm(formula = y ~ x1 + x2 + x3, family = binomial, x = TRUE) Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) 0.5772 0.2766 2.087 0.036930 * x1 0.3362 0.4256 0.790 0.429672 x2 0.8475 0.4701 1.803 0.071394 . x3 1.5143 0.4426 3.422 0.000622 *** --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 134.602 on 99 degrees of freedom Residual deviance: 86.439 on 96 degrees of freedom AIC: 94.439 Number of Fisher Scoring iterations: 5 > ## IGNORE_RDIFF_END > > modmat <- out$x > > models <- cbind(rep(0:1, each = 4), rep(rep(0:1, times = 2), each = 2), + rep(0:1, times = 4)) > > exes <- paste("x", 1:3, sep = "") > models[nrow(models), ] [1] 1 1 1 > beta.initial <- c(nrow(models), out$coefficients) > > neighbors <- matrix(FALSE, nrow(models), nrow(models)) > for (i in 1:nrow(neighbors)) { + for (j in 1:ncol(neighbors)) { + foo <- models[i, ] + bar <- models[j, ] + if (sum(foo != bar) == 1) neighbors[i, j] <- TRUE + } + } > neighbors [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [1,] FALSE TRUE TRUE FALSE TRUE FALSE FALSE FALSE [2,] TRUE FALSE FALSE TRUE FALSE TRUE FALSE FALSE [3,] TRUE FALSE FALSE TRUE FALSE FALSE TRUE FALSE [4,] FALSE TRUE TRUE FALSE FALSE FALSE FALSE TRUE [5,] TRUE FALSE FALSE FALSE FALSE TRUE TRUE FALSE [6,] FALSE TRUE FALSE FALSE TRUE FALSE FALSE TRUE [7,] FALSE FALSE TRUE FALSE TRUE FALSE FALSE TRUE [8,] FALSE FALSE FALSE TRUE FALSE TRUE TRUE FALSE > > ludfun <- function(state, log.pseudo.prior, ...) { + stopifnot(is.numeric(state)) + stopifnot(length(state) == ncol(models) + 2) + icomp <- state[1] + stopifnot(icomp == as.integer(icomp)) + stopifnot(1 <= icomp && icomp <= nrow(models)) + stopifnot(is.numeric(log.pseudo.prior)) + stopifnot(length(log.pseudo.prior) == nrow(models)) + beta <- state[-1] + inies <- c(TRUE, as.logical(models[icomp, ])) + beta.logl <- beta + beta.logl[! inies] <- 0 + eta <- as.numeric(modmat %*% beta.logl) + logp <- ifelse(eta < 0, eta - log1p(exp(eta)), - log1p(exp(- eta))) + logq <- ifelse(eta < 0, - log1p(exp(eta)), - eta - log1p(exp(- eta))) + logl <- sum(logp[y == 1]) + sum(logq[y == 0]) + val <- logl - sum(beta^2) / 2 + log.pseudo.prior[icomp] + return(val) + } > > qux <- c(25.01, 5.875, 9.028, 0.6959, 11.73, 2.367, 5.864, 0.0) > > out <- temper(ludfun, initial = beta.initial, neighbors = neighbors, + nbatch = 25, blen = 20, nspac = 5, scale = 0.56789, debug = TRUE, + log.pseudo.prior = qux) > > names(out) [1] "lud" "neighbors" "nbatch" "blen" [5] "nspac" "scale" "outfun" "debug" [9] "parallel" "initial.seed" "final.seed" "time" [13] "batch" "acceptx" "accepti" "initial" [17] "final" "ibatch" "which" "unif.which" [21] "state" "log.hastings" "unif.hastings" "proposal" [25] "acceptd" "norm" "unif.choose" > > apply(out$ibatch, 2, mean) [1] 0.776 0.170 0.000 0.006 0.024 0.010 0.004 0.010 > > ### check decision about within-component or jump/swap > > identical(out$unif.which < 0.5, out$which) [1] TRUE > > identical(out$which, out$proposal[ , 1] == out$state[ , 1]) [1] TRUE > > ### check hastings ratio calculated correctly > > foo <- apply(out$state, 1, ludfun, log.pseudo.prior = qux) > bar <- apply(out$proposal, 1, ludfun, log.pseudo.prior = qux) > all.equal(bar - foo, out$log.hastings) [1] TRUE > > ### check hastings rejection decided correctly > > identical(out$log.hastings >= 0, is.na(out$unif.hastings)) [1] TRUE > all(out$log.hastings < 0 | out$acceptd) [1] TRUE > identical(out$acceptd, + out$log.hastings >= 0 | out$unif.hastings < exp(out$log.hastings)) [1] TRUE > > ### check acceptance carried out or not (according to decision) correctly > > before <- out$state > after <- before > after[- dim(after)[1], ] <- before[-1, ] > after[dim(after)[1], ] <- out$final > my.after <- before > my.after[out$acceptd, ] <- out$proposal[out$acceptd, ] > identical(after, my.after) [1] TRUE > > ### check within-component proposal > > my.coproposal.within <- out$state[out$which, ] > proposal.within <- out$proposal[out$which, ] > my.z <- out$norm[out$which, ] > my.proposal.within <- my.coproposal.within > my.proposal.within[ , -1] <- my.coproposal.within[ , -1] + out$scale * my.z > all.equal(proposal.within, my.proposal.within) [1] TRUE > > ### check swap proposal > > coproposal.swap <- out$state[! out$which, ] > proposal.swap <- out$proposal[! out$which, ] > unif.choose.swap <- out$unif.choose[! out$which] > my.i <- coproposal.swap[ , 1] > nneighbors <- apply(out$neighbors, 1, sum) > my.nneighbors <- nneighbors[my.i] > my.k <- floor(my.nneighbors * unif.choose.swap) + 1 > my.j <- my.k > foo <- seq(1, ncol(out$neighbors)) > for (i in seq(along = my.j)) { + my.j[i] <- (foo[out$neighbors[my.i[i], ]])[my.k[i]] + } > identical(coproposal.swap[ , 1], my.i) [1] TRUE > identical(proposal.swap[ , 1], my.j) [1] TRUE > > ### check standard normal and uniform random numbers are as purported > > save.Random.seed <- .Random.seed > .Random.seed <- out$initial.seed > > nx <- length(out$initial) - 1 > niter <- out$nbatch * out$blen * out$nspac > my.norm <- matrix(NA, nrow = nrow(out$norm), ncol = ncol(out$norm)) > my.unif.which <- rep(NA, niter) > my.unif.hastings <- rep(NA, niter) > my.unif.choose <- rep(NA, niter) > for (iiter in 1:niter) { + my.unif.which[iiter] <- runif(1) + if (out$which[iiter]) { + my.norm[iiter, ] <- rnorm(nx) + if (out$log.hastings[iiter] < 0) my.unif.hastings[iiter] <- runif(1) + } else { + my.unif.choose[iiter] <- runif(1) + if (out$log.hastings[iiter] < 0) my.unif.hastings[iiter] <- runif(1) + } + } > identical(my.norm, out$norm) [1] TRUE > identical(my.unif.which, out$unif.which) [1] TRUE > identical(my.unif.hastings, out$unif.hastings) [1] TRUE > identical(my.unif.choose, out$unif.choose) [1] TRUE > > .Random.seed <- save.Random.seed > > ### check batch means > > my.xstate <- after[ , -1] > foo <- my.xstate[seq(1, niter) %% out$nspac == 0, ] > foo <- array(as.vector(foo), dim = c(out$blen, out$nbatch, dim(foo)[2])) > foo <- apply(foo, c(2, 3), mean) > all.equal(foo, out$batch) [1] TRUE > > ### check ibatch means > > my.istate <- after[ , 1] > my.istate.matrix <- matrix(0, length(my.istate), nrow(models)) > for (i in 1:nrow(my.istate.matrix)) + my.istate.matrix[i, my.istate[i]] <- 1 > foo <- my.istate.matrix[seq(1, niter) %% out$nspac == 0, ] > foo <- array(as.vector(foo), dim = c(out$blen, out$nbatch, dim(foo)[2])) > foo <- apply(foo, c(2, 3), mean) > all.equal(foo, out$ibatch) [1] TRUE > > ### check acceptance rates > > nmodel <- nrow(out$neighbors) > > accept.within <- out$acceptd[out$which] > my.i.within <- out$state[out$which, 1] > my.i.within.accept <- my.i.within[accept.within] > my.acceptx.numer <- tabulate(my.i.within.accept, nbins = nmodel) > my.acceptx.denom <- tabulate(my.i.within, nbins = nmodel) > my.acceptx <- my.acceptx.numer / my.acceptx.denom > identical(my.acceptx, out$acceptx) [1] TRUE > > accept.swap <- out$acceptd[! out$which] > my.i.swap <- out$state[! out$which, 1] > my.j.swap <- out$proposal[! out$which, 1] > my.accepti <- matrix(NA, nmodel, nmodel) > for (i in 1:nmodel) { + for (j in 1:nmodel) { + if (out$neighbors[i, j]) { + my.accepti[i, j] <- + mean(accept.swap[my.i.swap == i & my.j.swap == j]) + } + } + } > identical(my.accepti, out$accepti) [1] TRUE > > ### check scale vector > > nx <- ncol(models) + 1 > newscale <- rnorm(nx, 0.5, 0.1) > > out <- temper(out, scale = newscale, log.pseudo.prior = qux) > > my.coproposal.within <- out$state[out$which, ] > proposal.within <- out$proposal[out$which, ] > my.z <- out$norm[out$which, ] > my.proposal.within <- my.coproposal.within > my.proposal.within[ , -1] <- my.coproposal.within[ , -1] + + sweep(my.z, 2, out$scale, "*") > all.equal(proposal.within, my.proposal.within) [1] TRUE > > ### check scale matrix > > matscale <- matrix(rnorm(nx * nx, 0.0, 0.1), nx, nx) > diag(matscale) <- 0.56789 > > out <- temper(out, scale = matscale, log.pseudo.prior = qux) > > my.coproposal.within <- out$state[out$which, ] > proposal.within <- out$proposal[out$which, ] > my.z <- out$norm[out$which, ] > my.proposal.within <- my.coproposal.within > my.proposal.within[ , -1] <- my.coproposal.within[ , -1] + + my.z %*% t(out$scale) > all.equal(proposal.within, my.proposal.within) [1] TRUE > > ### check scale list > > lisztscale <- list(0.56789, newscale, matscale, matscale, newscale, + 0.98765, 0.98765, newscale) > > out <- temper(out, scale = lisztscale, log.pseudo.prior = qux) > > my.coproposal.within <- out$state[out$which, ] > proposal.within <- out$proposal[out$which, ] > my.z <- out$norm[out$which, ] > my.proposal.within <- my.coproposal.within > for (iiter in 1:nrow(my.z)) { + my.i <- my.coproposal.within[iiter, 1] + my.scale <- out$scale[[my.i]] + if (is.matrix(my.scale)) { + my.proposal.within[iiter, -1] <- my.coproposal.within[iiter, -1] + + my.z[iiter, , drop = FALSE] %*% t(my.scale) + } else { + my.proposal.within[iiter, -1] <- my.coproposal.within[iiter, -1] + + my.z[iiter, ] * my.scale + } + } > all.equal(proposal.within, my.proposal.within) [1] TRUE > > ### check outfun > > outfun <- function(state, icomp) { + stopifnot(is.matrix(state)) + stopifnot(is.numeric(state)) + nx <- ncol(initial) + ncomp <- nrow(initial) + stopifnot(ncol(state) == nx) + stopifnot(nrow(state) == ncomp) + stopifnot(1 <= icomp & icomp <= ncomp) + foo <- state[icomp, ] + bar <- foo^2 + return(c(foo, bar)) + } > > ncomp <- nrow(models) > nx <- length(beta.initial) - 1 > > outfun <- function(state, icomp, ...) { + stopifnot(is.numeric(state)) + stopifnot(length(state) == nx + 1) + istate <- state[1] + stopifnot(istate == as.integer(istate)) + stopifnot(1 <= istate && istate <= ncomp) + stopifnot(1 <= icomp && icomp <= ncomp) + if (istate == icomp) { + foo <- state[-1] + } else { + foo <- rep(0, nx) + } + bar <- foo^2 + return(c(foo, bar)) + } > > out <- temper(ludfun, initial = out$final, neighbors = neighbors, + nbatch = 25, blen = 20, nspac = 5, scale = 0.56789, debug = TRUE, + outfun = outfun, log.pseudo.prior = qux, icomp = 4) > > before <- out$state > after <- before > after[- dim(after)[1], ] <- before[-1, ] > after[dim(after)[1], ] <- out$final > outies <- apply(after, 1, outfun, icomp = 4) > outies <- t(outies) > > foo <- outies[seq(1, niter) %% out$nspac == 0, ] > foo <- array(as.vector(foo), dim = c(out$blen, out$nbatch, dim(foo)[2])) > foo <- apply(foo, c(2, 3), mean) > all.equal(foo, out$batch) [1] TRUE > > > proc.time() user system elapsed 1.633 0.052 1.671 mcmc/tests/saveseedmorph.Rout.save0000644000176200001440000000256013636316205017020 0ustar liggesusers R version 2.15.0 (2012-03-30) Copyright (C) 2012 The R Foundation for Statistical Computing ISBN 3-900051-07-0 Platform: i686-pc-linux-gnu (32-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > > library(mcmc) > > set.seed(42) > > h <- function(x) if (all(x >= 0) && sum(x) <= 1) return(1) else return(-Inf) > out <- morph.metrop(obj = h, initial = rep(0, 5), nbatch = 100, blen = 17, + nspac = 3, scale = 0.1) > > out1 <- morph.metrop(out) > out2 <- morph.metrop(out1) > out3 <- morph.metrop(out, nbatch = 2 * out$nbatch) > > fred <- rbind(out1$batch, out2$batch) > identical(fred, out3$batch) [1] TRUE > > out <- morph.metrop(out, morph = morph(p = 2.2, r = 0.3)) > > out1 <- morph.metrop(out) > out2 <- morph.metrop(out1) > out3 <- morph.metrop(out, nbatch = 2 * out$nbatch) > > fred <- rbind(out1$batch, out2$batch) > identical(fred, out3$batch) [1] TRUE > > > proc.time() user system elapsed 0.752 0.036 0.767 mcmc/tests/circle.R0000644000176200001440000000377314524743273013744 0ustar liggesusers epsilon <- 1e-15 library(mcmc) suppressWarnings(RNGkind("Marsaglia-Multicarry")) set.seed(42) d <- 5 logh <- function(x) { if (! is.numeric(x)) stop("x not numeric") if (length(x) != d) stop("length(x) != d") fred <- 1 - sum(x^2) if (fred > 0) return(log(fred)) else return(-Inf) } out.metro <- metrop(logh, rep(0, d), 1e3, scale = 0.01) out.metro$accept out.metro <- metrop(out.metro, scale = 0.1) out.metro$accept out.metro <- metrop(out.metro, scale = 0.5) out.metro$accept out.metro <- metrop(out.metro, scale = 0.4) out.metro$accept out.metro <- metrop(out.metro, nbatch = 1e2, debug = TRUE) all(out.metro$batch[- out.metro$nbatch, ] == out.metro$current[- 1, ]) all(out.metro$current[1, ] == out.metro$initial) all(out.metro$batch[out.metro$nbatch, ] == out.metro$final) .Random.seed <- out.metro$initial.seed d <- ncol(out.metro$proposal) n <- nrow(out.metro$proposal) my.proposal <- matrix(NA, n, d) my.u <- double(n) ska <- out.metro$scale for (i in 1:n) { my.proposal[i, ] <- out.metro$current[i, ] + ska * rnorm(d) if (is.na(out.metro$u[i])) { my.u[i] <- NA } else { my.u[i] <- runif(1) } } max(abs(out.metro$proposal - my.proposal)) < epsilon all(is.na(out.metro$u) == is.na(my.u)) all(out.metro$u[!is.na(out.metro$u)] == my.u[!is.na(my.u)]) my.curr.log.green <- apply(out.metro$current, 1, logh) my.prop.log.green <- apply(out.metro$proposal, 1, logh) all(is.na(out.metro$u) == ((my.prop.log.green == -Inf) | (my.prop.log.green > my.curr.log.green))) foo <- my.prop.log.green - my.curr.log.green blurfle <- foo - out.metro$log.green blurfle[foo == -Inf & out.metro$log.green == -Inf] <- 0 max(blurfle) < epsilon my.accept <- (my.prop.log.green > -Inf) & (is.na(my.u) | my.u < exp(foo)) sum(my.accept) == round(n * out.metro$accept) my.path <- matrix(NA, n, d) my.path[my.accept, ] <- out.metro$proposal[my.accept, ] my.path[! my.accept, ] <- out.metro$current[! my.accept, ] all(my.path == out.metro$batch) mcmc/tests/temp-ser-witch.R0000644000176200001440000000526713045741240015340 0ustar liggesusers library(mcmc) set.seed(42) d <- 3 witch.which <- 1 - (1 / 2)^(1 / d) * (1 / 4)^(seq(0, 5) / d) witch.which ncomp <- length(witch.which) neighbors <- matrix(FALSE, ncomp, ncomp) neighbors[row(neighbors) == col(neighbors) + 1] <- TRUE neighbors[row(neighbors) == col(neighbors) - 1] <- TRUE neighbors[row(neighbors) == col(neighbors) + 2] <- TRUE neighbors[row(neighbors) == col(neighbors) - 2] <- TRUE ludfun <- function(state) { stopifnot(is.numeric(state)) stopifnot(length(state) == d + 1) icomp <- state[1] stopifnot(icomp == as.integer(icomp)) stopifnot(1 <= icomp && icomp <= ncomp) theta <- state[-1] if (any(abs(theta) > 1.0)) return(-Inf) bnd <- witch.which[icomp] if(bnd >= 1.0) stop(sprintf("witch.which[%d] >= 1.0", icomp)) if(bnd <= 0.0) stop(sprintf("witch.which[%d] <= 0.0", icomp)) if (all(abs(theta) > bnd)) return(- (d + 1) * log(2) - d * log(1 - bnd)) return(- (d + 1) * log(2) - log1p(- (1 - bnd)^d)) } initial <- c(1, rep(0, d)) out <- temper(ludfun, initial = initial, neighbors = neighbors, nbatch = 50, blen = 13, nspac = 7, scale = 0.3456789) names(out) out$acceptx out$accepti colMeans(out$ibatch) ### check that have prob 1 / 2 for corners outfun <- function(state) { stopifnot(is.numeric(state)) icomp <- state[1] stopifnot(icomp == as.integer(icomp)) stopifnot(1 <= icomp && icomp <= length(witch.which)) theta <- state[-1] foo <- all(abs(theta) > witch.which[icomp]) bar <- rep(0, length(witch.which)) baz <- rep(0, length(witch.which)) bar[icomp] <- as.numeric(foo) baz[icomp] <- 1 return(c(bar, baz)) } out <- temper(out, blen = 103, outfun = outfun, debug = TRUE) eta.batch <- out$batch[ , seq(1, ncomp)] noo.batch <- out$batch[ , seq(ncomp + 1, ncomp + ncomp)] eta <- colMeans(eta.batch) noo <- colMeans(noo.batch) mu <- eta / noo eta noo mu eta.batch.rel <- sweep(eta.batch, 2, eta, "/") noo.batch.rel <- sweep(noo.batch, 2, noo, "/") mu.batch.rel <- eta.batch.rel - noo.batch.rel mu.mcse.rel <- apply(mu.batch.rel, 2, sd) / sqrt(out$nbatch) mu.mcse.rel foo <- cbind(mu, mu * mu.mcse.rel) colnames(foo) <- c("means", "MCSE") foo ### check decision about within-component or jump/swap identical(out$unif.which < 0.5, out$which) identical(out$which, out$proposal[ , 1] == out$state[ , 1]) ### check hastings ratio calculated correctly n <- apply(neighbors, 1, sum) i <- out$state[ , 1] istar <- out$proposal[ , 1] foo <- apply(out$state, 1, ludfun) bar <- apply(out$proposal, 1, ludfun) my.log.hastings <- bar - foo - log(n[istar]) + log(n[i]) all.equal(my.log.hastings, out$log.hastings) mcmc/tests/logitlogidx.Rout.save0000644000176200001440000001014114524775027016502 0ustar liggesusers R version 4.3.1 (2023-06-16) -- "Beagle Scouts" Copyright (C) 2023 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > > # test outfun (logical index vector) > > epsilon <- 1e-15 > > library(mcmc) > > suppressWarnings(RNGkind("Marsaglia-Multicarry")) > set.seed(42) > > n <- 100 > rho <- 0.5 > beta0 <- 0.25 > beta1 <- 1 > beta2 <- 0.5 > > x1 <- rnorm(n) > x2 <- rho * x1 + sqrt(1 - rho^2) * rnorm(n) > eta <- beta0 + beta1 * x1 + beta2 * x2 > p <- 1 / (1 + exp(- eta)) > y <- as.numeric(runif(n) < p) > > out <- glm(y ~ x1 + x2, family = binomial()) > > logl <- function(beta) { + if (length(beta) != 3) stop("length(beta) != 3") + beta0 <- beta[1] + beta1 <- beta[2] + beta2 <- beta[3] + eta <- beta0 + beta1 * x1 + beta2 * x2 + p <- exp(eta) / (1 + exp(eta)) + return(sum(log(p[y == 1])) + sum(log(1 - p[y == 0]))) + } > > out.metro <- metrop(logl, coefficients(out), 1e3, scale = 0.01) > out.metro$accept [1] 0.982 > > out.metro <- metrop(out.metro, scale = 0.1) > out.metro$accept [1] 0.795 > > out.metro <- metrop(out.metro, scale = 0.5) > out.metro$accept [1] 0.264 > > apply(out.metro$batch, 2, mean) [1] 0.06080257 1.42304941 0.52634149 > > out.metro <- metrop(logl, as.numeric(coefficients(out)), 1e2, + scale = 0.5, debug = TRUE, outfun = seq(1:3) > 1) > > niter <- out.metro$nbatch * out.metro$blen * out.metro$nspac > niter == nrow(out.metro$current) [1] TRUE > niter == nrow(out.metro$proposal) [1] TRUE > all(out.metro$current[1, ] == out.metro$initial) [1] TRUE > all(out.metro$current[niter, ] == out.metro$final) | + all(out.metro$proposal[niter, ] == out.metro$final) [1] TRUE > > .Random.seed <- out.metro$initial.seed > d <- ncol(out.metro$proposal) > n <- nrow(out.metro$proposal) > my.proposal <- matrix(NA, n, d) > my.u <- double(n) > ska <- out.metro$scale > for (i in 1:n) { + my.proposal[i, ] <- out.metro$current[i, ] + ska * rnorm(d) + if (is.na(out.metro$u[i])) { + my.u[i] <- NA + } else { + my.u[i] <- runif(1) + } + } > max(abs(out.metro$proposal - my.proposal)) < epsilon [1] TRUE > all(is.na(out.metro$u) == is.na(my.u)) [1] TRUE > all(out.metro$u[!is.na(out.metro$u)] == my.u[!is.na(my.u)]) [1] TRUE > > my.curr.log.green <- apply(out.metro$current, 1, logl) > my.prop.log.green <- apply(out.metro$proposal, 1, logl) > all(is.na(out.metro$u) == (my.prop.log.green > my.curr.log.green)) [1] TRUE > foo <- my.prop.log.green - my.curr.log.green > max(abs(foo - out.metro$log.green)) < epsilon [1] TRUE > > my.accept <- is.na(my.u) | my.u < exp(foo) > sum(my.accept) == round(n * out.metro$accept) [1] TRUE > if (my.accept[niter]) { + all(out.metro$proposal[niter, ] == out.metro$final) + } else { + all(out.metro$current[niter, ] == out.metro$final) + } [1] TRUE > > my.current <- out.metro$current > my.current[my.accept, ] <- my.proposal[my.accept, ] > my.current <- rbind(out.metro$initial, my.current[- niter, ]) > max(abs(out.metro$current - my.current)) < epsilon [1] TRUE > > my.path <- matrix(NA, n, d) > my.path[my.accept, ] <- out.metro$proposal[my.accept, ] > my.path[! my.accept, ] <- out.metro$current[! my.accept, ] > nspac <- out.metro$nspac > > my.path <- my.path[seq(nspac, niter, by = nspac), ] > > fred <- my.path[ , out.metro$outfun] > k <- ncol(fred) > > foom <- array(as.vector(t(fred)), c(k, out.metro$blen, out.metro$nbatch)) > boom <- t(apply(foom, c(1, 3), mean)) > > all(dim(boom) == dim(out.metro$batch)) [1] TRUE > max(abs(boom - out.metro$batch)) < epsilon [1] TRUE > > > proc.time() user system elapsed 0.291 0.034 0.317 mcmc/tests/saveseed.R0000644000176200001440000000060713045741240014260 0ustar liggesusers library(mcmc) set.seed(42) h <- function(x) if (all(x >= 0) && sum(x) <= 1) return(1) else return(-Inf) out <- metrop(h, initial = rep(0, 5), nbatch = 100, blen = 17, nspac = 3, scale = 0.1) save.seed <- .Random.seed out1 <- metrop(out) out2 <- metrop(out1) out3 <- metrop(out, nbatch = 2 * out$nbatch) fred <- rbind(out1$batch, out2$batch) identical(fred, out3$batch) mcmc/tests/temp-ser.R0000644000176200001440000002165114525021677014230 0ustar liggesusers library(mcmc) set.seed(42) data(foo) attach(foo) out <- glm(y ~ x1 + x2 + x3, family = binomial, x = TRUE) ## IGNORE_RDIFF_BEGIN summary(out) ## IGNORE_RDIFF_END modmat <- out$x models <- cbind(rep(0:1, each = 4), rep(rep(0:1, times = 2), each = 2), rep(0:1, times = 4)) exes <- paste("x", 1:3, sep = "") models[nrow(models), ] beta.initial <- c(nrow(models), out$coefficients) neighbors <- matrix(FALSE, nrow(models), nrow(models)) for (i in 1:nrow(neighbors)) { for (j in 1:ncol(neighbors)) { foo <- models[i, ] bar <- models[j, ] if (sum(foo != bar) == 1) neighbors[i, j] <- TRUE } } neighbors ludfun <- function(state, log.pseudo.prior, ...) { stopifnot(is.numeric(state)) stopifnot(length(state) == ncol(models) + 2) icomp <- state[1] stopifnot(icomp == as.integer(icomp)) stopifnot(1 <= icomp && icomp <= nrow(models)) stopifnot(is.numeric(log.pseudo.prior)) stopifnot(length(log.pseudo.prior) == nrow(models)) beta <- state[-1] inies <- c(TRUE, as.logical(models[icomp, ])) beta.logl <- beta beta.logl[! inies] <- 0 eta <- as.numeric(modmat %*% beta.logl) logp <- ifelse(eta < 0, eta - log1p(exp(eta)), - log1p(exp(- eta))) logq <- ifelse(eta < 0, - log1p(exp(eta)), - eta - log1p(exp(- eta))) logl <- sum(logp[y == 1]) + sum(logq[y == 0]) val <- logl - sum(beta^2) / 2 + log.pseudo.prior[icomp] return(val) } qux <- c(25.01, 5.875, 9.028, 0.6959, 11.73, 2.367, 5.864, 0.0) out <- temper(ludfun, initial = beta.initial, neighbors = neighbors, nbatch = 25, blen = 20, nspac = 5, scale = 0.56789, debug = TRUE, log.pseudo.prior = qux) names(out) apply(out$ibatch, 2, mean) ### check decision about within-component or jump/swap identical(out$unif.which < 0.5, out$which) identical(out$which, out$proposal[ , 1] == out$state[ , 1]) ### check hastings ratio calculated correctly foo <- apply(out$state, 1, ludfun, log.pseudo.prior = qux) bar <- apply(out$proposal, 1, ludfun, log.pseudo.prior = qux) all.equal(bar - foo, out$log.hastings) ### check hastings rejection decided correctly identical(out$log.hastings >= 0, is.na(out$unif.hastings)) all(out$log.hastings < 0 | out$acceptd) identical(out$acceptd, out$log.hastings >= 0 | out$unif.hastings < exp(out$log.hastings)) ### check acceptance carried out or not (according to decision) correctly before <- out$state after <- before after[- dim(after)[1], ] <- before[-1, ] after[dim(after)[1], ] <- out$final my.after <- before my.after[out$acceptd, ] <- out$proposal[out$acceptd, ] identical(after, my.after) ### check within-component proposal my.coproposal.within <- out$state[out$which, ] proposal.within <- out$proposal[out$which, ] my.z <- out$norm[out$which, ] my.proposal.within <- my.coproposal.within my.proposal.within[ , -1] <- my.coproposal.within[ , -1] + out$scale * my.z all.equal(proposal.within, my.proposal.within) ### check swap proposal coproposal.swap <- out$state[! out$which, ] proposal.swap <- out$proposal[! out$which, ] unif.choose.swap <- out$unif.choose[! out$which] my.i <- coproposal.swap[ , 1] nneighbors <- apply(out$neighbors, 1, sum) my.nneighbors <- nneighbors[my.i] my.k <- floor(my.nneighbors * unif.choose.swap) + 1 my.j <- my.k foo <- seq(1, ncol(out$neighbors)) for (i in seq(along = my.j)) { my.j[i] <- (foo[out$neighbors[my.i[i], ]])[my.k[i]] } identical(coproposal.swap[ , 1], my.i) identical(proposal.swap[ , 1], my.j) ### check standard normal and uniform random numbers are as purported save.Random.seed <- .Random.seed .Random.seed <- out$initial.seed nx <- length(out$initial) - 1 niter <- out$nbatch * out$blen * out$nspac my.norm <- matrix(NA, nrow = nrow(out$norm), ncol = ncol(out$norm)) my.unif.which <- rep(NA, niter) my.unif.hastings <- rep(NA, niter) my.unif.choose <- rep(NA, niter) for (iiter in 1:niter) { my.unif.which[iiter] <- runif(1) if (out$which[iiter]) { my.norm[iiter, ] <- rnorm(nx) if (out$log.hastings[iiter] < 0) my.unif.hastings[iiter] <- runif(1) } else { my.unif.choose[iiter] <- runif(1) if (out$log.hastings[iiter] < 0) my.unif.hastings[iiter] <- runif(1) } } identical(my.norm, out$norm) identical(my.unif.which, out$unif.which) identical(my.unif.hastings, out$unif.hastings) identical(my.unif.choose, out$unif.choose) .Random.seed <- save.Random.seed ### check batch means my.xstate <- after[ , -1] foo <- my.xstate[seq(1, niter) %% out$nspac == 0, ] foo <- array(as.vector(foo), dim = c(out$blen, out$nbatch, dim(foo)[2])) foo <- apply(foo, c(2, 3), mean) all.equal(foo, out$batch) ### check ibatch means my.istate <- after[ , 1] my.istate.matrix <- matrix(0, length(my.istate), nrow(models)) for (i in 1:nrow(my.istate.matrix)) my.istate.matrix[i, my.istate[i]] <- 1 foo <- my.istate.matrix[seq(1, niter) %% out$nspac == 0, ] foo <- array(as.vector(foo), dim = c(out$blen, out$nbatch, dim(foo)[2])) foo <- apply(foo, c(2, 3), mean) all.equal(foo, out$ibatch) ### check acceptance rates nmodel <- nrow(out$neighbors) accept.within <- out$acceptd[out$which] my.i.within <- out$state[out$which, 1] my.i.within.accept <- my.i.within[accept.within] my.acceptx.numer <- tabulate(my.i.within.accept, nbins = nmodel) my.acceptx.denom <- tabulate(my.i.within, nbins = nmodel) my.acceptx <- my.acceptx.numer / my.acceptx.denom identical(my.acceptx, out$acceptx) accept.swap <- out$acceptd[! out$which] my.i.swap <- out$state[! out$which, 1] my.j.swap <- out$proposal[! out$which, 1] my.accepti <- matrix(NA, nmodel, nmodel) for (i in 1:nmodel) { for (j in 1:nmodel) { if (out$neighbors[i, j]) { my.accepti[i, j] <- mean(accept.swap[my.i.swap == i & my.j.swap == j]) } } } identical(my.accepti, out$accepti) ### check scale vector nx <- ncol(models) + 1 newscale <- rnorm(nx, 0.5, 0.1) out <- temper(out, scale = newscale, log.pseudo.prior = qux) my.coproposal.within <- out$state[out$which, ] proposal.within <- out$proposal[out$which, ] my.z <- out$norm[out$which, ] my.proposal.within <- my.coproposal.within my.proposal.within[ , -1] <- my.coproposal.within[ , -1] + sweep(my.z, 2, out$scale, "*") all.equal(proposal.within, my.proposal.within) ### check scale matrix matscale <- matrix(rnorm(nx * nx, 0.0, 0.1), nx, nx) diag(matscale) <- 0.56789 out <- temper(out, scale = matscale, log.pseudo.prior = qux) my.coproposal.within <- out$state[out$which, ] proposal.within <- out$proposal[out$which, ] my.z <- out$norm[out$which, ] my.proposal.within <- my.coproposal.within my.proposal.within[ , -1] <- my.coproposal.within[ , -1] + my.z %*% t(out$scale) all.equal(proposal.within, my.proposal.within) ### check scale list lisztscale <- list(0.56789, newscale, matscale, matscale, newscale, 0.98765, 0.98765, newscale) out <- temper(out, scale = lisztscale, log.pseudo.prior = qux) my.coproposal.within <- out$state[out$which, ] proposal.within <- out$proposal[out$which, ] my.z <- out$norm[out$which, ] my.proposal.within <- my.coproposal.within for (iiter in 1:nrow(my.z)) { my.i <- my.coproposal.within[iiter, 1] my.scale <- out$scale[[my.i]] if (is.matrix(my.scale)) { my.proposal.within[iiter, -1] <- my.coproposal.within[iiter, -1] + my.z[iiter, , drop = FALSE] %*% t(my.scale) } else { my.proposal.within[iiter, -1] <- my.coproposal.within[iiter, -1] + my.z[iiter, ] * my.scale } } all.equal(proposal.within, my.proposal.within) ### check outfun outfun <- function(state, icomp) { stopifnot(is.matrix(state)) stopifnot(is.numeric(state)) nx <- ncol(initial) ncomp <- nrow(initial) stopifnot(ncol(state) == nx) stopifnot(nrow(state) == ncomp) stopifnot(1 <= icomp & icomp <= ncomp) foo <- state[icomp, ] bar <- foo^2 return(c(foo, bar)) } ncomp <- nrow(models) nx <- length(beta.initial) - 1 outfun <- function(state, icomp, ...) { stopifnot(is.numeric(state)) stopifnot(length(state) == nx + 1) istate <- state[1] stopifnot(istate == as.integer(istate)) stopifnot(1 <= istate && istate <= ncomp) stopifnot(1 <= icomp && icomp <= ncomp) if (istate == icomp) { foo <- state[-1] } else { foo <- rep(0, nx) } bar <- foo^2 return(c(foo, bar)) } out <- temper(ludfun, initial = out$final, neighbors = neighbors, nbatch = 25, blen = 20, nspac = 5, scale = 0.56789, debug = TRUE, outfun = outfun, log.pseudo.prior = qux, icomp = 4) before <- out$state after <- before after[- dim(after)[1], ] <- before[-1, ] after[dim(after)[1], ] <- out$final outies <- apply(after, 1, outfun, icomp = 4) outies <- t(outies) foo <- outies[seq(1, niter) %% out$nspac == 0, ] foo <- array(as.vector(foo), dim = c(out$blen, out$nbatch, dim(foo)[2])) foo <- apply(foo, c(2, 3), mean) all.equal(foo, out$batch) mcmc/tests/morphtoo.Rout.save0000644000176200001440000000412713636316205016023 0ustar liggesusers R version 2.15.0 (2012-03-30) Copyright (C) 2012 The R Foundation for Statistical Computing ISBN 3-900051-07-0 Platform: i686-pc-linux-gnu (32-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > > library(mcmc) > > x <- seq(0, 10, length = 10001) > > ### sub-exponentially light transformation > > b <- 0.5 > fsub <- morph(b = b) > > y <- unlist(Map(fsub$inverse, x)) > > myfsub <- function(x) ifelse(x > 1 / b, exp(b * x) - exp(1) / 3, + (x * b)^3 * exp(1) / 6 + x * b * exp(1) / 2) > y2 <- myfsub(x) > all.equal(y, y2, tolerance = 1e-14) [1] TRUE > > z <- unlist(Map(fsub$transform, y)) > all.equal(z, x, tolerance = 1e-14) [1] TRUE > > ### exponentially light transformation > > r <- 5 > p <- 3 > fp3 <- morph(r = r) > > y <- unlist(Map(fp3$inverse, x)) > > myfp3 <- function(x) ifelse(x < r, x, x + (x - r)^p) > y2 <- myfp3(x) > all.equal(y, y2, tolerance = 1e-14) [1] TRUE > > z <- unlist(Map(fp3$transform, y)) > all.equal(z, x, tolerance = 1e-12) [1] TRUE > > ### both together > > fboth <- morph(b = b, r = r) > > y <- unlist(Map(fboth$inverse, x)) > y2 <- myfsub(myfp3(x)) > all.equal(y, y2, tolerance = 1e-14) [1] TRUE > > z <- unlist(Map(fboth$transform, y)) > all.equal(z, x, tolerance = 1e-12) [1] TRUE > > ### exponentially light transformation with p != 3 > > r <- 5 > p <- 2.2 > fpo <- morph(r = r, p = p) > > y <- unlist(Map(fpo$inverse, x)) > > myfpo <- function(x) ifelse(x < r, x, x + (x - r)^p) > y2 <- myfpo(x) > all.equal(y, y2, tolerance = 1e-14) [1] TRUE > > z <- unlist(Map(fpo$transform, y)) > all.equal(z, x, tolerance = 1e-14) [1] TRUE > > > proc.time() user system elapsed 4.024 0.036 4.038 mcmc/tests/logit.Rout.save0000644000176200001440000001137614525054547015304 0ustar liggesusers R version 4.3.2 (2023-10-31) -- "Eye Holes" Copyright (C) 2023 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > > epsilon <- 1e-15 > > library(mcmc) > > suppressWarnings(RNGkind("Marsaglia-Multicarry")) > set.seed(42) > > options(digits = 3) > > n <- 100 > rho <- 0.5 > beta0 <- 0.25 > beta1 <- 1 > beta2 <- 0.5 > > x1 <- rnorm(n) > x2 <- rho * x1 + sqrt(1 - rho^2) * rnorm(n) > eta <- beta0 + beta1 * x1 + beta2 * x2 > p <- 1 / (1 + exp(- eta)) > y <- as.numeric(runif(n) < p) > > out <- glm(y ~ x1 + x2, family = binomial()) > ## IGNORE_RDIFF_BEGIN > summary(out) Call: glm(formula = y ~ x1 + x2, family = binomial()) Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) 0.0599 0.2477 0.24 0.80905 x1 1.3682 0.3844 3.56 0.00037 *** x2 0.4760 0.3135 1.52 0.12886 --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 138.469 on 99 degrees of freedom Residual deviance: 99.293 on 97 degrees of freedom AIC: 105.3 Number of Fisher Scoring iterations: 5 > ## IGNORE_RDIFF_END > > mlogl <- function(beta) { + if (length(beta) != 3) stop("length(beta) != 3") + beta0 <- beta[1] + beta1 <- beta[2] + beta2 <- beta[3] + eta <- beta0 + beta1 * x1 + beta2 * x2 + p <- exp(eta) / (1 + exp(eta)) + return(- sum(log(p[y == 1])) - sum(log(1 - p[y == 0]))) + } > > ## IGNORE_RDIFF_BEGIN > out.nlm <- nlm(mlogl, coefficients(out), print.level = 2) iteration = 0 Parameter: [1] 0.0599 1.3682 0.4760 Function Value [1] 49.6 Gradient: [1] 8.24e-06 5.50e-06 6.08e-06 Relative gradient close to zero. Current iterate is probably solution. > ## IGNORE_RDIFF_END > > logl <- function(beta) { + if (length(beta) != 3) stop("length(beta) != 3") + beta0 <- beta[1] + beta1 <- beta[2] + beta2 <- beta[3] + eta <- beta0 + beta1 * x1 + beta2 * x2 + p <- exp(eta) / (1 + exp(eta)) + return(sum(log(p[y == 1])) + sum(log(1 - p[y == 0]))) + } > > out.metro <- metrop(logl, coefficients(out), 1e3, scale = 0.01) > out.metro$accept [1] 0.982 > > out.metro <- metrop(out.metro, scale = 0.1) > out.metro$accept [1] 0.795 > > out.metro <- metrop(out.metro, scale = 0.5) > out.metro$accept [1] 0.264 > > apply(out.metro$batch, 2, mean) [1] 0.0608 1.4230 0.5263 > var(out.metro$batch) [,1] [,2] [,3] [1,] 0.06755 -0.0108 0.00989 [2,] -0.01080 0.1758 -0.06155 [3,] 0.00989 -0.0615 0.10483 > olbm(out.metro$batch, 25) [,1] [,2] [,3] [1,] 4.54e-04 9.47e-05 -1.92e-05 [2,] 9.47e-05 1.84e-03 -6.45e-04 [3,] -1.92e-05 -6.45e-04 9.09e-04 > > saveseed <- .Random.seed > out.metro <- metrop(logl, as.numeric(coefficients(out)), 1e2, + scale = 0.5, debug = TRUE) > > all(out.metro$batch[- out.metro$nbatch, ] == out.metro$current[- 1, ]) [1] TRUE > all(out.metro$current[1, ] == out.metro$initial) [1] TRUE > all(out.metro$batch[out.metro$nbatch, ] == out.metro$final) [1] TRUE > > .Random.seed <- saveseed > d <- ncol(out.metro$proposal) > n <- nrow(out.metro$proposal) > my.proposal <- matrix(NA, n, d) > my.u <- double(n) > ska <- out.metro$scale > for (i in 1:n) { + my.proposal[i, ] <- out.metro$current[i, ] + ska * rnorm(d) + if (is.na(out.metro$u[i])) { + my.u[i] <- NA + } else { + my.u[i] <- runif(1) + } + } > max(abs(out.metro$proposal - my.proposal)) < epsilon [1] TRUE > all(is.na(out.metro$u) == is.na(my.u)) [1] TRUE > all(out.metro$u[!is.na(out.metro$u)] == my.u[!is.na(my.u)]) [1] TRUE > > my.curr.log.green <- apply(out.metro$current, 1, logl) > my.prop.log.green <- apply(out.metro$proposal, 1, logl) > all(is.na(out.metro$u) == (my.prop.log.green > my.curr.log.green)) [1] TRUE > foo <- my.prop.log.green - my.curr.log.green > max(abs(foo - out.metro$log.green)) < epsilon [1] TRUE > > my.accept <- is.na(my.u) | my.u < exp(foo) > sum(my.accept) == round(n * out.metro$accept) [1] TRUE > > my.path <- matrix(NA, n, d) > my.path[my.accept, ] <- out.metro$proposal[my.accept, ] > my.path[! my.accept, ] <- out.metro$current[! my.accept, ] > > all(my.path == out.metro$batch) [1] TRUE > > > proc.time() user system elapsed 0.300 0.027 0.321 mcmc/tests/isotropic.Rout.save0000644000176200001440000000411313636316205016162 0ustar liggesusers R version 2.13.1 (2011-07-08) Copyright (C) 2011 The R Foundation for Statistical Computing ISBN 3-900051-07-0 Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > library(mcmc) > isotropic <- mcmc:::isotropic > isotropic.logjacobian <- mcmc:::isotropic.logjacobian > > # create identity test function > identity <- function(x) x > d.identity <- function(x) 1 > > # check that isotropic is length preserving for vectors of lengths 1--1000 > all(sapply(1:1000, function(x) length(isotropic(identity)(rep(1, x))) == x)) [1] TRUE > > # test that isotropic(identity) is an identity function > all.equal(isotropic(identity)(1:10), 1:10) [1] TRUE > x <- seq(0, 1, length.out=200) > all.equal(isotropic(identity)(x), x) [1] TRUE > > # make sure that isotropic.logjacobian(identity, d.identity) is a 0 function > all.equal(isotropic.logjacobian(identity, d.identity)(1:10), 0) [1] TRUE > > # make sure that 0 as an input does not cause divide-by-zero errors > all.equal(isotropic(identity)(0), 0) [1] TRUE > all.equal(isotropic(identity)(0 * 1:4), rep(0, 4)) [1] TRUE > all.equal(isotropic.logjacobian(identity, d.identity)(0), 0) [1] TRUE > all.equal(isotropic.logjacobian(identity, d.identity)(0 * 1:4), 0) [1] TRUE > > # try isotropic with f(x) = x^2, then we should get > # istropic(f)(x) := |x| * x > f <- function(x) x^2 > all.equal(isotropic(f)(1), 1) [1] TRUE > all.equal(isotropic(f)(c(1, 1)), sqrt(2) * c(1, 1)) [1] TRUE > all.equal(isotropic(f)(c(1, 0, 1)), sqrt(2) * c(1, 0, 1)) [1] TRUE > > # make sure lazy-loading works properly. > g <- function(x) x^2 > g.iso <- isotropic(g) > g <- function(x) x > all.equal(g.iso(2), 2*2) [1] TRUE > mcmc/tests/temp-par.R0000644000176200001440000002227014525021626014211 0ustar liggesusers library(mcmc) set.seed(42) data(foo) attach(foo) out <- glm(y ~ x1 + x2 + x3, family = binomial, x = TRUE) ## IGNORE_RDIFF_BEGIN summary(out) ## IGNORE_RDIFF_END modmat <- out$x models <- cbind(rep(0:1, each = 4), rep(rep(0:1, times = 2), each = 2), rep(0:1, times = 4)) exes <- paste("x", 1:3, sep = "") betas <- NULL for (i in 1:nrow(models)) { inies <- as.logical(models[i, ]) foo <- exes[inies] bar <- paste("y ~", paste(foo, collapse = " + ")) if (! any(inies)) bar <- paste(bar, "1") baz <- glm(as.formula(bar), family = binomial) beta <- rep(0, 4) beta[c(TRUE, inies)] <- baz$coef betas <- rbind(betas, beta) } neighbors <- matrix(FALSE, nrow(models), nrow(models)) for (i in 1:nrow(neighbors)) { for (j in 1:ncol(neighbors)) { foo <- models[i, ] bar <- models[j, ] if (sum(foo != bar) == 1) neighbors[i, j] <- TRUE } } ludfun <- function(state, ...) { stopifnot(is.numeric(state)) stopifnot(length(state) == ncol(models) + 2) stopifnot(length(state) == ncol(models) + 2) icomp <- state[1] stopifnot(icomp == as.integer(icomp)) stopifnot(1 <= icomp && icomp <= nrow(models)) beta <- state[-1] inies <- c(TRUE, as.logical(models[icomp, ])) beta.logl <- beta beta.logl[! inies] <- 0 eta <- as.numeric(modmat %*% beta.logl) logp <- ifelse(eta < 0, eta - log1p(exp(eta)), - log1p(exp(- eta))) logq <- ifelse(eta < 0, - log1p(exp(eta)), - eta - log1p(exp(- eta))) logl <- sum(logp[y == 1]) + sum(logq[y == 0]) val <- logl - sum(beta^2) / 2 return(val) } ludval <- NULL for (i in 1:nrow(models)) ludval <- c(ludval, ludfun(c(i, betas[i, ]))) all(is.finite(ludval)) out <- temper(ludfun, initial = betas, neighbors = neighbors, nbatch = 20, blen = 10, nspac = 5, scale = 0.56789, parallel = TRUE, debug = TRUE) names(out) ### check decision about within-component or jump/swap identical(out$unif.which < 0.5, out$which) identical(out$which, out$proposal[ , 1] == out$coproposal[ , 1]) ### check proposal and coproposal are actually current state or part thereof prop <- out$proposal coprop <- out$coproposal prop.i <- prop[ , 1] coprop.i <- coprop[ , 1] alt.prop <- prop alt.coprop <- coprop for (i in 1:nrow(prop)) { alt.prop[i, ] <- c(prop.i[i], out$state[i, prop.i[i], ]) alt.coprop[i, ] <- c(coprop.i[i], out$state[i, coprop.i[i], ]) } identical(coprop, alt.coprop) identical(prop[! out$which, ], alt.prop[! out$which, ]) identical(prop[out$which, 1], alt.prop[out$which, 1]) ### check hastings ratio calculated correctly foo <- apply(prop, 1, ludfun) fooco <- apply(coprop, 1, ludfun) prop[ , 1] <- out$coproposal[ , 1] coprop[ , 1] <- out$proposal[ , 1] foo.swap <- apply(prop, 1, ludfun) fooco.swap <- apply(coprop, 1, ludfun) log.haste <- ifelse(out$which, foo - fooco, foo.swap + fooco.swap - foo - fooco) all.equal(log.haste, out$log.hastings) ### check hastings rejection decided correctly identical(out$log.hastings >= 0, is.na(out$unif.hastings)) all(out$log.hastings < 0 | out$acceptd) identical(out$acceptd, out$log.hastings >= 0 | out$unif.hastings < exp(out$log.hastings)) ### check acceptance carried out or not (according to decision) correctly before <- out$state after <- before after[- dim(after)[1], , ] <- before[-1, , ] after[dim(after)[1], , ] <- out$final my.after <- before for (i in 1:length(out$acceptd)) { if (out$acceptd[i]) { if (out$which[i]) { j <- out$proposal[i, 1] my.after[i, j, ] <- out$proposal[i, -1] } else { j <- out$proposal[i, 1] k <- out$coproposal[i, 1] my.after[i, j, ] <- out$coproposal[i, -1] my.after[i, k, ] <- out$proposal[i, -1] } } } identical(after, my.after) ### check within-component proposal my.coproposal.within <- out$coproposal[out$which, ] proposal.within <- out$proposal[out$which, ] my.z <- out$norm[out$which, ] my.proposal.within <- my.coproposal.within my.proposal.within[ , -1] <- my.coproposal.within[ , -1] + out$scale * my.z all.equal(proposal.within, my.proposal.within) my.unif.choose <- out$unif.choose[out$which, 1] my.i <- floor(nrow(models) * my.unif.choose) + 1 all(1 <= my.i & my.i <= nrow(models)) identical(my.i, my.coproposal.within[ , 1]) ### check swap proposal coproposal.swap <- out$coproposal[! out$which, ] proposal.swap <- out$proposal[! out$which, ] unif.choose.swap <- out$unif.choose[! out$which, ] my.i <- floor(nrow(models) * unif.choose.swap[ , 1]) + 1 nneighbors <- apply(out$neighbors, 1, sum) my.nneighbors <- nneighbors[my.i] my.k <- floor(my.nneighbors * unif.choose.swap[ , 2]) + 1 my.j <- my.k foo <- seq(1, ncol(out$neighbors)) for (i in seq(along = my.j)) { my.j[i] <- (foo[out$neighbors[my.i[i], ]])[my.k[i]] } identical(coproposal.swap[ , 1], my.i) identical(proposal.swap[ , 1], my.j) ### check standard normal and uniform random numbers are as purported save.Random.seed <- .Random.seed .Random.seed <- out$initial.seed nx <- ncol(out$initial) niter <- out$nbatch * out$blen * out$nspac my.norm <- matrix(NA, nrow = nrow(out$norm), ncol = ncol(out$norm)) my.unif.which <- rep(NA, niter) my.unif.hastings <- rep(NA, niter) my.unif.choose <- matrix(NA, niter, 2) for (iiter in 1:niter) { my.unif.which[iiter] <- runif(1) if (out$which[iiter]) { my.unif.choose[iiter, 1] <- runif(1) my.norm[iiter, ] <- rnorm(nx) if (out$log.hastings[iiter] < 0) my.unif.hastings[iiter] <- runif(1) } else { my.unif.choose[iiter, ] <- runif(2) if (out$log.hastings[iiter] < 0) my.unif.hastings[iiter] <- runif(1) } } identical(my.norm, out$norm) identical(my.unif.which, out$unif.which) identical(my.unif.hastings, out$unif.hastings) identical(my.unif.choose, out$unif.choose) .Random.seed <- save.Random.seed ### check batch means foo <- after[seq(1, niter) %% out$nspac == 0, , ] foo <- array(as.vector(foo), dim = c(out$blen, out$nbatch, dim(foo)[2:3])) foo <- apply(foo, c(2, 3, 4), mean) all.equal(foo, out$batch) ### check acceptance rates accept.within <- out$acceptd[out$which] my.i.within <- out$coproposal[out$which, 1] my.acceptx <- as.vector(sapply(split(accept.within, my.i.within), mean)) identical(my.acceptx, out$acceptx) accept.swap <- out$acceptd[! out$which] my.i.swap <- out$coproposal[! out$which, 1] my.j.swap <- out$proposal[! out$which, 1] nmodel <- nrow(out$neighbors) my.accepti <- matrix(NA, nmodel, nmodel) for (i in 1:nmodel) { for (j in 1:nmodel) { if (out$neighbors[i, j]) { my.accepti[i, j] <- mean(accept.swap[my.i.swap == i & my.j.swap == j]) } } } identical(my.accepti, out$accepti) ### check scale vector nx <- ncol(models) + 1 newscale <- rnorm(nx, 0.5, 0.1) out <- temper(out, scale = newscale) my.coproposal.within <- out$coproposal[out$which, ] proposal.within <- out$proposal[out$which, ] my.z <- out$norm[out$which, ] my.proposal.within <- my.coproposal.within my.proposal.within[ , -1] <- my.coproposal.within[ , -1] + sweep(my.z, 2, out$scale, "*") all.equal(proposal.within, my.proposal.within) ### check scale matrix matscale <- matrix(rnorm(nx * nx, 0.0, 0.1), nx, nx) diag(matscale) <- 0.56789 out <- temper(out, scale = matscale) my.coproposal.within <- out$coproposal[out$which, ] proposal.within <- out$proposal[out$which, ] my.z <- out$norm[out$which, ] my.proposal.within <- my.coproposal.within my.proposal.within[ , -1] <- my.coproposal.within[ , -1] + my.z %*% t(out$scale) all.equal(proposal.within, my.proposal.within) ### check scale list lisztscale <- list(0.56789, newscale, matscale, matscale, newscale, 0.98765, 0.98765, newscale) out <- temper(out, scale = lisztscale) my.coproposal.within <- out$coproposal[out$which, ] proposal.within <- out$proposal[out$which, ] my.z <- out$norm[out$which, ] my.proposal.within <- my.coproposal.within for (iiter in 1:nrow(my.z)) { my.i <- my.coproposal.within[iiter, 1] my.scale <- out$scale[[my.i]] if (is.matrix(my.scale)) { my.proposal.within[iiter, -1] <- my.coproposal.within[iiter, -1] + my.z[iiter, , drop = FALSE] %*% t(my.scale) } else { my.proposal.within[iiter, -1] <- my.coproposal.within[iiter, -1] + my.z[iiter, ] * my.scale } } all.equal(proposal.within, my.proposal.within) ### check outfun outfun <- function(state, icomp, ...) { stopifnot(is.matrix(state)) stopifnot(is.numeric(state)) nx <- ncol(betas) ncomp <- nrow(betas) stopifnot(ncol(state) == nx) stopifnot(nrow(state) == ncomp) stopifnot(1 <= icomp && icomp <= ncomp) foo <- state[icomp, ] bar <- foo^2 return(c(foo, bar)) } out <- temper(out, outfun = outfun, icomp = 4) before <- out$state after <- before after[- dim(after)[1], , ] <- before[-1, , ] after[dim(after)[1], , ] <- out$final outies <- apply(after, 1, outfun, icomp = 4) outies <- t(outies) foo <- outies[seq(1, niter) %% out$nspac == 0, ] foo <- array(as.vector(foo), dim = c(out$blen, out$nbatch, dim(foo)[2])) foo <- apply(foo, c(2, 3), mean) all.equal(foo, out$batch) mcmc/tests/temp-par-witch.Rout.save0000644000176200001440000000725613636316205017023 0ustar liggesusers R version 3.3.3 (2017-03-06) -- "Another Canoe" Copyright (C) 2017 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > > if ((! exists("DEBUG")) || (! identical(DEBUG, TRUE))) DEBUG <- FALSE > > library(mcmc) > > options(digits=4) # avoid rounding differences > > set.seed(42) > > save.initial.seed <- .Random.seed > > d <- 3 > witch.which <- 1 - (1 / 2)^(1 / d) * (1 / 4)^(seq(0, 5) / d) > witch.which [1] 0.2063 0.5000 0.6850 0.8016 0.8750 0.9213 > > ncomp <- length(witch.which) > > neighbors <- matrix(FALSE, ncomp, ncomp) > neighbors[row(neighbors) == col(neighbors) + 1] <- TRUE > neighbors[row(neighbors) == col(neighbors) - 1] <- TRUE > neighbors[row(neighbors) == col(neighbors) + 2] <- TRUE > neighbors[row(neighbors) == col(neighbors) - 2] <- TRUE > > ludfun <- function(state) { + stopifnot(is.numeric(state)) + stopifnot(length(state) == d + 1) + icomp <- state[1] + stopifnot(icomp == as.integer(icomp)) + stopifnot(1 <= icomp && icomp <= ncomp) + theta <- state[-1] + if (any(abs(theta) > 1.0)) return(-Inf) + bnd <- witch.which[icomp] + if(bnd >= 1.0) + stop(sprintf("witch.which[%d] >= 1.0", icomp)) + if(bnd <= 0.0) + stop(sprintf("witch.which[%d] <= 0.0", icomp)) + if (all(abs(theta) > bnd)) + return(- (d + 1) * log(2) - d * log(1 - bnd)) + return(- (d + 1) * log(2) - log1p(- (1 - bnd)^d)) + } > > thetas <- matrix(0, ncomp, d) > out <- temper(ludfun, initial = thetas, neighbors = neighbors, nbatch = 50, + blen = 13, nspac = 7, scale = 0.3456789, parallel = TRUE, debug = DEBUG) > > names(out) [1] "lud" "neighbors" "nbatch" "blen" "nspac" [6] "scale" "outfun" "debug" "parallel" "initial.seed" [11] "final.seed" "time" "batch" "acceptx" "accepti" [16] "initial" "final" > > out$acceptx [1] 0.6336 0.4974 0.3245 0.6022 0.6130 0.5914 > > out$accepti [,1] [,2] [,3] [,4] [,5] [,6] [1,] NA 0.7051 0.5497 NA NA NA [2,] 0.7523 NA 0.5547 0.6288 NA NA [3,] 0.5794 0.5865 NA 0.5309 0.5476 NA [4,] NA 0.6667 0.5506 NA 0.8272 0.6837 [5,] NA NA 0.5439 0.8926 NA 0.8374 [6,] NA NA NA 0.8391 0.9023 NA > > ### check that have prob 1 / 2 for corners > > outfun <- function(state) { + stopifnot(is.matrix(state)) + ncomp <- nrow(state) + d <- ncol(state) + foo <- sweep(abs(state), 1, witch.which) + bar <- apply(foo > 0, 1, all) + return(as.numeric(bar)) + } > > out2 <- temper(out, outfun = outfun) > > colMeans(out2$batch) [1] 0.54923 0.40923 0.39538 0.09692 0.12923 0.60000 > apply(out2$batch, 2, sd) / sqrt(out$nbatch) [1] 0.03482 0.04817 0.05464 0.02856 0.02113 0.05131 > > ### try again > > out3 <- temper(out2, blen = 103) > > foo <- cbind(colMeans(out3$batch), + apply(out3$batch, 2, sd) / sqrt(out$nbatch)) > colnames(foo) <- c("means", "MCSE") > foo means MCSE [1,] 0.5231 0.01390 [2,] 0.5361 0.02213 [3,] 0.4905 0.03961 [4,] 0.5652 0.04909 [5,] 0.4056 0.05107 [6,] 0.2450 0.05108 > > > proc.time() user system elapsed 1.868 0.012 1.874 mcmc/tests/logitbat.Rout.save0000644000176200001440000001001314524773675015767 0ustar liggesusers R version 4.3.1 (2023-06-16) -- "Beagle Scouts" Copyright (C) 2023 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > > # test batching (blen) > > epsilon <- 1e-15 > > library(mcmc) > > suppressWarnings(RNGkind("Marsaglia-Multicarry")) > set.seed(42) > > n <- 100 > rho <- 0.5 > beta0 <- 0.25 > beta1 <- 1 > beta2 <- 0.5 > > x1 <- rnorm(n) > x2 <- rho * x1 + sqrt(1 - rho^2) * rnorm(n) > eta <- beta0 + beta1 * x1 + beta2 * x2 > p <- 1 / (1 + exp(- eta)) > y <- as.numeric(runif(n) < p) > > out <- glm(y ~ x1 + x2, family = binomial()) > > logl <- function(beta) { + if (length(beta) != 3) stop("length(beta) != 3") + beta0 <- beta[1] + beta1 <- beta[2] + beta2 <- beta[3] + eta <- beta0 + beta1 * x1 + beta2 * x2 + p <- exp(eta) / (1 + exp(eta)) + return(sum(log(p[y == 1])) + sum(log(1 - p[y == 0]))) + } > > out.metro <- metrop(logl, coefficients(out), 1e3, scale = 0.01) > out.metro$accept [1] 0.982 > > out.metro <- metrop(out.metro, scale = 0.1) > out.metro$accept [1] 0.795 > > out.metro <- metrop(out.metro, scale = 0.5) > out.metro$accept [1] 0.264 > > apply(out.metro$batch, 2, mean) [1] 0.06080257 1.42304941 0.52634149 > > out.metro <- metrop(logl, as.numeric(coefficients(out)), 1e2, + scale = 0.5, debug = TRUE, blen = 5) > > niter <- out.metro$nbatch * out.metro$blen * out.metro$nspac > niter == nrow(out.metro$current) [1] TRUE > niter == nrow(out.metro$proposal) [1] TRUE > all(out.metro$current[1, ] == out.metro$initial) [1] TRUE > all(out.metro$current[niter, ] == out.metro$final) | + all(out.metro$proposal[niter, ] == out.metro$final) [1] TRUE > > .Random.seed <- out.metro$initial.seed > d <- ncol(out.metro$proposal) > n <- nrow(out.metro$proposal) > my.proposal <- matrix(NA, n, d) > my.u <- double(n) > ska <- out.metro$scale > for (i in 1:n) { + my.proposal[i, ] <- out.metro$current[i, ] + ska * rnorm(d) + if (is.na(out.metro$u[i])) { + my.u[i] <- NA + } else { + my.u[i] <- runif(1) + } + } > max(abs(out.metro$proposal - my.proposal)) < epsilon [1] TRUE > all(is.na(out.metro$u) == is.na(my.u)) [1] TRUE > all(out.metro$u[!is.na(out.metro$u)] == my.u[!is.na(my.u)]) [1] TRUE > > my.curr.log.green <- apply(out.metro$current, 1, logl) > my.prop.log.green <- apply(out.metro$proposal, 1, logl) > all(is.na(out.metro$u) == (my.prop.log.green > my.curr.log.green)) [1] TRUE > foo <- my.prop.log.green - my.curr.log.green > max(abs(foo - out.metro$log.green)) < epsilon [1] TRUE > > my.accept <- is.na(my.u) | my.u < exp(foo) > sum(my.accept) == round(n * out.metro$accept) [1] TRUE > if (my.accept[niter]) { + all(out.metro$proposal[niter, ] == out.metro$final) + } else { + all(out.metro$current[niter, ] == out.metro$final) + } [1] TRUE > > my.current <- out.metro$current > my.current[my.accept, ] <- my.proposal[my.accept, ] > my.current <- rbind(out.metro$initial, my.current[- niter, ]) > max(abs(out.metro$current - my.current)) < epsilon [1] TRUE > > my.path <- matrix(NA, n, d) > my.path[my.accept, ] <- out.metro$proposal[my.accept, ] > my.path[! my.accept, ] <- out.metro$current[! my.accept, ] > nspac <- out.metro$nspac > > my.path <- my.path[seq(nspac, niter, by = nspac), ] > > foom <- array(as.vector(t(my.path)), c(d, out.metro$blen, out.metro$nbatch)) > boom <- t(apply(foom, c(1, 3), mean)) > > all(dim(boom) == dim(out.metro$batch)) [1] TRUE > max(abs(boom - out.metro$batch)) < epsilon [1] TRUE > > > proc.time() user system elapsed 0.331 0.022 0.345 mcmc/tests/logitnegidx.R0000644000176200001440000000601114524775113015002 0ustar liggesusers # test outfun (negative index vector) epsilon <- 1e-15 library(mcmc) suppressWarnings(RNGkind("Marsaglia-Multicarry")) set.seed(42) n <- 100 rho <- 0.5 beta0 <- 0.25 beta1 <- 1 beta2 <- 0.5 x1 <- rnorm(n) x2 <- rho * x1 + sqrt(1 - rho^2) * rnorm(n) eta <- beta0 + beta1 * x1 + beta2 * x2 p <- 1 / (1 + exp(- eta)) y <- as.numeric(runif(n) < p) out <- glm(y ~ x1 + x2, family = binomial()) logl <- function(beta) { if (length(beta) != 3) stop("length(beta) != 3") beta0 <- beta[1] beta1 <- beta[2] beta2 <- beta[3] eta <- beta0 + beta1 * x1 + beta2 * x2 p <- exp(eta) / (1 + exp(eta)) return(sum(log(p[y == 1])) + sum(log(1 - p[y == 0]))) } out.metro <- metrop(logl, coefficients(out), 1e3, scale = 0.01) out.metro$accept out.metro <- metrop(out.metro, scale = 0.1) out.metro$accept out.metro <- metrop(out.metro, scale = 0.5) out.metro$accept apply(out.metro$batch, 2, mean) out.metro <- metrop(logl, as.numeric(coefficients(out)), 1e2, scale = 0.5, debug = TRUE, outfun = - 2) niter <- out.metro$nbatch * out.metro$blen * out.metro$nspac niter == nrow(out.metro$current) niter == nrow(out.metro$proposal) all(out.metro$current[1, ] == out.metro$initial) all(out.metro$current[niter, ] == out.metro$final) | all(out.metro$proposal[niter, ] == out.metro$final) .Random.seed <- out.metro$initial.seed d <- ncol(out.metro$proposal) n <- nrow(out.metro$proposal) my.proposal <- matrix(NA, n, d) my.u <- double(n) ska <- out.metro$scale for (i in 1:n) { my.proposal[i, ] <- out.metro$current[i, ] + ska * rnorm(d) if (is.na(out.metro$u[i])) { my.u[i] <- NA } else { my.u[i] <- runif(1) } } max(abs(out.metro$proposal - my.proposal)) < epsilon all(is.na(out.metro$u) == is.na(my.u)) all(out.metro$u[!is.na(out.metro$u)] == my.u[!is.na(my.u)]) my.curr.log.green <- apply(out.metro$current, 1, logl) my.prop.log.green <- apply(out.metro$proposal, 1, logl) all(is.na(out.metro$u) == (my.prop.log.green > my.curr.log.green)) foo <- my.prop.log.green - my.curr.log.green max(abs(foo - out.metro$log.green)) < epsilon my.accept <- is.na(my.u) | my.u < exp(foo) sum(my.accept) == round(n * out.metro$accept) if (my.accept[niter]) { all(out.metro$proposal[niter, ] == out.metro$final) } else { all(out.metro$current[niter, ] == out.metro$final) } my.current <- out.metro$current my.current[my.accept, ] <- my.proposal[my.accept, ] my.current <- rbind(out.metro$initial, my.current[- niter, ]) max(abs(out.metro$current - my.current)) < epsilon my.path <- matrix(NA, n, d) my.path[my.accept, ] <- out.metro$proposal[my.accept, ] my.path[! my.accept, ] <- out.metro$current[! my.accept, ] nspac <- out.metro$nspac my.path <- my.path[seq(nspac, niter, by = nspac), ] fred <- my.path[ , out.metro$outfun] k <- ncol(fred) foom <- array(as.vector(t(fred)), c(k, out.metro$blen, out.metro$nbatch)) boom <- t(apply(foom, c(1, 3), mean)) all(dim(boom) == dim(out.metro$batch)) max(abs(boom - out.metro$batch)) < epsilon mcmc/tests/logitnegidx.Rout.save0000644000176200001440000001013114524775327016474 0ustar liggesusers R version 4.3.1 (2023-06-16) -- "Beagle Scouts" Copyright (C) 2023 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > > # test outfun (negative index vector) > > epsilon <- 1e-15 > > library(mcmc) > > suppressWarnings(RNGkind("Marsaglia-Multicarry")) > set.seed(42) > > n <- 100 > rho <- 0.5 > beta0 <- 0.25 > beta1 <- 1 > beta2 <- 0.5 > > x1 <- rnorm(n) > x2 <- rho * x1 + sqrt(1 - rho^2) * rnorm(n) > eta <- beta0 + beta1 * x1 + beta2 * x2 > p <- 1 / (1 + exp(- eta)) > y <- as.numeric(runif(n) < p) > > out <- glm(y ~ x1 + x2, family = binomial()) > > logl <- function(beta) { + if (length(beta) != 3) stop("length(beta) != 3") + beta0 <- beta[1] + beta1 <- beta[2] + beta2 <- beta[3] + eta <- beta0 + beta1 * x1 + beta2 * x2 + p <- exp(eta) / (1 + exp(eta)) + return(sum(log(p[y == 1])) + sum(log(1 - p[y == 0]))) + } > > out.metro <- metrop(logl, coefficients(out), 1e3, scale = 0.01) > out.metro$accept [1] 0.982 > > out.metro <- metrop(out.metro, scale = 0.1) > out.metro$accept [1] 0.795 > > out.metro <- metrop(out.metro, scale = 0.5) > out.metro$accept [1] 0.264 > > apply(out.metro$batch, 2, mean) [1] 0.06080257 1.42304941 0.52634149 > > out.metro <- metrop(logl, as.numeric(coefficients(out)), 1e2, + scale = 0.5, debug = TRUE, outfun = - 2) > > niter <- out.metro$nbatch * out.metro$blen * out.metro$nspac > niter == nrow(out.metro$current) [1] TRUE > niter == nrow(out.metro$proposal) [1] TRUE > all(out.metro$current[1, ] == out.metro$initial) [1] TRUE > all(out.metro$current[niter, ] == out.metro$final) | + all(out.metro$proposal[niter, ] == out.metro$final) [1] TRUE > > .Random.seed <- out.metro$initial.seed > d <- ncol(out.metro$proposal) > n <- nrow(out.metro$proposal) > my.proposal <- matrix(NA, n, d) > my.u <- double(n) > ska <- out.metro$scale > for (i in 1:n) { + my.proposal[i, ] <- out.metro$current[i, ] + ska * rnorm(d) + if (is.na(out.metro$u[i])) { + my.u[i] <- NA + } else { + my.u[i] <- runif(1) + } + } > max(abs(out.metro$proposal - my.proposal)) < epsilon [1] TRUE > all(is.na(out.metro$u) == is.na(my.u)) [1] TRUE > all(out.metro$u[!is.na(out.metro$u)] == my.u[!is.na(my.u)]) [1] TRUE > > my.curr.log.green <- apply(out.metro$current, 1, logl) > my.prop.log.green <- apply(out.metro$proposal, 1, logl) > all(is.na(out.metro$u) == (my.prop.log.green > my.curr.log.green)) [1] TRUE > foo <- my.prop.log.green - my.curr.log.green > max(abs(foo - out.metro$log.green)) < epsilon [1] TRUE > > my.accept <- is.na(my.u) | my.u < exp(foo) > sum(my.accept) == round(n * out.metro$accept) [1] TRUE > if (my.accept[niter]) { + all(out.metro$proposal[niter, ] == out.metro$final) + } else { + all(out.metro$current[niter, ] == out.metro$final) + } [1] TRUE > > my.current <- out.metro$current > my.current[my.accept, ] <- my.proposal[my.accept, ] > my.current <- rbind(out.metro$initial, my.current[- niter, ]) > max(abs(out.metro$current - my.current)) < epsilon [1] TRUE > > my.path <- matrix(NA, n, d) > my.path[my.accept, ] <- out.metro$proposal[my.accept, ] > my.path[! my.accept, ] <- out.metro$current[! my.accept, ] > nspac <- out.metro$nspac > > my.path <- my.path[seq(nspac, niter, by = nspac), ] > > fred <- my.path[ , out.metro$outfun] > k <- ncol(fred) > > foom <- array(as.vector(t(fred)), c(k, out.metro$blen, out.metro$nbatch)) > boom <- t(apply(foom, c(1, 3), mean)) > > all(dim(boom) == dim(out.metro$batch)) [1] TRUE > max(abs(boom - out.metro$batch)) < epsilon [1] TRUE > > > proc.time() user system elapsed 0.301 0.027 0.321 mcmc/tests/logitmat.Rout.save0000644000176200001440000001135714524775305016006 0ustar liggesusers R version 4.3.1 (2023-06-16) -- "Beagle Scouts" Copyright (C) 2023 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > > # test matrix scaling > > epsilon <- 1e-15 > > library(mcmc) > > suppressWarnings(RNGkind("Marsaglia-Multicarry")) > set.seed(42) > > n <- 100 > rho <- 0.5 > beta0 <- 0.25 > beta1 <- 1 > beta2 <- 0.5 > > x1 <- rnorm(n) > x2 <- rho * x1 + sqrt(1 - rho^2) * rnorm(n) > eta <- beta0 + beta1 * x1 + beta2 * x2 > p <- 1 / (1 + exp(- eta)) > y <- as.numeric(runif(n) < p) > > out <- glm(y ~ x1 + x2, family = binomial()) > > logl <- function(beta) { + if (length(beta) != 3) stop("length(beta) != 3") + beta0 <- beta[1] + beta1 <- beta[2] + beta2 <- beta[3] + eta <- beta0 + beta1 * x1 + beta2 * x2 + p <- exp(eta) / (1 + exp(eta)) + return(sum(log(p[y == 1])) + sum(log(1 - p[y == 0]))) + } > > out.metro <- metrop(logl, coefficients(out), 1e3, scale = 0.01) > out.metro$accept [1] 0.982 > > out.metro <- metrop(out.metro, scale = 0.1) > out.metro$accept [1] 0.795 > > out.metro <- metrop(out.metro, scale = 0.5) > out.metro$accept [1] 0.264 > > apply(out.metro$batch, 2, mean) [1] 0.06080257 1.42304941 0.52634149 > fred <- var(out.metro$batch) > sally <- t(chol(fred)) > max(abs(fred - sally %*% t(sally))) < epsilon [1] TRUE > > out.metro <- metrop(out.metro, scale = sally) > out.metro$accept [1] 0.451 > > out.metro <- metrop(logl, as.numeric(coefficients(out)), 1e2, + scale = sally, debug = TRUE) > names(out.metro) [1] "accept" "batch" "initial" "final" "accept.batch" [6] "current" "proposal" "log.green" "u" "z" [11] "debug.accept" "initial.seed" "final.seed" "time" "lud" [16] "nbatch" "blen" "nspac" "scale" "debug" > > niter <- out.metro$nbatch * out.metro$blen * out.metro$nspac > niter == nrow(out.metro$current) [1] TRUE > niter == nrow(out.metro$proposal) [1] TRUE > all(out.metro$current[1, ] == out.metro$initial) [1] TRUE > all(out.metro$current[niter, ] == out.metro$final) | + all(out.metro$proposal[niter, ] == out.metro$final) [1] TRUE > > .Random.seed <- out.metro$initial.seed > d <- ncol(out.metro$proposal) > n <- nrow(out.metro$proposal) > my.proposal <- matrix(NA, n, d) > my.u <- double(n) > my.z <- matrix(NA, n, d) > ska <- out.metro$scale > for (i in 1:n) { + zed <- rnorm(d) + my.proposal[i, ] <- out.metro$current[i, ] + ska %*% zed + if (is.na(out.metro$u[i])) { + my.u[i] <- NA + } else { + my.u[i] <- runif(1) + } + my.z[i, ] <- zed + } > max(abs(out.metro$proposal - my.proposal)) < epsilon [1] TRUE > > all(is.na(out.metro$u) == is.na(my.u)) [1] TRUE > all(out.metro$u[!is.na(out.metro$u)] == my.u[!is.na(my.u)]) [1] TRUE > identical(out.metro$z, my.z) [1] TRUE > > my.curr.log.green <- apply(out.metro$current, 1, logl) > my.prop.log.green <- apply(out.metro$proposal, 1, logl) > all(is.na(out.metro$u) == (my.prop.log.green > my.curr.log.green)) [1] TRUE > foo <- my.prop.log.green - my.curr.log.green > max(abs(foo - out.metro$log.green)) < epsilon [1] TRUE > > my.accept <- is.na(my.u) | my.u < exp(foo) > sum(my.accept) == round(n * out.metro$accept) [1] TRUE > if (my.accept[niter]) { + all(out.metro$proposal[niter, ] == out.metro$final) + } else { + all(out.metro$current[niter, ] == out.metro$final) + } [1] TRUE > identical(my.accept, out.metro$debug.accept) [1] TRUE > > my.current <- out.metro$current > my.current[my.accept, ] <- my.proposal[my.accept, ] > my.current <- rbind(out.metro$initial, my.current[- niter, ]) > max(abs(out.metro$current - my.current)) < epsilon [1] TRUE > > my.path <- matrix(NA, n, d) > my.path[my.accept, ] <- out.metro$proposal[my.accept, ] > my.path[! my.accept, ] <- out.metro$current[! my.accept, ] > nspac <- out.metro$nspac > > my.path <- my.path[seq(nspac, niter, by = nspac), ] > > fred <- my.path > k <- ncol(fred) > > foom <- array(as.vector(t(fred)), c(k, out.metro$blen, out.metro$nbatch)) > boom <- t(apply(foom, c(1, 3), mean)) > > all(dim(boom) == dim(out.metro$batch)) [1] TRUE > max(abs(boom - out.metro$batch)) < epsilon [1] TRUE > > > proc.time() user system elapsed 0.321 0.008 0.321 mcmc/tests/morphtoo.R0000644000176200001440000000233713636316205014337 0ustar liggesusers library(mcmc) x <- seq(0, 10, length = 10001) ### sub-exponentially light transformation b <- 0.5 fsub <- morph(b = b) y <- unlist(Map(fsub$inverse, x)) myfsub <- function(x) ifelse(x > 1 / b, exp(b * x) - exp(1) / 3, (x * b)^3 * exp(1) / 6 + x * b * exp(1) / 2) y2 <- myfsub(x) all.equal(y, y2, tolerance = 1e-14) z <- unlist(Map(fsub$transform, y)) all.equal(z, x, tolerance = 1e-14) ### exponentially light transformation r <- 5 p <- 3 fp3 <- morph(r = r) y <- unlist(Map(fp3$inverse, x)) myfp3 <- function(x) ifelse(x < r, x, x + (x - r)^p) y2 <- myfp3(x) all.equal(y, y2, tolerance = 1e-14) z <- unlist(Map(fp3$transform, y)) all.equal(z, x, tolerance = 1e-12) ### both together fboth <- morph(b = b, r = r) y <- unlist(Map(fboth$inverse, x)) y2 <- myfsub(myfp3(x)) all.equal(y, y2, tolerance = 1e-14) z <- unlist(Map(fboth$transform, y)) all.equal(z, x, tolerance = 1e-12) ### exponentially light transformation with p != 3 r <- 5 p <- 2.2 fpo <- morph(r = r, p = p) y <- unlist(Map(fpo$inverse, x)) myfpo <- function(x) ifelse(x < r, x, x + (x - r)^p) y2 <- myfpo(x) all.equal(y, y2, tolerance = 1e-14) z <- unlist(Map(fpo$transform, y)) all.equal(z, x, tolerance = 1e-14) mcmc/tests/logitbat.R0000644000176200001440000000570114524751714014300 0ustar liggesusers # test batching (blen) epsilon <- 1e-15 library(mcmc) suppressWarnings(RNGkind("Marsaglia-Multicarry")) set.seed(42) n <- 100 rho <- 0.5 beta0 <- 0.25 beta1 <- 1 beta2 <- 0.5 x1 <- rnorm(n) x2 <- rho * x1 + sqrt(1 - rho^2) * rnorm(n) eta <- beta0 + beta1 * x1 + beta2 * x2 p <- 1 / (1 + exp(- eta)) y <- as.numeric(runif(n) < p) out <- glm(y ~ x1 + x2, family = binomial()) logl <- function(beta) { if (length(beta) != 3) stop("length(beta) != 3") beta0 <- beta[1] beta1 <- beta[2] beta2 <- beta[3] eta <- beta0 + beta1 * x1 + beta2 * x2 p <- exp(eta) / (1 + exp(eta)) return(sum(log(p[y == 1])) + sum(log(1 - p[y == 0]))) } out.metro <- metrop(logl, coefficients(out), 1e3, scale = 0.01) out.metro$accept out.metro <- metrop(out.metro, scale = 0.1) out.metro$accept out.metro <- metrop(out.metro, scale = 0.5) out.metro$accept apply(out.metro$batch, 2, mean) out.metro <- metrop(logl, as.numeric(coefficients(out)), 1e2, scale = 0.5, debug = TRUE, blen = 5) niter <- out.metro$nbatch * out.metro$blen * out.metro$nspac niter == nrow(out.metro$current) niter == nrow(out.metro$proposal) all(out.metro$current[1, ] == out.metro$initial) all(out.metro$current[niter, ] == out.metro$final) | all(out.metro$proposal[niter, ] == out.metro$final) .Random.seed <- out.metro$initial.seed d <- ncol(out.metro$proposal) n <- nrow(out.metro$proposal) my.proposal <- matrix(NA, n, d) my.u <- double(n) ska <- out.metro$scale for (i in 1:n) { my.proposal[i, ] <- out.metro$current[i, ] + ska * rnorm(d) if (is.na(out.metro$u[i])) { my.u[i] <- NA } else { my.u[i] <- runif(1) } } max(abs(out.metro$proposal - my.proposal)) < epsilon all(is.na(out.metro$u) == is.na(my.u)) all(out.metro$u[!is.na(out.metro$u)] == my.u[!is.na(my.u)]) my.curr.log.green <- apply(out.metro$current, 1, logl) my.prop.log.green <- apply(out.metro$proposal, 1, logl) all(is.na(out.metro$u) == (my.prop.log.green > my.curr.log.green)) foo <- my.prop.log.green - my.curr.log.green max(abs(foo - out.metro$log.green)) < epsilon my.accept <- is.na(my.u) | my.u < exp(foo) sum(my.accept) == round(n * out.metro$accept) if (my.accept[niter]) { all(out.metro$proposal[niter, ] == out.metro$final) } else { all(out.metro$current[niter, ] == out.metro$final) } my.current <- out.metro$current my.current[my.accept, ] <- my.proposal[my.accept, ] my.current <- rbind(out.metro$initial, my.current[- niter, ]) max(abs(out.metro$current - my.current)) < epsilon my.path <- matrix(NA, n, d) my.path[my.accept, ] <- out.metro$proposal[my.accept, ] my.path[! my.accept, ] <- out.metro$current[! my.accept, ] nspac <- out.metro$nspac my.path <- my.path[seq(nspac, niter, by = nspac), ] foom <- array(as.vector(t(my.path)), c(d, out.metro$blen, out.metro$nbatch)) boom <- t(apply(foom, c(1, 3), mean)) all(dim(boom) == dim(out.metro$batch)) max(abs(boom - out.metro$batch)) < epsilon mcmc/tests/logitvec.R0000644000176200001440000000611714524775431014313 0ustar liggesusers # test vector (diag(foo)) scaling epsilon <- 1e-15 library(mcmc) suppressWarnings(RNGkind("Marsaglia-Multicarry")) set.seed(42) n <- 100 rho <- 0.5 beta0 <- 0.25 beta1 <- 1 beta2 <- 0.5 x1 <- rnorm(n) x2 <- rho * x1 + sqrt(1 - rho^2) * rnorm(n) eta <- beta0 + beta1 * x1 + beta2 * x2 p <- 1 / (1 + exp(- eta)) y <- as.numeric(runif(n) < p) out <- glm(y ~ x1 + x2, family = binomial()) logl <- function(beta) { if (length(beta) != 3) stop("length(beta) != 3") beta0 <- beta[1] beta1 <- beta[2] beta2 <- beta[3] eta <- beta0 + beta1 * x1 + beta2 * x2 p <- exp(eta) / (1 + exp(eta)) return(sum(log(p[y == 1])) + sum(log(1 - p[y == 0]))) } out.metro <- metrop(logl, coefficients(out), 1e3, scale = 0.01) out.metro$accept out.metro <- metrop(out.metro, scale = 0.1) out.metro$accept out.metro <- metrop(out.metro, scale = 0.5) out.metro$accept apply(out.metro$batch, 2, mean) sally <- apply(out.metro$batch, 2, sd) out.metro <- metrop(out.metro, scale = sally) out.metro$accept out.metro <- metrop(logl, as.numeric(coefficients(out)), 1e2, scale = sally, debug = TRUE) niter <- out.metro$nbatch * out.metro$blen * out.metro$nspac niter == nrow(out.metro$current) niter == nrow(out.metro$proposal) all(out.metro$current[1, ] == out.metro$initial) all(out.metro$current[niter, ] == out.metro$final) | all(out.metro$proposal[niter, ] == out.metro$final) .Random.seed <- out.metro$initial.seed d <- ncol(out.metro$proposal) n <- nrow(out.metro$proposal) my.proposal <- matrix(NA, n, d) my.u <- double(n) ska <- out.metro$scale for (i in 1:n) { my.proposal[i, ] <- out.metro$current[i, ] + ska * rnorm(d) if (is.na(out.metro$u[i])) { my.u[i] <- NA } else { my.u[i] <- runif(1) } } max(abs(out.metro$proposal - my.proposal)) < epsilon all(is.na(out.metro$u) == is.na(my.u)) all(out.metro$u[!is.na(out.metro$u)] == my.u[!is.na(my.u)]) my.curr.log.green <- apply(out.metro$current, 1, logl) my.prop.log.green <- apply(out.metro$proposal, 1, logl) all(is.na(out.metro$u) == (my.prop.log.green > my.curr.log.green)) foo <- my.prop.log.green - my.curr.log.green max(abs(foo - out.metro$log.green)) < epsilon my.accept <- is.na(my.u) | my.u < exp(foo) sum(my.accept) == round(n * out.metro$accept) if (my.accept[niter]) { all(out.metro$proposal[niter, ] == out.metro$final) } else { all(out.metro$current[niter, ] == out.metro$final) } my.current <- out.metro$current my.current[my.accept, ] <- my.proposal[my.accept, ] my.current <- rbind(out.metro$initial, my.current[- niter, ]) max(abs(out.metro$current - my.current)) < epsilon my.path <- matrix(NA, n, d) my.path[my.accept, ] <- out.metro$proposal[my.accept, ] my.path[! my.accept, ] <- out.metro$current[! my.accept, ] nspac <- out.metro$nspac my.path <- my.path[seq(nspac, niter, by = nspac), ] fred <- my.path k <- ncol(fred) foom <- array(as.vector(t(fred)), c(k, out.metro$blen, out.metro$nbatch)) boom <- t(apply(foom, c(1, 3), mean)) all(dim(boom) == dim(out.metro$batch)) max(abs(boom - out.metro$batch)) < epsilon mcmc/tests/circle.Rout.save0000644000176200001440000000570014524770002015407 0ustar liggesusers R version 4.3.1 (2023-06-16) -- "Beagle Scouts" Copyright (C) 2023 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > > epsilon <- 1e-15 > > library(mcmc) > > suppressWarnings(RNGkind("Marsaglia-Multicarry")) > set.seed(42) > > d <- 5 > > logh <- function(x) { + if (! is.numeric(x)) stop("x not numeric") + if (length(x) != d) stop("length(x) != d") + fred <- 1 - sum(x^2) + if (fred > 0) return(log(fred)) else return(-Inf) + } > > out.metro <- metrop(logh, rep(0, d), 1e3, scale = 0.01) > out.metro$accept [1] 0.979 > > out.metro <- metrop(out.metro, scale = 0.1) > out.metro$accept [1] 0.72 > > out.metro <- metrop(out.metro, scale = 0.5) > out.metro$accept [1] 0.16 > > out.metro <- metrop(out.metro, scale = 0.4) > out.metro$accept [1] 0.228 > > out.metro <- metrop(out.metro, nbatch = 1e2, debug = TRUE) > > all(out.metro$batch[- out.metro$nbatch, ] == out.metro$current[- 1, ]) [1] TRUE > all(out.metro$current[1, ] == out.metro$initial) [1] TRUE > all(out.metro$batch[out.metro$nbatch, ] == out.metro$final) [1] TRUE > > .Random.seed <- out.metro$initial.seed > d <- ncol(out.metro$proposal) > n <- nrow(out.metro$proposal) > my.proposal <- matrix(NA, n, d) > my.u <- double(n) > ska <- out.metro$scale > for (i in 1:n) { + my.proposal[i, ] <- out.metro$current[i, ] + ska * rnorm(d) + if (is.na(out.metro$u[i])) { + my.u[i] <- NA + } else { + my.u[i] <- runif(1) + } + } > max(abs(out.metro$proposal - my.proposal)) < epsilon [1] TRUE > all(is.na(out.metro$u) == is.na(my.u)) [1] TRUE > all(out.metro$u[!is.na(out.metro$u)] == my.u[!is.na(my.u)]) [1] TRUE > > my.curr.log.green <- apply(out.metro$current, 1, logh) > my.prop.log.green <- apply(out.metro$proposal, 1, logh) > all(is.na(out.metro$u) == ((my.prop.log.green == -Inf) | + (my.prop.log.green > my.curr.log.green))) [1] TRUE > foo <- my.prop.log.green - my.curr.log.green > blurfle <- foo - out.metro$log.green > blurfle[foo == -Inf & out.metro$log.green == -Inf] <- 0 > max(blurfle) < epsilon [1] TRUE > > my.accept <- (my.prop.log.green > -Inf) & (is.na(my.u) | my.u < exp(foo)) > sum(my.accept) == round(n * out.metro$accept) [1] TRUE > > my.path <- matrix(NA, n, d) > my.path[my.accept, ] <- out.metro$proposal[my.accept, ] > my.path[! my.accept, ] <- out.metro$current[! my.accept, ] > > all(my.path == out.metro$batch) [1] TRUE > > > proc.time() user system elapsed 0.288 0.015 0.294 mcmc/tests/temp-par.Rout.save0000644000176200001440000002742014525022325015675 0ustar liggesusers R version 4.3.1 (2023-06-16) -- "Beagle Scouts" Copyright (C) 2023 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > > library(mcmc) > > set.seed(42) > > data(foo) > attach(foo) > > out <- glm(y ~ x1 + x2 + x3, family = binomial, x = TRUE) > ## IGNORE_RDIFF_BEGIN > summary(out) Call: glm(formula = y ~ x1 + x2 + x3, family = binomial, x = TRUE) Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) 0.5772 0.2766 2.087 0.036930 * x1 0.3362 0.4256 0.790 0.429672 x2 0.8475 0.4701 1.803 0.071394 . x3 1.5143 0.4426 3.422 0.000622 *** --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 134.602 on 99 degrees of freedom Residual deviance: 86.439 on 96 degrees of freedom AIC: 94.439 Number of Fisher Scoring iterations: 5 > ## IGNORE_RDIFF_END > > modmat <- out$x > > models <- cbind(rep(0:1, each = 4), rep(rep(0:1, times = 2), each = 2), + rep(0:1, times = 4)) > > exes <- paste("x", 1:3, sep = "") > betas <- NULL > for (i in 1:nrow(models)) { + inies <- as.logical(models[i, ]) + foo <- exes[inies] + bar <- paste("y ~", paste(foo, collapse = " + ")) + if (! any(inies)) bar <- paste(bar, "1") + baz <- glm(as.formula(bar), family = binomial) + beta <- rep(0, 4) + beta[c(TRUE, inies)] <- baz$coef + betas <- rbind(betas, beta) + } > > neighbors <- matrix(FALSE, nrow(models), nrow(models)) > for (i in 1:nrow(neighbors)) { + for (j in 1:ncol(neighbors)) { + foo <- models[i, ] + bar <- models[j, ] + if (sum(foo != bar) == 1) neighbors[i, j] <- TRUE + } + } > > ludfun <- function(state, ...) { + stopifnot(is.numeric(state)) + stopifnot(length(state) == ncol(models) + 2) + stopifnot(length(state) == ncol(models) + 2) + icomp <- state[1] + stopifnot(icomp == as.integer(icomp)) + stopifnot(1 <= icomp && icomp <= nrow(models)) + beta <- state[-1] + inies <- c(TRUE, as.logical(models[icomp, ])) + beta.logl <- beta + beta.logl[! inies] <- 0 + eta <- as.numeric(modmat %*% beta.logl) + logp <- ifelse(eta < 0, eta - log1p(exp(eta)), - log1p(exp(- eta))) + logq <- ifelse(eta < 0, - log1p(exp(eta)), - eta - log1p(exp(- eta))) + logl <- sum(logp[y == 1]) + sum(logq[y == 0]) + val <- logl - sum(beta^2) / 2 + return(val) + } > > ludval <- NULL > for (i in 1:nrow(models)) ludval <- c(ludval, ludfun(c(i, betas[i, ]))) > all(is.finite(ludval)) [1] TRUE > > > out <- temper(ludfun, initial = betas, neighbors = neighbors, nbatch = 20, + blen = 10, nspac = 5, scale = 0.56789, parallel = TRUE, debug = TRUE) > > names(out) [1] "lud" "neighbors" "nbatch" "blen" [5] "nspac" "scale" "outfun" "debug" [9] "parallel" "initial.seed" "final.seed" "time" [13] "batch" "acceptx" "accepti" "initial" [17] "final" "which" "unif.which" "state" [21] "log.hastings" "unif.hastings" "proposal" "acceptd" [25] "norm" "unif.choose" "coproposal" > > ### check decision about within-component or jump/swap > > identical(out$unif.which < 0.5, out$which) [1] TRUE > > identical(out$which, out$proposal[ , 1] == out$coproposal[ , 1]) [1] TRUE > > ### check proposal and coproposal are actually current state or part thereof > > prop <- out$proposal > coprop <- out$coproposal > prop.i <- prop[ , 1] > coprop.i <- coprop[ , 1] > alt.prop <- prop > alt.coprop <- coprop > for (i in 1:nrow(prop)) { + alt.prop[i, ] <- c(prop.i[i], out$state[i, prop.i[i], ]) + alt.coprop[i, ] <- c(coprop.i[i], out$state[i, coprop.i[i], ]) + } > identical(coprop, alt.coprop) [1] TRUE > identical(prop[! out$which, ], alt.prop[! out$which, ]) [1] TRUE > identical(prop[out$which, 1], alt.prop[out$which, 1]) [1] TRUE > > ### check hastings ratio calculated correctly > > foo <- apply(prop, 1, ludfun) > fooco <- apply(coprop, 1, ludfun) > prop[ , 1] <- out$coproposal[ , 1] > coprop[ , 1] <- out$proposal[ , 1] > foo.swap <- apply(prop, 1, ludfun) > fooco.swap <- apply(coprop, 1, ludfun) > log.haste <- ifelse(out$which, foo - fooco, + foo.swap + fooco.swap - foo - fooco) > all.equal(log.haste, out$log.hastings) [1] TRUE > > ### check hastings rejection decided correctly > > identical(out$log.hastings >= 0, is.na(out$unif.hastings)) [1] TRUE > all(out$log.hastings < 0 | out$acceptd) [1] TRUE > identical(out$acceptd, + out$log.hastings >= 0 | out$unif.hastings < exp(out$log.hastings)) [1] TRUE > > ### check acceptance carried out or not (according to decision) correctly > > before <- out$state > after <- before > after[- dim(after)[1], , ] <- before[-1, , ] > after[dim(after)[1], , ] <- out$final > my.after <- before > for (i in 1:length(out$acceptd)) { + if (out$acceptd[i]) { + if (out$which[i]) { + j <- out$proposal[i, 1] + my.after[i, j, ] <- out$proposal[i, -1] + } else { + j <- out$proposal[i, 1] + k <- out$coproposal[i, 1] + my.after[i, j, ] <- out$coproposal[i, -1] + my.after[i, k, ] <- out$proposal[i, -1] + } + } + } > identical(after, my.after) [1] TRUE > > ### check within-component proposal > > my.coproposal.within <- out$coproposal[out$which, ] > proposal.within <- out$proposal[out$which, ] > my.z <- out$norm[out$which, ] > my.proposal.within <- my.coproposal.within > my.proposal.within[ , -1] <- my.coproposal.within[ , -1] + out$scale * my.z > all.equal(proposal.within, my.proposal.within) [1] TRUE > > my.unif.choose <- out$unif.choose[out$which, 1] > my.i <- floor(nrow(models) * my.unif.choose) + 1 > all(1 <= my.i & my.i <= nrow(models)) [1] TRUE > identical(my.i, my.coproposal.within[ , 1]) [1] TRUE > > ### check swap proposal > > coproposal.swap <- out$coproposal[! out$which, ] > proposal.swap <- out$proposal[! out$which, ] > unif.choose.swap <- out$unif.choose[! out$which, ] > my.i <- floor(nrow(models) * unif.choose.swap[ , 1]) + 1 > nneighbors <- apply(out$neighbors, 1, sum) > my.nneighbors <- nneighbors[my.i] > my.k <- floor(my.nneighbors * unif.choose.swap[ , 2]) + 1 > my.j <- my.k > foo <- seq(1, ncol(out$neighbors)) > for (i in seq(along = my.j)) { + my.j[i] <- (foo[out$neighbors[my.i[i], ]])[my.k[i]] + } > identical(coproposal.swap[ , 1], my.i) [1] TRUE > identical(proposal.swap[ , 1], my.j) [1] TRUE > > ### check standard normal and uniform random numbers are as purported > > save.Random.seed <- .Random.seed > .Random.seed <- out$initial.seed > > nx <- ncol(out$initial) > niter <- out$nbatch * out$blen * out$nspac > my.norm <- matrix(NA, nrow = nrow(out$norm), ncol = ncol(out$norm)) > my.unif.which <- rep(NA, niter) > my.unif.hastings <- rep(NA, niter) > my.unif.choose <- matrix(NA, niter, 2) > for (iiter in 1:niter) { + my.unif.which[iiter] <- runif(1) + if (out$which[iiter]) { + my.unif.choose[iiter, 1] <- runif(1) + my.norm[iiter, ] <- rnorm(nx) + if (out$log.hastings[iiter] < 0) my.unif.hastings[iiter] <- runif(1) + } else { + my.unif.choose[iiter, ] <- runif(2) + if (out$log.hastings[iiter] < 0) my.unif.hastings[iiter] <- runif(1) + } + } > identical(my.norm, out$norm) [1] TRUE > identical(my.unif.which, out$unif.which) [1] TRUE > identical(my.unif.hastings, out$unif.hastings) [1] TRUE > identical(my.unif.choose, out$unif.choose) [1] TRUE > > .Random.seed <- save.Random.seed > > ### check batch means > > foo <- after[seq(1, niter) %% out$nspac == 0, , ] > foo <- array(as.vector(foo), dim = c(out$blen, out$nbatch, dim(foo)[2:3])) > foo <- apply(foo, c(2, 3, 4), mean) > all.equal(foo, out$batch) [1] TRUE > > ### check acceptance rates > > accept.within <- out$acceptd[out$which] > my.i.within <- out$coproposal[out$which, 1] > my.acceptx <- as.vector(sapply(split(accept.within, my.i.within), mean)) > identical(my.acceptx, out$acceptx) [1] TRUE > > accept.swap <- out$acceptd[! out$which] > my.i.swap <- out$coproposal[! out$which, 1] > my.j.swap <- out$proposal[! out$which, 1] > nmodel <- nrow(out$neighbors) > my.accepti <- matrix(NA, nmodel, nmodel) > for (i in 1:nmodel) { + for (j in 1:nmodel) { + if (out$neighbors[i, j]) { + my.accepti[i, j] <- + mean(accept.swap[my.i.swap == i & my.j.swap == j]) + } + } + } > identical(my.accepti, out$accepti) [1] TRUE > > ### check scale vector > > nx <- ncol(models) + 1 > newscale <- rnorm(nx, 0.5, 0.1) > > out <- temper(out, scale = newscale) > > my.coproposal.within <- out$coproposal[out$which, ] > proposal.within <- out$proposal[out$which, ] > my.z <- out$norm[out$which, ] > my.proposal.within <- my.coproposal.within > my.proposal.within[ , -1] <- my.coproposal.within[ , -1] + + sweep(my.z, 2, out$scale, "*") > all.equal(proposal.within, my.proposal.within) [1] TRUE > > ### check scale matrix > > matscale <- matrix(rnorm(nx * nx, 0.0, 0.1), nx, nx) > diag(matscale) <- 0.56789 > > out <- temper(out, scale = matscale) > > my.coproposal.within <- out$coproposal[out$which, ] > proposal.within <- out$proposal[out$which, ] > my.z <- out$norm[out$which, ] > my.proposal.within <- my.coproposal.within > my.proposal.within[ , -1] <- my.coproposal.within[ , -1] + + my.z %*% t(out$scale) > all.equal(proposal.within, my.proposal.within) [1] TRUE > > ### check scale list > > lisztscale <- list(0.56789, newscale, matscale, matscale, newscale, + 0.98765, 0.98765, newscale) > > out <- temper(out, scale = lisztscale) > > my.coproposal.within <- out$coproposal[out$which, ] > proposal.within <- out$proposal[out$which, ] > my.z <- out$norm[out$which, ] > my.proposal.within <- my.coproposal.within > for (iiter in 1:nrow(my.z)) { + my.i <- my.coproposal.within[iiter, 1] + my.scale <- out$scale[[my.i]] + if (is.matrix(my.scale)) { + my.proposal.within[iiter, -1] <- my.coproposal.within[iiter, -1] + + my.z[iiter, , drop = FALSE] %*% t(my.scale) + } else { + my.proposal.within[iiter, -1] <- my.coproposal.within[iiter, -1] + + my.z[iiter, ] * my.scale + } + } > all.equal(proposal.within, my.proposal.within) [1] TRUE > > ### check outfun > > outfun <- function(state, icomp, ...) { + stopifnot(is.matrix(state)) + stopifnot(is.numeric(state)) + nx <- ncol(betas) + ncomp <- nrow(betas) + stopifnot(ncol(state) == nx) + stopifnot(nrow(state) == ncomp) + stopifnot(1 <= icomp && icomp <= ncomp) + foo <- state[icomp, ] + bar <- foo^2 + return(c(foo, bar)) + } > > out <- temper(out, outfun = outfun, icomp = 4) > > before <- out$state > after <- before > after[- dim(after)[1], , ] <- before[-1, , ] > after[dim(after)[1], , ] <- out$final > outies <- apply(after, 1, outfun, icomp = 4) > outies <- t(outies) > > foo <- outies[seq(1, niter) %% out$nspac == 0, ] > foo <- array(as.vector(foo), dim = c(out$blen, out$nbatch, dim(foo)[2])) > foo <- apply(foo, c(2, 3), mean) > all.equal(foo, out$batch) [1] TRUE > > > proc.time() user system elapsed 1.293 0.035 1.317 mcmc/tests/morph.metrop.R0000644000176200001440000000205413636316205015116 0ustar liggesuserslibrary(mcmc) .morph.unmorph <- mcmc:::.morph.unmorph ########################################################################### # basic functionality check, can morph.metro run? Can we change the # transformation? set.seed(42) obj <- morph.metrop(function(x) dt(x, df=3, log=TRUE), 100, 100, morph=morph(b=3)) obj <- morph.metrop(obj, morph=morph(b=1)) obj <- morph.metrop(function(x) prod(dt(x, df=3, log=TRUE)), rep(100, 3), 100, morph=morph(p=3, b=1)) obj <- morph.metrop(obj, morph=morph(r=1, p=3, b=1)) all.equal(class(obj), c("mcmc", "morph.metropolis")) ########################################################################### # check .morph.unmorph obj <- list(final=10) outfun <- function(x) x m <- morph(p=3) obj <- .morph.unmorph(obj, m, outfun) all.equal(class(obj), c("mcmc", "morph.metropolis")) all.equal(sort(names(obj)), sort(c("final", "morph", "morph.final", "outfun"))) all.equal(c(obj$final, obj$morph.final), c(m$inverse(10), 10)) all.equal(obj$outfun, outfun) all.equal(obj$morph, m) mcmc/tests/logitfunarg.R0000644000176200001440000000315414524774034015014 0ustar liggesusers # test outfun (function) epsilon <- 1e-15 library(mcmc) suppressWarnings(RNGkind("Marsaglia-Multicarry")) set.seed(42) n <- 100 rho <- 0.5 beta0 <- 0.25 beta1 <- 1 beta2 <- 0.5 x1 <- rnorm(n) x2 <- rho * x1 + sqrt(1 - rho^2) * rnorm(n) eta <- beta0 + beta1 * x1 + beta2 * x2 p <- 1 / (1 + exp(- eta)) y <- as.numeric(runif(n) < p) out <- glm(y ~ x1 + x2, family = binomial()) logl <- function(beta) { if (length(beta) != 3) stop("length(beta) != 3") beta0 <- beta[1] beta1 <- beta[2] beta2 <- beta[3] eta <- beta0 + beta1 * x1 + beta2 * x2 p <- exp(eta) / (1 + exp(eta)) return(sum(log(p[y == 1])) + sum(log(1 - p[y == 0]))) } out.metro <- metrop(logl, coefficients(out), 1e3, scale = 0.01) out.metro$accept out.metro <- metrop(out.metro, scale = 0.1) out.metro$accept out.metro <- metrop(out.metro, scale = 0.5) out.metro$accept apply(out.metro$batch, 2, mean) out.metro <- metrop(logl, as.numeric(coefficients(out)), 1e2, scale = 0.5, debug = TRUE, outfun = function(x) c(x, x^2)) out.metro <- metrop(out.metro) out.metro$outfun dim(out.metro$batch) logl <- function(beta, x1, x2, y) { if (length(beta) != 3) stop("length(beta) != 3") beta0 <- beta[1] beta1 <- beta[2] beta2 <- beta[3] eta <- beta0 + beta1 * x1 + beta2 * x2 p <- exp(eta) / (1 + exp(eta)) return(sum(log(p[y == 1])) + sum(log(1 - p[y == 0]))) } out.metro <- metrop(logl, as.numeric(coefficients(out)), 1e2, scale = 0.5, debug = TRUE, x1 = x1, x2 = x2, y = y) out.metro$lud out.metro <- metrop(out.metro, x1 = x1, x2 = x2, y = y) out.metro$lud mcmc/tests/logitsubbat.Rout.save0000644000176200001440000001006314524777403016477 0ustar liggesusers R version 4.3.1 (2023-06-16) -- "Beagle Scouts" Copyright (C) 2023 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > > # test batching (blen) and spacing (nspac) together > > epsilon <- 1e-15 > > library(mcmc) > > suppressWarnings(RNGkind("Marsaglia-Multicarry")) > set.seed(42) > > n <- 100 > rho <- 0.5 > beta0 <- 0.25 > beta1 <- 1 > beta2 <- 0.5 > > x1 <- rnorm(n) > x2 <- rho * x1 + sqrt(1 - rho^2) * rnorm(n) > eta <- beta0 + beta1 * x1 + beta2 * x2 > p <- 1 / (1 + exp(- eta)) > y <- as.numeric(runif(n) < p) > > out <- glm(y ~ x1 + x2, family = binomial()) > > logl <- function(beta) { + if (length(beta) != 3) stop("length(beta) != 3") + beta0 <- beta[1] + beta1 <- beta[2] + beta2 <- beta[3] + eta <- beta0 + beta1 * x1 + beta2 * x2 + p <- exp(eta) / (1 + exp(eta)) + return(sum(log(p[y == 1])) + sum(log(1 - p[y == 0]))) + } > > out.metro <- metrop(logl, coefficients(out), 1e3, scale = 0.01) > out.metro$accept [1] 0.982 > > out.metro <- metrop(out.metro, scale = 0.1) > out.metro$accept [1] 0.795 > > out.metro <- metrop(out.metro, scale = 0.5) > out.metro$accept [1] 0.264 > > apply(out.metro$batch, 2, mean) [1] 0.06080257 1.42304941 0.52634149 > > out.metro <- metrop(logl, as.numeric(coefficients(out)), 1e2, + scale = 0.5, debug = TRUE, blen = 5, nspac = 3) > > niter <- out.metro$nbatch * out.metro$blen * out.metro$nspac > niter == nrow(out.metro$current) [1] TRUE > niter == nrow(out.metro$proposal) [1] TRUE > all(out.metro$current[1, ] == out.metro$initial) [1] TRUE > all(out.metro$current[niter, ] == out.metro$final) | + all(out.metro$proposal[niter, ] == out.metro$final) [1] TRUE > > .Random.seed <- out.metro$initial.seed > d <- ncol(out.metro$proposal) > n <- nrow(out.metro$proposal) > my.proposal <- matrix(NA, n, d) > my.u <- double(n) > ska <- out.metro$scale > for (i in 1:n) { + my.proposal[i, ] <- out.metro$current[i, ] + ska * rnorm(d) + if (is.na(out.metro$u[i])) { + my.u[i] <- NA + } else { + my.u[i] <- runif(1) + } + } > max(abs(out.metro$proposal - my.proposal)) < epsilon [1] TRUE > all(is.na(out.metro$u) == is.na(my.u)) [1] TRUE > all(out.metro$u[!is.na(out.metro$u)] == my.u[!is.na(my.u)]) [1] TRUE > > my.curr.log.green <- apply(out.metro$current, 1, logl) > my.prop.log.green <- apply(out.metro$proposal, 1, logl) > all(is.na(out.metro$u) == (my.prop.log.green > my.curr.log.green)) [1] TRUE > foo <- my.prop.log.green - my.curr.log.green > max(abs(foo - out.metro$log.green)) < epsilon [1] TRUE > > my.accept <- is.na(my.u) | my.u < exp(foo) > sum(my.accept) == round(n * out.metro$accept) [1] TRUE > if (my.accept[niter]) { + all(out.metro$proposal[niter, ] == out.metro$final) + } else { + all(out.metro$current[niter, ] == out.metro$final) + } [1] TRUE > > my.current <- out.metro$current > my.current[my.accept, ] <- my.proposal[my.accept, ] > my.current <- rbind(out.metro$initial, my.current[- niter, ]) > max(abs(out.metro$current - my.current)) < epsilon [1] TRUE > > my.path <- matrix(NA, n, d) > my.path[my.accept, ] <- out.metro$proposal[my.accept, ] > my.path[! my.accept, ] <- out.metro$current[! my.accept, ] > nspac <- out.metro$nspac > > my.path <- my.path[seq(nspac, niter, by = nspac), ] > > foom <- array(as.vector(t(my.path)), c(d, out.metro$blen, out.metro$nbatch)) > boom <- t(apply(foom, c(1, 3), mean)) > > all(dim(boom) == dim(out.metro$batch)) [1] TRUE > max(abs(boom - out.metro$batch)) < epsilon [1] TRUE > > > proc.time() user system elapsed 0.337 0.012 0.341 mcmc/tests/accept-batch.R0000644000176200001440000000101413636316205014775 0ustar liggesusers # new feature batching acceptance rates set.seed(42) library(mcmc) h <- function(x) if (all(x >= 0) && sum(x) <= 1) return(1) else return(-Inf) out <- metrop(h, rep(0, 5), nbatch = 100, blen = 100, scale = 0.1, debug = TRUE) all.equal(out$accept, mean(out$accept.batch)) foo <- matrix(out$debug.accept, nrow = out$blen) bar <- colMeans(foo) all.equal(out$accept.batch, bar) options(digits = 4) # try to keep insanity of computer arithmetic under control out$accept t.test(out$accept.batch)$conf.int mcmc/tests/logitmat.R0000644000176200001440000000644014524775072014317 0ustar liggesusers # test matrix scaling epsilon <- 1e-15 library(mcmc) suppressWarnings(RNGkind("Marsaglia-Multicarry")) set.seed(42) n <- 100 rho <- 0.5 beta0 <- 0.25 beta1 <- 1 beta2 <- 0.5 x1 <- rnorm(n) x2 <- rho * x1 + sqrt(1 - rho^2) * rnorm(n) eta <- beta0 + beta1 * x1 + beta2 * x2 p <- 1 / (1 + exp(- eta)) y <- as.numeric(runif(n) < p) out <- glm(y ~ x1 + x2, family = binomial()) logl <- function(beta) { if (length(beta) != 3) stop("length(beta) != 3") beta0 <- beta[1] beta1 <- beta[2] beta2 <- beta[3] eta <- beta0 + beta1 * x1 + beta2 * x2 p <- exp(eta) / (1 + exp(eta)) return(sum(log(p[y == 1])) + sum(log(1 - p[y == 0]))) } out.metro <- metrop(logl, coefficients(out), 1e3, scale = 0.01) out.metro$accept out.metro <- metrop(out.metro, scale = 0.1) out.metro$accept out.metro <- metrop(out.metro, scale = 0.5) out.metro$accept apply(out.metro$batch, 2, mean) fred <- var(out.metro$batch) sally <- t(chol(fred)) max(abs(fred - sally %*% t(sally))) < epsilon out.metro <- metrop(out.metro, scale = sally) out.metro$accept out.metro <- metrop(logl, as.numeric(coefficients(out)), 1e2, scale = sally, debug = TRUE) names(out.metro) niter <- out.metro$nbatch * out.metro$blen * out.metro$nspac niter == nrow(out.metro$current) niter == nrow(out.metro$proposal) all(out.metro$current[1, ] == out.metro$initial) all(out.metro$current[niter, ] == out.metro$final) | all(out.metro$proposal[niter, ] == out.metro$final) .Random.seed <- out.metro$initial.seed d <- ncol(out.metro$proposal) n <- nrow(out.metro$proposal) my.proposal <- matrix(NA, n, d) my.u <- double(n) my.z <- matrix(NA, n, d) ska <- out.metro$scale for (i in 1:n) { zed <- rnorm(d) my.proposal[i, ] <- out.metro$current[i, ] + ska %*% zed if (is.na(out.metro$u[i])) { my.u[i] <- NA } else { my.u[i] <- runif(1) } my.z[i, ] <- zed } max(abs(out.metro$proposal - my.proposal)) < epsilon all(is.na(out.metro$u) == is.na(my.u)) all(out.metro$u[!is.na(out.metro$u)] == my.u[!is.na(my.u)]) identical(out.metro$z, my.z) my.curr.log.green <- apply(out.metro$current, 1, logl) my.prop.log.green <- apply(out.metro$proposal, 1, logl) all(is.na(out.metro$u) == (my.prop.log.green > my.curr.log.green)) foo <- my.prop.log.green - my.curr.log.green max(abs(foo - out.metro$log.green)) < epsilon my.accept <- is.na(my.u) | my.u < exp(foo) sum(my.accept) == round(n * out.metro$accept) if (my.accept[niter]) { all(out.metro$proposal[niter, ] == out.metro$final) } else { all(out.metro$current[niter, ] == out.metro$final) } identical(my.accept, out.metro$debug.accept) my.current <- out.metro$current my.current[my.accept, ] <- my.proposal[my.accept, ] my.current <- rbind(out.metro$initial, my.current[- niter, ]) max(abs(out.metro$current - my.current)) < epsilon my.path <- matrix(NA, n, d) my.path[my.accept, ] <- out.metro$proposal[my.accept, ] my.path[! my.accept, ] <- out.metro$current[! my.accept, ] nspac <- out.metro$nspac my.path <- my.path[seq(nspac, niter, by = nspac), ] fred <- my.path k <- ncol(fred) foom <- array(as.vector(t(fred)), c(k, out.metro$blen, out.metro$nbatch)) boom <- t(apply(foom, c(1, 3), mean)) all(dim(boom) == dim(out.metro$batch)) max(abs(boom - out.metro$batch)) < epsilon mcmc/tests/logitsub.Rout.save0000644000176200001440000000760514524777356016027 0ustar liggesusers R version 4.3.1 (2023-06-16) -- "Beagle Scouts" Copyright (C) 2023 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > > # test spacing (nspac) > > epsilon <- 1e-15 > > library(mcmc) > > suppressWarnings(RNGkind("Marsaglia-Multicarry")) > set.seed(42) > > n <- 100 > rho <- 0.5 > beta0 <- 0.25 > beta1 <- 1 > beta2 <- 0.5 > > x1 <- rnorm(n) > x2 <- rho * x1 + sqrt(1 - rho^2) * rnorm(n) > eta <- beta0 + beta1 * x1 + beta2 * x2 > p <- 1 / (1 + exp(- eta)) > y <- as.numeric(runif(n) < p) > > out <- glm(y ~ x1 + x2, family = binomial()) > > logl <- function(beta) { + if (length(beta) != 3) stop("length(beta) != 3") + beta0 <- beta[1] + beta1 <- beta[2] + beta2 <- beta[3] + eta <- beta0 + beta1 * x1 + beta2 * x2 + p <- exp(eta) / (1 + exp(eta)) + return(sum(log(p[y == 1])) + sum(log(1 - p[y == 0]))) + } > > out.metro <- metrop(logl, coefficients(out), 1e3, scale = 0.01) > out.metro$accept [1] 0.982 > > out.metro <- metrop(out.metro, scale = 0.1) > out.metro$accept [1] 0.795 > > out.metro <- metrop(out.metro, scale = 0.5) > out.metro$accept [1] 0.264 > > apply(out.metro$batch, 2, mean) [1] 0.06080257 1.42304941 0.52634149 > > out.metro <- metrop(logl, as.numeric(coefficients(out)), 1e2, + scale = 0.5, debug = TRUE, nspac = 3) > > niter <- out.metro$nbatch * out.metro$blen * out.metro$nspac > niter == nrow(out.metro$current) [1] TRUE > niter == nrow(out.metro$proposal) [1] TRUE > all(out.metro$current[1, ] == out.metro$initial) [1] TRUE > all(out.metro$current[niter, ] == out.metro$final) | + all(out.metro$proposal[niter, ] == out.metro$final) [1] TRUE > > .Random.seed <- out.metro$initial.seed > d <- ncol(out.metro$proposal) > n <- nrow(out.metro$proposal) > my.proposal <- matrix(NA, n, d) > my.u <- double(n) > ska <- out.metro$scale > for (i in 1:n) { + my.proposal[i, ] <- out.metro$current[i, ] + ska * rnorm(d) + if (is.na(out.metro$u[i])) { + my.u[i] <- NA + } else { + my.u[i] <- runif(1) + } + } > max(abs(out.metro$proposal - my.proposal)) < epsilon [1] TRUE > all(is.na(out.metro$u) == is.na(my.u)) [1] TRUE > all(out.metro$u[!is.na(out.metro$u)] == my.u[!is.na(my.u)]) [1] TRUE > > my.curr.log.green <- apply(out.metro$current, 1, logl) > my.prop.log.green <- apply(out.metro$proposal, 1, logl) > all(is.na(out.metro$u) == (my.prop.log.green > my.curr.log.green)) [1] TRUE > foo <- my.prop.log.green - my.curr.log.green > max(abs(foo - out.metro$log.green)) < epsilon [1] TRUE > > my.accept <- is.na(my.u) | my.u < exp(foo) > sum(my.accept) == round(n * out.metro$accept) [1] TRUE > if (my.accept[niter]) { + all(out.metro$proposal[niter, ] == out.metro$final) + } else { + all(out.metro$current[niter, ] == out.metro$final) + } [1] TRUE > > my.current <- out.metro$current > my.current[my.accept, ] <- my.proposal[my.accept, ] > my.current <- rbind(out.metro$initial, my.current[- niter, ]) > max(abs(out.metro$current - my.current)) < epsilon [1] TRUE > > my.path <- matrix(NA, n, d) > my.path[my.accept, ] <- out.metro$proposal[my.accept, ] > my.path[! my.accept, ] <- out.metro$current[! my.accept, ] > nspac <- out.metro$nspac > my.path <- my.path[seq(nspac, niter, by = nspac), ] > all(dim(my.path) == dim(out.metro$batch)) [1] TRUE > > all(my.path == out.metro$batch) [1] TRUE > > > proc.time() user system elapsed 0.282 0.019 0.293 mcmc/tests/zero-error.R0000644000176200001440000000022314524753156014575 0ustar liggesusers library(mcmc) # should give intelligible error (unlike before ver 0.9-8) suppressMessages(try(metrop(function(x) x, double(0), nbatch = 10))) mcmc/tests/initseq.Rout.save0000644000176200001440000000435313636316205015631 0ustar liggesusers R version 3.6.3 (2020-02-29) -- "Holding the Windsock" Copyright (C) 2020 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > > library(mcmc) > > set.seed(42) > > n <- 1e5 > rho <- 0.99 > > x <- arima.sim(model = list(ar = rho), n = n) > gamma <- acf(x, lag.max = 1999, type = "covariance", + plot = FALSE)$acf > k <- seq(along = gamma) > Gamma <- gamma[k %% 2 == 1] + gamma[k %% 2 == 0] > k <- min(seq(along = Gamma)[Gamma < 0]) > Gamma <- Gamma[1:k] > Gamma[k] < 0 [1] TRUE > Gamma[k] <- 0 > > out <- .Call(mcmc:::C_initseq, x - mean(x)) > names(out) [1] "gamma0" "Gamma.pos" "Gamma.dec" "Gamma.con" "var.pos" "var.dec" [7] "var.con" > > all.equal(gamma[1], out$gamma0) [1] TRUE > > length(out$Gamma.pos) == length(Gamma) [1] TRUE > all.equal(out$Gamma.pos, Gamma) [1] TRUE > > Gamma.dec <- cummin(Gamma) > all.equal(out$Gamma.dec, Gamma.dec) [1] TRUE > > ## IGNORE_RDIFF_BEGIN > library(Iso) Iso 0.0-18 > ## IGNORE_RDIFF_END > Gamma.con <- Gamma.dec[1] + cumsum(c(0, pava(diff(Gamma.dec)))) > all.equal(out$Gamma.con, Gamma.con) [1] TRUE > > all.equal(0, min(out$Gamma.pos - out$Gamma.dec)) [1] TRUE > max(diff(out$Gamma.dec)) < sqrt(.Machine$double.eps) [1] TRUE > > all.equal(0, min(out$Gamma.dec - out$Gamma.con)) [1] TRUE > min(diff(diff(out$Gamma.con))) > (- sqrt(.Machine$double.eps)) [1] TRUE > > all.equal(2 * sum(out$Gamma.pos) - out$gamma0, out$var.pos) [1] TRUE > all.equal(2 * sum(out$Gamma.dec) - out$gamma0, out$var.dec) [1] TRUE > all.equal(2 * sum(out$Gamma.con) - out$gamma0, out$var.con) [1] TRUE > > rev(out$Gamma.pos)[1] == 0 [1] TRUE > rev(out$Gamma.dec)[1] == 0 [1] TRUE > all.equal(rev(out$Gamma.con)[1], 0) [1] TRUE > > > proc.time() user system elapsed 0.513 0.027 0.529 mcmc/tests/temp-par-witch.R0000644000176200001440000000366313636316205015334 0ustar liggesusers if ((! exists("DEBUG")) || (! identical(DEBUG, TRUE))) DEBUG <- FALSE library(mcmc) options(digits=4) # avoid rounding differences set.seed(42) save.initial.seed <- .Random.seed d <- 3 witch.which <- 1 - (1 / 2)^(1 / d) * (1 / 4)^(seq(0, 5) / d) witch.which ncomp <- length(witch.which) neighbors <- matrix(FALSE, ncomp, ncomp) neighbors[row(neighbors) == col(neighbors) + 1] <- TRUE neighbors[row(neighbors) == col(neighbors) - 1] <- TRUE neighbors[row(neighbors) == col(neighbors) + 2] <- TRUE neighbors[row(neighbors) == col(neighbors) - 2] <- TRUE ludfun <- function(state) { stopifnot(is.numeric(state)) stopifnot(length(state) == d + 1) icomp <- state[1] stopifnot(icomp == as.integer(icomp)) stopifnot(1 <= icomp && icomp <= ncomp) theta <- state[-1] if (any(abs(theta) > 1.0)) return(-Inf) bnd <- witch.which[icomp] if(bnd >= 1.0) stop(sprintf("witch.which[%d] >= 1.0", icomp)) if(bnd <= 0.0) stop(sprintf("witch.which[%d] <= 0.0", icomp)) if (all(abs(theta) > bnd)) return(- (d + 1) * log(2) - d * log(1 - bnd)) return(- (d + 1) * log(2) - log1p(- (1 - bnd)^d)) } thetas <- matrix(0, ncomp, d) out <- temper(ludfun, initial = thetas, neighbors = neighbors, nbatch = 50, blen = 13, nspac = 7, scale = 0.3456789, parallel = TRUE, debug = DEBUG) names(out) out$acceptx out$accepti ### check that have prob 1 / 2 for corners outfun <- function(state) { stopifnot(is.matrix(state)) ncomp <- nrow(state) d <- ncol(state) foo <- sweep(abs(state), 1, witch.which) bar <- apply(foo > 0, 1, all) return(as.numeric(bar)) } out2 <- temper(out, outfun = outfun) colMeans(out2$batch) apply(out2$batch, 2, sd) / sqrt(out$nbatch) ### try again out3 <- temper(out2, blen = 103) foo <- cbind(colMeans(out3$batch), apply(out3$batch, 2, sd) / sqrt(out$nbatch)) colnames(foo) <- c("means", "MCSE") foo mcmc/tests/morph.Rout.save0000644000176200001440000001125513636316205015301 0ustar liggesusers R version 2.13.1 (2011-07-08) Copyright (C) 2011 The R Foundation for Statistical Computing ISBN 3-900051-07-0 Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > library(mcmc) > isotropic <- mcmc:::isotropic > isotropic.logjacobian <- mcmc:::isotropic.logjacobian > > # make sure morph identity works properly > TestMorphIdentity <- function(m.id) { + ident.func <- function(x) x + if (!all.equal(m.id$transform(1:10), 1:10)) + return(FALSE) + if (!all.equal(m.id$inverse(1:10), 1:10)) + return(FALSE) + x <- seq(-1,1, length.out=15) + if (!all.equal(sapply(x, m.id$lud(function(x) dnorm(x, log=TRUE))), + dnorm(x, log=TRUE))) + return(FALSE) + if (!all.equal(m.id$outfun(ident.func)(x), x)) + return(FALSE) + return(TRUE) + } > > TestMorphIdentity(morph()) [1] TRUE > TestMorphIdentity(morph.identity()) [1] TRUE > > TestMorphIdentityOutfun <- function(m) { + f <- m$outfun(NULL) + x <- 1:20 + if (!identical(x, f(x))) + return(FALSE) + f <- m$outfun(c(6, 8)) + if (!identical(x[c(6, 8)], f(x))) + return(FALSE) + i <- rep(FALSE, 20) + i[c(1, 3, 5)] <- TRUE + f <- m$outfun(i) + if (!identical(x[i], f(x))) + return(FALSE) + return(TRUE) + } > > TestMorphIdentityOutfun(morph()) [1] TRUE > TestMorphIdentityOutfun(morph.identity()) [1] TRUE > > # make sure that morph and morph.identity give back the same things > all.equal(sort(names(morph.identity())), sort(names(morph(b=1)))) [1] TRUE > > # test center parameter, univariate version > zero.func <- function(x) 0 > center <- 2 > x <- seq(-1,1, length.out=15) > morph.center <- morph(center=center) > all.equal(sapply(x, morph.center$transform), x-center) [1] TRUE > all.equal(sapply(x, morph.center$inverse), x+center) [1] TRUE > all.equal(sapply(x, morph.center$lud(function(y) dnorm(y, log=TRUE))), + dnorm(x, log=TRUE, mean=-2)) [1] TRUE > > # test center parameter, multivariate version > center <- 1:4 > x <- rep(0, 4) > morph.center <- morph(center=center) > lud.mult.dnorm <- function(x) prod(dnorm(x, log=TRUE)) > all.equal(morph.center$transform(x), x-center) [1] TRUE > all.equal(morph.center$inverse(x), x+center) [1] TRUE > all.equal(morph.center$lud(lud.mult.dnorm)(x), + lud.mult.dnorm(x - center)) [1] TRUE > # test 'r'. > r <- 1 > morph.r <- morph(r=r) > x <- seq(-1, 1, length.out=20) > all.equal(sapply(x, morph.r$lud(function(x) dnorm(x, log=TRUE))), + dnorm(x, log=TRUE)) [1] TRUE > x <- seq(1.1, 2, length.out=10) > all(sapply(x, morph.r$lud(function(x) dnorm(x, log=TRUE))) + != + dnorm(x, log=TRUE)) [1] TRUE > > TestExponentialEvenPWithRInverse <- function() { + r <- 0.3 + p <- 2.2 + morph.r <- morph(r=r, p=p) + x <- seq(0, r, length.out=20) + all.equal(x, sapply(x, morph.r$inverse)) + } > > TestExponentialEvenPWithRInverse() [1] TRUE > > # make sure morph$lud passes '...' arguments. > mean <- 2 > ident.morph <- morph() > dnorm.morph <- ident.morph$lud(function(x, mean=0) + dnorm(x, mean=mean, log=TRUE)) > all.equal(dnorm.morph(2, mean), dnorm(2, mean=mean, log=TRUE)) [1] TRUE > x <- seq(-3, 3, length.out=20) > m2 <- morph(r=10) > dnorm.morph <- m2$lud(function(x, mean) + dnorm(x, mean=mean, log=TRUE)) > all.equal(sapply(x, function(y) dnorm.morph(y, 2)), + dnorm(x, mean=2, log=TRUE)) [1] TRUE > > # make sure morph$outfun passes '...' arguments. > outfun.orig <- function(x, mean) x + mean > ident.morph <- morph() > mean <- 1 > outfun.morph <- ident.morph$outfun(outfun.orig) > all.equal(outfun.morph(1:10, mean), 1:10+mean) [1] TRUE > > m2 <- morph(r=10) > outfun.morph <- m2$outfun(outfun.orig) > all.equal(sapply(1:10, function(x) outfun.morph(x, mean)), 1:10+mean) [1] TRUE > > ########################################################################### > # test built-in exponential and polynomial transformations. > f <- morph(b=3) > x <- seq(0, 10, length.out=100) > all.equal(x, sapply(sapply(x, f$transform), f$inverse)) [1] TRUE > > f <- morph(p=3) > all.equal(x, sapply(sapply(x, f$transform), f$inverse)) [1] TRUE > > f <- morph(p=3, r=10) > all.equal(-10:10, Vectorize(f$transform)(-10:10)) [1] TRUE > > f <- morph(p=3, b=1) > all.equal(x, sapply(sapply(x, f$transform), f$inverse)) [1] TRUE > mcmc/tests/logitsubbat.R0000644000176200001440000000575114524775463015026 0ustar liggesusers # test batching (blen) and spacing (nspac) together epsilon <- 1e-15 library(mcmc) suppressWarnings(RNGkind("Marsaglia-Multicarry")) set.seed(42) n <- 100 rho <- 0.5 beta0 <- 0.25 beta1 <- 1 beta2 <- 0.5 x1 <- rnorm(n) x2 <- rho * x1 + sqrt(1 - rho^2) * rnorm(n) eta <- beta0 + beta1 * x1 + beta2 * x2 p <- 1 / (1 + exp(- eta)) y <- as.numeric(runif(n) < p) out <- glm(y ~ x1 + x2, family = binomial()) logl <- function(beta) { if (length(beta) != 3) stop("length(beta) != 3") beta0 <- beta[1] beta1 <- beta[2] beta2 <- beta[3] eta <- beta0 + beta1 * x1 + beta2 * x2 p <- exp(eta) / (1 + exp(eta)) return(sum(log(p[y == 1])) + sum(log(1 - p[y == 0]))) } out.metro <- metrop(logl, coefficients(out), 1e3, scale = 0.01) out.metro$accept out.metro <- metrop(out.metro, scale = 0.1) out.metro$accept out.metro <- metrop(out.metro, scale = 0.5) out.metro$accept apply(out.metro$batch, 2, mean) out.metro <- metrop(logl, as.numeric(coefficients(out)), 1e2, scale = 0.5, debug = TRUE, blen = 5, nspac = 3) niter <- out.metro$nbatch * out.metro$blen * out.metro$nspac niter == nrow(out.metro$current) niter == nrow(out.metro$proposal) all(out.metro$current[1, ] == out.metro$initial) all(out.metro$current[niter, ] == out.metro$final) | all(out.metro$proposal[niter, ] == out.metro$final) .Random.seed <- out.metro$initial.seed d <- ncol(out.metro$proposal) n <- nrow(out.metro$proposal) my.proposal <- matrix(NA, n, d) my.u <- double(n) ska <- out.metro$scale for (i in 1:n) { my.proposal[i, ] <- out.metro$current[i, ] + ska * rnorm(d) if (is.na(out.metro$u[i])) { my.u[i] <- NA } else { my.u[i] <- runif(1) } } max(abs(out.metro$proposal - my.proposal)) < epsilon all(is.na(out.metro$u) == is.na(my.u)) all(out.metro$u[!is.na(out.metro$u)] == my.u[!is.na(my.u)]) my.curr.log.green <- apply(out.metro$current, 1, logl) my.prop.log.green <- apply(out.metro$proposal, 1, logl) all(is.na(out.metro$u) == (my.prop.log.green > my.curr.log.green)) foo <- my.prop.log.green - my.curr.log.green max(abs(foo - out.metro$log.green)) < epsilon my.accept <- is.na(my.u) | my.u < exp(foo) sum(my.accept) == round(n * out.metro$accept) if (my.accept[niter]) { all(out.metro$proposal[niter, ] == out.metro$final) } else { all(out.metro$current[niter, ] == out.metro$final) } my.current <- out.metro$current my.current[my.accept, ] <- my.proposal[my.accept, ] my.current <- rbind(out.metro$initial, my.current[- niter, ]) max(abs(out.metro$current - my.current)) < epsilon my.path <- matrix(NA, n, d) my.path[my.accept, ] <- out.metro$proposal[my.accept, ] my.path[! my.accept, ] <- out.metro$current[! my.accept, ] nspac <- out.metro$nspac my.path <- my.path[seq(nspac, niter, by = nspac), ] foom <- array(as.vector(t(my.path)), c(d, out.metro$blen, out.metro$nbatch)) boom <- t(apply(foom, c(1, 3), mean)) all(dim(boom) == dim(out.metro$batch)) max(abs(boom - out.metro$batch)) < epsilon mcmc/tests/temp-ser-witch.Rout.save0000644000176200001440000001170013636316205017017 0ustar liggesusers R version 3.3.3 (2017-03-06) -- "Another Canoe" Copyright (C) 2017 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > > library(mcmc) > > set.seed(42) > > d <- 3 > witch.which <- 1 - (1 / 2)^(1 / d) * (1 / 4)^(seq(0, 5) / d) > witch.which [1] 0.2062995 0.5000000 0.6850197 0.8015749 0.8750000 0.9212549 > > ncomp <- length(witch.which) > > neighbors <- matrix(FALSE, ncomp, ncomp) > neighbors[row(neighbors) == col(neighbors) + 1] <- TRUE > neighbors[row(neighbors) == col(neighbors) - 1] <- TRUE > neighbors[row(neighbors) == col(neighbors) + 2] <- TRUE > neighbors[row(neighbors) == col(neighbors) - 2] <- TRUE > > ludfun <- function(state) { + stopifnot(is.numeric(state)) + stopifnot(length(state) == d + 1) + icomp <- state[1] + stopifnot(icomp == as.integer(icomp)) + stopifnot(1 <= icomp && icomp <= ncomp) + theta <- state[-1] + if (any(abs(theta) > 1.0)) return(-Inf) + bnd <- witch.which[icomp] + if(bnd >= 1.0) + stop(sprintf("witch.which[%d] >= 1.0", icomp)) + if(bnd <= 0.0) + stop(sprintf("witch.which[%d] <= 0.0", icomp)) + if (all(abs(theta) > bnd)) + return(- (d + 1) * log(2) - d * log(1 - bnd)) + return(- (d + 1) * log(2) - log1p(- (1 - bnd)^d)) + } > > initial <- c(1, rep(0, d)) > > out <- temper(ludfun, initial = initial, neighbors = neighbors, + nbatch = 50, blen = 13, nspac = 7, scale = 0.3456789) > > names(out) [1] "lud" "neighbors" "nbatch" "blen" "nspac" [6] "scale" "outfun" "debug" "parallel" "initial.seed" [11] "final.seed" "time" "batch" "acceptx" "accepti" [16] "initial" "final" "ibatch" > > out$acceptx [1] 0.6388889 0.4385246 0.3631714 0.4885246 0.4709677 0.4735516 > > out$accepti [,1] [,2] [,3] [,4] [,5] [,6] [1,] NA 0.5071770 0.2727273 NA NA NA [2,] 0.7070064 NA 0.4355828 0.4186047 NA NA [3,] 0.5816327 0.8039216 NA 0.5888889 0.5662651 NA [4,] NA 0.7415730 0.8571429 NA 0.7857143 0.6626506 [5,] NA NA 0.5204082 0.6516854 NA 0.8378378 [6,] NA NA NA 0.3515152 0.5056818 NA > > colMeans(out$ibatch) [1] 0.1830769 0.2153846 0.1630769 0.1369231 0.1353846 0.1661538 > > ### check that have prob 1 / 2 for corners > > outfun <- function(state) { + stopifnot(is.numeric(state)) + icomp <- state[1] + stopifnot(icomp == as.integer(icomp)) + stopifnot(1 <= icomp && icomp <= length(witch.which)) + theta <- state[-1] + foo <- all(abs(theta) > witch.which[icomp]) + bar <- rep(0, length(witch.which)) + baz <- rep(0, length(witch.which)) + bar[icomp] <- as.numeric(foo) + baz[icomp] <- 1 + return(c(bar, baz)) + } > > out <- temper(out, blen = 103, outfun = outfun, debug = TRUE) > > eta.batch <- out$batch[ , seq(1, ncomp)] > noo.batch <- out$batch[ , seq(ncomp + 1, ncomp + ncomp)] > eta <- colMeans(eta.batch) > noo <- colMeans(noo.batch) > mu <- eta / noo > eta [1] 0.06660194 0.06388350 0.05766990 0.06563107 0.10368932 0.22912621 > noo [1] 0.1365049 0.1258252 0.1293204 0.1370874 0.1716505 0.2996117 > mu [1] 0.4879090 0.5077160 0.4459459 0.4787535 0.6040724 0.7647440 > > eta.batch.rel <- sweep(eta.batch, 2, eta, "/") > noo.batch.rel <- sweep(noo.batch, 2, noo, "/") > mu.batch.rel <- eta.batch.rel - noo.batch.rel > > mu.mcse.rel <- apply(mu.batch.rel, 2, sd) / sqrt(out$nbatch) > mu.mcse.rel [1] 0.05010927 0.07897321 0.09678339 0.12636113 0.11261781 0.07082685 > > foo <- cbind(mu, mu * mu.mcse.rel) > colnames(foo) <- c("means", "MCSE") > foo means MCSE [1,] 0.4879090 0.02444876 [2,] 0.5077160 0.04009596 [3,] 0.4459459 0.04316016 [4,] 0.4787535 0.06049584 [5,] 0.6040724 0.06802931 [6,] 0.7647440 0.05416441 > > ### check decision about within-component or jump/swap > > identical(out$unif.which < 0.5, out$which) [1] TRUE > > identical(out$which, out$proposal[ , 1] == out$state[ , 1]) [1] TRUE > > ### check hastings ratio calculated correctly > > n <- apply(neighbors, 1, sum) > i <- out$state[ , 1] > istar <- out$proposal[ , 1] > foo <- apply(out$state, 1, ludfun) > bar <- apply(out$proposal, 1, ludfun) > my.log.hastings <- bar - foo - log(n[istar]) + log(n[i]) > all.equal(my.log.hastings, out$log.hastings) [1] TRUE > > > proc.time() user system elapsed 2.740 0.028 2.762 mcmc/tests/saveseed.Rout.save0000644000176200001440000000205413636316205015750 0ustar liggesusers R version 2.13.1 (2011-07-08) Copyright (C) 2011 The R Foundation for Statistical Computing ISBN 3-900051-07-0 Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > > library(mcmc) > > set.seed(42) > > h <- function(x) if (all(x >= 0) && sum(x) <= 1) return(1) else return(-Inf) > out <- metrop(h, initial = rep(0, 5), nbatch = 100, blen = 17, nspac = 3, + scale = 0.1) > > save.seed <- .Random.seed > > out1 <- metrop(out) > out2 <- metrop(out1) > out3 <- metrop(out, nbatch = 2 * out$nbatch) > > fred <- rbind(out1$batch, out2$batch) > identical(fred, out3$batch) [1] TRUE > > mcmc/tests/logitfunarg.Rout.save0000644000176200001440000000616314524774357016514 0ustar liggesusers R version 4.3.1 (2023-06-16) -- "Beagle Scouts" Copyright (C) 2023 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > > # test outfun (function) > > epsilon <- 1e-15 > > library(mcmc) > > suppressWarnings(RNGkind("Marsaglia-Multicarry")) > set.seed(42) > > n <- 100 > rho <- 0.5 > beta0 <- 0.25 > beta1 <- 1 > beta2 <- 0.5 > > x1 <- rnorm(n) > x2 <- rho * x1 + sqrt(1 - rho^2) * rnorm(n) > eta <- beta0 + beta1 * x1 + beta2 * x2 > p <- 1 / (1 + exp(- eta)) > y <- as.numeric(runif(n) < p) > > out <- glm(y ~ x1 + x2, family = binomial()) > > logl <- function(beta) { + if (length(beta) != 3) stop("length(beta) != 3") + beta0 <- beta[1] + beta1 <- beta[2] + beta2 <- beta[3] + eta <- beta0 + beta1 * x1 + beta2 * x2 + p <- exp(eta) / (1 + exp(eta)) + return(sum(log(p[y == 1])) + sum(log(1 - p[y == 0]))) + } > > out.metro <- metrop(logl, coefficients(out), 1e3, scale = 0.01) > out.metro$accept [1] 0.982 > > out.metro <- metrop(out.metro, scale = 0.1) > out.metro$accept [1] 0.795 > > out.metro <- metrop(out.metro, scale = 0.5) > out.metro$accept [1] 0.264 > > apply(out.metro$batch, 2, mean) [1] 0.06080257 1.42304941 0.52634149 > > out.metro <- metrop(logl, as.numeric(coefficients(out)), 1e2, + scale = 0.5, debug = TRUE, outfun = function(x) c(x, x^2)) > > out.metro <- metrop(out.metro) > out.metro$outfun function (x) c(x, x^2) > dim(out.metro$batch) [1] 100 6 > > logl <- function(beta, x1, x2, y) { + if (length(beta) != 3) stop("length(beta) != 3") + beta0 <- beta[1] + beta1 <- beta[2] + beta2 <- beta[3] + eta <- beta0 + beta1 * x1 + beta2 * x2 + p <- exp(eta) / (1 + exp(eta)) + return(sum(log(p[y == 1])) + sum(log(1 - p[y == 0]))) + } > > out.metro <- metrop(logl, as.numeric(coefficients(out)), 1e2, + scale = 0.5, debug = TRUE, x1 = x1, x2 = x2, y = y) > out.metro$lud function (beta, x1, x2, y) { if (length(beta) != 3) stop("length(beta) != 3") beta0 <- beta[1] beta1 <- beta[2] beta2 <- beta[3] eta <- beta0 + beta1 * x1 + beta2 * x2 p <- exp(eta)/(1 + exp(eta)) return(sum(log(p[y == 1])) + sum(log(1 - p[y == 0]))) } > out.metro <- metrop(out.metro, x1 = x1, x2 = x2, y = y) > out.metro$lud function (beta, x1, x2, y) { if (length(beta) != 3) stop("length(beta) != 3") beta0 <- beta[1] beta1 <- beta[2] beta2 <- beta[3] eta <- beta0 + beta1 * x1 + beta2 * x2 p <- exp(eta)/(1 + exp(eta)) return(sum(log(p[y == 1])) + sum(log(1 - p[y == 0]))) } > > > proc.time() user system elapsed 0.347 0.028 0.367 mcmc/src/0000755000176200001440000000000014525055000011754 5ustar liggesusersmcmc/src/getScalarInteger.c0000644000176200001440000000066513636316205015363 0ustar liggesusers #include #include #include "myutil.h" int getScalarInteger(SEXP foo, char *argname) { if (! isNumeric(foo)) error("argument \"%s\" must be numeric", argname); if (LENGTH(foo) != 1) error("argument \"%s\" must be scalar", argname); if (isInteger(foo)) { return INTEGER(foo)[0]; } else { SEXP bar = coerceVector(foo, INTSXP); return INTEGER(bar)[0]; } } mcmc/src/temper.c0000644000176200001440000013111113636316205013423 0ustar liggesusers #include #include #include #include #include "myutil.h" #include "mcmc.h" static void propose(SEXP coproposal, SEXP proposal, SEXP scale, double *z); static double logh(SEXP func, SEXP state, SEXP rho); static SEXP outfun(SEXP func, SEXP state, SEXP rho); static void check_valid_scale(SEXP scale, int i, int ncomp, int nx); SEXP temper(SEXP func1, SEXP initial, SEXP neighbors, SEXP nbatch, SEXP blen, SEXP nspac, SEXP scale, SEXP func2, SEXP debug, SEXP parallel, SEXP rho1, SEXP rho2) { if (! isFunction(func1)) error("argument \"func1\" must be function"); if (! isEnvironment(rho1)) error("argument \"rho1\" must be environment"); int is_parallel = getScalarLogical(parallel, "parallel"); int is_debug = getScalarLogical(debug, "debug"); if (! isLogical(neighbors)) error("argument \"neighbors\" must be logical"); if (! isMatrix(neighbors)) error("argument \"neighbors\" must be matrix"); if (nrows(neighbors) != ncols(neighbors)) error("argument \"neighbors\" must have same row and column dimension"); int ncomp = nrows(neighbors); if (ncomp <= 1) error("must have at least two components"); for (int i = 0; i < ncomp; i++) for (int j = 0; j < ncomp; j++) if (LOGICAL(neighbors)[i + ncomp * j] != LOGICAL(neighbors)[j + ncomp * i]) error("argument \"neighbors\" must be symmetric matrix"); if (! isReal(initial)) error("argument \"initial\" must be real"); if (! isAllFinite(initial)) error("argument \"initial\" must have all elements finite"); int nx; if (is_parallel) { if (! isMatrix(initial)) error("argument \"initial\" must be matrix in parallel case"); if (nrows(initial) != ncomp) error("row dim of args \"initial\" and \"neighbors\" must be same in parallel case"); nx = ncols(initial); } else /* serial */ { if (! (LENGTH(initial) > 1)) error("argument \"initial\" must have length > 1 in serial case"); double reali = REAL(initial)[0]; int i = reali; if (i != reali) error("1st elem of argument \"initial\" must be integer in serial case"); if (i <= 0 || i > ncomp) error("1st elem of argument \"initial\" must be in 1, ..., k in serial case"); nx = LENGTH(initial) - 1; } int int_nbatch = getScalarInteger(nbatch, "nbatch"); if (int_nbatch <= 0) error("argument \"nbatch\" must be positive"); int int_blen = getScalarInteger(blen, "blen"); if (int_blen <= 0) error("argument \"blen\" must be positive"); int int_nspac = getScalarInteger(nspac, "nspac"); if (int_nspac <= 0) error("argument \"nspac\" must be positive"); if (isNewList(scale)) { if (LENGTH(scale) != ncomp) error("argument \"scale\" must have length k if list"); for (int i = 0; i < ncomp; i++) { SEXP fred = VECTOR_ELT(scale, i); check_valid_scale(fred, i, ncomp, nx); } } else /* scale not list */ { check_valid_scale(scale, -1, ncomp, nx); } int no_outfun = isNull(func2); if (! no_outfun) { if (! isFunction(func2)) error("argument \"outfun\" must be function"); if (! isEnvironment(rho2)) error("argument \"rho2\" must be environment"); } double current_log_dens[ncomp]; if (is_parallel) { SEXP fred; PROTECT(fred = allocVector(REALSXP, nx + 1)); // protected: fred for (int i = 0; i < ncomp; i++) { REAL(fred)[0] = i + 1; for (int j = 0; j < nx; j++) REAL(fred)[j + 1] = REAL(initial)[i + ncomp * j]; current_log_dens[i] = logh(func1, fred, rho1); if (current_log_dens[i] == R_NegInf) error("log unnormalized density -Inf at initial state"); } UNPROTECT(1); // protected: (nothing) } else /* serial */ { for (int i = 0; i < ncomp; i++) current_log_dens[i] = R_NaN; int i = REAL(initial)[0] - 1; current_log_dens[i] = logh(func1, initial, rho1); if (current_log_dens[i] == R_NegInf) error("log unnormalized density -Inf at initial state"); } /* at this point, all arguments have been checked for validity */ // current_log_dens saves info that cuts in half // the number of invocations of log unnormalized density SEXP state, proposal, coproposal; PROTECT(state = duplicate(initial)); // protected: state PROTECT(proposal = allocVector(REALSXP, nx + 1)); // protected: state, proposal PROTECT(coproposal = allocVector(REALSXP, nx + 1)); // protected: state, proposal, coproposal int nout; if (no_outfun) { nout = is_parallel ? nx * ncomp : nx; } else /* has outfun */ { nout = LENGTH(outfun(func2, state, rho2)); } int niter = int_nbatch * int_blen * int_nspac; // TO DO LIST // // regular output (if serial) // // batch nbatch x nout matrix // ibatch nbatch x ncomp matrix // acceptx vector of length ncomp // accepti ncomp x ncomp matrix // initial copy of initial state // final final state // // regular output (if parallel) // // batch (if outfun) nbatch x nout matrix // (if no outfun) nbatch x ncomp x nx array // acceptx vector of length ncomp // accepti ncomp x ncomp matrix // initial copy of initial state // final final state // // debug output (if not parallel) // // which vector of length niter (TRUE if within-component) // unif_which vector of length niter (uniform for deciding which) // state niter x (nx + 1) matrix (state before) // proposal niter x (nx + 1) matrix // log_hastings niter vector // unif_hastings niter vector (uniform for deciding acceptance) // acceptd niter vector (TRUE if accept) // norm niter x nx matrix (std normals) // unif_choose niter vector (uniform for choosing neighbor) // // debug output (if parallel) // // which vector of length niter (TRUE if within-component) // unif_which vector of length niter (uniform for deciding which) // state niter x ncomp x nx array (state before) // coproposal niter x (nx + 1) matrix // proposal niter x (nx + 1) matrix // log_hastings niter vector // unif_hastings niter vector (uniform for deciding acceptance) // acceptd niter vector (TRUE if accept) // norm niter x nx matrix (std normals) // unif_choose niter x 2 matrix (uniforms for choosing components // to update) // // for within-component move coproposal and proposal have natural // meaning // for swap move we have 2 coproposals (i, x_i) and (j, x_j) // and 2 proposals (i, x_j) and (j, x_i) but since the information // here is quite redundant we just store (i, x_i) in "coproposal" // and (j, x_j) in "proposal" -- the checker can figure it out int len_result_regular = is_parallel ? 5 : 6; int len_result_debug = is_parallel ? 10 : 9; int len_result = len_result_regular; len_result += is_debug ? len_result_debug : 0; SEXP result, resultnames, acceptx, accepti, batch, ibatch, save_initial, save_final, debug_which, debug_unif_which, debug_state, debug_coproposal, debug_proposal, debug_log_hastings, debug_unif_hastings, debug_acceptd, debug_norm, debug_unif_choose; // shut up spurious gcc complaints about possibly uninitialized ibatch = debug_which = debug_unif_which = debug_state = debug_coproposal = debug_proposal = debug_log_hastings = debug_unif_hastings = debug_acceptd = debug_norm = debug_unif_choose = R_NilValue; PROTECT(result = allocVector(VECSXP, len_result)); // protected: state, proposal, coproposal, result PROTECT(resultnames = allocVector(STRSXP, len_result)); // protected: state, proposal, coproposal, result, resultnames namesgets(result, resultnames); UNPROTECT(1); // protected: state, proposal, coproposal, result // indirectly protected (part of result): resultnames if (no_outfun && is_parallel) PROTECT(batch = alloc3DArray(REALSXP, int_nbatch, ncomp, nx)); else PROTECT(batch = allocMatrix(REALSXP, int_nbatch, nout)); // protected: state, proposal, coproposal, result, batch // indirectly protected (part of result): resultnames SET_VECTOR_ELT(result, 0, batch); SET_STRING_ELT(resultnames, 0, mkChar("batch")); UNPROTECT(1); // protected: state, proposal, coproposal, result // indirectly protected (part of result): resultnames, batch PROTECT(acceptx = allocVector(REALSXP, ncomp)); // protected: state, proposal, coproposal, result, acceptx // indirectly protected (part of result): resultnames, batch SET_VECTOR_ELT(result, 1, acceptx); SET_STRING_ELT(resultnames, 1, mkChar("acceptx")); UNPROTECT(1); // protected: state, proposal, coproposal, result // indirectly protected (part of result): resultnames, batch, acceptx PROTECT(accepti = allocMatrix(REALSXP, ncomp, ncomp)); // protected: state, proposal, coproposal, result, accepti // indirectly protected (part of result): resultnames, batch, acceptx SET_VECTOR_ELT(result, 2, accepti); SET_STRING_ELT(resultnames, 2, mkChar("accepti")); UNPROTECT(1); // protected: state, proposal, coproposal, result // indirectly protected (part of result): resultnames, batch, acceptx, // accepti PROTECT(save_initial = duplicate(initial)); // protected: state, proposal, coproposal, result, save_initial // indirectly protected (part of result): resultnames, batch, acceptx, // accepti SET_VECTOR_ELT(result, 3, save_initial); SET_STRING_ELT(resultnames, 3, mkChar("initial")); UNPROTECT(1); // protected: state, proposal, coproposal, result // indirectly protected (part of result): resultnames, batch, acceptx, // accepti, save_initial SET_STRING_ELT(resultnames, 4, mkChar("final")); // at end need to duplicate state as save_final and copy to result[4] if (! is_parallel) { PROTECT(ibatch = allocMatrix(REALSXP, int_nbatch, ncomp)); // protected: state, proposal, coproposal, result, ibatch // indirectly protected (part of result): resultnames, batch, acceptx, // accepti, save_initial SET_VECTOR_ELT(result, 5, ibatch); SET_STRING_ELT(resultnames, 5, mkChar("ibatch")); UNPROTECT(1); // protected: state, proposal, coproposal, result // indirectly protected (part of result): resultnames, batch, acceptx, // accepti, save_initial, ibatch } // protected: state, proposal, coproposal, result // indirectly protected (part of result): resultnames, batch, acceptx, // accepti, save_initial, (if ! is_parallel) ibatch if (is_debug) { PROTECT(debug_which = allocVector(LGLSXP, niter)); // protected: state, proposal, coproposal, result, debug_which // indirectly protected (part of result): resultnames, batch, acceptx, // accepti, save_initial, (if ! is_parallel) ibatch SET_VECTOR_ELT(result, len_result_regular + 0, debug_which); SET_STRING_ELT(resultnames, len_result_regular + 0, mkChar("which")); UNPROTECT(1); // protected: state, proposal, coproposal, result // indirectly protected (part of result): resultnames, batch, acceptx, // accepti, save_initial, (if ! is_parallel) ibatch // debug_which PROTECT(debug_unif_which = allocVector(REALSXP, niter)); // protected: state, proposal, coproposal, result, debug_unif_which // indirectly protected (part of result): resultnames, batch, acceptx, // accepti, save_initial, (if ! is_parallel) ibatch // debug_which SET_VECTOR_ELT(result, len_result_regular + 1, debug_unif_which); SET_STRING_ELT(resultnames, len_result_regular + 1, mkChar("unif.which")); UNPROTECT(1); // protected: state, proposal, coproposal, result // indirectly protected (part of result): resultnames, batch, acceptx, // accepti, save_initial, (if ! is_parallel) ibatch, // debug_which, debug_unif_which if (is_parallel) PROTECT(debug_state = alloc3DArray(REALSXP, niter, ncomp, nx)); else PROTECT(debug_state = allocMatrix(REALSXP, niter, nx + 1)); // if is_parallel debug_state is array of dimension (niter, ncomp, nx) // otherwise (serial) it is matrix of dimension (niter, nx + 1) // // protected: state, proposal, coproposal, result, debug_state // indirectly protected (part of result): resultnames, batch, acceptx, // accepti, save_initial, (if ! is_parallel) ibatch, // debug_which, debug_unif_which SET_VECTOR_ELT(result, len_result_regular + 2, debug_state); SET_STRING_ELT(resultnames, len_result_regular + 2, mkChar("state")); UNPROTECT(1); // protected: state, proposal, coproposal, result // indirectly protected (part of result): resultnames, batch, acceptx, // accepti, save_initial, (if ! is_parallel) ibatch, // debug_which, debug_unif_which, debug_state PROTECT(debug_log_hastings = allocVector(REALSXP, niter)); // protected: state, proposal, coproposal, result, debug_log_hastings // indirectly protected (part of result): resultnames, batch, acceptx, // accepti, save_initial, (if ! is_parallel) ibatch, // debug_which, debug_unif_which, debug_state SET_VECTOR_ELT(result, len_result_regular + 3, debug_log_hastings); SET_STRING_ELT(resultnames, len_result_regular + 3, mkChar("log.hastings")); UNPROTECT(1); // protected: state, proposal, coproposal, result // indirectly protected (part of result): resultnames, batch, acceptx, // accepti, save_initial, (if ! is_parallel) ibatch, // debug_which, debug_unif_which, debug_state, // debug_log_hastings PROTECT(debug_unif_hastings = allocVector(REALSXP, niter)); // protected: state, proposal, coproposal, result, debug_unif_hastings // indirectly protected (part of result): resultnames, batch, acceptx, // accepti, save_initial, (if ! is_parallel) ibatch, // debug_which, debug_unif_which, debug_state, // debug_log_hastings SET_VECTOR_ELT(result, len_result_regular + 4, debug_unif_hastings); SET_STRING_ELT(resultnames, len_result_regular + 4, mkChar("unif.hastings")); UNPROTECT(1); // protected: state, proposal, coproposal, result // indirectly protected (part of result): resultnames, batch, acceptx, // accepti, save_initial, (if ! is_parallel) ibatch, // debug_which, debug_unif_which, debug_state, // debug_log_hastings, debug_unif_hastings PROTECT(debug_proposal = allocMatrix(REALSXP, niter, nx + 1)); // protected: state, proposal, coproposal, result, debug_proposal // indirectly protected (part of result): resultnames, batch, acceptx, // accepti, save_initial, (if ! is_parallel) ibatch, // debug_which, debug_unif_which, debug_state, // debug_log_hastings, debug_unif_hastings SET_VECTOR_ELT(result, len_result_regular + 5, debug_proposal); SET_STRING_ELT(resultnames, len_result_regular + 5, mkChar("proposal")); UNPROTECT(1); // protected: state, proposal, coproposal, result // indirectly protected (part of result): resultnames, batch, acceptx, // accepti, save_initial, (if ! is_parallel) ibatch, // debug_which, debug_unif_which, debug_state, // debug_log_hastings, debug_unif_hastings, debug_proposal PROTECT(debug_acceptd = allocVector(LGLSXP, niter)); // protected: state, proposal, coproposal, result, debug_acceptd // indirectly protected (part of result): resultnames, batch, acceptx, // accepti, save_initial, (if ! is_parallel) ibatch, // debug_which, debug_unif_which, debug_state, // debug_log_hastings, debug_unif_hastings, debug_proposal SET_VECTOR_ELT(result, len_result_regular + 6, debug_acceptd); SET_STRING_ELT(resultnames, len_result_regular + 6, mkChar("acceptd")); UNPROTECT(1); // protected: state, proposal, coproposal, result // indirectly protected (part of result): resultnames, batch, acceptx, // accepti, save_initial, (if ! is_parallel) ibatch, // debug_which, debug_unif_which, debug_state, // debug_log_hastings, debug_unif_hastings, debug_proposal // debug_acceptd PROTECT(debug_norm = allocMatrix(REALSXP, niter, nx)); // protected: state, proposal, coproposal, result, debug_norm // indirectly protected (part of result): resultnames, batch, acceptx, // accepti, save_initial, (if ! is_parallel) ibatch, // debug_which, debug_unif_which, debug_state, // debug_log_hastings, debug_unif_hastings, debug_proposal // debug_acceptd SET_VECTOR_ELT(result, len_result_regular + 7, debug_norm); SET_STRING_ELT(resultnames, len_result_regular + 7, mkChar("norm")); UNPROTECT(1); // protected: state, proposal, coproposal, result // indirectly protected (part of result): resultnames, batch, acceptx, // accepti, save_initial, (if ! is_parallel) ibatch, // debug_which, debug_unif_which, debug_state, // debug_log_hastings, debug_unif_hastings, debug_proposal // debug_acceptd, debug_norm if (is_parallel) PROTECT(debug_unif_choose = allocMatrix(REALSXP, niter, 2)); else PROTECT(debug_unif_choose = allocVector(REALSXP, niter)); // if is_parallel debug_unif_choose is matrix of dimension (niter, 2) // if ! is_parallel (serial) debug_unif_choose is vector of length niter // // protected: state, proposal, coproposal, result, debug_unif_choose // indirectly protected (part of result): resultnames, batch, acceptx, // accepti, save_initial, (if ! is_parallel) ibatch, // debug_which, debug_unif_which, debug_state, // debug_log_hastings, debug_unif_hastings, debug_proposal // debug_acceptd, debug_norm SET_VECTOR_ELT(result, len_result_regular + 8, debug_unif_choose); SET_STRING_ELT(resultnames, len_result_regular + 8, mkChar("unif.choose")); UNPROTECT(1); // protected: state, proposal, coproposal, result // indirectly protected (part of result): resultnames, batch, acceptx, // accepti, save_initial, (if ! is_parallel) ibatch, // debug_which, debug_unif_which, debug_state, // debug_log_hastings, debug_unif_hastings, debug_proposal // debug_acceptd, debug_norm, debug_unif_choose if (is_parallel) { PROTECT(debug_coproposal = allocMatrix(REALSXP, niter, nx + 1)); // protected: state, proposal, coproposal, result, debug_coproposal // indirectly protected (part of result): resultnames, batch, // acceptx, accepti, save_initial, // (if ! is_parallel) ibatch, debug_which, // debug_unif_which, debug_state, debug_log_hastings, // debug_unif_hastings, debug_proposal debug_acceptd, // debug_norm, debug_unif_choose SET_VECTOR_ELT(result, len_result_regular + 9, debug_coproposal); SET_STRING_ELT(resultnames, len_result_regular + 9, mkChar("coproposal")); UNPROTECT(1); // protected: state, proposal, coproposal, result // indirectly protected (part of result): resultnames, batch, // acceptx, accepti, save_initial, // (if ! is_parallel) ibatch, debug_which, // debug_unif_which, debug_state, debug_log_hastings, // debug_unif_hastings, debug_proposal debug_acceptd, // debug_norm, debug_unif_choose, debug_coproposal } // protected: state, proposal, coproposal, result // indirectly protected (part of result): resultnames, batch, // acceptx, accepti, save_initial, // (if ! is_parallel) ibatch, debug_which, // debug_unif_which, debug_state, debug_log_hastings, // debug_unif_hastings, debug_proposal debug_acceptd, // debug_norm, debug_unif_choose, // (if is_parallel) debug_coproposal } // protected: state, proposal, coproposal, result // indirectly protected (part of result): resultnames, batch, acceptx, // accepti, save_initial, (if ! is_parallel) ibatch, // (all the rest if is_debug) debug_which, debug_unif_which, // debug_state, debug_log_hastings, debug_unif_hastings, // debug_proposal debug_acceptd, debug_norm, debug_unif_choose, // (if is_parallel & if_debug) debug_coproposal // at this point, entire output structure (SEXP result) is set up, except // for aforementioned need to duplicate final state and put in result[4] GetRNGstate(); // need buffers for acceptance rate(s) double acceptx_numer[ncomp]; double acceptx_denom[ncomp]; double accepti_numer[ncomp][ncomp]; double accepti_denom[ncomp][ncomp]; for (int i = 0; i < ncomp; i++) { acceptx_numer[i] = 0; acceptx_denom[i] = 0; for (int j = 0; j < ncomp; j++) { accepti_numer[i][j] = 0; accepti_denom[i][j] = 0; } } // need neighbor counts and neighbors // note: the_neighbors uses zero-origin indexing both for indexing // and values double n_neighbors[ncomp]; for (int i = 0; i < ncomp; i++) { n_neighbors[i] = 0; for (int j = 0; j < ncomp; j++) n_neighbors[i] += LOGICAL(neighbors)[i + ncomp * j]; } double the_neighbors[ncomp][ncomp]; for (int i = 0; i < ncomp; i++) { for (int j = 0, k = 0; j < ncomp; j++) { if (LOGICAL(neighbors)[i + ncomp * j]) the_neighbors[i][k++] = j; } } // need buffers for batch means double batch_buff[nout]; double ibatch_buff[ncomp]; for (int kbatch = 0, iiter = 0; kbatch < int_nbatch; kbatch++) { for (int i = 0; i < nout; i++) batch_buff[i] = 0.0; for (int i = 0; i < ncomp; i++) ibatch_buff[i] = 0.0; for (int jbatch = 0; jbatch < int_blen; jbatch++) { for (int ispac = 0; ispac < int_nspac; ispac++, iiter++) { if (is_debug) { int len_state = is_parallel ? ncomp * nx : nx + 1; for (int j = 0; j < len_state; j++) { // length(debug_state) = niter * len_state // regardless of whether is_parallel is TRUE or FALSE REAL(debug_state)[iiter + niter * j] = REAL(state)[j]; } } double my_unif_which = unif_rand(); int my_which = my_unif_which < 0.5; if (is_debug) { LOGICAL(debug_which)[iiter] = my_which; REAL(debug_unif_which)[iiter] = my_unif_which; } if (my_which) /* within-component update */ { if (is_parallel) { // note: my_i and my_j are 1-origin indexing (for R) // go from 1, ..., ncomp // everything else 0-origin indexing (for C) double unif_choose = unif_rand(); int my_i = trunc(ncomp * unif_choose) + 1; if (my_i > ncomp) my_i--; if (my_i <= 0 || my_i > ncomp) error("Can't happen: my_i out of range"); REAL(coproposal)[0] = my_i; for (int j = 0; j < nx; j++) REAL(coproposal)[j + 1] = REAL(state)[(my_i - 1) + ncomp * j]; double z[nx]; propose(coproposal, proposal, scale, z); double my_coproposal_log_dens = current_log_dens[my_i - 1]; if (my_coproposal_log_dens == R_NegInf) error("Can't happen: log density -Inf at current state"); double my_new_log_dens = logh(func1, proposal, rho1); double my_log_hastings = my_new_log_dens - my_coproposal_log_dens; if (isnan(my_log_hastings) || (isinf(my_log_hastings) && my_log_hastings > 0)) error("Can't happen: log hastings ratio +Inf or NaN\n"); int my_accept = 1; double my_unif_hastings = R_NaReal; if (my_log_hastings < 0.0) { my_unif_hastings = unif_rand(); my_accept = my_unif_hastings < exp(my_log_hastings); } if (is_debug) { for (int j = 0; j <= nx; j++) REAL(debug_proposal)[iiter + niter * j] = REAL(proposal)[j]; for (int j = 0; j <= nx; j++) { // since we are in blocks with is_parallel // and is_debug, R object debug_coproposal // is allocated REAL(debug_coproposal)[iiter + niter * j] = REAL(coproposal)[j]; } REAL(debug_log_hastings)[iiter] = my_log_hastings; REAL(debug_unif_hastings)[iiter] = my_unif_hastings; LOGICAL(debug_acceptd)[iiter] = my_accept; for (int j = 0; j < nx; j++) REAL(debug_norm)[iiter + niter * j] = z[j]; // because we are inside if (is_parallel) block // dim(debug_unif_choose) == c(niter, 2) REAL(debug_unif_choose)[iiter] = unif_choose; REAL(debug_unif_choose)[iiter + niter] = R_NaReal; } if (my_accept) { for (int j = 0; j < nx; j++) REAL(state)[(my_i - 1) + ncomp * j] = REAL(proposal)[j + 1]; current_log_dens[my_i - 1] = my_new_log_dens; acceptx_numer[my_i - 1]++; } acceptx_denom[my_i - 1]++; } else /* serial */ { int my_i = REAL(state)[0]; if (my_i <= 0 || my_i > ncomp) error("Can't happen: my_i out of range"); REAL(coproposal)[0] = my_i; for (int j = 0; j < nx; j++) REAL(coproposal)[j + 1] = REAL(state)[j + 1]; double z[nx]; propose(coproposal, proposal, scale, z); double my_new_log_dens = logh(func1, proposal, rho1); double my_old_log_dens = current_log_dens[my_i - 1]; if (my_old_log_dens == R_NegInf) error("Can't happen: log density -Inf at current state"); double my_log_hastings = my_new_log_dens - my_old_log_dens; if (isnan(my_log_hastings) || (isinf(my_log_hastings) && my_log_hastings > 0)) { error("Can't happen: log hastings ratio +Inf or NaN\n"); } int my_accept = 1; double my_unif_hastings = R_NaReal; if (my_log_hastings < 0.0) { my_unif_hastings = unif_rand(); my_accept = my_unif_hastings < exp(my_log_hastings); } if (is_debug) { for (int j = 0; j <= nx; j++) REAL(debug_proposal)[iiter + niter * j] = REAL(proposal)[j]; REAL(debug_log_hastings)[iiter] = my_log_hastings; REAL(debug_unif_hastings)[iiter] = my_unif_hastings; LOGICAL(debug_acceptd)[iiter] = my_accept; for (int j = 0; j < nx; j++) REAL(debug_norm)[iiter + niter * j] = z[j]; // because we are in ! is_parallel block // length(debug_unif_choose) == niter REAL(debug_unif_choose)[iiter] = R_NaReal; } if (my_accept) { for (int j = 0; j <= nx; j++) REAL(state)[j] = REAL(proposal)[j]; current_log_dens[my_i - 1] = my_new_log_dens; acceptx_numer[my_i - 1]++; } acceptx_denom[my_i - 1]++; } } else /* jump/swap update */ { if (is_parallel) { double unif_choose_one = unif_rand(); double unif_choose_two = unif_rand(); int my_i = trunc(ncomp * unif_choose_one) + 1; if (my_i > ncomp) my_i--; if (my_i <= 0 || my_i > ncomp) error("Can't happen: my_i out of range"); REAL(coproposal)[0] = my_i; for (int j = 0; j < nx; j++) REAL(coproposal)[j + 1] = REAL(state)[(my_i - 1) + ncomp * j]; int my_i_neighbors = n_neighbors[my_i - 1]; int foo = trunc(my_i_neighbors * unif_choose_two) + 1; if (foo > my_i_neighbors) foo--; int my_j = the_neighbors[my_i - 1][foo - 1] + 1; if (my_j <= 0 || my_j > ncomp) error("Can't happen: my_j out of range"); REAL(proposal)[0] = my_j; for (int j = 0; j < nx; j++) REAL(proposal)[j + 1] = REAL(state)[(my_j - 1) + ncomp * j]; double my_coproposal_log_dens = current_log_dens[my_i - 1]; if (my_coproposal_log_dens == R_NegInf) error("Can't happen: log density -Inf at current state"); double my_proposal_log_dens = current_log_dens[my_j - 1]; if (my_proposal_log_dens == R_NegInf) error("Can't happen: log density -Inf at current state"); if (is_debug) { for (int j = 0; j <= nx; j++) REAL(debug_proposal)[iiter + niter * j] = REAL(proposal)[j]; for (int j = 0; j <= nx; j++) { // since we are in blocks with is_parallel // and is_debug, R object debug_coproposal // is allocated REAL(debug_coproposal)[iiter + niter * j] = REAL(coproposal)[j]; } } // proposal and coproposal now saved and logh evaluated // for them, can clobber to evaluate for swap REAL(proposal)[0] = my_i; REAL(coproposal)[0] = my_j; double my_swapped_coproposal_log_dens = logh(func1, coproposal, rho1); double my_swapped_proposal_log_dens = logh(func1, proposal, rho1); double my_log_hastings = my_swapped_proposal_log_dens + my_swapped_coproposal_log_dens - my_proposal_log_dens - my_coproposal_log_dens; if (isnan(my_log_hastings) || (isinf(my_log_hastings) && my_log_hastings > 0)) error("Can't happen: log hastings ratio +Inf or NaN\n"); int my_accept = 1; double my_unif_hastings = R_NaReal; if (my_log_hastings < 0.0) { my_unif_hastings = unif_rand(); my_accept = my_unif_hastings < exp(my_log_hastings); } if (is_debug) { REAL(debug_log_hastings)[iiter] = my_log_hastings; REAL(debug_unif_hastings)[iiter] = my_unif_hastings; LOGICAL(debug_acceptd)[iiter] = my_accept; for (int j = 0; j < nx; j++) REAL(debug_norm)[iiter + niter * j] = R_NaReal; REAL(debug_unif_choose)[iiter] = unif_choose_one; REAL(debug_unif_choose)[iiter + niter] = unif_choose_two; } if (my_accept) { for (int j = 0; j < nx; j++) REAL(state)[(my_j - 1) + ncomp * j] = REAL(coproposal)[j + 1]; for (int j = 0; j < nx; j++) REAL(state)[(my_i - 1) + ncomp * j] = REAL(proposal)[j + 1]; current_log_dens[my_i - 1] = my_swapped_proposal_log_dens; current_log_dens[my_j - 1] = my_swapped_coproposal_log_dens; accepti_numer[my_i - 1][my_j - 1]++; } accepti_denom[my_i - 1][my_j - 1]++; } else /* serial */ { int my_i = REAL(state)[0]; if (my_i <= 0 || my_i > ncomp) error("Can't happen: my_i out of range"); int my_i_neighbors = n_neighbors[my_i - 1]; double unif_choose = unif_rand(); int foo = trunc(my_i_neighbors * unif_choose) + 1; if (foo > my_i_neighbors) foo--; int my_j = the_neighbors[my_i - 1][foo - 1] + 1; int my_j_neighbors = n_neighbors[my_j - 1]; if (my_j <= 0 || my_j > ncomp) error("Can't happen: my_j out of range"); REAL(proposal)[0] = my_j; for (int j = 0; j < nx; j++) REAL(proposal)[j + 1] = REAL(state)[j + 1]; double my_new_log_dens = logh(func1, proposal, rho1); double my_old_log_dens = current_log_dens[my_i - 1]; if (my_old_log_dens == R_NegInf) error("Can't happen: log density -Inf at current state"); double my_log_hastings = my_new_log_dens - my_old_log_dens + log(my_i_neighbors) - log(my_j_neighbors); if (isnan(my_log_hastings) || (isinf(my_log_hastings) && my_log_hastings > 0)) error("Can't happen: log hastings ratio +Inf or NaN\n"); int my_accept = 1; double my_unif_hastings = R_NaReal; if (my_log_hastings < 0.0) { my_unif_hastings = unif_rand(); my_accept = my_unif_hastings < exp(my_log_hastings); } if (is_debug) { for (int j = 0; j <= nx; j++) REAL(debug_proposal)[iiter + niter * j] = REAL(proposal)[j]; REAL(debug_log_hastings)[iiter] = my_log_hastings; REAL(debug_unif_hastings)[iiter] = my_unif_hastings; LOGICAL(debug_acceptd)[iiter] = my_accept; for (int j = 0; j < nx; j++) REAL(debug_norm)[iiter + niter * j] = R_NaReal; REAL(debug_unif_choose)[iiter] = unif_choose; } if (my_accept) { for (int j = 0; j <= nx; j++) REAL(state)[j] = REAL(proposal)[j]; current_log_dens[my_j - 1] = my_new_log_dens; accepti_numer[my_i - 1][my_j - 1]++; } accepti_denom[my_i - 1][my_j - 1]++; } } R_CheckUserInterrupt(); } /* end of inner loop (one iteration) */ if (no_outfun) { if (is_parallel) for (int i = 0; i < nout; i++) batch_buff[i] += REAL(state)[i]; else for (int i = 0; i < nout; i++) batch_buff[i] += REAL(state)[i + 1]; } else /* has outfun */ { SEXP fred = outfun(func2, state, rho2); if (LENGTH(fred) != nout) error("function outfun returns results of different lengths"); for (int i = 0; i < nout; i++) batch_buff[i] += REAL(fred)[i]; } if (! is_parallel) ibatch_buff[((int) REAL(state)[0]) - 1]++; } /* end of middle loop (one batch) */ if (no_outfun && is_parallel) for (int i = 0; i < ncomp; i++) for (int j = 0; j < nx; j++) REAL(batch)[kbatch + int_nbatch * (i + ncomp * j)] = batch_buff[i + ncomp * j] / int_blen; else for (int i = 0; i < nout; i++) REAL(batch)[kbatch + int_nbatch * i] = batch_buff[i] / int_blen; if (! is_parallel) for (int i = 0; i < ncomp; i++) { // since we are in ! is_parallel block ibatch is allocated REAL(ibatch)[kbatch + int_nbatch * i] = ibatch_buff[i] / int_blen; } } /* end of outer loop */ for (int i = 0; i < ncomp; i++) REAL(acceptx)[i] = acceptx_numer[i] / acceptx_denom[i]; for (int i = 0; i < ncomp; i++) for (int j = 0; j < ncomp; j++) if (LOGICAL(neighbors)[i + ncomp * j]) REAL(accepti)[i + ncomp * j] = accepti_numer[i][j] / accepti_denom[i][j]; else REAL(accepti)[i + ncomp * j] = R_NaReal; PutRNGstate(); PROTECT(save_final = duplicate(state)); // protected: state, proposal, coproposal, result, save_final // indirectly protected (part of result): resultnames, batch, acceptx, // accepti, save_initial, (if ! is_parallel) ibatch, // (all the rest if is_debug) debug_which, debug_unif_which, // debug_state, debug_log_hastings, debug_unif_hastings, // debug_proposal debug_acceptd, debug_norm, debug_unif_choose, // (if is_parallel & if_debug) debug_coproposal SET_VECTOR_ELT(result, 4, save_final); UNPROTECT(5); return result; } static void check_valid_scale(SEXP scale, int i, int ncomp, int nx) { if (i > ncomp) error("check_valid_scale: i = %d, ncomp = %d, invalid\n", i, ncomp); if (! isReal(scale)) { if (i >= 0) error("component %d of scale not type double", i + 1); else error("scale not type double"); } if (! isAllFinite(scale)) { if (i >= 0) error("component %d of scale has non-finite element", i + 1); else error("scale has non-finite element"); } if (isMatrix(scale)) { if (nrows(scale) != nx) { if (i >= 0) error("component %d of scale matrix with wrong row dim", i + 1); else error("scale matrix with wrong row dim"); } if (ncols(scale) != nx) { if (i >= 0) error("component %d of scale matrix with wrong col dim", i + 1); else error("scale matrix with wrong col dim"); } } else /* scale not matrix */ { if (! (LENGTH(scale) == 1 || LENGTH(scale) == nx)) { if (i >= 0) error("component %d of scale not matrix, scalar, or vector of length k", i + 1); else error("scale not matrix, scalar, or vector of length k"); } } } static double logh(SEXP func, SEXP state, SEXP rho) { SEXP call, result, foo; double bar; PROTECT(call = lang2(func, state)); PROTECT(result = eval(call, rho)); if (! isNumeric(result)) error("log unnormalized density function returned non-numeric"); if (LENGTH(result) != 1) error("log unnormalized density function returned non-scalar"); PROTECT(foo = coerceVector(result, REALSXP)); bar = REAL(foo)[0]; UNPROTECT(3); if (bar == R_PosInf) error("log unnormalized density function returned +Inf"); if (R_IsNaN(bar) || R_IsNA(bar)) error("log unnormalized density function returned NA or NaN"); /* Note: -Inf is allowed */ return bar; } static SEXP outfun(SEXP func, SEXP state, SEXP rho) { SEXP call, result, foo; PROTECT(call = lang2(func, state)); PROTECT(result = eval(call, rho)); if (! isNumeric(result)) error("outfun returned non-numeric"); PROTECT(foo = coerceVector(result, REALSXP)); UNPROTECT(3); return foo; } static void propose(SEXP coproposal, SEXP proposal, SEXP scale, double *z) { int my_i = REAL(coproposal)[0]; int nx = LENGTH(coproposal) - 1; for (int j = 0; j < nx; j++) z[j] = norm_rand(); if (isNewList(scale)) scale = VECTOR_ELT(scale, my_i - 1); REAL(proposal)[0] = my_i; if (LENGTH(scale) == 1) { for (int j = 0; j < nx; j++) REAL(proposal)[j + 1] = REAL(coproposal)[j + 1] + REAL(scale)[0] * z[j]; } else if (LENGTH(scale) == nx) { for (int j = 0; j < nx; j++) REAL(proposal)[j + 1] = REAL(coproposal)[j + 1] + REAL(scale)[j] * z[j]; } else /* scale is nx by nx matrix */ { for (int j = 0; j < nx; j++) REAL(proposal)[j + 1] = REAL(coproposal)[j + 1]; for (int j = 0, m = 0; j < nx; j++) { double u = z[j]; for (int k = 0; k < nx; k++) REAL(proposal)[k + 1] += REAL(scale)[m++] * u; } } } mcmc/src/init.c0000644000176200001440000000127313636316205013077 0ustar liggesusers #include #include #include #include "mcmc.h" static R_NativePrimitiveArgType olbm_types[7] = {REALSXP, INTSXP, INTSXP, INTSXP, REALSXP, REALSXP, LGLSXP}; static R_CMethodDef cMethods[] = { {"olbm", (DL_FUNC) &olbm, 7, olbm_types}, {NULL, NULL, 0, NULL} }; static R_CallMethodDef callMethods[] = { {"metrop", (DL_FUNC) &metrop, 10}, {"temper", (DL_FUNC) &temper, 12}, {"initseq", (DL_FUNC) &initseq, 1}, {NULL, NULL, 0} }; void attribute_visible R_init_mcmc(DllInfo *info) { R_registerRoutines(info, cMethods, callMethods, NULL, NULL); R_useDynamicSymbols(info, FALSE); R_forceSymbols(info, TRUE); } mcmc/src/getListElement.c0000644000176200001440000000066613636316205015066 0ustar liggesusers #include #include #include "myutil.h" SEXP getListElement(SEXP list, char *str) { SEXP elmt = R_NilValue; SEXP names = getAttrib(list, R_NamesSymbol); int i; if (names == R_NilValue) return R_NilValue; for (i = 0; i < length(list); i++) if(strcmp(CHAR(STRING_ELT(names, i)), str) == 0) { elmt = VECTOR_ELT(list, i); break; } return elmt; } mcmc/src/initseq.c0000644000176200001440000000716213636316205013613 0ustar liggesusers #include #include #include "myutil.h" #include "mcmc.h" SEXP initseq(SEXP x) { SEXP xreal; if (! isNumeric(x)) error("argument must be numeric"); PROTECT(xreal = coerceVector(x, REALSXP)); if (! isAllFinite(x)) error("all elements of argument must be finite"); int len = LENGTH(xreal); double *buff = (double *) R_alloc(len / 2, sizeof(double)); int i; double gamma_zero = 0.0; /* for gcc -Wall -Wextra */ for (i = 0; i < len / 2; ++i) { int lag1 = 2 * i; double gam1 = 0.0; for (int j = 0; j + lag1 < len; ++j) gam1 += REAL(xreal)[j] * REAL(xreal)[j + lag1]; gam1 /= len; if (i == 0) gamma_zero = gam1; int lag2 = lag1 + 1; double gam2 = 0.0; for (int j = 0; j + lag2 < len; ++j) gam2 += REAL(xreal)[j] * REAL(xreal)[j + lag2]; gam2 /= len; buff[i] = gam1 + gam2; if (buff[i] < 0.0) { buff[i] = 0.0; ++i; break; } } SEXP gamma_pos, gamma_dec, gamma_con; PROTECT(gamma_pos = allocVector(REALSXP, i)); for (int j = 0; j < i; ++j) REAL(gamma_pos)[j] = buff[j]; for (int j = 1; j < i; ++j) if (buff[j] > buff[j - 1]) buff[j] = buff[j - 1]; PROTECT(gamma_dec = allocVector(REALSXP, i)); for (int j = 0; j < i; ++j) REAL(gamma_dec)[j] = buff[j]; for (int j = i - 1; j > 0; --j) buff[j] -= buff[j - 1]; /* Pool Adjacent Violators Algorithm (PAVA) */ double *puff = (double *) R_alloc(i, sizeof(double)); int *nuff = (int *) R_alloc(i, sizeof(int)); int nstep = 0; for (int j = 1; j < i; ++j) { puff[nstep] = buff[j]; nuff[nstep] = 1; ++nstep; while(nstep > 1 && puff[nstep - 1] / nuff[nstep - 1] < puff[nstep - 2] / nuff[nstep - 2]) { puff[nstep - 2] += puff[nstep - 1]; nuff[nstep - 2] += nuff[nstep - 1]; --nstep; } } for (int jstep = 0, j = 1; jstep < nstep; ++jstep) { double muff = puff[jstep] / nuff[jstep]; for (int k = 0; k < nuff[jstep]; ++j, ++k) buff[j] = buff[j - 1] + muff; } PROTECT(gamma_con = allocVector(REALSXP, i)); for (int j = 0; j < i; ++j) REAL(gamma_con)[j] = buff[j]; double var_pos = 0.0; double var_dec = 0.0; double var_con = 0.0; for (int j = 0; j < i; ++j) { var_pos += REAL(gamma_pos)[j]; var_dec += REAL(gamma_dec)[j]; var_con += REAL(gamma_con)[j]; } var_pos *= 2.0; var_dec *= 2.0; var_con *= 2.0; var_pos -= gamma_zero; var_dec -= gamma_zero; var_con -= gamma_zero; SEXP result, resultnames; PROTECT(result = allocVector(VECSXP, 7)); PROTECT(resultnames = allocVector(STRSXP, 7)); SET_VECTOR_ELT(result, 0, ScalarReal(gamma_zero)); SET_STRING_ELT(resultnames, 0, mkChar("gamma0")); SET_VECTOR_ELT(result, 1, gamma_pos); SET_STRING_ELT(resultnames, 1, mkChar("Gamma.pos")); SET_VECTOR_ELT(result, 2, gamma_dec); SET_STRING_ELT(resultnames, 2, mkChar("Gamma.dec")); SET_VECTOR_ELT(result, 3, gamma_con); SET_STRING_ELT(resultnames, 3, mkChar("Gamma.con")); SET_VECTOR_ELT(result, 4, ScalarReal(var_pos)); SET_STRING_ELT(resultnames, 4, mkChar("var.pos")); SET_VECTOR_ELT(result, 5, ScalarReal(var_dec)); SET_STRING_ELT(resultnames, 5, mkChar("var.dec")); SET_VECTOR_ELT(result, 6, ScalarReal(var_con)); SET_STRING_ELT(resultnames, 6, mkChar("var.con")); namesgets(result, resultnames); UNPROTECT(6); return result; } mcmc/src/isAllFinite.c0000644000176200001440000000046013636316205014334 0ustar liggesusers #include #include #include "myutil.h" int isAllFinite(SEXP foo) { int d, i; int result = TRUE; if (! isReal(foo)) error("argument must be real"); d = LENGTH(foo); for (i = 0; i < d; i++) result &= R_finite(REAL(foo)[i]); return result; } mcmc/src/olbm.c0000644000176200001440000000324313636316205013064 0ustar liggesusers #include #include "mcmc.h" /* overlapping batch means for vector time series * * input: * * x time series, n x p matrix, n time points and p components * len batch length * * output: * * mean sample mean, a p vector * var estimated variance of sample mean, a p x p matrix * */ #define X(I,J) x[(I) + n * (J)] #define VAR(I,J) var[(I) + p * (J)] void olbm(double *x, int *nin, int *pin, int *lin, double *mean, double *var, int *nocalcin) { int n = nin[0]; int p = pin[0]; int len = lin[0]; double nbatch = n - len + 1; int nocalc = nocalcin[0]; double *work = (double *) R_alloc(p, sizeof(double)); int i, j, k, l; if (len > n) error("len > n\n"); if (! nocalc) for (i=0; i=0; j--) VAR(i,j) = (work[i] - mean[i]) * (work[j] - mean[j]); } for (k=0, l=len; l=0; j--) VAR(i,j) += (work[i] - mean[i]) * (work[j] - mean[j]); } /* fix up means and variances, divide out factors of len and len^2 */ for (i=0; i #include SEXP getListElement(SEXP list, char *str); int getScalarInteger(SEXP foo, char *argname); int getScalarLogical(SEXP foo, char *argname); int isAllFinite(SEXP foo); #endif /* MCMC_MYUTIL_H */ mcmc/src/Makevars0000644000176200001440000000003313636316205013455 0ustar liggesusersPKG_CFLAGS=$(C_VISIBILITY) mcmc/src/mcmc.h0000644000176200001440000000103513636316205013054 0ustar liggesusers #ifndef MCMC_MCMC_H #define MCMC_MCMC_H #include #include SEXP metrop(SEXP func1, SEXP initial, SEXP nbatch, SEXP blen, SEXP nspac, SEXP scale, SEXP func2, SEXP debug, SEXP rho1, SEXP rho2); SEXP temper(SEXP func1, SEXP initial, SEXP neighbors, SEXP nbatch, SEXP blen, SEXP nspac, SEXP scale, SEXP func2, SEXP debug, SEXP parallel, SEXP rho1, SEXP rho2); SEXP initseq(SEXP x); void olbm(double *x, int *nin, int *pin, int *lin, double *mean, double *var, int *nocalcin); #endif /* MCMC_MCMC_H */ mcmc/src/getScalarLogical.c0000644000176200001440000000046613636316205015337 0ustar liggesusers #include #include #include "myutil.h" int getScalarLogical(SEXP foo, char *argname) { if (! isLogical(foo)) error("argument \"%s\" must be logical", argname); if (LENGTH(foo) != 1) error("argument \"%s\" must be scalar", argname); return LOGICAL(foo)[0]; } mcmc/src/metrop.c0000644000176200001440000005067714524740250013454 0ustar liggesusers #include #include #include #include #include "myutil.h" #include "mcmc.h" static void proposal_setup(SEXP scale, int d); static void propose(SEXP state, SEXP proposal, double *z); static double logh(SEXP func, SEXP state, SEXP rho); static int out_setup(SEXP func, SEXP rho, SEXP state); static void outfun(SEXP state, SEXP buffer); SEXP metrop(SEXP func1, SEXP initial, SEXP nbatch, SEXP blen, SEXP nspac, SEXP scale, SEXP func2, SEXP debug, SEXP rho1, SEXP rho2) { int int_nbatch, int_blen, int_nspac, int_debug; SEXP state, proposal; int dim_state, dim_out; SEXP result, resultnames, acceptance_rate, path, save_initial, save_final, acceptance_rate_batches; double *batch_buffer; SEXP out_buffer; double acceptances = 0.0; double tries = 0.0; double current_log_dens; if (! isFunction(func1)) error("argument \"func1\" must be function"); if (! isEnvironment(rho1)) error("argument \"rho1\" must be environment"); if (! isNumeric(initial)) error("argument \"initial\" must be numeric"); if (! isNumeric(nbatch)) error("argument \"nbatch\" must be numeric"); if (! isNumeric(blen)) error("argument \"blen\" must be numeric"); if (! isNumeric(nspac)) error("argument \"nspac\" must be numeric"); if (! isNumeric(scale)) error("argument \"scale\" must be numeric"); if (! isLogical(debug)) error("argument \"debug\" must be logical"); int_nbatch = getScalarInteger(nbatch, "nbatch"); int_blen = getScalarInteger(blen, "blen"); int_nspac = getScalarInteger(nspac, "nspac"); int_debug = getScalarLogical(debug, "debug"); if (int_nbatch <= 0) error("argument \"nbatch\" must be positive"); if (int_blen <= 0) error("argument \"blen\" must be positive"); if (int_nspac <= 0) error("argument \"nspac\" must be positive"); SEXP foompter; PROTECT(foompter = duplicate(initial)); // protected: foompter PROTECT(state = coerceVector(foompter, REALSXP)); // protected: foompter, state if (! isAllFinite(state)) error("all elements of \"state\" must be finite"); dim_state = LENGTH(state); if (dim_state == 0) error("argument \"initial\" must have nonzero length"); PROTECT(proposal = allocVector(REALSXP, dim_state)); // protected: foompter, state, proposal proposal_setup(scale, dim_state); dim_out = out_setup(func2, rho2, state); batch_buffer = (double *) R_alloc(dim_out, sizeof(double)); PROTECT(out_buffer = allocVector(REALSXP, dim_out)); // protected: foompter, state, proposal, out_buffer if (! int_debug) { PROTECT(result = allocVector(VECSXP, 5)); // protected: foompter, state, proposal, out_buffer, result PROTECT(resultnames = allocVector(STRSXP, 5)); // protected: foompter, state, proposal, out_buffer, result, // resultnames } else { PROTECT(result = allocVector(VECSXP, 11)); // protected: foompter, state, proposal, out_buffer, result PROTECT(resultnames = allocVector(STRSXP, 11)); // protected: foompter, state, proposal, out_buffer, result, // resultnames } // same protected regardless of which choice in above if PROTECT(acceptance_rate = allocVector(REALSXP, 1)); // protected: foompter, state, proposal, out_buffer, result, // resultnames, acceptance_rate SET_VECTOR_ELT(result, 0, acceptance_rate); PROTECT(path = allocMatrix(REALSXP, dim_out, int_nbatch)); // protected: foompter, state, proposal, out_buffer, result, // resultnames, acceptance_rate, path SET_VECTOR_ELT(result, 1, path); PROTECT(save_initial = duplicate(state)); // protected: foompter, state, proposal, out_buffer, result, // resultnames, acceptance_rate, path, save_initial SET_VECTOR_ELT(result, 2, save_initial); /* cannot set final yet because we haven't got it yet (final value at end of run). See third to last statement of this function. */ PROTECT(acceptance_rate_batches = allocVector(REALSXP, int_nbatch)); // protected: foompter, state, proposal, out_buffer, result, // resultnames, acceptance_rate, path, save_initial, // acceptance_rate_batches SET_VECTOR_ELT(result, 4, acceptance_rate_batches); UNPROTECT(4); // protected: foompter, state, proposal, out_buffer, result, // resultnames // indirectly protected (part of result): acceptance_rate, path, // save_initial, acceptance_rate_batches SET_STRING_ELT(resultnames, 0, mkChar("accept")); SET_STRING_ELT(resultnames, 1, mkChar("batch")); SET_STRING_ELT(resultnames, 2, mkChar("initial")); SET_STRING_ELT(resultnames, 3, mkChar("final")); SET_STRING_ELT(resultnames, 4, mkChar("accept.batch")); if (int_debug) { SEXP spath, ppath, gpath, upath, zpath, apath; int nn = int_nbatch * int_blen * int_nspac; PROTECT(spath = allocMatrix(REALSXP, dim_state, nn)); // protected: foompter, state, proposal, out_buffer, result, // resultnames, spath // indirectly protected (part of result): acceptance_rate, path, // save_initial, acceptance_rate_batches SET_VECTOR_ELT(result, 5, spath); PROTECT(ppath = allocMatrix(REALSXP, dim_state, nn)); // protected: foompter, state, proposal, out_buffer, result, // resultnames, spath, ppath // indirectly protected (part of result): acceptance_rate, path, // save_initial, acceptance_rate_batches SET_VECTOR_ELT(result, 6, ppath); PROTECT(gpath = allocVector(REALSXP, nn)); // protected: foompter, state, proposal, out_buffer, result, // resultnames, spath, ppath, gpath // indirectly protected (part of result): acceptance_rate, path, // save_initial, acceptance_rate_batches SET_VECTOR_ELT(result, 7, gpath); PROTECT(upath = allocVector(REALSXP, nn)); // protected: foompter, state, proposal, out_buffer, result, // resultnames, spath, ppath, gpath, upath // indirectly protected (part of result): acceptance_rate, path, // save_initial, acceptance_rate_batches SET_VECTOR_ELT(result, 8, upath); PROTECT(zpath = allocMatrix(REALSXP, dim_state, nn)); // protected: foompter, state, proposal, out_buffer, result, // resultnames, spath, ppath, gpath, upath, zpath // indirectly protected (part of result): acceptance_rate, path, // save_initial, acceptance_rate_batches SET_VECTOR_ELT(result, 9, zpath); PROTECT(apath = allocVector(LGLSXP, nn)); // protected: foompter, state, proposal, out_buffer, result, // resultnames, spath, ppath, gpath, upath, zpath, apath // indirectly protected (part of result): acceptance_rate, path, // save_initial, acceptance_rate_batches SET_VECTOR_ELT(result, 10, apath); UNPROTECT(6); // protected: foompter, state, proposal, out_buffer, result, // resultnames, // indirectly protected (part of result): acceptance_rate, path, // save_initial, acceptance_rate_batches, spath, ppath, // gpath, upath, zpath, apath SET_STRING_ELT(resultnames, 5, mkChar("current")); SET_STRING_ELT(resultnames, 6, mkChar("proposal")); SET_STRING_ELT(resultnames, 7, mkChar("log.green")); SET_STRING_ELT(resultnames, 8, mkChar("u")); SET_STRING_ELT(resultnames, 9, mkChar("z")); SET_STRING_ELT(resultnames, 10, mkChar("debug.accept")); } // protected: foompter, state, proposal, out_buffer, result, // resultnames, // indirectly protected (part of result): acceptance_rate, path, // save_initial, acceptance_rate_batches, and (if debug) // spath, ppath, gpath, upath, zpath, apath namesgets(result, resultnames); UNPROTECT(1); // protected: foompter, state, proposal, out_buffer, result, // indirectly protected (part of result): acceptance_rate, path, // save_initial, acceptance_rate_batches, resultnames, // and (if debug) spath, ppath, gpath, upath, zpath, apath GetRNGstate(); current_log_dens = logh(func1, state, rho1); if (current_log_dens == R_NegInf) error("log unnormalized density -Inf at initial state"); for (int ibatch = 0, k = 0; ibatch < int_nbatch; ibatch++) { double acceptances_this_batch = 0.0; double tries_this_batch = 0.0; for (int i = 0; i < dim_out; i++) batch_buffer[i] = 0.0; for (int jbatch = 0; jbatch < int_blen; jbatch++) { double proposal_log_dens; for (int ispac = 0; ispac < int_nspac; ispac++) { int accept; double u = -1.0; /* impossible return from unif_rand() */ double z[dim_state]; /* buffer for output of norm_rand() */ /* Note: should never happen! */ if (current_log_dens == R_NegInf) error("log density -Inf at current state"); propose(state, proposal, z); proposal_log_dens = logh(func1, proposal, rho1); accept = FALSE; if (proposal_log_dens != R_NegInf) { if (proposal_log_dens > current_log_dens) { accept = TRUE; } else { double green = exp(proposal_log_dens - current_log_dens); u = unif_rand(); accept = u < green; } } if (int_debug) { int l = ispac + int_nspac * (jbatch + int_blen * ibatch); int lbase = l * dim_state; SEXP spath = VECTOR_ELT(result, 5); SEXP ppath = VECTOR_ELT(result, 6); SEXP gpath = VECTOR_ELT(result, 7); SEXP upath = VECTOR_ELT(result, 8); SEXP zpath = VECTOR_ELT(result, 9); SEXP apath = VECTOR_ELT(result, 10); for (int lj = 0; lj < dim_state; lj++) { REAL(spath)[lbase + lj] = REAL(state)[lj]; REAL(ppath)[lbase + lj] = REAL(proposal)[lj]; REAL(zpath)[lbase + lj] = z[lj]; } REAL(gpath)[l] = proposal_log_dens - current_log_dens; if (u == -1.0) REAL(upath)[l] = NA_REAL; else REAL(upath)[l] = u; LOGICAL(apath)[l] = accept; } if (accept) { for (int jj = 0; jj < dim_state; jj++) REAL(state)[jj] = REAL(proposal)[jj]; current_log_dens = proposal_log_dens; acceptances++; acceptances_this_batch++; } tries++; tries_this_batch++; R_CheckUserInterrupt(); } /* end of inner loop (one iteration) */ outfun(state, out_buffer); for (int j = 0; j < dim_out; j++) batch_buffer[j] += REAL(out_buffer)[j]; } /* end of middle loop (one batch) */ for (int j = 0; j < dim_out; j++, k++) REAL(path)[k] = batch_buffer[j] / int_blen; REAL(acceptance_rate_batches)[ibatch] = acceptances_this_batch / tries_this_batch; } /* end of outer loop */ PutRNGstate(); REAL(acceptance_rate)[0] = acceptances / tries; PROTECT(save_final = coerceVector(state, REALSXP)); // protected: foompter, state, proposal, out_buffer, result, // save_final // indirectly protected (part of result): acceptance_rate, path, // save_initial, acceptance_rate_batches, resultnames, // and (if debug) spath, ppath, gpath, upath, zpath, apath SET_VECTOR_ELT(result, 3, save_final); UNPROTECT(6); return result; } static double logh(SEXP func, SEXP state, SEXP rho) { SEXP call, result, foo; double bar; PROTECT(call = lang2(func, state)); PROTECT(result = eval(call, rho)); if (! isNumeric(result)) error("logh: result of function call must be numeric"); if (LENGTH(result) != 1) error("logh: result of function call must be scalar"); PROTECT(foo = coerceVector(result, REALSXP)); bar = REAL(foo)[0]; UNPROTECT(3); if (bar == R_PosInf) error("logh: func returned +Inf"); if (R_IsNaN(bar) || R_IsNA(bar)) error("logh: func returned NA or NaN"); /* Note: -Inf is allowed */ return bar; } static double *scale_factor; static double scale_factor_buffer; static int scale_option; static int state_dimension; #define CONSTANT 1 #define DIAGONAL 2 #define FULL 3 static void proposal_setup(SEXP scale, int d) { SEXP foo; state_dimension = d; PROTECT(foo = coerceVector(scale, REALSXP)); if (isMatrix(scale)) { SEXP bar; PROTECT(bar = getAttrib(scale, R_DimSymbol)); if (INTEGER(bar)[0] == d && INTEGER(bar)[1] == d) { scale_factor = (double *) R_alloc(d * d, sizeof(double)); for (int i = 0; i < d * d; i++) scale_factor[i] = REAL(foo)[i]; scale_option = FULL; } else { error("dimensions of \"scale\" matrix not d by d"); } UNPROTECT(1); } else if (LENGTH(foo) == d) { scale_factor = (double *) R_alloc(d, sizeof(double)); for (int i = 0; i < d; i++) scale_factor[i] = REAL(foo)[i]; scale_option = DIAGONAL; } else if (LENGTH(foo) == 1) { scale_factor = &scale_factor_buffer; scale_factor[0] = REAL(foo)[0]; scale_option = CONSTANT; } else { error("length of \"scale\" vector not d or 1"); } UNPROTECT(1); } static void propose(SEXP state, SEXP proposal, double *z) { int d = state_dimension; if (scale_option == 0) error("attempt to call propose without setup"); if (LENGTH(state) != d || LENGTH(proposal) != d) error("State or proposal length different from initialization\n"); for (int j = 0; j < d; j++) z[j] = norm_rand(); switch (scale_option) { case CONSTANT: for (int j = 0; j < d; j++) REAL(proposal)[j] = REAL(state)[j] + scale_factor[0] * z[j]; break; case DIAGONAL: for (int j = 0; j < d; j++) REAL(proposal)[j] = REAL(state)[j] + scale_factor[j] * z[j]; break; case FULL: for (int j = 0; j < d; j++) REAL(proposal)[j] = REAL(state)[j]; for (int i = 0, k = 0; i < d; i++) { double u = z[i]; for (int j = 0; j < d; j++) REAL(proposal)[j] += scale_factor[k++] * u; } break; default: error("bogus scaling option\n"); } } static SEXP out_func; static SEXP out_env; static int *out_index; static int out_option; static int out_dimension; static int out_state_dimension; #define OUT_FUNCTION 1 #define OUT_INDEX 2 #define OUT_IDENTITY 3 static int out_setup(SEXP func, SEXP rho, SEXP state) { out_state_dimension = LENGTH(state); if (func == R_NilValue) { out_option = OUT_IDENTITY; out_dimension = out_state_dimension; out_func = R_NilValue; out_env = R_NilValue; } else if (isFunction(func)) { if (! isEnvironment(rho)) error("out_setup: argument \"rho\" must be environment"); out_option = OUT_FUNCTION; out_func = func; out_env = rho; SEXP foompter; PROTECT(foompter = lang2(func, state)); out_dimension = LENGTH(eval(foompter, rho)); UNPROTECT(1); } else if (isLogical(func)) { if (LENGTH(func) != out_state_dimension) error("is.logical(outfun) & (length(outfun) != length(initial))"); out_option = OUT_INDEX; out_index = (int *) R_alloc(out_state_dimension, sizeof(int)); out_dimension = 0; for (int i = 0; i < out_state_dimension; i++) { out_index[i] = LOGICAL(func)[i]; out_dimension += out_index[i]; } } else if (isNumeric(func)) { SEXP foo; int foopos = 0; int fooneg = 0; PROTECT(foo = coerceVector(func, REALSXP)); int foolen = LENGTH(foo); for (int i = 0; i < foolen; i++) { double foodble = REAL(foo)[i]; if (ISNAN(foodble)) error("NA or NaN index for outfun"); if (! R_FINITE(foodble)) error("-Inf or Inf index for outfun"); int fooint = foodble; int fooabs = fooint >= 0 ? fooint : (- fooint); if (fooint == 0) error("is.numeric(outfun) & any(outfun == 0)"); if (foodble != fooint) error("is.numeric(outfun) & any(outfun != as.integer(outfun))"); if (fooabs > out_state_dimension) error("is.numeric(outfun) & any(abs(outfun) > length(initial)"); if (foodble > 0) foopos++; else if (foodble < 0) fooneg++; } if ((foopos > 0) && (fooneg > 0)) error("is.numeric(outfun) & any(outfun > 0) & any(outfun < 0)"); out_option = OUT_INDEX; out_index = (int *) R_alloc(out_state_dimension, sizeof(int)); if (foopos > 0) { for (int i = 0; i < out_state_dimension; i++) out_index[i] = FALSE; for (int i = 0; i < foolen; i++) { int fooint = REAL(foo)[i]; out_index[fooint - 1] = TRUE; } } else /* (fooneg > 0) */ { for (int i = 0; i < out_state_dimension; i++) out_index[i] = TRUE; for (int i = 0; i < foolen; i++) { int fooint = REAL(foo)[i]; int fooabs = (- fooint); out_index[fooabs - 1] = FALSE; } } out_dimension = 0; for (int i = 0; i < out_state_dimension; i++) out_dimension += out_index[i]; UNPROTECT(1); } else { error("outfun must be NULL, a function, a numeric vector," " or a logical vector"); } return out_dimension; } static void outfun(SEXP state, SEXP buffer) { if (out_option == 0) error("attempt to call outfun without setup"); if (LENGTH(state) != out_state_dimension) error("outfun: state length different from initialization"); if (! isReal(buffer)) error("outfun: buffer must be real"); if (LENGTH(buffer) != out_dimension) error("outfun: buffer length different from initialization"); switch (out_option) { case OUT_IDENTITY: for (int j = 0; j < out_state_dimension; j++) REAL(buffer)[j] = REAL(state)[j]; break; case OUT_INDEX: for (int j = 0, k = 0; j < out_state_dimension; j++) if (out_index[j]) REAL(buffer)[k++] = REAL(state)[j]; break; case OUT_FUNCTION: { SEXP call, result, foo; PROTECT(call = lang2(out_func, state)); PROTECT(result = eval(call, out_env)); if (! isNumeric(result)) error("outfun: result of function call must be numeric"); PROTECT(foo = coerceVector(result, REALSXP)); if (! isAllFinite(foo)) error("outfun returned vector with non-finite element"); if (LENGTH(foo) != out_dimension) error("outfun return vector length changed from initial"); for (int k = 0; k < out_dimension; k++) REAL(buffer)[k] = REAL(foo)[k]; UNPROTECT(3); } break; default: error("bogus out option\n"); } } mcmc/vignettes/0000755000176200001440000000000014525055000013175 5ustar liggesusersmcmc/vignettes/bfst1.rda0000644000176200001440000016515613636316205014733 0ustar liggesusers{ 8[ۿy 1!C(CYE 2P QQ ʬgKyy;{ョѾ?? %fC))7[){[?[Onv׬e >|VqvwYG%]uсގn"^V޶?H{^qtttsߏU[OG߇w9ۺ{;çj,BKsvsq!oͤ/lu#YyI:zz^K  ͧ\XYx]C?F1DoT[e[o,\ʥS׏Vk#Cc V5]W= ^BYC ?OǔZ?*~AG;X"1).bATT$~N'-_ Oߴu?:_œqut~voT~lǞOjBy5c*(4^4?vt%*w ?T[[NX;[yayHYL۫?ƿaur!G5Qaߖ`l]rc#M?Zi"z;G_[=kڿ(4QOoaAPͿ40 }Iv*濸@B{10l?kCl?_d@deG/Y~@џ?_d2?Ye~Ku'<^K?P'C?Y[u'~/%O֑{/YG@?q|ggr~T3,?2O\/τHq,(,UnZ;Ip'&X*y; u9丝EQ&Symsks9KS]BO0}5tsVҼpQ r=8\!4wZ;չCqm'x⯹f~5Y#B7%ڲtaT0 5ธ9_C+ge:bs#0OUOYW^vt꟮i)~ ۗɳԔzMYv\ݖ \%Q^#{]l]cҪҷع.ӼQRdajKჇJ =i0w: X(Ƹ~k#Wm:V4ESc+3;^.۷ NhKr3k X[_ <~CS!Q09ڠ52WM򾧬CSqdm͕~p}ㆦ8Y?w儥)+oČ8UY.9vV>ft;cb>PqRg;iW͜U^ &AaCcmBn6OC3G^g}GHlP2[1ɸyN[Y]~}O'Zo\[{a}5{CuUW>*]v3zt&_]T\ZJj+ q)E'Xމ=ʊ\ :-m5) O4w<κhcIp7ާj5UqիNo&l5uݤɘAll2.q\Frצ^8QJruy" k.]f~a59m􁦐ݓO_u|fԫ`?ĿiL7-qHYz)bl8Wvþ-\wr}汦s==w u5nKɋߋYک6KxK5͓W>՜'ݺEٶ`TöWx"x#JWZi';}+Jd&!sI:c_a$25Ǚ Yu)G-h8Ԛ~ǵlKVʼnKS&xB%NXj &Ύ硲xHj5_X,oDR, iE>N\7dūW{M?v{t獣ƽ{XydR^If>?VubgGأW^əSNfO7(R>n7{v r c]m#$u^`O>(dH5J):So }JIJ]K"| S_(}dh[53o8+8('WfD)tnzpm qSfy. s xE_: 9T^}ዻ$7XMQR6&+"Qɾo^wТ+::ˉ.1ɥ˞ģx^~}Pq?+By' n r55k@v}S}!IُF87:XKܟ:06$QnV2xZU( =n|I$|FnjhNcɽl9&%jێf"VܲzŬ KOi꣭<_dh4-2 vxsJnn&]6_E:J]Q$[? -ezwcIsWǸk7wB/:!={%>!]k[ٝM=$aJ(.ݞd,ե'Qpҵ$ >Dg o($5_ |Cg۪|?9"5 ނ(zT6eeׇSFE%M}Y2.rc}㋹εEc1WZϜJycCܼ8堦]AX4;AfIIteWR͆ ytڮ[ԝQ'w5L±/txw_ɓ"^ ^z'ys6yOv^g?knĝvz_ӌ;l-7mk"UqO}dM6I:*<%BԔk>}ɆqBb ]ሱі1gS>/cٕK̆d \ 95g>컰ET~%شC$V&G3Nv bxB*(OgJ/Ozͩϩx!׏[('{S%*Oȉ3 -tJ"B}TaIRѫ'"=zT;ƯN驮 /UoyP%0hۇ:x15v /GZ@9u90_[7+p>+O6w?]n46->dt̖:{HqF:b 3Qۨ0s~OY>Zl_J,Q=䧦..N[Q'+x)w;5sO#_}iWn=VNShі5{ lcYx704C8WC\MWg 'ſ<񾠜rob tz$6,q؞t]wrrk &o\4:| UѶ柏z>%8?u4$]bevgbˤKGER%5@r" .#L>jnFg~*ƭ[ Ο4_n' MM;{I[@r\EXcM쌂SbޗEy6dO.G%uoh+ k / nQ!o$!NuW<;aQFՇ9@9Ro4_JwAG:ꇧ*n<"*st$ߒ̞d=R[^ -5+xuICbtV-34l-ªzI]Aeh[[:ICY20߰ҸŖ\ * A|4wxp;yhM]=Ȇ+{N\AU;D^Nn[%ķ#ˮ{fuj> H2l*)?w̤gPF΋7 gR%Z/!GmHPϒіTq /dGFHa:3Kpw_ dk%>?rafr3;ʝф*CakOl^u U #|y&ꃈ%>݊%4Wk֛vƌH-|sDMFYV^^ M[koxp?ceWijS4a^|~L1ww&㧋:yvF+UŲ/$~hZۿzʗL{wd8n5eI1" a o_Uĺ/XYhw˔Aer%Uϼtҷ6*nҌםKi'u "T#$dgf>2Wxi'd|z.*j#~SP7Vn@R[ .V|2@u#zI LBQǍV3 fHj7[F59S8";]ܲG]lI?@}9썋j\eZOM*qW;tE1^ o{"X8,oslj>-Jeǝ5U2@]!lNkE^ Lzerr 6wA]^_ι|e-N+`ūKGh_N&>zC(~rv@xLiHCvI%?CɧZ+h뷎 jwO7kpSVzyq5?^_X`ȁiT ӍTy 0u :7I$Gzad4D6N`eOqDK7J HW_N>ޢR,Y ͂*fyx^\) ^^ Oy\2נ&UI"19Cߑ/章;oq,(,1ߤݲ2W$H܍ZSA_}Rw9]{ R@=RxΈ9-7*3ur*/b2ӥb0A# f\HMJhUcfrzoЮQX CUdtke+:65򐤹 :?WLY-`#^ǚ DIpA;vهe$vj|(zsBQ.hٓETQsW.A^t_83zv.#w*tW!nUlP?B[Xs*75(bڜ*M\ Ɲ ÄV$ۓoM+Jɹn-Ahw%2@Î:J6rx0iH1 Y%To@W!0/Mۚ(Zh,֦?C3QM“xz&ru֠KZ cbؘ|]xtb?:A>|7?]p}8#.$UձӯǝY&4`-&h"Ͼo]ͷgr0TydY5CK˗}$#dʹ0iq>G&yvl¨y}xK^U6Y9۶0TQzu URg6[DT :} 4b0p:N b``!: Z ?/u, &0I[qarct ]6Y^}2BwcU J0$gMu& j>&o9!^$ &S ^<>a̼]L3фZVo88D# F% 8 `r>2 Mߕы>20ȷv[hz=:zbrN?RCw'E+j!]{ K߶^&VdZ!Jy5 =(&S5بsK`& w?e(CR)Fomsi^47>pɁп_{aKXȋa12rc="b G@+eY89`!jg^>th0|b\-30K^@ ɒd葯+ԫ\+0-~e /L7Nσ@cwtCCqa퐀#V5I6aVs_eonvoAIO˟/H[})6|5GW C_|Ԡ4nMQ|}L<0/iw[w*kB$d!1tcb+#M&VJMjvkeanZR/ϘOX DaȰDwk(c.&ŗ=K'ʢ曵/nl:/_i'^.~"J+RGDaxB{\ޮq">Ԝe[xaЈ,a90Nc6E PmjBPGݩ-@[<]#|ГI]ߖ⤵U=14hVwibt:v#sekIhwj+&'JlPRfSʼnEeв&Mve쩻rs`CqOh~fzr z*_\gC T2|VDn~Y)#ns} .>~m 7kAW$= =AJ0`f2HXg7F]u54KzdAmO!LN; E~Ƈ2l.$iD4J0|U'drsf ni* rrQ,K5S 폑/:K=̳!_YLs)Cv$AY.2#ä &皆3p;ǹ>m@HitX؅o ѭФ%-gWC@dG*j9E@$ Qn\22l1c%Buj(}Y hc^60B!r92QEt!RK!|<MWDbj  +y]k9-Ƌ N&S [ ۳R7C J+Mg)%COe3vD Uk~nߺJtPf-|Bu 0.[B~X?r¸(EFO?tsgA3}F+E>wz9sLLhEEm ; ;ve^Pz|o|i4?ĆC DܢQ.r?}Lג++&53%`Qw*u_B&a~.GRxm)he􏮃uҼz%ء#[#[I0uD V&_&l%82o9x> @{(8:L46zkR$kZ'h_ B}}K>Paf 4ЙlA/Q'5zV,,2N@Q|Ȕtݧ PVQ?fՕ}}~G &Gy3( 6;֏:W<,{s&b Dh<; x,`N)~KJ8LM,a ߌ3t mJ*}MбS6IW%n6Oa>{{m,g]zсP,`XwN/Ds(ósڨv8-ZڡB5~VkDj.=pg&ďik1rfLrU0/Y@#ٯiJӢ3zhJ[Ե 3¢m 0L3h8]BE^4жE><kv|6o2u)9U &?3H@7G 0wD$7Te<0sxh\=/b[GpMBG;rl| LMӛ Aog@΁Gahw4yO9]^ "@S#_.+ݦt yr5P}PF05r&ΙK. | ~\\uW'֠st<Fr '܊?9AE=Òy*V_jma,F-?B<<F+G`}z5tfiX`^]=UʾfCEj'+@W@YL۫Vh7zIenxBPNiY/]s2~Eh[ 1sc,`쌸StɊMJv(~oteaX?b! ~? -u]m1!٩*A'%'@헣:|S =VۆqML6(˕:I+@ ]z }ev!b| ߡe0Cc?&ͼU Byz&|Un)Y<ˉУ#wDYlahWCH,k\D%l%N #ޟ Cb| p8PT0ׄ|PntȢ9d|D$zoEaP85L7罥ޫY_'CCn䡭- ubKr]"&IUA{<̮ WIB7J[kg.$S]6Xx~Cny+; ˼Hd={&6x`D!yNra`Rt-9*Gs,7&`>´ChƎwB?wl?|{y ;#0W4r4@]D<>4gZnZJץaQmmh{9 =4d\>BFMC ~Pg:}n%L*QsK"|sbTnk~?vFA=8x$;'?K>:ՏS*;)|s rۋ(6B|-U(<tGއڊ1Y0]y9DțxI!г,t\ `dD.w˱ ڞFg{BWLLݱlX9wUNj3lX4D]PU{L0ƕ*Zni@:}[y$Gt/c.CeIUM开2[2*;l:u0I;wzX=*ɥS$ ˃00gv._p7D"4K Ci)a/k+C6Cwoh~u8%LS\WtAY>.:gx-'cV>/4&=ЧJl& )2ھvONAJ^gh;`Eij C3C I[Az8tu:%T [:ôtC4U(*{ m7s%.?KSKzaM=M&͟&zJ+80WiV%XȲ7wttm F'^,߽-lVBPu.7$i4R>DEԗ[PVբRvOXC)Iy2Hԍ:AWM.Bohi9qC(4>K1 :<-r3߅[\IEW-OYFRfNAg6/7P͜<7=bte&4!b> YQ@c0"Ǫ4A9nFB1$ƷT;ip6?n qx?) zmlC mh謺4o1cW2i 5Cu{L >kI=HCǞsf >Inz5ژm)9]&b y>ՠh?L[rrݺe Z/t۴ĆN{N{B!n7p?&Ė aKb+xM S WmX+ =.YMŔ? ~vN/Xc.ߝe&gHEʼTӬ o\ s~g,EМ\πZޤ:,t,ڟm&#Жt6 ƌl\ iHT.vF ge0ra[0>k> m[r@Wx¾zB|e rÏ;Ȫcw, oUSUҜ%LGD3 NeU4 Sm'89h RsRk6>0K ͫH3IaKB=XOv oA530# PpP: +۠;])5t\%|)hiQH|MS EeinKmc04h \cM|-$&5ca֛y)D{)LIgSZX,e~IJv"cO#9`w:HW x@ǖ>=;mw :[ganj?I3y XN*  o99IhxxH%o=d@/o$J5I҅vo˓KtG ߋ<LT'sMa2@A_%kZ5R*PoxDA~| cF/@W*~9a߅iTД\Ї)}{(`Ou" S0t^ C ~#18X:>Shj8~4t|V r*?F-( X`4Utpo54]a2h(έ FD11l0ܐuN:-x2J* guJq ~9 ["FwS JXl N6gO-Qo$B;7d:@'Ǘ S{,ZWeSQғx8 ӠX<%" q!l {0zXp];|;`[ucy=cE*WzLMI}`*è8X2óXn܇%I>Xeм9# yYm>{ 02JރDL%"UB99B zub#>rެhbԫXB4EȊ+nwiI!N%{ab!_n9Lw+ܚ-Nx.h"43p%t  RAּ=¨N"֜Z4 692W ՠes(!sB|K`h3,5pd)~_ YMyk- PsV?q >2wZ<#;ON^jO~ѷiq0?/vt%&tqXy USgaT5e> ͑X&%~ޘ s0'+c ^yϷLVE}&`”SnaݮH=m˗sRK kWG7wv]5=Ǟnf V4tj`uuMS;Z9m% l|W2kUWYrΣ V& L,&;PPE)ظI! &HX&ȦkL4r?6#vl>1*>s8@>,U91&A{ EtRԏK{?DAx8:d4ht>l=ҥ? F8*V8qZIEZ<wE4EƝm.`ΚYDuģ:q[ߒ㡣J"";*DFMk6qVA_5#9$I/4v8L]Y!"7S2#ͥIX4R*\x~ۊ̃G-ՄzAZ>|/rX[ ڢ 5\67`Ft62(]/ .nˏM"["mQ6`|dǣ.L,`IϾ)xkW/׊J֊\(4L_8hw3F֑]v&yR֮h\h&D픷%g^ 'T 5?h@kS}'?Ò~nnatB,xRet<tLZYHZ)nՠi#DifO*~Fv.}/zʋfr !Sy ܍Y}H7pԄ8ZtЕJxXh^ͨ`Zhq[`JD!K6l/Pz2F]}&H,| L69!o%C㷝la5G=Nf;N3%gù֏<:Yb~l?,U8s2 @p,v>”}oi/HP 'o@#ɡ>0g&.#c`.|&Ziʤl>{77'EUcX^ʯ|׾୕sD"d脙GlaQAiƥKWY<`KfzbT}?6O@R..:, 6O %eTD`}&1UW+}gFwR"Nhx zgM. )ݭ/ ߦ$g 4AM4Y hOHE=R0 h* xT 5NJX S<(0ߥ_PK\b\`4eQ}Yb(o 1U 遇r0;tN$>`Tœ :ju'J#b;!{Mn)aa'>o{6rRhwQZI i`MGz/'1ao.qK-GrD,۰P- `x4nNT]8ozY Z'9ӯ(o?gC!torTdcFR*,!h^Dm}5XRVvgea&O՜PX~6v B[O?O0 ݁ZG+d`(Xu6 M9 N2ܛ0v5B<*1v4q녮;Ƚ6`6DWGULيPL.촐=oK1Js`R▔_GG "I$b#jӧhnγaUzѷ,[ ӥyytI0'sjdBY< zϣ:.`U:wvXR{&1z!s,>CiH^7BZwUr  _}sHJ )6]Scd)2a/:I 6j}`ΗP ZhJ?!}ѩh~>`W{{9ae]+N57u+S6wa[VnWr 5 '%B|&20jwoFxhv_U2ztyRqT)qŁ$ S*ςs_΢m˖ңÌ3K@XMX4(?{<[ͦKiA3T>cL:FDr62RSPz 9s:>J4C b0 \CȧLumUA-)άb}&U} 2 y-ͧ! <-._0>3 5w(o\XylK|=,|z7df0;ӵG |QfsdEu:lyMdWpnV&li}493 h{seNtO~dl2ſRG%H9? h0c =6P蜖؇`#lN= tvII|!v":W^H+FOHzQ:OtT`= )௚i)U.#uW^mnXƸ^;1 is;z!A{-EvvwbZ]tnQm`ޮ3X=VbNg]/"].0[-aɃk Z]%7S^dXR"MYpEI 8(d9?īrMS5eBϊq :@F_|820s4IH>b.|s&QĠ5Ea!2O澭<WFU 1_ [ԥA7&7td_E!4 oysF4DŽ1=K2ɵ^A2`fji4gzL MXx;M^}W T-sRAa hHED5Ȁ5j8H$Q P[3ޮ hL]hYxƴP;{ 67B':&IC&uD̮$b"z<0R>;H1WIIdp,WX/30-G@Aˎ0"q_ I ɽ0'R@Q)# ii.R1{9,?e+\9؈tpjÊh?o\Y6jrxX8%C[E9)V|B^ckF03;̏ р^ê} X=]YJ֤29@PIs>:bFOο}^G8BVg[pZ]/>L0Sv9 0 ڣi$7O\s[y+0;g8v0DDDži"{nGW?lK8!K4s5lL[&׵<}_;3 )`b,l?Mpp̋lMX]Mz'ݷ"N\;O0'I|=Wm%aC׻l,^륙9[ζQ}O`LǕ]P~ g#_QDZAXQ]'7jx.y9|,`5қa6sXjyw?࿓ku2"bL^*omԣne<^nܼoq醣0M`M+ )!B,U[ᅴ^w調gPdiR{uPh͵'(J3LE+ gﭣP$ N8כ]Ca6žGmxC0~-=Ln~"gJ̓ye=0o{6zR}H%crȃd!ʰ|\#{Ҳ v)t?~^'=+o*oI 6lucVQO ~LJ}(xK̀Uir\Oz*apL7BzC9aW'`߽ͥvlda*sk(V r'Ү2ժc^&M'YTNvѣ*|0ɩsk~&T•Jk#.M0ɖjc7*;AD]JФ!̾ȴ$7-o|}ʩVE1Y^"-^[͂ b+JÏ]^:aIA\ƣh?>6^滷pCAROLa5%/ ;fs`i*,Hkq0lX6$$ )`k簙}BlOp 8]ƭ`9TŃ`uYw”cPMrLm#20׋wR1/F|}znX=y}|뿢)ߚjXf Xv 7ezGD9Y}M,xpbM vB3rhԠ >)&yGYy!v޹q4](EtkR(lVuF^Wa-*G 4Tuz=$4a^ʬ",6J=F e&;L/ )3ӆ^*+1,$/%O?щuaGgs||Ȑʵ{KSF[Hkd"ރ}͚n9w{xjJX8##Vjn'i#1)_8V:a4a_:pn=M;aA5x~:(+Q!m9wl9W+o evu󰬭( _EUEFqiE6MOOO5mvȰ}IT'%|Vd\J?7t&2o&oD(.ע_l# O_n+[:C}C_C`XXIg"xxi\ +![uaj~<,WU\5iza1ZU9DUGKcUn(:.e;ܮN}Vom'1>~!05|Ӛ K^6!o@ !nG}EtFr 0>055Heyo.d*ȑ[]̻m5a9tsf z?5Dxr8^mnkOH\X;A®~{ txs[? @՟b:Upe^F,9w]ׁوf{}065d1)NXJ1x O\2 ,Lu/U~΋1pIղ{=V j'ic^F {^˷g-a]T!|sGY"{bV}YIyȮ M\f({pJq-OZ#,vJhS4y%.(M՝N&?q0ud/y \N/} r]e*- Ð)C,2YׅF4WG&17~E+x4 EzekE$)+ X爃'VaVydfI6uB;6|(Mf!7~4({I%qngZ}Ct6Y-%R-ˑ#j)d }B`f82w .2{&1F热 T;y9xo^;D:|P[ Od]io|9uD"~EPmy pl$N鉴`>g/:%0Or.Fi4od?ږ;b_% k#s$ѩFs!9pGH}DJt[pM@Xws (*bbUP@ X5wHzWeESzG.A3Ʊ ,ۋ3W {ȅT |D3ys4= A3׮wPIcIxJ>y:0cu#Lf/u;nh򐴁nhj̴׽hR#>` atN.E --u:?LQDkw`RIgr4[Y`]A%}~ˢ'c%:j؃(4S(j뫅9(2F!'$Ҁ`*’[`)U#?漰ْ+VV(Zs۷Ybu3@}l M!S8 MS42fBI`#sA)Q=5D ,"AK>pmIk!X=gN@Z Vz=ۃ%I%00eib 76`Vj5aeL@ ys,xi2X1<2@5f6|^!_pX5-a k ZRnNyn$V9n̝ [XZq)2] !UdFK'La}"Qm Kv{}_.P)zDN>A OnAX|{@&TňD|x65yZ-g-ف >#;p1 1x /}Q)ݼ}s<@ `i a9d%ݺY;Kw#<%E\;={߹#+~|Sa9(X:enXT,/d@] lR<,'ܒѢZ@pKK{}Zn>Ȓn74Ƀ\h4MG_,/zVd!&2Ni능)5 |WY(/'/RrK1amxw6ZaM*k*QֺL-mVF chqoqˢSRȖXxJd:OȪ,c<4qo `BRX/_EBz-0{Lh%`ن[zVEnӦ Vmfk<0,1r/35g&c֤KA0 ':K է̟tL ҆yڮ9b Tuzg{u/ Vju aܳtXs}J d Q (/67ydj7PsR" ׷/ºxQ sf'jo6X@x-Kݤb[`3,Z-pYӳ`%sUv˛j怿t6eޏ۴ZavN߬!$]r\;,i45\F(=u=cYQseH]o&x,"n^:1t).# HwOh *amve,>"e*O>!xCd=R\qό:`9,)}t 6߽d> ^U-2n[J.!7 7)R֫´[a# zL+OɱL"Eew EudL|(.n͙!Fw){aQ]{Ssd 43>pX?.B{0$WC{ ;5L ^__|`I]3ay;̍ǹoѻ3:{nr )X}&y"W6]/*絫'ȩx[LsBrZ3'[  JOÑwMp_#}da٭It}/#/j0W(Sd [ẹSC:.\;u+ְ@EFR뇰* PbYl,X{ TF[PgV,6ȥ~^uaaRVnz[!!ehRr'6ҷA:%ۜǐX[I{찇ϴ.l؏K=")Eܿ"fi5;~"b E?N}#3:-:aRVM-Ŋ<|`vsea" +4C&}6=o{hKS wwp vXyf{TĒ,%k;k,AǏHni(HlD3SE)FB_Pe S'^~/&엯RM^[dXi&N_ Ƌ]ݶxqW#5J| u,y?PDh4؎LGs7LT-1ixjݣ(bIkmyX$)oyIde':S~kzDN>l}PuwUae4O֮E$i'P< #W|+{1S'%,unn1mXj8{p%) ]NR)=!yiX(!-!#ˁҋdYI%5 cM/q GnOk}nk3"M:-z"nqI4/D14g 9D kԖr4qWv,:K #ſpVk?L_s YCEɳ"m <ݧ[Byܱ>h]N+/ZYna׀g|0`{)!BҹB6W[q.Hm{.G3'uaFݧ]3X:x3y,Q=\; 53Bo8#"z&lq}%sDgQtA0 -猚*R Y ^O&z0Mzo d)UEIV#)6X_9<̆<`M̀a'L0X-=d`*`JJ foԓ a1@.~ooquªDNG$܃)xr((뼻YأfFZmiY=9)ͷ3"ܧ_4A[ض^<xJ~/M6=K ZC#X;)>%ض-.=uj}V)9r}b^7/4sA!_zfKiԓz>Apg \$ѺGI)zKL_p]D3q3 BS&3br &}O]@ Ou[.@A0\ml9 \;Bban:(ڗꨠΆD [*g4Ago^x!RUI |LV 6fdѮRtEh\-]0\>È`F勀ѿ2aE!3ww{e0r]\o|@@GUVIV|*|; =}Gax$T/Sʉg+nvL2XB/_@~^0وijf0lfY޳`/RBk#lRJ蹄C4p&+ >hסS㹒-İȽ[nfCӸ(˱1RdG/C4%b\hf4Sv<@Vca(&'©r41caDCY9~0U[l Kl g,\`Bt.zo7Eʷ;t! \V}w`ȪOo]2!B (,֘U5N+]{lh`e!sx%O|n^B>g*ϱa]a0Oi#+|*g,aQ0$( MƏߚ ut0D1?ܥW$E3}UԋEP +ji`R Pst?QKW/ 0a.6fZZ}؂'4RK1r47lU|9XM.;a/,.8ՇTI{ƹ=:`  al ON"ER&B;=H[5$2k ?) ُr;'Iv[Ց{yfHܱDh"ovg+"h[ľ+pd{`2/y'KlE7VLxE*)n %h\&CMoV}'0@W&cjqwe3Lj Cb{NT(Y]B6"k YszZ?&Hĺ'79eͿ(҇k~a5AAK;gVY Logݞ7 .Q̫=w^"c)/t1Uy_{9Z7u8 E]x:tTQF-rY4Þc^i܋壘\Ob`N{Ee\3-U9TtڟK*dL&^&RGg/G;|8GkU@ʋ:^jXj*9ui4Ga'T7& =dʁjpqO8!\i2q0<]&7M-f`^2KQװIs[` 1DQ= 鬂Z;"|P$A(>\#EZwzuC 0TEl#_F)Έ W!;|ꖘXdZim82󌊎I Fk̯n Ƹ>C5ieDSU܃&s$(f hj|MΪ"8]Ռr؏#M$)`KbOWɟ!C#_a: Yk3@D [HX8*_]C Wk6@_ecs0Iw0؈Eܹ8c?`A>_812uoA_]tm$F(wĀ$=ñ],H˕0Ț, y6MN=,Y} ? ;yz61`UYx{>YmZ)*/ä!ukd~S'h `٫EcSK-Awc𥿳E |U7 0czI}THNxx=J%Mql {*Lק+@d|L *D*&A|>h&53B y1/mA3e W u')3d9뽣vRZBh2YQ`Fvp^„^z9s]w<]bm陼 dž8Qf@8"O7󮦅>&+Ӟ04,^X6?"Jseie!aۉ8 Ճ!Uil:H2֛/"bI⫹ePak) *l P3~2 ~p;ݷ):kdiq* a5SbN)oc0W}TkL+g(/EN([d^=#U^>u'`THV_Fe"uNo?T ׊zu0 /1"0 #0kzE!,20o1À"SQ7cKaߍ4 lY w7X1&rLPR[-÷W-F/?Ӂ!)N<VœeSDA*>4肅9`H#c5&rZz'an/Ӊp x4<7aެ+0"=/veV°K} 3"/Y$~JӜ]>I W-" :iZ+iC6os8yh.~(5tW%ŝ`=9|&EE]`&=N8o+.ph‚!<ѐd,fʾ---bVm~P K!0dTPZx䃡oDD =l2:Mb]=vTG,PTlfIZb PJU*[>z¸W:{ *RQݨu+-v+v]݃H Hww{~3Ϭsw}sٝ|yOLE׊B#SYۃЌ5[{U¥쳾x<ٗsZ켵?bD&xChǮO˔1tO[{Yw7"LW0˗CPWr+Blq:V59Z@P6N$ʹXwb?•͗:k=t峼w싋!dzZAp NJNr=Ν' r!0.p=oj<"&!#_ts[co*yԴ͟VZ^&tnzx^ng6I]qB3jأg}ţϊ(pSjIk8x |ݻD9ma!l 54B;2̈́KwXr29-=!y*>o҈oU#?c7n|)pӶ;-<1L.!Bwg އsgǖPm\~es}\pSNzf>'[plAZvj-!$(d".h\)ΕUWcY>m6hfuBcfBJ%rn]+ܰw:$6X&nb\4l> ;gt+zuV{Q7{uY٥5Ԁst|$ӓ=(YCL+c gr?-U*Rķ HjWYpݯUmE.*7eo\!ײevF "@J: J}ǚ QKYAIE*F=-1e:v\H5+_y :95 48MfTWyy1qN!~X4|b٧GGɋ7|Dޕwͥl7:_twOA\:ΓEVܷܛsw=AkַPwg\#|P]^j!l֙+- Ww!ܨAɎ#?Uٝm~Ѐr=ώRE^/8}}ĎpѓMF oGfjW\]CoR RdeŶK%.+;(2_Δ6Q_G;MLڥ'qE3L?ß uғE<Yk_v^"(׸\%{ɵ_tIO/{X^v񨢵w8 vMɮw > >*mg|MoY2Tw 셮M^-XeRְarj'_p\{Phf ZJ?3RW\k6!oɊd$HV<'2;rKdzz6Ug=oThoc fu,RM&C}G':GJu >sB y&f7!#?N uuRUϖ;Ϻk)sYˍG?mJt q^ ! \n >ڵgH -uS+ U)~C.|]Z\eŜ]F/wZ+1wֲ\Nݷ%AkׁuN+pNs:7!ތ!<|k21XH|?\!GHPf|ĭ]!TKd5DۯrM {ง6]1m\"nܺG\rgE2ޑ(Ar- _~4 4Znpvr9Ë5;k7Co^ڽJFVpK2ܯ\+=jЮv\[)Kp1雛 v WoL /LʅYUb ={haLhY-;>b'8F'z/^K6t=ǐ:xpjyy [iЂY5B}KgQn\o3z _M@B}Fm7+;ݛmiLyirqk w>߼LoנM묃]g43"uj>+>,,RYEȩz#E~dZ~i#P !F&W𧈅*3m lQʡOEZ@pL#o^Bk[;÷Fsj[]{.dy)].yq֞Kzo/'/ٯrzbW.ꔩFM%:9B64Vu=H^=r]Df]{`>G~ rEt%ׄӌK?Pn8㳎/͂9iCNo] !ٽǧzOflnm\-v85neoZDyE?|It+Ҭ9yz2aQ!ܰl}zźVJ#kHNt xWءQqi.Дȉ/vnC9wtAkW{{FIq[o?vMn0Ĕɬ55~iSC!W74||?p馢߂:k!׺r`FZ^\sݶs^GVmv8}]Yhɝ̖..u4Kr'/vmи\Nᕿ~1lNݛi˷tV9B-|5_7m.>if&/9yr?VK^Y.w!q먤u1kez~#- o$vQ̯+Þ:BM B?onyԫ˺a~帤26\b+lvϾ΅~{W9=9OݗkwaVV}- !t蠯sq[d=~G!B;K| Jh 16d\ xyzrCIee/@6=0 1@7v.#iؽBx ~n޽to}M6Cm1:Zli#?rywvӺa>)fg\\3x 5upP;Νˇ7*t\wGď `Q9z_< _?i.k\ Gix/w-ĕa>xxR'\߽CZ{ZG̽e5;ە6 s[fus8) kRS-8{=ѭ3 }޶#@!VfCΩIeZʊu_Wkb ߐU9ㅩw\i8բþm׹?@9\eZc:OIn ^6WAcKpw:G|íDg|Gݯ7JVЬkqYi r!Q~!b?a Y< Q?fE .2pucpAW9 CqhWzMdPKHp/Z;iۜ*7m7#?X rNejԪ3GkG2_e3o5.eBծܣøyԖ]B{Vٳ&mj}~e/KvMEWe$wXkBnY$R 4}ٖ\2/f%׾sk:b//?ޣz\_7<z ۓ),uF[ RL}®%վw{v\Y76-cPZءb^,8ӳ&HwՕ81;蹱f}Hlmzf/!\SݗT؞BjL9~62x3Fwۃk|v5RǙu W]7G#qdrݓnW"{q9N<[m3>uv\ÍN.md 6ԫcN h"+kӡӻ@ ڌġӷ\.m Ӻ_Ʋ}e7Z. 3hcUef{4YĠg | ޜҮp{OzaNvCw!ٚ73!)Ĕ\3N4V^ld6;]]A;$pc.yO֖2Nw>{֑W7h[ }n/P³҅V]_>K5H.7I`_ns٣[Z\ G7ڟ 7Gk sT :=O[1mz= ~.]Kv^Yy*'S@5fBye>!25T?Ǭ_9a4)5p L4jzBO2kJ] ~VOH f$Ccnl %!m 3ܻC&%+mt~K!jBҜ[^ '>U :Xix *}0(W"Z4Ԁ\wR8j 2c2R1+]<U?<@oOڂ\CZXG( Y^6ۼ' <"_ώKCv |j#o@tBcɴVΞ6dqinlRNXg'0#.U/)bx}5֕m$>]31$~~)"ΫD:EG/{)Ko|9qx[_. }zVp<{ir}7kDf|Zvk$w/o37|_=v6nMgHX=2wD$x{5^ָ>~BTx':]b ^+z[! ɿqzx$i~f1tBHӶǐ`zԞRf:2ՐzmlFB'&kQ>8ysݷT Vv@lۻݏXJˌ#Q?r!OXQ "9yuBڮ'/]킠nmv>U/EDwvڐ8` tYZOzr{tow ?lYw r3!tpL Vc]A'm}z[CD2ݧ ڌԽ =R|: +B~!f|"!.;nќ=F7>2Nn$Xբ$Ha4m-m Q*^r z6p\ԟڌ[e+?­_ ކ+yb=ܞ\6ag~l89"9WY[oWM/@>MAvKVC죗O(ƫ={,V{!>^w^,BϿ o0'#Яo1n;HXhrDe"\Mjio!vKMݪφvZTE㷼-8cܹѥR~LIN \!y[Ct<PVd˕"]_a$m-Kj6q*B"3+N M Ӟe;"-ִ|H3q9Vj?~apcQ5_1=^^}C͐uA־oZkLXV^JliwgL{.u!aLGnc.=F\z-o6obN^֎.՝pY#~<ď{ Y?*Y}R|=m vE2^k!i\gqGk{wˁs_y /ڲv]:)Ywׇ*~^:j$=6$E-i6_#,)q7S?m- 5[vvvfvr~KφK\GŸcSFļϥ._Ŋ朣٤\P ku:`;W3 bzKrRGieJ& 5o]~ٝ˯C̫O&8Mw@d5_[:6 KV)ɚDkdY3yD5#K߼2ܗwku6k[݋y=$\>^0Hx߹ĻN?%[EyCrX ٮ4~c6&em mv} qަA;}nj]NA+?bƣ_^?~>ĎxviH8v [6A⧢_%W$%cޖ6qVsf DNTԫ=- ikh;%)5r#rHXsÇ!aj.9L9Z2QҚA!yȐ,s.zƄg-=e&*/;3]\a/pY!ߎF>rUo$/[RML4/-[%SVv)]{AVtT+!|gڮ)_G>-%L_D.8w!\ּ;[Gpk"m6 t8r/<89n93$xr;ʹ'Oˠ0`sϭr.ii.^orY^qI!on0.8?6r|HSK[sK@ }!RAsf\T֗.l}ի0.uT״m3+/\+>"eުrzZ\MlQaQM&h8Kڨu.nnI[+͜\LJΉW1#-@tzzqr7Örvz{r.Cmzmo9d/9d]N<eUM7|sRcjԵc,${Ԯ'$u*vr-̼8(K*7:ƛl!؎Y߂IKbuzAꡥKOWȧӷ _-=9Bn%R㷝vM*b/>to\2?DXךN1//ݢ *_"Zm.;xؤɾ R=q76,ZQޜ\ףr_-{%m(d \ҳ5AAXBZ7C 7lZCnoW][VvEʊ0<0u7;_xsk\j$]}4qiH|oK!lgʖ|!Bҷ#L P{\a `Տ=q?n2O)תt)k/q| $[cRsჹ̒jAZjg(G:e;@x7tmW]4ĵ]QJhMm$X*oú$6m9H?bk{!aUߠyCt'uj22{ߢ_mN _)˖CKOCIr;N.E8,o:+ Ϸ_RbWO\$/-ZeHwf59K2~{.#w޲H}Gnp/"~̲4mznX ٵj7 r+xsh ri?\N@3ΰ7tilu0$9le;H0?7,F.3*FZاӅѦ|.ckʼn&xra{f.jjhj7b .rs,[ȅ8 փ`ʭ]cos2$|vm8cX"ľvA|SA7jFB6%<5>Ӡ.Afuy݉wZ5ׁgէ'z4٘a&+o>[Jm~vgd,jnH}5N%"Fm̗LXsJ!xA拎 _ny?WCʆķճ箇ܨ mC>|ɱOw?sΗʋoa8K[v4~r,`ت]]ˇKpT2ulf+UC<9 OK謘8lؔ;g2םOx ρKWhz\;śq[_Kj)ꡭ)^Q-٭& GsOչv&+Ů|.u}=c]_oOmܿ^#;|>.mv<^7Uk٫az r=\Nr_ښ*EY]3v~Enm-χ٣v(>NM_\[r>jR=Gk*m<<݆j Ͽ sY}iKEF7I}Iؿݽ8{}QQ.O߹m^~QprrkXu53fۉk}l539?jɁm{~l^xJ U@pMi]MV-{{oGӏnIOV\[{2q}vG!*l֬a̲#kA}͓] DscgVU_v=;7Q~sG_V|Zo:}MKǚ /o0+|yY'*cw7Cyڥ ?v >%~ͥqUwwzY: >_ϡa|.*Ze?ZEeZ$"F'X2ͬ&u_ߟu?YIlSTKOs-Ѩ3NxycV/SWkWTyuzsrF]oRnn .^5tiއnZnbm@;i1y4<ʲ#_ZY'4}=_~X>$? au%A%GxrI^uN_U7_ſ3o+6RPo^w3=ζc?A?"xۍ ,c\)##o~%2N+n?y[l͢Ga;ac=ՏKwg"xZz8Vr-睠>q.(z˯DG-+e~;t r~|UPUW>)Y!!?uA<[,A<~?Q`>X^}(̘؏t=%vO:'hΐ_pU%RGK3+xזǘ|o?D8DEm=#n>L=c|ndӕ{brqWJ>"娚R?w7|5nJ;?a~ȷQ~' ˿}Ij6KaG="HK߈qaJ~#YY C=]<T}4WbAsOU0ܢec,T~t(+5qD>|;C't-ȇo%!d~#R_=-&\?@ގxƝ>wW"i_+"R8[ J0oWGf,z{.I] h*\*/"6z!^ npFϚJ.4'oSv&=JB=魲vIM_. ]cā0CzxA-]]+5VZ LE/?Jqȅz֟>%,(WݘǰWи-]^e)+c'*ڕ+~xy@zn($O7Y~~_?p+Gk!ѮG|OB}r\ K"=\E9q .ek h{mop3O]9H=B4esD펚Rΐ8PeG;|J xH/Ox +_y!omTMjF<3䓈oŲIL~8)߂"Ы|8ܡ? ݣWP_v1h:S>WhV ?Joȟ)U51 QxL^1|\CvNbxyΟKgM_O2U/_"n Ƌwy.q An D|FI響GxVRq+zL__16e!d= eeb>I|8hp /Cuyu>o_s t⥌ W\wYXJg{(y+bq\/LJ%g @9C4?%|'Ǖ~Ol>ͪAͰo5G8/$Ɠ AzD=a"_LJXP~%2^8o\h:WߢXie_Yo%(g8rK:Pׅ( xUl1_"D e}@>b$Cz%˯}ȸPz/G;[D;D#ȿq4^x:/<ś=d=O>#xWE󚗇 CHwȇЯqHg~ô83?nZPɈO-2;gl?#]ϯ{)O1z þLu_U?L$Q>d8  yȢ?g1zW<>Tԗ5?Fܨ4?@)~zx궧ؾ䞶O($i5fy/P絭2?!/>rIDD X_._vj(^\ryyLw."/.X~nL xNM{1}?413S媌GX LI"8˷` 5.s@UTD^pD:!xԚaXq783䝘 P.88?qLu"$v(?h܋x0hA:C8> pd,2>b)MǥOGu/'ۉE3'y +G*ơOhr+]GG`'9cMP|h&ϚډQy{N\Wiz$~Ϗ//|Hd}, (>A}3u~<1 J>•Z/@䑠Hh7Fz~BBm_|:Ej|>Rq%5漢R5hoA[I@So #؍) nA|qk}~Tv"w3n? ӐZj}{jE~.w@ U4- ;_~'zpǣ~ Ո#a >@=΍ʳ^ ov~"ez]okR;NM*쬢#C=PqCt}Az+<}Se1#>E@eA-^^NY. ?KTYPr1~ewC7u8?iyxDB;[e}~HX/J?"<ǡ ^]yU\g.OO"C,a8?i `}5UK8z<JXy!<+_crT㛈Fe͢xeA7lu8Y8޿@.ZY$h{ sR6z#~t{~kPqO$a#05z6ίWI=4^c;?{S <$ =PО+Nn]O{ 'U"k/_ y&"Y"z=Μ[eB׋yr׫C$cJ\(yO5=*s F/?oӉS ڿғQkȿ0ʾMDQBwx<I궏P) &[\Gם?SgH@ /W/g!}z{JNZX$T< . g%o#Gu!M'QrA_h~pu_^Vcu%%WH_.o"~aܒvUh_ qPIO@.Iޣ.DxDc8/$b]^^T5> ǝ8.ȇю*(1}CLr=4_^WI$,9Gvb2r8:?JE:-2 z} N9\|~$̯$ׇwq#z_C/ꇔ|`ŧ8^|Aq||硘묲B"^_M~ZtJ/~xW_8hgby1. 8n ["z2.%>9L8N"}8^IWJL mw*`;`~ b`灟rt}HQ_F}6珑<0\O xXPh/+go8wտYQ̿O' uD+rh|&OE~NO1E\Si9/?#1sw)_DO#^ ?.^P&!.菬8;rj ^zc;.,^U A}U?ў\>^5߬!Lp~I*XG*DG[CEG~KMɭAhUe!e=4-d:@|;-.B8To C&]#i|E׌홈hG?En<SXC~z4>N?_XP خU9O1\NNtBa p:uvfiU:~AM9л$Byz/-])qAq(qePU'E'@/.ĬXazD3TDP{5P~%2δ񂪉Tr>Gz1 |'#P}3ufN/y(6p=/z2h>(p\mT&AT.g`kwHb#nGqHH_VLZz^!uh':TW՗ws1[gḰ8Nh700jf}^@0'oS~L_Nu3b Ώ{"Bx?/G \ o1|(Z?D~اMP"ѻ8vnv AL+П&Wi*噯!cwb*Q P|޷/7-~-MV|P_`l wRQ5_r`|Xz$79Ĵȫ}?<аޟ_%cy|}H2(C舁:S$h;h'E=@4|3Th?kqN]bߑ8&]xeeʷz '+Bg*ҹD$9hʹIrKt\gD|xrN M8?=(*گ.){T!;\8~JOϣWH>IۺNoh/WIa_DqA!<3/$#_y| /c>T(_C/P?_GrDAqJod˂r<3 xmU3~w%n_5=+ĥ+<dž GَMHT{a!gxǃx!}E~R8>?GP/䟮IR+ݰ ~֌U5sy9l.\~d~!?+!&\YXGzer7^ɼB? ۃ{;?߬ )ACy=.\uc&ߡkoWlc$1jz-Vs ɿm);9փhAT|?NYۅquS}k.q.Ɵc;U\]Z$HU*'?SP^4~2ϐ>S #C"χq7Em^*h֗7!b|T}/G ߏϨx6y|-(GO>:7"/WDߦD>&bסp1 >4ՖLOǍޗ[EGy/O("mF&s˘"= +,gKPԕkSxx O>cRe~h;G;1G5UR?<^EB%)LEB7vwOE3#p=uWߋ|Udߑnr%Q;8ȏ]T_a~8NjRvs^~EKy q}2 (10场~Cˣ-U#oo;ixEI4_DQ~'l)~6Cʼn ʥ|Rn.9nD_q1> W5XJyCyfOhbyf1Dm9 NgqJbZ>R <$GGrhH#;nD~:KPjCoE=|ob_ H[/E>c1^1v>o kŏ|DGm|GT{)?qlFxnH,ϗY j{? }DOʏPQqadxCJ8NGHq#}Pvl|B;2[?ezW|^g) "|<ɲ"ہ!Q*o|3+7$p_E/Y\/V ?D|U2 Ri;y*Nyt)=GX/F?-5=Դ BPP?ϣ4_S|OKy8$u_Q?qQ1_ǣ߉ =.q=}qPI&Un`eK0(CsW#q8 x4ˢG9 Rm%IH"GM?q4|6qE }Iyx֭9pa'Nsiަžz_ѿ޿[η|o _X?"~wk.B_54aK~>s]ä&p&U;J)&k}=:.J kj[Bz]Į_s),y%~ Yz9OXHNj3+!*Okh|;7 S,/:GY3%bEthS39, R jLo#84h@0LCQ"02$^ lo>Dҋ|#8.s5,8 !~k_>"oH!c3^"3b~Bv瞧cE.mA"F?۫_>O'y; =q9eX0 BCįqouS!b^ў|ё^䋤\q X<3i?[: M>GZT<ו<c(q3sM5ku!klD?\.O[U?Ez=:# S~_/!+$8_y>4.Et |LzkX.zƕ? Hdd~7*_0lWE;8 Bg>Ԅ7s\G!jrԏP+Xo H_V{+Q~@ .r^PX*/~p_NGQ|ϖ(W |ger /O$>Ap ɼcY}~|?3ÌZglw8O;5?Og} ّ<_cK},?`"t >r$2OÈ9|/#xNKS"O9>&(9~Y ~S8>Y~G| Ge9,=Xغ@߈)?! -2't 尿~濙oqzߏ5Ol~# I]gO!ԧ)=QTBdz~rFbyǢ}sW"] a+ޭ9ReW|J\ʞ$] ?qqf`<.g:oq=p=?/74G:+~(DT@$5g*ȏ!ꡩ$?qG/}Ӎ⏚A@E9Un@yi8J0}޿9~ƺ:RcyGhc)kT"?+/y~ 5O~ 2:>.UB+dqR`?aZFA@nZQ^g@*A1~fJ`ƹ1!u1.CW<|8x9;27;j;-W^ o^cȟx ia| cnدqv~'9i4GV8ߟ[~.xO*?C<署{kAY nl/ѯ72cBƗ;An?Pߑڏ(U֏CW"J~JӔǨ?> {@}1Ǒ>tN@OuBwj.b]^C!8b_ԇ## qf1ԃލqS|\oKoM4GH|\sC#]KSQNUI4yHOAYX֩59NU^~䂞L=X_IA!- K o\| tԴ1eG|?HtN!k?q /96;{.{g ϷUShL?B~J.7mi=O;#zzGQbM,O?(_._H]>Gf>X?B{8Om\o<~? :vx^N/O|*7{Ļ? ~C="ke=h`%|q0+>8/XWLE<8t\'ȗu> #.g^LoA=7~@{?h5\kl_x7cuA.{]*֋|zLqmlj_$5 3U^qοz5H/Ӱ^n)(sz>h?W; _AY/ >wA8N"KK:zq,= c"+#~z>!R*O~73gՓ?x!f>tXI3T߄B}U DA^uVʸKP>Q=7P77N%z3%z"|O~ 5hh> ȷݎ_=Ɵ#N~A_WC\۹؟Ѝ?/dȯ%2^D]mW.)<|W/tRuJ?i*q'ƹDAىq0~o_1nٿn&9N(Xv|^Ek=AYPH[y;< ^"(υ8 -ظ.uo1;ڮ* tbK| fP_@zz B|Gp^Rߕ>)!XM-MU?:ˡЈC-tq+bzu*ׇ^Uƿy=kcb3y>H8EM~I]HTȬ8!?|]H)ϒ |VS\b4V_' ?~8ƿNWkHCcvqu~}TnG![Dnzn ~YK߈[5FeG&4ޤw&ϩTS'/F"ȟqMOeyӿ;N,R!>*څi>N'DyvxJĞJKE|T"MDUI:r. 8!CCq C}"SqUֺ%aܧa݉)}?^/|53ep]V/_0Ϭ!W/יo uQ#ByxƸ%q%_+`NHĻ8~hxp =*nC>^EHw>y}67mE.[u fъ3W1m,KΟ?+|ٌX%s*?[>gf^G3/_|;m+wX9w`` /_>cK,G'X2rʌW20YNl5eeuӎ>++W'wҼWxSg{13,BWt\\ʲ{ߘpBۮo~BVZ =$<+6'pjbz%6"^UejUklf~2Yz`da."Iw=vսrmS=XϻL {O'$/,VmfJ5Y].%/;xY+HV׾SId޸cH0n蕕tߨIVJ}1d}?>%#ڣ}!jB<߾/;'[cɺ^U!U5MltܕO%+ks |CV}v!Zj#Ri!jkZ8BVvd*]dm9gLy2~_m>4xmlK2ԸswX>&Žh_g t/؅AT+CDӚkWs+e JQbvo_(k)Z~qY+W3;7;;8{_̊$Y+m;=9b_vU/;9zѸ"c΂SX?n{?N(_lR??Zfן1e?O=g>>)yO?؁mcmc/vignettes/demo.Rnw0000644000176200001440000010207013636316205014622 0ustar liggesusers \documentclass{article} \usepackage{natbib} \usepackage{graphics} \usepackage{amsmath} \usepackage{indentfirst} \usepackage{url} \usepackage[utf8]{inputenc} \DeclareMathOperator{\var}{var} \DeclareMathOperator{\cov}{cov} % \VignetteIndexEntry{MCMC Example} \begin{document} <>= options(keep.source = TRUE, width = 60) @ \title{MCMC Package Example (Version \Sexpr{packageVersion("mcmc")})} \author{Charles J. Geyer} \maketitle \section{The Problem} This is an example of using the \verb@mcmc@ package in R. The problem comes from a take-home question on a (take-home) PhD qualifying exam (School of Statistics, University of Minnesota). Simulated data for the problem are in the dataset \verb@logit@. There are five variables in the data set, the response \verb@y@ and four predictors, \verb@x1@, \verb@x2@, \verb@x3@, and \verb@x4@. A frequentist analysis for the problem is done by the following R statements <>= library(mcmc) data(logit) out <- glm(y ~ x1 + x2 + x3 + x4, data = logit, family = binomial, x = TRUE) summary(out) @ But this problem isn't about that frequentist analysis, we want a Bayesian analysis. For our Bayesian analysis we assume the same data model as the frequentist, and we assume the prior distribution of the five parameters (the regression coefficients) makes them independent and identically normally distributed with mean 0 and standard deviation 2. The log unnormalized posterior density (log likelihood plus log prior) for this model is calculated by the following R function. In order to avoid using either global variables or \verb@...@ arguments, we use the function factory pattern (\citealp[Section~10.3.1]{wickham}; \citealp[Section~7.5, especially Subsection~7.5.4]{basic}; see also Appendix~\ref{sec:versus} below). <>= lupost_factory <- function(x, y) function(beta) { eta <- as.numeric(x %*% beta) logp <- ifelse(eta < 0, eta - log1p(exp(eta)), - log1p(exp(- eta))) logq <- ifelse(eta < 0, - log1p(exp(eta)), - eta - log1p(exp(- eta))) logl <- sum(logp[y == 1]) + sum(logq[y == 0]) return(logl - sum(beta^2) / 8) } lupost <- lupost_factory(out$x, out$y) @ The tricky calculation of the log likelihood avoids overflow and catastrophic cancellation in calculation of $\log(p)$ and $\log(q)$ where \begin{align*} p & = \frac{\exp(\eta)}{1 + \exp(\eta)} = \frac{1}{1 + \exp(- \eta)} \\ q & = \frac{1}{1 + \exp(\eta)} = \frac{\exp(- \eta)}{1 + \exp(- \eta)} \end{align*} so taking logs gives \begin{align*} \log(p) & = \eta - \log(1 + \exp(\eta)) = - \log(1 + \exp(- \eta)) \\ \log(q) & = - \log(1 + \exp(\eta)) = - \eta - \log(1 + \exp(- \eta)) \end{align*} To avoid overflow, we always chose the case where the argument of $\exp$ is negative. We have also avoided catastrophic cancellation when $\lvert\eta\rvert$ is large. If $\eta$ is large and positive, then \begin{align*} p & \approx 1 \\ q & \approx 0 \\ \log(p) & \approx - \exp(- \eta) \\ \log(q) & \approx - \eta - \exp(- \eta) \end{align*} and our use of the R function \texttt{log1p}, which calculates the function $x \mapsto \log(1 + x)$ correctly for small $x$ avoids all problems. The case where $\eta$ is large and negative is similar. \section{Beginning MCMC} With those definitions in place, the following code runs the Metropolis algorithm to simulate the posterior. <>= set.seed(42) # to get reproducible results beta.init <- as.numeric(coefficients(out)) out <- metrop(lupost, beta.init, 1e3) names(out) out$accept @ The arguments to the \verb@metrop@ function used here (there are others we don't use) are \begin{itemize} \item an R function (here \verb@lupost@) that evaluates the log unnormalized density of the desired stationary distribution of the Markov chain (here a posterior distribution). Note that (although this example does not exhibit the phenomenon) that the unnormalized density may be zero, in which case the log unnormalized density is \verb@-Inf@. \item an initial state (here \verb@beta.init@) of the Markov chain. \item a number of batches (here \verb@1e3@) for the Markov chain. This combines with batch length and spacing (both 1 by default) to determine the number of iterations done. \item additional arguments (here \verb@x@ and \verb@y@) supplied to provided functions (here \verb@lupost@). \item there is no ``burn-in'' argument, although burn-in is easily accomplished, if desired (more on this below). \end{itemize} The output is in the component \verb@out$batch@ returned by the \verb@metrop@ function. We'll look at it presently, but first we need to adjust the proposal to get a higher acceptance rate (\verb@out$accept@). It is generally accepted \citep*{grg} that an acceptance rate of about 20\% is right, although this recommendation is based on the asymptotic analysis of a toy problem (simulating a multivariate normal distribution) for which one would never use MCMC and is very unrepresentative of difficult MCMC applications. \citet{geyer-temp} came to a similar conclusion, that a 20\% acceptance rate is about right, in a very different situation. But they also warned that a 20\% acceptance rate could be very wrong and produced an example where a 20\% acceptance rate was impossible and attempting to reduce the acceptance rate below 70\% would keep the sampler from ever visiting part of the state space. So the 20\% magic number must be considered like other rules of thumb we teach in intro courses (like $n > 30$ means means normal approximation is valid). We know these rules of thumb can fail. There are examples in the literature where they do fail. We keep repeating them because we want something simple to tell beginners, and they are all right for some problems. Be that as it may, we try for 20\%. <>= out <- metrop(out, scale = 0.1) out$accept out <- metrop(out, scale = 0.3) out$accept out <- metrop(out, scale = 0.5) out$accept out <- metrop(out, scale = 0.4) out$accept @ Here the first argument to each instance of the \verb@metrop@ function is the output of a previous invocation. The Markov chain continues where the previous run stopped, doing just what it would have done if it had kept going, the initial state and random seed being the final state and final random seed of the previous invocation. Everything stays the same except for the arguments supplied (here \verb@scale@). \begin{itemize} \item The argument \verb@scale@ controls the size of the Metropolis ``normal random walk'' proposal. The default is \verb@scale = 1@. Big steps give lower acceptance rates. Small steps give higher. We want something about 20\%. It is also possible to make \verb@scale@ a vector or a matrix. See \verb@help(metrop)@. \end{itemize} Because each run starts where the last one stopped (when the first argument to \verb@metrop@ is the output of the previous invocation), each run serves as ``burn-in'' for its successor (assuming that any part of that run was worth anything at all). \section{Diagnostics} O.~K. That does it for the acceptance rate. So let's do a longer run and look at the results. <>= out <- metrop(out, nbatch = 1e4) t.test(out$accept.batch)$conf.int out$time @ Here we do a Monte Carlo confidence interval for the true unknown acceptance rate (what we would see with an infinite Monte Carlo sample size). Figure~\ref{fig:fig1} (page~\pageref{fig:fig1}) shows the time series plot made by the R statement <>= plot(ts(out$batch)) @ \begin{figure} \begin{center} <>= <> @ \end{center} \caption{Time series plot of MCMC output.} \label{fig:fig1} \end{figure} Another way to look at the output is an autocorrelation plot. Figure~\ref{fig:fig2} (page~\pageref{fig:fig2}) shows the time series plot made by the R statement <>= acf(out$batch) @ \begin{figure} \begin{center} <>= <> @ \end{center} \caption{Autocorrelation plot of MCMC output.} \label{fig:fig2} \end{figure} As with any multiplot plot, these are a bit hard to read. Readers are invited to make the separate plots to get a better picture. As with all ``diagnostic'' plots in MCMC, these don't ``diagnose'' subtle problems. \begin{quotation} The purpose of regression diagnostics is to find obvious, gross, embarrassing problems that jump out of simple plots \citep{bogosity}. \end{quotation} The time series plots will show \emph{obvious} nonstationarity. They will not show \emph{nonobvious} nonstationarity. They provide no guarantee whatsoever that your Markov chain is sampling anything remotely resembling the correct stationary distribution (with log unnormalized density \verb@lupost@). In this very easy problem, we do not expect any convergence difficulties and so believe what the diagnostics seem to show, but one is a fool to trust such diagnostics in difficult problems. The autocorrelation plots seem to show that the the autocorrelations are negligible after about lag 25. This diagnostic inference is reliable if the sampler is actually working (has nearly reached equilibrium) and worthless otherwise. Thus batches of length 25 should be sufficient, but let's use length 100 to be safe. A more judicious discussion of asymptotics is found in \citet[Section~1.11.5]{intro}, which says \begin{quotation} Many [diagnostics] come with theorems, but the theorems never prove the property you really want a diagnostic to have. These theorems say that if the chain converges, then the diagnostic will probably say that the chain converged, but they do not say that if the chain pseudo-converges, then the diagnostic will probably say that the chain did not converge. \end{quotation} \section{Monte Carlo Estimates and Standard Errors} <>= out <- metrop(out, nbatch = 100, blen = 100, outfun = function(z) c(z, z^2)) t.test(out$accept.batch)$conf.int out$time @ We have added an argument \verb@outfun@ that gives the functional of the Markov chain \citep[Section~1.6]{intro} we want to average. For this problem we are interested in both posterior mean and variance. Mean is easy, just average the variables in question. But variance is a little tricky. We need to use the identity $$ \var(X) = E(X^2) - E(X)^2 $$ to write variance as a function of two things that can be estimated by simple averages. Hence we want to average the state itself and the squares of each component. Hence our \verb@outfun@ returns \verb@c(z, z^2)@ for an argument (the state vector) \verb@z@. \subsection{Simple Means} The grand means (means of batch means) are <>= apply(out$batch, 2, mean) @ The first 5 numbers are the Monte Carlo estimates of the posterior means. The second 5 numbers are the Monte Carlo estimates of the posterior ordinary second moments. We get the posterior variances by <>= foo <- apply(out$batch, 2, mean) mu <- foo[1:5] sigmasq <- foo[6:10] - mu^2 mu sigmasq @ Monte Carlo standard errors (MCSE) are calculated from the batch means. This is simplest for the means. <>= mu.mcse <- apply(out$batch[ , 1:5], 2, sd) / sqrt(out$nbatch) mu.mcse @ The extra factor \verb@sqrt(out$nbatch)@ arises because the batch means have variance $\sigma^2 / b$ where $b$ is the batch length, which is \verb@out$blen@, whereas the overall means \verb@mu@ have variance $\sigma^2 / n$ where $n$ is the total number of iterations, which is \verb@out$blen * out$nbatch@. \subsection{Functions of Means} To get the MCSE for the posterior variances we apply the delta method. Let $u_i$ denote the sequence of batch means of the first kind for one parameter and $\bar{u}$ the grand mean (the estimate of the posterior mean of that parameter), let $v_i$ denote the sequence of batch means of the second kind for the same parameter and $\bar{v}$ the grand mean (the estimate of the posterior second absolute moment of that parameter), and let $\mu = E(\bar{u})$ and $\nu = E(\bar{v})$. Then the delta method linearizes the nonlinear function $$ g(\mu, \nu) = \nu - \mu^2 $$ as $$ \Delta g(\mu, \nu) = \Delta \nu - 2 \mu \Delta \mu $$ saying that $$ g(\bar{u}, \bar{v}) - g(\mu, \nu) $$ has the same asymptotic normal distribution as $$ (\bar{v} - \nu) - 2 \mu (\bar{u} - \mu) $$ which, of course, has variance \verb@1 / nbatch@ times that of $$ (v_i - \nu) - 2 \mu (u_i - \mu) $$ and this variance is estimated by $$ \frac{1}{n_{\text{batch}}} \sum_{i = 1}^{n_{\text{batch}}} \bigl[ (v_i - \bar{v}) - 2 \bar{u} (u_i - \bar{u}) \bigr]^2 $$ So <>= u <- out$batch[ , 1:5] v <- out$batch[ , 6:10] ubar <- apply(u, 2, mean) vbar <- apply(v, 2, mean) deltau <- sweep(u, 2, ubar) deltav <- sweep(v, 2, vbar) foo <- sweep(deltau, 2, ubar, "*") sigmasq.mcse <- sqrt(apply((deltav - 2 * foo)^2, 2, mean) / out$nbatch) sigmasq.mcse @ does the MCSE for the posterior variance. Let's just check that this complicated \verb@sweep@ and \verb@apply@ stuff does do the right thing. <>= sqrt(mean(((v[ , 2] - vbar[2]) - 2 * ubar[2] * (u[ , 2] - ubar[2]))^2) / out$nbatch) @ \paragraph{Comment} Through version 0.5 of this vignette it contained an incorrect procedure for calculating this MCSE, justified by a handwave (which was incorrect). Essentially, it said to use the standard deviation of the batch means called \verb@v@ here, which appears to be very conservative. \subsection{Functions of Functions of Means} If we are also interested in the posterior standard deviation (a natural question, although not asked on the exam problem), the delta method gives its standard error in terms of that for the variance <>= sigma <- sqrt(sigmasq) sigma.mcse <- sigmasq.mcse / (2 * sigma) sigma sigma.mcse @ \section{A Final Run} So that's it. The only thing left to do is a little more precision (the exam problem directed ``use a long enough run of your Markov chain sampler so that the MCSE are less than 0.01'') <>= out <- metrop(out, nbatch = 500, blen = 400) t.test(out$accept.batch)$conf.int out$time <> <> <> <> @ and some nicer output, which is presented in three tables constructed from the R variables defined above using the R \verb@xtable@ command in the \verb@xtable@ library. \begin{table}[ht] \caption{Posterior Means} \label{tab:mu} \begin{center} <>= foo <- rbind(mu, mu.mcse) dimnames(foo) <- list(c("estimate", "MCSE"), c("constant", paste("$x_", 1:4, "$", sep = ""))) library(xtable) print(xtable(foo, digits = rep(4, 6), align = c("l", rep("c", 5))), floating = FALSE, caption.placement = "top", sanitize.colnames.function = function(x) return(x)) @ \end{center} \end{table} \begin{table}[ht] \caption{Posterior Variances} \label{tab:sigmasq} \begin{center} <>= foo <- rbind(sigmasq, sigmasq.mcse) dimnames(foo) <- list(c("estimate", "MCSE"), c("constant", paste("$x_", 1:4, "$", sep = ""))) library(xtable) print(xtable(foo, digits = rep(4, 6), align = c("l", rep("c", 5))), floating = FALSE, caption.placement = "top", sanitize.colnames.function = function(x) return(x)) @ \end{center} \end{table} \begin{table}[ht] \caption{Posterior Standard Deviations} \label{tab:sigma} \begin{center} <>= foo <- rbind(sigma, sigma.mcse) dimnames(foo) <- list(c("estimate", "MCSE"), c("constant", paste("$x_", 1:4, "$", sep = ""))) library(xtable) print(xtable(foo, digits = rep(4, 6), align = c("l", rep("c", 5))), floating = FALSE, caption.placement = "top", sanitize.colnames.function = function(x) return(x)) @ \end{center} \end{table} Note for the record that the all the results presented in the tables are from ``one long run'' where long here took only <>= cat(out$time[1], "\n") @ seconds (on whatever computer it was run on). \section{New Variance Estimation Functions} R function \texttt{initseq} (added in version 0.6 of this package) estimates variances in the Markov chain central limit theorem (CLT) following the methodology introduced by \citet[Section~3.3]{practical}. These methods only apply to scalar-valued functionals of reversible Markov chains, but the Markov chains produced by the \texttt{metrop} function satisfy this condition, even, as we shall see below, when batching is used. Rather than redo the Markov chains in the preceding material, we just look at a toy problem, an AR(1) time series, which can be simulated in one line of R. This is the example on the help page for \texttt{initseq}. <>= n <- 2e4 rho <- 0.99 x <- arima.sim(model = list(ar = rho), n = n) @ The time series \texttt{x} is a reversible Markov chain and trivially a scalar-valued functional of a Markov chain. Define \begin{equation} \label{eq:little} \gamma_k = \cov(X_i, X_{i + k}) \end{equation} where the covariances refer to the stationary Markov chain having the same transition probabilities as \texttt{x}. Then the variance in the CLT is $$ \sigma^2 = \gamma_0 + 2 \sum_{k = 1}^\infty \gamma_k $$ \citep[Theorem~2.1]{practical}, that is, $$ \bar{x}_n \approx \text{Normal}\left(\mu, \frac{\sigma^2}{n}\right), $$ where $\mu = E(X_i)$ is the quantity being estimated by MCMC (in this toy problem we know $\mu = 0$). Naive estimates of $\sigma^2$ obtained by plugging in empirical estimates of the gammas do not provide consistent estimation \citep[Section~3.1]{practical}. Thus the scheme implemented by the R function \texttt{initseq}. Define \begin{equation} \label{eq:big} \Gamma_k = \gamma_{2 k} + \gamma_{2 k + 1} \end{equation} \citet[Theorem~3.1]{practical} says that $\Gamma_k$ considered as a function of $k$ is strictly positive, strictly decreasing, and strictly convex (provided we are, as stated above, working with a reversible Markov chain). Thus it makes sense to use estimators that use these properties. The estimators implemented by the R function \texttt{initseq} and described by \citet[Section~3.3]{practical} are conservative-consistent in the sense of Theorem~3.2 of that section. Figure~\ref{fig:gamma} (page~\pageref{fig:gamma}) shows the time series plot made by the R statement <>= out <- initseq(x) plot(seq(along = out$Gamma.pos) - 1, out$Gamma.pos, xlab = "k", ylab = expression(Gamma[k]), type = "l") lines(seq(along = out$Gamma.dec) - 1, out$Gamma.dec, lty = "dotted") lines(seq(along = out$Gamma.con) - 1, out$Gamma.con, lty = "dashed") @ \begin{figure} \begin{center} <>= <> @ \end{center} \caption{Plot ``Big Gamma'' defined by \eqref{eq:little} and \eqref{eq:big}. Solid line, initial positive sequence estimator. Dotted line, initial monotone sequence estimator. Dashed line, initial convex sequence estimator.} \label{fig:gamma} \end{figure} One can use whichever curve one chooses, but now that the \texttt{initseq} function makes the computation trivial, it makes sense to use the initial convex sequence. Of course, one is not interested in Figure~\ref{fig:gamma}, except perhaps when explaining the methodology. What is actually important is the estimate of $\sigma^2$, which is given by <>= out$var.con (1 + rho) / (1 - rho) * 1 / (1 - rho^2) @ where for comparison we have given the exact theoretical value of $\sigma^2$, which, of course, is never available in a non-toy problem. These initial sequence estimators seem, at first sight to be a competitor for the method of batch means. However, appearances can be deceiving. The two methods are complementary. The sequence of batch means is itself a scalar-valued functional of a reversible Markov chain. Hence the initial sequence estimators can be applied to it. <>= blen <- 5 x.batch <- apply(matrix(x, nrow = blen), 2, mean) bout <- initseq(x.batch) @ Because the batch length is too short, the variance of the batch means does not estimate $\sigma^2$. We must account for the autocorrelation of the batches, shown in Figure~\ref{fig:gambat}. <>= plot(seq(along = bout$Gamma.con) - 1, bout$Gamma.con, xlab = "k", ylab = expression(Gamma[k]), type = "l") @ \begin{figure} \begin{center} <>= <> @ \end{center} \caption{Plot ``Big Gamma'' defined by \eqref{eq:little} and \eqref{eq:big} for the sequence of batch means (batch length \Sexpr{blen}). Only initial convex sequence estimator is shown.} \label{fig:gambat} \end{figure} Because the the variance is proportional to one over the batch length, we need to multiply by the batch length to estimate the $\sigma^2$ for the original series. <>= out$var.con bout$var.con * blen @ Another way to look at this is that the MCMC estimator of $\mu$ is either \texttt{mean(x)} or \texttt{mean(x.batch)}. And the variance must be divided by the sample size to give standard errors. So either <>= mean(x) + c(-1, 1) * qnorm(0.975) * sqrt(out$var.con / length(x)) mean(x.batch) + c(-1, 1) * qnorm(0.975) * sqrt(bout$var.con / length(x.batch)) @ is an asymptotic 95\% confidence interval for $\mu$. Just divide by the relevant sample size. \appendix \section{Dot-dot-dot Versus Global Variables Versus Closures} \label{sec:versus} This appendix deals with three ways to pass information to a function being passed to another R function (a higher-order function), for example when \begin{itemize} \item the function being passed is the objective function for an optimization done by the higher-order function, which optimizes (R function \texttt{optim} for example), \item the function being passed is the integrand for an integration done by the higher-order function, which integrates (R function \texttt{integrate} for example), \item the function being passed is the estimator of a parameter for a bootstrap done by the higher-order function, which simulates the (bootstrap approximation) of the sampling distribution of the estimator (R function \texttt{boot} in R package \texttt{boot}, for example), \item the function being passed is the log unnormalized density function for a simulation done by the higher-order function, which simulates the distribution having that unnormalized density (R function \texttt{metrop} in this package for example), \end{itemize} These ways are \begin{itemize} \item using dot-dot-dot (R syntax \verb@...@), \item using global variables, \item using closures, also called the function factory pattern. \end{itemize} The main body of this vignette uses the third option. This appendix explains them all and the virtues and vices of each. \subsection{Dot-dot-dot} The dot-dot-dot mechanism is fairly easy to use when only one function is passed to the higher-order function, but does require care and more work to use. It is even harder to deal with when more than one function is passed to the higher-order function. R functions \texttt{metrop} and \texttt{temper} in this package can be passed two functions: the log unnormalized density function and the output function. \subsection{Only One Function Argument} Previous versions of this vignette used the dot-dot-dot mechanism everywhere. In those versions the log unnormalized density function was defined by <>= lupost <- function(beta, x, y) { eta <- as.numeric(x %*% beta) logp <- ifelse(eta < 0, eta - log1p(exp(eta)), - log1p(exp(- eta))) logq <- ifelse(eta < 0, - log1p(exp(eta)), - eta - log1p(exp(- eta))) logl <- sum(logp[y == 1]) + sum(logq[y == 0]) return(logl - sum(beta^2) / 8) } @ rather than the way it is now done in the main text above. Note that everything is the same in the two definitions except here we have \begin{verbatim} lupost <- function(beta, x, y) { \end{verbatim} where in the main text we now have \begin{verbatim} lupost_factory <- function(x, y) function(beta) { \end{verbatim} and then we have to execute the function factory \verb@lupost_factory@ to make the \texttt{lupost} function. But the main difference is that R function \texttt{lupost} (the user written function specifying the log unnormalized posterior density) \begin{itemize} \item here has 3 arguments, \texttt{beta}, \texttt{x}, and \texttt{y}, and the latter two must be passed via the dot-dot-dot mechanism, but \item there has 1 argument, \texttt{beta}, and it just knows about \texttt{x} and \texttt{y} --- they are in its closure. \end{itemize} So to use this \texttt{lupost} function, we have to add arguments \texttt{x} and \texttt{y} to each call to R function \texttt{metrop}. For example <>= out <- glm(y ~ x1 + x2 + x3 + x4, data = logit, family = binomial, x = TRUE) x <- out$x y <- out$y out <- metrop(lupost, beta.init, 1e3, x = x, y = y) out$accept out <- metrop(out, scale = 0.1, x = x, y = y) out$accept out <- metrop(out, scale = 0.3, x = x, y = y) out$accept out <- metrop(out, scale = 0.5, x = x, y = y) out$accept out <- metrop(out, scale = 0.4, x = x, y = y) out$accept @ and so forth. This method has the benefit that we do not have to explain function factories and has the drawback that we need to keep remembering to add \verb@x = x, y = y@ to each invocation of R function \texttt{metrop}. It is unclear to me which pattern is more mysterious to naive users. \subsection{More Than One Function Argument} The situation becomes more complicated (see the Warning section of the help pages for R functions \texttt{metrop} and \texttt{temper}) when more than one function argument is passed to the higher-order function. Then \emph{they all must handle the \emph{same} dot-dot-dot arguments} whether or not they want them. So now we must define the output function as <>= outfun <- function(z, ...) c(z, z^2) @ The \verb@...@ argument in the function signature is essential because this function is going to be passed dot-dot-dot arguments \texttt{x} and \texttt{y}, which it does not need and does not want, so it has to allow for them (and then not use them). Then we can continue <>= out <- metrop(out, nbatch = 100, blen = 100, outfun = outfun, x = x, y = y) out$accept @ and this works. But we would have gotten an error about unused arguments if we had defined the output function without the dot-dot-dot as we did in the main text. Your humble author was himself confused about this for years and so doubts that naive R users will find it intuitive. \subsection{Global Variables} As every programmer knows global variables are easy to use and evil \citep{c2}. They are part of the way of R (or perhaps part of one of the ways of R). They are OK for ``very small or one-off programs'' \citep{c2}. If you are going to throw the code away after one use, fine. If you are going to give your code to other people or even use it yourself six months later (after you have long forgotten the details), then this method is evil and should be avoided. In this method we define both functions passed to the higher-order function without \verb@...@ and without using a function factory. We already in the preceding section of this appendix defined R objects \texttt{x} and \texttt{y} as global variables (in the R global environment \verb@.GlobalEnv@). They are global variables and we use them as such, defining <>= lupost <- function(beta) { eta <- as.numeric(x %*% beta) logp <- ifelse(eta < 0, eta - log1p(exp(eta)), - log1p(exp(- eta))) logq <- ifelse(eta < 0, - log1p(exp(eta)), - eta - log1p(exp(- eta))) logl <- sum(logp[y == 1]) + sum(logq[y == 0]) return(logl - sum(beta^2) / 8) } outfun <- function(z) c(z, z^2) @ Then the following works <>= out <- metrop(lupost, beta.init, 1e3) out$accept out <- metrop(out, scale = 0.1) out$accept out <- metrop(out, scale = 0.3) out$accept out <- metrop(out, scale = 0.5) out$accept out <- metrop(out, scale = 0.4) out$accept out <- metrop(out, nbatch = 100, blen = 100, outfun = outfun) out$accept @ We get the best of both worlds. We don't need \verb@x = x, y = y@ and we don't need a function factory. But if we change the name of the global variables to say \texttt{modmat} and \texttt{resp} instead of \texttt{x} and \texttt{y}, then our code breaks. R function \texttt{lupost} is looking up global variables \texttt{x} and \texttt{y} \emph{under those names} not under any other names. So your code using this method is rigid and brittle and probably unusable by others. Note that if we are using either of the other methods, renaming is no problem. Using dot-dot-dot we do \begin{verbatim} out <- metrop(out, scale = 0.1, x = modmat, y = resp) \end{verbatim} Using the function factory we do \begin{verbatim} lupost <- lupost_factory(modmat, resp) \end{verbatim} See Section~7.5.3 of \citet{basic} for more about this. \subsection{Function Factory} The terminology ``function factory pattern'' is apparently due to \citet[Section~10.3.1]{wickham}. But it is just a special case about how closures work (in R and all other languages that have them). Compare <>= fred <- function(y) function(x) x + y fred(2)(3) @ \citep[Section~6.5]{basic}) to <>= lupost_factory <- function(x, y) function(beta) { eta <- as.numeric(x %*% beta) logp <- ifelse(eta < 0, eta - log1p(exp(eta)), - log1p(exp(- eta))) logq <- ifelse(eta < 0, - log1p(exp(eta)), - eta - log1p(exp(- eta))) logl <- sum(logp[y == 1]) + sum(logq[y == 0]) return(logl - sum(beta^2) / 8) } lupost <- lupost_factory(x, y) lupost(beta.init) @ We could also do the same calculation treating \verb@lupost_factory@ as just an ordinary curried function, like R function \texttt{fred} in the preceding example, <>= lupost_factory(x, y)(beta.init) @ So there is nothing mysterious about function factories. They are just one particular use of the essence of functional programming (closures). If you really understand functional programming, then you must understand this. Long ago, when I switched from S to R, I would not have considered that being an ``knowledgeable user'' of R required knowledge of closures. Now I do. This is partly because other functional languages like Scheme, Javascript, F\#, Clojure, and Haskell have become very popular for general computer programming. So now we want to emphasize that we can do in R what we can do in them. But it is also partly because I now understand more about functional programming. I can now see that if you really understand closures, then you don't need most other features of these programming languages (including R). Following \citet{crockford} we can say that all programming languages (including R) have their good parts and their bad parts and we should use the good features and avoid the bad features. The best feature is closures. Crockford calls this the best idea ever put in a programming language. So we should use it a lot. If I were starting to write the \texttt{mcmc} package today, I might leave out the dot-dot-dot arguments of R functions \texttt{metrop}, \texttt{morph.metrop}, and \texttt{temper}. That would mean that users could not use the dot-dot-dot pattern. They would be forced to use the function factory pattern or the global variables pattern. And if they had accepted that the global variables pattern is evil, then they would have to use the function factory pattern. (If you like the dot-dot-dot pattern, don't worry. It is not going to be removed from this package. Backward compatibility trumps everything.) \begin{thebibliography}{} \bibitem[C2 Wiki(2013)]{c2} C2 Wiki Contributors (2013). \newblock Global Variables Are Bad. \newblock \url{http://wiki.c2.com/?GlobalVariablesAreBad}. \bibitem[Crockford(2008)]{crockford} Crockford, D. (2008). \newblock \emph{JavaScript: The Good Parts}. \newblock O'Reilly, Sebastopol CA. \bibitem[Gelman et al.(1996)Gelman, Roberts, and Gilks]{grg} Gelman, A., G.~O. Roberts, and W.~R. Gilks (1996). \newblock Efficient Metropolis jumping rules. \newblock In \emph{Bayesian Statistics, 5 (Alicante, 1994)}, pp.~599--607. Oxford University Press. \bibitem[Geyer(1992)]{practical} Geyer, C.~J. (1992). \newblock Practical Markov chain Monte Carlo (with discussion). \newblock \emph{Statistical Science}, 7, 473--511. \bibitem[Geyer(2006)]{bogosity} Geyer, C. J. (2006). \newblock On the bogosity of MCMC diagnostics. \newblock \url{http://users.stat.umn.edu/~geyer/mcmc/diag.html}. \bibitem[Geyer(2011)]{intro} Geyer, C. J. (2011). \newblock Introduction to Markov chain Monte Carlo. \newblock In \emph{Handbook of Markov Chain Monte Carlo}, edited by Brooks, S., Gelman, A., Jones, G., and Meng, X.-L., pp.~3--48. \newblock Chapman \& Hall/CRC, Boca Raton, FL. \bibitem[Geyer(2018)]{basic} Geyer, C.~J. (2018). \newblock Stat 3701 lecture notes: Basics of R. \newblock \url{http://www.stat.umn.edu/geyer/3701/notes/basic.html}. \bibitem[Geyer and Thompson(1995)]{geyer-temp} Geyer, C.~J. and E.~A. Thompson (1995). \newblock Annealing Markov chain Monte Carlo with applications to ancestral inference. \newblock \emph{Journal of the American Statistical Association}, 90, 909--920. \bibitem[Wickham(2014)]{wickham} Wickham, H. (2014). \newblock \emph{Advanced R}. \newblock Chapman \& Hall/CRC, Boca Raton, FL. \newblock Also available on the web \url{http://adv-r.had.co.nz/}. \end{thebibliography} \end{document} mcmc/vignettes/morph1.rda0000644000176200001440000003246613636316205015117 0ustar liggesusersT8N( !% RK#%//t#H-( !ܫ9}ٙhaa\AGba\Ѱ/nnoW7Ow{44L E *V}s}c̝ 5ZϽ®rBH0aWP^h(0Zk\%$? xE0q,7ȫL\J2=쮯6.t&D*HofeW₄"; ӑ6qjC{T%>˪<] }\OC3.N|,~Kx?례75dNȇ s]b)h "ok /{F%GO@<1Y+h 2Yw゗ kUn~}xfѡMdW[w똦Y>J0˚ UuBa{TM(zu jXM'N]x-uרq-Ҁ/GqH 2gBb2@ v. ~xT@Of.ZjhA hMHVRoƠzpD3vx*@ /Kd2+=Ziƭ(ՙa5ԓJ#-la2_LT+ & J\tǓ8OIgvd6>bF]TJ ƿ$Vz:HNw) Fpv+Ċl2~5tߔLz5_ xMH8"uvkAdRr c5Miv; :bH|#@\gЬUV0 TC]E0S ن<AhmOW̑I'`soND7gMd>fp4dBѱ dzFw_ ];;X_߹ znWgہgdM ʼo1 K3OyS%(0pMa!Ȑ+z|.T .`ZM ` kI \bE$@NP]zAD0;0;njJn̂t//!{K0*J&xԂ3RzXXBE5*aq@Lj'7Cr7i„QazXJ73sFT ڂIX"~!) FMJS$M (> 2 =loA۶[*Z8=_OsaG3͝pώf> G}/%Bte*~2)g Y^ ħF{JCL LQ(h`},?%Ҳ<ݡa"uhkft 3=׈-"sq V!9%\_ U_(qٳЛ#s6HTkZ>~ 7`DOS#Wdt"ehp3#LօŃ~PfzA!&*ǭ{ ;4Ix8}[QP!y`i"+~ }&,D+b>@h)&1P|*&僒\ec[k~0yRr=A"+6Q3"x* &]TU Yx}>W^&QRQhAD| m,TAL[JfCXz?X+TwmKa~Q%QD'0Eⲅ#=Q{-% }TSTM9p%byyKHD$nOE+0OrLƔ.^0\|ɲ2L(yvL[L,oa"y.1TA8^0h_(NԷŒ,gș" :1O6/('{=3" gj.6t&yP9}cq}/a)T9_>hYhDl0*R3ğjI?@ufR|$ A;, }0ةykF60ǏaAA'CU}-|g(kmC.~p@s4[n1I=Jl=OWD[b4?$}͢-9VX6atBY9 K^JEF\\ k0ơ$܃y(D@1v;}u8$8vqNLSh0t'?{/봃h91<6Z뼅|<c ri0%o)jFEdoK r-(t-sd"Sl7Ry|oѩ7,ЫH~M 3w5# @vlX)|m4FVf9I~ 4COGdH˪ 0/ީ($LMdr*X`Kvi`\OI]0 @b* Q4{5UfV %b"@r(ZI@fqs3at}-hy9 VW|P2I(SXgdp֌=%Uka@1k)űBh"No9E|/KE$4H$92 e {׎V$  Ou-rJY7.I[ϚaLr9"Ƴ ͓ <"+޾Rc%JO, t?(p-=wAL?+9qcU<z#%Ҏ?4obУz>qo.o! {_78n`NI 0%.)Cd;;R$I<AD\;CXo]4é@¶ VfWBDR Nq`ljcmXEKX C7^ŵhV,{gq*0rdÔ`fV_`$r= 9.k ]whB$-ä^<8!n R Ce/PSH1ˮ'Sz ,1yּ{W$\?޼#f^01Qkp;X!w[~$b|==kI|R7)b`փ`8bT02^ezc.w \HFg;4b:]t )q Q&bE[wKxHru5[тxқLl|f$Pt}˩ÎHB}`@ơG5J| e؈`3޽ S%-~{c+zy2A_y^uЏa) y<;+g"tR!T7L<:b?ߡSG^"eIE[rxqp(dڲWZR2A\cy)D`|6gt7 )'HC34ItA@s(j. y?±"e |L ְsk0Qf2D/J D9VT%L}|B6`N{7x;:^R?1:3u_sN<6=%}j OK7le{G- 𧟊\har% cVqzQyWd^%m㤱`(5q%k4=CԋIaؚʍRkV>5KSW oUtT]*P =D efzU 4sVI1[`، ?0goh$ aRII{ @}*r`sɋ*Yu>m1&@1v]3X$ è*Y]kG Y<Rs ,eBo[]-@;5[ldAky0j*b~apz|6ׂ;}02T#4^ڶHny mj܍|; 1sdejB=E]]얉O[*KVk$35REf>'{ t] R+}ު鏄dmwҳy/Wt- `]_+`4d~|3Ĥ\>d*9nt"TJ*K/[z #o}`H[Hüq _jWucͫ5Yhw7E q=Jt4F,|yɊj3D Kzpy} _u]8iv6x"+ lAL}0vw6v)/dl78E@m<!x&8;@::ȠxELĥț/i(::̬tZZ Xw\= 4o!CEe$`:f Fm{ǂ!ʟio'ŏI0IUS,Q@aìAAu\*Oҵ :\ܚL9H/۲W˗qaTBVvۖ.0p 0Pj[ke2K j7yNvx_@y Pd 1i/ۉATTdp8 ɞiE~tSV{0|8 O̓`{ƍ3j6ԅZ0$/C.6L*DxBC\u+@ J|I`sy !} FwW0LG/9Py2T0 _d,doC9v%+LuwO ύL;qI7L y ;)ph*ε1vh k )|~Px1/|7?R#1')T}1XϞJ@q aٯ>0D%|I|9 3_J׸ vjrwr|Ze&2#R>pC+^#P*!VxlGV f}`UhK}xZΚW[0,f̓;4^]qj0f/wGb)#; #Kqai)_l w7ozUJ=#B]*"Q+ lz/*\.a 2P qե03+~(JI='@AJI;[_ճq.v=>qܦ kUcU :O<>_JD2XĂ&W<4| r[ h#Sӫ]0e%ONIMm}LN>)D#`!% e7]sZTTUL0W^ lXJsM_Dknl ,z1ˁ!,Yz=ܠ2Bԣl g`5S bfds T;݀!. &ۮݪ 0혿(M w]pR[T'C=էE;9w m)!: ^Hop̈cB@i%i]ݚR 钏@|x^aT)KƉm긙 ]ا`Ssp@u\K k >2YE}s}_0`/KA`M.+T=ٳbB"”BsQ:l{dĻBKF^>yώR#&EtH Ӵg_WYn l:g 9'%yW f" A!,2w`cgMc??сs}{A>@ (3$Q jaK\ ߵbDJg(Ag9Y 9!U-8؄sAJ.0$3n{dM;@$]ȍ1?xE=%,ae a=mͪ`EIvQ|OW (Uo`ׇC͐O="! b𷮯 B`dO8 &/_Rȏ7h}gR.+{W~hT8*deA٘,GlwLHs~,ST=NRϨ9/u>1gw7%V5O5!۽GƢLz^&ʶ5Oj O;K}25],i50 Rc#{Rf9HG,`e<@Rhk o-}v"_Fl65 <Up ~@]k?6o'Im0Q!X@XٛW~3z8T> 2M24130HĹAi&tdS ZL@j "R߂l?&ApuIxz@cGĠۊM0dby&TkpJav<O< =,. :!}ޣ=Bk?uJY;FlyV+9;랏/(uyD$ AQ c ]4y;"!'?0P|E"a}Je_͒x5b: d{S 7,XƸh0ԅx$٤?8rM~aQx4v&IrzW|31/5!T}Bۥ;-Q߿GGpr,_K9Gvy d`]d@bR)I aLGD=bYQOS'CCE8vHL5!{r/8ȪAp[zoYJ7cIbYCѼG$iUr}_*$Bo`2iGG[K%Q> |حRV.ɣ#Y2fByD z_X{spoUX9/֘ [Lq 8"AZ(rV\2bĈНϋ37wx1 &'U`AN?bhzLRh4(>ϥOcL9VU85 H1&;<`)y.7V.qkwZ >5 ȎgEq@a453ZJkר _ݶeDGzmÖ+:j$`;2߱Ө _!dc`Efh#j^yVR7р*Gu[rtdŠ؍knd/Yώ͟O(0_;M( ߰q(x/tdQѸE@,͸~Ɂ/:'8~_& :O~ jAixI2Twڬyک#h@T9m;R|t Y9,{? nx$t 6*~+1x) EL`m$`c sDDZ-P4ݣÆ-:brųp _JМ 'L҅V1XaT_5O":O,:@u,f؏8]l_UЌ4O?˯Ԑ>9 mz2;" նZbI y c#Vgś;se 8}G8vU5ڤPѾp1Xs2KBľ:\+,m 8$~&r/}Go,x;PMY}|2$Sk: }=L'HЇVT&m8`kBzb0[އ@* ٺ?uTY|udEd 6>0"!zW_e3ߙ?#CB +18_,rM Q"iQs= 2S=aU`#"mDI<&%9VOzYyh^Uyc<[j_=AYz\7*0p`!B8*v =UO &nl{_]3Wr .#ؼDw~ /F=$kc!iwLKEnZJ }W2Ey6'$9sf_VTLyb%0ZhV5X6y1v譮lfzS+-$1 ,ōͳ!I7ڱ1cKݾFN:eFeծ/ܝ5OH*pL!`$RZJ4V>O y(ղ[Va0bNN͞Nr>,XZ.Bs=T VKBǟj2CsS6 M^e<?VC+X_]kCzW̏ޔJ8H;B.,cy`&Txڬ`UĤitwo;|Nwl|W4I*\&;-`4r)ZHm yH>N;pX(3N@}Q),Soo͒ڿLTW9WtG~uUMG_{GkV>x*$~5ͮꧮSə%qqwESŬ]<;i:4ĺk4b5ǧГ"Z,}d)R%lI>H~w|xvIƥQ#yoٴJ 6OɈr g%1x=T(Q=])[O:>,QDGlՕ{\5\yxȌ)e^)YLBޥE3"zl`fޘ%d}h{$GoUV=^c֯\,Z"(6#OE^Իsy+?`1EUR ΗvB>%ϋloYODOuO:Y~|`1kc2c7+nsGJP#w8S/763Ĕ<:uufz”9n$>b2c9lob]vE+h [FoIUW;/8iwn d*PJS89 2W 1sN]ǷTR}{[Ǐ%g*n=BYirMk]e}cz gEeGH#D/*Y<ڏ6멐LJ HO_¥gwN8hyڇ_Ėh) y'څTủ_Y wpD猴}:20h6^1+V>=ŏmo)7i31%L4MOܿDXW_RedYew/acObjm]}9lvX>= options(keep.source = TRUE, width = 65) @ \section{Introduction} \subsection{Bayes Factors} \label{sec:bayes-factors} Let $\mathcal{M}$ be a finite or countable set of models (here we only deal with finite $\mathcal{M}$ but Bayes factors make sense for countable $\mathcal{M}$). For each model $m \in \mathcal{M}$ we have the prior probability of the model $\prior(m)$. It does not matter if this prior on models is unnormalized. Each model $m$ has a parameter space $\Theta_m$ and a prior $$ g(\theta \mid m), \qquad \theta \in \Theta_m $$ The spaces $\Theta_m$ can and usually do have different dimensions. That's the point. These within model priors must be normalized proper priors. The calculations to follow make no sense if these priors are unnormalized or improper. Each model $m$ has a data distribution $$ f(y \mid \theta, m) $$ and the observed data $y$ may be either discrete or continuous (it makes no difference to the Bayesian who treats $y$ as fixed after it is observed and treats only $\theta$ and $m$ as random). The unnormalized posterior for everything (for models and parameters within models) is $$ f(y \mid \theta, m) g(\theta \mid m) \prior(m) $$ To obtain the conditional distribution of $y$ given $m$, we must integrate out the nuisance parameter $\theta$ \begin{align*} q(y \mid m) & = \int_{\Theta_m} f(y \mid \theta, m) g(\theta \mid m) \prior(m) \, d \theta \\ & = \prior(m) \int_{\Theta_m} f(y \mid \theta, m) g(\theta \mid m) \, d \theta \end{align*} These are the unnormalized posterior probabilities of the models. The normalized posterior probabilities are $$ \posterior(m \mid y) = \frac{ q(y \mid m) }{ \sum_{m \in \mathcal{M}} q(y \mid m) } $$ It is considered useful to define $$ b(y \mid m) = \int_{\Theta_m} f(y \mid \theta, m) g(\theta \mid m) \, d \theta $$ so $$ q(y \mid m) = b(y \mid m) \prior(m) $$ Then the ratio of posterior probabilities of models $m_1$ and $m_2$ is $$ \frac{\posterior(m_1 \mid y)}{\posterior(m_2 \mid y)} = \frac{q(y \mid m_1)}{q(y \mid m_2)} = \frac{b(y \mid m_1)}{b(y \mid m_2)} \cdot \frac{\prior(m_1)}{\prior(m_2)} $$ This ratio is called the \emph{posterior odds} of the models (a ratio of probabilities is called an \emph{odds}) of these models. The \emph{prior odds} is $$ \frac{\prior(m_1)}{\prior(m_2)} $$ The term we have not yet named in $$ \frac{\posterior(m_1 \mid y)}{\posterior(m_2 \mid y)} = \frac{b(y \mid m_1)}{b(y \mid m_2)} \cdot \frac{\prior(m_1)}{\prior(m_2)} $$ is called the \emph{Bayes factor} \begin{equation} \label{eq:factor} \frac{b(y \mid m_1)}{b(y \mid m_2)} \end{equation} the ratio of posterior odds to prior odds. The prior odds tells how the prior compares the probability of the models. The Bayes factor tells us how the data shifts that comparison going from prior to posterior via Bayes rule. Bayes factors are the primary tool Bayesians use for model comparison, the competitor for frequentist $P$-values in frequentist hypothesis tests of model comparison. Note that our clumsy multiple letter notation for priors and posteriors $\prior(m)$ and $\posterior(m \mid y)$ does not matter because neither is involved in the actual calculation of Bayes factors \eqref{eq:factor}. Priors and posteriors are involved in motivating Bayes factors but not in calculating them. \subsection{Tempering} \label{sec:temper} Simulated tempering \citep{marinari-parisi,geyer-thompson} is a method of Markov chain Monte Carlo (MCMC) simulation of many distributions at once. It was originally invented with the primary aim of speeding up MCMC convergence, but was also recognized to be useful for sampling multiple distributions \citep{geyer-thompson}. In the latter role it is sometimes referred to as ``umbrella sampling'' which is a term coined by \citet{torrie-valleau} for sampling multiple distributions via MCMC. We have a finite set of unnormalized distributions we want to sample, all related in some way. The R function \texttt{temper} in the CRAN package \texttt{mcmc} requires all to have continuous distributions for random vectors of the same dimension (all distributions have the same domain $\real^p$). Let $h_i$, $i \in \mathcal{I}$ denote the unnormalized densities of these distributions. Simulated tempering (called ``serial tempering'' by the \texttt{temper} function to distinguish from a related scheme not used in this document called ``parallel tempering'' and in either case abbreviated ST) runs a Markov chain whose state is a pair $(i, x)$ where $i \in \mathcal{I}$ and $x \in \real^p$. The unnormalized density of stationary distribution of the ST chain is \begin{equation} \label{eq:st-joint} h(i, x) = h_i(x) c_i \end{equation} where the $c_i$ are arbitrary constants chosen by the user (more on this later). The equilibrium distribution of the ST state $(I, X)$ --- both bits random --- is such that conditional distribution of $X$ given $I = i$ is the distribution with unnormalized density $h_i$. This is obvious from $h(i, x)$ being the unnormalized conditional density --- the same function thought of as a function of both variables is the unnormalized joint density and thought of as a function of just one of the variables is an unnormalized conditional density --- and $h(i, x)$ thought of as a function of $x$ for fixed $i$ being proportional to $h_i$. The equilibrium unnormalized marginal distribution of $I$ is \begin{equation} \label{eq:margin} \int h(i, x) \, d x = c_i \int h_i(x) \, d x = c_i d_i \end{equation} where $$ d_i = \int h_i(x) \, d x $$ is the normalizing constant for $h_i$, that is, $h_i / d_i$ is a normalized distribution. It is clear from \eqref{eq:margin} being the unnormalized marginal distribution that in order for the marginal distribution to be uniform we must choose the tuning constants $c_i$ to be proportional to $1 / d_i$. It is not important that the marginal distribution be exactly uniform, but unless it is approximately uniform, the sampler will not visit each distribution frequently. Thus we do need to have the $c_i$ to be approximately proportional to $1 / d_i$. This is accomplished by trial and error (one example is done in this document) and is easy for easy problems and hard for hard problems \citep[have much to say about adjusting the $c_i$]{geyer-thompson}. For the rest of this section we will assume the tuning constants $c_i$ have been so adjusted: we do not have the $c_i$ exactly proportional to $1 / d_i$ but do have them approximately proportional to $1 / d_i$. \subsection{Tempering and Bayes Factors} Bayes factors are very important in Bayesian inference and many methods have been invented to calculate them. No method except the one described here using ST is anywhere near as accurate and straightforward. Thus no competitors will be discussed. In using ST for Bayes factors we identify the index set $\mathcal{I}$ with the model set $\mathcal{M}$ and use the integers 1, $\ldots$, $k$ for both. We would like to identify the within model parameter vector $\theta$ with the vector $x$ that is the continuous part of the state of the ST Markov chain, but cannot because the dimension of $\theta$ depends on $m$ and this is not allowed. Thus we have to do something a bit more complicated. We ``pad'' $\theta$ so that it always has the same dimension, doing so in a way that does not interfere with the Bayes factor calculation. Write $\theta = (\theta_{\text{actual}}, \theta_{\text{pad}})$, the dimension of both parts depending on the model $m$. Then we insist on the following conditions: $$ f(y \mid \theta, m) = f(y \mid \theta_{\text{actual}}, m) $$ so the data distribution does not depend on the ``padding'' and $$ g(\theta \mid m) = g_{\text{actual}}(\theta_{\text{actual}} \mid m) \cdot g_{\text{pad}}(\theta_{\text{pad}} \mid m) $$ so the two parts are \emph{a priori} independent and both parts of the prior are normalized proper priors. This assures that \begin{equation} \label{eq:unnormalized-bayes-factors} \begin{split} b(y \mid m) & = \int_{\Theta_m} f(y \mid \theta, m) g(\theta \mid m) \, d \theta \\ & = \iint f(y \mid \theta_{\text{actual}}, m) g_{\text{actual}}(\theta_{\text{actual}} \mid m) g_{\text{pad}}(\theta_{\text{pad}} \mid m) \, d \theta_{\text{actual}} \, d \theta_{\text{pad}} \\ & = \int_{\Theta_m} f(y \mid \theta_{\text{actual}}, m) g_{\text{actual}}(\theta_{\text{actual}} \mid m) \, d \theta_{\text{actual}} \end{split} \end{equation} so the calculation of the unnormalized Bayes factors is the same whether or not we ``pad'' $\theta$, and we may then take \begin{align*} h_m(\theta) & = f(y \mid \theta, m) g(\theta \mid m) \\ & = f(y \mid \theta_{\text{actual}}, m) g_{\text{actual}}(\theta_{\text{actual}} \mid m) g_{\text{pad}}(\theta_{\text{pad}} \mid m) \end{align*} to be the unnormalized densities for the component distributions of the ST chain, in which case the unnormalized Bayes factors are proportional to the normalizing constants $d_i$ in Section~\ref{sec:temper}. \subsection{Tempering and Normalizing Constants} Let $d$ be the normalizing constant for the joint equilibrium distribution of the ST chain \eqref{eq:st-joint}. When we are running the ST chain we know neither $d$ nor the $d_i$ but we do know the $c_i$, which are constants we have chosen based on the results of previous runs but are fixed known numbers for the current run. Let $(I_t, X_t)$, $t = 1$, 2, $\ldots$ be the sample path of the ST chain. Recall that (somewhat annoyingly) we are using the notation $(i, x)$ for the state vector of a general ST chain and the notation $(m, \theta)$ for ST chains used to calculate Bayes factors, identifying $i = m$ and $x = \theta$. Let $\indicator(\fatdot)$ denote the function that maps logical values to numerical values, false to zero and true to one. Normalizing constants are estimated by averaging the time spent in each model \begin{equation} \label{eq:st-estimates} \hat{\delta}_n(m) = \frac{1}{n} \sum_{t = 1}^n \indicator(I_t = m) \end{equation} For the purposes of approximating Bayes factors the $X_t$ are ignored. The $X_t$ may be useful for other purposes, such as Bayesian model averaging \citep*{bma}, but this is not discussed here. The Monte Carlo approximations \eqref{eq:st-estimates} converge to their expected values under the equilibrium distribution \begin{equation} \label{eq:st-expectations} E\{ \indicator(I_t = m) \} = \int \frac{h(m, x)}{d} \, d x = \frac{c_m d_m}{d} = \delta(m) \end{equation} We want to estimate the unnormalized Bayes factors \eqref{eq:unnormalized-bayes-factors}, which are in this context proportional to the $d_m$. The $c_m$ are known, $d$ is unknown but does not matter since we only need to estimate the $d_m = b(m \mid y)$ up to an overall unknown constant of proportionality, which cancels out of Bayes factors \eqref{eq:factor}. Note that our discussion here applies unchanged to the general problem of estimating normalizing constants up to an unknown constant of proportionality, which has applications other than Bayes factors, for example, missing data maximum likelihood \citep{thompson-guo,geyer,sung-geyer}. The ST method approximates normalizing constants up to an overall constant of proportionality with high accuracy regardless of how large or small they are (whether they are $10^{100}$ or $10^{-100}$), and no other method that does not use essentially the same idea can do this. The key is what seems at first sight to be a weakness of ST, the need to adjust the tuning constants $c_i$ by trial and error. In this context the weakness is actually a strength: the adjusted $c_i$ contain most of the information about the size of the normalizing constants $d_i$ and the Monte Carlo averages \eqref{eq:st-estimates} add only the finishing touch. Thus multiple runs of the ST chain with different choices of the $c_i$ used in each run are needed (the ``trial and error''), but the information from all are incorporated in the final run used for final approximation of the normalizing constants (Bayes factors). It is perhaps surprising that the Monte Carlo error approximation is trivial. In the context of the last run of the ST chain the $c_i$ are known constants and contribute no error. The Monte Carlo error of the averages \eqref{eq:st-estimates} is straightforwardly estimated by batch means or competing methods. \citet{geyer-thompson} note that the $c_i$ enter formally like a prior: one can think of $h_i(x) c_i$ as likelihood times prior. But one should not think of the $c_i$ as representing prior information, informative, non-informative, or in between. The $c_i$ are adjusted to make the ST distribution sample all the models $h_i$, and that is the only criterion for the adjustment. For this reason \citet{geyer-thompson} call the $c_i$ the \emph{pseudoprior}. This is a special case of a general principle of MCMC. When doing MCMC one should forget the statistical motivation (in this case Bayes factors). One should set up a Markov chain that does a good job of simulating the required equilibrium distribution, whatever it is. Thinking about the statistical motivation of the equilibrium does not help and can hurt (if one thinks of the pseudoprior as an actual prior, one may be tempted to adjust it to represent prior information). \section{R Package MCMC} We use the R statistical computing environment \citep{rcore} in our analysis. It is free software and can be obtained from \url{http://cran.r-project.org}. Precompiled binaries are available for Windows, Macintosh, and popular Linux distributions. We use the contributed package \verb@mcmc@ \citep{mcmc-R-package} If R has been installed, but this package has not yet been installed, do \begin{verbatim} install.packages("mcmc") \end{verbatim} from the R command line (or do the equivalent using the GUI menus if on Apple Macintosh or Microsoft Windows). This may require root or administrator privileges. Assuming the \verb@mcmc@ package has been installed, we load it <>= library(mcmc) @ <>= baz <- library(help = "mcmc") baz <- baz$info[[1]] baz <- baz[grep("Version", baz)] baz <- sub("^Version: *", "", baz) bazzer <- paste(R.version$major, R.version$minor, sep = ".") @ The version of the package used to make this document is \Sexpr{baz} (which is available on CRAN). The version of R used to make this document is \Sexpr{bazzer}. We also set the random number generator seed so that the results are reproducible. <>= set.seed(42) @ To get different results, change the setting or don't set the seed at all. \section{Logistic Regression Example} We use the same logistic regression example used in the \texttt{mcmc} package vignette for the \texttt{metrop} function (file \texttt{demo.pdf}. Simulated data for the problem are in the data set \verb@logit@. There are five variables in the data set, the response \verb@y@ and four predictors, \verb@x1@, \verb@x2@, \verb@x3@, and \verb@x4@. A frequentist analysis for the problem is done by the following R statements <>= data(logit) out <- glm(y ~ x1 + x2 + x3 + x4, data = logit, family = binomial, x = TRUE) summary(out) @ But this example isn't about frequentist analysis, we want a Bayesian analysis. For our Bayesian analysis we assume the same data model as the frequentist, and we assume the prior distribution of the five parameters (the regression coefficients) makes them independent and identically normally distributed with mean 0 and standard deviation 2. Moreover, we wish to calculate Bayes factors for the $16 = 2^4$ possible submodels that include or exclude each of the predictors, \verb@x1@, \verb@x2@, \verb@x3@, and \verb@x4@. \subsection{Setup} We set up a matrix that indicates these models. <>= varnam <- names(coefficients(out)) varnam <- varnam[varnam != "(Intercept)"] nvar <- length(varnam) models <- NULL foo <- seq(0, 2^nvar - 1) for (i in 1:nvar) { bar <- foo %/% 2^(i - 1) bar <- bar %% 2 models <- cbind(bar, models, deparse.level = 0) } colnames(models) <- varnam models @ In each row, 1 indicates the predictor is in the model and 0 indicates it is out. The function \texttt{temper} in the \text{mcmc} package that does tempering requires a notion of neighbors among models. It attempts jumps only between neighboring models. Here we choose models to be neighbors if they differ only by one predictor. <>= neighbors <- matrix(FALSE, nrow(models), nrow(models)) for (i in 1:nrow(neighbors)) { for (j in 1:ncol(neighbors)) { foo <- models[i, ] bar <- models[j, ] if (sum(foo != bar) == 1) neighbors[i, j] <- TRUE } } @ Now we specify the equilibrium distribution of the ST chain. Its state vector is $(i, x)$ or $(m, \theta)$ in our alternative notations, where $i$ is an integer between $1$ and \verb@nrow(models)@ = \Sexpr{nrow(models)} and $\theta$ is the parameter vector ``padded'' to always be the same length, so we take it to be the length of the parameter vector of the full model which is \verb@length(out$coefficients)@ or \verb@ncol(models) + 1@ which makes the length of the state of the ST chain \verb@ncol(models) + 2@. We take the within model priors for the ``padded'' components of the parameter vector to be the same as those for the ``actual'' components, normal with mean 0 and standard deviation 2 for all cases. As is seen in \eqref{eq:unnormalized-bayes-factors} the priors for the ``padded'' components (parameters not in the model for the current state) do not matter because they drop out of the Bayes factor calculation. The choice does not matter much for this toy example. See the discussion section for more on this issue. It is important that we use normalized log priors, the term \verb@dnorm(beta, 0, 2, log = TRUE)@ in the function, unlike when we are simulating only one model as in the \texttt{mcmc} package vignette where it would be o.~k.\ to use unnormalized log priors \verb@- beta^2 / 8@. The \texttt{temper} function wants the log unnormalized density of the equilibrium distribution. We include an additional argument \texttt{log.pseudo.prior}, which is $\log(c_i)$ in our mathematical development, because this changes from run to run as we adjust it by trial and error. Other ``arguments'' are the model matrix of the full model \texttt{modmat}, the matrix \texttt{models} relating integer indices (the first component of the state vector of the ST chain) to which predictors are in or out of the model, and the data vector \texttt{y}, but these are not passed as arguments to our function and instead are found in the R global environment. <>= modmat <- out$x y <- logit$y ludfun <- function(state, log.pseudo.prior) { stopifnot(is.numeric(state)) stopifnot(length(state) == ncol(models) + 2) icomp <- state[1] stopifnot(icomp == as.integer(icomp)) stopifnot(1 <= icomp && icomp <= nrow(models)) stopifnot(is.numeric(log.pseudo.prior)) stopifnot(length(log.pseudo.prior) == nrow(models)) beta <- state[-1] inies <- c(TRUE, as.logical(models[icomp, ])) beta.logl <- beta beta.logl[! inies] <- 0 eta <- as.numeric(modmat %*% beta.logl) logp <- ifelse(eta < 0, eta - log1p(exp(eta)), - log1p(exp(- eta))) logq <- ifelse(eta < 0, - log1p(exp(eta)), - eta - log1p(exp(- eta))) logl <- sum(logp[y == 1]) + sum(logq[y == 0]) logl + sum(dnorm(beta, 0, 2, log = TRUE)) + log.pseudo.prior[icomp] } @ \subsection{Trial and Error} Now we are ready to try it out. We start in the full model at its MLE, and we initialize \texttt{log.pseudo.prior} at all zeros, having no idea \emph{a priori} what it should be. <>= state.initial <- c(nrow(models), out$coefficients) qux <- rep(0, nrow(models)) out <- temper(ludfun, initial = state.initial, neighbors = neighbors, nbatch = 1000, blen = 100, log.pseudo.prior = qux) names(out) out$time @ So what happened? <>= ibar <- colMeans(out$ibatch) ibar @ The ST chain did not mix well, several models not being visited even once. So we adjust the pseudo priors to get uniform distribution. <>= qux <- qux + pmin(log(max(ibar) / ibar), 10) qux <- qux - min(qux) qux @ The new pseudoprior should be proportional to \verb@1 / ibar@ if \texttt{ibar} is an accurate estimate of \eqref{eq:st-expectations}, but this makes no sense when the estimates are bad, in particular, when the are exactly zero. Thus we put an upper bound, chosen arbitrarily (here 10) on the maximum increase of the log pseudoprior. The statement \begin{verbatim} qux <- qux - min(qux) \end{verbatim} is unnecessary. An overall arbitrary constant can be added to the log pseudoprior without changing the equilibrium distribution of the ST chain. We do this only to make \texttt{qux} more comparable from run to run. Now we repeat this until the log pseudoprior ``converges'' roughly. Because this loop takes longer than CRAN vingettes are supposed to take, we save the results to a file and load the results from this file if it already exists. <>= lout <- suppressWarnings(try(load("bfst1.rda"), silent = TRUE)) if (inherits(lout, "try-error")) { qux.save <- qux time.save <- out$time repeat{ out <- temper(out, log.pseudo.prior = qux) ibar <- colMeans(out$ibatch) qux <- qux + pmin(log(max(ibar) / ibar), 10) qux <- qux - min(qux) qux.save <- rbind(qux.save, qux, deparse.level = 0) time.save <- rbind(time.save, out$time, deparse.level = 0) if (max(ibar) / min(ibar) < 2) break } save(out, qux, qux.save, time.save, file = "bfst1.rda") } else { .Random.seed <- out$final.seed } print(qux.save, digits = 3) print(qux, digits = 3) apply(time.save, 2, sum) @ Now that the pseudoprior is adjusted well enough, we need to perhaps make other adjustments to get acceptance rates near 20\%. <>= print(out$accepti, digits = 3) print(out$acceptx, digits = 3) @ The acceptance rates for swaps seem o. k. <>= min(as.vector(out$accepti), na.rm = TRUE) @ and there is nothing simple we can do to adjust them (adjustment is possible, see the discussion section for more on this issue). We adjust the acceptance rates for within model moves by adjusting the scaling. <>= out <- temper(out, scale = 0.5, log.pseudo.prior = qux) time.save <- rbind(time.save, out$time, deparse.level = 0) print(out$acceptx, digits = 3) @ Looks o.~k.\ now. Inspection of autocorrelation functions for components of \verb@out$ibatch@ (not shown) says batch length needs to be at least 4 times longer. We make it 10 times longer for safety. Because this run takes longer than CRAN vingettes are supposed to take, we save the results to a file and load the results from this file if it already exists. <>= lout <- suppressWarnings(try(load("bfst2.rda"), silent = TRUE)) if (inherits(lout, "try-error")) { out <- temper(out, blen = 10 * out$blen, log.pseudo.prior = qux) save(out, file = "bfst2.rda") } else { .Random.seed <- out$final.seed } time.save <- rbind(time.save, out$time, deparse.level = 0) foo <- apply(time.save, 2, sum) foo.min <- floor(foo[1] / 60) foo.sec <- foo[1] - 60 * foo.min c(foo.min, foo.sec) @ The total time for all runs of the temper function was \Sexpr{foo.min} minutes and \Sexpr{round(foo.sec, 1)} seconds. \subsection{Bayes Factor Calculations} Now we calculate log 10 Bayes factors relative to the model with the highest unnormalized Bayes factor. <>= log.10.unnorm.bayes <- (qux - log(colMeans(out$ibatch))) / log(10) k <- seq(along = log.10.unnorm.bayes)[log.10.unnorm.bayes == min(log.10.unnorm.bayes)] models[k, ] log.10.bayes <- log.10.unnorm.bayes - log.10.unnorm.bayes[k] log.10.bayes @ These are base 10 logarithms of the Bayes factors against the $k$-th model where $k = \Sexpr{k}$. For example, the Bayes factor for the $k$-th model divided by the Bayes factor for the first model is $10^{\Sexpr{round(log.10.bayes[1], 3)}}$. Now we calculate Monte Carlo standard errors two different ways. One is the way the delta method is usually taught. To simplify notation, denote the Bayes factors $$ b_m = b(y \mid m) $$ and their Monte Carlo approximations $\hat{b}_m$. Then the log Bayes factors are $$ g_i(b) = \log_{10} b_i - \log_{10} b_k $$ hence we need to apply the delta method with the function $g_i$, which has derivatives \begin{align*} \frac{\partial g_i(b)}{\partial b_i} & = \frac{1}{b_i \log_e(10)} \\ \frac{\partial g_i(b)}{\partial b_k} & = - \frac{1}{b_k \log_e(10)} \\ \frac{\partial g_i(b)}{\partial b_j} & = 0, \qquad \text{$j \neq i$ and $j \neq k$} \end{align*} <>= fred <- var(out$ibatch) / out$nbatch sally <- colMeans(out$ibatch) mcse.log.10.bayes <- (1 / log(10)) * sqrt(diag(fred) / sally^2 - 2 * fred[ , k] / (sally * sally[k]) + fred[k, k] / sally[k]^2) mcse.log.10.bayes foompter <- cbind(models, log.10.bayes, mcse.log.10.bayes) round(foompter, 5) @ An alternative calculation of the MCSE replaces the actual function of the raw Bayes factors with its best linear approximation $$ \frac{1}{\log_e(10)} \left(\frac{\hat{b}_i - b_i}{b_i} - \frac{\hat{b}_k - b_k}{b_k} \right) $$ and calculates the standard deviation of this quantity by batch means <>= ibar <- colMeans(out$ibatch) herman <- sweep(out$ibatch, 2, ibar, "/") herman <- sweep(herman, 1, herman[ , k], "-") mcse.log.10.bayes.too <- (1 / log(10)) * apply(herman, 2, sd) /sqrt(out$nbatch) all.equal(mcse.log.10.bayes, mcse.log.10.bayes.too) @ \section{Discussion} We hope readers are impressed with the power of this method. The key to the method is pseudopriors adjusted by trial and error. The method could have been invented by any Bayesian who realized that the priors on models, $\prior(m)$ in our notation in Section~\ref{sec:bayes-factors}, do not affect the Bayes factors and hence are irrelevant to calculating Bayes factors. Thus the priors (or pseudopriors in our terminology) should be chosen for reasons of computational convenience, as we have done, rather than to incorporate prior information. The rest of the details of the method are unimportant. The \texttt{temper} function in R is convenient to use for this purpose, but there is no reason to believe that it provides optimal sampling. Samplers carefully designed for each particular application would undoubtedly do better. Our notion of ``padding'' so that the within model parameters have the same dimension for all models follows \citet{carlin-chib} but ``reversible jump'' samplers \citep{green} would undoubtedly do better. Unfortunately, there seems to be no way to code up a function like \texttt{temper} that uses ``reversible jump'' and requires no theoretical work from users that if messed up destroys the algorithm. The \texttt{temper} function is foolproof in the sense that if the log unnormalized density function written by the user (like our \texttt{ludfun}) is correct, then the ST Markov chain has the equilibrium distribution is supposed to have. There is nothing the user can mess up except this user-written function. No analog of this for ``reversible jump'' chains is apparent (to your humble author). Two issues remain where the text above said ``see the discussion section for more on this issue.'' The first was about within model priors for the ``padding'' components of within model parameter vectors $g_{\text{pad}}(\theta_{\text{pad}} \mid m)$ in the notation in \eqref{eq:unnormalized-bayes-factors}. Rather than choose these so that they do not depend on the data (as we did), it would be better (if more trouble) to choose them differently for each ``padding'' component, centering $g_{\text{pad}}(\theta_{\text{pad}} \mid m)$ so the distribution of a component of $\theta_{\text{pad}}$ is near to the marginal distribution of the same component in neighboring models (according to the \texttt{neighbors} argument of the \texttt{temper} function). The other remaining issue is adjusting acceptance rates for jumps. There is no way to adjust this other than by changing the number of models and their definitions. But the models we have cannot be changed; if we are to calculate Bayes factors for them, then we must sample them as they are. But we can insert new models between old models. For example, if the acceptance for swaps between model $i$ and model $j$ is too low, then we can insert distribution $k$ between them that has unnormalized density $$ h_k(x) = \sqrt{h_i(x) h_j(x)}. $$ This idea is inherited from simulated tempering; \citep{geyer-thompson} have much discussion of how to insert additional distributions into a tempering network. It is another key issue in using tempering to speed up sampling. It is less obvious in the Bayes factor context, but still an available technique if needed. \begin{thebibliography}{} \bibitem[Carlin and Chib(1995)]{carlin-chib} Carlin, B.~P. and Chib, S. (1995). \newblock Bayesian model choice via Markov chain Monte Carlo methods. \newblock \emph{Journal of the Royal Statistical Society, Series B}, \textbf{57}, 473--484. \bibitem[Geyer(1994)]{geyer} Geyer, C.~J. (1994). \newblock On the convergence of Monte Carlo maximum likelihood calculations. \newblock \emph{Journal of the Royal Statistical Society, Series B}, \textbf{56} 261--274. \bibitem[Geyer., 2009]{mcmc-R-package} Geyer., C.~J. (2009). \newblock \emph{mcmc: Markov Chain Monte Carlo}. \newblock R package version 0.7-2, available from CRAN. \bibitem[Geyer and Thompson(1995)]{geyer-thompson} Geyer, C.~J., and Thompson, E.~A. (1995). \newblock Annealing Markov chain Monte Carlo with applications to ancestral inference. \newblock \emph{Journal of the American Statistical Association}, \textbf{90}, 909--920. \bibitem[Green(1995)]{green} Green, P.~J. (1995). \newblock Reversible jump {M}arkov chain {M}onte {C}arlo computation and {B}ayesian model determination. \newblock \emph{Biometrika}, \textbf{82}, 711--732. \bibitem[Hoeting et al.(1999)Hoeting, Madigan, Raftery, and Volinsky]{bma} Hoeting, J.~A., Madigan, D., Raftery, A.~E. and Volinsky, C.~T. (1999). \newblock Bayesian model averaging: A tutorial (with discussion). \newblock \emph{Statical Science}, \textbf{19}, 382--417. \newblock The version printed in the journal had the equations messed up in the production process; a corrected version is available at \url{http://www.stat.washington.edu/www/research/online/1999/hoeting.pdf}. \bibitem[Marinari and Parisi(1992)]{marinari-parisi} Marinari, E., and Parisi G. (1992). \newblock Simulated tempering: A new Monte Carlo Scheme. \newblock \emph{Europhysics Letters}, \textbf{19}, 451--458. \bibitem[R Development Core Team(2010)]{rcore} R Development Core Team (2010). \newblock R: A language and environment for statistical computing. \newblock R Foundation for Statistical Computing, Vienna, Austria. \newblock \url{http://www.R-project.org}. \bibitem[Sung and Geyer(2007)]{sung-geyer} Sung, Y.~J. and Geyer, C.~J. (2007). \newblock Monte Carlo likelihood inference for missing data models. \newblock \emph{Annals of Statistics}, \textbf{35}, 990--1011. \bibitem[Thompson and Guo(1991)]{thompson-guo} Thompson, E. A. and Guo, S. W. (1991). \newblock Evaluation of likelihood ratios for complex genetic models. \newblock \emph{IMA J. Math. Appl. Med. Biol.}, \textbf{8}, 149--169. \bibitem[Torrie and Valleau(1977)]{torrie-valleau} Torrie, G.~M., and Valleau, J.~P. (1977). \newblock Nonphysical sampling distributions in Monte Carlo free-energy estimation: Umbrella sampling. \newblock \emph{Journal of Computational Physics}, \textbf{23}, 187--199. \end{thebibliography} \end{document} mcmc/vignettes/debug.Rnw0000644000176200001440000003135013636316205014766 0ustar liggesusers \documentclass{article} \usepackage{amstext} % \VignetteIndexEntry{Debugging MCMC Code} \begin{document} <>= options(keep.source = TRUE, width = 60) foo <- packageDescription("mcmc") @ \title{Debugging MCMC Code} \author{Charles J. Geyer} \maketitle \section{Introduction} This document discusses debugging Markov chain Monte Carlo code using the R contributed package \texttt{mcmc} (Version \Sexpr{foo$Version}) for examples. It also documents the debugging output of the functions \texttt{mcmc} and \texttt{temper}. Debugging MCMC code if the code is taken as a black box is basically impossible. In interesting examples, the only thing one knows about the equilibrium distribution of an MCMC sampler is what one learns from the samples. This obviously doesn't help with testing. If the sampler is buggy, then the only thing you know about the equilibrium distribution is wrong, but if you don't know it is buggy, then you don't know it is wrong. So you don't know anything. There is no way to tell whether random output has the correct distribution when you don't know anything about the distribution it is supposed to have. The secret to debugging MCMC code lies in two principles: \begin{itemize} \item take the randomness out, and \item expose the innards. \end{itemize} The first slogan means consider the algorithm a deterministic function of the elementary pseudo-random numbers that are trusted (for example, the outputs of the R random number generators, which you aren't responsible for debugging and are also well tested). The second slogan means output, at least for debugging purposes, enough intermediate state so that testing is straightforward. For a Gibbs sampler, this means outputting all of the trusted elementary pseudo-random numbers used, the state before and after each elementary Gibbs update, and which update is being done if a random scan is used. Also one needs to output the initial seeds of the pseudo-random number generator (this is true for all situations and will not be mentioned again). For a Metropolis-Hastings sampler, this means outputting all of the trusted elementary pseudo-random numbers used, the state before and after each elementary Metropolis-Hastings update, the proposal for that update, the Hastings ratio for that update, decision (accept or reject) in that update. For more complicated MCMC samplers, there is more ``innards'' to ``expose'' (see the discussion of the \texttt{temper} function below), but you get the idea. You can't output too much debugging information. \section{The Metrop Function} The R function \texttt{metrop} in the \texttt{mcmc} package has an argument \verb@debug = FALSE@ that when \verb@TRUE@ causes extra debugging information to be output. Let \texttt{niter} be the number of iterations \verb@nbatch * blen * nspac@, and let \texttt{d} be the dimension of the state vector. The result of invoking \texttt{metrop} is a list. When \verb@debug = TRUE@ it has the following additional components \begin{itemize} \item \texttt{current}, an \texttt{niter} by \texttt{d} matrix of mode \verb@"numeric"@, the state before iteration \texttt{i} is \verb@current[i, ]@ \item \texttt{proposal}, an \texttt{niter} by \texttt{d} matrix of mode \verb@"numeric"@, the proposal for iteration \texttt{i} is \verb@proposal[i, ]@ \item \texttt{z}, an \texttt{niter} by \texttt{d} matrix of mode \verb@"numeric"@, the vector of standard normal random variates used to generate the proposal for iteration \texttt{i} is \verb@z[i, ]@ \item \texttt{log.green}, a vector of length \texttt{niter} and mode \verb@"numeric"@, the logarithm of the Hastings ratio for each iteration \item \texttt{u}, a vector of length \texttt{niter} and mode \verb@"numeric"@, the $\text{Uniform}(0, 1)$ random variate compared to the Hastings ratio for each iteration or \texttt{NA} if none is needed (when the log Hastings ratio is nonnegative) \item \texttt{debug.accept}, a vector of length \texttt{niter} and mode \verb@"logical"@, the decision for each iteration, accept the proposal (\texttt{TRUE}) or reject it (\texttt{FALSE}) \end{itemize} (The components \texttt{z} and \texttt{debug.accept} were added in version 0.7-3 of the \texttt{mcmc} package. Before that only the others were output.) Two components of the list returned by the \texttt{metrop} function always (whether \verb@debug = TRUE@ or \verb@debug = FALSE@) are also necessary for debugging. They are \begin{itemize} \item \texttt{initial.seed} the value of the variable \texttt{.Random.seed} that contains the seeds of the R random number generator system before invocation of the \texttt{metrop} function \item \texttt{final}, a vector of length \texttt{d} and mode \verb@"numeric"@, the state after the last iteration \end{itemize} All of the files in the \texttt{tests} directory of the source for the package (not installed but found in the source tarball on CRAN) test the \texttt{metrop} function except those beginning \texttt{temp}, which test the \texttt{temper} function. Since these tests were written many years ago, are spread out over many files, and are not commented, we will not describe them in detail. Suffice it to say that they check every aspect of the functioning of the \texttt{metrop} function. \section{The Temper Function} The R function \texttt{temper} in the \texttt{mcmc} package has an argument \verb@debug = FALSE@ that when \verb@TRUE@ causes extra debugging information to be output. Let \texttt{niter} be the number of iterations \verb@nbatch * blen * nspac@, let \texttt{d} be the dimension of the state vector, and let \texttt{ncomp} be the number of components of the tempering mixture. The result of invoking \texttt{temper} is a list. When \verb@debug = TRUE@ and \verb@parallel = TRUE@ it has the following additional components % which % unif.which % state % log.hastings % unif.hastings % proposal % acceptd % norm % unif.choose % coproposal \begin{itemize} \item \texttt{which}, a vector of length \texttt{niter} and mode \verb@"logical"@ the type of update for each iteration, within component (\texttt{TRUE}) or swap components (\texttt{FALSE}). \item \texttt{unif.which}, a vector of length \texttt{niter} and mode \verb@"numeric"@, the $\text{Uniform}(0, 1)$ random variate used to decide which type of update is done. \item \texttt{state}, an \texttt{niter} by \texttt{ncomp} by \texttt{d} array of mode \verb@"numeric"@, the state before iteration \texttt{i} is \verb@state[i, , ]@ \item \texttt{proposal}, an \texttt{niter} by \verb@d + 1@ matrix of mode \verb@"numeric"@, the proposal for iteration \texttt{i} is \verb@proposal[i, ]@ (explanation below) \item \texttt{coproposal}, an \texttt{niter} by \verb@d + 1@ matrix of mode \verb@"numeric"@, the proposal for iteration \texttt{i} is \verb@coproposal[i, ]@ (explanation below) \item \texttt{log.hastings}, a vector of length \texttt{niter} and mode \verb@"numeric"@, the logarithm of the Hastings ratio for each iteration \item \texttt{unif.hastings}, a vector of length \texttt{niter} and mode \verb@"numeric"@, the $\text{Uniform}(0, 1)$ random variate compared to the Hastings ratio for each iteration or \texttt{NA} if none is needed (when the log Hastings ratio is nonnegative) \item \texttt{acceptd}, a vector of length \texttt{niter} and mode \verb@"logical"@, the decision for each iteration, accept the proposal (\texttt{TRUE}) or reject it (\texttt{FALSE}) \item \texttt{norm}, an \texttt{niter} by \texttt{d} matrix of mode \verb@"numeric"@, the vector of standard normal random variates used to generate the proposal for iteration \texttt{i} is \verb@z[i, ]@ unless none are needed (for swap updates) when it is \texttt{NA} \item \texttt{unif.choose}, an \texttt{niter} by 2 matrix of mode \verb@"numeric"@, the vector of $\text{Uniform}(0, 1)$ random variates used to choose the components to update in iteration \texttt{i} is \verb@unif.choose[i, ]@; in a swap update two are used; in a within-component update only one is used and the second is \texttt{NA} \end{itemize} In a within-component update, one component say \texttt{j} is chosen for update. The \emph{coproposal} is the current value of the state for this component, which is a vector of length \verb@d + 1@, the first component of which is \texttt{j} and the rest of which is \verb@state[i, j, ]@ if we are in iteration \texttt{i}. The \emph{proposal} is a similar vector, the first component of which is again \texttt{j} and the rest of which is a multivariate normal random vector centered at \verb@state[i, j, ]@. The coproposal is the current state; the proposal is the possible value (if accepted) of the state at the next time. In a swap update, two components say \texttt{j1} and \texttt{j2} are chosen for update. Strictly, speaking the coproposal is the pair of vectors \verb@c(j1, state[i, j1, ])@ and \verb@c(j2, state[i, j2, ])@ and the proposal is these swapped, that is, the pair of vectors \verb@c(j2, state[i, j1, ])@ and \verb@c(j1, state[i, j2, ])@ if we are in iteration \texttt{i}. Since, however, there is a lot of redundant information here, the vector \verb@c(j1, state[i, j1, ])@ is output as \verb@coproposal[i, ]@ and the vector \verb@c(j2, state[i, j2, ])@ is output as \verb@proposal[i, ]@. When \verb@debug = TRUE@ and \verb@parallel = FALSE@ the result of invoking \texttt{temper} is a list having the following additional components % which % unif.which % state % log.hastings % unif.hastings % proposal % acceptd % norm % unif.choose \begin{itemize} \item \texttt{which}, a vector of length \texttt{niter} and mode \verb@"logical"@ the type of update for each iteration, within component (\texttt{TRUE}) or jump from one component to another (\texttt{FALSE}). \item \texttt{unif.which}, a vector of length \texttt{niter} and mode \verb@"numeric"@, the $\text{Uniform}(0, 1)$ random variate used to decide which type of update is done. \item \texttt{state}, an \texttt{niter} by \verb@d + 1@ matrix of mode \verb@"numeric"@, the state before iteration \texttt{i} is \verb@state[i, ]@ \item \texttt{proposal}, an \texttt{niter} by \verb@d + 1@ matrix of mode \verb@"numeric"@, the proposal for iteration \texttt{i} is \verb@proposal[i, ]@ \item \texttt{log.hastings}, a vector of length \texttt{niter} and mode \verb@"numeric"@, the logarithm of the Hastings ratio for each iteration \item \texttt{unif.hastings}, a vector of length \texttt{niter} and mode \verb@"numeric"@, the $\text{Uniform}(0, 1)$ random variate compared to the Hastings ratio for each iteration or \texttt{NA} if none is needed (when the log Hastings ratio is nonnegative) \item \texttt{acceptd}, a vector of length \texttt{niter} and mode \verb@"logical"@, the decision for each iteration, accept the proposal (\texttt{TRUE}) or reject it (\texttt{FALSE}) \item \texttt{norm}, an \texttt{niter} by \texttt{d} matrix of mode \verb@"numeric"@, the vector of standard normal random variates used to generate the proposal for iteration \texttt{i} is \verb@z[i, ]@ unless none are needed (for jump updates) when it is \texttt{NA} \item \texttt{unif.choose}, a vector of length \texttt{niter} and mode \verb@"numeric"@, the $\text{Uniform}(0, 1)$ random variates used to choose the component to update in iteration \texttt{i} is \verb@unif.choose[i, ]@; in a jump update one is used; in a within-component update none is used and \texttt{NA} is output \end{itemize} All of the files in the \texttt{tests} directory of the source for the package (not installed but found in the source tarball on CRAN) beginning \texttt{temp} test the \texttt{temper} function. They check every aspect of the functioning of the \texttt{temper} function. In the file \texttt{temp-par.R} in the \texttt{tests} directory, the following checks are made according to the comments in that file \begin{enumerate} \item check decision about within-component or jump/swap \item check proposal and coproposal are actually current state or part thereof \item check hastings ratio calculated correctly \item check hastings rejection decided correctly \item check acceptance carried out or not (according to decision) correctly \item check within-component proposal \item check swap proposal \item check standard normal and uniform random numbers are as purported \item check batch means \item check acceptance rates \item check scale vector \item check scale matrix \item check scale list \item check outfun \end{enumerate} In the file \texttt{temp-ser.R} in the \texttt{tests} directory, the all of the same checks are made according to the comments in that file except for check number 2 above, which would make no sense because there is no \texttt{coproposal} component in the serial (\verb@parallel = FALSE@) case. \end{document} mcmc/vignettes/morph.Rnw0000644000176200001440000006124413636316205015032 0ustar liggesusers\documentclass{article} \usepackage{natbib} \usepackage{graphics} \usepackage{amsmath,amssymb} \usepackage{indentfirst} \usepackage[utf8]{inputenc} \usepackage[tableposition=top]{caption} \usepackage{url} \DeclareMathOperator{\var}{var} \DeclareMathOperator{\cov}{cov} \DeclareMathOperator{\E}{E} \newcommand{\inner}[1]{\langle #1 \rangle} % \VignetteIndexEntry{MCMC Morph Example} \begin{document} <>= options(keep.source = TRUE, width = 60) foo <- packageDescription("mcmc") @ \title{Morphometric MCMC (mcmc Package Ver.~\Sexpr{foo$Version})} % $ (Just to make emacs syntax highlighting work properly) \author{Leif T. Johnson \and Charles J. Geyer} \maketitle \section{Overview} This is an example how to use morphometric Markov chains as implemented in the \verb@mcmc@ package in R. Let $X$ be an $\mathbb{R}^k$ valued random variable with probability density function, $f_X$. Let $g$ be a diffeomorphism, and $Y=g(X)$. Then the probability density function of $Y$, $f_Y$ is given by \begin{equation}\label{eq:def-fy} f_Y(y) = f_X\bigl(g^{-1}(y)\bigr) \det\bigl( \nabla g^{-1}(y) \bigr). \end{equation} Since $g$ is a diffeomorphism, we can draw inference about $X$ from information about $Y$ (and vice versa). It is not unusual for $f_X$ to either be known only up to a normalizing constant, or to be analytically intractable in other ways --- such as being high dimensional. A common solution to this problem is to use Markov chain Monte Carlo (MCMC) methods to learn about $f_X$. When using MCMC, a primary concern of the practitioner should be the question ``Does the Markov chain converge fast enough to be useful?'' One very useful convergence rate is called \emph{geometrically ergodic} \citep[Chapter~1]{johnson-thesis}. The \texttt{mcmc} package implements the Metropolis random-walk algorithm for arbitrary log unnormalized probability densities. But the Metropolis random-walk algorithm does not always perform well. As is demonstrated in \citet{johnson-geyer}, for $f_X$ and $f_Y$ related by diffeomorphism as in \eqref{eq:def-fy}, a Metropolis random-walk for $f_Y$ can be geometrically ergodic even though a Metropolis random-walk for $f_X$ is not. Since the transformation is one-to-one, inference about $f_X$ can be drawn from the Markov chain for $f_Y$. The \texttt{morph.metrop} and \texttt{morph} functions in the \texttt{mcmc} package provide this functionality, and this vignette gives a demonstration on how to use them. \section{T Distribution} \label{sec:toy} We start with a univariate example, which is a Student $t$ distribution with three degrees of freedom. Of course, one doesn't need MCMC to simulate this distribution (the R function \texttt{rt} does that), so this is just a toy problem. But it does illustrate some aspects of using variable transformation. A necessary condition for geometric ergodicity of a random-walk Metropolis algorithm is that the target density $\pi$ have a moment generating function \citep{jarner-tweedie}. For a univariate target density, which we have in this section, a sufficient condition for geometric ergodicity of a random-walk Metropolis algorithm is that the target density $\pi$ be exponentially light \citet{mengersen-tweedie}. Thus if we do not use variable transformation, the Markov chain simulated by the \texttt{metrop} function will not be geometrically ergodic. \citet[Example 4.2]{johnson-geyer} show that a $t$ distribution is sub-exponentially light. Hence using the transformations described in their Corollaries~1 and~2 will induce a target density $\pi_\gamma$ for which a Metropolis random-walk will be geometrically ergodic. using the transformation described as $h_2$ in \citet[Corollary~2]{johnson-geyer} will induce a target density for which a Metropolis random-walk will be geometrically ergodic. Passing a positive value for \texttt{b} to \texttt{morph} function will create the aforementioned transformation, $h_2$. It's as simple as <<>>= library(mcmc) h2 <- morph(b=1) @ We can now see the induced density. Note that \texttt{morph} works for log unnormalized densities, so we need exponentiate the induced density to plot it on the usual scale. <<>>= lud <- function(x) dt(x, df=3, log=TRUE) lud.induced <- h2$lud(lud) @ We can plot the two densities, <>= curve(exp(Vectorize(lud.induced)(x)), from = -3, to = 3, lty = 2, xlab = "t", ylab = "density") curve(exp(lud(x)), add = TRUE) legend("topright", c("t density", "induced density"), lty=1:2) @ The \texttt{Vectorize} in this example is necessary because the function \texttt{lud.induced} is not vectorized. Instead, it treats any vector passed as a single input, which is rescaled (using the specified diffeomorphism) and passed to \texttt{lud}. Compare the behavior of \texttt{lud} and \texttt{lud.induced} in the following example. <<>>= lud(1:4) lud(1) foo <- try(lud.induced(1:4)) class(foo) cat(foo, "\n") lud.induced(1) @ Because the function \texttt{dt} is vectorized, the function \texttt{lud} is also vectorized, mapping vectors to vectors, whereas the function \texttt{lud.induced} is not vectorized, mapping vectors to scalars. Before we start using random numbers, we set the seed of the random number generator so this document always produces the same results. <>= set.seed(42) @ To change the results, change the seed or delete the \texttt{set.seed} statement. Running a Markov chain for the induced density is done with \texttt{morph.metrop}. <<>>= out <- morph.metrop(lud, 0, blen=100, nbatch=100, morph=morph(b=1)) @ The content of \texttt{out\$batch} is on the scale of used by \texttt{lud}. Once the transformation has been set, no adjustment is needed (unless you want to change transformations). We start by adjusting the scale. <<>>= # adjust scale to find a roughly 20% acceptance rate out$accept @ An acceptance rate of \Sexpr{round(100 * out$accept, 1)}\% %$ to fix emacs highlighting is probably too high. By increasing the scale of the proposal distribution we can bring it down towards 20\%. <<>>= out <- morph.metrop(out, scale=4) out$accept @ We now use this Markov chain to estimate the expectation of the target distribution. But first we need to check whether our batch length is good. The following code <>= acf(out$batch) @ makes the autocorrelation plot (Figure~\ref{fig:fig0}). \begin{figure} \begin{center} <>= <> @ \end{center} \caption{Autocorrelation plot for the sequence of batch means.} \label{fig:fig0} \end{figure} It looks like there is no significant autocorrelation among the batches so the following produces a valid confidence interval for the true unknown mean of the target distribution (since this is a toy problem we actually know the true ``unknown'' mean is zero, but we pretend we don't know that for the purposes of the toy problem) <<>>= t.test(out$batch) @ If we want a point estimate and a Monte Carlo standard error, those are <<>>= colMeans(out$batch) apply(out$batch, 2, sd) / sqrt(out$nbatch) @ If a shorter confidence interval is desired, the Markov chain can be run longer (increase either the number of batches or the batch length, or both). Note that when calculating our estimate and the Monte Carlo standard error we are not concerned with what was happening on the transformed scale. The \texttt{morph.metrop} function seamlessly does this for us. \subsection{Comparison of Morphed and Unmorphed} To show the utility of the transformation, we will study the behavior of the Markov chain with and without the transformation for the same problem as in the preceding section. We will consider two different estimation methods. \begin{enumerate} \item \label{enum:rw} Estimate the mean of the target distribution using a random-walk Metropolis algorithm implemented by the \texttt{metrop} function. \citet{jarner-roberts} demonstrate that a central limit theorem does not hold for these estimates. \item \label{enum:rw-induced} Estimate the mean of the target distribution using a random-walk Metropolis algorithm implemented by the \texttt{morph.metrop} function with argument \texttt{morph = morph(b=1)}. \citet{johnson-geyer} demonstrate that a central limit theorem does hold for these estimates. \end{enumerate} For the former, we need to adjust the scale. <>= out.unmorph <- metrop(lud, 0, blen=1000, nbatch=1) out.unmorph$accept out.unmorph <- metrop(out.unmorph, scale=4) out.unmorph$accept out.unmorph <- metrop(out.unmorph, scale=6) out.unmorph$accept @ A scale of 6 appears to be about right. Now we do a long run for this sampler. Because this run takes longer than CRAN vingettes are supposed to take, we save the results to a file and load the results from this file if it already exists. <>= lout <- suppressWarnings(try(load("morph1.rda"), silent = TRUE)) if (inherits(lout, "try-error")) { out.unmorph <- metrop(out.unmorph, blen = 1e5, nbatch = 1e3) save(out.unmorph, file = "morph1.rda") } else { .Random.seed <- out.unmorph$final.seed } out.unmorph$accept @ Let's look at the distribution of batch means. The following code <>= foo <- as.vector(out.unmorph$batch) qqnorm(foo) qqline(foo) @ makes a Q-Q plot of the batch means (Figure~\ref{fig:fig4}). \begin{figure} \begin{center} <>= <> @ \end{center} \caption{Q-Q plot of batch means (batch length \Sexpr{out.unmorph$blen}) for the unmorphed chain.} \label{fig:fig4} \end{figure} We see bad behavior of the unmorphed chain. These batch means (or at least some batch means for sufficiently long batch length) should look normally distributed, and these don't. Not even close. We do a formal test just to check our interpretation of the plot <>= shapiro.test(foo) @ Now for comparison, we check the morphed chain. <>= lout <- suppressWarnings(try(load("morph2.rda"), silent = TRUE)) if (inherits(lout, "try-error")) { out.morph <- morph.metrop(out, blen = 1e5, nbatch = 1e3) save(out.morph, file = "morph2.rda") } else { .Random.seed <- out.morph$final.seed } out.morph$accept @ The following code <>= foo <- as.vector(out.morph$batch) qqnorm(foo) qqline(foo) @ makes a Q-Q plot of the batch means (Figure~\ref{fig:fig5}). \begin{figure} \begin{center} <>= <> @ \end{center} \caption{Q-Q plot of batch means (batch length \Sexpr{out.unmorph$blen}) for the morphed chain.} \label{fig:fig5} \end{figure} We see good behavior of the morphed chain. These batch means do look normally distributed. We do a formal test just to check our interpretation of the plot <>= shapiro.test(foo) @ \section{Binomial Distribution with a Conjugate Prior} We demonstrate a morphometric Markov chain using the \texttt{UCBAdmisions} data set included in \texttt{R}, (use \texttt{help(UCBAdmissions)} to see details of this data set). We will model the probability of a student being admitted or rejected, using the sex of the student and the department that the student applied to as predictor variables. For our prior, we naively assume that 30\% of all students are admitted, independent of sex or department. As this is a naive prior, we will only add 5 students to each gender-department combination. This will not give the prior much weight, most of the information in the posterior distribution will be from the data. If we have $L$ observations from a multinomial distribution, then using a multinomial logit-link, with model matrices $M^1,\dots,M^L$, regression parameter $\beta$, observed counts $Y^1,\dots,Y^N$ with observed sample sizes $N^1,\dots,N^L$ and prior probabilities $\xi^1, \dots, \xi^L$ and prior ``sample sizes'' $\nu^1,\dots,\nu^L$ then the posterior distribution of $\beta$ is given by \citep[Sec. 5.1.2]{johnson-thesis} \begin{equation}\label{eq:mult-post-conj-complicated} \pi(\beta|y,n,\xi,\nu) \propto \exp\biggl\{ \sum_{l=1}^L \inner{y^l + \xi^l \nu^l, M^l \beta} - (n^l + \nu^l) \log\bigl( \sum_j e^{M_{j\cdot} \beta} \bigr) \biggr\} \end{equation} where $\inner{a, b}$ denotes the usual inner product between vectors $a$ and $b$. For our application, we can simplify this in two ways. First, we use the posterior counts instead of the sum of the prior and data counts, i.e. use $y^{*l} = y^l + \xi^l \nu^l$ and $n^{*l} = n^l + \nu^l$. Second, to avoid having a direction of recession in $\pi(\beta|\cdot)$, we need to fix the elements of $\beta$ that correspond with one of the response categories. Since we are going to fitting a binomial response, if we set these elements of $\beta$ to be $0$, we may then replace the sequence of model matrices with a single model matrix; $M$ instead of $M^1,\dots,M^L$. The $l$-th row of $M$ will correspond to $M^l$. Label the two response categories $A$ and $B$. Without loss of generality, we will fix the elements of $\beta$ corresponding to category $B$ to 0. Let $x_1,\dots,x_L$ represent the posterior counts of category $A$, and $\beta^*$ represent the corresponding elements of $\beta$ --- these are the elements of $\beta$ we did not fix as 0. The meaning of $n^{*1},\dots,n^{*L}$ is unchanged. Then our simplified unnormalized posterior density is \begin{equation}\label{eq:simplified-posterior} \pi(\beta|x,n^*) \propto \exp\biggl\{ \inner{x, M \beta^*} - \sum_{l=1}^L n^{*l} \log\bigl(1 + e^{(M \beta^*)_l}\bigr) \biggr\}. \end{equation} This can be computed with a very simple \texttt{R} function, we implement it in log form. <>= lud.binom <- function(beta, M, x, n) { MB <- M %*% beta sum(x * MB) - sum(n * log(1 + exp(MB))) } @ Now that we have a function to calculate a log-unnormalized posterior density, we can run the Markov chain. To that, we need the model matrix. First we convert the \texttt{UCAdmissions} data to a \texttt{data.frame}. <>= dat <- as.data.frame(UCBAdmissions) dat.split <- split(dat, dat$Admit) dat.split <- lapply(dat.split, function(d) { val <- as.character(d$Admit[1]) d["Admit"] <- NULL names(d)[names(d) == "Freq"] <- val d }) dat <- merge(dat.split[[1]], dat.split[[2]]) @ Next we build the model matrix. Our model specification allows for an interaction between gender and department, even though our prior assumes that they are independent. <>= formula <- cbind(Admitted, Rejected) ~ (Gender + Dept)^2 mf <- model.frame(formula, dat) M <- model.matrix(formula, mf) @ As stated above, we will take $\nu = 5$ and $\xi=0.30$. That is, we will add 5 students to each gender-department combination, where each combination has a 30\% acceptance rate. <<>>= xi <- 0.30 nu <- 5 @ <>= lud.berkeley <- function(B) lud.binom(B, M, dat$Admitted + xi * nu, dat$Admitted + dat$Rejected + nu) @ This function is suitable for passing to \texttt{metrop} or \texttt{morph.metrop}. We know that using \texttt{morph.metrop} with \texttt{morph=morph(p=3)} will run a geometrically ergodic Markov chain \citep{johnson-geyer}. <<>>= berkeley.out <- morph.metrop(lud.berkeley, rep(0, ncol(M)), blen=1000, nbatch=1, scale=0.1, morph=morph(p=3)) berkeley.out$accept berkeley.out <- morph.metrop(berkeley.out, scale=0.05) berkeley.out$accept berkeley.out <- morph.metrop(berkeley.out, scale=0.02) berkeley.out$accept berkeley.out <- morph.metrop(berkeley.out, blen=10000) berkeley.out$accept @ <<>>= berkeley.out <- morph.metrop(berkeley.out, blen=1, nbatch=100000) @ Estimate the posterior mean acceptance probabilities for each gender-department combination. <<>>= beta <- setNames(colMeans(berkeley.out$batch), colnames(M)) MB <- M %*% beta dat$p <- dat$Admitted / (dat$Admitted + dat$Rejected) dat$p.post <- exp(MB) / (1 + exp(MB)) dat @ The small difference between the data and posterior probabilities is expected, our prior was given very little weight. Using \texttt{morph.metrop} with the setting \texttt{morph=morph(p=3)} in this setting is an efficient way of sampling from the posterior distribution. We can also compare the posterior distribution of admittance probability for each gender-department combination. Table~\ref{tab:post-quant} gives the 5\% and 95\% quantiles for the posterior distribution of the admittance probabilities for each gender-department combination. Figure~\ref{fig:posterior-probs} gives the same quantiles, plus the mean posterior-probability for each gender-department combination. From these we can see that for each department, there is considerable overlap of the distributions of probabilities for males and females. <>= posterior.probabilities <- t(apply(berkeley.out$batch, 1, function(r) { eMB <- exp(M %*% r) eMB / (1 + eMB) })) quants <- apply(posterior.probabilities, 2, quantile, prob=c(0.05, 0.95)) quants.str <- matrix(apply(quants, 2, function(r) sprintf("[%0.2f, %0.2f]", r[1], r[2])), nrow=2, byrow=TRUE) @ \begin{table}[ht] \caption{5\% and 95\% posterior quantiles for admittance probability for each gender-department combination} \begin{center} \begin{tabular}{|l|c|c|c|c|c|c|} \hline Gender & Dept. A & Dept. B & Dept. C & Dept. D & Dept. E. & Dept. F \\ \hline Female & \Sexpr{paste(quants.str[1, 1:6], collapse=" & ")} \\ Male & \Sexpr{paste(quants.str[2, 1:6], collapse=" & ")} \\ \hline \end{tabular} \label{tab:post-quant} \end{center} \end{table} \begin{figure} \begin{center} <>= x <- (0:5) * 2 + 1 plot(x[c(1, 6)] + 0.5 * c(-1, 1), 0:1, xlab="Department", ylab="Probability", xaxt="n", type="n") axis(1, x, LETTERS[1:6]) for(i in 1:6) { lines((x[i]-0.25)*c(1, 1), quants[1:2, i], lwd=2, col="gray") lines((x[i] + 0.25) * c(1, 1), quants[1:2, i + 6], lwd=2, col="gray") points(x[i] + 0.25 * c(-1, 1), dat$p.post[i + c(0, 6)], pch=c("F", "M")) } @ \end{center} \caption{Posterior 5\% and 95\% quantiles and mean, by department and gender.} \label{fig:posterior-probs} \end{figure} \section{Cauchy Location-Scale Model} We are going to do a Cauchy location-scale family objective Bayesianly. \subsection{Data} First we generate some data. <>= n <- 15 mu0 <- 50 sigma0 <- 10 x <- rcauchy(n, mu0, sigma0) round(sort(x), 1) @ \texttt{mu0} and \texttt{sigma0} are the true unknown parameter values (since the data are simulated we actually know these ``unknown'' parameter values, but we must pretend we don't know them and estimate them). \subsection{Prior} The standard objective prior distribution for this situation (insofar as any prior distribution can be said to be an objective standard) is the improper prior $$ g(\mu, \sigma) = \frac{1}{\sigma} $$ which is right Haar measure for the location-scale group, and is the standard prior that comes from the group invariance argument \citep[Section~3.2]{kass-wasserman}. \subsection{Log Unnormalized Posterior} We need a function whose argument is a two-vector <>= lup <- function(theta) { if (any(is.na(theta))) stop("NA or NaN in input to log unnormalized density function") mu <- theta[1] sigma <- theta[2] if (sigma <= 0) return(-Inf) if (any(! is.finite(theta))) return(-Inf) result <- sum(dcauchy(x, mu, sigma, log = TRUE)) - log(sigma) if (! is.finite(result)) { warning(paste("Oops! mu = ", mu, "and sigma =", sigma)) } return(result) } @ \subsection{Laplace Approximation} To have some idea what we are doing, we first maximize the log unnormalized posterior. To do it helps to have good starting points for the optimization. Robust estimators of location and scale are <>= mu.twiddle <- median(x) sigma.twiddle <- IQR(x) c(mu.twiddle, sigma.twiddle) @ The posterior mode is <>= oout <- optim(c(mu.twiddle, sigma.twiddle), lup, control = list(fnscale = -1), hessian = TRUE) stopifnot(oout$convergence == 0) mu.hat <- oout$par[1] sigma.hat <- oout$par[2] c(mu.hat, sigma.hat) @ and the hessian evaluated at the posterior mode (calculated by \texttt{optim} using finite differences) is <>= oout$hessian @ The hessian is nearly diagonal and one can check that theoretically is exactly diagonal. Thus approximate (asymptotic) posterior standard deviations are <>= sqrt(- 1 / diag(oout$hessian)) @ \subsection{Theory} To use the theory in \citet{johnson-geyer} we must verify that the target distribution (the unnormalized posterior) is everywhere positive, and it isn't (it is zero for $\sigma \le 0$). We tried making $\log(\sigma)$ the parameter but this didn't work either because $\log(\sigma)$ goes to infinity so slowly that this stretches out the tails so much that the transformations introduced by \citet{johnson-geyer} can't pull them back in again. We do know \citep[Example~3.4]{johnson-geyer} that if we fix $\sigma$ this is a sub-exponentially light target distribution. Letting $\sigma$ vary can only make this worse. Thus, if we don't do anything and just use the \texttt{metrop} function, then performance will be very bad. So we are going to use the transformations and the \texttt{morph.metrop} function, even though the theory that motivates them does not hold. \subsection{Morph} We want to center the transformation at the posterior mode, and use a radius $r$ that doesn't transform until several approximate standard deviations <>= moo <- morph(b = 0.5, r = 7, center = c(mu.hat, sigma.hat)) mout <- morph.metrop(lup, c(mu.hat, sigma.hat), 1e4, scale = 3, morph = moo) mout$accept mout <- morph.metrop(mout) @ Good enough. An attempt to increase the scale led to error when the transformation functions overflowed. Can't take steps too big with this stuff. The following code <>= acf(mout$batch) @ makes an autocorrelation plot (Figure~\ref{fig:cfig1}). \begin{figure} \begin{center} <>= <> @ \end{center} \caption{Autocorrelation plot. First component is $\mu$, second is $\sigma$.} \label{fig:cfig1} \end{figure} It looks like lag 10 to 15 is enough to get near independence. Now we want to make marginal density plots. If we just feed our MCMC output to the R function \texttt{density} it undersmooths because it expects independent and identically distributed data rather than autocorrelated data. Thus we feed it subsampled, nearly uncorrelated data to select the bandwidth and then use that bandwidth on the full data. Here's how that works. The following code <>= mu <- mout$batch[ , 1] i <- seq(1, mout$nbatch, by = 15) out.sub <- density(mu[i]) out <- density(mu, bw = out.sub$bw) plot(out) @ makes the density plot (Figure~\ref{fig:cfig2}). \begin{figure} \begin{center} <>= <> @ \end{center} \caption{Density plot for the marginal posterior for $\mu$.} \label{fig:cfig2} \end{figure} And a similar plot for $\sigma$ (Figure~\ref{fig:cfig3}) \begin{figure} \begin{center} <>= sigma <- mout$batch[ , 2] out.sub <- density(sigma[i]) out <- density(sigma, bw = out.sub$bw) plot(out) @ \end{center} \caption{Density plot for the marginal posterior for $\sigma$.} \label{fig:cfig3} \end{figure} \begin{thebibliography}{} \bibitem[Jarner and Roberts(2007)]{jarner-roberts} Jarner, S.F., and G.O. Roberts (2007). \newblock Convergence of heavy-tailed Monte Carlo Markov chain algorithms. \newblock \emph{Scandinavian Journal of Statistics}, 34, 781--815. \bibitem[Jarner and Tweedie(2003)]{jarner-tweedie} Jarner, S.~F., and Tweedie, R.~L. (2003). \newblock Necessary conditions for geometric and polynomial ergodicity of random-walk-type Markov chains. \newblock \emph{Bernoulli}, 9, 559--578. \bibitem[Johnson(2011)]{johnson-thesis} Johnson, L.~T. (2011). \newblock Geometric Ergodicity of a Random-Walk Metropolis Algorithm via Variable Transformation and Computer Aided Reasoning in Statistics. \newblock Ph.~D. thesis. University of Minesota. \url{http://purl.umn.edu/113140} \bibitem[Johnson and Geyer(submitted)]{johnson-geyer} Johnson, L.~T., and C.~J. Geyer (submitted). \newblock Variable Transformation to Obtain Geometric Ergodicity in the Random-walk Metropolis Algorithm. \newblock Revised and resubmitted to \emph{Annals of Statistics}. \bibitem[Kass and Wasserman(1996)]{kass-wasserman} Kass, R.~E., and Wasserman, L. (1996). \newblock Formal rules for selecting prior distributions: A review and annotated bibliography. \newblock \emph{Journal of the American Statistical Association}, 435, 1343--1370. \bibitem[Mengersen and Tweedie(1996)]{mengersen-tweedie} Mengersen, K.L., ad R. L. Tweedie (1996). \newblock Rates of convergence of the Hastings and Metropolis algorithms. \newblock \emph{Annals of Statistics}, 24, 101--121. \end{thebibliography} \end{document} mcmc/vignettes/morph2.rda0000644000176200001440000004260413636316205015113 0ustar liggesusers} \Mmߵk!EZ0B*)Em-m}W$HbHDTPBd)տˍU}{?ow9g,̙jRQ#b1=d_R?DRtH-@0OGO?K0EGڵwyI^n B;'o\8;y/lw;k{_C7v !i SOoL TlE-=:<Ȋyssu|pqٵ @lMHhTo<~t.;]PZ =tId7H)w@T4L<<`^^)_K[GBZSJW] ffG:n 5!ĠW +K;+@&IsEE)8 |.Xsؿ JI\a: =zFІeu0NNRa9>Chj45-WaAټ}'a ^7(?lMrA3u*d[ 5O> 8hF PDJ bf"8'I zsyNDX1_٠ќaAN 5k0@ޛ;8,I|=L S~_>@q3[#qi& I2vCTI?W$,Sdzl 9끞'E[rLHo-g@H-yl%P+ᤷfUPB zVNAk@[ÏaK腄)`u$j%&DUE|w.WҀ Ԋa (/rKDKd,]x7jkR=@D=ur>L9o] }gLʚG}pkpNR/P6^Uq>IaSTA/kmI\G|_/;wѺXg! dnUƂW  6.RU%;Jݵej7k܇G/M:Sw0|,0ԴҿT\Pu>G5˶&߃KrپI]k9Ϛ[Øa2nlr ~uE|/:) 6QcH4-봡ˣ3Wݵ4іgTjzƣ0=ly|f=z{5U mc;XSt67+Sa߶TPx8HT'@C1z/CSTj)Es RiéxԦ(SK9c0FO[|W̫*jN#6:˿@)U bYgi)eXw:0 (< Q b(y@h̩g0n7ąy0쩊)MC}iײJvB,F]~GqY;A;/129dEv/Fd 6;G`h@jE&jrze`h@$m 6 >[7R5l r=X餀Ϝ]0ܓ 0[Ftrg\0 Hca'ס;`v eK@f Lh, 3Aa>ԡ8N<;E)[a,ݓ B <umzIծf;R2x#`/_v>S{M=pa>@lXxu|$N$t "<{7h׳74o+yA"pG-4nJ1z <,iGw rC-5c(qJxxI= <[$ cj `גCon\}k"EwIVfT{aXfL=${Dd5NﷂvGGB`8:֏Fdt$@rEt=<D{o"P\W1$8f?8&u$ktچ;j`l[ZA2頻\ :([ָdȗn%{mhlD| Ar nPM=L|al[t-/"˪L$\泡K+`vMy E u$HX[& UKĂ,ebأ F9zfT2qC Z46 ieKP2}I0oo 7`\80o\ IdIxOJgiVv hec$@(N "$R{֭i GÒ%IpSD Jm'n6a*x~+ ?f< Ut&9W@7PA(`Qr#]5a̝S'A^Fއȣ uFx:H:(J1MՊ OZ\, ҕxNh=׎H<<X81s(kyKDf | Ԟr:{ܕKALöIq%(5[0Q~g *R\ܼ#4 Y`i1ӆ{{+zbr]͡}^6Ֆ`٠cU *O_J~^dtZ%}ʞi{Nunt{43'Uw<aƎCSEP6 V|q^ܤ9(`P)Y,NpۀIE2sytnrbڢ(Ə2&,=i9oݤ`M3.kӝ%;A`};`a$gɨr?p9k:s^Wsl׫uA*A+O1D~S<:ğ{v m[B L;n{syS-{n& ´cAg*?:"f^s]m>g* ,T#} x};Q0θ Rr}2pg8'ï#tB'AZց)3Yalѽ+Q8/0ϷMT`a •2ۡ Zk j-7z?Bى.也_pAe!+ rPoYߖnpK` X< L'5 M>N׈]y('a sAAFG `$NwCoܗY//Dz|?&Ȱ;hx4^Z28u){l`U+U 2w3r:[L UE^,x VM%faFy\!]/U/!rCFp7! @s?iDӶCqpMR)4=ӳc_msFEZ'ߙ@ ,V9@W]}zJeBt[;wXʾgo*9Fz>Y$^+pǫ'.tyzd~k0 u.95ZV>ci1OU|YV9* RL;̾"X>t>1C*לYKOSAO}9 y@3eP=P~yZ~EBN$اZ5 c`Zkr ˟OfiXClqs۝PM&64/lRkt`N'caFCYZy$ҥj +|fJoR-;^JKjaZ{U5Os_/l@}:k*j; I`jjo^֤#9 6Gahc@P&4NYcC}:8:{AFN"C|Yz1;@}(f!*T'I`nX2r0:ZzyZ"dXOLvt*^oA \yOhОC d*0>yeCT pgWzp*HJ|f<=/z нj`^ԧrSH]u6j0W|SPjQ4n=nVc ɏl^[mU_8oy]4Xa{{C# 3%Թߧhԩ bC,b6 rWyo5vB|ǠŦ"'j7xǃL)i\Ű-Jn {O6JֆmZtnZ0"d=fkK lnisH ̤!fJV&@ōI0mmvw+жRSlA)*( zs]д>_w@B"чA:}VN yycZ+N(csG[;Ӟj͚@fnF ,ԫדBg "f>K:*u䶢΁0!1)g(@9|;Y $g>r6?L;X0nS"U@"}xP35 NyBk`bzC Mڬ b 9,NsCI' ]?Do 3IvZ %/J0>2m!̜xu9sfI`o-6%ߌBo9E l4kؿDu/N00|Ulb"?h;$Q#Ɂ0j蠴mE`SA|z닋(`Η8Q7Pn0*!E,{bL5:0س8r49a681{|B7JZA_ `Дp?pCF׬`.%( 2ՅV5KUV8QyHfd$ 2_;PbMKҮ}`3AkZKc0my̥Ao83<7nE큏Iy@x\c s&s9F5OFGӳt$#G[ދ϶9OI 7~b[wˠzR'BBVU1`Ug;;Go8Ծ 6KA @P`S%{)ءq Э[3*|Q/<获n衡WoAl쫩0J~Qk+`{q_^us{cUyN Ӵv-6 뤔U7A77D}%Eknɋ@3N5EDa$MKP("(4|Wl@ F7I}i?r:q*,/>:\b#}aL *{e}̓q] |[UnxDgɚ&U0A k3%9UBZ.qk10.I$& =?Wz xxz@N0煁=0(hGC5Tߓ%#LhDÆM [e=Tm`ڤE0nGI cy6ؓ_<МQ#Uo,Sg}}[INT 'weTSa/*RE==gRAtG^%ũǗ<8f0z3b^;Dn= yEրIz} ]W!=m=dm4WDZBp_-o[vGNxtsQ[S=bٴe_|JFzkr{O?̯ZgM{6kwdY_5S&ܹ4{CbIzF.*& 8#{&u4BB]oT+8M!EEL Ȗ`9e۳n\" E'i]/d+/3\^'yv) w"|AYKkb]ځqcQaO~ˡ91 ox[{faɎ5= вYd :]3Y#nN|ƭz|5D<7K)V0np)1;lREֲouкaO,|L`%I"(Vid3EA*ȗdK+NwݙZhHhTKzub.`q2<mw@YZ]'[M:iLX]A#t+gK?Zm?zi Ba'.chHf 62 ՑJfO]E;^=Ca ##6^2 8*GUuu*g*'N:n GT7PlT[69A[}Z 43oiPMXkç' 48Ьߛj#zU=^(jۄ#c+{sJ n\?NGvb#I)6G9 nIR'q;G<4 %[{450Bm4 dm;SbBAկr+he9N7S[]ȝ!nUfPeUMP1FsaNd-UJ6ӂF{d.WHv2͛ {Ȳ],>F|n`YT{]R}`׷g_I_)Y>~b D{ZdL)vRQqϘSm-g7Ru?}5;cM6}ɇW^~PٴEЩbjuӷ#z^؛wp%~Tއ+?>JylLSJo NG|5;*ZCEx5Ǥo H>ws%IOX^*nm6+{g|gi(RҏRhս$eCUg, zV}aSI_M{JGbG_%P".SSק]f V?z'CEl-.ݼ#7WUHG<,mWsgpT/uwКp4cT&jĊYfKPg#[:81VSpMO̗1iW OI|1-sKYC?Ґj*MSZ"'kƗ$kFU6<%EEtŠ2K^cSB“G(*b۫37*_ƫc .rK  ~Hk /Il E@U9ڦ{Ⱦ9vE}'=eK ohCp /qe7CØ.hNJ/_wAnLIE 4U%)}'.xi/.GVU9YO;H%~i&'\xX*)o9o3YyWDO N͋dzG܆6)k1bڣaqs'Z~- E.s^.Hj`6]PtѤ}_ڥǟo`)~UgD * 7=[av쨙\ˍO-RdvY$ѩ%X>Kvƻ,l][Ȓ^$z݂/G]ȲvI ex`]VJeG9(ij=k_HL!#OqeS@v,WUPϠ#*k"愾ۅOo,/lw=jթl4.͡ | "Koce⾦IFiWW^8(MW#O,}Ksc]%FlC|zUcL/|~!}^9QexZ9n*QHF]>bJ\g!H&3z6Z^u>׺;vX&/HyBq1[Yf_t_ImJJiS)<7Tb&ℴ%A#̭i/&\peϣ[N&z㭑iϰ;%rUtdnZ]O%&MWC'ջd@y XӐ*s;nz-t7Se|##/Y= eV}vISJ׊/E9_%*<'|}pZשy]gj͹k@ p)hٽvV~\); ^5zCZ9/OcF6Z]F}NqTW/iq0.&Y~ޛϱSy\⳽;C%ݶc #gO^2hS՟XeT@r$3{?] k"o]a3͍t/|SzELjeV8y+Ǜ?kPXg tKt흿 ✧WTxn"ihE< L|\?x;xژ>8Bu9Y;ȮTг>o8IGgNx޷nMƛQ\"";IEK;UAu7ًGZs69ǦZRt+Wm)Cfm}#^+h>f(/˟z-X|Co#$~ogs0?~VIO_I[ =8Dd/=9vȾ웒|nQU$ԐfƚE6;>Lm+{!ݶuъV5XkA|MHwOۘ}I(?>6,H>7 sG4) &^k}osG+4KْD ѭlC+Սk^ 1.U|s'xsKsO{4 }6cbpc:rsjYʟ,OxH EWg/]5Td4 iMʮtp}hWpAfm:;>vִ7=0?Bfhqek8n*N1į~zL moӜ^#$iGG*LO=K;h?fP6h? t<<쬼ݐ6nhh4K D9`#(ѻиH'i} o䌚d#I 36$f"usqnRwzxOcQH1J4sQO})quYZ`rO?,X+7+Ba~D K>HcIüccX|X~y&U܏ 8 $|(b=>g_[(3 s` &EKXt~'?d>Q8bQf'i 8La r<$(==P}L:bD2՟4 _dh/D@$|>@I<@yI;`)&jv:;XOg,|]sU_5{8 q[4~-M7/=O2A`1q#|bdưtFĂ6ô*bogAI}aђ2Yw;io_C6$,o?~0vdƍ0T~#?i!,GiؐR̂!q?.tؐ7kM#Æ6#YE2cC&lȀgSK9|ӾSՄ;Xe[do|x! 6İ)e1$wv@HĂ&-B}ֹLAƊ iȄMAw'Egid?)䰐>|`a~|>?1FOug,(뿛opqa`F/yT8fFx ?%x4qC m),mY,m9hafQ<3G; %&~fO}āȆ Ov3pxp6#SEE6O9+9* R'luFPj3J O1-Fu!c Ze%O(/Ῠdc%LA '.4Sѯ$u1OϘ~SL k \g4V jfVCS&\Ξ;QL?fϬf9{CMG} s=O#יrc3#,+O~#f/M=;'L=.ҚQqnr`q``E888gqLIay+=#OcbK)R^n= 1;wh? N9㟌gEʁv6SB>Xa,ܿxbULf\79 a#~HLr!C A6pf`¸ ؐτeE,Sm)ПZ<+ [t>B ٠OiC/X#`!g~çϐOF fUWD~^h^B=?O̥qgi "`?6ޘqZ1e8ffs?F>ĬīYfs_3yQf⫏ w~ ~% Dk Ybs/b,9δ~V |~Cx?w'>r?'ƿ¡\Nc|'1;_ }ů-Ŝڙ (QLOIgʷZ; bo/ws_ӹ^_?5SXZ}Om1{p>׆ʹO cf p؆v&Nm!?c-A,aEg2Y\)R>("ϕ K- 0~2in"++1R΁#fvoN"•ai';ObMD%/Xg1gOQb1\g\ףXr&b>iju,Y1b11~ cGRŷaé|*;uzIk,=OW͏7/5^%9.IP>x&F6k2 D!ږ/T˂"1N8uI<<"T9  1ڹ!}Lۗ #,Dቇ'}ʹ9lr@#޻xfoVt/ËÛmgI c,B8WBFLi͖V|Gުy@F;V V /0F7ſX5ߨ5q-wőҜ's˟y@):_oXgw+,nbaj&F X\oSL^*, ?fFʇ0i0q8~YO*ʈCͿV`d s/,_Xs 1_XV3LcăG*vVDOǵ`շ0VO3cwKα𼍊crVk2W? cJKf+.}zE5GU41{bB!?QBN?X:Wgg>Ԋ?D;^̀E8!gx>?fھujvYg㨿<t4q *zeUˈ]Y{=ߘP"lbA66x& a M&M,q??N:/q,DopA8O/>+PP~xzp@! p`A蛋)'oc}c@|;cMR,½Y{f!'? ܛ5poެwf-ؿ7 < Oެ"܉#܉XXWLw wJ04;qpOMw?*²"@Xv n!,#ǖݿ&Yp0Էׯgֺ)maf47 }};7e~nYpQy!*ّfZ##LN09 0-:|]p™eILH[spF!Վ c c\?3=+=oOR %mgㅔvssqľ8=ALrvG*#RIݏ(Y#}뺈(Z9 ZcCMQ,<4tC~$+0":?$vx%qwus ߄~~vvCmܦWESɱo$3 x ޳hN~(1Un61n1K?d&$禸g!:gL l&O6\;]?e\?u Malr{o݆v c|Ⱦ8X䇕~4:[F8݊sac`ב [gNt+p'ӭӭsfDӭyhV:So\f$ULT$lp%lprYP $>I#}1o/@1xK$o>/_]\}YWljO}f:[8x[8pp ǿy|#Wo _=v߆<-v<,4~wykbƕCWoM1 P sE@ l O,WEc <#bĄ3a!aضY9,dLf;;$2[o;dmP߹vvBMB#81R|ai!E!g'sG{ͼ`Lv2{#P3H1'ذ3|wCz{yxzXaM?# mcmc/vignettes/bfst2.rda0000644000176200001440000022541713636316205014731 0ustar liggesusersT>NKtJw)(8ADIQCFEDP@0@ |tǦϽw;XY5לϳcd(NlHCy"N1Dj7W W+kL 2!`Z[I} XV1=JO%""NV"6V>V"Wݽ\D,,D,nzstst7vVniY&yZ]XыW;fNy*&Ybdc~W֯\gLfnnn%+_~~ܝy܄=\,~迶rqՆMNɞ3g+{7>66?ggs^7/ f&lnec{?f!d~ss1 f.N^叞vcoro?RGmVf\?V.۶8YSGkaV&AgKdJcGפ RgLo'hgolAfbμV?+H?Bum7<~s^&z ՁE{&p~??o.>_\1ێN^Uع99iEn`*g?+::/X؛ype ۫:ƿOh怙ΟDk{+csIiȬ,/Yyhyt >VN8?:v1{'mq~*@Hp1)޿l~\D3J{_BBKԡ_?s_̒F33'=#Pg~IO%**/E{/QG~O%/Ա̕_B3BeՓF:=P檿PԿu\/QNNKԙ_3 ъ_oQ O ы:oX?o*I%?GGNoJ ~gk+l))+~wj' cB݌4+cْnoofc:?律7s;a('L>Yؿ|@g<˩ˑq(SS C%dz {~Ǽ~`;74 =Frz%lp4eT#tkrjf+vc'ᰖ11oxvN _G_%UZW +g?Ǔ?$$knڑ?ֈw`7W`7 [O0_߶OoO_j_ݞOS,~߽ePP;?1pXyƌ ј籺 E\F/B!tR9g7@t[fsx\1>o~'Bj{?m^rwB_;5e6xS;w8eI77]vMޱlvUci2 ]52Z(%8L 7 -(=X^}@wD$U؞IW"S:ర)xvKw|+ÛAhi/KmT7'O&P(1.Zv-EN+Op]vkV2hUfb;u V6Ȭ/ Rr5{)W3,.Y[fGՌȾ↙*]|{Ay?œ޿,$iŋkgjv 9*^,{(5& n$Z)V9ߒil7ow7DHKR$e gպL{5Gˁn3!Sj//񌑌PcGfSʆ26 o"׋lsҶL ha Np.QId04nP[4VQ/+BPM`y) ZgwXOsQO!۩гDrԑ i\# شGmxxL3(!8{X泞o/&|^ڷ>1&|#qon Z8麟s |{k7zU|QAq&cxc1گ6j 5O<̉3یf=_qq\JmGZr.^`|cS&\=DO)?z~N"^*^dC"4D KeV>w开;IRVx3Oc|5mTlq&JjG*{e6ӹLQ;B]ibFq:R>pހ![j*(3&r2yt[v5"Wbrqy.HE)<~?6qRcod^|Mc1ּjY-ލ:j19ӒqӸ[U~x)&nZ*V]kJ%w(ަf+>z,qQS Fc?\tt:9-&F +æ +}{]ﭷ<<].]{eBU….7N)CsuKCӇM|>??s ۅdCgs=48(z. 5/gHk_扢M(2Wj{qfo$W!j'xnGm˅iKክ)L}DDp{w|ȤhHO3~fDI a_$I̞' ڼrS\iSOnT,sav11s 1m߮RLpԎ1 ؤ_~W#5vU/KəTOHT{P ㋖Es\hi\=~JsO<)+kt7Qۨor=+@}B@9[&g 21dv 9>6 ޕV)ӝ|6Tū*ԝtI;'_DFK/1sk(]n[6 &\]FuqXp!2m_4h2'o\y# V6IVpjx.3Buso5efbb?Cb^q MZ\g6@5 =ULc+fxnL^h6qzN ;+#g+%t}捜~X6b\vpٙէ>cwwVYn|8[#`hg.ȟܸt>=>D} oZz*-J)58iqj Fsf4*_k|AP~E;wAAMt OˍPښ+<;ǑsLofc;\

ƚ0eKMOZwon(6W>Uxb[}od&bϲcԉY{Uj|=FHU/M/\*[G P,~t@ O1m˱_?xw&kNyD~햩Eǖ25_%ZJ52|"|C,񤪟(.Q|~3^Am򚍯4) EK1~PG[WݚX4˕D5_n#Rs2 zl`:VO uFJ4tm9⃓ߒs8%jwpjFw\K1-e+K^""=w̅I*Ox f\EߣU6/~"yV=_tkd>,ߠzɎꗂ`!&=jeEG-ijZUX$q/NuI.`qR#+"&zJ|ܝ͏Y>n>JM?v]QvZʔ!=m"O]&,XjZ=-T% 7nB GXWCYDjv#|)]Ky"鋶 MV}m6Fz2W&c:?6vfh+]#yu{]>}BX Jka(/cQ]w(WiN:n>J^,=hcaL'd rG\j;TZӥ0SSz؏S6r*^H?g9{;3r_쌼=\G ykPѯpKMXU. ;L^VCy+EUe0y,FFĈp95}5_2'1 {`!?7W{wACC@C\ZqmwK {TDnUSѕ8Ha\pQ҄:c}lbE5;%x#IVjg҃OrU'GzX)R^RPt 6 ^ޭlBs֩kYoL%QrT/o/S;xz.k3I`>[ǿ͟?UV[{ [;?J~vr<Fv@ޓ y2aȧA_D>`ٹaO[/xz ھ-ݕѷS@/ל`et;jȥEB]NЮl/^6N%БL8[M ]=Uw ϹGjjЕP}\Oo wAGޕu&1| 6Z %ۦ#=W+a@+.=|Ƃ#up R|)n0d*aH'0hDh@j.VK0xlD :&(GTEY+%c1iN@_ KfM5z9ԱȤ5R O}ɦb"\< $ю^rym?F`ؔ{cI!; at>h1G݄\[IYOJO8v ~;[&V Dr'Ih,;Fnj63By-0r_Rzo??i== Q)E%@hj汎1ÀA.fN!0+J jFv0)  Ϡg04f~ +ˑð*%6;:H!vJ!ifcNW[`@(kf t0>ɉZ5P='}86vVWƠrܚCp|K]q}hreC12`=;I+&1v}SPtr0_`^q}"تV`}@ qY*c]Sri '%CMRl~ *ao[0t4vV* QD Atٮnjֳ[^uWF}%?F{Hqi|jVV2QI^)D`03= d+"1U =ܜ8K9t4}Hbag0<Z/z~䎅p;&$_!CseQ`7q+߅rb̾) Gt?J5Uzک0@NxFXe E^̈́Aekg-&Ry٨i BE6 4Lw0pYzC5%O@/d%&]1:FLt,0B io'G\j8%[~ cBX uU1N=S( 6Qb500tO} ެ܅Qg2t094ZCV1I*.|8zl/)70pqs_-a]T;%Qr^0ug[@=+XO6Y#1 Ub=@7Ѻ ׻NXvV\seBc!2FÍ`W5W:/}臶SSq` yf0ݡ5}( '% jb1Ku7ʐzg֧۸`4Mdj͹PP߰tX;#WwI6%@_y* &4Z{B ߷`OpP.FU7̽WXggcO=dE3 Wc~ltq04Q.]g$0a~.潍- ҿFo_hmh̿F\򓦠E:#WGfc Y0`4Yz f1v^I:y5 oGT`[uv-Bjٳo 8 c gJw_ q`_J_yJ cIq`|ۛY$FcMQB= [̃^ZɀtRR""WlJrYQ `Yߪqp 0BV AdmC 2@*Ew_@0~<k;ل.6fʓ\XQy{`pݛ 06 Ru%/T)СHZ LJwƠ!5 |(iϔB_S}`Y3VRO<ZiB0x;%>bVܫ6:-oxSqQ̋ce}m7z'fVH3n)T˘sՀr;cQŕfK:<Ý5N yڑ0ؔ.t)1L'}Kl VH|6HZ82>} {4 L [0:OzW :܉UrnZo~:*~Kv n"nwڝtj@F;OhߩFNy*LW=1?p$e6ET9m@{^> Z98犟`7 l>x{ +n}[bt0i-글{/-XBW,qi&ƾ<.| Cϥ`eMIz*[x}j{[x5n",{4EI ~0v5d- yS+<(c&V`Tz2q't3K/W>u7a 9=^/ɼRWW^'o GwS+T>B't_l &d:P FOŽ>2IkjGUr~ >nb aql? Rh˨cٻ䷇NGx]j kv 00hAד"YKo|a⎟K`=W F'oPAOISն%tOx _N=3y o\Nyfi/X+hHܸjeh*1 Q4W!֏ j׽Ûrzi^@|>zY~ 0M/R(N AW3h8N,}x5I0t#U%E~ #,2m0}| O^Y# A1Gbwj%GBKZj8F#.v^_[V{Htz7hs٠̓ 64|ciIMPz$1Vd4t[O= #I/ IXٓv5ۥ0oD>٤ 0̦U[oS1hWFK(W``SëFy#s92otPЅщS0|e֘hk2a`5蛏@,׫ЧQ`;w:)oR KOւnI0r`@1,<C7Ś1:Q }!’jrB?A,EmUwՅVx{<1 ոg0@&"SXA` m PW2X.aC_6q! FtHxcx٬q) UϞϽУ褻 =?͚ghq1oq;0/,|#0JpN۬)4|VF欉)aԻ,"4: "*oFaq_>\avzPk 8?8`ތ(?t;p m0~!tc/n.a,܉~0ೳ4Vc7$N(t$SZg 8>^w_TD ]k( uC.p3Pg0M8n\v w oνL[6! f,rR=8 ;>"kãxlA:/1݀A"W\mm֖7TI61qbstfk?*w/a.&c倫;i< P$ =yc&gaJr9_f4|4R =rR-8<̂ѽqV"osz,aGtX FvA{4W`T6"{4=I`@RU?~I b\ѹB`!>ɶ-Ez F֏3e5R7ӆNT#g{Ү SNʆF%.]T":̹5 sw`;Ln¿b w- KH`wrG{s,6<.j1éˉ1qլ,mV1Ag|6m -12 5UY&ֲ!O  (w6faǡ㼣:7h`1d٣@ ]T~s~<ހAO-t?Ǜ».0[+zYuaPO: =2Av/ҡ_[.N>?? q!m㪾+vة8B/Yz<7v~hʾ:>p{ŸSE=Ϻt7zC<1,pwnO% e!<1Ǡ]!t4vk >rF?a~pztC.e=K3Z*.K8؂;hx+/L.S'=cGd@w~/Yl@k< Z1~Sza$dz4/΄Lt =mS4 PY9IPq;[+ѿ}ڢͨ>hc_[3U1~T8ɰbeDVpX\De'թr0P{tIS T35!w'oYj yf̪ is1/ oDA y%GY_`!M'ԴcV%4}X7 =FU}L-Dvn+C5l>=m㲃 cyKFy@lcOn>J)ma-geTʉi!>ͧfglz0:cA0r&qD@OGޜ޶+F`Q 'dh3C[X.,@='2pCrh'e  شTG\'US贈1i'92 1zg*=b!ʒZx6!9'_|0;,hHN =[u`20WU~]]qw]ᄈ1m~}fR'1>^}ֳпdӊ3j]}˼?^)҆^Ț$(t8(^iusch/QouN@ejZ󻀱=!W 8}ZdžQk"0EeA}54Ԁ06[7aSZ!SeLsy4tn 6J}i/XXZTpzWp:Akn!D%Bwzp%/T7@G9[;#<}{`t9dC_²pCcZՆvWa+pWK׉bzCL;=%f9vzͯt}a3cM~"BUlԡ]X{O.*).@=-nǪw\j}XM1ƞNسB뫵mW| ͓[f=#͙_5@7G93:bjTq Əi2a[ً^KĚNoi;~F}Z#hG%̽VT;tEH c'EK28 dLSٚ %+$?J`! H9ɡuy*'?fYw3\>b[8O}\5l|8mX믱eo=DRf!HP0 {F CrS,zN0;B޽j`"syt/$-au{Qlwwl u~|Fsp{XsgB-Vc֮~Ajn ՏKrt5/A)$(9K5v >Y~;s?l`_"B{n>lX`9k\Tw5a5Y=),{ryXY:ųVia7.M+ akkN۰D3q-?aj1IQXie{o vZ7rfe =滛5VZW)&'\3svx+ Y xWx= soX[6Ƅ;,{bIck uuq"E;نHV!s 8jg #o˰E7`X.MG?w0jJøF-ppM~+XD0F'8U [0Y!8]:y k4ğ2#{ʴ+Xak]$IaE9_#cnoDF`n4X>a+Sp_X[N6xm6ԅnd}F'U8Jʲ/ )J,6d⩎VȳD-z唱#X8cz}+`X$ku QCSVc_,XIR~w@1sh/Y=wC{dIi^+|ׂcgc{t}R=Ht^lv=$Ot:q6:dUS_%0R'aAl86DT2q9YXOwc3]J=")00Bx̓d a&q9劍Tѫx3%ay)1`E =-#7rt$=Sv|R6.n {R9tm) aԕdd~#tS%\R:1԰U)<2aͳn K^&yf@H`Y%Tk.حRѓ |v9‘o x3;0xua]XI %* ]VG}8~I <䎗K.؅a@.o}FTރ q Ԗ;֓ YkX̓\؜} 0vE8|mƖذS^w `oJ\M=2_ hc-V"@\݁gzAÕW<`͔oYw; .fnD,aJD\+?}M_4Rn"M7({9@ 3jN_L77c)0V=P"cw,޻? kodڴp6n44 JAYܻBkay#]$`yyBq&jI O lyt%.j|b%$%ugӒw!W%bX P! S;ϱOˈ`@ γJz';@ i7a.Ol;.{ع9}6bJuTd(Ѻ{ ^{t ٺ3Ht͊R Y~E/̇u#?XЧH.OjQJ%%֑-Qܰn槨pa`j_]lLi}6_7H1ҏtfcyb+%ԏU>"b7aK%fm! ?FxEw{ hޱCq>( Pq}tl%2pO(ihz`"=* h@8j;8*<sKd=Q C%M7خ%"Lsx׊$-[* dՈnYj9=)x>hZey<8Ys(Þ<~ _vfuda[0+~a8I5K!(dSu3l=8W2GTM/_U"q2ɑqMǛ:N* /X$|ziC9ݡ2c8f\k.<)RM0ӄ#0EƾT/BamPXHp[?=c0{/tNbvNtWX{Vn=L}5Xea\mzlK C*óaÈ$ǝǁ=Oĥz\r`ɉzXՑR '<<ҥO?/HBۧT|N&rS( zT`a߸|2 8Kΰ}#Y9A1\E[b̥߾֋q acDu7Цa"+k{p U*qd-}\n#joaL* E:8^%lU~Xq j_,L`QX:8 +3J,+~L{n.MyJa0486tj@_/X<~m[⠬},?Ide'`jO j[eGhbDGz?zSԇ&Yh`e3ҺqSfE:jcK']ay:zX:O3/̰b`|YI@k9V:;jGOpZa!FL3?#sd{ S:azƛm+jsсVjpHp!YX%Zg)SA<Υٝ S__?j(U>}-?k V*YBf&`K(xYuO;G'zIXh 54&mſc [#POVQ9jfą;"2&agW-W$b6 ܻ > HϞ)-Xzos꩎}7aeYb%@Zg@=Hc Vu&S%?0؆5-r~ށ5A^~L%b_eg97]DMV%9&_Xzd 5=2ja} Vugvq{󎱰J>ĭ a<.tcjMKI3;2o,ZfuX|;9y:4Y7[WDCG=X0{Í3 Az蓟`?a`mF4 =`#Rh9mdk"e +Ʊbf4?6uL0lr$_T~)HE%8Zԡ c科7`5DaL7J>Sİ^Qyz˖\C:ثVs1SIws"=Pr2:,U>}d;?̬~ 晆.;P,ZZ¤V-FQ=I"KU^s6`g'aKd,U<Ф.#>bj̑aV4q|V E,=K85Mr6cg׬ ̥p<h9Cưtom, Xop~V/ Hٕe&–:A/Xj}`ͬw(bЩ2p{S1#C:Nd2!>z*6?;6f+kEAMc0:,JgsU‚⻏ QR%R1\l6DL'&͉#ѿ k%1 97X*pgTuml/b0r_5D# /'"m,BU3ƧMQx?#kTua 8%/ i|Xa(\X w6y7v[cU0A MXO(w.Ȋٺ ;RxQlcHo^Y٨8d9{-,5FںolmԳ-aCdnzJpnlI}-ү/=KGXh@wQ_"J<ȸ+ꩍ&:I[~=~,/}k36 'BiGaw$͵ffu&9^8m_i%B)ҺЫm'}}uwf _P\e3MmG"{yG*ұuSb{jSʝbϾw<>`K&>]hxVwO ZQ:f6#@7Y P\A<ӄ&rwoGCMZۋ8JXBPutKJ* QW>V*(X:ֽ4Je}mؖ#ޚ~쇕7Gr9 Oa>̨ۇKcL0y|}1eOu{ja\O`3SvB= )#܆4ؕ CޯfW4F #Rap 9ƞ s?h ;ԏߥ/P0!JtnZO3U|"SFZXh3J)ȖH91oVstփ/^Ld6F `1W-<&Z|;btG%جm#CJFFP͡|#ôaSHܵ2W\_*m$c.ڰkA* :1gӭga8aXarۜԄuFl4F@QH^7鄓Z>}PRsXҋit-$~(1y9X0=/% w>yPOL6a]5`!*DTCkspaIhɦNJ>63Ȇ 0!ē}pt[2՚!Xѵ)o6md%?씤,0XaD⣴2 5%}HߔJ6mNKtaJf,ɌWʷUªHwl3S`D a :̬'#l:dQjg7ʧ~O\E#]bƒtA9Zt/I}PXhq=&7?=քgv/=8;&$Ӿg "H^{r z% x`6gv;Bd_˩N0:a!)22W=jBh8zKVop*2zc5W~Fm_o}h"֎}h;o2 j؉\聆(Tl|8T^ү`/ 43hGOa{'563S/5Im\|`ZIyM%lݴ0@ODJ7#vV,[Ulw)/U k"E4_u̯] cz?y:M_;a' :=?X6k`aɀ+i{rH?F1XLW`Ǯ%2سM fǾngS^|֏]Ûw9piDSP)иO6bVU(߅@{atH:lbv赗Y]..a Rn ¯-M`'&)tuϋl)*KZbC2y2oM0|qw&9ݾzGu(6)o-ֽ̃ ǡi/Ѳy&(},Ý:y( jE5r$USkIql4*4~Ak2~Ĝ/u?+:OMȨ>jV0MzA^PQFga PlZTyR{^R܀mOf2SR\g:#et NRhWXEP6Vbw4 _J>`dU1|W{]+FV/g@\\^t6v9&zq [g2,nBCVK0)m.M<3 uXގlY*ތcܚNuAZsy=I0u|,d¦nԀz<;kib?W=~vz]͌«a,".=W/ے/xo [RclÌSOW!Ȳ.|+a' oB_b-r BH{q`i1Ԣ6?|$Qфz).7}7|fy(rLB"^flu#`T۵ *` XR?ڂ6^Kjsl>#6Hd$GY&~u~_a}WU?*&Rj"x7u۴N@#n3// LU[sB!6zǮQY'! u*sѶn ;/cx閸~yӵ+P!51S!U;DgEa^s  +Ml~ ?]S#+O3dau1>ld]0f#wyYHGGʮy `s'F<6ۤk2̑Rf3X{^]`¥/%84SF8'ܿ"?gmjn:Z&2Y{CA%3cAVO9ŕɞ>SS~@5 gB1ju-JvO/GNlNUcfr|ADH&h@3R|Oateb)W4~Dڵ]ל-S^hm{ЏIxg0v ֺ ݙsZk0fhr{ #7]ـ~QX2; ]F7^"͝DP_ݲ5˰&C9 ϢI/J  ?z碾×jԊe8wyzGʈcg m.XWvRZWNN}Pv<idgyV2,xˏbOԭ7SƋ0[yL6~x慲oycX.7nMaHs9ue#ʆ +0u(BkN`5ʝTJBXy ;X~IL$zYOa 5JdXȚ]gE)0{+J( +Jωbhhdid5L&(YɢxAVY8y}jI/M:NOTW!?U$ Ang^-@{>ʲ=x#ƭWȸ[߹HzXL,Ȋ羽) iHH@qS퐭 #k&qHanh7 1 2`՜-0K4kA ]`_\g$X5Y)m/fHD6K䦥`캔쎵&zcutG1}HE%XsF'_1J5ʱ3M"MjK6ؓ fiZM|vdkaN1&شK9FhM@i[Y=Z*+B2 +u-5~3aֻ& <'D@2,ie~3(u9LKb`l7ҕ!.N.3onH Qt$o,B&H>iyRm~t'u|t[Q0άl7AD7["f}:3% @[& F6O*\G6ClPSS/]D&SjmaջGha"YU(c8K؁lF(Fа7l`yl-5pb3?a.~*xCyKQ &ɺUyvPo%É{QyE0r}b$[>_GR4xG(3(hB1ySf*ņz֪,A;g`NY>O\f?!@>L8-ޅ2:]\ENn⫒ѢC O9@O bg9,.X{`Y!BlV a +=$'ޘu~[3=f/'VHljVk}dP,E#aiYx ҺB៉͔g`*ezY@; 2J_N=N) }b@ӥ2j>}c;?A3hy¸Y,dRGa cdhX9n”,INͷK+e< ݁V/hz?Řf}l?T]snrz=Nj*f LFÊ7W&L6-Dl=\aymlODoB ϸzdr3 Ww\i9sIU_oLWwTtWkmt):?~}J -px1RD<5]6-nRJ֍T1#g|GAT~1.ף0Lx"*{A(BdGI` 6`qN $e-]9-Ioԛŕqk<鴚)',Hϣ5e58H +'dajZ uXJqA`E-H!!XHpv-Rƍf[@hսia -_:6tW ȃKo`8Y.@ϺO$Y VXºjz7K|w]DOȔ>I&d5usBrǾڢy|HfB`xɉлyg]eȈ:O2 {] _"[`顸{wX?4΀e w;"HF?⹃Մfڳ(K; ˰S=<ʰ}ju`M"ţqSbqZhRyY3 cug?#E$!ȀWn7/TǪ~EMS&[7t,Eߛ?Z#I'%& :cPJDƆJA`҇#=l6*gT ,b̼lxV!fr݂17ayCVk}#kecٸڅ-lsL0>=,TT|u8 t+džsT)Ʉ{י<b} 7&Tә.XţY-4r`*eoU؞aʻ?nYG-eD"faK0{}#!`۸ {&)p /ě[":_"I_ &u#w,bv,ӕ8W Wwx{4v]AU(Z !2(8f[cmjr%{s* &g_JT¸*S7m=ߺI28`Z&З ߂goRBV9ME>Z"?zxz)cš-OsN Bol`w?'ra]t!OTuAA M\t=,V1r`s$3 N`^z#xִVjK99B7_ܟ_Ɏ6A#^|Pjxjcݒ JhW@[OǺPGQnU*Rui"TG4>rO#\r( ]/J4`Rj:?ԅ%,{Qt`?广^ST䕒[s`?9ZߐM QD=} ZlN}@bse*0GpQ&U8F39vG)]Ld,j`b6 aA7xT´B] #SMdL2#}6XP+݇gݒZw@iǟm@6 dm?ji&;AX WPNG;%[8RnP Bvu>:Id'ǵT,d%Sl,ReЎL+K/n -&.r>.v|0&lrbF5Xqauᅳ0JwssR.RAM({k9PӢWRv~olSyL D71ܷ`X(s*'|= -uȊi2;,Ϟ=#t{Uǡ&A;rM@'|2{Iz#?"Dе<TD#}q P tZ"n9t,sQxHeד_޻hJI1,-vU>;aL2yj^u5 |G3@qЗ `J#w#5 `rR ? j alҸ*>tݖ̃-<fRHkE,ZJa>c\HERT>ڬV|m9|ue$b`Pq 9znY]g+B߼ZCgi\= &=fI݄4,GXqkr:]R q\C[=ru$Ϟr1ԗ邂ï0#psY4-@ypKvG*gU_d XNteuc߅cxO`jԜ'/|=y\ڈbz:b@$j8SAt}oL<0NEޟ=i<H{:)Lj]-}}"Ȓ'Av%`>%O|RJ=̭>5GLIХ߼OKYyW`Se!%3Ѳ*А{I0!_&KSDwr bI۶T`&#g>g@6UZd / ma4߾Fe8>T=˪=QF|2+d͐x`1S=qTgn0qAkmfveqy31rAԞ;b "Xt$  0A8_|[=bg*tZ-{-agUOܬWWЦ^z~$Rv^.B>zX* >A9OMیYpL0'v92I ־_SE[GZW Vq ;7ݡ &m{dœEy$*= u?oU +-y~٧|T{(P9^B%I-@kVh 4^ZV{*_a;āv #kbWa1,&&>H۲ emu5`SZ OTAt'ԊŸDZmXdQ@y+MDǔ:."|~ T1UzY!ګKFVr`M[B-δ]:>`0h[^}hAY) <7ST d1R,iX$vk dS#c&(N4q3 7S uxkO'U K0ts _& ;yaբ)_3 .Ο-Sб+XH EfqFW !JHȊu-@8"ayf`*socW3T>@e3hd0}d &=?6- ZeT:VQcN$'M0z\c{Ŵ-A[mg)5s iݤx &ׅڤ{3jp]fcBPnճ`F?.E)kƧ[ӿgC{AdnY7!l*> BN0g1S +sL4a#N}?F 1d*SZ3=]l80YI=* SŜ@&Lf.`Rm[Ȫ% ?YoIPYwynhBRϹLE-l6V-hf}& ԭoa~:4̈́Sy##/ӃV%6hM%tf4p%C^櫧WCNR-X4^8ͧ|-ܐŽH?Wk q~JFX~jYQ-Iȅ-d MLAgeu( Rpߛ,t<5S]4_Ŕd9`gK __Aj$Aka򙬻[ j;}P;Bfİtf&) iu+nDXs^i)cc<*,'f;LGU]>yw/v)}+|e$Dlܴ{t}Zz "ÂZ@M,,(x7r0|3JkCYSB"4ّيfvt" '8⬽&O qQh:~r9n]ꍂN"[t#j{ 8+n QRA\tJ"R4Hw4H4\1M00}|=s{o޻DNH<5;߿øyrG\*ٷmDy:cw{c_~JξmJTs{4À:{k9KSW f̉@ƞm;?sk<"]} 9KDڬu;g2cz*/wB+Zas.-PMb,BkrvևD8S,43Io|VVzJ;K5˅oBb|!$pW/NvIvOJwL9UR&'?޿xoA2C[%!W0̉q>\bs0o]\o//VBFW`}=>_N 9~5nN %pEs.%WcP>̽ۗN{$24x<1$v_c|-1nFǯΕd|!1ӵ;Bnݝ9 mS/:q^R\¿D}ǜ#_mt[4 쟐RA=aro%!q';7]jvIĺďtֹplʣ+:V]u<㜳nqW{yg3M %|M?f=&QMDM'Şuk^wOo?=&]J| } 8dUֹtրgʭiAuϝx-j36[̜"ifA;/:_(^|wAeůBJ]nͽ&JԊ'+zoJۏm#TҧVNG +~Ilǯphσ%z+~e0bNr/D?sܓOR$!Ŷ4=n\ +X؉lNR7EgzΪn]y^iX;yp#K~e#m\j}6΍3>M{եCNa[8юeJKGdzi]u6n i>@LҸjk{j. j4NG`w~ HOH<$~?m/%wc՝הkeN1Egkso'__9ޗ+cV[3b_FrnABpdr#K;ygjyA -\]>cmFUMo줅M/VMVzIkH²(Q?+EN>{:Q<_:@x ܡ\<4Ĵ+ks{˥?VLXL*ʦ,ܫ?O;>'řݨwwN~BDc^UMZ}dΥ#dyϹls:gn)PsSխu!>ɍ d`n6+ڭ + >S;us̤yߝ\<wLsNݶzvº͌O~ɧ0y*OĦ%oU]'z{Tw.}3%۸啰6|vAB_~-mk(w'L|Urk 7d;~ݩճ}\[*WJΝgIQ,SO{v\r_NK|(!0Ruңr1 o*!(S. r 9]*D=W Jx|~앲?Uٰ΃o-NωՅ69/*\v?k|fK'fM4Z^+4lw29GתSN/o6y6/SKH-,yG՝]sfЫ#݈<J/$Vf3/ -4ϰtw=CqKw'=${0JO?3 YsR (VOg7]nelԿڳQccbuϖF˘gVF?99ޗ6w D"vfX|m$,զ1_%_aZ>5~woPms7cop>fM: wwS9sAӚٟJ䟽g$O~)Q_ݲ籏H{?jokR<{a?8Wm {2 ^?oG$vajVMwbrֆi%f.m74pTdAj?9~ gF쎬H`4 ޾2qfp~愔zw@_JĻ#~ )S68skâ"Ozntf~66"C\;N˜E/=XH8|T9mƽ%&:Gɋߊjһ\UMT~i*'RgdEj#i3hsCWd/-}hSٛrƦY쬯[-x҉U.˝KҴ~\?Vr$宅аuU%iU1]y͞HhҾ/dRj%.`[C$/.41Ϗr;o uWfk^ȍ>uD./4)"C +~>NKtt":u*^ ֵUzަ坈YZQ"*Nz$d}`k۩q4KOLc¿l}F㝭J>}}}3Jd¼ȭZw O)׾y$|p|Ûւ?tZB7k9TGc{[-/(wf*,.ߩ_8ˣ$<1h՗U_B:PDlIu~s6/8)έ} :'n,msOܾfcB]ivJ 9N_?2ꗙ?;+٣< < |׫'g +jz芑SȲ:):'lj8hYI<7׸,% VVnu,!kY lS583cԴCJ{;ߙ7<g)֑:L2Un%\wμ~]kwx"7z.% 9WmPr>yש{ek߁(+WiKw{O.~~ erJ~k|~vv=ǥCUx6FhsnouJ[/o렶˵>{WbOv|ftEߎe"q2u(T_ҧ/ENV|,\4/ep\e5\˸P/g 0yP˦"_SZ+9wȍg/Z_\BIrGT l۵qn}%fV*wUKeU>&㪷m* *>y:wmrbG.v.DγMXd֎n9iE˕(5\/ݶ6ZYb^Y^]r7f}!sڮ))sA.1l\rMr!䁳j̈$&cɷpG:ǟ>O鄷VesNTG=<,-әrQPsdO%Nl3ny˹nq/˱p֢ǧ!Es{9TTYu8$VB ]Np ߬ unLp'ɯ-'ȋ}Vk.I2s69CyT9%Zaı*ȣry $,*׆ML|>Pdк%g}?m(ӗ?ivtE[K%IOD( d}{s6'ƻ@t>ۉJ%mSߋ7VcL*cN3M8vߴTh^eoHBWÒEzO?$wzIu~_6ΰ N|]_}Ho%JFn%wg~lI'',{{^ ZJBM=f+&[F-ɑ_3TDAN}kʭmzR}h^6%y4qן=o\ոjj뿔=Zg+5q}C?fyqK9`O8a?7ܜS~>.fYyKB9s&o_?o~=!K0*X+dz?%vno',Et?j5o6WjuΞpԽ>;~<}Frک>kf97L8lHl\,ܠ\N'<^Bgִs;ZC'dti:6_mT7b+KWn_ei缬w'pnceH ̷НZ+:|}&IֿGڋ2&5H\}R^<{O[ر#I̲IU!^;Ɖ/v͟;_$ <mEω-Oˉ~e+y٠7zEʓI[v@"g˖K{T|:AU%rߕ.4)i$z ~"Y>irbly9}I=r8G财#?R-)-έmn2XZ{> ;IѨ.AP{͟w;۳o\Z?\}Ԑ# % !Y'&H; H~D='ʋc9z7oa?YjB9γ/Kd 9#Tk?Ws_8yUv'tU_>ZrʹOJeiKF5 u>w^)K6*>G~kGM/=w9_~$qwGVC"t+v%N*Q+{.r= T2ec%:O殙$F/*]n}̻ZYFu&|_%C6b˞ˍ=Q"f-k"ܚx =܍L_Ikd䗾#Lmdc k5hGeLC%M-=γARrk܌_z%QyLH"/ϼDn}pQr7pdsw8!_b埲cX+:'<-.]Ώ;;G.l62{g"8V[.ci:TPعuXJEL Q=jK!w>,2YO'ʝ/v 틬Itrӛ+K`)rϐ;){Arf.7$_ ]9JXC7.& Y>k۹|[-8'V~k녔das ^eww$W{m/%DI7yNkO̢ _4ǥl^O'EuUVoSrmO#GYr!WWM.c#q;A_fMܭ-LYVnwJbr[򗟜>9Vgu#٬/>+\s};WUUVd6R].#7Gd,w]"_ͬ.ڬ]6I];ÏWdB|T5Z7}%7v `s3[y-b >NuYuعhc~%F݆$Xc%8i"s}ܓۇG>Xhצ[a_I{['w4Mѯx{=Q^^_N]~ZŇ7} RM8OV;SW"T4ڪL=U c剧$.>.QgXm|0 ߥJL>'v\Q0Gβ|٠_>%w7qhs)ČIqŞ-UZK4or#kպ{ɍ?}o>V^LNn=S~q} I<;HH~˧(w&|ږ$fk_u!AMs.e$^]γ-x> YU9r;3ϙ[whF~CmKhGV.Oc`x咎y$&E |$G*q..ȷjer)KӀQGfOjX|<_s݃_T΍YҲܘ۩?bџSm'6Opn ~(Gy֋,{V 9`[6_w]BVDb I8jk|$é^zJϿ#]4]_lmr7]H|^/xg|!㳞Txom!e\s]$ OWk_NXND_1X^BzbyZ>^&?siNIyC>_uObrV)Djdz;$>r_HlHFoOJx!a]g̓Ćޟ1ĥ^qf[o'>{7IuZܢrxKΦv,Y{yQ2ar!$ުZ#`-'!kĶw~>caZZG=}.ynw%3gL/E/K@e/7=/]M9d9?ި*˃_UMkݤf;UɳdƶZ(7Dt=)uF TEB[Ir/?UN`4Sn兮y?*T<+]ƅ^+>O,X:MS<_i}UĈWr)>q Pnl_%ռW%U2 v{s56MU:]5IOyxx=xJh詯/ߑi놵9yI]}A[y{o2,[g3Ps Z>]Gbu)'zﴺh@뷱ϵ$&݊ UWo# mrynK|#Ϫ5;Q{i$<[KB+{ ]l0Ayg$?6e)=7q"i05 rI|$>XݫxMsك}9s+['Q3woiῬp+ߞWD37d%I|C9r $زԋri/CmSYLvY6f׹voI~~tˬ$\js9dO޿-?^98l=D k%!DOJƕ#%t W{o~KvWM6.b%aد W-7jr̬[ ǧG } w+Y{~4͜=0!<~a`$ӛ>{}{|uGs~h>ޱ>R<Ԓ˙VZ6` R}}O.d(z%lŶm}slϫ;=no/;ϟ~>vFBr]}NvJGC<5Aʒ%ߟ+BsnHΤݓ_MJv\mYz:L8b]?_GovjZ`ڋiKm;%~'3>.ݩ'*s#XjZ9~Ar3oqM_Joc*mrIz/ޒ[o7SgeH'oϔJ˰œ"J״<> sF!S }ֹvraWsf[O.I~6ʉ:]':;(}m$=yx3`'U~CsUBwo>}=4˫s=UډǓyV)Ii50ÈPL6%/R(S'YwN\V%͉~1%_IHm hr?SOIF[e>ݛ6WYWufO 'n}K~Z⇦<=vvsy0jӬc$s[tL5m\cJ36-ή,%j%맵U=u3TJEƭaΉ!}ui$Q !UWy^XB_I6C_7V'"]>TK%Kd;?{Dߥ 34nҀ%fByy)-b[yŶ˓O7N=iT3IG}RZ\Kb|sY.h-v|D~|vuG f,@ϭۼRX2Ej}l$?kUS.ץCh'=y0bWlqUn~fv"/&ZS:n |NJ%y淗tX<6E-qaaGɈw[;{oeLH\:)~\Tg 99oZqѓsqbC?\amA6$\_{VݻFI-&I4v^tV[ qSY:n\lkwgG%&ӈ5E_)эxDw(=1}xu"B)g'<}Y[qNĬcx&ԑ-f~srRK}+[?('jotB3n E%w\;lrcK_&<[re~Qg/%jT(U>;}OaļM%qϸFտm5oNTC>!~/uVuZ x}f:S~9vIr{'$\ T~SvF&E~rڪkB7mӖɵ%2^) ޶wOeC|3{Wk$7]݂úw}Oq8LKȒN> w΃_yωXϪK\cEO-!W6wJl;:6hMɝ+OWKwmWQB>jidx^^}Q݆%e⣍{y[)γ&V[4?С=Fjs"yU"7kϿ;O9<߃lIr!E^-b O&s?e*r{LTw/"_tq{fΓo^NK\i)v͢Ƀw.j>ٹ:(uIx)GZ^eԬܬ_mǙIg_P,jsd`it_#W%K"Y/%KV;edI{I"?*.ah?7Ӓ[>NON49sh^Ȏ?x{EON#{ٔ{rjq9: ߪ\gDžN/'vǤa%#yaIIvh;ΤCvKLsE*gYu^"zN94uA~w fz?JuG_uLy"H.Y'1xb?;:/E^߼θ?~}\QV??QTv="~+g8QV52Bmvߥw<3َ9%~^A -xdž5Y>>]ͨ__hfmm<}Eun678巭OvJ^|?ܱ/iןrfM]t^߰wUF,,[9#ϣ3g=h(w>2k7:W|m~KD~[gL޼AvW4R]oq7<0o~\ [jI`{w,ߋ!Y' >jQtS$q]D :Fμ|˧f~3߭FsM8KI"3zed 7Ak?6{>膝n!o+h@Z;  ^YS+Jo\e{_] ǒdѭ|{oݡnCWJ gte<^C?䄿yoW-eybؿ#N#W=}+k;~q>Ǭ\,53^0v==kqޯ1V+ykB>>@3|{\#/CG`᫗˱W(^çMf<9n5ȃ6R4V~OA1^;Inj~#zBϠ|6<5#N9Fyk~aM܇|Nr+U׌ys?vz#}`f=ׁ~AgW \V8|Wb$x~!?Ɖ30;ƅ]9i:`1_GX>,R+6kر׏?M/{ }5~r9 E[3nR8GCw1އ?/3_m6M6Љq7 -c;B|bo}eO}}{ >b'F^m5; ݠ?ya^ y?0^Sd!3Oރ>W!؈ eXŃf^>J~#Ƶ~\bx~3N!C_;"_?gM\H~@.?8F^>wG+CKOW3LۡWa`]yX o_p1t5r a~|_&=p>\K{G5CC3ܷIK~z!OjqY>_`w?G }yv\5 HRVg> ^!]ǩ#6߬Co#;_ {}xKT}6z^8=<y7~=`:,W E{zȻgq2?%c75wOxoxerF>d^G(:k]s:އ<'[QV v{u:?g_`)f~vi|@~oīQgKOyz1zc_^yOUvE?x}At~<g\{q<ü?A,~{OŎ2)ʮ 6mƃ=qDnr{7<|]7<ۥp=~w B'_?1~Ɓ+`qsBNbnЕy 6|oBG)u٦..P;t՟|p= Ѓ$3E_O>}.rL?iM7 |鼘=  W_碷c|[N7q6< *:~nx?k[01:^$Uǃ?Qe젪g[y} 8<rA^Uׯ#8zV?x Wz ?J+U_ׁ[=>O|5a p#?|8#~nܑn)|#q'B7lqVA-{W ~Xpop3RR ;LAnG جk~F/t彌W;hW}>RrhvㄫCЇuzTߵ=JomRCx.x=ޑ&oa\ع*ojRF_<67a^+SeAwYYvU74r\7IA C|T8&:?{U|f/Oi"'Gh_xϢ^_]~o'Nx7a;z@? 'ԧ׼cwe8G/~:'!w_*@?)rhB'x7gN߫\^Z _Nuüu5{O!/2OzUwm}:.fq.7߭ʎ~H;yoU6S_S2;C>0o>樸Voҧ; O<#yM\Ά^A_J'u]ޏ~$q6qV>42zH;/[aoWQ_Qȟ2~䙾-r< }oUwD/K?WCGծ2;g{N!sTGnfA_ V{ooz(~`N[Fp)Cϓ&i{ME밌^0ݟR}S6a :z65oq[p$?p?O#,1uF}Fx?vO%9FN)=o<=>\GuQgR8V8;h] ݰ)gۙ8<˟}+nyr?o:B_oO>roz?f8Rw{~yk9[_-nPw)!y?'?>}[T߬=NSϼ&pl><[k~'_} zC{|莽| oA ]B~{c/NxI_4z+A^1/"/T }#Tx:߉@+-pq#ӗٸ@[0򁼃cmCM;CGS]ǯ8G[@zeJ2qVo7:>a/z țt'%MykԾ:?KA_,W쌓pr#/䑸&mybA0 $:ty ~\#o!o~zq9+T8܉!Gz?#<h/|Yak Nn#B=W_G^ / &.Ѹ@PP{v܌y>#H_v#uy[3ӗqWbcA' }nz xIo~>HznQy^oƼ+C8Y ;~< ȍgYG#'~>cg_\k]GupxƮGV눐gƥ1b?/Z';} ~"'ؿ3C?s?8GiFX\]LvWX~Kc_" DܥkWθ}gq/ą[ݏn U {Hk扜bWg!%oֱ =S4 }<!=r:d= ݟ ?5klns*_zӇگό]9O~Rz*,rNʷ:7uigt_*|u]q/>wcW< ucwtV)/ C8~Zg]?WAſUE@s;r}!MCgh{? =PUg9 2p"L Kzq;aGޠ-] !~oTqeW`f!u5yǻrK'H#bχOp ??|a^O+밼qL?4vȝcċT_nE;tw˩?^Fvx.7;}ЙOl?kGB} |v_t"G> [G_c b~fO Pwط@_J%/ }ڡ7㚧wQ'9GB/c߰Pz~\W!^?ou/pZ?hDž| Ӕd>_O?k$Y' =[cpWr:DWf/y3B@3>\1G|2 rރ~,3\7zv~ܰ{~|o*NÞy3 9"~dSl0tNx?=\o`\ȓ?nd+]_=v?%_?]޼??cz>?Om5mrqx$Z݊7(f[{s`~<Ss˞cNm1ŽvPGA/y2n=<oپO\K}'ǎ\490O]!|qbNA*6G?y7;Fw/ϣGqE<~Cgɗ`gr~e?-LS+oɥޏOӇL\ }*|۠z'ϡg_&aLJW8N__3p57/ /mfK]Ϛ|qV9gG?4֮Wq;|ij>e]蕧}g zc |_<g;qě6?`.`?_^JoSBW1~T#A`/ml~#?> G?/~WӟnE/"U0^pr8G7d|_u"?E \iU1uI5GQu7xqTvqY>sȧ/M/O;IVC{=c_%>Ǐ5qwȉƫon21]SʞB?/VW>ۿ-[a|!O~7zhm+%On LʎQ=ouݒ֭ԺI5te<Ձkվʉ]@mǪD<WJ+;zI|:Sr՟k?s,v|oWV8<"oa+ } #Eവ,;n`ΑWr'.X^;]Gn@/ !%t~]7rv v9B;qu=Ck<}>+'_J>obO7@9a5~/O+~ _e~Eᇩ I"}ӸCxEմ>!~7|D~?I~>~ȟ߅<:U8Um E.mVOg-]3y}U[s]nڼO%:Uob^؅}f\ȑS蹎StkƁ_ܠp>rfFtquv839cp q \omC_ÏDc{7/W?Cy`Cg{ 6+\8KGϸ5:/F?U^?'V8E_'x}CT|LQ~S{x?f*NOk*v|itVvOQy![WIkG~/Syhp$z81K[lyƍ}{T>z(xSm񙱷J?_c _m9*`:4 2.@ N̏8sAvKw@??vKl?'s֏BI:o*`刾eB>=sG}Xվ<ț }-5D=O b_sy3^g=șkT=ygz ԉt?$"o(?L{}fFly/tz?C"O*}z=Oui;65~yyt^g+'lRb<_ g2z~~<?6ϧK[P ';[Y Kɳ\>Ie]Qek(<#脊9wg^>uwth? n!<8s\G ;>)Afioy5# :7=G^TQvĻycM>࿼U^$9ϱOco=5yE~m}v wԳ,6!>c?x8W{oޯ2KTnC65gO^!}໔>okm|Gm[ȓ[LR8[[􌼫>vͼbgo6uSb"^ð#VooRq[~>ušn/OsC><{>C- ag~<,þz=g!F^w]?no4w^S}jP*Z{u_o[W<Z샎#n3Pw`|wSt!uiOcpݮ[4xY(e>Cz'{s'}X<~Dzk⛥ʿ ;?Ʈ58RE}Z/~F7"/\O~z}>q*t~/w#" }3E"߼|^O^9T>s+n[u}@2%Q$_ .yv#/B׀&y~H!_H2`OK_yFkEρO?%!=Tt ~Y~z/~n9o> }CB?bGԾ6n'[3v9e^~gx[_Zy?7/|=ȃGWkv61,*yf}v73_at\n>NzЇJO-_ì߱7O7;?8}G{CoRGz/tF.{^F?0G*Z533~?ymƁ?z칽?/t u!|u{?vHLc3xO^o ݑ_X[Ʊ'U{#c ;éo{:{á68 b|+9Gu{ޯʞwc*> RfmNu^C_@nB\G?wK3 f]W1x>NO&B}j+ue섊+!.#_ܢt\ʎ7}J#O1>;F۷i ;ƃA_я}^Q8Η}C fffco v?DGpT2~V-uZygPu>Pt?{~s/e?g#@Vrɸ ^?Xi;]_@ޖ*?;F]o!hdoWO>qVAw<6_𭭫]|O't_jy7Z;~`䙑o=\O]~2_<`5[f\!GvE&̺cn`ǐ ~oכ{>kgڏ2\ĝ6e䏾+S>bߡx/tWZ.mP5c  G~97 zϋ{ $dBK9ǸV*\Z祰qCG_j|c'y{|>>}!R+=K7:;|.z]xG|A<پc鋶!O/wkoZ_ װ߹AI5i-dUuG7[9,`%?_?7\ץ󇎺?=*}<\q} p]?*/> Qp5~]jWt<\~'?`JY]Zyワj?U}ڏ<=/D:~HYשVq(z';ACQ93W+ fp}bgc6䧱syiƁ_3xD5re~?]oW"wNvLޮHKAu=9Ot<'l+:k~"o>S~8ߑoO&Yq=O~[ tn/PgUQ#O^F>]kٿ|XĎ^#C3G ],ޣ҇s2Йyh|&o8Ց/7:oK>gtXu_ǙwjyH t }rj?d0~7'i/ȃO:Ocu?s7y)_%I3mTcR260n  @T#sxw_c]G=0८6>"ĭ<G}Σ~f\yaotG?.'gUgNSslCA<5Sɥ{ o۰ScZ^pc?]"玂WہTE rt!vCj;6OFiow_/_l~C=vNWpHYW~;T~C#X)1Fmwul=`b_誗~ob]Ez5}gG'QE]OMcT|g&|~ǓW}4Q/q͵Nd19AϝGMwO%țϲ8 ;A/pK>VI.-w=_~O^n >A=vXq Tߕ9/T >_]l~:Zn!g=ȍ#ݦ<6}c0jJ*>y/#7y|)}:~:N^|o#>`vAM?ez*W `Ӑ6u}GO1N<OJZGi6 ]SMmV;];< c}U@Jpne^gN:aA6r%Eȱ'Q?grk5r?+cK/y]3E?}*u:]wo1>߇}zaϱT'ck@p';ʼ|~~d}職'Bxv;\!{_'fw~V##rE:nyNڏ;}0nR1m=97y`w5: ^>y@ݷ ;)?@>둖>Oެ+7vG}BQ}R/.U&3Y#_Zm߇uX-3k}0<5{ȻOgaP |#:OQĩ;|D8z?]]@ȯ:[r?=RՎc/O}9='ؾW}σ^ZF?y\ ?}e\VٗFׁ OW~.AsYN[ANu.p]Wj}\/BueL~{ufgej;dyf}F>?qy"ƏmS}>}Cj\k;d8|Q߳?ot7 GE+3|C9ЋY|'})oЋ~Xz?>/௵`/z*~DC~[oЙ~c.?@yfIHFw?m8/?{_ǰ+~ף_'/8 tT\_K=j?3ty=סu뙉Ol}81?>3CCw'1z7M3s񐯢/F.ݷ[U|-_x>Dzj/e'd2U{S ]/F+d\ |`'s3P:unvG8s\10__hp Hƃ~DЁyx_-&~W9JROS~}%{/s}AOa{m@菄y3,v\XߛsY9gu?0ۗ۵m_(.#!O]Bz]'$#'e @>BD! 䛉*99'j},;_I󰟳Oq^d`^_ϡq4t/c~sY/@>&1,¾;U܂??gRu*5O3.TRg>{Gh>} !=q~2y u_+N*H{k#m{>w@ w\vޱ=μt7H;`?}̏sp/9~ngM?7BϸuUuy|o]Nuk܇\s`ES~;uuw@^|AO[@O~_!gzۗԯzH#_y`t͗0%.#jW7~~zo%<7f}\?T<}]>y#U\8~BbUeot;e }[|Nb{ ?lЌ惰&$z~4U n,}>%iʏ\𖊳A)Ag{V91~z3#j =`#uI蓭;ߨ %r@Ӯ_c*g?|^3rAN^ a?xϣ9ZqgdrC9"? ް~?jƣ9&?vJ#:5Coal<=}N0UDvOO oGvu .<[~#ơg1ƪož_y/=G;APaC/Sy#9<{U}'v<-_/!^zO5}c#c }+u=7S~ /+vWܰ>;4I]/->ѫI WϥԏyzE9r]Kp;j}togſpn *ooojP^T]xvu#-8Sܮ'tf,/>_/>_7~Yov+Dx^7ϵFoc ?#5=/:Qw}%;]^+f@nw~N%{K`gΫr^)!fn_".Ǐj=_g'<m4<ڮnXz!FN=țݗܯ/߼A WI?|R zC\>yh9v ߝA7k-=d_쓶UkP0ca? nI}P[Bg:1C/_!?ykG nTFC?w+7q!u }ހ LcJ*τ_gٿAg:Fy3ߡO?k<'w!ە&n0up΍O}Rȉ^ _'[+ywo'pȱ^ %!bm*o]DoCW,Ş?I8מku%s ?꿴ylSuYN<>kוS$}5ѐ#{fUx]|og=b덜u:}^?{)~TO13v$KW\-~& E7OQ϶}g~7KK!+U|} U)]Zϲ~Wa#^*:"v>uN?՞ec"v #w|7~Aƥ/gG?G:㰣 ~ C>c߈~>eK{'xw>: }!v]kkk]\gЃt_-$Ǟcg^0.qy>,o듬K7jw}=QkeQ7(?}"F~Ou7Rqӳ?:NPqv7Q#@>Bs8Ϊy\埈LNcO3/Wd\ť<S6I n59+h |vƾxo ܢ9a+8/+[/~)dcȷ;r]cc~b=ϵ~:_=cپ'Ud^ڢ:#Qu<y{?I/#Iھg =Gi%6ڇ_諊uyyl;ۼڏZgA\ks_-qWu%ve}8%|5aj?;ރ>|()QMpvu}A[w#ѓ5^^~f^џWc#dn/}Ľ]>?cgq̾6ߣx\`Nd ÎXM^v=`v|n3X}U=ꍟ4co:ovC!8_a[4zB' }^:튃{_aO:_?=ԗ? z@^9^RsJ:K܏7C ?Ď6tƮ#1_݇@~i}*L~S6? }~;OUWY'&d?CG;`~ܫ$ȋwsz#O'gF\`|kObp >|5y7 Vƨ|q |DNYA^z~eK}NE"|<_(?p;t:q/rt=懟>f߫Rl]gǂouL?.qz_u #gU?h1z1<_Pgp%q~ȁS>: @T_ݵzhvz !'>ۼ/^aO8;?<{| ~R `gf>7Xou8$tR=Qq}8[S- RF9o}}m=v_gUv=b'7 >~`/:~S'f!zp#^hp|%og?\jy>*7>=?1?D^7v?za+zқ "'̛㲸 ΍~̼'G7K,owKяF PA᫉٬~7ﶿX׍1E-=G!3l}?u{΋s]]"7ȓOQ~ź bN-0O7OT_ZPqL1^ݗM;a< h}>˲+wGчH n}:*u۹vSy> %"^uѶTG3$$[~2hz7Kp'~aWSgƏ@n3z_7Y/?~Տ|3~yz]OaO{N;T>Nqڼ5Zs'u00S`;'Ժ>k%m'f]!U&_ E=Ǡm_|g >zAW-t_ x?Aπ#cz=u_s7=䷰G‹9z7b1Ca'ucoSЁπG<{F7rG d.ޏ> z<1#;J+`/Ϩs"ty'.~{ݚd)zz A7ƍܑ.Зh9x|qrNe7-Tq vU?G_QwU4[2r"A&oJQȵ~>P[p>qrF~?+vX5_}!Ƈ\8JN_ɯ`6c u윷`'o "7=O[_ Ǜ~Cw[7_A>@&/>2$ߴ_kʸ^ވ|ͣyG=؏L'c֣bWu%&>>"OEՏaZ՟n/ďK_3.E^9=ul]7u#7z};^{8;x/!_u@ǵ_f9Ro7:hG{#Й Hd#`T}HU9ny Qck947)OĐNY?hCyƣ`cJIyE"6NC}[:Nhf<::_;&OC|^/g'_S/b7ݬs]H=C' ?ԃS/$^T䍑?D'1u^0y! \BǞ0.#_A3@oG]]XƯ_C 'Cz1r:M+*5̸~n&OǮb_~Awޏ~66j+e\PBOS>n*EbM1oao숩,WF7D⇱K}sޯ`i!n;z]e섕+7;`gvGod?/)sгjfݗx/wb k/-*Ob+gӿmC?7v N~/ap9<>VYU]y13>; 9G_O*`?-fsCBq=,m_khEK>?:OKH3us>mϟ3NUן W6g8z?N~sryf~ ܠ%{orP. l7xSoG||ۥ=za}B݇ε~7rw]}1EV{L\־Re::N&j_49'q u)W #TZı%5^ ^1?/zQiB/|#Rux{?l5}LYyaw/-z?hYzKGO5ޫu<ty"G+rJ^>I|E7c_e״_az{v㐇U:yC2VܯR}&9#G脝Bn/['Cuǿ)Y>tTY]_{+~As}t 1.얧}{%!ߧWIϟu!FO̾=z3]a RZ{D }ԙCqzO);z:p y2a^%^W| bG7:oe1D;D;:u6l?wx=WKc|Ɖîq3.XV;{d#O;yAOaȯA'گͼG#{>xoO QS{=ߌN}tӾ:}.z} ܠVg -w7>S?tUV㹎糯_Jߑ+ ~ ܇[]kcB/#N#[{WVO>YyI>' {BWOjȕ3@opvO tˌsv|ĭЕAOljyK_xuj}$}a^a#GCM e?p&rpze> u |@W쌲C:Oڪ73뜵<#g|z%s֫o25g?IOq3~]C'>7QxD Uރ1xK1~ \]#N&.'0ijNo{>۲/:=[g~_[Wfc27F'6f:x>p޷~dY&?>uAfq5tipWa9Y/2bGu>}9q ,w?=n_[1 =~^Õ=Sst<ӧ? 0Sj?b~#O(놷(Kޮ4kpr7t3C'm+5^i\x?ޣQK0}\>zq{ ;`=&n_џxIgeYπ`Л*OBo/x#prM+=헿C籏]-#'~v̏~>W2ɃZc#֏Gs(낍i8u$Wn oȟ`w* L䍼:yw}q7d_S%oωAovt7R~`k|v?Y >b=?Pq#]o#~ASYċLp^=8~8އ*<솙ow#Yo̾VaX߆}_"w`?X]Թz>R>uLF.kxF?p/r~"?9tV/P8≶ʯ7>?#o1v>V8 o{PC~Eh׍C7ܤj>s}\#50?~7ظU?vl:m8ߪ: 2~\k:u&N~=?p?Əbn8~o·^X>jao{EKˈl# ~=&ޑu1׻h D>p=~pr{R[yG5}u/U {FR׬~| y}.Ic\a뺟{S9S<{—)K{DEF➶^{~A0#!9CaT:yǠ{?:v;K\[$ ]~y<ߺ~zF_[Or< 5\GVa0o_4sp9uPc)`ޮ/47 . ߄?cn ._w8UU /ҟ_X?<Ǟ` z`}݌_}q᷉4}} }}˜S綯-'y@~{?o)Uܢp@W?/p}=wHL~@1.cV>̋x/u&>=u}B@GƋ_ z;s*W:#\35oc~z>\iCG g~&?y ⤢#I_S>=~K=h̿|>_ =/=~ʏ@_kZbmw}4?w_~=}]u|gf{=tސ` U}B]BvI?r =o!vz7K>B?8k7|Пq2nDUხaOk ~} pveg-|\D܈g6ooC _i=񢭷<2}ȉ3ױ5[x 9 A_mg#"o~'Αumϥl|]߁ '| ^I>ʞWZsƙ>~ z<ԉ_~&{haֿ: ;p>yzR#~{}291n;z}l=ĵ9^]h.~}46fvuE`v?'뱫)&B{O]4LNQ=*n _ l7 Pc\:_楮Cp,>'4t%TZGbOm/\x_ׯs~&BfG\<"?B>lTxz~#s''?=Rwhz_^km!G'Q7#iw2ۣp,rtXD;Aѕ7ֺk]/`p6q r (?:|ҿW V-:޺ǘ]~HsH?|;y*?8eGOa߂|3:n 6DJ h #tgu&~y]i 茝^чA; 7<ݯ}-Gf!.x+@#/ 8@y?K!oCٌ_%u! kusS/~*qqo ?X{!/ϵS~oy5*=y䐾2J~Tx#脝!96̹j_+ >rG _A; z7,#ȩ‘%ԣ y.4gqOzjopxvuDkqO}>T&|G)p^K@Gfk_}5rvHk3>{;&2vDx:;_Bo'c}߀-^祑oNwO9ujz<_3{;JS_7~Mcp2r8v; ;F/?UMwgs~Ol Ngµ=GkH^BjPg-uSͼ{Xa@ɒ[IKI$ʽ4'K,}ߔd3m]vi|Lߣc;kE|Jվ[Sӫ]>Ю[Gٯo~:W_u֑e2/ѧcGSߤۥ;OOv:tw.>ԯ~+e@)xaݙZk?hNmcmc/R/0000755000176200001440000000000014524737126011405 5ustar liggesusersmcmc/R/morph.R0000644000176200001440000001211213636316205012644 0ustar liggesuserseuclid.norm <- function(x) { sqrt(sum(x * x)) } isotropic <- function(f) { force(f) function(x) { x.norm <- euclid.norm(x) if (x.norm == 0) rep(0, length(x)) else f(x.norm) * x / x.norm } } isotropic.logjacobian <- function(f, d.f) { force(f) force(d.f) function(x) { x.norm <- euclid.norm(x) k <- length(x) if (x.norm == 0) { k * log(d.f(x.norm)) } else { log(d.f(x.norm)) + (k - 1) * (log(f(x.norm)) - log(x.norm)) } } } # rearranged by charlie # add starting point so we can use a better starting point for # the current actual use # also do one more Newton step after error is < sqrt(machine.eps) # so ultimate error is about machine.eps newton.raphson <- function(f, df, x, r, x0 = 2 * r) { f.err <- function(cur) f(cur) - x step <- function(cur, err=NULL) cur - ifelse(is.null(err), f.err(cur), err) / df(cur) err <- f.err(x0) while(err >= sqrt(.Machine$double.eps)) { x0 <- step(x0, err) err <- f.err(x0) } # if you don't want to use an extra-step, replace this return with # return(x0) return(step(x0, err)) } subexponential <- function(b=1) { if (missing(b) | is.null(b)) b <- 1 stopifnot(b > 0) force(b) f.inv <- function(x) ifelse(x > 1/b, exp(b * x) - exp(1)/3, (x * b)^3 * exp(1) / 6 + x * b * exp(1) / 2) d.f.inv <- function(x) ifelse(x > 1/b, b * exp(b * x), b * (x * b)^2 * exp(1) / 2 + b * exp(1) / 2) f <- function(x) { # x > exp(b * 1 / b) - exp(1) / 3 if (x > 2 * exp(1) / 3) { log(x + exp(1)/3) / b } else { poly.inv <- exp(1/3) * (sqrt(b^12 * (9 * x^2 + exp(2))) - 3 * b^6 * x)^(-1/3) poly.inv * b - 1 / (poly.inv * b^3) } } return(list(f=f, f.inv=f.inv, d.f.inv=d.f.inv)) } exponential <- function(r=1, p=3) { if (missing(p) || is.null(p)) p <- 3 if (missing(r) || is.null(r)) r <- 0 stopifnot(p > 2) stopifnot(r >= 0) f.inv <- function(x) ifelse(x <= r, x, x + (x-r)^p) d.f.inv <- function(x) ifelse(x <= r, 1, 1 + p * (x-r)^(p-1)) if (p == 3) { g <- function(x) { n <- sqrt((27*r-27*x)^2 + 108) + 27 * (r - x) r + (2/n)^(1/3) - (n/2)^(1/3)/3 } f <- function(x) ifelse(x < r, x, g(x)) } else { # No general closed form solution exists. However, since the # transformation has polynomial form, using the Newton-Raphson method # should work well. f <- function(x) ifelse(x < r, x, newton.raphson(f.inv, d.f.inv, x, r, x0 = r + x^(1 / p))) } return(list(f=f, f.inv=f.inv, d.f.inv=d.f.inv)) } .make.outfun <- function(out) { force(out) function(f) { force(f) if (is.null(f)) return(out$inverse) else if (is.function(f)) return(function(state, ...) f(out$inverse(state), ...)) else return(function(state) out$inverse(state)[f]) } } identity.func <- function(x) x morph.identity <- function() { out <- list(transform=identity.func, inverse=identity.func, lud=function(f) function(x, ...) f(x, ...), log.jacobian=function(x) 0, center=0, f=identity.func, f.inv=identity.func) out$outfun <- .make.outfun(out) return(out) } morph <- function(b, r, p, center) { if (all(missing(b), missing(r), missing(p), missing(center))) return(morph.identity()) if (missing(center)) center <- 0 use.subexpo <- !missing(b) use.expo <- !(missing(r) && missing(p)) if (!use.expo && !use.subexpo) { f <- function(x) x f.inv <- function(x) x log.jacobian <- function(x) 0 } else { if (use.expo && !use.subexpo) { expo <- exponential(r, p) f <- expo$f f.inv <- expo$f.inv d.f.inv <- expo$d.f.inv } else if (!use.expo && use.subexpo) { subexpo <- subexponential(b) f <- subexpo$f f.inv <- subexpo$f.inv d.f.inv <- subexpo$d.f.inv } else { #use.expo && use.subexpo expo <- exponential(r, p) subexpo <- subexponential(b) f <- function(x) expo$f(subexpo$f(x)) f.inv <- function(x) subexpo$f.inv(expo$f.inv(x)) d.f.inv <- function(x) expo$d.f.inv(x) * subexpo$d.f.inv(expo$f.inv(x)) } f <- isotropic(f) f.inv <- isotropic(f.inv) log.jacobian <- isotropic.logjacobian(f.inv, d.f.inv) } out <- list(f=f, f.inv=f.inv, log.jacobian=log.jacobian, center=center) out$transform <- function(state) out$f(state - out$center) out$inverse <- function(state) out$f.inv(state) + out$center out$outfun <- .make.outfun(out) out$lud <- function(lud) { force(lud) function(state, ...) { foo <- lud(out$inverse(state), ...) if (length(foo) != 1) stop("log unnormalized density function returned vector not scalar") if (is.na(foo)) stop("log unnormalized density function returned NA or NaN") if (foo == -Inf) return(foo) if (! is.finite(foo)) stop("log unnormalized density function returned +Inf") foo + out$log.jacobian(state) } } return(out) } mcmc/R/initseq.R0000644000176200001440000000016613636316205013201 0ustar liggesusersinitseq <- function(x) { stopifnot(is.numeric(x)) stopifnot(is.finite(x)) .Call(C_initseq, x - mean(x)) } mcmc/R/temper.R0000644000176200001440000000541513636316205013023 0ustar liggesusers temper <- function(obj, initial, neighbors, nbatch, blen = 1, nspac = 1, scale = 1, outfun, debug = FALSE, parallel = FALSE, ...) UseMethod("temper") temper.tempering <- function(obj, initial, neighbors, nbatch, blen = 1, nspac = 1, scale = 1, outfun, debug = FALSE, parallel = FALSE, ...) { # like metrop, ignore initial argument initial <- obj$final # makes no (at least little?) sense to change neighbor structure neighbors <- obj$neighbors if (missing(nbatch)) nbatch <- obj$nbatch if (missing(blen)) blen <- obj$blen if (missing(nspac)) nspac <- obj$nspac if (missing(scale)) scale <- obj$scale if (missing(debug)) debug <- obj$debug # makes no sense to change from parallel to serial or vice versa # size and shape of state wouldn't even be the same parallel <- obj$parallel assign(".Random.seed", obj$final.seed, .GlobalEnv) if (missing(outfun)) { if (is.null(obj$outfun)) { temper.function(obj$lud, initial, neighbors, nbatch, blen, nspac, scale, debug = debug, parallel = parallel, ...) } else { temper.function(obj$lud, initial, neighbors, nbatch, blen, nspac, scale, obj$outfun, debug = debug, parallel = parallel, ...) } } else { temper.function(obj$lud, initial, neighbors, nbatch, blen, nspac, scale, outfun, debug = debug, parallel = parallel, ...) } } temper.function <- function(obj, initial, neighbors, nbatch, blen = 1, nspac = 1, scale = 1, outfun, debug = FALSE, parallel = FALSE, ...) { if (! exists(".Random.seed")) runif(1) saveseed <- .Random.seed func1 <- function(state) obj(state, ...) env1 <- environment(fun = func1) if (missing(outfun)) { func2 <- NULL env2 <- NULL outfun <- NULL } else if (is.function(outfun)) { func2 <- function(state) outfun(state, ...) env2 <- environment(fun = func2) } stopifnot(is.numeric(initial)) storage.mode(initial) <- "double" if (is.list(scale)) { for (i in 1:length(scale)) { stopifnot(is.numeric(scale[[i]])) storage.mode(scale[[i]]) <- "double" } } else { stopifnot(is.numeric(scale)) storage.mode(scale) <- "double" } out.time <- system.time( out <- .Call(C_temper, func1, initial, neighbors, nbatch, blen, nspac, scale, func2, debug, parallel, env1, env2) ) result <- structure(c(list(lud = obj, neighbors = neighbors, nbatch = nbatch, blen = blen, nspac = nspac, scale = scale, outfun = outfun, debug = debug, parallel = parallel, initial.seed = saveseed, final.seed = .Random.seed, time = out.time), out), class = c("mcmc", "tempering")) return(result) } mcmc/R/metrop.R0000644000176200001440000000420313636316205013027 0ustar liggesusers metrop <- function(obj, initial, nbatch, blen = 1, nspac = 1, scale = 1, outfun, debug = FALSE, ...) UseMethod("metrop") metrop.metropolis <- function(obj, initial, nbatch, blen = 1, nspac = 1, scale = 1, outfun, debug = FALSE, ...) { if (missing(nbatch)) nbatch <- obj$nbatch if (missing(blen)) blen <- obj$blen if (missing(nspac)) nspac <- obj$nspac if (missing(scale)) scale <- obj$scale if (missing(debug)) debug <- obj$debug assign(".Random.seed", obj$final.seed, .GlobalEnv) if (missing(outfun)) { if (is.null(obj$outfun)) { metrop.function(obj$lud, obj$final, nbatch, blen, nspac, scale, debug = debug, ...) } else { metrop.function(obj$lud, obj$final, nbatch, blen, nspac, scale, obj$outfun, debug = debug, ...) } } else { metrop.function(obj$lud, obj$final, nbatch, blen, nspac, scale, outfun, debug, ...) } } metrop.function <- function(obj, initial, nbatch, blen = 1, nspac = 1, scale = 1, outfun, debug = FALSE, ...) { if (! exists(".Random.seed")) runif(1) saveseed <- .Random.seed func1 <- function(state) obj(state, ...) env1 <- environment(fun = func1) if (missing(outfun)) { func2 <- NULL env2 <- NULL outfun <- NULL } else if (is.function(outfun)) { func2 <- function(state) outfun(state, ...) env2 <- environment(fun = func2) } else { func2 <- outfun env2 <- NULL } out.time <- system.time( out <- .Call(C_metrop, func1, initial, nbatch, blen, nspac, scale, func2, debug, env1, env2) ) out$initial.seed <- saveseed out$final.seed <- .Random.seed out$time <- out.time out$lud <- obj out$nbatch <- nbatch out$blen <- blen out$nspac <- nspac out$scale <- scale out$outfun <- outfun out$batch <- t(out$batch) out$debug <- debug if (! is.null(out$current)) out$current <- t(out$current) if (! is.null(out$proposal)) out$proposal <- t(out$proposal) if (! is.null(out$z)) out$z <- t(out$z) class(out) <- c("mcmc", "metropolis") return(out) } mcmc/R/morph.metrop.R0000644000176200001440000000421113636316205014152 0ustar liggesusersmorph.metrop <- function(obj, initial, nbatch, blen = 1, nspac = 1, scale = 1, outfun, debug = FALSE, morph, ...) UseMethod("morph.metrop") morph.metrop.morph.metropolis <- function(obj, initial, nbatch, blen = 1, nspac = 1, scale = 1, outfun, debug = FALSE, morph, ...) { if (missing(morph)) { morph <- obj$morph obj$final <- obj$morph.final } else { # if the transformation was changed, transform the last state from the # original space to be the initial state. obj$final <- morph$transform(obj$final) } if (missing(outfun)) outfun <- obj$outfun if (missing(blen)) blen <- obj$blen if (missing(nspac)) nspac <- obj$nspac if (missing(debug)) debug <- obj$debug if (missing(scale)) scale <- obj$scale morphed.obj <- metrop.metropolis(obj, nbatch=nbatch, blen=blen, nspac=nspac, scale=scale, outfun=morph$outfun(outfun), debug=debug, ...) unmorphed.obj <- .morph.unmorph(morphed.obj, morph, outfun) return(unmorphed.obj) } morph.metrop.function <- function(obj, initial, nbatch, blen = 1, nspac = 1, scale = 1, outfun, debug = FALSE, morph, ...) { if (missing(morph)) morph <- morph.identity() if (missing(outfun)) outfun <- NULL morphed.obj <- metrop.function(morph$lud(obj), initial=morph$transform(initial), nbatch=nbatch, blen=blen, scale=scale, outfun=morph$outfun(outfun), debug=debug, ...) unmorphed.obj <- .morph.unmorph(morphed.obj, morph, outfun) return(unmorphed.obj) } .morph.unmorph <- function(obj, morph, outfun) { obj$morph <- morph obj$morph.final <- obj$final obj$final <- morph$inverse(obj$final) obj$outfun <- outfun class(obj) <- c("mcmc", "morph.metropolis") return(obj) } mcmc/R/olbm.R0000644000176200001440000000113113636316205012447 0ustar liggesusers olbm <- function(x, batch.length, demean = TRUE) { x <- as.matrix(x) n <- nrow(x) p <- ncol(x) storage.mode(x) <- "double" if (batch.length > n) stop("batch.length must be <= nrow(x)") if (demean) { mean <- apply(x, 2, mean) no.calc.mean <- TRUE } else { mean <- double(p) no.calc.mean <- FALSE } out <- .C(C_olbm, x=x, n=as.integer(n), p=as.integer(p), batch.length=as.integer(batch.length), mean=as.double(mean), var=matrix(as.double(0), p, p), no.calc.mean=as.logical(no.calc.mean)) return(out$var) } mcmc/MD50000644000176200001440000001314514525512623011512 0ustar liggesusers8aeac5b61cba025e227c9cb4be95d355 *ChangeLog 1fbd5c2461bd9d5dcb7afe902ce9452f *DESCRIPTION 66e0aaa6082a6fa8bd0f666e544a98b0 *LICENSE 3ce192959d88fa7b864f4f7e9c3d1a9c *NAMESPACE 155b2ace5476c068fb4814b8425a47ce *R/initseq.R a4f3ff60caae1963e3416255dfbe49b3 *R/metrop.R f403046228ade5ac29a4f8f0bb91aabf *R/morph.R 4b899785af3a35a3a773946c6f13b4ca *R/morph.metrop.R 32904f94f9bb3c753c588bf823fe5736 *R/olbm.R 0aa475ed05a74d76f972363e662c1ddb *R/temper.R 231cb6d08b0bc7069934cb53bc1d4830 *build/vignette.rds c13cfd5bf58c446f5aa035cb7611c3ed *data/foo.txt.gz fd9bd39298983c002e96c9e7373200a8 *data/logit.txt.gz e9a42dd6281a9fafded00cf37ece0474 *inst/designDoc/Makefile bb2ba2d13ff2fc81e79f0af3f9ba8ce1 *inst/designDoc/metrop.tex 177420ab597fd25ca27435d726117a89 *inst/designDoc/temper.tex 956213f24432024d8b740a124ac3f1d0 *inst/doc/bfst.R c570da586718067be631cba3f3a35ad3 *inst/doc/bfst.Rnw 9e7634662cd84193cd8ec828daa516f1 *inst/doc/bfst.pdf 85f1c6719e9b9dcf3b56c6eb016935ee *inst/doc/debug.R c5d145108c9efcff74744153fc68bfe0 *inst/doc/debug.Rnw 59e77ac4cf10465aa6edcef4adc22a1f *inst/doc/debug.pdf ba91a6a50a2aa2329a04f0a768e8f557 *inst/doc/demo.R 702f0db1f8473c6af0dd25c09cd44481 *inst/doc/demo.Rnw 5eb86b66ac2b7cd5ba02575259795d0e *inst/doc/demo.pdf eee3eab8bad54767874ff95db49780c7 *inst/doc/metrop.pdf b42a89769c3de7e95b38f09dc79d3770 *inst/doc/morph.R 018df3c12cabc9de877013fe309d7447 *inst/doc/morph.Rnw d4c84f9a24db162446c837ead2335d11 *inst/doc/morph.pdf bddbd4104ab4dd35d879d8966e43172d *inst/doc/temper.pdf fede69d8e361ef6548637fe54060f709 *man/foo.Rd f77daf0c3cd0922e649a4a6c03a362fd *man/initseq.Rd 828a4296b11b5041ca9ab38eb74c8b2b *man/logit.Rd e51e0458b612615ca3578e28f048cb01 *man/metrop.Rd 7f8ec860609476a448d615d70ff074e2 *man/morph.Rd 656dc31b07400ce3202b0719692b6fba *man/morph.metrop.Rd 7c7a9b03f5b124f4e7b8199c1df65e0b *man/olbm.Rd fc0d99ce4848be45d4d5dc9125fdc967 *man/temper.Rd a84ff979fcebdfd681f7bacc511a9dc3 *src/Makevars 7af348c402a68bcf2bcedd2c87ce4aa2 *src/getListElement.c 6fecff8a940cfa809b45ebb1523c0d87 *src/getScalarInteger.c e1c4052ef70efd7ece2693cdda8eb27e *src/getScalarLogical.c ca127a858f1408883f270c294e48d442 *src/init.c ed445c70ff467c056b2243fdc2ade515 *src/initseq.c 9df5ac56584e97897a7ba7c10e391ec5 *src/isAllFinite.c 94f2888f854ec400c97c16127e7e5991 *src/mcmc.h 8611235900158b3e47908d47d41b5e24 *src/metrop.c be70313e2880a45c4ff804b31a18aa2a *src/myutil.h f67bdf45f0c4f15f6d0479720f8a265a *src/olbm.c 3ee0276e06665c1cab8cf952ad9e8915 *src/temper.c 772ede8af6bc2b8753e998f5cf39edc3 *tests/accept-batch.R 38d56fcfbd5127790b8002affff4ca58 *tests/accept-batch.Rout.save e9c528ab360c928e287eb3c270a36d1a *tests/circle.R de2d7eb390383e8b407885baabc8530d *tests/circle.Rout.save 69a223dfcd84709426840121dfa70f94 *tests/initseq.R 39f74eacc7ab0db3f80491f358d5ee30 *tests/initseq.Rout.save 01f734e085fc75dc37615d76381f9568 *tests/isotropic.R 7b1a10898e9abe34fab48f6c43aa51a3 *tests/isotropic.Rout.save 5fe93960031dba80fdb06f1827e76e4e *tests/logit.R 6346516bbded801d6887bcdef0b48204 *tests/logit.Rout.save 71da3a3de88fa0ebcd08946c04fdd7c5 *tests/logitbat.R cc7e0f67867730c8136246a2f9235d21 *tests/logitbat.Rout.save 5f9772f24112284aaa4f313f960072d7 *tests/logitfun.R a3f75f90b93a18c1298dedb39dc95feb *tests/logitfun.Rout.save 438213a1a5a7bd56a4886da86a0790e4 *tests/logitfunarg.R d767fed6073d5fecdc0d7ad0e350a426 *tests/logitfunarg.Rout.save da2e4c5be51f024f6e38ee65186d1965 *tests/logitidx.R eac35a3a59cf440e84a0ad84e3981b35 *tests/logitidx.Rout.save b30831114bd7e7aac93f4b13a7a0421b *tests/logitlogidx.R a39c2c5decbd474807575b316b1ee596 *tests/logitlogidx.Rout.save 1834a932d11ee6e6fb64ec1d72131f28 *tests/logitmat.R 4fc33f5495c522bb20883059a3ac87fe *tests/logitmat.Rout.save 1ae99e4fe9d2d4b98afd42f9551a469e *tests/logitnegidx.R 39f22e5125178694332bc9d1653c0cde *tests/logitnegidx.Rout.save 9d03faf7ea8362ac09e88e042faf4043 *tests/logitsub.R ea65e38e384696c876020060b1ddb350 *tests/logitsub.Rout.save 8bf6cd46815f06b651ae32382bffa742 *tests/logitsubbat.R f39eb9a42c75ed3915b526229a3fff66 *tests/logitsubbat.Rout.save ad619a373a6ebb3502608424e266d31c *tests/logitvec.R 755c162ee12f89196ff8a5e527856235 *tests/logitvec.Rout.save 850d625fead9ff993eb8daedb9701742 *tests/morph.R f71816a66c639975e79cf40410c22037 *tests/morph.Rout.save 22f5e0b4adc734ec63ffc8491500b244 *tests/morph.metrop.R 803417a95108119bccb2c448216ee59b *tests/morph.metrop.Rout.save 984594df82bfcbac4479d524237123f4 *tests/morphtoo.R dbc222dd8db7af358381261431ee0f7c *tests/morphtoo.Rout.save 81c5b299d1b20a8168a25b6c9d209f2e *tests/saveseed.R 1d84beebb0113a970da2a3f337c57ff3 *tests/saveseed.Rout.save eb13e0e12345cdaa38d2625f813b5ac9 *tests/saveseedmorph.R 48d749cc35ad957b44a12cf2d141273e *tests/saveseedmorph.Rout.save 5b83e074fcecbc7154205d007e49ff00 *tests/temp-par-witch.R c9754a398ff2e2b08c55822340b43cbd *tests/temp-par-witch.Rout.save 56049dd3773bb26e0f7efa8e4e3801d4 *tests/temp-par.R e90936113b152f6e7db0c8e4c6eefa7b *tests/temp-par.Rout.save e0cdab5f26ba0548eacfaac87368b5d5 *tests/temp-ser-witch.R bebac06312e39a1df0e94f7f0fdf585f *tests/temp-ser-witch.Rout.save eea32e671b8762f7787495bf053367ce *tests/temp-ser.R 515552d46bafd7112e0c6be59c5721ca *tests/temp-ser.Rout.save d72afc96ee333051b49729894cdc43cf *tests/zero-error.R 3dc3ee3a5af2079409940c85b732bf65 *tests/zero-error.Rout.save c570da586718067be631cba3f3a35ad3 *vignettes/bfst.Rnw 9020ac34c43c9a166b7e6529f3dcedeb *vignettes/bfst1.rda 16bf2cf64bb79d5d3c7d69cd596fbebf *vignettes/bfst2.rda c5d145108c9efcff74744153fc68bfe0 *vignettes/debug.Rnw 702f0db1f8473c6af0dd25c09cd44481 *vignettes/demo.Rnw 018df3c12cabc9de877013fe309d7447 *vignettes/morph.Rnw 584ffd92ffbf78907b1f5f826d0f8196 *vignettes/morph1.rda 747e3888d39cbdc4a283e69686e0bc20 *vignettes/morph2.rda mcmc/inst/0000755000176200001440000000000013636316205012153 5ustar liggesusersmcmc/inst/doc/0000755000176200001440000000000014525055000012707 5ustar liggesusersmcmc/inst/doc/temper.pdf0000644000176200001440000047535013062557432014727 0ustar liggesusers%PDF-1.5 % 3 0 obj << /Length 2046 /Filter /FlateDecode >> stream xYK6WHUYޏ|H\MRIqF%qBQL~} EЌe04~| ~?]Ǥ0zYmbacFzO/-N6˕X/](rU[n~Ӵu^zz _YAcdAYDնlwzXJ#bJjUsŖ : G[+8fJ۸J%4"+!(ʶq(^M:Y)- Us"+:Rp8R}?x~AEX?|Acg5M׬'0\ Ō$_{:Ⱥh^m>v`?DM'bsC3=~)R]&.'f i \`:v_?1T!eS*"pWq+@PT꫶>`M}́BrafdY'L ]b$h.gf+{#<xhv 6n_NN+aX{Tp 7$"s/ !6vS+I3 OP[ةgT=V?~0uoSp_1x9jOtd|T2.5z% JY5fNftV1ZR)CFsj54D8첾™Ǥ >/r l J狗31l,W1&aŠ~˰!1u3?ޕy?"3Fs Kf &ΰC: >nk-F G%Mcg/[I; >IBk4gDΜpF {6pfj\Yk>g/ɳP@jWE@zY̚$ gY@&B=S>UlT8̸np* -T<,t]9dJk׿qgyH浟9;hP[0Q@Ik9@9'>s&ø!T"MWRZʢD|T $¼ #"<-J%XV >-0i`uNQSj1{l,5o^>Cљs1 f4)Yש$)2|c?9DJ_(3@MaPX ͥҷF勉 pJ%$} $iu״)n^{DGICŐ']/)$enۜ@m0hFv+} +49rd0|bPKm6j3L7jc|I,B܊:ćK\(+ HLo}ޅC.FB<> &l߿gvl}VIzh*3|00 )_,[iuAl|Ҩb|#a,ǙOob?@P"f麡)UdzO .5\LlР=?s #%=QՑ~!tYLL6T¸TD]@sz1&D$2`g3g*$pMPy\g@`?^p6 )A}ax& Q}! endstream endobj 20 0 obj << /Length 1930 /Filter /FlateDecode >> stream xYݏ6 _Uբ+0`@lnwq}#E9tvݞ,SEREzaf3ǝ-fBf]6K`dzgrB2KEo-u@u t_l/ іwq"y՜B$"b= ZZ<㳅PhGj 69Ì >D55~E@gHHᜄ!Vd cFIJjM]8'umy˦vHPځdIo/*3RɁЈM~8zX;T2ʎ5ϰͫd=ND N+zo=5vqJV+ $F]Qweqcb*nm^7 }NP'YSU _4Kp<L&+mIa+0;{D`\B4HŴxVejP ?<ozUo#pt:q,=*t:{Og*i b?-OPJ5  k@(n ;k-qsV7:5aPayM:T0׍g=}2dJYGfIk|> .t8G1bIsK_n$ujWXvIyC CUʒ/d";s{W'/Dlořx1 r6bz Az$=R&I8QdأN/yzFV2e 8+cZb)V7Oyԉc3[5\ti>ylaY\eWQ~U^JqҨL-\R.@E0 #-P`C HvP;*'rۼ=dDtMUŒko𙒂*Z_hxK*.{DmNӲ~p_{ L Ąo -*P+^ ]`-R \ܲǫ:o#)jUdz#2%* f-U:_]zaG F[8!LB9I7oYpb=ߠ- _.D^ (" Uת;Kn.wSl1HI0ut ?1(4ӷgۀ뇷l=6o> stream x]۸}{O2D=4\k=hm9fWI&JzEŦFpgl#HUlnharɴ($~.5:z[ko?J\LeݩDEmSBGp.3?fh(QF Nx:eR[TOù+ndKBksw@92:xG$:7MEUP6 M,zX۝6=psѹykSТ91rؕ% XGu 9&]8'0űx*Qpm W20FڨWi/T"-;*l;8wfNBx ۭM#8 \Xt%|ւګ,/̍u?x8GsFMW}ٹP$saZ cvG>C!A"(n'`4}XD N2U3`u]G<],5l|)>c;ɅIl#1 "D|D>#z+ MHs1"&6rX7p#o&qѩ*7^⅂HF'`Ym|qˉX"r_C.vVx:K6ѰERaے :Zixo@p( w^"Vj3hr{d( -@A/xlqԐXQS_ ;  m )`w.¥ЙR"NJKeKK25ϰ} w6F}/ &yiLe F5?+?Lw P &fJ@0 q:e/=0YB\Rqmj?nCigĠo5XGpB nTvb}t3UKk(žQ%B%Їm89$] +ffb+^ۧrn/C*%E>/!8 jf}[w *N25T:8K/^* *)9ۢ;ޞ|%1 DoIJof:!Rwc1\I)TE߮id$FXKG6Z$E dr,*w^nqM#m^eo\0Y*Ο̷q;':h+*8\ `GX?4d:5@PM7>_Үmߤ\d `` )49?Ȋ sğm]8Y`¹z,de +XpfvOnoO+|sǔ`h@}>\ͧ:#{tcm#fO}(Fj~V È$l.r5i_''8jYb%X+k BI}.:opD[qY&`сշ5?nu*b!y 4:Dc75M\fӻ3oy ^ޮEPd0|́E*w9&:4(w7Ewr%W8Lڙ|4֛Pۥ`

!9,~q'{7Z/V,::WW' 2撩0SBy|{Be*j6Ctnƴfĵ- 907厀IIOqdxx:J]x.>Ęy5~8 #<4:zSS©h\_z@88RK@څX1w}ԨjpO˪Ĩ>3=I͗Fx?kxX\9Bz:ƑΨ 3D= 0  ލR肹v endstream endobj 27 0 obj << /Length 2317 /Filter /FlateDecode >> stream xZKϯrR\Mb $rLkݯ՞*N.#6U"U_Xx|yvq.33]v/fr\g?wҦߨ)ck".ko\*﫦.W8y[<_fsas<Ͷ/CdKǤFp"&\d QyPp&_ߧ ;ʦ\^:A2$fseeSyfs،I-aCɴQmrjMO}'L:ҏ3=BHOd>;u|Iig߂pؕ(tqμe ((|^GV3B$8;7̃`G.pv!LخzNBA<8QY溘fD=_vYo0-TܢժZljy%vL؀0p9 GCmQSaWD.+Zgqh"K8oY0i X47`Kc;]1zR4oh(i*2ppblӞp`ƌXBNqT6O(_5yM&ι6k0W}mS?ZN,♪)IA4;!O|`$R53Bp>G텶 dS}m 4*@ :0HlS?hzn6<kXohyN'bB@(>TWJAoFʻ^dV*Ӆ*ǟ^;d7@ΤbR)w|`W NB*7otV3$5/zϻ/3rU?`0UuAmŁ5h+(hLVFν !k%zX(I!W븵]̌$ + M ]-]oGFs&򾩟'y_h lC֠FTST~^bx7}Қ9HڝM 6l^SSJNHTeE })@ef0B3C\!Ԯ(%`s^u7UfҀPяzgYLHqI)VsX HR/HVөP@?͐r}H8!]Y_!oʮG[eC[Sb&u;)8a94t'L;9̩eHr Aʀ0șz۲t{"AYRO:|8(6*edva4ۇ^-j .ߣO'` ̛OR))!ehxc^F_5#qe.H'\'WIr PPL[gry_leȩh퇖6kSш{II\jWGGr?IӅ†2hzTƑa=G^\@+LZK;@hb7&o6)eyhkp !LGʈ%" ]odpĭ7!XEt~?6+ endstream endobj 30 0 obj << /Length 2425 /Filter /FlateDecode >> stream xZKo8WiMf1'H6ArnG緊dIVwg]"QdQ~*+*#X_FII/_rL|]\8/>ٜՌ522Ưbyf vU uӺɋUK_,+_x5e6g:.7y=Y|/ :v&J9D Ze<+L I07poP 38_L &%kT:)4: #(LJWԬpãLڙ 1DZ1`"t'P/h4Rߒh Z"#FJ-ޟ9n,Ъ0U zTߪ^DŽBQpYb2sУZ b"5 -w |T S,a$ihо uE¢*؄8kA 'd4,BįfΠ6d[)iN0K hM2ځ"QΦdiyUL6> !7O͂eerAҶ#%|z$́pӎ ĈЉk¸$̂@'% X }IxqƜE ]y,I龘A sHcԠJ2Q+eq[xRI=`=N841-IyIG&OZ~J@-Q8Do ~yJ=!J=QvDxpn+xiz_[K s8  6b^QTY5{}aD=tN't떏?|_̽¤(>ʯ@xM_\` jK|0$TM+{u XyQEY,sԹ:& J>r Kbר&2 ?UN)'F&!p2;_Sdj_YՁrRT&؝@S&zM߽gvgW'9_ gFζ,; ,! Lb,lO+90 ?}}a#-}0KR,l+ӓryb*X3g/}HIט9&Z>9 pȇ}3G@LT =1񞐶 `a%|Wׅ|?= wΈz&0! -΋eJ8BTJ3%ݟQ}p܆۴Z{co/FGl ao_TL9͟&%ǩmaut%AĘp4Dl߼ ? ^bZ] 5Pi׆v!рWi:dΉf(s7&T,Y%wX QVMWuX\TtS#F-nwl\nv2C2 IΏN&֕s!b+dށ-phy<$ XX˦r/l&k`Wg?0gVMη&67~]v! Bte~$\ٍ3ZazfMƽ}ZK!hd0~ |0Z6o }N\N BtrݜA*"]5~Ok_ >iZ|Qñ,4I+Щ},_9N:P7*)kqAs_EU󩿕.vYh/*87\E6n 5yzx;ׄEܶ'-uL cyqnPZ/U>3JR3KbYzi :,} MC +VHUՂ endstream endobj 34 0 obj << /Length 482 /Filter /FlateDecode >> stream xڅSn0+t$wp ua j/iLL"ϗ p88{Tnn1/ptqQ L8ZcD*Cqvƻ.|kX2et`0(K/(?+^aI8qpIk#xjhѶgX e>R >Xg'cwȀm(1EgRp'Z7; n3y1ϧ=!W+q~H.פ)5:$XX_˂I^28~a\͍@4NJuܛM;33#BMX36cP1ē'+ΧT\in0  w`t}7ˌC9 W#Gomi;럞kML@ FJB-oƤ K?WY&Z"I^׻'Ac?.K!yڸFbZ wh+*jiQ2f,E 6 endstream endobj 49 0 obj << /Length1 1439 /Length2 7314 /Length3 0 /Length 8283 /Filter /FlateDecode >> stream xڍT6  R =  13CR Rݍt#/zk}tla6`e+PВ7 p03@pf#0AB"1E P ;||"⼼~^^ apq"b à`w@`D8\ph` 3@Ut ap{i6N'#p-wm ָq_ }g EܻCmp}v&+_/p{q@0W AgʚH/$'mtF@3O@.x!@p+8wkV*\\P$w}8t< #Av۰uw1BjC8H//({x~'0vQ{uC8}SBl(ο`!^3{xug- o?#QS6)a^_.!a/OX r8:@u{d9;6잹`뿉n+ ?G+Rvwvg@g;~ `_Sc_+s_x rP{]# @ n{ќ!P xyGw] q?*wJ%(f{' Á8C|h b7w7q~OTHx`!ߏ{x! 8;~s_? pa PǪJ9jOa MT6.9g+dw/r}DJg 5un6pfGuUwbpnݺ;=h@mUgvs%%T*^|9U!{S<0<`9&c!؋p|$kz<k|_)R~D*SJg$c,;o)f| ?D/KdD·v&LiQ1PC҃4[IeyFmSj,0BrB H-~ -vCVvXJq.tRk-7yJc*v(_浟=WC5'W~._;qD)tmtjv9VY"DrS|+UO]"sA^ٚ0ЌuLf|+Y=$9֋R}k1ɝh5:D#.xC0S+^o=O1%͒X;8-U|*؛0h)Bo6S(fO氪v8QG[ؑ⣛hEOM>T#PG8.SI=v~QD:D\.g;V汮[QtK1`3ק,{ʊb*LFMN}OJ4~>%tLx4yDƈTEZeK2gP yJm; *+o\1uP?7k lXSZg A6uXQVJ<*XCG[;b(af1'on1w1ywEF,YhR83 0x~objWE3 h1[bR`J[%ٓtcO_~~ƩM27XQ"V)ΙCm+1\RN} Mץ,O eTUQ!;kK TP^.9y ͟?~ll)Z++HͪfZ1셏ӂ,BSF2cp&u T\EKvb%KuJ%r @Z[zE6\58`9y@B95)0aGcA@#65⻞-|1H}4-*7Hkts8mPV'!-{Ɋ1՜M'vI-[P2x;~:0=(Yv7_ݙcUWb8nYluyp#ȋڟ;V|}Vݮ9SK E_VZMfoQ9'˙$cԫ2zߦC˱ δ#DO[ͦ? _n/[\}4RG磯ZoBa7Ȯ6zsEQ^g,M0D5J/fe7Yv`6>c#4ՍTgMW>0 HWN2FWRhZvCt)Ɨ2\+ܘy yC;ܘj D M ̜N[_íUyU+J/\b|iW\~nf_%~tZ^Ź*cz\/uG#>?:X7R2spK+X!z'N- ak7mc]1A4_3?] PQ6ZŌeL_GCg_YD5Q.`qQU6W`_XEY2k:Fkl]?jng&r}=2+LN-b~F<*_x$EejcLGi`פ3}+zeE|fZdmEM֏!՚(Feba< jh\:ʳϋҕb|xc QR96cyu\R詨XabV FLo=SۨoY_A:I)C5|y. E:e\ld]S~Gj~8(d)X[ϨZpLL#Z|:RI;ٽ9n=BSԺ1R\"G{ 3j;>Ooo?U߽$[wZi1RPZ 3 +Vc͝SQ)  %\g3g0D<F8`Ca a L V8OXNn椾ud -pz+D_-qFwC l/k=ww l՝Afy:.QGon_RJꁹIO5l4 iM>SX*QHj&>+z\$.3v3~ vt7V2a0 TurQZ1w Xb<%(6jIM|65I E#c ' #Cab^½4T!OבiKcܯ jd cpt * NHөtT2eI)>')5Hic Ҙ}7h\5qʣ]r4YWl#xvA=+V-% ~ZN,©LpxW|Lƒ7 j& |X/6,oi'i}:0ז%,b)gX=%̹kRN2IeKuh W;xg72 j&*&מ*Pޱa? dT1'>qh._4~zGWSJ˗C0fi # vb-JK ֝";^飓Is΃\2UA7.ljX'2]O*N5gZpBsbF0r]I(pL%_-GGcx >:? YIL-w1ǔ^=p3iQH5pAaV`,')ig=]R\t8 AJ>IN06BSlex7^=+Ux Gs T;7@FAg\Mݟ$?S$nsP9V\\jS->R%p^G9_7=OQgH>OBf؛5Ǧ](21fBSDƴ/O8ZCRv\ 5wN':k4Z9^ I~ 6LayK)1i׿j$뀑 3idR͔Rn0~HH6Z^떛{A#*O|4bs;'5s`x]pMS*|49qnI4 4^ZR'qZolr_hx#.hqDr'U1u/꾸o5 @nj 575WbE?GD!;3+Py †dܕ[tx{)(UDlC] 6T=!}''dXo$$,J -цbaD5d墰s۸ZМO=*COs[aYYfEqL]Tp%`Y%-Tn b \,j`yV*VԜkڔFخI,տy[,ֺʔ?zgu4/ cwCNweJ;G9LqڠX]!}DpgVL^DW;٦D-aI׼#2 4SX"=\ ׿C(anm+[zo?ah?k7![T9T(T|{"D\KTnZӬvF0έȭF]'㜌%4.׵Z$+"twi_kfIMYs&)uHP"6O]<̖VZ$kbVgNV7僋4VET-8*2?֨3kDw V\܈+q&v\, hᝮ"v"yHG?Il&\*H'Y(*~t]B|7{c&tןî`>ST,}韔Lr30ey~ޙ6FM?.:vpg̓͜Q~@Jʯ~[ A1X3S\A?C8a;.}fn?;RU@D U@ 5ŴB8;["tOїQCPim+jhRl̟by/Rplyءm [N ݧBb4pWx E&4*k='O݊}pC(^JU|$(:3?5l[ -juƑ.OYEv6 {l0va>eqy8 ԉ%|Dy#!s2lPC^G~33L{͇1}}WDΎgbĆV!LS LՅ%2\41R鈣 펕4M4;w׊ I`>6Y 7i 0v`G ٷ5vi ,zˏ>H&68c9+o # sPy'9(Qͦ{{{U1=ch3ZH@Z!<2ƍea+I7z䜆P Pȴpze_ ?QqL* 4}a_be6=,sW׷ϊ<vVtSŭywj˟I[1{KHup w$ϖ7QH0cKWP3yŖ#==C tsNԃ-;thMЅ~u07YL.t]$2 *#O?,1A7bKJD,ٷ/>&-MNh? endstream endobj 51 0 obj << /Length1 1867 /Length2 11955 /Length3 0 /Length 13118 /Filter /FlateDecode >> stream xڍP- A ݵ&4NNAK$Ks̽_^uUwkoS5:)HΙ (`aagbaaC;ۀmGAv|ί6 k@`cca;L9{;Ͽh DmAtپv4 g*A+`ub|c-j 'dcdhLH Kӿn@j^S\Akw@d`0:+G!ݟ@33{[#l(K)09;3vm_@ 5O@*:_9ANLN`?fd1Kڙڂ윝'^݃kmgfod3c sfM; HV⯘W߶ g' 7/Y2@ >^1@>` p|o 09LAvHW5,_?gy+*?1_#)&fbd0qXYyܜ,Ń\Y; {辞ӿ)ڿߵ_ -tN/g?_\ll+ڂm^5 {O,O `VxX*#6߈70k^;hv^;xfA? +J?U`׿] Hx J%?+3ۿ!+3WfW?ܯTvsWc4W.`5^9[B@?^ɻ ^3<_x KHf.u窿ϻr!-ۛ[} n%vcNcZtBCH ܀܊& }XݑY&{:ji@kMPm{~2WmCZ(<#}K¨!` %Gƒ}]ڽ|e4t~WuK|fA@,ui3#)swٛ2xz$OE^zl1sklN݄Tz07XSJcB-H u9ȻG&F~LƚnS Q$ʭ.~f5.@rR󌪚̈́ [;~y|C+ yvH;MO$~4Y zgbB1[ZCDHcd8jIor=_b-M\iꍼh݆\'KRYރʛG]Er}TL\c$%z~~Q_)h"t}R 09"9uɝ )xTt8O1S哧!2Fn J 3֬ v턂ɫ.9&4jY\3nKK!jc&w8= R[o3|఺@YP%P_\Bg  eqG-D𶍌6v79q$k{fkPN|5\畏Yq+H|9 Nw!0ҏkI׎X![Ý۴!mw*uvQMpӬ~rBb ~ڬmht3܂XHQJnq/;)a#F^E@AƷڨbZSkݗ?Y:8~b6 >=60 K*;ҫ8]Vу=I\Os'> ZJv{ą*ݧ"s põqbǞgJa8kCК:iC(1.I#mRBc^oMe$Vyks/GrUOyhZ^$O6GՍMۨPdo=*.PDY1C&3HU08j-tÝ}jzTnd*؉n]~2`IF}"cϻ$5{*ҙ'}\/j?߶el-A4_KY\H4H;ޗ0Nuc稧Z/n)L~.Q k<(ב8lJ:^Vpg{^f%*IYNLqVrUΌ뙣,ne9s9z[q29G.oք1J(s%(zO( xHo'хc ~*VO% v};1?f7qÎ#rzEGnh4+4PW O=Ub#}C5[C. ウ~cOkroe8/5P:C@SWf\S\Zɀ3,rgW?DwwOzI]KZ"#n j9$d#gfmE.%Wͪ^tKcP!BmDe $"p0#]D‹iw-W'42 OSP;:j|Ey e6Mlf\ c}邢Vam'JEdew*1ѥۅǦGf23{ 9x}>Jqha(EJpS+ YaD{Qcy*ءgA~\zsOWi2TƂ&үA[e tBS1FxP%<>@C܇4aYz.SMOkM9h$&v:w&1UMQY#FI.uDWOǀίlZJN1~bA˖ї+T$ [WB9{aDW?S)d&jfslbc4ruMgmSUf*kq[wL6VCRV9* HmlCu_[,(V} ?&s3sT 3QGm%ȉ5Apfٍ&[1G>j#$Ώoڲ&VŪ{4e:N Vr@xau#>9Zh6oFTtȚ`JS#Dέ C_] IA9kRd uj7bFޒ *eҗp +6'gEdMq֜  rhMш7( X;\]/@HAg䡤!"(f UJʝA-DnL87F [Lh)l@iGMV_ "yOq1:I098}MF:UUdmڃ<ͷP j C!m2%Px {u+$wwG:g>Q _M>'RtVE۵f{jQѨ,Ii !?:;7ݖ=B ͙[sMGajCo;>'<ӕ9RL%s YL(XMDDŽ/9F֟i{V2.% }()Zz賸R:Ȟ#a=hi b.qn%6XһAsӸFI̓=6VAj63<ؾ48೔@}lړm%juUx#q^U|ւ$bu_er|3j,ESf z_k$";6#'r&X=Mt^ }rPa0~>f|YsI[2ÁTUԓ"o3iad4T ę?kCukhhФ([&K!VNj_eydJ8da>k*^h4FnAJI&C60ibJގ.Gx'MC}TXR]!׳s bvLQ  /IhX$̄Zӧ˅ MEC*f+]=>~-kXU>#Nk;GSzZe2GϣwÇR1R%Vi q{E79r>mc{t4V<'*_ x0K"t8" =lGN8+7ŀg:[q~Xn||]πH5 ~IX3A̮^咣8O /Q=<@.2d-)Tٍ<(~ Za+a cS%l;fͮw AxXo3i1|C#U<Ȭ N<dsqfH!> Mf N"+]vG$b9xԑwh(brb|ٿ Ջ\.+&d|Nj)*V FCm Y%'pNAY:G.ls/}3غ'(NT):CM \rʩL5; #Ϭ${~nJ֖iqG6 7r *˝G'M6f#f>& Nd/ ^c;wV5kr:ZI# r^D31F6q )޶PE7iPm:ϊu2vzCT8ńƘ8Q"- Ӟd5: te65 ֫Bi?~9\HdNp;te+7CwojEmOfn;ɴH}_տqk1"{g+9FިJ(smL>\T/<츋Ӝ*_Z4ï< ZOM1r.?sjW sU H:!QWr*+<2 |'J/> jCG\?TɱHD]wo>noBpg.!NO ,K¨-(n+ ]Ntݍ-ز[A>B׫[ps88^aH\VY !,1p׶hvW/*2KI\FXH#2cKQ&< ]ֵ^;%ZLo}V:;oJ9ڥ_l K]EuXfq_珊R6KvsNi33xp`r)nr1}6MdU߁\߼4!`%2 cɠxV6\daQȺ !e(=޽C}-AC?SiRgڽޅRH0}JjR OŔ9dNʓ3m.oat~mluW`cyʜR]}Zg !(#IN } %qZʨB0q0_?pq[+poNq&H'˶3&l\hǠk7t8ԉ@V7 n>}/L`)aøR lFA}GP:zx YT:ϡ j~ 5v(LeZ0<2T#_W#BՌ\cA[)=klĚӋ)wy/h`}s*zl=~SJn( jE6w/'Z{1_~lY87_0+9ȁ) Yؾ2pZ}w,>Q)PM4~LKFh\ 6'\ƕ@Kg*l]#?d[٬|MනEgMaUcQXl|^T4@ ,[]3W _MQ0s8%c*D|G+m8>f9VڅПU;||՝HFzq»_`Ӟ;_J!x,[!kC k.(t96 3-"}gE#71Չ8~TV 0O H(]G+EmZBJ,T2RlbhU-G9(5Iƌ|./ 4]4៺.o3"qNG}|X]9I@.!~2_/|N|-眱eTvFCEꀕ}L4ЦCqfel7+>aL;Dhi}ɳI/u[:\Hc9c+P^B'eBN_.VwuKP][*]WL@K0lKb܃rl Sni:xd3;%=/Z½QlM&BS"HXP9ۉ+\i=K`i\~o5iE,ez h 2(h')X/4 &0|}pNOmI:-ޖw!G'Y`Sq_VEaf =z>9ZǁҮ{ћ-6fS! g *PKg8b7ϙZb1 /iSrQ.}3vԛY0MtFR2J&A)*A BU ].]֬CpXC PYsl܀5"@;Cxw]@4&BӼ۸yILlUT}5.i( =/fL8l64eFسXr! ~x{D,"f [q16> udEj\x-yBֻpuF2N,&,Sp+>yYuA4GyڜH.zYAʁBIfq8w2J8p"݄u'Sލ Xv pAR8'/Kv'\FO݁6Kv>N` N S݂wȃ}[ucInCqS|u.6"-*'0WO>i+[V@r&[ 6Rhx{ojچ4a9DbaްKR84 o1۞QՔ`,tLGy#$iDTZ&X+cɥVzNtD~oI3OM9佈%A9qݫ]PIјTO}&\J L,aã);); 8/޵uMi7wnċ95mW6Eֲr"XM-a%))+a E0M']("d>ނK֋lTӨ*ʽT_vsLᔈˋ IY˾z0,˹s19ԈQUvr`^s"L1CaA b7ovp:$7 ͔s$ Љ8<)Xw:sT_Zp~LzG#!բYe+ivY%h]. 1x>o,pۈGK|Ǒofy_A|h3/tv|Gc]hcx%S~/{/7q(2o¥J!t ָp:SG.[;%{9"!SF 9Z\cMSwq~ҎLcv[ĸD؞Z\%;Z; 1֔#EkE:&ǷF:VfZ^u o@ , V4 8 -3-e >Ɂu=$p?JrrB¿]uv NQXIJmMeM掠Gr= endstream endobj 53 0 obj << /Length1 1573 /Length2 7316 /Length3 0 /Length 8354 /Filter /FlateDecode >> stream xڍwT6)ҡR )030 ݍH)%tH H4?sk}z֚{_^kh5uإ``y%Q3pqrpq`10BX `  8j0(@ pq dn+@`1<[}?  os#5 xt@0.l'NNwww  n#p l`0 lU2@S@F`C]M\V`8>:@GIOsr#19: hȫr <l "votB S䥴 C.._5rrsf9  E`OgP;5je +W'N=($G^o `-N /} N0'}`_5tpW;0gdR-͖elF{3.C MpzY.Cu:N=&G24'Af찫P7Z7D"de,<@_h䶠 nWSm`v&zب`#aSkPA>7z0효7"_Ke e0Mʒ<(=  !~X.x" InJ/bbr5"B!icaK.(=SQ(DʦMn;d<2N3e8RA2O3W2dR{rB^ 8UyХt4 IxH+yVx&7)l U,pYb(9a:kҳЖ-"dņjsxĀ<6O@EWntè6+T C Aov0>2̪vI%L{~fdC.{Ue!.T۳fSG-ٜLYڐE:xy&SLIEw^/.~m{IMtYp>Gȩo&wDtHDO&͊c-B*C*|JBu溿s0OK~ciH}KCzL[o-vB bU =_Chٞ.db[-D^$<%쭙BiTQfYՕ _ վTx^ȀgU߰d%<#pYC$y pqdY^cSDOuWIb(ۡfg%* [%?j7AsO¨ a';ɑ~aH?h1rČNa^iO2;r*FK#|Lq!*v_2ZNgZ(W(AO_v]V`E>l`a~l8;6}2@ ʬTQ'^[G}գ2GYl;8ѢX "-b |OMurwmP8¥I5T3l?E*&puI _=lIR 6Z9 tP쵇IdӐ DwRĪc%-A-3hrMM=aR)j@<''ݏߗv.駆jŻr ENowOW1%-:A^Rn}Q PBiR%9y( ӟҞ wT/ ~;>7I-$~N[_(m'(Uz]j$[tacڊ"MB]o {D!.ʜ۽#eR[8!2xQIZh ҤF6:qOMg f~G@vf#?Fa#ͺgT9E& `[0±xMj5*rNQdNoY2ֺF%Рb_G7.X!RYXeUs/}yR4:}Ѱ3ܞln" 2r^8Z=V v~@#Jնasm7*x͖$z ȴw{ MEL tWD+ %m j$]vI6E\}k}>rlQQ]3xe|{[Kt(1Lql, (L<*_q(e4 ըZFԾvMlsʮtQ8Tf6Y(z)1xQQ!Z6xogI(3g봧qYfd#D_:Íl*bk{sFnc0Zmlف2I-:X[aH8 ~Dl1Om=$-㦯= J<=Lm8"<<}}$0XԋM,%*.}|ƾ4,XbT:{S8A1|m''>/^~11Ux m9mHVLdP[EjtxZEg0+|)VVޅs@ּܫK 5txrfxǣ_EGmQf5߰;wZixXAE&USR{ YKpEV%12_aNg&^Ѐ6C5g/AysΏZѳRM.?yӒݼ7>ʬw-6rr|Kx>,r=䵘ꀆ/KE"l 7zġ2Oؚ(v0 ljгyNf'3Teh5$ɉ}iU\f຤,\>Gw]^`̀!(hY$&dRzpd&|ʄ Řף&ίNb s˟c2ZI;ۑo*]+OΠiXVk%C,76W|dIy_`RD̴32=tS37 NIU{XU^FY-W>eG K/ K!w Lt *!2>?ͨ7VQvݑdS?'F bu>So\Pc.>фYUrbI-5T sO9 8b" zl,fR~ aF\R$#T^*e\)V] )L@z ==>%g"։eNiISKh14varx3Gu1OM[f6A7p,h=n|h2CT%jz=JnE;(5z{yi`@Wf]`Vi⥓OڶFZ/֢ELO~oGl~Fi(6ӟ M!e20$F(`kqweOlFQIĪ~Z4- rZXVoRI%W$Ω倢+8b)s47hXs@6x]ayuEDiP5D1mX;P|Ҡ\tS{oh51H񂳗6UnJ*nlq(R.m[s ފ <~MJqL\8ŷ!}|ՑCy-s(Ӿ)/;T_/ЧO8}IY#k(^#xr6'&ϥd6l¯^AFxg|+"41`f+ʸm(mڇsxFȟCd&}T6TYP7N@sёk<8w蟏gîTHQRO7 ʊ@: `#%Ax˚o,h򁵐2?^n֗=< 'B*XO V^O?59Xt pH w7}y?|AIVG3g =._~vx1*d{Յ4^Sz` @0D*5vbv -p\$G1W\]zx_NsK|oo IJ`=Fcw{~\ή[AyÇD`jug? '3TniRB V^?f"-5382mFˋL݈I|XKz mǶpju( &΋Znym 5%=/Exڟ2A62vneWe m>A9qrX$_㹔\;"^-j7jTJn)GF8]8H!;?ںKh%z .L : NTq-S:oݍ+ͣn||+"vni~:sT%ӝ;RnnuTT nޘا*+;7qD#Y Vl*6yhoAu$-ieJ!k^~U2g;Hu53o,dq!1v9MaB0JlU@xhd+(]3ڕ ZAȖt2-F@_N=j`நƛv qIxڋ"-4sc }(egt g-mxu|ė#J8~-;G>L"Tn钥dSDmںѥxX ٱAbr$e??n}5zKFa 6>#!%SD P +a4D}k"d (aQjg5kqyZi<^^$1{wa}6ǓCNT%JYxts1XO) 8ҿZ%dJΆaH+*GxYV/.ޝT= OuBij1aM)֖YP4ieG &)r{D;yiF7H G$X),=b"%15I86.YO!7Om^]يaI r6M<'5^=xwTK\eUܨƖE ]^M0"0u9+H?R?7FlL3//{{-4thX tv=xے ̦2gL[[Rt 'S<:vvouS?z .FK'k=(,<[v}ZBL5SQ  TS Kg;R(X]ouӕDG׎ˇw]ݐ_Sn:绲Ā mğ7rP\~n\SKxdef }NG̖M,G4D@xec꾄"fPH: pLԁR ;fo"lѾ#G8gH]+Gj=Ƥ: &eG@~X0;Hc AVV |u~~\޺{Y U,Y ask! zVV'dx&i *w[8Mg1UU=Aj_mlx2#3CƟrEI/Hs[c> stream xڍT]6tJt --0P3ݭ4- HtHHHOYk\{_{Ϲf~LK n U;!xA9 xq`Hv\f+ $/ ɃD @ D(@hpTNPW\f98fc%# uAN 0x#ЅC`P`E"@7ѕb# !m:PW; e&Wkܸ=[]5`}p;@WE:IV p<g1D8RV6}̄OzfJw.\iٮ>a}-dk:%-1bT6%`3j>;y@2ՠ'ajDT/7T?;ܭQ۞֤+peY39Y8c 25Nmד,^ m |NGKl>Udt)2\GRQwuIp\=\5UpUz; |%~ gtEQpE1TίFU[j澽: "oGu/ Eh"1ʟ=3C;lK Tw5Mtr䓵6>k^ג&z4 T{0d;UlIkN d-~{D6H>j,Ɲwwp?ei (Qכd~Xm_(j%.d>=j|W9,y*w{MBQZU!61x,;[Tq%l=B , ?랣y]>Jmg#ArMXO}[N:+]qPzvToߔdCwˁLpݗˮ|_4L=܊ 7\yAp?zs1>Gz#֘r+}'vY"qY*^:o\ z4ޠ;3Ș\ō˄pڶhiSy]< ͍@n=ic z؋YHw5Ja#a|b4uA}2kS|qJ59.䯏4Z>_y2"a2ҀhxL=(n4sq1PAd5w`BY,kB`3;O.ܽm+Ey}r듴EtEј57Wee(E J^Z{IUZiN%h+zf* ԟ9|t^ɥ­ VVֳ3_[&'U2{5Uzvx59Kel6Q]brRۃrɼFjIRZ/[SJjM1U%9W5ibtpxKIڃF}H-pVGa'Aq.푯u+D&+Z4+g93Ɓ!rMM]//s?Gnoc4y##t4{Y1zyh$j{N=I<J;EU-huQyy1E4g[o>ayGF\ȭ:^7_BP"pu<,36QrPTvi޼H?2)k С_7u˨]_>%]:W~un]OGϫ|'RpzYZB6 ƱfE- rH.!l`R(OTTsDa[&_*è@.l2@̞OnEErWW`XI}uf+ Gr2BՌS;!pB<Ƭ-n58COc懌ΚjS~%&!"=[7 \yK[@!6қ6x׍Fj[i)>uDIveKqHJE5i'ipi$^wWS*b\ TaIwz֫~u|Cәh92s;~w+s$`DbS!A5يK}h+dtkbX׼P?GìmFUQoW WKٛiR$v jjbdW(V‡1K&Jt…LKGf|3N֎0޹wŴI\- N6o pvP)VuI9t5AHIoQ(Vb&Bo8Lr ܥxRJ6'$]gQX ? 6lFFg~BCТWo,8sӤvWZ( ^\ִˏԢ"LXL͂ W.OBpb[' KϕnA i8(K%Bљ}6NBSvbj&?w[j3jz!oVc Co $xI9==*Q%??~Φy#0=g[ʈ&L3 D4o%S-_ o9*uF'R[lU7 {ygщХ릘@r}zݡw$LN_ͤihSJPi9b>$ -p<U/3BN Oo1޽^Ž[ !.%剗.,GbsD] ae vpqC0 HlzIw} bbvgTxxǧ#dBMʟ/O(x][CHzz6!3!>@'q•K3_Q7$}3 `zB=#e&˨GQO/oDE+H5ZKqcMeBN:K8&Ɛ9^d4jk)m/\|j D' z9ĨYwWTBSEJ/sdckv$ZYF D3Mw9$D_bz\>&.rLK Hj>yT L>ϣgHrU3_I ,Zx[oUFt=C<_Rx-jX6k!, ($+,C uK5H=C-pZL߉_^z3QcW Ҷ}W[`6òTm큦m_XIf%!KHZl%v O:+=_Fl^ QnQ:y* [zwIqZqdzRF n?1]Rxԯz xy)"v+s6b?r ֺyg6p`_SYm@U8D^%% Lt38`z%EJ4btk*WL]6uRev8Im/+G$k^>jV=%?ağR1{9y: 5|-9Cut#=\<+ӝmlAb*vI$>uA2fWX0uEըJS%|pFTaס/&F0Wˎ|MWmlˡd&ЬbZ{"pWW>'/j{((mj.;[F31xfbpF S&00l+IwSYJcf:(ӿ ?Ug{gn0no-C2NØN{u\%QUk-2Do<¯WŁ8yx?´\]VE@ mw]r|]'fo8VeViMb Vzp0/w*])Pl}>VirQ,WT稜O_?Nm$xm ca~hω0vVxyc`Nd%#)ckmQtMBoG!"q,-1UdnM;Rv ~=,4g53[[S;#GN_8ON-|ջ>KF;d ,=uHcM`I ?cC{edOU|]ራS3x 8㆙ѫdMܥW(E4C"Hc0D ,Ay3㐶7d2嶐xqNCDGv$F2 6[g\۰oc[hs"MsL1 fH[܇ D t+MU,o#Zĩ͢xCɋ^S=,z a9ǻX ^"QIK_rG6gA3P` օL ^t/?0 K>8ا3Rx#o ɓSt̺He kdO,']9K%(ayT%lؚѥCOUBK/ Ũɜ1x4h{bMTnwcncr@ޘϝ?L1Jkd_ ÎhUGiI7rkPV9iTիiѩLZr$r(ofmnzHj*FoJc<qʷ7*䈠_~9P53 +W%rp:IR-#|iܭU6O-d\XbkYuȷ5&JZ i]q~i!XYQ!ːxEƋdžMy?}" xS _IA/wMW/ LK뉢ܠG('?|iQiO2%|bek=Xk Q]iԄiSuV?j3FETaKg\16EgҎY)߫Ҹ?7PE1 6 *r|ih#VjCF3oMPQSդP4xW ߏgO? X R󝽤}=#ŷu.fD:mlƲʏ3Z^q`+(t>; Ifl.LODk֌{z眩I|l: Ci <J@oJ>),̢(1rGWDu.i ņn;8Č1ݯp֗Ǝ/Kv>(?hC o=(vk Oi. 'm=:3Y3 +}h)MX;hcl36d_,ˊ(T;LY/{\;0/s3i&ރ5C6fQqV~wN5J.p 4 V*v~,:fBDLT81@i%ܲkEW[+_k ?4&  Nd:c>m2 *š$OթPEږשU2D4_vqgdkn1tldЯMx MRpq:S7}XT$"KF'lȜJRY%mig~NY9N:Cx5mАK+i΂^w:AczR  0{ q0k xs}Hߜ$-mq4#y$`ꪀWv"vtE!dbG[2Le{~>&u§8FFTw<FV]<7ls%* V8tS.O11x~pDcإ|_3G0B#YedvVP9n &uɖv֝/}wSg2OxTO7p^Ey! &8k"[ ȰSs$~H򩥉[CRiNOgFKz(~œer fWߨ^JoϳWƈuxvp<׭ƃAaD D1Ss֢M#aG(%ox"􎣳])=X*zyo> stream xڍtT]6! z9tIww  1)twIt!-Y랳>{s]Z]MnÐl vN!@JEEAf¦ӆ" t!N(&)'y#oq*pl_$H] ;AtRpw'5v-Fs&$(;8A0@hP%EH!WWWv=d% Bր&qrXT?cP v;9pY@-e@V`:w~'`;fXB 2; a`;6ځn;vC;Av׈ܞ B no!ؿ:Aoݝ0Ͽ K(:03DA/ȭ o r s pGfn񫼶w};a{". ?-l#3w[7}{NP79-@߿WƷ_%EIe i?;&) w<ٸx6.^Nq QCj\%nղ_ `KL?oi f'/UX :3?a=/-k PP=ժ@,U@o e3A,ԡHs?5;( G@=.Y%q6keCn>d`p_NN`w۫xOЭB- n pvf/_ppm?Z2wvr7na@ ؟6ՁMgUlkD0>Bvˌ,JOU*}aӪ*x0}Z֝ԉ8SJ)w(z Qԩ YXukdsP$˯ԤVURP&Y)C}tJѫ$%s׮}s]T~.k?# e(y0+ur2 ]S<䈥idSkbIĿ#5ԷI{eMߜ-t 9Abi!2/~:d`3NH#cK벢A p sC6v,qv9'{9P[FwArK5p*LO9+eh|6 guB HHl>"J,]pʇ+!G%D_M L3LI0yVzwߟ<.@ |ٲ"L!Z'b VٓI'6mtP+D(î=a# !I8Z[MJp nƜaLBԩĕ1u34K/s%XC$o}ã{{1Zf7U򻫮k5⛟FX&U2MK=6i4m ΢,O3v&yh5YQQyV\/p)ԞدmySXQDJ!~9>%!x28.ܱ3~OGMZ!J\:e4؛]aEQ"Wuշd Vq,fJ Uf*Hb_B_"XYʷ% 4xzi 4MOst^0]⊝bѠ( F`,4"6މ=›9`Nyҏ`3D̶wt rR pDAr3Uߵ27{4!bYA%ҮhK9]Ԫ"*˴JZS)lD "V&BCɄɜbbcn.Yr%r?̾yCiYJwE, 'lvB}|PJSM>ʄCa3ܜNہGkaxazBX{*w=lCQ߅)掂^جm@X*Vq߬i?xtҞ aIxy4ǂ,RȬ4"m1$H;rQR|@k\'ﵠB̄7_*^ڕ˲Z^zJ/ v߾y-4.ˣ3yhLLP3("Z#}/L}gWOj3ٽ9<ɍbH+Ӂ͋N|ZfЋӄ/JE 3H=S?NfERAΪOK LjI{|l{^r3a&?m=jg0|l$nzi9ԡD!S֝|r%/1dsmk>d$Uz\5W8:]~LHf]FweG{ֶ:Ǒyt| qImJD"PHwR7PPM-cLF5tEӅlAX㮼}@Vv]=~QbKiL,P\0CFuiGۃ}_  R},hi{91{y1-D_ۦ5 ýҢwvŬP Bp""p!Y'&C?'*1H_Mf)u>L[-8 8 #¾DE/ /\> FDZ*}6/)ʁFD>żfh+h(RT|f5qbQT})F,& 2ְ  b}v!s~ =d,_^ t}]pJ6„'1h] O5("O:f~|Özjs)LzA% =WKʃ_hξ&͖S^x.0bo:Dc7zbOXVozdtNn3-,~7E f=%zPxN="2>ʀ t "8t2#lYTYƤ ^SM {TEډxZBƏ,O''TÍi}D]eUpK%D2{;$4(?3XiF`s)fm[ȭYHK<XgNXQBSsH#%~Fur1KHnO#Ns:U};56h|/D]B3dtU!w2(o9Dz97(Ws掂&9'&}띛NFtM!A ,HXwi @=QN/KgZBrH4K/2fV""tF0][qK,H<[o(~N8P|sQ.'g}v|]˳*vk=á1[̀Ԗ \]BO0X|k1[:[YmbJ3Ӳm'QK>/R{5Z<5$[07kyXF<2u`:ZA/Nb1~ 'Skc?i=~)TrżNQz1:uSb O>ZI__! e+9Gm|L{f:%@A䐀Y@-˚;LlNZ/W,̝p'/ f4s0& q7G2A+ZV}kq pbRޥzg wƢ~1=H"4tɖ'$UJ 63q$xf/Νj$̈NV>%A'h,t&wdB]8ړ|DnA\JclINݏmlUYocպ5Z↏$¹(:"v0*Gc;seUf(8+Xg[`ތt2o>\MXBd>^.ee^b^?{؋;[E0W u'gآ8k΍GR`BpՆ[;ుj"gdDiu$Pi?o |qΈ {J6O'߾0ωRh>:jx)`hmcK2J WDw.0Y9k@yZ")_sfFJ*SԅW#T ɢ˳VOT©Dw'<{7mm[xvBĜ 0Ƕ9M$Qh SfV$;ݮAO(R' h-T 8F.,r1Zv~bkГ<%Qb %Ov3as9*th2@NO(ؖh|j''񱣯W_F^Ma۔o~= `(PMYQhTR!?+Mx)뀥] CF;q8IM7sq ٻZDžW m\V㍄7@^NRB[)L 81΢&35hL/0F\YqB U<B=<1ĀytLn:CS9\t?{QS^v*ȤmgQ% I:~9Ts'>R c+ʯZy~³Td$jց2_FdDnФF1z>i'=7*r_Tϻځ^㕖 DQ~4YXNn xPd!.\[I^|`m˧A!3kXr~zmXJB@ ֡QeE0?_X)UCzqtb92Fex31kbtIr} /rRGçӴ!(!1v8` ob-iGo"{l=ɐ~_-U1_61:up?J!eAGKЃ;4Q۰&! YyɎ|Q!Gv?Gw;_spԳ7'48i5g}AHFԗ3^/n3B~v%;;o·gL-Udq9^g kxs8Xք߂5^=V,[ CچFEP7#'(e.jA3X&SM>S}W)}L*_TȎwd_ogrک[2Iז@,O^U2 ⿤{vXHt9b?(O@ҋWr)+xRPΛ}<ȶiz5Lߴ9ٸ89}!v*W`qЫd+n%41 Ӣ|J=I@܋f2y(Ws+,{aSѲTMOb\3c'l6`kgvaz|WƎ;;Nv*f骇tܥRL=/&L^?zVacQux}ޑɄ^Jb&a[4.<5K,Za|PUK D6$yen2GuX\עYZk楛B?(*PkT,<[Y =:s#{wp-hQ{!L+-z;5Z_b>Ť?V9*>ٸԉ_P ToHhyӔ-nE'A} 0AɾuW_=\7@ў:ζXQ|Ճ)STU_Jl악3qO92Ggx$(M* TGh=3`~S?\l|x^8">_zah/N|i+q#/m{4aYz&*Gn${Y蕮N2rW,w# XICXg-Xyu[[P.5x/(XelQMș񌅺n1e So1]Vct8K3jѭ5QޕmVnzZB;] \2O1Z>X^, [v(Ü[v#?䧂"]T~2/> stream xڌPm"]Ӹ;-݂[ t曙d{Ω~~)HDMn ,̼1Uf33#33+<bx M_b.@7L duX8yYx<1ttxX@Wx 1G'okK+7P<h,<<\r]L &nV@{PF3;5BP[921yzz2ػ2:X <ݬ@Wa=)V֮-0 8iBvR:s#+cc5Z5֡mcj0 F?qXՆiBef $< XYXBұ: j519p06?U!4"D`B+aCU6 ѯD_H~2 !DzW̬ 5>EG]˕b;OtзPN7ӾR\+6 袯T*|Mj:lF*ob{?eOx<0~׬J(Q!98e>i  3?ٻ5:u|HU +U *wUʒ(_3%P oKDRxڟ/*[S;[3X/$}ԣ@ @{If3ѦO_Mgl>}r_: vG\]2%ɗm긘W"9Kwd0=l̘3Ҁ*ܯeto+)6{>yOĉM_1okuɷŅ4=s,xI8gX7P|g{ߨs,$"\;-l s)1*2DIo#,J#p [5/tg#~‚ n[5yҿ@(T#vIYp!_硒8Շ꩗ng+ŧ%tr& ٲ=uKy?87a6::MS L('3ᢔ&ۡ< e "^"M5Qy#jb"%yv|:W$?Ƃeq:~@VO}`ua*(稀`J܃}pTShsoO +rVĔ&8͛,k EA˜Ԉ˖}[ld 4]c 頬`=ݪh(&MһM k\e=]c=y'=惼ޕhkFR؀vZhԞ#),Θrd$l Oz[cWcc4n mXGKZM[Jh"_1ǹJ9ȯWցMvx>Eּǖkx>5\*DÎ[w60j>JP3KMtbm8C$TڪSu\'9;ɋh82 ;/ ( ' Xjd',u'T9^1~4C_Mbvt;5F~VBcjI>뤝{$Y]9\,81+hh?'# 6%cr YDBSa8 Psy6((HU-'0xW5^ ;6\#<5Cn BPhۄMd1+ Vf:JCCѬmF0ezzk`OqXP4e:T`y!l#7&u"$?0HJCLg^Ww,ٶs>JUSY(,kki?ߵ "-}#U~N 6zl;lLޓm(Bn 6$'_F٠ Sy!qpJN\ImsfHYLĩxu" X[ن9_ c6?;zN*—FEsbhK'CU3%[H㼶9NOuޛ.[7ifCt$/[yOun4GּׅJF@SBIW9hlZa)ި>9Һ`DHs>8;E)[pv1e?<`3,ZL }mWe<˹} gDVZ~&J.FԹ]T7bb a$вR ō)n u'~j ~=!藸4ݑE%9S£BG tY׻KJ6 m4kڠtSB;us"2-@Cu=&^IuD,R10au*mOˉVP=X|w2o62f-~VD>{I]:t=/3ó#,}-vk~1pcaR#/JCXd0 * >qV3/ rZf}RU,K6uSkە4IQ(!eO4W1xwm:6`r]:?AJq%EBU?t}\CK嗛0bx,+E.WXpW>5))>9G%Yo+ƀ6/ !3;F ŮMQ5ЁOC+ù,OO MF`7hqе'4X1q)ᆘ$.uC:>ee]2Del>Q^brhpli*N׋TKQco>40%qɺ:'5B@kIr]B!Ah^9:V ~#H+]ө%cdcNa`O߈ay\R5||>s(_`GUԝTU*bK_8GwIdտ?CkpۜZ b:Rk@k( !H.2H="H%TgSXy`h5" .&ͦw?t@?l-F:Rf]zT%),tz\o6(.'̎pC@#X2)zDEx(܉H#bXqܤM^ D@~4B- K1E;cdo?j6܆W?v({i0>溷t CȩRjYO*ɖjmfU[-UikՖ3. KY"`toBD?~: lV)yܯf"NV⩃!-gPUX@gVK1^%Dfz +]6˗@,p!{\M,?;'@b'0r^1$rpUK_7VV; j:ICS! /ސgX;!„o!Ϫ#K͹/ueא&I|Yl^0涮1w&E܎-ZaH䎊pO>o)L*Gz{C ev"j$F_@V.E4Ș9?!}*7ùȩW_Iڗ׋5Cdč\%*\ ˏRbC; 1 ňK"&hE(gE#RmsDaI76IP,[ ofjg*R  eg,Bn*lw~a18eԈBBoٯ k[p~nɺQlmX'\݄˞bm_8TU<iϐZyų1 LyW5?wT=@/DdZk >^_֪٭0[03#:z U@! v=A_lf]W1[^evPkMe9Zyetp_LR&ϝ=S%4qZ:xҖ,ƒN'XrڌЬG r|-ow]A-p0qMuٳ.n +K+n2 :au8SK%V6"!r ʦ864d_=|Pr42f[ʹQ므^TP%-zCβ_*Q*[Qn)$->?(8 _o+S8 H5!K:V ͊_Xdjs#"1dvkdl}V[ٞmMs8R eݾH~^5P<MQwbϡͣuHO}]\KBvR7vD )RmsZ>3E 1*RΏSӅP%M}pRa>\1l9 )ܸ?6. eD8׀w ؿ:Xt9epFT)@M`^{UE482_\| nfp4@S>^~A\3UNJdMMokM&MvVad}+gPdxVw/wc3| e϶S'-]S҇뗅?D]9ˬ*e.Sfwxp w}Uwi])}UtuD;}Jb1jqols2`O3xvz_\C"P+5,\OQg iI^'Q;0o߷-qW56eZXY#nMʭ_^y~ۊ9c_kG 6 y? #I4U[ϖ݊f'PoOQW+g-X.Ix JֈU1P6Nҭ.:,uD@(*&&i&4x9 V l,?Pyq`/uyiPP?8~iqώaȋhTQe`[p'Jq$*zb˯FtunJD+eE[]31=kprbW٦{?3r SJ }bK‡;"DyUkO}x{-,O":[@4+Ҋ)Euv㶏Z.m7kFU$tɭ?Aү!!c&ujPʕ뙎Ϸs ,8–#yT7͆#,}kWǶ+y?sյq=AOCOBtb+ N5Vײ6Ot6ŜRv*6O ߜCE/飫f4|촐e u9: g$ d1?AYTNAcj~GjaK9 bXahO rqBj^wgfo>A$ $ᒿBkQJ". ݜvNP`}=)&2h讱5P^̷-¸B5e WM#̗C,WoZ9jk5)]-Λ2=?\(Vە4rb6Z4s!䍗UIŔ\NGYw;'-O=\aT>;C;oy: {]1=wN(s/ׇ?ȀTw@RlU{8 o[ L9)n) "MW0tYʼ6UTZy"Q,qqt1R7ͪ9Dy!lNH ID7߿ gY992dŷ'lYWT\e đopxoFI8ߪ\R{d11^M§ue[?Xri_sCDNg>sH„U7׃/^.y;&Zwc (iMAHvE(rP!VH87s/4%?\C0amb&xXSJ,jDy:0]L?Qjgڐ]Ԫ$ZGɛ26rCGA%rՊK_lń>&*!و)\S15VwbJlR}ZYxyޛL3j@w_,f!~oY $T{μb 9~/lW`#:fǰqA%b˛{>lcTQ5 l>>+%cexV=QFWҲ8LBOG*.zm\.1 vń_J,NJ"8eWcbj'e YBv/9T3Ov[-"?[=?R族MWF(E7hTPP%O%`4&l$: ./hpu͘u#V]Sm!p*~4 DPmݘ h6C_v@>>ފOp}3PV76ڒ{[gqDn ?qgZص8Tg^1! 0ڧjaSN|7,ݚЗfHn^2AO@Zzt]{K7₼: 0ܮ 0qm]«f*#ރֺx<,RAFRtqۓ=?£#T6B==9Sn=WXd͢pZ؛n{t DȥkeAf* 1zUz)({ij^KWrH"%aukK}ÇivBTgCpvGkE^inUn8QXJ*<F @sV;+,qB!Kt;W|V=ڤ(].J(95Tד̟EM#Oهp R|H61~~vpLkiԨ/u{-8.m:'4#K \w3YEߕq6[PldSqL';CQ!ojL(+P o'ѓ+ Sg7"֠|2i_nnRgt/D?]"rLeyk=dV`!{\0[2zvUG3ulZ\(ea\mRX?ܝŃ\`Zs-! 1Dx\! ]8aÀx8jmCs$BRikkHǃ3aG͊ԥ ZM ."8bkp,OmB'Jܙa]c{\KjF6\sI@}^tfJ"}+`zhCdtyL+ ]S%K&56r(X<33lfNlV8׈@; >^bnIj^*Laz G Mk>Q guK5^QH WT"Gm*Dأ{xVx ' 6;,Jg슳GŎ7gI>1'VWlolcJ($#j2*j&lŢVLXܜV]bWZ7C QC">[IS3_n3*Y,ÉrQ9i@)U"+*D28H-"cKm+:)f_FC#1ߒ:j"C\!.[ޗ{dv%[4PXMp ]2F6oF ysg7'b]v{tqG<4s~w_ne"3.Ą묈 ;i˿v Elآkw;m8EI'wv#s]_;^i^'V!;Ng7sP{ )~u+"rqC2ƹ9[ilآ/qn`^Ma!=h+4Ѭi}q[ pk鈘'9&e( (\hmJ2Vǚ 7:aOZoD?XEbq@wwJd[}]HV?u* JkLL{YP4,10>-{s1OUIehBmEDBXIm$pɡN3^fbgb_*q 2ZX0|Mq P`_s9{0EF9o20ݎž~pCJmQ!~QqMY[4tʛ?u+ OI6U!0rIu^vz.i@)XbVck6?ٚڡubl P Eva?gz)П]`Zܲm{јYITc蔌b79Un.bLZ+1hli*grpENޯ,aon/j U @1>4;G:`I_*=®PV@[ƍԵV4_Eڠ~7gB$HvֈxED!KzOg `]eFSp,[eᭃ>P6-U֤ rU:69y=MO%FD) l)ͧ]ީ;.ݦM2-BD0GK.*ߎs=!5 r3/΋ W:r0D\PBliFIaD>\*|dœV5Ji8ö >(a8oz4}xY}.To !xOHQN6u'W3rW0_LP,kK~ٟ^EUF25phWo_shm+wyi*G*bDNu{ vrST9徧blv(V z %ڔ=h%T֩eo>$x9+4py,&cU xKxBם4.Bƥ,'.0G=y4)S) 4x8^=@Ϟ%w61RMO%lHs;:i/Q̆b'?y.[k#:8ϫe!gC~ EKo[o*[TP3 R)ʏtp`H:w"8i“gR7A1 A[\sʡ`4+p+cC枝!=Ʀ G'=w%L~ÿ{c]͇d |:AgȁgRZ IlI1}wr&BLoa?Bbz{tf)N<sɂ~ H^&s|w%0LfyCЇE$R, 84ZPsP&sk~JB' kyA*LX+EEw5\&e]+6#OOuBpswb=حk#zp ی< Q>+1&y w'hbHt\ª1Ҥ3E^.~;RJeV0cU.i$N*~>-Oߌ);r9խ|Iʑ>ۋ3KcR,gR4Ni6h^u%d.g5Om].{g1b,nؐemкJsq5nF*~'M 4"RRpȠ0}fk k\gIz^Rڕ&(EV\oHs{s &<b e.TKh,[_wzgo9WQn;BU.03n"KҶ1IabNS?تڱ̄!(BxoYyEiYU=p/#.`,[1vI`K 6_DvF5{Pwt4ŠfPt5+>Ƌ5`2;n| F~Fe6zjM RQĂQ֯9 b1K:9m{.;ߐMvQ¥U@v%1"$]^5*+| dǯ0KޒCwx-6zBG1 PjxyQm'Z\^~?`53~HbQ7E@wѦ\ЀJ gMK1 ks"y5@cYG l x̤/" +R[h"yrvA˰g#WeՔvO #H=xh!mM4ӓ19A+srѸYuT$Z3+ي"#9}X5/Ɛ.Ԅ𞞜u~n#Rx"%xD% m a@8 U57] "; F`.%J?ǪfkЦQW%V(J.4 rwzjԣ0ƼSHT]DagkW!Is4V+?KbQUAK!2ιG8CIrhY}vܭm&LiL)M(~Bw |PۦV$Rkes}i; S a4}#7::ω?@!Ok%0UY-As[#[+so;1F7^ X/5?8=V؝U/--24v튵|i~;6Oĵd9HYfWtk$BR^Lt1RjeFcqvx:E;']ۊ,,?a7x\^G9Gko? @hSU m5. /j1-[y=܉bX;(,SÏK?qE֡ZdE?@EXh~y0r| 7 IŰ;ؙ_t0B~cfVO %ۃ&=z*Q2D:~yB邳VF\'UWmEZLiAP/ܰNdؖ#J-1;Ɯ]k@-47Oй=@K9ÿxM 4 ؿHzrŭC^kd*weg!3OC $3l[XVdKv}SAwȺ"bd݋kjji}v sq yF*<_$ qjmnT&FT %,@ !N@w J|! +/}S٠K*jjvk0o!8IFp|'kl|5*m& cB ֥ MћG{!@:9ˀg ):ZRL)9~ldG@!rɸѯMU9nwHiQ6k緭NuB 2q)?EAΒN`i + ?D颦(܀F0D$~R!Śgr֊;$m6ԣ&N(sEگxƪ{L*=QD16~cbΕΒcpMfBTCw:#َ};$~YmP>dhG5TW$KIjtwOn(.zM|KEWr])w+% ;v#^KNی,| Jqw),&ir䂼ԼRnGEt3x%gU:-va;)Byog\6HRVueqN(6Czf%GkivQn׶Nci_Z֧ Iq{-|H$_o$; +EegA=h1V~ǑN)g9?w@i/Y唧th>j.ԘR ל2 _,nNpU(?jc9HF)4UHL2#}<9> )t 6tjg3Y{[{TV_?bckll`-F'X!6sY-%ĿL(3zE[zC:ҿq\ȗcl(=u|HIKh?Ԭ> E܇߂߷$q#mLF{>m$ޔD{CSB*ۘ )Ӄ?Id|9;HxA\ p ^8IjßkFe5rRd]׷ة"T3r^10$i n.'秝D?.Jiuۋ!y>aB)y:ne endstream endobj 61 0 obj << /Length1 1642 /Length2 8994 /Length3 0 /Length 10070 /Filter /FlateDecode >> stream xڍT-~o.+*#g MF'; y#Lw|1\ss= ]3pc@n S9;S ڠjIRWq7v{L$ƪ̀udp˕mY+%GzЖD֟^FS ǒu(d{^^ͰJ}nueˣ!s{U|heӬ:QKfiLQ#9`5{u=3Dό-S+j6c1 >9Agi:t4+AئN]U[!1;,L?~ԄG TbO鯥[ ;(TܵV0Ez2|l;!0ٰZfvB }JL#Vэ~;|+f%r4\|]*rEnz4t[wSR{p2zwa JF*A\~,cʯBfp[>z\AE~|.L&5[; Rx %@ϧŵS;eHWl$%D*tS=o ]ACC{|PL^q_e/:%[ѱ!>k޵m:P> tr^GDh"+|?4stnq9ZJqY72> &M9)>I1lRXPj)i kvœl})VYU;Xf O$:( _$b=7Yp:#㕒p)j hyE^0'ӱRYDit>Dɜ8 J -6u/ZF&L-Y88tm@ K^ #ڄ4DE/ÒhX~+dPT: ^C -S? CY(wq%}6[[ZQl9nlrϱ y39qLtN@+rpR{bA#OQ+oǧ?]y921 x܊ }8&Q'D8~_7pb՛/z*F7ƴ$X䗮~̊VlFPHu6/R"iI5/Iar8U ޯ2HR>j|#?3?S_$9:DSZ"kABdM)始 ⎄Sې(X{EO o/]F9am%*`)_$'O~ɜ~QcićAL|<ɽblͤ^,>^VnO$ALG+ʆdUlM'ؖC{f34:CI*wG= a!ҥoX퐙Rٮ-lsNB\ENgtriT"'խrl*3D7%9 & .}zJ)U|t42~ƉǺ^ZUi$\Еc xgۅ vR~|YOe؏* 7>}ʌ!e7T}FOv ýێ}v~X_f9$9^&fX#3DLh4S)d4%=[n/UU& ߰\$\B~3\^{ݳ2CdoK^PjObZ#2FM~eHjS+7 ʈv ]VF*F(T}G= `My]k]T=`PRN/ xy`1VN0;Lr˝|4=Oi3[ebʾ63ϗTW7 aƇV9!$P>`cA7<*Mulk;Ť&QmyOj)Jj{7KpLyI%kےO5A'Si㖯[1}~z aJh$UfDG 11@wUwG_x; Mt#p8dXp+ _eݧ^v1)X@@P]['XK.Ojad W&ojU۾wi,qө!|ʈ6g,z0COfI8ϼ9=Bzˣ pȡMS,!)e;Oq+;'p^)6{DnOHȁ?̯ZXtiYJ&>kK?, -31@!ȜWz t^"V[*عѫAP< W|j/̃D""~ ;~R=.p!$x$ݮ3:YYϦ/0nХSkYi>#x9EWx15Ht 0-ƤQޔ`Dž-ZVC6эGi~ɀLFHtU_F@"Km_VD ű_ #ns.}!\_ˍ1dSh*erNL_Iu3V`H2y4+MQAB ^ѓ7nc n}OKٲKN/Us.cdF>$wQvR í!Q,(5d A)r 8(̷[#2{T"-=aan41EL\q#eGoCmٮ*\,i=zd(MBJ]t/ɏ'ĶLJ̄r.dp l/_\DFy!gcC6?i@Yy5pvO "Ɉ 4A%b}hE0UV_X \twzkekΝCXtL F9|i'@UKCRgPz6"\Մ}k&1Dbs4ҢFΥ1"ZCTY_OS>z~e4vmꮷ5n}wÊ.ڡ0F>H16Cü%%'%iF6Jkˋ+&QnR8z.-t%ozc>B/Y)&Mֲb}>쵔skP?ૼlV4ށۀ]gX5OYBU"5/Ƽog.k<B %u)<xW:kUW{=uY$'qc-w0kئ]U7kwq}֜^2`N\ ),9TI<~q$Fj*@ej8N/ݯv慁~1l/s0awSM'tKuiSq}^ѤMPa^qXb`x{Qϐ#4Y11/og<2GuU̙ zGM+ ER25y\X]+vUb.9t;JRYp`Wms1Gcx 23TR2?φ{Dy sC?gNO@B(]i>AP5}{tFQJey >|o|?T8rPBr7nlE̅m.G"m 9`)}?4fcq\9ɨaޯGqb$4&~&LǓ5sTT8 '*a)7-h6n9}H?By~5yjEQQoOޫ?F\fPcs`׶4oAf#5{./l ^[gJlyf .8'p&:Xs@A,D '&~R{&F|ZO ă 'ѩzb {m)g47*ZqRUi댻_}/@,}_o)% M]mԺ( 5i\d]uLηn^cE^44, &8\ZVNÏktW0t!4/gicMߩS3Po=^5l~CK~ @LGڄXpD)sv];6]> kT-]W /(2Ez9!]"֢5ǶǼz2`i%!KGhXz@1%j~xka%Hj"n&R]d82C՛uvM*I]nNTeT-&$j1 U)Vj )v>%~T%}1H6^{1f@fVkY1R_Q6}B g5~J 6OUTJSWʇbFm}SZ "i}@fv}ԕjLt6}p] ܵ`AC8m=jMY/ytdӡ,\sCا @LIuĠF&ž3~\t&Rp_UOFW0>>ARZe$g^9{hW.#=bHY >qA '艆;Lua6NVnZm増w^IT[Sl!2_E@jBߴp7 Wcxզ{nZjX9GEEԨ6*ZdI+6$a͢NT/CW UmE$l֝~'Plv,a(|Ŷ]}[DM4k2WO-oH*TMvOkJ-yy%mqK䗣9S^E7}y!<)6PɖηH6F~h*枴İ艣,b)8|h'gw,w3n%qS35JgySN&5woWw v@I6؅_ qZ+OgHqt_ڿ1 ߑSf Pbt#K2I漿v?S1W(rӁiM0DqHbȼߨWrj%ދ.Xsa`>sƭ&} ?H'قǰ35!=EQ ՀjҠyOpCf?ĆR^v)CxeN[ZГ:@FNVs|\m y1C\J0ԙ0@S XhKXd*'p|z}_HBSL)!I˓S2a $ǐu=u@%8W1>ǨY솁.bQN&U#I]wUx?uU2) T`K9tzU)ruuynbk+~nS@ <ܠ5f옏mAL߀$%rj?Z,7\O1Hi_T\ "rdx34H+fNHch-VbsJr 2uT듔T)ڡ)P٠yk*^-qB ͌wlT˫Fb(tUoI*?}RVC8DŽܨIm"PlV'W`{k ^TR2^E߉1wk˸Ijњ]*f@Κ#>yrY +/ 1 Y2f[V&8R0d@#rB:A">Ro$bHK^;܏M5^HdKc!b TD~P8KO2~YL,Qq Tc3ir\5U:dxMQEi8dB@lF:-ZOmFA1Z2d䈻xuidPÛoL~.#[zAkDգK7Ѿt}aIsZߦ^ΪxN:lϯn9$s#яc/ 4`OS)};<;s;i"0i6RT\vժ̨h ;RW!~)4g"wt ͗ѕO;Te'Wv ~S{@KJΆr_b(<*XI򈾦r Qv,<IFp |=m{m` z)vs5%:H! EȢsZ:p.6{2& OaU"5|:Q*ėa@I&e;J,6o{e3?G}]f lEUIGg~Mc31.GP5f.Qdaԣ ݄5:Yf#{fPVn;})G9"1_s@LCqBm5}L32- :5fRORsRD-De찭<<"M5%FZ* 'NRpIvE$pM,%G_g&xI%Jl楇RU:E Yde7 w&OT]ަ 'pžv el|,_2ٲ stC,cOMsH\H/pQGL*+HdحHKy]#d+<4=*u)TU1Ua$~mYgjj'͢q5D cF/.Ld΢znumbɧ!=q(Vcj3].JYR37Us]Š6?15" T^V@2Qi(q!W)]|Y[;YXU*|ʭv2ɰbysJ Lۗ;JYW^Tѹ Frj".U:$CF&/KaUU$IOERō8RJ-B'M>Q h6P&P3ձlr4l`$/u4`5])<* ql2$o:IxMYuI},9Bq49DՀ X7^9G0\F_nElVQVJ^Ч{T)w,"b(nyEz,J):躮0 Nt`&m);+Ů-> stream xڍTtH#!5twwwII33Ct twJwH7"%s5k1Pdegfv6;/F l[JB0t:?ɤL씡#+`c!Q e (*$de??tv~~^q0dn (:[OMPsB Y;; XV"L75@ttZ~5 P1e rK tv3uv s bt<%h+T큐2`}6v+ 7x VK*0X24s>L͞ ~Wn W>5w{N {g''ݯYy:ei$ BP'r?_7k A<KW. P^o'2+3tͭYV?uiX>5YP=L]gG矊&Tvv`AP$ZOr=;_Oeyk~Ye_(0?: ;r;)*uXBtJ){7K4@ݿ3v_Qo3ɸVԦ`O34Ч-UZ\w6}q?r-@ _r_KfՠN_ tOenr8=Moiq;4jk8ylO dZE @O.PG_7 `%MOX%N`L%~?+V? 9S?) `Oim@>T_d*>ʰ:<V?)o0wqt|z~oE?}@;unj.dS|].NƼ5"Gbճ r+d~S3Q@ڿ\x iܾFD>~+,Y'!V'&cb_y]O(ЇZ"޽pLCxY-*G'ܱFB[cwEmR|N‚Z*o+RzvI1isN 8@:jFFKyOrkT-'QZkWVr8qa"!7xI6tw/w.׭'WBkHݒ2f8_츦}r/Or|[ Ӯ4Te[ڨx¤U5Mnde@D^FLh.)]3*ʯȼ!e1X/ޗdr eI8 n{4 Dp5p`Қ19Vb *o릟  Lz804F#}Y_Xr`:FF-4$/[;{Ӌv)!3Bj SuYX=R9Vᰡw-(\Y'@dzdri*G9NRȸX̞F7$~nҾZv2P^ -yk,5OoPrNLa|y x䈓h!*%lEnŗ5z$xL|KC #g `b J`BgM8|ɦ4%ƊsȦR 7DlsiWy eCc.}{Dc=SoK~ )6gA;:1/g`$cΆxbo1F m0*G{rb2"hhgZulI53׍g;"e[.10r?7/p\ ;t8cDb`Ək]kI :x׆I}2b1E%~UK]7홮'{tЦKQb]ğ}Pfj橨yuL% ~LdQ备e2ϯ4HgJvx@ov)m1|`S J-F<[Ԛ:#+FWR6r-\V qVO'?̚^_ N4֎jz|r6hfḅُ)ps#Z+ 77s:9[Nhy3IJayN[;ꫦC U޻Y]tzk#bpa5bT~-tlK\b~MK|[ȶV23YMxno[߿e[yMѶ3B |&vnȣ"r TԖg. NZzw򹫾d`CN/ϹppK..b"r.3]tG5gS&Hߗ3~ɄUm\=wy"DpjtFg+GNi.vF0@||0#4}ZA]5ÌWzv:S @z@: '{ɉ7-PIE%`isعrql}v?\>⽮0=TBC#V<yY>*4Q{~^͍.i ;u{dzP] v”l8VP_-xC^b 9`-ƬQci$+rې0;>(=]vn<ǖs ߩzA ȑBTҩR{LAk魵bNBR7anid2GJ^v6G'*?:Tx}^\O s\R‹6֤ODGn4ؼ x'I|4TߟqkeiqO'Wu |?Whv-1fC*'ceaW^cMsE"04*|( {ͺ6F֗{:4Ǹ WQ7q!?R]Rqsj7'RWXwA_ER2J,.ÆfG'P:9+v2% Lr/zOf;LE Nb~h9Zs8djdT9i>}-1!M1vƅ^ʪjsX6WYKlQ[us $&d&_rXjTrW9$l$ネ: ZN? 4,C_|K sNao,aDŽ2cZ"Us .ቶW깈Di ցtJ!-ǃߦBW]4I!)>V-Pӕ]G}%030Q禟>J|w+R{up\O^9kɞsOVCl Z{&O2Ǚ8VZ} 1[yHT)zsM0s㈒5 *>I#k,dzv.x\,t ",7{#"Yʖd%ryؔ_ޡ `cܧ9R,>{t6`1+-yP ~ <&cpZeOt*PT84ubhA+_i,hbG]5N i9mr'J7;u[Jw>։ ^*^0ګ&ieݤvI.[ðݻIMY_bE;FCnՁ:D$V{JE:$?" L>([O/gHFưY7mq<#u"$eҶ|ƩpzFIU9HC2eRS OBbF#Q*gGO$2A@DawiF_ LV@dqУ ވ@2-j>?2M'i/*Z!H:Te"E86[=ͷ0IMFokL0yyH G+Ɲ$UW5H`揫Xg/!M2!1N".%gJpVA5I%ו<;gg*bl!}oN1_]AP߾܈Q5ج>nС!Y Q&.d2g c#7|(;jY꩐?h]ʤAͲ>EhN!Z{SP _ ~i^] 4 ?,5 L/؊%դCٌ!˦<ͱ %g|m+p7̛Vؑ%UD2,V*Lljy5_ T!|ۘ%A{볋@l$~x)Cr\4*"bQBw}ΐ~6T`Ar[-吸x[4`5H+}ypY"P `Sn(^T|9>114='\K&NZݏ:mj*ӟSR&@Qv׬z5n>e3 =v.̏ӷ^^ʛQksKK}@$B|ZԍHfDMNv!7e佣V-ɼInv;-,FRp[.B\Ky2 G|jM.'h Kûe};iWѤxD:cFt6O>5LjM4^CХoZ|`r\,u]TF"Zo$0}Ljg87ZF^1 0Z^+S4tp4f {kml=R߰)qmDŽV\Ie$ht19E6cYdw82xeʃ{8M\SpNy1oqoċC>nV;EANp{:YTҘW`Yh# ! |K 9'Ѷa6VxO  .7S.df_+<4u恸ϕ&XUǪp`Ӷ9< |=|O_om3@v.c ]^"jWF[jI : Ḳd{ ~{#EnLT!$ RU`uYNnHu+Vs-U`@,d8gF|4Eb[Y {)M#8ING4>pp;]- r2xܗ,UFFr.it9h\|W8=ߤdQGWrޖ2*1y ҡͳė# ڠ=?wzl_3~qyv0}a{tGŢGM(wȣ}KFje2ă18*7^-oz-YW2^x& o(d$ IlQD#Ɓ 7ݴ s!2,9b@jW18vJu&OE/~8:r6]~ݝmeGz5?D4}nkNN(!6;Ed؏##b3"=XEbz`-lÖۡԹI4ɹb‹ZI0̏kud[l+W׊!vb %E[ZQm28|a~H) ,ˏ2INdAt"pmYf1K^bAMj3u$%m4j1 BD MImvm{quo7:& +:LyURI$/&);2*7o+}KIDf.Eu3h}wL #s'J7[= 0D%ՠUG YsVadtt`u`uE"*d+SDF 5OU`e͐֯EqEk0Ɵfk5-oHk7–"ߗHN[X![SW@Pܷ O'F,ɹގdGA\2vYrm+27_^}3/}(\(zkNKD0@tZ=B&}\CtY,/n呚٪~o^%X w^M—B^'`b}>@?Өlљu#E SE#$m쒩\Z6y9>3eք%҈%(jPp dnuQ(G1YTt줨r.%.䏒! ':dǖn,ɄWȯTEvq6೮l່Xe$D\ū)e("J ^fSϩ;gX"@Y#1 Shb դGt;wlt͎ޞ}$I|3&#ҰLKe zݠɌ'ܛ#>*1E̕*~ѷLJVZtp's%Img1OBzzЅ%Nq?'>6;Nqb#Y)\ S0FvL%_̏6Af{ ̧{}3O@gIw.tRQyt2#ť4eCxB,xǯӗ\$JzeU)YoV%Mw,LHpz[J__zjV(0|6#S/*5HTvdmg[c %=X;!3FCm!\rܶo' S25af9,bB4aF ټdk0Y@Z,}{Ж*zI3es@dO`0 YʇOTHJ m!q~? w8kb2h5M_cSN$ gcT4\tVxZ'e;wSHyv17[[3m3>JYa$ֈ3&5hzzhQbLh-2X-Dcnp׾/w͸j$H ɀuxpQퟴȑjߤ%׸TRjc{2oy`ܾwTlK܎ק/dr`,G&0+$@iyKvV:çQ4:}#Dgօ^+b~p=Q!/W>W̫0_z \SOr>k&гX0zhJpZ31TOǒqd6|4Qn0xˡބօh] t9 0A4VXJ bΕBYEb}*k[-gUWNLGob^yO B-mE~!:Íړf :˂Fv`r`.k zz$"'Xa"t-c$1Y=~GGS=aGPQ ۂW k`pE=$%"+ eD~+M?:p='0MksQ'q!d<[{y+z6Oֆi`K5lSA Q h|ƽ2 N|9\[e⸓`1k;LT}3˓d0LPڜ,_^t]uU[o"Yݍ9)k>CJ7 ~:[8c&0~X\;`$QK-%M#x3^(S)I(`q%](Wx`VW(#TJC80| ͞I> * :ӓwÃ.&u +?ߐ3i2ټ .I/RA*B3@:=k6cﹴ͇(s(cZց,\ qi'ط`YC-aN*q.uԉڨ`;WЋaZ TDW@i7[C{"a$aXxyirBb ޮ>|QNOq|sL>mVX8083Tzns:4mc˫Yf[` .c}»CH! \ƣN~"pF}7E@}=ZGv|dqiYZg0>14-in4^%HIan6U3_L38ȩ|sbrfa=F1Jdk{9a*F=a%Kz}*4Xņ=3.sYY2㒪R=M Qs'z+iz'uj'qˎ;",-p(?f*ޚ?ʺc!G:ڳ#K<is(>H;YeA1P|+i[ĉhUw4Z-y}~Mq51zQ\.QcNAew!›#CV$@ѳ2L\> stream xڍtT.]J =ttw 00-]҈4AnF@@o}w{׬u<Ƭg'o a(> @Q@ ((/((DfAADl&`I/" BeJ LhA@aPL (.%(!!PCl 8 $bSx! (t6\8ow3 m `?Bp>r@\<<.p#A [ ` -7x}@czrLLMԔy~7o',? W!_u XU\ҁ p悢6]oG ? go=n(4h ]7֪@h"AP6Gn`P GB~=(>ЬqB?H4h32n]Bb"B}4{F0@G]vpѯ}`W7I}G*7MP@oV`)KǪg|C2lOҸ|f-n$)\Y/')}ה9f}55&7]^Y%n4}~MHn$ [^GguW@Ԇf杫1h 7ٓ,x(>FnO҉q÷L [4M[B NҴ 8'[:gퟖlRtTQKj΅̉x"K?[]xUhuZ RLz3^j`vjM}³M]#RFR D2{%L_VPi5BN=[t=1gHEiTz<_.)4:6 ?(Ttup9$ [*zb4XJmCr-EI9c|'ZV KNL,*eiGJ[u2%d(rD>IFu.pAV?%J%fv?.bS9h;V"|$%s[,^WHXb6PW}ab'>X0Shz~lk7qq!!'5#R5K{P(ÒV`Ϥ?nÑ*ld/J_}uSƭ+Z\i&Z6wJL5=.o ]{D弄S$=UC"i-pg`AʉF.4?L-{*(>f`Uxh;b q FhGf  g%'E)FR2,Ec.7o``1Ϧ 3Qju-~A{Nޚ߰ZDiB6c0CztAm%F'Ѽua~'uaʶ=!f* Lv gQVYNr OAgLqtN K~ư9%\3o'q=fCƖt F"sD< 3hqnm9~ΦϩMϠj&$ոiGͫ?ͅ2%w4&4nUH8zөm+ƯJc3ta? Vj~O3B&;3NT5jIrj*wHWZأAI8_|J~C^F.m؈VW)B"E_AbcȢİ4xhjeCkhr9i 4<7 lԎ 5]w%mBѼe>K$5S͊K7} b;2 [T)ٽv-il|su 7Fcc {:5)"jh7דFC8)O~;Rʁ!4wegOYBF*]t1-[2F:cSBL=["X7Y~%Ƥ+{A#?Qg7˛ƫIK}P]oW}|W- 9)鉊Id򉢲FsK.}-o&G¢$j{f_wGsoHeg7z0&e7Cro;GۭJjre}BrζʑVyۤ1m\u4u0 b-=R}w~; 4Eh;;*NmZkwRHwv~ m~M-!}PwOdG'$1--Ÿ 2LjŽ&ا~7=lDznٙuFarb(!/='r_/I6GDi[{<"e[qnƄwJV.I?bdCGnOi ȉc::]퉮e3;#xN|9#OִxG랉 to6+dV逆ba%A[!L;BtݍV[Q72 ٵ%kG+~q!fN{-I3nvl8Y01pZ#\ҹaZ 1tbоuM+3/Omټ:9,Gw}'N_OV$^6;P,snl{v7LT=s쟁*#ܽ;s}O3c %аv:ɔ> r=˶8g0(c5fQmWjY=Ɍۧ~"`v+qdrSVw6#":>5xL"{opD۴*gdMDf!05W.i޹X7L0! jC`Zΐ]g$Xe6}r=7L >%RVg M쑢WEJ#$@=Pr^)Be8s^gjH.٦*z8a:o ]Jړގq&ɭW!OIe1PmW V, y#"=GF'L\1ӎv0~ Tyy|OxU5rٓJ>J]M'9#G@TQ1jt0o ey#ܼBEHm9N!y"I{Vkʷ q~Цfh\D9˝EÜ7T<=ӥ!SEmu6N3wE;%:Y0fQ/ Ij4<=','\{ms݊gY_]Xܠj*_0e}[,"Fof>W: Dگ{osT~0bqV4wwYa<+HS'&w)N(Jj[FgK4MoWa+emqU-sZS.ܩ|2~U$z_>u7Fd_'E(i:}MR{lKԸH]]D ]"6SDHIp7d.VRzR[k ]c5G^Zn[>917~1`' i Tx1sf&B:Nmۘƒ~Ь-Cu8 N_ME &. l $. Nugǝ|K3 3I$8 r&X[pZ/=?OO` WߘKbdةȬMw(G æLp;4,P>ϫVL؉Hrbc_$Pjd;N*Jkwnxqk.Z}oq*| ȣEYR!gҮo YjJ4O#9+gW8Cet2#H5[λvkdpTW`jBA/izQLֿ96e 4X}s4n2bdEA~*&D~M9:ٳuW+B[T;!ޗҙ~@ A]h5[T}ŝ` d]xQ19̀P@wVs0Bfrp 6Hc8PI8iw)#>d:Fzܩ>w[MB|h ^Q`v /!.~}hojՅr #TI@Nཡn0왆9s}oj\np6q54g}q8[`S^>v,G2EgWf ),CCeg1?|T dC[^wpGKj6⟵u䘟(h;GurccfDKk^ IM X=llmga>),NIT2bd*[/hI";usIJI}z 5S0=r]BQS3O +Y~W0ql $B6"y8/1SzGku-D Ė':ӝ=>!> a4GF0)XJɇl4eE_G?w6S%'+%gC10 ],CT$=2ڸ {mڦ'[g;5h VoI'á޹ V75şbFqq̵+Oo oteou{+(G8CL3˚{4+?b1:s8V_}q Z79G< z5N!χ~ŏWhﭦ(fcpYfQl},7.oْ}n݇^L[%!>*.jfk*s+l;3{[t}]' σ%-Q1cS !<#G%l-ݽ+S[׍A^T|>?UM}|7D,nv2eȯ),?X|~Rp yWS$̐oo@E+S{$+=SĨ˭,f5>A`|[ :27Lj*˕}fVe}pD8,*1:tlk9\Z91S]d-!sat\+3Ψ]᫶ٺdJoKkm @}aZU?T2$c/V~|ڈw\3.t]쫾Wh}Ⱦe]-%|0uz]Hw7isJ]{ 3FuMdkHh͍?`J:8:L{A1[g<%sAq*]N:os oh';wKbn.;̉ބո?ݡl(t>d}D ˆ~sI.~v+3b6Ю/LE';` yFQ"Wޱ*ΩF>/ҁ i*(ݳPmHqɣ O-*uPp}^}.lwPzT,?M(xga#+7C*SP!6#ugYtnNbL݈eFPr! U쫶LōWqmԫз_|ŷ;v(S(:1%|, ۘ ||~I5lcT &(],ZDr2SƷ&9*WLZ8`ETa%dG91|Wb7aՌusLt+ז.%u׫RBQ~p$M>5b;|}g]NPxc68՝TD +EU7<j+ʲ T}ѼWeZFX:eCϟ[;_K}d8G왏{[PFx~QKٻS _ V(UG˲Pݖ˲2,㢮KYo(ž KؓiG?Q⦡T.&ݿjS6br+UrMtD䠼/6RlL=Y}|4^so``-5ے{mYT7kIv8?7MIu*V+OZr}$2 ~VL@EPGJmen4qenW(dHu Ҵ :Mt5!١*9t|5\!06X!ürv3df@>K?S~&/ް  oY%tͨp/+Cr endstream endobj 67 0 obj << /Length1 1546 /Length2 6887 /Length3 0 /Length 7930 /Filter /FlateDecode >> stream xڍxT[>R)ttwww  3#34Ht#4( %H() - %7ƽYkw}>gf !#"yx%چ~~!^~~A<#0 c1y 00=@HdDaP' EyHm^ B(`g$j@(/w; . wԎ@{ .D%y0gn70!@^ Gϒ:?\C@0E\< jw@&k&p@WpC90w= u8! / :$C0=b"J"GU> G"x`~A2Q"x?S{s\7( utY' ~ RWAAx` $@_\DDXz]~n` 2Q5ap P G{HOP8H ': 9^X'0GWt5,tQAD€ѳ?|աN0tQW^4g@8C)`GV@ԛY\*g &?v{w0\O$j aY7{tA`O#Q uF)G/89ꁑ@ߪ7 ҃!?o?PCtC"4@P =<}PFt3 C\N0`޿ۅ|@t>gN_0*>w{8 Bu pTPP{G 戺fPzzx:ֿě%]_z a-.$D #Yha?Q``LyT-ջܐ |$rϊOAw Ghf ~>=%%[eh˯EWu m;䔘1/׾؜y 9`nE@ain(Ls'/D A'ӹKt :}no{fR'߷tF)Cڞlwo%7 ~$1TAjN:l9' 0޴JZȉό2%LieKDOӿL:tX0у[J;ĵ+w;߶Ir8ıop+a@>H7n']n(N-+\ْ=wma?L.1b}Eo]ѝ6uS2U>bHecp^c^{֓8O XI>X l4Tк\l'@3NM޿IFp~zasrQnvsִ,=J -t *y%/F րNvp:/IX\{ugY: B4  w^M~ɵ-rT2aV $R;rV}ZS)``Vb#SL:_,K1Ι,^( 2ZvRd;IJ~])lbޘj`bL1f 5ᄜ-w^`.Q)ed]^\.{ Yz;L(GClȎေzp&oȼ`o]eAZ,rjaR zl 烼'{\KeOeRS^TzUT"a:1H~ITX.Gx=AqpUdNQ6$J.NV /!}kl^N2BiDQ}MWjRnR YxlNBQsX;gM3V76MqkG$b&D3kx;e'FkKU{uK!mL闞6h1xG" $^lى#Lcgd|XC ]YY;:Uq7|__$R ՕzW wT ܺs,Khs7FmƐH`צfm g6٪:hy Xf;hf>QFT[\tj=7gѫbsԊ?h~:9n0kzh38?+;:l~R+ZܑraYZ3 L2037*3R unu]؋s#63,W;o↉6!a;Z(^>% HMG((;M,Fv4ߋSzmLƥI䬞b:H ~v~u@!į o0x},߷U]~zjZ6$vX(1]HY *O,q*iGvp&!Sfe槟2wt8޸=j0qDuqۖ'nY3V\F>jIɊ] T\s6<%q-h:rzuߥQ׷ 9kNZؤF@<;|q!q3` ֊2*~Όќa-h]c?*z;Kw!# 坊~:ܹ]e;9~|.MK&0]*iO66"]ؗ,,n|%WB]SGB* qh~T/=iJܶ/7d yƬSs~Le"0CSjʲo Y^PQ"q '0j3o2}O$8Ї)SXS\%)Grɧ8whrnivϛ4Zܩ4jM#N^$?ڴQ]YH ~z-xH`uq뻰IӘqC雸'3ºz]X'⇥ kx\p`w$9&S32g舃x7Thi 3K-Lt |Bg)wўF^v9#`K~g7[#w>5Q}iWN>I#խ{mX|X1b-r_u鰪g}~.c=t8 7 $4a7QT8*эj2y'}VqY[oI>:R;"u9QPaYhMh<Vv$kM}_2%Ph%kSpOQY;n lWEpT#_6Tf8ѶTu*[Nj,Bc!3?Y`i[mPxT2Lb|a˱h1j+JEmIێS({R/e2S, sOܘܘlWS`^\TQ4͐;'ԄxϘU>f)}2XT߄v*DaΞj=ҩ|>`s`D0+5wr[YY`Jj3].Q(\UY0ɲS1SCTiVVI漩Ătb|w SjIr{IY͖%o+K)5#K[Rg4*iBP`[ K3s"\66#X)+]ɹ⠈Ȇ C+Q[ak<)Ib~h#N]] Γy׿5^pxe:jV햠PF/&r$6Z\WE;Y=taY09iE2umB1/|3妾&h*.X =n<BF5V޴VDt0=K뷤ЊuGO0'㘁 Q,^g VKB8AT#|vT4IVVfniν0bcjAH1ql@l:{HD jwh2,P wNʽp&'4o*bwRqp;d%WN)<%bb"wSwrO_`S:)BBmVGLʩ2CvD=^?XUYCAL4XᾱH/I OGdJO _[WFLFZ@}xR$PdŦ~,mTb=ih;N@& Wn߲nx5]-/|<5 ܲId TͻM g:رD'I58^H^slt/.5>Ɓh9'\yt6-+!LYAgl{2B?㩺ZLL1ߤ\;u!HlPYO~c^~Ήhr՛ Hdsm洛w[1p27m&9,NgBYn] >A xYʠsD yms鷬/hNj !=$j?l/j4G,d~V:+g[+ qim*9OK8k~LD-t%? |} L4g\433B%-Jf~70t@}Q%6/WCl=^sQK`LUvn9䝶e^xCtdKYv\0LGʗtyh+埪wٹԞ@}}rzZ;K&x>A0j|^g]ަ2:St H'  U+sR W+J<7-9 \=x ii]^ ]jswC ?;'Xϑc5/m53PQ>8|}<{3ʜm:wx'-3ӗ!YO^)v*> Z֌b\ \8cQY>Έ +wk9qcx$ 캷J:3yE,lZRj(2嘯[4[ݑ6X&鋴.x0޽;WQM˞ղ^[U||߁04E` \!;Fa>T07ABrs;_%g'6{G+ʛE\$#{X DQT׿եTWiv3Sə;xv&"x>Mp7e*~Ht M TfQW|g)-Mլuh2~ZUW'qEgmIWtJfAHĔg!Rr}z84D4!C.jaISH=ڕHqMl/v31uf|)&E{$;ݯ= JY][H:Yy.8'右*CG+BݻS$ ,n endstream endobj 69 0 obj << /Length1 1398 /Length2 6190 /Length3 0 /Length 7149 /Filter /FlateDecode >> stream xڍuTo6-N)ctJ amˆ 4JH*HI -!(HtglM5;4^\Vj(`i,@]aCaJA  O3 @Ii *`^(Ǡ8&rt(J**ʋj!(8 4ᝐnp+G!H!ǻ+IHx{{`n8*,FᝀfHD sC Z8pps]7 W"<$H(43# 8 P$t%Bp; B;\@ ^ C#~9\qB< r!8a ;Eq ׈nYĸ!xWZ(,Nv_?uAcwQh_C <%,(O_err2@w( &Lq% DE~8z"'$w(4? 03aX &pO=^ ?+a`lc#g _\ WJJ*LcCmX=] POkW^ W溁! `8KCo En躧ooa\}:H'C]DkD<۪v$Y\RpQ>H wC?/H BF܅xۄ$up Τd0, $Eط$Ao&%@h $~U(fF\[peI ]4GQ'K0+ASr* voo)>iI錖 LU\`zun2uvh䈾8"f.!ky Zof^„Ɲ9VT5i(ؔ?4:5i8"yJJȎh?ޣbS3̧`oH/jqg쫼g S.*PÍc܎4%~+:E@f(5kdN,qrc /*kMZnx}Wݵz u[Ki׺$ʞ3_H~.UJX&o rlӠ/jP'yh < _K`}+,(<)ISUEa]\jo';}՟{oq=~DvJ:?/ʽP 0S ]H7 mO5|e0A_v^Hg;s,1\aCd)L+i6uZOJ&^8qwMOytVk N5柒ߓLPiI s,Va2_+F pGhxw25,v8!@ 8zOG! ?"C*+6_m $xe mz^TVω+Z'g6[&{+rUNCm`or)t̷yh˽}Vx0/pZT^L֩` B8yn-L&fi'heJW}EȖ};:p37hmðuD/4tٶP>R"+U1㒲r6Z%HqlWf -=Iw.K.7ˢ3gwUliR!st#YMi8+ڵy{L<~<=-ʀԊ;Ңm5#3Z=hW}Eb.D4i %W1TNj$էS"7u9?BNeU լǻew_ 2\0b6;}>x͞cH}_b;^=⛝͞:??@m07kDa8;}H`|^荙2TnC|v܏یK}?s"'eșЭNg2S`˼7h݊iyp쩩hXR8-:]H`)3B[OLlZ>=_{N&X-^KfNOY^ \^Ov=MNRWD7W0}-30U(>n!?/\fx/P <1"Ujycp/ahv֌|{)ooG-(`VI7soN5 KO$c:Wzj \%9px@jlN4^eyXmA}痋DDh(~U:a,*W- xg}rjڔw<+!'S=dA=7/lJ{O@{_~k_!RѸ]r2W"Z티) ME-׌Qs K9rr^lCi{2j|z#L\׵}0 5 GNŌ%ҘRAz K<u,c=/u'{-T6NA'wE<E7_r9ks.5fNR--x4>&2;XLgp;orB/ki}z٩:WHipO-1d䅑>B wPPbl7X=A7֔-iP&iPvWZU=``PȝkܘBȵZӼE7ۆ&ypExݒ2;?jVΝ"ClVZdže,)M\NgFW~`Gc@|9`g| QX + rϺB(lk}Tw6DDDDRG&-ar}͗7iɞ39x4ӹ[:`w_L1#ƾ\n &N08KTq=˷(?dnȺASljerptecݩG(f;ƺUlI݃Ŷ_W.׷:NeS'r(Tc֯Ugp*K^/ {.ϊ>3t@;e#"[D@q"ҹОdi:M}D5aك o݇^<݈4)ڠ&v$/\ ;k^P{oֆ+R^8[/w <;k!cX!UonY͗q[RS]iq©Y2XKS:}y^a,x+үHkЌOtulK=2 CbhwvݘGVtGͷ)&"Z(REzFyuOBw*G tZ=^":"wrqN |0 +Q?O~Pn3\,4%p2oAT[N9}4^|eW.hBS2/a.Poed-ENMx7S^=_$N;W\lc滞ad_P(`C`v _zsu` w4wj(2/lW׼x{%mnb=7h6C xISSxksgWUێtI]8pumo~rQQ0 G(TIoi4BY0neʫ'Ʒ>~zY[|p%kz $XF#:ܸW_וm)iӕ_BH>{mIГxw{ѶRmfm[/!34\ǝ_8S/fCܔe'u7b03.ǻgZLĜ{MBVaALR_5d<`|Dl)}'(,ס .2^.m:Yp쫟"|D;NG:mr;&a659 owFӍtC|"˝.oV,S/C+ʨ> stream xڌP\ 4-4Nn -@p ! 8J=Ϲ\LYQ(redeb)˰XXؙXXԭ]#Pi]@sM\ @Y7;+;#/+/ ?μqwks@tAsprr}Gow=P0qڿg439Y]'-#/3  t: P45&*˿j&@ rywqj2%G _2`{8V&_A;9;A k; @IRӕ`2M"*ݟ _=2} s1{{ ĭfsbڂ<@>A s0wsdY;em.B#8YXXٸ@'̊^{qtpX n@?*!̭\@KkŸbſ;[{X `'w;} jnJQQO#;'z8&2 Ͽ}Jv7h t\ Y8Y޿X?o,++oEnvvie7;s\߷@}@T U[_6,/'\_\}\a޽XX}lowj9ll&&^g8>[if& G?3_,_#Y0A<f".6`8̲{L?=7 Yz[j#?lWf_3s{$I5if@V39?/d'_u[}V^V@?,ec4_9ޙ{ҽ;;\?`W?hGov{'lc̮V?)1w?{0׿owj=f f|6";l}pZ{*bWQ"ӻQGl%o 8,kQ8 ?Z-L|1\v::tA8g=p.vf2+*`i~3!ADqs#AdUֈLMP\ $K<qn-~gH'<96qe2 EVc.OhXRg3eC:t\g&8B!w)}bih(-"-#.\+-Xf">o,)Ќ!D<'ncٚPZG:ʤk:rʋZhٚ *BG`+pl`e aԺ׶mTlttP(Z0b\N."hA"Bj8*=;M.GO=`"X}\%g$_ >.-;h#eP%A!S )v$'?BtbjMQ'ܞ'⍯03VEO28~h -,=7NJ^O< [{bh*fщkVT,gƋa;a_N/AH|9% ``Hg]Q3(LIw_ʰ=x\s9Q}yM 睐/.)Bu$getjҜD7˫ρlCEOTk1- ,N75U| V2Cv6˃oК(jnJ+_ֵ]D붨PFR'N[hrqaTZQ$SêE"AɋXfM7-)w]|N*g9zPgYŏR>do "wܚknT,)+&>-٠W&,t^ Lpoӆv҈ˏX6LqbK:]I#䤴O+߽JW-=VrpO?;k5(/ мJX-7C>|9YtD9I$FB=ޠt.(% (aZt:!5?^>l H[@kaVX08i^g|tEX/BUQ^j_wZJ S5EL dXbݲ?Ռ5,9D3Xqb ~?կBIrj#Kn8w[e0^?F)nWSZDžՏ6oI4l梁]Q_r1j?޶ƒJJvj+^~4kzش{ط@T:d@R}X|<6yN*\N̠."Р8R`g}'\Epx $+!J6f0T+쏹TtT+ 69AaHϰ3$THG\R?W\ `? ,~9iQWMf֜1ۨ[[z§8 \&q)ƴT fЂG'5B-Fװ-bމq-,5R,?um#tfc빆9}*SݳQf#S SS9z 62 t/h@Xs̑41{p0LjK 3#~^bk|G|y >l'Ƣ[ȩΣ%u.S.Owz"nS';;j#v,?gu]3 DՙdmSX,0ƛ!KQhԈ+ƙLhZݙ=oTBE"m^dz;M@`m2%9^,mI_އHg <6#Kkױohok Ů3C*NÕ' Rf>YŪ/h}Xb"V}^YR'HMM$yS٦h!sO6@[/Fy? (`!?[w@20mp,㞀Mxu]ޥ%W;!^AP:B#ۗ•%/ A!|ew٧߽Nzg WloLg)qSn9zQƢ1 3i\޴^&F݈8?B<+n@[l0*X/V͖izH C$D`pLe2~YPUE0`Gs^\>q e@I"2g*]D78w`~$qڲ&HrVf $:3qI_C 9s `>QNoWz6#k_CŹfE 9 2b"Cs0es*18D# $ Y8zI 6߻b?ο(5`VN#_NY> ױsv@ cױC:6oUT乎0Z.EK`ㅨ O"TǍf迄%7ӻ>L:Gp?T=ˠY?ZX /iG#IvjqtG5?v&V 6ט[ō/h3Ɨn}yg}coЋ`CU@1C 7eb|TW UE7tÑB:ᖔΰh"G!j և˩!^7AJ=9RBYo{s0vUœ-}w1xtq⌸z*fgiQ<"}ts<H Ŭ5\?"ҷy 26z1SDHf^ #ysm9c*TI6a- 'KzI7j%f+ WbRvܑ֛e[ڶ OVKPҘx54#FRVM{2֎ TXe"h)8n)ĹLO08א2ʖ[9j)䶚)Ed+qB(CQe疗+긷cy$/)LB] Uvzv+ԙ{XZd wO >nzNiw6> 4hE|_Mc+V`zn|t5>:STQԹ9Tv0lVKV KٛdBw/[|Bz>2 BW+F XfX \:XhjKv='Ӳ;mQn$q;3!tQTp%[HGԩ FɯjE#DR 5yJV#҃팏&[bvAN$GeV m<MkeB8V7dK n^bS!#xCIl^لӡNUteD%e۩[uMq$y~S7Ϧ uG}]՝;U ’-~('F1Ӷ3d·}̛M̓OC0Jmkk"N*!=~<=`}GBFTI櫺C1}bGncf[ w3,Y-MYdV흿ЎU7ZrNr1V0 ɵE 4 1drT0ඊ΀kP ,ԝnHLZ`Cy)6P94R Q,"Z(iw OO\~OvFt-+S-:drB+F6.nh8Fԓ`qB礷LN%2#f5e/YU='[hdžVa;lV]OAE+늯L^:g=xKya}Ob g< o(Sf=b竳֤.[?j!ƪt1E>&%*XKI9jι1k!v#ev5@l L|kH|Ahj kLux@eOt϶xN+c !y'!ctrf="ҍ#TMdn*.ԓDiʀ>qK6xJgZ;o!"\DOE;&s am[(ҋI]B.飛l|2F7pP!~TQr7liJ0I bV .ue=p|>J0xeLC?tjBy=k)wy@u>!2̓Q4ɗ&51GI䏯3ⷽd>+_Gxi;1;"U ^J#;|[Lj"` `vrL-28"s1$8x>CA"-ʰ.ǢL^P؛ ]jUecR.I);Q.|ƝNgёA&rvNbLe9lhYE_UӟhusZ68<k02ǞECG RY2l۳gyĈRH|mV0/fr }D0bus@gI)RV!9X3 +,/v0#;X6\}Ignp7=! 2k!À:Pe-&:zJz۲8XoȆF&il?fcY_RFDjFzIGlcHpՎؚýKe(6p^ Ǥlw1 HP*2.S_yٯ KHd?`l;&1E* Q>?Hܒ14t 3Od6Z百+mǗK_/=Vt(F@*h q-~N?AрZ 6fchn+D4MGe]`-xD fv&iOjI/3yjMb6]\$:X1]^ cW B~2I_`|[h_0HVBڳ$NPzV%^?a~qKWkhivZLx<](T5* ×/7:h" +w}0d1.1Ƴ[1l۠2}$̴U#dr;ӧG~jBǵOgZV7l-"8 G֍.x>*rx}s24\;C gkaX/*%Vel 1d}G{N#^~6&avl@D0+p7/ 08+X~&Dr&ӕDPw^_FP7K/[Kh@־o1|ʹƗY"4odhtB5}m A$JsC) Ӊ&͂F)r]Б"捄Ky=z_"٠/5 O~8eKϪb'N.̲m|ȇQ' ?\NQD@LlRЬUܮ LVj<0o_M.y߁6'Y{%$\p<6լa$e}%O oQj>&S5Jl )C7X2 5{)'Q_e8ĹNq BI\CY-\SOE4# "+\Wm?J]Z$\~L4=1Ťx80 zq/;3U@BV[ZAqf%&\hkD庸.&QhvV29FeKf A8l"{Ԭ )51S\x_|y\ a~iQ } qAeºH!`~ΖOT`LogcD. zi({ўhR}_w6f*F5Tw#&MvZI-ݎ||FH̤<_ k [̡ t ^gH|;_`DP Lӏ30NAa{?>[M}(?~tznG3J;M3ELjhJrhט>k1dTty3#Nv!oH5MNnF+J@V<]3+uMvEc~]MbKh@j(Ŕ|4I4o7diRqH;7݉Z_>vMJjM˗INd &E$#ޓ*?Ǧ+4.ҿs:|;yX@tG3|׻kB# )sװ׶::;nJkOi(-a"K?Eؓpqxl $EU03E1o Y(t2Pm|`ޠPdzJ>Mݟ&KۿL2_zR`S!<8rJ}k Tݡe(e'D:M6;X=gkʃ[ wjUBR*<'8`UmAIMZ:bD!o-yA;za.yDS3zO9 +Pdit ':>i<%yqwDR?A:D7VFS|(ѕRۖzD%y,)j>zen !V>-{*8B\"S4y}d 皆gỏYJ^M ;e;_)#`G#r"[)۶]8re`%S>LȾy#d@ƍ]RW>ٻvW S:I\ U*hi46US|'A.B)I_-ipJ}SwjG$"ƍ.Vԩd~mQk<} ;AkҊMr]Y i/%72[ &SɎ {0|NX^YcGp_yڍvK_#[e/t!8W_+daTO0Cڗa5w?ǚ ʖ^.㡹4$#M cx c(*1ݩocN3d.2OHw }i5DN]2\Z@h~(w^rn(.y Gw(1;ھ "#MH]qLZј_Bkf,_}G٩$֩C_vU37fQ%3RKZѥ>ރdtd?DcP۠"z#XGZ}9o8r7CN>+A(d bqU;||w3ujPZ!wIzjODgh2Ɇ _.-Å]$m(_wIAbhP/.5]>;iY(u邤o_̼uy,#pɩgI8S}F!9r /eZ?b*3|6d >:ĸ X/#Rh8,D1LAzY-B"mUrut(4Mn@`Di|}xHCI:@c*/`b5U4,.\~PՎӄVx9H&.4~CC )LVf'#>[( x=\ś -US&nStkiqNH{-"<+fϧ MhDmyPMFk[q;J8C$VDfOLrh>ѐ :Q Dʙ9~v/ O/3,5mW옧Ͼv(p*StQp ੊euUdLf z&v9qd󮐖1^*ww|XKGAn7JI3%1Ww%uVOTXLiڽHVe*FcF0J#W߭ ]j(85(-{y 7i3ُSg<)DbDnp}N5'8);uvS\t{(Jʜ7My+~=L2B-+O' b!_j\EC٪`ޖW,8!΁kBXCj6:I}¦/ 6ɗ^U2!XRhm4 |ba%ى#hɥ~TPnJ^ BqlvնɴSMyPm/rj$8Mr~}s'SdoNBq9V|H'ӗUmW Zc ~oسw)(fHXN6ڪMikMOm<>~!U5B4/'4ϙ/X\&8e~늧$V @d9pvkڎ*muOL$ 7 ]So(;gP=yaNoz#ҎtEH9(nm v뤛+͔ & c\RiR!Г 7ҹ7fO>.wTJ/WWV@2w(EG~ V 3Әc1z&TDIi(ɃNVShdcyY!qLPi!t\3SQ)i-GIXV7(hp Z v@LޮT[e 6$w:'JɃZI#~[tEiѶ{rCS?7ӈ1ܧ_V$XA4agW J+nIl RkVER\GВC_ʦny)D^s0ͬ]*tp>STcp؉gW9}ӃM@Eo2YTxR XD'^0Prv![48 Nqak[+[rMPm.b'#ֹ'ȚQ?I.D|Ӣ7gZ! Eϛ SZQM[ /N,x$/=[b5QnUyr]wwco-.*AOKܘ|k-tۨQ`)6a1myu;("xF0WMrE$ Jݦl8bW:)]\ZdnrJ僛vaRРEu=х aYM@U_$Zי5#]QhM,]A Ά<%ŭ]icGG*WҕEHInnH;ՈMvEul!;Tui~ ;ٮ5_t\nʳxjD`i//n:Tj] D`jCvy{Vq&,l]S@+CO8c8bc4>KYB:Z py>E,$< bY }]a*JG]cVq)z[F9L4 xkW#*4v=גSA" }+Y .4 ~=$Wecn=:v\޼G0>$bT`"?xLJ" Powۆ *$'&Xi&m 'FCZChrJ iG rvT}C^#Lz8A))[+TP"zZHH*kQ8D+,Xx 'h'JFP" /KTpH(dHŊЉˏamK#mO.c}96I/ꪵO!8pm,'ՇU) C0OAʝ~cH&uVexc:! \Kƃ͛&|)ycwEvYg~zqP0['OWAaNܪhv÷ǽ ?B=saE3 Qn@ȏ<|M=TTMu-mR#ڂsyƝSIPbʁ{6oPA1AF~3?BSiF!=U嚀am;slnb1F`x"$B*WQF &؝ߋ?xwO$`YhxgiD<*j ]&ey38.'ePaa1X2%7(`cø)0k;u }r4s,t\To#T{{z2;{VtOD>)аb)C}9Dm$p"9-Q*<JIE}O0fg<L8{bH"m&%w5@OY6;%ȹ:К4zS؅dM-M晹c:o{~nOLG?=dtM𯓾U6l,!"@6'w zknJ9mtQk,"0-n.rt+#Fe]3%G^q]>iw 5XItySzR@_UXy}81EheԈbo9sJC,OgS%]-6ѹkPϼR3E&&7w`9J[#ΗaVqԡ֐M>g]ڍQlny#GrkF4΂D-}bVKa`W+΂pﱎ~H/VՐ蠱L(χ;h#+H9$>w2oUdRϩyF<~rsF-1.AN =dlu(r LJx887}oku(@ @>e_GKa!+)ע0|JQ+3OlvБD}%-7O_DX< چ=X,5?XIU9 >b>烉Z[D6"k?^b8!Ԃ“~sOo},iryi,R[<-=ʵ7TnYiMU( GHH ɨ&" l Xd#Kr049v˚+[2~ʆ0ͥ~"<ݩD@ybj$*lg k0)u$cНƸ?2%m'Um&y"EM#s{1JRYxZa]f#5U%N'pw`asFӉAcaNeVDz֎g\.SD7<əŜ6& j@]&QB=gƻbxȾ]Ŗ'&Jk 8׃aTȹmGjN^{NAPPkgTƸv5lBzP5xk&jY3Hm/'f >ؕ#N꾧Q>kn 3cozL_0`L!7!;'ثPՆV3 )GJjTvu0ąY1/0f|Bz}$K' z(I!%PU ˂ܸ>]<ͫ(\pwJg3 endstream endobj 73 0 obj << /Length1 1765 /Length2 11359 /Length3 0 /Length 12488 /Filter /FlateDecode >> stream xڍT /-SH܂SVSNq(\{GH2PN W0 *;;` 6Cl~GKwۋlMEa;bV%I9 uIƿGS\2s989ܜ~VQY_rvf_d_N?]VAZJ݂t#7gOTe$bc?ݺ8 v7T .+ z1;s;TOmecl,*'?,fv6{Y.뗧Ӌ$t_v;Jٙ@LX2n$nneMbq~IL 08qV?俈Al^CVAv+x`5'Y rX-__Dv/g/ !K2/\q _㰿w:/~/5Eݬ|q|xIi{A?ϧ*6A]Y}*FƼ=~z[+rH_x-8zyKJt79%^0NmjuaPYCt뷃kfy>L7n2}?FCUwxK3GkF}/5Μ%@rf&}ŀs5su==L.Lj}s7RIDEKH 3:EK'FbgY#xw,(Cf/3JZ݃ndPc9Oh&-Tk3rh tEVl,"\^)Lymn-7Hu"\uzXPUC{&wˤN\0Q S^)Hk~cђ'Q>O77zB9ncFr+c]r8x삹Rj[JQSGcݛ.SlJsƚ{‡3 ߦd-+Yn֥-!ݚоxX|b/z#49rh\{7Q?-Ô*2/ERJj> O4u>cŖyU7J'eTwKwc}*&z_FR/nz&~eV5Xλ=ng t5gb{<:giD~n'-vh8n4S;*|MӋGl7{?SPkbHM au m͵2ֲA1췭tە2̺!O >r!_xE5xŖ*,1+d-Ck>fXh_IͻhI\[Fn:$^-V6ufEM')-k;㛞ᤥ Ԉ&㌍'ER8*?T/FT`p9%1%^S%QfHweo$ o_Ϙ&w/O͗ĊR9 6=T؈+̤C[IO RWD1؉zk D33/  2=D1rtrd7qvm~y0NOȲz?R=@e;LU;f,Ҝ '7v=N?l9Ќ.џfs%fGBdtВٚL'up:-f-x7ٍtl1d:%B`Wna63m⧊LXetJxh#]kvB{%@Vlf1pt|PB#N LlWT_nuߨJ|@0Oy)v(2 ~H<@ FNv >IOFnH,V8u&|.k2)tESa)#2:ĊiZ${R4Z,i Zl u%&4BSC Sc٬v4ߏ+_i|PiRXQEf!wcwߜz5'THv h9uk7z+(A@6Z0@FЈ+ ln|sӓcr=w=-&[ä{P޼s]1U^z|JmDsD #T`8Spc~)8nMtUdiMk ~O{dI+dċ03U*R%Po$)ɳ?w'_/_,و1yrx/hדortW2=CS|É_K_nހ&Jg?`:/VsW#f>DIžo1cASb gOƌ=Yv]Ex_tzLlѰ؂WBk*EU잛op69R5 v\ώ_]Rs32.q\KF"1ր }LͤX` 3~rNsAqw3cG7-TS' qEkkz(2+sG&X}2o~ 1 pW#^#}߱2F8P&%qB'%)J.HKX\ؑ2XtSOkkݝÛnr'O@F]?1uQP>=iXӮ08^"NgIAFx ›h~U"8zhKQ ]9㝟C4&f=swWCDj "+sGB L`y5eDOyU:)S7Ӡ0#@$?i|Vk8D/P;A@?c6 NGV( ƾFC%nm˳ [:ᢺiXxMZ/U7RL><2QþJfHkXiLOEm_ )q/E)bP$=3zX<{b|qkDGYtT $*wrq$w"xIۯ)zEn̓";zi1`o}:}# +OOƁ(}(u&+F?ph;wI00pbb _c"^nPtW\M Ft$bݪOJUjX[gƛb@<- aK.w(-6tgZ|3wLT67_;k,K$* N:lQz45A1:ʩhҷ} Ww 8ΦNyJ& iE2>c MY`G$i lĖ'mǠHK4U7\!{y2x0?4E +3D枕uZxZ?`l@c7wnkoZ.ɄmѻCef^ V'OfS1Bw 3ܶQ{^۠Λ:̒-ĞPC/&*Ư|aPr{n <+ah6ERM3}! (>b)8JAMxidq%/,2e[53u.q >-ĝ-B;!:!ْ-#k.!<DR,س>i؆Nrꈹ)bI j&6011J !1Z]4x^ZtwA(C;㼦=;AZ! ,'jdW2 (YGĔ~h,w?Ɍg𺘪̕hK+* $} fnd lvI˯y(rǍ4&Q'ُ[Zh ^O":` MНD 67@#&7D1Mf)ӠY|5tu?/'3R5sTܯJSӚ"'e:r zw}aL7b)j**֖B7Z0œǕ>ٌ^k@>iQ/m(׈ %$=?)%hUc,I&A8߸gELKv]qkZ2xfj&U,ឝ~h>LFR<ϐPZ@(:!+ڏUjyUC|)RĿ9tu{%a:i _#W2]6g>c]:t]hA/6 ]+=2 WV :R>m@ktLkj(έŰmam{xֽ5_Zfn2jx|o?! q]PGOS,^Y+9c~hu4q)jЅH%17Ef1> DNqP/K,SzCZ yADv8E~(k:X[YO/[-ty@;_"KkOpR$.AiĞݥ7GTU3z %K'Fwg}N^"c1`Է_gyvX_ O̜uGR]0%>/#JJ{P@{'>c;IJ"u sEUh Rc*%v4ȂHm̝&`i >~(0ׅle]=( ?V՝4fg\/p{(j֮6T^7Glgm0S-{հTW3p9WQ(&Em ac e '-!q^p1)}\]r}waw̅T_VrO r'0졦8'4rՀ>VqlX ei-;K |c@kڮ9К[ YIR],'އ`X[xqp,)uNyʖ>ߛF#P=R>%| ^薗D>ȑgkV #H Dd 2uQQ񮑼x:Eь>wC, t㎄BQ2j QH۱ 4͚^p~Skw >+/ځU}؋CrN|02ZpM*2)V F(%1L4]zZ*tA1EG_P;[:3յ&)NO}6_<}:Rk|ήZ.Gʦߔ0*, 0@U\/)!IP+/`PiA(=p5[q%З ׏z,yTeXL?˄]nG=.C`Γ'W`GV )2RS<'Kr?lga_nb ՕOP:PC9du mUs'0{_dJg h6ED$rTy.g[l1or2Z7n m&+}-Zัkzs l,reH멆o2zfǽx4%*Mu4r8iχFs<iTsSur6*Qzd-Sn?,`L'Uk@30g3u幬hӝ~ѯD*j`l)WԚ_5k` l{-a+p:@mz 6{}͙{_bϢ36&bRBqD:m֒=j\Ed &;˷<_]b5zB5|sn mǸM'.JT!꺠fo<ᚏ4K r.!'lE8x< !>ʌYNTYS4=ti5EvApHKX8.~J>*Gk\nx`רO4k%|SB߲ 'N~ݒyv-e`՗[Y.&*ex*?&4Cjq r7|XEט=.82ɸ^/5 -=4bՁYRN{36~LeU(¶O#mm Z։[`0LmWq]d#nR;6clxMs đ 6,&Jt ~?d*QGOkt<L8!SoXN2ٿc^=a7a"Yk{ vim}׷/@S!Tsvb3&l5Zиʁ+ʴ3(#اq"ݠ$7\Iկj3CAyoY]?`[Fi{ & ?]Q'=7$ ^=aU≦#Mx(t]2={\ 'ˀz^c?MdF|BpQn6;י=k39j67Ir-Ie{Yn"j@rڙ^{`sA]!'|KytL^0j׳_+ՈOQMk }gm3M ALri)†&)V- 46zg{>BfM<8?KzW(qEd?aB/Cxt[eyJj=%U)N$35}̲k ܦTO&G: =(BIgdZ~fd\Ayo*s0kE C|$͡} Ƽ*ʅF_?::IY%7ԭW*P<~\kRQMIk w0& ^ ٦s&%eҥñq$x嬈\U t?~-u7ۆڼ*'s.{PR)ͱ8Ϡ2+a/;zdmK" 6M/kxבKH geF!@W4vDBd t4?e Z\0pۍp2O7CyθquQ$76V5'!@D]YViw[p 8S>K[;"s|`قpYGu× F yf~?Ab]_?QiJBnD2fUTT_şAIf@mr@2 ;o5BSj)5tb!*^%v-AֺMڠyB^;!G]=Vo|ɴෛ)v\R&3S;B^6x5ZTXM H ]#970˙{BAܷ_ Q('=JFO֗!CM;, _8Ǩ>>vnr=/5Ԁ=ʉu2' v>EW"ϴo\ u><3#'x%M(ۯ`W[RԆ*Q?.ySHM@=t`=ۼsKCUR6%=lLjQ *r}J7Yձ:A7s2]&9|_ց8ŻxqؒrHLEҊ[<-8PNp_(]@aZ2Pgq{/gY{HZY`5a&W&2T[VC)M#Rlvf͆K צN1WA!y#if&D[([qM501:meFmJְ[mgN=5!ڝ M>_]Gf35dY8?Irm?72bVn| fXe"-hɄ; +LW:V)eS j~2%ʝkCb`D8ÔuQ{z`uKߴǰ$}M4g^%R䖄 3־Tw5:\O$ iwݎ"+Ѧ-zK'oD E*N&0FUXۦ'䁻K{19Bk" r,*glēCu] )EFh8}0>ꜼE{O&| R9+=wǘ1*~+$@1q4 Wfj=#W6%BBy2tca#YT.᭽xO, |ӤlAgkؠn)_>mRsxP1_rf .gƱo2|N\&_ͽ$hߺDzyʷ'pRL(MNe:c򛷦9V@NMbQbV$2@]x}aYɞz߄ٯ)cIo\'Cf~ RNErgcky^A(΢Ve+\7;ƬS+p"ɬް>9Rˑ$ dkwݜ͏|oz]ݰl8.aK3 i+^tY=~E\MN[.-}ANjHBg. q[. -?LgB endstream endobj 75 0 obj << /Length1 1306 /Length2 1345 /Length3 0 /Length 2180 /Filter /FlateDecode >> stream xڍS 8Tޱ]EOQ-O2AR*Yk̬1&Q;]RNH؅JEI]ӖP.]8g h9Y]O1l ōidpqQ St' OvX"E0+pfJ gfjA[eA:j I,8c(,%bb p |8DB(pp,"^BBqWL a`%q"ɐHJ$ֆF@$e`-$'K#N8<0>.$0 B R"Cy'WN ` liMt qH  |DulW2)P|(B?OlzN'J1.%KF2 f{gD0KI %L7hاAy|e<"2nCH_l0T܌`r 1<)D abL Dp8‡?R .a_;H4!\J0;1  6S U|B(B)[re)o3b˄qo~H{| ' !2ѷ^'"v?P\L0\{kBgH"$*:10O<8t\BF1 |LBR)4$b;'G>0 sIM1eL`~LK,qG D/a@QVCSOY7;9Vq5hi JۍvZ=F*w\ɏ+ܕi0o(/Ź.ީ-/!k$%i14TbJY饹6y2eҾ55o_ݹOgxvhҖݭ)vH>Tů4,g5Pi/Xgn5 7D7Պ:3ya AM5o|I_Ԑ'{wζbAOliEiGs 2_fj4rgz9Gf[Wk3}/J9h~?Uk|4R[ٜNTش@__vdݼcp"=Oy\ظ+t38cZs2.-ӱ('5u]팴^Hb+M:wUz.& [G6Z̸9!k&lĕԭR?:I=tm/#Xa RG"2dtOW'=nU$ǃ/:^-2YeINVyé<-GDUn+˝qcxitz8gdYBR%GMܸ}ŗʧns7xfkP*3SLP~PoT$\1 w7Wu}}flYSW-*Nyi/ }xzGxVQ³:3 yFœ9.^o2js> endobj 16 0 obj << /Type /ObjStm /N 56 /First 442 /Length 3237 /Filter /FlateDecode >> stream xZ[S~_sj+~JmU ,l$:0' n~%8T1n-K'YR7`Eh"S.iRxÔd9B2eȢa5GK- ct1A|-\a0K@WGZ2ca*c& zf5fu *Tl5l%lH<    VД`DNl) BY\*G80D[!,Z4A-DHpZ)gh g?~]1jxQ t&9`ң?쬚}i: 683X_.pc3+q0]>wn5 nCYcIVd^f<H2aclzv\-P.'շh(G7쳭:U5ӪV3QK\p.~ME0WҊZ^BwjVp[ƢзL{`0hP06}ˍ~ ni!-mZ)ڲy٦o:_gJ3SE*-"liKyUn6 ݂)575#qsܒTy) U-km U@s[l2I1mC<蕊(e@.ѠcԺE#BB$J P6j<.=`S! 5m6_M[:VK> <YCO%06^uMBf%O0Zs>eHz@!N{oyHtѝ1ىX$}L(8#;! !"4K@66|qf|Q$Jd:,$h@TS8"ۏvz6,$I# ^hUƓ笢qt <ב@`łS5Z%,%$JjcD>刣_ZRFfd.]kp4Y.Y({N SXZCLHtz<#cuV! ̠-(I14Q ԧ|pG9NbfjyhĚvh18`vhHb.`H[Z OԀDc a)כH՘ R\% 50Ogb݇T&#s%plhgX ٘=j账HKPKpߴ}ɴrUhDđq S5C^@6M ,`މpC -$<0&m4")ARc80cej#r:L8ʐ-~98Ao$>~,^᫫l6^LgU f^y}wRxx1g&QlӛGֱG t#2?c.y5#/b\1`N ./ <.3|W/>M*>rVAה]ͦN;˷r?SwIAգFaJLJQP^~_#~O>??t9_ ||Q'.r|y>u U0:c%>@Jt/ѲlxVϋOt7C:Ml8>ͯWn#)t;/p1N@ <x{{}iO0'Υ\$Y)^? QAp~ɿԶrOI!Ciz~un7Q˓A>C2Q>.*o0.A}6N6xʼn!&hr8Ȃ_.__V ] 5)HiB_tQ&`WWy'He+c_F0o7 󯞾ytJڤ(Cx^`$V8Dn@p=@id=X]" rڗ:] liQ=Ը' U_9<ͽy:i`>79~ߛ#{DX7"/•F*t\de>^Ά_ )Zw>.(Ŧ3RͪBE闿d39Dhq_-}8F/PN@WWF11hw_MU^U ?MC)t_I)f-6t%LQ8<|bkތXj\-(R)y>p5::@Eh%%D7 x(~Ufu,6eq樥FO>O A@v{8sז};(a(ߎs~pcGˎl&%Qn»m+\£hd; <43444718EAD7017BCE21423F9E63935E>] /Length 228 /Filter /FlateDecode >> stream xM3qs~*J\+z6cgξW`ojkh 1:|{0@RP8Ǣ,"đSQg~\L@į?zl&r%D(~y<I1CT͊91/R"-ĢX,VĪȊQ5kxyrmk޻ dεEFmSrD_vQϵP{u17b!> endstream endobj startxref 162057 %%EOF mcmc/inst/doc/morph.pdf0000644000176200001440000133327714525055000014547 0ustar liggesusers%PDF-1.5 % 3 0 obj << /Length 2299 /Filter /FlateDecode >> stream xڵYY~_Ghsy wFde[hYr$;_*eKn^,,:*?J;Iai=ֳT͞V%uֻk|J?>~gnn?ΥM%̍LM>ӧY2B O\6w>F_r.<0HRZc$J g ׊K^[ yH|U[WLy|fMDOqy29lbb}j/|@ɥ"Y5ȪҖdzВ 4ݸ#iWfR[މ;r0xdU|Ju0ݡz7 xpC?'$ &y0A0c`T4GprnhOQM>4Rp 6q%Ǐӑ0ﱇMI-GO'!㿤H7ʏSfIr>% De7;Kh&37 O& /F|~%u^YX _xp) A1tL3uP7-ާk{_/U߷L ô+M!*^}ȨS~j:d IsR y Co#|(}*,"ME'u#Yaפzo whYI+p qS694W dT+H =hp5%MsQmhnYWA;ʥc]Ё 3>OP _*+]J䈓7~dˎ'R"gM'=g.-46hp|m8 aU .uyGq' B^I"T6HB")Ԥ|$j ~Ѭr43PmC"0D2ϚpY"݂j Ɏ{;{@:8]1f3zZs7K᳀I[ F3>+";}uyQFsxߓ!# ~aq&/HlB E^Շ6y.Hi}(byB\!D}\h.Ђ)jKFʩs0!Ex`M}U1U@Dr!ph,6c>bc"}t!slק閂`n8ͨN%<=aYUM@טdf +8'_0CM~͙OG]FΕTlj'` \Jp޸P7yP:aJ=iJ]HP+}ʤl><ޭ endstream endobj 23 0 obj << /Length 2010 /Filter /FlateDecode >> stream xڕXY4~ϯڢ*"XH<vco؃_OZ3N6>4^Jht(WۛPGa Mĥ2mF `F!ho߽|+*I(Cw֫<1:Vv.m:GDnm K"<}H}l-ck8pvo] Y:NpRG<r\݂I<0S]2.P0Lxd@S!xb}cQpXnw ]%r}Cd,ޘ@ݺdY7SĬ,Qzl[=RYӉW^D_5dAEuLqWUv k+C5wІiw TZjt%Ҩ-Yj&M}]Z{w|'Te 羛J+ʲ`?J[:뜪4ۢ : gUMR4 w 2[`86m64*/o` @u໌(fGE:{4"$9ଚ47^ b -n ,4%v$Ðv QBH@z@%4\iiw)]{;[YsM1 :!Wqb*SaT EzJu6XO2gO۫PT`NFEpC"cۃìm q`g  "#oxa8u!~UKiMt4*P?b`@ۇ[?d ,iD{k %îlP\669%S*T$IQd۽K-17֪#B2 b dT.]F-FM8VHC1PdL¥Qpt{H4"w8B-I5{W𥳐څ; Gg讶>.2 u:ei.ѕ]m%& Wt#i BnΚg9 օ|A !<9u`(,-]uIp+$rf (nj?1u!'$i@QsLΓV!O"#a\'cqfM1$ Qv]\:LjңO.+yc<(5t0rýh`-ACct#v+czO̶&@Մ RϧaSI,,^C$tV!Aa:D4wZL~R,Cvp`w~^ }[p(RAqE'4pB>J9QOm4Mnܕv p>ܫ“T\.CKG8AYHeύ@9:{^u2Cm!XWÏ *^I;G;X'StS^2 z)%߷W,_W>dJ%\$ BW?K`yp0s/a/@'ƓC' %M«}=q;e΢tl~:x kG31]g310gtb5%0=8;ד-]u.e.Obe+>vg+wEhvG3Zrx)AƅxŨIf?I endstream endobj 27 0 obj << /Length 740 /Filter /FlateDecode >> stream xڕUMo0 W=9@Zam-=p_?Ғ$s 9XGRQ ?QItsFQ]Zŕr<^ظ[tL('b*Z#*4(N T}ژխЇ9*){ YeM]lwƴiMihh >Ylbt`˾vv#K5dSfHm4 ̈́"+e |x~d:2wMQ]ڷ)wE'`t>6nCM]"&u$zD5]Y4%RQ@\t;|ꇔɻB/ilֵ;?,l𚘏nEA f('T4}WF@CБ3 헲t|yGu8n=K2i:LD9@v XqKW_" A<

> /ExtGState << >>/ColorSpace << /sRGB 30 0 R >>>> /Length 1724 /Filter /FlateDecode >> stream xXKo^5KXxfܶJ A"@ Z!=gO5D9z|yr/7'CtE|N"Ž[[{WC}G<-uձ7ͅK.u?\ "FĽjT*N@%*>]5T|lxq5y"E[Rĺg+XQ @>Bهf0jJ +DlO`];l^p>9su|$I}p96;T/5; `$ӣCǨPt戨;POqM= lAA1lfvJqVC܃F%ߩr#x ܙBfm+#88NXoKa_#;&HNġB xlsqBɋs aĶ9/`qM>qHbDUl*pm=kbQ7Vϰ| k1,>}RGLҎ9W-.8+>ZG|uMeǟQrnaQp?:;?EKv Y-(wK0G-s#s/AQJ3]JT:i҂G`IJWv"(teA8-DYY:Ee-N 4iPP`I AOzͽ;MbTwڬ-:ɤt&H2˕63u޹o#ܖkB"iւUԭkA+̺պp⫻x ;7Eqhux}Lvo.^֏jgc~1R }+ц|'"mQ to}… vyc( rGL=[xM~s6ϰtx,` x,0:k~)_E6bJhE>n^-}Ԝ1Lqu qs3nl.Iywr НirBAC7ay kkD!􀟞p;p:ן[|IIXi6L!dm D2嶄 T0.eÖ G]aP3FgjFeK [&ZgLǤ-htɴ h[05Qzܢ8Q`}ܥC5X5XacX!AɇxJN!m0&9R>MJSG)m+C8MҦw-mУ-oiC-Q~JC eZ8 R6<ѐ62? 0ۥ 6(; 㚑a\+-mtbsH5Cp]ŤNTaliIoi7ޤͶfߥ~6|]wiץ;6?]lui;63>SMi3;͌6+?3̯)mfMi3sJSf6>3ͬ)mf ishUCܬf7Y1◡p ih_C,~*gߐ9Y9΢סtyhCLfbg;'9  %NʣSqg>bZ!fq)O58-l#mF6Kjy{m3&౉X uo|u{s. endstream endobj 32 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 36 0 obj << /Length 1717 /Filter /FlateDecode >> stream xڭɎ601#jW):@ Z=$9m#KDt}E̡o_xz>g*063E*KYd*٪}ԟ$LKHty09;̖V̝-82 ù ]/8* 㕛`#'qs[8j$}XMU^$`D(/ X1T#lҋ#z%;mR%@b !ng^;,1K{p|HP?[S⑉W~5*⅁M ~ (iI&\La@~ C6kWWǫ]݁RnKb!DĜm* べ P#6:wyj2e`.> 髁ʫ $ݜm0^}D0IZ Qtw툸㿅Sw0JX*:y[ϐ u 8ߡ'(Z`@!HYK9 qϋn2z L-dMk1*K9h_"4LEue7JsQ6%94@Y۱3ZrD_l(A4Lb,Z@8 o}Z2a< fߑC퟇ɛdw])W=čw3¦x  ]9[x[#sS影}̨X!boMDT9ڈTSz踑߱P !h0Z )hƕLKf膅@(! c_?H.8a~ՙ0rV^]ϟ/t:+S*OmdG鎋=.VF?pTx-OCg~fr$u*JXZZ+ ftGSoZ)W<b$|ͿV endstream endobj 39 0 obj << /Length 210 /Filter /FlateDecode >> stream xMOMo0 Wbpr4ۤܦmFI? ME@F U]:y8^Cen!VȾs=%̔/vBS|7;4@;)9 I<Ȼ8MܦSǩP鸄\ect/6uBX!ů+l95%H# endstream endobj 33 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpkJ8Ssu/Rbuild2158a573e7fabe/mcmc/vignettes/morph-fig0.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 40 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 41 0 R/F3 42 0 R>> /ExtGState << >>/ColorSpace << /sRGB 43 0 R >>>> /Length 726 /Filter /FlateDecode >> stream xVKO1 ϯLcAj+]ġJ%C~3ݢaG6?{a]111p)o^l޿>9:{'?kpi @oD<,A?VCN80$0:vsV &J!#u/>"8SDJR<2樔qb)(% 1@%h) 0@)OPwL%ݤrM. l pʵ \E(׆.QrQ/ޕ-%tDžqK )E*mб*ziӖ:g-[1t\\бexlɛ#48>oHaK\!":A!h Ӝ!7'Jqβl֟kN"k1W~: bomMaeȮXy6qU9v҈~\ 4@BhWW\kRf${ZeW]N].3&GS>L:T Ώa}QoAI7dϽL7eƘ ίkoNo&̲6cksVn7@C/O68 endstream endobj 45 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 48 0 obj << /Length 1566 /Filter /FlateDecode >> stream xWM6 W 5$~<rh/HOZem{vq;a'gWG66dO|0}Ca̦@Әyz;9/2:U8ޑZj,it9F:"cӶk:=uWhqrz{6@\ G"D"d؁uRK9y]i]:^.љ.F"h;9L!ncb9jc[DiR5a#ŀ; eI|/&V Pj#{{(b:n(!* ;f7u-q 6DgZ9~f5y[8a6 ޡ:WQCs"yXd:˒'9BH?s%i/ M^,;K}!#, QNJPe *mwCt0)+mZq+&ZuiUKalI}$d| ,3]!&b`~(3ny>@e V*8]=}xPc?#Q{$!'V>ߡw@(;F1ds@vyMΒSm-q_aHfhY :0[1w|~t7sw~+JɁY>7Ļ}UJL vU> Mω{qx_K6CeQ0WH*WK{x6=0⎒#q#ɥVDY9#_ݾmH endstream endobj 53 0 obj << /Length 1249 /Filter /FlateDecode >> stream xVMo7WP/#r*I@\>9PZbZ*$שQ*츨{p8Λj2'zBE5),,i<ѝ#]fAǭtӔ&F~峁9ەht~Z4MRJ< JxǙ?N+<~Bay,?_ie,6ĕ^X@MSV%RQa+o9nuz#Ӕs\hX}A/SV&p:"t-ڠmT4|Xʕ,We0EF9\(M-Z~|s[um##fbpՑ/nɼqbg42Aohk4Z# >X=ZL);\?u`TQH 0$cDIj*xnC)jdQ_㰸h|R4nQpUޖT4ly ;Ix0-R?i"*.[m6{/-XAYha¡x,l|gHP%VIXwkՊ3?NH9Y'wǨenqKG/CؠVƴsZ7 P 2KVxa-P2=B̵oʕ&D8B~\?l~( z;oZeQVfmk d6Nގ *CNJP@R>An|gŘr6d{0*ntԨxP"C4_ܡ`YC zkݾp䘭%2MMVÁ83C *-? pXpkC;q]T7(ҝBGI %P0o$%s ;e4 od8%U;_!R.OB V {PC.|ը> stream xUOAn =bUXڛ%nmNHI]%ƑR큙a`T$'ԠJհdȖ.}0Y.{x}ljY&1">tN%Z AF4yq99sB;(!7/e?0cxR6y0.Nutá@9=rQR )Tfmn{hT endstream endobj 50 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpkJ8Ssu/Rbuild2158a573e7fabe/mcmc/vignettes/morph-fig4.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 58 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 59 0 R/F3 60 0 R>> /ExtGState << >>/ColorSpace << /sRGB 61 0 R >>>> /Length 58851 /Filter /FlateDecode >> stream xt}-Kn&wdh`C fI~_\k}.Mko__S,_e^}׿?~ßwJ?_׿W寿=_|ΏRܘZG^E(5+dテ7}KAi Kt[S>y8ڎys'PǤx:J6 |kN{%uA|iߟ2~mJ] RsBN/!OӿSjjIA4&z[#UeM/]#yـi-:5%ﭷޗaELa۞zs#ٙr 241}d:Ko-+|>[y$Ÿ7l3k?+\ &fڟDX[tjJ[o=ci)o>{o-vYn_|[5~oMA}ۣ-^@O3'#l@4֛&ai1ug}[td=AoUt^BOVa 9WOcmҥx_z|^j<_ӳn쳗 ـvB:"ﭷw^z[?7wLgKzt= iwl ѷ=%Tw&w+d߻d']6ԋqVC9sҎdd{mͤg'l'l@?<ڢSSzkONvz̅I_<3|7t^&ҟ%dibi9c ڢS/z~p\/<[r/yr{ا ib<{v ڢSSzO|1?7cxϕxګFlKdt3&\tE[o-突'-,3 Y8$iҫސ2z*߉ϋB6 Xtޗ[v3Y?7f Yy$IGmїI%dib`Ym>͵I^>nC0 Ol/QCQ[f/x l ;` ـiM:"KocTL̳3ʳ$P*ߝAk[dn-}̸d HY[tjJ[o.nΥ.$7A@"Wd+4rΛ̷&}oZtޗ޲Ǟ/L״T; 8zKAU")_֧ɶˊdǾI^߂xx<ڏafNчw%T( |}κJЩyoeeXx>7]!̵Xtgwvlz241I^mYC6 |kN{ˆ״ ]6<~ˌ\nLA@}Gk[<$ی|3dw S/zlcyj *'A~>{MAsyVOcmѩyoe4 Eta{2Als7vJ+d3̀U޳l@:"wlTܧS*M 8 RszjZ}Jf>[$RAn _zo9mv"4 Km2 ʵ9c%J#j;ɮn%hmҩyokxV:f9& l+lKMjx]%MkN{6Ljva:-qlU$|LedLJFI!y [˴kڱlf>Xo{eW c`sƧ1+ya%Hvs&zxwhal CA?j yl_xf &]z7ϗb.<_Y۝{a}NlٳuTS[3}eFjGo]z7s4+aP.'jwll{77tJn8fxcdl@i-:5K}}v!9](&$_nAvPFl_&x) :"ﭷ/ۜ ύ1VfY,FbNPws^ɖ0T׎LA^}ߥ-0ą- aI8@߈WP0& "Iv&zw_=nA+tþXo>}Y!]+튼C6 _vrKo-|QghxQW1}Z[sh@ґJs#/ VH04v{B!B#[Fpusc77UEakĭQG?y l9 FF ـiMKo.Kᦦ+ 1 1hEK]+(jxozl@]6ԋ/ pжYsDCZ=, r/!@ Đ!G5\[tjʏz6\hO߆ sxBik y E_1e6qmҩy_zwv)1b=PjU>n6;l+(Ĵ$0} zyٓ!Ja"Zm+)+z@S# m==Y.Ko]`=f\N*{E() a:4tiw I]ݵI^fzB/FcAZ`Azv*ȴ+LO T'3S.;{2&z[$"̰]vc|!$9E'Y˜f.1 Kؓ+rV= 4',H{9@^ [VɄK0yC6 ɽ;lBmw:\^1Innô 3y;ib-AFI!lKN%[ txm'| {k ;o$ߑPr91>O"k ـ4+{뭳2#tv1[YFJ]$ ]L6>M]-d§YA0Be|n k 5 ApIIśL6>MLo((]Ztޗr4*uκύ=.|b= #8SWyM $SԋJ3Gf1vVp<ۆ] #+LN#Ôd8y\vR Ko0D21d!͘` :_x E0ն{\$ |k.[Ks" 5 o^݂~vXqz#uv &D(;EkN{뭳E[0'Aǁ2/?ɖ;[e~y,~33d_)\[tjJ[oi&1pNEk?VI^;B}#wL>? ـi-:"ﭷ\|?>wvъs *Cf%e Tax^'eimҩyo/}@&=8^U4k@W[IC6 Y fÀN;ҫ?53&r22ÜBzleI^VHڶCscPsP.HIH+rUѫRnێ0(;/I &z7cn$h>"|:|o%A޹powؒdXQ٢' >͵E}P.OR,zQ,K7Όrc>vr~I^ֹ  * %&oDs?)vL9#vOw%z;J*y[|w LI;|{ JwbF^T>T ـtscN*y_zˆfCI ,$+P܄P.]榵A^U 钍r,T0[fL]x H1U%/7xb9ې9)J]zRP y|_9ɀˢ`XL"˾W3M޿;n 'I6 ـiM4Ko1AOMړ7/#(ޥ)kFJ_*3xo Z`yqL;J$'- 9=#[<Cފ튲JڢS/m; 1ay*-qU NN5 3 ZJ6tIvێ&zX;gA8*D?y pÚ<&nzXhAd~ S1o>7ws-ܻ0gg;kk>E&FVWxy (n2q.tE[oƋo*sPhPg'$oBd '7dRDA};+c6\=B2Ncԋ$(Sc욗'-d;:l:>pg'p>MS-V+ـi-:"weDKa|׮Ҽ}jRfvk%=%l1 pmҩy_zGh06XۈIjXsjowNO0y7ڠK/3V͗<j;Dyj= (1?iCQ/ Ƨ:SB6 =ֈtjJ[(8ɓ4uԕzdAҝKK(2L/V&K;h;fXTKD@ey79H9yf.ّI^ֽ2 PVIekWhj nx u/~"A#BkN|ɶs%11yntՓ{7Ng%ry;-,ـi-:"w/l6/p-Gua?)1w@&[oWcԤ/76H[[ a:m\k''%!nD!^B >w@Hvu6eoe%+G:HGϪWB5Zo5 yx%1IMPO!>E^61mvhX[|k߲.[osۼ7먠Om|mҩx_zkk)o% γ`@:@ hTNb'4o9/Hk޼d8[KŢ}aQ]JW-,u((:_%}mһVRy {F gZ);, 77Ƣ#^9Ƣv}޵_εqPO[[Ǡ9V=V;OXw궢#běYX ڢC/zGۡ ӑh MC^-<ކo^YIe;Zx0^1 b%uv*!&m^@&xԋS(^EJY\NYTSNޡH|H%o1Mgkmҩyoi%M/8uKg @xQ%:=L%4u8nn1/ـRm݂|I.,we=<)鬦+(2IK8Bvl-/#^,]=^H3|'K޹j լj_M:j9ȭ9l@ti:U?/ي\kbPI6 -H⶜^2V JkM̉= H}6I^}%WxQ3-$nM,΀>*ѻ%ވPa,yHvM:"ﭷ oᒟ1VsNマϻ{,@x?nZmvx -cQF> ـd%tE[E+|VWΪK oM/oRw^v7wbW~ lO$__Ao3-}bN^t^ H>u׋/gxZ)`zCAitGWP;w:yC6 szt+̴ܚ>-Y4+mE==yEf^X^xT&sz6/#GQm(nӸ,Y GW:ZXWP&1ŲX{rC6 y9Ws:"Ko5˩/]Js-:/$u(&ujb Ph*^B~9f(k)d^N-zRzGr,n*T]L7ٜ[зیdLkCـi-:5%ﭷΗjf>Gs w`}¸g ӔTA@ZX7aX~b 3q%6/^B@PC8Fg8xoe'7-$xob_N.[ҫDےP. 4%o5]%F*WmyoM9%c,<~sJ -)xF/wiAo4TvUJu޷޲a]4 :DU}x e0&ǴJ!>E,zwY(Y#Ϊ8aanKQT<"xWEmQYOcmѩyo\Z <4n΅#nXxەcy$e'ϵڠK/V/C54:Ē<-q/Mu:يҞ;?y+ +)bti ޗޑԑ=X23&ⵧ/۳9NyއDKs^lڤS/zL0s%LgEnms3EGޞx yf0icxD"N٠E^eG0rpxf$3K):G΋!ǒ}mҳKȻM`I@Se.\4+hz.a!6zyIdk5~S.8[лcT|0 ]S"=dRt z{\kd sc>9 M'yICωx y%0ӜvKJ-:w}ਬc9Q٠ 圹KDy2j}0 o;.sl6ԋ:+~[t8lH(Cγ}8yoL/LLTKPl@),tO6[-@|Vl֥0΢GKS$x\]YM*&*#}K/s?!ƹ羐T"FO8zUkZa%;J^)N}*x_z‰-33BFQnl5mH+hx0 ^b"dWϷڤS&OdV1/a'շԎQ :b%/a'y경&z[}LYI )VR1cgY e96 m̍N%{I^}X{SLOغAy?%p)t⼄~JXz?%v))[WobXUK -M0(HOU]&.OCϠ'KDvaz%I^w{VI~õvmO&/ V&p3}2X[tj:55}\ J-sc8PV1>SR#/*mz+eѬM -eogЩyo<J# ΥyjVr: cKLGr"y;fQ6 XoXtEޗ] " B%.l͂Ms6󆝜WPt\fwhVm\5:rm;/e'OW b™:Խ›Agy MW bCvR6 Y6tޗ#3#( vl?USH9֩sDK({"1m# 15nsڤS/3/x4a艄%óo_3Od:5M%eɒ|<&z[Gx~|Fq =:mK9;j(^Bͫ1eg06 /d m})(N{yڨ>Q*:*UK{0U8g^W0ƄS/zG+={ݫaUOQslÏ ^'a$l~Bkhl|du3Խu3UqntF>}yL=D>S)dg E^3Y^:ʲ% h*|o Јh*1ĈZE5zsË[b^: ai^@0w!$̀0xL^ lBLtE[oc=c}I.VrfL7`6nb%=IGHBz[~KTAy}? 1*A?gy / ƧxɏmD4feKsu;duҝ/[o*p%Gn0ю|EF!踸P62ݡ=\[tE[e(/̶osk@vesfNo7{:ٰzl@73=9x_z})M>%4sEN>x*Bܡ$;dGN[ GNa`E >ڽl|hFR\=ڠK//يW2\a=P.9t)b"/{gv4K$ B-eʎzzM:кd+ך6iOqnE]v&ˇ*/+Z#̔qr]Bڢy9p^LF URj zXb|Uy6pM I[y]Q«hQ b5OZtE[oٖ bk."H>z# N dU7p%;)fq[5Ko/K3 %+zD (zwSxԪ;}\Dy2 3ƪe-hx yaF~xEX6ԋ/e { c|Rh]OOB[@tVݒWP؈EiɎ>Ztޗ]R?7&3CMW4a_IY%Do#,TC6 |k{hncmGv7`MIKiTL4oB+nNRk@ުH>B +i",1"}et0eJMUC6 cX[tEޗѷw -߅-juiVYTci:E571Ml@ZXҡy_z`gL`gt0{EZѴM]M ;d3 jdtE[o' u A_^”sN WP<ʮڢS/+f+qsktҝ|̠WuM+1dtp2ـdfN]޲QՓP#t8瀑 V J*[6ߑgcjmҩy_zGj6TrXe?iޔnnu[ M5*^Mxz!4]gc9N ol^Sf,vYq1qb x":WeÜ)}4Kspd0:|(T.nڤS-_Up913<}a'G#+>-IK( V54)^ɞ3I % fOt!'mDOاj; Fk 9V}s*|גu6al@[j zջ/oHWtaF-M^K}^/Ӆip*yH3I^MK%[$>}{&OX\]/^@mE{̾=c imыntYKzxטc!a]u&^*RߤfՀz-)]"k< `[wddզyCnj2F4}jމGvu.hM:>g5 !I4t=S;z&.x!婚VGhJ[o+ai/48]Va bg~ؐޕjl] yuŴ+^Ճ]b́ھTz8 ŭ9ۖ S]>U&&^Kvg d]"=W[dOezuvVm5kէW4kml aVj}x jV2_~jЋ]q6ύA`t[Xc~ '[g* ] Ӕe]ڤSXd0^})9q'0,n\ߨ6].-.Q7ӵee"2toޑWPs_4os]Z!}eamiwIyC.\d7A-[ lٖ>\^y!lKs M{ͳ`XcNOvIWdK"Z HvFAWա։I9=!֐ >͵I^}-? O9 'ƣʴjtΤ'/ Ƨ(x@S]ڢ76[o.mx:mbչ! A@u&x1 &*ośm̋dOsmѩ)x_z+vI>d̝Au]x L~u^%x;0sXtdڤS/~ VubW+kUfkІ6Y,W S &\%Rko/e'{>KMΗت^eQN5(ЈM$#id׻b¸^ 0o~Uu)H:f.%41D FY!l%Х)x_zGMGg s p3ɚ1tn~g cU^٠9\[Sxo?Vk1c0n@^!J^"%4ծ ˅jL˵vSuz|P&Zy#9}'~xܓC_IuPs9:N3&';3dIgҩ)yoU'q? s*M*lzڪ eU[tx A6>5=RC6 40hD~y4[3Ԝ+(SCLEVإ]nڢO>/#4(vDutU Rvy"7&e_՘\[tE[o&H#b|İR^ѵ|%Y}zQDd xbx"ǵI^} [r:  .6:;gt40(b%|k8z1,ي?7fڐQ}vfj(&8x u+ jIkU.x'\M:"ﭷƻet= {/cMZ> E^A{ cMw{Ð ԋ]վ u~7OQ~gi:Dx M}۬M׾imҩyo#f|-xcE)0m-҆u - ʐ H>%]z#54suT]U3"'Oi0glN{Zb2IIv&}"F@^Bw.6ԋ1gd"褜ޫ|~qW{4失J6_RR$`4_[Ob74Sl@zxg5:"wpda`[f8K(dbVWeMHwPefWߞ7L;m`rUSW%чpS hxVLdWjmҳ<{} 5i37}Fy ^Aۖ]K5zrmҩy_zݏHj#5ílr"SSK(ubJK| AgcwE^~,K6>7ƂV 6~g"{t^BCPǘCy-岫n6ԋޑ?Pn` #@)g*i@tUe>QYB6 g[~kFCsc877hУ~t5:2K(:  ␔1qz|U5K~KųpF|3MEeA^@Ż>8jJ{ ڢSSzGhkxa&J* 6I|-mVw Zs ;x`ȜڤSJtɆeqAfcYGy sKAf􍃌[>~y0$(z[ύN{;/( ^MhlI,d ^A#EnG ^'ⲫj_t>/e[$PNf)Xug Y"P>=as/tJv +E0F){U_cMA ;1$yH/T^AcZ Qg]zb|0kK xbrndqKJ@Po]z|J0J9Ңn[xn'q uunWΈH6 yl:"w*mlvz!Yy8xȜK*J3x\c r:*j/ٺWNla)K+SR;*;ُ{? DPG:FWP. ,T%;~MP,{8CK>Xb^۩"(?ԗ%و#'9r2m+lI6;ze\Uc%LvyCNDރWwwLQ Kw'bKSbv׽Dh4bN!i/܂5#cηƧrYOԶKvu_&z[Wԝ1h7Q>[b mN_YC4'1qql@8YYAO:;rs'f#>nkҋϗG4 H.;zX3 Yi9fO̡Is1Pb0US7GȮ1k^=R~-%XgWcfIln$ZnO{:1pkg&z;lKmKgG~o<8 Y賨??kxƧ쨧ڤua dl0dtCU>6ELE(y> 1ø[,g[g^EޗړqoƄύ lQ`~c wvћ4=L u d;I^tzG=2s  dI c)SoCD*[T4[vڸ[geB,MpA1"r:2KhzOHa- 2dR#S/zGu>L#f% aFT/R{%oεA^}sue㘁:޿-~gcFN }0]u5|&z;]LݨG0Ӎڃ~ SFdmI@^Ay$L˱x1Lcv&zw0|ss67~.(ȩumo!'^[;g{8x+ e G,;Q >{lxYH C6 ڢ{S^B%[ݩmV] 살`k/!LTdd_tXd|J]Lq/?慌M@8>O ~%dod'imҩyognl~} D~CE,i;._{Z0˾]M9%n$ wn+%Kvo\0,q5_j!'r@~ il]hQa,Nl@4WNMJ4%>%sLv7;7;-W=x%IL 쁜C6 -9zX9R|ge5K1x"K 3h ʒPk3CSzG>Wt1XX\1Jtdt-X[I4lV.MSͻ0pd̐<睷y" " ̧$HbmB6 zw%Tfb$__NYSyG7&֠v)|}69)Kowb xFA~MN-x @xထ٠Iﭷvұ,ǵկ4;EǤi <9ƚ9 xw6 /{x0sclGfnT$nIlA,^B9&Gimѫﭷr೺Y˜++1>NVq$Auc}%y]}89}}țd§K޺$hݓ ə5;qg//7xb2.ɋ$6ERL\?%yƠGkvs~2\EzeeĠE^?Wq,/J ޗʃp>Ysc&#QI}NNeG7c=ZvkT[z[KUgs_fLAyC*q7yftPu+A,3/ɭM:%[}{hO%c +/'ut* 0:92^NY4}=*rmѩ)yo#)YS+}wvONLmK{m1Ֆ)dr:5%ﭷl U>BD/9ԟιZ>]#>4irQbW}l@? ;Rrzdv9T@zof_z/˛LB̂'goCd-uAI++-6+ކ{Ҫ^}魳zK8·'͘ׯyIu~]Ż5F욗 ikC{^>/)_ޑ7Q6TCVwF)oŕk4A?k;&C)a3Y{^}/:3.Y  KUX8tYT l$l@tEޗޑk-sc06sMMz;5Ms7r9H E8+l86 /.i#~} qLoNO $K(y])\M*ٗ?T܁GQu\4 1 m{'3 śpc9Z;iA ޗQύVh5hB ^B%:/)ϚB/zwQw! Jzk{A_PLzm[C'j, 40.[oceOI3S};WC=@ +8K(G1 5_K`3 RwUBv ̹a*lJWq>=#IT=Jv^;\]6+;do,UvI^SUsN7+x%%4 ;;d§Y{m¶i;1Ec7y6(_8۽)oT+M%,1B6 #VS/ Y|&0C o" } B47Ӄ+ݓ A| F% ]zU[l+%;]LZ,ܬ>83:tpFt]w6eoE'{tc|Ll#X yU00)N됟AlVKvZtE[Q'!%1>|הu&0ޡ y&& BձH};7CE 1pj`KN Az3,i=l@n{z^ /Pv =S{9/d""ّg^Ud<_˺}nUo ڐހ4;һ%WPQ6c,Sӊ/$dcmѩyo#FIJ:\aMn8]+(ąAAxQ.Q'I^}+{c/[EE@~s_JS}w}WEZ3xE0.ގ0?ƵE^}=r&Q+'[E@Yt3tc"x-G4Bn LtC, NRceO ӐxBފʮ^I^%kyҲ81H?7+gE)Ux9%;y>&zO\OF1.ԫG=v!=.}λ0V֜eWI^}-2A# }i--wOvA&^A+:uM(!4nK62k G+stފs@ڙr T'Qv].[/vN4!e;ŵE7/Ci\z_YQz]N.oI>91'iƳdRZӁ.M;bӻ62`os_MnW ~~ÜVu^.6eWbڤw/J߲5 ]}a}ֳt<#9 v#::툷iRЧ1x}${Hkz;MA/شg>|Kwmfoxq~Hv/Ztoaޑ?F31db7Ʀ4hzFC𦵋P#a2ymz.I^eS16y,V3޶M K(Ș,b=[pO&z[} k)x?.D@elIj_!±5fC/^7'Mc-Fx2x`gpqb +5ڤS/~.8+T wG<Fҩ]~.73"e{_t.%yo f][YȚPx Eza,_F0%>E^>6US@P_ qqZtbXk$GQm\Z^x#$;{UM>OCBϯt bMfCDc_iEKB5xJ FOa{>RkN{=bO&W-`΂$Q#l)^B8LWZtUURP.[x~\ -)!o[KLDsZ ^-[z/UAEeMN$8ږA4B\I.7R *!>]TwhJ[o/N\pģ'x/jvn)58Ȱx5wD !.N5Xlb=z $U enJ`W/SJcl@E^K2su. YLu L[|^Z>=/K˧e2Kº?<'R1+J5m{ƌ0+YT$'J,R7pFvږ/~֍^QGߩ ]yrUkjd Nx"t)m$m HUjam`J#@I[E幵QK=h''>ƥںDcs򡄵u6PR4R<˺̀f99Mfd<fj]Su}ٚkeg? k#$<Ͽo g2Ҹ }v?m_*xL/]†#dt/WaUeq{{ #M?/65u?;GVaP.U!QPG :Zo۳f2xmff i<(1s$Ub_+;I9 -ۙJ"˺ߕ93rFO`twipv׬mQF~qx?~ z^^THͬng=[tfv(}{Xw10T!9NLUzS(Pچ_@҅ʽ29*`GW0zE]re:]tZ/Hį fytɡF+.ֶ~Ly a\tt&̉#TTuDהlfVLoQ%Z=7y "5$pԜdZ7ߠ=eW%]8jlyؾ2ږ/~=H~;ul[~cW~YSr:cSzGhrb"?ˣƤQ݇y+Lقusi.=wLv=lBu(N%oO=)0at/s@qssWP>lk1VN\889< ;FCàt (Npږp/͜\5Q_Mc u3g$9 )ۢd[k#_=&rSFz&/f2ڨΌlbElU>q8FW}خ>qֶ~IoBhɉZ64E{D4:"#2Gjlҧ˺?~S'lЍИThIi[NЎ%hsY6˺[*-IW$; =P:w hEy1je[}o]xu.te髈Axo.M6W%˪][e[ڻ~YeG/'a[w^*# U p-;5ڶ-UwtZ BE̐j]ԬΠ̣œ{kK_XqWDm,b"}qC>x~Ppzl,~e[b}Zre(#Yh`b+sz1X򧰞zv''AG2ۢ~k#=yYL>9'ul{ZFٗ=OX #9o4q~pWiwPFI38-}=_#Yv ]m/g_w],._|~TaX~UrE%Ti84;fũڑ7mZ밭qEzY6p vv,ZtvL#FnU4\PL&ROkm䎶Ye &9Q{@^+ Ԡ^uG3F>9J.vsz@/Eao% t&vѩI з1\ M#BB78KK*=3ږ/~s׼F?5kn轡'tBD]sE͉"g.Xre廙, _ jo,JX.(}B p5Sź/prmK?~ eM99#c1Piu #z>pbWI}坕/~W|l 'H;5+ݥ 5jf.w^̬-9~Io}O\/F '7;+ u.-po0fo% *O{7~`x߇ hl n*v-)74tfbtÉzm [bt%9_LNWȧI2`ܭ)lIc `hڧlҧ[N/~}1>9gNߝq;3zlk4>-[%d˶(g\~{]ɞ{'ɗnh?hOAO$BB )O~J廙];'9 ,pK0p_*>yE "1sb;Tcۢ߻䋛1a[Tj܌;eGXɣC웇CT*}خZǡ{լM-\rn&WMH2K*83^rwY7訅3>Z8N55BaN"CqtB@]ө윷tjN9eѴ=kN׶~YoݭxZpEqJ<"omdOy)٦Ç"PR=smQӇufySSg$Tv0BsKs{uMD\ mQ|Sreoc::9"nRmt3E!aD]GU~Y!vE"9jŽSL(PޫI[#8M UB=\˺UHoqsFDJJu\uF^fOK]Ÿ}FӴ6r{j徭s 9BOޠ-6+ډ g+nvrmuO Oi 嚉z;Ay}AF}ݺfftm[7©ie扵-_=>q/ɉhwu?_͎Ģ9@ηMj;s"FM۽nԛ/~WQn96gנּ_e?ggsNOt[e՗‰= OkO_=wMprZ8*hCE{(½޲|*܈'Ùd/WGxm;k7d8 2uN;gFDPN$pڒm?~WN53Sz浅)WȉUrj{lA8qDw/ EN|?%wo/ݟMN}oѩvBQK޲@O[Tvd%g}NnIʵ%/]01/|C١fY4?>]S=D@Һ=vz~FnO{E5_Yw2Wd•H<7҅ : H֍v>2^r%+'s|}~XrP!.ns+~FvKi6abz_-9~I[:[:7KD Zd_P2mQ:@9ҹV?~(63z)QUȣXCɽfB_kW9Esom뵑/~sQĠozxS;]EioP]t 39𚺁Q 3זwgv-m$&(=aˇ:/̖7gkԝLȶ(F5Xj4Uހ߾m;۶(}Zk#e oZ3 o]}B)z ;+T0tG}a{$k#_=7џl);0W$_d]S3o;y(FheWx.aWc߅98Mjpڡ1JНW`]׶Ow't ^@Eqjuv,t+Oږo0D앃/`ɶKMGuʾ"LJ{ӓ!_=R)3}%#S9_'Z19Bgr'R?lϼ˺|/-~`D21mFJtU &p_EU9JUj۽`6r7ϋN\k8 a}y7hMԈO@/]o 8EP!#=xoc]IErPD p<3 ';k.8Q(Ot˺߼WQ3@pʿoѧt* G)ꌍ:6re%r6: &0t5c}j55XXm-zS_PKNC ] yBmr|Y*wdH_3Koǜy991Fnb0ҜB6&#>l yLf6|a'+CKBJX5K?t';9o][a,Nn@6=w*!gaC8ո=7idܞwUIj[E=1jOga?TE( h&6~4@zE͉wjqm%_:XTNIROt{bOF~쏼99)r#!}gv.qS4GH֝w٘PH::_oS8 d=~4eHݚ2_(}Zk=&/&oI NݚQ7n(e!gB~g:ߢ&9;aʶ(!g7>֟#7FίăFu]o]Sw,0ŝ+2ö-~Kn{]}IJQq3NծX5RP3op셮]srX[r[&`QwZjPЫ>tMk޲-J örKߑpTl~5GV'ϯ'uOy^A8?ʭأhr 2q-mw@!݀PrFޘ?~W^l NѹO^^;bk'/*ؽμXG^lo۫^r&Vn[}6fi[!)W.d[6'3[Se[77݇ܞZX.:}!8E"Ņ_t.9(#EӅ8SvU6[u7 lǗ(<wT> ak/N-ݲ/tO_^xܴZqŀbLjF5n"13ĬMUcڃq~S z:=j)(_ dM*$g}L8a{$N/k[nBoc>Gm[|Tpf +8ܐI:YMcObӬk2:lS'k<߼8.JrMG>[WCɻG_EQ'm`\cmᵑOoWAObrcPH -po(>dAVr*sؾ/]=MF]Ue6sۈ-Gtr5xzqԞjDy_}+I;jgU{g +/\ntM^ 'v텶k8X{ͳ&6>OtĊ{_#c}Cϓ垷g_:c}htucmT?~g֟fgwyZ"3wG&kis"Cm{dk[nTQ7D٢ >k]Bw_]r״X8wBWO.l(ֶ<o0GϮM^_ N%.78mWB(Xbخ(k[i>to-KQx,0]]sA[S>.jVQ.% ]/a*fΎ;߷S\A?G e}LPIɗ)*ߝM~{emߕw yd8>Z& { -wUuQczzWΗ2Oo pggл3j 8T ' YQ:tJDlq;%X[klu]brhv(8"ozB&QB3m! OP}ѫO¸3J(W򓡫ϕ@Ĕ.5<{Bwng ݡ]'݈~[})iqj5~=^PܗHyWVκPǴ8;#kY? Ɠ?;~XQ4e%Bn.TEmDRF,%mWԆ-_0;ٵɉs{*>6%ZP(nNbXO˺Vsm]q8=t[İݪkK_`Ḓ#.P%Aoz(RD˺ZvbCL-J߼DŽ.?'GN t7?T/Qz\&#(P+{cm헰~vO-(,wwz4(] tM=y㱱җeۢi~YrQyMGǢθcAxfURd]2J5'Nߜo:gםEQM=t5f,]]p:@|v.Yֶ~u_mDjKN |][fd rK̒KP#/ƕ-ݲ%/]鮛j*oSp$=߲BBKt]vYkpKxh> C@`'GATo^֊b1hȇ% 53G5-nnnY5ڒthRq9"lwߔ%+ 5AIN`d*3-g/K?~s 3kIUSΛv A蚚UմLwFr/mjbm/CoI(Uώq57T2UjEǠZqخ%/]n'D WAе7 CQ}Z_B.T-9Qnjlm~Y0cNV|~9>v]}K|^՚ aԸt)kjGAzt;?wtvgcY7݉Kd JqRU"W]Q;a=%hN|FnO{]8$~wc*b'`>Pkޝr'(b38N;Xi&>k[n{MR'&v9ShMѹ고@Mkےm"`ʹQ^yc>;3s99[eu'wM6Z7ފuCTST':l֞T/s3i]aa@UCr)B|W I +Y،T[:6ϒuꊒwr;r U5$N9JʉWSwaN KW+ۢd{'f]ޠö0]Erԥui]dwT;+o_S;OtӹTon/~W IĿ3U/ޥU}z߫o(cgX]}|l ߲-Jwߝ~S gK=]V6oNukjN-C:B֦xG =.i+`lwKu"gɊj3ujbm/:l,hkYUf+(3t=ul ו7qK~^a\7VGsMvJ'58nW|he3u }6[~p?[:3Un ~S z׻]QNuW`[>= =wŔ ;N} h,ƀ 垴sDմMdF>^YݡR}~FA\Qs tv39WT/~ Q@F#nTq_>ʶ(_n\p(^ڟseEecbkA^)]%˰=%=gK-WgWsu(*Mp4޺A굑/~0~e˻A5JI"0.囮j4BhWٞo$>tO5zLQ?'GrS;}ӃV_zKQqɓ9%<:ĈF}U ׶|q2zb~0jLW{1E$%7mbڷ^Ĵi%iuܒM997ӝoWQܡC7vfjxˢ+HDlԲ9%tO"PkZ88ocLq4uНt1T֖7=~^==3V]}Ӻzިh/EW#8}博-_=;+cx98-;۷MtEɶ>mNT{GB ۢi3g옴8861x81l3ږۯUڇmDŽ|bx{Żfq]SUGYn.%1m{UeFxw` kL\D]ag&+cvQ҅% *'3= \reiNqKs~{|VuMӻKޏݧlҧ%=A„#\W ,φ7Ȕ%jc-:Ήlu̠LǴKm&\s{Xxuf0mW7( kzɓź=J|-8L,_=fT:nGGڭ.ؚ/+)Q׫Gn7GxXreo;Z4msSәօ:!H{w`3IQ{w/+sNQ#jvL1A|U*^φq:lW-_#!gqZt_+ӣB/t+t밼k:u:-H[(uO)f4NPo#k>OU*4V[v~O z{m o-wa-|JřUJԝc]Q q.{i"ߜa4kzv5*NAk n'.v)"^%9eg]mQVx/~WGX7 Fn#{n=n>-5^rtOu.G:utQ-w/w "t%'; `3b-Gm599^U\ʹoUXTNc<;c{zF.=<5l'j D{޴XڬD3G֝J|29JKx*Gr띻Oׁ} aY4ͩ]zÔx9HFnMո5TQ\ źJ>F١9Swj$m"j /rR8kZ+^Q|ojm*,2Ei]Eqע49lMd8om E|M.!WG\kFF2mLfmkc t!ec|JQ ȇ 'OP|ӶGY[rDrqrc;n\?OzٰtJl/xPm{TFn{Mfv:=aN>OmLoiPP=/D1ϵ-_P@$ና7/]%O 3 gx莏qIfCʺ~sU|99=* ؊=j X]SU_G!g}Fn{]̟7c7uEy鯾.T&Rt~Y,E/CɜWѴ-fzCW5Up4]!aXreo{hD&45_Srڠk*_ isJȵ-_='R!8O }ˮQ-ZPO"I*ۢRE/]0s32`S&k\tM̝1V^횊ږ/~Wj?'GKaU|YryҺo,Qb;^; 푨fmwe*a j Խ;>Tz^{B]aTkug"So:ؓso _Jn9W #mg4M1Tڝt.(*+\l El%EMAAw3z~Y*`#|;Ÿ܀ŀU*;CzQ''F{ʶ(}Zk#̶BT +K%[`GmQst(]ysZw ymuwcz"\-7m{=/e*u.]WQ\e[H/T~WWB`WD3ȧ7e#>U9zJ~˺zF:xԺK}ŷZuO p?'sx1*G DRHDG%cօ2ro뙬K=K)\2jN=}(9ƼppͿ?=,7ՅO{=;gmC+fHa58d߮"Wŭ'ҥOPwO4c[lkm˺߅p*$bF]w]PGߧ9>IwN5|fm*_zU&.։~6|}ظ!wMu]%f{MGi1tmQ{+&LIUjiPDVrOcXNۙm2tOAVV_9Mb!kfR{0vDZ%gFo#GNfmtxa>99B6#$= cE./poBݹY4JJ,4 =5ZϿ~Nn2{Ve*0,ꍇu92дl^{%{~w8Ȗ!)s~C6ff+jL8] 'SaմRmw_MM1rFu< 5F25WmHvJBisS9gW]SQGA t]=8C/.5}r^UߊO_~oK7iJywE^!q/^ܺBva6reoR3?J:Pv#mJM!Ϯ"i[6GX,ۢfk;lkʕ9>%uoW|sܤZ#IͩzM=lWkrQx(ڭQq~s/~Ϸз aօJ\4~.vخ4ֶ|{PK18o ћG޲\сtzIԽ4Ѷ/ɹ+?~s{ er=0iԴEr7?qiʭӻ&Eb&IgońN<26]SHRCRż/#҇~'mS}o[wֶGYwa6ē,7./+kVM]P5+ NTunO `G 5@5Gy]Y{l`R蚺ۢ" ۢI3TuO+UC| =y HYc^]PWYꤷ(ۢrzOe>5u*]y,m3Tt":_;XEBetrH$%ZwD_pT5|~^bk|Џ|͢,JN˶Yt.TW%ϓfR~ űjY Rn2mQ}n)/MB:O99 xg7'[c5U78WTZWg*l7Zn{]0x 7OD,!#׀YtM_ԺS- =ߜ=1N`bۿJMv}x,ުUN΢tuB?l_S-_=]}-߆[4DZV|} >޴oAOB.=7v`"!I]ꈽ:"^K9w~Ctܑ}ymo0v@ù#k75Ohns+єvzp*uvBYreoɿd'aKJ[2ϝInw.<52J70 o|/yLNh8P/f<t^Po} ]J̵,U4Zw*k(Jh=|KBM7^bl-j ,,D~|7I G QX7^;;KF0٠lh7U!{}L3Zػ]‡v+xmw.<%XXcvlU|]) JӡLG6ՎXkOC3KK%ݿt[o OdCTz㩫dw^[rU7Ogz8SiҦfWGз !7u:{ ٜk.-J]ZKy0Qoq otLnd!ieW$늒m}eQLNwA+ۢiܞZjʴsh P?^YD1Jll5_,ӞWJEzZ&Ԕ 7b罒-_=i)SYR[nWv"|&R/QD4GWzmuO^][ʞ_kM`(3#]W䓩9ްwC.F#{˶(}Zk[_wrcb{KP3v6 dqׄнj{pbn.=Ƥ`[>7b7qKʬ8QvA[| -YWԪ4[*[˶(}Zk#=:1!΢hSI .|7"bnx6/cUN%vXAzL9A{"o c@ ]QnWpfiX"AR%^=wǚn$(VNſJy;+.tQ͸2i*y1sqV~m>a3Rse_ӁДTi$y,Ϸ( }v(e[>_,<ڂBhnԩ#CWUyFɍ;иHuQe[Pcl ]}j#Օ9tuߜd:힧7ֶ~Y\Ng61+?^ɇ3!qZƻ&c gޘadXreo/j^2&ԍ/&O_T)ywCo -ٺfqס{bcsrnU}bxWC;j7&5TGVͲ6rw5ջ<-#|g4}u#y]!ckn$pFэi;'{ږ/~lRFOBq, Jw%0{oʀq]!>ӕᵑ/~5-͙jnwi1q˿"u݇]%TkmQaa<7;딒FEձrg҇²kN)9QkQN)׶~Y +FliG}OʺT=0r'gPEtZ温{l7śreQܺS?yN2Pur_~ئ^o(Fw={roueȶ?u&|뵐=#p1\޼f\}.]vV&'nna{gk#+pyEgmc_tݶ 8_gO֧Fgݹ)g6 w7uJw0Pt3C>f<̗snG,>m֭ۅZbۢUFn{MEy>ÉÑ#y(Hn \8uZgƷ`汰˺߅ѽS29Ѥ| F nVV ԍqYqږ/b@srq1^& =`{I?tM܍T-ҝa۳fexmuOkwE&d8RncӥΨD#jҐ uݗJQp@M(d־4C;x991:&(ўl|/fspt+ɶE稣Qv?9~}]7- | 7v@8tMƆ!q*T7߅"ؓF M]!ir/z+Usq[`qowuH~7>FW]t 9y+!,NB]i"G~mQm`u ۂ{3c뇧cϗ[݆\օޒ)ԍRھ8ڒt>>=%9ql ^@*vo4Ӥ<qm]юn2lgWymy=MlQ *n=b-i(_` : u݄o #9-Jqm3.N}7t "wuET.‰i4iPYɤ75qgwA1WU*n2tMIձZ%Qk[n78pف$3RMUBM7%qӹ(L-)ۢ\M FP&`i?3:/YY[#_3imsޟ=B]ly˺߅YG#ܢ?#/ mt*tr.۳#v=tO+v3h0ߴ3]MΗ'觻J>8}WQyJ"w^eږt&t#ߠEcN ) g_E/2;9 tPm)^meGYM2{ڻ'<,]qSJuGd-*>r/]d% !*esWl AWCŅo|! -9~-2 NZD OxKPch?q蚺3>'2)T_E~Yd8h~u"$55>[PB2l[ګk~{]X;kēyx>+ 3BΔOp.T$g.jyN|\r%^R_̙jR3:v+v&I%޿"~ e[>ݹمܞZ[ Yn!^O$sfz6㽔=Ik EЋXFzlӹ'9(د%1D/ YT5K Q~^BݚMEQfbhtQ#8ߵcnR/Z(ݮ}7i;ڡ{]!1 yrAܨS RE$UVE![QUVP?xÚBޙߤ)ޛBQgЫրW';Q )MqnR;Npk,up$k[nS-i~& *c dQo,#L?N1]։Le >_/_# ^%# }A)6ON+tm+u_vE!_Ϗ5ah( nsRC7+m z{ʫ}>{ =sg%˺ߵ5\wnCI^=Vzם[Pw1zjIz(*^7 QlT3(CwBt IrMڒtm˺bN⃯9,$j V݀Gug mw -Y \Ag٨9zc;Us.a `j= k[ Sp} VIU7{C;#tV{B;WsC~YTj;:G^UO.o'鷏EP18IdnRwrr 0uGs=ږ/~W~  x)IjؘVפC](hݩmy)ǯ͖ih+A{ -H.L|6#3j& -_=.7aONOU 2H:"'Z^#e{^m$l[ GpI5[17~sA_q%i?ѡ#˶(}Ͼ~ڭ{] Q"$G;RH j l NS1М/^B'ֶ~Y]oa;?O\ֶ0ZW_RKjd(P[tWl ŲK?~S--C\C ngY?+߲eymڞE t3'_(7w:>}GL뚺`N{T~+3l ˺?~s3g_ ЯiQmsA7*$hf;8Mnui|!!_=. OٺQn_P6h˭ ShÞ)k[nw%ܘ] C}S3.ƫ_o&˧fZ7u+$lϼK?~SxģR&'X b҅Xn @객@v]M$Ǎ 8#j6AaҮ$+##ۂdʮʌֽϒ =X,SBl̀, %{α-ZA=_"|o=V^Vt̏mEosl]CB8AfC͹JD%$m7rS~[69'J Bz(w"ϡKSz2kBZ_{[@zt@4D:qLQY !#5.c8؉Re84*J)uO0n.}=9C`鸌EY䈌JwVTJ]<)j!F>l#{)0HbCgeLDN&mPU[ ry ݛPDAL½KtwUVI9lGӿZ{;n0*8u6PE5{X ]|K)eAE38j5{mo)7;v _\3KXt\Ȍ-/]PG$RtS|㊲)нYIe=Jjd=U^i_CQ:Zt5yv&PM9Ε# zrPދM? iA#&]R["IP6(\]4􋺧*>\g%C%N E~z=DۗF>"ʮڔ/r"JTPTfki.Xva=ϹmN;,q2@AvPTkS>ں7.g8AL0$N&PZ1  6(œ9&k8ja,ı6 WN,J{~ZisVkUYv]#3wU]t 2^D͵)Onq(Wwq:cj,2|YҞ+iq EMWrukmʻJmsywē ߝ" ٛh*&4zYc+*; 9lA8uo~QZBclHp}KHNA oCrݛߑ{ U3M@x |/`[wtQ a.vQlva2f&Mt?dM .)Y,v֒> ۠+M{~PK վ O}`R ZCRVt F3Sjب~P+B%۳ݢ|cr޴ۧR5L,[A۠|PBN{q(/hb31^ݺp8tc,>G0Juway֖NBacf.SysflbUQp\h۔.p'Y"6(\]5E􋺧zW\WӴݘL U(v؉_.wZO6vpMyQq~GM/s )t2![ފDo5Q_.oZQWw8żIaRk7!нM:smzpFY,}8j|kYHwU WcmɳuL[=NL+ t+.傳EEذ0.aXtuOux}*x=9D^h\8lA Xt)m7Ư)oՐt{1d~=9-ڛ*d֖({1K9tv1A6(_=V"|=9;Qzpv}NomsCy/u0&RَJS-9hItFkG\Wb|@-c tIy9st]GmWڐ/s⥚Z3"Jg n&g!i,#qy8-\[̦{=0"_ x_NLdz*ECIaͨڒM7`!p[;,s%JqbT|A:;,qllZv("_8 qNҰ`q&pdtj5KsLTa`t1@u6hڏ9b 8la? q_j'L>),mP`֙sG{@DʋY/d21hD-gdn/M&]Q/~~!.OvNMɘ2sc C?G:2k,n1[eWsmuo~%'(yˀKJޔ\1˙f†J8] $juOb?qNv*V4^v?e%ǠL" Hwl )_Խ 뚺ĝFW 'C>c&ubaV`vu"MyɌ8 Wr2&;lkrTKlo\vuA6(\%=sR1m9FnC¬iAVϦUH%ݲ(ˑ֕Cs;:[-eеڷڔ/~+ =*7X.{2Mb'="(ʆtI(;XGZSm_rݛʋ*>朾g% G'Qʋ&ԃ9枸nB!m'ڐ/VlRC$qFvZUka4r޲=W`]hFW-QY1ehK'(:ð J9BY߱ӊt6 hfw,QʹUtBq x`\[N2ҐMr'Dǒ-Yiq*4J\k~Q;TDUC" Ϙf[{`!(_%5$Th"]ԈvԐhmuOw*"NE!t9Di_Zȗ2,nnWP05:6(\%_IV鰭Z mq+{- ] N;G(*}67tIm\Mz;,(.۠p5֖~Q;b G, jB͇ 91$9DumP:3" öc=>VP/)VH Sɫjv|AQqVK]TRv6ew~Y{_i&iq_+ɈV僐NVPh $Maԏ 0[eRW"ɗLw #j3gڮ*%3Lb`dž g7.m!(ݶc]7%J`y~>+>ǹ; GA&;]Sd =ö)I-p=JW* cw{[?qG$kWvu9MyR+a *cSw&+!Y=AϢT`5-/%9"Ln1e,Z!_=̮HC56D3`u~_HvFqO9#U|8)aZhm'F)-[ve}=9d ZT^B]=#ڠ+* )Ab-9j-9Y~//;S~|ɏחlixYV2-Vs@~y<>'h.'y^<.7iӺT+2);t ?uk1}[~wx=v-U[oy_PxN3)'y^p/y\`> 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 67 0 obj << /Length 663 /Filter /FlateDecode >> stream xmTKo0 WM# V` C׃[˱JmCD4<'ЌKH#yدVEBW|n6\UͭnxEtuyb)DlKօNd!ʒp>˃ǫڍ(fNw㾱*Elo~^]+& J )EN2&Ěkn(fJpn 2$u"m-B!E|x( P;'g9g wyh ipqiGɢHhK\&?DhnE endstream endobj 64 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpkJ8Ssu/Rbuild2158a573e7fabe/mcmc/vignettes/morph-fig5.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 68 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 69 0 R/F3 70 0 R>> /ExtGState << >>/ColorSpace << /sRGB 71 0 R >>>> /Length 58986 /Filter /FlateDecode >> stream xd}lKU~b}ASG ҕ@ ɕ }fya\lꞏ*?Ͽ_'Y?V>?_~?oݟ'sϿwo?_?៟<'g̟)j|zgQSW2ir5?;tn-9?*姦z`ߛӎꚳ}zE_tƧɟ>m>͵)]vo)if)|9哞<+`COKz%!|aIn|\mݱy~VOcmi/Gm"NGC}Ƨ?l?%249SG`"]Qi e7ooy/)q&}y Ktw9˱y}ZOcmaݺ_yyqy.s>?l~>׭xH+tȎ}A~ڔ.`_vwT{ͼyfݣ~~* < /,W8<}|ŗnڔ.boO< 9S=]zo1>'s|±L7>Mc6 ڔ.bo#uCߛ,r9C"oC>>’Zz9gמgt§䴋n-4v~aڋ==@5 ygL7>MNɞҝ!]H^<{9_-1yev=L7>MN:&ygnRڒ.`_vޯ`QgIez._x = ڒRbo㙜{`ߛjgx;]7D\[ק_XR[dd$ ugM9";9oy<ջ([y\?xwB7(ڒîxK-#a~qNs]>g9OGs([o2ɟ;VT|Ğeڒ.`_voHe{s'7Ss8;Gѹ@arnz(ӍOSύǞKQi e͞{Ϗ7g?xl7LlgCɷ%eʼ_ɶ!&;l۲Au-?XQ[oyԜmKAA7֖v {Ϳy=\)8^)þU`eW0([l;R^[+kj'7aܤ(ڔ.bok>O9Ůgqz"JϚQs`Enfɱfxmȱ㥰ډB7ܱc:.m}Րn9 MΰUB7(|kKN7_cܭsePg ט88d;pnPЍ%]vo9AX[rEm77>mw`;ϱb766(;>gxcz88'yݠ1ڒ.þv6gYy t8D:iҖvOn%5gYE>nu .boz؞l3Wh?jJ`E?6aI_)Z;iϽtN=Əs'QpK*k;{.IӶ ؗzl$5oΝO8zN]-N%er=J:&aS(lme/u9]m|\Oy: &STXRrNFft7Mimiz&o{T8g\=N5qR:Ϛ!0>ɻ=%! Z[-"C.ZrnY[o۾7B'|mkv{k9;}q )}ٻߗӉp \'֦v{eAx%vo v 'Z< J1]K t!R|)tR8g.boS߼935dEԉXaqC(o+0΁j~ڒ.bo,ls+}/γVhGQfCbIA7>Mβc?wC7(]s K}a yı&q!k3Ea_KJCΣl}yv;.ƞoYqضuډs(]5tF+ud(]1-9e7ߕ'.p[{qC=vrEwGeﳳ[,!EXRv:_Jw쪵6ؗ s~q,yъ뿙e2 xc`EÐKy ap-9efN>8K<@+Ů!bEeiO{EB7(\K&9"eb :ޜP hNx Ċ2:UV`+3]kSN}!(c Aݠؗ:#73L:Ose#0̴(c7y2:Q =[Iiy.bocsb}QTosz= /7F`EelOEynPD9"[ϱfP9y.}+2Fݿ?ϢXRЭ]qF JPPNK9*mj\mwJ.cI /0c QkSN5-W8 sf E):tb:ODڕnb+ ڒRbo(X% NDEUq_۲"*v&|#_XPԍ<9"b&ݶi)[~}d[7TVZ5Ϟ <s NWeI0Ğ ڒ.ao#^Y+܊FܢpЯKyH'抃 ~n!]3'(U\nq,seAi gx9#*VR)ɮ(ۗ~wM9"[VONʲw䀒?/T]{,ݱnn%Ozt+.fiSũp,T(Ř0 )$8w}65tR\y]ɝ3nO-biv+jOb Q?-'SV!:Rke}mium;oNy .T%xJıA:u  v؅>uRNǪ!]v]uWޅ8CiC !k=!PcIuϻU]饻xޅֆ\v;rJܧN^qcvxr%%eV`I};{zαڒR`_vG!D{WaNtR;H+ VVo!xǖ 2~ˮ]@y(mqsS.H z\nxǂn|G8KP/s8ݱnPVr%mwa| '{A8ƜMǭkȷb\0 \TO5(a9"[JNX{qn8OP~k^XRw<5 tnPzޗrEmwϏ9Ёk79eQ:Feغqq-ê,9M~v*~}E}|%]vG\6ܿXraΰ7B8_ɫ=%49 > A).6e)/8< h|S@z]ɷ%\KjxdXd [-)cZrEm7e{ Q q<%W,qRqY6dĉC1q٪ 5{!פwխu-+<i}:KF.֕FXQ4TzKw֦vU8n)*J{< ҋ$XQ&N?J;{ڻֆ\v[H:@9ǎyGԳm!kBK{C49vuqڔLڶ,5HLztyB^ '!,79ݢkkD}٭#>׈\VKJ!!,p 4IaQrԬrEm~>2|q2vKH4\j[=j b}KT'1Ddlb6c|_v{܁7^j-m j8:'FAzt D8 ~=`qK{vl:43~gtq&փgyl& )Iyaovl{KrU; : _!_K)h˭tl6tg|mizWuZwB}pٟ^.?G^'a+]ZkS>wmw!ˡwߏ3Bp_:* ;a)ɱuT͵)]v+D웚SB`tD6Qxc S7b8Ö v£䴋HI^DyN3KA, M$Q3*E49'`_vÞ :g[dW)x. QIug$+j*꜁m` unA.bodz3Y<"/PLCyZ!FTg86[u&kmi|39ȩHN(NE~OOhHaIEi8|!/ԝ4kv%4O %6ߛ3Ѩ-6ϑtMQ@YTzPѨDn/hT)W`/8omoM':7 HG6k ,;imʳϳ>b\x?(R)O&JoYBNo7[X\j?.zZrEm y\Qߛl, k *\n’^P&ql;o#ݼLkC.}T9G@)^٫ Qgp"^ٱ}\V5/cϯ{~.(lKg)/JVtk6{_ϘU[S^*'>9:s~=Go-Im)_M,) ܘ I=}֖҃zh;ۜ+ϕ9lg/;=\ylxcr<%Jq:6TPP+} ^m!?s86 VXiVePKmV8q"Ahؗ:W.tnJw+1ʘּ4\Fj+j(R ;ق!]V yq1q6^ yh*ywEEtצv{~K])_'4+>Vf!G+zWtL|Viы&;:j͝:+֚ wy" t&,)/^pNj_CwMew p__AQ!"! (9z KDT3vi J>@mʅ@aa3 2 V)ڞWZ@fĊى⠳˩;f'jmibv9<] o )Gr]aeS`76ZrEmw.z例'HTEi7wddM*"4"!I7Wڒ5ݱcJęgevW=./+C9Fm +{8T"rMcev5MIn=ӑpNE'D^r'Ӯ[Nr K*"`0=ڒӮTҭm78w}j! Ub$ !`AQ/ ݻO1U1]7)趵]NKRT75j,sě9<|=+|ZXRw;ƱHw֦xerQ$(so9՘p4 R>,,S)hAlYg9lf@yZ٭we-Ao~M:oPFa)’&bΩH9r>Pצv{ۭ|K({l)@Av7k\p;\~`Yn^abHצvuGKg/A= m1>E)w3R$J`E-?38tkQ ݤD ؗqitSԙúڲ-*@~J~aIhݕc Nncn|aoASEMaS:QUʷTdǼ~arZ;kGݑ; ̻p &'ǹ[y(|[ ϱskyݼ֦͜v{1x#++ݫ (Hj 9s%iR˗n&o^0٭Ŏ8œ;NUOr9R%MI6S;rmiʇA{JAT(< =l=E‚n|!vEOcmi)[6ji>NPM@-lA[dљ0iXQFTlXAʥۈkS4UuVEEL'\"䱫TPf\^"Ps]C1.mw||3ޜFuOhyb#Z*,Wq)l佑(wWd|Oi sUu-8vnkٜQp6VNJnPcO)U%Gi[u|E-vLil(x1TrL<tX#!aٹڒRboD*f>]z6v g;:8ثؑ4*9u’^."V GU0ƅ+\b73LNWj8H ?iRrvVT91ۮd\w6CZe~zN hQؑӗzh7a bEP qyE4Uc njM[˨9 Ky,+<ɍs鎆"f%{3Z5םO"*N+nP4֖{~s֎ 4<%GxFZb8 ^`MAviݺ_2R7no k HJ6LXRٛ!SQݠ+[󊃞r _]O h/,rXA9nPi!]vл 8q0e y^@IKC!+t ڒ'uYH㳬T4{GfM]kOWS~*#+*{>8؉[˵+Ftc5twVd\U]֩^ء(!uͱU^O%OOݺƲ7BU9fƁ5VsLĒNb3ڨ1J9";bvLɪpe:͛\F@a/[r¯(?:R`m&%OGk.]IJ˥5l|o)&[adhR9ٚr+2lg]Ԩ>%]v~AInYX+|6Q'ҔHXR!IH}!]vyG90Pnsps`h-,h)Nű".#kS4N~FbE{ 9cyt=aIP'!ǫ@إV[xbu neerZJm|K$'N!{灘Eaa_\^QYT?lNQ'|[:u.a_vGcw>k'ݶz%{"ũK,ґaM9J[nL9%kD]+;pόhsv)O]]$nPzrZ nYX{-W`8٨heu8:hV򂡐^5%mk 1j_rn26v gxjT(9Hܜ.yuצ9Hȸ9.ys- >߁޷O Ku$,zHwQMyѸ̙~٭w{q8aspаgmQs,)霦9:5=}me/uF)8:շh7z* ^|%=RvUMw']{`_v4_~& y+’Q޴TXr7u+\؂v_kS.K}٭:>kb$cJNTbnR?p!_{:c#5k_rEmwhcR9nf/zc^P OyN!UC,Hq&Jy%E6ؗݑ3pasЭ6u8V  (`E 2=Zy>JJkS|xze7c<ҧ${wsZ{bS GgM.GVaAA7>Mۆ%S7(|kKNK֞?XYeOmlUl]!x OwJ6DЋN;]J)"[=vޱ&gS`pM ԭ!un@aEE-8(|!vVgpmi/7Ҩ8jʊ կq9;HT]<9[ek{.ڐ.`_v+g%ncGs ͫ˲]wıslc?N6崋 W˪K"gYhc>6HN@"eJ-:Q3z䠍BtGiM9"[ ׫q>r3:'u2ܨȗĊ*^e(R"MYkme/uF: qP+Я#'D&Tjuη lCuڔ.`_vkc[s߅spi[3>ŠsX]wSZrn_Гw `qJtQeԡdZ`~E  3\B7(X[;;b욨38E+NʈgY!塚'd#6Yu^\.aosx Ws01YD$(M$TS5s,}ױ*Z(kC.}-Eq7aϪY 8e]7>|"kXR^-a ;VEmchrzc'gsRt褧H2lcksk]\7)|s)]VTP<Vtz+(!ZH{E"'yDr4{,4NlFWimi]jK_}oAԁ,0W)*Y%STXREޜJ쳵j>1.bo/E/q,D} 9.in;z /V#eCmDz#z/0ۜxdz[if’.k9Ns|mi z+ʻ o'`ɛ9.O``EWUۆMvIwLCeZ }٭>tO`DS[Ndw..x&VCq:`v~6崫+yv^Dmj';Dz[=a9;965OT+ A{f;`u|mi/u~)8#t[:R7±cs )9㔥;-kmi7us{h}Ol[Qz~.o̐.nu`{_]< &(Rϰݑwa1p 5 : |Pgg&II5pja3ک;{ AkS=Z~٭fJ!swɴ'[=T q+M= K*:X-%li eӰzWkC.}٭>*,)T0 $읫b g!`0b_XR1H[µiF+tR}%.`_vG *&^,}ҹ2MCm 1؎g J.%PN}0u0x萔@r%Y)J0lF/Y_rEmw#s&Y鼕e c;؞ K銜$=Zl32ҥC' ^1O[~ٻxw`r$"aI%ޑ3JSDAIJaݑ*1RUS[YGubExH~ߡtcmi/xakn9.N, DFq4tW<44`k%vG}FE3ɖ[I5r9Kn_PFZ3/ZK( " %5"ך|ibvF5צv{-2F9$`tH-x 5mE#XQsHpvW O=>5!]Sj.i(䜅݆zݝ"9m$ ͋"\;8*uG֦v{ۭ3sc.q,2Wq=yҙ$R~J+z7q m+Y{_r]6 W5 UYӬ3IԌ!IQPG-:qmiz^]UEt:B*$ik_^\_'x+ձei\zlewOni8h3x*V(Kc׼W1c!Eun^Ť)zCzQ9Z<aS,FG QKwD4XRKE sXC7(uڒ.bou[Jf|/ L5oH#;wO΅[m jxUslRAݠi-9-%[>ONIUdI{b3b >ǥ;|dM9";jFlSrdFJDC{ũPӔ?/ŽZrEmΕ BS9$YɊ;,?ᒔ[EcIMcA"bunRrEmwԌtnLfƧ&d^(6or*t,(8L@uڒRbomeĝSVnY&Ź 79c),8sio>%]v\iߛD煚V T?pގ/EYK]ƧAcb'G@7(|kS.}٭زdr<9c֏>abIA7>M1~A9)ֻ2ێAtx'o?{t8#YtSX溋w,ڔ.boUƮLKo!ph$@!hɫ {q8^;3YkU"y٭eXu'kVxv#hte7‰m:MX}: ecBV9y;v}8Ʌ 3@{r1{Cء"eQ'lB3R)6Y Ke1txCp'S5t@y@,iαb/Zu'ρIcvGeAV'hΜungbYp&ojry’J1OMC{ ݠl-K0[l6}/MY &Ju NY NEvg"dXIAPi)zY1-A @;Ɂ2Pxc$WDOOClx73ǰ6崋ؗ݊wkGMđسAݠi-9-J?s),ӎMnqP8/av%’^ NA؆<*)]F]𼞱OP|_|*7ZLSrr'6:䠎؎/u^Ӯҍk D+*h0r2 @)jw̖G!)K#y ]|֦v;*4|Bȩ!N'/V%sRbI?&|[اǸ6ԇoK7|}(^9EaW r {$Vp.\.|me/uX^C3r4juI9WՐs8V뭊rvOU崋󛯽{m8@<>&Ai_^YM N?I=Mj҅햟9ڂ> 9+'en4 R|+*^dbtSXDP_vGߞ*HIuܫ&MszvLq:bEeJGNc+`%zk kSN}-%a88ȺP9(\5J‚y9 ƀ%=֖{ۭ= z9x؍v jUNyNJ8U[_KK~̬3{EQjwyeQ]j 95b"8;UG̗ڒ%_At7UVͻ8$3`(|8cHqK*UN126Ҟ~ޥCOݑs5piOK/g93ZH=’^'6_YvԒؗ݊%鑪9+*TK]kTPѭm\خ:OSߐl/^k't˅pƞ^cUyw||,%/VTDCHX jme:#įߛrSKmDWL;q%ϸ܋zCݠ=rk˼tMGαb Ra(vvӶirı /n:M޴|aoO'rZ.J󜧼`gt2,IwO\rEmw`.!)2J6f3+.2I²uט-ȵ- n }Gt6hbw:Oރ&GoaIxy{ܡ>%]v3<1{scgxFJ`ZLf߅yaIUEcEEtgH!]vy3i 2%H+HT8@w׎)?v뙌}oI΂#}!0pY))=eC'aYgIĞmY{rZJmw ?{hZ(ET9;X~Uuڒ.ao#ܐTWCN4#(=b'̉9W^dU>֍ JqdY@9";'f>n% N :IY $ǡp49b ˨'ڐ.`_v w*ԞoG^G.-P8 S G5rx&]9h61hAgpkmiQD͆H}o8|bSӐyJ'Bh Ks*ұ,|oM9";/V|,&/o˳YBQ!,drѝk-VrVlGzqlUܢc ΢96TA>-/}{ıȓc37Rw=Z򮀮ao.sgddDZTbvoMY(#(䜢N36崋k.,rzVj9֎" [Umc"LQJ ,)}+2{B7(ArZJmwȤD9'p#I_zXԐ^+jzV8.2tһ-9V[>t2[="Avp;(k3XPЍO/;1A)Si)ݼkEߝZQS6WLa7+By'f[Lǒ {αoڱ=]ϴ֦v{ۭ%.?8qpP M=#kȭcI-ATb'6/ J1BNV>LB+ eH˞fG{m I>4{ڰf&3kbOcmiʵ;-LNXq8c$g!+ȇT. X ڦ]vyao;;iAVBqBpnYKvRU5.,)ӭk8 ;nPڒ.,Kcλhλ=];b+b]XRU+λiyvGE ׌D];CjV\ Yߞ1 B;g̋p¢=U // 3ǒrcZ,6Jyfb.F,$Ͻ8ɚ ,ETAX[r%m7nmVqRONzzlN r +D✄Dleڔ.`_v7}9L2O[8a5ӊBd$dkͮAefC-pS|6岔ͮoo\)Zp1o9g'eib$GgSbIe~4%6F٧_hme)/u~(`6*xs!sH#ML’XȱMoDY%( n ޽K [P{F)9Oqtδ .>%vGmBS {8 Urܢ %j`Eti&]I~V/^7XƊ1 Ka~4 %roks),j t6C\7),r5u_eLԯc|Yҳ| Zrm)bOLwS9";jsի9Ŏ GS8k zxlu-Q#\˒1>Y"TKpMp*)rt,ݢsZMYJ_rEmwxs (8*JO |i[kP@/skbwSSRboGmٳ+r|hf9YFF O'ꈝD3z5qmaݑ_HrҘ0/Lƾ&Y1Kze{z,h=|r췈՘IZf(#\v;(ڀ0uѪ穞.Q Krɀu*96Աua6B˰oyT1NMDNG]O=No._N("gAgv;tR/ijC J!~bUh~aIU4']Zg3vse.Y 3 FS` HڒIXPӫʝ3ѳ9~X[ kɿbLO8ط/~?wZ~TwvaeJw<îwX[qudğH^ѱNxT++]}j֦v{ۭsez*C"e6Y1] 9 K{8hG"lWtڔ.bo? YiXN9#IgR7MESHXQwn!]֞Lm)ivL)Ir+s**r9Vc6/ 1]VFe[^yq8^[eVY1 G%cþiCmMNK{u c┍-,eYsۻrgzg"SAX[rZJmxե8 WDjUl Qw$,(Ƨəj ݠtrRbo#>!(E`jɭű[ lc[c=cWui0m}#ǽOg Ū(38TL'oc%זv{{z9Sڌ=JCjh+gI6y59Dbt{׆\vW֭ŧ9K7Yj}޽gTe%Kv‚n|ibK,UO 629-%;}k<*ύ`G&R+n׎yHlǒI{ LS>:Z;k켰ݑsņMǚ ,γ ٚ(Iwqyø ŬX鎻KkSNIm>IЇr#gM)O[!zaA5eJsn>IkKNK/oHhҼWqȆ夜3d. `&OaZ`E [摰h-,ͫevSC:p~Ts0h{01c`Ntư). R[q~!{۾m^AA7.bolqͱZ{'"ߓ(E Kʣαjał;yYkKNb-k}V~ˊZ WŠG57.ڔ.`_vGL|"fĭ\%3k[b6vr$ irfw-v#c;ZrY Șkf 1k kA+FIo‚>9KYBwɝZ[rZJmw+aE9FY U"`w͋dr_^r,OQ%]CMۥ[=T4o,9["+26ū٬q bIefse L9r6ؗӾm&gW3fE&~U򅂤&u+:dNH= >%]v}3GZ^q)ZS&F;zND<ڔ?| ,9α6ٕ9Z[rZJmw`6YWB I!Լİ 1lBXRYIA.<Owu^+JW/!aռSѣ\Uh(]]RL(b8Gl*b>sL3{+kd^n}}M)wUO oygoh|agC>ͼiݼW֦v{ۭ{w>m9A\WpN$a8)>pNBl`ٮAoڒ.}5Wwᜦ)(rԽ ‰H޵’*+ Vݠw)䴋nCg29hk"җmOqDX]1Qc֦v;rR?Y/@Ö]ru#(OXRѱHtv'v"g9ڒ.bo^|&8EzǸܢò]]s4MFlE%u.ao{sv !Z3|ʖs0X6LuIZr -A"}{qb{rOR9ˇ>@4Fȑp!,/<α žѡ>̈́ e)/蠏U~ ޻#J~PIbEe%!G ݠY崋ؗݺ_̑vp/'Ha_JSei ٠$UnPs9et/4QfD6*{1F9 % 񼻋;;&Ei +vk?󑝃'_#YS/ug%gKhbo9L[KQW }˽eQxN9g+*&DXmkB$צ\v[>ت nV89XQ|(I᝗?vi$j i]5 \n dtzpI欰HG~ݢR΁nO2M˶ I٧ˇ_vyfsdGځöM dq)[$? }U'yYdaWQC|VHBes{o)[ۓ1t,(ƧəȰcé{yo-9-%[M9";6o96 W|Le/.hH,(ƧֺcnR[4Ai)/"O.?83X;@P0 Qu8z}#`6 ؗ'eSH5x1b!XQ=^ ؉%3v }⠛sqsbI{\aR$Bdӎ$t?$A]]p>B_FW@ʦ2c1H4斝~sl+yL ZVΑ/T+)D =blHa_KMbk LVO4˶M`EIRjn@~&'RNrilH4斝5Vr5~3&:]$u˾ԲsÞ4 *nYs^ՒӰcVq-|M-vO2a+OT;UӮ*i*h _F;47 ؏|zZ[fU2욭[ňgKһ^XJ#w֝1a4v؛榝~堄hT]^=Vu{%)fZ,Rwli*r:X4vql :il)U/)EAelMXTʎCa]t<>e_fr0KshZP˶_/v+i{>4 4֭k})[U_ < VۑN=7R'kbRmG<n3 {bkyAVkِk$޿5(U4=upKcGΠnj6/xddx[җے.υAwA8zPPG>7/ދS4+k2#H>+a_zTQdIa%v%. :+5cHP.o˟]ԕ1ti좼>v=vOܮ1PE5:"쐄R+CvVVRTHSAB@lsa_~Fp~ 9+tbZ8 c]Zf؁]j57k~U3Bn5# k/2WԌ8XJ=A!n]ћs>D4?~T/_^~]~V~>$Ҋjmj-l"jM;"6P|Uu,uex ut7 tKiҗkߴbƹi_f\Й5 hUIR>j#Kf3cרGWKͮ\pNMWJd5[뻁뿁/Q&,HiJJAܴ2l[>@}{Di.oЁbXN}os>=_턴k%t-yO Iykv`.]c ꏧ=%]XW׾thmza)yEkXKܴ/b߱#/ 7"I)>PCE tk[}좵 FZICR(#[`!=\X-jibEN`%_Ioi- Ikp-Zze4HzoAix&AqѣiH"VRn13cH86$[vEoA7ǔe\ |cXFŽ>JS"؂xLIs.=%r{M:k}lIo:.)޼;=s.u9]SbZ T}@VVR _ u/؃M>9e_f#5U ;aP)XA+n|UwAZ4w$E c]!rMIysvy o#[u+gNkU}'(N -K84DW؅9^ܴ/`?~B*ys*/\Wa',ޙWaֹ_^yK =a뻨2\[4hR}ey@׾I+bA_B c/~l-Լs8*a%E^l ,%oQ L"Ɔu.OGW镦"_]N~~,ϲ\9/1}Z*JT@"'!Dα!ӘvE[nd3(WAnmd-IiM5)XJ^8%clH[v;El_c?(BA͛de_BTmٱƧYM` ܲWov[ (9k@V6rHHA0 V FiP]&,{x}<EO,$oqVP۫FA ,lҠWXl5v:> *5:i?$r[3>iҊ5\%+F44XKe)qry[v@Ϟ=Y49׬$.t&zGBغ_Yh<96$/xD;=%6jQki(uCSP$|}RK[OSP[DlA.QĹ_~ ;kBb "7:۰`}nݱޤt%﵋rV7M;"69v8Ws'kd_s/qZWLسήR*ԋEαOUNؾ-D$19nrJq >k>aa_~V@ѓKBmz?B=Ќ] "J)zrIZ¢Ǝ\vHwzD^dX=%S})՘44kFؐi-;=%6o..j-o"%gw3?ݾa,,. pl=h!)e\GMwfø7{dM5q |c=~eRSO] +|rnᗰa+ߥgk6yx%6wOϬ!-{E66qubJSUΣ]+"YPܺ6PRܧuOSd'Azc'q(. O~w"" [moi,-t!ߢik췞ɤmOLJHl5)l|OҗKSvVG\D]Yilܴ/`?~ޟbCG5*wT1VRiPBd{$D;"6S|KiX^45P2Ft}ŗm-BѕNtXcA,cUsn)odžţ( U:6֧=xdiaR4p!.ϱia(na?~"$|Ҁ⽓LRۖYOMXJwAME*=mmI:؏ߺ3㪰R^kؙM,}ߤA6bU7{:*sNO~oBMۙjKAUڑ@(,*м;`ؐN\ zֹ/mE1:tbߺ2?b\-a!+F }v9v>vy o/C@|eaxU4mUwk+JZ=XT?v`E~'9[.7sZca)`+6[ilevo+/Z, ͱm.5u)Q:a/,QLk>v vobc},<"ɼ{IR:A,Aع(ƞ^i[Uv%CLl:c{<6(*a3b% ?ߗ6ǎȧ5FvoVGq~iX})R;rH磲XHD%+5[lm9L -;=%6뱂uFCK;X"IzþXJ'zS?}$|sNJ[W +##?q%Itn_X+iy4ShnڧCK<1V?{5!n Dxiw{eVҌN s-n-Üvo"'1i:V|8"hؒVZ@RdOȾ'RH4Emz9vzsnoX\58%ϕd]юUa)y'נHGXhlsN~9v- x$'klhYHRm6%!~L} ']D;%l[1%P+#5X.Ouv=9JΦJRߔo`izO1QMV)%b!iHL@m޹aw% W pl|66"!iN>7:UGf_vl/\ ݘ_Bc$,ip w]i~-Sڞ5 8e@WGfc[Rf׵3{Kܴ/bߺ_cjAٍLAvT.HywYr"Rt~aU#L/j 5EE1jō+ΞS{YqK;!.cH[%c9W69 ]4)G?pjq c!,̦ 'nqrn٫yz{Zw 1,fF>,2*,I㎪-DH]Rc~GJɚҰ<}SSΒnD*Db±!,./b?~omm%IE ^bٷ솥.I,NrDcKܴ/b60ᶂ 0V & Sܴ/b:G&m-]cE/ge#*eUQ4^ $[JsWcqI}`xFg>/ܰ5M Ǝ뚛" fGqxO,zBZPB|aІvtdRtX۹HaEsuh81_O树^P1c7Iv2,TVk{ :֎`}<;v[`kx񬩓-H)I>b"Cy:E qa_~?qDPGǹ5Eǹ|RGHǤ%4v1M;7f-_{ 6^?uRoyOzXI$ڪni_fr}'j(<:p?l/aGw@apb՞088M\ ZXOXMM#oyG+ zNX'nꅕTfXV!٧9؏ߊ'{\עZQ4р/HsًEv:R(5}ɥI#g =4VghUӰ}<_54m7ؐi-;6ߥXmm4H.VY;XXѕd{?NRii6Ɔ1췞]яOho#/jD?IGݢ5ңaO=`;Gܝs˾oxC8Gf,Hi(Ҿ'ΑXhș$v{v>MYLc8Gܴ/bcПKF5ƎN}avf1BG`R96$Xwp4ؐi-;?W&%p#:*~{] x%;<"(葥aGFwWێ fZN창ʃuͲ1'biӃIg N7]c5~ '|n!Z4Tg;ީ][_ K)~Ԕ4$]1v V,]bq?k6Tܒet/./qQ@KƧW4 46$03;WŞ۷k5kqBƞh@;"6eA5Ҡn]2Q>jEujEٕnVRԼK3EZљƎw=c>?YHR҃jqTa!ԀX ع3斝r-6=J OvtBR*a؈4v47 ؏W(#M+OxIu#2[_\H*=!fUslxTb=5lZFl;r{.U܃ij|MIZl&uSئܴ/bzw0*>LȽ6d+#¾)9Z؏N_u.5X۠Z'Q:ۤt,,%RsXK禝~{(Q}EHUGWV=_^@ ;t/ҀK؎{_Q Z4.r=o| ]"òVr8;?K6ƧZܰb[_|v ؏za>ZK>8b3 ZCڪDXpk M;"6bMgGff4ꖫJIkY+F}-K m>M hamZ"IA62;46-=Kv`t=zn0u*v n;zrqn)o.WDn)&>N̄=jtݎ4۵q9E>͹ք~ǚc5̢tUDؒd3WL3>_+ģcCjhfo(D}ޥA{z/$ U +y4+VؐmyPh6_yV>/xZqNSmiba)i44XS5vhn\cF=E6y#3kW^'^% Q̨LGT|6HƌޢwЃ6I-^MT:+i;4K,~ ccnou1ij$VR`WG`97؏߱B=9Xe?fՍO~A,^iaA%暻nq&l;,l1ϻ4H@]wOrra7êkq{Jl3i}xX;47kuf/_4K5,g/9Igݢ#4>cܴӯڙ55l+O\1л7$}nslFRTKS3Њ؁VR~˾bU1j VܖeW)%|w vd| K)Bi6>`i_fcO{|O;|U[VI[xڇ'{SNnJoi[ W`?~kr1d P"q~TUͷh؃+iU#D uC7inч啪/Vҍye٧ K)*)[%b<[vEl[yJz¿EdYSn!$1ދLv@ Kik K>47 ؏sHoҠ~m2Smx7UEҎ岰S=}kQQYQa_~1֝km) 9_v-.A.ˎBRn O]}MIH{PUɚ9h- w3΃hGwa%yG "4wi_~}o55ֻp7e*beЕXH[qK!ֶ>6%Evz o-yLn]\[pWl=]Z-T+ެhU7EoVvEl[KQ~5 %Ox^k,ߓora)E4 j}^ܴ/bʹ*v>,-_:6YWSh'Fɱ逸˪46$|sN~+G k#f̓:")H@o[- ұ?kX8?M;"6g|/]T,&,$UJ R)dupb:{` g]ha_fu.FN(w +ˋrKib5t'M)>7w[ڳOkRq^LX[]/B dXXJ-vwclH4施Sw5(W_t[wZgXIKӱg'i/_߄~qsRk)/l9Gu/ Kx}4V+ I+7b䱲ꛟAtbzKS:\Žc~a)5_JS@lC 5džOcn'1 mcHyq"IwNw ī .mpٶ:]UۇŸ|# ]q Q`[A_,a!6g|VRGkoX?Ys.qO4]jws$)vgvϻRSP!?M%187ccJ:~3v_3o%ٚ%쁕1%ט#Ni1%-;n#ߒdPc"rPuE%AIboH3-؉Ǟoɹi~5,ڝKtP> %!߰ca) RCGb;FcGoM;"69^Y^$Ͷ7ƭbK f.Edσ4HjuIv5D"5ht=/ޫ`D\Id*Jt6!+47 ؏Q+6k{_9=6áxCR:6>cS-gqSn ɣi5w֦OҌ*bS$iKq*',sw?1$)sG:D!]mfu_mF|4 zW'ɵ)[xu>p_u=}lE&tl(ǮOsNk y{YlVq ovu%ij+iتfmK]Ռt7ߕH}k[N=%{M[ݺ}c)9ckl{jn(#4Rzd) ;e<=*QPu4.5blqlH4施ai(w *;z9gTXEFXJpE#[vEl[pV^:ߗf"<ҩ6\!ۑ",biR/57b qNe+zq ދ|NQUڍDͱ7wa&aL#h!ّ] , ,Tm8.ؐ;*h6:!q;zGB8Ϡ ;h."\w4(Dc.:qY y%zOT:iqIdRVhmZ؍r I;~o]pQg>6';00ޭ%uq;+m.r찝6a_~{pdZL5Z~W$zPBXI-w!5ME*bA)jnSBi0OҜCF|]$)SO7 clx-1-;=%685?Dgޗ|ijqKwᚢÂBc߅*؋eu&f[O ,62;|$]cuj:Jn$Kx榝~q3y+$49Kk/F冽DJ~; cCvT75VVܖ WbX+^~V4i [?/xˁدoXUdwծ$EV;: Kixf4(iI׮$ZEl;e7O"nkL* !i_Zh?d&n ܲ/bqqnsu~[(_$-/is7=BJ#j k[Pȱjnh_Ҏ}$Fn$ZY2{8,IYJ^(ME[ b-?E8wH`?~G>qYFb.;,N}ؗu;/vEl[JT4_5^ODѐ}֥yX:H('rblHs~5f5SLJ +&|?wo''4Pv6V4vt bCŔQQ(As!){د u cWuVK)q' .PFtV7 dLK s$Ҿ@$?tO7SovC  6Fy8;JaUD̦RNn`':ş+vEl[ -[dʹԴ&AIޭf c.:Ai_f;[C\}H̊p{%-v;A[Wܴ/b9 M_VG~o,#Bߍ7Icܴ/b xIs-^&zw U'ي)f-LXJc}KEʊqn9&PsA;̞saO9&MEc6>M 6a V՚vEl;bSTIX]$1;!$P\rjAYcTƱkpipnbħTJnXn\1}-]G%>NkL3tӰi|vEl[ KJi.\zu4K!ʹ>e_f#vN.: Xn;h.Cb!HGl]sT1/1v=A"$.\3t`ttEﺕzԖXI^&t,5vzG 0Xdi. 4LKkHB(~lt }†ة Ҁ65wv؋I6ߋ2m),n %J햦ޚZ|x8M )zHԈ dy}H=F;4" Z" )DZ[朳8Vf#vE-O=qòl ixgON=Mv lEU]榽i=O5d/r=O wػ팠)f!!4)ܰ˯f #0]9"i6c $ъo!SdSĨblH4%If]iB-AŽGJG^(ZzOzؾZD2:@3Ɔwa_fc=vx`p}=vp>`+qvIZai/Ia)@QS,""<ı!ӘvEo_ @ך6(֪]_Z ;J@  Ɔ,B0Evbmcⵦ* W%Kp7 Z'$k,ܴؐ/`?~G "S4 V;}13- qkw,4vXJnBs؜؃w>ܲ3Ӏ췞as;ɚ.WNԪx;`j$V iݽ]~[d<>dX qYo!a-pNGoRXJ3S3I,)p9_ +ќ_Ϲ:ȫhȴ鎿tq,}b) =\{a% oEl;&׵GhV mK [H[G#j=푥aNb 9v=榝~yϙWJ5V,} >fh״J< qVuv! ukl/1 >%edw$VҌ!t{f k`>7 ؏tW`/ocԥWX;⤫JRTKiyl\#։ܴ/bP/924cB$|B\8.SǦ著#֙dxiH3TP]C!2]T'4?y!L2c~+W{ll`7v/%)VK/k+Vз$ ;=%6 ;^# R#OG0g& Kɻf!Eo#GMw9N\̢H$hHLiwh-,ᬋ!厱.jnهUCxH9zcz] =[G7ÃUF6ۨ`:C"kI調xם! w$+)rH;"#Ds.w%z^ϮᑯR*7p}WtVPek:ZKZ4]UsN}BXcy~4[v&]ju 'D)wݞLՓuwino=u'I3;JوbG]%юLoa)ͨl6ՄBkF87 ؏#bgMKV)lgjEӊxdUɼmݔ15ǂOcG7eM;x{Y?YsAXLzMqM[HFXJ;v[nޞ;i_~s BfLI ·r0K٠g eGa)ҕfٍBF1 ܲ/b:a/;91jùsVRj sqύ-;wbkzl| ]@$vIZvC6tj:V+pl=ًSu0ǨdmgH5*V XI^#MuDYGpnWQk5}Ov zO;K;$:`" VRQz2dQhY,Q8,t q4/?9֥'IcŎ=sN~k 3zN/5*3}#•Cےxz':3K c+;v cCRFkxJl;|\wƉj6&Ս+I{dvf]ᥙ`'=4vdܴ/`?~x{diރH8&K pȎ<$a)u]c/w7U;j4a~G?J(R:"T}F6謾F fƊ؁+=~;cnFmW; NkتnoEB! V6ЯsYvE7ʻL*i^5PfQ"|}p[0ؐwQobezdi޷u[7y"ްRXJI!M7GE=2fx~[b'T׷xikͮꀄ;145jƮܴ/bXw+6Y͗(V)I _4k~-AYo(a?J#╬Ԩ%}}㭒t*`qf-aߑW%n[iH@إaZt˻CZQC;"6$+~S= |eYd!I^ ӞnG06>M XblH4斝ֽ__ xK_>) ;Rڹ8%2w=ܲ/bڋ]4]4S%}޻gOI ij&=XZ4v0hnu!K0\]\Tt> I~nK\\9`Ճib[vEl;b}dc}5WdԼ"[b}mTaRyiȅC,5vdkno&xMEO\ 9;Ϯ,kH_ױ.I=zclH 췮fNM4׺YsQ *:$\6ۍjֱ01ʿ Xh8ܲSbzW23S5vI QO3>7vO ׀MXSӜvEl[ϱ" }f#atT4BD[v.u/ƺy [ݝ[sN~kͿly>'k걷7d0@H֐QXIwWҰ8ؐg5꠫R؏ߑ7Nֆ}AREXj'$6iGzt[[#]+<禝~zlXZ O5qZzK9~qN,DJX4vњ禝~=2{dӰ խmz+K͛J"G [UncW?ܴu`1l[kK{+4x}Ei̋=.: Pc/{hnȵ^{ &,핺X[a_)r ."Z+~NXaZma>-9kb:ّZG,%OST"bR{Ի%wܴ4il'}ldE񸵛ݟKɊvR ?i0m;847w.lymSY,0$w-$b[&06$.}][|hl?Aբf95izfiCSXV KU=;߄~GrACYҀM.$in/)k%v7+)",5v0qknڧsz rz1i&['}EL8VR6j6+ KؐrehZ/a߱xʎjPO^Z$J ;*Uu3 X-l06$= {ް8;jQ5xu/d6=PhG궰3f"?!1 HcG榽+#ΰo=Qj\Tvq;3ʥ4IԠf^u|j4yؐiM;"㷞c^l'4o']I`DG,6;׎ ^;. v ki>6%=4l# 좼.-"K4vdR3!J@hר2D57k#즱 4rRbo/' ٳBT`% 48';NX57w,{ Uۂx aHx2 clwXb ιe L6e܋I*(&(Qvb67h<3،+)xAeWqnؿzV߿\k"{ tXPF!; ҠZXRrq*&FvEl[dtOz$|[ݾ$V4IĂJc[ܴӯdȒFFĽ]Ž"‡${؍BXIݣx;$IZ%v|1VN"3`Xj;~؂} [euEJ~b+WW$疝~V<ѣ+皉͂ хdNyJR$ 27fb}>wU o=ǖ:I[//,RII<Ƀ.>ρ* VX"g;U~'MR;6,;g#e5Ij .XJ%jolеq1vuM;"wTu4G,绐pkKv4#Vu4Ȉ#:Ysw _{~9p/kήn뎥cKM +g ]~[H7Ԭ% nߗ)InRccMJ;PCޫKؐK{f5}F7®ӾEC~?dRH)f#oHMïH,h fވwY܂?Yc=ދ*o*>v J$?RQM heȾ {ZrnV{+ytQŎH62 _xȾ۰[}u!086$|sNON{[! AUIYttQT{$E/PU [H$; ilis.Z,4 iUJĶ' Ff irb%-ԕI¢ً^i*e6l;VlV({ĸPeD?ƒdKv Kz yժ Tv ܲ/aZw4ؑl6HƨΠc%@JiN[4vKinu.vm?Yc<j"7NT^XI3Nњ2Z_Iaۻ}pNj@vo=Y}>]) BK- rjDde໕}n1z&TƿGتlJ 7njtyq rZ3IxpO*ڕ} 'vW59-ĢƎ./vEoDs@ Zz7Zdtݱ bvZwp]ظ4xܿn')KXM@ b)El[5vU]qE:y?Q] )G5 l{{5疝V.iN-0 qIg֔v T"KIWtcCRvΰwU'6j DXdME"q_Q)(8Sh4I%zAS`!@cCB$sC#1i8(5(:%( R]cAAdbM[.z$zwwV=oqM)CS9W/*0sP (ؐi-;6UիZ,}U*K›|M/Ie45$clHa_f"lu㜃uҐ$oLnv3ۊ [Dbc{%>*4٬\`O>peGß~djaXJ՟K"\U5uP(*~GƊDՎvӞmu猜[ܾևJE% Z5 [OcW|n@k ?YF3M)ʛiH熵naGma)ҸxcSDli_fo :^T?Yc/V\]t>JZ:tk/{榝~־raU1ߡOq{+nu_hGfQI(c7~; L gkV R_}w᠇}JZ.z/TA|gqvx! X9k!wBv K˵uZk`HХjpM;"68LEdd:Y*F8+'`R_ڵ ԫbHjp-{QC3[:KɚİE@B ;Kiy4؎+^;i_fLF jkI UOْ#y?~k͏.h@~fZYӴP@ٹN5E{TݣfTo|./ Nz_]ƩC;ZuT䏡&>6%|&=w.o5-O4b:$.;NKToXK-;6L JDž9aqHQ,]Cm`Ɓ;N0Sʆ~w^=$~ [@wYAcji/sH:X5iE|:+z4N8}i/16$=ՃVfP\L5Se4sdxr<+iM =|i_fD4pdUAv岩nGO a)% Fz I;N~klҋg Jc.%.Iv>h\XJ[CFH Ɔn_~xA.BAZj-º,Ijbŵlw1v(禝~;ED:j.(cVE:gJBeNtfSmVcC߂i_~56@XJ򟬱jGB8 䑄X>=wJc;7a_2y ܴ/`?~G׊-9`Ajs޶MwQ$= KiyR#%bMs] ~MW4-+NN[f[#v8׉N=f`%9 k@$ ,50E57Bf>k==#>QOϦTq +1Z̹e_~@nH5'R$C_A ;ڝ؊t0Ac{禝~YB**5*ei78K cl"16$p<wvڨ2V+-)煎$E͜Jpѳɬn16$ ;+}<غ{4C r7IHv&!+9]S`%ֈ#|=47 ؏ߑwqjd!d-C7ms7NMW nF8*ف^:++طwt#lITѰ0v;{nc\s)"8ܲSbߌw(5ݘb{1f`Jv|vu,%?MZi~#ӂW+ d p&tW~ErmXJ)#$`oUܲwX6wQY,l?eJۏRwTqq clpڻ"s];jEg?^+zpd:N-jo~'R1~mILMȱ!iM]1O`?~GDGwy&>5%*} wXJfjfX&4v.47 ؏Q[m_">FͨTwD|/* :1.bWIeFafG{-1E-ԊHu܎l6E CÚvEvwp/йk=+3o*x/}W4pM72aegjs1vo:X]HP߹X \Ix:lRRtPEPb=T M;"6B"szQ1$:(8ځ}MܤYƼM1A-; =d׾In0|4ntV;@)b;ꀎRZjnLꞣ^i m+T=- zjPʱ!i}TWث2F]Xlnß`N Q/QqϢhE4bVRpS󆙎}16$1;,DEA{1S)I>bXJ%8Az|!W؋JGo)}ܿHSLUˎd{awngfiq TcC§1K/k[d /!i]ʎ=0llWņ>6%tw-&<^58x!xMYT% %JZ]‚Kcw_,/o1E܃;D@.t7ٔZH%ˠүؐKh5؏MbX˹mr.`G 9/BXJ5+ ;f573 b-zmR]S`%yv4g+xؐӜvE勉8a,&.߃k~ ҇wQnYn%~3\ZQ' иcܲSbߪK:ښNe !YeB0½j6ŽXJ#FƯ!Wf~}e3l]qA7$"#B#ȗƹUcCҾL>\܌~.5AsL $cXkXIQ%+ .'aQԯJVs>ubwYǎzxu4un} ?Hǩ^KXJtDG-M;"6 W⇑fY]/Vْ>g[e3H/a[Y#߰ӯ.kG;.ef#^'SCb1{)f*{H KiE)ņɛjv51GG( 4t̻kgR Nw>6%|vPֻy/UF0 V,](CWF3G5T"Bo%cC§E;6TI ڑRb9ϲc.,3 ,:툪.+{FsN~6\LCZGW-`JXž+RS45XFcCsC~!ʺ03N^4]Ynovq +iwqʹÚ\h禝~;j4],d̈́`ͱ:Ku|5aW#~d 6u J)Vl6gnϰgJ3 a4Ў]~[kK4 hujS9>EwVH%a , ?cdvaU VLǑzGΰ#:G,%s!{Vɔ{F ][kK$ hX- Vؗ֎Խ׀4Mg%]׀榝~ֽPWWA<-:U$\ܰ< =鹀OͱG;?)3TKwZs0K: $F08['V%$,Pi{#$.TsN~N|3/]P|d"?RK|w}.6.]?t wIc^l"-k9(E(bҺ$=kv ;BJq]M%mݿ_qBp}lm$Ĉ2dd!L\)9dݱ`xF dbtAAa)_};_Xl(l(q $lؑdS~CWTHtfؔ~:ySq~qQńzu!߀<.3@xG9K߁wPTP4n&&G$@yLv=|.D_KehJ468 ~ k^LmiܖڂwL[O)R B*1uA6&g%+}9eQNOsl}xysy9gec.O8x饋PcSN{ڄ6V8% -'FE*SBTjLLTB*e;~)}˶]~xbX,` ,Z d9R$r[Rթ鐋X_~:l:Wsh0iO6Rot gSDy9ђ߈)*xze;DNjK/oy{8vhl.;oZɎ9#K]R'p]Csہ)_Խ>+5{ۯupV]?VrQRuZYM9me'Q`ؽL'$(")΢}ߚǺ:T!'wuPb{-GBGWrN$V~=4]{ VB]K3Q 'dPDa53LPWԊTshAܑ&۠>qo[Zt_2i p J䟀/enۊCǡ@*aޮ=CNO'6oUf>h1qN @\\ˢV纠`Wcqf۹6(\%Խߒ=e쑝3hqm,³1#;Ǫ\k=M91p,YI TՐ;ѭӣ8h,]v D8/];B+u|/F 4^ K'g=[ƼTݶV 6t_VF_ONܘd Z3){?Nr)oV(.]RqkvvT6(cKNOwd S8vZ/.Z/QNOKj\8n3h+n)IcC."[f"ɎN.=mvs!Qc6uf]oS禼C׺mmcC.7bH55b3 gt!K*tX-ہh%_ҽ؅E|ޜA@6˟qʛ-9򍙉g9ۥ{>mﲴ`M~Iؼ@Y=ThWCgJ3ZjwC(oX(Tjwrڕ4s]#cKN732n)A*3,vX ݻb.bC]QM_rYͨleWklt_h828DQcQ0x*(j,XF-mJG#536-X:޵Eیvru꺅Ypҽ$c7igzYn0ѪK uIy5sKw +Gd plt_@ĩx[=u>mtt ]QcXMt߿+l cKNޗb݅Ak;}N-]2N%+qRL}Ip5. =K[.XI}_),2XIۜArFw>}ؒw\ T- "I4f,w d@.Myo%"J !lR~pwWN*weՀpPVo<P: *v݂S3r fKؔ/~G DkPK0mxUQ i>䙺^;CW}|h]BΗw-ڋSs؞Ϸ{\CкڋSflgߋiluom7TVWX|Sgr."ʶP"c|\g[ilʛZ8_d|ml!NDm w*?%lP}86(-QwXD)`.LP3rElo`P=#‰3U@Mѕ@ ȅH&P%NJ@Ҵ]NcSބk߁ .SE(jlq:P_7]p$_-(ǎtLRe;~N K[KV 9 ~(۾ @}:p/]RJ0C]k춛[56􋺷1Y^ITp NwEĠJ8֤|)(>KPBNe:t+iF5vʋ&ٿ[XWwr|pUg87<r2Ԍn\  p )9])e}w Fr o4id%%H%ng* l[r%xY943fUyg6^AQ$eMA9rE8{Mrٖ>!)7_tkM9H.)k={@&NgNn/ D8L&W'!B2ZAWTqEq@`\=CN{e1%q16 1YJ-Oy%´-}A-f2R5vQ/~+_ hmuIg'N6,02ꭀK^!tvM=}W]ΡhؒS~Gmޓ~,bJ FY*EC辎5%T԰]G.aT2_Z'hLNahM]ֲ S Blbf ]e~Q;*Yh y!yħOzmuF*VP5o8lOjٮ !_lؼ89bX 5?/I!#؂*'=oHcKN6T:MAQGw#־Qo#$8N%Y£F۠`cK{ 270;{j/F!o@WmlﶵXSLz^]rNW8A.8땀j`Ia-rkw]R^'TQe WcluoׇS8vs9^y(A$jTTI²>6􋺷ߑpv+{GQqPt:GL =oPWT3t'6Ǵ=cK{\nˎoαU|} gm-R6rt.of6ueؒ/~ǜ|wtKFWkk"]8F%%]86u;4mw©%_Y`#;k:´Kkz| 6H8FlGHM9Ŭ@DN'NCXQ\QٕOP>C&]Rq1jڑ.u56++&Z/BPB4i.AɈQy߫\7jQ-MU0.jfe;jj5vQ9FtoْxB}8qOuKzV|f9nKwNBtQJֱT꯱h{u9QZp3pf|Pڋxb h\gS0X_K86UlCc;6ze* GM}|9ZJ7o4:mPcKN{EoPmp6 Ptvȱ;tN$mcSN{\B$g KD6:3r;v]Rót+izƦ~Q[ʡ˩o%9<S[3{ZQeΤ*VY[5䠺g V4yCr̂)B"''OdJybu|,7Կ}|}4Y.W.RN_;h~ŸH߷+:-S+tNw fz>@~//y_JuSu}y.y]@t}?n u'kw/g$р,<7ܯ_ H4zvP>|Zk9Ӓ$>fԿf>|JO)&շO>??y-([1??W=;c=nN>m |c]hmK;t endstream endobj 73 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 76 0 obj << /Length 3541 /Filter /FlateDecode >> stream xێܶ=_1/GRh`EE}hwH[IcS{+g/Sa \xG/?R؜_m5h 7?y圱eU7؟moc_55ΘCZA6/imմg%YыS@R`& E $-_ M "e'zG Dнۢ3 ;iCz{ppCۋorW]Kߟim`.e):˔DU;-js}!%E޽?Duǃ_oF}ʥ0S:ش 6F] I\*fHPr-=ɋA(< :赈 -Dځ3܋^ >dVP sp4ەes.r29w:ᅣr@}D074CW7nAݕ;SQDU_5l{2Y22HW\Ѝ_*g24%O(0֌i58$ 'S# u̴T7]قT(hB,\BG'{QVҠ` -">8ܶig 1\)aϙM r Hv}Il骟 ĸC4v͒$851a:aTexaMG︄wM93D9mkyQgLXZbڨAY2iG 4'̪5\2?FaTV @Lv"ؘ1r} ,n-arH R-yK,]ƀ:*ݯP쿉1uPˤzOܬ/e0 2<G'E@.X4kh fNXTyJ u$XD^AM5Q@]GݥXGq?{SώmG@6fSʥKiT=^eTZ 3.)9%. fb`ԢEo9y8!2`Gs&#JElOlcH&wz|>ܔmr4!-]ĬeGYnjqWB._վb&5.˖f!N $TcI=e_ 9o#łJGu-m&'q[,QXfs9DBX**U*-bcW(,|Pec豺!|dc>LNqr«\ML gn*|0"%}6U Ŏ +XR^|$anepSNϸ*-]X<n|hNW[5:,LoԀgBonvcN;ɦ_b~uƣGGN[VST ѫW~͙'I/^=^V/?xai\4UK}d36Վ%]9Ǯj0ZEVPuZmY=0GDbI ^: NڇPJ ԝUmȂY}yى,XCb̃Y0FΡF8i۲_uUW#YU`O++ &U}DfYnH2EʤW^a]6`욠s 6c)fIC|ƄoҪ.\u\ 0hVac5 Pȴ-oAW8'êlQX޼g-Ӟ׻#]těV m(㗥lCE~XW ;5*KobA $ʅG[&>vxWȰ^ e`Uk{kMV luGuni ?콦`lSK$c:tr ^}:3u\>q_륓0d䃍e4az(A'cOh#rȀіm% %ӡ ]qp]*j1=f)r4!SrwDE{yH;d!B*ba^_)aw=ҷCd~.^ϤA7v0Tlz"$U[,A;7ϥd,#ةVP(zh"2EX!21v }.ٯȳAXq~8U.KC $N1ȭ<!2G 0 b;v\x '0Ai 9*VsW%֮hϗ|cTw}b"5gl&0.}2ꓩQNw>X 1[S Q-3V|Yu]N W`R=Ξ=@;{'-O!O)JAe ˬoƉN3zP2f5CE4tCrdr4pdB Q͍+Ng} 1˻`Tcc\.;6֊U,if3{&c-ac>RAh8_ls=%78 zPb0 ~lH; x+0i$ E OOa?et`U<͔{dܥDғpD鋲/Ϛz8wgp97i w< &w ?ge8w>3 ?ؔfȝ X endstream endobj 81 0 obj << /Length 1545 /Filter /FlateDecode >> stream xWY6~ϯ05#RwQHn >8[h[]=Z3Jly7iko|Y<{u)I"_zݐ\L|/`&d>SZwә#ʆFwp,=X$nI.i3YfQ,i5+7(*YJhs7tY7JˊU̦׋wwYY{ACc]Pm P9Z8Vl֕nV<_XiZ%!`0F4JGvn$*3)dp+=n]Uh_ DZbiE^]>B4_'yZNUӁAۏlGT03l]\{e$̈́gF ~w!4 ѯY'۳?~w>="wYzkxg#.CKBcH/APOP!cZAaC$XV괓1TF#%/Y>GY<<BVhʗG9>JСt$l.WFfe-!TG׼\kx¬A݃>7M3DN?dh AP.H3Bࣟj\鹊dOƒ7e4_#<ܑqZ+CCev6H(h*ɪhrK"9lvq=.лRhNCE`2Q&2Lg$'cd&MtL׈ըĤ7uwʿPU4I??&_#i'EXO'*j 2n2_~޿ts":rEQ`vݥ>!TL 9?TLyd/3bET{# 9 1wG٫sSu H=3 :oN ~4GmܵT Qս[ 4QKHmxT{GU&jnIRD3]lX9ΠN4a{V!L ?Rgo3,\F';/|܂F+wm3-2ZfJs/yFp}X& ;]Cf8 ّ<؏C1)A!/rBWA1/i# |$(qhxl endstream endobj 84 0 obj << /Length 1567 /Filter /FlateDecode >> stream xXo6_ZI`д̀CamdNٖ&mQe3&GgW7\4׳͌ mgZ 5[>fBq9sw]ݨElYo[ׇe=JeFw5 !O*8TWQ_~`C|Dd,wJ}yZ'ebp_~Yrxꆫ4I9u}W<b/]۪nIZrf\V۪|GͰʗ9z~7eB!5ѺXV}2s`,}I!/wÀB P7 0`bctWv?,E8u{=?81L5zWz&B8i˯.חy5uБQ&"c*NӯK"b 38a(:I6+ n"aeo ̬ 89`, }B _jadevPmtA xcK86hZ(Y#LBx2,)NQ2RcܘXPFȬV6 S7I- qq !KD"`*6怉cV c?`Y,KQ?nhGD?ԫRۨcv\fCf*gOgxj@N i0He. .A*"[V7[L1# ))RMQ_ *ԅL\geʬY޺T[neaE w0S-IT$:q~iUGCx& TthhC 昬s_} KzcPUCA'_GWp2FA]=U&jsgհk?r*OAxg?Ky-,d !óAXiүWPRYz$7QSkQ6-YA)CY1Z6qm$L_W]VXRܟs nóU%Qn[= 8U&Q)Bǂpf6,9izW4TZL"4rm-eArI,E |hBC hGBÑdJnUnX+cC4z(M1(^,S֝ e̬Mu@" _b<$: kM`slM"{0,LiƑS8 C>*6AXօJӉ2lC'Y Tb>>F m]8O{Uy`lkq-8He=2-IEwz,9\5 g㩷gWں;˰қ#yJIX2^=elO pF E lsد0=}bztc$joF f?ளFC\n3T20g r endstream endobj 88 0 obj << /Length 1731 /Filter /FlateDecode >> stream xڭXoF _a(vF}i[,k3`XmͰ$lɕy>$[ZI###/o^_i7Jhb܏72R!f>%$xx"{Ȯ/ӛFl4&zH[(pL軠:-:N3]hqU"ɪ*һ|7yH@U|E|n#ŴY1˵'z!һg\{WBoH$[(n ‰K_#HrVp>W[:_Mha9EiKtC&fu01(5ەVx(! *(B_" (#(O" wOjg]G\e4! ^$߭I燥~MQl9to&=<4d^U'lZ"&2Rs"t ' '5KkvIuLwpvBl53|pQeQb:j>C*4MH|,&m,Bk&B- rtj"$ u~ < )Cm$&C^'JN:*' hBm5&[  BThirC<xRd@F[ijW%5M:EJ+> stream x]P;O0+nA%#T $o!%$M=nHpCs uʡs`&.Uw{˱@Yݘ>(lzP:x~wJQThNkQQMU(ǧS?۱+ELv! }\ͷgOtM.]LR|-+DCFSF:)_CN endstream endobj 85 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpkJ8Ssu/Rbuild2158a573e7fabe/mcmc/vignettes/morph-fig1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 93 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 94 0 R>> /ExtGState << >>/ColorSpace << /sRGB 95 0 R >>>> /Length 786 /Filter /FlateDecode >> stream xVMO0Wq90xcDU+8*8ƻfy'@p3=}NR  t[Gp¿$N;PYd=ETU|M7ΈeNcBY5$9 MИ1xǟWW߽i#fX5u&k0xMܻ166<16^CF-˶]K}&IFF n u=bjӹFg nvqcUh6D$7Z/}_c>emZ|*qԥbaGQo|7a(ɼͭT/Pz-8deh,bvaJgKz>l|= sqި$ON/ΩYVZ~s-Tr;P:/6. #IoM T@S)n5|^O[?gE9 endstream endobj 97 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 100 0 obj << /Length 1331 /Filter /FlateDecode >> stream xڕWo6_}1[KVݐm=y`- H5͊ʶ;w;ѿ,/E2<dQ/l& _DdYLmNQzoWnS,cVrzz}xnݢݺJO{%mY-l:ݷ<'b|n&bz|? &0v%KR4U+ãuAC@X6iz+er*j 1Hߤ1nEiy0Z6S6yQyr:'I`tB,4"#8E}h GV忪?𴱊8!qc?c-,c`^="$$}37i (=ؔd6ʳz='j1B9{0vID y)KE앨FŘ")qS`~ZQWG֭=Ǚfd_t΂wnm KH]RVYX \k| E Au%nV}(Zt%%s0nb0(8p5ݞF۴Batf +u|E)e9~.̕#AE'[uj$j81uZG)p<'|;@qD򴢂NWZYTn\:ͩ":x>i!/D_'t޿Z6^8j GCVR1<%i gGy QCx ?M \$ >.DCU/rpq^A^ eV}"(R#Q@ W` ߳q:L<~*Zf"s?zfdM* endstream endobj 104 0 obj << /Length 1942 /Filter /FlateDecode >> stream xڽˎ>_FH=$@,2HNi 9%ʹ,:zL,䒋U,gUlʸdy|ވ2(6cc}}߶;%@mf8כq':tZhI|Q) "#iDH! 3oKugBAmmZ .@ָP9rhjBk?,Y0\i]Q"]ˉVI㒂\m!uùө| #i6% z,d) !j'0hmng ܥ "4bcf"bVeO+6IUF=mhKd%VQ¶] %Q~(l2uޒ-DD* ~zmh8HIH)Hv95xz5`znCr-H"(j7=x-Ci+$2GgT.9Kwzewz}4UeOïc3|?ixHDyGfw`eˏ7L,> stream x}OK09&`L2m [mֶMa9d7LBD)&Eʪ_ٱkg ׽u?,x IƌvRąq2 #\Fp(%Lg:"":֪m*MUil|?dtaeZ]fs\ rs!Ih-|wm30&>2IC,$IUe endstream endobj 101 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpkJ8Ssu/Rbuild2158a573e7fabe/mcmc/vignettes/morph-cfig1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 108 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 109 0 R/F3 110 0 R>> /ExtGState << >>/ColorSpace << /sRGB 111 0 R >>>> /Length 2516 /Filter /FlateDecode >> stream xK)HWwh ! h  [y[|Y*F ZO7롸^nKڷж%ںu kYxv?vy洒r]7FZS\^ӟw_O-B1}ﲼ9=s=z`3w5$cN-$#9Q k1bk1G: Z8| ZBk1kH±,hcU JhY% [ LTI-0WjӷJ\DxX$L"BEz[یƸ[Sc$S+cYrIG( /!y$`Z$(P}+{ZZ15KVw,8"})0H%N" ɶ[1>0u[ㆩi*{&2]-Ar{XO ]PdtKzҾ<;  h[I䬨$?Uv*;4nFL/._!.υ~0T:>_^/w??~]ui+>S T;]SYkg/ E +H-^@wrLOz;TmQIr30ʷ~Z/zDzz=ɩ8LF0UşIq/|b]JO&_~s@lD|KIˋW߽iyxݛَt-ۋ~;ˍG{s X{)dw[, pp-K{D,bF"9ޙPjK=Or d FKoѻY-ؾީPzuS+Ymn{B9I\ Fnjmr.K?mC<UML -5ǰ2WB^c9BBg(0zVci2%Pw }m2 ^e(s&/C:yԗI HP.jfVE=L{ʥ"9&/Cb Se(ӫtw۷a6O{>ԏoLS}޻jdߊrk\Tr{Nt!]]Gd/'jtùeql\%!$vq92*;lSDJN2̓;:io6Ǝȴn7rޟo|߀?vsx8888cI>Oq?_t@fI,D@ ;;!9vBz}1Y7ڠ8ڠ9*B%qԇ6ui__v~@=jHܮ?h.GӥqI1` 8~ƍΙG '8 nfJ,T$@fBbe&H(\1Y I9Ϋƭ096lC'9F?L`悷6@hNc*`$l7` 0\g $Tc`59w`}>B$C"9  DALdOjVc*`STٓ0%c$o;!^xP2qZ LT\sATj(fRrZ`G3iNh3+^@NKzA)>q e|vY8 lZԨ3ϵ s,)S %kg L1QJ@4 L1gMO[ yN?si%0@uda3@.|I @_$L&`4E*ء F?P:'Lw!K0v[XÝwXOp_xI R P$~nkzO 4KpxQpkv‿ Lcw` aW# p%o$е0 i v v,E}60!tFI*`t^mG S dS d)~:$,ؾս>ouo[V>: |0Dw@@pD=H@|H@⼂&/T3@di@::g΁H4{%yʼl٣4iS̶ˬ?jgK/o endstream endobj 113 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 118 0 obj << /Length 1049 /Filter /FlateDecode >> stream xڅVmo6 _Ljz˰膵Q'˗ߏ TE>|DdXKX^R&DTrfȕ 31E_Q:a3_WkV9ϓ6aRDV%M@h2Be*$t7yw(m{E}mLWzLqusy،_6pNx4dCABR  b`(*'Ǔ}k;v4§a4Eqp(my?ZT^^!w&i%%VJ!~tϣwrcq!e;v3})弴,jJ29KQѢ,';#FaqᲽ ^B&s=5?/ShןҸ/ݺvs c_?g*c3cJ>+n?Wpm=ۏ;-Y p}?탌wʃdg!d|зX~? < A)_keЃكikrfFRY!ęTT&*5Ѝ sQL-jrq6m moji rOi9~bN^䮏cy1YUP YwEKj\4ԇቋr[P4^զjzkn?'FA[?ΚfBς̈́NJrs)l> /ExtGState << >>/ColorSpace << /sRGB 122 0 R >>>> /Length 3593 /Filter /FlateDecode >> stream xK߯E ]}]dHHA",1ɿ9j.Sqx.O~x|akkOu׺Y-([Ykoe׷߶7?>yv'oG=|Ֆy{a۬{QvkAHk^d{OսQs.ꤾ'2FhVӒ|4>)֞Ȝf{3Us94$7^det%+SOdeɺgYi*$OsXamO٩WF6I99)o_"JNCV0W+&+VleGđ-Di6Rcqіr =bZr)2[bS-ƽקʼrL *@x&Y:CA|T]cͿ;e@_: B*]{]DaED|c#ʁXE3>tb@Un:S:έDZ`*e{)Ű#. #&z#=#+䚹 <9!)1fY>X#Zw*2~} RX?I{nI=Fi'qS013x1c(2k0R2Ϸ%|,7ei2„qT9YaJGc FVh}:u.$I{=" P:z,_9BTQH'}`$lz=?angF>h`l*Exwc[QTMr @F沸΅㴽1btci&̿b#E6#Z3?fjꔩZFy.̏(# \@`>)^l/CRG?X ,cEAT&e)`(=쿿OY{4PCi{_'g_;R&Km#l/eagB,)qDPI*g|Y0?Tq06[ZȂt깗E'ovC 7[ȟK eYirҽ0ɜP],m!_?hؐ/>jk=)_W}_Ϭ/^g5xfg|P}X&KWߒܿdj1DRPѿ{2Nð|?Xh2u0Y|ĄmpԂ7_)Redf?hLsTuAL||!ć|_P&11ҏS2M ւd>4W$ UW F(ZO@i|S/QO\f{^Ȩt+?jA֏4pQ 2_kxQ?HL72Tj FgSގ =YGv¡="߀U|GB=zxDmGWC=?߬W]1ߥe!ol% E='~sԃMz,~S>'w9s=Q1yoӇufS>HO0QϺ?69>`>-{rgJ׾\"Q<+ M{_@^t^p:Ox} \][]rtu.z16SRP fƁx{@u>x{9y7of~?Ḵ=ǖUy;_oO,=ݞ|sw_/Ǽ"^nxvxr˒x`|{nP90`W7ayAtx{H@?81܇xmҿEՁ}p˟[_|]Sx>ScY!?av ʭ`J endstream endobj 124 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 127 0 obj << /Length 223 /Filter /FlateDecode >> stream xU1O0w}vFT" *HMi8qny;|@5W w86rAE 9 M9zE5xGMmxt-VVwbfk/n*L%2<SVac ]Y(pڱ֜yOeC)c,\xf׿g~5Y_1jrR=S/R~ endstream endobj 115 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpkJ8Ssu/Rbuild2158a573e7fabe/mcmc/vignettes/morph-cfig3.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 129 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 130 0 R/F3 131 0 R>> /ExtGState << >>/ColorSpace << /sRGB 132 0 R >>>> /Length 3508 /Filter /FlateDecode >> stream xZˮ%G߯ #A 66`Fb,l ֌['"2O]X\GS]#__?hLvzX-(GYl_?_=S:SJ?OG;{㟏t|˧oF>oF9zCP#'NTRY&Q;k'z~&Yѐ.4Yђ7L h:"Zf>f;tV#*23 TArE-X͈=›2`~:? ٞw'|X-PJq~|@s9 ˌX#4`E+<#/ıd! <̀N" ޝsu63`=\tApT)**l=^a:C 8x@dvnp2}sL_@"x扞ZV;^0K83LgT s<Apaさ{ n0֯8HqY:&1\G9a(xEi::Ƌ 5#,k?(RZQ~kquOϫ?F aO@v]W?Ixg*%+ c~N?P; `q<y91јb tfC?8G`*FHC: w4(9y=_(*\3F1s*$%ٟFb_$$8CŃ?zSA 8|%Sb8nuFq)S7c[LϪγ&q#e Vb[yQ5/06bf R1 3˜JD=c#(|CyL[KY4#B*7/cbQ svQP`4?A /aYb`!tS|q0xOxEd{˸ޏj|Q,0N".Lko,D *h(T5L6~'Q9.v\j7XGK.6߀i,'+yCJ^/X4|?r`4m2qKJQFȇw}F#.߳D8磮F]Olד$[l8ǑԵ 3ߡmxSơ?- "bXoaߦ9[;ʹ}}\dJ:+~MC<Կo) (_cǒxxQ!^1g><+.62eސp!Ff4DѓֲIJ>=0DW)`4/I60/4ۆ!(.b*Ą@58/@ _Q^ e amR {~Q ?0Ll@SVx}, =b?O.,,WWnyB=H{Dwuǜ]'t/p-Ь ྠz/p-()Wۂ^G/_=rx/CW^˧_3<x<\^0hy^pӄp}Ժm+~?6~-^sgspeKc{mAZoqs[,Cd(|?8*(ϳN|}SCxy6z??g@TSM* >Χ Xdh^ sl>hI?Wz_/w_'?;>Ƿߜ'~Y4rO/>s ͊HKe⥿l5#ڎWhV{q endstream endobj 134 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 137 0 obj << /Length 1028 /Filter /FlateDecode >> stream xڭVr6+tf, MImw8jshz$X„"4XP%^b{ңW*Fב2^fT蒫LZݎ'y'Vf'Gݮ3}+ì]9_RS}Z(!2\7!ݑ"]6ЉW;3Ig)јJ&5ۍ'oߺ!>WnzHlvK)ّ\w_qX2LY2MuyXUV\HPm=$%k_ l_Xu+dJp⵮ui8E $ Ehʒ 'KH)fru7hk2/H h&9"?p5k߹~E jZ/\h0)rFtx7'^kV6m5}6#R.;CZRvU9%~c tٵ6N9GTeqȦwݾCR5|m]|8)3+t9T!#TṢ#5z>d*<&[v,bj\@#{} +y8iK,߰R"Hxrr%8,Y(r9I.'S+c Xiֶu$I3]4pEzi$/NP'CH+vǓ#w>#<h6m>hYVU1ve=5bXol ˞& Bv|!`G}|ށN;13BA~õLE Sێ1 hכּz9*\zhwmI }51H jk{dG梄|c<~/VWL3V23zb@]gۮAlqS8Gh$x#)>%)'dQ{wh1JڶK{_?͡0R)8^*@2bd@  \^HCT㛻Ϳj endstream endobj 140 0 obj << /Length 105 /Filter /FlateDecode >> stream x3634R0Pb#CSCB. m@ $ɥs{IO_T.}gC.}hCX.O!'W ( endstream endobj 141 0 obj << /Length 291 /Filter /FlateDecode >> stream xڍ1j0a  jR'YbHSB;u(ڎZڭؾI=JIqT`$/VI~k,sOxym ɓYSH{dsf=;#ҍkTNUD38L41裵>+*bT)?d C~yE}QKZq<8ZTb+Ώ1ܼn NqA(F.gEㅸ$ > stream xŒ=N@ M!$)fE"T (AKrSXؓ,=S$_> stream xҽ 0-}V NlGpPz&M@ᗄ$$BgK|<p8s93d-!%_Vve9rȑx)QTŔxe4GzMa)["ei=AikLM!Ch.TC#ig^woJ-$KHWeN'Q<6?K endstream endobj 144 0 obj << /Length 149 /Filter /FlateDecode >> stream x3336T0P0b3#3 CB.Ss I$r9yr+s{E=}JJS ]ry( h 4?8h{443fPB3\=a endstream endobj 145 0 obj << /Length 278 /Filter /FlateDecode >> stream xڍMJ0. o Hd8]ʅjtBQ讽WM0ϼW:(yĚt+ܲfshsat}e^-o.V?^RV T+xi[D2h; _Џ.#ğ Gf ,D# H_W3H| gQPMAP]r:)8P]ʂiP]͂.Yc႒4<]:l_@c0ώá%+/]z endstream endobj 146 0 obj << /Length 185 /Filter /FlateDecode >> stream x3735V0PasC3 CB.3s I$r9yr+s{E=}JJS ]  b<]co100U@  P3 v,f[=n/O~085 )cpzrr\ endstream endobj 147 0 obj << /Length 162 /Filter /FlateDecode >> stream x37׳4T0P0bs3sCB.3K I$r9yr+Yr{E=}JJS ]ry(D11o``!`G0 5#Fʨ e02`'\\\T. endstream endobj 148 0 obj << /Length 208 /Filter /FlateDecode >> stream x= @G, &"),J--mMQ> stream x}ϽN0Jl;Ta?pۜ7kBjikVb7/;8jC'_o6RsS-3[&0`Q0|T*M *pӌ_2 $Lo1ÔJc4|ݜ~82;eSz)<8`͊N9y{2hl endstream endobj 150 0 obj << /Length 214 /Filter /FlateDecode >> stream xڭ1 @E'l&G\@7E1#BBBQRgEv>'S &3!3c4#NqRdn uS:]L> stream x1 0yд*N`A'qRGEx 7бC=q(8 vي1&]lwqy,N1y 6n_pa8&:2)љBztUUN+IZ^>j$qIMMR'*mse cL@I 9Lwni endstream endobj 152 0 obj << /Length 226 /Filter /FlateDecode >> stream xu=n@gbi|eYGH@TDjh> X VyyD%JC80/*v[ dvջ\/_Gvxv+١hJʞ2Ն(W FOFFl@&%`}b zdeL,>2~dgygL[41Ƕ hKyJ BasQ D endstream endobj 153 0 obj << /Length 167 /Filter /FlateDecode >> stream x3632V0PacsCB.cK I$r9yr+[r{E=}JJS ]  b<]700P?aA<$AD0H0 A6b#4o@ endstream endobj 154 0 obj << /Length 281 /Filter /FlateDecode >> stream xڕ=N0’!sHE"T ()@`)<؋$'{Iן5-5tA-ukZw75oZOv3RpC/^Rk-=ԣ/qZqg XxqdWjIpnIUi+W%KK"5-CiK #;A58E, k΢SvYlK S^`%*#G4dPɲ1:^.eiiC%>+^ ~ endstream endobj 155 0 obj << /Length 167 /Filter /FlateDecode >> stream x3332Q0Pa3 TH1*25\Dr.'~)PKW4K)YKE!P EObPFS@ >? uBP?(lԁD(.WO@.Jm endstream endobj 156 0 obj << /Length 131 /Filter /FlateDecode >> stream x3634R0P0b#KsCB.#1s<L=\ %E\N \. ц \. 5 7?D # P?P1?H{pzrrD endstream endobj 157 0 obj << /Length 107 /Filter /FlateDecode >> stream x3634R0P0bc3KCB.#S I$r9yr+r{E=}JJS ]  b<]0q7c.WO@.S endstream endobj 158 0 obj << /Length 209 /Filter /FlateDecode >> stream x? P C!;Bs_ZA,T;:9::( n>'GoqQzJcߗdڍZE5eujh}OSXcu4vB{%gQh@&lJ2DxbΪUdK 9T`P+XU.> stream x3332Q0Pa3 ebUej 䃹 \.'O.pSS.}(BIQi*S!BA,C}?7T10@ 6P?|'W [ endstream endobj 160 0 obj << /Length 213 /Filter /FlateDecode >> stream xڥ1 P #B[SV N⤎h=JбC1&E\|>?dј>c &tA$GOX4 "4 %]/#d5#MJ[h6%y=\0`..Y尀AK<@\@Q#6-WQwu;Sw ?kBKn&j״1a>7k.sk|]ŏf endstream endobj 161 0 obj << /Length 227 /Filter /FlateDecode >> stream xڵѱjAY,i|tNWbe!V&e->B|-XDTX>euڝLJ+Hޗ,ה?8G۹)ϲYo؎^$e;E*ɒPS݁T+(5OT@u%BMwF=poH-eua~nl]Tȇ`1)6AbXi DA O  endstream endobj 162 0 obj << /Length 161 /Filter /FlateDecode >> stream x3137U0P0bcSCB.cK I$r9yr+[r{E=}JJS ]  b<]oH?1"~`? L7?bl'W n endstream endobj 163 0 obj << /Length 223 /Filter /FlateDecode >> stream xE1N@ E?b%790;"E"T (AKq%GH"4o4v]_+^sk{w6[{T^o(=fKdJ~|Q_stgj8UR:EZ ʷcVG@VjU'3rع: Fg u1vM#bj2;4@* endstream endobj 164 0 obj << /Length 173 /Filter /FlateDecode >> stream x3135S0P0R5T0P03VH1*26 (@ds<M=\ %E\N \. ц \. Xv8'=3,X w'C=`?`A<7@ ? r  ,t endstream endobj 165 0 obj << /Length 234 /Filter /FlateDecode >> stream x}N0(C['4R[$2 ĀlUGK$/ 0ղOeu%\s][E;jjXƇZw䟸-?_o-p НiB1E mQ,GE!A0)29÷N3DhIA i17VpH4Y0Ml3ÐEgP1jDEKێ(k endstream endobj 166 0 obj << /Length 267 /Filter /FlateDecode >> stream x}ϽJ@Rn7p h~(b`]VbB !y&)Sdw̙SRqKu&Zso\iLs9 gRiή1笹ַRpBGn6b-eFGZ0Ucc^pG))$)Y= Ư㗥itjuGj wAlhA_Bg6UT2u2Ho^_˄>> endstream endobj 167 0 obj << /Length 208 /Filter /FlateDecode >> stream xmA XH0ywGAnSp,괴Py4eJ 1&20$g&{C.'8FTXi_Zk?;7T,9VTtJEͿ㖊u:*kj&D+AZ73C@.ё?|+23F%JUj=p>i05KΓ9ꓶ'-ƮoϽ#MZ'} endstream endobj 168 0 obj << /Length 126 /Filter /FlateDecode >> stream x3530T0Pb 3SCB.c I$r9yr+[p{E=}JJS ]ry(000```` H0@,0%#zl'W  endstream endobj 169 0 obj << /Length 266 /Filter /FlateDecode >> stream xmбN0|G/qCyfίF0t^ߟlߣO;O$9 1!rHdڈ4f&pBl9{Ð68,ִ/vKqbҷ+tي%+NC7"EB8сVP #RI*h~j:Rᕤ[Il`Φʗ'& endstream endobj 170 0 obj << /Length 258 /Filter /FlateDecode >> stream xڅN` {@ $g%^Ltr0NzGh< @= icu]RHRb)U?XHUw>5?1r~geΛ{p~z< 7g!ґRUcR;Q2QP:X Ja2m0{tƔyl[J8 XϠ-AvHxiOzMYSgčV6oGbǝ2ClčLU[ϟ]~(6?d endstream endobj 171 0 obj << /Length 216 /Filter /FlateDecode >> stream xڭбjP r7DpI *NJ'utP-4|-7_խmzޏs/{Ck#ґS]ŲdbkFR̋&1 {*|ZL4XL_m̛3ul󇚴] I@BI /s'sABNjAOB/#&-'5o#Rԑ endstream endobj 172 0 obj << /Length 253 /Filter /FlateDecode >> stream xڥ1N0 `?uGx^:bF4G  Gءj]&`>EIc;Gy:r>fG}=~@{M;vyJn-2ЀL]_~EI-jV8Yz&? }Bs훃$ShjMM|wSSYN-Nm8NZT2f5JD 2Mr[μ̐51= x_d endstream endobj 173 0 obj << /Length 264 /Filter /FlateDecode >> stream x}пJ@9Lso &p6p` A+ RK EGG#s&~lvf IYI)A+ A+~ub)u?{MZցٷ~sy*h[nB@""^H1j$eLЯ; tY;suVfL5*}:;8CDx:H:n2ffuYrViL=݁z!mN@Hö h+y- endstream endobj 177 0 obj << /Length 137 /Filter /FlateDecode >> stream x%ɱ 0#Y LӴZ N⤎n>j#SA៾vf.J\#un&g]u4{q:#tۥX^V#}/@H5LT;Ic4 U%0s/Z) endstream endobj 178 0 obj << /Length 133 /Filter /FlateDecode >> stream x313T0P04V01T01S05TH1*26aRɹ\N\ F\@q.}O_T.}gC.}hCX.O? |7Po3  \=J' endstream endobj 179 0 obj << /Length 199 /Filter /FlateDecode >> stream xڥ=@PL ȟ b&ZY+hxJ d)-bߛy63f%gtx0e5$ jOaj:*yAUlQtєg&̛}Nr 5r^ a2ʮ`i`r_zH&=| z)3WwFHH endstream endobj 180 0 obj << /Length 203 /Filter /FlateDecode >> stream xu1@EPLL 1D+ c&jQ8%gdB-^6gߑ;dO\q~ƨ4 Py*^r; SrPEqbtLR~3&0 > stream xU 0ES:ޢI N&O'8:knh@}7D%YgXnE68])$$ƒ~ܟv1ɂ1GG xos*!~Zo(k B" Pq>.۶{xcA+M;= endstream endobj 182 0 obj << /Length 187 /Filter /FlateDecode >> stream xU @ O Yxw8jotr'utPQ5I-$f2c-Z)+GZv*C@Hx=Π9sT/Ԩ"kF㇠ZFQ"7!\LŮ{kw; #e%(𮈻i^/aTtY!)y@,=l M>k endstream endobj 183 0 obj << /Length 167 /Filter /FlateDecode >> stream x313T0P04S5W05P0PH1*26(Bs<=\ %E\N \. ц \. 30߀JNa!?#I0#;xI#> stream xu1A50]c&k%P)DRAhQA;C_ V:F:i]yYm)5КԸI T:"$a"X B$֞?!#rljtjCsehx. MO {}RmU@#C3zT endstream endobj 185 0 obj << /Length 156 /Filter /FlateDecode >> stream x313T0P04Q5W0P0PH1*22(Bs<=\ %E\N \. ц \.  ?C 10؁=<50Cvz G!qMDqXMDr 2\\\&;* endstream endobj 186 0 obj << /Length 203 /Filter /FlateDecode >> stream x}Ͽ 0[дtj3:9::(> stream xuн0[xDD'㤎]GQxFB1K~\q4CCM1x "֡ΐJ[1𥎁ޮt=x= W3ƼVTQSc6CC55Q>Rp(s5Mے`_==?ͥGrJ"ZSZ endstream endobj 188 0 obj << /Length 154 /Filter /FlateDecode >> stream x313T0P04f F )\\@ IrW0 s{*r;8+r(D*ry(01030o`7"b?2E`V`0#H'W ^F endstream endobj 189 0 obj << /Length 210 /Filter /FlateDecode >> stream xm˿JAOSLs/ <{ F,JSP /6G> 曙ҟV녞kYjUrgq+q)L}.n|w>?J3QV{XuG>vv}1=@nȘ^@2"u)'n6?"2ģrL~Q endstream endobj 190 0 obj << /Length 151 /Filter /FlateDecode >> stream x313T0P0W0S01U01QH1*26([%s<͹=\ %E\N \. ц \. | @ v:QAA=N ?@J@#`p`\z> stream x=1 @ER~- g`#8RK EJ4RZ(ޑ'̨i> stream x313T0P04F )\\@$lIr p{IO_T.}g E!'E@!ncr e endstream endobj 193 0 obj << /Length 179 /Filter /FlateDecode >> stream x313T0P0Q5W0P0PH1*21 (Bds<L=\ %E\N \. ц \. @xD2?@,&=`C" ?ƏadjƎa݄lMI$b6LrzrrШA endstream endobj 194 0 obj << /Length 124 /Filter /FlateDecode >> stream x313T0P04 f )\\@ IrW04 s{*r;8+r(D*ry(0|`??0 ? v'W a* endstream endobj 195 0 obj << /Length 118 /Filter /FlateDecode >> stream x313T0P0S04S01S06QH1*2 (Z@ds<-=\ %E\N \. ц \. c$! b\\\ϊ> endstream endobj 196 0 obj << /Length 102 /Filter /FlateDecode >> stream x313T0P0"3#CCB.#)T&9ɓK?\ȒKCKW4K)YKE!P E >'W $ endstream endobj 197 0 obj << /Length 137 /Filter /FlateDecode >> stream x313T0P04S02W01V05RH1*22(Bs≮=\ %E\N \. ц \. QqC=C=2p\   \\\8 endstream endobj 198 0 obj << /Length 205 /Filter /FlateDecode >> stream xmj@_<s>QiZ &z(BNM9$7GG$f+`f`'TE‡~(=iDEI1E2HQ]%0 T Qm} WG?pj26N`Ԟ}}gvjPhCLQmQ +I.I7y-q endstream endobj 199 0 obj << /Length 273 /Filter /FlateDecode >> stream xuN0ty @!R)`b@L 5X dcģ҉&~uD9մWӤn |0rsK*kN%Ƭ9;fT`6kl:AP<ʋفa2~z`j0:hoTн Y,lR7"fSҮ_‹ᰮ@c91XtX u(cAr6y.!nCI@qqHf `W4x?l endstream endobj 200 0 obj << /Length 263 /Filter /FlateDecode >> stream xu1J@7L17l hvfm +BBBNVbKX"$IX 7c<>HV<|ɒog@%N~oniQtS)1(Ռהm` ]\ jys 3[ =5=9L@jT TZ) iv@J/cqCS86vKdSΎJ4{wS2&-e$ Ԅ endstream endobj 201 0 obj << /Length 188 /Filter /FlateDecode >> stream xU=@`6$p.?`# b&ZY+h+L9 Gذ nKfQ!!^CUdx[a> stream xmбn@ 1DG@ CT*CdPeJ;vhծGQxFkDd>;zWMrMMف5eJYƿ?mvϬ ΏToHN [`CZ,{ê3VZw LRD%ڻ{F:lZY> stream xڥ=N@Xi=B,  * D)S&\7GH6.DIi53oXk]꥞Z\ޤY\jw^%{"e;xIVV;RoN>`a}x3 HVmHb&oNhh:+Tp=q::Ϥ>F_/C21eya:#f`x!7<=c endstream endobj 204 0 obj << /Length 208 /Filter /FlateDecode >> stream xuн0k#xO `D`qRG(}FBЄĤ~pE.-K =zh.wStlytGN_NgL\kZZo-T c ښ[ۺ8Rf_yOwy_6|pdmA&:QV&ҘP$> stream xu @\z'H  ԩCtEh>уhkeͰ;Sr#&ttBpvd31[%OюWtOh9qh璳8"hre)Q5VzV \4 0i:ul3%Rk-Le00JKE|}xB endstream endobj 206 0 obj << /Length 186 /Filter /FlateDecode >> stream x}1@!$pBBEHaRK .G(.ZHI%ψ$ɧ)) EQgLs$"ܢvKs. yF R 0RG5X-؝X͠NPSϐnilbEO&4>=VgWX(9nn endstream endobj 207 0 obj << /Length 232 /Filter /FlateDecode >> stream x]=N04M8!UeHbD9%Gp²!4_fjOKO^swۆ^%k#n{27ocGf}w ?6\?Ѹa@=*ŀ2* : (}!WjtYW=-0|3?*| zclb`Q$9R 2S }Q:Hq/3@#7p@ endstream endobj 208 0 obj << /Length 156 /Filter /FlateDecode >> stream x313T0P0b3SCCB.c I$r9yr+[p{E=}JJS|hCX.O0c? &p`Q"p@#`p`2QpOar IVR endstream endobj 209 0 obj << /Length 163 /Filter /FlateDecode >> stream x313T0P0bcSCCB.c HrW0r{*r;8+. ц \. 001 `LAȃ=`Aԃ:\?DԡQ?Q \\\[ endstream endobj 210 0 obj << /Length 242 /Filter /FlateDecode >> stream xmбN0?`閼A' X*E"LSad`y^o+dc$sT@|89:]NT8V4)[bFw)/=e3ynr5z z^AH ^_kO mb2{ o)޼IPX5`j5҆uiSy 9i^Z&WW9+ow }:难{{ endstream endobj 211 0 obj << /Length 221 /Filter /FlateDecode >> stream xmAJ@tx9B FSjtB\U.jir(sn }|2)$9?J\ze\)7oϔ-o/Yr>RbGx+$qP-T 8a Hڔ@\fgm{`%NGPik,F=pk0jluo-9m骢;[| endstream endobj 212 0 obj << /Length 200 /Filter /FlateDecode >> stream xu1@![L 肰!V$&ZY+h m(ذ.1мL4'bN%4 )$ft QbÀD4l ;+#/t=ȳ͂B9C X> stream x}1N0g4M8$DTE"T+*Ar! D+f$4y{%w|VmisEoTwqZEzz@Mn+R;W\>Ұc< }:!1VxdV8H+-Y¬ȧȹ2sCtb<"C^D/.gx/ӊܬٿt==}h. endstream endobj 214 0 obj << /Length 244 /Filter /FlateDecode >> stream xm1N048IUeHZ()XA 8WDAr)5cHœ5\+.U͵CT2,.[ҷ\/eL#93\SaXw>:@~^M:_6;~qLǠVrﻘJX&{ب#Izc&4~g'.zw'ʗ EJsY#袥} endstream endobj 215 0 obj << /Length 163 /Filter /FlateDecode >> stream x313T0PaS 2TH1*21PA $ɥ`bU()*Mw pV]  b<]HG#13acFT0ca``?p`L> stream xm= @irYV ),J--mM8mR,dgbF)MidPaly&T'͞ Zh = vA͒#Kv07}> stream xU̱ @ B>y;mB`A'qRGE7ih}>BAyMI!xLH4PЗt0F#F 5Q$ rJ ELErILY [A37yxZJҖ^ yY\-n-!vjQ8)|%\0ok endstream endobj 218 0 obj << /Length 221 /Filter /FlateDecode >> stream xmϽ@4yИ3)` 8BQX1> stream xU; @? ` A+ RK E[7GQr)h1/t)ZEyɗϴOC-*2gd6:%Smx],vKȬqzjHHHC,10\qEqRc,S4EB訵H<,l)o e@)]X!uE{/^q endstream endobj 220 0 obj << /Length 212 /Filter /FlateDecode >> stream xuϱJ@_RG> stream xڕ1 P q(dGx9OA ZN⤎m֣xҘ!$!'3N*Φ|INY>-KNɗ[~>^W݊SSNNT D'Ҡi!4y;쑷Gwp{cjCe s]ؗʞZ."US9©-KI endstream endobj 222 0 obj << /Length 218 /Filter /FlateDecode >> stream xeαJA b > ]vj<-,J--mo||ybCBdy-j /;~2xxD-+j.KtoOԬY:ni0s #VH|ěFo;s+lq΅Ƕd,6ɺY'=alp +%D7p endstream endobj 223 0 obj << /Length 196 /Filter /FlateDecode >> stream xm= @'X#MXXSZYZZ(m#Xo[fa5B&x#/~,+E³N|n-f-nKn!R7 !Hꇨ+U4jdcޑM-孍@l_ "j~' f&74.WHe4A o \s` endstream endobj 224 0 obj << /Length 181 /Filter /FlateDecode >> stream xuα 0+ zO`RL'V08iGE7}4бC1:n83d3dftJFq> stream xmαN02Xŏ{H.X*E"L0"5)oG1o`ŃsaA t7;/%KGvA)N v=4GOYScs W,6+"< .L)'rf;GpaF]1P.;a?2yWL ǹG9^jo.G82TJ="b> stream x}1 @49IH,-,J--mMoL2LvY~ Gc 0G8 q bɁD9쎐y Y|=,9 ܂IѱË_ꪽ^cf8y/>_[;bPsfm]vҨVi.oVڷ[eڏ2t6 endstream endobj 227 0 obj << /Length 156 /Filter /FlateDecode >> stream x313T0P0bcKS#CB.cC I$r9yr+r{E=}JJS. @-\. =2>gg`zp=a&f?qA|.WO@.J endstream endobj 228 0 obj << /Length 205 /Filter /FlateDecode >> stream xڍб0# $ hA%1!ALd08FWxX`|]ۑ5]2hH}sBK&rjиjO(6d9(\G.zQ(ښd0 Ԅ9F"Z ,EIIQx %U4d]ԆG mQMSe[p )yX$>A&<5NX endstream endobj 229 0 obj << /Length 230 /Filter /FlateDecode >> stream x}ͱJ19X&ywl 'pVbvb7[E(6W77V80/̤mfRɾ@f|mcqw<︼Բ\vgt|y,/䲖ꊻPLdK?t4g1:Vu&*ޠw#¦%{"oOp($BJ(D|p0hs^>۹3k¸ cԤRP5y>ZsY endstream endobj 230 0 obj << /Length 154 /Filter /FlateDecode >> stream xuɱ 1 ኃG0O`\op Njh(bl-?崚aUÓ+>$?*_5o3z  H1D>1Cf$t cUIa.<5Ga D"JLKL`` ?:R endstream endobj 231 0 obj << /Length 194 /Filter /FlateDecode >> stream xu @`Ń0yVq :fNSuPY7|;4kuhgd4GO q^ͷ=@X f܂x>] C)C 6h[ }POmwj؊n֬GerۺInOs&y?ͅ_[*o&+jIhiKx endstream endobj 232 0 obj << /Length 180 /Filter /FlateDecode >> stream xm1 @ )xnBVJBBB"^do)BBbFST@F R/r@)Z?K6A}cE- ol}:X}"j&xovV$GC* ~f endstream endobj 233 0 obj << /Length 198 /Filter /FlateDecode >> stream xm1j@Ep!fsZ1d"W.B*'e h{A (&E a-]{^ҙ|Xr8}Rݒ;=K}A~qIג7j$2%32 ]hzdLs_Lä_Yt:wjh^H;FU.o%mZ-/LRz endstream endobj 234 0 obj << /Length 230 /Filter /FlateDecode >> stream xuνN0:D%{:&KmȀbj@y?BFi>@UJO򢸑Lȯ9Y^.wv™/}UI\ |~|]=%g\.7B>@T*ƒvPU> stream xuαJ@ )#d^@7!;N0Xr׺Qro`Y#\q|,Oۜ/Ҷ,7nV2oFOKds9F6۵l6PKF@f*;!ɅY$ rHT 'HqĘ8() p^we  * L1j ~-Sё1qx 0hD^)㫎 Zz endstream endobj 236 0 obj << /Length 179 /Filter /FlateDecode >> stream x}1 @]RVBVb(9BʈqvEy03L8I38Byrj5tكL@N0ހ)PR+IFdޒjIWZE,& *>`۰m$jKaj` U endstream endobj 237 0 obj << /Length 206 /Filter /FlateDecode >> stream xU1j@Eq!fo Rd\ l`W)B$e\vG)U8Mb3KtkZ>iyW]VGmZ[wy|گѧZg7}'8l"M !#T ppP\`~ԅƲꌀEwKr40À0=O%AnRZA endstream endobj 238 0 obj << /Length 176 /Filter /FlateDecode >> stream xuϽ @ nY ֫ 7:9::(>#tPCÑKm8r#:&xAk%5ጙC%k,ƭvd9%hr%HDbfRA#JA;=LVi@ &!`nOYo .n R endstream endobj 239 0 obj << /Length 178 /Filter /FlateDecode >> stream xm̱ 0H-}SV08ͣ7#tP> stream x==@!$x.d@ b&ZY+hq%g+̛@.Wy!5||4gN>0U(N$#;NQ=_;!EFg ꚮ~3 |4ؚ4#\Y]gr1WOL$ǭ#bVO endstream endobj 241 0 obj << /Length 197 /Filter /FlateDecode >> stream x5; ` %79m`A'qRGECGEzcokB>bw!ܗ&QvGlE/rPPMycEQѷ(5ҕ;i?͒5-7-ǫy! ^P+́<$r4+n "ID>8q?U endstream endobj 242 0 obj << /Length 216 /Filter /FlateDecode >> stream xEαn@ PGNO_KH@b!`b@L#nvH0e`'wgFJ)S)gG, 톊!څTVK:V6t՜b%71w%;]ͮ:$δ & nKoW1]ЋputF@uFjM0>ɏ) N6#0˾ j5>[ endstream endobj 243 0 obj << /Length 224 /Filter /FlateDecode >> stream xMα@ )iBy` A++Q);l3j:-(#IorNjNӜNP6hW%OR9Q[Qv$QKRvrM`> stream xm= 1F'Xxf׍ Vº[ZYZZ( vz4GL?13yL`(d8.,mv}zsQ]볝bʶxޱ-cIٖJ%YsU f7[q(hV젨[it'zS[ v.Q*FEQ"x ?>&Twse endstream endobj 245 0 obj << /Length 221 /Filter /FlateDecode >> stream xu1n@Џ(Vf\^PXJQ*;eDv mGt .4#Jنc^"U4aY:m_ȼqy1'ˎ2%'PU2| (2w(ڦE-zD6BF{DIڝ3?mgDj # Arf#rNN,t']c^al оWqi7 endstream endobj 246 0 obj << /Length 170 /Filter /FlateDecode >> stream xe10 PW"y#' MKUJȀC X)GQz U 8eSI< e 15ߗ rKIr5JvDYPT)wK@1c5 0|2 GAw= /t:pZi|m˸иI Pt endstream endobj 247 0 obj << /Length 229 /Filter /FlateDecode >> stream xmбN@CA2 <əXg"WYBh<>%aKK6eg]B}}k{oxⷊ>.6-\WT<*#Syc]nyv@6CG'=D",2dfFz-mə1:;_w1|4t4hn7)xM> stream xUпJ@YR,LGȼnb.r6?` A+ RK E*-GHEq[E}\I)rVɢB+~ziRz>yzu^%k+snv#r69MD^HjO@IGJ3&`MS |08oF xo2("~B9~}B@BTB_Cmc1aH9ԝz xk endstream endobj 249 0 obj << /Length 214 /Filter /FlateDecode >> stream xe1j@[4'JT@!* q"JR n+s.*70‚,̃0ir$CdKyyωf^ˊ$9GlӃlKZhYqb~OC~OxCH7L-VhPjeL hA؀&jΨ\5әcts÷|*f endstream endobj 250 0 obj << /Length 224 /Filter /FlateDecode >> stream xuϱn02X%{D,Q*5C%N@ծu͏GCvaOoQϚGhI 5NXYQ39^pӢ>PB"m+}~|QovOdPoP2Gp=AΘ&n > stream xm1N@ D'JM_C~QH@Q%Z6T({-SD1Q Ѽcgqwm݉>4,mFG K=\ۣԻ3mm; d plFar&@GPي>pOc({zUAL/.ީ8|ks endstream endobj 252 0 obj << /Length 202 /Filter /FlateDecode >> stream x]; @GR2͚Dp A+ RK EBRZ㬺8N(->GCW;]@G5v*\ jwR] endstream endobj 253 0 obj << /Length 241 /Filter /FlateDecode >> stream xuϱN@K5 E+uM0bcl <Yumչ>*epUy> stream xUн@]X"yp7O&Bt),J-x`+ BX3wf>fQ6bG)38Afkbwq f̼)s>/'&t EP>{Z;f,OȞ?B]}t1LU|h!L+^ި=I T̝B?Kk Y +xir endstream endobj 258 0 obj << /Length 245 /Filter /FlateDecode >> stream xU;N@RDG kK,HPQ *BIAs4Gp"6ͮw~V*Ru%O]^{u{쪫nJ^++ߴޚCS{)z\"i%46UjHSK&eoTFgK5Ѥr#kDV# Ĉ7è'p*SA ] > endstream endobj 259 0 obj << /Length 199 /Filter /FlateDecode >> stream xuϱ 0[z/imu* vtr'u\G#tPE#.p?" 01C8jfwF!xz-qb"G<)o)~􌍭omƻmjVFf+ɇclݟO2ΗVgvdMi5L?X:pc=_Чn3'VO endstream endobj 260 0 obj << /Length 255 /Filter /FlateDecode >> stream xeбJ@?Lqy1;y),J--ɣR\g&w|'[1Ϲ#^<PSL[.V_ʘ^ߟ(__7|=PaH(fTA#{Ľ8=Nݯ#_+Atj֛4H`~AWQ~,@EkflF[b[Ϡ~-(N[NA/V袦?Fj endstream endobj 261 0 obj << /Length 212 /Filter /FlateDecode >> stream xM?@oH1\@ȻNbjະ)+P $`Nog7)SdgFA/}q7`o:Ph>ggiLjaDGIſ|:w/Hxx@@6/cGP!R^!'TH3=,њR;gXK%Hs$h%Ƣug+> stream x]ο POG@] b`955DS5f&>$)5}6+X8!C %jPfJ`Rjן旭Zz FB!‚_C4KhEoM> endstream endobj 263 0 obj << /Length 237 /Filter /FlateDecode >> stream xUαN@PL#0/ H3D+ cH 7Y0@IAXcClbv?;92Id#GdO!g^&^xWUc奼=]Iz/$w\G ~=BO \N nkm``\MdG :5">fg|w3ތT8ڦLH[e"48 6I|k endstream endobj 264 0 obj << /Length 193 /Filter /FlateDecode >> stream xm=@!$ S $&ZY+hfx=%-l,f&LC9QQф)LLs IK^nGՌ9owT p< AZ-@:hM,љTY(P zG߁ؐIavU.R8Uk Z B endstream endobj 265 0 obj << /Length 216 /Filter /FlateDecode >> stream xڕб @ !? 4?Z`A'qRGEC~Z?O[&\A.rIf>n,؃ҵṊw0 A.vAN(2pڂFh pi0@!D-%\"ōr"R\uTP\(z>Saا#|sfCuL1>|S$^Ik,b&rs\ ;] endstream endobj 266 0 obj << /Length 236 /Filter /FlateDecode >> stream xEοJ1YL2/ٸ{y[Z]!Vz ({h_$",I曯^SE 5=:|zӊ%+mmvssAUn @E2 Ȩ1JAE8Ab„rg|FÄ d]2Gd3Kꖂ''Bǥx`:!s\I`~zNx /[_TdW endstream endobj 267 0 obj << /Length 229 /Filter /FlateDecode >> stream xUϱJ@7^~@gfaŁuSne!Vj)`̧S"@-Fa0a.wӪ,NJ~CW5;;׈7vu{)%۵ܗ2{z- DfJHG"|Z֦Û)`tfTvh"?|@QZ計VШ@01E-e҃nO;`DhI|Ud" endstream endobj 268 0 obj << /Length 187 /Filter /FlateDecode >> stream xڅ1 @R,L^@ܹn),J-m5M)Sq793?<~Qq̇.6Ҍ􆣀žIgK]Gj!oCv^a JH˸;%BX[O ԎgU[kM4FF~xϕӁBT hњ~; 9 endstream endobj 269 0 obj << /Length 172 /Filter /FlateDecode >> stream x}1 @bم #BBRPQH!(9eٵ(E!/I )txAM )e8E!Q,LF.vQīI m%;L>?9:^j7N=j AvG ) E endstream endobj 270 0 obj << /Length 266 /Filter /FlateDecode >> stream xUAJ0?dQ^`0v:B[La.]WRU'GQ2xɢt|MUG^dy*W',WOxقt,ErHh,Z}> stream xUϱjP? 9/Pc0$Bj;u(ڎV2HQ#dt`]8x)?DxgDGNx/4/)|8Yb o7/ K7Sd蓺@7=bTEVӊUш?I4M;@AmQSuj#S}7~9`^B 詤tU endstream endobj 272 0 obj << /Length 190 /Filter /FlateDecode >> stream x=ο POG@]A(AAM T EmB/fo#AB߁;ˁ.=t谿6;)#ɭI;~=7~.ɄO.;gJ +92 = Y5"$*GE1_kMAێfb)n! a!"t5}6)G endstream endobj 273 0 obj << /Length 182 /Filter /FlateDecode >> stream xU1 0_:`/PMCv(j3:9: U:zI!78QL#NN"# ÈDkg%- lcdrE,_ω#+h(  0RGC:k3dV4P` {@1gy9xΡoi|KZCf1.$n > stream x=ͱj`27h 6] fԡtҎ*:H|(V;QX\Fje%E)MT̂k1RvO1j}H9S B47Z4^7^;r<ȇ0)z!Be,; e__=FʼW|/Hd endstream endobj 275 0 obj << /Length 178 /Filter /FlateDecode >> stream x]1 @ )tMBą-,J-+GQrBt |(1%2EϨR.#ʒ;baPI(\4 ^nrJ1ʒ61E[4%o!Au4x@u/YqDwk;ppjhWO: m 837ġB endstream endobj 276 0 obj << /Length 216 /Filter /FlateDecode >> stream x51J@o";MBuS,he!Vj)x9a)BpSo\^]s-_Tܴ\ZKӶ5w1S WT##M~!J& zt9Fauޝ"Ya b&91ĐMJ^-}?9:o,Uێ;VF endstream endobj 277 0 obj << /Length 205 /Filter /FlateDecode >> stream xU1j@/L!]Xsx^"W.B*' v+h:aKxl%4ol9dxaa苬2g@˚%t§'3+~3Sb$PTh$&w;.Cչ Yw A HD)Ԁ TC8!#_^P=WDC)k VA endstream endobj 278 0 obj << /Length 243 /Filter /FlateDecode >> stream xUпJ@/l¼HSge!Vj)DN.>Z:_ca;SQ9m~ )T38,>')f(eHzB %m.ALsI7zkv+FQ"q I`{}w3 faB=3 ӍKM;t~='s.C˱ |GewUû%sLrȕ|ob3 endstream endobj 18 0 obj << /Type /ObjStm /N 100 /First 844 /Length 3754 /Filter /FlateDecode >> stream x\[o~_!0vh 6,*H}Pڕ,k6H ar8ṟDieTJDI6J* k$)(VYϼ2ŧxI 4eQV6IϠR@{b*`^LYy_UR&Ex1Z0(z-*`db)} E1`d 9 KA90]HNe1 3cɫLk=T$[Oa}1%jKcL|IL0c(ƀc2uw7zւ0+@ B 8hHCI5CSLū@h 3 43 I[`$ г̓` M5hejI`19x FT8SGϐAJ$'B>0$M(P)"PP'ZB%n=)`ʠTd㼧g[9he,8mwWɾ],\]\_7Wtzzzd闘(þ`~l|:>a3*?6?a̧^xl2FO۴OMgZO L+H j\^KH ~NLHaqt2%ӉcD{LG0rm/Οv;܉Qgvqzﷻ3{[;WtmίW6evv{~}nsy!:<WWϛj},Wg_fv8_xLYt%Wbwy5Twvjo_.ߞwˋ-+iޜ߃yܬ/"Vc цۆhq5qsؼGgcqqzӋӃh;?twZc.6d>á4CKa)ػ4teUAo H(AbF`?[Ar3;5q 92h?U: GUsq>[~zۿvݬb-t`|t̞dQyroԻ'9NI>PH{EXzX ^YE]vyf*G0uo҈$I99~*Snq?{&~9£ Rg vDs:{@c>N"1 fQ^Qmҵ1wjn3޲kd}wmM?ǣfyk#I5GAGcUvߴLp-K#0KҀ(`O>۬JW喼 3 szZU>z#jI&˷SuR8{={T.,[7FY?lOwoa"(s%rbkRiH~<?a((X}>OqyYã<r\%V4l~d x;h9ºq#\F'T%,.ۨ+[orESM x38I֛[<̠L%pRagg8pĄbyh8Ox:g~,Xg B7>W<BMn M7X=醇d9%el4,X4 k7 M7xEKO 8Dh有̣BWE;iwbz!G% ]b+%v&JxF^hPgRv /4Zzh0Fg|P"hڏEP9A?Gr:4*vAC?x{ ޽C_t`F˅0h-B7!;`X.A0 $lJ!gKZDf;Ι oNk{\sF?URs#lA0¶ D'?*?]iyP3ojCͼy`7 5!&>܇pMN!#>dDׇC2b/cCyX^C d˔֛{}0f0#<8«#CSJCa&!( ;"j1#HS1]FD,qEn9D4@f2H"'B< 9եa0kL ;9t$}[DT4Mld7JM9#!)vbK cX ,\fPV>J[zuE#T>{ ~[ͧʧ9qCʰr#f$a*MU6GE.+s8~lZBc1*"رqߝ.rqb AAX|rIýqՁKoYtxOWq631#yoS{5"3-iɧgFo:dcڶF6b`G#lm ie I.6=,q%#d*Aͮx-xqvF;J+J04]B&.xhUKD7"_!@"T)jS2+XWS!BsFj7%*-At13@bu:hL\P,oBDB-Kcv)k=Ҧ@|.= ?`'}_OSOW%F'P'I*6 /j=iU痏 O DoYR'J7AuOl)xj-X b=VXQ%ʓb3HrIZ~Eo鷉vTj.BwBot`,U+zvG=ښ38wT*_`mJm MϨUr,b%XOy[_( endstream endobj 290 0 obj << /Length 192 /Filter /FlateDecode >> stream xڅ1PDPl Ċ1D+ cmq@IA;WL0 v xlagnEt4'g'Ty!n{> stream xڅO; Pl {I*L!he!Vj)h-G,-$q̃T;LNuihuɗV'/2O4Ĭxq7 $$M | ,G\W{F9^ـ"J[|rY"ֱ4nT?pGrjݬc_e*[M* endstream endobj 292 0 obj << /Length 167 /Filter /FlateDecode >> stream x313T0P0U0Q0T01SH1*26(%s<=\ %E\N \. ц \. L@$AD=$? ?@P&VV̌...SG;&.WO@.n= endstream endobj 293 0 obj << /Length 114 /Filter /FlateDecode >> stream x313T0P04W5W01T0PH1*22(Bs<=\ %E\N \. ц \. a`?r 5ez endstream endobj 294 0 obj << /Length 116 /Filter /FlateDecode >> stream x313T0P0V5W02W0PH1*22 (Bds<=\ %E\N \. ц \. c``pzrrlI endstream endobj 295 0 obj << /Length 136 /Filter /FlateDecode >> stream x313T0P04U54R0 R M F0\.'O.pC.}BIQi*S!BA,???PP'W ,5 endstream endobj 296 0 obj << /Length 99 /Filter /FlateDecode >> stream x313T0P04F )\\@$lIr p{IO_T.}g E!'EA0XAՓ+ ; endstream endobj 297 0 obj << /Length 157 /Filter /FlateDecode >> stream x313T0P0U5W0T0PH1*26 (Bds<=\ %E\N \. ц \. @#HD؁:Q'@&> f0d82>3 df Dpzrr@: endstream endobj 298 0 obj << /Length 107 /Filter /FlateDecode >> stream x313T0P04F f )\\@ IrW04 s{*r;8+E]zb<]:\={-= endstream endobj 299 0 obj << /Length 110 /Filter /FlateDecode >> stream x313T0P0V04S01T06QH1*26 (Z@ds<͹=\ %E\N \. ц \.  \\\A endstream endobj 300 0 obj << /Length 103 /Filter /FlateDecode >> stream x313T0P0W04S06W02TH1*2 (B$s<,=L=}JJS ]  b<]0 szrr$~ endstream endobj 301 0 obj << /Length 117 /Filter /FlateDecode >> stream x313T0PT02W06U05RH1*22 ()Lr.'~8PKLz*r;8+r(D*ry(01l;cNJ l r \+ endstream endobj 302 0 obj << /Length 251 /Filter /FlateDecode >> stream xڅJA'\!Ls ޱƅ+,J--;y4B[O"hWf,4s n,͡c%:IRc{l3yz|c;9?Tj fDTP&E{h+9G2D~>/BGE$E7~ }KvmV:$,H@%j}W}azH O#bA=b2~|0 endstream endobj 303 0 obj << /Length 184 /Filter /FlateDecode >> stream xm=` .߁1D'㤎]ċ8p n #~$(}L> stream x}0K:#pO`i1NI4 Kd0FMj\ijx@½%\PPGL2P[2;|=7P~K<Ls 9y|9#l K#vӜ_[ZCN _CF,a8[NXTQ endstream endobj 305 0 obj << /Length 218 /Filter /FlateDecode >> stream xڝ1N@4QY AT (Ar 3AzWJ_kN|y9H/vI'Zun8-)\ؙBwoVWg)6r}Gݚ3J~ ZTMa.)- o̤/`tR27V֯ifhh`+-RN]dvg9 endstream endobj 306 0 obj << /Length 183 /Filter /FlateDecode >> stream x313T0P0bCSCCB.c I$r9yr+[p{E=}JJS|hCX.OD|?b0 AD}&> f0H0b!On%rv?s?>  `szrrǁG endstream endobj 307 0 obj << /Length 147 /Filter /FlateDecode >> stream x313T0P0b#SCCB.c HrW0r{*r;8+. ц \.    `|$lthvb)،6 Q .WO@.̌r endstream endobj 308 0 obj << /Length 145 /Filter /FlateDecode >> stream x313T0P0bCSCCB.c I$r9yr+[p{E=}JJS|hCX.OH" $`@CLmQD !( ,x endstream endobj 309 0 obj << /Length 227 /Filter /FlateDecode >> stream xڍ=N@\4PY AT(PR$ގk 7eUI"Q|{;5袥aC]8> stream x313T0P0b#SCCB.c HrW0r{*r;8+. ц \.  B`W${1y 01h͇q|Fa  l?`!'W , endstream endobj 311 0 obj << /Length 170 /Filter /FlateDecode >> stream xŐ1 @ERxt)R-n!he!VB9EqW7seϨxAƘxң3U5ݮr 쀾"h `,T'uID x/H 9 Zpqol endstream endobj 312 0 obj << /Length 197 /Filter /FlateDecode >> stream xڕС0jrf{::"#a e0XvtmCOh)T^ aLiOvG ֤FscT,r0ʖSiNfEN`Y9Q3pqNN3O0n ZJ4&}5ty+A -ؼ+ԀW2>z endstream endobj 313 0 obj << /Length 236 /Filter /FlateDecode >> stream xu1N@ E"a|$H" * DH$*\!G2HQwmT 娔DJsՠg?x#Um<>r\Iq+wn˜24wC0MLNLtA 9a=tC68yF̛aO2/a<&E>oxv endstream endobj 314 0 obj << /Length 167 /Filter /FlateDecode >> stream x1@G(LtYY +D ,ZZhq@IaGhf'_Ϭgɂ#}SqblF.b27+e=Z3bÏB&.ْ`9:Rs)U*H]J^w¤%HRQC/~*hGo8 endstream endobj 315 0 obj << /Length 189 /Filter /FlateDecode >> stream xe;@!$p,1q ,ZZh.F5\5o2s? q98^}G|9^0vV2#kgdfAYL{NELi iww?>, ʐ ] xBi LHʛ1VL0JRaVuZ-Vi endstream endobj 316 0 obj << /Length 197 /Filter /FlateDecode >> stream xڍϯ P#)>tœ &5m.b_CYN wzto,NvE69Wh .-rZeD/@sL@56Mo%n} :}v%$@FTiXz[V!zyM-+_X=Ey>J3CN.{K endstream endobj 317 0 obj << /Length 191 /Filter /FlateDecode >> stream xm= @ x Ղ?` A+ RK E[)S,;h%Xfh< }:ex\T:8^pVQ>EmqF;)C}FE$ sXBט^Hȃ@?|bezYETZ_q-`R!a~K<.Kj/\ endstream endobj 318 0 obj << /Length 187 /Filter /FlateDecode >> stream xڝ= @g"#Xraˀ!N;GYg!BR@[]/w%ܔ|q&?,Lƹ+x"ҡ@yRx -0遍~*?umֽr!0e] EӐ`%Ж*sz endstream endobj 319 0 obj << /Length 182 /Filter /FlateDecode >> stream xڍ1 @EIk9 n!he!Vjihh%GL2Φօ}g?ofǜlS>'t#k5?;2{Zd܆L]rBC\"iJzD=[5/jLAOQ~ߏ@B_Zh4J5Ϋ^RMuZ9uEJ endstream endobj 320 0 obj << /Length 193 /Filter /FlateDecode >> stream xڕα@ .<} L &`qRG;[pqᾤ 5)+H+9s<^&|XLפ*L,r0S⺡MNMC $z11wx!"><Zi&N?>cH RaH'c ˁ:ѴmO, YK endstream endobj 321 0 obj << /Length 201 /Filter /FlateDecode >> stream xmPE4K BBrmM>}}V́;ܹiԥS=T'u9&a+NFF⻥OK+ VZ[( f#2;܃J>PDCv@Z }•cC 7'* 4u.7mp b2rcZI_ endstream endobj 322 0 obj << /Length 154 /Filter /FlateDecode >> stream x313T0P0asSCCB.c1s<=\ %E\N @BA,@Az H?*;&p4Aka[~ `1.WO@.^ endstream endobj 323 0 obj << /Length 253 /Filter /FlateDecode >> stream x}J@#E`}!k.p` A+ RK E#U(y[,gǰzqꜟJz`;볟 Z.(wk~x|ws%{/xv4lnfxYDdItSn\#7@efd=`El6X4jB*`f}E_h0bj1SL̀,x>v*!*:MƢ:?-y%ۧF@-7> endstream endobj 324 0 obj << /Length 161 /Filter /FlateDecode >> stream x313T0P0bcSCCB.1s<L =\ %E\N @B4Pe,B @d ?  B~oAd $?HzI8'W z endstream endobj 325 0 obj << /Length 132 /Filter /FlateDecode >> stream x313T0P0bcKS#CB.cC I$r9yr+r{E=}JJS. @-\.  @x@@?C1;}pA|.WO@.O) endstream endobj 326 0 obj << /Length 169 /Filter /FlateDecode >> stream x͏= @_#d.͟ B Fp !VbnxK q\`eW񊉣~2c!GOj .mO1dXV|-M -X endstream endobj 327 0 obj << /Length 198 /Filter /FlateDecode >> stream xڝ;@%$p.H)L0VjiVW(x[_~0E_cƃ=2b4gA ΄Sp)-8lsQy endstream endobj 328 0 obj << /Length 115 /Filter /FlateDecode >> stream x313T0P0b ebUel䃹 \.'O.pc.}(BIQi*Sm`Pz<7,{\W endstream endobj 329 0 obj << /Length 171 /Filter /FlateDecode >> stream xڽ= @[&G\@7!Q1#X^,7[n8ȃW3r9Al&]'-\,cx܎` s0 n ==Cbq1 SeKvI'mr/)T8R`5zf endstream endobj 330 0 obj << /Length 155 /Filter /FlateDecode >> stream x313T0P0bcc3CB.1s<L =\ %E\N @QhX.O$$PD2`$ȃ@H&?:7 q.WO@.ll endstream endobj 331 0 obj << /Length 183 /Filter /FlateDecode >> stream x}=@XLvNBLH0XF[٣Q8ab^2}KJ)*%Kw4 +@@)juE]VQzB[_P :9o.A@9(dq%7@'a/=ߵG.^Tyh p A!\\[>P: endstream endobj 332 0 obj << /Length 200 /Filter /FlateDecode >> stream xڥ= @g fI"SZYZZ(ښͣ[.(wS|7q4HRYs_8 LWCNv?$#(%p:lHj&5pGٌs V,S*7;(&A]t, -GT@8=F> $_ȥF<5ޯ endstream endobj 333 0 obj << /Length 211 /Filter /FlateDecode >> stream xڭ= @ 4 وVVb&7J{ Lig Z 6_B޼q;QH1.#ܡ$ )ѯO-3 # ƒcM?n0O$!Wɾb|31P_6rilxz+=Տ>jO=]quBVŴ~[)D\|kse8'vG endstream endobj 334 0 obj << /Length 158 /Filter /FlateDecode >> stream xڭ1 @ПJuj!Fp A+ RKAEh9JAqc![̃I`4-ØԈmjw쎜{Vky\Y\/|9êe_Hx+5C8#$RC\B"xo<Iw endstream endobj 335 0 obj << /Length 185 /Filter /FlateDecode >> stream xM1 @4!s7q5@T0XErr,,2ԎgDM&rv=pr^ًYMyaoY!RrGB7 }KD#"eZSW!("PB Ca}96A=> stream x313T0P0bc 3CB.cS I$r9yr+r{E=}JJS ]  b<] @AH2`h AA~[@ Lx:B endstream endobj 337 0 obj << /Length 148 /Filter /FlateDecode >> stream x313T0P0bcc3CB.1s<L =\ %E\N @QhX.O` $0()D? d=H2cģd> endstream endobj 338 0 obj << /Length 186 /Filter /FlateDecode >> stream x5= 0W:oN`B`A'qRGE7^̭ ء4ؔ? ,&Q@>0[}pb*Q)QzܟvI>>yG:J^]S |-,ZHZX:^<r[C准qzb&gaQ$L endstream endobj 339 0 obj << /Length 202 /Filter /FlateDecode >> stream xE; PEoH!LUBBBN!۲t @!L@,a̻{ې lfOÄܒZrɌOp>ܘW!kJ/LnRQ;H(+p{h/ O.ok> 44W&F&R$}xY& endstream endobj 340 0 obj << /Length 237 /Filter /FlateDecode >> stream xEαj@ dz)CB=ҩCɔdnvj:t&=$%p!:d-"zX!ZnhyxDQd}LKႲ)ֳ[{vȭ+OPy5 @U-G[;z[*lB;v\ɼHer;SHR Z88 ~Ka{ endstream endobj 341 0 obj << /Length 176 /Filter /FlateDecode >> stream x}1 P S2Y<9*BV N⤎G(Ϥc|?!?'S3>gt#͔+^wr~ÏB.9#W!H"Px+"B I / >i`$f_$hj(D{{-ӎ~b endstream endobj 342 0 obj << /Length 203 /Filter /FlateDecode >> stream xڝ= @_L#8MLRL!he!Vjih'({!q-6߲`}t!'<8 91 ũ piNfqJf)c2ot=̜w{@^m W÷x: dTLdO_'X`*w]!WҢqz9KU" }}d endstream endobj 343 0 obj << /Length 141 /Filter /FlateDecode >> stream x313T0Pac S#CB.# I$r9yr+Yp{E=}JJS ]  b<] X큸7001;j?0FJ endstream endobj 344 0 obj << /Length 222 /Filter /FlateDecode >> stream xe1N1E*i| .-V Ab $(UAݣ(>B,?kWEwk.i;O%/$=iI^>$nF6x0ڄʬ ͎X⌾T~fGvlgOȠ<|HTGǂ+ˇD5WTL3*=2,<8h endstream endobj 345 0 obj << /Length 226 /Filter /FlateDecode >> stream xEнN0 J^ @ZHHCL @>ZlDZTe}9W|Qps}ů}PYkP|N#5[ Sj~??ScNzDDFM&4=:4WL hLVښQ5A1;,wKi sęǐ dw;-y"ͧ\ۼ>[z3Vc4 endstream endobj 346 0 obj << /Length 181 /Filter /FlateDecode >> stream xڕ=@!$p. b&ZY+h pJLh$%^5Y (xTHN)74 U[QcL uMĄB9ƛG3a(if M( /#`cV2OZ˿Z;5t endstream endobj 347 0 obj << /Length 207 /Filter /FlateDecode >> stream xڥ= @4{t&)!BBB,xxqFE惝}ov)ZRGk;Sʱڬ)Nюe6aܠOi(Zb>$\Cǹ.5Tº)7 P \)'ߘ'-,e$9ґ i `AY ֚ G9-c endstream endobj 348 0 obj << /Length 241 /Filter /FlateDecode >> stream xm1N0E"4 @TE"Th+)S ͓=3uE5w|pWs/ 5gFGn{n5j+UknS=6@! `dHp糢0g0p \ύF<'"DMbLz[Zj6]*7DE??(jALP5ˠGԡ(OY*G@BR栛 5pI endstream endobj 349 0 obj << /Length 183 /Filter /FlateDecode >> stream xڕͽ 0+- h NB`A'qRGE(}zWEq _~3#)';#I~C"cQ8|Q iT5t] '`010%p1 iBt*Rt 2;nB)4_T+~Ѭ.:\M endstream endobj 350 0 obj << /Length 213 /Filter /FlateDecode >> stream x}O @`qM>!zI 0XɧSW؈p w3s3Y:'sÄ1P{~s8Ӵ$4'tcot=w {* (D`D:y#jAԠBQSQ]9h@9׆mƠ3/"-PIoәn ժ?|R3{6nR}Zn endstream endobj 351 0 obj << /Length 245 /Filter /FlateDecode >> stream xm1N@ Ema|HBbE"Tj`&GkH 4أnv+4rVISJ{!Orݢ~9^ꖋknR*.PI^((`)3Sژ1+-:%8p'?, \%ᔀ^ÊH"4)MP9%7Hi/! GdL!n&{| JMc_u|_!r endstream endobj 356 0 obj << /Length 189 /Filter /FlateDecode >> stream xڝ1 @EL70s @BBZZ( 9Z#XZ:IVt« 3Or#xjBN%7nt8SjImYǤ+]'RzΚT;l@TJ @ hxjze/ ]a;AdD/ak+?iTRS" }G@ endstream endobj 357 0 obj << /Length 188 /Filter /FlateDecode >> stream xڝ1 @EL/ :ͮA"EVbE$Nxg1q߄l">h.!Ǧ^OXRcR 7'e|ޏՌ5ٔs@ th~//iKxO`LГtIVx?>(=Cuڕ/@RriniMoEBs endstream endobj 358 0 obj << /Length 104 /Filter /FlateDecode >> stream x3230W0P0W52T02R03RH1*24(XCs< M=\ %E\N \. ц \. a0C \= h endstream endobj 359 0 obj << /Length 102 /Filter /FlateDecode >> stream x͎;@PggwAxJ!* %>Et300 UjrR豆iqA 5Tv̐ɩ p:_thq_h endstream endobj 360 0 obj << /Length 130 /Filter /FlateDecode >> stream x-ɱ 0 g 2'0-k3:9 TGAEfڢ|7lXU:x@='e; m;P=fpq}kw+*\ǣҟ;ZFy2ddL*R!sBY ,P# endstream endobj 361 0 obj << /Length 105 /Filter /FlateDecode >> stream x333P0P0U5S03P0PH1*25 M 2ɹ\N\@.}0PRTʥ`ȥm``C'W ) endstream endobj 362 0 obj << /Length 131 /Filter /FlateDecode >> stream x-1 @E?^ xЙmV"RP:ٙ&Nwo\%红V\xA=y1:nwՇ Y/ t4M22DT&2+<*B# endstream endobj 363 0 obj << /Length 94 /Filter /FlateDecode >> stream x3230W0PaCsKCB.K &r9yr+Xr{O_T.}gC.}hCX.Oz 0X [\w endstream endobj 364 0 obj << /Length 101 /Filter /FlateDecode >> stream x3230W0PaCsc3CB.K 'r9yr+Xr{=}JJS ]  b<]d7`= 1S'W fp" endstream endobj 365 0 obj << /Length 140 /Filter /FlateDecode >> stream x3230W0P0W54S0P06SH1*24PAS#Tr.'~PKW4K)YKE!P EA 30` Px҂!Փ+ &, endstream endobj 366 0 obj << /Length 162 /Filter /FlateDecode >> stream xUA @7 u XJ0fԪEB ,jmAi"=xj1k)%g/ I|<$7}Mlx]I'$K>&ȔGȽm~i\ԅΏG8¢x8M lj0 b+12 endstream endobj 367 0 obj << /Length 94 /Filter /FlateDecode >> stream xM=@PEx$^!R { T߱4J2:*54`ƴ"f@BJJ7"i endstream endobj 368 0 obj << /Length 165 /Filter /FlateDecode >> stream x323P0P5T06V0P0PH1*2(Bs<Áj=\ %E\N \. ц \. 10703H01X010000$E@PPc0n`0\@r ;g0 endstream endobj 369 0 obj << /Length 90 /Filter /FlateDecode >> stream x3135R0B#C##cCB.C D"9ɓK?\ĐKCKW4K)Y(  $'W R endstream endobj 370 0 obj << /Length 91 /Filter /FlateDecode >> stream xڳ030Q0B#C c#cCB. # D"9ɓK?\ˆKCHx*r;8+r(D*ry(HL.WO@.' endstream endobj 371 0 obj << /Length 351 /Filter /FlateDecode >> stream x5J0Eo Xb6? Vf`T AW.Dԥbe|B]w6H{-O&79,Lylʹy7]Tr$:)zSQ/w9z槞PgS@="m͢"{tS_\L:eR@5Rl# L7^ Z7] gO.Py&#MYY.IgϞp?GTl]fb& endstream endobj 372 0 obj << /Length 172 /Filter /FlateDecode >> stream x3134V0P0bSKCB.# I$r9yr+q{E=}JJS ]*c<]0A?  @CA2@5@D!dPICd \\\^ endstream endobj 373 0 obj << /Length 175 /Filter /FlateDecode >> stream x331Q0P0bScSKCB.S1s<L =\ %E\N @QhX.O g``~?`g N}`o`F¢0?Q\\\ endstream endobj 374 0 obj << /Length 154 /Filter /FlateDecode >> stream x3134V0P0bSKCB.# I$r9yr+q{E=}JJS ]*c<]0AI~ i"?P3@JR|Z0 @&\=) endstream endobj 375 0 obj << /Length 208 /Filter /FlateDecode >> stream xѱ@?Xf!FHJ"BJ--|1}_aau=΁egM]p,+qeL?&wXis)|›p1$Myƀv3|-{Pe!,GpPghFdPCWT-kCj( gf"{![ޗAftC endstream endobj 376 0 obj << /Length 185 /Filter /FlateDecode >> stream xڍ1 @ LMBVbv9Z#L!W0as_DhO-%CX턏ӆt2r@:兜YMz&cPpte] 0.,$+IJ_Fn_o^:, v;r endstream endobj 377 0 obj << /Length 235 /Filter /FlateDecode >> stream xmj1 ^=;Od-$AhO=Xބͣ{N"Q6>fB&?N'izmf4Z||DJƠz.rM/T%V~rEP@X8 \IU{3bY1Ez$'i=Sː†LBp6Pu 8:R [49޲&&Z'XΝ_%m endstream endobj 378 0 obj << /Length 209 /Filter /FlateDecode >> stream xڕ00#pO`Amd3ALd08Fgh< @ڴ_e4f, kӄqH2@5(xEB3 i3 5C8ZA/:L^pXpkFbIF2qUNCE>_c+vdn&~VP endstream endobj 379 0 obj << /Length 260 /Filter /FlateDecode >> stream xڭѱJ@? LaZ 4ܪ[-'BBRP̛*y+uvg!B#n;MG4Zly\Ѣ瞚-Sӟ-5#%_v^QdRPDZTRR OԵ@*(AWE],RIR57P&?2oƐ(~#FLg5=dF#zvL;mf&,mXJ[a # }R:%e-vvS=U:霾es endstream endobj 380 0 obj << /Length 194 /Filter /FlateDecode >> stream x3331V0PaS SsCB.S I$r9yr+p{E=}JJS ]  b<]Bc``D@.0L1S?UB7@`JJ=SP (<9P@=mrC%hAC!@ y`> stream xuб 0  /0 D4?/iLsqINƪ&v)9 O44FQ5o3j ioKk2 DdFLƤ1(C8^QDɰ|p1۽."byҀ)gk׿R?U~ endstream endobj 382 0 obj << /Length 166 /Filter /FlateDecode >> stream x353R0P0bSCSsCB.s I$r9yr+s{E=}JJS ]  b<]d `6`RAI68؀L2`%Hv0)"G'!P5Ⱥ AJ$ `G@%\=Mx endstream endobj 383 0 obj << /Length 254 /Filter /FlateDecode >> stream xڭѱJ@?l&yM"&`p` A+ :--7`kMg+ & XKf]{t\)pp{ =SuV=UvT]j__Z]>5(6S`-̗oնd IS03aLlB".!1Ox&pcJ&HۅrI)ܔ_,v0{ltT颧 endstream endobj 384 0 obj << /Length 125 /Filter /FlateDecode >> stream x333P0P0bSKSsCB.SS I$r9yr+r{E=}JJS ]  b<]?T b78) s)hb y.WO@.!7 endstream endobj 385 0 obj << /Length 106 /Filter /FlateDecode >> stream x3ԳT0P0aKSsCB.#3 I$r9yr+q{E=}JJS ]  b<]acW3v\ endstream endobj 386 0 obj << /Length 165 /Filter /FlateDecode >> stream x3133W0P0V5R0T05WH1*26 (ZBds<M=\ %E\N \. ц \. ?@"000=o`#?0o  0X0`ao`27Áq \\\` endstream endobj 387 0 obj << /Length 243 /Filter /FlateDecode >> stream x]J@Yr̡@&A[sjsɃxj= Qj(y=HДeDz~,//Ue7~_G8"Ǎ;ΟGΗoKWn6^D8I F"!:+2oa[87`d`+hLMfp&byiguf0~5jRryd* Sk_ N9Lxods-5P endstream endobj 388 0 obj << /Length 140 /Filter /FlateDecode >> stream x35ԳT0P0bKSsCB.S I$r9yr+r{E=}JJS ]  b<]d3 eR/i& 0 d`L?`@!\=Afl endstream endobj 389 0 obj << /Length 244 /Filter /FlateDecode >> stream xu?kP{<0p '% ur(vtـ]G|X#y=8. [~< 8:İ˵W|Ք.1wQ@jH>yo瘣1 ý 8hFx]*18yTB,a PM 2< fep\$I5+zG4VY5D NZ@fW'coQ! endstream endobj 390 0 obj << /Length 243 /Filter /FlateDecode >> stream xUпJ@/.0fMN?Sge!VjihkR\AKT֩$EuwM1f``w%=.>jRWRkRnKO/VSYZR7T@fm큼0 {düۘ=4]L3Ȧa@bli@T|`MLjb4L1dtFW$G *.|ؙtI6Dc endstream endobj 391 0 obj << /Length 239 /Filter /FlateDecode >> stream xڭ08#^@D'D::htGxWm~_LyxJsNgo(I5M7?/&~I#K CԼ*x1F%)dB 񑊅A8EjGU(Nk4, ~j}> stream x3535T0P0bS#SsCB.K I$r9yr+Xr{E=}JJS ]ry( , LS? 0adT Y;PCuP7 .ĵ'W K endstream endobj 393 0 obj << /Length 309 /Filter /FlateDecode >> stream xڭJ@ba 3/I B<ZYii(6Y>D|I":$Eٙٙ/ -K3&tGt|My Z˽gxE7)%Z[Vz=EdꀚKzN.{7A|$sQЄ>j"vDmvs#Lÿb~dG[VueajEyȳvY:%*?ʵJ~D`q@\qBc̚p` jڷ<q}^+ 6 endstream endobj 394 0 obj << /Length 221 /Filter /FlateDecode >> stream xڕѽ 0𖂁#x/i*U ~I(}JK "&HrtF*8 q0Y Ȁf4  ״ 2o@.08BDu uf,HW lf(ze~ަ_Q@6+L6elZv,XKP~EԺe֩N=v< endstream endobj 395 0 obj << /Length 256 /Filter /FlateDecode >> stream xUϱN0 )K~h{=B @!Z̏F%Psw|J8êt0r^jE>U KWk=?ܻbuyJz_uEk?ƌ!fl#>3Z;@'7x &&ȖNm9R0!G/aEFD+E$ьMX^>a-M=:upǴ-i}GA^{sywָ+=# endstream endobj 396 0 obj << /Length 150 /Filter /FlateDecode >> stream x3Գ4W0P0bSsJ1*2" Fr.'~1PKW4K)YKE!P E?<@0g`A bP>T*L`)`J+F Hʃr Wr endstream endobj 397 0 obj << /Length 191 /Filter /FlateDecode >> stream x= @B\@7JL!he!Vj)h9G,Sl3X,fuVsmnFlzl @Hw4HH/I'S>[ِ҃C#^(>l \3X~ZPCAJ'BEH?4u7{-'ROr%xVݙ÷C qBszxa endstream endobj 398 0 obj << /Length 240 /Filter /FlateDecode >> stream xm1j0g1> stream xu1K0W v8b vtr@?')ΝCMHH^K^Y/PX.8\> stream xm; @ . Vf.1L!he!Vji(X({8Qښ}i<"Ńf{Qj{T3Qes:.{TŘ4 5E&6%/_x/PAP02g0yp&dBw:+0}ATyM6Ӣ5l.5iK|T endstream endobj 401 0 obj << /Length 198 /Filter /FlateDecode >> stream x3134V0P0R5T01V0PH1*21PASKLr.'~PKW4K)YKE!P ETD0S$00|`A; 00* ?8Q"I&PMb`߁q ̍:]'W ckA endstream endobj 402 0 obj << /Length 182 /Filter /FlateDecode >> stream xڍA `'?(   AZDjX.̣y҅Tcu 7f: 5P L % MBb%_/#jƒ&Ύ҄Z{Ue5TƩ-ՇW6j@-OӉ;*`{^[bTd7 wSZ= endstream endobj 403 0 obj << /Length 198 /Filter /FlateDecode >> stream x3134V0P0V5T01Q0PH1*21PASKLr.'~PKW4K)YKE!P ETz !HԱ` |P=iu D)ph<krF=A?0`> stream x]1 @\B/ 8M(+Tr!bI q23;9nvdC)lGUgwIBf6$32d@fr@&m)2ϩ\^sϵ2HQRQO5QJrh MTrL@V@ endstream endobj 405 0 obj << /Length 141 /Filter /FlateDecode >> stream x3236W0P0bcSKCB.# I$r9yr+Yp{E=}JJS ]*c<]70| C`003a`\=&[ endstream endobj 406 0 obj << /Length 237 /Filter /FlateDecode >> stream xڍJ1ƿ00 v^@9Å+T[}> stream x3134V0P0bS CB.C I$r9yr+r{E=}JJS. @-\. ?&iNa`D~700n?D䇁$7 \\\y endstream endobj 408 0 obj << /Length 122 /Filter /FlateDecode >> stream x3230W0P0aCS3CB.C I$r9yr+Zp{E=}JJS ]  b<]0@A@8~? q0\=(CE` endstream endobj 409 0 obj << /Length 150 /Filter /FlateDecode >> stream x3236W0P5Q54W0P05SH1*22 (s< =\ %E\N @QhX.O  P?`E6?gc?P~.WO@.W endstream endobj 410 0 obj << /Length 196 /Filter /FlateDecode >> stream xڵ1 @Еir3'p.#BBRPQr0E:? d37u.{ʧHrCqJzƁGz$15x2`ts [R?L3؂rkm;x3HKv@%.oԐ nn**ɍ@ÔDr endstream endobj 411 0 obj << /Length 108 /Filter /FlateDecode >> stream x3230W0P0aCS CB.C I$r9yr+Zp{E=}JJS ]  b<]?0! ̃`qzrrƂQ. endstream endobj 412 0 obj << /Length 177 /Filter /FlateDecode >> stream x33R0Pa3scsCB.3 I$r9yr+p{E=}JJS ]  b<]?`@=:773n? Da`N``` O7Nszrr#߈ endstream endobj 413 0 obj << /Length 147 /Filter /FlateDecode >> stream x3134V0P0bcsCB.C I$r9yr+r{E=}JJS. @-\. ?00`D~70n?D䇁$0I.WO@.e% endstream endobj 414 0 obj << /Length 188 /Filter /FlateDecode >> stream xڍ1@E #0e6 &naRK v9GTd)HN^f̦ǚ95(EqߜR{cRkI ? ldM*H&g8^WSQdHVR!J*- i~ nN/ookg$AH> wlzZIK endstream endobj 415 0 obj << /Length 196 /Filter /FlateDecode >> stream xڝα @ HByuj;:9::(>Zp"]qQ |CB?2ܓ1G!#I:Ramd$V$fO"tٓH$R^K6ʯ\UW0/%>T5*4hy~> stream x31ֳ0R0P0V54S01Q06WH1*21PAScTr.'~PKW4K)YKE!P E0a<|?`0?> stream x3635R0PacCcsCB.# I$r9yr+Yp{E=}JJS ]  b<]3P?n3 ~o0ah`?PszrrjF endstream endobj 418 0 obj << /Length 195 /Filter /FlateDecode >> stream x=αJ@Xf x{`TSwZ * W6`"8%Gf|q~K.4pR^j<> stream x363T0P0T5T0P05TH1*22 (Ads≮=\ %E\N \. ц \.   W  @ @,?(fQ 0pC sC3=;?f.WO@.uH endstream endobj 420 0 obj << /Length 153 /Filter /FlateDecode >> stream x3134V0P0R5T01Q06WH1*21 ([@ds<L =\ %E\N @QhX.O `J`pB`왏I@.WO@.1c endstream endobj 421 0 obj << /Length 183 /Filter /FlateDecode >> stream xU̱ P#k[WJ' rjj Ɔh>`Phj @ B\Q#HEldȗ$"Sg3:.{|LVkRj_ ..X ,g0i) <p&A=j|c(vk]b=(ԿOI |F? endstream endobj 422 0 obj << /Length 233 /Filter /FlateDecode >> stream xU=KPs Xxv(zb`A' Q|A7|~Lx`7UN?8g!Aj"z$r~nhdHڙdrO/$GcHN* WUP6Aߴ45q " bx%tq_cGŲh;L t5<fOk2|+ZlECd(IBY_ endstream endobj 423 0 obj << /Length 210 /Filter /FlateDecode >> stream xMν @ )(> stream xUj@Yi nZ$sSEGQ|x I;=F(N8^D!qiIs ǔB3I-1QYAg//74gZv* 0ÿ+]SCE@QsϰF,IqSn/'gCb^mmjg`1'>ڟK endstream endobj 425 0 obj << /Length 183 /Filter /FlateDecode >> stream x%1 @@$|'0+AA),DQI:IUuO)Fh~!;:c̐ېዬQ֑)HpIH]RY#H[m(l2Oe-?uC endstream endobj 426 0 obj << /Length 188 /Filter /FlateDecode >> stream xڵ1 @EH!L#d.ͺB` A+ RK EBbGRRl6Pt+ǬƬ5$Ii;Xf$#aI,Dv$f,I(K~ |[jWopG!SE /zO6x+ӸY~uд` endstream endobj 427 0 obj << /Length 121 /Filter /FlateDecode >> stream x3135R0P0bc3SSCB.# I$r9yr+Yp{E=}JJS ]  b<]0001; aX*6T?0'W N endstream endobj 428 0 obj << /Length 228 /Filter /FlateDecode >> stream xmαJ@o"0M^ป'pWSZY `eh>J+5E~;Yct_^iC-/+9u'Zst }{} ,, %s'l"aAZқMY'W Tc| endstream endobj 429 0 obj << /Length 235 /Filter /FlateDecode >> stream xu1N0ЉRX`3',ZiY$R AE GQr[0"OʌǓ/^ҟ+Vɾݭ%+yxb>F:iy-29Q EPE6fLV&b&e6fՎY (y/ifU _ cBԨM>y2_ |Ǜjh endstream endobj 430 0 obj << /Length 188 /Filter /FlateDecode >> stream xڕν @ + At-('𮶵kotrP?Q_ I+F!=ړ,o)$G$'KROt8oH&{$S^zVSBĢ iAf1h.p;`Z \2oߛy544` endstream endobj 431 0 obj << /Length 226 /Filter /FlateDecode >> stream xڕϿjAna s=b!j WJ!`R nGG8̜EH:_1;dySpnyΟ9)_6[d?9oR&[}";YL9#;e銊Һ„pQ*+j .+xs7xĕ\ }rR /:tKuNTc'ې'jiT2Dׂ+X endstream endobj 432 0 obj << /Length 243 /Filter /FlateDecode >> stream xmJ@O"p}dXW0 j)h()SDm>{uuVZjG+9}Mjag"VNbkx|JV+-*@ Ps&[ D>#E@rI~2> stream xڕα @ HB}Ѽ]`A'u(GQ|TZ?$w#3ihdȎhC!s8cТZp*Yz?WS2f5wHPQY 4a:B@ 8 1n -SQR-8 d_Ѯ+J_> stream xMJ@Eo[8м$AB`B]W҅E ;#Ǜ*y{wquLZZj}%OR7KmN~&wlֺ₲<>H\i%Jo*-o])L O[ `;d1a3X`LpM6{{xSHp|tO01l6 i4,e3zwgRS@v伕+c endstream endobj 435 0 obj << /Length 237 /Filter /FlateDecode >> stream xu1N0бRD@\lBTE"T AKr!e3 gi_'aE5tB 2(_pӢ&1^_v7T]M=[b.'0S2*(ٌ`&p B!t 灼__Rc%ɞ 6{6C!Ic)A?XZ1IN+OVqY- m9 endstream endobj 439 0 obj << /Length 95 /Filter /FlateDecode >> stream x31ֳ0U0P0T02T06W06RH1*2  !2ɹ\N\ Ʀ\@a.}O_T.}g E!P E?< r WGz endstream endobj 440 0 obj << /Length 267 /Filter /FlateDecode >> stream xڵ=n@Ǣ@f9Al%"C$SX+V*;eDIpJ zְ̊շy^O=JftॽEzKIzWQ+DXQ:]L@GjQPizV8Jy<_oSrJ^CoCK(vRਾB,|.WKuɡ`DuO6KN6_i JGT+ɭ KPJ~ s uy endstream endobj 441 0 obj << /Length 338 /Filter /FlateDecode >> stream x͓?N@gC6QڸHaRK vF8%^0 Z-;;3|qvrXЧhsJL6~Em*iS^o*\R[}OT@WdR;Ȉ,QG9Ci 7rXK0A@$s;:>GOÔ11PVGG { r(ܑ  J}1*7S($;SheIL>oC^fi0ӤIΧ C4qHGnJ谬cC +{7Z۶> ࿢*E!en/ endstream endobj 442 0 obj << /Length 258 /Filter /FlateDecode >> stream x1n0` x'b R"5SS۱Cd(9BFcWGRZ}l_Y1S#=e}EeEzYNzm6|<>I/O^捪ko?n>CK(I֪ov^سs`'rVr\w I˼ދ/np=g?;ؗ= 13rً E7Z1ӌk kmgj.=WMs endstream endobj 443 0 obj << /Length 157 /Filter /FlateDecode >> stream x330T0P0bs #CB.3K I$r9yr+Yr{E=}JJS ]ry( 0!(c2~f0H`0fc0P<ƨ1C0;cC r 6n6 endstream endobj 444 0 obj << /Length 311 /Filter /FlateDecode >> stream xڍԱN0o#O \<'H3D'㤎H GBI%)+,`z aJOJ}o 9ƙ={MyqB<>@<1f#q8&t3x=%T]_'V1 S>8|bGx ~ه_(Jf2Lc# ן8~w[stJptU,r,]#c},=3ֳTc)frLiGvKA;+DE 1]*YB8k ~oL endstream endobj 445 0 obj << /Length 325 /Filter /FlateDecode >> stream x͓N0 @PK?h Hכ*D$02`~J?c&rNldH^؎{U.+,p'%ΰ:ޠ%On _ K,!C#44~d32DCĚZAO3%,Fb= _&g2dFLdt^c;ȓhMZE=p8}ډݴ1Mt=[liq<3Mu;oϚ0qfUȱ:ؠqZwѻ$D#BHI!ihD W xkD endstream endobj 446 0 obj << /Length 209 /Filter /FlateDecode >> stream xڳԳ0U0P0b c #CB.s I$r9yr+[p{E=}JJS ]  b<]8J,fn0ªc5CX@Y bGb}e1ce H,ln~ #BBP`pb~Y 0SFY䱠I'W T4# endstream endobj 447 0 obj << /Length 290 /Filter /FlateDecode >> stream xڵӱN `H&GJkNM3NIM{4"Rȍ%) ~ٜoK<+>Lcuz^aہxĦqkAtwb{%>X> stream x}ѱJ@?lv_@p] !p` A+ RK E;!hM7HqfwO`vv23)Vf0WI%X8=Uk3UqaUASSbmn*Sުvm| 82"7@б, }8$tHIR2>JJ =MT;4[6R׳ā~D}~k.:6ʃHϐDJwk81ۇ=Isz6WBJI7l:ahJ7Cަ85,φkVq< /XYd|vRJJ}I endstream endobj 449 0 obj << /Length 176 /Filter /FlateDecode >> stream xڳ431W0P0b 3 CCB. rAɹ\N\ \@Q.}O_T.}g E!P E?!u?3bSWbWbWa1gXu0V6V eG,eƒ'c1%r C< endstream endobj 450 0 obj << /Length 270 /Filter /FlateDecode >> stream xڕJ@'LsL 'BB> stream xݑ=N@FJisX[N"GTPR; 9BJGZ0; Jifw<~EqUQAg9T )fT3j4wTN\IM}MoOhf7s,hSv`ځ_ hv= {H 񞡱B [r%kT3. 0=;  ڿv>;bC _\Af #c,'4/+;hq1h?7p% endstream endobj 452 0 obj << /Length 243 /Filter /FlateDecode >> stream xڵN0/`?BdS` Heꀘh XI-#d`stgۿ~Iy)x 5_XQ&oG\7vWEF<z{O5 Tb!ȣO!2J`@;PP<;Gg3E9c̈*l09t / inm';)),bߘ^Jq݂zlgF endstream endobj 453 0 obj << /Length 253 /Filter /FlateDecode >> stream xҽN0T"GȽu~n! & 7+Q!ʟĄd嗋l4\jU<sMo4HQ {N^Kls/dKɮꑚgʱw_ s=$p8E . (sׅ42*ȱ| ]6&ܴLpڋ_IHGN!X>] 7#f".F?^Q 3ҙ b= endstream endobj 454 0 obj << /Length 244 /Filter /FlateDecode >> stream xڅJ1g"0M!`Dy[ZYZZ(ںy}<•aǙP1|?IO :1H=>cTPc;Ocw!^_[^ʙ;V8?dmgPj\Rq :dĄ* |Vbn;gE d1o( ؁ahDBc!D[o1En %in6N:\Z` æ]H_I<?y뭜 endstream endobj 455 0 obj << /Length 175 /Filter /FlateDecode >> stream xн 0>B L*)j3:9vtPtnG#8f:M|~3z> stream xڥ?J@'X&G\@HBL!he!RK E֛L2ɮ9o[,Ƴw565>UU7v1.tqoYKtq ˣ|QђCDF"RcB|&;J e%wpU3B?O|G(^'f ]THد|X9/O8E.> stream x373P0P0bsC cCB.33 I$r9yr+q{E=}JJS ]  b<]0$0a aÐef0x:`P?H e00?C(v q'W l2 endstream endobj 458 0 obj << /Length 138 /Filter /FlateDecode >> stream x3635Q0Pacc CB.# I$r9yr+Yp{E=}JJS ]  b<]``0f+ɃԂ 0a@\\\٥; endstream endobj 459 0 obj << /Length 205 /Filter /FlateDecode >> stream xѽ @ ,>y;[hN⤎|>7cj+: ]IK7H(6%5x8&grajIqjZgP3:;T 1 5c+ p kQ)cH__#D[ v\o-!_ utòʈe2fx\ endstream endobj 460 0 obj << /Length 107 /Filter /FlateDecode >> stream x3635Q0Pac cCB.#K I$r9yr+Yr{E=}JJS ]  b<]0a\= endstream endobj 461 0 obj << /Length 232 /Filter /FlateDecode >> stream xҽjA W#>WZL+vrp!ET+ -vXqt;';됱j-->xsiNY-gOّy+#CYEI O$Rx%4DJʤn ׮UH@Y$߸Np⧤D@(Ax^ 9Eۄip xviC endstream endobj 462 0 obj << /Length 184 /Filter /FlateDecode >> stream xѱ@ & &]xHLtr0NUy{ጃ zw6d4JBGqlfiG{1+P)QEz@-ibc|!Pi ౮!`{.TV6ߡA_y48+po endstream endobj 463 0 obj << /Length 231 /Filter /FlateDecode >> stream xڵ0kHnЂ0 &2`A3<#02^KL%!_s{I!.qa@CT9 +@P% 7 v+@x0> stream x;0 t#' VbTD$02`nQzT dj20XY陞c+4xRps?aq@iA W<ix=   E^6ɱC:_:Wѫ}O_ /h m Ij^ endstream endobj 465 0 obj << /Length 259 /Filter /FlateDecode >> stream x]1N@4;ۊB$\ Q%ڬ\vY)yTk.拊57 UIJ/Kn6O\k*ybx[~|nXp8HDF#々~7'QȔ^;LKZ+45qj@.dtv!"ieh֔j]dV絳Su ?hgcfKxhGZ endstream endobj 466 0 obj << /Length 186 /Filter /FlateDecode >> stream x3534S0P0R5T01Q07SH1*21 (Cds<L =\ %E\N @QhX.OON2bH$;&=A$3?8HAN7PJ`$H `( E` qzrr:p endstream endobj 467 0 obj << /Length 187 /Filter /FlateDecode >> stream x1 @   fl1[ZYZZ(Zkyt {O!(VhpZ0(j. 匴F91J3FNPf4W.dI K#ZX+ސ8 w6 .n N<sUv848n endstream endobj 468 0 obj << /Length 252 /Filter /FlateDecode >> stream xڅбJ@YR#d^@7l 'BB+RgvE8X>Y؟/Η%YJyN^RaaB> stream xڕ1j@7Xx6l6@RXR%)S$$fB.2Ni!7.V?u~f*U+uW9o(fKUn*< ݖIu>?_dRLjG/zV!C؃@p` 'h'đv3k"t{O<8 F evb883MmH Є̎io“z>Ba"0i5s?hb8T0c00c*Cٻ1 i<8^gvJpi\DXו!) endstream endobj 470 0 obj << /Length 310 /Filter /FlateDecode >> stream xڅ1N@б\XG\8M,  * D "To+l"0DQXO]yx:NbYٔOG8'M~ea חG/pl%ގqtg%Qm3 "Vϊ<X1f3j ԄMVl!ey o+ =̃Zy[coFG\{SZƛЦQ?䍉`߈=m;4M?l½};YTjĭjө IPZlklku釾2#}UJ.҆Rymaɽ endstream endobj 471 0 obj << /Length 137 /Filter /FlateDecode >> stream x3337W0P04  )\\&f  ,ɥ`bƥU()*Mw pV0wQ6T0tQ```c;0D0I~0Y"I ?&D(I"\=VI endstream endobj 472 0 obj << /Length 301 /Filter /FlateDecode >> stream x}MJ0)YؖG_]x>.]W҅h=Je? گiftߟ ChÞ6 s/\knCs%ux^ߟ\s>k o@B,D'DdZ"-,-B/63"x甙k p7q|$pF暿 dL@AvZHFӬYM5k|,ZdIeb4j`Mg!@Tt`[Bͻ.A8Ew̕bԊW'bt7}t endstream endobj 473 0 obj << /Length 305 /Filter /FlateDecode >> stream xڍN@LJlA gEr&ZY+h=> @IA烋 |gf.K xQz!eY^#[E{_o8_c#>UX>)EৣNGG#"qhfH8fEAEI=-Β%$#쵂H\Wfä hgcgݺi8iZG`s+,25\i`2[[E3)D/bZ1.8G IUuuR:X&oݴ]֯"Mߴo endstream endobj 474 0 obj << /Length 225 /Filter /FlateDecode >> stream xڽнj0 ['Pt!tP2;4qh~?G$C@Bw&,+]po1}R28^~в$IF~{͒/wu|'ܯ8&旘knLM@;&ED-tw>5 pU/jh:؊,PW+D5^ԝhma#:YVp=Dӊb~9ag/uwiS]]q endstream endobj 478 0 obj << /Length 136 /Filter /FlateDecode >> stream x323P0PP5T02P04PH1*24(YBs< =\ %E\N @QhX.O9   fv6> $'W  ' endstream endobj 479 0 obj << /Length 95 /Filter /FlateDecode >> stream x323P0PaCKCCB. \.'O.p KLz*r;8+r(D*ry(177? 'W  endstream endobj 480 0 obj << /Length 294 /Filter /FlateDecode >> stream xڽJ@ƿ%``  h`xp` A+@--|tv)-­WXZdow*;9-8㒏 >+1*R̸*gZ֔Sz-eJ~{}ty{9+Sb 頁Ș2ԠFJ -_5J5f҂Fvh4P"VeF T߄iӹ{ =#0s@7IMlVMts~!|.G9#٘0\f {qo@W5/XI endstream endobj 481 0 obj << /Length 296 /Filter /FlateDecode >> stream xŒj0OxܢGн@kg!M ԡm-@^[^[WI qUutqE+ z+̟00=}c~ =T`!gA@jT, 8_=eCAMF^ |:I *@=N` ڝ 垻ḱ69&>0s!of &jɤbu gϫC0IF)Zm* endstream endobj 482 0 obj << /Length 171 /Filter /FlateDecode >> stream x1 @ [~/1FJL!he!Vjuh%GL7pWjRVsȣ BRJœϲ?SVp\ؚdq$fyQ3ƴ_@ x6QjykaD D~:Vht%7Tm endstream endobj 483 0 obj << /Length 152 /Filter /FlateDecode >> stream x33г4R0P0bSs3 CB.S HrW05r{*r;8+r(D*ry(*P 2C@,dBPBՃ)A0@\=R endstream endobj 484 0 obj << /Length 259 /Filter /FlateDecode >> stream x]ѱJ@ Lᾁ'p<8O0)V"*+ϑ:Ygw{tx-(9bA1=3?k*hmuAoh]MN-V+rn`f \uǦxY> `=jx烷li'^ b8vUx谈 endstream endobj 485 0 obj << /Length 160 /Filter /FlateDecode >> stream x3731R0P0b3s3 CB.31s<̌=\ %E\N \. ц \. A70``a~@ m :y 4!B3  4'W +q endstream endobj 486 0 obj << /Length 229 /Filter /FlateDecode >> stream xuϱJAba yh+RPK E;1 tƽpS|?;?xžjs3TC=-r+SrgkkrKyrM͒a{ծlB-`a:`u)xuwGW2&e˯ɦnh huaǨk} [ bԪob"EzONoɌla endstream endobj 487 0 obj << /Length 213 /Filter /FlateDecode >> stream xѱ 0; 4X-P vtr'uTt7)7&/“ h4"rMӘzd endstream endobj 488 0 obj << /Length 210 /Filter /FlateDecode >> stream xu1j0g<7 41'z(S$ MHXGQ|JW\(T 7uN3uki1}.Gq%Cf&u#U])Yϧz\R׹fi WOp_PI! I@*#f%#~,K{ǏT#,ΰq`(nYsLޖF^V2 endstream endobj 489 0 obj << /Length 156 /Filter /FlateDecode >> stream x33T0P0bc3sCB.cc I$r9yr+s{E=}JJS ]  b<]000```!$T ?h A30c T" h2FG&\=ak# endstream endobj 490 0 obj << /Length 167 /Filter /FlateDecode >> stream xα @ ;:'zx: 7:9: *:{G;s]!3pck8YǸh PsNA^/r9E l BuL[VeTɎdÞ@`_wV| 䈚 oafaosK endstream endobj 491 0 obj << /Length 125 /Filter /FlateDecode >> stream x323P0P0b#S3sCB.#C I$r9yr+r{E=}JJS. @-\. ? :  .WO@.P endstream endobj 492 0 obj << /Length 110 /Filter /FlateDecode >> stream x323P0P0b#S3KCB.#C I$r9yr+r{E=}JJS. @-\. ? C 1cqzrrp^ endstream endobj 493 0 obj << /Length 203 /Filter /FlateDecode >> stream x=@H\@ȜM B0X({+ba8垫|>2Pԏ~?Ѥ$|@jRRod5Ԍ;*gX@l$u8lSyEȞn!X#xiTCƩFHjODO'0vBJ#n $"&ݏ endstream endobj 494 0 obj << /Length 159 /Filter /FlateDecode >> stream x3534W0P0bSCCB. HrW01r{*r;8+r(D*ry(0a@R` `$@z ɀ a/ m?C&\=?qjS endstream endobj 495 0 obj << /Length 209 /Filter /FlateDecode >> stream xڝ= @GR2MtbSZYZZ(ډr2EH|((v̛ݝGa_ endstream endobj 496 0 obj << /Length 144 /Filter /FlateDecode >> stream x36׳4R0P0a3CB.c HrW06r{*r;8+r(D*ry(0`?l(g?6g u@lC{ pP endstream endobj 497 0 obj << /Length 213 /Filter /FlateDecode >> stream xMͱN@б\DTd""R.HE) h!kfg:[\ꗺXS)Ks"Z;׌oY2=7Ro0ͬ&a8YZi4 %:1X[z83L̺E[y!8}?+O2dWtm8 \\ղuY endstream endobj 498 0 obj << /Length 202 /Filter /FlateDecode >> stream x]= @Y6sݬ+0Z *ZGQr!n5|ś7ȈBR[^0$)?G19]/bLւ :c:k{-Ŭ`m88u t&p2 lB̘Ϙ> stream xeпJ@o \`^By]  @-G̣R^w]9 Opj8>xPS5ZOLIppu%?^^qDzŷ;JW\ׅˡ~ lr&Vg{'´N2;s8Gvn=ЪQob]pл ~^8:g007~ʞJT Ͼ4sM^!yJ[X' endstream endobj 500 0 obj << /Length 207 /Filter /FlateDecode >> stream xڽ P FҡмVn?`A'qRGE7f}>BŚނ*3$|9VuQۀ}+5͞1%kTڤ|18Ux*%V738 \A&rOP deyܿ>X ?c\%#'q(IfNĴ) endstream endobj 501 0 obj << /Length 131 /Filter /FlateDecode >> stream x337U0PbC33CB.c# I$r9yr+q{E=}JJS ]  b<] >00013 A9 CaՓ+ t^@ endstream endobj 502 0 obj << /Length 259 /Filter /FlateDecode >> stream x]J@Of!"." E0pA.Z v |˝gH0??pNNmnҮwYUϹ勧7wk"nssa q[{_AꭅBaD4%;>#p{%*édlW]HO˷df 3ÂױtK҇FoMfl=o,"E"pLΉ~WhFF*4& !3DWZnvj endstream endobj 503 0 obj << /Length 257 /Filter /FlateDecode >> stream xmJ0'y h[ 'i((ysƙ$;dfjj5u=5mMrPٿf~jg6wW`G*`Z@y`5@N08F  xP f͡HmVJ[\8 )qYTN KJ8L3#ęgDUk-2gB8&%1Dw>vq endstream endobj 504 0 obj << /Length 206 /Filter /FlateDecode >> stream xڥj@@CkB  A GAẸMb/hffӱZ'd?$u{<l(潽x3\h*fTK> stream xڽn@ 2D@ހp\hT$R3 bF"1Ti-rUO9$fo=> stream xڽ=j@W0LsDZT)+' R(:J&xݑ:y;v&DZgЦ3p)ڱ ,rHYH|I'$%nlkcLCsb@D$*cz$Xp3C0_^")@lR{Ö;"r{H=ϩt.:/d[%K*e?#W~'7  endstream endobj 510 0 obj << /Length 96 /Filter /FlateDecode >> stream x3631R0P0F :Ő  Yɹ\N\@U()*Mw pV0wQ6T0tQg?P`Փ+ "g endstream endobj 511 0 obj << /Length 97 /Filter /FlateDecode >> stream x31ѳ4R0P0T02W0P06QH1*26 (C$s<͸=̹=}JJS ]  b<]'W 44 endstream endobj 512 0 obj << /Length 398 /Filter /FlateDecode >> stream xՔN0/y  m KHd@*bFHݒG2vjEb&C˫R\b"k?Q.;V<{gw4γ^|}~lv3vQ5@dֺȴG`̷dQbB\"dW '1)Pl$b.D9hbYp>bP:`VES`tLt93)| bv GNs@9dSL8:p 1¸ ePQJngCʋ9R@(o!DEiMaZj$M؟|hfjcÕ[BK^~i+8j endstream endobj 513 0 obj << /Length 316 /Filter /FlateDecode >> stream xڍԱJ0 4O`[,'A&qRGnV|mp\p9䗖J~qr5KBMKuy;}ts/g. eV;.N\]i_zY37RcUup]Q/-%u;>j{PkP%G*K0IX S]' aa $W&>a"a I0QGdl LL M 254Aaڷ#*bDM6~,> stream xڳ437R0PaSK CB.s3 I$r9yr+q{E=}JJS ]  b<]>@?7@Y - DBX`,v8bƪ@3nfd_b?̰⇇<`,x> stream xڍ1K@ 7_CIP AQs#~lI !ܻ{w5 Ǐ?.qEs84i"bS5D[O|p#9/՜ٕx}y{\<\XDw<[ v1c(ٲA2-#kgSr̪CwYX@7skϻ.Ёy=De=AW=/2Nе Pǯ{Ro0R J7=7рKgW/1>11x;M4$.ds.(M.[Amdc|b];A7Y@|[33O/n<.;=oZ) endstream endobj 516 0 obj << /Length 287 /Filter /FlateDecode >> stream xڕѽN0> stream xڵJ@%4y˼nn p` A+ J--PB\_SE;%_tB=ܵlkouLn}{ ?T\n0`Bh§"( v3,rV (R0(Z1̾?^3A RW^SML j3)0}1F3f liX6e*yX i}lM󣫖 S-zY endstream endobj 518 0 obj << /Length 267 /Filter /FlateDecode >> stream xڝJ1'lq0޼fpVb]hy}-86L /;q5%QwFO-kHfr;r +ZoyaC 2i寙5z>%k<&r,`vd+q3ߒ1^+ \oxE<@G*q/|Aoٸ=,8U(`ش fA-pڟڤPj"{mI倷YR endstream endobj 519 0 obj << /Length 351 /Filter /FlateDecode >> stream xڭJ0ǧȥº=z =umr!4LRuDg^W4;(M}h-ԣKCQ\jժԥ*NѮ̼<ޫbu~lX)U6_GzahB t ]2G6Da)hrcfEA1-?pλճ I}҈6ĥPgOn ܘ'+tc036u! 蒡AM"9%} |H=X9ZHv]ϽmE=LQVgq)ϜRT7D]n cƒ|M'b<%NZu>v endstream endobj 520 0 obj << /Length 219 /Filter /FlateDecode >> stream x37ѳT0P0bsCCCB.33JrW03 s{*r;8+r(D*ry(00`P"0C=~d3@@C P?P 8xq83qe0w`0H+p32> f qՓ+ P endstream endobj 521 0 obj << /Length 142 /Filter /FlateDecode >> stream x3631R0P0bcCKSCB.#1s<L=\ %E\N \. ц \.  30oAr 5 T @;af f!`` ȘՓ+ > stream x=J@ )2'p2Dl +BB\K E;qy^a2E33EdȼҥOumYꭥA +]Ȝc2͹~z|#8іF_[]PI%ae,*=c<<6F< ӉY+ _ ^Lubފq,?vMectJAqO8:G}- ȘKH~cD='0t[g7׏iC endstream endobj 523 0 obj << /Length 252 /Filter /FlateDecode >> stream xұJ1;|Iej`]),APKAEn"v[ |]\k܄[vGXN n2rב)MZ/W4mɟ˟1cɷ'E37.\P;s0 ]*\T3&03vrHM%.,^{aK u`m)4`BO5䀳"mDV_—B.fY/ë/AG-!A B endstream endobj 524 0 obj << /Length 249 /Filter /FlateDecode >> stream xڭN@ }K!~5*1#ܣQ3T9l Iɾ5TUEš^+:pP3/F *-=UT>cKxii$@v#W@!'=r48 E\)GC B1:6b:wZK??"Xi=1wfbpY4?]e[t~x# endstream endobj 525 0 obj << /Length 288 /Filter /FlateDecode >> stream xѱN0Ы2DHmNJȀS22`%4*1Cg[!uBbbt:Ftr6IF9s|bli%cLl^_0\tSv PiYY0٣-$Fi nQC$lrڢWF$\Ea}!~"bǠ?qQu{3}>t^ uCaΟ jeG)AmJIeŐ[W.翢j؄7,?ne endstream endobj 526 0 obj << /Length 185 /Filter /FlateDecode >> stream x? P ,dМVt* ίGQzN:xȗ@ iDrj* CDJbCbqNjILjn߮#r)o̙-S/XSeFԕ+^+k۪d%A3vX}X~ö"7iӊ^Ds. endstream endobj 527 0 obj << /Length 191 /Filter /FlateDecode >> stream x3531T0P0R5T01UPH1*21 (XXBds<L=\ %E\N \. @b<] @>dF"ّH~$RLڃz0D2I@D1aL``n@'03H~`c1(l@A(8\=~@ endstream endobj 528 0 obj << /Length 257 /Filter /FlateDecode >> stream xՒ@G,M$ DK!he!Vz'ںhy2$7 ,]aӯABR8]8dDVb^Z(AiTŜ|1Ք1E,m@N؜ԝѭ@3zgKd 'nf\ADq.v,L SBӳ(ې!<ڢ҆x?^m 8^..$3Jf6͙[g.w endstream endobj 529 0 obj << /Length 380 /Filter /FlateDecode >> stream xڍN0`K!~HڠNJȀbFM-Gw.*$D駞ϾᄏxqG'zjlW.ܺ'OvƭభKhՙmu[nt"䁔"!5Q&|dю9?51p'Yfr0#0@JS'K (b΀L ɤ 5;LڣY>6M"v(N}N~U UT[TfSUĕAT H#dQ){6R2"@X:!rTA\S^Ej,p dtS'BZI,=Y endstream endobj 530 0 obj << /Length 339 /Filter /FlateDecode >> stream xڍMJ0W(d\@Le@#؅+J]Pt+^7.}R݌ү$!NV=>Ui7+\7n8zkVy}c??_Twţw E`x D6&<{p-x&hY:@B$(i LJv:u'Oc?\pb&$gľHC"9t jyDnt;ƌ5@ nI;O4sPʅe4B(ΗS9^+4IIN%5(5p(a NUE endstream endobj 534 0 obj << /Length1 1489 /Length2 6699 /Length3 0 /Length 7700 /Filter /FlateDecode >> stream xڍtTZ6)ҡ9twKw 030 9twI)%4R" !zkfgF]y;-DCy%Zʦ@~? /? !;b Ax@0PD@@ۘyKԂ. ("M#$J /@A#sO ؑn WVC  CnP /7[a_G@}}gu0;8?Wgo`oG?BBQQ@ 邠_0{8@~oτp]K~k]?N~;f_UNT<]\~ uø'v o ՂA=]UGnAAB=T>;](c5( z]<@~n |x7o ~ @|nv% @o'>^y#~ݩC\ H[//Dn؟?3|Q; 7/-`Om2n@ >0,&Z7ʐ,4'*';X>xfIH+j' KfaE=t\oJRz.H\P=F]7 Mbd;ocHMǜz!||rI͡[U)@U&̘{6bBXqVXNT \at>%BW#To7aO* ʝÏ~'j}fx&{0W4(&MsmgA&Oj=/? 9. 85iKLʜy&WK mJXo=K46Em)?~{m$81atE&߽eA iDL"=k=Udtpx?N jfm Z݋e'c+#`\c; wWw%u"7 k]+* hZ,ipOb0CWE禕Nl9mfJ6tKJLkw6Њ-,e4~/~V˷ XȦ d}Ã<(z\x&UwhMCm>ͮ#'*=E}=g+WTg^a; ӏ߅G|4깷6"L)"y2%É{ pʀ 1AR '>yUN☟?'Ȯbn51v4Ǫ`6ӲƶIMx\dFk|6i (=GݪY6yL[A~rQJe 1CE&LQuK~^۪JV8DMo.()V a"ap:)^22o}Vv a.@;onEgx0(@":;?V& y^5Ru`M@8N?"‡ӴK.=2Y Jܗ6ckXZۄ=66yϙo8ԽTSLdЎg\×Dr $v0~ƽ={gE:rʌY6i xDbI)ʽ kuZ7*#c_YRiP㾳Y*h4LxS@{ Hނ oϬ0:CaRTVoY)ۋc%(;zGH8cRZosSǰ*Cdfr[C1pU~ި8xCž̔Dcf U NO|!F EΔ5ɸ갔IBL-6Dk 7-7םX"ڨ,ҭ.HʨoԮ840(@צ}T.ԞptF{/&,Aؔ[lOczM-^_U9k+ +&} =2FExȄF&`}Ҫ,9#|Sc^ VnlU%2ӳr}B>-32a#c̙0E| FSh;qB$zYP]x޽nt=J+\Y"*3lEҼt6'鋋GB؇t;]E5Ct@\ƦK/mg\AӜMԩ"VE-aU6e)^*k/t 1|Fvq?Ky} 5 tf-׏$P>f ܤ#*CYN#hu{ M̐1bL΄J2"VV-A5߷ W=sZ[jw:$Mv,|3|ڌTH߷g1I#')W}T98V+Jp1#TP3ڡ~HN#Jntxj-6Z h݀kTBnu\®m #I+/trjK% iz%rp2/(Ԑ]Sv=]q|cɛC<˸ G%~l\ m.)j3gaw{P UG~Gx˫M/r3'o5\+wZfW@ѫ^e~Xٵ">Ef>̻=}ԛlfQzUlmclhhaFXwa軛=-ԓ4K&HaZndϡ_C N,̭ۺ^4Ux]oM] V`~p69t♴()gN"Lh7%sTz>o%NvY =m"F|wuw>X r@}G'ʻg'Y `o,?\'1Iu:tn럔Ci--wSR9rXoZ|Ӳ C,B14yFy8cXih}+$Α5lu ks5.=СwVGm8slp1ـx<~Ϗ}gkD MvGћÐ74e*|vYtctLje;rB3V]t\lUUIοl UB *yJn+_$πkMo/o?,-іCV _(;b&pY/nGk>XߋQ.]G}:a<>28WW~}h{`iޣ\lOdMyؼ aZB$>MLs.Wc1B |YM[;iL2ѠBS 8_x1TǾd^5)-\}NCFuv\O=Z>wwyk sl ,tT Hc i6Uޜل&)))[x̻oH=1\6$ܵ0#sySX߷GDсwhm?5~&B{$䧩jn{sT¶}2"a YдæۻQNxVG,`E0_ B 1YĴҠW$URbW|ք^d|Հv;t__oL]| :Af~hv|}%6N|7ccyCί!,B k:|d0 H0jQHW+඘sY^YpyQHGSppM[D \/*^w%~Ćę5W /+Ig ;Wq+6-fpY%?$I;^I˰aJ0.DmIR Zy6~W A$ ڐׅ $ph6,]cYf_ǫ0OƇV+8/e{ڂ.a_#dX}ĢgHc'{j"aTМ1N0QUwI+Ps5:괙ЭMpH2Hr@ 1e)k Mm2FL7IVxVCg)j1Mq^AC\ЮzI&I=~io8h5L팯:SVR'7A = x0YmQ 3s&Q](9_@W;fx'ܒ7ܠ{ݙ%@*+vlu(y RwEI6q)DLe+ׯD]b瞆 zgLjl%F5&p!,C)A  dDȝ0^[p+Dڰ| W6Mqlh+?$y3ѨP|r#$pȋGMOZh03)тӖ 1B=4o mzey JVӪUϤ"74+I#V'_#{ m^])LBY)m%ώw_Ht'MpD G ^zs&1;4)Vn$S0>ꬤ =1v۸5;zUgDf m6<ƆZ20cQ ;"2^I1&n7,II·QstgMW\fcz'M%3'S6@ d/q hx7u,F[v4xllgx\LNb-]"bU_]6/|Po :Ԟ<-Ю,:t n@gHZGTVӐhݩ'_߿+)ZjqjÐBcdyT!W%'>j&!j2bG+ɟ'|%K} j&t';|8c>*$;2zGd'*zRP"GoRM >`*$z+?bqI9zFG (QؐA#QeZZ쇞w%Y[聜3 2x[ZyU3^U4DzC=*n|f5E2ZmR-k|w/83b9ã0\xRh"LxB1R*[O*\KWG}av0=mb-v?棽-39i{=R͐@(VQWlkl9~5^ kG0R'a( i[ ZJ}3oB6z0M]/G+䍟(]LB TnKKigkǞX@[Qu񔨼5\aۂHj\'}m|1l DPT|‚3@-I֎+O3]l'9yCtK.l1=OgS/6P endstream endobj 536 0 obj << /Length1 1787 /Length2 11694 /Length3 0 /Length 12837 /Filter /FlateDecode >> stream xڍP #< ݂0`&4@Hp !sr{kwuo 4bPS4ޅPRc@ Fb F +B ryI\^yW[| :$Ans @jvF:x:A,\^#Ό' fvJ +ˉf [ vtV.., ;g0=bP;?Z(ƂJд8ЀZ- lBq7;^Nh)T+rl,lM7D? 33bo ؂*Ҋ,..L [g ؂L_,S^:?g3'33YHrRP;;3IBf/pmA{s?0wu`ղ8$y1c<\#af?l_zv:,^B,/_ 70o"T669` أ ȏ 'Cm= sĬZ*2_8`f؀ͣ ]ǿrPS"{CL"]0f/?O?U"iW[?tAv[Ͽ#^JЗe:vW lq^9:[H, B\̬_v?bV:Cxż{23׈6r_VA/KuHٛA>v.n 2f{YSsǟC]^(}P'?` U `U/}A > z4/bcA`\/ԗ7?u` P,9Vl _vx_j%?^ËlDܕ_Ü wl/f_'l/}z gfNN/ s3_ .BBB:njĈݙNntٙNj]&74ʥ٤orVν<9ɥw-Mf`I(g1Z`uRK`TI1{PD-4h0|'Iȇv(wԔe)iTwi5 xcfAdr`-j{52V?iot[)u 0$'RrCnA 5:3C +$C[R,e\4(pr!kgtʟ6 } rC蘔*}i:c,դ`mI1eZ Rf/_хNYuh ,bqpqUi6B*ֻ|*8]tŎZ_(ʿ;ac`^#nqSa8d-:Z| %`i\쏸$3)S|wmÁVswxPFuhB(W}+=m=T0'[-U%@N 84ʀ;X׶͇ q"aˌDMp^ǘhZeB,|~e\pXg w?>Cߞh "5Pm5eg~YAK;Ӈ$ќ(WN _J^"/e%w5ԲY ,CGf3j͒/tYŖNtaxb7a.(!@R(>*F '| ?AY`cz!A:!T@uγ(`:]kTPͥ xXPOf›L[I&%< x\ ڸ<:!Tme+Pcp1HtPR^W_K hBesbUk -rFl"lVu p ؒfΤ4ťkTS7uB߳.j϶AR&⬜BMX_~c4 W+C+%0XFֆ5ɲƙyZ5E=妇9c@1kTYz'FR5BMSE_Vq.Ck!5'<*b9-c)MBGl;Uxs)O͇e^)0'X~]fWhds&\& >mtxkt{uX69)6 dUv+Ebvz޷M`#3QQ%+c{bFON#uyļ.e2RJ#@H(rXJ}B(!S#C@Glzzd˚ }ǀ';nb&xmjxʀ=>PFH*H|:aЩU<0z꼫זm[jEVbd,Urc> oN̯&;լ&0o_9I 'joLP)FTyl jB˚6$ӖHaC(xOqBQŗ72BFm3[!(S7F72,a*a7q5;~a/9[$5ٰAkwv^J퇛D3IT9ц=fNr4Xj:j▰d r}:bFb-bV+sĂaDwHYM W$goESA DA.h^z˜&C횦?W:ٓ?*x8r5v)%܋33G,ڑnKb9a7Zw/ϥ#.O T_d1nTr6q6ˉYxsn5Nt`KٔPI98z@ D[LMz6lŁS0}yy.@٭; &V$-nyTty̙pX@*NĶ { F\au(T0,9qu{ qo" 9 a1 Vx׃fSw_4(rڀQ?EC)R$Qx^5<;"5گ8-o\=B56Lp{[6:|[ִۯB|ԗH3/0.)Q:,e~2O@qUQXHMvI,a= f 펟DrX//5[90zr|,U.8\G9X7_蕳 .(6L0th&i; ?d_!zS*i@&u&ѳUK=f>IH$oa!>yڝt{^vn]r~gaH׎% L2gfsҔ6!HݞY9#Sɥ sjQKC|0.$KNpWiyA!*uLw )(Po]?| }KZдv/`&MYc(l}m %legF⃑xFn ЊS܄Inc%Jw28[a7 XOz(R:r(6 -3ʳqf&m=yd5; \ ǬGO= `F8<'k1D-hk7RW6jc19 êB|w5>m$;HwdLIa%U ]E~MҥW8YM؋@`Y*Bn%]Ù5 k9 ,w|78l婰$- #s4΅&Sc yX~Pam0+QRUBSilGD귺u2 JEFޝ<+bD\_I7-IAєâǢӄ{2?z`34w售6{f.'ʦ8@Zwͬr liV[`QS G!SHDc!63<(SDHc3O y<8ЪTy;HX^q8 ^~7TT 04)%16 YSw$1^؎` N3v냦H/Z!?yHHyNڰ3>&yK7$gV5غG@&xw]B܇kf)EZ`2'\ӝsގz,hBAג ݾE;E>Lw>PL5|&2*nQpro1]VUaEIkvUZܧ0i(裷^G;6:U)R.l-1:fԭhb}\Tɲ To8ϲ| b7] yGT1{ɯn=P%<CKmRL:N3qv[WAadK aOx^Dn$TP&TA0ef~&sX@_U{=~hr!Tگ(]BWٓ&7c1OqV}-VDF!_E#>?N6՟T*" oZ/A5UD6SUåNL%~07K mW3NVD[Ke 1{?6U^] h2'\O>v^z:ob|w.hd,k~94Ae%Y0E~,N 4iDOWH|IxY&Nz)NEõjQiѱ;?80 P|ےdtQMU,{{ii Bٛt'kb  }'\ ~KxҌSz5QNNS|{{_b *sf".O&oex.hm@G!zlwŁ4گJ쁜ܒGUB}wA>6aJA`ȃwOIHO|S7>{ NF%Us_k!,'?w4ƓܐnH_Q|eUʦ&V,9mϏ3R6eKC{[U~Rgi CD6ZW尊(v.#\@uᥡF'>(ҧ\k(\Q~|T_E'(cF ꜣIriSo s9ꉯ 'ZXl}-+uLx-*ՋI=^s1V3 0O3F3Ss AQPZu4&՜7G(AmGhE,5z'~"KG! S.|"m5hJec.f/m.vLàA4/vx>\):oF c'},#"$} 7~rR>IRx79~wp_éLAF#ƗͽgaAYam]Kr6=Aq>k}2xa7Kr`7w.e!ٕG~S,9BhӃ.K/j<Wa,*v\3^ЅiyB]N '/H;~eEH5QX3&QbUIi&5bf4}wpgѢ^ ٳmvp:42,R|ʧ( m?[˖I֬~uKEzTzGBMހ1Bb@oK%o NHZGd:w_j^GMBX9z_E5e#S2麨׺;r~W (tf)CGv-T8;@[?)y;N7 N@~S苐#ܯ!}OOSf8@"^4ͯ4ߵ U%Gg6GeJӪ3W~|G>HUSg%o)]7=P ~էq-[5]Z,طyhf[X4%D+}HqvW" 2;6t 8FhgaϬ f~;z\B7H7~42] ib `v]_#xy_b;y]N#,2'U Cf\ja! K4dJTΫ';Z=-EucuyAN u~/f9׹ˀ]B֧H5.*T |U) “suR4~q8F ?GTT̑o(CU*wX.Q8sق骜P,`kzͥOh?W 0ha`{@(AobuzƝ[ lΌNT9Hӯ #F/Cmy ]qG(-4cHb YbH[ˤ? DX?Dd\g$BLtFIIBk 0eMgxKZb_- 52ѕƍ@P/~ق\2e) OO-7JjڧvCJ#s7OH-nU_eq7)q<9Bg=?X;O['LhJGsAwph+T'f;.Ypw,Z|T.KöPϲg*ט|k:l{otUs4b:M}nU6M1<o6lы*il7Y zZatE$tY.21Y_'ysTG2\tDO?V$`qgAb]W6S^6oU7 *o|0Hpqu}2O00{:Ǜ s͎!aSPxHvMJ{ [Fp.0S5Ըs)itgKmgemjeI!g*غ$:qJԈ|@F3(nxX&SO~aU\g tϷ.2e &e]j,0D ^ͷt5Ob8z^b5ryVn T~j!dGu * 8zqEHx|yg gCFd'VĞcܣ3RbQ Gbɒ:ٚY9e a'PYBlO2S,f͕4hlKt҃h1qDް`Ϡ~Z a*|E5U%MŠf3Qy$D:@N}XgxSH\=WxZn{>.1tg౵mlZk+$͚j.)|"O^} 9`KƕhgLYm !pNLCr'(}E@@GoϱTkCR}T˴gj/cg6R7 ϣ.*|F҃4|8kme% 5 ,,[d9:̝qz1_UT2؜pO;_L/>b3Bl<+ͻؿi=ni5oS%\v%@ 8OfzB ٥+p>0V>'P\ޠ)1S)1;n8AռRV(Ώ߈gŔUj;SV25~1=vE;n+ Ti^=* ܸfK>T72O3Pxqp3&WRW><# fJ*pIH]HqXKIHs+r;[~\MԬY +{Ra64 " ݹ ,aL-aqYk:*-Q#rѸ6S}{GY[kPk\buX>;"kG8BɥΏ=n LݡcJjHȈtDsEBi^ 2{~&XL%ߌ ư8T&S~_GSj}z}3$mtAaZ6s卑SQ}OH Iɰ+h> mW- "la OrPשJ4vy8bNy{߫V~-0v ( ̀Ä,>$#4l endstream endobj 538 0 obj << /Length1 1400 /Length2 6158 /Length3 0 /Length 7117 /Filter /FlateDecode >> stream xڍtT.)]J HЍtwJ 1C tw " HK( "!ݥ {׺wZ|{gww?D%c+ p.^n@NCCEs|LLA@ #} 8T=^!1^a1  sȃ0_@>#-A/R6`pCapd 9skͼ@!/_S1nn>~ÿZָS0kPVD ưQ&)p6GaJ^Ϋ9ݼ4e]s)nY%NݝN]1,.2xcO|IzZ:k#B*E iOYl,㺅IznJה2[Q\Ï4 p~juwi; 2reKy9]9-jڴf= oejIvUPP|9+չΡ-J[: Nn7ԏz~vxr3G0~AᲕBKZ-%BIyX+fjXirx3!a*q, f /A GY/7rO{B+yh_uwqnѴIDz}i3Y(b/*~Lr[&1|yrEa򫅧r "@-Ix=NMW^>e8s&2#o7IaќO;wOUZ@/_Gdbo̤emrT`eZ6yh2Vm_/ wО̿2`=d~ #f燨 DYkЫ亖)N+FO5ag٬(r#gC8 C- iL5m\d;dH\#aׄQ :Kߓ$;\. a7tۇ zȓ4\Ӟ9O)\Nt&",k2ӞK֏y&͒ʵHpYfgՆ"^挷tꝧmKA>%d6>_S_u%rrh<X6Tn_ρ 1^eFꉰPx5HPzqm-y5xs\Gw0VۊH꜄)idxN\#WD-1DZf l|Hz&L/a9™g+]ZB;cB͠C)Y;WNor qF~%z`SW?@DϔM7 tClڻtk6^xY΄ 5rMBlB5"wVRsc7gVB Ɛ@Y6͈J6TkQpClndJB9Xq6?}o ul{Wݢvxvtz&`y+xS]ËImdzn?6XN aPQ̧YK|w@Y5w<}o"7(u9 o Qڜ!~Eiت9Y ?@DU-iCt2XmSCu<7vzA=:zQ ?|8euAJtWZ k6h.-$clW'AXr/p$q&e]qM4 Sۡ+wc3Ѵ&_zq 9 LY?gy1C33+"ăç&WnY{\羝qKoE3%CEr/>6V|T(7xveQv۱j>fꂣL耿@/!zv/Lr]$_Y$4^|<Ŧ}_`̼ga*ZĶQ_ߌ]R _DcsA-cʓ>&Ռt+ia>&A"w+c OZ"bT1rC)b1}̣ѽRd8v>~ htfV=B" Iʌ)xXc']+9|]{ԶUEPQx#XbiypGח]/c &)& }} o3&p(}A{|br,^w'hq>L^ӗqN-]iу< #"'R2 |z=./4L~CSSʗ}VyU6l+_a|TRXXh֪]ہ?cq Eb`%enIkL *&g?V:Spȳ* PA|1o- \:b;O3P*tzmzbhn(QڄvZd*lY7̧_`1FܖEΊ窌Ks`Xr Cte̱Ն,׸;dI> O.t>ARʿ~:9W,;OUB̗*3uƺ2Dɪ ^Z(.tkx}QCƥ̃`0z~]io3;PˈX&tK&p#ad/U"F u9qg/ ċs $Q:t?r ͟gN˿+QMxϔ6qqgik{t;\+c?ƙ[57"o LZt qS/C|uBTq6R~H z2R -ײ mikf[wOa4mq^t[1^G :'22d ^d_5zMϰe[ gݚ7P4ƥڝh<)5Md$A:qUӧu2f ܨ{RIJ)A״{? @1TfWF]Ff)|^o(ZzO-S5͵.dpf"o~ *?:kYu`WJ/*%vYf0GӦ "emZk⍹2 f 9d`&댺^ia=9r3;2/{tqSG3l+MUQsT/DM(ywb?yDboʹ}ų<U'oDLE0T[4SV|<]C'^0׭OR3B,-d R[:K15f1|(zu.K^{J0|)0}(pE9SIc.뷧э%9kaz ϨKWrl읗טUT?sbrqj箣U4{f&a䇂WY7Q6%P@W'8!۵ \$lS{[(O!)=E%: <3]0X~etɭFOH#4G[n+>[ MC+!N -X3Zb+e\,9'6Jdd#b: Vv͵{G#-&g΃[< lJE{FO E3{8xݖA`DTbD9ҠϼI,A7x6AߦJ:={_.j  nӽp]`vjrm$NWq tmƕ* N oHH)ahR~^M$oM&̶\h"j&8JlsHE+bS*nv2=-4ߘE2j*uIw#=jJ}äM.HQl+ )GiyAae(_<&ɶYͣ[зB"1l$y3q"*`Eܻq$I%:i?kH`W\,`c濙OlDJ}Wf=O8}tQU=wd9yִat "2/:Ъ8`7}Ov,wCK,)[X6&$COwH)[f&C(4Di!-/aSp<> Ixc,$ёq˞WM;!LE V߄dՓ_ލlL&j_O"|ȡ#6`'hDNio +J1?acm>*6j8+EgҔ1C#pÔtPyN?u cѷuBCP9iɼĽӼ$giu%ҷwp:8;%M CQqHλ*fIe}, RSe4TD [HZD u֘>=[e㩣A64tn;aYgYcUkUNYE~:o`⻘y=ʆ?:)d{JuIpTq&$⠰3.YsSK+Nm][cBvD^?KW Ҝc0.܄KJVZ\H\ZE%344IƎĈ; V+)2%݇Z"\ iﯵ[M8&q4h~nQ'2;w$Ih8Y&n5Fud: L[mn/)9H n,128?5 endstream endobj 540 0 obj << /Length1 1520 /Length2 8332 /Length3 0 /Length 9355 /Filter /FlateDecode >> stream xڍT6N tH ݩ 0C ]tKwwtt*-4[o8{CJUU"c I%%9^;;'V McjC0ptᏜd ;Y@W/G[j PmaG ZI[;7q- &??/_q (M [(_),p;66 h`.p-G3a23 -@װ5 Gj9>F8L!r;쏳gANwDP_`[;0 3A!E L;m`5q5s4qP-Nx0SI[ >)ܬ70L~7adǦ;Avy0!p7;/'bXNfM?vagk0{l5k!uHLlM7vxG =)/e؀0[cg/k) ^?otA6#Cp66?dq+٭՞cb1?ck"oYrY%Nº9*zt:g0\HO[P(X+K_f|=بs`14y@EN5݈ RСA"ŗ=؞5]s.tE2-m_ Mk6QCSڮ0b\*_ /tSt;mqɥ*rn3 Sp=_I2`-LG يr|o_r&Ϳ.HmwwIaIKTX˃-ݥX5rakH<,G䫲J&>cCWqoKúcUM\&4%b",y?.9d0,4ל0_5]Yn5;?ewZ=dw݆Df(-_} 6jf(À'i>cX\Q^&_cjqyƊCq734 N)HP =ձ&8ndSV5N c `ytR Ov-w'cbqe*y ?" [ c\0$l}LJ?/{H5:ss0<}S٬U9G C_?-;3~h_jhHƜ/o c9%=݇y`ekS,{4y*02Ի k݀ 3 Q(?uU}!M{6Ij>,;Kʡ&BVM;vwz)0ܧ%UM@f_ts1":+e{2@U(r6i8'Oq޺΃^>RA 3sVDsXR!`4}Nf4uXV}꓍ɇ_wj~PK xZⲐ&HB)b兣HhlE y>9av$/_ &h/uǒ}`-ȼ hCX}:󖃲׋UE~kf"qGW1~=eF3gE'f YbŠ~6Q`b@KKX1ڶRmsi j;m_B;:޷8jrGw (QJQWwflk2Q%Wqη PN*"^ {v͹>;F.ŎHGG3ow#)  HW[WP:+zăQUzVtss}|#>xALDH ȹAV?.>1buYh?F{;tjMnz<٬Oql>{2J-bx\Ǟ9@GeI kT L^`*#)z8@Oks}e>J)u Z 3>c9=jV(O|6m½_5 QH~p^w9%R z(y)Ip(:fLSIzTge^kZn[xdz2YF1B1Ci[60x&V }iޗbSoU_NyF?MӂnywRw$7ڸp+ D70TbV 꽶ҫv`Ռk8|-o-H+gHsb4/iB[>hw\4Rzn ۂoopXWNVoz`9CPa]bY?£hjFgN{m\۠q\(fcdAugW}4> /ɂFP`)Ɩ|^ye6E!סi3,:ob8jsnU{B5ǏְϠ$RcDA]m.y~n{-WD-'RHn~QvVؒjuݸ}TW-h} }B˫{xh]yegyAP|3/d6 Ui>UT<ᯤ IvR.$`m!͍)SՁHN,ai);{-TTצ@vLr@%| $l0(d+N={ p[..7/7U >.P96|j TNme&P0(G>xjA/VIihKsY>aEC1f&@GWlav>EYO-xX6n Byz竉X$8R>)\Û@wĢA*B`*.%A{$hd[xA9q2C+AFtmʟQ(?X??:o%ZK!?]{ЪQ_"gCm2A/rcVXp_Cum|~',ԩ?^W ρ16Y+9_w6b@Rr.48Eŧ3RT l^zrޗ-myep."cMD*(z 8v5'ubn,\LL-zOKғ+ߏ^i_\-OՍ ND*C9Ӓw h=$={JT3JTBH@Ye-ؠӱ%vdEf6&ur6]YT}ۓ5wĩ]b| qTo& ;R'40INeX,O*}t\%[uNZl?8?~~A!dm0v`OFhA'2)71V/ggj3۾xH?'JAroPO}r\NFk淌^=sUL@S |C ݵv_yUT UXlV1k|괽4~XJ_|8'/a$>FEo?,d~%GQ\NXvp 1qI2-M4Ll߾;8*ptH_ƎuXcdJ/y]9TzN!Wb6=NU]X! nfIN2vˁu{8XsИqS\ˎΧ}ff|"FL7s3Dc277C`H19T)sW Sڿ:8X/k: vc4 ͨ(0F'~H6=/' # x鿒 `QX?%2h_ŵɓ3B:VJe1ѷ‹Zx3Qj&[& #U8UД}?Slz[/uƌ}66MedP. bX3ɴ1` aڣqNAU+COYv& 䙴$Z*CSܝq*d'vɿMk "?{M8&-RQwlʋ73B1zЅ+nQiKFĉ*6%k`-Z#D|gSsULKԵɔg˭Fq? ,H7l*L-jҿHà|8V9k^Mk,zsI˨lM "҇l3)x:dAܠR ef/ZBu'HqT~sfkzܢ12SHbJ\q~b[Tծ|p/xVVS]sjxJܤNGmaE9rWJ?+c.Eb;%wOxU#JPNja-)VoӔ9(ho|u ^?!&r@Rz3w\2ZƋMys]\&y%]HkpѻxxTt,U*ababGo5]v"<_*w=Ǚ"Fr1latnhxS *hWzV dyW RQ)3=Mi6q]qNK| `GqwᜄmVջO+HGU{-,Tt%/'vUd?{.jr\|9O.|,|S`9}5&Bw[ bUU U ۴+Zp)rݗJz\ RqNzYI~;ЁRE?ǪD"TuцW%G jFլŬLuv~2 PEE!6ژթ/v;+{_$3G۲ӈ0-ȊQţKؖ _K; r=gYwV{j*_BrkSuiTҜқ},7<~BL@vvZ}%lmIpUdާ*,13Բ$d吼EfQHlP0+D)'9ߟgI"& +i|vdOX߯j)u-Ѩf""EP|zk~5yhOŭA4tU>xINxy/zn%C ArHUZBϺ)qKG>Uq.\~> a sA׸ HtHԐf$1<9_KSa7rZ}I j"_ Z(L).}->,Camyyq[BySn~)[sq1r(-O̓ܺ٘ib?y?FZb67Yx w{ YB> stream xڍP-,X\hhk܃$X !݂df̜^սU^WQiI8[!P6.vNa6'Nn g d܀gLl ({\<.~a.aNN7' ݄ ;@tGqvqCh` tY[BjP{sFkK0@WFQ{(EˋɝN@7O wuK'tA:ζP/K7 g  pB4VӀl\\w gKkkg'Kb yUv7` mh vw~-  /|nܭ@.Pwvww7 -=0ߊи6 k( h)?`=.Oq}1|9 dYo7 M2燀i *AlBVhχ,wg ๽7-\=O? 3b/Q939y%ȿ.kqy `-/O* ?u{+?38ne~OJ}nV_Cp{N%z榝ETIzmMm|dbskBNfzJ*ygqCRrok-rdSV/{[hcjzQt%\C~SrV)YڮWA/V/$p.*c FŒw=yy5{<~Vn|tIhI^_ I(/zͧa };ikJ1o&V70w l6V8wlZ;l> yLb7vu]et30`P(#Af,go N:nTz:,xh.T%z'+A.a#,ӸIiS(շ''y$m/Ә4>&ѽɡ]1A54A.7)nŦƒSl1F?F7.yIΓUOWi[y8_(>-泼xNtX͐op7R4T̤vEV"J'= ZRҴhMP%tR&8*7 QqfF~Umk] )_SN5y䲩؄qpWǤ+线((CK`WфuOM+N&pbyQ%{DW>8k~@G͠,GI}ms:m<`RRWWU.1@b!q.On>hv.)5E~.~3)Ÿ1MŃkW "(VZe|"ʇb1Кd8ؤiWד8Z)긦w:% y陚g#βxO?i.gׁ4jk F**?:XU,d^I+dQ,0bE0DtqkpNWҤڻ+kdK$Z5n'ޟ D!Q禳KV&IepT+&]HH͊gNkf.,6Z"ѝDhDׯEaĪ>3/bLߛ"b -Jw~x\SNv~jNݒ SyNVts,W9l/2trRL:Ҫۢ%G|%2R+` vtFYCD4jj3c =ʞ|!KnK;+d;Lu@$!˅xoKZ53w[Uƃo ͍G p/*1u5.=Cnр ./C݂=O߅Z^\ߙKT\Ѵ%!0+aԐr-]}}양 ,L vUk`4EAWDg1UIj;l_߷āvV?.Q5LL =ZjqU J]  f96q,(;yd$q'%n9%m1j BJGDY;56R5^^LTuk_s$O#NJx3"1h8~hkan`~l+=3DHBB@|)&+?͇8Kʣ$E;1o,W5Zw|IlO&;e :"pTE$˛h]lObdq7뵓`F ) pŢݹ k@8ssJ7|?G׸$x\ߏ&w?޿Ϡ6 $PyցA>jMZ -H\Zb#Is]$39R5!s2"Lj>~]+oX6~%Z ;y? ޽@HN!SF"\/~u@+qT>Y{}74]+8O˵ЌB nI}I H y۴_{4r5 >t1.qXjUF $h%w3,t Ols,B"ttkԛT+QXS.{\-ճd1׳Fwhzr9珱'*S؊ _a_iIb+ͭBr7R>1 tӷgُB20I&,;uN ݂&WR9 dxelBtI/;YCcihu~*u+ 'fV˝( yzٰ_{<׏UWsx/>9I='=?ZgNm+tZ;z>_"P5/Ҿ#.%<'[P~\DvZR L9,DyQ!lɣIK-;KO%RdxRq6D'XZ;*[4zm{EVdAb>5͚ D1 Wh5P8ry;QtE7+Tܸb]p$Q1DRVȔ}ԝO$s`ϡʠ(F[[ڌ\[m߻ QLjF~= z虍%tv{A^"/U4LpT285Ͳ6ETutV, fbf b`$hbPg=VSmg_Nhv% U~<u5Cph8Jp(Yu;KY:O@ vb zX2ʸ#i?c-mf1mϲ4»+́!{mcHel Qkݾ銯L=ga(0|7̈W7WJ8PN!d &m(J. ب;~Ď0)<<$H$0)qګ3T3WHG* 初D\};~eKV<e۶NȞTXbW+RK%ecpw-pvWOܦxFrg:\U_>};<ĸOH?`;OU˄k**>]ܺorR2H-4 \Aa N?5.jfy#J]cLrsR,Q߾6]go{~ykfBhюD:w y"}iVBw2ǼU3b.+XWeaPI k ^Z]YIq&Q{M(񧙜5꡾&CB~^~]t[ I"-*W4uLv^>\M&“GIEm 5~10!CJě1RgX pC|0[rH'iWqu[x>61yVu"|PqIVҙe1ю:aghS4RH+Wy]8&3q6pW+z+F91؋kt#ڈ:ɫ&hG5>x"@tz1 u}a z8J&a;Wħ 8'Lf Py}{O<6?_j 2ɽ~}΋?zuRxƁ&k"A=kzwgL h* Zcp%w[WgrUjumKZ ;xOtйHO4&+2Y!(';#>'G9pK=FTW< +{vPâՆO_~tZeQCa2 ,Wtը͋:|B75oK2?,mY -0~az!2D&nPr+2͏'r "e$Cj5a?DR}<F2d3R!UMؽxGT3cX{vLQSh`|8ç{H˳$>ijh5):0ފ vWDdEڢxf|Ӝ~c^$WӉ.< 6llH>bj(`PVw u)>{lLّڎp PH pؖ\ V_- ˉ{.whBq) 9 x5 WjX+X$gy):P>q__ %6|Txm>/߃ ٌW[B-b!~8wVMvMe}T@L!5BiH #aWvpIXUV'f MԅCX0KaC#汻K*->qg|\m@__;fЭc\ ,B!_+2Ӡ1m)QY1˩8[/ K|O+AC//n.p]BDONz~4FaB m,3h*56Qˊ5Vޑ}"K );38]#=D'M7Ko8,NVq*%,@5mZYMs^S nat`lQU"*y#qb\n'vR,ic\Uj~YELJ:3cR7 ,@NTꭶ!yY1gϜ^ę\ۨ҆z#zg<=}Q!a R8%Vʕ5f[ g3vLR$u}K^ϻ8O;gY'⦾g^[ ,@8$iqЩCE(TM{Èg QKÐCJֲ@gyVN̢E c3 2s5VdC?ֿV 7*V̤DKZt Usr|2MG/U:FҫY*YlS\W=2uz{D[4l$b0.ɸ21zn삮voUDUlw,4?b.A4e9#iL٥u:"zWkvGSTK:6[@|$M'2#0˞֙?0*ԌݯiT21",3Ug=ў)1z#u[,OUt⺧?xWyR{ c7!(#R f4J%`f!v̀s W?if XV. Bؽ)FwZ*G'c"r,rxw_A,N>kC|c8c* 4G2yxi=0LEU77/z=Y\iZILyERD] —=Tp,:ajn&)M#PeyvJٕ)F}qEQPU9;\(CX=4<;k^\aY}E }2sqӀU[6@G89zЇSFZ5k4_5%=t{2 `" ċ'zFj c\ ~7I[r+1jZ?g^+ wd,+XtأUW*Euc'F9H\Cr wjIAe|veivȪ"x~sDZt= Y*f^%$#4ą1nSvvƞMI?[ؔ{=O]{]iFei^sd+kbVXTG0+.J4Xq̈X)9d˕I$rHD\gNS뢗 #\Ѳ+XjM껓|IL42 n vw ][!$}qdjTul8^CpYQGGbX8ΆA#9m,[0-\,T M(cjE|M]=iq*_Xʼ .+g8ަ4P< jB=,hq-E{Ώ#1AG>ḕQPJ/_ leE`Ӝ4t,پG80Ay)-ItF4 NHW}2p_8Ps+re_ prf?QABW[nw.yr86 #)=2At8X{?b3?jV ns=6hJ|ShX1Q[#]ÑOB6"vɾ-j?wN~zcl~U ="T jl+ŠGI^֓x¿. '<]/z;T[v5 Cnrf}aI%I"?d}f}ّi՝ve: gGOL]jx˪-D,5[&J?omWg\pAn1u +GH2hR;\h&W+lzl%ԭl4l)K/Z: GyF}j,}dUDZoC)HFtJ]L)ED^W NM̡?|5Hs|?ۉ[6"w8Tpyo]>Vؕlw +;EqNn+KRD?Z›ҚgZsf /ze[8ɚRˀVɨp} 5P/tA日bʜ f НX묦-"a7ա+yETOs[o*K:}&ǵ L9i_G]v4bXP ١/a)G{Mph"].X!zeͦ;SBZMGL6uUb79H߰> stream xڍvTl7Ci60`1rR"! )"- "%!!-%)y;;g>04RrB;(D,T3`A DZZR;P F( GnA=&h W^YW S"}.|@h {C߅ x? qG|QNpo n.c@Wka+ PT tFx˜ reA~Pg;q(P]Wu>0o'GBЯ0&TH$O =VwsvF 2C!|ZY ? ` ~7 VB~ChO3x`}~p ߊK脀ap Ot w#&}sq pA:* JY HD@DD(;;!W|Phdq];abKc,m` M.7v [KhHG_z_}18qoS uՃ;!|@q;rO>!sC?ٯ@hį(K*; [_~m FāXn    W^ 5O uFĤ C !wOJ4GJi}ԟxϱ oSN쓍GV =Tf#e2U\ > 6w'hҪ͓+EiX@wߥP]>!jbhYGf6%cmLL֌lFnbӵ>aK l|cE?jN,J"^)p,j%G jTN?[=[/v>K`+}zLRkKa\rrRLOk0WrD(؍()ބv;7Xxs89e0q:y3RAm,L{Cv5,51en͟Io +=pR8*IIIN:GO wVJO&y"ܓv8eմUIvX쑹);?hi43$j,ݠ~AD5)`Drdm+FSбPܸ8?"{do&0 r2z0ykf%_Y5n-KGZ\Bz)C[sof%\v_,M˹*MW~ nJB;N5у-6TW:)}Wa/xrǵNOna;!UC-[T+ J>mؕ6D[~w~oD|8A0[g<]9bD=kEΤ@ѫ콳IR ?ZF{ֶeV~w7ψ{LtnFrmOvM F;m*$Q.oe($V{;h>`%+% Pr~|x=_v23jLy^-?sK./GKl!ZQ'!ŊS;v;/{yިpq7yQ̷o=1 $ lWeQɞ* )A$knA>dZqjfʵq&I6vT̗ONlsݖ UR5i+n&OiT6Y5W]>9Qu ȕ^cV?dۦn\=6 F+Ɠ~C1kP+.Im³z@|w8MMJco3O82%Klb^}5v,]&FwMDV)^]>G1cLe1$LNv?@VǛ2`/.Fg 2^٭tVEx(Ezɢ/ t9Vu7{UmZL""fyTst^O&f :&"<"՗NU}Hts5#ɇ"ĵ)W?o%EP^-eeժ׀Ωz.R;0@15ϯe5xN ZsgVm☪oIzo`gIT'+ؒ }:r;-LF+dOs4Cھr aGVKX^ɬ:dG-%fSje3\Y<]jՉnGi\)'os_mQA G2x==a  _m؍fJܕ'lk;umv}CwVȰ hVԧ 2݌D2e(aMr3rU]tDy y`Φ3'ɵO-Lw-svӄ1/߷x6Xatiy~x_Co(tL.Wuˁ.g;O#r{؜Sy). fqʟ@ËRFr+]|QX2D4*tGx"x%-ܾ|R K$,şsj'z)!jRsċ^mc>: ~=M\uՄXzK^k(`\kjDAT!}LOW9^~kO~qu)e% MJ'c#z,A'&i@q7Tn'C#_L6irWbHYH^^ꮹ.}aKȞ~2y(K㷫餵KNh 5(fW$F. x:l5;FHٻo l%k3QV[)%b6a7^%T1+tmƜt3B Moj$=>䪂 >4*~ʘd0heb|dWSmDUݾCImblX+$ Mñ yp Vd<: .?YLSQNoYX_%OQ''><zGeoV1Qy Bk[-PZomJ @kFD>gzG:Y3C0W_rIW_ v]aZ|K3'.%GtN(M2vkBD,]|]y7yƓ:a>r` ě`zFO}4 =|]B{2}V}Hx8ާxQ(-&6\57,'WTʞ4ڮN?wg{a :v;x1c 69mFԿJvqO8Y=p̀iN|덒B-{wnA@ ־lk(rJJfq]} uz~DcZ'pړC: 6SH<(}y20Ԁ*br`zˣ׬u+ ҀMvb3E+&1 T ,Bծ@z vTkXނ?H,J_;&\[ygDhJ~ Φ;7+| d z? ,VQFp=B.+W u|=X%4"@2h H],%i}'JA9Usg㔕lc)IV`K2*M6#p88 oȉGPsX( +Pt,}R JԢ|q+^NMK@j6FZy,1UK7ha+]ҙ:dL2A [X'!+Mf=?69)>6SThBW,?Ȁ9qK::TOptvcE},0*ș9B(NT8s,EJ% IQ 2^p*X|άvGTvf8ct^;բƭIϠ ^܊ ^DC/;>H>E`;tL[-ը=9ȇ{6TZw{] z(ؿ5JُBhjpg: |T!fٌ@v `5ҳEI49|6JQN2m*a54aND!~2 /AV/vgwӮE1ز#U$H狎&<Eg|a6'HZdK+4>ލbL&Bf} O.>sQί&aeJ͊|wهѯt:Gfy~CT/GzcRD%<*"mⓏ_~f\ {Àcd]$::Ի?<|1{E!9-q cl+:dϝGdKޒW£G#˵av"BdTg+|rɌ0X KJ[Q1]ܝljpƤ{>UP3w3 ^KJmFLBSP{ q;hi#J(|/y](oY>{U-)eEߓmR'ZKđ:b{ ߧ$j[ėgS#W4}kMzko|+?)V{aM1l7vm9>-2e&iE8*c Vm+7t;\eBks@[QtS6+&e-{L&' -ߔjC5W'қ^1}pXJ훲ݴbZuB1Q^zja?!*D`{$߸=(<ɪn&y Ru ?0lz6/MN\tZDPU6 endstream endobj 546 0 obj << /Length1 1545 /Length2 6941 /Length3 0 /Length 7980 /Filter /FlateDecode >> stream xڍ4}7(B{AGMRjY{լR(*{?s?9{rN^k_뛜+9# 8_H( P3@ PA㳛C|P\4T| Z Bp/ $@ߊi* h#$> +BIII6(yB|`BA< BPr%ByI <Wyn>?0 !>~g OȟnP_  #&pg` 0RK9!c#<@@(Aw!h{ 9~+@ ԇ@PH$F_nmV; <=!pW~P@?#\pg_e8z ޾-?:h?2W @^o1`/]$A#A~OBBg(pBxG!.lh ^yC3{ĂzVJJJ Kā!!!q ~ A?y+]tN,7߾hB\(߄忼_`q?8 f/ z.WAj@mP/$*KEC ΆP/%7o0(b@B0h+ 0=зMC#-8 G} A86k  | V {@з L쿱(tG ЩB}[zB#z pF_&7"*|^__}}|Vn7/#21/b:/?㬭w'Z ċ8ix+;:Ҍ>2\9}]YPT>/~䌠sxIzfHhmÙa1u_Wdn䶵P~F’MzTؽm5beKLcke6y|ܙD=p&9w7DKtkci)Y GӇh) [bg*UYeX?fK_ 6D5kmD38l~$iKOpĦ^q6sX'+æb4v7<\nI 4Es0/MH.K&9ᩲ!kbJ6 @NNn;zOh%stMHo퀑r&2ղ+o7UK-98AgR2n\Tm[CZQjq5\ؔtTw#G}Y"r*ǞEeIFMR5BҰyרmT'#Aa<{nk7 }Nmh*e/jGj&Hb~H,܁2̶o͇ۧEJְ̞Mc]փ 9uqfmh6_a;hHƔjZR:TR& t;O|z\ZNٜˈnEz4zVVs.ޗ٬Ջ &7W%&IFj `otJl%6^jx1'h` cEK3Y hi &P pmgM׎o%VqFZb27Vbiv{- ~ /D0CK1KAxqvihy\۞2y#s3Ƭ6\M9zP8ʅ]/^ "e@oo1Yg=7~ɮ3v-"F`x&Enҋ?i8f-dr{ƾ *rݫFU5{RQ(Hz% +D2=n *]BvCe|uPc"_GtLf̂y͊n[֚-YyU˰ Tif F <Ȩ:. 1s˝5<"?R#j5LT#[u ~{2iScMݠXq/W3:6LvՐ3Yp9A&V7 == / ?jwBM Rt1#ӏ.@v&g@O3Dh^=%?9q7eOr*U5;zjp)©rQ0|I2N'MNM r`\" " V,}%u]Mxm6~ &ԯ8tcG~|Th_X/|ykb(Tgw0G*e丑4u1<(j2g1::GLYuN"A i2Ufz & Ýv_`J8| V2qeƆ;lZۥvJVSc={ a AиjuWt%DNGO'Ku5v謜r|.]x YV Ao,ڑ_HfsMyZ00uV2.%vVx`IMm}Cߢվrhcgw}k\s‹$@L/1/1&?B<oT}젬)|LLvZZԟ N~b +]opoAjxJdO`UC< nQ]PuꫤLސzvk`Q:.A>Er?4X9EGc-\=4}Y A+-KA3}1! EZM.N7Y]lSl݅u7Lh^`F 'J&4=@R]ʻ1=h.4%*S؀7M5} 2m2yy#=>=ZsUM;I;\|ՑwK*ˏ*FGRI>sZuf:gwp/x_|%ʇYcD]SV]k8/BDIEI*|Tޒg'댹cɷsie/ } Ae]僇(x 6%-8nj O?tQqprS8*y84W!kλ~.Ufj#Zd9= es>GJy8tcVu.,h:\#O9P9ݮ ~"b)]!qVa7<$΃q@ F $As0E®4>rIZ:HY%\R6Jm7:TY^%إ EgaFuO2>&`;WR zj>y`ݭ>-p3D#7zS'9#HFv'x*16IմW+'յe-1J~.XOJؓpt崽n?k}"f#rp5=IKS ~겭\lڡ jz@SKrt vE$v"tDs s(@퍆oV5>#-k}VQ" |j0pHiQؕN?[Jܣ$D[v p>qS*7_'K_&0,h,{ $=M=clM=Зu 3jS|L(3}[y.EHJMr\Q&x8쪁ުmbrŤg9N+NN臒7Ǿ D'R/j= b0SvC)-mi^Tb*x]XӦC|ťGYIUegrb^Y $u D"$qfO8-)x$pr$쎓< JRr!̙Ώf,U ?‹s.KZc ud!q-kk IKɧ2F)U"{x4F_bi ,r08ga{/Ei$_QQzhxw-,r;ן_8 N_gb|A1VL4jT(iE~&D7/Dҵ :mN뙫S~Nzh}wjL]Zj~vWǖV4}:=H/Mt+L"l^DIxPdcL{0rCiʪnn-wn->EsÓoǘš,kB|Drk_FZ:@lp+ƿa*A Ȣ*05jqEmKƋUf ܟS݋Lc#^WzNpZ8Jε cO ܚlύ~0M螖Q]x_m56ak̖ZxlH#6 :S}ҫjVf_5HoR=[·mxtG&0"3@*-]-jFN>Eqb9..&\xTNAM 2P*=Cg$<&?,&ȢI4Qwpf$yʗ]= L+ܦ7G|Jb5,uB;RI_Fe%&zZ0 $Ȅ{3ϑ>j+4#nGb(؋r8U d~)34%NaYyL3"شOk"CHMZZQPkT~ڠILbs\Zs7܍IO1V8x :mn\(W կ*.0:cG׈7udOTlV ar 8̃wcwp$ϊs3ʡbeKM؇"5:z+t}J(T2@lYT:µ w٠+ls0^Ņ8ZZH6DӳRrb=P1H3#p{49аNGsWB}I#~ڲ*Io^ ]ps؅Rʴ)|o-F:|p{yl5qSV1)IcҶfܥJD[ O;Ɛ ɉ`7*?IwKT*Bt(n/]v;ݢ6 /O?W?Y+\2z{F\uNRY*{-J]\$]RoHAM؋4TC`v4m8wdO{\9^koBiņԅ﷓l -+D^NيԎØNT*&':vMn)' `Qa/Cr#z{'sYŠ/l/mQsF. ܾd36hgrwT)=ke)9s>]in(A;v9)fO膹3uOŇ8G7>蛪E~&jeaY&VLDzě1\.]aW姓{ށ66ryI%n#?z3aU]kޙdd?sScؘ-XX6Ȩ9(Uy1e%788=hi^?F*&+&NLP'RKQ;?war1)ƔⷝgTCvݐoH|?,zW~kIVhL8fDLrf=aM" ~$cTX[tWCHBdȪߤ$R0`a|uyZNzW.>rWtз -8KJKn IYWON|H> stream xڍvTT6H$$aAif!fC)IAP; i)P i~Z߷f3}}3RmhFH T $D !1.091F/ Ta6ha]1@DRVDJD!=dUh-4 IΣv@:8bpDdd@%WaG+nG; `C"0' {{{a`-~8O*Ё"T&pC=p y`Qp0Լ!P1;__0;; D9H~ ü`H-w0@]I [ D*QW)*hWW I+?Uw:B{.("X7(;s@` $p>v¿!~"`\nh7W"i{¼?W""ilH`5HӞN^p4?+brGHO攕> $#.KR2"@?Ued$;%|gg,4N?H@pov W;!uo70W_fѸ)@ j#HnP8- !p:Cb(~פ Q='ף/;g'7=W e3Q I%$*!-d@Bcp.@Ab0W3_o\váh8nq41#+׿ֿAؑF݌ph=VbZ&^\nN4덒;!y1l޻c_G|,2CngczWw>r@\YFG~Kg b2})-^s\f p i8X1ڷ.Śqr/c,ixXc4?Rnc>]}, OLř&!)S'ġJIju 6R g}-IbzP ݠ +_bK9"]աHNp>X)k4;b<̒*9 _Ip*j5R oq2 jȅc2Dj/cloa TPqnL &|?1{W 6o),m4X!XAlў]HOm+lYn>6b94ߜ~gI&{/ua*6ʒQ*Z+{4&&5i۳.ëO+?e!2R0@(*˥j./ɗ,b33$̊kEe]x \.e*1le 2DD)A3nIn' Mɼ 1sZLKUDs Yd؈ gu7-{'K{ŧʅ+YL>CJźD[`1%WIyW^eʐ҆bf?[UяR+ 56CT㤛9L9$?~h~QSZ'55M{b#)njss׳b9_ۚ,h nj{6 B #-f&A/h3gV`0k7>>M֘w.!' 9r (~qxHF@d Ѭ@\{@lQBoSl4e;FHƅ*|7qf`\x{t/fڐMvv}C'Q(x%wœZfCu+5.y4d|qnGPrd{@G]YxxFau4=hOǥ݀TŞŇe)2>ˌ4ѵ.]k9ɖf7CtM)^^HPgij,Zt(MxH:*-]^` j N/EI5QZum'4], 1g :zFKqR]î^Z2,v[LL 08tF,Z??n`iI!~CP'̳OE4㛾LJ3 |P !]Y<.1^U+Ww}xV#c 8*6n2S1"H|VFѨϙ`O~72)r,k&:H~TJ>tEyJ!w5Y)?ЃկMg[? enJx)S4#'\Jޥ:][QZ=De 4(-{cהq\}O߄oNy{#ҬU*lypT9}lEPT0K59f&}'ʄu)YDȃ䐡${֞b\(G<(AlRg_kɒt~ %quff͑(aء[*i]NFR,@V9Ӽy+ն;{OQkd56BVHVOhGFo5z# Nf&L궓KUTL3 a)=Ү<ŪVpGGj>֎?g_DM FD[WQV BUڢ3#Em2-2H&KSC[$dӉ!-mv)VՆ +>yyNpAVSn=IXkTL;rO US2j7fd+ʴr%]tME];C%~ẵ^yU\ZU'zI;v4MgDNKkBﰰֺL2{q(&_)d"S\D+n{=yF])]{ș^/$)?ճf{0ëY{R`uuR~Ѥ|H}BIe~DT[(H'AJ`M[ ڭ!3tWOXqqt(ST柑eg\+3R#?uOh*tJN wK0!N4՗se_< "x|FiJzK4t\g]K'S^BI=^#ۖvZoV| lO_`^S{ztۼ0*=S&bj|<]퍁s)Zad>Su JR74O8O5ve.i`N&: 1+5V[{W ʣ, ԫϟL:_$ZsZ[[ ]ܜ!JLSi/+WڞGk`|2tOх.]]Lp(AjK 24dˌ; Ri~y-us4-ezEa[ckfrggs$;'1쎋nݛ_[;]&mrksYۯ]'UpJ2[++dY|Rŷ) HϷD=[>pђ$uvy}@tW{xEBM@VW?M5%נWhTP[S?; o)KݝBStէquGP鎱 ~b%:TˏVsrG%_QSAu:S1"QADzmsn-1l51_v`K!9PW[BU **6t&a~iwSqkQ Q1M+KᳪTZ (':2.L%S۶~ΪrѫJVppU!Bls.\|W(]T?w4 } ïgj"]iCմYe'xIa'# +\V(kNƾ6LՒl>+>e 9qРMaWf ac\O Hٸeh[" 74OW.Yx,QxM8ֺ3͕,ou6Nϋ'xemB,LABLG3S^K©}LDMʆB6 n4 {27ENwygKg0P}3̺~L)=@ ,cpgdhqaLg $mS8IF ]2œ*ϱbt qQALQ$rᫍ_@'< endstream endobj 550 0 obj << /Length1 1395 /Length2 6123 /Length3 0 /Length 7087 /Filter /FlateDecode >> stream xڍwP-t"$*Rt@z)Ҥ DҤHҫ^DP{3MfY{}>gL8tdm0%$#I5M $De8d\0DH/< `1D"jnN0,&B ( n!04< `# ߿/~w:@C!&cs8P8 <!qF "QvҼwp=@a6_ ΰ? q ?>AX ! 7 nWhw_(Axv[ !@6'4q X!%Y];PDÝ~U{ʊy3 AOAs5 SUKBd`(辘=7r |\.[0?- C惆"6p(` #S l{@X_?=pu199'G, / _~,m\U-pOcWBbU G QURrsr?g_Vn4X jcZM ;" ?81P??e5'8D[Y Ű:bh.`Xs_EigBb "a$$* c idP`SHٯk!hp# pC# :0k0' J65>xP[,!q&]O/}5_(Yٔx8ltҗo۰y[F|J6GkE@ ndtz?^ٝDo~6Mo_8RX01YxQ&K~sXY꣑xQ3hsشތG;ފ2yqd $0gբqD'bwwrv2uA!^I^D/5 !x^qxtӫ?yrOÁH_^*Vu Vg${D(J2߮|n(tnv]eˠJ_3.)IM< \?0e>Tg!b09QC#]Z׆H-gPf&Q{{$O@TyJrZI{0л=<_uDQbnjH?- Ƨ|r \/Ȗvͩ: M['g{g¸|I\ՁcdQ Ѕ>Lk7uIj[qMu>5YnTσ >(vXQT\caK &WGx|ۂɝY ݫ3PG^r81:$ҷ^h)rPǫlrA <+"S/FF4x]|qcf7 Ec/S7pc h푮!tpO=qɌ\d0|lBs"%8i_nzk(ذG|jTg,BkސЌ@tmxiӞ@nbɕK7[o@p ]3lY|NQ84^jHn]Kk]/M(4fQ*BIO%ZF+Cnn漹\{LPj1 >ݠخy38pk8s-zLThPsl 3~Q/n%1{N"VWQ@o z7*(ĤmBYbMWY 7>z!ŀR`ڷ>N-5^d Τ6y`4˒@oi ^hrθNsm2~i8ʌE_Dlˮ*IeQ9BGo,l;hS/4*<Pb~ZC87pYpDZP"Ң7uw~ _* 4GQyHY[ҏaѬ2lgSھuVSZ{fv)X = 4kk-2-zax*/[S6p!:=5aױ㉴ K>Z5=Y>n-Ojvyg:& s24%Ҍ*o]Rn { k 䊠73V{Z6J&G;@+zfV?Φxc$|/#XR0$,X|p~VS^7JAYH%xO_@[o6tf[#"VqS^3w *&E4P “m}U+ Oy8ceÌD M_d a3 shz;*?}¼|0r[QA3Ȥa.PG; WSo[@' f]1!1$[io$θ5x'O?!B#c~]/`aLMJW5| yNE4n \SpQ z$%aӫGe(/_aȲ\ςdutiBL{GEy.4>z#j‚Gm#l1;ӅU[LOTEovOd.&kޢ1';R :YB^YwK tD v<Oo Z[ C)űWsg`Of&T(R8rዺSmgнj2TwaJ[۫8f 3>p/^:ƛI"T"]V>Ut^0_~gncUu9$3hhP[E""A--Eq#>%0xNAj&%Yk߮'T}uޅDHqR9lKmv1sI<&)4Gs8J\V Q'å<#Ks^kyJ'qN Cr|s4KrK_pI׵!O +x( o85WztpM 9?  e E# M^^87J%|ό4$IyHqy#2KH:ûk'm]vcER);ՑV-Kϋrou>d __XyEαzbܔz=IFs| i@&%n1 az} ctSkǕv=+ ~rY쓳uV,3;h hV()7d6%\&G| 7q\,=\bs3҇.=J^1 ykSqthzΪTo)R3ե7Fq0 c'~'iW+I߻?:?Kj uJjߝF%:yD ^i/]2**,5c#-Yk47uG6]PWNx5%+ E6aiFEkpq]Q{t(dIdK!@:ݯ@*fU+KZ{Ɠ:`0L!~x{#VeVǘ-a4WqaZJpɒRb͝Rx!Jv*s4XZ rת7{JXaIeZh| \(^U\p 3ۣ/~5"jmΔ)\wE|x5#(00RSewKQٽ+8tjxʅIZJN-Ь`jӣY-/fۆ0lj)zF(4_L&sԗ^ytj-bESۈ .5]ҙg=3O)A]޳GRc}dFԲsl&+W-'$zx<{4CIv2 @D0W`AUa^rh)Ť~t:( TN|3czY:`wO]rT4<.0 'سm:n[aث3j!~(uG>k7ˤ+sqޝUyR;jUldsz?2Z3֌ kXp2pP+uNOKɈHz%*|Mh/)Ȼ՟ڟ:Q~J,`4+l cz-hagD-ZLf(K_ɜU\  NGS}ݞc{E)kDzfJ0ţ+OGgxSY}˙e3u>k; mS-*),У(eg2+*N&7FnhN%T8N};0&#EGt5FLҁUè=`lqpjީ4`נM_9Q')'GY^J(䢀px:ĚꞥINeU\ ?RRmK 0#QRDI& H89,O5o%>NOtW%_|4=;th_C(4b #tss>kQvwk9wd{jG )NzK'1kQ JKB^X[)IĶhg2l:v"ugw3zs|D,* ՇM V{|r ywNiQEP=tmV endstream endobj 552 0 obj << /Length1 1306 /Length2 1345 /Length3 0 /Length 2180 /Filter /FlateDecode >> stream xڍS 8Tޱ]EOQ-O2AR*Yk̬1&Q;]RNH؅JEI]ӖP.]8g h9Y]O1l ōidpqQ St' OvX"E0+pfJ gfjA[eA:j I,8c(,%bb p |8DB(pp,"^BBqWL a`%q"ɐHJ$ֆF@$e`-$'K#N8<0>.$0 B R"Cy'WN ` liMt qH  |DulW2)P|(B?OlzN'J1.%KF2 f{gD0KI %L7hاAy|e<"2nCH_l0T܌`r 1<)D abL Dp8‡?R .a_;H4!\J0;1  6S U|B(B)[re)o3b˄qo~H{| ' !2ѷ^'"v?P\L0\{kBgH"$*:10O<8t\BF1 |LBR)4$b;'G>0 sIM1eL`~LK,qG D/a@QVCSOY7;9Vq5hi JۍvZ=F*w\ɏ+ܕi0o(/Ź.ީ-/!k$%i14TbJY饹6y2eҾ55o_ݹOgxvhҖݭ)vH>Tů4,g5Pi/Xgn5 7D7Պ:3ya AM5o|I_Ԑ'{wζbAOliEiGs 2_fj4rgz9Gf[Wk3}/J9h~?Uk|4R[ٜNTش@__vdݼcp"=Oy\ظ+t38cZs2.-ӱ('5u]팴^Hb+M:wUz.& [G6Z̸9!k&lĕԭR?:I=tm/#Xa RG"2dtOW'=nU$ǃ/:^-2YeINVyé<-GDUn+˝qcxitz8gdYBR%GMܸ}ŗʧns7xfkP*3SLP~PoT$\1 w7Wu}}flYSW-*Nyi/ }xzGxVQ³:3 yFœ9.^o2js> endobj 352 0 obj << /Type /ObjStm /N 46 /First 403 /Length 3571 /Filter /FlateDecode >> stream xZko_1[ڝ0X#Nĵ8iLLdQ%63;.( y;ؙsϝg)TYk1Die1РgJtFŴC ~j|qHaaḂxJ ՘%8`NɜNÝWjfa^h ^K<1K<(B6,ڱ`52 .P4^pLЃq`K !gEr[<(<4Mpxf3KAMCWߤ^+a'v 34XlVņ=x珞┽a_~Y|͔·t6q!qb?X[^_%k/M0/Zu&yy5meF1|Bg>9Ϭ_iYG5-_Ez}xϔEeʕy*bd .Ao#pI\ 3gЏ %,zKdj- c,Xm1COGSz:5`K&RZ(Ug(;઎/h QpN7A7I7E7M7C7K7G7O7!hF!hF!ǀL7,ښ _$p64g2\(nZ`r`L(l. .SGA@!Om$ y6y6@ŒC 0duƔZcɐX2.cɸ<%{nug,Y7 {x qF,KO<5VY7,8%nYuDC54[ y (puJdiujD(%'e)A?J BRҔtD—R KpRExI ܤT~RG)Ut*UJ].pREIҋ.VdEҒ91Ks0 dc1Xy0.D% uX>1azeKwvx/nC'8s8Z MM[y9˺}oTwh!w~&t)Vu%c;PԚNءDJFt9).CuAFt*{/kj:G+Qo%F>^]&:}x-M7*֤tzGw` 1 ]c%xrq+^v_2TEQpi *ƫ d*;p"er!;panQs;s.O!(~^dKp IbAxk 6+\Fsl2J6\vZtel%02B;a3ʆXW e4ါFHfh-J`tcvF(f(Vbn*Qg\C`o !0^4ˆ^Y(x7g G|CBAhP!0!hP O6D ^PObMzk*ďXSzIPY.ulXaM5in֤mXaM5i֤oXaMZȆ5i֤nXaMZ؆5i֤ E$֤+GD/]9Qym p(]9M9Ciǡ$&r4-+}?ם:QV8PSHx7kx=wԅٺ2u-V(L0uB Aka&}h1h0 j0 i0 ڏ8Omp2ϻ'؉/!GprX!. Al#=cGUyRu& ;t-aYtI՟X4ۣq]M^Kw_yQ\Ow m;Qqr'oX~ѿ/UoxlY~Dm{9߼)O\B=?Ktɯծ1c^?~8`1#G~c4^/^٨16>}G"|"+چIa.q;/WzMve^,xXv}!oξ|1e^t9\]m?d_#K®?zy;PN9Sm[zzί/ [l};_W&9zj>W75|+g~*0!\Y 3xil`rBׇŻFoϿ>{|C4r =(qs^~5fe|;ƙpo^>{n`}ylvud]VصC)kNsɟjpޗNzs1 wcBNI?caO:#Z/=ďHH|>D2wKt5KHK cm!j,}j "n]#\5 cH[5VEAs,{ov{H?`b\\a&@57wDV*09EM^Lo&,}`K(Kǔ,{͞68K, )bHI'eP#U:p6Gd[]TE:u endstream endobj 557 0 obj << /Type /XRef /Index [0 558] /Size 558 /W [1 3 1] /Root 555 0 R /Info 556 0 R /ID [<69B12BDC963517C3C0AE3A6D68BA171A> <69B12BDC963517C3C0AE3A6D68BA171A>] /Length 1631 /Filter /FlateDecode >> stream x%w|G~Dvdʒa&#" Km)ZxYGUUjV՞%صI?{w߻i(&4N5QjO "!ďoDvIWoy Ͳ*K"0Af"fĜXjЂ#'2U!ĎVZg$ā^h٩ɕ-Bʢ/6q' "f&Dj-D0U!ďBVA$P1'}I  !BO.WPgj ׫IswU!I$"IKUEzA귦&b+Le؜ -I> stream xڭXK6WDbU$E=NEy)t6m-%e΃%YiH ɷ? y,N7w qYM*=T"/޾_2~jc7 =ZKfqQNqg+{G/,"QFii\o|"{29,4ViF/v*2)X:z]o:߀}皚2.3B@^ Կ;;=@". {u*\OD.w<9[wllW>H*$2 խ*s1PQ;&d.b |;3,'=MD-z%$'[,RQSW&" J_>4#J1Շo=cSD{ toz$Itpm}oA MX:>ؚjI?ꓓ>WNLK]0^zkkx S =ĠLgo(.]V4LK*vEbYH* zIXgvIkaa}ڲD$Uy&ڹtYUP fRdQ)dڳ遚B _C*w]i.PvgD M;>M鋜DCNѽi?:X6^cSU Ȯut)(̄]I: Uj(G cY ;M'C(GSTWPVRpȤ#kl]t5p]2F>PiZRyK'Xx!BJqFC=: "IDai6lZ炀Ud4x(@w2rR[2jŅKmQaN3"\EPe[fxcx"B0ޞ a' P5?*NQT;IJsYIT%*@2yTJ'>DN^355f2ۀeŷ1IU\1rU.T 0KZԽgwpA 1yBU ΊP=A 7PQOfhԮ%^{AX_ibn ,uNp3Pl)[+1AFez! rY淄-Ł0,?ozRgQx{YXS$oWXduNG΍p0pb;R~Mo[ aAGȅiQ.&(tC5S:q)$<8Pd;REgdT>PJõ8W@tMytյ?GN?~_1Msb5V^f22\D2а;˛0. endstream endobj 19 0 obj << /Length 2349 /Filter /FlateDecode >> stream xڥYY~ׯX 0M4mHlD8JldNGrC =u4ٞ?,Guu_~7U.D&W7H)&US!~l_}#7;CFU[n~k޴#CK9ji |#kwq7 ̂|z'׻((xⅺcӴݱ'SLeָ;mG*6t(𪏶s"-xz}0!,? ;]oP 1JjGQ#c8堻{83aޝ-diy6=NXE /B9 !bq.9q.Ls©,;Is8ґ~c~pI$1h%) <GL.d(&$KI˱L{^"tF.^d_V|uW ]4YgvUv E뭑̥J]%_xPvU!LKU;_fq \!%_+yhyL>#Hf{2J.OU\G|O ]{q^HJN`PЕ)'cߡ끣K@,UXEi2r@n{kxPƾ@jQ44VSS=.G',Iqq 'koوH1vTq F5@+,)}qgL'q*iޡV"]@0EA,zAAL }ˣ/7߻,kOnӥh x)M;J:\0^FnRHx[cxz 5svn/ϔ!a3,qDMIˡT )w{crHKZ iw)=U[u[Z> uK<[ X<[~'D3]{yd֡ qSgS ftSMLhZ3t2oJx>|?bn3V=imK7 K0kҔ$, ?{XyfqS^9VBz{҆yq?MV}`\'/W'TmhnݓTD&C6߲q2j,J=V%2 cU)`RPI`&YC&8wQZH4KUs 7SO_'8pV;Dt::q )^H3G MJ8`gU0ʉV"5 <,Tto18Ww6S*gѹ~i8LقI*6@i\GH~^*RnO_ faYzc-k9dj 0!`6L#zEmbǺ/j]S'/նw٩uU2XpcI"k(>0Pעe̿¥o^7>A endstream endobj 22 0 obj << /Length 2375 /Filter /FlateDecode >> stream xڝYɎF+j f4svh3 aC6]EEظU-ɗܘ"Eo~yk]ĻǝV%qDo0 .2QPe_Jz)Ziw i+3߿]TNÐcOZ$}-}Ӹ ξo˽pLy1Ԯ8{{ w)yEy3HJ­`Viv! FBz͍A fNi;(\."Qb 2'8Hq .\tѾe'_~ AkHqMIsQ}.[ F65*Eͷ\ǍsL)ks,A,{*+0%;bAYytŝS |rs ˦4;4#V BFf? c>A4w:hjt. bT #eԪOmlceLz‚y,Qfr@؟cC* 'LodNh7Nl݃/O,b8d+ 0[p zxs1*pFFe,ʡGH( )S6I#NTd>3#\EAW "Up9g\"0 1 X0.1-FO#:*[1}~|Z~xØa(g_@5_?sF eW "%LEz/%v'8 drsgzߏ͋ϷщUfr[j*e[$U.$wCDȽ9L4jWF̈́fϢݥM' +K&(x1k自‘%36[MC=`&-)z:[hh0(,,Gt6%@ 6h!Sn$U5B |H wKZA$ A.LҀӵ-K%x'Ͱ[ك/G@Y2&ꙗ-ޅjO+akPFheO7ړ;lr'ByczYȜ\8--HlyCXЂFFmM 킦h8ܸț3| X_%{i ,<E%xI5usmwސTCK$j.L!et0 mAU޿y[rʜ̀u _L5! Jnƕ g{m3O<%X .V;cctPlp9PcJ0#f4?n$.dgruzuKn4ڢ m"A\1a2v,{?̎5 isF_[C[!NAxV`s8ыl`p5D٭ᜟ^mɃ B RRJ~s]ͦaT!0k^$TXkjP JTz4P 'Q/Re6ҷ*eJ/3رέ\h8ᑮM8 k2N, Qlœ2Lkn3ק@O5Ƀ\4#LLCytfiP㉍@d'Rh^e#҉#3Q~`b7@cd$KMA.VYbS8Ti(h7lܼh"Hc!3,pcB]E1 i-W(袞~&拁HǓ}%nDB@:;K͓͢"v7c1  F9o?Mi(hL~5"hk2`3T"5EZ 0.ZJb2I BH(P-`)g' Cfﺦo_ippOD0 q]!%[o4yGl̒Rģ˪K ϗ hT{&p2Q.`,[^뀣44( ;> stream xYK6ϯhM͈xHb,2}Ш9Z>U,;^ҢH6YW_Qn~|#M -qådF&dm$[γ4y]խɾnn?7JmRIѳnPuRhT99mďԢGzwsCSlK#: ޮ$,Jo(*W3õ_޻̩et:Xf*۩Eu/]U*q>H:`qtMӀS bx&VJ%@+z$=`qGKCCʥˡ7$p0i ma)&FMd[LHj\8/ /c9@#7rNVaV2g) -PB B=O!f3uw7bq6xٲϵKXc9LJ&o>88CGQmsD }ib޾ljFS) ?дAwtlnn9!;~g]&Rk_;^ߵn_6-NKucnﲊ ]ZV ;/y,Pl<3hu@ +smcOIHBjɝS3G!J $۰<8@rcI(S̤AָZ5^w[4a+1rj9_<[,N d9MZNDdM]sQL!uW' (]/E,EE31zGf894lCa7̤Zk˽ʆ .UB ^E @D!ta Hr,Z,C"EbHw7qP|!PX]'WaNaY3DxJ|k~ҐK\&gO %BLx$8ap:))Qt]=} _'bҵ]!E Gb qyZGiC%R& Eܢ:L7;$0g7m65^ԯYʫ!RXL) @dGT, ZXY`x ɍb "bQԦ(VJd}d?_.tDA :sMXN0izfbqo1c#UD|\3& j, ҧYqW G[۶rEYj0 nj5>GPDH0?k , wG=@e|.8(hL8|kc>Ʉ NWgv}pFm%VR)%W|ǭh\eb% +{Db: /ؚsB/% dXu_֝it3SȎ\utH%,4ay= _ *ϥ7<:W!Pxb+W RA_QXQPH:hעMh!ڸ6s%7"Sm;ƓC= ڎφ7Ö78Z $gɳ`urYUY^o9.i.sOƴw3cӳ~}[FE6V}S9}澳}N= ~M~#t Tr 8e endstream endobj 33 0 obj << /Length 1567 /Filter /FlateDecode >> stream xڕMo6_=@̊>-adzvPl:V#KH% GIe-#wDq,VIJ nws7J5e}wUHӈQ,z#0Їv߭7" mNɂFr(AKN?#mQ;NʽV_@JGjȽ$:*zEѨwVvEjTPVXMp҉ǞFx4G`FсX6O<]\i:{ZJBqycFKSm@n7gOH~X@$ Nx ;G9E/zh?!-m[?uGtҖU4mO<9An.q|Q[C"l!I o]vc`0ˬD@NF]`m9clϷ6cᧃJzC_s;, yOv!(ޠ]<:sS˦sB/*.G$o G}BJ<JNn#¦xXF- JhZZײ8")TY;&?Ҽsۋ!9O.̵%I>5C!2>CkY rBjMuhl3OHUngڠ!ػ'BPoַ1E(*[#//9Lɋi31& Z tJz1d/6tF\0בP*BPyG<+˩2B5!]U/7+?nhWr%xd_g]gi%΄>)x1B6f.4 ~>Ga2S@@ S~e<BѤ[m1lۃbo M U-x5eSkL(xftQd y+j& 9LeH!4AmaG^f;/LG@OGџZ}R^+,K_ʱgiy$8b/}[D>څpH,z5o[H妄G[d-Z;Zݓ"uД糑.!.wJp֏d>'"d$yO%|&1>.2~],sZʛE٬{ܘdDeY4KUg^(`˜eYFL endstream endobj 36 0 obj << /Length 1818 /Filter /FlateDecode >> stream xڭWK6W85#Q@{hӤIȡA+Ѷ6hP&ۢ3Rl-rD7䏛'/^|f딧ve Kh&qT?h+u`r$nEnkS y(b&Al۷%gM_]r0Mn^[V<{Y4#z\Qb}rcZ4&Ec@f>s*㙣):aF*E/B}a}f"cam/ĊqdֻVi8;ig'kC…,gslJ4yQsCOQ,WD;f'.A&b."邤qwD8dsr-݁, y8I/B YI[,4sr=nJȌ>"ۮ4Q*N(ڂ#5;k?uO_oIx_y8ND(;Nb!ؙ3ְpƚ@B%;{T`{[6bS0wR:=T* m눺JutK]BThilj (pT>"ZݦVzQ"BӾPŦBiAL^6ཅGxҋr>8҃/'Q=~ZHanw[=p3:'h@. ^8sP n l gb/ḰZ1CUDpuً-Aŵu@Cc{R`1Jq\mτ\u Nٖ("]+]ґjPTxeE[4nYOLS'Cp`s~KӡW{[ Y[|\Gb&l 5 mc : ^u(W3taA%K'2alLRDL4%sElq ʱ)hJDxp׆QCah.c#C']h^MEH< ҂,񾰝[ەJٮd@HPpQ>˹2"NȭO!u[;WREb֥;,H ת,&X6;NLacO+)/Lsphʾ)M0 lA=P4_zRɶIM fiXB:1Y;OM֣#׹;O`Zv=C[`߬0EcD-pp}# Xo7 ǚvU:}4Ju7mq#tsOe|xcl>>S8}@)=ȂvM> stream xڍP"=7@и$<{e9{{eEE$f6IݘؘYJlVVfVVvD**M7{T W#,$\@@7$P wqظxYY쬬|1$6%f<H%vvv{O9OwPY2`svssgad:2]6nu+de2wk̈TMk׿`K7O &19;Z\or'_Ɗ0#@ss `icH+2y1]o@=ҁi15ÿs5wqrsevG?¼YBrtsE>IܽY^#?6,ܝXmArۼY\<ܼ3enGMo'ПJ?o=:omm,Ao}] ;ߊEll s7ob_m.6^7X,bYm)%]=[R\e0sظ9\8 v o;eqO?+7wwqy{<ʷʂ@^ s%@mSX}'<աNK#*\*]}Nȶ/Ա})[5o-p;:Mg;WfpK5#1i8iACS8a{x5UO|X:T;V@zcՊ1 ._*4]#uc"其pk}oRDDXR_EMv>|J|}cuH JgFBhvHu%{Ⱥs hX$(L@I"ދ<~){dC1(u~(p3s4iMQ0T'+Sg^zW-(k֣n.ȵYe~$9tGܖ*{"-x'%_%@3ˬ2H{^QdveUCadx'$'Np3٢>l㓡,}s,ESݫ_d-܈@O~?^)+ӳ$"L^Wv6)@?{aυԋ$-"sAB:UNzN0iJ˯^s\эg5ބ9i9le~V,H,3 L߂8p$=$| nHflgx z>mAkAs._YRf|uM?r1ˤzb~9XSg?h6nCB V)H'g>&:}Šغ?ɨv^YTCMSXohd>mj7RC=Jn`-(1J*(M̒ϻ{Ux>4e3eaWQT0 7YvAMxۯ,MPvǒ2НQLyh(pikR+69UZ-Dz+*̎~uSSJajL_Bi"2xZ01q*"oG%>_;lJifTeHI< [X.5t*R(★\=#hȃͫ2N_Ͼ#3HyV"!.LRaUֱ^K#!'{ˆ/v'6]X^ 1D>6&3/]s}RQ;QdH摋+/?hHȶY@7*VpMp#50-ZK2ң[zz Ks!#_i 9H3c\\sR=Ti~@q:b;h]|%kc`fb CijĤW〄3E+M3ͽ2CPӵAVSMh5ɢ%1KA5ߞ.+&2>N(ߑwhG^:bܳm3<߂ZV+[%*/%x>f0H_o4|Md/?0GP㈟9c#pڅ{@j3LY4޳+(nuۛ0EuK !)d8<@ZESoL.RReCwKL6Nq;t#.lYHYpܥ}NS~Wuv]<7$6HAް\""'{rN0[AA] `]6eAAKx>ktlSmucXsbUGRm V_udieB.}91۲٭g04eb(Up4E=Has.?W%VT˨rl8t{)rN|"ʰGt*4fZ^ 켚vi4;;+ǃ_oƷv<}>Y)˚j*eufyZ&LTQ4wßu  *aaHn -hN_~d Ca\/젙v >M- KOEGy$}E JzƦ3( hM@Jr LH\`9 8FrGq5!;= nL`Li @*M SN2b$|%eXQEQ ,ᇙ&Z=ZyfVM]?J\fγdzyWuDi'=CX>T/; US PXiD^s!Zr.Vȹ}G"x$8i\Ȧ,p|u;h{k%C&L_j mxO_aXWzpj͗@bWQ8l]y?i1:QǦX2F(Z.BTM0YhTFBC,1g)=f w83~ǐTؙD7bs#̠Y}M|etdJPޫOQ y7wyɉ')2"[ RkWϹ;uc>`"|oD&,G\Eڑn)&g7l7b<ouVKE<Ʈ 5:iP}ac&@ȣ$3ǃ:6J2iʓs }9ςB2ΊeSI9t -xU-22 aS) t&٬2}ߖL?NT0%׫&խB!~hߦx.~*ݟ.(w'y_v=Ld,Fj -)*VL˜ IOQ6g1X2"+oI041vSqi!1T(`OCqP>XK^ae:Y] W] !5HaEoUR63zEUx&U tecNTɊ|IU+D+Bn>bT4]Qj#: [Tߝw~243$_Wn%/˸Y xO 4uBx w:_#/[x}cU $/X:^Ad5#LtesNw`u$zϢ$؜y`.Hs i; ,NDx|*}R*WxuZĚyt-֩ZjD3+ US8\y_~̣юU.Yywvf7ӱ1{^B! D,@T9i&}SyC/%0>a r%SǍIW^m𗨜| k{RiI8jty#h2xޢ[]++cTpL\ٞv~57RiAr+ψ#݁%͹3gtuv_CTĹK Y,|\x"tC94c"&іG"y. v.eyylC\[6p@\GLP~P/zS+Jqo Y]nW!NIݣ L<RZ8tLyvGPT;|{ן6Ja&e>l_./O6ٴ *tit4U`xbIX9 `؎x("zS@Ɂy~m`,"Uț1hvOG]r쮿h(^zoP_$x9ѾVݏm׿MP̈0ҐEPG5F^;1B.) mNKް*)7q˔i]c-?VD6u"lx/bJ pz]\@n,H۲*櫼oLZ/c{8 NED)':8K ċN7Y:0d~"C]}Za|g5ֆ|`xY:@Cj*:tےKT,臙3ѯ%zmxZ%F++x3&q{$BK$#)mzNUB¢Qctx&5EjeUZulmMWomV;YM1'3~03bj%Ύ[h9ޙ?~%'M5%m\~Qn܌>7//E{ Hv$+9M DzNTF5n+ ccaa{ɫQ͖zWG_]Wk('kmȚ]e%eQSrSr)v˛A"v](I,821k$Syh,[lCG6sM( L(Q69>m.*&GeiՍ7JMNQ"+3xW~ fr`S[B\A㥪 ZIv)X"v H(tJ??4ȡ\vnA̟- 7|gej^T)YvW{y⏺;tp]64s}Q̥9ժVZA!4U&ݍy|Gظ#0Ob"}Rb$b_ZwMo9:[h %Xd;D]E29}'*ōH;B[96LhyM) `mFYI/|:a&fP5SI DA [`PXݺTHΉ!<~Hvkܙrv IϖIT5p#Yc\}\%]-#EH\^ubQϧ'"YC wQjy!FΉSN֜io^窶 74Cv!8paz}Sut3c~ZLCئb^=#*U yo,$/Eoa *Ř p~@/zfD'qAwヵчBoA͏2b0{16<ԘeBZ+ʾXOL+_YI.9+oBӦ9rmIH>^x ' N1RaYHZ9{Ʉ&2R*?LIC>c2|A5r@PҠуS[rq4>2]\yF UTɪ}jy2 ok6뺿B iv'/Ăs'İ ZNuIiְ>st,ӵK1Q2!JyQtHԔSxޕǍKԚBhnviptr# iLҩKŊo32(KxW!+eI¨hF&|ojoSt9 %r-JpZ6vJ;*F$ރuE֣g'd~8 Y<#WhzgL'!)Yگ6ùo7tiR.F˿:t?z~OuӈM 'J1ϭ3ĹʪY߫MqOUsrK"'&rٚaH9Itcm ڏIgu痬gP- ՠf^€T-s˔4stu,IR$,r 4md{QFl?*t&-tdAI9MN>ïM3eoḔ\S ;/83@LxphԒS,NZgflA5ǰϽЕV{^/fU2Zmh8 XGe0 }kSѡce&:ˋ wJn7i a܆ %IG:]9>ľ(OtrDj.&N>K_AZx-"kwjor |1Q:PJH戸t`q xeiOT7tRpR~;IA@b{p4aަ%PxX($071$$#~@fpm_uzj_jt8 P `C=1DڲBL_k8>Iiihb5NI1E{YN>3sH`}'*oҬi$xoOb/z@y񫣜.NF&MB_153$8m9j-T^7.D)wBF[qYLRh*l|@ HY}/`Zt%QQ4 GvNY\a#XfuWN>Jt1R0{ 3nh B<0&YybVtT+LXucw% hV x 2[46%[$UKlQh]=mH4*/LBAXjgY%dkU!]qd_ΘV؇3?y闎29vRr9g3RٌCӵ^FU{y8w*R*`!DFɯ؝I-R5d4i-D wh@w(&%OlX=i:8;ڂV}}x؊Ƙ(Y;/ݶ T~e?7ϟjӠuNrPF[!4];hXԻCQȯÄG2 J7.Zo!QlPtzۘɠ܁Ԟ a1/z27YI3)Ըˡ *uKmFw霟W֦`=tg`* "|$InD})P]*I5$Q:zƓ]xe6Bw0,~tc!ӯջGP.Ok lnhC٣C \ctHXzvv*)T@!ެ- ylX]f-升kUC#t-yICf\dhD!SLL¢$> $ei3.Uzc]T7>/G\q0ҋi!( RL_&Lh&oDF aPCӚzE\$﮵ |e0+E0A+]td>hpY1̟.b 3-N[V1Џ1e~[7{B 7rLOu}w\/tDHtJsBX#M5@߂2M~d|385˫go%e)Ǫ:,n6IfwZ˕g -XD kO) ""W ]vW4U0UΑ$Tx  5$z[5e go`Q#geq$*\LZ!OJ]8EI? W8ZN$|Ʃq1h16&ys-LOa}S{1QūW?tK*ڤ), C4d̈?xn֮c+4=l(ga=Le,|76&!˝p_q'Qh)BGߛrOc^p>/0?3C8G~ e2֚}ѹ h/* JE)/7=.5Y}J:(wB 6l$&ztˆBa`H_ з߰Aca? OdD黂ɯ +r xvv,% {\XQNP5CM=#нw̬4ϲc+ b7f æMZuZB/#+.J^kvwVGY.'[~#h5,^S-[3xR?O~}]P10%eKl r(ߥsSPU"H^%28a+Win3˃1;u+ʸn4=z!NӏNVɰ8zN>›&wVEfb8H.P4noZjXfcUG B:kW^@I_•Pڣ(=]{(W-}%j;Ce;X/vj%-x:5?oP:a&EL%a*~x.EM {4JOh%3t{"ijSGȧǀKvm\Oo^Dfߤ_ iHgá]VC Wc+=nJIrXbpxLznҵ5/qDH1Cݟ>[ѢL~ƴsԝ $[Xn#7w]L1~^jCT#s@7l (ke VHdVn,{! _UU44}An">]w}Eā"&3}I_kRl`۩o\*^eu#]ttG ^g7w {7@Rjs?ELޱNRkjEܹ8+˚xy9r/xJߒOE_#<|ߵ G 4J$т&Ϯ^;WzeC.vuB@!B4z%T-LpcKui5u12~XZ)ć⧎ӹ9NWg`xjO/?\ |XTgO!s6C,U^?atfwN[҂!t*TRn,U>2ZJZSkkLU",D/&Ï]K\U(]I `B|SB0#io>/ʒ!$\!%0D&>X u ie "/J}iR0PF^yr<9X sVc^˱c5}Lj*n٢VT# }ǧ`oR,,1\tx8gN c7Wk~DD+R.tM^<>VY-vM`Ĕɬq5v 3BRBmC: ʕXiϘڐ6nZB F<Ԧ ZAr6 m 2| ~Pm)V7i{Пd_\ endstream endobj 53 0 obj << /Length1 1809 /Length2 10732 /Length3 0 /Length 11870 /Filter /FlateDecode >> stream xڍT. ŝZ;w@B -Rhqwwo w)R܋=:3wf[Y+ɷozjMvi urcȪrx9xu!n0WI_ Yd=ՠNew7/[@[P %"&z@@52 N/ uA^ٺ=_53[XXp#:Ԁn`ǧ@vLbnn"@GW(3f a`u#8?:P7O x28@NO!N 0 T p;IVp+w"@kk3 `q4T9ܼ@'o"BVO?Z qvsp8wcwBNnO;A=|l N cܝ9 .`%8O&ln~...Aa]@i_g3i ? ``;ss@k7 Of͟a/ ד\?3{R+ԑ5RVbk保22P//;?/+ wM >UrlӲ_`kAK\0rsY?}q??vOt8xxRAv?WW_i^9}W qS.~/ u~Z\\{.kIO%坬[/`@ot')|CN'Si8 FrM A.?pj ?7pAOAO9F r8's@y3J bL+'wĝ]kT1:y֣A$P=K)K6I" FDZ2H>s36Sخ65Md .醁:lEnW+slYiS \׾2͖r8oҍcq.57ja̪eqs!Cr_4g_R!΢c/c[~[pȓ8g[K0JGW{9Qɻr2<1c ~ٌV]y\̽0ʤa|x"/=wtIԓ4+g oƧeY+ f>p}hdȎM,_z $פU,:7`6_k7p f2"2Mu\_z#o預G ۟HN _M!-꽃X="y%&tc9 I5|ݽ7Q~XjHɷ¡_Ucֹx jh6?jQ .$wSPQ:)|PYInHퟓbI 6ד x(LN`:131s3 K)yQ¸ptMr"nLhSq/,y>Q%N6FCVwBu 0Y.1^,͐:P6Ve\Ew ⬙aI{̻/,"FMÂ)e.n.*c:@܅c"ѻVcYQy})ZM͛XpԢT]X7v*NSv<8asKYƔ|6ΆQnTxmc:1\5ϴ.[>MidO[7y&"ǟ>W)ڄt3w&|}9 ncu-vm6A&.-%\zW?ʷ٤naV#9 WMbdG >aM.<.cR^S/퐹ijy\VĠnO5 ݄9W-_}(h]k-`_}W>(fg)BYBiQ@{m/pmC1@sNjxG]E ψ7?dL=%yRňGmc oLӰB xyeZfji5Gw fL,&˄"X͑_E"ӼHo(ҐSo1Pz=~S_f" ;3"sQu7 Bt{7=(YQ.3%tS O{ʊoxb{TzOy>wt+Ot+?[/Ul;c<0e?'BVס{üڀb.4ۻ3yf׼S<-郿Z#섄d0ww`Ld5a͌ܲhE2b<'IXs7j;|ʊ7EkO:{l@Ro|(졍TnQNk|5!9![X;HMܢ0`1nm923OFrz7:,)߇#ԻfS =A^H&gqd1f Whd돼qW)'靚 48pӽ fwΌ]ʖ Jt9#,^nwSϩ 9n|ƙpf3po4n/:_AOٟ)}55 $zve+x$7gOXdkaqyG%juڱeqQ<:!û"<)|gJ[f_KĿuh2`q >g*㍍f Gm՜- Psvqlh3z*ǨnÁrƔkD\󷘍y;bҵLU_iS8i[:">:ʪv?$&R6'|x<;0b MK )>YY(I"@xahͣo5+Ґ\A}:X_Fˍ9̽Cr7OA0[}ꇳ&>M >./Vۅmny ާ; ' GgZ&1ʉ.mRG[Nl_Ԝm01J)kk3ÉK UpcD>P$V R&9e\渴'MiEoIu'L@ Cn# \nPwq8UD!"A9Р_ <>WD3eBE|#7$v|#@hdoH `b0[q zvD%`|A} |[aUы ;@~žѭe@o`MF2_ oJ'Z\FKO&'3uR57Z:TXfj'BT 86"蜴 yqb!{}(/GS,fcI0H~=}7ȞG>JlT&oPh-FuCb9eN0:>#D>ET%Q4 C6l%S=ҽz2s'q;dw2]Wn'd14Psp}g,J9=LAsrP6k=^$,72)hv'Wx>{Q]coU1k.ՒP%neE;"bY$-(`j֭MMZYm+h%+ҲϹ7ڐZ AqzLmN3+T!2=C۱(Eݳ_5wzxM#[Wd2C2)/@ MqmpuY;`2|{d4,8QA!w6auShM sd5o&||{qNw Һ%2W Чϱ1KC=v{Q`eݾkRҝqve9Cqu3-(`/%aJrg>?rKBK:R@Sg=ش޽62~!89i|lo AC\L(AxҥʜGtqԍX[Aj* -"}XoB FD^!JjѴA!Yh+4 U,5 _%+tV&ㄳdh}=l9@OFeҤ J.ܠ qZ`jDDA<.mڡ,pꚦP [JtӞhY M:ХXW?xFDvlQ&[рefU>lO o-sr7DžUMX9~m+Vk4DxfU+ 5s֠7nD*;ˆ(Þ7[42HL:n;)Gf5mfCG XίUs+~X1fF;G*\r٘9fæA{:)qBb\E'\2C #Lا?hluQHa.}kS *p w`"%ۘ0xԅ* XjSi0/Nͺ0_s&M_Uv tETeU Z!pfX0)0k{CKL(+HLJ b3৚ }2~dy}[U9pt /WϔPΔ\M/B|&ּ>|Ѭ0&R7"vyE,}f."1x[e1JhXtM &d3Ʃ>T^0hPdb٧hXK`gđkUj߀ =a'r].*W/·tQPbﵠPR4\䳄h*& zOP߼:5ŵ)^~ҖLй_{襯P-JAxCYu0}02jm҇"@`5m!ʍPQ\$viv\l _mVP|ցQ^y95[=oe^y'hhW0mF(O[-S@|v1||.\G[?BGw:~φєf{VW_t-"Bse6-nE&cVb޼@~"8QmX0-2ë;|Qc-/54 ~c߱K lս謮@hN?yyQ gvQ'8=.R\:8N8.z0\߆9L!J˺,ʣkTrzzݐ&*Р#$5&Ih66_l_;J=(~,T{fVByLD\4*IZ2ʍSx8%G}أYŎZyw[o.b*S=˞;GgbZXpH &-Tp]*kJIR;野|` ImEjb[;G# 4qeVfqoQ!@=dmB$:]c{=/џ/I@s F+RSf$(I&[(*-'^H aDgpq1L`Eq˅ޥ@5ۢ>cbU D6uMļ%8yr#c3Y#[ص2mά8IR]Tt3I1%7?gSݳ)͸?x6UH%zOB!M?3]w[n2O8%$J lNrAs 27ę%./\?`'U lL)sc r|8/(CEqC\tk4 TX(p}F|XOZoI,`dILt5_Je=kp^A~"i*bгx }gpw~H"M_NuXXzUĞKJبp^ovb1)Hohs6"+%4ԃXlpP7S(?K,=Q> 5(/"H8g;3&!3qFZy[3\M'b bQ3?+TR, J/`:&UT\r  unݽX4^""CM\QRT]9E7qrdM,$L&!ju3%LGK*ya V/ȯo,0cxF& )pqnT~ժGQzՐ6Ea߼*Y$|)}mÿ~(r7ĂlI Uqսbi4ZC}yP ӭ 5^H*D#3Hvo"L|X}Ym*I?MWQ.KG:Ρ0xQpp+S(ܮ!ߒNra૽|'M(NtȷgZB*LXo炋hwA{&'̙iӐZv_kԏ2wnx"$& Ccrf<1^ \ƭ.SSbUX6pX?gte *h-Q r*Юܖ1Mwʪ/%e%j_ثv5 w4 zɊy8עRVat~ʋNNX-bBuwZ'9ό=Ʋpp|'ޫrDEQ'~`vJа4P8sM6KpM%4n{Z֡9>VR\JBrcQ:⨕ B (}mUF.Ȧk~*Z'36뒇6s B"~;g2>qᬰh o5Dh0yuc&ҐP뤉!cuٷQq+''G'v SkDY9UŨVTgHd)IuÞx:dB6X]FS Ͱ!.wtUdG~HKeyKrAUaSu>Ly/i|j|Ӭ)Yfff/&8 +=yi!cI^-vC\?ĩ2_I?/Д T1څT0'ƹ=tpb47༽w9S\EﲩE=wȡl=:V&`n]ե ɘy 7OMSZ\;mH:ojrbz;I]+(kIHߗhJɏ냮u^ٝ9L9^t fvs ׿U;J2Y_v%ZS ImͲR5fN@$<ͦ ̄*1WԤ˴QV6"_QjPIH~y7OwRq=T(*ŨLB e2DM]v@,1 K̖Sܼ'eگ/9_\I_h `9\.KyoBLP|L}PxE866b +sk k\ej,Zs_ު]›;H߆-%k &-6T:h;|E[u3&'"F4x_Ps$|~wWY6Q<lGHq*1_tOG2^+VE`<ߤ&GDหq5r+S_01-;r0nMU2AgEO+׮ B?VDk;zC |n5&ş?o<~/Q ĵ!>Q2^0;!k \ #tӝgS#%2$&gڼA_-]wᨰ)c n֎ :“?"6IR G_疠L ,t85$ *zC]ijpWRf$@M_sXM4n۳JOċ{5Z -ۤV%5kIGŸX N$^c Oў4-gR6 Map,' endstream endobj 55 0 obj << /Length1 1387 /Length2 5975 /Length3 0 /Length 6929 /Filter /FlateDecode >> stream xڍtT6]ҡ" 3twJw+C0 *]4J  -(H}{y}Yy}]{_02R"aHZ$ kX PL%6aɸ-`(o8!5 W@}$p$eAR@ @Dp(@_pyq!=PpgU>HFFJw8@C>L8 .h0[rV.7 ~ 0{&L 0s{0E:(W!>( 0zl$ W?ѿ#NpwPSO_@7* [4U A=p_3Js@{OA=@!~+'8k 9Q2 C$2RqU, e!8] ;>do/ F1 @4 G;Qp-~ ?+AS;FSUDe$8@JJDF`F#XFݳQ Wԅxt;r;G_YWwG>?qE] Wb@7vaP{u+9 poM? jGC\b_v_Zs#`FHo w%0 }E.ؕ~YRAB MTBFdW|`@W "@BW(_g*- }Aޞ_TPWr̈́^6 L!!rQϢ:~ԫŽ(|Z>̠:}~RgF,U2Pͯj)ϲc[cݻo2m'ex_J"dtdߊuGҨ_cܻ)zqd$ "ǼI&N"+ ?;4/ I+,L.TzblĊDn6Fu#GLEbG祖Y8'G:l+\F5sG xg$ג /W}ZMK̂s [MA!!զTD.!f_X*I?AAґ ^OqxRwpt(5 El𞸅?z/Uf"|&j=:K奉F]ֵI<n{Tr2.eJuqfr.6moasT&L{[ip"Լ}ѷCqA f^=?9ni%}.9qysCy* 0ǀ(9+!Oytv3~v<o[t)V#vFp!\gL|zFu q/0g#,'~~et~6h(]6l:>Q>_)so5"*@pKru!vWEJ;M÷:ߵ."$o9#,:,-CE|4xcw\_ٯ%|gff%:z-^,*?*~?f L);n?ɶh )ySVƃ\mݬq"ױ&rL62(9$y6TRVsv{9InB*0~ʾJ>Bq}?&]~7.9f@ _X:OlY^%UJg-XcΩPi#k y;b L=)7YX{ڳmkthC>~ȀKgNfioQ-g 6Nx[Bf@uI*Cm ]g~2Bޭ;o{} 0b̩vͷ k(*).oOjel5x'Ns߷=g3U登NmQtע^.8noL?)<>1hN w д۩bP-|kIܺvGzֹ#H14:̘#+ b5_(o. d#yTwSu…y5get/Gb׷8qhnn~>Jq(䀃0gl׃TGY I{ Z妛Qg9k;*2G)ɸ5\=$I}HY)F?JK66;5LW"S]8C= ^҆ٷq 7OX=3 LÒ26 CqAulCѾ~#(QQVx)5U|C ~nЧ26K܏cO`pp- |#osLF;:7nY)6 #WplRVavwBɳ"n;=l,(K@v=E!jr;Lx.Vߨl ]{LeG 9mk ih"̱ȌѠD#2e磴oBk+o 3co1j6M$ȤM24WShE93,G;K hL󆤙-ucCw#gYPD{K~tu>v + 8-بC[ڀ>%yPFN|{ʱxZGdakZIMg L:\h^q9}g~5>0fqÁ9{9dG;Idy}hm~JZ*^5(l+ě׊~u{7Е̃qUK4H}OژBl8/mw;AF O{]ŭ5~{7v^ yqCCwO Vc{k)ܔ)TxCw/3@K%M60*ce+hU ~(\T?*o4fgynӈ`^-tPA2DY~jqmNufۮ O*Z%"sY0z߯'oP,G|$JĩԿEfp Xڈ nsa._8K L!5hdURpLj;(N6(ۼ.g7FaϘ=v5EkY&X9n(ZGg6;jZKkQ\jRoB<zGGLEWkD /"GͯgvϾH(+5s 0LVhy~YGY:=Oi2$HIMvxZmʒV kbEW+I藸/m)(aXKf?~z7Qh}Q7)5\P2Oɨ -O{)(TRܣZU/A>`1\3Ij9V~HtZkuHz>2^9#KD=Na(!}x9ښ>|}N,xI@LŜͬdrwO(9ފ̓M>w1|Oj]O"5X?39T`G+-) Qyc ֟CP2.J[,Q2:kIцITs?!4G^_Jdgٵm `H=r6>^y5،olK8ڄRS6GjDưw˕nϺjp'o( x%9hb"D-J:8z?sW:>rB)GL*wc13[.\"W[-=kxEhj_f'ܘbmcE8l\_H91_559xJuvG۱u"K=i LF<%p]mxg׭xKsUіbJh ׊B};bUH% ,Y62f ;\=WXO39zPzOC^ 9<~O F,sZggLq=\r3~29yP|0a2/R ˢ畞X?1MyZ$bi`JYkߍpM#{w/3(`c3Ea[M"q[ԅ5^Tir"j'WzTwҶWEf m ,,AP7M])fÑȪxWdLY.WW \\t5ndgG QC5riӻOȔTҮܘ+lMT ʳIԐeo(P.U^w]OSODYت8..|4T~,Ԗ}N{T!<ێ)UW›󋖱=ɽS'i/[.qߋo$ljsKSQ y,ugSGظٕ%wCuɒET\!le'ŏFv`P좔xޅef"VD6^.Jy&wsk͛&Hu%iNK3sL(,{vp7Iqyf(e?0/s'8Q?\OV_[q?V |Ux:𡢮<è$/OFgA\ģe9*ҋ]E/vZ{Fgy~y\DUI3e}hU-+Y e<۝QZR [YU-̙䭡ryݖA H&HވڂR᫃ͩm 8nUC q L&DƱHmΕPykjʧV\j(>U^`d/q՛ 4?8p@}tL|Ƚ+Q?/8}qc'ɒь%<)]؊Jϙ(4G we%LRyB 3cqK՗nxtݤt+ĝ:z?)g+tvRѵKSBvO}yk&ڑ3gbh 8{7oCLu vx:Q.hr1 ͋RIrVMEYNk~l0` =\ endstream endobj 57 0 obj << /Length1 1467 /Length2 7236 /Length3 0 /Length 8229 /Filter /FlateDecode >> stream xڍX>(%Ԑf;ErlFlctJtw( J  ]"J}[u~׮k{sss>m, H[*%J:: IٍXg?vvG"$6e0D4:@B$HLhI2 4] DpB 1?#:`zG`aXJ)Ţ$.~$^: ` n v? ;aú0!0!OPp;PC!"kE}8?_ @.(0a=Um~F@u< w^*~ w\ tq!)0{ }N;dG@~}0F]4\Hma"@q1!q86_Bvm|vo |߈@,fG;f4`ZaP$?W,olfwr**"=|B>A ]/|;#0:#VaNfEp;.Z0翕nB@z'YJߊT:;sE.pgϿ}0 j kvu`PSj`㠀4H(Q{X_n{#$sz N׏̵6r1#s1z =}"0 $k$])G~{`Dh1Qo_H / C ? fx0y'4EI݃1Xjc~amDwRU1͐6,m o~5ڇ.σV-"Ru3hI$W/ Rt3 t{-K"Ϡ,|d Jo[5*mhϫZ=սmKΤN1$h7SF ,b:p=%'O6cҕW7_935VHo0'Ne771nvS(VUxh| zٜg8C&Lڌd_J<"sUhwK`]cƵ* CX7Q x_IVrwY:XsAVx,NQF#%9e[1*t2AqJu^|EFm{]lftIP^/ݕ2+!ŕ)ۚ)0jln)i]X ?]IZՓG3~f6Ń([m2De_gf6ofBZ`Rplf:wMU^$1ۗjy)*6!` t0DZperw 3:C1~7ӆZ2K s/ڝvR&qU?NG)tLֳj[ j%g85d[v"F Lf/G}@#,Iy]yv75Zh#B݂ I1*(0ϙo>Ђl[z9*S@~̳(`EEȖn<~P-/DH6_Lmtr1ѠF<8@^n ZB#+]n_ߪkMX|6pj](&XŽz0 8<2A_ wkj7 v F{/˺'?ޒ^V7p|Cǖ ӖIY+Uw{ӱ;ۉtUHbP4`nQ;~,LeM-1狯RdJ(ۍR']J8MUs(_!q/ic8;im!7)L?⮔>=8 $TrTz?Vz3q` ߂ɓ߄9ȪL8Բ<Ԏko<7N>\93#.=3aƽW0! Y!aKf@e:WKn%G$O P~ \Q[#^Il/? h9Oىz.1{Ժ54¹ %?k/(^8/bt.Rx>uF2lWQ#l…,|hԃt?ZфvBQf:%u?Vv/Hn~%TX8賱Ymw Žyե v3QzK3[kPx]x) %)l1%8BN; +1sN[MQ!&> \<7SKD%:΋ dg8dzFC C&܆@CST[ːdžݠ@!b%MrDKB^;lji%vǫ}R|*Bl:DV:~Lj}MUx5"s3Ϩ{8pHf]%^5Wj]W,ɨ.[ۘy44W7!Uuo*?4kgΒ°c=}хiNĴ 欨wKPy*{Լ#0xQF^UkFʾWWnQ͇81rig M"v>z)uʐ7rjKG,0/[|XPg}ҡɉNk I<zVSDo6O>C\clӋLi&G.ȇ4*K߫3ZmU+(;؞)cm؆ӨX!Eڵ!T&fےv^Ω͟}۴lMg;,A̰rc=PcKJ01NѼmM䙼rv{ۥ!QN@j-ufd/)i$P-=Mu2S{^.ge(] ;9jXA4>T$֮_uʁS}ͤT"mei:iSA 5cA¹B}Z]þHHį)4%܊'X+%żjj9tܨMuk\G.>[k# XMd J9Ijw.#?+f+9u-L:B 1T$Jg{85& (;V H4Aq0NTJlqP5b2YbjUv=,#PsjbM(ĐC3L(tE ]B7,BUFgSt4΀}KtinUr$!sߒUC)r{SPf]k(Py9]ٱ%L1h$J?,5ml98Fڞ7M/1p:\ٮq`y!c@snuI;Nyh,8*]^*_iחS /HP:h9Gτ%E'-r9O+36JpŒ2hJmIQ(lmX5T&a0GW'ŵԨX'^/L~ %MxS:~M-ø;<Eli'rHEvV_5hCe#pnfɟ }n+)_H<ꄁ- 2) mC6RlϏ+X/UYcw|K9atlH0uQM|ygcE6v[}4ETxr4j$O4f/ǟo\*UO p 3օLQ.N] <S}A&rɂR oZ8E)>p/t%Zw"C䡗u,CNWX#wi= z|:wǕfev{`P֫/r%CgA .]޴xƔڇ<4NEhDUר{Py(hha؂XR@VD 'y%g⢽X6Qn<ivV 4".w1q!z#q%VlhW"^g*VReXHakvE@/k^1߷6;G$YR7:U"r}IP]HlGR93)|I8кN7osLO廉b=1%[Ӥ/vg\Ůм\6R&BKz~Ah߿"FlK74.zrq$"N'ewd`Me9Tvx,a\O'z=9Bd𣠄w:[ˢ`IEjt c ٚޠxq(X~Q3'Ű"uw~r*YKsѪ=HJ(Iz봱AvjC gI&C]QNA딟DTПщN8|.Sɨv-A7 Vxќb}b>~0HzbcGH$< 4"ڛfk 6K ! 5=/E:oI#vz՟\p%rCoWõdYts,kpg&~y?wvcEXĭ{KВCN'K!>?4bYʮ"䶟e~e hX Z37X~m]TLEtUIY)u endstream endobj 59 0 obj << /Length1 1428 /Length2 6814 /Length3 0 /Length 7793 /Filter /FlateDecode >> stream xڍtT>)H 1t7HwJ03%H % ݍ !!) %|Z߷fߜ9 4:0K rrdԔܼ @ #|r 8@^P@(( *y@je svk `b+ہ;Z:0+bvp''ɍj+`7k`: g2N,_f# uCdC%U3l@N;desrA!P[  PP{ / y Kw ܬ\!p7N7~A#Qd1dI,_O1E tx'~&CKHspӠ%3ARԠ-qGR(pSV9vV)u@g}xbigև  iDw&~,J}~kM"YJ)s𹸟AńU0Gt\sWM\š ԏmj8άMq.WPvO|eIXq';2ᵛ3x#[%m%ܦ93,XI}$SœuTwDTȼfƈ8櫊ukV\lu Rkj0}&#[LOnU<])LWUFh`T*-E,2ZڌƐ@R˾rn>\V۴瞴0 cnްXк<_f>tY]٦NK'n$ p?J)wLt2:R2'2uqS߹'EA\OCTowwhzr%-TJ"g 8-q-؂^2D <hkXSs&Z_ݔLyֿ͡7EFǘS$PUxὰݦq _;S\D`TM-;ek MCZ3GQU.PF>ѴrʯseZ*.;;㶬utޞTgq׼2XYE)jzA/iǨ}yV2+٩?QI=cI[V|^o4T8;SF8*BJor$m= #Be (XrcR N"Ff< xd"$pQz'O]UTxY JúFsړfmw)޲w0p&|<Ϝtō.1`F3+V6ICߨP[w]Hš85iqNd̤*Xexuܕ*^()\qGc 럾 o,j6P㌻.R6[Y~݌#;I(m]*GR,=kPyi~Tڍ.Վ@T>$WHx' #1tgG<&!Mb1RZUEe5N{$1ǹ.q(Uh rgSp*}؊ =uVH&XS|4WH^iz{ϖIS!h.5%'J>QK;0m̉lƁULR%8w` ;P}؛u dq"F $&sa /O+/?KfM{?"nmiSߐ&'0#,>Qj Fyvs<@UErlif/>*XuG5FL Hx)N֬6^-xCh,u&'?oBK!vݮ-bB,#eUn٣Vk>ZE_9׸?UOyD(.ڝHDŽa!6pF&& iKP1u?#{ O{QWmo8W?fð@'atZgNÍ6fZlr@SSD1QeTÛ"[jkH5Z AΌ.Z0ۛzd85SPw%fŭ_<תBk%~v[Nڼ=E;-Ri6Oz16HI_a~xo#G-^?{́a~#9qB8msyՐ|^z7֎ٺEIUm'FLTS;)5`"u@ϔ{%H>Xs>[OkK:D;R+ڣ?RySzʆ1^D)W[^.K@}THԑ^B)#|E˵^R?`"@X0M]f~ޝǀ,8!sOn[c:a9IBU7+ۑVޝ7*K0~ >~Hcv6 \к^rԶJ PšhEޘzgzMmniٮIJx{k5o waj}vaQAqp=a%?ϜaHඩ&U%5/!b 7u-L&zﶇ[iV'ljdglCYWj`9!E–` =N] -DS3EVe”yV=weF!殯ڲk6G]%י@\Mae4Sj,p!@&OZGW(pA:ӵ'^Irpz8|y)QQLRRusJt<OzQ35ym #RP)-:Mݰp"Z}p?}{哉omƀXDshq~-F=~\MӢIy`rTo7g1  HDh*t;meg3"jXWu >+c#4!&0cLXHh>cPIډZel`ܒ o~E)7mm<)zl,\T=q3.۴uxr`$ϞS5 %6S<~v.!i{qط+5zoht/nkAݷKlxzb|a c.xZPb̓!Ϗ ?.Tlh?,"$GsL[9roJcE,|G$ e1f1s/O=Vv9FXh>(LvʆD+UeS]K^S< xOiʾ}@M硞KKf\Ner&Dex_P%VGB>2JQix,y~dJR{t|?+R6C=Zd!!6N^ۏfs|?I,26$LD> (_D k.NOsэ~`'w8[s}(fB|LbU{o ǍF.e0Gc?S+tv2O[&R(юIf剃{)_iFjjNYt,w*asw?՜Evf%)7y'mrb]Z,VMI}eX'wm Wܳt35W$:g}OV܀@ꩋgAVؽ(;;x:#%MyyARC|[ŷCMZ"ygWWUDz0o"vB >)>au,@|:%1/zLԞQA=燦%%/|YvEf /+wDh\iוj(h).9%=mXo?GΝ)JbAHT ,E5"p>GD}J"6*XEia'A*<;ˉYؘϥ!SunMsE MZEbUsYQɑsrV20lrsUFc9'|"KaZ% aK g\ϳ`q_aT~J4' afC~9D[^:Xh/XN<fݡ;;y\aɡhu2TvG(qNnrrxȏ$NǁY3} {sD|ч<ªm5.< mDa(9A]f@߃wXg:D<+ j2s-2d7;(+k̴ޫsegO }p#IJ[@͐]l׌mp>_]_S۞RM&Ȍ5Zs1NEu=Թ㱈%n4U6.Ǧ'ߵ*\ gj=&F v=oJLIӻ=$xBmѮB}PktC}bzonvw%r̖RE՜ u)+) _ ۭ]tڼl%ry6rVٮGHeon;h)Ni]ǀt-+ec, l묵_I Ϥ|%<\LQ:!y+Az$z8WS?+323>wY>"ӡǂ|C4?,͗eBX"O훲;**=-`њxm4$*z=IYY^jr;45gJxs4L"W#u&--pG.Hnƹj%th@#<}*\9+|F^S o +4oޠDZd=jlLl?Mؘf|x[vwI (*f4%4l~G7GG; aS{h鍿[rI~2l"YeNJ3ךe`щZH\ZY׉ 8!X$)N*tW؛ d)E) " dCs_~qbXYhH M)HYaN_6rutD,fj a.J=PŨ KLilQ,S'X%Y̦Ç-ϔRTǏx[.T/0$  endstream endobj 61 0 obj << /Length1 2435 /Length2 20902 /Length3 0 /Length 22296 /Filter /FlateDecode >> stream xڌt ĶmIcLvilFc6nƶ{s}kݻf!#RT25813rD䔙,̰ddNVȰd@G [ 8 iNrr6ig+ A[n @ mkt%sw03wzwG1/u5 gd~hlhP5: J^s'';nWWWzCkGz[3~*Z9@tp~' 7=,@oN08k8ۘ*R;²  m/eCcc[k;Cw 3 .KD 01-hhhobhaeh.Wq!%{h`aHha;Efޫ,fc"bkm qr w`jacb; g;5 {g?"$?43݌~WudM~`h898=_00v,l`X'Mwph3OebkcG2H|!!Gw ۺoyd >ƴU9D .%]U;{f=&d3TcQM6E0 + Y|]KEim| ;G6\t"KD]L:%QbNDzDک ϓ2_}oxn^r7:t+8[bJ(WD2ܴOo&ctoyCb9A땇~Ѝ55#Ipc9_]s)2_9M>H,#"𰧶x;83JSHht}E0cL@nֶǪB/ՖWs^_>gø_~%'(X1ɾ8sȶI#fOTђ_:Ŕ4 $, KB1\K*v)ERR_O-t Xdz񑈇!hlrf2Dj{1TZg[ ~,9!iEo\]%2TX'7u.̲*J'o~@v&u눴L,+O j0pɚTm03D <1hz<>NWvMndֵ-[THGt>>ndd]:~н/P%kærJ^Jw:K㡄o"~rC\asG1 \x¢|XȺ_YcK%VAR A1Tnzm_U's.7,ojHP}On8JEMqxb NOEx~UL} 0#W_/[98}xq;ro~9zNYЂ Lǹ ◄M,$ƈrr S^ִ+<&#}!aPˉ{Յc4թb? X`,>WFh(l/T̤?0K_{BS=sF)AU%08JokԒqi@c}T4dg\W4tVGׯGTD@]3R#G3ddsl ƿR@]g1cz@CUpfy`F#_9ȋ~"x%OZ4ݴbw Wh╁=V/Pus*|AkwbiDcyj7;_`c4 c+9!$Y8 Nֺ$\Y o'4I͚lHc p*-8`㉎խ pahmIꭱU$e믶&I4o^Q[5N1r:_;Ӝm/?]\z4LڶW縁38 ch0M$^o3uI<|\z2ĥ-;s۴hT0=;ܗpLYʇFԀ>M[/,4yu _N;Xu{5 ܱQ"AD X0|s ])aBVk9З,x^kS#W(v%‰ò#|bɰۡfBAH@ =|`rfVWR+=Yfs:׵.]blq>jq5"HZБDeQz;|9/*dm214ʩ'ZZ@E<ˆEŧ qP5ȋ2su'6wޒ2K8ɿ=OdbjQ̮6]Rh:ή2|ŀL>[()#޸rgn@:_zŰ@-u9e\v}m/5)Z+ZͧupvQ t4#A8y8h"OLchz OM'{6pFvf)&t:w䲼v]PZPZ}8GhL'Z V$&e1>4'?j>(I{Ai<7Ḥ!i߰-]?=lJ(׆|`JH=5f*gn~ntd? o2)uCWį]9 8MLʥˎFd^Eeш2rN$B_YX_YЪح^?gA+M y8jt{%b#o/KD? ώE5v4[I!%׋ǜ *;`|藴.moNlV{) 8KthW+m]k;y6P`UOpɤʍO?YԼnJ Dߓ<͂JAjƖ!;0.n9!'4&t цlqL[鋬ynë!@NQKtnCiL-`A6iJ؇8~̾Q!yHێnI{SչUVI~;P|&l9ےnqX篻JKUB!b.ϖ~R0+&Ͱ-U8ˡhU Hs1Ɋ”/+0*6 )ߍZ݆'yb)|vzp gvOWIk_aMhz}^t2pO>V~sʡڳܿBYT?Wj?_|O'y.I,Feac[kp;VK V@5t{|IXe !kzq^%+gB,zА6̎{Ɛ>"h!\z"`ۘXV~+Nĉ!.|Ǟŕa&њ_n{MP6!)6=?V[ |*:߲yJhG';M> \ƀ`PBkw5X&}PO9:}EitD4fϠ,[bb5k#qÝXT>T')'a7VMfXɴ4){Ym]F}a| `uMlX[Ie^fG"_\R7[o/hP4N6WT8>v/kTC@^A'Y:) jmFYFM%ewSQB#YM~c(>H;{4QpDx-ch)o0rj9X#HI} (W`G#m!ogq.*=֦=],>9:,4|gNCDjNG'}{p|p8Tn#eN,T E˰IK4!5wg#'8(\ |n5T[=~VlߐsyhK(P-Jujz$goTO1T4{ky+74!;YM[EcVUT m\_hB?ɷOTiE)C=zg.X:ft`N__6 b0}zղ"(4B$إtSWGqQK1zch!\D>gQ[q0[*U\/ D xV+xr0C n?˽a򙤰z=~0U0V\#fKi*li+8;_vA5ϴlκWœ-4C¸wovk>ES FU@Rvqm{f% BN \ժH3|p;Ğ MFv j.rBR#,#OtpۇGEwPfI%]1ڱ"0M ^0VMЭy( HRy1'LM- @?n[X#S @e׭.Z%+Ŵlnb$h+Bk#<{:y“ċ[xʻ >0Y)sg T'gXѵz }< )&9/o Űtq?eJHݟlƭ;g68 _y?=nqZd\{I aWKA7" qUD.\Xgkخe|iƕ)ܴ88W-mu`|P=Ta>w bSCc 'deF|Sy["ˀe1$F&"QVhYyEw9bT! /d)LV`$Kuc)l $f#lѹXkDXN@I&yt>R: \S7WiZu@vpk"ůiMN b?OK~lx"ƔU/oB 5/VA켌myk}L&NԦp2f^++QHx|zv=O!vAɮ-^SQj1^'ָ2YgzTi68g5 \ޢq2+2q(|G-G %Cp.iEk% ӺORj[?B5} ,z"S`ݮZ'I@Q' .9Mpt|q7# ll:SF8vm 8"|Ct0v*/&ݰ,r?bf韥4tG L2o0&R<[.Eg-r#Z{Sh{զ.&DvȿEkN2j i"2͢XznU 9K ؁͛>UT[WS.{ɳbtHWmF\̮LJx>(UeɁ`hB2-쾽g/%h?L$xo5RX HdvX2=G~$Φ"Y?R*0 ?{ i^II'YSK+3RNrtl ѽyy]4 g4CBĨlv.tW05"##&475gcxL'̃J)p96J}_Gпsbm-ޞw(Vtu*k69EaNy.Խ]cH* z&eucbE+*l/.!j֟0;@nM&aV~;D>/c&|&k MVu.םVږ =sߠPWT{cx6@±Bޡ)]m8C>O A ,7)JY iHnAd6,#yO8cVHdyvgxn5sw-cff~7%!܂gJGANgM} ">].iqy;YXH̽&yI?wΨ+,'lC] ihEJWT(Vu:N/5 3A P}c RIBStj=`yϩZ{@Hq88qԳQlU14"j#G# 4eOQXe{q0~6$O.o:Y`4:G[Pt>p02LeX#@Nefܻz/<)\ڦO1APۚ:+`pw臈iLRi#wzp@}xn8ROcBz%O}x# NXw-#($~LuӆgUQ:γ鏆^}ri3:WK+P3' }ʨintivOS k*^z32s,:fN}V ";1GJB-[YT0U5G㔴2\saU/%uYW'CꀀbP8(Tm8w6ݬ_]wשjf˪<>=}+rYT_P=6@1y;P>Y 2a~77".iRyvI)xRũi(ۇ )2.$ J+~ x ݄{Hl :e>).2}nX*kf%h9N :X ;ga&q1A;5ԈZ$iʷxr傣Pə@3ǯA=Y$SuB`y+WGeN!x`ם`o7g;CvηGBl\3ÀP>űr3|<(~Nh)5 q_n K53 @E{ Z_FVšD[i0n FQJL'V\"ZY1) 2ﶖJhKJҺ0hp^RU <$,+R:zՂ8ķRI$gѦ&_\`2?A;Ka9z-׍Yw,/F.)O"$e]cmՃV:i*1Qb|E7C5n|\.:Fmrx3쨢a\ұhY՜!P @p&&Ғq`Ә1#K6t@b Y߭\XyrxJy7T*rddg%Z E &d"L=q !rS3ed}Xm =kƩIa'I]lmxj❆CFʬlUobݥrKl.ErJ}I#v2D3{_צ@k"V~%zQJ08H>R0^!YT_/0W⦼P) +)'!z|%`TᶤhJFl >uf{3cBN1dե݄#I7˄}kL槸b+7C2c9ocWAz[rEۍ,ǔҾLF7etV>" SzxrM]ȡܑo}ugt3Xtzn}e5tzMY8Po 'XgȊ.Ɂ- JJڻuc4M̠1U˽4jWHvm(@L،ʯؼ8Íg<,%\ui{mDКՕ-RKVgpř2j,~%Ax 70T`r>CUXNKRׇ0|͡,u#r{Z9-;OW">]R문@/ ow./*zO$K%̀+QK!@ ?+Z_EZ~WfYOspQ0>U}C|h}al\ȟQvQc}°ǿfSbG*Z 43$W9Ih4훅E6uPK< lObu`gzT|/Gi_q-̲,Y K?o^aAYA { K"wO.fH [37xOl| G2%RTg n%V==E~Ht(12՛-VתOpLưNp<ԢhlV6A;Qnv,Xlƹ]&&~pz'厣^qZ$zt+ޜX#1 ?8C݁P ň`h7$NC-T ?Ͼ _(kz+=-D ,܍wZ>7ҩyV]Of}җtrfLKe)ߗ鹓 Zm-O:kuQ}ޛ+Q8BapW\k2]L5{|Gv ?{D>{`Kc<({uNEx`y3@$2 @JA+[ٺsWXmUCJA^)X kjPA]͎!$v؟*A%!5rS!G5k8I=q>&4tm'!T}B^bV`%AY[j:('*ȸK62Ħ%ja Oݍ"$-^x4&cO4mgHϹG N%`L͹C";.:Y4RYd/^ceo nѼo7m-w3IG(}܀ lnZ(IJ<1un}NqF)^ß9q' k{ݪ̞=ԑny98 SaAZ++m͸U&kB$i0k+4|bD5Y8 P=UDtpJ^jGXgLR݈ c##ΜWL.9d8Y(K=eȒ1iK:(*EƈKrfݍlmsy<=&1$ث ֛>Ccpߕ{Mq*BJE5tSIiҪvF Dup$YXF\HDl``]S2.<)ƊVN :AbrFsJ8J!#S'cMlA(_°ޣƖ~{{hl![iBˎU|D N}f5DbkpiܜgkWͫt)"YolrO"|δgj GɒgxFYةE`̓if=EjmfYdZ7r|/g6 +1yW҃hI,5fu*rd~ TZt]ᣰmsuQ`i\'r,8-0jcG-%`cp=˴#صnp$NjZ C(s'Y˧}K{GhbH`}kzMdM KkESI9!L3~;Ⱥ[@RWHȅ _C@}%)P t@!L lJ[{/oLtk~Ah rS]aN.KV"?= q TH.:Iy+]wsԅJ <-J\Vh~n[p(RTL BjNM:.5ɾ[t ǧAGK=I@9(4<;tyAo܈Fr90ԍr,CHlg+zvkl!D'Wݍѐ7*j%5^Tˬu NJE3B}љyC*}qCM4JƮGS1 Ԑβ_.5"VoweY%rL6Od#ޅ8zL'qnY4zsX1&Ʒ}L-Y o> kM窋{)dILj;P@A7hTݍyQ6zNnyFךcÄW6-|(g)L@ b܈KfbiK#n.~rv="d\M6v{*Q'Atud^e_]ΐ} dLm31ӓL݌8f d3+sL"ggx?_I#1x>ʻ^[R!|; emZ`#uZʔXO}YPֵ`t[SbU"'59{q,+r!ߙi[tR"PܺSkj1)X(\aʜԏ@ ~/ xxo Wy J9սkg0NTٸ5UѴBvF7 ".#7vd$ÚtFZTk#%!Zsi_5QxPk"c9L1K~E)8S ?x_ӊ+_eyͭGZSh=:Y/ l?F:9Mxj[2| xe4N +|tR`>:Lp0Gﯴ!t̚ >͂(nwL2 BtUqYNZ?G`t6HRk77u+$^ePaUBEY(Mr"҇}{TA]z&X`PUix|F=R&7݈Y˅9W*b*bk 8%Iumy4JwRFMM*]deջGǸ1Tӵ?`n*c׼PzQX.JVe>h띐m7?Dj pt|d9؁($)05 k йޅiSp}1f \Ur YZwVSRYZ#!ԮJ}R;,~"NigTX]M^f6|c K븿R1u(+|;V5nWҷ:ÅƳx5w).:v i3 ڨ,nl8ux:y\ ( +p\~ҜI_2y#ՈVCg[J^z okk88릕E`JϥӲ_;% EGh Goz)[yF:ڣF(序Aʻ"@BIժ%qD&ΰ!C{ VVƗJe- iJ9)O|ѯ\K :.k 0[_p#C,z> P 4j`kpx(--er g{&؟5>kW+ ;1$X5ms3jk Cȧg B)>>^pevƞ2 G_Z?,mH6k=<5X&'(iߓ+Bj|WKJDj+R:V S\5^{ scS~pdvyPیH=oW[ZXj*ߥBFv0˙ac'_4^D3q|g+Cʢv5h^u!ңe6^lSF6XeNb4(cga(LK ֦DK3nA.~Px{4ߤ%@rRUj .G3ksvL̝r '@͔5#yҢ,~ѐ37ތ봃i 鏿V+P,=b fr}xMP+ (؋4-n~`6 ^1qR]pnC׈Z}&@5}8IW)͒=/$3oD~w!CYȥW (#BOc8YP| mn[QjѱOЖ( = |8Fb`REJrmiTL'scɀ@u%P@| VY96iC%^˯"Sd)&b>w"طeDc NV .s ǞfbAZk2/|R\c L^/i g7i`Έ8Er@b)9k%(ra< ,XE|bu*3֔:at*smΧO{j$8,F Ȯژ`LqnS*ߡU꺎#n*}"^hJ R} wJj\ͰOxDS٤ ;lj'b;CPfRYXXGt8%oNiuoQD hG75%a$vNF]zK AMAPJ I8!@ M WEd?HjGm:mIMNo"7g$VqS>yky¿ϊ|-뿣XtaJCvFKMM6m9y{|ʨ~NoG:x~KoVM#KSA8nٮEΓeOm5Y^&gFC`C/!@+/z ~|Z&|z183C$;*'`[ƐQQI&U!*u͜Pwoؐ^/LDygՖ <6,D\4O^6R>'Ua64VpȒɔ\|Oߝj!~zԀ˸d-@w BK*I#?w)`8d_?XH[ '7C v<Ł`Ld[ڱIGKv.u~+||flHX0|д YeYscU-_(Umj\v^E endstream endobj 63 0 obj << /Length1 1642 /Length2 8994 /Length3 0 /Length 10070 /Filter /FlateDecode >> stream xڍT-~o.+*#g MF'; y#Lw|1\ss= ]3pc@n S9;S ڠjIRWq7v{L$ƪ̀udp˕mY+%GzЖD֟^FS ǒu(d{^^ͰJ}nueˣ!s{U|heӬ:QKfiLQ#9`5{u=3Dό-S+j6c1 >9Agi:t4+AئN]U[!1;,L?~ԄG TbO鯥[ ;(TܵV0Ez2|l;!0ٰZfvB }JL#Vэ~;|+f%r4\|]*rEnz4t[wSR{p2zwa JF*A\~,cʯBfp[>z\AE~|.L&5[; Rx %@ϧŵS;eHWl$%D*tS=o ]ACC{|PL^q_e/:%[ѱ!>k޵m:P> tr^GDh"+|?4stnq9ZJqY72> &M9)>I1lRXPj)i kvœl})VYU;Xf O$:( _$b=7Yp:#㕒p)j hyE^0'ӱRYDit>Dɜ8 J -6u/ZF&L-Y88tm@ K^ #ڄ4DE/ÒhX~+dPT: ^C -S? CY(wq%}6[[ZQl9nlrϱ y39qLtN@+rpR{bA#OQ+oǧ?]y921 x܊ }8&Q'D8~_7pb՛/z*F7ƴ$X䗮~̊VlFPHu6/R"iI5/Iar8U ޯ2HR>j|#?3?S_$9:DSZ"kABdM)始 ⎄Sې(X{EO o/]F9am%*`)_$'O~ɜ~QcićAL|<ɽblͤ^,>^VnO$ALG+ʆdUlM'ؖC{f34:CI*wG= a!ҥoX퐙Rٮ-lsNB\ENgtriT"'խrl*3D7%9 & .}zJ)U|t42~ƉǺ^ZUi$\Еc xgۅ vR~|YOe؏* 7>}ʌ!e7T}FOv ýێ}v~X_f9$9^&fX#3DLh4S)d4%=[n/UU& ߰\$\B~3\^{ݳ2CdoK^PjObZ#2FM~eHjS+7 ʈv ]VF*F(T}G= `My]k]T=`PRN/ xy`1VN0;Lr˝|4=Oi3[ebʾ63ϗTW7 aƇV9!$P>`cA7<*Mulk;Ť&QmyOj)Jj{7KpLyI%kےO5A'Si㖯[1}~z aJh$UfDG 11@wUwG_x; Mt#p8dXp+ _eݧ^v1)X@@P]['XK.Ojad W&ojU۾wi,qө!|ʈ6g,z0COfI8ϼ9=Bzˣ pȡMS,!)e;Oq+;'p^)6{DnOHȁ?̯ZXtiYJ&>kK?, -31@!ȜWz t^"V[*عѫAP< W|j/̃D""~ ;~R=.p!$x$ݮ3:YYϦ/0nХSkYi>#x9EWx15Ht 0-ƤQޔ`Dž-ZVC6эGi~ɀLFHtU_F@"Km_VD ű_ #ns.}!\_ˍ1dSh*erNL_Iu3V`H2y4+MQAB ^ѓ7nc n}OKٲKN/Us.cdF>$wQvR í!Q,(5d A)r 8(̷[#2{T"-=aan41EL\q#eGoCmٮ*\,i=zd(MBJ]t/ɏ'ĶLJ̄r.dp l/_\DFy!gcC6?i@Yy5pvO "Ɉ 4A%b}hE0UV_X \twzkekΝCXtL F9|i'@UKCRgPz6"\Մ}k&1Dbs4ҢFΥ1"ZCTY_OS>z~e4vmꮷ5n}wÊ.ڡ0F>H16Cü%%'%iF6Jkˋ+&QnR8z.-t%ozc>B/Y)&Mֲb}>쵔skP?ૼlV4ށۀ]gX5OYBU"5/Ƽog.k<B %u)<xW:kUW{=uY$'qc-w0kئ]U7kwq}֜^2`N\ ),9TI<~q$Fj*@ej8N/ݯv慁~1l/s0awSM'tKuiSq}^ѤMPa^qXb`x{Qϐ#4Y11/og<2GuU̙ zGM+ ER25y\X]+vUb.9t;JRYp`Wms1Gcx 23TR2?φ{Dy sC?gNO@B(]i>AP5}{tFQJey >|o|?T8rPBr7nlE̅m.G"m 9`)}?4fcq\9ɨaޯGqb$4&~&LǓ5sTT8 '*a)7-h6n9}H?By~5yjEQQoOޫ?F\fPcs`׶4oAf#5{./l ^[gJlyf .8'p&:Xs@A,D '&~R{&F|ZO ă 'ѩzb {m)g47*ZqRUi댻_}/@,}_o)% M]mԺ( 5i\d]uLηn^cE^44, &8\ZVNÏktW0t!4/gicMߩS3Po=^5l~CK~ @LGڄXpD)sv];6]> kT-]W /(2Ez9!]"֢5ǶǼz2`i%!KGhXz@1%j~xka%Hj"n&R]d82C՛uvM*I]nNTeT-&$j1 U)Vj )v>%~T%}1H6^{1f@fVkY1R_Q6}B g5~J 6OUTJSWʇbFm}SZ "i}@fv}ԕjLt6}p] ܵ`AC8m=jMY/ytdӡ,\sCا @LIuĠF&ž3~\t&Rp_UOFW0>>ARZe$g^9{hW.#=bHY >qA '艆;Lua6NVnZm増w^IT[Sl!2_E@jBߴp7 Wcxզ{nZjX9GEEԨ6*ZdI+6$a͢NT/CW UmE$l֝~'Plv,a(|Ŷ]}[DM4k2WO-oH*TMvOkJ-yy%mqK䗣9S^E7}y!<)6PɖηH6F~h*枴İ艣,b)8|h'gw,w3n%qS35JgySN&5woWw v@I6؅_ qZ+OgHqt_ڿ1 ߑSf Pbt#K2I漿v?S1W(rӁiM0DqHbȼߨWrj%ދ.Xsa`>sƭ&} ?H'قǰ35!=EQ ՀjҠyOpCf?ĆR^v)CxeN[ZГ:@FNVs|\m y1C\J0ԙ0@S XhKXd*'p|z}_HBSL)!I˓S2a $ǐu=u@%8W1>ǨY솁.bQN&U#I]wUx?uU2) T`K9tzU)ruuynbk+~nS@ <ܠ5f옏mAL߀$%rj?Z,7\O1Hi_T\ "rdx34H+fNHch-VbsJr 2uT듔T)ڡ)P٠yk*^-qB ͌wlT˫Fb(tUoI*?}RVC8DŽܨIm"PlV'W`{k ^TR2^E߉1wk˸Ijњ]*f@Κ#>yrY +/ 1 Y2f[V&8R0d@#rB:A">Ro$bHK^;܏M5^HdKc!b TD~P8KO2~YL,Qq Tc3ir\5U:dxMQEi8dB@lF:-ZOmFA1Z2d䈻xuidPÛoL~.#[zAkDգK7Ѿt}aIsZߦ^ΪxN:lϯn9$s#яc/ 4`OS)};<;s;i"0i6RT\vժ̨h ;RW!~)4g"wt ͗ѕO;Te'Wv ~S{@KJΆr_b(<*XI򈾦r Qv,<IFp |=m{m` z)vs5%:H! EȢsZ:p.6{2& OaU"5|:Q*ėa@I&e;J,6o{e3?G}]f lEUIGg~Mc31.GP5f.Qdaԣ ݄5:Yf#{fPVn;})G9"1_s@LCqBm5}L32- :5fRORsRD-De찭<<"M5%FZ* 'NRpIvE$pM,%G_g&xI%Jl楇RU:E Yde7 w&OT]ަ 'pžv el|,_2ٲ stC,cOMsH\H/pQGL*+HdحHKy]#d+<4=*u)TU1Ua$~mYgjj'͢q5D cF/.Ld΢znumbɧ!=q(Vcj3].JYR37Us]Š6?15" T^V@2Qi(q!W)]|Y[;YXU*|ʭv2ɰbysJ Lۗ;JYW^Tѹ Frj".U:$CF&/KaUU$IOERō8RJ-B'M>Q h6P&P3ձlr4l`$/u4`5])<* ql2$o:IxMYuI},9Bq49DՀ X7^9G0\F_nElVQVJ^Ч{T)w,"b(nyEz,J):躮0 Nt`&m);+Ů-> stream xڍP\.Cepwwwwwfp = \%w . !;$sjmukRjhJ@rP;+'@ZUJKr]@Pп ]O2K';U(pr8888\1 d,=A6U6tC:ݟ+)( tY[B@-m5_!Dݝٽ,ؠvb,/=@ t~ Pt cr#׆ں{YO0q{]OU@c?,zd;_޿ -NΖ` r*l,K/CKz2%@NR`T_Y@_% eY4 qwC hv?7zA| "lYz@+rrl@+O'1~|W7{_Le}1} :Ғ*['%rsXx9<~AGѰ?[(@OO]Ož?_Xj' p܄.MH f-@` 8U@TgfU6 *[>́$wAnr oYu j@@ tOe9ܞ[|>Rb 5a\|KWWKT'"q|9Fv6T?Fx쒿D?]oTFv]o$di[8X| >Err> | kWקO @o5,Z8̡6U$~:#k r*cUvȪdnMYsE{ߟ#[5[o&[Q#{Fʪ#O/#lmF!Ww]_moU|hwetLi rfYPp1/p)Q^q5Zz}=rB˭Ȉ gxWjoXf!{ӽhy%J_Q.d:o`Dз $rQb{w8iBS`Ya]t]x+Mg⃬s|y5 AH(,[{mW]l_k@!!Ɣxba>W v嬮oib('Zp^ c8\n܎+QU[ޚ1oK>ԩ6XOstQ!{x[y.u%vnSf'x{~*OdI"2Gz;'>+݅AǗtkMUzYVw?DžPX}FXaԱE"f!Ua,+z` #ԎK gγ]:J9ra $Z$6AL|p. dWS)`[V;>#ӿ.Ad#k=!#aw6:Y(@vBOW쾓iAbObD_RT/πOM%'\\cz.}y.'@9+tTxpu[3y/L.|HsYؘB7œ\1V_TM'RL y 5tT?bNr/m$nVъWɵF(V\aOĎyQ(3 NRxJƝ[c-~1Z#=ASfqS=H%´_lmH0W6_DD,64{E XZOm<˗mDBym!{ d\5d%'IMt%rsmMTeP0d)C0jXF~J+pJȩЛ4LrZ\lԚE0Ml8L,z5īXP{?t3oz~e~^އ<К}> TdRGTbrf?;xAI]- 1`ϔ[HR̞~d'zD鸊E LYCɃA,q%dUrZd ;&~ Pk]ALC2:huaCK:3i[WHs=Ӭ:mku'me+sl|~W2f$\ Wșھu ccC|5CbOW&f%|&idokR۩=ڕ|z 60)v)خWa%ĪU~h~P44'HMOdRT<[[^d?!N^2jL!b}8kf@ʂ|]7:]|H>M59>ͤzfrNKѢEa77WHqřl28Jy$ D&OZjQf[p^6?1%hulp@xݷLZmj5%XcxgXHnj-r<>VEGQQ-E1z3,hp^6Z/;|W$BbmCwxn'62JWѫo Ɯ.&3s211j-ىfaN?{}6LOkO0Y0\[,c[6hr@FKdš܌ƙZB$BE06gd=zdg( {ߘjZ3 Ԍ@OQtpZ M]{pm@.rݸi(׬ziI)V\.hDV57qyFqm %XwjњhO+7%LN ~۩Mww4G YvtY=_L;zT#=ݳ|m^yc\àKv[V\AEϑNsj*޲xv|Kܜ><ຬYuDjliȠ7^Ϛ* Z7X,M=_]E PNrnPdv%1 &gΥ*O@H7>G:Pv Uu~vtpFdj`Chm':}%ڣ8[fQik3: -&GfrkYwNOɢ&vo+R}52GuЎ'>,ǀGVTMu+n;ENA1zT'b^0$ ,4OG\_/L}?Pj̈ uW- KGu=1$⫻}u7p#`;?Eh#$Q{(82UJDU7RC'd ͇m kږXhy>8pv)M\^\ޘ*gDZ3qAsj$ocĊNiuYLb+T1t8 eŗa9\S/3"@IYh5bGGV+i^P TУE8lS:7)za6KDj )MA<{1U0tmwu $nCt9TЎcJw?'3o4|~m#BZU`""^.M:/2&렮r 4ƴK8.JZ0u8_:%HgS:vY{< pS,>jlX/LL2k_[6k5D+"=CЖ bOE)>N#p% H t?Ƞ&0 9uf}"w7U%Ưv㍏@[|̝Q:6:֯Ilj5#e,O7еGpeL I7|\S @f%mWM\9Ư1hk_ccYS5fF3[eղt~/>(_# CU/5Zca>r}3TStfN# WDq)+.J(b7* zLO$U³,g31*Zk#Qٖnfќ{W7˵_9ya:l`74@Sz|M@*,kX#j4UҾ}|$1ty鬛1Z%{W_쫲( iq>XC}m'ݙCb :ĵR,8, *ܼyC9}qZK_?z 讧^O9VY9oЪk'i]4#] C1JQ. ؠSh?HLjuNc4Ubp?&\?i5e@%Jr0V2.5 }"]FO0oZ,]_6xC~ϗ_ΗH: >]7Ng&jGv"U{3:埗iWt&QQU jH/yJ K8 &Q'aޗUԖ&['r3yEăvF#TtKY9d^GdX8 |w-q~&WA=x91~Qc:;g)Ct}-Dh#ݔAe#9wTttV(v8E65Dӳ mCϷ cz jOn rzBw#)]†9إ.,k,KˢՁjՀ -R4 ԨVarlWqtY1KRH5g sBzHwEeӚ{JVXt{lOƁ+4m*S¦,pdY-THnw[vbnƷ yƚ%Nu\2I@qNǼG+R5=y37~~N+7c6g+eFi4ilRbğ뾥R޻z.lGQ0.dtu [3Ȕnx]J}lBr\(5_hvz+-V% X2&CJ@=eS1Ѣ?3@4a?h vc8o!ٷ{%S.t3B + 4.2՛)hxO|f|#Ede(}`F@5JՑǍn`7jX4JQHSXf[Sv qѦy $礓;%Rk+8WgKPO'>,CA7mv5]0w}k3S7b"]:ϑ2C2-TwShGy!٣Zv\q|~vrahR9ZD+PX[3a80߸|JtyPFY.}B?+S)񭂿1ʺ~魮PەA[{cQF(ݙtaL,LZvr2b2Yj~'֧)АByHΐ4=ݗor&0é }ژYubhG߸>4C3آ:ᯎŴtbmʶ1+ȥ^Xbՙ)t{2:Nb:M^4Gr!|T G3H5%9&7!߮|>)MjcFk>X5q #ZQv$k3飰c_O7e>Mz2D@2IE >r^e5$B q2ʂNj!1R7Pm/.g>gNx_!=lcA-< X4'Gձ JݱBڢW8鹊lu{ K˥E.\`T䨘;t?O\b$yeXXȋU(zs[3Wwms4Z՜ U!?J϶D|HOKa{<O,`0جm"MK ua\9@Va<ͱn=Ndx3&#@}FVt\ƞ|W*8dCN񊴰DaOMlC-k\Cj uIspM/KŨOco|M$dn>eo&vŦ`NkrsxސaTQgi`f0 ܬZ ~Pa#_XH% ԪCj8ǽIz/Sm bh>Ϲ-W[{7zT̓2bIG,F?W 4w @sNkw+9Cn;]G aJ*d,WC^{9,24p_Ch"Zm'v 9H_-zXIl"YqR },չ\3Z.3_ϒCo*74ye@pϾېv =>-&e4WO?n;$7?Lh5R5 ɋрPH/.1CaclnH @~L6-PYL#uޅ1eB] \}HT;bc;jPc~ dUBn75/I, WOUZ{'BQ^QaؘyGd5ZW,a cnn:ɻH"U%Ԍ 'шXpuNKC-KK5[ > @L1dď>x RnRIA xq Ѽz g.xQx)q#MQ`d"(-$t.+? iu]DMc K$1,ϯv>sw 3Ϲ^n?˘4d[FY0Iˣ4,_oL{z.{̪l&=?eG_=}eo]cݙ{C}%$vOj61'! 0@{ kƉdkiI@G~[u]b\ WLt-iŬi 55wԱ鐻=⮤X[`X9MJ0?顮rt|\t/QK~LD+F9Le)yO{E28GfF? AU}RU.#Lp}t׉1\,2 }ivc3:nwn-@dyF:QE/DqJ>,FPf+lfsI7air:ګ U<#nJs况aiJzBw݃zo孤bR:ͩIonLJsrHDO{W x(>6sJ޼#$2`gd92)t {}JRsfcUqc endstream endobj 67 0 obj << /Length1 1539 /Length2 6989 /Length3 0 /Length 8016 /Filter /FlateDecode >> stream xڍvT6%1:IHcэJ" 4"(! RRJJ(;;g{+FaE `94 H ൄch0p(C814 !Rri90(-աHW(Px>;#&J Vx1H4b80 C±2/ȁ@Po?Q4MQ@ĺM~pL+]!;1Q/6C#P 08rc8@3}GX0BD!K!$2C{@QH4EAXa KCH/ NwP `O+C/3G@(W|H {`zЁ?g%X$ @x˸y7 AHX?<< +ݐ(`8Wy 2h5-W4+?⿋ 2R756?*:*"& !114o+P_QBŽU}Co[h\ip{$o[whG7?X7+/ׯX\qoQ+q5"Bq3r~ 1 s*p_D~_ (M4p.5P0B1h0WbM +Qa YQ]z$ :i?"Ix9RIüHi /ϟJg]]JΪpssw.SqS%z,ӄRʠ>&X˟uYޙЋW-:'sMulB$?X`bb}'FA(ӽ|(p6پ u'?a׸PJG%#SViiSw9;XG8Kyvg';ܳ}a7 ٌ)IbМZWE8ѭ{ &?Q0<'<)w}}=RD2MXT^ }rN 4Hcgs=ƔBAqG16BP!CӋ^x>W}:g85.?TLMX ,TTA|Σz@ppP P/B00Y']X" ֛z"+ȥ?86xi&< "t" LQKXZ`Sϫ6xV׉fSY/ ;@{<i6<,.g/ߏ?ڣ{ŮqN-PAw]z&'yE@9G~I_#}J$g\9z^2Z'qxzhyS7_Ng ;sz}8ԟEppLɼGx*^9ߓ6x(Ufٲ? \vm/gdd*~ujPaq.VZhsMovZ/G-w~b峭%~? SiD.q|t_H_VJ)}ZB7dq dAC5EM %X=鳛'4yx,u&A"i֡0v'#"zZZQGgN=R4c;CYcuk:4madpFEX+q |0s[תpCmRG:lX$r/em4zyԣ׿NQ7ď }2E58U2 4ÏJZ;Є'Y)NNF*JbSNsXD|\c\v_&yZI*T "+1/cjoq)t(2t9 G<+DߎfKD*Y' 񓐙`r($bFpXlZ-Dw[y8glvnK߾oF!H.o p8IX"m?NH"Wu<%c=`^bz~""Ÿ fĊ "OfRS܌Y3Mw>4(+__NZN IԚP/Du n@B\^f3T]6 Lhdc,eF:QguFk;g O9] 3A'!L{(Gh9 a(B1mV{ ŸcW^i0HΌY )RXSu37xo+xoxT8]j f[ICL"-ft*uۊb= ķH|տ{J8srS;ǟ +IbhZ֪fUW*ݶ ShqiκC޳Ȋ CHX X|A߅`7#n/5x@Op2f/̭gF(j1ϴJ{ݷt5^Lf2uHO9Z8Z  BJQ:ĖpFLf_2=4i?,& Y,2k~66t~M  5ud͗3cCI 1_ 4&r:Υq;7uVj~x&h/%:ÍLYVN]Ho@:o1>9zkd_a`SUskgÒo˅s^Ce0,CbwHUҏ]\8cV 6>Ɇ~ݍedTcOaZj\O.)4\% JGMȚo\k:w' Ͻb#@UOL]UaAJrO0wE5paTQ~nSlGs&GQ/+4B]^TBɿƭ ѽǹ }29ҔHK܍UhBזU1};y:EÚvJK[kJkbwcIwHO̽F]8RQBe\FWCcu!^ O ;^5lq:"ɻVj\v@S:90,(qGB iߙ}L-jrI 'f'+#d}ʼeRDBh,F<r-ܤɪqWL~~,kbIlhUGEQw;'5yox9[Ww"B7~lZ";b%N"ZK r-zc1b{i6soBi7Qz9ѝIՂ " QB2=zknOfV-ZۖJ7B*FS.մvRPbT H}`+I]Z8>% ~8g eoߞ)NFXZ@91H@2yŝKNW-?w$_wUeU0p}#ÿvx Vbs/'>nx/-G)<2K7/̀1,Zr!rO+~7^U+SZR|:{)N[[H7)6螒%x8!杉1||WKƻ h(tf>'t[Γ[D&z2sQa~-0JRe7!Ƌ'M Ԩi}20'SwY#gD.Xwuj_chVy:k>hNȕa)"S7tO. (HOZi*,<B^$Fn#eg'? ~&i]T%{p~\FEqԣ29 ½쎫ь,TTW%X2}EꋳFOѶÔ3J[߻ݐZHlmKpcaݬ B{)Rbշ-aBSQQjOAm3LXRS97٤׶Sb]3o{nwkiC#,겶>mjLa? #)GmbS*}."<^g+|tul*B#Zܕ+}&,dJMUC FvnM?  ; Q4L6 cҪ1T?FEeunTϛg0ϔdmjy~> 50VR|ɂYjzPJE+VܖP/x%pg^k!WucOP7Оt' kڶ6 y w_:U=]׳'>/zMs`v"fO"ŁV,&5e@0{[m7ϥ%e ˨P(J+H&ɢwY+E4Sb.~n|dy՝\=lqr?hij䋀 `H#P9 ұEѱ>L]syΛz%ljb)4"),#44l4j[T3~]~l8<ݛۘ9eޛ;lɧvB%4BjR,,/3P/| pl&uH dұ-LaXS姻ݑF&èWw FI'_~ Lg( tURn iŁ =:Vov? BvU  *NvxQ5|^j;u( qwo!hR4aWˢsgvo endstream endobj 69 0 obj << /Length1 1401 /Length2 6199 /Length3 0 /Length 7164 /Filter /FlateDecode >> stream xڍxTT6R)t΀t7Hw00 " R -- -]R |9=Yk~ykϬƬk' (>?Pe`@!~ PAC#V.zn8 \4s!( /3X+JH ܠ0?4s=Qhh!Z7t POj;z|T@t(_nKo0(@B=aQ@""H45 h 2p%6Aa/+a?Jo2:1 u a=zGn0]h&׿@ dyzoQΘDha gM,թG UwGΗENs YMWCa(o*}?v09 El&1Z`[p^EXx݉1HQOs;01,I=,2< ՍƯ1@hnZg&t\[-RIAK9w$y*)a]AL,--}Vtt@[Ҡgb=³ҹ= 6[ن6'8xKJw/CĂ&n)'n~:H@Z#ٶD!A"q/꓂TȑjO ǖyO9m836ŤvMmڼ|a>ϐfb#mG ~XUb%Vј ܪ2@cd1`~ڌα;!\VC$BUZ؄AJDȉ&BgΎ[0YE= 'ͱduGg + XE*b?t?ꈼGt~yce^)T'ZId3YY̻S]#kM;U-e4-.GW'm@D~rqAfK4 =j M2L}g+&\UYRiR1-fR඗b|v3- o HI+9S{G؎5fy]BE+'\(G"SPȾzX(.˨Yu{Ww¸E~ˏyfM6|LrU]/GfxXYJdOdSܹgEhtAMUBda#:1H^qTXWx=Q%Ptq~*aeKQdJ˧R[ i#or'56_YRjt8h?҈z#MsBn\ ]E(?Y>X"3eiKD[k{ɱ,-a -a͕llGt^ean:À%_2Sڕ5A q4R|)p*3v%bJg/(?zr`H.o: Cun>Y?aƿH,Й Q.en]:tkxqkl0ˮ, /!=*L*tcS]xKY;C伽[*tH_Ǧ\C?9pTnw4}Z袏_!t6+$s:\ 15=ixYʠtAv֔ 3,,Uۤ́ʼ'ϮuKk3ւl@L}61ϰ0zۭTU)R1HYBcq'b] 5(^iDa(+qgH}E,/=fW^l桞9Py.q~!5aֱ \剆q+ oX.Kωy"%cK{>!EUc~ o=9 k Pc={1O\]Qƈ(Yml^5Aߜ3 "1}MF_q}P`Q|+pxTQGєb\()aϮD3_݇[M zPΗc-R2)W~^]Qv5Cga . SH6(]Mo*sGf=K{tUs)Ux2]$?U0 kbQ>٩F{7Tsɸo<">T%ͱ5{ǟGH͂=_)W.1|6s4}x~5 }?#ۋ %)>pk;]>[:BPLq(T4 aazuóy *C-#t~zk,&? 7ЙX7dk(D\MFzȍѮTPɆ.&ǬGԉ.Od{߮!:/R4UB槭} GǏFHY|ЀU8J{Y< /< K,Vl?7xJsszG^;2v]jS)xhf*6+)TnU#3ͭ{#8;8}1br OrnrW^ʘ2uK|QܰL+}x.ޕf&鶔E']*nQiG?!&J/&U^*F$ѠY.)Nf {)u<`Xd{PXNI݅rT0qUpTc_}TqwfNo[٪3d1KG߸XՓOLe.(Kk_D갇1>Dco)ò IШkb#c|CraULAH_9jwz&?+3*ϕՕ^5ر9M$]xg`z/R>f`ۯR j8y`SeR K^WL/1fIxj^1ڃR6&hy ^OWSZ86u?|Bʦ"38sp1\Xޢ[}f7:XȐou_j:=5*2h!G m>>I(bei0نc cݮ %U!ٹeZV%Lh%)ɼ%Ff6ݐp/?Ĕ"_w]]R6ٰ0 Iufd*,Yz4d7Z(_H{ED~zy|GEq-!̽|vQSORS&&O.ui=^#GWv= kHVa1`,kMiY+&B"? Zϕ3Y| &;*0)$+jzs([g z5[6໳=ܗk(|aG*5!Y{@MBCW,ygD8Z^k.45׃l1~=w&w#t݈^W[tLd \'~#x(R+9xSbP+{IaI#) SaO \\ae*`m@#VO#CcOȜ>1qْ{:/0Or,pq4;LԴEWft#!ۃJO10*Y} q5t-*(1{:Gʨ&e 9G,D%Cyk$4́JGYH{ /!N̿8έ@흁msTEt^O0#q~FS~dT}.";K"q\Œ픢Y#WȦU09cI"`9{eB5 qU4qL,kN\5 +nZ]#{XJ?~I%֌uÌ7#GRLl[3pFJhmnE=p.b.2q7ÍwuـĜ<k]aҭeouvr 5ݭp^e`,ƪPwG?Ł,?sٮȃőX|_lɇJܓ3JEh5kQV,g}iRQ$'Cg1cJjmv,[)2$^?.-VZgqC!,ό\U|f$<=}m(_:։U|>1}HڥK$mXl9cx/35W%NT5C-/Bm [~3P3}}[9D۾&2]G[2I;roZ/~RUI*؋}Zn˕E?Ls^ڵȒte8YfI)MoKWwf2tZjtf/IK{I|~û׏w4~mpݖ2W˶?:lPT=QE$#aB(-;28rI]buM9]O eHOB [ƇhtG50<3@"--jc6~ ?Kmsj]\M /!xCтd(zm II0oIu~O\fWk {fw3. ÇTbrdfY!nrD`ڗN{*bL xN; ټ[ətZ3}cYO >bQOk= jq1wlTrdkz{ޝ~z7b, v=TXդGރ>ʟn'xÞ,t!KY״|Bcf'3NBW*"-W@MS9>? ++VXC$D_ݻoLcy,cK$_3-Ff{I@k|m/B=!ZlDŽ*? +܃>\$4"D_r4s7䥫RAPps\S={@`>!kڑ@b\|+?gǠyۘ/~"S|їc@ÈCV)MRemjJVv Y}Ý@ !2YS)> stream xڍtT.(0HHw#C0t7R%R  !Hw7 8޵]7gw}EKG a U@Q< ^>1OMrH.H((4O:@HD_DR vYy*8ԅM䉄آ=y; E `8@:w G q[I tww;"60-@EAh&%b\k;  wAg­Hzs@ CVCx{6/f*NC G'0XM5^! E; `70l& P9\x]`F*>ey, GOB sp;5) UKACDl(#aaAQt~ |NkP_5GvPHWsE`j:ZY/  -/+? 2QTR3c227HH"\e5OcWn@U pG|B|-)77;;0Ͽh]Qh#67ǴP+GQ`6h1y0J /9P- ׷_1 ZCP}<3~!a{/$ id@S}$ѯkapW_(?*C\H~ ֿ z@!Dӓʐ ,X@A/bLu}&,e2 ʭB,UZZ3Kk?`p i~51Wѓ;3 q34;=uq qԱ.Oɘ<|&gl:+LX:[l"xGTB0&% d_gp.d%ݘD*Rj5Ft>$kyy1Dprd}r14+AJ|`݇@+2_`?IH~JrRлUZyqGл9P]D^b^j`7% ƻ|r: (eJ;PC ),?J!~73-gU`绘G8&WD<"2~=*AӠD}pt2ܭG oގm J: Л,qydpfJ_M]'bA[s1M_ M[WL顫~R8`Őw1xe=o 2C]̌קf"gt{,@gGf 8JOCHHC#L;[$ igneT+e'Ȕ_vVvONِAI7uҿ+4&[a1[xDW.g~54!A+/c]|x"Zugyco r >^j{Qv%ga?ݢحy&p5x[8u#vlTP`Q \:[';~u20#+K}=Ϸ;4’5~]P&ƛlRƀ5'_^K AR)3 50ȸåv}fc՘).;EEGgyVPJ޸^suvq8҄IW 4=<8JR>3dF u  .,Rcz*&#fH,0sNhmwtjd'R.vOȦ30Vll0.i i^W5f0p'vJ<^ZmҶ{5* ~HKphK3W/lc+>-2xҰ6q6mQț!H]=1h'(EY~'t[w >|P?[\/Y@8|!Zk7}PBL>SOK_XUIS׶}952#a4{^5S}gWWdʣNB7a2l_gc̲@e1U69Nyj #'.o8[ V$;-_2*<S9,u._8zD/;aߌ+2Ҽ3maW(?ORyfO^[cHgM'PhF iMkɭ=aK {;wG)BC][Dz=vsj~'P,WX[/Oa1k"C#JReGGKI-k}َI73hbއ+V-q ~ 3ëĿSȓvIn(/5'Uܖ۝5Ӳ~Rd?zmUY}5s.1oጁ(JXlP+nvs^سi/BR;@|8 }2VT&;#SdkiOZxz rq7p óFܽ_V7Gsh.bJmedfT6*;sBr(bWQN=HnSGpSSm[2!&f(5T FR 1^2svC8j%KzXSxsy yNu2`cPJ |Mvfig&ik'kQ6E6EpU(B i /;U8Rm+4T`a?bǀt7׬qNޔmğ=ȡYMGyG ৣNpF5}N$XvK @~Txr6 <0Ӱ%Dz^͟?NvǨP:&oer#M@qR#?_˸R;7.p~Y栖bz$J}$^:PE~L2]ZYd~oaG9fcUe98 hߞXTyJn[$I{|r~.E]Rvw>]!d}S!2>ta$K$8-,Kmsf҉9窏}-lKt*V~T<?z/!)9>>h֐}0e_=xji6j?fQ"v`>GO<0lNZh.4(u->;9Y&i{OHO8;E;-s3-J6[mދG?ԛIs]OFP<|wٲܟ&^a:h.260<`}c**m\IWrH߫ËiJ&TGB'2m mL}ʭ<_%zT,fJ{tHVg &P.~bjVSRuQR$μp53e&|*]ȪPm(^RTIYӱ 2]Q'BfKg;/'6y^`E)~՗?a3W~E>L:lߟpYpm{'*@]'Х'L÷[z2n hvZM2mjkFf̶GKv 4.`"oE22kIƳ II׶CՓM߀UUZvk胉[dO-(miONP%r>NQuOͰ#q 4I'qSJ<Ri"Zprt.XPii+hg| zy|kخ S̥ZbP/ap k5)5U ng,&BWX(y)je*=R/_Ոeڦ|%* 9{wF޺P6byy7KJh)${g`x̡D4F0Z|XkGhAq@љyd%Dn|R]]=n۲N/[qQgh7f1G~핳5 VQzKD0fQM^<̘x)=}ל +>z"rVkx b,c X83% pϳHҚ7,NJh1ǻvo }QsiVM|7{U<`#HeqW88*4%hδnpwZI9e[?NAQK9k]q!ƕ8N*ۂ|=V*b&:?3[37 qikh0Jb:'u@^DxcrbX+6Q'F'A7‡$ݪ)Gڶg$E_n L:oC|y]0-Of*JHW\  BOGpNvc^oZi+7^ zξGiNn< ĚssVXjY*{ۉ]z&m:[d9;9ER$諩^HL@Wop; |!+xR6na7j(nT)(MygxE&]N9>e}[uEpn2JNQw亪J%%BM43k!%_{ ~!kF=jYW=u^M0@240d߼W3_\ f\34ik?2I endstream endobj 73 0 obj << /Length1 1466 /Length2 7673 /Length3 0 /Length 8659 /Filter /FlateDecode >> stream xڍvTZ-# z{/*-$^w_*;~Z3{̜笰1<[C0c~^> ?OOrm'`3 P8L )PwD-8 HJ&E; P H6jg%w ` BCvp0W N){E9#y;.eЇ !w Wm3x P- NP0 q@jO_tEJpg B eM^'"x;#.P:?$uA!yP_=;f%C! ~էE@wrap Ն uu)Ź3fAWl ䷓? rCC(矎#~~ XC0d3Clwzɏ+;aN^b&_-'籠0ీ0_@ zw]:,./ p5 \҆)w_rS,OwEnNN?Nn)Ђ쿩&?GW buso t7 0;E?E*C=!6POi75oNPDzaw7d`ǻWy'. {_%nkE EpwwH76byap]G?-AbE@/o'5 P@onV]7O L!!g<">:3YSs_ R:?|=-q{2@m)5ŒoZLu3*gr-wgV0;z^#1.o*Re?y0cqi0BZ3ZʞTȏ"䆷+ou -A1lnhelC^3`mCgQs Nk䠁CLkjv=˘] ˯XzZs||ԦX5l-(QQ\B!O9<3-fEh!29s,-g Vg?U<Ғ.&?-^h"Vy0FTUsE8;ًEiZvգ{zYsۏ0)%;UqH)qoL?2AnbMo$x@L=_1|qҼU WH't^_ycA0i_ZR EGz2J޺#[{FSK (y-i' X*&qv_۾4oj6\2wx,H2bZUֈFTp8:; 7+=_$ӝ8iT#ӌZHQZW6GSGloIީ *˳mɽr̊´|QlEI{)HD؈ g0Ewj&QحLoaԌ`Oް_6EȳTw4I?J~Ȑk82"T@`9ި-38HϽ~RXn!'=gBi?w]$$i;)lb^V[iޣt{+ ;=׹ \rJ8K^,2=Y<ߡՊK" qovSU,mMwKݣ^[ ` K?nkt^U>ng2Gsy%ZHQnv2 Q%̥`u`}uO0G'Fiw`Ґ" BWBlQ- B*z ̈xv6~ 7noSwn@F_~cS :e-U#7A& C^J^嬼ΈSb@1cOp9츄)6$>ٓ}PiaNnWL >٣3Tj켋ʖt#E攼_U:=7Dj6W&Rn]sؗEA郇ߓ]-ye|e.Bzn=xqN&Qp7UA*b &3\b;-rj.a8Dk26F#g"s}9`lPfbg^q( M`rޥJqP{D>-2'=~1(gK{ޚ>*evlhhY=ykяtiC ~M,jA((,tQfBc+;iz2.J%pHe0\VpL8)^sgOAo5>vQ%Kl9܇g(~3928mw:V_Krq KN*:%%dp>CyRM CV dJ#C0&u'Ø Ke^>b_r ` /!$%^F, l~2?[Ep𭯣lk$_C9h$8I]Y2`pdž$ (z2. +nPי4>vZ~\[҄ƧAûZ0'M'Gm[;|s"HÈLmλ̚J%r0M.oG(eiXiP-C8 ܽH5qYgUH~?bK]jϼ>AJݕ!{˭pҟ_Q幧LJƒ-  ?oI>ʵqv_% V|/~M7l9Vw ^[T;pz B l\n!GШ[bLuc48J]`+MHGOr÷˖rayE)ۘJ5GxD|fki?elsvhpS .ڒŅ[ac~PjLQax%L(r@y˨Hv踪!Tաv7#oC6[+9l?ɺVy4E24rM\NٱG1x]s}}]џbq/ggNEɪPf6rHr># VWW(9 -2Q+|â4P>m$vO.Y&OwmϘ} 0W%9G}/P!E?pHOt,%c\VIL47B{U۞ɔHdj\8*N03l- ᯭKu=홴/*ᓕL||skMtR4 ?XI8eĶ$g>FFfɻF&e-5M`6;"ܭGޡcV~2kdRP%ͨKqɅqH>vXk_QՏL/I7{kNiduRWT1@ư#hK\ōlV@wan qoF~\'gMo x C%= oN |(m_La.8&{AkVV4)'Bd$#3*@ɭh#.L\Z+}~u3L^I}/jL2L?2{ȧdp0Ԓ3 -kq+n-qX:f&YYoh3#Y˚:>55]iM,ܡ,pJ 7=8nWc]6QOqYתrIPU+`#-+,/7s)UTGl#,ɉXBW'_q+}B.`؉;X]z/NyXE4sp=*Mn6։|E2`ǽ?ܲveXyD7lV88S$oӆ6!:SA)ҲʫӢ7yh7;͗==Mѭ]'9ly$ g~^ȳmBeMV>}rz45@`}t[E-{3&1(`71َ`+;nC,g̘lPZINh諎ziIz,"u|L3R"GcÍl8aυj !UO6[Ϭ?tK*{/S'Zm4{rSȢ_/w=ګT<W)"T~9C#qR:x2Er&ؿ(9byUVo E!h=]i&} 4$S+p Ge2/ϩrz %O{Y߮ ^F ,( N')T]ڮƗ?섘F+]ܟ}lC|퇉#̅x}+d4?@7cyl/.|U+<ݰ(B7\J_v (H"׸ˣ@dhqGZT*][eN%tEc eF\Yf)qJxc[`m.ku{zOrZ8;9Y^0(lA4}A[n}Ai.enY3j1BZ8y7H$* 4<3NfoSng_8H+ťtL)Te[CD(ZGS`+KQc) zXJm7h?//1mam j+v 8Nuk31ٮK E%C3غx:*_3V!jIqv>pSvы) Mt4 ̦Y8,!)DkiS}'ӣlu阼lc_և&ac[PͲ07cU<&Y;'/^qan7t:=vOj^sljQ]Vy݂T~k>FSg!uiM\۠V-θb.~zB&,oسŢi% ]W$o 2Y"Z Mf lh 5.#FLN.{;`L.aso 9u&)\rztKqa>N"ei&`>Wㅶ)]숥U̜Uzc%Ef ۇ˓jgOU 9li-$T0in %E\uٴJJwKk)lVeu&ՋR*z7AD:nMl%|1V+‹ƤoまO8DvA@3x鍊+m[tƮ^&!j CeyٸbYRBdK|n/\J ؊]Z"hqiӁlH% uqv2=}O|7Wi̖k[K{6WPD5- $c}xu=r,_apyd(15 %V1 +CI/i cGxe[0?!ZDIƬjq8Dի%K-{?ҋ-߫~}v>l%ewP"`@F∅NeV`>D&x;N=aA6G0G)CgtcjEZꊻW*fUd"&:Q:eYG_?6 endstream endobj 75 0 obj << /Length1 2345 /Length2 16116 /Length3 0 /Length 17507 /Filter /FlateDecode >> stream xڌP\4ww'qwwww.N\/{}vr^9>DQ^(ngLSUef01201Z8[+#W::Ya!4t~}4t~7HXY<̜Zv@'8rQ;{G 3ss20sss:Z ́6'ZT-͍ٞƉLflP:]&RIjn#.0:ؚTd @ǀOq @;zXؚL-qYgwg:_NvֆFS7 + 3'?'cG {g'' rd+{lMDllNph4~?͵s/251+ {F5[ lEpef@g;+ 3u=o%_|i},L?p^N@ O"8ff3hfa ;hG w1>a&vn1G19RW)"bgгY9hh?1M/dgw?;/,߫aao]f|i|=83k~ޯFFdm_ߓ~Oؘo{ޯ=F{{Sev^{k߄Yb 41Ȼ2W>ct6w}px'| n 컷=D']KU~f݁pvƼ un ^].H)Եف[)c(Ĩnֈ_Nۛþ$)urP\EYd^3g *]Õb.HpE)(E-c 7l`k;@`?Qᮉ38\(Nyts#hN)b7Bk%4NYIęW7个b]IUݺ }_=GkG4(>$,dQ5Y%&QyN3Yd_$nް=;v]qi[:ЪIØ8ฏ^ooכC08W{fTYbsNf&V7쨍/‹A9Mi=kKc2RXŜBX"xc7%i-B5sy}s1,4oV\*;?tدNjHuD9핺bؘA%3.\tݴR3ssX:ugS>G7e _gDeҬÙ DCB"xPH/˩c˽~FbC=Tl.rGY4I/fGRtnG~j!>J :>2mV.9Yl&puPqws`*}NJUV0^6S4 !KocI~^kP:NuCϓ9fcV팋_QbZ_F+Nōm-Yv1ݘb'Xtò#<xb'#.;J?,y*35;#/x⳸$V *[j@r|U9PfQr}|md=!Y*[]"/\$ t2%: TkN<=bp'Kc4~}#HFxq6_}escsb1q*\+^]^IUrVh(^- k;#"dFOxJ4(@^E$*p'U BS,!Er)P+H\.;V ~ 4QT/PBd<P". R fm+yEJ(# q|XҌ_?bp0Oϻz4(s\Q*5͔㮇!m6oF040: R(pGÁDb#:r`\AU5NV2hk**n mvy/ ve@YFdDQ~p[3WUx Gn@qFL#3 zf1%].9D+N92s:dךhhÁ.UTw5+/o{=(q 2E:R, }gthm×f+mK7x~_*0ެ !y* Lo~i5OTe<:į +va,3 U_e89Q@=q͘c]ihW႑b \ hӦNVOaj<1 H_ ijL!V^Éh cms"s+8z\;2j z+E#PWg׷ I&n+oGd _妋bcㆵQ&cA`8je7Qԩvƿe= j9yu8biqU-/J$q l:tO1#ƩxgrT j^2J=3i>dbZY4{As˜=ӁZ{WRt ɍ|^$ qESoj #̶My6c9:DcslMBy -2'j2\bYbo$i.B~w+HAP0Fög{>`4f Voec3&knZAR4{~5qi}ӽej`\3KIݲ`I-sǏg!0g 7.EBFAQCMhHRg'Phqqk0*'*& 8Zd!E7s8+47A4QHh&NXY-OS~_r(EJ4=]#'OʞQC ᦊ 6Zv-~i"ի$pLP2V,6zG\ydARieO^.o:ͥ}q!mC奉O^f2^ū!,{Һjh5xKNrKiQ驿+//'z^L>H2c 5 eN*!n75n]slꪅ3U+3{j'^;$t sjKԤ:ˁw䗂sJ6}}vNܬFx=Oz)wDSIG4N魹޻&=<<|O/Sc+E#pL%S{R $AmQd tDegG" EgbP\}#rnjwgli_鲷-J´ i_uhchZs|z~·v :+9?-i'c\1UfmԥvLT}H¦s|&|6c8B擋$$rPX>vo mYIY1iNQ Wߪsyɡ]hH&=Wv->Aǘ/m J|.KdGWk`KɅ9$([| -6WJ%UOvLZ2dk䥼)l+q@曡ﱏ]>ȅo8OkFk]JEdQꨮU o zXaeƘQP'?cxAELC)=NP8]pOeIbhE+ ; UxSpiDLɸ[U/OLSD"k Lio?^e/56>&C 9v$- >tW%ֲc4|fb~4Um5W{s\L"|\\=͖VI꯫k|) l*?F>Diޕ]p a=D\zHXAaDTP!֠}T T ӧ*gL1J:_/4Ki X'Ty*(M(Zgn9V?T CZc3xtybz[wI)+Qر+8`YqA 7{@R 62G8XQA!9,ʽl=؀K⁜'JoLBѷ]J_fwso[Q+D}[2i+'QZj{wCl]Z7o=xw2x ngz93*.abw`wi78cm> H2Q9"E<Sv0/pۭWtcj7 R#T!^Uy\ZV4kj6ݬfJP5R Y.V5.r4mgNa;BA ]00rR#m A?FaAn0Q/GȖ[ [?bZ||Ygwڶ&=@.SGg?opO:Bm4f:dyV,t5Rq>o1+$jj gE*䞨Þ25/a ^\>rG8JߗE&%Z<*=Q!J6c3b}]1l?"">Z%i1kܴkV{R$tMh\KNiȏALr^& )4̌Ӣ8 ~*䉴#O@@&ɣ2ĜnSkIx39s ܩǚ*\gh^9 HK9ZUlVNdYΙ/a[6QJ{IՍf+ZH{;L(bY/4pur㷁<7x6Y$͔%=|:zN_xŒZ1&6D4>6j8ò& }zdu '_`n: >^6~Tmo5IRS y;5vBSLLl;G'i\ށ,X+(/+ODe\H~V팤}R,^7sEriA}sK:t^> gs|g$t5>`y-$YЀ3AZ٢ "%|r l({@:('Nlf|!=AN BF[!!/CiOIOxt[h [K+\[!e1՗v)Qie9ms}=N.p4kq|MB>Є^ٟQ{</ tx#i.j9]J8'lRu 'k vƴ-6(*xJod| @n/ dA1H:%ԏqT?-.yٔ>*$ :) E-$&֔]Pebs{Q;<]7F!z}ȷ$  .ݎ Κ;SmW^mv/<^ȣ0S(qI,9hXOÌz#u^jx\CXrPG@WAV0vui6Iްy J .B BL<#IX"3*J$Tx J.F΀G{em~@_AҨGnJAh+p/eXjdGry8y7`Xa0"S\10:r@3gL88.LZlKδfمd&#XR|uN65$Ayz-^N3xmmb~n!w;'1ᛒ2΁CmcQ❋>ߎLc! 2rPݞRfPR\'(b:\ JERDk i֕mn-+G(C Ju8J7$.-Чr eNOE4<~A0Z0{7%ɔXҞ4$F+3_-#pC﹨%@ .;CDuzź{L¶УER*$O_,ɗzmdb:LPlѢKDZ )1A4\`ayyA6mn@d)Yhcq{;AR,.9S'.IeZ>ÍatEs+}N 갹:WlFAʼny-gɪeZ1ga է UýC `\NUclu#Aᰖ *"-GnF0l8:t+>˳y\o/8Jr{P0e~젯"(CDτ+ P)?!v$ E R=PUnwx]pln{Z O57> wY#OifiEj_[n5Vkpe(%)pW/\o=?ajt,XК 9EOTaG#erh-H% ?4k3 ^qy MernNdIqU\[ќxt; }tf(!ûcʨ7TӳZWl^Ǫ7_/fEA?dLnE^ȾUENbeI{>ŚO~ӝ{-6fk}aTT0R5ip[AB kKf<gRO"p[#&qUA4@nRd1S4u+l<6.UvURƁRh )ᣔx/ Ol|p8G#e 4qF0}} [?1h?Uu7 W r߆ykšIw6kLaI#:GJ6aR Fn~(Vk*M&55g{c5P 0}ɮ,U]]2WψT?ycYA9nhW=-̃_쉸f{khcdN]x)^9? Z|ώ"kRHgr#+ GFo֊UQsMhfO,_{x.Gg42|%}M`7{y@4blG`< az B(c\XΝ1L K\'}m- QNn:puk73 :>$R~5Y;O3Uxs0 nf_6qj=ڬ*nM5"rmF{IRw]yL Dz Y . !p6&_˗Vfİ/#§p?өco4ӓH=B;IrsĿC ݄ -Bx7ņ,2.-PNƜӧk>GpI>!vBzkDy%H*9(kH9{w|5̨ff98Ur 3_ݡl'yHmU5ث5mקe)f{5‚kz|mA.0Uid-Hp!Av?}~)?קE_Y2#. Tע#\A+&zY< # K¹p,"=7YD0G_8<)mB)ߞyioʨó lS)_J @b|3/$Fӡv69w|geQoJk Q겝40}FozjӯE"oe}ba Od.*=>bj)q4 (c<-ڱgԠ~Veמ] Mxc@~sҨC:p?,)>6`{E)N#,L+hKk1:4]=LSY[0WmGtFFB5of>nX*P7ptj@M[ *) b]VYuw%bL )ZlD'ȆL^ˌepSOjHc2FJF^ZHb_TiAUvO"TuV Ғ:;㔳-Qna_yfbMލ6_Ī'rSSIN(7NRں3~Lag'<.'I_>`$ Rbp]o;I߽8wzRet*qrj2`K -Nۛ"uh{'|D\j|'EH76 #b|5¸|Nï4M_d2aZqj16:w']@~w-"I2+ ZYQFS![ ëG(UՖ틁Gok1X7U<^)P(Klr9a²|:<(B3 hq(7* N<ޗށMkE5Z5J$kט~ A_z!= O,j/~*X,q*!0+iՕYXOd;`ɑ-Umǃ Xw_Ф4.D@8"/XY vox%Hx!zSlX_QrVsnQ 6p ct9HM?&Eu)嬝.+EIWY3Hq!T#ُE T.fZKU&^(_G䢫*|Sr@$]H!P ; ]bgыX#epEGJO%2<͡9Ժ# @!j0 trϹm}cS-O_%WM#`+.wK.W`(Ie_ݾڿ,~es^rfv$htfQÉic`yHǦ0q-`i @q3Hmw&6邪y3f-z)_)E^0J#bX[f~'c(Ƕ=~%113/[jKs f׸'p|stv)u+޵RS#T]8z›h%/UECAs-`! R5]VpaurCyjЪ&ěTPVzAcQEa†-Hd%ṇK`+xƵs_EG+x.x|p r*N=}ތ 4;A>ͷUyfei˵C~Nv1EJTě ^t90$Wi,(пHx"8M*ZЊ02iM,u_xЍq8Rs YqvHq_r;帚Rj@ש`x+92 O`hn] ?ИV,ҥdCt1*!Jmg-ҐWJTW:ܐb`a(`)\iP ruKJ9&'' y"IH:c4~?.A<81KQt#u(ٌ,]@JJn=ܷ{B?Rts V eX~e220MbH(.WlZLB)@매Hyمċُ Īqa^_0.oDvNޜI~@~9_2r![ƈ -C̰gCu? Y Rᆥ] ^oD 27<"s|!V3Gc /UYt(D;yQ^ka)޲&O0@^]̯bYwhUV^{>gGr"ĵ4Iw"|.?S\N:wǽ wZ~$ccx[v#>3Ty̐jCsGǝO*I&꙯L&a-]YڴCNW؋Ib;y`t B'](!j# 2ߚu0=⹨3|-x%tq-ba#!lF%0MK]RPOGZ'HNrS#16x͒'3/,{N@6:G^rnRi9S4 bzgI͋P8aeC^;.w1pc)ɲ=TF%nW-W]1y@#^V̅OUDZ}'xRQ $AE3Bj+YXTs}xӻRӇz}JF\4=WK:wdhWXyT9xb'3#Z뎜z!70vowdC(LSc{kSj|UPb.̯vKΙ9 K\"w%LūDe&7yXOUSS{K%J'XJ_id2Èцv`YMj0!AMx&Ejy-R8Ie:q5$B$t}~F#KYۭ"K_!Uݓ=͔OatrfZ7;\yu+Ywz鱭V\]y|BCɞ-&o]ט`N,ԾDZ$XK7Y0w/)-9/}g],Z7X̕9kDV- [J2נaX!8>% uᖈ˗rSf`x-Zu ׎tp9'zulҸ\ƞ`]cݴ#~cNɲH&_-Gh}u?'KM ֯vW3P'Щ@u˲T#ոZ{磩8dcV_6ox F׸tWw@5~Ok~KBv Quwz1?0'[hWz5b+.~=w_LqD=.LZ*IѴ*~O{-:NEn GFZ}(%tޯ_v?m١iS.ؕD*."RU{D&L=|Ҳ53tqO2>nJY!jٲr2'Q. ?:z<_NSo*e^YؙvJv|RDžbc]b e`F׳V/ݥs "| h ms?ɳ͓1V38lԳGd/eixeV)E2C`vuFh>7ܽ@ y3DƉ7¬y"eia%L7><1ܛ1uF #EB4eL<$=n,&]ڣo.oiA?ӋeaUhPAltf9`BBg]\+kqh;AtY(6-zf5!׬쀋F =5x8֦1_[8 P}n,Y5id$]&%'^KWwRuhO0ש"(1;0FN4BkSDSMi[ Qs'=15˗N"'1%49G+ȱM5Dr[tjZ*eT>%9$N6]f<f~~dm=3yp2\;Tn-l,dh=+*fIjI_;<Y; JE}|`8DO W S.7Ђ'?Ϯp4QCtĬ9Bv /a5T-ؚ@~:HMu:h*ҍ9JBB%6d.\QAJa)(H!fx"tzH`@AS֝;tT3:Ӫ`<!87$ ."㔒*k\>h2/9К6Hmq<Qǃ߀4yDRlx?PΡ+[ޑLO\tzd pdKԑ!|Msf!!ʷlNr98^ EMdL&;@Yi}s,>0Uy> PUQbFB]F4R;uH ,ˇ wŕsD`=Ү^mP&5OyKtg /|33K뷂@gꇮJ{aOdC!SDgWܸL ˵`TFQE`"t>l%⨈ QdGdTY .Y"nԂ'1Dg^_yLD9I7#i+,-PsE&cb(`[CYҴޗVk ^x5V 4?{w U&z2x5e_;9\W &5.5 HL'HDS9 ]d;zY$ʝ{Z&"A]7$yD,5SNgUOj֩µ^5%=P%8;e "-S1L8*HYeSjC~_Z]`N%:?>q,wTDLBӽ0%yxmeظϭ3|rKq'YQ[2 ҍ ?ۻHbb5Y _-'"G$ HvG <wfLa²̨: MclZ4A@x-<\X'K,S hrwɭ )d^D!vxT]]ۘt6MS`0/v0N?xyVQ,VȯP)oV*$--x^1Gq̒֌@mIry *kMItfT& m c_:'|l \O Rwu }= &|{QkMtz6pF4]ΰ 4?i Y"{zZ(ĶA.Rrb~/f.$0.ΗAցmCФw2sѼ뾋 P{[`:u8~.N>qlKy endstream endobj 79 0 obj << /Producer (pdfTeX-1.40.16) /Creator (TeX) /CreationDate (D:20170316135314-05'00') /ModDate (D:20170316135314-05'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) kpathsea version 6.2.1) >> endobj 12 0 obj << /Type /ObjStm /N 57 /First 438 /Length 2879 /Filter /FlateDecode >> stream xZ[s9~nmaR5UI @f&i/Nlgwdw0U& Z+0Ux UF`݅ t%OB;BڊBUP njwXt( 0L @@jq>ւﭰ@] Ę$?a)F'Z=pS-Šט$;!U0'hHvAaы@+" ޣJcJF8hEҐQ*l o(RHlC)E1X@wZi=;ӋE} s|z5;-/'‚Wy?IݻB>SXڡ)Y/S(mSȳPT΢o,+uIpH/Q(wl Fn\nXuL56b~NYk!%HRƏCCiWCJ QQF*Csd _r?@@MME{T(ô"CmNdieй0T<-*gl}$R+CA'bi28"#A8ȍJdi%HT&G=VUyw8rqc&ޭwubDis]TPDUE8" ,XOsYjRW =<:Ah3y6c=#=GK tcB\ːU#, UγM"$I+@ Bhq&_=0<*>-99 ?DџD>,Y.y}*Ҋ!ǨHzG@si*Dbϧ0T$\RE ѓB$DDr[-3R~^M4dBh`uć ؤ⽬< f5HX 2``]Va(5bvĘY' nn ]&(Aq>k5XXtv'x!#?GUήa3^7{<:fxX]#gD4:pgͷҽW)>r#)pHBcrԙWN[6vs^ɘ-wF5r6s+!hδ|a 8T[Mr1k9v~pvV6&ӹ>:8/h[Ÿ{ޛ'@.H"C{wm>^&{ZE};au9 g]?%+_#9䱬e}q2Sy&sy!rzQKyY9sY]şSy%;p NS˝ϟ<*=*1gJ*ٕcL+@1`^͠1rV/ԌF3o?yy,B3 ~(֍jlL =zj_x~9oo^=كX2@ew ne;Y{Eۗl/kRmVzRR˸'7eDkmyGEl4Rn#|'Gr|Z”+!˨dx2:GKO|&Ͼ^l|G?Mꏋ<1>;I U=dO>L!<\!,d1UMU>>|}>KW_.ğ!XW8a9o}O*>CI鴴ukAJ;vA[ړd$uTI=o]f9Q,k57U\]OB>,y۸^> ҴrʃpWٜ(ٚx2!nC\5Ļq%c8=&mO{)Ў]a]\mOӻշiW]mOgwhox%ܺ;79 :7|ˆ6eB@SQu_NS'ÆԮ!mo`CyB7enVCyR17 ީ~f̚T~M)JV;"Wd.ޱfFo"΋AmN%h~93Bc1=KFZ3 endstream endobj 80 0 obj << /Type /XRef /Index [0 81] /Size 81 /W [1 3 1] /Root 78 0 R /Info 79 0 R /ID [<1147C425BBD9DA95FAAD34FC2D2E33E4> <1147C425BBD9DA95FAAD34FC2D2E33E4>] /Length 230 /Filter /FlateDecode >> stream x%7NCAs`D]!z b+@,m %XBF#I$eY*:؁}8S¶u\>HV1v}ke1c>= options(keep.source = TRUE, width = 60) @ \title{MCMC Package Example (Version \Sexpr{packageVersion("mcmc")})} \author{Charles J. Geyer} \maketitle \section{The Problem} This is an example of using the \verb@mcmc@ package in R. The problem comes from a take-home question on a (take-home) PhD qualifying exam (School of Statistics, University of Minnesota). Simulated data for the problem are in the dataset \verb@logit@. There are five variables in the data set, the response \verb@y@ and four predictors, \verb@x1@, \verb@x2@, \verb@x3@, and \verb@x4@. A frequentist analysis for the problem is done by the following R statements <>= library(mcmc) data(logit) out <- glm(y ~ x1 + x2 + x3 + x4, data = logit, family = binomial, x = TRUE) summary(out) @ But this problem isn't about that frequentist analysis, we want a Bayesian analysis. For our Bayesian analysis we assume the same data model as the frequentist, and we assume the prior distribution of the five parameters (the regression coefficients) makes them independent and identically normally distributed with mean 0 and standard deviation 2. The log unnormalized posterior density (log likelihood plus log prior) for this model is calculated by the following R function. In order to avoid using either global variables or \verb@...@ arguments, we use the function factory pattern (\citealp[Section~10.3.1]{wickham}; \citealp[Section~7.5, especially Subsection~7.5.4]{basic}; see also Appendix~\ref{sec:versus} below). <>= lupost_factory <- function(x, y) function(beta) { eta <- as.numeric(x %*% beta) logp <- ifelse(eta < 0, eta - log1p(exp(eta)), - log1p(exp(- eta))) logq <- ifelse(eta < 0, - log1p(exp(eta)), - eta - log1p(exp(- eta))) logl <- sum(logp[y == 1]) + sum(logq[y == 0]) return(logl - sum(beta^2) / 8) } lupost <- lupost_factory(out$x, out$y) @ The tricky calculation of the log likelihood avoids overflow and catastrophic cancellation in calculation of $\log(p)$ and $\log(q)$ where \begin{align*} p & = \frac{\exp(\eta)}{1 + \exp(\eta)} = \frac{1}{1 + \exp(- \eta)} \\ q & = \frac{1}{1 + \exp(\eta)} = \frac{\exp(- \eta)}{1 + \exp(- \eta)} \end{align*} so taking logs gives \begin{align*} \log(p) & = \eta - \log(1 + \exp(\eta)) = - \log(1 + \exp(- \eta)) \\ \log(q) & = - \log(1 + \exp(\eta)) = - \eta - \log(1 + \exp(- \eta)) \end{align*} To avoid overflow, we always chose the case where the argument of $\exp$ is negative. We have also avoided catastrophic cancellation when $\lvert\eta\rvert$ is large. If $\eta$ is large and positive, then \begin{align*} p & \approx 1 \\ q & \approx 0 \\ \log(p) & \approx - \exp(- \eta) \\ \log(q) & \approx - \eta - \exp(- \eta) \end{align*} and our use of the R function \texttt{log1p}, which calculates the function $x \mapsto \log(1 + x)$ correctly for small $x$ avoids all problems. The case where $\eta$ is large and negative is similar. \section{Beginning MCMC} With those definitions in place, the following code runs the Metropolis algorithm to simulate the posterior. <>= set.seed(42) # to get reproducible results beta.init <- as.numeric(coefficients(out)) out <- metrop(lupost, beta.init, 1e3) names(out) out$accept @ The arguments to the \verb@metrop@ function used here (there are others we don't use) are \begin{itemize} \item an R function (here \verb@lupost@) that evaluates the log unnormalized density of the desired stationary distribution of the Markov chain (here a posterior distribution). Note that (although this example does not exhibit the phenomenon) that the unnormalized density may be zero, in which case the log unnormalized density is \verb@-Inf@. \item an initial state (here \verb@beta.init@) of the Markov chain. \item a number of batches (here \verb@1e3@) for the Markov chain. This combines with batch length and spacing (both 1 by default) to determine the number of iterations done. \item additional arguments (here \verb@x@ and \verb@y@) supplied to provided functions (here \verb@lupost@). \item there is no ``burn-in'' argument, although burn-in is easily accomplished, if desired (more on this below). \end{itemize} The output is in the component \verb@out$batch@ returned by the \verb@metrop@ function. We'll look at it presently, but first we need to adjust the proposal to get a higher acceptance rate (\verb@out$accept@). It is generally accepted \citep*{grg} that an acceptance rate of about 20\% is right, although this recommendation is based on the asymptotic analysis of a toy problem (simulating a multivariate normal distribution) for which one would never use MCMC and is very unrepresentative of difficult MCMC applications. \citet{geyer-temp} came to a similar conclusion, that a 20\% acceptance rate is about right, in a very different situation. But they also warned that a 20\% acceptance rate could be very wrong and produced an example where a 20\% acceptance rate was impossible and attempting to reduce the acceptance rate below 70\% would keep the sampler from ever visiting part of the state space. So the 20\% magic number must be considered like other rules of thumb we teach in intro courses (like $n > 30$ means means normal approximation is valid). We know these rules of thumb can fail. There are examples in the literature where they do fail. We keep repeating them because we want something simple to tell beginners, and they are all right for some problems. Be that as it may, we try for 20\%. <>= out <- metrop(out, scale = 0.1) out$accept out <- metrop(out, scale = 0.3) out$accept out <- metrop(out, scale = 0.5) out$accept out <- metrop(out, scale = 0.4) out$accept @ Here the first argument to each instance of the \verb@metrop@ function is the output of a previous invocation. The Markov chain continues where the previous run stopped, doing just what it would have done if it had kept going, the initial state and random seed being the final state and final random seed of the previous invocation. Everything stays the same except for the arguments supplied (here \verb@scale@). \begin{itemize} \item The argument \verb@scale@ controls the size of the Metropolis ``normal random walk'' proposal. The default is \verb@scale = 1@. Big steps give lower acceptance rates. Small steps give higher. We want something about 20\%. It is also possible to make \verb@scale@ a vector or a matrix. See \verb@help(metrop)@. \end{itemize} Because each run starts where the last one stopped (when the first argument to \verb@metrop@ is the output of the previous invocation), each run serves as ``burn-in'' for its successor (assuming that any part of that run was worth anything at all). \section{Diagnostics} O.~K. That does it for the acceptance rate. So let's do a longer run and look at the results. <>= out <- metrop(out, nbatch = 1e4) t.test(out$accept.batch)$conf.int out$time @ Here we do a Monte Carlo confidence interval for the true unknown acceptance rate (what we would see with an infinite Monte Carlo sample size). Figure~\ref{fig:fig1} (page~\pageref{fig:fig1}) shows the time series plot made by the R statement <>= plot(ts(out$batch)) @ \begin{figure} \begin{center} <>= <> @ \end{center} \caption{Time series plot of MCMC output.} \label{fig:fig1} \end{figure} Another way to look at the output is an autocorrelation plot. Figure~\ref{fig:fig2} (page~\pageref{fig:fig2}) shows the time series plot made by the R statement <>= acf(out$batch) @ \begin{figure} \begin{center} <>= <> @ \end{center} \caption{Autocorrelation plot of MCMC output.} \label{fig:fig2} \end{figure} As with any multiplot plot, these are a bit hard to read. Readers are invited to make the separate plots to get a better picture. As with all ``diagnostic'' plots in MCMC, these don't ``diagnose'' subtle problems. \begin{quotation} The purpose of regression diagnostics is to find obvious, gross, embarrassing problems that jump out of simple plots \citep{bogosity}. \end{quotation} The time series plots will show \emph{obvious} nonstationarity. They will not show \emph{nonobvious} nonstationarity. They provide no guarantee whatsoever that your Markov chain is sampling anything remotely resembling the correct stationary distribution (with log unnormalized density \verb@lupost@). In this very easy problem, we do not expect any convergence difficulties and so believe what the diagnostics seem to show, but one is a fool to trust such diagnostics in difficult problems. The autocorrelation plots seem to show that the the autocorrelations are negligible after about lag 25. This diagnostic inference is reliable if the sampler is actually working (has nearly reached equilibrium) and worthless otherwise. Thus batches of length 25 should be sufficient, but let's use length 100 to be safe. A more judicious discussion of asymptotics is found in \citet[Section~1.11.5]{intro}, which says \begin{quotation} Many [diagnostics] come with theorems, but the theorems never prove the property you really want a diagnostic to have. These theorems say that if the chain converges, then the diagnostic will probably say that the chain converged, but they do not say that if the chain pseudo-converges, then the diagnostic will probably say that the chain did not converge. \end{quotation} \section{Monte Carlo Estimates and Standard Errors} <>= out <- metrop(out, nbatch = 100, blen = 100, outfun = function(z) c(z, z^2)) t.test(out$accept.batch)$conf.int out$time @ We have added an argument \verb@outfun@ that gives the functional of the Markov chain \citep[Section~1.6]{intro} we want to average. For this problem we are interested in both posterior mean and variance. Mean is easy, just average the variables in question. But variance is a little tricky. We need to use the identity $$ \var(X) = E(X^2) - E(X)^2 $$ to write variance as a function of two things that can be estimated by simple averages. Hence we want to average the state itself and the squares of each component. Hence our \verb@outfun@ returns \verb@c(z, z^2)@ for an argument (the state vector) \verb@z@. \subsection{Simple Means} The grand means (means of batch means) are <>= apply(out$batch, 2, mean) @ The first 5 numbers are the Monte Carlo estimates of the posterior means. The second 5 numbers are the Monte Carlo estimates of the posterior ordinary second moments. We get the posterior variances by <>= foo <- apply(out$batch, 2, mean) mu <- foo[1:5] sigmasq <- foo[6:10] - mu^2 mu sigmasq @ Monte Carlo standard errors (MCSE) are calculated from the batch means. This is simplest for the means. <>= mu.mcse <- apply(out$batch[ , 1:5], 2, sd) / sqrt(out$nbatch) mu.mcse @ The extra factor \verb@sqrt(out$nbatch)@ arises because the batch means have variance $\sigma^2 / b$ where $b$ is the batch length, which is \verb@out$blen@, whereas the overall means \verb@mu@ have variance $\sigma^2 / n$ where $n$ is the total number of iterations, which is \verb@out$blen * out$nbatch@. \subsection{Functions of Means} To get the MCSE for the posterior variances we apply the delta method. Let $u_i$ denote the sequence of batch means of the first kind for one parameter and $\bar{u}$ the grand mean (the estimate of the posterior mean of that parameter), let $v_i$ denote the sequence of batch means of the second kind for the same parameter and $\bar{v}$ the grand mean (the estimate of the posterior second absolute moment of that parameter), and let $\mu = E(\bar{u})$ and $\nu = E(\bar{v})$. Then the delta method linearizes the nonlinear function $$ g(\mu, \nu) = \nu - \mu^2 $$ as $$ \Delta g(\mu, \nu) = \Delta \nu - 2 \mu \Delta \mu $$ saying that $$ g(\bar{u}, \bar{v}) - g(\mu, \nu) $$ has the same asymptotic normal distribution as $$ (\bar{v} - \nu) - 2 \mu (\bar{u} - \mu) $$ which, of course, has variance \verb@1 / nbatch@ times that of $$ (v_i - \nu) - 2 \mu (u_i - \mu) $$ and this variance is estimated by $$ \frac{1}{n_{\text{batch}}} \sum_{i = 1}^{n_{\text{batch}}} \bigl[ (v_i - \bar{v}) - 2 \bar{u} (u_i - \bar{u}) \bigr]^2 $$ So <>= u <- out$batch[ , 1:5] v <- out$batch[ , 6:10] ubar <- apply(u, 2, mean) vbar <- apply(v, 2, mean) deltau <- sweep(u, 2, ubar) deltav <- sweep(v, 2, vbar) foo <- sweep(deltau, 2, ubar, "*") sigmasq.mcse <- sqrt(apply((deltav - 2 * foo)^2, 2, mean) / out$nbatch) sigmasq.mcse @ does the MCSE for the posterior variance. Let's just check that this complicated \verb@sweep@ and \verb@apply@ stuff does do the right thing. <>= sqrt(mean(((v[ , 2] - vbar[2]) - 2 * ubar[2] * (u[ , 2] - ubar[2]))^2) / out$nbatch) @ \paragraph{Comment} Through version 0.5 of this vignette it contained an incorrect procedure for calculating this MCSE, justified by a handwave (which was incorrect). Essentially, it said to use the standard deviation of the batch means called \verb@v@ here, which appears to be very conservative. \subsection{Functions of Functions of Means} If we are also interested in the posterior standard deviation (a natural question, although not asked on the exam problem), the delta method gives its standard error in terms of that for the variance <>= sigma <- sqrt(sigmasq) sigma.mcse <- sigmasq.mcse / (2 * sigma) sigma sigma.mcse @ \section{A Final Run} So that's it. The only thing left to do is a little more precision (the exam problem directed ``use a long enough run of your Markov chain sampler so that the MCSE are less than 0.01'') <>= out <- metrop(out, nbatch = 500, blen = 400) t.test(out$accept.batch)$conf.int out$time <> <> <> <> @ and some nicer output, which is presented in three tables constructed from the R variables defined above using the R \verb@xtable@ command in the \verb@xtable@ library. \begin{table}[ht] \caption{Posterior Means} \label{tab:mu} \begin{center} <>= foo <- rbind(mu, mu.mcse) dimnames(foo) <- list(c("estimate", "MCSE"), c("constant", paste("$x_", 1:4, "$", sep = ""))) library(xtable) print(xtable(foo, digits = rep(4, 6), align = c("l", rep("c", 5))), floating = FALSE, caption.placement = "top", sanitize.colnames.function = function(x) return(x)) @ \end{center} \end{table} \begin{table}[ht] \caption{Posterior Variances} \label{tab:sigmasq} \begin{center} <>= foo <- rbind(sigmasq, sigmasq.mcse) dimnames(foo) <- list(c("estimate", "MCSE"), c("constant", paste("$x_", 1:4, "$", sep = ""))) library(xtable) print(xtable(foo, digits = rep(4, 6), align = c("l", rep("c", 5))), floating = FALSE, caption.placement = "top", sanitize.colnames.function = function(x) return(x)) @ \end{center} \end{table} \begin{table}[ht] \caption{Posterior Standard Deviations} \label{tab:sigma} \begin{center} <>= foo <- rbind(sigma, sigma.mcse) dimnames(foo) <- list(c("estimate", "MCSE"), c("constant", paste("$x_", 1:4, "$", sep = ""))) library(xtable) print(xtable(foo, digits = rep(4, 6), align = c("l", rep("c", 5))), floating = FALSE, caption.placement = "top", sanitize.colnames.function = function(x) return(x)) @ \end{center} \end{table} Note for the record that the all the results presented in the tables are from ``one long run'' where long here took only <>= cat(out$time[1], "\n") @ seconds (on whatever computer it was run on). \section{New Variance Estimation Functions} R function \texttt{initseq} (added in version 0.6 of this package) estimates variances in the Markov chain central limit theorem (CLT) following the methodology introduced by \citet[Section~3.3]{practical}. These methods only apply to scalar-valued functionals of reversible Markov chains, but the Markov chains produced by the \texttt{metrop} function satisfy this condition, even, as we shall see below, when batching is used. Rather than redo the Markov chains in the preceding material, we just look at a toy problem, an AR(1) time series, which can be simulated in one line of R. This is the example on the help page for \texttt{initseq}. <>= n <- 2e4 rho <- 0.99 x <- arima.sim(model = list(ar = rho), n = n) @ The time series \texttt{x} is a reversible Markov chain and trivially a scalar-valued functional of a Markov chain. Define \begin{equation} \label{eq:little} \gamma_k = \cov(X_i, X_{i + k}) \end{equation} where the covariances refer to the stationary Markov chain having the same transition probabilities as \texttt{x}. Then the variance in the CLT is $$ \sigma^2 = \gamma_0 + 2 \sum_{k = 1}^\infty \gamma_k $$ \citep[Theorem~2.1]{practical}, that is, $$ \bar{x}_n \approx \text{Normal}\left(\mu, \frac{\sigma^2}{n}\right), $$ where $\mu = E(X_i)$ is the quantity being estimated by MCMC (in this toy problem we know $\mu = 0$). Naive estimates of $\sigma^2$ obtained by plugging in empirical estimates of the gammas do not provide consistent estimation \citep[Section~3.1]{practical}. Thus the scheme implemented by the R function \texttt{initseq}. Define \begin{equation} \label{eq:big} \Gamma_k = \gamma_{2 k} + \gamma_{2 k + 1} \end{equation} \citet[Theorem~3.1]{practical} says that $\Gamma_k$ considered as a function of $k$ is strictly positive, strictly decreasing, and strictly convex (provided we are, as stated above, working with a reversible Markov chain). Thus it makes sense to use estimators that use these properties. The estimators implemented by the R function \texttt{initseq} and described by \citet[Section~3.3]{practical} are conservative-consistent in the sense of Theorem~3.2 of that section. Figure~\ref{fig:gamma} (page~\pageref{fig:gamma}) shows the time series plot made by the R statement <>= out <- initseq(x) plot(seq(along = out$Gamma.pos) - 1, out$Gamma.pos, xlab = "k", ylab = expression(Gamma[k]), type = "l") lines(seq(along = out$Gamma.dec) - 1, out$Gamma.dec, lty = "dotted") lines(seq(along = out$Gamma.con) - 1, out$Gamma.con, lty = "dashed") @ \begin{figure} \begin{center} <>= <> @ \end{center} \caption{Plot ``Big Gamma'' defined by \eqref{eq:little} and \eqref{eq:big}. Solid line, initial positive sequence estimator. Dotted line, initial monotone sequence estimator. Dashed line, initial convex sequence estimator.} \label{fig:gamma} \end{figure} One can use whichever curve one chooses, but now that the \texttt{initseq} function makes the computation trivial, it makes sense to use the initial convex sequence. Of course, one is not interested in Figure~\ref{fig:gamma}, except perhaps when explaining the methodology. What is actually important is the estimate of $\sigma^2$, which is given by <>= out$var.con (1 + rho) / (1 - rho) * 1 / (1 - rho^2) @ where for comparison we have given the exact theoretical value of $\sigma^2$, which, of course, is never available in a non-toy problem. These initial sequence estimators seem, at first sight to be a competitor for the method of batch means. However, appearances can be deceiving. The two methods are complementary. The sequence of batch means is itself a scalar-valued functional of a reversible Markov chain. Hence the initial sequence estimators can be applied to it. <>= blen <- 5 x.batch <- apply(matrix(x, nrow = blen), 2, mean) bout <- initseq(x.batch) @ Because the batch length is too short, the variance of the batch means does not estimate $\sigma^2$. We must account for the autocorrelation of the batches, shown in Figure~\ref{fig:gambat}. <>= plot(seq(along = bout$Gamma.con) - 1, bout$Gamma.con, xlab = "k", ylab = expression(Gamma[k]), type = "l") @ \begin{figure} \begin{center} <>= <> @ \end{center} \caption{Plot ``Big Gamma'' defined by \eqref{eq:little} and \eqref{eq:big} for the sequence of batch means (batch length \Sexpr{blen}). Only initial convex sequence estimator is shown.} \label{fig:gambat} \end{figure} Because the the variance is proportional to one over the batch length, we need to multiply by the batch length to estimate the $\sigma^2$ for the original series. <>= out$var.con bout$var.con * blen @ Another way to look at this is that the MCMC estimator of $\mu$ is either \texttt{mean(x)} or \texttt{mean(x.batch)}. And the variance must be divided by the sample size to give standard errors. So either <>= mean(x) + c(-1, 1) * qnorm(0.975) * sqrt(out$var.con / length(x)) mean(x.batch) + c(-1, 1) * qnorm(0.975) * sqrt(bout$var.con / length(x.batch)) @ is an asymptotic 95\% confidence interval for $\mu$. Just divide by the relevant sample size. \appendix \section{Dot-dot-dot Versus Global Variables Versus Closures} \label{sec:versus} This appendix deals with three ways to pass information to a function being passed to another R function (a higher-order function), for example when \begin{itemize} \item the function being passed is the objective function for an optimization done by the higher-order function, which optimizes (R function \texttt{optim} for example), \item the function being passed is the integrand for an integration done by the higher-order function, which integrates (R function \texttt{integrate} for example), \item the function being passed is the estimator of a parameter for a bootstrap done by the higher-order function, which simulates the (bootstrap approximation) of the sampling distribution of the estimator (R function \texttt{boot} in R package \texttt{boot}, for example), \item the function being passed is the log unnormalized density function for a simulation done by the higher-order function, which simulates the distribution having that unnormalized density (R function \texttt{metrop} in this package for example), \end{itemize} These ways are \begin{itemize} \item using dot-dot-dot (R syntax \verb@...@), \item using global variables, \item using closures, also called the function factory pattern. \end{itemize} The main body of this vignette uses the third option. This appendix explains them all and the virtues and vices of each. \subsection{Dot-dot-dot} The dot-dot-dot mechanism is fairly easy to use when only one function is passed to the higher-order function, but does require care and more work to use. It is even harder to deal with when more than one function is passed to the higher-order function. R functions \texttt{metrop} and \texttt{temper} in this package can be passed two functions: the log unnormalized density function and the output function. \subsection{Only One Function Argument} Previous versions of this vignette used the dot-dot-dot mechanism everywhere. In those versions the log unnormalized density function was defined by <>= lupost <- function(beta, x, y) { eta <- as.numeric(x %*% beta) logp <- ifelse(eta < 0, eta - log1p(exp(eta)), - log1p(exp(- eta))) logq <- ifelse(eta < 0, - log1p(exp(eta)), - eta - log1p(exp(- eta))) logl <- sum(logp[y == 1]) + sum(logq[y == 0]) return(logl - sum(beta^2) / 8) } @ rather than the way it is now done in the main text above. Note that everything is the same in the two definitions except here we have \begin{verbatim} lupost <- function(beta, x, y) { \end{verbatim} where in the main text we now have \begin{verbatim} lupost_factory <- function(x, y) function(beta) { \end{verbatim} and then we have to execute the function factory \verb@lupost_factory@ to make the \texttt{lupost} function. But the main difference is that R function \texttt{lupost} (the user written function specifying the log unnormalized posterior density) \begin{itemize} \item here has 3 arguments, \texttt{beta}, \texttt{x}, and \texttt{y}, and the latter two must be passed via the dot-dot-dot mechanism, but \item there has 1 argument, \texttt{beta}, and it just knows about \texttt{x} and \texttt{y} --- they are in its closure. \end{itemize} So to use this \texttt{lupost} function, we have to add arguments \texttt{x} and \texttt{y} to each call to R function \texttt{metrop}. For example <>= out <- glm(y ~ x1 + x2 + x3 + x4, data = logit, family = binomial, x = TRUE) x <- out$x y <- out$y out <- metrop(lupost, beta.init, 1e3, x = x, y = y) out$accept out <- metrop(out, scale = 0.1, x = x, y = y) out$accept out <- metrop(out, scale = 0.3, x = x, y = y) out$accept out <- metrop(out, scale = 0.5, x = x, y = y) out$accept out <- metrop(out, scale = 0.4, x = x, y = y) out$accept @ and so forth. This method has the benefit that we do not have to explain function factories and has the drawback that we need to keep remembering to add \verb@x = x, y = y@ to each invocation of R function \texttt{metrop}. It is unclear to me which pattern is more mysterious to naive users. \subsection{More Than One Function Argument} The situation becomes more complicated (see the Warning section of the help pages for R functions \texttt{metrop} and \texttt{temper}) when more than one function argument is passed to the higher-order function. Then \emph{they all must handle the \emph{same} dot-dot-dot arguments} whether or not they want them. So now we must define the output function as <>= outfun <- function(z, ...) c(z, z^2) @ The \verb@...@ argument in the function signature is essential because this function is going to be passed dot-dot-dot arguments \texttt{x} and \texttt{y}, which it does not need and does not want, so it has to allow for them (and then not use them). Then we can continue <>= out <- metrop(out, nbatch = 100, blen = 100, outfun = outfun, x = x, y = y) out$accept @ and this works. But we would have gotten an error about unused arguments if we had defined the output function without the dot-dot-dot as we did in the main text. Your humble author was himself confused about this for years and so doubts that naive R users will find it intuitive. \subsection{Global Variables} As every programmer knows global variables are easy to use and evil \citep{c2}. They are part of the way of R (or perhaps part of one of the ways of R). They are OK for ``very small or one-off programs'' \citep{c2}. If you are going to throw the code away after one use, fine. If you are going to give your code to other people or even use it yourself six months later (after you have long forgotten the details), then this method is evil and should be avoided. In this method we define both functions passed to the higher-order function without \verb@...@ and without using a function factory. We already in the preceding section of this appendix defined R objects \texttt{x} and \texttt{y} as global variables (in the R global environment \verb@.GlobalEnv@). They are global variables and we use them as such, defining <>= lupost <- function(beta) { eta <- as.numeric(x %*% beta) logp <- ifelse(eta < 0, eta - log1p(exp(eta)), - log1p(exp(- eta))) logq <- ifelse(eta < 0, - log1p(exp(eta)), - eta - log1p(exp(- eta))) logl <- sum(logp[y == 1]) + sum(logq[y == 0]) return(logl - sum(beta^2) / 8) } outfun <- function(z) c(z, z^2) @ Then the following works <>= out <- metrop(lupost, beta.init, 1e3) out$accept out <- metrop(out, scale = 0.1) out$accept out <- metrop(out, scale = 0.3) out$accept out <- metrop(out, scale = 0.5) out$accept out <- metrop(out, scale = 0.4) out$accept out <- metrop(out, nbatch = 100, blen = 100, outfun = outfun) out$accept @ We get the best of both worlds. We don't need \verb@x = x, y = y@ and we don't need a function factory. But if we change the name of the global variables to say \texttt{modmat} and \texttt{resp} instead of \texttt{x} and \texttt{y}, then our code breaks. R function \texttt{lupost} is looking up global variables \texttt{x} and \texttt{y} \emph{under those names} not under any other names. So your code using this method is rigid and brittle and probably unusable by others. Note that if we are using either of the other methods, renaming is no problem. Using dot-dot-dot we do \begin{verbatim} out <- metrop(out, scale = 0.1, x = modmat, y = resp) \end{verbatim} Using the function factory we do \begin{verbatim} lupost <- lupost_factory(modmat, resp) \end{verbatim} See Section~7.5.3 of \citet{basic} for more about this. \subsection{Function Factory} The terminology ``function factory pattern'' is apparently due to \citet[Section~10.3.1]{wickham}. But it is just a special case about how closures work (in R and all other languages that have them). Compare <>= fred <- function(y) function(x) x + y fred(2)(3) @ \citep[Section~6.5]{basic}) to <>= lupost_factory <- function(x, y) function(beta) { eta <- as.numeric(x %*% beta) logp <- ifelse(eta < 0, eta - log1p(exp(eta)), - log1p(exp(- eta))) logq <- ifelse(eta < 0, - log1p(exp(eta)), - eta - log1p(exp(- eta))) logl <- sum(logp[y == 1]) + sum(logq[y == 0]) return(logl - sum(beta^2) / 8) } lupost <- lupost_factory(x, y) lupost(beta.init) @ We could also do the same calculation treating \verb@lupost_factory@ as just an ordinary curried function, like R function \texttt{fred} in the preceding example, <>= lupost_factory(x, y)(beta.init) @ So there is nothing mysterious about function factories. They are just one particular use of the essence of functional programming (closures). If you really understand functional programming, then you must understand this. Long ago, when I switched from S to R, I would not have considered that being an ``knowledgeable user'' of R required knowledge of closures. Now I do. This is partly because other functional languages like Scheme, Javascript, F\#, Clojure, and Haskell have become very popular for general computer programming. So now we want to emphasize that we can do in R what we can do in them. But it is also partly because I now understand more about functional programming. I can now see that if you really understand closures, then you don't need most other features of these programming languages (including R). Following \citet{crockford} we can say that all programming languages (including R) have their good parts and their bad parts and we should use the good features and avoid the bad features. The best feature is closures. Crockford calls this the best idea ever put in a programming language. So we should use it a lot. If I were starting to write the \texttt{mcmc} package today, I might leave out the dot-dot-dot arguments of R functions \texttt{metrop}, \texttt{morph.metrop}, and \texttt{temper}. That would mean that users could not use the dot-dot-dot pattern. They would be forced to use the function factory pattern or the global variables pattern. And if they had accepted that the global variables pattern is evil, then they would have to use the function factory pattern. (If you like the dot-dot-dot pattern, don't worry. It is not going to be removed from this package. Backward compatibility trumps everything.) \begin{thebibliography}{} \bibitem[C2 Wiki(2013)]{c2} C2 Wiki Contributors (2013). \newblock Global Variables Are Bad. \newblock \url{http://wiki.c2.com/?GlobalVariablesAreBad}. \bibitem[Crockford(2008)]{crockford} Crockford, D. (2008). \newblock \emph{JavaScript: The Good Parts}. \newblock O'Reilly, Sebastopol CA. \bibitem[Gelman et al.(1996)Gelman, Roberts, and Gilks]{grg} Gelman, A., G.~O. Roberts, and W.~R. Gilks (1996). \newblock Efficient Metropolis jumping rules. \newblock In \emph{Bayesian Statistics, 5 (Alicante, 1994)}, pp.~599--607. Oxford University Press. \bibitem[Geyer(1992)]{practical} Geyer, C.~J. (1992). \newblock Practical Markov chain Monte Carlo (with discussion). \newblock \emph{Statistical Science}, 7, 473--511. \bibitem[Geyer(2006)]{bogosity} Geyer, C. J. (2006). \newblock On the bogosity of MCMC diagnostics. \newblock \url{http://users.stat.umn.edu/~geyer/mcmc/diag.html}. \bibitem[Geyer(2011)]{intro} Geyer, C. J. (2011). \newblock Introduction to Markov chain Monte Carlo. \newblock In \emph{Handbook of Markov Chain Monte Carlo}, edited by Brooks, S., Gelman, A., Jones, G., and Meng, X.-L., pp.~3--48. \newblock Chapman \& Hall/CRC, Boca Raton, FL. \bibitem[Geyer(2018)]{basic} Geyer, C.~J. (2018). \newblock Stat 3701 lecture notes: Basics of R. \newblock \url{http://www.stat.umn.edu/geyer/3701/notes/basic.html}. \bibitem[Geyer and Thompson(1995)]{geyer-temp} Geyer, C.~J. and E.~A. Thompson (1995). \newblock Annealing Markov chain Monte Carlo with applications to ancestral inference. \newblock \emph{Journal of the American Statistical Association}, 90, 909--920. \bibitem[Wickham(2014)]{wickham} Wickham, H. (2014). \newblock \emph{Advanced R}. \newblock Chapman \& Hall/CRC, Boca Raton, FL. \newblock Also available on the web \url{http://adv-r.had.co.nz/}. \end{thebibliography} \end{document} mcmc/inst/doc/debug.pdf0000644000176200001440000022373214525054753014517 0ustar liggesusers%PDF-1.5 % 3 0 obj << /Length 2097 /Filter /FlateDecode >> stream xڍXK6ϯ-rX([dakvr-VƖJOŋkr@@UZ*eR@׉ZiguziV~phzYSި"j_AUJӸsJ6bMOG3pe}[e)D,J~Q/:K'HQ?2)YJuL٤-jӸkMכ4MnzTԌ;(_q]@KFq|E|?^hڎ=k|"/mdgt r8J8v;z0b轟`9H8zvuNuޝw /e>%yuAzޔ~`~1 Vyg9wNvGc78YfYԏ2b2 O=4ߏ%[pBCk^б&/YTY1x{pߩR|I+3*] FU7=ȸwo(5mKr9SAй-iL wkwtzBFbuBk@ӵۓT(+&:j u ̐6Xt)Qyw>IdsG:1BA hslOvh #N~O*9xAGYMɚПbH5W-yҌ @9 "^!8/\J82bxb!! &\&!Uףߨ$X)^(X[O RBF[wAR){v^;Pp/{޼eOlH dL{}^\B}d0Fgѿw,jz !鍐!^wɣ+yfxtQ=^hG#%І|4˱tr)oy8Uqׯ57,؀/hD` "t,HpU5.`hRiIxJi$gy}Y 8LJqB>36+y4>+L J1@.Cm oMn2%|&)Rާ=?j.NwXQ#uF48IRY d |Y1n\^ lI>; oV-{^ 0I19_{&-Vچr֥g ^a. sb:w ~PKTKX˚0l^`DG$~475."^XRD$[E:h9_  e+%`zB:g硞tv9ݵnJ1ng/"2y\fF9( gPk.(A԰x$8E%}dS݀Le4ꯛ)j ~.ỹɇz-uI8,RK Á '}`Xjk3R8FvU]jy_-!JT_ endstream endobj 14 0 obj << /Length 2501 /Filter /FlateDecode >> stream xZKo6ϯ0rR/) & E6&9jԐԙq~}XvX 7EI,ꫪJݷezʈ.%KLzct„7wOl9nҘ?o#&ѩ.7ۏBd,3Vp򔖢%⏎olf™,^<fV5-߃KK"Pc^lD}h{K~;{qy?lO4I9fI??lEYoX=ǼlE*/6:e6Nn -0jmNC}Y鲬;{,]4xfDdCR1벷mh)z J@J׌4"r8@w.d8cvw#Ys_uHy~RQz6 R1Sj<.r x訅]y θQ #r4IY _ U#  tyoiԤ-ufxݩaҩ߽|FTr&[Xѻ;Z?'qU~; ;ߝq eKpJ@~a桩Oy N]+.٨}S\+'bqhn4zmm݇h(O:L GJ)IBL'|yd)ml)"=V %d:M ѷ-orT+8ˡ qz# g|Vʠj =,zeO%:0]nϙJ=p9548HS \.DiACɘg)GfYmp@ gԞ  ĒEg`rz6Ә22>aBW|1eBIXĀ :_BI 7!OdM)t)BPȯ*Oa5k@IJbXG3@v4Bf{[#*eKY% y[VGi% }l=۷טJrBP2@c@jX按N!^B'oBl n£=<%2rw'=+X*>VȠ8WNW3gE`E&.X1a\+hL4\%9cF`mټ~KtS6o2A-)~|9hUx ]CRRG)@. P iPvGNJ~D{!_vKyx5.TӆXbX:ŧ?N)c.-hwIpe!v7aї"aw-9w{Ȭ)(MV9Rzrˋ¢ENW \/2wYrEڗip1\b2QM[yu]@@,]pXW دBk "VBk<5s^2[Q;E?L33\sJЉ^D"@BRah2^F2M- / 5I= W]㓈-lӊ] O4%g2V/Ke^κL +k &Մ :KQXnq_a1c n]m8/9xFuG3XKͪJ ;aY~0p՛<=u=Эyݜw]ݽs.)^R;d+_QYCYQ.٘95VQ}8Ӣ`yy溙zUa0)X:|GCox*G{=:މʥ>TرC@iRUKYLqP 5evC_wuvz˗|uͩ-؅DtD8gWV= uHq%?AU9G&?8H@Ωsı81}NsDSn?L=b~Z!T{ojjR Uٯcbzl:KC" gĂeW$-s2?u<#ŜN}WXCp†|`\~/e]Q%nEyeSYfC:}rDa5|x;6Ѹ9~Kx>H3&6/^eƵyUT^K>46cG/͢/%BG v+rBf,&V E`buEP8I)|s z- l;l=y,_!)21knRɒtgw40M endstream endobj 19 0 obj << /Length 2883 /Filter /FlateDecode >> stream xZKϯhIN\MbA,r"9hlu[ԐTӔbU|WU_7߽ …bwwsSRC7[J4y8-W*yXg&y:y,9ͧ};Kb %w[FJ~‹L'or;zSS"R܋- C^% =t+J/q.E2K]d(wzvf_6R&Sg}?L)/gV[;iL&?wlDÛ bePL{Z!m0D~~]|vٹ/5 ?է|OOӘkh+s:l c&8W[YQn9D*֯|~0f41MO:A{nMLE,%j/?g|7 r4x։Y ]U?>"F{-W/{ zA `Gbc_&iڬu:utڪϲro&TW |B`Hz1sD\gu݆&(Uef'HG)X kn©֞jhoΛ(PK:a OeS5~_Eӆ3n 6>dxtӃ5{)z˙&J͠oP׆'TēxpGzM~_UfGѷP)+l q?2F}=`*B-9ŷyO!2 ۱@c8'0>rpoSˎo#eJ&zP:w ;{ ށ=C#n3"}d񉭺"x=;@ϳ%3pĎ u YDŽq2"]]^l_8eʇ!_}y3l;=UOd[%t>"C8f)M)숤<#I CqA|Fl(K!\WU mYi- !jaeF_G8 )%_U>7̔7g+WQ E>X> A;^xRVp$%EuG0@W`$:MBгc7{>fe> DsS8RX%j{; w $/b2&hqh 5k͙ oTlIfQ!]Y`B$k0DO "GjD?QHZTѤ BY(GM( YĪZNu+*X7Wx_c~dۀ(]R5NNSF: _^6\(gj3`7c^8&ۡ$0NDW ' >.0;1nf9gV{/+"b51@MtP'ڜ6JRR%,}*9 r(ڄ!8e(InQ-"¨9!3X39/]e^rl˟犨Uf!GekR吪e+.R WL>Z&$1)~?>)Yo]RPqKGMK=y/#]SD N x@#x1 ޓ,؅z2up+^E%ugFӡVuXTӼ𐆖Â`Ĥsx?r؍o k˂^epjQp?jP ˗xl|rFaޓG#[`9UCA $Zsm$,P)2:¼=uޝbs;?Nޱ p&LH;K{H [qЬOjRZZL@co!T#.a>\M^xZbsшUd_w hM <|x+|Yr®1,VbGw k.ۘgg1- c=%y("ͨ}08;1 7?KO1+t&Xcp(ױQ_gˊh=s!}Tϲ] Í:y:N0/`XHf,]؍m%pq;`U;~WH&( }})ˤi'߇m6`!y-a/t1UC]<ײCJ[;Wh> stream xZKܸW | nZ|98IE=hZi=@Rq~}s(udHrDQ|T}UUQyW)K\]qe*ц nO_6ܥvWYW-_SuS]w)ç׿{NaR >sgVfdUGLaq~kƕ{'e8N(W;Y>vM߯@."Q,/eu2(5=n{W2zƽ\k!]ݴ!9H~_b,-tvOI"AEBǐwnنW[3X'&\2T;k,EN|֋P|*NP|#+$GvCPG/9Z2W\24nJd:~U:iqۋPp^Ju+h2% LV]I\vw ) _bqXfb@JDjI,zpNS-Okjj3*"?Uy\ue]8>>[WZ %_ #ef{Sx}%h`h[HQ -g̭'!'&JY6j".6ɸ3aH9 Ca(faO(ٴOK K.jbp&8!܋|Xn^ܞ .7~14obϸb&;l14MX pot$)bRv9t!), +&z$x)›x fr,[1p[%cަB .Yh?y^+|ytx$R7_CŻ~تH-I^Ǣ9(.M¨5Q `|c}_oIqK]Ckky-5q ʱ6[$Q݁:5rЎ&d$G!%L 89pF=%S({(-U;}, Xa=罘$ƛ-j)caVnqK,&\4eU6 5=cюN/RoYO@||ieeq`42|p!Ya_X ey ߰&+%b1&h'  V^z^|yn7 HXT 'r3 v RCk4%^:]l6}98=@4җwkuc9|Rn{O;|ʩQ o6դ+gly:v~bxtPqK\#YHZQAiR۵H2Q ye? "y#k_uemUsyx&MtǐxsW?M %}5 O9~r>uE‡pNOB^RT~A]ZTiqvfBN ],DCAѾ\ 8m{TY$ q':*\J/+zD{B8 A>B(DN)BE> stream xڕUMo0Wp)`l>=R"[ۃ. +4ɿc@\o<Wn)*R4 eTr^CJ'IXG Oҽ8XxV9iZthCcYX~\vP(D=yI)9X`(=GPW$ S5zڴ/JvEWO[oi?Yͫ"Ұg#ZZR-Bp̺l ?B7@0G>Ç@4<c50VF ~JeH HPFf.2vW`{mq>\|J/o8OSTVe%9 Vuicoܥr@Kbnު^Cj{) P} V/jfoZ[l3"mJ4` V',uC.ܳAhwUÕ$a9wϱ|E9aI9!f Ɋ @p9V=Ee^xt&23(}RiNI,RsV)/S/t gQ&FG-s= _cgVh?س^i!u@_/rx=:rQ4N]`IF|k9hosCOb-oV/ [VC3pR ׍l sRsvE.u4$<|_l0-3˥ -cp%U/= endstream endobj 27 0 obj << /Length 212 /Filter /FlateDecode >> stream xM?@oH1\@ȻNbjະ)+P $`Nog7)SdgFA/}q7`o:Ph>ggiLjaDGIſ|:w/Hxx@@6/cGP!R^!'TH3=,њR;gXK%Hs$h%Ƣug+> stream x]ο POG@] b`955DS5f&>$)5}6+X8!C %jPfJ`Rjן旭Zz FB!‚_C4KhEoM> endstream endobj 29 0 obj << /Length 172 /Filter /FlateDecode >> stream x}1 @bم #BBRPQH!(9eٵ(E!/I )txAM )e8E!Q,LF.vQīI m%;L>?9:^j7N=j AvG ) E endstream endobj 30 0 obj << /Length 190 /Filter /FlateDecode >> stream x=ο POG@]A(AAM T EmB/fo#AB߁;ˁ.=t谿6;)#ɭI;~=7~.ɄO.;gJ +92 = Y5"$*GE1_kMAێfb)n! a!"t5}6)G endstream endobj 31 0 obj << /Length 238 /Filter /FlateDecode >> stream x]ϿN0/!Қ?"R)ĀZF@j?y=D $|jr=.YMxzH]lo-_iVSȪNTBᆥ:'zzLfU/2k`&[~6bT~4Ѓ{Νh{FRDJ*+oFt:^Cf\8،&и%FӶt[ӂ~Jl endstream endobj 32 0 obj << /Length 182 /Filter /FlateDecode >> stream xU1 0_:`/PMCv(j3:9: U:zI!78QL#NN"# ÈDkg%- lcdrE,_ω#+h(  0RGC:k3dV4P` {@1gy9xΡoi|KZCf1.$n > stream x=ͱj`27h 6] fԡtҎ*:H|(V;QX\Fje%E)MT̂k1RvO1j}H9S B47Z4^7^;r<ȇ0)z!Be,; e__=FʼW|/Hd endstream endobj 39 0 obj << /Length 149 /Filter /FlateDecode >> stream x3135R0P0Bc3csCB.c46K$r9yr+p{E=}JJS ]  b<]00 @0?`d=0s@f d'n.WO@.sud endstream endobj 43 0 obj << /Length 192 /Filter /FlateDecode >> stream xڅ1PDPl Ċ1D+ cmq@IA;WL0 v xlagnEt4'g'Ty!n{> stream xڅO; Pl {I*L!he!Vj)h-G,-$q̃T;LNuihuɗV'/2O4Ĭxq7 $$M | ,G\W{F9^ـ"J[|rY"ֱ4nT?pGrjݬc_e*[M* endstream endobj 45 0 obj << /Length 114 /Filter /FlateDecode >> stream x313T0P04W5W01T0PH1*22(Bs<=\ %E\N \. ц \. a`?r 5ez endstream endobj 46 0 obj << /Length 116 /Filter /FlateDecode >> stream x313T0P0V5W02W0PH1*22 (Bds<=\ %E\N \. ц \. c``pzrrlI endstream endobj 47 0 obj << /Length 171 /Filter /FlateDecode >> stream x313T0P0S0W0P01VH1*26(%s< =\ %E\N @QhX.OXǏ?1 ɁԀԂ2} pzrrxS endstream endobj 48 0 obj << /Length 116 /Filter /FlateDecode >> stream x313T0P0V0S01T01QH1*26E-ɹ\N\ \@Q.}O_T.}gC.}hCX.O A-4v@ ù\=emH endstream endobj 49 0 obj << /Length 136 /Filter /FlateDecode >> stream x313T0P04U54R0 R M F0\.'O.pC.}BIQi*S!BA,???PP'W ,5 endstream endobj 50 0 obj << /Length 99 /Filter /FlateDecode >> stream x313T0P04F )\\@$lIr p{IO_T.}g E!'EA0XAՓ+ ; endstream endobj 51 0 obj << /Length 110 /Filter /FlateDecode >> stream x313T0P0V04S01T06QH1*26 (Z@ds<͹=\ %E\N \. ц \.  \\\A endstream endobj 52 0 obj << /Length 103 /Filter /FlateDecode >> stream x313T0P0W04S06W02TH1*2 (B$s<,=L=}JJS ]  b<]0 szrr$~ endstream endobj 53 0 obj << /Length 117 /Filter /FlateDecode >> stream x313T0PT02W06U05RH1*22 ()Lr.'~8PKLz*r;8+r(D*ry(01l;cNJ l r \+ endstream endobj 54 0 obj << /Length 184 /Filter /FlateDecode >> stream xm=` .߁1D'㤎]ċ8p n #~$(}L> stream x313T0P0b#SCCB.c HrW0r{*r;8+. ц \.    `|$lthvb)،6 Q .WO@.̌r endstream endobj 56 0 obj << /Length 145 /Filter /FlateDecode >> stream x313T0P0bCSCCB.c I$r9yr+[p{E=}JJS|hCX.OH" $`@CLmQD !( ,x endstream endobj 57 0 obj << /Length 123 /Filter /FlateDecode >> stream x313T0P0bCSCCB.cs I$r9yr+s{E=}JJS|hCX.OLŘN|? ?*f endstream endobj 58 0 obj << /Length 194 /Filter /FlateDecode >> stream xU-@%&c 迨 P$u[GEev K1h8&nL؃-;CFXA_>pi ?!&+R"c(ɉ(N+ƵGSroW\"Ϡ+tIߣmśh5| dXB]/qs| endstream endobj 59 0 obj << /Length 197 /Filter /FlateDecode >> stream xڕС0jrf{::"#a e0XvtmCOh)T^ aLiOvG ֤FscT,r0ʖSiNfEN`Y9Q3pqNN3O0n ZJ4&}5ty+A -ؼ+ԀW2>z endstream endobj 60 0 obj << /Length 236 /Filter /FlateDecode >> stream xu1N@ E"a|$H" * DH$*\!G2HQwmT 娔DJsՠg?x#Um<>r\Iq+wn˜24wC0MLNLtA 9a=tC68yF̛aO2/a<&E>oxv endstream endobj 61 0 obj << /Length 124 /Filter /FlateDecode >> stream x313T0P0b#SCCB.c HrW0r{*r;8+. ц \. @†H0 z(QՓ+ +T endstream endobj 62 0 obj << /Length 167 /Filter /FlateDecode >> stream x1@G(LtYY +D ,ZZhq@IaGhf'_Ϭgɂ#}SqblF.b27+e=Z3bÏB&.ْ`9:Rs)U*H]J^w¤%HRQC/~*hGo8 endstream endobj 63 0 obj << /Length 191 /Filter /FlateDecode >> stream xm= @ x Ղ?` A+ RK E[)S,;h%Xfh< }:ex\T:8^pVQ>EmqF;)C}FE$ sXBט^Hȃ@?|bezYETZ_q-`R!a~K<.Kj/\ endstream endobj 64 0 obj << /Length 187 /Filter /FlateDecode >> stream xڝ= @g"#Xraˀ!N;GYg!BR@[]/w%ܔ|q&?,Lƹ+x"ҡ@yRx -0遍~*?umֽr!0e] EӐ`%Ж*sz endstream endobj 65 0 obj << /Length 182 /Filter /FlateDecode >> stream xڍ1 @EIk9 n!he!Vjihh%GL2Φօ}g?ofǜlS>'t#k5?;2{Zd܆L]rBC\"iJzD=[5/jLAOQ~ߏ@B_Zh4J5Ϋ^RMuZ9uEJ endstream endobj 66 0 obj << /Length 193 /Filter /FlateDecode >> stream xڕα@ .<} L &`qRG;[pqᾤ 5)+H+9s<^&|XLפ*L,r0S⺡MNMC $z11wx!"><Zi&N?>cH RaH'c ˁ:ѴmO, YK endstream endobj 67 0 obj << /Length 201 /Filter /FlateDecode >> stream xmPE4K BBrmM>}}V́;ܹiԥS=T'u9&a+NFF⻥OK+ VZ[( f#2;܃J>PDCv@Z }•cC 7'* 4u.7mp b2rcZI_ endstream endobj 68 0 obj << /Length 154 /Filter /FlateDecode >> stream x313T0P0asSCCB.c1s<=\ %E\N @BA,@Az H?*;&p4Aka[~ `1.WO@.^ endstream endobj 69 0 obj << /Length 253 /Filter /FlateDecode >> stream x}J@#E`}!k.p` A+ RK E#U(y[,gǰzqꜟJz`;볟 Z.(wk~x|ws%{/xv4lnfxYDdItSn\#7@efd=`El6X4jB*`f}E_h0bj1SL̀,x>v*!*:MƢ:?-y%ۧF@-7> endstream endobj 70 0 obj << /Length 161 /Filter /FlateDecode >> stream x313T0P0bcSCCB.1s<L =\ %E\N @B4Pe,B @d ?  B~oAd $?HzI8'W z endstream endobj 71 0 obj << /Length 132 /Filter /FlateDecode >> stream x313T0P0bcKS#CB.cC I$r9yr+r{E=}JJS. @-\.  @x@@?C1;}pA|.WO@.O) endstream endobj 72 0 obj << /Length 169 /Filter /FlateDecode >> stream x͏= @_#d.͟ B Fp !VbnxK q\`eW񊉣~2c!GOj .mO1dXV|-M -X endstream endobj 73 0 obj << /Length 115 /Filter /FlateDecode >> stream x313T0P0b ebUel䃹 \.'O.pc.}(BIQi*Sm`Pz<7,{\W endstream endobj 74 0 obj << /Length 171 /Filter /FlateDecode >> stream xڽ= @[&G\@7!Q1#X^,7[n8ȃW3r9Al&]'-\,cx܎` s0 n ==Cbq1 SeKvI'mr/)T8R`5zf endstream endobj 75 0 obj << /Length 155 /Filter /FlateDecode >> stream x313T0P0bcc3CB.1s<L =\ %E\N @QhX.O$$PD2`$ȃ@H&?:7 q.WO@.ll endstream endobj 76 0 obj << /Length 183 /Filter /FlateDecode >> stream x}=@XLvNBLH0XF[٣Q8ab^2}KJ)*%Kw4 +@@)juE]VQzB[_P :9o.A@9(dq%7@'a/=ߵG.^Tyh p A!\\[>P: endstream endobj 77 0 obj << /Length 200 /Filter /FlateDecode >> stream xڥ= @g fI"SZYZZ(ښͣ[.(wS|7q4HRYs_8 LWCNv?$#(%p:lHj&5pGٌs V,S*7;(&A]t, -GT@8=F> $_ȥF<5ޯ endstream endobj 78 0 obj << /Length 158 /Filter /FlateDecode >> stream xڭ1 @ПJuj!Fp A+ RKAEh9JAqc![̃I`4-ØԈmjw쎜{Vky\Y\/|9êe_Hx+5C8#$RC\B"xo<Iw endstream endobj 79 0 obj << /Length 185 /Filter /FlateDecode >> stream xM1 @4!s7q5@T0XErr,,2ԎgDM&rv=pr^ًYMyaoY!RrGB7 }KD#"eZSW!("PB Ca}96A=> stream x313T0P0bc 3CB.cS I$r9yr+r{E=}JJS ]  b<] @AH2`h AA~[@ Lx:B endstream endobj 81 0 obj << /Length 148 /Filter /FlateDecode >> stream x313T0P0bcc3CB.1s<L =\ %E\N @QhX.O` $0()D? d=H2cģd> endstream endobj 82 0 obj << /Length 174 /Filter /FlateDecode >> stream x313T0P0bcc3CB.1s<L =\ %E\N @QhX.O `?aC00~ @2?Dv`N2~+ߎ #ȏߏ`` ?G#g``?A6 H@RՓ+ ɝm endstream endobj 83 0 obj << /Length 176 /Filter /FlateDecode >> stream x}1 P S2Y<9*BV N⤎G(Ϥc|?!?'S3>gt#͔+^wr~ÏB.9#W!H"Px+"B I / >i`$f_$hj(D{{-ӎ~b endstream endobj 84 0 obj << /Length 141 /Filter /FlateDecode >> stream x313T0Pac S#CB.# I$r9yr+Yp{E=}JJS ]  b<] X큸7001;j?0FJ endstream endobj 85 0 obj << /Length 222 /Filter /FlateDecode >> stream xe1N1E*i| .-V Ab $(UAݣ(>B,?kWEwk.i;O%/$=iI^>$nF6x0ڄʬ ͎X⌾T~fGvlgOȠ<|HTGǂ+ˇD5WTL3*=2,<8h endstream endobj 89 0 obj << /Length 189 /Filter /FlateDecode >> stream xڝ1 @EL70s @BBZZ( 9Z#XZ:IVt« 3Or#xjBN%7nt8SjImYǤ+]'RzΚT;l@TJ @ hxjze/ ]a;AdD/ak+?iTRS" }G@ endstream endobj 90 0 obj << /Length 188 /Filter /FlateDecode >> stream xڝ1 @EL/ :ͮA"EVbE$Nxg1q߄l">h.!Ǧ^OXRcR 7'e|ޏՌ5ٔs@ th~//iKxO`LГtIVx?>(=Cuڕ/@RriniMoEBs endstream endobj 91 0 obj << /Length 130 /Filter /FlateDecode >> stream x-ɱ 0 g 2'0-k3:9 TGAEfڢ|7lXU:x@='e; m;P=fpq}kw+*\ǣҟ;ZFy2ddL*R!sBY ,P# endstream endobj 92 0 obj << /Length 131 /Filter /FlateDecode >> stream x-1 @E?^ xЙmV"RP:ٙ&Nwo\%红V\xA=y1:nwՇ Y/ t4M22DT&2+<*B# endstream endobj 93 0 obj << /Length 94 /Filter /FlateDecode >> stream x3230W0PaCsKCB.K &r9yr+Xr{O_T.}gC.}hCX.Oz 0X [\w endstream endobj 94 0 obj << /Length 153 /Filter /FlateDecode >> stream xڅ̽A ɉ̗eSH" ͣxwN5gvZ88Kb񀷲>7TzOoײC _.)k̓<j*zP R.NO|[ƧmdSL6e\6NdV;x* endstream endobj 95 0 obj << /Length 101 /Filter /FlateDecode >> stream x3230W0PaCsc3CB.K 'r9yr+Xr{=}JJS ]  b<]d7`= 1S'W fp" endstream endobj 96 0 obj << /Length 140 /Filter /FlateDecode >> stream x3230W0P0W54S0P06SH1*24PAS#Tr.'~PKW4K)YKE!P EA 30` Px҂!Փ+ &, endstream endobj 97 0 obj << /Length 162 /Filter /FlateDecode >> stream xUA @7 u XJ0fԪEB ,jmAi"=xj1k)%g/ I|<$7}Mlx]I'$K>&ȔGȽm~i\ԅΏG8¢x8M lj0 b+12 endstream endobj 98 0 obj << /Length 94 /Filter /FlateDecode >> stream xM=@PEx$^!R { T߱4J2:*54`ƴ"f@BJJ7"i endstream endobj 99 0 obj << /Length 165 /Filter /FlateDecode >> stream x323P0P5T06V0P0PH1*2(Bs<Áj=\ %E\N \. ц \. 10703H01X010000$E@PPc0n`0\@r ;g0 endstream endobj 100 0 obj << /Length 172 /Filter /FlateDecode >> stream x3134V0P0bSKCB.# I$r9yr+q{E=}JJS ]*c<]0A?  @CA2@5@D!dPICd \\\^ endstream endobj 101 0 obj << /Length 208 /Filter /FlateDecode >> stream xѱ@?Xf!FHJ"BJ--|1}_aau=΁egM]p,+qeL?&wXis)|›p1$Myƀv3|-{Pe!,GpPghFdPCWT-kCj( gf"{![ޗAftC endstream endobj 102 0 obj << /Length 235 /Filter /FlateDecode >> stream xmj1 ^=;Od-$AhO=Xބͣ{N"Q6>fB&?N'izmf4Z||DJƠz.rM/T%V~rEP@X8 \IU{3bY1Ez$'i=Sː†LBp6Pu 8:R [49޲&&Z'XΝ_%m endstream endobj 103 0 obj << /Length 209 /Filter /FlateDecode >> stream xڕ00#pO`Amd3ALd08Fgh< @ڴ_e4f, kӄqH2@5(xEB3 i3 5C8ZA/:L^pXpkFbIF2qUNCE>_c+vdn&~VP endstream endobj 104 0 obj << /Length 260 /Filter /FlateDecode >> stream xڭѱJ@? LaZ 4ܪ[-'BBRP̛*y+uvg!B#n;MG4Zly\Ѣ瞚-Sӟ-5#%_v^QdRPDZTRR OԵ@*(AWE],RIR57P&?2oƐ(~#FLg5=dF#zvL;mf&,mXJ[a # }R:%e-vvS=U:霾es endstream endobj 105 0 obj << /Length 194 /Filter /FlateDecode >> stream x3331V0PaS SsCB.S I$r9yr+p{E=}JJS ]  b<]Bc``D@.0L1S?UB7@`JJ=SP (<9P@=mrC%hAC!@ y`> stream x353R0P0bSCSsCB.s I$r9yr+s{E=}JJS ]  b<]d `6`RAI68؀L2`%Hv0)"G'!P5Ⱥ AJ$ `G@%\=Mx endstream endobj 107 0 obj << /Length 254 /Filter /FlateDecode >> stream xڭѱJ@?l&yM"&`p` A+ :--7`kMg+ & XKf]{t\)pp{ =SuV=UvT]j__Z]>5(6S`-̗oնd IS03aLlB".!1Ox&pcJ&HۅrI)ܔ_,v0{ltT颧 endstream endobj 108 0 obj << /Length 125 /Filter /FlateDecode >> stream x333P0P0bSKSsCB.SS I$r9yr+r{E=}JJS ]  b<]?T b78) s)hb y.WO@.!7 endstream endobj 109 0 obj << /Length 106 /Filter /FlateDecode >> stream x3ԳT0P0aKSsCB.#3 I$r9yr+q{E=}JJS ]  b<]acW3v\ endstream endobj 110 0 obj << /Length 140 /Filter /FlateDecode >> stream x35ԳT0P0bKSsCB.S I$r9yr+r{E=}JJS ]  b<]d3 eR/i& 0 d`L?`@!\=Afl endstream endobj 111 0 obj << /Length 244 /Filter /FlateDecode >> stream xu?kP{<0p '% ur(vtـ]G|X#y=8. [~< 8:İ˵W|Ք.1wQ@jH>yo瘣1 ý 8hFx]*18yTB,a PM 2< fep\$I5+zG4VY5D NZ@fW'coQ! endstream endobj 112 0 obj << /Length 243 /Filter /FlateDecode >> stream xUпJ@/.0fMN?Sge!VjihkR\AKT֩$EuwM1f``w%=.>jRWRkRnKO/VSYZR7T@fm큼0 {düۘ=4]L3Ȧa@bli@T|`MLjb4L1dtFW$G *.|ؙtI6Dc endstream endobj 113 0 obj << /Length 221 /Filter /FlateDecode >> stream xڕѽ 0𖂁#x/i*U ~I(}JK "&HrtF*8 q0Y Ȁf4  ״ 2o@.08BDu uf,HW lf(ze~ަ_Q@6+L6elZv,XKP~EԺe֩N=v< endstream endobj 114 0 obj << /Length 256 /Filter /FlateDecode >> stream xUϱN0 )K~h{=B @!Z̏F%Psw|J8êt0r^jE>U KWk=?ܻbuyJz_uEk?ƌ!fl#>3Z;@'7x &&ȖNm9R0!G/aEFD+E$ьMX^>a-M=:upǴ-i}GA^{sywָ+=# endstream endobj 115 0 obj << /Length 150 /Filter /FlateDecode >> stream x3Գ4W0P0bSsJ1*2" Fr.'~1PKW4K)YKE!P E?<@0g`A bP>T*L`)`J+F Hʃr Wr endstream endobj 116 0 obj << /Length 191 /Filter /FlateDecode >> stream x= @B\@7JL!he!Vj)h9G,Sl3X,fuVsmnFlzl @Hw4HH/I'S>[ِ҃C#^(>l \3X~ZPCAJ'BEH?4u7{-'ROr%xVݙ÷C qBszxa endstream endobj 117 0 obj << /Length 240 /Filter /FlateDecode >> stream xm1j0g1> stream xu1K0W v8b vtr@?')ΝCMHH^K^Y/PX.8\> stream xαJAYL"y.p1bLBASP=p2E8n@,ofgɌKWR+s8 5srzJ 5W7Y ~k%vTZ^{cٳUoC0˖*STB`ζ&%EQ0b43e}"_馡}l endstream endobj 120 0 obj << /Length 204 /Filter /FlateDecode >> stream xm; @ . Vf.1L!he!Vji(X({8Qښ}i<"Ńf{Qj{T3Qes:.{TŘ4 5E&6%/_x/PAP02g0yp&dBw:+0}ATyM6Ӣ5l.5iK|T endstream endobj 121 0 obj << /Length 198 /Filter /FlateDecode >> stream x3134V0P0R5T01V0PH1*21PASKLr.'~PKW4K)YKE!P ETD0S$00|`A; 00* ?8Q"I&PMb`߁q ̍:]'W ckA endstream endobj 122 0 obj << /Length 182 /Filter /FlateDecode >> stream xڍA `'?(   AZDjX.̣y҅Tcu 7f: 5P L % MBb%_/#jƒ&Ύ҄Z{Ue5TƩ-ՇW6j@-OӉ;*`{^[bTd7 wSZ= endstream endobj 123 0 obj << /Length 198 /Filter /FlateDecode >> stream x3134V0P0V5T01Q0PH1*21PASKLr.'~PKW4K)YKE!P ETz !HԱ` |P=iu D)ph<krF=A?0`> stream x]1 @\B/ 8M(+Tr!bI q23;9nvdC)lGUgwIBf6$32d@fr@&m)2ϩ\^sϵ2HQRQO5QJrh MTrL@V@ endstream endobj 125 0 obj << /Length 141 /Filter /FlateDecode >> stream x3236W0P0bcSKCB.# I$r9yr+Yp{E=}JJS ]*c<]70| C`003a`\=&[ endstream endobj 126 0 obj << /Length 237 /Filter /FlateDecode >> stream xڍJ1ƿ00 v^@9Å+T[}> stream x3134V0P0bS CB.C I$r9yr+r{E=}JJS. @-\. ?&iNa`D~700n?D䇁$7 \\\y endstream endobj 128 0 obj << /Length 122 /Filter /FlateDecode >> stream x3230W0P0aCS3CB.C I$r9yr+Zp{E=}JJS ]  b<]0@A@8~? q0\=(CE` endstream endobj 129 0 obj << /Length 150 /Filter /FlateDecode >> stream x3236W0P5Q54W0P05SH1*22 (s< =\ %E\N @QhX.O  P?`E6?gc?P~.WO@.W endstream endobj 130 0 obj << /Length 196 /Filter /FlateDecode >> stream xڵ1 @Еir3'p.#BBRPQr0E:? d37u.{ʧHrCqJzƁGz$15x2`ts [R?L3؂rkm;x3HKv@%.oԐ nn**ɍ@ÔDr endstream endobj 131 0 obj << /Length 108 /Filter /FlateDecode >> stream x3230W0P0aCS CB.C I$r9yr+Zp{E=}JJS ]  b<]?0! ̃`qzrrƂQ. endstream endobj 132 0 obj << /Length 177 /Filter /FlateDecode >> stream x33R0Pa3scsCB.3 I$r9yr+p{E=}JJS ]  b<]?`@=:773n? Da`N``` O7Nszrr#߈ endstream endobj 133 0 obj << /Length 147 /Filter /FlateDecode >> stream x3134V0P0bcsCB.C I$r9yr+r{E=}JJS. @-\. ?00`D~70n?D䇁$0I.WO@.e% endstream endobj 134 0 obj << /Length 188 /Filter /FlateDecode >> stream xڍ1@E #0e6 &naRK v9GTd)HN^f̦ǚ95(EqߜR{cRkI ? ldM*H&g8^WSQdHVR!J*- i~ nN/ookg$AH> wlzZIK endstream endobj 135 0 obj << /Length 196 /Filter /FlateDecode >> stream xڝα @ HByuj;:9::(>Zp"]qQ |CB?2ܓ1G!#I:Ramd$V$fO"tٓH$R^K6ʯ\UW0/%>T5*4hy~> stream x31ֳ0R0P0V54S01Q06WH1*21PAScTr.'~PKW4K)YKE!P E0a<|?`0?> stream x3635R0PacCcsCB.# I$r9yr+Yp{E=}JJS ]  b<]3P?n3 ~o0ah`?PszrrjF endstream endobj 138 0 obj << /Length 195 /Filter /FlateDecode >> stream x=αJ@Xf x{`TSwZ * W6`"8%Gf|q~K.4pR^j<> stream x363T0P0T5T0P05TH1*22 (Ads≮=\ %E\N \. ц \.   W  @ @,?(fQ 0pC sC3=;?f.WO@.uH endstream endobj 140 0 obj << /Length 153 /Filter /FlateDecode >> stream x3134V0P0R5T01Q06WH1*21 ([@ds<L =\ %E\N @QhX.O `J`pB`왏I@.WO@.1c endstream endobj 141 0 obj << /Length 183 /Filter /FlateDecode >> stream xU̱ P#k[WJ' rjj Ɔh>`Phj @ B\Q#HEldȗ$"Sg3:.{|LVkRj_ ..X ,g0i) <p&A=j|c(vk]b=(ԿOI |F? endstream endobj 142 0 obj << /Length 233 /Filter /FlateDecode >> stream xU=KPs Xxv(zb`A' Q|A7|~Lx`7UN?8g!Aj"z$r~nhdHڙdrO/$GcHN* WUP6Aߴ45q " bx%tq_cGŲh;L t5<fOk2|+ZlECd(IBY_ endstream endobj 143 0 obj << /Length 210 /Filter /FlateDecode >> stream xMν @ )(> stream xUj@Yi nZ$sSEGQ|x I;=F(N8^D!qiIs ǔB3I-1QYAg//74gZv* 0ÿ+]SCE@QsϰF,IqSn/'gCb^mmjg`1'>ڟK endstream endobj 145 0 obj << /Length 188 /Filter /FlateDecode >> stream xڵ1 @EH!L#d.ͺB` A+ RK EBbGRRl6Pt+ǬƬ5$Ii;Xf$#aI,Dv$f,I(K~ |[jWopG!SE /zO6x+ӸY~uд` endstream endobj 146 0 obj << /Length 121 /Filter /FlateDecode >> stream x3135R0P0bc3SSCB.# I$r9yr+Yp{E=}JJS ]  b<]0001; aX*6T?0'W N endstream endobj 147 0 obj << /Length 228 /Filter /FlateDecode >> stream xmαJ@o"0M^ป'pWSZY `eh>J+5E~;Yct_^iC-/+9u'Zst }{} ,, %s'l"aAZқMY'W Tc| endstream endobj 148 0 obj << /Length 235 /Filter /FlateDecode >> stream xu1N0ЉRX`3',ZiY$R AE GQr[0"OʌǓ/^ҟ+Vɾݭ%+yxb>F:iy-29Q EPE6fLV&b&e6fՎY (y/ifU _ cBԨM>y2_ |Ǜjh endstream endobj 149 0 obj << /Length 188 /Filter /FlateDecode >> stream xڕν @ + At-('𮶵kotrP?Q_ I+F!=ړ,o)$G$'KROt8oH&{$S^zVSBĢ iAf1h.p;`Z \2oߛy544` endstream endobj 150 0 obj << /Length 226 /Filter /FlateDecode >> stream xڕϿjAna s=b!j WJ!`R nGG8̜EH:_1;dySpnyΟ9)_6[d?9oR&[}";YL9#;e銊Һ„pQ*+j .+xs7xĕ\ }rR /:tKuNTc'ې'jiT2Dׂ+X endstream endobj 151 0 obj << /Length 243 /Filter /FlateDecode >> stream xmJ@O"p}dXW0 j)h()SDm>{uuVZjG+9}Mjag"VNbkx|JV+-*@ Ps&[ D>#E@rI~2> stream xڕα @ HB}Ѽ]`A'u(GQ|TZ?$w#3ihdȎhC!s8cТZp*Yz?WS2f5wHPQY 4a:B@ 8 1n -SQR-8 d_Ѯ+J_> stream xMJ@Eo[8м$AB`B]W҅E ;#Ǜ*y{wquLZZj}%OR7KmN~&wlֺ₲<>H\i%Jo*-o])L O[ `;d1a3X`LpM6{{xSHp|tO01l6 i4,e3zwgRS@v伕+c endstream endobj 154 0 obj << /Length 237 /Filter /FlateDecode >> stream xu1N0бRD@\lBTE"T AKr!e3 gi_'aE5tB 2(_pӢ&1^_v7T]M=[b.'0S2*(ٌ`&p B!t 灼__Rc%ɞ 6{6C!Ic)A?XZ1IN+OVqY- m9 endstream endobj 158 0 obj << /Length 192 /Filter /FlateDecode >> stream xڳ033S0P0bs  #CB.sc I$r9yr+s{E=}JJS ]  b<]CbY ?00e1 Xp?g1YpUgYxY, Dp,y8be,^$'}TaAfRX\\\1=# endstream endobj 159 0 obj << /Length 105 /Filter /FlateDecode >> stream x331Q0P0bS #CB.C I$r9yr+r{E=}JJS. @-\. A(9TH:հ endstream endobj 160 0 obj << /Length 311 /Filter /FlateDecode >> stream xڍԱN0o#O \<'H3D'㤎H GBI%)+,`z aJOJ}o 9ƙ={MyqB<>@<1f#q8&t3x=%T]_'V1 S>8|bGx ~ه_(Jf2Lc# ן8~w[stJptU,r,]#c},=3ֳTc)frLiGvKA;+DE 1]*YB8k ~oL endstream endobj 161 0 obj << /Length 176 /Filter /FlateDecode >> stream xڳ431W0P0b 3 CCB. rAɹ\N\ \@Q.}O_T.}g E!P E?!u?3bSWbWbWa1gXu0V6V eG,eƒ'c1%r C< endstream endobj 162 0 obj << /Length 243 /Filter /FlateDecode >> stream xڵN0/`?BdS` Heꀘh XI-#d`stgۿ~Iy)x 5_XQ&oG\7vWEF<z{O5 Tb!ȣO!2J`@;PP<;Gg3E9c̈*l09t / inm';)),bߘ^Jq݂zlgF endstream endobj 163 0 obj << /Length 253 /Filter /FlateDecode >> stream xҽN0T"GȽu~n! & 7+Q!ʟĄd嗋l4\jU<sMo4HQ {N^Kls/dKɮꑚgʱw_ s=$p8E . (sׅ42*ȱ| ]6&ܴLpڋ_IHGN!X>] 7#f".F?^Q 3ҙ b= endstream endobj 164 0 obj << /Length 244 /Filter /FlateDecode >> stream xڅJ1g"0M!`Dy[ZYZZ(ںy}<•aǙP1|?IO :1H=>cTPc;Ocw!^_[^ʙ;V8?dmgPj\Rq :dĄ* |Vbn;gE d1o( ؁ahDBc!D[o1En %in6N:\Z` æ]H_I<?y뭜 endstream endobj 165 0 obj << /Length 187 /Filter /FlateDecode >> stream x373P0P0bsC cCB.33 I$r9yr+q{E=}JJS ]  b<]0$0a aÐef0x:`P?H e00?C(v q'W l2 endstream endobj 166 0 obj << /Length 138 /Filter /FlateDecode >> stream x3635Q0Pacc CB.# I$r9yr+Yp{E=}JJS ]  b<]``0f+ɃԂ 0a@\\\٥; endstream endobj 167 0 obj << /Length 232 /Filter /FlateDecode >> stream xҽjA W#>WZL+vrp!ET+ -vXqt;';됱j-->xsiNY-gOّy+#CYEI O$Rx%4DJʤn ׮UH@Y$߸Np⧤D@(Ax^ 9Eۄip xviC endstream endobj 168 0 obj << /Length 184 /Filter /FlateDecode >> stream xѱ@ & &]xHLtr0NUy{ጃ zw6d4JBGqlfiG{1+P)QEz@-ibc|!Pi ౮!`{.TV6ߡA_y48+po endstream endobj 169 0 obj << /Length 231 /Filter /FlateDecode >> stream xڵ0kHnЂ0 &2`A3<#02^KL%!_s{I!.qa@CT9 +@P% 7 v+@x0> stream x͒N@ ]uG_.!MBH 02<Gx۹F:.˓"J:lN錞c|,5<WO(m(KѭEGWbtK=b$(#!@5@oJ 4{aŌfJ`o}4.lO%wm_mte4](z`_TU` endstream endobj 171 0 obj << /Length 169 /Filter /FlateDecode >> stream x;0 t#' VbTD$02`nQzT dj20XY陞c+4xRps?aq@iA W<ix=   E^6ɱC:_:Wѫ}O_ /h m Ij^ endstream endobj 172 0 obj << /Length 186 /Filter /FlateDecode >> stream x3534S0P0R5T01Q07SH1*21 (Cds<L =\ %E\N @QhX.OON2bH$;&=A$3?8HAN7PJ`$H `( E` qzrr:p endstream endobj 173 0 obj << /Length 187 /Filter /FlateDecode >> stream x1 @   fl1[ZYZZ(Zkyt {O!(VhpZ0(j. 匴F91J3FNPf4W.dI K#ZX+ސ8 w6 .n N<sUv848n endstream endobj 174 0 obj << /Length 137 /Filter /FlateDecode >> stream x3337W0P04  )\\&f  ,ɥ`bƥU()*Mw pV0wQ6T0tQ```c;0D0I~0Y"I ?&D(I"\=VI endstream endobj 175 0 obj << /Length 301 /Filter /FlateDecode >> stream x}MJ0)YؖG_]x>.]W҅h=Je? گiftߟ ChÞ6 s/\knCs%ux^ߟ\s>k o@B,D'DdZ"-,-B/63"x甙k p7q|$pF暿 dL@AvZHFӬYM5k|,ZdIeb4j`Mg!@Tt`[Bͻ.A8Ew̕bԊW'bt7}t endstream endobj 176 0 obj << /Length 305 /Filter /FlateDecode >> stream xڍN@LJlA gEr&ZY+h=> @IA烋 |gf.K xQz!eY^#[E{_o8_c#>UX>)EৣNGG#"qhfH8fEAEI=-Β%$#쵂H\Wfä hgcgݺi8iZG`s+,25\i`2[[E3)D/bZ1.8G IUuuR:X&oݴ]֯"Mߴo endstream endobj 180 0 obj << /Length 136 /Filter /FlateDecode >> stream x323P0PP5T02P04PH1*24(YBs< =\ %E\N @QhX.O9   fv6> $'W  ' endstream endobj 181 0 obj << /Length 95 /Filter /FlateDecode >> stream x323P0PaCKCCB. \.'O.p KLz*r;8+r(D*ry(177? 'W  endstream endobj 182 0 obj << /Length 294 /Filter /FlateDecode >> stream xڽJ@ƿ%``  h`xp` A+@--|tv)-­WXZdow*;9-8㒏 >+1*R̸*gZ֔Sz-eJ~{}ty{9+Sb 頁Ș2ԠFJ -_5J5f҂Fvh4P"VeF T߄iӹ{ =#0s@7IMlVMts~!|.G9#٘0\f {qo@W5/XI endstream endobj 183 0 obj << /Length 296 /Filter /FlateDecode >> stream xŒj0OxܢGн@kg!M ԡm-@^[^[WI qUutqE+ z+̟00=}c~ =T`!gA@jT, 8_=eCAMF^ |:I *@=N` ڝ 垻ḱ69&>0s!of &jɤbu gϫC0IF)Zm* endstream endobj 184 0 obj << /Length 171 /Filter /FlateDecode >> stream x1 @ [~/1FJL!he!Vjuh%GL7pWjRVsȣ BRJœϲ?SVp\ؚdq$fyQ3ƴ_@ x6QjykaD D~:Vht%7Tm endstream endobj 185 0 obj << /Length 259 /Filter /FlateDecode >> stream x]ѱJ@ Lᾁ'p<8O0)V"*+ϑ:Ygw{tx-(9bA1=3?k*hmuAoh]MN-V+rn`f \uǦxY> `=jx烷li'^ b8vUx谈 endstream endobj 186 0 obj << /Length 229 /Filter /FlateDecode >> stream xuϱJAba yh+RPK E;1 tƽpS|?;?xžjs3TC=-r+SrgkkrKyrM͒a{ծlB-`a:`u)xuwGW2&e˯ɦnh huaǨk} [ bԪob"EzONoɌla endstream endobj 187 0 obj << /Length 213 /Filter /FlateDecode >> stream xѱ 0; 4X-P vtr'uTt7)7&/“ h4"rMӘzd endstream endobj 188 0 obj << /Length 210 /Filter /FlateDecode >> stream xu1j0g<7 41'z(S$ MHXGQ|JW\(T 7uN3uki1}.Gq%Cf&u#U])Yϧz\R׹fi WOp_PI! I@*#f%#~,K{ǏT#,ΰq`(nYsLޖF^V2 endstream endobj 189 0 obj << /Length 167 /Filter /FlateDecode >> stream xα @ ;:'zx: 7:9: *:{G;s]!3pck8YǸh PsNA^/r9E l BuL[VeTɎdÞ@`_wV| 䈚 oafaosK endstream endobj 190 0 obj << /Length 110 /Filter /FlateDecode >> stream x323P0P0b#S3KCB.#C I$r9yr+r{E=}JJS. @-\. ? C 1cqzrrp^ endstream endobj 191 0 obj << /Length 203 /Filter /FlateDecode >> stream x=@H\@ȜM B0X({+ba8垫|>2Pԏ~?Ѥ$|@jRRod5Ԍ;*gX@l$u8lSyEȞn!X#xiTCƩFHjODO'0vBJ#n $"&ݏ endstream endobj 192 0 obj << /Length 209 /Filter /FlateDecode >> stream xڝ= @GR2MtbSZYZZ(ډr2EH|((v̛ݝGa_ endstream endobj 193 0 obj << /Length 144 /Filter /FlateDecode >> stream x36׳4R0P0a3CB.c HrW06r{*r;8+r(D*ry(0`?l(g?6g u@lC{ pP endstream endobj 194 0 obj << /Length 213 /Filter /FlateDecode >> stream xMͱN@б\DTd""R.HE) h!kfg:[\ꗺXS)Ks"Z;׌oY2=7Ro0ͬ&a8YZi4 %:1X[z83L̺E[y!8}?+O2dWtm8 \\ղuY endstream endobj 195 0 obj << /Length 202 /Filter /FlateDecode >> stream x]= @Y6sݬ+0Z *ZGQr!n5|ś7ȈBR[^0$)?G19]/bLւ :c:k{-Ŭ`m88u t&p2 lB̘Ϙ> stream xeпJ@o \`^By]  @-G̣R^w]9 Opj8>xPS5ZOLIppu%?^^qDzŷ;JW\ׅˡ~ lr&Vg{'´N2;s8Gvn=ЪQob]pл ~^8:g007~ʞJT Ͼ4sM^!yJ[X' endstream endobj 197 0 obj << /Length 207 /Filter /FlateDecode >> stream xڽ P FҡмVn?`A'qRGE7f}>BŚނ*3$|9VuQۀ}+5͞1%kTڤ|18Ux*%V738 \A&rOP deyܿ>X ?c\%#'q(IfNĴ) endstream endobj 198 0 obj << /Length 131 /Filter /FlateDecode >> stream x337U0PbC33CB.c# I$r9yr+q{E=}JJS ]  b<] >00013 A9 CaՓ+ t^@ endstream endobj 199 0 obj << /Length 259 /Filter /FlateDecode >> stream x]J@Of!"." E0pA.Z v |˝gH0??pNNmnҮwYUϹ勧7wk"nssa q[{_AꭅBaD4%;>#p{%*édlW]HO˷df 3ÂױtK҇FoMfl=o,"E"pLΉ~WhFF*4& !3DWZnvj endstream endobj 200 0 obj << /Length 257 /Filter /FlateDecode >> stream xmJ0'y h[ 'i((ysƙ$;dfjj5u=5mMrPٿf~jg6wW`G*`Z@y`5@N08F  xP f͡HmVJ[\8 )qYTN KJ8L3#ęgDUk-2gB8&%1Dw>vq endstream endobj 201 0 obj << /Length 206 /Filter /FlateDecode >> stream xڥj@@CkB  A GAẸMb/hffӱZ'd?$u{<l(潽x3\h*fTK> stream xՔN0/y  m KHd@*bFHݒG2vjEb&C˫R\b"k?Q.;V<{gw4γ^|}~lv3vQ5@dֺȴG`̷dQbB\"dW '1)Pl$b.D9hbYp>bP:`VES`tLt93)| bv GNs@9dSL8:p 1¸ ePQJngCʋ9R@(o!DEiMaZj$M؟|hfjcÕ[BK^~i+8j endstream endobj 206 0 obj << /Length 285 /Filter /FlateDecode >> stream xԱn0`"[x jА )M2Tj UcFLG,\۴rJnH.s,e,(v{U jԃU?ajt5o^lhOk5c&Reqf_FMOT83=MK:bSƁhb8rt+ /!#V2{pZb};唷EBlM{`bʓ/+pV, !C9ԇ7 fA?8Q5<7  endstream endobj 207 0 obj << /Length 316 /Filter /FlateDecode >> stream xڍԱJ0 4O`[,'A&qRGnV|mp\p9䗖J~qr5KBMKuy;}ts/g. eV;.N\]i_zY37RcUup]Q/-%u;>j{PkP%G*K0IX S]' aa $W&>a"a I0QGdl LL M 254Aaڷ#*bDM6~,> stream xӻJ@8Mބ VK E[7e $2E8gfA0%s' $iH&t#[eVw8134?LJ[L'd V$/%K DsХ0Gbڷ鲁fV [1>8Q.݄y4T1b<[. | ء ; \t~ۜ9AƧÇr:sLnʝrn7Іbӄ/ǵi H endstream endobj 209 0 obj << /Length 290 /Filter /FlateDecode >> stream xѽJ@YRyM̝p` A+ P,& Aȸϐ%GǔRFtRN2ڹ{{\$\1/)n4 ܵ0C v-0ypiVp-PL"(JvWU+ov-cDgU7({_`7'4 lÅmsH/@םb'۸^UbUVlA1J1vހg9^[9^ endstream endobj 210 0 obj << /Length 267 /Filter /FlateDecode >> stream xڝJ1'lq0޼fpVb]hy}-86L /;q5%QwFO-kHfr;r +ZoyaC 2i寙5z>%k<&r,`vd+q3ߒ1^+ \oxE<@G*q/|Aoٸ=,8U(`ش fA-pڟڤPj"{mI倷YR endstream endobj 211 0 obj << /Length 351 /Filter /FlateDecode >> stream xڭJ0ǧȥº=z =umr!4LRuDg^W4;(M}h-ԣKCQ\jժԥ*NѮ̼<ޫbu~lX)U6_GzahB t ]2G6Da)hrcfEA1-?pλճ I}҈6ĥPgOn ܘ'+tc036u! 蒡AM"9%} |H=X9ZHv]ϽmE=LQVgq)ϜRT7D]n cƒ|M'b<%NZu>v endstream endobj 212 0 obj << /Length 142 /Filter /FlateDecode >> stream x3631R0P0bcCKSCB.#1s<L=\ %E\N \. ц \.  30oAr 5 T @;af f!`` ȘՓ+ > stream xѡ0[*#pO@@ %0&H@! $h%#L"uDKzz٢"\1CtAݓSi֫u{СuB U|0ۀؖB%/Q@Px_Qv؁ʲ#rO ^7\gpx'A~^ɼP/nC|U endstream endobj 214 0 obj << /Length 249 /Filter /FlateDecode >> stream xڭN@ }K!~5*1#ܣQ3T9l Iɾ5TUEš^+:pP3/F *-=UT>cKxii$@v#W@!'=r48 E\)GC B1:6b:wZK??"Xi=1wfbpY4?]e[t~x# endstream endobj 215 0 obj << /Length 203 /Filter /FlateDecode >> stream xҿAr $7/eQII\!R Q,'s0eQ"ܟ3?(%V U Вn(6Y4n+|א<>ȭh\ E&tj8 endstream endobj 219 0 obj << /Length1 1397 /Length2 5931 /Length3 0 /Length 6883 /Filter /FlateDecode >> stream xڍwT}? i7Fww ƀF ]Jw)""(")!tC繟=;g^}]2RqDh^, A@HLpsCxwz9CQᡆE@:Op4@^@,)  ߎh,Ptu(a.xB@^8,##%+"PwAx*¡@S4# zXgE>A4AXo#|d!g4a76>P,HP#rD`@S}Ar`a>OD h D90/84! ECa_C*@(a?X$!g9OCf #8D, A-9!QNc8zaDPHO/ o3IKIK@/Ee 3`a D A  O?% tD@;;Ap-EAϿN9Q~vb[zFQU  J`4Ppg[P>#V';pQg2C4 ￑n _3`~EwC=~<h`&߮5@8"<۪蠂r&@Z,. G4[H<7l~ D!nqG ! /ep7cGoG"eTCG;OTBb~ 0L#"(4$tBc狖(=Wj/#8$.ZvP#<,Oy`)*4\lG_H6˝{iay?n;`O|OSsՙ8ywa<%`$M3tU2l-8NJ%GSnjާ0kJFwV3ɘdoC%v*q?l1&&0|! ٧voE\\x: ~6uq*釗yod(o87552K/CMo8Aiҗ NĭU-i09=rϛti(N˄X҉Q{#3+.4|#/ ?}ޮ3YJ.~p yUϪWX ]@=o:^>o Lэ]bP+:A>!iUpz]wdi {m,"pLĸΤq^Ni_7ߟul"(RBABVpț&\>Unkcs>=P^28AeX'B vb?I!zݩQ{c\n{;\Y2BaܠwX3!onކ^aa@ܛל A9E~Z4 Ft'0`'8P:aNQ)R=}?O؂, #Ѳ ٢i]eg{wrPxa~eaX -O|QP'H*_uES14kzQ4#VZKZ#D +yAA09~paW%Q/0qME:Z+w4(Q`.!jCU{ZT};HFn<Ճ;?_Gٮ4<+ps+l ZR'a,z[L)_Jk$|p7a&8G8<6܈# {g 쯱Yϼ>VPh*JF CwDk7$mtVkA$D@ͫœ) m&GSI\mP{כ%M!90 n&0\]5<7%C=cdY;sug*9ΣQƏkj)yK? VSqa`Ԉdk<ּq?#KD_3Zw*#F(,f/{fD+y$v/-?lxOZ#4oe~1싸ekȕQQcܭ6eO~b{$꽜EAD5zӍ0=P8Vf-V򤱤jM"EdFt.O*m1{/GLIsPTsW[[#,-Umk ߢZ$6~ |kJwu98Yݠ֌CN5!tg ~"Z{ tMqƿ%G9i@8f<I3? ^8Ո'/vUu\0W 6 n[mo8s8.<Šaf - b%_\~Z+7#)( o*7w8 cg)I85 T4}ٽV<}>f}~D1>HlgfU];-a$ HI nMa/+]Z{"D%7ݭdaGG܌}_+:ouSr (=խI&t&`W~"NQ9P9c܍`&v\^ff5!)o uȿIv98,ʊP_#]w?ԬHvBTx. Ӑ5.||YYx<8YIwܪUkkDCK:!G@}al2^ER!}IK xu^Q4o5Loٚ>n>py~Bh4'kj'x]-#ϙ,#sܹ@ܾnOԲdCd> = r Q%B|nU9-HJiXҁ2ځ֙pR$~doU 鶷Ԃ\0G86!p70F`EŐQ8AJ.+:E9m>6ӱ ЊuQf*iBm*Yͣ =Lð~BNZKh(iBLոϼySn/uzwu4f\;KG<ځTuʩ[\[ː8Ϫհ`ѕJVEehe($Oƿ/frB#,)gاES|*e/c6pw4hHaE#I5UxSn[W"[ˮXX54S7.W݃ 5  *8,(1?IY>&BNcIY-؅=(tqvVؕ*m5Oμ;w]O2 UǚV$q}rڢk;k KDJw#(> ދ%#RO܎EFR9ÅW%YR"Mn{dCv,u n*qqr~+(-Ӕr%uʱr<ت?]d/[VpV0>tFpu?\mJ6𺧝R#Iյ*HJ^K+VYCU]}L\9MIG.Xa !=Z ̅aJYeRcI/:祤'Oi'1 /MND==* /k<ړ ݅ߥ,xy8Y= #m'v(P=M1A'cp5J`(c!9xT~rߛ*AVCn>fYOhȶ 0jR *tvbtJ3ݜM^K$r)IѪͼ^O o~¨[ri1y3D"coLYۈ][O(@D'U*ݰ% nwP649EM֊& n7g vM uvm.1 z) oK{=>)DMU8liFqꦎ ,ĤIx+nȇdô܂ h9꜋Z񗦕2bx"kbv^+/R4fA B__c9P<܁U}Ȣ׏e D[o7|LL7* .R-i!~_jңpB{"Q5j$4jώFP>3g;HQDN-J+E(^V'}@f}oO=CEdX,=ЇNai A07UyVe4vW,3-w?BK+0/ոX~ 3 i \6!h;J׾WfZ3XRS CPU7xN!>$9 E GN "54<`MH6sel<~ EVjũJzE@IEK(y2{[HtV_UJ~ w^Pe Ui/C.|#=c?b/y%ps@5f.c]g("D:NTҜW9k{77(d{p[gTdz GS@= 8yV>hN~a[B]%K9VjI9b~~FhbqA])O$LVBkfG #HF\ɾ~;lf.tb:/>4#hغWsr#g$vj}K?G*-+ AQ1>&XiעjO}2Et@ָ/*Qvi[l z`|h.ÏG}k?S$f2U)$^hSwN 9/[t:MHN%z4-I_7~͞\]1GH]ؘ 'i\miٔ<<ցJ8-v:ٲrfwɷer8@kF%QXDqtD| PߔGJl/d&AR_Z1Tل/zKal#Az_ 4)+"Џ1W2\L>@;bl"p˻ ^59Gqz^ 匾Y]ګ/t9p`Sy2S2ncmIԵᒍ>Ts_]HK{02X-rƆQeb1.kEw:C* ` R?knxXiL3s;s~q(עIU'ĺHת1Ub8꜒svaDr|2F.xꖦN{Lޅ2ގez,_ڟc&X/) #wV|vJj&9spN4G>Uƥkv_S endstream endobj 221 0 obj << /Length1 1427 /Length2 6364 /Length3 0 /Length 7333 /Filter /FlateDecode >> stream xڍtT6E""H H I'ޥ $CE"U!4A(U@IG:HrϽZ߷֛yf̞g67 F"0 @M"@7 ɸ-(4  0uG":pHI1 P_D$JE:HMƭG1c9@B*PC0P܉8 bOxE(7E~!/ 0( gwe"d3w7ntBPPÜ4EpLPoo@" qvFzxB0 z"?pIH?Cp_C`cW('-(3 5.jH(&: u]C }60"\=E0/o "7$@89 o eqz"="0W(, 0(ohp#.0g C;:㚏l8Wv8y pWTKGSB[wTU~@a @XL4n0F؟4WwM ? 8B|-PRS(;!7!0N#qco%C]`m@pp}04u1a7ns0|V¸ 7ZpO'_&(nrys$ Ok2n' fKQs "Qd?;*! =N?{ @" PW̿Qw7ePQ86pp9kBd#Hg ǯUn /^|/8j>~ yƃYԡʓS |类Fץ:sxdҿTO6GKʛvVRa3s {?pg{y\7ʥ9m{ӎY2^.%?'ۆqf$PQRrɮH,x#A ΜÓ31tFV~@T‚c~ _P=!*^3CԴVt-f?DHRQTC4+wT߃wUn8hveBv%`}=9GtקGQO뎻j>-4[RjWbq hNMʥ>%bz,ڴ7&|ȜA"쪞2;2D,[AKw Q}/å .>I2Ϙcq#Ng:S5k7rg,Orh쪱ؽ`Vijv{+`utgsW D[-@^2>ct!m s_ ٍ+6i{7E3z#)Yw2Okom+gh"o6Ysͪ+Ř#[>zbO3Q|y,"{qh?CMs !VHWHyi;+SwMh5r8"*x.TPU`xN5 * C+>%'wV! , "IT_خ9˘rߙɎ-] %~:]Qi_:uܡ;}?# 0m̗c- J yw(]oКjxDUZCFlܶ^ۡuu>6Guߔ}\vcβ述t'J2>=n^xu=g}D8lZWdJ['@HUͬF26VI뱺QbAeRF\\k%) s6MCОf&Q1nNG:LiB%bm3iCR^RP_~-Uj}LWR_ھ@6,7peتզN|Q.c_s([\T\tl 8<;n+Eu櫘: (s8WvL齚&f]'Ku!):z41`SF0!$M|y_gi~cɛ}ޠ}npZ5hH D`yHῨz)Z]axd(sD3ߊJ[pls>mCQrY%BLJ Ǟs(AY&ZX']2휄1 lͼ6/h'tb2EV_y`keCб8'< I(b9rZM(d&9$9(2H3kA|{^x&]H.Op vӯZXȏ4 ^.31̚ 5oFEm{{N6q{p>[Ys@i4G*v8u1u}@켗EA@2f.a:zfy+r#,zYLvv(؂\l8}MiY.m=Oʘͯ?~i"ذzOAtiݨ' 'x.Jhx/DR8OS.0LpD\F &ubnQ#h P*~!O/gn~R.f^T"b#g:&X)223wWNsq_,c$(ZMfy0.UZ(5x MqJ[d[pkat_Q~G($ Y_>G |~@5Dm }Z}: pxPgP=A՟iw+>W>{Q EPq!jJ@mB{Cq |c/\O.q6+eΓv,!饬Bf"cZ\cW7qJ/i6O…Mjo82ݸu\(e@MX<.DtvNʁGI8ID,Cf[2 <#F\m{yb. ozyR]' ՔEh߄k5?M{<,x|όN ,$E0 \O ba~Jhk Li1/f*Ēgj"0!/I՟η;XEV2^4ԕƷ<N@bRK,N0޶97!|m!Lܫl?owk 5%nQ_1sZ /=oH5d$])gƣT Mc&;xH^ӥu7:Eo*lYEqo<˽e6y[ +_A]55J xʦZ< D [W><L x>T߿aAnwP6˙#o(Ϧ~ٱYJU몏:nei~|vX]SkV`O:4}Cv%IWCvqѕ{!uj}rWM"UsW LS0eUCơM7; lӍLŬV=h?!usK4˿#d'e'EMyo ǁYy-Dra{zໟ^t)ȋ] n\޶|Kt5m ~ xt(`?'8MvOa~μۺǪBܭ]hRg $ӍZh)8~&" I0ʜ![daw8?M[Gp*@vx)d%fג$Q'7}t}sY|s>i iZ,Riε@(Q1̹~{d'e_~9!H3JcUNo_9Z9t&M7MXmߝ`WYչ&X]= T%.)JSf3knM2=}p$b7"$B+Ѽȟ-juNYrrr$ B|MJ<Ū]~KwEܮ_s:AO(_b;>ut2vy/3\ #f ?k$P>83/8/qL5$7rV)^ h$;d2]BM he^:(Ap^p)Ml\+vأUvȎ)XmG#6o\jRt2lг;oL0PƼ +k/`ie'ݫb&))YqDԌy˕J΂sSQoY#moV흊,I'*%ǫt) V(Sym1adwR{=aLӖKFq=e*XM6S7}bc}ZF l֋]•Rh)9# '+ue3.BO. B\X lF,ctK GGn+v:bnYW\2}MD[uѶwFHς; ]&y"'b1V)-iϩlVMwʡG֒xv /^SFB6㉢( eFKePCy""<B<5 /9ijxnJw窦+pat fqRRL-Qk"=]LsXJ9z׉> ,4lLڥXXeVMs]#p/O|oC*/cBJzM `FV ڌX2z׎g/*7#V62MW+Lț%ʝ%>5?/~ɣXܖ= 7gW^}9vS|b2: XghKL__;u7%0h $]ؿaV^ƃѦh:V12BTSP-i%kz66>D.;Tq ZmhYOv`~kI޼;%m2|#$~!2iC[uB\olHeso@ m]4Y0(ٍxFhbyw[ۡfCMw9f!zEC/(#~/ )0k2^'Y]X\jU6܋'!̝`6M`)Q$K0iMY[šoЃou,-Al endstream endobj 224 0 obj << /Producer (pdfTeX-1.40.20) /Creator (TeX) /CreationDate (D:20231114234059-06'00') /ModDate (D:20231114234059-06'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) kpathsea version 6.3.1) >> endobj 10 0 obj << /Type /ObjStm /N 46 /First 361 /Length 2689 /Filter /FlateDecode >> stream xZn}cռ;` e;= #edHm`2_sҋ<-)H.dq9eVZJbIEeRRM)b *9(C+"FѴMVMg"NזѥJEG 9# DQ0 u84,TF:Hh]İ&$  :-` h|2C}&B*$H..PSa`,$T%K:]z|q}Y_mn [,߭oݜo9oT#C?$>[ IRr'hM=}',De%jdf\iss r .\_o)}y?ۨQ?j[<2%?j io ;0؜m2~._. =cmVI4?V_yJ7oVKj$" RyO0?*8Juפ_07YvFX}5'bOy~:pyu!34~+P=ҩJ'.F?Kn) ;L3%L.˗?"2TzaQ-t\ z&2K'3LJ4̩&Kn VZ*-1m8)-NMSR%tZ *Eq39.ݤn}^"$y3Y,n&}3.0#Ae _vx3v06aLX c034>&-7}]C뽙9b#Ӹ,V/WXcuxڡpƩz<Р砖<k h{D(1¢"go7o(N(Gm`' B 2j b5K`$\NhPZL|@4LLyO; su1Ux~5ES;ߖ0)߱Fbgi$gl3j2XJKNRd,^`z]qTo%^c<Ύ r t:1Wy Au#X C9rͼޡ7<(Qwă6Cyx}",I%pz iCD&A$$55UjϧB {S%='0 $S';%db'H5R8Y%HabRc|U{QC 52xQc|G4T IөќQH7VhNȒ`%5aă,4'D}P'hUDS4ջ-h"IZjA¦&(Nĺ6k2Ml&sa o|^؝^LuWbh{n |NNsoqw2a x2q`x2ixeOSf V1[@o+0ylں ]TQ@UF>K#~'_icvn&&(r>e48Եuʋbi 3n{{v7+CnrÄ|6vn:W6 !4IGA"CDIC: 5M-4Ѯ9pwA~5~ kd&0VˆݡWiDRO!HН ApoM54>Dk9`؃CsevRZ?Ь(q@w;AO~(Raut^ )kzȫ&G2'uM O W ;1~%R@HC>؁|eKג(!ze{m L2H7qI`Q9jn4&-JPgTIuWȲ懋?tjUODD?HF̉qĜFe9FIzk ]1Gn/>]GӝZ/7돛r7[d: :[IQ\(nD$Q?w3ѻ}nQm~n?|COn!7WTGxVbQSÖ endstream endobj 225 0 obj << /Type /XRef /Index [0 226] /Size 226 /W [1 3 1] /Root 223 0 R /Info 224 0 R /ID [<49ADCED3914D273CDC763E538BD00806> <49ADCED3914D273CDC763E538BD00806>] /Length 675 /Filter /FlateDecode >> stream xiPA]\JBJ* :\TJΈQ4TtQ":J%Ç>a\~>>BB]!2 d"p)!&?'ZN"fP'dVJlQ'ꚸH`cD0 jSf &CP2hHaѣdGM2R-6X|`nL|r؄[l?`.P?ŜT ps#pi`op3+3Xu.#xl(x)MƐRF/s F{l >خV n!7`BKdk'ɝQ,1l^l4.pw]=J5X.H}ITHbMa43Yl-H2zzp/h .9px+jqdWJ [ U<4PѠ sH ;}ځ2p1.R]'EwHo:5=0=@-c4A#x 4y-͠U*'Id)H>= library(mcmc) @ <>= baz <- library(help = "mcmc") baz <- baz$info[[1]] baz <- baz[grep("Version", baz)] baz <- sub("^Version: *", "", baz) bazzer <- paste(R.version$major, R.version$minor, sep = ".") @ The version of the package used to make this document is \Sexpr{baz} (which is available on CRAN). The version of R used to make this document is \Sexpr{bazzer}. We also set the random number generator seed so that the results are reproducible. <>= set.seed(42) @ To get different results, change the setting or don't set the seed at all. \section{Logistic Regression Example} We use the same logistic regression example used in the \texttt{mcmc} package vignette for the \texttt{metrop} function (file \texttt{demo.pdf}. Simulated data for the problem are in the data set \verb@logit@. There are five variables in the data set, the response \verb@y@ and four predictors, \verb@x1@, \verb@x2@, \verb@x3@, and \verb@x4@. A frequentist analysis for the problem is done by the following R statements <>= data(logit) out <- glm(y ~ x1 + x2 + x3 + x4, data = logit, family = binomial, x = TRUE) summary(out) @ But this example isn't about frequentist analysis, we want a Bayesian analysis. For our Bayesian analysis we assume the same data model as the frequentist, and we assume the prior distribution of the five parameters (the regression coefficients) makes them independent and identically normally distributed with mean 0 and standard deviation 2. Moreover, we wish to calculate Bayes factors for the $16 = 2^4$ possible submodels that include or exclude each of the predictors, \verb@x1@, \verb@x2@, \verb@x3@, and \verb@x4@. \subsection{Setup} We set up a matrix that indicates these models. <>= varnam <- names(coefficients(out)) varnam <- varnam[varnam != "(Intercept)"] nvar <- length(varnam) models <- NULL foo <- seq(0, 2^nvar - 1) for (i in 1:nvar) { bar <- foo %/% 2^(i - 1) bar <- bar %% 2 models <- cbind(bar, models, deparse.level = 0) } colnames(models) <- varnam models @ In each row, 1 indicates the predictor is in the model and 0 indicates it is out. The function \texttt{temper} in the \text{mcmc} package that does tempering requires a notion of neighbors among models. It attempts jumps only between neighboring models. Here we choose models to be neighbors if they differ only by one predictor. <>= neighbors <- matrix(FALSE, nrow(models), nrow(models)) for (i in 1:nrow(neighbors)) { for (j in 1:ncol(neighbors)) { foo <- models[i, ] bar <- models[j, ] if (sum(foo != bar) == 1) neighbors[i, j] <- TRUE } } @ Now we specify the equilibrium distribution of the ST chain. Its state vector is $(i, x)$ or $(m, \theta)$ in our alternative notations, where $i$ is an integer between $1$ and \verb@nrow(models)@ = \Sexpr{nrow(models)} and $\theta$ is the parameter vector ``padded'' to always be the same length, so we take it to be the length of the parameter vector of the full model which is \verb@length(out$coefficients)@ or \verb@ncol(models) + 1@ which makes the length of the state of the ST chain \verb@ncol(models) + 2@. We take the within model priors for the ``padded'' components of the parameter vector to be the same as those for the ``actual'' components, normal with mean 0 and standard deviation 2 for all cases. As is seen in \eqref{eq:unnormalized-bayes-factors} the priors for the ``padded'' components (parameters not in the model for the current state) do not matter because they drop out of the Bayes factor calculation. The choice does not matter much for this toy example. See the discussion section for more on this issue. It is important that we use normalized log priors, the term \verb@dnorm(beta, 0, 2, log = TRUE)@ in the function, unlike when we are simulating only one model as in the \texttt{mcmc} package vignette where it would be o.~k.\ to use unnormalized log priors \verb@- beta^2 / 8@. The \texttt{temper} function wants the log unnormalized density of the equilibrium distribution. We include an additional argument \texttt{log.pseudo.prior}, which is $\log(c_i)$ in our mathematical development, because this changes from run to run as we adjust it by trial and error. Other ``arguments'' are the model matrix of the full model \texttt{modmat}, the matrix \texttt{models} relating integer indices (the first component of the state vector of the ST chain) to which predictors are in or out of the model, and the data vector \texttt{y}, but these are not passed as arguments to our function and instead are found in the R global environment. <>= modmat <- out$x y <- logit$y ludfun <- function(state, log.pseudo.prior) { stopifnot(is.numeric(state)) stopifnot(length(state) == ncol(models) + 2) icomp <- state[1] stopifnot(icomp == as.integer(icomp)) stopifnot(1 <= icomp && icomp <= nrow(models)) stopifnot(is.numeric(log.pseudo.prior)) stopifnot(length(log.pseudo.prior) == nrow(models)) beta <- state[-1] inies <- c(TRUE, as.logical(models[icomp, ])) beta.logl <- beta beta.logl[! inies] <- 0 eta <- as.numeric(modmat %*% beta.logl) logp <- ifelse(eta < 0, eta - log1p(exp(eta)), - log1p(exp(- eta))) logq <- ifelse(eta < 0, - log1p(exp(eta)), - eta - log1p(exp(- eta))) logl <- sum(logp[y == 1]) + sum(logq[y == 0]) logl + sum(dnorm(beta, 0, 2, log = TRUE)) + log.pseudo.prior[icomp] } @ \subsection{Trial and Error} Now we are ready to try it out. We start in the full model at its MLE, and we initialize \texttt{log.pseudo.prior} at all zeros, having no idea \emph{a priori} what it should be. <>= state.initial <- c(nrow(models), out$coefficients) qux <- rep(0, nrow(models)) out <- temper(ludfun, initial = state.initial, neighbors = neighbors, nbatch = 1000, blen = 100, log.pseudo.prior = qux) names(out) out$time @ So what happened? <>= ibar <- colMeans(out$ibatch) ibar @ The ST chain did not mix well, several models not being visited even once. So we adjust the pseudo priors to get uniform distribution. <>= qux <- qux + pmin(log(max(ibar) / ibar), 10) qux <- qux - min(qux) qux @ The new pseudoprior should be proportional to \verb@1 / ibar@ if \texttt{ibar} is an accurate estimate of \eqref{eq:st-expectations}, but this makes no sense when the estimates are bad, in particular, when the are exactly zero. Thus we put an upper bound, chosen arbitrarily (here 10) on the maximum increase of the log pseudoprior. The statement \begin{verbatim} qux <- qux - min(qux) \end{verbatim} is unnecessary. An overall arbitrary constant can be added to the log pseudoprior without changing the equilibrium distribution of the ST chain. We do this only to make \texttt{qux} more comparable from run to run. Now we repeat this until the log pseudoprior ``converges'' roughly. Because this loop takes longer than CRAN vingettes are supposed to take, we save the results to a file and load the results from this file if it already exists. <>= lout <- suppressWarnings(try(load("bfst1.rda"), silent = TRUE)) if (inherits(lout, "try-error")) { qux.save <- qux time.save <- out$time repeat{ out <- temper(out, log.pseudo.prior = qux) ibar <- colMeans(out$ibatch) qux <- qux + pmin(log(max(ibar) / ibar), 10) qux <- qux - min(qux) qux.save <- rbind(qux.save, qux, deparse.level = 0) time.save <- rbind(time.save, out$time, deparse.level = 0) if (max(ibar) / min(ibar) < 2) break } save(out, qux, qux.save, time.save, file = "bfst1.rda") } else { .Random.seed <- out$final.seed } print(qux.save, digits = 3) print(qux, digits = 3) apply(time.save, 2, sum) @ Now that the pseudoprior is adjusted well enough, we need to perhaps make other adjustments to get acceptance rates near 20\%. <>= print(out$accepti, digits = 3) print(out$acceptx, digits = 3) @ The acceptance rates for swaps seem o. k. <>= min(as.vector(out$accepti), na.rm = TRUE) @ and there is nothing simple we can do to adjust them (adjustment is possible, see the discussion section for more on this issue). We adjust the acceptance rates for within model moves by adjusting the scaling. <>= out <- temper(out, scale = 0.5, log.pseudo.prior = qux) time.save <- rbind(time.save, out$time, deparse.level = 0) print(out$acceptx, digits = 3) @ Looks o.~k.\ now. Inspection of autocorrelation functions for components of \verb@out$ibatch@ (not shown) says batch length needs to be at least 4 times longer. We make it 10 times longer for safety. Because this run takes longer than CRAN vingettes are supposed to take, we save the results to a file and load the results from this file if it already exists. <>= lout <- suppressWarnings(try(load("bfst2.rda"), silent = TRUE)) if (inherits(lout, "try-error")) { out <- temper(out, blen = 10 * out$blen, log.pseudo.prior = qux) save(out, file = "bfst2.rda") } else { .Random.seed <- out$final.seed } time.save <- rbind(time.save, out$time, deparse.level = 0) foo <- apply(time.save, 2, sum) foo.min <- floor(foo[1] / 60) foo.sec <- foo[1] - 60 * foo.min c(foo.min, foo.sec) @ The total time for all runs of the temper function was \Sexpr{foo.min} minutes and \Sexpr{round(foo.sec, 1)} seconds. \subsection{Bayes Factor Calculations} Now we calculate log 10 Bayes factors relative to the model with the highest unnormalized Bayes factor. <>= log.10.unnorm.bayes <- (qux - log(colMeans(out$ibatch))) / log(10) k <- seq(along = log.10.unnorm.bayes)[log.10.unnorm.bayes == min(log.10.unnorm.bayes)] models[k, ] log.10.bayes <- log.10.unnorm.bayes - log.10.unnorm.bayes[k] log.10.bayes @ These are base 10 logarithms of the Bayes factors against the $k$-th model where $k = \Sexpr{k}$. For example, the Bayes factor for the $k$-th model divided by the Bayes factor for the first model is $10^{\Sexpr{round(log.10.bayes[1], 3)}}$. Now we calculate Monte Carlo standard errors two different ways. One is the way the delta method is usually taught. To simplify notation, denote the Bayes factors $$ b_m = b(y \mid m) $$ and their Monte Carlo approximations $\hat{b}_m$. Then the log Bayes factors are $$ g_i(b) = \log_{10} b_i - \log_{10} b_k $$ hence we need to apply the delta method with the function $g_i$, which has derivatives \begin{align*} \frac{\partial g_i(b)}{\partial b_i} & = \frac{1}{b_i \log_e(10)} \\ \frac{\partial g_i(b)}{\partial b_k} & = - \frac{1}{b_k \log_e(10)} \\ \frac{\partial g_i(b)}{\partial b_j} & = 0, \qquad \text{$j \neq i$ and $j \neq k$} \end{align*} <>= fred <- var(out$ibatch) / out$nbatch sally <- colMeans(out$ibatch) mcse.log.10.bayes <- (1 / log(10)) * sqrt(diag(fred) / sally^2 - 2 * fred[ , k] / (sally * sally[k]) + fred[k, k] / sally[k]^2) mcse.log.10.bayes foompter <- cbind(models, log.10.bayes, mcse.log.10.bayes) round(foompter, 5) @ An alternative calculation of the MCSE replaces the actual function of the raw Bayes factors with its best linear approximation $$ \frac{1}{\log_e(10)} \left(\frac{\hat{b}_i - b_i}{b_i} - \frac{\hat{b}_k - b_k}{b_k} \right) $$ and calculates the standard deviation of this quantity by batch means <>= ibar <- colMeans(out$ibatch) herman <- sweep(out$ibatch, 2, ibar, "/") herman <- sweep(herman, 1, herman[ , k], "-") mcse.log.10.bayes.too <- (1 / log(10)) * apply(herman, 2, sd) /sqrt(out$nbatch) all.equal(mcse.log.10.bayes, mcse.log.10.bayes.too) @ \section{Discussion} We hope readers are impressed with the power of this method. The key to the method is pseudopriors adjusted by trial and error. The method could have been invented by any Bayesian who realized that the priors on models, $\prior(m)$ in our notation in Section~\ref{sec:bayes-factors}, do not affect the Bayes factors and hence are irrelevant to calculating Bayes factors. Thus the priors (or pseudopriors in our terminology) should be chosen for reasons of computational convenience, as we have done, rather than to incorporate prior information. The rest of the details of the method are unimportant. The \texttt{temper} function in R is convenient to use for this purpose, but there is no reason to believe that it provides optimal sampling. Samplers carefully designed for each particular application would undoubtedly do better. Our notion of ``padding'' so that the within model parameters have the same dimension for all models follows \citet{carlin-chib} but ``reversible jump'' samplers \citep{green} would undoubtedly do better. Unfortunately, there seems to be no way to code up a function like \texttt{temper} that uses ``reversible jump'' and requires no theoretical work from users that if messed up destroys the algorithm. The \texttt{temper} function is foolproof in the sense that if the log unnormalized density function written by the user (like our \texttt{ludfun}) is correct, then the ST Markov chain has the equilibrium distribution is supposed to have. There is nothing the user can mess up except this user-written function. No analog of this for ``reversible jump'' chains is apparent (to your humble author). Two issues remain where the text above said ``see the discussion section for more on this issue.'' The first was about within model priors for the ``padding'' components of within model parameter vectors $g_{\text{pad}}(\theta_{\text{pad}} \mid m)$ in the notation in \eqref{eq:unnormalized-bayes-factors}. Rather than choose these so that they do not depend on the data (as we did), it would be better (if more trouble) to choose them differently for each ``padding'' component, centering $g_{\text{pad}}(\theta_{\text{pad}} \mid m)$ so the distribution of a component of $\theta_{\text{pad}}$ is near to the marginal distribution of the same component in neighboring models (according to the \texttt{neighbors} argument of the \texttt{temper} function). The other remaining issue is adjusting acceptance rates for jumps. There is no way to adjust this other than by changing the number of models and their definitions. But the models we have cannot be changed; if we are to calculate Bayes factors for them, then we must sample them as they are. But we can insert new models between old models. For example, if the acceptance for swaps between model $i$ and model $j$ is too low, then we can insert distribution $k$ between them that has unnormalized density $$ h_k(x) = \sqrt{h_i(x) h_j(x)}. $$ This idea is inherited from simulated tempering; \citep{geyer-thompson} have much discussion of how to insert additional distributions into a tempering network. It is another key issue in using tempering to speed up sampling. It is less obvious in the Bayes factor context, but still an available technique if needed. \begin{thebibliography}{} \bibitem[Carlin and Chib(1995)]{carlin-chib} Carlin, B.~P. and Chib, S. (1995). \newblock Bayesian model choice via Markov chain Monte Carlo methods. \newblock \emph{Journal of the Royal Statistical Society, Series B}, \textbf{57}, 473--484. \bibitem[Geyer(1994)]{geyer} Geyer, C.~J. (1994). \newblock On the convergence of Monte Carlo maximum likelihood calculations. \newblock \emph{Journal of the Royal Statistical Society, Series B}, \textbf{56} 261--274. \bibitem[Geyer., 2009]{mcmc-R-package} Geyer., C.~J. (2009). \newblock \emph{mcmc: Markov Chain Monte Carlo}. \newblock R package version 0.7-2, available from CRAN. \bibitem[Geyer and Thompson(1995)]{geyer-thompson} Geyer, C.~J., and Thompson, E.~A. (1995). \newblock Annealing Markov chain Monte Carlo with applications to ancestral inference. \newblock \emph{Journal of the American Statistical Association}, \textbf{90}, 909--920. \bibitem[Green(1995)]{green} Green, P.~J. (1995). \newblock Reversible jump {M}arkov chain {M}onte {C}arlo computation and {B}ayesian model determination. \newblock \emph{Biometrika}, \textbf{82}, 711--732. \bibitem[Hoeting et al.(1999)Hoeting, Madigan, Raftery, and Volinsky]{bma} Hoeting, J.~A., Madigan, D., Raftery, A.~E. and Volinsky, C.~T. (1999). \newblock Bayesian model averaging: A tutorial (with discussion). \newblock \emph{Statical Science}, \textbf{19}, 382--417. \newblock The version printed in the journal had the equations messed up in the production process; a corrected version is available at \url{http://www.stat.washington.edu/www/research/online/1999/hoeting.pdf}. \bibitem[Marinari and Parisi(1992)]{marinari-parisi} Marinari, E., and Parisi G. (1992). \newblock Simulated tempering: A new Monte Carlo Scheme. \newblock \emph{Europhysics Letters}, \textbf{19}, 451--458. \bibitem[R Development Core Team(2010)]{rcore} R Development Core Team (2010). \newblock R: A language and environment for statistical computing. \newblock R Foundation for Statistical Computing, Vienna, Austria. \newblock \url{http://www.R-project.org}. \bibitem[Sung and Geyer(2007)]{sung-geyer} Sung, Y.~J. and Geyer, C.~J. (2007). \newblock Monte Carlo likelihood inference for missing data models. \newblock \emph{Annals of Statistics}, \textbf{35}, 990--1011. \bibitem[Thompson and Guo(1991)]{thompson-guo} Thompson, E. A. and Guo, S. W. (1991). \newblock Evaluation of likelihood ratios for complex genetic models. \newblock \emph{IMA J. Math. Appl. Med. Biol.}, \textbf{8}, 149--169. \bibitem[Torrie and Valleau(1977)]{torrie-valleau} Torrie, G.~M., and Valleau, J.~P. (1977). \newblock Nonphysical sampling distributions in Monte Carlo free-energy estimation: Umbrella sampling. \newblock \emph{Journal of Computational Physics}, \textbf{23}, 187--199. \end{thebibliography} \end{document} mcmc/inst/doc/bfst.pdf0000644000176200001440000066402214525054753014370 0ustar liggesusers%PDF-1.5 % 3 0 obj << /Length 1745 /Filter /FlateDecode >> stream xYKDW\[ST.*)žxfmy-E,>#YNPbI=~~#za2Z\m,Wva ˌ2_ O-sefi]W˜g}Y*{_{bjk+d\ 臛W`r9sZ ܺLHe8owaOë;@Ra\(&]T=^ǭIWӍ($U ƀ2$E=,%6h]>9D1njQjx BC8NCEvAf Cl s҂LIM3֒i%@mRf%P" :*UW"P=bx]5x{K(A<uQVm[ƽKX s͙,4 uL5L =zmŐ%uIQ&D >QQ|CnUA_ |aP]RUQhH {9!ٕB+e6WAŁFۨ_^{Sye܌,n`2\.fz=*gR!Ef6.ݶ5͵wuOD̚ AfL2ٕr)̙  m9u{zńS۞^@2;4}}G0KHJW9 |≎uG ái~WQY9TS;E;&:A>I[}EF*r^NB ˜-(}*X uA%BO ga$L.&\a]w}[<2ΏgXawsڤ 0͟PitQtaz+Xc 61'TBr``t\wUK3So̝#0Ա\𡂊 M ڪ+!jZ0 cGtDPq a^'NX{DZ iE8{ zlSA$N' GT8?BUsz)s@t:2'L!8h8ULpREx!ٌлD\w! _m6t%1,W#MMl0s~*t-'0[~_ݴ ͱϭJ80UCXOS?>,[s)8*=8!(Yk"P͏sZ",?.趞!z>jIs$c\)C endstream endobj 20 0 obj << /Length 1996 /Filter /FlateDecode >> stream xZK6*񅢗--RtOMrrV,m,9wdɦvv6'Q$5/ !J%Z\%$J2¥IɫmTdjo\CϺгfΫb{)7MlBߦoyfUٕE뻛jznc=[UKif42sM:skB "3cy| RhOQ"IGP~5$#EH SԪ0SQQdG>&KOQ*jf?h C$Չ&b#Q23'T7CfgIbfLRbd\' >C\^!H&TM]']y tr'Q޳}f5ƈd S3Qi B3Ђpg$"(` .tblbESQmնsk*3b3KE <?Ѐx{ޡIXFL nFGn晦o4R LyX)JRЯ:%B 0&]TQ. >Q_S]H%FC7=!xI{N=Nc*˝0)%QG)M4C1ZS(CFB>S (" HN ruHA]>Š Q#f?P&I=5!hV^/ ?L# _Ɩ, g֏̢'f&Zd4a_=@7fQdC5'@Krw}:m4:A,i^D `3JeBfW͊{W[1{E)zbcWznY#]qJw6{00t6{33&Ș@ /1y 0U}V0 ݫ5ټVKk:Pb_؍ꣳkW+롍1ݴAdc(Ŭ岍ɤ)a54De%s61Dϧc # d,pk^T vXS;C ju Tr^B'CTCǮdk:+dI`4 gβDž@K+'Q_A2#,t#/ws{9VCnZxue_p(ȮU 0X?Ln D9~0i|fR3 |d `RLYug Р΋+YM$sǡ!{r@K9=1-Ԛ\,3yiڑ {`*2 fE|PCc?-ݢvMf˟eЇAʅ?B>#]QUm~/-r/-])~/}` > stream xˎ񮯘#ж&tH8P 9pg;g Jԣ&%.TW׻|Dao"/&Jh6ͿXnoJnETƨaۿ~6JBd0FKa 4O[(%V%C*i \XeW<p_7jR}n-7xon &uR,qC ɞ=?_9xǰexA;+tlDVuیG!rlE&΍1 l]%z_I _%ÁWáuȷ<0c2(0#mҟIUg肶%E]+dpEF~$ySU+ m0ԛbۼdx5ԋSɛ,V@UEt%OK#Ov}u(DB1 oZ^Vw]u<4UBTo홤 yծ8/TK'΀uu{.uc Bɪ"OZŤ'-'$tw@dzXgt_e'`lҦ<SiT4܄3IQ<DQT%9VD{ JBcJv %\pllara x6?Ar`UP *;Nؑ7dpWTRw3FAZ>jsT64ԤK{?]oOfZ;Lm)4l 0-n"/ozҐwY񁠕 8įALX,t.8: }8lrQPrr1PQx1 "aB!0 /;VR(p!r|& "[Tqj3z;.ԣez 5p$Sɛ؁Zv(eɩ5We9~,#8#?xc>l 9sEk q,b-?ۛKxߑ:[: \E )E(*E""£P*ЭjqoI ˩Q@x.;=|VD=TfTs@ܕ$w J qR ֕,њ*Y>@G\Auv:cEZTRWYTp*,m* c.⪢F c&rW_"FcEF hcBOdt,F/()PpB\@DY6DRhM@a PlaW@D P5cs(4h ۣ&-"QS!3phmȖyciA80HsAAqr5Nkz֮ا2`DZ}:+#sDo,ɞ;v1 k휽2\vwбjBkfCh.tS ^mW{r:H2  qGh =w]}91`h LB`VPXVZd{̏QS!J2MH:c^(Q4mM‡IR:SV Ѱ>wpp @"֑+YZ3Oºd~{(:\b䜰e!ϋź]ں)APk"b,@I"!Iue̯*Ԡ X'xիjn1$銷%pCA*bx 0u@N{x\%f:!CqWO~)92qr4{fC k F ~r*ji:ƠNO~Lxx&ܭ lsӉCIR[gUTe>3QL܅ky~vA7 <%F'A5ǖlZ|5`[#fTv߯%Xen:%fƩe3&P\*L]Z =@F<4K^-ψP1\`յ2.jIzI4L#FE~/&q"geEF' &8a%J̠`,OTT"5Pt9쭴U_L$mP]k Yre @qf T_"e5.[ J4F߬oȐNӔ,sn^ lKsa1@2/}-!}Ƈ>X/[ǎr&lg=b'| mI>)Y#j*n_Qr)X ,B@Bl"\(x5سZ*KPcdؤ W.n^ejVGJa 6>Hcu}u曁yP*SWڣeS((s>`|Ϸ/VV endstream endobj 30 0 obj << /Length 2602 /Filter /FlateDecode >> stream xZKܸWQ |" _ \2 4nvKIקZa7 ST,㫯87tQR2WۍVo2~sSnu?tPvgLow'OV%ݩtNQB%iFX=끗{-v]>Cu6o2¦9kcՁʒO6iځ~{bx0sU8W 7R㒛Ν6ivUUfWmYpoYpD.,AОE8;IpZR"3K,(|f&zCD 0yGbm)< KNvE:رHAM9RB0^.r`0P[?ktvONiː#&En&x'ieT<,c!g,uoYv>Hb4=a*9f+yVXN-chtZ,ss3mU[|jz(s(tdӗ<(8,[D ?n>oV%BJtq̤+Z.;DIRk{;*IaB}gT.ŝrF(.U=X"7=0z-po~(8vUL&/`L@- =:%A&4[eUplm&jS*N V@+\. = 1vՇ=%usO?14ԬXGD6@%S!$܏[9,z^&r}.݇o4+R ٺ-S$ܧ~>4>MNZ "2w 2del*s{gz!ICH ܠ>A|G ?e9niyѾhc{5%=f61_iUP)*`_S9(cT?E=dL2Hi 7# ԩw3UPC+Ӟ +6d^؇# gK;&ç =8f$`TyWْL]ɘL4*UQyPxP/N#CH$vW!_l4z7!#0`P"T{k[ב4tk(y]W=~ރz@V,"rgC!ޝ&tAj1Sp6W;gcFEH\dv,_ 1)q?_.5"!RdLn1l=0t}8Ч8ه.01~𻰪MvJTn-ƺ"aP A @&F L)#` #6 RA nhoc΀]ea{Msl 9Ꜣa>{/L7~ՓIC<ԋ<<$Wj+ +˖BP;XkFYnRq(\#KP0 DRRt˜8;yޝF]},îS"wr؇hhrg t,|Y^5pBE"APK>~fX8Xu%uBeI&U? ^pL&)~LzGT҄M/3^=bv;T + VB?:E'P] 듐Ǥȭ^NűgP-܀_?xVB_\KG,(@D3MH̏۽~ ș//a_p:R!/.s,+hOK¥+!}(]6mvA-T\!n> V&\f1}*өseʵh) NK"K!!SJx#nNfkV=ثYtY0Gg9 YLǷ]'k0U쟚޹EW3sgx5ai*_* }%3ݮ"F xrxS|7 endstream endobj 34 0 obj << /Length 2844 /Filter /FlateDecode >> stream xZo_G81rAh 4g4Es)@K͜H:$uwfg)~heKA OZY}[W,K]nŸJ+Xʕ]lW?&]s\&CAMwy_65ǾwŖ(knkn#]6ՄS2GvNfbknl>6!v`MS&>-^rBf`9zig[[xfĵ\jaFߒ>/`D=JdtS.U.Z;2n4D0qo(8!]l:.ՄU 9Ʊg%ɦ}ljb0o>.-o;'oỲyYc:)!{Y-b%'', y>l˧'& (h<=y]4bd04R Ӹ&2v:ub0@ h)} 2CvJqo( 1`܁T%7N&0LRAf[akM@  ZE666KuvP?:l*"|pOh=!i1!|Ⲋ j:8U/5\St;; `HҟR sduW+nXBACc:L/'nwF_EWbff{/pVsV/. 4>ԍ|Yo'6{l$Bm0 ڎ`u+;r>'Tw>oHJ  w#k_6șaзԉ5^MAy&¢e`.oqQ߇=ֲ M؎J0"?2x_2oh1,ۭ .k={gF"?"OsDA 46E܄)\bM\R  2FLl Y֢#w=vACf8􈚎`ϥK9wIJmu\g]d4?k.ۿ˷}^۴h_Ў k<7@/C Tbx(_6 nn#h 0b仆Hx:ow,9*5zAMa>gTD*C^L&94aߋ>–^q:jRTӝh_dcص{b>^+ #Y^xk|/5e7k%$hR db$fiH~ ߓ@dgT;=e!nOnDCq a#zf*pӮ/iWNJʀ?GJ2U=jZX#zVY6ڥs.+3BQ Y+EG 1Ń9ķB;'?@XC-aA,@`"I SxH4H ߾=НGL`Sf|&o oCNCP1 G:a %nlHG[o41yi1`qH\c!f%Pg^{zSyArS^Zh]HO/c!M3.̡w2wB^aȷ‰ucPwC/<7brg:ڎ)J!xseO%@LA0`J>o|aE|:&$=6P0@Y@ :jHS endstream endobj 37 0 obj << /Length 2844 /Filter /FlateDecode >> stream xڭYK۸БhdSN٭TCaF%RI{f}EpTe.hFۛ^URF4.2ɍSSnnEl{ݥYcKE]=to\f{>a۴w{Y ]=rۣ;Ɏw}Sy\egKޟl.S*ڭ2VM%;$p!0JҴ۴5O2+HE# *,6ɚIz-Li/zAR*wH%Uh w>Yt`ÓfŽ*r?Dn]w Eg?ӹ#~߆TUiUV韹q;E>\eE,QQ$0)Ti,I7rra@ˁ4Ԧ l9@"ˁXnVlQȯtA`hf SМʜ.*l]=hLGul9pVeF1&N$16ׁIxNrc'cNq &*a,qU$A̛,FWEjqk{¹Td$k)Repb-Dsu(nE}[.y›+-BiޫsLw<\#b'YXk3bf K#w< q$)P:N7֓ЍhpoIih'!F ybxJR5 `gcP<ӝdqiWhXN6)XsJyYY'1n&̚J6\ ӥL晐Pc.1)l82*1@a0櫨gQFƗBe`E E*T 8wnط ׊&12#J@: µ4 $NSba(i忩M=ûbn~:y-WL't]Cؖ 8%5IɳhZPGx6㖣kL.rTF \j\1l':2{e? !BhUɇsoxFp|p{&cmi=2)c K"a,tZ +sQMܤoilXS&X~MyS 9;$U4p1 .cɚ$.|\TޢcZB9u c;+ONtl aܧ;/b<)pm~]EҀt >ERNYkE6CU{zM֔wi[fgK-raw/0|:_}hӥS5]5Ϟ^qI\⋗CBa{|s/ /8ǭ9q\}7t[j»H3 E_o^mCȅ>ޔV1Y1yjiBGbQ$-b@㓗ϣqKⴼ%lVaHi=8Z~4gx`!8۞3@80\Aqd8_o~/W endstream endobj 40 0 obj << /Length 1588 /Filter /FlateDecode >> stream xڍWK6WTn-FE=&6 ڢ8ȡk6zz8 o -!9 G.x3,lP$Kg,lvj5Sn.6z7rt.⌧,\Ѯ0fY"]TQ{adq&wkgZ}<+TQwwm;acH0pn8e\f3 &ܫjP"D葇v-ڹe\>)L򘴻 9x*<>@fNƼh{;`vn眳gcB m+zY%_n]+MkjMr,< J.kEve7XK?%ekq[Ln-i{}sc%m8S}pq# 7mL8˜{JmL8 Ŵx C0>>Saqd|kt@2B[;5ѕvgZMAhrE:Mx*sɛ+ȳ)^b MGw%SSl⟛ρ9G8x!I\\iPTiu7:(Rn  =JgM@|ܬj) YԝZRa;&fZG'=ZdAؓ̒}tll`jܽVn{Rš0&cٮQDuSm:[xkQSQP3JU]ҋڠ9C ĐX. ްm^2K@(;> +b #690DFZ8tTuiTpΜ)L'bF<]%t5?OuAJ#_qKn7Tx 9_Gi]ޏ6PfnZfetյ<3qtn]]*| Q.gdi0{p5IlW߾~;0w:ݬRБCJ-_LD$n%d<` U!EL, T*h|Y 2gg5=c endstream endobj 45 0 obj << /Length 1410 /Filter /FlateDecode >> stream xڭWKoG W\k2}MiYF ]ege(Kg'q8G_K|"&br,&Y*Lb>ي,\$(8LdәHSHƵ+ \ bȒ_'|2 2 &er)Tu v 0oQ'x/+yi4j՝[ /оX*Eps*kƹ ݄pWE֢*(uQ9RE)7@x $E4+ Co1rHkHuoK!)G{,zG#BȬ5oϔ?:jC7>n]]"1Bu)̶q0`0C%[B23>pCV| >(I"a酏o]o:tƧ%^8;4/RȁԛU5b 3 X˪ޑ^r8+D .Y4yA?T̹P)'i%S4+dͼʀgȒՀ^m86j uYү/`]fa}F6 C(Nn <98(B1LS"0Ri&LKM ` CRڟ8n 53 Sѱ+ĢB@{-z r~(_А?w۪3hugK[aZ?8|phr*^}#km{[8^jFn;xǛ7,Xޙ/hQ~lop+G*N hx"Yٰ>L@c}WpO͓'ϞЍx`[=;|aSs K]s"W2O6P(oǺVX׸duÛU.+>^ 6ڪpa.(NC؞oyl@dE//DM endstream endobj 48 0 obj << /Length 1514 /Filter /FlateDecode >> stream xڕˎ6pht͈j))=l@[ZKr%9΢ȿwCʒ^'pޜ~]x6Nf"yr32gI,xge1e|!(bY]Og1[> f X.H'.d*_\NE)px(;պZn^y3uB3œ)@ʌx BKt[e9YN) Y̾X.﷨mڎjPnOqx0fzԣB%y8T{m#툭QD`F/|!+ otG|q2KBn:="& 7ȻtH-Ըm#dnD; > stream xڥnFP$IRHTMiHBmEoHv޾S7$+ss/Wb7ͳUngM:wdhy'ً~|^rA~q]+>s㦝 ƒscm8Vť ˭>kv;FȟGʖn$NeTfe`dMCk46fU%8`)y"/@hU8uӀ+TQQ:Z^vC×PNt'/S secpd[CeE˔H/jsF6GPbKU`vla'K4,zŘ3h:ҏɼӐ C m.R7O=$LLYXa&P ydyB o"S56%ӆFQmn{kfWzmx5)[39wt1T4 ))XiLbhzD1^0Ѷ: ],%'$&DGKN`d*s.ns]9v5P&Ex'W0@؇5$dkQT!5R賩CӺ#w|=͵Tk5OzDХOܪMrQ~k::|<]9H4-V)5YPE芡|Z:J#Uٻ-x)پX2hwjF|jKU3W+~Ns~k6ܿx 2w%PYa Fo /_\Y(Knvy*۹L5}?ά‰3q^agVbIeh0:':`]m5yq:}1_cbi1z㋣`z I-;);K'۽V} Q~-OO2X~XPX %9h'^DИڟ9_)G }YޅI5c=Z:pݗƈ!c>| %>l_ endstream endobj 54 0 obj << /Length 1226 /Filter /FlateDecode >> stream xڕWKo6WF2j3@zHs%f!KIvΐٜDgys7wD:cRƳvbITϔd$z.f'b(Z/R56++( oY<$)sxqΚhLV|ˮ&luߑJ4{vYl$`pү :/ѥjpq"!\ PЈk[c y - Ɍzޑck& M0>(C/7i34V;TdyAҀ ܉ИN1#4x޻g}Yx !AzG,I@b6];C y,r+VM_`9Ԑ6l,nl6A:wI/- _pF9": pt&Xqٙ4QŶ88 cwMݴ^uyn auBѿM T6p˴9cS7Qeu[Cn A$={s/Pb( =Pb:o`_j>eփP bq<+͸ B<&pf5Yty!i NDN&%= P2 ,ͱ{ACo0dG OK뺬+,[_Ҍ)/%@Q1y~mO<)3(1Q@G :S.N/K%z<;2o?mA˖ɪPݭ qH_oD N)Et*Nv&3M:c-Q3i9fX$#&kLN{|}YWD9} @.lUyxs<߸H AuO)> stream xڝXK6WdfHIH $Er(.r쁶YrDi ;!e+o^䐜f曡V~ ,繘f",ͳY" e6[`eA=_@EkЖMKO4}UzCn`MەM*wvOH,'b" Zt}(4Kz h]E(=ŽQ-(B|^ƨ{zkc ߮=Jw?|v+m,QEsjeAˇ!z:M(rZ P9P4|Q\K.hR5C:G /sE294G{ZׯԠ*[غ޹e E5P]j}g:B]uuGz~auG;s-Fl_U\\7b?Nlj.6S$~vfྲྀL_{|ji>YN C{Yf ۟q˔l[^rs4(L}e\$Ĩ.g>]| $зJK'Q v}wBsWVv\x'ӕMDdMƷܕ5헬^nPuGUc?r[ 1*=y+c"KK&yLn^*O"%E7(f 0n "d^(7bq뫞q҄30fo39YyY"I,Łd\:we6p@9NCRpg $X$=,Hx萀$9$d,F.zQ"c !JPx&?F&q̃0a4D(a"$&3 Z#gED,き\LpPgrSl{"@ifgH!PmK%YWWD ] endstream endobj 60 0 obj << /Length 952 /Filter /FlateDecode >> stream xڥWK6 𡙑gl <3Lz!'\4k[Zr"Lk/A?W 8sl4qv0lXlKbΗ LVs8Aӊ7O3>[2%]=Z|>Qf-%4KSaՈѻ$>\B F`~:\.Enwϻ o3$#~x\^& 9ib&Ĩ =-il4LͤD&G3 0Ek oJlB]m">_krv ")(kKY^^KYYY(*xV~+RpmbʂymocF>=)Aq}vN$!pސAED'{=_!3}@<ǹWzպzɫF*`3 =<ή |ϥm0:>}+ *9-aP4/TǠ9Q69Xz<}^/(#EAQYJ,/WCsQ!'TWECG`V0*t%!v7CT| N+;QuӚNUg7"B)W_4LP~[ N׺vsh6ټML9(4plD @ lT΍;vpc) qDKPѣeM~"OJP'sC T# kp\!OF[8G+gpC\?g諥AӮNvz(y~{~~ד}t!@|uLd J}RK]S@~ު{T8Sp+b5\r .\/<Ю@t"n (;:Za訝(跚G"g+1ŸyrL,ć/hKCGg ;YV/P endstream endobj 64 0 obj << /Length 1232 /Filter /FlateDecode >> stream xڽWMo6WU~KhQaᢇlMjdi'á>(NrIpqp(}Z^T3J҂t(r$Mg&׷#*K|HrZ\]9#EVE`< ,#nVL87!N4'qYLY/dxviqY<#oԑҋع^ AhvQJFӤP,+WسGfcIyXn|J0^9MZťMӢ>Y轍ScvѤ,yH_'6f6+]QZWY{/Iޕ{.MD~RWۚ$gݸm9_ФG-w*:LJnS=uѾ(dƯZXv;OԀh,i-2Su2aǮ0-mK'yvM-JkyΒȻƞ7{,}&lvm~!!ϱ `HmuunWgwԫ/L<{?/no50*RʸV5ޚúI}k-n*ԕ|1+w&:tDڻ^>0w]*i[k!c~WO Gck}nR §Af WM@ >PFݘJFTw@ZTbE c(UiqNJwI>8 jTzo*fpM ǟrBP˔ 7@wڭW'+O7廪.~PAh@| SL}ﶸT^1*mJ|j{Bo zt(%(ZM|;® ~2+}B=9Yv}3Ιۈl5zsŘd\D# v`C jtF_{aP5:"8شͮ[/mIA[)Si2d׫H<^׮>/~򓗢 endstream endobj 67 0 obj << /Length 1359 /Filter /FlateDecode >> stream xڍWKo6Wm)QE-vEh[ȒGHڒ$ k7(W_U2c$4avƸ"qgb+=[lfyXe, ~ NUZȊ]=gwhS=㐗fj[7Ts Kvc1,O|__Pwgt2ALB{Ya4o}|&;İ T2stE9noMU$O|iNbmr}s\@fX_ ̺ o&_AXD?C)ck^jkX`uU7?m[ێ[T)2yNSq6e N}/"Soi ZCڢ(ɳ Έ YbNIlv$wde_C{|OeGj Rm|VY}t[BEÿ5,v&lK׈FGoO26I78Jr@ 99n-;UDԀ FP7ЇE'8NpG^Z߽*'3U8ЄŚm - [4pu$Ƶ'zM;eQ_0"ROIL%]rk+IWN9}\2o'Bɤ8,TY"s/v{ A>7Vc/PN &aʋ`itZ]Np BZdc7GIgL^q duuocd٦F@aeIu>b )?L;KzԘmٮf ~ ]e ruVOEi<[ :IS+Ӊ|8I$\H u2(M#p{> > stream xڽXKs6WZ0oLI9t&t1DgA"dHovˋ+2R ue$&Mv?tƥ{0}QuцzE-ˢYQ4uקּƟ P˦:EA ~ Lgm9;"k|r"FWNgyrp>ˆgX,m6eBCPh?0ݾXݪ3-BS;pŮܮ ۢ홟\[Mқ{0ew?e}],Z0\uJ~9+/yմD'FW^j㥘`H췤Z $#yA 4# !ZSPD'K6%Fğ10!D|d+U^\{g9 M*wզ]2Fayƈaަt$} #./Vgq6@1Q&ݦL=ӆ!rN ~0]F*/qğIpnНJY >@R=j#HRP9v$ާ .hLN&Q.teXTBF!H4ACQ۲\vOi:C6aGO7{jWo.S2+0̢CIG9^]VyZ;`qVq^Mq*ecMj*_*jE4c{f䯋ɇԈ1N1x&\l&K-qOF"ЈO&cp _gOtM>rM4LXǒ#r`JKφ,8'XK5+R=-n{Ϫ-c$;:⇪ezqp:s~Wp[W၉UHiOI1{%v}Cg G]3 Iؐqx4"=XEr#A$$)g'`D]w# 5:d\}@Z]sntk/(xOe+RLnJU7 nV`EB7KCaZ:1śaaBo;nq-P3c8Vh+r;s/ᦶTJpw/)RZbWt몸w7#w<2ŇxдnzY ^ve~0K3RP3?qs烵Qx^D7iI+pP,}Mp=ԸPݧ=RBgVkcO8Rx 6bJQ!y JՠPeRkzb>pe_qd;<\}]` cBQcR05Dqm[6GvUmƋaiqi'8{]bo@@с:ka؇@;"13͑?~+fԘ9p9()s4@iYazy= S &L &٩TŘ1œT2bL Lx t&eL'!{3)QQ>@׋ALLA(.=(]QcZ]gZ endstream endobj 73 0 obj << /Length 1853 /Filter /FlateDecode >> stream xڥXKo6WAK%RM Ec=8. keî;áZ&9~Λ'" L(0`2Mp^7J}u(\Ls%89\'jXÌKoBH'31 ~tEqlLQ#+IAX%EEaxT<6J^'A3PA3P^&@F/ꓠp@tS"x&*@eAIIPI}h8z񫜇7'~%aZvyS]6̉e֗@=W}Gn8T7Dj}fy;cܬӒw=0[+pTè" @vq0x SpFqHnܩ@MDXt["_]rmGӲ!tG-vtiRb4S4&Ӣ-I32L$VXkCj2cʲD2<5&#QLA= T|ᦵdF_t 48G\p/;%<BaK 똩e43gpqLE, އ4MG-?JGm;I&+!,3 Hx#O̊)2JN~}XBXS,%89SⳂPB12 T`PsU#Cű $FoZjΌ$`Ptޘ-xfC 2K$|zW O+,]Qy`vN}i&3/{@# #+a0PD-b`B[@Q퐛KGday?)۞Ӣu.ksVh6}[57.aJ B=T:(哻6]eT.ڏM7B'8e,Yčfӵ·6c:hh \ X!hm:NVжP3ᶆ6yɩ1axj7y"քRSp ).¬֎{VkE5pOhpt4f1I OA}z•tOvo'Х&ΛnP>|eu_ng:!M *$#F ǩKp|8C>l8^MaeԂ%xB= @`$,? oiEve;nZkohPݳ2I{gD0h=FJi)}ख़SԠؠ:sR[r62ԳQ>~`P4M^B (YJuO - -'hYx:zQOiMzFvEUCB{vލo e֭sr<+K ]}^+~ eu5EQU^JZRQ9kWn5DhSDf`=s.')pa|o_-k º(U{daR ݱ Eqh)ヨw{R8J/o^D* iKSg1>S/mNd@[Ж~0YNCC-9 ,$lѨ=tdOie=t/[//J%2d`,||_囅KөEMW`ӿ"~‹SQbSP='"bC@BY! όl0vx endstream endobj 76 0 obj << /Length 2784 /Filter /FlateDecode >> stream xڭYKsW̑hEI"WJvji!gV8YV9l4F_7n^;eVNiNzS!٩{3IYLjf:4-:) #[V$\-3#eͧ~]S&ud1_92oywТIB<4 4M2s3kRAf_<'~{#30|+)0AA}4^6^GqUp@KTS7h>X4(U@t}{zI:f`:h NLJQ#_,m̃?^Zc6!e`kD…89(h O=RyB"z#٥8Jq@q)8F3%/0`.xI^`:k$:F%>u\?;_HK$C"N-YL0D%pg`R"nayV'Hz (NqYQ+G͌v9r#h_c4Whb)}4~-jS) R36 h`Ίm _&Ul8A }?BUAr `gyԍ}B^1|ּ- aώ)r=RV|Cf0NE䓊Z?ɆG Lȫ.2JL Y͏F\=<79s}I0^$x_@l 'Kyi3bq H 9V1,˭M)vh[T[ssZon֩նX.wez%~:w#B*ш-[rW̸p* F#cTe3l$?ЀICd qHcWc9غBWo$IbZVb L/ѓa\75#NGI :ez *mG´A"{fc1!V7&pJk2g7AmNBWI}9`k0wmir.\Noo{reTyi2ήW L2B)J!:.lPV=`]EjXM@.T B^D c5<70}}B$ l6b )qSRQv,ɛfhr$ZxZ [U^\5&XAnKZNx<w_Ѓ9Zu]Ҝҝ2@Wў` CFH8#ב5K+sMPϭ |=p * (\ u $1j_x%r)Ȥap솙rĸ-It(xP І <ƅ*!['}b jk/$B]xaJH9iL{E .(ξet_Z“SAt2F_Y,[Yg0L| ]֙ BK,1&AARB}<:'e!S.9N1V/S`i;mqDH,;@U3ji5wj vo.*11sTc &ӛ*/[+%#[(ƒj 1/>#_n>`w ruj槟] 5X;(XhwousżIun~[qkOX׀H!\Lsk/}̂'{܋'iii[跩.@[ۆD 7S̽fNj&!0Bm2s{ؓ3~/~T@t(, ?έE 7f (dVm1zKa(kT#JbKHp>-'l_Bij=6 T&#~{8ؓՁt3( 2#bIRf(`QO@ @ Xs,,uY.PKJǾ`VؖMVG+|Q߁"Bacs>aS&bu.b2<'|ee1CMxcSϑUޥXx|ѵ/k_[: ~ټ%}ߡ6> m%us6 ./w ņy$ȴozy<)ߺmtjuPϐu/ Ӭ Eð endstream endobj 79 0 obj << /Length 1957 /Filter /FlateDecode >> stream xڍXr6}#T ɓ]:Il<`(H-/Ӎ@}4cDij(WO+n"shNW1m<-?UGŵRFI,NcˮHh%"!Ou!SZX'b7ZHdY TTsɛ6ں:͆{rƶeCYT87Td(gMY0k3ܖPھhSx>O"x"fhk[¦IB烖: ua߮/l26Ř1{tm:01:>@}N\d,КGrE&fW cbDXE-,(#g''_U^qؽm5umDZOIe)%!H{cYm׷8,k˳Y!e|CXFVzZag %9Rǎȅ-Nr [umy>TQ!ſK'JYtflQ{BKB/!y^ s[ ʜ/SWʰ_jO `6(X_avWtT)b j5}O5Y$]ڪa$ODES-\2M/,cf%A.D]q=\#6ڏ`7E*YCH &EShW7aSh)W0< ᄜY&{QJGE*8jhi/T DGˇdx F@L=uZ{qpsō8J I\ x%K0JL.Q0ȸy/$þ-d(D?.2!vv}6?u[MK hiۀṫMAL޴04g\Yt]h'TQ c0w}\$̝@;Hb^ye5wa Suζnp!eHfRT|'qdW z ȹTMC`cPm8t?qjrˠidc(^ˑ!>1w^1q$M[Q^u-bH$7BۡEz5kWݢAfyrZѣ: Sdp;rD4iZG'Mg+BJX`H4"8"a-ڦ>MӾXP (?z5ݾކ&7&R_@kahj"|BgdD=\cơ8| MEOin2q"f<]OzB_}Ћ"3 UαT9]X&(}\ɠ r-k0އ>SJ˿cUEdPtob.tAeUa[T\S:5D$XȄ$=-z)3@@PΧ. S mD1dDn( ^-{!J'}-W0XP/Rd<3W}"|rj]r:uAe[YhojtnM3|v/EEt+s-/p$> stream xڽ1@EPL (V$&ZY+h G(βPhiyM濅LRHUC 1?RlG~_)$3f) 2=yJـ#SM`sfjB*MwUtmph|gdxi endstream endobj 83 0 obj << /Length 125 /Filter /FlateDecode >> stream x35Գ4V0P0bS3CB.c1s<͹=\ %E\N \. ц \. @ "ꁘ?b;=?.WO@.v)aG endstream endobj 84 0 obj << /Length 247 /Filter /FlateDecode >> stream xeнJ@H0>sSZYZ^qy^]E⣴> stream xuJ@ 30<.zXWAOēz}y>B=$++B$,^lNm9*6MWuXSZdx|zw{I򿧇D#v{/R図x^9H`mZt/O/eegZx~ǜ endstream endobj 86 0 obj << /Length 247 /Filter /FlateDecode >> stream xڝнJ@U)LkyMs'6.'B RK E;!HQ)XnXbcdvv>vO%8ny'j^[nWg,;mx>(*1> stream x}J@'8&p,m 'BRK E;!h(yAQgg?r'+i'wĭ]=F/ՙཕ{4 LTyS!T*/p1*3J`=s6:IG&c Mi5~1| qOefrRǴ[[6Md`5Y:"CF(|5B endstream endobj 88 0 obj << /Length 210 /Filter /FlateDecode >> stream xڥ= @ )f.(XSZYZZ( br#Ɲ`_1˰uuߡzkF,ͺSw8HP-(PMU2E5 IRSdD j 2S|[ob.f" sgMY_ 20_^RGt%9}kN9]m`~ՖVR˓Z.qs|z endstream endobj 89 0 obj << /Length 281 /Filter /FlateDecode >> stream xM1N0 ]e%G/mLH017#Vk&3T5S8;a=u_ŗξ^-Fu؞xDPD āK3 &P-P'>o8)rV򔔙st¤D`H|*^V$l8)g,$4ez2gDvweh$456˓rP ݖa%A8{xtQҬ[IތXo endstream endobj 90 0 obj << /Length 260 /Filter /FlateDecode >> stream x}нJ@ )Gȼ&CX8O0aW^he_,#lXnqȉ #;߉;>QC-9jOiУ'l5n6谾vu伤%pYbPnl&Y*}__k9J'Qso2SO;2YhQ'\4VٙG RLVY0ϩeM" endstream endobj 94 0 obj << /Length 145 /Filter /FlateDecode >> stream x31ӳP0P04Q0P01W05RH1*26!Rɹ\N\ F\@A.}O_T.}gC.}hCX.O 00c`g P?PAՓ+ + endstream endobj 95 0 obj << /Length 147 /Filter /FlateDecode >> stream x31ӳP0P04Q01U05P05SH1*26 Rɹ\N\ Ʀ\@q.}O_T.}g E!P Es?A{?j0X0?`r 81? endstream endobj 96 0 obj << /Length 211 /Filter /FlateDecode >> stream xڕ1 ` S Yzs[-*T;:9::(GR}?( {I^kJd3JҗmYtCDN9,gLgt> stream xڝ= P_H&Gp/TVb]r#XZYbi4$18 0Gg|'e9r&Xr;fw[9+[)5<_JYh0hAJVzƒ5/M[ߗGr:c#Mm'rIT2f6}]]b}[q7S3 endstream endobj 98 0 obj << /Length 183 /Filter /FlateDecode >> stream xڝ1 @E'(%1[ZYZZ(Zǣy2EpQcz? xL"M1KvO;bjQ)QY TrJUFCz6#LO-AGЯyp{w?~;W4zRB.cRHU}{3'h,$EH2 endstream endobj 99 0 obj << /Length 174 /Filter /FlateDecode >> stream xڥ1 1EW,i ʺ),J--=G#|yf\pʎ]{ A) X~ƧyG:ْ.xe٬9A^ok)Ȑr _6| PcGԾ?1F>w=F$ ӂ޳I endstream endobj 100 0 obj << /Length 171 /Filter /FlateDecode >> stream x31ӳP0P0PеP05Q03VH1*26(Bs<M=\ %E\N @BA,N؃$0z8Q'`& >`& `G${ ?Qr `E endstream endobj 101 0 obj << /Length 171 /Filter /FlateDecode >> stream x}1 @ a!s51VBVbnY-DM(HgjxD1alT+ Q9O=|1!w)ڠ) B T{@6\% .:Z@ Z|ae_U/b endstream endobj 102 0 obj << /Length 217 /Filter /FlateDecode >> stream xڍп 0-ySV8QĘ| 1|yaN(SyHQBޚEK|9_E)ssiKIBGD[ghk v%F9̾ +E)5o*. :.ZЮ֮+)" [˼_|Ov/ (R(Mf _ endstream endobj 103 0 obj << /Length 214 /Filter /FlateDecode >> stream xڍл 0> stream x31ӳP0P0Ɩ )\\` f%r9yry\@a.}O_T.}gC.}hCX.Oy 1??T*:! #H'W ~*M endstream endobj 105 0 obj << /Length 214 /Filter /FlateDecode >> stream xuJ@Ƨ!0vMHi9z GAEomlWG7sɥLo ~R-1h_IY?S}{.O/wK)د亐ەL`n\LrɥMaa0@쵅HdqQi$j>؇.MCn!2;E0|<[U endstream endobj 106 0 obj << /Length 156 /Filter /FlateDecode >> stream x31ӳP0PP0W0T0PH1*21PACDr.'~PKW4K)YwQ6T0tQ```gqHȃ=`Aԃ: ?Ŀ0 ԡ`L|E<Փ+ G` endstream endobj 107 0 obj << /Length 143 /Filter /FlateDecode >> stream x=1 @wn^Xbhi(m,-q#(|cYj9֌YJUT΢yךTN̖Y ƭx܎b*N7qDoRp, endstream endobj 108 0 obj << /Length 99 /Filter /FlateDecode >> stream x31ӳP0P0Ɔ )\\@$lIr p{IO_T.}g E!'E@!ncr h endstream endobj 109 0 obj << /Length 176 /Filter /FlateDecode >> stream x31ӳP0P0QеP05R03VH1*21 (Bds<L̹=\ %E\N @BA,ȀI;0Y&!H? d" H`Dڃzd afaX>1 ;0"<Ȏx<1LZI.WO@.Ls endstream endobj 110 0 obj << /Length 127 /Filter /FlateDecode >> stream x31ӳP0P0f Ɩ )\\f@ IrW04 s{*r;8+r(D*ry(0` 0~` A9.WO@.{a* endstream endobj 111 0 obj << /Length 129 /Filter /FlateDecode >> stream x31ӳP0P0S04W05P0PH1*21 (Bds<L=\ %E\N @BA, `Ad"@j&3p? \\\I endstream endobj 112 0 obj << /Length 103 /Filter /FlateDecode >> stream x31ӳP0P04T04W01R02VH1*26PA3Lr.'~BIQi*S!BA,B?$ r \A(a endstream endobj 113 0 obj << /Length 143 /Filter /FlateDecode >> stream x31ӳP0P04W06P01S05WH1*2(Cs<,=\ %E\N \. ц \. AA=ga{n@Cq `ar S< endstream endobj 114 0 obj << /Length 297 /Filter /FlateDecode >> stream x}J0 =Gh^@k +؃='A붏Vk"!tʲ(xI;-؜ùifvbkEsV6UuKՙ[ծ y<$GIf443yL/tQ:ۋ(]!5*:=t%I>Yl,P) HK . O@Kj7:3,E{o[JG]}ד}t2y1: s)`W+]^oe:oյ> endstream endobj 115 0 obj << /Length 298 /Filter /FlateDecode >> stream x}1K@'d8%!4- AA-|+.'M0v_ȅxٛ>'nt͑9_nٕNtvm^gSэ.I U#PCPy w4m!n| P.PbZ&i.ֹj`Y2)A&TodrAI2VwVc ު䶑7$CXKL|*KxO3}ur-{NZDӀcg^ endstream endobj 116 0 obj << /Length 292 /Filter /FlateDecode >> stream xMбN02DG_H R)`b@]u`xxT@P#Jf;GRUun q/ A,'"Te%SEVLJ[MϏU!*T>LIGt˚ D;~vl>ou3q1춾|ʷO}0,# pXh6hԸ84bZJ~Ԓ\w+Vt \xihdzݐiY=$L)4.E$h22LXtX`Q(R endstream endobj 117 0 obj << /Length 193 /Filter /FlateDecode >> stream xe̽0[x "~- &2`A+Zl+ z1xK7}`|8CQ'p7.h nv7Z͐1nc!孅+ ݗД>!uBG3%9mM5F4V.կf֚RFiHk7e0)#W^a> endstream endobj 118 0 obj << /Length 194 /Filter /FlateDecode >> stream xuб @ H!KyնԩP+AAAQpGNA70i^4(]G 9˅ŊL(9O=l1EN 9A*lTS[lolnګtѩY|guU^emz'g'(Ieގ endstream endobj 119 0 obj << /Length 200 /Filter /FlateDecode >> stream xڅн 0+ ~`A, vtr'utPt5}4б&O Crɗ3)hX֮*ilEAl&Ws:.{dbB3D]$ p %X3'=íU6}C IB%:+Brm^CseB}]P8qOdz endstream endobj 120 0 obj << /Length 155 /Filter /FlateDecode >> stream x31ӳP0PaKS3CB.rAɹ\N\ &\@Q.}O_T.}gC.}hCX.O1TDvBL4 D"?8F0 &> (O'W 1` endstream endobj 121 0 obj << /Length 168 /Filter /FlateDecode >> stream x31ӳP0P0a3S3CB.C I$r9yr+r{E=}JJS. @-\. ?000+ e8Iv!#!d>B2#dn?`c XYc%e0pzrreT endstream endobj 122 0 obj << /Length 262 /Filter /FlateDecode >> stream xuAJ@xAN`bP+.U҅"8EBxxq7@|/Ģ.oa7Jh+(*[$'eY1Ƨ|qqFwΏ)xN)%WX 0 A@'X!TW@ F-@\GaL@+?QowI Sji*ՕTj`t ^3@ #=ңuf'^^ endstream endobj 123 0 obj << /Length 232 /Filter /FlateDecode >> stream xuAJP?dM9/T f!ʅ.]( ]+@"9/Ibd>f_dzt2㘏 S^'Di̮dtGZn8I]ȖT~/ϯWgZm+F EQ$>B>$@Q Y¯"8(: ,:QBM?jlӞokb{tM_+u5 endstream endobj 124 0 obj << /Length 234 /Filter /FlateDecode >> stream x}бJA ,[ G.Νg5pVZZ(ډ;ba;$'XHglEQMaE%=!H4uB@)m=__S~Cۚ;l6-30sofs0GЩz*pR[3fK鯢ق:w#ĝhI;3Y:3]VKq4C;࿟y,mw%wfi_ x x endstream endobj 125 0 obj << /Length 262 /Filter /FlateDecode >> stream xu1N@E"4>Xq ,  * ()@ QaK\#Eg xyxԙ.rS/I9,/ݣkoK~<>H:Bn JQ 'PG>&f_S3 H#>%Xh:Y3ICE2%3ЁUmr88va;7;׫g*zɴ'H 8o3.7F>se弖k" endstream endobj 126 0 obj << /Length 183 /Filter /FlateDecode >> stream x31ӳP0PbSS3CB. I$r9yr+p{E=}JJS ]  b<]{u 1{ H2Y&|$#d>B&vFāj\= m endstream endobj 127 0 obj << /Length 222 /Filter /FlateDecode >> stream xmϱj03 |/m&CB=کCdА͏GK@כG)ŖRURղᴔv͇ۖ8lW96۷'lviv'Ncm6Qrő9n6S8iɷDEHȷDE5G%j`XI[B 6t OR%L@EaM-?ȀN endstream endobj 128 0 obj << /Length 234 /Filter /FlateDecode >> stream xeαJP2Β7MUHOV0C餎by0<}wēƺ|oG'NPSR:;h Cu2 1/iҔ1_Aڶ:V_^Y}zЊ3h:I<Q﷗#W,/3o-[ndͯ^kxngnݔj'RvANx?I sB endstream endobj 129 0 obj << /Length 219 /Filter /FlateDecode >> stream xMϱJ1"0>Bt7BBGˣ#\yŒYC_„kJςƵƠoA{]VyfIc/ݝ]Íqh H<YNW͌!#|i~8-v:Q,b#X}n}Hْj`O:Aom"jAk1xp3YvG-m endstream endobj 130 0 obj << /Length 235 /Filter /FlateDecode >> stream xu=N0\X&G\hVE"T+*D49# '@|{SYO7-մ-3.ư١m--Z.sUwE/oXmϩjG;vd)3v(&_*r) ԗ(G^KoNP=:F#Ȑb0caߨ``u`;}!A%gyY$ქ<K~ endstream endobj 131 0 obj << /Length 210 /Filter /FlateDecode >> stream xڅ1N048feH-AK|%G2amCEg[|w[>]r-;mzM[.NGxSӜpϟ_{ ۇv}a@ZJhD2Ȅ$2c4dvJuNͨ (p7Rij/M)vAm+uӿ@"S endstream endobj 132 0 obj << /Length 232 /Filter /FlateDecode >> stream xmαN@ `W"yG8DJS:TD$02ʚY%AC:d) MܜSE-ԬiSTk> stream xU1N1Ei|kBR[ AEQA h.SD;&O͟7+nykzeayH={ɏ#~@~  ,FI# $Hy!p9sP SlQ S]BS3O?9Cz 5I[lIݐ\N+*iD=ktSn'-o endstream endobj 134 0 obj << /Length 190 /Filter /FlateDecode >> stream x};@%$p.$1q ,ZZhQ8%aaD)e3&SKp4C g0GgԂޠ1mx܎ cncv`3TJyĨJ6$(r&;;/Xy9pED]Kv6}zκOY8ˏywf.'+yWana Oq endstream endobj 135 0 obj << /Length 286 /Filter /FlateDecode >> stream xuJ@g"0y!SZYZZ(]-rvABs.ovI{F%t\tZSSc/ش\-iYqaqKM%ױ 9UXl订 d ybR.aa cX"`?5̆o,, ߫0Ȅg_RPg)$.z4/@ciJKJʓnyA u%>@+ +0@:ɝs<#Nz3b:%^txۺ endstream endobj 136 0 obj << /Length 207 /Filter /FlateDecode >> stream x}; @49 SZYZZ(f=Z"xSg7 ?2Aɥ ^H[]McajIj*UTNp>"՘VkQrtaQ d,ɹu|--"1^JBR̉*z&v:N{X5gS\Uo.Nb\ endstream endobj 137 0 obj << /Length 168 /Filter /FlateDecode >> stream xڕʱ 0+[| LBI Njh}x&A Ifz9mPkcaP,IkSע03:;|L EI+Er$ 4./ @'PE \b<<Iya9PpbpO)T< endstream endobj 138 0 obj << /Length 210 /Filter /FlateDecode >> stream xڕ; @YRxtJ +P,x4#XZH 6.W 34yP#PKkwFzV[s #cQ':t@>!-| 䪧䟘L=̿;w3'EP+l7jӯi=|:s+b-SJ}e GrQ3|d endstream endobj 139 0 obj << /Length 221 /Filter /FlateDecode >> stream x}Ͻ 0C>B Zt vtr'utPtS,GB1EAA1$$wKҬ`[43\%4}r`^jijD1w5ޤ l. 0Nߚ`gTj*YO8:uȱqJꂽSyXND!uаڻ7ԗ:1D&/e6 xE3~0)<|] endstream endobj 140 0 obj << /Length 159 /Filter /FlateDecode >> stream x31ӳP0P0b#S3CB.cS I$r9yr+r{E=}JJS ]  b<]``Q"? ?8 8{0u L?` .WO@.R_^ endstream endobj 141 0 obj << /Length 177 /Filter /FlateDecode >> stream x}ʱ 0J-}{B(u* ftr'utPt+G#t< pwxb1?p dsԍaw\XL@y B-r@) -=/4mVgu𤆚N-.Ѧt+.Jf{m?FN3w!ct1]a`/B' endstream endobj 142 0 obj << /Length 190 /Filter /FlateDecode >> stream xm1 P ,jEB`A'qRGE>֣<;B|?Ns42!Mgohu۶՞Lj-)tC*.G'}4!r8FJp-27sX;+YJ>!PDhxհ#qʩe#\Y.D*~ps endstream endobj 143 0 obj << /Length 217 /Filter /FlateDecode >> stream xe=n0 ^ !Ȕt"YkMG4z0R :]ށ"ħ=,\'7O>i:aAOtL}eÞܖ[V($FFUG"@'C;MBMIU (5[resKMSCЩAgC4jFV"j"kJh+bo endstream endobj 144 0 obj << /Length 247 /Filter /FlateDecode >> stream xuпN0/`<JUeTD$02G#d|P,'?.n\uۚPk^kozETkToj/ ׯԭ 6~9H$؀BzF{baIu=L1;> stream xu=N0\D&G\eHHE"T+*Ak&\GR> stream x}= 0 kI NEzbIJS$.(qfc.1xIjsq$Uj"ۯ1)Fy#ҜN&"Yy 2$P5sΚʮTz)z@=qQg5椳[o }6 dcq endstream endobj 147 0 obj << /Length 222 /Filter /FlateDecode >> stream xm=N0_4{2lXҲH@j D (GQr.L(4~sr>p>ܟq q<> stream xuϽ@ ^H.1::htG K6idP@ 5E5^0PጙAKaRݮzNi)أ F8/nO+y\җ1DgiP->Ձan,Oz౽R0ʞ^ endstream endobj 149 0 obj << /Length 187 /Filter /FlateDecode >> stream xe=@!$p? b"VJ--4ں{4 Fiͼ$)%)]"c0;9߰jP(PlL񺢨v+Pt(> stream xM1 @'49(I F0X]09ZRY73las.O>t%ߓ1y8^(NIHdK*]87 vI%w9PpHZ..XM!/3(ѯz?Gh ź1n_*U JU@h ;0" cd:0&I˔dU~ endstream endobj 151 0 obj << /Length 204 /Filter /FlateDecode >> stream x]=Q+In$~SHB tˆB9;0f0;0A_r)*kUW*PFgD3gpQH)nQ]Z.VS^-:dmV{9muju*<5MfوݼoϽ=f<\?l@/!g"bf#~vOhr endstream endobj 152 0 obj << /Length 206 /Filter /FlateDecode >> stream xmͱ0# $'" b"NI4)h< бZ{upФMGlL%%c4g WfY endstream endobj 153 0 obj << /Length 232 /Filter /FlateDecode >> stream xMαn02 ݒG^:DSD$:u@LЪ:DGˣ=D1>$N}q2QDcMMtR1% '3̶{FܽBيԂ4570ze(mi_,h[i[s?v%| ϛ'a73UVWhvV۩~rk endstream endobj 154 0 obj << /Length 240 /Filter /FlateDecode >> stream xu=N0g4$TE"T Ah>E3ih>Kckf>y悟kzU+Ŋ7 :*yRy-e*~8P=?\=RgDnrT#t6"9!7:aJjT&M/?RȀޝDzN񈉳Ba(9duek!J $5Kf| !@W'}r endstream endobj 155 0 obj << /Length 179 /Filter /FlateDecode >> stream xm; @YL#8'p+U F0XٛQr)$㬈k ?S`O'QD4>&)"fwļD$E3\|=ɗS)bY LTUB3K2Pmr/*qOrZv_Ծ~bnJ\ \T endstream endobj 156 0 obj << /Length 244 /Filter /FlateDecode >> stream x]N0 @qK?j`Jc N'q@p%~J>a)ODiVkh)Y5a}[mpaxfV;x|ŰÖj?D˃yp̓gYYC;@!&_@b˔?ճGefoT8g~цv@Q6tozazkz4Ut_)ΔQMEјw>7x@ endstream endobj 157 0 obj << /Length 251 /Filter /FlateDecode >> stream xU=NPrai_{p,9TBpED hc-G\[+ό\]TЕ^ZVַB>,(.tYMY7?kYH~OYA~%_?*Սn9"F>= 3ڌvвb8cw?2gFGD=2;x)fNUSgf91.؝¹jvb4qsItag}@SC$<ؐ rȓew endstream endobj 158 0 obj << /Length 225 /Filter /FlateDecode >> stream xmJ@;d1p7y'pH6j f!ʅt.k|@MҢPgTRM)5ƨ{Sv׸eW3dJy$]rU %Z |+_HO`x|d b۸!AR4 wJQz{DAi@A>B?=1GLW#ٿEw8yO endstream endobj 159 0 obj << /Length 225 /Filter /FlateDecode >> stream xuбn09rOjJg{mT$ߛN[“ҀY $HI'xi%'c2D0#j|,| endstream endobj 160 0 obj << /Length 256 /Filter /FlateDecode >> stream x}1N0E'Jai#d.I,-D $(PR@p%%GH <=kiq'K+3yVV럗grs17?q>us"RQ#׉ DeLU걘E@H(補x@5dD#;D/D8cNl'"k3T{ 蕁 5BVnBolU)3PϿ59ዞo endstream endobj 164 0 obj << /Length 177 /Filter /FlateDecode >> stream x]; PEo o6<Vbv'غtn2EHFÅs:XsgyӞd>e8%w!܉hr)-lb^gEihѶ tP"Y~ЅqdXS(\!(iPC] mj7ҪS n1 endstream endobj 165 0 obj << /Length 167 /Filter /FlateDecode >> stream xڍ1 @YR nv6 n!he!Vjih'qGRZp5Lܔs<6lg  ^9l KQ߮z=g|a9Gt)B(PD 1 PBʇK|P\x0> endstream endobj 166 0 obj << /Length 180 /Filter /FlateDecode >> stream x33T0P0R5T06W01SH1*26 (Cds<M=\ %E\N \. ц \. ?XN0 @Ar?``?h> stream x33T0P0bC 3CB.CS I$r9yr+r{E=}JJS ]  b<]BTՓ+ ": endstream endobj 168 0 obj << /Length 186 /Filter /FlateDecode >> stream xڍ= 0'}$ ], ftr'utPtp:v( ԡoOeLF4Ԙȥ"ՖvGL55.yDFآΈ }o J`J30V@ AaK}Ư/橀˥5 6?pq_Qn endstream endobj 169 0 obj << /Length 138 /Filter /FlateDecode >> stream x3231V0P0T5T02V01TH1*22 (Ads< =\ %E\N @QhX.OzE?3L8$ Y0~0`P#'W E;G endstream endobj 170 0 obj << /Length 139 /Filter /FlateDecode >> stream x33T0P0R5T06W06PH1*26 (Bds<M=\ %E\N @BA, C ?b4"Q  A20~0pzrrMs endstream endobj 175 0 obj << /Length 146 /Filter /FlateDecode >> stream x%1 @EqV$Qc N!he!Vji(%Ks)YBJwrn6sZΘ,' Nn&-]?^̞i"fXq^Ĕ%(~ID57T_@=@-6T֑[!6* endstream endobj 176 0 obj << /Length 146 /Filter /FlateDecode >> stream x%1 @E/d y+p2dbBB`6;%XZ<\W%Rp9E^h1ӞjvȜj,0vEzP`K$%b$$T$E d+oѥ׭{/ endstream endobj 177 0 obj << /Length 197 /Filter /FlateDecode >> stream xڍ `4w/Pj)MPԚ>#46_Gth =(TWC# |=yrϭ3;/ft싳^l,N+=u-',]ƠBR"/ w]OJ Hѐ4MJ0?_9.6վэ-iN͋eVL endstream endobj 178 0 obj << /Length 196 /Filter /FlateDecode >> stream xڍ= @ GbVbh%GH"/Vef Ʃj?8$C(gbg(X]r;fwPL@ | ~nF <z/@:Mrp\3]8[FihHOҙAHVxuO endstream endobj 179 0 obj << /Length 197 /Filter /FlateDecode >> stream x=;0DQ m#'1Q.@T@Ip'Xz&p:SN8qjhBq&,d p’r^ %mW|O w=ْ\%NfN‚R8Ԏ;?]Aq !帿;$EC3NMYBvҶ6n* UKe endstream endobj 180 0 obj << /Length 97 /Filter /FlateDecode >> stream x31ӳP0P02PеP0P03VH1*2 (Bes<̹=\ %E\N @BA,BM?AM 'W (V endstream endobj 181 0 obj << /Length 194 /Filter /FlateDecode >> stream xE10AH MR.@T@I< )) bex{6G9avὡũ4!H#8%5))z -lH1r-9 "HE H$;5ƚ2 @Ll)a7lI3G+lJ endstream endobj 182 0 obj << /Length 110 /Filter /FlateDecode >> stream x31ӳP0P0TеP01Q03VH1*22(Bs<L=\ %E\N @BA,BQ? C GG\\\0oy endstream endobj 183 0 obj << /Length 112 /Filter /FlateDecode >> stream x31ӳP0P0VеP0P03VH1*22 (Bds<L=\ %E\N @BA,B@ C \\\HB endstream endobj 184 0 obj << /Length 143 /Filter /FlateDecode >> stream x31ӳP0P04S02U06V05SH1* !T*9ɓK?s{*r;8+. ц \. ?조1aPoP`L.D endstream endobj 185 0 obj << /Length 180 /Filter /FlateDecode >> stream xڍN; @n!swCM*!Fp A+ RK E;!/^`%mȸ 0Ј2 1> stream x31ӳP0P0V0W01Q0PH1*21PACDr.'~PKW4K)YwQ6T0tQ``a:S$G`1j%r > endstream endobj 187 0 obj << /Length 142 /Filter /FlateDecode >> stream x31ӳP0P04S54V06R04TH1*24 (s< M=\ %E\N \. ц \. ?aC??@P`4,r endstream endobj 188 0 obj << /Length 96 /Filter /FlateDecode >> stream x31ӳP0P0@P!Ő H(`\.'O.pU()*Mw pV]zb<]\= endstream endobj 189 0 obj << /Length 162 /Filter /FlateDecode >> stream x31ӳP0P0UеP01R03VH1*26 (Bds<͸=\ %E\N @BA,<b@N ?8$D D`#2f2X3Iq,63 *@'W yK/ endstream endobj 190 0 obj << /Length 104 /Filter /FlateDecode >> stream x31ӳP0P0@dbUeh䃹`\.'O.pCC.}0BIQi*SPE!'EA0XA0Փ+ 9-I endstream endobj 191 0 obj << /Length 111 /Filter /FlateDecode >> stream x31ӳP0P0V04W01Q0PH1*21PA#CLr.'~PKW4K)YwQ6T0tQz ?*1pՓ+ JS endstream endobj 192 0 obj << /Length 143 /Filter /FlateDecode >> stream x31ӳP0P04U06!3cCB.C3!T*9ɓK?\ЌK(ΥPRTʥ(D*ry(001g733??PS@(TՓ+ 2* endstream endobj 193 0 obj << /Length 102 /Filter /FlateDecode >> stream x31ӳP0PP04W0T02VH1*26PA3Dr.'~BIQi*S!BA,B?ĸ\=E:( endstream endobj 194 0 obj << /Length 118 /Filter /FlateDecode >> stream x31ӳP0P04P0"sSsCB.#39T*9ɓK?\ȌK(ΥPRTʥ`ȥm``P !\`߀ Apzrr]7 endstream endobj 195 0 obj << /Length 262 /Filter /FlateDecode >> stream xuN@ u%+ iCN*E"L 22`7 or}g!uIg ZTW)Zg\5QUc~%c̛kz{}|usA^}I6k Fe`<@!cf0?]p sېy&dH}8*v%Vf51СJZ FGY&I⣽0n5FzPEZI7s.^6x*H endstream endobj 196 0 obj << /Length 190 /Filter /FlateDecode >> stream x31ӳP0P0bSSsCB.1s<L=\ %E\N \. ц \. P߀ J2~~d|"N`%값 hL F'y,$33oAYՓ+ H06 endstream endobj 197 0 obj << /Length 230 /Filter /FlateDecode >> stream xڥбJ@/L i +PysQ%o镶={[r\/䶷\C#;"L E(JdG)23!_#2C[{GE{ʐ :Z2 fFb֘9e)QSFO?V2C鎾?9ru endstream endobj 198 0 obj << /Length 197 /Filter /FlateDecode >> stream x31ӳP0P0bS3CB.C I$r9yr+r{E=}JJS. @-\. 700& @Y4$)&?H L2A :0Y&q RbbH.C _@|A! HC, !݈I endstream endobj 199 0 obj << /Length 149 /Filter /FlateDecode >> stream x31ӳP0P0bSS3CB.C I$r9yr+r{E=}JJS. @-\. $BփI uD6`D2JOĥj2|$(47Ae\=WD endstream endobj 200 0 obj << /Length 141 /Filter /FlateDecode >> stream x31ӳP0P0bS3CB.rAɹ\N\ &\@Q.}O_T.}gC.}hCX.O$3``'Lȁ|DAjD  \\\, endstream endobj 201 0 obj << /Length 105 /Filter /FlateDecode >> stream x31ӳP0P0bS3CB.c# I$r9yr+q{E=}JJS ]  b<] 0 %\\\6Qg? endstream endobj 202 0 obj << /Length 199 /Filter /FlateDecode >> stream xe1 0-wӖZtP*AAAQPPRo7iqpT I( 8{~B&6}\9Ol[L,7@g@GEq;>:@8w^@8@X&as!eV^zH4 6Q25> stream xڭϱ 0H^{ӐZZ+AAA(}$]8N KM9&xg,\Od+ f.S0~ ,Ђ)qo19/"jB.P;UuDF 'aybhF4j-iMːO*"`a oƅt endstream endobj 204 0 obj << /Length 218 /Filter /FlateDecode >> stream xڝн 1 Y|;? N⤎磝"b/Y>Jڤu)&cjiɈZ=qYh>&xޡG*hɘR. eى/".Ҭt ҪwVhO/o2C xBbMn7ݥ| "Ԁ3ï>$$J endstream endobj 205 0 obj << /Length 250 /Filter /FlateDecode >> stream xu1N@E'rai=1IL,  DѶ. (ig?lncQiں'Tl=yE&lk\FZ,6KNZa| 9|t5iûH Jbz<rd'0 (9qp&8 %?cFi=H^Q #t)g/pxLkDυ3zA endstream endobj 206 0 obj << /Length 127 /Filter /FlateDecode >> stream x31ӳP0P0bSS3CB.1s<L=\ %E\N \. ц \. D?`OY$$ ;R?$XՓ+ VX endstream endobj 207 0 obj << /Length 174 /Filter /FlateDecode >> stream x1 @ ) fa n!he!Vjih-GL2 +7&.&RY S2sjOƠZKFe7?/4#ڂJ"nݯ;QO7ZB؈U$fMYD@ ϝf+;|WW endstream endobj 208 0 obj << /Length 220 /Filter /FlateDecode >> stream xu=N@ _b%79 H" * D[n&"ymafYy.\O:/wa\gVVOK{Ǵý~~|m]=(k}fϋ kEm&fhF hrá +'2ʉ3q4|PY؁0e齳s5\@e'XreSU4Q~MQd endstream endobj 209 0 obj << /Length 206 /Filter /FlateDecode >> stream xڥϽ 0+->Z+S*AAAѹ}>b$*.bBz:ԥVDJQܣmT;fiTTf3:; :Yc6\;lhkb⍹/N-Z6*p|ZX?4>usn tn N2\KKv endstream endobj 210 0 obj << /Length 205 /Filter /FlateDecode >> stream xڍn1 ]1%o )$n@S ZYG!i _ϲ=gzp;:٨T6{hh.DmyءQvF0`80cf̱b9)zA}T$"'S|_Q((M I +TPGey?4dѸYz1_ S endstream endobj 211 0 obj << /Length 220 /Filter /FlateDecode >> stream xڝ; @ )isJE"b=A aS~] endstream endobj 212 0 obj << /Length 216 /Filter /FlateDecode >> stream xu1N0E*ir ,-D $(VT@Iv(>–)VAaYO??V=ϝz`U6]oX?ݕvⷺ}qE XXͨ̎p[P0LhB M 4ESDiDf( DETHIc %)>/~Œ\r/_})oG endstream endobj 213 0 obj << /Length 164 /Filter /FlateDecode >> stream x31ӳP0P0bSsCB.c3 I$r9yr+q{E=}JJS ]  b<]300? C=`cf ?F%5Ƅ@.N%\=CSt endstream endobj 214 0 obj << /Length 275 /Filter /FlateDecode >> stream xڅ=N@ M_(E"T+*AD \%7!H9Ec{BHLid=RI'tT%=VjIM}h=<|ŕԱh UXiSQy :!1{.g t<A9Nt¿ɽ`n [Y'(3@ ~sPoi5E,b6y0ɬ1$V ٺ[Lz #h&;ij$^MR} ^x?m endstream endobj 215 0 obj << /Length 165 /Filter /FlateDecode >> stream xɱ @ : Y k 7:9utPt>ZpcҘ(@>?1t>C1I0IF*x܂ڡA ʮv@F G` t>'C/fH= b賚'b6l Q"Di endstream endobj 216 0 obj << /Length 137 /Filter /FlateDecode >> stream x31ӳP0P0bCSsCB.cc I$r9yr+s{E=}JJS ]  b<](B` D00 aDHpzrrȧYA endstream endobj 217 0 obj << /Length 168 /Filter /FlateDecode >> stream x1@!&p,`EVJ--4ͣ(-!5W? 9ER?֔$4hqF=`iP(QͤGet>]ń4֚ | f!N^ :^]寸3 lnO(N . k7 endstream endobj 218 0 obj << /Length 217 /Filter /FlateDecode >> stream xڭνn0pH' Q" vP+ċekdUGk?>48^iƏ%Ii?1B4,Ⱦr'd Wwc'/kL8TEk%t:u=|?Q ;DN d~U7 S[v0ؼ?bjv? k1N\*7V*=4#S endstream endobj 219 0 obj << /Length 123 /Filter /FlateDecode >> stream x31ӳP0P0b#S3CB.c3 I$r9yr+q{E=}JJS ]  b<]``? ×0? 'W g endstream endobj 220 0 obj << /Length 161 /Filter /FlateDecode >> stream x31ӳP0C CB.sD"9ɓK?\ĜK(ʥPRTʥ`ȥm`C}?  Yo`*?!*9=g!@d\= endstream endobj 221 0 obj << /Length 159 /Filter /FlateDecode >> stream x1 @бa1[ZYZZ(ZoG 2΢]> stream xڍ1@E #0eV$&ZY+h+{4(- 㲘ڼOϛ$ͦ񄇚1'O6MvV6&U~{I7 ֤rkT dR" "/x"o"x Aā, Ң~~5oU9qNȩ9IR 3,hK` endstream endobj 223 0 obj << /Length 221 /Filter /FlateDecode >> stream xڭбn0bt @Y"QPNt@hycs U.ɺϿm˧ > stream xڭϱJA?lq0= %*#xE@+ I-SD5_,9 ,9nsckc_ťc?f5ySǣZhZ}dl5.dj0r DW@`D$  F]67@Hmtt9OYw억g߹٫e&ڥOM&7ۊ` endstream endobj 225 0 obj << /Length 172 /Filter /FlateDecode >> stream xڵ1 A i832VºSZYZZ(ZXYz#llXZO7荆d/9C;GtVibs0W,lQ9O=l1!洖}N)!0Z2-ygg"(.0P5tŷAUɲ+Y0\%-nYW endstream endobj 226 0 obj << /Length 218 /Filter /FlateDecode >> stream xM1J`b`w.~7hXW0VbZ * vnUra!,ǔK-tgQ ->Gy劲p3%WtpK-Ϗ kxzX 33䎅rCF40@:b #LɂY.dČ 曶AȺ lB{,Zxώ`1K{+orSN~o' endstream endobj 227 0 obj << /Length 160 /Filter /FlateDecode >> stream x31ӳP0P0R5T01P05PH1*26 \.'O.pcs.}0BIQi*Sm` $?` #$`'0   Sd.WO@.] endstream endobj 228 0 obj << /Length 159 /Filter /FlateDecode >> stream x31ӳP0P0R5T01U0TH1*21 (@es<L=\ %E\N \. ц \. `,dF }H<00g?`G"?\=kqt endstream endobj 229 0 obj << /Length 174 /Filter /FlateDecode >> stream x31ӳP0P0bScKCB.1s<L=\ %E\N \. ц \. 7P& eJ``$? @cg@%4*PFF2?F2~~F2?N7 H{ r V endstream endobj 230 0 obj << /Length 195 /Filter /FlateDecode >> stream xuν @ > stream xmν 0C(vAAAѵͣ7Q|AwݤGr6&آt&=>'|z zzBQvi z0b zoU YUX)է-ؽFF'{DžyVJtlH!r&u]Ŋ;7RCSQ񋦠iwH>ʳh endstream endobj 232 0 obj << /Length 237 /Filter /FlateDecode >> stream xeαN02D%{pҊ.TD$: &73Ea+RősƂ)eTQS9mr|IJҌ.kk* C秗{˫3Q&l [f۲cvӨh+켍 R PPÛLm55wۃQ?ڋ_"|v։&Ԋ*Z IM ]4O`9kb{0D>7k endstream endobj 233 0 obj << /Length 171 /Filter /FlateDecode >> stream xڍ1 @ aM@ Fp A+ RK EۉG(2E:/u ͧB"IIR9|c#ʅgݺ+Kٕr%:/%!ԕIDeoKhѰj#0#0?Y` ` `]ГnS^yi endstream endobj 234 0 obj << /Length 218 /Filter /FlateDecode >> stream xڥ1n@E?@#\ ^ c)ʅ*q"QQ8%Ŋ2[$r~y.9R3.#OcE_/T_ܙt_?g~)O)'o6`Pv*;k . , UPC< èzDNe{Υ]ɷ~+| 2%E_Iqhҁ x endstream endobj 235 0 obj << /Length 143 /Filter /FlateDecode >> stream x31ӳP0PbSsCB.crAɹ\N\ \@Q.}O_T.}gC.}hCX.O@l``z 灸C??P szrrRZ endstream endobj 236 0 obj << /Length 232 /Filter /FlateDecode >> stream xmN0Kxe' 0Y*E"L vd(~wH`O,+¯.wZt7j='(IB??v7ϭo^x# `0#,yB=:F0A.O= {řs2t 9FtJ:ZTTwHsͪTU!,)b")3t#}wo endstream endobj 237 0 obj << /Length 239 /Filter /FlateDecode >> stream xMбN@ `G"yv~%-a H0u@LбCQn館?I}LeC-c%H00cRbL5hR"&\/d /N^J+Jx#jC(^ Nw6d`NV?1F3:=0+(-aO"{|ldy endstream endobj 238 0 obj << /Length 196 /Filter /FlateDecode >> stream xڕ=@%$p."AL0XF;pJ 87[syc Of|F&di\%8])Hلט6?/#)"*C Ė(\ -p- *XJ  pZZYjW ( 0G(Yb_/*:p^ endstream endobj 239 0 obj << /Length 217 /Filter /FlateDecode >> stream xڭα@4;/@NYYZZ(ښWG#Lq:q5_1xD1 P)> stream xm1N0E'ris v7,eHV ()@&9#L<| Q`ɯ9JrZ\\Q<^ W7(s W+:C-GnB"LdT@.ëGHF316 6P9n\ Pbf4RuYHq_#B}!\0gܜ!TFIAC$yDE}H#A _|o_ endstream endobj 241 0 obj << /Length 187 /Filter /FlateDecode >> stream xڕ1 @49s݄$@Vbz%GHbQgq80 qL) (#r(SjEAjgTzNe*]LG'o:+x*Pd܂H.'oR(@RB)`na \# endstream endobj 242 0 obj << /Length 232 /Filter /FlateDecode >> stream xu=N@"4>`m Z) HPQ *HIh{=KV)yl/[.᳊Rsut_iۑ%e-o﮸"NJ'v\8I@/#2DR9LKp)Lz OnPY]D 5ň>Lr>AʍpgWi9ԫo0ZTj~]wtO endstream endobj 243 0 obj << /Length 261 /Filter /FlateDecode >> stream xmбJ@ )yŻgp` ,J--m/Zy/0`0h#eg?|%3Yq-SYc/> stream x3233W0P0S5P02TTH1*24 (Ces< M=\ %E\N \. ц \. 4    ,`H`xps3; P$D" endstream endobj 248 0 obj << /Length 97 /Filter /FlateDecode >> stream x3233W0P04F )\\ %D89ɓK?\KDx*r;8+r(D*ry(177@:.WO@.t endstream endobj 249 0 obj << /Length 125 /Filter /FlateDecode >> stream x3233W0P04F Ɩ )\\ A,ɥ`hΥU()*Mw pV0wQ6T0tQ`c`g`C B`P߀bv 'W 4"m endstream endobj 250 0 obj << /Length 231 /Filter /FlateDecode >> stream xUj1,{Xͮq`-zOQp|OAL&1d&D STT9n2 W6N]LJ+3 9Y`rK[fD1t#擩kD]=˜!b-̝D;y49r q&l5=)9љ?Ƙvk oGipH endstream endobj 251 0 obj << /Length 265 /Filter /FlateDecode >> stream xmN@ ]e@GK H01NPshy> stream xڍJ0s0/ ym붵`<'((aq&JcK$Bx0&d2cLR<9%)>'YAo=ªkCT DKL ZC#TkL-BY>]y`/ԝ!Y6B 9!Igkcuˆ7tk[XV:7Vg7;̰J׌6swߚQ?cn\lJzKim8?aƪLj][r-tGW*_p endstream endobj 253 0 obj << /Length 261 /Filter /FlateDecode >> stream xmAK0v "ws=zA> stream x3637S0P0bS3#CB.cK I$r9yr+[r{E=}JJS ]  b<]'000c@L|@!BL@!D Q&P  &4v^=YG&\=WC endstream endobj 255 0 obj << /Length 202 /Filter /FlateDecode >> stream x}ϱ P+Yz> stream xm= 0[zN`Z!uS N&أ(=B1o@U6S&\`6k PY'vi.wKGT)ȭY|@5OE1t !2DD5Ê`О! z&v jDLYLIHE>h:b>>w.>iVh;46%xxm endstream endobj 257 0 obj << /Length 327 /Filter /FlateDecode >> stream xmAK0Wr~b lWaDs=zAY=G 0iKHS82 -GȲ&^o4+2 *${CΈg#' gh˨Ghɚ2I4{rÈ2EU` .i`~ȕ/1%n;~'kGEtv2`)7Ӷ]3ñ:jOYb|7h endstream endobj 258 0 obj << /Length 220 /Filter /FlateDecode >> stream x]ϱ0# $XjbWD::htGQxF(DZ?_UɕTFG)RkK|.y4Gq&(}%"yF +LvwF )Q, kmc6Njh6> stream xmбN@lA2 o  \Ug3D+ cmGQxJ ?lLNH;;3[W-\ Aח!NGvb掿>(?_sIJ.99UOP"~bGBN+Jq]yC9÷sPKi13aHwn\0fQ˧C_Nj0'It\WZ.7q走ut35rr-t09Ŵ(֞)d6馡 endstream endobj 260 0 obj << /Length 271 /Filter /FlateDecode >> stream xuѱJ@ )So`4y),J--죥5nBn ^|3EE%5tpDcz4rK,.d^_X]QŚn;l'm s2o>ӧ_BI` .¨$^I-Od# r?« k112Oh/ݎ7ͬl$cNt{sE {;샎Q->@ue'w 5Ig[/ck endstream endobj 261 0 obj << /Length 219 /Filter /FlateDecode >> stream xMͽPR2/&`F0nX`!ZZW|+>m,IDLsLج'F< hIH>3̩ˍɋx~X}Iј>{VtVpM\<Ȑ(뎎VRt5DXl㍕!=*%i+m&W'I֘6qE׎s m ] endstream endobj 262 0 obj << /Length 191 /Filter /FlateDecode >> stream xm= P ,dھ ҂V8PZ֣ot(j/䃄=4@ |tQ(̀N'fox6ْۑjR(K*mѱ9TՇb(5('ʎEZnBS?@_L=lV$p03Z!:p endstream endobj 263 0 obj << /Length 255 /Filter /FlateDecode >> stream xMбN02D%{H-BK+" &H@b@My%>XPo'm_.]-#9-Z=/*Ok..\E}*OϷ\Lώՙ\3!(I[G#4bM>Z|#gEcC!!Qnh# 7.7Y =*bZSYZRji([!#>mL5?Iu endstream endobj 264 0 obj << /Length 194 /Filter /FlateDecode >> stream xu= @෤ B. f.%i`0XB-GR#V2M3%cl4 '.k4LӜ-ǚ+]'KΰS>g W Bxjz R_5A"EYՔ֯KUJ9'"}hP^"mOނhӆqD endstream endobj 265 0 obj << /Length 222 /Filter /FlateDecode >> stream xڥϻ 0Yb hz 8A>Bbi` .f$wkj m,{XvXq |WnX1.Yo : 8qОBE&׎0R<xZJNC:qP&z 8g!MOya9KKyR2{Gt;'3#N)-Z"&ga֣jHb endstream endobj 266 0 obj << /Length 231 /Filter /FlateDecode >> stream xEбJ@ )o^@7%@2Kɬ){Oh˗O,+{2 -_^uD) x A4W3fn endstream endobj 267 0 obj << /Length 199 /Filter /FlateDecode >> stream x3233W0P0W5T06P03PH1*22 \.'O.p##.}0BIQi*Sm`P~"A v>rd  @[ DȂX??PFPf j`og`j@B endstream endobj 268 0 obj << /Length 253 /Filter /FlateDecode >> stream xEJ0 9/ f^@u=Ƀx((l}fu%;|fy~I3YJ3ڤ0Y?@sOEs1>,VWYCJG,~ȉ.&H2:&`D1[ %[(ŧA68p${O%/OzC~> stream xڍ= @b?BbSZYZ * !h%GHi;UHF$iBCE:(+jIh ŖD45lE"YIHiH1K 5*|d3*jXS3ϩؿVCۃ@gy g p?eHn endstream endobj 270 0 obj << /Length 272 /Filter /FlateDecode >> stream x]ϽJ@R Ly/I0nRH +VQ$⋍o22Epatߜ9Mӄ"J c$W)%s(ץ ic ){C71EܐӢhPwv\|u곅h::CEݢQO 0@5e|a9vsm|.vn ;{\PfnjcnŇ9, rQ{E.|k F9ߪx5<+!D endstream endobj 271 0 obj << /Length 228 /Filter /FlateDecode >> stream xMϱJAYX"л B ^BR%B 17[da+ͿvaդB&rYx$Mok֯<88ǘj)/ny!hBTYMU̍mh` taMC;N{y⹪MjR<7kR;ugH [ ?i}ĂzG7lVxBfeI']ŏ|[ endstream endobj 272 0 obj << /Length 201 /Filter /FlateDecode >> stream xMο P# ·{RI+!!-GQ|GɎVs|''z:ӱA'_2 zߓETܝNCqWMz=&r=?:HPUO) pr]X5rT$GpʬLvCO" &q"Lǰ E`/^ ,SGOt endstream endobj 273 0 obj << /Length 250 /Filter /FlateDecode >> stream xM1J@?LxM. ;s&K% +T$ 9!eM6&WOo.wdJo^I4ͦvJ_F}~|PT {UT : X}g6ll[aq07ӈmֲl9)@O,GI .H6Zij8r䤻E/#F/[-=~1gutGO*1s endstream endobj 274 0 obj << /Length 189 /Filter /FlateDecode >> stream xU1 07 .IiB`A'qRGh=JѡT8 '8PJ\ NR~r|q| o xc E( iIΨ,Y)3TLT?گʬ"!X^4[C`R;0KտP/? endstream endobj 275 0 obj << /Length 196 /Filter /FlateDecode >> stream x-1 @пXSd. )"*BBRPQ$GQr-SflCy9JxAӅ"-ːG?QQHS5ْot5ege3hW <LD(_O5z Ne)Q ( ?e&"L! U;/ѠU˳x#4hMHH; endstream endobj 276 0 obj << /Length 185 /Filter /FlateDecode >> stream xڕ1 @ )B@Tp A+ RKAEJh9JB5&{yJ1eԕJi+0&fFDrB|PIcZIר^7S[SYc{ۚqyZ|gVa,+;P?a]MʼnJ endstream endobj 277 0 obj << /Length 230 /Filter /FlateDecode >> stream xEJ@(ɼ&F9z GAECi|HQ9Tg7[f[xG5/kz![KbҠ2]#szwsO݂<4_[/ƫ-̫_QD ?֙(D=I!C` gmͨ jPѠ@0g*'dru~ Z endstream endobj 278 0 obj << /Length 212 /Filter /FlateDecode >> stream xMOJ1|.3@jg!ԕ q.V,x%GrE&#{; nxƧg-MR6ݰ<в'S3%K^:M#m>h6BzJ*/ PϞ=t!0` y`|d~d32 望wt&{ :&t-N0 endstream endobj 279 0 obj << /Length 258 /Filter /FlateDecode >> stream xUJ@?aaJw^@h9ԃxRJy9Φ)[gvdZrS>NK8O1W &|Z[4)^rVP|-u~xxv{)sK9zXv@,‘n'Xp#P4{1v[lkzl~Ā*?ۀGIDVՏiaL1`t1 y,\1]IW5-Kk` endstream endobj 291 0 obj << /Length 198 /Filter /FlateDecode >> stream xڝ 0Eoq(PhP+AAQPQO}i,:IΔܓh4 b֜ 9yЙBf%HYAj͡&5}RłہTr@*MzKE΀N@F x-%08W\g-21鐹WZu2sw[Z,巷EVE\'hbD[ endstream endobj 292 0 obj << /Length 199 /Filter /FlateDecode >> stream xڝO @Bx @ػ@N( rԪEAEAKQt#ps}x4'cZ{RTYpH*}K@ ]6XV /a& +̌Sv47fUEc]~s|lm[sIaU].Gz]H||-scL endstream endobj 293 0 obj << /Length 133 /Filter /FlateDecode >> stream x=1 @E? x+p'c#8ET,mv |>ӜdYx@=w7@p>Å-_ޭp [?"4'ҠK6ɟI&L2LJ%w9 {|ɉ$_ endstream endobj 294 0 obj << /Length 132 /Filter /FlateDecode >> stream x=ɱ 0  :t AG˛i "~1WOjŊ/|:=PM-_Ul[Q6<*]+a˃.&dR 1YG$ endstream endobj 295 0 obj << /Length 95 /Filter /FlateDecode >> stream x3234R0PbC KCB.K &r9yr+Xr{O_T.}gC.}hCX.Oz 0X [x endstream endobj 296 0 obj << /Length 102 /Filter /FlateDecode >> stream x3234R0PbC cKCB.K 'r9yr+Xr{=}JJS ]  b<]d7`= S/'W " endstream endobj 297 0 obj << /Length 142 /Filter /FlateDecode >> stream x3234R0PP5P0T0TH1*24PASsTr.'~PKW4K)YKE!P EA 30z` pxڂ!Փ+ |-s endstream endobj 298 0 obj << /Length 101 /Filter /FlateDecode >> stream x373T0P0U04V03U06VH1*2 (Aes<L-=\ %E\N \. ц \. !f`.WO@.}1 endstream endobj 299 0 obj << /Length 166 /Filter /FlateDecode >> stream xe1 @Y>"w7+1] Fp A+ j)D:{=JhT, 30FMk6řᓦ+P*NxҒq\ 5Iq&YnIV׬d+E⟮>|>c*xp.|G.BR hiiK/2" endstream endobj 300 0 obj << /Length 94 /Filter /FlateDecode >> stream xMɻ@@E|wGb BT(H4]])8+61|cZGHO@BJJ7" endstream endobj 301 0 obj << /Length 165 /Filter /FlateDecode >> stream x3634Q0Bc3#K3cCB.# 9D&9ɓK?\ȂK(̥PRTʥ`ȥm`s3 ;CP$(q`ld6'W 1 endstream endobj 302 0 obj << /Length 91 /Filter /FlateDecode >> stream x313R0B#cS#SCB. D"9ɓK?\ĄKCKW4K)YKE!P E?|\\\KF endstream endobj 303 0 obj << /Length 90 /Filter /FlateDecode >> stream xڳ43T0B#cK ibUeH$r9yr+XXr{(q{*r;8+r(D*ry(Gd6'W Ij( endstream endobj 304 0 obj << /Length 370 /Filter /FlateDecode >> stream x5J@Ol]H;/iP++J] U%$wYi |3\v`'|bg;y31_lSKAbdnDtqIq"z\3:QԻy;R<+,=8گVzpՇZz/QW#W/}[7+iS(J!Zp(1o qI}XK"=Ke>l=OOȯr4O*Gy.+Gy,_sp_WP> stream x3532U0P0b 3CB.3 I$r9yr+q{E=}JJS ]*c<]1@  d0%d= u  fh gdՓ+ =ŀ endstream endobj 306 0 obj << /Length 181 /Filter /FlateDecode >> stream xŐ @ A xxUp( vtr'utPtmh} bIbH `sȑ 3xćd|/'Js61Η|܎Ռ#o򌁎ԥ>Ŵ)mPN8J@ Gּ y[ʽVRl"紦 endstream endobj 307 0 obj << /Length 208 /Filter /FlateDecode >> stream x; 1?XS,vNH#.+Pͣ,-ĉZhk琄onכMxю>XmP8gQ8*ɄtRB: (Y(U ᔣ 3Ԯ LʉXSȼ)p~\'ȡ -#{<{^0?Ը[O(ćJ endstream endobj 308 0 obj << /Length 194 /Filter /FlateDecode >> stream xڍ= @R (?` A+ T,D=Z,SFbݭFK}SFMׁ% 9Xb13B1#nc=N1I_1/$()P/q<+&lK/Wj&y2cpt> stream xmнj0P6%hHSB;e(Bұd!C_[ǾBNWd,,~r3}iwo;w>ؾt;Ŵ3+mk`> stream xڕѽ @ G0opz'A+AAA>Zѡܙ^2T)dJh-Q6/.w\ehd--gd;z=74b4)bΘ|!T0' 4, L*0V}Uv~ݷ'CdxxJDv5vwԁ?/uҹ |.uB)&) endstream endobj 311 0 obj << /Length 269 /Filter /FlateDecode >> stream xڵJ@!E`8yHE p` A+ T,ɣQ)-[ww"ؙe|SǛN )9?fJEnYJᙶ .rR6L'R۫3H6'@hXkcznL 0>[DPiG Ѩ zCt`:D_drfZjF=c?`.-l[/Ǎ;b?Oy=^F.Dd/Z{ FF\n\3w* g7tMVXv endstream endobj 312 0 obj << /Length 211 /Filter /FlateDecode >> stream xڵ10p lAĉ1D'㤎z@j %Ŕp6# 8CWt4G΀)|4.1!Bv> stream x}ѱ 0ДCpuz_`5ŮDQPQpOS *Rr<.p c4£+(erQep$A/*l> stream x3гP0P0bSS3#CB.SC I$r9yr+r{E=}JJS. @-\. bH700C(`B1P(|Teb P`BPP9J>4 B&!^@\=6 endstream endobj 315 0 obj << /Length 268 /Filter /FlateDecode >> stream xڵJ0) B_`V4* ɃxR(}=ɔai I:S:<&Iso+ +nZT+T|TKQm=b%0V́a͖A;Cz\;Pf3b6~^\`pfg GDؿAGCF_> stream x3337U0P0b3S3#CB.3C I$r9yr+r{E=}JJS. @-\. ? t 0 lPoՓ+ _* endstream endobj 317 0 obj << /Length 106 /Filter /FlateDecode >> stream x3633V0Pc3#CB.#3 I$r9yr+q{E=}JJS ]  b<]?``o7drzrra endstream endobj 318 0 obj << /Length 170 /Filter /FlateDecode >> stream x1 @БbVj(2n6)F#9fÄ4᭤̇1lT+VI9_b1aIJr&S2"/:wԍ_OS#hG1;XD级[e endstream endobj 319 0 obj << /Length 144 /Filter /FlateDecode >> stream x353P0P0bS#3#CB. HrW0r{*r;8+r(D*ry(2`o^$3^L 0H9$Lց d Brzrr3nX endstream endobj 320 0 obj << /Length 252 /Filter /FlateDecode >> stream x}j1 . Wo;OZXB{ -= Jt(ڄ$btUd5"|D~8k '9s|)e(gg5JҺ1*/G)g*G=Cl-[VҚCZ 7=+q,A wTÀ&u4-U(qhK$)n;%<.<2!WxS endstream endobj 321 0 obj << /Length 250 /Filter /FlateDecode >> stream x]ѱJ@ )O`y),DPN:NEn}$!Grq63ͦXYbl1c7ƞ?ж7#zm)~zw{ix7!pu\ĵ khì>RQ|jbJg1T9XN`1,*/rpnLXb95#OSZʜ> stream xڵn01D%8AMPH@fN S(y (96c-ٟ"3(҄lFV@$Chw:;4ˏhSbM7 -oʼ.+aWy!a paN8(e~NHb+[&|EGMl#K!e_<۾zzP<vOlgԬEWGWWO} endstream endobj 323 0 obj << /Length 175 /Filter /FlateDecode >> stream x333T0P0bS33#CB.S# I$r9yr+q{E=}JJS ]  b<]J쁢 ??0BC0eB} B1PG@\ٹ+ ` (V9(P$ endstream endobj 324 0 obj << /Length 230 /Filter /FlateDecode >> stream xڝ @ azyZںfNSu *꬏#x ~iHwfC} /.~?A .Dh~f q+vX+%H cȇ\'izhIi|Ӵ&:/?ռw~R2}6rӿC991uΪ9ɿ66-M쩥]e'(,G%Vɕb0` Ox1 endstream endobj 325 0 obj << /Length 266 /Filter /FlateDecode >> stream xeϽJ@HMګ̾rw y),J--Gˣ#݂ˍ39TWEn0 *L2~5,'itvck]pXgͥy}y{:ۚ[t 6vZ5'@O6a&~`QLɤ䀄hADDND(An%=٨X }d*;Ad|HףMH+>o ߄k endstream endobj 326 0 obj << /Length 158 /Filter /FlateDecode >> stream x3332W0P0b3#J1*2" \.'O.pS .}(BIQi*S!BA,0`0?do `L3c ` }L3 D3@hQ'bDc&@ endstream endobj 327 0 obj << /Length 207 /Filter /FlateDecode >> stream xJ@?Py &^!`B=PBcAE[|4cZ/9avgaϮffzR}\^ 3f/U#n>wX\o;qbLk]Γ4І~,O~=[yR+>ɟ:ᑸgF#bn8&kufY f0AjekQ~uI endstream endobj 328 0 obj << /Length 262 /Filter /FlateDecode >> stream xmбJAYiSݻ ^!he!B@-s >=`y֙]T;3 etd3zJ 킇Y<:G}GvǨkx|FS2oȹ qĕ+yD>8c8c\4{`*n;5[F6UEJ8YHrg@s/>p뭃Xl7i$S>~w_Wiuqyؤom endstream endobj 329 0 obj << /Length 321 /Filter /FlateDecode >> stream xuK0+a;h;{A'a,7V4Nz|H&">NN1b\D8!/2Ih2IY.S`e^ Wg`w2]5(kv?=k@@# sG0qТ崖8n֩vI벒<=~ULlab[3'qݧe*&!R3- -*C7. )E{sܥ ). %sc^ CaĚh_eӯ0H:}󦃬\4e~8qC㠡vg穼 endstream endobj 330 0 obj << /Length 251 /Filter /FlateDecode >> stream x1K@-f݀,b?B_T|ÿ%t_ endstream endobj 331 0 obj << /Length 213 /Filter /FlateDecode >> stream xmο@/, ShuqZZ(ښ<$y<–!q,䎁 1v<qƖ혭᭡ٌcfiNmFzƤw>;Ռ 9ξ(35 !+PLpW.Pe@"Qmڢ i"1Ŕ"?OVHnqLUOUo*D6i|UԴiMעL endstream endobj 332 0 obj << /Length 210 /Filter /FlateDecode >> stream xڽн @ B>Bzm=(vtr'utPvIK: #=vDzAmHJ]t9UgnHbR2pĻ~E;G3=hNa1/kFˈ܉Slx`p:FlTveV`9zTbr^MRV R':q@&x endstream endobj 333 0 obj << /Length 193 /Filter /FlateDecode >> stream xڝ1 @E00Mntft` A+ RK E;19%Gu`ak?r}YЁ2+bvM6{*+K,Ȥr>bCz+險1CD(p.ܐ lQ4C!i(]W!pE#k%7)%c\_p0T78> endstream endobj 334 0 obj << /Length 210 /Filter /FlateDecode >> stream xڽ= @ )sĬSZYZZDo7hB\gwJ)|浂F3"$;ԎhbR0 9IbcɄE:ŐdH 5:Pi=uek=BЫjn_t+k-JffLWn噞\y U;3ygz? endstream endobj 335 0 obj << /Length 204 /Filter /FlateDecode >> stream xuο 0/t(`_@轀:YAAAMj-#8viQp0?K|6隌Nc8Sje57 N-鉌IS>N[ِ҃ / '+*F PWR7HU8##;o\]>K-AZ//>L^T^('N"nhAUhwdZ#=d# r!I endstream endobj 336 0 obj << /Length 143 /Filter /FlateDecode >> stream x3233V0P0bcc3CB.c1s< =\ %E\N @QhX.O ?00``?<3c:f 1%P}Pszrr_ endstream endobj 337 0 obj << /Length 261 /Filter /FlateDecode >> stream xڕ=N0_4>B|ȏ宴,)@T@IF(' 9e kb (H/˛tG}wȣ]>n~ndKuETgK՟秗{V'fӍk^".ٷtD\0_f+`Gt~΀~ܡLcxc㠤2%Ii(ئ4rB8F+ OƬܫ>Q=9'|V)X,i/ mh endstream endobj 338 0 obj << /Length 165 /Filter /FlateDecode >> stream x3532T0P0b 3cCB.S I$r9yr+r{E=}JJS ]ry(0`$;dt"H @҆ 3g`D\$3ؑr y endstream endobj 339 0 obj << /Length 124 /Filter /FlateDecode >> stream x3234R0Pc#3CCB.CK I$r9yr+Zr{E=}JJS|hCX.O  P001aqzrrHT endstream endobj 340 0 obj << /Length 150 /Filter /FlateDecode >> stream x3233V0P5Q5T02P03TH1*2 (Xs<=\ %E\N \. ц \.   P( ulj3cP\=v9E endstream endobj 341 0 obj << /Length 213 /Filter /FlateDecode >> stream xڽJ@`_@> stream x3234R0Pcc3cCB.#rAɹ\N\ F\@Q.}O_T.}gC.}hCX.O a0\=W endstream endobj 343 0 obj << /Length 186 /Filter /FlateDecode >> stream xб 0  Ej3:9::( NGˣ:4qqé8Hķ)tJRWI8^0(v$kgfAuFX lYhFAQJ*˂Yu*>P'sx'`‚ʷs3 endstream endobj 344 0 obj << /Length 154 /Filter /FlateDecode >> stream x3532T0P0b CB.S I$r9yr+r{E=}JJS ]ry(0` iH~`~ ?3 !d; \\\ep endstream endobj 345 0 obj << /Length 188 /Filter /FlateDecode >> stream xڍ1 ` _qVdV8h֣;5I䅼Dq><Y>X:SwN'Js2c2 K^nG2jƖL[H5pG %BxʃAxNӃX:>ŴI=JRh4 V\_螡yNkPM endstream endobj 346 0 obj << /Length 208 /Filter /FlateDecode >> stream xڭ1 @YR &] F0X`er%GH!u6 Z+ٿȧ>u!)P)N}fQrIJr2xޡc PƴSkLbF{z`)3Apڀ\A4ikh+/;Ň/׊y.L[ov3_nBk/cC:՘M$;| endstream endobj 347 0 obj << /Length 223 /Filter /FlateDecode >> stream xڭϱjAbaH`B*EҔ)H!GGGuγFlbv;x$s ۘ7 }Mes֟4ɼMdN&2~<:ELtjtDEX pPYuwoڽmOX6JCT:knGC_ 8=Pח4%o endstream endobj 348 0 obj << /Length 145 /Filter /FlateDecode >> stream x3634S0P0bccCB.c4H$r9yr+p{E=}JJS ]  b<]?~x?̟0~g 0cH`3szrrM[ endstream endobj 349 0 obj << /Length 203 /Filter /FlateDecode >> stream x-AjP?d70sBtB[ܙʷyŷqRq,Q^i4d6Wd4&S/y&3[ْYqgc$Ovw x 4tHB8tmԨuUupAD#r&iNBKZӚ.8W endstream endobj 350 0 obj << /Length 151 /Filter /FlateDecode >> stream x3634S0P0R5T06P05SH1*22 \.'O.p#s.}0BIQi*S!BA,Vl+313C1#T8fq{v r wSM6 endstream endobj 351 0 obj << /Length 160 /Filter /FlateDecode >> stream x3532T0P0R5T0P01PH1*21 (Bds<LL=\ %E\N @B4РX.O `G%00a`f$Н l0A?? $@?P'W rjy endstream endobj 352 0 obj << /Length 193 /Filter /FlateDecode >> stream x]= @YB\@71JL!he!B@- 19%GHi|{ G.?'T>.o=(D"壜q2|ݣ-䡜К6N(]9' {6*};:fViucfU)1[m?6*q_D endstream endobj 353 0 obj << /Length 248 /Filter /FlateDecode >> stream xmϱJP? Ĝ{j@`N"QPQpNP|d63|p?=.%ww =Qjx>礯85eM:{SNH:asCºXWU<&.*;d (Faы> stream xMαJA?lq0lk!< 8B*ERKHzh(ufL4/Y_Ttz%RKxMGnܓtu|9}ۼ> stream x]J@; x%'S~\#^/4Iq1w-}<9&{@ 7lz P@?[VqtPA8.=փdFDb+8w:+cw9<<#Oʬj\ԯR*ٕmm`giM?AP endstream endobj 356 0 obj << /Length 199 /Filter /FlateDecode >> stream x5= 1oI!Ls5"Z-n!he!Vjih9e`i!0 #vܗ|Ltԇ&% {Ov!d%_/#j9osv;*g7  $Oy $m}RK ****IQ $ Q&2JuWk D$_h^Қ8.G endstream endobj 357 0 obj << /Length 191 /Filter /FlateDecode >> stream xڽ1 @EL2͚DL!he!Vjih'(9B -)fsofyH0d@iNjő!5T>'.&Ien(@*/SC^^$N-8b,(p OA-iU۹*m_ ڰ^!c9- @m endstream endobj 358 0 obj << /Length 126 /Filter /FlateDecode >> stream x313R0Pbc 3CCB.#K I$r9yr+Yr{E=}JJS|hCX.O @@\ <yP\=sU endstream endobj 359 0 obj << /Length 242 /Filter /FlateDecode >> stream xuJ@% f$,ăSZYHV2u@J&llDmwjR_@> ; l?hٝv* ؄'!nE5i>p {Nhd42FJgaZtEjZ!'Ēh } lV~hp endstream endobj 360 0 obj << /Length 246 /Filter /FlateDecode >> stream xuN@ ed!/kBR$2 щ1c<==B ULp?77K%5ZGo?nY'[,vxK톞U/m#yTLP%d'd`ofAِ'~VN\'(uˈn(Eu,_ڡgŨxqGc/VJs5M#1%-~nn endstream endobj 361 0 obj << /Length 185 /Filter /FlateDecode >> stream xڕϱ @ BP:w> stream xڥбj@ @_ 4z|k:ŐPdc! (= t:IÄS~¹ӑB)fgW)NnxfOnk醪9 mvarU();'Q/$C 3!`.z7l(ki?n!a먠luAIu2θ ҫq42BT]E endstream endobj 363 0 obj << /Length 249 /Filter /FlateDecode >> stream xuϱJ@?LᾀSZY mr| 3J duM/|HհXhS-7YwkH~Ͳݍ~}~JR>Z=x~]賑ix o@ʺ\ur'x; endstream endobj 364 0 obj << /Length 202 /Filter /FlateDecode >> stream xڕ; @A  M QL!he!9ZGHB;RXW?#l hS+z*ߛņBQK'jF;LA0Ӫ]WCȋz&\e (t XLݷ!)&e~R27ukd1y ]msXp endstream endobj 365 0 obj << /Length 277 /Filter /FlateDecode >> stream x]J@EoH$j),J-- ɧͧ']ͪ x}|)TrBf1^զUٽʮYVY{#/*^J<?v+'@-0#" |'İ+Y X9"1fm)ӎz+~x/ȇ3FY g,ڏ@'DV{:RRh4zQc;uD*` "Ah^ᰥKp[Vݩoqg endstream endobj 366 0 obj << /Length 252 /Filter /FlateDecode >> stream xu1J@?f. ]@lbځuSZY,Vj)h+ Bn+oayTg+ιW?Be9 e\֔]6e?R>炲 o 0@:)vr"yĂILiNיvFoi􇐃 `%<)ơYto%SK u+P ˴N2(vGU*DF I2v: endstream endobj 370 0 obj << /Length 105 /Filter /FlateDecode >> stream x3634R0Pb#CSCB. m@ $ɥs{IO_T.}gC.}hCX.O!'W ( endstream endobj 371 0 obj << /Length 235 /Filter /FlateDecode >> stream xڥ @\z Z< fNSuPԹG> stream xŒ=N@ M!$)fE"T (AKrSXؓ,=S$_> stream xڍҽ 0[[' I'|д@ໄ\.]=0փa:=)%!i> 2xށc@&]CuŘPq"p3q%ѫN(WUyx98 V6q1 D=$D/$|d endstream endobj 374 0 obj << /Length 173 /Filter /FlateDecode >> stream x3731R0P0b3S3 CB.3rAɹ\N\ f\@Q.}O_T.}gC.}hCX.O@>`AJ3Biz(m4?f 43+F3| @3hf4;`+hz~v1HiP~ r ϐ endstream endobj 375 0 obj << /Length 277 /Filter /FlateDecode >> stream xm1NP!$p*l!YD ,6Vjid;<e`Ia93o,(H~<+mTъvE-Ur+pcH[>ŲϏW,7Tc]M[ !@‰:,]W`t~]'!LdDUHZKZi:j4DGDiU6LKGT:ҴJ*M¤%#Qt'%#Q2bⴉ&N#&N8m+L\T+wetA f U,(we#ĿRWY›XM endstream endobj 376 0 obj << /Length 305 /Filter /FlateDecode >> stream xmJPO"pyfaa]Vbv ɣQ)#\83w.x9zuhI5t^Sҽj-%]2on۸+n$>?^];z,i<H90w{1c]< h=Q=6 zh,݌$d1b׆ا#XA}ăiM֩S-dpAí$ r0cGݑ"y*\'5 К?)ԜhVVQnܽ endstream endobj 377 0 obj << /Length 162 /Filter /FlateDecode >> stream x37׳4T0P0bs3sCB.3K I$r9yr+Yr{E=}JJS ]ry(D11o``!`G0 5#Fʨ e02`'\\\T. endstream endobj 378 0 obj << /Length 232 /Filter /FlateDecode >> stream x}ϽN0Jl;Ta?pۜ7kBjikVb7/;8jC'_o6RsS-3[&0`Q0|T*M *pӌ_2 $Lo1ÔJc4|ݜ~82;eSz)<8`͊N9y{2hl endstream endobj 379 0 obj << /Length 214 /Filter /FlateDecode >> stream xڭ1 @E'l&G\@7E1#BBBQRgEv>'S &3!3c4#NqRdn uS:]L> stream x1 0yд*N`A'qRGEx 7бC=q(8 vي1&]lwqy,N1y 6n_pa8&:2)љBztUUN+IZ^>j$qIMMR'*mse cL@I 9Lwni endstream endobj 381 0 obj << /Length 226 /Filter /FlateDecode >> stream xu=n@gbi|eYGH@TDjh> X VyyD%JC80/*v[ dvջ\/_Gvxv+١hJʞ2Ն(W FOFFl@&%`}b zdeL,>2~dgygL[41Ƕ hKyJ BasQ D endstream endobj 382 0 obj << /Length 281 /Filter /FlateDecode >> stream xڕ=N0’!sHE"T ()@`)<؋$'{Iן5-5tA-ukZw75oZOv3RpC/^Rk-=ԣ/qZqg XxqdWjIpnIUi+W%KK"5-CiK #;A58E, k΢SvYlK S^`%*#G4dPɲ1:^.eiiC%>+^ ~ endstream endobj 383 0 obj << /Length 131 /Filter /FlateDecode >> stream x3634R0P0b#KsCB.#1s<L=\ %E\N \. ц \. 5 7?D # P?P1?H{pzrrD endstream endobj 384 0 obj << /Length 107 /Filter /FlateDecode >> stream x3634R0P0bc3KCB.#S I$r9yr+r{E=}JJS ]  b<]0q7c.WO@.S endstream endobj 385 0 obj << /Length 209 /Filter /FlateDecode >> stream x? P C!;Bs_ZA,T;:9::( n>'GoqQzJcߗdڍZE5eujh}OSXcu4vB{%gQh@&lJ2DxbΪUdK 9T`P+XU.> stream x3332Q0Pa3 ebUej 䃹 \.'O.pSS.}(BIQi*S!BA,C}?7T10@ 6P?|'W [ endstream endobj 387 0 obj << /Length 213 /Filter /FlateDecode >> stream xڥ1 P #B[SV N⤎h=JбC1&E\|>?dј>c &tA$GOX4 "4 %]/#d5#MJ[h6%y=\0`..Y尀AK<@\@Q#6-WQwu;Sw ?kBKn&j״1a>7k.sk|]ŏf endstream endobj 388 0 obj << /Length 227 /Filter /FlateDecode >> stream xڵѱjAY,i|tNWbe!V&e->B|-XDTX>euڝLJ+Hޗ,ה?8G۹)ϲYo؎^$e;E*ɒPS݁T+(5OT@u%BMwF=poH-eua~nl]Tȇ`1)6AbXi DA O  endstream endobj 389 0 obj << /Length 161 /Filter /FlateDecode >> stream x3137U0P0bcSCB.cK I$r9yr+[r{E=}JJS ]  b<]oH?1"~`? L7?bl'W n endstream endobj 390 0 obj << /Length 223 /Filter /FlateDecode >> stream xE1N@ E?b%790;"E"T (AKq%GH"4o4v]_+^sk{w6[{T^o(=fKdJ~|Q_stgj8UR:EZ ʷcVG@VjU'3rع: Fg u1vM#bj2;4@* endstream endobj 391 0 obj << /Length 173 /Filter /FlateDecode >> stream x3135S0P0R5T0P03VH1*26 (@ds<M=\ %E\N \. ц \. Xv8'=3,X w'C=`?`A<7@ ? r  ,t endstream endobj 392 0 obj << /Length 166 /Filter /FlateDecode >> stream x+@i*6#06&$  (D@@/G[58"e9P!Zj Z)%eʡ^Rv3:N[|LuM+C]MD ! a9PIcУd/-x>o;w*!aVB78\ d endstream endobj 393 0 obj << /Length 267 /Filter /FlateDecode >> stream x}ϽJ@Rn7p h~(b`]VbB !y&)Sdw̙SRqKu&Zso\iLs9 gRiή1笹ַRpBGn6b-eFGZ0Ucc^pG))$)Y= Ư㗥itjuGj wAlhA_Bg6UT2u2Ho^_˄>> endstream endobj 394 0 obj << /Length 208 /Filter /FlateDecode >> stream xmA XH0ywGAnSp,괴Py4eJ 1&20$g&{C.'8FTXi_Zk?;7T,9VTtJEͿ㖊u:*kj&D+AZ73C@.ё?|+23F%JUj=p>i05KΓ9ꓶ'-ƮoϽ#MZ'} endstream endobj 395 0 obj << /Length 126 /Filter /FlateDecode >> stream x3530T0Pb 3SCB.c I$r9yr+[p{E=}JJS ]ry(000```` H0@,0%#zl'W  endstream endobj 396 0 obj << /Length 266 /Filter /FlateDecode >> stream xmбN0|G/qCyfίF0t^ߟlߣO;O$9 1!rHdڈ4f&pBl9{Ð68,ִ/vKqbҷ+tي%+NC7"EB8сVP #RI*h~j:Rᕤ[Il`Φʗ'& endstream endobj 397 0 obj << /Length 258 /Filter /FlateDecode >> stream xڅN` {@ $g%^Ltr0NzGh< @= icu]RHRb)U?XHUw>5?1r~geΛ{p~z< 7g!ґRUcR;Q2QP:X Ja2m0{tƔyl[J8 XϠ-AvHxiOzMYSgčV6oGbǝ2ClčLU[ϟ]~(6?d endstream endobj 398 0 obj << /Length 216 /Filter /FlateDecode >> stream xڭбjP r7DpI *NJ'utP-4|-7_խmzޏs/{Ck#ґS]ŲdbkFR̋&1 {*|ZL4XL_m̛3ul󇚴] I@BI /s'sABNjAOB/#&-'5o#Rԑ endstream endobj 402 0 obj << /Length 338 /Filter /FlateDecode >> stream x͓?N@gC6QڸHaRK vF8%^0 Z-;;3|qvrXЧhsJL6~Em*iS^o*\R[}OT@WdR;Ȉ,QG9Ci 7rXK0A@$s;:>GOÔ11PVGG { r(ܑ  J}1*7S($;SheIL>oC^fi0ӤIΧ C4qHGnJ谬cC +{7Z۶> ࿢*E!en/ endstream endobj 403 0 obj << /Length 258 /Filter /FlateDecode >> stream x1n0` x'b R"5SS۱Cd(9BFcWGRZ}l_Y1S#=e}EeEzYNzm6|<>I/O^捪ko?n>CK(I֪ov^سs`'rVr\w I˼ދ/np=g?;ؗ= 13rً E7Z1ӌk kmgj.=WMs endstream endobj 404 0 obj << /Length 228 /Filter /FlateDecode >> stream xڕ= t y G('v3#NI4:(IӾH~iՍE[LK;nc<`gq\$A95(8;H(beYc6,wh*.9)"1RH HP+whyś(/*P#qRDҥLSc_擽P[+^& I)Jt*Jl)sŪJSN2\U\ endstream endobj 405 0 obj << /Length 105 /Filter /FlateDecode >> stream x331Q0P0bS #CB.C I$r9yr+r{E=}JJS. @-\. A(9TH:հ endstream endobj 406 0 obj << /Length 157 /Filter /FlateDecode >> stream x330T0P0bs #CB.3K I$r9yr+Yr{E=}JJS ]ry( 0!(c2~f0H`0fc0P<ƨ1C0;cC r 6n6 endstream endobj 407 0 obj << /Length 311 /Filter /FlateDecode >> stream xڍԱN0o#O \<'H3D'㤎H GBI%)+,`z aJOJ}o 9ƙ={MyqB<>@<1f#q8&t3x=%T]_'V1 S>8|bGx ~ه_(Jf2Lc# ן8~w[stJptU,r,]#c},=3ֳTc)frLiGvKA;+DE 1]*YB8k ~oL endstream endobj 408 0 obj << /Length 209 /Filter /FlateDecode >> stream xڳԳ0U0P0b c #CB.s I$r9yr+[p{E=}JJS ]  b<]8J,fn0ªc5CX@Y bGb}e1ce H,ln~ #BBP`pb~Y 0SFY䱠I'W T4# endstream endobj 409 0 obj << /Length 290 /Filter /FlateDecode >> stream xڵӱN `H&GJkNM3NIM{4"Rȍ%) ~ٜoK<+>Lcuz^aہxĦqkAtwb{%>X> stream xڕJ@'LsL 'BB> stream xڵN0/`?BdS` Heꀘh XI-#d`stgۿ~Iy)x 5_XQ&oG\7vWEF<z{O5 Tb!ȣO!2J`@;PP<;Gg3E9c̈*l09t / inm';)),bߘ^Jq݂zlgF endstream endobj 412 0 obj << /Length 253 /Filter /FlateDecode >> stream xҽN0T"GȽu~n! & 7+Q!ʟĄd嗋l4\jU<sMo4HQ {N^Kls/dKɮꑚgʱw_ s=$p8E . (sׅ42*ȱ| ]6&ܴLpڋ_IHGN!X>] 7#f".F?^Q 3ҙ b= endstream endobj 413 0 obj << /Length 244 /Filter /FlateDecode >> stream xڅJ1g"0M!`Dy[ZYZZ(ںy}<•aǙP1|?IO :1H=>cTPc;Ocw!^_[^ʙ;V8?dmgPj\Rq :dĄ* |Vbn;gE d1o( ؁ahDBc!D[o1En %in6N:\Z` æ]H_I<?y뭜 endstream endobj 414 0 obj << /Length 175 /Filter /FlateDecode >> stream xн 0>B L*)j3:9vtPtnG#8f:M|~3z> stream xڥ?J@'X&G\@HBL!he!RK E֛L2ɮ9o[,Ƴw565>UU7v1.tqoYKtq ˣ|QђCDF"RcB|&;J e%wpU3B?O|G(^'f ]THد|X9/O8E.> stream x3635Q0Pacc CB.# I$r9yr+Yp{E=}JJS ]  b<]``0f+ɃԂ 0a@\\\٥; endstream endobj 417 0 obj << /Length 243 /Filter /FlateDecode >> stream xѱJ@)nMD BzQ|-#w_Z˷euG|]KkhFrw[r??ܓ[]rKn7-74B,? X -,fXNpMV%\{`r_ |7fZlP \X~r['-pG NZpZY̊4_HWn$ endstream endobj 418 0 obj << /Length 107 /Filter /FlateDecode >> stream x3635Q0Pac cCB.#K I$r9yr+Yr{E=}JJS ]  b<]0a\= endstream endobj 419 0 obj << /Length 232 /Filter /FlateDecode >> stream xҽjA W#>WZL+vrp!ET+ -vXqt;';됱j-->xsiNY-gOّy+#CYEI O$Rx%4DJʤn ׮UH@Y$߸Np⧤D@(Ax^ 9Eۄip xviC endstream endobj 420 0 obj << /Length 184 /Filter /FlateDecode >> stream xѱ@ & &]xHLtr0NUy{ጃ zw6d4JBGqlfiG{1+P)QEz@-ibc|!Pi ౮!`{.TV6ߡA_y48+po endstream endobj 421 0 obj << /Length 231 /Filter /FlateDecode >> stream xڵ0kHnЂ0 &2`A3<#02^KL%!_s{I!.qa@CT9 +@P% 7 v+@x0> stream x͒N@ ]uG_.!MBH 02<Gx۹F:.˓"J:lN錞c|,5<WO(m(KѭEGWbtK=b$(#!@5@oJ 4{aŌfJ`o}4.lO%wm_mte4](z`_TU` endstream endobj 423 0 obj << /Length 169 /Filter /FlateDecode >> stream x;0 t#' VbTD$02`nQzT dj20XY陞c+4xRps?aq@iA W<ix=   E^6ɱC:_:Wѫ}O_ /h m Ij^ endstream endobj 424 0 obj << /Length 259 /Filter /FlateDecode >> stream x]1N@4;ۊB$\ Q%ڬ\vY)yTk.拊57 UIJ/Kn6O\k*ybx[~|nXp8HDF#々~7'QȔ^;LKZ+45qj@.dtv!"ieh֔j]dV絳Su ?hgcfKxhGZ endstream endobj 425 0 obj << /Length 186 /Filter /FlateDecode >> stream x3534S0P0R5T01Q07SH1*21 (Cds<L =\ %E\N @QhX.OON2bH$;&=A$3?8HAN7PJ`$H `( E` qzrr:p endstream endobj 426 0 obj << /Length 187 /Filter /FlateDecode >> stream x1 @   fl1[ZYZZ(Zkyt {O!(VhpZ0(j. 匴F91J3FNPf4W.dI K#ZX+ސ8 w6 .n N<sUv848n endstream endobj 427 0 obj << /Length 270 /Filter /FlateDecode >> stream xڅN@EPL'~ >X<&ZY+h+| K$\gfX){ʪߗu%B-k_Weʡ/ϯ7/nyS壼'7e"0қ0Dr92DI-٨l+s@!٘b4Hfoq!C?I?b`6|tC t} lLD2r1uIU'TuIk*T%5P%5!.>Z/1 endstream endobj 428 0 obj << /Length 137 /Filter /FlateDecode >> stream x3337W0P04  )\\&f  ,ɥ`bƥU()*Mw pV0wQ6T0tQ```c;0D0I~0Y"I ?&D(I"\=VI endstream endobj 429 0 obj << /Length 301 /Filter /FlateDecode >> stream x}MJ0)YؖG_]x>.]W҅h=Je? گiftߟ ChÞ6 s/\knCs%ux^ߟ\s>k o@B,D'DdZ"-,-B/63"x甙k p7q|$pF暿 dL@AvZHFӬYM5k|,ZdIeb4j`Mg!@Tt`[Bͻ.A8Ew̕bԊW'bt7}t endstream endobj 430 0 obj << /Length 305 /Filter /FlateDecode >> stream xڍN@LJlA gEr&ZY+h=> @IA烋 |gf.K xQz!eY^#[E{_o8_c#>UX>)EৣNGG#"qhfH8fEAEI=-Β%$#쵂H\Wfä hgcgݺi8iZG`s+,25\i`2[[E3)D/bZ1.8G IUuuR:X&oݴ]֯"Mߴo endstream endobj 431 0 obj << /Length 225 /Filter /FlateDecode >> stream xڽнj0 ['Pt!tP2;4qh~?G$C@Bw&,+]po1}R28^~в$IF~{͒/wu|'ܯ8&旘knLM@;&ED-tw>5 pU/jh:؊,PW+D5^ԝhma#:YVp=Dӊb~9ag/uwiS]]q endstream endobj 435 0 obj << /Length 136 /Filter /FlateDecode >> stream x323P0PP5T02P04PH1*24(YBs< =\ %E\N @QhX.O9   fv6> $'W  ' endstream endobj 436 0 obj << /Length 95 /Filter /FlateDecode >> stream x323P0PaCKCCB. \.'O.p KLz*r;8+r(D*ry(177? 'W  endstream endobj 437 0 obj << /Length 294 /Filter /FlateDecode >> stream xڽJ@ƿ%``  h`xp` A+@--|tv)-­WXZdow*;9-8㒏 >+1*R̸*gZ֔Sz-eJ~{}ty{9+Sb 頁Ș2ԠFJ -_5J5f҂Fvh4P"VeF T߄iӹ{ =#0s@7IMlVMts~!|.G9#٘0\f {qo@W5/XI endstream endobj 438 0 obj << /Length 296 /Filter /FlateDecode >> stream xŒj0OxܢGн@kg!M ԡm-@^[^[WI qUutqE+ z+̟00=}c~ =T`!gA@jT, 8_=eCAMF^ |:I *@=N` ڝ 垻ḱ69&>0s!of &jɤbu gϫC0IF)Zm* endstream endobj 439 0 obj << /Length 171 /Filter /FlateDecode >> stream x1 @ [~/1FJL!he!Vjuh%GL7pWjRVsȣ BRJœϲ?SVp\ؚdq$fyQ3ƴ_@ x6QjykaD D~:Vht%7Tm endstream endobj 440 0 obj << /Length 259 /Filter /FlateDecode >> stream x]ѱJ@ Lᾁ'p<8O0)V"*+ϑ:Ygw{tx-(9bA1=3?k*hmuAoh]MN-V+rn`f \uǦxY> `=jx烷li'^ b8vUx谈 endstream endobj 441 0 obj << /Length 229 /Filter /FlateDecode >> stream xuϱJAba yh+RPK E;1 tƽpS|?;?xžjs3TC=-r+SrgkkrKyrM͒a{ծlB-`a:`u)xuwGW2&e˯ɦnh huaǨk} [ bԪob"EzONoɌla endstream endobj 442 0 obj << /Length 213 /Filter /FlateDecode >> stream xѱ 0; 4X-P vtr'uTt7)7&/“ h4"rMӘzd endstream endobj 443 0 obj << /Length 210 /Filter /FlateDecode >> stream xu1j0g<7 41'z(S$ MHXGQ|JW\(T 7uN3uki1}.Gq%Cf&u#U])Yϧz\R׹fi WOp_PI! I@*#f%#~,K{ǏT#,ΰq`(nYsLޖF^V2 endstream endobj 444 0 obj << /Length 167 /Filter /FlateDecode >> stream xα @ ;:'zx: 7:9: *:{G;s]!3pck8YǸh PsNA^/r9E l BuL[VeTɎdÞ@`_wV| 䈚 oafaosK endstream endobj 445 0 obj << /Length 110 /Filter /FlateDecode >> stream x323P0P0b#S3KCB.#C I$r9yr+r{E=}JJS. @-\. ? C 1cqzrrp^ endstream endobj 446 0 obj << /Length 203 /Filter /FlateDecode >> stream x=@H\@ȜM B0X({+ba8垫|>2Pԏ~?Ѥ$|@jRRod5Ԍ;*gX@l$u8lSyEȞn!X#xiTCƩFHjODO'0vBJ#n $"&ݏ endstream endobj 447 0 obj << /Length 209 /Filter /FlateDecode >> stream xڝ= @GR2MtbSZYZZ(ډr2EH|((v̛ݝGa_ endstream endobj 448 0 obj << /Length 144 /Filter /FlateDecode >> stream x36׳4R0P0a3CB.c HrW06r{*r;8+r(D*ry(0`?l(g?6g u@lC{ pP endstream endobj 449 0 obj << /Length 213 /Filter /FlateDecode >> stream xMͱN@б\DTd""R.HE) h!kfg:[\ꗺXS)Ks"Z;׌oY2=7Ro0ͬ&a8YZi4 %:1X[z83L̺E[y!8}?+O2dWtm8 \\ղuY endstream endobj 450 0 obj << /Length 202 /Filter /FlateDecode >> stream x]= @Y6sݬ+0Z *ZGQr!n5|ś7ȈBR[^0$)?G19]/bLւ :c:k{-Ŭ`m88u t&p2 lB̘Ϙ> stream xeпJ@o \`^By]  @-G̣R^w]9 Opj8>xPS5ZOLIppu%?^^qDzŷ;JW\ׅˡ~ lr&Vg{'´N2;s8Gvn=ЪQob]pл ~^8:g007~ʞJT Ͼ4sM^!yJ[X' endstream endobj 452 0 obj << /Length 207 /Filter /FlateDecode >> stream xڽ P FҡмVn?`A'qRGE7f}>BŚނ*3$|9VuQۀ}+5͞1%kTڤ|18Ux*%V738 \A&rOP deyܿ>X ?c\%#'q(IfNĴ) endstream endobj 453 0 obj << /Length 131 /Filter /FlateDecode >> stream x337U0PbC33CB.c# I$r9yr+q{E=}JJS ]  b<] >00013 A9 CaՓ+ t^@ endstream endobj 454 0 obj << /Length 259 /Filter /FlateDecode >> stream x]J@Of!"." E0pA.Z v |˝gH0??pNNmnҮwYUϹ勧7wk"nssa q[{_AꭅBaD4%;>#p{%*édlW]HO˷df 3ÂױtK҇FoMfl=o,"E"pLΉ~WhFF*4& !3DWZnvj endstream endobj 455 0 obj << /Length 257 /Filter /FlateDecode >> stream xmJ0'y h[ 'i((ysƙ$;dfjj5u=5mMrPٿf~jg6wW`G*`Z@y`5@N08F  xP f͡HmVJ[\8 )qYTN KJ8L3#ęgDUk-2gB8&%1Dw>vq endstream endobj 456 0 obj << /Length 206 /Filter /FlateDecode >> stream xڥj@@CkB  A GAẸMb/hffӱZ'd?$u{<l(潽x3\h*fTK> stream xڵn0 N#'( H׫TJԡءU;ã(<#"/ľʨE"|N7Wץu_J vv&n}Y5dnACdR1*> stream xѽ 0 [vh], vtr'utPt>PMmOg2pỄZl*MsV0QNsQS񐶛e8ꑃ2C ㈲r\L\p8X,,ijb5e|!> stream xڅ;N0?Jɍ`_ @eHPQ *AKrGp0] -Ğsr|xzf;{b]g{6M;oO|{T{؏՞^^ݣ^Z!(*l4C #]xKt"8ƚM`5ȩ$d͎H5`!a+VU\Y==R((( UP,RT|J`(@>ZuT2(NYS9԰pcY Vr6DjyW/jw{Nґq(8 +ZKJT͈ixHc@05sL<'Bz t!YgӫSԎ; endstream endobj 463 0 obj << /Length 190 /Filter /FlateDecode >> stream xڳ436W0P0bK#K CB. 3 I$r9yr+Xq{E=}JJS ]  b<]" ` )dQe21 8pfAfiA&iΔg22Ge^L0 @ Փ+  endstream endobj 464 0 obj << /Length 287 /Filter /FlateDecode >> stream xڕѽN0> stream xڵJ@%4y˼nn p` A+ J--PB\_SE;%_tB=ܵlkouLn}{ ?T\n0`Bh§"( v3,rV (R0(Z1̾?^3A RW^SML j3)0}1F3f liX6e*yX i}lM󣫖 S-zY endstream endobj 466 0 obj << /Length 267 /Filter /FlateDecode >> stream xڝJ1'lq0޼fpVb]hy}-86L /;q5%QwFO-kHfr;r +ZoyaC 2i寙5z>%k<&r,`vd+q3ߒ1^+ \oxE<@G*q/|Aoٸ=,8U(`ش fA-pڟڤPj"{mI倷YR endstream endobj 467 0 obj << /Length 351 /Filter /FlateDecode >> stream xڭJ0ǧȥº=z =umr!4LRuDg^W4;(M}h-ԣKCQ\jժԥ*NѮ̼<ޫbu~lX)U6_GzahB t ]2G6Da)hrcfEA1-?pλճ I}҈6ĥPgOn ܘ'+tc036u! 蒡AM"9%} |H=X9ZHv]ϽmE=LQVgq)ϜRT7D]n cƒ|M'b<%NZu>v endstream endobj 468 0 obj << /Length 142 /Filter /FlateDecode >> stream x3631R0P0bcCKSCB.#1s<L=\ %E\N \. ц \.  30oAr 5 T @;af f!`` ȘՓ+ > stream x3631R0P0bc#CCB.#3JrW02 s{*r;8+r(D*ry(070o`G1 d endstream endobj 470 0 obj << /Length 252 /Filter /FlateDecode >> stream xұJ1;|Iej`]),APKAEn"v[ |]\k܄[vGXN n2rב)MZ/W4mɟ˟1cɷ'E37.\P;s0 ]*\T3&03vrHM%.,^{aK u`m)4`BO5䀳"mDV_—B.fY/ë/AG-!A B endstream endobj 471 0 obj << /Length 207 /Filter /FlateDecode >> stream xѡ0[*#pO@@ %0&H@! $h%#L"uDKzz٢"\1CtAݓSi֫u{СuB U|0ۀؖB%/Q@Px_Qv؁ʲ#rO ^7\gpx'A~^ɼP/nC|U endstream endobj 472 0 obj << /Length 249 /Filter /FlateDecode >> stream xڭN@ }K!~5*1#ܣQ3T9l Iɾ5TUEš^+:pP3/F *-=UT>cKxii$@v#W@!'=r48 E\)GC B1:6b:wZK??"Xi=1wfbpY4?]e[t~x# endstream endobj 473 0 obj << /Length 288 /Filter /FlateDecode >> stream xѱN0Ы2DHmNJȀS22`%4*1Cg[!uBbbt:Ftr6IF9s|bli%cLl^_0\tSv PiYY0٣-$Fi nQC$lrڢWF$\Ea}!~"bǠ?qQu{3}>t^ uCaΟ jeG)AmJIeŐ[W.翢j؄7,?ne endstream endobj 474 0 obj << /Length 185 /Filter /FlateDecode >> stream x? P ,dМVt* ίGQzN:xȗ@ iDrj* CDJbCbqNjILjn߮#r)o̙-S/XSeFԕ+^+k۪d%A3vX}X~ö"7iӊ^Ds. endstream endobj 475 0 obj << /Length 281 /Filter /FlateDecode >> stream xu1N0G\o$"-D $(PR[mr⛐#Lvq v '33n"O'5sj<=x/5j֝){S^˵)x|1jSn衦t8z[d yDbDΰt=ZbM΢yqPje^5X*>YY:#BIj!MlG-ƨH]$?r>Pc6A٠~I"vfD7(0l@/]3wׄ endstream endobj 476 0 obj << /Length 191 /Filter /FlateDecode >> stream x3531T0P0R5T01UPH1*21 (XXBds<L=\ %E\N \. @b<] @>dF"ّH~$RLڃz0D2I@D1aL``n@'03H~`c1(l@A(8\=~@ endstream endobj 477 0 obj << /Length 268 /Filter /FlateDecode >> stream x}1K1Wn(ž/TZI* nw֯q@2P.R0:K2ONFQ]9IKTc$kmlv2JP;L5o<-Dw0ġ ;#39~cF<cpGh> stream x}K0Wz(@œ`<'(LQo/w(/h3&ORH}Ev4d|ѫ7X%7Β~|dqwqOXZk z Ūe & 'NMpL7Vh2zeBC(,JX:6t%`֩FWC`ڃv1Kǚ ֒!KtQN6G%A>"10:@|yefx~x }P@QS@C))NIG%SԦHS ]W%O endstream endobj 482 0 obj << /Length1 1518 /Length2 6806 /Length3 0 /Length 7826 /Filter /FlateDecode >> stream xڍtTl6(HwwKw..,KwwH+ ݡ4 ]҂ԇ>>>}g{kfaflJ0(G hafև q pw * y8)D M @Ox qa>p>l^QQaY0b 4}F[3@f #|UpsRl/ v= @Ҹp=  [0 z-W0/_r+_ @[[+ `:BA@gwؽ?q~_P+S-pr8WgVa..`( ppid~p6B< 8& ({:pJ 2 sݗ؁p܁`O'^^b؀!PG7:ˏ >n1 ~|N>Q!@X@@ȟ*=τKv/]0J7䱽?O濢J)y8;Y"?8q/]hT#_A<\UEAj+A m/e75k(X]<<qo|??L~ }p|O$[n.( q//`(`{8qwu"ܮ; CAA~^Ay."vpqI;77Bm=x 0l3?wl︨}Ź5&y(o36'3\6]/҆"~kfT[N3݉vq427n!NO [GԦTg$&d<++Yy9Őhz,mvpa~5㪑{'~ I`:Vy+YH 5򱹉g;@prBi;`MO#`b(oT{(-0*%n5 l- )_~+*C}JJ/П=-`Z{}z]g U-sg^#m<^8=t[h;} O(8S1#LG5,K^"kP]No۬:!h|5ѩ}Jv<3~t9rIXsmqVlYjaF0f_̬߮k{]%\8 _Mɩ@z@]5ʥ {h][YQnQڲF\*XfkDlI+nesz\gؓ:xc$~Z|̫q4qTR/J_5_R˾&\]}MBSUBn-E>k,oey5Ԗίݲ6#\{jE ?&ʆyM&<ڭOyY;k)S+]h»dj ݂u{Tv#Y(JH׌b85sfK}_s 35 N-oY9V6rU-++XŸ}=WPy4b:SHE] 1nt/*l ]&dMj$3q{Ɉ1;JcbPV@Fw|w2 kgd9 DTN;cL/<C0/jɦDjE 3[$P)\5XoKw4nܲoa)׃eƇ)c<`>E|tqJsU7r a%d\>o gF}W؂~ÏHΚ\[T&Z0@xOM렄HUzBK\C@GdRlA_2_>'ۀ5<5Hޔx$+e0x܏ SA,i 1EeFּw-/[hQ(yu&HQO~L콆pp+eZXQ!L:0Zkdq"188-} &g qOPy\(iyvb;0+$L`\!9:-y#Eu̓Uxr'ǁ~Vm4pGvɩC?pb1 E8LoZǝ):ڌxoăU4)_n:<T\br4}iLzt',фΎ# ?aK4f_$nFLΒoY`.Pp*S)Kq6WP :" ?{Z,]dMx7FdC?#S$=^lc2pb7 VڑZOu4}W$ě>HK{n30#_S@mX)Ӹϓ\Nsnb/HJxI4_- /D<cJz`t ih9fWʵyexu/"(".dzdR 8͟>J'4ac~P !|EU4Zj+`/1N(vioލ"GNW! o$V|YN$E4vcQ1JXX[S0EwǾ{e尅Є2Sf"7ߙ=h#{9C@gu3hxp=nvϸTs:ؓD AͩviK]t ܕO4ltMj|@1hoƨ O sZD"eH܃EkL)H7c!]D)'`-Ҩ;д9EZEE:ZqnOA>Z/Ŵ6o *J}ŕ "Ҁdn+lq|X֦KHعL^@BXvګ)km:;Nm7oљ-*gcj{Q);-Y> b }-C.D P_ 8hNn 5q_żvQ0VW5ZRQ4 c "u&_>qq{y ?mqLоGhu.-&9[ p#D0o3@tr}~UW3C$봚̇3g&[ zV+8^E?z`ˌ,'5Cq\JWX靱:sIyQ;Pe5 uUMMR^AqH{cNbjPTQx] sـNDg qO;ׁ)̖}֏J!Yo9u:|'1xty—cŮ-Vet[(ycI;jn!CJ 1飬"1k䠰"^\msհ,!}=?,h~D(tE8=OJ ~0LމfС0}#,$נXsRݓ2i ]kX1)ԹC5e$dڛih*F]UgZH+UT ޴ v/q *hHu i$Ҙ畗38xh!2CIfo 0N[Ƕ8_X;1ez淺 QT tQ1ĒWz? )vj,zqeG[ŸmIje~eWi|3A% rF鞩0\m ?+"W`32&C(X| .jgvz+Mh'}6(ׄzlv7fԥ-.ۆ+7$szhqf֍(1Y-P Z$=8*(H:S_ilc{'I2$Xdr=DCWp{;b!Ȍ~t W5\'cD?9\K+FQ}~*+>|DG{f.]Z?rfB8yO{<ƚA^ 3$;Ǧi0BTnݖ&|?7P]yj2^9;FhaZqnTOr;"< N1cNo{~QIt< :YP="Єϸ|QgscABݖ8o遠N<:%U_">Dr>1$J,wyTS\~4B=.t- k`$7sC\z:'-QHeiuJ/$#NWR/&&-~,}F|v.!zŸ̹UщH97",С~5sԓf`"ǃoQy ?9,L})poӝ:I[n B0>Mj@:'X>N^X<^gړ' ,s$+*mUE㵊eûwj[KӴ_iz8:^D=Kd9Y-+-TM}~xP>ԾLboǨW{z,p#A*gCHWЃkn W^M[ķs/,0Lh @;z49U*xز:$&Fh;%lJYhV!Zi$1xTT@ɿ&r%].dl!J&ܓO'QeIHîM2d. aXmVRU|-{X5ˎq%Fq].9E yDjvGtWoHe[|:AU-r98%wioKf+teQA |NztgiNfZͰ+,U2@T!bX"㱧\Ǵns-C]to>eΩ*Qe`V.g p0>*r*;ojrsAB^XjϾX(.L*퓲LǞJ*.j|mf3bf>Z ڻrQ ?z{4I2:#PM(w' {˸оg|xդH޲2B]}i1SUUP[7̢C^.U|-m,W\.kJ4t2"QUi.:^CТ[se?#rK#>v-@W`S\1mufx ]Q_܆菟겾.l;*EF+StlWZMHkP(DˁO)'RЗOk0""*?x04wHA)iuSuM/C=5`69G2]sS@!d/1wh?@ #T~f\[OΨ:S얒1+HN:3;&ǘj,ư^ |n+2L)b&#:o{(>씕ȴz oriζ^N ެ/O!«Mfɻo[Tz] j>% uBwȽAɣ<mEnv ҄ /I䣫m;#Ƴ= rIoh;h )S\%7Z/텾 mu@aR3s TeLN }yE~xˑ EL6h؋(Ljd^"cga٤h!q~G{}p`ﺤR!k'Yz_#Ӟ+a>lb?'0 ,؈ipb_0L(<g@!CFLkpI QI;N)cooj]R) endstream endobj 484 0 obj << /Length1 1773 /Length2 10898 /Length3 0 /Length 12042 /Filter /FlateDecode >> stream xڍT6L-.Awwwk$R; b-Ziq+ZGg̽gg  "8yEr*<nn>.nn^,&&} 9!AEe!2yPtxEyD"1E w @ ݰ`.^p=a,,֬!?2`8h`AN=5,(rv$Y9=@mKhƅзЃ"<@p0AC\^Bmp=u w@pY[Ü]@P/` qչj{ N ?Ret qAqA~6r0gg0;?ylp^y@}l!Peؼt@!/*<فna!>a@? r`?+al 'l'~? 0~l`P'h1PHHNV<>|N^n70@aqA w"_ `,0ݔ[w+7#ŗNNY4A',0a@^:Vz9yC!`mO)7=pN(X}$b/`/(B@A!_!ˁпC`9@lI@<S'rWZ<y !"y|Zz,>? [c|Y8Ԇ]VPzp?>L4)4@*[$egͪ)(;tjʺ^,N{s*nZ?4sAEQ,h I: SƮW Ymt3qjhfGWui: ]DՀٳίWcL#S53;< z?F1!ѫ -q R"޵-_bM<_;5cIL&p'MlDӢ4K&^vC?-A5;=Zh_ F]ڞ_S{mr5v,?>FsI#^46}yc>>\wHZ`f?zsoӎYYתhh,arݼoFCz9os*3~gX{6g)(6NgTH,Wk$՞46Hyg$}6$>,]] &K2bvȒ3ǒZ2C|[؈|:IZEVB!/G5ִ8Xpu^Ǵ,FNPN㴕Jbp=㳣8͒xBkaA{ouxz$KeXtĈvy1;2dBM kHR!ӡ IGʒ?~ae}mEe]N,2e}l+֏σMj.B#t߱n|t6>݂.wR[Ăؐ}S$ADX3eF_v0J8҂o!Cpo}l`ޞQC- ,K&<SrvJڄL_C@?{md$mՅ5h-:X|}qа$)H4V7=;ȘX bO0#[>x7? Gl "Bm7ƒXÄQt'H ųyV[p^d.HN*9ÖֹG*޺̑lؓKFF{Iul 6̗;0\p |bT-28(cլ7,$}(d"jګ0`1` TP-O,r@Ҙ彵 y5 \2jPkf KR?{Uٛ}TV5=~A@[.UV$RLZK/j'x~"O-°dC DK$lBDߝӁG¢}D~kVt, ގ:V'=َk'ϖd2-ujj1Y7žVІȹXm K]v!MX^_K‘Z-*C m0"斾^xLdy4f` seV{9&C/H$&kj{;/1H>\h;]+S @2{}}BeP糢`|#f* JJd$o< a\@d1G;I@5d)[AO.3ٻe! `o Yz&^X$~NHˎs6jm ' e4z SO ><p*N:J*ʎ[O\>Nq,%$0f^4߹0A%x e ʱHK|+KL'Fn&OG[tM~cқp(IO:Ve@0&\J^z*s %Ӻx}PH?tL;W}fT_P8m`ax>Qa'0C9֘hW o2 n:)]0=anC"7:YYeMn)Zͻ-F]&OGdhYf4ȧ0ߏ}JqZ%AuVj-Hxz^v#dvh{c;趖!%I-JJUih4z"H?LYㅁXzh"샾ՏN_I{j|E˟-%3M1Ep Il(jM:5_P+KVf&Ū.ކ9ems7hȌxYYv5K[$SsV#:C>:D/ڛ*YZ=:f41, UfO<\={L_~)V*-z DӆWhY?2oeh{Sg}51v`n7 KNu,m%2GB^ +1D}k8H~b إ+KiN1+J&9 ,I*uNQ)otX 6lĪH v閠;!%ϔxW"?яw3ٚ ƤWm}y0nUjtǭ2T(ͳX 2,sy3\U˦]#/YnwR9\Ejb>?u~z]8ḻcQ^A?$, Om=P ] d- GM5N`֫@7q%፤a0|83,ķX{2ϰe{qlǽ=[;ta$^3Dm!p\f*)i|XzuNs_KEF+2m ˈ2=/4N(lCH3>: :I,bu=MK3*WnK72vaJÚzQ}Z\a BdV%c)'YNYx:5j[Iu{R%.<)i'OXjJ-K)\mQff2ױFMy1Mb]:v<7x[ 2xw!>@CuPtXb% a?}I " i=fP.L 13F`M]-s;Ds1bvjY>*Ar=5Ed{%]_recj:w$1ؘʅ_3/u:%}H[lzT1*!jDCa=MtX]?&nT3t񖖍"yI*gi\+o@@|yM «ěAniW-\R Vg,p\$%VE..ڦje?'g&qܥq3y^;a5%b:3b࣡/~46T_Q=6߹Wt gwNEGڕ6HD#gJ}3=~[@ux @jumR׊if%%ϚUC`He1L$[T-Pn^N1['eLdnd5x@}a ˏ:߃X-ߥ7nBO K3/ ^ "XEPc(YJ *j.w}鲝]B!uTW%4QjvŬjd~F1(Mg5OPFE#cx݈WLA#Hƽ}[іOZی QtHHL L ہ~z k)O6lע߹ÿ́dlTObosq&^oɑW㡦 p?3'e K/J [¸ BsY%yRVӼ+@w`xvH)_COuKP& cЫta${Ʒݜ'yϟB^tɠ Kh AAl;yt ,Sgz*Z PuTWѕLo):'5rmtKMGq e9TyiZh8-˼3`ϳ,^s&3 o:n>9 ^1UI"Lv'p( 6@%Xqd>lS^ː ʊ_͈J(3E0daoڂCB7l\{SNv甎#֥tq^SpV1鲝p{_Hj9%~5K(v4-STmw^y;4]g:ר/ !"oCE]񠚧#?r5U+->!bF yw׮ʋ&X{yJamIBv7;6>Y9}UF{֮t4sHUtF&bɬ&I>*Jk+oI5+^w~):Oq,ډ"#[w3]@ Bes̶3&{2q\l$Aс?MwzՃFe8wQT.? ["{JBIDLI" ,O ۾I#5q?]gUY{[[pw(%H+vEp =A7N2;_9GWxw6?mP8n8OU ŌZ"4u}栲 VK Ev[ ˰x׾DѓR8Z*c5A/D˕DYNϏ%^#cE>^Z1Ds@pţrJ-4˸d;G魔dc/A 1+~h)!o-`v}?7;Z;ŝgd4aB hAA2i^A⧫9n LM^%0[ ZsilZ.eZ洤*pgh򢡭_F|>v?ϩ}.^rEÆjxbZh9R,a]I@zfh+8o&LI&KÏ6!R5T/O?i.W_; y ɭ4ܦAƠkNI,zJq]ۈ^8f/Pe;\orw/,'PBbus׍7'aYdZ ,S2'F!u)e"gP=o;Ϫ;ϜCmu_^ ^@3A bv&LQ0җ9| JԽܱpN4 Gg]v#dXb02F* N*v)qw4<ăU%QbǔBYgM=G .Y"ρ mse .Oxd}rĄ4ýOZ`pH)}>1y >:rubΩN5 2E2ykPR. .ˣ^\ u.͇[_Ng| ?ٷ KR1"XiS)FkEfZU{})(j).$~cSONihpEAAB&U-Ak³Yw9,nmk#nh_ EePbZ*y9w*m̚>8|q,:YNs%֝D (ƴ)a".E $[2 R]}ySle싥*2Cڠ *ZΩs:}2&L 8&B-^8\BC{IM^i?w]V#q/znӛǡI9/]hQA|d9xZ.jΎ[:~)P=گ.PhV̲`\+deq]F[Z*]`K@ E*5WWe1_FRڵq,'/&5GoV(v=aiۆJRtLda,55gU[Gus.L$/?*9޾֦/4dn2{Qr rVD<24QTR M (ljT}֢TO8>]13]eے7 aUPw&b P"$̻IigqF&^9O:dݛĨ|ZhG j~ F"ꗸ9FZgX?AB:uc,"vщ< O^Ly Q4_wZ,tMpIJ6wŕSJWwFY}HǹqmX ;v$W>j0ra=+V3"W yAwZJ&9qxƎ:oV#{pFv׾I#ȐS޵S'6͐TwW}{Dϩ2,g$cqf /8*S֔k OSY\$sޣ$k?d+F}Kf[Ese j|nH7A/1gg˜Lq"9\R 7(Y? |dX}{9po!la'"Nb@ vcx>*߉ǤqUL[j!{(LpFt,]+X!huZ++, z U7uD2X!eNpa? ؀񎝾bQļ*l/~G]ve<vs*.Fv}# Hjֵ8j8B&ZO"ĂdHB$#^/MIw+1f/f OGg93V[;ݟ&K̎љf_t9"RsAN¶bYKԝ4H oÉfu9 %hZՒsxdEuRT"qB@ceMJPnj6kayVI?1㴆xC(Y\ = `J/VRQY1|WvMo[9ހҔ>2{ShzrF! "҄rLDpd-񉦊.o/ 6HqәTl.N rP0V0>"eq cMJiYI=b_·7\gTN][uBJ yLY֢\IT";`Rogkח# cCTHCMQ-m'8$,zfgMHY,Ylv# Nyk~XOWVٰE"<GlBeɺ,}NU͓jNzl}u/ y1^<=B:\i:bB.PQcc'DǯAtNOyf6*/2 n::@B"bw.s 9E5$Zax7ӚC ăM Y ŷsl^81t/p{KMՙM ?eOWe>' h.f^*2$]yG#&R9LtPg S֬Nɵv+Y(>w|\TC~*cљeS6Dg`QkX M|Qzqfw4ζb_uA^B~ BJgY<YBR:o9Q#̦"wJ/2..,jo!tMU_X v-L3Љq_tvG#EC'i8Wt\q3_/Il[̠d_oTsyT9(k͚~29vA#Yޑ-q1)43(>]3nV 9[H>&EE$149Yp UJB ™aaNC t|qe:)a=xxn􍞹?|̶!:Opp B/\AH?WMmHǘsMs\ endstream endobj 486 0 obj << /Length1 1385 /Length2 6143 /Length3 0 /Length 7086 /Filter /FlateDecode >> stream xڍt4oRZ{UԊ=bD)jSDHإ{5FPVmU(Jk*6-O<9׾|n^N=Ca ea1<@UGGSJ似FvCA `:5遼Bܝb1iy1y  A<0@ \;{ ̿~@LNNFw8 G#$@;+B!NCx#="/*)qvA=G{a_t!?n([' N(醏pGh8PSpAnb"bN7W"w0 E9@k`0BC< ' w;p!~(+ Ց0U3q#՟ [f(O_"jD5U1) {AE7v6V'uAlCp~O\L C@1Ix5_>'/ 1SiLo ),.Kdfу vO&M/Cd( /_PG O65x:u$;q)ixWHl3lQh_k/Gyh4o8KMn8 %BA[N^X|0s kzv*!$7f S"O G|_%ǑiRrg^2W¢Ad`໢+t 8@zU4-leuSkY"˾}һñH -"(I8Kw\tHDce1BV9FPY; u-W4_ cuj|+8'S-ߋlҋiypKsǧ5l HNnȬh9QmL/5¼ 6d>E #8F@k`=rC$HsJ}o@NլlYdcBK֭3:}1 }WGKyS-yE MR)urޛ)':GWDaGN}Fs.ҝ&̆IWzF=JOsRwDѯBNN?u/ %5hӔI]]C|U`ha8(Ӧvv&Yna揌{L=uz< 627#˨%qC!X|,,//H铷W}TY׿2GP:7c?hYѓ2KǼ$w*[sS0f|Rc=a$Sd k$鲩ܺIpOQl<(qYl>{0yжUsGY&iCJzƺ&a\>2WBo;w J]JjdXXc _&/ן46(<: 6++P#dP׵y?^'-3+=("Hq)Ka y+s)ƾmЂ=+W鈚︪äVjC>x¬K6 ? b6bWٗ=~旼-ew:j9-(C:A_J9jc3w4&k^ ^:O؛89!,`W1'L{R;3Dk|nyKiL(X-g>,azg7JSXhEyzD=i"2(^cry{QF܉Q50N MyK_v.R w8l-aGj2փխM82rٌhdOcYSo̵.?ْ~!1{Y^:G1% Bz(Fgq5G߄ہg.Ջ$fݏ2J[^`MԔZ$s͉?+JH0,Aݓ 2Eu6(yQ5]~Rߐ̱֥rHq|qUmU??)(jhq<ݘ5N ?rnn*C|JۛX>^N8hj"cb~#>",PK\67G|NVVXiPf:xQ0>L8'hbr-6:h_$ fZ1otbGJ3.@+sis|xF,nTʬS՗Z݌ ,ljg,*yq^}R1FU=hԹk8sl5œ+NeS1H6&f1QH*_Z2#'V(wr2ɬK;JZ7sSfY gsSqő;-NiwNtorpˏ{s[Dr?'߻ET6hȗ[~k٭hjFIU3648UnYq,EM*>+JR P 'R?#4OG\.=c$ MOh=éYԕvp:rGٮHejFwc ;̗$B;7@] dH9qEt/g-8` Ӯ<2CoJ3PJny-]_=Z񙟴nj$(xQ W`S(yTc}i4!Ws_ryfr*}m0RNI$:KWY)m媃АpC(}[Jχn9Sʎ3fچ̃⩶Zsd(v:2~ػ.\A sk}3|I_z*> stream xڍT6LR 9 -%53twH Hw "HIwH|{yo\{_{?k?tڜV sҪ !`dԱC90\v?Ү0( XV7SCm  ?s$''IC&]Bo*ZUfQP&Hmnq!`Zο`zX*'ڪQ[ZH٢_grJcA,vIQC7ؿDMy"駖í['S-Bcm<:- ~ @\Hۗ(?g|-E]Brm|D?i5υN/ n8vd_V IjGۧW[qrfuyXϛi=mºsg*i^ԥw9H%s:cbcVG5JlFήS 31J .ԨE%ܛQEP)BŚu2Àa+l,^S6o gǖyWN8XLm.v$2y? @'ں3yiH& 9,$]Zϐ4h$[p,Belʿ]u^P9Ȕ{o2YLsYٱ"xOlfdM9]1u|{N 5B[ u 8BQx - `Kfʓe-~kFLd)1CQ5>짻c6_М 1]-t| P :#}|p G|!pm!` _?YkmбQ% j\:,A 9{3|a^-v[?L/L^ț5>吲3\T6tw佘sJq9%ܥk+ >`leuO`9ajX< yX`x)enSuZYk^sUk@ŐI,L[i|5p3RٳS}8ĸW=(?7y0. dxW o=˵L!Z),yB#xhKȝc+qd&RD|ջK, &۰`~ aw'kyn78e?s?o)pnP>j.#D}Aʚ95KF$YTt~|ܒPȑ^WM}$0-5 \\-Ck|IC;m*GZ߲껧=<7MŖ߫~j(j09QwvܐĤ0a֑|1^.BS7c/˷׺[B>Moj͑N[UPR`~y\!Ԑ4,z$'Ý1$ƏK/ۤl׾\͜=)Ԓx#%[z(??80g@'DUe}$=> &a-E|TkK 1vj~E6P#ϝ`}Hs+Ox  P|e6kڢF~vEGYWзdטჭsګȸkȊ.\w[ʡ|,$ֈ/Ȁӗ[u/fuvisa.zʐ"O(7+䜕J4c7;V/|c^쥴J$e>f7˦c[e|oRH[q$B&Ks \ 5&*VP<~g[WaE~{$Hy]q^U-$𱿑Esޛzl/ӡF9PrMZ08e&z|9dYu|%WHKv?|{$^5ޛݣģ߀֗F3rf+E* ݮJtU;cpc~?T~ie@͵6Pĝ({0`|Β_kJFDK~*9rpՔf渄{[_43tv j2G~svO6U%xAPWO4k)XQ+$+Ķ>s١cǞ&l0]iuikf~ac=1ckA}?=rgu+2]xY:L_ؽ6ON=}Рda%`a7bt.h8w 29boNO}} \%IWm7#19ޒRG*SeчKߎH-m=N× L~rrO.z`[pԳi<,.)p;&э/ܪ;#"iC-@-[\S["' !72HzzSɿVW *l"ʾt(fD*K*㽑LQ¼r<`JDVtI99s-i\͗]OE.S}7桶QˡD5ea`LJ+(El~/agʈ ɼ eYr֕mtD t]@-Pۘ|)_5)nH3O'$lzUX/^;pqFd|ro_lS6,oQ`\ 8mw:IVvcfM9I/uє5sНRV#<9*Di<@(ĀXbHЅڀo>*;>fVGQxod&|RNx&- _o O ,et0q<̝yޓr4mW &RNc$bqtr>>v6J_`/~ Iw?IAbX&mNf/+k ˕ kߣL $95"ۢEp%1{>v@{ff;üO1 ?$&n%n)N "80j@sva2oźs֕cv v5xxMȷȟR~12I*15I 뵤Ri١_GJ_=+&k2t%?YiRm&磂4"dwa<{9֡.x\3U2aoWduZ)x4兮=ʜM%Ohs Q4d >$Oad"$xn(@y;m=!a"X2pjz#T+9q"2Xg}X(E쵉,Ny}B=="+]23^JQж_z'ɜi={͋`ָd|GDSDѭ3v=Tn[871z,VSm NP a;GҘ5焆Z8]gF{7<#Z \<`'Iygq+ŧ~F/ow0Ek|o}Fgc ST߷ )-bcLJF&%=; X67 |d,{ KgV4G!;n ]Jэ&-9ʨYIYzR%!ogdemC%dž1a( M2'5We9E!5W''/s&=U^ɸϛĴΝ]UOW*5O&m?QA JyBU)-r0 obCq||0f}~ ~kb A n1I`-,f1s.nZ z,{HD9v|HVFQ k*#;݅?&LrkBcC0S@%,ʺ/= 3pJ7z>wNe!Yblk[ Xls*>mqw kdMtz % TT'P2bieo _|SWc9$: r? Ed4.DğmHgjetr$v$5Tj=&[ln%R?g4Fwb|p8cRbE=wJgϢۿp.-<g֯? ,{I{ σ L[mPZ4pViqܵAw|,nPrO͹ZR.}tL'[4HfǕNx%*b\3]R،|S~~<N'9I\S=3mmP4kIM|UKeDl>o׼Nԍ.f2lF[bV0m9][h!vYbr< CH8h#S37xU>-Pqj !ĀYȫ[J,#/}ѭJ RWՒLOۋtd~{#Z2@-1"<{ ) 2|O$E:/ڦ!%9`5V#{@]>txai})=JP65Ϩmc:A'eT~^hr#&|bEuKw}}caln){}koKQvFLʟ~9PhI"]`H nag $2FEڷ-$:w#-⻛H1C:XT믚E4&~u8bYVm+B8g?&4x@4cXn*ڪW(e*awc\)kW)c%%u+6 Od, DO/,s#T+">4v5/:]4.GDXa|%VPrbTidJ2vIx1b>jOqwC R2^<_ =Cc@ z&F7Nk:G1B8Y6ɂx\D{)8? endstream endobj 490 0 obj << /Length1 1684 /Length2 11175 /Length3 0 /Length 12278 /Filter /FlateDecode >> stream xڍP }pwwwww 6;AKp ==Hp -}jս~z[5jVN@'M `cdac@ֲ;unvN Ho9-N Ppwsyyll trH{YY N -<,L@W;Ks@l t|;di{O :![0YӓэF ih݀@+ TuƂD вs t{o%pY]o4@_J0; #O9dsTeX^`&9@s77[do ݞ3؍YHv +I'GG G}Rv@˷kfkAN ߿ k;MX;j\܁RAH`6@0t,mYH ց3 5}_ `eg Xm@HdowiOor9x|YT > '//3 x7e+vU5b@r7ӛjDnfYR),o"ɸ;86ws;MPvz[ @+;w-8h&cR[p?Tsr`~񽭖Wۛ$t6Y:Yb<sWWso!Y_]z)b+ FvrEcV-[ O jijhFGmV5y@q~d/'_&7_&6bYA2;@su~{PѿUV?]96;X* _h6@/%Ҽ`}]XWq"O3?u?3.v? p4ҋ#Mw#L{ٚ4Qcg$Dx "1؞߳N{.<w>T{~Yш{5kZnT$7S4 x E^-BEd(Li,5v1ZѥNݼO0ZAڲ&lSW U6,p-{ AZN}2t+`E(wA滈;=%6 Ҷѫ+$i1n]<6:Ӳ''Xp!ߐ GBB66>>QS_^Z$`ɾy9ֲ2 62)QT~5NBiSf߄I_Gl6~!0M=E6̓5y&>Gr% XFCIoiwUtg?- k ' $6p9 2jmR 74o-zV_3gCȶARq𠜫V9˳2otruɠ$N֚WdYU5BÄ']r%"]va ar|'ɻ ϭ-c @鳨4| S8x ȫ53!fC\|&L߱DSV^0x^3v|m Ct(U,HJ'j0i`6u Awet(LyDa ]]ՠhx= 3%9,&?6'^$Ś1:"LŬx8 6=|pLaT2a+3Y8E"Ws.淏E͠`Vl1U̓E  oQl>*k[ةс'{b*n|.u9:;@NQsh ILOb|՗BybE*R1ʲTJv/46D[ oHxK!EğGjc{D$O;7\h]]J]x!`C[vG!D+Df4j^Wgs`1ah  mF֐(Iv+y =0eLָVq0sMW[ReH94aM\3,Q<^34LQ#9lyA}v &e8=Hؼ8&5zx4.cLeSS৕8{\dD$.J5KVI?˭(J &߫D(~̛k6!Xy1V*Rpsꥲ dRC{`q0rhb~FxIip͎~jq"')@)N;5c87HHZ*Rcea&218wY&$k4\e>{TgXukǪ_~Rb}c4^c-6.UEI1RK$Pj{w`2lZIUҪ_>lZ43uo]$~Wsx4.-]p|{>=&K[(i.6& mXJOg;~WKpO;bMV5pv#d @*Tc2QWQqc}z/WRcB|Ȗߧ(L3ֽkTX⯧n{.A mewnΝ2-|%%b|,Xt ၐ7-m>[Q1O֌f( 9w`69`k l;xdOh=>]JeZ'S=27CcUBdr>BGԕH|%rx${ޟ2bޚPUNɈdlM2)!6Oˤ7 Bռp~>5ȒccQpJ\s/]=oQTݳXr;p*I<_5BF.QgBVo%˺ 4 iP`D=:zW5D{(kHhH;ty՛-g q+l읮`Ec}lBk$ ,j_9Onrz$EK4\;B'Q6 /jG cY'[T^V{P:Uv*J(Ԙ4QXu\ƀx83ү'ϐMosnlܤ )?L1L>nLwP!}Vrv_hӈ}d+Nj*K|MMe~AJ匯z]L&тyK1M9TWS+8[&hGsʼJۻ}Gb;ǒ9ljń-Vk΍̣C;eUnSdzOMq&A cCrg1r#cLD֍_&n+4{R"Q-Jڊs i?s!\a^Č.hq ٠Lw TBb0 _1s 6kw{ܬ%37N r{hwU|ޫTkWܑ-]{ȟ׌Q ;y{vry+tզ@CI8\J~fY~МL9#xnRIqA*Z86Eqg8HvV'B7ke<{ 9`ҎiJ.9x?&ӿpnي^z ,xw\Mj^^8j=o8[ϯDѯXfGi3M5p+e(7<]k=:RI|e-i7U6Dog~cs~D@{eCh^  g~5!cd5{귙y>f0Jax4ttΗ^OcsRw>{vJax߿ mL,|OPl T_Q2O1cDNȜh>S45Ruzh41z3}T:qs=,lj1nDg͘t>,GIGvaW.Q=R̅ I%S]g퓫wwEII"Wr*q^C_ !VeMAoN.IEfE=GɋڽOZ@|{fBB3$~b/ sS&U%'G&>jW}L 㻾@<+Yy&}\7JٗM2>[HʇJ02;; fFf򢘈=ٮr{BkpDGJa/UD5zoPkX|5AhvD&TG};dhBhdtn_)9YWϴ^84G-0NV "U_OH\uփ{ o49d?@s;uO3ДbٕEժ_͎]Ouj -ʜ"k UҷnwpYH5Ư,kAћhN1< Tq&%!k4`>FH'//[fx2^=q9~1zICabh^+y?/L8oXoմeZKZE|kyi>5)S=UB0ˤHx>Ig=!! SzX꺐v1L%-f-J۪&7}hO=d\yE|V́aڮE ] ':6y'[ܵOߧH(5MPJ^Ȍ5*cm9:Ka,X`aMHZXx,mh?n#^⤜o^ srqưć\*L j!=h[-ҝ㯁_(|=H ~9!&i|~h_ hk9hDߩ:>X nU/V+"WJ6 RWGXa4u- %GS:ꮰn2YˤҴq8Ǖ k36",Zf.FyetDx䗽j,H=+bm'*EeIXzA˓dPѳsl[̜䀙U+eГL 7YbP_wjcrIK$+ yS0X`4T,'a/H6ވm|LEB=qEzOΒ p6)˨ooc_~ JeT?؞A]4.|r^pzfm/g$8; }dRxi˓X)%c@qfǦfc[dүTsd[(DӅ3.wqȣc*98"! q`4W(My߉X(䷫ )з,L,CkҐlG~ᙙKJ[.;"@is'ɀHR2p8G Ǖ8ie~AҌO8;pQWffa6~}YLsx]lL]TV@>YK%?Nzw'ȶ$g}#=V#dWfQRtivKU'g`2YZh*4=l:C42(oB$NRy%c(C"~A^WI Eyc^_Y[ ܴ+~ιi>:"c vD8@b i-j~2O(e^ >_b%=,V~N]D,uq[%Me)L>/>RncRS4:|v?]k^S^!\afc$ve12*(U "S{#?:&F`1>U52-Sτ[IL$pqeY)ܡj໲,Yͧܥψ FNBp;ب0GPS@qsqf}v 8'5YQa. ιЕ0˦p 5-”#y3=C7X~8j^`ttFkÕF|fa5{5n֊|_/c2Cq1x3E87K:?8[A‡, eAEc g㛧/8vw@7W?@j/mof qCK'F=s:oZIEM4M($aYz{Kkj4O4^=$B/M){Ԝ眷[Z(0?^x7::^k8 u_%}>Xۖ^MA+;|s#uF0q -60)şkSMd9 h^iTcHvlgl VWq7P `WQ&b^oAs,wXeYSAGI=Y{hj]w̧kdP'X'_Vs2ꑋMUدJߕ+~4d{#EՁ] B Fm* UZU~SΔPz16`?{P> ^`!'qwAc<+V͍NO!I ¶mYY2(:ș|Q%!j{D%8C̉$>3סϦZk =OÊh9ؒfZ-Q`\lMT ,Pot $)R9qsHC_{^N7|N^<ر<C;J~OBX< 9]XDχ* l20b*DTӓE$ 9nwpZ_+Vwܥ(7hR$\MW$mOC)%G;z܃ק9x\Ƃx>tLyֶW5)S*EQD+"O k^JlYK (&(b`.NaaYLZٻE~jQtkg J7dW%zTeFjk88^(;EFLعmOnJ"+S!-8%_ʅRvg7K@,@AlAC/uʦ͒Mh}(ogf)pE ?ZFxÜr;U׵v)>ޚ Rޚ-.>L$Cax+]_y- L)DI?^"e[.d'IrN #jZW$!ߔ\f%O^.≲+vŽ>ɘ8}-͢P~OgZcDF؝~O/:SbqRN@,_av;seg^YocǏ<5O^H%ꁳfk5 iO''PJs$m]w&)AxkQѾuD֔ybQ (gHW}\8HO^Wƛ:VInVWi tKą|S1a{MzI(QWGz!C⩌:LY[|H)`?kAykp9V[{!аWRY쿇wP]6j %׸#f^BPʆ |+_,J 銙?,X'u3 c\AбeNK(XƊl;.cx?׭6Y/Ñmzuv%9TX%k΍Hab#8kUTzdo;MkrwIpJ3 $-B]^0VΓ N{>ם vD nU3ĥ&c nErXAߘRk['(F2ր+;D2FisݬzU՘Ab婂$Tz 棞d~Np˕zr_(Qa bt/O`LK˄/Y2AqSG >Bd(Pcx՚>Q֐Gfkz$G{v,RzVǦaJ`gbVb)}q^ ,!6HHtش Fǣ Faoq=Fs&C@]NXΆÌʪL{{P BM aAj@f |FlJzOh{hdPKWǧ̺ͳ ľ~7XcF^,E%ϒeΉ  ɍqs7n=Z$ dc "xR2jCƩB8' T1"n*ƹ0+"/1y[ C M;x6by3?/2ᄐ(k]U̮fnb] #Hyz*:oG+`B_[:r~tݹto@çyYx$ψ]xDN^CV)界ǀ] }J ~})xLݹ؝j.`( #'nP}ӵMRYa cg1o4yr%70Y /~c,!mwgG"EK-  ?1JC+9ixi*tw<1)); eN&r$|QI>GH\r+;];Ewpgf$#{NV}Nä Ab?Bj@SCLdz"M)V!2j^zHv `vY(Iĺl GإqEۃD\t]\"cѥp͛o&zHREpp 0 YNAxགa4q_ft|65L1_%g5N #z[}(D?Lz{Vd[kzAv9*W~`(9# xU~t.}l"dͽc%!ױ+t{H":*:'l&^z_%ubl33bK -P7Ɛl#QU 08^@7~(4?ši+MZ!ŠΝ-ꍙ͂HeMU'yBl5fEf$=< jmԭGIaRPW] +AeB.N0|vTvtfNҋk4:S3іaLUGeGouYA*c!HNP)Ŀ]?wm 5` [ xM#JINV8%׸u(BPBC|a W2Zmn[=';`\lR~SA,8Lv(E}1iMO{%ɧp̓Xl‡lPen)N0Q xgR endstream endobj 492 0 obj << /Length1 1478 /Length2 7105 /Length3 0 /Length 8103 /Filter /FlateDecode >> stream xڍvTZ.]2")9ttw*-103CHwIwJ "-! J|uf~kl@0(' P GaPeW(LrӂAPI $K=v->: B)\`G$,\p  ԉ Bz+CG$Uӓ;<x}~h[~#`:`=Eܡv 8u6@M qj@> lmk sqz{0QCz!yP_ oa X۠~n PXa "|0C_iPSHp-ֽ Yۃv(عAn 5ſW-忭jHk A _" 邑75`0 C=(^PSez4(=6PC#0_%(" í P-FD@ځ~+!Q!== N𫟂~CG@e?(*D#=aD}@?ٺy8? Ȗ`nf+ܩyy'$t.^9x% n*Wme\J'7_[q[^][%o%4F;ZU Pv8:[8n!gWCOP̦VuoQyp[M4-  š$E-z"7^P`Ŵb =+)- 8 ;%iU dgS[ÒmTJ-:fU5ɥ^pge/b-6$DĪa!!*A7-('I^C=J-wc+M_rT)U|!ND]~݁[ }ñj%Ei 8~0]SimukNN^wp:&Z*za_NyV]ZwA̗G,Clڱo9lTp(cMR'٭[X[dDe.Z'LZl*ڇ=wx&JEdac% 'q1j*l76J~'H~~%~%{EMD@!HzQqY3oړ#KZX\wծG+,Kj6gA~7:i6!tvw+5ג,[ħ>Ҫ~e+\jˋD$j;՗.!uS\LZYcCКN&ɷBW4c7?b|S3uL* O`R<0` b;]$}C_ h6E`|9:_JZk9"!4Ҹ9]DGQZ91(CʍkFQ/_ [M3g nHf-mN5@^TPѾrJǓxE0.JD[3gɂ"Әx>dvg+#K:ÏQ͹N#ymwƵ^3ѭ5| dl툎pkj|| 1:@䛻 }s\5V&T%Il{eXWD{nϵH9(o zY}e[ⴢ' K)w;{["U27N 7m˓2l6N;xszJl^9]X 9mn&nt#L}shŮbɅՒæMRs`uhP?x&nl|`1WW('TP^z\FE45ȳҷd`A66q H{4_7SFZLپ;s(E['F`hOzG"#Hi%&BnhDζ%KNsa&)IFfk,sE;rWL4%n6 20p_JIv ѭuyin21I=0{|3?L:#PUcO]ZCF+$O-H$s~hz~<.4 =-5-Mhxq+tm:g SI֗щ~[/]%PuOG8@fdF^6u\zNPAW`MduԈySq]߈zLuRA5=b2It2p-垍m^$ǡ'*<=<ԛOgj+񪌡ON3=;RܔfF֒k7pw`yC0SC~ly1Lyk7BmsD.#Gfޛ%;X0eSl,H7Ƕ?$&^sAiE ]}Ӧ'YE!YMEEQ",8fP$g8ޠa 3.Ệ]-2+ZyD;ux3 ٱ\=\W+Dj3fԈo|G^ogn=5YQv5ZZ>Fe[(OK=ƺRnģr10zivqXM~vad$!WJgrgL!KƂ̤X=#EaҙNzDM/uTM^6mQWϰj@ԇEˈHʤSjv~ܨ2lU30L~,]⪠L@8?6%!̀w3 x@l1+ˣ`QE'0Ȍ8 4^?>M֔jn%Gww0=8YCũ͙;uU mńӋG Qi j9 xT6+xmc3dd)Yfcgj`olFS (sw ޤF5yTJcU'?`Si0ݠ g(uIQjXL7s4l&15h{Oe]o~TIܘ> Z4gǸgDVLj2-WgGsAYܯk+lg'@.]<`\qb:I2=|'m!EڴOlquܿ#z1mqB^=\b˽Sj1.^G f"cl^sfrĜWCWrbjc mT))0s#Z>?F ɬIL&?4~mnc4`5}+ BK68zXث/nHB̜GZ+zfQç?DKJx{M~R@""6mtk)>9!|g1&B?>VGlZ jx{L]I-MI7=v/YOheI EimdT:!~k9h\X۷Em,y֏._x,(\MvL!~ 7ZURz_u7W7zpy<٥l xVOwL>gtk+;g{Sf*0Sya 3yo&cҿM, _q(oN ǧAI_}ђ)sE8QI'̋錺O~b;]ۻVr?^ "?9DZB7Fs^QEi(jۇ3n  .| ,\34dxbJѭAq\LvF1p 6,㓊!whL6'[ޕ7 ~t :67Gon$#a"jNp[h785!tAΧu5%M`u;Qռ5A'%ShgtH8.*l"Kgc\%k.˴Uy>=!ʎrX\*6O.>a(i7ʬVtE7NY3Dfjpv+d⊲M8aǷL;DL1 Z+igzUc>i#Yœ콓*\r=ʧe-$ĔN}6d#tGb=wKÍ?X}RЛK;oe:|B]:#Y^eGnBZt]cj+Կ).vE`G" +tK}3xOd#삪|5r044-lǚ-ѭG&T1KGҰiC}K%V̦;D6r +Ӳ,ފTݝOg  JFp=1\!OJɖ/d52;U !;àah f*rb]3$8*# {Bm]M 9sɞȎn2ל;|Xt{'pfo\)'ž^RyI|h:+ڵ*q}_ v/ hk|>㢜$vVo{IHzƃW^ݹdLr$C*E(/?&73x <ߏyOpiVͫbti+L%H\oX]pۼ Ѐ:`pQNӠT@p1]KQ3+շnHA9\P2RQq2YѮצ*B)}5YsvQϩ Ќ*bl@cF !xh endstream endobj 494 0 obj << /Length1 1543 /Length2 7120 /Length3 0 /Length 8160 /Filter /FlateDecode >> stream xڍT6tޤ{{o"% w&HGPHR7A4E={}+k%<={ 1!ʺƖBAA~AAa|66 g3{" p1=@$ S"QD]8 ĥ$‚R7Ђ|6e'ZG' $%%;0. vCBpW H? t@#0 v*tU?>0;"}` B@`s{P5u`/ '_ѿA` (ÏE0_D G(Eu @MDUW}'G@ju̪0eDڟ  B_u}`[2La/_Fń`,k?wooUCP;*q>@o0 oǿ-|!!؃ 0`O/J%?!Q sà~X@]QWEG篒TR|R!!!q y _0G8@vQ_w.=8J`?B$(&B ?we ws!@7/J^HQ_9 ^nDQӠsB)OH_PAA|$jি ȯ%(?>Ԑ\Q%.0j* w5lb'k%BM08@p{j@@ǒ= F@ vD,= ? rD0K"I pGe;TWPW /OOLQG} 8H&MDE"rGleoglI%;*gQ3t.fh T{W ~w3:i$Ů~K1d ´H3|Pj(9#aΠC&*w[2.#-h> @NFn5t^HStC`W!r24٢={g'学GR3nUqd'x-WR~TQA>AkCq$3BO&:hzxґ!S$D _? kM |0~xGp/va,d{Ca\킎vzZHdHnՖdbҍi-yG?|=ximAیc)TzDZd4=\dazs-j+|/twb`͋&Nxqvi`d?9i 'L(-գ`Rt#g׌jG%UcA \0(VH8|EraXU"SWD=+AI6HuF/ONmHU?>X+ ZQJڙ |7vP>[\=Z(V ٸs%/{oRaZxoc7<3٭G0OoOI%IkoWVlM{B'˯떩BۍY eүlЌcŎĕdIa Y&UYIcm,#|A1} S<; ;l`a~t@^y7g6ď|ZeTakF;֧[ӼBhZ3xʭ~wm)pT1`}2yy{⺇[}k޳R~O4RehU>\hrǥ"_}ɱWWga )aުO*62bx,}k٭bWt|͍zlGO:f?#p~xESC$9t.4t0CQEIc>Ww|O Kޑₜ;䶺 v| u8dftcgH㲁_j-(19-#{],>R v[Y2真e#DWshEK%ކç>앋PVE%{3}yj7s}vW9moMu =|B{np5M-ũJi;ҙS/zTg pvRwF}\8?0"9Vc(eA}8ڇƗM'ѯpc>,6)=m~ߎvԎj\Z"Fu" b럃I%%h>ԌB\eIoa 7fN2XMɾb9[?3g4Nʃ4)')fߵdߑj]7Q^ A>nI͌*3p?J֌/Tkb\ ̼9"́|3|!zhs<l_ \%H&p}$#ZBC ߉y<m %#*dRӗD\n!r0ѮZǧn.)QBk6=~r׆o!kz0 R-“0'G^sm9iVVǹ| ,¥ ߫PͰ6iXnn1Ey%mQRO?^/U~ KuwV,^Sa&tQ*nB{Ǧ\[4Ȣ#H"eT*;0E!U0k|^1թF{'B }ɰ"<lnݴIS%"o6*kCiăM]Gї9hE:Nx_M&d~ttco!Jq38+ t#U>M-,=I0Z@`Q(w%LLKId6~| W]=Q )]1Tb4;}z(ZB"o- %9/V;pSZS,$[nx3v8D̴nqB'1ekGxNxg{ OW۰{,J+A[C{ꬷt;cAͣw-yCm$)6;%L#;LC>=F- ssvn=vMg_^Y0pK *BoY&͔5.$?ޛNzwE|S\_ W_~C䪨iuO8Ѹh2c@4^m? FB}v hg5d;sosu=F:*D[XͅA~<_^UyiZ,ڣQQW_CCbEf+CuؓcR,vbC"6̚,=&3qYg;غK.K£"~u!9ul m‹'UxFV3z\opm U b">|ᔞ'ʟEF?eԎq,zUILk)`x֧hg걗JTnZ,Q {uLi='XG`@$*ujl 7s:T۔B>M66+Yԗ u5t-.*oGsPBKL'IIA}:ڣ $ED6nCd@q[s@4ݾ#OO(hi-ѣ-3n|YY=yjpb*NiJqy sONel D~tr+ b]#ڹ-}gd}d'Ei(S[ɗ}?3Ypdy :zuvGHF&j,6F\_%nf6!a;[0F#4Wj~F5mյY}һǩ#x'%ajQs9-[죷WVHDz^-EtێǪ 1k/ĎجOpuTqgt}qUGO+톮8ڵ#-uO hZ*}!SFSy#kß:E')MT>x_;J"՚s DɍD6axd`6`[ DZ?3uI\Ď;DzNK{9Py=xcVžg~,+eNmF}ю9N >֎%fYC]V;w~l3+x_񞬦oMnҴx9$8YiVLЫigF{v ɲX~r1kr)՛~ ͦ˗R֐d>S(2&b)GPk}%3`0YnA`}6ӯRsMgOjџ&1*'c؋{4vm|ݚcx/\7HXw2W] ]`wE3݃H6}-wŹw, ^T DcZ\_7c ОC \z484h$!+ɵQEl^S̈́'Ieuɹ(B@f__JOҚ O4 |Bih<\D(~PӉ i%1] Ygwx`KjqWqY˄@:TH $W-%+;=+"{8yUr(l˺Gɗ3x2!>T*iv۹^||sh{:{K>N@1jn2/ .ɰhNVQ8[ZKl"Ep>!_<]dxJng t_~ d#JF/WE{2VohiiT b/ӓb3Vitb+uy]ŚlƲ+yq7mI.\aXQ% ~É8i̯i QD(:?ճR&mrrx-G>_#)1̠=/[G:P{ɛyk.- CSy>jlY{AL4\Do3s%&`'JW6x^oTk2dzKCW<BOc5$fO!&Fs4*ȑ~!sNp C6fynl׀nF=MFXVOxZLzJy)/kGiD_£x 8UTNAzDJmbUXK uٗQ N pB+>E9/\p_YX o ]&e+r{ht#a9r,Igչ T:\"ʿNΑYWmRN: Yׇ,"dAᰦ9!Cr2V7$WÀo#av.*c7_?L:wq,! !vH2iVe䆋!bq4.pV("DtB/hDhH~T:`  9ieaY9tސjK0#~|d]>+T /wmvG?da:.QE ҏO#-OB2u1/*{DAyj</zgz8A,\x9m$觫/NjL}F ̚奧痏ѥ:'1}orxY9fJv҇k_zgI\ɑ}kdcЬs_kЧWt,~j-"hTlzbC{mHX,o3C$du~p$x)Fa GctVK zR "Ϝ5KӜkNՔa=)9c\ R\Dt.2t̽E!5UЪCX0R:emm%$J^\z]rWږd0C]V uVk,,qR7zACM=$_3[ftLHL}4N]P#׍.|p+OQbTfpP$"%nH|dYS{AoA[sy[̍JL5fM34 vDqI>j nm$/ zbtW0v,II` endstream endobj 496 0 obj << /Length1 1405 /Length2 6323 /Length3 0 /Length 7287 /Filter /FlateDecode >> stream xڍuTݶ-(AzWޑ^hL@z tTiE.EH;X9?ɷk FD@`Y4 ..$p!0X$%*T8A'4B`k`] d pP 0 pG ~s.PCC=Hf*DN`hW(!@}u] '࿈Pg,"ߝCJ@(~aa+ "( Pp ~ `csN('*lB#TR?=HJn@AWyoW/?+hᏴCXø#}w+H?0kO ^^p4?+ln$gǔ^@_!10PHFB(""- rPvh̟n= 9uW-[%0Kݐ0 u Ts!Hwjx#(bH: 7@`$7e5g$ a"[Y`9X.xs_5 3Q I zx9WoH8뷒 Ogڡ1_*%^wF8#~9rAܱ s`7o#^`b s|pT)̷ˎ( s_Cn7zR _F 1oyYdOh>u+o t#nLRT oR܇CxK--7adV.Jf#UK6o֔qHi9a 2P!{qjCVgGNN[di #6[vOb#,Z,āv.DЎ L1{lĊ̐!m!SWE֣r`'S+5Mq~zq vf,T(syշ85*ã8e_u~ˌfQj;'cd0(ϥf K-hve$-oU*,RWͅe܆0$fn;[d%X#@qYmtVua =(,iI\n~Sg:)qp); [U&K\@`i6Y(aOv0>嫛n &Ǝ_R|P"*b6;оU)W4.DžA\Xf'. V$!  „Ci>U驜Zu\pѴ[U8Α8'T[~ qBA 8hʈgG&r'j<\ʚ NUXU?fkgP歳;;@ۀ{rfPU@f)MuL ڝvHwܿg/7>:vɐ)r2d@u !" Tl3b; ?uB'K g)o=gՏ`9Mcn*~@GӒP^욍k}TA\5pzVڟ1ak d%3~f4_ n2c9`n8jIР|#RX*vy nF+A} }sߪ8PIcw>qlDA0ky[-ׯ;mV# P!7`y /$K{r:Vvp .8~F9=YJ9atd }M]}[4)w\M$["lNI3-,sK{vNR١Pދ[$smMbvӤκ+{ak|MlٛL˟k{H#NUn $,sc"^y$TFq 0&z}rT+BW64;+"+MHsT79EIz1"K3򆣌uسgST,Xeyk|Fm"ſE?+ Q*j~>b[uvzvU'fEbH"8J4:K_xTK.b|SUKM`j%V!L*){܀f0!j1dVLEASP (z̰Gf6T~2㪎-tküO/u95Bd=p'+L$TLȌ-̤u9=M!iLѢW jEDV%UyˬO SbtSxN|S8;y97UtVy-Rvbc;A<47,3>ʪ٘7٢:8,:5=D2Xfav-&>&8@ϬҒ5XrV[B@z)KR6JңxK ;4:"CaZ5Ww↪lg{@l0DH*%u'7kh6)--Sx5e ?MG}1 +5D^#ՎʝWꪁNBVw^qǿߊJBG{νɷWL];z*A_ ]]^_ȞB7|+K<7-5s*fëCSr8$uдNq0$Eǜg_+7w qnvjȪN[}si.%vБqRoK~stOVN(Sb`9{y5J~: ѩΘԹ-&|=(& J#VLh2?^\W(KxI߮a?IL7{׶Qt~ki=QI9)X>TҜa5\6x!t@ÈoJL:ĉwI}+0ڧ!~ŴYj[ߌĀ짵^K ejVo |D² %գt}ҟ[ٛsSZuוj=06~ˈEHdhw]J!9w>k5y{g9qlQrJ(i&OeJ$aM6wDpLqP&=-r03%!owS@Z8F$QuhJ:,3NØ{Dx{OvnҐְ`ΐj}1]ZCT4 t,$9dQ3Y*ls<7f] D'/ |e^^Z8 LhUaj]ISSu/ǚOFGSL4Otq 4f;c63cf/*>ʚ+t3џ7u>:g8<5Y&yʻ=%DxW\2ǭwx\ry8g51ώfݴ)Pn{(v$Yމͥj$'; \RK2JPq#ۧKf~?!;Fua5[do |$5"U/|}{_RTKa$k{iw(ޢ2(I՝ʽEYPhY&EyAQym_/bKw?t5d[A  I>5 [/nx&] 2\@a bE#;ڷN1c}3)JȬKZEY TIۓGW nHjo˹5kr.RAcwݼ2;7@ް=KN(DVki0L';v=i5c|x^_+%xk#S,Et_2"۰7su9FjT<"rDy}ȵ?ƹn]22jHn$GJ ;qrN)eBظ8a؋nGc0r$e\e9z1T-QSt }j>dVJIg|~#YNPM W'ׂ5uO{(_m%Yo eK|*J5d?5 y1@O\:z&+*f, "} B'vMY<]ڹs[{T=͐ RǺG;˖Hȗ!%w_-QȒ]8ZQn p6f%RX7h@ wzq#P]{X_lJSPO6ӵ%*"-L{>"*aJ2^e㩻||/ej$6ˆ&sdG-|=[bAMJUH*.L1CD63M\U;:XH] Z$f~'i-hN5STR:ce)W|&Hwc ϗߌʅ̳K2(&\F+_)~bt#*ދ=Xo}I@l}}qıxMt!My{*^(ܠ:Mjh̤/5S|+\w &VTZ?DrׯΙm6~4bho7-@h?;D7BI0̆DL$}5` ݻΈ[K]ݽU# endstream endobj 498 0 obj << /Length1 1306 /Length2 1345 /Length3 0 /Length 2180 /Filter /FlateDecode >> stream xڍS 8Tޱ]EOQ-O2AR*Yk̬1&Q;]RNH؅JEI]ӖP.]8g h9Y]O1l ōidpqQ St' OvX"E0+pfJ gfjA[eA:j I,8c(,%bb p |8DB(pp,"^BBqWL a`%q"ɐHJ$ֆF@$e`-$'K#N8<0>.$0 B R"Cy'WN ` liMt qH  |DulW2)P|(B?OlzN'J1.%KF2 f{gD0KI %L7hاAy|e<"2nCH_l0T܌`r 1<)D abL Dp8‡?R .a_;H4!\J0;1  6S U|B(B)[re)o3b˄qo~H{| ' !2ѷ^'"v?P\L0\{kBgH"$*:10O<8t\BF1 |LBR)4$b;'G>0 sIM1eL`~LK,qG D/a@QVCSOY7;9Vq5hi JۍvZ=F*w\ɏ+ܕi0o(/Ź.ީ-/!k$%i14TbJY饹6y2eҾ55o_ݹOgxvhҖݭ)vH>Tů4,g5Pi/Xgn5 7D7Պ:3ya AM5o|I_Ԑ'{wζbAOliEiGs 2_fj4rgz9Gf[Wk3}/J9h~?Uk|4R[ٜNTش@__vdݼcp"=Oy\ظ+t38cZs2.-ӱ('5u]팴^Hb+M:wUz.& [G6Z̸9!k&lĕԭR?:I=tm/#Xa RG"2dtOW'=nU$ǃ/:^-2YeINVyé<-GDUn+˝qcxitz8gdYBR%GMܸ}ŗʧns7xfkP*3SLP~PoT$\1 w7Wu}}flYSW-*Nyi/ }xzGxVQ³:3 yFœ9.^o2js> stream x\ms7r_1_\WeŗHNlGH_~}zvv]RXbfhQ.OkHvVq(HQ15 Yh`$:"XxQ.[ B i`t,X g7dЏs,DaƀxpAO!D4|ȁ@D}#)Ý m-z 8? * N^=3dyIe)aJʝШ|K\B:x*4sm8r&a-(r9sATyX h y͙v*lt4rAGJ Ef4*Bwn? l{s byp}}yƒb6/P R,-?Ekg S oM_:L9 - @, YE>T)1sC(?wɁ}WϷ 0avry4Z#=LGɌdR.b}'Ky~wcė)~,$DuOvj'jIK2 #5 wG7xv`S x}ٍ+vo1c$f!ȱh'=u+-i3^93K }͒#K^c뾼/EBsO^1 ::.&CGïΛ1s'Av6ߓаq_} ]iD0OBWC rεzOJkôkj'SCہӡ]'\cX>ِʩ&Yv= iz=t?x^m sz/?ޖ[>g﷥%ݨ"M͹4MK9ߥe!퓟.a1n|<|} }_Ex_~xu!O@͂lIp/nЛ{:|f!+/\/ʕ pc3n>\ݾ޾^p&tD8ZhiHn!9As )y?4 yGR1>8G9Z1ڄ6:csl69 5U;SEJwsur0g1qob+]qҸ .uSӡ04Ol{˅:P`,tT.օ&rN@O(lH=ɠ ;4e,r+f_Z)&ab8&I`$&YCf 54khЬYCa 1;yڰC6QQpIqAzRc9)Ͱxx1qjЋj)|x1ߠK5hp}x}vSGs=oZ7x*O|cy3/xcf>ycf ʡLz7PsTֹ*3<J9-nؒTevGkϵ;vbmhwjI+IS*}N姶[ǚ&K>PFR#뿻Ti&jRJI Rt}O*-SZR.J h'BRSGE["?wjt O*Z<{ S6+bR$TP9J+u4<] s]@ܩERG )GYlЖ$ ڀ4ț3{iuXJp8#AtRW,HXt#Lu~{ek*j-z ']Q˞x)b}lD"lp5-w}̊ڪTI<]]*[ XLn1PAG1Y!JݩuKc |jWqBm[^M ̭y1zbLMoc ,]K؂ӶhVhۄh6jIMJgK/t!9+pY3@11t'USUb)df˷ܚξ槢\t,Ox؏xaПVdӁ>fw-:y']һpe5.+P/Iqe)q~4w)y+W >K1af%lv$p6mEؒ7=4p?0M~(:b.vm+ 1PЃB34@ImLOw'}92gƤӶK~jG~کiar(}ݏ^N"g_svQh`r %*|ßhVYfepmvis5gDw5v3lEAkZy"h?ڊ5P(@Z%=h g{ϊ59ᓶ"hsVZD_ Ak9Vv @m<7ԳA'^)l) !<{4fpjƐCNn j]჻͏_AhyLC™re}qř_Q l0j l Tuk.[MeK/F 1Mڛ`g1G@˕u5>\جjvɟpG'8Su=K:cog=u~Rbe"fbA}`FD3.w;"*T~DG l;",AT0d%8&'1y )HpL2Ҧ$0e YI8ZaQ6[ rpȥȩd[h_/((ʹy(7~lE DX?e_9c3 eMgB83qcLc\;ŧ;8h-S6abO8Tsaj?l;Fops_5;k{56c9m}5`d'\=ߋ9\xr"đ2-B"-B"-B"-BqLWLi _lo^]_|{u]gh_˳_'_~Gy-fÏ O2?w 4ȟU%Tyr?m/t;ţpŻWxn˗oO5`M֙JŻח7?3$˷o5ח.!?Շb{p+7O/AK|ݟ{%s!ز[$ƹх hy,hJ Lwx9_u{IQy3z=uywqx;E_ǿ-eNO>E6ah$Ok>d?(KVIwt /ğhA^rf_X=;NjCl<}[_޿y:/70 Ɨ;0~5^}ؒxs+U^_-sgaK/S:F$>pbp+)f>  ? Q|712s8Wūm뒫c/7ۂ`߰^/Er= =`dϝHbLM9Knŷ=Ο?>?4+aoDKrg/Ǚ?չz#\_lˏNj)$>7Hcpzn~{}[|z;knqջZxy׺w~Nvwi!{_D endstream endobj 503 0 obj << /Producer (pdfTeX-1.40.20) /Creator (TeX) /CreationDate (D:20231114234059-06'00') /ModDate (D:20231114234059-06'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) kpathsea version 6.3.1) >> endobj 500 0 obj << /Type /ObjStm /N 11 /First 77 /Length 369 /Filter /FlateDecode >> stream xڝ]k0+.EٴTp좛E c^/i()BNNz<}Ci\|@ ]"h0 2^>:ʿ*Bn&:L>:}^wa@F(-?l_ڏZ(p &5"tm] ~>xh~ۻVP 3^>r ݾޖ\_kHuw?Fu8ø5yp*n<ϓmZ24OԬ lS+ `2wy+ʖ[ aW]NH)WܦvFڿj;.pRUs?9 L3Gs#Y/ endstream endobj 504 0 obj << /Type /XRef /Index [0 505] /Size 505 /W [1 3 1] /Root 502 0 R /Info 503 0 R /ID [<3C0857C35D47EF7BA436AA9DEB6E5650> <3C0857C35D47EF7BA436AA9DEB6E5650>] /Length 1498 /Filter /FlateDecode >> stream xwtW|HИ ZZjU AQZ)U(*EXQu|y9e7̹hVR4 Eٽ@4u]tPTn&uC"0neGE7hZ"\\(#"EfsEgYD䧾Md5WᄄՊ/}5DNsn\Ҿ+b̥4|"4qތR@7׫&sn(hnP-, E̍HbC>Ɨab4&aZcڿV\% g`Uuf߄9Yan.g<,JuaI/X,n@_l ,+bj5cak+>/R+ખv\oßJԍɢ('^6jFoN[ߊpg#*8jgoܿ }Fê𨴸aT= 睜Q`s! ta!SEo2 TEM, D {Yr\r/P ₲Uh>'ZPӭYn//0}hJ 1F v 8ѳol:3WLPO&'^pl(6sl nR; ž sɹ5aR6_[pk K|Y:+caNͰJk^kt֪֩~P m*Mav%lU#a6q l7צQ Ui5Ey Q혢vP$O*`N8+q{[w^5~A*K\G]Uj}ו:7߇["梅 1{OQWEs KgU :`O.g{>`d?XZaTlN_Dk 2s)Q\(A"d%A j 'A.n 7'/C{ 8V/ *qZ[NnARނZ%|}V+FV' 2Vg J[ͷXKIP*?W$ endstream endobj startxref 221496 %%EOF mcmc/inst/doc/bfst.R0000644000176200001440000001534214525054753014013 0ustar liggesusers### R code from vignette source 'bfst.Rnw' ################################################### ### code chunk number 1: foo ################################################### options(keep.source = TRUE, width = 65) ################################################### ### code chunk number 2: library ################################################### library(mcmc) ################################################### ### code chunk number 3: baz ################################################### baz <- library(help = "mcmc") baz <- baz$info[[1]] baz <- baz[grep("Version", baz)] baz <- sub("^Version: *", "", baz) bazzer <- paste(R.version$major, R.version$minor, sep = ".") ################################################### ### code chunk number 4: set-seed ################################################### set.seed(42) ################################################### ### code chunk number 5: frequentist ################################################### data(logit) out <- glm(y ~ x1 + x2 + x3 + x4, data = logit, family = binomial, x = TRUE) summary(out) ################################################### ### code chunk number 6: models ################################################### varnam <- names(coefficients(out)) varnam <- varnam[varnam != "(Intercept)"] nvar <- length(varnam) models <- NULL foo <- seq(0, 2^nvar - 1) for (i in 1:nvar) { bar <- foo %/% 2^(i - 1) bar <- bar %% 2 models <- cbind(bar, models, deparse.level = 0) } colnames(models) <- varnam models ################################################### ### code chunk number 7: neighbor ################################################### neighbors <- matrix(FALSE, nrow(models), nrow(models)) for (i in 1:nrow(neighbors)) { for (j in 1:ncol(neighbors)) { foo <- models[i, ] bar <- models[j, ] if (sum(foo != bar) == 1) neighbors[i, j] <- TRUE } } ################################################### ### code chunk number 8: ludfun ################################################### modmat <- out$x y <- logit$y ludfun <- function(state, log.pseudo.prior) { stopifnot(is.numeric(state)) stopifnot(length(state) == ncol(models) + 2) icomp <- state[1] stopifnot(icomp == as.integer(icomp)) stopifnot(1 <= icomp && icomp <= nrow(models)) stopifnot(is.numeric(log.pseudo.prior)) stopifnot(length(log.pseudo.prior) == nrow(models)) beta <- state[-1] inies <- c(TRUE, as.logical(models[icomp, ])) beta.logl <- beta beta.logl[! inies] <- 0 eta <- as.numeric(modmat %*% beta.logl) logp <- ifelse(eta < 0, eta - log1p(exp(eta)), - log1p(exp(- eta))) logq <- ifelse(eta < 0, - log1p(exp(eta)), - eta - log1p(exp(- eta))) logl <- sum(logp[y == 1]) + sum(logq[y == 0]) logl + sum(dnorm(beta, 0, 2, log = TRUE)) + log.pseudo.prior[icomp] } ################################################### ### code chunk number 9: try1 ################################################### state.initial <- c(nrow(models), out$coefficients) qux <- rep(0, nrow(models)) out <- temper(ludfun, initial = state.initial, neighbors = neighbors, nbatch = 1000, blen = 100, log.pseudo.prior = qux) names(out) out$time ################################################### ### code chunk number 10: what ################################################### ibar <- colMeans(out$ibatch) ibar ################################################### ### code chunk number 11: adjust ################################################### qux <- qux + pmin(log(max(ibar) / ibar), 10) qux <- qux - min(qux) qux ################################################### ### code chunk number 12: iterate ################################################### lout <- suppressWarnings(try(load("bfst1.rda"), silent = TRUE)) if (inherits(lout, "try-error")) { qux.save <- qux time.save <- out$time repeat{ out <- temper(out, log.pseudo.prior = qux) ibar <- colMeans(out$ibatch) qux <- qux + pmin(log(max(ibar) / ibar), 10) qux <- qux - min(qux) qux.save <- rbind(qux.save, qux, deparse.level = 0) time.save <- rbind(time.save, out$time, deparse.level = 0) if (max(ibar) / min(ibar) < 2) break } save(out, qux, qux.save, time.save, file = "bfst1.rda") } else { .Random.seed <- out$final.seed } print(qux.save, digits = 3) print(qux, digits = 3) apply(time.save, 2, sum) ################################################### ### code chunk number 13: accept-i-x ################################################### print(out$accepti, digits = 3) print(out$acceptx, digits = 3) ################################################### ### code chunk number 14: accept-i-min ################################################### min(as.vector(out$accepti), na.rm = TRUE) ################################################### ### code chunk number 15: scale ################################################### out <- temper(out, scale = 0.5, log.pseudo.prior = qux) time.save <- rbind(time.save, out$time, deparse.level = 0) print(out$acceptx, digits = 3) ################################################### ### code chunk number 16: try6 ################################################### lout <- suppressWarnings(try(load("bfst2.rda"), silent = TRUE)) if (inherits(lout, "try-error")) { out <- temper(out, blen = 10 * out$blen, log.pseudo.prior = qux) save(out, file = "bfst2.rda") } else { .Random.seed <- out$final.seed } time.save <- rbind(time.save, out$time, deparse.level = 0) foo <- apply(time.save, 2, sum) foo.min <- floor(foo[1] / 60) foo.sec <- foo[1] - 60 * foo.min c(foo.min, foo.sec) ################################################### ### code chunk number 17: doit ################################################### log.10.unnorm.bayes <- (qux - log(colMeans(out$ibatch))) / log(10) k <- seq(along = log.10.unnorm.bayes)[log.10.unnorm.bayes == min(log.10.unnorm.bayes)] models[k, ] log.10.bayes <- log.10.unnorm.bayes - log.10.unnorm.bayes[k] log.10.bayes ################################################### ### code chunk number 18: doit-se-one ################################################### fred <- var(out$ibatch) / out$nbatch sally <- colMeans(out$ibatch) mcse.log.10.bayes <- (1 / log(10)) * sqrt(diag(fred) / sally^2 - 2 * fred[ , k] / (sally * sally[k]) + fred[k, k] / sally[k]^2) mcse.log.10.bayes foompter <- cbind(models, log.10.bayes, mcse.log.10.bayes) round(foompter, 5) ################################################### ### code chunk number 19: doit-too ################################################### ibar <- colMeans(out$ibatch) herman <- sweep(out$ibatch, 2, ibar, "/") herman <- sweep(herman, 1, herman[ , k], "-") mcse.log.10.bayes.too <- (1 / log(10)) * apply(herman, 2, sd) /sqrt(out$nbatch) all.equal(mcse.log.10.bayes, mcse.log.10.bayes.too) mcmc/inst/doc/debug.Rnw0000644000176200001440000003135013636316205014500 0ustar liggesusers \documentclass{article} \usepackage{amstext} % \VignetteIndexEntry{Debugging MCMC Code} \begin{document} <>= options(keep.source = TRUE, width = 60) foo <- packageDescription("mcmc") @ \title{Debugging MCMC Code} \author{Charles J. Geyer} \maketitle \section{Introduction} This document discusses debugging Markov chain Monte Carlo code using the R contributed package \texttt{mcmc} (Version \Sexpr{foo$Version}) for examples. It also documents the debugging output of the functions \texttt{mcmc} and \texttt{temper}. Debugging MCMC code if the code is taken as a black box is basically impossible. In interesting examples, the only thing one knows about the equilibrium distribution of an MCMC sampler is what one learns from the samples. This obviously doesn't help with testing. If the sampler is buggy, then the only thing you know about the equilibrium distribution is wrong, but if you don't know it is buggy, then you don't know it is wrong. So you don't know anything. There is no way to tell whether random output has the correct distribution when you don't know anything about the distribution it is supposed to have. The secret to debugging MCMC code lies in two principles: \begin{itemize} \item take the randomness out, and \item expose the innards. \end{itemize} The first slogan means consider the algorithm a deterministic function of the elementary pseudo-random numbers that are trusted (for example, the outputs of the R random number generators, which you aren't responsible for debugging and are also well tested). The second slogan means output, at least for debugging purposes, enough intermediate state so that testing is straightforward. For a Gibbs sampler, this means outputting all of the trusted elementary pseudo-random numbers used, the state before and after each elementary Gibbs update, and which update is being done if a random scan is used. Also one needs to output the initial seeds of the pseudo-random number generator (this is true for all situations and will not be mentioned again). For a Metropolis-Hastings sampler, this means outputting all of the trusted elementary pseudo-random numbers used, the state before and after each elementary Metropolis-Hastings update, the proposal for that update, the Hastings ratio for that update, decision (accept or reject) in that update. For more complicated MCMC samplers, there is more ``innards'' to ``expose'' (see the discussion of the \texttt{temper} function below), but you get the idea. You can't output too much debugging information. \section{The Metrop Function} The R function \texttt{metrop} in the \texttt{mcmc} package has an argument \verb@debug = FALSE@ that when \verb@TRUE@ causes extra debugging information to be output. Let \texttt{niter} be the number of iterations \verb@nbatch * blen * nspac@, and let \texttt{d} be the dimension of the state vector. The result of invoking \texttt{metrop} is a list. When \verb@debug = TRUE@ it has the following additional components \begin{itemize} \item \texttt{current}, an \texttt{niter} by \texttt{d} matrix of mode \verb@"numeric"@, the state before iteration \texttt{i} is \verb@current[i, ]@ \item \texttt{proposal}, an \texttt{niter} by \texttt{d} matrix of mode \verb@"numeric"@, the proposal for iteration \texttt{i} is \verb@proposal[i, ]@ \item \texttt{z}, an \texttt{niter} by \texttt{d} matrix of mode \verb@"numeric"@, the vector of standard normal random variates used to generate the proposal for iteration \texttt{i} is \verb@z[i, ]@ \item \texttt{log.green}, a vector of length \texttt{niter} and mode \verb@"numeric"@, the logarithm of the Hastings ratio for each iteration \item \texttt{u}, a vector of length \texttt{niter} and mode \verb@"numeric"@, the $\text{Uniform}(0, 1)$ random variate compared to the Hastings ratio for each iteration or \texttt{NA} if none is needed (when the log Hastings ratio is nonnegative) \item \texttt{debug.accept}, a vector of length \texttt{niter} and mode \verb@"logical"@, the decision for each iteration, accept the proposal (\texttt{TRUE}) or reject it (\texttt{FALSE}) \end{itemize} (The components \texttt{z} and \texttt{debug.accept} were added in version 0.7-3 of the \texttt{mcmc} package. Before that only the others were output.) Two components of the list returned by the \texttt{metrop} function always (whether \verb@debug = TRUE@ or \verb@debug = FALSE@) are also necessary for debugging. They are \begin{itemize} \item \texttt{initial.seed} the value of the variable \texttt{.Random.seed} that contains the seeds of the R random number generator system before invocation of the \texttt{metrop} function \item \texttt{final}, a vector of length \texttt{d} and mode \verb@"numeric"@, the state after the last iteration \end{itemize} All of the files in the \texttt{tests} directory of the source for the package (not installed but found in the source tarball on CRAN) test the \texttt{metrop} function except those beginning \texttt{temp}, which test the \texttt{temper} function. Since these tests were written many years ago, are spread out over many files, and are not commented, we will not describe them in detail. Suffice it to say that they check every aspect of the functioning of the \texttt{metrop} function. \section{The Temper Function} The R function \texttt{temper} in the \texttt{mcmc} package has an argument \verb@debug = FALSE@ that when \verb@TRUE@ causes extra debugging information to be output. Let \texttt{niter} be the number of iterations \verb@nbatch * blen * nspac@, let \texttt{d} be the dimension of the state vector, and let \texttt{ncomp} be the number of components of the tempering mixture. The result of invoking \texttt{temper} is a list. When \verb@debug = TRUE@ and \verb@parallel = TRUE@ it has the following additional components % which % unif.which % state % log.hastings % unif.hastings % proposal % acceptd % norm % unif.choose % coproposal \begin{itemize} \item \texttt{which}, a vector of length \texttt{niter} and mode \verb@"logical"@ the type of update for each iteration, within component (\texttt{TRUE}) or swap components (\texttt{FALSE}). \item \texttt{unif.which}, a vector of length \texttt{niter} and mode \verb@"numeric"@, the $\text{Uniform}(0, 1)$ random variate used to decide which type of update is done. \item \texttt{state}, an \texttt{niter} by \texttt{ncomp} by \texttt{d} array of mode \verb@"numeric"@, the state before iteration \texttt{i} is \verb@state[i, , ]@ \item \texttt{proposal}, an \texttt{niter} by \verb@d + 1@ matrix of mode \verb@"numeric"@, the proposal for iteration \texttt{i} is \verb@proposal[i, ]@ (explanation below) \item \texttt{coproposal}, an \texttt{niter} by \verb@d + 1@ matrix of mode \verb@"numeric"@, the proposal for iteration \texttt{i} is \verb@coproposal[i, ]@ (explanation below) \item \texttt{log.hastings}, a vector of length \texttt{niter} and mode \verb@"numeric"@, the logarithm of the Hastings ratio for each iteration \item \texttt{unif.hastings}, a vector of length \texttt{niter} and mode \verb@"numeric"@, the $\text{Uniform}(0, 1)$ random variate compared to the Hastings ratio for each iteration or \texttt{NA} if none is needed (when the log Hastings ratio is nonnegative) \item \texttt{acceptd}, a vector of length \texttt{niter} and mode \verb@"logical"@, the decision for each iteration, accept the proposal (\texttt{TRUE}) or reject it (\texttt{FALSE}) \item \texttt{norm}, an \texttt{niter} by \texttt{d} matrix of mode \verb@"numeric"@, the vector of standard normal random variates used to generate the proposal for iteration \texttt{i} is \verb@z[i, ]@ unless none are needed (for swap updates) when it is \texttt{NA} \item \texttt{unif.choose}, an \texttt{niter} by 2 matrix of mode \verb@"numeric"@, the vector of $\text{Uniform}(0, 1)$ random variates used to choose the components to update in iteration \texttt{i} is \verb@unif.choose[i, ]@; in a swap update two are used; in a within-component update only one is used and the second is \texttt{NA} \end{itemize} In a within-component update, one component say \texttt{j} is chosen for update. The \emph{coproposal} is the current value of the state for this component, which is a vector of length \verb@d + 1@, the first component of which is \texttt{j} and the rest of which is \verb@state[i, j, ]@ if we are in iteration \texttt{i}. The \emph{proposal} is a similar vector, the first component of which is again \texttt{j} and the rest of which is a multivariate normal random vector centered at \verb@state[i, j, ]@. The coproposal is the current state; the proposal is the possible value (if accepted) of the state at the next time. In a swap update, two components say \texttt{j1} and \texttt{j2} are chosen for update. Strictly, speaking the coproposal is the pair of vectors \verb@c(j1, state[i, j1, ])@ and \verb@c(j2, state[i, j2, ])@ and the proposal is these swapped, that is, the pair of vectors \verb@c(j2, state[i, j1, ])@ and \verb@c(j1, state[i, j2, ])@ if we are in iteration \texttt{i}. Since, however, there is a lot of redundant information here, the vector \verb@c(j1, state[i, j1, ])@ is output as \verb@coproposal[i, ]@ and the vector \verb@c(j2, state[i, j2, ])@ is output as \verb@proposal[i, ]@. When \verb@debug = TRUE@ and \verb@parallel = FALSE@ the result of invoking \texttt{temper} is a list having the following additional components % which % unif.which % state % log.hastings % unif.hastings % proposal % acceptd % norm % unif.choose \begin{itemize} \item \texttt{which}, a vector of length \texttt{niter} and mode \verb@"logical"@ the type of update for each iteration, within component (\texttt{TRUE}) or jump from one component to another (\texttt{FALSE}). \item \texttt{unif.which}, a vector of length \texttt{niter} and mode \verb@"numeric"@, the $\text{Uniform}(0, 1)$ random variate used to decide which type of update is done. \item \texttt{state}, an \texttt{niter} by \verb@d + 1@ matrix of mode \verb@"numeric"@, the state before iteration \texttt{i} is \verb@state[i, ]@ \item \texttt{proposal}, an \texttt{niter} by \verb@d + 1@ matrix of mode \verb@"numeric"@, the proposal for iteration \texttt{i} is \verb@proposal[i, ]@ \item \texttt{log.hastings}, a vector of length \texttt{niter} and mode \verb@"numeric"@, the logarithm of the Hastings ratio for each iteration \item \texttt{unif.hastings}, a vector of length \texttt{niter} and mode \verb@"numeric"@, the $\text{Uniform}(0, 1)$ random variate compared to the Hastings ratio for each iteration or \texttt{NA} if none is needed (when the log Hastings ratio is nonnegative) \item \texttt{acceptd}, a vector of length \texttt{niter} and mode \verb@"logical"@, the decision for each iteration, accept the proposal (\texttt{TRUE}) or reject it (\texttt{FALSE}) \item \texttt{norm}, an \texttt{niter} by \texttt{d} matrix of mode \verb@"numeric"@, the vector of standard normal random variates used to generate the proposal for iteration \texttt{i} is \verb@z[i, ]@ unless none are needed (for jump updates) when it is \texttt{NA} \item \texttt{unif.choose}, a vector of length \texttt{niter} and mode \verb@"numeric"@, the $\text{Uniform}(0, 1)$ random variates used to choose the component to update in iteration \texttt{i} is \verb@unif.choose[i, ]@; in a jump update one is used; in a within-component update none is used and \texttt{NA} is output \end{itemize} All of the files in the \texttt{tests} directory of the source for the package (not installed but found in the source tarball on CRAN) beginning \texttt{temp} test the \texttt{temper} function. They check every aspect of the functioning of the \texttt{temper} function. In the file \texttt{temp-par.R} in the \texttt{tests} directory, the following checks are made according to the comments in that file \begin{enumerate} \item check decision about within-component or jump/swap \item check proposal and coproposal are actually current state or part thereof \item check hastings ratio calculated correctly \item check hastings rejection decided correctly \item check acceptance carried out or not (according to decision) correctly \item check within-component proposal \item check swap proposal \item check standard normal and uniform random numbers are as purported \item check batch means \item check acceptance rates \item check scale vector \item check scale matrix \item check scale list \item check outfun \end{enumerate} In the file \texttt{temp-ser.R} in the \texttt{tests} directory, the all of the same checks are made according to the comments in that file except for check number 2 above, which would make no sense because there is no \texttt{coproposal} component in the serial (\verb@parallel = FALSE@) case. \end{document} mcmc/inst/doc/debug.R0000644000176200001440000000037614525054753014144 0ustar liggesusers### R code from vignette source 'debug.Rnw' ################################################### ### code chunk number 1: foo ################################################### options(keep.source = TRUE, width = 60) foo <- packageDescription("mcmc") mcmc/inst/doc/demo.R0000644000176200001440000002770614525054770014007 0ustar liggesusers### R code from vignette source 'demo.Rnw' ################################################### ### code chunk number 1: foo ################################################### options(keep.source = TRUE, width = 60) ################################################### ### code chunk number 2: frequentist ################################################### library(mcmc) data(logit) out <- glm(y ~ x1 + x2 + x3 + x4, data = logit, family = binomial, x = TRUE) summary(out) ################################################### ### code chunk number 3: log.unnormalized.posterior ################################################### lupost_factory <- function(x, y) function(beta) { eta <- as.numeric(x %*% beta) logp <- ifelse(eta < 0, eta - log1p(exp(eta)), - log1p(exp(- eta))) logq <- ifelse(eta < 0, - log1p(exp(eta)), - eta - log1p(exp(- eta))) logl <- sum(logp[y == 1]) + sum(logq[y == 0]) return(logl - sum(beta^2) / 8) } lupost <- lupost_factory(out$x, out$y) ################################################### ### code chunk number 4: metropolis-try-1 ################################################### set.seed(42) # to get reproducible results beta.init <- as.numeric(coefficients(out)) out <- metrop(lupost, beta.init, 1e3) names(out) out$accept ################################################### ### code chunk number 5: metropolis-try-2 ################################################### out <- metrop(out, scale = 0.1) out$accept out <- metrop(out, scale = 0.3) out$accept out <- metrop(out, scale = 0.5) out$accept out <- metrop(out, scale = 0.4) out$accept ################################################### ### code chunk number 6: metropolis-try-3 ################################################### out <- metrop(out, nbatch = 1e4) t.test(out$accept.batch)$conf.int out$time ################################################### ### code chunk number 7: fig1too ################################################### plot(ts(out$batch)) ################################################### ### code chunk number 8: fig1 ################################################### plot(ts(out$batch)) ################################################### ### code chunk number 9: fig2too ################################################### acf(out$batch) ################################################### ### code chunk number 10: fig2 ################################################### acf(out$batch) ################################################### ### code chunk number 11: metropolis-try-4 ################################################### out <- metrop(out, nbatch = 100, blen = 100, outfun = function(z) c(z, z^2)) t.test(out$accept.batch)$conf.int out$time ################################################### ### code chunk number 12: metropolis-batch ################################################### apply(out$batch, 2, mean) ################################################### ### code chunk number 13: metropolis-batch-too ################################################### foo <- apply(out$batch, 2, mean) mu <- foo[1:5] sigmasq <- foo[6:10] - mu^2 mu sigmasq ################################################### ### code chunk number 14: metropolis-mcse-mu ################################################### mu.mcse <- apply(out$batch[ , 1:5], 2, sd) / sqrt(out$nbatch) mu.mcse ################################################### ### code chunk number 15: metropolis-mcse-sigmasq ################################################### u <- out$batch[ , 1:5] v <- out$batch[ , 6:10] ubar <- apply(u, 2, mean) vbar <- apply(v, 2, mean) deltau <- sweep(u, 2, ubar) deltav <- sweep(v, 2, vbar) foo <- sweep(deltau, 2, ubar, "*") sigmasq.mcse <- sqrt(apply((deltav - 2 * foo)^2, 2, mean) / out$nbatch) sigmasq.mcse ################################################### ### code chunk number 16: metropolis-mcse-sigmasq-too ################################################### sqrt(mean(((v[ , 2] - vbar[2]) - 2 * ubar[2] * (u[ , 2] - ubar[2]))^2) / out$nbatch) ################################################### ### code chunk number 17: metropolis-mcse-sigma ################################################### sigma <- sqrt(sigmasq) sigma.mcse <- sigmasq.mcse / (2 * sigma) sigma sigma.mcse ################################################### ### code chunk number 18: metropolis-try-5 ################################################### out <- metrop(out, nbatch = 500, blen = 400) t.test(out$accept.batch)$conf.int out$time foo <- apply(out$batch, 2, mean) mu <- foo[1:5] sigmasq <- foo[6:10] - mu^2 mu sigmasq mu.mcse <- apply(out$batch[ , 1:5], 2, sd) / sqrt(out$nbatch) mu.mcse u <- out$batch[ , 1:5] v <- out$batch[ , 6:10] ubar <- apply(u, 2, mean) vbar <- apply(v, 2, mean) deltau <- sweep(u, 2, ubar) deltav <- sweep(v, 2, vbar) foo <- sweep(deltau, 2, ubar, "*") sigmasq.mcse <- sqrt(apply((deltav - 2 * foo)^2, 2, mean) / out$nbatch) sigmasq.mcse sigma <- sqrt(sigmasq) sigma.mcse <- sigmasq.mcse / (2 * sigma) sigma sigma.mcse ################################################### ### code chunk number 19: tab1 ################################################### foo <- rbind(mu, mu.mcse) dimnames(foo) <- list(c("estimate", "MCSE"), c("constant", paste("$x_", 1:4, "$", sep = ""))) library(xtable) print(xtable(foo, digits = rep(4, 6), align = c("l", rep("c", 5))), floating = FALSE, caption.placement = "top", sanitize.colnames.function = function(x) return(x)) ################################################### ### code chunk number 20: tab1 ################################################### foo <- rbind(sigmasq, sigmasq.mcse) dimnames(foo) <- list(c("estimate", "MCSE"), c("constant", paste("$x_", 1:4, "$", sep = ""))) library(xtable) print(xtable(foo, digits = rep(4, 6), align = c("l", rep("c", 5))), floating = FALSE, caption.placement = "top", sanitize.colnames.function = function(x) return(x)) ################################################### ### code chunk number 21: tab1 ################################################### foo <- rbind(sigma, sigma.mcse) dimnames(foo) <- list(c("estimate", "MCSE"), c("constant", paste("$x_", 1:4, "$", sep = ""))) library(xtable) print(xtable(foo, digits = rep(4, 6), align = c("l", rep("c", 5))), floating = FALSE, caption.placement = "top", sanitize.colnames.function = function(x) return(x)) ################################################### ### code chunk number 22: time ################################################### cat(out$time[1], "\n") ################################################### ### code chunk number 23: x ################################################### n <- 2e4 rho <- 0.99 x <- arima.sim(model = list(ar = rho), n = n) ################################################### ### code chunk number 24: figgamtoo ################################################### out <- initseq(x) plot(seq(along = out$Gamma.pos) - 1, out$Gamma.pos, xlab = "k", ylab = expression(Gamma[k]), type = "l") lines(seq(along = out$Gamma.dec) - 1, out$Gamma.dec, lty = "dotted") lines(seq(along = out$Gamma.con) - 1, out$Gamma.con, lty = "dashed") ################################################### ### code chunk number 25: figgam ################################################### out <- initseq(x) plot(seq(along = out$Gamma.pos) - 1, out$Gamma.pos, xlab = "k", ylab = expression(Gamma[k]), type = "l") lines(seq(along = out$Gamma.dec) - 1, out$Gamma.dec, lty = "dotted") lines(seq(along = out$Gamma.con) - 1, out$Gamma.con, lty = "dashed") ################################################### ### code chunk number 26: assvar ################################################### out$var.con (1 + rho) / (1 - rho) * 1 / (1 - rho^2) ################################################### ### code chunk number 27: batx ################################################### blen <- 5 x.batch <- apply(matrix(x, nrow = blen), 2, mean) bout <- initseq(x.batch) ################################################### ### code chunk number 28: figgambattoo ################################################### plot(seq(along = bout$Gamma.con) - 1, bout$Gamma.con, xlab = "k", ylab = expression(Gamma[k]), type = "l") ################################################### ### code chunk number 29: figgambat ################################################### plot(seq(along = bout$Gamma.con) - 1, bout$Gamma.con, xlab = "k", ylab = expression(Gamma[k]), type = "l") ################################################### ### code chunk number 30: compvar ################################################### out$var.con bout$var.con * blen ################################################### ### code chunk number 31: ci-con ################################################### mean(x) + c(-1, 1) * qnorm(0.975) * sqrt(out$var.con / length(x)) mean(x.batch) + c(-1, 1) * qnorm(0.975) * sqrt(bout$var.con / length(x.batch)) ################################################### ### code chunk number 32: log.unnormalized.posterior-dot-dot-dot ################################################### lupost <- function(beta, x, y) { eta <- as.numeric(x %*% beta) logp <- ifelse(eta < 0, eta - log1p(exp(eta)), - log1p(exp(- eta))) logq <- ifelse(eta < 0, - log1p(exp(eta)), - eta - log1p(exp(- eta))) logl <- sum(logp[y == 1]) + sum(logq[y == 0]) return(logl - sum(beta^2) / 8) } ################################################### ### code chunk number 33: metropolis-try-dot-dot-dot ################################################### out <- glm(y ~ x1 + x2 + x3 + x4, data = logit, family = binomial, x = TRUE) x <- out$x y <- out$y out <- metrop(lupost, beta.init, 1e3, x = x, y = y) out$accept out <- metrop(out, scale = 0.1, x = x, y = y) out$accept out <- metrop(out, scale = 0.3, x = x, y = y) out$accept out <- metrop(out, scale = 0.5, x = x, y = y) out$accept out <- metrop(out, scale = 0.4, x = x, y = y) out$accept ################################################### ### code chunk number 34: outfun-dot-dot-dot ################################################### outfun <- function(z, ...) c(z, z^2) ################################################### ### code chunk number 35: outfun-try-dot-dot-dot ################################################### out <- metrop(out, nbatch = 100, blen = 100, outfun = outfun, x = x, y = y) out$accept ################################################### ### code chunk number 36: functions-global ################################################### lupost <- function(beta) { eta <- as.numeric(x %*% beta) logp <- ifelse(eta < 0, eta - log1p(exp(eta)), - log1p(exp(- eta))) logq <- ifelse(eta < 0, - log1p(exp(eta)), - eta - log1p(exp(- eta))) logl <- sum(logp[y == 1]) + sum(logq[y == 0]) return(logl - sum(beta^2) / 8) } outfun <- function(z) c(z, z^2) ################################################### ### code chunk number 37: doit-global ################################################### out <- metrop(lupost, beta.init, 1e3) out$accept out <- metrop(out, scale = 0.1) out$accept out <- metrop(out, scale = 0.3) out$accept out <- metrop(out, scale = 0.5) out$accept out <- metrop(out, scale = 0.4) out$accept out <- metrop(out, nbatch = 100, blen = 100, outfun = outfun) out$accept ################################################### ### code chunk number 38: fred ################################################### fred <- function(y) function(x) x + y fred(2)(3) ################################################### ### code chunk number 39: currying ################################################### lupost_factory <- function(x, y) function(beta) { eta <- as.numeric(x %*% beta) logp <- ifelse(eta < 0, eta - log1p(exp(eta)), - log1p(exp(- eta))) logq <- ifelse(eta < 0, - log1p(exp(eta)), - eta - log1p(exp(- eta))) logl <- sum(logp[y == 1]) + sum(logq[y == 0]) return(logl - sum(beta^2) / 8) } lupost <- lupost_factory(x, y) lupost(beta.init) ################################################### ### code chunk number 40: currying-too ################################################### lupost_factory(x, y)(beta.init) mcmc/inst/doc/demo.pdf0000644000176200001440000137627014525054770014363 0ustar liggesusers%PDF-1.5 % 3 0 obj << /Length 1401 /Filter /FlateDecode >> stream xڭWKoFW R  (BK+*IVwfg)[Ћ57]&"r Ù62"efr;wHPBXE*}QoEǮ˶M,D,XY$i*Y.Qi(rmUu0ů~&J RFTLeAT׋4]Yk_PRqqB c>vR~ 49 ~Ƴ<fMvl۹uRNJmi- /I*Ӹ*]%Vj|^A}[="xSը4@񻰔ӥ.y z6T?Pe(^M[E'˫x:;,>APމU|7D jU##z0@|6 11ٔ/ кͦ\G<#YN/q f4U;bv K/Q}#;(\rc6fڌ/̟dk2 90&HkA4S@bIƵ:jK2%Tv,Q5 E#0ެ SdsG:9EqlEf !qD"Xl> t"ĕ'I2S4&Tͪ],$)M1J{<5%zqΞQz9 ,WeP!ˮm7m⯻>$]m$0iaW+f- 6OIZRv7c†$6%[v8Mĕ8a'?Ϙ1yXCJ`=Xo|s\=`,/Ÿ"|r|o endstream endobj 14 0 obj << /Length 2248 /Filter /FlateDecode >> stream xko $(X{wM@ȇ˥%b"e:-;|IYvv^;|suZzƥdFۙVvv^|((|՛vݲ/xPe MdMZ%MV_hB?\[ ))+5[pЛ}3_H&i[&y@EYm7 2׋)6I) ` wY @̽n`T+Z]2/=`<+TkKp> N DҖ5ٝέ3偖:lyFj̳ ٗ29mp 4ut.}A^=>OH~M>Ϊp.ą;p|@,K0G%T /V)i'+3Or_wXS8N1ME!Dȕ]ڒy2 p"_nhD`X{2#m 3͔#i,Km}v)Ar@0eJWm~ulPN8킞n/ip:u(vU2ѣ`C8^8q~ 0*[:D˯P"*k.(0N:Eiez^n+߹ ;) vϙ>r<)*Rz \[wゥ~MOQwзǘRUq#I=nEO=gL{Sc?jټ `H /ZCK U[IAp@p XaΡR\ӗ_ΜΎt`2}9.%eDyWl߸nr&4Le,b͗aIEX' WZ !fFuIjw,b! c%1%s<16lSsi=/d&AÌT'`-DDg Y|J2T"]|wuq{GLDiϤ,ax!`,v;(a] ^:T`.88R3gjҀljҥ#]NH/Α>Ğt3‡SsQqMuXyL[{J2bl‰ӵQ'UYT,/bOGv=\S}5_8O>~Uh pwAjn&H/!(jz>1U"F29+])₤cŌ4 $q$.+49mȶ,oVaTg>i}sdsY7 'xh#'G/ό ?ˌN2cls_hZMMwPQ~u{sjQ@wgٔ~'a31q=;PTc2 \oIʓGԐk`ӫMd]9j%xw܌`PLٳVe@ӏ2' Z#5O9߯'H+}iP[f&KJۦp֞%eצ(*5}M1,' p;.l- `bS^K\pEx/8Xa5- uP-k[gjL y{QvAwj]# F/.z֙k7ӷO Ϝ8fxj X_.IGlSc;!K4s endstream endobj 20 0 obj << /Length 2070 /Filter /FlateDecode >> stream xڝXK6ϯ0: "cE@$,{X4LDܑECf[*ڒ[iX*+{zӯ؈,NBnqYT"/c曧v1۝IG?nwiQFxO|Su! %,줈+QxsƓuIOIf4wkzںtoq\ Muv++It`ea"FУ{T$ ߤݡ]XY>eFo9s˧NwN<`nԃCLFҙQ`_uZlw#i~J$CCG0,;{# }l;5f Y4y>|^*6`rrq?!3(Р4ՇiGsӈyW+t_tq;qx.tR^5 D°y,e EŇ??j}tLP?fHg*Ɓb^1:;yOg|,t2m|#,g^gx*bU_C%)A7{YZfeZd X~EK*dUɥ+_58X\c`j(l هX !$R)z)ozTu"(\b@4EAg{!m{ kq[ٟ+UqPl׸q_<0!,v\2rG{ uĴ͍=;lWIPW* G{KOL )e.)>d3@q'ݾ]uCy'Wۇvΰsy5ypZ\ ؽ`c rg;"'7{ Qk9r-zxWHAG?4n^"$MmF"V;wCgk{xwoD|&& ǓqklAmg duA ))<7\AN9#пb22{y/L2X%tjuHWCq{HwC,ݝUn `t~ Ys>hޯ!@ h9(<@ VHs =.ph"nvkp՞!֝ia |vVuθk#kV(ϷjfԵZ/X8=|O'gSNt> stream xڽXK6W2+"E9H) i[] Jͫ7ޔqlss܈4d:e77lw"i'3ZwS}`v'8xaM{`~<:L{{[=i`~h_o$qr!." 3qLTMOnwU`q0NJz2{پWY2IDu?[Qey! )aSD3vB+{ɀv]5 /?RCg*ppw < r]Gql{'43-BD(MGF \0"x cgnRJeKD;%r§J8gGa|)pn'+_I3 ~d)il:uEXY Veٛڮ$̠͐!+ TҷO?_XÕ8A' "@. /ty7-,mHioo\0\_=VWg$2 XuQjQM}L?+uм ȃ=\7)g3-4p> stream xڅXY6~_aD ]`vvg/ $~䁖i۲%u~%Q'O"bwtq^TfwܤyU:r;l~m&IWNtݿ6nEfq6ayofSu=OMGΚ)5SA"O,CoL2nNq`Lqq'f;!M㶔ۣy.y9>mP3$f8~ؖY1-/:8{ 6AaFwSD)ukSR1Y*''8hD{f ADl98s KN,Ҷ(SQdMRk  Kqu[7Ԗ&+j\M2fk)Rt^%ܴ]y¾F$u qQ˳NZG/j4(JxQ^$yqД4 =?ezRSQv`QYRSc=r (^x)LHrń3s_C$n Dn ٛ_5F%f-E?du9ӫV! =[<3GWhg񵷂u z[`C|^֕~e:qx%&<9NBm_Ku {Ŏ#'XFGjc2H#V0JweAK{#xD@U4~v~!yt=(}B}5ϸt7舫b,L}'x0!P= ٨)0NNY$Kb;t:cT?G;I#珏;|&H3r R?C/pw۸)ꥷwU)@Õzf=24 YE (AI s׃ٳW:9aʥ'5^9IRs)?#&7ng^L,IW\fUjƑGHpb0(h@qHy@=j%_*nzZ7$!g]6mC ;LzUmڤMK8m,CʶDr\a=V ˾纀w̓H!َNZ(jY{^N]`gESdR7T4eZp,.66ͼo/+šMt[kzg#ׯNaYoO<ͯ&B{+-iiv~"F[u9-ˣJ`ϣgNϴ2LϠ-lyөʔK0Łߕ}!"vvji$U* T~iI3=W7I[q`YWI&8 eH_xzƧ_هY1r2eN4J;0NVFکMM5wk80M2*oZm"{KJԛCQG*9JFFyN&+cof Gx&k.͌eN&T|D^`=R s> stream xMN0 !%@b@ʆEZJ[$t5 `R,+Ȗ$ѲcEeOҿLbu06 -`P>6WZ+isNƲ'-sEU.z }3(MGu'9qkІt_Ip; endstream endobj 25 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpkJ8Ssu/Rbuild2158a573e7fabe/mcmc/vignettes/demo-fig1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 34 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 35 0 R/F3 36 0 R>> /ExtGState << >>/ColorSpace << /sRGB 37 0 R >>>> /Length 140244 /Filter /FlateDecode >> stream x\ݽ-?|>MXJ@80ɉ` u7Wk3ߜsOl~۟oy5OoS{6ϟؿd[?sowϿ5v9I3z?}s7O'9ӣ73_z/&=LcN&jAsޙ Eg3oy̿ǟ;)`aMkc ҙ@A ·7P v\XqOTq_չ*3/[q2l?QI\Ϧ6`ә@ lϪ3Lb6fK9\̼8wx3Ⱥc!.f6#LkFZ]up1_3r3q4+%Eg3fߑ ~g4LZ_3ҳ>:D{9ƜLd(fvv&8w7#`&fg׌X;݌l{ɞނLٙ(8P8w|aav`әh9Ɯ b@@5gw$:'7;s0'әxQLx92nQߝ:z#;Ә`&׌;l3s27Tί)YLb5#/`ә09L V'ә}6~4&n^''s2İɁ19Pr癿˵wOmB3rq2>u1.4#֘9@ar΁~cs@ >4d|qq @prɁ&@pr\@1jY錇Bob0%\ٙ9Ό= +&qq.v`әɁ=Q׌4dE5k7#7bffgbԆɐ@3rљL\主i .fbT^\14N,٘itJq\@68o鿻׉1C^h\ l3soU3ą_^9̵hUHԠ5v3򷛇^n4@5_3r1;ӘqStbr09PFШ 3wwmv{vr/Hfiwϯ20I5#7;s0hOљ=Ur7˴+8{0A1ӘɁL¹Fޘ9sOIkb08;s01ѽ ٘Ɂgr-$fcv{2kFQ``=L$n Lc:s1n.6&5#[\`&׌ǻn.N3_&5#79@1XkkS{9Ɯ @@3'{`c9Dwp=ģmEg.facv&!(9P&J|yj٘iLg.fju&jqsﳬ[q2*я_3r3ӘDy/4ffcv1's1%P'9Ɂ~͈M,SWa&׌439Оqڽ7lXo dHhGٙ9ڋ`c9QŌfd.f039P@͙q0+P+1I19@c29&5d|Ɓq @pr89@ ?&fc1'yZhu&Zh9S |cG݊ILnF.әkUTǝv1;Ә~ӊLb-ܼL$]ULg.fLJ.rɁ*Б}`bgbvk8$@˙hFvf<LL:Y bݬB1's1 ;s0'ә@1M8P3&jɁ:|mqm 渾\{ }z^Lg 97 QLӤvT07mכ3 Ls\/6`s29Թ$ߋit&ګs_Ռa͸ úU*:'󻾿f*ؑzrM;0E5#7's1{#39Pp=zQ%1q=wnF.d:s1"r\oTӘAl1άɐuRь*ҙD"NJ#yٙ9\Lg\/rFmcnFn.fa=߾/[gs2L4_Lp2q97Nr\oKc:s1fcrŁdr%(8P L:/l,fz}qٙX}Ә`j%``\zs23IlɁ`r_3r5$≃כ9tbqpјhp1hH >@@hX"f\w#ǵU/Xہ_v`b@ob&r\_6&z#nQ7d.f0X_v&Z@ü7t;r\o{@$&:N]MLcNbD6Lcb0HNC$w3b׏;"rv&#oؼqX^9Qsq&vјA@0vΓ*^4$mO\t&VɝFqO\lәκsfa6fgs2)]J.d:1zf\_72*To1^b1fcv1'ʏbߍ.ޜLg.f)ё~~AݓY鍼L{+zN32-?̱Yqm$/{4ģm6YqiLg.fęub1's1L,ܬp=Vكą5Z9t`Qtb&1l='!9qT525Shtf0"r\ov`N35vwz!ǵw!+&۳zs2Qg/.^>FoL8ZD{$Vɬ-x=VC32|F1 97ӘA8QqgcVrZ}_3 97$7;)UVr_t&8Nfc}eL,b1fcv1'Jbr@9(9P97;=6tf%xbo* f h\L-1;s0'ә"+Eg9?Lc:s1h$D3|Sp23Ifeg.yvowa;E՟u~ULc:s1fcd և;n?433.pLcNbJ$68PLԜYs2ĎgN[(zs0 @19@c29А@I4dȰ8JS'ǜ$·ٙY;}̫2tN*/a6`s2q3:˙Lb "OEg1Vu\/G97ۮu~ML@5Ur1;{3hC\tf0XS%/;s09n@W ^ܩs0Ƒ's1*39@ T9/9P帾@Ɓ8@ Kq}L֌\ acv&rt:'cfg&&EMnXLc:1F1;Ә`Enٙ9\L `^l433v3fP&1:=v,\LTA%54c>49U g.f8Lcr @Upr*NN4'ZYe3s zg WQ'q=Lc:sYqW%l4d.—nǨG/;s0'ә!fg1q4?Q1 zgr2Znpp<Lc:s19q kLd&lάYLg30;s09#ɴQW׌\T9ƜJ8D~B^ss\zј&$iF^&^N3Lfr1bߗ9tba=7WEcN3΁:8>Ftb&qFo̾^J.<X|ܽ\u\_v`ә z1=z3{bcv19Psf'~3s2j/Ѷw.zs<L KWZ}A7adm;qfg& ! Ix븾o; !FB`|!q9039@Ù(q`8g0'uu ƹa6&zq} ?DZ7_Cz9/urߋHmPr\/?orĨt:uјiLg8 ;7N:~^N39{S[Gzs0hÉ׋0vGӘ\ owC/ U`C &n{#;s0+wˋ fOrag19IN;;u"$*`s23It2eEtNF}SqЙLz @k0+8˙@}sјi\{'7z3xӘj)r\Hdy97;s0@ y}s\_"=q8Īq1kn98@zIH׋av&jwe^bJ{<tLiɼjsAV֗ٙƜLg*9uј9`fȇY{<ĞSc:s1s­*fC3ȱIqit&f;a5#/;s0'әYd&1![433ՌK;8P͸@C%8q 4Y3eg19@3΁11(3|23{Ygco{#x}uf\+Lg30;?^[_:s1X_g[ovWUsvʿ̋TٙƜLg{:z& Lc:s19PoL9PLTosϛ'yUJ_iEcN3D{^@@prɁ&ҒN?LcN3%P]@DwR_6`s23Ɂeg^qTu?u\oL7Tq=9Ttbz"f5=UeZzY%^GTi$/~{FEכ &W>Z[tb&^:uhLgbaJ{٘y%]$r\­7=z3y9NƗI\3VsUbq1[_r@Ii$q9`E;c92z#J%fc̪@͘*0q_3r39턉:OH[o&q<Lcr䧝LcNbN4;M4Ɂ&r>@@9^DfMl4&1q渾 bx٘9),Tx`& @Ɂr1@qq!;\ AL&6 ΁:|u;|,&%DMd=30VWl>4d.f089@ԣp=X˪z10;s0Ɂv@QDŅ<Y 7Og(zәē*ؘn^r C{`ecv1'ә(΁`bPs;s1^)7q9q*nyA٘GWܘ f1;s09P:=)r{p .^`7^5q ;{Cv1Q^}qա8wϠ4hùQ9#M<&b\Ͻ|;9k󹋇x+C8JACsx1VXgŬx8(~T]l)vqQkWGClbc(1\DvڣM<&~hm={B}pow! 9?.)vK!gīA;o!bc: /q7KzgWT.68=bwgnKGuKzki_ym%xMoHbl&Ę/[ϛEe7o;$^ _9߷bOC&7~vO1oKw^ծro7K|S!Nvx]ExKzg7$0o$^7g8zC]:C>x]y̟Xy/ֱ8U3o9bO8!%~HտAr|]<&vS|$9x1>%q[wm|z'?b]oV&bOXīv>o}b8K9XOsM/q7XkO7qx]]{@/0y<_sK|M<&x)2n0SbZA)`2~E4y]X3;68716RR`m(Q1^Ȥ RoWI]Ƽ~8Ĩj7\/jŕc}bW׉W5^~ϵtb`#n!|^m&wOC,Z=o!68qS>xC!FK!%ސx&kxM39^xSvžmbxT~YV9>Vy]l)vKK!x{>iuk^$ڣƦ!e<&b|_]j>7q?hy<.q^nye9L!B.b#p\v<&bO x)r%^ y_v|h%v>7x%^xwv%ސ7d?bd&uS}}z{C6].vx]bXc>.|<׫_Q uM<&Fg G]lbW5^Sī|/%^&C/D2{M譟r߻x7n.x64^'O~bs+gkg~2TjClb/q[M,,_S!Nv`>}{'k%]Ϸmrc|}vvtoАMNv[&8/8!xfK;^W ۣJm7x86g],L♋%I);%ޔJ);%KOя!N)/k~į.F/kLL|n!61 aU*{/7qx]m$x=1oc?~P♌:wqwq_x۷w{t> T7)9g-qw1W/АMvdz߾(zd^S˼=O~.bg@C6yk?=~7쿪VY6_Zs#n!6Kj}x.jd/ͳyM%NvHhb/j|Xca=HOl)vqsSMxO8ٵ3oj>)FP?Ʋq#_W~)vqkki;?3hc<'ޯ="7=^yj~D#{41M俎SMqCyv>7q)v'nO|=~zԐ}:!Nnnw]O5T&x9׻ڣr~o&]n51o#!_'=#!3~%Bڟuc}C)kxCx ~U'^svŨW~3o#؏6xC&ZGGWm쟩u};|gPrf/q#n!6o$I9 8Jv4q1z!GClbWoeo?~Clrwq{=Kd7|O8/ 4qx]bkC,kK,z՛yCzI>'}^`G],ī }x6o^:Y39^xSM9)SM9^x.\בmCzlC<.^b7 ?#4M<&v9mM<.xAGmrx%^{Ifb$^ vx]u9.ox]7$^'Sb䷍ɶGClbK< x߁gtdS!z(V&!b#_zo_mxM%!]%^HzgWI۩O:xQOz]owȯ@O;x8%}x]u!Nx]]nIoG%~xK.[_YooHOR'&c=~. {QodW=I?G:S%NvK,m'm/_`GCi/!b/q1~s~$x`S~~ߗy`~uD=ib/qF6|޶ޟ/q]mx%ީZ5o%^xv|oG6ض߼#kt؁yvMOvO9ɞH|9&v'1->@=zm7%|^_b쟉*?sw/!CUg|';qX%`Ssc}/۶wmC|>O}]@=Z;ן<+ۯdW=]Kx%~?=/'V'm`bYC=}W&K9׻ڣM<&w qSboO9ڣC<.^d۷%^X\߶שO}[&qwuoد+߬=ϧKOz He]x#n.xڃ߶s?3~dx-z5S%NvՓxs.^`/sx]dsC,\9ع_=5.W? v<&bW>߹?6^3Yb䣶s?x-]<&vc۷x_xC'u5~[_>>۪wKy B6yMz!Nv>w1s~mC<׫)NU/}v'{!S>>8Ɏ&bݟi|!N߾y9S%&7>/qo'ݑ߁?8 e/*? .^dI>7ī|x~oy^#n.6!No{XM7X#.ϑS{y^/ԛs=Vw1ׇۨB%FN{%{Gxy>yd#!6Kqy6uxoȁmrk? H#,S? !Nvq=1~Fمo_j]&x38ɶ&4%?O1_>2?~Clb/sܿM<Ķ8wK^'{5qK%%ޒx;?ċ!!B7$^J}ڣ&C{m&7qxqO8PolzhhzF)v'?&xK!rC 7xƓ5oxM39^xSM9)&ƋϹ8 (68^oI>׵|_+U귵sClb~ЁmrG=<*{V}Q۷M?x^85z!6q͗1o߾]KĿ=L8=Kd{w10&cv?Ot.^b/Xī/x_~M|_;ߏy]⼍mrc o]n%^x gy3?V^^7qx'~qO㬷}b?Um~>Hi_w6{b~xm/qg|M\mŵ|5ۮsO8uoW].^`Gn.68N4y)vE֛v'yM%vx}%~x$/;sg~?OnNְw?g?)vqgqu1~\lSĸv%_yⱿo{޿_owPo<؟Kxk?s۷|C3m/Fz;xŵnf/b e#]<&vk=>.6?_m2񪿋m3mr="wKx5~sjS>DM~?xq~iv{t;o#{˵W՟C69 _1 |G~vkA69ٽ_ﻭ#m!ym?ԷE;o+{Koyϯx8ɞMoJ=~-xo;'{=&~ȳoOy ~YG]l)vKvJx9/%^*v1}7umܶ.61Ca?!dz.F~'*KXU}~qwXKxS!xSO/q7]<ĿMtzYm2{=bW?ɞ3S!Nv`~_{dYՆm8GdWmu9?/1!ʐMn!z|=w=dm>C69٭1*6#џvwIOnkxM\KZoCl)q1۹>sx?f~NvCllo g#/#nbym,xC:X7oSK~C<.^b>|>~xRC6y8n6|? d?8 $2ojM^b! ۿy<&vym=By)vqm2%)v[ES-Ny폸XU{Yyg>'{5qy/sAs?$sXo׷mb/qWM&b/⼍z.o㼿z_wE})C6^s GClbs|}CY>V۷!xIܺxMjv>#?9&%Lzd{?8mXo|UvۖiS͆m8sg<<_m?x8%nnKxb͗|]8)Fƻ};7x%^ vx]u_~N d8ٵxſ0|m߮xClb/q%v<qwϜb8{vjSQŝNz]<&~_x|s</p_a)߇<3k~|r]5]<&vII6i<9.)vq]۟k}/k?T;68صs#  )^'{6qcVYo]d#bWϘ_s=|qq7;M8M\!Nv>.bK\jp'Cl~}oOm^.?IؿmMbzUOuĘOGy]ɮ5okMxmw/qxvcK귽+Sz9>>]<Ć7q?)vqX-W>&b#?~.q0mxoW51}||C!lb/1;Fmr#ޙ^</qs o{x]\sq>=.bx=%lbWO!Nvɾ_F9sQM_S_%ɇ&nzi _qʏȈ$K A4m ϳsETZŠ#2Oz^=7;Cٿ瑽oӟ8|=X!neO|tonbn&!],$%^< ئ'Ř:KM,2ğ/_3۟%I<56Am]ϐ}q/ij`/X/O&F{p$1u9|wO>Ĺ~O>z]<ĸX?`!xX/Zyc>_x,o)61{oh.b/1y@7#b\OK&x&Ye|Mo)x{=ju?۟mn?ovKx?f}9/uOqQvq7;C,roSU]<|1_i I~!x{$]}~+c~;LYߦ]Vw>bnyO]6g],LKgh/M!#=#.b|do{mֻS.F騿qc!z(u)&F~f$xM,oK3t[zM⸽k?M9&Loyk]</[-7;G^7O]!r9oOM6xgcaCl%vf~X~%I< xK-9% ヨ7lRۤ޶!ٕOm1?ҮFȪQ C>7qK*b!{ ض'9~]C:]|O/oxϓmGηGg]~ϣ]<-1-"ge+&=yt;rOa?.> ?g6Kb{Y廬P=ęPӖ^Ywy^oc{8ě%^d>O,q:?zq1ާW\%?8]<&^K̗,roXuxvx߼]<Ř$CY3;lfd7C~ƲZ:׷}nb>!w8Y귽nbOVǷĘCĨOb{>͎G%pz\Oy]%^>>KǪ.bc<=/{էy3_s|./ݳ&)6OCkxM|U>o|]<Ĩe&#,ǣ}񝯳)6C_-_񹋇KG,\K3>N}#n!bX}|oĿYSoo#iY?x6yx]Me?Dm_[A6$s|\ۯ$mx#!~UO?mߞxM,fMn~8Ŀ_woݯ%~m/7;Ƿ?71{>g~y$?S^gOwOu=bCٻx%ޖx&̻K)%x$QokE<&^g)緣֓s=\O򹋇xz0Q>"8؎xo!Wu~r9xM!xF{~!wx:v]ߍzhx[o?3fgsOX5>K>Ĉ퓍.'aM|fgޯ^B>)61C[3*kϣ9V#Gu?ob{Yݿ;.{۾oCȟZOĘ|x>Y{g?hU>=&^bovK>KvG]ϗX 9ސx!B7P~n?~ZG6yM|7߾o|V&^ov{I6';oG&zYkMbY@)^wxC|h=}{/ &)61kȿ}{Wwx%ޒxQ"1޷CwW]<&!gCl%uY۟)6q>Sl%fG~vQo./ -۷l6Ώwoߞ9~5m!lkb<:6&^bozM,K%kx.\%sQ+\u?śqec~_bmvw֫첋CQnMU3;ě}O&O871s|j}g8ě=%xs%ޔx%I<5gr&o߾=Slbc~ZMSlbɛ}owO1ַ:sWe7Oq濾vqz۷>B>g)6#Wy#bxg~=m2;ZOG3 lbc=jy>?u|gh~?obϰY/f&z^3%GŘ?uxCw1r~1}{_Vu&3ﯽD^byG>&OƓ^U]<&^bܿVwzvoߞ%vfGIfb>jxC_kufg~RHx듢Ͻ/Sm1&!F||.b/q%^Y6\@myTɛ=sdgW%vfGux9Zϗj?@6Q?2!M>m%f7<oqG|7~iF4n;/j<`Mg`>| z]<&^b?7l{]hOz=bWZl}b8ěϻX%x."^}S.~Ęndm@6.}Pde{2:ƷowxQkwOQM%vf#F>ԨoC<&vq#ny%oO o/"5}qc|;M^boynbS,rV#K|󉬿]D۾|Uxb'Mv1}۷xx]:Bmrw<=QI]x3soRC˻xMęVϓܟ$;'CUO򳋃1gz)613khf۷{w<Ə!x%xoJ8y.|כhY]S8N>A};1_mN{f>ȁmfgs1C&yjrdQmKuc9_1[_Y/鳋moQ%?1%s*?򳋃qwk&Q3~9_ovo.b3w_fGC<oH9qw8Ͷ&bf%vfGoM1|۟폸џiu:s>2CO$w֓!zUǛmCq1_ggUMg/qm'~|V^b>-Fvh?xtGf{)F~P{VHxM.F8'7ބq۷qdԮX߱7qxt3;u+{FysZL)aPGCMog[x׷n,$ b0_|b N3j\;zkh uƳ՛9iL;7~F{N:1lgT `@ݐe[.KqH63N F,/]Й0s +{AęvH1;s Æv(cHySz8Η 8'n.Yn`Ȟxv$O\=Fn6`N19Д@hc/C; uoٷ7ov`0W.1u>'s0>];Dgs1;{g!3Ɂ&专M>Ɂ&2>@@Ɓ8]h.~Χ^q5 [4b]G11fgd.39Fm:sv6 N1yC%7@kbg< .f078ٙq$ n;㼿рɴ3 3y2 *'NM1;s2h'ǝq.rɁ&,@1ogؘCwLc:3a6fgﶼ˘M C҇9\̿_mz zJ_*8r% gq?4&h_h\4b:Ɂ~'s1 NM`6F\QFQ36F\sKax̼ۯꇃ1;s02Nfљx8y,CRy`O΀mtjr fyD{9iLdɓk9בysog;s0 b:3Lj˻=M܍ٙ en'G{1@L7;n`Nb:slLk4o:3xZ#饞)os1qrE48q5Ǯ,'#әA=Fn6fgr3Tŕ6|mabcd.38P@39P3&ms΁N'oWCkb:\L|OY0ڰK:^3'ӘΔ@h8 &2 uώls}ٙ9Ɂ~<#7s)앟1p%:dnb>F^v`s11|F!V~9{ɻ;Z#' r*Mc:339P@m19P@ab팙S8M<Ɂ@g"ǝhN49hr 4d|Ɓ[u::5lLcrcs @g"rtF\/J >08*X1VLjǍKwcFΫfL򋳝#3'Ә)-mөؙiߙ Ԥ]79xq;eE?8Y9a6fgN1?3b1MĜ}ٙ8kTt&LdɁYR ߋi$3iLgscbg&:7qؙ9vg3&343/Lc.f09P{q69u;'t׬>3iMtjJ.yכI@7sG\LgYΑzs)0GMc:3hٙhn#=?!U V1$X^y,ߗ} d.3 ^6& uc|J.:3ٙ(8P&@29%ڃVP}b:s_(Nr9t&fK[$$;rhy0ϫCڑF}`l̑zslLcrɁ&ޡ.Lc.f5/o=L G+Lcf%8@+ bV\|٘9I~߅lw[4XL#yȫblLtK-{2әq[o6fgN1)6qƁ`r2MN$9 @q7E4$&N49Z4/'#9^sav`k%7xZȬ/s0'Ә醌63V\`nby犛95mEgb Y_f =.it&ړ'v}@ ƁZ07*8r\o&f-Wq1QOlkq3s2'o\|}Ukecdә(8iNLc.f0@z3s2әqғ⎉TD[ҙķ^I^WKc.f0yDav`Nb:M4Mt.rWÑv1;0כM\3cd睳]|lL|OҲ;HzvS| 4^"[x埊ΜLcb071#/;s0b:s_*1s2әA̅{Zq9\`nb@DMc.371 @FR̜nIg*!L`6jegN1M4d(@Y%ʿĬ*3ԫwķDG"&֑z3'Ә &Fv^4bskō';} O's1wʿ̚!-9iLg|z~lٙiLHSD 8LtK1k37q<L4ɁF09I#@kr5ҘMGxExr 97әklL8P6N&\S*-;qѰ9EcbAJfcvds11dыȂ;+P9G};﫬g,zq1w^/s0'Ә b@qijbg&xN ׼ 9=WrLYqDU18ΜLc.&4GXX*^DS|ח(N2ro1_v`Nb^UPWVΏ[elΜLc:Sm@@%=n׋6Q)tff$/s0'ӘX`bt~v/⍃ r\obƨ]_I40\Lgb<9q1%Vc2#L;7)vds1%1p/Fqr2әeya6`fkX73јY[e M3sXk̽g1s2;e֊AlΜLtvκ=Qc9r(:L2o½9(o tfs;{cE^L<'&sFk073Ә(S_rLqThq( D^*r2`nbp@ O^\M̡9$әqIKv& ' aUFe07:53`s1)rɴwpE ^1s2ɁFHbZv̚!+t L c&̜L̸*_ϙq,1Ӳ=o*ͭ]?M*(yn f0 00ZU-*fb `N1Qd7%W'yٙhDI?qxr\/v`3r\#3R97j;0qOu&n.b4߲7 ٘Ɂʉh'ǝh{=Oؓgc=ٓIGq}٘x ׭RҊ Vbc"5fEϼDEDIKqM=FFV`\ g#7[ϫh7fgN1}[{tq9Dc97'9"D\Lg?k!L9/suCO9fn̻­7;s0s@I.f07q>@ә0-yr1s2`n@9{JDj\`nb&gX`N,ڭ^Lgnb4 'q1I#iɴ+8gcdg-t&Gg q2[=9tflL,b 4&(NIpLd c[o62P3z1gr0'Ә b8yΜLc.f07qqŁ-Ɂ9Նnq}Wr)Jtfa6fgrUܓL4Vu1;s0μeE<'IG̜@u~n bCnm,!w?=͍R/N1v:a6fgN13󻐛Sx~rs9\Lg"Cr5:U9Ӑzs1Q m$r\oN1<w)9Lc.3q1z5v3s2әAh4&/9dFMܓ'5bGbwr0ĔA=xow/735 Y?ĠS+f Hs19yr;3rG'y9\Lgnb5RDݑgrNbb@r! L4O: 5`njL7"3&ϙ l@aLh7ݞhw`s1/*N3i't&ݖ[ID̑ &f9OI<s8@Ùh|9iLg@Ɓl19q8\hq"D1s2J=0Y ^1l \`n~9hs;UKɓ#\Lg=LԌq΁:|u;|d"J |99tf078qgթyἑzsL z1q'BV"{~NEc:37/9P'yNIۙz1(3s2mU5%zDݪ{/'Ә &6I^rƁ8K8P'yɁz׋9YH5u޼RmWk#bD4bpV7r\G{8V7 \Lgn@19@˘b&nUٙڭ+D.z(zs39eg19P87'Ccy{rp[oN1Qfc  ։13Y%/;s09P@͙ssaR\n̬0[YY%'ӘMhr*yߝD-Se{-~ !fcfkq=z3ԚL4F3ޘ9(#;ߝWHtf7ڍq7@[yٙi &jhp.F\_:c2gC9ĘLܝv+~gEcf`"ϫqM r䜴u^{ώ{9Ȼ~2ә՘ɁZɁrɬYpu}0"A6dq'"rЋA֛O_yAG=e9Ĉ듷Jwl\Lgnb{9 rvF^1 584b"*5r11̽,zq1a6&ɁfffyRa6fgN1Sm@).37ёby{PjS3[_6fg" tf07q7fg&ڋq=Hr%_36S.vC+.Oexs"s1 ޝ!Ʋ3-S*/{?hO]i=qw=4!FxM7*x#!빖śϞ*w<&vq2mX)6hl|!%Fjic/_Ȗ%7Oqe1MSl%1,WKb7$hb Ł'=qwHa]Zrٙu3m8keHOjOn!%x+.\esQ^ov4q .xK-K-6o֒uL71yu.f&xk1f}בO:w%CY{.x%^&~x;S3vO8=brA)^bov~nb-&vqs;MoHoğ/;Qj^^bov7Ԟe{.7qc! %/q7ۛX⶟%^`4r@//q&Irz(n.b#gJPxMx>rVrC<*޽`G]<&LV1rM.b/%|oJ9oJw$3grǪ}|F|+Kk#Cl%1E}})^b;$^>Kx:ě8C}s)Oc'ߪ}:GџeueHtU9c_폸xXyC{DO8ě%2?Y#z^7r<&)^ba!?O()6C]e!6x#xCxg7$^'o6ğoo5qc1xf%vf],Cj8O~uzkkɌǦ7 s9^n}xzmń+`0[e{O~ʲS^wXlϋanpWvCVakFxz;wގxx{~:EFb|5_\QkpVV@x^|>zhb5  l/=>sf{5W3d'SO  WvAR`ڙVW]Kn_>Rr+aێ=?# l]a{+۫{]}No[max=}fƵxF l͗~`Lm+z^\y2 o_Vxudnpt/X< X =4=߾X}HY~<u;,'; #^G0u\ z+^{߮z^٣Fx^yYkG|Yd^_,V=J.p;,/^qIޮx#o'+QZakŭ.[No}-o2um~;׮_ܺ|b/~|(oo,;Yzx #~C05ގx:ӪZ3ۏԺ.p;,0 lE<0)⩭.}?WVx+{"'Fx4wx^'>O׋2iVVx¶lQ W'~oUnq6VXvx~\`okq?>Ɍmk_oVg汍k\~6ߠǶ]Vp:>/Om} =?q;An xe.5߾VڣϏo;ˈk < l?G6^\~ԯ3^Xom ~QGqWn^#^Y`vNp;gvGn'_Q&#D^ < l)pmׯ,~Zv}^F{onpG+_sx}npWD<_oFq^ٞ-< 7 {kd{7x+ 'u,}wz땽%km<\+xF$9>g^v7`'~Ɉ7oz \^,6cc_op-?}F<=mnp򷿨YNvr+lu女_x+; 7+oy my~+`S4n[^oz>bm;]`/ l|%ۣۣW OxeW緯S 05k.wadk,ZvSWVo;y+[lTn׋mcI xeڣdS_}=~)q:=> g< ~w^Ϝe^?~q|c oW''K+`ċc+I"'Fv nۯ `X|b=z~=-lϏד^^ۇj?j_;Z1ugzo.p;,Œ'Oě FiW7#޲S[Vo;+ۮ˪o'+Kܯ+lu%/?x}paoko{n ݿo.\ak[moG7bzK|޶7NW%V 7 zgo_3~$_[{nj|I_󙿰Ճ_p;m>Kvo}םyjq 8^F+^{,^=uagvWÈK^3zIWˈϏNVx+}pu͗|o \[6[WoʖW'ۮO?È6~RY 7X`[xW 7Èo'Nmaf+~|_,ۦܿ>,^+lI=^_m_xus?5~}/n[m'Oxey^Oo6bK׿[raxjϯ_9 < l]W o ׻F-5zew?hym'7ÿݦ+oV|pm=_WϿ^[ <ׯ+{|paxfo"^o{xǞ}mW6Nkz}o_W xezu ^z>;zwkqqo<u;,Z=켤+Yw\nOd?O[^ORՇj-ש; lQ+v-v>ɈI>K,^>m=q}G?v=H# wX`'zKXa[?и^'i}m'7 xf+Fx{}>[fۯ|7j=#{kx=~q 7öK瓆xv>8^/+\a[q%A~np/{o\{b\p= ^ьNn O{G_\zD^%~f N/' wX`^۟$ۮWv|z\דf ;og~onpooFx]a[قxċzI5l7o%kϟ6xfz۵=%Q WDx7olߦqwov>ok \ 0x=Ydߦnp_~_wXOxewn+OOpxxUS\""zp~^?5m'/,;y+7~Kp;x׈w>򷓭4:,'^[o{] ++l:mwzۯ}> W?W+kP x'WOo^[ [>ny%~U+l$Ƨ5WIޟz bAOvޗ%e[{= 7,ێr3++<=ow_wX`˯8ϯo^^[=sMx^6~YR=.?߷m 6?Im/ǖ_N^ٞ4{Vxž7\Wj\/ymgI^l'y]`<,'F[vr-o| lo+ltZ.0[}o \ xV 4+s=*~y{t]~m<ֿX|(_||kwox^پV-?s7X`'#޲Lϳ'Yq}?mo'ޏcO|^bWv)zw~m֟ꖿlm-; _o']/uamtW׻ G} wX`';o;^>}]wc?Yn__W԰|W+Iom}zkQ+<5*p;,_ۯk_-+lQX`mo?.\wXaVoznp-^Oxe7_.Q] ן{YR=?[wXaV~t'Q<7g>YZ`va+{/Ez%'V햿Wv+p8Z`}+# zj]¶X l-q6^|n+߾p;l{+^}mo-GmvA?mYꞿڞo^H+A{6u+l+.^پ6>m'[ӿ?,[~y}c7JX6w׷}m5>O{>W,px"__{m~[l>ǟoz+~p4Öm?w7w-_]b}vm?Gvm=Zۑ/=ulm#G `Sϻ=C:GMGV3ʞ\͌+>^\`ke+>/ko'WSȷ^l}>wog[+_/oLOaɶONC~W-;Y 6ۮ?}}پp\+<= \#@1ൟ\[{8op}'oWo߭vr,i||+<`/w`¾}Em}v] (q=( قx(DZWI^gx?}md:=_ɦ m_+][OJxWo+^k{g|_kudog7>=~O~z*_] < l_o0Uī #^KNw*5,^ xÈlA/k<{Ϳ]8߾np̞3%'pIIgw_\'xw>km|m,;^a;b xfq)Q39lY<'}v]#^U+5^G\']wA-X<;M l-?h' z},^FD$;m?s^io*<*+<-OyIֿjIWeΞ=O+a-R]?m}\jo_wX[{?~5[N$q?Z;,'; #^G0uēF<Xlv]`kWxFo NğV5,|/? >Ob>-JG+탄Vx¾K+`0$׈oEyI %ǖ_ix+{bB,ێw7>/UN/zWVv"^R[<= lJ`ofO{vԷ~=? <_v-v^Xop-ɯX]> 0m8P<[W'[+aGgq<d xx"0.p;q7ڣx= ][;"ʞl$l?Sۯ?x>//yW< 3.%~^^uVx+|0+Fxg|>m'p~kƳP[+`0yG]q;o}=W"K^[L < xpVx7>_ya ^? \~3o%]OxeuxV1~pS[o;;<Or-'Cz}pe=xeG~qmyV/nn^ϖlu+7x+[O*xx>}xx>}]w~\o{ao1=|[U?|F{tq>ɵkI緯"`[|_?^F'q8eZ{eZ{^/>^wKm|Z[iKW?ؾK܏`ZVx~dnmkg]׈g#aW}] xsoO|lu+lS<[vZ뽟uaOoe#+#ﮰͧ[~Zv¶7߷m ul{W׷.p^#ޜxJ?;u;jX ~$k 'hm;.p;,gvEx/yxҵDulVCKo_xe.p|R0| 驿ߗXZlX lH-_mϗW[?y,~uaϷ総-a=+>;zw{xY/m|qڋ%^'pgvgv/o'͗NʮWl'~,;y+}pak6콟? l6jH-f| lʹ~~PNX {=߈\wX{C߾x>G;,'' #޴L Oxezq>>^YoGzoA-?]%]W؞r,|$>+Ɠ_7X`mgwX|R \['Vx+ݎx=x|\wXxFI^#`<\Dx;W|^<ze.pP_ |>5SO[u'~uxEa{~-u?^7?q`ZWnm?.ד8Ê#l.C-~m[=׫^٣/^o,>%WOr]X{~+<0y5/Ƴ3G 7X`[ϴ|<3mǾvm|~;gvA> wX{co O=K^lϗp}Ni_S~,l>qu寴x X 7\#'Y~enp0Yٹj<߿(q=>k.-;vr;WvA_xk'ul7ߤ#ΓcǾ IϓϓG6yǖ_"6X`V6z^k_jܯi#W_W%]x3%]3{ {^ W'y]a1z [ݾp;0v=׈ xl>Tw"`uoy}gnp?`덪o?>x{;,7r|!뵨ߖ<#)dGe_wX`[Zquf5pVx+{"D`ě7-|ymIW q?_-z ۏ3GYgOߧmO=,;+<]#~E<߾Fx4w`~K3^ٽn0uF<`ē#XZ?  FOr&w"D^:>s^2co[y^ ~z>kN61,;Y`'#^AaGM|7,o6eQӈ'^^XaSI^m=n6?=m~濇o'7Öq^' \ lgMUuh_Ym8z+|9np̮lϯ ~a=M6~Zxu,FwX|ۯg|p+a-?s{=oV[mz l6?6i{x}~*p,W_-%hawWyzdz6( [<#^on zE;W wXo{\l5 Oxe{n_|_Wvz>?ro_7o6=z׮m=h?zWO?, ϟ<-] Wo.0ykS ށx;o0?zGW yyZg)¾?XVD|o{\?uqx{~mϳz۽x[0,;X`+7m ZhX~]^zۻ>+w,^+l+ްz۵x]lo \ xN X ?? ْ{kO?? < ~_6͞g U$=z=,uk[q WFn~Ml3^pV#cm>jyo^ xcw{lO$'.p;,Œ+ 7X`ml|z??3^_Sozom \ |oz3cZ{–;mnjt1cÈ7,^v3a^_m/Y{~x7ۮ+a0Fj;;lzWvyx3{Vx+[l3,ϧx=^gs;ly78\qz+kVcfm4KOr5a.>~pm|aix^_gWv3'=M5NVxX=/<Wo?Imۮ+`x}eWVڣlozpZ < x{>5ۯo ޴/+<>KOGϸ>?j wX`b̳Fϻp;-_\wX`|i+6>ϣo~m^+l7y=y<* 7xf{}1 WvSKz<>¶?mVx+{~p%G/{_Vo; {~ommz6?[K?Vx~Ͽo'Vx6ϻN.py <`?'-'-'-'-'-'-'}x?u;g D`[يxxUS\?3y~l燵 x#|w{ X_]o;[`eex z:q?x=> E[ߟꡌ㙽k-b6~{a_~Ε>>/ߝKמ=y $ˇG \a+zI^b?%On_ lۯWv7ÈY\t] wX`[o'l)pm<.q?E`+xa2 \SN( ߴzɿ(_m+aFn|[ԻVo;Vx+[O lﷵ*_̎z3l< wX`mijx}+>.p;,0ڣM]ﯝ\ _+`0U'%#^o{x{Mb_7h|+p;l:^ٽo++[> 0 VS #ߴz?W+<`x++<I^#ox~~'^{מoI$׶Vx3~W46Ϸ۾i'[-ۿO p=4^Xj]4?r}mz[}_oXa_5]7 xeOkě7<{k~~~Ŵd< ϛos/dEgsNzual:|o [>sYvrmONNnGr] mXvᅧw؞/yzsY{yax}?WWN| _K? _Ozۯ \ <`[όI+[o{=]> F"0[j"^Vīp 5\G֟__G37wXOxe8jyv\^ l=~??~O?/'G6\p̿? {޿?+1??s]_JGh{X;?`|s?;?w??{+;ݟ?^@o2߯/lG~W?Sݿ˿?"ß/?_gݟ.hٌNwŏ /C>U; ~*Ky936͏hyY3۟U!{[Pew6fg7˒2{d@e&@/9߯+rbҤ^bTIZ$E&ͫʔaLfd{5~ˣǫ훶p!myoϳPŒ8jNX˿׭ &^blq헿@sњn ;w=N-gj/P=wש}Ӿ,5ov@|đ93W/wIo'/Sdj\wFbl}e;DvFȜ6eɬ96cF_,IUMzs1j&WmvLv)WtA(fb2Kf왒uZfONH~%;"ѿNgJ%ʿ-vby \G~1jL?,;UKʹ_^m-^դaSF(6 *;b-SW5%$MI֦׃̖3%sdĒ@E3fuGdIڋbT xՒzwj*@<,5gJfh=\֫xX3[dj́ʗ^&Y6$y#sQνIez:W<-S25sdؿǗY2|ӵZʹ92gxY2kf'7VʁVh@+_zxX2[f̑9KTrR3s"9nA|59Оܨ+=K̑;y] UMjI=Iەn'k%֣Tz$aAR_Q wؘŧt^1Ú2{f@f/dZyXw/h1Ñi_.\d̖)i˸=חY3[fϴw-h|hGN,b bJȜ+[Ú[@˴s -gj\,9Pˁd@z 9PρzHJ$%3v"Vx\Y2[fϔHgȁF>@#/p3g4=wŸGvb_3R)c/^(Q>VN/ekd·͚%fLL)ݠ-VUkf˔_ ݤ?=]ilF?uƆXT=_$Mjij_RII=I+̚i%S3GJ/f@3s Ɂd& OZ2kf:ʣ4֫B죚ԒR ƫa,:̚2lҤ4_m*^?qMwW=IFLZWW5%I&ͤ᷌(E()BI)BI)BMjݙ a%򻛫%defL_ھ̚i8{Z,iDwDOTk+g2Kf왒.2;󑔤ԓ$Ivt\W[W2vUYKQUJmmzHS8m%3%sde̚hj&=Ԓ8_L̑Z˲{c@ r!O{_rkzJ '2dm!;r 'r!1S [AxTvR ȍt`o3[p#|#yH~FBvKHxyZɴKWrEu$x$cw]kQ!)Og~Øu 'RiՐ;b.3\ȍ4䷮xͫ(+Alj kV%o\RYmnHEnsH4F)-H-_-wlϽOwllH|yHdl m AgfNc 2LA Bd\\AP2Ae5OV+Mm5:ag9t܈Ӝ|kZ;1*Ґ< "TޞG<6ҁ9zّȅ@bf 3.̗3IE:/ 10 2&f>k##)ȉ@ vp7dGDF/-Rr.Mٜۑ)6;6o}'jgSj5y]OWdl[ȼTFY9I1P@]+rDzG@ r" $qBb @hbN͋C Ր)ȿ }w:|0G-6#-)ȉ\ȍx QB.R1{y 9{riHZ?;wDưg6 ԭif·iUZ :] ų;U%.iHfˁ$G|ohPLP{j6@*J] DWA l 0&DpF",b3(Y'i@mȎH HKCywC s6ǐҊ ֐)ȉT$2z4Or^@NB*Ґ0 x>HA."72ھڋz/;Rȍ SVrk;'Pqf:ӎЇґ)u:kyPjlA "S BTܺx ",8\9V(W]:0ל6:"+" \>6^ 'RJ@=E֒ˎD.FR,PUr8\HE k@ r"cL: ; yHkޑ2ģ<2A)/tnL:HA:iV#>ҺH@ "DZDa.DvK팫H1yHC:Pr T=0v~]]uYg#9,EY4evv~>< ؽƧsV&r?_NBFG.K\:0K\ sʹ6?E)ho~$~r"Rt@OAH|@ % $Fbb$a\ba5u_r+)ȉ\ȍ]1sr $Y?Qȳ,ߺ| 9Y>j~ّ@Y-eKs3FΤrOk&r!iHYʙB|{搯OR+m 4KSQ#ٺ 08E y I"WgZEv&erRA䯼:H@e9cUɕ]YU%W4@''㬇JAQ\Rw hAa4箜>,{VwIxu3)Wg(Zv>4K|ufOJWR󜃗H@i }C;7S&HAd^ O8c+ůQ[.R ,m2ߗ7O4A SnkԹ=5A AOg'IPN櫳<ۓ,^/[R9 qҭW Kv$x#S{%'s󕽊]E)cvvu'm.y9yiHJK DƯYa= y s OXzǘE.7Ty:H@@d A"(DPAhC g!†hCgd5do2FqɁ7dGD."ϗwg*Lڨ6rb7K-6(;K.;RiE:dIKEҁґ)H gdqZ&)ij6P h2+{nW7/;r 'r!/F*f!NFUǩCցVY΃x^?j4A jY$p}щ "8DpAW"w$pXqMēLP чbfz_v 'r!s 3\Fq6K 4^GIA:{=Rl@t5@ miDi\qAyfɍI1sWˁȅTd:E/,6jCF|9ӊ<@$l~eeˍ42e$\|X-f G5WvޮUӠDW#6(G<36v ' k!T; Uo ]A~z\ 2dh)(H E̋@.7Ҁ3Z1^K̇yռZyՑ)ȅ@k#1Pg^b\@y)@;^Ѣ̇iH2 X1oQwsDW䯼H@kR< tn:#n":.Ȭ?]`rK }@ 2 ʞkyhC֪ɊҐ)ȉ\H $OEEܵVn r5@i4W&IЬș7o_Z[tO`'- {!/Em_-\vb}=Z~ Ũhˋo y~NUe;yC{_)k):un[^j1U^ hE!=7?͍?.r"r# w83NPn/| C#FˉTF0+d]HY<&œ9ێ:2gt@ 4EAWH@~YV ^T7,+MmBLy?ri]HEҁ!CsVF:"cSb)ȉ\HG$bt2GE3G4˗Nj}Ó HAN"7Os3̗q%c ;2_.Fp4dGFcʊq bUJCII@/7_:;?e hhUNT - "(DWA!Blt6цxYtށWb+h5P Dbߚ3]2+5Wv\ RZq}hFf}(,+p>ɷGKX~?^ENmL̗iH 40PnQxFj.r0_:0;'8FS,FdΆȁȅ@ m_ydc>:o^&h6RlG,?O6+_Ų+MP{}F:0116'r*<ȅHw)9j:Ċ4WCFźΓQkScɐ!t3 #r"R4쨎Z̜>HA."72z>ސ[cƧ R٧ן\Gs6_M)l tVGoQ)hbfdY)ȉTFP0t$ $ 9pb&㑰9r#aWC '- H;2Qyz[/oiD~w%JԒ16 HC:r #r"We QϢ ';޳sO'kM)@g4a}TQS%HEn F$t/?i)=Y{[jHAW B"  " hAbS@4@@ jC " "lW| 4eG r"r# 1dV^aVy~qn KH|`{Ur yq[i\vّ@5Y@FuY| 4?͇)Т"7͈Mhr"2q*-w#9|m{$~dBr Rȍtb@t!cOʕzS@eir_Fs=PېHA.$g;K/y.ȉ\ȍY|aGS"FvmzV{dT!)H 1PH 408^(hb#zu\69 HC:pbjbE,wZ AūEEƃhyy Y\f2F4n!ˁ$'ޠs 5h4A {;9D3ڛH@ A6\&ƥ w9FCRl `nzّum=?yl=ñV/Y2BjEA.d,()2G=KDܲ[R94o \voE2Ab@$Ok} wë z' B}L->w˫e{>5tiM<șeU9rGx(w3|9q|9\g6;ڑr##9Ŋ|h\S?^U0-,NB*2 VR;5ה\l^:Y m AaND_y5Ͳ6_v@NB*9P1b dl6F^㮑J^QQx1 W@4@13HC:z Ł$rEb\B75Gᰓrw SY+;7 yVdCFAEQ4d g"YɛLf#SI$SI[t-|W]s9~ɲOEQ[lq߅J6rf;Kz믅^SZ9z7r' yL񶡍iYXx'yldGghTl}"Ǜ~OL;>#i~Bd%os<'شf?$/&уtϋMvt@xBr3'<Rd#;zu ǦŅTF:Pr 1fݭk%ow#GVv4ZD'y7Ȏ6+>S|xOnUi_u>hoA$+y!~;YYʋFvtAx=e ,҂FvtVZKIVr Rg7ʮYN$/&O7se'yldGgo 9ڜ9kMvt.\BdOOf2OȁȅT$r`e9Mvt^BduTw O"+k!^CcH5;7"+y >Oh>ZyɆFXE+::zJ ^vAr6#tjArn4R?wɆypԩ}rkZA_X,fxx,r#FcDIYȓhWk|^皨ϝ,S}HCS8\HE%9k HEnkϊTok!O"o-O %SG+." {ڑB^d%o;˅ޟ˙-w%ȓ_@B ّ9 ȯ%:zz60߻ܟƞЯ'9e[^1)uw875'&SbO7)\e%"[UςA$G{,:R>׆]î;y'y)q$/Lg5>GJ^eS뜞U6=jH{(g1ˎD.Xf?@34B*ҐmGRtMdtuǝ,I^M6'ˑoRL&[t-:E[t)S:_%]J%*~d#;: |d)V2~M,&Y75zCv 'r! _SF/Q8Xo#Ud#;7 ~P6fv>*2VvhN$MH*Qb84r'$/9'śof/.\d%oW#Pev"Os> #)Zy)u=r/ko&vo!/rj֗no^U/YyxJ`!\y"72=>RM(?=f3+79~۽js' yy9g//>StT ȍtnȎF^d%R^냽FA\^;M6 kVrqw=GO*t HAN"7Ҁ^Ny7ȎLFowTi~Ɇ}#WL/ye&{(=E;^9&5;yJ>{qf&zzEbKȓw^k>gG<əYldGσ,dc}m&IV&;BzsYOO"o_'$/Lz#S.d)^d7b;~F~ 9.сQɆɯϝ<O(^N~}xR)d7)ޤoQE(ޢ]QEO)m~Vcrz'wC RyRcM8{grި9ӊ ّ9 H {NHA."7ĸ@u 40h  4(` @&Nj ^`]NYȓd^/:9 Ʋk7ϋF^/ ~d!/_Hs~y;R9\˹ 7Ȏ*Y/?SN23/s?SA;bKHAYY zT+ B_X32A\u4Stj3<'R@m\%8ʱ=νLc_owڈ"NI^d%sS3-W=K_q҆2П;9kԳ\5y}xUVɟ)xIr׮#ˍ}d%ǻzgu>w'y)gVG= A"+9jEИ {~hDΈвIGM6hN2}P]ʑSD#B?*@uZ]>Yeu5gGFWcmr"2WCv 'r!viHF埏9 H (=Fk!/7F)^ˍc~yn`J3N?R?{=Ifg؍p!̭0򛜅_ y4[ ّx:%.P!Ɇ9tc Rِyjne q*r# b¢>yu@NB*ҐT Hil^7E5? 'R1HچFA䳕۪[cidf)lUyfY= ȍ j|f@ r"!2*d!߾viHPg\.Rf6Ifof._Q9$-n!ksדO"+ȎoSSuLDDrk#!LsvL^Wy)ȉ HC(r cZ:!JdGFd)^tꏑ{бNv$8 T3糣%҄{ cizRHKDŽ5sd֋8Ғ1I^M./p's|Z$/ct֭\Nږu=TȋMvt||{"7Ҁv;/r"Rtc ?#3@˅T޵z#+y췜 'Ri~5_b܎Y;.ϰѮS ̆r'J"yL}D/PE3|z<ɱ(&q#+ʌN$/&gekGXt2cu]g]ʞĬFg!/y]_oAr:w%o>.[sS!MVraJ~sy9EΙG =9Y`%or̢{œsmg]jHANBn'h$h*9pa܅@YsiY5muVcIĨy>O"ow#g.$/hxFL(o6Spǝ7˅efVS~Mv4r'S~H'oV\9\a:@ r"%'ōt`ؑȅFf39 ͎ȉ\ܩu謴y<'SNsuu]#c۾(V\ȍ4Y}߲9 HCb ;Un)ȅTFF8xK{=>ɋzT's'rT"3ғщ W,Y_Qg}hGV#Y:?f,M6/u<:~;4r^/&sԆ6Ql8 ,+KsL-C7ȝ<Ou @Fzv|UZuIgu*.9TFjQqǁȅO"or$ 3xk<9O9#59ǿzɱx~G/6zCR/U}V&:+}}Yʼn\ȍ4WGdª˰Rt6@b$eDNr'g޽țlܦ>/?$Ч]+ȎFd!O2jcB͛ם,X (V&Nφ7njTr( ^d%Gih,x<y%B^d%o#zZ=ZQ)BFVXг;y翬=^d%ѫY"z}Ws$/V} ;YWȖF>M6nNM_樧ldGA23wb)鋽}xsϑE4z׃<ɋ14'sYJYcZ92xK>r 3N(6w;H3;YȓWV`"wTXٱd2E~4ga"ǂqQ7k4pktXdzɆFd!S<]dٴ:_utfT[uD."|yR_ZC ^H+y6QgA^@g9u99 Gd9Vrnv3`9i p{%G§#_ ZH'y̤P ȁg"+ȎTi͗ґ)ȅTluDFn%q9HEn$>b>i4^7*"WQ>k"|F^3x_vaґX!k} sNr&2"ǰTLlhxRG^dx}FGw,CޮHjwr<;]-_/&ѣ wʃx1g:k_ ^QpMvtN}d_)xЋ--|;IRO6dvݿV!/nzt#Ovc l-'n r" HZ'8Sr-x 1f(g5P}ib7gN j+y #C%~W1cl}U ?n!8:r "1@gVSwg&l~9zD`lNe^7'9wu4kzu ǔɨ S|V<O'w jdw;Yȓțb@}su)X?V?ҁZy-IV&HxǛ l+/\, Ͻe`lծ>7r 'r!OJE#thM9ϓM|DT)yα[`ZȓțldGO7MyΟ)ޤxg5[JdGk#w2ˑ_)^\o)^|xm:|ǘԷ6Ɯ?.䩉Yn>lx3;Yȓh7yZ% 6ۤVcRIHA."7Ş1nnumHz-GTmϛlhiNέg9 -"o=0Jl"yTgpiu=߭B,y:B4)/&9ןɚX. 1{vZQ'W={=ȱ$k*Y:2s ]ySȓțldG/-CC)ޢx949C7>N~--a~*.R?rf9_Ƕ'~mhލg<ȿx^C Zqml춲7 y/,I^M6tcG׃<ɋd#;zPA23 xB+_( 'tM7˓J,yJdL>:OlўhO3#};Y^M6) "(^.Ly̸ƪg̋jf^Dٝzw!O"OKd^\)0qY횜7-rzh丼91xFtiѷϏ;Yȓ^:ߛhjEjjEEjt _$Y dӎ?Y /-IV&ǢQ_^+S_ocO~N=D.dҬσ,Ex)w2۵n/&( AܳxXٱ\׃,d1'Ɏ-{onYȓțlhxt,ݺO&yldGRq}B^d%oW#w2[L[VO|)R|DV+GG=OcF gԼf>/DjGQcH=o[$*BzmBxό'\ IQ$#k$Wxկ9f cxYDt4V7ҁ}5.5*FD.Fp`b#hZZ U 9>u}sɎB\+y >w SzjV,ۺg9Z;9yc~3MQ1./"7@ r۫t4p# eGFUȜG&9k9zk͊ȭȃ,Ix>g[]ɹQE+OI[qiHF=U:%ȅT!cYȓMl̨~D,I^M6 SÿwՔldG{#rZ$+yIC@*1\]I*/L~ȧNhdVۂ@y!""zT#9QPyJdG œZuDȓțȝ<ȧDViHQ7bNP6t%K)~<^e)r#ㅾfBN$+y )ަx9UTg9QϱF#qVx3[]q-z2ˮC^kEso[y Oxe͞ [ߟ|MWثlŏë xv͚np0y"1 #~A2` x[-eӯ=ba^e۞<ęۓi `ʹN=ح+ 셗?D6t{VVdڲ\H Q`ߨp=7*e߿xea'}c<X`[Fx6JVU:Y wX0M:eUzj CDZ|,Aq{T[gUWa=zWޫ%+=e5WSx?$I }OhaOUVIj97kf̙Ǔh]ӱV}MG|2Kfl=sd"`Y_N%p;.853ŝ?=']<:fL+@ޛK[fϴoWwMyIϱG=}K~ץԝ2]5f{2Kfl=3j3@=ڏ_ӳ-kE$5"}2m|Gt:^ \-]E |3'܏mK>AM{ gJ|w+)53Z9wX2mx { xn= 3s%67Yk왚i-OdNl\X 7Xaī3!^+07kFx6c9: bs;lO<# ω߿l}`+lO>oxf9xG+ܮ=^.f>k~)c+a'x=x/=ͨx`Kdq|˪=Rs{2ђZf̞iՆWpfR2%eĹJd{@V:F(}oLq۫+/SX;lϚh|l=Zmqq<>|-FUuxۮj._kOc;:gj\dOm̞9~l(9`~Iwsd̞3s%w@f@3Vg@=~ۆl{h`wv6\=i#c-K왖vgk/>. iYJ=^mkf̑Ra+9Hr C<6}RFa'(Fx|x|x<pr⇧5_. 0)xFo(&w"D怭'ᏋMpaK+xuDc[`aVx+;6.xJز-\`ѵIQlRvw,qd%=bOv#G̞3Rldq,V< W xEJ.paa +[ ,p;0) Ƌ;l2fT=m3 \{;kq| ,p;ln_šxd'9'J}bc)#s%'?b3Zg';D60Oh#EsoLfĖ#s9XIo;M\{n5e!+s\MMdk(9<>n]\܋}@?#Әoۏ&^@6CW~=_Xw{UqsZ~V7 t[srwx3uEK;9eL͜+Q̽[<熏]9Q3GJ{IJXKfʹV2PU}NJ{>T%X`[e87+($߿+< l+Sl2g xe{#g0#"g07ox @x6YhKE cm0ivX[c5Hׂm `*O}JXz=>S}męc>}ejȜ,6;< V`!^SFxx;We03npFu8& \k >Z>(c'0X5vrbl^{:gXwXaàWvy`<7v`>~hM{EwjFLXrr< +]z Zr1fl ?vr]DۄWv+4>=Ȯ#KO7w߃!_Z/5ejȜ\*p;j8E:3y\|?c+wŠ|W؋Nknvz2}r|Q5t ;<=w9b0Ro J}D+>i93[7È'.<W OYQ@X 7Xpoj4,GYaLJxvXa[:$!JGՒ]^s;<4䥟/ +쏚q s+mΘ;q.\`+W:lބ[VVvY59p}U/14b+Ɨ|lKf߰{}o4>Ll=S3R[dqkm\דxw̑ǓY2kf́lhOOVVo3g$ɍe=S3Gh7%f+Ǯ82-|Wu\=w|{eym#;滚d̞#sq~)]aKe6fk zdՌ@6u3G=|o{ɔ̚3539>r25sddh@c`S7F\dJfjhp_V㪛;bK|M,>/۲#~+K2kfL;ܙ˖X,5ȇ93{DR2%eL͜9o&1z7sg-'=wrJ{ gv{`k#oL^پr7W>pmݧY^k,]y>6o/2D`VWNX2ʚc̞3rh{x؋=1'V>+<ؒYz\6MvF4=HfX6hya'1:"ғ[o]YbWc}+ӓm,c$''+l}qͤV=ox{k%S2kf̽ݺjs'ߴ臒Y3[fZ猯l}`{]q '  Py͝Ĵ '~" Vx3{=.g>u2 ~._ |d̞֏)1Yף \+<=TmNLN,5e8P[qkɔ̝83מi.kn,)6gnen&o#736V==I73W OڈKsyo/|[ Īfy9<:?66͖3-[W?;KL|c'}iFxuSzKزsVv//p;^KxT x ZggE8\ ۣ(6ctyi\ꜞG?npVv읟c-g{ntRxU^+FvZLbʹ jȜsX2%3*=sZD*K$>Jɔ̚3Q@22W;Mud̖yKEKd̞'Ǚ{ɔ=W=S3GJ'S2s mS<x*NCN3!GY`+w'>N=aKmqj \a̯DmKDN.p3.jo[n%&OşʖLߟ%#'p-oK[.Ox:V`aYN { Шs\+<Z:ߧvؖgdW̖35s9bJXsߊ})왚ud̒Y3[f́Ui_N-|S2[f̙ބ~vrd̞#3}Í6{gvU>Xc^DWv+V獆2m+#s%'d̖ȷ j9Jfq]29qfKX`k޹%~ɔ̚25sdĕ._' xj^ǶC+מ3s%' 7Xly`_A" wHџf 38ʮ~pV؞ʲox7o׮"/5sd{e:;Ej(i8;5vZHi_w+(Gok\Zoo& pcϯ+{Xi6_~ Vx+{",0M{e_8khU2e?|߆?[wXiu◵pگԝmϒ~ﳀ- {9{kץ}K;N.p۳ﳛ-<.p6 OެtZ d+alK=k*f̝h\˱vp/qC5ު?%s`W2~珚93W=O˒wJ$-{a9X 7XRqXwx߹泬+a./,p_̎M$>ˆW:xV xī8ފx*X\]{d9q&`k+*Ƀ$dz[f3s%vWroʉ=SF̵]Ny_g{>?_oGWG۝G{AV?ǟ?_~v?}OlyF2t^۾wvJp}_g?كM}'/??ϟ^;v֎]{#寎AL_>6寏Pwڂ_?K+v& /??Rk|qy?O9'D[޾Ojڵ{x{_=bk^y}^7}!eooo^믷c[ȼ/ݙⵞ-؟='n[w +jkLbq[ ^QO@b;Xd {KJlϊ86LM+ 0ɂxx"06$U"{+U[ 8b[XdWÿ̱}"]K=.'EoV,_l{fԆŶj|u;_>m^Hl l~Ƴݿ}:-,ۀ(.pcDg练nwx^٫_sU x+CV_~)Eg%X`{ۣ]ŶȞ~ۣd}z}Z-6Vx+m.E6m-gAۓ~ۣWFx+mcٿD~o l}`+ϛ hmeƗ^v=ˮo< /E'(Y`ě7~+r=zq^lkl+`ek.px~/l+1˞Zxem+a; Ȓ(n#?zxۣda'HJvG+~ #_#E%}>?7no{xC?_m秩{Xv:#ެp~ۣd[x :.{~<9~զ VxGɈ'>%# /]Wq*UoEx8ކx !^6kq:uoG툯8^E=jӒ?~-߿x|ܫ{Gp~y M1d+`xo{$3o3Y5vOv;lMxn?:/>^Ԭ=Wvy`+Q_1^K  ~7+׽AF= +x+!~CFxԸ4yG g>p~uh OxeZα.>yQۣl ]3+$Gg%XwGp0F=*%&-[O5e/L[X=^пm<צ'{5nWv-~?ڱW%[{Tf =G xf{np3ߏX =^zSou+{X{q} +^=ݞnxfv+xf\o{F-*Sv~Btnp<;u#^GHxexұ\`z xf.7;VBx ǻo!o/j.pgvAxE`+Fx8^A% \Wbry{=JW% xˆWO3\+<]Wv!^6kp uoGxᕭ\ 7È۟ cnj㝈?ox'Mw۴/?kF`oȗ#W|t{^?]`a=^|eW6FxO2[ln–OjxfQrnp~:"[͌:Wv`7:yg,O-pWo \acċ^w{t[ =~m<=|q;< ˶qGFW4ʀOOpo{$˶{}Q\W#}f=aG [>=?ٖgt\ #OT`SSxzAWyw\+<=of"ޜ aXzO%o[{dGWG/go lm~+X`_Amg|WvX>+>o>ߟpn{E>

x3o{lu wK\/:=,ƿmÏl~wxm>I|iu x+{!BUa[ #J%o \a_0 xfz)1t\f~'G;^H%{~[ē [ja'l֓L|cK=wU~/5p;x;[/V^{<鶝zSvq=^[l~ZvZv7 ,0Mc[ɿeuXۖl%~?np<}}1EP^~8»t[ wX#=Fx;y~m?xfߖ+<;v[`kW?zŸ^-I|+<=?mo0ʞ7ox'y%-yXO\{¶>Xo{\OxemTۈWl<o' \+<]*#^e<oC#wbdW؞gd.p ,?vZvr| c8>[>_|p}z l%ޯ7Xa_\᙭\`aoeѳ^4]+lfxr=Jn ,p;xmc?N^-DRaˏ6|i3[_Q?7cUm=]=" F+|'l3m 7Xl>.oo'wxi{Xvזl'_?^uX~m8]a;(<Ƿo6*o6v=<ᕽ oxVxo' \+<`>mZ-{,;>3[lS>Xv{J;l#^pm=߈S-{$oZvoadW^$>o/דmWX`ˏy(Ya7#q~ue.͟ze{1=7È?oe/[*x wx3ڣcmL߾V62Im>?6c}۱?P 7ϧXm)W`ۏD{i Vx3닧o' x+ۣcyJ\Oo{Ԣ^m`xwmTV xf.1֓$<Fx}x#ުg>^-o;p;<`c%W,;66_'yW<ӭ^pu~+m \wvCfW` s>l>bֽ>^䕭\ 7w?o{\`w\o=TܳV?n[N[߿+]%֓ kÖo'+< \a/W,˗۾-\ [ӿ/x^^X`īێ"o;F\`OO5o,? \a[{ [{"oێ \+xsf/;'>* ^Gp.\ 7X՗NgcI̷wz_Wv-_n,px m#o;Fxl6^{Ӗo'W؞g–o|p|[^W0fWppo \+<`+I?vFcN?/>n)𝏺vr~WX 7X#^CV`k:x}\`=sˆ<]ğWj<n[}yx״Ǯt'G+{X o'xp)W{-p;W olQ/ xe{cī^flcOZm}ymOxew+x]aָ~v{tyGzqy䱭qt3IIE=cOxez$^پZo;qo-;YۖlAGzԷ=npl%.nk3=Kcc+lu#O \a|c|coekJ&W1a'=?걼Ww;^Wv^}&o'[[?ɲؗo'?lZTx+{ד] {7/?|5ym'X`_;]~ۻt[ wX#߾#w"7nǏ?Fgv}`Y`oaW#lOkNg;m+w+`<=ϫǯj/ E׏ \+lޞX6nI3{xo|>Orl]xXv)ﵼmX>d۟s-6닖ێgtlF|n>=x+onpK|^پm}{fon[?p+xˆ#"߾xx;ox 8ށx&wϷ͸Yvr=_1~_sf. –YzzI?o{o<Elm ֓=.plAt,po{`F} VBx}xKa_vZd7yvCq+}2s3[^o =)}{C>nY.N.p>S [m'iѱ s?|oni x{\ wx^ٳ6,qv(1/N^,]_|_%+)n]{r{3ly`+am}nlt\ ۋm<_z#,pk~q{ ,p;x}x1))w o[{m ''Mě>v{t{+;I~–Pznx.;^qɱ6_1+{YGWzX^-;Y`#Q/K:6U/i{TlOif~OG|_=J.W/%3nxH/]>izGz35`<}?[QCwͷmǶ^\z xeOχc V+%>̈ ,p;< ^oOO+<]Unn lm'< [N$Wg' \#^0w{^5\ 7VSKGc'[kpm}Oko;ʞ6]_npy1~/ye[~[ |}o׉kۖ,pX| g%wXzs?z{m۷~m>cm+߾}=x{bW~vnpVS #"w [w}C~X wXx=%-_?Zv#oׯ=ꑟtx+[OO*x>ߦq2]_=+롾+lC[WXv؞ߤ;Ծ6)mW~|coK>oT{$Sz')pǻǓ./8%pmN.{=?_Zwxo y;WxU \[<U[v{e:#wp;< [oVx+Kr#+a|[L zI3~?]Z;<`]٣ Oxegxe xf}sU>qքimnp׷Qw| Vx+[O xx^|$R#y;Wv{`kFx:#^vokX7 3?8Fxcbp?o'IEϯ|۾]`#^Ƿx^d'v9+jVx+=O8_͟n VƓIX`>KW}>W},p=_=/gvFaě=ό8%p;bW=X{aO*}xY-}ϏՈ'~{_ݞʮ,pxu~ '+xǫ8^E\`t lA =oo]~|Y ' Gو_(xO,9o'+l,߳Xm_v\`_~>v+#,q;|) [= xv+`bψ6>^,;ye l3Ƿ}~+p=~/[?Ʒ?7vr-K$+y{f ^  x-x/\ um~fm|aѱc+xzoOXvn V!8FxxvF<ϗ|jX [{(,ߥ Gv_] lb?[~|Q'l#|"^|Ul>G}DeoQr+wx^{| #"ްP(Vo[o'>[v~ۣd[Yn{}D<߾l| ߾Ӛc}YD=1vgl~ht,pwF l/X xN uF>ұ͟JZz'N|ۈ푏z 6zm^W~XOr<=; xo|*{Vx<>pz|̈I \[廔aUFԓ\4NVx2bc+axjO=X_6x=wxu+af\Oz| \+x: #ד'Fxs~Ljozdl}M ewx^٥IiIW Vx3"o8Zwx+z6fʌ|+ l+Ώ6~ob}ۣd;QWvo.pouք~w+,p;%#oފc xb_*Uoe7ojfsI>xe.aqlϋ3>>pi]QOX x^,po Ϸ#E+'+`}|%~,[zuO\{=m'}_<6}8 <=\`ao]؟CB~W #^Cyp|x%~gW xfOěFxo^٫7IH|K ,;Y`o[O)QXa]=bOxe6~( Oxe{}cxwXlo x#~Cwqp ߱,U>[+l{w\ 7Xa3{"ޮV۷a'vgj>,k?6.pgv 'D+<]*#^E:#~CfWv/V?ccW>Ij|_Or<=خ'x+{"'y/.$bI. Vx)o.pyꑉo'x+>-Ojw{<˵XvrzT_Vl۷ \wxFx^ۥF+<n?#^zI^^/n0+yvnpf=mU~6'l-WzWoVo;7 3Ki߾axm[oD|3`ݿҢדWWv,pm|Dg~ \ۀVo?'Aq |6cb۷}nv< Vo;Y wX #oJzx+<qOxeWī#^E<*5oCmxu떯3$sW\|ۗ ,p;0F'e^%\ 7þ.>Ϝ ,׉ouX ۖF{p|;U,[ma'xo)(z'գW3\ 7>?l?3{>pn0ی/In#B])ތ$1t\wx3{׷^/np+^R`[gN^_I-p}oYZ1~#+g3l| nFX=';aN/ǓlI l$+~I x^_q+C=.{o'W Oxe\J]Uop;< xQ35k #^Cq;uoGlyW>>a7?OGXwXa[ 54>wX6ixS}"_. Ta~uez$$q|W|`-_; ߆==>=ϔ }~oW-;6f=k[pw^l~ZvS}?\޶zjp۟Yak?q lV|?c]O|}x?pzI V4ד|$8{<'(Y`Xq<{|}-Ej+`< ۖaowx^R`zI#ΏK:VxV?o' \+<VoY|wx^>},?SVN*/xld+l3O|3 ''M׷x+{x]\>\+np<]lxұoE-ll> dz' xe|q+`į5ċ>#'q;Wv`+a x`S 8ށx;`\%]z$W9jpoY{ -R-W޿z~u wװ>'~_,pݶzguN~ۣ Wn3G,[o~Vୟ_?x¾^=X wXaozZq +vx !^Gq;u""x5=OWObp?}=_ Vx߶F} +xW #~A`+Wf x+'㭈Wxgv'Hxe~IW #߾ot[,[ '8Z`+a>W 'cěێozq'ۗWpFxo' \+l|loLz 'D`qnq|<+I~t[Z-;EWmw]wX;i+Kiy^W݃HH K #h z?AU驽ֲHO?~Txgv }hqAz=Ӕ4w}X#gik$ \{='a˶Wg۟S<|~o7^.WTʀ0eWīWqq~ Ox 05~x;phk}=oزBmXol>oJg~sToٿ( q}>7|m?W؟V~ǔ>"i=n?Oxrb7Xu?ПXozhb->WW&x.;{]ɖ}߮px^3Fxgmz^Wdx'v7N7l٧=x& <^{~zOKxg7F<7oWPowow.pyשo]ψWo>o߮溜mV~zÖ}oZWvr'`׼۷ X [,p;< #Dn'`ވwoKk_yrGn_Uoy<+;yšQ۟Oo??߮1^z۷'`.Nnp'&?\ V~~A۷7l_|CWv^ߴ{-?p>'=? \xxfo"/O1y=p ?^&Ƚ3# UIArWXl^_np'`vwy7gVx ްe~Z_Vٕ|np'`?_^Co'7>ݯa'az~ ~xg'`>Q齿Knp-?/xÖ瓼p=0^-X%wy^VvraO~]0 3e$'m]^`x FakGz\ wX} [v Fxcw=xo_^}ߏU Z] Y,p^eWF wxjCۖXYͨ?? oزW*ۮoOv>3Ko I~ްezg u^np'`ě~,po^-;G+x ׈o?0#F݈gg0G{zj|l۾] wxްe]->p'nz5kxގ:#^G7oz /xg$_o'wxްe/[O|ܭzmyo7êIw;z;<k|>To; x~g+|to+ӽŠanO ߾z{ڲ>>?z #[Sd߾<jVWva+'oX,7I>an?Wo#.0mFʟa+g|X< mo'WX紐-?Oxm xmU98s;<`h~WdnϿ&|Sm_wX xZ_|inX$z'?,{njKlK3=7XA /xg$ONp< [!^ϛ5x$]QO|vr;<xg6+סziC{Okҷͻ-jK[gK~?Pݮp;O>iwp o>% Nϳv|Pv򆽽3#pyx= Vy; ް{q~[{5^p} /nX۷a?To;Y*v)p;<` [vUAQYo/}{ tok۵ ;u;I#^0Y@x;oh` ['q~x;}V~;< oز7m Fx{,m٦Ϸ~5h?lVW0YvAx~^5K<5_ v 0UoWxg{}Ϛ_ܛ^-#^GS6ۈ>#@7oz'M\Dx;o2_Svr;_N'm~y_{~< +hFSEz }] wxh|wڣ?(qg+`)]/;'쯳O+oaڿzÖ]U3oר9To;yްƧi>wP~Pv翾^e.#xQ #@1aozkl^s^Q<}|YͭyY;{?p+O,xxoz7o OX_?WrG3}}+כ [v-p?}-=puX-xgWFx=o h0 \Pp8mƌ 7X%[|k݈Zo[Xa>Qe(1?< oزψgڟ9^;TO`(; V> o1ToYa(;ٲO{t[WZ}zo?1۷+{~/ز>%}Vl \X3g}ٲ~ 7þo5<=?{^a wx0yyn'`Wv+0_x|>ovr+_dzU/e>~Qs ;>/X<Ίm?wx Muhz[< [|aGsu?_IJwوgv;<`͗>۰~m擴OX_)vy 7V?h(; WanOWU7xްe듼WC׵"o{[u;<k|wX,׫?;< ko6@|^V||w=0$'xvyz۞_< M}۲}s#^*UQ{1ȏTn*;yV` }5^^w50Ox^wTv7lٳO|x-{=pajϵ`.L =i>g> \aիq?O{t{ ~PO߾]wx J ^0$on'a>ԟ~'Z|^-ƋϞ%?OxÖ=ˆ7;s|nF ްxOxXcMg~g~G[SްeWX+31`+^Tݖ= y=loZ/W5wMxÖ \#F`zSzkO{Qb͟m+/X$Z-Kz%}V{Oߟ'͏yrOx]θ?Uߧ[zt}.p;2]W0|~i*;?3z(O2z#^''}p52n0#0-VPV?|ްeV~Va VۿO\`}^vz~-'yl' Fxk?=> `GyTvgjTW?);yúZ\xwko>TI>wx u_zm{=|?W^kI>U9|'?Os//Xo"ްex'vU/{ڏoqnϨY>۷}>^Q>nwP^-ˆWN={{z<^e.0#~G Fx;Nw>]a*;ymM^?xW /xgyI=>~^ wx>?䳝rG|jVg _e NwV>?'';{Z 7y"'iq=a/:=ۢۗOvoV Oȏ7(p5^l'< [Oˆ|V>}x|RR{t x1?sE~gO~8 >Vwx Nxƿ?ToX/RsYoX_V{t׫S6lQG\mp'`ZkZ/~~wx ްewFx}ˆo<0 o x Fağ7wBxˆozz7o;Ը3`ͯ OX9oݪXTvr}? x x*kz۾C%/ [vW~([л7zSʏ!^yI+OΞ7 _x?7l٫W|s^O޶s[p oq=>hv<޼Úo7l+#^Qz:Sϼϻxmζr;< 3z|RkYnWX%~?'y=[x#@1`^O~W.}}dg? oz$}YkxvW_gJUb~Tp-xÖmp?#x} qޱ<.\ϛaG-%`oxkըYWڲWXzk q7lFo ޘ0 ě+-W'_?o^To'YKvg,<`Wxxw+-< o?yy~E>{ 7x^p7^Ύ$O'aˮW6*#^6op 5\oGxM}}nWn#Dt;<oز}3yψ>#FvybIz4ޟ4yߎ'u;<ەzԓ\`GjRva;*Oď?[\ x_xx.p}6|ްǻx} Yˈ]agz+`Vxߴnp%x}/k}+dWܟ [o{+Oxæ7 q|﬷aވ+x[7lߞyz[zko'X#>ߪd.]ObYyj|<Ϗ@\ߙ߾Ox_s`S+v+o'OxÖ=T߱wߎKxƄ|7^^oUր1w#F݈~ l{7'n|ϣw[|yl F2aPVmOR|vr;67l߾}LzZ;zu~Oԓa 7xC?7X괟e?{;{>p{N=Xڪa^U;t+;yFϞ_H=s| ްVvr;< o#^i0+ Fx["^Vī{3\N~oo'wX~= [>xq3kx^ [x{{oa_c VAŻDs#'yZloزW>.}/ز+{[+gwx 0ـ׋u=5I~p϶ٲkΟ|-^o-p;<+{Tp+p< /#^G~֨oYEֿon}N}۞]}?Vwx x~[5[;<`l+MϴVo'WX޿I>OxÖI>W䃌xq^nqnpxz @<ϗx~Oxv'N'ƿ< /زO=Vп}4Ǯk>_^/- \#!K~NzK~.~? W~VmϏ\ UVv7l>^\a_jϖ}ڣnp'xmgwFx=xT^>7xj5{w>_~~k?sW!m'/xgG}۸Utzւ}}&zWϴ?np5?~o~TN.g}۲K+O F`/ft{ꏽn\`}E:v=`oo_۞}KzK`zьطzq$x lOY3+ey_[p< [Fx']_9=-o'^holz۷ /To;y̩I<O/GOx]+#^E<~} wX+y7lٽn0u Fwx_^ڣdzw^9_r+;yW%?#^xߊzI}+뭗z zqW-{۷;< oXowPVvr'`Ts+; 5^kqϖopClپp;<OEܑ/V+.?vr< /#~Gaߏ޽c~I~g^'~N^꯬y}npϪzm.ǿ}7>?je[+{v[uF{io{{;<lOW?#^a [#}p3/꓄> 7e.زm8b+;7?X޳|/]m+>7To;YϷi{}qx7#^e{=\`=jox;%Ϸ);-W#(z^e72Svr}|>}.p_~tޔa>oOx=7;x<_Bx ׻oz-S>Tg=ݞ-_h/N}Ƿz ޷i \+??%?oX}m'W|x\M۷7lhe}^$ GSva>Fx}ˆo<0 ށx;oVriN=– \X+>OkÖ oϗGU5۾ ~ ޷Uo;Yϯ%Y$;< Xo{n?WX뷚4~z/o'k?O}~.gg/XOXq^/<+^o۰eOQ'`.˿hD}ASvr;<xd}=5Ϲaϴn"ޚLpx<n'a;T֔\wx ^OR ֢g|)j-|^5k x~^ }%zɚ}yX}U=_o\{>sܯ3}{wx|k+p;< {o|#M$;<[W X \xŒg'p< k<>_+_\`*ڼm^߶x^\z[~z{|zl~7È^1YԏqpHq>)ѿVgo_6ogo{OXv qwx ްcy+OxÈW|Ҏۦdn8~S>k #^0uGlT^7xN>naߛ 0bHϊ^o^\`|$gxz{t}?ߦ4N'`eOzO5ۮ|YFY󟞿}[.nxl}+;^OXz|[eoOx@<=J.p5^x>d/x_|>WoTVԷ}= }}<ޟc'_2Na^* քo!VM߾ /xg+G|G'}p;<۹/bN.p;m'Pvr?sj}o'/=_s /I}?W_{x x߲O> 7x^0Swx F ^YDx;oz^WXտ/Toy QbW^GFxdkn'>Pv7oW^>mCwxuOزk+-=p ڂ#^/p;̧pˎ`7c?xjO߱e$? /Ixe.p5_q=kgx?|{?33Wؖm}>Y{g۷+xÿx |>Ϗ}^/ϓ\k=eOxZ ;m ޷kG xgQ/+:< [v} #^dn\wXOܯ['vo#W"^-0##yMWÚ$7l~~ ۾ϋ}l_o\w⍝=o"ެ0y{4z}yÚ$q< /X3KqOWزWد7J Ox^(~t\`+tx6c۟Gm?x;ز=_r /ز7#F׿;d>~m?-ƻ<`Zw;uOxvdW}|r<_{\ #^]|keoزk+?'=>-aGtqh:ÿxCk :Y=jE!n}xvOnWn#^Eaī/np 5\oCxގx#^v7p \@?oz'M}yइa|4^]x¿Kreonp'`3F{po;Ư-G;<`g7lG+Ӷ'a 7OjXG^ 8 /XV \xŒg;#^G)nu=q|nOxÖ~㻓OX`?IaK|~Qζ.p;<`7ƳCn'`+xE6ik'=Tcw=< G^^X׻wxn [ݮpǙ%/زQr=Q_jnkǿ'=7mqg> x 7~z_gul^'Cڣ g5n0ri ްe >/%φڣ{N{t{Ox^e0#@W+^-߮poM_ glo^>۷>?xQv< o#^Aa+ Fx{kZ?|Vvݞϰq㰏7lMyw~ex>Vv2=_q+;G 3t F1`GɈ?oV&M\=[_ix9 7x^eo%#ޯ=JFx!ޯ=jogwxz>evt[?';~Nlo'/زQrx>Vv֟4^';qu~{޿anp;^enp}yoSVzF+_H}}!^߰Yzֿ[k=`oUX- /XWZEmvz};<oز gFWXwo߮V?_NCI7m5?WU7ߎx'?r7F<_p?x^F`}^j\R>7~x;.po#ޙ߾x}< /n+;YW:=^.xE?Tv7ϫvS~ 7x^0Fxg~{}ȳ+_G+[7+= \vƛO?(yQo'_zmświn#b<ވoz7m}^j<{xuxxlZ]`|Dz/xÖ}n#^i0 #Y0%WwvCV`kOJFxގxTg~_vr V=7;<oزW+x քo!\.%wx`>ۺNnp},fg­c>^{wlo>I=b>8^Oxv^O׆%k#Orv_|Ϧ>ylo'7xV>xݲX_{~Ow>1y-zQ /xg{{w={g7lgy~ZxqmZ_' /xg.gx=^SS';[_qٖOexwE /زH;<`Ͽ7lVz,Yo= onXo\x 矏(j9;<`>_4}j~+? wxw=ݶn^5+,^_^wx CA='>1^[Zo+ﲗnOxÖ= \xR{t{šiqe|H\Ƨ+^} \7Y!!5 k)o߮p'ֿ/}x>5]ޟ|(OzH+OxZq=Mv+ܚO /xgwx=';{ ްev>{kg>(^^\eo}{] #F=aۈgx`&`m?Nnp`㸨} k}}eްeLSv<ڣz?}`1ٲ0ⵝkN'<x`={>Tc= 0Mgjq^\ w7:}?q?N>#oʏ?Z\l{^ux ޗM \xg #^gZO6߾\t\wx Z!^05Ƴx9.X-g-{-{=pa}^{[w}&S}_IowxڟQk$- \k&`5t {xxUWox mf~k w[>I+/xÖ=o h0 +?yIV<י5ignW^-{x~w< oز ϓ4Oxo|܈|Do_>۷+kyEYMu+`?7?`n\#^0 #o__zz-{h}F64]=F'x=>y lO\`ě7}$^\zŪ_eCt:<`߿4k=sm?/ز `7{??|G[𾭃z \a'kزK+OxW}mI%NxϣǕ}=_y=o'[-{׷f>7XInnβa(N`:XJϽU.;{=ȭz ^ٿQo1 ~wo}ag+o1w'kD5ᕽo+ov'}{V<ZGoSv?_R{Q>ɎxºƷ]\&|[2>x)>*1߮zŸ~w`qz~q|] x F|C<0y}c3ě8߉x;o"N[p_Ҋ%X$V~W6Xϫmߎ[5>mQvrOxeWīW+P>m[+`ċ-ϼ^ r7m&^C㑪Ǹޮpl7$GؔV>W?y}t{η]~nW6X|ko}q+OvFx%#Voo'WX>dxmǞO=ܾ UcD`k;z {${z${|} ?pO׷Q wxﱳ^;lU.pe;֓Ox;דxG[|m.Wym5o;Oo(; .\ wox?_nmOʟ)߿n_} {Z wXk{= \|?cĻ׷F|C<0w"o׸~}Ox;{!B|OxgsIx^KTvZ_Zg%<'~  *f?z AWv{7F+i1v\awvo;+|vlݏ1IZg+`՛~Ol nͶ}.p;lk߯쪧os='}[kW=nO .z}x;lWv}`ՓUSq|ov| /X듼zn# 0x1/.p;< /xg♿~$ޞlQO~ycOxg^v;<`Ջqւw;};[v{׷h޷ 7O^'W?pW3=?¾:V~?I~Oxe/+mgg FX>W5W[ \XfO;{žg kygW^;o3x3^5ovyj}x ;_W>O|Wlڻ=⭝U$a'o.p;< k_߾] \a<`wX>-{ 'k+:uogqV~P^}{}t o9V'߷ێa'+#^EzK۷|mn%<Eo kc={o8w7{m3\_<'ٟ ^>{|o7xOxg׿k^jo{]o.p_}jxDŽqxfx%w| 7|6x+{=pxkogo?n ^\<v{lxW?wxZ/oZ wXsW͏vn\w|}۱/} '`7*x7px53{ǓyM+np~\<_s+ʏ\| Fx>v╘o;.cnj?}^ٿQr+xQ2*UoEx[|7?|۱ڟZRJ̷lo;V}o'=o 'Q~rz۷RTζp;x_xmeMKsgC<U`{yZ/xE?q~Qra{[]U޿y5=']I#~A<'yx|c{RvQwE۷+@E۽|uQvz;J^`+k'ƿG} نxV`3{ngq>= \~_,587?NO[o;{gpxk^zm}7oX-_y/xg$+`+LjWo+z>va}C lo}dqMOÚߣ >\#Vsmnp ވ o3^:ێ+`mo.=7X뿔_S {=\wX3Z>V`gW~ۛ*D}q= 'O׿wz `*Ox^ζW `3|Lq?^Ž>ZTo;/d߯lOr~?sE(yVvr<>);y;6x+h}Oo'Wz?h~QlW/>ק.X-ܼ+'O֧{T۷In[O_޿v\+zx;K:pmq} l>|?S##Ox_<W6x^?#~ 7k}Ҋ뷽>Wnp~?gK߿|廔 wx/X+>Qvr<`'x |<鸩wx`pޛq>WGC{->oT<Wnp F<[& #oxw+`[ILjILjǓo#NbV~?< /xg{>1k}~( Va'G}{='-'`_T_YjV>(;y/X3;< ꅕm5P{{m\`ux^zIFzG} wx/#^QUv x_Gv}<Fx`;$>^c=w'9.OϳcOX-x|WXtp|IƋێ+/ygp;'To'}tUo|^ꋩ¾n 0FxÈx;o Ro;ЫW|`'U;{]w xz] wu!o^ʟN3_}`>%?ݪzWb6x;=;~.D $F<_Or|=x7ַ6X%wZ^^ 7O8oo{ $Ξw^Rr>ֻڴWת߯N.p;< /;u_W o4X%oo;p{'3?xZz{>R 7+vֻ V<o 7x/Ư?bS#;lwvU= ՃNnp<x?15{o!^v8ߎ:η#@qW%7+ f="Ϸ#[5q=ΎzIzIV \a;<lm>Ym<`' +߿N6X/.p;<`No_nn=?WqUp~|m$~ F<ߟ|cy>q~^O{ Oxeq+a[3ވo76mNonpoW \aFx;_?g]?ɱKgmp;lWDY`ğ{U^^?p}71y=qWX>ިd'nonw;Ʒwv\lOvu}t]>}\wxf!^3uoGx5~ l'y\wx7ogx1WMwTw x3-[>'`,^Q/y6xZ_V]_);yOxgGɪߦVOk'7oN.z6xzuݚ7ի6XY `q^/x^V}7TO~6X4ޔ(; V}ϿOr<=Ubxnj;< /xg/[FWg}p;lo={='x |c5>ݔ|_WSG<| l 07?wo#!o헮;{<޿>5t{OxgÈgg+{"D7qjzG}t z$lw~7È}t5~'Hk}_:lopWX+jo|{>L{mgOxe7kۿ3gSzhҔ{ V{{#IW6X5k =hpϭ K^^7ê0xm ٳn0o?_ڿ^oO?vq+x ޷->plޡzn W6xˆOx ۈT;w++_RmF~"_ ~wvy`园ov<xˆWj=gXo{WXIs}xUTo}\`?Cxm'+U;6x^0 xE}^ymzێ+`ۈ'mo[monp .WTʀ0ήW|s>Ҏ+#^C<|_>W7ټ>FSBSQcJFs^'xW+_^Uɭߗ|=II ܟh@WR 7WFxÈWqUeZͷ.p}=j|^Tz{c{;|}_d_8>_X}| V~V=o+_Q<{zl_\oLj7%ո[bϷX#ux^ΞF`zILj?oiU4~f/1ta畽 o~+ovr<`A{>~Vyg' `ī8|[UKo'Wog-X%gop 8npx V wx#!TNn ^ xÈokzlշi߿`Ǔܞ+^7n<]|}7OXW,i=WX7'y|>7'4ް?k=A{> ۟;lWplw!!5 ~+<߻ye.p;LUo;y>߇om} o{Q s/xVߎ];޾ٿш xߏ9U wG|O:^zo N.p;|Kx+ \#'3~KQﴏ۟c'Z>+}\ wXQQ 7 #=0F<߶x>zG3b k}{jo+=䝽 0mm'k=_ݢ~=(oXO ^ή\aoo~k̊X[oa[\6^`GE[^>y}ax>nOn'Xm|<`'j"^] 5oCx #^vq @;lW=>۷;<`'Mě 31}}^ jJQxe{>RZ/R;< {ʇpa'x Vo!0-^Z1d/6x߾]a=OOU; 췞#^A<{ο޶޶vrW4_⿗[Qlgz{m_xm/|۷S l+!6x;{?>$|^K ^ވ~n ޗT/6x+ ^)0+ꏗOD};=Oh7{kop;|> o'+G xm;{? k?KW?$޷=y η~7aO^%Ʒ?~I>{=ԟE6xzpz%\wx^: #^Gn0w ޛ|QQQ؟np<_ wx/xg/[x |+#^UƷo~דV~%;< /xgwLjLjo<0 8߁xpxx53N=<$o+n(;y;{=pa{>]|vu~?>:o7nW6x.np zJ( m[^\X/|*;YN.pCݿb}pl#Ξz~=d;6xꟖ <ᕽo#px{I43<;ֳ 7x{wvy`χk^o4:7?rzmmpl~qPF56x+7=9Q wxZ1+ln_g<|zI8|~p;lWBV~P8v=bY#wX>;b}.U~P?PCͼ~PWwv۞0$=~egz>zZ/lxy|f\_ߟx^I+x7Ǔp^O^Ox;{>p}<'w'}VL򷵍{e.p;<`ogo߈x6wxN.p}=<,_oƎm8z(ª/| n\`M|WFx;{ @`8__O9ܯ> 7y}׷=Vv.n_oyz_G\u6x;{?0mտjq=Ka'ƌzInƷ}>o[ޞU= }o|m\`'J\?_V#/y<oyI+`$O'9n V||X7WG'n \a_siۿ;Wvx~ ֋7/_v6x+#~+}T5NngN^?8V8V=֣x~ l{Wlgj?xmH|ЊKjzo'w w;\X{^.|Ȯ;x۷ ^ow 7M_0m=WN.p;<w}d3c6x=] Z[zwyl+ 'b__Zl}8j?;?ׯ^_[OXmO'9.j_ '#ޮ0m3޾lNV8olo}=] >]"^`]4o'cokؾvm;h><_{=ZOrۣz ^~G5__k'W6k5'G/i^{xX%۱O+l>U); ^J ^0$Ǵ7x/xgo{O߮OlWvG+zZb%m\aijkb$wד<.pQInOx*p;$_xw'9p;x/y~N.p5S3= VU'1_jU%s߾\XOį u}Y9Zk5%Qgžy/xgW;FxTۿ; V ʞ\ռ߼|'>] wXu+o6+<|wv/Fo]C$ow ނvI~R`D ^r+p<`>n.GLV~۱ߎ+>SB-n#5}wX+;V{{z>-Ʒ {ˌxi"^' #^Ej0UśqM֓nom'#;t;=o ;t `ԼƓn׷P#Szy{O]w _HӚWz绵 +?G+=?]Oؗ}lWדΌzߌoߞwϷWmLj_Ƿ~O/1ksSN\`+oD>a+q|o_]akq}ƀ ^~K]a{߾mo]cxL3/0cqOx-KR=|t >6z|q;l:_?~Z߮ؿWvS/X߮pXQOxg|G);OXm>޴bq<`'xoP ~nX3-GS^۷'~3|0߾< ֓Il$zy=vVY`C~$kx 7OX8nW=n{<]lOr\a'|z}cGğ^OuJ>5`7:VZ=o*;6x;;og+W4~zCS gQ>o)_l؟X~TtO%#+o ٻn0~LjS]|x <_$Lj7^|Ys5q}Q/)yLNq?UtI>m5o;_kzx\ xN.p;< z:^ ^ήW6*y15oCx !^v56XԢg'y\ #דZ:[Qmy{߾֓]wxqM;Χq;mO߾|w|W|hp ~Kz\{zŸ?'`z{Lj~55WF5aۈ x'n?.p/|d_kx}ʗ]8bwvU=T(;WvC|qzʗ<`{[߾=`'}#0 I>p$6_sXAv<`||֊I7æu[Ƿ7]Qb*;y^mֿ/ZO<`'z[WXZ/?Oxe~noOxʗE~͎^oV 7xk~D; _q>npxvVM>ϟ)p< |o<᝽ F5`4W wWuog/xj}ܜw{w[oMͩE>;v;< xj"^U{?S۷^vG0< x \ #Pf#=lG:|Z<oˊ ;w|>y=p>omoXY;oǻ+J6x+`i\_;.\`ǺxOV}tS{Ǔn{)G +#^zfO}ʗ)mxG=Mx;{x}|x/xdogW6x?[yό8x Vo}| ٞts mzۭ{>Tv5;ێwv)pd`qE}kplwvC5>8.p՟Orlwxh=Mh3K0xj| ^& #0O.[p |}[ך\yތϨvvrU-\ێz۷+`{A_$~]uRkzc>K_{^پF=`ߌƫWzn>~jԓ$} K6x+jXK'ף|-{ ->Mxgp5Rd=]^x`园8~pOxgV7ov[q?$ogOW-5X_{vj-6x; PbqOmI ~I/xgp۾4?}: <_@x~ ^gָw=ԥ<=}g;'2#ު3k|~5'| ٻn0mz)ޛ]`g o.pUO]o6x;¾@į6Xmx}qaxێ3.D gk۫k|;} z/?OxeO/7zM; 7?'^ۢoW6x%}aͷ=q~x򷓵OeK;<`OK+x#^mpPV}ף=p|5^%֌Iyg{7|χo74Z|F>>:.8^kp~6]NplwBx۷o![m.mokAkcX+mV65=`gϗ)a(fƏbeZo{6x;>0WīFxUK\=V+߰<wv/pxno#x`7:x>?l{WFeCx5c|sS~Ex o}|P 7OXt); Pw}\`3ě'Sz'vU=?V}oWwmZVp\a=O?VkwoތIw /Ɗq>>+Z+_7k~`w3\wX+-o.p}ǟm|/+gi=>{eoWV>ߗ}t{m󫞿}OxeGFxeWO+-\ \`xoȧz߯ q?_OIKϗ_z8>Q w푭$+k=zI;{>Q=JOSϿk뻟sgW㕿5}6XI󾼟O:.x+kn;<`W寗Oتlw'?}קQ~e{S7[ۥ/xgk|q{m7۾`Ulؿ~}m ^ή}ta'XN} #~G<#^G7o| @G;{=paSp+;Ye+ϭNnp5}mNA-[;<`}ZX~z~CN]'xi^s\ߎ?6ٽUq'6xªwv?=D律CD_uMH@ $҂`j?)!=S====n\n% R| 7~Ss}>mg_T'YNp^.w~O{ m|_5[~G3󹞁bv:z%-g##m_o'8n0e3\ <`שz.p8W|>mq~g?'a|.-1,Ջ?vok6~+,poq .?G/_vc?r'> 7X`$}W{OVpwXO N0%K Pqm/'8np,m7Qv=^Wֳz#Z~,^d9pzE=7W. pvar\ #Z Np+`OOQ|H>m75ߟזnаEf zpwjnh9nm/Q.Vopm>|[m1Vx}mA׃3\ x >ɲ8?>Z':=緍_hG3l8~?X>OZ>V˿zWX`oǣ[~'{W/߲p0 F>lmZa=]|}ؿXxoRnpzW3xV v?OUTl~f`?z>V*m%,Mng|֟$a= .p=_'G6Zz&8nWt}|mzZOl|+ o+qv3\ 9Wj+e _G\ 7bO+ֿ;n%3\ aˈxˆz9ds~/>r+lwXO [W9a=.805ۂxx2≍ϴ=A+3\ aߧ8^-g"&sXuwy>򷳏gM7Xt65\ q:_pVm/q>t wxzۖ=4ί'Yn3l+Vߡw^v 2Xc=oӾ@~yze ؞j\^$5.p7xNwxClדVy_Ϫ| 6_ƿ_}ֿR;]p \w]8$J8|zۇ3\ a']-{W?G|3iWZ\>ZN8Va˯(XOK]|{܏gGi;o?|.p𘿏m 7Ì׍[=!o`;-p lAIwx .0zˈOOgzˈ/fˈW~ +xѿ]?VmnpW$Kxr-۫Vo;Ww/?!|z%=|Ǘ4Gl;6r|lb6~V3go_o gOl}3?<޼_~~/;>y<Ͻޟ[sbKWs\jќܞPZ{ڤ亽m6+ˬM&]@&;d?e<Wu׮W/޻$k[][>e>-Z+q흮Av_GlMo}۴ǛhoyŞSIyÇ)>~&x`OWO߾}|!}_s endstream endobj 39 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 42 0 obj << /Length 189 /Filter /FlateDecode >> stream xMK 1 9MÛOP &Z]U &T$=7茫'g?{`qcfCשJI \CA:E!`[w 9樴1FPik%+Asr>vVfEd5qnˣ-i TuՄ&31K!= endstream endobj 26 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpkJ8Ssu/Rbuild2158a573e7fabe/mcmc/vignettes/demo-fig2.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 44 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 45 0 R/F3 46 0 R>> /ExtGState << >>/ColorSpace << /sRGB 47 0 R >>>> /Length 12530 /Filter /FlateDecode >> stream xOHvSܕѳP,d``/Z@-@ }3y"f1]bɨ [o6vko![Oo߿u]޺?߾mZumۯo!nۿenh@}m6N`!6roan$Fla' o$66mܦ۸Xn$vl[ndmȝodȭs.ȭm+.Ծ-=px3rM8z& [[I8g8PKwm')ދf.G粝Z`-mW̷vrmNlkPm<: :vIUvo$zqNR;y|NR:rm')6Xo$rq66NB@\>d;Iܖxm')ۄ8LQ1!c}ĄAҀ @!@:)A H]qퟏ+? uynSǮ/?_ /ٲTw1= OQWĽ_q, s;1 ]@̷u5ؔ@,m&pJ.L?y&0<.Gg[c7G'wG|r=[l˭4(!n<+jYd<֮,yL06?1J=_m1ǟwGG{zm#7g [/66#PynnQwFŰ{Y1 ͬL.b~{ybsJza[t<@͒YtZ7zm^!kDy."mݥ^d>!b"Ћ,p?wzicaB/m.D5u 7+gK<.XƆܦ: ݥswRϭ9z<.XXJ?IKGdhC9 2m\"9"[mi~z0-M ?Pzڗ|wS9b!+˼c0o"=kw陻{\Ig :jrྻy,I'cBjC0…P;*hCГP#ڐHk|v66_86LcV?~w}K-4wHϣDԟyn!0Bu&b[t޵B>n>4_^K rjŁ9ʁr[k>p6 68觇t [1~OoC1^t:>z7V'2t]Y&-]_Q~l8F/JSHLeY.D0MZWQv73,NS8q }y͍+,PKZ/QKːޛI\݅޲w:WyofUoƶh_Sgݥ^E9? dk+@ϰa8\]£{|wơ@/;fݥ^>ևe[zi3,aKZ`,bKZ1-=gƲ-=7 d.Kҳ~ egart"?n1a1n/tP6 !B BHD ABmHi5yz?M?bn;=bی6^+ZzVCb2@d&B[Ml5j nV1[])sz;=lmu?~\N[\*_ݮUF:}578~ 68^,N?X7y̏XЬ14w涂:op%m魑@-=%m--1|I[zK{-eI[z\2l[YҖZ@ K[,iKZb-j-tا-1ھZ aMIJKY0/iK_@-j-t沤-n/_Җʒ!G'}w9|.*6t3;]jkQ`Vt 5鵭r&q CjKk; 5Ea.CMzQe8eI/K+QF]YҖΛ:?l9eG4ƌ6F!BҾP,ڑڐHkӌʁnj1cƺ(n{ZZ~v9XK`uQ3BX$B$51c-"DXF \>X,?k.W5s1^f~ac Xk~kN7O92Ǝz7lhcWڤwGPVڤtdTk,&[ZeMˮ:k- !X*7L׮ZSo,[Dz-2Em KYԖ^׶8݅^2fL-ȶҹ0bKYԖ^ZہeQ[zi,jK/71^_ԖN5CYԖ 2Em\ mu-=*h<~tٴZvzVY~X{>Pu FI @ 5鹭JYP۬d+CMڿh/CMڶr)jG2Ԥg/ƴ/ T1$mFjC0P, KFZWp}\Zcܹ{Xo߇u/kk^jYu]CUd@41Cƚ_b@hx6k!V])Szs @fjDT 7" @WDP${1 'G +IL2"L}LrRyM:PpI4 &9^R* @NRhl~7D8.ȬxʬƎoS.ş \B?C @Ny?Kld^)*e%q L1@&Ie]~c v$FU"І' 6G!g  ڟ~:Lh005RbxA"z337B wӅ3h6\|4j8ⵑ|Œ# gGaBrFhٞ%L,9„=_]:Î6UKUZHu8 I+#9;%:ɣ 4!+hHuY} NJ!sX;Hi YAC;]4@Sd ~9PwrEHg2@3 23+ht9@*YE)>ct4Yd EgV^_t2DHT"=n5Hg0 & "ͥxd t!ҫkqa 4DZ1Vg! F%H$4H+pYAC9쟕dcE_죭P.*!ԎDON!ԆFZ#;Fv!C..ZZddECΤ]q@zh"tDE墑sM.h.HC>#Fv.GAhўw ۑ`{Fv6F:mtnb/Uh!g/O| !z҆FV0-4$nj!c 6uUq)+۞O !Di &Bݵ /+ed TK*C|Cd EVN CVАc:t t^fb29BV|Z7@y?@Y$YAC{yL$DV4f YAC{: V]wd L$q6TD2Ԥ{ݕBV辕P dI=kyZ53WDڜ*g"Ԇ` ~?ʴ/Ԇ' vd-644cC:kd25ֺԲ(3iƚH^R=KDأ*AόIcPHC>S+ῇEkQvPƚ5ij`{׍\uߐ}@&Z1 K>lZ+.D>!#+ts*ʢ6fQ -沨MݖN,jSez )`"4˂ e_ T! rQAC-`"}x,jKʢt#+hA!н-kQ.!ҽ4DOAVА\IRKf fFV01s4z|Y8J "mNZNZPQ%d!Vޓ-ꮻ[i~^td1>f#;Fv֥UFy;d_EVx DS8B`X5ƚ?/&c- k"^]i'5kfa젌5kF{ kdn_l.acmpA0 EK ,=H@J V4<lmDcvcrG֪!5;دgdU>`v?߂qv5Ky~Ow y^'ô6Sqv5A]'E ah(E% $F.LBW%ƠW3LjF^QD%Ql %j Q5!k&xK:pQ"ЫE"|t>›D $@o:CP1.o @130g.!&GX"ysAR![!GMz7E5|"@oYH["[Xt}V8 DuH$tA8. "+Oȩ RF??k1ݏK~s},ݳк`"S| g6Z{%(D褉&B/M̴i!ii"fk# FQO]S]]L&ii՞ ˌ5_];ңX]Ƙ4gl;?: t 3 "]]Y/>Fe͉z-cY ,$I%C0CƘDByחDB}V!(M|] ݮun \ u.DBG,&ϧ3$uC$"n7`"۪&@ #(HA$" 3(@&+DBu>^õ܏%&@t•ʽ.DBZ7#nRKOd:~{McNsj VR DBH芠g 9uA؛.HiLs{;#~:h>( ].W$|nz l5j nVq[MjHC>c#F.'#Բlu:i/Ո~W^f|ؠnY֜q \ Uƚ3yAEOt?KDDz EA8e-겕,Q7L$to@OtC ],RYO"ULꂬu@/Ehk4 mOd)V_"VLmDBd+ EE s_"|_"0Hh$h%qDv5CF/+z5$-D5[& m5̋%χ0H>_"^?d:OK肍K}E1C$tA8≄vD DBWd- ]H5> |t$H>䣑ueYHdG %u h"*b>Z=V X|tm!%d>Yh^#uj#W{ӣ>Z}>4m;G?x~EU4ȹ|V\D"$f9H(!񗈴n$"J$f)HNH%"-_"[ϻ$YXЪ7 ƢX9$@rI& H%ϧ1H>/Z6u!aS=aS]>?!6uC1K$DfN z|EFu |u _d,CT _"DBp+CVKDE[L%"?XY.NZZQF$tAس.MjQwH5ϑ|X#C ZZNC{;${^>MS8Dhx 5k"^DMZQ0D4ҐOkD5 /.'4Ԫf{.9k$n_l.NQc> c zIt~gtc#qcc}/W%[y_zK2hDu:"(OG/]7i!3d>n#" @nz,\D؈ ܴЏM)" @n*_ |KrkDtI䦊 ܴ +"d%` %*"(KrS<" @n*GL}Kr˷t 5[$u?" '@RK@R_غfܟU>?MQ!K+@Z'b @;1ƤҀ.5Ӏ$&c @O'o/ ~8`惒98v ~%擏λXB`k*-ǘK5{6MWtqlQ6ϑ @ɚf Uߙaߋ֥gln^XXt>\}aEQE=xq?C|YY -Ow&B=63$B.@Ċ!У3zÎ3z걈=IzҒ8~POꙈ=e\ B X3tV8#g,_"Գ/=FY+ՌV%2rPek ^3z>K:KKziW%S ^,!xom/f!K߄P/9H"gt>q?C׍xC4vmVSg#D" "'$#grό=du?6k{h!Dҡ&b>ZFH DK n62i4󻎺䩩՞ګ\5wm_]ѣ68uzB1~a83{@&ES\Wy1d:ol, һl/H@[R.bL@N0T"{/"U\ջIzȝ.C9Cb@53:݀Z"ԛA@oyt#RgLHhG@;QEḐ.72DgܮM7:vΘL^hw8c"@3Θ1s@䌁3&BgLĜqid"rH=qq1JS=ȑ#ukR3vs:H[ 륟/Kf>w*oԊN)n7.^/{nFW5 DB^=CBO4l4U3$az2ځ4O"|:{u@`o3$􁨬2{y#z̅e& =:8{>~n33$t[y>CB^(=CB@%=. ϗ<_<_c@2DuWj!VVm1W-DUQsBXA$]umd"@]W]|rtjU#U2WqW۸tuնyK?R]37|g,]51)~U *:u!zBd "gt&Z:תjej(zHϪ[Ri"g*ؐIDZ/>!:K$u"}YH5Y=Cut"JDZ(zH5gHj^]+uוn"$kv|M\Mkr3DzR+C\_Yy 5 "DV neέeTHBԊEVi"e1c])g!Y#\˵Y#DnG-ꮻ[~b2{hf2=bݻgue3=CEdD8ICC&?b@hx4h!V]gL4{h2ݓV%4s1HD#Ubws:Hh 륟D &K{sxQno:kv]#CD>i9"zj3"Ce+-8ԦjP<}*lq|I1T#CeUjDq\h@>wq<}j[&"C͊QFHUA<~ 5˱E O>5*GOS;DJSENS'Lq*3z1!qF1rgNSigNS%KQ~JpT. c)^1Ϡ>ҕcY^ݘ8cQwA ݜ?Ͻ#R9%p1-)r Ej3()@٩ѐBK d> B3K d|BvK!{=8N_Cr UH\!,ȌN!q%rʸ 2UQBi;p "r@|"E!bn@DP Yig0C YZԖv E0A_klPn [D^cn:{ҽpϡF!C{UfPr@vp 9PpjPС0)Gj}B2:TH9T4k,* UJwt_8[Tmn_)E%pYCqCz7O5n辝V ycrՍzLTCD%|k=IZWr9K4F!ǼB#Ԑ1J (R!9m:%rpԙ*I d>/+c}Fn+cVF+cF~,|rX9曄# AR"Oe_$M))(C60 HRN;2 9_Qi('ezyd6S"宠h'H] ܟu{{1EGٿ89 6){(Hb 4wx @f>ͣ1qzc{~ϣm𖙷wt2 ;ߐeC`MTyT <*VHZ%Sz: G-BQ-zTHR6QzG[׾Q_. aײ&Q T>w_"^6٬N+ԦRrY3^NdA"RY r .dP+y!?qgF_-YN9/Be$p63+6_s ),!1J7X r7F2$S?JQ)-ɫB] ̗o @J 䚏U!QJ b_|UrG:e>Iz/C>p( e.`񁓒B>'JF*Jv9Hl6U PON9IOٿ0/%Y\X1P@TUFVt,f>Z5Uww/??t*]J!uW05[^-zsK^]>cnz׾)QRh2s7}ܾVk^S4}V1c* endstream endobj 49 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 52 0 obj << /Length 1819 /Filter /FlateDecode >> stream xڵXK6WA2fėHm)- )Z MFp(YZ3pBJVXmWHVp*aBݹf-lHa=4m} IEoOpQ86۝|enij+|8+uBص X([/zχU9|`ܞiO]]'\ :Z$=:KzSrmm>zQLI3Mѡ<)~x"U ms=x|͋3̰T.00(.${Dx^`нF'i&(@K,sCY4Osh2 L1`Lj @/2dVm ps.H<ٓ~r]ݒޣ[zpKNC`C:uBNbYnI& }O>@n #8t`n5(찍bF9+(p ,eZg1/a]&nBKUO#L5ޅ\X+;4tTR.6 @m2HѾ`ƥ͔ҀuQZ#\ey׻@)uCb6=TT6@Cw Qf0k"}< Hb#6A~*:-A#+c8xasO ~!HcSR(Ta,doo4 m9BوiNp>_,YmbZ(ȋ1_214.IfzǬ &vS]i@'ɦ!߂05X | ԿJodg]MLY PM~#&HO1TpGit(D,߀UӑOu)!Đ:9J0 }#cKy B@g嘿- S/ˑ,1 BVul-/gȑ=M{zM9EI! 4j-"{I|z>kv\AVÄKme2'7.%3vLXߖ%mr")ԕK8Pd$B rP]X rLڔivCG5 ',)"ab ؕX<;RՇT_tЄ~= Xq3oZE&i%/!ͥAȥg<7zءscZQ%inz0=f!nJB,Wj sѤbSM;S)u= txp}huzFr3{xb`!TEWxqC+.R&xq ^\]0|IL+>WP5{C S;$'4mk!a$b%9d)v E mHIťW﷯}$ endstream endobj 57 0 obj << /Length 1887 /Filter /FlateDecode >> stream xXK!*ex?8ևTn8gDΒ8_|v4T 4HriWw+&1ڮ2 ۭ>]oWC OOǯ͹zÊMOUY[6Rs*~PJwx<ݗ+B?%YlX/m%`gV"G)J0h|ǩa2j1Bi-*+05zRkc".?0nr\|Y'3BjIQ Z|h5E_7=64EחlwQmvH{4}boq{>}_{hRB{?rz 1 kTn Q֬xv( &ٗcė"mW]!?q3σEFu;􎧿K_~H:x_L;UpbK0pL2YjӚJB;*mC!*I, "zfQgZC(Uëe{O7WնΜX~WmV%GWN!֎J$Cix֏U! 3=x2Pl!B `V١.c#*ĸM/GWpxa/Pá,&U#Fԃyh+М(u^[-0#trrQF`(hzpy C8o̿7?ԝ3`~hԥCɗ#}Pz@:<#`Wx:< 0qHAs#$ L !,6aX0,z%smac#\ /|ťf{<{MC_cQۡ-c_AbBBht EGĬatiE FBq&VՌiWMEhZU_ΕϮ\ҒCIW1su cPp/Oe[+*mp' 6.AŘb6>'iYCT2y}D^v U4[Vpn@ElD8N -`?+IS &] fŌcWm#& 1"p/O - N lp"ztjTObx=5? P@~h/,F]wGSP&Ǧka;)E ǧ/46U9 ✾tMc8@37oZ^ EZυawq T3Mpn.M? gּ`x"f_jbҍɓCw.MpBu UM{[wWB?e5Y+i<#$6W\RA3”D] i)qUr d'Ӵsg\ eb[N2G;u1й+zrm7.b1Ze.>Xx^j&x2 O P?ǖPs dGᛢws19Jח$bk_VW񸖥6LkX*'e-V.}@]ϡF\;€L>8H&I 1*&Z&q_?z,[sRyLA4~B#́msn*.MO;?tzF]/+jSA x i!sӜRn@2%$ 1دZQAB~+9-P/%LԠD߽{?$ endstream endobj 61 0 obj << /Length 1659 /Filter /FlateDecode >> stream xڭX_o6ϧQŶ-b}i(6kDGْ-7.0xo..K,&WwPe%dL*\͓X'ST.)n'ƦE]뙧=QorU~No]_7d*9Ƒl./DO$RLX%..ox2͏ g*wS`]%0,şonBTdI$WsM<,ϔCF@T0kb-DtÂ%feȥ4< I(d  Bt}f'g)%xֱ*2i܎ASN61(*>ILx#IS`r&.Ჽ #F챌;)ձS87ce\ :gs cg>ewFT?Ƹ:j EtLl6 @RIW=N^ 'S# Ni6O5_ ^gBg JCSnz(xxX~D2+_;ߞ鴴Ke[ya:d*2mܞ'N PY"ipXTg4hjQObvJ-y}gDr4ُ(.qEUlG[Lə*ĵqq̥zϙLg*N1^'2゚187]Oo?䮪‘i}]vL3,X %3z?|3(Rl)&2K~]WlEܤv faYBtzIf.oqvE cQЦ}|<έfB aI:%!~Nhp=;;7.!iD az7{;m09@^HdÄ-:z'Qʑ\iAD2µ# 0C!5j=$:mZDIx7jQWxp^7e! 2mymiliu1r>`ʀ)&Zx)Vmoj!$8#1+r֢a@!_0-!5ڂ c% .op0&e1* m W4QKS\Z/]在qDӂE~[½4 WYSTC$m9~<;y=gp+ʢ=G!!E?(~xK̽! 5㶤..3xB3H]BTOrf7֧;jOM!P x:peSRIiCHPq{kTvSKZ&"hP+iL] Bt]Ds؂b o" z>PycʃQ}  b m3bɉX}?> stream xڕVMo6WAʋ7E[-6{MBHrHʶR۱6g(͛Jn9IGKV a ))L$eɔ&S&eXy JχG* eJQy2iƷ,h2Ogkf|K0Kq2,XD<.,-#RմڴfQtES;̿y $Ӂ3!(1MKS4Kñf3 e3!Bҗ0oY`40MJ ׼{Bu6-^Eզ4q}ׄ C_,m*M&.'$(g' Σ0c±yض@ݣ0Ws(] k*8.recx<銞"\J?_-lOmG[jc>K0'0sܞ”o{>hm`n?/hj.kWr\Ki"调Cok_s[(*2|D(0}S[@rwGDZdʅRa?Y|Ȭ endstream endobj 71 0 obj << /Length 1375 /Filter /FlateDecode >> stream xX_s6 УY][{[KVb]mII;M.yܝ&@A@¯WHsuJ@fM2 J,#+Ti[^o8}޳n+9y{C$dSG-~д0} _&jcqGFδ(}Q3cF;F,-;@G잊S< `3e=A(gȭϞhc`LM̠P N;Wl.Цm-*E~K2#:ΕmdiDW*vvhxYWm얣USoű}YL4oAV9 /9TD-k L#2-vDQHfĖvIj{; 1_Rɛo) љSZ%c~>/R-K)|+*d3H+#W8{̀0i$'+a.nT8lOg}u: d6Z33$]H%JeC|M~9vBI)T3SX 6RۣXX/2ԬjY<6ØЎq&bˀM(M qn$葇c{ ܃ ?BC`)Ll0bCS) Ygt@)|m4>Qf,n˼+ FC_vh.|TvOQ%8PPSyء;;P ^1z=^C<vf;Sd!F wtSYW_)И6ŲP#nwè7nӵo Vx:{+ÂkqzcOaɜA?:UW^l˟Fͮ:q){{^WөQuɺ|#˄oW6᭫8`h":j:"e՝_[Wgf}+A}+G`_%}J-՚G伍^GIe]k佴E`؋Q^e~#)7A ʮ-n9Q̇0_|6x > ^ zƙ*2oF=K(^ Rm^G|'ƞrxp`uxJtdy9\@6u>.ɔOqvMMϼV76~ow":.6`.t.lntU0KO9ejsjw@k endstream endobj 75 0 obj << /Length 2492 /Filter /FlateDecode >> stream xڭˎ8_a{6/;Ilֶ,9bQ2edb?\V7w ˳b9*]lY"vam7˕TrgZjv\Ϝ'P )`[*U*[HOfCKԦ[-?L=_iz)+ GnI{GBmmi.e9[S5=0%K+ ;lgGs؆I sfs NADjݴ#T Uȕ?+ J"3*S#GcTzbvFtFDDЎϝy%z 6z?V,zq[_vaqOT;9ц@kSW %b)f;~,kl︫ڛ{tv%čR\51X'liwr{r3O+wq`Υ*}wť3M_$QRjYM̳u鯹v l*1~49SdP|?Eye9cQ u$uԹd]}dc ^Ǟ,=C:(?OBS| *HPwKdW[mHJ*%gyyWe `ᡧ<@jd󵈆,hV_ X3YInRuti&[;,rpɄtT6!AUV,qF?W?c9O\UI%`BrV@12""VUR;[ DBc,m=}3 K1^ ƒK Z3* n{e(PJRGAGwo޽rY2儜M=9:  )j**•Ǝ"x*u'` Q3XHeO-@ 1^ָׇ{1Hn_uw`?@3fb.{۹kU zS|%ڥ,Ty(e0hJŵ}lK 0i+4ݠSV+lfuĚXhR|몭yZ彩R1~GKi)eIFhR_)sWjsrGQ#OXB&zȘ ,i&EeNGn+tvyl캳sQo')k!xs?^2gd~d(϶g1&ta=P6r3 M]vzlj=}̅> stream xڅN0y Y%X"8ȍr)6)g]'4$d)ڝ %Q^Jl0-lnw +<♬lbf3NkH*5 ]8+ uKNGfBT\,JO!Kmu *B:F5%ZK|rDqS9:CDavt֙PJjlGQߣBLRp2n{^FSk 0AoM;Hc?Bf](,YF֬,4EŤ2Mxr endstream endobj 72 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpkJ8Ssu/Rbuild2158a573e7fabe/mcmc/vignettes/demo-figgam.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 81 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 82 0 R/F6 83 0 R>> /ExtGState << >>/ColorSpace << /sRGB 84 0 R >>>> /Length 7871 /Filter /FlateDecode >> stream xM,IRWYmAҌ] Ċ z1CBuàRJkU___5]k>{WS}׿럿ѯ'Rޥ_|y}?K{W_-ӗm\!]J1Y߭'ޥBA} =,j{|| n;z+Y ɯ"&MH^[ԥ^ rrVMwݐvM_)6Rw`)lWo;{DZvd69ł5ispb{KiCu ,}nպ{H͂{?R<kRɁA*IݯVUGd{ rz2XjEC&09Mi#ULڅۭϽj$~ȽM.n/1Z!ŃN[S_Um3rfQ!n{Y1~)b93MZw S-[Z^ﹼCwp=#3]~z.[z\KVcv?2~ljzz|g1ީݏj֨ݏV0~fڃ4ٴ~di~a!1>+.5cEm*#A~d~T6BG~zzm,j#Q_,J8F<~1`w?ap~Îߟ?s~԰o Еz>~8^(|w~iXވ-(ߣjZy$z/ԪY!:kkQY[q?R/|AaPo GGW)hZp}ake~[>^ D?FA| :3oVӏG~;#\+Ep} ?jfyA~_/ ?: ~~:qaM?S~4?71/Syo|GjZ~4Ïb]Zz}Y}^p>G|6(xstQ|ӏ[ݗ6G5)ug##Ԃ yZ<]8MRD= Y ?Z|Z}^S/r~Ïiz#'hL |φ-p>kxX}^P~zI^u5+ 50_Zԗ7q>V7~ˀmO18~zY qdÏDG\xv~fyzR sWkXFM?K;(vѠ<~yhz ~9^]Y}G 3?Z<_U?[E}ӵ">G/~WGBGPeM=_{׍">}ުb٥ɅY Ta9;JiN/3w"?Ϫ:U ˉ]67WaiJ .W0V_;5&礔Z-#4qW{D1TS $/%XPq4PeX n1px+_72()8?nx8Wl\pǦ s|>8@o Ә'*,dWuX\/+btS8\,*،eE6FHxkje[:Naf+0Azp u8΄C^q+ǧB}e$f]pGt KQojaŌU8Nk:NC!Mq GMǁX^"1|6?:.0bBI}k֙3&n6M>_1i桾%cW w],U}eT$f%!Uݔ313T7OҤ 7Xpgӳc[|plPf`"AJ XAQ(T82zNDPJ^| UNǘ^|j^SQވǜ*pVͷ.<|oiZZӘFօ{3ߺ0̷.+W0zn zިZȾ=ͪPʁg-*\*'|{oQJ*gCr*G'< ygU6j]/-ބTέ=9gUvCc֝ٽ~;-y2VV4qǪ+>4{+lݪkcҽ]Kl:iHYkĒ31ҬAjuy(HbX2]=4^c}RZW3n!AKkd3i)h }aauIӫkN?^s?x~Ny`@^\;0' \p_չ+ A?SqzzEk;O?(/l9f7ml3st}5 st_k[:sy]Gр1G~"*]/ny`rF}>@wF{ _:4;t Ig} ]h9`6'AdZ}}~ۇ-~Vh}5o/D(2?x㭆70?`a JфOW~a[@~ڡ~q[~s`w07w0;]=z> ^z= ^z= ^z? ^Z ^Zs/xGܷ̽{zķ=z?z?Zsox~&{4KGK~&{'{iy̽> ^Zs&{'{'{'{i̽ M0`s ^z> ^z= ^z= ^zߠR~k+0}@5dw=z60s} RԿ=`.As/-xG5``#`ӏ~&{i}#~tg~Qޏx}Q̽Ï̽Ï̽Ï=z<(ܣӏ=z=(ܣӏ=Z~`sS'{t}QG%{tQG%{|QG̽Ï̽Ï=Z~`ns/s/s/G =~`G M0s%{>( ^G ^G ^G ^G =~`G ~ss{=I#${y0ud0H $qK}y̽jI0K/wpP;8[k;8x܏ {$0[ʸd@;8[G{y2з\wpwpw< 8PJ-e`no-qn/9n\-;푿o2#L &p{u侃^mH$K Ƞn6rd8-F j{}Rlowp -|-t-ur_ d- W{KAR`j?26n9joioio`;;Kfi;%B u/ꈘѯB>硎碎bC!:u^K(ve )uԿ-up:*5#:}#RJ:|#P?uԓz:%uuT2jCb"uTHJ'UEU5.I݀:BQvCI-RI-9MPGNRG+AJ"Nj*#8QRIURYIuTH:j&":SI%PG+CPGp~{>QO )vYPG Ӈ:B}# PGȏu4ѢhPGȷuPGG't#:B~%uD.PGżuKꨒrL(۵%uT9IKRGI%uTwχ:b)ԑ(QQ#udT#,Rx?>ԑjPG%)T::#Khe{ߚ:^PGlw#<>ѳ a\C!:̷f[h8Mhf@[l7Hh2:JJ##f#uv2::bCMRgIJh?:J:OIMCRG:ۤ띤/AMhy?A1A$`~&u4خPG#C%`%u?=QRI [RGls|K3ߒ:J&|K(ɤ؞PGltTP[ȷ:-|KuԙoI֡H3ߒ:I1l|PGȷu(|K1ߒ:bC5[RGQJ!uz2QR.ڝ$uԾH(%u&=I.MRGx:jپQ$uTo:x:b=vvHIUI&Cꨲ}ORG5:PGy:lwpPGjuTr"uT#!جPG5&RGuT'|;QA:С -#69Qa%uf:*̷v#.<|qW g!ߒ:*پQJ$uTo;#e3\2G%ZqTpLo;xʶiF5>F4Re4rY)w#2@XSev1.=D # lCHHyHK]fv!Z1H;v$r<Ń8n&h"L$D,K 7/H \f1`Dʿ!E;FH7 n&"L$Df"R%=])Y~C. %VđH ryt1 i+5 Аle.&!]L$CH>y!]/*v]l#Q]%0FIIX!v@t}Zac PHa8!eOLH'H lFH !emOBHYRV䃔]) Hivqlf`AʚdO? bT0 vpK\J R$< e%OHG HǧmD0 HG HYÓRtdCtdXl e\Dv'I(fi?ڳ ^?ʪ쏞z-MA6~4ўcħ(u2?qh`I4;l| G'=J',҉h6$C\#Sr>=O6:"<1V8O̧qvwb>- `>i٭O{k_%S0DJ'#xS`>a1OeS'b>-T$Rb>H1d*b>mb>c|*L$b>,a|X}'?K̇)| O6||NW?`>n|Xu'E|k &1܉N'FIƍONz)a]GXl|61aMlP.; ( $[GXl|61GGGG%&0Ɇ|619ma"7,؟G"lM G 0lp p $GXl G+M7`$0{t_`>.zr#,mb>V~LG6 lb&#,~tsY(w#W> GXl|61,󑕍}3D#,mb>_ b #LG &#,J(&LbKt G K|0-{b>b&#,8#Gحd Q`>b&#,8e &D. L6'0ɾ|61akṄ; &1D" Ṅvb>,y_/쥈 endstream endobj 86 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 90 0 obj << /Length 1787 /Filter /FlateDecode >> stream xڵXK6WArVDQO-MA] $hk kK^w3zyA}!9r ˷a< BHIHe.>y*\46N۰(70 }6j%W +hF7(νu\ ϒNUJw4]O/\m OXiY78Xaީ]Ɩuz 2?b%Ǽ烺vj$v]gSUn6}1m+-IϦ7jx[SnitVT[FoyMpݚF>Hˆڪ,p66zˠ 59Q "l}d~Ϯ#[#srd+i0Ncث[˭2@~)ҜO _fܔlbsRc,{@k5ο 𛹠3}@PL q|nIm 4v jmAv'ڷ:,x""o"2 II)npҥޖke@zj Ɓq6Dbq3q#6K N,ǡ —W7P==d1+S!2]N!9 7p؎6Ci] | k=ʬ&1re2 ̝7ӝhS }5ld&$4X;|u  aG.M/ r.31tEID1,J˧{Ɂ13iSP|bj'`t6E,1P/u8(Raa{=$P7FQ +j='(*o W 9;ezC|%Q^[RLFH}G֜3fo \!uʘ0ĈXt8Z0fхBޖU}A!T+UK^oGu^tx)tОDi5)5rvJ j09PY>K=};eEzg Qizq)I1,P"Tx{$Ŷ@kOI7$M0_'+{&2wl벃mmfK~,n"H DY- q.,Ec8I}´b/r 2(MR%BO[]HZrr(RwкRJq:=ƪj̖c1PqF CS&Ə W]7UmƸT6L͙"-Y e| endstream endobj 93 0 obj << /Length 316 /Filter /FlateDecode >> stream xMPMo0 +r Ҙ|@vNem!iA~jɲd ɋ uVrfܥs X<k+jfw*YmrE 3:פ$,vnLʇ4SyI߻a [=EqH3 ݹ-һ]NqHR0@lYppԸetdzj/vz~UxwRY?"OYEHĶ -۩]_l>,f36AkVJŴY>th&OU+2 endstream endobj 87 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpkJ8Ssu/Rbuild2158a573e7fabe/mcmc/vignettes/demo-figgambat.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 94 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 95 0 R/F6 96 0 R>> /ExtGState << >>/ColorSpace << /sRGB 97 0 R >>>> /Length 1110 /Filter /FlateDecode >> stream xOoE)4]U"E))"'|SUfw+YGjz~ݯǔ%J>}ImRӐ\kypro_7w[ɥty'hRIo鿇̐~!I:9i5גDFN1rIH2ef^P9̬d337mnGU]yvrGffZ#/]4g.&I-n%wr%sqz'/.j 9J^õR%kjvRiKaQI?J™}aWi{qrU]K{1|~:5@ݯ+.oyaet&Wۼ|^Cv?4U[&xU)X ^ MпZ~p\%x9wS2xd;/S6;Sx,9x xY`YWΜ nU akuV=q@IUI=9v1U;Jqs0;#U67#T)@B$["T[:#T%K"V$ T: %5K2GH&HđJO;A) H &%(H"=OfT݌R @Đ>7#4R @dJ",݌Zt@D gFZ GBAD0ѣ{` D̈u3g @Jk\OIA~NjJ p\CxȣgAB !1g `x}MM|8?~9[M6?loy]j%XKq}A1bCqIzbbF^P=2||NŰո^: =<gCDDzweG^l80;th˫C44GOx>$V|~CޮT#oV~=%oW?oɛvмޔ?N[-nܥ T#pb ߤӼй7omߏqva;jۿƈ endstream endobj 99 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xwTSϽ7PkhRH H.*1 J"6DTpDQ2(C"QDqpId߼y͛~kg}ֺLX Xňg` lpBF|،l *?Y"1P\8=W%Oɘ4M0J"Y2Vs,[|e92<se'9`2&ctI@o|N6(.sSdl-c(2-yH_/XZ.$&\SM07#1ؙYrfYym";8980m-m(]v^DW~ emi]P`/u}q|^R,g+\Kk)/C_|Rax8t1C^7nfzDp 柇u$/ED˦L L[B@ٹЖX!@~(* {d+} G͋љς}WL$cGD2QZ4 E@@A(q`1D `'u46ptc48.`R0) @Rt CXCP%CBH@Rf[(t CQhz#0 Zl`O828.p|O×X ?:0FBx$ !i@ڐH[EE1PL ⢖V6QP>U(j MFkt,:.FW8c1L&ӎ9ƌaX: rbl1 {{{;}#tp8_\8"Ey.,X%%Gщ1-9ҀKl.oo/O$&'=JvMޞxǥ{=Vs\x ‰N柜>ucKz=s/ol|ϝ?y ^d]ps~:;/;]7|WpQoH!ɻVsnYs}ҽ~4] =>=:`;cܱ'?e~!ańD#G&}'/?^xI֓?+\wx20;5\ӯ_etWf^Qs-mw3+?~O~ endstream endobj 102 0 obj << /Length 1861 /Filter /FlateDecode >> stream xڵXK6 WmĈH=t&}Nr@[\K-9zlv %jIfzHL A`zLl4J)UQ2g"r6zoc)d'L&ym# %+8~\dz5Lg*MsJN4ܲO,d(?' 22D?6(v'M=v~1! sDmC5yqxdM"ߝC;{k#14+mĪ(v7[)#s$#Ϭ$c:`Y}bI]!TzW7umʒ-BM,8 sδ0|miF}2vK3%|R8y aIqI jٮ{ 8㛮6/$"g(\ftߏm?v_S˳  s)4|E+["[S=TDZOĀ-lbCKBg{J@nOfnK CcL 'us4@\5철emK*K rBB;"I3~1$\ۮ ;(^zeSet5/J7VJpZ Gטxpb e Ôɍ)ef fYHKHD0fiݡ`:Ӕ#l4LN2`T{[>m J_P{I9I"fS ^IPLA(}+YLXVyrLY+5jy-i+r;)<:TJi' ̚* \k"3';Xȳ`"C?t*X\;pLPrld| ԌGBk]ȟW Jx/5= ZR0{tWYz7 maZDuVXeAΡ<!绶^ x̞.~RE`WIM!<BOO>Rfؗ}<[̒* e wҠCRV˨ e$x KUf~ IמWҝJ@p>PZh^ -EmQ/ۢZH1}JcOeog knW [%44fGa+H/QG')\kWU|r`uM FHlm= vt%ѰolXfLSP $WweO!4>-ԥcrSwh;|+}\$fU/ %}yOŀ0H,߿@8Y4u" P)-rsW%j Nh i~r.@q79K+ُcy-{C+MAҩ LWܮa 0R\E0|7|82_E,AX;n[e> stream xڝXo6_׈?DQZZ`{,{jAD,}w_X .m-$n/Y~*a+y}H {F>x =P%!wtm7.b䥗49!3O-Sg<:neiA=[ lYV^U凂VYO[/#'J RB&y$˛DSJ4 ȿ +"x[:$®[Z#Hmlx8' |"2N`ʧ\;RΑo}:[+mUcx|m\BgKZz(ivi4@>yu c`C86> mLYe_ {(R"+XTLmGO)ǒo kwa̡E$WpF9{dJ5m9idžu[QMƤX'I 'r]vcqd nE?ϸa),3;Ġ'LiPф❷U uXt ='6gMS⾲M&O r턈 8zp=;Dұ!9N׋ R]{Go+\o\No}Q3fȵ`Iz0 AM6n8g{i' >ȩ `I~LaAvP@adz'(_MQsbN>ӕd3`}vz8)3AwwjQToCn9AE>g$KuӘms c{d%F1UOxnٌچ,7\dEGs*gXm]̙Nj7;AvօlDL9 FM&w?a+Ưr̺ϛSO B U^FZY͗}xBvn{}w̾!]oxgÍe޽s+''uhip+` 73=xO ǟ> stream xW_6 O1}78nzB)\Jw♄Iާ?ɲ3N+}e[,$͋^K*X%fB0,U,\~Zo$Gc.Nc"^ Q̐)b^>Nv_Wj9+ eۭ9Y\V$+`K[xN[)f"z^}[{eo {7߿Li}>^7z#2ڵӆKVH9W馪&H{<*Qi?c+Cĭ6y iä'.[7 ։,~y8t`74[[aj;7K mpڊXFe[]F}G э1^;9Ѩ0ktmxttY.85cYNY<D 93U‘Fa.tѢ74oRs.3&4hNYPMp& 2/9p4Yt֚P(2UCvb{ iuBzW$6 R,!/RnBFc #eY$ 6tDL4)&Am!q)0O|q Lm$u15.nћm8 qa?*MO$d"\Dq//XχTʸ1@_vO{.: vi{_(D@Y"jϚ"O!f- zPs.E!(GQt+MGKY!)B&Q@5 _DRuCEghH螲pP8 @ gS< %ZGtQuePA<8īdn!~"f>ApU1p`O?q6sj a3\tAyr./1 bl3NBq(SsY(Tf>S2VT:I9uX>E}@z 1\$BE߷TeL fhpB5#A<1w1)+ryMkf UKf4ƜZ1Mķ\F jp3%4Cm}`W4]aa~4Sp=e]-=2e " *22mw-&K^/. v8ݕ]`Bḻ-Ɇa#ĕ˩wT]Е.eڇ5yαuxGП8TxW/9hѝ=;1]ҝ@o_íK?_fLP!р> stream xڽVYoF~ϯCP@[$E҇<.@K+ UHʶRwfgV8iEݹ9W?O=}a򑔢H5.FRk(M2t2GOŒ'R$vWe=,&*۪m7zB%BJ)# cF glOLEzȶ;<G[r ڶ$q(}úKƀ$9`WekGfN7"N_rKJTo3\HRh;d$%6eW̺Pʱʢݩk:"ײgiUn:k%V`OS|yF1GUEu%94X߈^K(n]5I!6qt] 7 9œ_t=FFbn;l Ⱥ*'wiSJ OO0[$p@5kC<9t-x\( D^WEx7nqb>^w_ahI[C.C ywb}5 Wgt>0v\^ C&~?Av㺞&=4< vJܿV^H*;lP5Ckxc"0[nh,Emס'";~%O,t|1t6(6ϟ)}{ӽu3䙇o\Կ84iag!`׵oZ 6y0~jpV(sߕ -SPg9Kgi7+,Y+pKĐ݋!K1_6ub&v1$KҨo:1( EMSNA :g-G֠6 endstream endobj 115 0 obj << /Length 1678 /Filter /FlateDecode >> stream xڥXK6WРrc3"M衇9$ۂh[]YTH(;!eɫMЃ|7aXxq[ `I.(a"r}Gī5}ktя|Z{@zomJU#S iO' e=従ۭ;\VUEҖ6L, ", v_^uHEf)Ls5:@/K5e޲: zVRJ|,B0(v7AypO3FKIU>Rn ',_!cd\AIEmBW8 v9qHq/5Ug^`Ym>jhCpvPɣ ΰ} 77e{)$x^kjʥH>Si:(a<,gnMzF:%Y4ŧNIY /<%',,!sae"j7HVg 77xɌ!|Уk΂,nYђ)njO̾Sqg1DxD,A1S>!R~x<$r=̼ ǑS5"&‰4' 20Nć E{o5N&ov <,ڷ01t#L GL( r;l}JeMSt]&ЫMy"vol[ sƸv&dgz50'$ec k ;'Ů9(C(L ԃ /X#wgsݭR/xg+m%<2>MQrL ӡ+{߻CYv(*d~5$L _xPiX}5of%,b2gBxyjN! tcK7.Dla @fN@5GPR,8f޹'c!}iJպ6:ՀRO&l|Y0e[`b$&0pB5 }yyN}_0+Lgbt <#&K}Q{H5tJqR` RmߘFGSPע.2,Q#{#ڸNq0Q``va_mp1т y-]NjQ:;$nF"8# xD:~0!W ϙK>1N6J;8j9{sS|ėƜ}=5ةU(SmJ5nD%uW}սxxz|ڟUovL5[r}cpDd9ҋ՟.W7O)Р('VZ?/>"}$;ldwe /y*>OH7yQIםm)-b6A2liXq;TW8=iԦ6 ^E{Y7jrv;9@RBx`3a<ٯܪ endstream endobj 118 0 obj << /Length 2405 /Filter /FlateDecode >> stream xڍ]s~gjƢIT99מ!$L* >g(/bv ^?gxQyufY,,d,yyKټE ;ۻTf4SR$]*NRDhbٯBX$sƋT__<6I:#Xys>X';g20=K!MXZ1'"D{;cpe62jhkglK3Ab=ouQjbMA܂S3(R,d8+m^jM5uvݩ7C{>g"{pU콼 KZC]Tke ,lA yK\pǫ:SӀbQ)zUEވMUFwԿW#Ǎ^f-my"4>^xGo$gQ( jԶ H8r64%+QP2䵵H˵V/,`ƃxSLP?U"VvG[6>8R( zz ĤU)xQzPkt 'V)2W2+}ݙ[g';;SCīa?0qP& d/ю2W5Vw!np "lOIA )ӊSS0LނW6u.JmTo{/hX2/G`-^N_c22aiTMo '!掆*p28ڎw+"`בM|QL($c TQ5af)i̊cfI66>P`$!K6 )rDhBms-AA;<(MZ9 +a/=>.QHaں;KQì"4CAVo:ChIx/]C؛' ӚL8p!_ a&cEHB!xH /$wO ~|^ԟ{7\DK̚xQyt\bf "'[L4ƺo72|aѸ_~?$>P_7ө⢪@:2h42 v:gо>$%/ !F Q>1Sj͹U*e%ys;TzJp鑆)M"U~ЄvM"KL]NPq"6֚X|q{n I xUs;poXmX0tY*BSUY|h_ l3SwRKl2"vAbY&siv55!3 dhp8|;lO&ء]7ſjGgOcp0R1 ƛ%g %?VScr+r6mQi3z,P[Ѷcɸg`a>C̈́B]s$LN]TNT%No'}ކ&=Kԋw|~̋i D9nz $/D<%bR?L@DQ ~"9*]H`)ͫ!i3/X',_idD쩸<hjO峲1Sm}uEIT(bZgene^S` eǼop"i(;^l܍UC w#n Wޫ/ɿPPC[;+Wx/ [ T <Ϣ=jo(~Q;B޼I\ 7zj}^D3qL<>Zf~{x5kO *,],JvLfU@e6|3ul ϡꆆFENl~lu^\AXλ]+a`]2L@bj4jp"Fnb)P%#>vp|5NpڇGh?WsN8[Fb̨iFuWG1.,M_}q31;g龡yB={YiT! ye/R~+؝j=G>boXۑ877Yn-^̓eI_Xc6=o]a~r}N ͤxoKWȥJt!pC; endstream endobj 121 0 obj << /Length 844 /Filter /FlateDecode >> stream xmTAo: W4(@#[eYھ`twPl1؁4~HS4b>G~Y_ŷRGLf)JqQ JG2̙gsl WV@HˌC`C1TmC%J K@c׫65'իDr%TkL H?/Dh.:<}z,}%9 *AS 73HT/ xi_ska1EWm'ǧL9?< 0؃oϿ42+:¥=%2#ֽnn G\07M;Ґ, 4DF!2aiiR~ n 2 Xy 7뫢'ӰGDJf Oljv_xÅF+ҿ8ϔ> ]]ǰ= R>d/%fUԞmCAp8y~sAB\L̮|V`ߺ-o~Ǘ-19yAʸ  = endstream endobj 123 0 obj << /Length 263 /Filter /FlateDecode >> stream xڽ=N@ !L"nCeHJ $GQr-7qF}#[9մgXsoSxmWt5Zx|Ö (ETV";Yepš{J9~P(eRXfdH- Xq*K8/~byoƃq?}`0fW';j#cͪy< ^ux߳= endstream endobj 124 0 obj << /Length 191 /Filter /FlateDecode >> stream x]ν 0S:w#>mб N(Q3 \'3ʇE)rF2:Rߥ}ה$S2{Z|)/&QR:tCuňC:DvG|iFyV;tPo07{KxN. P5 ҂5-Qle endstream endobj 125 0 obj << /Length 188 /Filter /FlateDecode >> stream x= ` C!GhN"  N(kyo =7:8pӺ.fϣRv39;6X|6|GB%%9 " 4Drr{EfV5 RגS^r_,IQiN[)%[y/ [> stream x3530U0P0bS#csCB. I$r9yr+Xp{E=}JJS ]  b<]1` g$m7>0`l@"$'W  endstream endobj 127 0 obj << /Length 176 /Filter /FlateDecode >> stream x3137U0P0bScsCB.C I$r9yr+r{E=}JJS. @-\. 000$700cA2 \ i$ ?l 4b>.d!p!dr~$_\\\-in endstream endobj 128 0 obj << /Length 150 /Filter /FlateDecode >> stream x3634Q0P0bc#ScCB.#K I$r9yr+Yr{E=}JJS ]  b<]0<z @?bT 7~`@400cr pR endstream endobj 133 0 obj << /Length 139 /Filter /FlateDecode >> stream x332Q0P0b#sC CB.#1s<=\ %E\N \. ц \. ?13԰70`>|T0B@X ;~r lB*i endstream endobj 134 0 obj << /Length 127 /Filter /FlateDecode >> stream x3634V0Pa# #KCB.# I$r9yr+p{E=}JJS ]  b<]10$@?lā d@BՓ+ O endstream endobj 135 0 obj << /Length 130 /Filter /FlateDecode >> stream x3236S0P0b#cC CB.CK I$r9yr+Zr{E=}JJS ]  b<]3og?`~@s4T``p@? \\\2#+ endstream endobj 136 0 obj << /Length 115 /Filter /FlateDecode >> stream x3634V0Pa# #KCB.# I$r9yr+p{E=}JJS ]  b<]10$@܁ @$G?\=w& endstream endobj 137 0 obj << /Length 116 /Filter /FlateDecode >> stream x323P0P0bC #3CB.CS I$r9yr+r{E=}JJS ]  b<]@О  0`Hr endstream endobj 141 0 obj << /Length 170 /Filter /FlateDecode >> stream x363P0P0R5T06R02WH1*2 - 2ɹ\N\ F\@a.}O_T.}gC.}hCX.O 03?`a`P`P6@l   ؁A; ?`~Փ+ 0 endstream endobj 142 0 obj << /Length 163 /Filter /FlateDecode >> stream x3633U0P0R5T06Q01PH1*26 (Bds< =\ %E\N @B4PO,(b~bq {`~P :<XȌ 7g``K> endstream endobj 143 0 obj << /Length 146 /Filter /FlateDecode >> stream x335T0P0R5T02CB.# P"ɥ`d¥U()*Mw pV0wQ`6A`C@:bc`g`o`c?.WO@.B( endstream endobj 144 0 obj << /Length 135 /Filter /FlateDecode >> stream x3633U0P0bcCB.cC I$r9yr+r{E=}JJS. @-\. Xō3o~`~ c\\\E endstream endobj 145 0 obj << /Length 136 /Filter /FlateDecode >> stream x32ճ4V0P0T5T02R06SH1*22PAcsLr.'~PKW4K)YKE!P E1 0"&b~D503pzrr6> endstream endobj 150 0 obj << /Length 105 /Filter /FlateDecode >> stream x3634R0Pb#CSCB. m@ $ɥs{IO_T.}gC.}hCX.O!'W ( endstream endobj 151 0 obj << /Length 96 /Filter /FlateDecode >> stream x3636Q0P0T0P06T02WH1*2 (XB$s<,=BIQi*S!BA,\\\5^ endstream endobj 152 0 obj << /Length 291 /Filter /FlateDecode >> stream xڍ1j0a  jR'YbHSB;u(ڎZڭؾI=JIqT`$/VI~k,sOxym ɓYSH{dsf=;#ҍkTNUD38L41裵>+*bT)?d C~yE}QKZq<8ZTb+Ώ1ܼn NqA(F.gEㅸ$ > stream xҽ 0-}V NlGpPz&M@ᗄ$$BgK|<p8s93d-!%_Vve9rȑx)QTŔxe4GzMa)["ei=AikLM!Ch.TC#ig^woJ-$KHWeN'Q<6?K endstream endobj 154 0 obj << /Length 173 /Filter /FlateDecode >> stream x3731R0P0b3S3 CB.3rAɹ\N\ f\@Q.}O_T.}gC.}hCX.O@>`AJ3Biz(m4?f 43+F3| @3hf4;`+hz~v1HiP~ r ϐ endstream endobj 155 0 obj << /Length 300 /Filter /FlateDecode >> stream xҽN@P\2 p Xg"V*4Q5&*< ƙ`Q{,̿,OsL1Ǔ 3/)7(r^L<k^gHVAƇ k4#g̫`Id KD-XHTHQd[;'n1i/j{;_ZX\?b. 꿫Q_%5tIs&AciUݠhNN SӤ#vPHDH&4MnLϕO!|&%Ig] r endstream endobj 156 0 obj << /Length 278 /Filter /FlateDecode >> stream xڍMJ0. o Hd8]ʅjtBQ讽WM0ϼW:(yĚt+ܲfshsat}e^-o.V?^RV T+xi[D2h; _Џ.#ğ Gf ,D# H_W3H| gQPMAP]r:)8P]ʂiP]͂.Yc႒4<]:l_@c0ώá%+/]z endstream endobj 157 0 obj << /Length 286 /Filter /FlateDecode >> stream xڽN0 sb!~U1U:H01s(};R!F:$_؎k{sqV xZa%>Wu kyzm 7,C ۻ+du쳇vι:>H%0h}GONhIl+"$>x$OA93H:7ICc0C0” d4rGZƹ3h醥A:w*8,;$qQRrWEg{ !Љ̳A:>6@ chٰu } endstream endobj 158 0 obj << /Length 305 /Filter /FlateDecode >> stream xmJPO"pyfaa]Vbv ɣQ)#\83w.x9zuhI5t^Sҽj-%]2on۸+n$>?^];z,i<H90w{1c]< h=Q=6 zh,݌$d1b׆ا#XA}ăiM֩S-dpAí$ r0cGݑ"y*\'5 К?)ԜhVVQnܽ endstream endobj 159 0 obj << /Length 162 /Filter /FlateDecode >> stream x37׳4T0P0bs3sCB.3K I$r9yr+Yr{E=}JJS ]ry(D11o``!`G0 5#Fʨ e02`'\\\T. endstream endobj 160 0 obj << /Length 302 /Filter /FlateDecode >> stream xڍнJ@ )n^@q 'B RK E.f{tצ"dUCP#,6?;>A 'pA~ 3dY/J OurEuR^N7d w\(P?REx: "XԲBR$jXPT舊Ib&|=v,UnX6zmY6^sDVȊ9^[q>'KMT#6QܩN(͍)]SB] Q*41cXQ3,h endstream endobj 161 0 obj << /Length 232 /Filter /FlateDecode >> stream x}ϽN0Jl;Ta?pۜ7kBjikVb7/;8jC'_o6RsS-3[&0`Q0|T*M *pӌ_2 $Lo1ÔJc4|ݜ~82;eSz)<8`͊N9y{2hl endstream endobj 162 0 obj << /Length 229 /Filter /FlateDecode >> stream xő; @72M4(SZYZZ( h"8P+q3z ;MVYmcsd4ٟ9ą!8~̸+fܒ^ ke"e, tGd?˄b$U5Ҋfl$*lMgn CJhVʷ3Fip endstream endobj 163 0 obj << /Length 214 /Filter /FlateDecode >> stream xڭ1 @E'l&G\@7E1#BBBQRgEv>'S &3!3c4#NqRdn uS:]L> stream x1 0yд*N`A'qRGEx 7бC=q(8 vي1&]lwqy,N1y 6n_pa8&:2)љBztUUN+IZ^>j$qIMMR'*mse cL@I 9Lwni endstream endobj 165 0 obj << /Length 226 /Filter /FlateDecode >> stream xu=n@gbi|eYGH@TDjh> X VyyD%JC80/*v[ dvջ\/_Gvxv+١hJʞ2Ն(W FOFFl@&%`}b zdeL,>2~dgygL[41Ƕ hKyJ BasQ D endstream endobj 166 0 obj << /Length 167 /Filter /FlateDecode >> stream x3632V0PacsCB.cK I$r9yr+[r{E=}JJS ]  b<]700P?aA<$AD0H0 A6b#4o@ endstream endobj 167 0 obj << /Length 281 /Filter /FlateDecode >> stream xڕ=N0’!sHE"T ()@`)<؋$'{Iן5-5tA-ukZw75oZOv3RpC/^Rk-=ԣ/qZqg XxqdWjIpnIUi+W%KK"5-CiK #;A58E, k΢SvYlK S^`%*#G4dPɲ1:^.eiiC%>+^ ~ endstream endobj 168 0 obj << /Length 167 /Filter /FlateDecode >> stream x3332Q0Pa3 TH1*25\Dr.'~)PKW4K)YKE!P EObPFS@ >? uBP?(lԁD(.WO@.Jm endstream endobj 169 0 obj << /Length 131 /Filter /FlateDecode >> stream x3634R0P0b#KsCB.#1s<L=\ %E\N \. ц \. 5 7?D # P?P1?H{pzrrD endstream endobj 170 0 obj << /Length 107 /Filter /FlateDecode >> stream x3634R0P0bc3KCB.#S I$r9yr+r{E=}JJS ]  b<]0q7c.WO@.S endstream endobj 171 0 obj << /Length 209 /Filter /FlateDecode >> stream x? P C!;Bs_ZA,T;:9::( n>'GoqQzJcߗdڍZE5eujh}OSXcu4vB{%gQh@&lJ2DxbΪUdK 9T`P+XU.> stream x3332Q0Pa3 ebUej 䃹 \.'O.pSS.}(BIQi*S!BA,C}?7T10@ 6P?|'W [ endstream endobj 173 0 obj << /Length 213 /Filter /FlateDecode >> stream xڥ1 P #B[SV N⤎h=JбC1&E\|>?dј>c &tA$GOX4 "4 %]/#d5#MJ[h6%y=\0`..Y尀AK<@\@Q#6-WQwu;Sw ?kBKn&j״1a>7k.sk|]ŏf endstream endobj 174 0 obj << /Length 227 /Filter /FlateDecode >> stream xڵѱjAY,i|tNWbe!V&e->B|-XDTX>euڝLJ+Hޗ,ה?8G۹)ϲYo؎^$e;E*ɒPS݁T+(5OT@u%BMwF=poH-eua~nl]Tȇ`1)6AbXi DA O  endstream endobj 175 0 obj << /Length 161 /Filter /FlateDecode >> stream x3137U0P0bcSCB.cK I$r9yr+[r{E=}JJS ]  b<]oH?1"~`? L7?bl'W n endstream endobj 176 0 obj << /Length 223 /Filter /FlateDecode >> stream xE1N@ E?b%790;"E"T (AKq%GH"4o4v]_+^sk{w6[{T^o(=fKdJ~|Q_stgj8UR:EZ ʷcVG@VjU'3rع: Fg u1vM#bj2;4@* endstream endobj 177 0 obj << /Length 173 /Filter /FlateDecode >> stream x3135S0P0R5T0P03VH1*26 (@ds<M=\ %E\N \. ц \. Xv8'=3,X w'C=`?`A<7@ ? r  ,t endstream endobj 178 0 obj << /Length 166 /Filter /FlateDecode >> stream x+@i*6#06&$  (D@@/G[58"e9P!Zj Z)%eʡ^Rv3:N[|LuM+C]MD ! a9PIcУd/-x>o;w*!aVB78\ d endstream endobj 179 0 obj << /Length 267 /Filter /FlateDecode >> stream x}ϽJ@Rn7p h~(b`]VbB !y&)Sdw̙SRqKu&Zso\iLs9 gRiή1笹ַRpBGn6b-eFGZ0Ucc^pG))$)Y= Ư㗥itjuGj wAlhA_Bg6UT2u2Ho^_˄>> endstream endobj 180 0 obj << /Length 126 /Filter /FlateDecode >> stream x3530T0Pb 3SCB.c I$r9yr+[p{E=}JJS ]ry(000```` H0@,0%#zl'W  endstream endobj 181 0 obj << /Length 266 /Filter /FlateDecode >> stream xmбN0|G/qCyfίF0t^ߟlߣO;O$9 1!rHdڈ4f&pBl9{Ð68,ִ/vKqbҷ+tي%+NC7"EB8сVP #RI*h~j:Rᕤ[Il`Φʗ'& endstream endobj 182 0 obj << /Length 258 /Filter /FlateDecode >> stream xڅN` {@ $g%^Ltr0NzGh< @= icu]RHRb)U?XHUw>5?1r~geΛ{p~z< 7g!ґRUcR;Q2QP:X Ja2m0{tƔyl[J8 XϠ-AvHxiOzMYSgčV6oGbǝ2ClčLU[ϟ]~(6?d endstream endobj 183 0 obj << /Length 216 /Filter /FlateDecode >> stream xڭбjP r7DpI *NJ'utP-4|-7_խmzޏs/{Ck#ґS]ŲdbkFR̋&1 {*|ZL4XL_m̛3ul󇚴] I@BI /s'sABNjAOB/#&-'5o#Rԑ endstream endobj 184 0 obj << /Length 253 /Filter /FlateDecode >> stream xڥ1N0 `?uGx^:bF4G  Gءj]&`>EIc;Gy:r>fG}=~@{M;vyJn-2ЀL]_~EI-jV8Yz&? }Bs훃$ShjMM|wSSYN-Nm8NZT2f5JD 2Mr[μ̐51= x_d endstream endobj 189 0 obj << /Length 204 /Filter /FlateDecode >> stream xڕб 0+ (z/I E*AAAQp(Q|^mE\$|K.Ij:zm}> stream xڕн 0+C4_( šV08СG#ttp0! r$T< Nz4xBɮSlM#}dzA,]NI h#oQg‰JrۗHNN#80om[ӵx"mT#lG[X)iue0ۀ3+|RA endstream endobj 191 0 obj << /Length 136 /Filter /FlateDecode >> stream x3231S0P0S54S02PTH1*24 (Bes< =\ %E\N \. ц \. ?  ?o`0`(`H 0703310XB \\\˗! endstream endobj 192 0 obj << /Length 117 /Filter /FlateDecode >> stream x3231S0Pb#3c3CB.C HrW04r{*r;8+r(D*ry(001g | !h 'W % endstream endobj 193 0 obj << /Length 96 /Filter /FlateDecode >> stream x337T0P0W04S0T02TH1*2 (B$s<Á\ \ %E\N @AhX.O??}r Iz endstream endobj 194 0 obj << /Length 219 /Filter /FlateDecode >> stream xUн@]X"yp7O&Bt),J-x`+ BX3wf>fQ6bG)38Afkbwq f̼)s>/'&t EP>{Z;f,OȞ?B]}t1LU|h!L+^ި=I T̝B?Kk Y +xir endstream endobj 195 0 obj << /Length 245 /Filter /FlateDecode >> stream xU;N@RDG kK,HPQ *BIAs4Gp"6ͮw~V*Ru%O]^{u{쪫nJ^++ߴޚCS{)z\"i%46UjHSK&eoTFgK5Ѥr#kDV# Ĉ7è'p*SA ] > endstream endobj 196 0 obj << /Length 275 /Filter /FlateDecode >> stream xڅJ0顐}Ͳ º=ɃxR(y{(3itG&dfd^QAeE-Wt_g5G ZQmj_*Kz}y{Px[Uo @<9uf8g:&hFO^|IN{?,''Oi%_M ?KӴ L z@;u32<ی+٦ JfW-ƽ<%5ߒ uP:N}m endstream endobj 197 0 obj << /Length 270 /Filter /FlateDecode >> stream xmѽJ@yppp` A+ RK EB>Z:_#o)B֙wGf6ł2 :):rjʒUyL=um;*K^qܤ5}thG[ RdJ " h"|<z؎t! #siD0$'x,.$cq/c,g J z\U endstream endobj 198 0 obj << /Length 208 /Filter /FlateDecode >> stream xб 0[VZ N⤎(}JK@ȗ.#fREP3sҠraJ !!Lv(]pgt.8÷ xY4}k]FhaZ7C|ݩxS)މZX* Sd endstream endobj 199 0 obj << /Length 199 /Filter /FlateDecode >> stream xuϱ 0[z/imu* vtr'u\G#tPE#.p?" 01C8jfwF!xz-qb"G<)o)~􌍭omƻmjVFf+ɇclݟO2ΗVgvdMi5L?X:pc=_Чn3'VO endstream endobj 200 0 obj << /Length 300 /Filter /FlateDecode >> stream x]?J@"{3'0   BRUx #8IoEZ&>Sz ŋ( bVEk_k$BߩP")$ NHA?%A^ |6^@(.:\= )ʛɠWQY;XvrʚTf;<+fT QR8vʙYeKa hd'I~:t'mi ٪ #JkRBVAn+q饙 endstream endobj 201 0 obj << /Length 208 /Filter /FlateDecode >> stream xe;0 T H*0V*  & ۣ(=BG`O1$N;f22LКhxLSg(J[4NA+]'z)9RLPQjN-rĄTD#ɉ~T?BfrOMPըs`;v)G/O7r$i%O#}jI$֣w{?(a/5sR endstream endobj 202 0 obj << /Length 261 /Filter /FlateDecode >> stream xMAJ0)]fa/sm+"BЕ quBQpG ihMIyM:dhOsj錎Oi'a?bKE67xK/lﮨfGO8ceID``g&@Y953ؕ#˙ fW<@ Es>(R :$V.bA*3J ʘsJڛ?&JI_B)Jr&| eDX#d? endstream endobj 203 0 obj << /Length 255 /Filter /FlateDecode >> stream xeбJ@?Lqy1;y),J--ɣR\g&w|'[1Ϲ#^<PSL[.V_ʘ^ߟ(__7|=PaH(fTA#{Ľ8=Nݯ#_+Atj֛4H`~AWQ~,@EkflF[b[Ϡ~-(N[NA/V袦?Fj endstream endobj 204 0 obj << /Length 214 /Filter /FlateDecode >> stream xUϱj@ `ZB'㐫S0NBc )-t͏G!z3HKh{~\.hN )')+,9qs<\>1-_ -ޱwz𐴶L 73nb. fV cFI, m%5Ҁ+IIbM/1Nb5'1UWwݦpt endstream endobj 205 0 obj << /Length 212 /Filter /FlateDecode >> stream xM?@oH1\@ȻNbjະ)+P $`Nog7)SdgFA/}q7`o:Ph>ggiLjaDGIſ|:w/Hxx@@6/cGP!R^!'TH3=,њR;gXK%Hs$h%Ƣug+> stream xMϿ@-70&aÀVW՝rWGˣlg[QsŧMyK)!Jp1|pԠ:_gzPzJ S ĎԬjukzE Q)]xĎ/լeQPxўc=r_0%t,!_ endstream endobj 207 0 obj << /Length 186 /Filter /FlateDecode >> stream x]ο POG@] b`955DS5f&>$)5}6+X8!C %jPfJ`Rjן旭Zz FB!‚_C4KhEoM> endstream endobj 208 0 obj << /Length 237 /Filter /FlateDecode >> stream xUαN@PL#0/ H3D+ cH 7Y0@IAXcClbv?;92Id#GdO!g^&^xWUc奼=]Iz/$w\G ~=BO \N nkm``\MdG :5">fg|w3ތT8ڦLH[e"48 6I|k endstream endobj 209 0 obj << /Length 193 /Filter /FlateDecode >> stream xm=@!$ S $&ZY+hfx=%-l,f&LC9QQф)LLs IK^nGՌ9owT p< AZ-@:hM,љTY(P zG߁ؐIavU.R8Uk Z B endstream endobj 210 0 obj << /Length 216 /Filter /FlateDecode >> stream xڕб @ !? 4?Z`A'qRGEC~Z?O[&\A.rIf>n,؃ҵṊw0 A.vAN(2pڂFh pi0@!D-%\"ōr"R\uTP\(z>Saا#|sfCuL1>|S$^Ik,b&rs\ ;] endstream endobj 211 0 obj << /Length 236 /Filter /FlateDecode >> stream xEοJ1YL2/ٸ{y[Z]!Vz ({h_$",I曯^SE 5=:|zӊ%+mmvssAUn @E2 Ȩ1JAE8Ab„rg|FÄ d]2Gd3Kꖂ''Bǥx`:!s\I`~zNx /[_TdW endstream endobj 212 0 obj << /Length 229 /Filter /FlateDecode >> stream xUϱJ@7^~@gfaŁuSne!Vj)`̧S"@-Fa0a.wӪ,NJ~CW5;;׈7vu{)%۵ܗ2{z- DfJHG"|Z֦Û)`tfTvh"?|@QZ計VШ@01E-e҃nO;`DhI|Ud" endstream endobj 213 0 obj << /Length 187 /Filter /FlateDecode >> stream xڅ1 @R,L^@ܹn),J-m5M)Sq793?<~Qq̇.6Ҍ􆣀žIgK]Gj!oCv^a JH˸;%BX[O ԎgU[kM4FF~xϕӁBT hњ~; 9 endstream endobj 214 0 obj << /Length 248 /Filter /FlateDecode >> stream xUαJ@YXrM.A\8O0Xe _|XFlR,3m/ʽe4ݜg4/6G,r|{eSVgrvy~L9]]c"-"46"n"ja g\ô 꽅}abZvLRȴWWqz=A腁=AFZp2Ǥ>}m1fxԑ0S!9TxR^ endstream endobj 215 0 obj << /Length 172 /Filter /FlateDecode >> stream x}1 @bم #BBRPQH!(9eٵ(E!/I )txAM )e8E!Q,LF.vQīI m%;L>?9:^j7N=j AvG ) E endstream endobj 216 0 obj << /Length 266 /Filter /FlateDecode >> stream xUAJ0?dQ^`0v:B[La.]WRU'GQ2xɢt|MUG^dy*W',WOxقt,ErHh,Z}> stream xUϱjP? 9/Pc0$Bj;u(ڎV2HQ#dt`]8x)?DxgDGNx/4/)|8Yb o7/ K7Sd蓺@7=bTEVӊUш?I4M;@AmQSuj#S}7~9`^B 詤tU endstream endobj 218 0 obj << /Length 190 /Filter /FlateDecode >> stream x=ο POG@]A(AAM T EmB/fo#AB߁;ˁ.=t谿6;)#ɭI;~=7~.ɄO.;gJ +92 = Y5"$*GE1_kMAێfb)n! a!"t5}6)G endstream endobj 219 0 obj << /Length 238 /Filter /FlateDecode >> stream x]ϿN0/!Қ?"R)ĀZF@j?y=D $|jr=.YMxzH]lo-_iVSȪNTBᆥ:'zzLfU/2k`&[~6bT~4Ѓ{Νh{FRDJ*+oFt:^Cf\8،&и%FӶt[ӂ~Jl endstream endobj 220 0 obj << /Length 182 /Filter /FlateDecode >> stream xU1 0_:`/PMCv(j3:9: U:zI!78QL#NN"# ÈDkg%- lcdrE,_ω#+h(  0RGC:k3dV4P` {@1gy9xΡoi|KZCf1.$n > stream x=ͱj`27h 6] fԡtҎ*:H|(V;QX\Fje%E)MT̂k1RvO1j}H9S B47Z4^7^;r<ȇ0)z!Be,; e__=FʼW|/Hd endstream endobj 222 0 obj << /Length 178 /Filter /FlateDecode >> stream x]1 @ )tMBą-,J-+GQrBt |(1%2EϨR.#ʒ;baPI(\4 ^nrJ1ʒ61E[4%o!Au4x@u/YqDwk;ppjhWO: m 837ġB endstream endobj 223 0 obj << /Length 216 /Filter /FlateDecode >> stream x51J@o";MBuS,he!Vj)x9a)BpSo\^]s-_Tܴ\ZKӶ5w1S WT##M~!J& zt9Fauޝ"Ya b&91ĐMJ^-}?9:o,Uێ;VF endstream endobj 224 0 obj << /Length 205 /Filter /FlateDecode >> stream xU1j@/L!]Xsx^"W.B*' v+h:aKxl%4ol9dxaa苬2g@˚%t§'3+~3Sb$PTh$&w;.Cչ Yw A HD)Ԁ TC8!#_^P=WDC)k VA endstream endobj 225 0 obj << /Length 243 /Filter /FlateDecode >> stream xUпJ@/l¼HSge!Vj)DN.>Z:_ca;SQ9m~ )T38,>')f(eHzB %m.ALsI7zkv+FQ"q I`{}w3 faB=3 ӍKM;t~='s.C˱ |GewUû%sLrȕ|ob3 endstream endobj 226 0 obj << /Length 176 /Filter /FlateDecode >> stream xm1 @ iILT-,J-mMxB\'6OB(4]'v;,4.UPuDuI0v[>˙i7 w40`V.v^'VOȬh/|5V W5cjSK.[HG endstream endobj 227 0 obj << /Length 236 /Filter /FlateDecode >> stream xm͊0 s mme?`{XГAQ؃r,X΄Z4M?3[qF&:D  V[0Js<!~# U55ΖAX:EDni8uĔMRee7V8@|J◫)B;poT%zIjb)\M͸uw3険q SdY endstream endobj 228 0 obj << /Length 242 /Filter /FlateDecode >> stream xej@!0@yvM`A'Sc-<byzMo9lgJ[]f7q!㔓#za*ŐyziFvÔBd%~l_NW&Fs+\*R+p.)og6*Tj)h` arA?Dr8xuG+iN iJ!PAm|cyHn<Z endstream endobj 229 0 obj << /Length 249 /Filter /FlateDecode >> stream xE=N0gy!MDR$2 щ1QF$@ u@oF#x17,% 9[H]LqKU/ϯn9{e-9k녳m䱐ۍ遈%LOjHi%N{2ZNg '> stream x3135R0P0Bc3csCB.c46K$r9yr+p{E=}JJS ]  b<]00 @0?`d=0s@f d'n.WO@.sud endstream endobj 240 0 obj << /Length 137 /Filter /FlateDecode >> stream x%ɱ 0#Y LӴZ N⤎n>j#SA៾vf.J\#un&g]u4{q:#tۥX^V#}/@H5LT;Ic4 U%0s/Z) endstream endobj 241 0 obj << /Length 133 /Filter /FlateDecode >> stream x313T0P04V01T01S05TH1*26aRɹ\N\ F\@q.}O_T.}gC.}hCX.O? |7Po3  \=J' endstream endobj 242 0 obj << /Length 199 /Filter /FlateDecode >> stream xڥ=@PL ȟ b&ZY+hxJ d)-bߛy63f%gtx0e5$ jOaj:*yAUlQtєg&̛}Nr 5r^ a2ʮ`i`r_zH&=| z)3WwFHH endstream endobj 243 0 obj << /Length 203 /Filter /FlateDecode >> stream xu1@EPLL 1D+ c&jQ8%gdB-^6gߑ;dO\q~ƨ4 Py*^r; SrPEqbtLR~3&0 > stream xU 0ES:ޢI N&O'8:knh@}7D%YgXnE68])$$ƒ~ܟv1ɂ1GG xos*!~Zo(k B" Pq>.۶{xcA+M;= endstream endobj 245 0 obj << /Length 187 /Filter /FlateDecode >> stream xU @ O Yxw8jotr'utPQ5I-$f2c-Z)+GZv*C@Hx=Π9sT/Ԩ"kF㇠ZFQ"7!\LŮ{kw; #e%(𮈻i^/aTtY!)y@,=l M>k endstream endobj 246 0 obj << /Length 167 /Filter /FlateDecode >> stream x313T0P04S5W05P0PH1*26(Bs<=\ %E\N \. ц \. 30߀JNa!?#I0#;xI#> stream xu1A50]c&k%P)DRAhQA;C_ V:F:i]yYm)5КԸI T:"$a"X B$֞?!#rljtjCsehx. MO {}RmU@#C3zT endstream endobj 248 0 obj << /Length 203 /Filter /FlateDecode >> stream x}Ͽ 0[дtj3:9::(> stream xuн0[xDD'㤎]GQxFB1K~\q4CCM1x "֡ΐJ[1𥎁ޮt=x= W3ƼVTQSc6CC55Q>Rp(s5Mے`_==?ͥGrJ"ZSZ endstream endobj 250 0 obj << /Length 107 /Filter /FlateDecode >> stream x313T0P0QеP0P5RH1*26 (A$s<≠=}JJS ]  b<]P$ 0,) endstream endobj 251 0 obj << /Length 210 /Filter /FlateDecode >> stream xm˿JAOSLs/ <{ F,JSP /6G> 曙ҟV녞kYjUrgq+q)L}.n|w>?J3QV{XuG>vv}1=@nȘ^@2"u)'n6?"2ģrL~Q endstream endobj 252 0 obj << /Length 151 /Filter /FlateDecode >> stream x313T0P0W0S01U01QH1*26([%s<͹=\ %E\N \. ц \. | @ v:QAA=N ?@J@#`p`\z> stream x=1 @ER~- g`#8RK EJ4RZ(ޑ'̨i> stream x313T0P04F )\\@$lIr p{IO_T.}g E!'E@!ncr e endstream endobj 255 0 obj << /Length 179 /Filter /FlateDecode >> stream x313T0P0Q5W0P0PH1*21 (Bds<L=\ %E\N \. ц \. @xD2?@,&=`C" ?ƏadjƎa݄lMI$b6LrzrrШA endstream endobj 256 0 obj << /Length 124 /Filter /FlateDecode >> stream x313T0P04 f )\\@ IrW04 s{*r;8+r(D*ry(0|`??0 ? v'W a* endstream endobj 257 0 obj << /Length 118 /Filter /FlateDecode >> stream x313T0P0S04S01S06QH1*2 (Z@ds<-=\ %E\N \. ц \. c$! b\\\ϊ> endstream endobj 258 0 obj << /Length 102 /Filter /FlateDecode >> stream x313T0P0"3#CCB.#)T&9ɓK?\ȒKCKW4K)YKE!P E >'W $ endstream endobj 259 0 obj << /Length 137 /Filter /FlateDecode >> stream x313T0P04S02W01V05RH1*22(Bs≮=\ %E\N \. ц \. QqC=C=2p\   \\\8 endstream endobj 260 0 obj << /Length 205 /Filter /FlateDecode >> stream xmj@_<s>QiZ &z(BNM9$7GG$f+`f`'TE‡~(=iDEI1E2HQ]%0 T Qm} WG?pj26N`Ԟ}}gvjPhCLQmQ +I.I7y-q endstream endobj 261 0 obj << /Length 273 /Filter /FlateDecode >> stream xuN0ty @!R)`b@L 5X dcģ҉&~uD9մWӤn |0rsK*kN%Ƭ9;fT`6kl:AP<ʋفa2~z`j0:hoTн Y,lR7"fSҮ_‹ᰮ@c91XtX u(cAr6y.!nCI@qqHf `W4x?l endstream endobj 262 0 obj << /Length 263 /Filter /FlateDecode >> stream xu1J@7L17l hvfm +BBBNVbKX"$IX 7c<>HV<|ɒog@%N~oniQtS)1(Ռהm` ]\ jys 3[ =5=9L@jT TZ) iv@J/cqCS86vKdSΎJ4{wS2&-e$ Ԅ endstream endobj 263 0 obj << /Length 191 /Filter /FlateDecode >> stream xu @\z'H  ԩCtEh>уhkeͰ;Sr#&ttBpvd31[%OюWtOh9qh璳8"hre)Q5VzV \4 0i:ul3%Rk-Le00JKE|}xB endstream endobj 264 0 obj << /Length 232 /Filter /FlateDecode >> stream x]=N04M8!UeHbD9%Gp²!4_fjOKO^swۆ^%k#n{27ocGf}w ?6\?Ѹa@=*ŀ2* : (}!WjtYW=-0|3?*| zclb`Q$9R 2S }Q:Hq/3@#7p@ endstream endobj 265 0 obj << /Length 244 /Filter /FlateDecode >> stream xm1N048IUeHZ()XA 8WDAr)5cHœ5\+.U͵CT2,.[ҷ\/eL#93\SaXw>:@~^M:_6;~qLǠVrﻘJX&{ب#Izc&4~g'.zw'ʗ EJsY#袥} endstream endobj 266 0 obj << /Length 163 /Filter /FlateDecode >> stream x313T0PaS 2TH1*21PA $ɥ`bU()*Mw pV]  b<]HG#13acFT0ca``?p`L> stream xm= @irYV ),J--mM8mR,dgbF)MidPaly&T'͞ Zh = vA͒#Kv07}> stream xU; @? ` A+ RK E[7GQr)h1/t)ZEyɗϴOC-*2gd6:%Smx],vKȬqzjHHHC,10\qEqRc,S4EB訵H<,l)o e@)]X!uE{/^q endstream endobj 269 0 obj << /Length 212 /Filter /FlateDecode >> stream xuϱJ@_RG> stream xڕ1 P q(dGx9OA ZN⤎m֣xҘ!$!'3N*Φ|INY>-KNɗ[~>^W݊SSNNT D'Ҡi!4y;쑷Gwp{cjCe s]ؗʞZ."US9©-KI endstream endobj 271 0 obj << /Length 218 /Filter /FlateDecode >> stream xeαJA b > ]vj<-,J--mo||ybCBdy-j /;~2xxD-+j.KtoOԬY:ni0s #VH|ěFo;s+lq΅Ƕd,6ɺY'=alp +%D7p endstream endobj 272 0 obj << /Length 196 /Filter /FlateDecode >> stream xm= @'X#MXXSZYZZ(m#Xo[fa5B&x#/~,+E³N|n-f-nKn!R7 !Hꇨ+U4jdcޑM-孍@l_ "j~' f&74.WHe4A o \s` endstream endobj 273 0 obj << /Length 181 /Filter /FlateDecode >> stream xuα 0+ zO`RL'V08iGE7}4бC1:n83d3dftJFq> stream xmαN02Xŏ{H.X*E"L0"5)oG1o`ŃsaA t7;/%KGvA)N v=4GOYScs W,6+"< .L)'rf;GpaF]1P.;a?2yWL ǹG9^jo.G82TJ="b> stream x}1 @49IH,-,J--mMoL2LvY~ Gc 0G8 q bɁD9쎐y Y|=,9 ܂IѱË_ꪽ^cf8y/>_[;bPsfm]vҨVi.oVڷ[eڏ2t6 endstream endobj 276 0 obj << /Length 156 /Filter /FlateDecode >> stream x313T0P0bcKS#CB.cC I$r9yr+r{E=}JJS. @-\. =2>gg`zp=a&f?qA|.WO@.J endstream endobj 277 0 obj << /Length 230 /Filter /FlateDecode >> stream x}ͱJ19X&ywl 'pVbvb7[E(6W77V80/̤mfRɾ@f|mcqw<︼Բ\vgt|y,/䲖ꊻPLdK?t4g1:Vu&*ޠw#¦%{"oOp($BJ(D|p0hs^>۹3k¸ cԤRP5y>ZsY endstream endobj 278 0 obj << /Length 154 /Filter /FlateDecode >> stream xuɱ 1 ኃG0O`\op Njh(bl-?崚aUÓ+>$?*_5o3z  H1D>1Cf$t cUIa.<5Ga D"JLKL`` ?:R endstream endobj 279 0 obj << /Length 194 /Filter /FlateDecode >> stream xu @`Ń0yVq :fNSuPY7|;4kuhgd4GO q^ͷ=@X f܂x>] C)C 6h[ }POmwj؊n֬GerۺInOs&y?ͅ_[*o&+jIhiKx endstream endobj 280 0 obj << /Length 180 /Filter /FlateDecode >> stream xm1 @ )xnBVJBBB"^do)BBbFST@F R/r@)Z?K6A}cE- ol}:X}"j&xovV$GC* ~f endstream endobj 281 0 obj << /Length 198 /Filter /FlateDecode >> stream xm1j@Ep!fsZ1d"W.B*'e h{A (&E a-]{^ҙ|Xr8}Rݒ;=K}A~qIג7j$2%32 ]hzdLs_Lä_Yt:wjh^H;FU.o%mZ-/LRz endstream endobj 282 0 obj << /Length 230 /Filter /FlateDecode >> stream xuνN0:D%{:&KmȀbj@y?BFi>@UJO򢸑Lȯ9Y^.wv™/}UI\ |~|]=%g\.7B>@T*ƒvPU> stream xuαJ@ )#d^@7!;N0Xr׺Qro`Y#\q|,Oۜ/Ҷ,7nV2oFOKds9F6۵l6PKF@f*;!ɅY$ rHT 'HqĘ8() p^we  * L1j ~-Sё1qx 0hD^)㫎 Zz endstream endobj 284 0 obj << /Length 179 /Filter /FlateDecode >> stream x}1 @]RVBVb(9BʈqvEy03L8I38Byrj5tكL@N0ހ)PR+IFdޒjIWZE,& *>`۰m$jKaj` U endstream endobj 285 0 obj << /Length 206 /Filter /FlateDecode >> stream xU1j@Eq!fo Rd\ l`W)B$e\vG)U8Mb3KtkZ>iyW]VGmZ[wy|گѧZg7}'8l"M !#T ppP\`~ԅƲꌀEwKr40À0=O%AnRZA endstream endobj 286 0 obj << /Length 176 /Filter /FlateDecode >> stream xuϽ @ nY ֫ 7:9::(>#tPCÑKm8r#:&xAk%5ጙC%k,ƭvd9%hr%HDbfRA#JA;=LVi@ &!`nOYo .n R endstream endobj 287 0 obj << /Length 178 /Filter /FlateDecode >> stream xm̱ 0H-}SV08ͣ7#tP> stream x==@!$x.d@ b&ZY+hq%g+̛@.Wy!5||4gN>0U(N$#;NQ=_;!EFg ꚮ~3 |4ؚ4#\Y]gr1WOL$ǭ#bVO endstream endobj 289 0 obj << /Length 197 /Filter /FlateDecode >> stream x5; ` %79m`A'qRGECGEzcokB>bw!ܗ&QvGlE/rPPMycEQѷ(5ҕ;i?͒5-7-ǫy! ^P+́<$r4+n "ID>8q?U endstream endobj 290 0 obj << /Length 216 /Filter /FlateDecode >> stream xEαn@ PGNO_KH@b!`b@L#nvH0e`'wgFJ)S)gG, 톊!څTVK:V6t՜b%71w%;]ͮ:$δ & nKoW1]ЋputF@uFjM0>ɏ) N6#0˾ j5>[ endstream endobj 291 0 obj << /Length 224 /Filter /FlateDecode >> stream xMα@ )iBy` A++Q);l3j:-(#IorNjNӜNP6hW%OR9Q[Qv$QKRvrM`> stream xm= 1F'Xxf׍ Vº[ZYZZ( vz4GL?13yL`(d8.,mv}zsQ]볝bʶxޱ-cIٖJ%YsU f7[q(hV젨[it'zS[ v.Q*FEQ"x ?>&Twse endstream endobj 293 0 obj << /Length 221 /Filter /FlateDecode >> stream xu1n@Џ(Vf\^PXJQ*;eDv mGt .4#Jنc^"U4aY:m_ȼqy1'ˎ2%'PU2| (2w(ڦE-zD6BF{DIڝ3?mgDj # Arf#rNN,t']c^al оWqi7 endstream endobj 294 0 obj << /Length 170 /Filter /FlateDecode >> stream xe10 PW"y#' MKUJȀC X)GQz U 8eSI< e 15ߗ rKIr5JvDYPT)wK@1c5 0|2 GAw= /t:pZi|m˸иI Pt endstream endobj 295 0 obj << /Length 229 /Filter /FlateDecode >> stream xmбN@CA2 <əXg"WYBh<>%aKK6eg]B}}k{oxⷊ>.6-\WT<*#Syc]nyv@6CG'=D",2dfFz-mə1:;_w1|4t4hn7)xM> stream xUпJ@YR,LGȼnb.r6?` A+ RK E*-GHEq[E}\I)rVɢB+~ziRz>yzu^%k+snv#r69MD^HjO@IGJ3&`MS |08oF xo2("~B9~}B@BTB_Cmc1aH9ԝz xk endstream endobj 297 0 obj << /Length 214 /Filter /FlateDecode >> stream xe1j@[4'JT@!* q"JR n+s.*70‚,̃0ir$CdKyyωf^ˊ$9GlӃlKZhYqb~OC~OxCH7L-VhPjeL hA؀&jΨ\5әcts÷|*f endstream endobj 298 0 obj << /Length 224 /Filter /FlateDecode >> stream xuϱn02X%{D,Q*5C%N@ծu͏GCvaOoQϚGhI 5NXYQ39^pӢ>PB"m+}~|QovOdPoP2Gp=AΘ&n > stream xm1N@ D'JM_C~QH@Q%Z6T({-SD1Q Ѽcgqwm݉>4,mFG K=\ۣԻ3mm; d plFar&@GPي>pOc({zUAL/.ީ8|ks endstream endobj 300 0 obj << /Length 202 /Filter /FlateDecode >> stream x]; @GR2͚Dp A+ RK EBRZ㬺8N(->GCW;]@G5v*\ jwR] endstream endobj 301 0 obj << /Length 251 /Filter /FlateDecode >> stream xUN0/ɋ @Td H01NͣQ=X1bdoݿꯇNVknӟ/b+C~g7A~u}N7;yq'rTL6lq#T%TӤE jU$T;xؙVpya"Q1|r9@af6Mq@R{ ͊Ie,yZ,[Q?_Wu endstream endobj 302 0 obj << /Length 241 /Filter /FlateDecode >> stream xuϱN@K5 E+uM0bcl <Yumչ>*epUy> stream x[[o~篘!sFڮm$Z@M6[It)*H}ovgw%e<wggΜۜێBPZh>%a%~ =F8tj-|SAhgFNc B*a<~&rI%WNX&b^AXK, BK̷Qh%5X)/0t^h !,#X;0AT5 d3ʘ~RȥDE&3CUX,L9Ҭų y,0>x~"oUTzIJ˗_>-Er־^n;a/-w}yZ,.$:<ry_goM|)ڷ7LBK/^n -m֋[qd߼˟Ⲭ e'dp1.hoB(4P儒x%y?RRj~"}*k6W.J҄h8L9e_,|xG#Sna`_Wk^e3qo?o_d 4E֚]/Fm#;լ}5[f6]^ܮYju~"f/į^hy3ɢV*;?ޭoV/!Y_oL[6|q]fqzs]]_-ۛbmm)mVXnu6}q}=:?~oova}Oݧby&w^.7Ss]E(EhEV((}EȻ@˟nE+ײߟVI܂19 ,ZSu 6)+qnՄT= 7)Y(?)gļ.VO> DD>TPz*!n`"$ۛ=N՚Ou'S'h o&`W /7;qA;qXi1>>=deάI6H~;yfOQnc:c;ԇ ZJ)]:v~¡qJq"|WM%7Tqyn~ WSQϮ9>>[q#ˎ.I232>nVĵJKJe7UGhb<Ღ XJ\f߮6wìۼgpWۏw`""<}An=Ϛ& 46491Lhw<ūb;Xx3lUz<;t;hɕO)}U onEӘ5^X8+FmV068RƖzFIܦ-A$[Hmy#~|{X#ص1CؾK''$p :ZĔzámip]#@wHFYib7/u^]cs~+uc1>a+J UnIxp1e7_hJhFa4! xҴ~W6L9Z.0P^S4siiU4 ϚZҴnVGTPFm ]V_sΞNuص*G?{ n댷 9h+AVtM^.ȆVld8݄>xM+Ǒ'#?65P.jx.#$uw &ڕ98-q l7ՙM^7qn]; zlrIqS;=#> c+QJ~z艦B8c/6G<On#"6[ w/60+o WH)TO7I%{L.FӔ'OCn{lf11ͩ/d``G&Z]-me6瀽@Q vE4@ؓIfr让;ĪނiV5,ICX\0 ~W9 º F8|?;̓użp<psVcW;Y G|r<ayp<rzx=jAauP.*{`|,,$_yT@CP*<4WtS2Zydt)mSL9.up] +Zʯh+eV+Zʯh+諰U^F+_yBe*U^FkYyUe֕cXݯ >FVTWN2:!=QGQ1xr;Vv 7ҫc.- eUh A xUPs kRV5*CD: Dj%2o~Y0d݄ gr|Q%Aڑ+]ad1ZO}z9 129Jb6o5Se+61k eG岖(_/R]=f)Su6ވ ^mth :MQlZuˌwZ2L]ީY+hYgY';{=;:a8YDTI$5s{B˻bGBw*d`4JzL#_cY@&l玍9̉y'"&h샼s:L 4(uYVs7m~VZY:=sN9sDh yFf%LBkĴ.p68q|1:_PgL=`IJ\v- Ce҄˱:䷘130"K l gh6Gi[eƜ5]H?7 endstream endobj 307 0 obj << /Length 137 /Filter /FlateDecode >> stream x%; 1F;]]hL!he!Vjih7eIY@5`NKnn;[.>Yʬz8nQuĥ>W#D*L"QCĶ5e" ьwO)B endstream endobj 308 0 obj << /Length 132 /Filter /FlateDecode >> stream x313T0P0S01T0P05TH1*26 (Bes< =\ %E\N @QhX.O 27??~0?P`G( endstream endobj 309 0 obj << /Length 192 /Filter /FlateDecode >> stream xڅ1PDPl Ċ1D+ cmq@IA;WL0 v xlagnEt4'g'Ty!n{> stream xڅO; Pl {I*L!he!Vj)h-G,-$q̃T;LNuihuɗV'/2O4Ĭxq7 $$M | ,G\W{F9^ـ"J[|rY"ֱ4nT?pGrjݬc_e*[M* endstream endobj 311 0 obj << /Length 167 /Filter /FlateDecode >> stream x313T0P0U0Q0T01SH1*26(%s<=\ %E\N \. ц \. L@$AD=$? ?@P&VV̌...SG;&.WO@.n= endstream endobj 312 0 obj << /Length 96 /Filter /FlateDecode >> stream x313T0P0T5W02S0PH1*2 (Bes≮=\ %E\N \. ц \. (\\\&Q# endstream endobj 313 0 obj << /Length 162 /Filter /FlateDecode >> stream x] 0->KNZ N⤎>cbMN8>] y GGbO%T2[0YFK&pOdLSAZZFHW 2"L}Tߩoﻭ "Іֺ? endstream endobj 314 0 obj << /Length 114 /Filter /FlateDecode >> stream x313T0P04W5W01T0PH1*22(Bs<=\ %E\N \. ц \. a`?r 5ez endstream endobj 315 0 obj << /Length 116 /Filter /FlateDecode >> stream x313T0P0V5W02W0PH1*22 (Bds<=\ %E\N \. ц \. c``pzrrlI endstream endobj 316 0 obj << /Length 175 /Filter /FlateDecode >> stream xڵ 0DQXK'2҆  * D h%##6HWYM0p sf؜Tz2{XKf1)Kd*rdGR/RA-%a|ݠЂV$QoeUG+O;a endstream endobj 317 0 obj << /Length 104 /Filter /FlateDecode >> stream x313T0P0UеP0T5RH1*26 (A$s<≠=}JJS ]  b<]'W * endstream endobj 318 0 obj << /Length 148 /Filter /FlateDecode >> stream x313T0P04U02R06P05TH1*24(YBs< M=\ %E\N \. ц \. ? 0`77g.`r j'. endstream endobj 319 0 obj << /Length 171 /Filter /FlateDecode >> stream x313T0P0S0W0P01VH1*26(%s< =\ %E\N @QhX.OXǏ?1 ɁԀԂ2} pzrrxS endstream endobj 320 0 obj << /Length 116 /Filter /FlateDecode >> stream x313T0P0V0S01T01QH1*26E-ɹ\N\ \@Q.}O_T.}gC.}hCX.O A-4v@ ù\=emH endstream endobj 321 0 obj << /Length 136 /Filter /FlateDecode >> stream x313T0P04U54R0 R M F0\.'O.pC.}BIQi*S!BA,???PP'W ,5 endstream endobj 322 0 obj << /Length 99 /Filter /FlateDecode >> stream x313T0P04F )\\@$lIr p{IO_T.}g E!'EA0XAՓ+ ; endstream endobj 323 0 obj << /Length 157 /Filter /FlateDecode >> stream x313T0P0U5W0T0PH1*26 (Bds<=\ %E\N \. ц \. @#HD؁:Q'@&> f0d82>3 df Dpzrr@: endstream endobj 324 0 obj << /Length 107 /Filter /FlateDecode >> stream x313T0P04F f )\\@ IrW04 s{*r;8+E]zb<]:\={-= endstream endobj 325 0 obj << /Length 110 /Filter /FlateDecode >> stream x313T0P0V04S01T06QH1*26 (Z@ds<͹=\ %E\N \. ц \.  \\\A endstream endobj 326 0 obj << /Length 145 /Filter /FlateDecode >> stream x313T0P04Q0P0T05WH1* !P"ɥr{Ź=}JJS ]  b<],j0a||=CC apzrr/ endstream endobj 327 0 obj << /Length 103 /Filter /FlateDecode >> stream x313T0P0W04S06W02TH1*2 (B$s<,=L=}JJS ]  b<]0 szrr$~ endstream endobj 328 0 obj << /Length 117 /Filter /FlateDecode >> stream x313T0PT02W06U05RH1*22 ()Lr.'~8PKLz*r;8+r(D*ry(01l;cNJ l r \+ endstream endobj 329 0 obj << /Length 251 /Filter /FlateDecode >> stream xڅJA'\!Ls ޱƅ+,J--;y4B[O"hWf,4s n,͡c%:IRc{l3yz|c;9?Tj fDTP&E{h+9G2D~>/BGE$E7~ }KvmV:$,H@%j}W}azH O#bA=b2~|0 endstream endobj 330 0 obj << /Length 191 /Filter /FlateDecode >> stream xڍ1 @EGR2'pa!F0Xr!E8 I 33;MR(oSJb:xEk%GU/hvd-Lkg4fAs \102w{(` UO\+rBZt%p#'*=J@ ҿϫFa;Whn I endstream endobj 331 0 obj << /Length 184 /Filter /FlateDecode >> stream xm=` .߁1D'㤎]ċ8p n #~$(}L> stream x}0K:#pO`i1NI4 Kd0FMj\ijx@½%\PPGL2P[2;|=7P~K<Ls 9y|9#l K#vӜ_[ZCN _CF,a8[NXTQ endstream endobj 333 0 obj << /Length 218 /Filter /FlateDecode >> stream xڝ1N@4QY AT (Ar 3AzWJ_kN|y9H/vI'Zun8-)\ؙBwoVWg)6r}Gݚ3J~ ZTMa.)- o̤/`tR27V֯ifhh`+-RN]dvg9 endstream endobj 334 0 obj << /Length 183 /Filter /FlateDecode >> stream x313T0P0bCSCCB.c I$r9yr+[p{E=}JJS|hCX.OD|?b0 AD}&> f0H0b!On%rv?s?>  `szrrǁG endstream endobj 335 0 obj << /Length 147 /Filter /FlateDecode >> stream x313T0P0b#SCCB.c HrW0r{*r;8+. ц \.    `|$lthvb)،6 Q .WO@.̌r endstream endobj 336 0 obj << /Length 145 /Filter /FlateDecode >> stream x313T0P0bCSCCB.c I$r9yr+[p{E=}JJS|hCX.OH" $`@CLmQD !( ,x endstream endobj 337 0 obj << /Length 227 /Filter /FlateDecode >> stream xڍ=N@\4PY AT(PR$ގk 7eUI"Q|{;5袥aC]8> stream x313T0P0bc SCCB.crAɹ\N\ \@Q.}O_T.}g E!P E >Փ+ HX~ endstream endobj 339 0 obj << /Length 194 /Filter /FlateDecode >> stream xU-@%&c 迨 P$u[GEev K1h8&nL؃-;CFXA_>pi ?!&+R"c(ɉ(N+ƵGSroW\"Ϡ+tIߣmśh5| dXB]/qs| endstream endobj 340 0 obj << /Length 174 /Filter /FlateDecode >> stream x313T0P0bSCCB.cs I$r9yr+s{E=}JJS|hCX.O0"370`H؃@`?#^^Q`Cƃ-Y  f $700 F"b\\\wN endstream endobj 341 0 obj << /Length 197 /Filter /FlateDecode >> stream xڕС0jrf{::"#a e0XvtmCOh)T^ aLiOvG ֤FscT,r0ʖSiNfEN`Y9Q3pqNN3O0n ZJ4&}5ty+A -ؼ+ԀW2>z endstream endobj 342 0 obj << /Length 236 /Filter /FlateDecode >> stream xu1N@ E"a|$H" * DH$*\!G2HQwmT 娔DJsՠg?x#Um<>r\Iq+wn˜24wC0MLNLtA 9a=tC68yF̛aO2/a<&E>oxv endstream endobj 343 0 obj << /Length 124 /Filter /FlateDecode >> stream x313T0P0b#SCCB.c HrW0r{*r;8+. ц \. @†H0 z(QՓ+ +T endstream endobj 344 0 obj << /Length 167 /Filter /FlateDecode >> stream x1@G(LtYY +D ,ZZhq@IaGhf'_Ϭgɂ#}SqblF.b27+e=Z3bÏB&.ْ`9:Rs)U*H]J^w¤%HRQC/~*hGo8 endstream endobj 345 0 obj << /Length 189 /Filter /FlateDecode >> stream xe;@!$p,1q ,ZZh.F5\5o2s? q98^}G|9^0vV2#kgdfAYL{NELi iww?>, ʐ ] xBi LHʛ1VL0JRaVuZ-Vi endstream endobj 346 0 obj << /Length 191 /Filter /FlateDecode >> stream xm= @ x Ղ?` A+ RK E[)S,;h%Xfh< }:ex\T:8^pVQ>EmqF;)C}FE$ sXBט^Hȃ@?|bezYETZ_q-`R!a~K<.Kj/\ endstream endobj 347 0 obj << /Length 187 /Filter /FlateDecode >> stream xڝ= @g"#Xraˀ!N;GYg!BR@[]/w%ܔ|q&?,Lƹ+x"ҡ@yRx -0遍~*?umֽr!0e] EӐ`%Ж*sz endstream endobj 348 0 obj << /Length 182 /Filter /FlateDecode >> stream xڍ1 @EIk9 n!he!Vjihh%GL2Φօ}g?ofǜlS>'t#k5?;2{Zd܆L]rBC\"iJzD=[5/jLAOQ~ߏ@B_Zh4J5Ϋ^RMuZ9uEJ endstream endobj 349 0 obj << /Length 193 /Filter /FlateDecode >> stream xڕα@ .<} L &`qRG;[pqᾤ 5)+H+9s<^&|XLפ*L,r0S⺡MNMC $z11wx!"><Zi&N?>cH RaH'c ˁ:ѴmO, YK endstream endobj 350 0 obj << /Length 201 /Filter /FlateDecode >> stream xmPE4K BBrmM>}}V́;ܹiԥS=T'u9&a+NFF⻥OK+ VZ[( f#2;܃J>PDCv@Z }•cC 7'* 4u.7mp b2rcZI_ endstream endobj 351 0 obj << /Length 154 /Filter /FlateDecode >> stream x313T0P0asSCCB.c1s<=\ %E\N @BA,@Az H?*;&p4Aka[~ `1.WO@.^ endstream endobj 352 0 obj << /Length 253 /Filter /FlateDecode >> stream x}J@#E`}!k.p` A+ RK E#U(y[,gǰzqꜟJz`;볟 Z.(wk~x|ws%{/xv4lnfxYDdItSn\#7@efd=`El6X4jB*`f}E_h0bj1SL̀,x>v*!*:MƢ:?-y%ۧF@-7> endstream endobj 353 0 obj << /Length 161 /Filter /FlateDecode >> stream x313T0P0bcSCCB.1s<L =\ %E\N @B4Pe,B @d ?  B~oAd $?HzI8'W z endstream endobj 354 0 obj << /Length 132 /Filter /FlateDecode >> stream x313T0P0bcKS#CB.cC I$r9yr+r{E=}JJS. @-\.  @x@@?C1;}pA|.WO@.O) endstream endobj 355 0 obj << /Length 198 /Filter /FlateDecode >> stream xڝ;@%$p.H)L0VjiVW(x[_~0E_cƃ=2b4gA ΄Sp)-8lsQy endstream endobj 356 0 obj << /Length 115 /Filter /FlateDecode >> stream x313T0P0b ebUel䃹 \.'O.pc.}(BIQi*Sm`Pz<7,{\W endstream endobj 357 0 obj << /Length 171 /Filter /FlateDecode >> stream xڽ= @[&G\@7!Q1#X^,7[n8ȃW3r9Al&]'-\,cx܎` s0 n ==Cbq1 SeKvI'mr/)T8R`5zf endstream endobj 358 0 obj << /Length 155 /Filter /FlateDecode >> stream x313T0P0bcc3CB.1s<L =\ %E\N @QhX.O$$PD2`$ȃ@H&?:7 q.WO@.ll endstream endobj 359 0 obj << /Length 183 /Filter /FlateDecode >> stream x}=@XLvNBLH0XF[٣Q8ab^2}KJ)*%Kw4 +@@)juE]VQzB[_P :9o.A@9(dq%7@'a/=ߵG.^Tyh p A!\\[>P: endstream endobj 360 0 obj << /Length 200 /Filter /FlateDecode >> stream xڥ= @g fI"SZYZZ(ښͣ[.(wS|7q4HRYs_8 LWCNv?$#(%p:lHj&5pGٌs V,S*7;(&A]t, -GT@8=F> $_ȥF<5ޯ endstream endobj 361 0 obj << /Length 211 /Filter /FlateDecode >> stream xڭ= @ 4 وVVb&7J{ Lig Z 6_B޼q;QH1.#ܡ$ )ѯO-3 # ƒcM?n0O$!Wɾb|31P_6rilxz+=Տ>jO=]quBVŴ~[)D\|kse8'vG endstream endobj 362 0 obj << /Length 158 /Filter /FlateDecode >> stream xڭ1 @ПJuj!Fp A+ RKAEh9JAqc![̃I`4-ØԈmjw쎜{Vky\Y\/|9êe_Hx+5C8#$RC\B"xo<Iw endstream endobj 363 0 obj << /Length 185 /Filter /FlateDecode >> stream xM1 @4!s7q5@T0XErr,,2ԎgDM&rv=pr^ًYMyaoY!RrGB7 }KD#"eZSW!("PB Ca}96A=> stream x313T0P0bc 3CB.cS I$r9yr+r{E=}JJS ]  b<] @AH2`h AA~[@ Lx:B endstream endobj 365 0 obj << /Length 148 /Filter /FlateDecode >> stream x313T0P0bcc3CB.1s<L =\ %E\N @QhX.O` $0()D? d=H2cģd> endstream endobj 366 0 obj << /Length 186 /Filter /FlateDecode >> stream x5= 0W:oN`B`A'qRGE7^̭ ء4ؔ? ,&Q@>0[}pb*Q)QzܟvI>>yG:J^]S |-,ZHZX:^<r[C准qzb&gaQ$L endstream endobj 367 0 obj << /Length 174 /Filter /FlateDecode >> stream x313T0P0bcc3CB.1s<L =\ %E\N @QhX.O `?aC00~ @2?Dv`N2~+ߎ #ȏߏ`` ?G#g``?A6 H@RՓ+ ɝm endstream endobj 368 0 obj << /Length 202 /Filter /FlateDecode >> stream xE; PEoH!LUBBBN!۲t @!L@,a̻{ې lfOÄܒZrɌOp>ܘW!kJ/LnRQ;H(+p{h/ O.ok> 44W&F&R$}xY& endstream endobj 369 0 obj << /Length 237 /Filter /FlateDecode >> stream xEαj@ dz)CB=ҩCɔdnvj:t&=$%p!:d-"zX!ZnhyxDQd}LKႲ)ֳ[{vȭ+OPy5 @U-G[;z[*lB;v\ɼHer;SHR Z88 ~Ka{ endstream endobj 370 0 obj << /Length 176 /Filter /FlateDecode >> stream x}1 P S2Y<9*BV N⤎G(Ϥc|?!?'S3>gt#͔+^wr~ÏB.9#W!H"Px+"B I / >i`$f_$hj(D{{-ӎ~b endstream endobj 371 0 obj << /Length 203 /Filter /FlateDecode >> stream xڝ= @_L#8MLRL!he!Vjih'({!q-6߲`}t!'<8 91 ũ piNfqJf)c2ot=̜w{@^m W÷x: dTLdO_'X`*w]!WҢqz9KU" }}d endstream endobj 372 0 obj << /Length 141 /Filter /FlateDecode >> stream x313T0Pac S#CB.# I$r9yr+Yp{E=}JJS ]  b<] X큸7001;j?0FJ endstream endobj 373 0 obj << /Length 222 /Filter /FlateDecode >> stream xe1N1E*i| .-V Ab $(UAݣ(>B,?kWEwk.i;O%/$=iI^>$nF6x0ڄʬ ͎X⌾T~fGvlgOȠ<|HTGǂ+ˇD5WTL3*=2,<8h endstream endobj 374 0 obj << /Length 226 /Filter /FlateDecode >> stream xEнN0 J^ @ZHHCL @>ZlDZTe}9W|Qps}ů}PYkP|N#5[ Sj~??ScNzDDFM&4=:4WL hLVښQ5A1;,wKi sęǐ dw;-y"ͧ\ۼ>[z3Vc4 endstream endobj 375 0 obj << /Length 181 /Filter /FlateDecode >> stream xڕ=@!$p. b&ZY+h pJLh$%^5Y (xTHN)74 U[QcL uMĄB9ƛG3a(if M( /#`cV2OZ˿Z;5t endstream endobj 376 0 obj << /Length 207 /Filter /FlateDecode >> stream xڥ= @4{t&)!BBB,xxqFE惝}ov)ZRGk;Sʱڬ)Nюe6aܠOi(Zb>$\Cǹ.5Tº)7 P \)'ߘ'-,e$9ґ i `AY ֚ G9-c endstream endobj 377 0 obj << /Length 241 /Filter /FlateDecode >> stream xm1N0E"4 @TE"Th+)S ͓=3uE5w|pWs/ 5gFGn{n5j+UknS=6@! `dHp糢0g0p \ύF<'"DMbLz[Zj6]*7DE??(jALP5ˠGԡ(OY*G@BR栛 5pI endstream endobj 378 0 obj << /Length 183 /Filter /FlateDecode >> stream xڕͽ 0+- h NB`A'qRGE(}zWEq _~3#)';#I~C"cQ8|Q iT5t] '`010%p1 iBt*Rt 2;nB)4_T+~Ѭ.:\M endstream endobj 379 0 obj << /Length 213 /Filter /FlateDecode >> stream x}O @`qM>!zI 0XɧSW؈p w3s3Y:'sÄ1P{~s8Ӵ$4'tcot=w {* (D`D:y#jAԠBQSQ]9h@9׆mƠ3/"-PIoәn ժ?|R3{6nR}Zn endstream endobj 380 0 obj << /Length 245 /Filter /FlateDecode >> stream xm1N@ Ema|HBbE"Tj`&GkH 4أnv+4rVISJ{!Orݢ~9^ꖋknR*.PI^((`)3Sژ1+-:%8p'?, \%ᔀ^ÊH"4)MP9%7Hi/! GdL!n&{| JMc_u|_!r endstream endobj 384 0 obj << /Length 189 /Filter /FlateDecode >> stream xڝ1 @EL70s @BBZZ( 9Z#XZ:IVt« 3Or#xjBN%7nt8SjImYǤ+]'RzΚT;l@TJ @ hxjze/ ]a;AdD/ak+?iTRS" }G@ endstream endobj 385 0 obj << /Length 188 /Filter /FlateDecode >> stream xڝ1 @EL/ :ͮA"EVbE$Nxg1q߄l">h.!Ǧ^OXRcR 7'e|ޏՌ5ٔs@ th~//iKxO`LГtIVx?>(=Cuڕ/@RriniMoEBs endstream endobj 386 0 obj << /Length 104 /Filter /FlateDecode >> stream x3230W0P0W52T02R03RH1*24(XCs< M=\ %E\N \. ц \. a0C \= h endstream endobj 387 0 obj << /Length 102 /Filter /FlateDecode >> stream x͎;@PggwAxJ!* %>Et300 UjrR豆iqA 5Tv̐ɩ p:_thq_h endstream endobj 388 0 obj << /Length 130 /Filter /FlateDecode >> stream x-ɱ 0 g 2'0-k3:9 TGAEfڢ|7lXU:x@='e; m;P=fpq}kw+*\ǣҟ;ZFy2ddL*R!sBY ,P# endstream endobj 389 0 obj << /Length 131 /Filter /FlateDecode >> stream x-1 @E?^ xЙmV"RP:ٙ&Nwo\%红V\xA=y1:nwՇ Y/ t4M22DT&2+<*B# endstream endobj 390 0 obj << /Length 94 /Filter /FlateDecode >> stream x3230W0PaCsKCB.K &r9yr+Xr{O_T.}gC.}hCX.Oz 0X [\w endstream endobj 391 0 obj << /Length 153 /Filter /FlateDecode >> stream xڅ̽A ɉ̗eSH" ͣxwN5gvZ88Kb񀷲>7TzOoײC _.)k̓<j*zP R.NO|[ƧmdSL6e\6NdV;x* endstream endobj 392 0 obj << /Length 101 /Filter /FlateDecode >> stream x3230W0PaCsc3CB.K 'r9yr+Xr{=}JJS ]  b<]d7`= 1S'W fp" endstream endobj 393 0 obj << /Length 140 /Filter /FlateDecode >> stream x3230W0P0W54S0P06SH1*24PAS#Tr.'~PKW4K)YKE!P EA 30` Px҂!Փ+ &, endstream endobj 394 0 obj << /Length 162 /Filter /FlateDecode >> stream xUA @7 u XJ0fԪEB ,jmAi"=xj1k)%g/ I|<$7}Mlx]I'$K>&ȔGȽm~i\ԅΏG8¢x8M lj0 b+12 endstream endobj 395 0 obj << /Length 94 /Filter /FlateDecode >> stream xM=@PEx$^!R { T߱4J2:*54`ƴ"f@BJJ7"i endstream endobj 396 0 obj << /Length 165 /Filter /FlateDecode >> stream x323P0P5T06V0P0PH1*2(Bs<Áj=\ %E\N \. ц \. 10703H01X010000$E@PPc0n`0\@r ;g0 endstream endobj 397 0 obj << /Length 90 /Filter /FlateDecode >> stream x3135R0B#C##cCB.C D"9ɓK?\ĐKCKW4K)Y(  $'W R endstream endobj 398 0 obj << /Length 91 /Filter /FlateDecode >> stream xڳ030Q0B#C c#cCB. # D"9ɓK?\ˆKCHx*r;8+r(D*ry(HL.WO@.' endstream endobj 399 0 obj << /Length 200 /Filter /FlateDecode >> stream xڵ 0ǯ,^@H[Z+AAA*:Gˣ&-8dIpd8ȔҘȌB(|B-zQ)Im$E[T@ >߲>A`AB+`34;V +-q{mzl[]&GG5jC3+|rP endstream endobj 400 0 obj << /Length 351 /Filter /FlateDecode >> stream x5J0Eo Xb6? Vf`T AW.Dԥbe|B]w6H{-O&79,Lylʹy7]Tr$:)zSQ/w9z槞PgS@="m͢"{tS_\L:eR@5Rl# L7^ Z7] gO.Py&#MYY.IgϞp?GTl]fb& endstream endobj 401 0 obj << /Length 172 /Filter /FlateDecode >> stream x3134V0P0bSKCB.# I$r9yr+q{E=}JJS ]*c<]0A?  @CA2@5@D!dPICd \\\^ endstream endobj 402 0 obj << /Length 175 /Filter /FlateDecode >> stream x331Q0P0bScSKCB.S1s<L =\ %E\N @QhX.O g``~?`g N}`o`F¢0?Q\\\ endstream endobj 403 0 obj << /Length 154 /Filter /FlateDecode >> stream x3134V0P0bSKCB.# I$r9yr+q{E=}JJS ]*c<]0AI~ i"?P3@JR|Z0 @&\=) endstream endobj 404 0 obj << /Length 208 /Filter /FlateDecode >> stream xѱ@?Xf!FHJ"BJ--|1}_aau=΁egM]p,+qeL?&wXis)|›p1$Myƀv3|-{Pe!,GpPghFdPCWT-kCj( gf"{![ޗAftC endstream endobj 405 0 obj << /Length 330 /Filter /FlateDecode >> stream xe1K0 WbV hUw'AAAStp7?S>C>BG{I<J@MTY2Wn檜G>yv36sB<[B7^* kΛ[ojW^ar*Gɿ*ohȡYP~h)?_o``@t6J[LmS/t ]#zIm&+S %-% -3_P}Ҙw4&!YkC1R۠u㛥Ft(X@;x1lY1NN|1`'1:?%r endstream endobj 406 0 obj << /Length 235 /Filter /FlateDecode >> stream xmj1 ^=;Od-$AhO=Xބͣ{N"Q6>fB&?N'izmf4Z||DJƠz.rM/T%V~rEP@X8 \IU{3bY1Ez$'i=Sː†LBp6Pu 8:R [49޲&&Z'XΝ_%m endstream endobj 407 0 obj << /Length 209 /Filter /FlateDecode >> stream xڕ00#pO`Amd3ALd08Fgh< @ڴ_e4f, kӄqH2@5(xEB3 i3 5C8ZA/:L^pXpkFbIF2qUNCE>_c+vdn&~VP endstream endobj 408 0 obj << /Length 260 /Filter /FlateDecode >> stream xڭѱJ@? LaZ 4ܪ[-'BBRP̛*y+uvg!B#n;MG4Zly\Ѣ瞚-Sӟ-5#%_v^QdRPDZTRR OԵ@*(AWE],RIR57P&?2oƐ(~#FLg5=dF#zvL;mf&,mXJ[a # }R:%e-vvS=U:霾es endstream endobj 409 0 obj << /Length 194 /Filter /FlateDecode >> stream x3331V0PaS SsCB.S I$r9yr+p{E=}JJS ]  b<]Bc``D@.0L1S?UB7@`JJ=SP (<9P@=mrC%hAC!@ y`> stream xuб 0  /0 D4?/iLsqINƪ&v)9 O44FQ5o3j ioKk2 DdFLƤ1(C8^QDɰ|p1۽."byҀ)gk׿R?U~ endstream endobj 411 0 obj << /Length 166 /Filter /FlateDecode >> stream x353R0P0bSCSsCB.s I$r9yr+s{E=}JJS ]  b<]d `6`RAI68؀L2`%Hv0)"G'!P5Ⱥ AJ$ `G@%\=Mx endstream endobj 412 0 obj << /Length 254 /Filter /FlateDecode >> stream xڭѱJ@?l&yM"&`p` A+ :--7`kMg+ & XKf]{t\)pp{ =SuV=UvT]j__Z]>5(6S`-̗oնd IS03aLlB".!1Ox&pcJ&HۅrI)ܔ_,v0{ltT颧 endstream endobj 413 0 obj << /Length 125 /Filter /FlateDecode >> stream x333P0P0bSKSsCB.SS I$r9yr+r{E=}JJS ]  b<]?T b78) s)hb y.WO@.!7 endstream endobj 414 0 obj << /Length 106 /Filter /FlateDecode >> stream x3ԳT0P0aKSsCB.#3 I$r9yr+q{E=}JJS ]  b<]acW3v\ endstream endobj 415 0 obj << /Length 165 /Filter /FlateDecode >> stream x3133W0P0V5R0T05WH1*26 (ZBds<M=\ %E\N \. ц \. ?@"000=o`#?0o  0X0`ao`27Áq \\\` endstream endobj 416 0 obj << /Length 243 /Filter /FlateDecode >> stream x]J@Yr̡@&A[sjsɃxj= Qj(y=HДeDz~,//Ue7~_G8"Ǎ;ΟGΗoKWn6^D8I F"!:+2oa[87`d`+hLMfp&byiguf0~5jRryd* Sk_ N9Lxods-5P endstream endobj 417 0 obj << /Length 140 /Filter /FlateDecode >> stream x35ԳT0P0bKSsCB.S I$r9yr+r{E=}JJS ]  b<]d3 eR/i& 0 d`L?`@!\=Afl endstream endobj 418 0 obj << /Length 244 /Filter /FlateDecode >> stream xu?kP{<0p '% ur(vtـ]G|X#y=8. [~< 8:İ˵W|Ք.1wQ@jH>yo瘣1 ý 8hFx]*18yTB,a PM 2< fep\$I5+zG4VY5D NZ@fW'coQ! endstream endobj 419 0 obj << /Length 243 /Filter /FlateDecode >> stream xUпJ@/.0fMN?Sge!VjihkR\AKT֩$EuwM1f``w%=.>jRWRkRnKO/VSYZR7T@fm큼0 {düۘ=4]L3Ȧa@bli@T|`MLjb4L1dtFW$G *.|ؙtI6Dc endstream endobj 420 0 obj << /Length 239 /Filter /FlateDecode >> stream xڭ08#^@D'D::htGxWm~_LyxJsNgo(I5M7?/&~I#K CԼ*x1F%)dB 񑊅A8EjGU(Nk4, ~j}> stream x3535T0P0bS#SsCB.K I$r9yr+Xr{E=}JJS ]ry( , LS? 0adT Y;PCuP7 .ĵ'W K endstream endobj 422 0 obj << /Length 221 /Filter /FlateDecode >> stream xڕѽ 0𖂁#x/i*U ~I(}JK "&HrtF*8 q0Y Ȁf4  ״ 2o@.08BDu uf,HW lf(ze~ަ_Q@6+L6elZv,XKP~EԺe֩N=v< endstream endobj 423 0 obj << /Length 256 /Filter /FlateDecode >> stream xUϱN0 )K~h{=B @!Z̏F%Psw|J8êt0r^jE>U KWk=?ܻbuyJz_uEk?ƌ!fl#>3Z;@'7x &&ȖNm9R0!G/aEFD+E$ьMX^>a-M=:upǴ-i}GA^{sywָ+=# endstream endobj 424 0 obj << /Length 150 /Filter /FlateDecode >> stream x3Գ4W0P0bSsJ1*2" Fr.'~1PKW4K)YKE!P E?<@0g`A bP>T*L`)`J+F Hʃr Wr endstream endobj 425 0 obj << /Length 191 /Filter /FlateDecode >> stream x= @B\@7JL!he!Vj)h9G,Sl3X,fuVsmnFlzl @Hw4HH/I'S>[ِ҃C#^(>l \3X~ZPCAJ'BEH?4u7{-'ROr%xVݙ÷C qBszxa endstream endobj 426 0 obj << /Length 240 /Filter /FlateDecode >> stream xm1j0g1> stream xu1K0W v8b vtr@?')ΝCMHH^K^Y/PX.8\> stream x]AJ0CМ.8]ʅ҅&uW<3ѐ.OXSZ[svn Ik_> stream xαJAYL"y.p1bLBASP=p2E8n@,ofgɌKWR+s8 5srzJ 5W7Y ~k%vTZ^{cٳUoC0˖*STB`ζ&%EQ0b43e}"_馡}l endstream endobj 430 0 obj << /Length 204 /Filter /FlateDecode >> stream xm; @ . Vf.1L!he!Vji(X({8Qښ}i<"Ńf{Qj{T3Qes:.{TŘ4 5E&6%/_x/PAP02g0yp&dBw:+0}ATyM6Ӣ5l.5iK|T endstream endobj 431 0 obj << /Length 198 /Filter /FlateDecode >> stream x3134V0P0R5T01V0PH1*21PASKLr.'~PKW4K)YKE!P ETD0S$00|`A; 00* ?8Q"I&PMb`߁q ̍:]'W ckA endstream endobj 432 0 obj << /Length 182 /Filter /FlateDecode >> stream xڍA `'?(   AZDjX.̣y҅Tcu 7f: 5P L % MBb%_/#jƒ&Ύ҄Z{Ue5TƩ-ՇW6j@-OӉ;*`{^[bTd7 wSZ= endstream endobj 433 0 obj << /Length 198 /Filter /FlateDecode >> stream x3134V0P0V5T01Q0PH1*21PASKLr.'~PKW4K)YKE!P ETz !HԱ` |P=iu D)ph<krF=A?0`> stream x]1 @\B/ 8M(+Tr!bI q23;9nvdC)lGUgwIBf6$32d@fr@&m)2ϩ\^sϵ2HQRQO5QJrh MTrL@V@ endstream endobj 435 0 obj << /Length 141 /Filter /FlateDecode >> stream x3236W0P0bcSKCB.# I$r9yr+Yp{E=}JJS ]*c<]70| C`003a`\=&[ endstream endobj 436 0 obj << /Length 237 /Filter /FlateDecode >> stream xڍJ1ƿ00 v^@9Å+T[}> stream x3134V0P0bS CB.C I$r9yr+r{E=}JJS. @-\. ?&iNa`D~700n?D䇁$7 \\\y endstream endobj 438 0 obj << /Length 122 /Filter /FlateDecode >> stream x3230W0P0aCS3CB.C I$r9yr+Zp{E=}JJS ]  b<]0@A@8~? q0\=(CE` endstream endobj 439 0 obj << /Length 150 /Filter /FlateDecode >> stream x3236W0P5Q54W0P05SH1*22 (s< =\ %E\N @QhX.O  P?`E6?gc?P~.WO@.W endstream endobj 440 0 obj << /Length 196 /Filter /FlateDecode >> stream xڵ1 @Еir3'p.#BBRPQr0E:? d37u.{ʧHrCqJzƁGz$15x2`ts [R?L3؂rkm;x3HKv@%.oԐ nn**ɍ@ÔDr endstream endobj 441 0 obj << /Length 108 /Filter /FlateDecode >> stream x3230W0P0aCS CB.C I$r9yr+Zp{E=}JJS ]  b<]?0! ̃`qzrrƂQ. endstream endobj 442 0 obj << /Length 177 /Filter /FlateDecode >> stream x33R0Pa3scsCB.3 I$r9yr+p{E=}JJS ]  b<]?`@=:773n? Da`N``` O7Nszrr#߈ endstream endobj 443 0 obj << /Length 147 /Filter /FlateDecode >> stream x3134V0P0bcsCB.C I$r9yr+r{E=}JJS. @-\. ?00`D~70n?D䇁$0I.WO@.e% endstream endobj 444 0 obj << /Length 188 /Filter /FlateDecode >> stream xڍ1@E #0e6 &naRK v9GTd)HN^f̦ǚ95(EqߜR{cRkI ? ldM*H&g8^WSQdHVR!J*- i~ nN/ookg$AH> wlzZIK endstream endobj 445 0 obj << /Length 196 /Filter /FlateDecode >> stream xڝα @ HByuj;:9::(>Zp"]qQ |CB?2ܓ1G!#I:Ramd$V$fO"tٓH$R^K6ʯ\UW0/%>T5*4hy~> stream x31ֳ0R0P0V54S01Q06WH1*21PAScTr.'~PKW4K)YKE!P E0a<|?`0?> stream x3635R0PacCcsCB.# I$r9yr+Yp{E=}JJS ]  b<]3P?n3 ~o0ah`?PszrrjF endstream endobj 448 0 obj << /Length 195 /Filter /FlateDecode >> stream x=αJ@Xf x{`TSwZ * W6`"8%Gf|q~K.4pR^j<> stream x363T0P0T5T0P05TH1*22 (Ads≮=\ %E\N \. ц \.   W  @ @,?(fQ 0pC sC3=;?f.WO@.uH endstream endobj 450 0 obj << /Length 153 /Filter /FlateDecode >> stream x3134V0P0R5T01Q06WH1*21 ([@ds<L =\ %E\N @QhX.O `J`pB`왏I@.WO@.1c endstream endobj 451 0 obj << /Length 183 /Filter /FlateDecode >> stream xU̱ P#k[WJ' rjj Ɔh>`Phj @ B\Q#HEldȗ$"Sg3:.{|LVkRj_ ..X ,g0i) <p&A=j|c(vk]b=(ԿOI |F? endstream endobj 452 0 obj << /Length 233 /Filter /FlateDecode >> stream xU=KPs Xxv(zb`A' Q|A7|~Lx`7UN?8g!Aj"z$r~nhdHڙdrO/$GcHN* WUP6Aߴ45q " bx%tq_cGŲh;L t5<fOk2|+ZlECd(IBY_ endstream endobj 453 0 obj << /Length 210 /Filter /FlateDecode >> stream xMν @ )(> stream xUj@Yi nZ$sSEGQ|x I;=F(N8^D!qiIs ǔB3I-1QYAg//74gZv* 0ÿ+]SCE@QsϰF,IqSn/'gCb^mmjg`1'>ڟK endstream endobj 455 0 obj << /Length 183 /Filter /FlateDecode >> stream x%1 @@$|'0+AA),DQI:IUuO)Fh~!;:c̐ېዬQ֑)HpIH]RY#H[m(l2Oe-?uC endstream endobj 456 0 obj << /Length 188 /Filter /FlateDecode >> stream xڵ1 @EH!L#d.ͺB` A+ RK EBbGRRl6Pt+ǬƬ5$Ii;Xf$#aI,Dv$f,I(K~ |[jWopG!SE /zO6x+ӸY~uд` endstream endobj 457 0 obj << /Length 121 /Filter /FlateDecode >> stream x3135R0P0bc3SSCB.# I$r9yr+Yp{E=}JJS ]  b<]0001; aX*6T?0'W N endstream endobj 458 0 obj << /Length 228 /Filter /FlateDecode >> stream xmαJ@o"0M^ป'pWSZY `eh>J+5E~;Yct_^iC-/+9u'Zst }{} ,, %s'l"aAZқMY'W Tc| endstream endobj 459 0 obj << /Length 235 /Filter /FlateDecode >> stream xu1N0ЉRX`3',ZiY$R AE GQr[0"OʌǓ/^ҟ+Vɾݭ%+yxb>F:iy-29Q EPE6fLV&b&e6fՎY (y/ifU _ cBԨM>y2_ |Ǜjh endstream endobj 460 0 obj << /Length 188 /Filter /FlateDecode >> stream xڕν @ + At-('𮶵kotrP?Q_ I+F!=ړ,o)$G$'KROt8oH&{$S^zVSBĢ iAf1h.p;`Z \2oߛy544` endstream endobj 461 0 obj << /Length 226 /Filter /FlateDecode >> stream xڕϿjAna s=b!j WJ!`R nGG8̜EH:_1;dySpnyΟ9)_6[d?9oR&[}";YL9#;e銊Һ„pQ*+j .+xs7xĕ\ }rR /:tKuNTc'ې'jiT2Dׂ+X endstream endobj 462 0 obj << /Length 243 /Filter /FlateDecode >> stream xmJ@O"p}dXW0 j)h()SDm>{uuVZjG+9}Mjag"VNbkx|JV+-*@ Ps&[ D>#E@rI~2> stream xڕα @ HB}Ѽ]`A'u(GQ|TZ?$w#3ihdȎhC!s8cТZp*Yz?WS2f5wHPQY 4a:B@ 8 1n -SQR-8 d_Ѯ+J_> stream xMJ@Eo[8м$AB`B]W҅E ;#Ǜ*y{wquLZZj}%OR7KmN~&wlֺ₲<>H\i%Jo*-o])L O[ `;d1a3X`LpM6{{xSHp|tO01l6 i4,e3zwgRS@v伕+c endstream endobj 465 0 obj << /Length 237 /Filter /FlateDecode >> stream xu1N0бRD@\lBTE"T AKr!e3 gi_'aE5tB 2(_pӢ&1^_v7T]M=[b.'0S2*(ٌ`&p B!t 灼__Rc%ɞ 6{6C!Ic)A?XZ1IN+OVqY- m9 endstream endobj 469 0 obj << /Length 95 /Filter /FlateDecode >> stream x31ֳ0U0P0T02T06W06RH1*2  !2ɹ\N\ Ʀ\@a.}O_T.}g E!P E?< r WGz endstream endobj 470 0 obj << /Length 327 /Filter /FlateDecode >> stream xڕӿj0q%C `*B]WC:Nm-vG#dt&?RiD ~i]_\V;WzG*I꒚M dߑ%)YRtZ@m^HwYmVaܶbN4RbXMΔ\uNnnb| mbީLE捴]$ⱱ7!3ilz.2Ob'z>уt!򸴏97 טC.k&) 7Lʬ k ͹!!KkK!#ܥm<Fk(4J@?mG/c endstream endobj 471 0 obj << /Length 267 /Filter /FlateDecode >> stream xڵ=n@Ǣ@f9Al%"C$SX+V*;eDIpJ zְ̊շy^O=JftॽEzKIzWQ+DXQ:]L@GjQPizV8Jy<_oSrJ^CoCK(vRਾB,|.WKuɡ`DuO6KN6_i JGT+ɭ KPJ~ s uy endstream endobj 472 0 obj << /Length 338 /Filter /FlateDecode >> stream x͓?N@gC6QڸHaRK vF8%^0 Z-;;3|qvrXЧhsJL6~Em*iS^o*\R[}OT@WdR;Ȉ,QG9Ci 7rXK0A@$s;:>GOÔ11PVGG { r(ܑ  J}1*7S($;SheIL>oC^fi0ӤIΧ C4qHGnJ谬cC +{7Z۶> ࿢*E!en/ endstream endobj 473 0 obj << /Length 258 /Filter /FlateDecode >> stream x1n0` x'b R"5SS۱Cd(9BFcWGRZ}l_Y1S#=e}EeEzYNzm6|<>I/O^捪ko?n>CK(I֪ov^سs`'rVr\w I˼ދ/np=g?;ؗ= 13rً E7Z1ӌk kmgj.=WMs endstream endobj 474 0 obj << /Length 228 /Filter /FlateDecode >> stream xڕ= t y G('v3#NI4:(IӾH~iՍE[LK;nc<`gq\$A95(8;H(beYc6,wh*.9)"1RH HP+whyś(/*P#qRDҥLSc_擽P[+^& I)Jt*Jl)sŪJSN2\U\ endstream endobj 475 0 obj << /Length 192 /Filter /FlateDecode >> stream xڳ033S0P0bs  #CB.sc I$r9yr+s{E=}JJS ]  b<]CbY ?00e1 Xp?g1YpUgYxY, Dp,y8be,^$'}TaAfRX\\\1=# endstream endobj 476 0 obj << /Length 349 /Filter /FlateDecode >> stream xՓN0 ]uPU"D$02`nyMNIܻEJ8v?ϊ xc\=83,OݣZ*ƲR9UZ_Jt79f^! 5Dň6X;ЖuH@cN.|͎r.m@γۯF|=Mb ִ`]Üb{)$U2ئ' ÄcW|rƬ,e9sOx^cfu=z.{6S1;Ae&oVgۛ`_#7ğ)NG YmvM٭f !&\oVW ?! endstream endobj 477 0 obj << /Length 311 /Filter /FlateDecode >> stream xڍԱN0o#O \<'H3D'㤎H GBI%)+,`z aJOJ}o 9ƙ={MyqB<>@<1f#q8&t3x=%T]_'V1 S>8|bGx ~ه_(Jf2Lc# ן8~w[stJptU,r,]#c},=3ֳTc)frLiGvKA;+DE 1]*YB8k ~oL endstream endobj 478 0 obj << /Length 316 /Filter /FlateDecode >> stream xu1N0qG"yLJȀbF Rc@n@G*9~,d4iZZ?Vݣ^6RVyy~}ԺܘT܏R*<Vs[(;(rOηwp(X;уr,8=Sp`b dOx`Op4Lh }S8:S8^b ab`x'ܷ؂ ~|8'`5l8qN Xx> >kJ@ endstream endobj 479 0 obj << /Length 209 /Filter /FlateDecode >> stream xڳԳ0U0P0b c #CB.s I$r9yr+[p{E=}JJS ]  b<]8J,fn0ªc5CX@Y bGb}e1ce H,ln~ #BBP`pb~Y 0SFY䱠I'W T4# endstream endobj 480 0 obj << /Length 290 /Filter /FlateDecode >> stream xڵӱN `H&GJkNM3NIM{4"Rȍ%) ~ٜoK<+>Lcuz^aہxĦqkAtwb{%>X> stream x}ѱJ@?lv_@p] !p` A+ RK E;!hM7HqfwO`vv23)Vf0WI%X8=Uk3UqaUASSbmn*Sުvm| 82"7@б, }8$tHIR2>JJ =MT;4[6R׳ā~D}~k.:6ʃHϐDJwk81ۇ=Isz6WBJI7l:ahJ7Cަ85,φkVq< /XYd|vRJJ}I endstream endobj 482 0 obj << /Length 176 /Filter /FlateDecode >> stream xڳ431W0P0b 3 CCB. rAɹ\N\ \@Q.}O_T.}g E!P E?!u?3bSWbWbWa1gXu0V6V eG,eƒ'c1%r C< endstream endobj 483 0 obj << /Length 347 /Filter /FlateDecode >> stream xڕұJ0 Y hw vyIݎkx7 /ׄH#MHYO =S}TDNC!e9qc}:/Or^F_eWQ3]|oAwZhp !j- G #gMr>6n3xf[22>Gޖ_t2r NɆݲaw{VdS"ؐ9rm"s22q D,xc'SoD̼18,0Ndo> c[o DeaXw ]Gom𺷂uzg|UNj yli[5J^ endstream endobj 484 0 obj << /Length 270 /Filter /FlateDecode >> stream xڕJ@'LsL 'BB> stream xݑ=N@FJisX[N"GTPR; 9BJGZ0; Jifw<~EqUQAg9T )fT3j4wTN\IM}MoOhf7s,hSv`ځ_ hv= {H 񞡱B [r%kT3. 0=;  ڿv>;bC _\Af #c,'4/+;hq1h?7p% endstream endobj 486 0 obj << /Length 243 /Filter /FlateDecode >> stream xڵN0/`?BdS` Heꀘh XI-#d`stgۿ~Iy)x 5_XQ&oG\7vWEF<z{O5 Tb!ȣO!2J`@;PP<;Gg3E9c̈*l09t / inm';)),bߘ^Jq݂zlgF endstream endobj 487 0 obj << /Length 253 /Filter /FlateDecode >> stream xҽN0T"GȽu~n! & 7+Q!ʟĄd嗋l4\jU<sMo4HQ {N^Kls/dKɮꑚgʱw_ s=$p8E . (sׅ42*ȱ| ]6&ܴLpڋ_IHGN!X>] 7#f".F?^Q 3ҙ b= endstream endobj 488 0 obj << /Length 244 /Filter /FlateDecode >> stream xڅJ1g"0M!`Dy[ZYZZ(ںy}<•aǙP1|?IO :1H=>cTPc;Ocw!^_[^ʙ;V8?dmgPj\Rq :dĄ* |Vbn;gE d1o( ؁ahDBc!D[o1En %in6N:\Z` æ]H_I<?y뭜 endstream endobj 489 0 obj << /Length 175 /Filter /FlateDecode >> stream xн 0>B L*)j3:9vtPtnG#8f:M|~3z> stream xڥ?J@'X&G\@HBL!he!RK E֛L2ɮ9o[,Ƴw565>UU7v1.tqoYKtq ˣ|QђCDF"RcB|&;J e%wpU3B?O|G(^'f ]THد|X9/O8E.> stream x373P0P0bsC cCB.33 I$r9yr+q{E=}JJS ]  b<]0$0a aÐef0x:`P?H e00?C(v q'W l2 endstream endobj 492 0 obj << /Length 138 /Filter /FlateDecode >> stream x3635Q0Pacc CB.# I$r9yr+Yp{E=}JJS ]  b<]``0f+ɃԂ 0a@\\\٥; endstream endobj 493 0 obj << /Length 107 /Filter /FlateDecode >> stream x3635Q0Pac cCB.#K I$r9yr+Yr{E=}JJS ]  b<]0a\= endstream endobj 494 0 obj << /Length 232 /Filter /FlateDecode >> stream xҽjA W#>WZL+vrp!ET+ -vXqt;';됱j-->xsiNY-gOّy+#CYEI O$Rx%4DJʤn ׮UH@Y$߸Np⧤D@(Ax^ 9Eۄip xviC endstream endobj 495 0 obj << /Length 184 /Filter /FlateDecode >> stream xѱ@ & &]xHLtr0NUy{ጃ zw6d4JBGqlfiG{1+P)QEz@-ibc|!Pi ౮!`{.TV6ߡA_y48+po endstream endobj 496 0 obj << /Length 231 /Filter /FlateDecode >> stream xڵ0kHnЂ0 &2`A3<#02^KL%!_s{I!.qa@CT9 +@P% 7 v+@x0> stream x;0 t#' VbTD$02`nQzT dj20XY陞c+4xRps?aq@iA W<ix=   E^6ɱC:_:Wѫ}O_ /h m Ij^ endstream endobj 498 0 obj << /Length 259 /Filter /FlateDecode >> stream x]1N@4;ۊB$\ Q%ڬ\vY)yTk.拊57 UIJ/Kn6O\k*ybx[~|nXp8HDF#々~7'QȔ^;LKZ+45qj@.dtv!"ieh֔j]dV絳Su ?hgcfKxhGZ endstream endobj 499 0 obj << /Length 186 /Filter /FlateDecode >> stream x3534S0P0R5T01Q07SH1*21 (Cds<L =\ %E\N @QhX.OON2bH$;&=A$3?8HAN7PJ`$H `( E` qzrr:p endstream endobj 500 0 obj << /Length 187 /Filter /FlateDecode >> stream x1 @   fl1[ZYZZ(Zkyt {O!(VhpZ0(j. 匴F91J3FNPf4W.dI K#ZX+ސ8 w6 .n N<sUv848n endstream endobj 501 0 obj << /Length 309 /Filter /FlateDecode >> stream xڕ1j@7Xx6l6@RXR%)S$$fB.2Ni!7.V?u~f*U+uW9o(fKUn*< ݖIu>?_dRLjG/zV!C؃@p` 'h'đv3k"t{O<8 F evb883MmH Є̎io“z>Ba"0i5s?hb8T0c00c*Cٻ1 i<8^gvJpi\DXו!) endstream endobj 502 0 obj << /Length 137 /Filter /FlateDecode >> stream x3337W0P04  )\\&f  ,ɥ`bƥU()*Mw pV0wQ6T0tQ```c;0D0I~0Y"I ?&D(I"\=VI endstream endobj 503 0 obj << /Length 301 /Filter /FlateDecode >> stream x}MJ0)YؖG_]x>.]W҅h=Je? گiftߟ ChÞ6 s/\knCs%ux^ߟ\s>k o@B,D'DdZ"-,-B/63"x甙k p7q|$pF暿 dL@AvZHFӬYM5k|,ZdIeb4j`Mg!@Tt`[Bͻ.A8Ew̕bԊW'bt7}t endstream endobj 504 0 obj << /Length 305 /Filter /FlateDecode >> stream xڍN@LJlA gEr&ZY+h=> @IA烋 |gf.K xQz!eY^#[E{_o8_c#>UX>)EৣNGG#"qhfH8fEAEI=-Β%$#쵂H\Wfä hgcgݺi8iZG`s+,25\i`2[[E3)D/bZ1.8G IUuuR:X&oݴ]֯"Mߴo endstream endobj 505 0 obj << /Length 225 /Filter /FlateDecode >> stream xڽнj0 ['Pt!tP2;4qh~?G$C@Bw&,+]po1}R28^~в$IF~{͒/wu|'ܯ8&旘knLM@;&ED-tw>5 pU/jh:؊,PW+D5^ԝhma#:YVp=Dӊb~9ag/uwiS]]q endstream endobj 506 0 obj << /Length 285 /Filter /FlateDecode >> stream xڭѽJ@Y lGȼ&H +PN-`bu>r"X?L6']x\c[awO}͚L> stream xڍ=N0'’!sHRd E"T ()@ Qa-G#LyxcOx~ar Լ=>٦fqR57-ϱm__l<ږ[Od%2 9SQvTy2S T 2NXFvY _C!"%R/Q("!V$M x#$0"W ΈPr($7y?"^\%Id^EARiP7@t4F}ҷ CGɞ~\ endstream endobj 511 0 obj << /Length 136 /Filter /FlateDecode >> stream x323P0PP5T02P04PH1*24(YBs< =\ %E\N @QhX.O9   fv6> $'W  ' endstream endobj 512 0 obj << /Length 95 /Filter /FlateDecode >> stream x323P0PaCKCCB. \.'O.p KLz*r;8+r(D*ry(177? 'W  endstream endobj 513 0 obj << /Length 294 /Filter /FlateDecode >> stream xڽJ@ƿ%``  h`xp` A+@--|tv)-­WXZdow*;9-8㒏 >+1*R̸*gZ֔Sz-eJ~{}ty{9+Sb 頁Ș2ԠFJ -_5J5f҂Fvh4P"VeF T߄iӹ{ =#0s@7IMlVMts~!|.G9#٘0\f {qo@W5/XI endstream endobj 514 0 obj << /Length 296 /Filter /FlateDecode >> stream xŒj0OxܢGн@kg!M ԡm-@^[^[WI qUutqE+ z+̟00=}c~ =T`!gA@jT, 8_=eCAMF^ |:I *@=N` ڝ 垻ḱ69&>0s!of &jɤbu gϫC0IF)Zm* endstream endobj 515 0 obj << /Length 171 /Filter /FlateDecode >> stream x1 @ [~/1FJL!he!Vjuh%GL7pWjRVsȣ BRJœϲ?SVp\ؚdq$fyQ3ƴ_@ x6QjykaD D~:Vht%7Tm endstream endobj 516 0 obj << /Length 259 /Filter /FlateDecode >> stream x]ѱJ@ Lᾁ'p<8O0)V"*+ϑ:Ygw{tx-(9bA1=3?k*hmuAoh]MN-V+rn`f \uǦxY> `=jx烷li'^ b8vUx谈 endstream endobj 517 0 obj << /Length 229 /Filter /FlateDecode >> stream xuϱJAba yh+RPK E;1 tƽpS|?;?xžjs3TC=-r+SrgkkrKyrM͒a{ծlB-`a:`u)xuwGW2&e˯ɦnh huaǨk} [ bԪob"EzONoɌla endstream endobj 518 0 obj << /Length 213 /Filter /FlateDecode >> stream xѱ 0; 4X-P vtr'uTt7)7&/“ h4"rMӘzd endstream endobj 519 0 obj << /Length 210 /Filter /FlateDecode >> stream xu1j0g<7 41'z(S$ MHXGQ|JW\(T 7uN3uki1}.Gq%Cf&u#U])Yϧz\R׹fi WOp_PI! I@*#f%#~,K{ǏT#,ΰq`(nYsLޖF^V2 endstream endobj 520 0 obj << /Length 167 /Filter /FlateDecode >> stream xα @ ;:'zx: 7:9: *:{G;s]!3pck8YǸh PsNA^/r9E l BuL[VeTɎdÞ@`_wV| 䈚 oafaosK endstream endobj 521 0 obj << /Length 110 /Filter /FlateDecode >> stream x323P0P0b#S3KCB.#C I$r9yr+r{E=}JJS. @-\. ? C 1cqzrrp^ endstream endobj 522 0 obj << /Length 203 /Filter /FlateDecode >> stream x=@H\@ȜM B0X({+ba8垫|>2Pԏ~?Ѥ$|@jRRod5Ԍ;*gX@l$u8lSyEȞn!X#xiTCƩFHjODO'0vBJ#n $"&ݏ endstream endobj 523 0 obj << /Length 209 /Filter /FlateDecode >> stream xڝ= @GR2MtbSZYZZ(ډr2EH|((v̛ݝGa_ endstream endobj 524 0 obj << /Length 144 /Filter /FlateDecode >> stream x36׳4R0P0a3CB.c HrW06r{*r;8+r(D*ry(0`?l(g?6g u@lC{ pP endstream endobj 525 0 obj << /Length 213 /Filter /FlateDecode >> stream xMͱN@б\DTd""R.HE) h!kfg:[\ꗺXS)Ks"Z;׌oY2=7Ro0ͬ&a8YZi4 %:1X[z83L̺E[y!8}?+O2dWtm8 \\ղuY endstream endobj 526 0 obj << /Length 202 /Filter /FlateDecode >> stream x]= @Y6sݬ+0Z *ZGQr!n5|ś7ȈBR[^0$)?G19]/bLւ :c:k{-Ŭ`m88u t&p2 lB̘Ϙ> stream xeпJ@o \`^By]  @-G̣R^w]9 Opj8>xPS5ZOLIppu%?^^qDzŷ;JW\ׅˡ~ lr&Vg{'´N2;s8Gvn=ЪQob]pл ~^8:g007~ʞJT Ͼ4sM^!yJ[X' endstream endobj 528 0 obj << /Length 207 /Filter /FlateDecode >> stream xڽ P FҡмVn?`A'qRGE7f}>BŚނ*3$|9VuQۀ}+5͞1%kTڤ|18Ux*%V738 \A&rOP deyܿ>X ?c\%#'q(IfNĴ) endstream endobj 529 0 obj << /Length 131 /Filter /FlateDecode >> stream x337U0PbC33CB.c# I$r9yr+q{E=}JJS ]  b<] >00013 A9 CaՓ+ t^@ endstream endobj 530 0 obj << /Length 259 /Filter /FlateDecode >> stream x]J@Of!"." E0pA.Z v |˝gH0??pNNmnҮwYUϹ勧7wk"nssa q[{_AꭅBaD4%;>#p{%*édlW]HO˷df 3ÂױtK҇FoMfl=o,"E"pLΉ~WhFF*4& !3DWZnvj endstream endobj 531 0 obj << /Length 257 /Filter /FlateDecode >> stream xmJ0'y h[ 'i((ysƙ$;dfjj5u=5mMrPٿf~jg6wW`G*`Z@y`5@N08F  xP f͡HmVJ[\8 )qYTN KJ8L3#ęgDUk-2gB8&%1Dw>vq endstream endobj 532 0 obj << /Length 206 /Filter /FlateDecode >> stream xڥj@@CkB  A GAẸMb/hffӱZ'd?$u{<l(潽x3\h*fTK> stream xڽn@ 2D@ހp\hT$R3 bF"1Ti-rUO9$fo=> stream xڽ=j@W0LsDZT)+' R(:J&xݑ:y;v&DZgЦ3p)ڱ ,rHYH|I'$%nlkcLCsb@D$*cz$Xp3C0_^")@lR{Ö;"r{H=ϩt.:/d[%K*e?#W~'7  endstream endobj 538 0 obj << /Length 96 /Filter /FlateDecode >> stream x3631R0P0F :Ő  Yɹ\N\@U()*Mw pV0wQ6T0tQg?P`Փ+ "g endstream endobj 539 0 obj << /Length 398 /Filter /FlateDecode >> stream xՔN0/y  m KHd@*bFHݒG2vjEb&C˫R\b"k?Q.;V<{gw4γ^|}~lv3vQ5@dֺȴG`̷dQbB\"dW '1)Pl$b.D9hbYp>bP:`VES`tLt93)| bv GNs@9dSL8:p 1¸ ePQJngCʋ9R@(o!DEiMaZj$M؟|hfjcÕ[BK^~i+8j endstream endobj 540 0 obj << /Length 243 /Filter /FlateDecode >> stream xڥӽj0 7/P=Aew @B<)Cv,nQ;T+&PBI.ɥ򽒺_8x|Yf-efяifp'l ɷ׸~);HCtR M J$ =JEݠ](F]JvOPN+NSݥw>H]! FnL* %aB΢,# endstream endobj 541 0 obj << /Length 316 /Filter /FlateDecode >> stream xڍԱJ0 4O`[,'A&qRGnV|mp\p9䗖J~qr5KBMKuy;}ts/g. eV;.N\]i_zY37RcUup]Q/-%u;>j{PkP%G*K0IX S]' aa $W&>a"a I0QGdl LL M 254Aaڷ#*bDM6~,> stream xڳ437R0PaSK CB.s3 I$r9yr+q{E=}JJS ]  b<]>@?7@Y - DBX`,v8bƪ@3nfd_b?̰⇇<`,x> stream xڍ1K@ 7_CIP AQs#~lI !ܻ{w5 Ǐ?.qEs84i"bS5D[O|p#9/՜ٕx}y{\<\XDw<[ v1c(ٲA2-#kgSr̪CwYX@7skϻ.Ёy=De=AW=/2Nе Pǯ{Ro0R J7=7рKgW/1>11x;M4$.ds.(M.[Amdc|b];A7Y@|[33O/n<.;=oZ) endstream endobj 544 0 obj << /Length 287 /Filter /FlateDecode >> stream xڕѽN0> stream xڵJ@%4y˼nn p` A+ J--PB\_SE;%_tB=ܵlkouLn}{ ?T\n0`Bh§"( v3,rV (R0(Z1̾?^3A RW^SML j3)0}1F3f liX6e*yX i}lM󣫖 S-zY endstream endobj 546 0 obj << /Length 267 /Filter /FlateDecode >> stream xڝJ1'lq0޼fpVb]hy}-86L /;q5%QwFO-kHfr;r +ZoyaC 2i寙5z>%k<&r,`vd+q3ߒ1^+ \oxE<@G*q/|Aoٸ=,8U(`ش fA-pڟڤPj"{mI倷YR endstream endobj 547 0 obj << /Length 351 /Filter /FlateDecode >> stream xڭJ0ǧȥº=z =umr!4LRuDg^W4;(M}h-ԣKCQ\jժԥ*NѮ̼<ޫbu~lX)U6_GzahB t ]2G6Da)hrcfEA1-?pλճ I}҈6ĥPgOn ܘ'+tc036u! 蒡AM"9%} |H=X9ZHv]ϽmE=LQVgq)ϜRT7D]n cƒ|M'b<%NZu>v endstream endobj 548 0 obj << /Length 142 /Filter /FlateDecode >> stream x3631R0P0bcCKSCB.#1s<L=\ %E\N \. ц \.  30oAr 5 T @;af f!`` ȘՓ+ > stream x=J@ )2'p2Dl +BB\K E;qy^a2E33EdȼҥOumYꭥA +]Ȝc2͹~z|#8іF_[]PI%ae,*=c<<6F< ӉY+ _ ^Lubފq,?vMectJAqO8:G}- ȘKH~cD='0t[g7׏iC endstream endobj 550 0 obj << /Length 123 /Filter /FlateDecode >> stream x3631R0P0bc#CCB.#3JrW02 s{*r;8+r(D*ry(070o`G1 d endstream endobj 551 0 obj << /Length 252 /Filter /FlateDecode >> stream xұJ1;|Iej`]),APKAEn"v[ |]\k܄[vGXN n2rב)MZ/W4mɟ˟1cɷ'E37.\P;s0 ]*\T3&03vrHM%.,^{aK u`m)4`BO5䀳"mDV_—B.fY/ë/AG-!A B endstream endobj 552 0 obj << /Length 207 /Filter /FlateDecode >> stream xѡ0[*#pO@@ %0&H@! $h%#L"uDKzz٢"\1CtAݓSi֫u{СuB U|0ۀؖB%/Q@Px_Qv؁ʲ#rO ^7\gpx'A~^ɼP/nC|U endstream endobj 553 0 obj << /Length 249 /Filter /FlateDecode >> stream xڭN@ }K!~5*1#ܣQ3T9l Iɾ5TUEš^+:pP3/F *-=UT>cKxii$@v#W@!'=r48 E\)GC B1:6b:wZK??"Xi=1wfbpY4?]e[t~x# endstream endobj 554 0 obj << /Length 288 /Filter /FlateDecode >> stream xѱN0Ы2DHmNJȀS22`%4*1Cg[!uBbbt:Ftr6IF9s|bli%cLl^_0\tSv PiYY0٣-$Fi nQC$lrڢWF$\Ea}!~"bǠ?qQu{3}>t^ uCaΟ jeG)AmJIeŐ[W.翢j؄7,?ne endstream endobj 555 0 obj << /Length 185 /Filter /FlateDecode >> stream x? P ,dМVt* ίGQzN:xȗ@ iDrj* CDJbCbqNjILjn߮#r)o̙-S/XSeFԕ+^+k۪d%A3vX}X~ö"7iӊ^Ds. endstream endobj 556 0 obj << /Length 281 /Filter /FlateDecode >> stream xu1N0G\o$"-D $(PR[mr⛐#Lvq v '33n"O'5sj<=x/5j֝){S^˵)x|1jSn衦t8z[d yDbDΰt=ZbM΢yqPje^5X*>YY:#BIj!MlG-ƨH]$?r>Pc6A٠~I"vfD7(0l@/]3wׄ endstream endobj 557 0 obj << /Length 319 /Filter /FlateDecode >> stream x}?N0/`Cs' BmHJȀCH@l\+7 9 U6c#%glʮlfeח2foofךѮQSwՔk[roɴ{ q 4M@s`d<܃oh^53¼x@=tqeF3`0b)(jA>(Np5g PK>' o4s?u'4v)Jk(VλEӗM8"<¥1fdc,,@Y" -ji_[iOHw.zHhA~ ?4sxkAܴX endstream endobj 558 0 obj << /Length 257 /Filter /FlateDecode >> stream xՒ@G,M$ DK!he!Vz'ںhy2$7 ,]aӯABR8]8dDVb^Z(AiTŜ|1Ք1E,m@N؜ԝѭ@3zgKd 'nf\ADq.v,L SBӳ(ې!<ڢ҆x?^m 8^..$3Jf6͙[g.w endstream endobj 559 0 obj << /Length 380 /Filter /FlateDecode >> stream xڍN0`K!~HڠNJȀbFM-Gw.*$D駞ϾᄏxqG'zjlW.ܺ'OvƭభKhՙmu[nt"䁔"!5Q&|dю9?51p'Yfr0#0@JS'K (b΀L ɤ 5;LڣY>6M"v(N}N~U UT[TfSUĕAT H#dQ){6R2"@X:!rTA\S^Ej,p dtS'BZI,=Y endstream endobj 560 0 obj << /Length 339 /Filter /FlateDecode >> stream xڍMJ0W(d\@Le@#؅+J]Pt+^7.}R݌ү$!NV=>Ui7+\7n8zkVy}c??_Twţw E`x D6&<{p-x&hY:@B$(i LJv:u'Oc?\pb&$gľHC"9t jyDnt;ƌ5@ nI;O4sPʅe4B(ΗS9^+4IIN%5(5p(a NUE endstream endobj 564 0 obj << /Length1 1493 /Length2 6458 /Length3 0 /Length 7461 /Filter /FlateDecode >> stream xڍvT]6]%(9twJw 030 !ҥt% !{ﳯk9kdm%8 k(yܼ|xLLPo;!!w6;PX+7(<6 n8 $wF@w `œ 4@H{ݎ`@B*aDxzzrݸ;)6N'iЅA gȟҸP=- NP0v wTZ._d?r@Pog wv0;- RRFz!9 /" ~A@wߩJ:]s#.H7n7ӯy~;fE<COݛ:0߿WP2l]x `PWwΝ 6; +',$ ^`{_{@~_}].ۻ2 P[  6P0`  k}wN~@__w ÜM}ogj:g ENzE4uz4-ݓgx{%+| >|nԏMhOIO0m=ɷdh>VYL?"H ~5㮖Kݓ7)}}xZ)aMlnQI<hRnUX.7/ !ߟC)Y`!Brx㲗KUB%-LGS6y}*2مK=<_%{5ӎy&ꀜCHey>vx"Dx6!@;z%h#@خ칯GŸ?f £T i* c @ %#SCqIϐU k-bRJ 0yJςO2e,)]ޯٖUHdS'{LاDF+*6uj>ʨ7֯,,aS?hB;̦(T 5EJFgr/XnAWKlڃ̴qz~JbXƯNtn 9J+a|Q^V817Oè1Tԃ"\y])Ӷ5~)$֝п#y[llWb^\ȝbUWfO>\D m(ꎊ;ݎO!db/kP{(-O?*%ng9 j9-vKB;ݸ1?ӗ{jE^lTy/_mkhk9DٹfKxҧԟ/~gGf 9yEJxe#zAI~V ݥd o=_Bˮ&Bv.:>߱2sv e,2QU&_# Ť ˳K˹ʠE.YtkQ^R9,'giRaݏ8cjqp&fګ0H;aGIqoPIhcğZ:tl^qv7J}c@gԂV2~Z".)Qx vQ#Gw:hS$8"cĒP`U^ePfʕkoӢjܗCVSއмKN m/j]n;TÊ8m*KRvގ`P4cE7E|^ PɼÕȪQ,8:m:nE+(P[=hRJ ÝphԓLɩԾދhJ(W bxճ@"3،[8$wՂKa;[F6l&8w-GBa6c01ᙂr[ǓA.˧ú$n >bPP§0x8DNWLr:BgsTߩ: _aLѳGXJ*v;Jl݃!c~n-։Jqk1$ny^ dMwLT VR EvzЭپ '*w18wb#sP&e8h լL/1754-BKȏ@O.q}=f@!ʢ"* <3 Tqz-9?[c"Ϧ(5mʑ?^]gŒPԺCF^8/p1#_0!F_rOesSY, $//0(I׍hhM&9 ^Zs.:[bGDMcj-ڣBj &Ez+mzΎ!isky xņ,ZoQ?M;?A E9)0E9'p#l[42MVFA5vi +|-'rm4AI^Ƌ*cKx1dDjKy-T{ y&üF'hws8odH1*/9_uCZ2dpEHhtzA' ,T=J'?jU fgLT(4=KU&7Y~Mg%Ehט$L0EӅMכ:zHFnȧu {/ISIփyPNv ]gF>/[- M8 ]2vǜOs㮎F?\8W%4MYûԟ!haɺ8VZ$gX0NB_\gC==|.܎-${Ϯvv)yPVo{S|#V#6|gnڟKmd"CД|NS7[p N&sN&5(gU@Qk< G6tu?n8tF{v[|zPjw\1dh|n閮)KI; luw'߯`!z;td gzI-TÅ,"99}S ]}-U`'K{WoƂXLSBD=;as7Y?-?C]}MIcV-A!?k9` ?71* $!vC>~T$ԿMڈj@^1hk%wcvys].49G!9"jŢ0 d1hsЦ΀BqS>|*< +:2S#Tl4L$Ol#8rՇLJ|x-<"?S;Ws*جgL2?u69KtjtfU2U&X'[J'[*C֋"w ,~J'RȮGb ~c$s8kW-DDc=T׃Ѹ-x_Ĝm͟j9tdgV+ʺVSTzVs>L@t s8^W,Q.8/WT4\IH؍c Lo3}E9^|ry{82̛̣j^;GҠ(1ØA GTs[:uܔ5ƬvtMVJU{DKb n3 J=(^}kAa`nZߤ?MLγжO93^1${w0!;HhKHӃxhvls"!y`e-0f.dsӔ8똲BAyrz|ph22i,MeZ$~3%mR*G\ Z-'xcIŵ2ZaS;/7@u4+QpݬS{̜.}15 ! h%YUo? `2}-Q]~h9C;"`t|ӳγO>Ą#<+h/^'k`kؼ%nL 6_FvR2`VV6 BN rD1yO(pA:=Ox;2d+z#9 =B.bqUO$t9`ڤcnbSnA+/od!\M0^n#4:jDj^f1^]K[ 0uLj~dǰӓS*>8EF><#CC|m]kRS+Pi*kg^bgeƋ nmz# ͙1KO'n HSxH>"m?}IzO uҲhfg +U UwkFs; &rAuK#c'JDjR$:(hISACk]\VA"mqޡuTX IXnjxȑxF&=<53[=$R_.}*,]Zw5lʦզ,.AkYex 3 N$${ͽdY[b%=Ǹl+(YK:QԢOPio< s9 ͣ w{k'DftlT?%r2['ʹusoc.,E,yOг=s|z >Z%PXgOI1ci,А!.VbU9?MY" 5br"ۼ9! Ml W3\"e#): kf>D+jr?d#%g:N`rx aڱ Vbaes()?TJWuaJ_kk}{8xl0@2 i2i7*P1֣a~J%%d .0 ic Һ̸&pmiK4170]#XC5%Il tS}SSvd:uÆ6;̤]|.yhd{#Y3)b&xi%Sv\ qv=ss^FuNJ?/zD. 5d&qjzhpFFV N9P@D^ .@|3)M ~b^$KdfzK'N^B\>g2_es endstream endobj 566 0 obj << /Length1 1679 /Length2 9632 /Length3 0 /Length 10726 /Filter /FlateDecode >> stream xڍT6{%P R\ [qwwZ@iP)|9soe}fg3; 6%$qrqUU99l\Xtt:`=?v,:=  qCm2@ q(8|BB.!.BP8Xt'O  NAA~?  ـ+Z 0_)Dl`0'!vvwww6 b-plZ ( d ]2@ 46,: Cbsp=:Z\ڊ*u'd? ,w'; 88=+=.@{(tp[$5@xp;lP4bޟ d?wOkqw;ZZ.Չ] R7ac3aa{O'Nfx N' / @+ߎFXK `;bnYw{ 9p~d W%-fђf保RR7+7#?w }+V ~=%& p (݈?Bd;U#9W{? ?~/\0BT}П :W5\Ҭj?w'*W iW.P!k1=#yCZQDZH5V{~/eOd[1m( _VxBJo!]v^<Ğe_2cUډɞ15CB7YU5%TKN;0*KT§vJa!ʞsV\ 3Ɖ>6uDY"N_e&` \`2Hi+\ n Rakۋ!S~ι*1 kn'-'zԚ(i/w *UcHoW (*d]p4 [kMZorKbvn,
==4Sj3a.k>l$Y_bJ<#Z܍-LDޝ̹ĭ!`׍o 6 i}j\9kɎd!u+k(rl|~֮b́/Up7(gPe-u7 NdD9鱗u:FڭBTxGчwwc \*\SUXb^(zs(zD%sƄGAyA;a^7 SC;7^_4|z 4d._ CSjѶ("n;C1׻"? Q<:}Xii͉d4auOwl{3H/x*&xSϖm%ͬ4Kkj1 5RK;o, ڡ3dʽ .%vAxwjzV?ni8c26ڎ=xùe7< G8\Gld'jk_ut6^}MH_(P :?xt!(  !T>T*MrEJD)]NP6vA$1Eor^ ?ؕg 2 !vr&S2$CdI*ܔ&oݶWB͂*A<tZroӞ!pM- H7pAb6FH0f^@_ݚu.i' Zai)P W'<zޙ#A:5z*㼞>^k>s0|[)˝=JYni%MΆ)n{'G ]U= -BVvjNuE-Wԯ0,m>g}Yy;V=1JS7 <٧ڰ'_W%"!}x*2_$S5S+P<ȰaH q̩Θ/D~+><e ũa +r}.+R*HbK3Y㣜|PDxb"c{V|$ճ6K6gߴNt`j0&e ++#^/K 8Hz͞oeXv Ӭw:-_$?k&/|=}ﲏ0@[rrrlV9›tL7|F?N6WbEv74hm+w?BK|ɬI@nA1t۠567LAzhE*;m ]IE.XE޹wEup"⹷)̇_))f4?8pieK/sÖ6tvҩB;[mv~*c[埞 ˋeJoc O^I@M_y?ņb_5b^zd K|/?o@3VN&+2GՔL^8NڡJP1b],ĘTM'/~)JqVl+@E8lq1lC1M ;# Uk]d{ˈ$@J%Yb暄`$u HB%lzEs+*;Fi1Ż^u)V`)"}'Ϙ ]8GވlDUkɊK]P6X9h{NcdnR`__ ^P3oLVghi<)9kM.+W=NSYa䒍9@~Z-ɠ.7asZک4*M٣[Wd>BxJ°$D&/[1Tx\X2Vܾւ`A7 |} \$41~}{mg,>Ck?~<~h&_B7h-yKZ9Nj[x) I)2dZZ87>`Qz{o ]88GX!*vtO_}Kr!k)QAs_{$LM|76.ATr}lŖ~)Kwz8#Ue xN[jF P.g,ʍ7:-M⭠uZx(Ȋt}*s-V|RgY5gz٢`E0A^5+4اd^GÎخ[j0_ix25#dqئ0%]JFTTRŃZ2DdIlP:[Qy.zVwG~kgԢ;  {2"uսCM7˳\P"[zPj,&Zg\BߛHKFnW.Č%e;W0p/v38(ŋƝ8.aD<%zoH%(.{LN_|bD˅Ik81݉@csjY R"^Wš~"[paoWd.|:"-8xE۶e=edQYNBCYcIJٟ?*D) Ixͨq;6gSUFt7{cɢXg-(@SyANX1{ȝgeI|3vB#^ur:{34t+^FCZG٨qdS\/-DUgq97>J،g F(hD, n2"IGmq?vģ"4n+^zF" RT7u5#GEB=!zF1NnAZ& g~!,$E~[/<~m'Zk )@UOIω^Ղ|nS̫~HƁ p$|T}O.'Q[ڇ9Gfc<=srոFG#UO\QӨ2]Զ1lCă6dPۢb) ߟy$v;3>&3+V|>~h+R Dω@v4$v917+M3N7KbݼokM K;}' gOqآgn(w߈| Z,R'Ϫ2~9M/3%[G >vsj\MGAg i~\͌)L9@Q'˷Ni&p:dJf*ŭV\v%{Vjj 9piI2kk^ޠ:rd<ٷC_Uia_dZ6Aw`;9jƫa:fF)\_b\2D5l{;ǘUV2ڝ+;]j1dISy%yO9䥍Ә]"VX x oMQ"kFt ٯdḾ;Kx^:@"*H8%ķC5s#_VQ6,a3}60Q! ܲgaeLbO?QP'<ڗ0e"BЉ$k4*7, n¦9=[y+5ڙ(Px)"U4C9g$@ls҉Ҥ(InjHѺ}$Y.c,ŹS1"C3Liw8?hNF>&V7̌׆y{ͱFe0gA$(u>"+=.шo5JD}@t$>ȃ0^/2@܏X\X2o$zN3(oz~#x[45;;뾥?{eB 静ِ@ c$ j路Ie$(Ģc SBByS/R~l@Z'./FSYu5;0ڋErk7]ug]9+ٮ~Wu;)^/}$9~“<0G$$QJQ&& ۸8/0S \(JMd,ef\ͦG%ZyZ-F\{񏋮]:o~~S[nh+bdkt*7kR' 5ۃ AP?:+?&Z-P/zXA:$r{jvaߛ_Ƥ*1YdQ|$cw2MS1_> mJ7֦oK!GS9,^sPZkmZ\߷ٳ KbDD:b94YX6Z׃Q-FFrq=_f~ؾg¢vORPYLޑ'΋$f rlbTܮQF'#nqvإl&sg|{Dl.zU6Ձ::>[+ƾ|}4Xh\ ? | S0^@P2-{Y}ho4;>|+yHqOtǦS$r/ \liLڗgWW7:^(0OpJXCf ju#(a7jBsηn&\ړ'z{@j#,8w/Vhx^[ѹ3{\!J)br*Z!zhRkZ2b=+!ĵ:y-JNTsP/;W.20J 7\1-+'*~WءhlW@N5!uy%XĐsRH }i'X+^(]G',]U1ң26.$ʙ#5%bK7ҦbU\3jOQdQ#Eއƽ~jgZDg@n:V/ۺufq i虝HBe<+jzNK+a*1Qro~܌Y0:2OEhn>i yOÿ{HvcQj]F/y'Fi4qAN\gyQw^ψ/P3Sz']diHx1|;xN훊Հ&{';N(1,-4p~XJBd%d"lOnt4Owȿ]1{cmyGRc^n=p[/MؗӚW8u3uZ {].B?}B!4d%!:/?/;@HJoġMؙgݵ^VF5{k zk|JyX'!)k ʝxOm =/~z: 3@9^cA^lcX5S_ޢO}驗}rpFz-tV)'T*9}V54Ө 䊜7DMR a˷Zf3i"͂C^(ȗa*R_au_\&A33UX) HS4QAwY~Auy_!*VATwTLV_ \5_DSD>Zb:pLZ}f HUո,|{Rg HfX:$dS(!F^m֌Jt[/eJlfPkJoe X$>=)ab iBU͈oYkAe!x-_>a\$1.A^CFP6*ڽ>JtʞX7K'bj}RMc`Tvd¯Jo<6ZRcӃ>شRt&!nތ D 4ͪ5ϲ|Urq"Q0lzt6,}6UTDL:8Byr6S8- endstream endobj 568 0 obj << /Length1 1415 /Length2 6638 /Length3 0 /Length 7611 /Filter /FlateDecode >> stream xڍtT.)"]25tIt 0  1C  Hw7R)"HHI41Ϲw{׬ͷ~~~|@z-].+%TGryr^^~n^^>< Ptu .0\\`$'Fp8@@b>^^.by; PAx@9 :_V$**; uAp:i uD;t%X%lH'1n+7FCtPw #dx@-_a@( 2VPp@ Vr'!aP7 í~T> s[;e`Ԁsܮ0_#*e GO݋f_5>U A@A^a~>*r&qB8QC@`P+ @A|w?-<` P(7Z `‹g(zY!^GYQ_[ր"<>\  /Q/~YE ?pk[5c`+6@X CrS^A^URtspf?`G_nH(j#ZuH0J2p@ܼ0WE'J /9P-+׷_1 +B`Wؐˆ}(!_]\^xգ,A%P+ofx$*`pf cmǩ7T[ɂj_oCP4"lWrV)C>"rf5kQ0_IHW-V)ٵk:Tш ,O(X2Wc_|6Hxà*vQK@"Q7mGT{S(HAF^`1*}C'IJJl&lqi=;Xa/7r;veki->:\T9 [ nR /MCw @$v >_ }@Pm/z.>+Q]6Ky6;Ooȥj)"d?%!!C\2͹"w_4jag4s8Ω:zDpzLA|]Oxw-Y]⾉3VVTU$ur07SdmW\{Eu,e1ޝT! :s~U2M>&|T:|WSHNK'WS7.rgDvECRL4^K4l໎}rr(*_e+H6J[QoUZlnG} VܠAQ +6KCo׫Ǣ}q?qI1n6Fiήx0|.i"BY,"a/oM$WFc \Vvy0-8gheB:2 2 %64߽\h>vA.lR&Mj0 p;B pDb<2̧Zr>- 2ea#gٵG1{pI‰cRee2,:wf2)u)]suCߟdLDe[aSe+Tv!/i;.7 Ue1n"tL1*Eq+Wz`$qF0SURˬ9_dCtJIdLALDcf9SFSu?ثD]Ȅ(B rԯy%vh5uX_> -f[Y~imCK[A% /}9WIeMn Yz+uҮVU,Zs\;di!ExMAj@ k G$gʌ8́l'C2"cNI>Y"wǜg@c9P}Qk8Rx%a6GXF0}}rHf8Y &~5X l1ϓwKkT5w"gY N+ŗ+{v)3]Ǎ d٫y߈sd?;0q\R#Vlby "{Jx t~=TBhLtHT=_&^ JARj3a 'lC)pjHI ˣ=i]Œl];\< qa9Cw >XqCHƬ8Uڐd#EkA0b-gdz²pR zũ仑Ďާ-S.\(mi$?b $hO˘_N~k(y?H҆6'uw0ۄ=[j >bZ,m$0od;bp\cM'6jo6/!O呢U"(&vhSq75*['@2'faQ"m:$Xugs@+]JoϪbK9+BxcCE\f=]cbٌi%s.L ;;|N=RؘI^N,5mٽ]hnY}Ijkg43*D&>=xr]FѼ5M3%Rn:Gr9:PYHq8@e :xL%3W5ݨ=n"^)aڽ(|6Yᴜgp"~1z8m3tguN4,5~7X[Gk[ޓ:v2gn`F@s>8AAP.ϯ_jifoKǗGս^") $u`4ST S>&\*τaO{OڑV *<uZv넕?s}Nǜ$+-=CS?fArP}֦%4ٹ8gR$ɫ uw&=mTd!txBf&р|ຣ~R䖪?H,.).ǁݘri$O\ѻonaٶ QrX{b;<Ľr_\wCRN6m53_±)H[U)NJOň Ua=kxXT+cV-AUn:MEaÜ0|zVMގ\elW\S djzI+ke:)~h"TT9~5Iũ˔eXϞc5ME#2iz&.5E$gaė 5&/"(6lOg^k[׋3Ȳwȴĸ<`IJ釃Ai9h gd e_=[h5}̕zekVM'f3,+ۮ3ÜՌ~g}tR>9(bu _/RnΙ3EySmk„Gȸ+Mwq}}ca MfОdj>ChSDAW;8{<A|t Y;4"_ b6y}]W""fw~[SnNx>z*rtӇXea*l}[q8tw1cQ ؛㏇; K< 3^ÿjS}cQr}c!l$CLk&כS-*N&c?s,skGY{!w-]xCsH8bQO-l E}xz+Nv &sfFr֞~/-pқcm$No Z]Ux|z2l~ImY.S C~e7x&/ޙ&{ncЗ578 %uV'ƾi_Oj ĹyTyS[z!7hL숆H"w׬zcCF7ƦH5Mbƀ^}0E=D,!2HMy~;A:]t#B秏yy vB[sťk#SI B1~V̰S* ;P${}?p a}y|Uw(|wpݍB}\(s*:DsQ*j{=ē>t=vhE%|}ޞ nx DF)%͆Yl,*%}0DRpt("w3KB'Ms`V>[aĊ޲‰dPmƓßZNe\JсGm7$"AiGOʇfAxa닏6˃tco5A/r~K/xSC\Wc^acϯ']?%N) ~@tHHi-hb%9UCsKlzNJ{q 1h-^H- 9ZՓ,99c:3)Kzh#BH_}ng'>l1 }v|0mz(`%04SfGû_/jq84==[fD2Wq2>lf}uP-"빴sW 7O'3H;ި2OSܨ\C9$*(=徶6w`.FNm2%ChG$8dvF'+Nw z;&uc4SPUno ij)3O )Vg{ ;~ u]b;!{d$u^;~Sv?De|l h+LӋ\NCP+Tgvi".⼕Jڱ jRE6Y>x^[iBؠeW=7`)XDM9lKw]BZt:tɆXx!Y%b_r$5FSA|\lUd,V$yUtRdO> Ӂ(jrK{3|1:W%7̗@m.7 *#Uq[>E;*flgZ}>ՠ?ڳojΐ"zV^C@H{Mnat\_4nAƄ~ _xTVNo='gSaoH˴ͯ^arDؘ1*~1|0dVX&4atMbHql>fr߬4\}.m0쟵.JwɎYcܩ-&]u:}b̄DMn=U 1.0Sb(g|[уiӞclFJ˅X*Id߻[4 '~XgX>gXr&#/@j@5(nbQn8a QoHf|rR=H94. Hw}F8l+?ɷ')\ &T%̖ȥn Oi&UU}_xG>yf Q24._)6hC C Fv *)QעNjG_|N>sW){ٖi=2+Kj}f^Z5#݆SCci)Ԥ.Wdse۽mHņ=ڰe{{¦yky GW r?ճj?EJ<{@&z$Šb휦 U.҅0+Q|hiP8ӸZD_VA~jV4F}Qݲi1Nl“[qb~-Fb'>0[%8:܀A36OJl@h? ?.mRb1YBU~yRײ36}_2ՠV'_>S_ :\?=O`RC"&e՚73 !Oj뱾-=ޤ䜜2I|9+W]t(;!ϼPYRLDhHh2 bZԧdӘqz "}wJKY B4[&R^)%e6۽ endstream endobj 570 0 obj << /Length1 1697 /Length2 11020 /Length3 0 /Length 12133 /Filter /FlateDecode >> stream xڍP[- 2]t ,h NN\|UUսwUSkhKZ;[Ba .a ױBz7w{g `gLSu<@/ rsq M(raw1 db J:A0*| vxW Wv.œ`'wg7[1f6P qXhvcgl v j+] *؀ '$ rvr|a@{(.ì `/=lLr0PNR~nܭ]<9G[YK;;9A`?ꓱwX=_/_u9{6la64a© w(Myb  Xq^A H zyBZ[y-!0ٟa_}\Y^0?˩*c'W}\@vn>.  <w eG"(W?{-߹ԜU 2+r.>._g?D Bt3NP߿ Ϣx^U5o>䯥UX{:oy$a]baaeZu2= ndzd=,?]#eaV7?<w󧈁0gs{@g79e PS/ $Kiz$'yxa 9rs9Vnx^NLp?~A!6ѿ\ ?91aKv5>vAא<ݞs'?",:[D8GJfy\v%>؍%Kbsjtkf{d68QCO}:z*z bix|XܭWƸdOЍ7 -/̙!A`@c;u5J)xSovo{') /  %9yϯJ0.psgk{FӁ/Sʛ h k=x!_lVگlޒ/ M~zNctnp]gzz3<_*'Nn b3]^΢x\1ЩQ$a[JGG)uG,2D!?&L44)_۳bR;Y(,ٮ" γ*"r_*Mt%=;sՃ&aBE'zUmI|EGqߤ#{7*+nϪclD鮞)/zkݒXGʋک9[_Gnký7[ =cɂjy ׿C;o^d㬼]B5lH&R[禐ognrtzxbZeRD&3PmXe}mYlX$˚}AE";R3f<ͦ:lHQ%VԯzY)jiO&#}|?=oG@6P},} lZ.@8=VI03uMA>n֫Fo?5xd #؅pq%k8z륕<*zPz=㝇3 3/S/8ˇlij<:k{1a*U鴡v>{ul5?b 6K|BB |$8˅+^ ŅElL-nʞu5(xTOL^P>YQқzQg_+֞~'ߵ#Zf(g?ɕ)A"1ei]Na[e5Dl^f**eKzw,wQ{ RR9m~@;5d )$T8w_UWHJ]@E;1h[ ar()4hqp"Spzu,%U1g='w`n?Tיu\=r$A9pr?Қx|)i3UUV>>} FAǃVVt+UC-ٓjt% Vthpw M } 173Ћ%̯x <.ۥ޵zL`]C4g%ly4^~yF JDUK(*M}==ј),Ljuu{vAY𣞨HH5SrBE܉SZ .^]9QəW}enRBa-UҠ^ k 2AqG8Z)өP;&x"%֏çTܯǾPՇ_AU|"EAz`/=f\FGnx0]EROМБQP4aT%yYC|Kݛ JcPXڍPRE;'Il-e&qh{_K0)?C̝o5}#iC~YJyap=ji i,**Ɨe9# W-NeCUlj|CQX+P,jG6ñ`HSbFX閁c~y[F~!̮ ˈ{+lJdfdKKԟ(`AY;~\,zmZInCj$GUO1wF56s&j20KxIAOpY&.!V%MW7i:rqDr_%o{z@UA@Q^ɒPq?6k'y'2=S8e9HF trQS0,ͯc2֍>Oz&~,C!NPgWD6)#U߷*i9%*0h2Dt jŵ1֌R0d v{U5 gE(M' "%BRV&7b9=̓2 х8[na>]nٚo" 5מCm&, $2^=! A`p9ra&[zu<}*Ij_-SVE>gaUg_opedآ/cQu@2}jln1mL0wVr68)Nd?~<8ySū>t@Z(m'ʗ*B䁢xDjI{džvL`ب>|*y"\s)8aɂ'EQmʨ^i/5=tV"[Tto:owh|rsJw󮽰y%jszޗGq"1?{s#Lu;(1Hև|Ct6[xDI ۝Rnاx")$Bm?8hqfzb pciYS05+ѬFޓ\> q7g4z`u c[F,uצVȎ⮬TTbl_%JaҶddؚ!ǐӣI ~/}=o/@:_[xH  }<"]oxo3w7X㚱X/#Ed]G`ʗ/ vUxC{bw}wOQ3w`oqXjF~qCxqb-{T.* ߊ~#*[--2 OVWz ܿfI!}(Sd]jLP7qav&ɳA."UJKq;voWOܦIe G ߛu@_.II;b/T%"UI DixPuQH2Ŧ<{qoVG88~lPwа(-i `u.R֠#:,aR0L.H+`܍ oOWZW6!k%jOc'{Yp{n刭UfX ??q6 ^a5!S!>+o_u^B́Ŷj{\SdXOFi&mkvD[7~o1lHi L+_Mю%7c]ߙ=\M"R!bdwʘa*xN?i=cf)CJ{DxC)Sl@$Mo5Ǵ3Ji^Wi4 ^C#}yIf8Uļ)A Wݫmv(6d8? 0i#OSF¼0bZd ǥ/k1 1!~Wg<&yG >Db ,pD܀8FƁy lY~E ̈+{A=b3XMh Nytzne ,GX+bM-ɾf>ŏ&t^v-\Lc:QY"(/ES9[q4:s ,UiƏ-qj/9M=%M5dO 4=ٟluW,PY(o cS"Ԩݪz J^D1V~i`w CϱGbyXFCIVKw4F%+{z?OȞrϏ+htPnuX&~NV%pj2> =!pG J!˜rzpʯb'igDdJ[X_wxf1[ b^\ ť^(v"^$(7N H:Eb$Efܭ2/z~)Fخ6 P|k.['QM~DH@pklK̐8VI#r?"7p0?Oؖ!~eXϥi Cr۽ ]L7GHwne>6i&6KHWy`^m%7mSS>R9^fXUPOjcU,+]`up*܋js-hkQ aO去 w-%8)kF3)k g?%D)&T:9&L% ;V~;j=(Yt]rCH a{͈ƚ_`x㻵R}RAR)JqPhE6Ϣ1ܥhB))O V>Nmac}g 3k|7c0wWud!3cPsܵ,63+}EcS #WO&^CH˯=kS)R~{lgU/D>@d Ȅor`EэC5MUƠQjù6bڸI'cY b~nIdzPf9Ջ}PC:j=D~]gvlB-G__ dd.'e kqXڞDӉ(YF>mc|yл,[E xFvʡ\n29Y]re|uӀ}r,I["|G)[zTn'4a_)ZDվdH)Mo͜ݫQُ6֜63#C"]7(D0hr; O=1/l>1x>|<)qHss4cPǙxR7`s8?%w(Cc4%Z%/;M IxswEb}܎QP{a":$i?S? GQ慟 7̪]Ej\YFJQfZ}YdU.mEŸapkL kuWc%{/aDYl |/X#7"nmMSZƂz".v _ƸYd.FX < W?{6?‘w#Hմk8ݥ^+N'v1Wli>^%Ͻ=i:Ci%} |DJ0H!=qGcAe#X_,-R0r㸑N{EkzCDCmg2Uw6CK$FE_Z%t_"zག&^}eul=F9$߼]!u.Y& >sX2@?q }b"gu- Z<.|tJpǡq`%'r IGp?MKVʩKͩrp.FvAF*l`[ʞ+c#{e*{u %Bm闡,+Ƅw^ҺOPsҫt_+Ʈ^*c]8ڌR]7}{ J ?Q\Ob=Q$6󱆁O|S:@$3/{yø |HX؛PoU/^@k<^V8nm4!wÁnį!KYHMxo:Fo~.31?8ޱ$_\/Ӧ*qch0Ն/)?5X$j$Io0!/h㿵:bU7{ӥ.ef2A1.b{:NEe2bD”d͠yak ޔ"Gg!k3D߱Kgí5lPwDy?63<#T!h&Rټ{}-ayJ?'Kd5}l٤p(-#eP[͒2x8/"L?,O VۣH`fZ=hОʉ|/8&5ޫ$f^v ݢ\_i*|Sasdnp;$D#`7ߤҜCzw-^ԡ_²ig)Boa:dHHwVYihϘO6[6X-dA9XH/߈o(nNsXZ±:"Pۨ:$Qϴ3]'J1U[.N%9સjFh͟A}UgA#rpᠳ^񋫘۞ވb')$'9*:L+ ai΁㍃i`1|{:E}w+F2Bky`9] Ϋbql^fupr}6 c9m(&F$w5g{Ȗ .zobQ'兩pFՂF 毷d4d Qa'p碯)ӅrǏ_2vBe.avVQ}0iSqˢ 3Q }FS >!w+x/fX~ug=0SZ$?Эa(NؐWX/M0KU"eXrFg-z&JlɑǿB8UoKmeGնj&KOܽo&E4 5qe!nˆT,a#:$6O fsXԠx#ҙ_y 䘄@;bM<Ҁy7AGʻ7y(ޅ&ȩIJe"ymP"Խ \G}ÓēK暭i#_w6ڷԪktj# 'A~.}n.]KפX 2%Sj\Ǭm}{Eop? kS.0=2du;u6BCq J^ ĊSpxa~h&+)J& *![Hz֍|fiz;,6#`tv$&MWJC Γ_x>V!/T0:*&ix_%1Er ]|0%_LO$44#U(qYboHZxlcq* l\#ø=YH]uo*$NqQn!4}K,\-[;'S{oq#L\7>*zw\:B6j5Ymh+=7e=h8"mj,4xZ4\~~//Imc`z.SZNx,%d =3 `Y4R2\*!._,5;{S\,]|2ChDOkSǤTj\3d.K/MKՈ˼ϱ4&!f㢽0_?cЀ~`󗞂^s֌PR -npk QV%* Ēp5mc GR4(D!jXG:S9$&Τk࿴PNEFuNTS>kRd|IzHtN$s endstream endobj 572 0 obj << /Length1 1460 /Length2 6785 /Length3 0 /Length 7775 /Filter /FlateDecode >> stream xڍvTj.%1tt H*)5  1C7tJ "JH7JJ?wZYkώwdz5wt PpeK"*h`aA0XarApO ) pSzʹPH " JB$`,C$Pꃰj QH'CppB#HHvʹ=0(roA]($A ___A Ar=>p;rPW@CGe р Gzvp n&P cǀWkA PnP?G:ʚ^~^@(!@.P[ġ@e9= ]_y<n^_~A7Y iru#<SDxa~E9#vJv!p5ſ,b` 9~7wVB~Pn@{t `=^@v@d=~`4 @'K4PHdjoU(?`P@H @bCBeW iJIݥ$Z ciЌ!X CAi_Q|]\~k-Wo/4P @ ϺjޮUw@w?. *p_ @uQ_ PU0go4R C.!Q @-!5f0$Dy](yB 7h7""٣=JAYrs :[/q (W0oȿ 8L`;{|Z%+6,5αf#8}N&'lX.ˊ,UvC ^dc^EХuZ`zȋmf&C+ G m$*~=sSkzoD5/? Y)7Y޶-2zǷ`j+jx'p.@Q{xS H?ze'C&AޑI< Z Oiw~%3&WռTf6< WM `o9   K)]:Unc=0(xsQ[zM~D9ýC@ -g$bQ_j]r{c R_Uv7pf0N?|T,NBvZ޳U>ʩd9 &Š_e.;ǔKW)uVO0c(<xf`Y#&-OjMHUQNGIkwj2 XcJhiu0>z?v\Zy#Kdֳh.B%p$ݕ}u3CuZFh@/W#-=3)B>M:M'"u0\o.[Fv[9X/ZaՌe m rgND E<'. s0S!CM1o|G }V&b7ܵڜU7=z(hzqTlܡ$jyqrdVw:AŲʰB=epB\a7E$:lͯx \q{qonGh^B4R.c*mDL4xr5J˦^mqB =gQ-^۞B*%͇gǨ`N<ՓɼgǚXqsee2eoDzsv,sP֚,zo|j7OmQc 4h5`C̽=3e=#u޴$WO)7^ZkflJ߮}eBIeGo߸ʔw=~Y5fA.6iee:c? (yF@4mQzDvj`Ƣo$0꬇NPdȩIpRg \Vx<.zN3lf`vԠ-Å)F\zQFe=lׁh!3E$m Zi GL|s? 94|6%%ݚ71E c#+O*I0|ɭ}*~wOy\W̒zʊwhL#GAjGCE~ :~e'D-=FG`2U탳j/foF_u| 4,owK{L{ x$-+w#?5`k“(Fr;T@(=7R"xoQA'X춳:b6exPaFxi(.FFiLߤ/ItL yt/ 3GCGҮ%iC7n&cA `Qxҧ4^x`#]k6bd6=D찔}N 4H `N8۬:Y|gu4w~wFNET^DqCY}ym]3A2#ׂ١Zұg[GXcZp֍v{/~hl?WN+ۂ3C"넃^KC;.F0/.Pπ'!0[#ˋ>JDn )1o DMԗ^<ޗQ;&3EC%47 n@um,sOJw +yIU?]»P3=!ZVy$ボ!仲r+?f"(ޡ<)MI܋j}z[ًIJf!$j*>9Ul/]:h\G$>wKfh|ѕ,YWi;3 UF Yu*Y!vl 0s"(V.KLU ӛ/p|=<\:GR!M*^!y/)Ll%89t\ɨ$aާR\6@C:̮DI4FNJXMEA 'wå'\K'  9`}#P+$ eaSߠKpn4e|Zh`7դ֩NKe#f`^ղ@8"UY.io$Rfh-`Ƭ+e}TC+X lcg- c=R#gA^Qe\%/UM@<(-vǏ}J9?M,N>PiWwYkݖah/ QT c/mXvqHjJ㽻*dZaZd(v]cǫN)eק\Ġ/Q܌{Q[Y+r}mf ZMJX $^=ɳkSntVX-b@E9*]o*BY0| r{G6d-Z8?Ew(Ma?yzߙk ЯND$A׷hGs>? W*:rvZtf}Y1H(.ՊmlRQlfse!Aڊn3 E9_.{ZPySɪAFb } &A3So. s3Ȳkso{~4H isp'r7(PjlSAFA'XQ&ڿ*xL4h۪*"GyN1p06G9xDM9Qۙš, b9{3ql4߲XͦڃCWވSxŽAVЪlEK3 ^q`@m FxQ"lnΣqyC8esf|nwnfOD_:qjy 4uSt9دmZBKv a'pV>zzӽkޣnVݭYl޾ؒr .w{D;90_)4J^;с@Ǝ64G]8.#~2ZkgX76l$ kmIK=yYFQo5JmB߾w <] rYLH]t}t0nE4S3& aHM@+B'v֕ZͰӜ~~27{FoٜBHe@fܒؖS "_:좧0"O̱㋱Z}٨0Ng&nh۩L܎::|d63yBB_l)'B^Mh6!6/G*$qqn8Lp3"f P, "sݠ8fiSQ$kZ`UȭF7O䌹Jk87OݏqbgݺhNն~Bu'\IsGzI]g=^`>-p1)b04ݿPχ>a F8\W=]Xl||a1&-ZDynI ^;`k 9t3>qЙ[EP&TfnĘOUoUvnYqR|ӪhĹ{jIUqܣoվ Z?}{gZ/U}im0*vxf ƏKfyZ.Yo>]"yo]yl(XWzf~) x@:0CmRǎlIGE,Vb[RMv5:--8<8H6ſ5o?&IZj.".Ͱ|K]^SkCbSáMsDwvOd? W> stream xڍxT[5"- DzI I@H" WM Hw H& Ҥ " |{Z߷V={̜s.v#S!e D`DrU}SkQ ň`8/ꉆ!rP0XL  *b@_D@ :HM̥Dy\\1}z҂PO0P``àDD|||Aham>A 0PgOi\3WyBXCh`wj QPoo DEg 3 Fz@? Cz_ $h$ ANX¯A ec[`O F?k{*󄂱'"௕3 qY %bj`!0( @`W`l A($ -sb? o( OÿWĢ 8A]`ca50_-+?Q'; Hij* )o  $& DEEҒ1g$@ws+e?3 |2@b #;@I &/F_ix켿 a`N>; ZB>o6e VB@8 B`o!Ѱ7 /v[/;CWFB~ #b%f05?+& PH_]/l_8Dn_(P n#B1ȿ! !п% N/Ua+k뚀B}`Y$X>YDY2(JWlu${Qa]GFQLgcw^.ej`pT pB.b(?;Y^DJo>P i# Pg2avq[s`P$RyfyiǽKQ{G8y圙&N5kHi 2j o^=RkQȐ [8f1nq׫N"bD]6e<:dXnŖTR`{w %~3ǭYȡ.hiO}% ~467ҮwE3FZt|~4n[mE˰Pi7[+<*֒O`W2}]ŕ4l7¢(:hM\эp7TQ4kH- |gTDu6?4]<7Oϛ淦 87(eIV"ɫ|9f}! #ܕNSB /{Xbel)"obѓ줺 j;QࠀɁ!L90++1bhqaL@%AE'W.|N܊A1mFśnPE ޡJ!riPF`^6`gn:"S|IMV<;e"mVJQmhn ư'7!w`aW._SU+,ć}.sT*ahCsekD[%ލn&&b8"LωA LoHjBx7_`nl?^R{AUwG!zB w&񺉓 iP19D] >5ouxdߩe=[[*A&{of(?zDďo=‘/?VH0o<({Hƛ־tFpg xs"ONXhw1xZМ#ՆmoMM ҏvt7ky[-f>/iWåt,o/y8)|੔vfE}by[ߴ?kvu@B P}hczr<]MSraEy=E'U7,=_i H*u.qMz%'MTH dPk릢?ڔ. t3Im`n+aOr_m0Q] kKϊZd{ ?9>}Vc{BV&|M`LIvg^\'c<&#!㰓քu2T裨Y|th<;ۜ?4O?FL_u{-d-tod P&_]*_Ԟ,Lx6.XnE㗗g71R;9J+7ØQOY ѩ~VIxSO>`.2+)=WUs{\UDĄUj>eYaۜ 4򏘦y:oUX#u=Ɵov%\TFKR'OiBqr Y6飕ܗۃ9rKz,θ 4ܠT7yv`57ʩ.;V=M< 6GY]C쟌_1HN^[&tm+n[z mXK灹87 JZD:O5 : T4 4%B~.cM ZH'fpA) PtT 2C)<3EF9P(c+%qed&3 y]@D#jV3C/vViUX-qȪ&)߷STm= Z@.)~Z2]/P%{k=ryJg#lϗ&% X'E9ӿV}$8k_ uqgqmʻގI:%wjr^0E ]\NvKc4;\[@3;6JaMX6^9N^nm߶b<4%䘲P:{(ڝn&-</RP:NIygp'\ACI_ \E]4ypiчKD#cXAv w9}"` X |y(X.IƽZ˝Jt0ٓ[x<>oeoʢpˌ;|Y)5lr56ns7*đmB+NRtNּ9dw !WpBbzH|V[CH:iv!SiKz.0dS sXl2bN99$vkh-5J#G<@kȎwZ)A]inXY-:ɻV&Ø5Oȍ^m=vTI}-f򍋡.scsg 7߇)@|v╌d;338\AZ̽%+YW'|'?r(fx[sK7Gn>U]7iҳAyТ;kό =|RQh~A3#vݱ().4"7abkwq'}Ak-w|e_qf\G+Z,NiZ->&֓9 dď85_gj-Z0* &0ZPhP&8Y8)ԝ7rg`ۂ=Jt`F4|mڭ+oeuY+8L SBj \:BzH? i8^>] ӟ^WKJ?*g қ-9"ժkeVIF+f1hڏx'vOS&~\*<.3DsO&-I=i'Iٳt_qqt|^(nxQ4C{/"h2Uًc^iFfw{:"Rµۛou# U K{HJW>R`vG%),VG*)K<`7G<K#4+WtY5'裐|ř ;6;^;y;5˼nte"\1~cW)1d\3BrOf_yAlwgyIu'Qk61.[=Jyf ׀nnk^jQyidAG!ddϖo:1zջI$KcVF'.״56{0c271UےUҷC-K*:qGjxŸ2/{6g(-)oddb9ʀ KeCe=ZD3\L>HSafoE`y>fV3z(s3"]=|‘%M%aX~ⱼqaEn~^vG sOex^] N Cb.mRLi7AxVC} a嘀m̠fY_ӱ8&겭Э27~,q-ʹ^kn5M=y?7375f{YOaP8n U~qo9/q ÍgfN/ 5y|פRt2vuQs. /u՞\YܻaT sob »N7OrpCEg$@L?:G*$+\}~*.)MrUsN[벴f]}1,w'iV"Pr?$Ř~b A --<k"RJ -ԢlynԵ}zcNUHf`'fX Y%LFa\)BlRAIwC(T3kL&_6)*N1XV\yYy yg[uT[z{ǡg˛x33J""R;eC^Gwʺco.~xdw_BI85^Y$gTWln.u[W+^y(| DBojDzSRX)_(v-v?M̵8tnjd:kUuI>eyzK2XCQYhU7ޠM\pgj5<'pwSs\%(mpQzɳӁ8WSuz\ o8Jl iU;^cMZ>F endstream endobj 576 0 obj << /Length1 1375 /Length2 6029 /Length3 0 /Length 6976 /Filter /FlateDecode >> stream xڍtT.(0t+ -8  1H (H#!!)Hݍ ?9kfw羯;zXtyd,PEȩx`({_3> C@ 6y0 SG.$, @0K:/@:!=0k̿^NHLLp u0ꀮt6(8 vpE 9`(tZ~ ;@LKг9"Pn`$6 P3:n E*jMG(X!n ^п @` n Cj(wCn wF`= 9( ;3 sD9:e G9OBkY;8 `[ZsrMDYCQ!>1aaAQ upv~x9"V!>0+( .PX ('Ovj猾|$`‡ghzY"_S&OV xĄ@?!"g-0o|U[!bE_%_qpKf- A7+ݐo7o;=ФuA@PѪC-a.UAB[c9+ܡZ0e؟= B8~}[Q||C b~8yEu/ H$؃M'~!!-HKo&p @B ~]5C!Gv VoK[P;B45HV70 -,55 BOQOQu}nYrБ o!wOiʙ( Cދo̖za7/Vⴙn?71y`gHFzU%-Ѽiº32%@$<ŠŜ6F]x$uu8~L$S%?:.M]V\aB=\Pylq##kL Ѷ_Լ:\82#-F^& #+ly57P^[LpGvk˜7t:Ty)9ֱA 6vZ%4*ͷuS9wO(l`LȺ_3=P0YR7TV?o.P.YL;f,[(|&oK=7C Vo %R*]56~|@N-g|]ߓh։ª_{﯀YIK[-FG7w;fW_4Kڐo8F/!?p:s}"燆K W4}Gr\ds~?' `X l$Jv0u//U7_yP<vEg ? H({mᾦ-\|zX_ rk6ϡ &X{^ 6=Son 5+P=oN(" m e-t1eJ>:/N!~+?L$z7 -'ć8q0vXr?szE DŽEpWM*!,"Ď5+@-=S KXOe!缌Π:b$Z *Q#28 a^GV+SڪK*mgL+(|y17GCY✉#fpbLL#fNf#:b`῞,M^WL鮫~oɐ};|:Kzh>dimX"{Ct,^tC.q@' eHCSM۩[ hb-nV+ ?^8)pR=ȐPa 6Xd]z:7?% ,Ԣn`Iv?y7\6p4ȔhgUș2f}4F-871TZ7>Xkp7NB)`)NV& E 3#boe925O-i]R4DBp}ٺ_z ^K,sbn|yC5MgS 1(CF+ou}7s,1$AJ4sr2觺N*CB 8uJn#;.x\7Un%R2FNWSdձ\ZgۄkzaXzo-L?Ji4$-eǐt~w|\b)6ǠEO&"B:e0Hii|L^ˉ_A=''YHpŊK]Sd>11O|Zr{|Zح=w'a.s-3OU[{:9^HeGS{x$ngD}Ӄ <륾B.'dPYt~ 7#]ib&gIzmonWsZ:z(" p%eOw&U4} *WߙAc*^FJSl>%ga?٤ߩy&p-{u=vLdP@MzU7pG/<񫣖pAY=E^=yߩ 2 e71d5ǭ=.Ezm۞;5W{q[0I;LF{{&1}3å/$i\;qt^daUk. 6Y%`!MuA;C#eE9g%4Ncx8x6V(ϸv1Dd/ T)4>ObUyLXGk}XСARrin\.iXbdS͚qQcPJ}۔1pٚ[2ާъwr]j6]˭ɹq_XD#}S~:9u6*߂,;v$d[7Ʀ-jyqS3(BRa5*D56Ny̯Y$@xLiu'ސӅxq 91UaQZ3#1-$1}9<-8F7N"&~}}3Vg]L]bkd<|8[bj|fƷWd*#)BYPb?mS^ )x)Ho1m& йͲSS, ׮#wzvf6y츕5p n"5ĕij9>QAfUޯ#|⑵fQY"HZDFCw&.b 8 35+7mٍzn:@X,oU"2^i9e>i-O ǟnHk%ts5 {t_9ʹDO*`U3\l6z!z7g6'-4L? Zod.idIpIJ\ǤnǜYr=eNkO^ #2=R)8>2 xP\eyMAvt`Q]Vݍ%9lD;/`,ZAoȷp'(]uZ#|.8(P%7gtUe%_ljhCfKOUo}Z{bvČnuT,jh_bW(*57%^'Dp=ёfm[wJdcX YF^4yF6C=8eǰUvtdLy¨Po.X3թ3Jg69^ I>䛕?`W~_%E>Oؿnp^pi{/*@]+Щ'LV{-~DM=K&wQS;y{&u`科-jkFLfYOb4._D ER 3 [a  6'\mlכV˝SО@46??~^Žs1`'$oMb=zh/FwlVdđ̊l}ۈ׺=ʡ#Й`eȮo<:CqQ3~a4Cj+hVQt2jMJ+$0Hr`pkP {2D)HOR7UZ}F|&M 7۝E^=zkBYڈ9GZ3ԌELfiJ7* TVN '#8Q^\;.wQDڊw=3E(m;XSNO̗[/$yKf%yv: rDBΩϨ-")EN~Db$-mΥf^pĭ{;sBrgc5˱ڒ[<;>pt+a,g3V/EJKHnNdWhJП9bhjk|8@>|:ypMlud,Ǫġc`]|~͵X%nX6ҿ-QIR2)թjtgJ:֏{bL*q+LE3XIc{j Vօf˳?]9?>+QW4v fۘ?ISGGWdGn&EmCHY5__r?"2 endstream endobj 580 0 obj << /Producer (pdfTeX-1.40.20) /Creator (TeX) /CreationDate (D:20231114234112-06'00') /ModDate (D:20231114234112-06'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) kpathsea version 6.3.1) >> endobj 306 0 obj << /Type /ObjStm /N 41 /First 362 /Length 3749 /Filter /FlateDecode >> stream xڽr7ܭ-hRx7uvNReZfE$7f)іd&9`8G*䵢d*C)kUQ^͸@N P*(;:)-4娼 zT4%ȩÅW1N%dj  sR)^eQ'Nk{pE<<׉g٩A90OcGdJ"\pP1[̅G2dT5[]5Jk}>>:r18 &&"vN` Aj¢ rblG8'`ǻk")噌D-ACM9j6l= ҵkHV{^Yhݮ- u9~j1 6gm0a6Ԫ|-;urϸ̃( StنStZ )#)XVRh^$Ipt%1H c$)^Ul`$m1-֓z`S$mYShK%I[ ڒ-X^DS @0k㲣r'ծ$9N/'nMp]J=|F?tzn=[nWV}ڬO/w(7~?{8[>T/Z5>YmGoEdbN'׻ۢK^_.Ί.o=Pd֫ǝe0CO_ÿr<_v˹͛fy 'rŁPŖi`V}{xvVtromVki">KA. Cp.+<lH,Pe]9Z)a ۳ecJx L˱,98>Alf):k9K8>՛EHtQ"ENktE|- [iѢE4V,X`zE DbۤB(ԽW&ݦ L`sfRPZ2@n@4P ( Rq&qj $. @ $ @ĝ1(7cPgUI5P c((Z% 5;$FDjxаv!څ.$<'W['A<pAhh`ĐĐ7ĐĐbȻbbȇbbȧbb(b(b(b(P1\1|1B1$C!uC!wC ,χԂJvC:bp8HbL؃+0 ĸ:T b\dWW^ ',x`(? |d,OTqrSl\O\g֭E /lil@O VTТ0XS2Td.ϣ~wJ(T}K~Z( PڢWfOܷ) <;]ߗN-ЧRଝS-n\˅-8]8/oj(ԣfHJx7@á[b>>)\DٗoE'prCGD$ 65aX봄$X|%+X/G]VӮEbH%XA\h+%d-9$3SɗJb'Tr fC0ܭS9q'l>ݘʉ,1N\l8|Tr X8,9C,9O8F'Y~L%'0R#''DrtB4'h"VG[N07^N0G rXO%^N)p28Ol4wIȠnE5uuw(t(v\mbĜ39g;s:su @̹Ёs1sZbR]CK;t ZZԁkhu3Z!FdNe< ^}2+_us_r+|XWW~csHPa?`g[/K1UJ  -C!Pv(ԐlHp0h[lODZlo<v'gK||b~‘Uo|fjuV.|sN{gݻnx^/~ԇ'+scg=ǘ<ؘgdGې1 Q1|q|:_kp\xr[nƟwWxq5^m۷wϞ|PěGaH@Ջt}yvlb!brho/1,SOjq=-N7q=/UYݲ/ϯfܽ,5f7BQe^3gG4O8x|xBz{.=ɗO=}QA>>[_-nV#]\^nֿM}^l6_Y~`5\nwj; ѷvG hL]]Y]vZíH=\l|A6A$m84:H|ͺ7fF;?5}}:M]?gLǸǡuޞ4~m.뮽00[l 1?_OS4AMt&v'TSVMPMGFo3;Ϳs`-IeSDŹA T eh endstream endobj 581 0 obj << /Type /XRef /Index [0 582] /Size 582 /W [1 3 1] /Root 579 0 R /Info 580 0 R /ID [ ] /Length 1729 /Filter /FlateDecode >> stream xy}?f1!}3ƚed7c#"kѕsDQRMٷnetݛҢ}y>{;|>s E A$pu" ?d /! Eѳ]yQNܧ0^G1.HɿHt[@wA&%.Ŀ+$ ""Vu+7Qw~.Ռ"A%]dUE("&/*U]dW#Yr][VODy"}\d#ߵ.3rEwEeɫwUD*%nCj.B߬'w|QKu!m f#Ѕ{f؅q$4DS&!颙 s}paSԎ53Je\|"L.zk:fZ,iE0[|is4x>P1"lsmVyXBfRN ,2W+U*[}^7(j+lxKlTs훔59Eتvw+sC]zM- B=ث-kyj~ĵhSAeġa;l? 皰\ }|r1g\8-d(vm_ꧾR*_Rv~Moe}]į(qdtkwo,׎%NċgwJhLTE3O.ڿ* $=JdTF.-wO_y^T endstream endobj startxref 390391 %%EOF mcmc/inst/doc/morph.Rnw0000644000176200001440000006124413636316205014544 0ustar liggesusers\documentclass{article} \usepackage{natbib} \usepackage{graphics} \usepackage{amsmath,amssymb} \usepackage{indentfirst} \usepackage[utf8]{inputenc} \usepackage[tableposition=top]{caption} \usepackage{url} \DeclareMathOperator{\var}{var} \DeclareMathOperator{\cov}{cov} \DeclareMathOperator{\E}{E} \newcommand{\inner}[1]{\langle #1 \rangle} % \VignetteIndexEntry{MCMC Morph Example} \begin{document} <>= options(keep.source = TRUE, width = 60) foo <- packageDescription("mcmc") @ \title{Morphometric MCMC (mcmc Package Ver.~\Sexpr{foo$Version})} % $ (Just to make emacs syntax highlighting work properly) \author{Leif T. Johnson \and Charles J. Geyer} \maketitle \section{Overview} This is an example how to use morphometric Markov chains as implemented in the \verb@mcmc@ package in R. Let $X$ be an $\mathbb{R}^k$ valued random variable with probability density function, $f_X$. Let $g$ be a diffeomorphism, and $Y=g(X)$. Then the probability density function of $Y$, $f_Y$ is given by \begin{equation}\label{eq:def-fy} f_Y(y) = f_X\bigl(g^{-1}(y)\bigr) \det\bigl( \nabla g^{-1}(y) \bigr). \end{equation} Since $g$ is a diffeomorphism, we can draw inference about $X$ from information about $Y$ (and vice versa). It is not unusual for $f_X$ to either be known only up to a normalizing constant, or to be analytically intractable in other ways --- such as being high dimensional. A common solution to this problem is to use Markov chain Monte Carlo (MCMC) methods to learn about $f_X$. When using MCMC, a primary concern of the practitioner should be the question ``Does the Markov chain converge fast enough to be useful?'' One very useful convergence rate is called \emph{geometrically ergodic} \citep[Chapter~1]{johnson-thesis}. The \texttt{mcmc} package implements the Metropolis random-walk algorithm for arbitrary log unnormalized probability densities. But the Metropolis random-walk algorithm does not always perform well. As is demonstrated in \citet{johnson-geyer}, for $f_X$ and $f_Y$ related by diffeomorphism as in \eqref{eq:def-fy}, a Metropolis random-walk for $f_Y$ can be geometrically ergodic even though a Metropolis random-walk for $f_X$ is not. Since the transformation is one-to-one, inference about $f_X$ can be drawn from the Markov chain for $f_Y$. The \texttt{morph.metrop} and \texttt{morph} functions in the \texttt{mcmc} package provide this functionality, and this vignette gives a demonstration on how to use them. \section{T Distribution} \label{sec:toy} We start with a univariate example, which is a Student $t$ distribution with three degrees of freedom. Of course, one doesn't need MCMC to simulate this distribution (the R function \texttt{rt} does that), so this is just a toy problem. But it does illustrate some aspects of using variable transformation. A necessary condition for geometric ergodicity of a random-walk Metropolis algorithm is that the target density $\pi$ have a moment generating function \citep{jarner-tweedie}. For a univariate target density, which we have in this section, a sufficient condition for geometric ergodicity of a random-walk Metropolis algorithm is that the target density $\pi$ be exponentially light \citet{mengersen-tweedie}. Thus if we do not use variable transformation, the Markov chain simulated by the \texttt{metrop} function will not be geometrically ergodic. \citet[Example 4.2]{johnson-geyer} show that a $t$ distribution is sub-exponentially light. Hence using the transformations described in their Corollaries~1 and~2 will induce a target density $\pi_\gamma$ for which a Metropolis random-walk will be geometrically ergodic. using the transformation described as $h_2$ in \citet[Corollary~2]{johnson-geyer} will induce a target density for which a Metropolis random-walk will be geometrically ergodic. Passing a positive value for \texttt{b} to \texttt{morph} function will create the aforementioned transformation, $h_2$. It's as simple as <<>>= library(mcmc) h2 <- morph(b=1) @ We can now see the induced density. Note that \texttt{morph} works for log unnormalized densities, so we need exponentiate the induced density to plot it on the usual scale. <<>>= lud <- function(x) dt(x, df=3, log=TRUE) lud.induced <- h2$lud(lud) @ We can plot the two densities, <>= curve(exp(Vectorize(lud.induced)(x)), from = -3, to = 3, lty = 2, xlab = "t", ylab = "density") curve(exp(lud(x)), add = TRUE) legend("topright", c("t density", "induced density"), lty=1:2) @ The \texttt{Vectorize} in this example is necessary because the function \texttt{lud.induced} is not vectorized. Instead, it treats any vector passed as a single input, which is rescaled (using the specified diffeomorphism) and passed to \texttt{lud}. Compare the behavior of \texttt{lud} and \texttt{lud.induced} in the following example. <<>>= lud(1:4) lud(1) foo <- try(lud.induced(1:4)) class(foo) cat(foo, "\n") lud.induced(1) @ Because the function \texttt{dt} is vectorized, the function \texttt{lud} is also vectorized, mapping vectors to vectors, whereas the function \texttt{lud.induced} is not vectorized, mapping vectors to scalars. Before we start using random numbers, we set the seed of the random number generator so this document always produces the same results. <>= set.seed(42) @ To change the results, change the seed or delete the \texttt{set.seed} statement. Running a Markov chain for the induced density is done with \texttt{morph.metrop}. <<>>= out <- morph.metrop(lud, 0, blen=100, nbatch=100, morph=morph(b=1)) @ The content of \texttt{out\$batch} is on the scale of used by \texttt{lud}. Once the transformation has been set, no adjustment is needed (unless you want to change transformations). We start by adjusting the scale. <<>>= # adjust scale to find a roughly 20% acceptance rate out$accept @ An acceptance rate of \Sexpr{round(100 * out$accept, 1)}\% %$ to fix emacs highlighting is probably too high. By increasing the scale of the proposal distribution we can bring it down towards 20\%. <<>>= out <- morph.metrop(out, scale=4) out$accept @ We now use this Markov chain to estimate the expectation of the target distribution. But first we need to check whether our batch length is good. The following code <>= acf(out$batch) @ makes the autocorrelation plot (Figure~\ref{fig:fig0}). \begin{figure} \begin{center} <>= <> @ \end{center} \caption{Autocorrelation plot for the sequence of batch means.} \label{fig:fig0} \end{figure} It looks like there is no significant autocorrelation among the batches so the following produces a valid confidence interval for the true unknown mean of the target distribution (since this is a toy problem we actually know the true ``unknown'' mean is zero, but we pretend we don't know that for the purposes of the toy problem) <<>>= t.test(out$batch) @ If we want a point estimate and a Monte Carlo standard error, those are <<>>= colMeans(out$batch) apply(out$batch, 2, sd) / sqrt(out$nbatch) @ If a shorter confidence interval is desired, the Markov chain can be run longer (increase either the number of batches or the batch length, or both). Note that when calculating our estimate and the Monte Carlo standard error we are not concerned with what was happening on the transformed scale. The \texttt{morph.metrop} function seamlessly does this for us. \subsection{Comparison of Morphed and Unmorphed} To show the utility of the transformation, we will study the behavior of the Markov chain with and without the transformation for the same problem as in the preceding section. We will consider two different estimation methods. \begin{enumerate} \item \label{enum:rw} Estimate the mean of the target distribution using a random-walk Metropolis algorithm implemented by the \texttt{metrop} function. \citet{jarner-roberts} demonstrate that a central limit theorem does not hold for these estimates. \item \label{enum:rw-induced} Estimate the mean of the target distribution using a random-walk Metropolis algorithm implemented by the \texttt{morph.metrop} function with argument \texttt{morph = morph(b=1)}. \citet{johnson-geyer} demonstrate that a central limit theorem does hold for these estimates. \end{enumerate} For the former, we need to adjust the scale. <>= out.unmorph <- metrop(lud, 0, blen=1000, nbatch=1) out.unmorph$accept out.unmorph <- metrop(out.unmorph, scale=4) out.unmorph$accept out.unmorph <- metrop(out.unmorph, scale=6) out.unmorph$accept @ A scale of 6 appears to be about right. Now we do a long run for this sampler. Because this run takes longer than CRAN vingettes are supposed to take, we save the results to a file and load the results from this file if it already exists. <>= lout <- suppressWarnings(try(load("morph1.rda"), silent = TRUE)) if (inherits(lout, "try-error")) { out.unmorph <- metrop(out.unmorph, blen = 1e5, nbatch = 1e3) save(out.unmorph, file = "morph1.rda") } else { .Random.seed <- out.unmorph$final.seed } out.unmorph$accept @ Let's look at the distribution of batch means. The following code <>= foo <- as.vector(out.unmorph$batch) qqnorm(foo) qqline(foo) @ makes a Q-Q plot of the batch means (Figure~\ref{fig:fig4}). \begin{figure} \begin{center} <>= <> @ \end{center} \caption{Q-Q plot of batch means (batch length \Sexpr{out.unmorph$blen}) for the unmorphed chain.} \label{fig:fig4} \end{figure} We see bad behavior of the unmorphed chain. These batch means (or at least some batch means for sufficiently long batch length) should look normally distributed, and these don't. Not even close. We do a formal test just to check our interpretation of the plot <>= shapiro.test(foo) @ Now for comparison, we check the morphed chain. <>= lout <- suppressWarnings(try(load("morph2.rda"), silent = TRUE)) if (inherits(lout, "try-error")) { out.morph <- morph.metrop(out, blen = 1e5, nbatch = 1e3) save(out.morph, file = "morph2.rda") } else { .Random.seed <- out.morph$final.seed } out.morph$accept @ The following code <>= foo <- as.vector(out.morph$batch) qqnorm(foo) qqline(foo) @ makes a Q-Q plot of the batch means (Figure~\ref{fig:fig5}). \begin{figure} \begin{center} <>= <> @ \end{center} \caption{Q-Q plot of batch means (batch length \Sexpr{out.unmorph$blen}) for the morphed chain.} \label{fig:fig5} \end{figure} We see good behavior of the morphed chain. These batch means do look normally distributed. We do a formal test just to check our interpretation of the plot <>= shapiro.test(foo) @ \section{Binomial Distribution with a Conjugate Prior} We demonstrate a morphometric Markov chain using the \texttt{UCBAdmisions} data set included in \texttt{R}, (use \texttt{help(UCBAdmissions)} to see details of this data set). We will model the probability of a student being admitted or rejected, using the sex of the student and the department that the student applied to as predictor variables. For our prior, we naively assume that 30\% of all students are admitted, independent of sex or department. As this is a naive prior, we will only add 5 students to each gender-department combination. This will not give the prior much weight, most of the information in the posterior distribution will be from the data. If we have $L$ observations from a multinomial distribution, then using a multinomial logit-link, with model matrices $M^1,\dots,M^L$, regression parameter $\beta$, observed counts $Y^1,\dots,Y^N$ with observed sample sizes $N^1,\dots,N^L$ and prior probabilities $\xi^1, \dots, \xi^L$ and prior ``sample sizes'' $\nu^1,\dots,\nu^L$ then the posterior distribution of $\beta$ is given by \citep[Sec. 5.1.2]{johnson-thesis} \begin{equation}\label{eq:mult-post-conj-complicated} \pi(\beta|y,n,\xi,\nu) \propto \exp\biggl\{ \sum_{l=1}^L \inner{y^l + \xi^l \nu^l, M^l \beta} - (n^l + \nu^l) \log\bigl( \sum_j e^{M_{j\cdot} \beta} \bigr) \biggr\} \end{equation} where $\inner{a, b}$ denotes the usual inner product between vectors $a$ and $b$. For our application, we can simplify this in two ways. First, we use the posterior counts instead of the sum of the prior and data counts, i.e. use $y^{*l} = y^l + \xi^l \nu^l$ and $n^{*l} = n^l + \nu^l$. Second, to avoid having a direction of recession in $\pi(\beta|\cdot)$, we need to fix the elements of $\beta$ that correspond with one of the response categories. Since we are going to fitting a binomial response, if we set these elements of $\beta$ to be $0$, we may then replace the sequence of model matrices with a single model matrix; $M$ instead of $M^1,\dots,M^L$. The $l$-th row of $M$ will correspond to $M^l$. Label the two response categories $A$ and $B$. Without loss of generality, we will fix the elements of $\beta$ corresponding to category $B$ to 0. Let $x_1,\dots,x_L$ represent the posterior counts of category $A$, and $\beta^*$ represent the corresponding elements of $\beta$ --- these are the elements of $\beta$ we did not fix as 0. The meaning of $n^{*1},\dots,n^{*L}$ is unchanged. Then our simplified unnormalized posterior density is \begin{equation}\label{eq:simplified-posterior} \pi(\beta|x,n^*) \propto \exp\biggl\{ \inner{x, M \beta^*} - \sum_{l=1}^L n^{*l} \log\bigl(1 + e^{(M \beta^*)_l}\bigr) \biggr\}. \end{equation} This can be computed with a very simple \texttt{R} function, we implement it in log form. <>= lud.binom <- function(beta, M, x, n) { MB <- M %*% beta sum(x * MB) - sum(n * log(1 + exp(MB))) } @ Now that we have a function to calculate a log-unnormalized posterior density, we can run the Markov chain. To that, we need the model matrix. First we convert the \texttt{UCAdmissions} data to a \texttt{data.frame}. <>= dat <- as.data.frame(UCBAdmissions) dat.split <- split(dat, dat$Admit) dat.split <- lapply(dat.split, function(d) { val <- as.character(d$Admit[1]) d["Admit"] <- NULL names(d)[names(d) == "Freq"] <- val d }) dat <- merge(dat.split[[1]], dat.split[[2]]) @ Next we build the model matrix. Our model specification allows for an interaction between gender and department, even though our prior assumes that they are independent. <>= formula <- cbind(Admitted, Rejected) ~ (Gender + Dept)^2 mf <- model.frame(formula, dat) M <- model.matrix(formula, mf) @ As stated above, we will take $\nu = 5$ and $\xi=0.30$. That is, we will add 5 students to each gender-department combination, where each combination has a 30\% acceptance rate. <<>>= xi <- 0.30 nu <- 5 @ <>= lud.berkeley <- function(B) lud.binom(B, M, dat$Admitted + xi * nu, dat$Admitted + dat$Rejected + nu) @ This function is suitable for passing to \texttt{metrop} or \texttt{morph.metrop}. We know that using \texttt{morph.metrop} with \texttt{morph=morph(p=3)} will run a geometrically ergodic Markov chain \citep{johnson-geyer}. <<>>= berkeley.out <- morph.metrop(lud.berkeley, rep(0, ncol(M)), blen=1000, nbatch=1, scale=0.1, morph=morph(p=3)) berkeley.out$accept berkeley.out <- morph.metrop(berkeley.out, scale=0.05) berkeley.out$accept berkeley.out <- morph.metrop(berkeley.out, scale=0.02) berkeley.out$accept berkeley.out <- morph.metrop(berkeley.out, blen=10000) berkeley.out$accept @ <<>>= berkeley.out <- morph.metrop(berkeley.out, blen=1, nbatch=100000) @ Estimate the posterior mean acceptance probabilities for each gender-department combination. <<>>= beta <- setNames(colMeans(berkeley.out$batch), colnames(M)) MB <- M %*% beta dat$p <- dat$Admitted / (dat$Admitted + dat$Rejected) dat$p.post <- exp(MB) / (1 + exp(MB)) dat @ The small difference between the data and posterior probabilities is expected, our prior was given very little weight. Using \texttt{morph.metrop} with the setting \texttt{morph=morph(p=3)} in this setting is an efficient way of sampling from the posterior distribution. We can also compare the posterior distribution of admittance probability for each gender-department combination. Table~\ref{tab:post-quant} gives the 5\% and 95\% quantiles for the posterior distribution of the admittance probabilities for each gender-department combination. Figure~\ref{fig:posterior-probs} gives the same quantiles, plus the mean posterior-probability for each gender-department combination. From these we can see that for each department, there is considerable overlap of the distributions of probabilities for males and females. <>= posterior.probabilities <- t(apply(berkeley.out$batch, 1, function(r) { eMB <- exp(M %*% r) eMB / (1 + eMB) })) quants <- apply(posterior.probabilities, 2, quantile, prob=c(0.05, 0.95)) quants.str <- matrix(apply(quants, 2, function(r) sprintf("[%0.2f, %0.2f]", r[1], r[2])), nrow=2, byrow=TRUE) @ \begin{table}[ht] \caption{5\% and 95\% posterior quantiles for admittance probability for each gender-department combination} \begin{center} \begin{tabular}{|l|c|c|c|c|c|c|} \hline Gender & Dept. A & Dept. B & Dept. C & Dept. D & Dept. E. & Dept. F \\ \hline Female & \Sexpr{paste(quants.str[1, 1:6], collapse=" & ")} \\ Male & \Sexpr{paste(quants.str[2, 1:6], collapse=" & ")} \\ \hline \end{tabular} \label{tab:post-quant} \end{center} \end{table} \begin{figure} \begin{center} <>= x <- (0:5) * 2 + 1 plot(x[c(1, 6)] + 0.5 * c(-1, 1), 0:1, xlab="Department", ylab="Probability", xaxt="n", type="n") axis(1, x, LETTERS[1:6]) for(i in 1:6) { lines((x[i]-0.25)*c(1, 1), quants[1:2, i], lwd=2, col="gray") lines((x[i] + 0.25) * c(1, 1), quants[1:2, i + 6], lwd=2, col="gray") points(x[i] + 0.25 * c(-1, 1), dat$p.post[i + c(0, 6)], pch=c("F", "M")) } @ \end{center} \caption{Posterior 5\% and 95\% quantiles and mean, by department and gender.} \label{fig:posterior-probs} \end{figure} \section{Cauchy Location-Scale Model} We are going to do a Cauchy location-scale family objective Bayesianly. \subsection{Data} First we generate some data. <>= n <- 15 mu0 <- 50 sigma0 <- 10 x <- rcauchy(n, mu0, sigma0) round(sort(x), 1) @ \texttt{mu0} and \texttt{sigma0} are the true unknown parameter values (since the data are simulated we actually know these ``unknown'' parameter values, but we must pretend we don't know them and estimate them). \subsection{Prior} The standard objective prior distribution for this situation (insofar as any prior distribution can be said to be an objective standard) is the improper prior $$ g(\mu, \sigma) = \frac{1}{\sigma} $$ which is right Haar measure for the location-scale group, and is the standard prior that comes from the group invariance argument \citep[Section~3.2]{kass-wasserman}. \subsection{Log Unnormalized Posterior} We need a function whose argument is a two-vector <>= lup <- function(theta) { if (any(is.na(theta))) stop("NA or NaN in input to log unnormalized density function") mu <- theta[1] sigma <- theta[2] if (sigma <= 0) return(-Inf) if (any(! is.finite(theta))) return(-Inf) result <- sum(dcauchy(x, mu, sigma, log = TRUE)) - log(sigma) if (! is.finite(result)) { warning(paste("Oops! mu = ", mu, "and sigma =", sigma)) } return(result) } @ \subsection{Laplace Approximation} To have some idea what we are doing, we first maximize the log unnormalized posterior. To do it helps to have good starting points for the optimization. Robust estimators of location and scale are <>= mu.twiddle <- median(x) sigma.twiddle <- IQR(x) c(mu.twiddle, sigma.twiddle) @ The posterior mode is <>= oout <- optim(c(mu.twiddle, sigma.twiddle), lup, control = list(fnscale = -1), hessian = TRUE) stopifnot(oout$convergence == 0) mu.hat <- oout$par[1] sigma.hat <- oout$par[2] c(mu.hat, sigma.hat) @ and the hessian evaluated at the posterior mode (calculated by \texttt{optim} using finite differences) is <>= oout$hessian @ The hessian is nearly diagonal and one can check that theoretically is exactly diagonal. Thus approximate (asymptotic) posterior standard deviations are <>= sqrt(- 1 / diag(oout$hessian)) @ \subsection{Theory} To use the theory in \citet{johnson-geyer} we must verify that the target distribution (the unnormalized posterior) is everywhere positive, and it isn't (it is zero for $\sigma \le 0$). We tried making $\log(\sigma)$ the parameter but this didn't work either because $\log(\sigma)$ goes to infinity so slowly that this stretches out the tails so much that the transformations introduced by \citet{johnson-geyer} can't pull them back in again. We do know \citep[Example~3.4]{johnson-geyer} that if we fix $\sigma$ this is a sub-exponentially light target distribution. Letting $\sigma$ vary can only make this worse. Thus, if we don't do anything and just use the \texttt{metrop} function, then performance will be very bad. So we are going to use the transformations and the \texttt{morph.metrop} function, even though the theory that motivates them does not hold. \subsection{Morph} We want to center the transformation at the posterior mode, and use a radius $r$ that doesn't transform until several approximate standard deviations <>= moo <- morph(b = 0.5, r = 7, center = c(mu.hat, sigma.hat)) mout <- morph.metrop(lup, c(mu.hat, sigma.hat), 1e4, scale = 3, morph = moo) mout$accept mout <- morph.metrop(mout) @ Good enough. An attempt to increase the scale led to error when the transformation functions overflowed. Can't take steps too big with this stuff. The following code <>= acf(mout$batch) @ makes an autocorrelation plot (Figure~\ref{fig:cfig1}). \begin{figure} \begin{center} <>= <> @ \end{center} \caption{Autocorrelation plot. First component is $\mu$, second is $\sigma$.} \label{fig:cfig1} \end{figure} It looks like lag 10 to 15 is enough to get near independence. Now we want to make marginal density plots. If we just feed our MCMC output to the R function \texttt{density} it undersmooths because it expects independent and identically distributed data rather than autocorrelated data. Thus we feed it subsampled, nearly uncorrelated data to select the bandwidth and then use that bandwidth on the full data. Here's how that works. The following code <>= mu <- mout$batch[ , 1] i <- seq(1, mout$nbatch, by = 15) out.sub <- density(mu[i]) out <- density(mu, bw = out.sub$bw) plot(out) @ makes the density plot (Figure~\ref{fig:cfig2}). \begin{figure} \begin{center} <>= <> @ \end{center} \caption{Density plot for the marginal posterior for $\mu$.} \label{fig:cfig2} \end{figure} And a similar plot for $\sigma$ (Figure~\ref{fig:cfig3}) \begin{figure} \begin{center} <>= sigma <- mout$batch[ , 2] out.sub <- density(sigma[i]) out <- density(sigma, bw = out.sub$bw) plot(out) @ \end{center} \caption{Density plot for the marginal posterior for $\sigma$.} \label{fig:cfig3} \end{figure} \begin{thebibliography}{} \bibitem[Jarner and Roberts(2007)]{jarner-roberts} Jarner, S.F., and G.O. Roberts (2007). \newblock Convergence of heavy-tailed Monte Carlo Markov chain algorithms. \newblock \emph{Scandinavian Journal of Statistics}, 34, 781--815. \bibitem[Jarner and Tweedie(2003)]{jarner-tweedie} Jarner, S.~F., and Tweedie, R.~L. (2003). \newblock Necessary conditions for geometric and polynomial ergodicity of random-walk-type Markov chains. \newblock \emph{Bernoulli}, 9, 559--578. \bibitem[Johnson(2011)]{johnson-thesis} Johnson, L.~T. (2011). \newblock Geometric Ergodicity of a Random-Walk Metropolis Algorithm via Variable Transformation and Computer Aided Reasoning in Statistics. \newblock Ph.~D. thesis. University of Minesota. \url{http://purl.umn.edu/113140} \bibitem[Johnson and Geyer(submitted)]{johnson-geyer} Johnson, L.~T., and C.~J. Geyer (submitted). \newblock Variable Transformation to Obtain Geometric Ergodicity in the Random-walk Metropolis Algorithm. \newblock Revised and resubmitted to \emph{Annals of Statistics}. \bibitem[Kass and Wasserman(1996)]{kass-wasserman} Kass, R.~E., and Wasserman, L. (1996). \newblock Formal rules for selecting prior distributions: A review and annotated bibliography. \newblock \emph{Journal of the American Statistical Association}, 435, 1343--1370. \bibitem[Mengersen and Tweedie(1996)]{mengersen-tweedie} Mengersen, K.L., ad R. L. Tweedie (1996). \newblock Rates of convergence of the Hastings and Metropolis algorithms. \newblock \emph{Annals of Statistics}, 24, 101--121. \end{thebibliography} \end{document} mcmc/inst/designDoc/0000755000176200001440000000000013636316205014052 5ustar liggesusersmcmc/inst/designDoc/temper.tex0000644000176200001440000002477313636316205016105 0ustar liggesusers \documentclass[11pt]{article} \usepackage{amsmath} \usepackage{indentfirst} \usepackage{natbib} \usepackage{url} \RequirePackage{amsfonts} \newcommand{\real}{\mathbb{R}} \newcommand{\fatdot}{\,\cdot\,} \begin{document} \title{Simulated Tempering for the MCMC Package} \author{Charles J. Geyer} \maketitle \section{Parallel and Serial Tempering} Serial tempering \citep{marinari-parisi,geyer-thompson} runs a Markov chain whose state is $(i, x)$, where $i$ is a positive integer between 1 and $k$ and $x$ is an element of $\real^p$. The unnormalized density of the equilibrium distribution is $h(i, x)$. The integer $i$ is called the \emph{index of the component of the mixture}, and the integer $k$ is called the \emph{number of components of the mixture}. The reason for this terminology is that \begin{equation} \label{eq:mix} h(x) = \sum_{i = 1}^k h(i, x), \end{equation} which is the unnormalized marginal density of $x$ derived from the unnormalized joint density $h(i, x)$ of the equilibrium distribution of the Markov chain, is a mixture of $k$ component distributions having unnormalized density $h(i, \fatdot)$ for different $i$. Parallel tempering \citep{geyer} runs a Markov chain whose state is $(x_1, \ldots, x_k)$ where each $x_i$ is an element of $\real^p$. Thus the state is a vector whose elements are vectors, which may be thought of as a $k \times p$ matrix. The unnormalized density of the equilibrium distribution is \begin{equation} \label{eq:parallel-joint} h(x_1, \ldots, x_k) = \prod_{i \in I} h(i, x_i). \end{equation} This joint equilibrium distribution is the product of the marginals $h(i, \fatdot)$ for different $i$. This the $x_i$ are asymptotically independent in parallel tempering. \section{Sensitivity to Normalization} So long as one is only interested in one of the component distributions $h(i, \fatdot)$, both parallel and serial tempering do the job. And this job is what gives them the name ``tempering'' by analogy with simulated annealing \citep{marinari-parisi}. The other component distributions only help in sampling the component of interest. In this job, parallel tempering is easier to set up because it is insensitive to normalizing constants in the following sense. Suppose we change the normalization for each component distribution using $$ h^*(i, x) = a_i h(i, x). $$ This greatly changes the mixture distribution \eqref{eq:mix} sampled by simulated tempering. We now get $$ h^*(x) = \sum_{i = 1}^k h^*(i, x) = \sum_{i = 1}^k a_i h(i, x), $$ which may be very different from \eqref{eq:mix}, even considered as an unnormalized density (which it is). But \eqref{eq:parallel-joint}, considered as an unnormalized density (which it is), does not change at all \begin{align*} h^*(x_1, \ldots, x_k) & = \prod_{i = 1}^k h^*(i, x) \\ & = \prod_{i = 1}^k a_i h(i, x) \\ & = \left( \prod_{i = 1}^k a_i \right) \left( \prod_{i = 1}^k h(i, x) \right) \\ & = \left( \prod_{i = 1}^k a_i \right) h(x_1, \ldots, x_k) \end{align*} (the normalizing constant changes, but that does not matter for an unnormalized density; it still specifies the same probability distribution). All this is to say that serial tempering is very sensitive to the choices of normalizing constants of the individual component distributions (the $a_i$ in the preceding discussion) and parallel tempering is totally insensitive to them. Thus parallel tempering is easier to set up and get working. \citet{geyer-thompson}, however, independently invented serial tempering because it worked for a problem where parallel tempering failed. So for this ``tempering'' job, where one is only interested in sampling one component distribution (and the others are just helpers) parallel tempering is easier to use but serial tempering works better. \section{Umbrella Sampling} Sometimes one is actually interested in sampling a particular mixture distribution having unnormalized density \eqref{eq:mix}. This arises in Bayesian and frequentist model averaging and for other reasons. An umbrella term for this application is ``umbrella sampling'' \citep{torrie-valleau}. In this application only serial tempering does more than parallel tempering. Parallel tempering can simulate any directly specified mixture. If $$ f(i, x) = \frac{h(i, x)}{\int h(i, x) \, d x} $$ are the normalized component distributions and $b_1$, $\dots$, $b_k$ are nonnegative and sum to one, then $$ f(x) = \sum_{i = 1}^k b_i f(i, x) $$ is a normalized mixture distribution, and parallel tempering can be used to sample it. However, this ``directly specified'' mixture is often not of interest because the individual component normalizing constants \begin{equation} \label{eq:norm-con} c_i = \int h(i, x) \, d x \end{equation} are unknown. Suppose we are doing Bayesian model averaging and $h(i, x)$ is the unnormalized posterior density (likelihood times prior). This means $i$ and $x$ are parameters to the Bayesian; $i$ denotes the model and $x$ denotes the within-model parameters. Then the normalizing constants \eqref{eq:norm-con} are unnormalized Bayes factors, which Bayesians use for model comparison. The function $i \mapsto c_i$ is the unnormalized density of the marginal distribution of the random variable $i$ derived from the joint distribution $h(i, x)$, which is the equilibrium distribution of the Markov chain. It is therefore estimated, up to a constant of proportionality, by the marginal distribution of $i$. Thus serial tempering, unlike parallel tempering, provides simple and direct estimates of Bayes factors and other normalizing constants. \section{Update Mechanisms} Traditionally, tempering makes two kinds of elementary updates, one changes only $x$ in serial tempering or one $x_i$ in parallel tempering. We call them within-component updates, and will use normal random walk Metropolis updates analogous to those used by the \texttt{metrop} function. The other kind changes $i$ in serial tempering or swaps $x_i$ and $x_j$ in parallel tempering. We call them jump/swap updates (jump in serial tempering, swap in parallel tempering). \subsection{Serial Tempering} The combined update is a 50-50 mixture of within-component elementary updates and jump updates. Suppose the current state is $(i, x)$. A within-component update proposes $x^*$ which is normally distributed centered at $x$. Then Metropolis rejection of the proposal is done with Metropolis ratio $$ \frac{h(i, x^*)}{h(i, x)} $$ This is valid because the proposal is symmetric by symmetry of the normal distribution. A jump update proposes $i^*$, which is chosen uniformly at random from the ``neighbors'' of $i$ (the neighbor relation is specified by a user-supplied logical matrix). This proposal need not be symmetric, because $i$ and $i^*$ need not have the same number of neighbors. Write $n(i)$ and $n(i^*)$ for these neighbor counts. Then the probability of proposing $i^*$ when the current state is $i$ is $1 / n(i)$, and the probability of proposing $i$ when the current state is $i^*$ is $1 / n(i^*)$. Hence the appropriate Hastings ratio for Metropolis-Hastings rejection is $$ \frac{h(i^*, x) / n(i^*)}{h(i, x) / n(i)} = \frac{h(i^*, x)}{h(i, x)} \cdot \frac{n(i)}{n(i^*)} $$ \subsection{Parallel Tempering} The combined update is a 50-50 mixture of within-component elementary updates and swap updates. Suppose the current state is $(x_1, \ldots, x_k)$. A within-component chooses $i$ uniformly at random in $\{ 1, \ldots, k \}$, and then proposes $x_i^*$ which is normally distributed centered at $x_i$. Then Metropolis rejection of the proposal is done with Metropolis ratio $$ \frac{h(i, x_i^*)}{h(i, x_i)} $$ This is valid because the proposal is symmetric by symmetry of the normal distribution. A swap update chooses $i$ uniformly at random in $\{ 1, \ldots, k \}$ and then $j$, which is chosen uniformly at random from the neighbors of $i$. This proposal is automatically symmetric, because a swap move is its own inverse. Hence the appropriate Hastings ratio for Metropolis-Hastings rejection is $$ \frac{h(i, x_j) h(j, x_i)}{h(i, x_i) h(j, x_j)} $$ \section{Acceptance Rates} Metropolis-Hastings acceptance rates are not comparable to Metropolis acceptance rates. For serial tempering $$ E \left\{ 1 \wedge \frac{h(i^*, x)}{h(i, x)} \cdot \frac{n(i)}{n(i^*)} \right\} \neq E \left\{ 1 \wedge \frac{h(i^*, x)}{h(i, x)} \right\} $$ where the expectations are taken with respect to $(i, x)$ having the equilibrium distribution of the Markov chain and the conditional distribution of $i^*$ given $i$ being uniform over neighbors of $i$. For parallel tempering, $$ E \left\{ 1 \wedge \frac{h(i, x_j) h(j, x_i)}{h(i, x_i) h(j, x_j)} \cdot \frac{n(i)}{n(j)} \right\} \neq E \left\{ 1 \wedge \frac{h(i, x_j) h(j, x_i)}{h(i, x_i) h(j, x_j)} \right\} $$ where the expectations are taken with respect to $(x_1, \ldots, x_k)$ having the equilibrium distribution of the Markov chain, $(i, j)$ being independent of $(x_1, \ldots, x_k)$, the marginal distribution of $i$ being uniform on $\{ 1, \ldots, k \}$, and the conditional distribution of $j$ given $i$ being uniform over neighbors of $i$. Thus we need to report rates going both ways, for example, for serial tempering, when $i = 1$ and $i^* = 2$ as well as when $i = 2$ and $i^* = 1$. And similarly for parallel tempering. \begin{thebibliography}{} \bibitem[Geyer(1991)]{geyer} Geyer, C.~J. (1991). \newblock Markov chain Monte Carlo maximum likelihood. \newblock \emph{Computing Science and Statistics: Proceedings of the Symposium on Interface Critical Applications of Scientific Computing (23rd): Biology, Engineering, Medicine, Speech Held in Seattle, Washington on 21-24 April 1991}, J.~R. Kettenring and E.~M. Keramidas, eds., 156--163. \newblock \url{http://www.stat.umn.edu/geyer/f05/8931/c.ps} \bibitem[Geyer and Thompson(1995)]{geyer-thompson} Geyer, C.~J., and Thompson, E.~A. (1995). \newblock Annealing Markov chain Monte Carlo with applications to ancestral inference. \newblock \emph{Journal of the American Statistical Association}, \textbf{90}, 909--920. \bibitem[Marinari and Parisi(1992)]{marinari-parisi} Marinari, E., and Parisi G. (1992). \newblock Simulated tempering: A new Monte Carlo Scheme. \newblock \emph{Europhysics Letters}, \textbf{19}, 451--458. \bibitem[Torrie and Valleau(1977)]{torrie-valleau} Torrie, G.~M., and Valleau, J.~P. (1977). \newblock Nonphysical sampling distributions in Monte Carlo free-energy estimation: Umbrella sampling. \newblock \emph{Journal of Computational Physics}, \textbf{23}, 187--199. \end{thebibliography} \end{document} mcmc/inst/designDoc/metrop.tex0000644000176200001440000003622113636316205016106 0ustar liggesusers \documentclass{article} \usepackage{indentfirst} \begin{document} \title{An MCMC Package for R} \author{Charles J. Geyer} \maketitle \section{Introduction} This package is a simple first attempt at a sensible \emph{general} MCMC package. It doesn't do much yet. It only does ``normal random-walk'' Metropolis for continuous distributions. No non-normal proposals. No Metropolis-Hastings or Metropolis-Hastings-Green. No discrete state. No dimension jumping. No simulated tempering. No perfect sampling. There's a lot left to do. Still, limited as it is, it does equilibrium distributions that no other R package does. Its basic idea is the following. Given an R function \verb@fred@ that calculates the unnormalized density of the desired equilibrium distribution of the Markov chain, or, better yet, \emph{log} unnormalized density, so we avoid overflow and underflow, the \verb@metrop@ function should generate a Markov chain having this stationary distribution. The package does not do any of the following. \begin{itemize} \item \textbf{Theory.} (What R package does?) It doesn't prove the Markov chain is irreducible or ergodic or positive recurrent or Harris recurrent or geometrically ergodic or uniformly ergodic or satisfies conditions for the central limit theorem. \item \textbf{Diagnostics.} There are no non-bogus Markov chain diagnostics (except for perfect sampling). This package doesn't do any bogus diagnostics (other R packages do them). \item \textbf{Calculus.} If the putative unnormalized density specified by \verb@fred@ is not integrable, then it does not specify an equilibrium distribution. But this package doesn't check that either. \end{itemize} Thus the only requirement the package has to satisfy is that given a function \verb@fred@ it correctly simulates a Markov chain that actually has \verb@fred@ as its equilibrium distribution (when \verb@fred@ actually does specify some equilibrium distribution) \section{Design Issues} \subsection{First Try} For a start we have a function with signature \begin{verbatim} metrop(lud, initial, niter, ...) \end{verbatim} such that when \begin{itemize} \item \verb@initial@ is a real vector, the initial state of the Markov chain, \item \verb@lud@ is a function, the log unnormalized density of the equilibrium distribution of the Markov chain, such that \begin{itemize} \item \verb@lud(initial, ...)@ works and produces a finite scalar value and \item \verb@lud(x, ...)@ works for any real vector \verb@x@ having the same length as \verb@initial@ and all elements finite and and produces a scalar value that is finite or \verb@-Inf@, \end{itemize} \end{itemize} then the function produces an \verb@niter@ by \verb@length(initial)@ matrix whose rows are the iterations of the Markov chain. \subsubsection{Checks} If \begin{verbatim} logh <- lud(initial, ...) \end{verbatim} then \verb@is.finite(logh)@ is \verb@TRUE@. Moreover, if \verb@x@ is any vector such that \verb@length(x) == length(initial)@ and \verb@all(is.finite(x))@ are \verb@TRUE@ and \begin{verbatim} logh <- lud(x, ...) \end{verbatim} then \begin{verbatim} is.finite(logh) | (logh == -Inf) \end{verbatim} is \verb@TRUE@. Points \verb@x@ having log unnormalized density \verb@-Inf@ have density zero (normalized or unnormalized, since a constant times zero is zero) hence cannot occur. Thus if \begin{verbatim} path <- metrop(fred, x, n, some, extra, arguments) \end{verbatim} then \begin{verbatim} all(is.finite(apply(path, 1, fred, some, extra, arguments))) \end{verbatim} is \verb@TRUE@. This is how we specify log unnormalized densities for distribution having support that is not all of Euclidean space. The value of the log unnormalized density off the support is \verb@-Inf@. Thus when coding a log unnormalized density, we should normally do something like \begin{verbatim} fred <- function(x, ...) { if (! is.numeric(x)) stop("argument x not numeric") if (length(x) != d) stop("argument x wrong length") if (! all(is.finite(x))) stop("elements of argument x not all finite") if (! is.in.the.support(x)) return(-Inf) return(log.unnormalized.density(x)) } \end{verbatim} where \verb@d@ is the dimension of the state space of the Markov chain (defined in the global environment or in the \verb@...@ arguments), \verb@is.in.the.support(x)@ returns \verb@TRUE@ if \verb@x@ is in the support of the desired equilibrium distribution and \verb@FALSE@ otherwise and \verb@log.unnormalized.density(x)@ calculates the log unnormalized density of the desired equilibrium distribution at the point \verb@x@, which is guaranteed to be finite because \verb@x@ is in the support if the this code is executed. Of course, you needn't actually have functions named \verb@is.in.the.support@ and \verb@log.unnormalized.density@. The point is that you use this logic. First you check whether \verb@x@ is in the support. If not return \verb@-Inf@. If it is, return a finite value. Do not crash. Do not return \verb@NA@, \verb@NaN@, or \verb@Inf@. If you do, then \verb@metrop@ crashes, and it's your fault. Of course, a crash is no big deal. Lots of first efforts in R crash. You just fix the problem and retry. Error messages are your friends. \subsection{Proposal} We also need to specify the proposal distribution (the preceding stuff assumed some default proposal). This can be any multivariate normal distribution on the Euclidean space of dimension \verb@length(initial)@ having mean zero. Thus it is specified by specifying its covariance matrix. But to avoid having to check whether the specified covariance matrix actually is a covariance matrix, we make the specification an arbitrary \verb@d@ by \verb@d@ matrix, call it \verb@scale@, where \verb@d@ is the dimension of the state space, specified by \verb@length(initial)@, and use the proposal \verb@x + scale %*% z@, where \verb@x@ is the current state and \verb@z@ is a standard normal random vector (``standard'' meaning its covariance matrix is the identity matrix). Thus we need to add this to the argument list of our function. It is now \begin{verbatim} metrop(lud, initial, niter, scale, ...) \end{verbatim} The covariance matrix specified by this is, of course, \verb@scale %*% t(scale)@. If you want the proposal to have covariance matrix \verb@melvin@, then specifying \verb@scale = t(chol(melvin))@ will do the job. (Of course, many other specifications will also do the job.) For convenience, we also allow \verb@scale@ to be a vector of length \verb@d@ and in this case take \verb@scale = sally@ to mean the same thing as \verb@scale = diag(sally)@. For convenience, we also allow \verb@scale@ to be a vector of length 1 and in this case take \verb@scale = sally@ to mean the same thing as \verb@scale = sally * diag(d)@ where \verb@d@ is still the dimension of the state space \verb@length(initial)@. We can use this last convenience option to give \verb@scale@ a default \begin{verbatim} metrop(lud, initial, niter, scale = 1, ...) \end{verbatim} In order to tell what is sensible scaling, we need to return the acceptance rate (the proportion of proposals that are accepted). The only criterion known for choosing sensible scaling is to adjust so that the acceptance rate is about 20\%. Of course, that recommendation was derived for a specific toy model that is not very much like what people do in real MCMC applications, so 20\% is only a very rough guideline. But acceptance rate is all we know to use, so that's what we will output. Thus the result of \verb@metrop@, assuming we write it in R will be something like \begin{verbatim} return(structure(list(path = path, rate = rate), class = "mcmc")) \end{verbatim} and if we write it in C will be whatever does the same job. \subsection{Output I} Generally we don't want \verb@path@ to be as described above. It may be way too big. We might have \verb@d@, the dimension of the state space $10^3$ or even larger and we might have \verb@niter@ $10^7$ or even larger, the resulting \verb@path@ matrix would be $10^{10}$ doubles or $8 \times 10^{10}$ bytes. Too big to fit in my computer! Thus we facilitate subsampling and batching of the output. \subsubsection{Subsampling} If the Markov chain exhibits high autocorrelation, subsampling the chain may lose little information. (Most users way overdo the subsampling, but it's not the job of a computer program to keep users from overdoing things). Thus we add an argument \verb@nspac@ that specifies subsampling. Only every \verb@nspac@ iterate is output. \subsubsection{Batching} The method of batch means uses ``batches'' which are sums over consecutive blocks of output. For most purposes batching is better than subsampling. It loses no information while reducing the amount of output even more than subsampling. So we introduce arguments \verb@nbatch@ specifying the number of batches and \verb@blen@ specifying the length of the batches. Our function now has signature \begin{verbatim} metrop(lud, initial, nbatch, blen = 1, nspac = 1, scale = 1, ...) \end{verbatim} Note that the argument \verb@niter@ formerly present has vanished. The number of iterations that will now be done is \verb@nbatch * blen * nspac@. If we accept the defaults \verb@blen = 1@ and \verb@nspac = 1@, then \verb@nbatch@ is the same as the former argument \verb@niter@. Otherwise, it is quite different. \subsection{Output II} The preceding section takes care of of the problem of \verb@niter@ being too big. This section deals with the dimension of the state space being too big. When the dimension of the state space is large, we generally do not want to output the whole state, but only some function of the state. Thus we need another function (besides \verb@lud@) to produce the output vector. Call it \verb@outfun@. The requirements on \verb@outfun@ are \begin{itemize} \item If \verb@is.finite(lud(x, ...))@, then \verb@outfun(x, ...)@ works (it does not crash) and produces a vector having all elements finite and always of the same length (say \verb@k@). \end{itemize} \verb@outfun@ will never be called in any other situation (that is, never when \verb@x@ is not in the support of the equilibrium distribution). Now we can describe the \verb@path@ component of the output. We'll use a little math here. Write $L$ for \verb@blen@ and $M$ for \verb@nspac@. Write $x_i$ for the $i$-th iterate of the Markov chain, and write $g$ for \verb@outfun@. Then \verb@path[@$j$\verb@, ]@ is the vector $$ \frac{1}{L} \sum_{i = 1}^L g(x_{M [L (j - 1) + i]}) $$ For convenience, we also allow \verb@outfun@ to be a logical vector of length \verb@d@ or an integer vector having elements in \verb@1:d@ or in \verb@-(1:d)@ and in this case take \verb@outfun = fred@ to mean the same thing as \verb@outfun = function(x) x[fred]@. For convenience, we also allow \verb@outfun@ to be missing take this to mean the same thing as \verb@outfun = function(x) x@, that is, the ``outfun'' is the identity function and we are back to outputting the entire state. Our function now has signature \begin{verbatim} metrop(lud, initial, nbatch, blen = 1, nspac = 1, scale = 1, outfun, ...) \end{verbatim} \subsection{Restarting} It should be possible to restart the Markov chain and get exactly the same results. It should be possible to continue the Markov chain and get exactly the same results. Thus we need to save the initial and final state of the Markov chain and the initial and final state of the random number generator (the R object \verb@.Random.seed@). Thus the result of \verb@metrop@ now looks like \begin{verbatim} return(structure(list(path = path, rate = rate, initial = initial, final = final, initial.seed = iseed, final.seed = .Random.seed), class = "mcmc")) \end{verbatim} We also need to add arguments to \verb@metrop@. It now has signature \begin{verbatim} metrop(lud, initial, nbatch, blen = 1, nspac = 1, scale = 1, outfun, object, restart = FALSE, ...) \end{verbatim} Here \verb@object@ is an R object of class \verb@"mcmc"@, the output a previous call to \verb@metrop@, from which we take either initial or final state and seed depending the value of \verb@restart@. While we are at it, it is convenient to allow any or all of the other arguments to be missing if \verb@object@ is supplied. We just take the argument from \verb@object@. Thus we can make calls like \begin{verbatim} out <- metrop(fred, x, 1e3, scale = 4, blen = 3) out.too <- metrop(object = out, nbatch = 1e4) \end{verbatim} Woof! I now see (how embarrasing) after four earlier versions how to use the R class system to make this convenient. We have three functions. \begin{verbatim} metrop.default <- function(o, ...) UseMethod("metrop") metrop.mcmc <- function(o, initial, nbatch, blen = 1, nspac = 1, scale = 1, outfun, restart = FALSE, ...) { if (missing(nbatch)) nbatch <- o$nbatch if (missing(blen)) blen <- o$blen if (missing(nspac)) nspac <- o$nspac if (missing(scale)) scale <- o$scale if (missing(outfun)) outfun <- o$outfun if (restart) { .Random.seed <- o$final.seed return(metrop.function(o$lud, o$final, nbatch, blen, nspac, scale, outfun)) } else { .Random.seed <- o$initial.seed return(metrop.function(o$lud, o$initial, nbatch, blen, nspac, scale, outfun)) } } metrop.function <- function(o, initial, nbatch, blen = 1, nspac = 1, scale = 1, outfun, restart = FALSE, ...) { if (! exists(".Random.seed")) runif(1) initial.seed <- .Random.seed func1 <- function(state) o(state, ...) func2 <- function(state) outfun(state, ...) .Call("metrop", func1, initial, nbatch, blen, nspac, scale, func2, environment(fun = func1), environment(fun = func2)) } \end{verbatim} Note that \verb@restart@ is ignored in \verb@metrop.function@. We can't ``restart'' when we have no saved state in an \verb@"mcmc"@ object. Note also that our \verb@"mcmc"@ objects must now store a lot more stuff (and more to come in the next section). \subsection{Testing and Debugging} It is nearly impossible to test or debug a random algorithm (any Monte Carlo) from looking at its designed (useful to the user) output. In order to do any serious testing or debugging, it is necessary to look under the hood. For the Metropolis algorithm, we need to look at the current state, the proposal, the log odds ratio, the uniform random variate (if any) used in the Metropolis rejection, and the result (accept or reject) of the Metropolis rejection. Hence we need to add one final argument \verb@debug = FALSE@ to our functions and a lot of debugging output to the result. In debugging a Metropolis (etc.)\ algorithm there is a very important principle. Debugging should use Markov chain theory! Just enlarge the state space of the Markov chain to include \begin{itemize} \item the proposal (vector), \item details of the calculation of the Metropolis-Hastings-Green ratio (for Metropolis this is just the log unnormalized density at the current state and proposal, for others it includes proposal densities) and the calculated ratio, \item the uniform random number (if any) used in the decision, and \item the decision (\verb@TRUE@ or \verb@FALSE@) in the Metropolis rejection. \end{itemize} With all that it is easy to tell whether the algorithm is doing the Right Thing. Without all that, it's nearly impossible. \end{document} mcmc/inst/designDoc/Makefile0000644000176200001440000000031414525055000015477 0ustar liggesusers all : metrop.pdf temper.pdf clean metrop.pdf : metrop.tex pdflatex metrop.tex pdflatex metrop.tex temper.pdf : temper.tex pdflatex temper.tex pdflatex temper.tex clean : rm -f *.dvi *.aux *.log