DirichletMultinomial/DESCRIPTION0000644000175400017540000000223313556154024017435 0ustar00biocbuildbiocbuildPackage: DirichletMultinomial Type: Package Title: Dirichlet-Multinomial Mixture Model Machine Learning for Microbiome Data Version: 1.28.0 Author: Martin Morgan Maintainer: Martin Morgan Description: Dirichlet-multinomial mixture models can be used to describe variability in microbial metagenomic data. This package is an interface to code originally made available by Holmes, Harris, and Quince, 2012, PLoS ONE 7(2): 1-15, as discussed further in the man page for this package, ?DirichletMultinomial. License: LGPL-3 Depends: S4Vectors, IRanges Imports: stats4, methods, BiocGenerics Suggests: lattice, parallel, MASS, RColorBrewer, xtable Collate: AllGenerics.R dmn.R dmngroup.R roc.R util.R SystemRequirements: gsl biocViews: ImmunoOncology, Microbiome, Sequencing, Clustering, Classification, Metagenomics git_url: https://git.bioconductor.org/packages/DirichletMultinomial git_branch: RELEASE_3_10 git_last_commit: dd069fc git_last_commit_date: 2019-10-29 Date/Publication: 2019-10-29 NeedsCompilation: yes Packaged: 2019-10-30 00:23:48 UTC; biocbuild DirichletMultinomial/NAMESPACE0000644000175400017540000000117513556117225017154 0ustar00biocbuildbiocbuilduseDynLib(DirichletMultinomial, .registration=TRUE) importFrom(graphics, axis, image, layout, par) importFrom(stats, runif, setNames) importFrom(utils, head) import(methods) importFrom(stats4, AIC, BIC, summary) importClassesFrom(S4Vectors, Annotated, Vector) importMethodsFrom(IRanges, length, lapply, names) importMethodsFrom(BiocGenerics, Map, sapply) importClassesFrom(S4Vectors, SimpleList, List) exportClasses(DMN, DMNGroup) export(dmn, dmngroup, goodnessOfFit, laplace, mixturewt, mixture, heatmapdmn, cvdmngroup, roc, csubset, ## S4 generics fitted, predict) exportMethods(AIC, BIC, summary, show) DirichletMultinomial/R/0000755000175400017540000000000013556117225016132 5ustar00biocbuildbiocbuildDirichletMultinomial/R/AllGenerics.R0000644000175400017540000000010113556117225020435 0ustar00biocbuildbiocbuild## promoted generics setGeneric("fitted") setGeneric("predict") DirichletMultinomial/R/dmn.R0000644000175400017540000001044313556117225017035 0ustar00biocbuildbiocbuildsetClass("DMN", representation=representation(goodnessOfFit="numeric", group="matrix", mixture="list", fit="list")) .DMN <- function(goodnessOfFit, group, mixture, fit, ...) { new("DMN", goodnessOfFit=goodnessOfFit, group=group, mixture=mixture, fit=fit, ...) } dmn <- function(count, k, verbose=FALSE, seed=runif(1, 0, .Machine$integer.max)) { if (verbose) message(sprintf("dmn, k=%d", k)) if (any(rowSums(count) == 0L)) stop("some 'rowSums()' on the dmn() count matrix equal 0") mode(count) <- "integer" ans <- .Call(.dirichlet_fit, count, as.integer(k), as.logical(verbose), as.integer(seed)) o <- order(ans$Mixture$Weight, decreasing=TRUE) ans <- within(ans, { Group <- Group[,o, drop=FALSE] Mixture$Weight <- Mixture$Weight[o] Fit <- lapply(Fit, function(elt, o) elt[, o, drop=FALSE], o) }) with(ans, .DMN(goodnessOfFit=GoodnessOfFit, group=Group, mixture=Mixture, fit=Fit)) } ## k-means mixture <- function(object, ..., assign=FALSE) { if (assign) { apply(mixture(object), 1, which.max) } else { object@group } } ## Dirichlet goodnessOfFit <- function(object, ...) object@goodnessOfFit laplace <- function(object, ...) goodnessOfFit(object)[["Laplace"]] .AIC.DMN <- function(object, ...) goodnessOfFit(object)[["AIC"]] setMethod(AIC, "DMN", .AIC.DMN) .BIC.DMN <- function(object, ...) goodnessOfFit(object)[["BIC"]] setMethod(BIC, "DMN", .BIC.DMN) mixturewt <- function(object, ...) { data.frame(pi=object@mixture$Weight, theta=colSums(fitted(object))) } .fitted.DMN <- function(object, ..., scale=FALSE) { fit <- object@fit$Estimate if (scale) fit <- scale(fit, FALSE, mixturewt(object)$theta) fit } setMethod(fitted, "DMN", .fitted.DMN) ## predict .neg_log_evidence_i <- function(x, alpha) { .B <- function(x) sum(lgamma(x)) - lgamma(sum(x)) -(.B(x + alpha) - .B(alpha)) } .predict.DMN <- function(object, newdata, ..., logevidence=FALSE) { if (is.vector(newdata)) newdata <- matrix(newdata, nrow=1) lambda <- fitted(object) K <- ncol(lambda) alpha <- sapply(seq_len(K), function(k, lamda, x) { apply(x, 1, .neg_log_evidence_i, lambda[,k]) }, lambda, newdata) if (is.vector(alpha)) alpha <- matrix(alpha, nrow=1, dimnames=list(rownames(newdata), NULL)) if (!logevidence) { wt <- mixturewt(object)$pi offset <- apply(alpha, 1, min) z <- sweep(exp(-(alpha - offset)), 2, wt, "*") z / rowSums(z) } else { alpha } } setMethod(predict, "DMN", .predict.DMN) ## print / plot setMethod(show, "DMN", function(object) { cat("class:", class(object), "\n") cat("k:", ncol(mixture(object)), "\n") cat("samples x taxa:", nrow(mixture(object)), "x", nrow(fitted(object)), "\n") cat("Laplace:", laplace(object), "BIC:", BIC(object), "AIC:", AIC(object), "\n") }) heatmapdmn <- function(count, fit1, fitN, ntaxa=30, ..., transform=sqrt, lblwidth=.2 * nrow(count), col=.gradient) { p1 <- fitted(fit1, scale=TRUE) pN <- fitted(fitN, scale=TRUE) if (!setequal(rownames(p1), rownames(pN))) stop("taxa in 'fit1' and 'fitN' differ") p1 <- p1[rownames(pN),, drop=FALSE] diff <- rowSums(abs(pN - as.vector(p1))) taxa <- rev(head(order(diff, decreasing=TRUE), ntaxa)) pN <- pN[taxa,] cl <- mixture(fitN, assign=TRUE) ncl <- length(unique(cl)) nms <- names(cl) grp <- factor(cl, levels=as.character(seq(1, ncl))) idx <- split(nms, grp) ## 2 * ncl + 1 (for labels) panels mwd <- .15 * length(cl) / ncl # 'm's take up 15% of total width wd <- c(unlist(Map(c, lapply(idx, length), mwd), use.names=FALSE), lblwidth) layout(matrix(seq(1, 2 * ncl + 1), nrow=1), widths=wd) op <- par(no.readonly=TRUE) on.exit(par(op), add=TRUE) par(mar=c(1, 0, 1, 0)) for (i in seq_along(idx)) { image(transform(count[idx[[i]], taxa, drop=FALSE]), col=col, xaxt="n", yaxt="n") image(t(transform(pN[, i, drop=FALSE])), col=col, xaxt="n", yaxt="n") } xat <- (seq_len(nrow(pN)) - 1) / (nrow(pN) - 1) axis(4, xat, labels=rownames(pN), las=1) } DirichletMultinomial/R/dmngroup.R0000644000175400017540000001007313556117225020111 0ustar00biocbuildbiocbuildsetClass("DMNGroup", contains="SimpleList", prototype=prototype(elementType="DMN")) .DMNGroup <- function(...) { new("DMNGroup", listData=list(...)) } ## dmngroup dmngroup <- function(count, group, k, ..., simplify=TRUE, .lapply=parallel::mclapply) { if (length(group) != nrow(count)) stop("'length(group)' does not equal 'nrow(count)'") if (!is.factor(group)) group <- factor(group) lvls <- setNames(nm=levels(group)) counts <- lapply(lvls, csubset, count, group) tasks <- expand.grid(group=names(counts), k=k) tid <- seq_len(nrow(tasks)) ans0 <- .lapply(tid, function(i, tasks, counts, ...) { count <- counts[[tasks[i,"group"]]] k <- tasks[i,"k"] dmn(count, k, ...) }, tasks, counts, ...) ans <- if (simplify) { ans1 <- split(ans0, tasks[,"group"]) opt <- lapply(ans1, function(ans) { which.min(sapply(ans, laplace)) }) Map("[[", ans1, opt) } else ans0 do.call(.DMNGroup, ans) } ## predict .predict.DMNGroup <- function(object, newdata, ..., assign=FALSE) { if (2 < length(object)) stop("only 2 groups can be used for classification") res <- lapply(object, predict, newdata, ..., logevidence=TRUE) offset <- apply(do.call(cbind, res), 1, min) prClass <- local({ nClass <- sapply(object, function(x) nrow(mixture(x))) nClass / sum(nClass) }) pr <- simplify2array(Map(function(x, alpha, prClass, offset) { prMix <- sweep(exp(-(alpha - offset)), 2, mixturewt(x)$pi, "*") rowSums(prMix) * prClass }, object, res, prClass, MoreArgs=list(offset=offset))) if (!is.matrix(pr)) { dmnms <- list(rownames(newdata), names(prClass)) pr <- matrix(pr, nrow=1, dimnames=dmnms) } if (assign) names(object)[ifelse((pr[,1] / rowSums(pr)) > .5, 1, 2)] else pr / rowSums(pr) } setMethod(predict, "DMNGroup", .predict.DMNGroup) ## cross-validation .cv_dmngroup <- function(dropidx, count, k, z, ..., verbose=FALSE) ## e.g., k = c(Lean=1, Obese=3) --> 1 group for lean, 3 for obese { tryCatch({ trainz <- z[-dropidx] u <- unique(trainz) train <- count[-dropidx,,drop=FALSE] if (!is.factor(trainz)) trainz <- factor(trainz, levels=names(k)) if (any(is.na(trainz))) stop("values of 'z' not all in 'names(k)'") if (!all(names(k) %in% as.character(trainz))) stop("not all names(k) in z subset") trains <- sapply(levels(trainz), csubset, train, trainz) fits <- Map(dmn, trains, k[levels(trainz)], ..., verbose=verbose) fits <- do.call(.DMNGroup, fits) predict(fits, count[dropidx,,drop=FALSE], assign=FALSE) }, error=function(err) { message(".cv_dmngroup error: ", conditionMessage(err)) matrix(NA_integer_, nrow=length(dropidx), ncol=length(k), dimnames=list(rownames(count)[dropidx], names(k))) }) } cvdmngroup <- function(ncv, count, k, z, ..., verbose=FALSE, .lapply=parallel::mclapply) { n <- seq_len(nrow(count)) grp <- split(sample(length(n)), cut(n, ncv)) names(grp) <- seq_along(grp) cvresult <- .lapply(names(grp), function(idx, grp, ..., verbose) { if (verbose) cat("cross-validation group", names(grp[idx]), "\n") .cv_dmngroup(grp[[idx]], ..., verbose=verbose) }, grp, count, k, z, ..., verbose=verbose) gid <- rep(seq_along(cvresult), sapply(cvresult, nrow)) cbind(data.frame(group=gid, row.names=NULL), do.call(rbind, cvresult)) } ## summary / print / plot setMethod(summary, "DMNGroup", function(object, ...) { k <- data.frame(k=sapply(object, function(elt) ncol(mixture(elt)))) sxt <- t(sapply(object, function(elt) { c(samples=nrow(mixture(elt)), taxa=nrow(fitted(elt))) })) goodness <- t(sapply(object, goodnessOfFit)) cbind(k=k, sxt, goodness) }) setMethod(show, "DMNGroup", function(object) { cat("class:", class(object), "\n") cat("summary:\n") print(summary(object)) }) DirichletMultinomial/R/roc.R0000644000175400017540000000030213556117225017033 0ustar00biocbuildbiocbuildroc <- function(exp, obs, ...) { exp0 <- exp[order(obs, decreasing=TRUE)] data.frame(TruePostive=cumsum(exp0) / sum(exp0), FalsePositive=cumsum(!exp0) / sum(!exp0)) } DirichletMultinomial/R/util.R0000644000175400017540000000132313556117225017231 0ustar00biocbuildbiocbuild## utility .gradient <- # RColorBrewer::brewer.pal(9, "YlOrRd") c("#FFFFCC", "#FFEDA0", "#FED976", "#FEB24C", "#FD8D3C", "#FC4E2A", "#E31A1C", "#BD0026", "#800026") .divergent <- # RColorBrewer::brewer.pal(9, "RdYlBu") c("#D73027", "#F46D43", "#FDAE61", "#FEE090", "#FFFFBF", "#E0F3F8", "#ABD9E9", "#74ADD1", "#4575B4") .qualitative <- # RColorBrewer::brewer.pal(10, "Paired") c("#A6CEE3", "#1F78B4", "#B2DF8A", "#33A02C", "#FB9A99", "#E31A1C", "#FDBF6F", "#FF7F00", "#CAB2D6", "#6A3D9A") csubset <- function(val, x, pheno, cidx=TRUE) { ridx <- pheno %in% val if (!cidx) cidx <- colSums(x[ridx,]) != 0 x[ridx, cidx] } DirichletMultinomial/build/0000755000175400017540000000000013556154024017026 5ustar00biocbuildbiocbuildDirichletMultinomial/build/vignette.rds0000644000175400017540000000041113556154024021361 0ustar00biocbuildbiocbuildQMK1~ڂ cn/^ Ńטd@vR,I{p`&3Ὑ7\D^pZ,8T7(Ōϻwgi58(WqLp()x3h+u\8ku !Vݾ[W0U=R>#I9:[ȧ/D}yCގrj*h8oCi >|oQ(l }ì: x_N̯T/Gޱ G\9ug'ӖJ;7^bi2}I/?{ǨH*Tw'Шpj, nWhx0\,Oyj08NyÝ[6>d뛞QKr]֐wXY4:8.ߛ]ȴ4 RPR^ohxzu++"%wUQ[٘Zv54؁B=í_H!} &' 3䂙I.۲='Ӛ*Pwb$DW:>bw!]0|t⯸ԛa613&>kp(9ݸR|$N2ue4 ) #]Ѧ3l}:pg׸}Pdz``RK;:@b/ntW*CqpG+ro] .Nt}Ye#/60-Εe~/ $?>_eg[[lvfOj-#>BBOfYZšvJ H3'= eb6ÙP҄grcKSca75]Y#Mnؔ"jIji8K4/19gkmg'5ֶF 3KpQuzz8=)zi[ K4?,XɆ =dYX99̹E;Y;Z35au63&e9o$Y0,Lʃ,onh9emZYS A0TXquhېdIrQ(I:Y kgmlKL7Q9o4BO▐dI3 # i*9 kzFpYNgphaL9ooZ\ U/__fM&D| +h&Ս%Xyĺq$BܯbU ӈӄ?zn>NeY֘[8D޹v+64[ Iuʃc4 AbZbgYHF~_z9K7D=Ǜ=E넾Hc9 jNGR.Ik7w}-Nb?I)V+GR#ʑtHr$]9IWD#iۙ-Pjҏݺ<1![CO/~eTNMnU Ҫ\#--!)Z/Gp4]n 8x߃. ] 2yxEv7K .Ά2^z)h9X~ dfmo$VA7սk>9"YuI~ &p(6t7T֥y 5&tE~00} 1i;TZ6_ q:i@»u˝~{.`M4R]⯄|Aàq}֥A'^(> %*6Fn\Vf?'}<3~@]lK>oc9_&uŴ8*$]G&oJlH$|s&+Bc7Ӌ JolP>zżLl"CS1/ÚN$ B.5! \\) ּ52Kֿ &?&}Bt)F̺ źK.(HX:N5\! ?dAdwjk|O[>&X<2)(뇛Gɱa d(=BwMB&.J]q[oÊ!H),;ٶ]WL",]2qZr-ngp1ƧՈV=혡g;'umI`W =)|X/&M.:|<\CY$SЁs vǵg{߀\o.dlRBa'1_b>3VFs FckMaCwsuJ.W"ͅhv7yD[T&`o/D͵qLm)sܒ1{ NL50,9~XSdc+gnm$=N]s2 مTy@![ :M@i^qx>#4;{sCz}ߟӁcVƆP~#0{}nb.JXGCp;Լ` |rO5~gӄQL#zF9|WLž͛1 k^nnpFnS;o:d^/Am99gz$'/#&o[yJk@xwM;yNȾO Q'yF]E;?v%!_ʵ'FjpF̽}zav70L[0$%̲9!rf51>ClO6B|k]˜$T?=3iέvt%ri%C1C_p\|RߐU8~eHr9c}׿Ҏb\vGhb{>DjʵSukӼǔ86jjXLڥ[RWWhY/"FቕUɋŬ/TQS` 2 ٗwxLN 6!%>S&4aʷVK7v#$d>CLuWC 񺵟;aFW4Ŏq zy-HSu9VehwLSCd+TQ*P :rӯXvX2EV?C{05o6{b>މw9L9ebEaH QJ`$˫R7%=ɕowiMk 14y%O;6)*=~dX+_[g㯱k6hbzyq:B.|5Z|N[xfiylS&Pk*ȋ Jٜgs9 ׮'\4^ /· gk@-'*_dWF5/̅||ߝ 0Q["~LڝG,CElK'qReM -WG4|׳|Qåh3<>Q*}ӣcpfTL;Éy6uMFֿN Yc%Hy;. 8gǁW}嘯.4\+x0xC b"Y`lYh|F1@v; }}sD ޵Q-Jh_; Ï JR !Г_5A:@{iҳNb Hl@ȖXpȸ a%9@TGpSb!Mi=w'WU Y:0=0zL 1==|P۔x0|ߎqM/P'moA>SjssFB(Jø̭MxJWa8N095syd-zܻՀ8ܡyy:d! EN MƔ9ve Ҋ]xᡱ,lgA^ǵ' %^'s@ ~Î<^-HNs]`{FDh=TO e8:y{lD wKw,{#TJMU7oGKk;61I;{-M4sE_jK~:yሯ}QzNiڣ> yQ@nQa>*FN{_ͳ|T+mE>Fo| EłM콻%fEÝjUvC }ſWIcfYŭ.!Gמyْ _Sg ,+!'' +uAxNGEIzX*WqG/{=kuha&j6!Zgug.[wi` K Ak55ӆK:vâ_ii{׷n86%IpڃRk-\[:p}W&_`ߧpX @0 I/e8,BN!{qxuI" w?5~rkɭ޲O~?-lxIr'y ͳ`$!HC4rNI$$C A9$Ϻ iEB$O i-HhAD ^"D !TB4B"S<B"Oi*S!D !!H8#Ia؄c&M<6a؄&m\^"Bj@܀r"d @D @D @Dɗ1Qr5jDՈ#ϧib,F^b$׼$fP|Y%In!Yod)$($# oس$i"$"NF!Elo?BdB$1 (L0Y$1 ]#L0ٕ9&PȢ&?"(Q"d舐ʐ]$B2"d8*B"d1 YzM@$JiQL-JRxD$HfZ,dQEB%,0QȒ.Ft1vob$y FYH.FodI#YI+J,$i'K8I-N,8q/NxqI' [$lqΉ~y|S"Z^=Yz }N 8QzA^7q6dګlkcE1^$&*gU]Ai,Sjgnǿ4N7h$tGYX\pCR$}Y oil "^K/TKvJf4dSWl  MoY⻵4@ӹbϫw¡rA  m #>n';sn9xT[$S2٦ -~P)^Lt<%kNGU-Ȳ]? +X.AO,BbPvyӷ0xYY(M%w~RK"rxT0.W3iZP9,v]*UQ>h%MfH"b}%@)3>W1&ZE[v[>RW9y2=1)-G;Dm? fx|wPu@yӝp4jMk+Kfr,H0Vͅ'7{w5$:x3e5JvV>x|T)`7|#+=\?RX 0nQy_g2Ӊ+ -]yG#C;7sϨg~u^cWJ(|}[}~`UB{"i>[USU&x+G&`)>pdco%R@+g7SJ>Qʠ_qPGfћkӷKeTBLtC!A3̶w:@lrsXG0l~ #E4΍1>?Fvc'd{H>Q.=9c2:t\}חH毶HP#nQƸ~qt1H>7h=d<lm@i7d$rù릊`// Mo>[ ]rGî r!7]yl"w/,JVSQ3u32򒈰4Ϝt,\dCY~E`hH̷-nU6(^{3 z+rVUlNAT&)A=r򂲉͍VO+q2؇Eu {QycSBN.j} 1 '5V&%re[pL(}i0!$oE(Bp$.#2w5Mx4-ÆձOo̶ w_p'Pj8$ HaA.#W^b! 'l-AP~A"ovn3 T; ޏ.YD2аf=TV`Ce;s(Mض$)B2pmo3Zqz]%'n}%s1fR)+HvLT۔g6bAyY)^=yYsҡb~jc]Ѯ2_Y]q!$]S?WL@Yo\4- 7XUуR?+~VZAF'a47䪉Z7ָ{/ O0L68+|t>(8?A Iߍm݈rP~9C'Gm8ڧ fP4%*S&ɤq]Ɣ[`p?\Bwu00Y= wdi{ބ?)7{ҕg8}n[Q*=b[G&6P{篟 Oe]tABJ~gG35{2CvT]=FToDW*3!V^JE]Kvc@qa&}2L's]~10R-y e*݆jrgl{Q?iH6 IJ_u/=)!@h_Z|iϗV>_Z|iϗnԠ D7@J҅[#dԷ#?o"&M:;ǥ5!?7P@&w{U$A5u 8T[bT%< 櫵`$#t>/]nx2Bԟ}˖)"4b?n2 *OH ??qo~h#YB{8^T4Q^.㼪q0*G?yO WUvB{|5H\~ bo2^CLUўQN\~z.sdv~Y |x^=n\Mrʕӿ3p6y/r<|wzȯfaв_xX*zd|Ogk˧8&83Ifp+;pUpw r;0.t8lκk8}q4nz[?䗄I|X'6{XF40j; \ⵐZJ'tط:1Yb5~ JlRd4x`̭Y㲆[B!O"v/GQvL$;7Pm?̻+)SJ&vG˂DU!8eaNgBX 㭑 [D@bCV:xxk-)i F.Ov0ۥzۢUO]_o"oAQIj#| *x1މ߁{pp_"~:f >?&hau+O% >4ocKbʆi/}VIw~Gab7^N*xCcWk_ҁ͂o~Mr~czg~{={rTfTQz2…*y@'p L %Z UMC,W)h`=UXw[@|wɊS H Q5°pB=ސo/< cOq[tYWsQ; ;ιʿ_ eU !ޤq:;d!Cмg d*࿛Jj:dۏF@չXZ)CwDES)yeJ-G>{Z[{ :x 4ahs\\x֌_S&k c VnT B``]61IlV\lMɢ&x)0{^ "׫||zϸ 07R.)CDYlVh݇ }.燬򔩼Ѷ3D*m|f脠rB6Β^| {Ͼ&~ Z('B T:BZTj3h|t/(p.U#ڻ6! dY`:uy8";4K^k񳮷:;Z7e颤znf0㞀mYb ~qCZċKM=o])LuE v?7 5AZEvn)1Ά[\s.np($OGӇ-s;.g(K W۴W"JeΉ#/shA_tz7^B t^1Xq*fٞS|eŌE+h`/ i] vH,hx WCQoe%Ayg)4kqk : ruwo9Ňp&'c]7ocE`} .t91Ya(G j\ rapb~rS7;am-0pI( kڎjޑR6O9>X@NHׇ84F!lŽ, ];vGKU B?RL'9A!si>w]adpʚb+kW+W^Y^yez5uD.[=* W_]o"Ϭ_"G~Ó¶#έ;5w{!a=x2,Pֽ2cm͛nuIdxұ? މX;rq}͑OvcegxzHo:n/yi.}J>ϧϋcX sMFܸ븫C"vqzޒctZ~ý^Wyz&ҵ F8 _BJ/J1WrNFCM(2|s%xPq{w~AFl_1ac{զOe&QP|AYRf.H` 8̗>B0ՙ D/MYrsRMS̆'mvݸߍ?lUe<0m.[x:ndZx= Z|OA23CwP^ AvJ_~ʲ9}/Ɯ"k˯h[Bɹ{}sy`r 4SԿa ,vҙ a*m#b1'[q1AܰzZ̙72<~DJPG?c&C`5▀S.'`1Ww>p{y}@2O>PL{"_ &oDR7tY@7׃&@uL MDs@=~;0u={*lNNm q1pMmNGIF~5[)]_AI.(n) 3~t4^@շuPul$LӃ8.)~(kUBT,SțJ4q 34 W18w2 yb\â"^UYR*%~Ȓ²&d8߻Kkv@[)pI酒*Poz|Dմj"yW)@nkq׋j *PtՇkۋu-!'2at-ڡ-b$8. wxf]=aD{HwPI}+3?i˃zG%}0eXIdCb{(}μp4:$&ck^ǫnVOr)DcukAsWHtZ&End82 d֟ n ig6۔BҧLyeiP:9YNe :N?({ Oix=ЧU=H)A ު(zD(?ݹ5k 9Ŷ_sW%,w%.;z 6!]5'z-,NPTLKj߄ތA\S9󉏩geO:5/lz"Mj3>{B7ӄɞFrro6ZN/6U腥h0ڨqy혖,!/\Ah~Ϥ[R-] .ȱ"3Y{m]E.>6o]Purws8OQ;po A{EoPmtjtٜZ3nCyṁ?zH[v< 3U_(Ư*y^y*im{@xEa(s ׮ Ap(R~s:j쳜L+VP{r6=EVC c u(̯*k*q c΍:m[ G((ӾA4||qzZnNO˼a fZ;Kyw8-?2uyBz|3/{ɿ% D#>Oq>c k*!z Hi$SAvIM=A jmh9y^:5 /N@u rpvkqmC/-^vb?n;L%K5p ޓu5jZI7L%s E['|× K3 ^'+Ugi4wZ=HLqy3_faQ-Q/?\A3 9^P܀ot._RC݁@u2WА "=T2/@qm*=,e."DgKn{^w4Յ֏K@[n -_G^yԛejXHd\yxgr#P+Yk!.#|ߓnq$S (Ez-qDp'AmuPQL5eᔂV{x&}pH4kjE#O"@=aw7*5T>v~W7X;al]cp1w +LC]ҡd TNo0#O2!߭UP_֗G5PEҩ yYqrPw@[w\ӗFGFA酦rN!\j>" \Hx0 I^\8 ӌy.3:_—Wk1f=ts<DN)>,}Cmjh oִI5Z3niŠmVBGqY\5 bd@m ~2[pDndq2S$% LM7cJΣ~@v#;? h~󏡸NVnޞݖmVZ:V&:ZV:45?״7 W_Z&ZZZ֖TײBPnkBqƶZ: u,5L,5ooio1512)6;OqZt]]ktsOHyRYYXjR~ +LoQqZZZF5oejZok  Kmh k,4lqh Ҷ}}FF:fh5OH9(alfk8jX(;9[ZdFZ8@& m45+ryM-4M5,hX[GkmMtO k$BZ:HBo Z>0E6?xi!lb⟺Sg򘰥j i= [i&:&??$_X[$:&AQS m_V th1onj{ojo}7u,PH[]֜imaj?/ōt4wο<3/ƃhVNolUIp[Z %JggW2 &&V^A%th\jοxIXVLB_$,M _]B~{%)wљoYXXwܱA;4c8xWjXhhתU_ Wmf?k-P͹}wuvɻ:f#[U2_-iXjiXhz𮩅ZJ6XlR"{&kk;'ad ʿ1%A)dng>)SKMk݈LH@"گoei# _!{Mt4 %F% k\7BT]LO.9:緅/Eɥ5q+֊PZ 5K_H{ϸ"5A;3rIetНmZ.cwژKk9 %ΒǧrI졆Ѷi}$U5ew}ۿo>IK9vCzob7蘉oԔ׏X;Qly/hmfA`2E 1!`M~mTҼ8OϜwBeH|]3!YvWЀλC݉@ma;H*G7Zjg&aKhZs5l8>j8HrkNjI\>A [2k(H0~q`$m}30%k )Vb^5b&}>_X Uv>1 >V C:"QIlDxXB&c.^B.Geniϸ*$gLwʻ WW\e+D7T~^2xoJ肇q!NlI5bG++KJ-ަ;D_< v+XύPqYh'(0:jJ0;ARQ[3 +dP>-'fX !P!̞Jhأ0s7Xt M'G^ZKkW mhZF6?R݀dS_ tجadb$8ʌ4~ߍ_̨Ouҧ#Q %I}'%^Ӗ[N}uxT]w&:98T奻yobw?Iv?Iw?Iv?Iw?Iw?Iw?Iw?Iw?Iw?IV$<˪ '5~]4:)f~0lhuC̹$C)(A" ^ˆ7PAIӟ{jpM fC3!16,r!z~Zt}g)9 F_ _(e<#*  jVRu/p}bn |0si [$Sv(Z톶=wCe'W%xy18 _Rٷ;Jo/1V 'g Q5h.F>P_tnv`9;2Qrgz[[Jwnmc!0~0-||4n}w5-~4:x Kf^A[;ã"y{{R?*_1qgK'hjBpSt1XՆDn <Ʉ2D"jyZnUH$Mpg*ӾY Mw6&j&tΠy/e}92K{?A(| G4= ^Tb'4Tkc i/l$6Eg tU;(_y ~$ƟP|@Ϩݗj揸tH44>eOJ?t:bpuPY> - ^{PHy1yT ukiWy>[拠45\B4-`,V]LoMIU}|(ڿqrKR9',q[h;Sd>si9CkL˓LCͽkl2o+Cﻶ[L8P9v߆Qr}qTP>i,~Wf${E?ϬVI| WsN@ko ?OQ/ Vq}(dE` .dk$5V`ߔoa$$$$$$$$$$[t?%uo(RFY33HC h[%c34 4\n$lzoMx2>BU@QN˨7z|lo!߰LT/CMSf0g9Nԩ( =D|Q P8%~YHuIod;7kxQ);;//`փ 4+2`j.: uU}ME7=?WO?vv93`y2E lTqK_ԁbU8}Uƶxu#M6ldʥ3دe!Ō:Zj#)K_T][y=^}9.a\]rKis ~k h N} O w9x ~4mӁ_ɋF%+zQgTpo\JKvxrZ<ל Q{TQ >P@5Xk?V;/$Q'Ӵ_DL'Ї-gJNJvNk}?oiD"G/Z[CJm0.GU :XXܬ E^9ЀWK@3S⏪c-$T~ZDvθ*bQM7y#6k2(_{!k`nkiNtK6&[yD..Bi(?1.o2G%.nEGO/l55gʣ.SbH%pWjG4eshyl3yb8Ү~ϻ>.zVjW;`rQVʗ(ҏO3_wS ^VJ=.~Òٻ,Y;R h?}۾(mݛZ'"Ƴ}n17pPGK4/έ3l1 K9+ T"Kp,$s"{%$qt^7bb_,'0&sz F=hl#[ut~ญѹm3iٽ~pC,|8>9~o(m}gǩ?W^"=Ty'uuNO&WaԵ۟G"*},橣w(Y'wJT Aӈnm3ԉ)>qe}3\O~aR-׭r'gtP.^{Jk<͍n $eZBLP9U9+[Ƌ6R";#J7ӟ:֕ۦT8?ׇ ?G!4^"61^sa )OPeJ#Kjzt|r U?)kU>$QMYqbtˉFxe O!HH|(gACzM&Y?^3'u}5ct#ً:1Sp:U(=w2joj.H ZNomG2mQE뷊]$B 9屢`C^ 1!%h\=Fpt[Z" pe)zKt=YשE'5o!xd9i:Mʿjr,hqw~h-8puz;̴ ^DS.,]7oyi28 [4pvbb1^;i0W<9Pu*fdoQ mqs|D $|5)$g݆"+!ĕ>9 b!vE/>]P*rC/kEI Ʉ7ugrT߻ڎm(7`N%M5H j'ShY̚(9t&ƭ6Y@gw )gi?Z&C>Ats`fcSWzݷs/}J[gylpS(4oexn˕?}, om_%MG4=y)zc,O*5b.#s@ f/>È_No`EVhOC~o\آ@?-{^rՑZ03 3?^ҡE,[ )#qgԎy@״j>vE@8d./RpC޼y&Ju}Y< K܊CR]q*p>jޓN G4~7^Dr sCccV+:lGO[v7& d'E^ u8"s_H+='s(I.T8 :iGC_8xn_ 8ynn"xa/U{R{5`9tB#M+حӭ8ڞfF'/V,KOd1b=z]/y3Wnߝ>tVl0mNBUGۑQ=Z)&TT\x.^HNB\4i*s8"3p"7)7PW <4G ?t_,zi蘼YBBQJ/g T|jc<(qο +q>c(8*~) 3ZuM؊d}iFq}h ƿff A:?ngpXDT:2v)&n?҂Sާdh჋.1>xO3_j7eKtw΁B~|M#?w8ᡳ#T)90~wΤJ8ԌquԓҗS .!_UʵJ{o6n\5E:!a'wQ[<_~~f}|vhลsy4;m %7"uDpմ8zkMӅWco<p+KDT?~&%&PI7\(c&G>ue[zEZ^\+ofpaй>qkB͂CǪ^pldܿA?#3}?m־>]3>tbQ6WNV-so6B7ADSx鷕wf`+ yqPX=Ws 0ҕ(3 c{=>DIF\L6(bIª⣝9 ?HHC[rF#)R#B/jOə)ܒX;AqrHV/]DU$!wksqBg jZgGKN32R/0;!Ki Gc}{ѭkEwsZ޶km7ڶ\kZ͵&k-۶\k걛km7ڶ\kZ#j0\k"Pmi?Mk~wzW~0wB@ c7U$8P rӪ@ޓL^#0D@W@Nd B.VR:h*KڦBG5Y`Ȏ CuG?y]­w4 eBvL3> R ř$Spv@ 3=h~A oqu ,]6{ c"W5S;D-^6 F6IlƮp#'ܽqz ))xF9%P}J6/Wƙ&G%(m̫cv#e[CuˊhXt#]-ėZFq ӇOknPsqhW AtTʿ` he\iMMԏWtP,f] 8q*aꯉ@܀,gN:O;*VIRF0[@RgmOOf>ߥ~OWP-]z >̜<':.l)xi, =^v?r;[S591`OW-'sj e1zn$=$8ETAJk8,,Ia}S\Ku 2|swYiőf}BjsIcQv M$Bgf8ZXc Ĕ_@J’wMegV0'goZynpO`of. #ůh!Qٓ0LK5ρCxoC( m%||{KC.;'2p4Ag%ggezP|f6"v1co5tUEPta$@_I]ZD̩yM%BqnM!+*bC-KчBGn/ ƒ+P &L./ui]0FD$گX'm %B+le)-e? ?)@ʪx2VL=CC ~_ s{,R)ޞDH8)~sx}WZr$B ! `6,JP\U;[vH'=|=dz—ja:P9$i @CD+ TGzA9ڶ|;ՅWRf"ڼ 7Г4/?̂Cr~eDk?'s?'s?'s?'s?'sw.B8UBq%r [U_$YYxQ͇ Hh,sI<%/]!7B}sf.4LF@DĆsoe0dcfgC?=2h_ߒcE oÔ?xDcmtO,5C*1\;Ϙ>gsս0 G%] ,ꗮš,P$;Pd${""UB+ݗA+s_@s/гe)|4rբN$qzSvڣg]ӛLV7*t&(T!V @u EiK tߤ ûP`1>;3`upXof͈ к7B9\lO!3_J0e/}3U@Ҿ<6p># B_z<9,E_\ɁjaO>9#ȸ;~ۚ{ __$@#~:~4X0/_O}?;5C9`T,-)͟Cbt0(YG(JŃǷƁh}`6(VXт8aPTV%MÓ ?i֥.ր:߀o>PܞmX Q7V`gؔWfxR%eh.kYBtJ[R VG+8 y*u;Ow'J_}b^D?bZxgy [ O3i ,sR X1ܱ©ƫ;oNPp// }.\hŗ%BE{s:үap*s]No} wxW) %2-|n.j-y`$d6AN$>z J|uPEb B҂{iʏ@WD{\ʨm¡ם>"qHjBӬ{ a$)qDNu>Ul j=%B5J3 aՇj`w lsAkZ; ir!sN򝋌ZJ܄du'ZFME)e N^A(;cܠ/F ? Vr1̤BI$F@HM;~-w Ms7!E{V>w.oGK>=nWo ^!: X~o4R Wq,39|,+n.]úB_pq)h|h[O; UnO.]j o,_i,@H3Έj797 6ŒdZg""~F 1g?k?N_ YEQ͖toyLBkנ ϔ:NGAՌw_ QɩPJBu婗>|W=dϜbpԾATAk:zNjUA  1s.iTl<5v'G9XPg]Q(| Uo C $/%#qK͐c/kêV !N|}@CыuTauj9GEE!J#?Ԟf v16xsGlpK߯ay鋬êp"?6 ExV=ZII-2Bǐ/ 1O:!C0ͥ-/qτ<~IyF!|=/s`ޟ|yȂh/4V{t)w}8㣟W![}>Q*bn aegSr3c߰?׭02z`"1K~{5PېXdYw#.w;SY8@8cQǹH`[0:q 2o8@_ft H֦AAN@sQy[B>.|]I@YG8i_[bk}+wj6M--sgpᗤ W<_li&.|.f~'d`P*wmxӞqò)0v 7Z]X.[w!Po贋"4Z廸@<5NDkg/@7N2͢~ɐ D#`Re B .ѵcj6g ^ cWjerA 8{l5Hn/'j߄و:j[}.t-z*⟽#%̈́SRүA<.eTRTv,27_n,Ԝ;U 24f}Qze9}r^בoQN<5 2Yj{w^:6,\K?*u Yi9O {},WTxWTWTxWTWTWTWTWTWTWTy2ۉ7|% n7q; ݉ p\7U"`2x}mnŀ ?刱iTĕ^àL#ӭ (m/Cn1p)C6('`f$5/d[ 1U3^)[-y7~c1z)`WϏ4l%~so%6K$;hUE^٧֫إ3Ǿ @$qA0 Ps%\c.6\BKfD /uJ S?iM#)˩C^s'R#]O僙sy\L{\`veu2͙.p5sfi@&FJZL7 fRrRN|ʹ/`qF$` . aS K$Gk _~^[%(-4yIQNK #g_pw @/хLY9IטTri'_a?\b^BSh\ |BmAg!/cV°'?05v~mԅ#Tqu!a 7p .?Fzj#-gߓl8'aZL ާcxpݛm#g uL eS3ʚb=;0.!b:-N^Bn;b䧆OՒ \"} €W;mp#'^8-"Fr`O"wfD%{ce.Y6z^'@?>C ?,*o3D _cCl GO .ޣtjt/Gvh]U',ťX?Vp 7]֯obiETdL7PyHzeMjLOSsl:cףpa糉wC ,sf=f!y)ksg.^Ί.T{^\4讽5Ȍ~q絘^>>?7Nr WJOz {K<h j#Wk;RyvYj57,Wĸd eۃIO-N'l %_;)(=9x sHȮwg8` Xb+-\卽?+8LL(%lP>}gg.Z{.z[.ouaq?0u"\M⟐IM^}M7ށء&<Z7[o0yKPDW]Cl Ӡ v=C7Qc͚a-`Nz[B8^Ğ #0P&޸l-eЪkcTLvuG=޼Hi!K]Ě1Zp5+Z4^H|F+y Ҿ*y& υa[1dւLG .1;=h}qM'>{ CQRùMTU1x/)K)/#BƁ-h"w+!hƞ|$ B9TXY يĭ?oTFͰ)ƒ [c"kɲScI b!:6LCuZA"f{bii}i y$7~G W0# Ç1Ǧ(d"DFHTUQ})ɦBMoff4@JRc!rMj3d%*x#(N 9/yX4u_Nv'Z6;xP}C^!b͟Zq0E#^7FBƩUx@ ?#f^Z9`WdeKΚn찠J}Jiƃ[ __ң|tXp|(`T*Hj%8h,+;Z{SYUIFҔ,HaEG"Ua#zPb,}J/A,7R󺷽Wh͕zփqhayU3TGn"5Ɲ{0N19e)/܋ yzgńGlƚe_.+ ,,T^M_fviyx}|Y=GFhاo}OԕW@vYqDӿEi4Ama8M}P2.apOL\_=5T/b0ZA?Ґ!VCr[b+O",mtHۯ ygۋH_eI6c0 呩 )}t1oN{OD'|O}C\\p`f4\P@LXAJ|ї0BYgԿx?D~I=g.f\KZVćǑb٩ C0% *"aAI[%|T k B@8KtVeDk 7/amGCԶwBpUȾG>mI (F_"2bHhr,D\ϳ[1Cjf{h$tڷ_89gI0&7^ f)'G!yjsiQ,)W:kP6͍Rc~EM9D[(2Ҩu A?q (2Wc)»չ+~?k %C^4 Fh.JbZtFcZL_"sZw1F*j"=놗l$U!۵,A\Y{ wR"+;޶؅gW0Y+j왺t8]`A띞({u"2we|ִ*ks/DqzD _[\ll(yl"ǞMn\3Oq]" :OMhּ`p1ar^7>Bx'=Q:#'ZCnx|FЃ;jc!҄Qy"G8 oȒ6aE z |G{xu1rJ `nvLR.6vlxnP[Yj:VyFXl΅!o&  wgڍ;oSO'֫x-=bSL+iv\v L%2MS X8:`οJ[uE*嘞(c ^C8HĦ"Ddߐ~C`HN(̀ a1 2qŇ]SW 1zo`?`dw1/a[*T{$L[ȡK0)q9jd}~7}H(IXA 3_´AΉ-`$SO]y+IFv-l[ s8}I&8&CtDmMJA VBxCgh=DnV)Xzmcd n1z\bܡMNJF٫g]uE>j)sCEVEa6g|HVλqy(gIOO"]mJ$1ߛ,)z"ś! {fί7z{fAC݃jӈwG>t!J@InDG#޴LG^`iZd1"*$ab;;`J㇓}!%x԰~ABoOz<3p;8!% x-ju1/gY <k0fsҹ{# '[Tgi\R)٨o&¸u[mՠjxѹCp:WYH[ =]O]D- %)JB\ς2.+x72gh yiʺu]24 Y7pG-0? Ah LN :>di>!!`iOCr!K.EC.WIU=.AZV+<!WO"iH ܪJs(r|L %t}5՟ T?ӟ JON#Q>Q"} "pH)fZv/q8d\Ddؑt>p3Z V{,1S[EљhLIIFNtQ)%$: C^7Zl|_"A>:q9p7 b,D혘 ȞFt*x7!R.S’.be> {Bysp 7VC>sK_.ϪTpKe-rC {>tlI$iQʧ-`7# La0 /_FVI5r _"#"͸ݙv2i6E(>s< ^I\&Y%`" cpJ3[K&ĵ[wYܭyjFg+N|#l8C%%t7 H"3cf̞cej.YOU/ |yBǑ#qqͅƘS QtN03p^ãHzD/mH7-1!R#Ƚr&j;i "kRﭮCuZ%5̒lcFA7M)Ep*- ^|?<+4Wo vfo"=XF*b}y3YQ(s\qct|?D[b$+; )sk3nߣ}H?->G2 0?6̨W0;6ޮ\ntgfݺ1,=5dp\'$$.a #Wh0:Xx*9m'h z=*^>!\!L7ն!4Mb"?[b̥`%c~gG:۠Gy<-bٯ$l`(2's 񸬶ZY|m7U;rϹu`շncHuxFuӷ?x,ߢsf+ Yj?jt=h/+s_4;08EAXRУT5崒 mόR}z#ݣ#h#O :k"?!MFO-d3y8[ n7?))&4\D>BsG.1{ \W>Œ0dC95miQ2dtog|1̯E[0f -Ov 1&tD蓽Sl|ȰȞdDBįs!8:cn/?~DYm=9QrNqNGd$,1 HZjnwH-qcCڤI2jkF&1f7\+e]?TЪ/$3*ǑMeTPvUnVl(z5= هwzF\g΂+E.7fr{_/O*ױ#H8/1MmI ՀIa{P,Ǖ>6Mg G| {W-/es{_aƸVFMP3`&hd#ˍ\xŽ2ɾ]6v݇"v}(b[CEKCEPCPĿ$>e>P"`2x&ZN6 J`qSC$k %/<ž3͙#$&W* okAZM0`S_|sΞ;=qHpKޣ৐kO*ĐߵŨK/<gMJӛ{Z5aH٘˵ϭDEO]{YmFHgL!-CO@[cQFxOd97p_ tgNQq >'DE9nbkn$|+KFs݁Јd0Rr\!D$Dӗ% toE#:r]jF$$8nnz])O(qnl-tnS8֣J9AY4Wm<<:eX}?8, GM "^z,ǐϝe1 Y^$4sH$qbv [.:[Թ< 53l:-д_S=(=Ib?l ) >p1q#)T45y 0TNS8 pA~֖-~Kd*bxv9hNSC7&_!)O=n*5wΜw,M&")$az54977{޺~JWeS<"K24Aϵ 0Y9W / *qrJL UIZ(ȡ$R.l RONςHLۙ+cOQ|I1 <_Ki{^ß {H_<0 OXSh Y.H I=I8AnD7[:lj; |ݞMi)b_XCwR\;s(~" El34%v)ʞ U]GVO8@tD4x!͈iyv^>jQM |*~wQp}-w@o:=r>Bf8U"b|9RDvD*kicAU]i,W$@.40 t5o:5`f|C]1.9؛eׅ|B G!>ve}%/Ed/0= u0@Jח/mE5=~0s&iO}D,$g+\\/ؿCQRȝT#VK@`B<<\ [_r&\ΰYCft5GM: J_Go5Ufhį^"Is> =}ՠ$냌!Y/eȡrtB/O~˫g#I{d P^L!taD0\ze/4i(3h{f݆K% ~cD:Cpk7VM`=*L{z cρKIu?k?GI N<7&^!g^>uHRc~Lp-6CGd! >Pr tsH߃ x+6}HC&g :Pgk?$ ~Dj:P2.ޘ:MAYÆwa .J<-wlnPeʆlda?9QɼKz2#.hr: s>Xj/τ~L_z`xz3.U3Sw<,ӅK:$_@L̍6T>CU;$IGm@LjgUW<9QE_P/t'hʯ@4ofP?b Dgk:;]}ל_akfI:Ɂ$~<:Gm^{@,Aq!"ivS>M}o7nvSU|1+ PmHtS\r!)[.^>c)A"oRgI +D]wmkSKnL<6lO j+;b%:6<&d845_Ϭݢu[g2D\?42}kܟgC#"*TZ< *6/J:tp"7rsCpBbqJo>zw{uFL%'^RM(T%isԆ]p ;sI",x @qXpN}G 7N+O')C{8IH!OOSxԼ?yP W \RiD]9﷔fK!*Q8 \9m2*Q=>C4ATOf>wV!Al9TIOrF݂W27?ohSB?6[#)0I;6᧫,Zoө4x@ PC?5 XɃUM.ElBjU!t]W'}S|9x\je"$S,82R|!WVKL%4! ޹Dl]د A `^3~ oJT 7kʿ_{J[QcGcqZbT}_\O}mLMsUf0[+= ~ 9%8~oZp$( ('ɅVkhi=~qXhӣ~PgOGg-= >+xye_Ȋաqqϟ!-fv:/͘t sׁ X:2NOm.Ѣ؞;]j2671,g8tf`b4_81=$3D>KY閣t!ڒs^z^xNگSLu!^Aeó E/>R SƏR7ӿzA8k̵K$r"X_K{d]-ul脠bmdhqt/NrHrvOO8)/^.&6*A2gRS0rBh$y]/yҬvC)-ν+ߒ$x9C6:ȎJ~ E`JFQ#E!{x%5σi +GnU\ܩąBY'NE`r R+Y5(!ofp?-NwT{;pϜFǙyN]+Y.en1M5~׈EGh"=9I-S?!˨Gu g,!3(M8]~֛FS(NV/z/4;VEN nqp 5*)UP##)r3 4W" aV Zf "=ZfvG3bqRɢrYֱ{OH /3\тz__vgȾ0}IqlTM㖟Hji6+~G 7GnÏ8KPy[:Y nXs?s{r^?۷SŖﴨC7S*|l@=y2˓:+ fٌ'qy}wx84L RP 04 3?GJ_=mxLL:t 9zVgq[zwpcn(TdYP6ϛ H_kf"~j|D,H權|!&m;5\0VW&"jA^cRz0{(O6ȃaPxb.d\]ei=&:2ډuy1%z4'`~M 0BaKs8}Ox={,p˫oװ\WfÇlԘ k}LZyK0+wk8ujFjUU6xr[,3!S2&)ŗݔܕ|[t7~P|Á'k|R(yZR f.SߢpqhLA~׵󟜚^(XZ.Ad.vry*lMj@zEBU}xp3= _;Xpj7&ḡFOjP9({h"=<{z+2֏aGw}2%H}pѐ35?Eˁ7ei/ is`cȰ \ze>rYJrއֻO9K@I[Eu'\:-w=Bc쿯rxhiw& nS.;uSմ7!;n]:hE ynHt;E6Ĩ($))>i5Q=r2@KPK Rf-ZERBEX*b ERҤM[g˞7Ǵ3DF@>~-YPtY-zgqB%֚HȠ\TѝLwR<#%y8 EYn|S݁4WJi}ƙ7{ + 3嶳yP`s{~ Qr;Z`wMӞT +=Zjr_(Y:Z~3u? ԝ Tj m$+x B$kË}[(SGWj[{!Ͽ4@, z֦پ Yo@zP/)_\aƁuj*G@O/>7~pD@GàT^][ ^_Kt;ﱃ3G1}aZOj_9P~JoZ8v2Qk}o D:g`2{Zy莕?}~>-x * Yč'C U!# \T)NdIzq _i: qKOԠAMU/!N1P m47 N9M5צZ S+M|'XjM' N?6(կA ~E *oNqҳ /I8' vI '5X8@l`NI>8$$T3B婱nvh%ya 3|(jL)H~sUb$xZo:~A'K /TvO'?xμ'JB \v\j eA#PɇE+^~Da)څOR8%x#jpMO#_be#2l |ې[Um?H6? U/L8Uy~$m-Euj+*!4I{[fPu1矐]S7 YEx1xKY Ω0:-@89C7S[?΅r! q^(~ȇwꖣ*Ư@%О[3?ۢiݤթP& 7G,BDo UΛGa[!Gp$^!bN7'8*`±y) 7|AYD7@BX?4J z ^e0^=k*wfNyv DZ yk)W[ cuf1yH?^1,}nAg3D0fqH˒"Oȋn17 VC)I^{:fN<T2jϙJd4xU 2;fΫc0;4ju B\o!ʉ(7$K) e) G;> ]kV(#=Dt~/ElQ_/wYPn'&ZŸ6 [gt |L_wWOBW5|6 &cR dT&o@qhOݷ(mʏȫl 􂄆OWB1黔^4_ tEU(fV;>CP9h*~v'ox^+?^8g|Ptqi«sk*(EץD/U|h:Hd'HA$e_^K >׋G6z7ZhͶQrRv=z'Ar ̈́ =('rc!Dld DfvE댅QZIcozozzzzzzo?>07L~!UϙO(Ax4QQyJi&uZ1ԴSzD˃H{i*evInb@_}~=-!o?l<9g[yo#.m 85v to##~`׃6!L\9ή~A.ޟCf&m3`C"ȷ C?R8.ve,c\t?$)7wܑ21p=߱PxȎӤVbM\䠌=<67myPsZ[e,_xEOHpS{[g3Ku7mZk(Di!"{76~ 6; 5ͫ-»'%pĭ1<q ggk!Fp_~xovW]4&0޳/Y]GԨ.;@M$#E!F1CTn>/H둸ozR0Φ,׎=CdoN뙦[-ē\5g:ݳ(u'\ ^}_R;#GB#nF343AdkHv=Ctځc"'n65z/Ss#0|t%k0Bx"Uk^2Re6h}ϸ[> !ր 2յ{;yH>%ڸ6fE-G5Ċ^LEGBNm5Y!SgJr;ͧp(XE(~˖eaqܳ&c|ؕp q.2qmk.m!NȺP`|\H6gڼ5څM΍%3! &0(ٙZ30/#g;ZZYKp=b#ƝPA8!鵴pS&GNFρ>7d񛦌~qޓ B`Y}ϘN똼3HYpLD$Gyta&w)=y+Ap4~G֧Vl$<$<ڧi}@Q~ $f NŚhLՊ2E4r Oұ!TCrgCrc?3ﱧtOt!oaP fji"jx1ǙzKE:q#5Nf+O}cq3c,&Ə Cg4Op847rX! ,N9o`E0AX9oivM>*v,9/ڥbƕu#Z刪Ĕe4%pż(N]`Udr2Iۦ.94]\%YoDzyHE21)4j9rl5.*F¥v$ z:;ͥ}Y]W D: HK( &Bɉtdɗ{xʇiHLB$Dc~҆#ŧ؀#''CHG ~u9`VG"D?# Wq?=]= S)ſ M/bFu9n6 brWҙ˚ yie5i5=tTQ DO1>#bv8ŒP [3CM#03-kHyȭ_cQ'8}w||xy.%e~g `z+w#:ߟ(޹~"Ҁ;!4zQLBzrRbc kHrDHUc{#A \MSå=QL'\f&Ro=CfO!DXL Rጎ9Vφ[/6F~aHCTw4ݺIHQCW?{scHܨY`N &=Y9zyA?.(Pv}_Əx3q=1zdyoɎX:I0u9/ʎ=,X'( Y0uQX`*o=3<< !oCG6V WL-vP8yKnO@$J%F^ +@KpkKio _6HBݟAlTN"z3B^+:֘d:\ϻorI/$ݚ6=`zKn@ڷ ؚi#?v{ o}] ?GCtGNmA^HA|Cf%4χqYŰ%{-ҟr"W"hv|E;j jm{G$nP{k2Y^T(GQ!֝+*.N#l龅fu>=Lqݖ,y~~D}trFUF/ۍe`j֯D4Wޝ;`}QM_5oѥ`bӽ&pfqw yۀ9yYPB ٬L-lWb cG:' ΄~{_O>{() ?'iLϟ sPm2 {<8M32!;lȼ} $>?AnyPBpuѡrTs߀->c 78a`s Q}vr=ME(~HDupOyט3pA#+A4umQ謟\4Q8[,c|: H4~h23-py,h49Ө ܳ S~ڳ¬KdAGePv̆ߣNǻ69v9<%bsWY@ꊥ[@).W4׻t"xv:~a Xk~F =~͉B*~ )Avafp,C ~Бb.yA59)mF",~h PwGhIoViG\"Sr8JLvl_[]"}]f5n1.!L!ϧ.*TtpGn⅗i6w߁eAS5^XL'M5zRcnGhWw vX:44sY|C 0iq\pِllpFCjk'{H}t\ji޸Y~6 偬6( ؛CuHnAa2|w#Hg3Z ,n)W@XU,M& YkDƵ3 Et ϣ>|l(= jB}V3G.Qz_!7F052E זBqJ"v?CqiE v;{OV (0hɸϦP/&1{RN=C *\&q;rbq>A Lϱܫ {lLe*8 .)QI=V½~[yWl6M֩03]4( &%g\3Iɉ;m1>&*b]4$ 1TV衎oзwfv$Z5ȻkHz֕|{+/BLXya? []P+5UR>fh3@!*-ͫr K6s=ON2TF<ɦpޟj6_oG2Utt!QӅj[-!jܚ)_3wF$c[hLJ㵚y-iI|PJ:v4[ﶜ!~~Y_%[yTdʗσDQbYkjSr}S`&$q+̻q`Úޥ ]7V].`ۈ dF*yk0cWpw]m /:Ѵ#t1ÕEu/-F%)> Ahч ( x:6ug[^.9(?N|n|-aAgzSb77٘[Pf8 |G5KnC$i>uc^4Pyz^7#+bQ3E\/H.;!#G-<UxJD'3 ݛy9HBuwI4RkGB6tb=7L9Fɸ.;|B9$8l> *-2Pu±'3,_;R~]ڵBylxpyL})(w!;zLԻs쨫xĄ'nu%ʐ7w? HC2ޫQ! (ו7ʅK(E1/kҸo5t`ϙh4$-7 p?u}vUz,oT C{֡zgLup]rN6_sC5Bo3~7( SRro6ߘ`~Ө>lDȀK5k-|Uq[1?Bi_&DO"MGƑqsnFTJ.ftƎg;4ipCrzmTy[&ppM7uޭQrIB2E lO5,E&SoܰAtCLD%U]fVbsJb\`s :T"Jp6DΓrҌ\Tu_ZVF$Up".toT5W8+FyHpsc ~>9Jߡ* H-aoDJ75FĽuXɂ^7iy|ʖOnEr~dOb}񆷖2ʩomӌݐQWhz#ڵYj(HPM9(DR[+${h_$T5adۊ}O[P<%0FVU]`JD48x֗jUcQZh+Qp\@w#A'S|yt{!Ըp:ZvVf&;E+y*!D\Ms<,tg' ‹Z٘G+6U'v~4a2g%7a'қk@$Mj{bdU\Ϯݡ:mUJKܤk\`m)EȢQ~j}nP{S"v7z(` bJt*2pj C2dT gF{w"MeP2Tˍ2.`F17@ނeq /U!+dއ0~ !Q(S[S%P21 ϒ0ju4brhAf7ԯFa%zf&$upxCN Ա9g~2C/;00] "&Grs@ZJ1f~(Tchȴ&q_E6H4D\Ag=Oe*:pi/凞+ӡ0x[pd\k/׫1wr!bBYȤ f0.=z|=iP-amY|{Ε:*s׊x@d94)ުFn8W ?^cPv^_Wn_]2 S/]o O+H"$;%_W MJBDhR^Ƈ^ǐeGvJ n qYa!,ͅ΋fo@UCϣg^l-PMV ;%S^@&11FJ߂ޥu4sZ,Dy<ٽ!&vGWu5TYó$O@g7+^C^xf t i4m)`cy̗.ص;_+C`C<.x)aZIY{nVH? nR*? /+O+2C[@/ [&b]Eip;x1ZQ~~n|-D{]Y"Gnv2|R{ y„ nĝ f E؏Ið8dמy ( fh[~<M,vܽT AB2gϭCBh o>Z'|@ARv] C7<@Ob?$Ψ:Hu1hNC1j=Dwn?LNPCX67P懫ޞhtƣ$);63f`hM7d@IIHc[Pi`d W.3VWDC/4P\9pX=J{Rm,iK' ,3?vF2!¹_&Ԩra:p+caeH# ,$3ڙY$ Q$uY*Zv+x>!ګV+?t|SM1q:td@'}S$X, n~v71o!%KU8-Q _l3jZSs)c,xމj<M>2W/K/:i ז,@"Z%Cz]+#)ҝgL/`NbO~ `W!A@s M-r<+)YabhМ}l:<2HX8_ U %:|6$mYm# fM= +~ڣ JG5_>4 ;0WQBd ~M/kЛCeAG6D6 RlqvG?Phl`"U=~Z} %RPb\Kv p_u% K&),CfaDhegm4 xk8lK.?,:լt-{'C~:-}#%:PrUW=z|![=Of/Em$($ e9cbh|WDfUefJ:{KӣɚNP{$3LQd .@/1|6TkM*c/Bf;i 9 !݀WkxMhSD^; <;Š 1&,@(/{ $)x~R;p"׈xYO 7j%hOGܪclU!EcWk^v8Ge~T~=9Y5viOx R BPvi{i|]ob{&]IΦ}-;A/1)0T"yeߎY2҄ Hyp c߽!d]bMw8< ߰W[YFMv.eŸ́P8%#i6*Bً,8\~LWAS# /z*V>{q?J7 k@}h7(/? u{b~O DÐ?]DPlk̹:dx5j@-B{-H@/kUCxgm?yn+02zXP>fc<%i jVX8AzO %VBrC !" WQ$##P!S1P(+:K4u:CzHd|4vLxo [-T Kd'N*@QP%ub1;NSG,Mlmd>{ /W~M9".ρyU}? Ɉ6J F𹲞ퟪ< {VZ>6ۘ]^ٴ;ruՋQ'5q`fON*>w oiE[@աDG`޷i?O&%y"c6;] D#𼜟Y0=R랆wϜ39\v9mfbhJd XpCU l; l 'ӃXYPfy#GطN*UX]{.azy*џM&Ccu/$)- zAs_fkdNJ;{@ׂ&E.Ħ7o*':a$>Wp84Md9·Y>B9^Z?Y -#ںg'hr؍|wH"SCK;+ԶGrk ܭ-uzC0>`ZtlwJ= FkAV#d[:w ӛGM]]>aV }hrk:8\\kAaeϡ!0j9S B`5b;-L@ZOVnߺ+&czazsyCOwvη+zs$|n1@BWa R_68=۟{YY9s`ީ;}k ieHóD]EJmM]0\KGUjIlXT)'$ϯ a'C:(rXC;)4M;V<3S7♱nkxsd,N YmH;A@1n*>虋n_8'MM 1|7lqvG!< s Mpwbw?7jeRyaAЄh[=>b|Ul:]8 $h[ڏyOO(̦LDS,[y7 ә{*= 2`<'e_"'"W~/NNoNֵUTnWgvѮG5deqN7쩴*ce-U{$˲?^*.VrCQ0:W/&S^CgaVvQ3hЪG>ZIq[Jfurl9v#Z;|~)&ρW^[S=EOω vf0i]Tl ] i:9+T?Yk M PFӝ(_)O|8*{ ES{?"/~̃ bӶxH?{1:PR0u?7 *FrT}Xog~$z#ޞ3=$|qNm;d{/7{#ߣr7IxuvV>;||f3)="#,=#=u讟ެK{2 nY^e=AXHE^m)-6 N#(z@BnNҸ͍&'#nb*FJ^SiU?Euڨ֏oy~f_B*R<-JDH3\b>^i$|q[cX{ewvȊ0 O@,x] 3IADzd̨_nuB`[i b冷 $h;q]%&. 9Ng <9sԐIK0M "J4yp#9Lj^DGAqǝ 㧘aUޕ Ͷ.0~O6fOɖy%NUwvn6 䶬; tbr /|6;,>BPaPа X!oT-15|%`EMoдVC>:_^*!/$lEסGbb>D_WaQ})x R dD;XXBCĀ7h %iJ7{h~T pz;RZ\`-F.D|v Ĺ\xٝ/(G6 2֨s),cx5Ch+i[ {FAD9ДahڸxS /ÐMWb"9-reswvA;g;  bhY8uLe!=j8yJdAhOoh)< )u 0w'@[!ᨶ0GٌO^~NM`uuaMO%:$ZT ËcO_Ej107 Nʸ5VƻRX1_B IՑ n}8As7vo! Gh}7"uP9?2 H&+1k@5GH|9WBCHzFX  Qb/zY`a 󗒚A>V\֮_+a Dc/&3?oz'!QY،\s;lG3xm"Rs.A ?JDg(uyCQy|1c簺 J 'vQ`zs$WvACO=Ɲ* ,7d =R.X&@Fmev/MR ,ށ.5J Z̛xʇv~/8 d5vR?@ʉkJqеx+|/ɱ }<3 Bb.x@'Ppv a|jq,zzkLe\Pu56 ;ҿv&ʋ+sВa)>_Z`naw0$!TZȍ0KNԈDe@+P\(H4AYgvEqxEjP1X!B[7ًͯ\8v(f? ]\DNdbǬ&3ftz[{=q!,F0k5ƱOC'73{DXo.ϫK$ Ǐ@uaI ?{T q\6;YtC{W7#*/#zZBt-˧?vA7KX.al!^cz98 q 9AÏIK妲҈`dt @9BޤVr^|9?4ueq;G>Bm0wA]|e:kBqHi~=z-7_{^}@p ?v)jB2x[L좫OA$>c֮>;Z(q<[ |)K_~,>9 *(xf?T=W@>@D=t7~9w›S@ q/mL>9\00^ T&QxC.ʤ?M8CM@\#k4SIF^sdtC3Pz,o"/Q< Lwu?8 OM-4誃h'Us=c 1{L+3X2pM_ 9iž1]DR#%dׇ/l5kdzSlsќUvWf|-g͗@9k,?';D|"FH7+Z&v񼢇o| gšţ7ܞWR#6y6y q|t$T p /p|2)fMW7e154fo~@ d Xb; 97~JFr 'LKWW^n0H? @7>ㄸ犿"c0 >넆<@&^Cgϳcmp$\IJgA;i@ii`Ƽ!ƜL2-ϋvw@tO{cl|2m_y )N2Fh94Lö}*fV@?d> hz7x2@a4 [;󻇓m1:>J`# I;EoCƸ}ӹr03{ Z0+n3o!3~=a{9,S덟O"z!صk ̧"xsAv-gct4i!`:gK8C!4ߌG}=#=#={zKÿldbSHUcc ZB</.$TEpi|Z Y57OHĆҴ?s+`/6jJWDly!6<0?.(/ JW X5 >cD#dsNKi_+r]e?ڪ5χ fVF@-n0Weӫ63tϲÕ&0}V; ZQ ^U{Pm&kѷTåR{V璅1V2'AU tz3<Lѹ[H#AC7xS/djF?#\zùt$|any0ZIWT܇齩 xʵ3g-3p'B*q3DYҍA2{j"a_SzkVhǮT-G!*;"D0 z6USPa#=p VtX՞꼝SitǏ~q$BbH^&2cgl;'Ldmj.G~A ~:>vo(k'+2 .Db5~2=h&{SU(<9%M ZB=U̐,\КhdG\=Ţ@[DL woPĢYG=}f)v% R߈izI%2T/Pԅ5?k 1HFrЫ7DN@ﰊ@X& @"THddTc v?8^I^?v4j^TPj29d~B\8gd}ѧoVOIiy9a̬3{w#\*.77+W* .w۾H?P->J02]e{M/łE Zt.ɱGǞ̜]HM䶽sƂoടt-rQ{PAGA'Zhxc1M+|Q_mvG& {%i_O qԩCȎ b0$VGhiEç?U}nr`^'Lqn%|ϕrdj[HKI/$_v 6/f xNB:~&$W~D2sڏkG *א_ <}aW<=nN!6hP  byi~u.:0L,hWO07Kᄘ7nƻl*6\Þ'$˔в"&?RWT⮫E_lyx ]WrG)tZy{@lS96m+H"]zS|!X~ Ҹ6sFXK9AELGm"8ގgO41*}Fn!H1k.(hЕW_V9M@- НΒzpۯyo>2[$>E*>9QD`^{om%mܘ,Y+ dVg: 3̒T̎qh":Q6, f^N{,qtzZギ.uBH;7Q@xc K/_V"+Dscjo{auHWP8R6N7O55Ƅ˻uC=qtr%Dljl\@0jqvt' ^$ǜ`mF=L *AdEOTaba@nL|(7P%?(Nzb>~&^ FegKHaCLyP4-lHT}kwF~֭žB8@(X}GIOo{ cJ,+>y-׿U&6F2g5g"Ie^3$,4aM;E2jHqD}jΟ*J8 ye%a灾D3eΟN+>ôs_D(lzzND "~}=;nz'㪟%~k%}X oO(k8ۧ8dɯg(qR~J@Žx,\2J[[Ip4^ WEizc _Ek}˭ٍ&uS.BxT޻,A3bܰw QrCrDe CRh!MBT9vZ)d:aj>mE㏻Ӑg}Y]/DqVfBӹF3wI ӯ~J-#On ]M_Cz] |ۏOgF(i\ RH!Uh`f;hiҶC_m׿(Tٱ&:x2T$5:%EpFEN>+zWgVw57d'O]ztGDJ(~ 9d*o 턮tCQ`<A \/^G?NAӵ1#ͧ}^CvrKC+5nGSϙ^4~r }f.Y}$NޠU}Oqin勲hKJ spgC2T;@IÛ&Ʊ#'भR MPՉ(MeţMM*>yM.ܧ;TﲺGue ~^, i:RᰧxLDOXsBVY f;hl&`-&aְz^zw"(*Nd[g<3ZPT^Gk_!5jgj 3T&U.E:j| :K1CLOˣ,% Ė7fsG &o_?[vAhX= QM՟9sCPޟ ?t$,j^զ@6FMw=fDDiV$ߍ|tT#G0{eHPdȦXBojK̷>8 nejs;{.7,st1l{lhȏ׎%txj y }ɍ qf&/~޼[pRs-k*$8׏ô^(jƛDj<>8z&q%"W$BlHôoMx| P) τ""ٕ`wӥh}zWW(A_38r)*{ |w ]$h9JRt\{$~CWwg]FŬhncӄ}tIH8&f hu}嵪3tk}iG/s?9Pe:++} ]xe m#`j# k9(9':T4QjџN%|͠2AoPv̌vSby{k9\S&;r/g 6DS =ծR0S>qR.!D5K!)2C##H&/>5:!_LlUp%{ъ8{Qâ)ip]QW]0 t^|Ah7FsA\ Jr$ "NN0}]3"z-vE)g,6?3N =cwu26MV*HӵzMhm|ʇ4$mA{Vq{/;8d,VUb..~ܡF'N9xne2|u8:Z']y5h <8؄'е+cuC&RsӓɌ?8z[_T`\1jq(Jtg'{#-) 3I DD]W x;JUĩOjJ`awo.3ΦOO}6[6~r(څ.(z3R&4˶ j;$%T.PrFA:r9VOOaٷﺻktX<(mx}6≒\4rz.2~b+ $iUc I60ןF:3?_Kѻ{WsaRݨTb},Mh#K ͥ!'EZy6]pE49(}fV0ۻ0>d&' 5>: u{ۯ #6 ݓUIr a'/n6?!C4ƤQW[wsG0kF #Rr >W,!Z%ݟ:aɉcbs0vЭb'Z,;ŮOFI?|u>tn{*5ԁWӴ A h ZKTL3J ] u9//r/s_q9R h-NVqF(k_a<_ra9Jݸq @ɟ07Q^.E991(~VS95O }3bR$6KR.49FoЊotdgFT}T3DA[i[NˋHNpyrXxb`_/b̅$Exb+$GSQNO*Ns4!:rJժ%?£4yPKGi#w]'CBwAl[R\RR\fzYG6>r r=>TK%g.i 1W-JNPcD8C9pl{[]t4p$0LHvB=MH헵;g\qٵ)ȍMBT8\LJ._T XxRc:h4ve{9$C$ZyODCcMdPJ$-Y =DĮ u$Qzz jZaG \fOG#^`:r3%s43M01=~[?3D%v(Y~1M"mb˛A KL{1W?LqC.&~!yYioYf6p"u鐨JTIV?@,ٗ`}x23T`tuJ?^"Nҙzy1Cȟ$܂5Aq'n%;{ ORvcS'O~ą#kR|p,Qg+f lߔ! /jZcYq#E=USN"?+ϴ)'3kE )duHZ:O/u3>o4B|E'lXC\˧ˮT/o@卫)DφSv -ݙqs)C ;//띆^ ^C6gvVg *z+OO-!ؾud,L2ačzˆy5vz0c-"uQ֜@߀_kRRe|UR8[S0ZBVMɯr`G$ctfM(M&03)~0ۼ, f hI>-ni醆3;~P4]SZU#9bߤ8?D>(E}T 5!71 LǼ\/Oh75,/ЇQcˋ1S- Ex?T̸@< }&KFjr^?Q/ƻpH-vh9h4B-]{Sa"údkC9',vr$тVkF7ЕO< ѯN_ID39^&KY|1ȜIhכH%\ܘC,RLsičUdzy=za~(+u4dkd'Q+UJ?35 n3^uVF|9]o,0q]pI3zOYs4O>}QunXB@i-[/\lQyT;g"q¶6IC'nd|C($'ˋ;sBR V{KBn2qD &e2hiO| V6U8qK/Į j)I|^N ّl]$wL~F7^0-I{D c|~_^).Mm~ֽxɣ+P _PU ]aPs"S@^m^1܇hesېy{Z NSZV ŕ ~cu2b{ L{|y\(p/v~^qJ4a"6я+٢)g lْAO=ۋ {~x.Sl.^Krp ЯO|z ~$(UQ2I\h:[B59K t] TiusW:SiCU2vNo5k9}:&l"Qr+{=nr_3(/wu"n݈,x&ֶ#3V!N u.!H[|<Z](}-b:[Txp;rYnMtآԳ / B,1LqW;C=`!/w`i0=T;=)/5 I^ "wH+!{W~8_H҅hgڍ0|3k߯.VIuVE632g9o[d-i'qO_;.vl?c`$ZUۦ!_!3w;em0hL~m;ݐ_=˹yu蜞8DgtY!/̬X}$YOTgbuBBw#q?}h,Ds-\.!Q_?iG"@GcᢎӊV*Gy?<@3[nQBv4QBMy}EbzN=1ٍ< FHZcF޵GUӳ_~.6dq {vGf6dqܫڹ>4Ra{R*Qo2vhC)H$K;,j1w%CNxPJl.eiGТ괮\ȁO8/MLUt=rWPp  .rpKTБLUq qX,^NnwԶ WRHKA!2:N‹.ߥ wǥiqHSE_eQ]*EoP^+O8&vX7=í$cBw!wDNz^FyByڴ]hu\;>H`O@^6^a(ܵ~8l.CRb"XJHAT}֯fzSpsZn$G.5fR뻦q#:׾; ܒԈ`zD]|*>y=aSj~K缗½e 7#O՜M ^b@l_SI*7_`y0 {V<nEcuLN!ø"_Y|tgKhM|hKڟx_ܚ6D }5@,s䯉 TV:Af6զӆ-K ׌nGuW. GH & ֎8OoH9܊Nʻwo+!vB888888?b`wMV﶐n⸷{po{[=ڎڊV︷xdz;lo;nk~x{dz;lgw<[Vx{dzջɻ;nw{x掗g;n%˻=b[#ƻ=b[#ƻ=b[#ƻ=b[#ƻ=b[#ƻ=b[#f1#1#1#1ۦo{ƈo{ƈo{ƈo{F?ٮkk`| зQ l1y+ pml5R`[ ؞)6 lϔL lw@`aؚ)Z۫Y`k5 lfy*_p$]VE nbgqj8 m]Vh{`_ۭޚ}afo7Cxk[xUۭF}be!Ə`a|zw 6-m-ڲ1[> mœ-nw'[< %wjlƻ û3ߖ[|چڂކ*J÷-$6I|[$Oxoxoxo0eKŅ_mZ&M%g[T l6ox#-lF`KeY`KF`Knܖ--w[/m nYx,38זIZh_B'-B[f/~moOh7Bۼڒ?mڒ-~ o˟ o˟ҶE@xKE@xKE@xKE@xKE@xK0%(pJm+T߹vjjv [%l 6*Cj8M$<^]sH0"h1ڈIS.xv;XsqS/u[YSQGr9}$ As[̻z<}x%VLw@igMcPh3,x0qR.f`=wԆ/WL(o+W!>KJIR墀l{/p1Y.H'DnM=.Bn Kf#h^n\],b?4 s-M}T87'EۇjNhnZcD >E¯_BϋG`xZ<5ZV^N{MD?@+}wO2.vd]` RT5i}0=bX3t$e R+vUY_AxxjKU[:Y͋J XmUO0bh?Y^/ _;XP?mƇA Ͼ] {~o3/>Il%!ͭb\7}@Kd7<_: %/)LXa) e!;b%6ҚՇulKu;Vos7I`nZ Ora'/ [:cnk^ +F-y'-6Y'G4W߀lNa R/ʹgó'fdAVX4;V'q%G ĵ>ZgyמOTD}ه2*C 9 ,{# 򷜻[ &/86X|ShlC(ְP*<rqޑ; !=odȄpD@篕]xRk`J owkc4@W뇕 qȈH<NW^5BS-C34 M5- Wn?k3=PoͶ/K~?GVu{pa1kNWi̹S? B8զ%0o gg P2zZEfwx#tT-}[#yg찙wHGvݱ18y]~,ĉ@DT |U3?M/aqUp\̡BS; A IU(4@T䥂4_"cZ~º-xDA!K61zucˉM=WRBԙQ&5K:55 T|(q! ɡ =)W!{?aTޜa :_ Su;Wp;9Y>淵BY՞,|n(wob9pf 4~Urn񧪄؇Ը-jOa.BTcUe FWvr*݋;{2 ?h}vj""y4Y,aBzݓ S?`]̥u| t#z3:: txAGa( 6fO0awv0)WDirnr{r" o/9W:1c) _L®Wobޅ=>xci1Gqb%> T mmfa{D<ȻYwNkGF-<#*sbh~oHnHr|<w6aRbHjѠGCXKY/\ΡY{P5#/FXz`D<= MO|',~}ܮZAϗ{ݰ_h*c<)4B3b`#@L8~yݻҕNγBf׀%z5C:=y %3*-H Cvb+f|[{л7JWyb\>QxO3q n4YX>{6.OKiRnAg-;V Wٌ3'/ "ޕ C.h^+v 聏QDq5+lUӆi} ‹lvCrQIK)EM|E>YX=3])zj%]Wu({To;yFk.QWC䄚E-S~s+g".`\7zNy#,,GetuFɟ _,.(jZ^E)mv/^LflO_|z=>^# ˝%shZ{AOAAO송dAzk]*߇1m31P %N2mU#@Pl_"3K"hd\?:<`_]sǺۋt-N*~n1ts.'BǞSy}$4rr_R "Vɬ%-tR׉t9:NjqΘï v44yt&KMg'(5|0[- ㏱|G ^"RHYd!BjRy:s]0|'l@X h<>ίxi%;CA<˞Oo :öKUD{t5xkM,U!@Y[tp؎pT|O GJǙT1y~ c^8]t?3½`Arf|3"G10 9wK.3ěB.w!=5vqN#]-r:*>i`Ú_=6?I/kHkMդoiP74Ç Ifޞ91zRɞ:ЪJge@D ~67[.h]iĎYy =r[%;NvJH9uIR8!Sqm#lL1~~d&ͰC3xR )B;67?ဍݔul!j] 2(\VlZ[\ jfGgzrJo ێ:oڈ ^gj}eC_cŬM /WQP7Jz1; ~σEr_k]h䩺bṉO ™aD q]yED*IDޅ]#{ٳ&ϋ}z?u5AH[M_)mkG/o> Tgt"־k~'kNyBRu!QE8|S|"vΙtoXZ."T[l A:/> 5ռӥ͸s{7(^y%Ԝ9U "JCZ} ӻKwxA<1Bϯpӆs'+bivRÌ˝RY0_m-Ç%"yu&7-v4vGUP f|_vaߪ%e` ==)}ԥlf[A]{01K64x 6NzћvSCK=Y(&,l7)mTC!`%Ga&'{ ߿W`؍;kH;:A {dՔ%Tj5xhF!ā~;´2) c&q{A# ]|#H~ !vVktĆ]-  oJSnl4*:5%.^CLeCgN_{ԧ2o>dpnGTݵ'}!M竺ʦݴ{W;>_1i$Һ>eM\閖=3o!.%C~w$U'N|!+t?n]5W~,cEN=ygz/H1괻UwA18MWAo ހUc<3z3y :ܹ5mĞoB@).Qj8 1x۶l tH){Iƾ+muQ!̐pT^-ݕ iVdkxzaEC [В%)V UWn9>!|?eF*[x3 N72#C6e>h >=Aퟆ/C=ha~}%*s^vExo.鹮8`4_!3ן ̻5W4c$0psymN*7:w$Qo8j5q_7z!#c :)2>irŸߠ{&e ࡹ{@Ar2v~ϦIW =h~}{K)"K#ΰ\{J$Mj8n9`rS?>d)\-Mܒ,wPGÏk7OlrаZ<Ύ2N8oYRx(r!O&( yG!% MKAI cڏՁYFuy#{a@"?C\Hѝlb;$wjS n=BlKHK;W/S֊l³ mً!LB#PzyKnIп~ _Zꊡ, fp oӥ?1AlC7=, nG6 !IZvԱ)tO*;:,0t8+)<2xw}}2M>e,'=!_$Qʟt;}|pY=EϋarAeKp؟ګw oL,dV M~D/ #WPKfy9xs8m?FOڊƭx ) ײlB :O*4YXfP~_aKd?j> [:INCDByo(~]PF1YŭP8zC!''Xԟ77)S>|=ӆ6)\if@[ps6X<W)N*d rBţcĺu O;ŋBr؏?R5WƷ`MgPC ʊn78kL.t\]B)q\Ui!\H|_}f0UC) WvlLzz1kꆌq{iOҎyp u8_B퐅P(no,ڙA+ÇuX]}h^!2>fBz&p`Wq{qyqʹPO 0f-zv/{~h^ B(/Y`4)8 ,/OoB b{KN?1zayW َm+L <]|#>[DHÝڜ~~g@kgMԋ*0qeIw)g%b{ie+s<1^+[BFutG%CowӼXsijqfKlӾP3&v`(M1z24iy_ DU3v8@H+L z!wl"L x0m2u!c0eDS5aJg3=it-r݃P=?x)\/so~Lcgq& n/c%)\Cg!H@(/d9h`8Ň2x<$2/ѥ/ʀ>5 3NK\,mP%aw 3wM=ŠlI"-HmR9wǤk}Ma\;^T~ NRGĂ 2$kqlATd8bcE~-zlF-xg!4}^蘭 O4F; pO85>zAѐBbX'P/^:9 ?`t u#a]}c=zO}[~Ϡn{3 aHS7k!H(iQub3}i{҆eȫDe\6 ]6d>[0m5FKwWJQmoKw[IurtW_4h3 ;@N ;,0=in _g3ixX_7I5@{pU=)BK[Y{%ɌĜFt#f;4^41 {pB2wrxh >|y&4bLv e7'3j8Ih& f'g!%jsYx(pI+$9cCx" fMiD' J; 7SC 4Uѿtdwk&M}@;kPz$NCOt@6}ܬcаmCh}94^U)"mK@^rL7COʢCcO1UXQ 3#t6-qBlt6j@%/ڢn|?t6@4jw,++Zr+Soj&7c y5 :)Zpc45ՁVHSgu] ݪ*#.g< r#MA蠁!Hjjj*UZnߜp%kh:ykG ݰp]I DA.cYLqYu^̦_npJǐASNUh:LK_KqjM7@5S+4o-}_;Cs%1 sG>PRG[>7\]Y:?CX*C5\o{>T!j$,4[-aS1][iEL= ~x}ia&.O =d׻#Ve~ZۨUvb궣u7%Hꒇ а*D#" e 1I+(OCe5I4*S>q4hzh"lVcS|gg RL%&$,ytMKO8 LHv4M5vn`LߚChri+ܯh|-aEt$DJ^Hp%$D'Jwhrq ulmnƭOhSe6Q*Y\,zFM y< _ 9&!҇"w.s(7qAB˕X*{Ղļ- VvgsF~As7)|ߺ}4>=XKcU'TLc`dU"sSOF+V >d6R' 2G㉻38(5^f܃rT#; $Ik>qHk^GA!7;(fYo וC #w7ȴL]d? -Leo!W ȊG˴v9ȕ?}dlm9콳 Ũdod(byb%-Vr@S*?Bg"SaH]ﱥ1cW^o j "q+<$~Uߥ.- bK{vыx? o¤ކa΄ 0;M N1DEGC Y,02xǹ&BA"yDhP;OuM"C(nVʴCJ@fݥ5N} J{J:}|_ͫ%Rݥ]5}]>Sx9PS-4Gi!B0yWe^fo)!ՂG4v? {8WrU e _nkA.1hTs\-:imI!L+H0CbV)_ORZ+ +7ON@i=ikh]̎rm- q3s:NtF7rF!P?fm :''!%%)'+C/ŸNa?ȫp5 ^ڌ7~s:T/Cwy~{A۞TJ(,隿sTbUz?,෧!B'E, DE/kvri1;qk.0b6{r|ڔhVƏ$,96 v~x<_Jr,M_PuNJ% yʼn=8Vg;:9CHŪ8$TpAeKbY4?,s>=<~3 l QWK(b ?@;u(vkaUA .aK1iI{ n@3IM`Ĵbd];Su_@!žd%3Eor"}# b<:+Hpȅ/'ovdTERXNf_%STŹMjjFt^u@+\RƷd̟l6}=w4|vn)Gs?u$K&0jB^?1D\ yϣH{5F$Ylqtj11."1 M 3 Say+$k#2BPy7Ip<a7`XPC!7>K/4>TD!u75Nwʗȷwuw8G5CFqZn=v6޾(1N:H[ك٬`OaY,o l)Ɂ$vI#6 OA$MAEwLOS 2Fw7Ҧ {?B\!S&7#\.Mo33`RFH#66ФfN Agڭyޒ'ѾZj<ʒD]G M0jl8E^ˆ<|{rG,` P(37ke[,eCAkR0vGr_fEײ*Uz?9P\׷_}!(a;0kmgR %)W* Y!R6:X4d-O=|w_ժdwVDGDu6d?dc &s4oŠ_7rB(>)AP\g"25 Z>U{B>r#%hɠy ={B0s SrQ:"qJ,8SQ|ۄٙqHȭt$ XC|p HN#+q^T\P =3 {"jqj?9GAWW'M(W!{=`rGGcٯ3>o ]_r郌ُO~~w3к+A'$ J yϹgZ%B.'64VfhI:f *=K 'CoH4E[ ?3^\ '# m{qhzd G׈g5eВ!w.;s[>~-գL&2F%N0X% -9j!0B;UD1x/| 7>Dy|!oQ|C˴[41V`1dKBwVd+̖<{1 M "WB4xI,VuDEYi"8uRP''@-#\- -Aci{6Gi{Gi{woir^z(Σmx';O[jڏǭF+G޼Kkxy;yw92ӨXR8< $3ԯ8q4yCq#g9; >pghg RrQ@@'vg !vk$|$Jot}S1Y`+1%$Hc2 '?_3]a$^攏a,*qg[1N֊_+wy~* C,F]}@rVU+vd+Aw73Ʊe闼nPY쑫 qU 3?c J:I~D3'ui+/~fh(:mU{:)>.Wsʿ1#Uf"}k&ZpZFt'dNr>krrr[P^F_qh .[ٜ;]\Hw{9`>/ _ƛ!v2Θ[qRTq+Xؼw ׿T9+A?de =אq\< cȸ;wȁڧ)7:y/`gb NV2'7:,[= B,xɬ29>ƪtn%g}ҭƭ}<_*E´pz1[%~F .얈hx5/ YOBɿƍ"NJC"75o#=NHB% %p aW#cp=ž%WFf*<3ɽ ThW\~Ln>92(XDްs܋;29 y6svyզwqd !QUvS&NGY1~_) q 1LU/oA%6pz+^p!S=rځ83 y6 Ӆ={Oߔ~pc4UJa[p/8 3#DqR~Eb?ƗW!dnd2 f͚;08( 5DТUN"W&)?rD!Fk,ÄJ}T$[NGh~xgS7LI|%?ncFZ5,ߺױ@-KW^XZFͨ<ie!%&jH*&HSЫMpyg GZ>C&njk=_ =\300y=mo'XeF8V#̧/O1 QI؞B:heML݋K6B&7™ߢ%r Jp=rBG޵TׅSB%A%_K/Pm92*Vv~{أr ((/E/-f =zRHX^8kIHmKH`+Q穻®:{ 7NY[o: u&f-5xjkQ8=6 ӫqw,Ĕ~~!WetCÏd nuaZpׅ?tH@ڢd:^{rfnCo8VX7&ˋ.iCy |g?J\x'nYx3#L+wޕDZ}"pYaΧ_R`] Y+^ae64.!eLak|Hhv=s 87? "IZ/Ow(ot+3H:EXJ bLpx2b{MdJ@l]Xftj˿Wg80DLٸG|{QOFjԜy"]Γ#O"U}E|~P8,f 8v馑H !C5xÍ8W1z]^sv$erRZvo8u|wJN24vǮM -JIۇYgSIimnGs^*.,\YŐoh܃c5OZwz.UOEd>ܽO24|Y],DazieNaL]a3fn± =~t35GI$wKYvEY[ {u-2}'X{N>E9߿:2eeL"!=>2Ի^OM1KJ<&߰~(~SŌ,qfKvf٭}\̦;r[̫ջ*YaY9ke%#fHHY~GxE#[LD+K p?ܩЫ|@IphO?~,bE]ӝؖ_Fؙ>/}f &>yzVVR֍,^y͹ќy]|J- .Ӊvɑ`:Ϟp)3g|8>1;gemfma o~K8uF8R.vwoz.WaɆ ף=JV)Ry_=1XgCTqɁ#ؤ'ODd|,By!t(.A|0⢧Brwq^܉kgcYyڟy ~H3sũ9.0$&489[87 2*}'đEs,I5 T3@>}@)5]qg 3}Yէ.0tr$*2#4/?C iHH^]_@qEzQ}߅t?u=a`>P^ga,{bEQYIy#bke,2_@ Ւ˷E֔0t>@27IJ6AĹ4A8}r<.1:q=Q=zJNTP7$Dr[f b8jR0OKYO< Xgl=dF7α LJE#enggD6+?\7RJ*y=o$R8C+§gfĘxlq-eJ /*ȐY? I!o $X] N%N䉼X/]*y$T^g.AT5,C_3Ϥ03`ktn_\(f'pd69G\;Itv7kED=U{2S?VPM6Έw&^ctkE]0f"Ct!CJ z:^ eC}2Autc7\aouqXe?aZe;]a ķpѤlބydץ%%b(7{үw"6ȕa9TB W5`S:;6fXS+xҞ9 ,2Y).4ܼYӵv V'6ߓZlo4daXq\NQ3Q o'}8K)Ey~ik5}G"ƙV|mr |W9.&5ܣ8.ahdV#$e$ ~7vAPI3{C 5 -Y?Z[ыf`ݽ|-։)(`}Uشmqp%O]5#dXg(ڱB|a硵=@i`uKDuԅww_bXq 0nzw);Nd/DJ_+SS=s?k-.>ՆO6, -sqݚ`&@5U"EfŘ{\܋Q͝.bBE=ia{3 ȨKdSj}Ls7 S-FZGi޺6Ëv^ws=ySJt,mLx'5 HuŞP,{T͈2`zτ!D,dfJW/MXq'*iFp瑕OLY;f{% aE 0q҉aЧ\p܃ f-:{ 7TWl4z]۫ 3K+v_2|ls=aħjcլ'a27Tʫ$8Ģ I:/cLO+ȱ5VƧRla T+c9 C$;|2Q5bt{|puJBsb]ϧMӁMm;椱NSbl}ԀWj=ot 3&xM0 gMg 1+eNS| a/K!4j@_lx|j|YysQHآeTI8m[q bDԬ Y,#&,]*Wj]$XqVym1 =F>j6S+Da6)ǝ2PDΥk_~čk@"ϓ1-Eau7~2AXsܔNvna|y^%^Hs"8ۀdVC/5"嗓յP"qr122um~9<}yA:Kg^xPDVvʘ9bG䈆G: Xa 8l 7S9KA{0{'_%2ZFYO'>iŦԞ A/&37~z\IEKxruF)XBB]בT/JV#2rPC(۵Diy P{M;kPxС5o[Wex\뤰$B[n-v}aq(׽^ѧe<]G)yj-$YRzJVՖڜux9t+0zsQ?+%|Nz' ևҸCVlVklOD};G`mEȔDig!I [Hicl1JG+"&p\n蠏\<6 pXE2?z^?ǸX{5;җ\ 0>?/$ 3rg=؋z|0s>wRe;sD,őf@d8UfXG፞CȁDžO4J%*|ʟ3ykgWmFrbP"zJ=k!)#^lѕ }oa SZG ]c3s72=)ҽ?_?ʵWaFq˃gnqdžz~ڋ\t#ڞV߻R[^azϲ4N([˵.IU͜~pFLD;/fn?ukHO>N3$5WYA/ s0̰'{yiV4l 3G>[|fMM(yT1]+ ԧCm#}Gжl7'>9{e7}Rx~ӤÉztm 4U /'T`_q'/HWe$$|QիE꺚k 7T_"dgRpD_:uf,ERZgrj]vP w"^RXX&TpcMEң<)'>5,3#E>uzrZCjg=/d+؟MrRo!O˰;k SmL"wƵ cz r2'n\#7#~qRSzב U˂Ejk= $8e xI9udX}"߰RE\9@G~/̖t7qzAlVHlj/njt4H~WjH񇱦0[Y@ _ 7ϫ]$oGڒoy0d߲ݴ "aW˽e ~u9!Os} L G?#a\mDSR{C3~qD =#^,4tL1^HY@TQq\8'ikN7%8^NISY=̐kb?&GfQZJ(Ył\5?\y19 tמUwgHO2胷" 'N)SXm="q{D* -[拻L2zWr7bji'jy8k|[}|ҌD8aNQjwVF1ɃbsϜuq_ًHOy8#r/i"5evɶjԇҧеWሦ`nLynU@\{9R5a*ȴzS.`0R#HDb1G2$fOu=ORω0{s|Tp VyʉP:{0 AB Yp y%}M@=2٠DE$aq\{sEnqA\7Cˏg%s_& Kz|Gfo.6Drv`)TIX[z!EB\WKd`0؉i3IPFB$] w DVwEtiȽ/8lvrz^\-^hT Wkh iAgqŸfv[lle@}YD%Ul~.T<4*r98̤̒74Hz,ҷi]@ijOWLK\UiBڶ㜱M`EI )+53=tV'.l~nZkM 8vš w(CwTs^."RV-N`/CBƓH1?k FؽudM8̃9EvCFG /7?fhHE-V2V8sClXZ۱ߘ&/#ݢVTm>:1cΗi`Ma0c*h"/6 :ccO+ H?DcR2Gй*r~:%8!V]}RI;k-Ub_M>xO♱N޶n3l,C. H&Onz_?u{Y#_,ۤUa1 :~-gM=RF*'jY?zbnL<۸XYCK &:G8^,ʒy1Z?f" %<^=KĠ>@Ӄ:R?sK8j-콃V?_8ѵ@a6KnW0͸{ 82˘Rs..A_Verv צ˄s8.[>roMz#Į<IAx1VRxy\/WGI]7v"We{s¤SAb2Ffj۰lRPcz0e-im+pJlg>?x]^|' '?bV{KRB+yxFp:xHk1|(3X:WO:c7x>©SN1u5daf=2J3ؼ'nY<ջu߱/IKU&0 }NKl~^4{3\#ȵɪ,>bVTc}xm^mJ^,9O)<('T-;S%zzE260Pb3'Rb:^Z=uO^ƌ^"x(N)fs}f }PqL1D 7qߘn`# 6ӆq}L9]h;gd7ݓ2,Hrx#Ihti1>rGQ&A]5ladb/ASu o#2xل%Dd\g}Oqc1dD}7sXz"/D<_z߫wkr3OxĚ9-~+ixfa_c{P{'El+%]ǿwD3}0 5|S0B.2h _ t* -S6!Qŕ We?:7-vu|bm+{³DU:(BCC:XL”90QKj1Z5)Bh31>JyV|{iuioVEqCڦbKaeLUͿK%a/%pG3"M*%x?a]ȷM_w^y Q7Y6֜'5d{[խ-bK y|LHgi=f,4M- ao1%!7txJ6n)H4ԫ'Ű^ﰇVc no?U&,Dai+ SqwY1ġH_|Loԓso Gu 5%^8wE_oIܮiʿӔB`NC:::::ѝ:? b%Dǻ6MvNDNԉlDǻ6t|;DǷNDǷNt|DǷNt|DǷ߁':w{vv9u;N3ƿ1d;c;N3f lH`'G9ɑvvr$#Ns$# H`;G;9޾پs3vw $XlG-(c0O@wVv;:}HE m/Dhg,SB;%Ўv)>B;Yh4 f}_xIxgH!wrl g[~nRNĩ74^~E7@(LN 8 JwTʣ WĴJpЂtaߩ [KiW݅_od|r_>¾u`(v? lW׹6j;JU_ %lQ oh g7;2~!6朾# NE~,5,>TѽJMv?4>o񇡂Է8+8뽯' ݚz ^QbTBUYΉɂ. Zȼ.aWf^# ^VlNwsx0"ׯ g'7UKnNt{O?G=/rKIo L+nJC2DE_ձ;rs0~#T޸BMt~ zS9~~ &r`X(_r77}r,s*]V[XAfGOV?êp f hD6 aH- z#-!ն2, ]^ _K̖nf:r+nhޔUN7R?I17ge'p&30ji zWX$^?I| q~sy-dɯ_ώBYC"_}eGA2U퍼6|aXBo$3Tz$Ts'7c йm-k$1/<$xk}Z[q5PrRf|^fhWC*H`9#foݞ_drh:p1u 88xnrAe%l?}cWbg~ IM)'@SyO[a,H]t94\b2+dnAܝ7osnSi#)h0IZ/[\z`VFVAgg(=Qy#YO}\]y^ d$OK>Iu;gw\ߍ fwvbԄvf-\A M\x;?$i2(S~ߏciOyR>c+WNHzӨ\Hm ΄hݍO[AEr>qt9R|r5Y $C3_M I0U?6!I_BsMsESrlCRvn u\\üLVA'uR=3'I(ZS.m~[9W=ӹ0ɸe}!PNPoˁ(6ܛ73ʏ\[c򔮊TokWNOů>5k6%CF81x < ɗχL/ },bT95ǡ ֿ|7MiP o>_U ^G.mG^"] xr89O ߉6eR4vD)n6soDz7Oe2-hПxƳXϮ侪@!/Pm3MaHݟ( յAVߩ`% d$-(:쵫~q}`.C=bc=fZZiPF-Th, rWBq/>p Am*:^[RoWNy { ŅCm2K0`O >q>99<(:`w!B?wE:E}6-^1 j%&h "M!%ᚇ}J48hiқLJ[G=2ѯa{~g_gqG&Z1v0;-OT;jJs3_prԏ3?N{_) اq®%CGBn8‘ߏ|}K{u0j||S<,o]a%z1LgE .ۭbHB>&$m幂FJv_X@vq;?P{m)10DZpU󅹪a(CaAYU0f! tiM WwIi!$1x D˨3먤w zg:=6Oπgt4y 9~Q=vvMݾqǐhoUD rSC+AĞ|htueW`=!D/Imr9W](vlXD}g7Nh2m%3$ٖ!tM h|w{ |pCw?VG!\~Ŕ6DMЦhғ"Od Ųm^c){#F|ϴCKa.7tG#:9hz^(ܤ>id}}#FSD pVqU\>8(䰵Z/!d_49 _8Irq6ͼo[bM6vNO-=8W/OY#QPszт8zJd:z>K&8l aF؅kgv/woK"7Pr#qW4%5eKoAEۄMSO)ܴ eF ^rt efη^ sŕH~ݠ/Uix5IϾD9^ʞ> jFBnwv?c4z}JQLݗA|4 5el?`b´7^ky^:^:^C:^:^:߿RW\ qEje|Et _STxҸW4 -ǐ:J 'JՅ9v" p^x.PWւKjKN4ZCt{]jKqAY t忽֞-:BH ȩu;U$]J &+.} }?Xބ ͺ8MS=#}U%eL̥[ܦ 5;Ǿpo ?m/9_E$Auk}k^̾1.Qo)Fo]zT*ڪ178wQX%KPyNE.>v]o l8#u)y˵:SɠxH:/n4{(JJ‚ѣgI'cQEI@ƅdS^kYX;AI\?<_wd ]sbwU {4$d _CڞR[즚'؞ F&l &ixRH텚 n0?5no>di1p)~rAƵ#4] l1rxi1yœercz7p~` %{IIM~bƿ|z?6C HC8 blDsQ,nPo5MzS'kp%X:ˀ L{݋a2P| .[4_6oX2x fϒPVuhH?^wEԇUCE2h$]6d]7fsPr/8ܵFxܙp4ny Q?ܽԟOCu6/Q}pP[U|t d>qє\?A⋰W?c)ľ8&\( >qStg\o[ 8 V"CaKt!3iOo5g} /ZrGhJT:/mO ==foWkӡu= D&|NH 8EXg4r!7V"3WV4~ HP1 z[{lC m-CO /.y@ҍdL?qRE^g#Q(g'.g)U5RĜ+Ctc%V^ToVW)c2qP/@S`踻rT.~'ڳ޲)Y 2PǺ<IR53o噫=3ǞFB@S8b> O3xuyOcZo3.}JaQ}/2YGyv IV(9!t0]4ހ5EemyHΖ_֜`8BCC/[ix(H r.<8kW35MtNs8nB֩WȠؖ"qtƗXp\ɏ^$PD_|7^}<2h=|ʰZJ'l1fP^80N^ ի:sN;&'|ṻ'4Z ^X|r'I7ߙ+&,!@?_=j"'l-FphKآks1}`LʲҲ(: S5i</ՁʠpCcB ~? ~jl^N@v(&M@o?<س'ň=}jP'djk]FA+a\4dןl%I0~T!& h^SD!ًk`O4r[ ^LHcЦqy͘(K 0 xܞӾ=Kc9 j{Yޤ0y.Nk,e3\@1c\vU!6SoYK]&!\.m@nH)p ZWOG^S5Yfz.\ /znV( Å "?GPeckc !e2[wq}Rx·or7g2.u"^شc)ASc~>T4 !}!$XL>Iȭs qnA_Q0,rЇy^)<"4%Vqdp}[#_}Z1I/Tϙ>uSoR`ɥQzƃo}睟]į5؄AB9T؎u'ӔD J z켍E๚B3+wnvxNr_ +8P2G6i9B.ȩf#Xh-S9&o }ZNcjw!󹟭$hTN%rê;TGSr~z_]751ף5 !xT2Da~kzf_ ~O[ Xq1=" s44hI1V)'ykz-Cܒkv/Qܕ1r⋚䩤𡸿9쯷Uך{)jkvyq^{G%_B!KlJJS_.r$!k=ߖ]j7oӑYP~c E^7nъS&(Yj,ݢ:+ DOHC=-EX`!;CI KJ^{3T ƚI0ZiA/5 Pp܂]u0)_ͫ=T엪m{= lB#bA,2aO5/T ߧsR٣ӏ'GK몤CиMG e3X$;8䧲a,t,Z|`i[U9 akd|9>R <")OQMBY~KN's5N"+~,qVHѦ~_7 Wc * nSC!v^׉) 0VUo:k ϖ'Y`2ʻ@4~<^ힻ_vUkSf.~]CRľqBPQV]ۧ4c럨P"9U3 `|D.҅.9)4J<yozhۛ 5`A# ndܱ =q㊒?jHhCi>vm-MW`Ux9kX.HvݙBKOtd(F8q!U{:ajHvr*D{gڐ`X7׫KVR !LrPAC27-Xar"3<q)?! q3uOҴt4%G!F>()lCPUE9Bt|&7Ƭ)nysSx>PB^}!MqmM 11oq̙{AXxtX<< qGi67{TF eB}bE?h|0/&Л)֋n|pw;ykEN[wVZ﹊zSA[ ݢ>)6kkx5m .q_!|nlC;oQ;r #sa TQ; &~ng'NW_o%z|btQBsw*;#14w Lr Qo|s|{u+ @5j?oƭzxm;A ztx{f < : Mt\ , ʰm(}Xv!pLf10u^ N6z!gKS4z 55B /1|_N}}bnBx1e wi)bQ;{DP$3d>G%}'D)W*|v R~1K7$< }egGwc? @zU=k.oNe>?rKKתpCw_Iy]eZM[K3֬pFV6wr%&M:*t[z+sǴ؉?N(mecBGhbjx|F'R<]ՏV5W Zk`t L~tGI&OPbm(6Vu(r )qđ RG\aKzs=I>QA3/;fHdGO;"^^v/C#LY׵"xc8ͅ{U\wڲ|d5``x<]E`h1 /XZvI5$m'h|Ǐ7nr?G%Df!yM9 :KըqY\ x}俹kklsa5@a.?X L鲱*ةkN}-|'ѵ?g% ?KgwM@-R0+BxoY(ސu h@}'\a`Qv5 %RܵwеPl7/Bz* Єn ^n6N$M܈QM9YwPVBhԘV %:^h^8 |UknS 鮛AF5}z6 RCEsw.SXYhQ"?MZwAvT8;f:v+rY Y,$ ?ݒshu9*m.@lX] :q2Xp㴛غ ] ŝīk*tL׃U ћu. UM 9{}uF]p%h\3 N(4uJqP"pfo1g}x5]+P?!ې5Mm}7~aJBu?8j@1EPqwwFL < X)Bݾ|oPJН?zj79P8l|1$w]1~: X-~Qr!oDܒ\rZSw P`&_;|9y)D^&*Nc!tZdf\3⟅_UsXdܜDxʯ?Bj.h + Y@,G>p%-ً+Sn4Đ3׬\?WQzި!cI?HjgPK:4MT62 >o|!pVEd_ !w]+YC]VZ&? [|R?-1^NJȽ"CuDhbALJ u~dٛ_˯*>ߞJ۲ݒ!b%;xȠ:>k8]x[Y>h2=#ʞ}{$|zusğ*RaI,ruh5#TE-'ݾY : ߨ 0f\c.bRL`һy&z_sR+2;Qf-dauxI} td;ϡW?b8*udhTR( :PCGY^jZ htݡʣrbAD0s(`T#{BkZTw2Iۗ}^^VX5h&amL!/VG`}h%} ^=Hnm5ɻBH\29] ְ~$ƍ< U3 eXLC=>lRf^)AjTjc_ߘǵ?EШ5pM?.P|}ٿ̻oJ[w8"FWICKN:v9 k n^Iox.[v|=V2TNJr #)D{Bsrq#x@YZ.`WjHç{QυJ)GGy?>҅s>}!B!v!٘[!:ͧץ܏D-)@kc ?GH:,dOH텖3P(+"-e_4%q59qCJO:`= 3,c >o|w/4>n䡷J+ :U@KL[ճ#۰*:gBowoKnG& Pryf=PG,|Ay7 _l4;%1ft}_Rg\ϫ{u4B%d*YXb~"(cmh^⮥YAןVs0:i-%e,Ch)hf& MW? eyJH\TEԄމ]87C4&_q~7oסi?d-9FANEfVф˹ARѿҤNո{Qo+XߕJ, 6(Bhݭ9Ptݳ?(Av5 okW%*z9SM/\՞>m[Z>Psn>)e}M҉-PXwoMN&O$^40_E+[̰9W4ĮB ׳a=x'sA(KC;uB@kvKP D% bp'hرr.}sbH]@zw)ȬY4[w;+aWh{b~Yxh;B9a+נ=Uaw祝!c6h avT Y̪,i{&gPbrg%;cJҩ5auh!y s!ZfU:H7UNv UB( 5/y3(tژN9W> 2wbE Ws /s8 r{"" Zhe|nC Zsdω)/_ǒ Q\b˜>dT `JtK4VM fU[]|xȼ~M44}[ËG+j[S%ާ!b {_5h^".pBYVčp[ h8D&w&)Bcnh#?4D=ݪVDm2uL3)_jߡ[ 72+'T zaiuc'7Y`GAF0D ;J¤8GSGK s `C|B$dBCe-6EQV%}Mb4Jȭ|'c _XNԯ^=-I!m'r ө =!KKD^u9 Y5kdМ%d'^mz:'OM2,9҆]MO\pbn3Gǎ'݆'O}f=#vd}3ϱJKh2V;qNhAc|M j-^݈a͸и;A- ͙~ ^f_@A͸63].jK-S_AW ONnoBlYo!w1|МNX $cѸx*ؽ8!*ݓyZo\TܨSޖ.%}FƖo>ݱYaH'%馩a<_i7 46E9~`=G7[xJeA 4l{u?{˄]y˟բ'|vF~_׿!-l(,'\2zwK4 E7gfiNu-78ڙ}+aPYXՠpe)Ň-wpxsuMsȹLL|юr Phggq7#'j;[j#5V-a + d/~a/630q 2/;r*p7'WLs^ l$1H ٍ:[ܚ;> ,;~Z ZYlh~e6 NuiUջ?yؚW6.X7{}c?>P bף'^#Xs/RkՁcZ(3-CXٺPI,ᇋS{K.%O8Ȃ껜E4X_KF aOduX!VzfCw9M)s掚z+(t(=tKd8Vg+-܂eÂ42Tj_C0/Tj,0Ƿd٩u*9a0u^Us}FA][ ia/sWau)d9[$:guO:#5mY8O'Kk]P?\ XP Aϔ_#֗f{4S_|8)/p9d+o~/T~^Z ;T̛b>w̖\Ԇ}"?xiOyd߹|Xl&K ɡL-?׾N& ?BM@^O_ ?s "/󀈷CD8l`'ǎ>Bc-K歔z%jY^O%m?^ͩ{/=B#.=B#.=#.=#.=#.n#.;^m石ÈE1 C?Fy##o4k6y1Ҟ+ץL$;_Gkϱ-[O )_C 9(Ӻ N'J+F5Ǥ_!uOOR+esEYR7¦${D/Q/+! F{ꦧ@)U~րpEf~Lᡪ*']}5~L^-Q.zǰQzN߈˄7){`Rk*d>s~:(vFuy!\e\;QqRq/j!Za2IQB,⣗Hx"|Ao")V)^kʕ4Ѵk :#Oh()2oRsܷ֏>A~\#ϚM,a/|/ ɴ3f@P&Ër8o[GO9bB'.|7BZWEo>Hˁdpބ{G̓Jf/⊃hRn|6q'b(NTp^fj<Wgj691g#rQ݋pfl{9L\:UHO e9~W*x,})J6n|}]_"? Cw UZ|xݷҎH/] x]w.+M?]R0D8R;ڭk6AY{?cvoQ[GW^aW|; $]ԓ'%l8eo^Tl 2զx#Nn8+*E($[H\-Vk@iF.u}M:r4Fss/g뺞| O!:Dɼ3{92!v}*! =}0G|ѯucE dr,_YGGGzi߭cHw6Ne x!sOMrA)4^ bhP`/#J{]X?ێpY=G^PKLT2NPMJ5 Ԕ"?V@ṛ6sɌ8cn/Gy"GL"B4\8:dKƾF?W L&_h8̹Հ;U߈^%m,r1"ZwpJ-3im 5=]܇6kcqŃxlNk0q#H=|70kW!E'=2F  6\8M`JTTYH>4sNPɤ104Ǒ碽 ( Įaܸ&KZ݂v6-}huf/)aWA[<Ljjԋ1Iy.  KcW- husоO&g;m:+d7c}X TqhO(="bVx;)) xހdG#}qɡڂKMRpͺS8\I_id#UKuXVv^A/#-b%;O'X>⸄`t+0|ŜMMgfͺd ިuF|ƌ8Sb/[Ajzpcl&}:. HyӗpǗ< P]F[hSU_lҘ\ O"lq8Q|3#GSԧQM!;cqi[ZEʵpiw';Ið|͋={xK?!Ǖ9Ĵ,mx:p9%s"hT_t]-EYݼPAi>Rx|MZ~DQ[Ҿ Mt[7wXU锋 ^.óG-ISTq}}S, ϋt"pkFME%F 7Lw!=nB5ːߋ&~u E0xgj`#rR/ F{GqgӨgFwe8qB-AքZx1QbAwrs‡܂ID-ӂ-:z)œK3mfytb !ǧ(()o'v`#!z?ijWE]\(ŇFkTu){]p"<@qם|Qhۑ-8Xwp?^qDnԹʲd!U{ Ri޺& W@*md'4&􋝗K 20eO+9x 2ٟL9IF6us8g)?q_/K$gԖwzY=[bG?-֬fI~{|B-&$!GVCX?VB,讪H@Kbړore{cYS[H Lt>,ii8>Aw;]BuSpKaA4ѿ>6;i^xTzPV%1݇VUlAyr 5;1yAQGdrSr@"J]}]8?Q$r7ddo.1*1AYQ(Yyi"g)R W@<[m-cO.VMnYJFviy&5[>r4O7rK^N[&Ⅸ{zxQi\lT^^*I犾KtZ|ígep /'ْk#3$rå_>Hw$'=i;ٝ?4K)u|Cx +"y伝dds:Hhz 'ULet߉I vR b Un%%>UI]u^6{BXwؑʫBS`[#ݿ_%hK Rm#*x-~t+VH nM~>K#odڧdEW7ʀ(f/~4$8OGh=WΐUiοEC\B4Q!BunT#='T*겿Ժ-a5i.`EZbQ峫= $g>BohF3Ɔ#]擢 Qo1ܪ{CtO2_ݏ,1GT {67̯ wGԘ4~ms Dдc<>WJI0]TdPU$gK̼ApAOlSm8G6jU8\`avI0JF|?,LEiм. ی Dfl{ec^ҜFOîI@ɫ8f\|m[(!f{Qne2 C<]~cPQrT{1H#Qm-ݐ9E`qLvcF\6d&KEF#5B2M- +j|+vH8)hџ[OT33σ[udZy.p5R3<?A/Hʶ HN-#4/}6|ԛ'ٖA 4@aSx$)MoiLߕ˛яlY Lw6HNqo\3m혱n<1Gc-& -N׏Զ]pILD%OhFn|7T_)$}4۟D2ռHvC)p qѝp>L?Y^:opfH bVyi&/u M=G[d_n)Dyb,E[eWi0IT_ {Lt+~v<q zY=p]Ik0mJ(T>Od8Ϲ-<$8Gz.֑'!>mxK n;t Wg?=Km T3c`4)+"yELA#>CGs$"ą% ,R)'ڜpNGD'~Wurd\[o%\;Z!4p ;#OFQOorH _kC6LVl;ԾJ fᮩT!K~7hQ1e.w!RfwSof`>p9\T=𼦺} 6ڣUиZ=ݤ>.D.=5v9%8 OM7Mi5l?E%`zkA#$rT6kFSIoEG3Y!?_(÷k7NԎw)ޛ2&ǻ~DW%ʂ^5y8;Q'{ >YKw*7gF bM|TNL^A\_"#ሁ W}m:SV[Kx=) \(dgF ',Ǫ҆<(qqrHElC7ku׏mnZ{ro|f61Fz$oUGCO~lQBAf!{®fZ.)IAnd|D1` bLݎazߢ$)OJL}e ]k磃Ikph*j2Li+#ݲr,xKʒZFoPY:a n)uAJa>_hɏ# yfŹ#.gs=vѬ.w*.zy"kN\W*7nY9>{ x?ϐdAg׬9fѵlHc|y: T̙Ůۆ,^I\LeQw4O-0K9irknuIq0i3+-Aڠ4*g|̖IC ^o q̡?nS j7# +ofrJ{{D p4Z6 /OFtZXք˖!;ɣiUƨPݔ2M7mt@WrQ<;9u!C}t/NEh/(jV:覂mP|Ws}V8?z1CA8 Fw"(=osnEov@_քt$&|$*4H.B)P77\=@9, \6`|Ra!s(E竀kpgQK!TN>thVp2 3)>yߑpq}pGiYsQ? Δ0}pxd یu 6ЖD'?|]N!xxS3 PMTwaoxPt5Iʱ_f3A" =vd7k':2NyQ0qzsQK>3IzUBpJ=yLQE7(dz4Q33cׂqsG+ZxmmpW3K>z ӯ6ݰ޿7y~PNݥWQldL4x*=䕴}}BdoIa"5 9{_Z_"z~P}mLBo+sVe7l޸^O{Mh\bb5t uߋ6'펾~Iom>ͭd߻M(;' ?ria92r 0ï4L&v'OzKUcM.ZD T6G/L]7^C+%na竵I8L_ }=QCאD҉/eNn?Md)3r?@w &5+_o[TG4ދVTd>G2gPe x(/l9_#vUP9s7SF FdQQ ;Z B+`}@Yբ54^Џ>(B0[섛~W&TmMf]5YKzr/C3|GȓO򷂸Chi!*C!nͦe5Lۛzۧ=Ou&zrŮc|2 Sݷ;ޤEq=[C-YTG&}s^oY}l+0ml=жeO?z MbB_8'z!d !nR /6bD3=92G #H9s S9y78͵P$7+lk%) :w<צ ws##Y^ ]^{MAa0ƎAԊFxNZo})YOpGSN#_B9^\$~JnMzv}! ˉ Y5jXWh[x(Uvr'yM~{#d)L绽jhk6sTaY l 󝔢y܂SW^)lv8oSv>b2RӸaSM([Z)gDv@*}G1CF`NsxE:/hI<7 M͝;̞+MܟXsT>sI8uqڞimVMWF,,aO{0̾]p :g7`-B/Ro.csn'&qpPspA*^?˂j *ieA)H/]lO2h7.b09m\|08wk01'U}Z TK0lܗvW0=叆0u荬)R}d:Adhl^ jͮr{eduEO<8|Pe~e߇jXT>;cgiC$q=f./9<$z녟Ek{Zĉ:%q0 ddnC+kKv:?%cw!w yȧ1MEU##;,;Y6G ^In q5vH>38ק,.8cqBNfڏ"@Tԙ F䨽V' p/>Afj|8>ƉA/6:s"mr_0ykJ7])eWI2QQw5.S`0RϦmdAM2H'K]YZc+۾ 0*}7[RYGy[ o= ~Ԓj< 6#YL&7Lw!c{XT#L&82(mQ]ȣ4y)U:1ܺ~9.@ֱwWbPOk,k{jxM"!3:%cS 'z8v 5'1)jGތ|F=ZV 4W%$Wx.LHCIvadp_F*J뮚#Z4Yyi/=Pyϙ~0}Px8JU5&c lQsD{fb: }eqN7Kvy&_+ug7)Cmimwёqidԯ&5rĮw`@_TwX_IL6غ]@OVuBcbOK!u-ݯUdfD"iod"g.< *@\)+Ef 7:D|<Ҩq2AJy?6XӇ\%19К+>/$~P%]v~TC-st?XSjbw}>S u.r[-L"mGR6w1&L?3]C{X84a(:N ̒TD{kףܑs-%JvuE~qxU#ujN"SYl-)@^^=y)RIA)K<:/5C9tۉ dFH#ѱ@¹Uwȱ<#TGcq@0Շ$DR[FDď= Gni H]MNNUW$hIb{HQVXt܁;kj|f 6+Yףb7vX\i Ԍ*=]mT0N32yѦ.I4ʺՍIWFR6yQoyTPq27Sm,T~"Һ3M#fi>(>'FP~Z7PgN=>׼")^5Eso١ `(0F/+)kH|/+56q_/w IJQnpǘPy/z&W8s 1"@0đxZU"7l&iA:\TG8J 7k[=!Wg6cȻ 8E=5)>o~P~,2.9MUCZ9y?УK MvQMI YD.!5ym/Zj+E F AY^/DY03kt!HjI|OГZcV"7FF%se^`z. '# Z~ ?7?zhץRcۼ9z.\kh{J|1}D{^#Lf\]mJ.Ho5 OL,=|55~%}m$P{ZIBP\9a&WxN$Q= 2pl"XSs Yx!M߷sbQ+O`5)eg8N?z mMu%Ii4& =r A ޠ%?DzR$n<ḇM*| 7׽WS'R Z', 짯OLëY>uD)=yH2l>/Ѥu i57YjaHԩ}C}v{MeHyO 9w3. C_ i~hW$7oF=ZF=FCd" Ƌv tswp5W'XpC., ==2ήh>!LxziN:1̌60Jf1m}82TUc\Pu;n6]\JsGq]W&-IF@!k48>sj{|}e4,])8,m:}x1x JWVCOۇDxG I9WOb[^ KGe@?v>-~jIW|t:~UUD(xm~tA-m s <(R8O]'aJƋJ_M=6 #=bL8eu~κ*L%'Z`)=,%F'e'[J ̏J+j??PXB5La$knSu} Vӕ}՟q_DscXKt/G{* ljG` ֝hл_G@Aq*Za9JF <#yFBozVzXDõC„tpҐC-]QIgyƀĮ6 dK̹q$Ak]//9~e)U .Hy@qT4/LTtN 4qS$ͨr?5=2_ ul{|槫[@ϺQpG{pGP5}?1!亅4d%@$*4܋6:{MH7RpT}6!"I,E=P8ȂCݚ&za70*wC(wdv=Ȃ[LLjp:'~rKP#5an#H꽹UhyO#np&֪tAA6dXۢg`M2ޟH5h\ז ѕq9Q+נx 2Q uPf=Ċ]-Đi$n1 ; fcqJlp[4]1YK0RVaO~ZK]0l97՘FO%T8vrtڮpowȳƻƻƷƷ&&WٻlCd8inۉc;8#؉c;68؆s:Ν8iΝ8܉s;:Ν8܉s;:Ν8>\;qDǵqmNێ;Gkm'c\vƸv2Ƶ1qmgk'c\vƶ̽#q{;G;9Nw#q{;G;9N+ە,\g; <;INNxv(QpLc@yvVv?ޝe߮l/wg )5NxwwgxO3i>ͼ;w{yjۙo{J)>@ۇ0o' 3vbwϳ]^`{8+Yv lvV%xۃ}vٻmppl};׶<,;,vٰm̿6$rmGµ 6$\;pm;n;lXga{mv daafaنrroV $L2q/vxvų/|lgGyam *۶nw/1;Żm*ywǻ3hx݁whxuwGyuwGox mgoGoo7|J۷ہo~ہoyob=c?V?Ͽ~mG߁[w[]l)'f[`7۳`@`;ƀ1 m `@`C Wʈ6(.?FUt? aFR% u>$ߠ: TI ?l?l}xe7?crB4Li p)4'?DM; 7kEui%wkNYOX~ JUyc.Xc5Ua;^z]t[8% jԭUBm獗* lW)%2>Gl?X쾧 ~ނ,3s٪%2p Q \;xoѥy2$yۿf'-sA7!4DNf<:Hz$Ak7x(ٛC:hOv0K=a|?(,2џ6[a1O{ HA3W¾`8ǽF6i1s埸eһ #/%ܯWØ䝛BS.#ouc>8'`I~jy<;o`#TI4muJg 'DLl JxJFCDqHdϗ PʛPwzW7 9eOcoN߲[VAڻeɜ2cF<( "ФfiM9<6SЩh̿xo_*گؿχ w;TTxTlL>`$2]i/m9-9M7)W|l>Y,[7ܿ t2Pg */0ɰh9xS^=6܉ϖq/U/~WH']Jn ι{olOj~*JYjdIV?ʬ/ ȼ!a~-q@IɕSB:`+oÿP2%r ,)/륵0@ gVhpS (,׆cy#sLBm[vf iII'BQ|^ ONx+%Sб=ѧnw] ީ'7`YI;%9qx_&U~Υ딤ZٵHL]BEYD`zҝs/n&> qN V!=^Kur7au`~a#3 ^`vИǣ?W@_׍ tJpBic&'sXFW?6Y00M1y( e rˡ%zIn?@)#ggezY؝?fXÍCB.`񮌧;L|&88>>9<_k4m_{U2o|iAweR?I]SN->_nf]8m7>X">E"I 3PM}8yߓ0֧ZƝ/75lG5^>v +@qI;%65mpb#OV݌Omk_noСRJ!ꩧGL'=fn?$MWƅqru__>#uy~8 om_{ 9$1 ː}4!X9G^xɻ" ðPL6~e&h&uy{ܼoE-}(-<#t()z|Cw{P((\_N3 fN@̩e+%X[;?ir.[VaƖM07o~74Sx 1?z'> ۰>uϑiCΖpCTY#l.Dc\!c)R6ske"qdy]LO,0>{eX<$Oڈ{.Tٿ~ƺ|v>[Jeo^zxnk!U}axk\ؑbx~m4x;L t[L`z8xRY2fUF᰾ŃN}`=[!D]uר.lo~ ݗִ'AB?ָ0 C'4܄ݱpe:.tSk˯n?_hzet+5^a-Nቈ<ே丹#lh'Td-/4ߔBLTϖ_Fu{`x@Mk'.xiI;kb~=ڞvu.dp,;SbOS' ibt)d<74<o4BˆEE1#3hr[6`Fit#8PI7t ]v('ߠlU80ԋ'߿@wC+*֝\bS 꼋eH|;풌mZѹKi)2Ƨ`*hh븶`d/Gk!ȈϏ(1-}Ir4 EtQZRh{B"cD^@NVwIzp7̼ ~!֫Ð{~n sTxKzly3Mu 4wP>:[ij)5J= UpW}5+iT0y"<@ 8!01tO!,v֘;\4m2?O%-rUz I^~hOpԵ-jTA "<ނ\o%h:OgZ /r?[$\n`5?ޣx(ͨh:g"/=KZT$uUw_?v#_Kk&Bͼ}:Őo>}N~.\Gfo,< ,9Tv2oC^,EJm Q4q@k3 R%W?E K^:-C#x)4J(+Dv޽ν,@Ep"D3dɠjx+)hwj>h^R ZOۏ+\[ aJG_`ʠ#D ~:\~}G zCۃ9@:WDb&Xߩ&wx|3i!RClju )"Zu&`%0ATO7| wc,d 7nwg0$+\s@W>7e/''R 2-ye'X߸lQb\(vZJٿLy!WJ4s5x P1DeҸ{5- o1UxE1r'zF\p 鑼=_C"kEهbVl؟sjZƹgdyy9g_p\3K+<{͸ۈ?k fhvhNﲛȷYeo<U\LcmF)od砾dx,v|YWrTv[>`I p+p^4%d'{[xa -B>Ls 'LrHx䟲Kc~Ty6]p||O L?) @S1r>>fHi7ͥAuV0J9WA:zlӦ]p3pn)ҝ*0~'Y? ~s6$G-\>`e}0*:du$=eJ' [_>Vlcκ#[d!#W}qDˬ}!YȳzH.]E+P1vv-#i*{-ujBJc-$أ=iV6 ^}VOxavyR=D)0-~ y£h3.!vyU!VQ 42M\3|544|4=[?Ď*fAc[h0mO7 (>>װ&IyvG輦Ѧ= ^{.wJen1<ŕ iO.29?khy~ܩgqhP# ry_ =!>]߮`}xwMnښlm?s#=rvL1Vum΅xp ZcӄnU-,AYxk_Oҥϣ "Q;YL!U+ĈQJD }.[w~v|* 0kd3i8<W%~=;F|[M}iKtnߞ+BGmݔ`oUHNb_z[Rg> yOIa8q>gIۖw?4.]kbmGW8b}0\WB֟غ뎅B$͂qZB7ԝ>'= MJ߬W.B=1[r ˳WJD r߲5es.=c`5Efg<ԣ*ݯ>ت#;OpaUI”W*ʽV7 WX^j-0~Z g.J:fs(APH:"麷gqugb[{~n˞?sj% mIU$7c n9bB TJH>9 mTI;3a<}&%Ȼi#sTj/"N_}\z.;rx wW*MOJLNuJ,BCZH!x_g]h.ayjDeRH_a%kb}vD:g^9W>HQ's`>u K[" {>SoDYi_v5b?.|$_W+La1s:d-quj?x09 ~nmGZRr0"|xC n;!S̍_,< яt)|zJ@%:>;-0`~껭\/<xO>Yrř\ZgEf y5z_I{y0>h/nR 1B W‹))ooȟxF1-3}NZc/g"ɗ |XrExAwͪ'?VgxB!\PHht|#V:|surs _x TVԗ ԅ`JfP"dO*=$p&ֆ^^} Wk{6v3Z=61hb%,./ -x;gS57BӍ!%2?4gx>i0t'SNo\2t] H?/XF1уM58BƇ_r.i㘬0z&d[Xb#"vP]{S:Ce|W@ڟ,a]px*A -<=`r =~0:2Ni-'Q``+_=v6ZIx$:nTo@]{RJ xZ.!~1?/ zfxZ\LFܷP&q>fHyV{tl1zC6ё jHO?>!eY֧/c}RjI(IN=O^W.%QvxGfɆ](Nv0?2oOBut?x'Jg#.WA|krށdE{b{ߔ p03 =$qom g?&?jg>ٌi. xΎAȑp_-%x, EYO>? 6GC|Lݦ2ɀHU!N\nw vmyZvl̿Ժܓ֯B['agaX12M/ƹkuk5h<bOl 9#_ 9qwbqivB,]'|Ax%wߺ>1NLJ#N`c=M -){O/W>h#D<z@6sm`T`S :7I6> \¸7E'}ݬnF *%oI_E#]=w~0߯c؈l*uw3i z8Ĩo|͎_N>S2}T3l % `[NsmC kչbm*]X; sխCuz얂>)+õ',~QP)uwX]LwA1K Oҳ.!;e\wm^S1C.2twW`s+w\JUcr?k!dq l?櫐{}w!#r[}4W(BA_LP͝aKtkզKc`)pһiFBo!Yr);f/CL:Í {v~ٳGKkOAe zߢE)?Hq".8?ڵPҭ< ^aøI̞y=y5Cux)Hd} T̉:KۡGJhk*ϻ*9KJ[é.oŇ@'<8,)@HLƑ!mR(hRDnQjzp}_(x27C$xAjx/揂CXdU?;䅭zBܣ̉p)fj+7I I^T62Q![_ !kl|v,9&HJoC:!A阜|9R(!n%W|_\_xVOlZXLz>&dh/H Jxk TtKb<+4qyt6\8yt!g0w>1נ'3eYg~/=iϺT98La%,KU_2}!;C_$#fV 7-\)>eknѺ{Ge hz 7Fp]\̽Mk>D T9,r-o\\Ƥq7y{pP/6ZD*/7(CK NkiOu1poTx4XJb٫i~9IG5*c6t ELڮn)ǹ Q<!Ng6 mtοn { 橷!Z;k#uW?ָ4\3|p:z 턿bvE{Ҭא{hsaCuf\a뵳7!ìcE ?s}_TD2TQpOq-38P3-@BmήtPU^'";`QDx߅*1 1e軤{RE΅޸)+Qo!E~?4MDImq:&NC!o2alr/yE}O8AnC5H} /w75AMإ Jxm<1.p/m*rI9^y#y#yyy7呷I?AMKZ"2Obdx-W}-~7"kY,c.x.- 'noπdP㥇6SvgUϯϯ7=[EAC}hH?,o zW]$=~l/<yWE_?:ĻMj%z>k~ϼ~z/͓CAxƺdv9.$вn*WN| G𕪩;2SH!?aY_TB;SUdZ9IBsD0AT[u {2ӧMqHq3q$`mÂكA^H,:C]9~.WB'|_T̤Y@ޗFSFokBR HШu(MT"CeJ JE$3SY_JpO{{k׾Bn.d"su:WY +QJdGb8x,Y^x~Ǽ+x&"Sb<UL]PS 5ǥ?~~k#z8~L 3je z> ‡g n6(w{N" ;QÚ^$zGǘa޾wW3ɀtga:1\_ jz'Nz<5|c~wdj˼jJ&+R5oub>Fϐ_El8XGB/ _Ƨ"ɑW(> ֳ.zˠk697{z5ҹwu*'c?H*Sb ##vd߈|0 &~->i`A!H( [? >qHko|/IJ~M\=S΢XD9-BV%2!-G{>%P1,(}IA /бfGڨ?+ sͧEW7;ЖD\:SXg0ӓ|MRK1IڻZ$O_hӐߩX,wpG?w*piB}Rܭh}VFceLhY UL Q#,3תGy*G,$Qlz(0oj3"T8ŸIFfɈ*^ۼ`1X2/\?+yïVXiAGoBcYC$2tvw(& F.DU?>zn ۸˘ zʢH0f#X͸Fk.&2aGhJԶf,?j U)[|"ᰴ//8O緕[&*m y,r)il1j#_ZZ869XX*=N4+h)_ GekyPNPlAe'Q2Ix-5| ^]%yJ_W|,'"!߮B`R&V1YsK0&֫>ɦPEEk!AРiWr[&`wXq!9zk{OpdJ>DW^*rS\ĹuDCO:ߝ#1} E0|&U21 C\u>>goGo4>6 xO)U1h;rk<%|.9iF#(v#ާQ/윫ʗ^8oNV#j<[4\NOԣ4K][ )rFTii6!6!/ 9rlS~Zg1FyIZ tmV=T-Xap͵P:l=huОY~FW1Jɂ^o>wF̙Ưŷ=c":wXiJR\!Ꝼ00{(y;+isēH<-D4] ^>"%3bebY=ء|j-.5!8Xd;$vcnD `&oey}M*fZخ7LnGR))Yw!tA:̸ Q@-T^IˮAGXJQ@a1>P:}nETZs߯>~(Υ[|$-D q8 n4u4vs[\ 6h7-p!v[YTkl\.+z*qH ID~ kߕW.Mri"vn&zPϮ~U1i~Tق7[Y2o>+D(bň$3zWlQ5-D:n4@RI%FH}Еf?lbjouwOa(807*2ꅛx8Q)W a_Q V :WL@#qKsuOwA$*龍 #A,b,q)TK@dΓ9GM-).G#򽤻9HV~&Ձ'og(E{ki~S[Ĭ@!OBzTG'W|PΣCiH0GPWrǜbW"P^w:>ZG/Z|簻Xŗ tâcoy1SĄ0FcMYj~JP2o Hm1Z˲k.93LGw\9(0LZ5N QO Ұ~WkfE|Zk(V^.V03#8y+u]l*C;^x훼 K\S􌔊u6V?\T6( 6codZ˂:gVd,ʨ*:7R2v[RiyuU@gc4RAԦ|OzUS2[}SyZi C]rBbSSsY}%ZΙ|9IGc4"gHwwl =_nupթSe^%Eد4ub(|XkIB> JE:nkEgQ'F2:l'~G SK0Zk7ۿa?xQgՑ=Hu ~M;L:Q__/ =1wq/y~3qYv4u6BPP(^hu٦7A|qfadנHS3q=bY/Dm(I}3'n7V}qlDxyٙǟUBOb&G1˘\8,y%%~t7m[RgWkuN =Aqˢ7tyIɖR튨ɞPw [oXxn7)C>-/wZOd"gkջ߈@֣p1lR#>G }•~>e|mOʁ==ER8f03@cЋLLwt d8{\7{e_.+ 4@{`x_!v[1ǚi>cPluq#N+|!BOP3vfpq;N~U=63Q#-0>Ks+"~b=O?7nuܺCw%i=4u azӏ (E Wz0iۯ"bN ӝ.S4׭kTKA.XXi@2 SH{67 WALۈ6 DuN~ VrKa J^N\1Tq&3s+*O؟cWQ86M4[)l7W-544D]w 6H+ޕx?oxq߽2ӣ򇡵_5OfyKKXekע0EաUO )oyߏiFٕuиo_b+֮Xx(*^` {;g(7kdAr{cY]d96,P֊ ~,OmH+;8P,"ǒ(Z(%~Ц޾܏dG+"75 :1!'^dv|BBL -V.)a#i~A">J+En+9d#}i%m}CsM|u|L5adBh'ҋ4롰N:/*ݎL\E>nsQ rnw!NUFn"_ZVq9M8Z5cwv@E)M\ dm_64+Fަئˠ0qA۱^^ᘎxPxIQIkݜ>D~ԢZfN೺WHFq.Wkj׵)wIVݖ]3YkN1iO\n'R)Zt0>Xe2~-?y_Jέ4BaH|64wGVB j-h1Dn17l"QH3 ^WM\9P"QqH52'fm'PXE t/tۙl|kycоZ}]ڶ1A7%C-.;en0C\KP@S^w8f́qzC߶Y 'O$۽B.ޕf/fiO7rRGI["Vo]to,1W6SDbWrETHt; ZceX-n yզDirichletMultinomial/data/xval.rda0000644000175400017540000001216213556117225020306 0ustar00biocbuildbiocbuild]bBf#d.2! "d11F"&)b# ?YX!+5 AV#k[d-C#{d#ٌ8 d+8#d;ىBv#{>d?⊸!x!o B|G"ǐ$9!')4 gP$ G"H$C#H4r *r CH@d&Bn#.# yd",$y^r\Hm^%)m&@D/TH\^Nyo g'UE\r\.9jE)fd^du#r̓7 ;+k7g<7\l)3yv`!U7?ږUlps^yi:5<;:v;@O![B˰OH4nrJ" 9.Q [/M2Q"E~5{@3HmETt6Uۀmr]M-Pm}+i W3EͶ[*]%8ܮvoq=@r%N2Qv)wCLO3;F@/]nq[R y܃GEV((|iDM*f"jVۯ +CmұQ?#hGbq9@'$3.28P}+^vs?KC7F*[G8mT74mom=5kw--]mO) V? tF@-=#],Rnw3h_4Vh%Zk/)Ҫ[ mlNӃ)*t T߉SGEOHt_,*k^.Y5GvaT|?T~S) òrAvQptn nS Fγh  S ~NW8~&Jk{ԻrsbX7ce'snjM|5*}+ϮٻGO ϔ6p[h@`Zo7wH OM|j SsϏBq\;23ryEꔛaJg/jco5!H mW *|&S^G*e:.*Ab}G++һCj'Tpg'Oά;4<Cu/cf/;:8W\5(TW ٓB}+fGE;!A/xΒcwaG;UC.R"5hGyr};!@WStTRR*db\=_k>Ws&Vw_v6uNc(h~d>S3fsdCs_s!1%GKIu/ieƞ|c/6D+ܰdc}gk|}/HP\r0Ç!@k#o{֯8TʺgԚbbZd5-~H=2{Uzafqr+dt[И^BU3P@q\}9eмfRj(O8?64;6 Ǘ>#gЪ^Ӈr6;2?9NQ/\OSb3Úya/))#FCW gc\=c #;'96b ]w:ٖ8qu(h<ዊ Ըr"5 H2($˨pmYugwIΉ I3D%ߏ:6v,߶^P8|y+(q+ZWW$B|bUʻ!kN>l[7@MwQo֡7{Լ'{9%ulqP{o1>iz)Ci׹Oڭ肆{B{(wz@+/ʋG`ݽu|+6H,lA񉐎rk:|fݥ/-Y_χU^@=3Zi yT_M5K F^US*ohz9'XW[~c}:ғ}0T0VހtzU@j'zì-_?ڎZYfox+}ڐLG+Ѿ<6+[V na{MC;O 9٪@`kas+"-+n%[X=x tQIqMA.̒ͯS7ZEw@.-y:y -v\y_%08&(2ַ%,i[K0;%uE4kDj$B N^fRZxrn#i÷f gx |&>)̡RhpZ %NrЩS%[C5סnkuxhwqli%IINf}RR~Fcj6qǸW'WnZ9WsLQD^BzD߮B5{oC8srtQp{E RN =yh<;ėb &}(_5n>s|?|&r>˥̸]HNW=¼Fڛ衏OWE@|pK㪬wꜧKվwh{ s"Fㄡh^Ol}]bEw/$yZ᫃!2I,2~ 7᳹i]{:ދ3h|ջ]yP/rǓTA^Ȼm/6Jh>In WOȀs1GЯXߓcy]{Yl衉9p4~S5_~\_>k曺I]lKװ|O->S˖ ]5OʹYG^N)'m}ܟ6mZq9$ w;f] ^ޑ>Y4z{ؾH7Px|xijT)t<<y0JOwn m}70{ W!/{ c78IѠiR<|Iԩn~Ozf3xr3mڇ~P8s&1N%jX\W'.wYmu.; UG,,YGf2?56=&͗IǰA=(eO T\X=ַ_&T- vFK~|ʻ:6Be$?_들y}A :70uRF0$y/+O^UG-=Gm3Ƴsm%1>}pM0s"u(x1qH\/xT 7AMptec>?;C%Tݹ2@/.lCmLol o,)ZǺ[?}OsG@5K!VCV@~x\i{u<Ѯ=:f=3k<zeo=l6`4@󇿎J;'G- 8mXzD(99!ŴiP05a:?E9S_&¿=Gd'o^&\V,IET`1+6vGbp>Q䊘Sɩ9"b:&\b@HD/.#\;s=J 6t61%dH<r\Ĥl!X'2䖄~xx\=E3u 2&U%B!9GF(D8Ip>c4GL4泈e0f,Q  m? @ 7\CGF1 1h+bi\2w bz>}b'=OgXX\Ft1M1i-1JP)DXX\lFc wFab?#Q JI@(&ljz2K6dLsbnȅlpIE&s!،"9L 3hd3O"8ӄd4#0a'M 4F>c.S_S/!ua=y_cN"f HcpqHK&2r]бFx Hqbx\F0;#`/bfVEL b!+mB*Z20Mu8e1Bq0OS 61{1rƝUHG"<.C"J^h5nx#I\ (?{0/bq_NĪb. uÑ]lG0:.ygq#a0݉4~gg~doeo[m6:Kë7 "DirichletMultinomial/inst/0000755000175400017540000000000013556154024016704 5ustar00biocbuildbiocbuildDirichletMultinomial/inst/doc/0000755000175400017540000000000013556154024017451 5ustar00biocbuildbiocbuildDirichletMultinomial/inst/doc/DirichletMultinomial.R0000644000175400017540000001440213556154024023717 0ustar00biocbuildbiocbuild### R code from vignette source 'DirichletMultinomial.Rnw' ################################################### ### code chunk number 1: library ################################################### library(DirichletMultinomial) library(lattice) library(xtable) library(parallel) ################################################### ### code chunk number 2: colors ################################################### options(width=70, digits=2) full <- FALSE .qualitative <- DirichletMultinomial:::.qualitative dev.off <- function(...) invisible(grDevices::dev.off(...)) ################################################### ### code chunk number 3: data-input ################################################### fl <- system.file(package="DirichletMultinomial", "extdata", "Twins.csv") count <- t(as.matrix(read.csv(fl, row.names=1))) count[1:5, 1:3] ################################################### ### code chunk number 4: taxon-counts ################################################### cnts <- log10(colSums(count)) pdf("taxon-counts.pdf") densityplot(cnts, xlim=range(cnts), xlab="Taxon representation (log 10 count)") dev.off() ################################################### ### code chunk number 5: fit ################################################### if (full) { fit <- mclapply(1:7, dmn, count=count, verbose=TRUE) save(fit, file=file.path(tempdir(), "fit.rda")) } else data(fit) fit[[4]] ################################################### ### code chunk number 6: min-laplace ################################################### lplc <- sapply(fit, laplace) pdf("min-laplace.pdf") plot(lplc, type="b", xlab="Number of Dirichlet Components", ylab="Model Fit") dev.off() (best <- fit[[which.min(lplc)]]) ################################################### ### code chunk number 7: mix-weight ################################################### mixturewt(best) head(mixture(best), 3) ################################################### ### code chunk number 8: fitted ################################################### pdf("fitted.pdf") splom(log(fitted(best))) dev.off() ################################################### ### code chunk number 9: isoMDS ################################################### ################################################### ### code chunk number 10: isoMDS-plot ################################################### ################################################### ### code chunk number 11: posterior-mean-diff ################################################### p0 <- fitted(fit[[1]], scale=TRUE) # scale by theta p4 <- fitted(best, scale=TRUE) colnames(p4) <- paste("m", 1:4, sep="") (meandiff <- colSums(abs(p4 - as.vector(p0)))) sum(meandiff) ################################################### ### code chunk number 12: table-1 ################################################### diff <- rowSums(abs(p4 - as.vector(p0))) o <- order(diff, decreasing=TRUE) cdiff <- cumsum(diff[o]) / sum(diff) df <- head(cbind(Mean=p0[o], p4[o,], diff=diff[o], cdiff), 10) ################################################### ### code chunk number 13: xtable ################################################### xtbl <- xtable(df, caption="Taxonomic contributions (10 largest) to Dirichlet components.", label="tab:meandiff", align="lccccccc") print(xtbl, hline.after=0, caption.placement="top") ################################################### ### code chunk number 14: heatmap-similarity ################################################### pdf("heatmap1.pdf") heatmapdmn(count, fit[[1]], best, 30) dev.off() ################################################### ### code chunk number 15: twin-pheno ################################################### fl <- system.file(package="DirichletMultinomial", "extdata", "TwinStudy.t") pheno0 <- scan(fl) lvls <- c("Lean", "Obese", "Overwt") pheno <- factor(lvls[pheno0 + 1], levels=lvls) names(pheno) <- rownames(count) table(pheno) ################################################### ### code chunk number 16: subsets ################################################### counts <- lapply(levels(pheno), csubset, count, pheno) sapply(counts, dim) keep <- c("Lean", "Obese") count <- count[pheno %in% keep,] pheno <- factor(pheno[pheno %in% keep], levels=keep) ################################################### ### code chunk number 17: fit-several- ################################################### if (full) { bestgrp <- dmngroup(count, pheno, k=1:5, verbose=TRUE, mc.preschedule=FALSE) save(bestgrp, file=file.path(tempdir(), "bestgrp.rda")) } else data(bestgrp) ################################################### ### code chunk number 18: best-several ################################################### bestgrp lapply(bestgrp, mixturewt) c(sapply(bestgrp, laplace), `Lean+Obese`=sum(sapply(bestgrp, laplace)), Single=laplace(best)) ################################################### ### code chunk number 19: confusion ################################################### xtabs(~pheno + predict(bestgrp, count, assign=TRUE)) ################################################### ### code chunk number 20: cross-validate ################################################### if (full) { ## full leave-one-out; expensive! xval <- cvdmngroup(nrow(count), count, c(Lean=1, Obese=3), pheno, verbose=TRUE, mc.preschedule=FALSE) save(xval, file=file.path(tempdir(), "xval.rda")) } else data(xval) ################################################### ### code chunk number 21: ROC-dmngroup ################################################### bst <- roc(pheno[rownames(count)] == "Obese", predict(bestgrp, count)[,"Obese"]) bst$Label <- "Single" two <- roc(pheno[rownames(xval)] == "Obese", xval[,"Obese"]) two$Label <- "Two group" both <- rbind(bst, two) pars <- list(superpose.line=list(col=.qualitative[1:2], lwd=2)) pdf("roc.pdf") xyplot(TruePostive ~ FalsePositive, group=Label, both, type="l", par.settings=pars, auto.key=list(lines=TRUE, points=FALSE, x=.6, y=.1), xlab="False Positive", ylab="True Positive") dev.off() ################################################### ### code chunk number 22: sessionInfo ################################################### toLatex(sessionInfo()) DirichletMultinomial/inst/doc/DirichletMultinomial.Rnw0000644000175400017540000002327513556117225024276 0ustar00biocbuildbiocbuild%\VignetteIndexEntry{An introduction to DirichletMultinomial} %\VignetteDepends{} %\VignetteKeywords{Microbial metagenomic clustering and classification} %\VignettePackage{DirichletMultinomial} \documentclass[]{article} \usepackage{authblk} \usepackage{times} \usepackage{hyperref} \newcommand{\Rfunction}[1]{{\texttt{#1}}} \newcommand{\Robject}[1]{{\texttt{#1}}} \newcommand{\Rpackage}[1]{{\textit{#1}}} \newcommand{\Rfunarg}[1]{{\texttt{#1}}} \newcommand{\Rclass}[1]{{\textit{#1}}} \newcommand{\Rcode}[1]{{\texttt{#1}}} \newcommand{\software}[1]{\textsf{#1}} \newcommand{\R}{\software{R}} \newcommand{\DirichletMultinomial}{\Rpackage{DirichletMultinomial}} \title{\Rpackage{DirichletMultinomial} for Clustering and Classification of Microbiome Data} \author{Martin Morgan} \date{Modified: 6 March 2012. Compiled: \today} \begin{document} \maketitle This document illustrates the main features of the \Rpackage{DirichletMultinomial} package, and in the process replicates key tables and figures from \cite{10.1371/journal.pone.0030126}. We start by loading the package, in addition to the packages \Rpackage{lattice} (for visualization) and \Rpackage{parallel} (for use of multiple cores during cross-validation). %% <>= library(DirichletMultinomial) library(lattice) library(xtable) library(parallel) @ %% We set the width of \R{} output to 70 characters, and the number of floating point digits displayed to two. The \Robject{full} flag is set to \Rcode{FALSE}, so that cached values are used instead of re-computing during production of this vignette. The package defines a set of standard colors; we use \Rcode{.qualitative} during visualization. \Rfunction{dev.off} is redefined to return without displaying results %% <>= options(width=70, digits=2) full <- FALSE .qualitative <- DirichletMultinomial:::.qualitative dev.off <- function(...) invisible(grDevices::dev.off(...)) @ \section{Data} The data used in \cite{10.1371/journal.pone.0030126} is included in the package. We read the data in to a matrix \Robject{count} of samples $\times$ taxa. %% <>= fl <- system.file(package="DirichletMultinomial", "extdata", "Twins.csv") count <- t(as.matrix(read.csv(fl, row.names=1))) count[1:5, 1:3] @ %% Figure~\ref{fig:taxon-counts} shows the distribution of reads from each taxon, on a log scale. %% <>= cnts <- log10(colSums(count)) pdf("taxon-counts.pdf") densityplot(cnts, xlim=range(cnts), xlab="Taxon representation (log 10 count)") dev.off() @ \begin{figure} \centering \includegraphics[width=.65\textwidth]{taxon-counts} \caption{Density of taxa, across samples} \label{fig:taxon-counts} \end{figure} \section{Clustering} The \Rfunction{dmn} function fits a Dirichlet-Multinomial model, taking as input the count data and a parameter $k$ representing the number of Dirichlet components to model. Here we fit the count data to values of $k$ from 1 to 7, displaying the result for $k = 4$. A sense of the model return value is provided by the documentation for the \R{} object \Robject{fit}, \Rcode{class ? DMN}. %% <>= if (full) { fit <- mclapply(1:7, dmn, count=count, verbose=TRUE) save(fit, file=file.path(tempdir(), "fit.rda")) } else data(fit) fit[[4]] @ %% The return value can be queried for measures of fit (Laplace, AIC, BIC); these are plotted for different $k$ in Figure~\ref{fig:min-laplace}. The best fit is for $k=4$ distinct Dirichlet components. %% <>= lplc <- sapply(fit, laplace) pdf("min-laplace.pdf") plot(lplc, type="b", xlab="Number of Dirichlet Components", ylab="Model Fit") dev.off() (best <- fit[[which.min(lplc)]]) @ %% In addition to \Rfunction{laplace} goodness of fit can be assessed with the \Rfunction{AIC} and \Rfunction{BIC} functions. \begin{figure} \centering \includegraphics[width=.65\textwidth]{min-laplace} \caption{Model fit as a function of Dirichlet component number} \label{fig:min-laplace} \end{figure} The \Rfunction{mixturewt} function reports the weight $\pi$ and homogeneity $\theta$ (large values are more homogeneous) of the fitted model. \Rfunction{mixture} returns a matrix of sample x estimated Dirichlet components; the argument \Rfunarg{assign} returns a vector of length equal to the number of samples indicating the component with maximum value. %% <>= mixturewt(best) head(mixture(best), 3) @ %% The \Rfunction{fitted} function describes the contribution of each taxonomic group (each point in the panels of Figure~\ref{fig:fitted} to the Dirichlet components; the diagonal nature of the points in a panel suggest that the Dirichlet components are correlated, perhaps reflecting overall numerical abundance. %% <>= pdf("fitted.pdf") splom(log(fitted(best))) dev.off() @ \begin{figure} \centering \includegraphics[width=.65\textwidth]{fitted} \caption{Taxa fitted to Dirichlet components 1-4.} \label{fig:fitted} \end{figure} <>= @ <>= @ The posterior mean difference between the best and single-component Dirichlet multinomial model measures how each component differs from the population average; the sum is a measure of total difference from the mean. %% <>= p0 <- fitted(fit[[1]], scale=TRUE) # scale by theta p4 <- fitted(best, scale=TRUE) colnames(p4) <- paste("m", 1:4, sep="") (meandiff <- colSums(abs(p4 - as.vector(p0)))) sum(meandiff) @ %% Table~\ref{tab:meandiff} summarizes taxonomic contributions to each Dirichlet component. %% <>= diff <- rowSums(abs(p4 - as.vector(p0))) o <- order(diff, decreasing=TRUE) cdiff <- cumsum(diff[o]) / sum(diff) df <- head(cbind(Mean=p0[o], p4[o,], diff=diff[o], cdiff), 10) @ <>= xtbl <- xtable(df, caption="Taxonomic contributions (10 largest) to Dirichlet components.", label="tab:meandiff", align="lccccccc") print(xtbl, hline.after=0, caption.placement="top") @ Figure~\ref{fig:heatmap1} shows samples arranged by Dirichlet component, with samples placed into the component for which they had the largest fitted value. %% <>= pdf("heatmap1.pdf") heatmapdmn(count, fit[[1]], best, 30) dev.off() @ \begin{figure} \centering \includegraphics[width=.65\textwidth]{heatmap1} \caption{Samples arranged by Dirichlet component. Narrow columns are samples, broader columns component averages. Rows are taxonomic groups. Color represents square-root counts, with dark colors corresponding to larger counts.} \label{fig:heatmap1} \end{figure} \section{Generative classifier} The following reads in phenotypic information (`Lean', `Obese', `Overweight') for each sample. %% <>= fl <- system.file(package="DirichletMultinomial", "extdata", "TwinStudy.t") pheno0 <- scan(fl) lvls <- c("Lean", "Obese", "Overwt") pheno <- factor(lvls[pheno0 + 1], levels=lvls) names(pheno) <- rownames(count) table(pheno) @ %% Here we subset the count data into sub-counts, one for each phenotype. We retain only the Lean and Obese groups for subsequent analysis. %% <>= counts <- lapply(levels(pheno), csubset, count, pheno) sapply(counts, dim) keep <- c("Lean", "Obese") count <- count[pheno %in% keep,] pheno <- factor(pheno[pheno %in% keep], levels=keep) @ The \Rfunction{dmngroup} function identifies the best (minimum Laplace score) Dirichlet-multinomial model for each group. %% <>= if (full) { bestgrp <- dmngroup(count, pheno, k=1:5, verbose=TRUE, mc.preschedule=FALSE) save(bestgrp, file=file.path(tempdir(), "bestgrp.rda")) } else data(bestgrp) @ %% The Lean group is described by a model with one component, the Obese group by a model with three components. Three of the four Dirichlet components of the original single group (\Rcode{best}) model are represented in the Obese group, the other in the Lean group. The total Laplace score of the two group model is less than of the single-group model, indicating information gain from considering groups separately. %% <>= bestgrp lapply(bestgrp, mixturewt) c(sapply(bestgrp, laplace), `Lean+Obese`=sum(sapply(bestgrp, laplace)), Single=laplace(best)) @ The \Rfunction{predict} function assigns samples to classes; the confusion matrix shows that the classifier is moderately effective. %% <>= xtabs(~pheno + predict(bestgrp, count, assign=TRUE)) @ %% The \Rfunction{cvdmngroup} function performs cross-validation. This is a computationally expensive step. %% <>= if (full) { ## full leave-one-out; expensive! xval <- cvdmngroup(nrow(count), count, c(Lean=1, Obese=3), pheno, verbose=TRUE, mc.preschedule=FALSE) save(xval, file=file.path(tempdir(), "xval.rda")) } else data(xval) @ %% Figure~\ref{fig:roc} shows an ROC curve for the single and two-group classifier. The single group classifier is performing better than the two-group classifier. %% <>= bst <- roc(pheno[rownames(count)] == "Obese", predict(bestgrp, count)[,"Obese"]) bst$Label <- "Single" two <- roc(pheno[rownames(xval)] == "Obese", xval[,"Obese"]) two$Label <- "Two group" both <- rbind(bst, two) pars <- list(superpose.line=list(col=.qualitative[1:2], lwd=2)) pdf("roc.pdf") xyplot(TruePostive ~ FalsePositive, group=Label, both, type="l", par.settings=pars, auto.key=list(lines=TRUE, points=FALSE, x=.6, y=.1), xlab="False Positive", ylab="True Positive") dev.off() @ \begin{figure} \centering \includegraphics[width=.65\textwidth]{roc} \caption{Receiver-operator curves for the single and two-group classifiers.} \label{fig:roc} \end{figure} <>= toLatex(sessionInfo()) @ \bibliographystyle{abbrv} \bibliography{References} \end{document} DirichletMultinomial/inst/doc/DirichletMultinomial.pdf0000644000175400017540000065422413556154024024303 0ustar00biocbuildbiocbuild%PDF-1.5 % 19 0 obj << /Length 1867 /Filter /FlateDecode >> stream xڵXK6W9ḧ/IL@MEZ=${Zren63áDZ$ 9~]xAe3 %-of2S0LZ-׳EeRn]׻v[jZsH,,o`C:Mw W;kd8[Hmf %PO4™nw7Wq_]%KogαVy.х(G_"yG9&^/_$+a(/T /I K䶚<3 Sx$'~Gzg ?I]U72sN;ob  DZ(P"EJ,o|auJڠ^yvEk _(PWo5r[WԪ 6mh:)ݤQJBE } K<2i#(8YPd9:$},)7ZY0I&+?w!+DޱxYŶCsU$Ȳn)96-q܁壼8HF8cXQ{^9$0I9'QG?FAru7FI"OHPIxPg { }SX GIˉ((k>0 Y>Sa^\8-u2探 _,A!RܒAFͅM ; iy0ED`>jEHWqԬCVFE3J&7g9*!ؒ`$5qGoJTr5 CsǪ(<̺ BǾ~V,ܿ0גɚ8?[}4]F`^X8cPx#P0sC͉ &}ldq6@a!7wItUe5\rF+<-- ྣM š-K w`rQpOLB! 7t-w#^ǯCLj/'U_ǫ=Vx~L{܃Gܽ.}L!-:eULdԊBN ԝrpbD1"Γs G 4"6M(+$Lʁy&&A{?\i^Y[:r  /D<`9/}9Sm$tї4|H)YSѢq3Zcixǎ9l#A4fM:WSg$ aJs5XF<3HFdhxyN_G[i;Ll%WfNP)t)6Z[?O quɁmAI# endstream endobj 38 0 obj << /Length 1229 /Filter /FlateDecode >> stream xڝVQo6 ~ϯ0`jIl mpiۃw%vb~$Ert!PdII}EJ1d s-rIE%z;k&`2>iI>i+#yJ_ͮo U6XJ&i()2 Sf. }riCf·8UEڹPasxbF;Cto("Ow n)Z/$摌4ȤVcjmD$A1<-9}Xc@Kv˜3l2{-fJÿ[,;%Mqp kYgS,AnC@7D`p:uXàgw1V Q.ao*CS nk'Gt< vk^zdJ:h[Dl ٫ Nw+VP@{f5y:m᫺lG7|jVQV#Ҏ[]8M,]10K&`{tA Byd3)& %quyg;dSgoe'xY8ݣĤ5L: d"tbu,g1Iexܪ<9ϩ*PD@6i}Pf",()#t8S}%>ӷ;>WnЏ =x y\ib3aC[&5; an%# g!)Z8Fy7 wEdρNJXRC\d:E02q9ȸ>gG$|Vݡ5L {ֳFlĚ`ҔYLhoqpI)˲q2M>J ,$BȣHݾ] G]hqXW$:wi>GnNWHEY?XPl6Cܹ'|&4PsQO8h+#yбח`7a|.ftQ`xzliێu=&U80.KX8np}ƚ|M E-I&A^:^:dZ mOSW5j$៥KUBQ$U='k\-&TYG^< /oݻ{h Y%lbz=SH+RϪ_:GnTH %^Y{XͶhϷ^(/C Z:Lu* /+qG&WhF|DZb s, 7{ W# endstream endobj 35 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpMMBHyY/Rbuild75b966e9386e/DirichletMultinomial/vignettes/taxon-counts.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 42 0 R /BBox [0 0 504 504] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 43 0 R/F2 44 0 R>> /ExtGState << >>/ColorSpace << /sRGB 45 0 R >>>> /Length 3827 /Filter /FlateDecode >> stream x[ɮdqW%UfD[@,>@ I ͦŦa}ΉUEM_x9EFF2o>8xïWnL)??|1y#۹GйE}{泷A__ ٻ}o?w~{'~W.g|cß??޾Vyw~qttϙ8ǯ/|}_{=[>onY<-V)ms߮EKxw|yba=z\SY4z,kG~(E?zt4YDfIE>͜gv/}G{vڸ/^ gEIa0iyt;{~r 4d\iy /nY/md^Ҵ <j=?|}Y~=l޾L޾,j ޾jɪV7ʙ/`xi秱ci>-?@?M<`Re$BVV'Z=@z2Ym0>vXۇK͝S%rQh}cyDycȓ4@8R7TbY'+t1P 'wSlp`},o8@:A aƨ3 t*ጡE>oCqaȻیHSM훏ZA)Xц@VCrޘYwxQHckxc㢧hUI{;UCAAW(Ew^j"z`!bv{ΉϭM͗Ub!\futaɍrVd(5ѝQ#EIϓc< Uk~h U 5ް~u!VY d:Q~yHgdz AUi|hËaE=΃"aY&x{U Y_C:_%9:+v| NAm=hS7h`fFkW5- %2'tXC1AAw팀 S@m֋ P"KVfĿ=l:)_6dyP-@ yfMKf4_[a.EnV`v1_xYj=M=0/@9葹1J,XVvHz::јTJUA1(I_eOX#2 }zFMHy}#[@۲ LPO|NO]GΜ}i)Cl=n8#^E*&iW;EVҙ8&dvy\kr}/z&JzJY^tU;-{4S?IΗ/ g񫿼uisHg@GvIx]]/}H\ E5?.gН(:O:&GaQjE(ZqŻϮw).oT=&%-j'a:3?>E-UUWt9h#oЅB:qC_ǥ!N|xNzRIKoր|>o&Ѧ?kBǤ-a;c1izz%:y')ϞTU)!?)8c#́G]~Uai]:x?3UtQ>0BܳaF݄037M*rxȁwGoTQEW3k|xQOi}jJ؟ GG|i??%Ohn1/bG]R08FG"c(*oPMf7Ոzg!@GjO#ZxFV!$E`iV!1P z*Zb[^uK:/(2 XTMm~%l`8LaoaM*a0x=$lEm)p5%_'IW?8o+^nģ]OvB) $`tc@n0(nRHJD䆣`c t u?È$>2(*exȰ&sq{G B~S<ì07G}C.1>ŧ 1p!0\r4 CW{Fj ԁ s X>a &( 1rkz2u-i1^Jntd-|aO؀=ڇ>!gZ3S4)Gc* .O&RiS&%>MQĒl4Q4RsUf*f" G3,) hoLkc}Wi<}0/M#V!aYK&\,d3Mo^L= i~:2*H~6VVTrJ!(ղlQ##*kH>U%=T?(8H#_qc6Ig*:(,>7%BS X kJ4r^^Zbf= }tOg3msj_񗻷VnC endstream endobj 47 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 53 0 obj << /Length 1574 /Filter /FlateDecode >> stream xr6$O, ׶L43$ԷZ,M-Sh96Hə xN_\}LJUf6\.'9g$Kse]:\LL_lfL+XjXW:հ-aafuN _G`N ED]u[BPwl@ % à򏉞̌Qe)A$ ]-"Yqo"+uM y b)\dD.\?3wp:dݻ[;h8Oyd9vBa3BEO=Xoc eIi" ~b;Ow8/lZ6)@+C@LE?,u=_7KޯIX+9>79]|x+A EiFSX_[-jմ>x[3sXMV[61qUNeY$ /+_{sf,eޡ3Y o:541 A1QOi]\@옮(@~Mf=σA(z UvČYJ, qj Teyz҂$D ΤfHi嵥Or~v7WH\J;MIQ W{fPi̫6nX)GU޺|  ^0N hgs :EnK4V!BwNJՕ@xTLa`Dch`C#76v%}Kqh4t@<-*اr3P /Es#wGdY5<),f3o-fPZL75EϚ~3xŘSc u$N@:'Fб8qt>2iQHƒ}{q`N} aI%+ \i endstream endobj 60 0 obj << /Length 1200 /Filter /FlateDecode >> stream xڝWK6WEb,=uNIZ[.`Ie'm}Ql+I 83$x^2Ou=s(ʅʒ&~#ンF?2ПV+"2oLIzId<|j؏^Y+ME7uC[v*LT͚N6nX\I&VƯs$֛y fG"8[aK&QWO=$K( h*F2 I%tf֗ `;siX"?Yuagxx1ʿjWv@cs40& 2AAm-Qvxx`H3lg/-v C+/.#BD`o0Rr6^E4%S( ;/ avD0NuJ\=:ѱNb<)4QʕJBdXs#U{J=-6Ȧ?Ofd3?\!1u5쮐g=i6U6q2M-|F@Ό^g兲[`@CD'hSajJ11aYt?Ӗln%\IP#V6hwU֨ŎΕ$(bKYI!(J)dx*'GD|%t: =<^LfLVӾm)+{7E3Thp j&Kjw $%WFW`QJle>8 }sf܈"CwѡD.g[&YsiGTSّy4qWmZ[;gcU A]Ewg'WCKjoN=w6hoM῜ikw^(G;]W/i Qr#rЅuN!?!񥂖.{Kc]@cgK~pj^a?N3O ܏.. =ˏq^t&GN?v J&Dȅ8#vc9JU;[I-^ݚ#C1$zStup^09.,nq{wPO-,nxDWWUTmV,= RUjn5T` endstream endobj 49 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpMMBHyY/Rbuild75b966e9386e/DirichletMultinomial/vignettes/min-laplace.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 62 0 R /BBox [0 0 504 504] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 63 0 R/F2 64 0 R>> /ExtGState << >>/ColorSpace << /sRGB 65 0 R >>>> /Length 661 /Filter /FlateDecode >> stream xVMOA 5c -@Yĥ!Iv"CV}~.K31\0< #ۃ^iw)qÆ[;k1EZ{ƭ9Cx1{lj)ojxMh>(@J@Y6Fc]>yF 5@: ۄK R!α0|/u+lcW8O}@AJ@1lh7GW?f+Xձas>{i>bGE63яn6󇗍*_:6׳ endstream endobj 67 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 73 0 obj << /Length 1207 /Filter /FlateDecode >> stream xڍWo6~_!I"% m SYrbcJ#iN0w'0 eQ:QJevwU`j8Gn~}7W7UR&Y 1 endstream endobj 56 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpMMBHyY/Rbuild75b966e9386e/DirichletMultinomial/vignettes/fitted.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 75 0 R /BBox [0 0 504 504] /Resources << /ProcSet [ /PDF /Text ] /Font << /F1 76 0 R/F2 77 0 R>> /ExtGState << >>/ColorSpace << /sRGB 78 0 R >>>> /Length 9904 /Filter /FlateDecode >> stream xŝM$q+(_Uu` 6AAXˀ. s ?FDuUʩ|2|%_vw~}wR~2|K.u?.>|7|ˏ??_?^}^./?ܞ.\kK[k~.?)vi2׭.~mw7nϗtwo?-O]W]4ݧqo~Y\r}r|sԮ ˎߞ;et.moimq}Y>TyW} ߞuo:>ǥ}~){<~K{|^hPrIϪ?eVk߼pu(܎ek 1쪖k|֯]W~u_TU^h}>v*@uINe)&5:6oIg>xŪ~y׼^1}w?*j,5e,îgw]ty0Z={)w}xvjGUѩ*]fnP1djS07ٶa/6J4tՒl5:'o>:$2D*]Js'/}aRcU ^xW&oS){_"TI{gƥ#ٜjm#Vc:.2M+1.s-6UN wl 4Qq$Gl31-%gWN zl{'s*^]>_ֱF9k:f2ڂ 2s{]V.3v^K3d9]U]6yrHgs0.Gw/{A^vIM.MX] VRmGc4A\ _oQgNEmBwdтi2BCt<ú=BeIoъ(]aؠy(f3ZTM=ɼ{1 :ɢȰgQ=lc6Tc~ ZE+z`6YEpѦ \QrcEo.kq.l} BUau]AtRz |,{aCi.29L5g хfF*7_4X&[iXt,6{W}+/N}/YO-םdKqE3x"sf 騯]UZ-+ڴ~%J>о:1F-":NZlK= h ޵igaU=Jitt6wQyhץwmJͷ+\TV9ky,y9tW J'.#φ.Nlm.*EO[0eq!~6?}[)CP`Чt =XvԔl1t CjJ1F"JW25o(C@-V1C 0!lu~B:ܞd!P94BJ]k2J- &!iU`2!JZl!P> %Ԓ&Q)C`MV(C`3elb@0M!$2s.ܦ-c`nʲ B3mMo!(˘M2e6d Amu}LuWŻef u2e[%d rrLFc" Am?DM C`u)Cx*dl5)C`Fb!j2h_2zsib (C0j 4d&>sGa[CN;e䱍w AqI5,(dʚl1r6k eɕ257cC!J֑ e,W(CP ! V-# e1C0I2N) jGl)C^vb@:e!O¨P`'lF@ML`!:_(CPmC]2n!PPl!P dld E%R90>021N Cp̣!ζOeA*F AS:F,*>ӠO+_BlcZ0!h_hS15y}!h%+6eYu81'L"2m{%Qծx.dNuBA`b{e!h b An(C]zs皬. !hLdZ*wC@Cg C 2%)S5 CV:eZk!s C͢ciV6 p 9e }7>ҖWLR6᫲xهBSGm ٦2Y<2mm 2vQ1!9d-uD Urr 18!CrW&/!P1yC@IC myZIF?0dzay0Q2dk ;e\1C`.Jij-Q@![ U2 t-!Pb1]42C^-/dZ^B`r Qm AlI9?-vCP ʤX&aGO1xLLaSrh19UIw(lf A|5MeQ`. <eM!];]!?%!huN$d4N 5N:2zv A+ME AӶd @vu3'1Zڌr!Вm!0C#y\'A^!֒JN|buVS@=ʵ6_ċޜm$Z_QqDңΕkdXḌ*3ْӍ  ^mK׆i1i oS%" a_Ւi7(9n2 χʹ\o!eK/eG!N) ed4Zmyx^4hf\F>l:jPb閜LLJ(Al.J`0޼q:fx20IF_Jhj7lr*xf܇b1>\?IkxgoLmwpLVjeۻC6: 8gMM[Ct5)]g<4-d/|kҳ]tr0f^竢KA ? .e+JEMrJi zp`}moIjLh䆆I7Vtnd]<zVJ}[D&w%K|d`r뾾Y>=iB :)^2ݧ}4Ai/4BkFʰL8M=iKئAb D#gu[:"$`3mTwzFO.}SQRtd~`FɆVh ~qw:>v%a4ͳv&E%o :$m?VA6HjQb|A|mEm5Q#_ ~ Ec%hÎ}gKBL>\J?1J'w@B)@o_xW,9Bk k+oQ @4p:imT'SnqGg;|Gz;ZwX~Y\dg}о}KzxͲɲK4|ܮR?TOw;@;xaG5##K?P;%D-z\۷~~_J~_?vˬ1Hx}sJtn" E\zb#g;ROw׷;{5HU<,#б$<ӆq5¸BNr\'CA$W(P+ғa5e(2 UJs ŹBV:Qi ap(2 qLuyR=!/SOv %Ba]!1ٮiͻ Bg^!4C Ӑ!WH`kn Bm WP+g(3 zj̀03|0{ &m]`+,5CF/ Bφ gѸ vk=F>]v<BՆ !kCq(Z&C\ܵm(6^qJ/v] pC酐iz!Dn(0;`] LjOwJ/ B uCɆ- !wPz!o(7] D9F/B C酗mf PzmġBPz!Tq(8^Yn3)2z!q(8^mJ/L/0c CȡxwJ/F2C^0ǍUkvwr(R9^J/V !]#Sˡdk:^.C̡BPz!Ts(9^J/nB8 C酐ΡiPz!scb4pSyO/|9xXA'қ0jO%ky,:);cs0ɞMkJ9pjNk)b)\Azn3Zm{&9Z鮠B<-9}+Xi"Sa :u,+´{Ec'\u>W:tꚏ9UӉb :b)7Ү#p{ ::\tdH ܳ0+)JrnjgʑEd{1d8nSt#A`5Za& [f xuɠNuOL+ԠWeg5MSkeGfQSdRZh*쪚\U¸4aJ)IQjyM ) tZ3rvLIs0ldA(~s_M` :YtL{tI{[JtI$ :Z}pWQz% : %TJSWБM`itt4\gO>vTcG)MAGtQ pW)cV@ ; &|.WбdQeӿޜ+&0q"=kN pdAS)h=_,N++}CPЩytsz;~+P :rU "M躸Na"It= t&= YNɱt]Ab$ta :yx]ImWб Q=CuY%;r(sV8q:N\AQ];\AWRtފ!&W n,:j9O(F n#pQ<$ +iA Q5\,N ' N01L(Ia$ևH/>oQC6;݆\qXN !Wp" f;dɚWxpj^vd Tuێ  l};f 4IO M){˜Af'(fpk8`z*N:Q1;yV35.68^l)j(npvHK932r`XY XBh#u؁MK;kgr6I^K!ƂAv…*^2F,w gT\ 䔦)S#-C4k A 1}(41) oBLc !)C"A)jdHr DnUǘ[q%w00 hK"T&_- (@6 uplݺb:a=.-P{X%Df{͓m(fb ҭ_2t:u I9#O)S͓>W!Boi[mZ.yn ʓZ+&,ꎉuZ;NE]^Gt,evgE!P%N­2n!,eai p3]80$@p!} ?u>~|`?n?zf#}@#~O y)qݨj+~}Oka-x|`ݡVY(P,t(@Y(@ : ;?@CPСY(P,tp2WСY$~5 : lÌ]b!@ : ;^pvPnwKnBAdCNr}IbBAdCL(PlvȎPСY(P,t(@ : 5T3=G)to㝄BAdCPСY(it(@6;`]Ad>+PgCAdCPСY(P,t(@v3Լ;?u : ;^PСٴoc :  e\AdCPСY(P,tpWС٬v -  NÍ)Is+0@ :  BAdCPСY(vBAdNC9(@ :  ͎%1,t(@6򮠃sܸ )P,t(@ :  ,{z(DZC tnw*'L›PСY(P,t(@ :%  ݗ  ΡNۘBAWo\Ad_ۋ|RA%2)7RБk\4)4o8{n)!1WQ}Y$l;*6WiGҡ QpuWN|%#ݫmt. 궰c92i~sS*h2|]AGS#WҚz(4rqS t6W1W穦]%Jb :%|>^tZQv h7~ϲO}!J6t4LH4tla(q5+h :ml6Ү]S,JBq8.Wewa;\66uWrq,Cq{,2c47H \A;k2SбAFTWЩۊAWip7w&a \6]tZ]Qt,vӒu(}G3+i :bt S+@qV]l :LѦHr`tTkĨN/zZce6|qJy]AGqtPWБLAGdyuWб +4-2kebcXȮs讠C+mC&tdWs]AGLMA5S5aي-\Am\#DdCA- T]A<6 l= :Z\wmِ\촡CPСZt( :A BARC1$t( :D"kD*CAo׹BA CPСH-ØsAwp] 1WС\B(P0a6n3;dLAwWСpB(P:a]A a :Q8&#o1s)BAr C9SPA :UJjrkې֒Q^!t( :XJ,EBA2 CPСB(Pl!t(0is \8F.En 1?/|9x\Ae^F/V ρmVN/'LiM酚mB-] z酲x!k {;"hSlO*N_~ Jܸa4\ΕxJv_nq,1vH/(7ҶczAUMv86n#)PSf23)H!**N0tvL/X: JJ8zv!P;^u[w>vT؋|az,yzA5d bW`J/L}&a¬n0 Lg% TC5IAzj~`1Kvw`n/7ߎd¬oS"Y,gB2S=czc)`Ў[I5L/(gy"¤-O`bJ/X)LNXIAzeְ|%U|^P 떂9$ϨPdqfH/)S c)ԹbzN02jhaidL/̎dL^0A-N/L|^8 Qq*pz.*h|1 gYSzAmD sAxS+4ׂeJu ] $.TL/bN^0x¼7 Pzex-^dF^NCz!  x慯9fziz! 0|%>^+~gJ Dۦ>FkȎe' ZqݨQcxïwlka-x|`&oDM}9>Ǣ*Dㅷz{ݞlK?]nIn.;6s㸾WbSRNk=^i[v\KN>JZVھ=WiPcʿϬ%M^V;K>\a) ç윍tq}Cc|J[GvksGguםJi7ٿ)[S=?6 endstream endobj 80 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 85 0 obj << /Length 1094 /Filter /FlateDecode >> stream xڝVYF~_ <$&։lےY9f]W2>ne(Ke:T[aq`$1Ғdԋ%`_ʼ,bkTkqj@yi S+}({msj]:nqua*?WsĖW^Uf_.l HE}8:nu tMk'HG/pA-:_oW)/"K{rȆ.8Bdh22Ws4'%'6ZtB6_Ζ! ~C#4 FodU9F(ܐf|U`b{>z%kv8xzw)eoy"<ՍQŒI%|0} y9 cFNxփ<B@1 8n yEkiR u4-:@rPKtcG@1bv}R-=秬`d22ܟ3TWr`U#Zq٨0wIFtmt;ّuznIG~5NzD~DKSD&p/tOVLk+(k?C.$$=k1ٔ%(.(ݹЮ| '=zN dAƹ_1h@|V&ˢ3t $:? IN/I={Bz>teLc ȃ,5fcjzB]U'ɺ 䏂/A+`g.ǰ <~Ql3h!\4g) Zj1[$x;{Mbx &ƉCLEcZȗ[˯cgTqb[CIMI5/{Rs"QBT$!Kߖy%jsıVfArZr=dI^x|9pvB g^Gpm$ M;L endstream endobj 82 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpMMBHyY/Rbuild75b966e9386e/DirichletMultinomial/vignettes/heatmap1.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 87 0 R /BBox [0 0 504 504] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 88 0 R>> /ExtGState << >>/ColorSpace << /sRGB 89 0 R >>>> /Length 31249 /Filter /FlateDecode >> stream xdumWpEC !CEk$mOh}֮]9Zt@)[ʙkbGD?Oro/g<s$_?oeB||/_=_?pyz{x<}FmGϊ7}W]㣮]|x{e>]ds?|u>>\|yu>:^tlOOΧmxoUǛNOׯ? N7{q`owZ^^^^LV?{1^L?{1\{1Lb덝%%ZK K K|cRì̪j$?ϯO?$L$^?ޯx0dà]v9 *V9 9v9v9v9v9v9v9v g텇&Ն%%%%%uDSL{1aMc>o띿o:h++^:H F {}"ՆՆ&ՆՆՆ59f 'kfVؕqg2g4"y<"+c.Ar``````\`H4rZ0L]'wvev9v9^5 k{olگCjګ=hڬb 6l6l6l6l6l6k6l6l/qvZW^W^aRW^Wحb|0 7_ql}{s\Ն5?ۅY6浜DSk5_ ?h/³lka{a{Ia{aMI셇5;ڰ[ֵU;$“h O)Yn ?h/³lka{a{Ia{a{a{a{atka{aM]I4u%QT]ArnW&7ֆɝ5Zfրrs (w׀r{ (׀r-'w؀r P@Ksj`H3'"/@*@{e_In66E@Pt'ף^1uEj}"ğ0ПhX H32$R lwPPPPX.a&(BuEl9P$IdRV|4i.%"ܫKJD*<_~Ht0Lt0Lt0LtRv 3E@PtEl9Ptd:(JRq(aX#"׿($&&&e){AYARP(JARP]O~v^f(eheJRf(eJR{UTe&R*vRARaRaRaRqW|U(JŁRqT(gIŁUʼnTkTDDM]R"37TPըOr5>-i'<×( XZJ   ]>L>@PE>@[NE3!PHbI(3Pt܋/z!R]$":6O)>j!R"Dwފsy[ y30y70y;0y?Kߐ3ޑ=9@ySPޕ}9@ycPޙ5(ʛsڻs9fHA"v'`"{{Te~^/ $e&e&e&ef){YRfho]a"R|(J@)@+>P9 @"iA"iF1$RHn@"v@`ٕ:::::Xʮ8QPu+uADVuE@QGvޮ(h:`53+IiN!N I$Au 000K%AB$IE@9YPϖ@)~v^|ˎ_?">c?\L@pc D*t()A# "s4$"Vx LHbHbHbHDs|cP"(Ba+P"%;o P& LM@$2IAj ":_}V'YHH˻Xʮa63efJŁRqT(gIŁRqT<;d8P*@8zm'"D+ 99Hu@T(T:x*& "" `5Iԑ4 RHuّ\Q6xr[KKKK"KY%I%K"pD.l]$wIJ"pD. H"D"$i$HP(JZR|X^3D9H5zy )0)0)0)>Kً?̊@yʫ8P̖2@)sv^f(eheJRf`Uf"ի8yJseJUTe&R*@RaRaRaRfy(eJRf(efIRf9;d/3P 22@)3*3DQs`7ۈHUT'R!7@RaRaRaR|(JR|AˑKľw@u?""](@ P2Є܅r.COȇXɇHuHe?phLl|)0V2-0^2|1P (_M&ʗɀ:wIPu (_;6оw KBH#DvI6'\;Hd9W67i.%& JW   ]L@PtE@[NtE!g$%|FR"`3_$RH D8$"ql%8iH"ԑHED*<^>#H43L43L43L4Rv 3E3@ P4E3l9 P4d4!RihfiXi|c*Dv:2upߧ`"A:T:u    ]L@PtE@[NtE!IPNBRVq^@)3PN,R[(a6p/^/ޫ8H8L8L8LR**@"P*l9"P*f4DWf"RہV[`L: "JŁRqT<^q`}DJŁU>^ARaRaRaRqW|U(JŁRqT(gIŁRqT<;8D@ye+3Pj Z9sq"*κHŁUůE*>H*>L*>L*>L*R@8P*l98P*g5PjvX2^HŁRqT(9Wf`uL:g&R3*~= 0008K+>*@8P*@8P*W(JZŁ Wf(JmR{mUmT%RՖHSۗ 7@{ma{ma{ma{m0m^{m͖k6p!kmJm k6pm^sX l΃k4'5ì@)(P @)([N !{ARPt(JARP(JAsX64 tyE )0)0)0)(K : @)(P 夠@)(P (JAZA͹m"R[`s?8)3P l%9vq*DZ4$Ra   ]L@PtE@[Ntl0uEM@ym$EJ9t@zyX )0)0)0)>Kً?̊1_<N|";GD(@/2_dG$"& `5_i'<֚h<H%*j!"Vy 6gggȇf(SPH-'$"]@P$1$I(*>yDdVρH5u"R|`U~n )0)0)0)>Kً?̊@)>P@)>PR<<|oP$ILy]"@RGѨH"@~A5-7AP`P`P`PU(0J.](PwBɖۅ\H~qv^!D'ٕ ']>fi4s Sh&F3f?t^_~ py 000 Kم2̄E(@ PD(J(D*dB ((W@śPPE[8%h$A ifD*u<]*H1L1L1LRvu 3uE@QPuEl9QRJy,BDlN,%}}%DHsҔȮ \4T1%|bzxO1%_fa?F*%=_(J$J&J&J&Jb)$( (J$( +)p!eBhi P`s5Bk""9lu$r72_7ѻܜImImImImY^aV[(JmR[Ԗ-'JmR쐽22@)3zm'Yp"Օ "R{ŁRq`uB۽^](H?L?L?LR@)>Pl9)>Pg5P*>*+.E%RDv"]X"`PӋ:]"/r$:&:&:&:`)(:(:CvwBJ0b$23o ?5\V: R]H5DDDH%%v    ](lk PE(@ P–KDD3M7.F;f"m:ܱ$r=(A}:Vw!4S%Ҽ3^q^q^q^q^,e8L*W*@8P*@8P*W(JZŁRqT(JŁRq`UMʼn44z"+Owqì@8P*@8[N*!{ŁRqT|UW\EHs!0&_"`Qj: ȭKOyr)=DnNMD!`le"SFuDtJ$DTYDLu`ERUr$&&&c)ꆙꀢ:(SP$-'63OT@2Q $rkɇH!94V&aIRFID;,TfJ v՘ggggȇf|"(|r"-;d P S4\U\S)^sX N4G~\ϼäää,e/0+(P @)(P ʖ"t(eJZ"Rq`Oz'R^SHOBTK WЮخخخ,e L4k&pLங]3fv6'!49;oLங]3@Lங"F3 ܅$w6~"mD?\fJR|(JrR|^geJRVf9Hse6' T'W<*Qnäää,e/0+3P 2@)3P̖2@)sv^f(eheJRf^@-P^mR{Aj lD5"Un`äää,e0"P*@"PȖ*@bv^ET(UhUJՐLHmR[`s~}:84TXU!7@RaRaRaRqW|U(JŁRqT(gIŁRqT<;d8P*KK47%RDj&?%ht@ɉT#9I I I I I]L@P$IE@[N$IE!G4%"BhBVB!"C=:23+I$4%\}OUnDDDD,e0P$IE@P$IE@Dv>IeJZUTj <(HXX$T]"{":>.vncccf:(:r(uEMJDdfV3\!_V'R,i ^ 7@{Nb8l8lxV&7F"jDw:ȶuOv]:FK"&H3ID"F"ͻ5i>V%fxw   Ͱ]3D3PE@QPuD]$uEM]R|`DDvI6W΁H3u$L4'T:x\ѮAaaa`(:(:`ˉ ;dPt 4E@P@8p9,2V%6p/h`Uŗ˓hIIIIY^aVET(UJRET-'UJR쐽@"P8Ъu"DDT<^q`53D_<IIIIY^aV|(JR|-'JR쐽@)>P?Њ`@y k0P r/(z &<2^{$7@RaRaRaRPt(JARP(eIARP4;d/(P @)(P HŲȷ22΃TD\H*>L*>L*>L*R@8P*l98P*gJŁRVqT(JŁ@MuDk"z lp݇or-Ln>}ֳV:ͳнՇg>qor,Tݳ?*ʇ|A#uB:TNCnytPCP:ԪP:Ԫ#UZաVZuUjUZաVuT=TJ}V/y>/^+0+@+@+@+*둢ԢBP+*Ԋ BlD+*Ԋ fHQVTu*EÚLsdP+5J RȖRCRizM˛ɲ=0 @@@ T@o=&Ŵpk,& ɂ n,&5'ӼdOMHߓ%d"ӼdgNN-4O|g4{26@Mc\ k k k 6@mb&!Ih&X6@mb N-vj)\)PCNf1-E Vqm² UHv(j VHtHtC j6I$fd+$d:4Fcvvfrhrhrhrc="*7 jr9jb#9j AMBPcBB;Yd$cs 2@.&S]"Mv[fhhh`="* j& h&5 U@MPNN6@P+uV)5{U'ӽLf/7o?ow?wϷϻp/_=\_Ο?gϿ΂_K WЈMh&4j =r3 o_z=$[ж}th8>y4YسIjZl Ƕ?c H厛en!Qycjo?;P52 O:g}BQ%'O`ׇW<\{ȟ?&_ ~Rˏ /;ߓ//0i}L 6gZʹ2ӆL*3m̴2f#VWᒩ%#ٕ*ohuLw.CeVY9Tf1dw0suh5W'SToHFN?+& B($4BBE!PQH($Q*-ݳk!TZiLdD PBh!B2N v-BeTHp  ` ` ` & j&6 j{DPTZi>dLP@TRjZ'S]-Kt=YU}U}U}UHjաVuUjUZաVu6UjUZճ{P:Ԫ>TCjP/ hB5LW_2]}/|;;;zO?OƪCP:ܪCٕRuUjUUJo9dL FT$c IcD!PSSQHh'ˣ=3Y 4Y 4Y 4Y@}k=5@MP5@M=" jk=^VjCjE*EVϰ$# B^1{.fEhEhEhEe=RԁZTjEZQVThEZQV)*Ԋ y [riVj]#]K DP{vd pdܵvfhhh`="* j& h&5 WjRCP+5J JM+ul)5J JM^աի_Rä@)5PJ Rg={VP)u:TJ*Rg#JCԡR{RJCP+u:LuU=@h%d*VHF b`&&&&#& j؈& j@MPPJCЮdRȖRCGhi1dtx+&a&&&&#& j؈& j@M2݃5:۷S]O5@;ĒƈXXTwBF|y~%&abhbhbhba"*jbX&Ev֣;v (JwLX’9fhwy2]XZM;!ӝ5vs?B;1{Uc[14F0@@@ TAMcP45Am>b#|jQvj2 ;miylr "-Y@ G26ݼ^>'000zDUP5@MP5@M=" ڝ M4jb'Y 3- 4- 4- 4-R d:-1-@M PԴSt~>ܺ#jjZvMTSH2ݛd ɘnd4Q55Ad$Mf"a&&&&!#b;w"IIj&!6IIL'˩t{mNdm:@mju2ȘT2OQ:JF}f2>Km#R2ڍeilililiBEX& jj؈&id:5eW|jr>"c  Nv,6@9LT_ zybbbɂU,3n!cbX& nbV%Ӊ%]5@M,Cub "1@;nn'cvK%V%cjz]~ U:&jmbfhhhb=":@mbX&jba#XrI7zMr|J~Nw4iLwLwL',26 AS,2D;"ӝbn' 뺃;̄5Є5Є5ЄzDXUXPԄ5aA'w7AMnP3])&!MBCufݙ,6@)GjMtU'SUZ*a @:PUZCRPzT=TJ( J}* BՉL2#vHCRP9VT$# @:ԪCP:ԪFOOz$BvhjZZu2ddddL,#twϹ&9lLuI7n6y k k k k &, j‚&,6b',2Ș+WaDzs2;=? ur#crvr#- * .& L'˳ݚXk j‚&, jb#LuJ6aAkxAej #2BȘBBt IcD!$Lus;$|~(d)d)d)d)BB)j B6)Z=xLJQ5 $ӝ݄ڵ)jnv&--@;-@7Tϼ]ƲIBBBBX(d*j B)j a#BBt ɮlMn7)tCt5@g^VL7Ǥs",h',2&K26Ǽ_2$4$4$4$zn놜n2&, j‚&,6 jv&RjsP=ک;"ӝ 9ڝ ƈBBt3QHhw5򦷦BBBBX1uijZ؈ijZ-@M PPԴj3ԪNzl::d2>ja E@PBE"P@ T(*@M"j.H Y,BE *8M:1HFxy~RRRRR)@-5J RCP+5JFRCP+uvjZjVjhWj2]XVj:GjVt&c~ۍOzzzHjVjjZVj6jZ{P+5J=TK RCRJMJ RC9P+5d' Me7(aVVVVu#UUZաVuUZ7$!hCVNz9e2nqLMMMG0旇=ljomd5Y@MlpBۋ=[_b?G&h7$ƊFX&dn=ii?c?֊ܠ R25dd 4xy0@@@ 9js 55AMMPS9jsLv1Pcv$fh29jUϑ-UvU'S] IctxW ` ` ` & j&6 j{DP0T5@Z":{'S͕dGdAN/Wu? 3Y 4Y 4Y 4Y@d5Y@MPdF4Y@MPEvj,'dv<ɂ] VoJ& MiLNd2va#ZZijZ؈ijZ-@M PR dldCmv3n^d dnHh&d:-\ 3- 4- 4- 4-@Դ5-@M PԴF4-@M PBvhjZ&2h7 i!{2u2hwAYo3- 4- 4- 4-@Դ5-@M PԴF4-@M PBvhjZNM #!ճTjINd*Y<_6+LdYE@EֳhY,BE"PE6"Td*8gE"Td5Y ZTHFd*3D\E8G.J\Z.$UV$̪>Ъ>Ъ>ЪzP:ԪCP:ѪC=RuUjUUZա]tU'cUZաVRuhWu2k}2tx<ۭH ` ` ` vT%S=R*\ps}7WabaX&%]5@M,C˓ɘnrJ:LuLur:'jV2e$өL˻Xi&PM&PM6)j B{D![_~=Pz\ c&Z=QL'26@˞ed:f2d:~~leeeeXX&jbX&6|0dn=0.;R%])9foN,dL712@۬uh72A2222zD!LwDt5@M7P  N7dL7jv!cvch2n. vC.铹!~?kL')HhIhIhIhI1Pc&g 5 j'HPEvj,,,Ș,6@M dIn6!Sw6Nd*Y<_' YE@Pd,BE"PE"Td(Y,e*Y@M,uGMSH($TʝsdBhu#Jȣ]./OVaVVVVu#UUZաVuUjUZوVuUjUCPP:tMdE2Vuh5㽙 @bh2,;nLMMMGd1Pe5Y@MPd5YMPd#,&* h7b SeI  KQLuu".K2Xtby<[eeeXX&jbX&6jbX{D,P 2T)*!BmހIr2ݴ@N"]}_@/ BP/FkLu"zveYTL!~dK2ݐdJ)M5AyL7o15A;5^>+444zDMUMPS55AMMPS& MPMvO2ntL2hw݄1M7PSH# VH2=d:_*222zD,U,P 5@M,P 5@M,=rSh'ɔ cv &dTj,Nd:YdqPfhhh`="* j,& ɂh,&dd1RdvY9W2EV2BbEOd2ihi2n^ԅn(zvM7PM&Tt*F݄nBE7g ݄T]N \d dd-V^O! L'ˣݨX``y2#ɘ,;uީcbX&jJ2ՔdLBCw&I^N)L({2գ짵1h5$S]MF.ކvBv[fhhhc=:@m6@mn؈j9js 2Th7ǐ$M7d;=k,IO2,t MBd:<_>4222pWeV6DnNM1TBPt̄H*ꋤ΁#rܠ&*7h'72s9Ty#2|DƔV#ۮ$cyPgYNnu܆|zd>55Am>|5ݰM7P6eB)d*)]iy&r*2Vuhu)oW @:ԪCP:ԪFCPzvTjUZՇjա{Nz%]U]^Md d--|m߯ɮ]'ahhh`"* j,& ɂh,&d5Y UY@MNd:Y1Y@2Դ@fh' 26C@mx+"_c5C}h(Zzv-M PBh!T*ZF-BE gZ>$1CɘBBE!B($RH2BNcvVI7ĒL'].bfbhbhbhba="*jbX&hbX& TP7* ɂL' 2& V''xoNNycSLuG&L2,.vSfhhh`="* j,& ɂh,&d5Y UY@MNd:Y1Y@MN9+Y.p&ɂ\p=0F-̴0д0д0дzD U PԴ5-@M PѴ5-@M =ͣeɘ,,0L|2&h'2H$S#It{$1rro$#7BɂL˛BBBBX(d*j B)j a#B)$Rdw)BBFnv !c BQBtSN,d:]+222zD,U,P 5@M,P 5@M,=r)j,Cjv cv cv,9ޫS2,t ɂL'_yKVĮ?22E,U,P 5@M,P 5@o=#R%5 U Aw Ytj"ӝ)鄕U"ӝ ;/ NX7-<̦&&&!#&!Ij؈&!IjMvL7P ;Ly*D&!h2[2MBP;J T%M7dL%kV/LdYE@EֳhY,BE"PE6"Td*8gE"TM!TN BE"sdNo˩է$Ul7jaVVVVu#UUZաVuUjUZوw%S}k2JԴ5- U-@e.ZաVuUjUϑ-UvU'cUVtUZՇYZZZYT}VjUZա{\㚌i iL2vԴ5- U-@iZ.$SU?E2KtN-N-$Duc[IhIhIhI&!Ij ؉L'2&J 5 U@;>$j I7 TO&cs L˳ݨBBBBX(d*j BCcȘnnt!cn@M7PP Noed9jbVSN*ݐ2ջa鮛$vy{XHhJj6@mX؈vjH&1dВ1 >$1[Ӎnt"c6ݤ1rrhw*D;")`da#  B)j B؈)j BSSPMݩ@ƴ5-@M ihZ=@;-~|h(Zzv-M PBh!T*ZF-V/LgW,r*ZB+-$#Zh!T*Z8-صZi!걮dO Kŵvfhhh`="* j,& ɂh *3=" Z=E{+jZP5@;C$ L' fhhh`="* j& h&0RdiiM dLPd,ճIDhuL_W0̴0д0д0дzD U PԴ5-@M PѴ5-@M =iia2\{$iLF2& h)`1hu#e2}d:|M2222zD,U,[_/uאuss&!I n&J$C7Tw8HƦh`X2ӣk2I d: ]+$4$4$4$zDBUBPn6@M,P F4@M,PKvOs$I2&*!h'!2vk!m@&h7&2ݩ//vV))d)d)UBBCcȘn`nJ7dlVLFutCz\2&!M7P cңj!]!cjg2۬W;%өȭ^fiiU6@mn醍hv7t7+ jt3Tuk7dLwLw톌I]IcdvMd&2ݵ2inD,@ Pd=X&PK%T*b d#XBe 9]"Pd*.&S"MBE r*t]թP2d*$ b7a&&&&#& j؈& jiNd$c,,t SMɘBdq#bV'2TE2S(tby|feeeXX&jbX&6jbX{*B2T5@Sd:B+M,i*mw"<Z]Mn7L,M,M,M,G2P5@M,P 5M,P Ē#,P;e,,& h7 vr@#[& h7Y& 2dAL&a&&&&#& j؈& j@MPPtUܾ 2ݴ@EZ vs Q.vfhhh`="* j& h&>ddTPݴ@Nd:YnԞ57j2BpJޓ 3 4 4 4 @$5 AMBP$F4 AMB+Nk!X6 U ALwՃLk2iTM,iL,nb!c SF!Un +$pWYϪPHDr]79tͧLe'n/.Lsdw%S+dvR'R' ]MjUM634͞Lsd:a=\>fq k k k 5j&!Ijb#:t͡&U, 9tEhf9] v c:m567ij9dv:#,,,,,Xbj,& j`#,& "Gd5Y@MCUPݴ@ԦM 9eZvU'Wwd~?tU-0@@@:둪ԪCP:ԪClD:ԪgHաVuU}VWM2t c&@; ӝDN"tx[&a&&&& #,& j,؈& jY@MPP.@we9.ɘrdWZ M dOyd:-,ZfZhZhZhZ`=gZijZ؈ijZ-@M PPԴ2& N dL 9tdtMd00@@@:둪ԪCP:ԪClD:ԪgT't't'&Sޟ +ϱyj BB4o|Q4_u2]rVby U(bX"g *b XBE,"lDK%TrvO#d*$#P7B/N:($TNV8hdL5$S]HF)'222zD!U!PS5@M!PS5@M!=iH`'S$#EiZMtH *YdA&N!7 3 4 4 4Q@U5@M!PSF4@M!PSHv(j BB6Y@ɂL7Y1@mʕsdW2B;SЮd?_'̪>Ъ>Ъ>ЪzP:ԪCP:ѪC=RuUjUUZա\@::ԪȖCCOn[¬G>PCP:ԪP:Ԫ#UZաVZuU*Cm؇V-RCϑ-UV z2tx J ` ` ` |_̭ ,& ɂ n,&Jd5Y UY@Mn. dl.B6" hz'S=͐Lu'Zh 3Y 4Y 4Y 4Y@6-@MP5M{Or^i~2͛ܓQ@wXyjbv'캹'ts Ow}sKs5׃o>η˷߿_|ow>_===}_Ο?gϿ΂_K Wݣ?w(FBgZQ8p$m86Mm{FԆcjÑu&SBcXrdk8yts G(~Rl GZ[m#w_ź_Cv E_Cw Ż?Q?/Qih4ˏ /;Or|%!r~}Vʬ Y9ge`wbLubա2W\*su6>Ws>!9 ?}? A26+ʩyLšIx22+VVNwڵV򓩮%O7fLBMBMBMBG$4NBdLBP$5 >TX+E,P dg1@M7P9 5@;Ē4vJf͡ՕdN!׿aL!M!M!M!G2Ю5PԴ5-@M l#f2JQPBi|4v2r TnTZ cZvZ skސZdvyg`#ZZijZ؈tZ cZȮ-@M PPԴ5-@;-@ƴ5-t''d)N dL 7{fZhZhZhZ`=ijZiiL2}MTkJ2T5@M!N!d:1@M!iL26Y@ɂL2˃=E!@QP BBE!]!{";#M6xd*$#9M2n1  SS&ܘLdDM"khTT2Y2%S]!ٞXk j‚2jb#ʅPpjbOoB&dTPXBo=,)]8 & G Lu%Nd:\wɣ ` ` ` ` & j&6 j{DPd;'ɘ6-@dijH dk!ȵl2,?bbbbɂ,,& j,& 6j,{DPTd@u.&MPVj:GLPjE-PX)0+@+@+|&*VykZe"ZT譧$^۫RCP+5;J RCR蘃@@ƴ0T5-@M Wò ȘBtNN"T81@ R"a&&&l[JBQ AmZڴ5@M,P 5@o);>j  BMP,i!--@;-@&kNavbz`VjUZաVuUjUg#ZաVudTnZ cUUUF`"Sa2E*Z} U2ݵ2dq:f h h h a=)j B)h BJ!d:1 U@;1@$S}JL2XȘXBBA J,/nqD,@ Pd=X&PK%T*b d#XBE,"{rjZ HfJ'SMF&P9e SPi.P7B+-$Si!N G 3- 4- 4- 4-@Դ5-@M PԴF4-@M PBvhjZ "T8ʴjVsA2\U=Gvs33KY$S}U2ℙXhajjZijZ`#VOe&S=)$R5@b2dA:eI,Șؼޡz%Sz"n6!S]8MF.<_>.t3t3t3tzD7U7P t5@M7P ѦM!PSHv(j 2TM!PBVuD@P,r62S ^_M G @/ BP/FBPovOs2e2ݴ0rZ cZՓTOT$c BҘLwrB;9!] i6+t3t3t3tzD7IHdLMhToEK41AMcPXvL!PB6 )ڝNNtj"ө Z}霜@mv"]!!Ia7ja&&&&!#3fj3fɂh,>2끚<֕jbb9j7P;6Ȯf25 2I;Vx nD@Pd=&P@ T*d#BOO$+"T*BEn$S="Td*8-k!CXTHLu3p&a&&&& #,& j,؈& L rjqvjթE2թE2թE2huK6EZDvZ #oP d$ Vx۬&ahhh`"* j,N|Edv&jbɮl.&S]zM$4T%%t.g2rZ=Lɘ.X/qHdlby˗!O;L9t'=׃nLMMMMMMMG4P55AMMPS1lD t5d9j  ډ Td6@jUܨMF.eV,NCiȵ/VaV߁V߁V߁V_#Z}V_jZ}وV_jBPP/ BP/ hK hWT2Vo/)@-*Ԋ BP+*ԊFLz2+uveu @; S=}A{" fA$&5 hdKd2݉y3a 4a 4a 4a j‚&, jb#v" +NXd:aMNXd:aEƄEƄ&6o.4FNcS0@@@k45AMcP4F4FXvLAd کi2؉JL$.rUAG˒Ni޵Bv[&n&u4݄nBE7PM&QDŽPQ=BBE!r=jcBE r=&B"MF݄rM2RPvZ:+; RRRR)@-5J RCP+5JFfd"@vjV3ԴNY2VsA2\p_c $S}6X2BȘB.ovf h h h a=)j B))L2JQbZ]H& hujLdؼܜ7~N!dΒ1\K#zm;M222*E,U,P 5@M,P N8CT]\MLIhJj L'!26@9&=j{Ozn2d=2˓ܰ-? @@@  T@/`HdLMPS75Aw5CSSv?SSPUdu$ө^ .{{6ɘnT.ovfrhrhrhrc="*7RP&, jb#²I;I#c'iٕr4hwg2&S7YL',26KA;5 ] 6v2i6v2ncLMMMMMMMG4P.2E45AMclNcd:1eƠ1ml8(Z&`ivR8N,pyAKM"+>woiKgggzA|4*ͮ5)]V.WD35)C17Π^|p&Ltcy;) ) ) )OI)MF701э)I$ SݘXDat#Mz&=HFB02) gvrǙr3Tgĝɴh%-#-$-$-$-=Q҂(iA JZ%- DI whA JZ(JSCfceD?*LΐB\0d  I5D5DIM&QR(Io Sҍt#JIQBDi"JQ҂(7DiYQ+ݵp&83^jT]k[[nËW'ϓ<nuvۓ_Of&ߜ ?(뾴.u?^گ uCo}?P jjr#loc:Cp [QC%tyfd~VȪ͚gGb icݰɳvZ'u'}]&דWhMzqQ#‟kq7x{nvcpϵ8llyZ8;/h= /8_L65|p;xy|6xyrq/^q~v/^>?/ls/^1_ZZ<;/X5֋}pvWkhyx5泃}pz|k볃}p pSWlI Wd=~79ó_O|]?lU_oymbNj7m{Wo/0yueۛjm ҭϴn{>[MN\}!n]sb3w78Vvخ[5g=å߿a"ml7?_ܽDr/v }kՓ֤׻۷)o w7monpv?}}y}{۫wM]> 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 94 0 obj << /Length 1560 /Filter /FlateDecode >> stream xڽnF_! K,I-h'@iAq޹\^}pwfvo'߿I$ 'ډxt0Y&ӟf@rM =a8)Ο>+ |wĤFlEly9oD[g5fĝ=IqR \ #*t;ghsF?dn|-ן\ b*?m\+̊ӡ3 !5~=J^ i:#-⇥sTi=]&bNъ@A "$%I"ryl13O'9P{ YuizTn_j9\TVe=,ЌE }yGg *m(vTç E\k5%t hc D>[ܔŃ3ױs y(^YTD{(е^uZq<.#y RY-Tª>HOwD6l$! iֺ_Z,wI^K(jqv%Bm kƊTl AܝV kNQˑJ6.3J51etO_zNtsmI5qA,JVRtKI̡@(X$2奜 <&;GH~UTъ=JzhpU(b{rwaAԫE,e&RxXيBax(cVZX3`&<:XM0N sz\ieNӑ,P ܎venvlQN{0лJLοQsIf+F` hh|ՊJVmװ-ITb!|TnT tV`eFFM0RH:h2OȈ-ɟ.WEVʌǍ i xH(m-R3i]Fڂl.+ss[!N퇪~VI cMk oR?NErؾ|2{&6`=1f> dJ4'sX8}%w =?h\ 's>G7WrCA^RCsZM; 70g甧Cj;4{]8&4N5upBjBynp),:]CfpD}"C˓;""WEjÙi!GXнrcK;g%K~(k#3:y]IG{^ If[N*U>sMOq9b׆?eģOW]ZTa R P"Oi4O _(ϔcf7Z;w tM̛G tvGL/sa{g׵<8ϒNÈUfƞ4na GC"❼[ c endstream endobj 102 0 obj << /Length 1820 /Filter /FlateDecode >> stream xXms6 _\#V.˲d.}Ks=Ŗl+ĹGIB~rGkؒ)#LP ɵ*ZyŃaZ|]E"Xu*On@EИêӝR @Żede*ŕ*D=9rQC0O"d/ׯǺ *0%A¯ jX&d)z۹.`F;PVPj&0A'SZ/6^I\>=5%лgS8oo"fM923y=[`Z6Wv41'i5 Mm'Q;ѾU "Z^ǽ X.Fް$0443ӂ7"N (#9qקM^Y@һ ZmSUu"31gǢoq1GeJUL=vG:"n&82gji(ZޜIW ))!ũlβVҹ K wJ\b[ U𰗘clHnaYtC9hz-{5Op %j1RAg_x\8q^Ém hА=7GHogsqGP&]5u뙖=ȇ/CeS9R͓i;o1!` /[v.Huvn` ̱j5mQ/)#C9&k4E6E1O4eKr ۠Wxr^EcjoJ3~쓴Ҧƈk]>MI-pgH`ھSaYymn7R/ڬҪyB-{iY-$2%P]jf GJr4ߌ&krb: a5}O9'7um0&mhېү{c\탵n1s,IF ^d4~k]q=c>;濫Sv,m'F[=qs q= z7눜LW 1sh&S~ endstream endobj 108 0 obj << /Length 1067 /Filter /FlateDecode >> stream xVKsHW8&4f 8^.8lybPe%kϯ3*UY*ۤ^MHҞ8FKR,DŽӫK.;ŭ,FJgKT*t>% k2U43,EMbnp1^4ȓu4Eۢ>VSar/;;6o| 뻠qR|A]vÆmPm,"Eg^:; ɼ UV_U+Y5};VͱKMMul>B֋Ywq vj}Ќd0IH~qt+^^p BCY_grz-Åodi,CrpMk-KDFмqVs#:uZt7\ ^|<[I1I[rqZ+]SЮȴ32[(40JHM,D &/f+߷ endstream endobj 99 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/tmp/RtmpMMBHyY/Rbuild75b966e9386e/DirichletMultinomial/vignettes/roc.pdf) /PTEX.PageNumber 1 /PTEX.InfoDict 111 0 R /BBox [0 0 504 504] /Resources << /ProcSet [ /PDF /Text ] /Font << /F2 112 0 R>> /ExtGState << >>/ColorSpace << /sRGB 113 0 R >>>> /Length 2482 /Filter /FlateDecode >> stream xKoWR\=ڈHD0Ő@ɉ?USuKl!!,O)zG<^I}Ͽ y޾65?b ߄Sj57wϾ;y<޿׫^}?w7%Qmtǟ?!ujaGI9~8Bǻ_Y"G"_{=~}q9}+z50P셟)>Ƶv \;n嵣kv׎/8/oRèJ| YtlYqDb]gGhk=oK!G[W(֥y3q'O8z^zu^pg nO:ԫK긞Q53HP[|:5\뒋i뚉XGbgJ:u9S~8W?PbIU~penO :]%Mzʍk*slpNwJ';\uc;ݱpNwz';\^xߧ]~+=y<(Q`\D=.*!Ef]4hF3Ƣ e=z 3WȅaguH>WvC*2+x()x(NO풙TN|<^|<-縆㡮]vV||걏'(sRQ>>j=SwNRLq\4yJ6S O<^s 3{]QB1+ppww*lTw613{2^W(x`!q #SWAyH½c.T8Tb\e,|aZJ-)^CΉCp!I}2RW='OE&7n*,;Q[dL- CKF@@**y*y*yE(y*y*y*y*yE(yJwJwJwJwl@:Xջu0*vcƪٍ;Rl7P *uYJy0ycU*UC@7VIoXE=XezcƦM /%lJ^ٔ)yeSK+W6%lJ^ٔ)yQJ;CكP`({eS`({0= eW6eCكPʦPvC郡MكEY Cؔ? /hg8`8rppppTm @ٜUJ)))P6g g g@p p Ty=fspppp9)P1000espp TY.%10esppT.ppiYJu(UǗr\,JY U;SSaN:TY cu&Tin X cu&T:bQ/平:#^(ͪ'xLJ=_49>5 G?>g}8=eԛ8)wV|qPn u@F endstream endobj 115 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 116 0 obj << /Length 149 /Filter /FlateDecode >> stream x3135R0P0Bc3csCB.c46K$r9yr+p{E=}JJS ]  b<]00 @0?`d=0s@f d'n.WO@.sud endstream endobj 120 0 obj << /Length 114 /Filter /FlateDecode >> stream x313T0P0P01P06U05TH1*24 Rɹ\N\ f\@q.}O_T.}g E!P E'?{>.WO@.. endstream endobj 135 0 obj << /Length1 1669 /Length2 9431 /Length3 0 /Length 10507 /Filter /FlateDecode >> stream xڍT. *)C%  0 )"HJw7H#]" g}ufy;Vd7C89z\nv.tzz--?rtz0 b$ r~I ['7O_!C{@ (`'tzI{1̙09 P9[3l`vvvAvN0+fVv\-T@vZcGhYCTh[:``b:=@-0cv@ XOV_ps/߁ ?Av j؂2Jά! ؂ (W;?'sى bG0cZHفN듂s\d ZXn 8y#;x988`G;%ocp{c`o%ra.`o99sg E'l'~? 0x'F zcNJ2zo4Xjo; `prr y9G |塖?}JvL3c?2 `_t忣_ɸgAl=xd(?MuA {';B ln']k>4[f898Gx]6χ#'PSJC-~_/<9 s>P{GcsK{E"Po @$8  >zZ#ȿտ /ocE@N7yLKc9 G.ag tvc.k.0CǑkqFg.O ;]\f:[4֠~So5y1ф>7F3#^MF%uoM>E[- ҭKֽP̆f9"m[v}Y4 3%KCwI*,޻Qܹpiϥ-.vR:R}ʧgxC p ij<~68z'5@O ദNlY F0jۡ m_U>. o^a>Yup (2G'R>T ̪0ӝ&a':T`T_^$e15Z_Q ԌNض(5._4,gNxL+%uV̭>4vҦN7[6E)EܿKS+#a"-Q %H"R:%Qޭh.ױ5U]v\& MHSǶ&N!jE3mf+χ P:DVf^XFOLIg~P0&oBjoBV0r -u\7@ u'(MT3 ݿe|*"cJKU6\8y\%$.\h< H0_^gif#C1E6U I_?˜>(2ֿ?@.D!y)!靥f ̳fծԅvħ6?uXVbsu?J%ޑ \k0}z5?і|KpG=FCx"Xxͯ]kIJ &A1H@#Cek}}}'n>[yBGYҔbCm9~VC]EN5'+ P ?ONRD[7 /,E:26ֻ&H{ȶM[Pڀs^6|$t 19L;eC2l9}+>+xʦh+aԖ&"jʽQer KE6Q6Py)782W!5/ýg?Z*rRFiBr}h|M 1\k9&R8&)-<^j^!b{Adu@ītvU!¸J[*4ϩwQRmym;kv' /*{_d}sJ/`ybuD$}3~[\h9NkD@{Q7eԜSM~)v6C} m t&O3J]ee;ƞ^KVE OvW, GA{- zhDtOcӺ@CF"]k˔ŐxH=8WhԺ,FmJA:.}bwk}ȢB+;B `~K5bȌ%7оOuOwP &WZWg~]ҀQ^MPbPY.[e&Db`K 柍ҩ4-gX@8q}_\gl˦|Fɴ-vm o2nt9su'wHQشq?Mt& Ū=l [ ]'_A_k^4uy˿\!MV5GDjw+_i&cY7sxeHh/aa "K0l#ko9&M]`RVǝ.egmes~(NnҺFn/c2dns2qI5ͺv%fJ8xkPL{Wvf w/-O.$"͇6U8_)u2@e$R~-}ǖ*|V?]^VKnS*H:"3~J”F$՛8ff+}#1=  -=) ;Yy(Q?wY<(< UFb|@5s?nZ7hTЕQRXq:ʋ3![Ky[ ̭͞ê˟4ݥǞ5EZe)O3&b­aɿnUkzO)zb;O_yKV\㙢w7DИcTTPZxkcZZc>cO 8bԈ|D|.v?Р"2n~2R*DZqE\r;OC}Rrz6kM`la#1 9Sxz~n!˱qU `2TR@C\YirK`4Ep!r nbQ?-YqsvZ_' :Y:F*LApE_ɜuT /9* .^gWA,34BĚ(ŝ|eng4ҳ7c;eb Pes <_H:Ӈ.S` 2t ,||c*Nhgx#gE d'"u[!H,@[ql*HM10HQNV ?DCWy%ZR cJNoaR5<RpPWt\\taEiF LEĈ3ط iiE-}zgэz{`]&鶶|w 2ձdSIOT艖ՑFH#SK#l^p¶ɏ)$ *r}R- !6}$|ݞ F6[o:Ir)a!lV?}q0u5Wab7=@rA֟㡆'm|Q{Ss?ɤ;d p'-k= 20q#Q-t ndt>5kX~ϔ13H[;޿&*Q\Ќ$WD!\pmKΆT# ,_|<\2YCŹKTқZ-J*ղ>Y@#-LlHS zӁ`uh&Z6eCGxq=qB{nN,0K00 ,rmСlޚtlY2V&D;`S˫|n׌;'CaV2OV66%lrv7p1Jە:F" cfq]O}فQy#JpA],W#; =Rg:1 4^~dy`Y׎JD7甚o̚N>Y+vQ-ι9kM1J%"5>MUYaV,0nЎ 9rtbTn{ѳã 8_ ~l<l/_!q(V8Hnwjek0m1!#xL<Dž1Ee:UfPąVųAy#ADP F.~N7!|I[L&n{\<̤&UUܻf8c4l14}u". 3?wưB/;bϗ]~+Q2$ڵΈq*8(fC|9L{ |ֈ<ٞ0 'GMq%yԶHz3ծмB֖9z'V%]Uժ?£!a^6i2E +e-{Jݙ-rQZ?oT)%i]J6xJ|# f!FZ_vc 6OfZk DKxEv~zZTY~[^W!ϱ+ -#;1TtQ^;{"N{0Sglђ"1z1 tttX"ƈg>F!ny*KcYJ>3^w"ڤOU4'#-NMwq+Ths m*<Q24/o` "nU+{SӰOV4VE2w}t4OU~/ELnO+vjWӱDB=_e gUNkG&=#5Hp=kRdj/US3rZ,ݑn(ç+o 5q^fƆd~y˾H]yC J ŏz' 8S5NK$OjybgS-ܩz|H"lu{B:n?fejɱ$RH™b}DŽu4-ouP v>L/wGxoct-#&{BJ^tΙUx&AJby5$L\iO L:LZ;HO*H' |g oł4\gG3v */&ݥ4ԦAELrWźo~0p~xq24QrcPTt/X Wӓ~{('soO՟ѸNZJ6qeR>fVk_f5(q#@9dɞ,E,aRHUo:. } Nw]頁(Wué VŸ 򮍜W.ex&7gGf㧝S3{I&TX$Wu$}iTңrj{> NE*uZYo Ӿ_"* ELx4H}3˥{>?u1K/Kbǭӊ ܼ܎x+uP̗lL"SB̞tDlYD#fV 敵ȗ4Iۨ' k Vn-e62($Ͱ*Ga=R _RljX03-gr!"V1. n^αk9]ljZ\$v⼬Mq^h'{I oz `jʛPFB2¢D,V)a$wP0gǖ#BVIuq0q9-ɛO^fW}S [v̠91lbYLm$yg~QppG#(g,#`b!NT6y2M 2i{ECNOKtKTAmC 4 GIܑ?Wg(Keմ5TM#~qvRY+u(@Џ8)HFW[Xɡ}:I""]G\D:k.Q>rRc\)LvIbxFFv$&dp!)i#q||k|~j/*@=5$<*-+\ܚ?Z>Q8q7G']G߉CyXڣ7Rtn+[~0.J\Fv)r ,HC^^i RI[wO5KDS%&ѠIl4!fw1',Y#fBJ3&~5뗱yfo #qk۾[-Cfف_-[R(9b-סP,Lۜmmacc]#lo SFru>wsqhR-`{r0yR|(B5 7ӫ]^O:}{|tV֕`W& ?"{q|̙n)$-&ҸV~:@lQ{z$nE8}3Lh3Eo\M}f۲9Zh}5dRn~< ~ fL~ ƫJX*:]MRGO5y_+yhuB&}WCԚnB~`Qmܼr( +!ׁĜ@;W-P{ͳxUsS hvJxn5Վoy@/zvlh!WB3:T'xg6j9 |Ӟp8'ܭjEJ8y 9aw)nW&l8{P_U3i/UH4ТhZّ$]KB߫2NQ&RO.E䘶*KQ5<>De1= P[u~`Xd୮`B3߉v+5䢰)H{`4 2=yw )]{:F_/^[$\; ySv/e?e+^0]|*Ąz?Nx'uZ828l Ϗb",.1qXXg 3b1Dv*F'Idzdf4.3J4HżwQhΘ_+r-8rfHk'Y׮A@)pX'h`Dp{I0AIGU=7QJ򚄕z.{:Ӳe 1cBG"\$G95~-)& [*uaq̈,Qìf> stream xڍwT6҄JA@Ih"7IJH EޤR RE)*J/_xZ߷޵yf̞gzi`,䀂PHX$ T 0$ 6Afp BJB:E!Z݀`1 XR|[@w0@'+ B!X2 A89;wn v*1 ԅa71 |WCKxyy Cܱ(< sp'd4a7`ryA0p AᆀX}$4ȿ:+_ 历 }H'# Wy/ "C"Dy!}H_e8G"*0:'8(-&%{0g_῍_jB hH(p^_,a}O 0 wB NP V @Я_+PH7XR_IMO2޽ D%@@0H\ xgO᫉tD/ xLPf5H#|(+;#nn;A}a tQa@7۪A DX\$UCx 8_KokH u@ JFne` #_20TC C9>Q I 'H@_0aL޿ Fp f# h06P(*A#%" 5v!d1p70k֕x5WU+,Dgzkt}MGrg_[c<CoU&- 0em;reLZI:yhA'&FH-7$Rb/^,o.ϴGE2>P3^x ,Vr_^sG[%.L=FI9mG>anQq;|z)qQ^ 7"1gIP&t8@ɞ\1kw" xC9E?PK] 4tj$V?&ԼLn1qeD7qY_񲳿G4 D(-6DWN|n) s殘뵝LKVmvsݕw {^6x>+d{uO ({At+ZeٸwYq=IZV];\"oCۚ2Cۜc:,`V< D} , !yWe3.I-ʹOLC|'bDrK+)W@ܥO:|ufhR]npdp]PlS@S#dت4)ONQ(ӆ?_4A14<)p@Εf:) ̒0'&͜/k> >+m;5?TYᄋb/&_)/NʜZKptXgovfL//~)mލ=s&?g!I2ۓ?pYM+Fbh]Zw)hrZc/'?J۝9wQϰw 3|^UM[Yf0ҐƔ2FQK|G͊7 3(Ha9C5n<"ݘ>[⥒GكWr =c%GuSU X{"nm5?$:ZXiӡV/4r?c vl֏;膛Ć(dFB8l86i˫YrkLu"weF5/lMߋhM9Jz{,Sjhs&&TAyw)_mܚJbSLJМmPG?+$$׊ ?3ZH2?k"GK$6Y9mz}^vk{,׳7|l:vC&Pa W/r^yg$~dN3c1P\jfZ>]A 1)]Y*RkQ\~ٜ jCg֧ud 4ꛓ,y33y1kY18NҒL~!Y8< Hr B0ΤDϼ% M#$[߾QvpWg:5aQ\Ih:y3r:zD k|+ZT]|;`$31 sm?|Rwz!frb&Z-VmugO=sHL)} BʲjQ|ֻq ƒ8p[Khj$QN3&(_ֽ ;8%cM)LEŨ >o7JN{Quf:z&?BVOOf~D<}X3GQIr}GIi×Kk%A'r c\wSD~n˴ Tgߗ`I~ UL9żV ѹlMv-\=y}=jVqή@Tǽz A.#8IYLG :`{*rS)w%ϙmz27GK-)WYՋ.&ͩ|='ԾMCi`~EZ*ѽ'gEǒw.&LlDsI\;z׽p!9Dy솟Vž5,<+ŭi"J_{:Tikȩ+aXe!q~8o1eToo>kWӈq'⛿:W FV7ZAdq]9OӤz3k+Aun7\+2RCECosP˛T,1̴l_3XyuL/xosVP ΓvnA=vxBO-653z'RI1_=|}_l8\E+|(t|<|d9>:tbǕTAzvCGzҎ2ٍQ{.gtD1 93J %X6>V jj#A.'"58lhR̩Ȋ;_|1TR"B£+*d/cج$~hn^dw39OӴ_\օ@ V!a, ~%EU֯Lw$DFQyS% 1߮;4e{bM.|t}'`=Nx\jc4&w}ћJnW(3e7<,mbbDAlrT'=y)م3̰Hv͏l<>1УƢJ%+V [Y\&e29&L\PwIxZT CBT~B0ZG&t9ttę:BoO ̹]5پ!H3drT؛c nI8sT6:k4uĜCWpѬ}ȭa Vً֬iV [6W&zxn^T, -Bq sc8s}P\ޟ~<>hd-tVg D̃ "[ISkZNz}~3)ms~(I6nI.9=/q#־Ax"|[NE s|FPѓiTtC`|$Rw__*~<ų> /7"7\Jx,\"sZ/ԩuftP7ѣ&+ry )JJ;m5i K74?|gYa_:ϋ I5s2W)$,trZzp'FI/;4}ޤ4zPR> i=VR߫ٴ%y(xis6![d4i mqZ׬t+Zu*%DQtD!|!K }7tR^9KMDmn{~iGSH zJgc{klt CA[_BӨOΔYY.&? t`1مJV)Lv 8 :]pSVCb·xzx:W'~zG Ͼ- =\h-gz[F5Əʢc"]Ex;| RQ75VyQw{Z*z)[(U ^6xC;3PL!N.y ϲ+c̣E D0> )cwn|Y2\SGb3GN+kDӃ#ہeWaG=Ӊ=]fG9Ӌo/8E@ N8mK*rJ/|og1ެ&0k7X'I]RKGŰs X(4mɽ-HR̎.j]15Z+#ٵ_!sj2j %z)Aa)#SN,l EOv+wqr%bPe3x9R2{L~=`~\ c=9@ [1fJ{H]ICq%㷼?(/q졁E| y~dky[u95-mf3LMCh.Ler)=d$s+Kc~Ha3π*!&M2a!>x}ԦX䐤6,5}])~A8@Em/w3/ Oſ`uBƠwf '#xY:;91|YtT4:qqg?'+{x@Q5Osr-M?@K4@!7dba<,oCtpKMGmhzz@NT*-m=V bNkRi[{lhZ4wH)' g+ 0ss3E2q@h k,N @,EHX 6`8,r()AxE]EW@ Pt?r@hA\t@efYA+?rށ)@Xq,@_ 'o㟀8_]=A?d`[i7osgO Af_?,@2@P vvZR@sG)a:6zP9;K *Dz!:(9#Arv]a8߭rs WOg8#7mh*G 9m=+\m^h-CO aJv{䀼Djߟ~n-f__ׯ hl!nWq_+FcRhN&[# l]MNۭXH/*Ikld[ZSȈviDL/!]=yQT 1e|__í\>ke%>1 a<iO` i2c:!{vzSs_J^~ ps/č\$ӣH|e%qceA7 0gs12:t>~yt'PȀ7A6qtDP q+,B?RmU|+?2>r<7Q[?m8LsdK|(@&Pl+gU,YKõ|9DY)'cz$0\J=Hl4i1dX<,p綢BYgwH&Ox.nw2b1v)4ŽPu4w'??{3IRє( ( F-K|ifTCAۈ_0i־|%'м/[%٥w2DMu)Dj][a.{~y:<%N%b{~fQ0\ccmm5O x>AZ5 'Խ,**֖@7O#,- 0h,Y[_< *M׋`ö}NN/2l;ڋ5؃1WJJyz ^ܛx}<ב,r|;\Y=uF\Q( }qO$ľk( 4UX3T))+[Rp N#1Cp KT֩5~w=*{&̏j<Ћ\1mtSH!ǂolnuGHnT''Δ|KeCU)vC^W2E]B瓠=6maq!Ѻ_gd=z~gwCTUfFo9mM^DlP= ϥapP-ʆ}BWK4˘Njk>ݗ $юt=(?6,`P2 ,m?wS+;6,+r\7b]Ʉ4:/HLauRb/'Wd,9,$Vy P?֍HKѶ $ L 믾윌ӯKg\B \+QR'wpE~q睙'R8Q\0K&_JJK2/om~S`1*{八P :DtPk!߿\ctK Aw2v*BC}31ՎB_veLvy]%s{gؒskOwT[L4 T5ך6͛ԯ`#/èIPb2w ~/Q>RƁs-\15Q¬i˖b$}uЖ(֣fSfRvHuuOlUYaB˜˃nxoUx 2> /蠘HQJ9EWekm'n_Hyi+A'*bbx^S}u(>h@2 :#5Db o2 oWwOLd! ߧugÃM̳<ElـHc;QV| $!@ HFW!bX탏#`%U=~Agޚ.x(D ɡstדړ|wZX';*|aLPa| 6iÌMcR\M*L._^\IoJ>Pb;ITI={[RܕM+G(Ԃ uϧ8H? .*_G.|}:OB{ޤ\;YOQ&YB4Bfs [-eRYg=eyb' Gǝ*ߩ~;_$8n ۪rjPj3(UR1F5;7F><fF [ry:}F,M}cFR z m5q.&EJa54*)$1\<5p+~ֻBג*<~9ֽ*KS( &:*AUmPJOo3锋TG3fۤwIn~#Sb"m(BAtBU2tOclNA8g5EFpkfZQ^;m)2)a9a^_9oBl*u霍e.仈G&!AkǬNd q%]5Ӓifr>ZQF &R@kPv#Hz䐟oWI_hd_"^p07K}fEd Ŏkx+dpV=88/Uz>6GK"ml>ImDZݫpFc<7ɐ,basZ~޿ߖ5$0gKxf|W"#.rydM[Cؠzw"E}%Tψ:ѷζ?kȮV4F_]ܘX]ۉW%\z./5PkXѰUJX#V HR-Rn~9@+7Gt)]ᖎfi=KyCLI)=&C;IĚ5Vrc'8SR?M=5I-©\T~ߔXr'Odzÿ%_g'zS5LUfT` {M"l(^'4ON{!l) פ~ْi?6 n"U "G|hx\#%IpD2 0:omYlzՖ~\ gVශ_0XZtcyp9ysy T%R5-$OB+rF0lw6tq6zL?B4^}͸Jz2e $|PqDFPe3z`81\39Iˆ}a#vhnء>̽«Ӌ55Sի5YWD:=ilf]9 0Q Yt7s(/fHt(v]9Yo.' "SJY96ӳO>˔WX)Γh>667#/QM v]ĨȾLē<4FO^Kڑo*@1Z@\-G] (B~6Vs)R eV̄QE#g%ګ7/kKNzvk^զm4r/~4<̩Hd^M#,ۜC6g?"UzS]o\y"XZ1pl->wh1Vwy^wDVUB^]ap+=d/>EdR%hy-w OmR+k4qUlt8b'0q.Ɋ'XMط3d߼x92cLhJ8>",J|p?J**˙yzyb\+u%mx{^~M{Un zvEPb?[k;*MrJnz M=kxՊo_DhnOIZj(.22cWʼo6A܂V>w$ Ce=^3ir8|(ZI9I5֨Z<`YG Tsݴնt\4;>@r9wLK 1*S`ږE)]O&?]=P~C`kY jlIXc^ Ag=Dˆ"=-Q1N;ciUo4W:$ۧ'. RS@ nrPd("![gm'|r8spZ~#{9V+7tRQZ%9t?1ǰ],(JZkֱl`]Kr:ܝZE exvɫԦ#!"B40K;q\$,@dOZ4jټ,c t/5f̣ˎmf0[5{\ޫQ4!b*M{bbBsZxwA]~"5 [:3uq .a=_?-|><36/YzTaGǦFc)Uu 4e D`s9\D(pO(0/mhP+ _:=;.u<-Ӄ[Cr3T/=!d5,a'蒝JPu'hxdh]ꐿgpb0GcRg8> -'@n k!U35Meu/w*/:*̖UdKbո T, -:=-$IYq 9V D)rPݿ,l$}%e9Ԝv~ 1HP#7 ^<6>Pp2PTGmD/ǙȷHR]MV C;eo{6v29-ˋ4c>1<<^mj-NZ9awI i`6 rgZ؝o ׵Or' 0]'-=R doh{puBv=VRiO42[("G( aQI3l`f! x k=N۔L,RQHShN?V"%uxg|)<=wnHK-?ddܽҾ ?I)A/xp\43QBrOEWX" …tZK!&U N '(@;9=Tvy_]gaJue/=@(MhU-N>;>)K; %Qs% iy9V K^P7E`Xy6c }G;z@_χ7惧6~?|4Z_sF1;^Ha3,6!{zpT] _vЈ-Ҫ6+zK[߂i]_W鱢޴oאo$I/mBԻ/SĕҥLZa|)FEOGN` hC PLe˥:Zw};=!|''׼qyb@߁^sj&[HL h1M*q~ޔ/~ +o!Z뜨Dخ:gsaGkJ0!]S=NWῗlK(. lsrqgu=OYo(JOMTz1[[핔!C-ewGCEj)XQښd:KjGPjaι!.(ś ln%AHVԜA6 uݕWp ɭW5SCoe<Ţr$pS mD*gg(4oxBi@ ݺu#$D>UIGjpBzjCQ8>r e4rEl`{65 v󤖼|k nܬ@{ZNw|?F?8V19ʲx7 XƑ7ihQbL4PwD˸‹MI(m747B{Ba}c7׃ΏdMjCX67gI/t3և.T8=#ͮտ;A|KCWn뮽<9̪dnv?JY1onZ$za>(cq_}BԪРrx˞!V+JA<;ܲ$ZY $n쏌iJy"=tAd~dZ3Yn_ O1q>?ye_р|>Akͱ@I}1LeCENR%6TuDAͫ FJaR.l >gv<5kG([@={֡SlHdtͯl!Èr*ʥ B1혤Ү:h6騥H!Z%x7r%EAl"VrH ]|y4!C,A"ktz^7|B5WC@{uINV0F 'Y,b],7<* a{z Sz[f^k_䲿l `AN`ypqD~@W^jB*sǺePP'Ӷۢ榪d(IJ|::*Bbẃ'S$hEVBuUOwzUo`20&J3d ڡtສ?II ;*BVT>ߍXo}0H!P:)`~!V %JޟŀJP28P+@ *X7[ԇM^n;K/p"8ϩcBez̈son]J^x{]f`p{M( E}~Wˇ>_2cW_t ʕatgb(m{c3d :_vTwYz&\(,80\WJa .Fr4-sHNT~3ljoZǂ zJ"0[>Xc!i  UÖN#X3+nDOӌe3w$*%.Ѵa"s'XRխ"prdYYۙNq`:V-Xd#I,In,kN̤)@+3xGؤqQG?v .;kL$qgV j~A4_|)&fCT0J"Yx꩝D_~n1pߘ )۴d 5InKa2&(E'T\6RsӧX5czbzoRΑoH *T:v! >X3~Kkq.S?Mt/W~"\WY"=`Po'?nqfC'9诟 Z&62#/" y⮧5Q 4 S0&v;Wq`W_9VUQO9]ȓ2,D;h<|wJl.̜VKP%n꾹IzL? ,ʛxKaZ}>a?wNdUqzC f GE[Tܷ0<<<oQ0[\Fo-{F[$YUI9YВ?L wKD̰$-pq  x) R5B1V(i9xژS;}έήm b)rFޚrߘp5#l{.`aǫoT,!]t^zNNPaA1 3M'I YF+܃j|n߈m荦NߡwzHCk}jϒF^$I(kx BBR"h_lRedٻȤ=6̚r]ؔy;V5ʜI+d(s2Yڏr*ځv^? ۚdtd /h'x]Igl*xzǑ|\5~!CMPC`2a<ZW>DގJug=Je79H>m`p:m6-S[=&<nPQHv77}>赪䷧oL"G8BBҞ^4xt"ۆp6tP^#+ +QKV|so_<F!0i>081ڰ2`6<{U" Kd 5|DBk,Dx3>~&=S;,Hx-8BњZ@@-aCH`^^# BNObVx!Ak/ˇwiWcmlu|BHSRg!BW`i7 6$y {WvX0"W. uUGqA)˭$[J{i2Sl>iLpirI_pMn WƢMtN7HO R7͔剨hynNXo?\6VuQ"('m)jnYUuw nQɳR(m=ޒev+QV=1yo4Z}|Cl"=kb!}5I  =%cgVT&pAf%Ro2Wg@W[+mVMO'rea?B7m5%g"q JSV(X!K2DH¼Sφ zNn Fu/na JZuB%d z=xo 3WVX)^p[rNcv`bWS1FIZ3fY.m互Kk'6-!;vD,>Z%_s43k\0YbPQt}K4Zf|ǧ jW:}G$cº?:x0Tox|+*J%􅼚z8V0C9qˬcEf@)Q3[5Rcym1 w2A(]!bu2E> (J+ڷ)Totu-=h!A `з,G SOɦlTNMRmliy$ޒbӎ< ds)a0LЛq[MWep6j#4b)r "!KhBZ^9Ԭ8k-5Y ˹@!gBH ȩoFKwDKwV6xKxZ' rk8TL}Y6\tvrL#s@ ȝ.i՝Ж o<6w|H9VD,@|Z,|pꝊlqJŇ9c{H7RRyDzV뵈KЁxlXo 7ElJ5 O1 MM}.ʡ\H))Ѹ2y /]i^6z`gY#Cc&Escڊ/]>wo1E=fa]B[l-NfkwӪ1tC}ѳd~n$s ytuݓC0\^a5jL9j5GyI9uͶP=fe<*%[S)QM'ZF2!٢[-4q -F`N\#b#΄cr@DQYَ3`}O`}a p}&X}0_nDnq!;掶C*4;)5c3]Ƥyg&_SGDXxݱP.q\̶=r. W.IU} ᖵ|(;lYj~vi?LT9wr9}r*Bi--&)Ld~ߋv/x ]?phC¾3th-i=љ‚"4ʟ  azYY0\>o/K78_^&PA|:N686Mєj_hݨ#W:cөU֒* &0QB'L$/ 9Qf % qJuZ *Rz%XRs;d+\s*PE272&cr0c4IL TwqD2d||6d9Y/8-xi+u~qd)<D t*Ü/giY +ik*4&$M0ԚHA"˃u3ժ_Ú>el'Cᐱ)M_nҸIRu׊Fz'&E_Zp݇‹ +m48R]}} 5f}eU9B8R݋{dC6:lsZcwqj r(A\mbyH*JaͬT>-va(Hcvxw 6!bl{R{8&[V>Yeĉ^uG;\9g`h&Tkӭ DM/jly|'o5E@ x¤aZGQE*,[<>qZ$^ᮃvLsrzũX9&\ዦ*OMORuhc?ZoS]L^Ð/fnl04Գv;ш[-N<\ E=Ⱥ]<7nm4͙ Oʴnmzxrya)__Qi֛1wǿk$J4_F! S._9|3Ke}81 )aam i p-1 /1.U8Q< =roId*dT&QY PI=!EFGpglơھ<Hy7P;7 j[g\&.ul<%iw>U}ӴѢiF-o/mĆҌ]2yT;̏@bN ^tRX9]5y/$|1"^=nÞ,H/OŞH5syv]rW+dNð,)8kZus %N h);_ 7OHm\Hd̛J?Pr'SW+g爬CBὖ™/Qs eMtHO&T"zH'lap-9CҊK_zQQQڬ0=T^΄dPMKS}+@GgI yyQL˗Peb\vu 4۩jmAБ[9N\ȕf?ي?6Ġ ?-qFa2@^(mE?@cӕ*|G ש:⠁[Q~mԱyoǔԽxfM+SDi$@C$eBZg ]9@ιq2Z)|g.nÛH$m` B??}su=yr'P] X* .q%JjyٚF3*+ 嚐>IѪrG848LthXW&mT>*cI4 LfT)|}_@n" Ώ# z&^|kG ie7犃Vt}~]0F)LQvwJP aŦf n"0̮? k.תspB_Yp6g6j gT$5D?r%)GA>~EvwyoT~3~spu5bG\biju Zܒ,Jxr+7[Db|v+GTq7l\drbt liPAZz9^M!wb:+v5,S֢KGn|8F bs(2:av꧁1. =ПN%%s -ޮ_oF762dz='4:r'vOTB"<*JE&' {= ưc=|\+pi8lx;csW`;Xt gFWL-gZ7MWa@S 8 Z^5}Shxa+9x9"~/6$xDㅸn,G'>@Pm4-S (llV|m '-ilGE#gLr[GcޑpҌL|cEܺBC<3' 8$uqRTrD)dSZa.x̚/+깯eGqIT \4`8!ɾX^svQ4dzL (u,'0 `n8 /xTf1dU.* zxdzN^^NՕE S8ްa?d:-%bEEC/m@,S]ٗ 1v^~ Qkr { Ś7)*ݯ6bVj4zHs>AۅN6nV SPG-q,2yNcz Z{/ hvUmȵ9`ǘ'PЇ{zV?-N&Y[QF&]/f{ԫ~!^Gh } 9CwRYns $Vf} _wED'1!eY<ԁ<^]ׄAGWjv'|zlA:9$"|O힇}2 1jOO d ̎$\LEndB#B1zz] )rcg^G1w98.U8kY(, d3Ln~ӢF/_mnw..=V'=fF[S6yH\~'k_:œrnC`&μt MMܐNsO%bU);QqThgc qז&'9]EazԖF`? u|{ ^ WJ5؀zAO'F"Kݜyz\6 gJNH5j/Y6r]v٤]I0lIұWt"bץf%.W,KI՟PZ}t],*sLQVሣ!<%[Y6<.q]]/é.CN5oLJ.OnK_rXN9\0Ғ0 eH z*7U^ 5!`bQVrsq&U`bWgJϳ>f h6{IILbԊ2V~hqӉ)'\p :3P?ۇw|AE}[ JWj7"z)Zh [xӰuB倡NZE4~ 0go٪kPXDZrs;}4h"l69Nl].VL`M^q@XG(S]ن^}0ZEO%hYq4zthF6ĢFZ|޿;si镸2>9N^54-WM"4T?X?-s=8U05lAZ5w0-̐tY^9gE}Fk?Tb_KU]d/-w$@v\KggOFu Hsz/^l~+VF>vyaz1tjݗL18 uF3cp]8su/UQ] V;..6-}#c"Imk1O)=B%)1}_ ~O`hhߺHNk?&bk^WKCSu.hSp:R >$~& ~&‘8i4h*`5o2ew)qRx@Yu]) Wf!e~Juzu>AE)0Nd` ݫwѹs{'T=Ղ`7 BZF, V4UbUaGBk\XLXI9K̷V}'y%58Έ"d IJf͗(xdqd_F ήXWh{ /K<"c"lL]D:V~#d`;7ڒ*VAWJ$eoĝec@d>? *dA?^f\a#d?n>Ȣ͹OH1i2C PY3 G(Rx1cbxg -#GHA7L$۾=5gW{9-Jx)4z} !v_SeqU&uf J0|T)!GX@d8cCZUȲ0\c?LCڅ l͋T4g)̟Ʌynf- ˤ endstream endobj 141 0 obj << /Length1 1764 /Length2 10335 /Length3 0 /Length 11456 /Filter /FlateDecode >> stream xڍTZ6L#]tw H0 ̀РtI# ݂t7")‡<}k֚7.%D ȫxyyy1̘L3T_0hSԝU7GOXOD Gg@ngP:C!L.^0; `@οNNJ`#@l{W V [8Eà bxm:Wb=0@{2nL&v]gk<c <<h@;?ہ߉`g'js4s=#1sY>:9$ =x` ܕ<<"J bO?7uVֿrsчڽr(hcB"@A ^8 q5an?0Vv`8bc ?^>`=>>Q3QW{prrΞ.A(* w-?] UZ;7xJӰ?n;h!?+ ~V_!ݐ_4_99zY7՝] !:*pBmsvJv+-;8omdvPW;<<.T~o00y/${\E+_pC!07*,m <"?>r?Hc=z9Hcmqr{VA>X >coN c? =}<8i1\Q9؟qЏ!?c7p{_ vVQzW!Osn,l_v]%KUri==2#pv)4qCBf:D֟w:c[HF `Pslzk܌ءʔMW+ڣGٳda8tzK{RX d+Z?e@$SeS48vcOɋ :xLhBU)2=~N F cr 1fdUpiȚ;>]V- kީ3Ө+92ۨg NE hNj+*"͖ v"B:XZ]tVa:$Itn0Zf-hॡ%& "MsMFGޒ䉪x#98ݹc{ʉ 1>Pr%)[-im&% 2!)#-Y^ ܴf;[znkuxq~ɃleyhA3ؘF7Rokb ˄ak1ygF>sJpak8#2Ҍ{~4#De&+RkaG/V\ Lݞ,{rv=ˋ7{!mv؃^ƃZ&<$REZ]*D~%3+^۞7o$Ц=oCIBl^#&!`QSm^MI莑Xu"v#L=}*dCƒ/5LC=!* ?[Ni| {"'wDs:ƨ&l$T4ͷ\ Z{lܪ7I-W8h ?qJ7_R{yC5+V6-0 24n_^GB$.tNyZYV?ֈ%Ud=هmtɟ"Pt H;~V+!]&I$mM|&݌\(d%'Xl!=ㅪxS\2u燂9npHJ.`䛵Dq4aT oqtƫimZLlMN-34m ̝2s՘n45 ^1o(}}t{겆RRbEU(PG1a?Ēy@ dMnDeq)LryZ#v@yZ@F,%Ь!>w";Ye}&A͉5Kw95٢w43Cozi[<,cT@iP%+Z$YI%"xSt柑 }*Gү'Ta_ F&*mDib3g.G%e|;uĄ$>PdRe$ltjh$M-Js,`C/ކeUִ81B ;Q­Sx[&^# ~Jqli>XD1za+쉘-ARUL`9Fg$olxIUQI,t8FT۔Gz%6BVTJ=ih[ďX*[6_H'\H$94 #v1\%7E v=֊YxB:\&]bvټalTE:(:n)RaT[߇q;C䋫_r% ~ޅ8Fk *- _;bRJ|Ew{Xժĭ>CqM h22ܾ[o3 "| Ltk2ۻ7S99<Ԍ_3טެ"hƺz`CF e e%gvӽRMQUԴ6)"B{D;:iBJ(%0 mgN7}ȝ}7i'9h2݊^+"nKƪ[3x$~F8YJ!f#0j!(c^-]h:fC><'cHS/W+k#j}'+323 oH#Fb m핿 ,䡅ڌTj1%Yw$wzL}?2wgd.ume'~e-۫$2F90N@Sv-51plo);Tl7Ì.i}i9Yc0~Mtꇃ-Zryczj+DʌdY{YTӰذ)+MHA]bb@"_V쳰}1f[Qo5-e^6x+GȫhELDVfw yФ-|g N\u)DRzjɁ0\,5A:AXF%R$׹y ].ku#ݿ4 |+XOvg̩)lC|{weW@C$y*`~%e_y`Xua {O|oHɇF E _=b`4>@KSTC$FHsd3a>K mU<\ O#|Z%Fa(]ҴB8AeT~ JszDN:v>@{iwQ[#u3 I| *pJpW{yRR 8[|B^T<-h-EsEݧfJ~t ZT1M\hwG)_HxNmP;GbwsnMM>MdFh]5k6r EhnD"S$kA{F n+Tr#ՙp{szm&MxL%÷pbi[(k" |2;|Cg QٽWd6ASm&ob}D7FUaˡ0wZ2qb2I-yEsI_D!"3 *Q]<-?(Vҳ 1Jģ$bqaWl҆Yd-HSݚZ=skbx? RVe;K+Qh&!>;+ʞͥ 媂vӰ\1P&<"ȱB_^Oݷg*x<-?E-j{Cc|uÖQeg {"w2Z,D^ukJلJ4AϠ.~ ռϽ.6AAҊ1:r+[)Q}_bf}:ؘ\XD\4WݎpR>L\H84{'1llTro":a7;lDKaDop݆F5J~gaNżDJЈ;G:llY2_Al0ͼ@U94:|61 b Pn53>B,swN~MU^hq2ksϒqD‘L|&65&g5[W5>BvOkG虪MR{]62݋ECqpz.2fA}E9v". IKkEj \:qIdvtLlMB\ 5blʵ?_+e*B[JzFpzKَoç".e9ϋ Uy/. .u^;=Ŕck)Wmli3X2j6om;Z:J Ng5Ȅ6l<~<3$f)fCe:_5#q0<\;ʑ^)c?`,%=h覾bK-*w=sY̙SGB=3iPK/,f\WI=y8'Zlgߊ`k!.39X>4\Q crTgPW9y aWVQs׾ Q"Ot06rYDQVbVy}ep+1v]]/uQv:E4B4qӟx)`Ydj4J_.QQͣ[4IR}dAG`VC#uw%a ŋ#nܯ T4wlI}vr ݒLHqqzM,f|abD *)]H<}a u0#}UG2<ۂޙiA~2&Oce7:1v :]炾+;:!ؚn"S`c xF Rk$/xK L:ӕ +0>JvABUW畄`W=%H`,$nc’;Wt$l+׀ Q'\a]~uc0CzMM0u#2 4'iѝJΰgkh*-I7{2gO|+Cc",K_vrϋu"~(!`^Qmg08:) ;f_lQR8YAۮ|g*Z~٘V0]j Zr%潁OZwYAP o\ ,a%{_8b8+~wzd?cRz*LsyCRf.?AQR/nQb@r`NNJQLi.Z !M yr&F>{ΡBIߛJ(ւ- fq +m!"IHrYWYNօqƓֽu(rw4d` oCpW.`Z 'Ũ* SnC衟eK.dL1̴zTU؊!Vn$D^C2EQ(a /4_15Z_z>Bk1% #_! K+Z2̳p ?)L?Kr8ǺrV}Ȥ[ x)a$Q:䩷:X#a[E_,kn[;Ŋôf37nB?9S#A (wA# 5 BRgNjmTCs%8m#>Ƥ}'lR<(ļ:ifv/*NBd;-O}Gde Nelfݔ5;g"'FMJE9?\HD֣6i렫69j[) ٺ]qĒ 087_O5vf+nd5 (/V9eeR]L((]LJS mEh pr[la4aV1Bj27m6JJH௒t *I"@,d2#V^2ry ̌+q.e7;TF8(0k?ME=p('5e.`0dJa$zԱ%j*G*~1P [Iqʌ#ɡs Xj u!'6u|@rF=5r!\$'.{ٌtWq؝^i{Vk19k',$Ep/iX y^w囀杝m+!_mp0_,#^hD,yB3|~ C$kfƗm~ͻ^Ђn!"33xzJ,NX&#&WNFoD_Xojӥv ]w2'*9B> 5& {Js^nR q }M~_MӷJ/K)gI(&3&9SS9^:j$Xq\UFu <<@5K ~0M^ButN;M|K(cWN4K JRIU啕4%# hZ2=bfۦ^:eSckg7"BGZKKrja_R bawtr ? /BPO8'xHc;T2ů"9\*%Cy܄y=iސlo0zU!3ˆ=42]e>q2 Xe̛%,v=7]ܬ%C ɒ\ٝ(R&;,Bu0MmN4X p]ϧ[ Mf 񶒔WeSQCWL)K 8S5Tm2RTլꏳmAo9 hYM称yL4>@qqH@Yц-bJPt(5Ufh8ŗ;A晘1nRuwzό*;IwOnwa@&|p RMV A 4"3|Y*Hez'j6ڳv a.1ҕ7fMvx*؜ɑ ]nlX endstream endobj 2 0 obj << /Type /ObjStm /N 100 /First 813 /Length 3520 /Filter /FlateDecode >> stream xZ[o7~ׯcE"(4ئ:i4DȒ+Ҵ~C$J\bw!ys#9#`iӞE<f5iP2~LrT 6hG-CR;O H 5AX>YYVGN4i(d䒬XinjbC` v2C7uW?I2h>i;>M3fL԰᨞ڳnzy;fNhf&w3q3̧fFޚZ^4mt܀LY `pLd<{4%4KNk&5Х:6_os~ -hرFSh ZT& 'la5_ ոUWqS \B,OI,)ee^IxҺB U}3Yl9j<NvD Œ^h`*I#8R]irQG5}LF-ꈶ~Q9R?L'W 1mZ؆]iͮY7iSG³J( ׸`ruۍs̞M뫋v8c/ռ{<)!sMẴ^Q%5IqCnCh`ݢ Ko6:Tun & P`~ԚJ U\i现;76[_c5]XPL{\ASQg3 68wMIv]al;J*|pq< $~+~;o/Fk"D F7*%" ]-<8V;fssKR1㮝ۀ]qGiͦcDcD_:d?p6n {f t0ǑW~ƃݼ_wtWo~ng.2ߏ"/y{%ػG5hH]vض,rY-yN*IzYz^J\KS^v:.)M{]ҋh?NFVV`1 Q,4W} w 2AwVXb Ȕ܄L-ː p2:!B 8IX*lUž8Ue%aN X:08z%P4^;ET ,X/-+ůV5Hdޢ (SסV!Yײ`"!CC B,m:iz#CZBvc_G%ҖxQZ OX࿣oIԒ88* PH#_cCB!}A3f\_Qe{3EaYy=beIh]%=gY}@uE~c؋O#MxHl=AZ`n.$ `b2`$0t҅hR"kXSS/JR#%k%[~ci#Be,RKgM@ݪc4E{*P &Zrm"L\r/}|dr#)[\`r,K\/[zʽr *K2e̴LWShER:Qh=?e782*}MY٤̘Td Wh4(iVL-AW,ﮛra<-=%m8DR{ˑyRi^ətJOnKc{_mz%f 1Q 5^v:SHcRfr=if.CK?qi'=;tǢ.gl!P&v=4۪)S2Я_mB.s I鐁;o8::QN FdXL_c¾MT:}65k'bձj 4bIJH^TLw.AJezblJ( Jpľ;8G_.džt9Si<\9=M+r7v\[.{Ytrt,;BjT: $Rʧc9:~@'\b% UXGzْ9gR}"R Iǖ<BolAHG8W6'zڌ{b;v]ԞiRva;۔?Ă"J'(T_ԍͿE]󂎞EՖc(˖f6WdoMoӷRcTϘ)UY)Z}A}mӞ_1i]=jO磆5?Pv??5񳖟O xw1m6sa^Q)dBlz_{\׊dmŸo4 *ײ#j!]CRHO^Tǻ2b!jQw?MJ=ZE?w?Aѯk#?zv|QWXp2Q^^fͯzDvLd>\߯.1 `;0q ;$kW>#͖jyfNN\˽d5~4K?d]66w'{—QݩeRԶ>^$_݆9#:]`_, endstream endobj 143 0 obj << /Length1 1642 /Length2 9314 /Length3 0 /Length 10370 /Filter /FlateDecode >> stream xڍP\.L  ݭn\ wwNxdfUթs{UMK,n 3.,lIe v^' *-KJrrà2t]dR@';e syyll19 n`K2 @9J<6.Oi `29-P2dh,  A/d wf9Y00.6 3 d ]0@h2TZ O&< ` j r<%h+T@?4`;  hawB=Pk(x0P߆@3COW ́8w2`O)=d0s*fv6=Mp~b*wJiqpNN@OT'"qps؟F,P˓ < X%D|VNo'K?oVAv+_jrX> >? > rX"; X]uW-\tl7d:; n.'qgMf`ujqDNdt){a]Blk9zӝifApxU7 Rf--Go;gh]0rݻd=B6շ(1ӎ6 (1Ϙ$Bra&Ca=~P{`#fbs1 k/ ^EY9r2#Pg(M6;lۑ/W"_{B[}P4KVDmz 7ګ~X<6}=z0ZJ6`k]jy锄J/cY9zl+W#6.(;8ۊ־$berDN>P:zJFKynXHY*lKI4Vjҕ#.>A܅WWuF ǎ뺓\;k6c\a5d029uwR{G<ȓ܇Fõ+e:kw{u[N&){Q̖XHxnq-oI5Ą~1iF~e 8 tl/G:ZT4̈Eztp;/By[޺kszᜇ6\X1 fI#VGl>D#S=[ +~-m0z߀Hᷟ)'!gqF=h"e_E` 2GN14VxLR- 5d|kLᡯNGMʊ\bbhJ,r/X Z?t<iaKƓς&dזIc$켨 viZDhvMr[[*r)d2q{}Lþ5܉|j0^K` VW|tk=+_> @cɕx(BKp'|r]\UOa)мIzT7`>ɨs&ni7wI9[xkYaI9bAb&)Y*? BM!?{օWpzw1xx[krR= ؄@Kwl{V KОϯ#kagn{LͪW> SZj*^m?蘟Bqc#\bkި14lTB5cLKߦI7u<: :DZl^9upP}B;tP!9ѹx*>BӰF1uyCRanYT^Ka)!/[$Vg8q$׮9k>!6d*Ӣ V-A<&b cXFp7mH-`3'Qx- $Vy?8m^;LM7`0'fs W:yW QsgiWɳtqP-'iRbU߳T} hWP'[) B4^{f϶*1ϙ|1 %V렿Re J Ҵ! רƏq׆.iY ԟZ H7!H^J]⪊Pj!8z1Z̄yVH7Q4ZqEm30d]Ҩ3udz99պƑ(2tN+Ӯ3 @'`7r4|uhsY(M0K#-FU\_=/"+woX17'yP?ݱ@",VVfK:I,,2 }tuwQ{=馇AAcl$Gyp"mnwAJq ,"ãWtM&j J>TRIb?xsQA? +YUm.[˲*KRFj5$ڤ*9IW9K4*+ _5Rt]DNNLO>BhX{b&9du hf?ӋA_R6EAЧ)<&B~ms M @yD%C:6_R9wHf9dzZMWvg"K>zag^pO\ܻJ47wk=Ͽϙw3 z+sݢHKƒ} z]^&N=jZ?9!6tC-!"3 uDi@hBs|m NXu2z\=[GŞ3&H%Oaq,5GShi=e<4#ŕIH#A:wgw=<ϝcRMz ̖squ r-4ߥ{Ɛ2tDѕ|~(:?wQ허/lSim{ddtz[o''t*yԵF`ڑJJٞ9k,=rTVj%h'+$^aKL گ;&I⶜q|&!@콘$ ZG'4gM+(j[#է2}S \BwB?3Y0mz|NrkʩPxǦYUbjzwbt>#‡f' yV0OngXՕP̂qò禜i_0=7D)z41G^k DluuWBd(t 2'g g>g4 O6_-r&:l\JU+U@b%hb}wQ4dX_[RRF.H#UY5&|CVK9&!+O+c~1JAﴵ:-\б*Qr ŕ̗c}d9wr:"kw u䋾WV8&AGmn fj.'|KgXYn~X%K76bKŗW 4-IIC jR֣ě4uf7éoIlNrһ Z z)-d I\'?I˳">xՑR呋#_ZS څ¢@χ``gxdƛ(/|j탷'X4h6=yA剥0YXHTzZO$2>(mDŽg0эEb>aFPDv#LL*ш![gkǕ^M fk)HJYQϾ!O&yd$;+SF{*a\hE)'v0mPE+W973Ss/)C ŗ6w䃹1ϕ\XU FqS8˶.M -4xSC@Kӛ}Wx"]I;y?SHYm]Lڿ+Y"9ĸ ] L E\Y-´ ѱf`2~*wWi;>jt5̟pM&Q8gc89,QLHU-Fn{/tJbU]YXPIEz_z˫{_Fug odo@Ǩwp88Wipvy_\xu:齿etswJ9 ėKq3ͫ6 KO-}\w mͦ$Q_hwQ񓚸!p l/c32%#HR_z=;{'WSz3( ͜p j*Ke)U?bᱵބu<ĭ"u{ySі,]||V-}kBb۰K%)duvvcQdǢ9%=E *jN |7!Q?"owZT-G0٥/JDq_y'chI'%Pdid5> ЍW!vwXS@H|wQKpWrt1HSU'h1ZrRD̺ђg0P\ŇA I꘻PSLLu"3Ԡ}Y걎jXGez{T45Zx,MҳьZ6&t/ƹ!7(Q#dR*JHkVz'Zr(Ik"W]0f8q HYWV$iTank^9qM/x AV;&%=]w'URQۃWc?<RK.dAwMo|F(9qbƵYmuH׽J6<ҵ)wX`<,:JBe-e"Ty>* '"P+XowޕBV`o.2|0եh)~V&W97fv42؜j|?]-Rfh`Q:zHyU\A.X+ȒBk߶G;ZK`qOAAp+į ˎ!B a ؔ5J o l~(WiX/ΜNMӇq*/Q+Ě5֝q=V8a\ʍF#w%֓hՉalӄ~.g[Z7S骷GXN\泌< 1hKQ8 R}W!ч!ϳyS mG,ގ|J(K_53,*qŗ<-ȞGz`r'7%bB}aaG^\e8(t/( Z,>1/+@i?L/0Ȓ5/h_Fjo`ΧДXSiU09uTwڇ2 枲ïhgvf%c$J jdw΋"VdXEpy13az} a- _Ql늎kXII_۰^K6Ce:E0>[%QQPz2ߴUd53O P5T7Ri7!{̣hU ip):Lܪ_DC%C^}> sc7D(Gttv^q]Tqi`Yw#SwwL-dv$JvnJ8}Au7=d$׳z=8xRkfp3_DDhcx΍<ҢܚM Wi <*)Rvm; @mo/tjzQ;j\Wkq~?Q8FM50Z"4'o(lAVNC]75-iU2'\7`FH~[7o# ^6񗆻Д.Ce2l U&pNU~&~K8:3P)IF U_fۜWU|t0kڗ $GKxۓ(;P#u~eDS# [Z2SAfOtm ἟et>1ݼĨDNkz!?C,r7ommvL]ѓSt8$z}\Bv&e_ ~axi uh*XxȉurI]ZKkЏ7{-)^uVt QSv siQ~Î7ogQ-4hs!"U1@#G[%>Mhՙwdz=ΊϠ4O:2KXmc _ױ31FJMYsmAr[7Bk,?٫ WFq]*0ҳnc)jnFS$fF}F5\}xh+(v(1 endstream endobj 146 0 obj << /Length1 2530 /Length2 16129 /Length3 0 /Length 17613 /Filter /FlateDecode >> stream xڌeT\݃kи$@'H4Xp'Kp{}ι${=ݳ֬jU&W`AN,l % EMMv6' 5 6$GhIJ '#+`c/*4(AN@7$j ;xYyv9]m-̜Jf6@Gf -$lݝXYXX@"L/[w: 6@or,HM[4@V^f@`ktr;y8Y]rg?dLulcd uTYܽݙfN@`3O3[3s0bj3pݍ,YZRtrwC+>I[W>7u+KgV-'[X`o5>X ma&>2s9l/$?73O "$vv;hm[lZ]j 0`7!;Ͽ}f rrMYUd5tMeqq7 aWH?*d/P?@92@~7dfa5_*?$7?p {A  K3J@K[*n 1'kpk3pcuZں[&;['*faNy3?|Eae[eǟ)ֿ7[Io;pl|mN06? r_{\?Rq9N]Ml nYAK,q t?4c߳G t?m>1.p<[\5;GiVgt`7P9! wG#+c}~Gv?w+?v/@7iad!n%VȋygGՃ )r2}9W5_F갍H4dd2T=x; 7P1,B(tl=)$|e+oE$FhDpH]TH+>#>: vHمFe"w6M#7b}nc:;+4)ܜHWc]mdSqGڽ+E@J*aW^5o%s'r *F^"3 s(YvV^!G6G<ӲtgLuNR|P,׉>|Lpꐲ#͓bl@4>ྎ#XS^rȄ "=m`fPD|8A31(%i;}vhVwHj'~\i1\x!s(T37*T 1y=B҇iyzNr4 M3iYȀb#t>m0"UHS0K4؆+1a|clDl7 ^.kG,)'K5gUh,SX>Uކ da 䍴K ;hhH1^xl_$^H:S>)Ns*k oζv ,N{!mb84w,OjUE3: g`Xti]M`!`qpPBc{9%'.d~k}FaE,Jlq*h' U/C@_VAHB\nf1\^gۂ aV481BRz%4zu=i57Fg%nq䓠8}O!|sejTt6NyҞ8e?4q7f+좈wrK>7-3 Vlg:=0}qs5ccX!c he;&y|ao)38cCZOJZ!JJƔ!G]t-߮T6/W<ʫncD"_(]1ddŷTuBg,|WӵPrG-bMɋÙf3Wzzwc9-,eR->=`p%ҳX`R)',Dsf{U,DfNLe"cyMkaخh#Rw(_"V*pS!Bު ƙ4DNfhw@A*pfc|^zȉSHYFB;0 XN %ލ@!/dgH~%J;"b , p`][_BͿ-r@j5\yQC}=Tg>AC uǢ|TT ;k(:V3]N')Gmyw1ACuL7֑!}]mY8sdKM+ۀ#[ooFWRhAw5ؼ+gybN wR99İ푤6ţ8=<+-csPz,* 9,7.7K鹐48IKDt1t(=?亴{8'WuLtv=%b=!(+ʬP~ جe=wߵv|qxն0£K]Y-IϐA*JE'a(c+QQ68,#U̗AAJeVe T! [GX~g>>E# B蕘GvZj%i]c Zďp̦O(fDe2l{`Sˁ5 ij?ò%'צUdF(a`OX' uGmԋ? fIV2\z7=n$=qC}u H}J=W65pl(4`:`D$pr` ]F-=ludBb!Ի[wJAvv*1_Dxk@$9g^eO9Z b=Tʥ ԗ.6U:^*P@!mIH)8tHF#<1Rm&>C1ך 2T74Ǎ!-mr=eNt~g\onE-G/0[*~`n.T=6gq'mP[,*J :3ko湩6?/E' pAORY=g<y!=0$dn5.[(ͫ&S0S-GikNSR;sw8_ڏiI-VRjd/7h '|2ܫ:kqϯD\ kPU9U}%[.yN~5 ()CsL >HdYRivr7#oH>7o?z 4ު9\QP eMp6t1Z{VfˀBƌSY~hƠk9hfH{$pet峿yIƐ<ìT=qҍ${26z8v듪X8Q& 2c°\m\ոѱ~'m% 'ή-/2c#oelgj7v]l eq~@j|Mҟ-hR+r; 5 s F1@~TD0Z 2S0U5;&cwsǀ^jPnMES|eep׹dZ5^'~ |)oc731%7Z%.W J /u1&v_l$֙w2jJȠgQĒ{iAE#Fds#vԗ-T&K3EbLbօuRjۧPgK11h <trr\JL̊Sk,҂趿ƭdձ7-~=20^Jj`vR&H} W8 궘|gQk]y+CZR톃)/ifВM^-Lʡf0<LaL_e秴͗f\+D7f{ d;c"Tni᝶ic 5G%EYb8-Z6PKD ъ`g$K+O܈Hb]O"+WH|1Pgj\u~PIsLbHnڈ(UK?̴nyߏj=hiu䓾(8!Hٶ 4e쨃WLm Gϱ 9HY _ _L|2̙,67B62-~^q~ԃB\^̴vN lSb\N'شГDiΛ ]X6B-r@mM׏ײZ]2Q9~O=[~b}m6 J LSFm7 y15 ߶FA>=~ Ŗk?7(I 'W%AqoB:4&i{)LUڟ8-FxG[F7#ƛ$I*K0tN$ݹ58#0INk#71]YxŴH , 1)-p<:m+gh ^/ e~ #V2?~ոʲ w?њ)vz"==X$PJWN'>EA$'>h7BVY?@2ʿu&>Et:nOפ|!~1˽@ '+> %%$.p)exl4h1yqI'{$%ucHm_BWb ۽gc1y4EO0~V9w^B7߿x6&nܩ^[b(n482$Lr1bÕ:Bx- WB)OS<bGagV{_>BE 4&טY YbZ)8e^cJ@h>U{+\YbvV˕ V_<0*Ȧ\3 UX[Uds0>@a=1ڏcx_Rp"-UD=9э*0f3LgP[f ܖ^:)_2Tjːp4}2'5rƚȅ=*7[tk;ivw!ݭRL|{r񱯞wB7.e{<ݧ nCټ7AVڑHzU?7_Нw*2ojum͂ ]VrCp$z` F|[{+qaZIKkdE|En Yo9 | zf'MtG?{'j,فZ!Ե픟9=1pu(9M?G[(LyZ^Zoq:@5 jial|P{(9`3vbiH>< --Z6]Eܺ|˒M^;vImpVdo-7DX`:^[ȳH;)K}?%g\U_`38iU]:Ux.5v oF(ߊ.3/aY])5S`Ѻ#biz.$q+o]ӥ 2ʲaf,D6O &Ll`N ȝIGfp]R360ò?Y/kB@IX=љ',=ʸ`uT`㪊@yqTMꢨArޒ ODfeI@h`cӫ .V6c\I?\@rA~ґW&銂oh?,EҠ-0;a5u O:½㞃f/[hbyI c6OE 16זs[Uhi(g)/M -нE] ] CSov)4W&Ja( ?[9[X&_Ɵ5.?bjdY <{缘EGq/)?Bi+IKI"Dr-@5̓o4[=n\FV [#μzW8&R)]6h W{ʩ WR<;mn-/RI&O[61 >f;-YG="#޶xgE53=ؖ.rF:UdĘ- _5|-ʡK  dz-rFK:wVٱMeM-\[>?0gs~JU۱{֤͎'!dN@w- k6/h*d%8NNp>"9\+zu]jw1q`:AL`r=hmQi[Jhrsb(}AM*ڧ*iI@$턥ߩGc8Qo2ZW EBPy t%x}|+b$L5]ylܿaKod:9* rQ5Ŭ̷o:_[hڸ;uQϱW\gυ~L+EZy'O1N`8#[L܏>҈yT/v0V-1~+XZ\m}=\CZwaQa;,'1n%|t1^F1⢼N!%[-uܱfl"r셅 =Gw?PᲧğ;V!Azl.<s λ:6͜~W_+>ڟ|+`R Nšin.5"lKudf;CI& DT(8\ e!CmB+nJEilemWN-mG׏uX\;:)LSgnbTC잕Z/K]ȡs/cp8@<̷/ i=|׈jYvt`X\Dp3OSB5wGurB>,)wJg#jw=Md\_hakWHT@tv'Avy7¶tC< "gm)ގ_s/)vao3ڪ\`_+zNcR:cUG>z1+7%h8q p %s[O'qh u]ERΨ{UBĈ2#B<Ӏ 3|&a]T.DuC A.&WSCPOaۂq]ܯwhS;Y֡υS~r4%n2m{\a}][Z^{3Ggi?wtVɉv^t?LO#I2Pe3@/cH̊@̄m.a6z=FɖSQT^JDH!fjlw9V3O- 8NHWFbV4S}ga5x7b}=AjH@Ԑ[LN<SN6ޥIg?n/ oz߬GeQ*$Lu eUx}҇=o45x@V :;ikյk~r8:aQ$*NdG5B[KyX~#ꧢD4*z1SG8 ^oش(O{WH: jAW:7#Q$(݆2`" V?Z~eah)w{ޝCHJ%gӟ>&E~_I|y㈧5vPn)Qp{f’=*f&oY"J z D([0|:Qٰ+*}&<;Jyh=ےU~ 2g'ZPlURG.%,4L: KXH rOʏe,=&Gta0Uc'H&H(C lwQX5ksrߚs˔w;BfhXD)zcQKn[$uS߄}9R&xKbWU'xW%Ia11CcN@d vD wNBm/ |A™ ~*c@nC`7 GMH*^O_r{ዶτ˚ \cB#hqzx޸)iͬvnŦJFLY,$WXۑ4XCڇYv(&hsΆ8]CYD(uOeAIG76/y3}`,%dK>q9uk_\8l셸ټ$ )=x}c/ϋ|aԘk] Iɔϰ8Νёl3 `.ESoX ܼ6QDu1 ZpP7c\O)#~4`xU0Ue)l;EZ%>o|do J!\cw3Pz;Iyd_P+@ذڴ=Wʜ$D˻>?+BA0*Lr{T ĬDGmMC"Ǯh/^Z̅‚ SJUO3L(j,BiAi^_k: @cKpѫ1}ɀuhhJLYǵfO R44+94XTh, nUşc[fوƅU]LTr$ Mٽ kiN Cr|}ۛ't/i0^}t=#e5Ҥ9YM?NS썭M%(7.Z^)r@gL2*[w2B<~.yd4=`,3zIAdE%D|zz,U)PC?IU}XIU|bo- ,IΎ, P۲ &t0j[%6L\f^- ''4 s܎AH`]Z ݟ]/fYLv&?⟿ ܣ BLO5ar]A#vٟ(%x!e_Z(r zOwrc>!yjgct}qbϊU䢍 leAݧ@82#IJpS +eAuu)_۪=>; zH瘤!ʨkGjP.21*"qc)+HvDƍN\X^$u3̏x|Y6 7Q~hmCY)͌1fe;}7e aR~#)?O~+0|: .S  5bMS҆?HĶCf*{|n¼w}tq90'vh 9cy iիwȤOŧ&B9e:11Iv2P3| _5硗Vg&@@gW G&:欛՜A[~ "tnү&{7>݀9߉x{K2d$b\ap_{# YGe|n!"p(=qz& z|m:] ƻcyqQF^e@Qҁ oK~r!kK{ fHP*pk%sÊm:a2>q8>m a85^?#1f, bb$<v9iM*J?&ӌ.IrZS:dl|oR)qy(_vǯa_]Sj%$OK>u 6&$s+&@˗W75[պ,7W^ 7.W.nW{SXX ?e1^@}Zg:JOBP9Y/%pC1xqdހ]iO[WgB6AjNlDΙND=:wqgFH yG w#~Lڪꊪ'9yS2Sh> }kZzvNj0]p1JlpBi!*sm{*pJU?fi)L `QT`dÝ!򜒛8ي"xɦa;*˒]]CImXWÓhsC5pp-!0w hLU|,\EM68AjoTnʨQgx-ǨlP s\ iPy]HVce/{q${+ uxf Pjzxϼ6 h:]zncjQb &:)r}53`XpY8rm$wyPo竢`IIa1O5c'n묩7r|ױGxE6tWn?TN%ԅ^uט~iγLT0N9E;/ #":B:DU-& CQS^r2SM:mw`};Acғɿةvnjg\:z7h ~WgK2g/NYx4.ʦid PvUx۬ Y1g`s*znII9(1Hzy;_)H$@# h V9{ eG U9E܂)6=$kQZI[4en" lcKJh>OtR^t PbS (+[utA.hl{źSnX G${0scdykAGwW;}KP'1UiF+5g|?Jdk⥩fRĚR߳]DE%Zlއncxӄv좣9%L|k#_Jt #܈t([2 TU/sv@͗Hd`4hE]UFӟ0g, kջ z+U71Fw ^qjU endstream endobj 148 0 obj << /Length1 1370 /Length2 5960 /Length3 0 /Length 6892 /Filter /FlateDecode >> stream xڍwT6R HK7 tw03 ] !-4()%!ݍ}[us]ZD%m(aH.^n @ ~nItma҇!p d `Ma @$7&ȁ=67 A8Lpo7=ߏ5+**;vA0@ 8V;:pk(H'7 wd؀R AC$w񃝡NuGފ@ ~+C )W buwo|+iӿ E(@ 6P_|ˮKiNPDz\ nex@ܒ rYm~ɌOPq@\|yohMcGކp7_w*h2#ۭ~_mͿϿ xAq&ա-gUT\˟0[z"_s}U?q)'Hќ, b92 KVA,qvAhlvS&hQ[$L\ wV\"VE7g脀. +ݺmDǸhdJGfꮫ5w*Cqd۷ޞ|Jp" be(H2(2'c](1G[iuiexE}gmF_CE)"W`|d}hF/jN~0(.5IҪSPbE,f촗oC!vv5!}Yw_,a!o.oqهW؁G[U,JLقdOhBS+B>1| 3^iAK c݇'EB/=${&Q%:(wDq"F4g]L21~by*WH 4:t8|-0B ja)-9'Vuj:0 @{<=- mE ݖJ6rJeCޖ7FcsC;۫MAU-gi@1 ELCӳВe # '%EIP?I{pC2bo7j9>B ]MbeFtsWc ?mO9uJКoD^):4$Fչݣ 9x)&UTǾi1 טmJrHƑH)z!%_B 2~Xrz]Z^|.̣8*oX!YI:4DF:ɢ85鵣v]E+ %r$s۱s(e3C$vol6 Gkч AI9*4Gv;?+$GvoK-$Y-^ayr+!@Yg)ǡ%,gAt\ZM~™ԴzgvQI0l72ʎ_9 LQ`gYS7޴Fwt~n0#7W&DX%/KRTH#P71v,3V\hj$\ۺd`8 XdM:$w*@^EWk'銳#], jL|1܋3iwcݹ7^݈n/Hn>}0Xy'A `?->P*t.WtPD:xX-dL.Z{|J Dr^x@ݻ@Pg ]h9sēSIa/ Id?A9[IP >=~fMk0#(3uVHw BGfo`3ZHڼ)͝۝R*c9kG{?LFOokw-qaKP_з fVd=џoK#3df½̭ eԜC ۂ.pjRUpY˻LXkP~+h;+ӱð<wE&\ǫ8{X͍pNX]ꛃW .s Ke6@FqO 5YH aQCs;N)v x8aN˕SdCЭuop,a2jL@GR+=_v7e2t=3h18P .Q̛dݲ:#cAN([ߦVV=>EN]ZyZL.dk*ƭٗ d:ep9xBr;֋p3V? O&-& |ga0$_/cY##Loz#< a~ɠ?IUD|GֱrwE "Y[7@f|,Lz2͜ߪP dΞ^hBOhggs$t8@6\AubTWj<,Ue_޴ͻ#p_ɂjͥ־3N*C&F:9Տދ:D-XW`/q.R.+DWzJR̾i}.zv:~P/F !-rMN *,P~ ߞ jV_ Yçb4%7h|}Z^O/=+ʊ٫O9XӕnegM^Э2KYTruÛ`T;e U"o6o)cSh4&l&"7%"a wã:mL*yloIkew͚XU@fù))o,].` gmc;uM) _0v! KҜ%G Z\ݯ7GJL|pu+!y]>KR,IyCUrUMӐm3[˲cV-CRJ V>Ԋ Dy>mtU >CH:\wX}s-#5{(^c+)RE;}two$P$$Zڶ膔E0Zq? 2⦓L8uRI1mg21oL)˴R|îrC+`2?,KDIlK-9.hq,ܩ}fjs˨{sS<*{۟:#AZ؏DrZ+nt$% 0Pe+4M+?qbdJѦhi#IXԹ> &CP8vI!Cu3\CVݷ.У&%B]ϓ'>‚^ &sFt':z\͵srKO̺o(J|m=I!Jt.e6 n"V'Gq*OR{8O`̚AYrVD0EW1lL'KVT,IJDlεQNx3etr 8z ;I9kyW++mC\+iy63b6 = ]졯{xlPǽ l+Kz|,G^c ԟ2.j8$hF$\8! d)/de[ o r! mp Ű\2PfŸ4,*8F|Y_WmdL|;+fVll]Wcb$*F/jdZ%̄j,*eHFoTl֙.6ƃ<@;zB~tPV A>/zMY@i.[>wW/ҳ+QȾ: 3𨟿$r bj`Dz0Tq_~0=T$r ޳7 }?@Li eb % :{&22JG{j:&_Q:>/` 5uP]̰q>`}ì֊*Hm#PjV;?M2/&~N6fXHJctFCMʻ,n(ZRD^H3_hI(NY3sa^=nq0FphOLZIL&5Rpv]3S+7a/~Mg%S?Q]);"J^(SJȺT0V HH}<ϗ4Mg@Z/:.{,n5ܘU ?4\0Pb{2# G::6 >[dbAN;zv#&]zU>ص> '^ HDJ~F`7 Ҫ!gC?ʏ׺B7ǭFLZ Go`2*NZ[*&O4J_3֢pؖp]cF+ ajƼcuXameđMAl]5v]2I?T6WTa!+kY7lH "|~1-fv֫̀.b9(&#> stream xڍxTT6Rn[A$aaARJA:$QR@ZZAB) }}9oZ{s]s]{fmN6cA%=T@ d]cK @D&04 ꁂ!2P*"]O8 "HȈHʀ@($7!`p8U0'g4߷(A=`0n00FB`P?RqFen(!< C;FP A&D 8P9ho0„x":`Cu6W?ѿ!G } xc[J3P;%(+ f*H77("՟* 컯uE a_c8x "`H\Dtc,+#uO8/z1*Ebo9/B`nB1jPB8a-(r[t/; :X0z`@aDqP,"S C; H s,FjG{Y '߹R37ҡ6ryƪof~}[lV/<*|oʨo>X0,Qu,[̈́_ڢé_Bygـ;ӑ Fvg2]]wpI/9:%TYb^͡XZ)Ƕװ42U7$9iaqEScm  Uw'w6֔Fvf/^,DU}lM?SJ#%p1|uyU_nG)\.x+,>RI8Vlx.^oMGqx|dM!OKxj %fÛf/LrZ0ѰJi^(vieM$~%,GTX2Y'J`4yVAe-7*590X09FzsG -7N$ѫ:pD}>ZViC7>V-n u+OfхLgrQ^=exFo=6C3WLggdKoulxͳJR6i&2ͭ). {"2Fs4T9CKٶG%FJ 8>hw3^Vwun&fעXLȅnwtn#j]2J $w~m\>TLނ'2Qߙy=;[ʁ ۮ K+F{<36 l˫nXcd0 ?ԄQ$,zݤ<X\ڗ|'Yw`wN攅v=R`Ҹɮ!H\d ߺIP.el*fF̗jd#9߲Gw v#@)O7}oZ}){ѪXn }[703h9V\&jx0ߢ Ӽ*2 A<2k|V$:vay.FҳkJ'&zB9@,?Bz`ݔ~ǛR%?]|MBz?e2<({2̐tt0-&Q*A}mIː,|{ұ3Z .{ڧT>.mBx"uϿjUu ህ5"'Gw&,;W𠂟EIc $Cboe8D~)FƧ[TsQ'sb{lÚVP{hh H*_}{. ilLTXn=YÓ?/H1kNBv _7_dz㣒},pF~\dRUz ]PZU&}PUGWe smNi[-zZBӷRnR{^WU~9Ca !QL1(WBkצ`G #hMt28EşI;[ͷb݃dp"/!btFÌIG*EoV ݃mUXU N޻/˦9X𾉛:N<0 < ?#`ЋʖR1])XN\K8Pdڦyf mar&PQ:(w-[JMj1~7٨XWpGi*Hl͐f[!ǡZQmckj+z-Ytw<嬭JU\yY`X͢1[tfDrrXޭ=8^Ԓ+;p 7}b)+~FZf]R?f(Toisޙ q;ZIm}E5L0BoȸIk^Zѹ-Z;EJ&2C\ajŧqSzʁzrI_9)s9js ;b^rkJtҝ,N>@M^Ƭ|Yׇ<;D] )ɻ P,= 5m5x?rmofS^4m#jj'y0\;|QLY?6^wn_0qFWsv).$'Ĕ(/RK01n뾬 ' MgOV-5YER5[l,'HpMT]82cTp?h6XTkP;]8-О7pnxhՂ5lBphB"ϼn&{=\f2atUBIq t3ΩƳdI7_{}j#CUpڐt< i 1`pIdا~N'Xe_xo7^3NK9AnXp:PH~t8}xjRn7 j{y/yzu{ݑ q"j5//Y$cLQf+|7?Ī_jx8Ḧ Kh!x^rc^*?cO ,l} 2^c=foƜ|cPCB#.L[~pnuP͓ IvnPdGfPp(b^mV(H܊➊M2*\T`|9`gjDnJ4i1WUlY=2?H_xH4 .}bj ?p:!RߔQA'AH]DUܬJ>TKʇ_UtbXr=g)%cZ|NoIJ಄##'κ%}m@#ͯ&YG+o}֚'pc y~\2鵣WN)1yc '6 )bߺo5y"q8^h ,ǃ{Kt3]h4p_Ghpk䟝7pcJ wlwDLF3TYG1-QX̩M.m *l>{kN3 9Q\Z1=@>q|"lVRQ^d?q`pȊfZ'ƹ;ޒw).J#gf},jT-gD36F=$&a ,O: ߣL KlX|㝷Ǽ0R&\_|`#ܻv"Z æ,=1nqӃҠzGYwvÎ9W ތnz /veə-+Zt*W*8uynUr<3:sRtBMzru.j)Ͳvd^9o.֚XAfB1.q+Ux1h/O$Z{MS*oҏ|>ZxBޭͪ*1Iڱ,kj'nmV2%1j5Zfk^D~MZ/F@ o\OT/Έg8)}(w\0jC"vWSV ߯z5e!w|%+l\> m+":.uznĞt?@&$GfY*=L : QrF2[7 N&:s*9~Z3殿ىv(w%~zD,-;6>ǻ%n4x𲒝^ɓ(S ,~߷P*wH@]Z5æ}sƓ:c8eK)ŀESJuaL:LtBNIK-r2hXftAtE~H$ju ;Yyۓ0I AZ] U\+ǩ>JRZg5>PG kǤ *\Z%65҉?GLX?oNמxTy9Am8 .Pؖly~aZʹ^0W@:W=cnz]kJQ~a+|; ©yA|nLy޷A8EWz:ʣi1ʏ=.8W{Fo|Rٳ*b"+6 'J2DDcD& ^|2^/9kΤ\ Hd:2PJx_]k^lv&\{2N< flέ/RssOS'd=/xHp#,UhN4.jk걀h &hk+9Va|rG_Cy TP G8u Aq "--SY&n{CSOیVw5* h,1Ehnp endstream endobj 152 0 obj << /Length1 1667 /Length2 10965 /Length3 0 /Length 12043 /Filter /FlateDecode >> stream xڍP cŵx\Kpww  HBҢ@nݭ{q|Mf,_{=kτFS畔,_qqp dt8<ܘ ?rL}+ ɂOj0(@psr " Cje srŸ`dp r@,APn v|h r,!``Ý@+F`w G߭q`2tm!)t`p $pXO.nP+ );@GIe;pqp7@tYZ@P/` q4U9pvj!rA@OKi@Oݟ qGaYj%stCᮘ' q[>ݻCaP k6ܜzPXIo'?20)-;?z9Tr!~ ~j?`ߊE\\+%`@1$[|O&O A1s@CCi [RZ yx <7&wUZBtO)o0 ,{b.э98-?O,#+oEn2у!^[<1 j]_S_9_ RP'FKqx4!pKۿX\}s@0W/̓'=-+D?U߼rPK0f>\O[i r<`1X~AP_H/UA?O_$ jx@"(ГсA^_ >U/@Sdؿ 7/_oSnyK7gyo ĜYU7^IQx>8G7ؐ#w >Ɏjy|c! oJ0lU3kuvb7{nܿTZZ^@lH{=%YHٝO6'vDJ~1s`# GG `#7I5HKO4+ѻJĿ߹N[+`GP8nb> gh#xuPGN$]icTt#ZIۦNg+Yf WO 5S?"fusy 1:g0+8ř&hLsYb D@إ^k!|Fv0[ 4v)b1ERP*A2oLq=C Yw@BXf{r*Y&<,P?iê9cbEyf|+z~r 1R)|~l^BLhSKE>ao%"uZ* :+/*!'QYj}CXFF8-,/pA>0lmvE#UzvEfG9ݐw4k㽅/pƱk7eNЪPgSO. 3!@xmU9j׏LEF7ˑ0|FM! +cM3:t9CW.RjmCW)u-Cɴc 1Kl2(RtGF"2(2T6?y,O>ܿKQ/5ڎA]L<+!v~G诿ntb\Zꯚg}?f͋NE5вB$ "ʲ4=_2|@ȑ%q<x>s6B ??pN w{ 3~w彙ζ}1l=\RD+Pg|["/HZEf֕خfa4[y,^qc_'LmOvnsn9>\$'yeAjΓ0$”v+._tƵ!U6 ^KGByu5qlvoSs~@A[vG-eC"0Ȕ'}sԂ^1'1](͡A~@1ٵV~zPy0,7$T5>h@5u>~u#?;0`Iqhu':;7wVo@}9ޕu n:(9 QqY-W&z/PK-evƻdF>^2D+VܹyՉmU'P<>Lf|/a_Z2?_i]M;%%y4Ae&޺\Na_*A8^hFdM͊㑑RVA۝A%PeO?n9 zg݅a<}H{Gtf?EbQp.?#-8}@N 5ΐkJģj@1m>+q=0 DUj "b;ۃq9cQ҅SE-k}>YY6^Nw)h76[}Q|3]<ս{sKo!#ӪqrfLW3WoIL/ 1j%NsiNR3b=iKӄ*R'~s.kyUW#yPKʣf yX\N& REL 9PRpQLBk/Ucl.MKG T/3Ս֮+&x[=4MKPA{JCv<__«"L)ܚ&WƝ2w3+ىQiL]O!dr#CE- ^7jc99 ?qMD["~'7Ej)mU^jU sH z9+uO琈Gte}՜qd/CH`aǷ]㊙jdHu~ V"#="{~ 3}fRXXPr;/Z[h㷙?CńnMÀ!L[XEY iaᰚۈ՗ x,U` mSðwi*lp;$+=i*Y'o/!e!ܳ}bt9 ׷R.Z';@9Hۅ]L(3iz-fQ۔[H d t-r#Y+e1ȸ|iLuồx7o+DSjbP*P.?!PeԴ%zRc  ο^>}Oȷּ\r,9M`o9|z蓓ᛧ^kۄ]Fv/KH\pOJP5p[Vӯы-.!0^QUbi$IϷøɌJqFFoJ%4ⴋ2\&T~6"x}_vv:XZvÏL73-YPr{Aq(p`MXڐ)zC./[ێssF85[h3ї9.^ģwò]ootE8K1 Ƶ9=i%o' HsY4 ~nk؍բ LN}9qo.}sJ&Dl+{S-kȝ01`@J!OaǤ&*3]d)hM^X/.Q}V~^jQi1_~M<11=sP./MC7-)OD5S/B#X~==YZ]K3+QI3ŒcU`a>oQR5I9lzdضݡ:yjMv,^b5?EZ+rSRFӽYR~$K1xffC/(w%["虞 tG"՞ǭTMw5GNPv/vJ)!<~.Otҝ C7 &z ܃n"EXQ>=+=Bx.=2V47QRԋ{\e|סqҌB<=$9_Ėm&+¯mH)_O oOHT:m ^4huH-{nx=ήٟsz@h&WȻ)u&2^Tsk4Hd{1.tV7]WUb/({^ڇ9I=~Iv/~W] u 7mTTߛ@!>7V:\pXxȘEyXi߷PnA6%>#Ew…&=ڞOA+Qdm Ϟ󞦆,.v^N㏅2 -ݗ]06T:~gZ+/nVp=kZ"ug9jG!ր@w$^+l6%D15Ga`cz=I1yo9Y([5E {md04PFq+IoPB[? rmT{ 1m*Mw(=-$+4°4ι|؊vIE%MA9dfT\)-LѥIN[gy!^o?RT{r,8Z"?/v>"RN(`Β0, i3YS)kYrgPrhm!pEA0BOWwK_Lr1@ 8燪[k⬘l,! 3=~<8Y@0WS (4.b YWRwIeǺmj^ ^`[62ۨEO0\fX _({ UL;i$~-z`ڞd%V*h鹚!2X2 _NXT'd~FkXcFޞu]tRG^ %dUjZ˓]~X$1,#Z]S{c83:j?R1:M^J%38N=D;X,u}RJb-wv1) 8*T6eQ;?0>+'Gf:ş@Wq|WٲsN]Xxi B?v\HV4RBk5[$G N_&2.3D^l$[+J3R <(,L}(?ɻn)H iu>#Ypj^\&SǾ0XszmtcUVA.5n1yC51bע;f/hᅩÃN>̞zE/0^Ky$EI׳E"zU2< A}]EqEߎeWt7/ 4NhVWvǠԌ֡AN?yԄxO6İ,:B YFo( ުoZV ecF5ѷU304`oa5.ڜԘrȦIpDr$tl}?ܐ*`#Pn#=ϕ=ir}3Jz@%bWLk#,rཐ(PZVc72;ɟN&Cl]6RUƸe>Ⱡ8,TM|f[aZՖاftWLJDvu!G|_x-Z9X V=&lnfBÈ0h{̂F:H_ВF[ysu0"fWFCOJL!X3%QStq7ϻF aOA'K7~ASi@OhpKHddiqOXB(d uP uaѡg>e.+c#\F چFLP*\7sTwȝ"fHxɀE!w/hStPnʕLqN+.N{0p"@ʏ] VW69,7fy"q Ulq5pe/ŒcN &R?~LK!{{ y,w+֚PK÷`44RpѠI~8B&\__b?'`Q-÷tW+b)hOEJ=HKMjlBR2.41>81Pb7kY.0tQ R[QRh]F K.⼲-b>5&qG͉ZQBhMZ__eo)ߔ[e󓂫ck0@N \HT oJzKn}s]~ɜK{u;Q1K r?:jdnĉ!0xlE^]׿tsNoxUjV0 ΢2GWeyYa p'Kճsv|^IRrvAG\oC Ud)W\5{ejH U_ x|苫Nd;v*Ev&z~@Wdj-GMY0cAIS&h@?tq |xij_htѵDbCw~KvRh5 J`Hv^lQ%d{_Up%A0WWp!ke1➝4*Z`S~O $v `[%;FW5u{-6a5U1pD4̥ggZ'3}O_H^Ap$u`LJWZ/\|N]<{&=4-.P,Qyڳ» QGNJ+^XM#r^G{%c6U"P8WEҹneMsHfWVzA &D5t}xY.Ks7.&e3Kf!D`]T-">=GNܛuEKT&Pl/(|nՃ@^ EjҾ&s ^!ư#ٯc!w4PxNXg/;qͯ`ِYz:i^( +]ϫhɽL'+xg~aPzO9 </ tRoWqfmU ʽd͈`]M_[ڼ]I=v}H;s P)m^`+A3}k3FIg:B(QJ_ovtw xY:yJgI\cΘaDQnW=Nh=F,o-XMi7$jtSAX6`YjEo_AUY,p<"D}y|{6G5d/)cޓ9ï_%rpLdu*k&B;!91_[BuR -<=j(EKŲpx%Xff/:FKV]kL<ѴOс+fATTD ۯӓ$J>ON:b^Ӂ6씙+qIY!̗quq%FX6L0D'u4ֹkbf9cj@Жl_g3EFSWtN10K+•w[zs_3Cy[ 34^x킇x<#e5fԆ9jBMΜ-6|\4Jn akFcoo- r6>5HPb Tbwڠ/]"XJa\r{曘W"rX3WEC |d"/+׻̱r*tmFpu@rS(*h-1TWd5t.pe'@ՠfG<=&|~/|]îqŪMpֆR,Kvy?0hfCqp׌r6_fǫyPߦDX ;-wKQ2pE}BF̿-Mr[RϘwUӴBǚMٻM&*|9C&g/4⓭3ձ?~ZF3'׷S}+g&i1SBR]:eHu ZX\hGr,wy=HcdOª5`]g>[Vfo_UfUY\f,~XKYUID!l?'9dadW&We` :V)H'k{S&cGn7j귍i}ug<ؚDuge|ωÿŰJy;yR8t}NDgHc_X59ҰN[Ȓ)Ű"wg'Hui j] ; v/*!kwDذf7}i1Knm['tovظʽPB[΋"YG(:GB;: R^Q%ruRrosV A?Eћd8LEJ|2־yb;g8\;Eve>Mm*iye8k{曗/o/>)U-fs"sDfEuA<[Kx{yE)3a.A MO{5|54v|ɯU+DpsXlyo򰍒ѓ1q '`9ܛ<2;GrݙB`#qݥ: &XKp2`f+ğ$^+ ȼ!S8]\n5x}wrP)ŖwzD&|cneY~hgKPjۆ*9mA0y!a'OQ&fSg58bݶw_d)@\@0ߍqWJ>'(NVg5$g;!f:RWoE`gs.0kgsFnPrQA\sWgaBpzQG M{&n~_z}«C(rWd)T&JBbg]$Y|#>#f-K%.ei;}2P̥eﺲԢod.E -έ SAc vQ 7 Bg<o %jdIc݋$_ЪV6f p|-I\%D#"`˼*d4pW`(3ZKdyX~A6_B\sD endstream endobj 154 0 obj << /Length1 1568 /Length2 8450 /Length3 0 /Length 9484 /Filter /FlateDecode >> stream xڍTk6LtH C7HKJ*!9 0 H4RR !oZ3ϵ{A[GfVA]yyM}U~(  `C\˱Y */ 8Ah` ~ ~Q  mK-!M^ F`([;ׇ<?A~qqQ?rN`8d hZځ2,z0_!إ\]%<<0_(Px! ?Y9B`myGd [@?TJP ,pK/l>[i >^(У/}"b>ߢ?(O?HY| R|v>ȿCPN@~ ///(s|_cw} g` j9j#Bx'gX/6(ݷtO>OmF] jp0$:}}%A6_ׂncjXf&nl!%;lqdtƎkce!&[>/.HL& .JH\Fkɩ6Ufɓ;i=k ȐoiԻxg2۝"TcIN%7Ag-!V!=F]8^D] 7AOŸRL-Fr8Ϥ'ټk&r5vO!Tae4!v 8.4hk ";e*NXa]Ad?D8^W)dErm'rM$ޢO,;r|'qW^݈$rHUSЛKEMܶY|[us%I' syj̻r F]EumTD⏌ jrM @͉g3 hK<D0<+TBvU^RRaLŕvIgae3vN@ZW07{$4 =݁o.[TGB%דi ^3k\cbK3Pbxi6GUV-HWlRJL%ڧ5EEKLa5ŽQ>Zp)uL:aY%YŔFj͉jMψo+/ط 4I,gHb1_1ox.uO; 4=lPNXl/ Ԕ[4!'xRMu뒈-s69<9@Vf*;"X?KP+ sT/c|^ʏSRnDwwD`^hJ˼! +'~5ۯdL/o@B2֠i7a3*)mQ/iI$&;E,gu&l ,;҆!P5 [ {`QGK-D(c?FD@p$ޮ)]Uj()~B6 aS 5VIfDu/o:OP8Iq>Aa"U{W.F5k"ѹ7t%r\) kGVP_G¾QS\UO…["[l•QsتbXDe](k*b}$t~ezx@Sジw4Ͼ)χ)$2Er(;i2`qYmײu9r*o֌I}ږ?Aoo{](uŅVNAkP~ N٧.^'./zMvHe>PިI^i*_Sĸ |^w_"8(R~'ǸvãSϪuq(UN8m0:(_=$q5*Cr )IowzIkrњ^ȋ|4N[IYԾ41aPOzDӉٶHа5QNg VV)..N{,I>mzf~6e4)AXͨH`(|yiߣ"j=&U5ݕmb@ޝovRr!nάH:͟{O:$S ګčKi} B Ʌ";P<5x7bRoBHH{I,M* )$@P49~u_LW,ZzHlWme缧kXsEЇ٩ ==V"T]8 ~IH[@nbf);t}"(j,=XJy;6T"mӢ`ſniԶ8F##dߐNfMmaG~ȪC!s =ߑYj,J?+6{ŏr#ef g֟]"yS TYH 67ew >fB0 zOpXy!3y[ NiR40A*-PE6'IkK"BlɆγH }&| 'oNCKS/gi* ]<_{~}_K5TW%95zyPmT˗bɿ/`eu/5eG9OՑ+"+N xӂoYAC2q#˴Θ\I9[c,o ^+ͼhk[ oQ4N28 sc["7ydp8k+HA*A"t'aeϸ)&>5|%CL88> aGL:>Uo hx|qi H ͢>Ή&To0(ȭt®u^XrR?EZA8}pNNʝXW#7ףfy1O'cd6Җ/}d(BKi6YE'1N|[Y^}6PȿMOpt1k/=\};ʑ5XFGi)?aȆ^^eK [vՁ3&]( }v\o譿^qqU#''-HVYMKG2 ?m3 ^9;-{1ajkY -yi3NvK=ae#rup[Vڠp[}ejd_Iofn^IhyǍNr04 5G D}aز.ܷg;/odeToS^ꢖ~{'v}F"[zȪk{@z 1|JRJulu>WGƷ |g_сV3FnďqW=svɌ̅X&9eݬ}Y|;L:ڳnhH2Hgu]4 \9Pz_yQ ZUZoqAVw-* 3,KRqŨ^9[8!"ϖhxh R:9E$XsH#@Ԣfo=awdž4Z{9 q95qX'jwfp,床#[~Z;/BmyCb^& ;wy6 d}fځ !}"NfCw ewGO'gU u2X*ZR5ou^;bQקJ1qa=1M*5frtgrK_ZNX[1T_s}͉`vʔx lB Ν`JXʋ2FA7/wj ggm^Z?:!{[)jWi}Md/`I y 6F\E{yXZq، &I~*Vtbo0G}LFJE.nuȢz{19X_,4 li U幣|xDzLh<}=쯈Q C-J& : PiIR)F?wݑ7tƪ$)>N[mx9;ODXGgSمM/yDIBǜśtӖKk׉k #ɍyOS+EyM]]\%.8MDCfY: }lx&c'WEvt^Q0$+޵O/7w߈d &tdT ED\h|6zjP[OȚݪ8S4vtTE A''mb>e 6py"xFڥyanX-\Гq1.!v߅ Sd鵃|S 1'CC1yhJwخCΞg?&{0Z HVM"ܣm>`V5m[KbA}}Zeגʄ"B"Os]8!Z8=G'.f)/RO4c^+-q_ dYUJ4uӚcvE>#|UCX*ôk{ BoL#3hsxJ 62x%7vMHiBfB!3>t3bNz<:s[N'AUooS_'_V1X2r=cӀƠ,$K|q(Ef-bByAvqd-F}$/}#yUd41yc3u|m,l,IXkk82"VHMU_N6 -g:"Ӕ'$:zyYzlPMW9EA?3 $n>HͲ}H"ZYYoB_ [#,W?Voǵ1U)^+#%ii:p'ɼZ髀u[l<$s eՒeї3qNU _Ԑ^_'X3ݾGB^Wë _ֻ\hjPF>`q+cT"szN| "!.Lr6L; ԅe|Q&aL/UH ~}\=M-j%Y7$Q'ywbyY3rmv8h0MlVџ!]C'53owf󶨍3q8)1)q5 :(cuCu& Z 0a0 xq\ZnJ81KTǑT*foA,wtT5$E:cP1PY3\qԬyIʜm [.I|i&@i*4kB%m)pVL⎕I=О_w.|JOfdkXɛMӼ|caw\ٵ2O%Y%qJF9|+Ta9ټ05;0p[ZyE)@ YYIeNA5XaB>T9l::LG! ,\%5﷮FFז:?EUL Q$w= { .ڥz'[*j$6ygK BѭF C[.~x9FVi\60$Ma*rʫ1!$ĸ#D R e 'Fi0|Jy$\?R&#zv63\SٱJ"Ki .DeCo@T V=#W)S Mft~oIn4,/ݲsʥK +vP8bXD4]=NEGg])X! q|7X{ b3-}ꔏtzcEѱ=֠Edd $X# }mڌJi]xOU0>; 跎N n Dܕpe Ӫu]]%1n1= (f3K~_F+nF> jrZ 34ѿ Q﹩# $v5ltq9oHSKP'ekh R dj eZG\AKѩRb7' >UĈ/'Ha?M (9Nhk7/5p9$Ž߾:' 3}|cjKuVٝ|(䎌K"ĺ'Sy;muib?cbz Mgg`ses6ۦGY⸧٪iڔ|3rZq؟jNcgő>-PHr{x84)OrRqV3OtwwƜ_eneG6'r"_QOt )6WiUW2XVl֒Al.?%EweFû^}p`߲|<%5v0_A/sK܆|f]J041ݏe6fq"!yrV^Wq Fy5*ן(ȴmNK.[x/Aa}I'NV0DB[ar.ѻbKPUjtΰK^˗x\g{ rý7+sSlA33)W$$ommȖQˠN/() 4) Ney9m/zz\RѸ|c^d)r1#|vWOlo)%(mAe_Ɍew^ endstream endobj 156 0 obj << /Length1 2431 /Length2 17195 /Length3 0 /Length 18615 /Filter /FlateDecode >> stream xڌP |pw'-w;9J꽢 f{j"f&@I{WFV&>:+ R9'=?,ĜƮ +P f `errXXxc7v2(0d.b^V |ИXyyvL Ʈ@;-@ ?!h-]]=<<\-iVU hdߥ1!P-\Ps0w0v@[+S dJ@ˀXX`ne (I3z224uq[ N )0U\L]]\l06K؛9]]Oh ?25쭜܀2,Nv6 4d@/1?GG9 9puvS`fe 0ZX#Al e+察~M󿏘YMUSTM%W)* a08ٹ\\ll,)coW.'aOͿ׃@s s=NS/+ߌ$lmGolgeo ܺv@ TUY_1hD-lH+I+O߳/_{fkeTvpf0hLm@ h$VAf-' 4IlV6=b3+`בrqE qE n`xE,f?, v@| O) bP8Z?SnM PE&Ʀ6@;aG_ Ph"NP0S[G_l_ꌙ?,@YY/hZc?bvp'埬Ar$uT?RBq\AC= ? gQwsfsBp~tT?$Nrl@ GXA/tG8A.]l],ڟDAW&3gn&bfNL? 'I7_s9Z~@O)ꒃ놐ou"鴌>]n()")ch{4wk$>MI*/ T;VfqgOE Յ|_|?@R;(b>z Jy6UO-r!T@Y` ƕu~#oD6,ۗE*u6^< <DwsT>G>e%1˹,L`ۓC$=|2,ΫR~AZHjFt (=<$ J F"`|~Biɝ7z#bon;a):-*9sx8/I{ lM)4h%6M8@ɈbH+^{$]7<R?|3(x1C'ox>h=*.J!;1M+qp&yknu6%Z~! Fȩx~ywԸwIu:}:+^㞣1 #AT `YTx ;C{ _c&I7b N=Z<qkҰ&61}X{}+s>0v[2=@m-@elPinFo^Io^V4-fK}QPxQRFbe3>Fz*L>_Cc.ց֝IJ[%ɷ"ΑNxQo%? 8Ub9XL39tϐ=R3ssؾ~O]+ifn"lQ@9)4+/,8Kpi9.S%xs#ڂYZi@UV6z k>S+4]QtZ< ufY|YvdWﭛsxE B9)97%N8!٤/1tl%ym=•zu'sǴL;WA'l]0KXGH'MdóLD6_*(8N?.y)38q,x᷺&Q")[l@|S;PfQ_O6L?HV.9v$c@}K)ɃA<]}NCWL098s3XNda>xQb)I#vuM'R$r(~K~$u8J{HϖBě/FK{A˛2bLjmJm|23ghuJ#3BrC|LbgVSr=C8< 9#W;~Ge2-5۵60tbHg(% WTur"n_RHgr` pO7ؕu8ьz(vFz#?뢰Gd$@GmCŸ(3VJ㞧{E:gNa,3+U۰ _ܲ9ab@=Ic#ϻJo#EL֡\XQ.-76{ۧVq }-%&Ə# !gſ8[uޝG|:q4ty%*j~%p 99uO1?FMS 6%Yպfr42%4Á\,9opcJo?(-PGoqkL VQB`۷)fLdhn W@*OWt}_CFBF. B"EqP7L2y#->,ܪ(B#l\L'0?$N ^5%U(Rܻu%Hzj𕢛^8,gp.PwS9rhۼ#jh(SbaJºEhv\fcg>.FXu;*x[HdQ=Ѽ<R3[z;ElzhM`峒 `@oOGq%'l{HRzgBۖigH֌ϡp!gJ!\wn&ᣇϹ?2-SVnF HmZ A88sQe'n{f#zہπׂ 4?j۔}C%vnfx(o/F3]$ܲsK׏!Mj9{y>x&_MmMVX K dIC?EVP3|%.;c?+> Hk}Ƒ6ȐcUmN\צuPLךAq 6+]F'1m6t'nҬn/C,a rCl>v_MYiy1in3'0ڍj\>\JXwb:2It]k^E=aXMTF& } J݄q*"'Z;_bT1!Գ8L|O^zLDB2k-(q0QC,\wA44%wc_XȀSI1O*yId њ&n@oݦfsC$b >ƴpG<Ӽ &4Ţ_AF Ae22V1Pd5{N=˂W\8]%ӂ>&*~ |X3*`C˯J߳ӇlL[12Pd6r)E==fc,{va(V o̵uM,: L >R,RۨHPvزtA`CaIOr^\́FCǢ {bbojU%s9'Au}%uX]mf30šd2jETJXz >qȶI%8g5!=Oco./L\vuljʲc4_-W^J(TZ6k!weL+K?*6 ,'z~Vj?w) c==SaI}e< S|ZYgm8KSGg6x'a>4edSxV,|:k~_ X~@\,تIG#66{xh<R9 0ؗE&#V:&3Y)F >k[\! C 1|?22>F5Y1{´{V{!b4lMgoRTIʽmMT223OhP'u'ςKPsM25^ʿVCwxy8g f7X I ''e1GJۥ™>556vێ*Z^sReyO;>5(l6a*)ۻ9 M"nWa>.+k_p"2>~ åc/ MgW"ikbgnStϕMQe=ѯ-_FQudg$P<pEy_\E5=,ӷ:%R?JSR辒0&O1jwb`zVW LctK)Ep$q^㌴}Z"^7sYzqZw#L@u[DnǸVh۫aEi9?}/]O/~-۷xuƿ6o%\I{J&O+b`4;2:F*aP c\(쏲P_ݱg{早_rw~J *weΎ G|1F*bNV&K6灡6ُa\T^9o(8EKd#M<+sK1D^MOkg]' yU؏h'ԇΙi =f\٢Jy>?]DZz S3T /MWe*$Ip=-G)UePOBOch3Qqs0~"M*^aAΣy0XDyBx|a{L? p}Hsr`v!޻UW3]!ūi@R>ahoBUjkrRɥڱW_n˽+=%Wp?^L2_:SŷsLnQ4PZ:SDRj.3y<{4!jJ^2/ݕC|UJL"^yju#vggnXlpZ`:%8M.beTRϯ3$]t^SZP\Z,=3_ ]\ Y< kz1詌򃝫] DJ7I鸵?ڒسb7.f~Q?z}:cU:YD\>PyJ½K3 ؆0$7_90(1J%7W߭b#RXPq>g罹wSw(> oߪ1!zCT^`4?*+~PE`NWp@guhJy9@"BUsa̬74&%8v6aP,;(  ._$뇅`Ѓd/Hh:=_"j.\I2dA 7bNC9T҅"cg݃֗o-H޲ gVU]0.?QN 䐙 JLFߓFӝ~_P) T < gn7:,= 7t%OG\ jžR7;8.=-/:2ʸMW5Yvx%XOJV_|eю.$Z%XTD^!S֎T7dW+P! Ӧ69F6Ey밒PKf}p,ckw]D.G FB7ڏO)H7(ПMto9/}pB?Qc M@+BbxO-bʻv\iH9J%@Ja\Pe A4"=X|%H8GVT;98xTU,2$1UTIzZPs}]~z bYRQ cTC+ V6 4v*8ؔ)<.fW |⭘&(Ղ "W]Mg&䑇5Si ˲_c$s{w'X?^#!(< EfmE6g{*LG'5OWV Ez ¶e"UیQ0;#KDUgRXLf&JI2i#fY5$[/FEahx8D e逆o؃ ߚ߯l];aOY^GWZ ښMe4\# hboJ冔(>{dC}ߗyg.Q^q}(_C| $RԤX#Pp؁bqA,fޢA0ѓ6Up% p͞\C7͚%֢,N)!Z&R ܓeZ S$s[ZfrD^X3'<=W;K$p/ˌ\nVYgjgIF>#Mm-!8/]o/d´NS1 sw3h1.]OQiH馇y{ʍTUh}/_mXo#(9z,ZMK<* )EUOx:pssiG,KZyTⰈ\y%Я AbZax^%6,|@b|6À:^8u,S'{c}fO=!()+.bo~YA#~tE.nI﵆?.P|:OMe}5J\K#?+B0cE]7i!h;%A` VqXpz;b={_|7ɢ^EM/==:x)=C!Fm=H G=9X쇐!bmRDtKl=>O|Y;[ B0٢]r}d+&XH8B<{3Y6\"V~wMbzoAT캪#c"y=R&gUycėV̅p6m$fzԪ P-W+VtV8yU~ uJ@3|bL1*wɭ9E'{%E5s4:gA]I . 1H&A7M nT6vV X WT[2l *AIY[sM჉e&۞ZF{..6v:pkxLqí"Dn}pJQoQ,M vPSaRUJ}TȞO%yHұ L'ݒ9Tk[*\&P?i3n(YDAbRclGWcB]dng]V[D6lk x&Qx6Ý ~H"z Pn9qtj^^T "c 1m=-:rptr+ a{4S~2|/͂k/A e9aOe Re)&66^8$eg4!f-;|(,3R$mmBwԌxԺL>BYe'MV '_+;@! *֢P"ֺ0̾k.2+3=z=B*Gmh]6>_A_u[O :~ME0'*@?k^jLx{ MQqs1JVk)-T'-`G>p9mA)RA9+9:J1-ݤm{dIC@o` =ʪjooeW2,z݊P#FkV;$SLKi} n;ENM7 lD/J򻻧Xc|P&in|d1Q8dx0߱6nM!JK]2|ȮJ`ipȷ>faeө|su2̀%TK޹l_f]'K9 fLa\\sBm3gpcOȄe,2\q!ft*Τ QU,v`(ʔ뻲XT~F(2?nURe=A~Nt}_iVt5N=Ҝ1B8.2lb }=t`҆;$+՚F!`)7 '6FX:spd"Owȣ)z)B1Dp𑟜,ʰ:AA}~}vQ \^—&F,R: |w\ۧ/X-. s3Ș]~}^r ڥG#S+Zd%Ll\U3h"K68E֨Qa,p (ysd&C8an ]4,*)WPaYhS;5mz Z͟Y&&%g٦l'VG.d-eɈ۷3H,nŖfAi hl+/=>t 8ΐ!t#;H86;RMoJN!yG]C[&<1&R_ZyK;ęx $pco54#LXQG*{VIu'Umr⻡:?ڼ|ɎLPO1sQ&e t*[." fZ3"\ V}t3|ViM Ðǻtz,7ha(D&F拕4ӇPo&?ahe~ɰ+C ` |̈́VؖY PR:nssr"[)-C%}~W`CI{DAF&LwZc)Ƕ647/.݅* ~;o`7%KU!H5TE|:<2Ra$N9쵓e>5ttC)YiDf0kY3_th4Ho˟%[:-VMNXJl6=$^0$ړ Y;WrIWt{#:QY IVs/^v\ :QPY`]*~2(y}w.+(,Z )օfaa^l{cV^KI6·"Hi䐱Z$A$&M=:>h>Wm1+TA,D=A:JŐZzqZ[xw;Bԉ|duus+ %#]CN6L#F΁2FTI\_{$-E=W5`]VEf:C2hX^krv 㦙ڤ~yci.> 7R àDg9ew?X/,ᜨbQE.z2p a J m(}YjVwvK$+ XɊdEHNŠ$dYj&~C|ORSD Q0Pevj߈س E˰mLud _Ro^TsY}җO/F?S2&xc/tXsb~GFɣ&#[֏iR+ě+^<&GIC2GW?w}|c5sP]C^1Us)9sָz/ҀDWoU%%ø1y|7Oĵ=jb=pqhfH.$#/]4S JG|+)DY%Iz6z:'ZҲ?'UKeѐzQ;!Hms B)}s!<y"+U8!(GX|'lFW8[%؅I!*sMaTe=4lSKC2 G)$y qU- !k΅Q+"VO- #X(prdcc1fe9 =]ŔVwX'f[PWZ,:g? ZI iy-b`*}m9H%D(% a߈B 2]? U%M_8I,ч,X,ܷZʣhy뤛F4DJ /J \&GWԑ1I`B𱔖`T8EqVζ'?%RN.+/!Rç=Z [.ͻοѓ} %^~$u BÎ6B*D׎*t1g vXCxn?a' Sl9} I0O[ι~\w~Y wٹ%{<-\c )7B؇>|X[ݧ9M׳O`C-wz}PS-R.~0r{uʄQЍRj4Sdksq9n*.AŞ6jLEs!dLSzVa)GqXv0H!N&ϵ^kH=;;<(d¿~ImHDAz|+癝W)Xe×0xF_7Dw r4#Iis)ʇIм*3.^ՖX3=sƄ7ᄔȚs=# b#dF\@%-UFڞ=)eS1 CL16tC$\m=%ZG滒 (Q|=qLaD"{&s P)q4^ےN3XNY6 SdBv("W }viC6DtCvوeMG6Hx1ʕf,]g>U|Gz(w.PA |w&@Y;>ohq2{G#Ŵ.(fJhKIЋp*ƎCN?MIeni]'AjEC*&tm8VLb~|Rq^ |RKxMvj>M[|ό 9WF IL J?5 ؘp&G䶡|ͪJ\@Q!}Pt͑9$"Sc$%n&fk2c*X )8/pM`RRiY6C#$5ӹ?ajCTOf[sT@v[TaMQ":~iݺ z V&i쨗(0&Zf̣w3br`a:?&>둣nN-,U< u;Ϝ& y<`] y5ͽ@N+"SڸVLʉ6`lw T^TS%@ץ2atk,AoĮ,ERȸp^qrA2Ue iƅgꆊ s?yc}zXD?)ߡ쓗k,s)39ߠ6P7B/|̰wK1Tɐ2Լ:>2QK} [=BJQTȟ椰 q}_)y{GdV[565 K+ne`/_(s4[+Y\qtwR˅\YϞx,WqoWxO>WzB[e] pk ^dCTBL5_9;=XrutFԴXyD!-kTny {Y]uKIw&`c_;i>wTPu1 YK`AY_ENgOqزfu>5!wL{ʧW]iՃm,iY%IE|˛+n8uF:0ʥJMVNǍzwHQ0;#L8l] /V>^敢0Ef|BCx5#DΝpǎƘϾ5E>ڟdw%|9їAGN-< _!rv2 \ǩidX!ssxPZsGHY0I 4]gU# ?%fW_ v5iWgX;]Cl&̢r17sb.GA wQAԙE5Ě_Lh~vޣ6$¼F\YXAav 17ZκϹ< Sp\K?xwwV 1aH#ɲ<%< pk%}!_KsVjg̓ͅl&"Fb zak!A @SS5Z½u[|M>tXz[|Ee-JԽ+,Vnw''wU endstream endobj 167 0 obj << /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.18)/Keywords() /CreationDate (D:20191029202348-04'00') /ModDate (D:20191029202348-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 145 0 obj << /Type /ObjStm /N 32 /First 264 /Length 1518 /Filter /FlateDecode >> stream xڭX[s8~W19%L3M$td;ypLm&H260غ~;O9.zP{dR~9. ,b[K8%M9b3N6r1 _]np$6aZ >]5kg\Aq`Gld>aA(m6^9E*T8!ANÇ i2ϻ2 h'iC>u?&fB<-Hv,~B9ωqI8dM5@A$j Q3>@N =0 "asH rX6K9`?oσ\ Nݲ.%ʔV(暲mU-Yeδ̹YS8 d= }AFQcnOP!7oP@a'st8 Eʟ L;},S$A.Sy1stt,L`4&*\A*]LW3Jư$X2GDʢ' bi*%X#'xdT#/}"?w2>J'U|G^)윗ޯ2aҽrLnwf٧4Bu}U[Ң|E[;sxh?W84u/ixsLt(E=FoVݜɗz`%X9Ӓ-0bbHJy}3lH;H E"i_җ[n9 ڊNFpzv֊mU[}CWQתT+iVSfyF;)r>FTOgx nN]'Ȥ趏tV"N(3[if8Q.Ub}4Áwno{S4Q62voJ[йN*WWx_<˷~ѷۯ^k::yG߼ p0Vq~>P;:WBo{Ce2󎤯ulV[p|턬;'W~3D%h&`"3<:N~}D|$>s N9⚖ٝDu}m+Uc<9PcW7VF:j)mmwQe_SHeWbϺŽ+F߾^XWwtQ7 [ ] /Length 438 /Filter /FlateDecode >> stream x%һNTQ3e0 "eDGQQEqxG;  mމ`Eb+P`|;bBB_4|k_>9Yff,n (I5 2k4TA5@-ˬћf7'"b#phw!+d߼l% <hA,W´ M_;d/OB?dk}pzWV|GFxw//PnU"ּK3z\2{0pSj*mS0 %%L?W9|><` aV1< Kz!-}RziM,{zAd)6*eS!O)ߟ=k=11 Ul`6"sn%ʓH endstream endobj startxref 218590 %%EOF DirichletMultinomial/inst/extdata/0000755000175400017540000000000013556117225020340 5ustar00biocbuildbiocbuildDirichletMultinomial/inst/extdata/TwinStudy.t0000644000175400017540000000105413556117225022477 0ustar00biocbuildbiocbuild0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 2 2 1 1 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 0 2 1 1 1 1 1 2 0 0 0 1 1 2 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 2 1 1 0 0 0 2 1 1 1 2 0 0 0 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 2 0 2 0 0 0 0 2 2 1 1 1 1 2 2 1 1 2 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 0 0 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 DirichletMultinomial/inst/extdata/Twins.csv0000644000175400017540000023527513556117225022177 0ustar00biocbuildbiocbuildTaxa,TS1.2,TS10.2,TS100.2,TS100,TS101.2,TS103.2,TS103,TS104,TS105.2,TS105,TS106.2,TS106,TS107.2,TS107,TS109.2,TS109,TS10,TS11.2,TS110.2,TS110,TS111.2,TS111,TS115.2,TS115,TS116.2,TS116,TS117.2,TS117,TS118.2,TS118,TS119.2,TS119,TS11,TS12.2,TS120.2,TS120,TS124.2,TS124,TS125.2,TS125,TS126.2,TS126,TS127.2,TS127,TS128.2,TS128,TS129.2,TS129,TS12,TS13.2,TS130.2,TS130,TS131.2,TS131,TS132.2,TS132,TS133.2,TS133,TS134.2,TS134,TS135.2,TS135,TS136.2,TS136,TS137.2,TS137,TS138.2,TS138,TS139.2,TS139,TS13,TS140.2,TS140,TS141.2,TS141,TS142.2,TS142,TS143.2,TS143,TS144.2,TS144,TS145.2,TS145,TS146.2,TS146,TS147.2,TS147,TS148,TS149,TS14,TS15.2,TS150,TS151.2,TS151,TS152.2,TS152,TS153,TS154.2,TS155.2,TS155,TS156.2,TS156,TS15,TS160.2,TS160,TS161,TS162.2,TS162,TS163.2,TS163,TS164.2,TS164,TS165.2,TS165,TS166.2,TS166,TS167.2,TS167,TS168.2,TS168,TS169.2,TS169,TS16,TS170.2,TS178.2,TS178,TS179.2,TS179,TS17,TS180,TS181.2,TS181,TS182.2,TS182,TS183.2,TS183,TS184,TS185.2,TS185,TS186,TS19.2,TS190,TS191,TS192,TS193.2,TS193,TS194.2,TS194,TS195.2,TS195,TS19,TS1,TS2.2,TS20.2,TS20,TS21.2,TS21,TS22,TS23,TS25.2,TS25,TS26.2,TS26,TS27.2,TS27,TS28,TS29,TS2,TS3.2,TS30.2,TS30,TS31.2,TS31,TS32.2,TS32,TS33.2,TS33,TS34,TS35,TS37.2,TS37,TS38.2,TS38,TS39.2,TS39,TS3,TS4.2,TS43,TS44,TS49.2,TS49,TS4,TS5.2,TS50.2,TS50,TS51.2,TS51,TS55.2,TS55,TS56.2,TS56,TS57.2,TS57,TS5,TS6.2,TS61.2,TS61,TS62.2,TS62,TS63.2,TS63,TS64.2,TS64,TS65.2,TS65,TS66.2,TS66,TS67.2,TS67,TS68.2,TS68,TS69.2,TS69,TS6,TS7.2,TS70.2,TS70,TS71.2,TS71,TS72,TS73,TS74.2,TS74,TS75.2,TS75,TS76.2,TS76,TS77,TS78.2,TS78,TS7,TS8.2,TS82.2,TS82,TS83.2,TS83,TS84.2,TS84,TS85.2,TS85,TS86.2,TS86,TS87.2,TS87,TS88.2,TS88,TS89.2,TS89,TS8,TS9.2,TS90.2,TS90,TS91.2,TS91,TS92.2,TS92,TS94.2,TS94,TS95.2,TS95,TS96.2,TS96,TS97.2,TS97,TS98.2,TS98,TS99.2,TS9 Acetanaerobacterium,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,4,0,0,2,0,3,1,4,0,0,0,0,0,2,0,0,3,0,1,6,0,1,2,4,1,2,0,0,0,2,0,0,0,0,1,0,0,0,0,0,0,1,1,0,2,0,1,3,0,0,0,0,6,1,0,0,0,1,1,0,0,1,1,6,1,5,4,1,0,2,0,2,0,2,2,0,4,4,1,0,2,0,2,1,8,0,0,2,0,0,0,0,3,0,0,6,0,1,0,0,0,0,0,1,3,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,2,1,0,4,0,0,3,1,3,0,0,0,1,0,0,6,2,5,2,0,7,1,1,4,0,1,1,12,8,0,1,1,8,0,3,0,0,1,0,0,2,0,2,2,0,1,0,0,0,1,0,0,11,0,0,0,0,0,0,4,1,1,0,0,0,0,0,1,3,0,1,1,6,0,0,3,0,0,0,1,1,1,2,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,4,1,0,0,0,0,0,7,1,0,1,0,0,0,0,1,1,0,2,0,0,0,0,0,0,1,0 Acetivibrio,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,3,0,4,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,3,0,0,1,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,2,0,4,1,0,7,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,5,0,0,0,0,0,2,0,0,1,0,0,4,37,2,2,4,0,0,0,1,4,0,0,0,0,0,0,3,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,3,1,0,0,1,0,0,0,0,2,0,0,0,0,1,0,0,0,0,0,9,0,0,0,0,0,2,0,0,0,0,0,1,0,4,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0 Acetobacterium,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Acidaminococcus,0,0,1,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,2,8,53,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,14,0,0,0,0,4,16,1,0,0,0,0,8,2,0,0,21,30,24,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,1,0,0,0,0,0,2,1,0,0,0,0,0,13,0,0,0,0,0,0,16,5,0,0,0,0,0,0,0,0,0,57,0,0,0,0,11,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,48,0,0,0,0,19,9,0,0,0,0,0,0,23,0,0,0,0,0,0,0,56,20,0,0,0,0,0,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,2,23,0,0,0,1,1,2,7,16,0,0,0,0,0,1,0,0,0,0,0,0,0,0,31,15,10,6,0,11,14,0 Actinobaculum,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Actinomyces,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,0,0,3,0,0,1,0,0,0,0,1,1,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Akkermansia,1,0,1,1,1,0,0,0,0,0,0,0,0,1,2,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,12,0,0,0,20,0,0,7,4,1,0,0,0,0,0,0,0,0,0,0,0,1,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,15,8,0,0,0,4,0,1,0,28,8,0,13,1,3,1,0,0,0,0,17,0,0,0,0,0,0,0,0,0,1,9,0,0,1,3,1,4,4,1,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,2,0,5,4,4,18,7,12,0,0,8,0,4,6,22,1,0,0,80,0,0,0,4,20,1,0,1,39,0,0,9,1,18,0,6,8,0,0,6,0,10,0,0,1,0,0,0,108,0,0,0,0,0,0,3,0,0,0,0,0,1,5,3,0,9,0,1,48,0,0,0,0,0,14,6,0,0,0,0,0,0,10,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,6,0,0,6,0,0,0,0,2,3,4,10,0,1,0,0,0,0,0,6 Alistipes,41,0,3,23,0,30,1,51,9,2,2,4,11,26,17,21,0,16,268,41,39,65,0,7,6,14,7,36,14,13,9,2,21,0,1,0,73,29,2,19,24,12,25,180,16,46,35,32,0,48,0,0,3,4,31,58,7,27,63,17,52,43,40,22,11,26,5,2,16,10,78,1,5,25,13,150,15,44,18,70,16,312,53,205,264,201,70,51,33,28,20,3,156,112,89,88,33,7,5,5,29,5,155,4,6,34,2,19,74,49,22,11,378,330,5,41,27,50,105,43,23,24,61,2,0,0,4,2,3,9,6,10,14,76,1,45,4,23,17,1,2,25,4,426,19,3,18,28,68,71,21,120,99,58,284,0,43,18,0,151,147,212,277,30,49,33,6,303,53,157,83,133,512,36,93,4,73,4,11,114,22,74,9,56,104,67,30,20,7,15,0,61,0,0,0,39,290,0,0,0,16,0,0,3,16,5,1,15,23,23,119,356,413,156,46,186,283,9,9,9,21,13,161,36,6,19,26,22,24,20,81,35,29,1,1,11,18,2,3,4,119,9,23,0,3,1,2,0,21,0,12,11,4,8,13,13,44,14,421,45,83,43,2,0,0,0,45,26,38,85,56,15,3,1,1,15,14,137 Allisonella,0,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,3,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,1,0,2,3,0,0,1,1,2,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,6,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,6,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Anaerobacter,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Anaerobiospirillum,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Anaerofilum,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,1,0 Anaerofustis,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Anaerosporobacter,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Anaerostipes,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,2,0,3,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,3,0,3,1,1,0,0,0,0,0,0,0,1,2,0,1,1,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,4,1,1,2,0,0,9,0,0,0,0,1,0,3,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Anaerotruncus,37,9,0,0,9,1,0,1,0,0,2,0,0,0,9,0,27,10,8,10,14,9,24,1,0,63,0,0,36,11,2,1,2,0,34,2,1,2,3,5,3,3,1,305,3,6,1,1,0,0,2,1,0,3,43,0,0,6,0,0,1,4,3,4,1,4,4,18,3,18,3,5,0,0,1,2,1,2,52,76,21,14,28,120,105,49,0,44,56,3,1,2,7,2,7,8,2,5,77,5,3,2,11,0,2,0,0,3,2,2,3,4,35,13,3,1,0,0,8,3,3,24,10,8,4,3,0,2,3,2,18,44,0,2,0,47,2,4,2,2,19,0,1,1,0,1,0,0,15,14,24,103,8,13,19,7,10,0,1,2,24,4,14,4,22,10,7,53,2,2,2,3,212,1,4,1,36,2,10,11,5,5,5,0,4,7,2,3,5,0,2,0,0,0,0,0,1013,0,0,7,0,1,0,0,1,3,0,3,0,3,1,9,4,10,3,4,1,1,0,9,0,0,12,0,0,0,4,2,0,1,14,14,3,2,0,10,30,0,0,0,4,0,0,0,0,0,6,1,1,2,1,5,5,40,1,2,7,0,16,0,4,24,10,2,0,0,3,1,0,111,9,0,0,0,0,8,4,1 Arthrobacter,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Asaccharobacter,0,0,0,0,0,0,0,1,0,0,1,1,1,1,0,0,0,0,2,1,1,5,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,5,3,0,0,0,0,0,0,1,4,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,19,8,0,0,2,0,35,7,1,3,1,0,5,0,0,0,0,2,0,1,1,0,0,0,0,0,4,0,1,0,0,5,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,3,0,0,0,0,3,0,1,0,2,0,2,2,0,0,2,0,1,0,0,2,1,0,2,0,0,1,0,0,0,1,5,0,0,0,0,0,0,0,3,2,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,1,0,1,2,0,0,0,0 Asticcacaulis,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Atopobium,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Bacteroides,194,227,56,555,34,552,124,415,792,60,453,275,112,292,375,709,434,613,367,99,338,342,7,32,21,224,493,359,185,754,509,517,707,254,130,3,759,507,20,726,192,33,204,356,308,1121,764,526,524,81,1110,900,606,632,913,540,895,336,314,128,655,609,154,45,86,476,280,137,338,20,1065,54,97,347,327,936,137,525,459,461,168,651,540,490,342,573,549,719,1775,97,24,29,450,387,264,479,566,219,277,279,171,352,340,29,42,256,1133,1427,513,307,584,628,403,174,22,723,59,87,435,198,193,244,1206,616,16,28,31,8,237,826,656,703,136,1482,692,1087,573,515,355,464,0,327,745,640,137,203,230,494,456,505,1075,886,268,217,620,301,1681,75,95,455,1708,547,4973,42,1103,427,44,1316,123,288,609,1562,2649,241,759,0,369,16,21,581,993,39,29,259,1529,844,772,424,42,281,256,2379,47,441,25,382,242,1194,464,0,1000,1,923,539,121,886,81,173,842,80,329,562,555,301,188,1227,372,366,122,259,698,461,808,835,47,218,253,448,532,285,945,42,170,278,234,332,857,0,539,95,864,30,59,28,565,232,12,15,563,306,304,484,27,89,641,919,610,361,1858,470,478,576,121,8,110,154,582,481,672,694,358,219,436,550,861,835,1404,2546 Barnesiella,21,0,0,5,0,5,1,0,0,0,0,0,0,0,9,6,0,0,13,15,5,26,0,0,0,0,0,0,1,0,0,0,0,0,2,1,1,1,0,1,61,5,30,60,4,8,0,3,0,23,0,0,0,0,0,0,0,0,0,0,0,0,9,10,1,6,0,0,4,3,58,5,0,3,0,0,0,2,6,0,0,1,0,44,47,0,0,9,9,1,0,0,0,0,0,0,32,7,9,3,0,0,9,0,2,0,0,0,14,9,0,0,15,23,0,0,0,0,0,0,19,3,0,0,0,0,0,0,0,0,0,0,3,17,0,27,0,12,17,0,0,7,0,0,2,0,0,0,15,10,17,71,0,18,53,0,0,0,0,0,0,0,0,12,26,0,0,1,2,21,17,0,0,22,46,4,36,0,0,5,1,19,1,42,52,1,17,13,2,0,0,37,0,0,0,20,79,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,59,13,39,23,3,2,5,3,4,0,2,0,8,13,1,0,0,0,4,4,0,0,4,1,0,0,0,2,10,0,0,0,0,1,1,0,0,3,10,0,4,4,6,12,8,72,0,23,43,0,0,0,0,0,0,0,0,13,3,0,0,0,0,0,0 Bifidobacterium,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,1,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,3,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,7,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,2,0,0,0,2,0,0,1,0,4,0,3,0,0,1,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,3,0,1,0,0,0,0,0,0,0,0,0,2,1,1,0,0,0,0,1,0,0,0,2,1,0,2,0,0,3,0,0,1,3,2,12,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,2,2,0,0,0,0,0,0,0 Brachyspira,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Bradyrhizobium,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Bulleidia,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Butyricicoccus,1,4,0,2,0,4,1,3,0,0,1,4,0,1,4,3,0,1,2,1,1,1,1,0,0,2,2,4,3,2,3,6,2,0,2,1,0,1,0,5,1,0,7,4,1,1,2,5,1,1,3,0,3,4,3,0,6,0,2,4,1,2,1,4,1,0,1,5,1,1,0,2,3,2,4,0,1,2,7,0,2,0,0,1,1,1,2,4,12,2,0,22,0,2,1,2,7,0,1,2,6,1,40,0,6,0,1,1,1,1,1,2,0,0,2,3,0,2,4,4,4,0,0,0,3,3,1,1,0,2,1,2,2,5,6,0,1,2,3,21,0,7,1,0,13,0,0,0,8,2,0,13,0,1,12,3,14,1,0,1,4,1,5,0,2,13,1,15,3,0,4,1,4,5,13,0,3,0,3,0,2,0,4,0,6,3,0,5,1,2,0,5,2,1,3,1,7,4,4,0,5,0,0,6,3,0,0,0,1,1,2,0,0,0,3,9,0,3,0,1,8,3,1,3,0,1,2,5,1,2,5,2,1,0,0,5,1,0,3,1,12,0,5,4,6,2,1,1,3,2,1,4,0,1,1,1,10,2,10,1,2,2,4,0,3,4,3,2,6,3,0,0,1,6,7,2,0,6 Butyricimonas,1,0,0,2,0,0,0,0,0,0,0,0,0,0,4,8,0,0,3,0,1,0,2,2,6,1,4,3,6,7,8,11,0,0,8,0,0,0,0,0,8,4,1,0,0,0,3,6,0,2,0,0,0,0,0,0,0,0,0,0,2,2,6,3,0,2,0,0,0,1,2,1,1,8,1,22,7,3,2,9,3,0,0,7,7,0,0,4,8,1,0,0,0,0,3,0,0,1,1,2,0,2,0,0,2,0,0,0,0,0,0,0,16,3,0,3,0,0,11,5,0,0,4,0,0,0,0,1,1,0,1,7,2,10,0,9,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,33,14,17,2,11,1,4,5,2,1,0,17,8,3,1,13,0,0,0,1,0,0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,0,0,0,0,0,0,0,11,8,0,0,1,0,0,0,7,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,11,3,0,0,0,0,1,0,0,0,0,1,0,0,0,0,10,8,16,0,6,8,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0,0 Butyrivibrio,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,1 Campylobacter,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Catenibacterium,0,0,139,126,0,0,0,0,0,0,0,0,184,6,0,0,0,0,0,0,0,0,52,59,71,119,0,0,0,0,0,0,0,1,0,0,0,0,0,2,22,27,0,0,3,0,0,0,0,0,0,3,0,0,0,0,100,61,0,2,0,0,0,1,0,0,0,0,126,104,0,5,5,17,5,22,31,6,0,21,14,0,0,29,41,2,0,0,0,0,0,0,30,122,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,61,72,0,0,0,0,0,0,135,172,0,0,60,232,28,46,0,0,99,87,139,96,316,84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,492,457,55,615,91,15,0,0,0,1,0,3,0,0,0,0,660,768,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,8,0,0,0,0,0,0,164,28,0,0,0,0,110,264,12,30,0,0,0,0,0,0,181,9,0,0,10,2,25,87,0,0,0,0,0,0,0,0 Caulobacter,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Citrobacter,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,5,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,6,0,0,0,0,1,27,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,2,0,0,0,1,0,0,0,0,0,0,0,0,0,4,0,0 Cloacibacillus,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,0,1,1,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Clostridium,1,0,1,3,1,0,1,0,0,0,0,3,1,5,0,1,1,0,0,3,0,0,2,2,0,1,14,11,1,1,0,0,1,0,1,0,0,0,1,2,0,1,4,1,7,3,1,1,2,0,2,2,1,9,1,0,0,6,0,0,0,0,8,4,4,2,1,3,6,0,3,1,0,1,0,1,1,0,2,1,0,2,0,1,6,1,0,1,0,2,1,1,0,4,5,0,0,0,15,16,2,1,59,1,1,0,0,0,5,0,9,3,7,126,1,0,82,26,0,4,1,1,0,12,5,9,1,3,1,0,0,17,28,3,0,0,0,0,0,5,1,1,2,0,0,0,0,0,0,0,22,0,6,0,1,6,15,0,171,24,19,7,54,0,3,0,2,0,0,4,3,4,1,6,0,0,0,0,7,1,6,2,2,5,6,0,8,0,0,2,3,2,21,0,10,0,0,0,0,5,7,1,4,67,0,0,0,0,1,1,3,0,5,34,6,1,1,0,1,1,10,1,14,4,8,1,3,1,2,0,0,3,1,0,0,11,2,6,0,0,127,0,0,1,4,0,0,2,1,3,1,1,0,1,1,0,1,0,20,0,0,0,1,0,0,0,3,10,1,0,8,0,3,4,11,2,1,16 Collinsella,0,7,10,2,0,3,1,0,0,0,23,5,105,37,0,1,25,6,0,2,0,5,33,34,8,51,19,35,53,4,32,32,9,6,22,4,12,5,82,34,17,11,4,8,25,63,0,10,19,9,15,0,0,0,51,8,25,20,8,8,0,0,14,4,6,6,5,15,3,34,2,1,0,2,0,10,55,6,41,13,5,0,0,0,0,9,8,1,20,106,8,71,0,0,0,0,11,35,8,12,10,1,4,1,2,1,0,0,0,0,0,0,4,13,25,4,139,14,13,8,33,10,0,9,21,106,12,44,0,1,3,8,18,9,18,3,35,0,0,1,104,8,2,2,0,2,1,0,0,0,27,0,9,12,39,91,30,258,0,23,3,89,9,41,68,0,4,188,1,24,0,2,47,73,20,169,16,19,49,151,16,58,43,50,5,4,0,61,155,135,54,0,54,246,169,11,335,0,0,0,0,0,0,215,55,13,5,0,2,0,0,1,7,16,3,11,0,0,4,15,16,4,40,14,185,1,2,2,5,1,7,20,10,0,0,20,5,141,8,17,29,0,8,1,28,17,2,2,0,0,0,37,5,14,9,6,3,9,0,15,4,3,31,5,59,8,24,15,0,0,23,4,15,12,0,0,2,4 Coprobacillus,7,32,2,3,0,0,11,0,0,0,1,21,5,0,9,25,113,2,112,70,5,31,0,0,0,0,52,75,8,6,38,25,0,0,15,1,7,3,5,1,1,0,0,1,0,5,9,59,0,104,4,0,0,1,31,14,4,3,9,1,19,29,1,0,18,11,1,13,0,1,70,0,5,0,4,0,0,0,0,1,1,23,53,1,1,3,1,9,41,653,75,0,0,0,0,0,4,0,0,0,0,0,1,0,0,0,0,1,0,2,0,0,0,4,33,2,27,10,26,16,0,0,0,10,0,2,0,0,0,1,0,0,1,3,0,0,15,0,36,0,263,13,0,41,46,50,0,9,25,73,247,53,3,55,239,1102,862,2,24,23,124,113,62,0,10,3,0,0,86,1,0,25,271,14,0,0,2,26,6,82,20,157,50,60,29,265,7,87,0,0,11,3,551,471,243,3,82,2,0,4,57,0,0,723,0,6,1,3,1,1,46,7,12,14,20,65,13,2,24,7,27,16,161,92,7,0,2,7,23,8,2,9,2,0,1,2,8,0,1,3,36,7,7,11,12,3,0,0,15,60,0,4,0,0,3,1,0,5,53,10,0,1,5,2,26,15,0,1,0,0,0,1,41,15,8,0,0,33 Coprococcus,3,2,42,32,2,11,20,17,7,9,17,19,5,2,7,10,5,8,13,16,22,24,22,41,131,63,5,0,6,10,37,18,13,6,41,1,20,6,0,0,65,30,26,66,9,17,6,5,14,54,6,3,0,0,14,4,28,2,27,8,9,9,54,46,7,20,1,16,47,26,171,8,47,42,22,6,6,14,53,18,10,29,29,10,14,44,13,41,24,97,22,47,18,34,36,16,29,20,29,14,2,15,55,23,30,1,5,2,29,0,46,36,6,21,4,19,33,11,90,124,88,67,15,2,11,1,12,5,0,8,1,29,28,7,9,3,33,46,15,7,36,90,30,126,33,13,10,5,0,2,87,15,8,110,218,2,25,13,38,79,148,54,170,43,29,2,1,26,10,4,4,11,83,10,7,8,230,29,163,33,6,85,12,16,24,21,46,16,7,6,486,71,9,3,125,5,197,13,37,0,25,9,12,103,5,45,4,19,7,32,54,38,62,17,19,41,17,34,0,18,35,22,11,15,60,49,28,10,27,13,0,29,17,63,47,48,20,24,38,5,96,10,12,10,18,4,24,10,14,17,2,11,16,36,4,10,34,11,128,115,16,87,26,9,26,15,21,17,4,6,25,17,6,2,13,0,0,298 Coraliomargarita,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 Coriobacterium,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Corynebacterium,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,2,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Desulfocurvus,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Desulfovibrio,3,0,0,0,0,0,0,0,0,0,0,0,0,0,10,4,0,0,0,0,0,1,0,0,6,12,0,0,0,2,0,0,2,0,2,0,0,1,1,2,1,0,0,1,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,7,1,14,0,5,1,1,2,0,0,0,1,1,0,0,0,0,0,0,7,3,1,1,0,0,0,0,0,0,2,0,0,1,0,1,1,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,4,0,0,3,0,8,7,0,0,1,0,8,0,2,0,0,0,0,2,1,0,25,33,22,0,3,2,6,0,1,0,0,4,5,0,1,0,0,0,0,4,0,0,0,0,5,0,0,0,3,0,0,0,0,1,0,0,0,1,0,0,0,4,0,10,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,5,0,0,6,1,1,7,0,0,0,0,0,0,0,3,1,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,0,0,0 Dialister,9,8,0,0,0,0,0,0,10,7,1,0,63,31,0,0,6,20,0,0,0,0,19,27,29,22,0,0,0,0,11,19,3,19,0,0,0,0,0,0,0,14,8,12,2,0,0,0,2,0,9,0,27,30,20,0,16,5,14,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,4,6,16,23,0,0,0,0,0,1,0,0,32,0,77,26,1,16,17,0,0,13,0,0,0,10,13,261,0,0,20,35,9,8,5,0,0,2,10,0,0,3,12,0,0,0,0,0,6,0,0,32,13,0,0,13,17,0,0,0,0,5,0,7,0,0,0,10,12,0,0,0,0,0,0,0,20,2,89,273,14,60,0,0,0,0,1,0,0,0,4,0,16,0,0,0,0,0,0,0,0,277,0,0,0,0,16,24,0,0,0,17,0,23,0,1,58,0,27,177,37,59,0,0,5,47,0,13,0,0,0,0,0,0,0,0,10,15,3,5,62,0,0,0,9,9,0,1,0,0,0,0,11,19,0,0,0,0,0,0,4,19,12,0,0,0,1,0,0,0,0,0,0,16,49,0,1,0,0,0,0,17,0,103,7,19,10,0,0,19,7,23,12,20,23,0,0,4,2,16,0,0,19 Dickeya,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Dorea,3,17,87,86,81,42,39,23,0,0,18,41,118,58,19,8,46,15,9,15,24,31,13,20,12,20,105,55,41,26,17,26,0,31,37,1,15,68,69,5,6,5,5,46,15,16,3,7,73,24,17,2,92,134,53,24,45,32,1,10,8,15,15,25,43,42,10,94,10,108,43,2,31,16,1,26,90,12,67,30,16,7,0,23,43,144,44,26,63,598,22,229,18,12,2,1,31,11,10,25,20,5,72,8,8,9,77,89,26,23,17,7,6,27,48,16,110,31,5,7,23,19,23,15,46,122,26,71,2,6,2,4,27,103,33,15,15,5,22,11,261,0,18,40,16,4,11,2,20,34,143,5,1,46,159,51,97,76,7,10,49,63,65,6,25,46,11,11,13,0,3,24,106,80,65,62,463,48,42,59,39,24,48,29,28,22,25,55,18,134,111,3,108,40,361,21,365,103,89,0,45,4,40,347,40,28,10,51,11,25,17,23,17,7,29,43,5,42,1,23,20,14,2,54,55,7,11,12,79,4,28,24,74,0,0,64,14,5,31,15,90,1,12,18,51,15,43,0,10,45,20,20,39,28,5,22,26,27,107,9,25,25,69,22,96,21,10,0,6,7,7,2,69,21,15,35,1,22 Dysgonomonas,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Eggerthella,0,2,1,1,3,0,0,1,0,1,1,0,0,2,0,0,0,0,1,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,5,0,0,0,0,0,1,0,0,5,5,1,2,0,0,1,0,1,3,1,2,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,4,1,0,0,2,2,0,0,70,0,0,2,4,3,4,0,0,2,4,0,0,0,0,0,0,1,6,1,1,5,1,3,5,33,0,2,0,1,0,0,0,4,1,0,2,1,0,0,0,0,1,0,0,0,0,0,0,2,2,0,0,0,0,1,0,0,0,0,0,2,0,0,2,1,0,1,21,26,7,0,20,5,2,0,1,0,2,0,4,1,1,3,0,0,0,0,2,0,3,0,0,0,0,0,1,1,2,3,2,3,2,7,5,1,0,16,5,6,0,0,0,1,16,1,0,0,14,2,0,5,0,1,0,1,2,0,1,0,0,0,0,3,1,0,0,0,0,0,0,1,1,2,4,2,0,0,2,0,0,0,1,2,0,0,0,12,1,0,1,0,0,2,0,1,2,0,0,0,1,2,0,0,0,3,0,0,2,0,1,0,1,1,0,0,0,1,0 Enterobacter,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Enterococcus,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 Enterorhabdus,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Escherichia/Shigella,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 Ethanoligenens,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,17,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Eubacterium,2,0,63,110,148,0,0,0,2,0,0,0,124,51,4,0,1,3,6,0,0,0,8,13,29,50,1,6,120,54,1,2,0,0,107,1,8,28,1,0,18,7,0,0,1,3,0,0,2,0,2,8,0,4,0,1,0,0,4,0,2,1,21,23,88,23,0,0,104,85,0,6,50,42,35,51,105,1,1,9,13,0,0,15,23,0,0,1,1,0,0,0,1,0,9,7,0,2,23,6,19,31,0,2,3,0,0,9,2,14,149,114,0,4,113,27,0,0,0,0,87,107,0,124,69,110,35,124,1,0,4,0,1,1,0,2,0,0,1,36,0,0,44,0,0,1,0,0,4,1,10,2,0,0,12,1,9,10,7,0,0,0,0,45,115,6,1,2,0,0,0,28,123,58,18,255,492,1,114,40,49,40,34,3,0,0,9,0,27,234,543,4,1,0,2,4,3,7,3,12,1,0,1,8,0,5,2,6,0,1,2,19,41,0,1,0,1,0,0,28,31,0,0,1,327,0,0,2,0,0,30,34,30,3,5,347,0,9,75,17,596,8,0,0,0,0,34,11,5,4,10,23,17,30,0,4,37,23,119,0,0,0,61,8,1,0,27,12,20,77,2,0,1,0,0,3,4,0 Faecalibacterium,83,93,89,126,34,261,33,131,138,18,149,115,327,76,145,143,361,248,484,40,188,123,115,238,137,136,247,332,123,295,153,13,281,295,178,4,124,29,21,32,88,77,157,37,338,500,258,119,132,90,203,200,12,39,83,84,315,229,301,120,64,167,215,138,37,391,72,119,146,251,648,325,686,322,488,165,191,348,229,124,185,67,116,92,204,248,145,392,989,843,349,0,158,235,105,97,328,23,20,43,284,152,901,176,218,405,325,110,534,187,335,190,59,7,17,159,22,128,115,94,169,292,443,42,128,72,228,131,44,196,230,85,527,504,8,103,30,389,488,324,2,272,129,58,202,97,264,149,83,171,133,460,120,404,1546,54,522,109,27,139,133,179,312,35,35,930,113,394,168,231,575,239,1626,322,840,46,768,119,361,387,94,247,33,147,454,511,90,48,46,3,51,176,62,59,61,71,39,165,113,0,429,0,30,403,252,116,7,96,78,87,60,220,263,180,119,467,68,208,66,372,364,228,140,828,369,343,137,318,93,71,188,81,280,0,0,369,439,387,260,172,821,69,484,255,410,297,55,271,190,65,333,586,91,70,179,18,657,155,1995,207,93,139,100,51,390,455,70,143,274,181,292,202,110,264,252,573,122,713 Fusobacterium,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0 Gemella,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Geosporobacter,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Gordonibacter,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,2,1,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,1,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,3,2,0,4,1,1,1,1,0,0,0,6,0,0,0,0,0,1,0,1,2,0,0,0,0,0,0,0,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 Granulicatella,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 Haemophilus,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 Hallella,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Hespellia,0,0,34,0,1,16,3,3,0,31,8,1,0,2,0,0,0,7,18,0,1,23,0,0,1,0,0,3,0,1,5,4,6,0,0,0,1,34,25,22,12,3,0,0,1,0,0,0,4,4,17,20,27,15,2,38,2,2,20,21,2,3,0,0,0,0,6,8,1,23,11,0,0,9,0,29,1,12,1,0,0,1,0,1,0,79,4,0,2,9,0,53,15,0,38,2,7,6,7,0,1,1,0,0,0,0,4,90,3,2,75,1,1,4,2,15,2,8,22,2,0,5,10,8,0,0,0,0,0,0,5,0,0,0,2,8,7,0,1,0,4,7,13,20,4,4,0,0,0,1,274,7,1,2,5,31,14,122,8,85,60,17,87,1,176,35,26,340,22,27,53,57,1,4,1,1,98,0,2,0,3,1,5,1,6,35,17,8,7,37,52,115,11,20,84,24,272,24,32,2,6,0,11,114,28,27,0,80,28,12,13,0,7,3,1,1,10,2,3,1,17,0,0,96,37,0,0,2,8,0,36,1,20,75,3,0,2,0,0,0,61,2,0,1,0,0,4,0,0,0,0,3,0,0,4,11,0,1,0,29,20,14,3,1,1,2,2,0,1,0,1,0,51,22,18,3,1,86 Holdemania,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,2,2,0,0,0,0,1,0,0,4,1,0,0,0,0,0,1,2,3,1,1,0,1,1,3,2,2,0,0,0,0,1,0,0,1,1,2,0,1,1,0,0,0,1,0,0,0,0,1,0,3,0,0,0,0,0,0,0,1,0,0,2,1,1,2,1,1,1,3,1,0,0,0,0,0,2,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,2,0,1,0,5,0,7,0,0,1,3,0,0,1,1,0,1,2,2,3,1,3,5,0,3,0,0,0,0,1,1,0,2,0,2,3,1,0,0,0,6,2,0,0,0,0,8,1,1,0,0,0,0,1,0,2,1,1,1,2,2,0,1,0,0,3,0,1,0,1,0,0,1,3,0,0,0,1,0,1,0,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0,0,1,1,0,1,0,0,0,0,1,1 Hydrogenoanaerobacterium,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 Klebsiella,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,4,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,7,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0 Lachnobacterium,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,6,0,7,0,0,0,0,0,2,10,0,1,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,18,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,0,0,73,2,11,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,15,123,0,0,0,0,0,0,0,0,10,0,6,0,0,1,2,0,19,2,0,46,0,0,0,0,0,0,3,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,86,32,0,4,0,0,0,0,0,0,0,2,12,0,1,0,0,0,0,0,0,0,0,12,0,0,2,6,0,0,0,0,0,0,1,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,0,0,0,0,0,5,8,7,11,4,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,8,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0 Lactobacillus,0,0,0,4,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,2,2,0,0,0,0,0,0,1,0,0,14,0,1,0,0,1,175,100,0,0,1,0,0,0,0,0,0,0,17,40,1,0,0,0,0,0,0,0,3,1,24,10,0,0,0,0,0,5,3,1,0,7,6,3,2,27,17,0,0,0,0,0,0,9,32,0,0,0,0,0,1,0,14,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,3,2,2,0,0,1,0,0,0,0,0,1,13,302,17,2,0,0,0,0,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,4,0,0,0,0,1,0,15,52,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,3,8,5,0,0,2,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,14,0,0,0,0,0,0,93,6,0,0,0,0,2,0,0,0,0,0,0,9,7,0,1,3,0,0,0,0,0,0,3,4,0,1,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,2,12,3,7,32,15,0,0,0,0,0,0 Lactococcus,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,5,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,1,1,0,0,0,0,0,1,3,0,0,0,0,0,0,0,2,0,2,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,11,12,0,3,0,0,0,0,0,1,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,15,0,1,2,9,0,0,0,0,3,0,2,0,1,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Lactonifactor,0,0,13,18,0,13,2,1,0,0,1,0,0,8,0,0,0,0,0,0,0,11,2,2,0,5,0,0,0,0,6,1,0,0,22,0,0,2,0,0,2,0,0,1,0,13,1,0,1,3,0,13,0,7,0,0,2,3,0,0,3,15,0,0,0,4,1,8,4,0,18,3,0,1,8,0,0,0,0,3,3,0,0,3,0,16,0,20,9,0,0,14,5,6,0,0,11,0,0,0,0,0,36,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,8,3,0,0,6,1,1,1,0,0,4,0,0,0,0,9,14,0,0,3,3,0,1,5,3,0,6,3,0,0,0,0,0,0,1,11,30,17,2,9,0,0,0,0,0,1,1,3,2,1,12,0,0,0,0,10,35,0,3,5,12,9,2,0,0,21,1,8,9,6,0,2,7,26,2,4,4,1,6,41,31,1,16,1,0,36,11,0,2,2,10,0,21,0,0,0,2,31,4,3,1,4,5,0,0,42,12,2,0,4,17,0,15,1,3,0,0,2,3,0,0,0,8,1,2,6,6,3,0,1,0,0,0,22,2,0,2,0,5,4,5,0,1,1,13,0,8,0,0,0,0,0,3,0,1,5,1,0,0,1 Leuconostoc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 Luteococcus,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Marvinbryantia,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,1,1,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,3,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,2,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,5,0,0,0,0,0,0,1,0,0,0,0,3,0,1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1 Megamonas,0,0,0,0,0,0,0,0,0,0,0,0,123,296,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,325,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,322,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,58,353,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0 Megasphaera,0,0,11,10,0,0,0,0,0,0,0,0,56,44,0,0,0,0,0,0,0,0,5,4,28,35,0,0,8,5,42,204,0,0,26,1,0,0,0,4,18,10,0,0,0,0,0,0,0,0,0,0,0,0,39,0,28,39,0,0,0,5,0,0,0,0,4,25,0,0,0,0,0,0,0,0,0,27,51,92,26,0,0,0,0,0,0,72,0,0,2,1,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,0,0,0,0,0,17,37,89,20,6,0,0,12,23,30,21,81,21,0,0,0,20,124,0,1,0,0,0,0,0,0,0,158,0,0,42,1,19,117,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,11,4,18,0,0,21,14,0,0,0,0,1,0,206,98,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,2,17,3,0,28,19,0,0,0,0,0,0,6,29,0,0,3,55,0,0,0,0,6,12,0,0,4,2,0,0,18,22,47,36,0,0,11,22,0,0,0,28,54,0 Methylobacterium,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Microbacterium,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Mitsuokella,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,21,21,16,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42,2,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,15,0,0,0,0,0,0 Mobiluncus,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Moryella,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Odoribacter,0,0,0,5,0,7,0,1,0,0,0,0,0,0,0,2,0,0,9,1,2,5,2,2,5,16,0,0,2,4,0,0,0,0,9,0,0,0,0,5,8,1,4,16,0,4,0,0,0,1,0,0,1,0,0,11,0,0,0,0,8,3,9,9,6,9,1,1,0,2,7,1,5,2,2,0,0,3,0,6,2,6,3,0,0,3,0,10,10,0,0,0,7,10,1,5,10,2,1,1,0,0,26,4,4,0,0,0,3,5,0,1,20,3,1,2,3,1,0,0,2,3,0,8,1,0,0,1,2,7,1,5,2,3,0,3,0,0,0,0,0,4,0,0,5,1,2,3,8,10,0,6,4,1,11,0,0,5,0,4,10,4,18,2,21,0,0,20,0,0,0,7,16,7,5,0,4,0,0,8,4,6,0,2,10,0,7,4,0,0,0,3,0,0,0,5,1,0,0,0,4,0,0,0,1,6,3,3,3,0,0,16,5,8,2,18,9,3,2,3,1,3,1,3,0,6,10,6,2,1,0,0,4,4,0,1,5,0,0,0,4,0,2,0,0,0,0,0,0,0,1,4,3,9,0,0,10,12,13,0,0,0,0,0,0,0,0,0,9,9,13,4,0,0,0,3,9,0 Olsenella,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,6,13,98,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,63,157,13,99,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,1177,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,0,0,0,0,0,2,1,0,0,0,0,1,6,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,7,2,0,0,0,0,0,0 Oribacterium,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,0,13,8,0,0,0,21,1,0,0,1,0,0,0,4,0,0,6,0,0,0,0,0,0,0,0,0,3,13,0,13,0,0,1,0,0,0,0,0,0,0,0,1,6,3,0,0,0,0,0,7,0,1,0,0,0,0,1,5,4,0,0,0,0,0,1,0,0,2,2,0,0,7,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,3,0,1,0,1,0,0,1,0,0,0,0,1,0,3,0,0,0,0,0,0,0,0,0,16,0,0,5,0,0,0,0,6,0,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,2,0,0,7,2,0,0,0,0,0,1,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,1,0,0,0,0,2,5,0,0,0,0,0,0,0,2,0,0,0,0,4,3,0,0,0,0,1,0,0,2,0,0,0,4,0,0,0,0,4,0,1,1,0,0,0,0,0,0,0,8,2,0,0,0,0,0,0 Oscillibacter,113,0,3,12,1,29,2,37,6,0,2,1,3,2,11,12,3,0,151,11,45,68,51,57,59,487,0,5,8,11,7,5,8,0,53,2,58,42,2,35,200,11,44,134,17,53,46,38,0,31,11,2,4,1,127,49,79,26,45,14,47,33,59,24,27,35,1,8,16,5,122,37,49,35,6,77,2,18,36,68,21,431,112,287,133,84,15,53,73,18,7,0,131,38,136,135,10,70,108,191,66,39,171,13,23,10,3,19,4,5,154,68,126,71,2,32,9,17,116,54,70,85,241,8,5,0,51,30,21,17,18,17,24,78,2,13,2,25,10,3,0,19,3,40,5,5,13,23,35,28,3,242,67,21,15,10,15,2,1,298,357,58,255,113,434,70,2,819,10,29,22,133,465,30,21,6,154,3,24,8,6,48,1,13,34,33,33,37,10,6,6,29,2,7,1,16,267,10,0,0,7,1,8,18,3,71,3,14,8,18,22,69,61,96,26,124,274,9,13,23,19,32,23,36,5,33,39,30,18,13,13,46,10,3,2,32,33,0,5,4,133,19,29,4,7,4,14,5,9,1,24,68,66,143,41,5,65,37,426,30,39,109,8,0,3,0,101,33,49,93,122,39,0,0,2,5,16,127 Oxalobacter,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Papillibacter,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Parabacteroides,5,1,1,0,0,2,2,0,0,0,1,2,1,5,1,16,1,2,91,1,51,39,0,0,1,2,0,0,0,0,4,5,0,0,1,0,1,0,0,1,1,0,0,4,0,9,0,2,0,1,0,0,4,1,2,7,0,1,0,0,2,4,2,3,0,0,0,0,1,0,2,0,0,1,0,1,0,3,2,1,0,14,3,0,0,9,4,46,3,0,0,1,3,0,3,4,1,5,3,2,0,1,8,2,1,8,3,4,0,0,1,0,1,1,0,1,0,0,0,0,1,0,44,1,0,1,0,0,1,0,0,0,2,4,1,1,0,8,0,0,0,1,1,0,0,4,1,4,1,14,8,7,7,9,18,1,10,10,2,9,44,2,7,1,35,9,0,32,1,11,10,6,10,2,8,1,8,1,2,9,4,4,0,8,10,5,7,5,19,3,0,44,0,0,0,3,13,7,1,1,0,0,8,2,2,3,0,2,9,0,0,13,8,6,7,68,3,0,2,1,12,2,119,6,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,13,9,2,1,2,1,0,1,1,0,0,1,2,4,2,1,1,0,57,1,1,2,0,0,1,1,5,2,0,0,1,1,0,1,0,0,0,3 Paraeggerthella,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Paraprevotella,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,1,0,0,23,2,0,0,0,2,13,4,0,0,0,0,0,0,0,8,2,1,0,0,0,0,2,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,6,4,2,20,0,0,4,1,0,5,5,9,7,0,0,2,0,3,2,0,0,0,0,0,0,14,242,0,0,3,0,0,0,0,0,0,3,5,0,0,0,2,5,0,0,0,0,0,0,0,6,5,2,6,0,0,0,0,0,0,0,0,1,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,23,0,0,15,42,0,0,0,3,0,0,2,3,0,0,0,0,0,4,0,0,0,0,0,0,5,0,165,7,0,0,0,0,0,8,0,0,1,0,0,0,13,8,0,0,11,0,0,0,0,0,1,0,33,0,0,0,0,0,0,0,0,4,0,0,23,0,0,47,2,4,0,0,0,0,0,18,46,0,0,2,30,3,2,0,0,6,0,0,0,0,0,6,4,0,0,16,0,0,0,0,0,6,7,0,0,0,0 Parasutterella,1,0,0,0,0,0,3,0,0,0,0,0,0,0,12,2,0,0,0,0,8,3,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,8,0,1,3,5,2,15,1,0,0,0,0,0,0,0,10,5,17,13,0,0,11,20,0,0,0,1,0,0,0,0,0,0,0,0,0,11,0,0,2,1,0,0,0,2,4,19,16,0,0,0,0,2,2,12,1,5,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,1,2,7,3,0,0,11,5,0,0,0,0,0,0,9,7,0,0,1,0,11,7,6,1,0,0,2,0,0,0,2,7,0,0,0,1,1,0,0,0,0,7,0,0,0,0,0,0,0,4,3,2,0,0,0,11,27,0,0,0,0,0,6,26,8,0,0,3,3,1,0,16,0,0,0,0,0,15,1,3,0,0,0,224,40,0,0,0,0,11,1,0,1,0,0,0,0,3,7,2,0,7,4,0,1,12,0,0,0,0,0,3,1,0,0,0,2,13,13,0,0,0,0,0,0,0,1,1,0,0,0,0,8,0,2,10,0,0,8,4,0,0,0,5,0,1,0,0,0,0,0,0,17,6,6,2,0,0,4,3,9,8 Pediococcus,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Pelomonas,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Peptococcus,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Peptostreptococcus,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Phascolarctobacterium,0,0,0,0,2,9,6,10,0,0,0,0,0,0,22,31,0,0,0,0,21,45,0,1,0,0,0,0,0,0,0,0,0,0,0,0,36,35,1,18,3,8,2,0,9,36,17,19,0,5,0,0,0,0,1,23,0,0,0,0,38,43,0,0,0,0,6,21,0,0,35,0,0,0,0,0,0,0,0,0,0,39,40,10,21,46,14,1,0,1,0,10,0,0,18,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,5,6,5,0,36,0,0,0,0,0,0,0,0,0,0,0,0,2,28,0,0,0,0,12,36,11,18,2,0,4,0,0,0,10,1,9,19,76,15,63,0,0,0,0,0,0,18,7,14,96,17,100,0,0,17,1,1,3,11,36,0,0,0,0,0,0,0,0,50,20,6,0,0,0,38,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,39,0,10,12,3,5,0,8,3,4,1,0,15,8,0,0,16,0,0,1,4,16,1,9,15,47,0,0,10,5,0,0,0,0,0,132,0,0,0,25,4,0,0,0,0,0,0,0,0,9,12,12,15,0,0,12,4,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0 Porphyromonas,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Prevotella,0,0,0,0,1,0,0,0,0,0,0,0,11,72,5,15,0,0,0,0,6,24,60,107,46,17,0,0,4,0,0,0,0,0,114,4,0,1,0,0,0,1,0,0,1,0,0,1,0,3,0,2,0,0,0,0,0,0,0,0,0,0,202,32,2,147,0,0,0,0,0,243,49,0,0,2,0,41,1,146,168,0,0,0,0,0,0,1,0,5,708,0,0,1,0,0,0,13,31,38,11,2,1612,229,189,0,0,1,0,0,1,1,0,0,0,1,0,1,0,5,19,46,12,2,139,1,203,2,0,0,1,0,634,0,0,0,0,0,0,0,0,0,0,0,13,40,0,0,0,0,0,0,0,842,1632,0,2,0,0,0,1,1,2,0,1,0,0,0,1,0,1,0,2,443,994,1,71,10,417,0,0,10,68,7,0,0,0,0,40,164,17,0,0,0,0,356,206,1,1,4,0,0,0,2,653,0,0,5,0,0,0,0,0,1,0,1,0,0,0,37,131,1,0,756,18,0,0,0,0,0,0,19,17,0,0,0,0,8,0,55,668,0,33,109,37,11,59,106,76,15,51,119,24,30,0,0,0,0,1,0,0,0,232,6,1,0,0,0,0,0,7,22,0,0,0,0,0,0 Propionibacterium,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Proteus,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Pseudobutyrivibrio,6,5,0,0,7,0,1,0,0,0,1,0,0,0,0,0,0,39,0,0,0,0,0,2,0,0,1,25,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,121,0,0,0,0,4,1,0,0,2,2,7,2,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,3,0,0,0,0,1,2,0,0,0,1,0,4,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,2,0,0,0,0,0,34,18,0,0,1,0,0,13,1,0,349,0,0,0,0,0,2,4,0,0,0,0,0,0,1,0,1,0,1,6,1,0,0,2,24,0,1,0,0,77,0,0,0,1,0,0,14,1,286,0,0,0,0,0,61,0,0,8,0,0,0,3,0,0,0,0,72,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,20,2,0,0,0,0,1,0,0,0,6,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,138,0,0,0,69 Pyramidobacter,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Ralstonia,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Rhizobium,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Robinsoniella,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,1,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 Roseburia,8,42,19,58,19,17,87,19,50,29,22,78,50,34,51,35,82,100,50,10,87,118,16,13,27,14,83,76,25,26,68,39,105,30,21,0,20,48,9,33,9,9,73,34,158,95,49,21,62,15,56,62,16,96,63,30,33,42,90,28,40,159,119,66,43,27,13,40,141,41,55,13,6,123,58,6,13,35,108,25,38,8,30,7,9,38,187,57,374,132,105,133,4,12,2,1,5,20,23,13,35,32,141,5,8,59,55,38,52,75,54,51,5,2,50,114,26,20,24,72,20,10,51,42,52,8,19,2,17,31,13,38,101,133,29,33,223,121,66,28,84,21,33,33,45,53,5,1,75,11,602,28,15,120,482,154,245,146,49,19,11,17,12,11,79,29,30,116,25,33,48,24,83,55,37,15,117,36,82,212,107,34,38,45,187,63,45,97,18,60,257,29,118,14,13,35,164,152,51,111,134,124,202,232,32,19,9,148,42,43,71,60,70,23,71,133,25,65,12,88,154,72,71,133,42,29,12,34,16,16,71,53,50,419,234,101,129,223,53,20,300,10,36,22,81,60,40,22,98,54,19,79,21,82,65,83,86,33,132,150,50,28,69,13,43,12,26,24,68,45,34,40,28,151,51,25,88,270 Rothia,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0 Ruminococcus,12,0,24,25,3,0,0,10,3,9,0,12,0,0,55,25,0,0,31,54,85,26,8,23,7,26,29,27,0,1,58,67,0,0,3,2,36,45,0,1,19,9,18,57,97,86,15,11,0,28,0,12,0,0,10,9,13,17,64,0,23,21,191,93,26,95,0,56,33,119,88,5,29,14,9,0,0,15,1,5,30,23,0,86,76,116,55,113,0,639,24,1,77,38,102,59,58,51,62,40,59,26,354,7,10,7,0,0,0,0,0,0,59,58,60,0,10,83,46,12,60,121,134,4,24,1,6,3,45,8,24,67,55,75,3,10,8,0,1,5,0,47,0,20,38,17,30,45,29,42,1,148,38,42,680,42,125,0,0,85,265,39,188,23,1207,307,3,868,5,12,49,59,495,43,1,7,207,16,21,88,96,15,33,7,48,89,0,17,0,1,0,2,0,0,74,0,3,0,0,0,36,5,4,8,3,144,24,2,2,39,15,84,7,19,26,152,30,47,20,68,37,42,0,122,42,86,47,57,39,91,40,53,59,2,1,27,15,0,0,4,144,4,33,3,11,29,5,5,16,54,68,154,12,35,56,0,53,24,534,7,111,50,24,13,2,0,87,33,61,69,48,13,0,15,1,50,21,249 Sarcina,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Selenomonas,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,1,0,0,0,0,0,0 Slackia,0,0,0,0,0,0,0,0,0,0,0,0,2,4,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,9,10,0,0,0,1,0,0,0,0,5,1,1,3,0,2,0,0,33,3,0,0,1,0,0,3,3,49,0,0,0,0,2,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Sneathia,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Solirubrobacter,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Solobacterium,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0 Sphingomonas,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Sporacetigenium,0,0,54,25,0,0,0,0,0,0,3,33,24,2,0,0,4,3,0,0,0,0,0,0,2,1,4,0,0,0,9,0,0,1,0,0,0,0,0,0,14,0,1,19,21,28,3,2,0,1,0,0,4,8,40,0,1,0,0,5,0,0,6,0,1,2,0,0,0,0,0,5,0,0,4,0,0,2,16,0,0,0,0,0,8,9,0,16,19,75,1,0,0,45,0,0,0,4,0,7,12,0,0,0,0,0,0,0,6,0,3,0,5,0,3,0,55,4,3,0,0,0,0,0,4,26,0,25,0,0,0,1,0,4,3,0,5,0,1,0,0,0,0,0,0,0,0,2,0,0,0,2,8,0,0,7,6,0,3,5,0,5,6,0,0,11,0,28,0,0,0,3,0,0,1,0,0,0,13,29,12,3,0,14,15,0,0,0,0,0,3,31,0,0,0,0,19,6,18,5,0,0,0,1,0,15,0,47,0,0,0,6,0,0,0,0,0,0,1,0,0,0,0,0,1,5,2,0,34,0,0,0,7,0,0,0,0,0,0,0,56,1,0,0,0,0,2,6,0,0,0,10,0,0,0,0,0,0,40,0,0,1,1,0,13,2,9,3,1,3,50,1,0,0,1,13,0,0 Sporobacter,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,5,0,1,0,3,5,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,2,2,0,1,3,0,0,9,0,1,0,0,0,0,4,0,0,2,1,0,0,0,7,0,0,1,0,0,0,6,3,0,5,0,0,0,3,0,0,0,0,0,0,0,0,0,0,4,20,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,1,3,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,2,14,0,0,6,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,17,0,0,1,0,0,0,0,33,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,10,0,0,0,0,6,0,15,2,0,0,0,0,0,0,0,1,0,0,16,0,0,0,0,0,0,13 Streptococcus,0,1,9,4,7,3,2,1,0,1,20,25,11,11,1,1,7,5,1,8,14,39,1,0,1,2,0,3,2,0,1,2,8,11,13,0,3,1,0,1,393,332,0,1,13,17,1,8,23,5,1,0,2,2,18,2,3,12,5,0,3,1,1,1,1,0,1,1,2,9,7,1,0,16,16,3,2,12,2,20,69,0,2,0,0,4,9,1,29,72,19,9,5,1,2,0,1,0,0,0,4,19,17,0,0,0,0,0,3,4,0,3,0,1,31,1,3,0,0,2,2,2,34,9,10,9,3,5,0,0,9,5,5,3,38,6,2,4,4,1,13,5,1,0,1,0,0,3,1,1,5,0,1,4,2,6,12,97,47,8,61,8,19,21,55,4,0,1,177,2,0,1,30,8,1,3,79,2,9,13,0,26,40,3,3,1,0,1,40,10,14,0,3,8,31,7,19,2,3,2,1,9,5,3,18,4,2,12,1,7,0,1,2,2,4,0,1,0,2,1,1,1,433,9,5,3,0,6,12,9,2,0,7,0,1,14,33,9,19,0,2,0,3,4,1,0,6,0,0,0,0,1,3,15,1,1,0,1,2,20,58,47,9,5,6,0,0,2,7,5,6,25,3,6,2,1,0,12 Subdoligranulum,52,8,13,33,34,25,5,10,4,7,4,0,104,23,1,15,11,1,38,160,29,39,8,16,6,22,28,30,56,14,146,133,0,44,38,6,6,15,0,0,13,39,32,36,127,61,23,5,82,12,22,3,0,1,44,23,58,78,75,39,25,64,71,59,284,22,5,42,25,163,327,15,14,21,8,53,78,115,134,87,33,15,43,19,8,147,67,8,37,934,20,68,28,23,68,112,66,24,14,18,71,37,276,9,12,7,0,0,26,21,8,19,18,105,19,16,297,314,241,172,45,66,154,24,20,32,27,82,14,54,26,65,96,84,2,27,10,52,115,14,2,75,43,28,221,51,48,24,89,58,2,242,10,2,20,60,377,0,3,42,60,36,67,9,87,261,409,194,61,0,5,90,381,31,107,38,371,36,8,21,25,6,94,12,67,226,45,10,3,7,582,53,18,0,0,21,204,9,3,0,4,0,0,135,10,20,0,7,0,3,1,100,69,63,68,85,38,8,1,15,12,5,1,24,12,128,60,33,6,25,0,58,21,0,0,74,46,0,10,4,47,12,18,2,55,30,31,17,127,47,20,254,29,61,12,0,106,167,542,31,35,72,40,16,25,19,51,100,126,122,41,46,0,11,11,0,4,148 Succiniclasticum,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30 Sutterella,0,0,1,6,0,54,15,0,0,0,0,0,2,18,0,0,0,0,0,0,0,0,1,5,1,5,87,59,0,0,0,0,1,0,31,2,0,4,1,0,0,0,0,0,0,0,0,0,0,11,12,0,0,0,0,0,0,0,4,0,0,0,0,0,0,69,0,0,29,4,11,11,19,71,77,0,0,0,0,11,3,4,33,0,0,0,0,73,74,3,0,0,0,0,0,0,0,0,0,3,0,8,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,8,0,0,0,1,0,16,0,0,0,0,0,0,0,0,11,0,0,0,0,0,1,14,1,0,0,1,0,1,2,43,0,0,0,0,0,0,5,1,0,0,0,0,0,0,0,1,79,154,0,31,0,0,1,0,1,1,0,0,2,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,49,0,0,1,0,0,0,0,0,7,9,0,0,89,0,0,0,6,0,0,8,0,1,0,0,0,0,0,0,0,0,0,0,1,6,13,1,7,17,4,0,0,3,1,0,2,0,0,0,0,0,0,0,0,13,16,30,0,2,1,0,0,0,0,2,0,0,0,0,0,19,30,0,0,0,0 Syntrophococcus,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 Tepidibacter,0,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,2,0,0,1,3,0,0,0,1,0,1,0,0,0,7,0,1,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,5,9,0,0,0,0,18,3,0,0,1,0,0,0,2,0,0,0,9,0,0,0,0,4,19,0,0,0,0,14,0,14,9,0,0,0,0,0,0,6,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,3,0,0,2,0,0,0,2,0,0,0,18,7,0,0,0,0,0,0,0,0,0,0,0,3,0,1,0,0,9,0,0,3,0,12,0,0,0,0,0,0,0,0,0,0,0,1,0,0,3,0,0,0,0,7,0,0,1,0,0,0,0,0,4,0,0,0,1,0,7,0,1,0,0,3,1,2,0,22,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0,1,35,0,0,1,0,0,0,1,0,0,2,0,5,0,0,0,0,0,0,0 Turicibacter,0,0,0,0,0,1,0,0,0,0,0,1,20,5,0,0,1,0,0,1,2,12,1,4,0,0,0,3,1,0,0,0,0,0,0,0,0,2,1,0,1,2,2,15,0,17,0,0,0,0,0,0,0,0,2,0,0,0,1,2,0,0,0,1,0,5,0,0,1,2,1,0,0,0,0,1,1,0,2,0,0,1,0,0,1,0,0,2,19,39,4,31,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,2,1,15,10,1,7,6,2,23,1,0,0,0,2,0,1,0,1,0,0,1,0,1,0,9,2,0,0,1,0,0,0,7,0,0,0,0,0,0,0,0,0,2,1,2,0,14,0,0,36,8,149,157,84,35,86,475,1,0,16,0,0,0,0,1,0,0,0,0,0,12,5,0,0,0,9,2,0,0,2,0,0,0,0,1,0,4,0,30,2,1,2,0,0,0,0,0,4,0,2,0,0,0,0,37,8,2,0,0,0,0,0,0,0,0,1,13,3,0,0,24,0,0,0,1,0,0,0,0,1,0,7,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,11,4,0,0,0,0,0,0,1,0,0,0,2,0,2,5,0,0,0,0 Uknown,206,196,429,365,564,408,248,287,157,599,372,475,507,333,340,316,447,580,1000,535,645,927,242,254,387,1114,290,311,477,238,657,562,460,476,303,16,310,679,897,668,238,299,568,681,672,476,272,407,413,291,273,300,895,614,539,409,353,120,276,237,230,291,696,612,461,234,215,952,387,690,1308,160,337,278,177,198,412,364,485,269,153,304,240,344,320,562,485,1490,1067,3582,425,3099,588,734,373,559,742,342,672,599,370,265,2435,136,183,209,479,235,309,314,430,425,772,760,1007,347,1046,430,815,444,545,511,527,302,372,342,338,718,151,265,190,395,723,595,298,174,340,466,573,253,1258,489,282,840,350,310,371,382,772,456,1446,783,434,373,2008,944,2447,1748,548,884,1770,1137,2505,553,2093,722,413,2757,312,717,2306,1058,3333,735,961,361,3496,313,649,728,369,422,954,340,607,1143,465,575,254,783,2049,1223,927,1180,3887,383,1447,1090,914,1938,706,1014,3536,4600,621,762,177,1074,180,691,382,556,524,1005,609,2713,799,513,174,322,333,605,680,879,523,414,364,431,615,335,607,398,516,343,368,533,287,363,370,121,1399,80,144,224,642,303,317,186,298,773,156,638,494,577,232,211,532,381,2143,312,654,356,489,190,748,589,520,372,332,364,784,287,634,270,199,424,191,1157 Varibaculum,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Veillonella,0,1,0,0,1,0,2,0,0,0,3,7,0,0,0,0,3,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,3,0,0,0,0,0,0,0,0,0,0,6,0,0,0,3,0,1,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,5,2,5,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1,0,1,1,0,0,1,1,1,0,0,1,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,61,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,2,1,4,0,88,68,11,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,1,3,0,11,1,0,0,0,0,2,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0 Victivallis,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Weissella,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,226,109,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Xylanibacter,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,308,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Zymophilus,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DirichletMultinomial/man/0000755000175400017540000000000013556117225016504 5ustar00biocbuildbiocbuildDirichletMultinomial/man/DMN-class.Rd0000644000175400017540000000256313556117225020522 0ustar00biocbuildbiocbuild\name{DMN-class} \Rdversion{1.1} \docType{class} \alias{DMN-class} \title{Class \code{"DMN"}} \description{Result from fitting a Dirichlet-Multinomial model.} \section{Objects from the Class}{ Objects can be created by calls to \code{\link{dmn}}.. } \section{Slots}{ The contents of a slot is usually retrieved via the methods described on the \code{\link{mixture}} help page. \describe{ \item{goodnessOfFit}{NLE, LogDet, Laplace, AIC, and BIC criteria assessing goodness-of-fit.} \item{group}{\code{matrix} of dimension samples x \code{k}, providing the Dirichlet parameter vectors.} \item{mixture}{\describe{ \item{Weight}{\code{numeric()} of length \code{k}, with relative weight of each component.} }} \item{fit}{\describe{ \item{Lower}{\code{matrix()} of dimension taxa x \code{k} with 95\% lower bounds on Dirichlet component vector estimates.} \item{Estimate}{\code{matrix()} of dimension taxa x \code{k} with Dirichlet component vector estimates.} \item{Upper}{\code{matrix()} of dimension taxa x \code{k} with 95\% upper bounds on Dirichlet component vector estimates.} }} } } \section{Methods}{ See the \code{\link{mixture}} help page. } \author{ Martin Morgan \url{mailto:mtmorgan@fhcrc.org} } \seealso{ \code{\link{dmn}}, \code{\link{mixture}}. } \examples{ data(fit) fit[[4]] } \keyword{classes} DirichletMultinomial/man/DMNGroup-class.Rd0000644000175400017540000000234513556117225021535 0ustar00biocbuildbiocbuild\name{DMNGroup-class} \Rdversion{1.1} \docType{class} \alias{DMNGroup-class} \title{Class \code{"DMNGroup"}} \description{Result from fitting a Dirichlet-Multinomial generative classifier.} \section{Objects from the Class}{ Objects can be created by calls to \code{\link{dmngroup}}. } \section{Slots}{ All slots in this class are inheritted from \code{SimpleList}; see \sQuote{Methods}, below, for information on how to manipulate this object. } \section{Extends}{ Class \code{"\linkS4class{SimpleList}"}, directly. Class \code{"\linkS4class{List}"}, by class "SimpleList", distance 2. Class \code{"\linkS4class{Vector}"}, by class "SimpleList", distance 3. Class \code{"\linkS4class{Annotated}"}, by class "SimpleList", distance 4. } \section{Methods}{ See the \code{\link{mixture}} help page for functions that operate on \code{DMNGroup} and \code{DMN}. \code{DMNGroup} can be manipulated as a list; see \code{\linkS4class{SimpleList} } for a description of typical list-like functions. } \author{ Martin Morgan \url{mailto:mtmorgan@fhcrc.org} } \seealso{ \code{\link{mixture}}, \code{\linkS4class{DMN}}, \code{\linkS4class{SimpleList}}. } \examples{ data(bestgrp) bestgrp bestgrp[[1]] } \keyword{classes} DirichletMultinomial/man/DirichletMultinomial-package.Rd0000644000175400017540000000166213556117225024513 0ustar00biocbuildbiocbuild\name{DirichletMultinomial-package} \alias{DirichletMultinomial-package} \docType{package} \title{ Dirichlet-Multinomial Mixture Model Machine Learning for Microbiome Data } \description{ Dirichlet-multinomial mixture models can be used to describe variability in microbial metagenomic data. This package is an interface to code originally made available by Holmes, Harris, and Qunice, 2012, PLoS ONE 7(2): 1-15. } \details{ The estimation routine is from the LGPL-licensed (as stated on the corresponding googlecode page) source \url{http://microbedmm.googlecode.com/files/MicrobeDMMv1.0.tar.gz}, retrieved 17 Feburary 2012. The algorithm is described in Holmes I, Harris K, Quince C, 2012 Dirichlet Multinomial Mixtures: Generative Models for Microbial Metagenomics. PLoS ONE 7(2): e30126. doi:10.1371/journal.pone.0030126. } \author{Maintainer: Martin Morgan \url{mailto:mtmorgan@fhcrc.org}} \keyword{package} DirichletMultinomial/man/cvdmngroup.Rd0000644000175400017540000000500113556117225021153 0ustar00biocbuildbiocbuild\name{cvdmngroup} \alias{cvdmngroup} \title{ Cross-validation on Dirichlet-Multinomial classifiers. } \description{ Run cross-validation on Dirichlet-Multinomial generative classifiers. } \usage{ cvdmngroup(ncv, count, k, z, ..., verbose = FALSE, .lapply = parallel::mclapply) } \arguments{ \item{ncv}{\code{integer(1)} number of cross-validation groups, between 2 and \code{nrow(count)}.} \item{count}{\code{matrix} of sample x taxon counts, subsets of which are used for training and cross-validation.} \item{k}{named \code{integer()} vector of groups and number of Dirichlet components; e.g., \code{c(Lean=1, Obese=3)} performs cross-validation for models with \code{k=1} Dirichlet components for the \sQuote{Lean} group, \code{k=3} Dirichlet components for \sQuote{Obese}.} \item{z}{True group assignment.} \item{\dots}{Additional arguments, passed to \code{\link{dmn}} during each cross-validation.} \item{verbose}{\code{logical(1)} indicating whether progress should be reported} \item{.lapply}{A function used to perform the outer cross-vaildation loop, e.g., \code{lapply} for calculation on a single processor, \code{parallel::mclapply} for parallel evaluation.} } \value{ A \code{data.frame} summarizing classifications of test samples in cross-validation groups. Columns are: \item{group}{The cross-validation group in which the indivdual was used for testing.} \item{additional columns}{Named after classification groups, giving the posterior probability of assignment.} } \author{Martin Morgan \url{mailto:mtmorgan@fhcrc.org}} \seealso{ \code{\link{dmn}}, \link{DirichletMultinomial-package}, \code{vignette("DirichletMultinomial")} } \examples{ data(xval) ## result of following commands head(xval) \dontrun{ ## count matrix fl <- system.file(package="DirichletMultinomial", "extdata", "Twins.csv") count <- t(as.matrix(read.csv(fl, row.names=1))) ## phenotype fl <- system.file(package="DirichletMultinomial", "extdata", "TwinStudy.t") pheno0 <- scan(fl) lvls <- c("Lean", "Obese", "Overwt") pheno <- factor(lvls[pheno0 + 1], levels=lvls) names(pheno) <- rownames(count) ## subset keep <- c("Lean", "Obese") count <- count[pheno %in% keep,] pheno <- factor(pheno[pheno %in% keep], levels=keep) ## cross-validation, single Dirichlet component for Lean, 3 for Obese xval <- cvdmngroup(nrow(count), count, c(Lean=1, Obese=3), pheno, verbose=TRUE, mc.preschedule=FALSE) }} \keyword{stats} DirichletMultinomial/man/dataobjects.Rd0000644000175400017540000000170113556117225021255 0ustar00biocbuildbiocbuild\name{data} \alias{fit} \alias{bestgrp} \alias{xval} \docType{data} \title{Data objects used for examples and the vignette} \description{ These data objects correspond to steps in a typical work flow, as described in the vignette to this package. \code{fit} corresponds to \code{dmn} fits to different values of \code{k}. \code{bestgroup} is the result of the two-group generative classifier. \code{xval} summarizes leave-one-out cross validation of the classifier. } \usage{ data(fit) data(bestgrp) data(xval) } \format{ \code{fit} is a list of seven \code{\linkS4class{DMN}} objects. \code{bestgrp} is a \code{\linkS4class{DMNGroup}} object. \code{xval} is a \code{data.frame} with columns corresponding to the cross-validation group membership and the Lean and Obese posterior probabilities. } \examples{ data(fit); fit[1:2] plot(sapply(fit, laplace), type="b") data(bestgrp); bestgrp data(xval); head(xval, 3) } \keyword{datasets} DirichletMultinomial/man/dmn.Rd0000644000175400017540000000405013556117225017550 0ustar00biocbuildbiocbuild\name{dmn} \alias{dmn} \title{ Fit Dirichlet-Multinomial models to count data. } \description{ Fit Dirichlet-Multinomial models to a sample x taxon count matrix. } \usage{ dmn(count, k, verbose = FALSE, seed = runif(1, 0, .Machine$integer.max)) } \arguments{ \item{count}{\code{matrix()} of sample x taxon counts.} \item{k}{\code{integer(1)}, the number of Dirichlet components to fit.} \item{verbose}{\code{logical(1)} indicating whether progress in fit should be reported.} \item{seed}{\code{numeric(1)} random number seed.} } \details{ This implements Dirichlet-multinomial mixture models describe in the package help page, \link{DirichletMultinomial-package}. } \value{ An object of class \code{dmn}, with elements (elements are usually retrieved via functions defined in the package, not directly). \item{GoodnessOfFit}{NLE, LogDet, Laplace, AIC, and BIC criteria assessing goodness-of-fit.} \item{Group}{\code{matrix} of dimension samples x \code{k}, providing the Dirichlet parameter vectors.} \item{Mixture}{\describe{ \item{Weight}{\code{numeric()} of length \code{k}, with relative weight of each component.} }} \item{Fit}{\describe{ \item{Lower}{\code{matrix()} of dimension taxa x \code{k} with 95\% lower bounds on Dirichlet component vector estimates.} \item{Estimate}{\code{matrix()} of dimension taxa x \code{k} with Dirichlet component vector estimates.} \item{Upper}{\code{matrix()} of dimension taxa x \code{k} with 95\% upper bounds on Dirichlet component vector estimates.} }} } \references{ Holmes I, Harris K, Quince C, 2012 Dirichlet Multinomial Mixtures: Generative Models for Microbial Metagenomics. PLoS ONE 7(2): e30126. doi:10.1371/journal.pone.0030126. } \author{ Martin Morgan \url{mailto:mtmorgan@fhcrc.org} } \seealso{ \link{DirichletMultinomial-package}, \code{vignette("DirichletMultinomial")} } \examples{ data(fit) ## k = 1:7; full example in vignette lplc <- sapply(fit, laplace) plot(lplc, type="b") fit[[which.min(lplc)]] } \keyword{ manip } DirichletMultinomial/man/dmngroup.Rd0000644000175400017540000000365313556117225020635 0ustar00biocbuildbiocbuild\name{dmngroup} \alias{dmngroup} \title{ Dirichlet-Multinomial generative classifiers. } \description{ Fit Dirichlet-Multinomial generative classifiers to groups (rows) within a sample x taxon count matrix. } \usage{ dmngroup(count, group, k, ..., simplify = TRUE, .lapply = parallel::mclapply) } \arguments{ \item{count}{\code{matrix()} of sample x taxon counts.} \item{group}{\code{factor()} or vector to be coerced to a factor, with as many elements as there are rows in \code{count}, indicating the group to which the corresponding sample belongs.} \item{k}{\code{integer()}, the number(s) of Dirichlet components to fit.} \item{\dots}{Additional arguments, passed to \code{\link{dmn}}.} \item{simplify}{Return only the best-fit model for each group?} \item{.lapply}{An \code{lapply}-like function for application of group x k fits.} } \details{ This function divided \code{count} into groups defined by \code{group}, creates all combinations of \code{group} x \code{k}, and evaluates each using \code{\link{dmn}}. When \code{simplify=TRUE}, the best (Laplace) fit is selected for each group. } \value{ An object of class \code{dmngroup}, a list of fitted models of class \code{\link{dmn}}. When \code{simplify=TRUE}, elements are named by the group to which they correspond. } \references{ Holmes I, Harris K, Quince C, 2012 Dirichlet Multinomial Mixtures: Generative Models for Microbial Metagenomics. PLoS ONE 7(2): e30126. doi:10.1371/journal.pone.0030126. } \author{ Martin Morgan \url{mailto:mtmorgan@fhcrc.org} } \seealso{ \code{\link{dmn}}, \link{DirichletMultinomial-package}, \code{vignette("DirichletMultinomial")} } \examples{ ## best fit for groups 'Lean' and 'Obese'; full example in vignette. \dontrun{bestgrp <- dmngroup(count, pheno, k=1:5, verbose=TRUE, mc.preschedule=FALSE) } data(bestgrp) bestgrp bestgrp[["Obese"]] } \keyword{ manip } DirichletMultinomial/man/fitted.Rd0000644000175400017540000000575213556117225020263 0ustar00biocbuildbiocbuild\name{model components} \alias{mixture} \alias{mixturewt} \alias{goodnessOfFit} \alias{laplace} \alias{AIC,DMN-method} \alias{BIC,DMN-method} \alias{fitted,DMN-method} \alias{predict,DMN-method} \alias{show,DMN-method} \alias{fitted,DMNGroup-method} \alias{predict,DMNGroup-method} \alias{summary,DMNGroup-method} \alias{show,DMNGroup-method} \title{Access model components.} \description{ The accessors \code{mixture} and \code{mixturewt} return information about the esimtated Dirichlet comonents of the fitted model. \code{mixture} returns a sample x component matrix of estimated values, \code{mixturewt} reta matrix of } \usage{ mixture(object, ..., assign=FALSE) mixturewt(object, ...) goodnessOfFit(object, ...) laplace(object, ...) \S4method{AIC}{DMN}(object, ..., k = 2) \S4method{BIC}{DMN}(object, ...) \S4method{fitted}{DMN}(object, ..., scale=FALSE) \S4method{predict}{DMN}(object, newdata, ..., logevidence=FALSE) \S4method{fitted}{DMNGroup}(object, ...) \S4method{predict}{DMNGroup}(object, newdata, ..., assign=FALSE) \S4method{summary}{DMNGroup}(object, ...) } \arguments{ \item{object}{An instance of class \code{\link{dmn}}.} \item{newdata}{A \code{matrix} of new sample x taxon data to be fitted to the model of \code{object}.} \item{...}{Additional arguments, available to methods, when applicable.} \item{assign}{\code{logical(1)} indicating whether the maximum per-sample mixture component should be returned (\code{assign=FALSE}), or the full mixture matrix (\code{assign=TRUE}).} \item{scale}{\code{logical(1)} indicating whether fitted values should be returned unscaled (default, \code{scaled=FALSE}) or scaled by the variability of \code{\link{mixturewt}} parameter \code{theta}.} \item{logevidence}{\code{logical(1)} indicating whether posterior probability (default, \code{logevidence=FALSE}) or log evidence \code{logical=TRUE} should be returned.} \item{k}{ignored.} } \value{ \code{mixture} with \code{assign=FALSE} returns a matrix of sample x Dirichlet component estimates. With \code{assign=TRUE} \code{mixture} returns a named vector indexing the maximal Dirichlet component of each sample. \code{mixturewt} returns a matrix with rows corresponding to mixture components, and columns \code{pi} (component weight) and \code{theta} (component variability). Small values of \code{theta} correspond to highly variable components. \code{goodnessOfFit} returns a named numeric vector of measures of goodness of fit. \code{laplace}, \code{AIC}, and \code{BIC} return the corresponding measures of goodness of fit. } \author{Martin Morgan \url{mailto:mtmorgan@fhcrc.org}} \examples{ data(fit) best <- fit[[4]] mixturewt(best) head(mixture(best), 3) head(mixture(best, assign=TRUE), 3) goodnessOfFit(best) fl <- system.file(package="DirichletMultinomial", "extdata", "Twins.csv") count <- t(as.matrix(read.csv(fl, row.names=1))) data(bestgrp) bestgrp head(predict(bestgrp, count)) } \keyword{manip} DirichletMultinomial/man/heatmapdmn.Rd0000644000175400017540000000360413556117225021114 0ustar00biocbuildbiocbuild\name{heatmapdmn} \alias{heatmapdmn} \title{Heatmap representation of samples assigned to Dirichlet components.} \description{ Produce a heat map summarizing count data, grouped by Dirichlet component. } \usage{ heatmapdmn(count, fit1, fitN, ntaxa = 30, ..., transform = sqrt, lblwidth = 0.2 * nrow(count), col = .gradient) } \arguments{ \item{count}{A matrix of sample x taxon counts, as supplied to \code{\link{dmn}}.} \item{fit1}{An instance of class \code{dmn}, from a model fit to a single Dirichlet component, \code{k=1} in \code{\link{dmn}}.} \item{fitN}{An instance of class \code{dmn}, from a model fit to \code{N != 1} components, \code{k=N} in \code{\link{dmn}}.} \item{ntaxa}{The \code{ntaxa} most numerous taxa to display counts for.} \item{\dots}{Additional arguments, ignored.} \item{transform}{Transformation to apply to count data prior to visualization; this does \emph{not} influence mixture membership or taxnomic ordering.} \item{lblwidth}{The proportion of the plot to dedicate to taxanomic labels, as a fraction of the number of samples to be plotted.} \item{col}{The colors used to display (possibly transformed, by \code{transform}) count data, as used by \code{\link{image}}.} } \details{ Columns of the heat map correspond to samples. Samples are grouped by Dirichlet component, with average (Dirichlet) components summarized as a separate wide column. Rows correspond to taxonomic groups, ordered based on contribution to Dirichlet components. } \author{Martin Morgan \url{mailto:mtmorgan@fhcrc.org}} \examples{ ## counts fl <- system.file(package="DirichletMultinomial", "extdata", "Twins.csv") count <- t(as.matrix(read.csv(fl, row.names=1))) ## all and best-fit clustering data(fit) lplc <- sapply(fit, laplace) best <- fit[[which.min(lplc)]] heatmapdmn(count, fit[[1]], best, 30) } \keyword{manip} DirichletMultinomial/man/roc.Rd0000644000175400017540000000326613556117225017565 0ustar00biocbuildbiocbuild\name{roc} \alias{roc} \title{Summarize receiver-operator characteristics} \description{ Returns a \code{data.frame} summarizing the cummulative true- and false-positive probabilities from expected and observed classifications. } \usage{ roc(exp, obs, ...) } \arguments{ \item{exp}{\code{logical()} vector of expected classifications to a particular group.} \item{obs}{Predicted probability of assignment to the group identified by \code{TRUE} values in \code{exp}. The length of \code{exp} and \code{obs} must be identical.} \item{\dots}{Additional arguments, available to methods.} } \value{ A \code{data.frame} with columns \item{TruePositive}{Cummulative probability of correct assignment.} \item{FalsePositive}{Cummulative probability of incorrect assignment.} } \author{Martin Morgan \url{mailto:mtmorgan@fhcrc.org}} \examples{ library(lattice) ## count matrix fl <- system.file(package="DirichletMultinomial", "extdata", "Twins.csv") count <- t(as.matrix(read.csv(fl, row.names=1))) ## phenotype fl <- system.file(package="DirichletMultinomial", "extdata", "TwinStudy.t") pheno0 <- scan(fl) lvls <- c("Lean", "Obese", "Overwt") pheno <- factor(lvls[pheno0 + 1], levels=lvls) names(pheno) <- rownames(count) ## count data used for cross-validation, and cross-validation count <- csubset(c("Lean", "Obese"), count, pheno) data(bestgrp) ## true, false positives from single-group classifier bst <- roc(pheno[rownames(count)] == "Obese", predict(bestgrp, count)[,"Obese"]) head(bst) ## lattice plot xyplot(TruePostive ~ FalsePositive, bst, type="l", xlab="False Positive", ylab="True Positive") } \keyword{stats} DirichletMultinomial/man/util.Rd0000644000175400017540000000331013556117225017745 0ustar00biocbuildbiocbuild\name{Utilities} \alias{csubset} \title{Helpful utility functions} \description{ \code{csubset} creates a subset of a count matrix, based on identity of column phenotypes to a specified value. } \usage{ csubset(val, x, pheno, cidx = TRUE) } \arguments{ \item{val}{\code{character(1)} specifying the subset of \code{phenotype} to select.} \item{x}{A matrix of counts, with rows corresponding to samples and columns to taxonomic groups.} \item{pheno}{A \code{character()} vector of length equal to the number of rows in \code{count}, indicating the phenotype of the corresponding sample.} \item{cidx}{A \code{logical(1)} indicating whether columns (taxa) with zero counts in the count matrix following removal of taxa not satisfying \code{pheno \%in\% val} should be removed. \code{cidx=FALSE} removes the 0-count columns.} } \value{ A \code{matrix} of counts, with rows satisfying \code{pheno \%in\% val} and with columns equal either to \code{ncol(x)} (when \code{cidx=TRUE}) or the number of columns with non-zero counts after row subsetting (\code{cidx=FALSE}). } \author{Martin Morgan \url{mailto:mtmorgan@fhcrc.org}} \examples{ ## count matrix fl <- system.file(package="DirichletMultinomial", "extdata", "Twins.csv") count <- t(as.matrix(read.csv(fl, row.names=1))) ## phenotype fl <- system.file(package="DirichletMultinomial", "extdata", "TwinStudy.t") pheno0 <- scan(fl) lvls <- c("Lean", "Obese", "Overwt") pheno <- factor(lvls[pheno0 + 1], levels=lvls) names(pheno) <- rownames(count) ## subset dim(count) sum("Lean" == pheno) dim(csubset("Lean", count, pheno)) dim(csubset("Lean", count, pheno, cidx=FALSE)) } \keyword{manip} DirichletMultinomial/src/0000755000175400017540000000000013556154024016516 5ustar00biocbuildbiocbuildDirichletMultinomial/src/Makevars0000644000175400017540000000013313556117225020211 0ustar00biocbuildbiocbuildPKG_CFLAGS = `gsl-config --cflags` -DR_DIRICHLETMULTINOMIAL PKG_LIBS = `gsl-config --libs` DirichletMultinomial/src/Makevars.win0000644000175400017540000000020013556117225021000 0ustar00biocbuildbiocbuildPKG_LIBS += -L$(LIB_GSL)$(R_ARCH)/lib -lgsl -lgslcblas -lm PKG_CPPFLAGS += -I$(RHOME)/src/include -I$(LIB_GSL)$(R_ARCH)/include DirichletMultinomial/src/R_init_DirichletMultinomial.c0000644000175400017540000000045013556117225024311 0ustar00biocbuildbiocbuild#include #include "dirichlet_fit.h" static const R_CallMethodDef callMethods[] = { { ".dirichlet_fit", (DL_FUNC) &dirichlet_fit, 4}, {NULL, NULL, 0} }; void R_init_DirichletMultinomial(DllInfo * info) { R_registerRoutines(info, NULL, callMethods, NULL, NULL); } DirichletMultinomial/src/dirichlet_fit.c0000644000175400017540000000564413556117225021506 0ustar00biocbuildbiocbuild#include "dirichlet_fit_main.h" #include "dirichlet_fit.h" SEXP dirichlet_fit(SEXP counts, SEXP n_components, SEXP verbose, SEXP seed) { /* counts: N communities x S taxa */ struct data_t *data = (struct data_t *) R_alloc(1, sizeof(struct data_t)); /* inputs */ SEXP dim = Rf_getAttrib(counts, R_DimSymbol), dimnames = Rf_getAttrib(counts, R_DimNamesSymbol); data->verbose = LOGICAL(verbose)[0]; data->N = INTEGER(dim)[0]; data->S = INTEGER(dim)[1]; data->K = INTEGER(n_components)[0]; data->aanX = INTEGER(counts); /* results */ SEXP result, elt, sxp, nms; PROTECT(result = Rf_allocVector(VECSXP, 4)); nms = Rf_allocVector(STRSXP, 4); Rf_namesgets(result, nms); SET_STRING_ELT(nms, 0, mkChar("GoodnessOfFit")); SET_STRING_ELT(nms, 1, mkChar("Group")); SET_STRING_ELT(nms, 2, mkChar("Mixture")); SET_STRING_ELT(nms, 3, mkChar("Fit")); sxp = Rf_allocVector(REALSXP, 5); /* GoodnessOfFit */ SET_VECTOR_ELT(result, 0, sxp); nms = Rf_allocVector(STRSXP, 5); Rf_namesgets(sxp, nms); SET_STRING_ELT(nms, 0, mkChar("NLE")); SET_STRING_ELT(nms, 1, mkChar("LogDet")); SET_STRING_ELT(nms, 2, mkChar("Laplace")); SET_STRING_ELT(nms, 3, mkChar("BIC")); SET_STRING_ELT(nms, 4, mkChar("AIC")); sxp = Rf_allocMatrix(REALSXP, data->N, data->K); /* Group */ SET_VECTOR_ELT(result, 1, sxp); nms = Rf_allocVector(VECSXP, 2); Rf_dimnamesgets(sxp, nms); SET_VECTOR_ELT(nms, 0, VECTOR_ELT(dimnames, 0)); SET_VECTOR_ELT(nms, 1, R_NilValue); data->group = REAL(sxp); elt = Rf_allocVector(VECSXP, 1); /* Mixture */ SET_VECTOR_ELT(result, 2, elt); nms = Rf_allocVector(STRSXP, 1); Rf_namesgets(elt, nms); SET_STRING_ELT(nms, 0, mkChar("Weight")); sxp = Rf_allocVector(REALSXP, data->K); SET_VECTOR_ELT(elt, 0, sxp); data->mixture_wt = REAL(sxp); elt = Rf_allocVector(VECSXP, 3); /* Fit */ SET_VECTOR_ELT(result, 3, elt); nms = Rf_allocVector(STRSXP, 3); Rf_namesgets(elt, nms); SET_STRING_ELT(nms, 0, mkChar("Lower")); SET_STRING_ELT(nms, 1, mkChar("Estimate")); SET_STRING_ELT(nms, 2, mkChar("Upper")); PROTECT(nms = Rf_allocVector(VECSXP, 2)); SET_VECTOR_ELT(nms, 0, VECTOR_ELT(dimnames, 1)); SET_VECTOR_ELT(nms, 1, R_NilValue); for (int i = 0; i < 3; ++i) { sxp = Rf_allocMatrix(REALSXP, data->S, data->K); SET_VECTOR_ELT(elt, i, sxp); Rf_dimnamesgets(sxp, nms); } UNPROTECT(1); data->fit_lower = REAL(VECTOR_ELT(elt, 0)); data->fit_mpe = REAL(VECTOR_ELT(elt, 1)); data->fit_upper = REAL(VECTOR_ELT(elt, 2)); dirichlet_fit_main(data, INTEGER(seed)[0]); elt = VECTOR_ELT(result , 0); REAL(elt)[0] = data->NLE; REAL(elt)[1] = data->LogDet; REAL(elt)[2] = data->fit_laplace; REAL(elt)[3] = data->fit_bic; REAL(elt)[4] = data->fit_aic; UNPROTECT(1); return result; } DirichletMultinomial/src/dirichlet_fit.h0000644000175400017540000000026413556117225021504 0ustar00biocbuildbiocbuild#ifndef _DIRICHLET_FIT_H_ #define _DIRICHLET_FIT_H_ #include SEXP dirichlet_fit(SEXP counts, SEXP n_components, SEXP verbose, SEXP seed); #endif DirichletMultinomial/src/dirichlet_fit_main.c0000644000175400017540000004364213556117225022512 0ustar00biocbuildbiocbuild#include #include #include #include #include #include #include #include "dirichlet_fit_main.h" /* re-map to R transient memory allocation */ #define calloc(_nelm, _elsize) R_alloc(_nelm, _elsize) #define free(_ptr) (void) _ptr const double BIG_DBL = 1.0e9; const double K_MEANS_THRESH = 1.0e-6; const double SOFT_BETA = 50.0; const double GAMMA_ITA = 0.1; const double GAMMA_NU = 0.1; const int MAX_ITER = 1000; const size_t MAX_GRAD_ITER = 1000; static void kmeans(struct data_t *data, gsl_rng *ptGSLRNG, double* adW, double **aadZ, double **aadMu) { const int S = data->S, N = data->N, K = data->K, *aanX = data->aanX; int i, j, k, iter = 0; double *aadY, *adMu; double dMaxChange = BIG_DBL; if (data->verbose) Rprintf(" Soft kmeans\n"); aadY = (double *) calloc(N * S, sizeof(double)); adMu = (double *) calloc(S, sizeof(double)); for (i = 0; i < N; i++) { double dTotal = 0.0; for (j = 0; j < S; j++) dTotal += aanX[j * N + i]; for (j = 0; j < S; j++) aadY[j * N + i] = (aanX[j * N + i]) / dTotal; } /* initialise */ for (i = 0; i < N; i++) { k = gsl_rng_uniform_int (ptGSLRNG, K); for (j = 0; j < K; j++) aadZ[j][i] = 0.0; aadZ[k][i] = 1.0; } while (dMaxChange > K_MEANS_THRESH && iter < MAX_ITER) { /* update mu */ dMaxChange = 0.0; for (i = 0; i < K; i++){ double dNormChange = 0.0; adW[i] = 0.0; for (j = 0; j < N; j++) adW[i] += aadZ[i][j]; for (j = 0; j < S; j++) { adMu[j] = 0.0; for (k = 0; k < N; k++) adMu[j] += aadZ[i][k] * aadY[j * N + k]; } for (j = 0; j < S; j++) { double dDiff = 0.0; adMu[j] /= adW[i]; dDiff = (adMu[j] - aadMu[i][j]); dNormChange += dDiff * dDiff; aadMu[i][j] = adMu[j]; } dNormChange = sqrt(dNormChange); if (dNormChange > dMaxChange) dMaxChange = dNormChange; } /* calc distances and update Z */ for (i = 0; i < N; i++) { double dNorm = 0.0, adDist[K]; for (k = 0; k < K; k++) { adDist[k] = 0.0; for (j = 0; j < S; j++) { const double dDiff = aadMu[k][j] - aadY[j * N + i]; adDist[k] += dDiff * dDiff; } adDist[k] = sqrt(adDist[k]); dNorm += exp(-SOFT_BETA * adDist[k]); } for (k = 0; k < K; k++) aadZ[k][i] = exp(-SOFT_BETA * adDist[k]) / dNorm; } iter++; if (data->verbose && (iter % 10 == 0)) Rprintf(" iteration %d change %f\n", iter, dMaxChange); } free(aadY); free(adMu); } static double neg_log_evidence_lambda_pi(const gsl_vector *lambda, void *params) { int i, j; const struct data_t *data = (const struct data_t *) params; const int S = data->S, N = data->N, *aanX = data->aanX; const double *adPi = data->adPi; double dLogE = 0.0, dLogEAlpha = 0.0, dSumAlpha = 0.0, dSumLambda = 0.0; double adSumAlphaN[N], dWeight = 0.0; for (i = 0; i < N; i++) { adSumAlphaN[i] = 0.0; dWeight += adPi[i]; } for (j = 0; j < S; j++) { const double dLambda = gsl_vector_get(lambda, j); const double dAlpha = exp(dLambda); dLogEAlpha += gsl_sf_lngamma(dAlpha); dSumLambda += dLambda; dSumAlpha += dAlpha; const double lngammaAlpha0 = gsl_sf_lngamma(dAlpha); for (i = 0; i < N; i++) { const double dN = aanX[j * N + i]; const double dAlphaN = dAlpha + dN; const double lngammaAlphaN = dN ? gsl_sf_lngamma(dAlphaN) : lngammaAlpha0; adSumAlphaN[i] += dAlphaN; /*weight by pi*/ dLogE -= adPi[i] * lngammaAlphaN; /*weight by pi*/ } } dLogEAlpha -= gsl_sf_lngamma(dSumAlpha); for(i = 0; i < N; i++) dLogE += adPi[i] * gsl_sf_lngamma(adSumAlphaN[i]); return dLogE + dWeight*dLogEAlpha + GAMMA_NU*dSumAlpha - GAMMA_ITA * dSumLambda; } static void neg_log_derive_evidence_lambda_pi(const gsl_vector *ptLambda, void *params, gsl_vector* g) { const struct data_t *data = (const struct data_t *) params; const int S = data->S, N = data->N, *aanX = data->aanX; const double *adPi = data->adPi; int i, j; double adDeriv[S], adStore[N], adAlpha[S]; double dSumStore = 0.0, dStore = 0.0; double dWeight = 0; for (i = 0; i < N; i++) { adStore[i] = 0.0; dWeight += adPi[i]; } for (j = 0; j < S; j++) { adAlpha[j] = exp(gsl_vector_get(ptLambda, j)); dStore += adAlpha[j]; adDeriv[j] = dWeight* gsl_sf_psi(adAlpha[j]); double alphaS0 = gsl_sf_psi(adAlpha[j]); for (i = 0; i < N; i++) { int dN = aanX[j * N + i]; double dAlphaN = adAlpha[j] + dN; double psiAlphaN = dN ? gsl_sf_psi(dAlphaN) : alphaS0; adDeriv[j] -= adPi[i] * psiAlphaN; adStore[i] += dAlphaN; } } for (i = 0; i < N; i++) dSumStore += adPi[i] * gsl_sf_psi(adStore[i]); dStore = dWeight * gsl_sf_psi(dStore); for (j = 0; j < S; j++) { double value = adAlpha[j] * (GAMMA_NU + adDeriv[j] - dStore + dSumStore) - GAMMA_ITA; gsl_vector_set(g, j, value); } } static void neg_log_FDF_lamba_pi(const gsl_vector *x, void *params, double *f, gsl_vector *g) { *f = neg_log_evidence_lambda_pi(x, params); neg_log_derive_evidence_lambda_pi(x, params, g); } static void optimise_lambda_k(double *adLambdaK, struct data_t *data, double *adZ) { const int S = data->S; int i, status; size_t iter = 0; const gsl_multimin_fdfminimizer_type *T; gsl_multimin_fdfminimizer *s; gsl_multimin_function_fdf fdf; gsl_vector *ptLambda; /*initialise vector*/ ptLambda = gsl_vector_alloc(S); for (i = 0; i < S; i++) gsl_vector_set(ptLambda, i, adLambdaK[i]); /*initialise function to be solved*/ data->adPi = adZ; fdf.n = S; fdf.f = neg_log_evidence_lambda_pi; fdf.df = neg_log_derive_evidence_lambda_pi; fdf.fdf = neg_log_FDF_lamba_pi; fdf.params = data; T = gsl_multimin_fdfminimizer_vector_bfgs2; s = gsl_multimin_fdfminimizer_alloc(T, S); gsl_multimin_fdfminimizer_set(s, &fdf, ptLambda, 1.0e-6, 0.1); do { iter++; status = gsl_multimin_fdfminimizer_iterate(s); if (status) break; status = gsl_multimin_test_gradient(s->gradient, 1e-3); } while (status == GSL_CONTINUE && iter < MAX_GRAD_ITER); for (i = 0; i < S; i++) adLambdaK[i] = gsl_vector_get(s->x, i); gsl_vector_free(ptLambda); gsl_multimin_fdfminimizer_free(s); } static double neg_log_evidence_i(const struct data_t *data, const int *anX, const double* adLambda, const double* aadLnGammaLambda0) { int j; const int S = data->S, N = data->N; double dLogE = 0.0, dLogEAlpha = 0.0, dSumAlpha = 0.0, dSumAlphaN = 0.0; for (j = 0; j < S; j++) { const double n = anX[j * N]; const double dAlpha = exp(adLambda[j]); const double dAlphaN = n + dAlpha; dLogEAlpha += aadLnGammaLambda0[j]; dSumAlpha += dAlpha; dSumAlphaN += dAlphaN; dLogE -= n ? gsl_sf_lngamma(dAlphaN) : aadLnGammaLambda0[j] ; } dLogEAlpha -= gsl_sf_lngamma(dSumAlpha); dLogE += gsl_sf_lngamma(dSumAlphaN); return dLogE + dLogEAlpha; } static void calc_z(double **aadZ, const struct data_t *data, const double *adW, double **aadLambda) { int i, k, j; const int N = data->N, K = data->K, S = data->S; double adStore[K]; double *aadLngammaLambda0 = (double*)calloc(S*K,sizeof(double)); for(k = 0; k < K; k++) { for(j = 0; j < S; j++) { const double dAlpha = exp(aadLambda[k][j]); aadLngammaLambda0[k*S +j] = gsl_sf_lngamma(dAlpha); } } for (i = 0; i < N; i ++) { double dSum = 0.0; double dOffset = BIG_DBL; for (k = 0; k < K; k++) { double dNegLogEviI = neg_log_evidence_i(data, data->aanX + i, aadLambda[k], aadLngammaLambda0 + k*S); if (dNegLogEviI < dOffset) dOffset = dNegLogEviI; adStore[k] = dNegLogEviI; } for (k = 0; k < K; k++) { aadZ[k][i] = adW[k] * exp(-(adStore[k] - dOffset)); dSum += aadZ[k][i]; } for (k = 0; k < K; k++) aadZ[k][i] /= dSum; } } static double neg_log_likelihood(double *adW, double** aadLambda, const struct data_t *data) { const int S = data->S, N = data->N, K = data->K, *aanX = data->aanX; int i, j, k; double adPi[K], adLogBAlpha[K]; double dRet = 0.0, dL5 = 0.0, dL6 = 0.0, dL7 = 0.0, dL8 = 0.0; double dK = K, dN = N, dS = S; double *aadLngammaLambda0 = (double*)calloc(S*K,sizeof(double)); for (k = 0; k < K; k++){ double dSumAlphaK = 0.0; adLogBAlpha[k] = 0.0; adPi[k] = adW[k]/dN; for (j = 0; j < S; j++){ double dAlpha = exp(aadLambda[k][j]); double lngammaAlpha = gsl_sf_lngamma(dAlpha); aadLngammaLambda0[k * S + j] = lngammaAlpha; dSumAlphaK += dAlpha; adLogBAlpha[k] += lngammaAlpha; } adLogBAlpha[k] -= gsl_sf_lngamma(dSumAlphaK); } for (i = 0; i < N; i++) { double dProb = 0.0, dFactor = 0.0, dSum = 0.0, adLogStore[K], dOffset = -BIG_DBL; for (j = 0; j < S; j++) { dSum += aanX[j * N + i]; dFactor += gsl_sf_lngamma(aanX[j * N + i] + 1.0); } dFactor -= gsl_sf_lngamma(dSum + 1.0); for (k = 0; k < K; k++) { double dSumAlphaKN = 0.0, dLogBAlphaN = 0.0; for (j = 0; j < S; j++) { int countN = aanX[j * N + i]; double dAlphaN = exp(aadLambda[k][j]) + countN; dSumAlphaKN += dAlphaN; dLogBAlphaN += countN ? gsl_sf_lngamma(dAlphaN) : aadLngammaLambda0[k * S + j]; } dLogBAlphaN -= gsl_sf_lngamma(dSumAlphaKN); adLogStore[k] = dLogBAlphaN - adLogBAlpha[k] - dFactor; if (adLogStore[k] > dOffset) dOffset = adLogStore[k]; } for (k = 0; k < K; k++) dProb += adPi[k]*exp(-dOffset + adLogStore[k]); dRet += log(dProb)+dOffset; } dL5 = -dS * dK * gsl_sf_lngamma(GAMMA_ITA); dL6 = GAMMA_ITA * dK * dS * log(GAMMA_NU); for (i = 0; i < K; i++) for (j = 0; j < S; j++) { dL7 += exp(aadLambda[i][j]); dL8 += aadLambda[i][j]; } dL7 *= -GAMMA_NU; dL8 *= GAMMA_ITA; return -dRet -dL5 - dL6 -dL7 -dL8; } static void hessian(gsl_matrix* ptHessian, const double* adLambda, const struct data_t *data) { const int S = data->S, N = data->N, *aanX = data->aanX; const double *adPi = data->adPi; int i = 0, j = 0; double adAlpha[S], adAJK[S], adCJK[S], adAJK0[S], adCJK0[S]; double dCK0 = 0.0, dAK0; double dCSum, dAlphaSum = 0.0, dW = 0.0, dCK = 0.0, dAK; for (j = 0; j < S; j++) { adAlpha[j] = exp(adLambda[j]); dAlphaSum += adAlpha[j]; adAJK0[j] = adAJK[j] = adCJK0[j] = adCJK[j] = 0.0; const double dPsiAlpha = gsl_sf_psi(adAlpha[j]); const double dPsi1Alpha = gsl_sf_psi_1(adAlpha[j]); for (i = 0; i < N; i++) { const int n = aanX[j * N + i]; adCJK0[j] += adPi[i] * n ? gsl_sf_psi(adAlpha[j] + n) : dPsiAlpha; adAJK0[j] += adPi[i] * dPsiAlpha; adCJK[j] += adPi[i] * n ? gsl_sf_psi_1(adAlpha[j] + n): dPsi1Alpha; adAJK[j] += adPi[i] * dPsi1Alpha; } } for (i = 0; i < N; i++) { dW += adPi[i]; dCSum = 0.0; for (j = 0; j < S; j++) dCSum += adAlpha[j] + aanX[j * N + i]; dCK += adPi[i]*gsl_sf_psi_1(dCSum); dCK0 += adPi[i]*gsl_sf_psi(dCSum); } dAK = dW * gsl_sf_psi_1(dAlphaSum); dAK0 = dW * gsl_sf_psi(dAlphaSum); for (i = 0; i < S; i++) for (j = 0; j < S; j++) { double dVal = 0.0; if (i == j) { double dG1 = -adAlpha[i] * (dAK0 - dCK0 + adCJK0[i] - adAJK0[i]); double dG2 = -adAlpha[i] * adAlpha[i]*(dAK - dCK + adCJK[i] - adAJK[i]); double dG3 = adAlpha[i]*GAMMA_NU; dVal = dG1 + dG2 + dG3; } else dVal = -adAlpha[i] * adAlpha[j] * (dAK - dCK); gsl_matrix_set(ptHessian, i, j, dVal); } } static void group_output(struct data_t *data, double** aadZ) { const int N = data->N, K = data->K; int i, k; for(k = 0; k < K; k++) for (i = 0; i < N; i++) data->group[k * N + i] = aadZ[k][i]; } static void mixture_output(struct data_t *data, double *adW, double** aadLambda, double **aadErr) { const int N = data->N, S = data->S; int i, k; for (k = 0; k < data->K; k++) data->mixture_wt[k] = adW[k] / N; for (i = 0; i < data->S; i++) { for (k = 0; k < data->K; k++) { double dErr = aadErr[k][i], dL = 0.0, dU = 0.0; int bIll = FALSE; if (dErr >= 0.0) { dErr = sqrt(dErr); if (dErr < 100.0) { dL = exp(aadLambda[k][i] - 2.0*dErr); dU = exp(aadLambda[k][i] + 2.0*dErr); } else bIll = TRUE; } else bIll = TRUE; if (bIll) dL = dU = R_NaN; data->fit_lower[k * S + i] = dL; data->fit_mpe[k * S + i] = exp(aadLambda[k][i]); data->fit_upper[k * S + i] = dU; } } } void dirichlet_fit_main(struct data_t *data, int rseed) { const int N = data->N, S = data->S, K = data->K; int i, j, k; gsl_rng *ptGSLRNG; gsl_rng_env_setup(); gsl_set_error_handler_off(); ptGSLRNG = gsl_rng_alloc(gsl_rng_default); gsl_set_error_handler_off(); gsl_rng_set(ptGSLRNG, rseed); /* allocate matrices */ double **aadZ, **aadLambda, **aadErr, *adW; adW = (double *) calloc(K, sizeof(double)); aadZ = (double **) calloc(K, sizeof(double *)); aadLambda = (double **) calloc(K, sizeof(double *)); aadErr = (double **) calloc(K, sizeof(double*)); aadZ[0] = (double *) calloc(K * N, sizeof(double)); aadLambda[0] = (double *) calloc(K * S, sizeof(double)); aadErr[0] = (double *) calloc(K * S, sizeof(double)); for (k = 1; k < K; k++) { aadZ[k] = aadZ[0] + k * N; aadLambda[k] = aadLambda[0] + k * S; aadErr[k] = aadErr[0] + k * S; } /* soft k means initialiser */ kmeans(data, ptGSLRNG, adW, aadZ, aadLambda); for (k = 0; k < K; k++) { adW[k] = 0.0; for (i = 0; i < N; i++) adW[k] += aadZ[k][i]; } if (data->verbose) Rprintf(" Expectation Maximization setup\n"); for (k = 0; k < K; k++) { for (j = 0; j < S; j++) { const double x = aadLambda[k][j]; aadLambda[k][j] = (x > 0.0) ? log(x) : -10; } optimise_lambda_k(aadLambda[k], data, aadZ[k]); } /* simple EM algorithm */ int iter = 0; double dNLL = 0.0, dNew, dChange = BIG_DBL; if (data->verbose) Rprintf(" Expectation Maximization\n"); while (dChange > 1.0e-6 && iter < 100) { calc_z(aadZ, data, adW, aadLambda); /* latent var expectation */ for (k = 0; k < K; k++) /* mixture components, given pi */ optimise_lambda_k(aadLambda[k], data, aadZ[k]); for (k = 0; k < K; k++) { /* current likelihood & weights */ adW[k] = 0.0; for(i = 0; i < N; i++) adW[k] += aadZ[k][i]; } dNew = neg_log_likelihood(adW, aadLambda, data); dChange = fabs(dNLL - dNew); dNLL = dNew; iter++; R_CheckUserInterrupt(); if (data->verbose && (iter % 10) == 0) Rprintf(" iteration %d change %f\n", iter, dChange); } /* hessian */ if (data->verbose) Rprintf(" Hessian\n"); gsl_matrix *ptHessian = gsl_matrix_alloc(S, S), *ptInverseHessian = gsl_matrix_alloc(S, S); gsl_permutation *p = gsl_permutation_alloc(S); double dLogDet = 0., dTemp; int signum, status; for (k = 0; k < K; k++) { data->adPi = aadZ[k]; if (k > 0) dLogDet += 2.0 * log(N) - log(adW[k]); hessian(ptHessian, aadLambda[k], data); status = gsl_linalg_LU_decomp(ptHessian, p, &signum); gsl_linalg_LU_invert(ptHessian, p, ptInverseHessian); for (j = 0; j < S; j++) { aadErr[k][j] = gsl_matrix_get(ptInverseHessian, j, j); dTemp = gsl_matrix_get(ptHessian, j, j); dLogDet += log(fabs(dTemp)); } } gsl_matrix_free(ptHessian); gsl_matrix_free(ptInverseHessian); gsl_permutation_free(p); /* results */ double dP = K * S + K - 1; data->NLE = dNLL; data->LogDet = dLogDet; data->fit_laplace = dNLL + 0.5 * dLogDet - 0.5 * dP * log(2. * M_PI); data->fit_bic = dNLL + 0.5 * log(N) * dP; data->fit_aic = dNLL + dP; group_output(data, aadZ); mixture_output(data, adW, aadLambda, aadErr); free(aadErr[0]); free(aadErr); free(aadLambda[0]); free(aadLambda); free(aadZ[0]); free(aadZ); free(adW); } DirichletMultinomial/src/dirichlet_fit_main.h0000644000175400017540000000064613556117225022514 0ustar00biocbuildbiocbuild#ifndef _DIRICHLET_FIT_MAIN_H_ #define _DIRICHLET_FIT_MAIN_H_ #include struct data_t { Rboolean verbose; int N, S, K; const int *aanX; double* adPi; /* result */ double NLE, LogDet; double *group; double *mixture_wt; double fit_laplace, fit_bic, fit_aic, *fit_lower, *fit_mpe, *fit_upper; }; void dirichlet_fit_main(struct data_t *data, int rseed); #endif DirichletMultinomial/vignettes/0000755000175400017540000000000013556154024017737 5ustar00biocbuildbiocbuildDirichletMultinomial/vignettes/DirichletMultinomial.Rnw0000644000175400017540000002327513556117225024564 0ustar00biocbuildbiocbuild%\VignetteIndexEntry{An introduction to DirichletMultinomial} %\VignetteDepends{} %\VignetteKeywords{Microbial metagenomic clustering and classification} %\VignettePackage{DirichletMultinomial} \documentclass[]{article} \usepackage{authblk} \usepackage{times} \usepackage{hyperref} \newcommand{\Rfunction}[1]{{\texttt{#1}}} \newcommand{\Robject}[1]{{\texttt{#1}}} \newcommand{\Rpackage}[1]{{\textit{#1}}} \newcommand{\Rfunarg}[1]{{\texttt{#1}}} \newcommand{\Rclass}[1]{{\textit{#1}}} \newcommand{\Rcode}[1]{{\texttt{#1}}} \newcommand{\software}[1]{\textsf{#1}} \newcommand{\R}{\software{R}} \newcommand{\DirichletMultinomial}{\Rpackage{DirichletMultinomial}} \title{\Rpackage{DirichletMultinomial} for Clustering and Classification of Microbiome Data} \author{Martin Morgan} \date{Modified: 6 March 2012. Compiled: \today} \begin{document} \maketitle This document illustrates the main features of the \Rpackage{DirichletMultinomial} package, and in the process replicates key tables and figures from \cite{10.1371/journal.pone.0030126}. We start by loading the package, in addition to the packages \Rpackage{lattice} (for visualization) and \Rpackage{parallel} (for use of multiple cores during cross-validation). %% <>= library(DirichletMultinomial) library(lattice) library(xtable) library(parallel) @ %% We set the width of \R{} output to 70 characters, and the number of floating point digits displayed to two. The \Robject{full} flag is set to \Rcode{FALSE}, so that cached values are used instead of re-computing during production of this vignette. The package defines a set of standard colors; we use \Rcode{.qualitative} during visualization. \Rfunction{dev.off} is redefined to return without displaying results %% <>= options(width=70, digits=2) full <- FALSE .qualitative <- DirichletMultinomial:::.qualitative dev.off <- function(...) invisible(grDevices::dev.off(...)) @ \section{Data} The data used in \cite{10.1371/journal.pone.0030126} is included in the package. We read the data in to a matrix \Robject{count} of samples $\times$ taxa. %% <>= fl <- system.file(package="DirichletMultinomial", "extdata", "Twins.csv") count <- t(as.matrix(read.csv(fl, row.names=1))) count[1:5, 1:3] @ %% Figure~\ref{fig:taxon-counts} shows the distribution of reads from each taxon, on a log scale. %% <>= cnts <- log10(colSums(count)) pdf("taxon-counts.pdf") densityplot(cnts, xlim=range(cnts), xlab="Taxon representation (log 10 count)") dev.off() @ \begin{figure} \centering \includegraphics[width=.65\textwidth]{taxon-counts} \caption{Density of taxa, across samples} \label{fig:taxon-counts} \end{figure} \section{Clustering} The \Rfunction{dmn} function fits a Dirichlet-Multinomial model, taking as input the count data and a parameter $k$ representing the number of Dirichlet components to model. Here we fit the count data to values of $k$ from 1 to 7, displaying the result for $k = 4$. A sense of the model return value is provided by the documentation for the \R{} object \Robject{fit}, \Rcode{class ? DMN}. %% <>= if (full) { fit <- mclapply(1:7, dmn, count=count, verbose=TRUE) save(fit, file=file.path(tempdir(), "fit.rda")) } else data(fit) fit[[4]] @ %% The return value can be queried for measures of fit (Laplace, AIC, BIC); these are plotted for different $k$ in Figure~\ref{fig:min-laplace}. The best fit is for $k=4$ distinct Dirichlet components. %% <>= lplc <- sapply(fit, laplace) pdf("min-laplace.pdf") plot(lplc, type="b", xlab="Number of Dirichlet Components", ylab="Model Fit") dev.off() (best <- fit[[which.min(lplc)]]) @ %% In addition to \Rfunction{laplace} goodness of fit can be assessed with the \Rfunction{AIC} and \Rfunction{BIC} functions. \begin{figure} \centering \includegraphics[width=.65\textwidth]{min-laplace} \caption{Model fit as a function of Dirichlet component number} \label{fig:min-laplace} \end{figure} The \Rfunction{mixturewt} function reports the weight $\pi$ and homogeneity $\theta$ (large values are more homogeneous) of the fitted model. \Rfunction{mixture} returns a matrix of sample x estimated Dirichlet components; the argument \Rfunarg{assign} returns a vector of length equal to the number of samples indicating the component with maximum value. %% <>= mixturewt(best) head(mixture(best), 3) @ %% The \Rfunction{fitted} function describes the contribution of each taxonomic group (each point in the panels of Figure~\ref{fig:fitted} to the Dirichlet components; the diagonal nature of the points in a panel suggest that the Dirichlet components are correlated, perhaps reflecting overall numerical abundance. %% <>= pdf("fitted.pdf") splom(log(fitted(best))) dev.off() @ \begin{figure} \centering \includegraphics[width=.65\textwidth]{fitted} \caption{Taxa fitted to Dirichlet components 1-4.} \label{fig:fitted} \end{figure} <>= @ <>= @ The posterior mean difference between the best and single-component Dirichlet multinomial model measures how each component differs from the population average; the sum is a measure of total difference from the mean. %% <>= p0 <- fitted(fit[[1]], scale=TRUE) # scale by theta p4 <- fitted(best, scale=TRUE) colnames(p4) <- paste("m", 1:4, sep="") (meandiff <- colSums(abs(p4 - as.vector(p0)))) sum(meandiff) @ %% Table~\ref{tab:meandiff} summarizes taxonomic contributions to each Dirichlet component. %% <>= diff <- rowSums(abs(p4 - as.vector(p0))) o <- order(diff, decreasing=TRUE) cdiff <- cumsum(diff[o]) / sum(diff) df <- head(cbind(Mean=p0[o], p4[o,], diff=diff[o], cdiff), 10) @ <>= xtbl <- xtable(df, caption="Taxonomic contributions (10 largest) to Dirichlet components.", label="tab:meandiff", align="lccccccc") print(xtbl, hline.after=0, caption.placement="top") @ Figure~\ref{fig:heatmap1} shows samples arranged by Dirichlet component, with samples placed into the component for which they had the largest fitted value. %% <>= pdf("heatmap1.pdf") heatmapdmn(count, fit[[1]], best, 30) dev.off() @ \begin{figure} \centering \includegraphics[width=.65\textwidth]{heatmap1} \caption{Samples arranged by Dirichlet component. Narrow columns are samples, broader columns component averages. Rows are taxonomic groups. Color represents square-root counts, with dark colors corresponding to larger counts.} \label{fig:heatmap1} \end{figure} \section{Generative classifier} The following reads in phenotypic information (`Lean', `Obese', `Overweight') for each sample. %% <>= fl <- system.file(package="DirichletMultinomial", "extdata", "TwinStudy.t") pheno0 <- scan(fl) lvls <- c("Lean", "Obese", "Overwt") pheno <- factor(lvls[pheno0 + 1], levels=lvls) names(pheno) <- rownames(count) table(pheno) @ %% Here we subset the count data into sub-counts, one for each phenotype. We retain only the Lean and Obese groups for subsequent analysis. %% <>= counts <- lapply(levels(pheno), csubset, count, pheno) sapply(counts, dim) keep <- c("Lean", "Obese") count <- count[pheno %in% keep,] pheno <- factor(pheno[pheno %in% keep], levels=keep) @ The \Rfunction{dmngroup} function identifies the best (minimum Laplace score) Dirichlet-multinomial model for each group. %% <>= if (full) { bestgrp <- dmngroup(count, pheno, k=1:5, verbose=TRUE, mc.preschedule=FALSE) save(bestgrp, file=file.path(tempdir(), "bestgrp.rda")) } else data(bestgrp) @ %% The Lean group is described by a model with one component, the Obese group by a model with three components. Three of the four Dirichlet components of the original single group (\Rcode{best}) model are represented in the Obese group, the other in the Lean group. The total Laplace score of the two group model is less than of the single-group model, indicating information gain from considering groups separately. %% <>= bestgrp lapply(bestgrp, mixturewt) c(sapply(bestgrp, laplace), `Lean+Obese`=sum(sapply(bestgrp, laplace)), Single=laplace(best)) @ The \Rfunction{predict} function assigns samples to classes; the confusion matrix shows that the classifier is moderately effective. %% <>= xtabs(~pheno + predict(bestgrp, count, assign=TRUE)) @ %% The \Rfunction{cvdmngroup} function performs cross-validation. This is a computationally expensive step. %% <>= if (full) { ## full leave-one-out; expensive! xval <- cvdmngroup(nrow(count), count, c(Lean=1, Obese=3), pheno, verbose=TRUE, mc.preschedule=FALSE) save(xval, file=file.path(tempdir(), "xval.rda")) } else data(xval) @ %% Figure~\ref{fig:roc} shows an ROC curve for the single and two-group classifier. The single group classifier is performing better than the two-group classifier. %% <>= bst <- roc(pheno[rownames(count)] == "Obese", predict(bestgrp, count)[,"Obese"]) bst$Label <- "Single" two <- roc(pheno[rownames(xval)] == "Obese", xval[,"Obese"]) two$Label <- "Two group" both <- rbind(bst, two) pars <- list(superpose.line=list(col=.qualitative[1:2], lwd=2)) pdf("roc.pdf") xyplot(TruePostive ~ FalsePositive, group=Label, both, type="l", par.settings=pars, auto.key=list(lines=TRUE, points=FALSE, x=.6, y=.1), xlab="False Positive", ylab="True Positive") dev.off() @ \begin{figure} \centering \includegraphics[width=.65\textwidth]{roc} \caption{Receiver-operator curves for the single and two-group classifiers.} \label{fig:roc} \end{figure} <>= toLatex(sessionInfo()) @ \bibliographystyle{abbrv} \bibliography{References} \end{document} DirichletMultinomial/vignettes/References.bib0000644000175400017540000000520013556117225022475 0ustar00biocbuildbiocbuild@article{10.1371/journal.pone.0030126, author = {Holmes, , Ian AND Harris, , Keith AND Quince, , Christopher}, journal = {PLoS ONE}, publisher = {Public Library of Science}, title = {Dirichlet Multinomial Mixtures: Generative Models for Microbial Metagenomics}, year = {2012}, month = {02}, volume = {7}, url = {http://dx.doi.org/10.1371%2Fjournal.pone.0030126}, pages = {e30126}, abstract = {

We introduce Dirichlet multinomial mixtures (DMM) for the probabilistic modelling of microbial metagenomics data. This data can be represented as a frequency matrix giving the number of times each taxa is observed in each sample. The samples have different size, and the matrix is sparse, as communities are diverse and skewed to rare taxa. Most methods used previously to classify or cluster samples have ignored these features. We describe each community by a vector of taxa probabilities. These vectors are generated from one of a finite number of Dirichlet mixture components each with different hyperparameters. Observed samples are generated through multinomial sampling. The mixture components cluster communities into distinct ‘metacommunities’, and, hence, determine envirotypes or enterotypes, groups of communities with a similar composition. The model can also deduce the impact of a treatment and be used for classification. We wrote software for the fitting of DMM models using the ‘evidence framework’ (http://code.google.com/p/microbedmm/). This includes the Laplace approximation of the model evidence. We applied the DMM model to human gut microbe genera frequencies from Obese and Lean twins. From the model evidence four clusters fit this data best. Two clusters were dominated by Bacteroides and were homogenous; two had a more variable community composition. We could not find a significant impact of body mass on community structure. However, Obese twins were more likely to derive from the high variance clusters. We propose that obesity is not associated with a distinct microbiota but increases the chance that an individual derives from a disturbed enterotype. This is an example of the ‘Anna Karenina principle (AKP)’ applied to microbial communities: disturbed states having many more configurations than undisturbed. We verify this by showing that in a study of inflammatory bowel disease (IBD) phenotypes, ileal Crohn's disease (ICD) is associated with a more variable community.

}, number = {2}, doi = {10.1371/journal.pone.0030126} }