[Rsiena-commits] r185 - in pkg: RSiena RSiena/R RSiena/inst/doc RSiena/man RSiena/src RSiena/src/model RSiena/src/model/ml RSiena/src/model/tables RSienaTest RSienaTest/R RSienaTest/doc RSienaTest/inst/doc RSienaTest/inst/examples RSienaTest/man RSienaTest/src RSienaTest/src/model RSienaTest/src/model/ml RSienaTest/src/model/tables
noreply at r-forge.r-project.org
noreply at r-forge.r-project.org
Sun Nov 27 17:23:02 CET 2011
Author: ripleyrm
Date: 2011-11-27 17:23:01 +0100 (Sun, 27 Nov 2011)
New Revision: 185
Modified:
pkg/RSiena/DESCRIPTION
pkg/RSiena/R/bayes.r
pkg/RSiena/R/robmon.r
pkg/RSiena/changeLog
pkg/RSiena/inst/doc/RSiena_Manual.pdf
pkg/RSiena/man/RSiena-package.Rd
pkg/RSiena/src/model/Model.cpp
pkg/RSiena/src/model/Model.h
pkg/RSiena/src/model/ml/Chain.cpp
pkg/RSiena/src/model/ml/Chain.h
pkg/RSiena/src/model/ml/MLSimulation.cpp
pkg/RSiena/src/model/ml/MLSimulation.h
pkg/RSiena/src/model/tables/Cache.cpp
pkg/RSiena/src/model/tables/Cache.h
pkg/RSiena/src/siena07models.cpp
pkg/RSiena/src/siena07setup.cpp
pkg/RSiena/src/siena07utilities.cpp
pkg/RSienaTest/DESCRIPTION
pkg/RSienaTest/R/bayes.r
pkg/RSienaTest/R/robmon.r
pkg/RSienaTest/changeLog
pkg/RSienaTest/doc/RSiena_Manual.tex
pkg/RSienaTest/inst/doc/RSiena_Manual.pdf
pkg/RSienaTest/inst/examples/algorithms.r
pkg/RSienaTest/inst/examples/runalg.r
pkg/RSienaTest/man/RSiena-package.Rd
pkg/RSienaTest/src/model/Model.cpp
pkg/RSienaTest/src/model/Model.h
pkg/RSienaTest/src/model/ml/Chain.cpp
pkg/RSienaTest/src/model/ml/Chain.h
pkg/RSienaTest/src/model/ml/MLSimulation.cpp
pkg/RSienaTest/src/model/ml/MLSimulation.h
pkg/RSienaTest/src/model/tables/Cache.cpp
pkg/RSienaTest/src/model/tables/Cache.h
pkg/RSienaTest/src/siena07models.cpp
pkg/RSienaTest/src/siena07setup.cpp
pkg/RSienaTest/src/siena07utilities.cpp
Log:
Memory leaks in ML, minor changes to ML and Bayes.
Modified: pkg/RSiena/DESCRIPTION
===================================================================
--- pkg/RSiena/DESCRIPTION 2011-11-14 18:30:31 UTC (rev 184)
+++ pkg/RSiena/DESCRIPTION 2011-11-27 16:23:01 UTC (rev 185)
@@ -1,8 +1,8 @@
Package: RSiena
Type: Package
Title: Siena - Simulation Investigation for Empirical Network Analysis
-Version: 1.0.12.184
-Date: 2011-11-14
+Version: 1.0.12.185
+Date: 2011-11-27
Author: Various
Depends: R (>= 2.10.0)
Imports: Matrix
Modified: pkg/RSiena/R/bayes.r
===================================================================
--- pkg/RSiena/R/bayes.r 2011-11-14 18:30:31 UTC (rev 184)
+++ pkg/RSiena/R/bayes.r 2011-11-27 16:23:01 UTC (rev 185)
@@ -5,7 +5,8 @@
## *
## * File: bayes.r
## *
-## * Description: This file contains the code to run Bayesian simulation
+## * Description: This file contains the code to run Bayesian simulation.
+## * Many functions are defined within others to reduce copying of objects.
## *
## ****************************************************************************/
##@bayes Bayesian fit a Bayesian model
@@ -14,21 +15,20 @@
priorSigma=NULL, prevAns=NULL, getDocumentation=FALSE)
{
##@createStores internal bayes Bayesian set up stores
- createStores <- function(z)
+ createStores <- function()
{
npar <- length(z$theta)
numberRows <- nmain * nrunMHBatches
- z$posteriorTot <- matrix(0, nrow=z$nGroup, ncol=npar)
- z$posteriorMII <- array(0, dim=c(z$nGroup, npar, npar))
- z$candidates <- array(NA, dim=c(numberRows, z$nGroup, npar))
- z$acceptances <- matrix(NA, nrow=z$nGroup, ncol=numberRows)
- z$MHacceptances <- array(NA, dim=c(numberRows, z$nGroup,
+ z$posteriorTot <<- matrix(0, nrow=z$nGroup, ncol=npar)
+ z$posteriorMII <<- array(0, dim=c(z$nGroup, npar, npar))
+ z$candidates <<- array(NA, dim=c(numberRows, z$nGroup, npar))
+ z$acceptances <<- matrix(NA, nrow=z$nGroup, ncol=numberRows)
+ z$MHacceptances <<- array(NA, dim=c(numberRows, z$nGroup,
z$nDependentVariables, 9))
- z$MHrejections <- array(NA, dim=c(numberRows, z$nGroup,
+ z$MHrejections <<- array(NA, dim=c(numberRows, z$nGroup,
z$nDependentVariables, 9))
- z$MHproportions <- array(NA, dim=c(numberRows, z$nGroup,
+ z$MHproportions <<- array(NA, dim=c(numberRows, z$nGroup,
z$nDependentVariables, 9))
- z
}
##@storeData internal bayes Bayesian put data in stores
storeData <- function()
@@ -37,26 +37,26 @@
nrun <- nrow(z$parameters)
npar <- length(z$theta)
end <- start + nrun - 1
- z$acceptances[, start:end] <- z$accepts
- z$candidates[start:end,, ] <- z$parameters
- z$posteriorTot <- z$posteriorTot + colSums(z$parameters)
+ z$acceptances[, start:end] <<- z$accepts
+ z$candidates[start:end,, ] <<- z$parameters
+ z$posteriorTot <<- z$posteriorTot + colSums(z$parameters)
for (group in 1:z$nGroup)
{
for (i in npar)
{
- z$posteriorMII[group, , ] <- z$posteriorMII[group, ,] +
+ z$posteriorMII[group, , ] <<- z$posteriorMII[group, ,] +
outer(z$parameters[i, group, ], z$parameters[i, group,])
}
}
- z$MHacceptances[start:end, , , ] <- z$MHaccepts
- z$MHrejections[start:end, , , ] <- z$MHrejects
- z$MHproportions[start:end, , , ] <- z$MHaccepts /
+ z$MHacceptances[start:end, , , ] <<- z$MHaccepts
+ z$MHrejections[start:end, , , ] <<- z$MHrejects
+ z$MHproportions[start:end, , , ] <<- z$MHaccepts /
(z$MHaccepts + z$MHrejects)
- z$sub <- z$sub + nrun
- z
+ z$sub <<- z$sub + nrun
+
}
##@improveMH internal bayes Bayesian find scale factors
- improveMH <- function(z, x, tiny=1.0e-15, desired=40, maxiter=100,
+ improveMH <- function(tiny=1.0e-15, desired=40, maxiter=100,
tolerance=15, getDocumentation=FALSE)
{
##@rescaleCGD internal improveMH Bayesian
@@ -81,11 +81,11 @@
repeat
{
iter <- iter + 1
- z <- MCMCcycle(z, nrunMH=1, nrunMHBatches=100, change=FALSE)
+ MCMCcycle(nrunMH=1, nrunMHBatches=100, change=FALSE)
actual <- z$BayesAcceptances ## acceptances
ans <- rescaleCGD(100)
update <- number < 3
- z$scaleFactors[update] <- z$scaleFactors[update] * ans[update]
+ z$scaleFactors[update] <<- z$scaleFactors[update] * ans[update]
cat(actual, ans, z$scaleFactors, '\n')
if (all(success) | iter == maxiter)
{
@@ -99,8 +99,116 @@
}
cat('fine tuning took ', iter, ' iterations. Scalefactor:',
z$scaleFactors, '\n')
- z
+
}
+ ##@MCMCcycle algorithms do some loops of (MH steps and sample parameters)
+ MCMCcycle <- function(nrunMH, nrunMHBatches, change=TRUE)
+ {
+ z$accepts <<- matrix(NA, nrow=z$nGroup, nrunMHBatches)
+ z$parameters <<- array(NA, dim=c(nrunMHBatches, z$nGroup, z$pp))
+ z$MHaccepts <<- array(NA, dim=c(nrunMHBatches, z$nGroup,
+ z$nDependentVariables, 9))
+ z$MHrejects <<- array(NA, dim=c(nrunMHBatches, z$nGroup,
+ z$nDependentVariables, 9))
+ z$MHaborts <<- array(NA, dim=c(nrunMHBatches, z$nGroup,
+ z$nDependentVariables, 9))
+ storeNrunMH <- z$nrunMH
+ z$nrunMH <<- nrunMH
+ for (i in 1:nrunMHBatches)
+ {
+ # c1 <- proc.time()[1]
+ ans <- z$FRAN(z, returnChains=TRUE, byGroup=TRUE)
+ # c2 <- proc.time()[1]
+ # cat ('fran',c2-c1,'\n')
+ z$chain <<- ans$chain
+ # c1 <- proc.time()[1]
+ sampleParameters(change)
+ # c2 <- proc.time()[1]
+ # cat ('sam',c2-c1,'\n')
+ z$accepts[, i] <<- z$accept
+ z$parameters[i, , ] <<- z$thetaMat
+ z$MHaccepts[i, , , ] <<-
+ t(do.call(cbind,
+ tapply(ans$accepts, factor(z$callGrid[, 1]),
+ function(x)Reduce("+", x))))
+ z$MHrejects[i, , , ] <<-
+ t(do.call(cbind, tapply(ans$rejects, factor(z$callGrid[, 1]),
+ function(x)Reduce("+", x))))
+ z$MHaborts[i, , , ] <<- t(do.call(cbind,
+ tapply(ans$aborts,
+ factor(z$callGrid[, 1]),
+ function(x)Reduce("+", x))))
+ }
+ z$BayesAcceptances <<- rowSums(z$accepts)
+ z$nrunMH <<- storeNrunMH
+
+ }
+ ##@sampleParameters algorithms propose new parameters and accept them or not
+ sampleParameters <- function(change=TRUE)
+ {
+ ## get a multivariate normal with covariance matrix dfra multiplied by a
+ ## scale factor which varies between groups
+ require(MASS)
+ thetaChanges <- t(sapply(1:z$nGroup, function(i)
+ {
+ tmp <- z$thetaMat[i, ]
+ use <- !is.na(z$thetaMat[i, ])
+ tmp[use] <-
+ mvrnorm(1, mu=rep(0, sum(use)),
+ Sigma=z$scaleFactors[i] *
+ z$dfra[use, use])
+ tmp
+ }
+ ))
+
+ thetaOld <- z$thetaMat
+ thetaOld[, z$basicRate] <- log(thetaOld[, z$basicRate])
+ thetaNew <- thetaOld + thetaChanges
+
+ priorOld <- sapply(1:z$nGroup, function(i)
+ {
+ tmp <- thetaOld[i, ]
+ use <- !is.na(tmp)
+ dmvnorm(tmp[use], mean=rep(0, sum(use)),
+ sigma=z$priorSigma[use, use])
+ }
+ )
+ priorNew <- sapply(1:z$nGroup, function(i)
+ {
+ tmp <- thetaNew[i, ]
+ use <- !is.na(tmp)
+ dmvnorm(tmp[use], mean=rep(0, sum(use)),
+ sigma=z$priorSigma[use, use])
+ }
+ )
+ logpOld <- getProbs(z, z$chain)
+
+ storeNrunMH <- z$nrunMH
+ z$nrunMH <<- 0
+ thetaNew[, z$basicRate] <- exp(thetaNew[, z$basicRate])
+ z$thetaMat <<- thetaNew
+ resp <- z$FRAN(z, returnChains=TRUE, byGroup=TRUE)
+ logpNew <- getProbs(z, resp$chain)
+
+ proposalProbability <- priorNew - priorOld + logpNew - logpOld
+
+ z$accept <<- log(runif(length(proposalProbability))) < proposalProbability
+ thetaOld[, z$basicRate] <- exp(thetaOld[, z$basicRate])
+ if (!change)
+ {
+ z$thetaMat <<- thetaOld
+ }
+ else
+ {
+ ##print(z$thetaMat)
+ z$thetaMat[!z$accept, ] <<- thetaOld[!z$accept, ]
+ }
+ z$nrunMH <<- storeNrunMH
+ ## cat(thetaNew, priorNew, priorOld, logpNew, logpOld,
+ ## exp(proposalProbability),
+ ## z$accept,'\n')
+
+ }
## ################################
## start of function proper
## ################################
@@ -123,10 +231,11 @@
return(do.call(getDocumentation[1], targs))
}
}
+ ctime <- proc.time()[1]
z <- initializeBayes(data, effects, model, nbrNodes, priorSigma,
prevAns=prevAns)
- z <- createStores(z)
+ createStores()
z$sub <- 0
@@ -147,14 +256,17 @@
diag(z$dfra)[z$basicRate] <- lambda *
diag(dfra)[z$basicRate] + lambda * lambda *
colMeans(z$sf)[z$basicRate]
- print(z$dfra)
+ # print(z$dfra)
z$dfra <- solve(z$dfra)
- print(z$dfra)
+ # print(z$dfra)
+ }
+ ctime1 <- proc.time()[1]
+ cat(ctime1-ctime,'\n')
+ improveMH()
+ ctime2<- proc.time()[1]
+ cat('improvMh', ctime2-ctime1,'\n')
- }
- z <- improveMH(z)
-
if (plotit)
{
require(lattice)
@@ -170,14 +282,20 @@
for (ii in 1:nwarm)
{
- z <- MCMCcycle(z, nrunMH=4, nrunMHBatches=20)
+ MCMCcycle(nrunMH=4, nrunMHBatches=20)
}
+ print('endof warm')
+ ctime3<- proc.time()[1]
+
+ cat('warm', ctime3-ctime2,'\n')
for (ii in 1:nmain)
{
- z <- MCMCcycle(z, nrunMH=z$nrunMH, nrunMHBatches=nrunMHBatches)
- z <- storeData()
-
+ MCMCcycle(nrunMH=z$nrunMH, nrunMHBatches=nrunMHBatches)
+ storeData()
+ ctime4<- proc.time()[1]
+ cat('main', ii, ctime4-ctime3,'\n')
+ ctime3 <- ctime4
if (ii %% 10 == 0 && plotit) ## do some plots
{
cat('main after ii', ii, '\n')
@@ -259,109 +377,7 @@
z$FRAN <- NULL
z
}
-##@MCMCcycle algorithms do some loops of (MH steps and sample parameters)
-MCMCcycle <- function(z, nrunMH, nrunMHBatches, change=TRUE)
-{
- z$accepts <- matrix(NA, nrow=z$nGroup, nrunMHBatches)
- z$parameters <- array(NA, dim=c(nrunMHBatches, z$nGroup, z$pp))
- z$MHaccepts <- array(NA, dim=c(nrunMHBatches, z$nGroup,
- z$nDependentVariables, 9))
- z$MHrejects <- array(NA, dim=c(nrunMHBatches, z$nGroup,
- z$nDependentVariables, 9))
- z$MHaborts <- array(NA, dim=c(nrunMHBatches, z$nGroup,
- z$nDependentVariables, 9))
- storeNrunMH <- z$nrunMH
- z$nrunMH <- nrunMH
- for (i in 1:nrunMHBatches)
- {
- ans <- z$FRAN(z, returnChains=TRUE, byGroup=TRUE)
- z$chain <- ans$chain
- z <- sampleParameters(z, change)
- z$accepts[, i] <- z$accept
- z$parameters[i, , ] <- z$thetaMat
- z$MHaccepts[i, , , ] <-
- t(do.call(cbind,
- tapply(ans$accepts, factor(z$callGrid[, 1]),
- function(x)Reduce("+", x))))
- z$MHrejects[i, , , ] <-
- t(do.call(cbind, tapply(ans$rejects, factor(z$callGrid[, 1]),
- function(x)Reduce("+", x))))
- z$MHaborts[i, , , ] <- t(do.call(cbind,
- tapply(ans$aborts,
- factor(z$callGrid[, 1]),
- function(x)Reduce("+", x))))
- }
- z$BayesAcceptances <- rowSums(z$accepts)
- z$nrunMH <- storeNrunMH
- z
-}
-##@sampleParameters algorithms propose new parameters and accept them or not
-sampleParameters <- function(z, change=TRUE)
-{
- ## get a multivariate normal with covariance matrix dfra multiplied by a
- ## scale factor which varies between groups
- require(MASS)
- thetaChanges <- t(sapply(1:z$nGroup, function(i)
- {
- tmp <- z$thetaMat[i, ]
- use <- !is.na(z$thetaMat[i, ])
- tmp[use] <-
- mvrnorm(1, mu=rep(0, sum(use)),
- Sigma=z$scaleFactors[i] *
- z$dfra[use, use])
- tmp
- }
- ))
- thetaOld <- z$thetaMat
- thetaOld[, z$basicRate] <- log(thetaOld[, z$basicRate])
- thetaNew <- thetaOld + thetaChanges
-
- priorOld <- sapply(1:z$nGroup, function(i)
- {
- tmp <- thetaOld[i, ]
- use <- !is.na(tmp)
- dmvnorm(tmp[use], mean=rep(0, sum(use)),
- sigma=z$priorSigma[use, use])
- }
- )
- priorNew <- sapply(1:z$nGroup, function(i)
- {
- tmp <- thetaNew[i, ]
- use <- !is.na(tmp)
- dmvnorm(tmp[use], mean=rep(0, sum(use)),
- sigma=z$priorSigma[use, use])
- }
- )
- logpOld <- getProbs(z, z$chain)
-
- storeNrunMH <- z$nrunMH
- z$nrunMH <- 0
- thetaNew[, z$basicRate] <- exp(thetaNew[, z$basicRate])
- z$thetaMat <- thetaNew
- resp <- z$FRAN(z, returnChains=TRUE, byGroup=TRUE)
- logpNew <- getProbs(z, resp$chain)
-
- proposalProbability <- priorNew - priorOld + logpNew - logpOld
-
- z$accept <- log(runif(length(proposalProbability))) < proposalProbability
- thetaOld[, z$basicRate] <- exp(thetaOld[, z$basicRate])
- if (!change)
- {
- z$thetaMat <- thetaOld
- }
- else
- {
- ##print(z$thetaMat)
- z$thetaMat[!z$accept, ] <- thetaOld[!z$accept, ]
- }
- z$nrunMH <- storeNrunMH
- ## cat(thetaNew, priorNew, priorOld, logpNew, logpOld,
- ## exp(proposalProbability),
- ## z$accept,'\n')
- z
-}
-
##@initializeBayes algorithms do set up for Bayesian model
initializeBayes <- function(data, effects, model, nbrNodes, priorSigma,
prevAns)
@@ -394,8 +410,7 @@
set.seed(newseed) ## get R to create a random number seed for me.
##seed <- NULL
}
- z$FRAN <- getFromNamespace(model$FRANname, pos=grep("RSiena",
- search())[1])
+ z$FRAN <- getFromNamespace(model$FRANname, pkgname)
z <- z$FRAN(z, model, INIT=TRUE, data=data, effects=effects,
prevAns=prevAns)
is.batch(TRUE)
@@ -404,18 +419,17 @@
if (nbrNodes > 1)
{
- require(snow)
- require(rlecuyer)
+ require(parallel)
clusterString <- rep("localhost", nbrNodes)
- z$cl <- makeCluster(clusterString, type = "SOCK",
+ z$cl <- makeCluster(clusterString, type = "PSOCK",
outfile = "cluster.out")
clusterCall(z$cl, library, pkgname, character.only = TRUE)
clusterCall(z$cl, storeinFRANstore, FRANstore())
clusterCall(z$cl, FRANstore)
clusterCall(z$cl, initializeFRAN, z, model,
initC = TRUE, profileData=FALSE, returnDeps=FALSE)
- clusterSetupRNG(z$cl,
- seed = as.integer(runif(6, max=.Machine$integer.max)))
+ clusterSetRNGStream(z$cl,
+ iseed = as.integer(runif(1, max=.Machine$integer.max)))
}
z$scaleFactors <- rep(1, z$nGroup)
Modified: pkg/RSiena/R/robmon.r
===================================================================
--- pkg/RSiena/R/robmon.r 2011-11-14 18:30:31 UTC (rev 184)
+++ pkg/RSiena/R/robmon.r 2011-11-27 16:23:01 UTC (rev 185)
@@ -37,7 +37,7 @@
#######################################################
if (!is.function(x$FRAN))
{
- x$FRAN <- getFromNamespace(x$FRANname, pos=grep("RSiena", search())[1])
+ x$FRAN <- getFromNamespace(x$FRANname, pkgname)
}
z <- x$FRAN(z, x, INIT=TRUE, initC=FALSE, ...)
if (z$maxlike && !is.batch())
Modified: pkg/RSiena/changeLog
===================================================================
--- pkg/RSiena/changeLog 2011-11-14 18:30:31 UTC (rev 184)
+++ pkg/RSiena/changeLog 2011-11-27 16:23:01 UTC (rev 185)
@@ -1,3 +1,21 @@
+2011-11-27 R-forge revision 185.
+
+ * R/robmon.r, inst/examples/algorithms.r, inst/examples/runalg.r:
+ minor changes to paths. Added parallel package to algorithm code
+ (RSienaTest only for the algorithm code)
+ * R/bayes.r: made functions internal to reduce copying. Replaced snow
+ and Rlecuyer by parallel (non optionally)
+ * src/model/ml/Chain.cpp, src/model/ml/MLSimulation.cpp,
+ src/model/model.cpp: remove memory leaks.
+ * src/siena07models.cpp: Ensure end state is on stored chain. Fix
+ protection imbalance.
+ * src/siena07utilities.cpp: correct copy of initial state to sub
+ processes.
+ * src/siena07setup.cpp: remove print of probabilities at start.
+ * src/model/ml/Chain.h, src/model/MLSimulation.h,
+ src/model/Model.h, src/model/tables/Cache.cpp,
+ src/model/tables/Cache.h: altered comments only
+
2011-11-14 R-forge revision 184.
* src/model/StatisticCalculator.cpp: fix memory leaks in network and
Modified: pkg/RSiena/inst/doc/RSiena_Manual.pdf
===================================================================
--- pkg/RSiena/inst/doc/RSiena_Manual.pdf 2011-11-14 18:30:31 UTC (rev 184)
+++ pkg/RSiena/inst/doc/RSiena_Manual.pdf 2011-11-27 16:23:01 UTC (rev 185)
@@ -44,15 +44,15 @@
/Filter /FlateDecode
>>
stream
-xÚVMsÛ6½ëWðÎ $ØÄIÓ»©¥ PóC%);ú÷Ý@EÕɸÓñ
ÅÃÛÅÛ]²h±èãýà÷íböæ/"!i¡
--"ÁrÊ$òQ-ÖÑr«Xäd¯«8I mÿ¹øNªÓç4%æOÝÏi´7,â¦2hä%ÍEM9æûaðpÏ-ÅßÜÛ]e%fx@ÀX-b%H[{ÛkúúÓóÆþµ6]ïÎIªøÙ±Ï1ë}e;ð¹3+«×íw¦YærH©ª¢yy?û(pppðHíÿýíDhýSÈ4#ïÍNwCm4N
-2ô`cNú8á°Ç]õ?û»ýWÆsSýwmUqNqeW%ÍÒÒSºkÞ³ªc¡È2NCÆåÇsy¡Åà ¼xÑ(JP SѪý=KݦÿïFë°ðæCÍ£÷íìwø;ÇM99v½àÈBiI*áù×Ë~èôj¸H Ä @Âóàá®(WA`óO7w×þÕq
-Ìø(Ú¯,cGyO at yI"ØÍm½¯àñÚâ*sò©y2ý`7Ç¥²ß¡óû7õÎvvå2¦wÆéæ-¼Ù£ß¸ntuèmÿ§ ¢¥8áÉý °u×i?]µõn?pí®k@B )*Ô{M§1TNüh¥»ÎUi÷øoü GɧÞX@·ëÑm<òà×ë¨ÈTmPÞ×9`§¨æÉE¢Ú8!GÀ¸o!E+ç .\l0*D²{D½ZAÚfã§C~ñ>I²>4º¶«Ñxh»¤¯DÌÚ¯ÊÏe%¹ð_ʨÛD/Öî?΢/îªÓzt¬ÛËÚ^ Ìø¹z=±²s ÕëÁ
-æ¼L.½s=IR]ÑóXàöEqÙ'!ݬ_ë29¾£ëigÿ/mÎô%ÞвÅÖÙ@Â'
-,ÔÚiÔ·bظ\«RÎ(ë.tâIIQ´àÇö¼
¼+¶¾n¤ÐøÔÉ£ê
-³2-ðAÛ,]¾?Qõr
-z*
ô_«²Û«Øm]q plgPà]ÑûZ¹]î]úââN;?ã° ¬ÀÛÓz~ú7D DuûÜs*Ócìñ«DJxR¼O¦þð0÷å[¥îqú°`tWY_ÒåT0¿¬ ÁMÕºd at N¯|Á4ráÙa4\Û¦ý%ÉÁ³NúËä] }e)yîì0æûǤÄÒ©0_«[íZ%¬þ²·=X"I¦È-ª¶ [mÂGê<¨Ø7ø²Íø]nnLN*q^¸Þm;Ô
Fi
-jfS
Ì)ä[ÉJÿò=<bZ±á[ë `Ôx
+xÚVMsÛ6½ëWðÎ $ØÄIÓ»©¥ PóC%);ú÷]`AEÕɸÓÑÅÃÛÅÛX´XôqÆ~ð}»½ùÀHHZ¨GH°2É£<gTFuô
Üê&9Ùë*NR&ÈCÛÅ.~
êt%ç9Íaáªû¹5FCÉ".i*sἤ¹(" £)çÁ|?lö¹¥î[{»«ÌÁD¢[ `¬±¤Ñö¾¥¸zÞØ¿Ö¦ëý:I?[ö9s½¯,pó>wfeõºýÎÓ2Ë)
+¨*gBüÑØ'»ØÁ5Ô>à÷·o¡õOq"Ó¼7;Ý
+µiápjXù sÒÇ 9Nìªÿ§îö_ÏMµÆïÚª2ãâÊ2¯J¥%Rºk<²ªc¡È2N<CDÅâƹy¡ÅC¼xÑ(JP SѪý=Ký$þûÑ:¼ùPóè};û~çØ£i2"''Ð^ ·|¹W`òPNZJ8>ïàõ²:½. qð<xØ+ÊUØüÓÍÝ5²:1NáEûeì(ï (/© Q»¹÷^Û@\eN>5O¦ìæ8T@¸sèpþ¦ÞÙή|A÷ÎxÝ<;4{ÄëFWÞö/y
+ ZWßNcwÕÖ»ý`¶»®M04+R§hPw(N»üQ9¶zÀÖJw5T¤Ýã¼ÁFï$¢+0àÜ®G·Ý¯[P "kPµqò®PçÎÄxj|$ªýrûÖ+R´ò°àBÈÅÆER
Hv°È2¢W+È@Ûl°;´áëö$ëC£k»¶KZðºq(Yãøè©°¼ø(+¡È
)£n½»ÿ8¾øNëÑQ°~.ój{%&d0ãgXäêõÄ29Y½¬`ÞËäÒùx×´ÈqR*r¢+z7ýcQ\vÁKH7ë×úâOÌÓEÚÙÿK3}7\aYÁÉbkCÌl µöÅ«&.ת3Êa»7ñ¤¤(ZðcI A{ÞB^À[¬)\|
+êÅäPuå²2-ðq¶ì,}¾ì@¨Ìú9w*
ô_«²Ý¯î¶õÅÀ%
ïÛ«ÅÌíìrïÓ×
+î´÷ã1Î@ Àj¼1 ÐÖ37pè¸B_ò4¨NBqÿ{Nez½{H Gêö)`úX¾%YêÞ&^ iàFwÅ.§
+þe.hª~dÐÔå rz
K#?ZcÀµmúp¿d 98ÖÉý29Àu¾²<wvLóý1éá
+béÔEè/GÕöW%þ²·=X:L[§Úlµ ÔyP1^ð²Íø.rnnLV*q^¸Þm;§íh¦)<Õ̦
+1-.¦o%+ñì.ZÈ÷RòiÅ·Ö?/¡Ô|
endstream
endobj
449 0 obj <<
@@ -406,21 +406,21 @@
/Filter /FlateDecode
>>
stream
-xÚXYoG~ׯ7±Ý×\~Þ],¼¶°Apl
-
-g9¬hýVuõtKJ @ÓwýÕWÕäÉ>áÉÏ7<|¸»yû^«DVeLîvIY1Îˤà 'wÛä·T2¹Z!³ôCÓ¦®ÍàÚfµ¹JM³ÅL»±i\³§Ñá`©±ïÌéà6¦¦îØÛZ®Y)¶ÛMX;6Ûiö×lÛéc¿úýî³Âoßà¬â@e
bJ©d-9Ë*MÊ
-v±#ùmq>)S`±\¢&u ýöO´äRg²RÓ/<ãǶ@ÓªL;»±ÍJièöízp,eÖìüw;X&¬t;ü0âz©ÙæÐÒ×ø³hå©kïk{KÚ¾¶ÇûèocÖxs¬ÁW®^4²ªªÉÈ)Êß/~ejÿlÓ;2¦jNÀÉvG#_wuÈõMþa%Ôn©;«ûú ô°©Ûà²M°Ý´t¢qMPjb`¯%`)ï̶>Áj¥ÒzJ)
-ÇÁ)íè^¸äó`º!æ@Y<^BGÁ¸Î§·¨ N75ZS¦ÔýãÀËçq¹Ù<øÏÞöA:cºaèXnÉ!|ù,g
-¿õ´°î=d¯ÓÙ,`©,ýuUÔ{tt¬Jï%A{<
-pûþ¢d©/ËKß#ØU!ÒÞÖv3PÛà§GD«î:0³À 汩[³E
²"½#_ÀÆ7Îçqb$Ü6ÓÍdÙÂÑ×w.YQÉÚ?qq,âê|÷£
-&\;x=íÝCäT
÷¬ÿú©X9>ïÄÓ¬*^<m*ÍJ Ð[éòoÌnÉ´\h×êóeÎòbߧÏÎ6&¦¥`Z/àç{¦
í:'`gÆv !ùÌÍÿ¹Ó¦¶4° dPHV5E q\×õÔLóÙõ^£oJ®ö ñ2I|Ç ¿q{O1 ¸d\TWÞv} ܯB;%n1pL¢QDÉJ¡¾tܽô9Îifá-ÖrÔçjOÒÄ.te$QÈKòÓ²"fÂ@O¢×76Q~Í9SWð`(ú{ikq¦óKGsÝp ª§(ª7 öÔ9L~ì ¸Úgñxïm·!Q¸æâ8\@9ZJí4ò3aO©;EjÁ8:ö¾BÂ&U8_=
-ü²© ë=µÃØÞÔðY¾6Ð ,j¤m
-ëò»£ë0øH¡{Bùµ rÕr D`ûÌ9±&Ü'^·æhjáMÅæÅWw® U(w°u¿XÚ¹ýÏÖsêô®¢Q¼+Y7Ár1×4ëb *DTÎÔU6¢,DWÿõÓØLõ4b¶G×Àmufh»7Wå&
L*Ï@¹P?GKR_4³ÿ°ãÂL%VB>9Âa<(aY*01Ñ¡GP~Ez8'=)+&ý÷ÈÙ8å$²±%4Ò.@5¹p©ñuî½
-EÎYQèØ5Dµ®XUÏN ÀÛÏç,Ég §t¤Âõñ×9ÛÇK¡¡
-(ªËx^3à§báÎõ$ìcµRLó2f<-¦ú^Zs$¢Dr ÔäÀb8êàG@³æWeæ°¦íÈíeÅpÏ`
- ¬¢¦¢y¡9¢×d½¢c¦!ñP¯a£dôH/&ñ;Ó´1lÛñ)¸¤¸pè¡íÍt÷´°9ÀåÞtäUpjê©(^
-¸ÚÓáÚ¨£~üájebÁò;e>5κ«éý}ñäw|ýù/dPþv,øVô¾í¸÷`½½þ§ÛM=ôK¥l*HG^ÄÀW·4¶Çg#dWÏ£YÈ®ùÌ<ýpm×¼¡¦\[ca¯3þh<µ
ñÚ#:áÍó:½5]xMðßèðÌ/täCÒynUB±ÙØëÚÀ
|paòëÈ¢ø<bÎEG¼N|ª!fÏåöáoÎ\UKs`ùó
-~ù» ðùLTj§gÓs?ˬ%ðÈ.³`µûÎGoiTþsçZlçâçÑaúZö%m"¹êr~Îs ÌÆ:\Io§²2ô7µµ£7&aÞOÏÓ6$3äCüÿ,{ÿD-pã{·;ûWWWò«ý®¿?ÝÝ ÿÓ§ÿDÁá[%ãÍ7Pr2×~Ųí'˶ÒÏc~ðí£L~loþéüu°^Hð¿A^¾.á!ón^ÃKº±à²ùfË,¥ðC?¨ô'*º'òûgºªåm_C¤(UQ-à£ÿ]vA
+xÚXmo7þî_±ß²,oûE"wC.1®(¡%J"¼ÚU÷%®ï×ß»Z)´Ý¯3Ãá3ÏÅ}Âoxøþpwóö½V¬Ê2Üí²bIÁ5*Oî¶Éo©drµBfé¦L]ÁµÍj-sf
+vcÓ¸fO£ÃÁRcßÓÁmLMݱ·µ\³R2l·3°vl¶Óì/®Ù¶+%ÒÇ~õûÝ?fß¾/ÁYÅ+Æ
+ÅRÉZrUìbGòÛ:ã|2§àÄr)DLêûíhÉ¥Îd¥¦_xÆm?¥Uvvc,ÓÐÿmÛõà XƬ5óßí`i~8°Òíð[Àëi¤¶fCK_ãe?ÑÊS×Þ×ö´}ÿm÷ÑßÆNêYÎE²_eºzñUUM<ТüýâW¦öÏÁ6½£ãÑTíÐ 8Ùîhä뮳`ù£~¢IÓ?¬dÚ-ugsßPÿ V"u\v Ñ£ çF±$×£¶ ¶ð*GÆûCfá¶>Áj¥ÒzJ)
+â@J;zÀA/\òy0Ýs ,/¡£`\çÓ[4P§OS¦ÔûãÀËçq¹Ù<øÏÞöE:cºaè
C¬·ÄÕä¾|Ö3ßzZ(DX÷²EWélV°ÎTþº*AëHÂUé= 3 D#h§nß_,5ãeyé{»*DÚÛÚnjüðôèppÕ]çofvSÔ<6uk¶hPV¤wäØØãÆY'FÂ]pfº,[8úúÎ%+J1öÏÁ@ÜE"¦¸:ß}DTÁD1Kco²Ç!¢½{HUxÏú¯KíàãñNLfUñ¢´µª4+@/n¥oÈ¿±sK¦åÂB¼VÈ/s3ü>}v¶11+Óz/ïn´Cê,cØä34ÿçN'ÚÒÀq@!YEÌ%Äq!^·S3Íg×{¾y(¹ÚÄë$UðUþÆí=ÅâqQ]yÛ
+ö8p¿RdUì`¸ÅdÂ1FO JV
+õ] ãîE ÏqN3;Ol´ÆS¤>Wãx&¾p¡ë(#B at f\1J ;!k^ßØDù5çL]Á¡êïµUÆÎ/ióèQ=E9P½ i´§ÎaðcHÀÕ>«GÄ{v
k.Ä©àlÌÑRj¤ ³|J5Ø)RÆѱ÷6©ÂÁøêià¿MMXï©Æöv ÏÂðµaQ4mmãlXß]N Äк'Ô1 W- 'ràAt ¶Ï¬kÂ}âukG-üQQÀ£ØñæãnÓµ#¢
+å¶îK;·? a=§Nï*ÚŻҹx±p,sMã°ðU!¢r¦®²e!º(¸ú¯Æ&`ª§³=ºn«3CÛ½¹*7Q2©>ãBý-I}Ñ$ÎþÃ'
+3X ùä3ð d=ªÀÄDAùéá|ô¤¬,ôß#g_âFÈÆtBÐJ» !hÖäÂ¥Å×¹÷6:gE¡c×µºbyV=[8o?O³$µÒY
+×Ç_çl/y* ¨..ñ¼eÀOÅÂëiØÇj¥8çeÌxZLõ¼´æHDä@©ÉÅ2qÔ5ÁfͯËÌaMÛÛÊ3?(áÁ0"<@XE!LEóZCs<E¯É<{%D!ÇL+B6â¡^ÃF?éé^#M âw¦hc6ض#$â5R4qI1q ,0Aè¡íÍl÷´°Ô9ÀåÞtäUpjꩨ^
+¸ÚÓáÚ¨£~üájebÁò;e>5ζ«éý}ñäw|ýù/dPþv,øVô¾í¸÷`½½Vþ§ÛMÂyéJÙ.(U¼=®nilÏFÈ®G³]ó yú5àÛ®yC
+L¹¶ÆÂ^g2ýÑxjãµG>tÂZç7tzkºðá¿%Õá)_Øɨ¤óܪ
b³±×µùàâȯC Bà_ð9ñ:Idòuª=ÛWK
+¾9sU-Íååüòw(àó¨>ÕNϦç~YK.à=]fÁ<zî;½¦QýgÌke8;?ãÐײ/YÉÈEÔósa6ÖáJz;¡¿é¬
+8¨ý¼1¹Ôó~zΰ!!âÿdÙû'Zß»ýØÙ¿ºZ¼º_ýèwýýéîù>ýø'
+ß*Ùoþ¸·¨Ìµ_°hú©²¤ôã|ûá(ÛÿÀߤ`¾â×ùþÈË·%<crýk¸qI÷|B'~¹2K)üÐÄ*ýJ§î¼þ.jy××ߤäP©
+U´!àãbxèÿé±A4
endstream
endobj
667 0 obj <<
@@ -589,7 +589,7 @@
endstream
endobj
724 0 obj <<
-/Length 1358
+/Length 1357
/Filter /FlateDecode
>>
stream
@@ -602,13 +602,13 @@
`xA`°
AUÆÔx¨r
ÖÄÔPy¸~ØT\Víª*/pÕTà IÔÚÁKKsnã( Ïãs>áq<ò³' £ ïãTvõ®i)¤¬àä-whÓTmÕ¡Ì1趵cBg yòøÐ3ÂT:ÝzHðÿ]r¼úËÁ;xUw}¬ ×/
-¸+E×\ÙÑTõìn#Jï_qô2L ìÏmmªÖw©Âþ5¤CW][AÕg¸x§ç¿Ë«"ðcy¢´ ò£lf?fª\¤ÊKÓ~3Ïñ¨(dd^|ldò¾ý
-ÑDÔ¿G&{i@^Ñ4Ó7\ «ÄoÎß\þ4.NÝÚç»`+ä¾7£Aê2àä#Ê]c,¦5ÂïµÈ%4©"nîûª¿s¸ 㯻¶õU#slÊ@(r9ûûnãÎ'&Ï= [rClà >ÙîÞÕwSE kjkóív[?NYê)pmñãöAû¬ëÐ<ºZdÃÔl½5#9ï«AWùU5åÚÕLû¤cg®Ðwõ*Ðöÿ;ñBkªT~B#°µsJ>ûÆ;
`§í½t¨ÍômÒW£MõUÒÈ_
-üã,EPI¡aclüR¶¿1Û-î´oâø@ìñ@ D SÛ_D×àÌöh°h±§ZàBø¡4¢
z-,<Ec¨CeÒ"{
-2
O,&
-XÀèáy óÜ
-Åp¡hìMÎ~*8OÁ`øèñ{ùÅá8@/Ü/l¸é¿#ØQÅÄKw±tíFÅôAiÀ
Á>çé½öéT ïpå
-E9wëÐÄ*7¶týãáóÄW¢Y£úðr³÷ÝÙ+
-À»ï.mÈF Ïgg¹hçÙ¤ãmË
+¸+E×\ÙÑTõìn#Jï_qô2L ìÏmmªÖw©Âþ5¤CW][AÕg¸x§ç¿Ë«"ðcy¢´ ò£lf?fTå"U^àô[yE!#óâc#÷Ýìoø¢öEP¿8Ò?ÑÚ3ØL³²¦¨áÂ%~sÞÖäò§q9têäÐ<ß
ôZ!÷½
+R%Qî#1å¨~|¯E.¡E ôrßUý½»À×|ݵ¯cKBËaÌGÐw_pr81yî Èâp"[ðÉf÷®F¸*i=SëXo·Ûúq
+ÆRo,HkÓ7Ïg]Öä±Õ"F fë=|è«ÌyW
+ºú ̯ú;¨,×®bÚ'ý:se¾«W¶ÿßZS¥òSìøÚ]SòÙ·Ý)üÊ8lï¥Ce¦§X¾kÒ¬¯ÖDþ*Ðhág)BJ
+ícã´ÝüÙnq§}ÏÄb%:üÚþ"V¸ö®d±"+F¬Ø+p!ü@±B½Gúb
GBÌ¡.i=
+ §CÓA
),àóð<yîb¸P4ö%Hf?Da§`0xôøÀÃìÏâ`Ä ÂWîÃ×
+F 6Üäßì¨^â̤¿»Xºvã
bú 4HàÂ`óô^ûô*÷?¸b
;Éuh`YºþñðiâëÐC,ÂÀÑø|øB¹ÙûÎìØ]Á7¶COdF#gøÆ3²ÜÍE4Ïó ìDñ?Ym
endstream
endobj
717 0 obj <<
@@ -1515,23 +1515,22 @@
¶¦X6ÃbTØÝÏáþ:G¸N[96êGh38/×U]Ûµðy[\ødâ×KBHyEcÛ§x*êÌòôý2ñÕpIÍÇîlqàQ^ÿ@èÉ¡¶àM÷ß[uí¡t{MàMƹ¶[+]
ïãÙn9ÅÁ$KâÁÒ+HÌÔPIÔÐ$¨$|@;ìâå{÷UFäùóCþ<¢°¬m ;?@ÿ}À1öý½ªà3ñ*D$Â>â\x÷éõ̹ÚU¡;Ì>ãqYqÙë<ãâaôÒ¨:²¢â#Ø"rdZndIŪ´2¨ùþª-G¢4'ÔS
Á°`ÀÔÅHsήLÛøØGÃtÜvoÙ
èKÊÉ>ãê*¡!2e|´y¸OWý¶ùÀ4fÂQQGfµ
I @¬Gת@Ç|ÄUè> ¡ ûH"çªk1"ÅÆù¨t]æ¿mlÝÈôf )ÆóZ½éqo?x7ÀFÒ®ÈËè
- â» Ó8c`/»*vJ´ä!âͪËQzã¯*ö¸i¿âïjþìÔR/$0~`2e|ç§/Éæ;@2
-ùpkÛ»NØL&ÿ¼XúÞBði{
->Ñ×-øNÈÖÍXZ:ð¨¡-6,Å· <Y5gÖ*
-âÞÒvm{øîòòþþ^A^Ô6þ¢Òµêî.)«¼1×Ö±ïMURÛ´É×<ä(½?Eº ¿¤LÚò:HqPÚrèTõ7eº²y¶Ò]³ª¿r }òkÌ¢Î`WäMý0tôÔÓâ¨Ï<ÔÁõNÎr8½À«úù8ÆOà¼Ç`G%
V¨Mç
-UCY6ömê5 Ê$Ëã±ppår]Qí8!Éù¨)
-YOUt+ÀñsXÛ¶Ã
-õ8ÂF/åi4+÷Oï¹4@!pÝÚ¬È9{\è0Þ,Æ{!;¯+(i©1àcò"0î8áV
-#
4ÞHîn¶É±ÚÂm
-,HöѤáÓóí¯ù±jîòòAdsúT ç
-é7>ùãÝøf1}µûôK¾G®t{©Hr.|7|hJüUÃ!|èh13oúÅê÷-s®å#æWÅTܦRÁK s-vÃÎtëÍ[ÊÁ8:e¶>e^øB6DÊ.Ý. b5ÄÈ'A\M¢ì6¾ÜkÏûòtw`õ÷|Odó31ÙÉ(ý$×pè ;ksøù¥6w{ÇÍÈ:-Ö]!¿»àd>å&U[×UÝðÙôK,×u>J϶éKZ*Êâ "6£
s©§£¹Â$W ÛÒ¦1r Ja§¿üæpܾÃ.EÙÒö©¥äâú¬Ûß¾"ÿ3Ô
-ç®ûN]&ßP#F¼T
--ém<ÛçïUsÈ˪©ÆþHÏû#óM
-ñ¼;z-u ®|T ½¼9oû©soÏ÷¸ äN Iß°m;t¤ã£ûê:Aíy%êS}#}±-êÑ>¦²ÜGr¼%»3¤¼JÎeXÝåVg¥ý¡KpuåÉ\3ÁC{ ~w6E+Ãûjnø2lMvØHE0× ¿üm'ÝÉFV¼²±rd¾J6Eö½Q¨¢08ÒeD°GF¯àkfʪE´Á´aKcË
-Çä !væ
Wñ§j¶ú×ÄFÕ+p
P
-Ö+à3¥ó80¹j/Øʦ.ïû 6V(!KC2(JR
-@é ·U=+<7PûÂÑÑøEÏ¿¢Èq3#gm p¤ÿ"GÚñÕ¥%§ÊÛBÃ;NRþ=å|'¯
RåQyFÒl{"Px%Ú-Ç9z øüÛÁârÊØW¡ÿU¬ã;7|x¨¦×µSpÊ$~D¸ídM¯¡¸¯wuÿöÁ*#RÇD¡l?Ô¶ÅÆ%£g$'ÝqyÑæ\ͳ=¶Ä3{Á/q½c¿§µôö`7!÷»c¹à¾Q¨Ej@{^.gNvE§}ðDtèwñÌ#R® F
«(ROp%è0V @Oµ ´9IƯtO
-ÕÁ×R©-_@}YRÎ;:æ!ðÿ{gk~:!uc{¨¨÷AÛú{+Ûç óazÁWuÃ1£ñDéï'æÎ;¥#"AbJWh/îÄ~ý V^dÃUÿcMÐÜ~éºýéí§w73¸Ã2íê~ÝåÜIÂÁó¤æ(I VÍÉã\áMt+ÑSùèu%*¿ÝAb§}çÅýc6Ë_º`6¨f¬ÏHÐóÁÐÝø1ö#T&dËô@í÷ 2ò+:ñ¥Ú¿M ÀWüÇ'VëOV!>Yñã/ÉwáàømÕ±]bGA²ªØn*Ètð%8:^!;å¥jÊÒ9WØqúeæ3}½¼ºüK9Æá?ùæÏ&ôâ@.èÑã<ÖtÔâ×nèLÔø<ÒÈÿF2UÍÕ zÛ·ñãä!,Ò@±Oy PcôdÉ»Wÿõà¢ö
+ â» Ó8c`/»*vJ´ä!âͪËQzã¯*ö¸i¿âïjþìG¨¥^H8aüÀdÊøÎO_ Íwd:ÿ(óáÖ¶w°Lþy±ô½
àÓö0,|£¯[ð#¬?±´>uàQC[lXoAx6³jÎ=UĽ¥íÚöðÝååýý½¼¨mýE¥kÕÝ]RVy9c®+¬?bߪ$*>¤·i¯yÈQz~u?@I´åu$<â ´-
+äÑ©ê;nÊtdól?¤»<gUå*7úä×E-Á®Èúa2è詧ÅQ/y&¨ëåpz'VõóqÀ1y)ÁJ
+P%:Ϫ²lìÛ4Ôk#HÇcáà"ZË5亣ÚqBóQ!$+R²ªè$W/);ãç°·
+,$,l+êq^ÊÓhVî3ÞsiBີYsö¸$Ña¼Y:÷B:<w^7VPÒR1b0ÁÇä%DZaÜq¬F
+i¼ÜÝlcµ
Û,Xì)£IççÛ3^ócÕÜå%åÈæô© Î:Óo*|òÇ)º;ñÍb,új÷é|\éöRä\>ùn(ùÐø«Cù3Ð3ÐbfÞôÕ'=ï[æ\ËG̯(9©¸4M¥8 <æZìè ×·qtÊl}ʼð
l8]»]@<Äj+N=¸8(DÙ/m5}¹×÷å-èîÀêïùÈæ)fb²QúI®áÐ;@vÖæðóKmîö14<uZ¬»B~!vÁÈ|ÊMZª¶®«ºá/³éX®ë|mÓ´?TÅADl FçROGs
I® ¶¥M#bä"AÃN)ùÌá¹}]*³¥íSKÉÅõY·1¾}Eþg©5Î
]÷ »;M¾¡F*.x©ZÒÛx¶;2Îß«æUSý÷GæâywôZê@\ù¨@zysÞö[SçÞ%ïq@È6¾ `ÛvèHÇF÷9Õu0ÚóJÔ§úFúb[Ô)£}Le¹%äxKvgIyË°º+Ë3ÏJûCàê˹f:öüî(lV÷Õ6ÝðeØì°`®= :)~ùÛNº,xecåÈ|+lì{£PEa4q-¤Ë`8^Á×Ì6 Uh=hÃÆþÉBì>Í9¯âO5Õl+<ô¯ªWà
+¡¬WÀg(Kç7p(
+`rÕ^°#M%]Þ÷Am¬PBdP$¤Ò n«zVxn ÷+(££ñEãfFÎÛ àHÿE´ã«KKN-·
0:w¤ü
+{Ê
+øN^¥Ê£ò>¤Ù3÷D ð4'-J´[sôAñ<ù-¶Ä1䱯Bÿ«4Y'Çw$
+nøðPM¯k§à%H(üpÛÉ^Cq_)ïëþíUG¤Z
+BÙ~¨m#?KFÏ(7HNºãò¢#͹g{lgö_âzÇ~Okéí!Án"CîwÇrÀ}ÿ£PÿÔ<,÷¼\ÎìNû>áèÐïâ
+2G¤\=WQ¤àJÑa¬@jAis_é27Z«¯¥S[¾ú²"¤03wtÌCàÿ÷ÎÖütCêÆöPQ/;î[08¶õ.2÷V¶ÏæÃ8ô¯êcFãÒßOÌwJGD*Å®Ð*^ÜýúA¬¼ >É«þ
+Ç 3¸0üÒuûÓÛOïnfpeÚÕýºË¹
çIÍQ@¬Ç
+¸Â6è V¢§òÑëJT~»ÄNûÎûÇl1¾tÁlPÍX ç¡»ñcìG¨LÈ èÚïAdäWtâK´A¯ø-O¬Ö¬B|²âÇ_ïÂÁñ9
+&Ûªc»ÄdU±ÜTéà+KpZu
+¼B"wÊK)ÿÔ¥sZ¯°/âô!ËÌgú{yuùrÃòÍMè=Å)?\,Ñ£Çy¬é¨Å¯ÝÐ6¨ñy¤ÿ8dª)ªô¶o7ãÇÉCX¤bò@¡ÆèÉw7¯þQl¢ú
endstream
endobj
964 0 obj <<
@@ -5025,324 +5024,337 @@
endstream
endobj
2060 0 obj <<
-/Length 1888
+/Length 1828
/Filter /FlateDecode
>>
stream
-xÚ½Y]Ûº}ϯpß$ ÖlIèCÞ-PlrÄEôö+Ñ6±ú0Hi7{ûç;Ãʲ³ÍÝmã"©!gxæÌ¡6^ìñâÏobþ}¿ysu¥Ei¶Ní¢(£8.yE"]/6õâÁûp)D²
->ìe·S6\¦ù*¨úö ªéièéWIÓheèá>LE Õ}gÃmþru],Dq)p©x±L(_´Êf¯Ñt·á2)µÓwÈÁVWSÇ/ÕÐó,C=IoÃe¯égõ]óHZ
-R7¬T!¼7¹£{M}4.Eªª½¢Æh¡!
-k±~Wñ_M¿DßÐ!¢rµ"ovF¶-øï¦i`÷ýØà®Ò×Ù±h¬C6ã¦ÀúÎsÓïhv5<«ïè÷ÃçwÈZo¨Gw'³àórÛ¿gÔÁE«·zèÍcXdA»¸ó
-W×peT®5XGEWyT¦)y{ÉÏÞ9y%2 MLX%þËh³e°£{À !Qd?ÁáeYp¿ÒVµ¸S7Ü(yg©ÛûYɦ9L&ú-»*^Â0l]Ùè{~.y×?ÀQñGÓÎìfbn8
-A/£,ÉÉü¿¿·I¿^Ü;þp Lén7Åp0(cÆÃ1x>ª½´#ÍÎP6A#¥n½Õ]5!«RdÑ=%×ø:quÉ{_UTf/uõÃ^¹¥îhÙ½äs.Ô[#©µ5}KVbR}
P4úsÍg¿ÓõÃd1ZÄNñØ
Q1fGw9%2Î9<B>Þ\½øGüÏcŨa4Ý.YUê0H É7©÷!ð½mZ:¹ÑRâA{?0°¦ÇéÇ={Ô3X5ÊhÇË4$¡ö0h¬bÐXýz:ÿñsØT86]¹båª ï鱫}N¸¼]8°æTLÁÜàJçÜ>½¦¼ÈP ²iü"
-'äÌ\A-Þ©oò?Ç%þ~\òãÐ Ü,FÏÁÂÝÑGhzÀ³ýsþAÅüÉáO~U\Hï±®è½zÁ³½Wë@-¹@¹ñ©¶õù¡XIYOG£{È» cIç Ø%8(Ì1È»ºvtG§°±:G/Gn¯ê6cǤ±ÎÛ)m D#/À¥ú>SGìAJfy|òË÷¾*òèHLå3b
:(iÃÎ׶nùw
-y=0Õ@<
ö}¼0Ìjñ·(^±¤ëZ1ÿÜ ý_È/·Ã¿ÉÕ q¯\¬ Ð_uËé:nmôBÝ;άiTÐlYeyðé=Û£k
-LѼÌlê»Ú±*ôÖ2¡é-*ª<ÞâÅ#wEéÆñN1S/ÌãôÀà;-~ÚéÜÑåÓ3ÛkØ}Ëuäû
-È7/ÙÆ®Üñw^
-ñÒÍNa)ç!uÚß-j'Q¨qæJ2>B½¸¡fG7/.ÙÅ!ýL!ÊÀº¨ß»óÆç«45t
-R°åüÅ SÍÚsô4}Á_öŵÙY8ܯì$B
-=Ý\ûÑ@;dûsÓo¢×Û±»&å
--:¸
ØP½M õL
3D¾¦n¼ë^÷ 8t×
-^¬tp~~p ÷²Ø`Ù34&4Ǧ©æl@}¹#A[ùïú0ا¨ÁëVÄ
-KW¾NëahÔëÈxý³zÍ+ñÉE pÿ¾bÛV©8Õ@ loî.Y*ot«_;;©©.éæ5ñv®ËùÁï3?ª'é½³'®Ù
-µÁÙP7³^¿J°qh>ñô[-æØ%²õ SOévá;a^â¨v_NBC¥¯y¼
Á»/?ã`é&5=È"Ãf´{ª!@~ÛsÛ«8 oYQ£ç7ú3~=ß,ó)üÃW`ÙÔ®yÛ¨>½½0° ã¸Ï dºÇá D<ß|FßE@<síüaJdî÷5¾»ñs®yâÒü$ÌÐpÅ#áO(qLkr0
©N¾6¤'áy~ßGÒN8?ijA6SFV|Á X¡°ÑX\Y5`DÕîìâ_ðþªýwm«oÇs±Üëµ±mµ²@\Å)"çh5~NôÕZÑÐÁèé)<òµZpzp¡(2î]¾t;èrg!rWÛÝÀN?ZZ½ÖîyùGêpÌ
-Óèϸhe°b<Ù½djæe5grÙ_tÄ*
KmlD©ÿëX''ïü¼yó¯ Ì
+xÚ½YÛnÛF}ÏW¨o$Ñ\^D2@´.P8I¨h¦kr%-Ì@R¾´?ßYR
+Gn"¿Xä.9Ù=sæÌÚgþìW>ÿ¾]¾:»Â¼0Z³åjf麟Ä<.fËböóÖÄλ¬×ªsça;ySme«
+ºëúU²-µjéæÆ
+
£ÚN7uçþ½üõì" ßËüLà§üÙ<¼$Né+ËFÓï\¹ó uÔZ×< {ü[uAó¾á§Z |?{íÎ#?v¤}ª©Ë{º*T/uÙÜ
÷P`öv£iæå_*ïi²ß(ºØup!ÖçÎbá|ñcÿ·¶cl^ÇͺU±Ã»aètfW¢WaWw»²§ ²à@NõµùÎe³¦ð&*ù©¦¦ßwÎ?µ¦¥]OFΧùªi×ü^«¶fµN÷M{ï¦ã÷=Ðpv[yÙ"Xàö
Dx ¨ÀäàÉ+¾h|z8ð
5 9±çQÝhM4>0}»
+t%óüëÿ>åðDZ?ÞJÜÜ{ücv¾NËrÝ´ºßT¼Y¦¬|éæ`ÿùí-lleYª¤Áϵ/ >Ê}5{n,úN±ëªp+¥×Ýï/iJu½®dK
+¨¢È¹TÇÑßZ©B?íyø\Ç?0ª® µÑA*"|xKÌÜÂöØ»N×7n©^îìjÉ[¢k$¨Rõêk8A-¡kñ
+@Ñ@Þà6ÄÎD¨ïèq+Ãq+£a+sYæ»Òì!ÓÀÓZöü®i?ï¼'ceÇ¿=©
8"ÖðÍé²ú/t®vk»ÍS!bÖàÕ«¶ÝmÇų«ºÝÈ!£9B6$
+,+2yÞG0ö=³þÝF1ÁPFlÔMŪtµj¦±
+¼µ(õ5[>øºéKµe·!³¶°çT±ËäÔ8
+ÇÑâ¹kåõI#=R<ZÕïÚzX.çjÛK@ÉÜûüùVµ\êJ
+9±Ç¸ý 74Ý®Ûf·í&hEÂFµÚ. ´4bÐtúÕ½£úÇ0ª`FEef¤{üX6'LâîÌr rLH9¹Þl0é#ιêmz
+yUk¾ýHÉÉ2þKÿ°¯®~}]ס^saô<®ÇáÁDà¹ûÊ>¿xIr°Ps3U!¹Ñ7FÖµZr!z-ûÖ¦ÚÊæⶡ³Ô:60»¼w÷/M¶;]9/
+£AÖ
+E-`ã ¾4K!ÙAåÂp»«õ"nø`ðjÈÌàZch ð ÉôQ&©óÁ~¾±u ÆȤ¡bþØ)¨ F©ªmq«çhH|£Ýë¶ ÀBõþ?ezOÉÚjüDZí5¶Z1à ÿÊOWE~'+ at 7¢)9Òwºb4F9ÀÎzCkÝÖ,hvì*dâ(q>¼e{ÔÅÃ#¿`E9íêÂð*r¡l¶ªÄé_c²ôHC=¶Ð{ú
n}Óò7¶-½H0Ln+À»î5qñ à¬jÛÕyoNH&Ôsj$aé¦!nç!ÕÚ¶
ªU¨röµä¤S´ËT^NÈgjb$s:³è7f¿ñdpº@ç¤hW&^¼ `j"ú^[ÇXðc1×,ìm'T5$F%Ý]
+Ìõ-<dûû¦ß_z/!©|Ó¤ÙJ-¸µ¡@êL
OdAÃØAèVù <x±Äs$|
+OÛLd^62/X¸â
+vãÒâê,A-É.·ÇnzÛwQU2$'ù3¬Ô}_ª2þâ!¿dW<iRÓ
+líqbw_U
[TRUNCATED]
To get the complete diff run:
svnlook diff /svnroot/rsiena -r 185
More information about the Rsiena-commits
mailing list