EBSeq/DESCRIPTION0000644000175200017520000000343014516030502014235 0ustar00biocbuildbiocbuildPackage: EBSeq Type: Package Title: An R package for gene and isoform differential expression analysis of RNA-seq data Version: 2.0.0 Date: 2015-12-8 Authors@R: c(person("Xiuyu", "Ma", email = "watsonforfun@gmail.com", role = c("cre", "aut")), person("Ning", "Leng", email = "lengning1@gmail.com", role = c("aut")), person("Christina", "Kendziorski", email = "kendzior@biostat.wisc.edu", role = c("ctb")), person("Michael A.", "Newton", email = "newton@stat.wisc.edu", role = c("ctb"))) Depends: blockmodeling, gplots, testthat, R (>= 3.0.0) Description: Differential Expression analysis at both gene and isoform level using RNA-seq data License: Artistic-2.0 LazyLoad: yes Collate: 'MedianNorm.R' 'GetNg.R' 'beta.mom.R' 'EBTest.R' 'GetPatterns.R' 'EBMultiTest.R' 'PostFC.R' 'GetPPMat.R' 'GetMultiPP.R' 'GetMultiFC.R' 'PlotPostVsRawFC.R' 'crit_fun.R' 'DenNHist.R' 'GetNormalizedMat.R' 'PlotPattern.R' 'PolyFitPlot.R' 'QQP.R' 'QuantileNorm.R' 'RankNorm.R' 'GetDEResults.R' 'EBSeqTest.R' 'Likefun.R' 'LikefunMulti.R' 'LogN.R' 'LogNMulti.R' 'f0.R' 'f1.R' 'GetSelectedPatterns.R' BuildVignettes: no Imports: Rcpp (>= 0.12.11), RcppEigen (>= 0.3.2.9.0) LinkingTo: Rcpp,RcppEigen,BH SystemRequirements: c++11 Roxygen: list(wrap=FALSE) RoxygenNote: 7.1.0 biocViews: ImmunoOncology, StatisticalMethod, DifferentialExpression, MultipleComparison, RNASeq, Sequencing NeedsCompilation: yes Packaged: 2023-10-24 21:04:01 UTC; biocbuild git_url: https://git.bioconductor.org/packages/EBSeq git_branch: RELEASE_3_18 git_last_commit: f1d4e44 git_last_commit_date: 2023-10-24 Date/Publication: 2023-10-24 Author: Xiuyu Ma [cre, aut], Ning Leng [aut], Christina Kendziorski [ctb], Michael A. Newton [ctb] Maintainer: Xiuyu Ma EBSeq/NAMESPACE0000644000175200017520000000056414516004476013766 0ustar00biocbuildbiocbuilduseDynLib(EBSeq) export(crit_fun, DenNHist, EBTest, GetNg, MedianNorm, PolyFitPlot, PostFC, QQP, QuantileNorm, RankNorm, EBMultiTest, GetMultiPP, GetPatterns, PlotPattern, GetPPMat, GetMultiFC, PlotPostVsRawFC, GetNormalizedMat, GetDEResults,GetSelectedPatterns) import(blockmodeling, gplots, testthat,RcppEigen) importFrom(Rcpp, evalCpp) exportPattern("^[[:alpha:]]+") EBSeq/NEWS0000644000175200017520000000723614516004476013251 0ustar00biocbuildbiocbuildCHANGES IN VERSION 2.0.0 ------------------------ o A new implementation of the core functions EBTest and EBMultiTest, which scales up the computation for big number of conditions to compare. CHANGES IN VERSION 1.11.1 ------------------------ o Fixed a bug in EBTest() which may cause error when performing isoform DE testing 1 sample vs. multiple samples. CHANGES IN VERSION 1.9.3 ------------------------ o Correct typos in GetDEResults help file. o Include an alternative method for normalization. The alternative method is similar to median-by-ratio normalization, but can deal with the cases when all of the genes/isoforms have at least one zero counts (in which case the median-by-ratio normalization will fail). This alternative method is developed for single-cell RNA-seq analysis where the dataset always contains a large amount of zeros. CHANGES IN VERSION 1.9.2 ------------------------ o Fixed a bug which may cause error when input a matrix to the sizeFactors parameter CHANGES IN VERSION 1.9.1 ------------------------ o Added Q&A seqction in vignette to address common questions CHANGES IN VERSION 1.7.1 ------------------------ o In EBSeq 1.7.1, EBSeq incorporates a new function GetDEResults() which may be used to obtain a list of transcripts under a target FDR in a two-condition experiment. The results obtained by applying this function with its default setting will be more robust to transcripts with low variance and potential outliers. By using the default settings in this function, the number of genes identified in any given analysis may differ slightly from the previous version (1.7.0 or order). To obtain results that are comparable to results from earlier versions of EBSeq (1.7.0 or older), a user may set Method="classic" in GetDEResults() function, or use the original GetPPMat() function. The GeneDEResults() function also allows a user to modify thresholds to target genes/isoforms with a pre-specified posterior fold change. o Also, in EBSeq 1.7.1, the default settings in EBTest() and EBMultiTest() function will only remove transcripts with all 0's (instead of removing transcripts with 75th quantile less than 10 in version 1.3.3-1.7.0). To obtain a list of transcripts comparable to the results generated by EBSeq version 1.3.3-1.7.0, a user may change Qtrm = 0.75 and QtrmCut = 10 when applying EBTest() or EBMultiTest() function. CHANGES IN VERSION 1.5.4 ------------------------ o An extra numerical approximation step is implemented in EBMultiTest() function to avoid underflow. The underflow is likely due to large number of samples. A bug in EBMultiTest() is fixed. The bug will cause error when there is exactly 1 gene/isoform that needs numerical approximation. CHANGES IN VERSION 1.5.3 ------------------------- BUG FIXES o Fixed a bug that may generate NA FC estimates when there are no replicates. CHANGES IN VERSION 1.5.2 ------------------------ NEW FEATURES o An extra numerical approximation step is implemented in EBTest() function to avoid underflow. The underflow is likely due to large number of samples. CHANGES IN VERSION 1.3.3 ------------------------ NEW FEATURES o In EBSeq 1.3.3, the default setting of EBTest function will remove low expressed genes (genes whose 75th quantile of normalized counts is less than 10) before identifying DE genes. These two thresholds can be changed in EBTest function. Because low expressed genes are disproportionately noisy, removing these genes prior to downstream analyses can improve model fitting and increase robustness (e.g. by removing outliers). EBSeq/R/0000755000175200017520000000000014516004476012743 5ustar00biocbuildbiocbuildEBSeq/R/DenNHist.R0000644000175200017520000000360014516004476014541 0ustar00biocbuildbiocbuildDenNHist <- function(EBOut, GeneLevel=F) { if(!"Alpha"%in%names(EBOut))stop("The input doesn't seem like an output from EBTest/EBMultiTest") Alpha=EBOut$Alpha Beta=EBOut$Beta # Multi QList=EBOut$QList if(length(EBOut$Iso) == 1) { for(j in 1:ncol(QList)){ if(GeneLevel==F)Main=paste("Ig","C",j) if(GeneLevel==T)Main=paste("Gene","C",j) tmQ = QList[,j] hist(tmQ[tmQ < .98 & tmQ > 0], prob=T,col="blue",breaks=100, main=Main, xlim=c(0,1),xlab=paste("Q alpha=",round(Alpha,2), " beta=",round(mean(Beta),2),sep="")) tmpseq = seq(0.001,1,length=1000) ll = tmpseq lines(ll,dbeta(ll,Alpha,mean(Beta)),col="green",lwd=2) legend("topright",c("Data","Fitted density"),col=c("blue","green"),lwd=2) } }else { Iso = EBOut$Iso I = max(Iso) for(i in 1:I) { tmp = which(Iso == i) for(j in 1:ncol(QList)){ if(GeneLevel==F)Main=paste("Ig",i,"C",j) if(GeneLevel==T)Main=paste("Gene","C",j) tmQ = QList[tmp,j] hist(tmQ[tmQ < .98 & tmQ > 0], prob=T,col="blue",breaks=100, main=Main, xlim=c(0,1),xlab=paste("Q alpha=",round(Alpha,2), " beta=",round(mean(Beta),2),sep="")) tmpseq = seq(0.001,1,length=1000) ll = tmpseq lines(ll,dbeta(ll,Alpha,mean(Beta[tmp])),col="green",lwd=2) legend("topright",c("Data","Fitted density"),col=c("blue","green"),lwd=2) } } } } EBSeq/R/EBMultiTest.R0000644000175200017520000005707414516004476015244 0ustar00biocbuildbiocbuildEBMultiTest <- function(Data,NgVector=NULL,Conditions, sizeFactors, uc = 0, AllParti=NULL,fast = T,Alpha=NULL, Beta=NULL, Qtrm=1, QtrmCut=0 ,maxround = 50, step1 = 1e-6,step2 = 0.01, thre = log(2), sthre = 0, filter = 10, stopthre = 1e-4, nequal = 2) { expect_is(sizeFactors, c("numeric","integer")) expect_is(maxround, c("numeric","integer")) if(!is.factor(Conditions))Conditions=as.factor(Conditions) if(is.null(rownames(Data)))stop("Please add gene/isoform names to the data matrix") if(!is.matrix(Data))stop("The input Data is not a matrix") if(length(Conditions)!=ncol(Data))stop("The number of conditions is not the same as the number of samples! ") if(nlevels(Conditions)==2)stop("Only 2 conditions - Please use EBTest() function") if(nlevels(Conditions)<2)stop("Less than 2 conditions - Please check your input") if(length(sizeFactors)!=length(Data) & length(sizeFactors)!=ncol(Data)) stop("The number of library size factors is not the same as the number of samples!") if(length(unique(Conditions)) < 2){ stop("there is only one condition") } if(length(unique(Conditions)) <= uc){ stop("uncertain positison must be smaller than number of conditions") } #Normalized DataNorm=GetNormalizedMat(Data, sizeFactors) QuantileFor0=apply(DataNorm,1,function(i)quantile(i,Qtrm)) AllZeroNames=which(QuantileFor0<=QtrmCut) NotAllZeroNames=which(QuantileFor0>QtrmCut) if(length(AllZeroNames)>0) cat(paste0("Removing transcripts with ",Qtrm*100, " th quantile < = ",QtrmCut," \n", length(NotAllZeroNames)," transcripts will be tested \n")) if(length(NotAllZeroNames)==0)stop("0 transcript passed") Data=Data[NotAllZeroNames,] if(!is.null(NgVector)) { if(length(NgVector) != nrow(DataNorm)) { stop("NgVector should have same size as number of genes") } NgVector = NgVector[NotAllZeroNames] NgVector = as.factor(NgVector) levels(NgVector) = 1:length(levels(NgVector)) } # determine whether to use fast or regular EBSeq if(fast){ # fast EBSeq method # default setting for isoform label, when no input if(is.null(NgVector)){NgVector = 1} # default setting for hyper-parameters alpha and beta (beta prior) if(is.null(Alpha)) { Alpha = 0.4 } if(is.null(Beta)) { # for EBSeqTest to set up initial value of beta Beta = 0 } # gene-level mean MeanList=rowMeans(DataNorm) # gene-level variance VarList=apply(DataNorm, 1, var) # conditions cd = Conditions levels(cd) = 1:length(levels(cd)) # check if AllParti is valid if(!is.null(AllParti)){ if(!is.matrix(AllParti)){ stop("AllParti should be matrix") } if(ncol(AllParti) != length(levels(cd))){ stop("AllParti should have same number of columns as the number of conditions(groups)") } } ## default to have K - 1 position uncertain if(uc == 0){ uc = length(levels(cd)) - 1 } # run the Test, c++ based res = EBSeqTest(Data,cd,uc,AllParti,iLabel = NgVector,sizefactor = sizeFactors, iter = maxround,alpha = Alpha, beta = Beta, step1 = step1,step2 = step2, thre = thre, sthre = sthre, filter = filter, stopthre = stopthre, nequal = nequal) # DE patterns parti = res$DEpattern rownames(parti) = sapply(1:nrow(parti),function(x) paste0("Pattern",x)) colnames(parti) = levels(Conditions) # renames colnames(res$Posterior) = sapply(1:ncol(res$Posterior) ,function(i) paste0("pattern",i)) rownames(res$Posterior) = rownames(DataNorm[NotAllZeroNames,]) # Result Result=list(Alpha=res$Alpha,Beta=res$Beta,P=res$prop, RList=res$r, MeanList=MeanList, VarList=VarList, QList = res$q, Mean = res$mean,Var = res$var, PoolVar=res$poolVar, DataNorm=DataNorm,Iso = as.numeric(NgVector), AllZeroIndex=AllZeroNames,PPMat=res$Posterior,AllParti = parti, Conditions=Conditions, NumUC = res$nuc) }else{ # regular (old) EBSeq Pool = F tau=CI=CIthre=NULL ApproxVal = 10^-10 Dataraw = Data # size factor and isoform vector if(is.null(NgVector))NgVector=rep(1,nrow(Data)) if(length(sizeFactors)!=ncol(Data))sizeFactors=sizeFactors[NotAllZeroNames,] #ReNameThem IsoNamesIn=rownames(Data) Names=paste("I",c(1:dim(Data)[1]),sep="") names(IsoNamesIn)=Names rownames(Data)=paste("I",c(1:dim(Data)[1]),sep="") names(NgVector)=paste("I",c(1:dim(Data)[1]),sep="") # If PossibleCond==NULL, use all combinations NumCond=nlevels(Conditions) CondLevels=levels(Conditions) #library(blockmodeling) if(is.null(AllParti)){ AllPartiList=sapply(1:NumCond,function(i)nkpartitions(NumCond,i)) AllParti=do.call(rbind,AllPartiList) colnames(AllParti)=CondLevels rownames(AllParti)=paste("Pattern",1:nrow(AllParti),sep="") } if(length(sizeFactors)==length(Data)){ rownames(sizeFactors)=rownames(Data) colnames(sizeFactors)=Conditions } NoneZeroLength=nlevels(as.factor(NgVector)) NameList=sapply(1:NoneZeroLength,function(i)names(NgVector)[NgVector==i],simplify=F) DataList=sapply(1:NoneZeroLength , function(i) Data[NameList[[i]],],simplify=F) names(DataList)=names(NameList) NumEachGroup=sapply(1:NoneZeroLength , function(i)dim(DataList)[i]) # Unlist DataList.unlist=do.call(rbind, DataList) # Divide by SampleSize factor if(length(sizeFactors)==ncol(Data)) DataList.unlist.dvd=t(t( DataList.unlist)/sizeFactors) if(length(sizeFactors)==length(Data)) DataList.unlist.dvd=DataList.unlist/sizeFactors # Pool or Not if(Pool==T){ DataforPoolSP.dvd=MeanforPoolSP.dvd=vector("list",NumCond) for(lv in 1:NumCond){ DataforPoolSP.dvd[[lv]]=matrix(DataList.unlist.dvd[,Conditions==levels(Conditions)[lv]],nrow=dim(DataList.unlist)[1]) MeanforPoolSP.dvd[[lv]]=rowMeans(DataforPoolSP.dvd[[lv]]) } MeanforPool.dvd=rowMeans(DataList.unlist.dvd) NumInBin=floor(dim(DataList.unlist)[1]/NumBin) StartSeq=c(0:(NumBin-1))*NumInBin+1 EndSeq=c(StartSeq[-1]-1,dim(DataList.unlist)[1]) MeanforPool.dvd.Sort=sort(MeanforPool.dvd,decreasing=T) MeanforPool.dvd.Order=order(MeanforPool.dvd,decreasing=T) PoolGroups=sapply(1:NumBin,function(i)(names(MeanforPool.dvd.Sort)[StartSeq[i]:EndSeq[i]]),simplify=F) #FCforPool=MeanforPoolSP.dvd1/MeanforPoolSP.dvd2 # Use GeoMean of every two-group partition Parti2=nkpartitions(NumCond,2) FCForPoolList=sapply(1:nrow(Parti2),function(i)rowMeans(do.call(cbind, MeanforPoolSP.dvd[Parti2[i,]==1]))/ rowMeans(do.call(cbind,MeanforPoolSP.dvd[Parti2[i,]==2])), simplify=F) FCForPoolMat=do.call(cbind,FCForPoolList) FCforPool=apply(FCForPoolMat,1,function(i)exp(mean(log(i)))) names(FCforPool)=names(MeanforPool.dvd) FC_Use=names(FCforPool)[which(FCforPool>=quantile(FCforPool[!is.na(FCforPool)],PoolLower) & FCforPool<=quantile(FCforPool[!is.na(FCforPool)],PoolUpper))] PoolGroupVar=sapply(1:NumBin,function(i)(mean(apply(matrix(DataList.unlist[PoolGroups[[i]][PoolGroups[[i]]%in%FC_Use],],ncol=ncol(DataList.unlist)),1,var)))) PoolGroupVarInList=sapply(1:NumBin,function(i)(rep(PoolGroupVar[i],length(PoolGroups[[i]]))),simplify=F) PoolGroupVarVector=unlist(PoolGroupVarInList) VarPool=PoolGroupVarVector[MeanforPool.dvd.Order] names(VarPool)=names(MeanforPool.dvd) } DataListSP=vector("list",nlevels(Conditions)) DataListSP.dvd=vector("list",nlevels(Conditions)) SizeFSP=DataListSP MeanSP=DataListSP VarSP=DataListSP GetPSP=DataListSP RSP=DataListSP CISP=DataListSP tauSP=DataListSP NumEachCondLevel=summary(Conditions) if(Pool==F & is.null(CI)) CondLevelsUse=CondLevels[NumEachCondLevel>1] if(Pool==T | !is.null(CI)) CondLevelsUse=CondLevels NumCondUse=length(CondLevelsUse) for (lv in 1:nlevels(Conditions)){ DataListSP[[lv]]= matrix(DataList.unlist[,Conditions==levels(Conditions)[lv]],nrow=dim(DataList.unlist)[1]) rownames(DataListSP[[lv]])=rownames(DataList.unlist) DataListSP.dvd[[lv]]= matrix(DataList.unlist.dvd[,Conditions==levels(Conditions)[lv]],nrow=dim(DataList.unlist.dvd)[1]) if(ncol(DataListSP[[lv]])==1 & Pool==F & !is.null(CI)){ CISP[[lv]]=matrix(CI[,Conditions==levels(Conditions)[lv]],nrow=dim(DataList.unlist.dvd)[1]) tauSP[[lv]]=matrix(tau[,Conditions==levels(Conditions)[lv]],nrow=dim(DataList.unlist.dvd)[1]) } # no matter sizeFactors is a vector or a matrix. Matrix should be columns are the normalization factors # may input one for each if(length(sizeFactors)==ncol(Data))SizeFSP[[lv]]=sizeFactors[Conditions==levels(Conditions)[lv]] if(length(sizeFactors)==length(Data))SizeFSP[[lv]]=sizeFactors[,Conditions==levels(Conditions)[lv]] MeanSP[[lv]]=rowMeans(DataListSP.dvd[[lv]]) names(MeanSP[[lv]])=rownames(DataListSP[[lv]]) if(length(sizeFactors)==ncol(Data))PrePareVar=sapply(1:ncol( DataListSP[[lv]]),function(i)( DataListSP[[lv]][,i]- SizeFSP[[lv]][i]*MeanSP[[lv]])^2 /SizeFSP[[lv]][i]) if(length(sizeFactors)==length(Data))PrePareVar=sapply(1:ncol( DataListSP[[lv]]),function(i)( DataListSP[[lv]][,i]- SizeFSP[[lv]][,i]*MeanSP[[lv]])^2 /SizeFSP[[lv]][,i]) if(ncol(DataListSP[[lv]])==1 & Pool==F & !is.null(CI)) VarSP[[lv]]=as.vector(((DataListSP[[lv]]/tauSP[[lv]]) * CISP[[lv]]/(CIthre*2))^2) if( Pool==T){ VarSP[[lv]]=VarPool } if(ncol(DataListSP[[lv]])!=1){ VarSP[[lv]]=rowSums(PrePareVar)/ncol( DataListSP[[lv]]) names(VarSP[[lv]])=rownames(DataList.unlist) GetPSP[[lv]]=MeanSP[[lv]]/VarSP[[lv]] RSP[[lv]]=MeanSP[[lv]]*GetPSP[[lv]]/(1-GetPSP[[lv]]) } names(MeanSP[[lv]])=rownames(DataList.unlist) } # Get Empirical R # POOL R??? MeanList=rowMeans(DataList.unlist.dvd) VarList=apply(DataList.unlist.dvd, 1, var) if(NumCondUse!=0){ Varcbind=do.call(cbind,VarSP[CondLevels%in%CondLevelsUse]) PoolVarSpeedUp_MDFPoi_NoNormVarList=rowMeans(Varcbind) VarrowMin=apply(Varcbind,1,min) } if(NumCondUse==0) { NumFCgp=choose(NumCond,2) FC_Use_tmp=vector("list",NumFCgp) aa=1 for(k1 in 1:(NumCond-1)){ for(k2 in (k1+1):NumCond){ FCforPool=DataList.unlist.dvd[,k1]/DataList.unlist.dvd[,k2] names(FCforPool)=rownames(DataList.unlist.dvd) FC_Use_tmp[[aa]]=names(FCforPool)[which(FCforPool>=quantile(FCforPool[!is.na(FCforPool)],.25) & FCforPool<=quantile(FCforPool[!is.na(FCforPool)],.75))] aa=aa+1 }} FC_Use=Reduce(intersect,FC_Use_tmp) if(length(FC_Use)==0){ All_candi=unlist(FC_Use_tmp) FC_Use=names(table(All_candi))[1:3] } Var_FC_Use=apply( DataList.unlist.dvd[FC_Use,],1,var ) MeanforPool=apply( DataList.unlist.dvd,1,mean ) Mean_FC_Use=apply( DataList.unlist.dvd[FC_Use,],1,mean ) FC_Use2=which(Var_FC_Use>=Mean_FC_Use) Var_FC_Use2=Var_FC_Use[FC_Use2] Mean_FC_Use2=Mean_FC_Use[FC_Use2] Phi=mean((Var_FC_Use2-Mean_FC_Use2)/Mean_FC_Use2^2) VarEst= MeanforPool*(1+MeanforPool*Phi) if(Print==T)message(paste("No Replicate - estimate phi",round(Phi,5), "\n")) Varcbind=VarEst PoolVarSpeedUp_MDFPoi_NoNormVarList=VarEst VarrowMin=VarEst } GetP=MeanList/PoolVarSpeedUp_MDFPoi_NoNormVarList EmpiricalRList=MeanList*GetP/(1-GetP) # sep #Rcb=cbind(RSP[[1]],RSP[[2]]) #Rbest=apply(Rcb,1,function(i)max(i[!is.na(i) & i!=Inf])) EmpiricalRList[EmpiricalRList==Inf] =max(EmpiricalRList[EmpiricalRList!=Inf]) # fine # GoodData=names(MeanList)[EmpiricalRList>0 & VarrowMin!=0 & EmpiricalRList!=Inf & !is.na(VarrowMin) & !is.na(EmpiricalRList)] NotIn=names(MeanList)[EmpiricalRList<=0 | VarrowMin==0 | EmpiricalRList==Inf | is.na(VarrowMin) | is.na(EmpiricalRList)] #NotIn.BestR=Rbest[NotIn.raw] #NotIn.fix=NotIn.BestR[which(NotIn.BestR>0)] #EmpiricalRList[names(NotIn.fix)]=NotIn.fix #print(paste("ZeroVar",sum(VarrowMin==0), "InfR", length(which(EmpiricalRList==Inf)), "Poi", length(which(EmpiricalRList<0)), "")) #GoodData=c(GoodData.raw,names(NotIn.fix)) #NotIn=NotIn.raw[!NotIn.raw%in%names(NotIn.fix)] EmpiricalRList.NotIn=EmpiricalRList[NotIn] EmpiricalRList.Good=EmpiricalRList[GoodData] EmpiricalRList.Good[EmpiricalRList.Good<1]=1+EmpiricalRList.Good[EmpiricalRList.Good<1] if(length(sizeFactors)==ncol(Data)) EmpiricalRList.Good.mat= outer(EmpiricalRList.Good, sizeFactors) if(length(sizeFactors)==length(Data)) EmpiricalRList.Good.mat=EmpiricalRList.Good* sizeFactors[GoodData,] # Only Use Data has Good q's DataList.In=sapply(1:NoneZeroLength, function(i)DataList[[i]][GoodData[GoodData%in%rownames(DataList[[i]])],],simplify=F) DataList.NotIn=sapply(1:NoneZeroLength, function(i)DataList[[i]][NotIn[NotIn%in%rownames(DataList[[i]])],],simplify=F) DataListIn.unlist=do.call(rbind, DataList.In) DataListNotIn.unlist=do.call(rbind, DataList.NotIn) DataListSPIn=vector("list",nlevels(Conditions)) DataListSPNotIn=vector("list",nlevels(Conditions)) EmpiricalRList.Good.mat.SP=vector("list",nlevels(Conditions)) for (lv in 1:nlevels(Conditions)){ DataListSPIn[[lv]]= matrix(DataListIn.unlist[,Conditions==levels(Conditions)[lv]],nrow=dim(DataListIn.unlist)[1]) if(length(NotIn)>0) DataListSPNotIn[[lv]]= matrix(DataListNotIn.unlist[,Conditions==levels(Conditions)[lv]],nrow=dim(DataListNotIn.unlist)[1]) rownames(DataListSPIn[[lv]])=rownames(DataListIn.unlist) if(length(NotIn)>0)rownames(DataListSPNotIn[[lv]])=rownames(DataListNotIn.unlist) EmpiricalRList.Good.mat.SP[[lv]]=matrix(EmpiricalRList.Good.mat[,Conditions==levels(Conditions)[lv]],nrow=dim(EmpiricalRList.Good.mat)[1]) } NumOfEachGroupIn=sapply(1:NoneZeroLength, function(i)max(0,dim(DataList.In[[i]])[1])) NumOfEachGroupNotIn=sapply(1:NoneZeroLength, function(i)max(0,dim(DataList.NotIn[[i]])[1])) #Initialize SigIn & ... AlphaIn=0.5 BetaIn=rep(0.5,NoneZeroLength) PIn=rep(1/nrow(AllParti),nrow(AllParti)) ####use while to make an infinity round? UpdateAlpha=NULL UpdateBeta=NULL UpdateP=NULL UpdatePFromZ=NULL Timeperround=NULL for (times in 1:maxround){ temptime1=proc.time() UpdateOutput=suppressWarnings(LogNMulti(DataListIn.unlist,DataListSPIn, EmpiricalRList.Good.mat ,EmpiricalRList.Good.mat.SP, NumOfEachGroupIn, AlphaIn, BetaIn, PIn, NoneZeroLength, AllParti,Conditions)) message(paste("iteration", times, "done \n",sep=" ")) AlphaIn=UpdateOutput$AlphaNew BetaIn=UpdateOutput$BetaNew PIn=UpdateOutput$PNew PFromZ=UpdateOutput$PFromZ FOut=UpdateOutput$FGood UpdateAlpha=rbind(UpdateAlpha,AlphaIn) UpdateBeta=rbind(UpdateBeta,BetaIn) UpdateP=rbind(UpdateP,PIn) UpdatePFromZ=rbind(UpdatePFromZ,PFromZ) temptime2=proc.time() Timeperround=c(Timeperround,temptime2[3]-temptime1[3]) message(paste("time" ,round(Timeperround[times],2),"\n",sep=" ")) Z.output=UpdateOutput$ZEachGood Z.NA.Names=UpdateOutput$zNaNName } #Remove this } after testing!! # if (times!=1){ # if((UpdateAlpha[times]-UpdateAlpha[times-1])^2+UpdateBeta[times]-UpdateBeta[times-1])^2+UpdateR[times]-UpdateR[times-1])^2+UpdateP[times]-UpdateP[times-1])^2<=10^(-6)){ # Result=list(Sig=SigIn, Miu=MiuIn, Tau=TauIn) # break # } # } #} ##########Change Names############ ## Only z are for Good Ones ## Others are for ALL Data GoodData=GoodData[!GoodData%in%Z.NA.Names] IsoNamesIn.Good=as.vector(IsoNamesIn[GoodData]) RealName.Z.output=Z.output RealName.F=FOut rownames(RealName.Z.output)=IsoNamesIn.Good rownames(RealName.F)=IsoNamesIn.Good RealName.EmpiricalRList=sapply(1:NoneZeroLength,function(i)EmpiricalRList[names(EmpiricalRList)%in%NameList[[i]]], simplify=F) RealName.MeanList=sapply(1:NoneZeroLength,function(i)MeanList[names(MeanList)%in%NameList[[i]]], simplify=F) RealName.SPMeanList=sapply(1:NoneZeroLength,function(i)sapply(1:length(MeanSP), function(j)MeanSP[[j]][names(MeanSP[[j]])%in%NameList[[i]]],simplify=F), simplify=F) RealName.SPVarList=sapply(1:NoneZeroLength,function(i)sapply(1:length(VarSP), function(j)VarSP[[j]][names(VarSP[[j]])%in%NameList[[i]]],simplify=F), simplify=F) RealName.DataList=sapply(1:NoneZeroLength,function(i)DataList[[i]][rownames(DataList[[i]])%in%NameList[[i]],], simplify=F) RealName.VarList=sapply(1:NoneZeroLength,function(i)VarList[names(VarList)%in%NameList[[i]]], simplify=F) RealName.PoolVarList=sapply(1:NoneZeroLength,function(i)PoolVarSpeedUp_MDFPoi_NoNormVarList[names(PoolVarSpeedUp_MDFPoi_NoNormVarList)%in%NameList[[i]]], simplify=F) RealName.QList=sapply(1:NoneZeroLength,function(i)sapply(1:length(GetPSP), function(j)GetPSP[[j]][names(GetPSP[[j]])%in%NameList[[i]]],simplify=F), simplify=F) for (i in 1:NoneZeroLength){ tmp=NameList[[i]] Names=IsoNamesIn[tmp] RealName.MeanList[[i]]=RealName.MeanList[[i]][NameList[[i]]] RealName.VarList[[i]]=RealName.VarList[[i]][NameList[[i]]] for(j in 1:NumCond){ RealName.SPMeanList[[i]][[j]]=RealName.SPMeanList[[i]][[j]][NameList[[i]]] if(!is.null(RealName.QList[[i]][[j]])){ RealName.QList[[i]][[j]]=RealName.QList[[i]][[j]][NameList[[i]]] RealName.SPVarList[[i]][[j]]=RealName.SPVarList[[i]][[j]][NameList[[i]]] names(RealName.QList[[i]][[j]])=Names names(RealName.SPVarList[[i]][[j]])=Names } names(RealName.SPMeanList[[i]][[j]])=Names } RealName.EmpiricalRList[[i]]=RealName.EmpiricalRList[[i]][NameList[[i]]] RealName.PoolVarList[[i]]=RealName.PoolVarList[[i]][NameList[[i]]] RealName.DataList[[i]]=RealName.DataList[[i]][NameList[[i]],] names(RealName.MeanList[[i]])=Names names(RealName.VarList[[i]])=Names names(RealName.EmpiricalRList[[i]])=Names names(RealName.PoolVarList[[i]])=Names rownames(RealName.DataList[[i]])=Names } #########posterior part for other data set here later############ AllNA=unique(c(Z.NA.Names,NotIn)) AllZ=NULL AllF=NULL if(length(AllNA)==0){ AllZ=RealName.Z.output[IsoNamesIn,] AllF=RealName.F[IsoNamesIn,] } ZEachNA=NULL if (length(AllNA)>0){ Ng.NA=NgVector[AllNA] AllNA.Ngorder=AllNA[order(Ng.NA)] NumOfEachGroupNA=rep(0,NoneZeroLength) NumOfEachGroupNA.tmp=tapply(Ng.NA,Ng.NA,length) names(NumOfEachGroupNA)=c(1:NoneZeroLength) NumOfEachGroupNA[names(NumOfEachGroupNA.tmp)]=NumOfEachGroupNA.tmp PNotIn=rep(1-ApproxVal,length(AllNA.Ngorder)) MeanList.NotIn=MeanList[AllNA.Ngorder] R.NotIn.raw=MeanList.NotIn*PNotIn/(1-PNotIn) if(length(sizeFactors)==ncol(Data)) R.NotIn=matrix(outer(R.NotIn.raw,sizeFactors),nrow=length(AllNA.Ngorder)) if(length(sizeFactors)==length(Data)) R.NotIn=matrix(R.NotIn.raw*sizeFactors[names(R.NotIn.raw),],nrow=length(AllNA.Ngorder)) DataListNotIn.unlistWithZ=matrix(DataList.unlist[AllNA.Ngorder,], nrow=length(AllNA.Ngorder)) rownames(DataListNotIn.unlistWithZ)=AllNA.Ngorder DataListSPNotInWithZ=vector("list",nlevels(Conditions)) RListSPNotInWithZ=vector("list",nlevels(Conditions)) for (lv in 1:nlevels(Conditions)) { DataListSPNotInWithZ[[lv]] = matrix(DataListSP[[lv]][AllNA.Ngorder,],nrow=length(AllNA.Ngorder)) RListSPNotInWithZ[[lv]]=matrix(R.NotIn[,Conditions==levels(Conditions)[lv]],nrow=length(AllNA.Ngorder)) } FListNA=sapply(1:nrow(AllParti),function(i)sapply(1:nlevels(as.factor(AllParti[i,])), function(j)f0(do.call(cbind, DataListSPNotInWithZ[AllParti[i,]==j]),AlphaIn, BetaIn, do.call(cbind,RListSPNotInWithZ[AllParti[i,]==j]), NumOfEachGroupNA, log=T)), simplify=F) for(ii in 1:length(FListNA)) FListNA[[ii]]=matrix(FListNA[[ii]],nrow=length(AllNA.Ngorder)) FPartiLogNA=matrix(sapply(FListNA,rowSums),nrow=length(AllNA.Ngorder)) FMatNA=exp(FPartiLogNA+600) rownames(FMatNA)=rownames(DataListNotIn.unlistWithZ) PMatNA=matrix(rep(1,nrow(DataListNotIn.unlistWithZ)),ncol=1)%*%matrix(PIn,nrow=1) FmultiPNA=matrix(FMatNA*PMatNA,nrow=length(AllNA.Ngorder)) DenomNA=rowSums(FmultiPNA) ZEachNA=matrix(apply(FmultiPNA,2,function(i)i/DenomNA),nrow=length(AllNA.Ngorder)) rownames(ZEachNA)=IsoNamesIn[AllNA.Ngorder] AllZ=rbind(RealName.Z.output,ZEachNA) AllZ=AllZ[IsoNamesIn,] F.NotIn=FPartiLogNA rownames(F.NotIn)=IsoNamesIn[rownames(FMatNA)] AllF=rbind(RealName.F,F.NotIn) AllF=AllF[IsoNamesIn,] } colnames(AllZ)=rownames(AllParti) colnames(AllF)=rownames(AllParti) rownames(UpdateAlpha)=paste("iter",1:nrow(UpdateAlpha),sep="") rownames(UpdateBeta)=paste("iter",1:nrow(UpdateBeta),sep="") rownames(UpdateP)=paste("iter",1:nrow(UpdateP),sep="") rownames(UpdatePFromZ)=paste("iter",1:nrow(UpdatePFromZ),sep="") colnames(UpdateBeta)=paste("Ng",1:ncol(UpdateBeta),sep="") CondOut=levels(Conditions) names(CondOut)=paste("Condition",c(1:length(CondOut)),sep="") AllZWith0=matrix(NA,ncol=ncol(AllZ),nrow=nrow(Dataraw)) rownames(AllZWith0)=rownames(Dataraw) colnames(AllZWith0)=colnames(AllZ) if(is.null(AllZeroNames))AllZWith0=AllZ if(!is.null(AllZeroNames))AllZWith0[names(NotAllZeroNames),]=AllZ[names(NotAllZeroNames),] #############Result############################ Result=list(Alpha=UpdateAlpha,Beta=UpdateBeta,P=UpdateP, RList=RealName.EmpiricalRList , MeanList=RealName.MeanList ,VarList=RealName.VarList , QList=RealName.QList ,Mean=unlist(RealName.SPMeanList) ,Var=RealName.SPVarList ,PoolVar=RealName.PoolVarList ,DataNorm = DataNorm ,Iso = as.numeric(NgVector) ,AllZeoIndex =AllZeroNames ,PPMat=AllZ , AllParti=AllParti , Conditions=CondOut ,NumUC = NA) } return(Result) } EBSeq/R/EBSeqTest.R0000644000175200017520000000266614516004476014677 0ustar00biocbuildbiocbuild EBSeqTest <- function(data,conditions,uc, AllParti=NULL, iLabel = 1,sizefactor = 1, iter = 50,alpha = 0.4, beta = 0, step1 = 1e-6,step2 = 0.01, thre = log(2), sthre = 0.001, filter = 10, stopthre = 1e-3, nequal = 2) { if(!is.matrix(data)) { stop("data must be a numerical matrix") } if(length(conditions) != ncol(data)) { stop("incorrect length of conditions") } if(length(beta) > 1) { if(length(beta) != nrow(data)){stop("incorrect length of hyper parameters")} } if(beta == 0) { beta = rep(2,nrow(data)) } if(length(iLabel) == 1 && iLabel == 1) { iLabel = 1:nrow(data) } if(length(iLabel) != nrow(data)) { stop("incorrect length of isoform label") } if(length(sizefactor) == 1 && sizefactor == 1) { sizefactor = rep(1,ncol(data)) } if(length(sizefactor) != ncol(data)) { stop("incorrect length of size factor") } if(is.null(AllParti)){ AllParti = matrix(0,nrow=1,ncol=length(levels(conditions))) } .Call('EBSeq', scExpMatrix = data, groupLabel = conditions, AllParti = AllParti, iLabel = iLabel, sizeFactor = sizefactor, iter = iter, alpha = alpha, beta = beta, step1 = step1, step2 = step2, uc = uc, thre = thre, sthre = sthre, filter = filter, stopthre = stopthre, nequal = nequal) } EBSeq/R/EBTest.R0000644000175200017520000010034414516004476014216 0ustar00biocbuildbiocbuildEBTest <- function(Data,NgVector=NULL,Conditions, sizeFactors, fast = T, Alpha=NULL, Beta=NULL, Qtrm=1, QtrmCut=0 ,maxround = 50, step1 = 1e-6,step2 = 0.01, thre = log(2), sthre = 0, filter = 10, stopthre = 1e-4) { ## validity check expect_is(sizeFactors, c("numeric","integer")) expect_is(maxround, c("numeric","integer")) if(!is.factor(Conditions))Conditions=as.factor(Conditions) if(is.null(rownames(Data)))stop("Please add gene/isoform names to the data matrix") if(!is.matrix(Data))stop("The input Data is not a matrix") if(length(Conditions)!=ncol(Data))stop("The number of conditions is not the same as the number of samples! ") if(nlevels(Conditions)>2)stop("More than 2 conditions! Please use EBMultiTest() function") if(nlevels(Conditions)<2)stop("Less than 2 conditions - Please check your input") if(length(sizeFactors)!=ncol(Data)) stop("The number of library size factors is not the same as the number of samples!") if(length(unique(Conditions)) < 2){ stop("there is only one condition") } #if(length(unique(Conditions)) <= uc){ # stop("uncertain positison must be smaller than number of conditions") #} #Normalized and filtered DataNorm=GetNormalizedMat(Data, sizeFactors) expect_is(DataNorm, "matrix") Levels=levels(as.factor(Conditions)) QuantileFor0=apply(DataNorm,1,function(i)quantile(i,Qtrm)) AllZeroNames=which(QuantileFor0<=QtrmCut) NotAllZeroNames=which(QuantileFor0>QtrmCut) if(length(AllZeroNames)>0) cat(paste0("Removing transcripts with ",Qtrm*100, " th quantile < = ",QtrmCut," \n", length(NotAllZeroNames)," transcripts will be tested\n")) if(length(NotAllZeroNames)==0)stop("0 transcript passed") Data=Data[NotAllZeroNames,] # process isoform label if(!is.null(NgVector)) { if(length(NgVector) != nrow(DataNorm)) { stop("NgVector should have same size as number of genes") } NgVector = NgVector[NotAllZeroNames] NgVector = as.factor(NgVector) levels(NgVector) = 1:length(levels(NgVector)) } # determine whether to use fast or regular EBSeq if(fast){ # fast EBSeq method # default setting for isoform label, when no input if(is.null(NgVector)){NgVector = 1} # default setting for hyper-parameters alpha and beta (beta prior) if(is.null(Alpha)) { Alpha = 0.4 } if(is.null(Beta)) { # for EBSeqTest to set up initial value of beta Beta = 0 } # gene-level mean MeanList=rowMeans(DataNorm) # gene-level variance VarList=apply(DataNorm, 1, var) # conditions cd = Conditions levels(cd) = 1:length(levels(cd)) # run the Test, c++ based uc = 1 res = EBSeqTest(Data,cd,uc,iLabel = NgVector,sizefactor = sizeFactors, iter = maxround,alpha = Alpha, beta = Beta, step1 = step1,step2 = step2, thre = thre, sthre = sthre, filter = filter, stopthre = stopthre) # corner case that only DE one pattern been selected if(nrow(res$DEpattern) != 2){ stop("too few DE patterns, try reducing sthre and increasing thre") } # determine which one is EE and which one is DE if(res$DEpattern[1,1] == res$DEpattern[1,2]) { Allequal = 1 Alldiff = 2 } else { Allequal = 2 Alldiff = 1 } # reordering column as EE and DE Mat = res$Posterior[,c(Allequal,Alldiff)] rownames(Mat) = rownames(Data) colnames(Mat) = c(1,2) colnames(Mat)[1] = "PPEE" colnames(Mat)[2] = "PPDE" # included genes full of 0s MatWith0 = matrix(NA,nrow = nrow(DataNorm), ncol = 2) rownames(MatWith0) = rownames(DataNorm) MatWith0[NotAllZeroNames,] = Mat colnames(MatWith0) = colnames(Mat) # assign rownames(gene names) to mean vector rownames(res$mean) = rownames(Data) # assign rownames to variance vector if(dim(res$var)[1] > 0){ rownames(res$var) = rownames(Data) } # DE patterns parti = res$DEpattern[c(Allequal,Alldiff),] colnames(parti) = levels(Conditions) # results to be returned Result=list(Alpha=res$Alpha,Beta=res$Beta,P=res$prop, RList=res$r, MeanList=MeanList, VarList=VarList, QList = res$q, Mean = res$mean,Var = res$var, PoolVar=res$poolVar, DataNorm = DataNorm, AllZeroIndex = AllZeroNames, Iso = as.numeric(NgVector), PPMat = Mat,AllParti = parti, PPMatWith0 = MatWith0, Conditions=Conditions) }else{ # regular (old) EBSeq Dataraw=Data Vect5End=Vect3End=CI=CIthre=tau=NULL ApproxVal=10^-10 # size factor and isoform vector if(length(sizeFactors)!=ncol(Data))sizeFactors=sizeFactors[NotAllZeroNames,] if(is.null(NgVector))NgVector=rep(1,nrow(Data)) #Rename Them IsoNamesIn=rownames(Data) Names=paste("I",c(1:dim(Data)[1]),sep="") names(IsoNamesIn)=Names rownames(Data)=paste("I",c(1:dim(Data)[1]),sep="") names(NgVector)=paste("I",c(1:dim(Data)[1]),sep="") if(length(sizeFactors)==length(Data)){ rownames(sizeFactors)=rownames(Data) colnames(sizeFactors)=Conditions } NumOfNg=nlevels(as.factor(NgVector)) NameList=sapply(1:NumOfNg,function(i)Names[NgVector==i],simplify=F) names(NameList)=paste("Ng",c(1:NumOfNg),sep="") NotNone=NULL for (i in 1:NumOfNg) { if (length(NameList[[i]])!=0) NotNone=c(NotNone,names(NameList)[i]) } NameList=NameList[NotNone] NoneZeroLength=length(NameList) DataList=vector("list",NoneZeroLength) DataList=sapply(1:NoneZeroLength , function(i) Data[NameList[[i]],],simplify=F) names(DataList)=names(NameList) NumEachGroup=sapply(1:NoneZeroLength , function(i)dim(DataList[[i]])[1]) # Unlist DataList.unlist=do.call(rbind, DataList) # Divide by SampleSize factor if(length(sizeFactors)==ncol(Data)) DataList.unlist.dvd=t(t( DataList.unlist)/sizeFactors) if(length(sizeFactors)==length(Data)) DataList.unlist.dvd=DataList.unlist/sizeFactors MeanList=rowMeans(DataList.unlist.dvd) ############### # Input R ############### RInput=NULL if (!is.null(RInput)){ RNoZero=RInput[NotAllZeroNames] names(RNoZero)=rownames(Data) RNoZero.order=RNoZero[rownames(DataList.unlist)] if(length(sizeFactors)==ncol(Data)){ RMat= outer(RNoZero.order, sizeFactors) } if(length(sizeFactors)==length(Data)){ RMat= RNoZero.order* sizeFactors } DataListSP=vector("list",nlevels(Conditions)) RMatSP=vector("list",nlevels(Conditions)) for (lv in 1:nlevels(Conditions)){ DataListSP[[lv]]= matrix(DataList.unlist[,Conditions==levels(Conditions)[lv]],nrow=dim(DataList.unlist)[1]) rownames(DataListSP[[lv]])=rownames(DataList.unlist) RMatSP[[lv]]= matrix(RMat[,Conditions==levels(Conditions)[lv]],nrow=dim(RMat)[1]) rownames(RMatSP[[lv]])=rownames(RMat) } F0Log=f0(Input=DataList.unlist, AlphaIn=Alpha, BetaIn=Beta, EmpiricalR=RMat, NumOfGroups=NumEachGroup, log=T) F1Log=f1(Input1=DataListSP[[1]], Input2=DataListSP[[2]], AlphaIn=Alpha, BetaIn=Beta, EmpiricalRSP1=RMatSP[[1]], EmpiricalRSP2=RMatSP[[2]], NumOfGroup=NumEachGroup, log=T) F0LogMdf=F0Log+600 F1LogMdf=F1Log+600 F0Mdf=exp(F0LogMdf) F1Mdf=exp(F1LogMdf) if(!is.null(PInput)){ z.list=PInput*F1Mdf/(PInput*F1Mdf+(1-PInput)*F0Mdf) PIn=PInput } if(is.null(PInput)){ PIn=.5 PInput=rep(NULL,maxround) for(i in 1:maxround){ z.list=PIn*F1Mdf/(PIn*F1Mdf+(1-PIn)*F0Mdf) zNaNName=names(z.list)[is.na(z.list)] zGood=which(!is.na(z.list)) PIn=sum(z.list[zGood])/length(z.list[zGood]) PInput[i]=PIn } zNaNName=names(z.list)[is.na(z.list)] if(length(zNaNName)!=0){ PNotIn=rep(1-ApproxVal,length(zNaNName)) MeanList.NotIn=MeanList[zNaNName] R.NotIn.raw=MeanList.NotIn*PNotIn/(1-PNotIn) if(length(sizeFactors)==ncol(Data)) R.NotIn=outer(R.NotIn.raw,sizeFactors) if(length(sizeFactors)==length(Data)) R.NotIn=R.NotIn.raw*sizeFactors[zNaNName,] R.NotIn1=matrix(R.NotIn[,Conditions==levels(Conditions)[1]],nrow=nrow(R.NotIn)) R.NotIn2=matrix(R.NotIn[,Conditions==levels(Conditions)[2]],nrow=nrow(R.NotIn)) NumOfEachGroupNA=sapply(1:NoneZeroLength, function(i)sum(zNaNName%in%rownames(DataList[[i]]))) F0LogNA=f0(matrix(DataList.unlist[zNaNName,],ncol=ncol(DataList.unlist)), Alpha, Beta, R.NotIn, NumOfEachGroupNA, log=T) F1LogNA=f1(matrix(DataListSP[[1]][zNaNName,],ncol=ncol(DataListSP[[1]])), matrix(DataListSP[[2]][zNaNName,],ncol=ncol(DataListSP[[2]])), Alpha, Beta, R.NotIn1,R.NotIn2, NumOfEachGroupNA, log=T) F0LogMdfNA=F0LogNA+600 F1LogMdfNA=F1LogNA+600 F0MdfNA=exp(F0LogMdfNA) F1MdfNA=exp(F1LogMdfNA) z.list.NotIn=PIn*F1MdfNA/(PIn*F1MdfNA+(1-PIn)*F0MdfNA) z.list[zNaNName]=z.list.NotIn F0Log[zNaNName]=F0LogNA F1Log[zNaNName]=F1LogNA } } RealName.Z.output=z.list RealName.F0=F0Log RealName.F1=F1Log names(RealName.Z.output)=IsoNamesIn names(RealName.F0)=IsoNamesIn names(RealName.F1)=IsoNamesIn output=list(Alpha=Alpha,Beta=Beta,P=PInput, Z=RealName.Z.output, PPDE=RealName.Z.output,f0=RealName.F0, f1=RealName.F1) return(output) } # Get FC and VarPool for pooling - Only works on 2 conditions if(ncol(Data)==2){ DataforPoolSP.dvd1=matrix(DataList.unlist.dvd[,Conditions==levels(Conditions)[1]],nrow=dim(DataList.unlist)[1]) DataforPoolSP.dvd2=matrix(DataList.unlist.dvd[,Conditions==levels(Conditions)[2]],nrow=dim(DataList.unlist)[1]) MeanforPoolSP.dvd1=rowMeans(DataforPoolSP.dvd1) MeanforPoolSP.dvd2=rowMeans(DataforPoolSP.dvd2) FCforPool=MeanforPoolSP.dvd1/MeanforPoolSP.dvd2 names(FCforPool)=rownames(Data) FC_Use=which(FCforPool>=quantile(FCforPool[!is.na(FCforPool)],PoolLower) & FCforPool<=quantile(FCforPool[!is.na(FCforPool)],PoolUpper)) Var_FC_Use=apply( DataList.unlist.dvd[FC_Use,],1,var ) Mean_FC_Use=(MeanforPoolSP.dvd1[FC_Use]+MeanforPoolSP.dvd2[FC_Use])/2 MeanforPool=(MeanforPoolSP.dvd1+MeanforPoolSP.dvd2)/2 FC_Use2=which(Var_FC_Use>=Mean_FC_Use) Var_FC_Use2=Var_FC_Use[FC_Use2] Mean_FC_Use2=Mean_FC_Use[FC_Use2] Phi=mean((Var_FC_Use2-Mean_FC_Use2)/Mean_FC_Use2^2) VarEst= MeanforPool*(1+MeanforPool*Phi) if(Print==T)message(paste("No Replicate - estimate phi",round(Phi,5), "\n")) names(VarEst)=names(MeanforPoolSP.dvd1)= names(MeanforPoolSP.dvd2)=rownames(DataList.unlist.dvd) } #DataListSP Here also unlist.. Only two lists DataListSP=vector("list",nlevels(Conditions)) DataListSP.dvd=vector("list",nlevels(Conditions)) SizeFSP=DataListSP MeanSP=DataListSP VarSP=DataListSP GetPSP=DataListSP RSP=DataListSP CISP=DataListSP tauSP=DataListSP NumSampleEachCon=rep(NULL,nlevels(Conditions)) for (lv in 1:nlevels(Conditions)){ DataListSP[[lv]]= matrix(DataList.unlist[,Conditions==levels(Conditions)[lv]],nrow=dim(DataList.unlist)[1]) rownames(DataListSP[[lv]])=rownames(DataList.unlist) DataListSP.dvd[[lv]]= matrix(DataList.unlist.dvd[,Conditions==levels(Conditions)[lv]],nrow=dim(DataList.unlist.dvd)[1]) NumSampleEachCon[lv]=ncol(DataListSP[[lv]]) if(ncol(DataListSP[[lv]])==1 & !is.null(CI)){ CISP[[lv]]=matrix(CI[,Conditions==levels(Conditions)[lv]],nrow=dim(DataList.unlist.dvd)[1]) tauSP[[lv]]=matrix(tau[,Conditions==levels(Conditions)[lv]],nrow=dim(DataList.unlist.dvd)[1]) } # no matter sizeFactors is a vector or a matrix. Matrix should be columns are the normalization factors # may input one for each if(length(sizeFactors)==ncol(Data))SizeFSP[[lv]]=sizeFactors[Conditions==levels(Conditions)[lv]] if(length(sizeFactors)==length(Data))SizeFSP[[lv]]=sizeFactors[,Conditions==levels(Conditions)[lv]] MeanSP[[lv]]=rowMeans(DataListSP.dvd[[lv]]) names(MeanSP[[lv]])=rownames(DataListSP[[lv]]) if(length(sizeFactors)==ncol(Data))PrePareVar=sapply(1:ncol( DataListSP[[lv]]),function(i)( DataListSP[[lv]][,i]- SizeFSP[[lv]][i]*MeanSP[[lv]])^2 /SizeFSP[[lv]][i]) if(length(sizeFactors)==length(Data))PrePareVar=sapply(1:ncol( DataListSP[[lv]]),function(i)( DataListSP[[lv]][,i]- SizeFSP[[lv]][,i]*MeanSP[[lv]])^2 /SizeFSP[[lv]][,i]) if(ncol(DataListSP[[lv]])==1 & !is.null(CI)) VarSP[[lv]]=as.vector(((DataListSP[[lv]]/tauSP[[lv]]) * CISP[[lv]]/(CIthre*2))^2) if(ncol(DataListSP[[lv]])!=1){ VarSP[[lv]]=rowSums(PrePareVar)/ncol( DataListSP[[lv]]) names(MeanSP[[lv]])=rownames(DataList.unlist) names(VarSP[[lv]])=rownames(DataList.unlist) GetPSP[[lv]]=MeanSP[[lv]]/VarSP[[lv]] RSP[[lv]]=MeanSP[[lv]]*GetPSP[[lv]]/(1-GetPSP[[lv]]) } } VarList=apply(DataList.unlist.dvd, 1, var) if(ncol(Data)==2){ PoolVar=VarEst VarSP[[1]]=VarSP[[2]]=VarEst GetPSP[[1]]=MeanSP[[1]]/VarEst GetPSP[[2]]=MeanSP[[2]]/VarEst } if(!ncol(Data)==2){ CondWithRep=which(NumSampleEachCon>1) VarCondWithRep=do.call(cbind,VarSP[CondWithRep]) PoolVar=rowMeans(VarCondWithRep) } GetP=MeanList/PoolVar EmpiricalRList=MeanList*GetP/(1-GetP) EmpiricalRList[EmpiricalRList==Inf] =max(EmpiricalRList[EmpiricalRList!=Inf]) ##################### if(ncol(Data)!=2){ Varcbind=do.call(cbind,VarSP) VarrowMin=apply(Varcbind,1,min) } if(ncol(Data)==2){ Varcbind=VarEst VarrowMin=VarEst VarSP[[1]]=VarSP[[2]]=VarEst names(MeanSP[[1]])=names(VarSP[[1]]) names(MeanSP[[2]])=names(VarSP[[2]]) } # # GoodData=names(MeanList)[EmpiricalRList>0 & VarrowMin!=0 & EmpiricalRList!=Inf & !is.na(VarrowMin) & !is.na(EmpiricalRList)] NotIn=names(MeanList)[EmpiricalRList<=0 | VarrowMin==0 | EmpiricalRList==Inf | is.na(VarrowMin) | is.na(EmpiricalRList)] #print(paste("ZeroVar",sum(VarrowMin==0), "InfR", length(which(EmpiricalRList==Inf)), "Poi", length(which(EmpiricalRList<0)), "")) EmpiricalRList.NotIn=EmpiricalRList[NotIn] EmpiricalRList.Good=EmpiricalRList[GoodData] EmpiricalRList.Good[EmpiricalRList.Good<1]=1+EmpiricalRList.Good[EmpiricalRList.Good<1] if(length(sizeFactors)==ncol(Data)){ EmpiricalRList.Good.mat= outer(EmpiricalRList.Good, sizeFactors) EmpiricalRList.mat= outer(EmpiricalRList, sizeFactors) } if(length(sizeFactors)==length(Data)){ EmpiricalRList.Good.mat=EmpiricalRList.Good* sizeFactors[GoodData,] EmpiricalRList.mat=EmpiricalRList* sizeFactors } # Only Use Data has Good q's DataList.In=sapply(1:NoneZeroLength, function(i)DataList[[i]][GoodData[GoodData%in%rownames(DataList[[i]])],],simplify=F) DataList.NotIn=sapply(1:NoneZeroLength, function(i)DataList[[i]][NotIn[NotIn%in%rownames(DataList[[i]])],],simplify=F) DataListIn.unlist=do.call(rbind, DataList.In) DataListNotIn.unlist=do.call(rbind, DataList.NotIn) DataListSPIn=vector("list",nlevels(Conditions)) DataListSPNotIn=vector("list",nlevels(Conditions)) EmpiricalRList.Good.mat.SP=EmpiricalRList.mat.SP=vector("list",nlevels(Conditions)) for (lv in 1:nlevels(Conditions)){ DataListSPIn[[lv]]= matrix(DataListIn.unlist[,Conditions==levels(Conditions)[lv]],nrow=dim(DataListIn.unlist)[1]) if(length(NotIn)>0){ DataListSPNotIn[[lv]]= matrix(DataListNotIn.unlist[,Conditions==levels(Conditions)[lv]],nrow=dim(DataListNotIn.unlist)[1]) rownames(DataListSPNotIn[[lv]])=rownames(DataListNotIn.unlist) } rownames(DataListSPIn[[lv]])=rownames(DataListIn.unlist) EmpiricalRList.Good.mat.SP[[lv]]=matrix(EmpiricalRList.Good.mat[,Conditions==levels(Conditions)[lv]],nrow=dim(EmpiricalRList.Good.mat)[1]) EmpiricalRList.mat.SP[[lv]]=matrix(EmpiricalRList.mat[,Conditions==levels(Conditions)[lv]],nrow=dim(EmpiricalRList.mat)[1]) } NumOfEachGroupIn=sapply(1:NoneZeroLength, function(i)max(0,dim(DataList.In[[i]])[1])) NumOfEachGroupNotIn=sapply(1:NoneZeroLength, function(i)max(0,dim(DataList.NotIn[[i]])[1])) ################# # For output ################# RealName.EmpiricalRList=sapply(1:NoneZeroLength,function(i)EmpiricalRList[names(EmpiricalRList)%in%NameList[[i]]], simplify=F) RealName.MeanList=sapply(1:NoneZeroLength,function(i)MeanList[names(MeanList)%in%NameList[[i]]], simplify=F) RealName.C1MeanList=sapply(1:NoneZeroLength,function(i)MeanSP[[1]][names(MeanSP[[1]])%in%NameList[[i]]], simplify=F) RealName.C2MeanList=sapply(1:NoneZeroLength,function(i)MeanSP[[2]][names(MeanSP[[2]])%in%NameList[[i]]], simplify=F) RealName.C1VarList=sapply(1:NoneZeroLength,function(i)VarSP[[1]][names(VarSP[[1]])%in%NameList[[i]]], simplify=F) RealName.C2VarList=sapply(1:NoneZeroLength,function(i)VarSP[[2]][names(VarSP[[2]])%in%NameList[[i]]], simplify=F) RealName.DataList=sapply(1:NoneZeroLength,function(i)DataList[[i]][rownames(DataList[[i]])%in%NameList[[i]],], simplify=F) RealName.VarList=sapply(1:NoneZeroLength,function(i)VarList[names(VarList)%in%NameList[[i]]], simplify=F) RealName.PoolVarList=sapply(1:NoneZeroLength,function(i)PoolVar[names(PoolVar)%in%NameList[[i]]], simplify=F) RealName.QList1=sapply(1:NoneZeroLength,function(i)GetPSP[[1]][names(GetPSP[[1]])%in%NameList[[i]]], simplify=F) RealName.QList2=sapply(1:NoneZeroLength,function(i)GetPSP[[2]][names(GetPSP[[2]])%in%NameList[[i]]], simplify=F) if(is.null(unlist(RealName.QList1)))RealName.QList1=RealName.QList2 if(is.null(unlist(RealName.QList2)))RealName.QList2=RealName.QList1 if(is.null(unlist(RealName.C1VarList)))RealName.C1VarList=RealName.C2VarList if(is.null(unlist(RealName.C2VarList)))RealName.C2VarList=RealName.C1VarList #browser() for (i in 1:NoneZeroLength){ tmp=NameList[[i]] names=IsoNamesIn[tmp] RealName.MeanList[[i]]=RealName.MeanList[[i]][NameList[[i]]] RealName.VarList[[i]]=RealName.VarList[[i]][NameList[[i]]] RealName.QList1[[i]]=RealName.QList1[[i]][NameList[[i]]] RealName.QList2[[i]]=RealName.QList2[[i]][NameList[[i]]] RealName.EmpiricalRList[[i]]=RealName.EmpiricalRList[[i]][NameList[[i]]] RealName.C1MeanList[[i]]=RealName.C1MeanList[[i]][NameList[[i]]] RealName.C2MeanList[[i]]=RealName.C2MeanList[[i]][NameList[[i]]] RealName.PoolVarList[[i]]=RealName.PoolVarList[[i]][NameList[[i]]] RealName.C1VarList[[i]]=RealName.C1VarList[[i]][NameList[[i]]] RealName.C2VarList[[i]]=RealName.C2VarList[[i]][NameList[[i]]] RealName.DataList[[i]]=RealName.DataList[[i]][NameList[[i]],] names(RealName.MeanList[[i]])=names names(RealName.VarList[[i]])=names if(ncol(DataListSP[[1]])!=1){ names(RealName.QList1[[i]])=names names(RealName.C1VarList[[i]])=names } if(ncol(DataListSP[[2]])!=1){ names(RealName.QList2[[i]])=names names(RealName.C2VarList[[i]])=names } names(RealName.EmpiricalRList[[i]])=names names(RealName.C1MeanList[[i]])=names names(RealName.C2MeanList[[i]])=names names(RealName.PoolVarList[[i]])=names rownames(RealName.DataList[[i]])=names } ##################### # If Don need EM ##################### if(!is.null(Alpha)&!is.null(Beta)){ F0Log=f0(Input=DataList.unlist, AlphaIn=Alpha, BetaIn=Beta, EmpiricalR=EmpiricalRList.mat, NumOfGroups=NumEachGroup, log=T) F1Log=f1(Input1=DataListSP[[1]], Input2=DataListSP[[2]], AlphaIn=Alpha, BetaIn=Beta, EmpiricalRSP1=EmpiricalRList.mat.SP[[1]], EmpiricalRSP2=EmpiricalRList.mat.SP[[2]], NumOfGroup=NumEachGroup, log=T) F0LogMdf=F0Log+600 F1LogMdf=F1Log+600 F0Mdf=exp(F0LogMdf) F1Mdf=exp(F1LogMdf) if(!is.null(PInput)){ z.list=PInput*F1Mdf/(PInput*F1Mdf+(1-PInput)*F0Mdf) PIn=PInput } if(is.null(PInput)){ PIn=.5 PInput=rep(NULL,maxround) for(i in 1:maxround){ z.list=PIn*F1Mdf/(PIn*F1Mdf+(1-PIn)*F0Mdf) zNaNName=names(z.list)[is.na(z.list)] zGood=which(!is.na(z.list)) PIn=sum(z.list[zGood])/length(z.list[zGood]) PInput[i]=PIn } zNaNName=names(z.list)[is.na(z.list)] if(length(zNaNName)!=0){ PNotIn=rep(1-ApproxVal,length(zNaNName)) MeanList.NotIn=MeanList[zNaNName] R.NotIn.raw=MeanList.NotIn*PNotIn/(1-PNotIn) if(length(sizeFactors)==ncol(Data)) R.NotIn=outer(R.NotIn.raw,sizeFactors) if(length(sizeFactors)==length(Data)) R.NotIn=R.NotIn.raw*sizeFactors[zNaNName,] R.NotIn1=matrix(R.NotIn[,Conditions==levels(Conditions)[1]],nrow=nrow(R.NotIn)) R.NotIn2=matrix(R.NotIn[,Conditions==levels(Conditions)[2]],nrow=nrow(R.NotIn)) NumOfEachGroupNA=sapply(1:NoneZeroLength, function(i)sum(zNaNName%in%rownames(DataList[[i]]))) F0LogNA=f0(matrix(DataList.unlist[zNaNName,], ncol=ncol(DataList.unlist)), Alpha, Beta, R.NotIn, NumOfEachGroupNA, log=T) F1LogNA=f1(matrix(DataListSP[[1]][zNaNName,],ncol=ncol(DataListSP[[1]])), matrix(DataListSP[[2]][zNaNName,],ncol=ncol(DataListSP[[2]])), Alpha, Beta, R.NotIn1,R.NotIn2, NumOfEachGroupNA, log=T) F0LogMdfNA=F0LogNA+600 F1LogMdfNA=F1LogNA+600 F0MdfNA=exp(F0LogMdfNA) F1MdfNA=exp(F1LogMdfNA) z.list.NotIn=PIn*F1MdfNA/(PIn*F1MdfNA+(1-PIn)*F0MdfNA) z.list[zNaNName]=z.list.NotIn F0Log[zNaNName]=F0LogNA F1Log[zNaNName]=F1LogNA } } RealName.Z.output=z.list RealName.F0=F0Log RealName.F1=F1Log names(RealName.Z.output)=IsoNamesIn names(RealName.F0)=IsoNamesIn names(RealName.F1)=IsoNamesIn output=list(Alpha=Alpha,Beta=Beta,P=PInput, Z=RealName.Z.output, RList=RealName.EmpiricalRList, MeanList=RealName.MeanList, VarList=RealName.VarList, QList1=RealName.QList1, QList2=RealName.QList2, C1Mean=RealName.C1MeanList, C2Mean=RealName.C2MeanList, C1EstVar=RealName.C1VarList, C2EstVar=RealName.C2VarList, PoolVar=RealName.PoolVarList , DataList=RealName.DataList, PPDE=RealName.Z.output,f0=RealName.F0, f1=RealName.F1) return(output) } ##################### #Initialize SigIn & ... ##################### AlphaIn=0.5 BetaIn=rep(0.5,NoneZeroLength) PIn=0.5 ##################### # EM ##################### UpdateAlpha=NULL UpdateBeta=NULL UpdateP=NULL UpdatePFromZ=NULL Timeperround=NULL for (times in 1:maxround){ temptime1=proc.time() UpdateOutput=suppressWarnings(LogN(DataListIn.unlist,DataListSPIn, EmpiricalRList.Good.mat ,EmpiricalRList.Good.mat.SP, NumOfEachGroupIn, AlphaIn, BetaIn, PIn, NoneZeroLength)) message(paste("iteration", times, "done \n",sep=" ")) AlphaIn=UpdateOutput$AlphaNew BetaIn=UpdateOutput$BetaNew PIn=UpdateOutput$PNew PFromZ=UpdateOutput$PFromZ F0Out=UpdateOutput$F0Out F1Out=UpdateOutput$F1Out UpdateAlpha=rbind(UpdateAlpha,AlphaIn) UpdateBeta=rbind(UpdateBeta,BetaIn) UpdateP=rbind(UpdateP,PIn) UpdatePFromZ=rbind(UpdatePFromZ,PFromZ) temptime2=proc.time() Timeperround=c(Timeperround,temptime2[3]-temptime1[3]) message(paste("time" ,round(Timeperround[times],2),"\n",sep=" ")) Z.output=UpdateOutput$ZNew.list[!is.na(UpdateOutput$ZNew.list)] Z.NA.Names=UpdateOutput$zNaNName } #Remove this } after testing!! # if (times!=1){ # if((UpdateAlpha[times]-UpdateAlpha[times-1])^2+UpdateBeta[times]-UpdateBeta[times-1])^2+UpdateR[times]-UpdateR[times-1])^2+UpdateP[times]-UpdateP[times-1])^2<=10^(-6)){ # Result=list(Sig=SigIn, Miu=MiuIn, Tau=TauIn) # break # } # } #} ##########Change Names############ ## Only z are for Good Ones GoodData=GoodData[!GoodData%in%Z.NA.Names] IsoNamesIn.Good=IsoNamesIn[GoodData] RealName.Z.output=Z.output RealName.F0=F0Out RealName.F1=F1Out names(RealName.Z.output)=IsoNamesIn.Good names(RealName.F0)=IsoNamesIn.Good names(RealName.F1)=IsoNamesIn.Good #########posterior part for other data set here later############ AllNA=unique(c(Z.NA.Names,NotIn)) z.list.NotIn=NULL AllF0=c(RealName.F0) AllF1=c(RealName.F1) AllZ=RealName.Z.output if (length(AllNA)>0){ Ng.NA=NgVector[AllNA] AllNA.Ngorder=AllNA[order(Ng.NA)] NumOfEachGroupNA=rep(0,NoneZeroLength) NumOfEachGroupNA.tmp=tapply(Ng.NA,Ng.NA,length) names(NumOfEachGroupNA)=c(1:NoneZeroLength) NumOfEachGroupNA[names(NumOfEachGroupNA.tmp)]=NumOfEachGroupNA.tmp PNotIn=rep(1-ApproxVal,length(AllNA.Ngorder)) MeanList.NotIn=MeanList[AllNA.Ngorder] R.NotIn.raw=MeanList.NotIn*PNotIn/(1-PNotIn) if(length(sizeFactors)==ncol(Data)) R.NotIn=outer(R.NotIn.raw,sizeFactors) if(length(sizeFactors)==length(Data)) R.NotIn=R.NotIn.raw*sizeFactors[names(R.NotIn.raw),] R.NotIn1=matrix(R.NotIn[,Conditions==levels(Conditions)[1]],nrow=nrow(R.NotIn)) R.NotIn2=matrix(R.NotIn[,Conditions==levels(Conditions)[2]],nrow=nrow(R.NotIn)) DataListNotIn.unlistWithZ=matrix(DataList.unlist[AllNA.Ngorder,],nrow=length(AllNA.Ngorder)) DataListSPNotInWithZ=vector("list",nlevels(Conditions)) for (lv in 1:nlevels(Conditions)) DataListSPNotInWithZ[[lv]] = matrix(DataListSP[[lv]][AllNA.Ngorder,],nrow=length(AllNA.Ngorder)) F0Log=f0(DataListNotIn.unlistWithZ, AlphaIn, BetaIn, R.NotIn, NumOfEachGroupNA, log=T) F1Log=f1(DataListSPNotInWithZ[[1]], DataListSPNotInWithZ[[2]], AlphaIn, BetaIn, R.NotIn1,R.NotIn2, NumOfEachGroupNA, log=T) F0LogMdf=F0Log+600 F1LogMdf=F1Log+600 F0Mdf=exp(F0LogMdf) F1Mdf=exp(F1LogMdf) z.list.NotIn=PIn*F1Mdf/(PIn*F1Mdf+(1-PIn)*F0Mdf) # names(z.list.NotIn)=IsoNamesIn.Good=IsoNamesIn[which(Names%in%NotIn)] names(z.list.NotIn)=IsoNamesIn[AllNA.Ngorder] AllZ=c(RealName.Z.output,z.list.NotIn) AllZ=AllZ[IsoNamesIn] AllZ[is.na(AllZ)]=0 F0.NotIn=F0Log F1.NotIn=F1Log names(F0.NotIn)=IsoNamesIn[names(F0Log)] names(F1.NotIn)=IsoNamesIn[names(F1Log)] AllF0=c(RealName.F0,F0.NotIn) AllF1=c(RealName.F1,F1.NotIn) AllF0=AllF0[IsoNamesIn] AllF1=AllF1[IsoNamesIn] AllF0[is.na(AllF0)]=0 AllF1[is.na(AllF1)]=0 } PPMatNZ=cbind(1-AllZ,AllZ) colnames(PPMatNZ)=c("PPEE","PPDE") rownames(UpdateAlpha)=paste("iter",1:nrow(UpdateAlpha),sep="") rownames(UpdateBeta)=paste("iter",1:nrow(UpdateBeta),sep="") rownames(UpdateP)=paste("iter",1:nrow(UpdateP),sep="") rownames(UpdatePFromZ)=paste("iter",1:nrow(UpdatePFromZ),sep="") colnames(UpdateBeta)=paste("Ng",1:ncol(UpdateBeta),sep="") CondOut=levels(Conditions) names(CondOut)=paste("Condition",c(1:length(CondOut)),sep="") PPMat=matrix(NA,ncol=2,nrow=nrow(Dataraw)) rownames(PPMat)=rownames(Dataraw) colnames(PPMat)=c("PPEE","PPDE") if(is.null(AllZeroNames))PPMat=PPMatNZ if(!is.null(AllZeroNames))PPMat[names(NotAllZeroNames),]=PPMatNZ[names(NotAllZeroNames),] #############Result############################ Result = list(Alpha=UpdateAlpha,Beta=UpdateBeta,P=UpdateP ,PFromZ=UpdatePFromZ,RList=RealName.EmpiricalRList, MeanList=RealName.MeanList ,VarList=RealName.VarList,QList = cbind(RealName.QList1,QList2=RealName.QList2) ,Mean = cbind(RealName.C1MeanList,RealName.C2MeanList) ,Var = cbind(RealName.C1VarList,RealName.C2VarList) ,PoolVar=RealName.PoolVarList ,DataNorm = DataNorm ,AllZeroIndex=AllZeroNames ,Iso = as.numeric(NgVector) ,PPMat=PPMatNZ ,PPMatWith0=PPMat ,Conditions=Conditions) #Result=list(Alpha=UpdateAlpha,Beta=UpdateBeta,P=UpdateP, # PFromZ=UpdatePFromZ, Z=RealName.Z.output,PoissonZ=z.list.NotIn, # RList=RealName.EmpiricalRList, MeanList=RealName.MeanList, # VarList=RealName.VarList, QList1=RealName.QList1, QList2=RealName.QList2, # C1Mean=RealName.C1MeanList, C2Mean=RealName.C2MeanList,C1EstVar=RealName.C1VarList, # C2EstVar=RealName.C2VarList, PoolVar=RealName.PoolVarList , # DataList=RealName.DataList,PPDE=AllZ,f0=AllF0, f1=AllF1, # AllZeroIndex=AllZeroNames,PPMat=PPMatNZ, PPMatWith0=PPMat, # ConditionOrder=CondOut, Conditions=Conditions, DataNorm=DataNorm) } return(Result) } EBSeq/R/GetDEResults.R0000644000175200017520000000501014516004476015374 0ustar00biocbuildbiocbuildGetDEResults<-function(EBPrelim, FDR=0.05, Method="robust", FDRMethod="hard", Threshold_FC=0.7, Threshold_FCRatio=0.3, SmallNum=0.01) { if(ncol(EBPrelim$Mean) != 2) stop("The input doesn't seem like an output from EBTest") ################# Conditions = EBPrelim$Conditions Levels = levels(as.factor(Conditions)) PPcut = FDR # normalized data GeneMat = EBPrelim$DataNorm ###Get DEfound by FDRMethod type PP = GetPPMat(EBPrelim) if(FDRMethod == "hard") {DEfound = rownames(PP)[which(PP[,"PPDE"] >= (1-PPcut))]} else{SoftThre = crit_fun(PP[,"PPEE"],PPcut) DEfound=rownames(PP)[which(PP[,"PPDE"]>=SoftThre)]} # classic if(Method=="classic"){ Gene_status=rep("EE",dim(GeneMat)[1]) names(Gene_status)=rownames(GeneMat) Gene_status[DEfound]="DE" NoTest_genes = rownames(GeneMat)[!(rownames(GeneMat)%in%rownames(PP))] Gene_status[NoTest_genes]="Filtered: Low Expression" PPMatWith0=EBPrelim$PPMatWith0 PPMatWith0[NoTest_genes,]=c(NA,NA) colnames(PPMatWith0) = c("PPEE","PPDE") return(list(DEfound=DEfound,PPMat=PPMatWith0,Status=Gene_status)) } else{ ###Post_Foldchange PostFoldChange=PostFC(EBPrelim) PPFC=PostFoldChange$PostFC OldPPFC=PPFC[DEfound] OldPPFC[which(OldPPFC>1)]=1/OldPPFC[which(OldPPFC>1)] FilterFC=names(OldPPFC)[which(OldPPFC>Threshold_FC)] ###New Fold Change NewFC1=apply(matrix(GeneMat[DEfound,which(Conditions==Levels[[1]])]+SmallNum, nrow=length(DEfound)),1,median) NewFC2=apply(matrix(GeneMat[DEfound,which(Conditions==Levels[[2]])]+SmallNum, nrow=length(DEfound)),1,median) NewFC=NewFC1/NewFC2 NewFC[which(NewFC>1)]=1/NewFC[which(NewFC>1)] ###FC Ratio FCRatio=NewFC/OldPPFC FCRatio[which(OldPPFCTrunThre]=TrunThre IsoformNgTrun=IsoformNg IsoformNgTrun[IsoformNgTrun>TrunThre]=TrunThre out=list( GeneNg=GeneNg, GeneNgTrun=GeneNgTrun, IsoformNg=IsoformNg, IsoformNgTrun=IsoformNgTrun) } EBSeq/R/GetNormalizedMat.R0000644000175200017520000000044514516004476016277 0ustar00biocbuildbiocbuildGetNormalizedMat<-function(Data, Sizes){ if(length(Sizes)!=length(Data) & length(Sizes)!=ncol(Data)) stop("The number of library size factors is not the same as the number of samples!") if(length(Sizes)==length(Data))Out=Data/Sizes if(length(Sizes)==ncol(Data))Out=t(t(Data)/Sizes) Out} EBSeq/R/GetPPMat.R0000644000175200017520000000021014516004476014500 0ustar00biocbuildbiocbuildGetPPMat <- function(EBout){ if(!"PPMat"%in%names(EBout))stop("The input doesn't seem like an output from EBTest") PP=EBout$PPMat } EBSeq/R/GetPatterns.R0000644000175200017520000000064214516004476015330 0ustar00biocbuildbiocbuildGetPatterns<-function(Conditions){ if(!is.factor(Conditions))Conditions=as.factor(Conditions) NumCond=nlevels(Conditions) if(NumCond<3)stop("Less than 3 conditions!") CondLevels=levels(Conditions) AllPartiList=sapply(1:NumCond,function(i)nkpartitions(NumCond,i)) AllParti=do.call(rbind,AllPartiList) colnames(AllParti)=CondLevels rownames(AllParti)=paste("Pattern",1:nrow(AllParti),sep="") AllParti } EBSeq/R/GetSelectedPatterns.R0000644000175200017520000000055014516004476016777 0ustar00biocbuildbiocbuildGetSelectedPatterns<-function(EBout){ AllParti = EBout$AllParti Conditions = EBout$Conditions if (!is.factor(Conditions)) Conditions = as.factor(Conditions) NumCond = nlevels(Conditions) CondLevels = levels(Conditions) colnames(AllParti) = CondLevels rownames(AllParti) = paste("Pattern",1:nrow(AllParti),sep="") AllParti } EBSeq/R/Likefun.R0000644000175200017520000000137314516004476014467 0ustar00biocbuildbiocbuildLikefun <- function(ParamPool, InputPool) { NoneZeroLength=InputPool[[5]] AlphaIn=ParamPool[1] BetaIn=ParamPool[2:(1+NoneZeroLength)] PIn=ParamPool[2+NoneZeroLength] ZIn=InputPool[[4]] Input=InputPool[[3]] Input1=matrix(InputPool[[1]],nrow=nrow(Input)) Input2=matrix(InputPool[[2]],nrow=nrow(Input)) RIn=InputPool[[6]] RInSP1=matrix(InputPool[[7]],nrow=nrow(Input)) RInSP2=matrix(InputPool[[8]],nrow=nrow(Input)) NumIn=InputPool[[9]] ##Function here #LikelihoodFunction<- function(NoneZeroLength){ F0=f0(Input, AlphaIn, BetaIn, RIn, NumIn, log=T) F1=f1(Input1, Input2, AlphaIn, BetaIn, RInSP1,RInSP2, NumIn, log=T) F0[F0==Inf]=min(!is.na(F0[F0!=Inf])) F1[F1==Inf]=min(!is.na(F1[F1!=Inf])) -sum((1-ZIn)*F0+ (1-ZIn)* log(1-PIn) + ZIn*F1 + ZIn*log(PIn)) } EBSeq/R/LikefunMulti.R0000644000175200017520000000153114516004476015476 0ustar00biocbuildbiocbuildLikefunMulti <- function(ParamPool, InputPool) { NoneZeroLength=InputPool[[4]] AlphaIn=ParamPool[1] BetaIn=ParamPool[2:(1+NoneZeroLength)] PIn=ParamPool[(2+NoneZeroLength):length(ParamPool)] PInAll=c(1-sum(PIn),PIn) ZIn=InputPool[[3]] Input=InputPool[[2]] InputSP=InputPool[[1]] RIn=InputPool[[5]] RInSP=InputPool[[6]] NumIn=InputPool[[7]] AllParti=InputPool[[8]] PInMat=matrix(rep(1,nrow(Input)),ncol=1)%*%matrix(PInAll,nrow=1) ##Function here FList=sapply(1:nrow(AllParti),function(i)sapply(1:nlevels(as.factor(AllParti[i,])), function(j)f0(do.call(cbind,InputSP[AllParti[i,]==j]),AlphaIn, BetaIn, do.call(cbind,RInSP[AllParti[i,]==j]), NumIn, log=T)), simplify=F) FPartiLog=sapply(FList,rowSums) #FMat=exp(FPartiLog) FMat=FPartiLog -sum(ZIn*(FMat+log(PInMat))) } EBSeq/R/LogN.R0000644000175200017520000000451114516004476013726 0ustar00biocbuildbiocbuildLogN <- function(Input, InputSP, EmpiricalR, EmpiricalRSP, NumOfEachGroup, AlphaIn, BetaIn, PIn, NoneZeroLength) { #2 condition case (skip the loop then maybe run faster? Code multi condition cases later) #For each gene (m rows of Input---m genes) #Save each gene's F0, F1 for further likelihood calculation. #Get F0 for EE F0Log=f0(Input, AlphaIn, BetaIn, EmpiricalR, NumOfEachGroup, log=T) #Get F1 for DE F1Log=f1(InputSP[[1]], InputSP[[2]], AlphaIn, BetaIn, EmpiricalRSP[[1]],EmpiricalRSP[[2]], NumOfEachGroup, log=T) #Get z #Use data.list in logfunction F0LogMdf=F0Log+600 F1LogMdf=F1Log+600 F0Mdf=exp(F0LogMdf) F1Mdf=exp(F1LogMdf) z.list=PIn*F1Mdf/(PIn*F1Mdf+(1-PIn)*F0Mdf) zNaNName=names(z.list)[is.na(z.list)] zGood=which(!is.na(z.list)) if(length(zGood)==0){ #Min=min(min(F0Log[which(F0Log!=-Inf)]), # min(F1Log[which(F1Log!=-Inf)])) tmpMat=cbind(F0Log,F1Log) tmpMean=apply(tmpMat,1,mean) F0LogMdf=F0Log-tmpMean F1LogMdf=F1Log-tmpMean F0Mdf=exp(F0LogMdf) F1Mdf=exp(F1LogMdf) z.list=PIn*F1Mdf/(PIn*F1Mdf+(1-PIn)*F0Mdf) zNaNName=names(z.list)[is.na(z.list)] zGood=which(!is.na(z.list)) } ###Update P #PFromZ=sapply(1:NoneZeroLength,function(i) sum(z.list[[i]])/length(z.list[[i]])) PFromZ=sum(z.list[zGood])/length(z.list[zGood]) F0Good=F0Log[zGood] F1Good=F1Log[zGood] ### MLE Part #### # Since we dont wanna update p and Z in this step # Each Ng for one row NumGroupVector=rep(c(1:NoneZeroLength),NumOfEachGroup) NumGroupVector.zGood=NumGroupVector[zGood] NumOfEachGroup.zGood=tapply(NumGroupVector.zGood,NumGroupVector.zGood,length) StartValue=c(AlphaIn, BetaIn,PIn) Result<-optim(StartValue,Likefun,InputPool=list(InputSP[[1]][zGood,],InputSP[[2]][zGood,],Input[zGood,],z.list[zGood], NoneZeroLength,EmpiricalR[zGood, ],EmpiricalRSP[[1]][zGood,], EmpiricalRSP[[2]][zGood,], NumOfEachGroup.zGood)) #LikeOutput=Likelihood( StartValue, Input , InputSP , PNEW.list, z.list) AlphaNew= Result$par[1] BetaNew=Result$par[2:(1+NoneZeroLength)] PNew=Result$par[2+NoneZeroLength] ## Output=list(AlphaNew=AlphaNew,BetaNew=BetaNew,PNew=PNew,ZNew.list=z.list,PFromZ=PFromZ, zGood=zGood, zNaNName=zNaNName,F0Out=F0Good, F1Out=F1Good) Output } EBSeq/R/LogNMulti.R0000644000175200017520000000546514516004476014752 0ustar00biocbuildbiocbuildLogNMulti <- function(Input, InputSP, EmpiricalR, EmpiricalRSP, NumOfEachGroup, AlphaIn, BetaIn, PIn, NoneZeroLength, AllParti, Conditions) { #For each gene (m rows of Input---m genes) #Save each gene's F0, F1 for further likelihood calculation. FList=sapply(1:nrow(AllParti),function(i)sapply(1:nlevels(as.factor(AllParti[i,])), function(j)f0(do.call(cbind,InputSP[AllParti[i,]==j]),AlphaIn, BetaIn, do.call(cbind,EmpiricalRSP[AllParti[i,]==j]), NumOfEachGroup, log=T)), simplify=F) FPartiLog=sapply(FList,rowSums) FMat=exp(FPartiLog+600) rownames(FMat)=rownames(FPartiLog)=rownames(Input) #Get z #Use data.list in logfunction PInMat=matrix(rep(1,nrow(Input)),ncol=1)%*%matrix(PIn,nrow=1) FmultiP=FMat*PInMat Denom=rowSums(FmultiP) ZEach=apply(FmultiP,2,function(i)i/Denom) zNaNName1=names(Denom)[is.na(Denom)] # other NAs in LikeFun LF=ZEach*(log(FmultiP)) zNaNMore=rownames(LF)[which(is.na(rowSums(LF)))] zNaNName=unique(c(zNaNName1,zNaNMore)) zGood=which(!rownames(LF)%in%zNaNName) if(length(zGood)==0){ #Min=min(min(F0Log[which(F0Log!=-Inf)]), # min(F1Log[which(F1Log!=-Inf)])) tmpMat=FPartiLog tmpMean=apply(tmpMat,1,mean) FLogMdf=FPartiLog-tmpMean FMdf=exp(FLogMdf) FmultiPMdf=FMdf*PInMat DenomMdf=rowSums(FmultiPMdf) ZEach=apply(FmultiPMdf,2,function(i)i/DenomMdf) zNaNName1Mdf=names(DenomMdf)[is.na(DenomMdf)] # other NAs in LikeFun LFMdf=ZEach*(log(FmultiPMdf)) zNaNMoreMdf=rownames(LFMdf)[which(is.na(rowSums(LFMdf)))] zNaNNameMdf=unique(c(zNaNName1Mdf,zNaNMoreMdf)) zGood=which(!rownames(LFMdf)%in%zNaNNameMdf) } ZEachGood=ZEach[zGood,] ###Update P PFromZ=colSums(ZEach[zGood,])/length(zGood) FGood=FPartiLog[zGood,] ### MLE Part #### # Since we dont wanna update p and Z in this step # Each Ng for one row NumGroupVector=rep(c(1:NoneZeroLength),NumOfEachGroup) NumGroupVector.zGood=NumGroupVector[zGood] NumOfEachGroup.zGood=tapply(NumGroupVector.zGood,NumGroupVector.zGood,length) StartValue=c(AlphaIn, BetaIn,PIn[-1]) InputSPGood=sapply(1:length(InputSP),function(i)InputSP[[i]][zGood,],simplify=F) EmpiricalRSPGood=sapply(1:length(EmpiricalRSP),function(i)EmpiricalRSP[[i]][zGood,],simplify=F) Result<-optim(StartValue,LikefunMulti,InputPool=list(InputSPGood,Input[zGood,],ZEach[zGood,], NoneZeroLength,EmpiricalR[zGood, ],EmpiricalRSPGood, NumOfEachGroup.zGood, AllParti)) AlphaNew= Result$par[1] BetaNew=Result$par[2:(1+NoneZeroLength)] PNewNo1=Result$par[(2+NoneZeroLength):length(Result$par)] PNew=c(1-sum(PNewNo1),PNewNo1) ## Output=list(AlphaNew=AlphaNew,BetaNew=BetaNew,PNew=PNew,ZEachNew=ZEach, ZEachGood=ZEachGood, PFromZ=PFromZ, zGood=zGood, zNaNName=zNaNName,FGood=FGood) Output } EBSeq/R/MedianNorm.R0000644000175200017520000000107514516004476015122 0ustar00biocbuildbiocbuildMedianNorm <- function(Data, alternative=FALSE){ if(ncol(Data)==1)stop("Only 1 sample!") if(!alternative){ geomeans <- exp(rowMeans(log(Data))) out <- apply(Data, 2, function(cnts) median((cnts/geomeans)[geomeans > 0]))} if(alternative){ DataMatO <- Data N <- ncol(DataMatO) DataList0 <- sapply(1:N,function(i)DataMatO[,i]/DataMatO,simplify=F) DataEachMed0 <- sapply(1:N,function(i)apply(DataList0[[i]],2,function(j)median(j[which(j>0 & j 0) { out <- 1 - sort(PPEE)[index] } if (index == 0) { out <- 1 } names(out) <- NULL return(out) } EBSeq/R/f0.R0000644000175200017520000000172114516004476013374 0ustar00biocbuildbiocbuildf0 <- function(Input, AlphaIn, BetaIn, EmpiricalR, NumOfGroups, log) { BetaVect=do.call(c,sapply(1:length(BetaIn),function(i)rep(BetaIn[i],NumOfGroups[i]),simplify=F)) SampleNum=dim(Input)[2] #Product part ChooseParam1=round(Input+EmpiricalR-1) roundInput=round(Input) EachChoose0=matrix(sapply(1:SampleNum, function(i)lchoose(ChooseParam1[,i], roundInput[,i])),ncol=SampleNum) # numerical approximation to rescue -Inf ones NoNegInfMin=min(EachChoose0[which(EachChoose0!=-Inf)]) NoPosInfMax=max(EachChoose0[which(EachChoose0!=Inf)]) EachChoose=EachChoose0 EachChoose[which(EachChoose0==-Inf, arr.ind=T)]=NoNegInfMin EachChoose[which(EachChoose0==Inf, arr.ind=T)]=NoPosInfMax SumEachIso=rowSums(Input) param1=AlphaIn + rowSums(EmpiricalR) param2=BetaVect + SumEachIso LogConst=rowSums(EachChoose)+lbeta(param1, param2)-lbeta(AlphaIn, BetaVect) if (log==F) FinalResult=exp(LogConst) if (log==T) FinalResult=LogConst FinalResult } EBSeq/R/f1.R0000644000175200017520000000046314516004476013377 0ustar00biocbuildbiocbuildf1 <- function(Input1, Input2, AlphaIn, BetaIn, EmpiricalRSP1,EmpiricalRSP2,NumOfGroup, log){ F0.1=f0(Input1, AlphaIn, BetaIn, EmpiricalRSP1, NumOfGroup, log=log) F0.2=f0(Input2, AlphaIn, BetaIn, EmpiricalRSP2, NumOfGroup, log=log) if (log==F) Result=F0.1*F0.2 if (log==T) Result=F0.1+F0.2 Result } EBSeq/README.md0000644000175200017520000001170514516004476014025 0ustar00biocbuildbiocbuild# EBSeq Q & A ## Read in data csv file: ``` In=read.csv("FileName", stringsAsFactors=F, row.names=1, header=T) Data=data.matrix(In) ``` txt file: ``` In=read.table("FileName", stringsAsFactors=F, row.names=1, header=T) Data=data.matrix(In) ``` check str(Data) and make sure it is a matrix instead of data frame. You may need to play around with the row.names and header option depends on how the input file was generated. ## GetDEResults() function not found You may on an earlier version of EBSeq. The GetDEResults function was introduced since version 1.7.1. The latest release version could be found at: http://www.bioconductor.org/packages/devel/bioc/html/EBSeq.html And you may check your package version by typing packageVersion("EBSeq") ## Visualizing DE genes/isoforms To generate a heatmap, you may consider the heatmap.2 function in gplots package. For example, you may run ``` heatmap.2(NormalizedMatrix[GenesOfInterest,], scale="row", trace="none", Colv=F) ``` The normalized matrix may be obtained from GetNormalizedMat() function. ## My favorite gene/isoform has NA in PP (status "NoTest") The NoTest status comes from two sources 1) Using the default parameter settings of EBMultiTest(), the function will not test on genes with more than 75% values < 10 to ensure better model fitting. To disable this filter, you may set Qtrm=1 and QtrmCut=0. 2) numerical over/underflow in R. That happens when the within condition variance is extremely large or small. I did implemented a numerical approximation step to calculate the approximated PP for these genes with over/underflow. Here I use 10^-10 to approximate the parameter p in the NB distribution for these genes (I set it to a small value since I want to cover more over/underflow genes with low within-condition variation). You may try to tune this value (to a larger value) in the approximation by setting ApproxVal in EBTest() or EBMultiTest() function. ## Can I run more than 5 iterations when running EBSeq via RSEM wrapper? Yes you may modify the script rsem-for-ebseq-find-DE under RSEM/EBSeq change line 36 ``` EBOut <- EBTest(Data = DataMat, NgVector = ngvector, Conditions = conditions, sizeFactors = Sizes, maxround = 5) ``` to ``` EBOut <- EBTest(Data = DataMat, NgVector = ngvector, Conditions = conditions, sizeFactors = Sizes, maxround = 10) ``` If you are running multiple condition analysis, you will need to change line 53: ``` MultiOut <- EBMultiTest(Data = DataMat, NgVector = ngvector, Conditions = conditions, AllParti = patterns, sizeFactors = Sizes, maxround = 5) ``` ``` MultiOut <- EBMultiTest(Data = DataMat, NgVector = ngvector, Conditions = conditions, AllParti = patterns, sizeFactors = Sizes, maxround = 10) ``` You will need to redo make after you make the changes. ## I saw a gene has significant FC but is not called as DE by EBSeq, why does that happen? EBSeq calls a gene as DE (assign high PPDE) if the across-condition variability is significantly larger than the within-condition variability. In the cases that a gene has large within-condition variation, although the FC across two conditions is large (small), the across-condition difference could still be explained by biological variation within condition. In these cases the gene/isoform will have a moderate PPDE. ## Can I look at TPMs/RPKMs/FPKMs across samples? In general, it is not appropriate to perform cross sample comparisons using TPM, FPKM or RPKM without further normalization. Instead, you may use normalized counts (It can be generated by GetNormalizedMat() function from raw count, note EBSeq testing functions takes raw counts and library size factors) Here is an example: Suppose there are 2 samples S1 and S2 from different conditions. Each has 5 genes. For simplicity, we assume each of 5 genes contains only one isoform and all genes have the same length. Assume only gene 5 is DE and the gene expressions of these 5 genes are: |Sample|g1|g2|g3|g4|g5| |---|---|---|---|---|---| |S1|10|10|10|10|10| |S2| 20 | 20 | 20 | 20 | 100 | Then the TPM/FPKM/RPKM will be (note sum TPM/FPKM/RPKM of all genes should be 10^6 ): |Sample|g1|g2|g3|g4|g5| |---|---|---|---|---|---| | S1 | 2x10^5 | 2x10^5 | 2x10^5 | 2x10^5 | 2x10^5 | | S2 | 1.1x10^5| 1.1x10^5| 1.1x10^5| 1.1x10^5| 5.6x10^5| Based on TPM/FPKM/RPKM, an investigator may conclude that the first 4 genes are down-regulated and the 5th gene is up-regulated. Then we will get 4 false positive calls. Cross-sample TPM/FPKM/RPKM comparisons will be feasible only when no hypothetical DE genes present across samples (Or when assuming the DE genes are sort of 'symmetric' regarding up and down regulation). ## RealFC vs PostFC The posterior fold change estimations will give less extreme values for low expressers. e.g. if gene1 has mean1 = 5000 and mean2 = 1000, its FC and PostFC will both be 5. If gene2 has mean1 = 5 and mean2 = 1, its FC will be 5 but its PostFC will be < 5 and closer to 1. Therefore when we sort the PostFC, gene2 will be less significant than gene1. EBSeq/data/0000755000175200017520000000000014516004476013453 5ustar00biocbuildbiocbuildEBSeq/data/GeneMat.rda0000644000175200017520000006424214516004476015473 0ustar00biocbuildbiocbuildeeu@LVxh)RYP/ii REM'ݙ8&Nwgwv^I \iהP)9ѶD=3wO#|W_*,$zDl%zr__b{d+rcsDo}$g_s}JD87io{2_Kg$ /{؞z~+у݉s N~q $:+/=I|{{s3ћWw<|@ ?h%zqM~l |CNhߏhW'zO r赓y~a}D% vDC:}u}A(W&ZeZz`-=/%|yg_}C/p?x%:5\m_,;O&D縗Os͉L'ډqVHw:#l2};DWD:{?&ڻc?C]QG(%&zmc|uy.'V.Ki7ƼN [J\O8Ƹ>ǘWYW#߯CJ>!lɺ8ig:c8?ı#Dgw9_ʋI7('v-psNto^Jy~9sгuYs5T`Wdx6P>e8øh7DNn%W>Ÿ|s=}\<=p;QѓP׋l?}s,z[ߏrIez(j$zxq(_`V8!/]d]'/p'2zZ<Kv7c{#ɝhOEac/w 9VUv%:{} ]ηopEt_!c}>EuD<~Vc|zOq?n7[̳fzz8y-0Jt}Wc/~}χzlG8tA&=y{ܟyz;I-~; Χ1Dd=(g#{ֻuw~.|k$Kk߄>}޿{r~Ƹԛ_/}@s~.s=DK?o~vZ_zDaU{K e^/sE?u1|zaz㼁N9w^AεU՟0{ZOG}T|{ρG#1I8 ,-%i?\Q?isKd#yӽWXcsqcܷyu~g$z Ϣtqg˼A?Knm}ĭ?דOd#x;W ;xxFC ܖOv}}c/m1E~0>F<>;nFc[OTǟ`u0׍ӉWjF^$*O3o~ډ/F; {}(oWS;Hw~UOz]P{ 3<|0 _`11I%:/a<_K=#{?mzBnؾ^:x&x.'׋Dwq} H{^r7g|".I9is~Oig}#~?7֒M7θF']|o,ot%ʼd[<~y{ <7$F[S\G}Dq}{ ~G寣; _'x%<|xwC|P֟5;0Wuo'rzt}z'8kj?W_#wy<9D^ozzSDDR_z>8ru}p^}kwJ;|m&-yD=xUNjOO|7Q__$.-+ϲ^K?d~90/h"gN%zy7ɼB#7v6gSNIO58}|3y_m?7.)U8h+.o?xjw?k|V|Uou~.N~?,~2q:/M9>ԃfwFڜp_u!NM>Jx79vy?1^:n@n$|avvu_@o9JW~rR{A>9[ϰux?%M"ݵMQO!?sK6ÝE.S7/K/ ʁeV9e5Pq9֡D_$gWu/|>1OLyx}#q2d&GOGZm[Gz58KwzSk\ydCU/ic罥"ljodQZ8< 9¸== _}<x$_G~묏;wB, n}OKT~3|"}(k㆐{- Xw/?LTW>]7/c^"2|5a:}یoswwzϭ4UXc)׻ Ofz»ZN5o}5yAM}CxwL}e$a)ṀS].2.ި>vsDwM9w}Ƕ~Qy̏2/$Jn-^?i> S~l?猳x+Gj|n8^ƵC'xշs Pϐ3u;~j,^}9yhASY_I+9Y"׮6+WuXկTo-߼)oU^<Ǚzp_L!}O=m}E1!Kп)ǝ,8 S}quE= 8_JT?uH}w\ў.`iGCU>1s?&qD.ͫ7Ϧy~ /\%D?ڼ%8ޣ]<ͼ2ujyg>q6oOf~c=#n_f{ڽc~"1G vik~GkeO;&j b;̳I,K~r <ҏf>~ ^1uRWlo3f>Q9s뽟- umN]lOZk1vP<v~;맾=q)݉Wq]^hv?oCC={1K^f}V?PU^O?Ro_߄_g3cuW:qu~}/|Gځ]s:T|s QMy)++Da[/!G ؗKE߯K=K/t558kq?Jl;pOzu~]$('P/;_O;O֐;D~M^Ypz}72>ݾJRqi3%+$rY+}sR{hh7rŇ܏ymct9丼ycO$=Gyܟ>mbQ\ڙM9xKo&[1ڛU< oWfOf5+Y=8(Q+h"bގq;JG54>_e~T:a޷yяxZmÜw,?:{uvZϬ>fc|3>zj摝~ns|\\~ &`ʝvϭ^z#?~w\v|=W iv u>Q?w/$X kZ_xq)]OSݯ}f 90Q3~oo*3별=g>EN4坃>wywP^kO >."]e>96~,:~&+.S/Rϸ}#svTw/>Ɠgw or7Q+w/jZ}5N>:|]oK,}uO$`~Oβ{:o&~+Sg=ռrǻ#Va/;ՏOg+'[Jt͸`3Sm'KD3;w0>Nc7<Ơ_wyP&##!.'4s;ѭD[ϒ~]q539Ǚ!܌8;̧~n@\sym+k~b33=ޓ#wsKCCA/0WǑt?ZmsD]_֭f>#PgDO$NY#_9ia~7|mDo\OrzύO֓o}~jƼ2٘OdEwCWab+Vw])GNk#wԟc^unMO'NfOh9cCi`_?Q<\%| ;:?ur?#2Su =~)m]sXߍ: ߛyƿg+{mGfqoN2D;`ݺq}MԼsI}g=8630-x磉h|f}%:[?u0C_ X]9֫n{c ͣfsú&_qlW[iŗYPuQڽ7M߉ZoUqu)>|OJf/3.5zʺ5TwZS zG?>z~\9{j~KRo0p'QE':\VK=Ͼpg/Oyjl?}6si_8q&?b^F9ۦ~qxU6_y4):8%u/DžϏs =غ\7Y<8 us]+s{̏>p\5n98c:?oU+xn7/߼[{k8W _J~'9zhq}ȏ3n~v4/' ׮3m܆xdng^zSܞ~ú9߼,f,s'y= 2iC}?Q7?G;8* =#73zӯh.~vֻkڻG!R,ټv/g>|JB 7e}t#Ì_O2cnqs+wWo`-}L iyֿ\߼6ںEgn;QΗI]>kGcr:OoU]ud汙".O;Sw2{v\a~o;j]O F2{KyXG8N4)MY"5[_X"ӞV?.t=X?Dg=i8k؇f`+Q'{e:_{x~I>qf]?^rQya>8nS?ۇg?^뾭 ~k&w hp\?y_Binȼ^y׺>hu*>b^GUX{?? K?߃tۻփqK?zu]WW[ƿ?W8?_AOs؟}\o?Gx$[Oڿ]y>riq~\??ozOj߾̸f{W&j<ĸ?~7O@;~fϱueO=$f|?2oeuƙ1 kgͰ61/Ҹ"|w㪎Ǿ4SOQ~7\=v|\_qAqQyf*rlR̻Tn|>l2Vqޚ;sm+G?^:[c֟Rw'QM]_ߍ17yR:/18o?:.0瑧՗/8zU?M"w]n+ЉN-gqcէr"W.!T.c@;'[1쇧{ꇊڑٰ:cqޘG)^AhG}jzuýo<+UXtո-{3]m__DVwOәD{gިb?KkϤ~ʍ\G|8NLZ>Ga^e߼+I;l"ުfySvkۼ |r};@ 8~e[g9N|Ƕy7s >{Oߵ^fv(ǹ.^ѷI)2zZp<:/ /u5V~]}+l+gc*f]8)@U_4 ߍek;%H|p }~_>8Yޒ`<箥#e{6L?/y1o~sD!.kye%9Vqj=ey懼}}7~żxqynJǫGbm+15;o߄Ǫ8x.>oe}>N~'zӕu}f6.3OKyJs_Cߕ~ָΧ8|-8~rnuu.=lO܇> S]lڼv}ώ|Ab~w&c3.>ћhoްqVg_\6)4t.8~Y7ǛhRKǯw|qi]+2y`?aS_>jwџuͷWǹrKк~>/m5~p]O]YƩJhv&_sm_<̿VtA Ϻ3ԛ/a)ㅎgyWd3|1u6͛ϞVϦfy?L_˾/룉~O2ζzz;I]c=z%Ӳ~&O9a~1G|~r'Qg߯tbyo6Ig}Q7w$˷Cc]q\)o2|Zh[<}C\ϧ!=Uփuk[W}m[ؼD]'a=q1~'\r.NycU(O웶 ɬO} =y5> ~`wT0ƇYEs^'MQ(99SO:8Yo]I1er]yc?ysܴ¸G)gŇDlh<_{\bݷ|~NS BqEk랃o$7ߍvq)ߵ⠧pXwd9Pw!z5~02gB9ͷ,9A?C6}xoL3ԛ>ˏ3\3L{iq>d}ocM~5?G|3{֟G߉:4w]Ao{Y߂DYk5/ij2>6n|i ueƉߧ~MpߧǸ~3Jﳐ~x(roi>u+7=_;uw˕c<|k]ؿߍgsH+| kG(ozuޫq^~GȾ,>Ggwv ?ե#!|0~ڵmsG]4r; qW>`#N<-{VҺ y-q]yO|9oNiܿs}d0NoDGY~~RϮ>~߃JD'no$GukhDꅶѿM6s՜wg1.Z@1o^S=5*sy{[a>"nesi_9hiϲh]Y{:6e~>@GSȏgxQKn:qmz+_!0nԈ+ˏަީ_9y9[`||Rr7o— KO}-z~So7x~GDu9sCY;#oϾD]`zn3>}86gd( /;N2r82wg9q͓7~wz]A_ߛ&( Np}~cZF:Ea!Wz{xʹwR]Gw |~-b:kuC SlDw~x,oeۼK &|Mr'k^xmx"zկ(?|׿w}}\weT擌<دk/Ǻ/>{vKT?yh7uCOmaݔgu|>EםE zvgVU[FTĉ;{8N=m繮܇z,[Ir8EMO3.u|q ;ɼY/Dx~OI}}!?Wڧ3aǙw T3Y~qz,.bٿ<;Y|+Q'þ?t;?WkY^\;5s4^ x_y0Uߟ?!'{8F=z{~~n>AoFŝ>ύ[_`vԙDK:\Gܞ002ְwe.!w%Z`[9Wy|.n@鼱 Zg'.7HܼG^${1Y9>{j\o9k 7fߩ3l??~'_r2X=egG+uy7BHo~WNYpj_7_=|u3(._``g]}j+wO=yi8>h>|[} z[\[\V>v~]y n>_Q/ߏY=r-pP9Z%?|C=f{멧By6&^?~;;]/#"VsMmϙ=V;ٵ۬'M G"Bk3>w]]O~'A{|$ sovNTwߵS>&q/v}/`͡\'~a}ާCeSv}i]43P}꯴vjv+ѽ\at~:5c7}C#k~uV}}_,q>:]"zzv~Zs+'6i^ןzrh;cixdz@vqƿg?w&YϳrS{>C{׭}2>t>Q?̟A KcG6/\{8vfGDE&U_5^sۻ/_ȼߧOP>O8+̯ 5ډa>y8?ȯY^_><+]ϪQ}x]oބ*UY9}oq*r6|U=;l~WkWβ8_T_[}&|pdKObm"A9]_>T)3.f~q!1ϳ|[~7m%s=y5,s =w~9/j~7xՕ#^~[}?b9L>7Nw({0@c*Th|Qsߥ.Hʏ}hXOsNu:i.d_q;Я桩vc_Xsj[ϕcR@?%m"-.S_e}ySqe? 5ǗЏ~1QG;O0e(_~G`\G"xq(//1n> IRXfu7I}E}u`_[zWak'<=0˼_g me+냱~o/"v;2ϵSd}yݭ_~#8zOk|oGK̻8^o~Iow(_طS;nlo^rOO'_ԟ>q3߮?x5BܤF?p:;|Rn^gEf)grgBs=lgcg lg3o~Vca~q=5ԕ > 껎S{( c%j=vs~iq۾~|9n?MWV? 8iu+}>wng~ow] p9;7~vP1Q/]Ǫ7^Wjڑ}y;NԸ}A=OU\7~ Վ9k xUrw1'qh3nֳs~KDeC~ƣuR{Zd[mq9:_aMm}av ߽A|OWQ}ߡ:;r~o"hvU3OM`ԛgq|yQd[l_/:OriԹ]w O@2ž,K3x'Q.hBz oo/_{D?о7m[OF DO*$q,Dy} Kڥw[Yþa__}qa ӯcvi[_+NT=/wC׍#~Yaq"5ƾVx~?d=LT;:"3QXpGGqi>zEoGd=\֐C <~0W=V׍qGujX=ꓵs_?;ߎf\Kgu0ޗߏ#uK<1F r$뷈~\y2ysșfyCɭD~\_@jwN8k5=1?{Jxu̯LN;_ PwZbIyy| {NOW!ֈ?[?uW/@?}ANes<9_7l߀_/=5nIsa_?☾_N֍7X>0^$^i76R{<)&TZ߾GInիճߖ/fՎC}|q5hו}Af>Wճ(}+?>3Y¸Q)'9?#? _ 6%_ȕ<7E~8_U+w>_yJ։xty<[M_6H?W߼xwG*.󝼟xuԧf%3Ǿ$Y|ww8?j}YX`ަWj_qԟlgwy,pgT}g_/.ozuKY8,_/tiߘosj;/s_jm; ӯB2DygEęh:Q֭KuGKMs]x㬧׮:9:|SY?wVw?W=UxSY])v311(ѳqWwfK2bM25+s,po% cG=q4y}hv~,+̗4ۿPݯ~|Dq\}}e~?2 ΤQ眸a_Z79}bnkSig.O=>/k֮:ʕy!s.F9<#;zm?wj.w1^vbPӏ&{'Qo]a瘟^}!-̿WKkh)G}ajj\}*W~W:M%`}A='^4_;Qd֟/?Jtyݮ>9쀬9{g\8u]$_zGN_{BkkMrѼ6' G~x >Uo헯?CUU޸]7ׯkE=2;C*6[z?^;@KOw+Q>x=iݿzн_J_<)wǽc9TnsqŸ~'u1|8{; yt'_Ey:~M{w}3E׉mwh~vmA9rT/A}X_5~5Ƀ=(DC?!M׮$Zz4o)7۷.響g(O//Yvgz>ׯ2~}yifv¼~2>ٜ?Nklg-r5]zpAXN̿]x'b^3~~m^G5(>ٟ_ߠL8w=\w| |0>|R@` ~)}zv}z\!/?מ+rasޚ48>*~\$Y?~ZRc?#TǠYn_yqo?y f}I-Ϡݤ_|"ړYoc lԟ;lPoOm%jyZSJcGIa8cm(Wy?%Gkm]~0o-|UW_5oK/2]1>RoW?#Yo?"NyR`{=y0g ~׏ո |'_#vWJٗ\=]{I_7g`] Eƃ}=e|?4z~\G?mjZ=N~bjba 8$+OWDǹqK-M>kwby'3lo٧4}gߕ:%'{O>1k=Mӧ]>!V˿T}ywjڗ5~:1;M{m^B1J>3֩lo^2_|`S6e){zYvY~nʗƃͿOz?_}CgYÙs7(~?H|Ij]GW=qwی[.`A^;_G9Ʊܝ~~󆍷}t0 (k*2},?a j}L[?W//;':߷x>~'ߣ<#j]}=>*$j=Pڤ~68}Y},CI?ίe;}<:jv? ߁!_ܗ~+o,~|.3ey"3e<۟:D?~n,Y>޳AE=`~]嗸c]}]zYـ_~qP+ʼn1s/{w7VmrG/G{gͿu}[gM1;yկǵ/_ec5{E3^q7Kf7"j\ּ?}h]̙D;í.D<K`gdR~|oo<3w|N!-N(t58xPs^ﮓ\]ok&WXЫ]]>qMq^s; V<,/yckо w]}xzϷr͗^%>f>z}35a/;o[iU~75^$<З5%n:[WG.Dӿd@lv߾Ǿ^er碝i>cʹif~Fo߻/hߝ7tLԸ}{O~\Rr,˼}|e3|suoW0s >W;3폳x/1߻u!y6D99{ dKw4{M0o{m|8]<7㬿 \]A6o's~g0#s7Qe}Ps>݃NO?;~|hVc{')YTWڙNȶz5}c ?if7QuRBܺO2/8WVo,vuqwӍu%rTo킪(/xfG|A֏h?(Q>W׎6qcyw35 S/i~G=/førz98ˬCbEډ~1|aWoߚ/a2a51//&n}gٟt̯>d~4?ټ߳˚'}+M|w~%J]_ױm\e\g{vSsoяwb>O_ 1_T\{w8eX&8:9~׷<$߃}ٮ"_ >jV 90絏_ĬNa3ӿ`KVWƘ Ϣ`yOYLIyi?˺/=8m!N#:?gsj߹ϒa\co'%_.PvnzT<}gsmGCOɼi {>~ _7 ˹~|3>\-CiLS7 |1x6wh9ǹ_.XJ*jkQcku*v%'>0}6h}~_gOτyߩ\?~П?i?<+p7`]O˿5#߸ܗ~q?ir}1/|:~ǯk_{n(/|: қ9g="Oe]h?Wy?ތeg槃[G(#~/g?ps9j<<~V}ܾѓyeڿùC zP~>U.})|[/#G ||,{B]o_=_NI;.~} ~ |0t['O=#'oHor'Co |!o߽h< #ݿ^>ܷ߭LO Ncre{c?v^쁺.>9t[wMW\W=o<;#~6Xڹ>vB?[Gp{%,쓁wJ?ӧ(wuSRG?v99_З>1m|lau^8[y|.?n3? ֡t(?'Vy\ğZú~&t5Lw$GBznz_~TΙU?:DG{'_ ?; ķ؝uxx\0]{~q_ǿ?z@OҋW'S R՗̃j}0R{vGziGŏ_l/!2f/vZp~K &N|`ڏ' d|ִz C;@X,*mf]M~c> [_.=^C{{~_7=ü9z?Tqw?;~G.ГEYNs=)vVg@vg?'ȯӼ#/Ÿ|V8/]+w휥gGxw?ܜN?~$)o~/tu8=Ri\_'[Pm{1m>i` }H.;ZO9ڡ{_"ȣg< n\;<oLq |t7uQ/WgΉ?,.<_=Suﺟ?[N(g99Rc?]/4OGm0G9=84 u9|~V+xh :_zʾZ\upY ~w\r?9?kDw KooQɴO><o^_{Օ;xX/G nWōw?oɿhBfo_o^ ɃxP8~osW_z6_R >Rhu+W }.w_=C=??g߿0G=\ɌLJBt{͵< Υ=㳚^/^1>=b->9R85+oƾ8Ep( =32' |%8~q8|-rWոH>S ?+i\'g;EOv/f>? y2.~)L\T_^tTϼKN{y|X^w8t H鋯]퇮SC_SJMd~_g?^OOu%^.=z<ϧ-y~,׏GΛ/:;~8k?b}&ɻyPBwo~lʷ'z[ |>B/.I3 ^8NY^@ފܼ1}o~%PO~$gO{~=Y_oUu=}z }=8~zz(~Xz3H<eZ|^2d{y/N} [b 䧠=k~0/gxQ/]~}X5BOoS3̺ pޛv;^J_^_y("uX/|/.z#{C'>I~\B_yOu]vٽY ?u?'S_>onf=}vE.M'>aĻey^~'ġ~^~OiE<\K<{WA|C<y!<бH_3NU>r4YOy|$6w}-5ϼ_{v#^K\?U#(+e ᷻N^cAJ5ğO勵ݹ~1u(xrXؽ.c|t^]}+;tx ?Эw~dο݌}/rv\$5Ab9q_ow>zxՏ\ě7׽^ȮG~3i< ~s.ߒwR<~\=N]bZ  _ I?1j\p}\;mR)𣄠Ww>xh(}yjϮH[yMۡ/3_z ByyO~1~oe}O>X~gc߂=`݋g},!}7}>kL] 8.[]}y9vs@i5~7?GAW; $u ?W s7;4x7O\yb{ڼuq=~kL[P^N䃿/8BPw? [5ߍ[</rWcyU:\oL9=h^_[W|>kϯ:/_x\;;3Y_u\o̯tjڷͣ xkCǟoJ[_y>O7ߓ~Z6_uH7 ^w2u\OtKj$ϺAob/VS ;Z|\'y β@S{[#~l~r\=~ovqG=u쯎vQI&¿H>Yip6)_˳H|v,k/Q+.N~gҞߝWş<3KþpeպE{i7i@<75/^!+:ߟZ;_Hny*?w@oy&O7Xr?z| _>=/cY?>|::]~-?I~̽iTpNΕeatJ?i<+~ZJ˓}t@{<r~>?R(ӎGnp<1OqF~z慜1ŏx(_3/y>pswϽs_N~tЫ~I;~/#Sο:ku圇~s+/>:mٴSKy|E~R> tT9m/%OzWb_\~%rh.=`gqzo72;gk YSK;g,WW=~Ȼ?G =.|/6~Ku!c >n>Wy=t~|~#?^7}ofy/yKz-XAȼ=T\EK8WPy*ӸZ /w GγUV8;vΛ'ϛ^ X({#qfuJ/}{6𣾘_ڡձg}SLٿ,F<汥='K{Ч+򌌿7B<\s?W`C㷥7]u@G7[1|_;k|OC8;*~OOgouF_<~__/:ȁ^|A#Y|~;:~1y~iy?v/~}?^?)U>+>x>_hyPYjѝi{lz'K;>UK)SOcWo >Y9_tߺ#^/иX-^(>yƍK_y5tB'|x5XJ;#7(~ ?=:WN/{Ÿցuw!vG;\KҎ}+GO#q,@|oɇ[b7姦_?SO /۹wj_ ~iȗOXc_yTX:?GoRs(8ZW'uQ-|?OߢOo% ?ڿN_Ae} g߭?|GCpHuƟ]~|g9߃[s+JnY>OҗIt@J{q)~C_b{_`y3cTcJ8 ?o_|ӿ;>92^qo }{W#=r:嗦W{(j MyZ ;P'\W].gW㢟|%J`ۻYo̟߰BWg7&U;@gKOW6~./jBZq@f5<3SoJq^̺!=xr(ix:#E<\!@-?yG|En??_}/gWYk9gͿZ'NyQ >S]~V9Whs g_>ΟL_qHAYտ<^u@뜞q7|gO{d|[VV&Wsy.H](œ<:kZÇ۟3r< 4?gt_? ̸;9j]i/PcWk|k-W;2}Nz-_Y}ޞ|8tOi]*1y8P~;}wzM'| Zf%P~9.ޕ1֓:|ҡ+_F"k^鷺<#/կv:ι/%~缒qo8IOI&B?NHş7BO'ϽIoUD0=]^CbO٧Cʿ/9OXʔ~/q¯OvRA?{H;_c% ]BEt@~a{6cO87OBeg/mI [_V ֛.7Tu$~#y9}8մh=c$/8gZ۱+_7_ {Q.MA>8oƎ4a}zf+Y<Ѽh~7 T9}3y֟ݕ.I:+װQy!wC^\+1>zzwoLR{88.~5Q߷o~uo5v[<ϯ(]KdG-zVs}%ߊ%o)p98zXa|L };sw}Qt_)n5kFzOk zڱΞߞbuwu}ze6_ צ{_ۜ|4x䅿omx!9]})Nݸ'3r~hS]7 ߓaO}>@o|CY~}=qZ8G\ccK tͼ_>$.ᜅ|gg}G?FŬg6nNؽjO׾nX<ܲ3q^{5sک~'tKG._uz9F#'g}^1ѫ_߹|;w'ZuP |SWF^7q6SW |.)A=M{zۺ;L|G_5m3uX޴8*zI>z%~˵k'nh^@ڔNq'ռC+o]/`1M۷_-[o2%~nz}.z]i<wݯ{SbG_KzpΥ\Z1b =_;'+EVlCqƑJoHx.sKiK;Szٹ?V{1!>'\Dy7lLq[O{|KKկO5^G.|!z6_\}#z\Gm_&_+'?%|ڼﲄ>=A_eSQU(_\h=P?=%=3z7EF ^f?%~=֕~SzzoEW|anHO@u<}X+/L/G??ɴǞ0GoLݫBj|ƾ/VSrU^J7@}'ۺouuo\x;?_+=,|9zr<ϟײN1k] q׾;+>f|_ _\u__+9J<|\:}-ݬGZ_o+7k|?WrGڟݽǤ~o{lJLf_w~|yp~c#'|^\m|:=@=߶WѴ}oQ_b={k' ZuvuφWt9z|rx|0T_J^H y^f ~n@~Ꮴo.:sOY/薇f=#Wm1$~kݷ?_ڷy!y26|d7ӏ/*=}:?V9J;6>t+b}@qKyqѮ_xTo?=IB/$@$su^\'?z_WG{Ub'9}iE/>? C uDRzǯ#K_~zUT/żk#»Ӯ:[SzynՉ!]ںz%Uzmq; }I;nOO.D:~oO gZ 9GQÿ$8=H!'C|5- GܛP\u7w󩗣w'MOںW )Q;WRLNpbwsև_}BGa?7e/&) ZWnȏf?zkGq_=|O7!Wz >| !=I/Ĵs+__SعwrΜ/S~Ƨ<_';")w9_U@y{Hȯھ/`S/r?==;q[7m{7.o/W}`}/=#c=;"<+xн*WCsU0\R/ʝUwn-ӏ[j{?a>̓h?qУuߍ/7sKϤ_n ^?g]yJp7},Z͟/ #l]kֳ*}{w7>,%oEn 4gWP^^y.;\y5w~\q37 Ϳvw(s9/ϾS_H;K>ol&q8y/O/d\:e=N~O]}݇ oN=3E/WY4s'};W°_y5H}GBK^|rK{g?\7 <1;87'?u+`w8 O+eԼVz1:l|:a؟yow%z^X szx28synK3NՍOUuO«YoϦH>w@q)~pz< V}K9[}0x+Jڗşxu*Ϟ|J\Îs~}r瓏f_*7PO~1zzV^ ~>>Zw't'$oHOR`ߴɺb _j͟ݝz_?צ^ys"/D+9Jzo/𵧦ϯ_zʋ{k;[dח7OfNrS]zy/%h>ܺSߊ:V;_u N?7>H,/^HO$?长X&'nꈼ?קe'#|b۷}ܫ;x:d Y/Dݹ_|=C?~"vJwm]3is|syAɝc'Grwn+?Y|^2ɩ7 Tv,r^:p>u`^ŃK)3?~%NFnToߣk {S dO YJfn3~V;~;oCҿR #r>[=_?`s^2v7 4o6®=|$۸T=W;?AKGi汭_hE?;]~{ |xևz桍_zzdJ;E?fow ~K_1~6?|sƗWRS7>gK7φ7/rMCVx]=|@O)=֡|<|y)!W;~Oܘ_=Op4t~1=v=uB? ==/U291Z׽| ϗ>ylG'ԝzOى +j;?L> Ou!{s?|n|CSo'z5=1Dݚb/a\g^cOg/ ]y>~(>,~T_'ߓǣsk>;R^U~0"/wXqJݒ߷\A?1>wY{yNk/k0>uAc|./ uij]qw6}R5~|??k_Mւ ɷxy^)'.cߗXo?| a7< Ad#G N۩[0uQ&GӾy_R< 皬ך'^e3.}Cf:|ǎ|9W1(_䩽S|7r_b =>|\1tOW˳7 *~b眣1w6'[F A<ćQw}+'8ܟa5oO>קӐ>տzCLj?=NocR#OzrysW79Qvs{q}9~vz!yPۣ^/u|-@Psїr+73o( U}*k\ۧ;>c?T?αh;E V3~=N`*P'@o?xl=ϧ}zq"#{/'׽w[ݢ\I>}W;=,@g/0%oծ?qUNnwL^Wٷ|gy"㭾L$Ͽ]EaW'W=ow w?~Eo|/(j}wu%wc^MrкvgǻBxd?]n%őyG^;e=ҋsQo8{z?6 7-gxߍi; ̑_j$پU'L})5Pƥy =D/~y=:zxB6"=Ϟ_CQm9MyXz׸iiwg_qjz3=޼W=|C'?2UsOnz?=@N97ԅe'^+|މ,e~)։q_ӟ{C'qpv'/7Ob֗Y-sѳsѫ]GkѓI{j0ʷŏU~d]OOU P㈟GNtWַ8}7Bw a''J>O }yn=/!J{aqZyz>j?>RzA89 ?2|׾4쵷C<`|N?W/[=yqh\+#δ}ޕozgr/7z0U/eܓg\ú3{`g!v8BͿ\}$- NǸo>WGSG Oݧ;~xV7εޝk3j3W iAe`;-~qU^{䧰{O)j;G\zgz?@nQi=w@r bO :؛٨'97^?|θzy$䯞ërf+_Ohky_17'wïL;|Q ~GV߮?yN?a'_u~A{>v/~???uaY:=Qً(#|'k\.W|_sGe}`Cx@;V5.;NT\cziG]Wsǫ @x)c|G׳WX׵p|22v?#v|?]Gŏ9Iu|O&΢nu\ȗ}{{䃺Ws~b:%u*6]WGJ{!|!fEu΄ydy}>y"g+^qy9lwI9gŏL">-31SPc人_ L/#L\->foNsLu';m\:G#?dϟ_8W 9}]'Wϓ`_xX/HN^z;)P\>|+X''b@?!(qg<_/|Q^98\CAs#Vޕ@u"7]~)s[-RzyԞe ϣBK$NOGw=U?՚kc3zyn3/{Al;` TW?Q͕_|s}6߉1_N{;/;7ޒ+~(|C/Wy]]i)s$o_#wև.1#T]'}).xڭ{uqZ\RŬvى<S:g|bԼ8W̟~|1h QCnE)!>\^Iwǟ)E?x={MMΡ{N_3*?y ]"j]@߹mrЧtO/k{|wJ>}u<궾>_Zz\K^S )~Nz߱;Z%ϭ>u@NxWp}‡O};ɏuv'xOڷ>s~>d~WEύ)=OW۝?FsLrìZn/Atqq|˹WC?m׉)}o9S Ovjx15/x'~qC's)~չ+ݿY `+{wNoէ>~/ď)/>fޮ[ =j-kn;O;qxοzNmyD"N#`\>Bo<^ agyUlu5?͹}mJv9Tvf}0_Ao;z5~pi=\/goKsć\_ t{v$.һI;߯N9/'֥+/vs$w*Oe_^rN[>{psuXOu]y^ޠ~;"_QV>y>_%wu?3|Aqzh}?_}/W 1/=tkοz]s~ޣ4}MmÈy}وg{kmyC_syl/AɫQziCC#Wìs7Z2>]iۼ|Z^qjwݝ/qM|~GyL=:m/0A~79t|ʝUg?8go ?89>~~yBwOw7Qy={L>ћL\ 4.z^V?sW'?{g ϸF~_?J/_}fݘz2Ps{f5NҟcÒuk@K!ԼNŎQK^qbyOǯοU_M#bz«j|y⬾ٽW.DaGwE~3~"(?{OuM|S[?z=^ly=#_+f'RGOى~=Y}}D\o}ruNp=Źz仑G.=Mvs?k@~-_O|r\ 8y7*P]98=;+@\DT}%(oG~o?_W}=q'v3žo\C)5fw0_k~ޭwsIn|': yOC'ڸ[W އ}o5zOWٴWG/~Fop%+w ]}w .}*5u+P{3_/QOF?7#ǝ_ٟ{K響G׃Sѫ zȯu}@~gaשωcq1~K~Ibor"Ww)n/޹{@s_-ڥ:;WO;D;N5Ng='u\!z!Ow󗓻/D[/_CS Afgu{^iw~.R]3Ϗe?˿j}l-.|P}/G-]?GW׍kqT֭mYO?+w1W`ף߳3c-P^.>Co8 #;_~goҷЧ6~u^//B媗H^4_ЏCN R ._n {=Yv~- _m>O_4V}r:{O\ξ}W^^}s_/Pߧ7ׇ\[z}\_OL<[&uCȵv[_.<Ըi{/g E/L^ };nX`|_Z7ЗTںT:|zt +Y\9y+!wc%s]8k9oeWW+οun}H_gx]|L+8: /nc =qspw<;S!K]t5~ }U~3s5]=r~#z8'GyoOޗs?t@\`7;kݢaS_Nl#3N] m]\:3?t:g#ctΤ~:?Kѓ 'PMR븥=_M_u~b>d׷C<7B:=?ćx)B.<=0P~f{o_gjM+oI?y>W@7:k@z0ys$.}OM53V/; ȯO_;V~>h7{}//9WO싃n:wߘ#NO\IM_(?sы/:EƁG:{ü|Osy}V{8ϫpF[n ->w;<0yuw<@ki?4yu?Ɵ\+o'xÙ[8WAqZƧ'yn_#ϭ+1y8v_u;}-_=s67q|_Խx/~uM^zw<͇wQBF"G"ќ7s.ozqy+K4~{S?җ>h\+,uI<"nCsǓ/oO Z/U`ů)OyW{ӑM9Wgob6u*ﰑs޹̇O}#0}!uZj}_˼_x=~9z.B<zX/f=.e>=z;bן“z#~e=~7~2v(~ȏ7 T_v*xN(zկ+h_~.y][[V u7$<@=4 ^Cϲ|_3kzѓ7Fz8<5?~VA:Hgcx08\GgSI7nuݯ55}]T x~q~9z"̷|%rV#xp|ZRZJn ʁ:O'>0~oO{n=v9G.H@k9~:nw(L}MceqyRSǭ|O^}xޕ~[^M|_RIs_%?WH?T>}V'd~OZASߵ~*nί& GLGg׸Y7@ut}:٫٧VpwRn znIcrnv>x|yuyx;zw5k>f +N^m6^Y #n3_oڳyjX]sޜ}S^i 6Ϝr?HWp+N:hcwwz98._^Įk/kw]윈?=yz9zK?P'oPpK¢Ɖ/O(4_~@/7_P7MEWq@sz*^· SGW灝"#z n~ulWʴ=_9U}՟sx2.u#zwK~_3?8&猣b{s'=֋svu՞d 3~|U.ſ+>+z_^=OA?~ON'b_>d!*ߧ'I87vCU~.y@݃SQ4zi<<7Ɲk1P빏\6rK֗VC;-\5v=/BLjOqe[goLkρyi{s,kοioOǪދ7-dz.ou[_X٣j%OA?QW3WyV}iݕoB(h[W7 y[~{s˷}OAܷ?G??1E):NO)5Edh57|o@CF{ah/Y{a^l/l  cKR:-cKR:-cKR:k)ZJg-YK鬥tR:k)[J-yK鼥tR:o)[J-----------[-[-[-[-[-[-[-[-[-[-----------ZJh)=Rz@K遖-ZJ4텍^ ¼^j/lZJ7ZJ7ZJ7ZJ7ZJ7ZJ7ZJ7ZJ7ZJ7ZJ7ZJ[52jheʨQC+VF Z52jheʨQC+VF Z52jheʨQC+VF Z52jheʨQC+VF Z52jheʨQC+VF Z52jheʨQC+VF Z52jheʨQC+VF Z52jheʨQC+VF Z52jheʨQC+VF Z52jheʨQC+VF zd054LMaj* SSiJTИJCc* 44ИJCc* 44ИJCc* M%xC74 }CC74 }CC76 }cC76 }cC76UʜW]uWݕVwer2hw4;yGy|@G:t4h>ҼҼҼҼҼҼҼҼҼҼѼѼѼѼѼѼѼѼѼѼYal6lsmM ?Z޾>E70E):)9ER5LT S)UÔaJ0jR5LTS)U㔪qJ8jR5NTS)U)U)U)U)U)U)U)U)U)U)U)U)U)U)U)U)U)U)U)U)US6TmNڜR9jsJ攪)US6TmMښR5jkJ֔)U[STmMښR=j{J)USTmOڞR=j{JՁ)UTRu`JՁ)UTRu`JՁ)U[zo4c| зззззззззз74 }CC74 }CC74 }cC76 }cC76 }cC7k5f }YC߬o7k5 }yC߼o7o7 } } } } } } } } } } }[ }[ }[ }[ }[ }[ }[ }[ }[ }[ } } } } } } } } } } }4h;w@C߁ }14chG q>[ oYo,- |{ގW77|\|koǫ}7|\|koǫ}7|\|koǫ}7|\|koǫ}7|\|koǫ}7|\|koǫ}7|\|koǫ}7|\|kok a>.g |s^ a>.g |s^ a>.g |s^ a>.g |s^ a>.g |s^ a>.g |s^ a>.g |s^ a>.g |s^ a>.g |s^ a>.g |s^5gKÒ$>[/o.o-o/oƒ$>.ϖKK[KK-l1$>,K%֒x; ~\o,KlI|$$$$oKÒ$>[/o.o-o/oƒ$>.ϖKK[KK-b|cI|XgK%%%%vb1$>,K%֒x; ƿX%ْ|I|sI|kI|{IxYo,KlI|$$$$7>oS%aI|\-ϗ7ķķ[7ƒ$>.ϖKK[KK-b|cI|XgK%%%%vj1$>,K%֒x; ?X%ْ|I|sI|kI|{IxZo,KlI|$$$$O-7ć%qI|$>_\Z^ooKÒ$>[/o.o-o/oS%aI|\-ϗ7ķķ[7ƒ$>.ϖKK[KKw㛍_||C|O}Vp.?tC&U?h?}`*gEBSeq/data/IsoMultiList.rda0000644000175200017520000001707314516004476016554 0ustar00biocbuildbiocbuildyUǧIh#ZDAFUUʛ}Ai_۴M$i,MƎ؉=}{}axi01í?5~p~<ϗ iYÍF~i¼lO{5{a30wôkɰx7 ϯ>RtC}Ni5ݝ3:gy{ᡔScQÆL5v՝mӃ3/cw ?ez9¸lk0lg^o#kP0²y%*?c~K;zO_[󆿀)819^_70\C;O0zZṓߧdqW6LxȒ//r9Т>ξ`0f k0~_P)> CieVoy-ׄ)L'eWhؖ52} 2kk0 y~z?rv_fP,i^ف*rô#=@{џUxl~>Pn So6릃8:h0oiu ŷ_^/;A~ğH5u'/>ϛ#Y/#^ECy߰u.x  7mI<v~7D; ?]+Ղx ag]1=<1`P=I?'(w0oޖ3\v`9B:}rWaȿQӻl(=?dhP~c'O~>sok5KeQ?X?ӳ<aaO.G J?4v{}zpJ\njS 7dgn+:fCz Nwsx >-T6wK,^>l_'6ў؊a7m{De(>1^<=:ۋ,Cqw;89뷍df ^SԔ3bݴ{sq~o@/z!o37e^8Z+íwم<~ =m!Êgits']~uΡei_s ]7sשsXpq~'Nugr?c#s?1K{ opN2Lʿh+uʯz7aga=>DSn2ze˿]4ơq=_=L]JS/K/_3y=G:Jon :<;G'r}vN|տ4|3Cu~=-;Ѯμ:eiOO糼%Z;W Gؿ̫PC@9~Wo(>ٝqG:0;AbbWodWPNJ쥿{ 籧/c-^jW<)P]w0OZjOcY'3.[ǐx gy_G$M{¯Ke?]5ү2rۊ:~P|x\qѼDgANʵYx kxn`WQܞrڥ;?t|e 4;t^MEn?ױg~?.}-< r?;}h\:N"c\y6 uu:O;'O1;⡇wūW( 82gkq 3;=0:?Ǩo'X >8h\}xv~;uz e/ȯFC;1IeOokoR|iC0T~+͸P޼1.Կvh#?4~F;:jK//y^ՁCf"^59N=:;_7'CW S^X~\~\@nPqR|z"?TvxWav9}BoO9]"ξ:#0O16Ӭ!?I'W$7*纇g)/{epu#.G3xЏE5V=֧}}_mCߟZOcwvFNQ<({d_A_ |ŎWh(.|TE~xhaاS56_3tecodZO#*WoU7Wzԧ88?j6~CGzYk}cGPvW3tPE)J<*W|+,pv3h({{Wscw᥏^ :vѾǘ7Nwq} Ӭv0,GGT\-¼+_IFܪpn/[2Jaո[} Qiv~N7 k,(zxqɃsӉ^U=:N7Am׏{y.?f?$z'q}~Pv`8P|Wwv/-^^kB^cz.ףs,e unu=O(G9.䃍1%;@ f{/A (|"nsWpsD9_^4K;r>QQJ?O_F3_yh9Pq+߇ ?S^iku,{qP;hxku:QJ JGsq>6Q4qێ %o7>~(CsrN\)C<\l~]_ +N83`u?sKcEWe=|qBK0z:^o݃uϱv֏t_z_0].Ws PNqF<ݓPNnٍrC!\|cymWpxy_})Pl?feZa8v'uz{g9och D!.5>EWggs)s+U>i~:ƼϓG|딧>9EosNKO)f3u=OOPzb^?bxu)Ã7q os+h(pYzJ ̃P=*3K@zNqVEK)?Zoٷ_fe/u/зlxrʓU< )ߺ/ֽĻ l.7\< ҋzOrdPn˯n^g)WN C̑#vt:9QSQ~W<,+!:W ޗh=R^[N K9A(X_}Vw}؟ ڝ+Ӛ#St3S=L>L~e#]7섿a'f9Pz͕~oő7)~h?R'u_t?zSN}9xΓ4<*OT+įH!>=Qa(?I~kGa e=t ~5N@> >j3++1FÓ?˸ ~uVRKʿ<ΣO⹾B=:o$QέU^ٗK㹑o).3w έʫ衟SyS9QZ{k|=ˆ8eI+HGkR.w*|T^S;j=+Ǒ ~6Grk:*U܃(;Et/-į(<>W<|]yڟ7үY_9Ydz3{ /aA^xJ89F<[ d&R>D~+O}?9E'xA@,!_7 YRߣ>񫓔wC[Ih^}U\UȿBg%6ߋw*_BO@qNSY 7~P<YZ{{\oF3[H<3N_ʿu{6f!}7l}Nɟߣu?-gx47ҋ:(o~ p?1"G*<'7[+F9khg`Ű7O}~&xü?KG~T>(iƙg}[ȯGi%3ǮtK^<"$0д<̮C};S̐G{^SƌgSX|p9Tikʺ})wSWyu/myq+WV~{^~XLb1b:b:kb6D)'W:9qrprUNvrk%_%_%_%_%_/8~ _p/8~i/vҎ_K;~i/U߭"Eo$I-x[$Hm"q"q"q"q"q"q"q"q"q"q"q"q"q"q"q"q"q"q"q"q"q"q"q"q"q"q"q"q"q"q"q"q"q"q"q"q"q"q"q"q"U9~U_WU9~U_WU;~Վ_WU;~Վ_WU;~Վ_W8~5_W8~5_W:~_W:~_W:~_W9~u_W9~u_W'~wI?Gv#v#v#v#v#v#v#v#v#v#8ng7ٍFpv#8ng7ٍFpv#8ng7ٍFpv#8ng7ٍFpv#8ng7ٍFpv#8ng7ٍFpv#8ng7ٍFpv#8ng7ٍFpv#8ng7ٍFpv#8ng7ٍFpv#8ng7ٍFpv#8?a7 *?A??L+=Jϴ3L+=Jϴ3L+=J4L4L4L4L4L4x3 iLg<4x3M{i4홦=ӴgLӞi3M{i)+$by5s5%y5˫X^ tj+W]?)W]N^ tj+W]Z t(oܺDRt$UERu$DRm$T,Vb!ӱXձXJbVI*Y%1$fĬUJbVI*ĬB*ĬB*ĬB*ĬB*ĬB*JǬ1t*JǬ1t*JǬbVUEŤbUQXST-*SEʢbRT EtQX]T)*늉5beQ1)*bXUT.*kuTQCQ1]T**VkEźbb]XYTL.*V5Eڢb-yKa+KP.Q*Q.Q)Q-QreDD9)Q%e?!'D9(KJKkJkKR%ʕ%Ir(QN(W(W(ה(ז({9*Q,QNJCrDDDDD{UJ_v~ަرyG*jGnM7|o%Z/*ԃEBSeq/data/MultiGeneMat.rda0000644000175200017520000002200514516004476016475 0ustar00biocbuildbiocbuilde uNJk+L[ )6hGom(8v2V˲4$EI)j8 of"FhnLn,A1q4(hh hJSw{>gZZZjyg?O}O>?hdOڎ7Ɔ-v~߮YnO~¡G‘Ý Ixξp{-[.|7B› E1lzߢovXMxԯ&O/%t6&| =WSko/%L{~1 _ 9 $|Wƒ\/!wp{~%; oR~Oi3 .w)w^Kxn4)H)s24C=_%\ Gt#aǹK\7x_'N}nolN8v)Ox |g}k'Մsz.<Ʉ_Mxus oKjԳq_I8J?D6W_J8~3wiV.NޟK8ѕ%UO~M"9m|p =շp=m%L9Zz%qܟW_r]w!wqصi~; ~5{hk}ΠG7P~Q~+oEV_CC_H0v 9'H(q}7\菗i .z-|/:SSzB}w&< 55苣 /m zE XoQn=a?3 >ȖB˺{)M~&5F\VK]O8&w9 O%пs[k- [N8巀c۾K \۔F.r*L0~yA2Ma7k*7blM8KƭL^B3v(9ؑ@W/1~ߢo"oE^%+Jye 'g]z `㱓(7:;@FeO~~ ӎӔ?|ko-sgj>ES圏=ԗC΄Ǒ:n񿰒p#冘GWs5I@s>A;ٞp}5O_{k\2 :?Ooi_k<>O >Hzüiɟí wSOp#a"Ol'Ծ9L?=L?>A[K[(_o9X~Ѯlf$ ȝH(?;W>uf5LߧޕC؁_ݗw3~EnnJ8_<+5o%ǢC})x>qО㧐Nx_/ @L߾w$|_~'wr}~ޮ%\I-氋Wj_HE|'G/f_f>%Ў=//O3:C=쥜c[i1[ȿ3Y~G?\7q==9g7A~K@=+/}܁ ~-ׄ xc%vŻ '4^2?֠}3 ,Wg_ߥkO ]GOf>jgj1Ӄ|;Ƶvy3݁<=^m\8mIۑ*Y-f~Ϲ~ 9l_9|>IF¥O%4{y}]0D~9{Q/m\;[k _ANQQjB/}l_?κ`U䏳޾ؠ_;Fm0q}~ABX\%q7^92Mp]'>l|c>VP9;Ƶ7U3}[ԇ$9㐣~?_C.vq!}#T'^C;"߷ v\S\oGv{?vFYՃ _N>q\\I[ai*ԓ[9Ww{q}-[Yx?zbaa?r׵%tFW\Ixy/(jM=+C΄sԧz{z59@{wQ4Zr/W+^K 8q~7jr 8iU_N]gg|RoycU}}|5a/O?üy>sіpCl>o] j`_^uu ;$==א8l{/.bgy9ybF<1y~lAg]ȖW_LQN/Oc|ud:z:pGC14.s{ 7;s(9ve7~O^7Kqx%q|2Nt2)r~ogF-n~??LiѷYh{7Ͽ>&$0w>yM?4)7̸\$rGLu,:~S9?זi'wy!7^ty,[à2v%+:+Of⃄넋ܟnp~KRn#?H>v]cuS~8 |}e\54>Ea~?xk&OV?nXmggޚ vm>aƶl~?P\1c|3?T-G~Q )^:]ΧMn{vhmoM|k=[Գzo/Wsw"~gAzq@3_">jwxCw;C-~(w4VθɋGuprBy>Pw{Msk!vM{{~vQ5q?+Tk}`ux{qzyɵ~~Z5ܖ]Sd9? nCׁ4E?!j:c#s~8c׸vqW|r;I~~Z/x{]=>"^D䚧zvC>n˷zvgDS{EPv&=ړN1OnpT7/|C5/@{L^{@x}FeA7f wqw_8:I;|^mp=͵ꏺ/e4fS)k_n_#ܗ?WWj[=>(5.A gcg}O[5%~?80SL3> u^w"ζe=:ƸZO߶5.?a^_'u5}g/?cQ2&seoGB%:ô=\OO% SN;Ƶzy;|IY,NSO\%}y=З?rj'Lv3?x3/9\KEB"VSc ϡu9~A?\1/3 9~OzR?8[ y7[4I?\g^1swxXw yu}5a?o oOMGw{Z;~]k蝑wM7R8^/d^5KSrYh,@?gu_r'|okBw/ Ӭƕ9 k?_NxyvvN0?7юsث?Xp3j݌j{;NwW>ǏX_\vN~7Rqz/ӮiO35'|/q/{J9nͷCZk|ݴW?E;u w8D~\9~C<%?K4asCL;u3oG*ǩo2?ryKyS=~v =Y.q`?<>C_o6 }ńǨW@ gs5/Y{sK괋ϼ3.3 g<32.^=N?Ҏڑڛmq sy}ȗOkwOo ?ך v }NKj+fЛuk ſq_uaoq W'1}m<39 /hguf;̺6v懟Iڭgyw^=N}a~P^LK譫%-Sϯwߧ飝}}.G5,?wq_5ĸ~ syyҗ]JE4| ([6g/s>}]_Z~x;S>~x:e{ܬģw&4^p~e+7?z~ {YW Փof,Qvw%\f\OO|:pO?~;擘v"~HlƹgǸ] >XbfJxїAo^z^z@cn£<_]$wGӌN띭 'o]w>WCFv"~熝O)9zn%zȫ'ynzfsÌ ׳f.߷y9¸]Uϡ浛쾉y%C~ _Ҿ<q gO ]~d-sWX/͛?P`ǸPna5q>[̃q;εٚ/QΞITOGs_NDc;r#ϳ#_N>/2ng =_l|ԃg}m[ynļi1╞f}|2?o =h !{fZj{:CFy_ԟ} sY_~W۹C/R1>+wji<ҵZyw^_5l?r ~8wm^ߌ_j7Oq<uo?GG|GsKooϧ>9\#v@5ϓw ClϛGf^{<?zot_cRO} syϟOhq];]1ωz@|&4<_2s+{3?c\W-`N~hrkYX5a3ߥ-)ܯ3Π]c-8s-hy8zLyxN`ӯ1/*+9SkWLO?ܞp~igMu|خ΄~@{Q|)`߇3}R-ڍ\WC;d{%l2zȼc؇]E,χx.{n ~y_k7gGz 1 ГWi_stU;NQ$:3޲}~gOVwym?GI#.izW%1m޹9;"g#_}«xQNkqyR1u 9b'oԋ?:Z> |'>zG EȖm(@S֏˦ /#~?|G>#~?|G>#~?|G>#~?|G>#~?|G>#~? BG!Q(~? BG!Q(~? BG!Q(~? BG!Q(~? BG!Q(~? BG!Q(~? bG1Q (~?bG1Q (~?bG1Q (~?bG1Q (~?bG1Q (~?bG1Q (~?bG1Q (~?JRG)Q (~?JRG)Q (~?JRG)Q (~?JRG)Q (~?JRG)Q (~?JRG)Q (~?ʁrG9Q(~?ʁrG9Q(~?ʁrG9Q(~?ʁrG9Q(~?ʁrG9Q(~?ʁrG9Q(~?*JG%Q ~T?*JG%Q ~T?*JG%Q ~T?*JG%Q ~T?*JG%Q ~T?*JG%Q ~T?*jG5Q ~T?jG5Q ~T?jG5Q ~T?jG5Q ~T?jG5Q ~T?jG5Q ~T?jGC~W}EBSeq/demo/0000755000175200017520000000000014516004476013466 5ustar00biocbuildbiocbuildEBSeq/demo/00Index0000644000175200017520000000001414516004476014613 0ustar00biocbuildbiocbuildEBSeq demo EBSeq/demo/EBSeq.R0000644000175200017520000001536414516004476014561 0ustar00biocbuildbiocbuildlibrary(EBSeq) # 3.1 data(GeneMat) str(GeneMat) Sizes=MedianNorm(GeneMat) EBOut=EBTest(Data=GeneMat, Conditions=as.factor(rep(c("C1","C2"),each=5)),sizeFactors=Sizes, maxround=5) DEOut=GetDEResults(EBOut) str(DEOut) #3.2 data(IsoList) str(IsoList) IsoMat=IsoList$IsoMat str(IsoMat) IsoNames=IsoList$IsoNames IsosGeneNames=IsoList$IsosGeneNames IsoSizes=MedianNorm(IsoMat) NgList=GetNg(IsoNames, IsosGeneNames) IsoNgTrun=NgList$IsoformNgTrun IsoNgTrun[c(1:3,201:203,601:603)] IsoEBOut=EBTest(Data=IsoMat, NgVector=IsoNgTrun, Conditions=as.factor(rep(c("C1","C2"),each=5)),sizeFactors=IsoSizes, maxround=5) IsoDE=GetDEResults(IsoEBOut) str(IsoDE) #3.3 data(MultiGeneMat) str(MultiGeneMat) Conditions=c("C1","C1","C2","C2","C3","C3") PosParti=GetPatterns(Conditions) PosParti Parti=PosParti[-3,] Parti MultiSize=MedianNorm(MultiGeneMat) MultiOut=EBMultiTest(MultiGeneMat,NgVector=NULL,Conditions=Conditions, AllParti=Parti, sizeFactors=MultiSize, maxround=5) MultiPP=GetMultiPP(MultiOut) names(MultiPP) MultiPP$PP[1:10,] MultiPP$MAP[1:10] MultiPP$Patterns #3.4 data(IsoMultiList) IsoMultiMat=IsoMultiList[[1]] IsoNames.Multi=IsoMultiList$IsoNames IsosGeneNames.Multi=IsoMultiList$IsosGeneNames IsoMultiSize=MedianNorm(IsoMultiMat) NgList.Multi=GetNg(IsoNames.Multi, IsosGeneNames.Multi) IsoNgTrun.Multi=NgList.Multi$IsoformNgTrun Conditions=c("C1","C1","C2","C2","C3","C3","C4","C4") PosParti.4Cond=GetPatterns(Conditions) PosParti.4Cond Parti.4Cond=PosParti.4Cond[c(1,2,3,8,15),] Parti.4Cond IsoMultiOut=EBMultiTest(IsoMultiMat,NgVector=IsoNgTrun.Multi,Conditions=Conditions, AllParti=Parti.4Cond, sizeFactors=IsoMultiSize, maxround=5) IsoMultiPP=GetMultiPP(IsoMultiOut) names(MultiPP) IsoMultiPP$PP[1:10,] IsoMultiPP$MAP[1:10] IsoMultiPP$Patterns #4.1 data(GeneMat) str(GeneMat) Sizes=MedianNorm(GeneMat) EBOut=EBTest(Data=GeneMat, Conditions=as.factor(rep(c("C1","C2"),each=5)),sizeFactors=Sizes, maxround=5) DEOut=GetDEResults(EBOut) EBOut$Alpha EBOut$Beta EBOut$P GeneFC=PostFC(EBOut) str(GeneFC) par(mfrow=c(2,2)) QQP(EBOut) par(mfrow=c(2,2)) DenNHist(EBOut) PlotPostVsRawFC(EBOut,GeneFC) #4.2 data(IsoList) str(IsoList) IsoMat=IsoList$IsoMat str(IsoMat) IsoNames=IsoList$IsoNames IsosGeneNames=IsoList$IsosGeneNames IsoSizes=MedianNorm(IsoMat) NgList=GetNg(IsoNames, IsosGeneNames) IsoNgTrun=NgList$IsoformNgTrun IsoNgTrun[c(1:3,201:203,601:603)] IsoEBOut=EBTest(Data=IsoMat, NgVector=IsoNgTrun, Conditions=as.factor(rep(c("C1","C2"),each=5)),sizeFactors=IsoSizes, maxround=5) IsoDE=GetDEResults(IsoEBOut) str(IsoDE) IsoEBOut$Alpha IsoEBOut$Beta IsoEBOut$P IsoFC=PostFC(IsoEBOut) str(IsoFC) PlotPostVsRawFC(IsoEBOut,IsoFC) par(mfrow=c(2,2)) PolyFitValue=vector("list",3) for(i in 1:3) PolyFitValue[[i]]=PolyFitPlot(IsoEBOut$C1Mean[[i]], IsoEBOut$C1EstVar[[i]],5) PolyAll=PolyFitPlot(unlist(IsoEBOut$C1Mean), unlist(IsoEBOut$C1EstVar),5) lines(log10(IsoEBOut$C1Mean[[1]][PolyFitValue[[1]]$sort]), PolyFitValue[[1]]$fit[PolyFitValue[[1]]$sort],col="yellow",lwd=2) lines(log10(IsoEBOut$C1Mean[[2]][PolyFitValue[[2]]$sort]), PolyFitValue[[2]]$fit[PolyFitValue[[2]]$sort],col="pink",lwd=2) lines(log10(IsoEBOut$C1Mean[[3]][PolyFitValue[[3]]$sort]), PolyFitValue[[3]]$fit[PolyFitValue[[3]]$sort],col="green",lwd=2) legend("topleft",c("All Isoforms","Ig = 1","Ig = 2","Ig = 3"), col=c("red","yellow","pink","green"),lty=1,lwd=3,box.lwd=2) par(mfrow=c(2,3)) QQP(IsoEBOut) par(mfrow=c(2,3)) DenNHist(IsoEBOut) #4.3 data(MultiGeneMat) str(MultiGeneMat) Conditions=c("C1","C1","C2","C2","C3","C3") PosParti=GetPatterns(Conditions) PosParti PlotPattern(PosParti) Parti=PosParti[-3,] Parti MultiSize=MedianNorm(MultiGeneMat) MultiOut=EBMultiTest(MultiGeneMat,NgVector=NULL,Conditions=Conditions, AllParti=Parti, sizeFactors=MultiSize, maxround=5) MultiPP=GetMultiPP(MultiOut) names(MultiPP) MultiPP$PP[1:10,] MultiPP$MAP[1:10] MultiPP$Patterns MultiFC=GetMultiFC(MultiOut) str(MultiFC) par(mfrow=c(2,2)) DenNHist(MultiOut) par(mfrow=c(2,2)) QQP(MultiOut) #4.4 data(IsoMultiList) IsoMultiMat=IsoMultiList[[1]] IsoNames.Multi=IsoMultiList$IsoNames IsosGeneNames.Multi=IsoMultiList$IsosGeneNames IsoMultiSize=MedianNorm(IsoMultiMat) NgList.Multi=GetNg(IsoNames.Multi, IsosGeneNames.Multi) IsoNgTrun.Multi=NgList.Multi$IsoformNgTrun Conditions=c("C1","C1","C2","C2","C3","C3","C4","C4") PosParti.4Cond=GetPatterns(Conditions) PosParti.4Cond PlotPattern(PosParti.4Cond) Parti.4Cond=PosParti.4Cond[c(1,2,3,8,15),] Parti.4Cond IsoMultiOut=EBMultiTest(IsoMultiMat,NgVector=IsoNgTrun.Multi,Conditions=Conditions, AllParti=Parti.4Cond, sizeFactors=IsoMultiSize, maxround=5) IsoMultiPP=GetMultiPP(IsoMultiOut) names(MultiPP) IsoMultiPP$PP[1:10,] IsoMultiPP$MAP[1:10] IsoMultiPP$Patterns IsoMultiFC=GetMultiFC(IsoMultiOut) str(IsoMultiFC) par(mfrow=c(3,4)) DenNHist(IsoMultiOut) par(mfrow=c(3,4)) QQP(IsoMultiOut) IsoMultiFC=GetMultiFC(IsoMultiOut) #4.5 data(GeneMat) GeneMat.norep=GeneMat[,c(1,6)] Sizes.norep=MedianNorm(GeneMat.norep) EBOut.norep=EBTest(Data=GeneMat.norep, Conditions=as.factor(rep(c("C1","C2"))),sizeFactors=Sizes.norep, maxround=5) DE.norep=GetDEResults(EBOut.norep) GeneFC.norep=PostFC(EBOut.norep) #4.6 data(IsoList) IsoMat=IsoList$IsoMat IsoNames=IsoList$IsoNames IsosGeneNames=IsoList$IsosGeneNames NgList=GetNg(IsoNames, IsosGeneNames) IsoNgTrun=NgList$IsoformNgTrun IsoMat.norep=IsoMat[,c(1,6)] IsoSizes.norep=MedianNorm(IsoMat.norep) IsoEBOut.norep=EBTest(Data=IsoMat.norep, NgVector=IsoNgTrun, Conditions=as.factor(c("C1","C2")),sizeFactors=IsoSizes.norep, maxround=5) IsoDE.norep=GetDEResults(IsoEBOut.norep) IsoFC.norep=PostFC(IsoEBOut.norep) #4.7 data(MultiGeneMat) MultiGeneMat.norep=MultiGeneMat[,c(1,3,5)] Conditions=c("C1","C2","C3") PosParti=GetPatterns(Conditions) Parti=PosParti[-3,] MultiSize.norep=MedianNorm(MultiGeneMat.norep) MultiOut.norep=EBMultiTest(MultiGeneMat.norep,NgVector=NULL,Conditions=Conditions, AllParti=Parti, sizeFactors=MultiSize.norep, maxround=5) MultiPP.norep=GetMultiPP(MultiOut.norep) MultiFC.norep=GetMultiFC(MultiOut.norep) #4.8 data(IsoMultiList) IsoMultiMat=IsoMultiList[[1]] IsoNames.Multi=IsoMultiList$IsoNames IsosGeneNames.Multi=IsoMultiList$IsosGeneNames IsoMultiMat.norep=IsoMultiMat[,c(1,3,5,7)] IsoMultiSize.norep=MedianNorm(IsoMultiMat.norep) NgList.Multi=GetNg(IsoNames.Multi, IsosGeneNames.Multi) IsoNgTrun.Multi=NgList.Multi$IsoformNgTrun Conditions=c("C1","C2","C3","C4") PosParti.4Cond=GetPatterns(Conditions) PosParti.4Cond Parti.4Cond=PosParti.4Cond[c(1,2,3,8,15),] Parti.4Cond IsoMultiOut.norep=EBMultiTest(IsoMultiMat.norep,NgVector=IsoNgTrun.Multi,Conditions=Conditions, AllParti=Parti.4Cond, sizeFactors=IsoMultiSize.norep, maxround=5) IsoMultiPP.norep=GetMultiPP(IsoMultiOut.norep) IsoMultiFC.norep=GetMultiFC(IsoMultiOut.norep) # EOF EBSeq/inst/0000755000175200017520000000000014516004476013517 5ustar00biocbuildbiocbuildEBSeq/inst/doc/0000755000175200017520000000000014516004476014264 5ustar00biocbuildbiocbuildEBSeq/inst/doc/EBSeq_Vignette.R0000644000175200017520000003627714516004476017232 0ustar00biocbuildbiocbuild### R code from vignette source 'EBSeq_Vignette.Rnw' ################################################### ### code chunk number 1: EBSeq_Vignette.Rnw:172-173 ################################################### library(EBSeq) ################################################### ### code chunk number 2: EBSeq_Vignette.Rnw:198-200 ################################################### data(GeneMat) str(GeneMat) ################################################### ### code chunk number 3: EBSeq_Vignette.Rnw:208-209 ################################################### Sizes=MedianNorm(GeneMat) ################################################### ### code chunk number 4: EBSeq_Vignette.Rnw:235-237 ################################################### EBOut=EBTest(Data=GeneMat, Conditions=as.factor(rep(c("C1","C2"),each=5)),sizeFactors=Sizes, maxround=5) ################################################### ### code chunk number 5: EBSeq_Vignette.Rnw:240-244 ################################################### EBDERes=GetDEResults(EBOut, FDR=0.05) str(EBDERes$DEfound) head(EBDERes$PPMat) str(EBDERes$Status) ################################################### ### code chunk number 6: EBSeq_Vignette.Rnw:289-295 ################################################### data(IsoList) str(IsoList) IsoMat=IsoList$IsoMat str(IsoMat) IsoNames=IsoList$IsoNames IsosGeneNames=IsoList$IsosGeneNames ################################################### ### code chunk number 7: EBSeq_Vignette.Rnw:302-303 ################################################### IsoSizes=MedianNorm(IsoMat) ################################################### ### code chunk number 8: EBSeq_Vignette.Rnw:324-327 ################################################### NgList=GetNg(IsoNames, IsosGeneNames) IsoNgTrun=NgList$IsoformNgTrun IsoNgTrun[c(1:3,201:203,601:603)] ################################################### ### code chunk number 9: EBSeq_Vignette.Rnw:339-345 ################################################### IsoEBOut=EBTest(Data=IsoMat, NgVector=IsoNgTrun, Conditions=as.factor(rep(c("C1","C2"),each=5)),sizeFactors=IsoSizes, maxround=5) IsoEBDERes=GetDEResults(IsoEBOut, FDR=0.05) str(IsoEBDERes$DEfound) head(IsoEBDERes$PPMat) str(IsoEBDERes$Status) ################################################### ### code chunk number 10: EBSeq_Vignette.Rnw:368-370 ################################################### data(MultiGeneMat) str(MultiGeneMat) ################################################### ### code chunk number 11: EBSeq_Vignette.Rnw:378-381 ################################################### Conditions=c("C1","C1","C2","C2","C3","C3") PosParti=GetPatterns(Conditions) PosParti ################################################### ### code chunk number 12: EBSeq_Vignette.Rnw:389-391 ################################################### Parti=PosParti[-3,] Parti ################################################### ### code chunk number 13: EBSeq_Vignette.Rnw:396-399 ################################################### MultiSize=MedianNorm(MultiGeneMat) MultiOut=EBMultiTest(MultiGeneMat,NgVector=NULL,Conditions=Conditions, AllParti=Parti, sizeFactors=MultiSize, maxround=5) ################################################### ### code chunk number 14: EBSeq_Vignette.Rnw:403-408 ################################################### MultiPP=GetMultiPP(MultiOut) names(MultiPP) MultiPP$PP[1:10,] MultiPP$MAP[1:10] MultiPP$Patterns ################################################### ### code chunk number 15: EBSeq_Vignette.Rnw:427-435 ################################################### data(IsoMultiList) IsoMultiMat=IsoMultiList[[1]] IsoNames.Multi=IsoMultiList$IsoNames IsosGeneNames.Multi=IsoMultiList$IsosGeneNames IsoMultiSize=MedianNorm(IsoMultiMat) NgList.Multi=GetNg(IsoNames.Multi, IsosGeneNames.Multi) IsoNgTrun.Multi=NgList.Multi$IsoformNgTrun Conditions=c("C1","C1","C2","C2","C3","C3","C4","C4") ################################################### ### code chunk number 16: EBSeq_Vignette.Rnw:441-443 ################################################### PosParti.4Cond=GetPatterns(Conditions) PosParti.4Cond ################################################### ### code chunk number 17: EBSeq_Vignette.Rnw:448-450 ################################################### Parti.4Cond=PosParti.4Cond[c(1,2,3,8,15),] Parti.4Cond ################################################### ### code chunk number 18: EBSeq_Vignette.Rnw:455-459 ################################################### IsoMultiOut=EBMultiTest(IsoMultiMat, NgVector=IsoNgTrun.Multi,Conditions=Conditions, AllParti=Parti.4Cond, sizeFactors=IsoMultiSize, maxround=5) ################################################### ### code chunk number 19: EBSeq_Vignette.Rnw:463-468 ################################################### IsoMultiPP=GetMultiPP(IsoMultiOut) names(MultiPP) IsoMultiPP$PP[1:10,] IsoMultiPP$MAP[1:10] IsoMultiPP$Patterns ################################################### ### code chunk number 20: EBSeq_Vignette.Rnw:485-490 (eval = FALSE) ################################################### ## data(GeneMat) ## Sizes=MedianNorm(GeneMat) ## EBOut=EBTest(Data=GeneMat, ## Conditions=as.factor(rep(c("C1","C2"),each=5)),sizeFactors=Sizes, maxround=5) ## EBDERes=GetDEResults(EBOut, FDR=0.05) ################################################### ### code chunk number 21: EBSeq_Vignette.Rnw:492-496 ################################################### EBDERes=GetDEResults(EBOut, FDR=0.05) str(EBDERes$DEfound) head(EBDERes$PPMat) str(EBDERes$Status) ################################################### ### code chunk number 22: EBSeq_Vignette.Rnw:506-509 ################################################### GeneFC=PostFC(EBOut) str(GeneFC) PlotPostVsRawFC(EBOut,GeneFC) ################################################### ### code chunk number 23: EBSeq_Vignette.Rnw:530-533 ################################################### EBOut$Alpha EBOut$Beta EBOut$P ################################################### ### code chunk number 24: EBSeq_Vignette.Rnw:552-554 ################################################### par(mfrow=c(1,2)) QQP(EBOut) ################################################### ### code chunk number 25: EBSeq_Vignette.Rnw:570-572 ################################################### par(mfrow=c(1,2)) DenNHist(EBOut) ################################################### ### code chunk number 26: EBSeq_Vignette.Rnw:593-598 (eval = FALSE) ################################################### ## data(IsoList) ## IsoMat=IsoList$IsoMat ## IsoNames=IsoList$IsoNames ## IsosGeneNames=IsoList$IsosGeneNames ## NgList=GetNg(IsoNames, IsosGeneNames, TrunThre=3) ################################################### ### code chunk number 27: EBSeq_Vignette.Rnw:600-603 ################################################### names(NgList) IsoNgTrun=NgList$IsoformNgTrun IsoNgTrun[c(1:3,201:203,601:603)] ################################################### ### code chunk number 28: EBSeq_Vignette.Rnw:634-635 (eval = FALSE) ################################################### ## IsoNgTrun = scan(file="output_name.ngvec", what=0, sep="\n") ################################################### ### code chunk number 29: EBSeq_Vignette.Rnw:648-652 (eval = FALSE) ################################################### ## IsoSizes=MedianNorm(IsoMat) ## IsoEBOut=EBTest(Data=IsoMat, NgVector=IsoNgTrun, ## Conditions=as.factor(rep(c("C1","C2"),each=5)),sizeFactors=IsoSizes, maxround=5) ## IsoEBDERes=GetDEResults(IsoEBOut, FDR=0.05) ################################################### ### code chunk number 30: EBSeq_Vignette.Rnw:654-655 ################################################### str(IsoEBDERes) ################################################### ### code chunk number 31: EBSeq_Vignette.Rnw:660-662 ################################################### IsoFC=PostFC(IsoEBOut) str(IsoFC) ################################################### ### code chunk number 32: EBSeq_Vignette.Rnw:673-676 ################################################### IsoEBOut$Alpha IsoEBOut$Beta IsoEBOut$P ################################################### ### code chunk number 33: EBSeq_Vignette.Rnw:695-700 ################################################### par(mfrow=c(2,2)) PolyFitValue=vector("list",3) for(i in 1:3) PolyFitValue[[i]]=PolyFitPlot(IsoEBOut$C1Mean[[i]], IsoEBOut$C1EstVar[[i]],5) ################################################### ### code chunk number 34: EBSeq_Vignette.Rnw:713-722 ################################################### PolyAll=PolyFitPlot(unlist(IsoEBOut$C1Mean), unlist(IsoEBOut$C1EstVar),5) lines(log10(IsoEBOut$C1Mean[[1]][PolyFitValue[[1]]$sort]), PolyFitValue[[1]]$fit[PolyFitValue[[1]]$sort],col="yellow",lwd=2) lines(log10(IsoEBOut$C1Mean[[2]][PolyFitValue[[2]]$sort]), PolyFitValue[[2]]$fit[PolyFitValue[[2]]$sort],col="pink",lwd=2) lines(log10(IsoEBOut$C1Mean[[3]][PolyFitValue[[3]]$sort]), PolyFitValue[[3]]$fit[PolyFitValue[[3]]$sort],col="green",lwd=2) legend("topleft",c("All Isoforms","Ng = 1","Ng = 2","Ng = 3"), col=c("red","yellow","pink","green"),lty=1,lwd=3,box.lwd=2) ################################################### ### code chunk number 35: EBSeq_Vignette.Rnw:735-737 ################################################### par(mfrow=c(2,3)) QQP(IsoEBOut) ################################################### ### code chunk number 36: EBSeq_Vignette.Rnw:749-751 ################################################### par(mfrow=c(2,3)) DenNHist(IsoEBOut) ################################################### ### code chunk number 37: EBSeq_Vignette.Rnw:768-772 ################################################### Conditions=c("C1","C1","C2","C2","C3","C3") PosParti=GetPatterns(Conditions) PosParti PlotPattern(PosParti) ################################################### ### code chunk number 38: EBSeq_Vignette.Rnw:779-781 ################################################### Parti=PosParti[-3,] Parti ################################################### ### code chunk number 39: EBSeq_Vignette.Rnw:787-793 (eval = FALSE) ################################################### ## data(MultiGeneMat) ## MultiSize=MedianNorm(MultiGeneMat) ## MultiOut=EBMultiTest(MultiGeneMat, ## NgVector=NULL,Conditions=Conditions, ## AllParti=Parti, sizeFactors=MultiSize, ## maxround=5) ################################################### ### code chunk number 40: EBSeq_Vignette.Rnw:797-802 ################################################### MultiPP=GetMultiPP(MultiOut) names(MultiPP) MultiPP$PP[1:10,] MultiPP$MAP[1:10] MultiPP$Patterns ################################################### ### code chunk number 41: EBSeq_Vignette.Rnw:809-811 ################################################### MultiFC=GetMultiFC(MultiOut) str(MultiFC) ################################################### ### code chunk number 42: EBSeq_Vignette.Rnw:820-822 ################################################### par(mfrow=c(2,2)) QQP(MultiOut) ################################################### ### code chunk number 43: EBSeq_Vignette.Rnw:830-832 ################################################### par(mfrow=c(2,2)) DenNHist(MultiOut) ################################################### ### code chunk number 44: EBSeq_Vignette.Rnw:847-850 ################################################### Conditions=c("C1","C1","C2","C2","C3","C3","C4","C4") PosParti.4Cond=GetPatterns(Conditions) PosParti.4Cond ################################################### ### code chunk number 45: EBSeq_Vignette.Rnw:855-858 ################################################### PlotPattern(PosParti.4Cond) Parti.4Cond=PosParti.4Cond[c(1,2,3,8,15),] Parti.4Cond ################################################### ### code chunk number 46: EBSeq_Vignette.Rnw:865-876 (eval = FALSE) ################################################### ## data(IsoMultiList) ## IsoMultiMat=IsoMultiList[[1]] ## IsoNames.Multi=IsoMultiList$IsoNames ## IsosGeneNames.Multi=IsoMultiList$IsosGeneNames ## IsoMultiSize=MedianNorm(IsoMultiMat) ## NgList.Multi=GetNg(IsoNames.Multi, IsosGeneNames.Multi) ## IsoNgTrun.Multi=NgList.Multi$IsoformNgTrun ## IsoMultiOut=EBMultiTest(IsoMultiMat,NgVector=IsoNgTrun.Multi,Conditions=Conditions, ## AllParti=Parti.4Cond, ## sizeFactors=IsoMultiSize, maxround=5) ## IsoMultiPP=GetMultiPP(IsoMultiOut) ################################################### ### code chunk number 47: EBSeq_Vignette.Rnw:878-883 ################################################### names(MultiPP) IsoMultiPP$PP[1:10,] IsoMultiPP$MAP[1:10] IsoMultiPP$Patterns IsoMultiFC=GetMultiFC(IsoMultiOut) ################################################### ### code chunk number 48: EBSeq_Vignette.Rnw:894-897 ################################################### par(mfrow=c(3,4)) QQP(IsoMultiOut) ################################################### ### code chunk number 49: EBSeq_Vignette.Rnw:907-909 ################################################### par(mfrow=c(3,4)) DenNHist(IsoMultiOut) ################################################### ### code chunk number 50: EBSeq_Vignette.Rnw:941-949 ################################################### data(GeneMat) GeneMat.norep=GeneMat[,c(1,6)] Sizes.norep=MedianNorm(GeneMat.norep) EBOut.norep=EBTest(Data=GeneMat.norep, Conditions=as.factor(rep(c("C1","C2"))), sizeFactors=Sizes.norep, maxround=5) EBDERes.norep=GetDEResults(EBOut.norep) GeneFC.norep=PostFC(EBOut.norep) ################################################### ### code chunk number 51: EBSeq_Vignette.Rnw:959-972 ################################################### data(IsoList) IsoMat=IsoList$IsoMat IsoNames=IsoList$IsoNames IsosGeneNames=IsoList$IsosGeneNames NgList=GetNg(IsoNames, IsosGeneNames) IsoNgTrun=NgList$IsoformNgTrun IsoMat.norep=IsoMat[,c(1,6)] IsoSizes.norep=MedianNorm(IsoMat.norep) IsoEBOut.norep=EBTest(Data=IsoMat.norep, NgVector=IsoNgTrun, Conditions=as.factor(c("C1","C2")), sizeFactors=IsoSizes.norep, maxround=5) IsoEBDERes.norep=GetDEResults(IsoEBOut.norep) IsoFC.norep=PostFC(IsoEBOut.norep) ################################################### ### code chunk number 52: EBSeq_Vignette.Rnw:981-993 ################################################### data(MultiGeneMat) MultiGeneMat.norep=MultiGeneMat[,c(1,3,5)] Conditions=c("C1","C2","C3") PosParti=GetPatterns(Conditions) Parti=PosParti[-3,] MultiSize.norep=MedianNorm(MultiGeneMat.norep) MultiOut.norep=EBMultiTest(MultiGeneMat.norep, NgVector=NULL,Conditions=Conditions, AllParti=Parti, sizeFactors=MultiSize.norep, maxround=5) MultiPP.norep=GetMultiPP(MultiOut.norep) MultiFC.norep=GetMultiFC(MultiOut.norep) ################################################### ### code chunk number 53: EBSeq_Vignette.Rnw:1005-1024 ################################################### data(IsoMultiList) IsoMultiMat=IsoMultiList[[1]] IsoNames.Multi=IsoMultiList$IsoNames IsosGeneNames.Multi=IsoMultiList$IsosGeneNames IsoMultiMat.norep=IsoMultiMat[,c(1,3,5,7)] IsoMultiSize.norep=MedianNorm(IsoMultiMat.norep) NgList.Multi=GetNg(IsoNames.Multi, IsosGeneNames.Multi) IsoNgTrun.Multi=NgList.Multi$IsoformNgTrun Conditions=c("C1","C2","C3","C4") PosParti.4Cond=GetPatterns(Conditions) PosParti.4Cond Parti.4Cond=PosParti.4Cond[c(1,2,3,8,15),] Parti.4Cond IsoMultiOut.norep=EBMultiTest(IsoMultiMat.norep, NgVector=IsoNgTrun.Multi,Conditions=Conditions, AllParti=Parti.4Cond, sizeFactors=IsoMultiSize.norep, maxround=5) IsoMultiPP.norep=GetMultiPP(IsoMultiOut.norep) IsoMultiFC.norep=GetMultiFC(IsoMultiOut.norep) EBSeq/inst/doc/EBSeq_Vignette.Rnw0000644000175200017520000013161214516004476017564 0ustar00biocbuildbiocbuild%\VignetteIndexEntry{EBSeq Vignette} \documentclass{article} \usepackage{fullpage} \usepackage{graphicx, graphics, epsfig,setspace,amsmath, amsthm} \usepackage{hyperref} \usepackage{natbib} %\usepackage{listings} \usepackage{moreverb} \begin{document} \title{EBSeq: An R package for differential expression analysis using RNA-seq data} \author{Ning Leng, John Dawson, and Christina Kendziorski} \maketitle \tableofcontents \setcounter{tocdepth}{2} \section{Introduction} EBSeq may be used to identify differentially expressed (DE) genes and isoforms in an RNA-Seq experiment. As detailed in Leng {\it et al.}, 2013 \cite{Leng13}, EBSeq is an empirical Bayesian approach that models a number of features observed in RNA-seq data. Importantly, for isoform level inference, EBSeq directly accommodates isoform expression estimation uncertainty by modeling the differential variability observed in distinct groups of isoforms. Consider Figure 1, where we have plotted variance against mean for all isoforms using RNA-Seq expression data from Leng {\it et al.}, 2013 \cite{Leng13}. Also shown is the fit within three sub-groups of isoforms defined by the number of constituent isoforms of the parent gene. An isoform of gene $g$ is assigned to the $I_g=k$ group, where $k=1,2,3$, if the total number of isoforms from gene $g$ is $k$ (the $I_g=3$ group contains all isoforms from genes having 3 or more isoforms). As shown in Figure 1, there is decreased variability in the $I_g=1$ group, but increased variability in the others, due to the relative increase in uncertainty inherent in estimating isoform expression when multiple isoforms of a given gene are present. If this structure is not accommodated, there is reduced power for identifying isoforms in the $I_g=1$ group (since the true variances in that group are lower, on average, than that derived from the full collection of isoforms) as well as increased false discoveries in the $I_g=2$ and $I_g=3$ groups (since the true variances are higher, on average, than those derived from the full collection). EBSeq directly models differential variability as a function of $I_g$ providing a powerful approach for isoform level inference. As shown in Leng {\it et al.}, 2013 \cite{Leng13}, the model is also useful for identifying DE genes. We will briefly detail the model in Section \ref{sec:model} and then describe the flow of analysis in Section \ref{sec:quickstart} for both isoform and gene-level inference. \begin{figure}[t] \centering \includegraphics[width=0.6\textwidth]{PlotExample.png} \label{fig:GouldNg} \caption{Empirical variance vs. mean for each isoform profiled in the ESCs vs iPSCs experiment detailed in the Case Study section of Leng {\it et al.}, 2013 \cite{Leng13}. A spline fit to all isoforms is shown in red with splines fit within the $I_g=1$, $I_g=2$, and $I_g=3$ isoform groups shown in yellow, pink, and green, respectively.} \end{figure} \section{Citing this software} \label{sec:cite} Please cite the following article when reporting results from the software. \noindent Leng, N., J.A. Dawson, J.A. Thomson, V. Ruotti, A.I. Rissman, B.M.G. Smits, J.D. Haag, M.N. Gould, R.M. Stewart, and C. Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments, {\it Bioinformatics}, 2013. \section{The Model} \label{sec:model} \subsection{Two conditions} \label{sec:twocondmodel} We let $X_{g_i}^{C1} = X_{g_i,1} ,X_{g_i,2}, ...,X_{g_i,S_1}$ denote data from condition 1 and $ X_{g_i}^{C2} = X_{g_i,(S_1+1)},X_{g_i,(S_1+2)},...,X_{g_i,S}$ data from condition 2. We assume that counts within condition $C$ are distributed as Negative Binomial: $X_{g_i,s}^C|r_{g_i,s}, q_{g_i}^C \sim NB(r_{g_i,s}, q_{g_i}^C)$ where \begin{equation} P(X_{g_i,s}|r_{g_i,s},q_{g_i}^C) = {X_{g_i,s}+r_{g_i,s}-1\choose X_{g_i,s}}(1-q_{g_i}^C)^{X_{g_i,s}}(q_{g_i}^C)^{r_{g_i,s}}\label{eq:01} \end{equation} \noindent and $\mu_{g_i,s}^C=r_{g_i,s} (1-q_{g_i}^C)/q_{g_i}^C$; $(\sigma_{g_i,s}^C)^2=r_{g_i,s} (1-q_{g_i}^C)/(q_{g_i}^C)^2.$ \medskip We assume a prior distribution on $q_{g_i}^C$: $q_{g_i}^C|\alpha, \beta^{I_g} \sim Beta(\alpha, \beta^{I_g})$. The hyperparameter $\alpha$ is shared by all the isoforms and $\beta^{I_g}$ is $I_g$ specific (note this is an index, not a power). We further assume that $r_{g_i,s}=r_{g_i,0} l_s$, where $r_{g_i,0}$ is an isoform specific parameter common across conditions and $r_{g_i,s}$ depends on it through the sample-specific normalization factor $l_s$. Of interest in this two group comparison is distinguishing between two cases, or what we will refer to subsequently as two patterns of expression, namely equivalent expression (EE) and differential expression (DE): \begin{center} $H_0$ (EE) : $q_{g_i}^{C1}=q_{g_i}^{C2}$ vs $H_1$ (DE) : $q_{g_i}^{C1} \neq q_{g_i}^{C2}$. \end{center} Under the null hypothesis (EE), the data $X_{g_i}^{C1,C2} = X_{g_i}^{C1}, X_{g_i}^{C2}$ arises from the prior predictive distribution $f_0^{I_g}(X_{g_i}^{C1,C2})$: %\tiny \begin{equation} f_0^{I_g}(X_{g_i}^{C1,C2})=\Bigg[\prod_{s=1}^S {X_{g_i,s}+r_{g_i,s}-1\choose X_{g_i,s}}\Bigg] \frac{Beta(\alpha+\sum_{s=1}^S r_{g_i,s}, \beta^{I_g}+\sum_{s=1}^SX_{g_i,s} )}{Beta(\alpha, \beta^{I_g})}\label{eq:05} \end{equation} %\normalsize Alternatively (in a DE scenario), $X_{g_i}^{C1,C2}$ follows the prior predictive distribution $f_1^{I_g}(X_{g_i}^{C1,C2})$: \begin{equation} f_1^{I_g}(X_{g_i}^{C1,C2})=f_0^{I_g}(X_{g_i}^{C1})f_0^{I_g}(X_{g_i}^{C2}) \label{eq:06} \end{equation} Let the latent variable $Z_{g_i}$ be defined so that $Z_{g_i} = 1$ indicates that isoform $g_i$ is DE and $Z_{g_i} = 0$ indicates isoform $g_i$ is EE, and $Z_{g_i} \sim Bernoulli(p)$. Then, the marginal distribution of $X_{g_i}^{C1,C2}$ and $Z_{g_i}$ is: \begin{equation} (1-p)f_0^{I_g}(X_{g_i}^{C1,C2}) + pf_1^{I_g}(X_{g_i}^{C1,C2})\label{eq:07} \end{equation} \noindent The posterior probability of being DE at isoform $g_i$ is obtained by Bayes' rule: \begin{equation} \frac{pf_1^{I_g}(X_{g_i}^{C1,C2})}{(1-p)f_0^{I_g}(X_{g_i}^{C1,C2}) + pf_1^{I_g}(X_{g_i}^{C1,C2})}\label{eq:08} \end{equation} %\newpage \subsection{More than two conditions} \label{sec:multicondmodel} EBSeq naturally accommodates multiple condition comparisons. For example, in a study with 3 conditions, there are K=5 possible expression patterns (P1,...,P5), or ways in which latent levels of expression may vary across conditions: \begin{align} \textrm {P1:}& \hspace{0.05in} q_{g_i}^{C1} = q_{g_i}^{C2}=q_{g_i}^{C3} \nonumber \\ \textrm {P2:}& \hspace{0.05in} q_{g_i}^{C1} = q_{g_i}^{C2} \neq q_{g_i}^{C3} \nonumber \\ \textrm {P3:}& \hspace{0.05in} q_{g_i}^{C1} = q_{g_i}^{C3} \neq q_{g_i}^{C2} \nonumber \\ \textrm {P4:}& \hspace{0.05in} q_{g_i}^{C1} \neq q_{g_i}^{C2} = q_{g_i}^{C3} \nonumber \\ \textrm {P5:}& \hspace{0.05in} q_{g_i}^{C1} \neq q_{g_i}^{C2} \neq q_{g_i}^{C3} \textrm{ and } q_{g_i}^{C1} \neq q_{g_i}^{C3} \nonumber \end{align} \noindent The prior predictive distributions for these are given, respectively, by: \begin{align} g_1^{I_g}(X_{g_i}^{C1,C2,C3}) &= f_0^{I_g}(X_{g_i}^{C1,C2,C3}) \nonumber \\ g_2^{I_g}(X_{g_i}^{C1,C2,C3}) &= f_0^{I_g}(X_{g_i}^{C1,C2})f_0^{I_g}(X_{g_i}^{C3}) \nonumber \\ g_3^{I_g}(X_{g_i}^{C1,C2,C3}) &= f_0^{I_g}(X_{g_i}^{C1,C3})f_0^{I_g}(X_{g_i}^{C2}) \nonumber \\ g_4^{I_g}(X_{g_i}^{C1,C2,C3}) &= f_0^{I_g}(X_{g_i}^{C1})f_0^{I_g}(X_{g_i}^{C2,C3}) \nonumber \\ g_5^{I_g}(X_{g_i}^{C1,C2,C3}) &= f_0^{I_g}(X_{g_i}^{C1})f_0^{I_g}(X_{g_i}^{C2})f_0^{I_g}(X_{g_i}^{C3}) \nonumber \end{align} \noindent where $f_0^{I_g}$ is the same as in equation \ref{eq:05}. Then the marginal distribution in equation \ref{eq:07} becomes: \begin{equation} \sum_{k=1}^5 p_k g_k^{I_g}(X_{g_i}^{C1,C2,C3}) \label{eq:11} \end{equation} \noindent where $\sum_{k=1}^5 p_k = 1$. Thus, the posterior probability of isoform $g_i$ coming from pattern $K$ is readily obtained by: \begin{equation} \frac{p_K g_K^{I_g}(X_{g_i}^{C1,C2,C3})}{\sum_{k=1}^5 p_k g_k^{I_g}(X_{g_i}^{C1,C2,C3})} \label{eq:12} \end{equation} \subsection{Getting a false discovery rate (FDR) controlled list of genes or isoforms} \label{sec:fdrlist} To obtain a list of DE genes with false discovery rate (FDR) controlled at $\alpha$ in an experiment comparing two biological conditions, the genes with posterior probability of being DE (PPDE) greater than 1 - $\alpha$ should be used. For example, the genes with PPDE>=0.95 make up the list of DE genes with target FDR controlled at 5\%. With more than two biological conditions, there are multiple DE patterns (see Section \ref{sec:multicondmodel}). To obtain a list of genes in a specific DE pattern with target FDR $\alpha$, a user should take the genes with posterior probability of being in that pattern greater than 1 - $\alpha$. Isoform-based lists are obtained in the same way. \newpage \section{Quick Start} \label{sec:quickstart} Before analysis can proceed, the EBSeq package must be loaded into the working space: <<>>= library(EBSeq) @ \subsection{Gene level DE analysis (two conditions)} \label{sec:startgenede} \subsubsection{Required input} \label{sec:startgenedeinput} \begin{flushleft} {\bf Data}: The object \verb+Data+ should be a $G-by-S$ matrix containing the expression values for each gene and each sample, where $G$ is the number of genes and $S$ is the number of samples. These values should exhibit raw counts, without normalization across samples. Counts of this nature may be obtained from RSEM \cite{Li11b}, Cufflinks \cite{Trapnell12}, or a similar approach. \vspace{5 mm} {\bf Conditions}: The object \verb+Conditions+ should be a Factor vector of length $S$ that indicates to which condition each sample belongs. For example, if there are two conditions and three samples in each, $S=6$ and \verb+Conditions+ may be given by \verb+as.factor(c("C1","C1","C1","C2","C2","C2"))+ \end{flushleft} \noindent The object \verb+GeneMat+ is a simulated data matrix containing 1,000 rows of genes and 10 columns of samples. The genes are named \verb+Gene_1, Gene_2 ...+ <<>>= data(GeneMat) str(GeneMat) @ \subsubsection{Library size factor} \label{sec:startgenedesize} As detailed in Section \ref{sec:model}, EBSeq requires the library size factor $l_s$ for each sample $s$. Here, $l_s$ may be obtained via the function \verb+MedianNorm+, which reproduces the median normalization approach in DESeq \citep{Anders10}. <<>>= Sizes=MedianNorm(GeneMat) @ \noindent If quantile normalization is preferred, $l_s$ may be obtained via the function \verb+QuantileNorm+. (e.g. \verb+QuantileNorm(GeneMat,.75)+ for Upper-Quantile Normalization in \cite{Bullard10}) \subsubsection{Running EBSeq on gene expression estimates} \label{sec:startgenederun} The function \verb+EBTest+ is used to detect DE genes. For gene-level data, we don't need to specify the parameter \verb+NgVector+ since there are no differences in $I_g$ structure among the different genes. Here, we simulated the first five samples to be in condition 1 and the other five in condition 2, so define: \verb+Conditions=as.factor(rep(c("C1","C2"),each=5))+ \noindent \verb+sizeFactors+ is used to define the library size factor of each sample. It could be obtained by summing up the total number of reads within each sample, Median Normalization \citep{Anders10}, scaling normalization \citep{Robinson10}, Upper-Quantile Normalization \cite{Bullard10}, or some other such approach. These in hand, we run the EM algorithm, setting the number of iterations to five via \verb+maxround=5+ for demonstration purposes. However, we note that in practice, additional iterations are usually required. Convergence should always be checked (see Section \ref{sec:detailedgenedeconverge} for details). Please note this may take several minutes: <<>>= EBOut=EBTest(Data=GeneMat, Conditions=as.factor(rep(c("C1","C2"),each=5)),sizeFactors=Sizes, maxround=5) @ \noindent The list of DE genes and the posterior probabilities of being DE are obtained as follows <<>>= EBDERes=GetDEResults(EBOut, FDR=0.05) str(EBDERes$DEfound) head(EBDERes$PPMat) str(EBDERes$Status) @ \noindent \verb+EBDERes$DEfound+ is a list of genes identified with 5\% FDR. EBSeq found 95 genes. The matrix \verb+EBDERes$PPMat+ contains two columns \verb+PPEE+ and \verb+PPDE+, corresponding to the posterior probabilities of being EE or DE for each gene. \verb+EBDERes$Status+ contains each gene's status called by EBSeq. \noindent Note the \verb+GetDEResults()+ was incorporated in EBSeq since version 1.7.1. By using the default settings, the number of genes identified in any given analysis may differ slightly from the previous version. The updated algorithm is more robust to outliers and transcripts with low variance. To obtain results that are comparable to results from earlier versions of EBSeq ($\le$ 1.7.0), a user may set \verb+Method="classic"+ in \verb+GetDEResults()+ function, or use the \verb+GetPPMat()+ function. \subsection{Isoform level DE analysis (two conditions)} \label{sec:startisode} \subsubsection{Required inputs} \label{sec:startisodeinput} \begin{flushleft} {\bf Data}: The object \verb+Data+ should be a $I-by-S$ matrix containing the expression values for each isoform and each sample, where $I$ is the number of isoforms and $S$ is the number of sample. As in the gene-level analysis, these values should exhibit raw data, without normalization across samples. \vspace{5 mm} {\bf Conditions}: The object \verb+Conditions+ should be a vector with length $S$ to indicate the condition of each sample. \vspace{5 mm} {\bf IsoformNames}: The object \verb+IsoformNames+ should be a vector with length $I$ to indicate the isoform names. \vspace{5 mm} {\bf IsosGeneNames}: The object \verb+IsosGeneNames+ should be a vector with length $I$ to indicate the gene name of each isoform. (in the same order as \verb+IsoformNames+.) \end{flushleft} \noindent \verb+IsoList+ contains 1,200 simulated isoforms. In which \verb+IsoList$IsoMat+ is a data matrix containing 1,200 rows of isoforms and 10 columns of samples; \verb+IsoList$IsoNames+ contains the isoform names; \verb+IsoList$IsosGeneNames+ contains the names of the genes the isoforms belong to. <<>>= data(IsoList) str(IsoList) IsoMat=IsoList$IsoMat str(IsoMat) IsoNames=IsoList$IsoNames IsosGeneNames=IsoList$IsosGeneNames @ \subsubsection{Library size factor} \label{sec:startisodesize} Similar to the gene-level analysis presented above, we may obtain the isoform-level library size factors via \verb+MedianNorm+: <<>>= IsoSizes=MedianNorm(IsoMat) @ \subsubsection{The $I_g$ vector} \label{sec:startisodeNg} While working on isoform level data, EBSeq fits different prior parameters for different uncertainty groups (defined as $I_g$ groups). The default setting to define the uncertainty groups consists of using the number of isoforms the host gene contains ($N_g$) for each isoform. The default settings will provide three uncertainty groups: $I_g=1$ group: Isoforms with $N_g=1$; $I_g=2$ group: Isoforms with $N_g=2$; $I_g=3$ group: Isoforms with $N_g \geq 3$. The $N_g$ and $I_g$ group assignment can be obtained using the function \verb+GetNg+. The required inputs of \verb+GetNg+ are the isoform names (\verb+IsoformNames+) and their corresponding gene names (\verb+IsosGeneNames+). <<>>= NgList=GetNg(IsoNames, IsosGeneNames) IsoNgTrun=NgList$IsoformNgTrun IsoNgTrun[c(1:3,201:203,601:603)] @ More details could be found in Section \ref{sec:detailedisode}. \subsubsection{Running EBSeq on isoform expression estimates} \label{sec:startisoderun} The \verb+EBTest+ function is also used to run EBSeq for two condition comparisons on isoform-level data. Below we use 5 iterations to demonstrate. However, as in the gene level analysis, we advise that additional iterations will likely be required in practice (see Section \ref{sec:detailedisodeconverge} for details). <<>>= IsoEBOut=EBTest(Data=IsoMat, NgVector=IsoNgTrun, Conditions=as.factor(rep(c("C1","C2"),each=5)),sizeFactors=IsoSizes, maxround=5) IsoEBDERes=GetDEResults(IsoEBOut, FDR=0.05) str(IsoEBDERes$DEfound) head(IsoEBDERes$PPMat) str(IsoEBDERes$Status) @ \noindent We see that EBSeq found 104 DE isoforms at the target FDR of 0.05. \noindent Note the \verb+GetDEResults()+ was incorporated in EBSeq since version 1.7.1. By using the default settings, the number of transcripts identified in any given analysis may differ slightly from the previous version. The updated algorithm is more robust to outliers and transcripts with low variance. To obtain results that are comparable to results from earlier versions of EBSeq ($\le$ 1.7.0), a user may set \verb+Method="classic"+ in \verb+GetDEResults()+ function, or use the \verb+GetPPMat()+ function. \subsection{Gene level DE analysis (more than two conditions)} \label{sec:startmulticond} \noindent The object \verb+MultiGeneMat+ is a matrix containing 500 simulated genes with 6 samples: the first two samples are from condition 1; the second and the third sample are from condition 2; the last two samples are from condition 3. <<>>= data(MultiGeneMat) str(MultiGeneMat) @ In analysis where the data are spread over more than two conditions, the set of possible patterns for each gene is more complicated than simply EE and DE. As noted in Section \ref{sec:model}, when we have 3 conditions, there are 5 expression patterns to consider. In the simulated data, we have 6 samples, 2 in each of 3 conditions. The function \verb+GetPatterns+ allows the user to generate all possible patterns given the conditions. For example: <<>>= Conditions=c("C1","C1","C2","C2","C3","C3") PosParti=GetPatterns(Conditions) PosParti @ \noindent where the first row means all three conditions have the same latent mean expression level; the second row means C1 and C2 have the same latent mean expression level but that of C3 is different; and the last row corresponds to the case where the three conditions all have different latent mean expression levels. The user may use all or only some of these possible patterns as an input to \verb+EBMultiTest+. For example, if we were interested in Patterns 1, 2, 4 and 5 only, we'd define: <<>>= Parti=PosParti[-3,] Parti @ Moving on to the analysis, \verb+MedianNorm+ or one of its competitors should be used to determine the normalization factors. Once this is done, the formal test is performed by \verb+EBMultiTest+. <<>>= MultiSize=MedianNorm(MultiGeneMat) MultiOut=EBMultiTest(MultiGeneMat,NgVector=NULL,Conditions=Conditions, AllParti=Parti, sizeFactors=MultiSize, maxround=5) @ \noindent The posterior probability of being in each pattern for every gene is obtained by using the function \verb+GetMultiPP+: <<>>= MultiPP=GetMultiPP(MultiOut) names(MultiPP) MultiPP$PP[1:10,] MultiPP$MAP[1:10] MultiPP$Patterns @ \noindent where \verb+MultiPP$PP+ provides the posterior probability of being in each pattern for every gene. \verb+MultiPP$MAP+ provides the most likely pattern of each gene based on the posterior probabilities. \verb+MultiPP$Patterns+ provides the details of the patterns. \subsection{Isoform level DE analysis (more than two conditions)} \label{sec:startisomulticond} \noindent Similar to \verb+IsoList+, the object \verb+IsoMultiList+ is an object containing the isoform expression estimates matrix, the isoform names, and the gene names of the isoforms' host genes. \verb+IsoMultiList$IsoMultiMat+ contains 300 simulated isoforms with 8 samples. The first two samples are from condition 1; the second and the third sample are from condition 2; the fifth and sixth sample are from condition 3; the last two samples are from condition 4. Similar to Section \ref{sec:startisode}, the function \verb+MedianNorm+ and \verb+GetNg+ could be used for normalization and calculating the $N_g$'s. <<>>= data(IsoMultiList) IsoMultiMat=IsoMultiList[[1]] IsoNames.Multi=IsoMultiList$IsoNames IsosGeneNames.Multi=IsoMultiList$IsosGeneNames IsoMultiSize=MedianNorm(IsoMultiMat) NgList.Multi=GetNg(IsoNames.Multi, IsosGeneNames.Multi) IsoNgTrun.Multi=NgList.Multi$IsoformNgTrun Conditions=c("C1","C1","C2","C2","C3","C3","C4","C4") @ Here we have 4 conditions, there are 15 expression patterns to consider. The function \verb+GetPatterns+ allows the user to generate all possible patterns given the conditions. For example: <<>>= PosParti.4Cond=GetPatterns(Conditions) PosParti.4Cond @ \noindent If we were interested in Patterns 1, 2, 3, 8 and 15 only, we'd define: <<>>= Parti.4Cond=PosParti.4Cond[c(1,2,3,8,15),] Parti.4Cond @ \noindent Moving on to the analysis, \verb+EBMultiTest+ could be used to perform the test: <<>>= IsoMultiOut=EBMultiTest(IsoMultiMat, NgVector=IsoNgTrun.Multi,Conditions=Conditions, AllParti=Parti.4Cond, sizeFactors=IsoMultiSize, maxround=5) @ \noindent The posterior probability of being in each pattern for every gene is obtained by using the function \verb+GetMultiPP+: <<>>= IsoMultiPP=GetMultiPP(IsoMultiOut) names(MultiPP) IsoMultiPP$PP[1:10,] IsoMultiPP$MAP[1:10] IsoMultiPP$Patterns @ \noindent where \verb+MultiPP$PP+ provides the posterior probability of being in each pattern for every gene. \verb+MultiPP$MAP+ provides the most likely pattern of each gene based on the posterior probabilities. \verb+MultiPP$Patterns+ provides the details of the patterns. \newpage \section{More detailed examples} \label{sec:detailed} \subsection{Gene level DE analysis (two conditions)} \label{sec:detailedgenede} \subsubsection{Running EBSeq on simulated gene expression estimates} \label{sec:detailedgenederun} EBSeq is applied as described in Section \ref{sec:startgenederun}. <>= data(GeneMat) Sizes=MedianNorm(GeneMat) EBOut=EBTest(Data=GeneMat, Conditions=as.factor(rep(c("C1","C2"),each=5)),sizeFactors=Sizes, maxround=5) EBDERes=GetDEResults(EBOut, FDR=0.05) @ <<>>= EBDERes=GetDEResults(EBOut, FDR=0.05) str(EBDERes$DEfound) head(EBDERes$PPMat) str(EBDERes$Status) @ \noindent EBSeq found 95 DE genes at a target FDR of 0.05.\\ \subsubsection{Calculating FC} \label{sec:detailedgenedefc} The function \verb+PostFC+ may be used to calculate the Fold Change (FC) of the raw data as well as the posterior FC of the normalized data. \begin{figure}[h!] \centering <>= GeneFC=PostFC(EBOut) str(GeneFC) PlotPostVsRawFC(EBOut,GeneFC) @ \caption{ FC vs. Posterior FC for 1,000 gene expression estimates} \label{fig:GeneFC} \end{figure} Figure \ref{fig:GeneFC} shows the FC vs. Posterior FC on 1,000 gene expression estimates. The genes are ranked by their cross-condition mean (adjusted by the normalization factors). The posterior FC tends to shrink genes with low expressions (small rank); in this case the differences are minor. \newpage \subsubsection{Checking convergence} \label{sec:detailedgenedeconverge} As detailed in Section \ref{sec:model}, we assume the prior distribution of $q_g^C$ is $Beta(\alpha,\beta)$. The EM algorithm is used to estimate the hyper-parameters $\alpha,\beta$ and the mixture parameter $p$. The optimized parameters at each iteration may be obtained as follows (recall we are using 5 iterations for demonstration purposes): <<>>= EBOut$Alpha EBOut$Beta EBOut$P @ In this case the differences between the 4th and 5th iterations are always less than 0.01. \subsubsection{Checking the model fit and other diagnostics} \label{sec:detailedgenedeplot} As noted in Leng {\it et al.}, 2013 \cite{Leng13}, EBSeq relies on parametric assumptions that should be checked following each analysis. The \verb+QQP+ function may be used to assess prior assumptions. In practice, \verb+QQP+ generates the Q-Q plot of the empirical $q$'s vs. the simulated $q$'s from the Beta prior distribution with estimated hyper-parameters. Figure \ref{fig:GeneQQ} shows that the data points lie on the $y=x$ line for both conditions, which indicates that the Beta prior is appropriate. \begin{figure}[h!] \centering <>= par(mfrow=c(1,2)) QQP(EBOut) @ \caption{QQ-plots for checking the assumption of a Beta prior (upper panels) as well as the model fit using data from condition 1 and condition 2 (lower panels)} \label{fig:GeneQQ} \end{figure} \newpage \noindent Likewise, the \verb+DenNHist+ function may be used to check the density plot of empirical $q$'s vs the simulated $q$'s from the fitted Beta prior distribution. Figure \ref{fig:GeneDenNHist} also shows our estimated distribution fits the data very well. \begin{figure}[h!] \centering <>= par(mfrow=c(1,2)) DenNHist(EBOut) @ \caption{Density plots for checking the model fit using data from condition 1 and condition 2} \label{fig:GeneDenNHist} \end{figure} \newpage \subsection{Isoform level DE analysis (two conditions)} \label{sec:detailedisode} \subsubsection{The $I_g$ vector} \label{sec:detailedisodeNg} Since EBSeq fits rely on $I_g$, we need to obtain the $I_g$ for each isoform. This can be done using the function \verb+GetNg+. The required inputs of \verb+GetNg+ are the isoform names (\verb+IsoformNames+) and their corresponding gene names (\verb+IsosGeneNames+), described above. In the simulated data, we assume that the isoforms in the $I_g=1$ group belong to genes \verb+Gene_1, ... , Gene_200+; The isoforms in the $I_g=2$ group belong to genes \verb+Gene_201, ..., Gene_400+; and isoforms in the $I_g=3$ group belong to \verb+Gene_401, ..., Gene_600+. <>= data(IsoList) IsoMat=IsoList$IsoMat IsoNames=IsoList$IsoNames IsosGeneNames=IsoList$IsosGeneNames NgList=GetNg(IsoNames, IsosGeneNames, TrunThre=3) @ <<>>= names(NgList) IsoNgTrun=NgList$IsoformNgTrun IsoNgTrun[c(1:3,201:203,601:603)] @ The output of \verb+GetNg+ contains 4 vectors. \verb+GeneNg+ (\verb+IsoformNg+) provides the number of isoforms $N_g$ within each gene (within each isoform's host gene). \verb+GeneNgTrun+ (\verb+IsoformNgTrun+) provides the $I_g$ group assignments. The default number of groups is 3, which means the isoforms with $N_g$ greater than 3 will be assigned to $I_g=3$ group. We use 3 in the case studies since the number of isoforms with $N_g$ larger than 3 is relatively small and the small sample size may induce poor parameter fitting if we treat them as separate groups. In practice, if there is evidence that the $N_g=4,5,6...$ groups should be treated as separate groups, a user can change \verb+TrunThre+ to define a different truncation threshold. \subsubsection{Using mappability ambiguity clusters instead of the $I_g$ vector when the gene-isoform relationship is unknown} \label{sec:detailedisodeNoNg} When working with a de-novo assembled transcriptome, in which case the gene-isoform relationship is unknown, a user can use read mapping ambiguity cluster information instead of Ng, as provided by RSEM \cite{Li11b} in the output file \verb+output_name.ngvec+. The file contains a vector with the same length as the total number of transcripts. Each transcript has been assigned to one of 3 levels (1, 2, or 3) to indicate the mapping uncertainty level of that transcript. The mapping ambiguity clusters are partitioned via a k-means algorithm on the unmapability scores that are provided by RSEM. A user can read in the mapping ambiguity cluster information using: <>= IsoNgTrun = scan(file="output_name.ngvec", what=0, sep="\n") @\\ Where \verb+"output_name.ngvec"+ is the output file obtained from RSEM function rsem-generate-ngvector. More details on using the RSEM-EBSeq pipeline on de novo assembled transcriptomes can be found at \url{http://deweylab.biostat.wisc.edu/rsem/README.html#de}. Other unmappability scores and other cluster methods (e.g. Gaussian Mixed Model) could also be used to form the uncertainty clusters. \subsubsection{Running EBSeq on simulated isoform expression estimates} \label{sec:detailedisoderun} EBSeq can be applied as described in Section \ref{sec:startisoderun}. <>= IsoSizes=MedianNorm(IsoMat) IsoEBOut=EBTest(Data=IsoMat, NgVector=IsoNgTrun, Conditions=as.factor(rep(c("C1","C2"),each=5)),sizeFactors=IsoSizes, maxround=5) IsoEBDERes=GetDEResults(IsoEBOut, FDR=0.05) @ <<>>= str(IsoEBDERes) @ \noindent We see that EBSeq found 104 DE isoforms at a target FDR of 0.05. The function \verb+PostFC+ could also be used here to calculate the Fold Change (FC) as well as the posterior FC on the normalization factor adjusted data. <<>>= IsoFC=PostFC(IsoEBOut) str(IsoFC) @ \subsubsection{Checking convergence} \label{sec:detailedisodeconverge} For isoform level data, we assume the prior distribution of $q_{gi}^C$ is $Beta(\alpha,\beta^{I_g})$. As in Section \ref{sec:detailedgenedeconverge}, the optimized parameters at each iteration may be obtained as follows (recall we are using 5 iterations for demonstration purposes): <<>>= IsoEBOut$Alpha IsoEBOut$Beta IsoEBOut$P @ Here we have 3 $\beta$'s in each iteration corresponding to $\beta^{I_g=1},\beta^{I_g=2},\beta^{I_g=3}$. We see that parameters are changing less than $10^{-2}$ or $10^{-3}$. In practice, we require changes less than $10^{-3}$ to declare convergence. \subsubsection{Checking the model fit and other diagnostics} \label{sec:detailedisodeplot} In Leng {\it et al.}, 2013\citep{Leng13}, we showed the mean-variance differences across different isoform groups on multiple data sets. In practice, if it is of interest to check differences among isoform groups defined by truncated $I_g$ (such as those shown here in Figure 1), the function \verb+PolyFitPlot+ may be used. The following code generates the three panels shown in Figure \ref{fig:IsoSimuNgEach} (if condition 2 is of interest, a user could change each \verb+C1+ to \verb+C2+.): \begin{figure}[h!] \centering <>= par(mfrow=c(2,2)) PolyFitValue=vector("list",3) for(i in 1:3) PolyFitValue[[i]]=PolyFitPlot(IsoEBOut$C1Mean[[i]], IsoEBOut$C1EstVar[[i]],5) @ \caption{ The mean-variance fitting plot for each Ng group} \label{fig:IsoSimuNgEach} \end{figure} \newpage Superimposing all $I_g$ groups using the code below will generate the figure (shown here in Figure \ref{fig:IsoSimuNg}), which is similar in structure to Figure 1: \begin{figure}[h!] \centering <>= PolyAll=PolyFitPlot(unlist(IsoEBOut$C1Mean), unlist(IsoEBOut$C1EstVar),5) lines(log10(IsoEBOut$C1Mean[[1]][PolyFitValue[[1]]$sort]), PolyFitValue[[1]]$fit[PolyFitValue[[1]]$sort],col="yellow",lwd=2) lines(log10(IsoEBOut$C1Mean[[2]][PolyFitValue[[2]]$sort]), PolyFitValue[[2]]$fit[PolyFitValue[[2]]$sort],col="pink",lwd=2) lines(log10(IsoEBOut$C1Mean[[3]][PolyFitValue[[3]]$sort]), PolyFitValue[[3]]$fit[PolyFitValue[[3]]$sort],col="green",lwd=2) legend("topleft",c("All Isoforms","Ng = 1","Ng = 2","Ng = 3"), col=c("red","yellow","pink","green"),lty=1,lwd=3,box.lwd=2) @ \caption{The mean-variance plot for each Ng group} \label{fig:IsoSimuNg} \end{figure} \newpage \noindent To generate a QQ-plot of the fitted Beta prior distribution and the $\hat{q}^C$'s within condition, a user may use the following code to generate 6 panels (as shown in Figure \ref{fig:IsoQQ}). \begin{figure}[h!] \centering <>= par(mfrow=c(2,3)) QQP(IsoEBOut) @ \caption{ QQ-plots of the fitted prior distributions within each condition and each Ig group} \label{fig:IsoQQ} \end{figure} \newpage \noindent And in order to produce the plot of the fitted Beta prior densities and the histograms of $\hat{q}^C$'s within each condition, the following may be used (it generates Figure \ref{fig:IsoDenNHist}): \begin{figure}[h] \centering <>= par(mfrow=c(2,3)) DenNHist(IsoEBOut) @ \caption{ Prior distribution fit within each condition and each Ig group. (Note only a small set of isoforms are considered here for demonstration. Better fitting should be expected while using full set of isoforms.)} \label{fig:IsoDenNHist} \end{figure} \clearpage \subsection{Gene level DE analysis (more than two conditions)} \label{sec:detailedmulticond} As described in Section \ref{sec:startmulticond}, the function \verb+GetPatterns+ allows the user to generate all possible patterns given the conditions. To visualize the patterns, the function \verb+PlotPattern+ may be used. \begin{figure}[h!] \centering <>= Conditions=c("C1","C1","C2","C2","C3","C3") PosParti=GetPatterns(Conditions) PosParti PlotPattern(PosParti) @ \caption{ All possible patterns} \label{fig:Patterns} \end{figure} \newpage \noindent If we were interested in Patterns 1, 2, 4 and 5 only, we'd define: <<>>= Parti=PosParti[-3,] Parti @ \noindent Moving on to the analysis, \verb+MedianNorm+ or one of its competitors should be used to determine the normalization factors. Once this is done, the formal test is performed by \verb+EBMultiTest+. <>= data(MultiGeneMat) MultiSize=MedianNorm(MultiGeneMat) MultiOut=EBMultiTest(MultiGeneMat, NgVector=NULL,Conditions=Conditions, AllParti=Parti, sizeFactors=MultiSize, maxround=5) @ \noindent The posterior probability of being in each pattern for every gene is obtained using the function \verb+GetMultiPP+: <<>>= MultiPP=GetMultiPP(MultiOut) names(MultiPP) MultiPP$PP[1:10,] MultiPP$MAP[1:10] MultiPP$Patterns @ \noindent where \verb+MultiPP$PP+ provides the posterior probability of being in each pattern for every gene. \verb+MultiPP$MAP+ provides the most likely pattern of each gene based on the posterior probabilities. \verb+MultiPP$Patterns+ provides the details of the patterns. The FC and posterior FC for multiple condition data can be obtained by the function \verb+GetMultiFC+: <<>>= MultiFC=GetMultiFC(MultiOut) str(MultiFC) @ \noindent To generate a QQ-plot of the fitted Beta prior distribution and the $\hat{q}^C$'s within condition, a user could also use function \verb+DenNHist+ and \verb+QQP+. \begin{figure}[h!] \centering <>= par(mfrow=c(2,2)) QQP(MultiOut) @ \caption{ QQ-plots of the fitted prior distributions within each condition and each Ig group} \label{fig:GeneMultiQQ} \end{figure} \begin{figure}[h] \centering <>= par(mfrow=c(2,2)) DenNHist(MultiOut) @ \caption{ Prior distributions fit within each condition. (Note only a small set of genes are considered here for demonstration. Better fitting should be expected while using full set of genes.)} \label{fig:GeneMultiDenNHist} \end{figure} \newpage \clearpage \newpage \subsection{Isoform level DE analysis (more than two conditions)} \label{sec:detailedisomulticond} Similar to Section \ref{sec:startmulticond}, the function \verb+GetPatterns+ allows a user to generate all possible patterns given the conditions. To visualize the patterns, the function \verb+PlotPattern+ may be used. <<>>= Conditions=c("C1","C1","C2","C2","C3","C3","C4","C4") PosParti.4Cond=GetPatterns(Conditions) PosParti.4Cond @ \newpage \begin{figure}[h!] \centering <>= PlotPattern(PosParti.4Cond) Parti.4Cond=PosParti.4Cond[c(1,2,3,8,15),] Parti.4Cond @ \caption{All possible patterns for 4 conditions} \label{fig:Patterns4Cond} \end{figure} \newpage <>= data(IsoMultiList) IsoMultiMat=IsoMultiList[[1]] IsoNames.Multi=IsoMultiList$IsoNames IsosGeneNames.Multi=IsoMultiList$IsosGeneNames IsoMultiSize=MedianNorm(IsoMultiMat) NgList.Multi=GetNg(IsoNames.Multi, IsosGeneNames.Multi) IsoNgTrun.Multi=NgList.Multi$IsoformNgTrun IsoMultiOut=EBMultiTest(IsoMultiMat,NgVector=IsoNgTrun.Multi,Conditions=Conditions, AllParti=Parti.4Cond, sizeFactors=IsoMultiSize, maxround=5) IsoMultiPP=GetMultiPP(IsoMultiOut) @ <<>>= names(MultiPP) IsoMultiPP$PP[1:10,] IsoMultiPP$MAP[1:10] IsoMultiPP$Patterns IsoMultiFC=GetMultiFC(IsoMultiOut) @ The FC and posterior FC for multiple condition data can be obtained by the function \verb+GetMultiFC+: \noindent To generate a QQ-plot of the fitted Beta prior distribution and the $\hat{q}^C$'s within condition, a user could also use the functions \verb+DenNHist+ and \verb+QQP+. \newpage \begin{figure}[h!] \centering <>= par(mfrow=c(3,4)) QQP(IsoMultiOut) @ \caption{ QQ-plots of the fitted prior distributions within each condition and Ig group. (Note only a small set of isoforms are considered here for demonstration. Better fitting should be expected while using full set of isoforms.)} \label{fig:IsoMultiQQ} \end{figure} \begin{figure}[h] \centering <>= par(mfrow=c(3,4)) DenNHist(IsoMultiOut) @ \caption{ Prior distributions fit within each condition and Ig group. (Note only a small set of isoforms are considered here for demonstration. Better fitting should be expected while using full set of isoforms.)} \label{fig:IsoMultiDenNHist} \end{figure} \clearpage \newpage \newpage \subsection{Working without replicates} When replicates are not available, it is difficult to estimate the transcript specific variance. In this case, EBSeq estimates the variance by pooling similar genes together. Specifically, we take genes with FC in the 25\% - 75\% quantile of all FC's as candidate genes. By defining \verb+NumBin = 1000+ (default in \verb+EBTest+), EBSeq will group genes with similar means into 1,000 bins. For each candidate gene, we use the across-condition variance estimate as its variance estimate. For each bin, the bin-wise variance estimation is taken to be the median of the across-condition variance estimates of the candidate genes within that bin. For each non-candidate gene, we use the bin-wise variance estimate of the host bin (the bin containing this gene) as its variance estimate. This approach works well when there are no more than 50\% DE genes in the data set. \subsubsection{Gene counts with two conditions} \label{sec:norepgenede} To generate a data set with no replicates, we take the first sample of each condition. For example, using the data from Section \ref{sec:detailedgenede}, we take sample 1 from condition 1 and sample 6 from condition 2. Functions \verb+MedianNorm+, \verb+GetDEResults+ and \verb+PostFC+ may be used on data without replicates. <<>>= data(GeneMat) GeneMat.norep=GeneMat[,c(1,6)] Sizes.norep=MedianNorm(GeneMat.norep) EBOut.norep=EBTest(Data=GeneMat.norep, Conditions=as.factor(rep(c("C1","C2"))), sizeFactors=Sizes.norep, maxround=5) EBDERes.norep=GetDEResults(EBOut.norep) GeneFC.norep=PostFC(EBOut.norep) @ \subsubsection{Isoform counts with two conditions} \label{norepisode} To generate an isoform level data set with no replicates, we also take sample 1 and sample 6 in the data we used in Section \ref{sec:detailedisode}. Example codes are shown below. <<>>= data(IsoList) IsoMat=IsoList$IsoMat IsoNames=IsoList$IsoNames IsosGeneNames=IsoList$IsosGeneNames NgList=GetNg(IsoNames, IsosGeneNames) IsoNgTrun=NgList$IsoformNgTrun IsoMat.norep=IsoMat[,c(1,6)] IsoSizes.norep=MedianNorm(IsoMat.norep) IsoEBOut.norep=EBTest(Data=IsoMat.norep, NgVector=IsoNgTrun, Conditions=as.factor(c("C1","C2")), sizeFactors=IsoSizes.norep, maxround=5) IsoEBDERes.norep=GetDEResults(IsoEBOut.norep) IsoFC.norep=PostFC(IsoEBOut.norep) @ \subsubsection{Gene counts with more than two conditions} \label{norepisode} To generate a data set with multiple conditions and no replicates, we take the first sample from each condition (sample 1, 3 and 5) in the data we used in Section \ref{sec:detailedmulticond}. Example codes are shown below. <<>>= data(MultiGeneMat) MultiGeneMat.norep=MultiGeneMat[,c(1,3,5)] Conditions=c("C1","C2","C3") PosParti=GetPatterns(Conditions) Parti=PosParti[-3,] MultiSize.norep=MedianNorm(MultiGeneMat.norep) MultiOut.norep=EBMultiTest(MultiGeneMat.norep, NgVector=NULL,Conditions=Conditions, AllParti=Parti, sizeFactors=MultiSize.norep, maxround=5) MultiPP.norep=GetMultiPP(MultiOut.norep) MultiFC.norep=GetMultiFC(MultiOut.norep) @ \subsubsection{Isoform counts with more than two conditions} \label{sec:norepmulticond} To generate an isoform level data set with multiple conditions and no replicates, we take the first sample from each condition (sample 1, 3, 5 and 7) in the data we used in Section \ref{sec:detailedisomulticond}. Example codes are shown below. <<>>= data(IsoMultiList) IsoMultiMat=IsoMultiList[[1]] IsoNames.Multi=IsoMultiList$IsoNames IsosGeneNames.Multi=IsoMultiList$IsosGeneNames IsoMultiMat.norep=IsoMultiMat[,c(1,3,5,7)] IsoMultiSize.norep=MedianNorm(IsoMultiMat.norep) NgList.Multi=GetNg(IsoNames.Multi, IsosGeneNames.Multi) IsoNgTrun.Multi=NgList.Multi$IsoformNgTrun Conditions=c("C1","C2","C3","C4") PosParti.4Cond=GetPatterns(Conditions) PosParti.4Cond Parti.4Cond=PosParti.4Cond[c(1,2,3,8,15),] Parti.4Cond IsoMultiOut.norep=EBMultiTest(IsoMultiMat.norep, NgVector=IsoNgTrun.Multi,Conditions=Conditions, AllParti=Parti.4Cond, sizeFactors=IsoMultiSize.norep, maxround=5) IsoMultiPP.norep=GetMultiPP(IsoMultiOut.norep) IsoMultiFC.norep=GetMultiFC(IsoMultiOut.norep) @ \section{EBSeq pipelines and extensions} \subsection{RSEM-EBSeq pipeline: from raw reads to differential expression analysis results} EBSeq is coupled with RSEM \cite{Li11b} as an RSEM-EBSeq pipeline which provides quantification and DE testing on both gene and isoform levels. For more details, see \url{http://deweylab.biostat.wisc.edu/rsem/README.html#de} \subsection{EBSeq interface: A user-friendly graphical interface for differetial expression analysis} EBSeq interface provides a graphical interface implementation for users who are not familiar with the R programming language. It takes .xls, .xlsx and .csv files as input. Additional packages need be downloaded; they may be found at \url{http://www.biostat.wisc.edu/~ningleng/EBSeq_Package/EBSeq_Interface/} \subsection{EBSeq Galaxy tool shed} EBSeq tool shed contains EBSeq wrappers for a local Galaxy implementation. For more details, see \url{http://www.biostat.wisc.edu/~ningleng/EBSeq_Package/EBSeq_Galaxy_toolshed/} \section{Acknowledgment} We would like to thank Haolin Xu for checking the package and proofreading the vignette. \section{News} 2014-1-30: In EBSeq 1.3.3, the default setting of EBTest function will remove low expressed genes (genes whose 75th quantile of normalized counts is less than 10) before identifying DE genes. These two thresholds can be changed in EBTest function. Because low expressed genes are disproportionately noisy, removing these genes prior to downstream analyses can improve model fitting and increase robustness (e.g. by removing outliers). 2014-5-22: In EBSeq 1.5.2, numerical approximations are implemented to deal with underflow. The underflow is likely due to large number of samples. 2015-1-29: In EBSeq 1.7.1, EBSeq incorporates a new function GetDEResults() which may be used to obtain a list of transcripts under a target FDR in a two-condition experiment. The results obtained by applying this function with its default setting will be more robust to transcripts with low variance and potential outliers. By using the default settings in this function, the number of genes identified in any given analysis may differ slightly from the previous version (1.7.0 or order). To obtain results that are comparable to results from earlier versions of EBSeq (1.7.0 or older), a user may set Method="classic" in GetDEResults() function, or use the original GetPPMat() function. The GeneDEResults() function also allows a user to modify thresholds to target genes/isoforms with a pre-specified posterior fold change. Also, in EBSeq 1.7.1, the default settings in EBTest() and EBMultiTest() function will only remove transcripts with all 0's (instead of removing transcripts with 75th quantile less than 10 in version 1.3.3-1.7.0). To obtain a list of transcripts comparable to the results generated by EBSeq version 1.3.3-1.7.0, a user may change Qtrm = 0.75 and QtrmCut = 10 when applying EBTest() or EBMultiTest() function. \section{Common Q and A} \subsection{Read in data} csv file: \verb+In=read.csv("FileName", stringsAsFactors=F, row.names=1, header=T)+ \verb+Data=data.matrix(In)+ \noindent txt file: \verb+In=read.table("FileName", stringsAsFactors=F, row.names=1, header=T)+ \verb+Data=data.matrix(In)+ \noindent Check \verb+str(Data)+ and make sure it is a matrix instead of data frame. You may need to play around with the \verb+row.names+ and \verb+header+ option depends on how the input file was generated. \subsection{GetDEResults() function not found} You may on an earlier version of EBSeq. The GetDEResults function was introduced since version 1.7.1. The latest release version could be found at: \url{http://www.bioconductor.org/packages/release/bioc/html/EBSeq.html} \noindent The latest devel version: \url{http://www.bioconductor.org/packages/devel/bioc/html/EBSeq.html} \noindent And you may check your package version by typing \verb+packageVersion("EBSeq")+. \subsection{Visualizing DE genes/isoforms} To generate a heatmap, you may consider the heatmap.2 function in gplots package. For example, you may run \verb+heatmap.2(NormalizedMatrix[GenesOfInterest,], scale="row", trace="none", Colv=F)+ The normalized matrix may be obtained from \verb+GetNormalizedMat()+ function. \subsection{My favorite gene/isoform has NA in PP (status "NoTest")} \indent The NoTest status comes from two sources: 1) In version 1.3.3-1.7.0, using the default parameter settings of EBMultiTest(), the function will not test on genes with more than 75\% values $\le$ 10 to ensure better model fitting. To disable this filter, you may set Qtrm=1 and QtrmCut=0. 2) numerical over/underflow in R. That happens when the within condition variance is extremely large or small. we did implemented a numerical approximation step to calculate the approximated PP for these genes with over/underflow. Here we use $10^{-10}$ to approximate the parameter p in the NB distribution for these genes (we set it to a small value since we want to cover more over/underflow genes with low within-condition variation). You may try to tune this value (to a larger value) in the approximation by setting \verb+ApproxVal+ in \verb+EBTest()+ or \verb+EBMultiTest()+ function. \pagebreak \bibliographystyle{plain} \bibliography{lengetal} \end{document} EBSeq/inst/doc/EBSeq_Vignette.pdf0000644000175200017520000347137714516004476017611 0ustar00biocbuildbiocbuild%PDF-1.5 % 150 0 obj << /Length 1603 /Filter /FlateDecode >> stream xZKsH+tV%ل6xOخ8vBۏ[8 5=_# %GQ eTeN =3\Ŭ4jAOqϪ ke|s\c*5J,6[N,}^xWÖ ~X[sf4o"e"WQ( eQ!,YDZXe"+$~Bl OМa8Ed[7&`(7dbiceZ׭- CI%rc"i6\JdY%ᘳP|WET"SN7q_C/4sr`u+ $Am=LӍ~Ӛ,Zq08jqS>ǟrAvz5 F;w:~jzUar cra#&lr^P@Lh7طz cEf%LQlc "eT ryцQ,`sm艴2\)w )7Dt=* G r)3:=ۣ݂Z?,A:Jp!UBY$j<;N{좆rjxKO˚ͱv6s Y{+'1fT< 93m~ Ǹ 즔f*jaa*ao)=GQca۹k f#E"@*da9lhҶ:5`ə;q=ށP+'Oe P k`Up-fM&!d#ϸbDx u4ՁENVa#.ټGl}M<%YXݞ ^PS[@;zwթ&ǕϝF$hkPHLv(a \qFQCijmw~`UBd'<7*'a_ʼnrg8Y9X܃psBh&@9l{Zk_؋Nb7w*xER4'`9'.}r2 I[kyJkK-J#6ulw]wvv_ >JÍ$XUU[ϕ* .BG7}Z6_x=0$eC7Fo7jg{g{?`t Gޢv^P<# 8 \JHFdv^' $".G(2_Q@)AAY~/D` R}2M›qȔPw_`m>5h8WC{P&¶yL q3V&jȴ r>/1h~4+B[Iδe݄|/Hn& De͎=V|{zZ uˋK!wr0Zo860}M\gTnB[\݅~ -.@YuZv &_Vd&l6"wO6~A_ endstream endobj 204 0 obj << /Length 3379 /Filter /FlateDecode >> stream x[[۶~ϯ􉚱I>uxRg'}H]M$q+J@vmq"C\;/ͪ*bv"Zʔ$O: 2{l~ ÿiOYrh~+/*tUu'W]$OLB%fei *CĶH! 3wIϳ292OX0yHre_Lr o'X.q7>52l"g͇=Nr,^^N]&y:,fns~~BP x׶ ”l_c@;¾le=Ul}k ˀ1LؼAfw#.eBx3Rr(-EHȅe_r~@V8 .+`uAn |&YkὩW^G IWdJ q)쩷':8W;6.PK rntu;GWӬmdǚI@ڼH€pi'{y&UA* ki?4Gy.uZ**r%|3ӥ`唟B?KǗU(ZItz )JO".ԟQS. ]嚐o 'QHj|hѮ 0/'n+&/7w.'=<~ϏbK$_eEs p[Sn? Bn-(ʙ,2Qh*ed6yNLHw<?k`r $XdGz/7%݊= RD-kEdփCt#C5+Y}CTQ^H/>*Ѳ=SPM/բm7CnXw:eW%-T¤F|9n{dn?9$ k*re)r٢MXGq2^hVlʃRVQQvYwN%s\*yD7my-/k09.^"79UK]Hx jliն3ފr[ΜC2*yeޓkt7F]PRJu7 ڣOW!S&Q{}rc9SӮ{ʉp*1K|dIؠw}(R|_ %m8Xj\둇5MLy,U\,N.dؔ::ϡҞ}M,Azu#eG<7FGgʻCبqt8(kpN_Zk*ͫ2ō 桁)+ބ6N]P %/TLj6kE'Fը1nJV0̫ >r7$wPAV2K\59Jym{#{h>NMTZd}\(ԬH8xXbn>LY@@Ȁ\NU,cm| ,xbBy"S~ N1"uY v>Mm|61ic~%FvG`W nio ;{C2f\-|@;vp8)hOâh Gʙ[)05 57W}BoovY.aUa`6bn'8tL܇rh>x[x'({,8!މߍ1p+^ƹR]LTiD&RInAp`{NwG^Pq4Ƒj~P\FI/apyX|T^tN>q:ƋGN@THcD'l>7P= @ͭN^+n">v v9Uȼ3p9xl {H 94fߛQ'!A瀮 MBDʊ:z8#<ԸpQ+o[,]y}لw >eU()Tmtj;ߋ;$P絙z]-{z6n|9/TRw9UWX2ggƳՔqs{s }{ \;4_8]"J:o{%~A |:ʷk$A.??r81:R30JhogvO,"؍Nj~/8s_H)!] d|m pE. |K#'dNaLLs`*hV h{SSM8or5>Ԛb\,rC"\X,*3_,=x u'KMМ]/'rV nעR:yJ_DVU _+l>&ˆτP-P9]cwv$Ba҉!#UcP%k`(<˚[KIM9mwd78!CI^.H٬ofg*ܛN|a-(&U|rU=,s)I.V@%`-/WqC*} HD6}c6KB}x}p.-90= <#5P=>U+ d{QHDw*W8sOvu0c31{Euy1u%}5Vɣ#"4z[VG:8*y"_|]m| /o2@V c5=*n)BWxq%3Z{I295`t`B'U\:Mܥ}AS<`VOs.ЍDpcʥegR+O/hF endstream endobj 2 0 obj << /Type /ObjStm /N 100 /First 812 /Length 2130 /Filter /FlateDecode >> stream xڽY[OH}_iø~E#d#-x!󹫹dCg^VQvթS߽ʒY҂K%)(Bc'HzDEJR~5 #oZUעwyuAg{wzj.Iz J6TvOleQyɚ,7URʰ+Jvret`~!T7=京#@Ir2 0B$W:Gڴ%r _O뼣O#U>5'Eo:Jg/sz6?-h~_[,#.*1r6e{_rbxtX,MNy2 ܹ`\ۯ!NbZnՆUDjejUjujMjmjJx*ᩄNx:鄧Nx:鄧Nx&ᙄg[I&ᚄkVg"3/_liE;V28{ˈsVEO^f8 XcgVLxa@f}fqlϺ,,P$g-h}>Yq# =`x3k̴?fߥT Q)EqI.SQS1.FA7c}7e2gĊxv"U!Ch+@̔f"EG vCf }3: C [>/3v@ǻ, M8Yf3x0!TD5,@O-LgZ,)FNgޙdvb:Q􏦃Dܒ.-vIxH6c~Bg0Q9X6HtmyzRQe6BG(\fb&OQ Bݪ"D;1Eb5(|݅[+pst[MR(㔉"RbB- (VXi-U;@q\%cTR 1qcށTV9`NR(qn:$49Npk\gy90?$ |v[UGquiݶ2; *g]u"lIh%%pcU>}U!ΰⱪ`jq*'yIٰ^Vc"*B|zc?Z:`ݺo|E8FB󣶹8. +I~+I%W땤IW|>]tҕ^HW|!]t^HW{!]^Lx1ń^Lx1ń^ S^&(*Ȉ{~>nv"#7-8FUI@oL:A$> stream x]oݿB+\q4zE\=(l>"ɥ3CrRZspE8Zqpf8@X*=Ъb3 KGze/PG(rPJ;891jKf(ܯpLYHWx=^iNqŧxcK?pdDU̧~?d(]q"O9x }GʿowĿwDFBQw# G@&vb(0D2D˿GBX/HԞoq_#/~QOADA?LQ7n0qk B?%#b|G;@KR2E\ Br<_`vNk^mG]لb݄oqLϟgAfa* 3쑄3N2m؟ Zf((oe <ѹdBm@T*NeIuBG؛d8g3p~Bd!d_YV ($Z)<ҢVsi3B 3#?9:fM MUGޞNV &Kc,y$&>>-/UOFv@%/߇[C+Y^m\;rRI?eڇdceR>&n\:|) J!D[늉ƚ|DB|53jqliiOpMU=+y6 0D:W m,=5\"s!SχGH4Jc=Jz^G8HbS0t2֚=AU\v!0[l/50=OMYaᦋT@g vk%3ǃTSZ+.&]O҅)F:{8vU2e2a Pyjs=4k psNxBrrw¬?N{Xv1+&PwN5Q' i+ҥuۻxGhxFّhp?:y=K]~Dor 9ς[H^#WkU6tbhɫFXVQ5:Mqϗ=玔+%gRo]QjY #FWQ nnnѩWJeXx{EQcI>c_ƍWqM[f<łjdguضE7@|)^H6}K4'7^+mבo\@;xǡzZH;SߤacvI ߩ rN|}J}ߑ|6FPG6M%{a }+""vAP\^&!tgBl1E3~> 26J'ͦӫ]*[xmjÈ!QR Ts7L5 ۯd9=ڮzI)JZa{J޵y~S1Lui6Ӂ[`cM}ig򪃾`A*Zѻh\6ZB*EE,(L IG61b?%_noF#>;y#dW~ _k/*WOxq3,c˯n xr#u/\ A$o\D~~pJwW hۻP906N^v\73'V`GG!F{dY_}Or 2/u endstream endobj 199 0 obj << /Type /XObject /Subtype /Image /Width 504 /Height 504 /BitsPerComponent 16 /ColorSpace /DeviceRGB /Length 121978 /Filter/FlateDecode /DecodeParms<> >> stream xyeg?s,0 0((@YV-ff%X.Ǵ\,3sEs/4,+Em2qP`aֳo}x}>9ΰ sa~_꺮 0 0 0Cmwaaazaap@0 0 0Caaf=0 0 a8gaa!  0 0 3သaaa03 0 0zaap@0 0 0Caaf=0 0 a8gaa!  0 0 3သaaa03 0 0zaap@0 0 0Caaf=0 0 a8gaa!  0 0 3သaaa03 0 0zaap@0 0 0Caaf=0 0 a8gaa!  0 0 3သaaa03 0 0zav .\p+VXbܹsΝЂGXrʕ+gϞ={l|{՟}fΜ9ś^Y{'s;緶t}ٓل> qavx<o˗/_N]A_| ,X`޼yw\}O#>8t{5qEf͚5k,2B_ګ h{=ovlzOWသa]c0>O5zzò9s̙3mѢE-}O?O4 t8績3}dګܟIf_za |?'cdxC#.W30gwI,_ӽq<>ѵ{*V}=0k0x8T_ )tmTcG5i<?0ib2#.]tR}c0D0̾@mBW*/3e=+kw2&}kU.}vfသa]@] ([W^z`CLW *Q쎫XПcae V@g!I3ʕ5UP<ޢ\e*h=0 OB:4SoQqE_ z|M ^ =XWzx]z4ʜg8gfՋ=M6 {s@t,yCv*mBO#Ч# V@WuX){063 ]UZ;R#I%5zG{6Y=*21>]Wa]@zr侠e=8j{Ctz|M {*WW4_ef}4Q뾀:B c9gn0/hw6Y{' .\pٳgϞM=Xɫ==]K]_?Wٯ' aoˮ@:trx5凍F,_ӽ9Je.7}U^#^0 2v,Y@_ʃ>Pϊ[VF@W?0+tě#CwqHUFW03 ؙs #ܱ?խ {aǮ,_ӽCuAK_Wzu ws(?aaa!2 3dz{qu8}Dow{*-2 1{k^w}#s@03 0 0zaap@0 0 0Caaf=0 0 afGxxM6mڴia֭[n 7p 7 / ]]]]]]//<ԏ}w7{~ c$d2y^xtXjHp8뺮`.|>r\nʔ)SLFhtkWH$p\t:N~߿gm^,B*JR{}ݞ{~Ϸ{)|Sgv~Vmܸ~@G^yW\.۾&N8qj˖-[lO~;<a{{ S[0b… .\xŋ|7|swضm۶m۶nݺu֩SN:ux_WRɶGY|#`s-/~(s̙c8Hgaa\(l>( ZZ[u EYqVk!P~zaaf}{gXz͞(g(JKˬYRDRK.-͛75paactu%b9/~XQ~3eƌF؆ 0 0Tm74*aISͼy1 0 0`.t]Wtu!CZ[[[eʕ+E3 0 0{T*K#3GQziny=0 0 @> ,=PuAVY2k$7JTzC"?gΜ9sx<=0 oQlS[Kueliiiှ:3f͚5kz3 0 7o.{/ro=dt)03֣e 0 ]o5c2Ra*03ng%a޼y̓؆7 0̾BbTmhnﶶr!=+Ce_\WlC"Ⱎatw'bwJ&`}DC^S2.7iVe 0 }$ )oYh]BQV䦷Py21;@ܔѐ٠쵥[P#6݂(oٲ}X[_aݣy늀quMGD!m3f?ϸn廂Ru>@3z!J߁z'8ga6^ MZEMR]C6[*1J%.#Ǒ麪*뚦TC_4 M+6MSU5qq4-/4-JźxXTUMTjk;΂t 㮻CRWzŢ㸮l[ zEA%ι1Xr0 0 Ʋmb{LD+1;yiiii)<h8C0 0 STg)_.euڢiB$Z4c8(Ţ̘#Mboܶ]-PGGWaruu+W>Xqig8ccۆs[Qjkq:Q~N|1;+9ow߲e֭]fG\C00(%m`Uy}ykjZk ^ ƣ>.K*/b>VO+^1>=nF3 xǏ?V { YYf͚5kaf` .w-D*|lt]+/>]u!8@)$7$+].'-lO[ eil5j#F;V*9V](`:m>ٿ|3 *jo2Q&ɜzYgHM - g@O@`eEXb(a.]tϟ?ƌ3fX` 駟~i0 3 4NbWi>v䑟>(t_====V*J/3Ϝ|rpY͎3nO*^S Eq}'״x\`9cz0 0Lo%[*T[هuׅWh)P*t^r۴IZL6-9EӔ-Zź_LۃAv_qđGuiZߏ4H)뗾bҩu?}p@0ͻ#[Wvbc07_{G3fܸhfᮮN]mjkz[M׬??BXnh{-CK"qgecǎ(Js1ƍ1jԘ1}v3 ei:sϝw[vmk,\J(lU4φ ;;X,aR9gN:}z]-;;=uVz$sVZ(\Ǜmf6e;z A9,z8l+q84g*uoʖ;|'kcǍC0M۽^=Y*`*Juu㯼ƿeY>;wn&s#Gر~ڵ55'r==rbsر'hx]?{9BmmO6Dч-|6կb9_䦛w;;.{co-}ac ^Q.^6[(`iav#CEc^7`fA!\Wr#x.)_}0+\1u|G&\/(BXjZyٮX,DX,ڰ/?\SҴ5kb1:3ww׵,1.-_ԤɤaBxџ=O8!= ,HC{VK(XK./WWD}i*@=F]w(MŶ\WN.!>ahZ&vmi~.nbuL*իO:X 'O^S[~ ЃAO׳|޶7lhk[vڵk׬җN8ӲBi}>*w7"%)[4d;DtTjmu]]Xloذ 3̠v`0 qc[ڵf >lZᚚ; ndNھsLSU׮6ۄS=V_啗_Gd2w7ވLh XKEb1OZs{p@0 0^䴷>]ZToRwA*g~UU|KZp;miV[3ZչsO9eڴM֮M 4? c͚SOM.`>8~m8}3 el [_Ss饦iuuB=0 0Ln(J\v\ PїCWÿYf!t8aC8\_=O \pe_vmmBOx LN[Gy~jk6򜸪N'~o=oƍS];o^:}EYWxW]E78.LS Rt:a0h>^<){.N$=,VZd htմX 0?a= 0 x\{+QXV.``ۊR)qZГiZ>iLeXKGet끀eiZ:˕JEדIB4|rpQE/y* [C7_{ kd [:ۿNlh50 :S+xp7 ?|՗_~饻oǑg)L"D{CK6 uV&\ra|NjWUC3'  +VX-1 0{uuɤ{mBM;.8Ql{ئ?͛.`Ƕ`~pNjnww,NH6{睅iNvӧ{g}3qeܹsU Ǐ?~?3 / '۶}[@=[,@8t-6M[fv==GP>>󙞞EU3pptҷ^[/!?ܷ =0;fE( y͛7˘ 5'0/|޵^ 9וa Xmǩ т\rhaz>_.сʋtgx<=D&Ti bNZE0X""0tT#e,˶_~yذD_4J$BK.kA?.֕W2?p@0`˘ 3>tڬ9s̙3f 3 _:Ncc&HraK_bI'uu~,o?shߺ_?4ۮ`'ﺫ!:\tvFݖNgja!PKڅV<to(,X`,C3{0RR[ 5U9U|A>O-Uy ~ q|"7TW Ţ"OB OzE_*6> vo+ZRQ|rW^_]wa+< /뛚FhDK}41c_ c:|~ /}R,b֝uwu/烋OW bóo<ӟr`3!7)6RDY/z4.]tϟ?1 vC`ӟ0 ;o+|3_q PW7GfbQt>\ O8;ijZ{׮E5_JѨpvTuGJ$Tz%nOax38gz;TZZQEa51MP)SƏWX,wQ/_|r3gΜ9s`x{f[[&xCҾR}θC$ DR-VE ۊ"BP8֚[D fRuÐSC,ҥ>ߣo3Mv衇Rɶ( &LH&Ǝ][?on7N?J_G^,ϙs≧N$J]Y1|Çwv|2&JJ&cnO(igO D~~S8gz%PptC|f)#,g4sx=A9lKKKKK? H4[rm{"TW@CؾZz?}D W: xYJZK;t>/b&EֲLSӨG; FOOgH.w]x:cL$t+_ٿ2{ * ~P?=@>-xhѢE `FznVf4{}~x]Vo/ K4de٦nVUR*IWx8\/<+Jh AT{Æk8`C, rϖe%h*fvBq\v"oT*2drɒ# Oɓg?3͞ade˷uȮ~i3i EishYihp]ԷmۚoZS䓚 ΜTfh9^CۗF{C*S+8gAݑ+O@G? >\0{$7G5wW`ӛ䦚7݂ f#2ӣ"*;)%F~iz*%~el{_|K%K3BAJt CשK4꺦ՕhłlTrL;ߙ87nk;/mm5S߼s;u=cŊEۦ!Hny) [^hu{B;A( >D.8Ӧ8G>L`45ʄx@ +*4£,Gۇ9gAd-E8>PѳPFcw=sVh(NkڡYw(` 8J ik鞣>keF0 ł~p7{r_zS5>+J>EK䕽.^szpy!XM |(ŲPy#K/ 0 Dkjd 뚆=łAZCI/߯;zt"˝sĉߏgz ֡}͚K/H0dAibhAp0hرFsi~+6 5MCha)B ^1Ըc -M.I7pyuF /b_iV[?~z,Ay т0 jܫ䱖 ((V)hK'Ob'#Db|BRH|B"T|>+R,{[m|"d 'T*m|"tF+>QLf>\TJ$Y3/?d|TLP'b;-;:RBld۷ӹ>3bTں5ё[&,gnM&s9|f/[::|oFeydD6mÆ=Q==t!/pB{{*Ϸ3/J%zDk]]eP~6M;VJ&pN eău. hOZOy*'Ol~ 8V=]_Z]{C%Ђyggggg'Z0Q%:bw -] ~ɧa4u'L(2kmn>6}{/[de%žrժ~W8W0gR"}MTS׬d XrCցLy_fAWlC, >-Τ2T=ȣ&af/SHoV^/yx;UUPbۖ%IT.uM6q$;,-Zuy\eQ( L!ƔxK@Nǻ[Ğ#FSU.P4U5Xh dWjlo{.:jN:_t ?G϶Y9f˖m9-"PִWʯZ(7 U|^#:ŹWJgr4M+?[7/W8uA@];v}z)T`W q(o' 1 wJz}{ ^>};#֗+ wPgz1n}n۶h Jܹ6,\xaK|[<}e7|>UM$>Xӎ?FU_}uV]?U~1*?T￿Ux & ;st3 0E_z aU.WEѪs"E(x#FPNA$PUZ*f6Ea$$员,-`-вW9#ÊdQd))E98(E vEk(.\O[DQ*& hQ5iR:uk6`}oF|k-kҤ p>a15MӐ?aU}-[t6l,g4u]=ha(}h+f8w@̌+Fw䕥3 8GVNyS=MOOD6laNoiYZ5Ey^k].iYWfQ (-RH1~p9BI:ifŬxx@a+ZJ_y1B8FGG:](%u]*J )0M]O$y+ee ՅB.ǯ-;E]j#{lذ\_}y&NcAtzԨ1c^|ߘ7PH@P*Bדɏ4O8!ִ^kkso~7mq](G`N.(Ȁרr$",KQ4MN3r)iV>?ȀD\O/O郥5vNC7=y%0 0{SL+ƍ單.L$?~Æ N_"ٸ =x .PDjj#1qM{M4S|u+ag葏GwA\NjmiӮK.tX,ɓ]nj_ƶO>KE Cx Kh7l,B<@gJn}g֮]SN?5Ҵre߫;h߃L6&Bpߗ:У`)4^!a!;8իW^*>f)00؇# 0Pei<8ӦZxepDUCT!7瞭[7n\.+e"G^iKuxo#ԧ:n}+;i%p&a%PC_=VѵxE]〞ae֮mmmm?= 7_qJ`O?Fe w zK`Od<׿>X,*JM=9cԧtg #A wdjkkkkkzPǏ?~#ze^ zU _4;are:ůr!Eyao}u'-i%X姴473vرƵ9x,t׾/o*Z2>QLJlŗZOoiBI(QҊOi x4 D5-23;{vWGsR[{!_<_?{1l{l$>ǍӴ@(Ӧ|a+eO\kzD7P$ԩ:}gг;sP~] Cy Ze}(݈ f'4ztC>X`JZDQ,vB&q؟2_^dٟwx\޽{*$7H6䜣R؁}BA`:1 qޢX)_9O|⨣f8pA*|!ve(BI(}eiZ"͊<%L>2MM%Nj-ʳ)uuٙɈ2YzQ4|^bRd2[Յ==7|ͱXvږ-7|aW]%)|4ZS眳`A:](J8&ve]vYGmO쳹܃@,b^az|i`{k(XTP!J{;ڞ?bEmV'G7g΄ 7Es5 ooz{۹?5yޗ1⢋ 9䶶K/=;wyuy;dih ? ׍ ҷ=3tp@O)vGujߞ?`:aXFhէZ*JkkW P?pt'~۱ 0Cqc0\"?<^o 9Jm} li.7R<,Cp r@nRq >e9Bf0 CU4 Uŧe,]uamOdi  ai>ρei+OR @O>YW?ydwG?:{o3'y%SL\E">i ޶˒ TC?^ MB!g Fe ޟȫ 9>{e܍* 9^,:d8 Bԃ=\ye޼3eƌ})%q c䎉U0&;q- ,a7rMrSw-z附8z9ň񅯼h1 MӴbQPI *0Tm!AH)JO0"uŁ f4Օ L X `T Jb>|__ |h`W&0 * fu=.Njht߿K.D=}Kz]#]橧2moTzV@Ӽ>HrcRrֲp]3b1I)h7ɍzLQ2_ܑnag -ݵzw(a7̎JW -iavj;[,7Ti>xzU]qBT?}Fu ۸&L_~{O8Ϳ)sN{|pc tϧ==Osα,UM$:*ַuBql[܏%PyH3R2" L} >Hј#Y$"~rUźܫnw2` =c.?XC}F13B/Ӫ!3>}^N# 0ӟ&M|k\|)?~"!|_z+nAQQEҗNF5 U71iG Lev4'OE)5 ZP xK~:}}ů=uqc+cyaѧ!;a z Rpo?`rY"Js Q(BB[x ޮ2+Jfe"/8(}R pŘ 8 &~( -bӔRq< ׎cZ:*>Q_y@ 5,ri3(=7q7Z_iS/O<կtRg?2.}}\@%/k%JuBSYW ]LA~+CR;\[i밿ewPr,ӽ?#lt$7.J+;6$\ D^E{UDDž>?W2+ǧzmHP#+|>_(8BBA=2V*.p A &Z -to-B:ϧ==`/]]٬hfK%鞮(Ĉjj~ڶ->|$!͛\NlѲ [nѫ˧giԨX߼975Ԉ5McS/~Ғ͎Oi}C?񗿌>\$RSgu饟a\sMm[o'^}Ehl!' ʯ muE#B 2i :&Rp'?Rb$%7x/{`Q,B d'kwjs{C_ߢ w-q\avf.EpW_ߟL l8qM{A{&s2s <WrfC-qCf,WCU%7tDaO)[| )PElq]4 [GWJaYZJ MYY=.+Z+AUu#{4YZ F!q&Q GyT.cfŢQkTiJ-xO=D6yذpE֬ _}SO0_ 8}Iް᳟=ئ۴iT|n=״+hh}>d)zB) `P' iyƘ4knYT#ߩDGUfe_ -+߀?b};J aYϟ?|(ν)W|a=ϮS5RrS&{ q~5X h٩8Bh[C iy[ۺuk`yqZZr9*>Ȗ\N f 씞߯idR #7oْL Q 46F~b-ԙzxƌu뺺Y@aCww.ՅB+ymp9U1c.gęDjj6o3>!n-N7ٴ)qu}bmw=twȑ554{A;"Rx -r#]KE޷[,MC[/̀zNi0 0 üر?Ç?Y]]gYs)9@Ooj1b_5-xlm+>x{p@O'/% 0ЇzWߴeOY4Z9z[YQibfPdG; +-P9 #BE,i&l0Q=hA3ZB!юY]a٢i# cGVUUꊢ(˕JTr۶B_.d sX,@ me 'Top>60MM;VG/Z?[o?t55b4|[o]w]l/)l /~_7msŋ5S1"-d><g "W[:oiӲ]xbrLzwo"ywQ:T _[tJK W?w-[1 ]Kn}eh^#P5d3t(uS ;AN*6t:r-]r#Z'٬!0M]O&s9!,.aӲ%rX,+(0EAM=.=bD|>loOEI+Q*Θ<(`]n4S)1Ҁ ǏWnod2vlmm0Hd.dL_}[jjz衻Bdbh}6WGJ.YF0! A009,du#mۖ#JYϧizp@H@bu]Q%ߕ7K)S(ww*od\nP_S}" dB&aٗNOo|]>}q.+_A|Hi^H$N8g/{;o+#F ^_0bDs`? 8߱ էk;L<3O a#<+s޵?EGR+jy^TgRh{Hm+]kK%Yit?8:(ԑo$GG(uYۖ*Xm-0Ey&%gr-ܗFURWzaIQӕd.g= Jl/yɓ-8gʔnZs{z{kjlٸQQ]E9&zTm~p[IhRJeQ,34gWxz n+N=;K޷4CBe1wUsnJtVRy*aafʇZ#HO}uhB3Mp ]#G A SО}o:>1 _?Fd2ƍ?|U`smPSd+ ȟ}l\(LnvU;O[~_Q1imt:Ғ%]t{ 8Zfzl9!>r̃}8 0 _,)jyފ\2r"FgD8(K E"KTep)BLԴ|^U 1wZ'x/n]"(@UF"9h40 UUK%u]т7 (SbE+kf?Z3-A=,ZɡGo>zl"ϧcȒV_jk9-Q/J`\0_z-+7X%9RQSsSEяTjn~DRq꺪һ"0Sh6z0l[+i8idK<1ޫކ~1  0eƶkɃ њ3?:I}tI~lo~xsM7lظ1zSGQUF];֮Or)SF&~_y%&N8q#;rUafx]zTtMڇ*Z.YJ? ۏ|hq]ET',2k-K#`\Hqh)u}>MT" #s/AH>F"l躑lQUUm0Δqq)AVVzWceӋ.'~~PS߾uam(tM *O(RS(?}}yd]]($:>i JZkjh-8T6t4U5MC/WT0[/ʃ6,⊫Fޫ2\den<=]u #p@?r61df~`R0&oŶuKL${@@XE)GtL wCoۮ /c3):n wvf2B):;LS9& ]]JA#o1~SSM߿qlB9AN34j&COEA7vw IϰaemZ.)MȲgG<W_:e?ew;(A)SOmp/P(pBww6+eK%[Q6͢^i&8 -̺n-KuI*|k_;O-!>\βzz^.R(Z[WanYQ>1Ey5kfzK.1f5fر(}a1̙3gΜyիW A>{ٳgWG@L_>g 0I_o{+iE/H#EA7.8:-FmpEdWQ$P~-n2\pr\NzƣfMӶU4i%㸮̀EAq-ZA6n9l&# |HȒX,m:lQ`&w&&\ooyEo=cƺus.]Hw c+1-W77zk"qM*zόXO(ajitWriix;Dir4x`GyQGU~/G?ZL٩ޛzmSSah(;{ӌ8֢wo0 쫬_?y㏯[7ec54lxU_ s̝;Ԛ5~}};//N=ic,2 aX/I>#GkNx/_|x afOBlz_*ф˻b< Z͉﷬M\  |%ϧ۷R1c@`z:?n\mm )|T}˖DBmm҇Jn&Nlh֯kQJ /ǦEs^:~,9N6Jiĉ]溉>o.^˚6nj͖J"92.)CBk"!\ CPx &iZc>ն-5o;g|Za=2SUèAՄ`FzӒ[xhQlo۟ _,ϙ3gΜ9x#,v dq67w8޽MD0 0P*|K/}N'ӦW_}~)0ڦy-mS+V|+/ 3<4}!>+P#pG;,=f_>p0 nz\]ykoEҁ_p WI1-DO*3u=IE*u] ?iHj|i(,4MU˂亮 yIUPȵ[i% 80TUӐfK%ǑR]Fb#FHAK2˕J`٦hT5&@ 'Lss=;.DK8lYL.!;>~|}}(D#8 /D(OW{}۶+V(Jsc[OS'_}uCC `֍/1iTV |o; U t]M3ϧN4siJYz0LS޷ 9x*)/5 XgWn\SVJ/p~Nz4Nz=3x=Vopxh`w.ͩrIn*/}]ugR  l0meڵ *(lVΣFb~mɤl~>/oO0&HDN: ql[l1%HkC+=$_>1 qnaJ뺮i>HnbYY qXOU4|JPSM?J~.\p¾rΝ;w\a*T7}xP*,[ݖxGЉ~dK"TB`˧.Zjt:4 +~5]]_SˇsUW%pԨ.+Wn4|>P]TծqoXՒkyѡǀ3"(a:`P[(P~1[o0 s]6>A 1B Re|D_hKѐ yJVԗgEm(ᰮF*U(Jq\yz4MMK&eQWxI-r M4{zr91drM30M0EId( }>_jj槩GEU~ePUP= 9իgϾ-[&Ouf?/KƎuaOQ"\QVzkmk[8ǛUuvQFFof蝆;= \Y9ѰRI畮PyR;tp<)A_s,G>^f鯪r?vv΀34l4Ьީ8G]a[}_|E3 0eiӞxb˖Cɓ<O>\?:OQ+XGNxc"s.bm{AnS|ԭ[UaY@iŢmcpCq#J];^e:2OuzQ2+m"?] 8G N)^<2pVaxc* N.ԙ[T5C/*!rd H#{(FglfK%!F`ӓˉѨoY({5|PPlTJ$::2p߰[e]]bG{OKWfMGG&B%7(ܼG '{Bu'64oys"ɓ7ظQT45bM<1y-[DY-۷zf͌7h\$^(J 0ȑ鴢n.(emڴhQ4MzŅ,=Qt}vqNLiju:;Y<%GLF\x<ƲaM20 ʐ%<׿PhI.> ,˲fɒ\nu.?Mg|aaFb}F2†-ȵS#?Msd1ˍ)тltyF_U+}]",wAF_*J(cW,c/ 򫙌ݢ5.l+0lqbYX+:og[LXfQ+$&Z0TT%4CLf2"]Hd2zKFAm$-({dFx?+4l6'|rɒdr˖YQ"`PQGU 喭[FO q]Zĝ8+!nk!GA92ZZ;zabr]G]j>If̾ ӭol_rةaaA?}$NG/[{!@b#[}fmy%_H!/F@N!AŔUrt_rrElW(.bglxd2't%h4oIULPt²:DG{ gUQH?7CrL 5|߮=0 3h~;+y`2B8R>o>MSۊeRi-P3l6E55R- ~<.\3BAdyb8 KZ?ÇG">e:az4xFbG-d.g1EZ&[[+\~PՖP~g@&NEȔO"lTBXuuђNJ]eQlySh}=[[?K/E Yӭ*ʁNZSc_\_ﺊilr׊j׿~qQ9n `"EQ1 ],67 ]ySu<D~=3~+/rXnmY>Tex\9\{|}oYFkL/z :TTuaSapD 0C(* E&v  J\! Ew|^dNu]\>-ޢXtVtLTѨU"ݺ5-7FVZV[[ Zƍ==\8l_( 4By} cv9w,="y3,0=: 0 -kÆNQZZ*ɓGDxcÆL:jTMͫuwuWPF 6nfs[ӟBK$F/p˖_9RT ƌc](yoh\v׿~%m[*G2d;;-Kh `Y62ߚP1(d)a===4-wϧi8az$E,Q-4Y(+ߢh7!f9weIkw+^#p> /<傠Gc(xؽugafڵp! kkWf`5t(ڡ"ܹsΝ {Mh}dWX^>JMWS!WT,+ "'@aR7e FkKRq= PW҃z$F P,i:E~iDM/((ǥ@ybH@6.IuB!f u^*J=lX$"DA]*9DAhIs9ڶ66FB#([Ay44Z6w…'SO]{m4zG*J,(?1\}}m sO6{O=xg>sL(65U(cENສÇGT8jrVWP`в9,Ѩ/""PUkiů9pg`es)-eoAR;/DnJys>aBmɤ`)E-d˄ p[[gmm鴐j7l"6)MMu۷Kѣckm.^>#GMs~{ŢߟL_>jT"ϼvWW"LPW|g?[s>[V21cTUQ |dBg~DB\ّ#c1UM&sbM߯빜q0߯iQ((ÖeTȤ>aP΢(i2k?ӠZzԔ^x6ƀbWXb ,#>aaB :{CVz%K,7n0AQƌQK/;V>ɖ&c__wҥEV9i`8gϞ={l,{Kf"$U 0;O3AQn"ɫи.-+d d4>Z2!TQ\Wi!xlj:],bGp]MKe.6e#3p&,fUUUˋ)a˲m8|8>v*eb6F:-4 Nrh>KL&s@4빜<\βlVΊJ bQCJ*uKG ',YL$r!=tMG;r'}<͸UZ?L_ 83gΜ9s^p… !A{.aa(3z5^ ] 5pS_y*GA G: g|TE@[CL- Bifm f_:!2Fo#/Q0ql =?T0qDBQmmaթjn].ɌWW PȲ6o3Жɓ[[ĉ +A(ֶ}45~U^Sc5k6oN$2cFKK]ڵ[$qw_2>a76-[v%775uv*J*5{q>iiBbk?\xG?z`"!ʂ"@4iq$&"+Uo(Jss(V,ә̄ кuRrS_&uܔKh:)]f5[Br㺶-Y[I_ymmRrC 2fL<ښLn3oWJcǶ}͛ѡѡ(T,fYvӦ _'u۾aÂHdM'*Lmm$o&6ܴ˖X fjG|lVpLS| L0+,àwu!*`4u5ƶ4WiCfCSMnP,m- lga? `rȣ;Ļ>m)4V(0AEȕi4(#/dۄ!fy#**-nVWjUw9\}m74l:bċ/}wӞ͡a<̙5jTS 'ݴ֯61]37-JT4t3o[ :?:r@o3̙3gΜյzիWI`a>*Jy "2x-V54" \ JԀA\8ÕfC!]dX@@Uu=3;| q~i* C\NI3Ѩ yAӤs 2C/v5MUi]W &Zr9˲R4'EMD|LF1a{34\7f[ˊ-+fydK%Ϻ FBPE\c׮}3Xضd2Κ6mNxRCeio~FQ[+B' ,yÛq~{O.Be!~rHY"8:ϗJRɶmB_ץKaz(}y+('55iOafPCٿEo3egX(8-M&3b7MMCa RcLg2\$r3zt]]($;Nss}}(e1w_wY>jL80 S$4X^2;pfb)4 lLP  O%7ȶlg˖D"YDkYmoYAͳY)jn;;Eq -Z]rC-kƮ.QR[ ]m[*8@`Y,nߞJx`cc$ںy(QEغ~bϋ3&\96lاN5fkmGzkt/뭭YOz`8[tvYuuuMP0GQgɒ{?cCULfܸh#A\5D">6(}LF:4H0V^|aa;l֝wUW!7KUu۶H4ɓMsҤhTQLknɒo_c/>2|_bŊ+,;w R#pG;fEv>|aw>W{'}}VzBXc8N(Ŕ>+e x D(5M)uǶ-KJ S97FF3BUlTr_ k˻D"4vZH(`=LX -KׅF "Êܰ'B.:vD>_ʊƎ WںUQ;[䆺C0a`ڴ);6*l_}ӦɓW_]1%u/(+>}x-S67/ގ+n۶-eK's۷KTND+˽>|:]ͣݻE{:]s>5BukEQI:i2RS~?ٿMUlih0o?߲::&Oƶw>Ql̚VkCz_WD|S;,""4U PV/sb8ӆ[Çׅw Z, >n?b- RV/fogEf͚5kkipOfi0 0q>+ nZ#Q7|:̩S;N2L/\Pm͚pӦ+c:gϞ={l 4 ZΝ;w\p .\p!{oP_____.T 07[:oj3z~Hh+b"O5ȗ# mKrX*A| P*ٶJO&#sF2ߜNMsDgggi==L4:z4ˢt12meᡢr54ݝ (rEe"!alVlGOr96yb-+oh0lWzz"h&g2\H ({z\. L bX,2DBL۴qx}W</Iyd^;pl 1SyMZ[{IGyM.X(;[n0lgKаa(G8(]5M< 0> &.X `YgiwG,c1ϲXiRz=JTy*z\(/Ͳt]U齊轇,X+`sчnҶ{W7sTg{ˀ%78ooR^<_/&x 3 +)_[B((<[BVhI(ӒVM3 U|屌6mJ$V.q\.* -[l#QoY#JnPDiSwvkkAܼYZZ(#8qذP77lH$2eJcc$]L&C_ok81sR)-^xalvѣc^ZZ$b1:_*G l~#'ׯ^],.Xp睎sCiܬiKpԴz_?vlcc,v֭+_2ƏFeժִ'<\EY(2K׮f?)S ^ZF$ @@6(--hkt֟1#4MzdQ46z{{:-`C> [|uG"iD6+R0h +f߯TNo%*9_`->TTv CuX,{`,Ǒ駟~iA?LhZ= 0 äR#G^](qW >g2 .bU}ѣߊ|>]SO6&MJw]JQs˒L&+nrOzaKyw^cJ 6}s} 0;^߶QSIH_ yʹ0UrlqHhdo&(Td q{zdqqIYr녂㘦nOJttXLenVT ="\JrͯRb>/vuRm,u]ۖg5$HyJ8mvX(nO8RҬmO ,O;)3[n9ᄆ_m[dЩ/˄ arqrHK xG :ǹ.UմhTQfͺ 2];VU5Me g*I%l}bYRr!ZKӦ-aWX|>YB]*+$_u)Qoh 5b+b0EedŖ 'y.ZƝ{?d?s̙3g?~Pfwa{A8Okz >E*?>>d@mtBͯBُO,rd,ckHOo Ch }F@K-@bZ,ٽL`e?T 1|e}]iG? uE)wJrݯ~xc&L7^{{?~/iӘ1Mrb/E3x BH=9>QP_~*Jyܞt9v9=Sym7RX&,[@NP반f Tww4Z*%7PED==BӌE[m2SuFoӣ;."W\Cp(X=盚R[HIJlrUO&lqM{?_Pߺ?3K$nPSlݝ`ؓN:蠺 g1"dY#Eygu]2Ŷ-{7gQ:|x< vvJEaPwlm]uL;۶㑈 0Y96L${`P|>Qp(Ȩc -KӠkǵF-Ke{V;0D架CFE9/O[\UWx/Ʃz`*2%2B*Ρ`0 (Qؔ*~S%uf5A m!r fEo"aM$r9|W2۷p9*BAU ի\#ƍ zK:zt,mt6tv2܆PȲ6n-TBy[_{m:>:uԨ^ZFP9w֑#c@`ZYҊ^ye͚WUUsoժC7Wںnj֭E}ɿm4w3Ϩj2 Ʋe_b*|>x;l܈6q/{[.YrpYӧݽm[GG,_pl;wkaLb7׿~sW^?v|bg0M]‡-`8,L0qWɭZZ#yWF~X9wNX  k4n(Aq4󕗀í-28M4: 2|&젇p)m‡:2e_i5C_96,Eh7(fEN}jO90 0LuBLX[nA(i7zi~{|>7#Դ?̙3:k5kb3Θ3GQ}wR co^{?fa>=xxH7̎a3PxﷄZjiEX@J^Us9Y| 1 "m;N8" yE8Y)I &==2w7t #驯WtwlyKY M"͖J8:m( bߤ&.03p3n!dyhУXQ4FWW:ϏWScFҊ0ִ">޺߼npxŊO|bĈ.Ӥx8wu%Aw/p@4jY{sUW]twv.^{l2kt矟H᰸ig55@2)cCCmm8L䨪i&qebpX@4F-MMx @uu,y1 ]h\ͣg8lYB|ȯUq e?bY^HR&)6tm ؇Bx:(]HvgUT# Lzw|#J-IP_y45 hAXC5d!BASmRÖe6Hw*9kkH[f=s|޲ Xܶ-0֎__ [![Zt φ }ذp۰SPA]mpt9ѣkjk{uͨQx f?ujss_i*Jkƍ--uuk_osXQ*͙b5yէR,֦(8o )SFƍFf֬Iv뭷wߍk =6|뛛;7kj"uoGmY~e)J274b5|x4i*ÑQ BA>2 YVGGcByݩIf&#݊du)t=09TU+`&TU(`P+Jx+Kື *GKB0{?;C"@S`>0 /L5z+By͚1c,?_in,E͘1bB;:m.i(Kg5zt}WJ_=lG~vwgBiv 7G/Ne諃NCl 0jHr`W޶G8 }\k v-ȵF^-uUKfitM2 ]HhGU;: $ZUuL&;OUmP?}6[,BT|>ol67B􂵅eFe:m)e[+y?X7r-2[, Prf2[(ضouzC}O!h,2 ?}~im 7`04C!y'CC 1˰ӻy 64 1>2{뚖ͦ==曯 _|tz`Y,ȥkdGl*iy~z:6(aav f2+VvwJ&>l,^/K/(Ç=™gΘ1zWϞ}x `ǿk|Bt뭟>v^]]L0/ξ|衷v?>T@OurA<avrXKp3pR+_w(KRui&n:ii <~:'1k8'FK ǩ A\[+~,">\Trpa(2x8QSB45Mlo3b1!,A6}x\RLhF"U:zt]hI&S)t.W,b2)ql۶njihǺ~:_X Hf<8g&155~6 >5~y6jTOO>_*˖կN9K_: /|l6u]Gp)b%0DMSUzQe|ĤP'Zpg¹ NI|devw}x|EK$˂v 6cB0g6}aG>gwl'uׯ_ʯ[ysWa55zܹ:}ȑK/mW\qU_=꫿gFL裗,?g׬ih;vԨ`pݺvq'N=:\^?s9nlFnhܸ#MseLץ+N]]${w-FغaXV6+P~[#G\-U~(E鞄Yg\ND_"fŲ)|׉ f}_K>TBC3}hC :iWŢaٟqC}bo6n1]V8z_34_E3?1cs2%,?_~iɒEBd .K_~ hf=g}݉EdSCsIj:t)fw> _yo2!.Z0+1"@Bu޶eK6[,(UEA+Ȥ,(&ttMƶen.W*!M}U;cBTeŶKKҼf P,&G|/&55XRQQ4.ZJ x|sx˳.eKOO:χB>aՅÖukgUbe'"H$L8F*amƍGm>O׿{lC|KGzssÇt]7M]ܯRXwAT2jTMG+ uUVUyW)T)X ʐaq бe ͑/7d+_/@oe;Sŋ/^L[XB0 7зkMx@WA9][)2,SmOTRMeՕϋP8 c&>i['TrИ fFD,& BڼYx74BqȑPںm[*E%4SUS7ذGHnD a}X戮r3ujss,˫W̌--uu/75:zux#FtthڻiK~K/Z~}>?zt(9N Koi0r&/~qhKK]]8K6tv^sw<ĝw_wJbw8} 7Lr=w\TS}?g?7q/mi(%#GR_ F]^BǛi3F">{ɳ˪˜t -c1Ҭv`F=m ]tZ fY?0#=jNxTK6{Frz roJKn6 pUaT?4@o 2W@s^^~`;~-}&^lk_{i|n$D?>{v>]R~*(V/gu!MMgqahg7߼7xȑ~SqēO~dђHPAغ/w|>]a7״pg_ggx8ӧnT[kYW^y #Flp!kvv"ǟ˅æ(J*Jhqg>3iRcckkGG*uy< O>yko~:ܖ7||p1c6oxSxW]Wp802xe L8==2䯩DdR_[|==^F}N(US##HP4s9YL8_?g.-2 ]/d x -f- e҉3:Gi꺮[.LsՊb5۷sw<%޳Ϟu]]}_/BÇL>f̦MwϘq}vi([ bFKQ,E QM*TnR)PgQ*̣lT/DQ'(jRIf= [ioOE|[ђH|yGG:](`tPṁIX^JșS<==RĂ\,fT`TJCB?DWdIkjJT.W,]J36+J%dkђrŢibOEQl6,+u;H6}7:>ɞL 쐈 XYԪ(K+XGR kP7놊KU6mjPȞu2޹?3$ZqK{}xss>vqᰪƍ&]Nx<'AWp5GOݑiʕ|p@Suu7>PyyG2ܷ)*Zꤓ.`v%7{?:jÆ>;{ٲe|ۻ1ZF(HR˲$ta, 8QájXpHɒ8+R̉e|̽^Uy0BEیGU1ؚ5eǝb{W!i y̓܁]aKȎGRk7G(ք &L|&"L_jB::Q 9[pv6H%v0ߏ)1&Z,o_[hZ!Ď8 >Öt[QxKZKJNYÇO;fmllo6m{9s„|M?=thߺwjj6lqt>(+l삂3nnִի.|ꩩSwؼyޒ~≉#njO>ٿv+*FPC EIB(8v ! C4QZE%: $:'e37a„ &zR,ذA}]D,{SYG:I/1cKN>"Vmٲgs]S{?O~kժqy=k/߼+Lٵ6'x5 ʘ0a 37a„c#XJ~xOcM*e 4 XW` H~P')4dahaB!\b&^HB(#q<&I2H~ww8HP(I&Ɉ xӧRГaq ; >&)DF===H|8$1LkkO3,}[KKnEfF1IzVQlh=D ζXilD\I,1"?f۹ "N,3la.hзuݱ3Sla%55--h{l/޸}u dLI&sryO,˲p?i=neY&~OE\t=nWV ďfBo„ &L|PH$馇jo3f^nix8'9al:t;k֜w^e9FH"qEO?WW' .hhؾaѢ©S?8+k̘#ps+*>dҳS?K.Sc}L0GB;a0a5f.s4eՑ|w`KATڛkrJ(4b@,s$D*E X,Rh͆@2T@].EA]?@X <[*c!Єrs1C; X UyI\"6 V,m0 9`i@.xTJUaO?>'/a"EDPDJ%>׋HD'Y6̞}Yv$]S~[嗭YYc|S#Gvw77|zU̲GiǣvŢ(g|gor]~.\ fg|F"q"I<jM˲ł(7NQ SZiN,0,[RmfXyg,qDzn7Hy9ivՊ\6$,\WAk{L Պ%Yh~PhD@ qGwIC?/?``gLaVM0a}Ϥ'Lxad< 'Azi{a@&ptG-ǡ)4657h<<H ÆZjȑGmmk+"@*OqG*EJSn\.B3jTqyPKK |!ԴK/}e]>_E?0#҆<8;_3GN(-zU[ݻl믣i== wo~'o Fr)..*⸺V%I E$0GQ8J &tTsrΖ@ ;lY*Bt q,.3d"z"i(ieii^p2! lK:D0CMo-Nс۟$GI9̔Ǐ>7nDo߾}vt:ꫯ; ~?y~am۶m۶X &L0uJwo"qUOHY'_w:vlgpBuWL[@^/8gď }ԜL!5/-----?o޼yA?nܸqAZXbŊ 0aķ>bǓ_JAB]>ɒ]WA a_yIh:L$PeT ahTqM3@ E3,äRdoW=F"=n!k;fHk(\<&8BV{zBDB1%}u]ӀCӚG P(4<> .xyM=!q/4}s洶vvB_D"D9K5-X|×.=!C j֭쳟RS8YSWiӜ9H0\,7x?)*F O;۲%eƌ?yΜprs)eQ=>Z5!B E 4˲, "JbMa@9h3b;Ghaj B~;Lk.㱳TECIaYF ̐[?TQ&F a9@3᨟_|_|>?C=P< ??ӦM6m:ֻo„ ?$ބ"}oqҍx0=HxY8!9N!?#@..=g,ˇ^8żo^\ dy,z,{<,?1y6^z̑#KK].U⋎Pׯ-[u# +*"V֔(j͢ESTWrV'IaEQOs-}-`4*˫VεVWtepO$A?r`yih2Ǒ06EM ˆp8H'"$A*޾4MӚI+C 6({{W'&L G+K%%_Og0x<OGGG2S3a _š=>=Nq3DzH\QH`0K& X6p8H~r` mD$ƮP(4Nlj =sE['`#$ 1A=]VQdYo8x|TӭE1:7KÀqf=+J(p_ӦY,>;gH U~h֠i%&]}uEEAD~x۶쳦./uǎ[n䓗^">oȐ3H$ThSx,9 sx#Ddyٲ믹08nذw].jZY&SXa$ B%EY,d99~h =fed)IWxE$Eeb27ζZҠ(X8֣5"ϣ(ExЂyxȊ+;:v&./邏뭨@ @1?9C?aܭ[Azwuya#F&uummv;uu~?P\\\laa1Y,)a u]9>_~˵o_[/*㸎Hct=E fi*|V&˝1eTJ׳YI,a½RmC!ޟ_y 2" (7)= ~/@;2N&$NI+o%$%:0ϱ}&L0a#:mے_⩧b1%f?<8{Yl6I<(,8t҉ʜNYkߚe~{Ϟ:wu56^嗯RY ]) 5 w9w֭~($I /\sMuum-EQ\| &uB;HZW\rJx%1p0X &L|[ =#R5B < W7hatq,y<$*ㆡ==xLGG4+OvY @$DrcIʍ)Ԅ#$妼<'jkoGV#Fl55|"݆n锛ZL5n=|y1cJJCRHI ÔWW_tуyy55 s@QǭYsE>TV~ISSSǒC\k̜9l_~Ϛ-{ݻ1W]]s3",_^_{K>[*;^}|׮],:V$.<Խ{*guյ\Q1r$ǁ ax_^!07jmoT~?\. D"t"*χعFaLeT zh:<<@LeRfq!+czRI{ox&:ykHӯ!0 ]X &L)BO<;[oݺ/JJ@gذ2>|(^XX8}-VkAm…Ӧݻf͕W" T!?GԄ _S u06P*ʛ0a⇈+pL,!BPoFI+EcOT)Q34T;CuVnP{0' 6@A[4^h"\geH@2H::4dUtcEVJ.o94$7~۷s\8miI7y A#}6a7rɴLX?&L0a(-klgCfaÆ}K.<) H@=~ғN*.^}>wAF˗76_K67 9Pk-;JH^GKΜmJW3 5aߚm%0Ɉcc„vjQ, ;Ò+t9AܲsOO2i+H,늂łɞx\Ia,iv+ )B5 bpJX'.r5-/\p8+)i`% P(N$b-Lcڵ۶ׯ[w@gg<麦͞յo־ݞH YG^޼yӧԤR6EuvuvHNptӌ_yiwWUdgϘryѨ$Qˢsxήo(+Hd@m6J5YXX6L$IHqg4/f >0A-NEo}&d:dфoЃ͑H`I@87a„ ?&\[[srfǎax"E׋:;) 31JJIZ 9R'3|Ol9t%|yC/]d|ժHdəg9 ׋RHDMn &Q' DbŊ+V@ CrY,0fLqC{uw3 VVz<6,gyy<睛7];|xWWC~QT?ysl).3J(v8)'FVEEX*+fxs;㏿7y_2++;[JKEb apϻ\YYrx6q =$ -2采Ḧ́ބ OdzdFI67$dx{aIHy QioFk 4jm]P%::R#r޽--Q\l矷')7V$wt lUIN2fF,(p8vEc;jjPt5Sn<!2bDy9WU͚׿'oFӡ_eeB'VU҂(+KQW쳳g:{vyyNXOZ|0(lY9W=e &Mz"^#z"pj<~?ԴyEEwW]7BvcS@,6uFzϼnv|&zh<̎_ &|[3]qL0aXa`k<-@zaAFqULŀrCV%a|0HV&¾0Z PX bx\GKI_yeb1Mˬ;qBKXʓuY84QUA`YOWBԩ[&SO|Yfɤ"y ~'CWmn~Ɩ-[?|0Bkw|P59N.xРsٲbχ`kI21v8,TꭷnWom]Ǝ]L)/4wxɣ0c(JQl6 Tv8vUE?yQi8EE8fSh]..Iz-*)4n*O7 bZ9iұ>&Lazʃ_|y0a⧋̊{Vt+t]w$A3.F@[{$L꺪b!pm6\+4۲;4tB+N&E8XLhṹH ۑ#m6c"X,"'|B\G|ܸR$ߴ; EJDɤ(l޽?a664x+\{mnn{99AEEv>iN$}EWW$r=۷77R99v{^#F"W_M_|;ggƌ>&O7<zzXjzvۍ!D**JK5/5k v8q+Ə5 mpX,ǏU\ D0@DRVՊD$Ms\NNVL0t()l1~!pX,hY`g mYa,QdY(pX,sTUA rv6)Ezp|zU]i,0 Te8UnI,W|?I'MٿqIM*bw;שF3w=EQ՘NQ/\8vlnwVVfelV}aM#B/ee{[ow_ee(D==(\PRm"ݡPu_46f^W>_^U[1䒵kNUVzO\'O:4V?~Ѳ'Y&DSVt6667# 'Ȳ$}YCC0\%I òwG 8]AWZ,#J c BSl6ExcMu42~,yQ$}VAy(2 ˒]@ڀ6RUSsСC6fLqqqqII^ vi0|\BG6["u|4g$X3f  5UU--e|P_e'>Fq# /ݲsV{(jU^˖L<|x"rhr/0mTFTjiv^fDY'gx> m(\{z4-]JӢ1 0'|J1 J,#T2I,+,7CH7I8zۣ_FKKkj!OKu=,1sΠANҥc U>vժ>+--,RhE"/[{sA=-+kԨXaXvƌ/p[֎ΙIy%i'/zbl@d( E#p) @ZxB904m+YG;a\ud c14\ xuM,Ð~p}5iŸBQW暽Mr&~|M|x<OGGGGGDZ&~m3W$}$@MY2 y`H`.2R!oh'1p28pfd˞NlR dj=G@x* rŲAd 4tvT0^7~$uX>*==H2 mb[[w7j;i#G{w& }4}zy CE_QɤR~#F\pf[[lC,]Qۻskm6Z{'yƍӧϞaî] l-,uvEF㳲NbQI)S^}Oܴ)Wzŋko( 'P"JY,"YY. cv\v{g'VJD"ÀP8I$R)fCxfz<Kgg(Hb<^Td$wG"Np"XLxGT7K=UhѳVA9p5lB(R "` o)~4#>AnNns=@Kΐ. <HZSb{?@J)B 䙯mk*&L8IsE)0zdR #=ƂWp&=Y6*c0([Zp'IqЏ"==hU9 mjxcSn6oUU Q99kW}}w7lY7w:"n2T 3s:H&M{h { (E,ygҤ*joǽb6guׄ 99T3zSN)..|睧Ço'U&<{I#Fȗ_ֶp!%ÆVW ի/|Ox"q[|4jrK0LMϧ`^[w٥V ]c('LJB[k^W@@?Pv7bߗի,x+2eΪڜ미F=^L0ahT L9.0a⧀X}_L\Ꜥ#"z 9U㚦3=|1D"a$mt< ɤa m!a!:DXLӼ^qF H$uO$t'2 ((pLIz`CU_X GH$M&ynv.4Zƌy?1 8@"Ǔ.:4;{ɒ,]YG>{vhow:ee}l~ޒ%vm`'}Gegr 'p KaevEnv/?え*msύG r ??~ LZ>_~>.e}|R,dq>_^ҕiMtiiNOXeUnļ(ܰZ,8cxfdgB #8w8y1`s0kmǣ=R""X@s8 ' $%9KQ0ݣH-pȦp2-%Л0ݡ߄5쐚~駟~[1vSrߞ̑e뽣0a{zKP!qG =)08I >Z#AdXىR qx`76h.W_I5$ekhDK].IF40\ssrh4mΜ_?p7wFtnhhn^߾ʦ<˫VxeEES$>0Bٙ^xÇ7;k׾~eeןvЫ||mkC₂V(QTU trzq rs]&$U$qxOY,ڊ)4٪ՕL*Eih)d2'VLq,QWβ LSh2KR8$ڡPrP#kP#{=9\>೮Ð.ڶu⼼3<|XQT.g9RC׮ݵmٲ-[jjq]-mmv{ ZyQZzCΝ[Z[RBQ݈CpW(jʔCwᆩS_xR+6n?_~y L(졎+rEtTOXA< ϋ"6$?-ѱeAPUFy^UUU$I C80VYyEE0\}I| >=WUgx\p_ +/:Ƣf\c*qص&c g\G7d՜~|U?<un5jC#WIbJrX &L|hj7ѓNz]UUQ?RTII_ߚ={`}͚i NIUߖeF 7/?p\vV2jUQ˖ȱp)q?oCdѢ:쪪I(POY&L>'Cr\.~gYYYYY<$tuuu!v E@V39`rmB5DBӠ)t=%yUD̒񱘮z8+MM`<uǞx\סo*9mJ91ZHpǝk1  IyFqMBB>IJ~8HxL  56Λww x-)#N Bgg06/5a@ [n-[#h4K$dh joᆳ[׬9U܃AQT_ꤓ.?2tjtf< +,Z7lض}ٲ37mɓn c1U]'fϞٺhz9Msϓbiy,( eeY9.+@ A\=}Yjc$;^\%Dyy:[,@$ =)TUA`aC:qiK xn|:}!UQ8%55z$lEۀ3 }v}uEi[9 ~B>ƍ7nVJ}~ofs?&L&|E=0"XH"WHt`d,E{F1}E #"q&IB\yQԄzC Uyml5'bC4,UD>R&H`!cرEE)1nmmEW>;{ȐPhAjWWtR*f 0Pp`pi.6njmD-ڴ a̞ܼmۚ5{әL٪?qƌk}D:;Q)(<7Y\tm6MK&u[_ɓjow:7߼喷ڹs8ryDIS_y޽_Cs疗eeQE! &L|?5kkc G–Ëo3@BoZX02 6y̓IBJoa<"W^ӒI"uHRoGsUE4 @$.d*UPeahF-^hRV+6,7Ep8Yd8iHoaJǍYTp@V3 bd2//쳽{/pJMPw.Υ(E1 8a*ʟ4nә#I,uuG"yys穧M;x<+WNte[TTTVREy<6$UVz0xrЂ|iv8,솆5rrl^8G> JK}>EZm6rb4mWV(Bo`UX9be٬,,|v˅|q$zvUEYFw`VUQdx\ nXyEglX,q5i)\VKQxfþ* v$EAOb&]į` *Γ$PgA E4-<3 iXeYN8݇iߏ'G i,̙nQۆ$GN1š88ad Hw 5 c GrHI=2a⧀ 6T)*r/I_jW8(&@cN<硝D:;QLEkj _`Wx; @)un?oiAW6$#'f 6 ܹF*(!OeK8|k2L8EE?~M;rdGEutzfSM; A>@I }(&SuB,|$u!<9V^0܄D>a ? ̰ƦK-!Ȝ+4#8}j07YGcS7oT^U7r(ܸ f.|p;'Lz!r۷wt@*$ 5}s׮-(0aٲ38Yz3' EÀ;W3gzo9w}ӦQE r 3 [-,JL# ~LI9L|39{w$߽Vy̟^o^zߝ׿u׭͙sE @0Pz24*PɆ4@J!;݆6xz|j7&bX,"IХw|+'O޾eyƌ_ aF8"qhN)snZ9+ } 8@8"==<& ϳA8MĤߑ9% C>0`WxٿϞ;ឞ`|ѢgͺŋoN?VoO=} u|TVVV9~܋/rP d2am+=dž|$&LME0vNQ4Mc^( a)TeYQ2 Fσ'8T?VBUDJIbBPZ|߇ǒVQmbWT#Ik<k7Cr̞h49#,UU3+X2ݿ/L<׮.u:EQQH&ud0Y^dpuʔlIڷ/H&]x\EqreҤ={ny۶5kX Ʒm+*5>DǏs8[ki"HhZvӉdV#Fg{曧O_z f۶7߼Z7'jzsr(VUxx~RYZMEVQ&L6,'"Nͦ(& q u8,t4&7VU5 òxq@X]QDbfjűcyG]iAi.bz @ ~`WUIJ&ujdRvEZ%evQ!3ݎ恳 ֐0YmvYyOvu7&Ǎ7g4#ŬzOoGH*;7?Zמj|oYI1qlq =P}LI )6=ֻ9Lʍ <}ʓҿk+2h `+^I:ͤ|"a`vSS0>aϞÇQښw/;-lnYyWV={<Dh$3TWrs[O=t%Kofy$#GZwQYTVzЂoYSl(u=\_}u}\39,\tNDQ=mfΪ(/#E>_k|O> ׵k?/~s-..(ֶ6?bDQfRϣrI,յ8uqC®]>_vպ[ɖlc,C` @Q#Gr —_*I 5 LQU8R/6$!|T }<=p" od[(Ei&5{ 9|8:i&'r틢|32&L|8fA \yR2ϔum-Q{gvU0a^\\S tJj((3gRYl6SNzGp:EGw>THk|rΜ*lYy̙w|Ywoc7ߗ 'MZf_ʕ6͟m׃xׄ &~8ꄞqrHOK&~駟~:`KĶLIJm۶m۶m3nL8Z ޱm(3ed.ǒV@$}a@$^HF*'ka3}3~ #FIm#Y1opnj(G4Te) ĵEQ jr$QdYCdX,(2D0h'q<('gYeYFs =\ rKAV,Ї"@R8DDQ(e*Ნ I.?CtyGVdWuiO>&O2SY7 ͏>$I+I|O:^̓ެʛ8` V\y5lHy"6KXX \e'i6-f=2aD&f m$Ǿ#[ßOa(J"o{HVȈ(!2 3s I G!#dFwwwvo~>W#|;㑤_?眒HoO;: 1}uʿrnne={eCjʼn@Eb/xw |UU]]~I'XxquuCC~"ˢ;e̗Fi ZHQi4'. م?{",xԞ #d$}(-<❣?>߅?Q&Br$Ptv"2't(w*yaU}]';-E>3UK2yOoԗk;eupuhnLw?M|##pw.ך*aO ?D "9"39ǃS DQ\bfH$u<5:Euua/@ EK$%)78$7W^9$@t')7qRbiZt]!.G Z,. $²2媫 X/ZeKcc5jNӿ}uSO]yemAQ-=֯zG(H>Ⱦ*E}O޶׿:WNEF׬_ǍCU-b(QrOUU;;xQE[EaHxnWYFWe)JKKOA\abHTI\y:"ȵ>]D "-[iZ1 '`{yUUgMQϚ0aO_3y+LIrLK}7 E߄x30-,MGrRAK!B qRfxd].ڡ g0:! U]Bu/5-rqxhk۾#1{w/qdGFpôi] ,|EQH4+(r{/'a|s= / ^'TRwv[o]rɞ=9v;|yy.pWbY/)C7/-͵ rl4pX,pŢ(R40`Ff8^UERi"B|^ [XO|zY|2("zL`>|o-;2gvR&~8ꄞ4<u2Vx vR ac&L|1GM<$dzғd ېau}`AO&6 }?I&r$rCQ4}p0 zzИΞ锤\Յ"dRnm6Q$]˳U;͓yy$ֶB^#)lqV5_bvuQ'):6yrA7fBU~ɒm⋎+8tWzI]Mx]T\qTWw0r!]].뭭mmEkv:UTi͚ .xƗ_3f_p׮:3q:].UtnՅ/+ϗ|T].YP(7H0zz;œ/,#;ǰHQT w(*RAhk<dv&I0Zg~)˭l6$T1AhI(F"y\8]O8I]D"LX8IBY|̷r:%YjӦS-{3|\s?T,Xpg}Ջ/]:q)LzȄ6:''_7С>ϘqI7\TT^oai4Ã+O^ áҥӦm޼t驧nG"rEO>yUQAQGQѨ<Ú.ꈲqX g:E1 Cq(J jaд$aR4EAbRaY*+Z_Ut|3fxww|8DLX,}`7XvhѢ^Bc*2ũ!EdT,EDeI/yr, ˒֖, aG#2y q0h[!J.~$8Ӈä>x$`6LDJH<p(JEŠA^?q}qLp{%IvF64ricereeYrbY,xY3 :~rYHB%IejZYYNYqÇ!-С4m›]U5p  xp8dɊ;<8R dz?\#_apa:˪+݆a@+40%{ 7r˝w=v,Jq˽#l9ܹ]`9?ºakQadC}@zɒQ &L|q =TIi7od„:,x8Ȋx,FQ,I![<  tKK0B@,TSS ̡rKdHUKKnEٳ C R>khC><(67fź:,>@0I`H㺮P%H$Hz$Lz8HR8BVA$ŀq3ǁ(<00 Jm0$ z*& KJ44̚u}o3fעc!ƃ_?bͶp!6guvW_oY9r %b^lTU{zqʲ z9+n<݇=yYSXpZZz/p$y<~OG$pY?xR'HK!+&== Xr|UM&}>EI&?$Tfl6I jŞNC5:]i#@j2R[Uy$>wXDBRd2 #ּA$9RW^y'(((*&L4iTRxڛ5Yсpӛ}W;wrC>?\ë&i)BO:o„c}g:>>H}1ʓ.1!=j|^ovw[, :nwmm[G&/;fKdgl@Y>`͚9sy>g_uպu3f@d„ax ѐ&FDZ,:>_NىaNm47<"lb9|ҜQlnED4M׃x]H|`„o (8w ~dQ~kr_w /TU=kf*'.Y2dHvvq1Euw~D1^zgo?QE^ykk#΢(<Մ &~l8xrCOv%ń G 65xw@@]7 HC} ij dbI * ǁj@ cT8,KQ`2Y_״d2Jw״T kwPH`e9>tp}WQӇ ٺWڹS׻[&F*^Z^nc~?XzÆ_}Æe˜DI}tʔnٳ9|$xsydC|K.y_ʪ(+cY'8GX;@񅌈$ $2)EIXKΔeYyU.4(^}kU@y&~`ɗX<'@Ky͛7zL0Fw>dkǿ,o~Iv3\sߚ3S<97&L$}'xcժ^HOg3KQl٣FmG/_UY3f<7B* &Lqz T>dXo w l٩40O|0g<9>d*Eb 0C*LRPGI ׬˥(<>DΟLk rl( ,3 ]^vN`k@ N$$IzϜBƽ۽{ee7v#nt4M).V~X!ִu|pݺ?4n(Ya+4;ifE6ZqM3 hKa(+ Cm<&HLeYuDϝt` Bo~S[ֆD#GW,HD"z챛o~G1~ ꭷ5oڵ^ u0|q:}]2UKJΎ:ϯjumpeݺ>jTccWe((TՖn$#.(zmf$M RcJQ^/HZ ^ى(*'V?D}>]Z[{zytŋa;xƷajVA3LGG8JAB:t:{Gx^XJ,,QdYG<ʤR(m5 j#<0$oA gpv+2 x Nj"Ǎi';*3 E%XrI,&0*[.0 CJaD/LoRLDTGCU{ӦM6mq_}W_}Ek„ ?餷2kڛn(܉3Y,7yrN?{% /@@,3'N\,.Nw::̞=rmk֜wO;?ȶmf]ks))>ӄ &~8jO?O M׃CoX@_Ɣ3YLju ]XUCf,iND"$z==T+W>~x*>#d2ujh 5 Ɖ:0*IӃ駓'uWsseoX--CpsϭZqłnewk7w{Fۗ3hвefrKsBrX,q` "N4"w>ϝ;xC͟?z/۶]vo8phR"hTR)U$ζۡg*$ [:&M;/},q4pHi ):vcxՄlx<43Ln͆}NEyNbp:RA\z#\Na;,8X :σ4J@ };(ӎapWI Fo/y8NqAy2={(r9IAǤ}el&Loº?_y, 7fO!)7q:X EtMWW$EdWU"D"3'+KUtx盚~D!]n͵vnl  2rd~g ]]gݕo!Y{t x$fΜa+ƌZ!oi-7n۶͛aLu͜y7h2^WwP$b!C;:|>9Gxz_kKJrrvD))ζ;:QeY²%%,{wCr?!CGIDq^\c $I}% "f<3LMMW:G%%㇖bIJ&Ea40b1x'kMkkOO,Ie8Hd#,ECx]8ݷZi:FxYfY!): Q©EM$Ly<g AN!|x)>A"XTG5|u9dRz4?<0@JkGtLgz<ޤܘq7nܸXo &~<Ȭz~_ ;uT3'5W@4#&H~&H4 4g„6!QncƸݢx6 ?ŋ_{xO-({s7>3{S2c9&Α s I:zzYɽP_?m'w`[z;e"7{sSN6m5oMzc&L6W=>}Wbo@CRh|fN@5 q:h c`"jMݍRjldjy.8^q C^m6gY*O~nm;7O;oTn3HD =GEEe){&Lx U _}q{l{9_WEk(ggR=>~>̙6D~޻{}a qηŢ((ՅͤǼaJ 7'N*Iݍ߂ZKFvUX _W.*FK^~SULeYS)A0 Z? %h\.E8]C4k"cWsp^bRR8K>urv49 @EED"C^$LD"6z54:ׇ7lx#F78$/U2aNM0ađ#0<縎w͚?!Db&V;c=I/Qީ~5n܂_g|>7.lժB]{r NQfocI]>ؿ`)SM#U4&L_LM0A'/?Ľ}ӿK.Zz'HgY xQR? 69DV\]I&5 '!J'>2 %\@BsР,D ӼC-@2E>#Fl(˕oC;J$ vviowa{݊HX,IJ@wQ|oU2jD⭷xC֯GG9+x =B"l;C;D"t9?>7_&Mznm~bŇ^/El"v;%7D.FQ4#@zX$m6UqH*%%.f(VR)0hsrA}twz9!iBD5l6]O$ CUj ;BoWX ״ÁV+~oW:^<xN޵] uA`dFQDBUFXHw ɾ0^Ɠ`]M^!Sƛ鑯obMGBO'i67rct@;! IDt - 9:?Th3 KсzzwA~ ama!˻wcB]km IGN,XDɒ **ZZM[a"n}>䵣C0뺮sI'eeA*OQ~ s]w_/'}KN!'C5xޢtƊaX67T*SޏL l&i0ۦ(fބ &5$|ܹ˖A* +_vYyNQキiETgX'l?ڭ;67o;'˫j/xqmߟ5~z4E G-FD*_O[78qokͽ~~v7>;8)5]G,Mgb!,Yq4iI$4?Yer6ˍ &2@Rt2:[3m[4Ð>\$<81L94S)Y-S)E F|睥KJKe?3I^:dvƹ(_dѢ`P R;No΄,45<0sCqƠA}Ԛs}o~z#2gn=IX@#RHsp44gBdunA~F*Pea`:2 Đi%d;4&kIvm"%Xn2#k&OQߛ֚93%{Lh#Lvj׶oٗ+Ae%HA \^@ W=*B$K4nǵ[==x*c"h zaÁ"РnRHZ,Qc >B>|x~>jRp0ϙsmd*?f́gwtw9De0w:)'{ӟzzt,?޲c) IHǎ-)qɳM~!{y+Vl mR[;qwmm,[RqOsMaIT+DOR^r|SU494 x8jñtCssV@ ;#BSR&p2ǕzHX MY$AÀ>/Dπ^uk>_!9@rgBAۻ+~K& 0p ;( 'DR'12[nKݠwzxkz_oi&ď&PA~?s)7mڴiӦ#_ywل &)7H$X>3Twg[v 0̺uGӴ(PrˎeyP[kdehb(K{N׿~^Dh*)'/̏2 D.0y:=).`0 4XZX n ].ABXcY8=qgsl<V8^/>')4<J1(ʲ "bc| l4t檫νk'N:rOe8hD;E4yT]F ma)V^B)1 uSz2 6 MKQ}\C1LV:NimLa`O@#)R>ĔHSEhu LR xftvF"0bȖ`EZ[15Ç w8Phb1ơC^ДݪZW +)ΝzݡPe;\}6iM]{ӣi2ztQյ"G7Ϗǝ#]vMww$BcyooGB+Nx/?[Aze/xZ_{|Vk}=GLlJ$Ps옞jsss3:^m47D==[x0vyTUU[ZY f^CQF<q]48^"yyGӝ0^(q<`B)ˢ<8R} @s$1 9fE=BX|$t<x=H$bO6Е,aJ$ݛ 0ARn@a/;X%|Ĉ1c#ֶm55}Y0ađ+gӛ0aX/keJhxI&u04 Ǣd2$^ٓמ9LR@ @twuj1XvuE"(93g<βd=U2O$t$ɤ8xF2HhZ8|Ϝ|]]Y׿!L&96pΝFy9`Ik׺u~SnW`qǽO "UUӦou@[s8eYܙ>ZIyBϋ"WxY$FiAYeSMCpWF1DUem6EA!BRzBOlhKеgKb$IZE_9,K^J1a`\{,r5Kl?=cc[oˍ7wyȄ |#=鄓p~A\KY7aCf5g}b@=;fYYԴT*YD`)jۃtB$N$R)R) 1=+bF\q#XLӠ KX0/er nRӟ%.+(yi/~q%:?XquzvNQ-HTpoϞ[o=((1c.ݸx^b+ [> ITaiQ$a M3 E~fF{g|PURʲ G EQ.h`)Wjv6_ᝒł;VU04t?4"l63 M[XJQƲ`XX;y_\dJ^ vROv|ЙޱO?/FAy,@Զ"yzxR5={)Bhi_őz2a⇋_s5\s coA|m۶m6`ȧp2)7XcbN|!"<$vԡSb::QBjdL&%W[Յʻ'=P)߹.,ԄI)$G!r}|rewܱy(-eF|Lȴl;;1rrl62qq@^#E w=N< >=VT'2lgYq[u|7 t_C)ryhu` cHd.8SWۓܛ9/Ckj̡tƌ)*Boasc)S qƏ޼yKLfS()x~Aϫx1MCMjj&NoaTbqi].TvY(-x$ òYYzxygVݎ"8fDec1MKHAi˜1>l]@ Ud KyY6;n.,qYYB-;V+eE$F`h,Km Q e&aT D*$ W*:0can[OH Z]{jН4"<:}:xLa{Et{Ģ9ѝm!)Bhkޙ""$;KMazTf:N3Y͛7o7a⇁}冢@|lT0D@ aLr'3 q4cM,hТ6 C C;qaIq8$)rI: `)7(2ztAݾsg]_x ~ӧk?1oގ`SWֆ(:=cǓOΜYT(uE]cǴi 0p N%% kW}=Mz{ yrԄ#G \dDU pHcىraө(yW-Coj$kmA]U@'(z-Qd-p Q4g< $>=IBY2i I09$٥)HMz5 ᥂@ӱhloA^)a L#[dG HI޾Xh|љ"U`)@afEL1)7$2BB3e&cބOQfZؐu^LH4wBLwȶVG`v'= q1[t 3Yϙ9>,:5f'ܾw$QG"svґ\睷oߞ=;wQ|׭?{~Gȗ0a⇋oS,cc7+?(6O?H`dlFWcٜOwq}fKhx,"8UaW{'G,-W]sw;3r8 =ӱ@{>g 4.pÒ{iW\(wssC(#O? >6w ,h D;'{fԱcb.˗/Y`3Lxr5zwHAƝbAZ3a„ &@;@ޮv.!_ٽg#r֬z.󎠾;h_y~PHë N.o(i. ViF.WY@L&1Ͷmy(d뱯|8e2NJR2Nz:ݽu˖]t]w*˿2w& |2NDh{%ۂpMc BϞ{OO }2 ?;np_[[o=[IAԩA$*IEgg<@.&/l]MSr9y:\h(y C5?e(,+.pAVg|LKq Dk<23t(IP{q# S~^Xx|1zww^>c?sXfbӸ_b/m$wgw%zu=`: A<>~[phٖ>}iu#rXXpHsp)ac#@xm[,JpӦpn@fǽ^U|U׫ikJBc1^jYQv*.-/w4m^Dp i:'#rE}~7n6~6 h>; /ٳoo{N; ӆ3ghWLw?uq{x㧟9΂MQ6mڸ1(imjJ&J65U6mjldkҦMYdzm[,Z4}jo ;w4 &L!E.0WxUݼЩݰ?Hon55q)T(HRSJy$a˥4$,;k$A:/ut /׾(& . ݒ_*˒1&n&I0\r ނqIE\ a9\0*IZ4 vnֿ9so؋\%~ϮA8Ag%7 9s̙3q$4`aYHN>'bP_=ԬZCv`+V̞ѫ \~><^۷|g>k65i3to?hѥyAX *yK?ҧL"m(AjU!SD\dy xf 8ϛBn?h[qqYap@hD Q{d|$I!4 hj:ɓS^,p=#j# /ٳ}o{N^4ygK5k^~3'Mߺ_Z#neQt֭m\NU$&4\jE,ͽX ŝŜ},INNVMΥ#0 `AB nM!Eq+HM -U[<<<\2_FEYL { {޽ JJh?`mؚ2+Ee-Uz&Isq5#1/W_VXO( wb|b&bcl+ 7{@jRUڳA )y ) ? G_p 083/xG'~}m-)^͋?_P^{ldI|_"<>}^~y/;B{Ͽ>H$z!|x`@ d-^bE)J={>e۷w\^v:,\Қo={/X}{ q;"^SBBv'{oo*~>߇+˛a~K;$_~Ylx>bĨQ^kU2x!`Gl2М| qL@?f̘1c=!9\DkyO$g29.7H\@pcqf4#^]~C4g-өi8BIb1g tj<΃ CQR)~tE8ө(t۶+V]t`I =7 B,vrܑ44Y3cwߟNbpgUhSӹq9Ng,+Vy-̚uߦi+ł4^`ZV\NZTDEỜ^%<~cv]l{+}<1[%I$Yi6PRoAtZnMcNYkZ<MS(ΆS IJŗ &¯GqC/)Vw(%K,\."m¿K0>ܰRsdYk=[y<F}X*sٚ&/!(JR.2-jA*$!sVU)B@L#\BDB e2 njm( .XU«d6k~?/VGBSt098~4i]7C!>pWTlZS3se+Wr2m/F~{acUV\ BW_iS,>i'Ga +ee+;ۣT%Eq-8'<[?-$9l~,ko ǛmwXίsxzw|0銕ρXuw-#} bSEL7+opA` yY"F.г)b-۶EL S^v;64626m^Mþ0w'\S^Vr uKPNu<@^mh>cvVxuN90|<܇{ouuVAƍ>c:TVVT䓯~͵B>cNJ Iڸ l -L0Jzee0rm1MO]]]WUUh41  Bm\F8!r:C(__H 0ЃgGhNQD!uJ ^ါ ~GD QL$g8Ђ]bKC_ۭJjA(ә { ͂o rG;!#a U(œX_z4,8`Ov.\> 梘/)>LZXڻp P@ORp u'g$4A0;w #s8xByT0 Ce&BQ,XB 8ϊWBZSË/!ٵ+/ܱ#M! ks 躮۶-+0ڷ%po>{d]wс{ALAg̞=m /LᦛAӚƍM۰! ۷S`0dL{BX FEA^NiBs8:=SQzo0^ ynLVӸ%"`}.pn+ BdTn<S,"CZ ` \Q$sv_-[As.]p^U% ~79\o2YQT]eVph+K` &X-÷_xKwmϭ՜W h('݌\׊be}.5;$(8@K\ jjJ$FsFiF" ˬBH1!|;v:.ҥ[hee.ś6x s86lg=zTUyKlC˖-x6˗w0gιn>sf۷ Bcceen7՞e|r?c '$Ȏuu~=s64k._uk<΂0:UTx<775BۚJhasfx\\.KU׮e~p[G}̉Iv˅no~NkMhl~GSo*8 s9܁_MCrB![QZbz.Գ9B.$k>dt0o t&d~/jwڷرs#.%પ(2YϙDoM\˱G6M,r뎏Ca(7W\jߢ-_S/@),{^ODB=A4;v/0g7'ԩٗ]~ 07n\h„ɓA:v+׮:[7kذE3W_ݴ^ľ5zw, u('`Z/ӄ!n]ޓ,ӟ?9p`*D]fE7"T4NUeBdRA-PP wq ZYs\`)}0t4۵ V@ =qȐӽ-[z8௿f>6ؑg͛g|^As;"l6{U2HDS' |++=ABaeǎ坵XyȻCy+n?_QĮ2 hR=k5QY`l޽^'$r@%7ՁӹawoU)Sd9矿-[v쐤C!AظqǎDSHd۶giAaG⣏>.UUƎ] Ӎt)+۲%FUUӹuk$J'0o[%7[lM@r直{0raөiJiB۶u:<*y(DP D#f2ȂcQX˷TRhT [=Jqۭ(Jq s5*Vy͗_:mNtwР#:ϫ-NIeFUE; o]4M$ dfw.2<#텵uƮEE|֊< `#?nn_j͕ؔҟ O0-}~c.W,6o)yahU+(;vi{|ӹf' z%ӂt sϸq] |EGݦ1y?bov-S{+.]'ǏgM{ٳᇟ}Z/_dzGf3g_|C-= Z/dG=z薞؞nƌ3fXzի[zF Ç>|x)xjGMsc_K`A\&w~Z@bT*ey\EUAcles9TJ!C_e9-N,[}c1o+9Ӽq^׹!Ϊa&'eˈ/}F>찗_Cym]w ¿zN?h׮{i߾SΝ1[zA(g[z.D~,Ǖ˙}Har8E,ٞn!Wi0 ŲYӄ"x<1M^h)#,.rRle啐 9d۶F"x6 }oد76w܌>ߖ-={=gWeeN׫W;ewBsSAyKn> 4MƏd2VM Tbk>J o_VvöYnYwm0GdB3Ly ˈW%)NS+I6QEg ǻ8#XKF)$Q.sfq(BŚVh>ISX}8>ӭRbvWwv- >:4hРAZzľ%4GApf-thI&zanCت &CDqxoBȰys8 r$ v ݴ{A[hojk+*< xQl^UU^Woܤۯ\i/~-+{ѣ54Mͻ#|ꩾ}++E>X _}ԨaF⊎5mPHQ>h˖tWb>XXnʕ 媯 L ڷTwrY[ 0)TUtF"4{C2kVCu4 x,+iFi:ip*΂N|Na׆, [\tδ4^Ђ{& );"ЊwXN hݹֺc1|RbV\ %E^Q$)\s~B pVz|EQDluh<{c|1y }$2u]8iuEvF5jԨ]vڵB(~ݼyĈfhMsXEih>>{?!O_znh4N;S`pԨM۰!0;\OOE`J?Ъ3)SLҳ e.ŲgV{A<[sp(0?$i\\.\.h^@3r5 $7XJF;ryI*: - @Qt*JϞm0OwG堃ڶ%N$2ev޼?2-[曫=F<ɓ37=v:Ɏ;w󡇺uc3-[KT0e9uzyIk0jZ߾:F}$R|N'Ȳ$UVrOwp//2$ÚB.«JݻWUUf z;Hq+|0r) BKF@(b 䯹WKv@<%jX4($Ii4P_i*I[lܸvׯ] =v}r,6}*̄} DE2;O-/L_| h]P@OBq [7؅`'_ziy,ޡ}ֱ@ ~΂oe;ͭav2-c-VP6iruXSs7|Ujz3`Ӧ_#6ᚽ/Oᇐ;u>_;΍Ph;yAozhBٶ g%Pr֒PR)>38 :y -MMBX;^}>Cbt4!Lą୎$(ęNA;َWڲ3&MRd;>;)SNNw^DP,^_l#2e,uxIVOAл݊"˸ e뾧3s////?c9x)"6gY1`7'kdn׫(x˖%d扖f׮ǖ Aāe Yp,?[oϐA L04pirT \yye,K6YD|yL:u N"/uw6m|>h L2ʐӧ}{V9گ_ǎqSO%ڭX1b={NVUoߞJuS˗?a,Y^x!P__UաÓO;e!>pA>_.76b&|l,J(6x4ov؜~KUINzEYŮ7OP{<(R.];ߋ"dEXUo(X6m|>vV?uAE> ut؜Aͳ0יHRuu55l|EEOYI_pVX,RT%wx㥗; 񚫪,㌻h|/>p z~/ۏu^އYIB e |M~Q]~cu#9.-\skD8̧1d\<i@Bq;l/uu%QյkwH$@PE>PLb|QPG*wٲ͛YQk͞]S3u ={vXc?mZ"?سWĉ~kM|].'rDCe98`Z<33Eqժ&6C!{͚Hc '.(Wc6m޵k}C&Y[FNm\ ljAQIھB1.WX3 3]gG[x<`˥(.W$Yf;ܥ#5f%4fφ"SN6V$) pأPUky7\(7xmowYX$axp [+X=μ=!ɲX];DmC+UZyU87zd4oy=^o"px3nq˖޽}htZ?~͚L&4B:gy]ݠo ؗhu4ޜ$mm6YSBxBFȈ"T{>dXr0Ch =< }U}I3À\#a,NKuZJc=;X=Qwݺ5y%KbڴUFPUUo{Ӧ+ɧrs t55]{m׮GN$My[gT^.Ippy dr! z&e!Avd]% ),毂@7|QW@Z[sћ JqFf7sKf%aϭ'7W˞yK\ &s9|v X Z[ϝ]l <~nUާثڠ v8uMA! sa41A7 =䀏iL6[8Hml<眫J&5-4iFw;Ϸn2Ž+L9E> 5k1 wpc ers#|\'#8WUYF%m/p8,BpJ&YZ؍֒; ,9-pa:\uf['v7G-lvvx3*)Rs({`O pD´֧x y/@=h.[nͿW^s9Vhr9w&l^L4s9\Ȃbŗh*em]K%IAa 2Vz cQܙAxڵky 8?TˠfJtj.7jԷVW[w;vx}7eͦٻwNee/X#G~ٴi0ڵ]ty ={>_E, (N;=zTUYxWTgar0Cx鰗m׮lMKQ:w./wZ*˒W9^^ 8| ^өhj$*gYU vIЂbEQĖ$iͳ5Vw]gt[X*޷rqgynKoej_V[|p^آzÃ?[ς d#5g4_(l @96-TAF('Z$4W2a ib_y+d=iU!kl+q֭+:^ %!%=]˗oƊV;v N l*+^M۴VUywϧX6f#t}NW3f| Hy#G}ѨqDž{(:^p*u55vK(>ƍbE4j8_޶m `ݷm[ܾ=e-SF zR\+xUQt=^ tr JN쇿s] ;/F?ͰϊβA('bP9kmj7մ@z0];Ah_ůzՓ&mR^ޮ6BzEqtZ̉FwfwUscsv̘СSΝ[zvAzǮ..iNpvBd(@S>\qe::8p2 a-aNо'٬iz<\!]E@>s8R)]7M,5\=+X7v,_~|CHc, ‘G~Žoqiz<о}0r 7Ԯ]}M0s]t?L7`@ ]:x\W;ɤѡC0Z)˒Ծ}0f`%?)( e.XUWLRhOZ,by9$&tX N&PKz # |>PZ 8AJZ WþL`cupEXymxvO2\8:ZpIh(ztEK}{6AP@OرE$ߛˁ_ d2\&awyWx0D4{-[۶qy (`ךn**n+ߥKy 8]bl0 Nzr?>xk.7-RU]裷mt6x:7x}.`Ijj#LyLMS"Diϥm@jOvfuBtr>áiYt*(IUeYUFdYUT f$ \@ ZsE\i.u. $P|ɍ,[K&Vw*(z6>Hj r9.Pp |ͅBd-cGUUvsWW{hH>A6ߦͻs!q/e& Ϸm[^`G9ko{̙'KNz=y{^xaE Ԩi56E춃  Ҡ =g-)|\g%᝸4%)K}9xR)˦?>"3ʴ-W!K/}s+Ezo"ST~Uu:e4EmÆ8F<{oydpycrI_R^n6,I"0r9pUv;55[l`M$7r |H}F"n7REzU|x `?;u0Xbc}Iœ|w:a=j +LF9djckn(;w6UAN(COD3\w]^&@(pa*իڥG<޷w@A @?~] 7H \}e% >=дDسlذnڵ/X-= ס =q@R,ȵ|1i&ձM0r9>gUl4qbϫ$IB r`[Drݺ+BYhUC![ wr-s^ş2(q&:^$kI+d˝N~JU¼iWt*ן}ak֌ӿ8y?**D:*|_ /B||iybG̟ΌODkz /rݕOJY.D=YQ,/d^ء\d9Î捍+TI;x)ˢX_}};>^Sn56rz4ojkޟ~䓭[=ZQzZlРڴûuJ4A&4|Yv'h?p3cxᅂN=zb.wI^[J[oE",iFU%.gg<Ǟ&2MM$+QJ&cEy}X(W;v/>tY˖zSO9衳g? ~o~?꫏<-Vuܻ{7ߌ{ݢ(\ F",MAĮ@z^R.k-?f4dw\rÜ .A&nL4 K4fMsg.<1oD"JMS }>SQzf*@T.]<~mpƍdyȐ/dH_)/oFz7o^{ج|@멧6m**:;d,'UUΚnYVr)X`V;ۅx`<(Cʲ) !<ru3Ƈ׫i\r^(I.I« .\%4ϯp$ׇu2$Vw^ft i ӏWV Y!/d$YAPn }{au˝ X!1so(!>G=6ͽ.*˲}a۹z*E>ux֯oldjv͚ .b[#^Z;?,8ز%XOe.z۶߸1c3~u׹\(+~}啿;,q*+u3 ܴ)N r8 2˳YY~X lUU^sySQ$ ˿VU,[4I٧H041*MMD&i|.R NX%7"I?wp CE٧r(b9 kp;[e9nHvp-˒[in JUY=o",5oaVOǽ 뿊s;]G (In"[P𤴱p8m_$2w}΂Zz??_~w-ڵۺw8pú/~q:w^z2haF;w u=|l"aaOJ쬋8,4~D|Flb=Ad);};Ҋ_..e+/uMv;7>A e"6{~xX`i,# ?&(~/,qrI,T 4GGwǣrȑۏJf ? Ae2LreIǣi n9ٳg2O~F^b#?p++}>M;,Y`YtEKU9y˥(*Ilΐ9 dB!SQڟzl)nMS(n^Xî )E!;FPUk(󙇫"M պ+\scد*̸Tr=v݁#0 P=/=U`fjrgWYks;}=KwAįC=Av}w -G?XEEkkM3WQٕ+ CQ0%AA |g{UV&h5γpGzoC٩W $an7dr98 {bt({%X&cYmF~zyw t>oUW]TUy{O}{0t1Ǭ]{={Ge^ 8X$r꩏?~x_W^z۴\c )EIKE~P3s.߰VWxI`<(oVxNju9ư8cu>F(i$Qt:ߟ]uP+J2Ëp7W MY*>b墵6rk eܸ?N?>}>d =q@#<A I =Bd AG0ML&3@#P1 ? B,prt-D¹o#y<|xtT<@f?[NErIˍz.J#Ngn릙f8 U$sܭG,Oa:[!СS.]?u]R@=APuVE]w~[7}|A4:mZ2iLB~dzxà6lI8G[St_|ӱǞ|wߝsΨQ)lϞlݪ(ܹL! lٰa7|yZ{`0s!ط q\Ql8-ŷZ„Xn',7l2Ϻ=;"psBXh8C(rJ0xzozu*uQS_~ zG:J)J$kc&o jE,vV-]z??q"__߻w~_=v+e3x$I'IHIZ++S)nh9p!nUepswyhXdbevuP+IAy2*C}yc 8*wa% _Ж/&U.{c{A䦰{%xv>pCNA7G U{`_`{,0 ~#P햤HdȊ/8}s};^~9E* 3KS׭z/2d/ѣ#U'FO<ۯ fJܹ>ai輡?WAn[ Uu?i8WU}_Lҹs<ޯ'^}-89o۸q:h+=W>}otbtL"y,kŊvWT;#{ehZsyos/~<["7555-^`?67¯ tRz8(,q$0 Iq .E8v 7!'-{dwEUUd_~H?aR~M׭ݺrˆ ='IA8ן}{>Cx׊C Æ>|LSFclVdyB;$I= L;@{(4MQr9~.y3<6Ȇ2Yf32\]7 vëp TUQXy+YwQB^<x r_euX_(n~ 87|Ǿpՙ&2Y\]gȾ XЂ*VK~mx\" }^:CY MHrC & '8WU(/YJ駱zףv4jT"(\UULNjE?/YrO=5~<46tP~?x5cT*Ѵ\47mrx\}ydܸn䒡CK_-=k Bz'9\8hL =ϋǡǃ%0 ͂mZu^v/ZtYuu\s)СPPvԱyWҥ#PvmEȣBL*U[& N˵ysyyeeUa9;U Iïj`]SQ<k(r$ \S$IZ T\t@ d\#[\cH$Do߸c#aS*xtP>R4[ys5$=vWx*|yY[ :V .ͿgQxE0~FLlx fnƷ ެ/U8Ƿ f_D5APh+ZUVu~)6yvzWUA;1\-Z0&NP:c;:ti 0gΐ!uu?dH}&IpDG<ر75h_=~0uÑr{G"Rmc}A ouAغuu~e҅ ]}yo{;9[[ּgẊNso/lXZ; Sq#ADk25r ,dq)!qT:\25 %N'ϔBn>eV *;4HFsE,޲E/.cY.öm'Odjj.;^G }>C?hkŊo\nРAB!lݲܹs$rz6i v{<]lQ>$I>_Ȓ~oe/X0e_lBn60+ukU.e{<%EѺ,ZlZ`˞61'6e|~DΩVk-*1(6?o`fZ OYK~E;h:_?bݶ>Gq ZV{(n_{\$$XbAl, .MY]w'4Ynl%T,wq:EqQl(r%bgKҢE_:=aʕ~9&:ӺHr8CF\jɆL d;Ιᇝ:MBO>3,9+E1uW}>C5-L:vDc1Ms: d,b*ɘܹ|'-n;9Uşx> [st8TUq11*xUEae 8dGPpq*kjƎݾXs7nΝ}UwӦ{ΛnL/7G|؎|ժPLs&ADe#>|3f̘1}ho9G)2,_UT:oWll<#8@@-ZR?3 e9V>r˵pimzUt)̗= ;NL1/̛F6D**2drv7ǝNx|vOSXvN'xރxK\p ] |ϽhԊf1i,VSP*Yj1[5Ҝ nu9}(;w7/w:yѴρ ϒ2AP@/L2eʔ)-= CV~:Ӽdxq.g-s7o;9EL&fÆ`Uvڵرs3<܋/iǵk#AAC=q@A#ΌBn2řW;g2a./r`ȲݐŔr;{Ar\pa.7qpX~DB'J0ڼyDܿMq> ¦SO=L+R[dwzU5MX:$Yv:N:$xZKT!@7çK"?xq8#|%h9qwf N[gǏ)]lvv{3 Fe_h1 7_tۼӼ7BTKľEay aBRhC(6 4HQFQ^p5-FS)//+x4-cbN[b1Ynj_׭06/OucG>wPSxv[6ϧi,^U7F++XpnUU$(i"8ȃ0*Ÿ.(9{S):(.$az|DP<>ܮ9p) `iP kw74QK$2vy:!a_y_Ůd:\ag'x6|kG(e%^J ^ܷOL/ЪbSN:/O?=qw/_dɂ-ƥMM}W}s! =E+ϛ7o޼yCzիW.Z&L0a„ӧO> nXpY-_ 崹?CqK4A/tD._)]rSx%vݿ'}ygW bzO<O<N8 6lذA{q@Q͚5k֬Y0ܹsΝKn9- 9BAS)& ±B:Fs{45SmjN_y4t3PsقǣilrGv3DB+ܴ顇2XjhLvx45tP?xUcƈb2bO,MwϷz?Λ`mmmm׮!^ t>唿 ٚX.!OXKUphU`#N(?`]`8/vի_SM{}e,ځ}.ǫ Y% nFbW^:K;(>¯Fh~泳* yZrR3gΜ9s&Wϲë#h0rK_kLÝK-?3ϴXRY민ң,?TSiodМ[xX25k}`L?\X-6{X^g8ze#M!vWq[ xlbǴV|v{wgudsHAMZ]2G?~W6c`2lYey,+!_~e< C`>pW{4͛njj;Ø14E.9i$I4?2C(w۶<ӥK"ѯym2v9A!<φ ̘rɒ뮻6]رK=El6޾=,/dCO>+$C=_butʯlv ۱֜;A9s~U.8^Pv]"(W~BͽY~BGlNvb/B-6> v.C+`>?bWi߾SΝ?yZ>`W_:GZڴ? I&]`p"xBYbRMر^zɸO3gߵkвqxikמ}ȑ4]f;uŚIEQպ`ە ֭[[z.A;iuP( J/- Fnk@&t1%܇arp`z\lӦX ZwuTUIZsgY&]`pJEU 9uIu6ڂr.ۡȑ45]w֭<ҧu.&F"f`pÆ'Mza{BV;w}MOnݺkn>䭷^yÎ>zȐΝ;wܙ͑u'&LO>ݻ_=S%I}>9g2< a.ޙZ|w8g幸~K9/ҿ {COɎvžȯ$Ym%K-ck7_9z!G,^ȻAVWnj3f̘] F`>+5 dŨd!XO2=LFZ=^ᆱFO9 w"\_H$uxwd6#leؘHdN4oGtiGu$KڿUUafLl٤I/Ԥi^o,JF:&鴮'a^o"s:scz5W+V\j\VN:3*+۶ \L@)q(wXxdWE6khNt4ZGta8).{cqﲎ}]odZ Ӵ =X!)} o7>f}ҟAAQ>m4]>f)gϞ={]}BJȞbKQeY\.E,MM]f_x<ƍNO@*0ĐA|t]$X;vd7ݴ}VTBy Ȳ x6[׫/?4 >w8DQN>ggGA5S4Mڶ$EaB$&SL0HhdZ*IֽW9]xbڰ"S6~s{kqY0pEX[Êb[ Y!oYw,"*v=ZKA*. jժUVlz,,w׬J"L0`m+߾qa45uJqm ]?%H3t\[C=VAH[~'Vt.6ktzȐpX37aO?sϣf  $IaMd* aF`PO<W X&*ka}(iSðrX5E Ʀ+?RBv ;Ҁ{re J* H$].QddPwH\|m76jڥ&NeiH׋$Ayh*e-]QeO=&M+0{BLQEUi{ .]Fۼ+oA 4t ״˵۷Am۶kj]VD\mVI z[*ޥfwRcf`ﺪ"Iq>>A q V'Q4ί^Ϳoɒ P@OP@h0Jy0V(ЦM2짟B(a>8G#)좚͔L3^.(65=Py }/n.Hӹp:<ûb>} غu6 өiN#B[]]__Wpd 8'(("BMSUQĻ&;!8`np{`|{(X%aE73O(g?OSa>|E#wH,"`yw~Dr9c'{[B;2O*xI% ]]®ͪ<?zXLQ;n'rWF8"Ynjo6}wo˗OKfNpCC:ukYYEEK(AA{ w 屢IW4s90 /DŽrxŲTGiE8uSe0pi,Kp#2yc~Huְa䥗СCsϷdɂв}WxvV[ EB!vD~557o ϷmkӦm[KӘ[%1ywr+f}cj*AA^Z=q`B1۝Cx<;E"W]ܵk]](G!n c/pApeTu^{ClKcǎ?ys|yeO?(?9!CmM<' i>xxsb}||ָX}aA<{d#%ϐ0ɺ<2ΟُϿC;Ao]8h>tU)IP}} 빜(>qee]HRc74YLqǎEU8PL>tՂԄgaDۗ-ӴGncMA=k{Unݺu4~|CQӝ{:">ߎ۷˲aFCCuuu\0nuȎK/H! Ι*U,:|u\N3.i[dYQ9~&LC f' 'ZhMM>_}yA(=>7ߨgM>H>7Yw]u˟zG%?㌳nj9KK9bP}}]]"xpEEeeK.AA-e}gc)b匬eI%I͛GYdK|P.s8x6qy%!{o-HF;`4Cge(MM7|5l`0F'Mz_WCnDA+qߒċV!Vۚ_[#v;C;β0jq]3=o] 9+U\X%UlV{!l!z ؽҀBÇ>|իW.]8ӧO>B>h|K$@a/tzZKanAhj:U<N)SvS ԩ3fŒÆ °aG ^3f@3X˰a{ذҎJe2,wAرז  Glm,_~_2ѣG=zWnj3fӃ=}]vڵSu]׿x<=}{ /?  ul+Aw5cƌ3f@1+PB8=5k֬Y |r0rKAAѺhu=ݡ|g!~hP {uAAQ . jժUVNAAK'^=T۠hvZ]VoWmк zv('  VrmYYYYY((sh{ ctm؁߶&{dW*Zj4bOp]-}`hEVD̝;wܹ$(\q.-ľ](]`` X zш=ǁtowk[zp/RQ&7Zz ;Poע_me7SL2e -8|wш=zouҪùop\?)gXgK42еaweM_=M)Nb;20f)G,&w4bwq`_-} HCρM3K})d}Fhɕ% ڰ79&{Ǟ~d4шŁ}ohu},?(E}?w_>"]{D!ڰkzx+Sʚш=́qow[z }\_޵+$lڰkz{ze; 80n=+Z$!    b?z  ؏~⊀#'r)+SܣZhMvhľƾyo78~UJl~ =} w?(2B{&ш}}jٽn[qA>̘1cƌ>#'r!J/5|FkWvߊ$gwm}zш=ǁtowk[zpӬZjժUF5jsh>F(=]G,mD!ڰ+k@ 6W[j4bOp]-}`h=NAACEAAC=AAAP@OAA1AA~ AAC=AAAP@OAA1AA~ AAC=AAAP@OAA1AA~ Ane֬Yfjsjv3Ÿ 7o޼y~ۘ}'bz Z-=}ZB̘1cƌ{A ѣGN8N8aODDl P( ZzRkz 5Aľ̙3gΜҳ vڵkիW^nr 4hРR x>' (COA%1lذaÆ͵x ]z @=f̘1c } VagJZXW/aW= 8wܹsr Cxo)Wמ^VR:=aeJ A@=AΆ; eBp`) t!*>aD8Á bg7 s1*rWV9s{fzǏ l~WB=m(嚇s/e_3k+OND)P@O.QJ p)>~ ĥ/=T- Re)!I)!o)+`3t> oxol]) {u&ֹ횁v?/h͐ @D@(.ggہl4xku0r)s}:®#C3*]´+7U_5rг5of(.;6 ƮHn D 1qY}#]gg33\~ vKZw,BZJ}p0ǁ[R dwvO-)f Ի~ih͐=A4Xv2B@l!5~{fϱOq ~Vm޼kl„ &L.ڕ~O-fO_3m#6hY('b(_ H2@p_B={( %"ajDKޠwElcgs A ^@XzP( wB, aanlhҮܶ=^z o' ovu~O-в A{ > о[_8loʍpRY'Yah)s;KaJ [n~Op' }d)]Bz(E\kvt$D]8,ed,ړk]x%apyϭ-f_3A ('bg7ABSpyv(ptNpg)*%L,J0O.V0l?=J{O޼fثY{ tv_$R;<K rBgW?jO/śܾ2>C K.]T]` Y ϫжVŷB+~uk~-hK9߶A2A@(Sj mY ith b^:W #r7Ϥ"ċ0C<~2XүqOl(ؿ!oiAA[ =AAAP@OAA1AA~ AAC=AAAP@OAA1AA~ AAC=AAAP@OAA1AA~ AAC=AAAP@OAA1AA~&| endstream endobj 229 0 obj << /Length 2997 /Filter /FlateDecode >> stream x\S#篘JbaE!٫JjS%` ߧ[x*HH95af2X4va}dVNe-fnYW7 ,02XaV^l @h)_*4JhfCB{ j̭p@hfbLuF[Fpriv 7UlH/acQ޿kVhK)a[i?yRW?PVL1[WU?YZPɪL}2Bz H0BL@1] c +#zCLO+7E‰{9TJPی1F^+ 1<`jKosq7zPH?yEy8|[}Džs|eCCq/Jy=<Aiؽ= y͹ڟp\F >eeo?fB #igw&pjqJFN(\D)ep YOpi-$%e'Mi9zݩ%sOkan5F"W$#ԼՍotX-ԣRı#XZD^E ݘZlG%;K%2.,^ȴ);S)֭LݙNL Lۮk;+vXb,W;K;Klq|;K*0Գ@2jECicu cyw 'rVmx|궭/Ð.򟣛~8_5jkb]Ծ(Ho< |M2:B%j?Թ56@TUE8kU\͞;%3mN[er!֜HH@r@#Kk}Y,)R&8ohdF10tlXkjI<]nժF [?),?(S%^=6sR;7Ijϳq=mZCVAOfɱ;(U<&i[©tD+qN!R}n:9sݾ c'UF+&Oɥbvdzx}uøg㊭(iX-(B_~eKphPUڲ~Gwn*]ؘ#+?|SXz S0&obsgzl\nsu76WP:D]A5L"Xx'(Yl1dS,` -lI3ɦ endstream endobj 239 0 obj << /Length 1006 /Filter /FlateDecode >> stream xڍVK6ХTDCݠ=-R94=-Ò|3#YZoLp|ݻ#c(lx*U&rWEMgg.I>w4I"^bm-hhhn&chδ"gЫi0MVH7=l49b8>ɼmpt,3Kp:8C.m(5!sH$8Om(vŦo@62+c]+?޽|n#d ,=Qԭ][4 .Ra/c=`H?$09BE*I6"B c&h8Sg FKn-d$RAd Q4?'. rCW OlA(u6d(S\bqT hrL1"Zy=I.KXO%c_H+`_D il4NZf?o͘y5.p,(IH7%AV~/>9M{A8 ob 2 ϒԗJ2h#z#D, ?O NRAY*|?>j߿ &CކXe7/$h 1|[~c[Ļi㌓͘FMP5F+ktm&0fSYȶ(88g »+(N{V EuhRq-yb "dO\V(hDkTYCWjH=\:PMH xϹkax7u?Ww+5Tu;n ]lePozjQRh1KD;JP_n*@&"T.p[z~^8@:shc *RιQLjܴ{x e \ZQZ[g/{0&UoU  ѯ&R.x{w> stream xZY~r*#`pJ.)Ku^r7"5Asfp)0>>OO'RӋœIiqr:y7E;{s'fU_FIebu 󀓜U(,Un;%3,3"ʊDՙ̢DtC=-|Æ k _ao}Dhe[!Xi xwwI/{TsdQt`#4`y Dx6l$2;Jv)] YE3<rIU)qf5a~? (]mq<1 ^9?OMDE{(t=﹎ jSV+Hّ :)t7|-?y? H:x"*~M%FК$&Knl*z[Y62N^KCPNDƃ>RS!ׇ)_@/Շ0Q/%!pc"R&y DY>J*LۺGʿvk$Z 3 MMαh/7~ݼ/`]>hB}6Q[WAH'(r@6Q۾#x60Ҭ>(gkzD:kQ~״.MCւit|6ʭF*@'YY4Kˁ?1ctd<7Y귷IһI'~ O~)Wa޾ٯ}?v,.FsZ2eT1z J9T&g7Ā̎opE9?ATH@c2+)pR\uZ5uAM=t 1va_@n2Wھ@a e=Q$*C$UZr_!Ĺj&x0Ugc^H\AIM(eo|c4vͺoLXP/[{7T{G:? kHPfqS@ȳ3kaʜx "D ڜP3Q~kJUK/Ww!$\f/mЯk s׎1o2n,V@qyEn 7ɂږWR[ { E~{P#kd/y9`[; K2Xq1z ƒ [ [[<b&V&B\ Z+1öu>FAh@jF`Cɥ\>in2xr?N %;p|_}8w.{-&~LN|OP >dH TMȄxޢ~+ TXT/W|05n:5<ćWϪkHsmmx*fzF۰k?]z W7x ]7hg. ^k AUV=r&G}9]X߷58U3ʘSYqnЉci׵[ 8 Y׮J ƒtU\^W]<0}y')۽S3V58L.fƒsϑ8*2+<*R?{ڄ2]`?lٳ2.f?rU';=BNa٩Wqr):y_8׮ZG}0 6ɔBx<0 Ց7q2胹 8uoݸ- wCX!Hqx;d>%d Df 4va>b'qQ&'a@MT\F|{k~:ᐒ7~%qԤ嫵7)'烣'w 1e%g&=%,jCo^~_ endstream endobj 263 0 obj << /Length 2503 /Filter /FlateDecode >> stream xko{~\Q6%+ZC^HPВ($R'JI|R\َ~Icfv3/^-O*U&?9<)ITOYᷙ<7j xn};x m3OnGCzEanq wqMp +I1]M+qt!K%^ v p?wӟm^JNfeNe:&tz~ZO>:~ȚOMdA)c|+>\iF`*;$h1}(!c{HfYez]2hÖ^5_%S/5,ys%KK%RT͛)¼`u/^ (UCn67$ 1FԾ`\!TLRITzǑ8}.q9G)[1\>k&,>g+?˽k`Rp~tT8C=~/EBwD1 ,_;CnEc6q6a7l ?<M9>D|_7`Ĕ@t&Fp>0'}Bx #n.[~_m=ri%9$K^!_" ^w每#&Y9yg01lq$mtnTe<"We[\4҉9yvf/>ۭ$u \wU*U+D|e P+9 *PC0FvLe5 `z>,yTY |Wp3b|W֘Na9s<вy W] [%//ƪ4Is2Рܺ<4cLZ9dZT9cU :fйEUixCK@Sl -Cwa3m|XFJq:NVԝTC`P!5rႌ jkwKtnQƫ @ÉOS1=ֱudǓ.<ֹյ#%5xVf+"C8Q )+%cXWXWD7Nkܘ V{Ka0Zl]rmW>-1wmbl- 4{#799L'޿0-i&i)a@upbi ^y=`4HФyI̖KRMJAnTț,p'dcGȌȽ'Qx2RGg/w_>9>pג-Y\Rt>q̯gڳDEx/TsU؉Rk0⍣ vc[͹C-y"ޤPޗ$I y/nc>I"_cg%*I^+/lʈw7.=|\puBN _piR"".I^tגhúXt:|DXucTܷ\i#I$' 73R L%U|q=v ƻ#jWs0"zVdwp]t"1t"1H8+(ǣ{\> jlk K6D%\E'|2o]%4@ 󧨆ZUdc-xZީGFV|/b$1'xݨ$tXoi<\ DΩւz}bPV]/S~ C,TW3*Eu/ޜj endstream endobj 270 0 obj << /Length 2041 /Filter /FlateDecode >> stream xnF"b83\]I$>4*zH(Y$:Z:_߷ 9$Gh3o޼}/pyx6H Uat0_-> f5`m5=TaNEOw#G8f-c"au/O e;tQTXpdwW8QܵGCS!>Zy;2H"u.THt/_yqvω~xIf+3XAPA3&hyzlJ0`pdWy-Y&S|<sdҜ3xEDg8h)|ܜ^_'ݶ\#%. r*c+ n&W[FO@?z//$eZ$Z*Uxj4 ŀ_] CK'A'BE;ZeCV!q!Cu@ #$ #kt~= 3۠/:?*I&C(s(j# X 3A*Pj{?H(yxCyf`Dz9/Whq6XhV1AXdO稭#o UC[ij^kQ٢4 ŦCg7apb-rpsܮׇbX[|!1lHgFSnYK ЋDQ5p͊h}ǫҩO.sfMxHvfH%,<%OB'uYwYx7vҸ8uY8kεe<ӄ\yi9&ͥ6͢yP:£,Øu}$&80oxF/e1A_1Am.Ѹ΃g2("l[K 7dpɶ(垽jrHe beGmspGQ~PmXŞmK >GG5'$ݕVeȹ5'SsHEa-֯."}HCo/"EGd.qbUg/XgU::>TAiEWЪ0(0TO}fAeWěsAPo)͑[q&& ޕQki zssDSQl:"-붉IEaR' XB@mKxB3K31y/iyRaY5TN NɞuMZQܪLs^ai#t.P{$QlIˋ_jY6!Ikn%S(Q$p~A`Tc-~4Ȓ܁d*W*.i5vCTc7xcbY癳wj3>/GzFxvgHP̈́Ϯotg_~AmǑq8rsQRfo?{\)QdZ5rk yd՘藚~7=jLÿp% W"eyvV P)TYc4X,œ.ENh:%'Jox"4o8$"\{UC S4.:g[ n }ⵘڦ{++tS}ˆzV4a׭.YK ?3j+6l!z6[Whh^Զ=)2FxJ0 *ZD6tr;-bBC'if3íG/Ə( endstream endobj 275 0 obj << /Length 2168 /Filter /FlateDecode >> stream x]o6`oJQڮh- VbJN(QdI=&xd0q&AE|~hhobKh93hO > >}Pg%&ʚĻ?L a2eD]יGWYxshKciK+Rm䴅A{ 7vȂi+SBx j U=\{Z[֊X /<;o3!=VLo]so{pp̗d\ݔhUwc~h/;Div~|)^փVܘY1P0KŜNy}Seqhqhqhqha*bûw(]Xl~7f;m^1e@#ج_c&wZtػb>î-R{:wV\܊C(k!,ЭXgWe]/.ڢ EpM:tpHۛP)~ Ad 7 R]ʃ+`pGD(+36M"+j_Rf6TWܘ7 L g?W"2knePtEEЂ$OSrH?"e81}^CSrrn2psp6;/ Ȟ323 l5<^p[ߌЌY$bt{C&t]Z\cRh8@s'$T̥!NxD%f [kgW!/o9L@E|PBp5(.zr 7'-=6+Gt=]>Ley"*h~8r" a"mzgAxMY=1GV @q @=H?A)IX\d}13KVE?{fx( #+ggdHIa;F!D4ȣ+fyFNw˼ƫ;9=5Q<瓎D\9mi,GLk}pЍm-|R7.!feLuR-M4\V.)eR"B(dTfe)<&mߢ<&l y:ӹz!?TƳz b `%=!Pfnܲmny/e$fk/`؁o2:M ~Nzݎ9ku5C׉"IMN endstream endobj 279 0 obj << /Length 1947 /Filter /FlateDecode >> stream xX[o6~0X)Q̀aYKW Jb+ݯy.vb@S"??4Ad(yORaNɻ뙚u/~͕ rcpх.lQ+mm`*Ӂ @Q 5G%Y&fQuD&FǕy?C]jd5ѽƩQlk-nۭrr.d+^,SAJ)RlhU'3ʻ珶݁nu{6t?k@Z _$fZa_l4_bGs]lh$2ъh_J\;RG14v>>޸ WפmYRlND/M5ʠBvZy)!^w8MBܲryk'z;(0¬`8&9Oqm+*s5ctZm־t鳕S:MwKdP;Hgy`?4Mfh%"t8fP4hʑg!Y$"c'Ƃ49$:]8k?MN R 8S_m_3 lԹN~LxwVy( ԡq> stream xڽY[F~WDU%ic<ZQRyg7Y68'>8;ߜs̙oGO^$$D'rI02d ~bmWS|๔Gy҆O  z~דi䉱Igv2 D%,U,-D wyĥ=P:~&<ג $w"E`<Ȯk'f_EرꇕPLPt0wkEʊwz6E s݊@,ef8k`TF^ Mg@TQבdfG1N7\E'T fK΅YbX"EΧM) 1)i٪pPu5pd4ÄցCd({`=i'%Q}>O$SDᐋclך%=m6tle!"ײ`9N%*qEgGlnyO!>>,.8k[ P2_l˶c*&G}u] a1kDxMuhJ[ZZۨ&pzKa5hCH W6`7ˉ:gY,](Ժsn]xY_H4"(rHU oQg"wZHdkwۗ7's|x#﯂T?w=M:l9k吆#X/S w}ᄥ&1Upvlc~s&7YzxIN3#쁺a,]H\mW(g> stream xYKo7WA"m2 $F\@Zzq@e[-6cȝj%5==Zqf%?L_=Sf` Lo 4%z0\ M$,=YZZZ*, K֖V-X:wxw셥+KIlC--1h9%_z94 H/g `$+V)`A7>VG^= o$GfE{@ mRCKδ?w d=١y@P ,Y=y8"ug _\8 |^ ߩ&3:?_]&`ی3EiYìZ`ɩ}tu nZ$AW8:4Mֹ͢z/cs(޸OoQ=/6]VE&TBseAe_jѧ q.LSM+ ;iS@,:gJе/8){ᾣ4XA@DM46rt:"e".JAR1ޤ~rtU͝J^&Bmϡw1rcR+1 a7~ onp_ləyucXɋJ?;W)VB&(/??hێ>ԚX(AH% &Q~]UpኡֱYA>Zz Ń X.Hk[SZQ7=%%=GAK᷶V=#Fm<=;^r]a⷇+m 9Te ;c;TM{?#D%baT~x3V+0/ό,h`S`ACHO^ "<DZiY͆F *0D$׍1eBB7UGC&|@|Ai`e(B$WA 1z"fi‘y@%2Q%PL#TfCbhV 0,|#/wR,Y] ٵ{EOW[B)V_T>\YsxH._j_Bo} %_%ԟw0x+eQjL;jkȝB?U^p،&\sr.ɝwNx99\*VAiu srɋ T7q/-,'BjYnLz=?Íû.}GtmnܟiX\ÀbrK0> stream xXKs6Wh<9ɒVf24cd:DKj$%/amLHbiMȗQ"&I*&iL'^y]7n蔮'Y7@]cɭa ~h xB:~&^GϮNJ_л@?Q]ÃdqzHݺ2tj:xU5dh$D$,|lb2r:5Q)an(j*[ʖt'1\=&SZQ1<μa'R`-e͸s1D:xH&c O 2\`$́}>"!Ւ+uϢ0SVAӡտ)@ "0 Rt@gx>r'6 O2&ӵc ]s1 a7=ivˇO ot c{tJ=#[ c,z"5H;jp9dq[C}-s5]#X 8C-֋yh̆Aĵ?ؔb_t66 [/EfY,a0KڳE=&se,[nwTA24/!M"}4sV`}A;nWӯqӧh!YR˘ ",KP_9="할LLJK%(<+3[Pѭ4WS(Vg3:=KQeY:ϳڨլ| m Wq_uٵ\ F zawܝYԛ;Z /+0 bQbQn(hTu$lH)iOi놎\Y 6TsJ6BBXA`} Տ/Gbe |^9X$Nb^{n"0WL2?x% ]̎~ endstream endobj 210 0 obj << /Type /ObjStm /N 100 /First 875 /Length 2184 /Filter /FlateDecode >> stream xڽZێ}W1y*|6aacfl1G}Α4.#i/fdbթaOnRMC.c ⎱ ZY`]0Є{:R@!$SJW[3eI ٱbvjä XLJ%$ J_5 |̂4n_OKu&N r|nODJP-4<)QF3&uNPO <Ƣzڔ7tsN,hK&*%bC)TP*R01H(MMp>J*oKzi#z;aDzsDÔM!L(mҲc]M aZ&֫If~'p q$[äp1Ƅwd) k. M͊D\1p(p"󶆰 %i KHhxhwXUXm')47`ӭ10YO x{R'L&ϞM,L狻&Ox1b2};x>b7,G IƎ͛!<<{/0}t{_<~NJ>]1jbVZGWgD&\,ZZAW%kDP"DDI"2")ǚ1f$`#HC"qz(H||-j0 JDj jGhk5:Dn)&Gc"^&@6ju;K&rcCј2~Ĕ#ȦVEW1"[lZaU1PE$GEVaiQQ"4yTwl9눊>FE/$aGALPؐH t{걍E⪅57ζlѪ \2cgZWhw?L_I0 /e`rSnk(&QpAa HzhO0֞Y||7yͫa~]ضϳ%Tn ]o7gK٧ma77x,+oFbPÐ sLHr=')3P"Le}Ԑ2zf[v(N$ a9<<@V("P_(ɼq(B {9I{?2+yP# R@6wU{(`@ ARJƉBiA)YH;O;.,AY2$6DžYٳb@<#SAuP黣j!_=;y*"V2$Ůz(bfmf ܈st6f& (Td;G 0m82n-}n疚uKYᅇ{Q:Gm=zl뱏YIyXF z$/yԏ뜯k3T͖fʃC[˗')VB^D!/߲|zm4v<^ޠV :bs|ӈ ڲ<%<A< ͧ15QTLxڸ|E-ivR*5އUy.c*C%H]fPݻ졝BINtӆb|@rI91Ŗ#CЬ!/zS'*|PNਖ7W3Cyzģc=@=wKmɹly| /ջS|VIs;ᘼmUOV}ڹl~*(O[Y; xRKaK 6O=eOAtԏ_?{& ;2|x-suGNm8 endstream endobj 303 0 obj << /Length 1111 /Filter /FlateDecode >> stream xWYoG ~ׯX}X;)vEzB_ҠXPHCKa}=]ݖUVe6Yd^g^!|eoi=Vd͟ 7 _كz_#INdV(%*H.%"]zٻW eOޒ .1 TmVlCuv隤U 9_s 5sKHBD),c ~cvџv1v˰rEt=y?G8pp9 r &ǙrVIqG`IG}A㦽Y3P9ydž| O{.񣗓jʔ WU,i3z7,=yєFg/6'2*\%J[f*,[^uXRɒ؟=>i(ջJ(bBEf bE.3T<7R糢3tc2-lii5s xB+9k` %O#œ;W%8u> `/ e_DUU}T>gB M*!/a\bNƚS !Rai}- X8 'h\ 7n혞wRq0iKͫKYp> MLj 'nOqMvhU <mɓxw&>zdv͒Vګz0c@^MMxG!7FXNh<'3?D;b0O^qKKGD@cՂ< G3tk6_Gș!=<q~*j]Aࡲ;Ð'U endstream endobj 291 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpipMUsg/Rbuild28274c9572c6/EBSeq/vignettes/EBSeq_Vignette-022.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 305 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 306 0 R/F2 307 0 R>> /ExtGState << >>/ColorSpace << /sRGB 308 0 R >>>> /Length 10805 /Filter /FlateDecode >> stream x}Kl]q ږj<@ Z6,>ZNV&Nĩ}\(ry+Vǯ_m>x?xǿ<㗿>؏R:/o#=[~e?~ẅ́ß??=XO-ZGŢ^.:W},ZƖK,򽮴$5?weJGEL΢#fQh>\G>>c{ϴA,X{yǕ9W->jgo>M^T=vO&=VQSHYtUf?Qޅ!^.8]o5;O-5K;.z876K̲OGcȕ\iQ3X\czO&ooaa8cQH"tV5VB[)񦹪7;y=/]iK m3xQV枏xOiX93tt߯/jJs0(eSu`">U"м҂G\eg-UbVzJ}Z~oGH#[6L:,tX.z@בg&۟Ş/9ˉJ$iRݍPXJξ^iN3hGz{:śhQӗ뱨g&JKt4Ꙏ%I.#nާHX=4 :Iٿv'NBM3݉G_ˋOӨAi iKnԳᚏt?a\c]bGr`xYS1(yK({?y? z;|C7x|Mv jNtTf 6T+ {r€uHRVzx{ !Um?=uC()X PhU7U:i37R5F\ ߗ~A>$qT]%uE83 ![*`폌Pʋ$7Ul)޻P*3jtD5E@d5L_~[XtaQ '|Zn*AIR;i|_TOx^u8jK龛L H^n0?Lect풐*EDIO0F6_M_IO^Ɗ2`0}R<F'E'K.V(9#ohx~\i9M~|8w˦՝÷9G@o֕@S{yӚ}:5B9_>QbE(e1xQk35J/!gOg{ouэJZS3B}Z,>8 ɮoljxzKo r.eWOY$BQDX#mZ$>-LVʥt.l: {faMIȒKO JRb`}l)'̋}O-|<*`({lw /ԣbQuQLWQg`(HxL̼]_}QRnHh7m~gŦ;-ZL,ڧ]0'( z)')&-EHҔ2!Q">60鳮4pw,y)QVC*Dx#_:+N7柌fg_ \tHh(h>-%tE$mxS&t1P+]}|J[WTҨ2>m4xm[sS &yLTR-Ҋ.* {YuKUY">*}+=K'Om=c)* JL;iDcOFa7 a)EaP:n0QX-s,= VQI9 ryԋᑝb4á,e -R;_YLԧ}k4sW*Sb#Le}#zz/䍦)s4yCrˣ^Y\E.7xz?m(qy^"A,[`gKEz+HB(^9M iXh5HXOsdJ5l㧉O;0CBz?Q4#uj#04V"sZ/ǪRH'#<݉FMswOvj` G@tr/ʭE)^gx5Of]WJ]tRInN:3\>>xdaCQ׭~ڴ;GT~jJ̜S]W"LլRQ3zytpQ_sXtGL:|]g'=&o4]oic* lr#i3RFk."D#W@<L-|lȜZ{N靠mޔ"6]5^ FN+QB>Sۣy. !1H[/8IϦ*RHw>Z걫Ƨ]ƼLG1 !uj$ڸRP/~~"ti8X*IRF۩ r] ]M;䙺M\P8C*s솲Lߎi " 1B`og_3> _r(nÿOw1rKnmKoP&TFwPm + * нaE#;є' N  zN(ܾӳ+ 苎OhB/wPTrɂ;;vuD(ʢ{DVdQnx>Լ tyddJבScK`&UJRR )Ńv,TnE}! rKZc~& (LJV&AzL!҉< tkWdJ%+le'906R2]l~=" LFDB귉|9> JB&Z4znԢk1x›i;is9.9Sm{+3j]bLx QS:}n9Ժۧ2a0f;ͺ-"ړ6S$t0fH:D-@12!Mni(id"fPJsR {ɢ8'5NTi揉g CTRsJT*g `?p\/ydwTMIgG+q.ɢ7\EBMr¹,宰 ĊAR3[+2B}':\A77~QQ9auwpXqq-x1?H Y f[;i,ܱ'mu`Q4BzIWfܔV'gQm Ԣ*lQLy ĠAqUκIxx( t&E-.74#Xw>yt~rsy t<u1j>T:i#ؔRRL:WTtosM0 .o”X7,sr℮CInz)K);6F$Ty?CpԦq/ɂBdAMKԭES"+K-T ،Îo4U4P7 ɍv֪Z-UcU~-\u_aPuSEzmlCh{O¥Z,8ٖ}>% JCαe& Z 'Xjˢ="mJDwG&W#Ķ !jSlހ5jf+A.>S>3AqC 5%QAǥZ!]x"j@AhU6(xn5n364׼`"+;6W>Pɍt"0l97E˔ms'J\!MV+Y|bR57UE+ee}6?J&敞klkPTs,g ڣ `[wu=- 3J7OX H"tԺn1V1u!/8 FJ3^}`P<팪y錝M1~E 3S03/Yʙ9Gt|@cPJHMo0zDAJħP2BX"օ!PE7:/MC^LY#;!y}fΩL.!L$tƺ=gmU9܉!p)AY4sIJDJDS%Vi#Kg3H wr#AOߘnk@}%td+дmkE{Ds=ʖ~Q90֝7@XVcD 2<ǧ_>#jݴ{R3vgN E} jo|jrMY`݌D}ǴX|@]Lө^~%j4F;frM1#l ŠWJLqB/[5NӜ$1k?l*gl^4 In~# zgdcmX|)r,m(Iբ߸=Tid7wGEfƊ;A}Mɞg:|YNC}jшKiU#/"#̱D=/n#Vk0eCzugv.:,qDw#.vR7 j!57Ԝ(SӶFO^ 3 |q^_ÞIȏ+2LY 2F ._:S Sh+0HRaCԕN>푨uTUYWeNn#ОiU#CϦ+מRS SCm{bLҫ\ wR -"yT;|"Dmբs+~D0\̭2Do1̪G- ͍W(ӭX_62 Oy7FʂJQ7 m1Q޴B mZS}rWTB_-NCeT3IL^+0P=>n7 '^Q@ho1%i[5Kї◊W=ח4"S!\Hb~5OgIҞƪ231e墯i~;2 )nϫ7ȨrNk:S:~Ȣ']>(eLg^MΖ֕Fh8yԴR .;#0;.hQ]Wԑ4B}5^kG<Q=G7(*1zcs$^Gvst M~(9Es!CM {AEa}-wnENUUj?N:hWLQɾhU夠^)Ek qABOnd50qo/nKE'QI}0ҁr09Hj޷$:3!.5j|JL2Cd b&=LlXwA1(x!=]GC͟@S'uϕv,W6U1#bBoS6yT@kp%!s:>V~ 4DG ] (VƈJQ7Pfj~l-eT",1΃z})8}lpwVQd0;&nv C11jӆ6m" ` !`18]r(y}Kv;54K}'ng 9.t&L y\!SnTvRFr),f]\sz|zs's}n6GA욱v jdo+"K?jܘ-FyL,~+r'9"txg,h*gБ-M*N8&-Bΐ!)xIMel=n69?g90VM5“V0Z5M,Q2ĀbΎ>>79\7&P"]G#yTݭy?|1 C&AՖk\|,798bGdڭ(#V6mTI=IIXF{\>z ( sSJ hS@K5]ԭlu$e=ӠyB][ &L#]!, ^5P_VT@C LCr\IAR4EEMLO)FS8=o_>#d')T;.1lH}ZL~:"̮z[u@oic4ɹ(7Ix`gA?V D}k#ɦvH3Bahō+'E\}hvTcPDahCfhP[QhKҟOAH] 0=:2wЖ#q>SSNpH##x\QO 7n:wFKU4G>ӈ{{(Ο%̣X D199fObMzË|Gnj9BʂQ_{#'t+jQ< QЙ>Kwq}'㣆QJ$=IF:=31-c¥u|ӻEqR f3KDSTL>\MN K^ᑰz,hD"w ?8 ;{Eq5VʈWl],HE yPES6KdnXH\[ԫZ\61uY B I]$#|6L&;"j a1pa y\{)S QҿUi>4n΋4Đj Hv.tN+օض% j8< KMj'.a\QIOhà`*F\Pj2V&^ʀ;"~3}s1έS 9q|ŶN'g`̸eF+=܉zST-z?' 5Z+*!chj,:?}G%Zo_w=EpGOpÒ_T%h%2ػ?;0mcbd|LZz 4Dkl&5) Qf"E.L墑P h馗F9GMלEo*(jKAQ lIx'ceOmr!I-5|jj?vxaPԗEe6 X.EWd+jc`8 q'^;3Ciڔm4PP24s&n{93>. nd$l=! {נ׈":Qk|n>Q?'P72lXJ6ƈtɞ,Si#bl`(洛܁lY*#5"ߛfWסQT|^S!b/*0L$ǖ"*x13s n¥Zs[ 2z3О̢i֨Sk>?JNmsZFFf %o#]Gz Fb7 XcL"ԫMxYY͂etTJvBJiLt誁8Vjan}-,Ptq.ōE{?'\3c9Ġ=Q!X9nl HmR7Ń̩7Td|MйP2R;騚Os#Oj= % CT&/* svKG]?I*ݤ6E2eHmcZԨߊUD1*~7Z314rsz(Lw܉)T֑Xg?6aP?~_}>oK"縠_~owĬv紞&_k.g!yzلlx2wo[i ?:"+!ah2fg=~_Ƿ/YZGÏ??n?~?/> ugoUZ|ڲ@s}䩕׿_5ɟ|oڨ>_^$m0kkϵ(MO~cxo4~?hoQ꒬7Οc|o87؅~9^=\~f́> 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 316 0 obj << /Length 1172 /Filter /FlateDecode >> stream xڽWKo6WP2s)"Zm栵XZI΋d; g 0~of\M/>܄rT20> ;*V|t8xɮ@~yy# d _> [?XJ#w`{ b@qh fK9ّ9yQDAkAHNZi,{υ` ,6V߯pV6V.x\,+FѭA!h!,UWr95 #Et̿*F="p&_' N|}B$vX}Uqʞo;>^)3=nz}{zB7vXXZ\C}ݤAŷiy38g |v {{Jy_8rlжnYiw^kiZ/Km-)9w 67[Gf'rw+y!fɆfmtJHTKN$ץ*_xȶ+Z4S u w4πbrИƫ2O~9!WQ^ - yǭL*ZpQ|]$<"O@6%麠4^Ҝ_M^DdVz?U0eC1$yv:yJ%AɄa}#<>[$8q |lݥ!oP<. Y2m-o[-+ nclR^I?,;7YsP*Kw#>0VDӱdu|y0rybƨlJ$ Q1ïAޏ?"EPIUtf]cps,8:u񨼸^ Sek endstream endobj 323 0 obj << /Length 716 /Filter /FlateDecode >> stream xڕUMo0 W6Ke{v`ur[wpc)n?$Gr%"*-LV2ʄMXZ%hM3'˨كܦy dczW 듉yxKϯ0 )Eg,)5r׫@B4(*2(u<4` oIGn̾t:%Qb&^9bVC*%2{?"2mDCdX\26ed :UmћV6Fektܶl]# 4خXV筵w{ްc$[2;/b#&WLwHSCm*3J誾?EkWцhر&0U$٢S4N܋=,26 ݳaɵ├72j_q94 BlQJ%DW gx$٧f)vDMjX(Ԇ9;ܠmKN=a jCF;҉dF$\r]()QPre=_[i!^ yeaQ%J} SِdF -Pd*J?1Tq$vd9XM%Ac ;v |hoFh95w# tFcd*4zHXaG%v:XT%R o4Ҹ؜ endstream endobj 313 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpipMUsg/Rbuild28274c9572c6/EBSeq/vignettes/EBSeq_Vignette-024.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 325 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 326 0 R/F2 327 0 R/F3 328 0 R>> /ExtGState << >>/ColorSpace << /sRGB 329 0 R >>>> /Length 11266 /Filter /FlateDecode >> stream xMdGWaŎ)ֽ-y@ih]y$eDZ3vĊkۧr훗޾~+u[Vy7/o~_>zw]>Mk/n/iחp/?-1ֻo^?fyWmw>?}o_?޷]]GpiKpnbnbMX<=ۃl/fs4>F^~ɮjd~ȍ@S0:1B d?7ڀ9b:~b֬,&0|%x:`G>dW|>~w(4m)4]g#ǪLg6#/82L^U&#wK󮒵ݵ<͠[; x n7KnJAט]եa]v 1u fYpa-i%*`%^ұf}FNx‘4<,:dyohȱtB$0R\_)x@x :>pf+vY#q|̖g{ؙ: J`HBvU(W"zԊ!_0[#$C~ <î9{ .lov̂ȫ 96#yևh#Td5m^ hx'Wsd] aol),`T/%r]LwJccmf3K4R(^lȿ4٢YK[\KGiƖ эɑɞ@썭f]h=9kH .-rUVfmkF'uLge[i-iڊ2F>MBE#+sK7~覑ְ5h:;vJμںl4;l-\EVI0i6NL7k%F#49NJdQzNN#߄W =2D#kd~.Ғ#QBكF 'sP<)[6sww2==49K3ErЖER VcA48 I/0M AK?Wj)Xkib ^G1MB0A6(nU#$ Βآh^EUJEeW4I9x铋n("z&ѫH͚,IDEt7M,ldKDZ2tq-ol. ZU(wANy&Wz MSt3Mњ$rWdOGђ- y/j&UeBFrTd9%˩.9}%(dˈ>IY[6[k,/q&4CE}ci5eꡳ&V/v=h$ϫ^J-(X.&17}ɡl?heL8IX $5ZjqB4:KM ]mFyӟ\R %Qژ~wGᬭ|rwAi,;f-{E߽tp&y{A$j쒼bdݓFyٿ֠%IEM- -[֑F޹e-AMAs4c۞QQk1tl0`⡙+4(ZYAb(4|cw讲8:|E4ߙ+YFcciK4;j\45; ^6D76kʤUc#Ni2<>K:8 VΜJ iEwĒMn!%h'InVM}i7*2 ٬Y2X㙓qwM2kh$׺}H~$r*^VayINy*q&.[R8 u :;'&!‰'%D8C{UI޽Wn3kVtU{$^>%81ZK*6dw o8Ivq W7f޾lǭ\7ny&Z+cg0je-jI2Nn[1NpE}AC.Z74q8zkƉ+-[qϖ8 4vE[|G6 D֘p~38nYa}&nfɪ |#8B8 ԹKIG5 (>qd'?e覍89ߋF3q4qld,$yD M;^\OQPJa ?Ƒ3G*qm38V8yiubW32CjXЄߧ+(dL7YƑCtg?#7oqEYr7vIꮲJR:RnG·]q035Y 9:.N.fkg7L&I# #F   Gȵ/ʮ#1^u*|5_3&61Qݗ}OGQ+IƽIUw.`WЄ^PGeuz;%݄u41S+q4uPtu#F3u#{| et`@Oi`$'G_ffm.)+HZT 514VoMJ]_.+iVYyu#pZi'k(g#+RFN$m6 s0Kqe/UXB> 沗uYg3W82[Yy [z:x|z$~0./#Ks)+LXQYV F GatNźܹ6GΤ p'q;;&82B75񊳺=uU+ )'u1r~7jgz}˿^9zxNݝ"wYru2cnV{nּ΍Lbi|'xaUw^^=P=讻POcnC82/ƑU/v MbwwU|#p߇Ӱbja2t?į:/ik!8ryuOyXiYʈڮ쒸[svTcʅxqiD 8J|MH~ŸNܸa:F-َ>^e;F@g1!'/"&ZXhtݧ0ԶVXZ}P8J0r2PV)HLpͻ[p$U[9_ξ8Z[FÝZ|q2Zb8Ҩ[,?(6D1Ӊ6*"KӝZ],p:W85RhY/4նooٰӎVoll3bTFS;qjCDoHPgD3YwFZ[LX⠫s6pRV%*DSWߗ_qrH- Zg̈́ws 2mxª%6l>m^}/o|VA>'7v_E@~)O㟿Mts w=Ր+g:?e?}IΏO߇+OcǧY>{MO|b}]z/_ia i@@#aLW:t[c6fR?{_;޾U!FyHR&_|>?O|4u7TkAZ 48~:k qxׇ??dӲxyy|1rf|?TzZѪ/oGmv!{;ğϲ{-u/[g+_~?߾?aZA>|!n?_{|o;}/Ͽ}]ߞgiz]$ o/8M'PG>9gsow%>Y1pѥ*^$%:h.Rh-{zlbGWD%3=D.4&hb5+cc-9M=TOt3A6ky#Z-8;UwGo4%v|O4[|eҙ&!7LO)hz)|}LiOq/QجINJ#&]ftxMOu$W.M/Zk֌IcTtͪ~\f˭%'OԊQxXuSgg=1_@n$&I릇Qz&%"Mg8$^iRQth?5}nQhԎM7pMCjzRNӱhM/a LSBf .].YudwvV^t&CCRK+Zv;,hǀN]s~&~#{'L(V?08Zo7; ڝFO^CnEӞs&6䰫z#o7yK+<6MRMy8@}V>qrY Fzgb;#{S.jU[:{S!\-{'| '^t( ]G\8++a$pr;f;p傫nBNՃSgiSݏbW!k6c6NΩc~ԝ>[>gG4Uk#-Ў)t?p ni^/Ӱ_ա2>3JIG-9:s6rQéIp-T 59d+zxWwC{HX͔SbF8KyIi&j~O838[u BDLdHX̬stg8Kڍ׼3T4V82'Dt&;x͝ OX_W_.fIy 'k^IqO2VJZV3SxMn/K;{><6f-kme2۹!|33RS8k|':iP8pRtS1ts$sm 7ΜۚUS é̅v;78zYә5q#+ 뜖f:np RͦPo"T1 -ZWsC5ܼN8S 312pvƹؽÇ;1*p&='j.+iV8߻JX' G6K |e';Fzp8*ҷ3c0u g>e7>Lɺe^g6Ji3aH+dGT"zs,E#qY( ݽgtt˺͒]^Iӕ% ?:pO><]ԯq$.F$nێ ~Xȱp8 vD83; {p"|q6 g;PF ,yȀ垄7uH xQx_DhPE7 ƀwW}IR‰bD濻 gJRZ]q [h`J8n3Xz5v +\1Aā4~M*oJ W`J~\D=0~G/2`,xQW]z0Mȳ)'|l׊$mB9' 䘹zk%tu N11Y8 W zV>rtX"8}>"|s5޲Jǽ.×2&k:MDN4ju0(8pgղ>ʽ.½\'\|IE3@‡W`epmz7X=rpbD]ʪ(h|%t`%pb /9:EWtj,\bRgΖ5yS3Ԇ$3.+N,b'}heHKZj/('dⲡ G˦\)mX-~?(Yr*¦~Vpt2bªX/mW^.kO7o#XEMe#u9u>.Ng;ׁpR̸"B+lH"\Y^PDƗ#Sqۀl-$٨9Gˢ>尺•qtprcEx^c8!#kF>h#c"tU|m!~ çqYڨW{Z6ٰŪtXΉ8!.g[q]bt%*LXMgn?oMNZn}G&pqPB@nj=pS 1͒FTB2y[\N넯xoýµh cjH8:#ºFwX8RJU2,)u8:еtOw`!xS86>^j mT gk"^K uaM82PyxuBҨk*n xζZ8!SǺ vQ'p6u#SqKS[e>w᤯q(n0_e;e618eT2GtKkMKNLl9T \x(&%d8ʟ.8)~}G{w: aa_Gv\Z&fẪkhn !Ntwu+dv\ ᤐbmt;hznËp2'f\'2܊K8:2>s: ׷pW.K7YW"G!1u v@eU.!U}PNŚa זY0"&|$6lqmfS&p~/|G&慨\mX5MhJ\Tڤa__wa@fuȍǪ۰hCOe _|#sJwgw/(Em$ptfQZ7k~18Rfeb^L9Q=8yo➾$.hJnwxjjVum" R>]LW ='|ȅp {LS2sXs6h9옘nJ)|fX$.Bخz~6.g~Dp6.~6.UV\mWW5N4W><* {GS\v/ą#qkD- ˻L_Fr("a_W^D/ΉIv~#YuO^P$[f3fI=E5^FG3;‘<ة&Qm^\RP[nc@\;:˷qNV=ѲG9>38W<'6PݨjU8MݑvpKRtb;~LExX#vɡN5Nd<.;ʉ2P=poe$*Fގ:oaK5Rz_ )re0 w_s8>ꃹOUdD8ǎyQ B\9޾yŇꗷO>{Q ߼j_E@~)O㟿de_Mo}͏_>'Wx+>?>}_]N}~|~\ P?ϏO/{||~}?[LO}w"ϊ&s5g(+xUyOЎy+H_I71|s5Pp77aOC4'oyfߟ&Z ԿxK?V^~lwOǥy_}ls۲Bu~_L"+++7?η_~ۏڶuNύ<{qr_l?5>Q׃}}7Loُq"هgo/_}w?K?c6 p9P9Ң}}&ꠏ endstream endobj 331 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 335 0 obj << /Length 1301 /Filter /FlateDecode >> stream xڭXKo6WЃ DHQH&m- Ŗ-ʖ'(Z"537dn'FLed*e"fq$|˰%Ncx`y iG"a\PvIߓ_8&M{| Fal`l;w0na|>d$A|@B¨4F/#QdYn)Wxa3OyBoяF"Q&P|{6f[Q$qi͖ٛ RE)~n 0oe:VyS壈,ONv WVXjڍf́$-z)+;8͌mBm i)J5ijF^&BF Eu` \B!JL9Q\K̞cK6)9ξb79Uo,v`"wk9(<|߸<|Cu*"BRz)0kL2b`8Ȅɓ)HrphKУ:3[e35ʥkK)V/va9:\s.9m!VwkEWVoXsTZhȊ5!MW+ՠZ()Cf_aN[IX\4sxb 4<*YG쪫ڶ!Jj¼e.hy질JMG-C*2Vu!>;p, ^]Ky2"3c(gԔ*V`c@%OP-wX{EtGfJdz_2?^ᝣJ~۵3$H0efKy`J7)Wh6)TΣ5Bsh}(: l3e'֏d*XiՂbpd KJߩ6VHnWYjcț;%AzO$8jj-7Dx>xМ5)i&V 6;cH$缮]%e/[ @y*6c>v|;_HwO+b8H{ ] xOnwWNݙQL\;8.xmx&_?k԰ endstream endobj 320 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpipMUsg/Rbuild28274c9572c6/EBSeq/vignettes/EBSeq_Vignette-025.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 337 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 338 0 R/F3 339 0 R>> /ExtGState << >>/ColorSpace << /sRGB 340 0 R >>>> /Length 13302 /Filter /FlateDecode >> stream xˎ-9v)rh"xh"2,n@ÃmK8-X _V]UjiPuwb#Erg}o񭼗:G?7ow?~O2nro$z-}o?xO$S~}5oׯ_Y}{HOҾ=xo)7vq?__[yWV6}ۊ~{߼eˢ9ߛʫϫ>cϴףׇg Ú?ǻ^)by/PK{rww旻?8勵>f[]}'}^cqy^uu?.?<'^|_EG~͛r[ko>u:诠XDouђX?K_{]{x/y?o;/ۤ⋷>/B޿b]8UAh «WwU6/XЙ}^y/c^hZ|:eVW;{L?Bz~ N`WE2ˋ}ɮO_ߏ]O3Ϋdmu^V=w'?_O~CmjY4@x9~v;yݎ>ϼ,1˾zcY\ONǗ''1s<<z'[ϵړ%t<:e_\,^YdExt?q|?}~{xˀWZ߾]fsx1nt+-qmdTv="N1n7?46:]O^asGbsch}|m۵vR >sSo01p}ͫ4kɶxv|o[,fݺ|~r--VMBk,fvˈ6/aC}1rA$"ˤ b0<"hKٿE0 6la=Dn3yK߮ p w}8>z#|w YE^{۱f?=jHW~mua܃} ٿؚWOB,[ 05C7g"7d exd k"b5*JS@dI8ǫj(؄!7UaEٿEU#oVZ=h#+6"S1u3)d$?h#eyEe3r| dvWָ]o"FI )75n`5b2 )W cf~x ߦe x"6)iY.rḨLfd~a'ކ،)//"_ ?2Vٿ؏0:Qhe1 ¶=&AٿNyW*Ȇ$~w~wKi38C]rSzϯ}H3@5AR]b_}Qǽcމ{[6/z;ƼE2oqQxV[.|_KfNlbkTd.f3+ i_8|XĶy]ES[]xq_g\؊!!K^d*,9C` DuUawj\lFfmEf?0^X8~&ZOpw쳉'&q2ؕO֕}w"Vn&5{~EKd )s1*HC/\ElCAA*›D_S1KZAT1>BҤd9ʒ ~>}/zua}`iD}OO8 FV@Gdj >|&Q)eQ)u(@Gg9~G@(kAw5P(!;_Adۮu}ACd7X4\[~N~q5!2Mȩ~St+⫣sƹW5|8|u"kʭlQYhʾ;TIܾ7q*_PD. 6?(ez#薺@#[Ȟб_E;NE)_D+tfmumVM~%D}uqA|: TM틐ٷΤY54T #夘i e?@}#FpfR{1A.U @VY%~.?4P/ dz*†ưP3]mE?ƊRFxJM.KVC|IDUÅӈڴT=SI**GoXgCqЪXˬ@u|}&7Vbnx1L˂aFiFA J x+ E֋h>\'y~ )J>/+]UU(Js`V ;IΓ[v1jCa=0̰fCJ#-\va&bү {̭bw6=Ww:\,0߹F{,y0<%W L{K 'a /fc#5L53U̼U31{ ct.{ :iz=R-mIuǔ=Fc#1ΑtZH{L٣k Ξs==B65P.KjGW9a)|°J{pagd}ggӍn<=Z-{أ"-\& L{4Miy1S黼٣ey9Gr^VT&f`&zC}a^J_s,YL{x nۧ~̴GiU9R7XK \^5:yCG#01ecVv {\VyF`!^vH=|p0*P-y*L{4On l/_Fԧu x&?gUC{J(/l[=ҟJPU? n[dcxTdl`J=?@ 0'qJdNge0_a:0þ]+x%g2w_xYQ꿵Hd#ˡK2ܾ!{,om^S_( ڦ#)J&+ߏw3ߏ9x'3o3ߏ!Y |%{|%{сkT%qБC|-{|-{?a~r~[~[YXK2޳٣g;Gw/叁iL{aY?X-(}ֲ\?r"QdpR9c/_ɴGվDnJ$e} |*{4 dE=hoү]dڣ}L{Tϗ/w/:B, Ba=9~$wߒi?! oi/D=7)g2^ܿ]==Sk2Q^#9 { $ 9=?PX^0L,8&8oC4Gya}+rx29t=y+}o%{l/W_/Ocٿ=hQ!r,#xP%GrU-)L{xE1w21+`fK|IɴG'ЅܒүCd#E#̲X%ٟ'ҏ[21~rt*r'P'y%;_ CɴG'hxSk2 > JɴG?9f*!d~M|&{D'l9p*=Z_-//Gc2dڣ%tJ?GF/J=j~.{v'5_=j!{|S k2QCt 9FGkW2Q\;WF'(p9i߇ɱ[ {j%dS9ݨdnV7?&Cdأ/+ mop7Y[Dd3hy$-0PYHJ_Agdc?|Q YnXKO7eFdce}=z6/tza2951UaM21=3aPQo1VF=r`pð0_nsTa͞(.a00=h;Qm}2)}˘@[a`$(L{W=kˉo{qɴGO{]Ƌ/g|9',x ؚdWic=r|35lt٣=]hn i1Qc^Da'U;h}ieXORNkv3iO1if^J/Nn3Qw~/vf5a`W0]~ Zhr>$,Lg,l,ryEXn&#}8 ^S~"{?1ONdr>#Ѹcal_M:2\[O{8 sJ_ wH߻!7>~N\fuMy6#烰0Kvg^0eb\_!{d{ W\6oR5ӣ=?!{#,,/eǵeiJ_W \viB7t=9dfB \F[O{|=}3.ckO٣fyG"`~aҷQ?Osv/גa9o\}Henee1Q-٣_Q sKA >̰G7/w\ffأX,Gٙ_3,`tr"a'L3,_.+=GpDQdzKΗ"{aj_ʹGoڅ0aX|R0=Płưf\r>b)dQ_raq`M^\ra)d{ Elq!a?L{8QjaDP-N2,iH)b{>rȥnvK-hRۻ{y14m/{;(жa^%NR}WK.CW>b)޾rŐeopqXŐsU|,ٳ`rDu2b1ݰLɠhux1ϤnrAI!Ǜ#<bY8+zfj,g8Gqgd:70F]NòݓQ]ˉGc01Boy5? ^_F`v1"-k+CO.cM9)rr{T_]Ɏmq8j0e̝Q!Sߜ>ElW͵mЦ Tߎf{bš4!JMeןto~#F?܂`[?x:״?Zz%Ũ9>\oQp}G;wƇ/wm?B.42gޅd~T'e1F =@?|S_4U} l+?)`Bouy}ퟫwoa~wh)^QQ˳ʞ6j{r5nj{P@ȓhpWד Uz~ p'ٛ/9:Yn,W4Yq˽7=Ysp^WW8I7|V)/K{G'Y$sY{KY|QֳޗI~K~jy'_' |3 IKI˝I~VD:|>=+G#mb{LO"|fXF׳Im<}XD\lO"|/$$h"|Y$Ub?=^=S{_Ԫz?E|ȽEO"|_.'/\O"|_O"|w}MEiHV9YI˝I3דߗ;ߗg'|$b}{(%3D\O"|_O"|YY<>s?%FX+y|NC=$eZ#_l'|y~rFS=Occ˳']p@㑻?y!ƓA|rAo\xxSu?S=Ӟ|kz<ȟo18 ZiRE@21S !r>ߥC)R0N bth 15l27\`-R!ȷ'Co.-I7Sy:/Iq U}qjyC&i/nB^S΁Tw a<]C.1F=GoZwgQ/`#Sw)S@&0`#,G߻KiGGQP BGԶa?O gH?hޘ =9p㸖F~P[.\@pfأ|ߙu%VeK'@pf S v[ K t\ȈbC!ԱSn3Хe Dzoi9p L1;ƂCs. tzv-%hQ~m0QnKwL|J{n.sH|-ʝLoH~僁.MŐ+H΁I>+Бʇ󔙛.:.+a2H=7T-(.GK RnO](L{LBJ![ǧ/y}Imuci¹~hi%{̴ߒ=1ܕ~i!SmiK+{Dzm\}#e[WQcNL{XH$3=uo`ڣ=ѳkಶj1e|2wɹn=!1xi_ȿ،5Un GS u!ɸ_JiO2FBp*a7ZejكLM>o$\/TYL{!a7}dR+/uy| ^vSRqp7#3Fp[&a7gDDW txJKn;=|sgf=$/JCn=ot?1^j\i!{d{)S <ڧ_o>Gn.SH-)6͡k7ٞ){_O LoKmfzF{X\%U8Ư3aa=ݧB}=Ò=,wxLH[i-{tZdN3O |n#|j,:fqF#{QpSnqpPiGg'>"H^4mioXb^S{P7fڣhSJSeSeh>UHU٣h,OY>M([=sX執&{X/$iజ/aI$ַ9$E;_jaaQnRϛ6lo^?KL, sJsW21ۦ›~K^J_}벇߰]ڧJMF7dOS-tXȇXې=<>J_d%ި d eܦ1^ScfaUq,E[򮍃#릍s?L{?ڴqp9R`ch46π/!53mb )a$6iS7Nvsk2ѳ٣h8)aL{XLKGPɴG#\B )|)"aL{|?m-߯JU٣ih~88|h9`ŰPW$춒frHm$ou'Oߒj;\2Q\BG=>hOJ%]B>| Á{c!.fأ_gHJbm얄7_cdШ %a7V+$ZC}nJ?Zrˣ6ԋH=VGm+ˣ6P„jsЇP86{9KXq8ǑL{XH, g[x*}O}ڿ-{[>Ҟ8s21ҞG񀂧>i#{d"E+|g|Up1W_umV ?:{[ԇi-8Ϯ{uOFbp]KٵqIY<=x#v[.Ots<ѵq0M髾wWי<=c6vgW}:{= L{4;b͡)$L{du6CGTm~vmE!9CX.!,P_SzIKBt8k~m5N5ޔ8$vuZO),$'nR% nShxԞs@X^DXY^uOЙ>vR.O!:pXnyJ8n%_o ?:'rjgt5sHN>a PXRn_ t!ޞr)Lw̡#+}C'J/_W*ǞBuʏN:'r>輟pKNЉ?y#l?)^S%tuԟP6*}CDkEd n'o u3aGk<2tO8,4Фp]rHN @)\P_3B%!:CEcey9@ CEΗ -˫ ?0tP,: (r!;6)dPg ms]Osyՙ@QP Ɋwyձ@Q\zDSW :(JW @Qܾ96t:P ہԾ&(lUBt'IN㩡3Zη)BwBw :':(Y(1BwMkBwBw<,tLjꠠoB'ZP:(ipU,twBwC:(mNd $ʘ:(ed 9$tדW5uPP )!=WS4uPPiOrD'p`r6&'B!!;S\O:(MSAAm=:(|)L>S?3s ぷT> jAA퀫W:uPPe?P^2:(e4uPPDxKN}ꠠ]ߧ JKU i)g{+ɴ?xs!W)ԗL{xf頠o:-s M3gCUnpa/Tsm[)遼j[_+\uPP i eyB}~Ts>m頠>:(ftPbs7PsRAAeAA1-弄jΗ-T3I|1>oS}%T~ @Eڧ]ROKߴuPPP*(}?[Uσi c-ԧhuPPxJv'[:(ףּJ *@W*m)ԧ#m7w -3=:(l{[%xuBkE 63:(K}+޿̿S:( 5실=r>I`|o€aT{_2^s+޿|AAex> 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 348 0 obj << /Length 3187 /Filter /FlateDecode >> stream xk Ph/W "Eε-tBNE$\.EJw@-; գ/JW(LZ\|?tY7Lͤk WW i%\k%K{^6ӷW|H ҋ_d{4p}?d̛ʜkAV=ZƝ)z0p?:qG'Oa<~@c*xzPXN(gp9eGyNڂjpĄ(x#^=ܞGn#w瑻]Q$ھdb0$2+JH\ݐ|'ۃX*.5}Ppv3%hrC6yp[6rI: U2!by@|6yR>v-쐉x؛!7t]zI5G^+-bLD!@@`J(83 d|#\0uhA_9R}f#*fJ>'Ijm "i:g4/Iny}^d`Eyjн ̏4 }5 OhP-<1UDP-<>(*/bR``=VPPF®%2h.l5r}:ʾux ԐʪuOp&nV-jI 7-#GԬHjn4LlfnjܷEr@[LErM|PC5sߎ1GU);y")Lv\®iEzLU殮C26Vq*8$eg0r^jW)׌kyq4}^W(F>WggtŸ*$ F2J&Poal&)̮=81uFt>lV7ϴ(.0WpNe%;:tM&X /BkYҊ3~xf yPn;&45K#'Ii xI; e sJܼA?@3;3ARpͼ .b?"IOv]ESKS HXIoK]F0xHC!x2OǑfk&:DB:nE:/=a$eőFh'uY*aI\4ɲ "Jf)M=+%%bzJ+Jڌk+` t7;[WXH@sg0P%hKPf/'j . ;Oy?GCR饐˾^AX $G-Okz*' X1j9o~ m{S)6BTXPi O.e-mRG.Vк\+)? 0/rѬHMԞ°0cNDXW|Fy :tE>/45H4[*1wz626Ǘ"ڔZ $%:E&*fqUp%&"qNlG<fHND} /FFJA;S_;)I GRW_/D-'u]Dћoa\?v۱ʸ~'ss(@yYQEl[q:(I`sQe$·H@j3g4N}:YB{A_x+-p|SFdsI\/$X$dN#DY˕ >-?opO#\yl[R.Px !t9^/&Ɯ9d8#F+,p3_la6sM\UK(,b= hQ^aLL;;%*mQ?CQ{g9ebfIAҵF q9"A@~5e+€tF]o"㒼Jϻc#y45 *;-{g% UTZ ͥCӲ b猡KCa.X4{EyW0"D^eZ'pW#&A]y5U`[ΗS~s^<5ͥyNJ,~OX~]\i4Cs;tKMRPHc,o{;qGa ;1 p:kHV: Wv$f]25`H:" y_mgr*\hV(991h kwu)݆f>h\b.N!8k֌c1T;gr+>AP|}ޛBS&Ne3TOaE|!*rMȨ%F:D+~Vef쳓Fވ}s4qSu`jwU]KoZPr8*S]7 ^# q&uq~}6x%G^[0;N^_B8 AF9^t;> QuT 5g$Λ]psDX-Ԟ耤gZNZotMtY>Nl%jH_QҎ6`M_]ówNPSsӎGӇI)?wĈ{oVSu٤VB&93IU9÷cK1ku(cx}>QL F*4! 1{_EG)j$TKP|Hs6NxZ$l *ib-h~ 1AE͑^ߎto~{ݧrM&22KU{w~1]0S:xo۠xY3~=>|_hvه,%cz' ֿ鹘I}/ޢ (Nx?IEKRQi_::GNk=R}_r9X#:0a3]>~r=.=K2*o ]Tc){>$wM,^+Wڣ  ?UR|FZ"W dw] endstream endobj 357 0 obj << /Length 2396 /Filter /FlateDecode >> stream xZ[oF~ϯK-)Nf7fQAk``H-HېC-adrfϜ9s.ߜ˫g_]VZ$Iԥ*m\-&oM+Wәb~5{n?Wa ܡK7ٲ,Wܷ^oqwbs5e Wd#s\swj:sW({}wfpz_]2[^'% ҉N{ N2_x BꀌrlU+dgf-ibVkCy]`,.nTR.}IK3Uq T͎X!IK ަّ3\jߛlc ?¥r[(Qm +aә7xlp]| qcFD=1eu;1L-Upy~'c\%1P/xx|3.^0Q1B2t^r^?A;&W%CxNsR[QniA Q~_2s -FPy~\~{4=?Nf#瑹lYʡE(Ji$.dQIU?fQXԷජs%β4\FD(.RuyƘq4^J2"8D$;Jn)_V"@i僑.I{ -8EJd1~C8k{]]Ldl\prKBfrL yaU89 5TP~rTm$NUX RY((S< 0ZkɆ OJ\%~Y攥:r4Q !ljx|EzQuO$t*vcov!ahZY1xM]Ta}:4[[b?w>׎2;VŽ]ѡhˇ -QM%S^on%lo-wKhƅGGBNx}%ΌS%߬dCഽc” ˶5y)HxYv ~oDGh74}T\x6RN"w"˖)I6J 5c^WJAڑxˎJt"r^aUJv%sJ26 6R?' ٮmvV'mEgp5Gѡ&4 edW?mmI!Ŵv8UA$CPl˰=.4!)7._citfiiܸ4QtlwHi·Ӻcivc3S4>T^uok4:yzm~ݲ|SN~3"Μg|F]-Q?R^=[h vN;2# d3N' J!/@EU N Y/ld2LP7"0L@?BPOOT'&$DAh ! Q2]IPu[}. ǃΝx٦3*ƣ3sB #Ra$өf2@o?ey8y̩B@xbp:N5mw`}.z͓NzkL8f6VD{,U:(j{Rg36?e}sg}|z8ҪJk={) ίt02U葠2ApLѶY tj\wB]\aEU6i]nlwXR[$tFMww{$$@z}{j8F@MYJg;nطƨiq=4.2KpO,˶Prd*IL᠈jys<:vWTw$j^x^gud$4ēWWs t^!5\X2[9Ҟlb8Q"V9d_E+f]D|=ZB-Pv XedU@C bOe$BC1iVؙ_b{|qCWq-kh/5GqI(MW )z,U2]`t.(ΜuH5N;)U|kemWkSpeQWeZP5v,@WLY!V TʊU~ #y'wJMNߒbeD:0? u!E[!y2=e!2>6sLA٫g/l endstream endobj 366 0 obj << /Length 637 /Filter /FlateDecode >> stream xڕTK0+UF%&vG-H[VE{!BX3J[Gydzpj2(f f2{V % Gc Հ#8S`@_8bI)2/ܑ0T=|`Ni]󆮠Qnȱ-XT Kl7}ɷH:r ܑ=9~K)@0|%SH{p>GyݍqؤSN]7*7$83ɤtfS -+ֽ_=ጱY k>ֽokVgQ:ƹq6ƂamҐ"Ɍ$zԏ|> /ExtGState << >>/ColorSpace << /sRGB 370 0 R >>>> /Length 227613 /Filter /FlateDecode >> stream xˎ+k^~]jJ /噙]n( Ít09oRNI{\yXOF_?˟ǟ˟ׯӟ?ÿ7o/󿾝l?럿~y{Oqz;}y~/?W_9W?x>~:}_9zۧw}?|t~?o|88~x*2y7!{c?/x4/7_篋}y;|wZ!lj﷗~||ߟ|z3q"?ϟ~7v/L|~~3}L}=9v$??󝘟ǟ>>|v h_~w}_?:rվ֯_Zwx?_}}.Z;{;ܾGx_Z۩}߿>ϯ@}l_~~߿>ԏw׾W'hk~}׏wߗ>߿>9־lik hkr~9}ș~;>&{]!g {S{;uY J;q{o#߿~[xӾ֟XyՏvCZ{~}??׾֟~,>z~k_s~,:{~,>>~~,:cs}K?^X\˗nn̈́o_s~'l/iؗ-z7>/ekNflSVdB79}f|(ϊsمo'lW+`l/˒t( eyLz eN02 esLoD hXA&~3?M749۠&Gcn4ho4d&?M7nit&g4l?M749X74itO͟?M74iM7nit&jO͟l4iϷl4iO͟l&?M7nit&?M74itO͟?M7z,?M6n4dO?M6ni\7ni\7niXZ=O?}O͟?M74itO͟Z=濚oi UEsvyykLӜ~'l/i^hO7ο{ooW4qB79Q=lWI\O5/wVDLvwi_O~Ows]cIoG|m_26~̋e߾{~<7ȄnL߮Ȅns~we7+`mbτn4litOjtO͟l4iO͟mtO n4lc5dO?M6n4d&g4iO͟l&?M7nitv<ښnit&?M7nil4iO͟l4dO?M6n474itO͟?M74is is icoiX?M7z,?M6n4dO?M6niXjo׼]uߕ3ٱN3قo&?8s3Q67[}(~Y߮Ȅnve_|Mo0Q61cLVEy0aO\]u*lw"N濮`(D xb󟉲O+?M6͟GieV6/mOZiO+tV6ieƴlcZ͟g6n?l4ZiO+?M6ZiO+t󿴶tV6ie?lO;oml4ZiO+t󿴶tV6ie?lOZiO+tV6iecqiO+tV6ie?lz6iesO+?OO+?OZ͟O+?M7iecq/m4gxvy{jgmL?/<`ʙ(͟'6LzglmZͿ??vg?~7a?߻M.0alcC(;yH&tǷk'+3nU  0Qv|?τ4伂;~witOjtO;~4iɎO;~WtO 4b5dǧO?Mv|4dǧ鎟&4iɎO;~&;>Mw|itǧ鎟v<ښitǧ鎟&;>Mw|i;~4iɎO;~4dǧO?Mv|4w4itO;>Mw4is is iciX;>Mwz,?Mv|4dǧO?Mv|iX;j?/Hw\N?w3Qr~Bw|J f>FO`v7oxbτeǷ+2a;So_n&|׻??_0u_ݶ.d6ς 2a?W4,OX`l4F&oOJį7&t&g4hL͟W͟l4dO?M6n4lmt&g&?M7nit&?M749۠O?M6n4d_74itO͟?M7tO͟?M74itO5dO?M6n4d&?M7nitVžO͟l4iO?kO?kO?}Obicoit&?M7nitObW?M7~\^yL_&Y~v<Y~τo>F|ey&?6; IL^Nsx͕LNdB7D&|~ەLOȄn&oVdls^gf&?l4=ۘV6Ziz4O+?M7ie?lOZ͟gOӳieV6m\ZiO+tV6ie?l4=ۘV6ie?lOOZ͟O+?xtV6ie?lOOZ͟O+?M7ie?lOZ͟Vm?lOZ͟F͟V5?lz,n??lz,n?M7ieV6n?l4͟Vm󿴶l׫?/nff},LoeozL_~Dy=)o3aϣlf6ʙs.yY]LȄmzL97STdT05p42Q} "L_WrMͥg_sdHz}/LTS0QsFCfH*n*j3T0R1HMbZiE*h*ӊTL+RAӳiE*hzv4HŴ"4=;&4iE*TL+R1HMbZ M+R1HMbZiE*h*֤R1HŴ"4iE*VR1HŴ"4iE*T\Z JŴ"ӊTT*VR1HMbZiE*h*ӊTL+RAS&4iE*TL+R1HMbZ JŴ"ӊTT*VVM*hXܤbZ Z=7TL+R1HMbZiE*h*ӊT걸Iť5TÝ./M*r&TP݉"zLv˄ /ldPwU`= bۧAdO`I/ڈL >4yG&/>5']~n& ^J2~1s+yL0-d] * Zw#'5 /+l)F<2~[X/L\ϻ_iL  y~a0Qt(џf=Q꺞L_ؕ@Lg0~pkP_ۻ2~aD >+\ UE}-~axr OE&/hi4 EM~&L449g_/i54 M"M~ASH_9M~&~AS__~&~AS__/hidzƭ__/hi4 Eji4 EM~&~ASH_//h44//h44 M"M~&~AS__/hiX~V4z,vH_//h44 EZ=_~~a,/w&_? =jM+Ra3Q~ '3Q~/D ljLTmk&T00RQ4d&\*I0(pY?*kդLTLB^D1 {6G&$D1i$c2a&I`BM5h&IؕXLIׇjfuI`BMbZ1 ĴbӊI$VLAӊI!{6QTC&joj~"Kn\OV*"1J<u(R!Mgx&^0ۄrg~a"'/O {}BBh(~!ʶMghn7l/꫖ţWƪbF}qm>[&L5fL5v<ښL5vaaXl:䙨ۄ[G &:=]bDy}Bf&uȻjru6aWwl:}BxYG} !wl:SPX{ [wPa 똉bӊujZ_M+1XMϯ.YMcZi:hjӊuL+ASVWӊuL+AkW:렩u\ZZǴbӊu:V;uygi:hjӊuL+AS븴f4i:렩uL+1XMcZZǴbӊu:Vqi:hjӊuL+ASVcZZǴb4i:렩uL+1Xu걸YǴbz,nASVcZZǴbӊu:cqKkAcŪXM#M9'frG&:LG(agL3Lu>f{SՐgnE5s0a7ׄA|kM5Hhqgj0QTCOOZ5xB5xB52k` ` Ȅc6TCvɄ]QDQ;bLjT5L&gR4U FI檑&ASՠjjT5hi4U49jT5ڙTQ Fji4U FMU0j3̢4U4Q MU#MTc5W4Q MU#MTASHՠjjT5hi4U Fji4U FMU&ASHՠjT5D5h4Uz,vHbW FZ=jjT5hi4U FMU#]5VsHc\T&ZSm:d9H&Dk~!F„T*OPH;J֊I0&&a{LT톉b.6*9>qJ&'*į*a≻Jx⮒L͕ ۯWZdLBbmMžOIJk$LIȻlnzG&$fL>Ϙj4549IyMM&&AII$hjib45 DMM"M΃hj45vTL&&&DMM&&&ASIbiMM"II&&&ASII$hjib4541 MM"ML&ASHXM"ML&ASHI$$hjib45 DMM&VniX&ASHb741 MM"ML&ASHIcjnir,~$hjir̡Ilaor̡3lME!M944T ~3Qg(m(P%g0Q!ԞC U9oT8{{oۯU{JvLS2&\ 4Lggړ$2J0|3/J nO9 W+K>J gDQ{?m•@+veE 2aJomSr\&~LT ̄J&g&4U*AJ&J@S%T hi4U493T ڙIQ*A(ji4U*A(MJ؊34UvVJ؊T hi4U*A(M MJ@S%H%T D Vs%H%T D h4U4Q*A(MJ&J@S%c+AZ=T ؕ MJ@S%H%T D hiXJ+A߀ӊ3(4=L+J0(M9ӊT %VJ`Ov3.*ML%݄)Ηw3Q޳s^־׆}7&<{{ilO\5 ymxL6l*m+۽4bln튂LۄoklWelkWy`&l'40iJ{:|LfB=ivEA&O*y:Wׯ;.2aJw\LdBϛv&Wg U*AT ̄J@S%H3\ D h4U4Q*M MJ&g&4U*AZ;3)J@S%H%X͕ MJ@S%H%T [QvVJ؊T [Q4Q*M MJ@S%H%T hi4U*A(ji4U*A(MJ&J@S%H%T D h4Uz,v%HbW*AZ=T hi4U*A(M ] Vs%HcD(M M94U*Ash4U49T D h4U4U{rLT%+ (J7 US W}Lm]]%DQ{?kj!*L%0`(Wd&T {&g~w7D&L tg(=+L̿V~1|i><_ L0J৤))M &}8*+U jiB & /Lȹ ͜( irƳCM&@S}>>T䌇@S}Hkg>Thi4CZ;,>Tڙ`CZ;,&@S}>>Thi4Շ4M!M@S}H}X!M@S}H}>TDhi4CMv<\VŮi4CM&@S}Hbׇ\X|~0M9ӊ>L+@cδӊ>3MaZчiEhzn~ W50Q s΄3>ɍ rvE&T7L>vD&L L<L<3>DчOs~L<a&>P}t2Q3]r6Ef=M1o4}>_ID1&Qc&(RAӳKkRASVbZ JŴ"ӊTT*Ѵ"ӊTQiE*h*֤R1HŴ"4iE**vXbZ Z;kR1H5VTL+R1HMbZiE*h*ӊTT*VR1HŴ"4KkRASVbZ JŴ"ӊTT*TL+R1HMbZiE*hc&V0QF3q<½LCY#m0f(/~v&ISYI;J([lg¼ş U]y9 L0}47xKb{X&[#LoY(bw6dBŞ2Ʉ{ ^ {-j:Lvd¼',hbw0d`¼eo*+>ʃcӼܽj&TVOPsD&\Vb2q<늇Z EV>+s:0&gsTVh*+i"+4J Me%Mh*+4v6Wd&J Me&BSYr&BSYTVh*+iJ Me&BSYTV깙 Me%MdBSYIYYe%MdBSYIYTVDVh*+i"+4J Mev<\VDVh*+4z,vYIYTVDVh*+44JZ=沒&[q& V(b)EV02bW0QdgeE9Yŀ 4-;Y&ػ(dB6xah~˜41Q=U&سI(]57Ʉ9~Jʹj3fBm`o . 2b3?PYρ]O}SU`9ddlFb¯gfFbkJ#&ؘ1eFaElǙ8=;)̄M}FlPI\lDlh*644 M&MĆb&g4MZ;K,bCSIY&MĆbCSITlҎg[SITlDlh*644\lDlh*644 M&MĆb&bCSؤTlh*6i"6ؤTlh*6i"64M M&MĆbCSITlҎxM MņbV.6i"64M Mņb&bCSIb\lX|~Qb2El, g`&\lʞʄ>u }ElwPk(bC3pѫp)*6ᙨbL2ij3nu36SL }GUߑtUq`Bm[VdŞxÄJ"&TVbfe'^oDYW&+ʊL<%+3Qdgsd2ʴ"+4iEVYL+BӳiEVY*+ӊTV. MeeZiEVh*+ӊL+B;n MeeZiEVh*+ӊL+BSY&+4iEVYL+2 MeeZʴ"+ӊTVYVdriMVh*+ӊL+BSYVdeZʴ"+4iEVYL+2 x5YL+2 TVYVd2ʴ"+4iEVhXdҚЎzjuZ9^b+rՈ\3RxE9SHuxF\X؁Z]د3b[Ոҋ6M+v>yXM,#}NFʳp)_.Ӈg}om9\HsFpW#HXHs8qNFԑ}H \GܾQGHg8҃HHrx$Α2{GbGb)N;W,hDtG"#%#ݑHHDwD;$#ݑigs$;R9Ҋő͑HDwDs$;)xb莔hDtG"#%#ݑHH+GJ4G"#ݑ͑HDwDs$;R9莔hDtG"#%#X)DtGJ4G"#ݑ͑HHDw$;R9莔x4K2b92uݑ~w;\IjDWG* <#Mg{)[Iʈ;Ҍ,?H#͗4Vi}xzz$FH?|ⷆ<#\a'yz_HFid(ʈ:ަĈ;_Hq$yu$yiFܑ|a89QG_3Rieq{Qܑ)4#ő#%L3Ls$G/#H F#e 1GwJq7Ri}M ޏ#-~y#C>;be?#HU#="#]#%=#1RY#E}mTmgy!AFʓ"NF 0낡ח!锑߿MXFٯ^2r<{)w3w [ebm(N%W,6h6Dt" % ݆nCfCDD;$ ݆d!PЊņ͆nCDD!m(x6h6Dt" % ݆nCfC+J4" ݆͆nCDD!Pm6h6Dt" % Xl(l6DtJ4" ݆͆nCfCD!Pm6xaؐ^0!߾)6^O_FʷuLx߮3qz_N׻:.PQZຏwΏǼa#nCD^gVm(ѯrS̈M|oZ X>_fCz"# Qҋ)672RlH޷jxʗn"gؐ7Ոڐ##nCv*bD!m(l6DtJ4" %ک$m6XO% ݆͆V,6h6Dt" % ݆nCǓDD!m(l6DtJ4ZPm6h6Dt" % ݆͆nCDD!m(lhbCfCD!Pm6h6DtJ4" ݆͆nCD % ݆nC^l(l6DtJ4" ݆͆nC^lhbC~@?;fCɌgQZv#ņ1Q{)sd)6wdDmH/5bؐ>##zYٿfؐ^iHbvgvEόYbCwMɌ mhZԈ!uFԆ<! bCdDmHebCzIKF̆)H!yƌ?3R[nus뷲?ڞ\3ϭf=ʈ>5rQ܆>N:_])_2)q0l %#jCz#ņJ+Fuf |ߏIĊM\11rjcу"FL)w\3R$J )O͈JT7=1#&QoF\=F\a13R$J~ÈK_ɕ(}65#E߈ua%ʮKbH#.Qo$#&Qos -޾ZlMU[|M|.1RtI3ň?,#K~.qἦ2Wa҃Kl&F.}m7]_Hѥ~QuIFT.7'Sc%]ƈT7F\E 1▕hD,[Vb=mEtJ4ZXVY-薕hEt"e%DD,[-+,EtJ4ZXVY-薕hEt"e%eݲͲnYDD,[-+,kbYfYD,[VY-薕hEtJ4"eݲͲnYDe%eݲnYfYDD,[-+,EtJ4"e%ze%?ղԌbYzΘ,=3eXB,0#fY` Fe]ҍ!#jY,e]EU+u>FZ)1j{NFL g}ZfDjg_VZ9@2RJodm,#VncZ)j.U+FyxF~#E&FZ)AeDj/v;Aތe%e"7ܲÛQ޾4zϟi*iͲje2R,K bYu9=~ah"g,Zm#ŲZփ#I,+#jYtF̲TXU)O\e^1j9y.ƈэ,R7##%X,ьFFt#K4##KGYэFhFFt##%X,ьFFt#K4##ȈndfdD72YэFhFb1D32э,ьFFt#K4##%ȈndfdD72YiȈndD7D32YэFhFFt##%Ȉnd+#K܍yfY9bDH1rb9#Q#+'3FNgč3bFaьҌEz#+ #jdz-T#jdE\1#{FVT5b3Fq#3FmSȈ?7͏#gteϵb+iFtĈYH3nrA#G9K,F6?ۭ{7bdצك@12P}FXF_Fb̌O#[w=/#jd^~qkMጸ=z],F2R5[)FHҌlC[cďfdiY5~׮ K<&?eg]߶OݮH)\bQUp)>eWl#ŧ요}D}ʮ|FO3){t6Ҟyn#ѷ'9?oe#[|js^FOwSGޏOgw}h޵k¶(}>bMn#.Qz6wx>VQq9;*n#E (rqGo#.QjIԣ"QzI>bn#E62"GLn#.Qm%J/HGTW0H(}D%~uzpnठJT?[yF=D](E-DQ$j*Q[Tc=/zj_$j*Q{Ezj_$j"Q[TڢJEE=DmQ%j"Q[TڢJEE=D](E-DQ$j*Q[TڣHU(E-DQ$j*Q[TDl.Q{ڢJU(E=DmQ%j*Q{ڢJU(E=DmQ%GpM~$jb(&6$臫M.QDM4Gs".%#]ţ%*ňP9fCm9bbChfC㤮]GyΆyƆf9lgl2lH.F 90641_m64o͆sȹHk)64?\w: 5jۈУbCP}xJoF8;i?5#nC fmGqk.njGԆvmmùnf:QMbCv]6RlȮĞ@H!jQ,l#ņmِs#nCkyΆfm ݆&6l64fCzmXO Ml6D'݆&6"֓nCD͆&6" Ml64mhb!fC ݆&6l6tՆnC Ml6Dtlhb!fCD͆&6" Ml64x"jCD͆&6" Ml6Dtlhb!fC ݆&6" Ml6tՆfC!PnCDD;\݆nCv" % ݆nCfC ݆͆ņ )#\7H9rFԆ^{g^lfC1}mvKHـ__\׶ކyƆyyʆi6d0~I % ٥K_>~(YFLmyW 1+2b a1 w*n#EԚ2 W;1 w#@-uץEۿMYHQ MFT"FQ F\MV, h Dt"%]@)Pb=n DtJM@)P) h Dt"%]M@DWDS +(hŢ@@DW +P) h DtJ4"]M@DWįE( O]M@@DW +P) h DtJ4"X( h++(WDW +P@@DW +P)Ħ@DWDS )UqHE)#xOF~=<mggʈy>f)޳6vaxϼB~lޓy*1ҼǞc<}ğc4زq+1[21Ra=fBHQ {> d>Fٳ@>*Uk>8?+K9?y{mHߑp1HQ }n]#@m(7r1Bz)%Ȉ+~FL:F0(#@m(^THQ {w}.bb(hŢ@@DW +P) XO%@DWzZ XO%]@@DW +P)( DtJ4"]MV, h Dt"%]@@DWDS +( DtJĈ)K,#Gz)1Z#*F/] ͈REiDtsib3'b=D'ݜ&6s"֓nN9I|7'fN9ݜ&6s̉4ib3͜nN9MlDtsjND7͜&6s"9Ml4ib3'fN9ݜ&6s̉O9ݜ&6s̉4ib3͜nN9MlDts̉4%Vs"9_^9ݜpEts"9%DtsJ)̉DtsJ4s̉hDtsJts3޻K2RI{)ȈbN˷+fFܜ1sZ{H1'&#jNH1']`)&@^GԜ;v2#ŜfG{ױ}Dިl)3ut3W1RI"#jN͜_ŮF9)fxJd~G_"Q {R͈J>3j4Ziw#&Q~+!#E|D݇QwF\NFDc2n`DrQߜ0R$to?ÈK?;#*Qz#E*4ҫ2޵FD^eD%Jg$D(K%*7JM.QԾI%*7J4"D]M.QDD(KTI%hEt"D%DX$*$EtJ4"D]M.Q&QD(KTI%x.G(KT.QDD;\].Qv"D%D].Q&QD]M.Q(FDI,#ET9#*Q;Dso#E􂩌DK?CB^>($#&Q$F\$FD(j4RbHQFTµi%-"#*QjwZ|E.z(v|%}}M֣u>G$#FD=sz3g$*9=#4sz6s˲qszMk3'ƊbN*F9l_J9a2RIΈiH1'}D#ŜMQs[)fK5͜2dL3ĈS͉XO9%֓fND7z̉XO9%9ݜnNfND7'S)̉DtsJ4s"9ݜ͜V,hDts"9%9ݜnNfND7D3')̉DtsJF9f15'4csra/2ʈ_H1'}2yFԜtg#'UOz##Kz#Ŝ2r<%|_ܜq`Qsk)W1W?=(E|.M}i$e(`*#*Qz#En?F\.茨Dc)fD%j{V`HH(R8#&Q~#.Q#FD띗GzpvQ%ʮʈK 3ňKTI%XOD%S&QDzj$XOD%D].Q&QD(KTI%*$EtJ4"D]MV,hEt"D%D].Q&QDD(K%*$EtJ#Q3R$jx7#E1$W3R$JcHT9gD%j~D^V(ۏ("QzTFT{inH1R$J^Q3'F:H1T3btU}.Řץf%O3H%}r|FT\]nj1RtIs/#KzciThե'uiF%F~#Mxw1'#EYRQ]gI1FeDuԌ.q]zti~T֯p>EcF\گQ]*4]* ňR1] 5#KjͩH&Q/qVh3ԊX׀VZjbS+b]Z]&6Ԋj5ĦVDWMVZMljEtjbS+%V"ZMlj5jbSMVZ]&6Ԋj5ĦVZ]&6Ԋj5jbSMVZMljEtԊj5%V"Z}]^Z]pEt"Z%jEtJ*ԊjEtJ4ԊjhjEtJTғ0FZ)t1Rj2#V N[qw'0RJS+ #EZ)j0RJ/ʈok绛)jd~J|F̲QOVuD1rOb=V*=9f3RJ/#Vco\Ns7գRRJk3jgՃiOݝW{'BFQ+FZe+`Sw#V*F\7zMGFLN sH{Inj`j] _#V]k*#VZ=8/ij6W+1FL5RˈŲqJA,[Vb]eݲr,+,EtJ4"eݲͲnYfYD,[VY-薕hbD,[-+,EtJ4"e%eݲnYfYD,[V$sŲͲnYDD,[VY-薕hEt"e%eݲͲnY+J4:]WͲnYv"eݲpEt"e%薕hEt"e%eMlEtJ4"e%e#ŲԌbY_QLFec3)gQ;)&ɈY2eň[ў,]dH,_)7eD-Klc\b.K^z #^.Qҷd!#ŽԊ2r<%y9.32|<]^;{`\^rGVFTfג C.EpSieOc2{b䙻)¥(p%ee1z,kn<q{31wgXWFԲoq%X3aFԲݽ+0#ŲQҷ+ΈZ#Ų0U2ʈŲqJA,[Vb]eݲr,+,EtJ4"eݲͲnYfYD,[VY-薕hbD,[-+,EtJ4"e%eݲnYfYD,[VqŲ`,[VY-+,EtJ4"eݲͲnYfYDe%e ݲ&6"jbͲ~,kb,&6"eMlSvwim,벅[pl(T mv$TYoτͲݲݲ&lE5a,W,k*Ͳ|4,ZVNXYͦSe?r1,6ᜪoR1jwrfY:[;kү{,R,SyŲ囼S)RQҥwTe[VS!*C}$7bYϏǽ× e1re{}^?~+fY >+ͲtNX*jYJ,]JKXe'"k?n[V3*6[HuY\ߘ WpTLW>Tp zՄǞ |Ul5ϑpgmy*E9ӷ B^pTp1QEJ.zЅk&\ ׄM-C.B pM؄Ѕk&\6"tᚰ  ׄM&lE5a pp}U]&l5a.B pM؄Ѕk&\.\6ᚰ  ׄM&lED5a.B ppM؄k&\.\6ᚰ  ׄM]&lV"4ᚱ~.Bv"t"tJh+B.Bv"tJhEE•Єk&\.\ M]~_2[+•gkQiµw*\TpBnOxSQ] ^pTp-uZO޾"\sɇ?.kUpAT\05e^QRRKw;OEK7RiekMSqᲩWT\|F"\ ?<IUmK?*p~WlKT)uW{~^Xs/]qNRKWRqRQҙT{&~T{^zh^~{ O*^Rչ?-{9QqT{CT̽NW^>:u5Cw~bTܽǭŨ{߿uR^:Js/T䖡wFWz#܋+ah܋݋+WBs/Bw^^^ ͽݽݽ{WBs/Bw/Bw^^^ ͽݽ{{{%4"t"tJU̽ ?^ ?^: <u/UFrRK*Ž㱗܋Wz#܋+ahEH4JhEE܋݋+WBs/Bw/Bw^^^ ͽVX+WBs/Bw/Bw^^ ͽݽݽ{{{%|dWBs/Bw/Bw^^ ͽݽݽ{{{%4"tJhE^ ݽݽ&lE藫 {M܋/W6_&lE5as {{ {M܋k^^6y+#Ri#:bQm&r>RێT{!N>Jq-[ƂXS)5_O{Q1.k-c˷Ic?sctRkXsM;J۝k%*^_RV4|{no˗{<$#5"|ѽ^S1J؄揥e0W .MEKAR)ux75҅p WZ??* g)um¥F:\QQҹpT\#p.gp>p$M,' WCsS1TpDMXG^*\m2(y֟NŌ-gHފ97i{{ڄ&lF6a M<=mi6O#tOyڄ>ii6Oy{ڄ&lF6a4B M<=mi6O#|z{ڄ&lF6a4B M<=mi6O#tOy{ڄ>ii??5OۡzP=miW(P= rC+OۡzӮPSwFvbd;T#ۡP vFC5+#ۡȮPljdW(FC52B7+4#yOҌЍ,YB32B72B7v"t#KhFFFFFЌlfdnd `J12ۿ+ndUQ#Cw72uU~,:Z?VXjF=Utʮ#sނP9gTc>WZ+rʙ-ܕ"gU19ӣvqڮrAș r"x*CsW̶r>G vlFWYzь,YB32B72B7fdnd %4#[a1fdndnd %4##t##t#KhFFFFFy@bd %4##t##t#KhFFFFFЌЍ, %t#)܍lfdnd6#ل&lFF藫 M،lfdndnd6##t#YLZJp{I]Ul]q#kCݩ#ZaTtbF\vōL&OH'MRi/Y|J12=aFw#+ByHRyUl])F6.6fuWʜwT|hdT9NٌL'FV$n*.SwQsvz79gӔ!U_FQsSid!Rm}S)vkʶtz=r}6e[o5SSEêll6e)+ۄM&lF6aS6BW MؔЕm¦l6e#|*+ۄM&lFU]&l6aS6BW MؔЕm¦ll6e %4e#te#teKhFFʖ.Wl M]]MؔЕ-)+[+lǮeo*ڭ6JQ6]Aŕo S1es3RN#*l9T\t]qe{+l>aUR)K64eS1LŔaJQ6ʦ']S6ͥRM-+߲<$iSeSHŔͧQqev(.aME)ۗP-es斗ʳ%,v]7OSLE=MmJ4Ti:7+Z3hʬ5*m֚lyU?kmU>_4*t1(i\.4ctW|K*iv<4R04;oW\S|m4_4z|ݕi:͊{O*i*SRfjG(Nڣb%Yk>+[pe;lΉTTT簾llQ6- RO;7e?i?y>Xl%+lQ6߻!S6<*l>JQ6;L<4ˣRMHEm 樸8*EtE*lhJQsT|ZzVbIŔДңb֖Ϧ,roeW:*t.ޭcъ^N*.} M]]%4[a&}.}.} M]]%4#t#tKhGGҗy"} M]]%4#t#tKhGGҗФХ/IK %4{|4#tKhGGҗФХХ/]H ]%4雰IK_B>BߟOGtT/KW+җJRO7NEot܂Q)ҧs#Zĵn^+*}JROە"}jfOT2^{oc?O;9&P)RQSROJ?ET Wa*?*먔Yvw]*zP.[p;n/ZûNKVT>!6!OQ)[&Pq;~cNJ?OdROSqs2LEOQ)[QqK|ےw>]̚ }TUA'b:/JBT U$4+4RPE2[!„fnn XaBBBBB„fnn &4+$t+$t+L<0a„fnn &4+$t+$t+LhVHVЬЭp  u+Y![ 'lVHV8a NجЭpf6+$t+v+Y![ _©eW Xr*mm3C啵|* uW*j‰JY{['&T<| M?KlSQ,?Sqd ?o H -ӻB!aFD_ai*M9ROR)K)SQӅRgUT^4sIgR)R)׻!FMRQɴT*[]hO|UylTړ>6 <_B3Syڿ'SS)ҧfbfw{7e[S)W1S1󽔩`*MMU)秤WOH_!ͩTTwM NI Wo*M]&l7a>B MؤХ3G7a Mؤo&}.}6#t雰I߄M]&l7a>!Mؤo&}.}6#t雰I߄M]&l7a>B Mؤ3Gh77M]%4#t#tKhGҗФХХ/I߄M]%yT^9J>gY|~J;†TY/Y7s?JeO'ҧQ)ҧ<[*:cU^e+罦$%SoK?ݖ1?=/ зeSAe n˿uiT\}*K*CvLUЍ9Um}*~&:)+UAuUi* S R)*8_]kMu^*F|T eb}4Kn*8ã5;YU_e^}iݾbXm+TzRP0LŬЧR)VNXmOEwyǫRП/bVx+tV{ebVHVx>} G*nH*BzJ·}PJ5Ƌ΋fT ƾ uT *n>ɒJB=$B0J?ۘfʋ| &4+$t+$t+LhVHVHVЬp &4+$t+$t+LhVHVЬЭЭ0Y![![a&4+$t+$t+LhVHVЬЭЭ0Y![![aBBB„fn+,VЬ%Y![aBBBBB„fnn &4+Y![aBBB„nvŤRPRq+d s^0B}"LŭRpZFZB_{s%souF'ܮJQA_Efb*,FnWz<: mWA8WAH.Iyq~6]4S1ɯT rP)*g*竮JUW=VϽigT^+HL*HRTP/U]lU/|v~|k4S2w|ъ$T~Υgy?_ޟm*|T|1?*IJbkJQÇ\QATmyT0i*3 eE!^*gמb*x *x4jT\}B@* T g*Mm>D*WA* M ] ]   &4\aQ M ] ]  &4$t$tLh*H*H*y`â M ] ]  &4$t$tLh*H*H*TU0 &tw*8aSABW NT/6 M ]'l*8aSABWaW  NTPUPS)*8_?_dRTpݸRHEUPVR)*[USqD=nb*+ q1SA߿OmTTgn6'`#>*Ŧ*3 RQ]%T TL~O`˚JQK* 2 T T > ~~3\s{ ǡ*hQy* WSyM RyER RӿRPg$R)V8df|6FJB[y3S1+lY)VxT+Lh*.NEO'%Sq;}65+dHyߟL=bxP)w5ӥͩج@_(BUp*؞SQ<|cE}TLpNaT@"S .xRTPwCLYʙ&TLʙ&V{J  Nq&.aDB Nq&6A$tA " M'lH8a >wXq&6A$tA " M'lH8a  Nq&aDB?&. M ] ]   &4A$tALhHH肘q&. M ] T TD*Ea`*&ȑJD6J5{['WL>*Eu /ѡǨdb*ݯWy+:R)sWSQW}+Z[+iR\Q'5PqW;T$-'R\Q,ME]qwZLX^?nB*J+\Q'sE̐JsE[Le˩+E*6T^YAفTή[Z+R)xWԕT+^bB*_Bm볩lCKŵ'[w9{RqmtL=RQb+6^GT\x JF◊ANhx+T⊧lsEӘ.R\qm⊇{f%WLH]]1""bBsWLhHH讘\]]1"bBsEBwEBwń抄 ;,\]]1"bBsEBwEBwń抄  ++bBsſUsEBwń抄   ++&4W$tW$tWLh8asEBwń抄 :Jq>1uEUG>ME]QgQqWtI\џ SqW,T|fbBD*E}-DTTu "wTL8":J NRQJDUTo徏JD2wۏJD]0H1JEQ~Jw[✊ NfB66>J;V8|iTlGج-+Y~7 OXX+LhVx:Rq+ٹ:R)V{Rq+t^LyߞPq+ fSQ+\<܋T }T pm*n[aBwݬPwIŬyJBHXa٬0h)Vx5+eۮV$+<3dT &4+\a„fnn &4+$t+$t+LhVHVHVyb &4+$t+$t+LhVHVHVЬЭ0ad+\a„n. 'lVHV8a Nجpfn6+$t+Y 'lVHV8aBBB}FFY=R\ϼ8bT[a*f>JBZ>R T|/JDmOt2"t 2=*.JD-rcYigTs4AiT ڴT\?O[RQ-R)XБ nHw￷_ ۼ\oķ3."oWm^_]A >R*DH.SQAdA#A\#rT\m;D*Mmы8&6A$tA M ]?*.6A " M'lH8aDB Nq&6A$| " M'lH8aDB Nq&6A$tA " M?*&}6A$tALhHH肘1 " bBDBDBĄ&6A$tALhH肘ж%,VHX^GSQ+T^RP/Tf(G*n>E-B_MŭlPy MV.*u S)*^.}k4< Sػ7VTPGT Zn*EuST_ڎOT\}D*>yJQpu\|kB/f^9Woߏ?K*HLEUPRTP"R)*_qL*Ri ?ORTP7]LTm~+q{ъ Χ5@yƊ ||} ʚw{)*PUo?^Qy_gQӯEk*fMUW.}%e#teKl >{Z&g6LRlc[**gmFǍwșrU/e])rf_ٚ0,ٕ"g)ޮ9|_V%9KӨ9ӛJ*ElrfF,Yg#KX4L-ka:݈JѰe+]PCaY^9hߵ7%< ^6K/u?2͇Jq/2*Žo^vWܽ+^odms9㮸{:|6ZCOu˪4H-iݕ^qĮ{ͽl])e[mJqu@^WEK8R)u5:{|7*ŽTR{Qq"tJo${%4"t"tJhEE܋+aa*E0"tJWo簾avrU1 sR40=(㪸we4 ӥϑ yީ)8( 4̎ڕavU1 ; .WE5loFh.?R40T ;YkF7:wmU%49#T9+G=-y{{ZB4BFx{Z~#V<=--%4O#tO#tOKhF螖<==-y{{ZB4Bii+,=ߥ{ڄ&l6a4B M<=mii6Oy{ڿ{ڄ&lF6a M?J3;y6TMMǿ+EV>7"gqG**gaY'O+GE=0VO HYcm*&l6a7B jo6{#7m&lF|{jono6{ۄ&l6a7B Mmfono6{ %|$t{#t{KhFF- %4{#t{KhFF-'t{#t{Kh+,F-a7}*Gٛ RQ{ bovT4{~Sy86{FIFJ7݀&hMRQ{SbZ;} >kM^9BP{S^ٛߕS)6/F~=CuT*jo:J7:*'{O*{ ߪ5 u>*}lz8C*ʖDieT_<'QyERQifQyERQ)ʦwe[˭]>3TT*E$uuiʦSS1e3Kw(|*1O_qe;*)Qqeǜ>΂KŔ7ƠRM@RMWʦ|P)ʦQ)6_a.Uȵ*\*lsT^Q6*l M]]%gE]۳ll _BQlll M]%4e#te#teKhFʖДЕmE ZS6BWlll M]]%4e#te#teKh6aS6BWll M]]%4e#teKhㄮll c|E]%4e#4eKh%T9&g3x<~W6L\*M%g[lKo}]]'2_+E|oTL|5*>k͗RqOͮSQOL[ bHcT49Q)R1{sRMgQ)KYSQ{yWڼ7ETTNJ !MTt_)N7)Vt)< mH9Nwz]:~-t[*t3vd0t3&ZO8N>NENXJs%8?2N\ot~3*tZJq:=x4s:ۦTTt7Z*t;@yT.s:?,Jq:@*tf_*t|UiNRq񗜎;]Bs:Bw:Bwtt ^q:Bw8;]ۖKhNGNGNМН.9;;]Bs:Bw:Bwtt VX.9盧9;]Bs:Bw:Bwttt %49;]Bs:Bwttt %qBw:Bw1tt %t'xTJq:>HFTTt t+RNNV9R*NXT\|aS*&r\WwSDΏ"w9R)"w9Q)"s**rz*"i~~޳.r~(d**r~DNg,r o6W{QigveRyT򨘲} T /W<-4=X{oHxNK74OM=PqO;}O nӸ̎^QOӝ,sQMTM*TOq.{AxME=MOM]iTtv@[=-XIYڲ*jo%4#tKo%rE]>ߠ찈\B9B9B&r.r M]]%4#tKh"G""r ]?MDEn&r6#t܄M]&l"G"7a t܄M]&l"7a9B MDEn&r1>a gXEn&r.r6#t܄M]?"rkam*E%_FcT/xo/*ETTj3$2"iȵ *&r>+EXz5wwM"q*Et=n*&r>큊\3ѩTTMNIEENWQ)"٨ӭR1C%+7"r"^3+&r>yoU5bsNŜ.φaSQ؍ܷ8]+G巼hҜq}R*x~+PN\RN,NSQ;q6{^1yTc *t~2*t:ߝ;?qӭi,lNJqMKŜ_NQq3{4/N+ze+zӵǻT|Bު4ӭRQӵTuT Nu@9VBT* R鷈U&lGoMؤgU]&l7a>B Mؤo&}.}6雰IK߄M]&lV#4yݤХ/IKK_B>B>B&}.} M]]MؤХ/IK_B>B>B&}.}.} M]8KK_B_a>B&}.} M]]鵖J>]a@H Ať)tK9>GH+rR1l=ϔU)皕ufw|6D*vߚƾ޷_r= F~:?*ROgP)zRQCTֱ3rsld ˪4ө2Ryz?7y}cEuϴTL4ImT^QTm*Y˩Y#HX*V輘Yk-bT0U)Vc">ܬPSq+t^RP/bV3A* >K>>BEŭY W i%BGL*na`*jbob* ua*jDxU6*j/oP)Vx7+q}a*jޗJBI* M$SQ+T^o2&7 >:XaBBBBB„fn &4+$t+LhVHVb |&4+$t+$t+LhVHVHVЬЭ0Y![![aB &4+$t+LhVHVHVЬЭЭ0Y![aB't+$t+Lh+,VHVЬЭ0Y![![aB¹߬JBjPq+<_B53bZwIEPcSq+3RpM[+fthUZ۽b ]߂b;H)O^%=UT}ROGR)~eCVLEOɐJ?-FKջvz0/Af+gYRUt>*ESQSK;5޳MLMTT\!G**}>Mťq0>INťksŤSqT\u$'b绞P)ҧ띩TTtӗUiҷrqLTi"TtTTt""}SLťRyER鷈E]["}.} o|vX/IKK_B>B&}.}.} M]]%4#t[a.}>PMؤV6雰IK߄M&lG7a>B MؤХ_إo&}.}6#t雰I߄M]&l7a>B M&lGa MؤХo&}6#|r?bz*~TPy8ĩ鵑Tp*nz:3=&I?bz>17 YB;;ǭWEӛ+sRQ[4_oRֈ|M/7=ȞJ1sw*jzs'1o??fz:/NLEMOXfzS/oNMNMyh*t,WνHy8r2=֨cmN9*Mr;JTTt~""}DJN5]&}:m6S)whwkҷng6.iҧG1Qq;}k8/N(|r*nzʹcl1ӵO+ S1mW^{KEMO7Sqi-f|z>bzkĀS)w/gfzT`5 jz6#|a5=B7 MLMofznz6ӛބ&lG7a3=B7 }}bW#tKhGG覗LMM/^B3=B7=B7fz6#tKhG覗LMM/^B3=B71NG覗>WXLM/^B3=B7=B7fzybzzO*PqJ1=Qqs9LLo Y>bzkzS5L»|K>XOEOS)wTk_niHZ8{GaLnROP)71n/TVKM S-'r]*ϯ{Q)г ~+[ǿ|;z?0'a*:JRɁo7K[ok :ϚJ?=*gKs߂Oi)R)ʘ?Hw\7Ӎ>R1=[VBDROW"bw7әT}}IEpo%7>$_B?B?B %4#tKhG |O6#tKhGG/_B?B?B6#tKhG/_B?B1NG>WX/_B?B?BAzNȐJ?}DB7*tL.S^=jnHaJ?ҘJ񿟋ʙ*tTT-?2.ROgP) S1s2\JNhTA*lWT|pQyRyz7q8>1_KxGO}RO}[/>;+GIBJCINRO$NEgNT3TIusLEOgQqR1ȫRW"ҷOPH?0ROq0߿=Ȧ秠P)ҧ8J.+bw[P{+R1;ƨ o e*&oegC*oe3ToJ1Ȅfnn AAA&4$t$tLhI r Au$&l9a3HB7 AN rfn6$俰 'lIC AN rf6$t$ 'lIV$ 'l9a3HB7 A5r* ˕_R *ATA霊${'U ~VA6Ys* u>%b~*ns7D*ALs95r7b-R 8S1lwSql8:bE:AgO:Y)S1Ө3R,lIt|Ϸ7WֺRiFyS9A|JMr^m^Qԭԝ}s}~yjc[*u+9b(b3H{qB TAyW O 'th,rJ t1+ydlA/R ON TAF? fcf J1H=dcK*j8b뿯#fE:R p pO pS ߒhToɺA~VAAN rfn6$t 'l9a3HB7 AAN 3I( rjW(AP wC5+ܡAP rjW(b;TB1A^ IvC5+ܡ P rjW(C5A^$ P rjW(C5A^AkWAs|+]16JF iP]#T+jb[`JqE{"+zUQWw+/WrUm])畬߸=쪨+}ծWb%„frTTϼ+:erW .WEUpsϻRT&3 \k*F73*}eq+gJ;\ΫV8֟KV+ ʷ ΄WŭڮRp^ʏy[]PC]q+T^BWg]?Ϋgόv᮸WOQig3+x;rmWΉWEmKçk-#J?[}U̕]qSe*cѮ3eܕvUqCۡWPoW(C+ۡPo;TB]І?>G%4#t#tKhG/߄%! _B?B?B _B?B } "C׻v"4K"PEN)sU.WEEΞJ9Q)"g9=dW\trU1MwxULt]q*.r mN.w]ߵ<}sL΍J;z .;=YbW%Wy(WN/ٕwj ])zF]-;WU*ElBݮSWK=YrUQot;NܕtJ{])Ng3w8-x*6b :Qya߮"}])g*Jg|.V}rc?*Elr5WŤKnW"}Jaؤ϶͹*&}l>}MHع**}q|>A*MlC*rToU%NE]%4#t#tKhGGҗФХ/IK %tw 7a>B MؤХo&}6#քM]&l7a>Ba MؤХo&}6#t雰I߄M]&lG7a }U&lG7a>B MؤХo&}6#j&}6#TGnҤo~SQӇTS*E0Ix+EXz[_S)ҷk:^1Ӌwťe>Sqy}>fͻ=T\KZY{UWL'NťOߕ"}l@*ELťOOC*Crʮ5Pbҧ{.K["+E RQw> ])gu\wx__Q˩+8R4;5Ó+/*zHm])R~4/Wom4ǽw5+%690?yWKf/>1?=eW颏T<ۿyJBTC>d8(uYGoMo6߄&lG7a?B }~~ʚ%4#t#tKhGG/_B %4#tKhGG/_B?B?B+,G/_B?B?Brۡ_B\%tqV4bVQqcm)L5r6 KT9bISqT|O?n+zc;*\Q)wljҧlGHe75xkSUyi_**}kUߏX=: yWEN#"}qI>'TT 'bSw6;>RO"7IEVH_~TХ/IK_B>B>B&}.}.} M]H_B_o&}.} M]]%4#tKhGGҗФo&}.} M]%4#t#tKhGҗФХХ/I %4#tKhGGҗФХХ/\vҗ.W.}.} }=KҗKmGҤoF?u1mr "}vޮcEJ|}_CťA~+&}윊I_B7=ߴ03=;Sqs8wW|ҪsLLg-R)9{OHy7])b+ӳ3wMϩ+\s+*>>=&aW\\MRQTQ)7|ċ7=zMI]**}nJ駓6 D*twA*K?HN NGRO1/?݋J?Ga_?;K+KR?ʳ%t3wHe*&}K/Z^Q[,hؤOןP)ҧ\R14T)K~ER"}R/au*GҗФХ/IKK_B>B>B&}.} M]VX/K߿wn Mؤo&}.}6雰IK߄M]&l7a>Ba MؤХo&}6#t雰I߄M]&lG7a }U&lG7a>B MؤХo&}6#j&}6#y}-}-BYkhc~G**} WQ)ҧ{WƇS)W4J_9}ǟ>C'?_%CϷwW~;u Xqݩ,$*~* ^;S)ҷ^3X~^"}!5J>kGsVJ߬ב+7GQQiTS*t!v*jzzbbz:G7߽ϩy*l).fz^*>wWڜ'ҜT|N_mWPQӳӀwޚ\36{t RKzט]3©9 *wAP;ڗnwyջ~}Vۡw6#t݄M&lzGz7aӻ Mn¦wa;BӻOhzGz.]B;B׻www M&lzGz.]B;B;B׻ww M]]ޭ]B;B׻www M]]Elw rEzGzPn_Wّ##A*E֖(73訔ɨ^*wzӻ/:[(NwA_qT= ݨ3;5uKnNsӥWT`*tU t:Jq:P+wZ9;bz8ݺvΝNEN%RiNgC8#NEN痭K{異NuӉt[zH啹wT^qTt.t;u:=Je6v[_?z*h+R)N^*t:]oU>hqUT|X*t N2-SLENw RNw LE0:kzG˩\*EtA we7<]VE|kRLL#60?B󿷲Q*oe?u*jQS1A$tA$tALhH肘qE ~|`DBĄ&.. M ] ]  &4A$tA$tALh8aDBĄ&. M ] ]   &4A$tALhHH肘qE ]  &4A$tA$tALhHH肘B1] ] ] dUiG񦢂kpAԇT\}TTui*D;kr>aNEa-nR\QT+,T|MR\QJsE[4WTM]a+,*SQWԛW*s/PLKo^?q럊.vR\QnR)SR1Wt[zn*:J;PJ7VQNT6^6S)ڨSQmTʙTڙ618?R)ڨtOh᯲hO^"F}xBh&_{o <\|A>A:* .1 +IL r  R p3 6W{oe2b59b4ORdR3g̷T^T+ + +WW&4$t\aʄ散+ +WWW&4$t$tLh^I^мнн2y+ +WW&4$t$tLh^I^I^мн2y%{%{eB$tLh^I^мнн2y%{%{eBW&4$t$tLGJʵ~yWE*+u&╺c]*敾JJeA*~:p*OT+Y~ J·J9DJJTtB=JJ·y+Wɤބ2.M2Ykʏ{EeRJIBg<:%3ӛ@d!X*fJ1H]Jd$*jE>+ TlΤtCȤCdKyAT*dN*25yAAz;TŜ϶bhcaP*|U69Xt*E NhNLŴwˠRQS)XQQmHE R9%7E3H8DC ҉%5HUiIE  ّbLR)28JȤNPyev*ߟ3Ix.RK6L2I2y|L?/A&tm<6*ڨIŵ']R)ڨqT6sHjc4m6iRqm< 6Dm^ q*7>%'A~f*TAfA9TA*[7s mK*d*fnn AAdB3ȿfn AAA&4$tLhII rfn AAA&A $dB3HB7Ȅfnn WX 2$dB3HB7HB7Ȅfnn / AAA&"UJ&)76Ri7'|P)pnHjb:*5H:ISQTATڪejT|r2J3)nT g,};JfU^2ToT^1H*̃L mT6ހMONh@h%h*0F$Ih䑊iKƪ4mTKEQ'QqmfT\}Y*JRQ,F%]*LN%𯼢TL:-ZZ RY5>/ }Zi*ff ]O7iF]HNhn3jjyЩ6/HŴKIW\4.UW]RQWԧTO@sE)uEH*>2u喷T+>T^qT  ++&4W$tW\aqń'lH8as ++N\q抄6W$tW 'lH8asEBw +N\]q6W$!Ʉ 'l8asEBwϰ 'lH8as ++N\q抄ϗ 'l8asEB?}f_]r>}-?}ftagf4u[]An>S-S)X`*2=}Ǿ~–J9}羥O*chONTR\Q$3 DOvիTt}iG*˝m,>Flxz)6 *t*ʢ1T6NT6TTuԪmlBGŴ9T6Q*EuTT׷766k/OŴѧR)Xj6Nm,:HE hTAN* ui*:RJbnTӷPRDHETW+uT+u.>WNIP)^Y|q*>;t)ٰp*%NSLsfUbE1}_rQ@*6RSwLES3RpbRqŜ)M1 ]1'lI9aSϰ*&)*&+fBSLBWLBW̄ M1 ]1bbb&4Ŝ)&+fBSLBW̄ M1 ]1 ]1bb&4$t$tLh¢ M1 ]1bbb&4$t$tL|)N芙3l[z\*JQ53nK׳G*"UL]BCTT1a5 9b.TKJ/(d*z,[!Q)gh#TRͪtv*:+6WLk SLO(I<;U6[TT1ȟeK7*Eh]߂kRpULOƄ䍫bz+׏{UUv3iv UQW4gەv2W?^ۧ_qmBWA σ)Al]y Ꮹ UQSvsU m}ṽTLڪ2i+E&m])2i;ˤy+E&|>.*&:cWL؃5ݷ*";TܡLPe E&w2I2y..]&'l2I29a LLNdr&.6$tM& ]&]&'l2I29aIB LNder&6$t$M&'l2I2V$M& ]&'l29aIB LNdR$M&'l2I2dr~L**宸L6̜JIۃ媨L.X֗L&O5FsTL&Ne 5ܕ" Rd_KYd Rd_W&4$t$tL^>y4TLEr]nIxפ^@_J}oP)^Fx岪۬T+Ҩ\#^QTW8{nWzU+)4L2y|L~7M&b2bLe)ˤOLEί١ b: A[y@Ᏻ R23HoL R@*f~۶* uCͫbI3]0OR R'4SqtH 9Q) m6+n>1 b_5H;YfW^;rW^;zFuTT?hF[Q+Em[ѫ'ktZ*E(o]~Rg3TA~|]Mشw*ͦvήmӦtJF} ^C9VmȺP666&4m$tmLhHڸ¢ M~66&4m$tm$tmLhHHژде1i#k#kcB 66&4m$tmLhHHژдее1 _]666&4m\aFBƄ M ] ]666&.kcBFBFBƄ\}^PVie* T6r*E츫ڨ`*mMFTLqP*_BsEX*xJqE+ۨh>b`7+PQ*jT6*DS)ڨn̓ԍw"b<2*57ӛ_ 2k[(ڨRQmTLh.xOŴMv6;tUߧ8M,$$WаhX`$е%%^^Y9fƙUY{ϑ;vt$F#bqt'Q qqw"fCq+&b `mSqk&bQoԳ"6Q#ljЉoP ^qY^eD+=V$x.}}oy4zEށ{cٵQ_LDm$"4;%ܓfDbtG~C$}fgI^QwczEHL!ŻUbDg-8@@++4t0xŁ & f &tX0ył++L^^`WW &tX0yE{ł+L^^`WD`@W,"нW,"нb &X0yE{ł+L^n &X0yE{^^U$W80)+ bD OY`[Cy 7 &+!=``|i$|"3}IBUM_RqӗDl]!Н^Rq9iGXZL$8)Wtz{;:8;+kmE%1G;^DԾooqWqӷ$3}IVM1K."n=UsDM^JMoEIM/]ۜ $bVp+hJ_`>BZA]Jĭ/$nD:_mH$XA>`"XڐHKꞈYA_MĭF7ZE>΃DdӖ1+gHAUĭHp`ژZ9V;7 , Э`dD+hf>X&+t+8Ц@@   4+t+8Ь Э Э@hVVpYA[A[fnnhVVVpY  4+t+8Ь Э Э@@@_n:8.447М7jFn96\S:5rj\#RH0r&FN_GD^t1)TIM0޳s+--Ӊ{ޯ9tH0r&FN t$9]9[e MW mQ[{Ӎ-{s8uo7##b/&Wqo"|2"\ qvoq7` ΩݭZ< I/P$ sʛ;OpNv:l0uN#t"|.;crN;vrN;s-4sN@wN@wN99 ̓4'DvNss*S䜀 &T09';99LΩ`rN@wNwS䜀 &tT0999LΩ`rN@wNss*S䜀6S䜀 &tT0999LΩ`rNסx`rN@wNs*Нss*S䜀 &T09';9}*S䜀qΩ`rN@wN Ω`rNss*S䜀q@Ω훿$"\SU$8*͛:0IHpNlU$80{%nAW viuN%80;'_FĝS0D9-"v|1q Ή>-9$* =twN~D9/}߳?"9%FĜS2q甔[Es:fGk]'b'ɗM<*")IH{&JDG5yz5[$y$QD#]"w )|BD=.'$H'%D̟?폈?&DNG?<'ЁH'gH'zD̟Dܟݟ T?{?+J?q8'BH';OlLuLDGԟN?< h̓`?ڏ9x@s@w@w]] ̓.w1'E.>)E.>)E.>)E. &wtwq]L`r@|L`r@w(E.. &wQ0 FwQ0 ]]L`r@w(uhЇ]L(E.. &wQ0 ]}*E.q`r@w`r(E.$Dwzv=]〞EAs}ށ# htP7k4SHp T$8Icͧ"1o9~?=s m b!5Ҋc{%1v&eSv;g_F߽Hp ;oSp ;ov>61|8cȧ7DcDcJ6u uu ߠH zX"&hÝ` ]M6a,V 6a6aMl[7لH cmBe&gi'STp ڎ?)칱LkN-;$ ..N?ی3<@87mB%t1&K@@mtt1&K@~~~ 4Q0ۏf?n?hcۏf?n?n?h@@~~~ 4tt1u(c @@~4 cۏf?n?n?hcۏf?1@@@〞8't10~~ z~~~ 4tt1<hFZ#<01 402 Я^ ZE@`hhzoeM[u9"\9"[qn&i":/"ָ?•YD|Y;Om"N_P~ILC| !`Sg_0uvwLsg/:;;{ف>L`@ ^0uvSgW0u}`Sgzg/:;;{ ^0u}/:;ЇL}L`@Sg/:;;{ف ^0uvwL}L`@Sg/:;0蹳〞;{فq@ϝ`8^0uL`@Sg=v;{فy@蝽`Sgzg/:{ف   z<"j8߿C#=T㊄ή ]/™vvwv,iX-7& ߾TI^3MSt<~~2XPP j@ j_PJoPP j_Pt`A j@,e\PPI??//~A(Ӂ?L~~~~~??/e[PP=J_PP~q@0/J_PP~~y@~?`н?//~A(~A'.~y~At塞HVvyÊ~o ~o{Eޟ+^oX-6W$:suS !"!+^w|Dv+^"<"?|@m:~~?Ц@@m:~?==@Szh~Mt~M0 ~~?ІɆ~~?==@@@m:~?Ц@@7 ~{{Zzh~{{~?==@@@〞8~~?0z~~~?=<~~?0z~~~?=LL`@&7} ~~_0L`@LӁL~L`@S/=} ~_0{L~L`@S/=0〞}q@`8~~_0L`@S=}y@`Sz/} ~ ~ ~zwH}f|8=G{vxvx?IRT?Eߟjj˫s~[B^ǟJ;)xczh{6zzhZ/=@@m:~~?Ц@@m:~?ІI{6L6 ~{Zzzh6zzha~~~?=@@@~0Zzz={q@O~`Sh~{{={y@~`Ch~{{K@%{y@~`S;;~"u4"bhKÉ~͉~_`OD}\>H}bzxzƼ,ZO")bݖϑU L "O5c~\kБ+~SI@m:~~?Ц@@m:~?==@Szh~Mt~M0 ~~?ІɆ~~?==@@@m:~?Ц@@7 ~{{Zzh~{{~?==@@@〞8~~?0z~~~?=<~~?0z~~~?=EiN/<LM &`j@oS/<Л&_05y7}/|>LM`j@ &`jS &&_05y7LMM`jS_05yS/<Лcz/| &_05y7LM`j@oS/<Лcz/| &_05y`s=7〞|q@MM`jSz/| &zlS=6<Л| &&_05LM'.LM'.LMy@k'="-'WIW &M`_k={ M{׻DB &W׻)J|"i%7o" &š{rHh;O[OyMM~ @o@omzhMMM~5&&?~7y76M~ @o@om@l<Л@k@o&&&?~76&04ZzzhMM~5y7y7Zo@k@o@ozj〞<Л8&&?0&&&?К<Л<Л@k@o<Л<&&?0&&&?К<Л<Л@k@o%4y7y<Л<&?0o5y"iOZtDB[MD`5C;'꽽7y"{g"G$4yB|"zM}=W\~|zÞyj%&d[ ׯD5W~\S?mO~Mt~MZzzh`@=@@&00{Zzzh~Mt~~~~?==@@~~~?}Zzzh~`S={q@O~{{Zz={y@~{{Zz'.=y@;^?]O$so~VkgDw>Ö~>#'ӝs;"w\>,DtO|DBo'{kY'&#:~n"{6zzh{6zh~~~?Ц@@m:~~?Ц@mzzhdZzh~{{6zh{~?==@@@~~~?==@ Ch~{{q@O~`Sz=Zzzh~`Cz=Zzzh~`~~?0O\Bz= {ʟH5 x9?Gߟm}"}?s?)XGZ'fD߳;?==t"h~mۈ^6ٺn#)'oާ}m ݇tܪVHoOr;Kwf~Ǿޯ?>{O'?N}!I۱ z%룽?/?򒝫n'VߎU&t"h_Cp#4USO_ޜ~ilsOy[JM~e;+l=UٚK 7s5Yo\ "z[y%>rlI?TwǞ,~S>__{+r֬m{ߞ^G5Iɱ<%Sйo{f?Zgm8ioyUϾ}z.r;od!_l𹉙zkJOo=>%l)g6I^ۺ؇$\קүciX 䓽 -/e;n<~U[Y'~c?lrNeǾU㗽+zso9s;oϭMKlr1<ٛ[|ȓp%ҭ 7}@N|p|oioWo}?j_~v|r|\_O/_ݓLJ3ڡyߑ~|rd>;L۾н՜/\?zx;r|q:]z/*>uܷ_}r|ߟ>܏_?WSUC׭~G:>hטٯm{}߯5ו?woXno}v~}۾u1qg_wqv瘻_9 D?m7/k[>g|9c6?cnxwc}LJ:Iuy=[aގoߟ{xn?qc?:?Uvx3Qyǻ{M~Eػxqv?{~8s\oi>rcߎ}ǟO;r|.~7o}>>oך~vwf|9xYO_?o븷|NxS@y?8>_Pvq~\u:P?5xss;qA<^?1+u;;^u:x?K8q5uylpXc2Oh3OǷc{9oxc/OW3npwN=|~a6\G{>ݏ}ߟ1};2|.)}}>Xk 8vc YS?g;jqV?ǿ߿Q쾶IUݫk_Y~+o_ϳ._ uG/4~޽Sp\?z]sDn?^<& $P`"^o9Ҷ҉9" &"wHkD"D.z{UfkˊoDlˉ\{sDȭZ#^# 2UzCr 2kI\;N UqR8)[_I^㤰VCgx˓ I3)|L /_;agRx9L /ǝI3)<)\ rݙ^n;^_':-_^{#~F}':*-b>+>~F>E{':;sǟ/eroד8_e* hn_?#t>N@@@@ >:;;{فف}فف>:;;;;;;;;@@@@@7 }uvwvwvwvwففف>wvwvwvwففففZgzgo:;;;;@@@@@7 }uvwvwvwvwفففف^30tvwqR:;;;;;;8)L}u̓فففIa@ Cgή߀“ٵw$tv o"O57g$tvDDBgL$tv"/=O,t> nD^Oz7ןﱷ:{GBghgwvwvwvwvzzgzgzgzgh蝽>N@@@@ 0tففففZgzgzgzgzgh.>:;;;;;;;;@@@@ Cgx;;;;;;;@@@@ǵ:@@,>>:;;;;;;{Zgzgzgzgzgh}rwفففIa@@@7 }`>0O Cgzgo:;;/?;vv#k5&n7/M&}^KK5oxg}':{ӟ:܈[ g$t7ıw[[H !2k~7xZ?E^Ox{݂DϏ37HۄfNk8zK`nntttt0ۄںlB`MMMMMh6666600lmB`nNk &&&&& 4tttn^3tt0MMh66666aۄ&&& 4tttt0li]ul666a &fnnnMMMMM:6a @ t5ۄfnnnnMhlmmm<) 6666a`t0` vuy;%;lB=~tH m] :~FM-&-&!lZ"&B"&[wۄk"?G1`jVh#& |==ϊzq]4&^k@$8R9Mc"jT~Id`8D1D< 4tP06<<<< Aa0<<<<< 4p^Vyyyyha0@7@7<<<<< 4ttt0 <{fk<3@7<<<<< 4t0g@3@7@7@7@7<<<<4 afnnnnNyh@3@7@7@7@7<<<<< 40yR<) a0w1 :;;&aoIa{<y< Acm-QODy$>q y|#< 4H0'~ A`!}q`H0*+$`;恈fn &tt06<<<4 a˺fnnnnyyh@3@7@7@7@7<<<<4 a5C7@7@7@7<<<<< 4t0fnnnnyyyyh@3@7@7@7@7<<<<< |t0fnnnnyyyyyha0@7@7@70yRC`i+}y8V}NDH@W#IԵ Ny'%zz D1Dy{L. CLV ̃)#j>jND}D?WO6kB?#|"GkNV+q}PA$SDC#h>>`@@mhC}}}D#[yXt1|}}}}@@ h>>>>>bG f>>>>b##tt1|}}}}@@@׹[>b#####h|}}}<) >>>>b`t0`sBWzv#*w;'y DPA|7H DoH2 dnwܸy (fFӮD<3yX0n6u}"&tEL!l: "nDMP1 }'A$H ;6ۄfn &tt0ۄ6p&&&4 6aۄfnnnnMMhlmm@ @ @ @ @ &&&&4 6a5C @ @ @ &&&&& 4t0ۄfnnnnMMMMhl@ @ @ @ @ &&&&& |t0ۄfnnnnMMMMMh6a @ @ @ 0ۄyRlmB`&w|1nH 1W$؄;MED}Co~=G1.s]t #K #'YoK ǰ[|u7HXݰ[H*"#ET$6HAaT}_2F2"GI>DyGT$Ga(|ЇGL>`S0GL>bGGL>`(|}D# &Q0GGL>bGL>`@(|D# &tQ0GL>bG&Q0GL>>`(|D## &# &Q0GL>`(|D# &## &Q0GL>>`(|D#SGl0GGL>`(|}D# &Q0GGl0GL>`<)>`(|0O (|(>B֙'֛Hua cE0"GزGD}D='"j|)qur}sqV#G#cGX,dE0"GΟ2WI\~-k:V "oQ#T0G,>eYP}Ă#TgA XP}}XP}Ă#TG,>bA(>bA@ XP}XP}Ă#TG,>>XP}Ă#T#TG,>G,>>bA x@ XP}Ă#T#TGG<G,>bA x@ XP}Ă#TS##T#TG,>G,>bA XP}XP}Ă#TyR>bA XP}IG# >¾"+ $av\~mg$mD押a 7V$%%y=&C$??ֆH;%??sOKV$qDG誥 >xDG蒊 >D"G%+ >bGGG >>>>b =@@@ h>>>>>b##tt1|}}}}@@@@ x}}}}@@@@@GG4 >>>b####1|}}}}@@@@@_G4 >>b#####h|}}}<) >>>>b`t0`޽G~DЯJ=AA1ª2"e##<>7q6X7v.=×鎗#j@=%[ꚧ%_B$ݪH*#z6DO |sEGnwA|DR1KtKQ0Y [ [6 RRRR  薢aRRRRR 4KtKtKtKtK1,-E`)n)n)h薢ahbY [RRR 4KtKtKtKtK1,---E`)hbDz[RR 4KtKtKtKtK1,----@ 'RRRR ̓`)n)KtKםSDekGЋ9Kc hqKAEl|dO`)"ReIDR]b`UT_txRIɓ 򎥘Y [RRR  b H@@@ hbY [ [ [ [f)n)KtKtK1,----@@@@ x----@@@@@RR4 bY [ [ [ [f)n)n)n)K1,----@@@@@_'R4 bY [ [ [ [f)n)n)n)n)h,---<) b`KtK0X `vϿ{ R6xIB~"R ,.Y 劸pB$X ]A$*myg-D^OI`)ў{vR&KQ>iDR "R-D@Kan]d)?Y^&d)l`)NKi|D|ߕiD^-ED]Lb S@w@w@w@wmh@s@w@w@w@w]]]]] 4wtw0 .....hk....hap@w@w]]]]] 4wtwtwtw0.....:ap@w]]]]] 4wtwtwtwtw1E....Iap@w@w@w0 ]O7;o`r~mzG_tGE".|S@".|D]>Dy3K?n?#.H]B$#pΗ5 򞻨{b.^,zQO?.SHp;~r;o.t+"]|9$w[YI""뎊$wq.'yyh4?)<YT$ُ~L`@ &Q0ُ~l0ۏ~L`(Gd? &Q0ۏ~l0ڏ~L`(Gd?n? &Q0ُ~l05d? &Q0ُ~~L`(Gd?6Gd? &tQ0ُ~L`@(Gd?6Gd? &Q0ُ~~L`(u>0ُ FQ0ۏ~L`(Gd? &Q0ۏ FQ0ُ~L`(Gd?yRGd?6G`?COu#~pm CbB$z"f?|I `?[u"~>DDЍ3&zrM;G C /1ёh?쒔y`~cӟާȓHkD~켓ڲg Ce)`?T CD~\9b#-)Ht"W2D̉k$Sbe"oJ))))h"M M MI`J)))))hdݔݔ 4StStStStS2L M M MI`J^3tStStStS2L M M M M@3%@7% )))hd 4StStStStS2L M M M M@7% ))hdfJStStStS2L M M M M<) 覤a0%`J.\YW4%*W:Lq '?"nJ7DܔfD)'#ԟ? X)JJ$w&`J4P2 )L'zrMy _zu Dt-S25%=o X/Oǧ~0%~"c_#Ln13%.SKK)D) 'Sv"jJ"H4%*W$SbrH0%u,W&6(ݔݔݔ4 dfJnJnJnJnJ))iL M M@3%@7%@7%@7%@7%͔ݔݔݔ4 d5C7%@7%@7%@7%͔ݔݔݔݔ 4StS0fJnJnJnJnJ))))iL@3%@7%@7%@7%@7%͔ݔݔݔݔ |tS0fJnJnJnJnJ)))))ha0%@7%@7%@7%͔ݔݔݔݔ ̓`JnJSL&щDJG)цA$ZM] D} 7%,@yZ25% `Jt `Jn%7%M `JO.!L^C$#o]Q35%*WS K4OOK0% Jw"jJB/"| 4"$W)m$WS{/ODMIȺ}ɸX"ק MI>ESٔ2)!d @7%@7%@7% )hdfJnJStStS2L M M M M@3%@7%@7%@7% )xM M M M@3%@7%@7%@7%@7%͔ݔ4 dfJnJnJnJS2L M M M M@3%@7%@7%@7%@7%_'ݔ4 dfJnJnJnJnJ)iL M M M@3%@7%@7%@7%@7%0))mkٔ\+O"ɔE̔ Nd͊'b%1' Hp"vq'rۂ Nv{]DzҜG4nOTӛ+ݠvEX=B$8C.6j1S[ kVDZժ,VVŪ,VeA* UYPUYPʂjUTZZ[ժ,VŪ,VeA* UYPUYPʂjUTt ժ,VeA* Uy@* UYPʂjUTbUTtZժaLkzuD]cl Sc4&bF Fct7Z`4:*"n4iW߉觱{6 Z"hg$F I+i&F="h%-# Fc ^@7@7@7 hFFFFFc    f4n4tt1ЌЍЍЍЍ@3@7@7@7 xЍЍЍЍ@3@7@7@7@7hh4 FFFc    f4n4n4n410֌d4n4n4n4:Fa0@7hhhhh 4tttt1ЌF`4n4n4n4'hh4 FFd4ttL95<}8ЛHz7"9|;9t ^&zK{*953HGu15Dz DWz>*;c"j?~K5u=-~#D~DLxV& ^Oï!^IC$Wy"j?VDPaB$؏:}_5BGr,D~$ɵ4 ε3}B$lHp-]vT$\J$ݟd"e퀉r^|HKO矟\ꙉkq=C$3Dܵ!fZ&b'm[1DU [qWbMD^C$XV%ͣUhUG6Y1Dܪ"}|H*m,`U'V%}ݪ$C$<,kIp: L30D 4tttt3 L``n`n`ha00hf 4tttt3 L``Z @30@70@70@70@70_+@70 hf`'ttt3 L``n`n`n`ha00@70m L``n`n`:70D|q; F1G ``!"٠SIFUzH F\!!j"y.zEeq/6H2zEe#vO9^Fq/ d*.!^.[zce.Bs/q/4 ^QM$x6H2r/Ǘe(!^^Sִە`Lc{w ֟5eх$2Dw2Dw ].3\.1 ].3\.Ct!e&e2Dwe&>rt!e2e2Dw ]f ]cp ]f ].Ct!L4!e2LKe2DwDs ].Ct~2]cpDs ].Cth.Ct!e2e:!e2e2Dw ]f ].1 ]e:!eW>gx&,+W!1Igm"\93I:30>\F3\qD]8fg<3&;ɕ\a&eF3'mbE&A`TQbFel&*0g 0ۼ~4L*3qgb.$x}. 0JCL( 1qY,XI`NY>L(0 Dɿ  3Ct!]`&]`:!]`&]`.0D D 1G.0D f Ct!L4!t Ct!L4!]`.0D&0D c( CthCt!]`.0I&t CthCt!]`.0$0D f L 0D f Ct!L4!]`:!{>'Ct!&j$$V/`r>0Li.3yK`F?=I$ԝF}`QNa{>WDό9Qa\FOa\F/rb\Fel&2~2rH$qa.0q;ҟy.wgb..]?<2?3Qk80 .$DŮ w ].3\.Ct!e&e:!e&e2DwDs ].1G2Dw ]f ].Ct!L4!t .Ct!L4!e2Dw2Dw ]cp`) ].Cth.Ct!e2T&t .Cth.Ct!e2e2Dw ]fL2Dw ]f ].Ct!L4!e:!<]{e.Ds2ț/ukL-lw&eL}}XK?LyOI?>?e}?I"9c&e/oJpT?yM$\FNIr$e.#] Irӟ[$L~'f.cޙL|LetPL[3qw>2r$ɿe\)g&5Mk&ּwhZ3ѴfiDӚ5MkVThZ3Ѵ%kDӚ5Mk&ּwhZ3Ѵfi͊5/iDӚ5Mk^L4hZ3ѴfiK|ך5+L4hZߵfiDӚ5Mk^L4hZ3ѴfE՚\k&L4hZ&L4hZ3Ѵ%L4YQfiK|?̘hZ3ѴfiDӚiDӚ5Mk^֬Z3ѴfiDӚxiDӚ5Mk^Չ5MkVTZ|ck ѵ//9%f&5Lț3 Z~ЙOLޟOI=IhDFNI&Akoֽ_H~ך8Q9Qa^){ĵ.{֨ 11!&9+$qcb.M`X2qqbcߞIDK 0rQHgF>jM4/3"0L\`.0D&0D 31 3Ct!]`&]`.0DA`&>rt!]`.0M`.0D f c f Ct!L4!]`.0LEI`.0D D Ct~H2c D CthCt!]`.0M`:!]`.0M`.0D f 1 1 ,0bI`*Yd L_(j&A`5 #WI~I0et7lI)5qO4^$0½9lj L8I(i&&&A`Ϝgu;NI[Kkѳ|kKfEOٙYwό9Z=L`'oZ:3\Ob.ج&eSr?H7uj&e>rLS1N$;]v*&٩dbIv.;Iv?Qv'%_31ٱeOadG)IT5I#wykfdGD<$;GL1";31!]v.;D&;DAv.;D&;De3dCt!t 3eCtٙhCt!]v.;Mv.;]v.;Mv.;DegeCtdgbyM93Q\ّ;=;lӋw~|Փc݃e~O{~^~zq81GO_$xOp/q{Nc{N~^rt!{={=D{ѽgyѽc{ѽgyѽCt!L4!{=La{=D{D{ѽCt~4ѽc{D{ѽCthCt!{={:!{={=D{ѽgyѽ1xѽc={=+g0=Lx=6]Iy,+ӓK3{%L'x$$}~L~&p&pdQaU_O=?8Lp'LWSG.h8U~ ~~ dK`8*ELp`ԿU Gc GR=5O? l&pLpf Go7ߓ`8<#53 53 R3]kILp<1q!$bbޓ\ɻ+ߘ +zb;i9DtG"#M4G"#ݑH#M|DtG"#ݑ&#ݑHDw$;Ds$;RHDw$;Ds$;DtGhDtG"#ݑ:G#ݑHDwHDw$;4j;RHDw(9DtGhDtG"#ݑH͑:G"#ݑH͑HDw$;i918scp$;AL0s&H}U(CU&WcnyC3yK 1r+ԓHvٙnLg-3KKzLT4& RL!$钝$蒞2ե+?r%u$]C?ud{OL&G#~Oё~vH;H)?#9Dcr)w$t&GɾHԧ'4s$'&>Z~_~r/:^#|BLTĘ]ҷ.%cIًI0'e9S1 T%sbDtshDts"9ݜnN͜nND7'S`N99ݜnND7fND7'͉4̉1͉4̉Dts"9ݜ&9ݜnND7&dND7'i͉Dts"9M|?1i͉Dts"9M4s"9ݜnND7fN9ݜnND7fND7'͉4̉Dts̉tK1͉Dy3\4dN3L9=L]gtB]\ QO9DIoI$s2 fu/$J3I&zx!&A9LHL.QLD=~E2KTMDoY\}ʽk&SzS?vSz%&S~.SzyĻ8YU~O}ѧl)\OOg;D}u!w?}? )͙O LO)1 > $~(SFZ3QRb|H'|}j}>Et"OM4"OݧSOM|>Et"Oݧ&OݧSD)D)TSD)D)}>Eth>Et"Oݧ:OݧSDSD)}>5mTSDSD)}>5|>Et"Oݧ&Ou >Et"Oݧ&OݧSD)D)}c)T5Ou >Et"OOk'+'3 >է6^s3IfWc0 >.݃I3-+֓S*G3QғOf>g1q떎 1q:G>uOL§}LOUL½H3QRma|JM&:zQS߲MRbrŧf>g}1 >1qKKޏD}*?O943qc}`c? >ՓS~ĻA&4]&]&/S?s31򳔙O1 >1 >՟w;&Oŗ=٧bž\)&SDSD)}>5|>Et"Ou >5}>Eth>Et"OݧSͧSOݧSͧSD)}j}>Et|jbEt"Oݧ&OݧSD)SOݧ&OݧSD)D)}>Eth>1}>Eth>Et"OݧSͧSDSPSD)b){#q&S I~~ f&57)0Iܽv&Ow3҃4&S-= >|>巗a|wiSz%Sg)W0&Gݷ$~=+޸IOTRg$2p(XKRLDٹeLDs%$H^%>(?IOK$%y1Iɳo ;%ʽK%Oa$*y_I7I$H~, Q}m'3 _](&.QD&QD(K%5$Et"Du 5K%EthEt"D].QM.QD].QM.QD(K%jI%Et$jb<tD}JOa>u/$޸ILԧ*&䪞\)&SDSD)}>5|>Et"Ou >5}>Eth>Et"OݧSͧSOݧSͧSD)}j}>Et|jbEt"Oݧ&OݧSD)SOݧ&OݧSD)D)}>Eth>1}>Eth>Et"OݧSͧSDSϗɧS+O>&SBmMOUk>wV_Svs&OwNZk|_&`I򩇘6Q::ZO&k>^> >e M̧G4g7cɧuM.)&ΔZSuxWT4>&ɧ>\֓Svr՚2ZSBZD~!xA$H$ʸoM\mU?.}|+A|5q;I+qa$JoMLԻ%J?>bM\b5qI(bzDY_k$@ރ?D}sGߞDyίKiMT5 QLHԚDEUVTZQ%jE-DJԊ*QD->rTZQ%jEU(JԊ*Q+DEU.Q+DEUVTZQ%jE-DJԊ*QD- Q+DJEVTZQ%jEU~h6Q%JEVTZQ%jEU(JԊ*Q+DE(KԊ*Q+D%jEUVTڢHԊ*Q+D]Vt|M1H%ELQfeI(}m$H&.Qz/5 e l+wM\%J?d$Jߖ&&Q(DM 椰9DɅ$'Jysls?pu6Qs[Ʌszr͜\1'&ԈfDS1"QLD}-AłDٕ$K{ Q]L\\O{$JoMTuD%kug0NpODw1q󻶉JݢkMDiki0 G%ߚ?bI25"Q=QJo11:}>k&VDW+Պj5ԊjEt"Zu j5񑣫ՊjEthjEt"Z]VMVZ]VMVDW+jՊjEtjb/{}!4UܜjMZ)t1 ju_zpMZ)t1q״3yX`w7b͵Mih>51ft;&ɧL՘\񩙨OL}<&b|E8O1S5>UWO}I:'J.&Kh5iHjb3_= F_L\ELEH/"\3W} Fv9울ꉀK?Q"mbdW: FY2Q~.bd1$10b_d12dbbbtBŨlj9Rr)&KD%D%u1GKD%uiuDt]".M4]".u Dt]".M4]".]KDץKD%ucХ/uDt]hDt]".]K&.u Dt].]KDץKD%u4tc%u41Dt]".]&AK.].u Dt]".L\K5ktIAI%}/IХgt(&K$?%8'ALi~RFc̉{5'&W̉s߱c\1'&WΉbrŜ\9'j&sɥDIO`NvSmDهI8'|^mMܧ'5 jU߮ '+n(&AT{ml&VJ$-kMZջ3Q5lXVv?5 j W&A잏/c* joV1 jw!`g~}崙Z9V\N_e%cbub+L4,72Y`d9ȈndD7fdD72эF6ьF1эF6ьFFt##&ȈndD7&ddD72эlэFFt##M|?hF1эlb^ʽjrȘO3bLg&fd Q7mbFYzO𵸜}ֿ[&.glj#Mt#G?{#SI22;61#֯I02=7I02h&G߇ōO>$}#k߅}M8lkL]čOI02J#[a?xM93Q#kEc? F2 F_D#˯ŗykFčF1GndD72эlэFFt##M4##u FFt##M4##ȈndD7fdD72эc05эFFt#hFFt##Ȉnd'u FFt#hFFt##ȈndȈndD72эlY`dD72эlэFFt##ṀȈnd~O:##Ȉfd/ўj^M&eM4zTC4hbХKZI%{$]$\0K3]\5 eatI$RxLT?}o8L._5KL.)>L\fH$Rͅ%R=$nul]ú[J<#]oe?l~?oljݕ[W>?[볾#MDV2o_KKYOD}/f%I}0&.QQ_$QzLTa$J?K$HT?O]ҿ?A+j&*QzN QWR(W#(h&.Q~LL\՘R"c$nB$H}$HT~ %JpdbITzTՊjEt"ZM4"Z]VDWVDWAVDWVDW+Պj5ԊjEt"Zu j51J&"Z]VdR+Պj51J&Ԋj5ԊjEt"Z]&Z]VDW+DSAVDW+DS+ՊjEthjEt"Zu jELj/VժbRI*&"SMŤVZULjU1џj*&ZUMZLZ˷ýn5 j]w>|-AswłZ LZZgjQ1qJGMZc\9'5bj1 j&A$Uʭ1yZտխVu#qV 'ANV'ߗV jJbj2 jU_~%*5S+D&V<}Ԫ(w ju2Vm9| 81J6VW>%OA)5qǘҏǝްq/d*'VVzULT˞VvV]5VIT+#ǤVZULjU1ժbRI*&ԊjU13FԪbR+UŤVZULjU1ժbRI*&zƨVx(ժbRI*&"CɬVZULjU11JfzƨVZ]*&ԪbRIVZULjU1UŤVDWgjU1UŤVZ]*&ԪbRIVZULjQ*ZݟZu jEt"Z]&S ՊjEt"ZMժcPW+&I T&A+V3W+.G9xUVzW+?GߠIP>dÚ9 SIP+&Q,&W$\ɧke1IZAU?`Vuw}?Ije5Uzx#t.K=|Vϻi/?XOZ%:VreJ/eJk&V~.&V~FW+?DzTrU//.W+'A^bL\_&V~iLLӘҳӘj<|1W+? IP+LT F&ArD&I Zӳzjk&9#eݲnYDfYD,[-5,1X-5,Et"eݲ&eݲnYD&dYD,[-kbrt,5,Et"eݲ&eݲnYD,[DnYD,[D,[-Et˚hEt"eu Et}nL1X-Et˚hO5D,[-5ўjnYD&e+4&εLܲx59I,I,LԲ֙eq\_o7 &nY_Lܲekߢ˪bΒMeՉLeLe}{7$XV܁e9D-K"g,K?I*[ՓK5ݲnYD,[D,[-Et˚hEt,Et˚hEt"eݲnYͲnYD,[V`Yf,[-51`&"eݲnYfnYͲnYD,[-kY-Et"eM4,Et"eM4"eݲnYDfYD,[V`YD L1X-Et˚hO5D,[-5ўjnYD&ݲһT0 /S<r,f&m&nY_Le)1qrY,9WMe= &nY/va-K/ۚZ+B֙Rb,KOLb,`I!~bbP+紙Z)t1 juϙԪo$LLƘZ}ƘZ}g_2qɘZ}/{'VWk'Axtgժ?ҠV.p31rcjs2q3RbJO֞IP+}IP+=IR+;i'j&9r#Z]VDWVDW+Պj5Ԋj1Պj5ԊjEt"Z]&Z]VDWA&CɤVDW+jb!i5Ij!1 j7fjq8U+=ϋIP+̑CVLZ53= (&I:j' ?J,e91 $XޛI,=[L̲3e]Ø˪U>u#,O@Y#7zt,Osc2qfb2q⟷?N~%%*~Lo=D-޷K R,9`Y`Y5˚CnYD,[-kY-Et"eM4"eu Et"eM4"eݲnYDfYD,[-c3Y-Et˚0eݲnYD3YV`YDfYD,[-5,Et"eݲ&eu Et"eݲ&eݲnYD,[D,[-c,Z2Y-kEղVTڢ<լZ֊jY+emQjVTZQ-薵E&줭5 egI~t6蚸e5D-^ӮI,꧰:>[I>.ҍI,@de$X]ӓhYvϚe-$XV7s61I,;^`Yvךei6k,>oYFk,krz֣;.Xjeе&VzٚZ]$&A U=Z??IJ\W+<5q?sqbj&ASP&AJ?uMZmS+=mM\ΞZ"kjś} OP~ٴZ_I5 jeMIP+{(WknYĄUWlrMLq:y7|krي*g+mQlE3ي*g+mQlEUVT9[Ql"g+rlp6ي*g+rx8lEUVT9b< rFt9[Ql"g+rي*g[9[QlEUVT9ۢlEUVT9ۢي*g+rEVT9[Qrc3r6ўj.gD3l=]Έ.gMt90L++&A g9{n3}$ə(dM\*5"gLL.gL{>qMy~Lgrf'\I3BkM)*k[6[ gJ 3Q9/'I$Dך9$GlI< L5&61șbnd_K4 S5eI0 ;y$ Sٛj/0 s5L/T^װa hL\r5 f'I0S o0'Iа[;i}ۅ$iXm} 3$hX~͖5IаaL\ÈaD0kD0kXǠaD0kD0k5Ft hFt #]: Q]ÈaDװ5i5Ft Qu Ft hFt #]ÈaMÈaD0k5liXǠaD0k5li5Ft #M4 #]: #~}1h5Ft hO5D0k56ўjaDװA&٫&AИ$ 3@c4+L mk+ydLٝQ$h}6Q ɕj5W.??I0rMLT@k[ak4n&a~LTr j󶟸OL]>֓+&'g=@䊑1 g9qLcI80TɻM rvWp9;B]Μ0~\N.gg$gzJ gsL\fbrU??uL~<>?AkrSz5krv+.ʙu껆}q>9{R_D9ܘ9I36&AK,g59crFt9#]&]:9#]&]Έ.gD3D3r1x8rFt9#MIΈ.gD3x8c3D3rFt9hrFt9#]Έ.gM:9#]Έ.gMΈ.gD3lr11,gbI*&9#SM$gULrV1џj*&9Uv&I05 r^$ə59crEjr&gK:\9u&I䊜䚜7IrM&A~ Zn˙z6>4߅gMl˙{MjLlcbr&Am5 rg1q9z|yULN ajN~x$'9+~䬎~x$3GzDfI^j4_5hX VazLT䧾azazaz(a5[0;l&W4&I*& 4b0kXŤa5bҰIÈaULV1iXŤaDװI*& 4!jְI*& 4QULV1iXŤax5ULFt 4bҰI*& #ULV1iXŤa]Þ1jXŤaULFt 4bҰI*& #ULV1i3F |I1h5Ft hO5D0k56ўjaDװA&S k +e-Wer,0&W,ɕ\9 l&&I,?rOeWtOܲ[,K?PmMܲВ~`|bG1cwFc]:\6:d~o1 7sb,K֓dYzFLS4&N&W,I*Il-&n W=~tnlvmᄏDuBp/9f/4WC#߱Ipz*NLٸ)~ L\ٜG+W ߇XPfbT1 ʦ׍2qeӏ\W6Ȃ$eOS&l*L=|ecNbrlude;SeOm9LN=A>W_I4s؛=I1 1 V qMM&M&dY&no~<7d&fo~3L&nog_{ `o~wOr3yDI7}sۛs`ozf`oN3Q{ӻ2 _}[1 "($LTGcrEzD"Gth"Gt#].rM.rD9\ rar9E"71&'#].rarA.rar9E"7D"Gt#]&u "Gt#]&].rD9D9Ec9!Dc9E"7ўj.rD9En=].rMEDN_0 "혉vx$\WܵI97 ry$\.DI9=dI9w?&.r@?>{/oC=9E&.r\XL\&.r%?ljE/aeDNGeDN'I캙ťL\JQ&g,LZ31"rLEnkLNEstq.rD?>)VFSeD~) rl7qsgDN?s79w?&.r~L\x:/DOI9?}&9wL1 "`En߆c&&r~$rzf r)LWQTg"Dո\E&tIޥ gnz $%dGt#M4#MD?xPGt#M:#MD?D?Gth1GthGt#D篒DTCt#Gto=+$^*$$y~d8?=\&8͡6?m?1{&}\ tLL\F1qĤD-}Q;v. }mI}/I߿j&*}z- }z }z#tAߗGLNp+1919?n31"}=o/LGL0 ҧ=zqrOo7wdOOcwOoD7>&.}|GaP3 ҧI>L69-qK[$H^$H:*W>K$ }L_^FӳY*c=Iҧ$H $}3q3drE].}M.}D>K_ }w>Kѥ71~'#].}wA.}w>Kѥ7ѤGt#]&u Gt#]&].}D>KD>Kѥc>Ksc>Kѥ7ўj.}D>Kѥo=].}MKѥ^ 0 ҧ8fҧo2q|WL)2q31Le;5ҧLL&MQ߀oC1=L\)ql;MTf&A3&AKzzNO훉^<$grsASO)-%?H`&&gzw(&WOTg29ջـ3Lί-?zWw19׻LK_ߴ'Aޙ zGt#]&]w]ϟw]wD׻TCt#]wzGtn=]wĠw{[I;=o&wu뻒L{L\ӳk;<;5B&w~$u\a={r%9{2q8Uv&nz΀31㏫/MOcLOoדdzz>3=?ÈI0==I0=,X&{Lb5=#&s$39drfzG9drjzØɻM<̉{?snaUL\I~ߏw ]=(×z2qdDNwz?&A?LAcfv;?]_d<ջߊA-8&w#w^(wd/=޹2qOaI;!wzj&AgzF."3ĊL\&KG&) ];Փ ]DWP= U*HtՓ v *HtՓ ]DWDWA U*8TcPA U*81$ ]MDWA v *Ht$ ]'S U*Ht$ N UcPTCt$  /Y&IWLT L {/~ eL\N3Q엣0 *0kUPOidWWĞr FE}ۙ+k`zuL & L0 V$X_7zY_nPyIBu&n;L g2 V"YOrH2 V$X^$Xp&z '$'_Kr_ oeDIDUo&Aߪi#'A"4?/A)gXS~OI c&.~R&.=I8Mkxo ~ c gY1qA<[:$z#ij_Aھ8QA7/Aw}{ѯwfxb- bZ $b(L #tL!5WdHtW\qbctE?TLX1bX(wE_"k\1IpE9 A/+ŽR]ѯ;DD :0¬$b_F5 g:2 -D]Q ]?IpO˟]qcUϟ/GIrE؀+FL~{?ł+IpE=ӑIp8L]?g_V$b=`Вc,zq&z&zwO' N V YG O I“Z:6vL /$X^$XascVxN=+2q+OsbVJ3q+<{6VWWĬoĭ0dM l&nݻ+3'gbVwrfVWW$Y]]$XaxW&n[&jz4`'/1iL U+5+IŠ 1Z!1g+bŠ >[adVLVH 1ZadxbŠ +&+$VLVX1Yad 1ZadVLVHt+bŠ +&+$VLVX1Y3F+V|qtKVHt+\QpE (O5+VZj[ WT+$nQjVT+\Qp`vb$+|&jwM>5 Vh ĬpbPAm*hdToExE+IpŠwƔke\wv非&A|5q=$蝝$}61|Iл}M\NOYZw~'w&kZw0kzY?)as5qS&wPk.e 4V\tV$ J&A+.}Jkw>ig}cM\ĥoz= ҧoK(pҧ]> 61KkT$H&A>%/CI>z'DK&At5 go&I>mgg8I w#W ӣ-c:w#Gk WT\Q rE5-FIt\Q rAj[\Q rE5 WTܢ$ rE5 WTb>v\Q rE5 (jD7 ? ;$A nIt$A 'S 1D{!A fM_=M'Nt$ wW1Iѥ7Q)L9kO_<2 ׷E_&m>OU^}ׯł}}lHI?I?=Edxknkקpz$]&Oƶ&L5 ^Yv֚&䎘vvܚ\?&z<;Ncdob>'ĥqp&*}JL)2q;{'SI$}v51LOI~LO:&nz\FuZ)&nzzl5=;~M8`zO\2n5=;pMMO?eMxw5 gl5=[КSldLOI0=Þ$;yQLOI2=c@&arMnzD7=xLc0=xLGt#MnzD7=D3nzD7=D3=MGtӛhGt#u Gtz$LGt#MMGtӛhO5D7=^`zGt#&S MGt#M4#ULGt#MtӳL;^-&nk⦧&jzv5 0q4x{s!zLnDMYkL.a[7=?KI0:4BgLO뙉ݹlMD&nzL\.SR݁qMD{PLdzt3QӳI8&Acd$H }zLTB5 ҧg2 ҧnĥ='AgHɾL\b&AN~ʓ{31TSi)v>3eĤ_\_bHҧ'3q˔$HV8>p }QI &AN^l>IתIŃ'2 w":II}2 wr@pI\>&.}w>Kѥ71~'71~'#].}w>Kѥ7Ѥc>Kѥ7ѤGt#]&].}]/u Gt#]&S ѥGt#MKѥcTCt#].}Gt#]&]*&#]&]$w08鳻ϬI>e&*}ûL\6 }v75qSzqp&*}a#kŞ}鳛UKĥO+J3 #[ }zt$H }zZLTG\\>&W雉K }'&IN+Aξ }31sd'b2 ҧW3 ҧg$I8N#9^S$^ϕgvL3Of993/~;]7r^]$ӋL}Jd&D&&DO a;3qsedur?=q&JL2Ig'2L&ƃD?ob<(O1ob<(OGt#&ƃD?o_D?oGt#M4#:#ݞ_CD?D{!DTCt#u 7ўjD?o=D?D?_D?DI?}$^$^$y<?$;g/= FkIWb1q#{N0 W1 W"o^$!zv f3q3i`'2&>^ջ3~LA Agҧ8$H ,>D&.}I)L9A䡓Il>P5 wÔOOΝIrI>}KrKSi' }g 2qsdǺab%0 wj%H~'2q3DO IIn*kWA$I^<>=I>ؘI| җNdb8L\DWAxTcPAxT*Ht$ NIDWADSADWADSA U*Hth*Ht$ v *Hty>&T*Ht$ N4$ ]DWTCt$ v *8ўjDWA Up=]DWADSA`ŤDWAĿ IPA=ߣIPA}v&zW&IPA}9U9{ؓ}LXtmb*wCg*Y!OU?҄e1 *r3QO\WAh5 *&3 *W3q*$`}nuAFO yaL 1 *1ӏIɕN *xW*xKg4%T{dT䛖T>Ue&{>4?&L3QoxCӫS=i&;yjNw 2 ?y&Ik 3q^}KËM\|nwF~1??q"?I? J= M0 w<$$_9NLD?xPc?xPGt#MD?DD?D?GthGt#u Gt?_'Gt#M4#DTCt#u 7ўjD?o=D?D?_D?D?$^H$!꤇ꄉ!?vy1ۼc0 Oғ}Ӣ}G3qK>6wC~aBL^3QӛV1 2dO? I?I?;,3 W9$B%Lg>|tgX1 dcbȐK|A~&}VT{S6AT+Szd"*=9o&AL\>iV7g"3 "IDI9'Ag}ŒȝF "O$" r9X2&.rgLW91 "$ɋ r;\$\H{LȝN"w"E"Gt#MI:#MI.rD9xD"Gt#M4D"Gt#M4#].rD&rD9\ r$r=x=cI*&D"W1\$rUL"GI*&{(rDDbI*&#SM$rUL"W1EbbI*&#ښ{I|Lȅ5 "^j$m]G<&&r~/e&A+Xj"ǫídzD-^,E,g"e$¨%]$tq+Me2 "W1 "DE|I9_OՈL\d$\&*rzr$rN?5&r5&r5 3qhN71{Wͦwpu${דz(Lꎕ(}n$&;F$;yPkgK~LIL3Q oXĥ/ I$}!#L\~m%O f3qKX[M3Q Y>5&A&.}@=IҧJ~. }z?&A~ۏ0Ig1I0"}5IW1I_$}wgW1I1~g高bI;K_$}ULGt{(}ULW1IѥbI*&高W1I_$}K5NA.}D>KD>KѥGthO5D>K_ }Gt#]&S ѥGt#M4#ULGt#MT\0Ig{2 ҧ8$HLT&.})> }zǖ$Ӌ?`8>|A$Lfb1 W?OI>"I>=]I>SL\sLH+$Hj$}o G g1919?$wh:?mȓ3joA/4w ɐI?ex&|B&~^LO=>4R{<bz"L Β-_˼+TMt{Ĥ I>A&.}g/ZD_aJqb\OoĥQ_ ><̓}0 w;J_>.$}L\.}D>Kxc>KxGt#MI.}D>KDA.}D>KD>KѥGthGt#u Gt{<4u Gt#]&].}D>KD{!]:hO5D>Kѥ7ўj.}D>KѥoIѥb>KѥoߥIz]r>&&}2 85=}ǑI0=}$!7=6'g?C#$^57=NM~L_3 (3Qӏ`L|`z3aLOOcLO?w&jzYLux=I'1 M?a&nz?/er\dztL u3ѻiLNpv3*9<)Kzr.}|'l/0q{N?x&wzw}#ZKzׯ0 za%czGt#]&Cw]&CwD;nbeoMe6ĜN_tvޚ]tv{5q3:Ip:tzgNtD>tMGkrvRɩ/f&xɩ$]S۟&NG7&Nmȓzs;|+*OE vxb8=ɩ sd;?$}0̚}CgD<aDή] rvo^˻&A $]&*r+mDNpMȝ"] r"$rOx'&r)gkDnü&.rz `Z^$r6ȭ܊*r+ȭ"xD"arUVT[QEn09܊*r+ȭ"E9܊*r+ȭ"|"܊*r+mQDnEU.r+}>I:#].rM.rD9En=].rME"GthO5D9E"7D"W1E"7ўj.rD9DhO5D4yS9_$əYxهaI35 rf7[ g<|-.gzDN[3}#}M\v]yk̇lr7 r֓$gv5 rV>\S&ALϥY gvΚމۃɅV䊜DTgRɩ/]S9۟{\ 6G|rz[?8o_ةQw4O=mm69/뫸s[<ͮ]4=yQ?>_{iv6& uI4 vMO. v'y}zؚ$Oo5 g}צIuIOl{4{=61&O<61&O#ӈiAn4{=6uGWaPCGGGסj:4#ta?B?BPCGGGסjFUJ}l27+t*??Ѥ;ϊKWܽz۬1&aW?9Lv>wqKχT1$ؗuEOTtY gJ?]G%׋JԡC|:*k{lV_U[W'_ϧ;(#+S\YJe>uoW~}*+*H R *hך]Q)xT .Id}x^ TP-銩 > *X*A?b*&Q V»V\I%X VQ VpqBP\ `19.V_GS VX~ 6Y]`mV]*d<$+TĤPJ0!Y"dƋUVhHv%v ;4+0X![![![ayЭЭЭ<VHVXaBBfNVXaBBBBBB ;<:t+$t+0Xav!t+$t+$t+$t+5nnnn0Y![![av!t+$t+$t+$t+5nn ;ƪ$+]1+T_P VhװBE* aFbW y6B`+7T %:U+fUq56z}Ă *n>b_]ߎBNJBN[`ʋT*teuI/%^QYZ7&9^`m=ԯإ]ȕQ񹂄HNr:Vٚ]YawB*WTJRAʬ$/r)BbWLEUI*Ί^b .fUR *3T{Tp<_ux *$RqkJPAʖJPiR\+|+XPA_K% g/WWA+zYqِT =R *8O*H%BbU $R]CơzRABWABWABWM+ *H*H*H*a$t$t$t0Ճ  VT0?d¨#L*8¤#L*H*8¤#L*8¤#L*Hx>uTpI0 jFTpIGTpI P3¤#L*8¤#L*H*8¤UpIGT5#L*8¤#L*8¤~aR&aRAx*IIUAG%B%`m7!qT\} QqҩT\}%WA`HWT=JPAحK9/m*U*X3SqL8*Au"WT0@"UR3$R3ը,U0O*k<,#WN$7*kVCSYZuTVza߽r Ge#%V+ԵT^`:+j&B_\dG%X^P7OZ]zJBBHŭз0$B`zu)* b 9Ze(wŬm@z8(%+knPq+L8*n~* p 먫' ڣV]Sq+.P Vv<μ8* #dE+ Gp G00Y0Y![F+a&+aBuVHVXaPCVHVHVHVءj ;4+$t+aBBBBPCVHVHVHVءj >{$+I]Q+W+T^V;+&* ⮨yTtY#B['BqW *T/>/ }"Bl[! P1+#`ʋT }4`uO>V>rJ>>/ ǫ6>XB9JB"*++\ő[bW }"B>?[_J!p]__0 }`W }=5`T }5*n>G* ̭qD__cT)PIfԕ&QY*^T Rqt&RcDn[nX*ATT\b":j$SDn|s.KEίWU$r>+&rsr}iNK"E"W;u{}Ēz*.rj~}+*r ruK:`I?H%niؕ-\1/8J9·J|EξrE䨸uI]]]:40\yDEEE9ݞoVȍۇMfEN9+.rz*Il^yX&J9ϊ^xVbY "gWTDJ9YkݬE_ܬDo Ƚ"ެ$~9iq~Dή1+.r:OtVLY "gWTlӾY "gfEN'J9J9[WLVG$rcrq{?-v8%MfENJ9oVٴY "gyG}{Tȍmm_ܬ\YQ U0PEn*r3TC9BPEn*r{.r3T U0]f"G"7CD r.r.r.rux>u"G"WaM]]]]:C \&r.r#L"G"G"סj]]]]:C \A:4#t#t#t#tDE089 rxT\W^\\9*Ikuܬ9r{EDξ9]:+A 6B#^WTt,CEv>"TH%\UD]yHEJ9[6+AlYqf%"^WTlԬMf%Mߚ$rxTבxW^\u#R f`[~F7nV-^d{Ƚ{M&Qdo]{{rި\7*WJ9^6dodo9?qcN6ܢ7rns;+l_r떽63%M7Y52+W썊@C u:`ono{#LFmFmFmF|0ma7B&{a&{a7B?Ԍ00036do#LF臚&{a&{a7B?Ԍ00F{#t{a&{a&{#t{au6lrrEF%)8?:)V+QdrMF嚲Qlm^WJP`}JP6*Gŕu+geIr,G%ș5+.go<#*At6 g:ɎJ3[);+WW`x{eF嚜m\ύ5OkF劧5Oi uVeuFVa:C {{{{Zii#LFF֡j:C {{{Z:4O#tO#tO#tO#tO<==0yd'TxZWӨ\VK֨\YGJ:ҮpK%x~AM%xZMl@OSb+49#t9# rc*.g>J3nnH%ș]`VDbr$R r6,YMD络}WəI%ș.r_uP Wֿv8'9]kʕҨ\YI%./l^WkR2+钜U%8`a_$gkWTt' ߷eDzTLӮi8*&ri*ttim ӻd]1ӫ0^yLMMM<GWa0=B76NNWa0=B7=B7=B7:<;t#tӫ0^fznznznznzuhG7dznznzڡMMMMC;ULC3=B7=B7=B7=B7GWj?xM8LϮ^?+nz/`zu=,2튙L%2 `zu8`z2`z©X}|BťϱJ>G%HNSJ> ѕT|DKťqKTיxT^gťcx#+&}'; }_v*A9R ҧ37D~x*J٪# ҷ ITAҧlGťWxR ҧ+kϊK^J }_> Jqxљ]Q髙u~>5*A޳OAI߯PMo1szrT-.֕PR-?dz:^Uq3^J0=>J0=F*tIW5fz%H߸}C*W+&}#t#t#t0uA]* GwߎI* GGGסIKKKK_s.}.}ФХХХХC>B>B>B>BM]FХХC;uhB>B>B uhGGGGסIKKKJ_}ZғK[$}/ }8ᏊKV o?NJJpKD36V͌O}t@%HsZ yA*Wʕ9}T}Rު$]yXEgP ҧs*.}9} ~**}>*Am9MuŤϗoR ҧ;U%HK&>jAWL| }vT Q*At* } zá716T\T=lK*.}~*I }>=J>53*.}:4ӫ]Y0=J0=~ʕ+R WǙr4yzTUI H%-^c#7=_pB%^%{dz+jzz X*'$ӳـT^W* GGGah#t#t#t0ULMk$ӫ0^fznznznznzULC3=B7=B7=B7=B7:4#ta2=B7=B7PCGGGסj* ס^fznznznz+jz*J0=W`zZLOwLOO)bTճ}8J0|y;7=VH%2`Wtu1`z:re`zʀUQ>rN3OӹRqTebNkSڣNG%86Nw3:xFWФN|Up7G*AV%oIzR zG% zE$/|o*wVSwT)SIz7pѪ$mz8(%[<<"uG%}{E%^J2=J3{^W΃E$7I^wΊ]QمT-Β"c*wnT\]QөTm1wJ;Gu wwww!u;B;B;B׻:]A]ᄋ-]A]]]:4#t#t#t#t|  wuhzGzGzGzGzסuhB;B;B;B׻PCzGzGzWaлM]]]]:4#t#t#t# z]Qӏ{*At1AU)QqsNuENzWz'T)QqvENwNAT\|E'xT%u]yb4 };K 7nQqyT.T\T\ҧ%PIҧQ 0OWv,}[`z3"0+5 0^ʕT[Wdzʀ]ѵ`ze`z*T[BM%첧+r[lx*iEm,}S̭ϟI[@*A%[z M|;A*.}>K$ }_>puߙ6T8J>rEbWa>B>B>B;HKKK_yХ }.}#I_A]]]:4#t#t#t#t| ХХ }uhGGGGסIKuhB>B>B>BPCGGWaM]]]]:4#t#t#t#LggSUIҧ8H%H_3狂ҧ_R ҧgnTetӳP*A*A)-< }:*ItՕ-$ }:KoDťq+&}}( }T\| }:ߊJ>J+&}Aqz}T%H%Xa'E>ή؜8*r[= l؄V**}wJN%Oߕt dz+z}qTU6T.0|u1~ڕp MO>+agZVLooouoٛO_bfAR wE|B*tA*t3*cK u:̃#L|d#L7#LG7#L7#LGx>wo00000=#L7~a&a&#C0ma?B&a&a?B&a&5 [%'/(9~.T8:/ d8*pT2_SqyT#4aTNGť/q꨸T\VM4bSq%pP LaT\|~#TTZTmUIxhT }\WTT\J#Q1LWzAVBлzzKFHE.}!W %wη NzSzTNR z9Ti"׻[%3#HzS.ޥ'G%]kçv;]ջ:+8)z:LzKj$Faһ&a; S_7hfV.۬\"F6CPmmjo3T{ f* FFF֡nono{C7B7B7B7BFC;uhB7B7B uhFFFF֡ono{#t{# fڛr`ozA%؛2+no䬸DcTл:R %{J7[;+kNDN>}Y<+A(Dn/g%\zٷWLtf%p6TDN+&r΅;Dn>˥DV J9鬸"B%" rxTҮuNTl8l1+э9]Id$r4x2Y "xȩ"S "M%{W\LSơb"סۛN/`oJ]9Ǧ`onUI8{o>\Gm<'{m6+jou~SY S7ܬ${{ӫX3+fo{#t{#t{#t{0u* F}%{0ononononoUC7B7B7B7B:4{#t{a7B7BPCFFF֡j* ֡ononononoUuE!ag%؛r`ouT猷\G%؛]cc<*no 񬸽9 RyoeƮ<^wT\VhR6H%(]xV\̼+luV^۳ʦJP6[)4+Ali^QeR0Wl:%JP6R f{S6]?;+AleKJP6E%]fuEwSM-+) /yZWlIO/iݬO[:ٲ󽢞x?OIqT|kl:+ꨑVJPqFw笊*[w!zZ~*T->P_zyY fW+iŬ$OVř%OyZ:̃iiiiAn4B }niO#tO#tO#tO<====C4B uhFFFF֡y{{{{Zii#LFF֡j:C {{{Z:4O#tO#tO#tO#tO<====C4B &On=+iFpT=OS<ŝiv]QO+J4G%x]cV*TO>.޿$gm񬸜y+ g:J3]O3/oVپ4.1+Aξt}Yq9)m]Q9a3 g:hJ36Sq9T *.g>q˙OLiJ3Q eЙ^Tu\Í*ۯ=J$O=f%x➦u+i_ŻE%}WI{uܫ^^^^hp/Bw/Bw/Bw`4Wݽ|q%0W^^^^^{{UܫCs/Bw/Bw/Bw/Bwͽݽݽݽݽ:4"tar/Bw/BwPCEEEաjݽݽݽ* աW^^^^^{{U܋݋WhEEhաYVVZZu>E>UaZ8n+QVT+jElZQVTVV{WTtOn*VwUZ42*AƨR늩O0jF*VT\|Vi]1 &T\ƨҕTZ̳+njŮTrŲ$˲}Te-`Yn&Te) S=֢[3ZPSrkv_5O$+*a'q6c&T=7x銯~GÞT~re^S6͠rŧb>Ua)B)B)B1Ty|}Sɧ$Fa&a)B&a&a)S#L>ѧݧF|jɧF|jɧݧF|jɧF|jɧݧF|fa&"CO0O0jF|jɧF|j OO0O0OO0O0OO0Fa&"ta&a&"ta&a- :|9J0'ݎڜI/s+3dה7'T㣮bp{sM91{1ϼ_*trUWԜ+q*fN3T])ب#%b{oS s G 5*tw$s4&H:;lIeU%9N:RЪQ PhTE%9aݨ9QyIs~2*iNT~Y.uxe/.DtIkR kbhT.-A>0_wtIwt>2J>?N$+{SW=+\%*K[uiIFtiI/.0.!_ԥ&]¨K#t]>].UtuuuC%B%B%B%Bץχ]]* ԡRKKKKK..0Rv!t]"t]"t]"t]5KKK]tuuuuC%B%B%B%BץM]* DDԡRKKKK]àK)KT.dÅ]8lTR>\RJ%]>@%R}K%AuRvyڰ.U.B0'g4*k9pc7'_ IJ0'Ű9ȚJ0'B%r7'Ϋ*|ZW̜ʅTܜ|V7''7*WH%?>^+ `N:׏J0'S*WH%HnWC%HuUDQqZ.D鶄T\V$Q:iKo&E%HT[cE%J/L%H<"I^͆ʕDr}CUԧҌu*VVi<GWΤtTܽݽݽݽ:̃^^"tz~ZD0W^^^^^? :t"t0W^^^^^{{{{{uhE5^^^{{{{{uhBw/Bw/Bw {uhEEEEաW^^"t"t܋݋݋݋ݫCs/Bw/Bw/Bw {uap/26^㬘m{^zC*t{ETܽs>(KѦ{nku/P|ߒ4><G%h그Ե K*a.{T\\ rT\|QfWTt0B%haOUu%{DT{=lk$*^(JfWԽԊ{9PqrK˭+Nl*ɫk }+^>7Jpp\ ^2qK/K/Uur}*{^TKEC%^ħ+^jKU%^W9*I  SJ{Fh7Uy UzZIVaP6BW6BW6BWM]]]]:<tFVaPM]]]]:4e#te#te#te#teДЕmI]]:++++[v"te#te#te0([llllluhFVaP6BW6BWM]]]]:4e#te#te#te0([&es=*At *l~K%([M;,w*[jی>m*At$W6Ƒ޺rV}YA/ rAΜ'br#D*At gʓT\TȽ+&gT)Pq9GT\|SU ;c}T\V:șǶzrz҂9Q r39[hu>.gM]×ddU FS#[T-T-1>L}J%]{#l̿lqL7J2y~KddjT|#s<<\ & hԽr*V5a3pH,kU-K%O0x{{{Ziiiii{{Z:4O#tO#tO#tO#tO<====C4B&O#tO#tO<====C;U*'=/7rVV;ޖMrVސݏ9| mqm[tCYq{[` {{>%UC7B7B7B7BtUC7B7B7B7B:4{#t{a7B7B:4{#t{#t{#t{0[fononononouhFVa7B7B:4{#t{#t{#t{0[{{MJ7:*ޔb_Ίۛ~G9+J7=M_bF5z{ӳϮ9.`oʉTt{~ٛ3`o:B~T)tD Ɵy|UgEαJ FEC AdȹPI"_DJ9[VJ%֦Lnm{EENJ9[>+*5ԩ7#v*DN`芊Dnu\ "SgENv4+A"gaDNݏJ9"*uuUV/(~CH%(͢lOlg4)eSm e[M]Rm쐔 llllڇ"++++[]]* ֡)++++[lllll0)++[lllllUCS6BW6BW6BW6BWM]]]]:4e#te0(++[lllllUGɖa0G%(l s]QeGf%(1+ldV\tyUtQǬ~K7B]"9uN*A-N"#*Ali^QSv"BE·T\V%oI"n钺YqT\|EEn s|0H%85nSܡrr$rgQINslו¬\¬[<ɩ M|/wT) Rq{[i|lJD0{[݅ r#jq;OǤ",KEο|銉9R "x7TEn ȍ0ȍ0ȍ0ȍ0c$r#L"Q]FDnIFDnI]FDnIFDnI]FDfa&#ta&a&#ta&a-"G"7$r#L"7$r#L"G"7$r#L"7$r#L"G"7$r[EnIFDEnIFDnIFDEnIFDnI0#IƇIF%#ިuGE-ߨ{f%[@Q1{0(mWl.GlA΂]J33]fV\ΒύJ3]C%șm-8+.gl+&g[F,YNYBl9[=bIt g2UH gF%əYG 7*i1&?v<$r6*{rZ ֜.~˕5Tp&R r->Mw+is #ʖqT\JPTTol lFŔC_]hT|[iɷ-?)xΌrh֡Yndfd³uhա WnYfYBS+BW ZRxJ+V~TZQqIzT\|*AtmWTtV *TZ2W*A%(U#J'R jfI%C%JꊪnE%vldH%씦zRQ?V#UQ0MWԧ=L\)*VK)幮O\8*>ߋ0H.ZԂD^I-$Jr>C}C)=*S>m|jN>8M6O^Mɧ|ʗSSm|SSSSOOOOOux}}SOOOOOuh>E>E>E>E>աOOOuh>E>E>E>E>աT:4"t"t"t"t|}}}}C)B OOOuh>E>E>E>E>աT:|}}}}C)B)B)B)Bͧݧ* >E|j})*6+SJZTO)iQ >eSvYqr>pF|C(8 QT+&Q&H$2$JJZyh?l5 Qu`?he갑J(Q FԕxIǔUI3T(Z<6ItN$+D%N椀3:m~}s" ٨sZ9xtɡ*V%=I)SytiX']REti"Hx&]ZݱKG%ʪ$]/\ѥvLTa%B%B%BץM]]]]:B%Bץ .uhDDDDԡRKK#LDDԡ0 ]]]]:4]"t]"t]"t]0RKKKKK.....uhDTa%B%BץM]]]]:4]"t]"t]"t]0R....uhDDDDԡRA.wf1sK6a+K)*A]ŘT.aQ 3]Mݨ'+%3-ɜ~2'ԍJ0'cE%.I2uEIPqsT9`J0'Q 椃ɮOoIe$RQSRbO*aNL>A%mO%qLfDZ5{NZTVsTZ-/V3L> ɧƛɧTfX3͔Z1Z_eկP}j(ZOѧl&+>'0TSSSSS?:t"t0TSSSSSOOOOOuh>E>5SSSOOOOOuh>E>E>E>Uaͧݧݧݧݧ:4"t"t"t"t|}SSSOOOOOuh>E>E>E>Ua9t"t"t"t|}}}}C)B O&sN:SB(.*&Q9uhapqh]9;R&F#BS UvϨ\*IvF ;TT•l㮨T*AvtdI%ȎQ9 \$E(T(teǖ4Q cAvV~Rqq+AvtN%/8i%ٱy%]HߒGYJŻ2xA:TY݅0KiT0GZ~+3\yT$;U+=Iv* CCCӡN珩]v]v* ӡN&;.;.;.;.;0N&;.;.;.;.;TdCBBBBMv]v]v]v]v:4!t٩0N&;.;.;.;.;TdG]v]v]v]v:4!t!t!t!tde ;&;tx6]k]k]kMk~2222]re\8߻ 2:\FoP .c)*2mA%}F_QIc_yJrT, 0n#TOT&~}}+*0ܛm+sk\مʕ]v]QYK3nY&?/eV~8bt.ӡ7xF,4eЃC%tx>MKщAU .zle~*0JRqqNf}nwo [ 0tIwEF*fNKA%Qf~Iz|S.(+~2[*eJ/TlXК:(gFҚ?^*=SIk]kfZ3C՚h UkfZ3C՚#C՚h UkfZ3C՚h UkfZ3C՚h Uk* Z3C՚h UkfZ3C՚h UkfZ3CBך=j UkfZ3C՚=j UkfZ3C՚=j k UkfZ53Tj UkfZ53Tj Uk]kC՚Pf5{(Z3C՚Pf5{(Z3CBךPfEkfZ3C՚PfEkfZ3C՚k\kV$Y ZctfŵF/>+Ak4z̊kM}缞YqѱʬUfq^'53L.u\ƾ+=fV-\V.Jp(3vu3+ʅ=g%2{E]fskVo՚e:t{F bV\`VǛ 0׬娳Ơc4Y S;ԓj\*rç%C$0!t!t!tC@"t!t0L&0.0.0.0.0thC3$0.0.0thCCCSaM`]`]`]`]`:4!t!t!t!t 0.0.0thCCCSa9t!t!t!tCB thCCCCӡ LA`:TAGƦJ'G]Qѓu*A`(Ju*A`l +7l֬,V%h~>+Akt՚,95ffllxllY^1O%f#f%h]8iV\ktҬcbZQ5[zW5NT,IvlhJa ;lzFuXp[QIS~}gzy\(NAv]v]v]v:4!t!t!t!tAסNAv:4!t!t!t!tdeeeeCB&!t!tdeeeeCBBB thCCCCӡN&;.;!t!tdeeeeCBBB tȡN&;.;.;.;.;TdeeCBBBBMv]v]v]v* ӡ ^o|Vt*AvQ dGgtdGo5+.;>d0VdGGDT踫+޷5 ;:J *Av뒎֩;TNrJQeB%x \Q9ET\v:adGJE:*.;N]QQsJ *Avo$;7r"Ȏn6+.;T\vVG ;_/AvV$; (TzY 5珤$;:NTdeeeCBBBBtTdCBBBBMv]v]v]v]v:4!taBBMv]v]v]v]v:4!t!t!t٩0N&;.;.;.;.;thCSaBBMv]v]v]v]v:4!t!t!t٩0NthCCCCӡNAv]v]v:4!t!t!t!tdeee ;AvQ d0J *Av4+*;z~O%mʒˎo0wu|Q #ժ$٩m:Deǧ`tEeǶ&|%Ɏ2+.;%Ϭ5Ɏ/0dG>QqJjVԹցLS ;!T\vtYqYtŮ,JIv$;la<"fR SYNf8~IZSaBBBךMk]k]k]k]k:<xuZCZSaКMk]k]k]k]k:4!t!t!t!tдеfIk]k]k:4!t!t!t!tдеее 5thZCZCZCZCZӡi kMAk]k]k:4!t!t!t!tдеее 5>rZCZCZCZӡi k k k kM55!t!tдееееCBBBך tZ3۷@$Cy.5zjL%hS Z]etA%gt t5}LŭŇUI֢sk%"]1kqEPqkggŭŧPqkqY;+n-3kMc**Zt#袚$kQ>(kYZ~ydqJ~8JtdqR?,>t.IIUOw/6OO>_鶍7y??/]_ߟCO=O|s,z<$*+j?ѭ"9mgfۡx¯9׌Wb|ߞ/w)Q_6@.E|wS676M>=7mVKίvbLՊ6ɫk;n4?^`)fڞvz?sY~܆k~lɳ Y7|?۷6|/gUn#$ɳ C">6ަvǵ>!x ZK};YBۻLa;?۟{?GAQ` ;>]y'0vxVn>h.`~~s~+o<6P^}㋕!cXmCv*}0?CS+MS>!yt~meɮ3^~ּoS6By%<{T6};G&|O6o>?4Ɖ}#S5S^W3ɃVW փ[}cq~߇Ao󟲝}wp{;|X:_-6둏(|wioWۻ_Rۋ6Cd~ɻ= !`>9/ exf'Dy,OOxr{::ĽuOlǢilǸ uO<؟gO?Ql~0~=㾭{c:su}?Oƥ򮇖qj8 7Ŀۏ9sX c ܾ%>ϳ?oݶ?cs?jc[rignv]<]~{o\/~翷:Q?']7N~}?c;xud۷'xpk<=Yu{㖷! u{;v.ÿw۾v~^'tLucu~=}:ng]ۀr>a5oN!}̿΀f#ܮ}Wߣ`m;۷5Ǽq6}p9t~Ep{;ݞyN?=oq.T^?|۵f?pmu{?=x>o|s{m[ݾ5osU})ߏ1}?"_s?kxNEf9oooovm<;ܾߕ}~xng qxٿەs{߳_#ϼ]y{wܹ={:W=V:m ?o#un5KXv>_o18޾?8}-^_9߯ gvk*??}m}Gv:O{3㴟p߯5YRꋽ*q3'G~<$rٜw&?s|~ӟcv|o_ec% kkvy')sq(}s]7uJ~aZߏ3ɎxI{oxq%xqeO¯_sy9ӾH?a9z')r|qڣ#=q_9Ͻ#z~t[O9qum,}OPoC N9vZes|=܏8~|~h/Nok3^~x[*4mg||N덬wZ>>x~>q]9f)ce#{?y\߻!߻|^sߖo8c)Ӿҟ|>>97Žs$ۣ1n_u/ vqwOi/=gM}^5~xZS+>~=~9?z?L~e߯L5S{?Eܛ}RR?wyJ?4;98>ec^~?!}=߻]aeΫ}Wd+s 9owxٿK7-ǧכs~t{ݯ{3t,}ysZ`5Ss]Yj*S-38~#?f9qߏFtO- 1Y{0s|u^SVwM)O6~8 ,8u㼟sڗ>|?8>C+ǛJ߿?{KtfwiOϟN_[ܯO}s||ה5X|[fya:8p:gi߳:17qqƧXG>Vq~fH;Os}߇60׍kݶr~>q|ߜv=sN~?ioK$fç}s>yԼ_X-Yi!O|~86%iK[}|6kֿ,_}se]xtOrY&m1fK{y8z義.UrM}w9ߴ/7}qPHyaqӾ/}_n~q>ӿf`뻞>{jo+}j$zYRAV{=ȸuPsOo?Or=kgA??+}?<|?kvӡ"⻝]hŽ:1VٹwvԖt~juea[VŖUv;&| ν ?_RVU~z~Twm f_ |KP*5H2a̶ /mK^0_``d>R0[I̶c`6ӱZ02EǪ`Y`ށ_ |P0'sIKsAZ0/FR0isIsAZ0iAZ0iIsAZ0i4AZ0iFR0iB`&3L f0-aZ03L fä`i ӂ9 fä`i ӂ[=0-aZ0ô`&3L 0/aZ03L f0-I ӂ3L aR0ô`L3L fä`i ӂ^9 f0-I ӂ3L aR0ô`i ӂz3L aR0ô`i ӂچ{ ӂچ{ ӂV f{vs`7R0`= x|^qV0 `^+i//Y(eH`6`e's LCI'P イS̲\!R0o}5V0t3V0t3VF|:H -z#):H덤:H -H -^ȋ덤:H -H -z#)zR\5Lk0-I 5LaR\ôiq5LaR\ôiq zحOk0-aZ\u0-Iq 5Lkäiq 0)aZ\yq zXkKq 5LaR\ôiq zXkKq5Lkäiq 0)aZ\ôiq zXkKq 0)aZ\ôiq zصOk0-6܋kװR\c5ײU/ϫ]&P6(,zky xqx:-z_ײ >R\7:V\oHײ ~ ڪ>(w@Z -z!/7:H -H -:H덤:H논H -:H덤y:H -7:H -*0)aZ\ôiq z40-aZ\ô&5Lka^\ô&5Lk0-iq 0)aZ\yq z0-aZ\ôiq=Lk0-aZ\u0-f0-aZ\ô&5Lk0-a^\ôiq=Lk0-aZ\5Lk0-ֻ0-aZ\5Lk0-6܋k0-6܋kװחo+e4R\KaJ/V\=[yo-'Pky6N򸞀׶|&ŵ 'P<qEJq-8V\R\}q=Vd5ȊkAZ\z/AV\Yq=轱Yq d5ȊA5ȊkAZ\z/AV\Yq z{ d5ȊA5ȊkA^\?{qכYqכYq` fV\offV\?{qכYq z3+콸̊ͬ̊YqכYq̊kכYq`ͬ̊ͬ̊{NlffV\of7Yq z3+5^\offV\ofכYqכYq`fV\ofכYqכYq`fV\offV\ofۋͬ̊{/7z3+7z3+Z\offV\?Xmõ̊Jq-;\_*^ʰO(zl+JqmgZq}Y/>((+Њk3}Z\1:E9P\/K(ŵ,mF2|Z\8r~(@+i:H논H -z#i:H -7:H -z#):H -79H -H -^äiq 5La0ôiq z0-aZ\yq z0-aZ\ôv5Lkäiq5LaR\ôiq 0)aZ\ôiq=Lka^\ô֚R\ôiq z0-aZ\ôR\yq 0)aZ\ôiq=Lk0-aZ\ôZR\ôiq=Lk0-aZ\ôVp/aZ\ôVp/aZ\Jq1oa?];Ed2R\ۣ"eO͹w Z(z:I@)ev!;`ŵ#'PkGNײ / ߺ_Z\[ͮ(ŵU ڞ'`AZ\iqBZ\\쀔AVr~ZY!~xo:AV篔e|' hAZiI~AZit?H ?H J?L |0-aZô&0-aZ>L 0/aZ>L |n|Zôi0-üi?L |0-aZô&>L |0-I? |ZW0-aZô&>L |0-I? |0-I>L aRôiz>L aRôiچ{چ{V <३([[_Va#P |{.@[}4 ~=#C_'P |3+P |5;F |[@)$P ;`-N|>RJJ/s'jOes3Vϫɀ[Lfr-āixŐ@ M0pp@ '>P H#tEM2HɐJD2dRɰKD2dR!H%FM R!H%F"T2dXHa"`*`*`*`*IaHJJ0 0 D2T2T2T2 dddd&!%L%0 0 0 0 0 D2T2T2T2 SaHJJJJa"`*`*`*H0 0 0 D2T2T2T2 SSSS0E2T2T2 SSSS0.`*`*6%L%%k&ateopٹ@ |2'P$ͰO$uB?y Pvte}9?6`! LxY6@ 6:_l}lyTX$Pt͗T'b{Nu{`%XlP`%LX$Pt N0a:fEM2xo$CHT2l$!H%CJ\2l$!H%CJ A*6nJJ A*6!H%BE2 SSSS0L:(0 0 0 D2T2T2dd&aحO%L%L%L%0 0 a.`*ddddd&aHJ0 0 D2T2T2T2T2 SSS0L$L%CKJJa"`*`*`*dddddZ"`*`*dddddVp 0 0 jV$ú Pp|e6ɐ)Ϸ@2$P$lNHu]Nپ*V|~d8Y3H%u9|Np]zPU$AJ$Pԃ)u; Lu-Gp3vԃHՃ$@k=Vwy\=_pX̷쀪! *7(o$PԃɍP`"U$Pԃ HD=zRD=zR!HFy R!HFT=zXa````Ia0W0UD=T=T=T= zzzz&!L0Q0U0U0U0UD=T=T=T= Saa```zzsSS0LLLL0Q0U0U0U0UZ]LL0Q0U0U0U0UjaXm]=T=>PˮA'P&Q{Yz5 `}0b K\0@QZ\R=zX E=߾и0p^s`.ou5#Wt/V//WtS\= I[qT=|􎞯֦lRE=*~M=b+Pԃ0S&Pԃ I@Q*vՃHs 4>W!UzRa!WzR!HC!HCD=zRPQD=T=T=T=T= n LLL0Q0U0Ua`zzzzvSSSS0LLCa````zzzz&!L0Q0U0U0U0UD=T=T=T= Saa````ֻa````6LLðچzzR&蓩 |~CtDN9^_ bUV'.)?֦><\=34\e%`JE=. `"W:dL=HՃzz1: zС;`AHՃ@QOV!;!o7=TԃΔIs pI#;VHq |@=$a#QAT=,a#QAT=zRt^T=zR UA*aamzzz&!L0Q0U0U0Un|```zzsS0LLLLL0Q0U0U0UD=T=zz&aa`\=T=T= SSS0LLLLLðzSS0LLLLLðچzzzVpW0U~(ze(aPZQ&_E=5-.ρ}7SGE=34`*v@Ճ Hbd{(A7LՃȹԃ313Wz`zP}@QmHԆ@Q:SfT=Hlyu zI# `s@v@ՃW@Q6#dFT=l$!HC\=l$!HC UA6K UA6!HBE= SSSS0L-0U0U0UD=T=T=zz&aحOLLL0Q0Ua`zzzzz&a0W0UD=T=T=T=T= SSS0LLCa```zzzzzZ``zzzzzVpW0U0Ujz/OC>P |v!CE==u쨇zXb`uC^PԃU6#W*ps@p \쀩jz(_tU\=W$\=ؐP`kn$Pԃِ\=\.-ґ@Q 4`[쀩ǒ@Qԃ@Q^z'@=$zHHA&$g)(YRy"HEʋ"HEʋD^RyPD^T^T^T^T^ LLL000a./`*/vSySySySy1LLE ʋa"/`*/`*/`*/`*/&"L00000D^T^T^T^ ySyb ʋa"/`*/`*/`*/`*/ֻ ʋa"/`*/`*/`*/`*/6LLŰچ~{ܷyAS6~O٘Ox_@30~ˋXO_^RR~?qM^ &/@)q)]S! fN&`D,)'pMa^#)d TSC()diP)؄%PM!{(BV P4,$Aiu~LS zUxW~)PM1]SLSLSLSLS zLSLSLS z  A)]Slfb34Ńwq63MiLS<ػ4f)`)63M`b34ŃLSlfb3x^f)`)63M`=LSlfb3xf)63Mi{Zmfb3 4f)63Mi{4f)'i jLSlf5f)63Mi{4f)63M`vMiLS<ػ4f)63MimjLSlfjb35Mj iL['PӐ~%jVjuE^ny|MaUv_YiOHq[(BbU<"? r&Wu` ĤoS6@Q(Wj(!WL/YK@Qy1\Ƅ@QJT=W7D%PCi:+RAs 2c.$NB" HD A*$THl$] A*$THl$B"HD &BBBBBbtf`*$`*$`*$s!S!1LLLLİ[= a"$`*$\HTH !S!S!S!S!1ůֺVEH&BBBBBb a"$`*$\HTHTH !S!S!S!1LLLLLİz!S!S!1LLLLLİچVp0"$d^une!![)(B { w?<ˆ{a#3(&\y 4Mw:n=PL\!P@~/g(bkFSWmK*J4\EiPa5(J}=P H)+JÖ*쾛{(J9.tCS+4)yLi{S( ~@Q=@4܁EiI:{( GJO) UwTqGEiQQA)4(;*J#HqGEiAUiTi,VbEi,VbEi;XQXQ0UXQw֔bEiTi,VbEi,VVWbEi,VbEiTi,VƝ5XQ0UXQXQ0UXQSXQw֔bEiTi,VbEi,VbEiTi,VbEi,VLbEiYSXQ0UXQSXQXQkwUXQ0UXQXQچ7XQmxSXQ2OzbxҰ aR4lLiI&I( Y@8t5 _]4tҐ/4!%hJC E4Ut\Li|7B'WZ:KXqXܭSU(J^|(>P+P=\^42&{hJÆr%PJ( -u4ꭲ( u Ձ$PMAI) E&JH(>P+Jc#QA4TiRtTiR( UA4*Jc( * * * *aҀҀ&JJJ#̕L0Q0U0U0Un|4`4`4`4ҀsS1LLLLL0Q0U0U0UDiTiҀ&JJJJJc( * * *a4`4\iTiTi SSS1LLLLLưzSS1LLLLLưچҀҀVpW0U4loJC$J&_'JC'P90@pa)pq^M_W(~Ґu0'KszҰ 4ΐ8vJc~4hJ~Zfbl@SK8dŅє ~U6S%F(X_NpҐM&J#r*_\S@p44ljҰq a$4dPEignJC6U+ q 4nïJ# HF* UA4Til$ UA4Til$J#HF*&JJJJJct`4`4`4ҀҀsS1LLLLư[=* * * *a4`4\iTi SSSS1LLLL0Q0Ua4`4ҀҀҀҀ&JJJJc( *0W0U0UDiTiTiTi SSSS1EiTiTi SSSS14`4`46ܕL̕N?ݛ4l zEi$\i\ih54t.LEiȢ Pi@Q7Y`8+zɁ* @Q6#4lCe#Uf((O>4vף4@i$Д?K( [{f04l;X4l"EidqV}9+ 5;Jæ%P2+ vڨo) ~US<?}]cTiԖҰa 8ԖPqpiGPdK$R$ȤH9; U%AJTl$$HUI*&dt`J`J`J*** sUSU2LT LU LU LUɰ[=aJ`J\T USUSUSUSU2LT LU LU LU0Q%0U%aJ`J*****&d0W%0U%0U%DTTT USUSUSUSU2ETT USUSUSUSU2J`J`J6U LU ;%[Q%V($W@Q%wAJ2q,k@U-_DHU md̮%WپvJlReo2@Q%"iE]ÖH̑kt$PTMWف_ё$J֏ =JUNZJt|*WkS%fopU2&Jl0Un%Jl[EȺ\{kS%TIm*1@Q%6d*1JD$`2&"PL$`%H,HJj *V RZeUVVVVV&]2jjjaU`U`U\T SSS2VϧZZZZehj0*0*DTTTT SSS2L LJkjaU`U`U`U`UVVVV&ZZ%̵ L L0*0*0*0*DTTTT kw*0*0*DTTTT mkjja wS+Zziۢ *(0(0(0(DT@@&e   a"P`*P\T SSSS2L L L L0(0(a.P`*P`*P@@@@&eXk@@@&eXm]TT m  X(փ޻ MX6"Pl1\N?p]PbEE; @iH bW [rLd_SV b%(:eLP\I@a&;M?>V(8K9!5^Et0?UnZeYjmZV*,_ԴJ׽L ph^t*a(ZVѕUp\%P YUjдJmVm\*ZE$`Zf;f7 l 2rQ4 ]䯔ebT,Tt0505050505äS]S]S]3Lt Lu LuMak`k`k`kTTTT ]S]fak`k`k`k s]S]3Lt Lu Lu Lu Lu05050505DTׄ&fak\TT ]S]S]S]S]3k`k`k6u Lu ܽK53Mt 'PČ j3jr(b& >S[V!"fl 1i,񙀋;*fV#n 1c""flIE3c$`l%Ph ށw*Meڙ\TPb2-KE:N lѕpoMlL lEbV͸*[ldEF켬@-j6>%ȴMOE&^eM &U0 3L L L L L0TTT SS  f(***az>U00U00U00U0DT&     f(***a```\T k]```````&  & L L0Q00U00U00U0DTTTT k}`````VpW00U00U0j  f a- *AEXo3U?U\ c\hMΫ;`ZE'PU V (ZV*Z6'ZEMIi)waw@-f#(TH.[tq(EgzȖ"[Mr&[%%u)~Eˬ3 lUcp٢(tlQ@-oEO {\-EOow"[tMEؚ b{?'Pdl1:6M*q6 4sJ@9>P0 Y(a`````````I   f(**0W00U0DTTT 󩂁E&     f(***a```\T SSSS3L L L L0Q00U0a`````&     f(0W00U00U0DTTTT m+**a wS3s/B]L`dTw-&PL(qX0ӿӢ`USL. R\ؚN0E\W+ɨCQ0L5#3U\{S0Ԛϒ@Q0+/g`d5E!PLm`iMxU0'^[Ag.0&3.f631Llfb;uf&f]lfbf3303yw1Llfbn|&f631L3;bFV!bFEDE̘gIuyghxhbf}>\Qkւݨ];9Pt\ר5{(V."V!Fp]c~&FFp]c+(F$Pt ♀CzlƄPkT%F%v]#x]S[Ѧk; |k@׬@5DTTTT Lu Lu Lu050505ak`kvS]S]S]S]3 s]S]3Lt Lu Lu Lu Lu05050505DTׄ&fak`k\TT ]S]S]S]3Lt Lu Lu Lu Lu05ak`k`kVp50505j帮 R]tfEXnTX1kg@5wp]h1}@52f P]ZLu?H` ]#KL@u ]cb(EEטLYkdk Y_e= `TQ2o1_m3p1+3(bS%bfML򛘩"fQ,mߞ?&f"A Q@3~(bOEt3%hb5M֬^61cO\@$Y"f&:a"f`*f`*f\T 1S1S1S13VϧbbbbfX]1bbfa"f`*f`*f`*f s1S13L L L L L03030303DT̄&bbbbfa"f\TT 1S1S1S1S13.f`*f`*f6 L L^깘 R1IS1@3fr(bz 1sz_&"fl 1\hђ@3VG퀊Y~@32#*"fVE iف_]1c &frV1#eL|;1I\e"p]>PV-z $] W0x#EFJL=;` F$ F% O(X&` 1ɓ+~s* FtEU0lpo( f&PW0)m `psE 303wF$TLDB%0TTT SSgHJJJaz>8080808ZOH0808DTTTT SSS3L$L%NKJa"q`*q`*q`*q`*qāāāzjEℹāā&gHJJJJa"q\TT SSSS3콽L%L%L%ΰچāās-hTc]đ^đ~aEIH&P$lޚ@88֡OH+S&('td7k@%NVexxđucEBd>]'"ql 4jRWܾ_*q$P$$?{SHWww>_*qVTN?UN c,vEԎ,LՎIsA+Pyꚩ;jǜmvtvevltE\\ U;(jG_&jv"PԎ,<U;:2vl8NM&KpH>ja҅&(5L50@0@0@0@n|```|@a`&hh j0@0@DTTTT  S S S 4 s S S 4L4L5L5L50@0@0@0@0@D&h{/`3@0@0@j| R J4 >1K@>MI@>кs*|lI"|(֋M.@^8&|\oT |0j>@>bDh/6{]Hj P>fp,"|L ]3)"|dv.|t 4#۴MK@>R9j;`GW)K١@>VOENP|h QE#§]K §>>$T "LLL0>0>0>a.|`*|vSSSS3ڋ sS3LLLLL0>0>0>0>DT&g   a"|`*|\TT SSS3LLLLL0>a.|`*|`*| LLLϰچYƅO > U;IIQ; W{Ic ԩWzUz=*&NfNz|0j|TD | q@$G PN{Yu$Nmo)N@[X\I%WI>;k܏@Y%P$i1M*qL$P&JHŔ@8,N%&KHtE0sZg]E@\m{XY&%GEC/%NO7,-A8j}v$ JH@86GlıӓPcڇD8'^{H>$>8$T  L%L%L%080808a.q`*qāāāvSSSS3ċ sS3Ƌāāā&gHJ0808DTTTT SSS3L$L%NKJJa"q`*q`*q`*qāāāā&'%L%L%0808080808{āāVp80808xJ 8A*q6f#$9+$m<*qpұN-l|?kI>X86ށ_/l$ԫ>8 c#hНb}VI*qlpPC@YؼRmcM*ql0LmB J1@Q;pPԎ IMWkS;v@N)(j\PvtPEC;`jG]PEQOՎJڠ4uXvtiE:uڱE'jڱG@$iW;G$L\MB:0>QD4PQ$T 9S9S9rrh!!!ʡaz>C0C0C0CZȡ0C0CZ/!!!ʡa"`*`*`* s9S94LLLLL0C0C0C0CDT&rrrrh!!!!ʡa"\TT 9S9S9S9S94!!ʡaw9S9S9s R9r(HFlŕ]Mmisx"O!{bm׫Dw׻^%P.Sȡ:[sȡ7)OlR=&W |.Z% p9cV@Рw *4@EJ3D;g}C[sx(gU^E*|@EaO cl'Pzc |AS;F(jA&jG%Ps~yIvtPc%jGO v@N"i?ڱy oU @0@0@0@Z_h0@0@Zh j j ja``` s S 4L4L5L5L5L50@0@0@0@DT&hh j j j ja\TT  S S S S 4ϱj j ja\T h莊h m6# t4 ]{iǡ;;@@rE; ;fM$P4Hhٸ7O`j= |pg(cN_XP9tG.q"lQEJ.sP.ԞmJ,@CB>x @ճ2kh]f y_lR)edV)#7\k)#7+S)ʨP2J 2J 2*(~C8>2(Ȧ-@SF:[mtl=E%E%E"H%J4et'2rɴ>i3ethj%L$UeuO4XK0KXKXKXKV#TtgM/-V U/-VbE/-VLbE/-VbE/T/-Vҝ5XK0KXKXK0KXKSXKwbE/-VLbE/-VbE/T/-VbE/-VbE/T/YKXK0KXKXKfE/-VbE/T/YKCvz)HRꥍ@/%^JQF+^eʫ^JQF QFR#$r K_׀%@KRI%FIzi~=(va ^dnkH\v@DRPI4d'F dXE$JrYHZWy]P]8'PDꏟP J$)jT$H2$$|$u[;`"H! H H҅vDn$$U$iPT&t?E$و(E$ْ$H=(&"d"j穋g^E"L=MBD$R$>IIHH&" " " "iحOELELELEҰV " "iXHHHH&" " " "i$0I0ID$T$T$T$T$ SSS4LDLER$$a"`*`*`*HHHHH&")ELELE0I0I0I0I0I'HHH&")ELEDKt2224^$ZFHQ Ե7n2:q@[{Me/kZFZF~߯eD RO@EL!PD'&@E$J'` m*F%YyD(zi7zk])]_~*M/;i5GL/ 2~Z\THF$U@I2j&/_QI6$HEE$Y}&LU("IFUpE$>nPTE${~If,&l#")c]_E$ɢ;"I턋$'E$GBE,E$վPIE҉cwtPK;{DBf]/mfzi3K^z[=L/mfzi3KjK0K^zV'^f63`L/mfzi3KLf콳L/mfzi3K63L/={/t3K0K^҃L/mfzi3K63L/mfz{]0K^҃L/mfzi3K^z^f63{]T/mfzi3K_ KAT/m$F&^JnO&k34'M $&`z@L8=^KgWOG%[J@K2؀@'Ct jzdZ/%PD%+(; ^ZWP>\/"E/-JU8q~9^Z!k@p}?t{pNmtR&(Ix(ibv~~M:8Kj0d+zpdpt\+sF|L:bNN6*&0/k>&xi7_.lw((I N6P$vH'T$tzE:K=Qi*&:JH&* * * *jحOULULULU԰VO* *jX)&* * * *j(0WQ0UQDETETETETE SSS5LTLUT((a```&**ULULU0QQ0UQ0UQ0UQ0UQ2&**ULULU**HUT UQITP(*ʺM %sh*JOTJ({Қ@QQ07WQxTEJUʊYpI8ןzK@UQ U'MPe 2@P%ځ_ ' | (|SEP>i}ׯ>$ץi^R륯u~؛^_lK2rdy,G%P,SFm8Kp;K*V%BH^ըv4dkDK&H$r<TH(zM(zIDKgU )M/^K2 *O KD/T/T/T/ ^^^^j\/T/ kuBK0K0K0KD/T/T/T/ Sz zi%%%%a```^^ sSS4LLLL0K0K0K0K0KD/^^^&z z z z zi{_f3K0K0KD/^^^Z KAT/m$Fz)K@K24j^';z~ d(z|TE/K:*lD_Yxw(zI6\%[@K1 )A/o%X uG`@Kjv@R_}TE/Q:~(dM ^X |0.6N6"&! jحOLLLհVeA jX4& j* 0T0TDPTPTPTPTP ASASASA5LLU * * a"`*`*`*&*LL0T0T0T0T0T{8&*LL( RA*HFl5A%}nKEPZ&h *3Z a.tUEPwÞ*lv`.lsEPYo>TZZ__3<pAOpAC( 4Ae lLPJ*N *m \ͧ'P$K *@'vׂ*UeYbc6zTLv%PTԺXOx}a7e0WQ:5qTEJ(Y@QQ&p+n퀩(c R;([>lkGT5$*J"*Jl WQ*lIEEՎDUQP$TEo_jgU"a*j*+*`*`*^f*`*`*`**0T0TZQLLL0T0T0T0TDPTP& j* * * a"`*\PTPTP ASASASA5LLLLL0Ta.`*`*LLL0Ta.`*`* TA*TPm$FPToH *$PhʺK;ʌVEP9 bO]{&ʌVEPF\P1Z;`JWM*[$"h%*w 4AeFkTPJνI*+(ʆ\ *r@Tye;r@T6<'"L *r@TbhJ qUbv@Ui+PTf(~TMP/* *]l+THpA *l Ae'J TAUMPGT: *EmEPƨ *oDTY,>\Pf *PA8'"j ֩ʞhuM?T$TPTPTP TPTPTPTP kUFTa.`*J* * * a"`*`*`* sASA5LLLLL0T0T0T0TDPTP& j* * * * a"\PTPTP ASASASASA5߳ * * a"\PTPTP]?TA*TPHUMPIG#&N%j(sW e(*Fc%PT/UQ|EEE  e(*ʺ;*W%J@QQ6j>QQ;*WXzRQ eC (**'*JWUQsEE(* e" Lf쀪(@QQ&d(* |2otTP_WQQU?ۦ귧* T0pc( 4r'4 N:K'݋K',K(TdItaKH'{TD¥2 N "o#Si$tݱV԰wtpEҿ.{-*j^q<* j+j+ja(*̵LհVmSmSmSm5LLLL0V0Va`& jh+j0V0V0VD[T[T[T[ mSmSmSmSm5LUk+j+ja````6SmSmSm5LUk+j+j뽣*HUj VIԴNh+k0mFPY'bT[Y?%+@VwKh+dY |(&I쀏j l7` 4me+GP%Pe u(ʆ4juE9JIh+h-V:$l2ϕ@Vf7(\ 4meg\[OJMϕ@m﬛v=PQ ..Vm2_ CTFPU9ʸQme:-WU>R: V" VW' V" VSb%JE$L[|V-*aZϪh+۷wLtpmpmh&%(FOBMc$QE'QUUmejl7{H4%WI,i6W2_*NWQz$TTT SSS6LtLuX0a````Æ&: :,uLuLu0a0a0a0aDTTTT kϢ``ÆާLuLuLu0aa``n aAÂTm$:,HuX a HZ"IM@_1_V_/]ӏ`BzdVM|I9'Z&c1XV_%PėJ/[$fL|)KauuS/+\p@(Fy퀉/]*>_JQE|لhLQ^ |${Zzp:.3HAM|կ%PW#:2k#W\"0*2 Tec&a2Kp/*l$ YqO-.],,KeKe1{>0HeOHe,"1 Y:l*"9o(2H(2FMfVN%QdW#QFfiU\&H:D2\q\%ėI9&.&:U0``Æ00a`\T SSSS6LtLuLuLu0a0aa``Æ&: : : : :lXSS6LtLuLuLuLuذ^f``Æ sS3Wǎf콝̤ff63-S/`mf7c;QԘ+v1YP9& gDcM/kDcN?&=GB< ߉R]/KnDQdNG&IVŝ(L(ك)+vUf2E8p[f=d+Ɲ(L ff;oL3$TcۉdN~N~Nչij==~v>m'L=[Ӻb.wfH|'\=Aj5W&n"lDX77k6)bjYqvZ_k}7f3"Dܯέul؎4&)O(eia/o".LM--31dS&^Hm2n"Ŵ)MDkQf'R]MYo\#DMn"&h* ze@qM=h 4%߫&hZny'.hjn'^ 4;깁{n){nih &{n&h w9hni'5P@3w]}?\݅ su0Wwa\-VfԄ۬I:k(N;$;.=ĿVII's*vH:YE'\Eݭ t2s'\B;Q$.ls/EٶI:].utz>y$LEi홄;`/l~Nu' =lg(Nu@EDUEݹ Uw*(NMۉm]}}I4uw?[d~?t'LmV{u". WwuuozG):\kݟj)1ϳӺ^^ouỦг))BOf>ET3"Ee}w{q =2zXD\0r#E1ez2)BO!"T)Bг O}hKąD\蹜$R>&R} =}.N=u4K.Nąމw!Oz@z@zkՄЅЅ@z@zE] 4tttt7ЄЅЅЅ@z@zE]] 4ttt7ЄЅЅЅЅ nBBBo = = = = ]΁... ,BBBG(B/̅^ 0z sB/̅bEmfMM O^MYWa'T西2u'\j;QlEϼ]y$L1(BO`.l=(B/"hU/Ϫ =;BOG$QFIDzxEe\Å, zNгev…RK%L![2 rg3v…-UG =Hгv=Eba;Q*$Г99`0 |}2/lN3ӕD|=oKho:nh%[q}bjb/q2H|:ڐH|:Дk>[)b6dk>re")|(d"|p5|.Y6j>Y )bE$2,xA$R4a~o=dS&%'7ͷ^ʒH|,sH5ĉ1D4׻U3GG555Z{5tt745_`|@|M]]]] 4ttt745_`|@|@|M]]] 4tttt74_`|@|@|M]]]] |rttt74_`|@|@|K=/5_kL so6&5_X|- |SHh>k>[n'ӾNS1k>D|ڧN5OZ|Nc_1 |г%v…';aB_p5SEia = =[Pu]?$\ |;QN^"l GB$\ن;QNL=UI'[<Dt'ʸ=I~(Oi:f\JloD}yv[q}+kju%0wD5)O |>fH|jk' =ETjq_o|s9lAqͷ3"|!|.sH||DL#>"Ei0G7i>J5Bh>Hh>D1͇ )O`"MA"Mق=qWː4|@|@|k45޲[g Ocbb+,תBebc^&$ş00Cf 29ds琙oBb>|2MH琙Oa`>|&$s琙!3߄|29ds7!1|2MH琙!3Cf>|9'ds琙oBb>29d滽)cŞ3b>e|ʘ1U3(cSc45|xW#0֍|j0/@ḣO`hz}B3Sb51wGGj0)#@ȐTn 5 A5"a5x_7hnpj0|j$Ûn KpLwtf7!Hw8J@w8CP+tRhժfկ13Nw(]a5ʮqB:^ #sN #g}\ ' HJHH] p+tW㰯." 9S HUIHTɿ+WF:t&wN 29d!#€t&$sH琑!#CF 29dsH7!!CF:29d!#CF:t9dsH琑!#݄t 9dsH7!!CF:t2M>䜐!#CF sH0!t,!+KH)c{e ^YBW,"2Լt,!QFBۦHW# ]`W# F@:84h)jty\F@:!F@:8΍t ~OAHGGuh5x^Wg%Tw0W#0w3_x5󅛢W#02PT#0YFb>܃|ɗpYpg?5x5T//૑qԸ|F`>֦F`>nW|k| ީ-GZ)!2 2s%0_%W7z~.%0_yW>s̗0*||<f>D=b*|#+|Mdʕx-;"̗d*p; a\b>XP|\#q%0W**LWab>+3_*L琙|02_2U|&01Cf U|*L #U|*LWab 9d01_*LWab>|02_*L琙|&01_9'LWab 9d{*LW!3_})cŞ3b>e|ʘ1U3(cSOU#1`7HG0F`>'9v%QEV)Q f>~B[|xI7pxF`> T#0[T#0 f>SFGKwո2O|u|S uṅwwjٳ-|ELKg֨P#0.TS#0`7̇˃HG}ո^7x!GSrԸ|WVc6;*5aoDT!00ʠ+P] ̇s#B2J`>%Е|01&Nvo󷚘~֮S? 1Y ̧GW]aJS;/_8  [L/"&׮k 1>o{/`+LD2 NH$IPa AL :dt$I!D2 :dH!@2 NH$I!C& 2 :dt$IpB"A2 :dH!C&AL'@2 NH$0C&ALח^ AeLʘ1 vF$IP2& vFeL ߗ<5.jC.T#.V#c7pF?F5Q5%$ ?WMp`F?G؍iƕ9~j}-uX}ߍӟT5}e7p}5Gա/`˅\#pҔSԸrn7 Wq$o*;NJJ% |+q+w@x<+LX&A>i&', +q+L?He^{?@뿽ջx>W4@'3NA'@Oy=] L@=J=oU\WJ WH0}=u+pék=] ] Ga GljSAտuh\ ws%^[gЋ z{Mb>|]as7!C?2MH!C?9dsoB? 9ds7!C?&$s!Cƿ soB?29d}(;!C?) !;&2?e:#SO_e: 2?e:cyjuFY͇WnH^gDwx8F;tO@wLwO >F;WHwvE ;![@wَLw}jž@~j0|?5!U#3uO ;F;)U|tWw]+txt}t3Ath6Sʱոw*;WН+Dwnnq=WґMBH7!q܄oB$ݻmY`b|"d>WɧĆ*J ݔWFbC\abc]ab (\ Ć\ Ėx_W$bӈ*Tp9+a+58[N3m+ o&$xs0C N7 o2MH!ÛC 2) !ۄo29dx!ÛC7 o&$xS!ÛC 29dxsm o2MH0C7 o?B7e oޔ1uFMÛ2uFMÛ22M23]b1)cLS3*f`6Gj6=Ll! Fˑj6ChS味\5n TٌT#//Uٌ4 LlƋl d3܇OfWs/F`;=@6i?j6ùEj6ՕոvTvKX||+%gr!لdB8 3P\ 3\W@6!G@{?Ժ w oJ` dL CS65WfWdx4+ db2J2J2 f 2q%Y F dyLL p}s# sMa 6LlDl29db!C&6Ll9dbS!C& 29dbs6!C&6Ll2MHĦ0C&6Ll9dbs搉!ۄ 29db0O9dbs؜!9Cbs63$6gHlΐؔ1M 3$ 3$ 3$6ehl1 $6FInbn03i Ѡҍ@l\7pc7nw@b{X7ؼ[ih inb n0y.W͑rnb#s gM ws#`ޥ(`Hl Ս@l]5jDb#l9*Ll[WvVw;$~i\W0L[+[ӱsetQ?|q+7~ w; /?棑B >*HwtLW6h]W>^?VׂtO6t;<+u-ݣ3~,gͻJ;iY (ҕ@w}] t86M;*LwqDW@w}]ItwTLw]Ast!@w"ut!ut!]HwGt!ҝC:D;B:D:DC!]Hw"!]Hw"ut!'DC#st!]Lw^@wʘ1)cNӝ2;eLwNӝ2;eLw)cSt3(cSt鮲Hwt-t5 I@waDw8ύ@wtPhhΞLwdDwݍ@w4g ;c4>OF;ľn ъ7p7 <7?W;N:ntGں΋t#9F;Z: ;5pjUw'oۗZ8zٮ0G^DwDwDw}0ݱM6k+PtA8+ҝzS%mҕ@w~26,tǾ;,K0 > nߓ 鶷} ߍ 3Cd@09d!C?9dS!Cƿ 29ds7!C?2MH0C?9ds!߄ 29dOa?jO2?e)cS񯲀)cS3?e1uFO2ƿ"tV# 5ᐩ8.S0vψ&T#&T#gֿ4=@%nùj5@j{ԃ_͹G3Gw=~WO+ ?rF?:֍)8 zsi GVݺWG O#8qT ] Wװ=%Е䅮\g\25ϕ=~WZِBI lIpVU @W ,B$Ȋ Ou%`;$, W ֏t &A1 _}]-> +TY] $J A3 ftIJ A|, /pIp3b$5Х}%Dt%棥] Pi飂P CGLW[4!AGEW+̇'$>t|!ć>t|pBĊ2NH|!CĊ* |!ć2:d>t|8|BĊ'$>T!Cïׇ'2Cėʘ;#>T|Pae;#>T|Pagćʘ1*c>.Gʘ1*c>,!^|HFC*Q8X!H|#%5N C~FC}TM:ͻ|X `>䱻a?5.򡖋pʲ_5Ҳ_Sʲ_5^|A5a/>7Ҕn ^|n$>H|H!;*ȇ.>ĵ>Dqt%!+{>Z;=W+Wp*;>eˇ u*N-pI|3z]a>!'>ĩ0fWa?]a>7=UYB|ϥ\a>= ]I|\a>'Q!>G\a>9] |:|H9CϾ\B|gv%a}F>%8SA>As4*|xW6|HJ|g;vQq{ŨK8!QCƀ0@:d! 2@NH!C 2@:dtrBH 2@:d!CH  '|O! @:dty{U@*cT3He  1@V3He  1@vFR2 1@*cTY%;@v.j$jDG5*0ELZWqHո2'QxPxэ%F@EaF8CyaF@E:I׍p\@TL5*^[jT `T{{!>owjTt`T#AH+53] Hg=t%"J@EtHW*4Ʃlξ==ҕ+s] >Е+|ʞʞ >Dq }N|HJCDJWn>w+̇wr+ǔdu} !o. !?R%bMQ_'> 0>iwI((?=<Ǟ auň+5]a>,0>>m!UI|BL'!ҕć$a-b>{1*noQ+L'$jtԨ0PCFL5:djt萩qBFL25:djQaFL'$jt萩!SC 25:djt8!Q@25_715*cjTQ2FeLʘ+ Q2FeLʘ;#jTԨQScgDʘ15*cj *vF|Cag tT#@!Ըj\B5j  j 9 wj$(ioB!N{P#AaWv#DPX&|?u߸rH7xY C>#8Pj(ĽPHgoPkB A!s+ + C\ PJBMX3V@T >+W"qQ$Sy ,Sve fl7[(\g3Ntו((|4"GN^ vޕ#yJ P\BP2wy4g(S!(\Į0>m^FO?˕$@G{}p0Y) "ծ(qmmY߇9(|*ّ+ qf+ ]IPHJ{vP萡pBB :d(tP8!ACB  '$(tP萡!CC (tP萡pBB  2:d(}?!CCB * P萡!C PC2Be *c(TP*c(TP3Be  1vFPPC2vFPPC2 WP-. 5@WfvPFQH#Q5(FQH#n}F 52e!gqeWv9B!ޱ Pػ;FBnj0M 0_O{Bȩ kWHW #] PXy݁ΕhSA(Юp$WPX{mp!,>Þ+ćv']!߄|@_v@o'CvA)u%+ zGp;9 E@ ǏBl%)0)01 dzB+ \ ]a\a覂lJ=Fz:=^j==\7J=|J=4@W@ p* z7 \=W2MHAOa= z&$sȠA!ބz29dsȠ7!z2MHA!C= z'dsȠAoB=29d{>1)cSƠ2=e z* 2=e z:#SƠAO^gz1)cЫ,^gz1)c댮,ʮНh-h750ƕJqin x[t@IoWqtb5x&5NoϥAt`yjay85G;P@w8E ;>hxTp+W!Wx+p+ ݡEƕDwzՕݭL%:͕̿]2O=-S][;O%[dtI![[wO'|[yGa00E0OtwoEiqL^ ?rwp?OmלZ!Ү0JW7W_JZ!]a$ǯή_IJy*|+=z+ ] ^8+a+&N%޸%TH!C& 2 :dt$8!C&AL2 NH$0C&AL :dt$I! 2 :dHPa AL_@ʘ1 *cHP2&AeLHP2&AeL *cT$I3"AeLʘ1 VH3"AeLʘ1 vFWeF G/E \d5 iy $AF@8S# .F:WtIQ@8U$+[Zِ>˻] jBŸ?ߎWxt% +/S% .V J AQ@$yS!Q-@t|pBĊ2:d>PaĊ'$>t|!C o &d>t|pBC2:d>y *c>T|3Cėʘ1V3Cėʘ1vF|P2Έ1*c>T|XYΈ1*c>T|+|FCx3|aȲ|ȇ4,s|*5yVććĊ,X^>teˇ8U|seˇMeÇoKeˇr[ΕCWX޷seK3ߖO}Q㪓jD R#- S#%JF/QO_}Vou9~~D|F2aݕ@uɉi2+wH[w?Q#= S 6P#Q!j]aj]_5~hQͮ05₆H1Ԉ?\ Ԉ:ٕ@=H8t5xNv%P#-JFڱ+=Ҭh%jURG1߮Dj ]Io"5Dȣgj RC;Dj 5N G;^ {> < HA_T @? $ Е+ eW@R4V iȮ Ua鑮ĉXSA]Wxeծ\ O ϓ\/2v76u'Bȿ-5aU}Fdj|l?NV%PcIW۰u ԘLT%P#-JFڭ+LxQ!jLY@tXWwNBԈԸ*&jԣ21YUW ZDtzMW5`F:w+Lqp<<Ԙ"5[L4r*HF#r  +LYa @:d0d +LYaH 0d +L&0d VL&t #@VB 2He  ;#TRde ;#TRdg 1@*cR2He R2He @* !5@ҕNHj p7 95 %jAhd\lԈnq#P#-@jjjuH{W2utwHԈdFFSWy+L|JFs$;*DxCW5mW5mWyTq"+kFlq!UǙ鑮lqᴩng5.3]RyKģjl|OWx>+[jẆpEWfG [y~|dW ѤW/z|H 9r*B'JBEW yT Q/cy- x+ y-+ q*IƑF(A!Zq%@! JBOn u :oٕYp^vJ|ב0 E(w\נB :d(tP萡pBB  2:d(PaB  '$(tP萡!CC o &d(tP萡pBB 2:d(zMBe  1vFPPC2vFPPC2 1*c(TPA2Be  + PA2Be  ;#(Tv (, ]H$Hn`gR_D8HHj#s`dDT# $/D([@tFL\ &A^ $AuHP{,1`F A5PHtQ!yǹ$ OtIѕ@S!)0 "H!$HG"AVDW "HD- ʖʆ\sIGؒ"oS?uHp.Wv$NseR4+[\}n!'!>Ľ \ | ] |HGuO9*ȇ/ć}qWƘy6+qT9oJC:m͕ćt\WyYT+7ćGԣ !:ӕT5Zut%=Ӯ>=\ |mHxt]a>t|8!CĊ'$>t|!C >t|pBĊ2:d>bBĊ'$>T!Cú |P2Έ1*c>T|XYΈ1*c>T|2Cėʘ;#>T|Pae;#>T|Pagćʈ;c(TFP|>L@j| jÁp5x5pG7ٯ|&9b>Trg1k]aṀ]aϮ08WxC gWx+p*+\1RS̷ڋ+EƫKÿ$#TWsW&L̷4f|gse| ;.vWo]MJb>DW!oİB2J`Pj4Y^~`>\J`!g BWBU.31TpJ+|+|b><f>Rq*|_-.O+hbTh+hJ*f>|9ds琙oBb>|29d曐Oa`>|&$s琙!3Cf o &ds琙oBb>29d滿Ձ1)cS12f>e|ʘ* 12f>e|ʘ:#ŞO3_g|ʘ1)c,0_g|ʘ1)c댘O32f>e|ʘ:9~:c,]gHwxU#^tǿ=tgSwgOS#`\At3 댑NS/HH>9DozL #bJ@:BX& H]agYBHk\a+t|+kS~B:^J@ͫ_V2?o`s~- 3UXޗt8h*tHCr% _ HN^ ʉ+j@W>⭩G\ C"0€S!>t|!C >t|pBĊ2:d>fBĊ'$>T!C *c>T|3Cėʘ1V3Cėʘ1vF|P2Έ1*c>T|XYΈ1*c>T|2Cėʘ1vF|Pae;c>iFCG5"8gv|25"QO!%Qg1POFDEܰ{*WM=UsLQOvQOv%"J@x^+?NQ$P7PĕPq>Dt?W|XV6|seˇ 쩲e;HW|28tP  te-NpiJP\ PȻpݔp ' p~pw B!JB<B, CR\& ' N' #\a( #SA(S] P{9ҕN$C!qT CGHWGrB|!CĊ* |!ć2:d>t|8M̄̇2NH|0CĊW[Cėʘ1vFc ėʘ1V3Cėʘ1vF|P2Έ1*c>T|XYΈ1*c>T|2Cėʘ1vF|Pae;c>+rFC̫Q8!q|h`>-`>A|.`>h| ZȇhSA>3]a>䙏>EЮ0WfGSA>{!WyE+Q]a>dq !+Q]a>mU]+̇|Ty+?HJC0{j\veKvE']Q{*H8Օ@(j ] Ԉ8Mr%P>m\5zG#7q+LXFOԈQ? Ԉ] ۞{5\WNNft\~c7R#p%P#NHp%Pc Ԙt25۩H5N!SCFL'$jT!SC 25:djt萩q 25:djQaFL_odFeLʘ15vFԨQS25vFԨQS2Έ15*cjTQ2FeLʘ+ Q2FeLʘ;#jTԨQS2Έ15*cj,PcgHLDtS#P#^MԈԈn 5HB@șjj=JR# FFP5'ǩS;5f*W5TxWLE<ŕ@ux[+Dy+qwW$W5}TY']aj{TW5NQrKs%j 505[>? S#v xV~൰&jVLr]BSPvXaԸLFTeO\o 5ov;'ܢBlQqqHW@DEJ@E~FEFxW*nd*TUIٶ˔GW*S!T] PQϞ4T*~_{*SATx s~B@E>Fݘ("=DEFEg;JB3"Nt%btgTw-JFxt BQ!CFE** Q!℄2*:dTtȨ8̈́2*NH0CFE %TTƨQQbg1**cT,bg1**cTPQ2FEe**cTTƨQ**cTTƨQ3BEe1**cTPQ2F*vwTTPćjv/@(DT@8 P# 5$F A,J5 Ҳj\}8^LSW,^veW ̮\}8+q¢+u`IEtI8NI~c>j+L|j+La*q>+L:*Dwb;|8;\;<Ю0y!'~]_r;ڇ+hQAMu%=;*@w"ut!]HwGout!ut!]Hw"̈́Hw"utw@w:D{*Н2;eLwʘ:#StN]e:#StN]gDwʘ1)cNӝ2;eLwNӝ2;eLw)cStN]gDwʘ1U3;eLwʘ1)c댮%ʘuvwS ҩq骑N j\t\A:W֕ "]!0pGG qk+q섮0*nw^-?4#"] Z6S_8o*?Zpq_WY+] WyYەqHJhl9nU+;*^\ە--n~*xNnȩl>{lt fkv% M;*txqWVs%U] HGDͷe@v0-tCW=00yJ}-|/t+tLS!UR .b h+rq=W!+]a֝FϯHG{v% -s M!#CF:t&7V 29d!#CF:t&|!#CF sH琑+^B:et1uFHN#2FuFHN#2F1)cSH!2F:et* H!2F:et:#SHN#2F1)c, ]gt1)cSH]K1)cSvHGԸ֍ `ոylW"Xz8J@:I[~ Gpt% N "CӻNt%̤yVt?*t7a@:4OW U HUq&HS0Hlz> #]U3!+t<3o*?Zp[ Hv% ]\ H7D:t=WvHtetE]"zSq:9+6 seޝZ&2gn*8WLtteq~] G8:+p*plW34;Wǡ t9'B+$xٮ0 WX] BV ngu%?=`xOl7PJ7ڔ+ `-lWT29dxsmx!ÛC 29dxsmە 29dxMa7 o޾^oޔ1)cxMÛ27e oxMÛ27e o)cxS37e oޔ1U37e oޔ1uFMÛ27e o)cxSVYޔ1)cxS3(cxS uF7-U#H>gJ:Wojtx uxCsi?"17?wv0m7?5wZ gThng8Qq,x0{ևm08J8s9T] GGxx-,xCs%p8J8i48\[J8̅lw[_៏}ޖ=]ۢlm1٩lm_W3l7\ }T\ Ft%+dmyòT<;1"8ϕq8ϕq*w*qt|WC/UHWp+]N9~Z}-,q+hW渏B0?=L=z|@Q3p+oU+HD]a(!CCB  '|!CC mPB  z&(TPPCag 1*c(,@ag 1*c(쌠PC2Be *c(TP*c(TP3Be  1*c(쌠PC2vFPPC2Be *c(TP v.j$(gj(fU#Aeۏ J/[t%@FNB _ ]a(BWHC&HHNIٮ0 hW "HgHLH&A H7g~rIc] $p$;HNI$|UI$Xy]J z7Uq4W 1W U#\[O%sIw@tQXW$xflU ~jZW ƖS!IDEt%`]ICϕ+3T4Cϕ+$ nnJ A Z\ $ոHJ>N$] $=?<0E(D[T%B!٢+W 2:d(tP萡p۫  2:d(0(tP萡z;*c(TP3Be  1V3@)c(TP3Be  1vFPPC2vFPPC2 1*c(TP3Be  + PA2Be  1vFPPCtB!^yPw5Ⱓ BP˼EW y3Wj ] PJBXp*qnPSATݮTC]aTTI "f "ś]I |kr*Pѕ&*45ѕ8ٕ+J@CBE+̇|RTǕ8W%7w 0Ty{DWy+̇Ca"T~xDWka7|ȳb\a>l |U䇶y_~<"WyGEUYǮ>D !ϯtYC !u%!RTp2B+2_C-8CfbWqKW.-Sv%!n)8ItʜDWCW|8C@WO>=CtpBĊ2:d>kBĊ'7G2:d>~ʘ1*c>P2Cė>P2Cė*c>T|3Cėʘ1V3Cėʘ1vF|P2Cė*c>T|XYΈ1*c>T|3Cėʘ]n0,F5b#!^wSA>>a+qGWJWj*ttȋ(| T o j]a(䃥UIPhW rtW+ ̑03S§DP׍\a(]a(10`02!7Gs9r*pp璻P~"T -Y^ C-I iW-P(䝩]a(%(m] PLWxPOu] PJ8Afps0G]BW '$(tP萡!CC o&d(tP萡p|!C}E(|e _YWPC+KPe 1,A+KP%(|e _YBe ,A+KPE(TP,A2W%(|e _YBe ,A+KP_PC+KP,A2W%(|eנPw(, _^D`"bJp ߄?VWW UH7!ݯ.gm7Q% O3t% ]H ]ag0A9Sj(U H ]a ]a^<NiS!󬴺>w% ©J@:>ӕt\Am]aU0ZLWxŧ+H*V%!]tBeU W[}C=MV%y{m>W|g8s%p:4*pXWDž'U J7>οd ~Dl<Е@lVUx%o乂V%Ntm7JV%f -/[U[U9db0[*LVa"671&b0[Hl&buM2&6eLl)cbSĦ@l)cbSĦ3"6eLlʘؔ1uFĦM2&uFĦM2&Έؔ1)cbSĦ3"6eLlʘ* 2&6eLlʘؔ1uFĦM2"##LSFdلDa2z9$ykB8 ]'] P]a ) yЕ@a8q%P*+La|TdJRW( M( gM^ ]a *OLXޗ@a#|;[0w Rg0"]U5W}*Da n0;WR`W!GL) W( 7rs%,wErlBݏ>M^^ d ۼ pɩ+p+pWd=[X$ȴ]2W+ WVm.9XZA 9ɮu( Ƴ\a l#0n01 FMM͕dVוdAK2܋ŕda*da<F ȂM!Cf3f&7<29d606sl l 3dɀ͜!9C6sll2`3gfΐ͜!Ml 3dɀ͜!9C6sll2`3gfΐ͜!Ml 3d3gf9C6sll2`3gfΐ͜!9C6 3d3gf9C6sl,ul!Yf"!\E:f]Ilպlvf4J`3וfs$6{xxFٕf4O]Il#Ю\`$6&G^ ݕ0wu%t%mwT&+J`3vWy4݄} NЌ/9\Wpӽ6@] lFvTpk6#J`3d#D6fh`$6_] lFvT\׮6ںrͺra^YW< ǻlŐ،vʅ WW3,6?v/?,tJ^!b`LlX"6ɮ0$6z0֕@lPןv%ޞw N[J 6:\Bl] Ķa_!![Hl"uv戉C$؎01u![bSĦM[gDlʘؔ1)cb,[gDlʘؔ1)cb댈M2&6eLl)cbSĦ@l)cbSĦ3"6eLlʘؔ1)cb댈M2&uFĦM2&6eLl)cbSĦ3"6eLlʘ*K6!C&6Ll2MHWC\x!لl6a2d=WCd4r%qTd\W֕dڃGw%-G^ >J2Z.ӕdQ7v\ @&pT{} [4WьB@޺@'k:`ф0O2R+ dLM k]a Yϕd]$ Cot%:*d7-R s%YPVxe@FkLeԀqVxw%bH@A ) t%PK+La+8 ?? q wJ@1~^ztڍ zS] {] E =U%=u zrB!CF/^>!ׄv%CF/^[^1z)cK2F/e^K2F/e^z)cR襌ѫ3B/e^1zUЫ3B/e^1zuFWne^1z)cK2FzuF襌K2F/e^z)cR襌ѫ3B/e^*K5!CF/^2zMHW^2zMHk[(b\-Wowr/Wo:\᭩kar ore+hӱ0oJˣ"J-eJ- @ V/ `hY.B*p%Tp\ EK¼ oWzՅˀ^8J^hKڼ/ K^ޢr\[SAުGr%J:-[]Cu{B]W%}_,9$  ~!Yн۠i2Mo9dLsȘ.LSƘ1McZgiӔ1)cL,`ZgiӔ1)cL0Mc24ei)cLSƘ1i)cLSƘ134eiӔ1)cL0Mc2ƴuF1Mc24ei)cLSƘ134ei*K6!aC4i2MHWi2MH1LS0 -;*i8s%`ٕԺra J؃GJ4/-k@\ J421ٹ˜3$LCs%`Nb aߛ0 o]aLULe01L1 0 ͕iЕiQALYWLCR%`s1 ;*q\WpCL+ʿzV>W̕+Ls%`T:G*pޛ*X\ %'LC a+v/1˜$LS0 _0J4:6+iQAL8|l+ ؀L <M>„7Wol!6WʹBĶ_[o2Mo9dxsv{}xSM[goޔ1)cx,[goޔ1)cxMÛ27e o`HÛ27e oxMÛ27e o)cxSM[goޔ1U37e oޔ1)cxMÛ27e o)cxSVY 29dxsmB8dxsmB7 o* +p57\VJ7ܱÕo8.u :*?Zx+pX 3֕oW+p ]+tg<`xWTp+ o|˕o8͕oxJ7tչ Ws0T\abw՟ߕDlhbC{ W*v?X7y /lT_+Wc˕4_ON\2_M4_bs M-fWmޗDls*Hlʕ@ln ?s%>Ct%'SAbH?DltgW8WMm3F*J"_Tʹrئo9dbs6a9 搉!)cbSĦ3"6eLlʘؔ1U3"6eLlʘؔ1uFĦM2&Έؔ1)cbSVY Έؔ1)cbS2&6eLlʘؔ1uFĦM[e:#bSĦM2&Έؔ1)cbS2&6eLl%b!C&6Ll&C&6Ll&$bs  ?SAbí\absM^zb5B3V9Wە@l&6t /z o(J 6\'J"6qUn*HlU̕@lxN+p9+Ll+xĆ[ƫ]m<7& !/ӤT Z TX\axcqƫ]!h6om?<(ݕoFoBQWBQR}n+W͕+J7:B gJ7:A+'JT#S%`}rTU :WyJ7ܡd*oj7:WչW+6|!ÛC -S7 ojMÛ27e o)cxS᭲o)cxS37e oޔ1uFMÛ2uFMÛ2ޔ1)cxS37e o* 27e oޔ1uFMÛ2ޔ1)cx,ۄo29dxs6!]E29dxs6!C7WMKJ7L ù rs%ZT~ :WI+ o{0yCf_J777m&ޛW|72Z+BVJ7:Wx+ o| /  msĶؘ^\ab:޴@l&Ć xcF _ax۾pB7vΩ ȻNDS%K?X]_9ۄWm$b\abݮb\s7W!SAb#UIĦI_ ArĂ+p bזQi"6=>ՕzȆ0AL@^g}M\acOqA!7=v3W]z9im1B |\ +|ߴz_rAo@w$n@w7ΥJ_Z;>Wݩ sy\=WmKÍU]a-!\  ?i W%fĐ@O?_acV+/\ @F o] &GSy9>/-$C 3_|09d~})ŞO3_g|ʘ1)c,0_g|ʘ1)c댘O32f>e|)cŞ|)cŞ3b>e|ʘ1)c댘O32fuF̧O32f>e|)cŞ3b>e|ʘ*K7!1Cf>|2MH琙!3Cf 29LGT|TpJ`>c_2J`l1z-88t1ѕ|-KP\ ̇ccW!&N |TI'S!\as=\ ̇s]act7 1 3tt!34Oo ̇J`G#0g yZ!cvS\a۽/v0o¿ ?3o 0+liU!ZAgNΕ|XWS foM̷c ̷M̷2%ýrU 翔e+p +PBǏR]aۍ2_Wf1GSy9J`͠<2_G7OK 3Cf̧O32fΈ1)cSWY`Έ1)cS12f>e|ʘ:#ŞO3_e:#ŞO3_g|ʘ1)cS12f>e|댘O32f>e|ʘ:#ŞO3_g|ʘ1UoBb>|29d曐!3Cf>|9dsxTG\IG3߄ hJ=4@W8h*?o?G`CW! s]a`saCW.Cک 8л60B ݉+}_==rAmh*z<9=KqoZx֊+|ƪI0>6|o$ HÙSACp!1߄pTz\=U"aWV$У~SACs%v%\ \SWoey HXSACT%>6sAg@ p*zjz*Yg M] ø@O6h}˄BWmƾ 6zdSA}\=W"_s Adz!9CSƠ73=gz&s Adz!9CSƠ73=gz&s A3s]Yj!2|*HpD(BB"Z9fֶhԮgtx f(P艱Л  =3zf(PMB  =3z3CgBO,^Cz Q5D kB! ^Bϑ$7qM BaGУ}wzԴґ)v$;گHPw$;=юuG'q$;U N߿"au;Ԑau';ե#p+BETGVw՝'?}VwX:ӻIu^X}z#ܑȏv$;-Қ^Uڑauڢ#|x.ȉu{ +19qx#\8_GNH|$^8^ >=zxrGNУu$Oo =t B`G#| zGУ:9Z^zIG0]'aZBztyAлd"އ3Bϑ3B#(Ы>=1zb,X5#'BO bA5#'BO f$X艱c׌ =1zb,׌ =1zb,c'BO f$X艱+^3zb,X艱c׌ =1zb,c'BXz3dgBϐ! I3dgBoBz, I5Du7!K a}]Cqxۄ}ޑ988Wb7:Š;ߏq$(6yFg|EPs$(6IGbq:-AHPlS+v) ֆA4f^>=Iaq$h3T3ڌ#A ;VU=x#AѢ[kNJrpV;S8]GYPtj3)mGtA +I$mgm6#:͘#,،9d-uHi}Hi#A;2Ӈ?4t32 "Aew$4o7Q3B2 we^#A}،'8dڇ?4WzKitFGL {t$4yyFXէ O4GXL[&41ib,X5#&2Me˴bA5#&2Me˴f$XLc֌d41ib,ӊ֌d41ib,ӚLc&2Me˴f$XL+dZ3ib,XLc֌d41ib,ӚLc&2XiL3df2͐e!˴ IL3df2mBi, Y f2mBi, YLpKi$F{͑ п9d4TvN$nC._~5ue49i,a4|9d#,qp,hGYhu#bgdGLCgHi(:!6CH+y#E6C;mHfهW,ioj/]MH*l3ˑ3ˑ3kFPzyAI #,>m̑Izс ~))K/C^(NAzc%ҫI/1^b,Xz ҫI/1^b,Xz521^b,Xz5#%KKbAz5#%KKf$Xzc%ҫI/1^b,ՌK/1^b,Xz5#%KKf$Xz*ׄ$ Yz2dekB^, Yz!K/C^Az!K/C^,&Uu$I/d$E;0-h3z %#AoDS$-r"Nב wQGHdMJ>GHY}( GXN99!/^jHPVh9ˑ8Aek  ʊN^ב:#AYI_TVƑp9#x,&}99HStʯ5LJ4ԇW5i(t a 5o_#, ፴PБ37:Tȩa9U);.rԄACř_P|P#ACщ:42#< oۓZ I*φ4ԌR䔆r5!k J5k(1PHCc %XPHCc %i(1PbXC5# %J5kbAC5# %J5kfXCc %i(1Pb Ռ4k(1PbXC5# %J5kfXC*4Ԅ YC2d ejBP YC4!k(CPAC4!k(CP&NHPh! 5! '$yH=j wmA4!K  Y Є>A~Aś=+#gd"d#A`!=U~`H=x#A`Qsq=ő {9rf}#&D!H(Άǵ9 0(:)hR@S~8 G-( Iqa8e=/͑HP@hF~Y1dcȲg8'#d!˞ d!C=,{&|=,{ ȞAكo9dI${ꎜ9(9d*֑tbm:\ {e:NwF~zt1 WF GXEAK#,{ʞO?\H=6Y ,) Z ZϟH:dFPP  ZZk ZOZKaѢCGa Zঃ9s#g#gΌZ^}H:h9uI#ZGkf'ZGkbA4>1:buX4##ZGkfuX눱cS,hfuX눱cӌk1:buX4##ZGNuc#ZGkfuX눱cӌk1:Œ֙!kC:u YLHZǐ!kC:1dcZG0hC:1dcZǐ΄{O:u Y֙0NIcZg8'cZǐ!k ,!käuhpFP#A"A~:xԕ#A`p$hl38ZYXˣj,s13j.3Z#AR$h>#uGt/A%s$h&ёשt/A}xt/A6qЧoZP@| eEbmHڇF8kB<3q$-zӶn>Ǒtzm~,q̉Iguy3;7?֑:rf #Iq G_Vfe~H=Ǒ${j*!{9#{cO01=b,{X4}A1=b,{X c#Ʋ1=b,{X4##ƲGe˞bA4##ƲGe˞f${Xc#Ʋ1=b,{ӌd1=b,{X4##ƲGe˞f${X)dτ${ Y1dcȲgB=,{ Y왐d!C=A왐d!C=,{&}1dcȲǐeτqrOG0C= >C=,{ YLg${ Yك;t3Ǒ {/Ee?٣DP#cI#,{9²W 9d G"=Pr9+{f7pGBHC bW8CXC~Cdy>άrЄiχAكF${G*>l΂G٭ O'33r$'LI <#>I5r$)qJmC$ H+f( H+bA5C1V@bX5#$ H+fXcT,(fXcԌ+ 1V@bX5#$ HPc$ H+fXcԌ+ 1V@Œ!+ CV@ YMH Ȑ!+ CV@2dd H0( CV@2dd ȐЄ{OV@ Y0NI d h8'd Ȑ!+ ,!+ 3 hFP!G=MER-PpZ#GX^}sGǗ9 Ep!?; r$( \!HP@2gMp$( $‘*GH}({Ё8djGYY4#>=> Q@3 "Iq$( 4-Ww4!ɞ ʞNH:h9szyM&ȑu9Zl·9-i3g:u>:#ZGkf'ZGkbA4>1:buX4##ZGkfuX눱cS,hfuX눱cӌk1:buX4##ZGNuc#ZGkfuX눱cӌk1:Œ֙!kC:u YLHZǐ!kC:1dcZG0hC:1dcZǐ΄{O:u Y֙0NIcZg8'cZǐ!k ,!käuzFP r$h5PupOӑu?;#uvMڬC28;ΓDH:xیM::\f GX R$h^?H:x#ae:AكG9d GHLΧ'zfe#ieQ:ieșøf.¦/·t:hø&5<5Fٓ'3gȞ({i,dOC= 3*",{n9d!GƎC~AC'?H=X#,{|BJ#,{ێٽ#w&/ۑ {k RGf֑ {t^ϑ${萴A\ZgB8(:«upyIGXh^:$:)iΧ}֡IZHXCACGu$ȞX=>MI:dχa=_ {Rw$Ȟz~H=t2WeFH=f${>Ldu {XcӌXcS,Ȟf(ƲGe˞f${Xcӌd1=b,{ӌd1=b,{c#ƲGe˞f${X)dO3=b,{Xcӌd1=b,{c#ƲX=1dcȲǐe!˞ I1dcȲgB=,{ YcȲgB=,{ Ypɲǐe!C== { YL'${ Y1d3a1dcd߯!?H=I#AWe*%GYGy.Rr$U#A¦Wd#,{B9dݑ {h+<Ñ {9d^U~FH0كBcFHpve{G,a>G>|nՑ><>#𿎰b;HP@Hy+KP@MITR@?l"I/$S hkP@bXjF{bX*P39c$ HP3R@bXjF H+ 1V@łjF H+ 1V@Hc$ HP3R@bX ) 1V@bXjF H+ 1V@HcT,) I2dd ȐЄ Y2d4!) CV@2d4!) CV@ YMdd Ȑ!+ `P@&|R@ Y0I2:.#8t0[Gv_o$p:=aÿ;+ǿuWh݊hV^3#ArWۑuRi^aj G93#Aࠍq$:SG:Ҍ^Wt$$pdhIg9ܺ"QI 18b,p 18b,pӌvXcӌvXcӌ 18b,pӌ 18b,pc#G f$pX)N38b,pXcӌ 18b,pc#X81dcǐ! I1dcgB8,p YcgB8,p Ypǐ! C8=  p YL'$p Y1d3a1dcH 3=AlD! RAHP*(f GRAqHP*tR^g XǑT9!nIJE/ JE_UԷHP*f HP*ȑTPB9 J!zV*V*TX79J=،ݴ&SJJ#gK$BU J#iM #AAq3sy  :rF8 KGR_SJESkb9T9TOJ+1V*bT+1V*bTҌvXRcҌvXRcҌvXRcR,(fTXRcҌ+1V*bTX4#"JEJTRc"JE+f4WRc"J)1V*bT%2!)CV*T YR!+CV*T&$bJŐ`P*T&$bJŐ!+ |T YR1d2aܓR JŐʄqOJŐ!+CV*Y>)CV*T&3}R*AR0IR1LJ8S ZGRA HP*ha Jwg e+˔'MP$(V*v?8JR*la§p$(mH(GR*CzV*T& . z:K#Ir /mp$]> gH8U[$(:uGHL(ƒf}7t#Ar$PDё O>|9e?on'6QM)yR#1'b,OX4}+1'b,OX V<cy"R<cy"N<cy"X'H<cy"1'b,OXC',O&3}'A<0I<1 r$-3#Aoq$-yG8owIäI84 ّIt.AM{ r5 $|(׌&ak>#|D<1dyEtFP$y ّ Oh2GXQF3}#Ap { OMn%%ǑpB^\DH'z?q$37-7o5NGȓǨA<cy"[<cy"X'hJ1'hJ1'hwJ1'ł C,.&3}A\0I\0$q1!+ IQdĄ&~<0"& k+P8VfҍaY (Ф8B2 D퀲$|N,5jFP0`YS$ӑ 03H x#,x#, ``:>H x&G` 4#,hA"NsH >Cm`c ƂAC3c ƂAC Ѯ 1 b,n 1 b,. 1 b,Ќ 1 b,ў 1 b,X04# ƂAC `c ƂA f$X0`cЌ 1 Œ`! C , Y0LH! C `0d`ȂA0C `0d`ȂÄ{O , Y0`0NI0`Ȃa8'`Ȃ! ,! C ƙ>   Y0Lg$ Y0`0d0! C , Y0LA0C^`k&$=`5\'|r7 8*?*GBG%1#XQ,(*?W~>q#\ V~?Ă#}GBӉ8'%y]d<!0a™3IՎ"Xp$T~<‘3r7oȕ8/*!W *!W~C\'|\ OgTC7?aS7oȕߐ+T r7?aS ߐ+!W r7oȕB\ SUˑPV~\Hh  OH:Ï3U~>υ#\ʏϕg-*?.]tGΜʿ~_-fF ERGW~^ȉ?pV~3fX'=3fXͰq v̰a7?a7o2 0o +Wɠa7o2Ͱa7o2fXͰq *V~3fXͰO +V~3A7o_,T+C 7Pbo!V+C\bA 7+ >7+C/'P 7q!VXb8ˇ+C/gP 7q!VXbA 7+ i?T~C 7Pbo!V+P@#>E%p$U~ ,AGBs7"\awG¯_БPOk;*?]y%) :"A'Wg},ý\ }ё 褎9#c "@E1h?AE1łhFb,XhFb,XhFb,X(D@3b,XhF{b,XcЌD1łhF"@E1b,c "@E@3b,XK"`B, Y0d0!C, YLH"E!  YLH"E!C>Y0d`"`8' D! D!C,&|, YLg$0d0a0d`"E$ Y0d0a "E! I0d`"`B, ψGd \I!(=*GΔ{Gp+ HZ_ߙ?w${lrMݑp,3sz}}=qNj}?]ّP?K(t GB'E:=GΕ=]",=]",=]",=]",=]"r2tHTtx%"R%"'~O4K~O~O4K~O4K~O4K~O4K~O.i.9=]",=]",=]",=]",=]",=]"R,=^"a*{DdTxrKD6L~|A.{DdTxȆ S%"rKD6L~l/qr~l/0=^"a*{D Y>=^"a*{DdTxȆ S%"rA~\t SE8r 1N.r'L~OA†~q'laSahv8L#Iكuο-; {h֦{ 6CA|pa&[ b/7K%|YgGb%vCG<.ƅ] f4qa.ƅX(h*.ƅ] {3Ÿqaތp1.b\Ÿ v1.b\Ÿ7[ v1.b\؛Qa.ƅX(ͨqa.ƅ] {3Ÿqaތ v1.Ra !vC.\ OHݐ !vC.Ra7nȅ]0vC.Ra7nȅݐ {O.\ ra0N nȅ}8nȅݐ ! , !vC.ƙ>vP OgT ra7>!vC.\ OTCa7nȅ}B*\ ra !vC.\ OwvGvGN1`a; ;խ#Q .w$ڿﺤ^H(zǑ"ԴeXoPkz …QL?L*L2gQޑ3}4qa.ƅb\Ÿqa/ {3Ÿqaތq1.b\Ÿ7)\ v1.BaoF] v1.h.ƅ] fTŸqa/ {3*b\Ÿqaތj1.b\Ÿ7.ƅ] {T'nȅݐ !vC.Ra7nȅݐ T ra ݐ T ra7> !vC.\'{*삡ra0Nra7nȅ}8˧nȅݐ qO]0vC.>vC.\ OHݐ !vC.i?vP ra !vC.\'nȅݐ !vC.Ɲsݑ3ݑ3}F~;r;r; ;v$v3J#cvLawLaM;?K, *쎜)GmSa.ƅ] {3Ÿqa^,f4qa.ƅMb\ŸqaoFSv1.b\؋ތ v1.b\؛-ƅ] v1.ͨqa^,fTŸqa.ƅb\ŸqaoF] bOHݐ !vC.\'nȅݐ ! ra7. ! ra7nȅ}='vC.\ O'TCa7>aSa7nȅݐ qOݐ ! L `(\'}*\ ra !vC.\'~*삡ra7>!vC.\ OHݐ !vC.\'; #g #gv\HZ_cI#'<ߑp ;.v$v\=#.ܑPر; ;w$-p/Y/ėI%_|?ޗS>6_qa.ƅb\Ÿqa/ {3Ÿqaތq1.b\Ÿ7)\ v1.BaoF] v1.h.ƅ] fTŸqa/ {3*b\Ÿqaތj1.b\Ÿ7.ƅ] {T'nȅݐ !vC.Ra7nȅݐ T ra ݐ T ra7> !vC.\'{*삡ra0Nra7nȅ}8˧nȅݐ qO]0vC.>vC.\ OHݐ !vC.i?vP ra !vC.\'nȅݐ !vC.ƝsݑP؟}"89`au$Qn%; ;]¬# ]KZ}GI>K(ؾIOH:\,șPŸqaތs1.b\Ÿ Mb\ŸqaoFӸv1.b\؛.ƅ] b7.ƅ] f4sqa.ƅ] {3*b\Ÿ v1.b\ŸqaoFsv1.b\؛Qa.ƅX*Ra7nȅݐ ! ra7nȅ}B*\ nȅ}B*\ rapɅݐ !vC.=vP O'T ra7>aSa7nȅ}8ӧ. ! l !vC.\'nȅݐ ! 㴟 `(\ OHݐ !vC.Ra7nȅݐ ! N@.tbyGRa9 ;(?#Xq##; J;.]rFw]ŎŽZPqy#p-%^LX*^~?_#w_??u?xw>?{x=G 2̯ml };h?ٙctocS}|{ͱaB6 [E{Oކ|d -p3u7x<{Զqwy󱗳=geZKG1ۋsTk-'xl8o,s+~n3u5]=1?fǧ|Ïc݄]:6t ̴o/ːuv۰-OxmSm=YOZ`WHޤa0ꅡ{|F9vWI{p߿{p=7|~iQ}?66|l %Yx oBF;P}rGו͋YSch},z|x.=޿%z%{}~>zcamF&luqRuJ^6p 㣼URؔ]a[}oQRul'oz߇V'U}8üi l5 ½"\_c_ͣ]uJ :}B_csvO=F9m(nhvvǃ}iVi/qz,CS Ys<ާu|oooxYo<׆_ _cֿpwґw|F:#}g2^-&>FVPc^mTc7ؤ ax֔C 4ޭX6Q[#DQz{ۿszֶϱ zGuhcQ5e.[MǨ^f/.)~Q1^cvrhC֏?77ʱjϱuxjt{luY?_+|+x޿FǢC^Xdczt:Zd\gv;_nuKzlu%5=kyT?׫m=Zjh}h:֭FKeVnu([y֙u,Y}Veh+vyuzz?h*s}sM55.u)KhѭU^{yijncV5zj踵z_b_n>~cVWO^g靽kVysK[7?m|ʏ#1-=2^<3w]ǫ[ᵳ:rVX{KuOkWn)ևnܗZO_b}BħǾછ]hз5 ϫw}īnuw:X[{/:eM"cݞ_4׸o[jXدe̳?=oCFo_ZPǛwZ)<̋c =+m4nO;_WAg?MuDZbުxc]dү>xWC{z|w^#W5֏./axwxFrZ1/irooڏG:W~x1Qu}:'^uߵƻ]/e͏Zx_m5-~{upw0^u{۵:cx>Vh;.6+??Яc3ӷ|pk3cE<?fc_c|VcmXYVޭ~QoǪ=޽ooz>z~|wx6=ǾߚoYxuO_|ko~^{2k竟WxӸC޷ߗu2$ѵ?[mK^߯Mx>}ϯܗ n?7w}1Icݟ{?ooץUjjXShZ XսU Z7!yg#V~/}VchySwƫzXgW}_Xr.3c{v|cׂܷ\tb[?]u]|9}Ԏ}=q{ӫz|[Uy_k/js- f_1?\~q?M\ˢ˽??>/_:tYeX\xr6V^c|v{?އnoSM?]0i'ގ7w-Dzk/n_y=G^ǫޟ7uj_}=Suޯ޷/inoEzjC=4q=g~^MWu%}^>=-%kXws]Jf4|aKܵ}ܼ?'\{ƋƫǾRƺ_헧5kgfCwK?iSݚɥ>^M_KD{?*:{j~h=4ۻ׾Kno־/GЏw<ۃ*V5t_~Z.zlǗ! K=ӢƫAcۿ|ly[Ӓ~}<4My{ߚ4'ﻞZ?>UgVﯺ[=^}k}˻7%cַWscm\:_jeL~ƺ{?ާz{[ozUӊ|ϯ¼7]fEۋ}{H cZ{oޟc.|x7C|SQ}OA =ZŽ|M>|Z:DU3Tz|71߱Yj~ױ7c{[nSkoo>`W:o%Nj3W_8Oi{ߴ}Zz7'7-\Wכ[\_=~}M!w]ǯ|>zC~O\oukۦG޴.5яIw/cGۏ{T/K=ý]Ϧa)~t_=uOEc2O endstream endobj 372 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 378 0 obj << /Length 832 /Filter /FlateDecode >> stream xWKAbۻ+Xh _™\ir<5kE7n0ʰveeRséN8U:ޔht--.f$ܞD*1IdUGIJV@-odfն$W $²w\ t0R=7/ |I"zw(1!ӫd,~1H^Pދ}c2hrZI`YnRiݥvCje&&Gݐ$2YQ0  9EގG#>'EN[2>.e!y.D ]{bud>4$Q{Y4U[|LMTN2:+gXh}'Os TQ`Dt >:+~ʹQj.ᑋ8bJ =&ٙɌ0}`]aX 03vF {fMY0wa!f觭tP`.ZHMĂIE0ËLV%HF6;pg( m2qnp^k jkVX-ZJ;;W|ix> /ExtGState << >>/ColorSpace << /sRGB 382 0 R >>>> /Length 88460 /Filter /FlateDecode >> stream xn$m]w*% {`xh PRs`xcebDz{ooۿo;:Noӿ0c?Nq~x7_з}_?~O8_?}qu]_y>x?}}j_?n_5=58~\2x~ .k#?/>׾ >>?} '|ϋp[M?c}ϯ}58?■?98OtOc}֟|\v~G-i|gq}{d!o}y]Wv)GvK];_|.].]n]>ǻ{~ zx>ǻwww~u;ykKi={\{{}~?}}y?ϏΧΧKx;ti/>}_s۽_{|Q?˩˹˵???Kk翤=gx=N==n=/>gxW=_֏|Z?%ix/4{6GyM.ׄ粻<_wyk|EW?[xn=_Տ|V?[xn=_Տ|?gxn=_Տ|V?[xnfkg=gxn=_Տ|V?[xSxsxn=_|t3Q~:o}i۠O_':a?>|:`r:}0=hGu.}||Q~>Ny>(Ge~T5rT>_߶mP'#m(GY|ܿvrT YQ9͎ivTN2Mig9jQ9͎ivTQ9͎ivTN2MivTNrLӣr쨜fGe쨜fG4;*QG4;*Q9͎4=*Q9͎ivTN2MivTNrQ9͎ivTNrizTNrLӣr쨜fGe쨜fG4;*QG4;*Q9͎4=*Q9͎ivTN2MivTNrizTNr쨜fGe쨜fG4;*fG4;*Q9͎fG4;*QG4;*Q9͎4=*Q9͎ivTN2MivTNrizTNr쨜fGe쨜fG4;*fG4;*οzT |[O |;u:_QN߃rTc0>?*יc Qy~u*=Qy¦zTCgGN_nQwsaYQy< ?*4=`NӃ9M`NӃ9M4=O9M4=`NӃ4?`NӃ9M`NӃ9M4=`>4=`NӃj`NӃ9M4=`>4=`NӃ4?`NӃ9M`NӃ9M4=`>4=`NӃ4?`NӃ9M4=O9M4=`>4=`NӃ9M`NӃ9M4=O9M4=`NӃj`NӃ9M4=O9M4=`>4=`NӃ9M`NӃ9M4=O9M4=`NӃ4?`NӃ9M`NӃ9M4?۵ow;OgP\޾g%=Z~0z}|WX~@or0_[|~w  \wש[\P ij(/\.gs fG'`>̢ׅXV(lf,!^H`G,OCs#lr+נ|,.]gQs+ŽE9/޾_΢gB',RnQ\Q0r7E;*8PE ,0,0 e2M`3M @S)Ls)ДhӜh4e2M`3M @S @S)ДhӜh4e2jh4e2M`3M @S @S)Д9Дh4e24g2M 0 @S)Д9Дh4ei4e2M 0 @S)Ls)Дh4e Дh4ei4e2M`3M @S)Ls)ДhӜh4e2M`3M @S @S) sV4X?3( `?A~KϠ0נ]d_?Bcu*P.aW?X= ~t, e,>c8 gt~0Ǣ0WϢ0YI`Qpbx$;58;5( `p1v,0 e2M`3M @S)Ls)ДhӜh4e2M`3M @S @S)ДhӜh4e2q)Дh4ei4e2M`3M @S @S)ДhӜh4e24g2M @S @S)Д9Дh4e24g2M 0 @S)ДV+ @S)Д9Дh4ei4e2M 0 @S)Ls)Дh4ei4e2M`3M @+=ޟic:??c͠k/7 'o3rU^EauMY/9EaUX_ϼ0]Ր3=>rsĎ8;C( pEa, ,,0H3X(8jdaff@SHH3HH3HH3H)$$$$$   h i i i i 4444i i i i i 4444BBABABAM!! ! ! ! fff@SHH3HH3HH3HH3H)$$$$    h i i i 44444i i i i 4444BBABABABAM!! ! ! ffff@SHH3HH3HH3H)$$$Hlϗ%ϗ<@7oͤǟ&'}6q zISD2LH$DH$D сdb с@2 с@Bt !:L,@Bt !:HVl@Bt !:H$ H$DH$D$D с@2 с@Bt X@Bt !:H& !:H$ H$D$D сdb с@Bt Y с@Bt X@Bt !:L,@Bt !:H$ H$DH$D сdb с@2 с@B,@ϯRgyCϢϷ?54$z/Z4 fq(@Y4 1UE@?Huj/ā|78\qϽɫҀ4 qSa@מ̤-69;}7L WL țl$DIIyk@2P䐙4 ;b4 ǀ01 gn&0LM0qL!:S&L!:S)DǔS)DcĂ)Dc 12` 1BtLYa 1BtL!:L,BtL!:S&L!:S) S)DcĂ)Dc 1ebc 1BtLX0BtL!:L,BtL!:S) S)DǔS)Dc 1eņ)Dc 1ebc 12` 1BtL!:L,BtL!:S&L!:S)DǔS)DcĂ)Dc `0E3)v)vDdQ01o’E{x))vk Ôl2&vO&&u{n:Ia%tӯ?ݤɺ><+(MTZ2)l7ämPCQ29;c3q6᳘KQN?&M&z&6)l"oM 76Y6/&rM&MLdD%&&-LI&&&&DgDeDeDeDeIII $Q$Q$Q$QلllllO8$*$*$*$*MMMM&&&&DgDeDeDeDeIII $Q$Q$Q$QلllllBt6IT6IT6IT6IT6!:$*$*$*MMMMM&6IT6IT6IT6!:$*$*$*MMMMM&&&&DgDeDeDeDeIII $Q$Q$= t䜷~Eay, ح,M=gf\>mܸg;PϢ\=mhf-:ȽCLY'||O ߨƓݤ`3@O0ei)sw:qZLϢ`:BCݯa }-)vc, =rGK&G0Ie&S"Lݟc 0q6Kp646̕MI46Yr1)l2W`&MJgMڣ>68vXDIa{kL 0)lW09&39&LM&DgM&Dg dba لl2 لlBt6!:L,lBt6!:MVllBt6!:M& M&DgM&Dg&Dg لl2 لlBt6X؄lBt6!:M&6!:M& M&Dg&Dg dba لlBt6Y لlBt6X؄lBt6!:L,lBt6!:M& M&DgM&Dg dba لl2 لlBt6ǷE|lW̢^?&,MZ֢ gh&~e, -Hp6+c֢?(.[ar&GAad}u&3iנ?FʺAL9ە.L ,q޳c?qb(ds?qbQͤȤ|__ k%Yi=`{SL0L %.LdbRD%ш<酉ɟrLrQ&44DGDEDEDE#M"M"M"M" ё&Q&Q&QfbADEDEDEDE#M"M"M" ё&Q&Q&QHHHHHCtITITIT!:$*$*$*$*iiii44444DGDEDEDE#M"M"M"M"Ă4444DGDEDEDE#M"M"M"M" ё&Q&Q&QHHHHHCtITITIT!:$*$*$L5ymHY8$Y`Qyi54N4>*, (‘kѐFo^ɤ EIA{sL إ3L*Ҙ0i}M`-Q֚IC{LΎ4/( Ҹ1)HcoIA_iLi!QjeH34L w3)H3sw?4^& i!1Q bbH(I4QatCMEe`nv,nfY8U?p, ƪYTɤЍ^F(B7|&Gޓ(-6yK8r%LҬ/3Oz.xvS&i 2qq bHeRFoˤ EԔ#4^cXC{M&iY8nofRNͤ ^m94vU&i.L *(ͤ"C:L B7D fb tCtXtCt!:ݬtCt!:n&!:nN7 nN7DnN7D fb t3 tCt!:L,tCt!:n&!:nN7DnN7DB7D tb t3 tCtXtCt!:n&!:nN7 nN7DB7D fb ^~ztgQF_Ϣ"Y8|1ǟEhn?gnI, ̕ J [p=vx23otL [etOlaf]_Igi݀u7zO<}I{o&gPn^q՛I{bR&N7΍L ÂO?OI -L ̃FcOэjӍߝ5F7L (3)t?/`RSc.abtӀM"&:tN0&ώ?/~ jULXŧTG)?vAQ&FL"8& ι^k$d7qQ/ʤ]IL L Lj̙b-ˤS&?|庝DcV;ʤS&HPPPPI(QI(QI(QIhb!D%D%D%D%!PPPI(QI(QI(QI$$$$$DtJTJTJT": %* %* %* %* NBJBJBJBJBD'D%D%D%!PPPPBBJBJBJBD'D%D%D%!PPPPI(QI(QI(QI$$$$$DtJTJTJT": %* %* % ?{f̓fVFg-,n, l~vfQ"4̢Ѝ=gnnL T2k vf(} B7zaH&nL (19B73iW(09;ؓz2)cW&e%Sy ḳ8ę纾,놳yn!&yϙGCgRް+g}LyrL (&ͤ1O6V.o3[:<߷yL (&1)̣Ĥ\㣘ĤbL*1ic^Ĥz#3?D3CtYCt!:L,Ct!:&!:? ?DĂ?DgbCtXCt!:L,Ct!:? ?Dǟ?Dgņ?Dgb3Ct!:L,Ct!:&!:?Dǟ?DĂ?DuR/3gϴ?v-Y[X8b, سX8ע=6?f2)W1qG0i^GNIc*v+QL(09aVoKGlI{4Q&?LJ1)7{ǟ_X}P&?L#&8[1);LßyM GL⣙2)Ĥ^FʤI40ic^Ĥy#3?D3CtYCt!:L,Ct!:&!:? ?DĂ?DgbCtXCt!:L,Ct!:? ?Dǟ?Dgņ?Dgb3Ct!:L,Ct!:&!:?Dǟ?DĂ?Drj3gϴ?zs-Y (s (?̞E{3Y47ˤB9&?\[uM <~3)0) 19rffRgOzeRZE,c,Ƥ0cgIa{x&< u70hę13>(g3_7g1Obu}}C;x(C1qq6bGͤW_7tC&:~:/ Йb}u~֛w.ϥ_P4:FL gR@G8Q-:zL**aL t:D:DAg:DA3ACtЙX@Ct!:L,Ct!:t: t:Dt:DAgbA3ACt!:L,Ct!:t&!:t:Dt:Dt:D:DA3ACtЙX@Ct!:t&!:t: t:D6W:48:,d@G>I۟u;Ywy<֡i":L E8Ledrv01ɤR{@ $vց>G=e-yk,?41)(eꋠQ&:zKa&:Dk& t^M+ÝOLݿCL p\sthб2)ce⠣z2icOΤ]I';Y?Й2QJTrbPPPP4@QBQBQBQBѡ(Q(Q(QPPPPDt(JT(JT(JT(JT(":%*%*%*E E E EDDDDD"CQBQBQBѡ(Q(Q(Q(QhbDDD"CQBQBQBѡ(Q(Q(Q(QPPPPDt(JT(JT(JT(JT(":%*%*%*ۣiE5(kqfѠHĢ@=EKdžE"{$,Ɂ2)P7&&>E?~(brfr/H(RaRZdh}L  -+>7G[4(Jl$m$BBLD&ҸLiF2q@4eRHȞd^|I!߄ V_Hſ'?Z_+ ~; ɭaRxbRHpjͤ@ѡPDt(ZAѡPDt(":M,PDt(":&(":E ED"CED"Cѡhb"CѡPDt(XPDt(":M,PDt(":E EDED"CѡhED"Cѡhb"CѡP4@ѡPDt(":M,PDt(":&(":EDED"CED"CѡA4iE k8$ Ģ@=EkaEzyZT(2)PdwndRHhL Qs~R-H19pX&ncRo39`r>pE#P19E3i1q>:s6XjGu#H&~yMB~L 5(L[psiϥPc$W_ɅJjzPm}Sz5?7jzϗʷ[jˢ85eQL 5L'&HL5ٳ2)4*I&)&63iͯԤŤQBMSL5N3qj*:EtZEt":@M,Et":@&":@P @PD(PD(jb(EtXEt":@M,Et":@P @PDPD(jPD(jb(5Et":@M,Et":@&":@PDPD(PD("4iP hVYj[fq^s;h8f?^cS_3)Ԥ1)8w1)doĤQ7&&:ɁN3id?(v]=äQFM 3iԤ:ŤQ BMFL 5kM@_JM/o.JM[tTznⷳҋJzG%w(&^-t[uIC%{DS&ԡTZ.!JzJㄙ4TZ0qTrbRP$™IA%u4T*Ť9JPL*C1id?F!TbDtT":*PDtT":*&T":*J *JDGJDG%QibA%Q4QDtT":*M,DtT":*&T":*JDGJDG%ĂJDG%Q訴bC%Q4QDtTXPDtT":*&T":*J *JDG%ĂJDG%QibA%QtzVPDST)*M;J,*nᨤ(dOEeQPiZ,**%Jvʤ2)d]aPiΎ@L}&m엪?֙4T E29w2ˤA&*L *]1$tɁ29JTZ)JOظKL[_ɏ_JMr:mQ2)d:ŤP^%IVT&NMJjzwPT&*LL 5%WrW5ٳ2)dWIeԤ?LĩIIh&O2)_YTj2ʤPDV&FM'*b`(KM,,@bUbUbUbѱ*Q*Q*QXXXXEtJTJTJTJT":V%*V%*V%*VUUUUDǪDŪDŪDŪD*cUbUbUbѱ*Q*Q*Q*QjbDŪDŪD*cUbUbUbѱ*Q*Q*Q*QXXXXEtJTJTJTJT":V%*V%*V%*VKU9VMsZV͢`ռ.UhXegѰJʢ`)GX5s.7vdX}?)X,?c>ۅI*y/LV;2)XЈv,fRĤ`יO˛eR̤`LV)1)X¤amaUXt7)X&4U본]IMxO*x& & \3)Xe7gRj/&9LV7Է42bRJ}kMo1q":V1qšXEt":aM,Et":a&":aNXD'NXD',BXD', 5 EtšXEt":a&":aNX aNXD',֊NXD',BXD', kb!, EtšXEt":aM,Et":aNX aNXD'NXD',j4'iNXӜV;sCŢ=Js?Ző[-Laُ²gRɡ[Z2)%ՋI!,pk&Tz1qr(c嗻0)P6FXz#Ť ]rYN&A29]42kʤp:orm`o:|_~5p}i8\eR.eA0}E& T3qo`/,`f3&nIC0qL er2Q#:%*%*%*`````DGDEDEDE0#X"X"X"X",Q,Q,QFtKTKTKT#:%*%*%*%*M,FtKTKTKT#:%*%*%*%*`````DGDEDEDE0#X"X"X#Z!4Gi`V;`(fgĢ!vvEAy|}_wEE0{L ]3)feR.!`RLoLFIA0=1)fOaRL쏽g GW"7KԘ1)fWgRL݌IA0l&͘437c܌!Xx,C_nBmL̈fD̈fD3fD3`6`Ft0X`Ft0#:&0#:̈f ̈fD3fD3lb3`Ft0[`Ft0X`Ft0#:M,`Ft0#:̈f ̈fD̈fD3lb3`6`Ft0_Ms0`6lfi, kY0'(`f7j̢>8fs.?}83}q&f~:Iso׫ݤ8E L 0scrv0'eRL/c`W0)`fDɤ_ä^*fҞd}=?_XIr]f_.׏ΥjI336&^|fjlLL̜8si` 2)`,̯cRT4fjl3)`Loշf~YL - 6^?I ' 0i`69? 1)`Ƥ L*1)`ƤY}XL/4čm&`6`Ft0X`Ft0#:&0#:̈f ̈fD3fD3lb3`Ft0X`Ft0#:M,`Ft0#:̈f+60#:̈f ̈fD̈fD3lb3`6`Ft0#:M,`Ft0#:&0#:̈fϯsif̦9V~x8#`6fzc, ", {&m-*O ̍I3}EϤ=>I3s>93nJDNI3=6ͤ^`1)`fʤf6& ͤ%ͻ&̖> ~}oDžs} kƷgRLI3u)&G0cb`4ł`z`/>`Jm3)!9ʤ G0w3&fE5G0}_&`LL ]L8Y3 L W!G0}[_?6GLIE0{Z&k`zk`bE0uB0&`DG0#Ă`DG0#lbA0#FtXFt#:M,Ft#:` `DG`DG0#lbA0#6 Ft#:Ft#:M,Ft#:&#:`DG`DG0#Ă`DG0#6 FtXFt#:=N 9Ms!EA0}4`mu,ZT{9w_k3q̤!ޠ¤ >>IA,k\ q9ÏL鍩LΎ`zbnƤ e̯IC03IA0}BG0IA04[7{w SaҞ5f.Uc3)4F4ۢ!l)1qr cR`K-I-萉yɎ!R>cR`Ka˯Ig?Zغ}淠3)w2qr cⰥɤ`֫l hOÖ?lM*lOؚ[eR`e1iU_2:l;((l cEtXEt":wM,Et":w] w]D箉]D.sѹkb.sѹ5pѹEt":wM,Et":w&":w]Dw]D箉]D.s]D.sѹ5pѹEtXEt":w&":w] w]D k{>MESVK~(Ǣp@bQ.gQ˞Kˢp,wKL w`eR~NI.C5&j8wk8wq{B2)5gunPI.L]s[|L w CjNyǝ1ieΤp]VI<>m׻dR$I.{LR2)e\I.3]&dLM&dL˕`uI}}ً_B7,D^_ k0;ט40{5[켠~?0S߿fڙ8]?|w|1q0Scˤ]oI3wI38fLL WLE0fRI3g& Kfre&,D3YYY,Q,Q,Q,Q````Ft0KT0KT0KT0KT0#:%*%*%*̈f f f fDDDDD̈f f f fDDDDD3YYY,Q,Q,Q,Q````Ft0KT0KT0Kt0|*`6l4 Y40h`f/fQLm`f?׫r{ `9&̔fl^`9&PG4fjlL UhL=20[aqA aT0۝2q0#>o_X3{R&J& 0S`R.)ˤr frC`1)7T1) fch[,`~\q]bM3WN&fA\uh`,Ǥ I_ TfRLl#fjlLL"L^}+m`vʛ~EA&f%)`7IS5ựI3{C&f/^GT0/p*70/*אf|mm2Zq4õ/ Τ@!Gt#:M,Gt#:&#:qDqD8CqD8C!7@!GtX Gt#:VlGt#:&#:q qD8CqD8C!nb8C!GtX Gt#:M,Gt#:Kiq9ĭvf ^\̢@E8} 5qn-*m ScR 9s8L͍CȤ@!B&G I@LkL6LڍL c3)Wh1)gO7ʤ@^!NNc nnd7)g϶!/vc .vc h& I8U5&T՘[yϥ]϶V^/ŹQbw_B7 ~3q{T I8{& 8Ľ+ ,oǛCރCL Ĺ1)go/Cyy37׋ۿ }2)q#Й4ScR _E:5!I\ tX9b'xlBȤL镊L %L 酚L\fxߌs*zL\ӫ8fRxs.zL z8BgxΟ\9Iṹo[&GL FnȤ"L)2)<_v}m^nG4{x餡юhWTSByD9~&=3qSy7e?s;3<>=yNE/s%}L #g3q yN̤ܼ#`& 43̤7s憙(s3ѫ8fRPS!DGtKTKTKT#:%*%*%*%*| | | | | %*%*%*| | | | |DDDD>____с/Q/Q/Qwh7́o4Ҝ9Ms[ns#<Ǥ|I9yL =t;fRxn Cq&Gޖ!_5svS&nnͤ=eΎn3)< Iu5o_X9=&sz -s>o+^2q̤MqI9{W&:fRyN.ͭ9&Gxn&t-\ ϝ7 #{K(<7s*zL 5zScRxNw&8Ͻ-wv/hh3q{oyE0q&!L\;f`RNr& مL ) 2q ScRNIC;u>&A;&v 툎vDG;ĂvDG;nbA;юhGtXЎhGt#:M,hGt#:툎v+6#:툎v 툎vDG툎vDG;nbA;юh7юhGt#:M,hGt#:&#:툊v{MюhGShGS)hv %*%@L?L2ih'[ɤ=&vRIA;6=G;~&m[| J&  av[,<78s*zLϭvSo&S瞫KnI9%9}sv6Ϥ]I9(svb&x]&ˤ;P|' 4{ Sۢ\bRϭ?oZWy<Ȥq&Q8M8Τ~&s(L^|l<~lϽ7=6WKùxSy #O=+s۹n5xsN`Lϝ/*%3yNˤݡˤ<&<Dy<<<<JC;}NI Qq݄&,hGhGhGhGh7aA;BG;BG;BG ::::ڭ݄&,hGhGhGhGh7aA;BG;BG;BG ::::MXЎююn‚vvvvUMh7dv++h7dv9MhvvT ٮT*ɘ~*쨰Ttl*Z* t K¯SRn'گhmsRNکvS)h7-SihgRqV5]=R)h)S)h~L(rT pv:7v0v:GNMȉTLMMک Qig.GPzAۿR(Om*|]_c֟z~}%wUbByQl((wziӕS]Sq@*TT1By:">*^rm*tT */g?;7.g?=M#~M*T!g?B*lY0~&w*̎T A!|\/yNzqB*~.T 2^*~>3~]X*\T Rqs)( *؏Ja?fS Je.~~?n +s}TzTa ˚y}4 T¤R0P9J@uUixx%W b }=>@@1_L`CSq 72t}W 8iMT.*zH*u *up* LT +bc b! 0&T T?# HHH8a@B@B@B ::::NX0111p‚+lHHH8a@B@B@B ::::NX0111p‚ $t $t $t ` c c a00a`2@2d &3 $s ܡa w/~ݕ~r+p]q=Si7u/YrGROւ슳ߌӱNgλgOwų+~IЮR)gzwB슳IZ/c튳,cvg?])^]W)L+d)ܕ~aTwܕ~ROvߟ"ʙ.+'CY>9,}(%< GEݕ|\O-k+d])'wŁPOT-B>|WiP*l?}}yՀ϶ؕ| Ju1?|߮]i44{ |Wn~靈+}z&+|>S+~;TSc;4 ܡa *0p;4 ܡa`B0p whC01p;4 ܡa`B0p whC00b whC;4 ܡa whP1p;4 ܡa`B0poz`d9N9N8cd+kHHH0>0PV J@ R0PJ@9m,~E奸-I +Wn\*e])8+E/kVR)T R)~H1p* e]q Kh{c @'ǩ4 dhÉR0P~é4 \wa~]{Xb_@e*#8:yL!4 \u;~/^G oF刁3zU1p~|! #߷73ۻ~H`T T?R0yS)(3R0PL`+@ޕ?71L`mb+T ~ϸ84 }w`ϓGv1V J@Y-+654 pv`\^w``(RX!**9R1 <86rD8 rpHpHp8aCBCBCBCB :::NXp    ',pHpHpHp8aCBCBCBCB :::NXp8$t8$t8$t8uyp2's8\Y's8p2Õ58$t8$t8$,pSphT ujT 5Tʖʻr8v/8G.;JJCYJCF*e8-wlJCQhWm!8g=@'"8ږ8tphKvЭJCUJCkW nbph{JkNܕ6E!3^ j*89Ɖr2N\;7NSi N Az9䢊10X*G"b[*G"nHJG-RqVʥRVMRqX:Oq¿1BN}׷[У#JGʩ4zA2*,=%FXTNxTʃ}S9 8=OArGz/LvzJ Si_m T]+zÞ4z\o3c~8=~=~_DS6RQs˹Sqz#Sqzg~;?or?P`*uT|T4TH*uB%ݞRqz<\y5zT =ډT=R$*mT =JcSX*=.㽝cΩ$4RS60x9aKBKBKBKB6$t$t$t%%%/ / / / /',xIxIxIx9aKBKBKBKB ^:^:^:^NXmO/'sre/'sr2/Wr‚6O+*H}R)xT ^UT^U*/)6UT H*RqUT H5.KKSi wT$uT Hfܺq545tT HrRH90ǵR@RhSq|ْ׀@VPR) n˺8H48HTHJp*$w!M*$uFJI;c$rzs*ΑN H_&$o+Wf*G&S04٩4ʔ*T S&gßXcJA0nR)L3T)/Cy_/'VzX_5V6^R7L/q=+w*ΔDc)d0/hL;>RRG7Rsz^_cJ݉;”T S'gJeh*)@}eKřҟS)Lٯ`+S*N1b(”n2eLYo*S[2g_z{f, )lN%%%% ^:^:^:^NXr‚$t$t$t%%%%/ / / /',xIxIxIx^ /'sr2˕r2/'s\YKBKBKB ^:^:^:^N/nvؘ>S~NEArcJԋ **HУj%B:IУVnOѣ^S)ʰ\^*u{H*uc*u{H*HT}NJG;5Bo.;ڷ S) zTRQJGJG=Z#B:$FУiR)CУLѣBц4>qIUyFTwxDƛKR9"GdMEFuI*uJAҨ_˼!Ꮹ!žuU6dTʜJCF]Nő.XY}}_lZL+Kʩ82ƣB##o놌#RRQ)#ӓ#JAF]>8&GFL*us* _JAF}O cTȨT 2"cmsd<9>ǩz$tz$tz$tz$tz\aGBGBGB =:=:=:=NXqBNNNz$tz$tz$tz$tz###ㄅ   ]~~+HHH8####d*=&TzLHP1cBGB 2P91qbBÄ;Ąm:>ESiD(CS)DhKSiD(gRp_OáRPIeJ!BOKMKKJ!jv@*NzA*M4"4ULʼnPg S)Dhwϩ"4U҈%5Sq"E"iT ";N4"T TDx5T#=u1tUSyпr d* e4WYLJCLf*M4Sq8d*RR|0] <C]NnQááMpۤP)paCsyxád*:iJyZ:O.;RÆ@=;@݄$mTY͞_/`c 'o?w5V0sg퍫`ʰbN` /g+r |Bh* uҐJ~+1J668T` @B@B6 $t $t $t ` c c c    ',HHH8a@B@B@B@B :::NX0111W0p2's \Y's 1p25 $t $t $t ` c c c _d $t $t $t `  R0P R)hRi8@w[L1pB9e?2R0PG 8ކTE2@T}cKLa94@C*mT ~ i*u֙J-+>0[*u2vJ@Z`Tx{1cT~n+g \߯?l5|Zq8PpG"ԯLK>i!BT Zl*̣Tu0y*'cf%B݆2Ncῃ|5"UTy>f~ݾ'B_0B냙g׷Fsά/~f4"TUԈ߈PSq"AF*׻*R)DHmH_RPG "TڈT!'DHʼnЉЉp   ',DHDHDHD8a!BB'BB'BB'BB' :::NXЉЉЉЉpBNNN"$t"$t"$T"|[!!!dNdJdJdJdJ"LDP0!aB%„J  *&T"LDHDP0aB%BB'„0D"LRiDhS)DhvRжߡRP.Rs^CLʼnPU1By< Bso.*RЦSq"R)Dh;(RiDhR9Mb*MS)DURPwPLL>J!B㑩/]2@"LLITDx>*g"]*G"\ Kx_ߔ &<¡~ g8o WrC=f84kLpxmpR)ph'IpSq8gaXhpxphC89?NRPpO'Sq8g8T yn*%aCT  Tu4u5P*\T;2H#SQ8LpPp *&T8$t8LpP0!aBÄ *:&T8LpP0aBÄ  *&T8LpHpP0aB Np8d++p8d9Np8$t8$t8$t8!KAp8$|T,4NBT,4R!ȩ8NR)phVRy0[HsT ~9*888-ة8ZRq8Щ8}Sq8485n80q{%78TkRPJCƩ48;w*:JCYGJCGJC0&:(ol5ǨFpTpX?#o!K8.Pg8i/#^S9m6jT ڡDT88 S)ph;CP)p S)ph Sq82_e>~O^~u@*z`L*J*_ =JC۠12mwmJC=%/YJC&/:RІT8!T ːb*?ƓTWؐБББq‚d$td$td$td$td ######    ',HHH8aAFBGFBGFBGv'sd̑q2Gƕd̑q2G'sd\YCFBGFBGFBG 2:2:2:2NXFHH8aAFBGFBGFBG 2>AF*[9cR8c✨4Nة8'J*#DȩNtR8_05Ndfs_?3 'o*ueT'ζ=SS)hˤS)8Ϗ~[&JD[&Mr.R)Tp"'H9q   ',HHH8aDBDBDBDB ':':':'NX89999q‰ΉΉΉN$tN$8E}4N9q2ɜWV8q2ɜ'sN9qe   ',HHH8aD—2s"s"s℅   ',H4NO{*횂JDrʓSyp~r*moT '4T'*Qyb*Ɖ;lp(>RP M[#Ï:ZL7XJZ#C:Pg 8ҩ8]*mTt* JCӦp[2RgJC;~"3^WBS9u!*'˚8FsT Qy"jT 6\_b Ja6?>?@N)LBP)phߧpsT :2nT zk*Zu7C_<*z+*rP9}%4'rrG!Ry"'!RyT '>!pTq"#'(ʑEp2i*GNNȉwR8QJgY?AMpo@pὩq˶R8QJn^9QWVS)CT '.T '.S)8R)ASqN^{)ONeSi-WW/R8c6Y}ƉnrJz9ц4N5Tp"6N$tN$tN$tNp"s"s"s℅    ',HHH8aDBDBDBDB ':':':'NX899P9׻s"r"r"rdΉdʉdʉdʉdʉNLP91r"sbBĄʉ  *'&TNLH蜘P91rbBDBĄ81 Sy9Yds*mY)N|ɖC~J8ԩCT쒘JDT 'ڎ@T'ڒT 'u*Ή8'‰+|*ΉzL*m:#DIpMPi8\@✨NWS)hSh S)hJą~Žx]Uʑ,D ̩9bO`[*gNĄ:P088\Ɵן8 S9¡pxTpxT ڴc*v* mT@T 5RОp}]NI)5iR%pK48\E\T]l>]+mD*EKs55[]T Y.8b*_"968Lp8aÄ *:&T8LpP0aBÄ  *&T8LpHpP0aBÄ  *&T8$t8LpP0۩9Np8 Np8d9!!!   ',pHRP#t8$t8$t8!!! '$v.sJ<8^%ǫP9rrҎWS)p8cksUltJCF*x^)pxWT19uW 8P*NSiphS8bfoJ  .w-Tu#ìݍ^ipHM;RVRЎDJC,L:L:fR9r Q9ͫbTpx㺩(6krNL;HxDFwxī@R9r‰=sM rD}9.TNxvLpdJqʔJDH*Ή7ƉƉvf5ƉJD}D91S9FNdܹ*'Ώwv~~uC*Ή(]d4N<\/VN׾mqP*,AJpN&Lq JDH*u0q9 HNő,N d֩(S6jxIxIx9aKBKBKBKB ^:^:^:^NXr‚$t$t$t)r2/'s\Y/'sr2˕5$t$t$t%%%/ _z$t$t$t%RR?©\sۏk[ZR/zAI*/y|[٤RrnG18^:Q)xiKoR)xi+թ4R)xi[ xytJK&g[R7Lc*ARJ׵R2K/T ^( KRgJK2Kݐ-:Ez orTxy2#^^7K列׵<˩/Iѩ8^^&IIWOqJ!MZ/K(iRHSPRqҌ.=yTRHSt*GҼ+(#iކIYTTBWr$yשY3o84}mXJ!M]DNpR)iORH6ҦRHסRHӎNlmb%y*?J~\ ir{))B T iJT iRiYo/;iNiRq$t$tҜ&&&&愅4 4 4 4',IIII9a!MB'MB'MB' i:i:i*i~?'M2%M2%M2%ɜ4ɔ4ɔ4ɔ4ɔ4'+PI3fB%MB'̈́J 4*i:i&|%TLPII3fB%̈́JN iH*4-BJ!MJ!M]ȞJ!MHImJ!Y*}RHS(LIS0'⤩47HCVaoB,杩8^g*/m{*/mGT ^9$V ^v^%%SixZMu*/퀞T ^wxޙJKN* /GR9MaR9uq*g'.NՐ%R֐іRF]qPF-S)?2>@2>+21d %SqdGT2b^qUdW  w HE~SWUdwo"7?0<EƄ-SQz$tzLP1cBGBDŽJ *=:=&TzLP1#cBDŽJ  *=&TzL{B9=N8 =N8dN9=###ㄅ   ',HR#tz$tz$tz###ㄅ =8~* Y*m3B:F_M*N?_LQLУ^Ll9_޾Rq.RzS)8y]Oܦ)mGT HڲT HaNlR@vJmT$C!?2{8Hvx*$m%IsI L IS) i6SqԕTHaR) i+]S9uT yqr,_*vL7#rT S>aJ*Ɣ;4qBREoZ(LIxdJLy-MȔ7٤rbq*)T SKh})my*)oF) T S"r*))_rO*ΔN]x{kLiwR6RRNřsRqCS)L&T SSCT RrN6oȅ)ԕ)U6wG)=XeJͩ4췠Δ|_T% ^:^:^:^:^NXr‚$t$t$t%%%d9^Nx9^Nx9d+kxIxIxIx9aKBKBKB ^/ / /',xIxIxIx9aK‚1@=FRRJKJKR#ߝdR)x94?K=JK] %z.h8^5K^*)rxtR)xB<:J७ORL~ߗR)xLSixiS)xT ^1 ԉUxi S)xIrci|]_0/JK۩JK٤RK儗cR9~rTxyN*G=W"_v¼DRyBT7IxU]RY(v}_Kӿ3ʑ?usSi9 .'RsٱR+<\f5JSiigRs/;~a?snŸ:ISФs}''VSLӑtN'?v;ԉS*Ο>qJ𧭄O4 *?~?Rޑ>O*O焅? ? ? ? ?',III9aOBOBOBOB :::NX}h9dΟ9dΟ9N9:::NXsŸ/eABOBOB :::NX Riiڨ4'*?ULS?8ԡR*?Y4*?T?wXIԯ@gйB/*(Bz%8F:IRHe3 T iڎ4;'*4XT i] 'MCs*4툇T ii ?RHs5HӇҴs44A+*4u*Bʉ4nr&͛R9DTỵr$N/y0*=/pJH7r\L~<*Os*ΫZR9B:y]* tt&<]AISgҼm@HR)iSi<'~\B֧,Wg#l]58is4<!P*4uq'_#Mp8B<ʥƥ$ż|_~\4un*4 9^c4L4纇'ͷo(D΍J%M;4BHJ!MMRHtҬ43Ҥ9a!MB'MB'MB'MB' i:i:i:iNXHIIIIsBNNN$t$t$TߣBdJdJdJ9i)i)i)i)iNVH3fB%̈́JN 4*i&T$tL2KPI3&fB%̈́J 4 4iyg* /c%˄) CS)Li4 MŘ2aIT $wWzLȘ ;kh;ȳ%sxKőQ׉Rq}I9V)hǕRvĢҐJőȳ4dzR)heSiȨ'ȨSqdIT 2ڝl*z:vW#nmJAFT 2cP9"m:3#2^R9"2S9"2JJwd*GdZY*gd$:WL4e*  27i_dL匌m7S9"u22@CF!և khd\sZR)8߯ ugu829822T 21t5VpӐQWͧR%SqdShGȨS)c4d) * }FGzSQd$tdLȘP1"cBEFBGƄ *2:2&TdLȘP1"##cBEƄ  *2&TdLuaېq2G'sd\YA'sd̑q2Gƕ5d$td$td$td ###### _Dd$td$td$td ###!wp8whCg vGGhC hROJ>RVSig1RϞ Ro.;gT F8IT FMRqsRfR/R)7[u۵RO告NDRT 8 R)gTwSvR9ߝocߪO |NR9v:Hxc*G.rQ9yY<I3,*8S4T ~v*~Yf*lQT* ~v@O*lCT T'T{gGo~~~~~#t#t#t߄&,GGG?~6o2gɜVVo2gɜ&soe&,GGG7aa?—2߄&,GGGG7aa?Bg?Bg?Bg ::::MXφ043)O)RώIJa8–T پCT}D~[oǷ?~NLgۨD9g?Ui7T| mJa?E*~>p8~:=HU[CwzMeJaKdJ째HTw[;ʑnPC~SS9mʑn83&ڨTwk7ғé6BJ MQ)sT ' o"4;4;4[X ͢v>oi T C4sSqsR>pH>)J>[/QKS)7"5ROuJo1ߗP)7ϔ.8RMvҀ_WQ@*||*qr6*,8NXЉЉЉpBNNNN"$t"$t"$t"!!!ׯF9ND8 ND8dN9!!!ᄅ   ',DHRR"t"$t"$t"!!!ᄅ    ',DHDHDHD8a!BB'BB'BB'BB' g!FK R)D0SiDh[Rж$LmIJ!9d}aI3Nጫ}bKgI~]Mʼn;T DSiD[ƧRPWQ)Dh;2D;T ڡT !BT֕J!BJ#B;b!'B,'BW*:҈vdLʑo>6HH7ʙߤr$9?8NXH)<_0'KR!Bv0K*(k*w1O*woGSRPPq"+?}~׻8!BJ&J!O[`*c%BJ*e/W6a+KH|?MSDh)RV7Rp>"4URPU1Bx*gT ^:F"1MS1",ӎp(e*ʉ  *'&TNLP991rbBĄʉΉ *'&tN\'sN9q2ĕN9q2ɜ'sN\YDBDBDB ':':':'NX8DHH8aDBDBDB ':':':':'NX8999q‰ΉΉΉΉN$tN$,hOR)h4NTbJD[@JDH*Ή:HqIp^RqNyݾ0D] ˨qy_R8QJu+B*Ή: JD+JD] JD5R8QsHqJDI9N\uu}WN\k-jJ9Q[R8q3Ɖ<5Ɖ&S9r]Ũ8TNxL4^xY0F6LУ:T=QƩzTRN?=EF 4zQT =ڤs*NУ_JG}^3'RKQ"Nq*G]JG[~zўծJGX1%\oYT = $F#_L\^*=ΎDR \#ǝE~RQJGJ*U+ش I 9aIBIBIBIB H:H:H:HNX@AAA9HN 9 HN 9d9H$$$$ $ $ $', IR"t$t$t$$$$ $ $ $ $', I I I 9aIBIBIBIB H:H6M*$TH5s%s{JA JIR@VlS) ]LAү38HbJI[4>IsDP) wLT HڦQTHڪT$0TäR@VlS) ~LNP) IAR?@ҖLR@R8HT HXSi VF-M@r_BzTߥRRюJQQ'z_%˯Sqz:y8=š4z엄m'T|~+FPi~wRQJzsSQJzUQzH8aGBGBGBGB =:=:=:=NX}gɜ'T$qe'szq2ɜWqBNNNz$|)U:=:=:=NXqBNNNNz$tz$tz$tz####ㄅ  #B:>9FNУj%B:qI|Sqz%4zTRQ/zCqRqzkUO8=~߬zzV =.`![УmӣCѣj%Bv\M*N曊\/$Fvnv*N>CУj%Bq*}JG;6BvM*N>tFУT=*|Q)3wT,_6zR*F;,hbȸ‰Vy*׫=^_m&JDKR8QR9qrJD1'H 'NqS)hR8Q4N4NR)u*#‰VI9ѝs?bR8QOpL۵kqN\_'X‰L~*T 'L NԽ4N7,U R9|=D*ΉΉN$tN$tN$tN$tNp"s"s"s℅   ݾp"r"r"rdΉdʉdʉdʉdʉNLP91r"sbBĄʉ  *'&TNLH蜘P91rbBDBĄʉ *'&TN$tNLP91r"sbBĄʉ *':'&TNL8Q8Q>4N4Lp}:R82‰vJDCK*-SqNԅ)N/N˩4N?NNܩ8'T '‰:/sR8vLp%‰L7-.hJDL91SgYw8'^{̻UN8n* XR)~3+XDp✨  *3갩N4K,Z,P+OKCo"`w* e3'ȘdL,ʆ -ri* m;\_!=OJ8E3!ᓩ!"Z/.r# !#aDTusT 'MdTRQ]JAF2RQ)s* mF*m+T 2T 2ھShS)CeȍucT 2KRqdKdT 2*eRqd"*:I ╊#S&GFI M Q).I MFA - M maG!_R36oe+THbT H*Rqt THAR7S HVAr@i$T H*$mP2vtl@1T1c*$T6[?* KR1ܡ wXqޱgWҐܐ)s* m2GF=(0_e*SihdQ:mQ*uJA~_БI.IőR)ȨSiد"+2?82yܩd|T2T2ێfɑx֐qBEƆT   ',HHH8aGBGBGBǯ_э'szq2Ǖzq2ɜ'sz\YGBGBGB =:=:=:=NXTEHH8aGBGBGB =:=:=:=:=NXqBNNNNz$tz$4zܡ!c‰Ɖ;t8$48"J%"RpFoDHyf eũt""҈P6O#R)DhGcRЎRPONʼnP7jOʼnPwLkJ!BK*N>ZIʼnׯQ)DC)S)D2T }2'BzD 8]NN1Q)D9wӈNMʼn-f*"TRP" F*"҈4"<|/uJ!B۩<"B*ΆN#R)DMTSq"kK1PS)hPi8.*ڂT +^*gvѮ+ڎ4 aT<@*O00 *:&T LP110b`By N8cd++8cd9N $t $t $t ` K111p‚ $t $t $t $t ` c c c    ',HHH8a@B@B@B@'8r*XJ@[OJ@نz* uP06\ʃcPR)8+[YZ)z-:F,;'DHᇬDaKhhkS)h;=R03Q)89؏~ S)86c__Z@J@2@R02ly4 \_Ǐv.vn* ]*@T]Ru2#:@]KE1p~;t#|`*Sy|T XS).N7/Sy| jdh;|6H_TS)g#==SR)gK)R)gK\R)7?3RqA* l@0|a*೙B* |1T[nJ8q ˼QyAW6*cu]*Jq}A7dT1JEFՉJdwR)Ɣ_JaJE7*)U^T Zm (S HR) MT*H?G˚*HcD*$!+$Si yx<H*+$T!@UV<+L>ߗa]) )[@r~5瑻R@RF⯂.JI1]qKan I@RJIܕbR@R sW;H$w@r;4L CHA׵C$'sAre$'sAr2$W@AAAr$|)`:H:H:HNX@AAAr$t$t$t$$$$$ $ $ $', I I I I@>ʦ@R?0\~E T HX*$]) )KwA6IG7*;~IS\JI& 9aIYk+gIݕJSi LAK( )c 9zEAo ]qR) wT$]J8Hr+K~+f*$miW$m8H:R) 22=+nT HTģR@Rǧ@Rٓ?zW/w+}v*@JI9xWH.R1_M\j:2*2g* eS])ȸ>3اd4d^Si(CJAFY+a%r">`JC~=[_6Vd**jnP6^A qPih"T 2gHőББq‚^[2N8#d++8#d92Nȸd$td$td$td #KQБББq‚d$td$td$td$td ######    ',HHH8aAFBGFBGFBGF‚2JCFRQ/JAF}Hő+,ߠRq.n.I lM+2d7RQ-o* :JAF}$M / [q`MFnI{ie˪o;kn $WEH탄_1,!g?>ë5ܖ;#kYzdF=u O~.$$oƾ͝SS)zd[F=bťSX=Ғw GJi#tz6cw d%\ǣF2u KFvNi$#Ld4tHFNaHSF2;2IFNi$wi$#̝SK'iw'UND2:%!IFC։77{{;щaDtNa/{;哚E|F'¼;щNaR)N'NitbՉqD~4:Z)NFGNl`ߎ:h:ѐu` I'v՘NahH_SLG1Vb5QգG1Vbuѐգ!GCVz4dhѐգ` gTU Y=zlԣ!GCVhѐգ!GCVz4dhѐգ` Y=z4dhQQ Y=zlԣ!GCV ;Hgzꑞ9STF=A4ҩG-o)Sxtz!IN'ڄw Dr D.?u D6JtDNit"JK4:eR:f)\hȕ|F'bSX'TJq։<))= }?;;F'u DC։ԊNaȃ_4:\SX'ZCw DNit"_*щ\|F'r4::';uR]?+gs:uwat:t僮wJձa>XfNi*UJWȝI,#tJ#$C[[ulߎNHrQS!ٟ.Z!WnB))*4^RMIj/)4:*ՔTk֔ؼ!))qrRMI)ܲ<4&H'єT#FSReS>X|N4%4fRMIՙN4eYh5%Ф4d;Ӕ')oZMIIi4ejJXB4))IS7gyR|.(:NRKRُ2?ӟuKO1֟b?XkO1֟b?X!OC֟?iӐ!OFΨ Y4d)OC֟? Y 6Ӑ!OC֟?iӐ!OF4diӐ`? Y4d)OC֟? Yv[*՟dLB$7SHiް4S#)Iiw/)o ;wNi#ޫ8QxV|F=Ev OfM>),$5)DNH]S!IũIa!IIa!#4BSXHbMIa!iB+DBOJ'$,6),$q*aR!IũIa!I'*BSXHt IUNa!M)B4d!UIa!O)4Bz&$K<9Ia!JV' wVHR?4BS!P)IidvBR>oFHRS:!)0=),>o΋,$o+ҨwSh+ҨѩGN=4f$[V=r4QuM~.gNa!7 q+$є:! I1b,$XHk I1b,$XH네! IC,$!iBҐ! IFH( YH4d!)IC,$ YH 6BҐ! IC,$!iBҐ! IFH4d!iBҐ`#$ YH4d!)IC,$ YH6BnDuff!yæS!),$ BEXu i@m Y'NtANit"PNa#Q* EF)"(B,4u +B֝Ji!ߡ:QxF SEUJ!)MJiRX6z&Qh\(B֧NaEMŠSŠ_wJh)qyRXbΤ"dV.(BTN ׬8d FrSXsJ#.ܿ17 2SHd%ܜ2';oNsJ#nRJd `;hB2\r)$[VQ]S>~Ni>RJISG-ih?|~onX6Gh_&"SX{F.{s_ >ԈND=|b,X+>1|b,X+ >C|, Y 6ϐ! >C|3Q3dgȂO|, Yl! >C|, Y 6ϐ! >C|3dgȂϐ! >F3dgȂO|, Y3$بrJܰ )r믹r{.rIi>.t +7w))H蔛+71Vnb܊5M+71Vnb܊u͐!+7CVnr3df͐` gT4 Yrl!+7CVnf͐!+7CVnr3df͐` Yr3dfMQn Yrl!+7CVn Y 6͐!+7CVn;f͐!+7Crl!WF3*7Af7d5fȕkMEtS^:gCAF tJ:4Z`'9fhB솤Qݐθ$)CFaաSXl4 '`E):R ƷNi$6:ΆNa vN)v\Ni$Vs K0C`>B'|}S5)C]FVrJ4:՘a| ͥSaoVaiS>fJhjS>Xc8)\fj̰M)MBuJ#M/`1tŒ*foЭ0ri4 SaF %fPB)0{a3}Œ{ ;ٻwٛߥf3tlN@= g( 33ff(X03Caf X#Q0 Daf,Y @f,g,(Q03da,Y 3Cf(Q0 Daf,Y @f,Q0 Da̐Y @f( Y0 Da,! @f(Q 6,Y @f( Y0 Da̐Y @f0Kۺ_VcK Vvj \RHݰ%#;Tc7$ vC] Yw6taRpe`#%&[҉-gIauIa"҈-vNl>K -|[q/),p@Flр)آIRXlK Flr&Ni֓$“҈-raIii| ҋ-TIiֻwɗ(.Nw[u IlݐV ʪ! f:$9|JZ*)"ٞFKrJ6)ޜC:-4i)TlIa-]:-tZ?ZOi7?e}NK:IiU%- sJ#P9B7F5~sJN)SMT̖F5rJhiRX5O4 ^&QM(Ҩ&9VF5{j24 $Uk3pG/,TK (6mJNJJ#pF@)"tPND@cPb,X@*(1Pb,X@* (CP, Y@ 6ʐ! (CP2QX2deJP, Y@l! (CP, Y@ 6ʐ! (CP2deʐ! (F@2deJP, Y@2d%(CP, Y@! (CP, Y@ 6ʐ! (CP2deʐ`# Y@2deJP, Y@l! (N@QS)"gP7lT -4 SՄBK)jBF5rJ4zy%QM"hRX5SJ~RX5y)NiT-F5Q|t$QM8)jSՄV4 H qҨ&FNiTZj&_NiTa|N5&t +Ȝtv^IyjB;F5o:fsv S~1 7ߥP(w(\NaEbND@)OgnHꆍj",t 8QM8c)jQI@5-bը&3TMfP5j2Cd U&F5j DɐUS @TM Y5Τ&Q5j DdȪ)US @TMQ5j DɐUS @TM Y5j D)U!@TMQ5j D)US &CVMQ5jlTS @TMQ5j D)U!@TMQ5j D)US &CVMQ5j2d)2T!@E("WNJJ#HG9E҈"QIiD騤4tTRHvJ\UR%D))"%QB)&Ii(!TVBh?)JLIR%DΤQgR%D^J(*|(!*%rJh%ä h3ylSP 6J|F rJH<%QBdؒ(w(7?Ot ltWR7;t'S:|Е))MMMWKJ#]S:QD3ܒte{RL UOD2nQ$ƢHEb(cQ$ƢHEb(2dQdȢȐE`# Y(2dQ$؈"ł!"CE,QdȢȐE!"F(2dQdȢȐE`# Y(2dQ$؈"CE, Y(lD!"CE,QdȢȐE!"CE(2dQdȢȐEQN(2dQdȢȐE`# Y(2dQ$؈"CE, Y 6ȐE!"CE,QdȢȐE!"F(2dQdȢȐE`# ;QuPIiD%tܒRPݰQB(BJ膍A+唦JR:%V)vIi"%QBTXN QaQRX aaQR%D(!&9>OWJxVB؊%)KpȧE҈"nND9EO҈Joc҈%데SxV?Qch?wa}t=S}f#wh|UrJWQNI`J[R8JH%Na9[%Jy̑NJ#~*wJ#tB'S74.)aJR>Q7NiM=S7hHҨ[{Jn~۾4ݻ4Ruö)AOԍSuEJ z4kҵNݠuJnaV78s*)n()ANݠwJn^RuCy^BN݈cu#XnX݈cu#Xn Y1du#بCV7n Y6pơ!CV7nucƐՍ!F1ducƐՍ`n Y1du#بCV7n Ylԍ!CV7nucƐՍ!CV71ducƐMN1ducƐՍ`n Y1du#بCV7n Y6ƐՍ!CV7nucƐՍ!F1ducƐՍ`n Y1du#بCV7n Y V8Q7XF$04sJnvRu)SX`뤰PtꆝSXݼ}V7\R>wJ#t)С6*ID(:XXFT]QjqJ'tl߿> 6ꦎ?oܩRG||nҨ0NIӌ)t'.: 8Q7aҨ0Nauԍ$ת|[ )ACFݨf S7(Uꆟ8 :uGnPݘ1Cu# Ս3T7fnu&M CV7nQ1du8P?M @T7nQ Duc&M @T7n Y DuƐM @T7nQ Du&Ս!@T7nQ1du&M F Du&Ս!@T7nQ Du&Ս!@T7nQ1du&M CV7nQ Duc&M @T7nQ DuưU70+)B4 uҨNݐI ֦qFH )!AFPRXܐ$ C4:N81.a>!)Iit AI=tNZ/")7ٿNǐI5I)QߓFҼȝ!4֔SI/)J>IaI5)Ii$ NŽIi$-%͛l'ip)L4F.zФ42}&i濖4b,iX҈)H14b,iX҈)IC4,i Y6Ɛ%!KC41qPoȒƐ%!KF1dIcȒF4,i Y1dI#HC4,i Y6Ɛ%!KC4,iIcȒƐ%!KF1dIcȒƐ%`#i Y1dIS4,i Y1dI#HC4,i Y6Ɛ%!KC41dIcȒƐ%!KF1dIcȒF4,i Y1dI#HC4,i Y6Ɛ%!KC4,i[IH*IJ#i84uIIJ#i),ix$45׷!SX^tƐ+i()AFPjt'Q74+)n!)AEOVJJnPw8Q7Tƒ l$͛yE;ICӒ’SIC=I7{S#ipPRICSzHNi$͛C4O’4y4kWNVVP}iR>4__4b,iX҈)H14b,iX҈)IC4,i Y6Ɛ%!KC41qPoȒƐ%!KF1dIcȒF4,i Y1dI#HC4,i Y6Ɛ%!KC4,iIcȒƐ%!KF1dIcȒƐ%`#i Y1dIS4,i Y1dI#HC4,i Y6Ɛ%!KC41dIcȒƐ%!KF1dIcȒF4,i Y1dI#HC4,i Y6Ɛ%!KC4,i?4N$ 84uH:J$ =;4xFH)SIC+4s$GNi$ IP1-’Ni$ >8% qJ'ihy4˖ IaI]q’ưYarJ'i|FfIi$ Q944E))zIi$ uJJ#iи84XNPRZIC)Et?uƋ >~g[Iӟ[I_3zI^>4cu$K14b,i5F%K14b,iuƐ%!KC41dIcȒƐ%`#i g1dIcȒF4,i Yl$!KC4,i Y6Ɛ%!KC41dIcȒƐ%!KF1dIcȒF4,i Y1dI#HC4,i Y$!KC4,i Y6Ɛ%!KC41dIcȒƐ%`#i Y1dIcȒF4,i Yl$!KC4,i Y6Ɛ%!KC41dIcȒƐ%!KNr[I$ ytSHv:SNit ;t cJċa#^ 1Niċc?KNaQR:K4Zc$ 4Z7;/\/w⅋FŐ +4יNJ#^P}9 Oq RJ'^MxiʟS:BucNi N|tJ#^L&tNi V9/ԛ%)]u ?}$^xq'kZxc"X#^Xxc"X'^ Yx1d"؈C/,^ Y6pƁ!C/,^bŐŋ!Fx1dbŐŋ`#^ Yx1d"؈C/,^ Yxlċ!C/,^bŐŋ!C/x1dbŐKNx1dbŐŋ`#^ Yx1d"؈C/,^ Y6Őŋ!C/,^bŐŋ!Fx1dbŐŋ`#^ Yx1d"؈C/,^ Yxl ,Fq bl Y4-SHܐe!îi/!42GNid 42@Jid ?EwJ#Sh42ke2q()HC8)XvFLĐSB͔(Na%$Ni v"rJXbA_F{FqJX)X;SM{I 9iڋ)o)8)T#/NdS>),SPL1C"2 e3)f(S2%eJ C)(SQL1d8;eJ ʔ@),SQL Db2%eJ ʔ@)(S YL D2ŐeJ ʔ@)(SQL D2%e!˔@)(SQL1d2%eJ FL D2%e!˔@)(SQL D2%e!˔@)(SQL1d2%eJ C)(SQL Db2%eJ ʔ@),SQL D2e II C$7$rC(=QzMRA$) OFz'qJ'=ȓ$)JJ#=.iHJ#=S:A=HǰIa遭:$7"84XOJ7"$4NJ7hS> IJ7ȇ%T”FoP褠0 4zͮ7s&tz)mw qIiƛGzn\!zCbc!zCb0dazÐ`7 Yo0d! Æ7 Yol! C7azÐ! C0dazÐ`7 Yo0dazC7 Yol! C7 Yo6zÐ! C6zÐ! C7azÐ! Fo0dazC7 Yo0d! C7 Yo6zÐ! C7azÐ! Fo0dazÐ`7 Yo0d! C7 Yo( ~IJ7 %)@#FoQJ7pFo"Ia᱓SXoJ)Iiz4zGNIJ#=޼ J޸a#2hbGR: RIJDZ 4"T,L%7Ii\CIa!؈wR҈OJ#2PX)4')xs"J;Ljb,2Xd(ֈ 1b,2Xd(։ C,2 Yd6"ÐE! C0qk"ÐE! Fd0da"C,2 Yd0d!؈ C,2 Yd6"ÐE! C,2a"ÐE! Fd0da"ÐE`#2 Yd0dQ,2 Yd0d!؈ C,2 Yd6"ÐE! C0da"ÐE! Fd0da"C,2 Yd0d!؈ C,2 Yd6"ÐE! C,2a"ÐE! Fd0da"ÐEF^d̟t"J;҉ rNiDt"݇SAIiD4"Z:(),2>),2x0de3i`ㆤ$SaBo)tz+(,VLs}MGO6RA('`7cmRXoqJ7)GQ)FofsJ7)#q<:!zCbc!zCb0dazÐ`7 Yo0d! Æ7 Yol! C7azÐ! C0dazÐ`7 Yo0dazC7 Yol! C7 Yo6zÐ! C;azÐ! C0dazÐ`7 Yo0d! C7 Yol! C7azÐ! C0dazÐ`7 Yo0dazC7 Yol! C7 YolZ6"8҉ rN!) #Ni4ňSHYvrSHNܰT°S: )^(I4MqJ!p~R: %Ni4?8hz&5`!|NC 4ݑR: 8Ni4G9BWR>cDr6 5j3b!PC0C aB!QC0d "5D jC3 [QCD a"5D j@!QCD 5D j@! YCD "5!k@!QCD "5D jC!QCl4D j@!QCD "5!k@!QCD "5D jC!QC0d "5D j@!QCD a"5D j@! YCD 5D j@!QC6"4 I8Ղa#)Z !R 7D`IR)IAHᆨ ]@:).qTR:]ABR#OƷI@$]tARPIJW]FP[٤| .H )]J'`~nN.c] ƺX X.c] ƺX Y.0d] C Y6p!C ]`Ⱥu!F.0d]`Ⱥu` Y.0d] C Y.lt!C ]`Ⱥu!C.0d]`ȺuAN.0d]`Ⱥu` Y.0d] C Y6u!C ]`Ⱥu!F.0d]`Ⱥu` Y.0d] C Y.lt!C ]`Ⱥu!C;]`Ⱥu!A7$1pCVQܐ<7'}t}9SxR !")]vwJ7ا4}Z[$)` :XShp^WuJ;q`x?n,Nąt?są|SbX((1VbX()CV Y6 !+CV0qh !+F0d` @Q Y0d (CV Y6 !+CV` !+F0d` ` Y0dPS Y0d (CV Y6 !+CV0d` !+F0d` @Q Y0d (CV Y6 !+CV` !+F0d` @N0d` @Q Yl!+CV ;!)NFPoN{IV~~Ni0Œ4MS@K&Q !)_]F #U\8#}f=/5a<~OiII$on/ƃ}1`X3x/ƃb`ߐ<7`37! y/ g`ߐ<l<7!! yoȃ}C 6}C`ߐ`ߐ<7!! yoȃ}foȃ}C`ߐ`ߐ<7~noȃ}C`ߐ`ߐ<7`37! y/ yoȃ}C`_`ߐ<l<7! y/ yoȃ}C 6}C`ߐ<l<7!! yoȃ}C<7!! yoȃ}foȃ}C`R> q>S>8_t}Zm2)ґ4uJt\#w}kgN`tduEDR>;[:tS#a}t7F7|2wÿ??ms{(;r#0[j=??3|Zu>:^by:O8NE<5 w+w2y_u6]ux/0﹏[=~znwM~`ayGz|}~Ƀ?26|ދnrʜ׺N;{>I=qj+('{NGiΟp+3^{>{N5 ?9.\8~e֝xWy ~>|5n;]띿 nO>XYhO#MuN8._Z~e~i_Gϟy>tiWd~"Pөxޕ,x[ư~LVcO_|cw.ϫ.}yp]9J:~-Ygh@ϳҩ>3mu>=OCǯ9_w_o9ܕ[Q'gȻjIi ychsT+?zߛ~ñ[i4{XSj:v ~m!װvy!VůR3ױS7'|j` ONj\H ֕m~ޱ\qg-}V:[,:\Qk`M˱?k^*烫sW^̡OV>2\yl=gyQWBwgs84uxjW;s>q16ies[áWcy xFt9~g)Gg;!{Tpl+ohx1q~㇛^\et~s/>~_^ M_?Sϟ9^_n_xOo^}4=f{ǿ=y~^$}I^oq{'G]ZcKg}CeCo?4D?vu{~__t_o_F8f yy=n#>Kھx?*vZk|[j@>~Oǫ&Szzg})g;uyg1zy-u T uŗl:+_~V>(~z}}}z|fQ(8Yt?uyzq+ 3WÇHz:=}i`r<#^qꖬgMDEڿ.ˡ抵][/gq}ٿ3B[F;'#|/\ p|*^jǫJ{Gׯ'6#>n~)3חrՎ8b]ϟ0s9Cq/ǓsvKq?ך|^9، ۴_׻gu<=رF\zV\ӈw6u<~b)m~s~sȗ56O#;zS/*>o5|ӤǬ#>M\C[xKl?qz|PUZ_{At<~iwJ^#KOQsz]Gbפt=R׫.S~Oir|clFϻtM4yW_Y+wM)O]q}YqWÈ7USĻ/y)OK]gcw<ɏQ5{̎77K<#o\LJ~4?κ}*U _u4qm-ϩ„-Kcƈl-U>p\r]ڟ:ߎbo]{*dԜ5gܿ]WC㏊:'ok:F\/[ޯ}29ŋ?ego|S|u?wy|3\w:}>O.T|(N~?pi<91yy\uDqL>5JW|,ߦexUrx x)[K@i盲}*{o*>+ߩ[zRS8#gW 2xJk2?/_V[KKS鸶't>4_qo7Txw|=k{|kϋ1_`qěI>?h&Mxl'?+pi}|w/Uz/jiGŔ.<9U<*ϧGo=&ypǏt\ <|3{źk>ϕ+cN8>'Y#ou&.﫹}ڈOM Wy4׍<~y5{*pSs}L~WϑdOC\ł#h{/>j3?)+_s?bMwV_W/*۴v\)ҽ~couX߮v?y|C\g|zԃ_#::Y\_YxYo2~.~e>}X>·1OEחG*9zOe̓=_9]>,tegħ:j㇖*ۨQ)3]_57x.:^|/Ǘ5^ⓖѬxo}mx_s_x ?os_z}:6NXxO|}Wu`N(gߖ9VSߦ9TT|^EԳxOMsxgኯz3_Z~m9ǓsK(W|bθm+ YsG<䟖C;xgCO|3]<;>Uxqxl9kw͉Uڢx8rھec~z#?+Hι/?/jėߚ٥/q}׋c#\xlGb/Kݼf*_-zKourۨߪݸMOZaK\g}US[+_\yq?>Ub~[˟Uןt!ͪYob]VuӘl/u4Lu>^UxUʟyrzB:g·sƻnXZn7oG~zQ]?bG<+#y{.:2]}uz[bF/uV]_WM/__=|Q|$_W5_JyNμeחo\WW]O#>*vfxnq0nõ/KO.//S>2oa\rYВu矲kG,z̔sc{֜_z{2ْz]0SگXq[&6]|;%ot<&/ϸ/T3/˒+K~̱^o~X_/yƲ^~K:<k?ց^x_5˚՘:^ҺMOc8RݦoWޕ=*Lxu<񔿯g?ڟ7/[=x8l򫺍WEqkvֈ/3ʒۈu=4]\O[U񑸾E[{~޼n&3xu+Q7%q}3Nj*W_]|0Am+|Sߟ%~b:o>xq|㎯?Vn+>VU {e߲_=\߷M_l˕}w}d?VHl5Iⳉ7>^FyWϏx߭^{_7[#}5L?y/o/t=q~p:obć)|:l5ǚ[Gg[HS'σbzPTP_:_}5_bW[LÊyMz}Ճ?'|g{]rzۊXs?ՁSxaC&>xu^3*0Dqoc>(_ׯ5?>u}]cgyė^_>^⮆1YîVe;l>~vuZIo.yŮϫk>i}Oa͒aI'{ջX]=bP|)->s=OY|}ukE{߾u~s #/{5,=k4?s_t~|~5^qxzU|*MV8|W]ןhu_u8|uW}vvz=5_Z7=x= >/?kgx0#?jT(}5#:wˏxu*SgaCT9U~}|ȟa^aǿ_5>rz&*xIؾ۔3Xϯv1,y$^<1J.~֦Mu(1 :/z^Zu|{Wx&jU'km-QߴįV,k>||r942^w-zK}١[Ǧ!zs>h;mz3|и.C+ϑEt8J|Q>3{ƓG vM|)i<#orq|CK/xq|)^X6:|U{gDoSS;jd)_7=Sy{睫oϳ&V2xxmĈTq?JSG|ʯujb|xyʢ4qwˣn̯xR:^oMxk#qg&O߸#^o/ǻ.c72'CG{y.__W GECڱsQ}qkLEGgGOQ~dY?hy]'[xkE>^˘5׿|[YHc} th.&K@ xͪ.kfkuó-5 ~ę]ͩ׬Y]$JSO<2KRZ5kn̺;г{YiGfxVڑgG}^bhVSU.G=dzTݫoY*fe0igy$ūUǗYګkV*,[U,/UctW%_ř*]Ϊ"8UfAN],ѱ2YǷ1o05 U uU~Rw1d*eY] {,~᪰UZT*iLNu}*Ǒuw óR5쪒W"YRrjjcq&K}WQggקӚtz ?Ou՛6oO?2KOs?E<]t$ITUiUS9w~J4UzJtWy)Ѽ)U~jsWAB\u4˭4#jSKUwឧ.US<ħzTHO*;KMj,5Ӗ;G~PdLgNyU'4HAөɝNLk;-> {RfdXvNG| [*ߗ3NP{wyS̑Kg:T'TڦNa:6lWɝƝtzyϜ2:;f%N2\2H)I%3 I%9xuJ9IfIEkܩLRN&3OKgOEr'GfH:c3Õy ttK)ܩc~9̑'s3#"N$q;G:Gl9ۗN  yu;O3#'bJgYH'wҙo;#L:Ӊ cW灻s; xi`߻Ӏ5?63338\ϔ_o\gf#3~t{&z:efyfvf_ymmϬtL5{Lc$L-}dfg>řټzf=3gD=Lh;L2ĕ̴LĒi53lLL3.oOTgg&*5a3G*5`3 ^ޚImUoJ-WWoyg*ϻJT3A[ fKV* 7TNz*SDOgTSY*6$O'TU}=&錕9RNStT:gg*3ӕˣ6˧*ku}w3+U"J̬O%/5SɚI*Ys?Jo4ө~T~sWWN,cI!K*A])*/UxLbShwW?* 3;y&Jt~KeRKe`f|rPY"|g|F*ழs]Iڻnw%X*ߕsG])wWJ*.RvTs'rl3T]=a' K祻>#^鱗-?)ys?yxN9^N^/ ŗýO^]PMV+Y]0eupoHVt7{58m8??~.{癍V\:W\~OVzWs7{?wӼWsڟݫ⽺~gV#~Wsu콚ߕgBZou/]Z>_VxY= z}N m?#xZ=o|sZ /jwWjHYn@Yγ .m^nj^n3f]߫mjv{򽚝wܫyu{__ifuZҢkּ^լtfu-%~z+jFUZp9^ ϕohZ=fq_굺P;>Ug׼ZfU ɗV ծ4~|qƓmY}~Fw}%dn,Ym'峺Nħj9sL/MV3uY=3isr|Ě3eܪy>^]@aY=ѫaY˫_/[;V7=wz}w_}JM)Y5H5_^}bW]KkĚׄQI-=xO\G{jV8EF"E|{vdlVc8G?R3S57W{\oBVG v._oz=ʫ%,jg5ɸW_խf/dyY^Z`3jvܫmђc2jz\5;z=(OکTnztOj˜$5nKVXݥz”ygјҽ<Շj<T .nKݭnvܫ1yf5Ok-7Ww۽19*wꤩ9ҝ34sjդӝ1NwyvnY9س:P_f~|nꚮxR3ywm}js~׈nYyf5Rf5P~yY3~twnnytc}gr7x7u^ݿԸn-Rkw뾻Bybj~\r +#5@9'5OqI ТnkMkztۼ;Oċ]ݫW[wu 35B135MzM7w^I1=z=ҍX߻CYM8ݠSCtwksjn9~wn|0sow3 5ݭ݌f~݈5|VFwK9X.eu)w+6V5wQp-|;սw[^vWw\[n Ak1!dkC =ZVz IެSbh.IVZTT ]jp[> ݰb 5۔6u@_kT]ϒj/aM|Klzk`m-cf651\efK"s 5 *ST!RuR;MK:UNnZ+uSQ7z>t{/RI]FjiAj&Wz(|6JDIjyڤs}s;]ˣiطZGKg\lO;nd['-MiQs4@ MVVLVfVG0^D}0+O-_4.5@ط\+Z>ʨe$QYzևN7Ηu?:g xE jvEysEˡq-$S+/jpEV P[zUەMPjł6ͫ/W }fy:A .'}K}I,fg O+)Z}u燰u b7RBY.Q~G\µ>z¡]>gxkI3PQwv.ܯ?ۏca~ 8zSq~/K>=/r?=i= ݇»aƞƷ{g4÷_\H endstream endobj 384 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 390 0 obj << /Length 590 /Filter /FlateDecode >> stream xmT]0|W `Zi/R;)oVB"%!N]ہxw=;fJf SWF2 o39pR؆Px|#E>x˥UYy iL#`IqHH+dR:niYpm-[13&) hٷ.y+~c|t|RhaR.=TMkSۆsT Y`z&v!sD%T.>~—רN>Dwpf]gAY*YV~'OWtâg8G]I/Η|Vpn{ reSZqVֻ!dݎvF=ob˚\KEBv!,`~"k^Xjhx4Ōc?vW6jRN|҂I@j;Q2͍ G'Mi` C0x̂Fk!JC,[w~!Ap~0/2C &&c$9DWkK}CPFBYljco6TŅ#.~sJ_/ endstream endobj 375 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpipMUsg/Rbuild28274c9572c6/EBSeq/vignettes/EBSeq_Vignette-035.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 392 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 393 0 R/F2 394 0 R/F3 395 0 R>> /ExtGState << >>/ColorSpace << /sRGB 396 0 R >>>> /Length 15583 /Filter /FlateDecode >> stream xŝK$q߯Ʌ?U3"1LdBBHG94OoT_<=LUe%22t.2_׸^_zKˏ\ח߼勯^8.~ſ;^~qK|K.ۯ_~Ӿ/u#싏6/_|痯Ǘ-ez@r+^kGB|&Fe:7Dv팮@ȦZ@cnזLO;{DVD&Vآ+5ӍAzjU#i&DZ-&23Y.}׺gQ^ kA;D/ϻ4-=_[1I_뚒DjChj#{wχ4iMӅMWhG0xzD#a/qmtS4SKɮ]'{YqhA"l-Yyl[FD49E}IP{|5n4jWSZDS4ǁhM]zKit6D15M[qTtF'cz"%\Exz2MfdvN4-^ɒ;+NG v N{'QU: \?u}/ݏ_fptmȠ,x#>Ww=c%}s՞bsU~o|~pN97{|_˷?כ˷O8"׌>qC^ׯZpcwmKHi1z l3 (55ρ>$ N)gIlN*|8+uaOpއzx84ãבhy K`:96-V|"pHejEOƙEduaӭud"Yxl܊Hٴ/|B>{  tBb:8Ox<;ڄ* X*DGufdJ~pgBQpdq4*;Gy˾.[86U& G[+P.YxϠ=kϠ*@mB+k-appa<p؈ˡ {q/?؀ݧxv_hOET($2^W| 6yl hnz ,Y8Q1ޞÇ]Q'Rƛqq M /[,w_M"63giF;hGtp𼍳bnu5χnd#lIe53˪X`+t0{p܍[q3bux_#bĈKt ֡v2O.ܦф}m3p}t8^܌j>?{X'ӫ8suΰa6#-kQ[ Lzk< 9Lш[>^Lt@ i7 m\p½^a$RlZ qdm|aGʔ[LxEpC-^L"\ZӋ]xaAUDJeY~ 9:!\Uѱ$0{P$&pd$xg,4,IB$dE^; _qubUƙy]p2-­ ̴ ݆*SbxuNL~r:m " w/4"\a]Evx< t`ETO:\!-[x 8urխ`=C]QLST[qr%zJ1-°KQDSiX#U& G݄q쒝 crwՓX4j2Itʩh68ȪL|2.R/G-rh;&ƑuZ=Oz E?ăr5vٸFEx`:PNÂѳ:P pɛj@M.‘u88WF!%23̒CЍ%2Ʌ#fPN,XH -U*={ yz]M Bܣ t"M7p-i2*;-^F(YWrȉy*-LO3p4`kPvcX4mD/)^\F:h̖[~MtIu\bnV?GbSl+k]u!Cpt"V#t+QGH'$<(< D!Оߑ룞>xhM{2P\*ȶlYjB}ZH[8dJeqԹ/(D`L{"܄ˮSItruGYs𑷰p[iE:E7?Bw_8NYJi΋,һ "i )xWD翸~K+QG{;$ _\?xZ"h|b~ E>pčx`]I>b|:m" ׵{a>ݹр%稑@D'ш[ $xLk|0 ŷghyf׭k}f׭.&:/lsևx:rZoG#a.J򧷞wH $qGYF/g(mJ4*K>ǐAr=˫XX`h}ያg)[?  L$lG,颟೏xqȞ/G8A t*-{0Oi9刲",G(j]\qW$xy_gIr3xehȤ[.ɺc)8v,Eh:tUҵpڿ N)xv-^v.9?cQmRTp oXx]Ƚ_ҵpmݼhyfj`%$3"FENKtEqZ8zQY Eː-?g ˤk9mk gdO%Ö_sxyNKsdzHaLxbuBա"G1 g&AOfjSwn,K_,G|UJqބ.{PcaJƣD]cZH x3 >hޣ,רs@ ƹ.#n9ܪ}` 9(t$n4׌ͳcբrĄG1Z6۸!cpv6 G}}E%7ϢZJ""u|YR  UpsqJj*|u\xMʤP8 X80^a [>H4|Őg+2 8]Ll[8|рg샍ċ) otD⹁G7n>tYpnGm|&h-'%V e4wi GMƧqih-T)*ygm G{^ewћ }5=[6ָFh;Н0Q<=nwؾpiYLi‘zأ|X8jql3piS"=p#̃+']8Z&脣0- QQhTq4] Vh>b3 %s}TvH~ ۿO y7,|mqTF|Z|d=.3x0A K&t!vUR'}>1xEj >+wZőQ!ͫ%n~Ӗ28u:Ur>_G|g #nY^hbVvJ!n@-,T(k ?WoTHm=bGP/s*Qw; WFM; NMzSk}Mx/yo_h۳ɇ?__A?/Æ._GWQUAʪ73 5(D_~]/s8??bEP/޽vk{Z_F1_̫8}-.<5.o~oo;؍7A__hW>_T~E|~Egyl{[3_xKJę'?~%*]n>n<>UJVY/5E1s~֐ Ϸ)ˊMM{i˿_A}h v󚶗`~ylZE#չU+jo8 UkFX!.Xu$/P)RҘzhreP w!g+C`Me () &=sSUh۸<)@9)T6QduƴLumo < ;K &ؙ{uZg-:.~4vu2+ :\j1 e&Y$vІQ7{e&klWo;K UVۡΔ7\vfpBTA6F 43X 62ڠuD`gsO.NxdІΣU2ݣ$vs4m;mz&}mU۪G&"?H]yb9&:TT:UNӬ;m5-d`kL-U1&,lf[*Cg$O>5up'J5[ɚ%XN,/FR7~ڹP({Y%qu)6b][, &{$/a5XG򮺕'q4n5Ma]Z<,ʒ`p5$nx"MQJ¢QO]H@n41;Tr\%IJwRf9YӚIܱb\jt3#)P3$Upm&rsRmK0#/8SauVD]ԲfuR*-z"IQ}BjBڶeaWfJ3HIrCv4;HP5)t<3u]i_Pdd@JcIGS*5&esmDlAޏ`7^:?:O8qtv8/y˼}{~}Ώo~S2a} B_+rP)`9ܟR8ݯLg乿Oo5#_ :u!}||>n[fDpkj$2E407FC7:R21s2 &Ti+wχ,մ{ j7ih5p̠֡6:/alm՝6…EV"D_D6%Ar25k29L3VѲ&a^yF#$Vtq>lq&9_DK~nc*z:t `O] O>Gj,tv ^ͱ#^{fkNL4l:4439A4l=tl:nP|J=R-ڦcP'"uV&8\>VT $,3RVHNqPLE(He[ڦ32SoY؎@LZ^C7z˓ VUȴq\il`%zTEC4\jRLhzlx $O-Mhv觪[.;hSdb:fK4Q9e "-W1)L~J3M9wX$ -A3-մ|<:צ|cCOCGG~ThϽ`|@'G7M"sa߽ &:Yx6Xhn,IB-e3-U-Ii)G29P&{n49-J4z"e=miFoѨZ-sh#1!*NC5n&5$zχ ((1CgFkLVt)SMIKb#Pn2!-m]v"[igžb뷣'4MS ЎGhlDkN(j_ T'-)-kJFd0ױ Gٜ5B(@qI{ ǒƠbPOuԟαQolfZc+j"9/D6OPYL%AR: &m\jby{G2:u-Q DOKa?SNE_(],IMTrr]UM[E)!$=.QolVYNj)gZ,tQ1rt.k%FK0%[@'K؊ l‰ONSFbN.aM6]#GrD`P eK^jmB¾۸5c s[&MTI>3/՜ tAqp|bP0NI[@8*.iҔtl{ݶHc.Ip;;Zb]J, TxX87^qr#\53RRc0yx=t=yPf$ZK-=SWk[ԘtO⽳g/W;,.#å72;nm~ٸ'^-]b=* |8ILKJn`U# \Un$Qլڭ82 9]`q]-F@n1o XO,ƑqZ<`[` Qݢ*3)3TF* ' *9@Fj(b9_z`Y(m 2YEzB?-*]uҾM wi<_?޿}]׏o~Jw? - s-(jg_Ϗ?_׿Aw/*_e߽/>B?ĕOI0?a(~;oؚzǛ]ESQ_'#ʟ?F_֪OkyRe0u^ps͕>{US/2ʇꁙ":P = ]OLh53ݞO&D`]FwN(QԠI\iyr@͗;'GwvEIkڵH$Χtq%Vy:#*GEvo!]C) v?'1D[Hdey&qaTȷYΩVnA>@~n:4lVbi!j[z.fف:?EqVAkvo!Ģۜh1vHZӅJ1R΂eሖ/r \}Qg >Zgpb^{{64]JZǒ=퉔f; hLIg[s:kMgh :lvh;8˦uo)VQT*x`04I0&ƥ8{QerfF+ѕfvjPi?7:EJNkHh4%7ys;V\;1' l'h$uEWc+pT9PeyTa$jNhz*+! ]1=\ Y=Wv%DfX''x]ƾiFHv娹#o4z(RCO2bI4cQ*}ɕfտX8'hN4ZynH9JΫ+~W͕N( ׊`dmYLWPpMRдkT^[ya1E]Et pd5ZE/9[C1JWb;- Va}XwV*/~1XƈnΙqP^zgQZO:vʶ38ΪqmSGz΢n3(t-b:;h^oszn4|˭iܞ^;D0X\κz,. uVKtqj/qPez5hghWf^7ڕ .Y~t&ebT zȚWff?Sg \F$aR,yiTPNcڽ=6VAWIwCρ$+P 4;u T\/ myڢs%]!fqWx4vbzw.+IbNcGE:d-u[3lpӬlyc4;gjŢ{h%r>a̿c:Jئ:lڕhJ*84ˣ6z]͔5=S{ql{swi`5;E~>\5܇zVkzS\idUj~re[V]恆 ,qPfIQ9A* *:XP S3<6GhEgh[ Vth.}?7 0æV}& 0Ѱf>r!ۡ:g!Sy9Au`(z&PZIS4cIk@"n5^ԎuXuMyͳʀՑ-ULJ,ZJEZVGT V{2uDHcN4:jtb*nZ>|>EHgMZec۫47-koܖj1ަ/,Z{E4zcSRR|FmcydnEKlZu ]fbg5: 3Ϗ'>M0濺QzFc,V4zcݽ]sfhvEIN~ߙ)TZ\C,&v]gS4cxP)PtFYYdmބhJT6ƦV*ӋnsFէrSjuބI fһ0Zz+;S4,Upb:eh5hJEj4m-hnVE5kM-F{f%dVMbg55s\<*9`'\g[FoUtZ h:Qʅvh4Ƭʼl-F+qHwuv҂ysLQ+ۗ4A\ --,G9TWcvjv+:UESM4x ܹFv.K&;o.g QyUX!q< G}G^\WwD:6Hwtb@^gD8USqi‘DɃB7ߢJwa|@6;z:to[8JTG2 ^8zCLHۏ"}OdG ܼ"ӧq4/‘MaxqKbbq4UFpd] G-d 'CF8.\aSpn`Y_G8E$kE&e&j_‘| CJ0v"%>ȩb8.GGJE 'Wrm(~J>Fl6qOR>cop2}i[e׌vb Gz)C lǔaܹ+.r Ga")Cvhʃ'\d/n⫗=D 9[G8 YHRT26C!Iz4d\O.1)fߓ\̲Gꍹy_J`o/yo_HRz~ſXx^~ %]%Y_^\1_d2.oN~cQ\Wݸ~}Tyx^~,zx{Oo>o9?ǒե -1jWzWkl<ٽ+[Jnw ߫?|?,p>>>|/?wm/H{{並:>_x;ۆk  vwk,tG9~7>j{{L/59 ӰϿt~T8~-x$͞jx`O߽O?+4vϿwo>wy쿿mo7oI㛟._yNwpzKx;gkDs^:s>%œ<~ endstream endobj 398 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 402 0 obj << /Length 480 /Filter /FlateDecode >> stream x]SMo0 Wh@wڢ١[N Q;GRRƃdU<n UcbxVok=Isc"p\2:o R@; ,"^E-B7ܬNJJCttV_%U"㘜Z}='6JmVeBEkOα ^}ho&dF6޿ў6D`?=_C<.g[phx#OL0g;_;8/Hw"'<08nc;BڎTiS8־=Ӓ I.]|[mtoPAUU;{K34{吿sitޓTY6!'^X|Uy/9<S{8K/_R V*KS endstream endobj 387 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpipMUsg/Rbuild28274c9572c6/EBSeq/vignettes/EBSeq_Vignette-036.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 404 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 405 0 R/F3 406 0 R>> /ExtGState << >>/ColorSpace << /sRGB 407 0 R >>>> /Length 36257 /Filter /FlateDecode >> stream xˮ%r%68CivAO5 -聠ռK [쓻nfwPY#,cي>?~_(Jhu7>闿_?_}%/.??/oeϏ c?W([?_Q_lo}}?m׏W=sO#܌6???z+j_wZ\~[mmocz|OY>ݯ>',|2qOu~yŏoۼ~ӱ^E?sw|񽗟Ef~VU[u)rgy/-r[yEGy6o}+7}[9(v^~QX7b7_.vޜCwushnGώ1ˮKꃳ* ~* ^?C|*^9 w•_xr8~W)׏z Eoa^rٝoEϼ :߽0‘c;Wo~ҹXof`5|Wʷ6޵s]=m;SvoM{VWimߵ墫΋Lom }Eow[[^Ʒ?Uu|OBP—{/\^{o&+No5^>۝&}k񦲧vݻuۚ^wYoo۫n8m5%n+W>~h[eom]*cp4>+ok=vv j->ﬥvυ|{۾wͬs]de:ݭ N[K`=\krZ_1OHujoVg׺m]-ܧ1nj?&fH㚀_fJib^kqrs«t (c μל?_^X nܩxLx1'=f)Fr{=_xաžyxV,\<%^m5+WI_kL$it k TI ՝u*(%rJX+`9Wir-Mtc>K#i?. b6pV@*x͂{. |{^,:9x.HZҜBX;` \W_!^W« )k3MMd;`ݻ#yW6=ӽPmXM$/ٻ*azX3Ɔ*I| 7Fy꜄[L½ L½ 1U˽ 9CE½$ vJ½`$ܪp/XeTnK܀e{A & 7a @)N=FսI%nF@^n9jT_ 19Ix4_[8{A7 7M=Axhޠ).= 3 l  `E-Z.1 /A4'-zТ%^AIEkE-[-"^# 7a)ks !& T5[4"ʹb#IB_A\ep~}nͷ8٢-A B $s^Ocsq=G MȗTi\p4υLҠ)x)M9MTآUtEEJ9DUGJYV < m[0c B{# PJ;MM*PiF^t1tEM-j* * ‚4z〦U1y1INJowMxTQd U ϙzW3=g]pU!J*ͣzW ܄tI> 6*4TYUNtEE-**ijғsgn k*P9:= \A8h ;!M .Vctw .`! vp~X+MU6Mzf Ҍ.74#sss:742JnB _G3O]pW!HS|u 팝Ezu"\mfGD]N]ns4aNx!WGG##puqDMnsnst̡tpWG #miJ'A=S mG (H 2@U# hwk;@U#h Ȑ\D\qvi0 s=\R'l*4V\$H U`&IGA=So29ܝ Ihu L.U# (/ 47ׅ0fE.W&b"Tko3qg0rZ$lޯxoL F~5~}KAES|^gۂǘ>7}nW 1H?)Z/Oz؋п.G{;Mg^<ދC*U߃UEZ*%l_qyc˓scI;Ol܇&NJG#>w]tHZ&eO}"\io__ŋL\>ؾUO|}+.O r.YJ[ˢ[[)|^рI{[[)TG#̫*G˨/b>~_p~_M8>M{~Ul'Z'󜍸^;ƒ8%'C)7wcS'3,8~wo*~+.8ݿ[8AmwCWs{!N?~7W7K)h;^3M 3S *zƇ66́}5bqk+"1Ka)_EV_چN /m {XI?&V3p8sӷp*o/>;r8_{'xcaXa5CXwm, wJwRmĒe8Կ?*KCo˟/bPU2llg*WΖSVc*fmW?Z'4ڌoWIvEtڌoW$f|SݟmWj ]JmM%FBc_or>/zm"Tv +W߯Ȯ|^A|" lgk|ڕ.{СvGAmÚp?.{&dyw7],=c\{qRgV*ݯzT=_n[I9LpXGJ_Dr5Y9lʽ,DltJS etjS,5QUZG>U>".w7^n6)*j^UcoQRu{ncWOs_1sZէWOΠUz͕\=J_E4w/Uj3*UnmUE֠E-{||9_E/S{F~*X}7^%d䭰׎}wE2*Z{/s/JhF VW {ShF~zoUӽ*busэ_#ﷶW O/t/ґw_#W;Unt'_#/xp*ݪ4ʫݽxJz}֛*En/n yozգW={ {HH~.-USɛ")oW=[S{oHEH~~U߹_!%k۷Zt*bt/j[Dr{CiBڴISGC܃-Hp#3q&q83ʶ{gJV&}Аe)MC:bB637-B83~g*!E-U_Sqz}*PKM!iX*-ߟiC|3{,mj3 E3ۢf[Cp rSMLHk$NHmMٰgrwW_eL)\73@s@_ _)>H@gwwP 9̪'dV噮CP!,s]כBZWjeP!7K HL`u*QmʝO)m6 NmfL*Cs?!|}&6TCEߩ5) C*_ӿ4qSA 8go!CK6~ ͇(.ߘy6A\)DFwfV@*CzEZ]C C|E15j._7U|g4*(61$XSef98r}nLI;hmI)a{ZBOKyt * >,%YXj>a9oXχ1K9!%S)]C%k>_25_SF/UN55gTBY~QfM C{9|Qj 1q<3:~? 0@/ꯋ,2].Ŗ-blqyp{:\ kBz%+SxZTa)y-wD˲?iR A\qχ@R*LƆ6I3VIw]E7={l(x~P*D;_JXpU>Mk{sTHLW jc}4@ 7c A;PFbt>* X‹FIHf MI0>Rp}?u1ITURb7[tޞ2^1Euc Pb&1+jܤ2Q;xPOC5f}#x"C8h=0vJ!0nU8ۘ w*UK?;5SZwMշ3<ԋP}yJ9R6?,mpB3BYSxRe2 ۴WØwhy!}RO`oc }sز*P4HܞMn@b=fBpH7S$8P}Q[C*ݿ3~;տyd,~`&꫿/WM{;O`nWj_8] ') u3՟9s3}ze_}ԿxnYUa}0I\>[-Nvl~|ݷ+}ze/_>}fJzg{@{g'J oMXU^s=?gr<+TFַ3 T6k?/=v+W]^iOпסMr%E+)z\IIM {'y'Jvycuwyc ywyg5Oګ._W]X+):\hW8)VĕI˕]h_5~ +)z|1z|p=Wn#i{ qGIlF?6QG}Jzҿ`Ƴr"r%Es}ݪ9?hIipcpSO$kg#%4~ISx_/J|h>T7>_N2x7&!vWei~';)Z;)eNޮsd\=G۠)f7iM&o`\nxʃv尡LU?} O{:)Z{:)Z{2龊?|<[ =GtY5nUߓUvq)\YWW/z%x-W_/z߿M|_4V֑V$kڦk-jM|G/b{=ޏldm/h&/o޿l{&nJ"]I!'?W#/q}=%s[VdG &ǣ`^x< &~QtNBO'KH\%P%W}}g[O'_?iz%%[4 @z%_{Χrҽ~Ť{ŋ$n_|on;"_^["]HD x=~/_^{&ߛ|%x/}ӿ/}7W}fԟ[XX?Ly>QLQTTHB.ф*_i{?%п$X!Cq<{?(|OC|/ċ8Foεt){}02qP1C1n8?բ!EIQ-Bp{w F?JEWڣ D>K.`8I}&=F|oP}K{+tװtDy!ƒ2ޏQx-Qc,Q(/ Jn{fI|OnK?cп$xYDB%q1]19/]lI/k?c u߿ؾ7uh&b҆MC|5{? Dپqy[)[-Lh߿پ'`n?~2e{?k)᾽5EPUgO/iI(NI-hO(7eC|<މ4_~ڠ{mS|!oO?%?=E"4]ҞC}x(w7uC|akXd>#Hd|;M,x9Ev迳Xd;mxă6IY,C>";E8"NOq a8 8q~1*p7aA;M]_QFq}8O{WJ^)w|[vq'Vq|[1nu gD/TmDM?,ʍҍG3k7"/ݘi_h7f[vc~_?n\2cvOE k7߮Xv튽?i7߮Iy?&׿K3ڍ.TfT rE{nz+oW+  |^A|j7 !+W&\]A|^|eꎾQ?{!ꎾ"z}oGϩ;^n6/ 57eH|jSUU_?.␁G鋂܂JqHSU@*_!’Y*:jMh24Cޞ;ʫ8$ÐTZC~.}UCJ۫\W T_!3-U# [8VUHՇcCk_!+5*=␟,%9>J_䰬a,ڐ*lBrPzwWeȻ* yo뜯JrJ%_$w{sa*=u*Br7뭶_:rꮯr~Q{E^^e_4!o޽Hoz+*rۃoȼzn*r]xU?-_^UE"w/"zu*"w+<d?_]w~vE~gUW%ț+/®/7Ąwܯ:w_D]wotE@y/ I]a=_]w~tW {/r;> SUY_% w~r~rW 3ǫ!gᏨCBF?!hDkTNH|MFQ pRS(/qCe6JNu;|ŧzOC R͐ lP]8{9pKmjF7V j>{C!S&=s6qL}'3u Lu݄%0  uUhO-cr&m_P4XTt;gOuQ65Hej; O3g C r: O3K_: jijdl%ա KY6)2 ?c!׻Z_rlFL0 ujHdR]rjT<5HEk)۶? A.?ozӴ=_C r' Ϥ-7pPC jMVCu%udx4ĽEFZ_S6XTdR^Nw& OK>%}d})&1iPbAOj|JuI/jۿ߶daA.j ϗv^OHtTK6ۗdؾ jC R:؅TR<^joj} OKA~c5a{Rl5HE%5ӅٌYYYy8V Ut:L5G:ӸRx1 >|u",5HOX y/Ez=Ag}\?A_lm-Aq77(C RL<55HeGcCF;7zx:ET_L\m4AJ*1 % Ec%[]Qk߻ӿR x'&Ze!sMDA/Rs</%FU|_/}Q!y!KP?<•jƠǠ)Z,Sꆾ~IpKݰ oC5APnfxz3Rݐ1oܒ e&T7'աxRMp/E5AWǤZ> Lua{ꆕա?7C,ñ%uĝj}NXIuCXTZh7%c?$^B+nTT jUTۓnANm>m>_Ǧ䴿lAN+cb:r_)7qwj}C5He%TK|hۭޗj}Lu<֗SoxMMSKV+ƇA57_ʖȅd:ǿY_M|2S,VB5He$T#!Lu<ϳп,T ٩j6O\7p#V#j>Y'nīPy<fy=8l/E%-In wm!5;RIEcqJh7{m賟h(Tt?O+NwCy;;ա/S]E'&ގ-xtSGjs?'L糓Vg@f'TzyN5;Ӡzq{{W:z6َTg~:A7>TP[ϜTnx9VC슟>"7?Hm>Yn,W{%n !i_p`~$xK-Ly}=yxf5čoRgjhu_?}ڛ˓c~55^PL!(9qe׷|0k=/0([8zsﭖxSjh?TC|iG3_ÿwпOσOwIYIm{-[ioޡzٴCa{!2ӑt.\^qftU_Mn^8X{%^R›˷Խ\~h{iSjyjU;lc)'=M|_VJ<>:;cu=CIJ)~oEߞO:;%CաIjd}͛U%+l_#+ _5cziĕ!1jVXWM}NV dZU/??D{Y9tk{=4i*,u(>LƬ |oSjU~ZUKա:Tw}NQmcU&"ܥVqok5[jҝu*ǯY*:篔GjUMXPա8nu(~PKj.*_?2-^PKjzCM_/u5|}>=3|^(-&:TRj^PCm*b}l_}} $R.PJܨNS-TPա{OCV")q{R[|}Pա/C_uO[_+[|?tRN,uI~VbCj KJ {GiR2(BI۴WM{;T' ?/NwVZVR|g:1:D}::+uJJ<ԡpe}?nwO<ԡ|աԡ::߬O?ؾ?PRz:T[j>߿ؾ_7.d;TNz+Z~CucڣPVZ›DoK^jQԇ:PSP͘菧=ԡpg}8?9{}(d8<Vr}H¬wxwRkHquRnu(NCٞաԡ8ԣm~>_:e{R"axyC*{? 6>:e{R ۓ:T؞ԡslO=\Ϝiz}ZJ>P!lu#,u(>;{K%l߲=C-ۓ:Բ=Cq~P!>G|#YV}աCm Kja}Rr}CjUV|v>TըKپԡ˿˿ԿG|/u~M|_M|s__UlKjU5c_پ{=aw~a΃I.,ϰz(#> ?O=aIyR:~ԡx~{o( E(Vbbu(ίX(V~ԡXm_-sSQPèV"F:TCC|1K XWCXPϓ:Aϗ:LJB|/ĕ|0ա8fu(JűVqSJ,x{}=^Z7q|fuF@h Էz{'!W%{X\Wu}Ը\#/B|/{VOo dz/g!~|在Kݫ3X./1HLqxuWl'/>ԡ4o' k<'߯x3?^)r^XPOL{\qؿ\'zVZ1G:ؿ/ ~I3PV||*x`'_Fؿ?XY⫰ /%= 6YΖXj}J`%?ω_n-WζM-qk :X +]g7=p ~}Ha>蟱+1Xշ_4꾌w <n3= a+׻q|Jj~`A&e [j}V3d/3=끭`[m֗ٺRlG9ufml9-4>K=l,5ȶ玟) }SX|N1v_تNp>glc{VY1X񜟱Ac/΋gjg{ O[ gK x7_{>V4A>L YB5Hd Ijj_ȸ߭H S*&Zӂ6Et j d*}_/ ":gK)@"xպBTSPDwУt#ԥB҃yKGz >}ֻkI=.jǥ4!~F!w?ny\7/o^{lt[K!EƻϝYď-3u?M.y{ߔ!Wjܶ_]f1on15]xO7y/;d7Dp Kwme#{[펵ԗx@4͍77}Rw7"͍;w~1k9o{f-H6y[vތ9]XK׼?"짯r@PZ.v]&&v~: ]Gבvkxv뫵wGc Pipvӯڔ<c5FU΋CROMBS QOO(k8 ; q(`i|!ճDQ(Te⎣~(,bT(h`LhZwяG(~]2 lLwͱ}%DdZj ~lMdF ]O:JGF]0&Hnb/1_ 8xĸ-NqϔO (_%=a&)c.B` ҳwO+Gi98(j ;`#9 ;M=g) ^:ji2_ѣ%YaL0Qe~FO|%ܲ fQ>z$A5x1"֕d ;pL08?roZd_Od7kO0?pB S#Q3z4`)Y.at=(wY&Gaܜ; @-}vO'(xtB?'(psq_\3: ?Bx[ gqƳB[ ϭ-~ gn>n,0VmV,0S.ޑ`</ʮnc-0^"]1{(Ϧ$2/x7T-K,6G-5x[ZOqsuKDka~HeVThCUY %x^F,|$+'$8x[r[ 5X`; gY1}KTraߛ3~so~soy~q0?h Mem8mN7 t]%Di P{ɗٚ {ts9Uo/10^,@nI'`Y`-c0PCr[`[`gۚ!q3~Kx[ %xmQxd-1̤DV0Y3:9Y~5"mY|ޒ[>laN'wx[Ri q[<ۚ2y)3/ dm&AnI1҉Lܒ]Ԗ4j'GoP(OЛ;d; =Q%t>_ukiʛ&)%y$(iS&o f0=i-- K;K:H]K;oi)˿G@3Z-q_ ځt%@ 3'Lcy i_#x;Od($"Xcy)d<ORAƛ%~Hj6&G iwX:2`sK9 1vN79 21 ),"x ,ViK"rY/ Xo 'yAFqh 2"@_[ѥzoh, ig(x` Dd>Q`vIR.Z 2v5$%d< $ZXtJd<OVA?$Z ||cIrKM-Ob(ՒT`d<VK"ӓ3ڀN?X% )%xPP',i*꼴KH<_ 2N'?~.YO{VA^Kx7U5nE0IO_ H=-gu& 0gH8a /-ms%ܨ!a_-Vl05!L-CpEE./ S dTS$+ +ZTCEu vCVSN*KpT醨F)ɊKX*QcI0`3L*(;ex>6Wۖ0 rPiDZ䁩J1 VhVCh)aj4SN~BѢ-jdET}9K1 Q!ZTBE fo8+9* yb* go=}Yb N S o jYT;{ F2%)3@hA-]0`jA8]kx q|*-MpE0S0jT?E H@b-v2k3`bIJ=v ;u:LxN l>6fD& xvG `7#fׇ `A33G p63ZE+˦aCAf&aS *S$6 Oakb[} '>}; 0M%LQHfƤ,F pVjZB2nax)6 L%ҭp}_{7^FF&H_b {SּH) p]!e*(BBoSKy./^(١.>)F4|P)_EMPpF*7yS.zWS4*:Ba%=_Sr& ]]wolTE]¨ [e"}:oϺP*_\?T/\xrT^-)⩼ހ}7|} {7ąTyW:.M{Y ?κ*ZEUy{?zZ/oSP,uT {Ty鸐*@n?^ o_HWY{.ѫv^k7}_xGvrȾ~-.Bnٻf}uRHGn7qr-vhk|B ߛ4`P+ʻ lWWۿ&.\8jh{cnaOy+\^[)4$dڶ܉QZF2Vo!x׳unvj[Q)@O}mZL7V[+UqJ)+K\%yjZ$;Kz.p\)xH'IN!*iQ!Hi+5-e%/.mgo~lEOU M( Oۏ fK_LFo*lAoKlB^-ey4}^/,4~H;8aA&aki4(vhPwU!{*xF%Рi3-V9JvyLҩ)Mv"=hQ Z6Ȗ G[ `.<-^$!BFw"Dֽ$V2u6W_fi@~%q)' H-{U >xDutK:d#U~)*8^jA!Ix$ ~_c!j+*U9S.FK.tEt}Ă<.'6I)IX.%bIh;e>PåUK7(-h?$T<\*"KpiҁKIx\J,r%~Tp㐲I0]Z4tmJ!Kɇ.%!).%ͥkBJR"hW AUr\JPDq)ILIT;]s(:8 X!9A8\ci6\jA m*Nո5y-w,[X:8ܡfϡEtOܮ3 DUJ8DG/ŏ_ !#"Hp’Szh|@Cq) ~ yKr@dAHI00p eAUÆCIe,E2Q81m,iUw-z-,{C e)K;pX$ HHUMWPR$OW5O9>\'?fJ?23!?$P?n9ec^jhQuU'}_f9)wUk4 w 8\C") ))eps~=C.T:>D~;'yč̨|.=gا,h8*lVET|!9PUs(~D"N >0iEɔOɄmN*\Buz|ʎlk ;~ ;~_΃OܨCPERXG2vRSvT}qGUn<oJU:\%CݞrE*ß-QNiOYQ %oD< *nSǩtM܊ S8)Iom*r3jA:6/#,FOF!/ܙLN_CrE/u^$ԻdkT_\"u_^WL2Ł ’砧d~ nbRN9>Y)i搟4fr~S.w4bN^y0[?(nJCҌ9bí]䜡_H?sDix3͜| iV4,K[*sL3i-!mCuzNz@U}@U䤧\䤧h nh+#dR5|Œj ɴnn,3ylWp{9h 2劓py:)8[lf\63,8ޞ2PlfpvD땢ltM+dבV 5du%y hx?p*3+p /1$FU졁pLroͭ<4eG7eCa M@2 U4t< 4~M"#*. stU؝ ̃BSVK(@4>\?Krr4i3TVyxO=(žʾe:锨4?w54"zؠ pt T, <@XD;5i8i8JE@1d9ϥ?w58SUvWA=A-w}t#SCWί?XAq1\m?w!]T4C~*{O+ C(~̆)1U hh_˯L5p .wb+_s4@P/#/1+:j+͛_\@DТb2\? oq1dg#c7 Rvx`u(c١9nIZN&^#Vd%pNL\~ p>tpZJZQd9p+!l9qrq$I\@_(!%-%i9E3v,hgP Y1v8c}I8䞔I~* hQۈ}Kh}KZGoM{1!x%--TT)ew,ϷdzTƵecjH9b#YUT% fG\d엵c^ 3cbS2wȬAfu?Y ' lȿeo*OOZ{ޠoUny@adf))Y~w{,O  d @fڿ2kk2SgDUfdO9|aj})_ W~~_Ѱ}Ec~~_%mj%*,M({n].3ΚnE{ǽe 1|oÔ??7g|7ߛl#i0|1>NŸn-#ϥBE11]o\/B)Eq^q5qiyNᅋZ[/c}Z=֟B{^.ם"Fq@d-~bn65U/Wa\Ԩw;3s\̛sxk}_訯;Ŏ8\rA !UX/|Qo~vA>ba#CeqPٸQ_@Uo6Ff3/UsC^ָɌJ fDdŐz.~.3⭍yA/zߕ@wپ R2D?o.D/Իқ]MeH8/Eoww} " R\70~ퟬw~~r3 S\"n0Ex{ݷEx{we7]go~uŗ-l4~)ύ_ k#?7~]v?$˾oP[VPϿ!%Rt j[ }ag"׺H'mh0usq4wrg7gR'sh_u%jNP[W:v5b^~|}rz\rkB9^ѹ5es ?AmMAg}KNP[UmUE:NP[ա1bx?Am5> ԹU":AmU9"եVs% jJN]߳V>tڊbS}Z j+ I=@zCt|}.NmA/T(LD]t543G_t\׳m/] nֻMs}{[/QˀAbp GxM:??o4h}ѧ79= @A`#O1v%(:u7VI `x4,n>pf & p}kd#^>,޶E$]守 <਽Pİ~0snPB/=ms0=}g[JL7BJx7ԃ@\aˁ^ @NɊ%Uyٝv>ȅCRVa aſ\q)9f!p-f3CG^ HY%TQjO,=urwKPCJ}$]aM!Wu#^^vKnxwXx%:@ÔaawPr ry:~NEȧa(jr0yeP]w2,Pn" -'oL7ťL۶QKKJhY %ZPsh+$IG$8,8” Pn%Tg`#{沉Lc;$pZy8)PBdHU#QV@8QpIkx8 ӓ^H|L0l.aט2Fyax-oLJ&oL'_Ѣ-LuQ5UHcPRzO5XaSR1Oe< t>\}SG?(nxِ/&rjx;y32bf*"f8.:\ǭ-:ܰ:0fz=g3>{ސ#j<׼J"-:\j-7r(- ;t AEt7>%j玲)QO<7k~xCw:pǡuhۚi9\vXKOkPy)$\VtnEVK#ٮ2:\^ >\t:Vtm!f3r"[-Č nO6uP[13 "fD􃈘a ,h;u~,h?B̰G$G13܁~М?r$by!fvb{!f8E~ЙmFy^tt?\ZNswQỦ,hGM+8Q: ]]e9(vp`dDNK9a\Rnܽ(h9*<|׬wCH$̦(e.J9AA*~&)~ _d.AWT@C2JY!5lQJZr8@.Llr|F6JH,sJwCأopۡUu'pۡtK};ִV̸~+Bd=!{1ʙ8yr^8N!̑PLrEyLx{(Hp7;dpwC̍9d$uI&^i@B$Ft}o<.*n:{)cNb#HN- tCR0ȿDn/YG"Iˑ_"s4s qߒyr"m:#e9)[d#u+v$9NJ̼C}JI9yn(ݷ$ *%}d&)i9IӔRxO>Ǧ<~R)[,d"ޑ$s*ɜ#I֋[UYΑ$iK$p$Sے$(ߒUMIZΑ#i9mH2w#ɱ `p$$ӭuIZG/?HwRd#d"edIˑ천V,Rd.KI2>r}IZΑ% }]|b#K*ytJ%Ko`> 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 414 0 obj << /Length 723 /Filter /FlateDecode >> stream xڥV[O0~ﯰHkL$mOmChT ~α֬M|bh5H2!V+8ʒɌ&,BjzQ7u+k=LIZߣDӳ pj`_ x}M@ȧLJ 1h<Gd&FcGJV@1D}Nei ]"5,Xp.`ͫ̃{~GJ5L @Oл@o`i|3<&eF*]x.aTqi Lc "z{u`eXA4SѼQ*xEՇ@6`c&}&H.e9o<ɣR 9L ,˵Vt9tjCR?;Ps&c*jJՔ1DWm UVhQaMZtĐ7, E@K gˀ9ˡlj1#=8#e YNNz%Fr/h0w6c_HtJPmnVRo `k - |/cTүyH4^I;MwfOxp"c,І sEaF2K].Jr-f⼳L( FǑf;@ˏY'&&Z5+\F> /ExtGState << >>/ColorSpace << /sRGB 419 0 R >>>> /Length 358 /Filter /FlateDecode >> stream xT;O@ +<&پ"@(b@U;TR_8EaϘ`;8d/pPH*T/긁7؏R).wZ^>esIjiTaL27moZ r"$MʪZi+tC=b6Vӭe)?4{ڌ@Vm7#ܯ@Vt!e=r?$G-4SK*1D wCr&]hf1ZD(REυϛc{*>^ͣ,+,M)IjMJĦ)%DoSݩ7> 9F:#$A- %b endstream endobj 299 0 obj << /Type /ObjStm /N 100 /First 886 /Length 2087 /Filter /FlateDecode >> stream xZYoG~h`_ d'rA"p$φhajt Ci" S]]]U_UumvB 0:酵O)'A9㙅7"ǓDJZ؜D6a`9xy`r c(LTrthD0dg-S1 LXj$X frXu, ]$LspL1haM@/7[4 DDIx(5bvsf9 :2@I "AGz-B5:$Yh1BÍn4b&54SœwK;r"0OF].@>C.4Xr"Z\"@-h4P Wr ^Ӫ:?gE;} ۗm5jWB\/YSy2 SO{܎x7^\>?` "dz)Jgִը:o^I p:ŤRE9k+U֓rvy>> +uYf&x0(KX kL1J¾\M0*QqG|?_娘h,X(JO߱f2&SzO );f 6H9 s<P:]#ԑx1H8t{eNs~~7#ƳtNrܷZeF3!HD9{B<gMo_@ˏgf7Xd6;m^ gTg@ R#k!L\99+:CY_9w+}&9ӘeY8@Kr^_&բSSpu볏hZn[gn]L~.˲ӷeCnlFrY˙笵i|Jp@ֲd!-cYa|$>1^8IB$H\x srv / &6!q84pۇ3/ Gc%gn9z 7!ޖy#q}2.WWU y|z'RZ/m<]%^߼YBzg1)D\Er> kcV5+|Incdn+N~7:2mRjXY5*YLۢRVÙLKuW}{9ǰzpi]ݬ$.]hYVɘ/l )H@v rv7Hv1-S|AQ&Dbo |q 6>Ett@ 0V"#<Hm35Lt"'ɷyF#@-QC,ܦuXWQ>Raw]J6̖bn;`aO',޴>ǏWqit% ie(7SRCqCt .<" mBwKOF;A1.V1l H[DP!8pM/VzGB1nPty=yI~B$AfҶHLx/>ӽ~9Jl%d| ݯY$(_(QσGo7Obv tŵ&H''9R>{r{p3|A7t@O/'k 6<HpId;\2џ]}KvٷN_̷VDN endstream endobj 421 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 425 0 obj << /Length 1535 /Filter /FlateDecode >> stream xYnF}WAR}\ Es ɖbTXJZ뻗rH-%9- k3g.;;OΞ\AUVFd1b`9+i1K)p/ý+wCK8NjgOT* >7~E$%t}uzބ%CQ$/qO'??01 ܕsc-ȋi0H~Mʳ2~~x4F>#S+2i /DͭƸDeA:qlJɛ@HpH|!׮˯b}F} X|V_Soۛys؎2^JkeiS-ڧuA]bw,5*)昸њ;o6 'g~En;o^pi{S`_GqJ]nMiI tUd1 6wX)U}W$clK}CԈ6UmAȥ-_ Tus(CE*Kr]6OPu[*T EAl&(\1zDp}Ee@ w bljXx; 9g/0YdĹTC<=gy(-vrDnI˯QD+p7.8I@{Y$+qYW͔31%*…K.'۹D$ J'| d1b#*M$@sQӁՅ/SKo(Kq]ﭦRĐTWGC)yЪpbgLLijnCi`e8Q1A͵0|{sW}MK;}=SJ`4c=N=)â\#+Q?~xoBT%u|u:{99 endstream endobj 432 0 obj << /Length 1224 /Filter /FlateDecode >> stream xYmo6_!&KR")؀[: Kf˩Dl7ExD٪nـe@7#gyTBKM摑DY6~$jO. er#"V]vmZ֓vfflG*Ŵ 4=QfҙurH7#YEoVn.ȭsM'4Qv UAFnU^{]jjd̃ë{pOHrҘJx!#e)DV(u(YaN+5kw{ ݅rc0tw0xaZ ՌNjb(-:+:Vc.w@㾬g^7͊þk=l-| TFݙDKbL]fF^c{Z9M^Y_F6[fxI®J23o9 "!%i9J~;JL$o:+F56(&IެIlbp+G3iѻiv[QLʾGO폺ldF(hǮɻ;||k®v)8Y]W%I  C/ l;!~^ Ai9K.e jQP[HTkBj1:}wI"ǭ~i?1=29?N4{E!d(hACZ:.o+!e2C쬯 VCMA+ag@z=P!P;MO7 tto#@޺񳗢w)> Q9&,Gdl1{!fw*vڒL_t5-Q F3f ~&#=b9ˁX/Wis5Ke(&ij@Z/+Y w;Dw\˫#ϐZkmN߁Y-ǾL p_W YB3?HG&A$c9WQʴ l f53&.֍eAX )qi}V}PNa&/O&t`Ui&t}rL{d#S^ {(XZ1=- Ŵn7h!QЪY"Ct޳&gS endstream endobj 436 0 obj << /Length 331 /Filter /FlateDecode >> stream xUQMo0 +riI!R'M[%nKjR&0/6~d-jYab(4f54>' b)s COj(C8.ߘd@<7gqE-b\;`[ɀ`-SJ VH U_h_|uJ AYmz{% O4pcʜ<>8ZB*;a]{ c\㉚KCw cn(8yrU.:}*[_VzTa|Ei_nGsݳB U0 endstream endobj 428 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpipMUsg/Rbuild28274c9572c6/EBSeq/vignettes/EBSeq_Vignette-042.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 439 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 440 0 R/F2 441 0 R/F3 442 0 R>> /ExtGState << >>/ColorSpace << /sRGB 443 0 R >>>> /Length 6702 /Filter /FlateDecode >> stream xŝK$q+zgiV;s+6,dBB(CG~I+C NOgddt%]|ï._]%~]j㒎~=/.Ͼ}8/~qÇt~p?9}G_sڿ6D@4MFMc݆ZD0=]sЕwy^hk<{@LgRc)jl! CzRyij+zndLtKA^53hvo+oC& ׳26xdM$zMfMOӓ{Ovtjkok&-^IRƊlɊJ~}Vj#F54Uؼ&Ot'=D'VGMe=jf{׳i42 zLtܛ[zD:=moDӾM#a0XK^7v#L}>͔/8WrӥΠ7=.Ԫ5d5齄,GB=txD.G֒ui+K447&sɦKt# z&#䅕ZW] =Q"ӾhbnFTJ4SֽF{F}wti.Ӧ[ "?'vp6-VJAe#e&V{- =hCO ]<-Xo~<|LG?(Sem@~<[dKk#'.+x>./wO+=<˧?xT'rOӮ~W<9|Oa۔Tos>~H+/ϱv]x?"SStr6Isӥ>qI/%ƒ?}ݷ_?|B&{sW'O{?~/ӷ/O{QC]\Nyn5.?!2sqJ<$fMd(xV딈B.kr3JޚZIJE|;BUJDgNhw/\Px5WB: Op6‰nxxՙG [ 78 q)p[']1WFpeZDH+NB/lV,RBæ:'i{0M,BɘƧq6T;?ˁ`!FWRCVBns(-Ts"{Hh'S|y /hV`C?o%OٰMl%ng.#H +Wl6Θ7&eaf(af*dVo*RB=p2X# "u:fO)2)Ԇ s:BI2!PX 8iuYi+e"r>էu%kCM[-8"́k$|xl!QdpkuLd.:YZ>UCEKW { '0algq:Ipm)cLВ26qyNi-'4WTb[,%kûhCJB]$y6@@i8mdJ7V *hQHxNJ~E~$,:$."uE '>}?gnzSTj[,SeYk Vbd+J ͆Q|QsgECK]z+RH6t8Z- H3G`>BI[*a;J.٤i" rOeԶCFgQܖ U?7jby;4TJz0Nd#>j᥄"S B+#!5vrFqb|B*#Njk,$ ZiN.DNQ81K;׊CcƵ8YMX/fhUK˅Lك 6l<6s*E7P҇#>#3?BO4^Y& U=hU뜑qiBln&XFm!TF~%r/GLG;Ud=lJ&BYpwsF⨅kWI]$TV"5ׄ$߁t޻9l;f,W|Ԛ4Ԏ6`:UٲeP+K)*K%IҦR;@CIJAOgTAiQÂ1OwpRZK$`F7\S#AZ"],j`.$3X7ӎo,wS=2Ba3]2|dqtgXVe~mHP"$:S-3$!#u|٤3lcdޢstD_e_?~Qժg/>ӻTr׭U6pg>.\UV~᪛&M~~_HxՍWx_uC /nV_/XvK䱐ՍN% FwovխD>D;urV:.=WzFV9w+Z&E$ңjP=ɯ7MEJҙUٙj䆳`r^ǧ3Uw;;ٜ3nx ̓ ޶`V T s4ItigGk6 ى (ߙݼ˧UsE+hߢp;Wk$ڐsO0*GvY`$G4LC;;/mûa,L{Y0i0Hܰ'jv8 mMBLJۻ!\fuޑW1v5'v[|Xgלy(66ޥuB(?[~%@cއ` }Sh*Vd}a'JO0Zu:ׂIiWKGpLAc!=XEAFqdz!-XSgڣ ]ɤc:C% &aq&V`]CLhkQzM01l> &myɒ|Iƀw=gֶv$'A ?jftfi+Tr=< 棓fAYpÁFr';Ry:z6'% }e0H7rOΆu${:rvV`C&L3r qȌ`R`ŽiCMLp? CT;Iy?g}:fĽ#]*5jSiULLT=YJ`Ӂ.E0P1*nITu &!.:l0a`1M$=o_̿8s\Y^O_y\E߹Po ;!WC ei5` ^Q `` ::$$1lYM|MJ )Bbڤy\ wbHI2S1#q{YJ(I"?Jڷ-Ɖ 0Nb%xڅ#>л;W8 /䊔A sڼw/TLA6/sp"h|'ӒA?ӱn 8gL)B@]&0+V8aS Gm>dރGRI v*,P#>V-p4H2of]Ⱥ(N49*zBLyOBRqS6/HhsV7"$Jb%e$kjp?ýX$z6Qg{[s,яvMۯ՛3omC}v\>}_||^}\>}g|}[ %ޔL/(L-/۟T3țXH- o>'S"|[\^nh|]N9S-5۸z|˺{MnQ|t;˧a?`GK&v6Rs Z)j?H\k)gᮏNƽ]~yL3\~B`Of/nk~B:{_ yUӈr_[]:gźm'W endstream endobj 445 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 448 0 obj << /Length 457 /Filter /FlateDecode >> stream xeSMO0WHxIP$=)7Ҥ6Ф=kjjg NM)JYmDՉ\ S)L'[a!U :sDshĉ;1x1,%JZAb<$Gk&ɣ*UR@!Zh6{ crds \Ɠ328TTRvux8΢0Y<%f^iT?we<+HY?Nrn"Kj89J)8Mw[2ޯml}]'}gEK[m=ᲃk`N]knikhJO63X3۟|[ D.lzk_X7aF=r4+NO:*^??<)&IR*5dM¿oN endstream endobj 429 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpipMUsg/Rbuild28274c9572c6/EBSeq/vignettes/EBSeq_Vignette-043.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 451 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 452 0 R/F3 453 0 R>> /ExtGState << >>/ColorSpace << /sRGB 454 0 R >>>> /Length 19255 /Filter /FlateDecode >> stream xMI_KyT|\h3c! MZ^5m[ꁥi@W̛Ewթ`7[j|߿\}o7 7?h#on~oOs>g??j4oO[{ۿǟ7zmy?@vo9؏wĜ-$ Jx QS~LJįя?:r{W ;wĻׯykoE=ŭJZ~p9kW3f{?#o>n㳝?%<gt|g#;q 61y=,Ͳj_=B[e̿]s,u^Um_.kKY=}/WWc5lc}]z|o{1̻Y_j;ɋwj^W'wMm3^vx1V^u-=׭u5H݄v{ݕ^]u_l_/w?*]]{{zR xzNeu{`x/3/,C5)/-CR{W/MCٖ?{ơ݋_[r]iKϗ3ni?b㥑;]1^?_pzݟ ε]׳exPKUʓiNW뭜ף9_EWb_<G5=;Зu=z8՛.˓z}rr⯇s'דs{^ON/Gs{sp_& \'ϟ^nnw@3E;4NyQ qm恺p^sy5" U* Hᮟq6A80{ OZH3nN?d'0gXn y2^vS#CxԼhH>r.cv*ʌpYmA±4otNh)aך]N H0 7y\=0RSKn[ aF.t O=9(6kOl0]v4p05'sQAaãnp]2n0y?R1p-M᩾Fa8:7\FQٷ0 aPԜŎcJB2ǚHt.ڿ0yԜ Ә_˄p /<)  1뒧8G0y?y0̵wj΢^9G\%n@_4#>`;i̻<(ԜE5AY%v:ap ab9;/xМ}ᢰ7MalCFB(@ pcRcpN C( oCa,+>{tax1ϳwSs-.v=*݀ MJ7£G1OG…XN IpaR܀-B5ghF9I N\;ƻNFc޹`ݩ9/>pP|B_;-cHt!yQƼs#ttp!F :Y_x8^1WAcx@%М~0B 0L77Z ah4Aa, ^C$NV/':݀Ɨs!yˉNcr.t wab h7-'hSSb ᮑ׏iܛbRӺC/)^‹ ʯ-ASk>%wsp:0VblsZ/Z7H~DŽ,:po~-; 7x ; o_VOPVOPUV$^xr8Ov:=]p<8#x Ct| # BN11O.&$N]bM씷%=c 15_O+&ě|Yfs֟Sz?~ZND'@!?e/38ͅ_t/B/ʟߔ?%DGzg/F~5&|f`Ws>3ϒwRs Xs3M^K8VE?qo2L R<1$^GJOB/tyJ\y}Ay14yшKnZiWL{/_%(J~s?K9Yh~7Ktb7I^n#wsh5E=ԯV GuD '.̠AT2XZJ>X#2q_CN%)Og  H`@Lm ]s$$s|&k=O{^AyD x gR:qf`0N)FFCyη5yOy뉋E.9~ dzJ~S~Q~S?[9Ox8s?(J)$ _ G ghַr#ô/~Y~))%ǡ̦lř?x g&l_?%)Yٙ gvy( q81C@œoӞg g?K>8~sFg.4R!/ʏߔ%8^34}xO+C5s%:M|:Τ8ǘfr%~QR<p&ƩHO\/tsy9SzxREy7ǿJ8Uϒ}uz_U7?Jpz_Eŋ2~K)JK(J~řJbk?_z_Uahe[8sKkrҚ/Z/]&z_]xG*޴7bkbk+[:_ZOGoq O'~+B֙(HūQVgb#KR_,eԯUG"r#ֻsXޝŪԯg)i=*HųVYރȪ/VwֱUQʏ7ʏsFdi7O<9VzߍUݨ_,wFdʟ۝;]'~15J'>?;_GRcPR*m9]w;9{x؞G*'ޓ|o{jwFQ[ Q񱽸_T|l/W~U|l/#S{1*>777k(%)o%D)(61mUƐ=߇E~ }_/ۇ"_b|Ő5j~YCy{QkG63HoNyͯSFg?2j~Ȩeqi_~k~EvP;_?S%K(21?RG/*~x wsFkFgi+rk>Uө_I<)?K~qgND!|S9O(_$q< #]yXv11kfԯ4rz8M<ŞGi3֭W$9sWטS*>b"زSjGqo?R>8p+MU^xP^|Cib`-w+L|0y#4`u>Fovz?UZ.X_޸_lw޸_T.J8Q}8uP)޹_T>J.?ԯ{~-_щ>X^m-G85>_T>ה5k|SOT ܅_(=1'kJ}RfE){HC?R_!{U_u>rѓD2Yy6_7^6?]OCbLdE*q珧[6~"pQ}-.~Yȸ_?m?#wlaRAԷ|*oP,+{9'ĂO?$P@.?%V|! ~a,9r.ΟN/"?_0 ~y/X."OЩd;8K")A )!(1 ~?%%?%>kVnaڏ7 V܏2VԘ/?s?5 r>y8A2jTXL3DZ/h qӨk3lX<3c_ AHktn)a^tXOg~/OgC& 5!џIۄ}3Lt8"ZQ7/Gxw]w kF Dϔ_3cޞiχ6|pϼX]3hy&>|z𿚠ćvgZ{W}?ycML{W3L{73clX?jgÇ53cz&>|lϼ{8ć_Z?L}0;k<3~:_p>uh=S~ypt?6gÇ KGz&>||~&><ǿćύgÇӞiϴ]糑Eg=><ϬlYgWϬq1S߫zH3COo`}ޟI{칟)5t3zFMx81_N&}EK,=8_=pg` q% 0(y Y` x>%^$CPzr!@8 dF,YH#Kg &$éY`8`8 .nP)V:-f=.Ug{^0;/pg5~L]'!..t =r ]޶#bDGQ!ƒA0  aIvʏ{AyO 5P-IڿAъK^|8VNy[@s\< YIƠUAӅif;9 ؐJy ԐyK EC{qhC"A29!(x lA7fpCƄSdg x<$ԡ= XͿއއN $Уx&AEC&drڝ!ƒSG*BurEJAe[ǯ"QJ2N9.v/z_")}S~Uv#ά _A[AΨUMJAe6 UdDx!T $D%;P{}r1ؿ AX#0 (&DMxQ~MM‡2s  ef= Q9 wИ|K4.9)N$H =<L)$T7 bA_ԯIf 4EBu7 bV=P'YA޿D8#&!f`HMxPoL#B6lᠼq~!`c$Tz0#փA"Y!"@(P.y>ePB8" a ~^ȨG`K2]xPƄ O4_A5_A-HPf 4)B#D(S[1!l")yow#":#/B!,p0Lta, GGD ̦ grFoA f")' (B. (~prC*D@Ӆh\xsC*D(NZS?;"qE›)> R?=q A c@iE@c“C*8*G?fpr6ު:W(ăC#^U9cAE^"/} OL9/r/r/"<&/: &[^$H="AӄEC}"<}]%;OSࢍ4Ex EES UhD)O{t"IE3Ej)tP5Exp_sAK9ExQ5ExpM[!,xPW%,ګ)%"ԩG.,ٿ%ƒ%}\".,1Hm)!D@ԄEDm"`Z_L.&,B"`v0/&skӨ"`_L:E$WО!~X|t>HWVAWp?~z|ў ra|Ӟ?J?E+ MDW/g7N&0J?L" (>jIEV_OkEH ᩟Y#]dCX_﫺CHC)[gу_u?bVu?bh?mתGeDXV]e?&.DПxPT %",8Q>Vwm))$_Ϊq;ߪp<<%6T]1HT1XYW1X$\1HT1U $6F/&sU}w00.&aE,Sԯ3N,$`/MԯA2>X(]1>IT1Ufg>_} >sI OHi'_,qa])º),>گ*$v a#YZ/lgSNϦ~[|2}ui!@y ]) /FBȺ_SbE'}1|FyGAݧpyq“7{7n,|E.$.¾)5h'|hhmbN0:GYq5 cy~Q~Q726*$\Z=;vfƻ !m!mȄ}IøvpEAcR؆AË~:|h3 m'!E2ݾϐ4dWhKLuن6` 2$HyцDoE?$O|f}_h9>ڋ6hC7ÏrGQhO3~lC.ދA?/`<`mͷmq#״^ۨ˯>!:Q\» Č}m AدVFa>X x7\щG;5iXp)QSog p.yӍFA>+NxlW4.tߍREoHƍfoؙWQFmSXQ"ܠdݨK'cܹ `.#XgFvNh)%nX^l}spv.!Z6rBrUFIB, `jNoF\'[у^w5Tu{7*z1%D ,!xX"Ǯjbupbr qy`{A8!.~8ӫ¤%9HGMm‘CGKb w^ ir+`;IWGq >(K>HR=b.ӂ֣$5FIxuiAGB)% tnu_;2.!nOnN / (K/ѣbrBq(Me}ŽXz: D]!-3 e=RsÅe3\0 _Eᆚ 䒤ArI!HRlGYZHS\eՎ**fxJfQ_s- }qz %8bӌ8ʪQf&ʃd!QKVRy*ut bC 0\崎1DW4Q9V1fmHb1"<;Ng!=ǞT娼 ;jBTyLQBR[CtTUQ7 %8ê!MǛdPꄾ K3: 1" &`U&RۄRۂ$-We*kdE[ 'W!*CdtگG &hZE*cm17>´9!jd(qoafZr j ?F|ߪB`'[pAXs>\S{ML_UtI "ZaM rs>%|0^~Pt@CHc'>a0?P 劯$u%|hq:1k5PUҀhUEbE*a _+ȕ&*^H8 J"?p\LP ;]0Y쩪:H!xG /xPL2.vs:|sʁ a,4ݪD)CSQTegB˪#}^=DF[ $L Q!a@xSU~l{ꃄ]%0^ڦ*=@³³ƒH6}B9c{ [ 5(hĶ-S:ʙn4fL.n#Ng ppbA=ު!aKUG(as}4 |6vs 2 ̍Մ4&wW?*YaM(JR&WM(|ՄlWM(l#50hJ/h" J\ Ssvr%;*\@ BQV(M0s@+pCHGJpp>5 ;)taN^^%| N7{T"a8L$‰ 4Y-OƒrJr}'a` ja}tcȠ ƫFnFёn܇ƥnx >jQp+Hh@Kye\\5w&n ӘwuǨ<%W a@{u0q'L7@3 Fƒ!p;(0r$ts;{qO R.rCŏ&C!x0>.NE7 œ""WBY.COD\Q P 9׶FҶOymx-8G1(%u0 ٟP0Kt0"! Ә%0gbջ]:Ot>\ {K‰!pO\' ']L- &*\<- ;KzbvW"eI!%0M۽)ΓޭDB`Av e@ơE)MM0^hB>ӈ SjR,JLR[2`&Co_řNvSPJ( 2}5-uL 27ci4,a*)pR ^75d`M%xsy} hV1RGCNBY$ Є2,؛H}a̐MpBʰpbJ6QZfU h&v!p_X1]&nT[&pBfU8k!μuj}a!μDR9Jpz+}V3UkxnbIOYgb"Uk!άaRd֙xF^cn}O`!LGpx wƼw&\uf Ȭ3]A'tC?pUla*e QMH…JYg"vWbU܌&a: u&㥓YgI1 YVa:H;&S-&x*q`U۸0Q$:/lx)l[UmÕ m䲙8C.m Ix L'a)mdY6m#v>2l#v>2lۮG:Un#*^uANSB a:S.Ca}fśr:˵QbuH1UoȬ m&F*|a?M O||Ffnd1ۈ0݀UӍ:[5؈mt#VM7[5Clt#VM7%[5ȬmxtVѼ+?hކia惧1hAfU4붊*wp4*wp~1q$ *wYg;8 ZE2L }pnHVѼU4 *wYgJI1^y VѼ:hAfU4 *wYgcم)2a;YEb(& w]g0In>ȯ3e$L7@|&*{QdτaM(ޔCg4;AX*|w`1wфQaM(LXD}K|ebN0VCh%-&LͩxAΝUF \ Ziw6B5HIh %(U&aQ3G:a o6s=8GXERM3oK{gjI81MBpyx6jʐY%L 7 ;KʐgN0ӆt<LԜ L sPQ5VYE )1& œ#Cu͑!fF0%$L7@U9 yoD@B2' aC\*2fqI GC*f2zzcn%Gi+eXV\=k5 HֳnL POhɂ4JQU)9Ⴐ^;kc2QӘWH^.!LÐgbUЉR~dYE[=kY;G2<%̪Аpԛ%kQ/i|BC<&: uAFƐwDa81d70mEi,NEl:I0^mjo֬U^Og%aVģU:c"'; ̞8NCpdewO%8Gl C(pGi6yq*;"6M9: ש<ҁJq$:;xv+ .c$#Qڑw;uv::>40˵π%4zCXtu#ੴ G٥9;u\rN%!hs,;K4v1Tl{]L¯Ūߚd~6M$vhvٯ2 endstream endobj 456 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 460 0 obj << /Length 690 /Filter /FlateDecode >> stream xڵUMo0 W;@JdهS /ي׏dk;Imc1:@T" eb3KuH }E׌^e(b߱6]ǰf^:ϼ~#ptPSCJg^{ǘW9ΝM%ŷ,yBJ(W|#Kzrd;Nǻ^yP8zrfOڧ +Z,A[dƱS{ZJA`sIQUιw.m={>M@UzX6?l=U8wmd)%VXn> &tSKF(V3+> wbۺUZ34]-!z~DFbRpZً|IAҼ@D'=?ĉ>fuj-?O ;| gԙ>᫇uBƣYժŶ5P!Fs/' +|њvYoSRq+=mB  P =34S3pm=EQү82o=6oi_B2LN(\Zu M>ȹyx )pp[ h endstream endobj 465 0 obj << /Length 393 /Filter /FlateDecode >> stream xڭTN0 }W䱕H;m  =]Фm Rֱ1q[%~iĒU3iPBM =x* ]j Gq0% +½,d qV: z1ΥNB:dI-=%ߥ:a'VEkuQRqtZ@2gLy Uv{Ao:v V=P1Bw˯ '[!qXOrU%@̒0B[QTlLaRлй^:񆔷X0+WǕR)i\ D"OG֮6.7ٟoMO5s~4}[]R6~ZQ9h l <9< endstream endobj 462 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpipMUsg/Rbuild28274c9572c6/EBSeq/vignettes/EBSeq_Vignette-045.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 468 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 469 0 R>> /ExtGState << >>/ColorSpace << /sRGB 470 0 R >>>> /Length 640 /Filter /FlateDecode >> stream xOk0:2HtMi 9C顄BD^KS.6=ΰy2/b%F=Ő2U)*?ݘ`[1OaXGG'OC<ٓz U(*Ts)#U8Y*pVGHHҪ_^? [%n;E endstream endobj 472 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 475 0 obj << /Length 1616 /Filter /FlateDecode >> stream xY[6~WRgN%c$*ERuղҕ`vf˯/Ǔ,ă>ɓŝ'NleГĈbL瓗ӯgs%|Ƨs\[̵٥k?R1g?Ldyei&X/q^-IxA!vxvpx B?$s;%I51j1{z !YʖpG?HĂ!c \fҖm8<~Tjd\fG¯$撛 ^1^A4"]`a~L6B4} 6Ze8vty$@b"qKDu/cvF+7=+ l1$H}pb.2Vtwgs c^cuGgM]C\ލ7e/w]{H= {]Ȋ5zz> f( $h4xi% F4;~ΕfĄV,ݳW5oÊ0bjTh=giUԴ6= IԴȓg!{0xP} QUCB2T zӶ~TY_Aňn#씴U r]@lJC* J+߾lo=Uƒf)[ =/'t0r-(v˗EeV δ{ 'Ug _ڪe!r 6풝]"_Cw*o {s-YviR78,y,Lަԧ݂t)_Ed݂kuB+, *%z/DkCrLMJ9%o[G5Y`-;z'hK炈C0 d`8e`eC%#Ii@̊- $q?< ӅS"KX0[?#፭tO*ݑFU\,v4=:/[ՖyJ\UZ~(nx k}II sf˼;xlsUUV=6j&`u?czݦ{ܝ>C-l2b)-d]>y3惓fɋ?s)%,ӳe~5^E7 ,<8'q7 4WR;>eJb0fv-Y^VYh:#fmp\"YbxŸ?0mqk2nrU3o .h לO0p'+'"a]Y#ORW SYiS+dD_DfKĀga{oBi{ qK2.d2!QV :oRCAW7qMH}/Ϯz ժb O̴HCVRD"P^8 ᕶn4 fd0w. + endstream endobj 482 0 obj << /Length 503 /Filter /FlateDecode >> stream x}Sۊ0}Wцʫo*]H@޺}&rl4vHH8,%xM+Ln*Umjjs=~xtzd.'Q 8F@(>vDx~aq)sS/lc L!Wp̀=p|&,I&e0-45ۍ$o&7wxXRO./x PyS*1q6ʈTo2ݠpƖ.ÓOBsP]099oxqp%mle;Řq,DB~g09xL7ahe3ҴR܇=z㞬/kmNx~]G*bB]`[4 _:{GhI(gȈU:] SRQ2t!|jx4`|T m>D<g 4JM\IB)$JvQ?lSB˦mUw1 endstream endobj 478 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpipMUsg/Rbuild28274c9572c6/EBSeq/vignettes/EBSeq_Vignette-048.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 485 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 486 0 R/F2 487 0 R/F3 488 0 R>> /ExtGState << >>/ColorSpace << /sRGB 489 0 R >>>> /Length 7913 /Filter /FlateDecode >> stream x]ɮ$uW¥˰ـD$68}so W^ftĩN/w~۵K%k\\~Ͽ|;wu]~տɿ|w]_(}Σ_?~kO~ N]._Rwd9ttDkRtw O~): _]&bdR-/S6- ΌZЙ4 ]+Ԯ.+3_bvBPA\2j9\fΌy"ȍZ5& t/3 l= ]y.|q~wMo"s%b\VÞ_)ufnDZ$L忤Wi*k_WLMY>^ʟ_J/_.?.~ //{4OU=F?er:a/י&"zgIyx-X^x O xK*y|UxVx."CUYCЌ8(x ԇIU87mUZd;Y'P DUE@BUwXTuE=n|ЉLRd@eO^sz9tGmk9$AO+Ȟq%dӍ,/!zWywWy$InI^û8Si]¬@e|T^!2I_7Rl1bճg-YS-l=[Lz {9 {g!rgyk,ng9{֟Tփ^=ii.#n `_U)p܅>*-1YފV#QfLu ("/#|PI{B{ƦFm (iql>#t=c7$ 2DHs-*P^!13ppH gvAhʬ8㲗ԒD3h{$n&ڷ^(U/}g\Lȁ>-WƐ*3߽UĬw7Yf g^3-If6GY`,ԻH:5p;35m ^)0%SHG^7FM&}=cPpy܌]B'd*52Ӧ/ȫޖͤFݓ&JմpNf 'b`|1NYbU&*jX1#qK䬬GKW !j8n䕺"8 /ӫ7- 5Ms)?嚂 -FѠbԇkجgf!@ %-/\u"66R< :).q+ V $OT&/&P{]Q*(($PNՐ1AdSQ;m7zP2\wj$TNIa{]pnO6s>(_ܒ% 8EM]08j9+M-1/;+m7"//peg7] %MnJ=w~V3KY7hZ-Fyn1ʇF1[Q|ha3(Z4rS=N8(g+#(g껗-rbr8 g-rZb!g-"U}!uM*#'6Z3K8K\QIՐrVQʙՒr)OP@{3 ۗqD}ݤrxG$)grqn{:a©)">FgAþ85v%8Sl=8!a>z1xs(g:.gjS&bW' okN@+̄MQON ޜeYxT*xQ*î3<9SvhJN1T-=VAnVb&+jZ:e3DgRTC"פQFf ƏzYݓJ*kz27o%wj) ́.NN&'n){whzT,ҤP2EijsV 3t=b gT\`2J%r) cQCC\t(R"ZJA uPݶ孶V(Zn1ʇFh[Z[lS +N6+ؖNWF61S6ZlT[6[LllT[vn񈯟L~fTYWKa6K\Q0O`W/l\=`WO)^z ^&R/pKpA5iJ&FOz2EJO- 6FR~,07h}[ꓠ ݎ}nN\婧a .vPN!c,+[,j*zNJFRKV`/Qq)ISGnh'hh-#FS*QE36*+9B,I ^48xO%I$Z5xuxu՛X;XنeDXz8DCȬ#/ܰu0 :8Kd8"ʓSqKIpVuN gtE(t F N8( {uhS~)Bq3:i+K] A.j-%F:s|ŌoCNY>0baFw7sams̏ 2DNY?-";0+ZcpG;ZpG;ZpG;Z"qO}- B=R?7Ф~nt2oFyα8osKܣd~Os֍=AaM~9,DJOԹ hA$`JX#ƅ+%ϯ9?;x$ԩ %;vpФc|zE+e\S#;NLiH;i>˝JIo֠%69QbtRc a 34g5bg`hu+.-7|3{| =LWfaCEIa8*S^ fE!+| iDJ5R2ogy(a:bfXžIfL7|W-` 3G,|T2X` F2Ε BA,^B5rc533 :fͺTpG}g5 S_  f>f5>L?k'W*4[8Wf\U#$6fUk$ETq-%*2N0#" dHDFrK[U(k/W.̳qpƉU#8X}A \hdѤs6U3@92)Oj`bz6%!sy#:SM6P+m2Y;JLejjt֎Ҫ5Y;JXKg(c/WYQ,#_z>H_zdfw$/.`nlrUܠVڵKk[j]Zj]ÑJJUTݽMM91O&,EJR|ҕ2K]>ѓ크}:Q6HP7`* Y6E<ܢ)B@ːu@R$u7fET-U;i:z!޲$BG [!nW]\@Ԝ\5w I(+{4AÞAj`IJЌ[̩SkF-%ji)VK3Linh2k%MIPPpΜFhSGZ?(RĬ FXx'q>r'sUAtN@q8M@w(01Q$,>AoQHY8;٢氏Q9_;3r.N 4ZH GkdCCAUˬPiRLzBwVOFȢFMZH#9>'uA3h@c}7*,+?H)W̓,u˵Y&h궇,J*?R4ʟP$MYvJ&A*bUZI.]]<~Ur>9@-B^Yafڙ),U̓V[ c(7k_Sg^Kq{q'5xt!S-r\\ZFN<LrA auOE9z{cV!-cRضY\bՏ⮷~w%X-êU[bF*32AP-f{eol3-fO[̨߶Q?m1~bFŌm9xx$jʈɰ)qSk9)Wi\y e ù|Ō3>y%|RMC(W`N:yԢ& 4G`-nso~3NQ>E[Ni eaj 5PRЌ t(*.@LH/хMU ޺ Af H/r$gf ̉@'EbLo@[}I%k:*g t(*sfh}$tu+TMcLQ9q(Z{qqR0晽hEbT7YEusvi`ɦV@hV@h$],GF*`9r3=U+ִ@Xqù|6XIHkOʚweNyb닪 endstream endobj 491 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 494 0 obj << /Length 477 /Filter /FlateDecode >> stream xUSn0+xzhF&nMl9$l8.a@r8ǐ4]QZօ.DӋRB[YZ4;+6D-`\4-4l^B~Z2Spcd)X endstream endobj 479 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpipMUsg/Rbuild28274c9572c6/EBSeq/vignettes/EBSeq_Vignette-049.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 497 0 R /BBox [0 0 432 432] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 498 0 R/F3 499 0 R>> /ExtGState << >>/ColorSpace << /sRGB 500 0 R >>>> /Length 60459 /Filter /FlateDecode >> stream xK-;ze׿4]:|3Ցl.\ʲK\ {7WZyWs3x0I÷퟿ן~÷ۿ7ӿo_~||OӿQ?S+tmGV?>˷ӷ>~ҿQ|a||/[9 ?ßߧgQuJUڷWu_˟?HwoOO?oS(JoYo\V}[9r$\GWۣ\\˟ ?_2"9K[?G/ |?ؑ|иG0p懏z9-鼚0ק–QbaO3*Z0__Mo |dQ_)1I^ZL,Mer{:^|y`[ٗh^t*LoT6_V^fnk_ې(o|=7s[{3}ڛlj_f[ٛ, Llv+oFڗyH^fVkoffV({=оLj7sGY}ޗ98orofNiݼ*{99>W7sZ37sGˑi͜Q^^"7sZ2Lie/Z37Sm7SZ2;fNP{37sGYfNo洏27sZ37sGY{ٛ9y_,{=i͜66`ƗIsGx9mƗ9@_[؏[tYt=u׵oZ2/yrgd\~ȢKﳅ֓SG%SF~eޤȏ~K򺢎ΐc=oFZ?&']5+T<&2LƘ&y+ɱ.9C+R#[aV\#VVZB!ihNFhα3Lv=d6:E?w$5GW<^2LVMar,IV%2CdXd$3ǒdHJkH ɘ6I&@ $A $y`$lltqM8B$?l!; IU+#Ψdg䇤dgU%j%!AU=LRUFT5d&;U0٩ 1b{$YG$ٙƺHI1I?L20$c6&0J$Y$+&I`$ 5dfpdf,LI2}LI2΅i1NScdHJ;2L;M2ΔiI20yP3IL1!O<$@5$$Kj<33 IVjFL]r%qSJqd,;#I6sF]2#dtg$XHqd<#B/IC5LjarP zo$ d!4DHI6"FHr]`\׆arqd Idh &$K$Yi$ץu&+ d!\kƯEHI:HHA,KvI2A̴Kk*%2L%6TwK!Ir -Z253dvI2.I&%D$h$%ɃA$y.IKA$yJ4B+ZbdE!KN:BΐGvW5&=NKI-LNmarnv{\{SЇacv'tɁ3Ll䚑Z1u'K!IrH 뚡\$l )%D+&i$ՊIvldI6ldI6%ɘI6ldI6ldI6ldIUMr]\2LlVM2fjZ@q$IVM2&jJU, ɂ , ɂ , ɂ , ɂ ɘָ^W$qE$S_3uQԚILL2ff16些h$cbq2LL2$H2$HI"$y`$l 3%2LVLd$IVLd$IVLd$IVLdI\dI\dLId~dLId~dLId~a2$cn?M2$cn?M2c$3&I2c$3&I2c$3H2$H2$Hr0f~akmvuC?Lr05$\3?//9ar-$\$y`$LI<0̱.f\IX:89օrVLfd g#dkX&z$s,{ar$&[ؘlarbS&'&{$ɁIT3IL$IEg\H&Mr-"l9dBO$ךҳI5ڒ&ךK$֔Mc$;&IRI$L$1I $0I $e\+N/&VK\$ɵbk$׊ӋIn#$I\+N/&V^Lb$+&Ir˰QL$YL$Y1I$$ɂg\Q&֣^MrG}].YCZr$^Mr-OZz5ɵ$GO$3I2$3I2$3&I2c$$L$Lk$j՛In6j՛IjL2VfZ5ժa2fx5ūg<0IJ&LRIkI$ג:I%m7IkI$@IrKL҅+HK%uu.WG{v qXa87y,!WG#GG{#Vؑ#ɇ,arc].9C0V=C0= ȑ$87&'] IHrt$] ɵbk$ k$ׂ;Iw2Lw\(&QLrKJ$QLTd $Iv@Jt$;] NHr䖘\K\+I|&TZg2ɵdk)$ .d $YIn& ] BH $>In&>I}f\+&e\+&VMr3ar3Zg6LHRI.d $I*I2Lt$] ɐ$>I}\+,&YLRZg1ɵbk)$$VYLr쳘g2Lt$@]Yb.If|w>2A\+~ZVY#K~LZg˵IUԌ{2c)"4R>k$Uar>atɉgsT1_]N@.3InՅfk)$=k$ k)$=I{o=I*IrݳZg3Ɂgx&I%Iv@$L$et$;I2]u$cu3$IrȼO 5%k;X6]@߿ {}&w_߷ 縭\KG# ?៾߷t} յ~dZ10^<(Ô 3L|1# 0/ؽ~/x"~b'֏_a|7|6wo~~υF\viڏ}7~aq$RAG ~Acs DѺ* 4`%=;^5v$(O` ƛȠ:3T%QZ:NQfp>ڃ^(xXy:l; 4qh$`> h=xLZxTX<Kr xVeԥ$`ƛ$Rm0S7IGI`bb?3eI1硆4аbڲb{g1!t=fLx1[7<Oq.=n$RPț6@I*t$G7Y&#d}䛬|#>=|c};NrF}U $p$/Oj@nFOCD^EC gXգ_( {ԭ_\OG~=/ɷ[ٓD(4ϟDIBm{6ϧD{_zOAIj=Gm|lO!b{B|#l7۞ #DDfd50&tLu}lO==l|#_֣n jm_9psli{`+N }?؄P@>P/x].T狱A?/Ej0:d>|4ͷ>2?Mm!ߦ@/ɗjoVoV'j[C~|8͗4_/Ne~;͗4_gOe;7(|~7|Pfofo֏x o&o|)tO'l]q=Ij$`O>&C?{|o\Oo7Ié?XaƩ?h7b&e5蠄tj< #ci`}.](oj< fOOc #ߡ?#ߡ?#ߡ?iB' jX='|c>'IxD6a#hHS i#m $55'bkI5J?쏨А+2%P LIx]S^р@b|c`qMh_MM:p$#9ikCCx;<t(mMDo\bq} =54dn7Sm) [5Odfo$Sru5߸~s)ɹpOFJUjJ'|zBMo\OH D^4VҦ?gg- ?Roo\__4 QI]SUFJIo5fGCC0Ϧ=48gOB:Y/#q=[/'Fn- ҭɷr}Y\lCh1W]=eUѢ]eu⮒Ф+'J-Mܫ_E ^̍-*糾 zx=3XKS>wY!XK(X F=OL^'YZrG i*w/7bm kEbu|B*VEFJ5ιXjz4_wNZ:ecm JȲ"2쯐?HOLVQh}h&4uaM)hY]>iY -3/6GK/:o\J8Z|PhZ[Cjh#8wMq}44~|eii_qZ|&UKs&߸^?Ks։5Yo\/M!륹1[, "oOKsY+ˢG7XH5L¸~J :|in.SP;*47oذ470>4~/|&a!E70>4eVY 3ř%5~@h(q}5I hR\3+J6mfliIldZ:ZYSg-謪S糖uf_ig[ﰿ5+,oX$Ş55ܳ|5䳂}Y ?Kj;llib}'-}C]@[z<;m;-a.- mkhqhz4`4+/6K -\mCCHhkP*ZLp |M\mC@KK4+1mkiWfz3PD6qkp_\m.&#r=ш =DO 5>5fKCznMo\>40S}>kqjS Omsu4ع[mioݎO[FoKaƀ4>4'ع AZd]R@  ܉ݸ; 7PNG[ ;/۞Oz֐:'.4TE_n2ߑ8^^#2/7YyQqy"8&e>xY;wo)š]ob2~x?L[2}2owÐ2ت<ލBj(_Fӡ_קLe pQ87 ~υ/_y W4^o~υF̯iy~υ/iU7 nw?.2 npǣz~oy NGa?,}7/#wC|7O~\:ss?*|7.wC|7wC2oxN#5iqB_#d& Wy0I#t\]-8M}.ՋwI; פ]Xk.)5i|7t᰼!}> פ65iCpMf&xqpwFzN4-݃sX+_Ay 05ipMsM\92\vM]p{FMl7Y7Z>O 35=7BRY qs=: 7=MW8n>&<2.Yt|]i\RVrM&KGzRr}s)K=\7Ǿ1L~rMP澹ݹ?Gɥ=QKyi{p)å=q~ͥ 2C\p)å{<\p)åly<\?}s)åo.emj8OPߘR/+o?xC\O&.7euMGa}{X_ ?a}pO냛xZ&7>RNKx\Yp=.%{s)cK}s)>:7񿹔]wgk=6W~~Wo~m_O/|kQΟj?us?:٫'b[|o~O7W]r't7Y?rUMO/C5_ևf|9\̗/R7es)OۃM뵾M!~^z8o.?p)r\Jͥ\JֳͥY~87}s)97v#n{K}s)o=e>\f{zȷ6KȷVK\ e;rMߓk45i|?2 -Oȗdo}G|o}|U}/W7>OeZjU柹 |4}=l_U}/W5>\&?n7}/Wھ\cs)~\Jͥd\JG6씛R2m.}nЏ\UU}/WG~w|U}!WU?rUqkI~z]Iq=n,פUկ\UUկ\UU՟\U?=G'pMjGUmjU Wf5\Մzz7Kyܩ?j___sSp~α5ɮ?K W\լrUue=\J֣ͥ%ߡ_ݚ|~W~W~|~ɷ|Y6v4^m.%R^m.%R^m.%R^m.C)hm%ߦTKMrU+WU-WUrUOU\Y ,niKДW4672ֳͥL ,NiKpJOE)])ss)~ǍSR>t-s)cK\yn.C8yn.e3orM.~ck45ivf&|~7|&ߤM'ߤP ,hkrr?iGlj+|c=|&XrMo27ԿO/\~_~.ک_h~ᢡ72K&pD\8n pC\yn.CSr?:z972˹SpNw_w_~~~_~_g\X?R>4҄&XORz:72ӹ[\XORz:7_p=~湹]w7gKthR:7o<72׹ͥ]oss)Yo7vs)Yo7_p?/Sr?/Sc\JKg.RT8|p) ΥpM*|>IM\Ko?r)\J˥Կ\ʭo|>|c}?\ʭ)j -PgMKޟ.eG˥cC˥j/R-ȥ?r)OIp&CޟKД75NJKYY˥j&\CݟS q7&`?7rk=G.RRG.RkqY15{E_Mqpb?ܣ4DŽKR 7M?rĭ&R?\)R7ͥn≖8pZnp;ZnbSMh[q?;CCpD#7Qr\J6ͥZnbQMh`s)&_6ͥ`s)\ʇh&hMrrϝx;7qĥo M\~7nq}\l.%㉛xiE 71&&u{r5BCErCh&Gn&&џͥ`s)|>\J64r}\l.%KĢh&_n?&C!?r}\l.C!,hY 0=4~\S o u{R8哾q/=n¥_n&~W.ou᢭냥V4\u=4ŒC㇆C|¼wm ?r/OrgMWS;OdP;p&ZPh~[kh~U ׯeu{;OCr/Or/Orr/Or//n.eOor \rrIO\,y_-\?%\sJ^7:+ׯ\_L_c_WJ~/dt|}F/ԏ_^wBO^/HO\x~_wq(~3ׯ۹~q{g>u@oW/zE//B!_<}x8S"籁 ͿBB x)Kx)|,C6LK;fˣ=~cpϰ{5uܫVgFSgkSᳬWYeoBs%cʋ$ /)Y^[5,/#^n /^ؿç OoB2}7_u|Yfš_38nwpn ߌBv08(|:}>8|.|}&/%kwcU!8 ލ< ?w# jr!x/|7}/M~Ɵ\nnƟO\n ڏ ex3ʫ—*<_??~L@ ßB@<>MUn}yۑ}4sn IpФ iH@#A (_o? eadE߃QH#,GZ{Կ{bck<}Zcx}5<K^WՍ Hk}o>@i|Z4>]:;#3A[4j=heX<~xH8҇:wgBk),ZvC룥tHk7=DC'=G?~-zd =2;Gfr葧+_v#+ nw 򥣜G{xOk4vS_:voR|j-WO>sfΙ:g9%ca{ؾtNۇ#v?ÿ)o3't99=tsv{} ?߷/p~H;>؝t H;mL n"} tx<ӡ_㡟v~ {~c>n"}#Ge7D>nKC?z"}E#KҔWud$MOdoxMAlllq=2T񘥟`#yeXzG~Zߝ.[6UoOGt٦A][tn}eA,HeZm>2Y@-G㹘o>GȷZV#b}[|o~oq#^7W#Q̗_̗_͗_7oLjǩa}1O /J?%#ZOO~zu/t٩_K~.; ]mzoU_ΟI~8ڦ[@エެOm{_zKmKɷYމk[|o5Oo|9ߺ͗/_ Ͽn7[?f'l䛭|/c7d䛬|Yzm>u=|'ɗ/0_!kH?eO9_SW^랯C,.;,ې.;,.;N.;O3 [?ta]vtnr=7r>Oe}4߸>=6'_iɗs/4f{G4jȷVCȷڟ~o=-Gr{/i\oϛt|Yz;|pn:o=MG7&ۓl{l|#==lO:jo7yH?Bt"}Ȥ#Ѝ!}~:m=1MG=ȶ'F]6##Ў/-JGҦ#'ud&D"}q>Hv\@;.G_|o=s#Ў}W)Hv\@;.G#ЎhE"}q>79o?3o7G/~c>Hv\@;.G#ЎhǾv\@;tdۗlґ/f'dl|%dґY~c~eӑuY7'#ЎEHs~*l{>tN"}蜧CEGUtdۗlґ/iOg>S櫺U~#gueOS*J?t~ ?#'t ?ɷ>v'nm|KG}_:o}'#o\?fo|ڦ#gtC mDo}Oɷ>V'jґڰo}-Ow|~ȷ>'߸>R2ue_/_7_nۦG2?nz$GȑC:蜧~s}齶n4"}8?S?9C眶stΩS?{}_+}8_B)ΗS:'4_i\Mek{'Zz~|~ȷ>v'_vHՏ^HՏ^ۗky/iq?*}8;{ZzoWCmhU~~|/!ߢޫޫ;w[s#{E"}zo>H2KS~70ߤޫU~~7Gz~:t^=C~Gz~d1J[@u"}n97=2s#c=7=2s#OHՏ^HȩS?#~:[@9=rGz~zd̿GOrnzdG||nzd̿G{nzd̿G1So4ܥovoG#nhEcμ.!ߦYt"}m>ͶH^[?G"}zm>viCU?[CU?׻G#>HF[@-GѺTm>}v5KߘH-G#f tYwJ]rKߤ..7zl>"=ͷc KG=C|ۦ65tي.[c3ZlR@CcHM<}Se']V?e#]V?~M@ߛ7}oG2oz$G2oz$G2oz$G2oz$yGs#~w|~wG~G~ȷ|7=|ȷ|7=}#7=}#7=}#7=}#χ6oӏSH?ՏSH?ՏSH?ՏӢUOGUO'4mz$G2oz$|#N i}Di>"ML\?O#T?O#T?O#T?|?7|7nNe?7fӤ~zɗ4_|Oe?_?='TO'TF]_Ch~!=yz٩e~B4:牖99Z:gW5c#_M\=6=r:t?Ω?Ω?Ω?#ߡ?#6=(S ssv5tΆY9 Z:gVȦmΩvoKKԏtNHԏt΄Ω?#ߪ?o#kWCljh-sftΤyɷjhME[GE[GE9'S9GYGYvK.鑹Y5ˌ&ߜ.S =rG5Ȏ&ߤ?M#ߤ?M!ߤyU=?z䉖9#ZzdWClhU}G^N\F4EI_!???6=a#Y6=I/c}x#ZzdUC,hY =2G|ȷ|ȷ|ȷ|~GGz~G~鑬͗a#Y6=a#Y6=a#Y6=O|ȷ|ȷ|OOMd}HևMd}HևMd}Xw7tåG~G~^4'P 'P '0mz$æG>lz$æG>lz$4_ևMd=HփM<#P? Ƨ~ÝCS?N4wꏯO-p-pnoz@R3Opt8S:)}Zn~M5=Iӏ=Hӏ=H3{M+􍾷y]w1RK 6Y 1C Cz'C.s"/784bq8dkߓ~Y ,+^x*\3^U o5P^͵^x̴~X>+yUi9O`V]rsrw=lnsr&[ݭwî嘷xQw++[2|\2 _'d,{ܺq!wxܗ1w+{3ڗ!T&uڏ=~J@O_ܭ͈oF\2N׃ׅst&ߌfw#q}=yu\^&e2n~sOe2BEٛ7neoȯc_SY{ /vv?p=.~qvxe|3Í7mR/%xemmΧ/-r>S\>1WUn<[osfpX9nșH >Ԝy9.(X/(-ŸOWkC%]>JqSK&<L#ғF]r(vJ2}Oǟk[%]|.֞KvJ$$zd<].dr+=xx#Iy(G|AYs$lJb%Job%'=ZI֝ƌ{NW|W\HzмD|s@K&aؕdyj$$_r$0(`I~SKFiD|T\2SHsK`($c% a2 Fx<\#IvsWJ`$KL-IJEג$gFKRZFݕ$x/& =a2Fl$.a2I4.y` 6ΰѵHҩElT/E[$6\vIZII1>]Vl)O$K6jaQUx"I6GK&d,;d& 0`$V/ɏϰ/uI_dI$c$:s/ɏW~ꑤz$ޥI5G4ꑤ>%Jm@=tO$#IE`\&?a3LIeDnY?//'G$ޔIedG$c&i$3 d!L4DH2I4D AC$$c%iJpoTW;F%ױdB%c_%;҂< hqs@kqsXZ$Եǹ$5$ybJj$J=K6d|RJg\ױſdV-Vqs &j&٩$5Ѩ$5dflLq5LI2VfIR3IVj&B$']3B$']78IIM2Nn u\WPeɆ I2S3I9M2Q3I9M2Q3I&@ruLL] ɃI $yP3It$ B+4Ӓy!WZ\[by% =C809uo&]ar.09hhAf|NH2NiqNvd\Nvd,$cY&h$}J&hD&Yi$&Yi$+] JC$YIV"BHI@H2'O48O48O48O4Dq:&h$t>M2I&"DC$h$ AC$yI4Dqv&yIdEJsOsNsMsLs~D5=$xm{IC% MacJG}} i{'{dZBZ܏H>Z':8! @ % ֹR/$d=`8sȖL!SdL$^MIDQMIv"u߫I6"ɘ(I6"FC$ I6"FC$Yi$+ d$E3uЛIƼLr]3f1o4$ch&Yh$ d!4D1o44DH2A4D1o4L4DH2AL4D1otyd$c&ƺ#Yr$ɘ7I4D zջI4{$ s7z$=4\$ $aauq@_uq _uq2F$^uqxG$ s䪏H{V}D:8y{^vqYuqWI$; d!idd!4Dd!lt$ d!lt$cޘ&$c&$c&4ɸޘ&4JC$Yi$c&Yh$c&Yh$ d$Yh$ d!4Dd!\w"4ɘFN$c9M2$םH?M2Mג4DH2$"ɘFN=QL2fj13Td $cf&3C5ɘI6"FC$DF5FC$SA5FC$SA5JC$YIV"JHI@HЅ3lTL2f14dL$c*h&SA3LC$⫾%i$5X,K&"8I&j&DH2Q3I&@5AH $yIt$&n.K'q!o,c,YCmX"_[X.'{Ml^zd Q3,0TF S_ =L0䠡&]arP .aS6X8Kv$ &&3aqvlLqvlLqv~df~_ILI,LIP3Ij&u 0I ?48I;M2iI2S3I&j&D$$&$5z8 %j&ɃIf<$j^I3dgט$;Ik$pqFl뒱$j_|1HE_d8#IX3Y1Hm`$6Hm`}-y d&;50I+l&1IIr0ɵ$I7\Kj#_K&d\']_Kd\k0<[(vVZϙ-dl${lf %E3[(٘%[(NI+{];[:#B 3=r7Y0#Ș5XCcPM8vZS ^j>Uå1uGG]A럂9$R<+߹R,,Z-+淳NyoR).bC/OS{_`~ 'ط_<k*l*iSiϸs|xߐS/XvEڻ)(;?s㋦M]IWS[ @(E)pCjgRʨO *E"F/,6 I>[ \R_HU) >Ѿe|Ḥlg&I;_`.ͯ2/~ Ǘc [Ipb?롟U_c1_w[cGco//"~X?/ {P3Y(C޸j51Cq|P|mLfJP3Yc 6~I83i(opϬs}[F?kA 1o(á?[g 18Am 0߆6!O_߆6!xo6xk\R~o,J_pai}+Ic 4DQd_L!2o=6|lI!r'?C'cm [}mؾcK@"2ۭ̞'"Ub~ioz /ķݷ'X(lm{?xd a04jx9 F?l B~F$6loؾ0pHy Rxl G$*,ao2 Oē="xzHn;i6Du@x` /5 Dj#xH$ D-߶=JB$KD/I'K;d AQFy| ڴa([g#{Ļ'Z"Q`K' +S [7Z0!Um7Z1^z2(xԎx 0@P.]C/[/[=eMٰPfbRz ZVA¡g Wvp\E,ȅC".dlKǃ?|-|ͦdfC͸~p3sn 8 qnY#a⚿G>⪿W=!"ae=fߣo|7{=^}c>Q.&,7Ta%0B6ܳY|6/lgchw}6Y7>guZ0?hrUUO ʕ7 W빫/cW߸kЗ=^\Ҏxɧї<^\-{y<^M˗G<.xs/cAM2b<^\?ģ?!5lQsE;"{97v<^\92<896ܹ% lsϝ=ϩǝ>\,!ʏ8_tk0R;8?BK.Cg(|[eٿ0_|#?y>ʆl^r!k?DB$z?LB%l/Kojq}#QO"<zoVG |$ER(\S}8\T}H\U'ajGYf58zS̞y>Aߤ?Y{=I|O^XaA-m{S^ǖ״?{7eO^Ŗ?Pg%lO#O"<|x6<gq? H_o}a8L@ #_C5|1ְOO_ȧ?|E;mC O,O0з}d󅿃9q8?8#:10OFOJON_Ҏx,>ӟ> ӟ>& ߁F>~A`qq11t>m}ܧ?}ݧ?}'Owmvӟ ?LSB>/ )y!߇J )E$."ҟ?ӟ@Iԟ@?)?9?IH6tk~`[`׾XiןD@_C߮? ? ?Cߦ?m ??jrX[/H~9EnWE[E'+P'-PYK~q?8Ŭ??%#/H~9 Fˁ0_2^CK'@0cKԟAA[3glOOgLacSp'ܟ26:8-O0i[/K|?Pxu+xap]]']Pˍ|rPMd^d^1 ^yO!6F>XUd }#m,C߸_X􇾱XA߬?͞fo|7΃p11?@#Cq<p#r11}#r􇾑?9^CAKʖlT|`-+[?pec~Y[䏙EY[܏,-~dfp/f7.2EY Cov}o|з?6\o=/1|$_# c#@/`/+䇃~,o|з?f}o|7?f}b$P b $p b$ / /G_A^/!/t<Pga-vSw<qAM6ey79|q 8ey7qq :kIo$=lS{"ިIzo8a90IQY̦ѷ?6Gf}r}w|\}\}їp#oz>b}/GfGl~7?&GߤGHr= x0I$~K{IzRҸ^e[ sn/йiP9M<70^sa >71pIێx:)ˏwz2r=Ne}o?mƋxѷ/X?Gj[}o?-̟9aN2_$גu7&Cd}e{^e0[nep.Li^%.0ݟ.quq.1K`ݰ?u@uY׍h]_%.G%0'+A.xзVAj<[}xf%GQOx_I}cJ=}ǣou87!U^ǣ{yd@hxvz`+d< \PYL`v ?PMvgVX=?q'/зh|=f/50~_ԗR7*ر\_zXN ?a"=A]m$hK0o ]V=4e .N|1SQ~ 2U |P>XУ Y0d]/sO˟=ZSTsT_YO^_]_`~u"<}*/dA/^c,[dkwɂyds ~Ǭ￸ȂsyO_}E}Z6cLר*>MGc_o&Q0G`Q.;%PbҺ~i}Ĵ~oFؗ7ӽ(zi:ĈA/:FAʧ d"C{H?M##v:Ǐx?4}?c0^[?k8g֣0_1 _ZgV?ά |q:Jcw߆6 ʧϣ/1 _Z c{;mՄ'm-Яp~0|m"A mopsX?[g׏AYm c%YU~} m ocp}M ~xL#C/3 ;rit^x:zI:jAC?OӶt*C/I|望MIKMe%݄z4mMhhC7O}e%GnO$vd%|2n DN^"-gn)}˦hC/Ǿc^~^҆vKKjҾV^F~3|]7zt&5B]t@h:;otl%iGCװzIFe;tvzUd%(赤OFՎjqaN'ajC?`]Kxmh :~{7^ۢ-Tmh ~u,:B^hۦSݽ}^^3twB/P; K/Ft}R@^]`og%ob^W>t'%?Y=?@x<Gb=}z^I}ǣoxM)kS]T{<^|=ܪʧz~b߫.e%IFA:>K/iO>lߊxQ}Zz YzIYzIs|}j,Y;G?зVCj[}E}狾17fC_{U|iS>ї_՗_՗_7U?lz{5l%룪eT.x]?V7^cϨOuTճVz Yz Yz YzI57c>yUfBS}F\on-\M}S}SKxѷy>Է?6}/gW_Ϯao-Tgm/leշ}/oWߢ?=C߬?C߬?C߬?I %}o*>ԗq'6r>^CK{QtS?cKߠ=kSI[Tǒ/iu,/bVǒ?iu,:|j,OX=T_奄]E߮ѷ}狾M䛥ܯ.%,u/g/K}GK}GK}ѷ}ѷ}ѷ}=K/)槥EVѷ}KFߢqo/%Tg%%,,,j]nYz 9YzIe\Mz YzI~Fz Yz YzIFz Yz YzI~g\{}#ߍq#,,,,gK2Oz Yz ҮߨV_Q;SnK/:a7PdL^BFnVG|E}Nz fUz _KKKK2Vz }#J/7-ƃxзAb<[}P=_}#㪾㪾㪾㪾^^U}U}U}P=ުy|l~ꛌ}U}o2qd%|]2>}M}TzI67%7%7%7%~KܯJ/If2P}nƇvCn|ۍ}/zI2%%%%%%%k%`o3>mƇзVCj|[}M!K/IC}o܏K/IS}2?Le~0՗a/T_懩S}o6>Ƈ7fCl|}I0>ƇЗK/b/š0_,e8拥ǖC\x?Ex2^}/C&t`|b>^]"K/.\'KMlM|',|"E^"K/O@KSd%d"K/Vwt}Yd%,Ez@K.%.M{Fߘ_fRߘ_@64зv㓮a|5Oo7>mƇз6㓮a|˓^˓^kdlI/I/ffI/ffI/I/ƋзVCj|5}o1>-Ƈз|||||}cE}cyKbE}cyKbE}o6v'$/&Cd|蛌}o2>MƇ7$iC/#ޘoooofUߘon=^m%EJ/1;$K^bKWz$%7e|+?^,m%ϡ0z ϡ0z ^ZJ~KUh,]c_x0>}V}m%?%xw/E_C/as%?^s%?^s%?^՗Ko3>mƇз6c|aO:I1>mƇЗKo2z ͡0z ͡0 e|3a6Eb[}o1^-Ƌxѷ/}/T_曩7S}o2Le|3՗f/͔|37&Cd|蛌}o2>MƇ2>}/CЗf/R_u;[N҆saC/a~9C/a~Y/,㫴k7:O~KAY'}ti|aAfߢ}'m;Ez _{wb>^Y%!P^N!tmnƇзvCn|wb^~7%Ј6!:Fߘ?j!zQ^EYzWRj<ҍ}H72Fƃxзt#nd|ҍ"1?1?H/7%zR^hJYz _CKܿ-#f%ЖMo+o6~1=q1e%|M1K/q@kKb^i۴'75|1K/7I^)K/{%ПK/ =СvxG(efMg7oˬyg~?C߮?%MC_/6/jo6}зy>[A_R_R_tb[hny--7?fGl}or䏥7?&A_R}UK}w~( vM\.ot=ulrz/%]n_庤\tiA]ntiA/tB/tB]G<ߨ*W./툷  iC+<}F[ѷ}oIofo&ߣe{^?Vׯv}ciC`Sz_.ޗkSss}@?C+=1X?X+o}K 5/v>}E} /^}ڷ_<}eO+}+6#wL}Eo>J +woH{mE_}E_Dd_<#KXʁc.k|?6-{8voK x)QyڷGw[ +=/t7 NW;ߡl/g41wݓSS +Q1x?wؚiNo\/2F×w"ֽ~qT2~ g/TƏxo_U1Z?R1_1D2~ [~nN緡8 ב8c$;:gL+87/oM:(mopbe~E#c[׏1xW7~|ۧCmo#p}FO?hmoCp}yߒO~׏x,S~?χ7~^ xo2U> XDz}ovv!xo2_2tO=IxI8o;KFh}3}v _Ԗ׵/*2^_ 6v./yכCE "px1Td*2^` m&҆37O/06&(J2qxTd_/0M^< H02`,ѓ~/\26̟ cgڛ6̟]` 0^a </C)O|7~v}ѷ}'B>9d_r/䗪x!TmGVѷ}ѷ}~xƃU[U[}o? B:x2^_B:WS_WS߸M}g0t}o6G_[Sl<蛍}o2:ƃx7&A__W߸_͇]}ɇ0t6 -CghGǮq-%/^Ƈe<2tG1:a eEd Ca|;}0>Ƈз o/0^ׇB>X>/x! {/0^Ff|2t}o3>mƇз6Cf|2tOo5>:a/% 0^B?azxa>8xa>X[}o1>-Ƈз}o1^:+Cx7/|1/a/0|6!Oçx0.l:KFߘOdy蛌}o2^MƋFd蛌We{/|3|#~- h7OF߸</1=/1Mo0~ʓ񲌷7Ma'eo1ʓwܘ?x #02Ȉj~T&7@xjf:džדדדדד27</ Ta2WFѱѷ?6d6d;_F(iT0:62?O=62_Oe>멾χoLd0_K7vc*'io7~ƏO\*OK|З0^iTZԗ{/Rc/R_量0e@emP (Gj{lV}o5~PdžG "Sre@%m⹰7uo2^6̥-kÀj2_Աa@y>2_ˀ:6f}ˀ2;xUd*2^`@=wTiOJ{lPKƈ*2^`D/06˛-e2}Ao2~PVߧ jjÀ2|77{/0 *c&ބ1?/e@ c3ey>0^ڍӆixY M6cj۴7zcVm0^b_E}烾w-m 0~ƏOfUOUߘWUߘWUߘW=cJ2.mU }6}c_U}c_U}:6-GƖ#cel-m[6Gf󽌗 ckj26-cēel%m/;ckՖ5al-㗱e2ely>2_ƖÀƏO806-c0:2we~2߻>m6㗱e2_ֱal?fGl蛍}A_C}al-l}/P_C}χޘ`e e>ꛌݘ`Et>a?^Əe{/>m#S}20 C|(b2")͆Qh 3af2̌Wٱa?i0(/,evi0 ,a0#^0+k0Z/ ì0+k0^f+0̌}0~f+xe Gi޴aUlq.񩍁VK}[K}6 -lj0ی}o3^mƋxi\3~mƋxѷ/ֈ7oڴ7mk}6̵5kߘkJ[/s^I}Ԇf[Y1^- sxѷ/Eb蛍}ox siGbo.o2 #.aˈa-lMS;MƋx78Ed2OFɈ3>}/CdE|E} #jÈ+ozÈKuaˈ[0& #xe8g|vヱ2>q'#d8ヱ5#>o0Uel͢ΌhO0.lqK;}ЎxGFa<;}0ìvAn<ۍ}zo7>ƷnLz5e>jԗ0ci|ԗ/MS_曦xз6Aj<ԷVAj<[}o5|ƃE|՗/EW_~|E_F_惮]}f||Yoҿ >o mӿ >/|/{Ԇ7e5툗|=da_`đqK0ȷCF??q7#nF?qOo|9e/ >76oLm auG_Tn | m6Gfی}ST47Tߪ>KYKYKYR_R_Rb[}o?Ƈ\K}[<}o2Mǣ{韊e+˗=r*uCav2KY/ʟb`8,CS./ggܰOLXh?5zu %xo*#_ְNkl:}?F郭X剹؅J¶+-inEC}M "h72y+uk3i[z=]ֳue[z[[zr6/yцqd>0_Ƒj'R޿%9̮:ݩ?{cvQ[ 7XwF[[%Uȏms|jwT77nE&ƛdv||SzS~MgzU[{izvjm?=>n]7nݗ=v e?QN}xor4}T}l4u}lˍ߻|ZSכXmXOorB_W^0G=azݚG߇=cQc7}[}~}lݚ>9kucw_>^a5GzijfyXjɿ7}X}VKvQ5G->o? jZaIyTQuq"ۯx<;8oU]{9|"+=<9GiRj.L^wdSm B#q:{ u뮓TAa5ރʷ 7uXuףzPRw|" }|Yg7}ݛ};{ftvJM<LknCgOi%q/ٯXwyfgw_T޸vv ۪&nGgQݚwv]/S7礳[% u3W;3v!fw_tw%M=ljsn|Yǻ]z}S*l|'K.o070q[vnXNު}3t߫mݷbֵNkove^uم2}7vߡl$NȞv;v9e^X7լbRv<ԭº(o6K(o6o c}vvoM|@%#+wdX,ؑeYܑ%YB,/4,mhl?x@MCʻ]OOwXvug0X7Ц<||nM%X`/,޺\W6¦C tX{mڑU^;G:ThoP;f:YChEfh͎fhvq\/" .)⸇fp83KWN}_ݻB:,sW/zhVÉqiG9.:Y\{SW^;?#kvdq~4hY%Ь=4+x QfY{hgYωfqO4l:,ff1&D f^B^B^B^B^B^ArÓnC*Îgˮ0po]>{a]3cpoXCެa]S!]]/֡]3î}iVVw]_ό]Eaս5Cb"a{[jV5z fBJdY%Ьr~uBڅf{JlB=ۅfަ]h`l׬]h34e" 2f>CDBDY,gh343434۹%4fKh#f h{Si:CXu@:Cj{z]ءx0.^tx]moй hb:Vuԭ[->O:zV~vVuxdfi{h2<25CFԡYЬuhVslCJԡYChV:4+x+hXA 4+Y\q+hejڬhעmSuxI-Бa!X@Bj{b(wG-Z]~סX.jC.jK:Q[6;O@7b]:PudwtA-PZC=fq74_kh~afqM74xB5hwd"M46,Dn2Cg2C,=4KxC,/4Kmh%f YdfEv[hlY䳅fq,۾m ": jQ/jTK]xc@t+FtuU}95j{xQc@54Ҩ:>ը{C0b@ ڑ|6b@s(iT;X`lEҙp=[KiT= BƅfY{hufY_h9Ь=4x:C}pFHhHhHh;W v> *BFBЬ=4x*CЬ/4l$4+x Cf`#پ?o5jGFNlglglglg[5vfY_h3X|fW͓f Y_h%64KxC Yپ#c&ƣ`1F(hs(hsƞwdcnTX&>ЌZtVx::lVxw9krYר6Ш5ҘhXPs [8/4{|p:NB+|:ׂgVWu@+|7? -χfP?5v(R*Q⚎O?5+<řW_zj|/x:U<ƷgR0l :}f>CFYl_3YЬghgЬghV34U *}f8CBٞgF}͌f{G #gF}ǛZxf4+nf4wѦnə,gh,Yh,4KD]]D]D]D]DЌsl읜`$5읜`ܻ;{'g_:nTX5S[3|97>;ڑ bi;A,mG6:Y;YYB9f1+hV4wٞefE=̊fsV4+$>hV8.4۳Ŭh9.4e DžfBqY"B ]C1>ؓ8^cOul;`w3&&5Xc0>u_ˌ%5vͽni;s;fإ77|v;f5Fj|p64JGbތu{f.u{2XO]Pk R?yGHcfP?!=׬?cgcO?@ ? @B~;Rw!@)vKy ^0@-i|ۦӎli|ǧN;3(@ Jc}qeo d8ڳ=l{i>}ig|Qw@  $擢JJe+qyRv^ڝZLIQQpOQgLI}O7^k=)/GУo-?u;Իk0>VR{m{>ع>c'Q>^,+XGC־I>׶σ#*#1w496|8}:ܽ}Ƚt>r3xrY>m>e"}dp3jrxoou{om>Yep>f- jx{mI}826KcHIˀ#&/m/}Ko}2ᶮ7 zoqg{5}m}Io}ݢ3РUs*olRԥO*P0~^mdh?,OQ>6ۆ5u>çw) RT(Qx? B<`fu2A6ST?!GĜrynksҭݺΦW'jٟ:8Q>JUʆī@^%ե^]: Օ47iykӥ]~Vwvn3ZfR_S NU/j V f0  U  ?V*8HX +{F8L8LJqEIwEIG%X+5X+Xˤb 3XkcMd,. XèZ*Xݨuxcu (Y$YMGȪ: H_JV-wCI %K %JJf %dždcCIyC䱡屡 dž'جZAZ tW,fͳ*5YdQYc5<6Z ZcE*D/D{lPHbph5 KFǪJVOa 3 dc)dRQQ7$ LPdMs f(I &82 %]ɮBd <^,ERɁgJ^veWZveWb" ښ3H[$GiWۚvaWvaWvĭaWv/]tUN]״tM{B״@tM{;iksp=ko9wquQ]quY]qE~gR*.emH)e2 qKQ0f(9lJƬJ);[RKvKQ/-Ežl%R(BƢ^B[ YgwS(R\Ҭv_[}o).-D.~9W&A&{%c> {f>V\Q/ .EH)=|xpJQ/.gP^1yu^\B%{\E{qZ:*OP\ҽ=R+k3(9O?yq :ObzbS\ꂾ (P_\b)݅}qJi1ɥ${1Qr)*eɥ&_\ P8=y9WrKQFN\d.ŝsO^KqOy Kq/i.E鿨/5ǻyi>is){bys)BR$=r.LüARPzow\ ܹHs)HRf %/J>b,~n֪=LtIf0&&Х.lơK8"5px*.uaSG7]R¦.uAaSG<.#av~uK #3 ;./ 0,ta$ aL2úU'w3iC{7@]Ø:u H'xԥKtQNoե HKUx}cե{7Z] |OեKAXuu)2R@nԺu)82;.I@r6]Rե 42Q2K<\f] @*ΰKh]l6wdumsr] eVY(y] %/1kЬ`Ve4V4EFR"# eq3EF˖~!70\S oH˦~50_Hy<4d k7\C"#1!Ȍ%Ɍ$ʌK0܋{!͌$ά7 %Hͺ~CɦP7l %~{J6Mdo(Ym.J7#A7#A7## 8"%%,nz4,Oh6%P7)0 do(J=ij(Jfq`:J:J=_;&$.-na~CKPo(y7J^@S-j7Tq4-j7TKؐFFFFFFpb]6MB/9‘똀@| C;Х!~!y$LHPHPH"ҸeFFF(IFJ6[V _iKCZZ/9 %~KCfZ 44nĦ䦑q$9$:$;$<-\9_s %HK~'؟p=aJ&'8A% ÌUn`ɰs\"#MjDG"Ֆ~ut.kÐKSQ"MjSA:  y Q"M k)2"M!k9SZM9kP2nP(35MGdCɦP(l`(JV %#Lks9SZ)z-9SZ$)}(3EGdMlEGd$)-7: %'JfYGdA(L:ZҔ )-̔Ye d)-9miZtƭ`q 3: %cr:)@s88ynhnnnq1-kC`{䥣Pk_ۥPk_ۥP 9RSԲ`H-O! RsK^EEAeP=S2#"ڵ?RJptP]FjمpbKyabyˋ)-鍛QoCap1 =S35-9 琸dsd: }z$Yۥ(y9J^z_o_o_o_oLXodsd)W%$3T \3L3=Gɢ^71$ds#w}fz$SR"˱H8L8(ǜ)&Np,Kș L0gf8g&2IHg& LWt$6xgx+ggw*WVuH= msnBt%/]>3]A?UlMWQ @*JV]Eɪ(Yu%de.,qY,OK\%A.zvP+{̱ie%-)riD4aQ0Ъ2 jFxU4Z^bմ AVM jzmUkC^WF3NaĮ+h_^W׆Ř, . +՛ӈn[A`r J2 JV@Q(JVEIUAbdGQ4($1rDͥ0.Ys%8p C_A^ w6XUp`]Weu^ eV!] :_vP,78T\ 0sASCƱa1ۿN6w>Y_* a\"n fq_SHX9_~VjKQHX) +9-#d'$]sCJvvW{vW{BvW0#W)HXο +}mHX+$" s!_ ?h=[0_w+?ԭ]f_t=;(KR|0ny{h %G=ϋ~_ϗzo\7.TɆ/!-[(}pÞ4諷T?{-ʵYj7~7^?]8~9ٴr_}Sz \+sp9Sq???0~l'/ /#n|e[ƞom?e{9ޯn?۾A ;n?_9ޯ_a:w6>9],m_ko~ϑ9/i?۾!e}m4|k:H]ϑCT/C2xEϑh#m2x>ϑ~]KI[ @[ i}e+!ϑh=ρ~l:E_Z_`hoJvd|Z{ 6w%{u@}>3toBڼdLc 5$ΙNb&R6Ȓh]b{Jv*)ђy}Sܷ) T 6WCm]٦w=%&dN6ᱬm^GS 6@lV 6\f5ᱴ96@l;uɮc-bߋK6?ߦc1PDþzbU("4Bv!<`_q\߽,c@l^f ik(""rU("Yذl81ClCD cb0L#ĆazQ6U 秲 χڒc\0&6<^I2nbn6a_͹b K:Q 6@(9)Vlbsv~9`8 S5r:~*]Nǧ SoCĆP^ĆYshsObCy:&Ć7lbCZ$צ.Ml^%FQzm,^%FMl( P6!U &6^嵃0 FTMl`t/͙,*T 6™e=34FPT 6"g@W9ӝBtIl`IlS3@,mc&6t]պe.]07@ĆKWptg@WQ ΀dUUWp.L8@+j& (YfZpF8@wCSQJ(.4I8zaQs<%=$baQ PSL7S$2%$23$23$r(zt/ rt$s+DpX/N3.t3.t=ᰘJw8.z.Dnd7Pdu]Ć{$ NbNb~G1nbC3PdJlh$SRbC5Pv!JVEj(Y %d5P,@Q +Hbn]J2%6dn/@@Q-0P< %1 aa(y/\e/!6x 1bK LO/̜DLN"s3XVIdc%uc%r|Y(&'qsyDIaY1bo3JvFIㅒԍy ZŒq$Uee(y7J^ƍ qd3nlƍ͸Q(ٌ%qd3n8P2%hrW )Aؐ )AؐgMlH JVFj( 4d1(Y%qd &6ӈ4d1?%OFGԫqd&6ndR6!w#ؐ )_ؐ WĆ4au6d&6я}@lD~o7 /8b>g<8/8@l༿_8_ 6p@lAlm Ćɳ((9L#Jӈ8_ 6p@lی4d (¸ )d &6&6NnbC&6NnbC&6NiD4epL#J^g4d3(L#J6ӈMq 3JnbU$UTbCnFCIĆjpL΀iDjQF,x̵9eY0+8fg$5Bnb%BIJJ\ \ \ \ cĆӬ U< ΀YEìaVQ0(yU<*Jf%3`Vp#@lGA0,3@aXClΙnsL7s{UtOʙiV9=ͪwP6aU*r{U Ӭr{UNì P6r-r=Pr-r=P2@(I@@*Jvݬd7(*JvݬeVQ2(yU*J^f%)((%)phY(@1(I1@1@1`V bfl& $d5(YM2JV`LbIBlHP4_ĆیĆ|obМP^ĆK3Ć 6U,f%YAl0+ f%O`VQ4(2dž?Ml8M2JobC*&6 b\Q 6 *)ĸ?53_)`M piȐggGnIi]i87Wio1GA*n3`Ɵi8>h)ߏ_'gO>WGl|^?ޏ ?ޏx+=n>oCo6xms>N?9mρ~aѩsܽ_ ;h|on~!?{Qh`3?i:W6on2ֿ.4s}4~qCt}_,/n}~ WzS]g/} /6ocnʮ1r~^9~}ӭ\;>{/[/xvox۾֎_]n[J ~c|Ņm׷U`j0 p1 Lý:U y5Si}~#yc8-m>/@k0 -6h`[j0 O5L`;c>,̏o >в_¸M|4 D5Q~7x_iX4 h?Z䳯q1 45G`o-iO?×4 0W[I!ҵ͇mx$ЊLÀ4QiG^`LCNcJB@ Lr Ӱy6(A.ei,z as0 Q/gYPt`,iq04p MЧCY:bk0 28&Zi7k0 }@q;ikˋ['L_^C ֍8tWi4P n8邢Z A` +RPtÁjANؠ8uII?8,v!JŬiVQ4(h0 }5LCgk>T:k0 d`:[o3^ildY:;k0 5sȻ|̴d&9B$Mr>IvO׮''T`:ۯy/F( ;FQzm^%FQxm,3JFkd*((yzmd d <6J":{yk0 ݺ5Wd'ك"Hb{Avf 7Y0 ;fd0 ;i\f`O4F7Oi~M#Ӯ^ Uৗi'I TC|QmЛc$cdUUWQ*JV]Eɪ(Yt%$ŭdnil4m(Ɉm(y*Jf%OYEIYil4fa 5^ӥO?] t*өO?^LCgb An,{^LCgKm#;tF$&l6LЫ%7(n3%`zu?`:o3JR;J6]EIBGfQ$M2J6=Gɪb`:{k0 oo3JV=Gbd1(Y@If@If@If@If@s`FSQ2Ps<%=G;^8%==5$=y49٥`d#2`>`nXs5RЄD71.允4fղ5~ } LTLmv6hEn7Ht 6 4Sv`D)n;MMMPB!nBqd3%D(J`nm vHd@ %dQHtunۦnۦnۦnۦntn=C0 i 3Jm()n4h@ %;$ڸQ0P<`< $:r8X!$i~̵Lò ! 3i\ j@_}#`$0 aZV!$@@ h6P6:73ڝ-˪2Q2 S6U%GUE6ⶩ*ⶩ*/EI˸Q2$iXVqۗq$UEv3$Nq6nlm( ](IUBImFmSdmSdmW1@W0 WS6Efd1.hEIb(y(Jv0Jm v0J'%n;ELdmȀi)Ώ97ٹic+i\4r`&EL( ؂\4n~̹L\4Ln]F6EL_x4k`3U :s`0 sns09Dn([ud7n^e_Kv7Pv0J^ƍee",?f߄ ² ,W0 ~^s'r]Sd,q͸Q<(uΝ uۮFj\mlA@%Ss0 ~_Ss4@:Kv4`> 6v'> %@mƽ^mvu> 4ƦW0 ÚSAv.67aiO͵yLð0 +ai ;)2M@(NL9 0Pt `Ed7|QE `E$EBI̅ %)2@ޥ97 "se(y(JRd. @yپLl aXd.lFj }z] 7:JNfۦtΝ w,qT@y T_ݺmE@Q"n4@  i v0Ja(y(JRUmSFms2#RFxDn]xD T_ 8`ed5P@@MRFi& hrhM` `Nn3;4"0 22͹Lۄ4t#k( %/5Y5Y5YEf( %d3PlZƹV0 ݻ܍,P,P,@``j>PʰPҜ쐯y7Mio,< %OEɧ240 Q,mOnՇv4@;m`60 Mx Lymbi96C0Io3Pi@]~j@]oy]341_\}_O$4 6GCsl6hi4m`60 >py ;B%/.!;650 l0k``t60 7D( Ҝy ; SQ,;I%K׼6:ӣ 2mVc Ǽa>拆yQs<+f< hRπ&'J2+JMmcͬM@KsnHm3I=3I=&d4녒|̵ّ hRA =E7ݸ0z4g@流Ylk#o|1p(y9J2J2J^z#.L&%IFɦ^7Z1F+>gf)zxmGxD|#>fIBIfم\xxg݈ yPWQc3 o3J2.< &xCژی䡫(y*J k*دԖP[ @m Pcccfjcj΍M~ꧫ7c~ ԯb;5yt%/]3(L#J6{%=Eɚ4DѱcMEE""L"^rwQQtk$X鵠ׂ7mE絠`(ע-ŨEGEǨE](:(@] @2Pj@5{ZGQf%YP3+j1(:Ɔ(\vQ%$ ſ{b^`(A k*د`v!/n\د`.[jl `j9Ȱ|t@-3<81M.A3WUab; endstream endobj 502 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 508 0 obj << /Length 2127 /Filter /FlateDecode >> stream xr6t)5|=$34n4$ZmM,8w_A%;M{A&X ɳ()qG'gTRANfw^P F|A@!h Нx VOWe[_':Sa![ '݂HL?$y.[.1Q=45YΕ{ Ϗ'8$ XNҤF1;̻e4k2=o9.OZ9Q{d7YsHvE5 "#J9by \0!b1k`%c UO+?KsI.bUXgOk^ E˙PCZ*[bR6AR:M$J@%R%ƃBO1ƓX>@[T {ĈbPK}ie~džāHrb j F&!#1gsɹ]e$I:\vnun"`αXcaj < pqC[WBp^Lq0iJX3LMazEW$ʯ'2qZ|}@}2l~QP7eN:/Uv-ݎב/+uڏ!vt7xDrO?RcXs=p}<54wwͦ=i7K_vU| J ?eƐ G]!>=b=BYMCM*;䪯px^^U>QF endstream endobj 513 0 obj << /Length 1263 /Filter /FlateDecode >> stream xXK60$V$Rσ 4n"Mf-Fm+XyA~}gC^'&5|3RzvOF"VH"u\fѝ؞4iO<ϏR{"ci-2?BRXzڀV;Ty(ܳ{`Kz¹At9!-nb;x#cO` _Z_Ltg*)R>Gއ.DDAuS|G jd;X+EF0O#tS=' nRwF7^`L -% )Tz)P]/i]FɀԱ'>x Mi ^ZTR CbxbX閦Q&J'y՞ˌab7YSo uTJ`jt;hc.ac>x}Co~GBix{ {}LT$re}0M 5jF5ȖCԆWkb,}ϪwR#9~0wD{OkhkX7/%W '碶1=qZma۰c5=/ N;:8s R35~x˭CFCvoN^۸XDQ\Ao}r*MuƦ?ϕ \Fse"W7*Ӂh*IyHCs &J*pgEjTjIv:^]ڼ@j~Sa˵TW&+)w@J1iVٔ+oUiɫ1on̯n*GoP7ro uU',>&ĦL]/TQE_RMEAנ1("[ F 0l1( `Tcpps,kO*dalaTԆ]@a7Ũo1:(Ũ~"q\/M.Gxu= endstream endobj 521 0 obj << /Length 2264 /Filter /FlateDecode >> stream xYKoFWB-\[@i b-#RaTE){o<ɕD;vZ|3~~2F&]F%zA2.FoƓΛ6ж*h. h Z)72JkABՋpz^=,GۊUBОZh[?֯-%ِܵsh? Tx)G2(dO\uJ{ߙ ; #ٶBRXPېj[ dMc]"rN@#>~)xa?ħNN=TrT?8e 6M<9d 0й@D*O$t:l;e3h&u)^e&@ۑ;M=_w} ۇ_'83<%uŔ|g/x|hy`oQB$z.sR,a@<׹-NWt=h1nJC[ r痩&ݲ RQ +xûP٭E $cw{ ďqz->QB2Ţ_ưc+R]di5a it-zKRWCs| X:A z$P=fÆcZ4\) q:6Z5~#RJWڒN,p4녕v.V @+iR`G̷\Uȭ[$[1$ L]zy%|:E\B8Uf!Jbhv$f2髲.}a:c e7 7,PP`iݡ0R>+ g m "D׽ۊ=,b=͑(_w/䍄Ӳ^fݔ#%:tkS nf]gӊYFV-cu-Ώ[JYv(5|q)K@[s±ybXHW[CV<~o E7:_].O$*" ɜg&~A%s\ý7(#| ^Θ > }-79H;= ?fM`2$o0q,xoޟ"j|> +ÈU υu],^~KE_P y/ e4ALi Z)y/a& adNlUW*u@kMOZ TM^r1̒cBʌai8«G\C> }7һ͚|RhVz+sZ7YJ gS(Y`o_WVY0d“p3w{F˳O+e4&Πf٩H~ HyXEMp0 _<%d)jOTnr?@X&v1`"&`|4߅^KIIعF[3d82OWc}>$+$~R4o95El5 Ô+-ɻ@78z9UjNH*,rm^¯TXVtfL%\ @raé\g!yz8iK9R+C`ݩZ?3'O-pq<#Oc, >(=|4c7iN$S b Zu9S#9Qj}"Yk6ahH ^U $\eԹ h;!R̃kq0]gׇ[+SK앉.ig2&s=?i*1qL endstream endobj 528 0 obj << /Length 3325 /Filter /FlateDecode >> stream xێ۸=_1PTjyHI $M>hlylD˞I{$3EE[xxxxx˫'o:Z]TEXgEGaWˋ_$y# !˼-@NyΛfVȹ#5bFLkv0b&70+.7 ?;њ!7M]V 8`HҺ1 ^uLF2dط&^'8" .# wּMBϟ$"8z=˾fi=MC 3IUm}i^Ė$L ~+<יSA*oYUk?Y s^VEIS:Nx ЂS_[{tҊWbۑP'.v7*0x[ƍ^R0[7Ν.7'{!&GkD$q\j1Ienڐ|^0QѼ1\1AWSV LŸbǤdeoi){'Щlv㧲 H18ޘfKF| `HXLc7,zבHQ#f38TTog"Kݧ̝ocю-xT qO=_h|[*"ܧ=*RB'v%"%h ߱Oޣ w4Rv(HS6:R\`s%'iYf [ \jCkb+{PzH.&dQ"_"[_ngb&1 iwg{X ZL. 7ko@AӬH0&IX3I1[=23` DZ&ih6baF.mFxUVd#E$xZ9|Gђ20~Px(q!˴rh'i0:"ec}!72]#AGE;!?YYvd_`>$ģ9?Ȝ<|](K7'j,ey֣|TkoN7OL@(L%`)(,\h79t6"tٰ۪3 XY-<:EP4>Bd:ϋ,9R :9[K6VgIKGc~S.>UQX}[k{PeqKip޳Ny`~1;"9έ\FCO%y2܉[=;IE: E%fd?n3q$!GXU:0Ws9ٕ/ /@rl1-XTX 'vfQpGT ?{5Q-Q5ׯ6 g}π^9әۢ[~[ #QRNJ)2fnMoi:µh$s~8ÍhBhB}#8w,w]:s4~KуXNQ %sMSǹϒ3Qt4Ko@OFsB։pDj )O Wn81750<~{ R ۻIwYfoicӳNDadܩYq@x_(96j7*x6Ԕ .q Z;xDᴎ ?tn@e`&סBeRI1q( /࿰K\;D:c:+5"yNrF,(8'dܾdSlMD-{SA;LZ+;"/hM MCF+SLu􎦝drd_۾ F V!m2eyר|\+֚DM$Ei[x#2L*%&y''5ffF`r܊1Z{, +u\Nx!&Qdh~-Ǒ@Yux༔8+%ZGGM뒀(f!- &2h/vdˏS*D!N[v Ӡ7^m;ߌ鶵9=j>`k|t[v$oD:Ă翣`.~O`t;qo_; 8s|kݧ(<$-ˊ%Zaɺ67qxzSއ(\Tl5turRǸ{>2Sg9)sS'nxa"Ttb0scQt͙sEN͏!?#[@ )+dɓv']`Ay9H ޥ-ZKH13k;3n;8{$eF3Ybi)cZhx|opXHu*glJYL &cBG,%jJMmsO& y deUP\d~_m0(lҋ"K0aTj","L±M|&L Fxp|g(a>t2s,s&7K~.uj [+M0zu^%aHu)ǓTFuƊ#D#Vʼn(M8Cw-RT2 snf0>~QkWEB oB,IRQ\CpYU%YgZؓWO ^ endstream endobj 422 0 obj << /Type /ObjStm /N 100 /First 874 /Length 2087 /Filter /FlateDecode >> stream xZ[O#~h)/C~P$.){trP48䷟\&RLWWWUU]m$*ǔ%ǫgZi<51-3]/(< s20ksHTĻccI,,X+i1*Bh$ )1L L9p&آ˓<]Ab>Q4'aZ R %Cp(ML NAQq`v$ L{kb:2#[ČdɌ4d}X|56a̴ڀqdcz/&Das1& uLMy{Wݎs *JFҲ{X.{{~QY;"#͚IZbg`W /zٻIvuQ5i\MV4/&kDUѧyȚ@@]RZY]dWg4kg]?̳x;Ϋ!ص[p*O`iev5>XА!}_O:sݎq/[uy߽[XIZclOk}Z5Ũ8kX16u]IG!|"/'lT|M92'XN `H.kř`nYQvb:>&Q6mDu^"ψ_}\4?viM%%7d2)q-qg\=߮/6KFi)os$umR'/^.Y8[\9tKwy$\3G\i@o^kL k=cKiFi+{@_ a  Axr}_2eP(oe0 I~Lo7$ڢMTѦKTNiAԱg:_2Hvg\ ߎ@/ ] $bjת \T9r_!qTs0NE|Uno9rV]INTEulKM/:] eN NLVЁ%NVN Z#}{s4W1,O씟Ud .éť8|[~\KM<5̥Q;b___/JiĨ@*v׃,ݼt3$bu5o+`v#:~5p:K|!ʒ4a>>܈58xyE,^y5F1ҏWsq5i-&xP0 gmwF~^tڷOU)b ~zŕtLvˬ. endstream endobj 534 0 obj << /Length 325 /Filter /FlateDecode >> stream xڕRN0!ωxR; EH6Q"{5js|{^lźfNJW0%UaY0o'=Њ1pyR#E^?QV| m&85M~5=Nw?|Sչ9f'm:/򽛮{^q.HBR=ϹM'/Bq}wH$bmUg4h v`8OwO`"#FIe\JIS؊ruh)jVM C*R endstream endobj 538 0 obj << /Length 1479 /Filter /FlateDecode >> stream xڕWKS8+rtǒ,?k`aaf&8"v/V}ݝ/a8PoHA ă7Cr/ HGx( 3AJ4&0;j^h{HG|?%*Na(Y1ԉrs?ɾܸ@Pyϸ2xGGOJmNZ |¤WI.!W>۔Facg Ud;lt`Ý#ZS3 :ў |@Y?L4X.DZBt Nw1 [gEH흱7(Ge!WBXE׋9nODx+3ZQ.xk] "ڀb-oh^ATBʝ֑=ǻ'cH/#\bU0\+AF]W7hF'E.Pj| N@!E#=@vv3> qL2A}à ^ &xEK !B4jdyj5EҸ<cZٸ%MƊIB[Mڈz2@tb%bR%c\"&1oGe^pNkqO `1a"Ot dY9b9"q7K{q0L!&߶3,j!+Ń[ 3";Xj.CrDY5C%)rl+(s+`\I-%Q1|Jpmo$#dhX"%xc&=,n'oX @B*MW#8Bct}]RFNNxJ9U$L<}Tc|ˌe5@3B%m?nyؐ/ (8ljWQsߔ @U^n;K%т"߅DQ`wvBiF.=+!$x]a6 U%u::'ڷQʺ*őr1 }eo^s m-wdvN?'[? W5/Cޤ\-FP㽽\SV(B;*cmw!c# 8$tՀJҘbQ #Rh+4rػq$SHTJܵ^ nVF%k'|9! ޲m3vep#}c=7,]~Xj{ݣCd[F2$& .!ɠ!$Nn^vFn `QHbQ'\h2k3Z/yj8%vnO6]jG(Ҍ~y)!T,ոj#I/JߪPXIqlz/1 endstream endobj 557 0 obj << /Length1 2157 /Length2 17567 /Length3 0 /Length 18854 /Filter /FlateDecode >> stream xڌP] 5 l N<ιszv{ѳ{.(ȈULLtL9aM&F## =##3,%?rX2uS'gK{;X8?dC9{; `fd7@ G3u%wp4~#Ҙ A;@ g0hlhP74zOJ^ Ё͍֙ɜf (:: 7575zX2*f@7C'S "% Pp0 hnW K m <,f6qYz;`hg򗡡чߥą LliG|YD W}N}`ZٻyYڙEŁATJ6"?2sS `0u7`+J|f4L},L?` ]M@'S*21L,#SsK;??Ħfdf?&_>~L󿏘AI\VDSߔwxѱLLhh:+egfW}Oɮ/cL)Ϡ01`<Ho= 􆶖6\50 ۘ_cmFKgqKwSEKſ_rT@telq}8*ӏߔbv&m :9z~bx1}S `~>`:Qv6_!v`8 A쿈 1$ A }d/1*+A`_`}p0/ &M ?cQctG.N01`a_c!fq#0 j1_;Q4cwѮw!?pe(O?};x>Rǽp2G;?AqVHVeLMMayj'f5R輖]*ӿn: % Q z6A+>{*O.MaL |S<~uV )M‰'^_:ma_頒]d.R-B'pQ<61$i~5kP:,%Kk9qsLٹ G 4Q4֢WQA&b&衕yub_Elb:4N4Ү,74'uIy9a-W0YY|p~gKW|8MPn Njhln [{> _GHRi YD3 y̙q>bΑuy^? ~Y} .lpsb)N<)_wX kWaN!wpNX8hK38S6m?iL)=h}@}8/XU@=c=7Uӝ Ouӟ,ymݨ'm0dX?v ]os:7%'\&kehc"ʵb*R׹Qur0% 1BKOQ*I^tŜIACxߠ[tf,њu8.*:١hpw,3_#{Mx4 ͘ ɗhVu'eq`jk7jńD<\P*]Car5u((I@gp'|?oD&6گHg+'UQ7fV4 g#흣Y=-H>nh l-/HŊQ:t]黁0qb_lr* |LBLkDb ev1E*=5CD~YYf,!WE5|Ц^7;gxv% #"H \N6xH6|,bHwꀭNif٘}iB|Iq¿!jG@۲0U%1P I7M06\A,\u% g͝W#[F >6^a#HROjB|kpmO( c2y؜g3,^0=Aҿx֎k).~3F6rhy?B/!Њ_ncdz v[@QI]Qؒfo4l5T]|^Gº>b 9,sk!+gw߶H;N*|ьM#Lwq5J <"z|n4jDXH+j(G]*AuJ t,[g׳τRo=,VaºM.2T!?Y(àR[XP\nSFUq_&4=;g?ⱻ}Jx,JCp<8bRZ 踜tɪ0=9-~7kʫ|0 TN߀if9kv喥@xpYPXn;#i'ٖ>h܄AC+6>O%H[bjζ'о $ VCXwy5:n{bѳS : Z>N:8Dr! ni>Ҕ@Vʊ&NrE'}~wY"کV賬#D14%mѵ}**[<LMt o^ePӷ"*J.u[~,;dKe?Cl̚Ӯ,:Fg_'TRa`X<\*{cw_ ŢԺӕUj6/UFe"(- eˋR,ݹ2O |kOoVeޟ1Xsξ9Pk.X;rv t4Z53g|%K␟"㷕핕4p rPJ^`|d-ҌU2jZy ڍI_Zk̅q{ vxbrv":I ={Oܳ;g7f6`ވ.WZ&J1/#7pJE3t$X:"C\"(A2Mv)6(e&aË*Y]7pz,royWL-?;llgum%Gw PfÁsIsm3q/yR`o>cؓ9 + abytchj$˩/W?fw,-\l0i` O^nKmg,^WQ.g$]*?ωηe҅S18s}a ,V =sAt#4=?sכ\LK=.(8!IJXlV۲ޓ*l:MbD;6A EP(>E(,v 2q+KxFʾ`+{`/V4+EU'CĢy=֎ "{ww p4x@P(K(Ei{fw4MS)كڜ!ᲯhDkm5`*3Z9@&eu2 W$m=LB I H>r0,'>r%O\M9Q8zMQ^lkvbh,J3^ݐɥňGgSD B&_,>5ƁÛfL [3 LqLSCIe2aR-x} QdKTIx2HM[`☺*4RL)JKʺL^$U?S z&m+7/Sn):r| hNJlŗ O\ſkNfDܹn[v+>."/08)Pj:zrM\c`?Y8`I\∨WmpUձ<CvlڻYB>FX[qxMPRT򜔝(V\)mZ&u!/-XoH/B;P/kAikG^g?Կ]|`6\_`۽n*? &~>øѢ9o}ڠRYVn,# vr uo]]DX8X}Y RydWkC~v VB^)nFDKC1˖C '#m@:63dpmI"I#AWTڅq *~>OEm$_'cu6HB.$usgeA )Bb/Wok3 ' U/Swi'jUUn"V/ [K=|9q\sZ.pI_Mx3H*J(9R:N%Q!=f쇸g ?{ǖMf)X.4:1O~W# '(s/ϜXy _h./iRZm݁ Lh38 84n: UǙR|KcIOVq+\0:|Eq'8(\w3h0ϑO컙|3l5 =]]]d却FkkdG1\iFb7' N!x3$?^jg麯8m9fƎ >xK 42&ةYo)(l$1U9""|C(TV*1)da.!+ 7w8K}>fK4nboB(Ь ])X|! ءԞVB, _}G=6e#&ͤ/3WJ<+{jU\f²Cln7V;B hNAsFF-VZjkH0"9SP]_ U5tvXQ(ژ#e02ב $ dzerjcH]-NQZ"uf>2 B:ˣG,NΏ_(Kʹ"9Ex`wKϢN۸wj=]rN;s% \@t]K$=a"0wY"FBl/KC('2Q_.8OhoTI:gMq>C_w$]-WSP~̷f˽gnKĨ4])7IyHrM bq} Bվ &6WG $.}}.-yS0tsSp!룔DO:-5ЋYs.M4ϲg>yE:ZSUK1E N'FK@O:SU%=1+?G0fOz2cuPY0_Y$xKYW)ȧ?Y}w<ΞC):PD՜"bdvuu[N37ø&zJzb1;*fsu1_lʧң؀&Qu39Œ+{-Ox]ӒR B' @ɡNRM^ hCD=w#㼎 $2mHrnNJV=YbYo (K -OdXꄴ7QБY|W 77")$~r T6){\ f)Ml2A~v}@֟aZk zY" C-9t苵6C2=?X _}O>umϖ"my(($Ul`dn } Pŝou:7-UIIJv^`Ha-j搃_A+ŒFdh&hAˀppl̤7Gbp}oH?#qg2IY 5ؾ_S&AEnɏGd|. Aŋ+B@#U3m`^'MdzI}.+g:"ri^1A!GC]9X)h:biˈ>W[R5ɠg y^%5U8./8Cd #>$ʄj>҄-ߒ9p+dpX9;i~֌h!Z-)<~&b(>?'DuɵKs?> ;pՈOA=HOٯŹNo{zRcA%ߺ[v[*v8:l+H]dJXIq3 oh}Ϋ:˧~) H-|QwN͆5;ҞB5$~(BN=)^46CqZ(`vh*!.̂==̓z2?䰕zX$Ud wGIWw2xԅP$_~-X)޳85cG'GX4jrk`-yEIHf̒E<ߞ=d2=nA48'Zy]*a`~(fiՎyxSP"4($'Z+;j<qŕ;K<*&|2G1HФx#W{9gKAQ\+ K| f .4,f#Dy, CuԠHK'Kj^cjMC5ByJA$7?dfX/]ܿqPSf˯_'- v)l?&W@=kB6L[UJ J kɊ25%jeaYw6T,&_.f0"ufrp$_V6M$KIv+w3%cIiЖ!X;@gn܉Ô-P&6s(w`g aʟUVh:/2j[Y U4GjӠPrH-ƴq鸌~c%@x2Z?cRf⛨nj~.'-=h2_)?'Ҹ~D6e? dփ¹}MR.(ѸݛhfPʍL_5<Ѿ3=Rq^ycUWHu=|+3~ch#ZVPTf|Xn]lLYw KR/v{p|s%0x a-=T]uMRk)zt>g@vL ww|-xEjn.p^7D@,Lwyt^nSrVVOrA)H踅)\z w6}LJ!ubCJp"2 ɹ7lT蹇dz IѶxn 2ݰfDo"ȰCuk3ץ(Jqw"vuZop;C*qԉO[h+ki!)88z ύ4Sur9LwҦv}?li s}{O;o.F핵K sa_YwXu3Wh:(2z \qBN˾kʮ~9_*cE#KWT>7TI&,y2J}<G3Pڠ82ȅxw:÷p:4:)qZq`D~;#-%,C+-T׹]`[(Gt ?n1uUIdY|1kAU'yɲmN!.5G8iRdLrZDK4;;n@0~"n߶)0"ϒvJCA$rto2xjw)|{gJ)ፐԷ,#Zg=Nbn*Gna1|w u&ކ`I[7Y#9̽K(6tyUf(#9ЗnE첸p/|'lbS֪ fp$=DUF" d2MG;aܳh ց{43 ? vtQFf)53Y~#(>_ػMݩ88W<+%AD zHwT.)[v*ٚEa+F|^pHS]'vPG+Gdw6/P_//SL[Ğ H{'`AEgh^ ߙX i]']57tFHeE+s2ǭY-pKӛ ~7t~lNx͐?r{;2qHN_,gѶfwV}_7x~DfߤCK, ( >``Y g,c*ZA~L<HW~t+hq+p)`P uޚPB|[V3wrQle#([^7yy%6Oz84FVOqv_S^g)X^*Cxd@ۡ_ky1"r3RW=7c07kp`w=Z 2'  Nx\Ct3iyH:r8 aD;5ۜG?%2hm&G,F,)#i%xe(f4+WAJ6^c6&=ʵQ UvBqzď}~b'¾9TsϤ6P\g*Zԗ{5SC`^BCdo~ v+˛ß~\6r*6a9}ޔȼ@Uɞ;x; O:2_Mۓk~8ʤQP#yԿ:]|(12_$eS5vFy=Um"kyܑ?%fWT3ζ!ӔU]cbdʹak|YwM?Y|]-Lie@4\ RɵXNH 4)_sDE)-e'G$X SȉVt2[PU䳌R DӲ.7 VJܜ2AJPimNJfi͸b+!.K=~1ƞW٧ncVD_ [z PK%x!oK WN=w57 ]w7H gc= ,,EP1Iҩ}]>>ٮ^!dEE$0.xt%T0Ʋ,kKuS)-C]*6a.Ć0˚v47P#WP<؄f\S4)y=˿S^`OgS_YKZB@ID_ǯ'cGߗ yJ~ Yŀ~YNA.[{\?k}_e=ŸB\kokl5{CtXl2IZ\ƽ2G(iv,v蕎-pl :O\FZLa~(؁P)ٗӕ\,V\`q7N{H8&: >dpѡϾ_.ܟ„77 &XV;6d"2%}@0vޓƈm.Uƃ6U-},x k+~:tsݎ/$2jG1; ۽T(X9ru;7!\Yؘ<']5_tFԯ,F[!pvI̠TyqvQ[ (W4^/VKXs{EJmO5d5t+Тf|޵|@4{9+Se T_+:3e9n|G'܎_!6F䕒+ 19='e;z?r+3-w:#aXɯjqͩ9ƶ]([ƛGV/ɷrz/{˨kbLt>iJudM|t->ڭ Ž!?eXmXL<ʫ08cjSGl/hA"AzWtH6@ZہYJ9jc o䲁nK^2}PunBz+vQPq]"AMKm; < g.Vm1c +c2c8cɣܫ@5Rjl+{GB/r t$̤w$M^Bչ[aNԏ"dPQCeHǚ d;]HWgr\2)AVvKw!¢,Q]R2X֟Uc_&L_L n< : \M}FhQari]*^ҳ}Q#e`O{'S7 B1D\=&7p>a<#."&4; #ھI)h*P+#=w>soXхS ^~DE57~mDExxu!ؑJΊzm,l|FLszCλ/ 7`CZjVRrWSB&~5/>(-;|-Ъ] W پf(S٭uWЅNamG0FeKI1~=60Bg7zb,UDsʰ|o~$fjL %\KkR{B'j/Ih$G[(d:oCGigAmmDvӼOOW:#q&UA (bKvo9$&:? Ң1 :B.k?eg(93Diא 1kNA.$F u{ t1HdiA6D|TϦ۴9-b&vFO1;n~LEGupjoF $ HOĒ P$JѓbeپB.Jg(eJpx]!耖~%%K*wOc{*'x?*ޚ5KZ~L[6`.F(lmIi@&L$p0tImF'_qG)y 7}]FA<˩xK:Ns7wki]jYL`W<""6MJEp*:)Q3XAv"ns|^^!'B9 ٧ SMDυsK`ԕRD(~J# @"NкS ~Pc3 1AzD`bYG8[\,IƵ^O``9vifƚd ypVR#FXD&)η/lp(ud woAiжxƒ3LpA}=Z з)+xJn5²&}>hҰ鞲ӱ%oK)np#h+l^p?@\QЀI,:ɠ^눃0Z<*zg C*D߾QE^K2 [!DzPc(M}-Haw~eEvuP,o+O%!tszGT#3p[YAt^`@(ZPSfˑ}dyJr8KIYxzkMt7tydj0^jN@6[ȸaCCUEP&!jʾ`u l2mB#[YdWR$$tɗ|2,p3ڭay8&\'<dУ3tkFvqziHAk$6;v{M!B{vV0Bl 0 =!|<=&0dPl~ 5{?Xg"6`b;Xxr$r*Meh՛3jމމY?:HnZ_G³^h@{8r *3vȐ)'D<}-_|3JW,p 0 {ƉOqeaJ]r9;Auwj׾I}3% nV,IT| ! U$Tb8̴QS6$rNg/l\d'E3Gx( 4-1d: &T2# ޕ* wn-X剰rb(S HHpDv]Y] * I7إ9(+~zZW3T`B<_`}5Z&]fwSL/1TNbH y#da_FU@_a&J*ipHN<}<5:@UqF,pjtÛNUGU!zޖ s޽f؅t &J]qc?/Vyz w;uEg&C _qNt$)a3%*DlyA;%C2b Ζ{YKyP>j'^&1Kϩ1 [ endstream endobj 559 0 obj << /Length1 2264 /Length2 16019 /Length3 0 /Length 17362 /Filter /FlateDecode >> stream xڌP[ #53;Cp n%@p4WrղvCFB'djo scg k21YaT-]lÒ-!4r|]mL,&vn&nFF3##흸Fn9zLPP8hN,MrF.@ۏMl*&@pqqf`pww7uw2秢[X@'7)/y#[࿥ÒT-,P7sq7r> 6&@;W;St,@h`=F&&Fvv3K @A\Å`dgWGGߥąF ř/ |YTh W}N@{2r,Lafg ẇ `cdd`@ Ptd`!kiv6r\\t/ebZv?@w0~}L𿯘AT]BBJߒxӱ٘LL,\6F(Y?RvfѧPKcr?hyN7Ho?F6\W- ۘ_.ٙ@SEK˿j-PG >1Gٙ؛el#''#OXƏQbfcx3}))0ٻ|>`Qv6_!v`8?F0q0 &`>8N"?Eb0(A*+AР}_ &El|\,?GE?k|i~ `f]b⿐,<,,f!C?\T!GQ?Qǻh!L:OX?:ǫC s>\hG "pGlclrbpp>#nr?=?=?76quݏE zM`זMxBB~ L-hQy9u>!B%SfpJ@\'|>moґblRlm,|;9roiﲒ8鰨3|Vn$#Gz5ފ "H{saq&Jdc?mTr{P9J_ az^1]&Q @9NYa_.hJ|LXe6w6@8wfF:GVU_uohɂ( #B, \ ;˅)>Tzx,o4rwWwuZs(] ^W\/jm#[ݧ+RNRuw'Yu 4I3Euģ +2#W7}5MbF#g|FP>'HZ1P a|)W&!_ǂtmAҿa3bg:}Z]z}s<6 4rb00߬>ᅡD#5X4m4xIyR,cӷތR+$YbheoyFͩ0KJ'}Ҷ^6k WuQmڔEuZ|?UׇeF&*@lQ}LȥC3Y+6q: ĩ>v_brK`&vsWQ8(x;QށčB@r3>Lw%N)2o&kD'*QH&d}leO+ꢞf>VG ASM˚ u$.^3?}rlsȪvΈ_]U$Ji:S7Cm{7&Qi EГc|*QܲBCHsX a^)_ivi=+X_lFA Mk'MUQq#oHPRC2oRpv4,d]JFvOk|5v6R`(:߯}8`wB2۪q͜DR)=O,zf&3Ls[DXSbX4Go:L?YQz2kq"V 0 VyEPgw7j!msEV՗]:b?Qv̸'N1*5g?wb) *$%N˹U0En5#Ggz?lS}}_fHE0@/ǒv,CVx eoHt^P~H*PEh 4d>K& |Օk%zӵdv+Q%do ]'Tk Cf_XϮ=ZG󙖓aؔ-u3N߅A%ps׿V)Mk7Hh)=d];a-2$(nSuOA+(K9$W;d= SvULi&pw@)ؤ_K|vύvWlVn<_ JZJfdzͫDKoUiHn*ihQruf7f p _푧' 6vO\t13!*3;b=`,d^(bFAcWVZJjFBƐe(q`gL?WDmɿL8x";) 2Ē3HyJia2) zʖN̹j&EzgPmENՠ5+5s͐w[iBtj:9ᬞ6e/ɾQad E$̌ ypb'}7" #E}~Ks-ƌ2.hcH!۸AT|-54["w롚g(yʹGVC>9]㨡c+nS7sc{|f2?,=rLNK ;h3uvmJ\dw Zlq?$y5x C&sᗩ |G{}pmQ$0w'-=oS4lty#1iy++xR װ"NNRWa~ڕ=63D$-da=雯V @(Dk* nrQ^S˼գ1m0{qFSx#3-3V *DJ) X-=:t1NIz}ˤ؃3 tӰAsfΰJf1>K%hIvkqs(9e,֣1N?~&C!`D ~3xEH91BѢ ?e`Dfnow,Xyv z_5.VpO+^XUA0{>Cdijt:͢ P5 %)rSU#C=oum"a,mTkJjWl:K15%#Bto@pa ieHL qWd#l#(Y:ܘwR8gGk7צO{>반 ?PQ# M${Z AywA#^pdwQޥmUg73*G6[ZHːs?͂CvL931ž*XWhO*D,vW[uD1NGEP(V`kڶ,fk!aH&aZ2ľ7H-S&"eƀ]@߽n1pO+K#r[n͡AGq4-Wzn5ױ~ǃ"zIԞ,+__=ͺ Tމ q%`_GO ^FM5/b5|ACC(ǹ66J쯐e!⼍8,/od[JXQޙb|2[|as3kd-=q^mF?skXBb=NS҃ OzozD-TAL3I 0:?x #1 K/^K;ShMǤ. pH, ϣ"5z ph#GB4EѠ`*{f#%jC $''Ԫ}ӏ`6Y#Ԫh1}VhY~ĮJjr*)):Cn %7=toh簵fU \~|4FF O+aMﰽ N\m3vdp2~iF$L09gISt J;"tLOz߶̚"fݹ77I&:x2[^v=%LdJىdh31d4Di|M5$k<+Ѡ4Y!d$H]p,9a #'!L H߬B&Ɖ,Nli{tb h0&㦊mw1\b`D-]?m ni\$ d1ϋ2H?5&8 + z-@0ɭZn/Di718Jsة7d,gQ=3a⛽ITl,惒 p>$++˔(r 8.Y=Io^Z ۚ3h$W|E9~D%B {<{VK~|у#*q8#D5 "<Sߛ=J(2YvK9;hgIrWmͤCg,XmJHgw* j8>'d3O36P`#g"^REq\TU˦FfFäNl1O͍G պ޳4!"м"7֨at1vCoƂ=2W8^SN@go-`2_Tb D=pͣ8=)~;fN2"Q(LBg%TYOz(F"n@z6zrRr [5H$wO'nXd r*O4421JfHYJY ^!,털k<w^,J 99;nsӝ\ }eb䀂vpKcT~[D0##=kD`qWG"yj6]2iSJW,epB[Oǭe&Y-M̭YQAH7u͏_Ci/Y#JDHnN\jޟ=.b !Fd'  h+Ad>κKhXbJTd2L@~7 s Jw eԽ"o[ [sitT:™}&{G>!}_hOV^6˟Fp`ЃlPX $,8C - f3V|>]{fSO Xy m{MYmƽ[Ro \SCAf5- lӇmĆȘݜ0B N,t5E1c&p/d!sݪO,7 ʮpr.=Jr:rPxD"]jBKR 9ߥ q})A3 ev$&>GgZag/J; 0;׹'NHB*1Ɵ}byb7XF IFT׭RM 8Z*}:vl덹ɒ$ NZjÇuAؚDw' (GFs+t,uxfҸ[R|ۡN^^mV}sN^EFp~O*Pn7vfN+'T;6LL!{8.[8̫zGyh[g4-<؈Bё%.o]jX=ٳU)Y"/7F>eǘޝn ?OO1 CvYn>XwN1xfIV<zЕޙ{rJPx }UrãŹ]òڼmWё$蔻12͖Cc6ޥG5iz*Gn{ܒdlхc,Ø->-J"QTX6~ _IS4+B>j3L+23Qoz.fӅCQR*O1ʌWyqf+Xn:ϟ_E݋Chs{C>c!b*Li1DLT:̃%N4L =&{1PzE2IM'WSW+KۋPCjgA|+dfQV ~"h'o3J6yL ަs!^J뿤CwWgMp|9chD%Z?![8o[5CԎ%X4Ƈ\0#BK@vv "ݐP4ņȏ4;.kaE`!W Ud+ޏA!4 sE@ L/a*IC^ahIYuLu`:9w^( 0m`]x, ;>lýeͶyk&O^IżBXt״AS.R SRCJ??WfA,'ru6jnPcvh(|Ÿ@ˠm^.j7q 4Fg_x[kbRhэu_R!C鐡Y4vm{]Ixv, Y0ȿ_d3vWUlzJ)!ΒcAopN|O]DhNf0Lm%en !YWOR|[&vAُz\(dbHX^0(T.mW;)>5X<*rݻ@Vf,N!w*}z]Vf $A+S| ^{dGdn; OK#pw.J-|73ƜK~wՓaH!52ʟpIULK`/+cV_!*:&֊JrpoK6TbUF;'ik`mB2+>ƗSMQk<cDZ0{g"RS"a= זּD#਼U`"=7rg-3Oni knAPbo x6SֹZ* @(ܵL%G[-~aߏi+T>(hcoôb}~QCٰ q!khTka4C/s/,Q"GpSH m-45fu,\}bjY&t.}9N{N/`x+FO.7vb_VYl:h% (g֋_82pxb $ܘu[cUv;`:]ΗPK ERW 9-铏HgI / aKLV;Rnzrto kq ;JV4 uߤŞm"kY<(bT*lx~M7j#8[%݅ B N- `8:4_F#Ǟ,_ך+&}\Wq BMp!VUӁ<='3h!N1Mtl;L؇DrÕ/ o070@hMDGI |DH;=煄yTo-KM]Ehìyn$<VX=bEjl&d=B2.{,)@<;'Ckv_m gYULzmBiQj8oQZ)r,k=+x{uO;x]IJNNy2qnPxro{~8-z8{>aMѹ~?t3k /'+t2K@Zgwd>+"&amUƢFy?Q8=ʙ'.F jQ(6 R`@8 Fr&S֒ʋ/wvKRu2O34m"yߦ;HdQEfAV+}Ȏ lrR=rڎ9̲`UѢE:!SRZ20)tOSa '*Hci=Dj{ž ֡$;D"Mwm"?unƅ/穎ޔ !_ t_"D9ubKv[OwB=~ *6JO'xW Bi!'Y /!pd0u:BHˊ"97 `+;k loa: ly}oX:kfXd(M¿`w@<_HQN9fh-Lmh~h$幭;ctiSOuxޔDD&XB_<=ު&nw5ν Ԏ ,CrqܚLe?\'GMw; GnNgMJsRDCOJ\LT%ZQj:'˷5q< M9L.+F`"v#M)AZRSD&]a`ɓ9Ś+[#j":o]RZMUd-~t yҠ!N QmHǼsuut[ F@YH`Y0W;OH8FV3Wydշ60 GWFoׁiY%Ӆ}`p +5y?{I9f!DU;t==F9*0=%RA`L/ոh*n5ݚznw$] 3c0G PxՎ)EψXSʑjSsϠ5g%k N%Ov'Ƥ Ч!7KK}«8Z^ruxz>uݔi]Ǎl@*NݷzpٚG)a"DF-$jKI,!vF_cUh3+)3EH;K) N XK1ah>cM񽌙]6Ӣ{ZO .eg$}33|#>w+),;DdVm^9NYx!/^қ!rkgbSe">j!q63[nz'}MA 3]Uj|.ӒL徯EZM?ð&-.﫩p#z~wXѱ G_v\{>*q>i?A~T!9ql"?U~e1 ?ihsFSyijb fO =s-T_ݗiH=8WË~TS$Rx{O{{"(ɗ֦O-yVDE\)Њ.f{HUN#8敧)"T JʑsQ$Ej=a me{i`rΒˎl-:KD~G>^ƃ0@Xu_| y)`!# *D(Hm)Z?▟bVh'\)YgٵWZWӱ&rޕ3cZ@ڜE+D$] qfd+}xnkKCR^(эZc@/awpF9"e+D4=ӪbR: q6 +N xK_ rܞsX?b詭3GS ⟳AR <ӴQAexB&m.5b~,J7k}Zg "wS6(!)?-ul ω+罖hzo&;byxKgɯKTx,}P3=z=GmRa3/D6Hf UjCVpFsJfX;t8_^|ZҘ)o2j1VQ%PS gwJ^\NP&o8oqtŬj~dXI{˄NW+.YI*tnЈە17ev  XFn,ʍCAR,#~Ih",{Y:@ ,eUU$;ljශM0xx5/T 9 yʏUi|3U (@RVh-)A =d,gzSt[>=_"~c J>*;8)t߄ex9-{DE;,|@n>C% nK #Gq/a4Ferw2bZJS(4MCе)>[9B>ˤ0׸׬8 q0S+iIkR8 ]<~8!P0H\zBMɼqk V$0F"{U{p|fe#ϙury>R131h`-e^cbmm  Q!$e>΍/ u;U͜@SVt7b0tڸ9(؃IxmrU 'b;JZ;M9dT7wCbzbm'S 5I4 TJ)skKr1p=,Lb#ά%y +vhFߣġ8ҨA>|R?O^૆H,egr&u3NQ.R?` #NjTE k/>4H;;;ځ jΞm5[:⼈v:vD737gR6*^3wS$;?6asI pH'F}T>w:!bZ1^H2< ('SYi05SD -FRD6uKxjty1Փ*97<ҒuzJ$a` ZmwZ4N7JɅ)=ksw+NF8Hc.I$OZ~>nk@:.ֆ0  ,ۛgtvDS45h᧹l.Ccb伞󌐇ܤc{As== hYRheciްx ^͈r@Z39hUnqjET%._^6/'.j[Lavc"aAaC;pĽb.ƫ˝k\дR]}L:&]ݗQvM;~N:"2hONF, *:#—A*6{LSp#{@_?ݞnIf!6 h{] 8t|wcޱ D_%jR hcU޸4r->>$MJ(ˉ&}˸ endstream endobj 561 0 obj << /Length1 1550 /Length2 6755 /Length3 0 /Length 7779 /Filter /FlateDecode >> stream xڍtT6ݠ49twJw0330 ]ҍJ"J twHR?zCIpCP%$x~ܠHhPNP W! C ry!< `": 7XFN0ϿCn 00y@Z]w(/_|+ #Ap?stUP(Ez"nA +;u@UAO}`$ sU#0mVCnnP8ʓW~0$|w??u#|`pï2 ^pTCDo#@=P_ ܡA/m Awm   ^Рy":~k:u?  ַ ~1**"|^A QPXD &&g =O"w@$QG6X:[BV oE_z9"søv o)ՆB`^nj@wtW#a0_(D;ƿv!|M(T` t>?[n$Aւ[FCɀ1$59SPW.}ВRO1mG!:Hw&Z'w\IKfen]NhQkV '.|! ԝM%楓oJJX4t}l)C!.?KЧeϹĊͼ}^| Nx5u6_n|G\aPܽ0?Vwaw\/WM*_{KVhw5CmTUコ7̙)[>/˗zǢ) 5ЈwJR*$X"]m8v(G}MtfP?2F;(]rd7g;YߛКn9;/BR\G+ <}1 % ^U U[W;4p?ۜ-(kL"SŋuCQ'/86`Y zjEdl  Fޭ3:+ȒXLhP|] nyP\(.ɷEp{kmw$~dy~]yidTТA_TwR)IP[r%ۦж#7oꣷTWڵ|`82ΪCDTQutrJLRNƉ@Mp׌akQ_c38z)^@{/Y5Hj7VUO1uX 9DO`?Daʋ޺rdcuX4*ѭ$f|."*1]c7m*v8Vti W%(?{rELg7/ꄳȦLEf&E<`Cv̀B] v#RwQ/vqw s+sxў㴍Cs.Ei9awBu0PYsɴ3?ƆH/xe;r ^q^QfL6 &o3:HQy.E4__,mV_SRw7!C \j 9֜M~d{za;A 4kԮi7(`QRO Xm|x^"{3;Y.lq2u];ܖɊG\hixRbyuHS9 -lBi%#sZe6 z&y2 FJP)/bsU'gxTHC~qVْ(5qpF]DRj>Oxߥu@:+I]cwo{d[KlbI[]sA_EEgb[ֱՇAub*} NӪ8璏>m>PxsPrĀKa[>K0.i5!,UUOybbanQ#ʘHX(/?YShfa^2KTN-gX'<#9ּʫ|ߟeQlJr5lKKOV)10\Hl 5%a{M{,щ(ȏi։4vRkۭuk=LYJg^G8W/IP_:l(S {BCbs贈k*gBZb>S |ȥ6'/˒`Àj#C*љ%^ۃeViّѥ]N1'BˈZy.I јi:xv =*o#DY$3*_Xd*)椱;[\\h `3(t Ih뎁zFM,_2hRE%2,⪭ZZcGynL !9{cO.cz׈`vvX7 ߠO|A+Fa||]-6hߌ4k?eOIH&hvNnUKZv+ҕGɴ~h3G[&S RHs#:|<ҤqBCnGǼ+yiщt+*c T5Iɂx SkLg][r hųiM(m;W2Bwӑ 8{G[_8J¸9,ш M̻k-D^'z_K80t5Ou40;$4^ʬɇW3{6\ݷ?4*1Eyuӑo!]]հ@@6 tȕV+f\n*xy} 0Vk;,<=]6EQ~v'ʃ} mCMna-jrog#5 ɱ/5ɶ*^Xqe%M L3_"' m_Zj0"6}@ t""ϭ~<T<&w܅64|>)ܽIVfLI%KJr^ `aGo[V"E²QwhU "(!6>0a oR'D4r[v5T-4zѭ6}eq҇KJReB" ECh傢sK~o09k]CkivyT!+ɽw&2 ;M$Xs%ЭwP5T#9_+\M 5$C.MWgC 8*]oO&U*,Ecܕt[%#,mCo1lc̀ߔî906S._;fB<_P3o()=>4 + u~S6G8w9pIlТALqGx4dws09aCw)#laF5w>lV^CZ^kwyjsn .~` m1vݞބ&%%%װt8o/Z)ZgblHQҜqZ;ޠw?l֬ojh6ҋ]a J=pW# `LUC2(q*y ^X,}6k#"EqRjiȫwBRHb]WAę ʹZ&z}SgD}߁8 +{hOaؼR4Tœ.jٷ ބDWYZMJaUVt~$:n[6>3%fUr_GYլx60.N W0Qq]OR}N $PqoL ^ De]Fఢ3cX ho^m;Fx[ Y/w)򰧂X5/7Q4m՚R=U=/|xa! LW.LJVy*^ع,?]­ F{@h簉%Q3row_&75s|LRiPLQ㐑c%c˱]zeO,B"k~ #FD7`XN`2ǐe?J@㟗yU5IZ*d {*~tDJ2̧@`n^^:38E mQI-WI# mHc&%c~ }%Qd|-F^SwwMeջ2/t}Kk4!&Yb{l~K:KN{;!ݜb('(zvmb̙FwPϞ :s Ĺ{O?&**ut{ 5B$3!:ŧڨ 2E^Js;>4V{r4Yvא+^ ~# ;/mFXr%ԭ56\|!is&ٵ׵8=V193D[ѨiJTYGgsIdQTP:BM6!wOLBF'5D܎0T5n9>CÃFhrjU iǨK&4ȳ#N?.Σ=~ ^]-zλZF|V(6='&ܪu@ UVky~l\g)VV<9*Y(ָ[hFNI$/c߰AW={V >q=N*v9ES]K+]ZfJ娤frӑw󥤪U^a}_ï!z_ ,ř sovQj{"z><|mY[p"U%;0$M~ȃuW_: [|@j3bש2[cEmEeAq{3^I3%6./ʤJ-tVf+.t;`j!Es-맂 P8]ϥ 7]O9OD3|oXq_tX;6t-@uE 5D|H*%AS+2}k\ ki| sԡ nB]Tݠ.UC:oIQ˱۞f˫ OB"k \&z:׉\кI 8u/dt^F60DͩkWIJeABCTUFJjƌ O*VA~]W|RǪ-Γ4}L&C`RKSٙl, 63<\3^'(qS^g[_󨨣\ynXp)*TgR]d>( !9f~s/yxYD6YJ=.>I}^P+xVZ5ïӪ5y)#p^iӻ@(T-}wJ< TZ8-"ʼnG]I՜;[j4Oc<X(<Ppv)!W!xdEUnX@:wxԓcXbCΥaMx07i[,.xGn?eg` QqOsJ+c,~`N4{$wT+,=})uWQ 5~sSfoWzrղɸ:pԺ'k?nm#%.%'ׂKCuxe^ Z,UQ\"ܑ{fßV NEk˯e*%mW8_ڣꂷCmH|z+@7?;d:?+{O`% ֞f- NprJf> stream xڍT\  5@и;[pw'AAȽxo{Vͪ5kBUI$moPRccr0PSkm@Pk `{;1$@@W$dowqظxYY쬬|!;$`33@Awp[X:G)p- l (-A+m`tvvgaqsscB,n`gK:rr( ]3 5@ ˡaot^ 6`S5 x]!PqEV{sllMwvMMmv`; 9PVdvvwf m @W hJS: -Vw}S'3F?Ҽn->Iu=X>\k;{7; se8hف]@rs^M(,@.V^^.r7dcMПN?̯5x9;_A?(^+  l 0YPj_ ~l?>}2x03{;1<%).nb`0sX9y<>G[ǿb$CFGM@7kt>+~3_"i?@[ߌuq~%aT_2_3u,^[/;" vM-jZ jqżF딙Z^#ꐲ37cع@''".똚n kf `HXdAE`QXxY,8++S_:L,@,|&_ՙqsX^&x,пk2viP^ *|d___|b/vGk&ב7U '_^AYUlڹ_! y=yטe/'3uqrzm?ELQM;nkĈݘvRo?3"9KMmkde.*I/IZu+;f_zmד7xpf"޷ 7{ =uCB9,N_JՃ,bfѯAg ^4|HrWOMI"> sɐMۘ(tJ;xje>ү;TRC$9ŮG8^&2GfktɷuG=<ƉQlǞwxNfKa̓ 74MRkřGJB>ԝѮ0mk3}̃lӆMZҸ7X˓9Kfѱ:.'s~;0{iZmoj A["J[yQhpʥOd0fP%ʹWcP(%QGOG0eO27S܃0 /RT9mXG9Z񆼺۶q7B.;J*>LKԆc:֯Zs"kgN:JJ28,.30?v9'.\AlС$?!n8ד'R_E)WN _K\#-e&at4ԲYUY` ttfʗ,M辺~aJ<qkjIO4uh>g>pzj\۩_wEDaA8&bbs L=GZ#!F[8lg И:u] 4~JWeax@?bn{~XwȒоY0kh0/,\gܺw{gC<'9CT5'5m[0q{-Zu\&Dc&Nӡyk๕i*߫FWTXi|[L}A;o#~Dwl^?pr?fK/zhvv#nVz+N|Aŷ5eqMX$wqA3[?JY 9m+I Opn6J Gu{DP^8 Ioq3! VI*AmX=h1ZYm!^3,եk;>yKo,9#p" $Ԯ0``3IuF$40I]x)l vR`JP!= n{BwTiZ$/uY\jzYC2^l/r5ܴFNJ!fA+eG`o31vWjKC W?up 8"\|ˊɡv4`ct}baK}XOkۣFY{|GY/? <ۜ ů~8ܔՍswߖfʠ0mTS7q8*l˲FV&Y9yvVb%Fal1VV[LeO`$F ]4uǯ*Dz&Zn}&=(B#^Y:'߱j\ 4 L}Xǹq nUy?#Og2WTk~,Q{|6(=0qim;,CHilf鈵шgE#?3dy9^!ڟ7 }`˹7LPۏJI4EbDP/fMqy(x{O]n{/69#Zh Uy.p,hv~j|0~r}vs BS)ͼ伟zPSY5+.* EPۙѦoŸ$}7* JԈ.K/r%^eu<&!hυ5(9-ԯ:@1$|}]69p.nq.s ]61YA]ڼgvZE%X[||TٙTy>EU$^" [!Ξgsf5_%y%s=1a[wf$[m\=+UFߝkAbR!H~v9:GE k+p g֥,@K0_;M  95ּ X=bk73]V,0oc_PslHX>Qr8pua fgZE#}ݶ,|oβgwdi,(;ad/0o - B0pWiM-O~H c$-$ z-T_Xb*xih[(k; *Vjwk'4~=qvk_Iѽo#2B}?鬫3Zȼ&q÷2/qHG*7zV[x?gADK5ßl ~Hakp_L"%/{iB>d ̤9u/5} 7vhs2{ r<1SUi>+1tUC̥5B~X.9킁6<6&2XÀYZB$W%\RQTρ#'#1b0NԐOc ֑2R34"oBUIY[| @ugcLD_oB&vB5M6W;ˏ9zֿ9VfԙZ0*+'Zݖ|nT_ğCK*+\_T]98cyQiClb 1͎Zxꅴ%@:X`R?ucK}+O9\ԗ16 $-Lo]2vLo>ۺ,qlzƆI͹_#nb.w  ȲWt։t7ԙl?C\Q >d!b3 MJX~~`ZC8L :.╡w~4Ь:1EY|vkRhEr$;^4Kiay~\CѼ'@AB/ P{-Q#c5;1?杸5# f!K'k drPN?s3T82T(vSQ;&B-n<kaϢP`mN?sh{,Hf+g VhOηbu.>urRBAş =>mr'+UЋҞ?"פƛgW)dZ(Q<*SF!')uqqtY!I4JmU(y-5ø,%; |*C™oMԥAb 푤@UMpڂ;4iA"T&aLYc0t}m 9tegVⳡxF~ ЊSq^c%-Jw28Ka?Xxʁ-atlcU_r!] z'}*vdQ,s]PGZyA0ƹN1-ށ~XzTobQ;5Q(pvj&} ښAy6܆'LqPrz+z‹Ͽ'~Sw?[?sGd^,y&)Kx:c_m+,`CaYZ@P%GȣoEy 6&S3>Îm j+t/d/ARUBSAibWD/u$ w+9Wt/Wpx>SZ"t#gOI2?&C5kR)JdQ"i~#dM4猎;k=LG4KiF!@& 'ɋţ@ZGn}=&%5[[wu +M4T4g0Z֔OӇ]*dtk?vUr` #~1zIzbHR %G0dr7Zӳǭf%+"#  GdB7w&do7:l9u^0 t21gi:Pr zvoN $۳q$BuGMfŧi:0U"`siB/Yr}'~ 2qqP$pGbt(3Szi6sU=De=F[cY 4.RM&#e#oXF#@W0nK4NIe\&r6S Ұ4դ"j(V!? 7z3՘*b_5hazacd+U0GծEt ӌhžKZIKR\|Zz|!o(bFөV~V泚1vT TM9=y4aE SIR=WPryY,_0M/^O[?Vfֆ٭E c 4@Gfz!~Is]Tq(9';{ϷZs+F,xdNY)<t:.R;4J!a]N 4:}iq-FE30 tYS e~޼p_֐DVgM'S#ѷ}RUQK?qPlx[ЂXV˻dP[f*]ۿt<؁fRϥ.G*9bdٱ-XMf.Wi`# gARaqjp Z'R$.zc1ui^Qχ=k0vP]\lfq' }G8Q9ZGz4 z} *,y#c!4Z6ܺmjm@`C'ݻ KP$ T$6T5 "`+C=ihH1^=;qj*o= 3+i6dDsZ(mIw.'N-95R;]2RH:#IeDbpzN!w[OZ )s>(u Zkׁ" ow  sZ{SG.o: AsFl%|C1)[ܟh*&u1HF,یUx<Ī T ]NՁfI9 JڢwX "7Uұv*$%kvZ M(xJKŖ ].TmFl5t!f`g (X0'q)"h=E-'cz'ĘcN9÷$mN:urnđwY-^^=Fc6-m :&& =jdMXV 0maVJt\v?P[p ٦! Mh\:T/,Ru`ڳG9s$J^%*ˉ:w[Vl`V6-5 $u9Roks&95T'v[Q,joSe(P~!kdf~?;C˦ L]TEgUV;A1cE/ٞeNX`#>~hVorsRYNpTUm>)M̯dD{*xz4ͥ,\ZScx?Q;8qE}%Th`@UET(;8~hA%UZwގNJj@py\J*tE# kXOEU6̉}b)3r#>;Ӽr3.ȹ-x0Yap=ad#H C ΅( ")aN|0+3yx%7.T^ vz*V::K!p-[^nh##=T~0m*Hˤ?BP6nc#` fx*@R.zOX`Zl0Ìp8_%K'e:)@t E ѯ̫koJW/IhtE)Ʒ.Ydf X@~; rgQ|WJY+P:)gL\'? ü2Bcmb#iѥCc*87V޶/KTjǚTbRt7dJCfM35$ʕ%1A5yPռgڜN5ءoXߔs7:uحF!laSc1'NgZ( )d; Vcf'^:6 ]z$F6̟cLKpӆ3> cbR5 -l'*}gE 9$ *[K{#*m1ܲ'%ښxq ~ Ü tC[R5m t'AokASyI%GwV] $dn4"Mf-)t}`Ӹ:GOoGqR"ӻ+y͔oR[46ammW7A` ԑ O<3p:FcOϿ\0(3NXlV-Eהڐpo?%N4QDw0~@}^FeW=G ;s_bHn1A|d6حL4ԯے0^.ts{3T'^=JIhwo[߻93Mu!xɏrF78fzCOK`ax.Jt3V{{ Qm+|1!%S?thǕ2kH=1UjmhUeoAc; Èn^# b} nUӮS7,W%L-,btgW{ O#Zͣ.V/0zE>M-"u~"QBnxJ_iCa J= \S|˴Pi;bty-fw>2 /AԬZSՓOyˉ?hc0ߣ/u1+>APMI+,4n Rr</{< 4!)U7Qo`MQcïVTB!;3)UM@o&Ћt(]؆*ƵH AS!Ԩy.iǃ˘ Us6z5iSXVm6~9]#YkQb1o{)Ͷ+b?}rGKނR%xP!;{Y %ePixښ(J] p^mo} ~XcfףЬSj?|kVmF:3vƺ/5Or_eadw__PgO.O\)N5]0;gx"׍D얃+EFЭf'ik'"C(s/~֒]ݫgz *)#2&F,T\b6~b`ZV/}\:qH6'aT%a5"և/l='>9ybV&~n x2;k$X 5+v{A^M6t{mZS&8į'wѦ4"v(1 [pj+"/1lS?J]r׏!;[LY/S ^<[]bc`Q$0 KˢOf vM$LƯT_Cʚ̚)F{{ð®ոW"dQ8NP؏ Z_.բާpK @Tc8UL(#Ne,ͅRF:W6M-%/*V9cY,ˡs_c e?6R[ B7 dfJtC) " e3co!3P()ڗ“БWEiR;|> NfW+j4Dpq8V*Mh._<5qp%T Fx>0Gꞏ{@BWq4U8 vh|ϵ.:bӿ߃ʻslʵy~dHXxi;&d4u{9rh9h?@Rh^=?Jʬ9,;*Om]cOiJ̮>pS}ai4GϦ;5#0nq O5-2! M #Bl(ώK;Mg]\Kae!6=D-ȹMh4PvQ |64T" CV-8Qv){!ve{ }NVO2'O\/H19Xln])4/iп<OP1uJ qE^;3Eb)iAʸ&xOxUGWvk_U\5 |>6vT͎Ȯ]N!̰Peb o)KWWh %$D}5;lR*Owo1z8 t873 pLe&+P:IS.,NPM,={CJq+ۦ/HSW&Sc~xȰb!#A 1UJ zRxBY$$y{LV +ڪa endstream endobj 565 0 obj << /Length1 1433 /Length2 6656 /Length3 0 /Length 7635 /Filter /FlateDecode >> stream xڍtT>) "  ]CwJw#)30 C ]RJwHtwI7{{}kώ9sd"khA ~nIt1B]\a sCP;eu`ԀjsBr~ ֏P8W0ؽx38a[͉svlH HD_:Vv<{9A;y |N@P?  v.nP?tZì@: QP~2Gw;+*s>99'Ї_'BU@(Z6WSU6 /OcW/qYLb-7@ +ԇL)?Rtspf`G_(Һ!Q@dP#j@anUAQBۢ+ \aPkmeC_o * /J_VP+\`Wؐ E}(ֿt'(PW>(ZC=3 G Q)@~@ ޯkFxA@0ƈe%ъ廴iD4m}YZ&=>( k~m,F.ҩ"xDɒmƠ&/ds)ꅪ{P$xCyl|>{2[mslgevˇ[έՔ۹J ӲbdKƛgjpr'LG7TVFw$lL;cHc|!"CioRBŸ{g- "iYl,_ 'Y˻(]QʬacZEp?'<jh; 2rKy8\:nV}2f0-uր:Rp4G$ ˲tm#" %Ts߀%X#'Alx5ܸSm-ͻ9nFܪyL h蝟ޒInry?y1X;&ϨqNXETg_q|(Lg BP2iqf gb95)VB߶NFk^fڴ鱉xf0;!$?zu&M9`mS*:̌gZf `~0]SX bblGRǸ7i@ωS8m׾o(Sηv~Y';vNnVYkg\*] on-멂}>SR߿ny.rIY+ M\g[6z‰fKa5oZ:;qYeTH ْ1ĆaTzS\c%"B5Ŀ{lD@3pk`Eѩ&7({)O D͵Mgobʋǜf!?t(=8qqV-^X独OƶJ;Z?hjPhW([JzH)ڪ&I%W0>Z&+K+_qf3b`yЛqQIU"I'}QqR[Un\i*{ 95@dImWD:s?% .:{6gBEZ킺 ^ɓV]; )],s'CD?A^Y~HU{Ub 0~qg ˔`7!׵$K}N){HxSQv^%rײo8X:XfOێ >~yJꁰPp)X/9/ņiƉS(|;aAQՔ)Yx2VZǒ%3&./#=NZIC^r3Nϸ 'SJB;cD͠ K)A;SNo|c׋`qF~9 0p$SԂBW2W`j) OmO LC\Ƅ0VT =^qX|#N䢵ߟ)Yn]h}Q 016:w RQfEgY5#@꣺\zd}w,Ω (]Y=M? WZtwj¯q-.ɪn  &eM1Co%zMZg3츒UT˩xzev{ B)5ӝ2!ʋ 2=~?mOg=ј}Aچ>f {)vx꘹Q'V9ԕob)PS/Z 9KY?d$9HL;♜ LPƚ/qLFҾl2Ni$rp7eg!~-e29d2HKL*DR&\nͳs݄x7gxmMx,yXZ-h$ ˬM7闼%w|x0}}=գ X"|A/ÉօCM^"֍:&li}ªscc v;S!ϓ|dS/LRDoWܭ'[6hsI_Xc n?Hphi5k]dXJ'C" _z(fFgrO2LxT}I`*7CfuVeeJ۩-㥒º]@TTڽ3ȃ}?,u]R]jYtI[[vHDns.˸cؙ*~Ө M2nGMJ6J\4qc +_p4+"x{ʟ-Vf/G|D31T`YXjըZW?ti|e_XfWo1fHo֕݇΍0+u=п;#M|-9D~t*O vkҮOOo$%BB*aƺģ  ?ްZ($oc緄j8- ѡgRQ7sq fȋf(ݗܱh =03z F <1PSYbĹ+lQ5)Y:{!n=X'̞f˿K[WndJ ;h|g㿈i޻N(l1FUMKR+ΥfylQVrLu0]we*`!QbLFlף޺Dw8x}KR!\fa'guiX,O w{u.g5l-U*ٮ)DFC1:xT#Շ M.0ceS}6?|Y33⎔scPmV9}vtF4?ѭf߳rh;D5<|k#pqσ*[J.s1Z|_$Xcri$eτ JbPmMlXp{;6Ԏ/WjGv!_&"D/L~շvجi~#شm1AyI9 FHګ雞6sC^wMEm3ѨԛOvqzWȼd}EKgk;wMlKc54= (nʼnpĻ_6u1=R~FMneFl2N+xV~iS ,l x ppz<|qJ<@AqbUe=~> y}{ y\#El9LJoyΚzH8򕉕3uN6>׼誘qб|h5Vh܆̓̊Ǹ\pDCt/L(wc3u)7׾Kĺմ\ҧ]yG/>`H}"'#"؍O=N̩Tq1^ S2; :r(1% /7U}Ld>R.7Vr8Ve$.2vy)kG]:i] 9_D:ԧlkI$ j}tx'p*CL.8sjt=hj)ǻ$6fj/j30ų5TŒNlb 9gڭ>~+'YJR{gq@ޒ_e83he6ˡcco8dccθkEMK~ Ĺ,;_ ΩqorO:[_ڶ O9ka*Sn Gd ({*c"5wFWD^z]fXN\{*Q7.4;x921{`CTTTN_96QkCWY6J1?aj@:+D=آ,hSQ{g 'pV~ٮ$@C,74f%?*rRwoH/ endstream endobj 567 0 obj << /Length1 1533 /Length2 8430 /Length3 0 /Length 9460 /Filter /FlateDecode >> stream xڍT-[[pw` 68.K Kp@p =hpy${{kwծ]MO&ano؀B)~''7;''=6f یA vrC 6=٤MaO<{(@B.NN흄Ҧs ;@ vƠwpXZbY$N)b =2hك ``88M,EYn@ vr~7 P5;=@ ]f<l! 0)jvtGN 6L%b *aSoS)rSs9A`-rNt2Ps){;;0>itݬ 7@-~7a8<0Ya^N~n.vYqN6?u`xj?ax90':as0[Bd2-Oq|'yCm=_m5M :ORqr@~ iYM!WOڧcWŮ `w2U'ՂLܐ?KOg ufM D{1/UЪ!.vU> Il@vNgY;\Y%:G;C~-OQ{/˿\Os1i(qLL=0 Ojvl;x`aRM?7C P7xiF' ?S.mm@'_\D_σA3 ֫J r71+}.\#4X̤jVFR|PȺCU*F U%YT% N#\^ ^8u/b施Z8ތsn _* ӕ(u4aMfڛ$Ykv1둆aI4J"qn?z(;#]6d(yP+tr \S{K3d/LG ۊr,g_|.TKɇn1ҷIq5XKM]:;T9DwǷtpOm]Deru^xmsbZ$aw6 E&A#l9**s͹(QM TlO,>W F/_)%1 ~gL֧w&L6wRc wB۽vD8Of |O`L5|6^TX|1S}JJPȉ-Q0k_H1hNיޢN}~*u\!o="+]aq;eNWKyTn@7DC?5 1y ""XVL@ M _bÔ/FgOt_m9LѶYky* nukSr]ƯCfߟt1/ACEulC҆9.(;CO.G_S U؛٫%!g,Sa%:ΰ׍xZXhhumڥ^V `;]Q 757qS2#2EJnuDLIn{Œ==3G^leygQ 5v0Ijs6%YlZ͙k\ }4a"~ Pez U I;k0űd|) xa St̉]PM9UE ^5TCi~Ĕ=ژ:c)s* BL!Fl`o ^0jBk> 8ɛbs +N0(A+7Z(^Qk 5!tO QgT?B%qZ#hy)fe!(g-on/Iкk$V&dA(=y;"F6!`ej  *Zj˘³ 7OWG^kC!V=Nm gOc@h[R"nH-_&`'NXX'dχRG-`aaSFuk@yQPvE⚅ren;O)@߷# %<|0U8Xq:F,__ȚǓӷׄPl رQ؀ryԈs'r`#踈aN7)FiO5 n޻bcM6Ʃ-GSq9:ňwO[Üb NT#vemua|M&z)ٲD`gs3ͱGo)f>M~•t!iޝ i-s'Z\cW&ǓSW_)x.T=>?ԅ䘐_*Ҙh.Lg{)TV_Vk^mгo?^#|1nޗfsPh^ID810@4-}SV9ك>|;Rڲ\u!%LBߦDrA^r}>c!-gTŌ\`u5mQs՞Y qgD-zr$5Fg*{2((By4AN+fm7‰MwSx2?NL~P =CPc[b0آ^@`1tsc$DS>['"?nތoyPg-D03!;r*_m}r8Tf,R#QQe7*62ιxئ;m-'θߨ8JkT,QCu!esb}^PQmk5?K*EUiKqJ#N -X=gYҡ#K֠hNڕcQmZȡhRM`]Xq/J $CKD6 [Fإ]i ;7}K>Kbtҭ)ϸwak(dSW]^t:n S <^ŢkW_."oGN*,I}.AdfuCvͲ`ڶ<ؾxOKZ2wlgu77+,\fD,+c}C2>iQa/5_NJ:B0b{'Fha4"Y<>n$c\,VO|g֐9DXx̜p9s OX_Ē`6*G|yh떗Qԅ~k2-9=?kҼ0S4>fR`pl\[SEeyut>UR[Ž>fᥱͯ1͋0zt]r:d<'j2 mu2v}Y4Q#}b $i1%< LU~8À$%9Qe>'ѰpZo/,h6n<^{c驈yG#*)Nsdh7pD9;~ygjw~cf%yķ>oCO| *Ֆ/:6t" )!u`-ݵӟW46)RS1ni ?ż%MA$Sn=YP9p!m5w.|SW?Zbe: l.3ܥFИ)iֹ5H+ٜC}:BG/<8;|~&<Ie}l]d$#tbOPNWxWgqevF&n[~Sٍeׯ ?Sh!?zqi=d&X@ۏ۲BG вI1\$8_LR 9!N%GxvT:6hn*Zs)quUdbTM' P}9/ od4]q'mk=͎xOűX],םit:bdzVX^j>Ug;ijLy?@-LKIC%>왦#sW&&`-#GׇRf}#[q~}jC $>`$L}.9%8qibWMHcEV^V'3ߴ=kFW گ#fPpEQ$9SN3se=(Dꢁ3e4؀} ?ib`iPa֫z9~{[ͧ}i3 _ /0lTIr6Y˚l)r~"C nB!eK.]ߔKuee՜ʧ Ele,"ww~ ףNTgBDoB=. < ~$"O wgU uc Eww LURi{Xmk+Zr6?o9/Bf[vI•!IlŖ>~3!]A"@e@3OO[iټ0Y N[ (6k$:/ͺ23QOHT:Sk QM@ZxiҀea65T_QGJ'/L#<-m B/oٖdedeSc};,䙙ˋ@L,Q5o,98J̝̲(WclߠNTwYm򻹺!f7VEژe_ ثfKrb?HNy}"m髦͐7 UpEQ)wΖa 1X^n˒)v$OGL Jq]0uuUE_AOzPLl M.|,wtʥ\MbRnðQ~.QuEI䃫Y0O6YVyZ l%U^#2G+{gIWNWi2Mi 3d;0iofNOfaTCpa7zsY/e u,:VpJxwK.MNum Qwa6=ڽ哟,cjB{I&UU.z`!czC֢BF@T{,̆hļE! yE3vajUL EV \XeѫF)|*ZHמ%>JF`J_}^ ; 9! ,JSzhAS ~Zo+oZML%HQm~r`e\1|-|N@/ڹ?IʳXO-X^f*ĘbPі?`$3obA*8$M?+">n\CO#kTs+q$7*BC%70zb:p1rCX:u[XUO?')\T&ӅLL.,AxG/Q&@ms33 Y+sab/k,ldg+[G{9FjfS334)oj0fzو8s|Q ,X.#]) f^I6\Ч){辅L?.㐼m &T%ʘ%IddX)#cw+SGUp#BdZw\հ; R}5^AJ Km阮PTgʹ3c"1Ա'<Cr;Nܜ%c&;`笯K23i.R돫'Kr(POoQN&g; |U<eޘ#h7\U I; jrQ>Yy4~푷KNbzt7̿Wv2:6Cޑ/ 9McٲO=˟S<f[RV&4+ӧhRE{|ͦdd f U0Po`댑(UAhS-!+T<)v)Sp>ݼNS=u\ WCrq|kގ#1j endstream endobj 569 0 obj << /Length1 2688 /Length2 23801 /Length3 0 /Length 25310 /Filter /FlateDecode >> stream xڌP "]!Kp ;'L2{UUk  Pޕ `ffcdffPr[ O tvr@h n6 '/ /33?μqcw+3#@O!lea JG) _;=@hhjl Ps0zOj~KWWG^&&Fc;Fg Az%@tv~ P4S#<@3Z]@nf@g(9@MFXz{`ado{de/gcSS;Gc{/+{ -$)J07mhl7v7561@RD` *幘:[90X.wP%.[9MAmbg6>Vf濋0ssdҰrrʈ$#8x@'Ԓwxu/G࿔,Š |"~V@xcw < `$Aw|` Ae`o_eQԔDE<> Vf%=oecW[P @o,E\߆lmZZ7W(8j9ZʸAmr)[Z-5~_=PkсNpT@oJ {S' 0vv6 8>,[4zkL {0O Rke0,;w=!o:߉JP v4|0Quz~i k{ɩH !f dWY'7n$")Ϧ}zN9X9ByRhWBXZ+OۻYoIJt~gl>[q5.=为8hӔ>Gi؋>kCKk (GVm _X RTC{ mΤJ l6@£/]w+<3Mo9D^_NcC Fv{ʅ,03rC\pmR5h끦©f5גM('0[7p#J2RtU(^E,ñc]Fn4J/BV3Xd,a%hD4$lh箺ZA#Bt4n[+0j`~RH4D|? ٹ;][e- !15=B埧iO&QHۀJ:%$\<(&; &ZFO9?s: =|T9$hA*ɑC-ܷ-Ap2aȿ?6q)gcj t8ӧlQ\#S,_n=Y o\?H #qfv9˹jvm!Zx7%t ]ݝCOMϘCx̛ :5>8) z|,R6\{Ȕ\959Q^zl191]Qnx"BUj(9~V%Y:Nerr_O5 [zpNxr㋔)&eq3jXp7ܒ2 >qfuҖ!!VO|(K2~["ߵRr7_]fzb%+Jw ߅KX=HfvNX4bFD~>0':x??NR ~fwX~Cv;*maA]J3YJ"Vs]{PV2~ϓ~9JڣyT|j^SB e@ʻaBYP* i͇ڭP0/g@>e &o&3vS(KiШ3Wa]pWo|A& e/ D  䐄;Mgua" 렀`0J؍赧pX]`}oG +rZȔ &8͋,sYAaqJjPe]g1phUդ}uwKZ~4 FVp /6/UѰڱJ;%c!sMz>+10=|SQ]=8F`Ԟ#!4ƈr`(lɆ'l>퍫1i)cHjo8>^n10gj.V HSok"b NQ)oˊz(?<"_@O`KTrINAWF͠8[j[uoz/*,؟<;N㥀$"l{$^X8f?8ޗF/|T~ ?) !Qtvs5+3,C""<,JQ󡂆ks}cUVTsLXiߦk[ }$[6W lM6O΍aWK4 ;}#w.7>'d @wypI݄sr0IZ@%#6e m=$:`ƶG2q pQ0#gֻ˦wov3@Z+䰷W{awBs]'7]IqKV?Xx,>pK{ˇȬ}u]8I#Nu'a~n fW9bNq—ǟoj+/ƒ=KwJ\p) ڋfS!(Vf'BN U˦)Rm!% UgsTzF.mGInvֳj}8Y&zvH2.;_1+GqdZ*Q~F+[@ty\F?P @v3iJe~1@AYGr~],il00aij]ḩ$چۄveLդ)ߠ.уr% v5okEHvya䙒{^A|Wx]f2cL>V6K*UZ{He2 3G|֮3k8Ha=1L"2ZI vt"5cu@l{!Rc<2L*PG& aO?kqr᲌k02ELm㡝Vu|W|m! >Sl57?*AKg\ L: -Y*@]d:>|'t)Rf.jVط=}y6rL(~{bFZ HqE}P@Aٸdwsnoj8 * D>jܷlOTo+[}:-~}N ?M9R RH`\AgVtuԥJ!H$̅ E0ծ/ypp]7'{q n͒әO^U5SO]#woBڬ} YEًYSN@Ɯ IIS\g4C%7 y+jEH}UX]_>d^\3 rYy6IT?)RϊQ=,ԥ*"!̲ȑ{ꃈh+hijx:d8uoB`ߩ$4\0k^K +ߍށ[ "<>xW gee), ZkY)tE-o5e}?F.sR9B0y(NJQナ"풻%LT/hC;{7K$ăD˄=Q #Jq LeP媰yVYR&0 *]:knzٹm}ppJ^ ݪ2JAQWZznq:%v:s MtP7yxe*R:4Q =Bb{XU(`w[׌|6QKl+C?F$s!ǗKn7+h$"5Js31|# ?xk87k9v<ډ 9uR}:*)'즩qK֥)ie^zs=QFQ4 Eȝ|r40*;DgV}=C N`y'4|콿q(cETUJU?G+9h)qV1 m .a!ԭQ/u2Aѵk"~hG/ %3e'zD"|>#مsrP| \MM~g~U u3$!.b>bjA4"G39H0-@e~|yv: ?Z}WغV%F[+!Ȱ{L[nxwwKk C1 ϻ\ןZ-mA1]`Hm^_9Py?#=VN쭋:^ v𐽏DLU!+yF G5ذi˺P6B_a1}mN8QO|X: }zZ-a@aqgj-.&8G[jL-s/7ҧwb{g(MMY!g[(x_ b\ k}LOL^X*u-sA6$%ؙV}1D| H,w<#zC4/nsQ+ώz̢j3=$i4T1}:(g@dry|+p9}[!k01.B@EDKzqcڒ϶&g3 agA$>8Z|ݩQOY=5NdmRb|;¬ԞyA8OX7Sj}å04;jѢcP~fC[?`qv?4~(m*bw> ;a5 잛'|u\'ˏ8aEO M^{\hTC >3YdVMV̡j׋$W*6QaN)Sr6<>55D/-o$g0;3'-'jgn-Hft?2t]b fa#%ԧ{3A#Z CY񓊖㛧``9ZWxE\L:tKշM>F%_tH 0mդ "NWٕ7|v_4%O\GQtX,ʼZ8L9{j߲P: N$}9H<|XK>h9N~R3LJw 7$!]VGA?^_JGDю:a OD]j1 #7EwhYd839zjڧ[)c)=|@~9#*[[vM,,T/h׆pb5MiytE[H;ITcdSٺN5ID8kEI|ۊ'QݬPT ,+}3aVp1/E~Lf ! H+bGPz3ƥ!lqn^/# xf"%-e~1 ԹqE3#GM(,?쬝qԲdhu:υ_Œ&,?rNЂه M~:ׄUmrU[+-bX2"r<]Ų#uaQORJ9!;,숞Lغ4jC$;@pVt YUr݉YٶJUCqp|cgoZCAwAM;qVf5Gme6 )|dHQ26>rB kvaBS}Uy9*`dN W9a:͔Lۗ Q\bhs1[&hz;}_Dג4/Hae1S M֞x{󙊃uF2W%sZi9Slg['-^P y'`V9sqM+v>siR_㘭,?;"O+clLZf ->#ħdJ,r"߅,vT)W;c[T~k6]nN"Z/8u>ۥ`1.%'e AޭEʃ0{k!#'>[KqXVqrR_QOl&1]ؗI?mO2ϨK J"8ZYoCuc47\Do}F/z'hreoœ'N LSU:^> nԱԷUL F3BTWE˪jmk:h|8xr\MW^[ Bŀ'qyM y6̈fз/oSg 1t8>ۗ2˽wԺftnٽ\Ax=̐ĖDs'us}oAk$y$AA3ٺfl?m[.Y| ϧuN@[E\ hHPa* ~$g`M ∋)%jv (Jm;8;[0mY0?v O—ҞnW|#|Yj0>IlZJmmԃY9N4E&:S-T2l5a!fmT\A=v(OUNYD^0iky1&bq>A F{nb|T!H)eʗv!!$ dYI[eF3?SUV7xZ.F~Oב[ZFyYVޮjw`dD_x,m(\J8fϨJ$ d0*r Mo*ӀD"sX@M@ʦ(Nw8!85K(\ث㘛&m LlDх{JfbVzY3٫M,rxm`:w'X\hRG͋mG (~S^erVBܗ rEIJ'C:R窻уa -.ۏc"ӥۖE7ZRoӜу{a}ǮmZŒmQts:T]$Լ߿t=ڕFZݧk)ྛO ڄZE}ڂ!vA?!Z1,ŗ+ d>9Vn҄iyeVQߗ3k>i)oئ3 ܍8D4y=i d$x$(9) 穙(v>5h $A"S F=@|~b bvWNJ*:)<QfQ,(r]0Trƽfq98H ~"Wh~(|,MyEzmiۙÜ'{O۠&bǣjp,FM թmH\x|^.&<2#&Be&<,rVv)ũЫcϦS6IdflEbtt>*(OQ^gRw"~9EJ;"$[4og)cKm{ "Rx8?eG)ļ;H m\ط9o Y}>]IKcM-XQrUJ.|a$9ckqD=tK}C梨]Mci/M6WOp3f5E%>͖ObJiR噔uA֐ kՊu5zv>}~HFVc宰6jz+ ;sYe*FZԢf7RӤ\#>0#Y$.(kAxu4 Qr%9.oBUpUE|Kd׉pgjqn$@9W@<]R gN1pw٥oHH_\ªoU›Rʨ)PuoVvQs#Di2b,|S ᚅPy?q5+GWdVA{͜n-S GR bq9 I-jԀҧˊ`wZ{t)25J0u==4v N'D?2Lf1ťCq|a^Yе/\' fva(p~߲Z380p?&J^( B!< ;HH iy{2K+XL&s[:/Sl*I//ߋPYi~!j4>ݺ#yM|H&}4sI &wi<Uw(5?,}`pZ8Ϗ*Xds٠"b40{k ^s*Zvn-|gz}<9l!mrS*[!h ыqkTDڬltiaho?Z&i ~NxQc$1 Lȫ? ڿw/`x΁UϙL|*Wo~i,ȏvIx8Ժ%X[7 OiL\Ln2B *Tp:dς)]ToJi"v `,/b >4NDiCɸcؾoj^2l+;ԶrH_ޱ!@{8v\wl(:hIi 'p"@yUWvuqE'^OvVBZ-&ɧFNࡂ])IᄊF){-hHwr@82r)-בLfv>zm}st )_ox۰)а-2d&gT=^Vo ŭ +p*i7}}#y}J]gIB8ު0]}h ,NCT֨ew0HvKNO@E8`=!|W;SjRG]# Le\!'^]?99mgpxy.0&#;f>=?g$OxT49(g.Nbxi*]4RH}F흛NYJu`;9uȵP&_zLOAQy͖ y+TG03jʺx/$ho%=M)\% g;@>zϔAUs$Jg޳Li ꪃͼqgpzuvF# FΚt++W43J}KPVfոf m"T?p.J)ădا-f"2̑o$[~鲕߂:XA[RJɷGI,A8vgMm[HZ)5PkџEIY,`;R=hXyBCx[wx\9>_\rvkxK+6 \y>qҗSc.g0-0BL*(YOz7SiT 1KYM⯄c]AcR@uFD?ܿ?l.k\dhO=en[IV}Zzx_JKC^@2WVfuq3̂9`J|3U"IC]VDr]oYQ[QZk8I5yLzLf9^t8|~H("\34<*/|/eEX6Cy LɅW 2{٫s7b&ڣo3WU S_O|fz#^a+!v kǺؗz]Wf P-ZmT(3"^WevJhϩ K^OU̟avKqċ.RTP!C=?54FMRwۍ|uɻGVWFSƑe RϹ7eJrt=,)xƱhK3¸omÉOb# p+֎IZ)O˨18zWg+GKX1O3ǎ#)-o&>nQ׻\e6NVK8~|_,^k‡G[[*Ɂaj'O!ϐv 7wE{^*eK8muڢaO=Edŵ nj!"^4w߈Nb p։#9zn?7wo^=.pn=-2"k"5L8FPnV]E'{)|OESAm-=z8G0OI'EڳRzHRyj9*yGap;ӝu:0?;;;cH{K$Ńt2sNXRQODž B&’ XK~H=~Ed B5SA`)$))cY_8%Z3U+kz"Kk.(nb{yJəWU&P_& k j-T(o޻I$߀nVG|GʰCC>B/s )+a{]K &`AKZ(˜.]M0t6 ԪVR|LMLO-Mm*-WcejS%4dx.-"vc)f4m71 Iv_tuFED:d>T)xk#Ĝ> ?ƪE1)hkN%he&5Y"IzGHL~!nX=A*⭄`~LEL+m+Q\}r N9^Y+xh(_Xa6=lxX5_ԟ{Yw9O2=]ڠ½v,I;y~ga`T4.g`j}QI + '$U`NVW5@x_UЩUR/(1ǩ ֆn[-6i֒ٮЕ)rqax[ ?sv'CH2iР3t; =*Oq!GkS]r56v&v"x AY\zrwi+F 'Qĝ!:I.`*BRzU|[H2[#_N[ʉ V:R@]L(l~O'Co)f"qi[K@sh  $@2J(i0lGw+K0E9kQCzʅhNV{CB4AS$6TكozEy'<Bkg(ξP= 'NSti*<cXbQGy#MȒ污]ֳq4Y!=PvBHkl"utL()KX}PZG6$n`7t'٭K>LPL)/Kkr[BQ(ڶ*] $qH~t{| }dqm( &3odWND,3fsOLZ+|ȣ Q.ig`\K˛x]ZrNb ZqoiG~r(A?nпPԙ4 ^Up=Wg|YaJ)GvLS;#!;ϐ2ٓGZ8XC*ϟyۣ%)ePt{\u.sT7U'?'md +,,Apakخd!1T5[69eD1c#YUiJ:~ =ny*5PQZm* QS6Ɍ6qK]@ :kZ#AR}/y#k!f#;yԩ @G yC-mQAF2@`B9>V]i|byC]~g[[#&be{G)U `]2MeϪOL(]\54jTfsX&v޼&5A;V"ExWʰړ:6!"Ds\)3Sֹ9:d6UqB+Ǽ}6L\:e?f?%|b3xM.6H9,{QLߡWI6KX-JʐwTD!CO=M<_uVqgc'Vr \=FɑbLGF3S+ 46a\s GsCEV~pcpSu .ZX(9{4-]^y"p'c6E?s`rRbLV׭=pSSEL~SD f=%>=A!Ҭh{7UL3CfHU3 A }uI GLhSYZd`>;Ƒz"Rȣ]mJTδ=#a`CT9N#rMC&m llm d{yzԵEvڞ#Pi1`cIb?hpobd3@Qt#b מܹBQ tWlqcskb8a\ EA%9S5j1[T >)cŅz=3ϒHpKF!^ؤG6~y@*!l/ŰhW]?k׫ob8[ySzg|[8H)9ƛ0 *WČ-%.cmGŒ\nIM'B\$1K}Cacj$PL *T)ȅNi@N|(VB*)b~k 7yzuUQ  (P{b F ܚcq[f[|]aCrB& 9xU~-ԙ!b &f.#6ɦ⥰..gjf*n9*z`J~؇ʊGe8e"9PzeTgdŏ/' Qk4Uj6{enTq3YY=$pb[ᧁsfF)dYa:= {-=}',ɶ0<[xQ#F:{y6@o(dRKm*ߐ>gBNFHJcL l7@H1,kytˎ>RHU%6$c"2^/kT:jè]Y`WO M'SpZ7VA_R4&6-rjX<( z+\Ys\.wJ*&b>ƣb%B =y{T!Lե;RޕspgO9. kPAکD(eV&2/`Y4|'T+uumd42[d!#񢔈#QN`jݩ{꤁9@pĮ1Sd6sC- - \ɒKt@`lN]3zu!UN3JSo}* :hC=,sN=`_ax aGe\\ >&S0}x5zw '\LP;}F<wZw ʷ*0؅ E:O9RJiJ䉳ACEfQ(x^+s/0ُ]ƑTbXe+!_~e2V2I <1aaAگȅ#r>?(GGjW]D{8P3mY5_C񩉻C(lB*'+>{FF>bsrKM!o^Ͻ(3/JV?P!HADS9U `boc{_lN[}Q?GmΑ˧1Ŏ!Q6#T M{*4z}5 i‡18wLKx~IKf. YӍ=?Ϛ!=7]J?A]F ,>QXZ=VսCAw^4<6{..ak_WokKEjcZ!vW)E~kqY{DHH#Th 3Lj&ǚ?"s@ȴH?T]\'9B&uj*>ڵ9JML}ۃ@({ۘ 0Iv xHUJB7<ޚoK,ϟ٘O*T!21TA31(ԄppXIU5y$(e!(w^$S R7M -XrK Os.{7=NȾvΝTd\ K 4 ͧMXZVp3N/?}?~|r/2T  s_c̊A~,ٌze~(+R."0݁#|1R\U>=X5MuHҿ(C<&mE/i4Wpi4nAa0y(;o~Iuy3g=#șVE=@tcg&aL@%{>v{s,4S yuU:m._:ե[ [Q(L4Dw";0.gB` 3^2|n7K..ո'VPdHOe˸ @7m[3bDx n{OYC\M OedJx c>Kuk dH5?!L@KJI'4i2q< 1^Oa epz9KUQou d$BmTǹ~3[a8TV{XvQS797 D^c~sa[I,L鑀TN;z0I_,sm]E2UXr:4&ʬG[U;틎W }KZ]{l%}!V\|AQn]s;NM o˩CI]|oM@0KvǾ՞۴pQ$Z$k7P%nL{Ee}]2R"N~N%ŏt_ -u^ȶAUΧ 7V4 ԡS w'8fcqfk$L#p*ηRD2t!hY\1Y'ZH6ptz逝{Gm 3]ww;3]q;Su&{Q!/ LD[DEp] {6z <{pWe*76=5ڏsA7yHt"hB?rM5As%0ťr퀿ߐhP/{V7ouw( J7g*J(F(U}fבuy7=bX t\x)M^hb0. W `n\iL2޼ב' VsXՁ)Wb.C -W#{}\b/.=<ԅ`w c2dAW_ Yt;ͱ9LAp q Ө-ɞ,WZ'\*vI]/9Rҝ`?yAՐKh[Q(Ucwy R 3"b-庶4D-V?1:.Jq-װdm:AFqfGdVDbzzldT-{#1cɳ$ pUz.gDJx&`\ M(h!nYf.LVze(hw_t@N{ie{O+dLMIy!CbI^* H9F~~8Y*(DLR9<)oB.g8 tWIhqdmnrPK|0QqkFl`=p&x ?=RTjjt՘=w)t'oO2/h HKgҷS826$Bˣ¬:F׺Ôʡ)?A6Q& &XwS{K P@pfX?]hŠ[]8> M^+~$Bf) 4$QJЈIܙe4CY&gwbVl#sG<$VDg.-Q'- WʦH T_VA ,_k\a>b﷮˄ .OS, ]%ǯG.]--5q苻:I[aC$ >[AZu'_7b!.X@Dܐ̴`,~ج}sWl@rz-}y0̕IQ8#ZԇՔnP]^ ou|wIG_w6(:)jZ /X,1cqէ{ȱg0$Z!4CDW4뤚2(SSθz"; S) )<~E䬢Zq@+|e:"2jz 1BՕ "u$YoϷ. a*oc:. ? nD MBANUx*YR,= P -͋)[Os20CMA# .K[^1mM5r*&T52%@2!Vd?˺[~W{٠nۙA5(B΍+$% 3aG(ˉ}cwDd6ϨJSq|Cc3,}-O.vQ C97-SF-K227O7H2EW8vh3Bcƣ P4@18<ŝb]3`+BdmR*D͵Rh~ֽey*s_y}248_WQ\g NJ\ g oOÂ7yw[T~8ʻNj5=߅YLf* <(*/r,s5{ۂO'5u 1Prӯ  -]O{ș8^ endstream endobj 571 0 obj << /Length1 1754 /Length2 10733 /Length3 0 /Length 11848 /Filter /FlateDecode >> stream xڍP-ww NpwN4.!w -[.A.33WuouU-*bw`fv6;Zb KHtrكe 4qyI)ڃrvN;;?NI79@ g:#RK;x:,\^@gF`e ft&.V@׈f&u{3(脬\\XYYLY, +4.db2DjO*ί`s58@]ViY7 Xlw ,..LoC[gW7މL^ ~~2x/s{?/x3sr9||^n6ʂWY=d_:v\JC 3ٸ^'M蝫j?/יuuyE-6ϝU\W+bb`Kۿr~\̬?嚿;~*fv6ѽn:!f7`d:HoU4z1V˫ <_J#^.?**^YA,J#W߈ZGjVAv+_j/o/_5?7~U_/k(RE~/_.rq_O׆y5surzX׳6=fKf!!wbD̻ogw虽\Pk֝nĒGߖ]&{>nkkOTh6ہ wpXaYCtG+ G:ѕUν_ڣa|e,t~WuG|9F3}`,ui> 3̟h73/dr񌈾'1zs^Ο I1ǦhRKםRp7mv/ i'YeeJา~[m3ufRN(6p!>6x0Y$7H shP w-cb7KulYfջj|=w;fyei?س7lnG`L=9W( !029+#IiȠ~>c.|h\E*/ Ac} T+M5̰MgЂK/ݗglB,hJIXz9q g3D}% >?!xE祘 r~9vB wYzԫ<~ xꍨ\l@ -~w'eTת8$Zɥ9UXnC(KA?蠔3`b"~ hYz!N)|=Pr}x Q=Di/ $ sгXzg?pf2dG%*^чDp{R bT6u^-~wkZ۷}kazJJGocy+Gt̓9b%Ks:iO}f9%3Gwz }'1\,HT䓙0GYb6^^p:Rj;뿙3m-7LoM*c˶SŇ^kgBE6 &[NJ+>#±tXX%BoƜTԏֲxaiO &%/i\H/8G\t ĝ,o!Ɍsh*=u|CE091$IR ?61дq;,:myZeڈI.73;O_D:?D+F:%au&ɰ&p-wpwWj6,0#gUiBM +xwg֎JXkҦv͡Z]QEpd넶1!*ɕ4%I`'y1\wQ{q6'Dk<[iQԄ״jWC$`_珌?XnjoEgrgbwq pFZc+QCđƆ*tMjep-peU.RJ/툺8F o|tū#չrKeo䇴_$)xb؋ΘQgeăsIBp r3]uAN"~/TՉ9,A{2ssT]ٷs{a/3Yª=a4mD)Cջcm^4ԞPZ Gm`{x4FKk[<'R+".KK4D݅nPOk;ޱ(Πzm fLEt&RkxhN2 !ybQ:NB kY4v h*0vgs?RUayuK,XMiٽdpqV+@˯|88 PJh6,w˝d si0WZnk _Q wꗩ-fRn(&؜İ-h D y UR>_0@UyAB.ԢUJnP]t94bcB#ӒaePI +~Ix ub'Gެؓ@hd~*]@Ν}qxA⃊iHt(3(>&8b֒fdXZvbm5Š,Ra@jAdDy?K0F 1xL8Fת0׹K+*A!tL¸}.o-3>RWn0!].+i(XD!6v }-W#%n_y&yaC5(AL6)A'l,J 4LP5 D~f IwJTynRa^> PnT:m6'=m4e㒬|&7bt;{?#'l3%N^0.6wEJy]1aN4{ϣhjV}V ^[1I)Ssy+8bB&F<$IaŞ,{)ȬK+]lt~2<hO AXP0c~} .#g:F]>nrON@i%.8MgSAxHf[V1,Ŕ7h=.w>'HIA4a#K3-QT)4|q@!﷤O'cB̗bSgnK>$sn v#@Ay("v]USKjͣ#OYl%|YMաڝ63ɛ28,B?bo›9]kQu ٛ ;>Iz%q6Yr=6lYΑ']vCUʽ IJH(&!Z 0l~39~IJcN $ .9VlGz6?IY o޹k ".ÿ- Ŋ!䧁@]pElP0#T1wOY#\%x»H^5*_kpՖ]yQN:lC#38sɿ$wJ9&!sS6kj?* bܙ DEKG!l|w+~ehPzOU *Ԃ#ǣ&z3},nm#a۠򭊄ow#C6OX4ǃPH:iޅbٔ.6U^_dg9@r-wc8qa~6cKbQ%+j늆 ⮭ti49i9n6 AbRthZ1vڭEM}0ZmмS>l(5qG8W1o)זӐn9lIw AZ1* cuͺ0u,JxOu6X~k2t|J 7uVYm$TNSo"⪉qOcɅL? EG f)-H+o-SCz ʌ }mt)k֒Uܮ`X/ ?f_l(=^Ͱ12=H2(Ld HNCA1'(x e#<"NDn؅]آwt'{YpHY!*UuAg^ϴYg8 _~,$+e,ʐ:g=sՎmM1,)觷83Y^.XJak8~4. :Tp4'*T49|Fi5ݧW3}Yַ ByQ'bp얫  dX-rhrY`N%xv)݊/?{i祴~[W؈+ZBiExry4#`z3È~u+T(,ocT/{ BpS٢ǒyUF0mw֢S~+Sxd>fohdK l٥66~)=,B@mF/|<8=Qzx̙1ᐁA@Tt{H#,C}S"[[gmg8AKv-2b K¥y3y,.FML/_~+qb@DM\:$At ȍ%t\K/@41Vq܎0O_ۜ<$kj㟩$84/]hO{mh+F■KAOdg>Ǽ0ݑο^id5}}P&z7Ղy )Y7{t9J9C|ILJ-5Juh0bmBTzvNO70e4V4]bTA1fU)(֐B7O`G>b'OCx}!MeH j^n .ڒLO^&ha^νE<ԨtcsPhs@ x{IAx*ϳ1nhP?S,ml82wi WԼZ`DYZ&z lN2͐-"ɑ1UױC z8Cƹ l~LA:A-bFOI)Hd>>NtO}a(n:aF`F9R5os?uZ;*I1#ɋK}ʮմx̩0cn+ܫU1t,,7(.χsn?wh`ZF%n{My)+ YdvVl/GZI 󂉋̫`@ 8aʝ}X.C @~A4ܹN?V'vOc%Nlܑ-#$ѕ3m2ZS"W i-;Z)rQBv'GDNBZt=BWqB \xZS&b`:ǣ`TRw8ztW٪"Q"j^8hd;wcHm &e-[z#Vjl@F̙>o%%"-{lUx虉qjTs?9:1Nw6U|O߫K`#`Z9n惾=E:t^ZKRXd jJ^S]3 49E?~ͻr9m\Ͳ"PFd#afL-Q  80sh4|r|V*6Cڐxw/ P5bB4W{ӟmǺ(8 rHO] HN  F.$TR1r4҅`:t?Ȍ^$ R)۔iy(疱UX52mds9jxgFd!s79n7D]l$(B,WɘV>aVG6.Zd{pLgJ8 x >pR7ǖO,EY>Qe~C[kEg1.o<=Uq0d1oL^ +j]{q뿫DK-)Wh[eVŜPRIrU+\َd^Gt r&ؚ.>MPҖiGDPwT}gC)jiqy&y}66ջltsΌŏ?JlB> }Z~ZHN2hD+o ] f_.s`-i'_ȞfUY ocs7k[@V|2 m`{rPN N3t+[Mpl |$*Ԇ"H򂿋̽Ey8)Z)c4]u(6FE o:^.Eߧ$97n=Zoս 1w ';?{,H$,:ټ.rIFVOƦ^Yz![i/l-?e݉(왱}h8y ~:U2CXDkg7>~֔eEvR72'Ƶ_x ~:ּ{O0KϨjīpv룲Oh\Y N66lMu#dR=^CmO7^j2%v h3|Qĸ]sTu{"Ϲ( cs}yjΞ)M!@DDM`B<NJe`aJTA͏kn7NHEj bB8P]ϺRf έ'̍>д$Ԓ@Q8[ Q{9RJaBa8bHm߼H%>a/g;%~ E!M:|esN-QyJw8lVQ>7:f\Խ@S!"eꞈ1ddSϹ5ޟJ+hֹ(iBꀢ_w"wZtˣ{-P>*`w2+:̐ڦ }ݭ؊|M rqP7/.>hF.3:4G'c65ʯ2@iܩ @/`:|DNkM34fLZ_ɩX>E_6w{ wSBy `$o_޴n Dt(r~]vNkE+B~z= G3<tʴ/ͷްOxȦa i /Ѓ8eB~69 d\3 pƒ/8񼉩VFy2]҅i~ Us$*vɢəF.Y˪F#)|7E(:Is~UrF]0I(trQ-n(fu<GnUps wߠFk#1$Ѿ==.l'u"~2dv 7<=ӁdD7csЩ<"0p +Vj8]xlK$3r!RSlğUyjb~z Ǹ:Vcfͳݻ;(0< ,붝cW ; E̺ĉ臉q? A"Z qb;먊VaBje6(zUn&riI!'9Tr,G M&ylX:\ss%~dUmAHk媙{͒uLvl2#]ThVۤDmC^<MjQt)OMpHjl2E +|ȐTG脵4N=۾>@12ԗf+8|k/ݲd.>_%Q^&ϵzviέABf3V׬yؚŇ&P6);Z:6ړZΑf"6Ҋ#Չ8GDzo[Q\t{$gSvlL=)&q}D.\E JC[oxS,J=/rے1זЋ~j  $BK̅ǑB>)Έ[tW`]UhV=o]ƀUB)cO8J nW] /c+e:".؊q0h/<QXNCWR-I,g$($"]bG*4DUdRQSvbD7HevYQWW#u"/%pAMVKK꟪Ս!mCCԵ&\I%[~_Ye`ߤpɃ.n!TV{&rl(Ex"j.)Ha؁IQyY>zTU{LJ6Jn O KeK MJV E rԅukY/jt0R wW7n]k2=ҊУo^p}8wfpin;lg~$NJU|Rų>f _'{ *:T?$:1Jxtf$ha RGI5j{¶w+jXI4A<x!#(}^(d/薚`Dw y([''/?\Ӛ"=\j 6F X6GNXt*ҹ%9Bs%lR|ql/'nɽ/)s/[oؤZt}~I P>^𿗲vbc _kfjγa$)oo ֯|Jq̇ppwV;H>\^IIp~'@ixo˼̑[6cˇslB!͋;CSR*9>!h׿vpdgj{y|2G*ZFhOH}MGSx!@Nf}%ͶY11Mmoϛ%ذ_|ך  ݾG X:L¶a|zGETfUGۨX5jWs]%2٠E_ E]Ixa2\!~7ܕys H}|(?|.}q7cmjrx?o| lj/erwQ-3̈́Jxt˿SHKȐSKL'~ .BW"ÈMl@ݳRqi@)-Qv O h~> stream xڍP-.$@#ݸw!H  !3sUUWѽ9k %( 21$x̬(oh\Qh]@0$f/6I3ח8% f`qYYqH,JyF q})Z :13 P2s:T0h@,@@Wquuga`6spa8[ 1<@6u h =0@d(o6 ?+W3g `]^2@gKq"@3XF_g`cfD fG3l *Ҋ̮3@3{K%bj="oS[J@`WI/ځ!`li{K7G-0 ('Wȋ 5:6,58~_&q8^/_(>.f@ߎF(llK+h bZ_. 0`}_F/򲄀 ~Yd%do8`bbqrx8~͢j RVߟ;vi :s)C^D qCV.V?lJ#OYo߆p@^hEJ-oϝUZ+jb`k" Z\-l˟vKfU!.߯ |/ear(eqb{عff^(/Bb% Xחx~+36, >߈7e8,#>?ob?SX X//NA֗ex9b f/Ҏ_ZWjV_j; rX_ Kn@/uun/"?V h8 rS-F;.4fW'gѹ=]UVm)K%G-jm&ꓻm( '~"0i~}tmƋZs+YWqޫ.]Ԅأo}?~jfa/x6 OAkv\QF[Oׁ~H'_$ꑢxv :@R^1[`_u̺OdGY;Z^;k'1yj,uwXHE:m{q:-^f  ~Y5s5{i ٗ6BX `9iM R%YMI/} jk?k;'lYl_x>,b>77oq?֙= ڿܲ@*}8I0GwDC=c`CjVFƇVSFͺYr$5aM+bWw$r|PtsO$]1ׁ fKGɂ'2t$ӛuD=&bP8}UR RCf)_gSG{Ñ.{5U_<4S. DZ [f -z=Y 7_ǩj>|nG֮-e"?,JȻ̈vu<Ѱ89'Jfz8S}Ix{_1+hHh`$^%tt2O&^rnv)eiuUB=+5e^7eہ<#AC*`}?ŗxGUʇ7:UF'.o_MFxPL`) OQ介\~*6򳜌_#=s9RpdmRb\HĔC5^Aa𦚽0Q6YC2/26+Ӫ(ʇy{S .blJ0%!}Q@A#TU6 h䛫]hNƄ]0fy O Y6QbiaTsM)#KK |s8h[&щ2bWGCmK=Jt4{C\)|gm'0um>Xp)~eqHc˨9tѼԡUM͹V1T?~)z`VHەA{=|Nx'zx%-L7Ё̊@FRjңi;kuR%ي}C߄C-ׁ],VwPBehΆ aԠb)NW5)a%\.곶5 3(,eG:j,LGБʦmA疂zeբdZhCœ)UOjgכѼ,ÚyCYpmWb^$emciH£P򠻻 Q]ɏBgmϫ#Hv=7sym8L i` 7 ;8.i~Ū;x@Teb>W颩`#W@fd#ee|SaU[:|ƴqo-,Q)5w9b#!c$5hy?4=^D'SYHi;pRR]9=jA}=*Ǘ,$${5/G  tϖoz(oU9\Oo͚JpwU0UOXz-P_=oB)N`d!/<=/Ah--Z*j%mgcil}mV: Uܦ.K[͇e6"*ypM;Z@:l['&LR?Q$J ,ҠYd== ^bub xV1wxXfXFbꙜbW|AG坍B~r)'b/QAet*N.sI%>k}DDT-Ps['v攄AUe[XDckC:@dhBV`'s:$jӰX܃cR3oSk]n:`dPn\R/bid=QV:O1 [jo4LmcGPY5WW' [GxNfV"( =B_qh9b)vaM4Mz#]]-9aKjVQEJөݯ,|Fz7ߒ)#KhQ˕ފ8i.%RB}^(P* Gw%&T9n~ip|+|6e|ji9/o$c" :GD͞uӂ1_WZØܢ=ho.p$'iғ\(h%3t!Vv ~n7 ֌v,B[ lPpM\DlVGYj 8~>xnl5bOts[D7JG;p ݙSLĈAM""hd ($K]6Mc$Mq5[te5q|a1*''4]pm"xm"BM isa|Zͱ/DKAU`>zIKKn@gS9 +:jvcc6w]ve)+`ְ˶luRC+Ƨ,WeS܅i'*pc3tuFK&0킵dsQO&ˤWEh,DHM` fo-<4Ƽmt#A2xG!ѭ/'ivZMApؠV֤ø*Ƕ&džDʟBp ۛI`>GŖsƿvե^|TYГĵR @ڒ< \*Z񕵸WlnTs<. _ `So?.FayV6a7FWl;$<se#,Xpl*낐 AwmJ]5{|K򲸩D2*Z_,y$Iv U7AM8SUSyRaح?Ur;} j%l9لLmm=!8E^H vD$]7y6G^< 1btT7BX2PC*c=XhyM눆)pGk},i)f#h۵C70 oVYv #*m7UP?{j[^BR*C֛r?0b~No}fqkߨ$QxI9Ќ|M=B9tABeC-V4RZP_)qs *۰Nivs_PTr/tfU^<F{V%H2WX iw.G,h[]!j- CU$e\-H}Z*TOZeO9sF(E %(̫ ǡws_3=׷wJIZet; }#/3_oT Ɔv=%MEj:r,'{jx43_ @M'HS̡}F2(B垷Lgzūu&~F+f{çۻ  ѵ++}@ īye1JB6oG}ApЩhE,徸AuGKdsիe%ʗN*z)q4XƐeWhE8D|SDՉ7XR~k*ik*d|Z,*R :Cvl>W 3*|)&r+_, iF s>ɣb;J1G uR(TFhaD£ ͤB_kBӕyhs/3]A ÄR}=N^"XJBސooBs3Ob (yǏ}oZDO3tȖvzk;^6*~r㗡;O,>leI\D: 5:fH},\,l4QIlr(UXqTuf;a&2 y#Q w5~y@W9z[}3j'""v,0~]hQX_:D$'&]wՂQ *8r p#-`eQy"K^Ag5JN*N;.eaA\@|_ۨM} E$jΝGS{Jm-pͨt`"",tr!EoĖd }.fu"VB:im(>ӬEu̍gݓ9S#/YDA)@tBv BP4j)`)ltGxVRuq`SD%w=`d4 TGE\@`w-ZeiCxlo[jtw_amغrdA4l e?Y{ <$@As"S|јILmP\){[snLYআdt>*QcvhW@MOVaK\ӨAp0KZW lߥ\يpyDGktV[dҷ'\O|PWaғ=W,mnC;'er-sa|W|tLlw ݀p>f( ʷIMO{&j#e&,U|&[1GcwUY=L1Րhp":!2z493DЌL2oaȯ9qsxWCV7\tʫ%by/)>x]ҙy( JOf75#`Hk KQIBUTw+Gr`DCb'"o c(ïwoN/IK diS.+S+T};` fXUk|emuwuO6NN0{peڪhf}/BKS +,OAHPćZQ\>4ˑ#hdDsy\d|4D$5۸NW{'2\wfbuyPSeGfP~e)gkGTtz ;.BO6 w6hI~{Hgœb; Iz>2KJ 8 ;2f܄ҭ̖9e[(iY-4[fOV){Y<#TQ<ϣ ME0uJ^`rc_\4"AX dZò.wӪfW{y냺xj+#n2h 4D m.M5B^o.GT2wqO8l3p>3 o)vJ'2b& ;z (ZpF?OfJqH"í6Ő uY f)ۡglokl!~ ZKHԿ]PWeMup=W 3PC2l%e*˜cVC4EO:\SY3Rp'r`r0-pz{FI^[Ueqט#~ xy.؀?-J*̜>uXf ϩSȅA}rayjTO/_tGSZ1{W֘/(ϗi|לD0Fk0>Zj,JC,!(ueuX5sY ÉmlGAQ}:*K+f:3hg&mv'R (="u4~ڷI/{"0bQ*B?niyY,xj,@623V]M0GXB'0XB0*:Z5g`; #x" ;߅mͷD^}"rR-T1Y|!zQL kZw77uso㴓DIZ,ymIlGptC{xGx)5P22wWj2t5h2 Ꮓ2K!0O SkoM|[h׾62:КJȮXjzk00\iD1\%)5hV䠢;eanW|6ʣeFƨd)l]`}td|?Kō%T/U_r^9YST,dHZӕ9Q[3%-AU#>ZϊWAWyeKyA,i\a} uku;)eT\gt=v[q3}F15Қ4\Oũ$>ğWQ\O4LmH`l͈[a1@Eځ틦& ;8)v]ZW.mf"YU[ |SE/C…^}u+5&Uv{A|4gCV _!#UQR "}Em'xօYF^[s4(: O6+|Ff&ˎ\nUJ^1ou%Dp+8quh؞KĴ@U lwRb ;jY8&J\z]tB10hEF8Hb!^z1c6nza<`p:o#@fbU"gKU>!?c'c[%˕ ٠70VXZфN$էH76*2{س endstream endobj 575 0 obj << /Length1 1357 /Length2 5950 /Length3 0 /Length 6889 /Filter /FlateDecode >> stream xڍVTZ[@Jj$C:``I%钔nSDiި{kfs>{}g -"xǚ" P$`cӇ l`w8ocw0)(7M J IA P_0wIb `8c;:_K @@BBw8@A u >H)@J{yy\|0wG\</ =_\#`;@z0; @!6`(PgT5Z`g?< 'tEJ\\AP`q4j A 3p@INBWwpw+8W%+Bm\\PW} w } YAvZp7B< yL`o_}\A_fT~0Wp!<8l!65%;; GM 0'{e- kk>!yy7W ̢ UXU X-`Ͽ0b,7̀"@ԗC7v?Qpvr r8@q_R?] x'4 w%BJo6a* apȯ?0lP%R(!@ dh `?@P`),G=KHlN`o 4acuXEgM4.^9V$1n2WEfȊ\@"kM:W?-u7 f?Q0՗v7 vlDoWcv'ΡV)Y~1U!Nd7 ,p)Z/#$gߎS&؏3Y|u9T/OgBˈyJ><'F3W;(E^RmݗUsm_a _)-Y*-_R mvf| Y{mlq=qǹx#yU"4@_^7 Bwm ߥ3vJ LIžzr+Rjr 5bIzJ!H|1i{U'2p}s/ cZaLMB1pۤ} [ Tܱ f5BQ$#ܫCw --io!r8]n-= x5LbEh{Ÿ͝Y_x:<QMGzl6{]Xϑi40Ԓ@ھfQ?%wֵ Ÿ\RRI*ڢF,xfY_%@(D5PYfi3e12Ey}q(l`+XIK%[tNvMCfK+v^n߀ P.:ɶ&OsD :&mއ'HBmՇvz1"߉<;|}>#0RjږRLLj_bG & 1;( .zSFOe͑=Cnry Y 7v Q(6Hɵw{dnP+vUb''>J% M\u+2iAvܠ'Rl'񵷾y>-31N„F0S0cQLRO !^yu4'p?ΠL ԜtΈ 3&$HWc|jw˛. Ώ; Մ8~;Y S |$5?[ɾjx!8hX Zľi\ƨޓ1:en:<-S(G0rHp|[,ؒP=Ǖ !Y jZ}7xCT{E* 7\DB\sSyr=4ض "XU@`ZZ K~8wu4xLSM 4'Yaҡb< 䅮^Q4R_|3%MR9Vl(Q/ik"o~~:A>,{F#~#kQH4iQ)s;H&b$z4zZ6NZcĤ6O=p`T'SH~,۽R]@ ?@Ftp~iBx]e#hԆhB*5M57u7g,'ld˵PruʰvR"G`t2+Fψ N[o\7L>OQս 6@7+t9D39nRޥ-18\1 !~?mdk!w%Y Jpo"%K;>aw2:+,N-Jw*u R#^͕ox*oIˋHp|kgfUVƾ4×)yt-B`Kx6!uP7]0avTdܬvOhJu!*{5Ђfk:iyńd9ƲA E'J" V (ڒ Mo48Z{|pl3}mumgп (\:&Eኅ6+&5i{IDiRf@iVO~I|j)Pٸ K)1E.(>8?hL#5溊[I6TN~c3*zPT$813[{bGE#K9Dv BÏUv*U;Y~mVrUNY1>x¿`;"D~W%稀ډ+#v΢fIۧSϢzЬ+08e-N2MͫNʂ/-T2\)>w{R6;&#xWpw"̉g3|m44/Ȟ?Zy \1K8`}OHV٠i2ʵ-x ޣ#8*zdn|3Hi@M׽axQ|~7G²inmAƎy_4-Ź]FEH"+PCҹfXi(?:ъ|u+iK&lǑP ݮlA9^s)D&8C_5l"``)G 12&zm3x9`iyc30)7.'WĔW4؍K+S588 bI()9z#{n&ovl?EkOu0EIgpݚ$KJ|`9ЭVD,2,0if6vͶ&}-K9`f)a.evMH~U\"䩑UA [ E\}l;}¥ =|PmV$UK37ڐ]&)ECN遊^* uV(|7d$\pqFp8ʲQo.IK[R{sR]Aex<uI=[Nxa9zbN.5Db9j^D.phr }t'C:d?E#x s2^'Жd#Qlny$'#藢V`.@O \}ԡqB򦧇w6)hhf2A}r1w&~㞤9n(MIo͵X\9_lC:w‡iFOTYT/ËpDɄ%E\o)UAmjꪍ7Q^sA~|K8gBYãWL>H:_1`X9ͣh_tqI} BvCu… Jcϋ/hTB{l/)ݫCOA -)lj|gxkk:7T}fy?-iM\Iܽ{6sEls+ge޴$4.'>*4мMH&rȖ0/=Q ;x\ [W,O4e3:/|%QW⫲铓uסMA6ie/ 'l3S>SI&|Mn/WaKvPw\;] AkGU?M4$n 7L [1`<ZyNp]+lMlJTTBT>>Y-tu?;]hSxE{wT\;F?Pqˤ;̝:6m "鿆ak[5&3)8Id`澩Ld)V5s-Ac9e6eSDQs> QMv{7~xcr[]gq)]o7DAe]wdI{im~ןq*C.vLN~xAYX =fo}dガRG<߃BdLޮIW}᷹-O0jxDHY?Ĺ,,{ X ye~R!W)Qj]yeI%D"qDjCǖvӲa^x+n'mOWSYJ~-v8/ֿeo){:g/e& V'UzvO)8W ew)74ד=:+ QSf_'N!,†(\r:=&XCɟhIR_}P\ѩY/0{ $B+-sU>ds<~j,JurвNb4,xHL)NM$!buHr$<~wEi#3ydv$|DSvy?(-鴐m= ;^ 3i"} xb/qkv|(VnzlaݨPiRnRQ\-UWdZۑkc''l*^ryÛ6~l0cI=?%C|$\e,F)H{&h6aK^qQ?G"^(>R$9[k'7F "Jfiܛk?K)6ܨRey0,R8[ROبTWitQ|44ɥZ#yo endstream endobj 577 0 obj << /Length1 1522 /Length2 7225 /Length3 0 /Length 8247 /Filter /FlateDecode >> stream xڍvT7%1ZVFIFtw`ҊHw#%tK4齿{9yyθ MP0u#U% $2E`a.sB/ `1UB}܁`Q XB,)E@ (2@U/ 'F!a.g# KKK 6*y( ԃ`\`w aGxx @?h }aN_!߉ .?aAÀX!>H'}h 4!TSAWi`!m BQd #a@u]!?FA:R{_U8d`+;o(FPlՐN*( * b nH23tJS i`0 PIJ0/ "˹i' ±)Bp 1hXHN(sF x0wl}x` -[N({?꿛+lhe;E(`$PPDEDCȿBEV G [Wy ^}飰y! H~i_^x}Ky~)W z( [>-@3tvou?I?q_@ Qވ_ (K*vixc[ͿTCBQNKD\A!l7q`;N0  !Q ^B~S y`#@a8K,A I;(] Hw X>a\а P8WP4ovbKEà c׊M'J~Cr\/x>gDɼ2J}T_xY/꫈"σ/?6&G> RM"h|l U+G0įKÿdcĪ; ҋςbmq8g`'&滹O9vt>7IN7\ML|բՒx9_V؎ryQ"5$ 3$3]-LhD%98WwU[쓺*ßϴ=23$l( ۤzKD1)gD|hm#,X(hX*{ dc,I?^/|20=jv[zSkkC-JAInCۊsMc34.a{o\>Pr$'|hAKCʜ܎۠GPwʁALp'p̷YA/mNCd2">ᄯr[I<\vE"muu-L}Yk`70ݸb'bp58=^1%f&n^scI~ܧИxY,giIm3?rMfC,LCw,OWJ)Ykt+m%ҋ(zuya~ _;_(ǔ3٢O} lUod@A>;#Jwf\CD-q_\0X A]& 8>7Oq.SYkȪ~[IA67 .Zd7Ze<"RJ<݁a6Umf .ϟz='YcGԶ޳ ]/ʯ&sXϮOeziƒ1U h2}<1/W^bEIhm8 z|boo1s\{2s/YN%=^PoWn$艆ނQ\;ʡ.gOc2({+yפy3Pifv4ƀ'k q3Wuƞu]Qrch h W^KmG) N f`x8 вvzF9ks*=AK%=oL'r wT%zK*^fR)%G=rUHبHAAaGy'WhоkDs;Gy7@VE EgTAZqx4nWFTf*ȵ)*5GQڝBkz é 1`~2ۮƦku[wtCE",~S m=m]I7:gPXqx-2x4z4P$9{Ӫ2e)_aFP9?tbtc%1GqHGf?`5!m|;Gv}c0tdC@"fy²$4m>1?'J3klIq4W:;Pe4{nP&'B=L-΢+1wlDL1˩idN#;4 uWǹPE)!qeޙbzWMkn޶JR#mk$j]xy^AȞYY% U﫬Y^1x8٣[.=$R9w5X1wwOdОqjt1iT-/5G`\k7##|1֙Lb2|֨3~)Q8U)e%R- m-r,A{Fi㼁0+QwwdnO30]XI8ۉ~ `^; Ik\ϭnR*±t=OJ7?-ѐ5?;w:;k?;~QBRsd2/U(~kP|o!,ocvhO6ʃ;NHSU`7'ɶ5ȍ'krT[;o PzuZ +h0Bwq KɛDV:D*ִOJ{z~9|i@j9^tl Rq@]۱Lm˞Nw%. jxm)QAq'ޫhG%ɧ8"賌h` mhUS{|+kR Vi$n4[5ybڷ+GuR a# {_.u]ZҷIۙ"{9LY L ^F]}='P1tm:f6SKr)2CKNiJ9 d>P#q8ڂuY=ƣ{#w4& s_ܖ.sMg9 j:,^gG^4x# 9=S>{ʚ985շO+{Zǿ(0-jL~ N.y(%GtI M<=h-L$]p] l=)bџw'm dfuĥp0M?{ ENBc=BRa{%l z|X\#>w,4a(r;*6R>7 -t*bMkmW'J޿0Xm;((e!=m 1s :5Ƞ*91}FSY=Nz.UpT)iH(+԰v߼ٱ-8䏶/NRjm,h5}@yRt8oH.N{Py&]Cg &H; #D}>5(F18>cVt w({ ׀N1:1tJpX!jz { *JշH-KaF97!qQD!&V𾉗 /IY7SxnOL+K]AEhe8AѓadEqZബcP)G@T3 Wc3bI roP( OJjYjshcv#OljyBN~tM7AB. ?AE/ Z4ׂe:.$f\I5qkM\Yo41OnR<%SPbI $Y {3vƥ_/A o é=>2.ҞER TfC xߨ^k8nP< ceR^%F";3Z>:Ac/2ܢڵIϠu'fdVRg`0{ e#g4~X`lb~9h~wg^mRJ;!*TK -5|b{9|4/X9K <8*8ob `k׋(r]?(4ebm'F,?Ɠf^>rj TopSY^Oj;124:G1= /Kc] 7eoVi@Sߖ<*qÃYFw*?I+Y! 9"@4z//;)G\׆z `"^z,,fiZQ)V3oSMYL%h@.1%Y6|ϩ*A ,Ʒ^nMM$]|@(ǥ̤YT)ų԰Z`u/#I5WG 9"s+ʎ5&pF 4)B|iDߊwڲbEr@j \֡̉EEI՟>̐%g'coF{eDnee_wxSڴeL`#dw:9 r9~ -yBh@:jpt[5mXwNruǽzFτXrfK}J3 *A@Y*z{x 9(W[peaXGPu:?9/9Y~>|qPTB0ƽtL#gxdU?Dj ${W2lp|1~Sʮ{PJa+|ۉyqγN(C[Oִ죏[Z[^s̎^xFϤ 2~j?]bnMӾ٩ϱw<m*1u۫K Ly[$jW&gN@U7:HpO^-1KouK~&/ƚc*?[9wx(KTÉZ0b\Ls -q&L5' rf[B> en|&脑0ĵ(CfQ-gTim\{OS=ߒS(8q84<E f$.VʔFy^~gc,lzyd,D3`c5ƍ 5FKkQQR߲7drѯ}뫮^ P $D')~ Ik-1Ma, L Ľqhm^.$ѕ=dhn4+$^_'`ocNl]Q RR ]ɌOƸr[BhnVr)|>}KjWv̦cCxQl񥓊`r.FBL,lˋ6[r&z(Vit]OFuJ}^\>%^H= eh.Hf9.xciJ^Q{E6Y#pz0Ν"zw@v|ـcƯ *vPMGhXx0Ѭʇ* 7!mvf!'ion-ȽJ3i6N/T򷬹+0*A=\SS`((b b\ -3iTt|+)t/yOo>:;5k+N4B1@YhNK<{he#Zmr"EH=pDʭm֪Zn=}C^Ŭ }?GQ/M KW5O!=#n(74?ſWQ6ksorc 3 %^Th`RK##{=+FZcpV!ԛo\""Ooy$򐞻-u8nxr:> .ʉbnZ )аIp@YCJh=D^})GyPTETP{NOF+QCّy4O3vJtQ}cyj9*|C,PFݦt:GІ ~-vH{Ix|t6O\|Z{۩  ʧ où{yN {6rc'V:܏4]cWcQw.|y%f٪TM#:4^gk'E.iөc{#F@Ww*G.J~{%"2ŒHp>:y4xQi8.3i:i\ endstream endobj 579 0 obj << /Length1 2488 /Length2 16043 /Length3 0 /Length 17490 /Filter /FlateDecode >> stream xڌeTӸm' ܝufkA]ziT5,̀NLl̬ % EMM6V++3++;=Jf/+$4uQ67??++D'W~@ tCprqvEG9/sdn tE47h8}3? 0#tz-(:) imJ ḿn #G +!Pq:MVO{lloG6;98:8Z,miEfwowFo D+yST*t3wqvwcv]%o7FK9ZH898~'i 4uއ#str-m-,b̢h $B#XYYyA tͭY~qd-   z+!,lf@+G?Ab46VX4gN>4?Ew198l<n>n@:R5O"2st/Q?@=/e'ݐe5쿽_ R_ S{p@#Z%'R8_-VZx8_)h-@Mhjnnט-v6@U'7W @fnN@ Z*hd{ع>b<XA&PK'WG`-qX  `,R V`,ES@ P@1@2APAwV9k_@W+ӟ` . 5:!qGGagm霠=$qs(]<܁f* $W{@=. 1%'-}n !rrF w߭_:?t+vPTAP[}wsC{czmv9zn؃o3CPƳ+',MˑT1TL$e' !Mp(̏ v򂵇 )/=P§_VJXb C# ;^E^`1LE>PfvC6}:|g>bfu;|82Wl {/3BrNGv.ƒ|+ƒEE@ J!W51%Oؿ}P1rGd or\b-{S~<=#K{1i3=jB +Y G^bA'fP6B>iW;|x `My}S #"+dAѩ?$mȁ>*Ka{nioO*\}c@pOyjL۟e K-@ 0>1WjWd}<a6qz=$}-kTHeI(E9k=--Rnom#izFUвa:`lb3hUCM|BKpxnT0)ǷjS C;/6 ra}3Owb(W=_XȱYyC/!eksXfTPK|(]7ђzug.ȦsMU 7HBqrۇ~eRolJ%N:)cf_1z9,Os݃U m fOMrETHE^ʶV9OhC ݠ(7g|&"y} rǧ$^CXpfclW&-'W7iʵ۠'zV7gDQx>ʡ3}=%Q^GmIYFV2ट Bi C\5%ҲaP}~3X$A)q3hvͰ WXut5*]ur܂ MCs64$M8$y̕rrP:%ଗigw#m{ S|@K9:d>->;0/SOIZjﶀT k+jnC$4bu5* ,CE`蘡)MÙ]՜, [1zly6ЏzQ2 g0b'tSr\L͌|鋝V }T 09QLVYXM%Z5f)kg0Ak Oݭ9qDecn?nZОfN)4kE_v[kD\妗#kP:D\~f gNЄN"u52]Ѕ(_ZxRZܱ+auYI3>-.JwD|+ɘmst.ܾ?3|dt^Z _F[IWfsFΌsX\ &wd%u~2sɐ~כ9bZ`ج߉L_r"oy#eDb>jv[NfƐ_#}tB g"'hkIusTjvv7q+G>͛0LxyZ$==tp(D=JmFzaJY)Xiیe,+gd= hL,x.68:olH* 5+\ʸsKL)LpڰJrFnJ̻9&wBP$C3׽szЇuD"0{g ۡ~ܨ[EMԗ^AR [cc˜>T! [GⰟ˯dW &z\B[O"Wbɕ$_?*u vrܧ¿gW+CHΰ 6ڥX5i}#Iraj}FEfT(Cja*Â1AD]39S/aC!`V3Gi xL6T#.N@pdOW$q9UpxWœC+:Ï>5tױm)k@u-.AT {I`7/gBYx ܦOi%17'wCllD3U=ׄl뺏#@9ga^k_ۿfE^ٞ3z)Kۯ_W.}1hsa%P'A*i3RpȔɌyG>{ {ۡe}8Lް/&Tg& K_>wsD8" sK+粒 k_ޯD-2Y(1Y Վ (2c'WW""΂:3g kTIs\—Yf,͖fh JJ<yyT@jz8enj=8aX145P2cڊ[2 \iL&0eGtD3B.)[=DŽ@'B:_%]UfՏå( @ݶ dBy-8Rsu*-n\JvQ7cxsUo欧j/ 4s>cTp[qB4Tj |J_١ݹo48Km;aHN l8e6m2,Z'V?'u"em^M*}=(1>gLZnmlyS[l-nq؝zb;6JZe'3{m;7"# u\*h-Q?nQrmXQ'##[z4j\2'>{sZ]7,Y 5fA.A ;)mkM1(CyHo N6^ik| u]ĐΡ И,"ȑz`5auWlo㈲ sQW ._ T^n-b8AjБlLfx=dKyW#`N3Nȼfdc_Ckvd`F ae":e?@4uTp(W28KT$YJJlS-O}Ty|J95칻c , Vecϵ.*b\%;NĻ&w?yJW~b΂ϠtNB\䚌JcM[`J`+J*/Jއj ~{}S`ӃHŞj75rqՍ O40uUZn~!ai7K#YLXu%s,[<~H솽8ހ2YK'2%$iquL,VD`*Y/`"ӉTłtmM $tbhۛ,@|f05'Y,_C #`НıSKIyYOdz'~ Mį7n^B 4/D?ӣ|L=rFX\ ,mP~uK&$|Bu0tѬ"Bҩcg_OW4V4KnH{vmZyHgfrߊpv9FdϒrmjuM 5v:Y-Ԭ$ m{by^ՁlVvBxY7\GNӷ B&eLz # 4,!Yh|PRq1Q>$5s K_a B@v|#EXlTs!r}:D>̺ tr|s( r#<%J2Sn&-H+Q 4q}TdO[mK5c\R'g+%}ޫ0o a]MSblyiqh;#I8a{0lh]Ty)J.'4d}x; ܒfxGg{a/Q:Ŧp+n|^qr瞐'p_]9T(tM)oc85^ ^XؔC0tcqW-Z6线dv4erl>WgQ*85SVΔt9.GWi=]>lyA֬Dō_?=؊/g^X E_M.4rH|4#1RH١SL)'DZCCo{SA6Nk6֌1ĨAT/y"+zh؎DnݍWhRxkޠ "+t2r#f`SأPFj,3p`w(h?z/,[Q׏';z*hwCli'F8DX4tD"•4̟Y%;ȅ '!53í0>q vmAc}}=J-m3#us^-9*mӾCG_卥7s?ipLD-ýׯX?k( =KdUx*1̼dZr3f6F08wp5D^kqQlEjGl$9Ľ]z' ffZ"ϜJ!"m0ؤiLz&2.ɺ!2Z{ᱟ%S8㶥'x=[^Ok6r, D>MӫF)=?)e'ljH87J,(j0Pys2uVK__(ZeF sYOe3ei sՅ5'|S NlFm^O9PM.Q]~>l;Up߅廙>%6+$o[ v 7{F7Ʒ ΙNL(Sȴphb8ògE͌,,bxXk*Kd͢/-1D 7[łSGdA>z^)$aJM+=:> ;<^ @)Qa[G@ ǾE(dh%3BT0btスR ](u0Jl{øa;L,2slAwN ͑qtk<6(|bQps^ɏ K35Q[YpSMx3RIyPj H_ 6zEzXѠahk#ez]R':QMrn]YSxA]]j#]KV}9,CatsE3|w֯_KMIk?~ha皾 Vk7U$U)TnTSO>t*R G)$|"jH72{8$ $/g߿~TUkIJ0b@I\I13 w;8ȝB7uBuul ssUzÉhC Ic=+Vj&/:^5cg94Wqb!@uP&?; 6\4z {y@ϦGRxo>ckֵ= q]G* !s/`_:mn0 O mٺ2`]:iM"^ f~͵>X2\vV<;۾S9bǶE*2$ݲ_hBymQIJ֣W=f3.ov΅2ec[R x}Q 7YE?)'|u1暛8_̟ľTEj3Ӫ/Xֆ~jT*@I+wKan|ܓک8;#{ѴÕLN+g^6Thğ)_ՖWxt_ @?s'T/hAa:GG]YBDEk/z8HVt4UM 7{}ݭRKfwC, L!WI1.ߩt][l87 XqF TlO37gLF'4 1yi p m[Ȋb@.MFh}qs K蕱]&fn^,84x~eFVxu;'6PDt%)W3m5>v@2f0 ٽv]kd䝿Fw^RG==}o6Ef_gVًVP'Hzl!"u{C%a.q4<#WP~W|źcpJoMlAmt>?R i)f0`>[YbvS^Z^?AH#/P#xgE8HQZ/\/52X{"$^7M=4ڪ9>; V?Y'lYzἚZ"!L2ik>v_1`P {!TJG󔯗<#%jLH$*~LKQf UVO=oF@kKsbm] "oc=B 8vi2>~!?%!b]蓕By|("6n!˙>W,Z+`U1sXdҼ*+RL rp1Gܺ  k=bf&dWZO˻aR]rF[ɺ&WoQ; A~u'- l]f5 M(Ldsx'R#W' ,=jge]QobEvDtNy碮QG-jX~Y2Gb`w;f_rOS*;H+X<w]p2r 5(%WpB.82|[֛WY#!LL+2oJ㘆7kI`%; n0 Qn R2nQKYճ%$躜}TfdYГ=,N '@%" E <9Ce ?qDpe7s@4tyзB*Cٙ*5Kç/LWW_vG N9_N/DS@cƒIh?t3Jߦ9h1eurM܍6FsBo] (GC-.UHp&3TrFci{,ƍa?=z^1#R[Npkei4puO]Wea9\(%4,Wջ\(EmcxU=1;t˰ڎ=[rꙌ7?]/mϋGUoKHz`w(_xq Lt58S|yK.)L2մٱ#?|_$>JZ[1<ŒQM@ IBOMu1t]HoB^eL`qzi0OaBtsiv#"]u9+M crueTȔ^}A˘6Yo!T|duˑtόizכIi# ![88IgwF=tԒHϤD?Ɨ}3$0_TW;˴Ym&C{+̚8/85Zy7/~fVPnnX"Z B nlFRs,P[C剢GDCdg(*""bc_˵{_pa$Q(H58mFpYQ( SF~%64q}:Iz@jטjS-X--h)S@Y%Ɵč"T>c/~ $Ba"{D3TԷK34"P1[tK^G Rjvi,-im-|kaDXjs;frL:N'c/p;AN3]I/66|UoELɓ@+o#9(By`j8 Dq_"ؕLiR"Ӷ+St`1t r<:#9 &)Qݺ:TS1OnO!_~m0Z|y~VDđ,)\pl}Qb!ib|s6[9:Kn0yXo:^{;7^v8d8DDL}zGWZ!1xfԉa/gټޚ :X M>E% FwBԄΔEvyo$3d:Ѕl c&+Q #qoD%Dzir#c/E4TN ,J!joS$R=EzZ.](d] v6— 0%!Z ]„$F iI[R oOǏè/i~IdU}cq~'3"9tErʕ3zhSB?(ܩi_F)L3E娿v]$g\|Ӳ, e={B12E;ٚS]F_Ry~qӈgIM"UV C&m7:#]VptQ"n k7;5Vcky"8/lBݽ|RDZpjYYwHH VS Ҧ:29z6*$4- [/uqj@5]fⳚ)Og Eܤ4] \iݕqKGd^;g&2E@+Rz^--|}:;کɤ/ŨYtg/HF Ci!ŅMA>ͳ!juQy$s5PY |,7T~25uf)R|nMA# ]Ʋ=# g/#lRbӬkg F6\:Yq& !O>Ӫ- 9ɋRj3vX~i? G\v ZuѴۧ4E PwG^p~GdVM.13w49f|4JGKMΒ5/tw-jwjr &=qkHcMf)(}t>kq  <'nRnWED(Xxt4iVyvꝋXq; C#pY3"A zxخ0G/2 :!ʭxK5gH~¬x{ zRJ#Z<04Z A$Y^ӗF1+R$)[,򳥌^HG%g,?ޛ<ʔ0k+ZާPA>^9j.܅2mNtydNeߤ?x!o#tW(~R<k:FYWsLUdA#h]f4Ȩ`5TS~PlC)A3#3l @x2 fIQܘ^_y*MȝΪ6mp A3X bF`I y 9‹`\`:x7pۋd\<_a)͢%O,Jle%1p2nq>R&Izfs[mc9;oe#^p[x}FB v ,d %WR!ǁF͜/x}:M[/FM w+WL)ۘo}NH&MV~mRmrHo* l'o_S{2y Ély4|囖[D"'*(`[Wcvyڮ}ƺw@_.᐀=Z=Wdj4 lt]wEȎZ^(3U}5^=l1K5tXga:E̱tVP#p ׋B?V((ңv"-j4<jY3x E 9MZ;7z/AtJBo*={~;SC')HGƹ_r7r7E}&cc5$ѣn[~qթfk(Oġ嫭_)XEI]ugNUP6]4 $ZusrsnBҭYF]%D/fU4UJ S5aki.tBn;~}J_IQWe,i I GhKHqA oT4NDƙ((pPyoNQ ` 5Xm4y%Zb'Ջm8or,_Tݻˡ+lj["۰@FT㤾۸# LW·/UXd ֐B1iN.(k9m0>,jy wT O 霈Un(L2Μ0چeX lDf8v ـ:!6Y|]m5 /7BH̬r8m~> stream xڍx8m۾v=c{=#Jlj{R[(ګV)J~i>>w8}^#R%# A ،(o≄"RPPhLBup ( B@D@ u4pM uvAs%%y!P0\ ` `C!(|ByH ܑOgY.^0 !G wȟ .P_#  #.^pG'` "kE    p =Um~/;"`H @hAU`O ɏ~(+ zUJww$U2Fﻟu#|pG_m8zy 8hߘ3J  _~0 $A A P0 q  CZ 'z0Go#WԵ򿌊_@$OR GSjɿE%{3.\B7T+*H mAPZ^( гoՁ8B۪AV4?P/TB(_ 75o0(@B0h/ l!o$ZM 3 p5lBb'ȏ}( @=b( c I`b/7 $puA`f]C [X%20| MP숧a3,bZ( #4)-H vEsʌdR(,{3RuB 6{5 Dd zWN6 kMubUdu8>aS1p~ +.,17> 4y>!7EP&C&1񙢘>c -.}^LiַýCdܽ7)-MUPZn;`lW]jҖ ,I¤EٺR !3d$n /?}**!|4y|K`?~Рmdc!<[.Kr]MH2y/zGb:X|nPIE#B_Ϛ b,avF:-_Ourdl7]cS8 I DªDە> PƚX ;Z<{GϾ Z]Hlz4y|z Cʱ))Q.McLU1h)LhΏL zOUg5JE{=?4LU⻷Gs=~ G{6ftpb,DVOZɋ-fGUo6k*Ծ4wv9;h_!/ϯt sUOrڒf0ϾodØTRYkc`T-pRV3 #V.rE{;"y&05]+1,5?TGmGhU M'2kƿy}WCv3/ك^Pܣ3&O7~5 oV2N%|LR*zk֥ߛL VjnhZn/OmHgNϯY(f֜K=expP)c;@مdFގ`j$Ul[AR!g1QcHߍ|!=1n(thD_)@kr IIt8fQQt ݓ4aU}UMH~/G=<*΃}Dg#K),.&:rg {rkis$2KȠ 54TQcX (AYtxWD#şi6H5TCgN'mɕ]l+f]X,@ 9q( y!ofHӊ?tK+ZMOG bAxnqXVq/ZvflY[NOl%`I-6u[\f7! S̵燋 kTF,EI;^F '9b2K ȩJ 1ࠀ!™LP[7`и|hiql@neƑ [Fn Usݠ\Y^"̃T,-ۅL,^w]9d#-~O2EEGtieNy"Uz4 ͕@0R0<5%9@ȇR1RCO-mR?;q u&_)ux޷MLVC%1(z.~a}$M6i"UB ld@L}W㤟aሙ"4[5E~O(Ӓ{39y\R&] "V޼@9j!ZEM,lIH:u|:Ovf800-':+v2X8DFue2꣎h,#bo1~[x4Z]* E?NjixFЪӉuՏYa"u"cB IeNe]>n1^ rU$AY&X ?BLwnK v:t3Mk2uF|Yi&4hu{-IۯcVޠgG.G0pdIxNj<.B֚hS]8ͽBԧS>2h#:N:9LZt@.I CUDg9F)A$f(UɲRwf~hǘO{XX D"_CG>-I\\̓޽z"mGgo^_߅Ɖm'{ax}ޟ8L7O¢{}qFٹVa[uhb<:8ПJؖ=Pg6{/Kh{Q~7]g[/aW.,ãVkJތ8\NXB>$]Ko.k[v#W{lE s,O2*@ 5^!չN{7\sɴtT=>|aָ#/'yI{|Ds䳭2ƪX rP/+&WyqF9M> =+߇̕RΘM[#Z-$J4&u(()k,jP8eB!r&y ٜs89ԌF4կg;U._7ܭhzXR*U్zIZ;RQRC'9;y w:8!eZ}2%҄]7%L^M3-&*~m7򋋏s}Yɚ3uπ|Qd6UR߹|"΍z6|]/bP:niEg?&JM L%YM4%ipQ&ڰY nDk<k%Y]Suw~.VIjB=pG>1*lׅYn&GnZlY׮6w沚Er!2: ,8eY%ww U _".1!I>m6%!Dtɔ{OTR)K.ҬRmТXXmDj)NEWd2OFN ?9`>M3VA)qz)q.) l = w?ݵvlXAG'}঺yhb| ~z@7v"'W)NU02tV{^|ws֞}@Y9scv洭X|j꽳}3+֗2wi?: lh3Ivgg1ظuhs>H+9>[˾=IS'xP;d@eq\+Yg{papȷc%/檟l+m"i'hj ~8\;|%Ѭml1 HBvO]<{RSYd8^ɥ>+(i.83HG(+sB/9f롴,'IPݖE/$荃H\ܭJ?Vˆ]Wvbr+>MiUںwKĦJXT`=6i?wKV90fZ kj5N_1wV KcGg<=zQ6 Zߏb>'b/Ⱥpiz8}lLsFzv ~hK p]/{Y7Ֆqp]y&RgY!ϗfE 9#envl^nfv/>uAp@?EJ3oRmwGx|EK^cX/8)e:ξH5ТV7w%DfXHvg)ƠGy2eUA|,_>[oZevngQ<|/SlXp,6˕U,U > 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 585 0 obj << /Length1 1688 /Length2 11120 /Length3 0 /Length 12213 /Filter /FlateDecode >> stream xڍT-;šxPb ܥPJq+.ŵhqwŊ?>~Zﭬ=g9{ &)DHh)pyAXLLZP-_v,&3& IOD{@ EwH].= $e?b 3 iqa0 bT l д7B q휹,Y9nP@ qrh @ Cv P3)fqϿG"(`Y,Ye.;A:?Ń]P[ϭSlu;s9CmGcKA`pg?' u=˵ٻ,0s?0wqjà.9O&,!p?77Hq@ͬpԃ  vN.:a̡fp) O'3/tNPw;'{e0s{^1PVAVUZ|sxx@|QC?b`ῶtNڲ`{@XKInm,?CTGwG.Y"`;ߌ'@i`KՅ5*sziY>)/;Y1WͬR_v? ;Cxa4df6O4tAf6z'yJsb`S> {'?.V@|/$J rAO> !PHT7~b@#'1! OEm2>i|*doԧÓ9>Er=eu89=M] B 3i{3`ফrIJ7an3 r-@ק_g%&_ lHmEH窛P-L9G n]@Z[ߚ-I5z^Mq8oNȽd/fu7pD8s!!^fɴ- 'ew@kEd]\]J& v,gM,΃ '' =+]IR+G+/֌DZ KQ^\,G$&9);;+@[o,H9!}"9c VMkg s <)zO#!#zx)p^ԁ'Df!P'[``PNM4x lzl%!TtdOvw}j˨*;5o9 XnՆOW_y3'O)`y/8A-&֩B ^"}xyWh~Zb"#vHcW% ^}%>*jVuV3WA+|IԙSCX! " V~lBX%QuaHE݂˔dx¯WfnF@$J̢dX!@eH=ka XS - Δ+'=59X)ރ(EWVPg]%sKUk/k?Y-j ֔շү pR|j:1sZoUaѭm) f/?/Z}}h2*ms=4x#<Ы*HSAּ{خ7WAɬܻbY*agLlb3gLqx_ye%^EdEӮ 3,O;A=__܆1-FtY]HQ̵-o&]hϑLOv 3Pu!Ռi9/,f7߱ZsZg‹J:h|X#(HXjŐ@521,Hc>]C7gGǤ$1&> Yh5s2vf@LYČv1^gntb^~/?b74`e"bInF$ 70!J35yxd {yGKǾB(8|Awb՝# $d?5ow%- 7AGGj1`/՟KAzv]1j>.|(#%n㤑n< K. 5#Wu YA~g;o4=-RGlDQs1Btsx) ?䝣Y^NN==j  /4d P5#@[?:ʿȍ9؊Q9/f6.T (eAyH9FkV~rPKoZ7Z|ἑt%yNw'ABM]Q҄kw>\EϪzx( QͺO@}E;"VxNrt )+DjpgQ=gW sJ25jeΪu;f= eIf[=){Kɔ՜S]pO]ĥG[;Lj׵bnQ(5@'.tЬ pެq42RFKf>FU /&r!&3f8癭")#HG|jᗟ)MĪo$4g]$KkwHZ1 )E;䜨T7(Ơ$PL\Na8rOQz%pPgʼjc"Iٵ.9sa"¹Cy>[C!Cc/@ۦ@4-ǼnX2_yoSXШz㮂E$T{69{+<`h[>z 1I )_4І_G0mÀE{6-!.b\02 W[ ⇝KNK1 2R%V,JP2H q,%gᢘgtgrNٿm]WBqV"{P4M3P!*v(jv= x1^@r>B0(%TiPEX-wwo˲:NVzJ.ʴY{y]'7Q"; ル V(t n`VX9Zom*ԩ,Ce_;ps;Q6‚gCA܆j)BdY34\^e+D ^_sʮIUzk6IcvC{4fm) N:X Da`ЦRmV(o51M<ɘ!+mw vAWoEy&#Mp ߓ Ț"O~4۪ۀh,)\|pjJ z;B4O!gЏ:;~f^iS[ƇVu6aSWbÏ+ B.:Tт}dD1b?:fV)0P)[XF0AEǂm+?p(1b%ʉW}=J,!DZ !! b~b%cn ]e5  *0LR۩[93RK{5Zr]>6Y!6c7 О.Uްl78IYˍSH 1:6b?G " yWv43yT33{R)?ӽiּjKF|a_Bei:;NY({uYWӍdL.v\c 7(-؝=@]|?vZZ6E%a~7ZzfɾHWZAE݊. '3ʋ<{&WHGv=!SK6fb=Gky)F N<B994 8Xְ ?i2s;յ>j2:t6EiPMT(r@M27Mo -4#JmԄ,ȋ%Olj!5[JIs}gf+5Uqe~u1!Bf&-+ЌUKՑE( Q %Z#Q_2&^*=Z U9 @R;Lv?4+~0sPϾX5R7e#+ Le\Va|%^?b33&ġ8.,3:ND%U}]HQ8XˣW+U enV䖩|Q 1k__zԹoiՅf;;TwW#^,xNe4%B Ll]_KxC0]y@?h+ 58, dN\wd]gFCBO&pwr-DpwĞvuDٝ>T>\~"LWE&Ql~vI%{{k{\CTBpD۷۹T&'H2%.9#揨X{HS&;o۟!z2vDŽWhT||l4+Q| ?Pr{O:Db{ T7o;$J{flj^8<کIEUSkv ,HdK, Y0z}0o{fxc|Oة񽑨3yXT=+#퐫pn$ON巋!u#e>6~]chz ͏܍G=M`%6/#z7i -~L?77evK P7⣖7)څgPl^= +yQ1Q=nIz/aOu IۺoС7?>/2K}0vlhv9m0L7J5ݗ[a+be6}gڳO,6񝤆,-uyM-eϮ4$v_~`nr "p)vt.l+P_+-h^-BW(63$ڱJ>[.= dQo `laA`B4eRYdMuTN%YƗd3[FOS (-ܘqrʪ<%#=߾8~H9`OcYd%=w:j KH}R%˿H\'H.#J8ǠLE)tfگj?Tҽ9I Էj?v{١@4D~H hG tv|#g`bEq*Z"{(e'L^[+XCnluRګs<F3]yUiHP縱ڄF I +ULs˘̺X2mp&[*K [=XQ{hɼ$n8j)ݣx1='sNTƙ"9'yd^2g fM_>DD,<%hSz6&ƕVLrap]XH*JCU2 ^g6tȟ[fIRK!21\n./3,?-"cX6M[e;}$>8x#w#qZdhLnJƠr{:nޮawiGYҮx($Wo#R sa˯\cA)|`BYi<@M$ӥJB(LЊ94 J M~s$#p'pgpТ""\J'T9CTu(1P&g0|ŦqeJ kߥX87iㄽ)ZIYAW;Ќ <GYN Pz!߉pذl -fNDٚL:%M^Zu~:#ĀMIJ^lƁ/Иi#3lXKbjMZQ vO5gslY ޸ydW΄qZ%/1irf#1܏/U~\ɵE1׀Tc<'=Ƕ"Y?4|% F -/7MO JB Ci8Hf5>!+U]Y*<`'nܞSn+sAq}VF=7AoKH,J4/L ~;;_N OUdXi^tFAD(Lp:Ql206w(:;b${ڦ1Ut/t1qU!(=dTI{*W37O4dὔ.yhhIʞY?Q~|GȘFKX5Bnbńأkrka}Z /0]ͺϹ9cE<ÀǤIUN& s…Y!#Vę(B|mZ]2(w~>~~Fl]JQ},7Vܳҟ"cKQ{f/ 4{Gh, kȼBZ|-b)|sho+M_/#2=v]:֨^o?ҋm uTHa3OB2Z )RgDZ//OÇg9"u׬L74v/kQ5Ĭ9_KuDKy#[!IBly4|LAϵUAvjkrqxL\Հ GgޕO}[65 $e2ڄL$ˮqꇷ)x+,zV6({d!9x C>J^>/&7JKyWBzKu mzO#=Y@hb! _ud_!L{NͽTV6ld!u!6T '"68H+lg3Y(/+ `(ؑuYwZBDJI&}llai1XrH T"BX_ε~҅~jxKX:8j=@Pzrn#k> .3R\&V,Dw'L/,.szv䔖.iߏ4t T7w,2AxȢcFʒ)fo3z:@Pm]TSOςpHee,. E~­ޭ7M&)R▥ s޸zENngDD6t_pUz6734a+ qA`]sd-ٚ]:']ֽ%ߞeXn{D<.Hinj)۬D(1Ѣ'ړ$/U,/UcjaQr e :<[xl!_HކkT/2|v~ WJhFV~'F -Ms6վ5M[׺,4q>p b2l}2wݝMHoCG߹c~ HpW!y}GB6r&`4bJ3d~76軍˹҄/YCbhKW ~u@aMHB%u_V=8rRjLFn\}hN}qY]ƻUu$΢Pg Rl9N<4٧ixVz6/iR?y䍃Q덓ZCy=-Rݡ~E5NF i@Z dSɳ] ĈXA$j.y|{3UOb"vju L[oP T E)kglA]8d8+=BPqPѠmd:8&M$Sǫ bJo٫KWVTvi(lt[0 TQĤ@ne7y /`OZ?Z˖n]RUWeO/rjq߄=d0Tw6=f>gജeƋ]DsRd#YGSŽ,h|{q{yȇ?3[Gix S%R{lp%<>%i3v({iNȷHXOMg EHK`e0]`\ $-z6 YvrL}+{[R\щg?sԁ}(6O;3UxOoWlZ}zG80a5/8SP7=bK)sҷSsNM Z.O/:P h(ⵐp e[% SZݡ(uQ]ףĭˍ,rTRtf`US/O U>N7WՋyY ]bL[8P' "3߸ ekXM1&#eIzQjjCRH'EY|N2QwiϮ#bki,5[轕m3vj،WqqlD"06w_Xjj7 N֯h~ q;}Vc陘zV@.A . C1E!{7N׻]vPF$ 1ٖgG~8/Tjv͛EOkMKc99R.{|^P:\a]flP;삟_vQ$uگf\rP:JXJ(RidhmżdʙêmD6ȗZalecoΘ {%fIuI"n/CMVРJwg(qϐLsqIq8Z2ǹ,=.;=h˵/tP!WQzT4= }Wm` Lݵq&_/n+3NN3޽QhK~I>0RDyͮ^y&PxPm0g' x]e=QZT&Dže&fhUӉ;y4hKzD|jq\&C(-N4/ΑUIKNJtQj Uo_. #98,y@a0G4 O7³ u\ϸKZOِ)YEC^p8%nZ##\S6wp1Q/y|>wjiLEnJ[#]o.K^?\kuA>FI>yݞQ3QM'߶JR*1mNW ^ 1Y겠:Ǚ_`2#nȚnu:2nQP g6f@ҢV۬ @ A+PD_5 '8ZGfLgS5T4+3g&7 SoȻh]ᘆUJ;AVWPM%J7&bRk\kLd܏3\Z)ߎOJf nUMl,Jx,+5?K鲖h+V[I~_oԝBh[AtiGaaI6ƞAL?q:̿yrgz7ú TCom=Zt9!&Wժ96YI au@V]1lPRXҫSsߤHA0$WoB:qCro|P0=]b]汃i(.Z^ڼ sA;[|fe~~'K[eX%|N7$fbX,ڀ~VA|L#m"}b>kz𯝙`.ߍ&= ޳nۓPxæIҪޱ${(lIE>,׳y\{g鰈5\<Wt o>8pzH5Vi s]9s.av) KC< H;x/:# 4:d> stream xڌP www[-8w  $8}ޢ i}Wz߁LEQ(W`e3!PRjX+GZ;:a!4q$L@9w;+;_CG>9@ tEwtvrG-ow=hfe43;Yݼ'3'+- tx P2S%@? uG 7O $6:\́.Pv@ c0ipxog33G{'okK,0q0oabmgb 2 @JT`\\\\06K:;\'a4ݛõupt/v0 sw'@Yl@"2K t̬J[TTj}T/B`e[L@`X{X@ `O 3wtm3KHjSJ11G//# oX)`YPK g=hK4@1gd1b<e$ng??z{k;,@sEG&8_S-Whnnn&]u֮R^@sk73g?홝Pt2[ft0s4k8&..&,Ib@.Pu G,? ,q#ЄFf7 Y7b0KFlf߈,)F|(oʧ/S@T#P>O70kFF ."^+Hijf :);srĠav "nșA rّJE`fv7'_{?؁_jhggoڠIaOR 1R;dbk+o'+ r? t@%>wlNP,n (_W@w1oxtp=0$9X9r 'ꐓE^  hnAT!m& jnef7+g P  k˟L?V57gP$}gߏ$e_4CXYt4|%dܟJe]qJ[r':҇+Is+J6=Y(QmfaygpTaQCf-dxe;g~i}Ճ.yėYƸ9 x0npt^wsySorgqž[l|6hSCbP}]-+\ee &;SesYh`nDWtGo)%Y`8>ʅ\#V`{VV~JgTba{ElCW?" O_MV9E739/?Q`R3P02)Go09kx;L{iFWޯ19_r?xz5yۥLrbژ%b@ɈfH+Z{x'"f^-2!u>yxkTQlΒTH4j^7'$%M(Z+ZSyuW@~訨 r PrXol*?Nh9v*EK^U6%uTZ|y9֞7/ł;zDߒW j.{z G kQI%eQa4/u?w%nv1]a25:&Cڴpgx0?22GeߺsS5.t䲏%—EǏK08ojTMH<}ݝ:znƐ/I_R9i݄ # R8"8ܢ*(L7beF#rrlto%+I; 9:d;K 8/N_8Xe28.ΐ=u~֩6=;2i01[{n"|8/<$cX \JL"y|/Yٜ?; ~pRZ`Di0M;G_:OhcMq m,<9[a'ƜԜg0XlX:VKCVnZn5Vc-L[?c$Btۇ+O8lv.,a%x"Ž<DfGz}CX,(_?I?*y._sigc0) 4ϘP!OvKZVx8a /w7CbC'"I|4Z `bH.I 8:APab 9eThYW+:[OB3$`4Us0OĈԨ;sByْ[*J |Glj("\y[Œ 8qAkGR8LVߠuBL*1kxᕔua'HZS nz-͙!!`~nBb9=5!wD ;t+J0Kl, @GmGø(3]-y^eS~YI ӄj)x2HSpfM3b /'C&F+U=X*tGVg`[$-Oh1}ڤI \urPk` ]{(XZ&7Y"+ĥ(:|AuA5BaJCI㷸Qxݚ.9]X 9 .>/nj9K( |~n\,e!m*[,`k+ kginwWII48lBW8Oqz3oͰ`-XJ%Z+_aV4בӕayVQ9cQif^77˂zɫ|FwPRnt=n> ' Ob_^pQb)hԉ\09A*ӤUrodORU{d]  AOɸ/|$1շOZo)aPˑ|#NRb$rj4\ztdq3:`ԊMh jG1+UD Z$i[ŒC ^KԺ%N N"hyƱL,B>%ᶳD5]( @j|eݤndٷ:EQml+3xLh9m\ ^7I6쪏M0%w|dNh,G.ב65ԗvYHaᬜ]S%52H0flQ5^ړ0Xd|[mpޑ|lO Vd'ViOgH6Opaga\>E "1^f.kT.=D(g'0mFBpȬ'7`x:?ingq~t >aLKVkz]fX$1!\Tf1NCQ99wW~2eZ:ڋBtfa2=Q. "-SF~J0X}A$(sAu+v{z=fVhr/0WA4j}ǚn#e6n)fC(oFs mMsf*p`,u}J&|we5B[c*(IBΘv$axz2^=gq-3doYDo toZr {|{?H) ̓0h۴wωzW>Ɨd0mE_h D7b?C<~r1B.V/U7v.cɴA$ƒ0gk*\>W\JX:rEqt^%Y}A8 TF=y^Kej쑗ኪj2\j~pV@nDh 5OA!Qܗ;GI YO䪄)N6Y Vڬ ԷeЍ%ΨS4?z9{ÀTXnZ2gxu*͜νg\ _GV^/q k^4BMeVZ^K|?(y8mR9*Ie0n&(s_F [ƯJ=.vatc嶞1c0|_v΅}p ,M'a S珣Qa>W9a5oW1z]bDZF+YpkTXYB:VoNGzhtoi3Yheب $fMg+jYx%;#6WO3s D1f]>tsQL.ڻ@}v)Hy-,Rڰ!K0H~<>nΓNX2Ck E 7Ij?z[؞Q!K6F8Џ6 W+if40~b g䆎Onmv:'`܋M!>7Cb E%{'`Mӂ]V'M.= xâ.5FWv56$YY(LĿP-#"EZ´xK2Ӵ .<+PAyh( x,enG6 j 'Cnd*m$'a=.9ׯN~mFRwEh]X5«uzQUYߟ8;]~EPqqܕyRj:F\q Mۅ+5kL.I'p ;bo>Ne%w$t͚T>Ez֛7 c,aTH.(􊳐"5]6 xwuˏftbeURZSj:*-!UfFX{Dey }B/MQ yh_w-mG $y0[!M`JQ'wج!˞iEvK6 L\voôZ :cq>}1.;43"*w:A"a"VP2tqeڝR(fk(%{0>̱s=w!/Q˙X\iQvQSvzQr8&NhS&5ZU1^#!z< u$ioIq#_=$c-OSo|QI]e S\K^@z&θMէ 0qxM٦!ngOx}B,跁*EbI-Ztĺ#Yʹ'A, A &!=0auBqV{p[eū}Y"D7u`]i 1vI:?ZrnKR'%TCFg!O=hV4j+z$bXEi ?ǦJ.Wjmx;-AK? dR< -B4yT{ܬ@xX~9FR9IDY"avIMB+6vӞ*FAk\uyW;.%8bgDb39STO M2j-]7Qͭ }V:$RYu T7{V? ^%ԏ #|yix%Zf yf6vVޝ6h'L) 8,c633<E9 *t޴ *ߒߖkYLd01JWLʘ0+AN۬EFIIAN/8'4B1t/3jٞ%]9]_`>D*m6"$a2 1 κn<(ioY,N(T[Py"_:Tp hQ! C)r{9a F1'*C_J*'!` d>n!h4JAʒ\hs@( 0rcog4go*̡x<"۬t^k#;zxVV5&q71$\@S{h'ğWIBhd:q;iMF]V5y-'D̍PVr0v, #)nZ(̟d1EN~ͯux.=A98>6a{=cLIꣽ~fV l ԲZYH:W80TiB *+b/.Pjٖאۆ^Ҍd("Mup(앚^qc + $܅zz]v6꣡*L"u\`o78/;}Wznn^ǕuKx%׭XT{fl"wxPg1ګ`~n0bOZslrJ JXšo RY/?EO ut؅ ϧO."Xv3["Ĝ$ K\_1nvJa37'CZ&V%6QHgZ02<6 |̰3ԡ v`tuvս0ͭZ.^Sw,B)FsU=Nϋ.FJD =فFLcb ڷH,K~40ta2Ey?UrL)~}霑 I`w/|ǫ<_emC?24Ɨ)šVEŲ!Z'ۭ2^js[|Gs)tuq@<8䈥ڂu:wMVjbo?T vҁ>*/Tߧ& I#b$h -6k u溜B63%5 <lCVQN6%E;L=t=ax.o}xW?Ȍ@|hSea;XtP8ARo;{ %rGco*pj5Js],t-A-S +S7q͜*Z϶"+z8Cv١DB ZzϬ-K.Q~1^d';I*4$&8S1SEl&,f*l2L/V1_>J!4wQt:D.oM--uw0^RF4*3rskcg u1jLz$N&H!r}xR8VR7|s$م x;/PG.)uFv6(YjhyU:SEQ)zX Ul\sAO?݌bШ2l~e&A2֪8y}YQV$ m:ZEB]-" ocȣ:[Б{kr2X؍aY{:JR^I%) vSV3>hnC3Ad]|/ =Dx#~}ءgCt1br'N}*#$`,[hO V*tWpfU>$|ZTu|=1}*3L9Rڜ/;iEƫMP=Y!r6 %rHc?,0Arv gOQ'Ld/pyF@ )DF#p9krܶNx8J/ ID/Z~!;n¸&qEWӭw|]^|0PD_5,g#"ܟF܎X;ՈwTg1֒+1NKFSv_s085K61u43؎$>n,06UTȣV\mΎ!eɱָ_Yˡtl z>?!̃ =02V[cvnq{Ӫ}J?f<2mw6S\e\L!e&s1D]$v}T 5J-YfI_'/6uŞk R@}5=qUV.YdݟJzE9R˓WorfR7>/`U_Ik=l 0?U)Wxw}s@L$@5*ԛ= Gja |=C+ҵx}kZAxL5i۰8-{1{v{B 0(x)QPR蛣EqXN7mO@ٷ,C6\\o5@63opYB(Qy[\eymu؋fPbKZUuD$Kl/8.7e wŏ>SBA gẅ0O *:C?{zEǗč] F+cU Hh;޿lrXnU$V/`9y_A^ȷFj w_4G՝-caB<6 _f?׻s_[>]BPY ѱejo7\ yS:Mf(̏05``O+0Rt"<+1ֹ8gi0@PzMyGmq{yM*J kJ`uW!G&Ewj@~4. ny9SmgpNsZt{3/Mb!Td܋L{ۄ`ȶ޹"}u}+c8uNz^^p_d{Q5;˓V[|%?JJ=@7)\B%;R 3T%4;IE˥£5&Eռ]ჇQg}IW嬐ȼd 5WT^ݒg8L#q' 2$⎷\B>aJwkⱼrx'.%I`NE@.jDO:nGQz牸tTgY m}T?Uy̌Uə-DrED23t U~;I򣯣PeSزq`XmN@>7\{uM4lF'y$Xo#2{ 1L *ng"A<rurUJDY&^X:݌DRRԍN=MKAT:U)PM };'7~v4C=y{mHW[Տfe=0*HEYq `7̖7|T6%HZD+2"TՔ=FpۑZV%sG 1h*LIS|o'̛8yRٰєn*c?]D"ȗl3by?gz.-"wY`*ߎSs*WKHxG1hLpX {n9>'+=T|_}#r"2#f+&\B_,lU%+.FY&Hv\M:r1ØPLi~_/n[$Z*.*gLo)Öy#:%P* wDJ~ʀ 3'SQh)+OX$кoȍк:DTUO#/KԹZPK:`(122Sdz(vKvġ+xm1i>2*"ug`:R*pόgdCƝ"pܜ*`yFV%g]AҮnT|=zG^+hCjA-ouŎă~E4J'>gi.W`e[>յ-rXw?ν4 !^p%ea+JԞyuj| 1PX.6ޛ/(˙O%lY|.VvW?:;%vDCӫP\mX\Krߌ)y- `C9oǧ:OX1^}xϑq}4g?H;nFtM r۟ez-!^8.3HRrINF0,s2l_p^/"F 6mrh'؝ a @3 kfDCqXT_"H:e Dz+@18Cv}6z-fg)AmU9#zRҕSy ^w ?Vv8aY4:\n]L*uiR72 {I,1ps>ckMvb bfmݱ-Dj1ӗ{gc#9MOb~{U@ qͿ~ (Bk| o"![z~#W+?OS#lwVqZׄJ2-7/Z?WЛB3-ai. ˾=0FOCu޻Xhmp&GVtLȧn{ixhL{s$9E-5xgl2[s|hG"[wW /؁U6`6)F>8a6c)'_ku)k]"QDY^vF9ĐZ=rQ2r:iK ;*]C,qr~_r+EW}]Q =i9 < }1>ָXRfXqY.Fl*a쾁u {PWm6zu@ggEnޤzVezNj9\Lm,<`ˇ5.C(Jی_&Xy#Lȴ/_ Z"E4ZVm}RH]a_ͽ8 1ޥd{O{bWj؁Gޟ !PeOJӷ񦌶Ϣ'Re$F ΰ[vq1:tGio3gWjWNJoUQ%'j Ȏt圅^Տ7Ȕ_;QY$}'E0h;*m}C6݌#O׫f5qE{ʘЄt| $x NPݰjK/lr 5dTO0JKAC|Ą_9t_">' (YbYe~B`$\)H?jQNmBiG'.`£![\aP70}Ue:5̕HP {~-ɻq4hq'/)I(it~fD 6% ;ٹclC0v`coM$W-8!6' d}p@G{WfڀO#XuQW= +c.g/'F`tn ,V-R`n ʔ0VݩJ>"x(Wc9p%Ʋ9'pGR0l^xq4fhAG0Z,I6v}b\mUEkaf&#lSUskːP-J`gjX̺XpR'n E} 2ȥ\| ;\ua3j*&|*RBL;~\$J: =n>ʚIU˸Ix gͯDRF82>OsqH+iP!bfvwV-/Wii{exJ?eф8L̵]y?4nq0"gdck^Q?cȏnR0=72.X@ȣlYVԩGVóyVmtF"ӹi<2/vʕ^z%аYŰ!$HO{JcRY쮄>L: |=S}D-J\^}#kqa)TI$ET>P=ʪs \YS:ŧ6M p|1^!gtq;fwH5dÉ5=l;cDn6N`I ԛ ^xJCQ֪F! X]y:_fO3_/hz1Lߵj}xFPcqu͞a^YRюxΆV$[4![U}k a_1qC8-OwS t #ϯ7Wn'}_UXjwv>4Kyˎ,učljMHY2͡fx 8Eq RBʃO<φl\IY oi:? ہcrl:Q۱5%bvfBG!ͺ . _P<3m?|4SԎ,%雜Mrf½^zOJ`/G F!?BHنTuL)r w,%k~HwAE"G|8*Mh)4 Ⳮ;vWUZxRn~#v<-nT%+ݷ`4n&WIN7|MyxcEuR"R^"L &_#vH>%;Kʑ\#mc՗>hMi};Quk6*,񯋳ᲽG9[ud0b5|`;:A+hmVSXhcq+ BAzq3Bo?Eg`!}ݶ6&+lPg2aM!2%|1Ӎ:w5_D" I:̜Xן:?qtS #ov^_~B )W-6T7OXjM T:ք"a-s'U6@lqؚ;JOyчd}D̦jw4F:pBҜ]AK lQ$=8 ӓ*DVL-ksD*gWN$udİ["[ԼDTodI[T< FB}߸ψjjk㠁lՔMCN; EA\Rq)HWJ/Pa̧M~'g0l8HE\tfƮ,wⵡw>D=xhA6w^[Ps/Y $Ѡ 5z?S. ]Os% 官 7lH|72IyA ޯMEC>ƧZ/ 1hn"lV\fp"Gaw=n8x* ϻ拮+wD9Zα%tW%hF4[x{0o*J?*d7ﭷefm{ߊ9m6q 8ۏ.ʛd*3a o,*ΏZI:%m$9}12RޗɌe"4<tMm뚍B 1J>Ofs#¹_0#LE] +eN|2 R0T0/'|algBؼ˜{yYa)|KɔމL L#59E[r1XrJ LUT%dA ? -2n4NǶP٫oyɋ51`Zb`/'qA3a ^? %JsrdJ>`rނ MO1v\N3ViC]!#eLKYS%[.7c{7D2u7+V[)1 q040;NDwYُFL|?MӜ5I\=G.TX(-I((ii<3 ſ`sk+iU:ϭQD2nPn-I!nwƷ& MyԄ%k1hDfZTRиF^1VU؍kV`pZq8vUv$1^ Mgl !v^`NSȑ0@>-dzyUc'c#DZ{> 5j[ "&PP~fPvf4 b=#TCɆ'{hij?rN uD솩2ަtC'{G;a]s?W+HBhfzz+ܑiNIS5C %r D/}vG'˗EU` ;մFKXPP7X3h|ϋ[N+.3$AAwJ鈺!g󀟄OElG]$1d16$eWLpՠ<yd)ID#x+ #YgI~Ԥ2,""0S (I!#?oj5"2D} scV*u!{uBƬC:pEH/%Z`KB5$pX|Qa% /$*8q!Q[rGo7wM*nRnk]a9BKX@;Rk^ǧ|# hʳ q& %dʨaɷA>=#` ^". )@uW :C3 x,Q:uzm8 hov:۶睘i]*A[29]IK`>%8tL 7~RsCG? ?w_t=v9:&C0T^{b|NsX؜B[IŸʂiC r4uu>=96-Ug q)e8 Ho_%`dFg+ v##W v /eJ:g8ƒ^E8=>8UV#mդLIvI@܅nd^b҄~6PhJ #y΃g\qv.YڳfJ-&k?0x'u}we<\^}?s!$ ͎`nLUF)^rgm0?pTFҁ&l7GXl:'0J2"lBoS#`{3ƏdЗX@= 8"%#(.9*%J!rR{+3xKg)=+4;zDd:?Zθ&7.pryٴT}gco /,6Kg) XW*%)& #s1ҥOACw^la0=<7M>X"1^=ÌpcivzT,MS8b졛e1 W QRQ-(c^,ED‘"oNgC`T zJl9}kMp+TyWG<&*h$E  :oP_ho ?KSl a|aY1x{JhNRXa tV#9+:Prsq 7ё$َCzpoEҋ~ Ɓ"H oo<6}ȟ;᦯LT]5WDzTLx|kߌwcFOAp\Q7xE-ڋg'1+ޘf#C!Hp86_p] Bg86!דȔ> stream x[[sI~s_"&6 %x0:#,Fg_fU-CF/2ZVQVqtѺ&P75@WXj"]:hs]iB}hkPM MRDt&\MIwVOux2b-ubcEX\rcuWLnlxo#L8{ZE'bГkRMF/"yV"NMVMZHJ$BKJeb OEK^ؐp%h m21#B>0JQKir>4M +CHHZiRSD3:=E4դ]ђZH,". d A"[.zF7)m N ;ZBXНv2EY%9Á#h^N^c2tq,P7@Z;Bt?G3a@7YԙlSE4S CɼxeB@p#bq d,TĂ8r0FęaQB$A (ռjĊ9j`x9K8L?h_ gp񇇞G{E\!f 4 tVSE@J[kֵ"bXfMdJjх)^Ogá3ц>D.èn@ga2[ɵv?$Zqx@ۉE?rK[Ji&{h7*;tK0l:ڤaREKҚVWZJw !mJ,m/;,QdU͸R#/UPNLHBnkcRAb4{*~V{7ihR8㌒[|e8"T4N}: =e*z r<;:_ƛPeTK\ȠBĦi=I.2# ɂ\#S)%R`Y8C>aCZ8QYKR0]a9H`ùև̪F:X}y#mY$V@'l.;ȏ§ncX,#ѱC G#,x+Xe%:A?3\qGEɌe jFIF𷼓˱zFmU 2S-Sx F>Eu(_g4$[+1JQ)8gdC;;7ፍ­SJssl>ƃ7T&]=?6غu[@8a3g{jMD/@h'86–"!2L `x PǛ 2-"pE-% -7+x+D芔1B4GEÜ?H2)`s8KSʪ73(0jqF-lL#$hܕI#;'lj~sِ@cq2]љ@2duv܊#!:!989 ;KX)Db9LT AG%D%S" ex)r.V -.\p9禮!bW?w[M]iK7SR(oYq!Tyc'm&љ]N4 xߝXL'/ͥ fVQ+hϦfɣf' eU NZ%rq _VRErë\e;,KkW0Y^MJk/iuneRq+#]҉S!4G7q ̩$#~̬8FE$O~ ,Q`@"VDYyZyئ Қ2Z8Ѝ-̎Z(^s˶ VҗW?x8Ik5rN5\nn!x"g-)!kl_6\"Q*y8t+I[8V+c -B`]#Oi'@Ȥq g93ʡ"D.D~:3WȾEsdeeqWڐZ#FW)+bgVF*4w F*Ə~ (=.m -Ox׷Hn2 9e0oPm}>iU=iߴS{֞Ö#<߾ /Q{;nrN ohrNY;IvοLvפjlj_AhD3x#u>xѓقxMnAV# \_vȾmgd}rD*N-\]V Q+i,YEp~ߞrFJ/ gW_?Kl~xy 0j0.)xYb}_riH{k8`,ŋ7'[usJ? ?P}P 6``sPĽ-Zy&zc((P!(rD /_{>["2 u#H#^C-&5줍)RbMWUr8)}ݯ/{J~vrI-~3U Z`m1f%[́C{ܣ'GPl?y.RTrtC?ruE駛W~ݻ$8@pR?56 fg|4>R5kJ}JtžZVW_?Q`]ļYJ[RA}iη$ fCok/z?MgsXAilݻˌ?[A[ŻůYoħJ<*tw 髯8Vkוz+o VU>ҵWKj+':ts z׼oQ8_jU>^?Ь _s:W6{'Uk."*]ktv-Bj*~j [8J**ѷsܪu [jU|5b +`ْ,}::5(`VFɗyF;$rD62K|0,Xd;RNFV,[^-PxBFaA>tZ>c"ɺ4*Ed]*2Z0F]'.edUX|| W{N9Pq\2?ek,'|snŋ+^\TmJ mr *1wGto.ܐnYbOԺ2Yn &cJ&V~bjVWrȩus<*rkb Y퐰żW:SgQ ԇ=6`iXc6@;ȣFfnX@젌t5- Hn/,tx> ,+lP0tcfa[n5ܛV;>lw{ u@]kj>cH8tVWuػ>mPup۴}v`Sýi5۪lx6ֽ6vnWp3ܦv[3u 7: endstream endobj 621 0 obj << /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.18)/Keywords() /CreationDate (D:20190502204355-04'00') /ModDate (D:20190502204355-04'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian) kpathsea version 6.2.3) >> endobj 593 0 obj << /Type /ObjStm /N 31 /First 262 /Length 1252 /Filter /FlateDecode >> stream xڝXK6WHǐtTU h}g(K7o>(YB Pz #ZjV5NxTl % x2@Zl(` %#B)N(lB!8By%WRh@4]h*0BEyK`g(2*".#A V߯nӶ'-0^}şN=!ԗHYDڐBI,Mp8RuCgJVT T2YľHb/|Ib>wͧN`x8wp v2]ۀ&4wb~? ~`5|N3Ny=rcswwT &tml6*ZeHFfuouI?ǶIJ7DĈA7]Ȝ+“SMJPReCI"5Ia3đ:NYILmyB(@}@DB{@%*rp"2"9 492M0"ܵR@EQH=a2FI޾ލ/^m^J6[x?(hlJu̙CbmSSBٰ )?Ӿ9yȵV)A (Z_s_8?:JNI]~yl <91D4593970CEEB9D2FCBFE8B080DAF62>] /Length 1509 /Filter /FlateDecode >> stream x%IlVUw;o@^(JmP\cbtR1gR4IPBBW0. {s Ya`AU 0)@3шB աiJ(FG)a HujG&M iЎmrq Pvm4.V=hh5m i}櫤{AîBFЄ֊vM]&mmhZ2i;@D V.vh@/5G[EKH>my҃E~p4HRIAR`t p 'I0 )0N3,` `iz#jj*j([ɝ*\X#R5P!]"(˫h:~7̫-ޢ:>#ǫ{_nA|?ܫ pÂkޘS༅+l zrO-k=5겗7&@^-,:ŷw.@xYXH=~.~mXwDgB=`@R>c-4Yzl뱨?k=fXY8ǧ~w<4^\,^!([}Mɂ* ߟVZ: ,-2>E T=Z?Rz;3`VY݀E [,th8DI+; Äq+FxM[:ls XaLܼK64o`Qt%noinUS[Dw 9]7rPbBi)G\C;U5@7> Xiuyu Ma } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \keyword{ package } \seealso{ EBTest, EBMultiTest } \examples{ data(GeneMat) GeneMat.small = GeneMat[c(1:10,511:550),] Sizes = MedianNorm(GeneMat.small) EBOut = EBTest(Data=GeneMat.small, Conditions=as.factor(rep(c("C1","C2"), each=5)), sizeFactors=Sizes, maxround=5) } EBSeq/man/EBTest.Rd0000644000175200017520000001147114516004476014736 0ustar00biocbuildbiocbuild\name{EBTest} \alias{EBTest} %- Also NEED an '\alias' for EACH other topic documented here. \title{ Using EM algorithm to calculate the posterior probabilities of being DE } \description{ Base on the assumption of NB-Beta Empirical Bayes model, the EM algorithm is used to get the posterior probability of being DE. } \usage{ EBTest(Data, NgVector = NULL, Conditions, sizeFactors, fast = T, Alpha = NULL, Beta = NULL, Qtrm = 1, QtrmCut = 0, maxround = 50, step1 = 1e-06, step2 = 0.01, thre = log(2), sthre = 0, filter = 10, stopthre = 1e-4) } \arguments{ \item{Data}{A data matrix contains expression values for each transcript (gene or isoform level). In which rows should be transcripts and columns should be samples.} \item{NgVector}{A vector indicates the uncertainty group assignment of each isoform. e.g. if we use number of isoforms in the host gene to define the uncertainty groups, suppose the isoform is in a gene with 2 isoforms, Ng of this isoform should be 2. The length of this vector should be the same as the number of rows in Data. If it's gene level data, Ngvector could be left as NULL.} \item{Conditions}{A factor indicates the condition which each sample belongs to. } \item{sizeFactors}{The normalization factors. It should be a vector with lane specific numbers (the length of the vector should be the same as the number of samples, with the same order as the columns of Data).} \item{fast}{boolean indicator whether to use fast EBSeq or full EBSeq} \item{Alpha}{start value of hyper parameter alpha} \item{Beta}{start value of hyper parameter beta} \item{Qtrm, QtrmCut}{ Transcripts with Qtrm th quantile < = QtrmCut will be removed before testing. The default value is Qtrm = 1 and QtrmCut=0. By default setting, transcripts with all 0's won't be tested. } \item{maxround}{Number of iterations. The default value is 50. Users should always check the convergency by looking at the Alpha and Beta in output. If the hyper-parameter estimations are not converged in 50 iterations, larger number is suggested.} \item{step1}{stepsize for gradient ascent of alpha} \item{step2}{stepsize for gradietn ascent of beta} \item{thre}{threshold for determining the state of a position} \item{sthre}{shrinkage threshold for iterative pruning during the EM updates} \item{filter}{filterthreshold for low expression units} \item{stopthre}{stopping threshold for EM} } \details{For each transcript gi within condition, the model assumes: X_{gis}|mu_{gi} ~ NB (r_{gi0} * l_s, q_{gi}) q_gi|alpha, beta^N_g ~ Beta (alpha, beta^N_g) In which the l_s is the sizeFactors of samples. The function will test "H0: q_{gi}^{C1} = q_{gi}^{C2}" and "H1: q_{gi}^{C1} != q_{gi}^{C2}." } \value{ \item{Alpha}{Fitted parameter alpha of the prior beta distribution. } \item{Beta}{Fitted parameter beta of the prior beta distribution.} \item{P}{Global proportion of DE patterns.} \item{RList}{The fitted values of r for each transcript.} \item{MeanList}{The mean of each transcript (across conditions).} \item{VarList}{The variance of each transcript (across conditions).} \item{QList}{The fitted q values of each transcript within the two conditions} \item{Mean}{The mean of each transcript within the two conditions (adjusted by normalization factors).} \item{Var}{The estimated variance of each transcript within the two conditions (adjusted by normalization factors).} \item{PoolVar}{The variance of each transcript (The pooled value of within condition EstVar).} \item{DataNorm}{Normalized expression matrix.} \item{AllZeroIndex}{The transcript with expression 0 for all samples (which are not tested).} \item{Iso}{same as NgVector} \item{PPMat}{A matrix contains posterior probabilities of being EE (the first column) or DE (the second column). Rows are transcripts. Transcripts with expression 0 for all samples are not shown in this matrix.} \item{AllParti}{selected patterns} \item{PPMatWith0}{A matrix contains posterior probabilities of being EE (the first column) or DE (the second column). Rows are transcripts. Transcripts with expression 0 for all samples are shown as PP(EE) = PP(DE) = NA in this matrix. The transcript order is exactly the same as the order of the input data.} \item{Conditions}{The input conditions. } } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng, Xiuyu Ma } \seealso{ EBMultiTest, PostFC, GetPPMat } \examples{ data(GeneMat) str(GeneMat) Sizes = MedianNorm(GeneMat) EBOut = EBTest(Data=GeneMat, Conditions=as.factor(rep(c("C1","C2"),each=5)), sizeFactors = Sizes) PP = GetPPMat(EBOut) } \keyword{ DE } \keyword{ Two condition }% __ONLY ONE__ keyword per line EBSeq/man/GeneMat.Rd0000644000175200017520000000107314516004476015125 0ustar00biocbuildbiocbuild\name{GeneMat} \alias{GeneMat} \docType{data} \title{ The simulated data for two condition gene DE analysis } \description{ 'GeneMat' gives the simulated data for two condition gene DE analysis. } \usage{data(GeneMat)} \source{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \seealso{ IsoList } \examples{ data(GeneMat) } \keyword{datasets} EBSeq/man/GetDEResults.Rd0000644000175200017520000001165114516004476016122 0ustar00biocbuildbiocbuild\name{GetDEResults} \alias{GetDEResults} \title{ Obtain Differential Expression Analysis Results in a Two-condition Test } \description{ Obtain DE analysis results in a two-condition test using the output of EBTest() } \usage{ GetDEResults(EBPrelim, FDR=0.05, Method="robust", FDRMethod="hard", Threshold_FC=0.7, Threshold_FCRatio=0.3, SmallNum=0.01) } \arguments{ \item{EBPrelim}{Output from the function EBTest().} \item{FDR}{Target FDR, defaut is 0.05.} \item{FDRMethod}{"hard" or "soft". Giving a target FDR alpha, either hard threshold and soft threshold may be used. If the hard threshold is preferred, DE transcripts are defined as the the transcripts with PP(DE) greater than (1-alpha). Using the hard threshold, any DE transcript in the list has FDR <= alpha. If the soft threshold is preferred, the DE transcripts are defined as the transcripts with PP(DE) greater than crit_fun(PPEE, alpha). Using the soft threshold, the list of DE transcripts has average FDR alpha. Based on results from our simulation studies, hard thresholds provide a better-controlled empirical FDR when sample size is relatively small(Less than 10 samples in each condition). User may consider the soft threshold when sample size is large to improve power.} \item{Method}{"robust" or "classic". Using the "robust" option, EBSeq is more robust to genes with outliers and genes with extremely small variances. Using the "classic" option, the results will be more comparable to those obtained by using the GetPPMat() function from earlier version (<= 1.7.0) of EBSeq. Default is "robust".} \item{Threshold_FC}{Threshold for the fold change (FC) statistics. The default is 0.7. The FC statistics are calculated as follows. First the posterior FC estimates are calculated using PostFC() function. The FC statistics is defined as exp(-|log posterior FC|) and therefore is always less than or equal to 1. The default threshold was selected as the optimal threshold learned from our simulation studies. By setting the threshold as 0.7, the expected FC for a DE transcript is less than 0.7 (or greater than 1/0.7=1.4). User may specify their own threshold here. A higher (less conservative) threshold may be used here when sample size is large. Our simulation results indicated that when there are more than or equal to 5 samples in each condition, a less conservative threshold will improve the power when the FDR is still well-controlled. The parameter will be ignored if Method is set as "classic".} \item{Threshold_FCRatio}{Threshold for the fold change ratio (FCRatio) statistics. The default is 0.3. The FCRatio statistics are calculated as follows. First we get another revised fold change statistic called Median-FC statistic for each transcript. For each transcript, we calculate the median of normalized expression values within each condition. The MedianFC is defined as exp(-|log((C1Median+SmallNum)/(C2Median+SmallNum))|). Note a small number is added to avoid Inf and NA. See SmallNum for more details. The FCRatio is calculated as exp(-|log(FCstatistics/MedianFC)|). Therefore it is always less than or equal to 1. The default threshold was selected as the optimal threshold learned from our simulation studies. By setting the threshold as 0.3, the FCRatio for a DE transcript is expected to be larger than 0.3. } \item{SmallNum}{When calculating the FCRatio (or Median-FC), a small number is added for each transcript in each condition to avoid Inf and NA. Default is 0.01.} } \details{ GetDEResults() function takes output from EBTest() function and output a list of DE transcripts under a target FDR. It also provides posterior probability estimates for each transcript. } \value{ \item{DEfound}{A list of DE transcripts.} \item{PPMat}{Posterior probability matrix. Transcripts are following the same order as in the input matrix. Transcripts that were filtered by magnitude (in EBTest function), FC, or FCR are assigned with NA for both PPDE and PPEE.} \item{Status}{Each transcript will be assigned with one of the following values: "DE", "EE", "Filtered: Low Expression", "Filtered: Fold Change" and "Filtered: Fold Change Ratio". Transcripts are following the same order as in the input matrix.} } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng, Yuan Li } \seealso{ EBTest } \examples{ data(GeneMat) str(GeneMat) GeneMat.small = GeneMat[c(1:10,511:550),] Sizes = MedianNorm(GeneMat.small) EBOut = EBTest(Data = GeneMat.small, Conditions = as.factor(rep(c("C1","C2"), each = 5)), sizeFactors = Sizes, maxround = 5) Out = GetDEResults(EBOut) } \keyword{ DE } \keyword{ Two condition } EBSeq/man/GetMultiFC.Rd0000644000175200017520000000400714516004476015550 0ustar00biocbuildbiocbuild\name{GetMultiFC} \alias{GetMultiFC} \title{ Calculate the Fold Changes for Multiple Conditions } \description{ 'GetMultiFC' calculates the Fold Changes for each pair of conditions in a multiple condition study.} \usage{ GetMultiFC(EBMultiOut, SmallNum = 0.01) } \arguments{ \item{EBMultiOut}{The output of EBMultiTest function.} \item{SmallNum}{A small number will be added for each transcript in each condition to avoid Inf and NA. Default is 0.01.} } \details{ Provide the FC (adjusted by the normalization factors) for each pair of comparisons. A small number will be added for each transcript in each condition to avoid Inf and NA. Default is set to be 0.01. } \value{ \item{FCMat}{The FC of each pair of comparison (adjusted by the normalization factors).} \item{Log2FCMat}{The log 2 FC of each pair of comparison (adjusted by the normalization factors).} \item{PostFCMat}{The posterior FC of each pair of comparison.} \item{Log2PostFCMat}{The log 2 posterior FC of each pair of comparison.} \item{CondMean}{The mean of each transcript within each condition (adjusted by the normalization factors).} \item{ConditionOrder}{The condition assignment for C1Mean, C2Mean, etc.} } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \seealso{ EBMultiTest, PostFC } \examples{ data(MultiGeneMat) MultiGeneMat.small = MultiGeneMat[201:210,] Conditions = c("C1","C1","C2","C2","C3","C3") PosParti = GetPatterns(Conditions) Parti = PosParti[-3,] MultiSize = MedianNorm(MultiGeneMat.small) MultiOut = EBMultiTest(MultiGeneMat.small, NgVector=NULL, Conditions=Conditions, AllParti=Parti, sizeFactors=MultiSize, maxround=5) MultiFC = GetMultiFC(MultiOut) } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{ Posterior Probability } EBSeq/man/GetMultiPP.Rd0000644000175200017520000000240014516004476015572 0ustar00biocbuildbiocbuild\name{GetMultiPP} \alias{GetMultiPP} \title{ Posterior Probability of Each Transcript } \description{ 'GetMultiPP' generates the Posterior Probability of being each pattern of each transcript based on the EBMultiTest output. } \usage{ GetMultiPP(EBout) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{EBout}{The output of EBMultiTest function.} } \value{ \item{PP}{The poster probabilities of being each pattern.} \item{MAP}{Gives the most likely pattern.} \item{Patterns}{The Patterns.} } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \seealso{GetPPMat} \examples{ data(MultiGeneMat) MultiGeneMat.small = MultiGeneMat[201:210,] Conditions = c("C1","C1","C2","C2","C3","C3") PosParti = GetPatterns(Conditions) Parti = PosParti[-3,] MultiSize = MedianNorm(MultiGeneMat.small) MultiOut = EBMultiTest(MultiGeneMat.small, NgVector=NULL, Conditions=Conditions, AllParti=Parti, sizeFactors=MultiSize, maxround=5) MultiPP = GetMultiPP(MultiOut) } \keyword{ Posterior Probability } EBSeq/man/GetNg.Rd0000644000175200017520000000316014516004476014610 0ustar00biocbuildbiocbuild\name{GetNg} \alias{GetNg} \title{ Ng Vector } \description{ 'GetNg' generates the Ng vector for the isoform level data. (While using the number of isoform in the host gene to define the uncertainty groups.) } \usage{ GetNg(IsoformName, GeneName, TrunThre = 3) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{IsoformName}{A vector contains the isoform names.} \item{GeneName}{The gene names of the isoforms in IsoformNames (Should be in the same order).} \item{TrunThre}{The number of uncertainty groups the user wish to define. The default is 3.} } \value{ \item{GeneNg}{The number of isoforms that are contained in each gene. } \item{GeneNgTrun}{The truncated Ng of each gene. (The genes contain more than 3 isoforms are with Ng 3.) } \item{IsoformNg}{The Ng of each isoform.} \item{IsoformNgTrun}{The truncated Ng of each isoform (could be used to define the uncertainty group assignment).} } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \examples{ data(IsoList) IsoMat = IsoList$IsoMat IsoNames = IsoList$IsoNames IsosGeneNames = IsoList$IsosGeneNames IsoSizes = MedianNorm(IsoMat) NgList = GetNg(IsoNames, IsosGeneNames) #IsoNgTrun = NgList$IsoformNgTrun #IsoEBOut = EBTest(Data = IsoMat, NgVector = IsoNgTrun, # Conditions = as.factor(rep(c("C1","C2"), each=5)), # sizeFactors = IsoSizes, maxround = 5) } \keyword{ Ng } EBSeq/man/GetNormalizedMat.Rd0000644000175200017520000000204214516004476017010 0ustar00biocbuildbiocbuild\name{GetNormalizedMat} \alias{GetNormalizedMat} \title{ Calculate normalized expression matrix } \description{ 'GetNormalizedMat' calculates the normalized expression matrix. (Note: this matrix is only used for visualization etc. EBTes and EBMultiTest request *un-adjusted* expressions and normalization factors.) } \usage{ GetNormalizedMat(Data, Sizes) } \arguments{ \item{Data}{The data matrix with transcripts in rows and lanes in columns.} \item{Sizes}{A vector contains the normalization factor for each lane.} } \value{The function will return a normalized matrix.} \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \examples{ data(GeneMat) str(GeneMat) Sizes = MedianNorm(GeneMat) NormData = GetNormalizedMat(GeneMat, Sizes) } \keyword{ Normalization }% __ONLY ONE__ keyword per line EBSeq/man/GetPPMat.Rd0000644000175200017520000000207514516004476015231 0ustar00biocbuildbiocbuild\name{GetPPMat} \alias{GetPPMat} \title{ Posterior Probability of Transcripts } \description{ 'GetPPMat' generates the Posterior Probability of being each pattern of each transcript based on the EBTest output. } \usage{ GetPPMat(EBout) } \arguments{ \item{EBout}{The output of EBTest function.} } \value{The poster probabilities of being EE (first column) and DE (second column). } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \examples{ data(GeneMat) GeneMat.small = GeneMat[c(500:550),] Sizes = MedianNorm(GeneMat.small) EBOut = EBTest(Data = GeneMat.small, Conditions = as.factor(rep(c("C1","C2"), each=5)), sizeFactors = Sizes, maxround = 5) PP = GetPPMat(EBOut) str(PP) head(PP) } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{ Posterior Probability } EBSeq/man/GetPatterns.Rd0000644000175200017520000000140414516004476016043 0ustar00biocbuildbiocbuild\name{GetPatterns} \alias{GetPatterns} \title{ Generate all possible patterns in a multiple condition study } \description{ 'GetPatterns' generates all possible patterns in a multiple condition study. } \usage{ GetPatterns(Conditions) } \arguments{ \item{Conditions}{The names of the Conditions in the study.} } \value{A matrix describe all possible patterns. } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \examples{ Conditions = c("C1","C1","C2","C2","C3","C3") PosParti = GetPatterns(Conditions) } EBSeq/man/GetSelectedPatterns.Rd0000644000175200017520000000160514516004476017517 0ustar00biocbuildbiocbuild\name{GetSelectedPatterns} \alias{GetSelectedPatterns} \title{ Get selected patterns in a multiple condition study } \description{ 'GetSelectedPatterns' get selected patterns in a multiple condition study. } \usage{ GetSelectedPatterns(EBout) } \arguments{ \item{EBout}{Results from EBMultiTest} } \value{A matrix describe selected patterns. } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng, Xiuyu Ma } \examples{ data(MultiGeneMat) Conditions=c("C1","C1","C2","C2","C3","C3") MultiSize=MedianNorm(MultiGeneMat) MultiOut=EBMultiTest(MultiGeneMat,Conditions=Conditions, sizeFactors=MultiSize) PosParti=GetSelectedPatterns(MultiOut) } EBSeq/man/IsoList.Rd0000644000175200017520000000107714516004476015177 0ustar00biocbuildbiocbuild\name{IsoList} \alias{IsoList} \docType{data} \title{ The simulated data for two condition isoform DE analysis } \description{ 'IsoList' gives the simulated data for two condition isoform DE analysis. } \usage{data(IsoList)} \source{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \seealso{GeteMat} \examples{ data(IsoList) } \keyword{datasets} EBSeq/man/IsoMultiList.Rd0000644000175200017520000000114714516004476016210 0ustar00biocbuildbiocbuild\name{IsoMultiList} \alias{IsoMultiList} \docType{data} \title{ The simulated data for multiple condition isoform DE analysis } \description{ 'IsoMultiList' gives a set of simulated data for multiple condition isoform DE analysis. } \usage{data(IsoMultiList)} \source{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \seealso{IsoList } \examples{ data(IsoMultiList) } \keyword{datasets} EBSeq/man/Likefun.Rd0000644000175200017520000000171414516004476015204 0ustar00biocbuildbiocbuild\name{Likefun} \alias{Likefun} \title{ Likelihood Function of the NB-Beta Model } \description{ 'Likefun' specifies the Likelihood Function of the NB-Beta Model. } \usage{ Likefun(ParamPool, InputPool) } \arguments{ \item{ParamPool}{The parameters that will be estimated in EM.} \item{InputPool}{The control parameters that will not be estimated in EM.} } \value{The function will return the log-likelihood. } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \examples{ #x1 = c(.6,.7,.3) #Input = matrix(rnorm(100,100,1), ncol=10) #RIn = matrix(rnorm(100,200,1), ncol=10) #InputPool = list(Input[,1:5], Input[,6:10], Input, # rep(.1,100), 1, RIn, RIn[,1:5], RIn[,6:10], 100) #Likefun(x1, InputPool) } EBSeq/man/LikefunMulti.Rd0000644000175200017520000000214714516004476016220 0ustar00biocbuildbiocbuild\name{LikefunMulti} \alias{LikefunMulti} \title{ Likelihood Function of the NB-Beta Model In Multiple Condition Test } \description{ 'LikefunMulti' specifies the Likelihood Function of the NB-Beta Model In Multiple Condition Test. } \usage{ LikefunMulti(ParamPool, InputPool) } \arguments{ \item{ParamPool}{The parameters that will be estimated in EM.} \item{InputPool}{The control parameters that will not be estimated in EM.} } \value{The function will return the log-likelihood.} \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \examples{ #x1 = c(.6,.7,.3) #Input = matrix(rnorm(100,100,1),ncol=10) #RIn = matrix(rnorm(100,200,1),ncol=10) #InputPool = list(list(Input[,1:5],Input[,6:10]), # Input, cbind(rep(.1, 10), rep(.9,10)), 1, # RIn, list(RIn[,1:5],RIn[,6:10]), # 10, rbind(c(1,1),c(1,2))) #LikefunMulti(x1, InputPool) } EBSeq/man/LogN.Rd0000644000175200017520000000221114516004476014437 0ustar00biocbuildbiocbuild\name{LogN} \alias{LogN} \title{ The function to run EM (one round) algorithm for the NB-beta model. } \description{ 'LogN' specifies the function to run (one round of) the EM algorithm for the NB-beta model. } \usage{ LogN(Input, InputSP, EmpiricalR, EmpiricalRSP, NumOfEachGroup, AlphaIn, BetaIn, PIn, NoneZeroLength) } \arguments{ \item{Input, InputSP}{The expressions among all the samples.} \item{NumOfEachGroup}{Number of genes in each Ng group.} \item{AlphaIn, PIn, BetaIn, EmpiricalR, EmpiricalRSP}{The parameters from the last EM step.} \item{NoneZeroLength}{Number of Ng groups.} } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \examples{ #Input = matrix(rnorm(100,100,1), ncol=10) #rownames(Input) = paste("g",1:10) #RIn = matrix(rnorm(100,200,1), ncol=10) #res = LogN(Input, list(Input[,1:5], Input[,6:10]), # RIn, list(RIn[,1:5], RIn[,6:10]), # 10, .6, .7, .3, 1) } EBSeq/man/LogNMulti.Rd0000644000175200017520000000270714516004476015464 0ustar00biocbuildbiocbuild\name{LogNMulti} \alias{LogNMulti} %- Also NEED an '\alias' for EACH other topic documented here. \title{ EM algorithm for the NB-beta model in the multiple condition test } \description{ 'LogNMulti' specifies the function to run (one round of) the EM algorithm for the NB-beta model in the multiple condition test.} \usage{ LogNMulti(Input, InputSP, EmpiricalR, EmpiricalRSP, NumOfEachGroup, AlphaIn, BetaIn, PIn, NoneZeroLength, AllParti, Conditions) } \arguments{ \item{Input, InputSP}{The expressions among all the samples.} \item{NumOfEachGroup}{Number of genes in each Ng group.} \item{AlphaIn, PIn, BetaIn, EmpiricalR, EmpiricalRSP}{The parameters from the last EM step.} \item{NoneZeroLength}{Number of Ng groups.} \item{AllParti}{The patterns of interests.} \item{Conditions}{The condition assignment for each sample.} } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \examples{ # #Input = matrix(rnorm(100,100,1),ncol=10) #rownames(Input) = paste("g",1:10) #RIn = matrix(rnorm(100,200,1), ncol=10) #res = LogNMulti(Input, list(Input[,1:5], Input[,6:10]), # RIn, list(RIn[,1:5], RIn[,6:10]), 10, .6, .7, # c(.3,.7), 1, rbind(c(1,1), c(1,2)), # as.factor(rep(c("C1","C2"), each=5))) } EBSeq/man/MedianNorm.Rd0000644000175200017520000000362614516004476015644 0ustar00biocbuildbiocbuild\name{MedianNorm} \alias{MedianNorm} \title{ Median Normalization } \description{ 'MedianNorm' specifies the median-by-ratio normalization function from Anders et. al., 2010. } \usage{ MedianNorm(Data, alternative = FALSE) } \arguments{ \item{Data}{The data matrix with transcripts in rows and lanes in columns.} \item{alternative}{if alternative = TRUE, the alternative version of median normalization will be applied. The alternative method is similar to median-by-ratio normalization, but can deal with the cases when all of the genes/isoforms have at least one zero counts (in which case the median-by-ratio normalization will fail). In more details, in median-by-ratio normalization (denote l_1 as libsize for sample 1 as an example, assume total S samples): hat{l_1} = median_g [ X_g1 / (X_g1*X_g2*...*X_gS)^{-S} ] (1) which estimates l_1 / (l_1 * l_2 * ... * l_S)^{-S}. Since we have the constrain that (l_1 * l_2 * ... * l_S) = 1, equation (1) estimates l_1. Note (1) could also be written as: hat{l_1} = median_g [ (X_g1/X_g1 * X_g1/X_g2 * .... * X_g1/X_gS)^{-S}] In the alternative method, we estimate l_1/l_1, l_1/l_2, ... l_1/l_S individually by taking median_g(X_g1/X_g1), median_g(X_g1/X_g2) ... Then estimate l_1 = l_1 / (l_1 * l_2 * ... * l_S)^{-S} by taking the geomean of these estimates: hat{l_1} = [ median_g(X_g1/X_g1) * median_g(X_g1/X_g2) * median_g(X_g1/X_g3) * ... * median_g(X_g1/X_gS) ] ^{-S} } } \value{The function will return a vector contains the normalization factor for each lane.} \references{ Simon Anders and Wolfgang Huber. Differential expression analysis for sequence count data. Genome Biology (2010) 11:R106 (open access) } \author{ Ning Leng } \seealso{ QuantileNorm } \examples{ data(GeneMat) Sizes = MedianNorm(GeneMat) #EBOut = EBTest(Data = GeneMat, # Conditions = as.factor(rep(c("C1","C2"), each=5)), # sizeFactors = Sizes, maxround = 5) } \keyword{ Normalization } EBSeq/man/MultiGeneMat.Rd0000644000175200017520000000115314516004476016137 0ustar00biocbuildbiocbuild\name{MultiGeneMat} \alias{MultiGeneMat} \docType{data} \title{ The simulated data for multiple condition gene DE analysis } \description{ 'MultiGeneMat' generates a set of the simulated data for multiple condition gene DE analysis. } \usage{data(MultiGeneMat)} \source{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \seealso{ GeneMat } \examples{ data(MultiGeneMat) } \keyword{datasets} EBSeq/man/PlotPattern.Rd0000644000175200017520000000142214516004476016057 0ustar00biocbuildbiocbuild\name{PlotPattern} \alias{PlotPattern} \title{ Visualize the patterns } \description{ 'PlotPattern' generates the visualized patterns before the multiple condition test. } \usage{ PlotPattern(Patterns) } \arguments{ \item{Patterns}{ The output of GetPatterns function. } } \value{ A heatmap to visualize the patterns of interest. } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \examples{ Conditions = c("C1","C1","C2","C2","C3","C3") Patterns = GetPatterns(Conditions) PlotPattern(Patterns) } \keyword{ patterns } EBSeq/man/PlotPostVsRawFC.Rd0000644000175200017520000000202414516004476016562 0ustar00biocbuildbiocbuild\name{PlotPostVsRawFC} \alias{PlotPostVsRawFC} \title{ Plot Posterior FC vs FC } \description{ 'PlotPostVsRawFC' helps the users visualize the posterior FC vs FC in a two condition study. } \usage{ PlotPostVsRawFC(EBOut, FCOut) } \arguments{ \item{EBOut}{ The output of EBMultiTest function. } \item{FCOut}{The output of PostFC function.} } \value{ A figure shows fold change vs posterior fold change. } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \seealso{ PostFC } \examples{ data(GeneMat) GeneMat.small = GeneMat[c(500:600),] Sizes = MedianNorm(GeneMat.small) EBOut = EBTest(Data = GeneMat.small, Conditions = as.factor(rep(c("C1","C2"), each=5)), sizeFactors = Sizes, maxround = 5) FC = PostFC(EBOut) PlotPostVsRawFC(EBOut,FC) } \keyword{ Posterior Probability } EBSeq/man/PolyFitPlot.Rd0000644000175200017520000000536014516004476016035 0ustar00biocbuildbiocbuild\name{PolyFitPlot} \alias{PolyFitPlot} \title{ Fit the mean-var relationship using polynomial regression } \description{ 'PolyFitPlot' fits the mean-var relationship using polynomial regression. } \usage{ PolyFitPlot(X, Y, nterms, xname = "Estimated Mean", yname = "Estimated Var", pdfname = "", xlim = c(-1,5), ylim = c(-1,7), ChangeXY = F, col = "red") } %- maybe also 'usage' for other objects documented here. \arguments{ \item{X}{ The first group of values want to be fitted by the polynomial regression (e.g Mean of the data). } \item{Y}{ The second group of values want to be fitted by the polynomial regression (e.g. variance of the data). The length of Y should be the same as the length of X. } \item{nterms}{ How many polynomial terms want to be used. } \item{xname}{ Name of the x axis. } \item{yname}{ Name of the y axis. } \item{pdfname}{ Name of the plot. } \item{xlim}{ The x limits of the plot. } \item{ylim}{ The y limits of the plot. } \item{ChangeXY}{ If ChangeXY is setted to be TRUE, X will be treated as the dependent variable and Y will be treated as the independent one. Default is FALSE. } \item{col}{ Color of the fitted line. } } \value{The PolyFitPlot function provides a smooth scatter plot of two variables and their best fitting line of polynomial regression. } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \examples{ data(IsoList) str(IsoList) IsoMat = IsoList$IsoMat IsoNames = IsoList$IsoNames IsosGeneNames = IsoList$IsosGeneNames IsoSizes = MedianNorm(IsoMat) NgList = GetNg(IsoNames, IsosGeneNames) IsoNgTrun = NgList$IsoformNgTrun #IsoEBOut = EBTest(Data = IsoMat.small, # NgVector = IsoNgTrun, # Conditions = as.factor(rep(c("C1","C2"), each=5)), # sizeFactors = IsoSizes, maxround = 5) #par(mfrow=c(2,2)) #PolyFitValue = vector("list",3) #for(i in 1:3) # PolyFitValue[[i]] = PolyFitPlot(IsoEBOut$C1Mean[[i]], # IsoEBOut$C1EstVar[[i]], 5) #PolyAll = PolyFitPlot(unlist(IsoEBOut$C1Mean), # unlist(IsoEBOut$C1EstVar), 5) #lines(log10(IsoEBOut$C1Mean[[1]][PolyFitValue[[1]]$sort]), # PolyFitValue[[1]]$fit[PolyFitValue[[1]]$sort], # col="yellow", lwd=2) #lines(log10(IsoEBOut$C1Mean[[2]][PolyFitValue[[2]]$sort]), # PolyFitValue[[2]]$fit[PolyFitValue[[2]]$sort], # col="pink", lwd=2) #lines(log10(IsoEBOut$C1Mean[[3]][PolyFitValue[[3]]$sort]), # PolyFitValue[[3]]$fit[PolyFitValue[[3]]$sort], # col="green", lwd=2) #legend("topleft",c("All Isoforms","Ng = 1","Ng = 2","Ng = 3"), # col = c("red","yellow","pink","green"), # lty=1, lwd=3, box.lwd=2) } EBSeq/man/PostFC.Rd0000644000175200017520000000306514516004476014746 0ustar00biocbuildbiocbuild\name{PostFC} \alias{PostFC} \title{ Calculate the posterior fold change for each transcript across conditions } \description{ 'PostFC' calculates the posterior fold change for each transcript across conditions. } \usage{ PostFC(EBoutput, SmallNum = 0.01) } \arguments{ \item{EBoutput}{ The ourput from function EBTest. } \item{SmallNum}{A small number will be added for each transcript in each condition to avoid Inf and NA. Default is 0.01.} } \value{ Provide both FC and posterior FC across two conditions. FC is calculated as (MeanC1+SmallNum)/(MeanC2+SmallNum). And Posterior FC is calculated as: # Post alpha P_a_C1 = alpha + r_C1 * n_C1 # Post beta P_b_C1 = beta + Mean_C1 * n_C1 # P_q_C1 = P_a_C1 / (P_a_C1 + P_b_C1) # Post FC = ((1-P_q_C1)/P_q_c1) / ( (1-P_q_c2)/P_q_c2) \item{PostFC}{The posterior FC across two conditions.} \item{RealFC}{The FC across two conditions (adjusted by the normalization factors).} \item{Direction}{The diretion of FC calculation.} } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \seealso{ EBTest, GetMultiFC } \examples{ data(GeneMat) GeneMat.small = GeneMat[c(500:550),] Sizes = MedianNorm(GeneMat.small) EBOut = EBTest(Data = GeneMat.small, Conditions = as.factor(rep(c("C1","C2"), each=5)), sizeFactors = Sizes, maxround = 5) FC=PostFC(EBOut) } \keyword{ Fold Change } EBSeq/man/QQP.Rd0000644000175200017520000000230614516004476014246 0ustar00biocbuildbiocbuild\name{QQP} \alias{QQP} \title{ The Quantile-Quantile Plot to compare the empirical q's and simulated q's from fitted beta distribution } \description{ 'QQP' gives the Quantile-Quantile Plot to compare the empirical q's and simulated q's from fitted beta distribution. } \usage{ QQP(EBOut, GeneLevel = F) } \arguments{ \item{EBOut}{The output of EBTest or EBMultiTest. } \item{GeneLevel}{Indicate whether the results are from data at gene level.} } \value{ For data with n1 conditions and n2 uncertainty groups, n1*n2 plots will be generated. Each plot represents a subset of the data. } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \seealso{ EBTest, EBMultiTest, DenNHist } \examples{ data(GeneMat) GeneMat.small = GeneMat[c(500:1000),] Sizes = MedianNorm(GeneMat.small) EBOut = EBTest(Data = GeneMat.small, Conditions = as.factor(rep(c("C1","C2"), each=5)), sizeFactors = Sizes, maxround = 5) par(mfrow=c(2,2)) QQP(EBOut) } \keyword{ Q-Q plot } EBSeq/man/QuantileNorm.Rd0000644000175200017520000000173514516004476016230 0ustar00biocbuildbiocbuild\name{QuantileNorm} \alias{QuantileNorm} \title{ Quantile Normalization } \description{ 'QuantileNorm' gives the quantile normalization. } \usage{ QuantileNorm(Data, Quantile) } \arguments{ \item{Data}{ The data matrix with transcripts in rows and lanes in columns. } \item{Quantile}{ The quantile the user wishs to use. Should be a number between 0 and 1. } } \details{ Use a quantile point to normalize the data. } \value{ The function will return a vector contains the normalization factor for each lane. % ... } \references{ Bullard, James H., et al. Evaluation of statistical methods for normalization and differential expression in mRNA-Seq experiments. BMC bioinformatics 11.1 (2010): 94. } \author{ Ning Leng } \seealso{ MedianNorm } \examples{ data(GeneMat) Sizes = QuantileNorm(GeneMat,.75) #EBOut = EBTest(Data = GeneMat, # Conditions = as.factor(rep(c("C1","C2"), each=5)), # sizeFactors = Sizes, maxround = 5) } \keyword{ Normalization }% __ONLY ONE__ keyword per line EBSeq/man/RankNorm.Rd0000644000175200017520000000127214516004476015335 0ustar00biocbuildbiocbuild\name{RankNorm} \alias{RankNorm} \title{ Rank Normalization } \description{ 'RankNorm' gives the rank normalization. } \usage{ RankNorm(Data) } \arguments{ \item{Data}{ The data matrix with transcripts in rows and lanes in columns. } } \value{ The function will return a matrix contains the normalization factor for each lane and each transcript. } \author{ Ning Leng } \seealso{ MedianNorm, QuantileNorm } \examples{ data(GeneMat) Sizes = RankNorm(GeneMat) # Run EBSeq # EBres = EBTest(Data = GeneData, NgVector = rep(1,10^4), # Vect5End = rep(1,10^4), Vect3End = rep(1,10^4), # Conditions = as.factor(rep(c(1,2), each=5)), # sizeFactors = Sizes, maxround=5) } \keyword{ Normalization } EBSeq/man/beta.mom.Rd0000644000175200017520000000151414516004476015307 0ustar00biocbuildbiocbuild\name{beta.mom} \alias{beta.mom} \title{ Fit the beta distribution by method of moments } \description{ 'beta.mom' fits the beta distribution by method of moments. } \usage{ beta.mom(qs.in) } \arguments{ \item{qs.in}{A vector contains the numbers that are assumed to follow a beta distribution.} } \value{ \item{alpha.hat}{Returns the estimation of alpha.} \item{beta.hat}{Returns the estimation of beta.} } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \seealso{ DenNHist, DenNHistTable } \examples{ #tmp = rbeta(5, 5, 100) #param = beta.mom(tmp) } \keyword{ beta } EBSeq/man/crit_fun.Rd0000644000175200017520000000305214516004476015415 0ustar00biocbuildbiocbuild\name{crit_fun} \alias{crit_fun} \title{ Calculate the soft threshold for a target FDR } \description{ 'crit_fun' calculates the soft threshold for a target FDR. } \usage{ crit_fun(PPEE, thre) } \arguments{ \item{PPEE}{The posterior probabilities of being EE.} \item{thre}{The target FDR.} } \details{ Regarding a target FDR alpha, both hard threshold and soft threshold could be used. If the hard threshold is preferred, user could simply take the transcripts with PP(DE) greater than (1-alpha). Using the hard threshold, any DE transcript in the list is with FDR <= alpha. If the soft threshold is preferred, user could take the transcripts with PP(DE) greater than crit_fun(PPEE, alpha). Using the soft threshold, the list of DE transcripts is with average FDR alpha. } \value{ The adjusted FDR threshold of target FDR. } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \examples{ data(GeneMat) GeneMat.small = GeneMat[c(1:10, 500:600),] Sizes = MedianNorm(GeneMat.small) EBOut = EBTest(Data = GeneMat.small, Conditions = as.factor(rep(c("C1","C2"), each=5)), sizeFactors = Sizes, maxround = 5) PP = GetPPMat(EBOut) DEfound = rownames(PP)[which(PP[,"PPDE"] >= 0.95)] str(DEfound) SoftThre = crit_fun(PP[,"PPEE"], 0.05) DEfound_soft = rownames(PP)[which(PP[,"PPDE"] >= SoftThre)] } \keyword{ FDR } EBSeq/man/f0.Rd0000644000175200017520000000205114516004476014107 0ustar00biocbuildbiocbuild\name{f0} \alias{f0} %- Also NEED an '\alias' for EACH other topic documented here. \title{ The Prior Predictive Distribution of being EE } \description{ 'f0' gives the Prior Predictive Distribution of being EE. } \usage{ f0(Input, AlphaIn, BetaIn, EmpiricalR, NumOfGroups, log) } \arguments{ \item{Input}{Expression Values.} \item{AlphaIn, BetaIn, EmpiricalR}{The parameters estimated from last iteration of EM.} \item{NumOfGroups}{How many transcripts within each Ng group.} \item{log}{If true, will give the log of the output.} } \value{ The function will return the prior predictive distribution values of being EE. } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \seealso{ f1 } \examples{ # #f0(matrix(rnorm(100,100,1),ncol=10), .5, .6, # matrix(rnorm(100,200,1),ncol=10), 100, TRUE) } EBSeq/man/f1.Rd0000644000175200017520000000222714516004476014115 0ustar00biocbuildbiocbuild\name{f1} \alias{f1} \title{ The Prior Predictive Distribution of being DE } \description{ 'f1' gives the Prior Predictive Distribution of DE. } \usage{ f1(Input1, Input2, AlphaIn, BetaIn, EmpiricalRSP1, EmpiricalRSP2, NumOfGroup, log) } \arguments{ \item{Input1}{Expressions from Condition1.} \item{Input2}{Expressions from Condition2.} \item{AlphaIn, BetaIn, EmpiricalRSP1, EmpiricalRSP2}{The parameters estimated from last iteration of EM.} \item{NumOfGroup}{ How many transcripts within each Ng group.} \item{log}{If true, will give the log of the output.} } \value{ The function will return the prior predictive distribution values of being DE. } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \seealso{ f0 } \examples{ #f1(matrix(rnorm(100,100,1),ncol=10), # matrix(rnorm(100,100,1),ncol=10), .5, .6, # matrix(rnorm(100,200,1),ncol=10), # matrix(rnorm(100,200,1),ncol=10), 100, TRUE) } EBSeq/man/man/0000755000175200017520000000000014516030501014054 5ustar00biocbuildbiocbuildEBSeq/man/man/DenNHist.Rd0000644000175200017520000000257614516004476016045 0ustar00biocbuildbiocbuild\name{DenNHist} \alias{DenNHist} \title{ Density plot to compare the empirical q's and the simulated q's from the fitted beta distribution. } \description{ 'DenNHist' gives the density plot that compares the empirical q's and the simulated q's from the fitted beta distribution. } \usage{ DenNHist(EBOut, GeneLevel = F) } \arguments{ \item{EBOut}{The output of EBTest or EBMultiTest.} \item{GeneLevel}{Indicate whether the results are from data at gene level.} } \value{ For data with n1 conditions and n2 uncertainty groups, n1*n2 plots will be generated. Each plot represents a subset of the data. The empirical estimation of q's will be represented as blue histograms and the density of the fitted beta distribution will be represented as the green line. } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \seealso{ beta.mom, QQP, EBTest, EBMultiTest } \examples{ data(GeneMat) GeneMat.small = GeneMat[c(500:1000),] Sizes = MedianNorm(GeneMat.small) EBOut = EBTest(Data = GeneMat.small, Conditions = as.factor(rep(c("C1","C2"), each=5)), sizeFactors = Sizes, maxround = 5) par(mfrow = c(2,2)) DenNHist(EBOut) } \keyword{ beta } EBSeq/man/man/EBMultiTest.Rd0000644000175200017520000001177114516004476016527 0ustar00biocbuildbiocbuild\name{EBMultiTest} \alias{EBMultiTest} \title{ Using EM algorithm to calculate the posterior probabilities of interested patterns in a multiple condition study } \description{ 'EBMultiTest' is built based on the assumption of NB-Beta Empirical Bayes model. It utilizes the EM algorithm to give the posterior probability of the interested patterns. } \usage{ EBMultiTest(Data, NgVector = NULL, Conditions, sizeFactors, uc = 0, AllParti = NULL, fast = T, Alpha = NULL, Beta = NULL, Qtrm = 1, QtrmCut = 0, maxround = 50, step1 = 1e-06, step2 = 0.01, thre = log(2), sthre = 0, filter = 10, stopthre = 1e-04, nequal = 2) } \arguments{ \item{Data}{A data matrix contains expression values for each transcript (gene or isoform level). In which rows should be transcripts and columns should be samples.} \item{NgVector}{A vector indicates the uncertainty group assignment of each isoform. e.g. if we use number of isoforms in the host gene to define the uncertainty groups, suppose the isoform is in a gene with 2 isoforms, Ng of this isoform should be 2. The length of this vector should be the same as the number of rows in Data. If it's gene level data, Ngvector could be left as NULL.} \item{Conditions}{A vector indicates the condition in which each sample belongs to. } \item{sizeFactors}{The normalization factors. It should be a vector with lane specific numbers (the length of the vector should be the same as the number of samples, with the same order as the columns of Data).} \item{uc}{number of unceratin positions, unit levels} \item{AllParti}{user specified set of partitions, a matrix, with each row represent a partition} \item{fast}{boolean indicator whether to use fast EBSeq or full EBSeq} \item{Alpha}{start value of hyper parameter alpha} \item{Beta}{start value of hyper parameter beta} \item{Qtrm, QtrmCut}{ Transcripts with Qtrm th quantile < = QtrmCut will be removed before testing. The default value is Qtrm = 1 and QtrmCut=0. By default setting, transcripts with all 0's won't be tested. } \item{maxround}{Number of iterations. The default value is 50. Users should always check the convergency by looking at the Alpha and Beta in output. If the hyper-parameter estimations are not converged in 50 iterations, larger number is suggested.} \item{step1}{stepsize for gradient ascent of alpha} \item{step2}{stepsize for gradietn ascent of beta} \item{thre}{threshold for determining the state of a position} \item{sthre}{shrinkage threshold for iterative pruning during the EM updates} \item{filter}{filterthreshold for low expression units} \item{stopthre}{stopping threshold for EM} \item{nequal}{when there is a chain of equal states with the number of equal states bigger than nequal, equalhandle algorithm will be used to further checking the homogeneity between the group means} } \value{ \item{Alpha}{Fitted parameter alpha of the prior beta distribution. } \item{Beta}{Fitted parameter beta of the prior beta distribution.} \item{P}{Global proportion of DE patterns.} \item{RList}{The fitted values of r for each transcript.} \item{MeanList}{The mean of each transcript (across conditions).} \item{VarList}{The variance of each transcript (across conditions).} \item{QList}{The fitted q values of each transcript within the two conditions} \item{Mean}{The mean of each transcript within the two conditions (adjusted by normalization factors).} \item{Var}{The estimated variance of each transcript within the two conditions (adjusted by normalization factors).} \item{PoolVar}{The variance of each transcript (The pooled value of within condition EstVar).} \item{DataNorm}{Normalized expression matrix.} \item{Iso}{same as NgVector} \item{AllZeroIndex}{The transcript with expression 0 for all samples (which are not tested).} \item{PPMat}{The Posterior Probability of following each pattern (columns) for each transcript (rows). Transcripts with expression 0 for all samples are not shown in this matrix.} \item{AllParti}{selected patterns} \item{PPMatWith0}{The Posterior Probability of following each pattern (columns) for each transcript (rows). Transcripts with expression 0 for all samples are shown in this matrix with PP(any_pattrn)=NA. The transcript order is exactly the same as the order of the input data.} \item{Conditions}{The input conditions.} \item{NumUC}{The number of uncertain positions at each unit} } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng, Xiuyu Ma } \seealso{ EBTest, GetMultiPP, GetMultiFC } \examples{ data(MultiGeneMat) Conditions = c("C1","C1","C2","C2","C3","C3") MultiSize = MedianNorm(MultiGeneMat) MultiOut = EBMultiTest(MultiGeneMat,Conditions=Conditions,uc = 2, sizeFactors=MultiSize) MultiPP = GetMultiPP(MultiOut) } \keyword{ DE } \keyword{ Multiple Condition }% __ONLY ONE__ keyword per line EBSeq/man/man/EBSeqTest.Rd0000644000175200017520000000364614516004476016167 0ustar00biocbuildbiocbuild\name{EBSeqTest} \alias{EBSeqTest} \title{EBSeq core} \usage{ EBSeqTest(data, conditions, uc, AllParti = NULL, iLabel = 1, sizefactor = 1, iter = 50, alpha = 0.4, beta = 0, step1 = 1e-06, step2 = 0.01, thre = log(2), sthre = 0.001, filter = 10, stopthre = 0.001, nequal = 2) } \arguments{ \item{data}{A data matrix contains expression values for each transcript (gene or isoform level). In which rows should be transcripts and columns should be samples. For single cell data, normalized counts are required} \item{conditions}{condition label for samples} \item{uc}{number of unceratin positions, unit level} \item{AllParti}{user specified set of partitions} \item{iLabel}{label for isoform, indicating how beta are shared among units} \item{sizefactor}{The normalization factors. It should be a vector with lane specific numbers (the length of the vector should be the same as the number of samples, with the same order as the columns of Data).} \item{iter}{maximum iteration step of EM} \item{alpha}{start value of hyper parameter alpha} \item{beta}{start value of hyper parameter beta} \item{step1}{stepsize for gradient ascent of alpha} \item{step2}{stepsize for gradietn ascent of beta} \item{thre}{threshold for determining the state of a position} \item{sthre}{shrinkage threshold for iterative pruning during the EM updates} \item{filter}{filterthreshold for low expression units} \item{stopthre}{stopping threshold for EM} \item{nequal}{when there is a chain of equal states with the number of equal states bigger than nequal, equalhandle algorithm will be used to further checking the homogeneity between the group means} } \value{ a list containing selected DE patterns and their posterior probabilities, values for alpha and beta, some moments of the data } \description{ core function of EBSeq computation. Users are expected to use the wrappers, 2 conditions scenario, using EBTest, more than 2 condtiions, using EBMultiTest }EBSeq/man/man/EBSeq_NingLeng-package.Rd0000644000175200017520000000226014516004476020470 0ustar00biocbuildbiocbuild\name{EBSeq_NingLeng-package} \alias{EBSeq_NingLeng-package} \alias{EBSeq_NingLeng} \docType{package} \title{ EBSeq: RNA-Seq Differential Expression Analysis on both gene and isoform level } \description{ In 'EBSeq_NingLeng-package,' a Negative Binomial-beta model was built to analyze the RNASeq data. We used the empirical bayes method and EM algrithom. } \details{ \tabular{ll}{ Package: \tab EBSeq_NingLeng\cr Type: \tab Package\cr Version: \tab 1.0\cr Date: \tab 2011-06-13\cr License: \tab What license is it under?\cr LazyLoad: \tab yes\cr } } \author{ Ning Leng, Christina Kendziorski Maintainer: Ning Leng } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \keyword{ package } \seealso{ EBTest, EBMultiTest } \examples{ data(GeneMat) GeneMat.small = GeneMat[c(1:10,511:550),] Sizes = MedianNorm(GeneMat.small) EBOut = EBTest(Data=GeneMat.small, Conditions=as.factor(rep(c("C1","C2"), each=5)), sizeFactors=Sizes, maxround=5) } EBSeq/man/man/EBTest.Rd0000644000175200017520000001147114516004476015511 0ustar00biocbuildbiocbuild\name{EBTest} \alias{EBTest} %- Also NEED an '\alias' for EACH other topic documented here. \title{ Using EM algorithm to calculate the posterior probabilities of being DE } \description{ Base on the assumption of NB-Beta Empirical Bayes model, the EM algorithm is used to get the posterior probability of being DE. } \usage{ EBTest(Data, NgVector = NULL, Conditions, sizeFactors, fast = T, Alpha = NULL, Beta = NULL, Qtrm = 1, QtrmCut = 0, maxround = 50, step1 = 1e-06, step2 = 0.01, thre = log(2), sthre = 0, filter = 10, stopthre = 1e-4) } \arguments{ \item{Data}{A data matrix contains expression values for each transcript (gene or isoform level). In which rows should be transcripts and columns should be samples.} \item{NgVector}{A vector indicates the uncertainty group assignment of each isoform. e.g. if we use number of isoforms in the host gene to define the uncertainty groups, suppose the isoform is in a gene with 2 isoforms, Ng of this isoform should be 2. The length of this vector should be the same as the number of rows in Data. If it's gene level data, Ngvector could be left as NULL.} \item{Conditions}{A factor indicates the condition which each sample belongs to. } \item{sizeFactors}{The normalization factors. It should be a vector with lane specific numbers (the length of the vector should be the same as the number of samples, with the same order as the columns of Data).} \item{fast}{boolean indicator whether to use fast EBSeq or full EBSeq} \item{Alpha}{start value of hyper parameter alpha} \item{Beta}{start value of hyper parameter beta} \item{Qtrm, QtrmCut}{ Transcripts with Qtrm th quantile < = QtrmCut will be removed before testing. The default value is Qtrm = 1 and QtrmCut=0. By default setting, transcripts with all 0's won't be tested. } \item{maxround}{Number of iterations. The default value is 50. Users should always check the convergency by looking at the Alpha and Beta in output. If the hyper-parameter estimations are not converged in 50 iterations, larger number is suggested.} \item{step1}{stepsize for gradient ascent of alpha} \item{step2}{stepsize for gradietn ascent of beta} \item{thre}{threshold for determining the state of a position} \item{sthre}{shrinkage threshold for iterative pruning during the EM updates} \item{filter}{filterthreshold for low expression units} \item{stopthre}{stopping threshold for EM} } \details{For each transcript gi within condition, the model assumes: X_{gis}|mu_{gi} ~ NB (r_{gi0} * l_s, q_{gi}) q_gi|alpha, beta^N_g ~ Beta (alpha, beta^N_g) In which the l_s is the sizeFactors of samples. The function will test "H0: q_{gi}^{C1} = q_{gi}^{C2}" and "H1: q_{gi}^{C1} != q_{gi}^{C2}." } \value{ \item{Alpha}{Fitted parameter alpha of the prior beta distribution. } \item{Beta}{Fitted parameter beta of the prior beta distribution.} \item{P}{Global proportion of DE patterns.} \item{RList}{The fitted values of r for each transcript.} \item{MeanList}{The mean of each transcript (across conditions).} \item{VarList}{The variance of each transcript (across conditions).} \item{QList}{The fitted q values of each transcript within the two conditions} \item{Mean}{The mean of each transcript within the two conditions (adjusted by normalization factors).} \item{Var}{The estimated variance of each transcript within the two conditions (adjusted by normalization factors).} \item{PoolVar}{The variance of each transcript (The pooled value of within condition EstVar).} \item{DataNorm}{Normalized expression matrix.} \item{AllZeroIndex}{The transcript with expression 0 for all samples (which are not tested).} \item{Iso}{same as NgVector} \item{PPMat}{A matrix contains posterior probabilities of being EE (the first column) or DE (the second column). Rows are transcripts. Transcripts with expression 0 for all samples are not shown in this matrix.} \item{AllParti}{selected patterns} \item{PPMatWith0}{A matrix contains posterior probabilities of being EE (the first column) or DE (the second column). Rows are transcripts. Transcripts with expression 0 for all samples are shown as PP(EE) = PP(DE) = NA in this matrix. The transcript order is exactly the same as the order of the input data.} \item{Conditions}{The input conditions. } } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng, Xiuyu Ma } \seealso{ EBMultiTest, PostFC, GetPPMat } \examples{ data(GeneMat) str(GeneMat) Sizes = MedianNorm(GeneMat) EBOut = EBTest(Data=GeneMat, Conditions=as.factor(rep(c("C1","C2"),each=5)), sizeFactors = Sizes) PP = GetPPMat(EBOut) } \keyword{ DE } \keyword{ Two condition }% __ONLY ONE__ keyword per line EBSeq/man/man/GeneMat.Rd0000644000175200017520000000107314516004476015700 0ustar00biocbuildbiocbuild\name{GeneMat} \alias{GeneMat} \docType{data} \title{ The simulated data for two condition gene DE analysis } \description{ 'GeneMat' gives the simulated data for two condition gene DE analysis. } \usage{data(GeneMat)} \source{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \seealso{ IsoList } \examples{ data(GeneMat) } \keyword{datasets} EBSeq/man/man/GetDEResults.Rd0000644000175200017520000001165114516004476016675 0ustar00biocbuildbiocbuild\name{GetDEResults} \alias{GetDEResults} \title{ Obtain Differential Expression Analysis Results in a Two-condition Test } \description{ Obtain DE analysis results in a two-condition test using the output of EBTest() } \usage{ GetDEResults(EBPrelim, FDR=0.05, Method="robust", FDRMethod="hard", Threshold_FC=0.7, Threshold_FCRatio=0.3, SmallNum=0.01) } \arguments{ \item{EBPrelim}{Output from the function EBTest().} \item{FDR}{Target FDR, defaut is 0.05.} \item{FDRMethod}{"hard" or "soft". Giving a target FDR alpha, either hard threshold and soft threshold may be used. If the hard threshold is preferred, DE transcripts are defined as the the transcripts with PP(DE) greater than (1-alpha). Using the hard threshold, any DE transcript in the list has FDR <= alpha. If the soft threshold is preferred, the DE transcripts are defined as the transcripts with PP(DE) greater than crit_fun(PPEE, alpha). Using the soft threshold, the list of DE transcripts has average FDR alpha. Based on results from our simulation studies, hard thresholds provide a better-controlled empirical FDR when sample size is relatively small(Less than 10 samples in each condition). User may consider the soft threshold when sample size is large to improve power.} \item{Method}{"robust" or "classic". Using the "robust" option, EBSeq is more robust to genes with outliers and genes with extremely small variances. Using the "classic" option, the results will be more comparable to those obtained by using the GetPPMat() function from earlier version (<= 1.7.0) of EBSeq. Default is "robust".} \item{Threshold_FC}{Threshold for the fold change (FC) statistics. The default is 0.7. The FC statistics are calculated as follows. First the posterior FC estimates are calculated using PostFC() function. The FC statistics is defined as exp(-|log posterior FC|) and therefore is always less than or equal to 1. The default threshold was selected as the optimal threshold learned from our simulation studies. By setting the threshold as 0.7, the expected FC for a DE transcript is less than 0.7 (or greater than 1/0.7=1.4). User may specify their own threshold here. A higher (less conservative) threshold may be used here when sample size is large. Our simulation results indicated that when there are more than or equal to 5 samples in each condition, a less conservative threshold will improve the power when the FDR is still well-controlled. The parameter will be ignored if Method is set as "classic".} \item{Threshold_FCRatio}{Threshold for the fold change ratio (FCRatio) statistics. The default is 0.3. The FCRatio statistics are calculated as follows. First we get another revised fold change statistic called Median-FC statistic for each transcript. For each transcript, we calculate the median of normalized expression values within each condition. The MedianFC is defined as exp(-|log((C1Median+SmallNum)/(C2Median+SmallNum))|). Note a small number is added to avoid Inf and NA. See SmallNum for more details. The FCRatio is calculated as exp(-|log(FCstatistics/MedianFC)|). Therefore it is always less than or equal to 1. The default threshold was selected as the optimal threshold learned from our simulation studies. By setting the threshold as 0.3, the FCRatio for a DE transcript is expected to be larger than 0.3. } \item{SmallNum}{When calculating the FCRatio (or Median-FC), a small number is added for each transcript in each condition to avoid Inf and NA. Default is 0.01.} } \details{ GetDEResults() function takes output from EBTest() function and output a list of DE transcripts under a target FDR. It also provides posterior probability estimates for each transcript. } \value{ \item{DEfound}{A list of DE transcripts.} \item{PPMat}{Posterior probability matrix. Transcripts are following the same order as in the input matrix. Transcripts that were filtered by magnitude (in EBTest function), FC, or FCR are assigned with NA for both PPDE and PPEE.} \item{Status}{Each transcript will be assigned with one of the following values: "DE", "EE", "Filtered: Low Expression", "Filtered: Fold Change" and "Filtered: Fold Change Ratio". Transcripts are following the same order as in the input matrix.} } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng, Yuan Li } \seealso{ EBTest } \examples{ data(GeneMat) str(GeneMat) GeneMat.small = GeneMat[c(1:10,511:550),] Sizes = MedianNorm(GeneMat.small) EBOut = EBTest(Data = GeneMat.small, Conditions = as.factor(rep(c("C1","C2"), each = 5)), sizeFactors = Sizes, maxround = 5) Out = GetDEResults(EBOut) } \keyword{ DE } \keyword{ Two condition } EBSeq/man/man/GetMultiFC.Rd0000644000175200017520000000361314516004476016325 0ustar00biocbuildbiocbuild\name{GetMultiFC} \alias{GetMultiFC} \title{ Calculate the Fold Changes for Multiple Conditions } \description{ 'GetMultiFC' calculates the Fold Changes for each pair of conditions in a multiple condition study.} \usage{ GetMultiFC(EBMultiOut, SmallNum = 0.01) } \arguments{ \item{EBMultiOut}{The output of EBMultiTest function.} \item{SmallNum}{A small number will be added for each transcript in each condition to avoid Inf and NA. Default is 0.01.} } \details{ Provide the FC (adjusted by the normalization factors) for each pair of comparisons. A small number will be added for each transcript in each condition to avoid Inf and NA. Default is set to be 0.01. } \value{ \item{FCMat}{The FC of each pair of comparison (adjusted by the normalization factors).} \item{Log2FCMat}{The log 2 FC of each pair of comparison (adjusted by the normalization factors).} \item{PostFCMat}{The posterior FC of each pair of comparison.} \item{Log2PostFCMat}{The log 2 posterior FC of each pair of comparison.} \item{CondMean}{The mean of each transcript within each condition (adjusted by the normalization factors).} \item{ConditionOrder}{The condition assignment for C1Mean, C2Mean, etc.} } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng, Xiuyu MA } \seealso{ EBMultiTest, PostFC } \examples{ data(MultiGeneMat) Conditions = c("C1","C1","C2","C2","C3","C3") MultiSize = MedianNorm(MultiGeneMat) MultiOut = EBMultiTest(MultiGeneMat,Conditions=Conditions,uc = 2, sizeFactors=MultiSize) MultiFC = GetMultiFC(MultiOut) } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{ Posterior Probability } EBSeq/man/man/GetMultiPP.Rd0000644000175200017520000000225714516004476016357 0ustar00biocbuildbiocbuild\name{GetMultiPP} \alias{GetMultiPP} \title{ Posterior Probability of Each Transcript } \description{ 'GetMultiPP' generates the Posterior Probability of being each pattern of each transcript based on the EBMultiTest output. } \usage{ GetMultiPP(EBout) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{EBout}{The output of EBMultiTest function.} } \value{ \item{PP}{The poster probabilities of being each pattern.} \item{MAP}{Gives the most likely pattern.} \item{Patterns}{The Patterns.} } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng, XiuyuMa } \seealso{GetPPMat} \examples{ data(MultiGeneMat) MultiGeneMat.small = MultiGeneMat[201:210,] Conditions = c("C1","C1","C2","C2","C3","C3") MultiSize = MedianNorm(MultiGeneMat) MultiOut = EBMultiTest(MultiGeneMat,Conditions=Conditions,uc = 2, sizeFactors=MultiSize) MultiPP = GetMultiPP(MultiOut) } \keyword{ Posterior Probability } EBSeq/man/man/GetNg.Rd0000644000175200017520000000316014516004476015363 0ustar00biocbuildbiocbuild\name{GetNg} \alias{GetNg} \title{ Ng Vector } \description{ 'GetNg' generates the Ng vector for the isoform level data. (While using the number of isoform in the host gene to define the uncertainty groups.) } \usage{ GetNg(IsoformName, GeneName, TrunThre = 3) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{IsoformName}{A vector contains the isoform names.} \item{GeneName}{The gene names of the isoforms in IsoformNames (Should be in the same order).} \item{TrunThre}{The number of uncertainty groups the user wish to define. The default is 3.} } \value{ \item{GeneNg}{The number of isoforms that are contained in each gene. } \item{GeneNgTrun}{The truncated Ng of each gene. (The genes contain more than 3 isoforms are with Ng 3.) } \item{IsoformNg}{The Ng of each isoform.} \item{IsoformNgTrun}{The truncated Ng of each isoform (could be used to define the uncertainty group assignment).} } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \examples{ data(IsoList) IsoMat = IsoList$IsoMat IsoNames = IsoList$IsoNames IsosGeneNames = IsoList$IsosGeneNames IsoSizes = MedianNorm(IsoMat) NgList = GetNg(IsoNames, IsosGeneNames) #IsoNgTrun = NgList$IsoformNgTrun #IsoEBOut = EBTest(Data = IsoMat, NgVector = IsoNgTrun, # Conditions = as.factor(rep(c("C1","C2"), each=5)), # sizeFactors = IsoSizes, maxround = 5) } \keyword{ Ng } EBSeq/man/man/GetNormalizedMat.Rd0000644000175200017520000000204214516004476017563 0ustar00biocbuildbiocbuild\name{GetNormalizedMat} \alias{GetNormalizedMat} \title{ Calculate normalized expression matrix } \description{ 'GetNormalizedMat' calculates the normalized expression matrix. (Note: this matrix is only used for visualization etc. EBTes and EBMultiTest request *un-adjusted* expressions and normalization factors.) } \usage{ GetNormalizedMat(Data, Sizes) } \arguments{ \item{Data}{The data matrix with transcripts in rows and lanes in columns.} \item{Sizes}{A vector contains the normalization factor for each lane.} } \value{The function will return a normalized matrix.} \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \examples{ data(GeneMat) str(GeneMat) Sizes = MedianNorm(GeneMat) NormData = GetNormalizedMat(GeneMat, Sizes) } \keyword{ Normalization }% __ONLY ONE__ keyword per line EBSeq/man/man/GetPPMat.Rd0000644000175200017520000000201014516004476015771 0ustar00biocbuildbiocbuild\name{GetPPMat} \alias{GetPPMat} \title{ Posterior Probability of Transcripts } \description{ 'GetPPMat' generates the Posterior Probability of being each pattern of each transcript based on the EBTest output. } \usage{ GetPPMat(EBout) } \arguments{ \item{EBout}{The output of EBTest function.} } \value{The poster probabilities of being EE (first column) and DE (second column). } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng, Xiuyu Ma } \examples{ data(GeneMat) Sizes = MedianNorm(GeneMat) EBOut = EBTest(Data=GeneMat, Conditions=as.factor(rep(c("C1","C2"),each=5)), sizeFactors = Sizes) PP = GetPPMat(EBOut) str(PP) head(PP) } % Add one or more standard keywords, see file 'KEYWORDS' in the % R documentation directory. \keyword{ Posterior Probability } EBSeq/man/man/GetPatterns.Rd0000644000175200017520000000140414516004476016616 0ustar00biocbuildbiocbuild\name{GetPatterns} \alias{GetPatterns} \title{ Generate all possible patterns in a multiple condition study } \description{ 'GetPatterns' generates all possible patterns in a multiple condition study. } \usage{ GetPatterns(Conditions) } \arguments{ \item{Conditions}{The names of the Conditions in the study.} } \value{A matrix describe all possible patterns. } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \examples{ Conditions = c("C1","C1","C2","C2","C3","C3") PosParti = GetPatterns(Conditions) } EBSeq/man/man/GetSelectedPatterns.Rd0000644000175200017520000000160514516004476020272 0ustar00biocbuildbiocbuild\name{GetSelectedPatterns} \alias{GetSelectedPatterns} \title{ Get selected patterns in a multiple condition study } \description{ 'GetSelectedPatterns' get selected patterns in a multiple condition study. } \usage{ GetSelectedPatterns(EBout) } \arguments{ \item{EBout}{Results from EBMultiTest} } \value{A matrix describe selected patterns. } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng, Xiuyu Ma } \examples{ data(MultiGeneMat) Conditions=c("C1","C1","C2","C2","C3","C3") MultiSize=MedianNorm(MultiGeneMat) MultiOut=EBMultiTest(MultiGeneMat,Conditions=Conditions, sizeFactors=MultiSize) PosParti=GetSelectedPatterns(MultiOut) } EBSeq/man/man/IsoList.Rd0000644000175200017520000000107714516004476015752 0ustar00biocbuildbiocbuild\name{IsoList} \alias{IsoList} \docType{data} \title{ The simulated data for two condition isoform DE analysis } \description{ 'IsoList' gives the simulated data for two condition isoform DE analysis. } \usage{data(IsoList)} \source{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \seealso{GeteMat} \examples{ data(IsoList) } \keyword{datasets} EBSeq/man/man/IsoMultiList.Rd0000644000175200017520000000114714516004476016763 0ustar00biocbuildbiocbuild\name{IsoMultiList} \alias{IsoMultiList} \docType{data} \title{ The simulated data for multiple condition isoform DE analysis } \description{ 'IsoMultiList' gives a set of simulated data for multiple condition isoform DE analysis. } \usage{data(IsoMultiList)} \source{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \seealso{IsoList } \examples{ data(IsoMultiList) } \keyword{datasets} EBSeq/man/man/Likefun.Rd0000644000175200017520000000171414516004476015757 0ustar00biocbuildbiocbuild\name{Likefun} \alias{Likefun} \title{ Likelihood Function of the NB-Beta Model } \description{ 'Likefun' specifies the Likelihood Function of the NB-Beta Model. } \usage{ Likefun(ParamPool, InputPool) } \arguments{ \item{ParamPool}{The parameters that will be estimated in EM.} \item{InputPool}{The control parameters that will not be estimated in EM.} } \value{The function will return the log-likelihood. } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \examples{ #x1 = c(.6,.7,.3) #Input = matrix(rnorm(100,100,1), ncol=10) #RIn = matrix(rnorm(100,200,1), ncol=10) #InputPool = list(Input[,1:5], Input[,6:10], Input, # rep(.1,100), 1, RIn, RIn[,1:5], RIn[,6:10], 100) #Likefun(x1, InputPool) } EBSeq/man/man/LikefunMulti.Rd0000644000175200017520000000214714516004476016773 0ustar00biocbuildbiocbuild\name{LikefunMulti} \alias{LikefunMulti} \title{ Likelihood Function of the NB-Beta Model In Multiple Condition Test } \description{ 'LikefunMulti' specifies the Likelihood Function of the NB-Beta Model In Multiple Condition Test. } \usage{ LikefunMulti(ParamPool, InputPool) } \arguments{ \item{ParamPool}{The parameters that will be estimated in EM.} \item{InputPool}{The control parameters that will not be estimated in EM.} } \value{The function will return the log-likelihood.} \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \examples{ #x1 = c(.6,.7,.3) #Input = matrix(rnorm(100,100,1),ncol=10) #RIn = matrix(rnorm(100,200,1),ncol=10) #InputPool = list(list(Input[,1:5],Input[,6:10]), # Input, cbind(rep(.1, 10), rep(.9,10)), 1, # RIn, list(RIn[,1:5],RIn[,6:10]), # 10, rbind(c(1,1),c(1,2))) #LikefunMulti(x1, InputPool) } EBSeq/man/man/LogN.Rd0000644000175200017520000000221114516004476015212 0ustar00biocbuildbiocbuild\name{LogN} \alias{LogN} \title{ The function to run EM (one round) algorithm for the NB-beta model. } \description{ 'LogN' specifies the function to run (one round of) the EM algorithm for the NB-beta model. } \usage{ LogN(Input, InputSP, EmpiricalR, EmpiricalRSP, NumOfEachGroup, AlphaIn, BetaIn, PIn, NoneZeroLength) } \arguments{ \item{Input, InputSP}{The expressions among all the samples.} \item{NumOfEachGroup}{Number of genes in each Ng group.} \item{AlphaIn, PIn, BetaIn, EmpiricalR, EmpiricalRSP}{The parameters from the last EM step.} \item{NoneZeroLength}{Number of Ng groups.} } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \examples{ #Input = matrix(rnorm(100,100,1), ncol=10) #rownames(Input) = paste("g",1:10) #RIn = matrix(rnorm(100,200,1), ncol=10) #res = LogN(Input, list(Input[,1:5], Input[,6:10]), # RIn, list(RIn[,1:5], RIn[,6:10]), # 10, .6, .7, .3, 1) } EBSeq/man/man/LogNMulti.Rd0000644000175200017520000000270714516004476016237 0ustar00biocbuildbiocbuild\name{LogNMulti} \alias{LogNMulti} %- Also NEED an '\alias' for EACH other topic documented here. \title{ EM algorithm for the NB-beta model in the multiple condition test } \description{ 'LogNMulti' specifies the function to run (one round of) the EM algorithm for the NB-beta model in the multiple condition test.} \usage{ LogNMulti(Input, InputSP, EmpiricalR, EmpiricalRSP, NumOfEachGroup, AlphaIn, BetaIn, PIn, NoneZeroLength, AllParti, Conditions) } \arguments{ \item{Input, InputSP}{The expressions among all the samples.} \item{NumOfEachGroup}{Number of genes in each Ng group.} \item{AlphaIn, PIn, BetaIn, EmpiricalR, EmpiricalRSP}{The parameters from the last EM step.} \item{NoneZeroLength}{Number of Ng groups.} \item{AllParti}{The patterns of interests.} \item{Conditions}{The condition assignment for each sample.} } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \examples{ # #Input = matrix(rnorm(100,100,1),ncol=10) #rownames(Input) = paste("g",1:10) #RIn = matrix(rnorm(100,200,1), ncol=10) #res = LogNMulti(Input, list(Input[,1:5], Input[,6:10]), # RIn, list(RIn[,1:5], RIn[,6:10]), 10, .6, .7, # c(.3,.7), 1, rbind(c(1,1), c(1,2)), # as.factor(rep(c("C1","C2"), each=5))) } EBSeq/man/man/MedianNorm.Rd0000644000175200017520000000362614516004476016417 0ustar00biocbuildbiocbuild\name{MedianNorm} \alias{MedianNorm} \title{ Median Normalization } \description{ 'MedianNorm' specifies the median-by-ratio normalization function from Anders et. al., 2010. } \usage{ MedianNorm(Data, alternative = FALSE) } \arguments{ \item{Data}{The data matrix with transcripts in rows and lanes in columns.} \item{alternative}{if alternative = TRUE, the alternative version of median normalization will be applied. The alternative method is similar to median-by-ratio normalization, but can deal with the cases when all of the genes/isoforms have at least one zero counts (in which case the median-by-ratio normalization will fail). In more details, in median-by-ratio normalization (denote l_1 as libsize for sample 1 as an example, assume total S samples): hat{l_1} = median_g [ X_g1 / (X_g1*X_g2*...*X_gS)^{-S} ] (1) which estimates l_1 / (l_1 * l_2 * ... * l_S)^{-S}. Since we have the constrain that (l_1 * l_2 * ... * l_S) = 1, equation (1) estimates l_1. Note (1) could also be written as: hat{l_1} = median_g [ (X_g1/X_g1 * X_g1/X_g2 * .... * X_g1/X_gS)^{-S}] In the alternative method, we estimate l_1/l_1, l_1/l_2, ... l_1/l_S individually by taking median_g(X_g1/X_g1), median_g(X_g1/X_g2) ... Then estimate l_1 = l_1 / (l_1 * l_2 * ... * l_S)^{-S} by taking the geomean of these estimates: hat{l_1} = [ median_g(X_g1/X_g1) * median_g(X_g1/X_g2) * median_g(X_g1/X_g3) * ... * median_g(X_g1/X_gS) ] ^{-S} } } \value{The function will return a vector contains the normalization factor for each lane.} \references{ Simon Anders and Wolfgang Huber. Differential expression analysis for sequence count data. Genome Biology (2010) 11:R106 (open access) } \author{ Ning Leng } \seealso{ QuantileNorm } \examples{ data(GeneMat) Sizes = MedianNorm(GeneMat) #EBOut = EBTest(Data = GeneMat, # Conditions = as.factor(rep(c("C1","C2"), each=5)), # sizeFactors = Sizes, maxround = 5) } \keyword{ Normalization } EBSeq/man/man/MultiGeneMat.Rd0000644000175200017520000000115314516004476016712 0ustar00biocbuildbiocbuild\name{MultiGeneMat} \alias{MultiGeneMat} \docType{data} \title{ The simulated data for multiple condition gene DE analysis } \description{ 'MultiGeneMat' generates a set of the simulated data for multiple condition gene DE analysis. } \usage{data(MultiGeneMat)} \source{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \seealso{ GeneMat } \examples{ data(MultiGeneMat) } \keyword{datasets} EBSeq/man/man/PlotPattern.Rd0000644000175200017520000000142214516004476016632 0ustar00biocbuildbiocbuild\name{PlotPattern} \alias{PlotPattern} \title{ Visualize the patterns } \description{ 'PlotPattern' generates the visualized patterns before the multiple condition test. } \usage{ PlotPattern(Patterns) } \arguments{ \item{Patterns}{ The output of GetPatterns function. } } \value{ A heatmap to visualize the patterns of interest. } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \examples{ Conditions = c("C1","C1","C2","C2","C3","C3") Patterns = GetPatterns(Conditions) PlotPattern(Patterns) } \keyword{ patterns } EBSeq/man/man/PlotPostVsRawFC.Rd0000644000175200017520000000202414516004476017335 0ustar00biocbuildbiocbuild\name{PlotPostVsRawFC} \alias{PlotPostVsRawFC} \title{ Plot Posterior FC vs FC } \description{ 'PlotPostVsRawFC' helps the users visualize the posterior FC vs FC in a two condition study. } \usage{ PlotPostVsRawFC(EBOut, FCOut) } \arguments{ \item{EBOut}{ The output of EBMultiTest function. } \item{FCOut}{The output of PostFC function.} } \value{ A figure shows fold change vs posterior fold change. } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \seealso{ PostFC } \examples{ data(GeneMat) GeneMat.small = GeneMat[c(500:600),] Sizes = MedianNorm(GeneMat.small) EBOut = EBTest(Data = GeneMat.small, Conditions = as.factor(rep(c("C1","C2"), each=5)), sizeFactors = Sizes, maxround = 5) FC = PostFC(EBOut) PlotPostVsRawFC(EBOut,FC) } \keyword{ Posterior Probability } EBSeq/man/man/PolyFitPlot.Rd0000644000175200017520000000536014516004476016610 0ustar00biocbuildbiocbuild\name{PolyFitPlot} \alias{PolyFitPlot} \title{ Fit the mean-var relationship using polynomial regression } \description{ 'PolyFitPlot' fits the mean-var relationship using polynomial regression. } \usage{ PolyFitPlot(X, Y, nterms, xname = "Estimated Mean", yname = "Estimated Var", pdfname = "", xlim = c(-1,5), ylim = c(-1,7), ChangeXY = F, col = "red") } %- maybe also 'usage' for other objects documented here. \arguments{ \item{X}{ The first group of values want to be fitted by the polynomial regression (e.g Mean of the data). } \item{Y}{ The second group of values want to be fitted by the polynomial regression (e.g. variance of the data). The length of Y should be the same as the length of X. } \item{nterms}{ How many polynomial terms want to be used. } \item{xname}{ Name of the x axis. } \item{yname}{ Name of the y axis. } \item{pdfname}{ Name of the plot. } \item{xlim}{ The x limits of the plot. } \item{ylim}{ The y limits of the plot. } \item{ChangeXY}{ If ChangeXY is setted to be TRUE, X will be treated as the dependent variable and Y will be treated as the independent one. Default is FALSE. } \item{col}{ Color of the fitted line. } } \value{The PolyFitPlot function provides a smooth scatter plot of two variables and their best fitting line of polynomial regression. } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \examples{ data(IsoList) str(IsoList) IsoMat = IsoList$IsoMat IsoNames = IsoList$IsoNames IsosGeneNames = IsoList$IsosGeneNames IsoSizes = MedianNorm(IsoMat) NgList = GetNg(IsoNames, IsosGeneNames) IsoNgTrun = NgList$IsoformNgTrun #IsoEBOut = EBTest(Data = IsoMat.small, # NgVector = IsoNgTrun, # Conditions = as.factor(rep(c("C1","C2"), each=5)), # sizeFactors = IsoSizes, maxround = 5) #par(mfrow=c(2,2)) #PolyFitValue = vector("list",3) #for(i in 1:3) # PolyFitValue[[i]] = PolyFitPlot(IsoEBOut$C1Mean[[i]], # IsoEBOut$C1EstVar[[i]], 5) #PolyAll = PolyFitPlot(unlist(IsoEBOut$C1Mean), # unlist(IsoEBOut$C1EstVar), 5) #lines(log10(IsoEBOut$C1Mean[[1]][PolyFitValue[[1]]$sort]), # PolyFitValue[[1]]$fit[PolyFitValue[[1]]$sort], # col="yellow", lwd=2) #lines(log10(IsoEBOut$C1Mean[[2]][PolyFitValue[[2]]$sort]), # PolyFitValue[[2]]$fit[PolyFitValue[[2]]$sort], # col="pink", lwd=2) #lines(log10(IsoEBOut$C1Mean[[3]][PolyFitValue[[3]]$sort]), # PolyFitValue[[3]]$fit[PolyFitValue[[3]]$sort], # col="green", lwd=2) #legend("topleft",c("All Isoforms","Ng = 1","Ng = 2","Ng = 3"), # col = c("red","yellow","pink","green"), # lty=1, lwd=3, box.lwd=2) } EBSeq/man/man/PostFC.Rd0000644000175200017520000000306514516004476015521 0ustar00biocbuildbiocbuild\name{PostFC} \alias{PostFC} \title{ Calculate the posterior fold change for each transcript across conditions } \description{ 'PostFC' calculates the posterior fold change for each transcript across conditions. } \usage{ PostFC(EBoutput, SmallNum = 0.01) } \arguments{ \item{EBoutput}{ The ourput from function EBTest. } \item{SmallNum}{A small number will be added for each transcript in each condition to avoid Inf and NA. Default is 0.01.} } \value{ Provide both FC and posterior FC across two conditions. FC is calculated as (MeanC1+SmallNum)/(MeanC2+SmallNum). And Posterior FC is calculated as: # Post alpha P_a_C1 = alpha + r_C1 * n_C1 # Post beta P_b_C1 = beta + Mean_C1 * n_C1 # P_q_C1 = P_a_C1 / (P_a_C1 + P_b_C1) # Post FC = ((1-P_q_C1)/P_q_c1) / ( (1-P_q_c2)/P_q_c2) \item{PostFC}{The posterior FC across two conditions.} \item{RealFC}{The FC across two conditions (adjusted by the normalization factors).} \item{Direction}{The diretion of FC calculation.} } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \seealso{ EBTest, GetMultiFC } \examples{ data(GeneMat) GeneMat.small = GeneMat[c(500:550),] Sizes = MedianNorm(GeneMat.small) EBOut = EBTest(Data = GeneMat.small, Conditions = as.factor(rep(c("C1","C2"), each=5)), sizeFactors = Sizes, maxround = 5) FC=PostFC(EBOut) } \keyword{ Fold Change } EBSeq/man/man/QQP.Rd0000644000175200017520000000230614516004476015021 0ustar00biocbuildbiocbuild\name{QQP} \alias{QQP} \title{ The Quantile-Quantile Plot to compare the empirical q's and simulated q's from fitted beta distribution } \description{ 'QQP' gives the Quantile-Quantile Plot to compare the empirical q's and simulated q's from fitted beta distribution. } \usage{ QQP(EBOut, GeneLevel = F) } \arguments{ \item{EBOut}{The output of EBTest or EBMultiTest. } \item{GeneLevel}{Indicate whether the results are from data at gene level.} } \value{ For data with n1 conditions and n2 uncertainty groups, n1*n2 plots will be generated. Each plot represents a subset of the data. } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \seealso{ EBTest, EBMultiTest, DenNHist } \examples{ data(GeneMat) GeneMat.small = GeneMat[c(500:1000),] Sizes = MedianNorm(GeneMat.small) EBOut = EBTest(Data = GeneMat.small, Conditions = as.factor(rep(c("C1","C2"), each=5)), sizeFactors = Sizes, maxround = 5) par(mfrow=c(2,2)) QQP(EBOut) } \keyword{ Q-Q plot } EBSeq/man/man/QuantileNorm.Rd0000644000175200017520000000173514516004476017003 0ustar00biocbuildbiocbuild\name{QuantileNorm} \alias{QuantileNorm} \title{ Quantile Normalization } \description{ 'QuantileNorm' gives the quantile normalization. } \usage{ QuantileNorm(Data, Quantile) } \arguments{ \item{Data}{ The data matrix with transcripts in rows and lanes in columns. } \item{Quantile}{ The quantile the user wishs to use. Should be a number between 0 and 1. } } \details{ Use a quantile point to normalize the data. } \value{ The function will return a vector contains the normalization factor for each lane. % ... } \references{ Bullard, James H., et al. Evaluation of statistical methods for normalization and differential expression in mRNA-Seq experiments. BMC bioinformatics 11.1 (2010): 94. } \author{ Ning Leng } \seealso{ MedianNorm } \examples{ data(GeneMat) Sizes = QuantileNorm(GeneMat,.75) #EBOut = EBTest(Data = GeneMat, # Conditions = as.factor(rep(c("C1","C2"), each=5)), # sizeFactors = Sizes, maxround = 5) } \keyword{ Normalization }% __ONLY ONE__ keyword per line EBSeq/man/man/RankNorm.Rd0000644000175200017520000000127214516004476016110 0ustar00biocbuildbiocbuild\name{RankNorm} \alias{RankNorm} \title{ Rank Normalization } \description{ 'RankNorm' gives the rank normalization. } \usage{ RankNorm(Data) } \arguments{ \item{Data}{ The data matrix with transcripts in rows and lanes in columns. } } \value{ The function will return a matrix contains the normalization factor for each lane and each transcript. } \author{ Ning Leng } \seealso{ MedianNorm, QuantileNorm } \examples{ data(GeneMat) Sizes = RankNorm(GeneMat) # Run EBSeq # EBres = EBTest(Data = GeneData, NgVector = rep(1,10^4), # Vect5End = rep(1,10^4), Vect3End = rep(1,10^4), # Conditions = as.factor(rep(c(1,2), each=5)), # sizeFactors = Sizes, maxround=5) } \keyword{ Normalization } EBSeq/man/man/beta.mom.Rd0000644000175200017520000000151414516004476016062 0ustar00biocbuildbiocbuild\name{beta.mom} \alias{beta.mom} \title{ Fit the beta distribution by method of moments } \description{ 'beta.mom' fits the beta distribution by method of moments. } \usage{ beta.mom(qs.in) } \arguments{ \item{qs.in}{A vector contains the numbers that are assumed to follow a beta distribution.} } \value{ \item{alpha.hat}{Returns the estimation of alpha.} \item{beta.hat}{Returns the estimation of beta.} } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \seealso{ DenNHist, DenNHistTable } \examples{ #tmp = rbeta(5, 5, 100) #param = beta.mom(tmp) } \keyword{ beta } EBSeq/man/man/crit_fun.Rd0000644000175200017520000000305214516004476016170 0ustar00biocbuildbiocbuild\name{crit_fun} \alias{crit_fun} \title{ Calculate the soft threshold for a target FDR } \description{ 'crit_fun' calculates the soft threshold for a target FDR. } \usage{ crit_fun(PPEE, thre) } \arguments{ \item{PPEE}{The posterior probabilities of being EE.} \item{thre}{The target FDR.} } \details{ Regarding a target FDR alpha, both hard threshold and soft threshold could be used. If the hard threshold is preferred, user could simply take the transcripts with PP(DE) greater than (1-alpha). Using the hard threshold, any DE transcript in the list is with FDR <= alpha. If the soft threshold is preferred, user could take the transcripts with PP(DE) greater than crit_fun(PPEE, alpha). Using the soft threshold, the list of DE transcripts is with average FDR alpha. } \value{ The adjusted FDR threshold of target FDR. } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \examples{ data(GeneMat) GeneMat.small = GeneMat[c(1:10, 500:600),] Sizes = MedianNorm(GeneMat.small) EBOut = EBTest(Data = GeneMat.small, Conditions = as.factor(rep(c("C1","C2"), each=5)), sizeFactors = Sizes, maxround = 5) PP = GetPPMat(EBOut) DEfound = rownames(PP)[which(PP[,"PPDE"] >= 0.95)] str(DEfound) SoftThre = crit_fun(PP[,"PPEE"], 0.05) DEfound_soft = rownames(PP)[which(PP[,"PPDE"] >= SoftThre)] } \keyword{ FDR } EBSeq/man/man/f0.Rd0000644000175200017520000000205114516004476014662 0ustar00biocbuildbiocbuild\name{f0} \alias{f0} %- Also NEED an '\alias' for EACH other topic documented here. \title{ The Prior Predictive Distribution of being EE } \description{ 'f0' gives the Prior Predictive Distribution of being EE. } \usage{ f0(Input, AlphaIn, BetaIn, EmpiricalR, NumOfGroups, log) } \arguments{ \item{Input}{Expression Values.} \item{AlphaIn, BetaIn, EmpiricalR}{The parameters estimated from last iteration of EM.} \item{NumOfGroups}{How many transcripts within each Ng group.} \item{log}{If true, will give the log of the output.} } \value{ The function will return the prior predictive distribution values of being EE. } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \seealso{ f1 } \examples{ # #f0(matrix(rnorm(100,100,1),ncol=10), .5, .6, # matrix(rnorm(100,200,1),ncol=10), 100, TRUE) } EBSeq/man/man/f1.Rd0000644000175200017520000000222714516004476014670 0ustar00biocbuildbiocbuild\name{f1} \alias{f1} \title{ The Prior Predictive Distribution of being DE } \description{ 'f1' gives the Prior Predictive Distribution of DE. } \usage{ f1(Input1, Input2, AlphaIn, BetaIn, EmpiricalRSP1, EmpiricalRSP2, NumOfGroup, log) } \arguments{ \item{Input1}{Expressions from Condition1.} \item{Input2}{Expressions from Condition2.} \item{AlphaIn, BetaIn, EmpiricalRSP1, EmpiricalRSP2}{The parameters estimated from last iteration of EM.} \item{NumOfGroup}{ How many transcripts within each Ng group.} \item{log}{If true, will give the log of the output.} } \value{ The function will return the prior predictive distribution values of being DE. } \references{ Ning Leng, John A. Dawson, James A. Thomson, Victor Ruotti, Anna I. Rissman, Bart M.G. Smits, Jill D. Haag, Michael N. Gould, Ron M. Stewart, and Christina Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments. Bioinformatics (2013) } \author{ Ning Leng } \seealso{ f0 } \examples{ #f1(matrix(rnorm(100,100,1),ncol=10), # matrix(rnorm(100,100,1),ncol=10), .5, .6, # matrix(rnorm(100,200,1),ncol=10), # matrix(rnorm(100,200,1),ncol=10), 100, TRUE) } EBSeq/src/0000755000175200017520000000000014516030501013315 5ustar00biocbuildbiocbuildEBSeq/src/EBSeq.hpp0000644000175200017520000000626714516004476015014 0ustar00biocbuildbiocbuild#pragma once #include "aggregate.hpp" #include #include "partition.hpp" #include "helper.hpp" #include namespace EBS { class EBSeq { public: EBSeq(COUNTS& scRNAexpMatrix, std::vector& cellCluster, Eigen::VectorXd& sizeFactor) { _clusinfo = helper::clusInfo(cellCluster); _sum = aggregate::sum(scRNAexpMatrix, _clusinfo, sizeFactor); _mean = aggregate::groupMean(_sum, _clusinfo); } COUNTS getSUM() { return _sum; } COUNTS getMEAN() { return _mean; } // get the posterior probability virtual COUNTS getPOST() = 0; void EM(size_t max_iteration, Float changeThre) { size_t Iter = 0; Float changeRatio = 10; Float lastOBJ; bool first = true; while(Iter < max_iteration && changeRatio > changeThre) { if(first) { Estep(); Mstep(); lastOBJ = getOBJ(); Iter++; first = false; // Rcpp::Rcout << "Objective = " << lastOBJ << "\n"; Rcpp::Rcout << "Initial number of DE patterns = " << DEPsize() << "\n"; continue; } shrinkage(); Estep(); Mstep(); changeRatio = (getOBJ() - lastOBJ) / lastOBJ; if(changeRatio < 0) { changeRatio = -changeRatio; } lastOBJ = getOBJ(); // Rcpp::Rcout << "Objective = " << lastOBJ << "\n"; Iter++; } Rcpp::Rcout << "Final number of DE patterns = " << DEPsize() << "\n"; } protected: // for one step EM virtual void gradientAscent(){}; // matrix for prior predictive scores under different DE patterns virtual void kernel() = 0; // function to find more probable DE patterns virtual void DEpat() = 0; // E - step of EM virtual void Estep() = 0; // M - step of EM virtual void Mstep() = 0; // shrinkage virtual void shrinkage() = 0; // get value of objective function virtual Float getOBJ() = 0; // get number of DE patterns virtual size_t DEPsize() = 0; protected: COUNTS _sum; CLUSINFO _clusinfo; COUNTS _mean; }; }; EBSeq/src/Makevars0000644000175200017520000000055414516004476015031 0ustar00biocbuildbiocbuild## With Rcpp 0.11.0 and later, we no longer need to set PKG_LIBS as there is ## no user-facing library. The include path to headers is already set by R. #PKG_LIBS = #PKG_CPPFLAGS = -I /usr/local/include ## With R 3.1.0 or later, you can uncomment the following line to tell R to ## enable compilation with C++11 (or even C++14) where available #CXX_STD = CXX11 EBSeq/src/Makevars.win0000644000175200017520000000050614516004476015622 0ustar00biocbuildbiocbuild## With Rcpp 0.11.0 and later, we no longer need to set PKG_LIBS as there is ## no user-facing library. The include path to headers is already set by R. #PKG_LIBS = ## With R 3.1.0 or later, you can uncomment the following line to tell R to ## enable compilation with C++11 (or even C++14) where available #CXX_STD = CXX11 EBSeq/src/Rexport.cpp0000644000175200017520000002235214516004476015504 0ustar00biocbuildbiocbuild#include #include #include #include #include "partition.hpp" #include "helper.hpp" #include "aggregate.hpp" #include "EBSeq.hpp" #include "float.hpp" #include "counts.hpp" #include "negativeBinomial.hpp" #include "loadData.hpp" #include "wrapper.hpp" using namespace Rcpp; using namespace Eigen; using namespace std; Rcpp::List EBSeq(Rcpp::NumericMatrix scExpMatrix, Rcpp::IntegerVector groupLabel, Rcpp::NumericMatrix AllParti, Rcpp::IntegerVector isoLabel, Rcpp::NumericVector sizeFactor, int iter, double alpha, Rcpp::NumericVector beta, double step1, double step2, int uc, double thre, double sthre, double filter, double stopthre, int neql); RcppExport SEXP EBSeq(SEXP scExpMatrix, SEXP groupLabel, SEXP AllParti, SEXP isoLabel, SEXP sizeFactor, SEXP iter, SEXP alpha, SEXP beta, SEXP step1, SEXP step2, SEXP uc, SEXP thre, SEXP sthre, SEXP filter, SEXP stopthre, SEXP neql) { // param scExpMatrix: scRNA seq transcripts matrix (normalized counts required) // param groupLabel: group label for each cell // param AllParti: user provided, partitions of interest // param isoLabel: for isoform case need to share beta within same isoform label // param sizeFactor: normalizing factor for raw counts (for old EBSeq), 1 for normalized counts // param iter: number of max iteration in EM // param alpha: start point of hyper parameter alpha // param beta: start point of hyper parameter beta // param step1: stepsize for gradient ascent of alpha // param step2: stepsize for gradietn ascent of beta // param uc: number of unceratin relations between means of subtypes for each gene level // param thre: threshold for determining whether a relation is sure or uncertain // param sthre: shrinkage threshold for iterative pruning space of DE patterns // param filter: filterthreshold for low expression gene for DE analysis // param stopthre: stopping threshold for EM // return: a list containing considered DE patterns and their posterior probability // values for alpha and beta // config S pointer to c++ data structure int itr = as(iter); int UC = as(uc); int nequal = as(neql); double alp = as(alpha); double stepsizeAlp = as(step1); double stepsizeBt = as(step2); double threshold = as(thre); double sthreshold = as(sthre); double filterThre = as(filter); double stopThre = as(stopthre); NumericMatrix scExpM(scExpMatrix); IntegerVector cluster(groupLabel); NumericMatrix allP(AllParti); IntegerVector iL(isoLabel); NumericVector szf(sizeFactor); NumericVector bta(beta); const int ng = scExpM.rows(); const int nc = scExpM.cols(); const int nr = allP.rows(); const int nk = allP.cols(); EBS::COUNTS data(ng,nc); std::copy(scExpM.begin(),scExpM.end(),data.data()); std::vector > parti; std::vector tmp; tmp.resize(nk); for(size_t i = 0; i < nr; i++){ for(size_t j = 0; j < nk; j++){ tmp[j] = allP(i,j); } parti.push_back(tmp); } std::vector conditions(nc); std::copy(cluster.begin(),cluster.end(),conditions.begin()); std::vector iLabel(ng); std::copy(iL.begin(),iL.end(),iLabel.begin()); Eigen::VectorXd sf(nc); std::copy(szf.begin(),szf.end(),sf.data()); Eigen::VectorXd bt(ng); std::copy(bta.begin(),bta.end(),bt.data()); std::vector lrate; lrate.push_back(stepsizeAlp); lrate.push_back(stepsizeBt); // create and initialize NB class object EBS::NB X = EBS::NB(data,conditions,sf,parti); X.init(alp, bt, iLabel, lrate, UC, threshold, sthreshold, filterThre, nequal); // EM X.EM(itr, stopThre); // results to be returned // posterior prob auto POSP = X.getPOST(); // DE patterns to be considered auto DEP = X.getDEP(); // q to be returned auto QQ = X.getQ(); // mean to be returned auto mm = X.getMEAN(); // var to be returned auto var = X.getVar(); // pool var auto poolVar = X.getPoolVar(); // r auto _r = X.getR(); // p auto prop = X.getP(); // nuc auto guc = X.getGUC(); Eigen::VectorXi nuc(guc.size()); std::copy(guc.begin(),guc.end(),nuc.data()); // convert to R acceptable object Eigen::MatrixXi mDep(DEP.size(),DEP[0].size()); for (size_t ri = 0; ri < mDep.rows(); ri++) for(size_t ci = 0; ci < mDep.cols(); ci++) mDep(ri,ci) = DEP[ri][ci]; return Rcpp::List::create(Named("DEpattern") = mDep, Named("Posterior") = POSP, Named("Alpha") = X.getALP(), Named("Beta") = X.getBETA(), Named("q") = QQ, Named("mean") = mm, Named("var") = var, Named("poolVar") = poolVar, Named("prop") = prop,Named("r") = _r, Named("nuc") = nuc); } // function to be called when there is no replicate for each condition Rcpp::List EBSeqWQ(Rcpp::NumericMatrix scExpMatrix, Rcpp::IntegerVector groupLabel, Rcpp::NumericVector r, Rcpp::IntegerVector isoLabel, Rcpp::NumericVector sizeFactor, int iter, double alpha, Rcpp::NumericVector beta, double step1, double step2, int uc, double thre, double sthre, double filter, double stopthre, int neql); RcppExport SEXP EBSeqWQ(SEXP scExpMatrix, SEXP groupLabel, SEXP r, SEXP isoLabel, SEXP sizeFactor, SEXP iter, SEXP alpha, SEXP beta, SEXP step1, SEXP step2, SEXP uc, SEXP thre, SEXP sthre, SEXP filter, SEXP stopthre, SEXP neql) { // param scExpMatrix: scRNA seq transcripts matrix (normalized counts required) // param groupLabel: group label for each cell // param r: parameter r of NB // param isoLabel: for isoform case need to share beta within same isoform label // param sizeFactor: normalizing factor for raw counts (for old EBSeq), 1 for normalized counts // param iter: number of max iteration in EM // param alpha: start point of hyper parameter alpha // param beta: start point of hyper parameter beta // param step1: stepsize for gradient ascent of alpha // param step2: stepsize for gradietn ascent of beta // param uc: number of unceratin relations between means of subtypes for each gene level // param thre: threshold for determining whether a relation is sure or uncertain // param sthre: shrinkage threshold for iterative pruning space of DE patterns // param filter: filterthreshold for low expression gene for DE analysis // param stopthre: stopping threshold for EM // return: a list containing considered DE patterns and their posterior probability // values for alpha and beta // config S pointer to c++ data structure int itr = as(iter); int UC = as(uc); int nequal = as(neql); double alp = as(alpha); double stepsizeAlp = as(step1); double stepsizeBt = as(step2); double threshold = as(thre); double sthreshold = as(sthre); double filterThre = as(filter); double stopThre = as(stopthre); NumericMatrix scExpM(scExpMatrix); IntegerVector cluster(groupLabel); NumericVector R(r); IntegerVector iL(isoLabel); NumericVector szf(sizeFactor); NumericVector bta(beta); const int ng = scExpM.rows(); const int nc = scExpM.cols(); EBS::COUNTS data(ng,nc); std::copy(scExpM.begin(),scExpM.end(),data.data()); std::vector conditions(nc); std::copy(cluster.begin(),cluster.end(),conditions.begin()); Eigen::VectorXd rR(ng); std::copy(R.begin(),R.end(),rR.data()); std::vector iLabel(ng); std::copy(iL.begin(),iL.end(),iLabel.begin()); Eigen::VectorXd sf(nc); std::copy(szf.begin(),szf.end(),sf.data()); Eigen::VectorXd bt(ng); std::copy(bta.begin(),bta.end(),bt.data()); std::vector lrate; lrate.push_back(stepsizeAlp); lrate.push_back(stepsizeBt); // create and initialize NB class object EBS::NB X = EBS::NB(data,conditions,sf,rR); X.init(alp, bt, iLabel, lrate, UC, threshold, sthreshold, filterThre, nequal); // EM X.EM(itr, stopThre); // results to be returned // posterior prob auto POSP = X.getPOST(); // DE patterns to be considered auto DEP = X.getDEP(); // p auto prop = X.getP(); // r auto _r = X.getR(); // mean auto mm = X.getMEAN(); auto guc = X.getGUC(); Eigen::VectorXi nuc(guc.size()); std::copy(guc.begin(),guc.end(),nuc.data()); // convert to R acceptable object Eigen::MatrixXi mDep(DEP.size(),DEP[0].size()); for (size_t ri = 0; ri < mDep.rows(); ri++) for(size_t ci = 0; ci < mDep.cols(); ci++) mDep(ri,ci) = DEP[ri][ci]; return Rcpp::List::create(Named("DEpattern") = mDep, Named("Posterior") = POSP, Named("Alpha") = X.getALP(), Named("Beta") = X.getBETA(), Named("prop") = prop, Named("r") = _r, Named("mean") = mm, Named("nuc") = nuc ); } EBSeq/src/agglomerativeClustering.hpp0000644000175200017520000001317314516004476020735 0ustar00biocbuildbiocbuild#pragma once #include "float.hpp" #include #include #include #include #include #include namespace EBS { class ALGO { public: struct Node { Float rs; Float cs; Float distToNext; int sz; std::vector indexSet; Node *prev, *next; }; template static Node* createNode(ROW& csum, ROW& rsum,std::vector& logRatio, int pos, int size) { Node* res = new Node(); assert(pos < rsum.size()); res->rs = rsum(pos); res->cs = csum(pos); res->sz = size; if(pos == rsum.size() - 1){res->distToNext = 0;} else{res->distToNext = logRatio[pos];} res->indexSet.push_back(pos); res->prev = nullptr; res->next = nullptr; return res; } template static Node* createNodeList(ROW& csum, ROW& rsum,std::vector& logRatio, int start, int end, std::vector& sizes) { Node* head = createNode(csum,rsum,logRatio,start,sizes[start]); Node* prev = head; for(int i = start + 1; i < end + 1; i++) { Node* tmp = createNode(csum,rsum,logRatio,i,sizes[i]); prev->next = tmp; tmp->prev = prev; prev = tmp; } return head; } template static void hclust(ROW& csum, ROW& rsum, std::vector& logRatio, int start, int end, Float alpha, Float beta, Float thre1, Float thre2, std::vector& sizes) { auto head = createNodeList(csum,rsum,logRatio,start,end,sizes); int counter = end - start; Float minDist; Node* minDistNode; while(counter > 0) { Node* tmpNode = head; minDist = -INT_MAX; minDistNode = nullptr; for(size_t i = 0; i < counter; i++) { if(tmpNode->distToNext > minDist) { minDist = tmpNode->distToNext; minDistNode = tmpNode; } tmpNode = tmpNode->next; } if(minDist > thre1 && minDistNode != nullptr) { merge(minDistNode,alpha,beta,thre2); counter--; } if(minDist <= thre1) { break; } } if(counter == 0) { return; } Node * tmpNode = head->next; while(tmpNode != nullptr) { logRatio[tmpNode->indexSet[0] - 1] = thre1 - 0.01; tmpNode = tmpNode->next; } return; } //merge two nodes and delete right node static void merge(Node* left, Float alpha, Float beta, Float filter) { Node* right = left->next; left->rs += right->rs; left->cs += right->cs; left->sz += right->sz; // update dist to next and to prev if(right->next != nullptr) { left->distToNext = kernel2(left->cs,right->next->cs, left->rs,right->next->rs, alpha,beta,left->sz, right->next->sz,filter); }else { left->distToNext = 0; } if(left->prev != nullptr) { left->prev->distToNext = kernel2(left->prev->cs,left->cs, left->prev->rs,left->rs, alpha,beta,left->prev->sz, left->sz,filter); } for(auto s:(right->indexSet)) { left->indexSet.push_back(s); } left->next = right->next; if(right->next != nullptr) { right->next->prev = left; } delete right; } static inline Float kernel2(Float& cs1, Float& cs2, Float& rs1, Float& rs2, Float& alpha, Float& beta, int& n1, int& n2, Float& filter) { // if too small mean, assume they are the same if(cs1 / n1 < filter && cs2 / n2 < filter ) { return INT_MAX; } Float res = lbeta(alpha + rs1 + rs2, beta + cs1 + cs2) + lbeta(alpha, beta) - lbeta(alpha + rs1, beta + cs1) - lbeta(alpha + rs2, beta + cs2); return res; } static inline Float lbeta(Float x,Float y) { return boost::math::lgamma(x) + boost::math::lgamma(y) - boost::math::lgamma(x + y); } }; }; EBSeq/src/aggregate.hpp0000644000175200017520000000553314516004476015776 0ustar00biocbuildbiocbuild#pragma once #include #include #include #include "helper.hpp" #include "float.hpp" #include "counts.hpp" namespace EBS { struct aggregate { static COUNTS sum(Eigen::VectorXd& vec, CLUSINFO& clusInfo) { size_t K = clusInfo.size.size(); COUNTS res(1,K); res.fill(0); for(auto i = 0; i < K; i++) { for(auto s:clusInfo.index[i]) { res(0,i) += vec(s); } } return res; } static COUNTS sum(COUNTS& counts, CLUSINFO& clusInfo) { size_t K = clusInfo.size.size(); COUNTS res(counts.rows(),K); res.fill(0); for(auto i = 0; i < K; i++) { for(auto s:clusInfo.index[i]) { res.col(i) += counts.col(s); } } return res; } static COUNTS sum(COUNTS& counts, CLUSINFO& clusInfo, Eigen::VectorXd& sizeFactor) { size_t K = clusInfo.size.size(); COUNTS res(counts.rows(),K); res.fill(0); for(auto i = 0; i < K; i++) { for(auto s:clusInfo.index[i]) { res.col(i) += counts.col(s) / sizeFactor(s); } } return res; } static COUNTS groupMean(COUNTS SUM, CLUSINFO& clusInfo) { size_t K = clusInfo.size.size(); for(auto i = 0; i < K; i++) { size_t _size = clusInfo.index[i].size(); SUM.col(i) /= _size; } return SUM; } template static VAL square(VAL x) { return x * x; } static COUNTS groupVar(COUNTS& counts, COUNTS& MEAN, CLUSINFO& clusInfo) { size_t K = clusInfo.size.size(); COUNTS res(counts.rows(),K); res.fill(0); for(int i = 0; i < K; i++) { for(auto s:clusInfo.index[i]) { res.col(i) += (counts.col(s) - MEAN.col(i)).unaryExpr(&square); } res.col(i) /= clusInfo.index[i].size(); } return res; } static COUNTS groupVar(COUNTS& counts, COUNTS& MEAN, CLUSINFO& clusInfo, Eigen::VectorXd& sizeFactor) { size_t K = clusInfo.size.size(); COUNTS res(counts.rows(),K); res.fill(0); for(int i = 0; i < K; i++) { for(auto s:clusInfo.index[i]) { res.col(i) += (counts.col(s) - MEAN.col(i) * sizeFactor(s)).unaryExpr(&square) / sizeFactor(s); } res.col(i) /= clusInfo.index[i].size(); } return res; } }; }; EBSeq/src/counts.hpp0000644000175200017520000000014514516004476015355 0ustar00biocbuildbiocbuild#pragma once #include namespace EBS { typedef Eigen::MatrixXd COUNTS; }; EBSeq/src/float.hpp0000644000175200017520000000010614516004476015144 0ustar00biocbuildbiocbuild#pragma once namespace EBS { typedef double Float; }; EBSeq/src/helper.hpp0000644000175200017520000000541714516004476015330 0ustar00biocbuildbiocbuild#pragma once #include #include #include #include namespace EBS { struct CLUSINFO { std::vector > index; std::vector size; }; struct helper { // clus should be array of 1 - K static bool clusCheck(std::vector clus) { int smallest = *std::min_element(clus.begin(),clus.end()); if(smallest != 1) return false; int largest = *std::max_element(clus.begin(),clus.end()); for(int t = 1; t < largest + 1; t++) { if(std::find(clus.begin(),clus.end(),t) == clus.end()) return false; } return true; } static std::vector which(std::vector clus, int i) { if(clus.size() < 1 || std::find(clus.begin(),clus.end(),i) == clus.end()) return std::vector(); std::vector res; for(size_t t = 0; t < clus.size(); t++) { if(clus[t] == i) { res.push_back(t); } } return res; } static CLUSINFO clusInfo(std::vector& clus) { int K = *std::max_element(clus.begin(),clus.end()); std::vector > index; std::vector size; for(int i = 1; i < K + 1; i++) { index.push_back(which(clus,i)); size.push_back(index[i - 1].size()); } CLUSINFO res; res.index = index; res.size = size; return res; } // expected type: row of eigen matrix template static std::vector sortIndexes(T ROW) { size_t K = ROW.size(); std::vector tmp(K); std::iota(tmp.begin(),tmp.end(),0); //res = tmp; std::sort(tmp.begin(),tmp.end(), [&ROW](size_t i1, size_t i2) {return ROW[i1] < ROW[i2];}); //std::sort(res.begin(),res.end(), // [&tmp](size_t i1, size_t i2){return tmp[i1] < tmp[i2];}); return tmp; } template static std::vector sortIndexes2(T ROW) { size_t K = ROW.size(); std::vector tmp(K),res; std::iota(tmp.begin(),tmp.end(),0); res = tmp; std::sort(tmp.begin(),tmp.end(), [&ROW](size_t i1, size_t i2) {return ROW[i1] < ROW[i2];}); std::sort(res.begin(),res.end(), [&tmp](size_t i1, size_t i2){return tmp[i1] < tmp[i2];}); return res; } }; }; EBSeq/src/loadData.hpp0000644000175200017520000000217514516004476015560 0ustar00biocbuildbiocbuild#pragma once #include #include #include #include #include namespace EBS { // very coarse function, for test // need number of rows and columns and input are file of integers COUNTS readData(std::string path, char delim, int G, int n) { std::ifstream File; File.open(path); std::string element; std::string line; COUNTS res(G,n); size_t i = 0,j = 0; if(File.is_open()) { while(std::getline(File,line)) { std::stringstream tmp(line); while(std::getline(tmp,element,delim)) { res(i,j) = std::stoi(element); j++; j %= n; if(j == 0){i++;} } } } return res; } }; EBSeq/src/negativeBinomial.hpp0000644000175200017520000010435114516004476017323 0ustar00biocbuildbiocbuild#pragma once #include "EBSeq.hpp" #include "agglomerativeClustering.hpp" #include #include #include #include //#include namespace EBS { class NB:public EBSeq { public: NB(COUNTS& scRNAexpMatrix, std::vector& cellCluster, Eigen::VectorXd& sizeFactor, std::vector >& AllParti) : EBSeq(scRNAexpMatrix, cellCluster, sizeFactor) { size_t nk = (_clusinfo.size).size(); if(AllParti[0][0] == 0){ _has_user_specified_parti = false; }else{ _has_user_specified_parti = true; } _parti = AllParti; if(scRNAexpMatrix.cols() > nk) { // method of moments to estimate size factor r of NB _var = aggregate::groupVar(scRNAexpMatrix, _mean, _clusinfo, sizeFactor); size_t G = scRNAexpMatrix.rows(); _poolVar = _var.rowwise().mean(); COUNTS q(G,1), I(G,1), mn; I.fill(1); mn = _mean.rowwise().mean(); _q.resize(G,_mean.cols()); for(size_t i = 0; i < G; i++){ if(fabs(_poolVar(i,0) - 0) < 0.0001) _poolVar(i,0) = 1; if(_poolVar(i,0) <= mn(i,0)) q(i,0) = 0.99; else q(i,0) = mn(i,0) / _poolVar(i,0); for(size_t j = 0; j < _mean.cols(); j++) { _q(i,j) = _mean(i,j) / _var(i,j); } } // aggregate sum of size factor auto ssum = aggregate::sum(sizeFactor, _clusinfo); _r = ((mn.cwiseProduct(q)).array() / (I - q).array()).matrix(); _rsum = _r * ssum; }else { Eigen::ArrayXd use(_sum.rows()); use.fill(1); Eigen::ArrayXd add(_sum.rows()); add.fill(0); // case when there is no replicates for(size_t i = 0; i < nk - 1; i++) { for(size_t j = i + 1; j < nk; j++) { Eigen::ArrayXd ratioFilter = (_sum.col(i)).array() / (_sum.col(j)).array(); std::vector rmNA; for(size_t iter = 0; iter < _sum.rows(); iter++) { if(!std::isnan(ratioFilter[iter])) rmNA.push_back(ratioFilter[iter]); } if(rmNA.empty()) { continue; } size_t Q1 = rmNA.size() / 4; size_t Q2 = rmNA.size() * 3 / 4; std::nth_element(rmNA.begin(), rmNA.begin() + Q1, rmNA.end()); std::nth_element(rmNA.begin() + Q1 + 1, rmNA.begin() + Q2, rmNA.end()); Float q25 = rmNA[Q1]; Float q75 = rmNA[Q2]; for(size_t iter = 0; iter < _sum.rows(); iter++) { if(std::isnan(ratioFilter[iter]) || ratioFilter[iter] < q25 || ratioFilter[iter] > q75) { ratioFilter[iter] = 0; } else { ratioFilter[iter] = 1; } } use *= ratioFilter; add += ratioFilter; } } if(use.sum() == 0) { //use top 3 most frequent valid genes Eigen::ArrayXd::Index maxRow, maxCol; auto maxholder = add.maxCoeff(&maxRow, &maxCol); use(maxRow,maxCol) = 1; add(maxRow,maxCol) = 0; maxholder = add.maxCoeff(&maxRow, &maxCol); use(maxRow,maxCol) = 1; add(maxRow,maxCol) = 0; maxholder = add.maxCoeff(&maxRow, &maxCol); use(maxRow,maxCol) = 1; } COUNTS dataUse(int(use.sum()),_sum.cols()); size_t rowCount = 0; for(size_t useRow = 0; useRow < use.size(); useRow++) { if(use[useRow]>0) { dataUse.row(rowCount) = _sum.row(useRow); rowCount++; } } Eigen::VectorXd mean_use = dataUse.rowwise().mean(); COUNTS var_use = (dataUse.colwise() - mean_use).rowwise().squaredNorm() / (nk - 1); auto wholeMean = _sum.rowwise().mean().array(); auto phi = (var_use - mean_use).array() / (mean_use.array() * mean_use.array()); Float rmNEG = 0; int cnn = 0; for(size_t iter = 0; iter < phi.size(); iter++) { if(phi(iter) >= 0) { rmNEG += phi(iter); cnn++; } } Float phiUse = rmNEG / cnn; auto varEst = wholeMean * (1 + wholeMean * phiUse); _q = (wholeMean / varEst).matrix(); COUNTS I(_sum.rows(),1); I.fill(1); _r = ((wholeMean.matrix().cwiseProduct(_q)).array() / (I - _q).array()).matrix(); auto ssum = aggregate::sum(sizeFactor, _clusinfo); _rsum = _r * ssum; } // mean and sum needs to be transformed back to raw // size factor only affects r _sum = aggregate::sum(scRNAexpMatrix, _clusinfo); } NB(COUNTS& scRNAexpMatrix, std::vector& cellCluster, Eigen::VectorXd& sizeFactor, Eigen::VectorXd& r) : EBSeq(scRNAexpMatrix, cellCluster, sizeFactor) { // aggregate sum of size factor auto ssum = aggregate::sum(sizeFactor, _clusinfo); _rsum = r * ssum; } void init(Float alpha, Eigen::VectorXd beta, std::vector iLabel, std::vector lrate, int UC, Float thre, Float sthre, Float filter, int nequal) { // uncertatinty should be smaller than number of subtypes - 1 (number of in/equalities) assert(UC < _sum.cols()); // scalar of alpha for beta prior, shared by genome _alpha = alpha; // vector of beta for beta prior, gene specific _beta = beta; // label for isoform. _isoLabel = iLabel; // length of equal chain that need check _nequal = nequal; _ng = *(std::max_element(iLabel.begin(),iLabel.end())); // only when there is nontrivial isoform label, then init isoPos if(_ng < _sum.rows()) { for(size_t lab = 1; lab < _ng + 1; lab++) { std::vector tmpPos; for(size_t pos = 0; pos < _isoLabel.size(); pos++) { if(_isoLabel[pos] == lab) { tmpPos.push_back(pos); } } _isoPos.push_back(tmpPos); } } // stepsize of gradient updates for alpha and beta _lrate = lrate; // number of uncertatinty of in/equalities between subtypes _uncertainty = UC; // threshold for distinguish certain and uncertain _threshold = thre; // threshold for shrinkage _shrinkthre = sthre; // filter threshold for low expression subtypes _filter = filter; // resize mde matrix as K by K //_mde.resize(_sum.cols(),_sum.cols()); //_mde.fill(1.0 / 2); // get promising DE pattern if(!_has_user_specified_parti){ DEpat(); }else{ for(size_t i = 0; i < _parti.size(); i++){ _dep.push_back(_parti[i]); _pat.push_back(partition::toMatrix(_parti[i])); } _guc.resize(1); _guc[0] = 0; } // error checking, number of promising DE patterns must > 0 size_t n = _dep.size(); assert(n > 0); // inita prop for each DE pattern with equal proportion _p.resize(n); _p.fill(1.0 / n); } inline Float lbeta(Float x,Float y) { return boost::math::lgamma(x) + boost::math::lgamma(y) - boost::math::lgamma(x + y); } inline COUNTS lbeta(COUNTS& A, COUNTS& B) { return A.unaryExpr(&boost::math::lgamma) + B.unaryExpr(&boost::math::lgamma) - (A + B).unaryExpr(&boost::math::lgamma); } Float OBJ(Eigen::VectorXd& p) { setP(p); return (_kernel * _p).sum(); } // void oneRunUpdate() // { // //updateMDE(); // // // then given p and dep update alpha and beta // gradientAscent(); // // kernel(); // // posterior(); // // updateP(); // } size_t DEPsize() { return _dep.size(); } std::vector> getDEP() { return _dep; } COUNTS getR() { return _r; } COUNTS getVar() { return _var; } COUNTS getQ() { return _q; } COUNTS getPoolVar() { return _poolVar; } std::vector getGUC() { return _guc; } std::vector getPAT() { return _pat; } COUNTS getKernel() { return _kernel; } // COUNTS getMDE() // { // return _mde; // } Float getALP() { return _alpha; } Eigen::VectorXd getBETA() { return _beta; } COUNTS getPOST() { return _post; } Float getOBJ() { return OBJ(_p); } void setAlphaBeta(Float alpha, Eigen::VectorXd& beta) { _alpha = alpha; _beta = beta; } void setP(Eigen::VectorXd& p) { _p = p; } Eigen::VectorXd getP() { return _p; } private: void Estep() { // update kernel given alpha and beta kernel(); // update posterior with p posterior(); } void Mstep() { // update alpha and beta gradientAscent(); // update p updateP(); } // only to be called in init genelevel depat typedef Eigen::Block ROW; // std::vector> DEpatGene(ROW&& mean, ROW&& cs, ROW&& rs, // std::vector& sz, size_t& K, // Float& alpha, Float& beta, Float& filter, // Float& threshold, int& uncertainty) // { // // std::vector abslogRatio(K - 1); // // std::vector baseClus(K); // // std::vector> res; // // auto ord = helper::sortIndexes(mean); // // auto ord2 = helper::sortIndexes2(mean); // // baseClus[0] = 1; // // for(size_t j = 1; j < K; j++) // { // // position for j-1th and jth subtypes // auto o1 = ord[j - 1]; // // auto o2 = ord[j]; // // Float tmp = kernel2case(cs(o1),cs(o2),rs(o1),rs(o2) // ,sz[o1],sz[o2],alpha,beta,filter); // // abslogRatio[j - 1] = abs(tmp); // // // more favorable for equal mean // if(tmp > 0) // { // baseClus[j] = baseClus[j - 1]; // } // else // { // // DE start a new cluster // baseClus[j] = baseClus[j - 1] + 1; // } // // } // // // auto tmpOrd = helper::sortIndexes>(abslogRatio); // // auto baseBit = partition::mapToBit(baseClus); // // // // equalHandle(baseBit, abslogRatio, cs, rs, // alpha, beta, _threshold, _filter, sz); // // // // // int localUC = 0; // // for(auto score:abslogRatio) // { // if(score < threshold) // { // localUC++; // } // } // //// _guc.push_back(localUC); // // localUC = (localUC < uncertainty) ? localUC : uncertainty; // // if(localUC < 1) // { // // auto newClusOr = baseClus; // // for(size_t iter = 0; iter < ord2.size(); iter++) // { // newClusOr[iter] = baseClus[ord2[iter]]; // } // // auto newClusOrd = partition::reorder(newClusOr); // // res.push_back(newClusOrd); // // return res; // } // // auto pBit = partition::genBit(localUC); // // // get promising DE pattern // for(auto x:pBit) // { // // auto newBit = baseBit; // // for(int t = 0; t < _uncertainty; t++) // { // auto tmpJ = tmpOrd[t]; // // newBit[tmpJ] = x[t]; // } // // auto newClus = partition::bitToPart(newBit); // // auto newClusOr = newClus; // // for(size_t iter = 0; iter < ord2.size(); iter++) // { // newClusOr[iter] = newClus[ord2[iter]]; // } // // std::vector newClusOrd = partition::reorder(newClusOr); // //// auto sClus = partition::toString>(newClusOrd); // //// if(dep.count(sClus) < 1) //// { //// dep.insert(sClus); //// //// _dep.push_back(newClusOrd); //// //// _pat.push_back(partition::toMatrix(newClusOrd)); //// } // // res.push_back(newClusOrd); // // } // return res; // } // only to be called in init void DEpat() { size_t G = _mean.rows(); size_t K = _mean.cols(); // DE patterns to be considered std::set dep; // tbb::parallel_for(blocked_range(0,G), DEpatGene()); // // for(size_t i = 0; i < G; i++) // { // // Rcpp::Rcout << "gene " << i << "\n"; // // auto res = DEpatGene(_mean.row(i), _sum.row(i), _rsum.row(i), // _clusinfo.size, K, _alpha, _beta(i),_filter, // _threshold,_uncertainty); // // for(auto newClusOrd:res) // { // std::string sClus = partition::toString>(newClusOrd); // // if(dep.count(sClus) < 1) // { // dep.insert(sClus); // // _dep.push_back(newClusOrd); // // _pat.push_back(partition::toMatrix(newClusOrd)); // } // } // } std::vector abslogRatio(K - 1); std::vector baseClus(K); for(size_t i = 0; i < G; i++) { auto ord = helper::sortIndexes(_mean.row(i)); auto ord2 = helper::sortIndexes2(_mean.row(i)); baseClus[0] = 1; for(size_t j = 1; j < K; j++) { // position for j-1th and jth subtypes auto o1 = ord[j - 1]; auto o2 = ord[j]; Float s1 = _sum(i,o1); Float s2 = _sum(i,o2); int n1 = _clusinfo.size[o1]; int n2 = _clusinfo.size[o2]; Float r1 = _rsum(i,o1); Float r2 = _rsum(i,o2); // ratio of EE and DE prior predictive functions // Float use, marginal; // // if(o1 < o2) // use = _mde(o1,o2); // else // use = _mde(o2,o1); // marginal = use / (1 - use); // Float tmp = kernel2case(s1,s2,r1,r2,n1,n2,i) + log(marginal); Float tmp = kernel2case(s1,s2,r1,r2,n1,n2,_alpha,_beta(i),_filter); abslogRatio[j - 1] = fabs(tmp); // more favorable for equal mean if(tmp > 0) { baseClus[j] = baseClus[j - 1]; } else { // DE start a new cluster baseClus[j] = baseClus[j - 1] + 1; } } // basebit and abslogRatio is ordered by mean expression auto tmpOrd = helper::sortIndexes>(abslogRatio); auto baseBit = partition::mapToBit(baseClus); // use vector avoid value ref by eigen Eigen::VectorXd csOrd(K); Eigen::VectorXd rsOrd(K); auto sz = _clusinfo.size; auto szOrd = sz; for(size_t j = 0; j < K; j++) { csOrd(j) = _sum(i,ord[j]); rsOrd(j) = _rsum(i,ord[j]); szOrd[j] = sz[ord[j]]; } equalHandle(baseBit, abslogRatio, csOrd, rsOrd, _alpha, _beta(i), _threshold, _filter, szOrd, _nequal, i); int localUC = 0; for(auto score:abslogRatio) { if(score < _threshold) { localUC++; } } // while(abslogRatio[localUC] < _threshold) // { // localUC++; // } _guc.push_back(localUC); localUC = std::min(localUC , _uncertainty); if(localUC < 1) { auto newClusOr = baseClus; for(size_t iter = 0; iter < ord2.size(); iter++) { newClusOr[iter] = baseClus[ord2[iter]]; } auto newClusOrd = partition::reorder(newClusOr); auto sClus = partition::toString>(newClusOrd); if(dep.find(sClus) == dep.end()) { dep.insert(sClus); _dep.push_back(newClusOrd); _pat.push_back(partition::toMatrix(newClusOrd)); } } auto pBit = partition::genBit(localUC); // get promising DE pattern for(auto x:pBit) { auto newBit = baseBit; for(int t = 0; t < localUC; t++) { auto tmpJ = tmpOrd[t]; newBit[tmpJ] = x[t]; } auto newClus = partition::bitToPart(newBit); auto newClusOr = newClus; for(size_t iter = 0; iter < ord2.size(); iter++) { newClusOr[iter] = newClus[ord2[iter]]; } std::vector newClusOrd = partition::reorder(newClusOr); auto sClus = partition::toString>(newClusOrd); if(dep.count(sClus) < 1) { dep.insert(sClus); _dep.push_back(newClusOrd); _pat.push_back(partition::toMatrix(newClusOrd)); } } } } void equalHandle(std::vector& baseBit, std::vector& logRatio, Eigen::VectorXd& cs, Eigen::VectorXd& rs, Float& alpha, Float& beta, Float& th1, Float& th2, std::vector& sz, int nequal, int id) { // corner case when lots of contiguous subtypes having big bayes factor supporting // equal expression while the head and tail be quite different int start = 0; int pos = 0; int counter = 0; bool allequal = true; while(pos < baseBit.size()) { //equality and greater than threshold if(baseBit[pos] < 1 && logRatio[pos] > _threshold) { pos++; counter++; } else { allequal = false; if(counter > nequal) { // hclust ALGO::hclust(cs,rs,logRatio,start,pos, alpha,beta,th1,th2,sz); } // reset pos++; start = pos; counter = 0; } } if(allequal) { if(counter > nequal) { ALGO::hclust(cs,rs,logRatio,start,pos, alpha,beta,th1,th2,sz); } } } void shrinkage() { if(_has_user_specified_parti){ return; } std::vector> newDep; std::vector newPat; for(size_t i = 0; i < _dep.size(); i++) { if(_p(i) > _shrinkthre) { newDep.push_back(_dep[i]); newPat.push_back(_pat[i]); } } Eigen::VectorXd newP; newP.resize(newDep.size()); size_t start = 0; for(size_t i = 0; i < _dep.size(); i++) { if(_p(i) > _shrinkthre) { newP(start) = _p(i); start++; } } newP = newP / newP.sum(); std::swap(_dep,newDep); std::swap(_pat,newPat); _p = newP; } Float kernel2case(Float& s1, Float& s2, Float& r1, Float& r2, int& n1, int& n2, Float& alpha, Float& beta, Float& filter) { // if too small mean, assume they are the same if(s1 / n1 < filter && s2 / n2 (&boost::math::lgamma) + (_alpha + _beta.array()).matrix().unaryExpr(&boost::math::lgamma)); _kernel.col(i) = res.rowwise().sum(); } } void gradientAscent() { size_t G = _sum.rows(); size_t npat = _pat.size(); COUNTS alpDRV(G,npat); COUNTS betaDRV(G,npat); for(size_t i = 0; i < npat; i++) { COUNTS _csum = _sum * _pat[i]; COUNTS rsum = _rsum * _pat[i]; COUNTS A = (rsum.array() + _alpha).matrix(); COUNTS B = _csum.colwise() + _beta; COUNTS C = (A + B).unaryExpr(&(boost::math::digamma)); Eigen::VectorXd D = (_alpha + _beta.array()).matrix().unaryExpr(&(boost::math::digamma)); COUNTS resAlpha = ((A.unaryExpr(&(boost::math::digamma)) - C).array() - boost::math::digamma(_alpha)).matrix(); resAlpha = resAlpha.colwise() + D; COUNTS resBeta = B.unaryExpr(&(boost::math::digamma)) - C; resBeta = resBeta.colwise() - (_beta.unaryExpr(&(boost::math::digamma)) + D); alpDRV.col(i) = resAlpha.rowwise().sum(); betaDRV.col(i) = resBeta.rowwise().sum(); } auto tmp1 = _alpha + _lrate[0] * (alpDRV * _p).sum(); //auto tmp2 = _beta + _lrate[1] * (betaDRV.array() * _post.array()).matrix().rowwise().sum(); Eigen::VectorXd tmp2; if(_ng < G) { // has to make extra copy Eigen::VectorXd bt = betaDRV * _p; for(size_t localIter = 0; localIter < _ng; localIter++) { Float localGrad = 0; for(auto localPos:_isoPos[localIter]) { localGrad += bt(localPos); } for(auto localPos:_isoPos[localIter]) { bt(localPos) = localGrad; } } tmp2 = _beta + _lrate[1] * bt; }else { tmp2 = _beta + _lrate[1] * (betaDRV * _p); } // check validity if(tmp1 > 0) _alpha = tmp1; for(size_t i = 0; i < G; i++) { if(tmp2(i) > 0) { _beta(i) = tmp2(i); } } } void posterior() { assert(fabs(_p.sum() - 1) < 0.0001); Eigen::VectorXd M = _kernel.rowwise().maxCoeff(); auto rmMax = _kernel.colwise() - M; _post = rmMax.unaryExpr(& exp); Eigen::VectorXd total = _post * _p; total = (1 / total.array()).matrix(); //outer product of total and p COUNTS div = total * _p.transpose(); _post = (_post.array() * div.array()).matrix(); } void updateP() { _p = _post.colwise().sum() / _post.sum(); } // void updateMDE() // { // _mde.fill(0); // // size_t K = _sum.cols(); // // for(size_t i = 0; i < K; i++) // { // for(size_t j = i; j < K; j++) // { // for(size_t p = 0; p < _dep.size(); p++) // { // if(_dep[p][i] == _dep[p][j]) // { // _mde(i,j) += _p[p]; // } // } // // } // } // } private: // get type of row in eigen matrix //typedef decltype(_mean.row(0)) ROW; int _nequal; // var per group COUNTS _var; // q per group COUNTS _q; // pool var COUNTS _poolVar; // hyper parameter r can be estimated by MM COUNTS _r,_rsum; // alpha for the beta prior shared by genome, estimated by EM Float _alpha; // beta for the beta prior specified by each gene, estimated by EM Eigen::VectorXd _beta; // label for isoform. std::vector _isoLabel; // number of isoforms size_t _ng; // position for each label std::vector > _isoPos; // step size for update hyper parameters std::vector _lrate; // prop of each nonzero pattern Eigen::VectorXd _p; // upper bound of unsure "<" and "=", controlling number of patterns DE int _uncertainty; // at least one group mean should be no smaller than this value to do DE comparison Float _filter; // positve threshold to decide how many uncertain patterns Float _threshold; // positive threshold for iterative shrinkage size of de patterns Float _shrinkthre; // gene level uncertainty std::vector _guc; // matrix for DE pattern std::vector _pat; // vector for DE pattern std::vector> _dep; // kernel matrix COUNTS _kernel; // marginal for two subtypes being ED or DD // COUNTS _mde; // posterior prob COUNTS _post; // indicator if user provide the partition bool _has_user_specified_parti; // user provide partition, default is (0,...,0) if nothing is provided and EBSeq will auto find the probable partition std::vector > _parti; }; }; EBSeq/src/partition.hpp0000644000175200017520000001453314516004476016061 0ustar00biocbuildbiocbuild#pragma once #include #include #include #include "counts.hpp" #include #include namespace EBS { struct partition { static std::vector > Part(int n) { std::vector > start(1); start[0].push_back(1); if(n == 1){ return start; } for(int i = 1;i < n; ++i){ std::vector > new_p; size_t L = start.size(); for(int j = 0;j < L; ++j){ int M = *std::max_element(start[j].begin(),start[j].end()); for(int k = 0;k < M; ++k){ start[j].push_back(k+1); new_p.push_back(start[j]); start[j].pop_back(); } start[j].push_back(M+1); new_p.push_back(start[j]); start[j].pop_back(); } start = new_p; } return start; } static std::vector > monoPart(int n) { std::vector > start(1); start[0].push_back(1); if(n == 1){ return start; } for(int i = 1;i < n; ++i){ std::vector > new_p; size_t L = start.size(); for(int j = 0;j < L; ++j){ int M = *std::max_element(start[j].begin(),start[j].end()); //push last position again start[j].push_back(start[j][i - 1]); new_p.push_back(start[j]); start[j].pop_back(); start[j].push_back(M+1); new_p.push_back(start[j]); start[j].pop_back(); } start = new_p; } return start; } // K - 1 "<" or "=", 1 for "<" and 0 for "=" static std::vector mapToBit(std::vector& part) { size_t K = part.size(); std::vector res(K - 1, 0); for(size_t i = 0; i < K - 1; i++) { if(part[i] != part[i + 1]){res[i] = 1;} } return res; } static std::vector bitToPart(std::vector& bits) { size_t K = bits.size(); std::vector res(K + 1); res[0] = 1; for(size_t i = 0; i < K; i++) { if(bits[i]){res[i + 1] = res[i] + 1;} else{res[i + 1] = res[i];} } return res; } static std::vector> genBit(int n) { std::vector> res; if(n == 0) { return res; } res.push_back(std::vector(1,true)); res.push_back(std::vector(1,false)); for(int i = 1; i < n; i++) { std::vector> tmp; for(auto x:res) { auto y = x; x.push_back(true); tmp.push_back(x); y.push_back(false); tmp.push_back(y); } res = tmp; } return res; } static std::vector reorder(std::vector& part) { size_t K = part.size(); std::vector res(K); std::unordered_set seen; size_t i = 0; int label = 1; while(seen.size() < K) { int tmpLabel = part[i]; for(int j = 0; j < K; j++) { if(part[j] == tmpLabel) { res[j] = label; seen.insert(j); } } label++; for(size_t t = i; t < K; t++) { if(seen.find(t) == seen.end()) { i = t; break; } } } return res; } template static std::string toString(T& part) { std::string res = ""; for(size_t i = 0; i < part.size(); i++) { res += std::to_string(part[i]); } return res; } // convert string representation of partition to matrix static COUNTS toMatrix (std::vector& part) { int submax = *std::max_element(part.begin(),part.end()); size_t K = part.size(); COUNTS res(K,submax); res.fill(0); for(int i = 0; i < submax; i++) { for(int j = 0; j < K; j++) { if(part[j] == i + 1) { res(j,i) = 1; } } } return res; } static std::unordered_map, size_t> buildHash(std::vector >& parts) { std::unordered_map, size_t> res; for(size_t i = 0; i < parts.size(); i++) { auto bit = mapToBit(parts[i]); res[bit] = i; } return res; } }; }; EBSeq/src/wrapper.hpp0000644000175200017520000000220714516004476015523 0ustar00biocbuildbiocbuild#pragma once #include "aggregate.hpp" #include #include "partition.hpp" #include "helper.hpp" namespace EBS { // wrapper function for nlopt (found to be worse than EM) Float wrapperFunc(const std::vector ¶m, std::vector &grad, void *object) { Eigen::VectorXd p(param.size()); for(size_t i = 0; i < param.size(); i++) p(i) = param[i]; p = p / p.sum(); if (!grad.empty()) { auto drv = static_cast(object)->getKernel().colwise().sum(); for(size_t i = 0; i < param.size(); i++) { grad[i] = drv(i); } } Float res; res = static_cast(object)->OBJ(p); //std::cout << "function value " << res << "\n"; return res; } // Float myconstraint(const std::vector ¶m, std::vector &grad, void *data) // { // Float res = 0; // for(auto x:param) // res += x; // // return res - 1; // } }; EBSeq/vignettes/0000755000175200017520000000000014516004476014552 5ustar00biocbuildbiocbuildEBSeq/vignettes/EBSeq_Vignette.Rnw0000644000175200017520000013556614516004476020066 0ustar00biocbuildbiocbuild%\VignetteIndexEntry{EBSeq Vignette} \documentclass{article} \usepackage{fullpage} \usepackage{graphicx, graphics, epsfig,setspace,amsmath, amsthm} \usepackage{hyperref} \usepackage{natbib} %\usepackage{listings} \usepackage{moreverb} \begin{document} \SweaveOpts{concordance=TRUE} \title{EBSeq: An R package for differential expression analysis using RNA-seq data} \author{Ning Leng, John Dawson, Xiuyu Ma, Michael A. Newton, and Christina Kendziorski} \maketitle \tableofcontents \setcounter{tocdepth}{2} \section{Introduction} EBSeq may be used to identify differentially expressed (DE) genes and isoforms in an RNA-Seq experiment. As detailed in Leng {\it et al.}, 2013 \cite{Leng13}, EBSeq is an empirical Bayesian approach that models a number of features observed in RNA-seq data. Importantly, for isoform level inference, EBSeq directly accommodates isoform expression estimation uncertainty by modeling the differential variability observed in distinct groups of isoforms. Consider Figure 1, where we have plotted variance against mean for all isoforms using RNA-Seq expression data from Leng {\it et al.}, 2013 \cite{Leng13}. Also shown is the fit within three sub-groups of isoforms defined by the number of constituent isoforms of the parent gene. An isoform of gene $g$ is assigned to the $I_g=k$ group, where $k=1,2,3$, if the total number of isoforms from gene $g$ is $k$ (the $I_g=3$ group contains all isoforms from genes having 3 or more isoforms). As shown in Figure 1, there is decreased variability in the $I_g=1$ group, but increased variability in the others, due to the relative increase in uncertainty inherent in estimating isoform expression when multiple isoforms of a given gene are present. If this structure is not accommodated, there is reduced power for identifying isoforms in the $I_g=1$ group (since the true variances in that group are lower, on average, than that derived from the full collection of isoforms) as well as increased false discoveries in the $I_g=2$ and $I_g=3$ groups (since the true variances are higher, on average, than those derived from the full collection). EBSeq directly models differential variability as a function of $I_g$ providing a powerful approach for isoform level inference. As shown in Leng {\it et al.}, 2013 \cite{Leng13}, the model is also useful for identifying DE genes. One bottleneck of the model is that the number of DE patterns is growing factorially with the number of conditions($K$) for comparison (Bell number), which makes the computation infeasible for big $K$. To solve such issue, in EBSeq.2, we provide a pruning scheme by removing those unlikely patterns and thus greatly reducing the size of patterns, we also utilize a one-step EM for the hyper parameters optimization and rewrite the code in C++ for further efficiency. We will briefly detail the model in Section \ref{sec:model} and then describe the flow of analysis in Section \ref{sec:quickstart} for both isoform and gene-level inference. \begin{figure}[t] \centering \includegraphics[width=0.6\textwidth]{PlotExample.png} \label{fig:GouldNg} \caption{Empirical variance vs. mean for each isoform profiled in the ESCs vs iPSCs experiment detailed in the Case Study section of Leng {\it et al.}, 2013 \cite{Leng13}. A spline fit to all isoforms is shown in red with splines fit within the $I_g=1$, $I_g=2$, and $I_g=3$ isoform groups shown in yellow, pink, and green, respectively.} \end{figure} \section{Citing this software} \label{sec:cite} Please cite the following article when reporting results from the software. \noindent Leng, N., J.A. Dawson, J.A. Thomson, V. Ruotti, A.I. Rissman, B.M.G. Smits, J.D. Haag, M.N. Gould, R.M. Stewart, and C. Kendziorski. EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments, {\it Bioinformatics}, 2013. \section{The Model} \label{sec:model} \subsection{Two conditions} \label{sec:twocondmodel} We let $X_{g_i}^{C1} = X_{g_i,1} ,X_{g_i,2}, ...,X_{g_i,S_1}$ denote data from condition 1 and $ X_{g_i}^{C2} = X_{g_i,(S_1+1)},X_{g_i,(S_1+2)},...,X_{g_i,S}$ data from condition 2. We assume that counts within condition $C$ are distributed as Negative Binomial: $X_{g_i,s}^C|r_{g_i,s}, q_{g_i}^C \sim NB(r_{g_i,s}, q_{g_i}^C)$ where \begin{equation} P(X_{g_i,s}|r_{g_i,s},q_{g_i}^C) = {X_{g_i,s}+r_{g_i,s}-1\choose X_{g_i,s}}(1-q_{g_i}^C)^{X_{g_i,s}}(q_{g_i}^C)^{r_{g_i,s}}\label{eq:01} \end{equation} \noindent and $\mu_{g_i,s}^C=r_{g_i,s} (1-q_{g_i}^C)/q_{g_i}^C$; $(\sigma_{g_i,s}^C)^2=r_{g_i,s} (1-q_{g_i}^C)/(q_{g_i}^C)^2.$ \medskip We assume a prior distribution on $q_{g_i}^C$: $q_{g_i}^C|\alpha, \beta^{I_g} \sim Beta(\alpha, \beta^{I_g})$. The hyperparameter $\alpha$ is shared by all the isoforms and $\beta^{I_g}$ is $I_g$ specific (note this is an index, not a power). We further assume that $r_{g_i,s}=r_{g_i,0} l_s$, where $r_{g_i,0}$ is an isoform specific parameter common across conditions and $r_{g_i,s}$ depends on it through the sample-specific normalization factor $l_s$. Of interest in this two group comparison is distinguishing between two cases, or what we will refer to subsequently as two patterns of expression, namely equivalent expression (EE) and differential expression (DE): \begin{center} $H_0$ (EE) : $q_{g_i}^{C1}=q_{g_i}^{C2}$ vs $H_1$ (DE) : $q_{g_i}^{C1} \neq q_{g_i}^{C2}$. \end{center} Under the null hypothesis (EE), the data $X_{g_i}^{C1,C2} = X_{g_i}^{C1}, X_{g_i}^{C2}$ arises from the prior predictive distribution $f_0^{I_g}(X_{g_i}^{C1,C2})$: %\tiny \begin{equation} f_0^{I_g}(X_{g_i}^{C1,C2})=\Bigg[\prod_{s=1}^S {X_{g_i,s}+r_{g_i,s}-1\choose X_{g_i,s}}\Bigg] \frac{Beta(\alpha+\sum_{s=1}^S r_{g_i,s}, \beta^{I_g}+\sum_{s=1}^SX_{g_i,s} )}{Beta(\alpha, \beta^{I_g})}\label{eq:05} \end{equation} %\normalsize Alternatively (in a DE scenario), $X_{g_i}^{C1,C2}$ follows the prior predictive distribution $f_1^{I_g}(X_{g_i}^{C1,C2})$: \begin{equation} f_1^{I_g}(X_{g_i}^{C1,C2})=f_0^{I_g}(X_{g_i}^{C1})f_0^{I_g}(X_{g_i}^{C2}) \label{eq:06} \end{equation} Let the latent variable $Z_{g_i}$ be defined so that $Z_{g_i} = 1$ indicates that isoform $g_i$ is DE and $Z_{g_i} = 0$ indicates isoform $g_i$ is EE, and $Z_{g_i} \sim Bernoulli(p)$. Then, the marginal distribution of $X_{g_i}^{C1,C2}$ and $Z_{g_i}$ is: \begin{equation} (1-p)f_0^{I_g}(X_{g_i}^{C1,C2}) + pf_1^{I_g}(X_{g_i}^{C1,C2})\label{eq:07} \end{equation} \noindent The posterior probability of being DE at isoform $g_i$ is obtained by Bayes' rule: \begin{equation} \frac{pf_1^{I_g}(X_{g_i}^{C1,C2})}{(1-p)f_0^{I_g}(X_{g_i}^{C1,C2}) + pf_1^{I_g}(X_{g_i}^{C1,C2})}\label{eq:08} \end{equation} %\newpage \subsection{More than two conditions} \label{sec:multicondmodel} EBSeq naturally accommodates multiple condition comparisons. For example, in a study with 3 conditions, there are K=5 possible expression patterns (P1,...,P5), or ways in which latent levels of expression may vary across conditions: \begin{align} \textrm {P1:}& \hspace{0.05in} q_{g_i}^{C1} = q_{g_i}^{C2}=q_{g_i}^{C3} \nonumber \\ \textrm {P2:}& \hspace{0.05in} q_{g_i}^{C1} = q_{g_i}^{C2} \neq q_{g_i}^{C3} \nonumber \\ \textrm {P3:}& \hspace{0.05in} q_{g_i}^{C1} = q_{g_i}^{C3} \neq q_{g_i}^{C2} \nonumber \\ \textrm {P4:}& \hspace{0.05in} q_{g_i}^{C1} \neq q_{g_i}^{C2} = q_{g_i}^{C3} \nonumber \\ \textrm {P5:}& \hspace{0.05in} q_{g_i}^{C1} \neq q_{g_i}^{C2} \neq q_{g_i}^{C3} \textrm{ and } q_{g_i}^{C1} \neq q_{g_i}^{C3} \nonumber \end{align} \noindent The prior predictive distributions for these are given, respectively, by: \begin{align} g_1^{I_g}(X_{g_i}^{C1,C2,C3}) &= f_0^{I_g}(X_{g_i}^{C1,C2,C3}) \nonumber \\ g_2^{I_g}(X_{g_i}^{C1,C2,C3}) &= f_0^{I_g}(X_{g_i}^{C1,C2})f_0^{I_g}(X_{g_i}^{C3}) \nonumber \\ g_3^{I_g}(X_{g_i}^{C1,C2,C3}) &= f_0^{I_g}(X_{g_i}^{C1,C3})f_0^{I_g}(X_{g_i}^{C2}) \nonumber \\ g_4^{I_g}(X_{g_i}^{C1,C2,C3}) &= f_0^{I_g}(X_{g_i}^{C1})f_0^{I_g}(X_{g_i}^{C2,C3}) \nonumber \\ g_5^{I_g}(X_{g_i}^{C1,C2,C3}) &= f_0^{I_g}(X_{g_i}^{C1})f_0^{I_g}(X_{g_i}^{C2})f_0^{I_g}(X_{g_i}^{C3}) \nonumber \end{align} \noindent where $f_0^{I_g}$ is the same as in equation \ref{eq:05}. Then the marginal distribution in equation \ref{eq:07} becomes: \begin{equation} \sum_{k=1}^5 p_k g_k^{I_g}(X_{g_i}^{C1,C2,C3}) \label{eq:11} \end{equation} \noindent where $\sum_{k=1}^5 p_k = 1$. Thus, the posterior probability of isoform $g_i$ coming from pattern $K$ is readily obtained by: \begin{equation} \frac{p_K g_K^{I_g}(X_{g_i}^{C1,C2,C3})}{\sum_{k=1}^5 p_k g_k^{I_g}(X_{g_i}^{C1,C2,C3})} \label{eq:12} \end{equation} \subsection{Getting a false discovery rate (FDR) controlled list of genes or isoforms} \label{sec:fdrlist} To obtain a list of DE genes with false discovery rate (FDR) controlled at $\alpha$ in an experiment comparing two biological conditions, the genes with posterior probability of being DE (PPDE) greater than 1 - $\alpha$ should be used. For example, the genes with PPDE>=0.95 make up the list of DE genes with target FDR controlled at 5\%. With more than two biological conditions, there are multiple DE patterns (see Section \ref{sec:multicondmodel}). To obtain a list of genes in a specific DE pattern with target FDR $\alpha$, a user should take the genes with posterior probability of being in that pattern greater than 1 - $\alpha$. Isoform-based lists are obtained in the same way. \newpage \section{Quick Start} \label{sec:quickstart} Before analysis can proceed, the EBSeq package must be loaded into the working space: <<>>= library(EBSeq) @ \subsection{Gene level DE analysis (two conditions)} \label{sec:startgenede} \subsubsection{Required input} \label{sec:startgenedeinput} \begin{flushleft} {\bf Data}: The object \verb+Data+ should be a $G-by-S$ matrix containing the expression values for each gene and each sample, where $G$ is the number of genes and $S$ is the number of samples. These values should exhibit raw counts, without normalization across samples. Counts of this nature may be obtained from RSEM \cite{Li11b}, Cufflinks \cite{Trapnell12}, or a similar approach. \vspace{5 mm} {\bf Conditions}: The object \verb+Conditions+ should be a Factor vector of length $S$ that indicates to which condition each sample belongs. For example, if there are two conditions and three samples in each, $S=6$ and \verb+Conditions+ may be given by \verb+as.factor(c("C1","C1","C1","C2","C2","C2"))+ \end{flushleft} \noindent The object \verb+GeneMat+ is a simulated data matrix containing 1,000 rows of genes and 10 columns of samples. The genes are named \verb+Gene_1, Gene_2 ...+ <<>>= data(GeneMat) str(GeneMat) @ \subsubsection{Library size factor} \label{sec:startgenedesize} As detailed in Section \ref{sec:model}, EBSeq requires the library size factor $l_s$ for each sample $s$. Here, $l_s$ may be obtained via the function \verb+MedianNorm+, which reproduces the median normalization approach in DESeq \citep{Anders10}. <<>>= Sizes=MedianNorm(GeneMat) @ \noindent If quantile normalization is preferred, $l_s$ may be obtained via the function \verb+QuantileNorm+. (e.g. \verb+QuantileNorm(GeneMat,.75)+ for Upper-Quantile Normalization in \cite{Bullard10}) \subsubsection{Running EBSeq on gene expression estimates} \label{sec:startgenederun} The function \verb+EBTest+ is used to detect DE genes. For gene-level data, we don't need to specify the parameter \verb+NgVector+ since there are no differences in $I_g$ structure among the different genes. Here, we simulated the first five samples to be in condition 1 and the other five in condition 2, so define: \verb+Conditions=as.factor(rep(c("C1","C2"),each=5))+ \noindent \verb+sizeFactors+ is used to define the library size factor of each sample. It could be obtained by summing up the total number of reads within each sample, Median Normalization \citep{Anders10}, scaling normalization \citep{Robinson10}, Upper-Quantile Normalization \cite{Bullard10}, or some other such approach. These in hand, we run the EM algorithm, setting the number of iterations to five via \verb+maxround=5+ for demonstration purposes. However, we note that in practice, additional iterations are usually required. Convergence should always be checked (see Section \ref{sec:detailedgenedeconverge} for details). Please note this may take several minutes: <<>>= #EBOut=EBTest(Data=GeneMat, #Conditions=as.factor(rep(c("C1","C2"),each=5)),sizeFactors=Sizes, maxround=5) EBOut = EBTest(Data=GeneMat, Conditions=as.factor(rep(c("C1","C2"),each=5)), sizeFactors = Sizes) @ \noindent The list of DE genes and the posterior probabilities of being DE are obtained as follows <<>>= EBDERes=GetDEResults(EBOut, FDR=0.05) str(EBDERes$DEfound) head(EBDERes$PPMat) str(EBDERes$Status) @ \noindent \verb+EBDERes$DEfound+ is a list of genes identified with 5\% FDR. EBSeq found 95 genes. The matrix \verb+EBDERes$PPMat+ contains two columns \verb+PPEE+ and \verb+PPDE+, corresponding to the posterior probabilities of being EE or DE for each gene. \verb+EBDERes$Status+ contains each gene's status called by EBSeq. \noindent Note the \verb+GetDEResults()+ was incorporated in EBSeq since version 1.7.1. By using the default settings, the number of genes identified in any given analysis may differ slightly from the previous version. The updated algorithm is more robust to outliers and transcripts with low variance. To obtain results that are comparable to results from earlier versions of EBSeq ($\le$ 1.7.0), a user may set \verb+Method="classic"+ in \verb+GetDEResults()+ function, or use the \verb+GetPPMat()+ function. \subsection{Isoform level DE analysis (two conditions)} \label{sec:startisode} \subsubsection{Required inputs} \label{sec:startisodeinput} \begin{flushleft} {\bf Data}: The object \verb+Data+ should be a $I-by-S$ matrix containing the expression values for each isoform and each sample, where $I$ is the number of isoforms and $S$ is the number of sample. As in the gene-level analysis, these values should exhibit raw data, without normalization across samples. \vspace{5 mm} {\bf Conditions}: The object \verb+Conditions+ should be a vector with length $S$ to indicate the condition of each sample. \vspace{5 mm} {\bf IsoformNames}: The object \verb+IsoformNames+ should be a vector with length $I$ to indicate the isoform names. \vspace{5 mm} {\bf IsosGeneNames}: The object \verb+IsosGeneNames+ should be a vector with length $I$ to indicate the gene name of each isoform. (in the same order as \verb+IsoformNames+.) \end{flushleft} \noindent \verb+IsoList+ contains 1,200 simulated isoforms. In which \verb+IsoList$IsoMat+ is a data matrix containing 1,200 rows of isoforms and 10 columns of samples; \verb+IsoList$IsoNames+ contains the isoform names; \verb+IsoList$IsosGeneNames+ contains the names of the genes the isoforms belong to. <<>>= data(IsoList) str(IsoList) IsoMat=IsoList$IsoMat str(IsoMat) IsoNames=IsoList$IsoNames IsosGeneNames=IsoList$IsosGeneNames @ \subsubsection{Library size factor} \label{sec:startisodesize} Similar to the gene-level analysis presented above, we may obtain the isoform-level library size factors via \verb+MedianNorm+: <<>>= IsoSizes=MedianNorm(IsoMat) @ \subsubsection{The $I_g$ vector} \label{sec:startisodeNg} While working on isoform level data, EBSeq fits different prior parameters for different uncertainty groups (defined as $I_g$ groups). The default setting to define the uncertainty groups consists of using the number of isoforms the host gene contains ($N_g$) for each isoform. The default settings will provide three uncertainty groups: $I_g=1$ group: Isoforms with $N_g=1$; $I_g=2$ group: Isoforms with $N_g=2$; $I_g=3$ group: Isoforms with $N_g \geq 3$. The $N_g$ and $I_g$ group assignment can be obtained using the function \verb+GetNg+. The required inputs of \verb+GetNg+ are the isoform names (\verb+IsoformNames+) and their corresponding gene names (\verb+IsosGeneNames+). <<>>= NgList=GetNg(IsoNames, IsosGeneNames) IsoNgTrun=NgList$IsoformNgTrun IsoNgTrun[c(1:3,201:203,601:603)] @ More details could be found in Section \ref{sec:detailedisode}. \subsubsection{Running EBSeq on isoform expression estimates} \label{sec:startisoderun} The \verb+EBTest+ function is also used to run EBSeq for two condition comparisons on isoform-level data. Below we use 5 iterations to demonstrate. However, as in the gene level analysis, we advise that additional iterations will likely be required in practice (see Section \ref{sec:detailedisodeconverge} for details). <<>>= IsoEBOut = EBTest(Data=IsoMat, NgVector=IsoNgTrun, Conditions=as.factor(rep(c("C1","C2"),each=5)),sizeFactors=IsoSizes) IsoEBDERes=GetDEResults(IsoEBOut, FDR=0.05) str(IsoEBDERes$DEfound) head(IsoEBDERes$PPMat) str(IsoEBDERes$Status) @ \noindent We see that EBSeq found 104 DE isoforms at the target FDR of 0.05. \noindent Note the \verb+GetDEResults()+ was incorporated in EBSeq since version 1.7.1. By using the default settings, the number of transcripts identified in any given analysis may differ slightly from the previous version. The updated algorithm is more robust to outliers and transcripts with low variance. To obtain results that are comparable to results from earlier versions of EBSeq ($\le$ 1.7.0), a user may set \verb+Method="classic"+ in \verb+GetDEResults()+ function, or use the \verb+GetPPMat()+ function. \subsection{Gene level DE analysis (more than two conditions)} \label{sec:startmulticond} \noindent The object \verb+MultiGeneMat+ is a matrix containing 500 simulated genes with 6 samples: the first two samples are from condition 1; the second and the third sample are from condition 2; the last two samples are from condition 3. <<>>= data(MultiGeneMat) str(MultiGeneMat) @ In analysis where the data are spread over more than two conditions, the set of possible patterns for each gene is more complicated than simply EE and DE. As noted in Section \ref{sec:model}, when we have 3 conditions, there are 5 expression patterns to consider. In the simulated data, we have 6 samples, 2 in each of 3 conditions. <<>>= Conditions=c("C1","C1","C2","C2","C3","C3") @ \verb+MedianNorm+ or one of its competitors should be used to determine the normalization factors. Once this is done, the formal test is performed by \verb+EBMultiTest+. <<>>= MultiSize=MedianNorm(MultiGeneMat) MultiOut=EBMultiTest(MultiGeneMat,Conditions=Conditions, sizeFactors=MultiSize) @ The function \verb+GetSelectedPatterns+ allows the user to get selected patterns. For example: <<>>= PosParti=GetSelectedPatterns(MultiOut) PosParti @ \noindent where the first row means all three conditions have distinct latent mean expression level; the second row means C1 and C2 have the same latent mean expression level but that of C3 is different; and the last row corresponds to the case where C1 and C3 have the same latent mean expression level but that of C2 is different. The user may use all or only some of these possible patterns as an input to \verb+EBMultiTest+. The function \verb+GetPatterns+ allows the user to generate all possible patterns given the conditions. For example: <<>>= PosParti = GetPatterns(Conditions) PosParti @ if we were interested in Patterns 1, 2, 4 and 5 only, we'd define: <<>>= Parti = PosParti[-3,] Parti @ and use the \verb+AllParti+ argument to input the user specified subset of partitions <<>>= MultiOut=EBMultiTest(MultiGeneMat,Conditions=Conditions, sizeFactors=MultiSize,AllParti=Parti) @ \noindent The posterior probability of being in each pattern for every gene is obtained by using the function \verb+GetMultiPP+: <<>>= MultiPP=GetMultiPP(MultiOut) names(MultiPP) MultiPP$PP[1:10,] MultiPP$MAP[1:10] MultiPP$Patterns @ \noindent where \verb+MultiPP$PP+ provides the posterior probability of being in each pattern for every gene. \verb+MultiPP$MAP+ provides the most likely pattern of each gene based on the posterior probabilities. \verb+MultiPP$Patterns+ provides the details of the patterns. \subsection{Isoform level DE analysis (more than two conditions)} \label{sec:startisomulticond} \noindent Similar to \verb+IsoList+, the object \verb+IsoMultiList+ is an object containing the isoform expression estimates matrix, the isoform names, and the gene names of the isoforms' host genes. \verb+IsoMultiList$IsoMultiMat+ contains 300 simulated isoforms with 8 samples. The first two samples are from condition 1; the second and the third sample are from condition 2; the fifth and sixth sample are from condition 3; the last two samples are from condition 4. Similar to Section \ref{sec:startisode}, the function \verb+MedianNorm+ and \verb+GetNg+ could be used for normalization and calculating the $N_g$'s. <<>>= data(IsoMultiList) IsoMultiMat=IsoMultiList[[1]] IsoNames.Multi=IsoMultiList$IsoNames IsosGeneNames.Multi=IsoMultiList$IsosGeneNames IsoMultiSize=MedianNorm(IsoMultiMat) NgList.Multi=GetNg(IsoNames.Multi, IsosGeneNames.Multi) IsoNgTrun.Multi=NgList.Multi$IsoformNgTrun Conditions=c("C1","C1","C2","C2","C3","C3","C4","C4") @ \noindent \verb+EBMultiTest+ could be used to perform the test: <<>>= IsoMultiOut=EBMultiTest(IsoMultiMat, NgVector=IsoNgTrun.Multi,Conditions=Conditions, sizeFactors=IsoMultiSize, nequal = 10) @ The function \verb+GetSelectedPatterns+ allows the user to get selected patterns. For example: <<>>= PosParti.4Cond=GetSelectedPatterns(IsoMultiOut) PosParti.4Cond @ \noindent The posterior probability of being in each pattern for every gene is obtained by using the function \verb+GetMultiPP+: <<>>= IsoMultiPP=GetMultiPP(IsoMultiOut) names(MultiPP) IsoMultiPP$PP[1:10,] IsoMultiPP$MAP[1:10] IsoMultiPP$Patterns @ \noindent where \verb+MultiPP$PP+ provides the posterior probability of being in each pattern for every gene. \verb+MultiPP$MAP+ provides the most likely pattern of each gene based on the posterior probabilities. \verb+MultiPP$Patterns+ provides the details of the patterns. \newpage \section{More detailed examples} \label{sec:detailed} \subsection{Gene level DE analysis (two conditions)} \label{sec:detailedgenede} \subsubsection{Running EBSeq on simulated gene expression estimates} \label{sec:detailedgenederun} EBSeq is applied as described in Section \ref{sec:startgenederun}. <>= data(GeneMat) Sizes=MedianNorm(GeneMat) EBOut=EBTest(Data=GeneMat, Conditions=as.factor(rep(c("C1","C2"),each=5)),sizeFactors=Sizes) EBDERes=GetDEResults(EBOut, FDR=0.05) @ <<>>= EBDERes=GetDEResults(EBOut, FDR=0.05) str(EBDERes$DEfound) head(EBDERes$PPMat) str(EBDERes$Status) @ \noindent EBSeq found 94 DE genes at a target FDR of 0.05.\\ \subsubsection{Calculating FC} \label{sec:detailedgenedefc} The function \verb+PostFC+ may be used to calculate the Fold Change (FC) of the raw data as well as the posterior FC of the normalized data. \begin{figure}[h!] \centering <>= GeneFC=PostFC(EBOut) str(GeneFC) PlotPostVsRawFC(EBOut,GeneFC) @ \caption{ FC vs. Posterior FC for 1,000 gene expression estimates} \label{fig:GeneFC} \end{figure} Figure \ref{fig:GeneFC} shows the FC vs. Posterior FC on 1,000 gene expression estimates. The genes are ranked by their cross-condition mean (adjusted by the normalization factors). The posterior FC tends to shrink genes with low expressions (small rank); in this case the differences are minor. \newpage \subsubsection{Checking convergence} \label{sec:detailedgenedeconverge} As detailed in Section \ref{sec:model}, we assume the prior distribution of $q_g^C$ is $Beta(\alpha,\beta)$. The EM algorithm is used to estimate the hyper-parameters $\alpha,\beta$ and the mixture parameter $p$. The optimized parameters may be obtained as follows : <<>>= EBOut$Alpha EBOut$Beta[1:5] EBOut$P @ The one-step EM will stop if the difference between the objectives(marginal likelihood) at two iterations is smaller than the \verb+stopthre+ (default as 1e-4) or the \verb+maxround+(default as 50) number of iterations has been reached. \subsubsection{Checking the model fit and other diagnostics} \label{sec:detailedgenedeplot} As noted in Leng {\it et al.}, 2013 \cite{Leng13}, EBSeq relies on parametric assumptions that should be checked following each analysis. The \verb+QQP+ function may be used to assess prior assumptions. In practice, \verb+QQP+ generates the Q-Q plot of the empirical $q$'s vs. the simulated $q$'s from the Beta prior distribution with estimated hyper-parameters. Figure \ref{fig:GeneQQ} shows that the data points lie on the $y=x$ line for both conditions, which indicates that the Beta prior is appropriate. \begin{figure}[h!] \centering <>= par(mfrow=c(1,2)) QQP(EBOut) @ \caption{QQ-plots for checking the assumption of a Beta prior (upper panels) as well as the model fit using data from condition 1 and condition 2 (lower panels)} \label{fig:GeneQQ} \end{figure} \newpage \noindent Likewise, the \verb+DenNHist+ function may be used to check the density plot of empirical $q$'s vs the simulated $q$'s from the fitted Beta prior distribution. Figure \ref{fig:GeneDenNHist} also shows our estimated distribution fits the data very well. \begin{figure}[h!] \centering <>= par(mfrow=c(1,2)) DenNHist(EBOut) @ \caption{Density plots for checking the model fit using data from condition 1 and condition 2} \label{fig:GeneDenNHist} \end{figure} \newpage \subsection{Isoform level DE analysis (two conditions)} \label{sec:detailedisode} \subsubsection{The $I_g$ vector} \label{sec:detailedisodeNg} Since EBSeq fits rely on $I_g$, we need to obtain the $I_g$ for each isoform. This can be done using the function \verb+GetNg+. The required inputs of \verb+GetNg+ are the isoform names (\verb+IsoformNames+) and their corresponding gene names (\verb+IsosGeneNames+), described above. In the simulated data, we assume that the isoforms in the $I_g=1$ group belong to genes \verb+Gene_1, ... , Gene_200+; The isoforms in the $I_g=2$ group belong to genes \verb+Gene_201, ..., Gene_400+; and isoforms in the $I_g=3$ group belong to \verb+Gene_401, ..., Gene_600+. <>= data(IsoList) IsoMat=IsoList$IsoMat IsoNames=IsoList$IsoNames IsosGeneNames=IsoList$IsosGeneNames NgList=GetNg(IsoNames, IsosGeneNames, TrunThre=3) @ <<>>= names(NgList) IsoNgTrun=NgList$IsoformNgTrun IsoNgTrun[c(1:3,201:203,601:603)] @ The output of \verb+GetNg+ contains 4 vectors. \verb+GeneNg+ (\verb+IsoformNg+) provides the number of isoforms $N_g$ within each gene (within each isoform's host gene). \verb+GeneNgTrun+ (\verb+IsoformNgTrun+) provides the $I_g$ group assignments. The default number of groups is 3, which means the isoforms with $N_g$ greater than 3 will be assigned to $I_g=3$ group. We use 3 in the case studies since the number of isoforms with $N_g$ larger than 3 is relatively small and the small sample size may induce poor parameter fitting if we treat them as separate groups. In practice, if there is evidence that the $N_g=4,5,6...$ groups should be treated as separate groups, a user can change \verb+TrunThre+ to define a different truncation threshold. \subsubsection{Using mappability ambiguity clusters instead of the $I_g$ vector when the gene-isoform relationship is unknown} \label{sec:detailedisodeNoNg} When working with a de-novo assembled transcriptome, in which case the gene-isoform relationship is unknown, a user can use read mapping ambiguity cluster information instead of Ng, as provided by RSEM \cite{Li11b} in the output file \verb+output_name.ngvec+. The file contains a vector with the same length as the total number of transcripts. Each transcript has been assigned to one of 3 levels (1, 2, or 3) to indicate the mapping uncertainty level of that transcript. The mapping ambiguity clusters are partitioned via a k-means algorithm on the unmapability scores that are provided by RSEM. A user can read in the mapping ambiguity cluster information using: <>= IsoNgTrun = scan(file="output_name.ngvec", what=0, sep="\n") @\\ Where \verb+"output_name.ngvec"+ is the output file obtained from RSEM function rsem-generate-ngvector. More details on using the RSEM-EBSeq pipeline on de novo assembled transcriptomes can be found at \url{http://deweylab.biostat.wisc.edu/rsem/README.html#de}. Other unmappability scores and other cluster methods (e.g. Gaussian Mixed Model) could also be used to form the uncertainty clusters. \subsubsection{Running EBSeq on simulated isoform expression estimates} \label{sec:detailedisoderun} EBSeq can be applied as described in Section \ref{sec:startisoderun}. <>= IsoSizes=MedianNorm(IsoMat) IsoEBOut=EBTest(Data=IsoMat, NgVector=IsoNgTrun, Conditions=as.factor(rep(c("C1","C2"),each=5)),sizeFactors=IsoSizes,step2 = 1e-4) IsoEBDERes=GetDEResults(IsoEBOut, FDR=0.05) @ <<>>= str(IsoEBDERes) @ \noindent We see that EBSeq found 104 DE isoforms at a target FDR of 0.05. The function \verb+PostFC+ could also be used here to calculate the Fold Change (FC) as well as the posterior FC on the normalization factor adjusted data. <<>>= IsoFC=PostFC(IsoEBOut) str(IsoFC) @ \subsubsection{Checking convergence} \label{sec:detailedisodeconverge} For isoform level data, we assume the prior distribution of $q_{gi}^C$ is $Beta(\alpha,\beta^{I_g})$. As in Section \ref{sec:detailedgenedeconverge}, the optimized parameters may be obtained as follows: <<>>= IsoEBOut$Alpha unique(IsoEBOut$Beta) IsoEBOut$P @ Here we have 3 $\beta$'s in each iteration corresponding to $\beta^{I_g=1},\beta^{I_g=2},\beta^{I_g=3}$. The one-step EM will stop if the difference between the objectives(marginal likelihood) at two iterations is smaller than the \verb+stopthre+ (default as 1e-4) or the \verb+maxround+(default as 50) number of iterations has been reached. \subsubsection{Checking the model fit and other diagnostics} \label{sec:detailedisodeplot} In Leng {\it et al.}, 2013\citep{Leng13}, we showed the mean-variance differences across different isoform groups on multiple data sets. In practice, if it is of interest to check differences among isoform groups defined by truncated $I_g$ (such as those shown here in Figure 1), the function \verb+PolyFitPlot+ may be used. The following code generates the three panels shown in Figure \ref{fig:IsoSimuNgEach} (if condition 2 is of interest, a user could change each \verb+group = 1 + to \verb+group = 2+.): \begin{figure}[h!] \centering <>= par(mfrow=c(2,2)) PolyFitValue=vector("list",3) for(i in 1:3){ group = 1 PolyFitValue[[i]]=PolyFitPlot(IsoEBOut$Mean[which(IsoEBOut$Iso == i),group], IsoEBOut$Var[which(IsoEBOut$Iso == i),group],5) } @ \caption{ The mean-variance fitting plot for each Ng group} \label{fig:IsoSimuNgEach} \end{figure} \newpage Superimposing all $I_g$ groups using the code below will generate the figure (shown here in Figure \ref{fig:IsoSimuNg}), which is similar in structure to Figure 1: \begin{figure}[h!] \centering <>= group = 1 X = IsoEBOut$Mean[,group] Y = IsoEBOut$Var[,group] PolyAll=PolyFitPlot(X, Y,5) lines(log10(X[which(IsoEBOut$Iso == 1)][PolyFitValue[[1]]$sort]), PolyFitValue[[1]]$fit[PolyFitValue[[1]]$sort],col="yellow",lwd=2) lines(log10(X[which(IsoEBOut$Iso == 2)][PolyFitValue[[2]]$sort]), PolyFitValue[[2]]$fit[PolyFitValue[[2]]$sort],col="pink",lwd=2) lines(log10(X[which(IsoEBOut$Iso == 3)][PolyFitValue[[3]]$sort]), PolyFitValue[[3]]$fit[PolyFitValue[[3]]$sort],col="green",lwd=2) legend("topleft",c("All Isoforms","Ng = 1","Ng = 2","Ng = 3"), col=c("red","yellow","pink","green"),lty=1,lwd=3,box.lwd=2) @ \caption{The mean-variance plot for each Ng group} \label{fig:IsoSimuNg} \end{figure} \newpage \noindent To generate a QQ-plot of the fitted Beta prior distribution and the $\hat{q}^C$'s within condition, a user may use the following code to generate 6 panels (as shown in Figure \ref{fig:IsoQQ}). \begin{figure}[h!] \centering <>= par(mfrow=c(2,3)) QQP(IsoEBOut) @ \caption{ QQ-plots of the fitted prior distributions within each condition and each Ig group} \label{fig:IsoQQ} \end{figure} \newpage \noindent And in order to produce the plot of the fitted Beta prior densities and the histograms of $\hat{q}^C$'s within each condition, the following may be used (it generates Figure \ref{fig:IsoDenNHist}): \begin{figure}[h] \centering <>= par(mfrow=c(2,3)) DenNHist(IsoEBOut) @ \caption{ Prior distribution fit within each condition and each Ig group. (Note only a small set of isoforms are considered here for demonstration. Better fitting should be expected while using full set of isoforms.)} \label{fig:IsoDenNHist} \end{figure} \clearpage \subsection{Gene level DE analysis (more than two conditions)} \label{sec:detailedmulticond} \noindent \verb+MedianNorm+ or one of its competitors should be used to determine the normalization factors. Once this is done, the formal test is performed by \verb+EBMultiTest+. <>= data(MultiGeneMat) Conditions=c("C1","C1","C2","C2","C3","C3") MultiSize=MedianNorm(MultiGeneMat) MultiOut=EBMultiTest(MultiGeneMat, NgVector=NULL,Conditions=Conditions, sizeFactors=MultiSize) @ \noindent The posterior probability of being in each pattern for every gene is obtained using the function \verb+GetMultiPP+: <<>>= MultiPP=GetMultiPP(MultiOut) names(MultiPP) MultiPP$PP[1:10,] MultiPP$MAP[1:10] MultiPP$Patterns @ As described in Section \ref{sec:startmulticond}, the function \verb+GetSelectedPatterns+ allows the user to get selected patterns after we run the \verb+EBMultiTest+ function To visualize the patterns, the function \verb+PlotPattern+ may be used. \begin{figure}[h!] \centering <>= PosParti=GetSelectedPatterns(MultiOut) PosParti PlotPattern(PosParti) @ \caption{ Selected patterns, for this case, happens to be all possible patterns for 3 conditions} \label{fig:Patterns} \end{figure} \newpage \noindent where \verb+MultiPP$PP+ provides the posterior probability of being in each pattern for every gene. \verb+MultiPP$MAP+ provides the most likely pattern of each gene based on the posterior probabilities. \verb+MultiPP$Patterns+ provides the details of the patterns. The FC and posterior FC for multiple condition data can be obtained by the function \verb+GetMultiFC+: <<>>= MultiFC=GetMultiFC(MultiOut) str(MultiFC) @ \noindent To generate a QQ-plot of the fitted Beta prior distribution and the $\hat{q}^C$'s within condition, a user could also use function \verb+DenNHist+ and \verb+QQP+. \begin{figure}[h!] \centering <>= par(mfrow=c(2,2)) QQP(MultiOut) @ \caption{ QQ-plots of the fitted prior distributions within each condition and each Ig group} \label{fig:GeneMultiQQ} \end{figure} \begin{figure}[h] \centering <>= par(mfrow=c(2,2)) DenNHist(MultiOut) @ \caption{ Prior distributions fit within each condition. (Note only a small set of genes are considered here for demonstration. Better fitting should be expected while using full set of genes.)} \label{fig:GeneMultiDenNHist} \end{figure} \newpage \clearpage \newpage \subsection{Isoform level DE analysis (more than two conditions)} \label{sec:detailedisomulticond} <>= data(IsoMultiList) Conditions=c("C1","C1","C2","C2","C3","C3","C4","C4") IsoMultiMat=IsoMultiList[[1]] IsoNames.Multi=IsoMultiList$IsoNames IsosGeneNames.Multi=IsoMultiList$IsosGeneNames IsoMultiSize=MedianNorm(IsoMultiMat) NgList.Multi=GetNg(IsoNames.Multi, IsosGeneNames.Multi) IsoNgTrun.Multi=NgList.Multi$IsoformNgTrun IsoMultiOut=EBMultiTest(IsoMultiMat,NgVector=IsoNgTrun.Multi,Conditions=Conditions, sizeFactors=IsoMultiSize) IsoMultiPP=GetMultiPP(IsoMultiOut) @ <<>>= names(MultiPP) IsoMultiPP$PP[1:10,] IsoMultiPP$MAP[1:10] IsoMultiPP$Patterns IsoMultiFC=GetMultiFC(IsoMultiOut) @ Similar to Section \ref{sec:startmulticond}, the function \verb+GetSelectedPatterns+ allows a user to get selected patterns. To visualize the patterns, the function \verb+PlotPattern+ may be used. <<>>= PosParti.4Cond=GetSelectedPatterns(IsoMultiOut) PosParti.4Cond @ \begin{figure}[h!] \centering <>= PlotPattern(PosParti.4Cond) @ \caption{Selected patterns for 4 conditions} \label{fig:Patterns4Cond} \end{figure} \newpage The FC and posterior FC for multiple condition data can be obtained by the function \verb+GetMultiFC+: \noindent To generate a QQ-plot of the fitted Beta prior distribution and the $\hat{q}^C$'s within condition, a user could also use the functions \verb+DenNHist+ and \verb+QQP+. \newpage \begin{figure}[h!] \centering <>= par(mfrow=c(3,4)) QQP(IsoMultiOut) @ \caption{ QQ-plots of the fitted prior distributions within each condition and Ig group. (Note only a small set of isoforms are considered here for demonstration. Better fitting should be expected while using full set of isoforms.)} \label{fig:IsoMultiQQ} \end{figure} \begin{figure}[h] \centering <>= par(mfrow=c(3,4)) DenNHist(IsoMultiOut) @ \caption{ Prior distributions fit within each condition and Ig group. (Note only a small set of isoforms are considered here for demonstration. Better fitting should be expected while using full set of isoforms.)} \label{fig:IsoMultiDenNHist} \end{figure} \clearpage \newpage \newpage \subsection{Working without replicates} When replicates are not available, it is difficult to estimate the transcript specific variance. In this case, EBSeq estimates the variance by pooling similar genes together. Specifically, we take genes with FC in the 25\% - 75\% quantile of all FC's as candidate genes. By defining \verb+NumBin = 1000+ (default in \verb+EBTest+), EBSeq will group genes with similar means into 1,000 bins. For each candidate gene, we use the across-condition variance estimate as its variance estimate. For each bin, the bin-wise variance estimation is taken to be the median of the across-condition variance estimates of the candidate genes within that bin. For each non-candidate gene, we use the bin-wise variance estimate of the host bin (the bin containing this gene) as its variance estimate. This approach works well when there are no more than 50\% DE genes in the data set. \subsubsection{Gene counts with two conditions} \label{sec:norepgenede} To generate a data set with no replicates, we take the first sample of each condition. For example, using the data from Section \ref{sec:detailedgenede}, we take sample 1 from condition 1 and sample 6 from condition 2. Functions \verb+MedianNorm+, \verb+GetDEResults+ and \verb+PostFC+ may be used on data without replicates. <<>>= data(GeneMat) GeneMat.norep=GeneMat[,c(1,6)] Sizes.norep=MedianNorm(GeneMat.norep) EBOut.norep=EBTest(Data=GeneMat.norep, Conditions=as.factor(rep(c("C1","C2"))), sizeFactors=Sizes.norep) EBDERes.norep=GetDEResults(EBOut.norep) GeneFC.norep=PostFC(EBOut.norep) @ \subsubsection{Isoform counts with two conditions} \label{norepisode} To generate an isoform level data set with no replicates, we also take sample 1 and sample 6 in the data we used in Section \ref{sec:detailedisode}. Example codes are shown below. <<>>= data(IsoList) IsoMat=IsoList$IsoMat IsoNames=IsoList$IsoNames IsosGeneNames=IsoList$IsosGeneNames NgList=GetNg(IsoNames, IsosGeneNames) IsoNgTrun=NgList$IsoformNgTrun IsoMat.norep=IsoMat[,c(1,6)] IsoSizes.norep=MedianNorm(IsoMat.norep) IsoEBOut.norep=EBTest(Data=IsoMat.norep, NgVector=IsoNgTrun, Conditions=as.factor(c("C1","C2")), sizeFactors=IsoSizes.norep) IsoEBDERes.norep=GetDEResults(IsoEBOut.norep) IsoFC.norep=PostFC(IsoEBOut.norep) @ \subsubsection{Gene counts with more than two conditions} \label{norepisode} To generate a data set with multiple conditions and no replicates, we take the first sample from each condition (sample 1, 3 and 5) in the data we used in Section \ref{sec:detailedmulticond}. Example codes are shown below. <<>>= data(MultiGeneMat) MultiGeneMat.norep=MultiGeneMat[,c(1,3,5)] Conditions=c("C1","C2","C3") #PosParti=GetPatterns(Conditions) #Parti=PosParti[-3,] MultiSize.norep=MedianNorm(MultiGeneMat.norep) MultiOut.norep=EBMultiTest(MultiGeneMat.norep, NgVector=NULL,Conditions=Conditions, sizeFactors=MultiSize.norep) MultiPP.norep=GetMultiPP(MultiOut.norep) MultiFC.norep=GetMultiFC(MultiOut.norep) @ \subsubsection{Isoform counts with more than two conditions} \label{sec:norepmulticond} To generate an isoform level data set with multiple conditions and no replicates, we take the first sample from each condition (sample 1, 3, 5 and 7) in the data we used in Section \ref{sec:detailedisomulticond}. Example codes are shown below. <<>>= data(IsoMultiList) IsoMultiMat=IsoMultiList[[1]] IsoNames.Multi=IsoMultiList$IsoNames IsosGeneNames.Multi=IsoMultiList$IsosGeneNames IsoMultiMat.norep=IsoMultiMat[,c(1,3,5,7)] IsoMultiSize.norep=MedianNorm(IsoMultiMat.norep) NgList.Multi=GetNg(IsoNames.Multi, IsosGeneNames.Multi) IsoNgTrun.Multi=NgList.Multi$IsoformNgTrun Conditions=c("C1","C2","C3","C4") #PosParti.4Cond=GetPatterns(Conditions) #PosParti.4Cond #Parti.4Cond=PosParti.4Cond[c(1,2,3,8,15),] #Parti.4Cond IsoMultiOut.norep=EBMultiTest(IsoMultiMat.norep, NgVector=IsoNgTrun.Multi,Conditions=Conditions, sizeFactors=IsoMultiSize.norep) IsoMultiPP.norep=GetMultiPP(IsoMultiOut.norep) IsoMultiFC.norep=GetMultiFC(IsoMultiOut.norep) @ \section{EBSeq pipelines and extensions} \subsection{RSEM-EBSeq pipeline: from raw reads to differential expression analysis results} EBSeq is coupled with RSEM \cite{Li11b} as an RSEM-EBSeq pipeline which provides quantification and DE testing on both gene and isoform levels. For more details, see \url{http://deweylab.biostat.wisc.edu/rsem/README.html#de} \subsection{EBSeq.v2 reference} This version 2.0 update of EBSeq is the topic of bioRxiv 10.1101/2020.06.19.162180 \url{https://biorxiv.org/cgi/content/short/2020.06.19.162180v1} % \subsection{EBSeq interface: A user-friendly graphical interface for differetial expression analysis} % EBSeq interface provides a graphical interface implementation for users who are not familiar with the R % programming language. It takes .xls, .xlsx and .csv files as input. % Additional packages need be downloaded; they may be found at % \url{http://www.biostat.wisc.edu/~ningleng/EBSeq_Package/EBSeq_Interface/} %\subsection{EBSeq Galaxy tool shed} %EBSeq tool shed contains EBSeq wrappers for a local Galaxy implementation. %For more details, see %\url{http://www.biostat.wisc.edu/~ningleng/EBSeq_Package/EBSeq_Galaxy_toolshed/} \subsection{Scaling up EBSeq} There is a major update for the algorithm and code structure allowing EBSeq to deal with comparison among big number of conditions. The reference paper can be found at "link to jss paper" \section{Acknowledgment} We would like to thank Haolin Xu for checking the package and proofreading the vignette. \section{News} 2014-1-30: In EBSeq 1.3.3, the default setting of EBTest function will remove low expressed genes (genes whose 75th quantile of normalized counts is less than 10) before identifying DE genes. These two thresholds can be changed in EBTest function. Because low expressed genes are disproportionately noisy, removing these genes prior to downstream analyses can improve model fitting and increase robustness (e.g. by removing outliers). 2014-5-22: In EBSeq 1.5.2, numerical approximations are implemented to deal with underflow. The underflow is likely due to large number of samples. 2015-1-29: In EBSeq 1.7.1, EBSeq incorporates a new function GetDEResults() which may be used to obtain a list of transcripts under a target FDR in a two-condition experiment. The results obtained by applying this function with its default setting will be more robust to transcripts with low variance and potential outliers. By using the default settings in this function, the number of genes identified in any given analysis may differ slightly from the previous version (1.7.0 or order). To obtain results that are comparable to results from earlier versions of EBSeq (1.7.0 or older), a user may set Method="classic" in GetDEResults() function, or use the original GetPPMat() function. The GeneDEResults() function also allows a user to modify thresholds to target genes/isoforms with a pre-specified posterior fold change. Also, in EBSeq 1.7.1, the default settings in EBTest() and EBMultiTest() function will only remove transcripts with all 0's (instead of removing transcripts with 75th quantile less than 10 in version 1.3.3-1.7.0). To obtain a list of transcripts comparable to the results generated by EBSeq version 1.3.3-1.7.0, a user may change Qtrm = 0.75 and QtrmCut = 10 when applying EBTest() or EBMultiTest() function. In EBSeq 1.9.1 Added Q$\&$A seqction in vignette to address common questions In EBSeq 1.9.2 Fixed a bug which may cause error when input a matrix to the sizeFactors parameter In EBSeq 1.9.3 Correct typos in GetDEResults help file. Include an alternative method for normalization. The alternative method is similar to median-by-ratio normalization, but can deal with the cases when all of the genes/isoforms have at least one zero counts (in which case the median-by-ratio normalization will fail). This alternative method is developed for single-cell RNA-seq analysis where the dataset always contains a large amount of zeros. In EBSeq 1.11.1 Fixed a bug in EBTest() which may cause error when performing isoform DE testing 1 sample vs. multiple samples. In EBSeq 1.28.0 available on Bioconductor: https://bioconductor.org/packages/release/bioc/html/EBSeq.html 2020-6-2: In EBSeq 2.0.0 A new implementation of the core functions EBTest and EBMultiTest, which scales up the computation for big number of conditions to compare. \section{Common Q and A} \subsection{Read in data} csv file: \verb+In=read.csv("FileName", stringsAsFactors=F, row.names=1, header=T)+ \verb+Data=data.matrix(In)+ \noindent txt file: \verb+In=read.table("FileName", stringsAsFactors=F, row.names=1, header=T)+ \verb+Data=data.matrix(In)+ \noindent Check \verb+str(Data)+ and make sure it is a matrix instead of data frame. You may need to play around with the \verb+row.names+ and \verb+header+ option depends on how the input file was generated. \subsection{GetDEResults() function not found} You may on an earlier version of EBSeq. The GetDEResults function was introduced since version 1.7.1. The latest release version could be found at: \url{http://www.bioconductor.org/packages/release/bioc/html/EBSeq.html} \noindent The latest devel version: \url{http://www.bioconductor.org/packages/devel/bioc/html/EBSeq.html} \noindent And you may check your package version by typing \verb+packageVersion("EBSeq")+. \subsection{Visualizing DE genes/isoforms} To generate a heatmap, you may consider the heatmap.2 function in gplots package. For example, you may run \verb+heatmap.2(NormalizedMatrix[GenesOfInterest,], scale="row", trace="none", Colv=F)+ The normalized matrix may be obtained from \verb+GetNormalizedMat()+ function. \subsection{My favorite gene/isoform has NA in PP (status "NoTest")} \indent The NoTest status comes from two sources: 1) In version 1.3.3-1.7.0, using the default parameter settings of EBMultiTest(), the function will not test on genes with more than 75\% values $\le$ 10 to ensure better model fitting. To disable this filter, you may set Qtrm=1 and QtrmCut=0. 2) numerical over/underflow in R. That happens when the within condition variance is extremely large or small. we did implemented a numerical approximation step to calculate the approximated PP for these genes with over/underflow. Here we use $10^{-10}$ to approximate the parameter p in the NB distribution for these genes (we set it to a small value since we want to cover more over/underflow genes with low within-condition variation). You may try to tune this value (to a larger value) in the approximation by setting \verb+ApproxVal+ in \verb+EBTest()+ or \verb+EBMultiTest()+ function. \pagebreak \bibliographystyle{plain} \bibliography{lengetal} \end{document} EBSeq/vignettes/PlotExample.png0000644000175200017520000035665714516004476017540 0ustar00biocbuildbiocbuildPNG  IHDRyڴk pHYsHHFk> vpAg,KIDATxyeg?s,0 0((@YV-ff%X.Ǵ\,3sEs/4,+Em2qP`aֳo}x}>9ΰ sa~_꺮 0 0 0Cmwaaazaap@0 0 0Caaf=0 0 a8gaa!  0 0 3သaaa03 0 0zaap@0 0 0Caaf=0 0 a8gaa!  0 0 3သaaa03 0 0zaap@0 0 0Caaf=0 0 a8gaa!  0 0 3သaaa03 0 0zaap@0 0 0Caaf=0 0 a8gaa!  0 0 3သaaa03 0 0zav .\p+VXbܹsΝЂGXrʕ+gϞ={l|{՟}fΜ9ś^Y{'s;緶t}ٓل> qavx<o˗/_N]A_| ,X`޼yw\}O#>8t{5qEf͚5k,2B_ګ h{=ovlzOWသa]c0>O5zzò9s̙3mѢE-}O?O4 t8績3}dګܟIf_za |?'cdxC#.W30gwI,_ӽq<>ѵ{*V}=0k0x8T_ )tmTcG5i<?0ib2#.]tR}c0D0̾@mBW*/3e=+kw2&}kU.}vfသa]@] ([W^z`CLW *Q쎫XПcae V@g!I3ʕ5UP<ޢ\e*h=0 OB:4SoQqE_ z|M ^ =XWzx]z4ʜg8gfՋ=M6 {s@t,yCv*mBO#Ч# V@WuX){063 ]UZ;R#I%5zG{6Y=*21>]Wa]@zr侠e=8j{Ctz|M {*WW4_ef}4Q뾀:B c9gn0/hw6Y{' .\pٳgϞM=Xɫ==]K]_?Wٯ' aoˮ@:trx5凍F,_ӽ9Je.7}U^#^0 2v,Y@_ʃ>Pϊ[VF@W?0+tě#CwqHUFW03 ؙs #ܱ?խ {aǮ,_ӽCuAK_Wzu ws(?aaa!2 3dz{qu8}Dow{*-2 1{k^w}#s@03 0 0zaap@0 0 0Caaf=0 0 afGxxM6mڴia֭[n 7p 7 / ]]]]]]//<ԏ}w7{~ c$d2y^xtXjHp8뺮`.|>r\nʔ)SLFhtkWH$p\t:N~߿gm^,B*JR{}ݞ{~Ϸ{)|Sgv~Vmܸ~@G^yW\.۾&N8qj˖-[lO~;<a{{ S[0b… .\xŋ|7|swضm۶m۶nݺu֩SN:ux_WRɶGY|#`s-/~(s̙c8Hgaa\(l>( ZZ[u EYqVk!P~zaaf}{gXz͞(g(JKˬYRDRK.-͛75paactu%b9/~XQ~3eƌF؆ 0 0Tm74*aISͼy1 0 0`.t]Wtu!CZ[[[eʕ+E3 0 0{T*K#3GQziny=0 0 @> ,=PuAVY2k$7JTzC"?gΜ9sx<=0 oQlS[Kueliiiှ:3f͚5kz3 0 7o.{/ro=dt)03֣e 0 ]o5c2Ra*03ng%a޼y̓؆7 0̾BbTmhnﶶr!=+Ce_\WlC"Ⱎatw'bwJ&`}DC^S2.7iVe 0 }$ )oYh]BQV䦷Py21;@ܔѐ٠쵥[P#6݂(oٲ}X[_aݣy늀quMGD!m3f?ϸn廂Ru>@3z!J߁z'8ga6^ MZEMR]C6[*1J%.#Ǒ麪*뚦TC_4 M+6MSU5qq4-/4-JźxXTUMTjk;΂t 㮻CRWzŢ㸮l[ zEA%ι1Xr0 0 Ʋmb{LD+1;yiiii)<h8C0 0 STg)_.euڢiB$Z4c8(Ţ̘#Mboܶ]-PGGWaruu+W>Xqig8ccۆs[Qjkq:Q~N|1;+9ow߲e֭]fG\C00(%m`Uy}ykjZk ^ ƣ>.K*/b>VO+^1>=nF3 xǏ?V { YYf͚5kaf` .w-D*|lt]+/>]u!8@)$7$+].'-lO[ eil5j#F;V*9V](`:m>ٿ|3 *jo2Q&ɜzYgHM - g@O@`eEXb(a.]tϟ?ƌ3fX` 駟~i0 3 4NbWi>v䑟>(t_====V*J/3Ϝ|rpY͎3nO*^S Eq}'״x\`9cz0 0Lo%[*T[هuׅWh)P*t^r۴IZL6-9EӔ-Zź_LۃAv_qđGuiZߏ4H)뗾bҩu?}p@0ͻ#[Wvbc07_{G3fܸhfᮮN]mjkz[M׬??BXnh{-CK"qgecǎ(Js1ƍ1jԘ1}v3 ei:sϝw[vmk,\J(lU4φ ;;X,aR9gN:}z]-;;=uVz$sVZ(\Ǜmf6e;z A9,z8l+q84g*uoʖ;|'kcǍC0M۽^=Y*`*Juu㯼ƿeY>;wn&s#Gر~ڵ55'r==rbsر'hx]?{9BmmO6Dч-|6կb9_䦛w;;.{co-}ac ^Q.^6[(`iav#CEc^7`fA!\Wr#x.)_}0+\1u|G&\/(BXjZyٮX,DX,ڰ/?\SҴ5kb1:3ww׵,1.-_ԤɤaBxџ=O8!= ,HC{VK(XK./WWD}i*@=F]w(MŶ\WN.!>ahZ&vmi~.nbuL*իO:X 'O^S[~ ЃAO׳|޶7lhk[vڵk׬җN8ӲBi}>*w7"%)[4d;DtTjmu]]Xloذ 3̠v`0 qc[ڵf >lZᚚ; ndNھsLSU׮6ۄS=V_啗_Gd2w7ވLh XKEb1OZs{p@0 0^䴷>]ZToRwA*g~UU|KZp;miV[3ZչsO9eڴM֮M 4? c͚SOM.`>8~m8}3 el [_Ss饦iuuB=0 0Ln(J\v\ PїCWÿYf!t8aC8\_=O \pe_vmmBOx LN[Gy~jk6򜸪N'~o=oƍS];o^:}EYWxW]E78.LS Rt:a0h>^<){.N$=,VZd htմX 0?a= 0 x\{+QXV.``ۊR)qZГiZ>iLeXKGet끀eiZ:˕JEדIB4|rpQE/y* [C7_{ kd [:ۿNlh50 :S+xp7 ?|՗_~饻oǑg)L"D{CK6 uV&\ra|NjWUC3'  +VX-1 0{uuɤ{mBM;.8Ql{ئ?͛.`Ƕ`~pNjnww,NH6{睅iNvӧ{g}3qeܹsU Ǐ?~?3 / '۶}[@=[,@8t-6M[fv==GP>>󙞞EU3pptҷ^[/!?ܷ =0;fE( y͛7˘ 5'0/|޵^ 9וa Xmǩ т\rhaz>_.сʋtgx<=D&Ti bNZE0X""0tT#e,˶_~yذD_4J$BK.kA?.֕W2?p@0`˘ 3>tڬ9s̙3f 3 _:Ncc&HraK_bI'uu~,o?shߺ_?4ۮ`'ﺫ!:\tvFݖNgja!PKڅV<to(,X`,C3{0RR[ 5U9U|A>O-Uy ~ q|"7TW Ţ"OB OzE_*6> vo+ZRQ|rW^_]wa+< /뛚FhDK}41c_ c:|~ /}R,b֝uwu/烋OW bóo<ӟr`3!7)6RDY/z4.]tϟ?1 vC`ӟ0 ;o+|3_q PW7GfbQt>\ O8;ijZ{׮E5_JѨpvTuGJ$Tz%nOax38gz;TZZQEa51MP)SƏWX,wQ/_|r3gΜ9s`x{f[[&xCҾR}θC$ DR-VE ۊ"BP8֚[D fRuÐSC,ҥ>ߣo3Mv衇Rɶ( &LH&Ǝ][?on7N?J_G^,ϙs≧N$J]Y1|Çwv|2&JJ&cnO(igO D~~S8gz%PptC|f)#,g4sx=A9lKKKKK? H4[rm{"TW@CؾZz?}D W: xYJZK;t>/b&EֲLSӨG; FOOgH.w]x:cL$t+_ٿ2{ * ~P?=@>-xhѢE `FznVf4{}~x]Vo/ K4de٦nVUR*IWx8\/<+Jh AT{Æk8`C, rϖe%h*fvBq\v"oT*2drɒ# Oɓg?3͞ade˷uȮ~i3i EishYihp]ԷmۚoZS䓚 ΜTfh9^CۗF{C*S+8gAݑ+O@G? >\0{$7G5wW`ӛ䦚7݂ f#2ӣ"*;)%F~iz*%~el{_|K%K3BAJt CשK4꺦ՕhłlTrL;ߙ87nk;/mm5S߼s;u=cŊEۦ!Hny) [^hu{B;A( >D.8Ӧ8G>L`45ʄx@ +*4£,Gۇ9gAd-E8>PѳPFcw=sVh(NkڡYw(` 8J ik鞣>keF0 ł~p7{r_zS5>+J>EK䕽.^szpy!XM |(ŲPy#K/ 0 Dkjd 뚆=łAZCI/߯;zt"˝sĉߏgz ֡}͚K/H0dAibhAp0hرFsi~+6 5MCha)B ^1Ըc -M.I7pyuF /b_iV[?~z,Ay т0 jܫ䱖 ((V)hK'Ob'#Db|BRH|B"T|>+R,{[m|"d 'T*m|"tF+>QLf>\TJ$Y3/?d|TLP'b;-;:RBld۷ӹ>3bTں5ё[&,gnM&s9|f/[::|oFeydD6mÆ=Q==t!/pB{{*Ϸ3/J%zDk]]eP~6M;VJ&pN eău. hOZOy*'Ol~ 8V=]_Z]{C%Ђyggggg'Z0Q%:bw -] ~ɧa4u'L(2kmn>6}{/[de%žrժ~W8W0gR"}MTS׬d XrCցLy_fAWlC, >-Τ2T=ȣ&af/SHoV^/yx;UUPbۖ%IT.uM6q$;,-Zuy\eQ( L!ƔxK@Nǻ[Ğ#FSU.P4U5Xh dWjlo{.:jN:_t ?G϶Y9f˖m9-"PִWʯZ(7 U|^#:ŹWJgr4M+?[7/W8uA@];v}z)T`W q(o' 1 wJz}{ ^>};#֗+ wPgz1n}n۶h Jܹ6,\xaK|[<}e7|>UM$>Xӎ?FU_}uV]?U~1*?T￿Ux & ;st3 0E_z aU.WEѪs"E(x#FPNA$PUZ*f6Ea$$员,-`-вW9#ÊdQd))E98(E vEk(.\O[DQ*& hQ5iR:uk6`}oF|k-kҤ p>a15MӐ?aU}-[t6l,g4u]=ha(}h+f8w@̌+Fw䕥3 8GVNyS=MOOD6laNoiYZ5Ey^k].iYWfQ (-RH1~p9BI:ifŬxx@a+ZJ_y1B8FGG:](%u]*J )0M]O$y+ee ՅB.ǯ-;E]j#{lذ\_}y&NcAtzԨ1c^|ߘ7PH@P*Bדɏ4O8!ִ^kkso~7mq](G`N.(Ȁרr$",KQ4MN3r)iV>?ȀD\O/O郥5vNC7=y%0 0{SL+ƍ單.L$?~Æ N_"ٸ =x .PDjj#1qM{M4S|u+ag葏GwA\NjmiӮK.tX,ɓ]nj_ƶO>KE Cx Kh7l,B<@gJn}g֮]SN?5Ҵre߫;h߃L6&Bpߗ:У`)4^!a!;8իW^*>f)00؇# 0Pei<8ӦZxepDUCT!7瞭[7n\.+e"G^iKuxo#ԧ:n}+;i%p&a%PC_=VѵxE]〞ae֮mmmm?= 7_qJ`O?Fe w zK`Od<׿>X,*JM=9cԧtg #A wdjkkkkkzPǏ?~#ze^ zU _4;are:ůr!Eyao}u'-i%X姴473vرƵ9x,t׾/o*Z2>QLJlŗZOoiBI(QҊOi x4 D5-23;{vWGsR[{!_<_?{1l{l$>ǍӴ@(Ӧ|a+eO\kzD7P$ԩ:}gг;sP~] Cy Ze}(݈ f'4ztC>X`JZDQ,vB&q؟2_^dٟwx\޽{*$7H6䜣R؁}BA`:1 qޢX)_9O|⨣f8pA*|!ve(BI(}eiZ"͊<%L>2MM%Nj-ʳ)uuٙɈ2YzQ4|^bRd2[Յ==7|ͱXvږ-7|aW]%)|4ZS眳`A:](J8&ve]vYGmO쳹܃@,b^az|i`{k(XTP!J{;ڞ?bEmV'G7g΄ 7Es5 ooz{۹?5yޗ1⢋ 9䶶K/=;wyuy;dih ? ׍ ҷ=3tp@O)vGujߞ?`:aXFhէZ*JkkW P?pt'~۱ 0Cqc0\"?<^o 9Jm} li.7R<,Cp r@nRq >e9Bf0 CU4 Uŧe,]uamOdi  ai>ρei+OR @O>YW?ydwG?:{o3'y%SL\E">i ޶˒ TC?^ MB!g Fe ޟȫ 9>{e܍* 9^,:d8 Bԃ=\ye޼3eƌ})%q c䎉U0&;q- ,a7rMrSw-z附8z9ň񅯼h1 MӴbQPI *0Tm!AH)JO0"uŁ f4Օ L X `T Jb>|__ |h`W&0 * fu=.Njht߿K.D=}Kz]#]橧2moTzV@Ӽ>HrcRrֲp]3b1I)h7ɍzLQ2_ܑnag -ݵzw(a7̎JW -iavj;[,7Ti>xzU]qBT?}Fu ۸&L_~{O8Ϳ)sN{|pc tϧ==Osα,UM$:*ַuBql[܏%PyH3R2" L} >Hј#Y$"~rUźܫnw2` =c.?XC}F13B/Ӫ!3>}^N# 0ӟ&M|k\|)?~"!|_z+nAQQEҗNF5 U71iG Lev4'OE)5 ZP xK~:}}ů=uqc+cyaѧ!;a z Rpo?`rY"Js Q(BB[x ޮ2+Jfe"/8(}R pŘ 8 &~( -bӔRq< ׎cZ:*>Q_y@ 5,ri3(=7q7Z_iS/O<կtRg?2.}}\@%/k%JuBSYW ]LA~+CR;\[i밿ewPr,ӽ?#lt$7.J+;6$\ D^E{UDDž>?W2+ǧzmHP#+|>_(8BBA=2V*.p A &Z -to-B:ϧ==`/]]٬hfK%鞮(Ĉjj~ڶ->|$!͛\NlѲ [nѫ˧giԨX߼975Ԉ5McS/~Ғ͎Oi}C?񗿌>\$RSgu饟a\sMm[o'^}Ehl!' ʯ muE#B 2i :&Rp'?Rb$%7x/{`Q,B d'kwjs{C_ߢ w-q\avf.EpW_ߟL l8qM{A{&s2s <WrfC-qCf,WCU%7tDaO)[| )PElq]4 [GWJaYZJ MYY=.+Z+AUu#{4YZ F!q&Q GyT.cfŢQkTiJ-xO=D6yذpE֬ _}SO0_ 8}Iް᳟=ئ۴iT|n=״+hh}>d)zB) `P' iyƘ4knYT#ߩDGUfe_ -+߀?b};J aYϟ?|(ν)W|a=ϮS5RrS&{ q~5X h٩8Bh[C iy[ۺuk`yqZZr9*>Ȗ\N f 씞߯idR #7oْL Q 46F~b-ԙzxƌu뺺Y@aCww.ՅB+ymp9U1c.gęDjj6o3>!n-N7ٴ)qu}bmw=twȑ554{A;"Rx -r#]KE޷[,MC[/̀zNi0 0 üر?Ç?Y]]gYs)9@Ooj1b_5-xlm+>x{p@O'/% 0ЇzWߴeOY4Z9z[YQibfPdG; +-P9 #BE,i&l0Q=hA3ZB!юY]a٢i# cGVUUꊢ(˕JTr۶B_.d sX,@ me 'Top>60MM;VG/Z?[o?t55b4|[o]w]l/)l /~_7msŋ5S1"-d><g "W[:oiӲ]xbrLzwo"ywQ:T _[tJK W?w-[1 ]Kn}eh^#P5d3t(uS ;AN*6t:r-]r#Z'٬!0M]O&s9!,.aӲ%rX,+(0EAM=.=bD|>loOEI+Q*Θ<(`]n4S)1Ҁ ǏWnod2vlmm0Hd.dL_}[jjz衻Bdbh}6WGJ.YF0! A009,du#mۖ#JYϧizp@H@bu]Q%ߕ7K)S(ww*od\nP_S}" dB&aٗNOo|]>}q.+_A|Hi^H$N8g/{;o+#F ^_0bDs`? 8߱ էk;L<3O a#<+s޵?EGR+jy^TgRh{Hm+]kK%Yit?8:(ԑo$GG(uYۖ*Xm-0Ey&%gr-ܗFURWzaIQӕd.g= Jl/yɓ-8gʔnZs{z{kjlٸQQ]E9&zTm~p[IhRJeQ,34gWxz n+N=;K޷4CBe1wUsnJtVRy*aafʇZ#HO}uhB3Mp ]#G A SО}o:>1 _?Fd2ƍ?|U`smPSd+ ȟ}l\(LnvU;O[~_Q1imt:Ғ%]t{ 8Zfzl9!>r̃}8 0 _,)jyފ\2r"FgD8(K E"KTep)BLԴ|^U 1wZ'x/n]"(@UF"9h40 UUK%u]т7 (SbE+kf?Z3-A=,ZɡGo>zl"ϧcȒV_jk9-Q/J`\0_z-+7X%9RQSsSEяTjn~DRq꺪һ"0Sh6z0l[+i8idK<1ޫކ~1  0eƶkɃ њ3?:I}tI~lo~xsM7lظ1zSGQUF];֮Or)SF&~_y%&N8q#;rUafx]zTtMڇ*Z.YJ? ۏ|hq]ET',2k-K#`\Hqh)u}>MT" #s/AH>F"l躑lQUUm0Δqq)AVVzWceӋ.'~~PS߾uam(tM *O(RS(?}}yd]]($:>i JZkjh-8T6t4U5MC/WT0[/ʃ6,⊫Fޫ2\den<=]u #p@?r61df~`R0&oŶuKL${@@XE)GtL wCoۮ /c3):n wvf2B):;LS9& ]]JA#o1~SSM߿qlB9AN34j&COEA7vw IϰaemZ.)MȲgG<W_:e?ew;(A)SOmp/P(pBww6+eK%[Q6͢^i&8 -̺n-KuI*|k_;O-!>\βzz^.R(Z[WanYQ>1Ey5kfzK.1f5fر(}a1̙3gΜyիW A>{ٳgWG@L_>g 0I_o{+iE/H#EA7.8:-FmpEdWQ$P~-n2\pr\NzƣfMӶU4i%㸮̀EAq-ZA6n9l&# |HȒX,m:lQ`&w&&\ooyEo=cƺus.]Hw c+1-W77zk"qM*zόXO(ajitWriix;Dir4x`GyQGU~/G?ZL٩ޛzmSSah(;{ӌ8֢wo0 쫬_?y㏯[7ec54lxU_ s̝;Ԛ5~}};//N=ic,2 aX/I>#GkNx/_|x afOBlz_*ф˻b< Z͉﷬M\  |%ϧ۷R1c@`z:?n\mm )|T}˖DBmm҇Jn&Nlh֯kQJ /ǦEs^:~,9N6Jiĉ]溉>o.^˚6nj͖J"92.)CBk"!\ CPx &iZc>ն-5o;g|Za=2SUèAՄ`FzӒ[xhQlo۟ _,ϙ3gΜ9x#,v dq67w8޽MD0 0P*|K/}N'ӦW_}~)0ڦy-mS+V|+/ 3<4}!>+P#pG;,=f_>p0 nz\]ykoEҁ_p WI1-DO*3u=IE*u] ?iHj|i(,4MU˂亮 yIUPȵ[i% 80TUӐfK%ǑR]Fb#FHAK2˕J`٦hT5&@ 'Lss=;.DK8lYL.!;>~|}}(D#8 /D(OW{}۶+V(Jsc[OS'_}uCC `֍/1iTV |o; U t]M3ϧN4siJYz0LS޷ 9x*)/5 XgWn\SVJ/p~Nz4Nz=3x=Vopxh`w.ͩrIn*/}]ugR  l0meڵ *(lVΣFb~mɤl~>/oO0&HDN: ql[l1%HkC+=$_>1 qnaJ뺮i>HnbYY qXOU4|JPSM?J~.\p¾rΝ;w\a*T7}xP*,[ݖxGЉ~dK"TB`˧.Zjt:4 +~5]]_SˇsUW%pԨ.+Wn4|>P]TծqoXՒkyѡǀ3"(a:`P[(P~1[o0 s]6>A 1B Re|D_hKѐ yJVԗgEm(ᰮF*U(Jq\yz4MMK&eQWxI-r M4{zr91drM30M0EId( }>_jj槩GEU~ePUP= 9իgϾ-[&Ouf?/KƎuaOQ"\QVzkmk[8ǛUuvQFFof蝆;= \Y9ѰRI畮PyR;tp<)A_s,G>^f鯪r?vv΀34l4Ьީ8G]a[}_|E3 0eiӞxb˖Cɓ<O>\?:OQ+XGNxc"s.bm{AnS|ԭ[UaY@iŢmcpCq#J];^e:2OuzQ2+m"?] 8G N)^<2pVaxc* N.ԙ[T5C/*!rd H#{(FglfK%!F`ӓˉѨoY({5|PPlTJ$::2p߰[e]]bG{OKWfMGG&B%7(ܼG '{Bu'64oys"ɓ7ظQT45bM<1y-[DY-۷zf͌7h\$^(J 0ȑ鴢n.(emڴhQ4MzŅ,=Qt}vqNLiju:;Y<%GLF\x<ƲaM20 ʐ%<׿PhI.> ,˲fɒ\nu.?Mg|aaFb}F2†-ȵS#?Msd1ˍ)тltyF_U+}]",wAF_*J(cW,c/ 򫙌ݢ5.l+0lqbYX+:og[LXfQ+$&Z0TT%4CLf2"]Hd2zKFAm$-({dFx?+4l6'|rɒdr˖YQ"`PQGU 喭[FO q]Zĝ8+!nk!GA92ZZ;zabr]G]j>If̾ ӭol_rةaaA?}$NG/[{!@b#[}fmy%_H!/F@N!AŔUrt_rrElW(.bglxd2't%h4oIULPt²:DG{ gUQH?7CrL 5|߮=0 3h~;+y`2B8R>o>MSۊeRi-P3l6E55R- ~<.\3BAdyb8 KZ?ÇG">e:az4xFbG-d.g1EZ&[[+\~PՖP~g@&NEȔO"lTBXuuђNJ]eQlySh}=[[?K/E Yӭ*ʁNZSc_\_ﺊilr׊j׿~qQ9n `"EQ1 ],67 ]ySu<D~=3~+/rXnmY>Tex\9\{|}oYFkL/z :TTuaSapD 0C(* E&v  J\! Ew|^dNu]\>-ޢXtVtLTѨU"ݺ5-7FVZV[[ Zƍ==\8l_( 4By} cv9w,="y3,0=: 0 -kÆNQZZ*ɓGDxcÆL:jTMͫuwuWPF 6nfs[ӟBK$F/p˖_9RT ƌc](yoh\v׿~%m[*G2d;;-Kh `Y62ߚP1(d)a===4-wϧi8az$E,Q-4Y(+ߢh7!f9weIkw+^#p> /<傠Gc(xؽugafڵp! kkWf`5t(ڡ"ܹsΝ {Mh}dWX^>JMWS!WT,+ "'@aR7e FkKRq= PW҃z$F P,i:E~iDM/((ǥ@ybH@6.IuB!f u^*J=lX$"DA]*9DAhIs9ڶ66FB#([Ay44Z6w…'SO]{m4zG*J,(?1\}}m sO6{O=xg>sL(65U(cENສÇGT8jrVWP`в9,Ѩ/""PUkiů9pg`es)-eoAR;/DnJys>aBmɤ`)E-d˄ p[[gmm鴐j7l"6)MMu۷Kѣckm.^>#GMs~{ŢߟL_>jT"ϼvWW"LPW|g?[s>[V21cTUQ |dBg~DB\ّ#c1UM&sbM߯빜q0߯iQ((ÖeTȤ>aP΢(i2k?ӠZzԔ^x6ƀbWXb ,#>aaB :{CVz%K,7n0AQƌQK/;V>ɖ&c__wҥEV9i`8gϞ={l,{Kf"$U 0;O3AQn"ɫи.-+d d4>Z2!TQ\Wi!xlj:],bGp]MKe.6e#3p&,fUUUˋ)a˲m8|8>v*eb6F:-4 Nrh>KL&s@4빜<\βlVΊJ bQCJ*uKG ',YL$r!=tMG;r'}<͸UZ?L_ 83gΜ9s^p… !A{.aa(3z5^ ] 5pS_y*GA G: g|TE@[CL- Bifm f_:!2Fo#/Q0ql =?T0qDBQmmaթjn].ɌWW PȲ6o3Жɓ[[ĉ +A(ֶ}45~U^Sc5k6oN$2cFKK]ڵ[$qw_2>a76-[v%775uv*J*5{q>iiBbk?\xG?z`"!ʂ"@4iq$&"+Uo(Jss(V,ә̄ кuRrS_&uܔKh:)]f5[Br㺶-Y[I_ymmRrC 2fL<ښLn3oWJcǶa*QIDAT}͛ѡѡ(T,fYvӦ _'u۾aÂHdM'*Lmm$o&6ܴ˖X fjG|lVpLS| L0+,àwu!*`4u5ƶ4WiCfCSMnP,m- lga? `rȣ;Ļ>m)4V(0AEȕi4(#/dۄ!fy#**-nVWjUw9\}m74l:bċ/}wӞ͡a<̙5jTS 'ݴ֯61]37-JT4t3o[ :?:r@o3̙3gΜյzիWI`a>*Jy "2x-V54" \ JԀA\8ÕfC!]dX@@Uu=3;| q~i* C\NI3Ѩ yAӤs 2C/v5MUi]W &Zr9˲R4'EMD|LF1a{34\7f[ˊ-+fydK%Ϻ FBPE\c׮}3Xضd2Κ6mNxRCeio~FQ[+B' ,yÛq~{O.Be!~rHY"8:ϗJRɶmB_ץKaz(}y+('55iOafPCٿEo3egX(8-M&3b7MMCa RcLg2\$r3zt]]($;Nss}}(e1w_wY>jL80 S$4X^2;pfb)4 lLP  O%7ȶlg˖D"YDkYmoYAͳY)jn;;Eq -Z]rC-kƮ.QR[ ]m[*8@`Y,nߞJx`cc$ںy(QEغ~bϋ3&\96lاN5fkmGzkt/뭭YOz`8[tvYuuuMP0GQgɒ{?cCULfܸh#A\5D">6(}LF:4H0V^|aa;l֝wUW!7KUu۶H4ɓMsҤhTQLknɒo_c/>2|_bŊ+,;w R#pG;fEv>|aw>W{'}}VzBXc8N(Ŕ>+e x D(5M)uǶ-KJ S97FF3BUlTr_ k˻D"4vZH(`=LX -KׅF "Êܰ'B.:vD>_ʊƎ WںUQ;[䆺C0a`ڴ);6*l_}ӦɓW_]1%u/(+>}x-S67/ގ+n۶-eK's۷KTND+˽>|:]ͣݻE{:]s>5BukEQI:i2RS~?ٿMUlih0o?߲::&Oƶw>Ql̚VkCz_WD|S;,""4U PV/sb8ӆ[Çׅw Z, >n?b- RV/fogEf͚5kkipOfi0 0q>+ nZ#Q7|:̩S;N2L/\Pm͚pӦ+c:gϞ={l 4 ZΝ;w\p .\p!{oP_____.T 07[:oj3z~Hh+b"O5ȗ# mKrX*A| P*ٶJO&#sF2ߜNMsDgggi==L4:z4ˢt12meᡢr54ݝ (rEe"!alVlGOr96yb-+oh0lWzz"h&g2\H ({z\. L bX,2DBL۴qx}W</Iyd^;pl 1SyMZ[{IGyM.X(;[n0lgKаa(G8(]5M< 0> &.X `YgiwG,c1ϲXiRz=JTy*z\(/Ͳt]U齊轇,X+`sчnҶ{W7sTg{ˀ%78ooR^<_/&x 3 +)_[B((<[BVhI(ӒVM3 U|屌6mJ$V.q\.* -[l#QoY#JnPDiSwvkkAܼYZZ(#8qذP77lH$2eJcc$]L&C_ok81sR)-^xalvѣc^ZZ$b1:_*G l~#'ׯ^],.Xp睎sCiܬiKpԴz_?vlcc,v֭+_2ƏFeժִ'<\EY(2K׮f?)S ^ZF$ @@6(--hkt֟1#4MzdQ46z{{:-`C> [|uG"iD6+R0h +f߯TNo%*9_`->TTv CuX,{`,Ǒ駟~iA?LhZ= 0 äR#G^](qW >g2 .bU}ѣߊ|>]SO6&MJw]JQs˒L&+nrOzaKyw^cJ 6}s} 0;^߶QSIH_ yʹ0UrlqHhdo&(Td q{zdqqIYr녂㘦nOJttXLenVT ="\JrͯRb>/vuRm,u]ۖg5$HyJ8mvX(nO8RҬmO ,O;)3[n9ᄆ_m[dЩ/˄ arqrHK xG :ǹ.UմhTQfͺ 2];VU5Me g*I%l}bYRr!ZKӦ-aWX|>YB]*+$_u)Qoh 5b+b0EedŖ 'y.ZƝ{?d?s̙3g?~Pfwa{A8Okz >E*?>>d@mtBͯBُO,rd,ckHOo Ch }F@K-@bZ,ٽL`e?T 1|e}]iG? uE)wJrݯ~xc&L7^{{?~/iӘ1Mrb/E3x BH=9>QP_~*Jyܞt9v9=Sym7RX&,[@NP반f Tww4Z*%7PED==BӌE[m2SuFoӣ;."W\Cp(X=盚R[HIJlrUO&lqM{?_Pߺ?3K$nPSlݝ`ؓN:蠺 g1"dY#Eygu]2Ŷ-{7gQ:|x< vvJEaPwlm]uL;۶㑈 0Y96L${`P|>Qp(Ȩc -KӠkǵF-Ke{V;0D架CFE9/O[\UWx/Ʃz`*2%2B*Ρ`0 (Qؔ*~S%uf5A m!r fEo"aM$r9|W2۷p9*BAU ի\#ƍ zK:zt,mt6tv2܆PȲ6n-TBy[_{m:>:uԨ^ZFP9w֑#c@`ZYҊ^ye͚WUUsoժC7Wںnj֭E}ɿm4w3Ϩj2 Ʋe_b*|>x;l܈6q/{[.YrpYӧݽm[GG,_pl;wkaLb7׿~sW^?v|bg0M]‡-`8,L0qWɭZZ#yWF~X9wNX  k4n(Aq4󕗀í-28M4: 2|&젇p)m‡:2e_i5C_96,Eh7(fEN}jO90 0LuBLX[nA(i7zi~{|>7#Դ?̙3:k5kb3Θ3GQ}wR co^{?fa>=xxH7̎a3PxﷄZjiEX@J^Us9Y| 1 "m;N8" yE8Y)I &==2w7t #驯WtwlyKY M"͖J8:m( bߤ&.03p3n!dyhУXQ4FWW:ϏWScFҊ0ִ">޺߼npxŊO|bĈ.Ӥx8wu%Aw/p@4jY{sUW]twv.^{l2kt矟H᰸ig55@2)cCCmm8L䨪i&qebpX@4F-MMx @uu,y1 ]h\ͣg8lYB|ȯUq e?bY^HR&)6tm ؇Bx:(]HvgUT# Lzw|#J-IP_y45 hAXC5d!BASmRÖe6Hw*9kkH[f=s|޲ Xܶ-0֎__ [![Zt φ }ذp۰SPA]mpt9ѣkjk{uͨQx f?ujss_i*Jkƍ--uuk_osXQ*͙b5yէR,֦(8o )SFƍFf֬Iv뭷wߍk =6|뛛;7kj"uoGmY~e)J274b5|x4i*ÑQ BA>2 YVGGcByݩIf&#݊du)t=09TU+`&TU(`P+Jx+Kື *GKB0{?;C"@S`>0 /L5z+By͚1c,?_in,E͘1bB;:m.i(Kg5zt}WJ_=lG~vwgBiv 7G/Ne諃NCl 0jHr`W޶G8 }\k v-ȵF^-uUKfitM2 ]HhGU;: $ZUuL&;OUmP?}6[,BT|>ol67B􂵅eFe:m)e[+y?X7r-2[, Prf2[(ضouzC}O!h,2 ?}~im 7`04C!y'CC 1˰ӻy 64 1>2{뚖ͦ==曯 _|tz`Y,ȥkdGl*iy~z:6(aav f2+VvwJ&>l,^/K/(Ç=™gΘ1zWϞ}x `ǿk|Bt뭟>v^]]L0/ξ|衷v?>T@OurA<avrXKp3pR+_w(KRui&n:ii <~:'1k8'FK ǩ A\[+~,">\Trpa(2x8QSB45Mlo3b1!,A6}x\RLhF"U:zt]hI&S)t.W,b2)ql۶njihǺ~:_X Hf<8g&155~6 >5~y6jTOO>_*˖կN9K_: /|l6u]Gp)b%0DMSUzQe|ĤP'Zpg¹ NI|devw}x|EK$˂v 6cB0g6}aG>gwl'uׯ_ʯ[ysWa55zܹ:}ȑK/mW\qU_=꫿gFL裗,?g׬ih;vԨ`pݺvq'N=:\^?s9nlFnhܸ#MseLץ+N]]${w-FغaXV6+P~[#G\-U~(E鞄Yg\ND_"fŲ)|׉ f}_K>TBC3}hC :iWŢaٟqC}bo6n1]V8z_34_E3?1cs2%,?_~iɒEBd .K_~ hf=g}݉EdSCsIj:t)fw> _yo2!.Z0+1"@Bu޶eK6[,(UEA+Ȥ,(&ttMƶen.W*!M}U;cBTeŶKKҼf P,&G|/&55XRQQ4.ZJ x|sx˳.eKOO:χB>aՅÖukgUbe'"H$L8F*amƍGm>O׿{lC|KGzssÇt]7M]ܯRXwAT2jTMG+ uUVUyW)T)X ʐaq бe ͑/7d+_/@oe;Sŋ/^L[XB0 7зkMx@WA9][)2,SmOTRMeՕϋP8 c&>i['TrИ fFD,& BڼYx74BqȑPںm[*E%4SUS7ذGHnD a}X戮r3ujss,˫W̌--uu/75:zux#FtthڻiK~K/Z~}>?zt(9N Koi0r&/~qhKK]]8K6tv^sw<ĝw_wJbw8} 7Lr=w\TS}?g?7q/mi(%#GR_ F]^BǛi3F">{ɳ˪˜t -c1Ҭv`F=m ]tZ fY?0#=jNxTK6{Frz roJKn6 pUaT?4@o 2W@s^^~`;~-}&^lk_{i|n$D?>{v>]R~*(V/gu!MMgqahg7߼7xȑ~SqēO~dђHPAغ/w|>]a7״pg_ggx8ӧnT[kYW^y #Flp!kvv"ǟ˅æ(J*Jhqg>3iRcckkGG*uy< O>yko~:ܖ7||p1c6oxSxW]Wp802xe L8==2䯩DdR_[|==^F}N(US##HP4s9YL8_?g.-2 ]/d x -f- e҉3:Gi꺮[.LsՊb5۷sw<%޳Ϟu]]}_/BÇL>f̦MwϘq}vi([ bFKQ,E QM*TnR)PgQ*̣lT/DQ'(jRIf= [ioOE|[ђH|yGG:](`tPṁIX^JșS<==RĂ\,fT`TJCB?DWdIkjJT.W,]J36+J%dkђrŢibOEQl6,+u;H6}7:>ɞL 쐈 XYԪ(K+XGR kP7놊KU6mjPȞu2޹?3$ZqK{}xss>vqᰪƍ&]Nx<'AWp5GOݑiʕ|p@Suu7>PyyG2ܷ)*Zꤓ.`v%7{?:jÆ>;{ٲe|ۻ1ZF(HR˲$ta, 8QájXpHɒ8+R̉e|̽^Uy0BEیGU1ؚ5eǝb{W!i y̓܁]aKȎGRk7G(ք &L|&"L_jB::Q 9[pv6H%v0ߏ)1&Z,o_[hZ!Ď8 >Öt[QxKZKJNYÇO;fmllo6m{9s„|M?=thߺwjj6lqt>(+l삂3nnִի.|ꩩSwؼyޒ~≉#njO>ٿv+*FPC EIB(8v ! C4QZE%: $:'e37a„ &zR,ذA}]D,{SYG:I/1cKN>"Vmٲgs]S{?O~kժqy=k/߼+Lٵ6'x5 ʘ0a 37a„c#XJ~xOcM*e 4 XW` H~P')4dahaB!\b&^HB(#q<&I2H~ww8HP(I&Ɉ xӧRГaq ; >&)DF===H|8$1LkkO3,}[KKnEfF1IzVQlh=D ζXilD\I,1"?f۹ "N,3la.hзuݱ3Sla%55--h{l/޸}u dLI&sryO,˲p?i=neY&~OE\t=nWV ďfBo„ &L|PH$馇jo3f^nix8'9al:t;k֜w^e9FH"qEO?WW' .hhؾaѢ©S?8+k̘#ps+*>dҳS?K.Sc}L0GB;a0a5f.s4eՑ|w`KATڛkrJ(4b@,s$D*E X,Rh͆@2T@].EA]?@X <[*c!Єrs1C; X UyI\"6 V,m0 9`i@.xTJUaO?>'/a"EDPDJ%>׋HD'Y6̞}Yv$]S~[嗭YYc|S#Gvw77|zU̲GiǣvŢ(g|gor]~.\ fg|F"q"I<jM˲ł(7NQ SZiN,0,[RmfXyg,qDzn7Hy9ivՊ\6$,\WAk{L Պ%Yh~PhD@ qGwIC?/?``gLaVM0a}Ϥ'Lxad< 'Azi{a@&ptG-ǡ)4657h<<H ÆZjȑGmmk+"@*OqG*EJSn\.B3jTqyPKK |!ԴK/}e]>_E?0#҆<8;_3GN(-zU[ݻl믣i== wo~'o Fr)..*⸺V%I E$0GQ8J &tTsrΖ@ ;lY*Bt q,.3d"z"i(ieii^p2! lK:D0CMo-Nс۟$GI9̔Ǐ>7nDo߾}vt:ꫯ; ~?y~am۶m۶X &L0uJwo"qUOHY'_w:vlgpBuWL[@^/8gď }ԜL!5/-----?o޼yA?nܸqAZXbŊ 0aķ>bǓ_JAB]>ɒ]WA a_yIh:L$PeT ahTqM3@ E3,äRdoW=F"=n!k;fHk(\<&8BV{zBDB1%}u]ӀCӚG P(4<> .xyM=!q/4}s洶vvB_D"D9K5-X|×.=!C j֭쳟RS8YSWiӜ9H0\,7x?)*F O;۲%eƌ?yΜprs)eQ=>Z5!B E 4˲, "JbMa@9h3b;Ghaj B~;Lk.㱳TECIaYF ̐[?TQ&F a9@3᨟_|_|>?C=P< ??ӦM6m:ֻo„ ?$ބ"}oqҍx0=HxY8!9N!?#@..=g,ˇ^8żo^\ dy,z,{<,?1y6^z̑#KK].U⋎Pׯ-[u# +*"V֔(j͢ESTWrV'IaEQOs-}-`4*˫VεVWtepO$A?r`yih2Ǒ06EM ˆp8H'"$A*޾4MӚI+C 6({{W'&L G+K%%_Og0x<OGGG2S3a _š=>=Nq3DzH\QH`0K& X6p8H~r` mD$ƮP(4Nlj =sE['`#$ 1A=]VQdYo8x|TӭE1:7KÀqf=+J(p_ӦY,>;gH U~h֠i%&]}uEEAD~x۶쳦./uǎ[n䓗^">oȐ3H$ThSx,9 sx#Ddyٲ믹08nذw].jZY&SXa$ B%EY,d99~h =fed)IWxE$Eeb27ζZҠ(X8֣5"ϣ(ExЂyxȊ+;:v&./邏뭨@ @1?9C?aܭ[Azwuya#F&uummv;uu~?P\\\laa1Y,)a u]9>_~˵o_[/*㸎Hct=E fi*|V&˝1eTJ׳YI,a½RmC!ޟ_y 2" (7)= ~/@;2N&$NI+o%$%:0ϱ}&L0a#:mے_⩧b1%f?<8{Yl6I<(,8t҉ʜNYkߚe~{Ϟ:wu56^嗯RY ]) 5 w9w֭~($I /\sMuum-EQ\| &uB;HZW\rJx%1p0X &L|[ =#R5B < W7hatq,y<$*ㆡ==xLGG4+OvY @$DrcIʍ)Ԅ#$妼<'jkoGV#Fl55|"݆n锛ZL5n=|y1cJJCRHI ÔWW_tуyy55 s@QǭYsE>TV~ISSSǒC\k̜9l_~Ϛ-{ݻ1W]]s3",_^_{K>[*;^}|׮],:V$.<Խ{*guյ\Q1r$ǁ ax_^!07jmoT~?\. D"t"*χعFaLeT zh:<<@LeRfq!+czRI{ox&:ykHӯ!0 ]X &L)BO<;[oݺ/JJ@gذ2>|(^XX8}-VkAm…Ӧݻf͕W" T!?GԄ _S u06P*ʛ0a⇈+pL,!BPoFI+EcOT)Q34T;CuVnP{0' 6@A[4^h"\geH@2H::4dUtcEVJ.o94$7~۷s\8miI7y A#}6a7rɴLX?&L0a(-klgCfaÆ}K.<) H@=~ғN*.^}>wAF˗76_K67 9Pk-;JH^GKΜmJW3 5aߚm%0Ɉcc„vjQ, ;Ò+t9AܲsOO2i+H,늂łɞx\Ia,iv+ )B5 bpJX'.r5-/\p8+)i`% P(N$b-Lcڵ۶ׯ[w@gg<麦͞յo־ݞH YG^޼yӧԤR6EuvuvHNptӌ_yiwWUdgϘryѨ$Qˢsxήo(+Hd@m6J5YXX6L$IHqg4/f >0A-NEo}&d:dфoЃ͑H`I@87a„ ?&\[[srfǎax"E׋:;) 31JJIZ 9R'3|Ol9t%|yC/]d|ժHdəg9 ׋RHDMn &Q' DbŊ+V@ CrY,0fLqC{uw3 VVz<6,gyy<睛7];|xWWC~QT?ysl).3J(v8)'FVEEX*+fxs;㏿7y_2++;[JKEb apϻ\YYrx6q =$ -2采Ḧ́ބ OdzdFI67$dx{aIHy QioFk 4jm]P%::R#r޽--Q\l矷')7V$wt lUIN2fF,(p8vEc;jjPt5Sn<!2bDy9WU͚׿'oFӡ_eeB'VU҂(+KQW쳳g:{vyyNXOZ|0(lY9W=e &Mz"^#z"pj<~?ԴyEEwW]7BvcS@,6uFzϼnv|&zh<̎_ &|[3]qL0aXa`k<-@zaAFqULŀrCV%a|0HV&¾0Z PX bx\GKI_yeb1Mˬ;qBKXʓuY84QUA`YOWBԩ[&SO|Yfɤ"y ~'CWmn~Ɩ-[?|0Bkw|P59N.xРsٲbχ`kI21v8,TꭷnWom]Ǝ]L)/4wxɣ0c(JQl6 Tv8vUE?yQi8EE8fSh]..Iz-*)4n*O7 bZ9iұ>&Lazʃ_|y0a⧋̊{Vt+t]w$A3.F@[{$L꺪b!pm6\+4۲;4tB+N&E8XLhṹH ۑ#m6c"X,"'|B\G|ܸR$ߴ; EJDɤ(l޽?a664x+\{mnn{99AEEv>iN$}EWW$r=۷77R99v{^#F"W_M_|;ggƌ>&O7<zzXjzvۍ!D**JK5/5k v8q+Ə5 mpX,ǏU\ D0@DRVՊD$Ms\NNVL0t()l1~!pX,hY`g mYa,QdY(pX,sTUA rv6)Ezp|zU]i,0 Te8UnI,W|?I'MٿqIM*bw;שF3w=EQ՘NQ/\8vlnwVVfelV}aM#B/ee{[ow_ee(D==(\PRm"ݡPu_46f^W>_^U[1䒵kNUVzO\'O:4V?~Ѳ'Y&DSVt6667# 'Ȳ$}YCC0\%I òwG 8]AWZ,#J c BSl6ExcMu42~,yQ$}VAy(2 ˒]@ڀ6RUSsСC6fLqqqqII^ vi0|\BG6["u|4g$X3f  5UU--e|P_e'>Fq# /ݲsV{(jU^˖L<|x"rhr/0mTFTjiv^fDY'gx> m(\{z4-]JӢ1 0'|J1 J,#T2I,+,7CH7I8zۣ_FKKkj!OKu=,1sΠANҥc U>vժ>+--,RhE"/[{sA=-+kԨXaXvƌ/p[֎ΙIy%i'/zbl@d( E#p) @ZxB904m+YG;a\ud c14\ xuM,Ð~p}5iŸBQW暽Mr&~|M|x<OGGGGGDZ&~m3W$}$@MY2 y`H`.2R!oh'1p28pfd˞NlR dj=G@x* rŲAd 4tvT0^7~$uX>*==H2 mb[[w7j;i#G{w& }4}zy CE_QɤR~#F\pf[[lC,]Qۻskm6Z{'yƍӧϞaî] l-,uvEF㳲NbQI)S^}Oܴ)Wzŋko( 'P"JY,"YY. cv\v{g'VJD"ÀP8I$R)fCxfz<Kgg(Hb<^Td$wG"Np"XLxGT7K=UhѳVA9p5lB(R "` o)~4#>AnNns=@Kΐ. <HZSb{?@J)B 䙯mk*&L8IsE)0zdR #=ƂWp&=Y6*c0([Zp'IqЏ"==hU9 mjxcSn6oUU Q99kW}}w7lY7w:"n2T 3s:H&M{h { (E,ygҤ*joǽb6guׄ 99T3zSN)..|睧Ço'U&<{I#Fȗ_ֶp!%ÆVW ի/|Ox"q[|4jrK0LMϧ`^[w٥V ]c('LJB[k^W@@?Pv7bߗի,x+2eΪڜ미F=^L0ahT L9.0a⧀X}_L\Ꜥ#"z 9U㚦3=|1D"a$mt< ɤa m!a!:DXLӼ^qF H$uO$t'2 ((pLIz`CU_X GH$M&ynv.4Zƌy?1 8@"Ǔ.:4;{ɒ,]YG>{vhow:ee}l~ޒ%vm`'}Gegr 'p KaevEnv/?え*msύG r ??~ LZ>_~>.e}|R,dq>_^ҕiMtiiNOXeUnļ(ܰZ,8cxfdgB #8w8y1`s0kmǣ=R""X@s8 ' $%9KQ0ݣH-pȦp2-%Л0ݡ߄5쐚~駟~[1vSrߞ̑e뽣0a{zKP!qG =)08I >Z#AdXىR qx`76h.W_I5$ekhDK].IF40\ssrh4mΜ_?p7wFtnhhn^߾ʦ<˫VxeEES$>0Bٙ^xÇ7;k׾~eeןvЫ||mkC₂V(QTU trzq rs]&$U$qxOY,ڊ)4٪ՕL*Eih)d2'VLq,QWβ LSh2KR8$ڡPrP#kP#{=9\>೮Ð.ڶu⼼3<|XQT.g9RC׮ݵmٲ-[jjq]-mmv{ ZyQZzCΝ[Z[RBQ݈CpW(jʔCwᆩS_xR+6n?_~y L(졎+rEtTOXA< ϋ"6$?-ѱeAPUFy^UUU$I C80VYyEE0\}I| >=WUgx\p_ +/:Ƣf\c*qص&c g\G7d՜~|U?<un5jC#WIbJrX &L|hj7ѓNz]UUQ?RTII_ߚ={`}͚i NIUߖeF 7/?p\vV2jUQ˖ȱp)q?oCdѢ:쪪I(POY&L>'Cr\.~gYYYYY<$tuuu!v E@V39`rmB5DBӠ)t=%yUD̒񱘮z8+MM`<uǞx\סo*9mJ91ZHpǝk1  IyFqMBB>IJ~8HxL  56Λww x-)#N Bgg06/5a@ [n-[#h4K$dh joᆳ[׬9U܃AQT_ꤓ.?2tjtf< +,Z7lض}ٲ37mɓn c1U]'fϞٺhz9Msϓbiy,( eeY9.+@ A\=}Yjc$;^\%Dyy:[,@$ =)TUA`aC:qiK xn|:}!UQ8%55z$lEۀ3 }v}uEi[9 ~B>ƍ7nVJ}~ofs?&L&|E=0"XH"WHt`d,E{F1}E #"q&IB\yQԄzC Uyml5'bC4,UD>R&H`!cرEE)1nmmEW>;{ȐPhAjWWtR*f 0Pp`pi.6njmD-ڴ a̞ܼmۚ5{әL٪?qƌk}D:;Q)(<7Y\tm6MK&u[_ɓjow:7߼喷ڹs8ryDIS_y޽_Cs疗eeQE! &L|?5kkc G–Ëo3@BoZX02 6y̓IBJoa<"W^ӒI"uHRoGsUE4 @$.d*UPeahF-^hRV+6,7Ep8Yd8iHoaJǍYTp@V3 bd2//쳽{/pJMPw.Υ(E1 8a*ʟ4nә#I,uuG"yys穧M;x<+WNte[TTTVREy<6$UVz0xrЂ|iv8,솆5rrl^8G> JK}>EZm6rb4mWV(Bo`UX9be٬,,|v˅|q$zvUEYFw`VUQdx\ nXyEglX,q5i)\VKQxfþ* v$EAOb&]į` *Γ$PgA E4-<3 iXeYN8݇iߏ'G i,̙nQۆ$GN1š88ad Hw 5 c GrHI=2a⧀ 6T)*r/I_jW8(&@cN<硝D:;QLEkj _`Wx; @)un?oiAW6$#'f 6 ܹF*(!OeK8|k2L8EE?~M;rdGEutzfSM; A>@I }(&SuB,|$u!<9V^0܄D>a ? ̰ƦK-!Ȝ+4#8}j07YGcS7oT^U7r(ܸ f.|p;'Lz!r۷wt@*$ 5}s׮-(0aٲ38Yz3' EÀ;W3gzo9w}ӦQE r 3 [-,JL# ~LI9L|39{w$߽Vy̟^o^zߝ׿u׭͙sE @0Pz24*PɆ4@J!;݆6xz|j7&bX,"IХw|+'O޾eyƌ_ aF8"qhN)snZ9+ } 8@8"==<& ϳA8MĤߑ9% C>0`WxٿϞ;ឞ`|ѢgͺŋoN?VoO=} u|TVVV9~܋/rP d2am+=dž|$&LME0vNQ4Mc^( a)TeYQ2 Fσ'8T?VBUDJIbBPZ|߇ǒVQmbWT#Ik<k7Cr̞h49#,UU3+X2ݿ/L<׮.u:EQQH&ud0Y^dpuʔlIڷ/H&]x\EqreҤ={ny۶5kX Ʒm+*5>DǏs8[ki"HhZvӉdV#Fg{曧O_z f۶7߼Z7'jzsr(VUxx~RYZMEVQ&L6,'"Nͦ(& q u8,t4&7VU5 òxq@X]QDbfjűcyG]iAi.bz @ ~`WUIJ&ujdRvEZ%evQ!3ݎ恳 ֐0YmvYyOvu7&Ǎ7g4#ŬzOoGH*;7?Zמj|oYI1qlq =P}LI )6=ֻ9Lʍ <}ʓҿk+2h `+^I:ͤ|"a`vSS0>aϞÇQښw/;-lnYyWV={<Dh$3TWrs[O=t%Kofy$#GZwQYTVzЂoYSl(u=\_}u}\39,\tNDQ=mfΪ(/#E>_k|O> ׵k?/~s-..(ֶ6?bDQfRϣrI,յ8uqC®]>_vպ[ɖlc,C` @Q#Gr —_*I 5 LQU8R/6$!|T }<=p" od[(Ei&5{ 9|8:i&'r틢|32&L|8fA \yR2ϔum-Q{gvU0a^\\S tJj((3gRYl6SNzGp:EGw>THk|rΜ*lYy̙w|Ywoc7ߗ 'MZf_ʕ6͟m׃xׄ &~8ꄞqrHOK&~駟~:`KĶLIJm۶m۶m3nL8Z ޱm(3ed.ǒV@$}a@$^HF*'ka3}3~ #FIm#Y1opnj(G4Te) ĵEQ jr$QdYCdX,(2D0h'q<('gYeYFs =\ rKAV,Ї"@R8DDQ(e*Ნ I.?CtyGVdWuiO>&O2SY7 ͏>$I+I|O:^̓ެʛ8` V\y5lHy"6KXX \e'i6-f=2aD&f m$Ǿ#[ßOa(J"o{HVȈ(!2 3s I G!#dFwwwvo~>W#|;㑤_?眒HoO;: 1}uʿrnne={eCjʼn@Eb/xw |UU]]~I'XxquuCC~"ˢ;e̗Fi ZHQi4'. م?{",xԞ #d$}(-<❣?>߅?Q&Br$Ptv"2't(w*yaU}]';-E>3UK2yOoԗk;eupuhnLw?M|##pw.ך*aO ?D "9"39ǃS DQ\bfH$u<5:Euua/@ EK$%)78$7W^9$@t')7qRbiZt]!.G Z,. $²2媫 X/ZeKcc5jNӿ}uSO]yemAQ-=֯zG(H>Ⱦ*E}O޶׿:WNEF׬_ǍCU-b(QrOUU;;xQE[EaHxnWYFWe)JKKOA\abHTI\y:"ȵ>]D "-[iZ1 '`{yUUgMQϚ0aO_3y+LIrLK}7 E߄x30-,MGrRAK!B qRfxd].ڡ g0:! U]Bu/5-rqxhk۾#1{w/qdGFpôi] ,|EQH4+(r{/'a|s= / ^'TRwv[o]rɞ=9v;|yy.pWbY/)C7/-͵ rl4pX,pŢ(R40`Ff8^UERi"B|^ [XO|zY|2("zL`>|o-;2gvR&~8ꄞ4<u2Vx vR ac&L|1GM<$dzғd ېau}`AO&6 }?I&r$rCQ4}p0 zzИΞ锤\Յ"dRnm6Q$]˳U;͓yy$ֶB^#)lqV5_bvuQ'):6yrA7fBU~ɒm⋎+8tWzI]Mx]T\qTWw0r!]].뭭mmEkv:UTi͚ .xƗ_3f_p׮:3q:].UtnՅ/+ϗ|T].YP(7H0zz;œ/,#;ǰHQT w(*RAhk<dv&I0Zg~)˭l6$T1AhI(F"y\8]O8I]D"LX8IBY|̷r:%YjӦS-{3|\s?T,Xpg}Ջ/]:q)LzȄ6:''_7С>ϘqI7\TT^oai4Ã+O^ áҥӦm޼t驧nG"rEO>yUQAQGQѨ<Ú.ꈲqX g:E1 Cq(J jaд$aR4EAbRaY*+Z_Ut|3fxww|8DLX,}`7XvhѢ^Bc*2ũ!EdT,EDeI/yr, ˒֖, aG#2y q0h[!J.~$8Ӈä>x$`6LDJH<p(JEŠA^?q}qLp{%IvF64ricereeYrbY,xY3 :~rYHB%IejZYYNYqÇ!-С4m›]U5p  xp8dɊ;<8R dz?\#_apa:˪+݆a@+40%{ 7r˝w=v,Jq˽#l9ܹ]`9?ºakQadC}@zɒQ &L|q =TIi7od„:,x8Ȋx,FQ,I![<  tKK0B@,TSS ̡rKdHUKKnEٳ C R>khC><(67fź:,>@0I`H㺮P%H$Hz$Lz8HR8BVA$ŀq3ǁ(<00 Jm0$ z*& KJ44̚u}o3fעc!ƃ_?bͶp!6guvW_oY9r %b^lTU{zqʲ z9+n<݇=yYSXpZZz/p$y<~OG$pY?xR'HK!+&== Xr|UM&}>EI&?$Tfl6I jŞNC5:]i#@j2R[Uy$>wXDBRd2 #ּA$9RW^y'(((*&L4iTRxڛ5Yсpӛ}W;wrC>?\ë&i)BO:o„c}g:>>H}1ʓ.1!=j|^ovw[, :nwmm[G&/;fKdgl@Y>`͚9sy>g_uպu3f@d„ax ѐ&FDZ,:>_NىaNm47<"lb9|ҜQlnED4M׃x]H|`„o (8w ~dQ~kr_w /TU=kf*'.Y2dHvvq1Euw~D1^zgo?QE^ykk#΢(<Մ &~l8xrCOv%ń G 65xw@@]7 HC} ij dbI * ǁj@ cT8,KQ`2Y_״d2Jw״T kwPH`e9>tp}WQӇ ٺWڹS׻[&F*^Z^nc~?XzÆ_}Æe˜DI}tʔnٳ9|$xsydC|K.y_ʪ(+cY'8GX;@񅌈$ $2)EIXKΔeYyU.4(^}kU@y&~`ɗX<'@Ky͛7zL0Fw>dkǿ,o~Iv3\sߚ3S<97&L$}'xcժ^HOg3KQl٣FmG/_UY3f<7B* &Lqz T>dXo w l٩40O|0g<9>d*Eb 0C*LRPGI ׬˥(<>DΟLk rl( ,3 ]^vN`k@ N$$IzϜBƽ۽{ee7v#nt4M).V~X!ִu|pݺ?4n(Ya+4;ifE6ZqM3 hKa(+ Cm<&HLeYuDϝt` Bo~S[ֆD#GW,HD"z챛o~G1~ ꭷ5oڵ^ u0|q:}]2UKJΎ:ϯjumpeݺ>jTccWe((TՖn$#.(zmf$M RcJQ^/HZ ^ى(*'V?D}>]Z[{zytŋa;xƷajVA3LGG8JAB:t:{Gx^XJ,,QdYG<ʤR(m5 j#<0$oA gpv+2 x Nj"Ǎi';*3 E%XrI,&0*[.0 CJaD/LoRLDTGCU{ӦM6mq_}W_}Ek„ ?餷2kڛn(܉3Y,7yrN?{% /@@,3'N\,.Nw::̞=rmk֜wO;?ȶmf]ks))>ӄ &~8jO?O M׃CoX@_Ɣ3YLju ]XUCf,iND"$z==T+W>~x*>#d2ujh 5 Ɖ:0*IӃ駓'uWsseoX--CpsϭZqłnewk7w{Fۗ3hвefrKsBrX,q` "N4"w>ϝ;xC͟?z/۶]vo8phR"hTR)U$ζۡg*$ [:&M;/},q4pHi ):vcxՄlx<43Ln͆}NEyNbp:RA\z#\Na;,8X :σ4J@ };(ӎapWI Fo/y8NqAy2={(r9IAǤ}el&Loº?_y, 7fO!)7q:X EtMWW$EdWU"D"3'+KUtx盚~D!]n͵vnl  2rd~g ]]gݕo!Y{t x$fΜa+ƌZ!oi-7n۶͛aLu͜y7h2^WwP$b!C;:|>9Gxz_kKJrrvD))ζ;:QeY²%%,{wCr?!CGIDq^\c $I}% "f<3LMMW:G%%㇖bIJ&Ea40b1x'kMkkOO,Ie8Hd#,ECx]8ݷZi:FxYfY!): Q©EM$Ly<g AN!|x)>A"XTG5|u9dRz4?<0@JkGtLgz<ޤܘq7nܸXo &~<Ȭz~_ ;uT3'5W@4#&H~&H4 4g„6!QncƸݢx6 ?ŋ_{xO-({s7>3{S2c9&Α s I:zzYɽP_?m'w`[z;e"7{sSN6m5oMzc&L6W=>}Wbo@CRh|fN@5 q:h c`"jMݍRjldjy.8^q C^m6gY*O~nm;7O;oTn3HD =GEEe){&Lx U _}q{l{9_WEk(ggR=>~>̙6D~޻{}a qηŢ((ՅͤǼaJ 7'N*Iݍ߂ZKFvUX _W.*FK^~SULeYS)A0 Z? %h\.E8]C4k"cWsp^bRR8K>urv49 @EED"C^$LD"6z54:ׇ7lx#F78$/U2aNM0ađ#0<縎w͚?!Db&V;c=I/Qީ~5n܂_g|>7.lժB]{r NQfocI]>ؿ`)SM#U4&L_LM0A'/?Ľ}ӿK.Zz'HgY xQR? 69DV\]I&5 '!J'>2 %\@BsР,D ӼC-@2E>#Fl(˕oC;J$ vviowa{݊HX,IJ@wQ|oU2jD⭷xC֯GG9+x =B"l;C;D"t9?>7_&Mznm~bŇ^/El"v;%7D.FQ4#@zX$m6UqH*%%.f(VR)0hsrA}twz9!iBD5l6]O$ CUj ;BoWX ״ÁV+~oW:^<xN޵] uA`dFQDBUFXHw ɾ0^Ɠ`]M^!Sƛ鑯obMGBO'i67rct@;! IDt - 9:?Th3 KсzzwA~ ama!˻wcB]km IGN,XDɒ **ZZM[a"n}>䵣C0뺮sI'eeA*OQ~ s]w_/'}KN!'C5xޢtƊaX67T*SޏL l&i0ۦ(fބ &5$|ܹ˖A* +_vYyNQキiETgX'l?ڭ;67o;'˫j/xqmߟ5~z4E G-FD*_O[78qokͽ~~v7>;8)5]G,Mgb!,Yq4iI$4?Yer6ˍ &2@Rt2:[3m[4Ð>\$<81L94S)Y-S)E F|睥KJKe?3I^:dvƹ(_dѢ`P R;No΄,45<0sCqƠA}Ԛs}o~z#2gn=IX@#RHsp44gBdunA~F*Pea`:2 Đi%d;4&kIvm"%Xn2#k&OQߛ֚93%{Lh#Lvj׶oٗ+Ae%HA \^@ W=*B$K4nǵ[==x*c"h zaÁ"РnRHZ,Qc >B>|x~>jRp0ϙsmd*?f́gwtw9De0w:)'{ӟzzt,?޲c) IHǎ-)qɳM~!{y+Vl mR[;qwmm,[RqOsMaIT+DOR^r|SU494 x8jñtCssV@ ;#BSR&p2ǕzHX MY$AÀ>/Dπ^uk>_!9@rgBAۻ+~K& 0p ;( 'DR'12[nKݠwzxkz_oi&ď&PA~?s)7mڴiӦ#_ywل &)7H$X>3Twg[v 0̺uGӴ(PrˎeyP[kdehb(K{N׿~^Dh*)'/̏2 D.0y:=).`0 4XZX n ].ABXcY8=qgsl<V8^/>')4<J1(ʲ "bc| l4t檫νk'N:rOe8hD;E4yT]F ma)V^B)1 uSz2 6 MKQ}\C1LV:NimLa`O@#)R>ĔHSEhu LR xftvF"0bȖ`EZ[15Ç w8Phb1ơC^ДݪZW +)ΝzݡPe;\}6iM]{ӣi2ztQյ"G7Ϗǝ#]vMww$BcyooGB+Nx/?[Aze/xZ_{|Vk}=GLlJ$Ps옞jsss3:^m47D==[x0vyTUU[ZY f^CQF<q]48^"yyGӝ0^(q<`B)ˢ<8R} @s$1 9fE=BX|$t<x=H$bO6Е,aJ$ݛ 0ARn@a/;X%|Ĉ1c#ֶm55}Y0ađ+gӛ0aX/keJhxI&u04 Ǣd2$^ٓמ9LR@ @twuj1XvuE"(93g<βd=U2O$t$ɤ8xF2HhZ8|Ϝ|]]Y׿!L&96pΝFy9`Ik׺u~SnW`qǽO "UUӦou@[s8eYܙ>ZIyBϋ"WxY$FiAYeSMCpWF1DUem6EA!BRzBOlhKеgKb$IZE_9,K^J1a`\{,r5Kl?=cc[oˍ7wyȄ |#=鄓p~A\KY7aCf5g}b@=;fYYԴT*YD`)jۃtB$N$R)R) 1=+bF\q#XLӠ KX0/er nRӟ%.+(yi/~q%:?XquzvNQ-HTpoϞ[o=((1c.ݸx^b+ [> ITaiQ$a M3 E~fF{g|PURʲ G EQ.h`)Wjv6_ᝒł;VU04t?4"l63 M[XJQƲ`XX;y_\dJ^ vROv|ЙޱO?/FAy,@Զ"yzxR5={)Bhi_őz2a⇋_s5\s coA|m۶m6`ȧp2)7XcbN|!"<$vԡSb::QBjdL&%W[Յʻ'=P)߹.,ԄI)$G!r}|rewܱy(-eF|Lȴl;;1rrl62qq@^#E w=N< >=VT'2lgYq[u|7 t_C)ryhu` cHd.8SWۓܛ9/Ckj̡tƌ)*Boasc)S qƏ޼yKLfS()x~Aϫx1MCMjj&NoaTbqi].TvY(-x$ òYYzxygVݎ"8fDec1MKHAi˜1>l]@ Ud KyY6;n.,qYYB-;V+eE$F`h,Km Q e&aT D*$ W*:0can[OH Z]{jН4"<:}:xLa{Et{Ģ9ѝm!)Bhkޙ""$;KMazTf:N3Y͛7o7a⇁}冢@|lT0D@ aLr'3 q4cM,hТ6 C C;qaIq8$)rI: `)7(2ztAݾsg]_x ~ӧk?1oގ`SWֆ(:=cǓOΜYT(uE]cǴi 0p N%% kW}=Mz{ yrԄ#G \dDU pHcىraө(yW-Coj$kmA]U@'(z-Qd-p Q4g< $>=IBY2i I09$٥)HMz5 ᥂@ӱhloA^)a L#[dG HI޾Xh|љ"U`)@afEL1)7$2BB3e&cބOQfZؐu^LH4wBLwȶVG`v'= q1[t 3Yϙ9>,:5f'ܾw$QG"svґ\睷oߞ=;wQ|׭?{~Gȗ0a⇋oS,cc7+?(6O?H`dlFWcٜOwq}fKhx,"8UaW{'G,-W]sw;3r8 =ӱ@{>g 4.pÒ{iW\(wssC(#O? >6w ,h D;'{fԱcb.˗/Y`3Lxr5zwHAƝbAZ3a„ &@;@ޮv.!_ٽg#r֬z.󎠾;h_y~PHë N.o(i. ViF.WY@L&1Ͷmy(d뱯|8e2NJR2Nz:ݽu˖]t]w*˿2w& |2NDh{%ۂpMc BϞ{OO }2 ?;np_[[o=[IAԩA$*IEgg<@.&/l]MSr9y:\h(y C5?e(,+.pAVg|LKq Dk<23t(IP{q# S~^Xx|1zww^>c?sXfbӸ_b/m$wgw%zu=`: A<>~[phٖ>}iu#rXXpHsp)ac#@xm[,JpӦpn@fǽ^U|U׫ikJBc1^jYQv*.-/w4m^Dp i:'#rE}~7n6~6 h>; /ٳoo{N; ӆ3ghWLw?uq{x㧟9΂MQ6mڸ1(imjJ&J65U6mjldkҦMYdzm[,Z4}jo ;w4 &L!E.0WxUݼЩݰ?Hon55q)T(HRSJy$a˥4$,;k$A:/ut /׾(& . ݒ_*˒1&n&I0\r ނqIE\ a9\0*IZ4 vnֿ9so؋\%~ϮA8Ag%7 9s̙3q$4`aYHN>'bP_=ԬZCv`+V̞ѫ \~><^۷|g>k65i3to?hѥyAX *yK?ҧL"m(AjU!SD\dy xf 8ϛBn?h[qqYap@hD Q{d|$I!4 hj:ɓS^,p=#j# /ٳ}o{N^4ygK5k^~3'Mߺ_Z#neQt֭m\NU$&4\jE,ͽX ŝŜ},INNVMΥ#0 `AB nM!Eq+HM -U[<<<\2_FEYL { {޽ JJh?`mؚ2+Ee-Uz&Isq5#1/W_VXO( wb|b&bcl+ 7{@jRUڳA )y ) ? G_p 083/xG'~}m-)^͋?_P^{ldI|_"<>}^~y/;B{Ͽ>H$z!|x`@ d-^bE)J={>e۷w\^v:,\Қo={/X}{ q;"^SBBv'{oo*~>߇+˛a~K;$_~Ylx>bĨQ^kU2x!`Gl2М| qL@?f̘1c=!9\DkyO$g29.7H\@pcqf4#^]~C4g-өi8BIb1g tj<΃ CQR)~tE8ө(t۶+V]t`I =7 B,vrܑ44Y3cwߟNbpgUhSӹq9Ng,+Vy-̚uߦi+ł4^`ZV\NZTDEỜ^%<~cv]l{+}<1[%I$Yi6PRoAtZnMcNYkZ<MS(ΆS IJŗ &¯GqC/)Vw(%K,\."m¿K0>ܰRsdYk=[y<F}X*sٚ&/!(JR.2-jA*$!sVU)B@L#\BDB e2 njm( .XU«d6k~?/VGBSt098~4i]7C!>pWTlZS3se+Wr2m/F~{acUV\ BW_iS,>i'Ga +ee+;ۣT%Eq-8'<[?-$9l~,ko ǛmwXίsxzw|0銕ρXuw-#} bSEL7+opA` yY"F.г)b-۶EL S^v;64626m^Mþ0w'\S^Vr uKPNu<@^mh>cvVxuN90|<܇{ouuVAƍ>c:TVVT䓯~͵B>cNJ Iڸ l -L0Jzee0rm1MO]]]WUUh41  Bm\F8!r:C(__H 0ЃgGhNQD!uJ ^ါ ~GD QL$g8Ђ]bKC_ۭJjA(ә { ͂o rG;!#a U(œX_z4,8`Ov.\> 梘/)>LZXڻp P@ORp u'g$4A0;w #s8xByT0 Ce&BQ,XB 8ϊWBZSË/!ٵ+/ܱ#M! ks 躮۶-+0ڷ%po>{d]wс{ALAg̞=m /LᦛAӚƍM۰! ۷S`0dL{BX FEA^NiBs8:=SQzo0^ ynLVӸ%"`}.pn+ BdTn<S,"CZ ` \Q$sv_-[As.]p^U% ~79\o2YQT]eVph+K` &X-÷_xKwmϭ՜W h('݌\׊be}.5;$(8@K\ jjJ$FsFiF" ˬBH1!|;v:.ҥ[hee.ś6x s86lg=zTUyKlC˖-x6˗w0gιn>sf۷ Bcceen7՞e|r?c '$Ȏuu~=s64k._uk<΂0:UTx<775BۚJhasfx\\.KU׮e~p[G}̉Iv˅no~NkMhl~GSo*8 s9܁_MCrB![QZbz.Գ9B.$k>dt0o t&d~/jwڷرs#.%પ(2YϙDoM\˱G6M,r뎏Ca(7W\jߢ-_S/@),{^ODB=A4;v/0g7'ԩٗ]~ 07n\h„ɓA:v+׮:[7kذE3W_ݴ^ľ5zw, u('`Z/ӄ!n]ޓ,ӟ?9p`*D]fE7"T4NUeBdRA-PP wq ZYs\`)}0t4۵ V@ =qȐӽ-[z8௿f>6ؑg͛g|^As;"l6{U2HDS' |++=ABaeǎ坵XyȻCy+n?_QĮ2 hR=k5QY`l޽^'$r@%7ՁӹawoU)Sd9矿-[v쐤C!AظqǎDSHd۶giAaG⣏>.UUƎ] Ӎt)+۲%FUUӹuk$J'0o[%7[lM@r直{0raөiJiB۶u:<*y(DP D#f2ȂcQX˷TRhT [=Jqۭ(Jq s5*Vy͗_:mNtwР#:ϫ-NIeFUE; o]4M$ dfw.2<#텵uƮEE|֊< `#?nn_j͕ؔҟ O0-}~c.W,6o)yahU+(;vi{|ӹf' z%ӂt sϸq] |EGݦ1y?bov-S{+.]'ǏgM{ٳᇟ}Z/_dzGf3g_|C-= Z/dG=z薞؞nƌ3fXzի[zF Ç>|x)xjGMsc_K`A\&w~Z@bT*ey\EUAcles9TJ!C_e9-N,[}c1o+9Ӽq^׹!Ϊa&'eˈ/}F>찗_Cym]w ¿zN?h׮{i߾SΝ1[zA(g[z.D~,Ǖ˙}Har8E,ٞn!Wi0 ŲYӄ"x<1M^h)#,.rRle啐 9d۶F"x6 }oد76w܌>ߖ-={=gWeeN׫W;ewBsSAyKn> 4MƏd2VM Tbk>J o_VvöYnYwm0GdB3Ly ˈW%)NS+I6QEg ǻ8#XKF)$Q.sfq(BŚVh>ISX}8>ӭRbvWwv- >:4hРAZzľ%4GApf-thI&zanCت &CDqxoBȰys8 r$ v ݴ{A[hojk+*< xQl^UU^Woܤۯ\i/~-+{ѣ54Mͻ#|ꩾ}++E>X _}ԨaF⊎5mPHQ>h˖tWb>XXnʕ 媯 L ڷTwrY[ 0)TUtF"4{C2kVCu4 x,+iFi:ip*΂N|Na׆, [\tδ4^Ђ{& );"ЊwXN hݹֺc1|RbV\ %E^Q$)\s~B pVz|EQDluh<{c|1y }$2u]8iuEvF5jԨ]vڵB(~ݼyĈfhMsXEih>>{?!O_znh4N;S`pԨM۰!0;\OOE`J?Ъ3)SLҳ e.ŲgV{A<[sp(0?$i\\.\.h^@3r5 $7XJF;ryI*: - @Qt*JϞm0OwG堃ڶ%N$2ev޼?2-[曫=F<ɓ37=v:Ɏ;w󡇺uc3-[KT0e9uzyIk0jZ߾:F}$R|N'Ȳ$UVrOwp//2$ÚB.«JݻWUUf z;Hq+|0r) BKF@(b 䯹WKv@<%jX4($Ii4P_i*I[lܸvׯ] =v}r,6}*̄} DE2;O-/L_| h]P@OBq [7؅`'_ziy,ޡ}ֱ@ ~΂oe;ͭav2-c-VP6iruXSs7|Ujz3`Ӧ_#6ᚽ/Oᇐ;u>_;΍Ph;yAozhBٶ g%Pr֒PR)>38 :y -MMBX;^}>Cbt4!Lą୎$(ęNA;َWڲ3&MRd;>;)SNNw^DP,^_l#2e,uxI\zIDATVOAл݊"˸ e뾧3s////?c9x)"6gY1`7'kdn׫(x˖%d扖f׮ǖ Aāe Yp,?[oϐA L04pirT \yye,K6YD|yL:u N"/uw6m|>h L2ʐӧ}{V9گ_ǎqSO%ڭX1b={NVUoߞJuS˗?a,Y^x!P__UաÓO;e!>pA>_.76b&|l,J(6x4ov؜~KUINzEYŮ7OP{<(R.];ߋ"dEXUo(X6m|>vV?uAE> ut؜Aͳ0יHRuu55l|EEOYI_pVX,RT%wx㥗; 񚫪,㌻h|/>p z~/ۏu^އYIB e |M~Q]~cu#9.-\skD8̧1d\<i@Bq;l/uu%QյkwH$@PE>PLb|QPG*wٲ͛YQk͞]S3u ={vXc?mZ"?سWĉ~kM|].'rDCe98`Z<33Eqժ&6C!{͚Hc '.(Wc6m޵k}C&Y[FNm\ ljAQIھB1.WX3 3]gG[x<`˥(.W$Yf;ܥ#5f%4fφ"SN6V$) pأPUky7\(7xmowYX$axp [+X=μ=!ɲX];DmC+UZyU87zd4oy=^o"px3nq˖޽}htZ?~͚L&4B:gy]ݠo ؗhu4ޜ$mm6YSBxBFȈ"T{>dXr0Ch =< }U}I3À\#a,NKuZJc=;X=Qwݺ5y%KbڴUFPUUo{Ӧ+ɧrs t55]{m׮GN$My[gT^.Ippy dr! z&e!Avd]% ),毂@7|QW@Z[sћ JqFf7sKf%aϭ'7W˞yK\ &s9|v X Z[ϝ]l <~nUާثڠ v8uMA! sa41A7 =䀏iL6[8Hml<眫J&5-4iFw;Ϸn2Ž+L9E> 5k1 wpc ers#|\'#8WUYF%m/p8,BpJ&YZ؍֒; ,9-pa:\uf['v7G-lvvx3*)Rs({`O pD´֧x y/@=h.[nͿW^s9Vhr9w&l^L4s9\Ȃbŗh*em]K%IAa 2Vz cQܙAxڵky 8?TˠfJtj.7jԷVW[w;vx}7eͦٻwNee/X#G~ٴi0ڵ]ty ={>_E, (N;=zTUYxWTgar0Cx鰗m׮lMKQ:w./wZ*˒W9^^ 8| ^өhj$*gYU vIЂbEQĖ$iͳ5Vw]gt[X*޷rqgynKoej_V[|p^آzÃ?[ς d#5g4_(l @96-TAF('Z$4W2a ib_y+d=iU!kl+q֭+:^ %!%=]˗oƊV;v N l*+^M۴VUywϧX6f#t}NW3f| Hy#G}ѨqDž{(:^p*u55vK(>ƍbE4j8_޶m `ݷm[ܾ=e-SF zR\+xUQt=^ tr JN쇿s] ;/F?ͰϊβA('bP9kmj7մ@z0];Ah_ůzՓ&mR^ޮ6BzEqtZ̉FwfwUscsv̘СSΝ[zvAzǮ..iNpvBd(@S>\qe::8p2 a-aNо'٬iz<\!]E@>s8R)]7M,5\=+X7v,_~|CHc, ‘G~Žoqiz<о}0r 7Ԯ]}M0s]t?L7`@ ]:x\W;ɤѡC0Z)˒Ծ}0f`%?)( e.XUWLRhOZ,by9$&tX N&PKz # |>PZ 8AJZ WþL`cupEXymxvO2\8:ZpIh(ztEK}{6AP@OرE$ߛˁ_ d2\&awyWx0D4{-[۶qy (`ךn**n+ߥKy 8]bl0 Nzr?>xk.7-RU]裷mt6x:7x}.`Ijj#LyLMS"Diϥm@jOvfuBtr>áiYt*(IUeYUFdYUT f$ \@ ZsE\i.u. $P|ɍ,[K&Vw*(z6>Hj r9.Pp |ͅBd-cGUUvsWW{hH>A6ߦͻs!q/e& Ϸm[^`G9ko{̙'KNz=y{^xaE Ԩi56E춃  Ҡ =g-)|\g%᝸4%)K}9xR)˦?>"3ʴ-W!K/}s+Ezo"ST~Uu:e4EmÆ8F<{oydpycrI_R^n6,I"0r9pUv;55[l`M$7r |H}F"n7REzU|x `?;u0Xbc}Iœ|w:a=j +LF9djckn(;w6UAN(COD3\w]^&@(pa*իڥG<޷w@A @?~] 7H \}e% >=дDسlذnڵ/X-= ס =q@R,ȵ|1i&ձM0r9>gUl4qbϫ$IB r`[Drݺ+BYhUC![ wr-s^ş2(q&:^$kI+d˝N~JU¼iWt*ן}ak֌ӿ8y?**D:*|_ /B||iybG̟ΌODkz /rݕOJY.D=YQ,/d^ء\d9Î捍+TI;x)ˢX_}};>^Sn56rz4ojkޟ~䓭[=ZQzZlРڴûuJ4A&4|Yv'h?p3cxᅂN=zb.wI^[J[oE",iFU%.gg<Ǟ&2MM$+QJ&cEy}X(W;v/>tY˖zSO9衳g? ~o~?꫏<-Vuܻ{7ߌ{ݢ(\ F",MAĮ@z^R.k-?f4dw\rÜ .A&nL4 K4fMsg.<1oD"JMS }>SQzf*@T.]<~mpƍdyȐ/dH_)/oFz7o^{ج|@멧6m**:;d,'UUΚnYVr)X`V;ۅx`<(Cʲ) !<ru3Ƈ׫i\r^(I.I« .\%4ϯp$ׇu2$Vw^ft i ӏWV Y!/d$YAPn }{au˝ X!1so(!>G=6ͽ.*˲}a۹z*E>ux֯oldjv͚ .b[#^Z;?,8ز%XOe.z۶߸1c3~u׹\(+~}啿;,q*+u3 ܴ)N r8 2˳YY~X lUU^sySQ$ ˿VU,[4I٧H041*MMD&i|.R NX%7"I?wp CE٧r(b9 kp;[e9nHvp-˒[in JUY=o",5oaVOǽ 뿊s;]G (In"[P𤴱p8m_$2w}΂Zz??_~w-ڵۺw8pú/~q:w^z2haF;w u=|l"aaOJ쬋8,4~D|Flb=Ad);};Ҋ_..e+/uMv;7>A e"6{~xX`i,# ?&(~/,qrI,T 4GGwǣrȑۏJf ? Ae2LreIǣi n9ٳg2O~F^b#?p++}>M;,Y`YtEKU9y˥(*Ilΐ9 dB!SQڟzl)nMS(n^Xî )E!;FPUk(󙇫"M պ+\scد*̸Tr=v݁#0 P=/=U`fjrgWYks;}=KwAįC=Av}w -G?XEEkkM3WQٕ+ CQ0%AA |g{UV&h5γpGzoC٩W $an7dr98 {bt({%X&cYmF~zyw t>oUW]TUy{O}{0t1Ǭ]{={Ge^ 8X$r꩏?~x_W^z۴\c )EIKE~P3s.߰VWxI`<(oVxNju9ư8cu>F(i$Qt:ߟ]uP+J2Ëp7W MY*>b墵6rk eܸ?N?>}>d =q@#<A I =Bd AG0ML&3@#P1 ? B,prt-D¹o#y<|xtT<@f?[NErIˍz.J#Ngn릙f8 U$sܭG,Oa:[!СS.]?u]R@=APuVE]w~[7}|A4:mZ2iLB~dzxà6lI8G[St_|ӱǞ|wߝsΨQ)lϞlݪ(ܹL! lٰa7|yZ{`0s!ط q\Ql8-ŷZ„Xn',7l2Ϻ=;"psBXh8C(rJ0xzozu*uQS_~ zG:J)J$kc&o jE,vV-]z??q"__߻w~_=v+e3x$I'IHIZ++S)nh9p!nUepswyhXdbevuP+IAy2*C}yc 8*wa% _Ж/&U.{c{A䦰{%xv>pCNA7G U{`_`{,0 ~#P햤HdȊ/8}s};^~9E* 3KS׭z/2d/ѣ#U'FO<ۯ fJܹ>ai輡?WAn[ Uu?i8WU}_Lҹs<ޯ'^}-89o۸q:h+=W>}otbtL"y,kŊvWT;#{ehZsyos/~<["7555-^`?67¯ tRz8(,q$0 Iq .E8v 7!'-{dwEUUd_~H?aR~M׭ݺrˆ ='IA8ן}{>Cx׊C Æ>|LSFclVdyB;$I= L;@{(4MQr9~.y3<6Ȇ2Yf32\]7 vëp TUQXy+YwQB^<x r_euX_(n~ 87|Ǿpՙ&2Y\]gȾ XЂ*VK~mx\" }^:CY MHrC & '8WU(/YJ駱zףv4jT"(\UULNjE?/YrO=5~<46tP~?x5cT*Ѵ\47mrx\}ydܸn䒡CK_-=k Bz'9\8hL =ϋǡǃ%0 ͂mZu^v/ZtYuu\s)СPPvԱyWҥ#PvmEȣBL*U[& N˵ysyyeeUa9;U Iïj`]SQ<k(r$ \S$IZ T\t@ d\#[\cH$Do߸c#aS*xtP>R4[ys5$=vWx*|yY[ :V .ͿgQxE0~FLlx fnƷ ެ/U8Ƿ f_D5APh+ZUVu~)6yvzWUA;1\-Z0&NP:c;:ti 0gΐ!uu?dH}&IpDG<ر75h_=~0uÑr{G"Rmc}A ouAغuu~e҅ ]}yo{;9[[ּgẊNso/lXZ; Sq#ADk25r ,dq)!qT:\25 %N'ϔBn>eV *;4HFsE,޲E/.cY.öm'Odjj.;^G }>C?hkŊo\nРAB!lݲܹs$rz6i v{<]lQ>$I>_Ȓ~oe/X0e_lBn60+ukU.e{<%EѺ,ZlZ`˞61'6e|~DΩVk-*1(6?o`fZ OYK~E;h:_?bݶ>Gq ZV{(n_{\$$XbAl, .MY]w'4Ynl%T,wq:EqQl(r%bgKҢE_:=aʕ~9&:ӺHr8CF\jɆL d;Ιᇝ:MBO>3,9+E1uW}>C5-L:vDc1Ms: d,b*ɘܹ|'-n;9Uşx> [st8TUq11*xUEae 8dGPpq*kjƎݾXs7nΝ}UwӦ{ΛnL/7G|؎|ժPLs&ADe#>|3f̘1}ho9G)2,_UT:oWll<#8@@-ZR?3 e9V>r˵pimzUt)̗= ;NL1/̛F6D**2drv7ǝNx|vOSXvN'xރxK\p ] |ϽhԊf1i,VSP*Yj1[5Ҝ nu9}(;w7/w:yѴρ ϒ2AP@/L2eʔ)-= CV~:Ӽdxq.g-s7o;9EL&fÆ`Uvڵرs3<܋/iǵk#AAC=q@A#ΌBn2řW;g2a./r`ȲݐŔr;{Ar\pa.7qpX~DB'J0ڼyDܿMq> ¦SO=L+R[dwzU5MX:$Yv:N:$xZKT!@7çK"?xq8#|%h9qwf N[gǏ)]lvv{3 Fe_h1 7_tۼӼ7BTKľEay aBRhC(6 4HQFQ^p5-FS)//+x4-cbN[b1Ynj_׭06/OucG>wPSxv[6ϧi,^U7F++XpnUU$(i"8ȃ0*Ÿ.(9{S):(.$az|DP<>ܮ9p) `iP kw74QK$2vy:!a_y_Ůd:\ag'x6|kG(e%^J ^ܷOL/ЪbSN:/O?=qw/_dɂ-ƥMM}W}s! =E+ϛ7o޼yCzիW.Z&L0a„ӧO> nXpY-_ 崹?CqK4A/tD._)]rSx%vݿ'}ygW bzO<O<N8 6lذA{q@Q͚5k֬Y0ܹsΝKn9- 9BAS)& ±B:Fs{45SmjN_y4t3PsقǣilrGv3DB+ܴ顇2XjhLvx45tP?xUcƈb2bO,MwϷz?Λ`mmmm׮!^ t>唿 ٚX.!OXKUphU`#N(?`]`8/vի_SM{}e,ځ}.ǫ Y% nFbW^:K;(>¯Fh~泳* yZrR3gΜ9s&Wϲë#h0rK_kLÝK-?3ϴXRY민ң,?TSiodМ[xX25k}`L?\X-6{X^g8ze#M!vWq[ xlbǴV|v{wgudsHAMZ]2G?~W6c`2lYey,+!_~e< C`>pW{4͛njj;Ø14E.9i$I4?2C(w۶<ӥK"ѯym2v9A!<φ ̘rɒ뮻6]رK=El6޾=,/dCO>+$C=_butʯlv ۱֜;A9s~U.8^Pv]"(W~BͽY~BGlNvb/B-6> v.C+`>?bWi߾SΝ?yZ>`W_:GZڴ? I&]`p"xBYbRMر^zɸO3gߵkвqxikמ}ȑ4]f;uŚIEQպ`ە ֭[[z.A;iuP( J/- Fnk@&t1%܇arp`z\lӦX ZwuTUIZsgY&]`pJEU 9uIu6ڂr.ۡȑ45]w֭<ҧu.&F"f`pÆ'Mza{BV;w}MOnݺkn>䭷^yÎ>zȐΝ;wܙ͑u'&LO>ݻ_=S%I}>9g2< a.ޙZ|w8g幸~K9/ҿ {COɎvžȯ$Ym%K-ck7_9z!G,^ȻAVWnj3f̘] F`>+5 dŨd!XO2=LFZ=^ᆱFO9 w"\_H$uxwd6#leؘHdN4oGtiGu$KڿUUafLl٤I/Ԥi^o,JF:&鴮'a^o"s:scz5W+V\j\VN:3*+۶ \L@)q(wXxdWE6khNt4ZGta8).{cqﲎ}]odZ Ӵ =X!)} o7>f}ҟAAQ>m4]>f)gϞ={]}BJȞbKQeY\.E,MM]f_x<ƍNO@*0ĐA|t]$X;vd7ݴ}VTBy Ȳ x6[׫/?4 >w8DQN>ggGA5S4Mڶ$EaB$&SL0HhdZ*IֽW9]xbڰ"S6~s{kqY0pEX[Êb[ Y!oYw,"*v=ZKA*. jժUVlz,,w׬J"L0`m+߾qa45uJqm ]?%H3t\[C=VAH[~'Vt.6ktzȐpX37aO?sϣf  $IaMd* aF`PO<W X&*ka}(iSðrX5E Ʀ+?RBv ;Ҁ{re J* H$].QddPwH\|m76jڥ&NeiH׋$Ayh*e-]QeO=&M+0{BLQEUi{ .]Fۼ+oA 4t ״˵۷Am۶kj]VD\mVI z[*ޥfwRcf`ﺪ"Iq>>A q V'Q4ί^Ϳoɒ P@OP@h0Jy0V(ЦM2짟B(a>8G#)좚͔L3^.(65=Py }/n.Hӹp:<ûb>} غu6 өiN#B[]]__Wpd 8'(("BMSUQĻ&;!8`np{`|{(X%aE73O(g?OSa>|E#wH,"`yw~Dr9c'{[B;2O*xI% ]]®ͪ<?zXLQ;n'rWF8"Ynjo6}wo˗OKfNpCC:ukYYEEK(AA{ w 屢IW4s90 /DŽrxŲTGiE8uSe0pi,Kp#2yc~Huְa䥗СCsϷdɂв}WxvV[ EB!vD~557o ϷmkӦm[KӘ[%1ywr+f}cj*AA^Z=q`B1۝Cx<;E"W]ܵk]](G!n c/pApeTu^{ClKcǎ?ys|yeO?(?9!CmM<' i>xxsb}||ָX}aA<{d#%ϐ0ɺ<2ΟُϿC;Ao]8h>tU)IP}} 빜(>qee]HRc74YLqǎEU8PL>tՂԄgaDۗ-ӴGncMA=k{Unݺu4~|CQӝ{:">ߎ۷˲aFCCuuu\0nuȎK/H! Ι*U,:|u\N3.i[dYQ9~&LC f' 'ZhMM>_}yA(=>7ߨgM>H>7Yw]u˟zG%?㌳nj9KK9bP}}]]"xpEEeeK.AA-e}gc)b匬eI%I͛GYdK|P.s8x6qy%!{o-HF;`4Cge(MM7|5l`0F'Mz_WCnDA+qߒċV!Vۚ_[#v;C;β0jq]3=o] 9+U\X%UlV{!l!z ؽҀBÇ>|իW.]8ӧO>B>h|K$@a/tzZKanAhj:U<N)SvS ԩ3fŒÆ °aG ^3f@3X˰a{ذҎJe2,wAرז  Glm,_~_2ѣG=zWnj3fӃ=}]vڵSu]׿x<=}{ /?  ul+Aw5cƌ3f@1+PB8=5k֬Y |r0rKAAѺhu=ݡ|g!~hP {uAAQ . jժUVNAAK'^=T۠hvZ]VoWmк zv('  VrmYYYYY((sh{ ctm؁߶&{dW*Zj4bOp]-}`hEVD̝;wܹ$(\q.-ľ](]`` X zш=ǁtowk[zp/RQ&7Zz ;Poע_me7SL2e -8|wш=zouҪùop\?)gXgK42еaweM_=M)Nb;20f)G,&w4bwq`_-} HCρM3K})d}Fhɕ% ڰ79&{Ǟ~d4шŁ}ohu},?(E}?w_>"]{D!ڰkzx+Sʚш=́qow[z }\_޵+$lڰkz{ze; 80n=+Z$!    b?z  ؏~⊀#'r)+SܣZhMvhľƾyo78~UJl~ =} w?(2B{&ш}}jٽn[qA>̘1cƌ>#'r!J/5|FkWvߊ$gwm}zш=ǁtowk[zpӬZjժUF5jsh>F(=]G,mD!ڰ+k@ 6W[j4bOp]-}`h=NAACEAAC=AAAP@OAA1AA~ AAC=AAAP@OAA1AA~ AAC=AAAP@OAA1AA~ Ane֬Yfjsjv3Ÿ 7o޼y~ۘ}'bz Z-=}ZB̘1cƌ{A ѣGN8N8aODDl P( ZzRkz 5Aľ̙3gΜҳ vڵkիW^nr 4hРR x>' (COA%1lذaÆ͵x ]z @=f̘1c } VagJZXW/aW= 8wܹsr Cxo)Wמ^VR:=aeJ A@=AΆ; eBp`) t!*>aD8Á bg7 s1*rWV9s{fzǏ l~WB=m(嚇s/e_3k+OND)P@O.QJ p)>~ ĥ/=T- Re)!I)!o)+`3t> oxol]) {u&ֹ횁v?/h͐ @D@(.ggہl4xku0r)s}:®#C3*]´+7U_5rг5of(.;6 ƮHn D 1qY}#]gg33\~ vKZw,BZJ}p0ǁ[R dwvO-)f Ի~ih͐=A4Xv2B@l!5~{fϱOq ~Vm޼kl„ &L.ڕ~O-fO_3m#6hY('b(_ H2@p_B={( %"ajDKޠwElcgs A ^@XzP( wB, aanlhҮܶ=^z o' ovu~O-в A{ > о[_8loʍpRY'Yah)s;KaJ [n~Op' }d)]Bz(E\kvt$D]8,ed,ړk]x%apyϭ-f_3A ('bg7ABSpyv(ptNpg)*%L,J0O.V0l?=J{O޼fثY{ tv_$R;<K rBgW?jO/śܾ2>C K.]T]` Y ϫжVŷB+~uk~-hK9߶A2A@(Sj mY ith b^:W #r7Ϥ"ċ0C<~2XүqOl(ؿ!oiAA[ =AAAP@OAA1AA~ AAC=AAAP@OAA1AA~ AAC=AAAP@OAA1AA~ AAC=AAAP@OAA1AA~&|Y%tEXtdate:create2013-06-03T14:47:08-04:00rX%tEXtdate:modify2013-06-03T14:47:08-04:00/, tEXtpdf:HiResBoundingBox504x504+0+0wtEXtpdf:VersionPDF-1.4 G:xIENDB`EBSeq/vignettes/lengetal.bib0000755000175200017520000011456414516004476017041 0ustar00biocbuildbiocbuild@manual{Rpackage, author = "{R Development Core Team}", title = "R: A language and environment for statistical computing", organization = "R Foundation for Statistical Computing", address = "Vienna, Austria", year = "2009", } @article{Newton01, author="M A Newton and Kendziorski, C M and Richmond, C S and Blattner, F R", title="On differential variability of expression ratios: Improved statistical inference about gene expression changes from microarray data", journal="Journal of Computational Biology", volume="8", pages="37--52", year="2001", } @article{Wang09, author="Wang, Z and Gerstein M and Snyder M", title="RNA-Seq: a revolutionary tool for transcriptomics", journal="Nature Reviews Genetics", volume="10", pages="57--63", year="2009", } @article{Bullard10, author="Bullard, J H and Purdom, E A and Hansen, K D and Dudoit, S", title="Evaluation of Statistical Methods for Normalization and Differential Expression in mRNA-Seq Experiments", journal="BMC Bioinformatics", volume="11", pages="94", year="2010", } @article{Hansen10, author="Hansen, K D and Brenner, S E and Dudoit, S", title="Biases in Illumina transcriptome sequencing caused by random hexamer priming", journal="Nucleic Acids Research", volume="38(12)", pages="e131", year="2010", } @article{Wang08, author="Wang, E T and Sandberg, R and Luo, S and Khrebtukova, I and Zhang, L and Mayr, C and Kingsmore, S F and Schroth, G P and Burge, C B", title="Alternative isoform regulation in human tissue transcriptomes", journal="Nature", volume="456", pages="470--476", year="2008", } @article{Oshlack09, author="Oshlack, A and Wakefield M", title="Transcript length bias in RNA-seq data confounds systems biology", journal="Biology Direct", volume="4", pages="14", year="2009", } @article{Robinson10, author="Robinson, M D and Oshlack, A", title="A scaling normalization method for differential expression analysis of RNA-seq data", journal="Genome Biology", volume="11", pages="R25", year="2010", } @article{Trapnell09, author="Trapnell, C and Pachter, L and Salzberg, S L", title="TopHat: discovering splice junctions with RNA-Seq", journal="Bioinformatics", volume="25(9)", pages="1105--1111", year="2009", } @article{Mortazavi08, author="Mortazavi, A and Williams, B A and McCue, K and Schaeffer, L and Wold, B", title="Mapping and quantifying mammalian transcriptomes by RNA-Seq", journal="Nature Methods", volume="5(1)", pages="621--628", year="2008", } @article{Trapnell10, author="Trapnell, C and Williams, B A and Pertea, G and Mortazavi, A and Kwan, G and van Baren, M J and Salzberg, S L and Wold, B J and Pachter, L", title="Transcript assembly and quantification by RNA-Seq reveals unannotated transcripts and isoform switching during cell differentiation.", journal="Nat Biotechnol", volume="28(5)", pages="211--215", year="2010", } @article{Pepke09, author="Pepke, S and Wold, B and Mortaazavi, A", title="Computation for ChIP-seq and RNA-seq studies", journal="Nat Methods", volume="6(11 Suppl)", pages="S22--32", year="2009", } @article{Langmean10, author="Langmead, B and Trapnell, C and Pop, M and Salzberg, S L", title="Ultrafast and memory-efficient alignment of short DNA sequences to the human genome", journal="Genome Biology", pages="R25", year="2010", } @article{Bloom09, author="Bloom, J S and Khan, Z and Kruglyak, L and Singh, M and Caudy, A A", title="Measuring differential gene expression by short read sequencing: quantitative comparison to 2-channel gene expression microarrays", journal="BMC Genomics", volume="10", pages="221", year="2009", } @article{Wang10, author="Wang, L and Feng, Z and Wang, X and Wang, X and Zhang, X", title="DEGseq: an R package for identifying differentially expressed genes from RNA-seq data", journal="Bioinformatics", volume="26", pages="136--138", year="2010", } @article{Feng08, author="Feng, W and Liu, Y and Wu, J and Nephew, K P and Huang, T H M and Li, L", title="A Poisson mixture model to identify changes in RNA polymerase II binding quantity using high-throughput sequencing technology", journal="BMC Genomics", volume="9(Supl 2)", pages="S23", year="2008", } @article{Marioni08, author="Marioni, J C and Mason, C E and Mane, S M and Stephens, M and Gilad, Y", title="RNA-seq: An assessment of technical reproducibility and comparison with gene expression arrays", journal="Genome Research", volume="18", pages="1509--1517", year="2008", } @article{Nagalakshmi08, author="Nagalakshmi, U and Wang, Z and Waern, K and Shou, C and Raha, D and Gerstein, M", title="The Transcriptional Landscape of the Yeast Genome Defined by RNA Sequencing", journal="Science", volume="320(5881)", pages="1344--1349", year="2008", } @article{Lu05, author="Lu, J and Tomfohr, J K and Kepler, T B", title="Identifying differential expression in multiple SAGE libraries: an overdispersed log-linear model approach", journal="BMC Bioinformatics", volume="6", pages="165", year="2005", } @article{Robinson08, author="Robinson, M D and Smyth, G K", title="Small-sample estimation of negative binomial dispersion, with applications to SAGE data", journal="Biostatistics", volume="9", pages="321--332", year="2008", } @article{Anders10, author="Anders, S and Huber, W", title="Differential expression analysis for sequence count data", journal="Genome Biology", volume="11", pages="R106", year="2010", } @article{Zheng09, author="Zheng, S and Chen, L", title="A hierarchical Bayesian model for comparing transcriptomes at the individual transcript isoform level", journal="Nucleic Acids Research", pages="1--16", year="2009", } @article{Howard10, author="Howard, B E and Heber, S", title="Towards reliable isoform quantification using RNA-SEQ data", journal="BMC Bioinformatics", volume="11(Suppl 3)", pages="S6", year="2010", } @article{Wang10b, author="Wang, X and Wu, Z and Zhang, X", title="Isoform abundance inference provides a more accurate estimation of gene expression levels in RNA-seq", journal="Journal of Bioinformatics and Computational Biology", volume="8(Suppl 1)", pages="177--192", year="2010", } @article{Richard10, author="Richard, H and Schulz, M H and Sultan, M and Nürnberger, A and Schrinner, S and Balzereit, D and Dagand, E and Rasche, A and Lehrach, H and Vingron, M and Haas, S A and Yaspo, M L", title="Prediction of alternative isoforms from exon expression levels in RNA-Seq experiments", journal="Nucleic Acids Research", volume="38(10)", pages="e112", year="2010", } @article{Datta10, author="Datta, S and Datta, S and Kim, S and Chakraborty, S and Gill, R S", title="Statistical Analyses of Next Generation Sequence Data: A Partial Overview ", journal="Journal of Proteomcs and Bioinformatics", volume="3(6)", pages="183--190", year="2010", } @article{Lee10, author="Lee, S and Seo, C H and Lim, B and Yang, J O and Oh, J and Kim, M and Lee, S and Lee, B and Kang, C and Lee, S", title="Accurate quantification of transcriptome from RNA-Seq data by effective length normalization", journal="Nucleic Acids Research", volume="39(2)", pages="e9", year="2010", } @article{Srivastava10, author="Srivastava, S and Chen, L", title="A two-parameter generalized Poisson model to improve the analysis of RNA-seq data", journal="Nucleic Acids Research", volume="38(17)", pages="e170", year="2010", } @article{Hiller09, author="Hiller, D and Jiang, H and Wu, W and Wong, W H", title="Identifiability of isoform deconvolution from junction arrays and RNA-Seq", journal="Bioinformatics", volume="25(23)", pages="3056--3059", year="2009", } @article{Wegmann08, author="Wegmann, D and Dupanloup, I and Excoffier, L", title="Width of gene expression profile drives alternative splicing", journal="PLos one", volume="3(10)", pages="e3587", year="2008", } @article{Li11, author="Li, Y and Terrel, A and Patel, J M", title="WHAM: A High-throughput Sequence Alignment Method", journal="ACM SIGMOD", volume="", pages="", year="2011", } @article{Robinson07, author="Robinson, M D and Smyth, G K", title="Moderated statistical tests for assessing differences in tag abundance", journal="Bioinformatics", volume="23(21)", pages="2881--2887", year="2007", } @article{Robinson10b, author="Robinson, M D and McCarthy, D J and Smyth, G K", title="edgeR: a Bioconductor package for differential expression analysis of digital gene expression data.", journal="Bioinformatics", volume="26(1)", pages="139-40", year="2010", } @article{Hardcastle10, author="Hardcastle, T J and Kelly, K A", title="baySeq: empirical Bayesian methods for identifying differential expression in sequence count data", journal="BMC Bioinformatics", volume="11", pages="422", year="2010", } @article{Gao11, author="Gao, L and Fang, Z and Zhang, K and Zhi, D and Cui, X", title="Length bias correction for RNA-seq data in gene set analyses", journal="Bioinformatics", volume="27(5)", pages="662--669", year="2011", } @article{Jiang09, author="Jiang, H and Wing, W H", title="Statistical inferences for isoform expression in RNA-Seq", journal="Bioinformatics", volume="25(8)", pages="1026--1032", year="2009", } @article{Li10, author="Li, B and Ruotti, V and Stewart, R M and Thomson, J A and Dewey, C N", title="RNA-Seq gene expression estimation with read mapping uncertainty", journal="Bioinformatics", volume="26(4)", pages="493--500", year="2010", } @article{Ozsolak11, author="Ozsolak, F and Milos, P M", title="RNA sequencing: advances, challenges and opportunities", journal="Nature Reviews Genetics", volume="12", pages="87--98", year="2011", } @article{Gao10, author="Gao, D and Kim, J and Kim, H and Phang, T L and Selby, H and Tan, A C and Tong, T", title="A survey of statistical software for analysing RNA-seq data", journal="Human Genomics", volume="5(1)", pages="56--60", year="2010", } @article{Haas10, author="Haas, B J and Zody, M C", title="Advancing RNA-Seq analysis", journal="Nature Biotechnology", volume="28", pages="421--423", year="2010", } @article{Salzberg10, author="Salzberg, S L", title="Recent advances in RNA sequence analysis", journal="F1000 Biology Reports", volume="2", pages="64", year="2010", } @article{Turro09, author="Turro, E and Lewin, A and Rose, A and Dallman, M J and Richardson, S", title="MMBGX: a method for estimating expression at the isoform level and detecting differential splicing using whole-transcript Affymetrix arrays", journal="Nucleic Acids Research", volume="38(1)", pages="e4", year="2009", } @article{Bemmo08, author="Bemmo, A and Benovoy, D and Kwan, T and Gaffney, D J and Jensen, R V and Majewski, Jacek", title="Gene Expression and Isoform Variation Analysis using Affymetrix Exon Arrays", journal="BMC Genomics", volume="9", pages="529", year="2008", } @article{Xing08, author="Xing, Y and Stoilov, P and Kapur, K and Han, A and Jiang, H and Shen, S and Black, D L and Wong, W H", title="MADS: a new and improved method for analysis of differential alternative splicing by exon-tiling microarrays", journal="RNA", volume="14(8)", pages="1470--1479", year="2008", } @article{Anton08, author="Anton, M A and Gorostiaga, D and Guruceaga, E and Segura, V and Carmona-Saez, P and Pascual-Montano, A and Pio, R and Montuenga, L M and Rubio, A", title="SPACE: an algorithm to predict and quantify alternatively spliced isoforms using microarrays", journal="Genome Biology", volume="9", pages="R46", year="2008", } @article{Liu10, author="Liu, S and Lin, L and Wang, D and Xing, Y ", title="A comparison of RNA-Seq and high-density exon array for detecting differential gene expression between closely related species", journal="Nucleic Acids Research", volume="39(2)", pages="578--588", year="2010", } @article{Degner09, author="Degner, J F and Marioni, J C and Pai, A A and Pickrell, J K and Nkadori, E and Gilad, Y and Pritchard, J K", title="Effect of read-mapping biases on detecting allele-specific expression from RNA-sequencing data", journal="Bioinformatics", volume="25(24)", pages="3207--3212", year="2009", } @article{Neverov05, author="Neverov, A D and Nurtdinov, I A R N and Frishman, D and Gelfand, M S and Mironov, A A", title="Alternative splicing and protein function", journal="BMC Bioinformatics", volume="6", pages="266", year="2005", } @article{Birzele07, author="Birzele, F and Csaba, G and Zimmer, R", title="Alternative splicing and protein structure evolution", journal="Nucleic Acids Research", volume="36(2)", pages="550--558", year="2007", } @article{Jiang08, author="Jiang, H and Wing, W H", title="SeqMap: mapping massive amount of oligonucleotides to the genome", journal="Bioinformatics", volume="24(20)", pages="2395--2396", year="2008", } @article{Hansen10, author="Hansen, K and Brenner, S and Dudoit S", title="Biases in Illumina transcriptome sequencing caused by random hexamer priming.", journal="Nucleic Acids Research", volume= "38", pages= "1-7", year="2010", } @article{Zhou11, author="Zhou, Y.H. and Xia, K. and Wright, F.A.", title="A Powerful and Flexible Approach to the Analysis of RNA Sequence Count Data.", journal="Bioinformatics", volume= "27", pages= "2672-2678", year="2011", } @article{Singh11, author="Singh, D. and Orellana, C.F. and Hu, Y. and Jones, C.D. and Liu, Y. and Chiang, D.Y. and Liu, J. and Prins, JF.", title="FDM: a graph-based statistical method to detect differential transcription using RNA-seq data", journal="Bioinformatics", volume= "27", pages= "2633-2640", year="2011", } @article{Chang11, author="Chang, PL and Dunham, JP and Nuzhdin, SV and Arbeitman, MN.", title="Somatic sex-specific transcriptome differences in Drosophila revealed by whole transcriptome sequencing.", journal="BMC Genomics", volume= "12", pages= "364", year="2011", } @article{Dempster77, author="Dempster, A.P. and Laird, N.M. and Rubin, D.B.", title="Maximum Likelihood from Incomplete Data via the EM Algorithm.", journal="Journal of the Royal Statistical Society", volume= "39", pages= "1-38", year="1977", } @article{Katz10, author="Katz, Y. and Wang, E.T. and Airoldi, E.M. and Burge, C.B.", title="Analysis and design of RNA sequencing experiments for identifying isoform regulation.", journal="Nature Methods", volume= "7", pages= "1009-1015", year="2010", } @manual{edgeRV, author="Robinson, M. and McCarthy, D. and Chen, Y. and Smyth, G.K.", title="edgeR: differential expression analysis of digital gene expression data: User’s Guide", year="2014", url="http://www.bioconductor.org/packages/release/bioc/vignettes/edgeR/inst/doc/edgeRUsersGuide.pdf", } @article{Stamm05, author="Stamm, S and Ben-Ari, S and Rafalska, I and Tang, Y and Zhang, Z and Toiber, D and Thanaraj, T A and Soreq H", title="Function of alternative splicing. ", year="2005", journal="Gene", volume= "344", pages= "1-20", } @article{Smith89, author="Smith, C W and Patton, J G and Nadal-Ginard, B", title="Alternative splicing in the control of gene expression. ", year="1989", journal="Annu Rev Genet.", volume= "23", pages= "527-77", } @article{gould09, author="Gould, M N", title="The Utility of Comparative Genetics to Inform Breast Cancer Prevention Strategies ", year="2009", journal="Genetics", volume= "183", pages= "409-412", } @article{MAQC06, author="MAQC Consortium", title="The MicroArray Quality Control (MAQC) project shows inter- and intraplatform reproducibility of gene expression measurements.", year="2006", journal="Nature Biotechnology ", volume= "24", pages= "1151-1161", } @article{Sengupta10, author="Sengupta, S. and Ruotti, V. and Bolin, J. and Elwell, A. and Hernandez, A. and Thomson, J. and Stewart, R.", title="Highly consistent, fully representative mRNA-Seq libraries from ten nanograms of total RNA.", year="2010", journal="Biotechniques", volume= "49", pages= "898-904", } @article{Phanstiel11, author="Phanstiel, H P and Brumbaugh, J and Wenger, C D and Tian, S and Probasco,M D and Bailey, D J and Swaney, D L and Tervo, M A and Bolin, J M and Ruotti, V and Stewart, R and Thomson, J A and Coon, J J", title="Proteomic and phosphoproteomic comparison of human ES and iPS cells", year="2011", journal="Nature Methods", volume= "8", pages= "821-827", } @article{Dixon50, author="Dixon, W J", title="Analysis of extreme values", year="1950", journal="The Annals of Mathematical Statistics", volume= "21", pages= "488", } @article{Haag03, author="Haag, J D and Shepel, L A and Kolman, B D and Monson, D M and Benton, M E and Watts, K T and Waller, J L and Lopez-Guajardo,C C and Samuelson,D J and Gould, M N", title="Congenic Rats Reveal Three Independent Copenhagen Alleles within the Mcs1 Quantitative Trait Locus That Confer Resistance to Mammary Cancer", year="2003", journal="Cancer Res", volume= "63", pages= "5808", } @article{Ludwig06, author="Ludwig, T E and Levenstein, M E and Jones, J M and Berggren, W T and Mitchen, E R and Frane, J L and Crandall, L J and Daigh, C A and Conard, K R and Piekarczyk, M S and Llanas, R A and Thomson, J A.", title="Derivation of human embryonic stem cells in defined conditions.", year="2006", journal="Nat Biotechnol", volume= "24(2)", pages= "185-7", } @article{Guenther10, author="Guenther, M Gand Frampton, G M and Soldner, F and Hockemeyer, D and Mitalipova,M and Jaenisch, R and Young, R A", title="Chromatin structure and gene expression programs of human embryonic and induced pluripotent stem cells.", year="2010", journal="Cell stem Cell", volume= "7(2)", pages= "249-257", } @article{Chin09, author="Chin, MH and Mason, MJ and Xie, W and Volinia, S and Singer, M and Peterson, C and Ambartsumyan, G and Aimiuwu, O and Richter, L and Zhang, J and Khvorostov, I and Ott, V and Grunstein, M and Lavon, N and Benvenisty, N and Croce, CM and Clark, AT and Baxter, T and Pyle, AD and Teitell, MA and Pelegrini, M and Plath, K and Lowry, WE", title="Induced pluripotent stem cells and embryonic stem cells are distinguished by gene expression signatures.", year="2009", journal="Cell stem Cell", volume= "5(1)", pages= "111-123", } @article{Ohi11, author="Ohi, Y and Qin, H and Hong, C and Blouin, L and Polo, J M and Guo, T and Qi, Z and Downey, S L and Manos, P D and Rossi, D J and Yu, J and Hebrok, M and Hochedlinger, K and Costello, J F and Song, J S and Ramalho-Santos, M", title="Incomplete DNA methylation underlies a transcriptional memory of somatic cells in human iPS cells.", year="2011", journal="Nat Cell Biol.", volume= "13(5)", pages= "541-9", } @article{Bock11, author="Bock, C and Kiskinis, E and Verstappen, G and Gu, H and Boulting, G and Smith, Z D and Ziller, M and Croft, G F and Amoroso, M W and Oakley, D H and Gnirke, A and Eggan, K and Meissner, A", title="Reference Maps of human ES and iPS cell variation enable high-throughput characterization of pluripotent cell lines.", year="2011", journal="Cell.", volume= "144(3)", pages= "439-52", } @article{Trapnell12, author="Trapnell, C and Roberts, A and Goff, L and Pertea, G and Kim, D and Kelley, D R and Pimentel, H and Salzberg, S L and Rinn, J L and Pachter, L", title="Differential gene and transcript expression analysis of RNA-seq experiments with TopHat and Cufflinks", year="2012", journal="Nature Protocols", volume= "7(3)", pages= "562-578", } @article{Li11b, author="Li, B and Dewey, C N", title="RSEM: accurate transcript quantification from RNA-Seq data with or without a reference genome", year="2011", journal="BMC Bioinformatics", volume= "12", pages= "323", } @article{Yang07, author="Yang, H and Churchill, G", title="Estimating p-values in small microarray experiments", year="2007", journal="Bioinformatics", volume= "23(1)", pages= "38-43", } @article{Sen10, author="Sen, GL and Reuter, JA and Webster, DE and Zhu, L and Khavari, PA", title="DNMT1 maintains progenitor function in self-renewing somatic tissue.", year="2010", journal="Nature", volume= "463(7280)", pages= "563-7", } @article{Rai06, author="Rai, K and Nadauld, LD and Chidester, S and Manos, EJ and James, SR and Karpf, AR and Cairns, BR and Jones, DA.", title="Zebra fish Dnmt1 and Suv39h1 regulate organ-specific terminal differentiation during development.", year="2006", journal="Mol Cell Biol.", volume= "26(19)", pages= "7077-85", } @article{DAiuto11, author="D'Aiuto, L and Di Maio, R and Mohan, KN and Minervini, C and Saporiti, F and Soreca, I and Greenamyre, JT and Chaillet, JR.", title="Mouse ES cells overexpressing DNMT1 produce abnormal neurons with upregulated NMDA/NR1 subunit.", year="2011", journal="Differentiation.", volume= "82(1)", pages= "9-17", } @article{Grabherr11, author="Grabherr, MG and Haas, BJ and Yassour, M and Levin, JZ and Thompson, DA and Amit, I and Adiconis, X and Fan, L and Raychowdhury, R and Zeng, Q and Chen, Z and Mauceli, E and Hacohen, N and Gnirke, A and Rhind, N and di Palma, F and Birren, BW and Nusbaum, C and Lindblad-Toh, K and Friedman, N and Regev, A", title="Full-length transcriptome assembly from RNA-Seq data without a reference genome", year="2011", journal="Nat Biotechnol.", volume= "29", pages= "644-652", } @article{Leng12, author="Leng, N. and Dawson, J.A. and Thomson, J.A and Ruotti, V and Rissman, R. A. and Smits, B.M.G and Hagg, J.D. and Gould, M.N. and Stwart, R.M. and Kendziorski, C.", title="EBSeq: An empirical Bayes hierarchical model for inference in RNA-seq experiments.", journal="BMI technical report, University of Wisconsin Madison", volume= "226", year="2012", } @article{Nicolae10, title={Estimation of alternative splicing isoform frequencies from RNA-Seq data}, author={Nicolae, M. and Mangul, S. and M{\u{a}}ndoiu, I. and Zelikovsky, A.}, journal={Algorithms in Bioinformatics}, pages={202--214}, year={2010}, publisher={Springer} } @article{Sandmann11, title={The head-regeneration transcriptome of the planarian Schmidtea mediterranea}, author={Sandmann, T. and Vogg, M.C. and Owlarn, S. and Boutros, M. and Bartscherer, K.}, journal={Genome Biology}, volume={12}, number={8}, pages={R76}, year={2011}, publisher={BioMed Central Ltd} } @article{Anders12, author="Anders, S. and Reyes, A. and Huber, W", title="Detecting differential usage of exons from RNA-Seq data", journal="Nature Preceedings", year="2012", } @article{Delhomme12, title={easyRNASeq: a bioconductor package for processing RNA-Seq data}, author={Delhomme, N. and Padioleau, I. and Furlong, E.E. and Steinmetz, L.M.}, journal={Bioinformatics}, year={2012}, publisher={Oxford Univ Press} } @manual{easyRNASeq12, author="Delhomme,N and Padioleau, I", title="easyRNASeq, an overview", year="2012", url="http://www.bioconductor.org/packages/devel/bioc/vignettes/easyRNASeq/inst/doc/easyRNASeq.pdf", } @manual{HTSeq, author="Anders, S", title="HTSeq: Analysing high-throughput sequencing data with Python", year="2012", url="http://www-huber.embl.de/users/anders/HTSeq/doc/overview.html", } @manual{Cuff, title="Cufflinks Transcript assembly, differential expression, and differential regulation for RNA-Seq", year="2012", url="http://cufflinks.cbcb.umd.edu/index.html", } @article{Du12, title={IQSeq: Integrated Isoform Quantification Analysis Based on Next-Generation Sequencing}, author={Du, J. and Leng, J. and Habegger, L. and Sboner, A. and McDermott, D. and Gerstein, M.}, journal={PloS one}, volume={7}, number={1}, pages={e29175}, year={2012}, publisher={Public Library of Science} } @article{Pickrell10, title={Understanding mechanisms underlying human gene expression variation with RNA sequencing}, author={Pickrell, J.K. and Marioni, J.C. and Pai, A.A. and Degner, J.F. and Engelhardt, B.E. and Nkadori, E. and Veyrieras, J.B. and Stephens, M. and Gilad, Y. and Pritchard, J.K.}, journal={Nature}, volume={464}, number={7289}, pages={768--772}, year={2010}, publisher={Nature Publishing Group} } @article{Wang09regen, title={Regeneration, repair and remembering identity: the three Rs of Hox gene expression}, author={Wang, K.C. and Helms, J.A. and Chang, H.Y.}, journal={Trends in cell biology}, volume={19}, number={6}, pages={268--275}, year={2009}, publisher={Elsevier} } @article{Chang09, title={Anatomic demarcation of cells: genes to patterns}, author={Chang, H.Y.}, journal={Science}, volume={326}, number={5957}, pages={1206--1207}, year={2009}, publisher={American Association for the Advancement of Science} } @article{Rinn06, title={Anatomic demarcation by positional variation in fibroblast gene expression programs}, author={Rinn, J.L. and Bondre, C. and Gladstone, H.B. and Brown, P.O. and Chang, H.Y.}, journal={PLoS genetics}, volume={2}, number={7}, pages={e119}, year={2006}, publisher={Public Library of Science} } @article{Blei03, title={Latent dirichlet allocation}, author={Blei, D.M. and Ng, A.Y. and Jordan, M.I.}, journal={the Journal of machine Learning research}, volume={3}, pages={993--1022}, year={2003}, publisher={JMLR. org} } @inproceedings{Andrzejewski09, title={Incorporating domain knowledge into topic modeling via Dirichlet forest priors}, author={Andrzejewski, D. and Zhu, X. and Craven, M.}, booktitle={Proceedings of the 26th Annual International Conference on Machine Learning}, pages={25--32}, year={2009}, organization={ACM} } @article{Wu10, title={Dynamic transcriptomes during neural differentiation of human embryonic stem cells revealed by short, long, and paired-end sequencing}, author={Wu, J.Q. and Habegger, L. and Noisa, P. and Szekely, A. and Qiu, C. and Hutchison, S. and Raha, D. and Egholm, M. and Lin, H. and Weissman, S. and others}, journal={Proceedings of the National Academy of Sciences}, volume={107}, number={11}, pages={5254--5259}, year={2010}, publisher={National Acad Sciences} } @article{Monaghan09, title={Microarray and cDNA sequence analysis of transcription during nerve-dependent limb regeneration}, author={Monaghan, J.R. and Epp, L.G. and Putta, S. and Page, R.B. and Walker, J.A. and Beachy, C.K. and Zhu, W. and Pao, G.M. and Verma, I.M. and Hunter, T. and others}, journal={BMC biology}, volume={7}, number={1}, pages={1}, year={2009}, publisher={BioMed Central Ltd} } @article{Malone11, title={Microarrays, deep sequencing and the true measure of the transcriptome}, author={Malone, J.H. and Oliver, B.}, journal={BMC biology}, volume={9}, number={1}, pages={34}, year={2011}, publisher={BioMed Central Ltd} } @article{Auer10, title={Statistical design and analysis of RNA sequencing data}, author={Auer, P.L. and Doerge, RW}, journal={Genetics}, volume={185}, number={2}, pages={405--416}, year={2010}, publisher={Genetics Soc America} } @article{Schubert03, title={Microarray to be used as routine clinical screen}, author={Schubert, C.M.}, journal={Nature medicine}, volume={9}, number={1}, pages={9--9}, year={2003}, publisher={Nature Publishing Group} } @article{Ramaswamy02, title={DNA microarrays in clinical oncology}, author={Ramaswamy, S. and Golub, T.R.}, journal={Journal of Clinical Oncology}, volume={20}, number={7}, pages={1932--1941}, year={2002}, publisher={American Society of Clinical Oncology} } @article{Stewart12, title={Comparative RNA-seq Analysis in the Unsequenced Axolotl: The Oncogene Burst of Expression Defines One of Three Phases of Gene Expression in the Blastema}, author={Stewart, R and Rascon,CA and Tian, S and Nie, J and Probasco, MD and Bolin, JM and Sengupta,S and Volkmer, M and Habermann, B and Tanaka, EM and Thomson, JA and Dewey, CN}, year={2012}, } @article{Grant11, title={Comparative analysis of RNA-Seq alignment algorithms and the RNA-Seq unified mapper (RUM)}, author={Grant, G.R. and Farkas, M.H. and Pizarro, A.D. and Lahens, N.F. and Schug, J. and Brunk, B.P. and Stoeckert, C.J. and Hogenesch, J.B. and Pierce, E.A.}, journal={Bioinformatics}, volume={27}, number={18}, pages={2518--2528}, year={2011}, publisher={Oxford Univ Press} } @article{Hester10, title={Comprehensive comparison of RNA--Seq alignment packages}, author={Hester, J.}, year={2010}, publisher={Citeseer} } @article{Wang10c, title={MapSplice: accurate mapping of RNA-seq reads for splice junction discovery}, author={Wang, K. and Singh, D. and Zeng, Z. and Coleman, S.J. and Huang, Y. and Savich, G.L. and He, X. and Mieczkowski, P. and Grimm, S.A. and Perou, C.M. and others}, journal={Nucleic acids research}, volume={38}, number={18}, pages={e178--e178}, year={2010}, publisher={Oxford Univ Press} } @article{Savage09, title={R/BHC: fast Bayesian hierarchical clustering for microarray data}, author={Savage, R. and Heller, K. and Xu, Y. and Ghahramani, Z. and Truman, W. and Grant, M. and Denby, K. and Wild, D.}, journal={BMC bioinformatics}, volume={10}, number={1}, pages={242}, year={2009}, publisher={BioMed Central Ltd} } @inproceedings{Heller05, title={Bayesian hierarchical clustering}, author={Heller, K.A. and Ghahramani, Z.}, booktitle={Proceedings of the 22nd international conference on Machine learning}, pages={297--304}, year={2005}, organization={ACM} } @article{Young10, title={Method Gene ontology analysis for RNA-seq: accounting for selection bias}, author={Young, M.D. and Wakefield, M.J. and Smyth, G.K. and Oshlack, A.}, year={2010}, journal={Genome Biology}, volume={11} } @article{Subramanian05, title={Gene set enrichment analysis: a knowledge-based approach for interpreting genome-wide expression profiles}, author={Subramanian, A. and Tamayo, P. and Mootha, V.K. and Mukherjee, S. and Ebert, B.L. and Gillette, M.A. and Paulovich, A. and Pomeroy, S.L. and Golub, T.R. and Lander, E.S. and others}, journal={Proceedings of the National Academy of Sciences of the United States of America}, volume={102}, number={43}, pages={15545--15550}, year={2005}, publisher={National Acad Sciences} } @article{Da08, title={Systematic and integrative analysis of large gene lists using DAVID bioinformatics resources}, author={Da Wei Huang, B.T.S. and Lempicki, R.A. and others}, journal={Nature protocols}, volume={4}, number={1}, pages={44--57}, year={2008}, publisher={Nature Publishing Group} } @article{Eng12, title={Pathway index models for construction of patient-specific risk profiles}, author={Eng, K.H. and Wang, S. and Bradley, W.H. and Rader, J.S. and Kendziorski, C.}, journal={Statistics in Medicine}, year={2012}, publisher={Wiley Online Library} } @article{WangS09, title={Hierarchically penalized Cox regression with grouped variables}, author={Wang, S. and Nan, B. and Zhu, N. and Zhu, J.}, journal={Biometrika}, volume={96}, number={2}, pages={307--322}, year={2009}, publisher={Biometrika Trust} } @article{Huang09, title={A group bridge approach for variable selection}, author={Huang, J. and Ma, S. and Xie, H. and Zhang, C.H.}, journal={Biometrika}, volume={96}, number={2}, pages={339--355}, year={2009}, publisher={Biometrika Trust} } @article{Zhou10, title={Group variable selection via a hierarchical lasso and its oracle property}, author={Zhou, N. and Zhu, J.}, journal={arXiv preprint arXiv:1006.2871}, year={2010} } @article{Segal06, title={Microarray gene expression data with linked survival phenotypes: diffuse large-B-cell lymphoma revisited}, author={Segal, M.R.}, journal={Biostatistics}, volume={7}, number={2}, pages={268--285}, year={2006}, publisher={Biometrika Trust} } @article{Binsl07, title={FluxSimulator: an R package to simulate isotopomer distributions in metabolic networks}, author={Binsl, T.W. and Mullen, K.M. and Van Stokkum, I.H.M. and Heringa, J. and Van Beek, J.H.G.M.}, journal={J. Stat. Softw}, volume={18}, number={6}, pages={1--18}, year={2007} } @article{Yuan06, title={Hidden Markov models for microarray time course data in multiple biological conditions}, author={Yuan, M. and Kendziorski, C.}, journal={Journal of the American Statistical Association}, volume={101}, number={476}, pages={1323--1332}, year={2006}, publisher={American Statistical Association} } @article{Tai06, title={A multivariate empirical Bayes statistic for replicated microarray time course data}, author={Tai, Y.C. and Speed, T.P.}, journal={The Annals of Statistics}, volume={34}, number={5}, pages={2387--2412}, year={2006}, publisher={Institute of Mathematical Statistics} } @article{Nueda07, title={Discovering gene expression patterns in time course microarray experiments by ANOVA--SCA}, author={Nueda, M.J. and Conesa, A. and Westerhuis, J.A. and Hoefsloot, H.C.J. and Smilde, A.K. and Tal{\'o}n, M. and Ferrer, A.}, journal={Bioinformatics}, volume={23}, number={14}, pages={1792--1800}, year={2007}, publisher={Oxford Univ Press} } @article{Storey05, title={Significance analysis of time course microarray experiments}, author={Storey, J.D. and Xiao, W. and Leek, J.T. and Tompkins, R.G. and Davis, R.W.}, journal={Proceedings of the National Academy of Sciences of the United States of America}, volume={102}, number={36}, pages={12837--12842}, year={2005}, publisher={National Acad Sciences} } @article{Luan03, title={Clustering of time-course gene expression data using a mixed-effects model with B-splines}, author={Luan, Y. and Li, H.}, journal={Bioinformatics}, volume={19}, number={4}, pages={474--482}, year={2003}, publisher={Oxford Univ Press} } @article{Bar03, title={Continuous representations of time-series gene expression data}, author={Bar-Joseph, Z. and Gerber, G.K. and Gifford, D.K. and Jaakkola, T.S. and Simon, I.}, journal={Journal of Computational Biology}, volume={10}, number={3-4}, pages={341--356}, year={2003}, publisher={Mary Ann Liebert, Inc.} } @article{Ma06, title={A data-driven clustering method for time course gene expression data}, author={Ma, P. and Castillo-Davis, C.I. and Zhong, W. and Liu, J.S.}, journal={Nucleic Acids Research}, volume={34}, number={4}, pages={1261--1269}, year={2006}, publisher={Oxford Univ Press} } @article{Sun11, title={Multiple testing for pattern identification, with applications to microarray time-course experiments}, author={Sun, W. and Wei, Z.}, journal={Journal of the American Statistical Association}, volume={106}, number={493}, pages={73--88}, year={2011}, publisher={Taylor \& Francis} } @article{Bertucci03, title={DNA arrays in clinical oncology: promises and challenges}, author={Bertucci, F. and Viens, P. and Tagett, R. and Nguyen, C. and Houlgatte, R. and Birnbaum, D.}, journal={Laboratory investigation}, volume={83}, number={3}, pages={305--316}, year={2003}, publisher={Nature Publishing Group} } @article{Azad06, title={Proteomics in Clinical Trials and Practice Present Uses and Future Promise}, author={Azad, N.S. and Rasool, N. and Annunziata, C.M. and Minasian, L. and Whiteley, G. and Kohn, E.C.}, journal={Molecular \& Cellular Proteomics}, volume={5}, number={10}, pages={1819--1829}, year={2006}, publisher={ASBMB} } @article{Aung10, title={Current status and future potential of somatic mutation testing from circulating free DNA in patients with solid tumours}, author={Aung, KL and Board, RE and Ellison, G. and Donald, E. and Ward, T. and Clack, G. and Ranson, M. and Hughes, A. and Newman, W. and Dive, C.}, journal={The HUGO journal}, volume={4}, number={1}, pages={11--21}, year={2010}, publisher={Springer} } @article{Glaus12, title={Identifying differentially expressed transcripts from RNA-seq data with biological variation}, author={Glaus, P. and Honkela, A. and Rattray, M.}, journal={Bioinformatics}, volume={28}, number={13}, pages={1721--1728}, year={2012}, publisher={Oxford Univ Press} } @article{Trapnell12b, title={Differential analysis of gene regulation at transcript resolution with RNA-seq}, author={Trapnell, C. and Hendrickson, D.G. and Sauvageau, M. and Goff, L. and Rinn, J.L. and Pachter, L.}, journal={Nature Biotechnology}, year={2012}, publisher={Nature Publishing Group} } @article{Leng13, title={EBSeq: an empirical Bayes hierarchical model for inference in RNA-seq experiments}, author={Leng, Ning and Dawson, John A and Thomson, James A and Ruotti, Victor and Rissman, Anna I and Smits, Bart MG and Haag, Jill D and Gould, Michael N and Stewart, Ron M and Kendziorski, Christina}, journal={Bioinformatics}, volume={29}, number={8}, pages={1035--1043}, year={2013}, publisher={Oxford Univ Press} } @article{Hamilton89, title={A new approach to the economic analysis of nonstationary time series and the business cycle}, author={Hamilton, James D}, journal={Econometrica: Journal of the Econometric Society}, pages={357--384}, year={1989}, publisher={JSTOR} } @article{Ailliot12, title={Markov-switching autoregressive models for wind time series}, author={Ailliot, Pierre and Monbet, Val{\'e}rie}, journal={Environmental Modelling \& Software}, volume={30}, pages={92--101}, year={2012}, publisher={Elsevier} } @article{Koehler11, title={The uniqueome: a mappability resource for short-tag sequencing}, author={Koehler, Ryan and Issac, Hadar and Cloonan, Nicole and Grimmond, Sean M}, journal={Bioinformatics}, volume={27}, number={2}, pages={272--274}, year={2011}, publisher={Oxford University Press} } @article{Derrien12, title={Fast computation and applications of genome mappability}, author={Derrien, Thomas and Estell{\'e}, Jordi and Sola, Santiago Marco and Knowles, David G and Raineri, Emanuele and Guig{\'o}, Roderic and Ribeca, Paolo}, journal={PloS one}, volume={7}, number={1}, pages={e30377}, year={2012}, publisher={Public Library of Science} } @article{Shi13, title={rSeqDiff: Detecting Differential Isoform Expression from RNA-Seq Data Using Hierarchical Likelihood Ratio Test}, author={Shi, Yang and Jiang, Hui}, journal={PloS one}, volume={8}, number={11}, pages={e79448}, year={2013}, publisher={Public Library of Science} } @inproceedings{Schluter05, title={Bayes risk minimization using metric loss functions.}, author={Schl{\"u}ter, Ralf and Scharrenbach, Thomas and Steinbiss, Volker and Ney, Hermann}, booktitle={INTERSPEECH}, pages={1449--1452}, year={2005} } @book{Berger85, title={Statistical decision theory and Bayesian analysis}, author={Berger, James O}, year={1985}, publisher={Springer} }