[Rsiena-commits] r161 - in pkg: RSiena RSiena/R RSiena/inst/doc RSiena/man RSienaTest RSienaTest/R RSienaTest/doc RSienaTest/inst/doc RSienaTest/inst/examples RSienaTest/man
noreply at r-forge.r-project.org
noreply at r-forge.r-project.org
Sat Jul 2 17:20:33 CEST 2011
Author: ripleyrm
Date: 2011-07-02 17:20:33 +0200 (Sat, 02 Jul 2011)
New Revision: 161
Modified:
pkg/RSiena/DESCRIPTION
pkg/RSiena/R/RSienaRDocumentation.r
pkg/RSiena/R/bayes.r
pkg/RSiena/R/effects.r
pkg/RSiena/R/maxlikec.r
pkg/RSiena/R/sienaDataCreate.r
pkg/RSiena/changeLog
pkg/RSiena/inst/doc/RSiena_Manual.pdf
pkg/RSiena/man/RSiena-package.Rd
pkg/RSiena/man/siena07.Rd
pkg/RSiena/man/siena08.Rd
pkg/RSiena/man/simstats0c.Rd
pkg/RSienaTest/DESCRIPTION
pkg/RSienaTest/R/RSienaRDocumentation.r
pkg/RSienaTest/R/bayes.r
pkg/RSienaTest/R/effects.r
pkg/RSienaTest/R/maxlikec.r
pkg/RSienaTest/R/sienaDataCreate.r
pkg/RSienaTest/changeLog
pkg/RSienaTest/doc/RSiena_Manual.tex
pkg/RSienaTest/doc/RscriptSienaRunModel.R
pkg/RSienaTest/inst/doc/RSiena_Manual.pdf
pkg/RSienaTest/inst/examples/algorithms.r
pkg/RSienaTest/man/RSiena-package.Rd
pkg/RSienaTest/man/siena07.Rd
pkg/RSienaTest/man/siena08.Rd
pkg/RSienaTest/man/simstats0c.Rd
Log:
Fix for Bayes routine, other minor bug fixes.
Modified: pkg/RSiena/DESCRIPTION
===================================================================
--- pkg/RSiena/DESCRIPTION 2011-06-24 12:39:15 UTC (rev 160)
+++ pkg/RSiena/DESCRIPTION 2011-07-02 15:20:33 UTC (rev 161)
@@ -1,8 +1,8 @@
Package: RSiena
Type: Package
Title: Siena - Simulation Investigation for Empirical Network Analysis
-Version: 1.0.12.160
-Date: 2011-06-24
+Version: 1.0.12.161
+Date: 2011-07-02
Author: Various
Depends: R (>= 2.10.0)
Imports: Matrix
Modified: pkg/RSiena/R/RSienaRDocumentation.r
===================================================================
--- pkg/RSiena/R/RSienaRDocumentation.r 2011-06-24 12:39:15 UTC (rev 160)
+++ pkg/RSiena/R/RSienaRDocumentation.r 2011-07-02 15:20:33 UTC (rev 161)
@@ -16,6 +16,7 @@
mylist <- ls(parent.frame())
## print(mylist)
library(codetools)
+ ## fnlist has a row number at the front: column 3 contains the function names
mylist <- mylist[mylist %in% fnlist[, 3]]
mytt <- lapply(mylist, function(x)
{
@@ -44,16 +45,26 @@
thisdir <- getwd()
## temporarily move directory
+ on.exit(setwd(thisdir))
setwd(Rdir)
## extract comment lines
- shell('grep "##@" *.r *.R > comments.lis')
+ if (.Platform$OS.type == "windows")
+ {
+ shell('grep "##@" *.r *.R > comments.lis')
+ }
+ else
+ {
+ system('grep "##@" *.r *.R > comments.lis')
+ }
## read them in
comms <- readLines('comments.lis')
## remove the file
file.remove("comments.lis")
## remove the shell line
comms <- comms[!grepl("comments.lis", comms)]
+ ## get rid of tabs
+ comms <- gsub("\t", "", comms)
## split off
mystr <- paste("##", "@", sep="")
comms1 <- strsplit(comms, mystr)
@@ -70,7 +81,7 @@
}
else
{
- c(x[1], tmp[1], tmp[2], paste(tmp[-c(1,2)],
+ c(x[1], tmp[1], tmp[2], paste(tmp[-c(1, 2)],
collapse=" "))
}
}
@@ -96,26 +107,55 @@
## now the internal ones
## find the list of files from comms3
+# browser()
+ internals <- comms3[grepl("internal to", comms3[, 4]), ]
ttmp <- unique(comms3[grepl("internal to", comms3[, 4]), 4])
- ttmp <- sub("internal to ", "", ttmp)
- ttmp2 <- comms3[match(ttmp, comms3[, 2]), 1]
- ttmp2 <- sub(":", "", ttmp2)
-
+ ttmp1 <- sub("internal to ", "", ttmp)
+ ttmp3 <- lapply(ttmp1, function(x)
+ {
+ tmp <- x
+ while(!is.na(sub <- match(tmp[1], internals[, 2])))
+ {
+ tmp1 <- internals[sub, 4]
+ tmp1 <- sub("internal to ", "", tmp1)
+ tmp <- c(tmp1, tmp)
+ }
+ tmp
+ })
+ #ttmp2 <- comms3[match(ttmp1, comms3[, 2]), 1]
+ #ttmp2 <- sub(":", "", ttmp2)
## write out the fnlist in the Rdir
write.csv(data.frame(comms3), "RSienafnlist.csv")
## get the list of internals
- tt <- lapply(1:length(ttmp), function(x, y, z)
- {
- yy <- y[x]
- yy <- getFromNamespace(yy, pkgname)
+ tt <- lapply(ttmp3, function(x)
+ {
+ yy <- getFromNamespace(x[1], pkgname)
targs <- formals(yy)
- n <- length(targs)
- myargs <- targs
- for (i in 1:n)
- myargs[[i]] <- 1
- myargs['getDocumentation'] <- TRUE
- do.call(yy, myargs)
- }, y=ttmp, z=ttmp2)
+ targs[1:length(targs)] <- 1
+ if (length(x) > 1)
+ {
+ targs['getDocumentation'] <- x[-1]
+ }
+ else
+ {
+ targs['getDocumentation'] <- TRUE
+ }
+ do.call(yy, targs)
+ })
+ #tt <- lapply(1:length(ttmp3), function(x, y)
+ # {
+ # yy <- y[x]
+ # yy <- getFromNamespace(yy, pkgname)
+ # targs <- formals(yy)
+ # n <- length(targs)
+ # myargs <- targs
+ # for (i in 1:n)
+# {
+# myargs[[i]] <- 1#
+ #}
+ #myargs['getDocumentation'] <- TRUE
+ #do.call(yy, myargs)
+ #}, y=ttmp)
names(tt) <- ttmp
## remove the file
file.remove("RSienafnlist.csv")
@@ -240,7 +280,7 @@
tmp12 <- do.call(rbind, tmp11)
names(tmp12)[2] <- "Function"
- tmp12 <- tmp12[order(tmp12[, "type"], row.names(tmp12)), ]
+ tmp12 <- tmp12[order(tmp12[, "type"], as.numeric(row.names(tmp12))), ]
tmp12 <- tmp12[, c(3, 2, 5, 6, 4, 1)]
ff <- xtable(tmp12)
## go back to start directory
Modified: pkg/RSiena/R/bayes.r
===================================================================
--- pkg/RSiena/R/bayes.r 2011-06-24 12:39:15 UTC (rev 160)
+++ pkg/RSiena/R/bayes.r 2011-07-02 15:20:33 UTC (rev 161)
@@ -8,11 +8,12 @@
## * Description: This file contains the code to run Bayesian simulation
## *
## ****************************************************************************/
-##@bayes algorithm fit a Bayesian model
+##@bayes Bayesian fit a Bayesian model
bayes <- function(data, effects, model, nwarm=100, nmain=100, nrunMHBatches=20,
nrunMH=100, save=TRUE, nbrNodes=1, seed=1, dfra=NULL,
- priorSigma=NULL, prevAns=NULL)
+ priorSigma=NULL, prevAns=NULL, getDocumentation=FALSE)
{
+ ##@createStores internal bayes Bayesian set up stores
createStores <- function(z)
{
npar <- length(z$theta)
@@ -26,6 +27,7 @@
z$MHproportions <- array(NA, dim=c(numberRows, z$nGroup, 7))
z
}
+ ##@storeData internal bayes Bayesian put data in stores
storeData <- function()
{
start <- z$sub + 1
@@ -50,12 +52,14 @@
z$sub <- z$sub + nrun
z
}
+ ##@improveMH internal bayes Bayesian find scale factors
improveMH <- function(z, x, tiny=1.0e-15, desired=40, maxiter=100,
- tolerance=15)
+ tolerance=15, getDocumentation=FALSE)
{
+ ##@rescaleCGD internal improveMH Bayesian
rescaleCGD <- function(iter)
{
- u <- ifelse (actual > desired,
+ u <- ifelse (actual > desired,
2 - ((iter - actual) / (iter - desired)),
1 / (2 - (actual / desired)))
number <<- ifelse(abs(actual - desired) <= tolerance,
@@ -63,6 +67,11 @@
success <<- number >= 2
u
}
+ if (getDocumentation)
+ {
+ tt <- getInternals()
+ return(tt)
+ }
iter <- 0
number <- rep(0, z$nGroup)
success <- rep(FALSE, z$nGroup)
@@ -92,6 +101,25 @@
## ################################
## start of function proper
## ################################
+ if (getDocumentation != FALSE)
+ {
+ if (getDocumentation == TRUE)
+ {
+ tt <- getInternals()
+ return(tt)
+ }
+ else ## need to run getInternals on the argument value
+ {
+ targs <- formals(getDocumentation[1])
+ targs[1:length(targs)] <- 1
+ targs['getDocumentation'] <- TRUE
+ if (length(getDocumentation) > 1)
+ {
+ targs['getDocumentation'] <- getDocumentation[-1]
+ }
+ return(do.call(getDocumentation[1], targs))
+ }
+ }
z <- initializeBayes(data, effects, model, nbrNodes, seed, priorSigma,
prevAns=prevAns)
@@ -163,8 +191,10 @@
##thetadf <- data.frame(z$candidates)
acceptsdf <- data.frame(z$MHproportions,
z$acceptances)
- ratesdf <- thetadf[, -1][, z$basicRate]
- thetadf <- cbind(Group=thetadf[, 1], thetadf[, -1][, !z$basicRate])
+ ratesdf <- thetadf[, -1, drop=FALSE][, z$basicRate, drop=FALSE]
+ thetadf <- cbind(Group=thetadf[, 1, drop=FALSE],
+ thetadf[, -1, drop=FALSE][,
+ !z$basicRate, drop=FALSE])
thetaNames<- paste(z$effects$name[!z$basicRate],
z$effects$shortName[!z$basicRate], sep=".")
rateNames <- paste(z$effects$name[basicRate],
@@ -172,7 +202,7 @@
z$effects$period[basicRate],
z$effects$group[basicRate], sep=".")
names(ratesdf) <- rateNames
- ratesdf <- cbind(Group=thetadf[, 1], ratesdf)
+ ratesdf <- cbind(Group=thetadf[, 1, drop=FALSE], ratesdf)
names(thetadf)[-1] <- make.names(thetaNames, unique=TRUE)
names(acceptsdf) <- c("InsDiag", "CancDiag", "Permute", "InsPerm",
"DelPerm", "InsMissing", "DelMissing",
@@ -226,7 +256,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)
@@ -259,6 +289,7 @@
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
@@ -325,7 +356,7 @@
z
}
-
+##@initializeBayes algorithms do set up for Bayesian model
initializeBayes <- function(data, effects, model, nbrNodes, seed, priorSigma,
prevAns)
{
@@ -395,7 +426,7 @@
function(x) 1:x))))
z
}
-
+##@getDFRA algorithms do a few ML iterations and calculate a derivative matrix
getDFRA <- function(z, n)
{
## do n MLmodelsteps with the initial thetas and get
@@ -425,7 +456,7 @@
##z$covFactor <- z$eS$vectors %*% diag(sqrt(pmax(z$ev, 0)), z$pp)
z
}
-
+##@getLikelihood algorithms calculated likelihood for one chain
getLikelihood <- function(chain, nactors, lambda, simpleRates)
{
loglik <- 0
@@ -437,11 +468,11 @@
logChoiceProb <- sapply(chain, function(x)x[[9]])
logOptionSetProb <- sapply(chain, function(x)x[[8]])
loglik <- sum(logChoiceProb) + sum(logOptionSetProb)
- #print(sum(logOptionSetProb))
+ ##print(sum(logOptionSetProb))
if (simpleRates)
{
loglik <- loglik - sum(nactors * lambda) + sum(nc * log(lambda))# -
- # sum(lfactorial(nc))
+ ## sum(lfactorial(nc)) don't need factorial in bayes!
}
else
{
@@ -453,7 +484,7 @@
}
loglik
}
-
+##@getProbs algorithms calculates likelihood sum over nested list of chains
getProbs <- function(z, chain)
{
sapply(1: length(chain), function(i)
@@ -471,7 +502,7 @@
}
)
}
-
+##@flattenChains algorithms converts a nested list of chains to a single list
flattenChains <- function(zz)
{
for (i in 1:length(zz)) ##group
@@ -485,7 +516,8 @@
zz <- do.call(c, zz)
zz
}
-
+##@dmvnorm algorithms calculated multivariate normal density:
+##inefficient: should not call mahalanobis and eigen with same sigma repeatedly
dmvnorm <- function(x, mean , sigma)
{
if (is.vector(x))
Modified: pkg/RSiena/R/effects.r
===================================================================
--- pkg/RSiena/R/effects.r 2011-06-24 12:39:15 UTC (rev 160)
+++ pkg/RSiena/R/effects.r 2011-07-02 15:20:33 UTC (rev 161)
@@ -8,7 +8,7 @@
# * Description: This module contains the code for the creation of the
# * effects object to go with a Siena data object or group object.
# *****************************************************************************/
-##@substituteNames replace xxxxxx, yyyyyy, zzzzzz
+##@substituteNames DataCreate replace xxxxxx, yyyyyy, zzzzzz
substituteNames <- function(nameVectors, xName=NULL, yName=NULL, zName=NULL)
{
effects <- nameVectors[, c("effectName", "functionName",
@@ -32,7 +32,7 @@
"interaction1", "interaction2")] <- effects
nameVectors
}
-##@createEffects Extract required rows and change text
+##@createEffects DataCreate Extract required rows and change text
createEffects <- function(effectGroup, xName=NULL, yName=NULL, zName = NULL,
name, groupName, group, netType)
{
@@ -70,7 +70,7 @@
effects <- data.frame(name=effectsname, effects, stringsAsFactors=FALSE)
effects
}
-##@getEffects DataCreate
+##@getEffects DataCreate create effects object
getEffects<- function(x, nintn = 10, behNintn=4, getDocumentation=FALSE)
{
##@duplicateDataFrameRow internal getEffects Put period numbers in
@@ -122,7 +122,7 @@
}
rateEffects
}
- ##@oneModeNet internal getEffects
+ ##@oneModeNet internal getEffects process a one mode net
oneModeNet <- function(depvar, varname)
{
symmetric <- attr(depvar, "symmetric")
Modified: pkg/RSiena/R/maxlikec.r
===================================================================
--- pkg/RSiena/R/maxlikec.r 2011-06-24 12:39:15 UTC (rev 160)
+++ pkg/RSiena/R/maxlikec.r 2011-07-02 15:20:33 UTC (rev 161)
@@ -68,7 +68,13 @@
z$returnChains)
ans[[6]] <- list(ans[[6]])
ans[[7]] <- list(ans[[7]])
- }
+ if (byGroup)
+ {
+ ans[[8]] <- list(ans[[8]])
+ ans[[9]] <- list(ans[[9]])
+ ans[[10]] <- list(ans[[10]])
+ }
+ }
else
{
if (z$int2 == 1)
Modified: pkg/RSiena/R/sienaDataCreate.r
===================================================================
--- pkg/RSiena/R/sienaDataCreate.r 2011-06-24 12:39:15 UTC (rev 160)
+++ pkg/RSiena/R/sienaDataCreate.r 2011-07-02 15:20:33 UTC (rev 161)
@@ -8,7 +8,7 @@
# * Description: This module contains the code to create
# * Siena data object and group data objects.
# *****************************************************************************/
-##@addeAttributes DataCreate method for attaching attributes to objects
+##@addAttributes DataCreate method for attaching attributes to objects
addAttributes <- function(x, name, ...) UseMethod("addAttributes")
##@addAttributes.coCovar DataCreate
Modified: pkg/RSiena/changeLog
===================================================================
--- pkg/RSiena/changeLog 2011-06-24 12:39:15 UTC (rev 160)
+++ pkg/RSiena/changeLog 2011-07-02 15:20:33 UTC (rev 161)
@@ -1,3 +1,15 @@
+2011-07-02 R-forge revision 161
+
+ * man.siena08.Rd: add note about names of effects need to match
+ * man/siena07.Rd, man/simstats0c.Rd: minor edits.
+ * R/effects.r, R/sienaDataCreate.r: minor edits of comments
+ * R/bayes.r, R/maxlikec.r, inst/examples/algorithms.r: Bayesian routine
+ was failing for single data objects.
+ * R/RSienaRDocumentation.r: fix for internal functions of internal
+ functions. Clumsy at present.
+ * man/RscriptSienaRunModel.R: minor correction to text, many trailing
+ spaces removed.
+
2011-06-24 R-forge revision 160
* src/model/effects/BehaviorInteractionEffect.cpp,
Modified: pkg/RSiena/inst/doc/RSiena_Manual.pdf
===================================================================
--- pkg/RSiena/inst/doc/RSiena_Manual.pdf 2011-06-24 12:39:15 UTC (rev 160)
+++ pkg/RSiena/inst/doc/RSiena_Manual.pdf 2011-07-02 15:20:33 UTC (rev 161)
@@ -51,17 +51,14 @@
endstream
endobj
414 0 obj <<
-/Length 1163
+/Length 1161
/Filter /FlateDecode
>>
stream
-xÚµVKsÛ6¾ëWðÍ ÙÄI©ÝÄROI°K¨ùPù°£þúì "ÚòdÜfD<v?ì.¾Ý6ÞÏØO¾¯³Wïx I³<ãÑò6LQ&y¤£2Z®£/äR×s¡È Ëy0Anvþ×ò#hæÇ+ª`yë
5µöE\ÒD*±*¨Y`4á<ýàáKß\Û]iöÅ9MQAV-ç¹ MåeÏékêµµý{mÚÎëñfJN?ÍAA¥ëʧ֬¬^7~ö{³Ç aþýa;§EzÛFs
¶çT¥©Gü³¶÷
-ÇÚ{ÕÜúïß dë_æ±LRòÖìtÛW¦FÁþX0#^÷vÎI79ìqbWݯ~ëjøʸ2åÚk¼iÊÒlóO^T2åmú8ÔÆ
-yæ!ãÐàb9ã0 G#¥T1`ø)ªÙ?³Ämú·0J
Wï*½mfá÷{GäøÚñÈVÐB åè7rä¤.èËùM×·zÕ4 Ä@ÌUQsxNy.®Îý}æG Q>2ö+KÙÛP^P÷ä¶J¸¨¦¸JE>Ô÷¦ëíæ°AÌENZ¿QílkW.}`zeGPÂÝùóZûÎvOí`h!ìä^dÝqÚOWMµzݵMì³@ä¦Y!qDö(Vcòäô[ÝûÑJ·5g¤úqßøAôO½+°nW£Û¨rë×+È%pl
-6HåÒsE0ÀSTsï"Q#NÈî¥óÇkd"ÙÞÁ "M^ Ûl½ñÓ¾ _<O¤¬÷µ®ìjî6nÀëQz³ö룦ôs°È²*\ø2j7ѵë÷³è;ê¸ëöRǶbB3þ½Ü°ÒÇ@H«eÌyOî'P̹K& \ûê>.ÿÇXd§]¥àD×ëúnìÿ3³SfCûR©"Ë
-g_Ç[TÚµ×%KÈéR°:òÉ.<©(9Íø¡¢¸ ò°
´ Öo}ÙH Ç¥ÓÕ%¦dR°%÷~rãÅø TÒ¬OCÈC}¶$çpZr¥Ûª« ½ª»«xxVãÓ¶µ7Ë]\ÜiçÅÝâ©7Áª>Øí˦Åö]oªvC2Â
-NBqýÔvE%´á`:¾G¤Åód2¹>ûÚ-Éîá0ôÝ# 6ÂÑmi}=÷ òû\Ð$ÿyì rræ;æ[×£1àÚÖá%R}¶gr/¾eZÛ÷¦þñtÐX2uæ7#Ç@êR»> «¿
-¶I4åä96áyºö^eÖ¶ÓÍP"W7Ûy¡ÑÌ$7Ù!/¦U cÊ-Xáß¿Øe!ÙcH¡Â³vZ®á¡õ×ÝÓ
+xÚµVKsÛ6¾ëWðÍ ØÄI©ÝÔROI°KhøPIÊúë»hËqg:ñØý°»øv,Ù$,y?c?ø¾^Î^½ãE"$-tÁåm"¢LòD)Fe²\'É¥iæB½©æiƹm»ùË ©59WTÁZ×g%K¸¤TSUR%ÀhÆyß[s.)~rív= @j£ Zε mdÏék´ûkm»>èñJN?ÍAÁì+ÖyO]9³nÃì×v7OAÂþóÝvNË<¶j
¶kªò< þѸ;
cÝCjoÃ÷·o²õOóTf9ykw¦jÛ àp,XÅ`7礧ö8q«þç°uµÿ¸²Õ:h¼i«Ên¬÷gæe ^4ÏÊ`ÓÇ}gA0ÎQþ .3ð3áENBédUÏþe~3üû
Q:.¼zWóäm;û~±GÑtDN =ýk%-P}PC#$@LïÊùM?tf54 Ä@ÊUðp×ëH®Å«ópúH8ã ÊGÂ~a9{ öTÀõG¹
«÷ÜSÛ@\¥";Ûnó°T@Ì
&]Ø¿¨w®s+=0½²"÷(ľóÆTÞõOí`h)ìäAdýq&LWm½Û6»ëÚ4$ÐÀ" U@ÙtsG+2lÍF+ÓuÎ"¨.H»Æ}=²<
+®Àº]n£ÊmX¯!À±5Ø"«@iÁ OQíDµqb:pßúL䬼',ºÓ®ÁHêÉî+ òÕ
+Í50ÚøÅóD.ÉúÐÚFá¡íÒ¼ne°ë°>z`«0<ù(+¡ÀÅ)n<Y»~?K>û£kÑaý^îÙöBLÈ`Æa³#Pþiõr°y/ÓS÷ã]O%.ÊMEÇÿc,Ó.¤RpbõK}AKnìÿ3³SfC÷R¹"Ëg_Ï[ÔÆwß
%ËÈéR±òÉ&<©(ü¡¢ø r¿
´ ÖoCÙÈ ÅåÓ5¦dV
+°%arãÅ TÊ®O¦¡èò¡>[5
|iÀ®ê+K4
gµ!m;w³÷¹;ã½ø:xM´jv²i1Ã
C?ØúÝæpP\?µ]QÉÑt|H çÉlr}8µ[Ó{ÃaºGmkºÊ
zï_ òû\ÐLÿ8ÈYñL9;sÈ/ÄkÑpãøÂ9>[NËä^ }ÊÞwnlóýé±ÿ°lê"ÌoFÔ¥ñ}VÙ»$ÑH¦É%r¶ [cãët9:<Êí6¶±D<®Zo¶ò YO2»©b^L« Æ3Z²2<±ËB²§Ç@LË5<´þÝÒ÷
endstream
endobj
404 0 obj <<
@@ -257,36 +254,33 @@
/Type /ObjStm
/N 100
/First 919
-/Length 2856
+/Length 2852
/Filter /FlateDecode
>>
stream
-xÚÅ[Ë·ÝÏWplxY/> ÁQb AË;²<ä834¿Ï)ÞI5Ó-«io.Ù}ÙÕ§«ë]l%I%)×D'-X|¬IÚÀØ1þ/=Õêë$õ"8ihMJ%QéXHE.,4ÿ$Õ¯%ƤjÒ5U(qQÃßG÷1M¬Å$Ö}R7Ö¸×3=ItF2¬Ñp+%ñUNb·PÁ°O4I¯¸ß¸à±u>µUåu⬳ÇííæN:.5IFìgLªøß,·ÌÄ.@#Yõ´¬3.µlTLÀÎJÅ'*;fÒqÃ*©N¶kuò½Zª½ø¤¦:Ü [ixvp¤±?à6(=5 Ü$µ*>QLüqZI
+xÚÅ[Ë·ÝÏWplxY/> ÁQb AK;²<ä834¿Ï)ÞI=Ó-«io.Ù}ÙÕ§«ë]l%I%)×D'-X|¬IÚÀØ1þ/=Õêë$õ"8ihMJ%QéXHE.,4ÿ$Õ¯%ƤjÒ5U(qQÃßG÷1M¬Å$Ö}R7Ö¸×3=ItF2¬Ñp+%ñUNb·PÁ°O4I¯¸ß¸à±u>µUåu⬳ÇííæN:.5IFìgLªøß,·ÌÄ.@#Yõ´¬3.µlTLÀÎJÅ'*;fÒqÃ*©N¶kuò½Zª½ø¤¦:Ü [ixvp¤±?à6(=5 Ü$µ*>QLüqZI
«SëäÔYý){ê¸;(ã̼; ô
¼Ú)õùÚ;§>ÀZíFé>Ñ4'oÒ0@{
h8zK£_ÞÓhm\(eÂábSôLv6 0ñw23¿Jb6 ©´êÿB®Êp^àú¬cF~Ìè
+hÊÜjñîAM}{Pï>Ã=¸ÞüMAü]
-@ìrjPbkra~¼w¿ÂÅ»¿Ò)ÿÏ`.îBâÂ{÷F(ù:WsTìçhØú¹5zðàâôÕÿ~ºL§/üûòâôéõÕÍåÕͬB_¿¼8}yùâúåó§/¦ÍSÿ¸üþÙO®Nß°a!%])÷ñø$ÝÎË?¾ººÅo§ÖãÌÔúóØbìç%Çy¤#ÍññÅGMÄ_ÿó».Þ¤ÒéóÿB(ÊùBü}úâùõÓG7¸ÝéÏúÿx°O__{~Úéâôèåw7óøïÏ®þsqúäúù÷ÏçSǧ¿>?}Üü±ó7üÌÒè¹w7P5»º1©Æº'ªGéô×믮Óé³ô§§Ïn.ó£«g?öBv_²+ô+0" 7þ 0R³6~
-Æz÷Ább©,ü+,½åÁ}?¿|\Úqp !°[Ô+`4wNy7ïwS[îú>2Ì÷©ç
-#|;gf}8T§÷ì5à ZÈp ç3×Ô³:}ýÍ¿àârÅkÆyÀo_½üñÇÇw®çµ ×ôµa«'7ÐÙâ þz¸Ó¢q{ KÉåö Î)p ó+ú¦y}8Í«Þi^¿ºüùæmãú¶+iü+WÒʺ9CwyÃuÆ®FÂÕH¸ W#áb4\=
-zô4èiÐÓ §AO=zô,èYг gAÏ=zôjЫA¯½ôjЫA¯½c
-º-ÆÚéJßWWhÜê2¢Y¥1¼¡?Q
Øòx·®¼À
Ï®¯ò¹w£Ð=\§A0(@a5K±w¢øéÉóáH¨LTáKÑ{ÁÇ¡@''À7©ÁÀ"Ø°ñn/¿{
äHÜb1ØMöT[xµÀ¤
-ÝÆr$_Ø2²Ig¤r³#kÎ¥;üÌ¡¬ 8M³ÀN!Fx\ oîð0¿Æ³=|AÄ;"u¤ IÌN8r<+Ù
-¿À¨âCÔÄm/{ôx<ÒàN8Õó*¢½ÒcÇÃá=ßKr'/@¿ê^öÔNͳÈUO7-#ÃÛVô¢HâYųa_â]¼®£ÀÃò¨yOYGÛçxM×{¨G!P-/¡lº?r¼ì l¿tÌ®dë;dG`1Í
-I#S÷bÉ*¼Å` wO\EsEAɵÕm,ô[És/æá2éiK[9ã@Ã8n^ädOawð¥/À0³"odOÄ`w°e}
-
-c¯+4=JÒanXîùxpÚµ©ùÞN¹Ö½°{nx5d°sHlEû{Q,°$2IyV¢ ®Ûa¸.ð@Óó ðØ·ÁÀ
-{hàaàè£./pdLvx+|¢Ü l¿ªX°0ÀÈäpÛX8f¶áìñÒaÛÁÚ$26Ѽig,pËì
vï°tÉÈogº?ê¶,pËÜþ\ô?ÆFØKÛX¸eFnÏÞç»bB¨ ¼¥î ÄHªA\ÎÕd»×,j°Á ó÷{ÍÔ6]-¨MâX!¢<[«ý®P^±Åðl©HÔ궱ÂXï2Ao`Wþ®P^±wx½Ë8ûÀÒ3,ï6y»ßÐèu<á{o.¾m80¸$þú6 {϶Âohع#üfëÀÎÔ? uP£´Þ¢ÔÞâ¸G©½G©½G©½G©½G©½G©½G½Gi½½ôFÐAo½ôFÐAo½ôFÐgz¾Ñà<R£Ä¨1Z5Æc1èEwÝ¢»nô¢ÿdôÈlÜÊzaæâf` ¹¹þmËúТ"Ú£î1\¬u+%Q·±,ðÕ«Á2¡øÖ¦êÝHÝÁzx^Ýax'Î7ø®^wé@³ÂkTÙfÉøN1x0ÙfÍH§º×ðf5(iómT0?¶eA¢ò;/x Fw¶(<oC9¾ á½¹Ó
-ÙÑFßt¨D¸QßÎW+òm0ÄÛºYM¬+z<Ȫïd{,l@ÇJk=8ï¾åMóæèH¢^#2ß,^íàÍpÇ &M(go°=·±,Ht
-üh\t·w¬#«ÛXV4ÌËvÈälÕlvÌÒb°Ü+Ü!ð ÊTwâYЦ$à10eñí^ÞËYÐÚ¼xÇ\ñ½æ[ÌÊ^îèá&Ñ,ò]ßÔYðO÷mKý^ÜGíñm·$%7ÄÞßéwõsÅÒ¼ Ìè
-2 ïwÚôÒ}
áUAàù&°2fkglû
-Ãt-ól£@yÎå3|Y ?T½F¡·½=à~p«ö¶hï²ârnñ
-祹"mófEJ,§A*_OreÌ,ÈKÄ4*q~ ¥D6Üwð¥.h2Ùlïw$+\Á]Ý¿À1pDpûY×s&«z·;cÔ2°¨o¾ØïÄÛƲ ì¬Âô{`éûeÈ<+¹/`YPF¤]}?:tQ÷l1ÙvGî{A·«Ã
-¶1uÇwdzw©ò½Cg
¼pí³ñÆ HðFÞc·vpçxauè
-¨õì85»¿PO+8 nùWa°±<ûLmlÚZZózÕú·_ÎÙpêª;Ào{¿ x×KÖgé÷=Úá,Ð&BÈ]zCß×ì]§!ºÐñò^ù~fÓùþÑvsèíâ½EÍ|óc×õø×
ö»Ëñ¿µ¯ö«¼ÊàXGi9JÓñ½Å§
-ø£Í±c=Çzõëã« ¯,¾
-°ø*Àâ« ¯,¾
-°ø*Àâ« ¯,¾
-°ø*`rêÿçC
+@ìrjPbkra~¼w¿ÂÅ»¿Ò)ÿÏ`.îBâÂ{÷F(ù:WsTìçhØú¹5zðàâôø?^¦ÓOÿ}yqúôúêæòêæ%V¡¯_^¾¼|yýêųËSÁæ©\~÷üé'×?¥o
+NØ°Ì®ûxrJ/@nçå_]]â7Sëqfjýyl1öóÈÇã<Ræøäâ£&â¯þùí÷ÏnÒéôù!å|!þ>}ñâúÙ£ËÜîôÅgý<اo®=?íÄtqzôêÛyü÷çWÿ¹8}rýâ»Ëó©ÊÓßN>ÅnþÄù~FfiôÜÏ,»º1Ü`ÝÇÕ£túëõãëtú,ýéÙóËüèêù÷ ý²Ðæ!`Àì
+ýÀ?Ԭ߱å}°ØXªåÿKoypßæ/v"hìu,SàMÀûÝáÔ»¾§óýGÁaê¹ÂßÂáÎYߧâé=»E
+82ÄÀùÌ5õl N_}ý/¸¸\`ñqðÛW¯~øáÉkÇy-$¨À5ýlíCØê å¡Ç
+t¶¥8¼SwZ4n`)¹ÜÀÙ1Å.a~mBß6¯§yÕ;ÍëãËnÞ5®ïºÆ¿p%| +3t÷ç1\háj$\«p5.FÃÅhÐÓ §AO=
+zô4èiг gAÏ=zô,èYг gA¯½ôjЫA¯½ôjÐk1Ö Ûb¬ýç®ô}u
æÁ®¸(#*@ÈQÃúU-ßag_âÂç×Wù\ϯ£Ð=\§A0(@a5K±_EñãÓ7+ 0Ã#P¨Â#¢÷2C&ON!nR-+E°aã×a¼úö5#9rÅ`7ÙS!nYàÕ6tË|aËÈ&Ê
+ÎB¬9îDò30²&à4Í;
ár%¼-ê²ÏöTðAkîÔd$1;áÈñp¬d7ü£"Q·½ìÑãñHG;áTÏ«t@öJkö|,ɼ ýª{ÙS(:i6Ï> ?V=Ý´o[Ñ y.gÏ~wñFhº;ËS Zæ9>em'ã5]Bî¡
@µ¼2²é^þÈñ²°þÒT2#B¸ï]Å47ÏC©{±ÉdÞÆb°@»'®¢¹Î¢ äÚê6úR ;âÐ<¼@ ½1mci° gHrÇÍì)ì¾ôXàÂqVäììñ¶Ã£OA at aìu
³GI:Ì
+ËÝ0N»6õ"? À[Âi#׺7 ãQpÏ
+¯vÈpp/A&")ïAÀê"QÀu;×hzdû6X!s°ÃâÍ<±Â@ðÂpÔÅó¥±ÎÁoO4ñ;íWµK9rÃü N`ËÇÌÖrñ Ü!=^:l;ز@DæÒæ07íÌ]À6n½Ðî.ùíL÷GÝÁnÛþàÃØ{ÉpË·ÌÈíÙû\`w at L·±ôÃ] IµC"˹Lb÷ºB
+68aÞðþ`¯Ú¦°µ)B+sBg+ÑrµßÊk¶Â~-ZÝÁã#BëýC&è
+ì
+!ÒßÊk¶ @ð¯wgXzåÝÆ"ïö½é!!|OÃáíÅ·
+7ÄßÑpPß`ïÙVø
+;wßnØú´jÖ[Ú[÷(µ÷(µ÷(µ÷(µ÷(µ÷(µ÷(±÷(÷ ×Þz#è 7Þz#è 7ÞzãLÏ7Gc5F±ÆØbì1½è®[t×^ôÙ-[Yo0Ì\|ÓÌ 7×?£mY_ZTD{Ô=¦+µn¥ä2ê6£z5X&ßÚT½©;ØRÑ«;ÏáĹãßÕë hVxj2ÛL3ß)&Û¬YéT÷hN´ù6*ÛƲ QyÌ<£;[·¡_ðÞÎÜi
lÁÍhE£
ï
+ºVT¢Ü¨oç«ù6âmIݬ&Ö=dÕw²Î=6 ÖcO¥µwßò¦yst$Q¯o¯vðfA¸c&H³7ØÍÃÎÛX$º~4D.ºÃÛ;ÖÕm,+Mæe;dr¶Èj¶J»DfEé1XîIîLxeª;ñ,hSð²øöF¯ ïå,hí@^¼c®øÖ^DU¹½ÜÑÃM0¢Yä»
+&dÁ[<8ß{¿×·ãQ@{|Û-IÉ
+q§÷wú]ý@±¢4¯`B3 ºÂ}ö»
+mzé¾Âðª Bð|XF³µ3¶Á}
áEºy¶Q <çòʾ,Ъ^#Ð[ÉÞJp?¸U{[´wYñJ9D·øóÒ\¶y³¢ %ÄS ¯'¹²Cfä%âNA8?R
+"î;øR4 Ål¶wÌ;®à®î_à8"¸ý¬Ïë9UD½Û¿±DjXÔ7ËßClÍwâmcYÐDvVaú=°ôý2dÜ¿°,¨E#Ò®¾:¨{¶l»£÷½ ÛÕáÛºã;2½»TyÏÞ!³B^¸öÙxc $x#ï1[;¸s¼À°ºGôÔzvÝ_¨§A 7ü«0ØX}¦66m-y=jýÛ/gÌÊl8uÕ`·½_P¼Æë%ë³áÔûíph!ä.½ÎÊ¡ïkö®ÓÝèxy¯|¿E³é|ÿÅh»9ônñÞ¢f¾ù±ÀzüBûÝåøßZWûE ^åÃJðH¬£´¥éø^ÁâSüÆQÊæXϱc=ÇzõñUÅW_X|`ñUÅW_X|`ñUÅW_X|09õ³/G
endstream
endobj
577 0 obj <<
@@ -890,27 +884,38 @@
endstream
endobj
722 0 obj <<
-/Length 2578
+/Length 2582
/Filter /FlateDecode
>>
stream
-xÚYKsÛ8¾çWèHUE¼ø@MíÁ3¤²»É!qjjkf´Y\S¤;©ùóÛ(¦ì\, Ýî¯æû
-ß¼{Åýï/·¯~z«ÅFpf¸ÛÃ&3ólrÍJ6·Åæ÷H2Åäv'DÌ£·[DM»Ý©LGý±é,Utªê
-÷M½U2zÄ?¶ír¨§oOeÜþçöp^+
bJ+àÊÝø ÷lþô6îÝIÎøËb£é`³#ßw1çÑMQÀ½J§È§ÒÑ9ßoe=lã$Êïí/&e2½°ò¹´u~`'% ;¯³5~ÞYÐÔ:úL4CK³aþäÛZ,ò>§Ñ<æe½¯¢¬ïqIEH£¼(÷4ß78tRµeÞÛ :^ÖH·ohvÊû¶ÜÛî5Lé»sÞnEÔÁ3Gh(ÈÞT½8& W-Rÿv3Y´ªO0u÷·îWÚ9S¤ÎX°ÑJY°£;)Ô÷9ÉX2>>%鸾ØAüÄ)Ó¹V`0ºÜ!è²#:ÎáuÕÐï¾µðFôݦª¼ïm»°xè˹u©UëúµAHÎ.ºc3T]{F G$`÷}Óz槫-,îås¶ôºV^úSÙuÎòWÊqEñ½Å©È«íãÍõûãuµ²W^XÈñ
?¿óñfí5KõhÀ
-°^ößóí{TUj¢¡",ÖfuØ8sqð>eD÷»+
Ñï*KÄóº Oûå{J×,ìEBÝ¥i¥Èiµ!öC½ï˦îVõN¼¥CÜûhûkÞ%åÔ½Á`H²¦?Òôp)ßÑ*Iuyö9z1AÐ^¯ÇÎ2=¢Â¾ùµytÚ+¬ÖÄ:gl¿_úJE27°äH«H1p?`gRÚ¼øG°8ðKZ ·^¹'K¦å×ßñwEXxÍw@bifæHW5ñ¥[ ]òÞöoþàB8Ý5Û[EYÃÍÜc
-Ä<b¡¶b§¥ F` ½(ÆNI=ñ7íѳ%æª aX¬FeRܶ?"q:ªhÕÌám³Q!ÝE×<D^
-8[s¢%fÉõûRî4på#³ÙS9Õµ D-!¤HfÙCç}yø6KÑ L4îSa«åú$dúæ/ۡ÷ã]ßu3ùE.ùæ¿ÏÏL®ü?DÒ©DÏdâé5§¸¤h:$#®pl»¾¸ïS¦ÛÛbhíR,Æ;¢¬gåÔ)\÷8J¢²§ÌðÌ£ÁÅ@ÜÌ⧡ó§OèCÕçʯ\Xì:Ã8õªÁg¼z[eÅ´ÔhÜ%&"(£ÔɶÏËÊßÕYûÙ¾41Ró(ìJfC6ÓÙ?Q[¨v0»
!4@Z:/$cª(6Qí^GÎópûÜP¢¬ò»²*)¹§¯ð϶CÉlONþL¿Pé¢]@¶7!ók9cY<³J¤ßZ÷Ô8ô¶Å1
-ÛÄp_RòÚy+ÃLlfshSÒTCe3PÝÞ|:¯;uq¿+Ô ZÒ]¿äÖf:Ã2¯?hÞY
-t1ÆÕ1ÓuËm ¹M_ÃoNßà2]»íÏÈò<²>#¾ÏëÚÍØgmðÇ>gÄM>g\>"í£m}^×Ù¿Ý~úòf-Å ñÙ³Ç#Ñ~Ö ,3IÐã©#JݺÇÚݾ-Ï.0 ¸þÂ~å««½·#Cnÿ¨ëUb7Å,ã6áÛ»®ì}®g2Ëæ¼÷ÖJ¦uÊkÿ,μ¾æ'@´Ïø2ûØP=©#]m¹Êy0Åßç\@`÷¬´C-àÕyb.!å;Bô0Õæ5]b±ã ÛBär,T¼°vßæçc¹Ï«°ÅúÆRé:H,|¨7¡»tuk(Â}KÈ»ûk{}ìu
-:¯æ¢óÉRCä5!µ+Yp^ßÑðéØøs}ÞöÎw`RÙ¼Ée`æ¤ðçh°nà8N~Ä2~ÁÀcÛ÷ÇÅUï¾¼M#@f².x¹up1¶+[*)qê`?l©àVaà_³©çÛhÀp|
-7+ë ð}?Ty»ÞÒ,fÖñ[hÒ-Å̱rò°D õñU0 "<Üòd&e2º]EIæS4ßCÐÕѲ8¸êiL7è&ñÑ÷5!ÑzT4 Eü=©Ó^B¶Õ¡¸q/¬N^À3&°Sô̪@@rÚeïç¡võshP!k)>ù 'fÔ<
¿9ôä¯2
-
;y¸
-4áKÞÓ/øNçMí]z`¾0(ý¯
-vOG0³}È,¬ºG0¼t`âC¸'ã44"(¨°rHØ)©»*£ðÞñuHùfðçfòQ~-ìB5£EjKáñM|cÆËϸ`¢»|~1sVÎI ¹KòÔ pâ5hCÈ$vX;.·Sß!Á¨Póiô@{U¼eèûf5ËANFkþ?ú#N\ AÙÍZýÏç±i§Á2ÿíï!ã^Ê4
-ñ6*/^
-ÓÙ§|«SÅÆU`Â-Õæñ15û³®\\s)>aËe
-ß!h¦ÙL 8úø /íÖ3Bµ®ùÐrÑÐâ$¸R7õÎ HðONe÷.P¡sYo ²i¾[4¾Ý´^? (0¦M£«bïø3ômÂy½9Ì®!ú¿ïÛ7!}NÂɵúFfVö"r¾ÈqõÚâßÄ(Qä !ó©×ºG·»p)_ÕZjØ¥Z_EÎÄ%*vPÇ:xD£àÄá:ÞW5yAK/¥±z¿&ûNKcÝeþÖI'ÅV¨ã$Èÿ[Y²,Í_ØáÝjÙ
-jª:±a<÷¶$o5Ñtö_N ¸ðSÚûÐ1{\Ó1¤ÇzL,|ÊMÀ^ms¦%/CMëÞ@´ï_Ã.o·PR@ltÿÿo#¸À*Ú'±(fñ2_yï]ÎGm|ùb¨[v®N!~ÎÅÔ}ª6ïH2¡1µ7,ËBß@Ï6½¹}õ?μ
+xÚYKÜ8¾çWÔѤ4zø%öÐ3ÙÝät0XÌìÁm«º¼í²~t'?¿¤(ùÕîJv.eI)"?>ïîw|÷îwÏ_n_ýô6;ÁæZìn»T3ÎÓ]ÂC&T¼»-v¿)&÷!"¼Ýë8hÚýA¥aÐÎàPÇ¡ª¾Ñ0oê½Á#þ¶Ë`&Þ=ýiÿÛÀ±r~¬©PWöÄO¸gdó§·é|ïArθÀ'tH_¶ød÷û!â<¸)
+8W)àùTapÉò½L}Ù½ÙâE'L&+KSgWùq¤dtçt¶ÅÏ;za|C&¡¥Y
+Ë0²í-YÑèñ²Î«¡(ë{\RA +ÊæyóG+U[f½éà#A5Òí³¾-sÓ½i,íUârwÉÚ½:¸æÀM¿ÙÁýªð"°9:Õ"õoø&
+6õ©b¦¯ÎâþöÒýJ;SóØïd[´&Úïè.D
+õcÅ}N2WIz$®';^²(aQ2²ó"×
+FÓN(;²¸¡3àNW
+=óÖÀÑ{g*¨²¾7íÊnà& /Ö¥6ë×Ez´"Y# ºdH8êNÍPtì\X8¼VÉû¦uÌ[OW-¬ÎåK¶Âm'¬ôç²ë¬#å-®å*
+ãzUSÛÇëçGÛj!eoÜp¨Y,ÇþüþÍÇYÜ àeÿÝ[?AÞ£ª y`È´N4«ýÆ
÷)-¼¸§Ì^\é)~|W"Õ½Ê×wì(
+N³°
+]öp*ENjbÿ8Ôy_6u·©dæ-âÞGÓ_ó.ÁD$çîuôC5ý¦Â%(~G«$Õtí=Xstb, ½Þ¥á
+yókóh µWX¬ÂÈcú|íw*,ñÒÀâkF"m"IÊ ÀýÉpÔæäÞâÀ/iîzã4#
+\2Äße¤`áQº Þ9Å%©^j"ÙÔÄn;lBÈ{Ó¿ùât×llqe73YÆs
Ú¬¶Öhh!Fú¢%÷Øi7-Á07}HÍ"5*â¶ùQEfw
+é&%^3òdy(dl}nËë5×ïkHÕÀS´|LWeU×µD
+"^dKòòøm¢Ahì«ÂTëtIÈüõ_¶CoƳ¾ë$ fü\óÿÌ$$ùr¦âp!O®D4Ç=/E;Ô>¡p
cÓõ%Ä}¸|2µ$Xn¡5kQÒÏX²lPc¡HฬÇQ=`ÖO2q2¯Î}}Fgª¾¼Tneb±ëlcIÖBðZéme8Aã!ÖA)¥FH¾0}VVî¬Î?ÈdûRGPJ-£°U*ijý>ìæ³¢¶Pí`v+%>Chµv!_HÆ:TQ¤ÚÞ¬çá s¹ DYeweURrOo1á_l!;ü~¡:'D¹Ølo|æ±ÔrÊÒhaH¿5öªqèlb¦-ᾤäµsZWéH/0çØ6g¥©Êf º¸:ÐòºhKxgî_ù
ÎNù%ë°*S,ðúË&@Ó`\s\»Üõ×ôÆZ8<3z
8ÚAólÎaê3âyVoÐnîÀ2kSøWt8vÙ"nrÙâúúøÒ`Më2ºÎüíöÓ7[ñ+eÞ\rh³])Hò.Í]PàÖF Ýåmy±Á_Ôºû·ìõÞÙý// ¢W±~ÞXs±DÛlnowù·ÒÉ4]jòÞÙ)Ô9«ÝµØTækv,ó+°O
+¥Î³
+ÒVÇ1Óèû(
+ôºÔ^t¨-V .õÔR®DwSmVØ%9ö
+°!DΪ±4I}k÷mv9yVù-ƵJÛ;L9f¹§Þø¾ÒÔUláwÍ çè7¶áö
+×5gt. .
+µB^FÛb÷àñ
+Nû®ÏÚÞúL*µ5¹Ì¬î;l¸!â1£Oèwjáþ´:êÝ÷¯iLÖ×¢b±´..f@ ÂteKÅ$N-Ì B²=õ ìêÉÜm6õr»
+Wage½ ¸ï
+P5k·ûA!K¥^ôúVÄ!báXù Ø"@õëU3
"Üòx!e<¸B\EéNÈ!hZ· «£ejpյѮ×Mìâîk|ê$íx¨c è{R'# !±<«CqãÄXÝ)§L`è)XTd{³ë®Ï9+|Õê çØ B*ÛL|rANÄL«eò~sìÉ_eàKvòpåi¬§'øNçMí\zZ»0(ÝÓ
D»§O0§}È[+¬úF0úF0qÁÛ±áTcÙ#쫤]ÈY}Q8·¼b%K¾ÜwùÅ(¿ÀæGv¡ÆjÈÒ΢ôU¥pø&|´àåg\ÐÁÝ@>¿
+Ê3+ë¤ Ì¦wj 8qÁ
+´@ÆNCÈ$¶X;¦Ó©ã`T¨ù$x =Ä*2ô}³_ ,Gkþ=ºO¬¸@²Ê/cÓ!Ëü·M¹/m):)ÀÇÛêC¾ºe( Î'rM:NµW »TggC«^]ð}
ä¬+·EcZOÅÁ'l¶lá;Í$]=2á¡ÝÐ:F¨*Â5÷7-
+-Î2Iº©Eß\r*#8w
+NÈ©çv$KÿGR4®Ñ´]9 (-æí¢«b÷ø3t
+Âe¥¹Ì¶î;¿ëÛ7>}NÂʵyGzQð"r¾ÈqÚêâ'rùÔÈmÚ£[K]¸mj-ÑlªÓ7Ñ31EÅ*XHq4X\Çóª&+hé¥4POrý×d?ÒÅX{;uÖ¡ÇI±ê8ñòÿVÖ¥¬¾KRÆWvx7#¤Z¦ê
f¤OGŽ-É[uð'}û/«\øÍ* í¿}è.=néÒãpL,\ʵÇ^ms¡%'CMëÎ@B×¹]În¡¥Øhÿùw#¸À*Ú'ó±(bÑ:_yï\ÎEíÐ#ùú?b¨]¶®N!~ÉÅÜ]ª¶ìH0bj¯YúA¸ØôæöÕÿ ê
endstream
endobj
740 0 obj <<
@@ -1347,21 +1352,15 @@
/Filter /FlateDecode
>>
stream
-xÚÅXÛnÛ8}ÏWØ<$¬JN|6.à,ºXAã.°hû@KÍ-Eª$G_JâÐ"m)i±¿èBsfæpæÐÑh7F¿]Dæúvsñæ~¾-Âålv;Úd£Å2¢ÅhÝñÍl´IG®~¹O'Ó«QûöNíq{CQÑöá ÑKð¾ÄYeFùöoý^Ùü®aã(\N¿xÙÞ$Ȭ$µùÄØßbuÀøhB#ÛÊLâyXj¬Éæ! &'q¸çÖäÍl>½Ê«§^?ªôvÍ,ð븽ޯþx\÷~Ý
-×
ãõC©a;?tR)m&xî}!°,©\ã0³ùPü8©?îgÒÔÞç
-Ìb·ºö7
ȳTS3
¯ßÀd3'åìµÁjÃhÖû¯Z¦øaéR»¨Ð®#¨
-õQÇÓÀd3Æ}ÒgDH5 $Åf)f&ÆLÓ¯Á¿äs4êØM¤ÀP~À ¢\CÊw²dÉ1R¡fAØ[ÂlU f!±+sí÷ ;-)NËܬù¤Yȯã+áVwï¬Ì¼=N¾öbí¥·N¦Bøl¿gøðR¡3×¥@g´MÝÍ<iÎNoÔÏ
-gÞV at 7K.d(C´ÂR¦ Rad¨Í3?4U·®ö§Ü¸K °Z«´ªÚï¹Â§±'ò\;ÀèµÅ~A)"ÔǾGl*ÝN§/ªlá.4ÄïÂ3õ3sn) ÊÁõÁ [£'Mõ6ïJ´5'÷¼¤)Y?
-[q;ÀN;NÓÅͶÕ%¡r`*}ßÚìJ?½{ôd
®
®°[jÞPÌvj/óíñûé½inÎE¹ÿuq¬¦×
-Âæñþ4"sóCþxPqs bUöv*ÇBoÒ¡Èfôáã»õûÕåãЬ9®
-¬&ë: kH +ü³ªK P`x©\ñ'ÖÉíeynM¹JÍ]Ðnp©´ò@ÂÆBðÁöQKá7¤Òàµô%²·ÛyèàË(8Î6{t@;
àÏ´r
-¥ëã"Z©Ù/·Éõc¢Ôëómå\®8)úh`©bh8 C
-Ð/¡xvºËè0$
-ü(ºª¿9!@ÚȽ ç³:v]EåoÕ<ÝC»ÃÏ(×!÷:«ÀßJkøضsqqr¤LñN`H"/JQUfð½éO²>ãòCOß¹ßN¢È6GPK¬Ö
-Zï:#öÀÇoBSrW'58ºnÏïüÉD/xÕöwQ
-Hô¡=Y|3Í[t¦·ìG
-ÝåU} Ôß5^t
-¦«ÌαÁ¢{Ôk4Kʸ'±"o2x8U>GQ/mNo&áb>ÿ?´ý§åÍýbTG˸þeÍÃøöVCÃÙ"nçÜ,)ëÍÅw6h
+xÚÅXÛnÛ8}ÏWØ<$¬J¾Ø<¤@²èbQ»À¢í-Q6·©Tý}GI¥¤Å^ü¢EÎÃCÃ$üvèëÛÝÅûõv²ñ·«Õb²K&É:Xøá|5ÙÅOW¿\O³åÕ¨c}§¸¾!(hýðh¥è|GJòýßðà_Ùý0¦aào[ÇÖ_<¯o"¤W`>Òö÷X0nLHmd_èI<Mµ5yH³Ðßkkr¾Z/¯Ò"å1¦¹Ä*~®é~Ö×ûÛ?ï@¿n
ÝwãõC®anè¤")R&´àiçeNÝàjÍâͤá¸IS}0äéÅÎêào¬ïXÄY¤àÌÐBÃ7fºsÖäm4ª`úRSíÏdÌ«æ1þâÆP]
+¸ äp]AÉZ¾zI6g¼Kû©FÄ8Ã,ÆLG±¹øêýa>Ë *yPÁX8ò¥Æ5¤ºNBÖHUªÍ^Üfëá<¿{ü´¤8ÍS½æð_WÂîî¹Õó8ú:uàL
a´ýáÓK¥N_S:Ò:uóµ¿Î^¯TNÏ
+kgÞn\HSÂR¦
+0¥ÂHS'ÝýP=íÊ:rí.1¥ÕZ¥ÅXÝ~ÏîÇÈs1l?C¯=îEhû±éA¦Ö }ÞXmó¾&~»© pK®oy °5Úk<+·ÑX|o©ÔÐÙH[sòÈs2ÛMÃ'\à°~Ï©ú7²ÙöPrCLe×·:»²Þ#z²Ò*CvOõÙA¥¶Aþc?Øúæ\_W§ðÓ¼l&lNQþèéBôÄc»!VáÎαÒz^ôE6ÛF!>¾»{;FùÐ×kNKC½õɲNµ3$P6ü³"ÒT ALá¹råcLH\&wå¹5åj5wA»Á¥å6
à£í#HÑmH¹ÝKEÆKñKä`·ë 3_^O:·"ZíÑíe?W^ÒÂ)®wÔÔúH%È>©¼Ít®#(P¯Ï·s)q
+ÑÀR1Æ28@±Ø-å¡xvÐe 2Ì3üÈÚº¿:#ô ägçs'&eìÚª»UòvoÚ~F)¼ÓYþ[Ãm;
+¨Þ¡2ÆMyS$*Ú0½×ìM÷ØËQô §úÎõt1-ÚA-±º«°z×9±=~ªIÉMT¯q]?ßù³,xÕö7Hô
+¡=Y|3¬ktº×ìG
+ݤEyñÔßT^´
+¦·-'53öQ¯Òd.!F\hñ@b¹¼Î੯|Q/mNç3³^ÿZÂþ×òæ~3)ÇmXþÑ2Ö~¸X ´Ð_mÂzÎ|ãL¹Û]|`° K
endstream
endobj
843 0 obj <<
@@ -1490,33 +1489,31 @@
endstream
endobj
904 0 obj <<
-/Length 2812
+/Length 2795
/Filter /FlateDecode
>>
stream
-xÚ½kÛ¸ñ{~
û©2sõ ^×/MÒä°wM.ÈnQwªµi[Yt))½_ßyIí"~±Éáp8ÎKþb·ð?>óåÿåí³«7Ù"ðUîçÁâv»D
Y°H}(YÜn¿z·{³ü÷íOWot8Æ
-#ëÒu]¶eQ-W:J¼OEÕ¦Ý2¨Ý`W,¯¬yr,aæ¹â`Zãø)?I¬t÷líPÖ¦áí-êé69òQMùÀ¯á)5âàX\¬,W~¨aÀ¢: mÎ
-eøg2
-E[~Â(ôjg]Ùîj¹JÒ$Wö»³Ý'&hºFA|Wï9GAªtöÒøÍ´kÚÝÜÂT¥Ù õmW¯ÛÒÖs´WU'S14¥©·eaªWÎ@fÎË|¥³AMxû(ô^,WQ{-o·8K¼Ê¢¼îyòi'Û
-NËñ*QÞ8i÷EËÊV ÅGuÓoÆ{èéÖ;AÍ£ÀËÓÿà+Ö»ð<½¯»T{GÜZB
¦ðø¶< ç~oj7máÚ@øÖÙÃ!åð@ 8Ñ~>Nùêf¼úS.·ìÂPNÂí
-Aÿi]gþÌãÑ)ÓsêÑ: õ ÒH=0Û»=cu'ÝÐi¤ÜÍçFbúK´ðÃçY¾/+¸zÞgxÒÕKz§=eýs\@©mã@âafo»wlK5Ï-¼kÛ¹FÐ@ÿDF³ÿÙá;à}Û/]ÈcĵßüØ7j§Ï©coÙYÊ4M
¬FWng`[ÀÓ±*"}n£æ(^·¼«kº¢b\ëÚ¬á¤ÂÉQt7 at XãE÷E½3ïCäO§äàêÂPŸw}óë*ö}ï¥gâxÜ;âyÉæµld.û«Hdu¿ß0úÚÖëªkX°pR2,L[ÈÒ ,
-6EwÄóF¤¿.Ñ!®VȦýë;\ÖkëY·Vô d'~½æ)Ä1Ó>%S1÷xV¦o¨ÏÁ!ÉîMuäQYÿp7°£3àM@ö;>×ví±v{KàMÚ»1[#}
?.Ƴ
-Ü(}ÎI$e GhÐ=0C%Q#$AåqRÔ»Ã^¸|®Â âË*G±÷cù<bÆð²¶Æ,w&~ýÀc.âû'{U?fâUL$}Ĺ¹~ýîÅÝÈW?ÌçLãöÙq^AØë<ãâaôÚ°Oèa¿%Dë XØÚÈÀñÂÁ:Ã(ËI¢©
:ð&ì%Ø"0uÑc!Ò³+Ýç6±>f/ï£a:ns0ìéèKêÉ>íÝÐê2>Ú<'è¶ß6ÆB8êèYmm% ¨õäúGøP»øPÐ}ä÷¡k1"e÷Vì½.ß×Æ-bS ¤êeÆ1`ïI½ôQYèýÜuê?ïý2Ó³àbèu/Wq{oÇ*ì$
-^ÛÛ¹$)צ}ð®>0ô¹"Ä>î
-?-1¡ 6ú¹"³Øûå3p±ù&àÞþQ£J鸶w @2ü3²úÔ5oZpÍj&l·åºù«î]î51ÕUú
[TRUNCATED]
To get the complete diff run:
svnlook diff /svnroot/rsiena -r 161
More information about the Rsiena-commits
mailing list