From ab56cc0826a07b4ebae424620b9061e13f4b4f07 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:17:15 +0200 Subject: [PATCH 001/134] docs: record upgrade scope and scientific validation plan --- docs/UPGRADE_WORKLOG.md | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 docs/UPGRADE_WORKLOG.md diff --git a/docs/UPGRADE_WORKLOG.md b/docs/UPGRADE_WORKLOG.md new file mode 100644 index 0000000..0e5ac39 --- /dev/null +++ b/docs/UPGRADE_WORKLOG.md @@ -0,0 +1,40 @@ +# MAniR scalable-analysis upgrade worklog + +Base revision: `0c149e8e082a04d9aee565ecf038855fd925a974` (main, May 2023). +Work branch: `upgrade/scalable-analysis`. + +## Scope +Implement the technical upgrade and research features from the audit, excluding +arXiv manuscript drafting. Do not change main until the upgrade is reviewed. +Preserve the historical original in Git and retain compatibility where practical. + +## Scientific invariants +- Numeric matrix entries must not change when reordering, plotting or exporting. +- Keep row and column sample identifiers aligned; detect duplicate and missing IDs. +- Respect the independent measurement scales of matrices. +- Similarity, correlation and distance matrices require distinct interpretations. +- Diagonal and mirrored pairs are not independent observations. +- Any sampled comparison must disclose the sample size and sampling method. +- Permutation tests must permute isolate labels, never independent matrix cells. +- Reference results on the 2023 sample workbooks must match original input values. + +## Work units +1. Input, validation and matrix matching; numeric/unit tests. +2. Shared clustering, scale handling and pairwise statistics. +3. Small and large plot engines; lazy loading, caching and navigation. +4. Shiny UI/server integration, metadata, exports and compatibility. +5. Benchmark harness, CI, dependency documentation, tests and README. + +## Verification +The execution environment running this edit does not include R. GitHub Actions +must execute the R test suite and benchmark smoke tests on the pull request. +Record actual timing and hardware before reporting performance improvements; +the benchmark script is infrastructure, not evidence of a speedup. + +## Release criteria +- All CI tests green. +- No change to existing pairwise numeric inputs during import/export. +- Proven matching ordering across all comparative views. +- Tested failure handling for bad/missing IDs, invalid scales and missing data. +- Accurate documentation of large-dataset preview sampling limits. +- Measured, repeated performance comparison before a release speed claim. From 5b76d9e42388ddb1aab6be9312210e325d83a36b Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:18:24 +0200 Subject: [PATCH 002/134] feat: validate symmetric matrices and support tabular and RDS imports --- R/matrix_io.R | 136 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 R/matrix_io.R diff --git a/R/matrix_io.R b/R/matrix_io.R new file mode 100644 index 0000000..93fe0ba --- /dev/null +++ b/R/matrix_io.R @@ -0,0 +1,136 @@ +# Input and validation shared by the Shiny application and command-line tools. + +matrix_sheet_names <- function(path) { + ext <- tolower(tools::file_ext(path)) + if (ext %in% c("xlsx", "xlsm")) return(openxlsx::getSheetNames(path)) + character() +} + +read_matrix_input <- function(path, sheet = NULL, workbook = NULL) { + ext <- tolower(tools::file_ext(path)) + if (ext %in% c("xlsx", "xlsm")) { + if (is.null(sheet) || identical(sheet, "")) stop("Select a matrix worksheet.") + if (is.null(workbook)) workbook <- openxlsx::loadWorkbook(path) + x <- openxlsx::readWorkbook(workbook, sheet = sheet, colNames = TRUE, + rowNames = TRUE) + } else if (ext == "rds") { + x <- readRDS(path) + } else if (ext %in% c("csv", "tsv", "txt", "gz")) { + sep <- if (ext == "tsv" || grepl("\\.tsv\\.gz$", path, ignore.case = TRUE)) "\t" else "," + if (requireNamespace("data.table", quietly = TRUE)) { + x <- data.table::fread(path, sep = sep, data.table = FALSE, + check.names = FALSE, showProgress = FALSE) + if (ncol(x) < 2L) stop("The file needs an ID column and matrix columns.") + ids <- x[[1L]] + x <- x[-1L] + rownames(x) <- as.character(ids) + } else { + x <- utils::read.table(path, sep = sep, header = TRUE, row.names = 1L, + check.names = FALSE, comment.char = "", + stringsAsFactors = FALSE) + } + } else { + stop("Unsupported matrix format. Use XLSX, CSV, TSV, CSV.GZ, TSV.GZ or RDS.") + } + validate_matrix(x) +} + +validate_matrix <- function(x, kind = c("auto", "similarity", "correlation", "distance"), + symmetry_tolerance = 1e-8, allow_missing = TRUE) { + kind <- match.arg(kind) + if (!is.matrix(x) && !is.data.frame(x)) stop("Input must be a matrix or table.") + if (nrow(x) != ncol(x) || nrow(x) < 2L) + stop("The matrix must be square and contain at least two isolates.") + row_ids <- rownames(x) + col_ids <- colnames(x) + if (is.null(row_ids) || is.null(col_ids)) + stop("Both row and column sample IDs are required.") + row_ids <- trimws(row_ids) + col_ids <- trimws(col_ids) + if (anyNA(row_ids) || anyNA(col_ids) || any(!nzchar(row_ids)) || + any(!nzchar(col_ids))) stop("Sample IDs must not be empty.") + if (anyDuplicated(row_ids) || anyDuplicated(col_ids)) + stop("Duplicate sample IDs were found after trimming whitespace.") + if (!setequal(row_ids, col_ids)) { + only_rows <- setdiff(row_ids, col_ids) + only_cols <- setdiff(col_ids, row_ids) + stop(sprintf("Row and column IDs differ. Only in rows: %s. Only in columns: %s.", + paste(head(only_rows, 10L), collapse = ", "), + paste(head(only_cols, 10L), collapse = ", "))) + } + original <- as.matrix(x) + converted <- suppressWarnings(as.numeric(original)) + empty <- is.na(original) | trimws(as.character(original)) == "" + if (any(is.na(converted) & !empty)) + stop("The matrix has nonnumeric values. Check the data worksheets.") + m <- matrix(converted, nrow = nrow(x), ncol = ncol(x), + dimnames = list(row_ids, col_ids)) + m <- m[col_ids, col_ids, drop = FALSE] + if (any(is.infinite(m))) stop("Infinite matrix values are not supported.") + if (!allow_missing && anyNA(m)) stop("Missing matrix values are not allowed.") + if (anyNA(diag(m))) stop("Every diagonal entry must be present.") + if (!identical(is.na(m), is.na(t(m)))) + stop("Missing values must occur in mirrored pairs for a symmetric matrix.") + numeric_diff <- abs(m - t(m)) + if (any(numeric_diff > symmetry_tolerance, na.rm = TRUE)) + stop("The matrix must be symmetric; mirrored cells disagree.") + if (kind == "correlation" && any(m < -1 - symmetry_tolerance | + m > 1 + symmetry_tolerance, na.rm = TRUE)) + stop("Correlation values must lie between -1 and 1.") + if (kind %in% c("similarity", "distance") && + any(m < -symmetry_tolerance, na.rm = TRUE)) + stop("Similarity and distance matrices cannot contain negative values.") + attr(m, "matrix_kind") <- kind + m +} + +read_metadata_input <- function(path, sheet = NULL, workbook = NULL) { + ext <- tolower(tools::file_ext(path)) + if (ext %in% c("xlsx", "xlsm")) { + if (is.null(sheet) || sheet == "None") return(NULL) + if (is.null(workbook)) workbook <- openxlsx::loadWorkbook(path) + x <- openxlsx::readWorkbook(workbook, sheet = sheet, + colNames = TRUE, rowNames = TRUE) + } else if (ext == "rds") { + x <- readRDS(path) + } else { + sep <- if (ext == "tsv" || grepl("\\.tsv\\.gz$", path, ignore.case = TRUE)) "\t" else "," + x <- utils::read.table(path, sep = sep, header = TRUE, row.names = 1L, + check.names = FALSE, stringsAsFactors = FALSE) + } + if (!is.data.frame(x)) x <- as.data.frame(x, stringsAsFactors = FALSE) + ids <- trimws(rownames(x)) + if (any(!nzchar(ids)) || anyDuplicated(ids)) + stop("Metadata must have unique, nonempty sample IDs.") + rownames(x) <- ids + x +} + +align_metadata <- function(metadata, ids) { + if (is.null(metadata)) return(NULL) + if (!all(ids %in% rownames(metadata))) + warning(sprintf("%d isolates have no metadata; their annotations are missing.", + sum(!ids %in% rownames(metadata)))) + metadata[match(ids, rownames(metadata)), , drop = FALSE] +} + +match_matrices <- function(first, second, mode = c("strict", "intersection")) { + mode <- match.arg(mode) + ids1 <- colnames(first) + ids2 <- colnames(second) + if (mode == "strict" && !setequal(ids1, ids2)) + stop(sprintf("The matrices differ: %d IDs only in matrix 1 and %d only in matrix 2. Select 'Shared isolates' to compare the intersection.", + length(setdiff(ids1, ids2)), length(setdiff(ids2, ids1)))) + ids <- if (mode == "strict") ids1 else intersect(ids1, ids2) + if (length(ids) < 2L) stop("At least two shared sample IDs are required.") + list(first = first[ids, ids, drop = FALSE], + second = second[ids, ids, drop = FALSE], + ids = ids, + only_first = setdiff(ids1, ids2), + only_second = setdiff(ids2, ids1)) +} + +write_matrix_csv <- function(m, file) { + utils::write.csv(data.frame(sample_id = rownames(m), m, check.names = FALSE), + file = file, row.names = FALSE, na = "") +} From 93f97830eb9bf06f28d6485c4c8549113c1aea1d Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:19:07 +0200 Subject: [PATCH 003/134] feat: shared clustering, sampled pairwise comparisons and cluster concordance --- R/matrix_analysis.R | 179 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 179 insertions(+) create mode 100644 R/matrix_analysis.R diff --git a/R/matrix_analysis.R b/R/matrix_analysis.R new file mode 100644 index 0000000..cfcfa80 --- /dev/null +++ b/R/matrix_analysis.R @@ -0,0 +1,179 @@ +# Reusable matrix calculations; no Shiny dependencies. + +matrix_order <- function(m, kind = c("auto", "similarity", "correlation", "distance"), + cluster = TRUE, max_cluster = 2000L, linkage = "average") { + kind <- match.arg(kind) + ids <- colnames(m) + if (!cluster || nrow(m) > max_cluster) + return(list(ids = ids, tree = NULL, skipped = nrow(m) > max_cluster)) + x <- m + if (kind == "distance") { + if (any(x < 0, na.rm = TRUE)) stop("Negative dissimilarities are invalid.") + } else if (kind == "correlation") { + x <- 1 - x + } else { + # Includes auto: larger entries mean more similar, regardless of scale. + x <- max(x, na.rm = TRUE) - x + } + if (anyNA(x)) { + replacement <- max(x, na.rm = TRUE) + x[is.na(x)] <- replacement + } + diag(x) <- 0 + d <- stats::as.dist(x) + tree <- if (requireNamespace("fastcluster", quietly = TRUE)) + fastcluster::hclust(d, method = linkage) + else stats::hclust(d, method = linkage) + list(ids = ids[tree$order], tree = tree, skipped = FALSE) +} + +# Return indices of the strictly upper triangle without creating an n*n mask +# for sampled large matrices. Each pair is returned exactly once. +upper_pair_indices <- function(n, max_pairs = 100000L, seed = 1L) { + n <- as.integer(n) + total <- as.double(n) * (n - 1) / 2 + if (n < 2L) stop("At least two isolates are required.") + max_pairs <- max(1L, as.integer(max_pairs)) + if (total <= max_pairs) { + j <- rep.int(seq.int(2L, n), seq.int(1L, n - 1L)) + i <- sequence(seq.int(1L, n - 1L)) + return(list(i = i, j = j, total = total, sampled = FALSE)) + } + # Local RNG restoration prevents an analysis from modifying the session RNG. + had_seed <- exists(".Random.seed", envir = .GlobalEnv, inherits = FALSE) + if (had_seed) old_seed <- get(".Random.seed", envir = .GlobalEnv) + on.exit({ + if (had_seed) assign(".Random.seed", old_seed, envir = .GlobalEnv) + else if (exists(".Random.seed", envir = .GlobalEnv, inherits = FALSE)) + rm(".Random.seed", envir = .GlobalEnv) + }, add = TRUE) + set.seed(seed) + k <- sort(sample.int(total, max_pairs)) + j <- ceiling((1 + sqrt(1 + 8 * k)) / 2) + i <- k - (j - 1) * (j - 2) / 2 + list(i = as.integer(i), j = as.integer(j), total = total, sampled = TRUE) +} + +paired_values <- function(a, b, max_pairs = 100000L, seed = 1L) { + if (!identical(dim(a), dim(b)) || + !identical(rownames(a), rownames(b)) || + !identical(colnames(a), colnames(b))) + stop("The matrices must have the same sample order.") + ix <- upper_pair_indices(nrow(a), max_pairs = max_pairs, seed = seed) + x <- a[cbind(ix$i, ix$j)] + y <- b[cbind(ix$i, ix$j)] + good <- is.finite(x) & is.finite(y) + list(data = data.frame(sample_1 = rownames(a)[ix$i[good]], + sample_2 = colnames(a)[ix$j[good]], + first = x[good], second = y[good], + difference = x[good] - y[good]), + total_pairs = ix$total, evaluated_pairs = length(x), + valid_pairs = sum(good), sampled = ix$sampled, seed = seed) +} + +matrix_agreement <- function(pairs) { + d <- pairs$data + if (nrow(d) < 3L) return(list(pearson = NA_real_, spearman = NA_real_, + mae = NA_real_, rmse = NA_real_, n = nrow(d))) + list( + pearson = if (stats::sd(d$first) > 0 && stats::sd(d$second) > 0) + stats::cor(d$first, d$second) else NA_real_, + spearman = if (length(unique(d$first)) > 1L && length(unique(d$second)) > 1L) + suppressWarnings(stats::cor(d$first, d$second, method = "spearman")) + else NA_real_, + # Differences are meaningful only for matrices on comparable scales. + mae = mean(abs(d$difference)), rmse = sqrt(mean(d$difference^2)), + n = nrow(d) + ) +} + +# A Mantel-style label permutation; not an ordinary p-value from treating +# all pairwise edges as independent. Intended for moderate complete matrices. +matrix_mantel <- function(a, b, permutations = 999L, seed = 1L, + method = c("pearson", "spearman"), max_n = 400L) { + method <- match.arg(method) + if (nrow(a) != nrow(b) || + !identical(rownames(a), rownames(b)) || + !identical(colnames(a), colnames(b))) + stop("Match matrices before calculating the Mantel test.") + n <- nrow(a) + if (n > max_n) stop("Mantel permutation exceeds the configured isolate limit.") + if (anyNA(a) || anyNA(b)) stop("Mantel permutation needs complete matrices.") + idx <- upper.tri(a) + x <- a[idx] + y <- b[idx] + if (stats::sd(x) == 0 || stats::sd(y) == 0) + stop("A constant matrix cannot be tested.") + obs <- suppressWarnings(stats::cor(x, y, method = method)) + permutations <- as.integer(permutations) + if (permutations < 1L) stop("Request at least one permutation.") + had_seed <- exists(".Random.seed", envir = .GlobalEnv, inherits = FALSE) + if (had_seed) old_seed <- get(".Random.seed", envir = .GlobalEnv) + on.exit({ + if (had_seed) assign(".Random.seed", old_seed, envir = .GlobalEnv) + else if (exists(".Random.seed", envir = .GlobalEnv, inherits = FALSE)) + rm(".Random.seed", envir = .GlobalEnv) + }, add = TRUE) + set.seed(seed) + null <- replicate(permutations, { + perm <- sample.int(n) + suppressWarnings(stats::cor(x, b[perm, perm, drop = FALSE][idx], + method = method)) + }) + list(observed = obs, p_two_sided = (1 + sum(abs(null) >= abs(obs))) / + (permutations + 1), permutations = permutations, seed = seed, + method = method) +} + +adjusted_rand <- function(labels_a, labels_b) { + if (length(labels_a) != length(labels_b) || length(labels_a) < 2L) + stop("Both cluster assignments must include the same isolates.") + tab <- table(labels_a, labels_b) + choose2 <- function(z) sum(z * (z - 1) / 2) + nij <- choose2(tab) + ai <- choose2(rowSums(tab)) + bj <- choose2(colSums(tab)) + all_pairs <- choose(length(labels_a), 2) + expected <- ai * bj / all_pairs + maximum <- (ai + bj) / 2 + if (maximum == expected) return(if (nij == maximum) 1 else NA_real_) + (nij - expected) / (maximum - expected) +} + +cluster_concordance <- function(a, b, kind_a = "similarity", + kind_b = "similarity", k = 3L, + max_n = 2000L) { + if (!identical(rownames(a), rownames(b))) stop("Align matrices first.") + if (k < 2L || k >= nrow(a)) stop("Choose between 2 and n-1 clusters.") + ca <- matrix_order(a, kind = kind_a, max_cluster = max_n) + cb <- matrix_order(b, kind = kind_b, max_cluster = max_n) + if (is.null(ca$tree) || is.null(cb$tree)) + stop("Cluster concordance exceeds the configured clustering limit.") + first <- stats::cutree(ca$tree, k = k) + second <- stats::cutree(cb$tree, k = k) + list(ari = adjusted_rand(first, second), + assignments = data.frame(sample_id = rownames(a), + first = unname(first[rownames(a)]), + second = unname(second[rownames(a)])), + contingency = table(first, second)) +} + +replicate_summary <- function(m, metadata, group_column, max_pairs = 100000L) { + if (is.null(metadata) || !group_column %in% names(metadata)) + stop("Select a valid metadata column identifying replicates or groups.") + ids <- rownames(m) + meta <- align_metadata(metadata, ids) + groups <- as.character(meta[[group_column]]) + pp <- upper_pair_indices(nrow(m), max_pairs = max_pairs) + valid <- is.finite(m[cbind(pp$i, pp$j)]) & + !is.na(groups[pp$i]) & !is.na(groups[pp$j]) + values <- m[cbind(pp$i[valid], pp$j[valid])] + within <- groups[pp$i[valid]] == groups[pp$j[valid]] + data.frame(type = c("Within group", "Between groups"), + pairs = c(sum(within), sum(!within)), + mean = c(if (any(within)) mean(values[within]) else NA_real_, + if (any(!within)) mean(values[!within]) else NA_real_), + median = c(if (any(within)) stats::median(values[within]) else NA_real_, + if (any(!within)) stats::median(values[!within]) else NA_real_), + sampled = pp$sampled) +} From 48efd935f768e2f22e9db852e2e5f31703e3f837 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:19:41 +0200 Subject: [PATCH 004/134] feat: add scalable raster previews and compact Plotly matrix renderer --- R/matrix_plot.R | 157 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 R/matrix_plot.R diff --git a/R/matrix_plot.R b/R/matrix_plot.R new file mode 100644 index 0000000..32d800c --- /dev/null +++ b/R/matrix_plot.R @@ -0,0 +1,157 @@ +# Rendering for standard and large matrices. No matrix analysis is performed here. + +ma_colors <- function(palette = "RdBu", n = 256L, reverse = FALSE) { + palettes <- c("RdBu", "BrBG", "PiYG", "PRGn", "PuOr", "RdYlBu", + "YlOrRd", "Viridis", "Blues", "Greens", "Greys") + if (!palette %in% palettes) palette <- "RdBu" + if (palette == "Viridis") return(grDevices::hcl.colors(n, "Viridis")) + if (requireNamespace("RColorBrewer", quietly = TRUE)) { + max_colors <- min(11L, RColorBrewer::brewer.pal.info[palette, "maxcolors"]) + base <- RColorBrewer::brewer.pal(max_colors, palette) + } else { + base <- grDevices::hcl.colors(11L, "Blue-Red 3") + } + if (reverse) base <- rev(base) + grDevices::colorRampPalette(base)(n) +} + +ma_scale <- function(x, log_scale = FALSE) { + original <- x + valid <- is.finite(x) + if (!any(valid)) stop("There are no finite values to display.") + if (log_scale) { + if (any(x[valid] <= 0)) stop("Log scaling requires strictly positive values.") + x[valid] <- log(x[valid]) + } + rng <- range(x[valid]) + if (diff(rng) == 0) { + x[valid] <- 0.5 + } else { + x[valid] <- (x[valid] - rng[1L]) / diff(rng) + } + x[!valid] <- NA_real_ + attr(x, "original_range") <- range(original[valid]) + x +} + +ma_combined <- function(first, second, log_scale = FALSE) { + if (!identical(dimnames(first), dimnames(second))) + stop("Both matrices must have the same sample ordering.") + a <- ma_scale(first, log_scale) + b <- ma_scale(second, log_scale) + combined <- a + combined[lower.tri(combined)] <- b[lower.tri(b)] + diag(combined) <- 0.5 + actual <- first + actual[lower.tri(actual)] <- second[lower.tri(second)] + list(values = combined, original = actual, + first_range = attr(a, "original_range"), + second_range = attr(b, "original_range")) +} + +# Plotly is intentionally limited to manageable interactive views; the +# large-matrix renderer does not transmit hundreds of thousands of cell labels. +ma_interactive <- function(m, name = "Matrix", palette = "RdBu", + show_numbers = FALSE, combined = FALSE, + first_name = "Matrix 1", second_name = "Matrix 2", + log_scale = FALSE) { + if (!requireNamespace("plotly", quietly = TRUE)) + stop("Install the plotly package for interactive plots.") + n <- nrow(m) + if (n > 300L) stop("Use the raster renderer for matrices above 300 isolates.") + if (combined) { + norm <- ma_combined(m$first, m$second, log_scale) + z <- norm$values + original <- norm$original + } else { + original <- m + z <- ma_scale(m, log_scale) + } + ids <- rownames(original) + hover <- matrix("", nrow = n, ncol = n) + for (j in seq_len(n)) { + dataset <- if (combined) ifelse(seq_len(n) < j, first_name, + ifelse(seq_len(n) > j, second_name, "Diagonal")) else name + hover[, j] <- paste0("Row: ", ids, "
Column: ", ids[j], + "
", dataset, ": ", format(original[, j], + digits = 8L, trim = TRUE)) + } + note <- NULL + if (show_numbers && n <= 70L) { + note <- matrix(format(round(original, 2L), trim = TRUE), + nrow = n, ncol = n) + } + p <- plotly::plot_ly( + x = ids, y = rev(ids), z = z[n:1L, , drop = FALSE], + text = hover[n:1L, , drop = FALSE], + type = "heatmap", colors = ma_colors(palette), + zmin = 0, zmax = 1, hoverinfo = "text", + showscale = TRUE + ) + if (!is.null(note)) { + # Text labels only for small matrices; large labels overload the browser. + for (i in seq_len(n)) { + p <- plotly::add_annotations(p, x = ids, y = ids[i], + text = note[i, ], showarrow = FALSE, + font = list(size = if (n > 35L) 7L else 10L)) + } + } + plotly::layout(p, title = name, + xaxis = list(title = "", side = "bottom", tickangle = -65, + automargin = TRUE), + yaxis = list(title = "", automargin = TRUE), + margin = list(l = 110, b = 130, r = 30, t = 55)) +} + +# Representative-pixel preview: never use the reduced view for numerical +# inference. The original matrix remains available for exact cell inspection. +ma_preview <- function(m, max_side = 512L) { + n <- nrow(m) + ix <- unique(as.integer(round(seq.int(1L, n, length.out = min(n, max_side))))) + list(matrix = m[ix, ix, drop = FALSE], indices = ix, full_n = n, + sampled = length(ix) < n) +} + +ma_raster <- function(m, palette = "RdBu", title = "", + max_side = 512L, log_scale = FALSE, + metadata = NULL, group_column = NULL, + normalized = FALSE) { + preview <- ma_preview(m, max_side) + x <- preview$matrix + z <- if (normalized) x else ma_scale(x, log_scale) + cols <- ma_colors(palette) + values <- as.integer(1 + round(z * (length(cols) - 1L))) + color_matrix <- matrix(NA_character_, nrow(z), ncol(z)) + finite <- is.finite(z) + color_matrix[finite] <- cols[values[finite]] + color_matrix[!finite] <- "#E5E5E5" + # Rows of a raster are drawn top to bottom. + pix <- grDevices::as.raster(color_matrix) + n <- nrow(x) + show_at <- unique(as.integer(round(seq(1, n, length.out = min(n, 16L))))) + plot(NA, xlim = c(0.5, n + 0.5), ylim = c(0.5, n + 0.5), + xaxs = "i", yaxs = "i", asp = 1, axes = FALSE, + xlab = "", ylab = "", main = title) + graphics::rasterImage(pix, 0.5, 0.5, n + 0.5, n + 0.5, + interpolate = FALSE) + axis(1, at = show_at, labels = colnames(x)[show_at], + las = 2, cex.axis = 0.55) + axis(2, at = n + 1L - show_at, labels = rownames(x)[show_at], + las = 2, cex.axis = 0.55) + box() + if (preview$sampled) + mtext(sprintf("Representative view: %d of %d isolates. Inspect original values in the table.", + n, preview$full_n), side = 3, line = 0, cex = 0.75) + invisible(preview) +} + +ma_save_png <- function(m, file, palette = "RdBu", title = "", + max_side = 1200L, normalized = FALSE) { + grDevices::png(file, width = 1700L, height = 1600L, res = 160L) + on.exit(grDevices::dev.off(), add = TRUE) + op <- graphics::par(mar = c(9, 9, 5, 2)) + on.exit(graphics::par(op), add = TRUE) + ma_raster(m, palette = palette, title = title, max_side = max_side, + normalized = normalized) + invisible(file) +} From c6f8702c78d06ea765d0bd83fc473908d8122b22 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:20:14 +0200 Subject: [PATCH 005/134] refactor: load shared MAniR modules and declare reproducible runtime dependencies --- app.R | 51 +++++++++++++-------------------------------------- 1 file changed, 13 insertions(+), 38 deletions(-) diff --git a/app.R b/app.R index a5228b6..8fe5628 100644 --- a/app.R +++ b/app.R @@ -1,38 +1,13 @@ -# -# This is a Shiny web application. You can run the application by clicking -# the 'Run App' button above. -# -# Find out more about building applications with Shiny here: -# -# http://shiny.rstudio.com/ -# - -# For local usage -packages <- c( - "shiny", "shinyjs", "shinyBS", "shinyWidgets", "shinycssloaders", - "openxlsx", "RColorBrewer", "corrplot", "periscope", "heatmaply" -) -new_packages <- packages[!(packages %in% installed.packages()[, "Package"])] -if (length(new_packages)) install.packages(new.packages) -lapply(packages, require, character.only = TRUE) - - -# For shinyapps.io -library("shiny") -library("shinyjs") -library("shinyBS") -library("shinyWidgets") -library("openxlsx") -library("RColorBrewer") -library("corrplot") -library("periscope") -library("heatmaply") -library("plotly") - -# import UI -source("ui.R") -# import server -source("server.R") - -# Run the application -shinyApp(ui = ui, server = server) +# MAniR Shiny entry point. Dependencies are documented in README and renv. +required <- c("shiny", "plotly", "openxlsx", "RColorBrewer") +missing <- setdiff(required, rownames(installed.packages())) +if (length(missing)) + stop("Install required packages before launching: ", + paste(missing, collapse = ", "), + ". See README.md for installation instructions.") +source("R/matrix_io.R", local = TRUE) +source("R/matrix_analysis.R", local = TRUE) +source("R/matrix_plot.R", local = TRUE) +source("ui.R", local = TRUE) +source("server.R", local = TRUE) +shiny::shinyApp(ui = ui, server = server) From 34b4068face84b9a71c008bf54ef939f8624bb26 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:20:33 +0200 Subject: [PATCH 006/134] feat: replace legacy interface with scalable comparison and research tabs --- ui.R | 523 ++++++++++++++--------------------------------------------- 1 file changed, 118 insertions(+), 405 deletions(-) diff --git a/ui.R b/ui.R index bd6fd09..1b0bcc0 100644 --- a/ui.R +++ b/ui.R @@ -1,405 +1,118 @@ -library("shiny") -library("shinyjs") -library("shinyBS") -library("shinyWidgets") -library("openxlsx") -library("RColorBrewer") -library("corrplot") -library("periscope") -library("heatmaply") -library("plotly") - - -jscode <- " -shinyjs.disableTab = function(name) { -var tab = $('.nav li a[data-value=\"' + name + '\"]'); -tab.bind('click.tab', function(e) { -e.preventDefault(); -return false; -}); -tab.addClass('disabled'); -// on hover, show disabled cursor -tab.hover(function() { -$(this).css('cursor','not-allowed'); -}, function() { -$(this).css('cursor','auto'); -}); -} - -shinyjs.enableTab = function(name) { -var tab = $('.nav li a[data-value=\"' + name + '\"]'); -tab.unbind('click.tab'); -tab.removeClass('disabled'); -// reset hover style to hand pointing -tab.hover(function() { -$(this).css('cursor','pointer'); -}, function() { -$(this).css('cursor','auto'); -}); -} - -shinyjs.clickTab = function(name) { -var tab = $('.nav li a[data-value=\"' + name + '\"]'); -tab.click(); -} - -shinyjs.goToMatrix1tab = function() { - // set the active tab to the 'Matrix 1' tab if the current tab is the 'Instructions' tab - // note, multiple tabs can be active at the same time, so we need to check if the 'Instructions' tab is active - //instructions is the data-value of the a inside the li - if ($('.nav li a[data-value=\"Instructions\"]').parent().hasClass('active')) { - // click the 'Matrix 1' tab - tab = $('.nav li a[data-value=\"Matrix\ 1\"]'); - tab.click(); - } -} -" - -# Define UI for application that draws a histogram -ui <- fluidPage( - # Application title - useShinyjs(), - shinyjs::extendShinyjs(text = jscode, functions = c("disableTab", "enableTab", "clickTab", "goToMatrix1tab")), - tags$head(tags$style(HTML("body { - background-color:#fffff9; - color:#2F3C7E; - } - .well { - background-color:#2F3C7E; - color:#fffff9; - } - .sw-dropdown-in { - color: #2F3C7E; - } - .tab-content { - padding:10px; - background-color:#fffff9; - color: #2F3C7E; - border-radius:4px; - } - #outputPanel>li>a, - li[role='presentation']>a { - background-color:#DCD6D5FF; - } - #outputPanel>li.active>a{ - background-color:#FFF; - } - table, th, td { - border: 1px solid black; - padding:5px - } - ")), - tags$script(src = "https://cdn.plot.ly/plotly-2.14.0.min.js"), - tags$script(src = "custom_plotly.js") - ), - titlePanel("Correlation analysis"), - # Sidebar with a slider input for number of bins - sidebarLayout( - sidebarPanel( - tabsetPanel( - tabPanel( - "Input file", - fileInput("input_excel", "Excel containing the correlation data"), - fluidRow( - column( - 6, - uiOutput("tab1") - ), - column( - 6, - uiOutput("tab2") - ) - ), - # fluidrow for metadata tab - fluidRow( - column( - 6, - uiOutput("tab3") - ) - ), - fluidRow( - column( - 6, - uiOutput("Yaxis", inline = TRUE) - ), - column( - 6, - uiOutput("Xaxis", inline = TRUE) - ) - ), - actionButton("visualize", "Visualize the dataset"), - tags$br(), - tags$br(), - tags$br(), - tags$br(), - tags$div(tags$strong("Source code:")), - tags$a( - img(src = "bikc_github.png", width = "100px", alt = "Github"), - href = - "https://github.com/BiKC" - ) - ), - tabPanel( - "Plot settings", - switchInput("legacymode", "Legacy mode", value = FALSE), - sliderInput("dec", "Decimal places", 0, 3, 3, 1), - sliderInput( - "ncex", "Size of numbers in the plot", - 0.1, 10, 1.2, 0.1 - ), - # legacy settings - conditionalPanel( - condition = "input.legacymode==true", - sliderInput("clcex", "Size of colorscale numbers", 0.1, 10, 0.8, 0.1), - sliderInput( - "tlcex", "Size of text labels (row and column names)", - 0.1, 10, 0.8, 0.1 - ), - sliderInput( - "scale", "Scale of the plot (default 1=1000x1000)", - 0.5, 50, 1, 0.1 - ), - sliderInput( - "labelcex", "Size of the X/Y labels (combined plots)", - 1, 20, 3, 0.1 - ), - ), - # non-legacy settings - # checkbox for showing dendrograms - conditionalPanel( - condition = "input.legacymode==false", - # switchInput("add_title", "Add title", FALSE, size = "mini"), - conditionalPanel( - condition = "input.add_title==true", - textInput("title", "Title", "Correlation plot") - ), - h3("Single plot specific settings"), - switchInput("hide_colorbar", "Hide colorscale", TRUE, size = "mini"), - switchInput("dendrograms", "Show dendrograms", FALSE, size = "mini"), - switchInput("show_numbers", "Show numbers", TRUE, size = "mini"), - h3("Combined plot specific settings"), - switchInput("logscale", "Log scale", FALSE, size = "mini") - ), - selectInput("cmode", "Color mode", - c("sequential", "diverging"), - selected = "diverging" - ), - # Sequential colors - conditionalPanel( - condition = "input.cmode=='sequential'", - selectizeInput( - inputId = "sequentialcolor", - label = "Colorscale", - rev(c( - "Oranges", "Purples", "Reds", "Blues", "Greens", - "Greys", "OrRd", "YlOrRd", "YlOrBr", "YlGn" - )), - selected = "YlOrRd", - options = list(render = I( - '{ - option: function(item, escape) { - return "
" + escape(item.value) + "" - } - }' - )) - ) - ), - # Diverging colors - conditionalPanel( - condition = "input.cmode=='diverging'", - selectizeInput( - inputId = "divergentcolor", - label = "Colorscale", - rev(c("RdBu", "BrBG", "PiYG", "PRGn", "PuOr", "RdYlBu")), - selected = "RdBu", - options = list(render = I( - '{ - option: function(item, escape) { - return "
" + escape(item.value) + "" - } - }' - )) - ), - ), - ), - tabPanel( - "Download plots", - # Note to warn user that generating plots can take a while - h3("Note:"), - div("Generating plots can take a while. Please be patient."), - tags$br(), - # message displaying it only downloads non-legacy plots as html - div("Only non-legacy plots are downloaded as html. Legacy plots are to be downloaded by right-clicking on the plot and selecting 'Save image as...'"), - tags$br(), - # Download button - # download buttons for matrix 1, matrix 2, matrix 1 vs matrix 2 (ordered by 1) and matrix 1 vs matrix 2 (ordered by 2) - # show actionbuttons for downloading plots - actionBttn("action_download1", "Download matrix 1", icon("download")), tags$br(), - actionBttn("action_download2", "Download matrix 2", icon("download")), tags$br(), - actionBttn("action_download3", "Download matrix 1 vs matrix 2 (ordered by 1)", icon("download")), tags$br(), - actionBttn("action_download4", "Download matrix 1 vs matrix 2 (ordered by 2)", icon("download")), tags$br(), - bsAlert("alert"), - # hide download buttons in conditional panel with false condition - div(id = "downloadButtons", style = "height: 0px; overflow: hidden;", - downloadButton("download1", "Download matrix 1", icon("download")), - downloadButton("download2", "Download matrix 2", icon("download")), - downloadButton("download3", "Download matrix 1 vs matrix 2 (ordered by 1)", icon("download")), - downloadButton("download4", "Download matrix 1 vs matrix 2 (ordered by 2)", icon("download")), - ) - #downloadButton("download", "Download plots", icon("download"), disabled = TRUE), - ) - ) - ), - - # Show a plot of the generated distribution - mainPanel( - tabsetPanel( - id = "outputPanel", - tabPanel( - "Instructions", - div(id="myDiv"), - h3("Correlation analysis tool"), - div("The input should be provided in the form of an xlsx file. - The file should contain the data in the following format:"), - tags$table( - tags$tr( - tags$th(""), tags$th("bacteria1"), tags$th("bacteria2"), - tags$th("bacteria3"), tags$th("bacteria4"), tags$th("bacteria5") - ), - tags$tr( - tags$th("bacteria1"), tags$td("100"), tags$td("98.5"), - tags$td("97.5"), tags$td("96.5"), tags$td("95.5") - ), - tags$tr( - tags$th("bacteria2"), tags$td("98.5"), tags$td("100"), - tags$td("98.5"), tags$td("97.5"), tags$td("96.5") - ), - tags$tr( - tags$th("bacteria3"), tags$td("97.5"), tags$td("98.5"), - tags$td("100"), tags$td("98.5"), tags$td("97.5") - ), - tags$tr( - tags$th("bacteria4"), tags$td("96.5"), tags$td("97.5"), - tags$td("98.5"), tags$td("100"), tags$td("98.5") - ), - tags$tr( - tags$th("bacteria5"), tags$td("95.5"), tags$td("96.5"), - tags$td("97.5"), tags$td("98.5"), tags$td("100") - ) - ), - div( - strong("Note: "), - "The diagonal should always be 100 since this is the same thing you are comparing." - ), - div( - strong("Note: "), - "Row and column names are free to choose however you always need the same values in both. - Avoid spaces in these column and row names!" - ), - br(), - tags$ol( - tags$li("Upload the Excel file"), - tags$li("Select the sheets containing the data. Note that the second sheet is optional. If provided, you can compare two correlation matrixes from different sheets."), - tags$li("If two sheets are provided, you can change the labels for the X and Y axis for the combined plots. By default, the names of the sheets will be suggested."), - tags$li("click on \"Visualize the dataset\". This can take a few seconds depending on the size of the dataset."), - tags$li("To customize the plot, go to the tab \"Plot settings\" on the left and change the settings as you please.") - ), - br(), - # advanced information about metadata, hidden in a collapsible panel - bsCollapsePanel( - #id = "advanced_info", - # title of the panel, including a arrow symbol to indicate that it is collapsible - title = tags$span(tags$i(class = "fa fa-arrow-right"), " Advanced information"), - div( - strong("Note: "), - "The metadata should be provided in the same Excel file as the data but in a separate sheet. The sheet should contain the data in the following format:" - # first column contains a sample id with the same name as the columns from the data sheet, the other columns contain the metadata with a header describing the metadata - ), - tags$table( - tags$tr( - tags$th("sample"), tags$th("metadata1"), tags$th("metadata2"), - tags$th("...") - ), - tags$tr( - tags$th("bacteria1"), tags$td("value1"), tags$td("value2"), - tags$td("...") - ), - tags$tr( - tags$th("bacteria2"), tags$td("value1"), tags$td("value2"), - tags$td("...") - ), - tags$tr( - tags$th("bacteria3"), tags$td("value1"), tags$td("value2"), - tags$td("...") - ), - tags$tr( - tags$th("bacteria4"), tags$td("value1"), tags$td("value2"), - tags$td("...") - ), - tags$tr( - tags$th("bacteria5"), tags$td("value1"), tags$td("value2"), - tags$td("...") - ) - ), - div( - strong("Note: "), - "The first column should always contain the sample id. The name of this column is not important. The other columns can be named as you please." - ), - div( - strong("Note: "), - "The metadata sheet is optional. If you do not provide a metadata sheet, the plots will be generated without metadata." - ) - ), - actionButton("Samplefile", "Run the analysis on a sample file"), - downloadButton("downloadSampleFile", "Download the sample file") - ), - tabPanel( - title = "Matrix 1", - conditionalPanel( - condition = "input.legacymode==false", - plotlyOutput("ANI", width = "100%", height = "80vh") - ), - conditionalPanel( - condition = "input.legacymode==true", - plotOutput("ANI_legacy", width = "100%", height = "80vh") - ) - ), - tabPanel( - title = "Matrix 2", - conditionalPanel( - condition = "input.legacymode==false", - plotlyOutput("MALDI", width = "100%", height = "80vh") - ), - conditionalPanel( - condition = "input.legacymode==true", - plotOutput("MALDI_legacy", width = "100%", height = "80vh") - ) - ), - tabPanel( - title = "Matrix 1 vs Matrix 2 (ordered on matrix 1)", - htmlOutput("ANIMALDI_Error"), - conditionalPanel( - condition = "input.legacymode==false", - plotlyOutput("ANIMALDI", width = "100%", height = "80vh") - ), - conditionalPanel( - condition = "input.legacymode==true", - plotOutput("ANIMALDI_legacy", width = "100%", height = "80vh") - ) - ), - tabPanel( - title = "Matrix 1 vs Matrix 2 (ordered on matrix 2)", - htmlOutput("MALDIANI_Error"), - conditionalPanel( - condition = "input.legacymode==false", - plotlyOutput("MALDIANI", width = "100%", height = "80vh") - ), - conditionalPanel( - condition = "input.legacymode==true", - plotOutput("MALDIANI_legacy", width = "100%", height = "80vh") - ) - ) - ) - ) - ) -) +# MAniR: matrix comparison and scalable visualization. +ui <- shiny::fluidPage( + shiny::tags$head( + shiny::tags$meta(name = "viewport", content = "width=device-width, initial-scale=1"), + shiny::tags$style(shiny::HTML(" + body { background: #f7f9fb; color: #213547; } + .well { background: #fff; border-color: #dae2ea; } + .main-panel { background: #fff; padding: 18px; border: 1px solid #dae2ea; + border-radius: 8px; } + .small-help { color: #56697a; font-size: .9em; margin-bottom: 10px; } + .plot-area { min-height: 520px; } + .metric { padding: 10px; margin: 6px 0; background: #f2f6f9; + border-left: 3px solid #487f9b; } + .tab-content { padding-top: 15px; } + ")) + ), + shiny::titlePanel("MAniR"), + shiny::p("Explore and compare pairwise similarity, correlation or distance matrices."), + shiny::sidebarLayout( + shiny::sidebarPanel(width = 3, + shiny::h4("Input data"), + shiny::fileInput("first_file", "First matrix", + accept = c(".xlsx", ".xlsm", ".csv", ".tsv", ".txt", + ".gz", ".rds")), + shiny::uiOutput("first_sheet_ui"), + shiny::fileInput("second_file", "Second matrix file (optional)", + accept = c(".xlsx", ".xlsm", ".csv", ".tsv", ".gz", ".rds")), + shiny::uiOutput("second_sheet_ui"), + shiny::fileInput("metadata_file", "Separate metadata file (optional)", + accept = c(".xlsx", ".csv", ".tsv", ".rds")), + shiny::uiOutput("metadata_sheet_ui"), + shiny::fileInput("order_file", "Optional sample order (one ID per line)", + accept = c(".txt", ".csv", ".tsv")), + shiny::selectInput("kind1", "Matrix 1 represents", + choices = c("Similarity" = "similarity", "Correlation" = "correlation", + "Distance" = "distance", "Unspecified" = "auto")), + shiny::selectInput("kind2", "Matrix 2 represents", + choices = c("Similarity" = "similarity", "Correlation" = "correlation", + "Distance" = "distance", "Unspecified" = "auto")), + shiny::radioButtons("match_mode", "Compare samples", + choices = c("Require identical IDs" = "strict", + "Shared isolates only" = "intersection"), + selected = "strict"), + shiny::actionButton("visualize", "Load and analyze", class = "btn-primary"), + shiny::hr(), + shiny::h4("Visualization"), + shiny::checkboxInput("cluster", "Cluster samples", value = TRUE), + shiny::selectInput("palette", "Palette", + choices = c("RdBu", "BrBG", "PiYG", "PRGn", "PuOr", "RdYlBu", + "Viridis", "YlOrRd", "Blues", "Greens", "Greys"), + selected = "RdBu"), + shiny::checkboxInput("show_numbers", "Display cell numbers in small plots", + value = FALSE), + shiny::checkboxInput("log_scale", "Logarithmic display scaling", + value = FALSE), + shiny::selectInput("metadata_column", "Categorical annotation track", + choices = c("None" = "")), + shiny::checkboxInput("comparable_scales", + "Both matrices use comparable numerical units", value = FALSE), + shiny::helpText("For large matrices, plots use representative pixels. Numerical analyses and exports use original values unless stated otherwise."), + shiny::hr(), + shiny::h4("Statistical analysis"), + shiny::numericInput("max_pairs", "Maximum plotted/analyzed pairs", + 100000, min = 1000, max = 1000000, step = 1000), + shiny::numericInput("cluster_k", "Clusters for concordance", 3, + min = 2, max = 100), + shiny::numericInput("permutations", "Mantel permutations", 999, + min = 99, max = 9999), + shiny::actionButton("run_mantel", "Run Mantel test"), + shiny::p(class = "small-help", + "Mantel tests require complete matrices and at most 400 isolates.") + ), + shiny::mainPanel(width = 9, + shiny::div(class = "main-panel", + shiny::tabsetPanel(id = "results_tab", + shiny::tabPanel("Overview", + shiny::uiOutput("overview"), shiny::tableOutput("agreement"), + shiny::verbatimTextOutput("mantel_result"), + shiny::tableOutput("replicate_table")), + shiny::tabPanel("Matrix 1", + shiny::uiOutput("plot1_ui"), shiny::verbatimTextOutput("plot1_cell")), + shiny::tabPanel("Matrix 2", + shiny::uiOutput("plot2_ui"), shiny::verbatimTextOutput("plot2_cell")), + shiny::tabPanel("Combined (order 1)", + shiny::uiOutput("combined1_ui"), + shiny::verbatimTextOutput("combined1_cell")), + shiny::tabPanel("Combined (order 2)", + shiny::uiOutput("combined2_ui"), + shiny::verbatimTextOutput("combined2_cell")), + shiny::tabPanel("Difference", + shiny::uiOutput("difference_ui"), + shiny::p("Only available when both matrices use comparable numerical units."), + shiny::verbatimTextOutput("difference_cell")), + shiny::tabPanel("Pairwise comparison", + shiny::plotOutput("scatter", height = "520px"), + shiny::tableOutput("discrepancies"), + shiny::downloadButton("download_pairs", "Download pairwise values (CSV)")), + shiny::tabPanel("Cluster comparison", + shiny::tableOutput("cluster_summary"), + shiny::tableOutput("cluster_table"), + shiny::downloadButton("download_clusters", "Download cluster assignments")), + shiny::tabPanel("Metadata", + shiny::tableOutput("metadata_preview"), + shiny::uiOutput("metadata_note")), + shiny::tabPanel("Export", + shiny::p("Original numeric matrices are exported without display normalization. Large matrix images are representative views."), + shiny::downloadButton("download_first", "Matrix 1 CSV"), + shiny::downloadButton("download_second", "Matrix 2 CSV"), + shiny::downloadButton("download_rds", "Analysis matrices (RDS)"), + shiny::downloadButton("download_first_png", "Matrix 1 PNG"), + shiny::downloadButton("download_combined_png", "Combined PNG"), + shiny::downloadButton("download_settings", "Analysis settings (text)") + ) + ) + ) + ) + ) +) From 9e8793c544ee5faa64bd4c99fa5af58ab27bf056 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:21:42 +0200 Subject: [PATCH 007/134] feat: lazy matrix views, scoped session analysis, scientific comparisons and exports --- server.R | 1048 ++++++++++++++++++++++-------------------------------- 1 file changed, 417 insertions(+), 631 deletions(-) diff --git a/server.R b/server.R index 37d2eba..ab72090 100644 --- a/server.R +++ b/server.R @@ -1,631 +1,417 @@ -library("shiny") -library("shinyjs") -library("shinyBS") -library("shinyWidgets") -library("openxlsx") -library("RColorBrewer") -library("corrplot") -library("periscope") -library("heatmaply") -library("plotly") - - -# Define server logic required to draw a histogram -server <- function(input, output, session) { - - sendCustomMessage <- function(id,msg) { - session$sendCustomMessage(id, msg) - } - - debugStart <- function() { - # click on Run tha analysis on a sample file button and then click on Visualize the results - click("Samplefile") - # click on visualise but do this in setTimeout so that the sample file is loaded first using shinyjs - shinyjs::runjs("setTimeout(function(){ - $('#visualize').click(); - }, 500);") - } - - # disable the tabPanels Matrix1, Matrix2 - shinyjs::js$disableTab("Matrix\ 1") - shinyjs::js$disableTab("Matrix\ 2") - #Matrix 1 vs Matrix 2 (ordered on matrix 1) - shinyjs::js$disableTab("Matrix\ 1 vs Matrix\ 2\ (ordered\ on\ matrix\ 1)") - #Matrix 1 vs Matrix 2 (ordered on matrix 2) - shinyjs::js$disableTab("Matrix\ 1 vs Matrix\ 2\ (ordered\ on\ matrix\ 2)") - - #debugStart() - - getcolorscale <- function() { - if (input$cmode == "sequential") { - return(COL1(input$sequentialcolor, 200)) - } else { - return(COL2(input$divergentcolor, 200)) - } - } - - single_plot_legacy <- function(data) { - par( - mar = c(input$labelcex + 1, 4.1, 4.1, 2.1), - xpd = TRUE - ) - # single plot - corrplot.mixed( - data, - lower = "color", - lower.col = getcolorscale(), - upper = "number", - upper.col = getcolorscale(), - is.corr = FALSE, - order = "hclust", - diag = "n", - tl.col = "black", - number.cex = input$ncex, - tl.cex = input$tlcex, - number.digits = input$dec, - tl.pos = "lt", - cl.cex = input$clcex - ) - } - - single_plot <- function(data, metadata, file=NULL) { - heatmaply( - data, - col = getcolorscale(), - #dendrogram = input$dendrograms, - # input$dec is the number of decimal places - label_format_fun = function(...) format(..., digits = input$dec + 2), - # add number to each cell also with input$dec for decimals shown and center it but only if show_numbers is TRUE - cellnote = if (input$show_numbers) round(data, input$dec) else NULL, - #cellnote = round(data, input$dec), - cellnote_textposition = "middle center", - # dendrogram only on the side - show_dendrogram = c(input$dendrograms, FALSE), - # add title if input$add_title is TRUE - #main = if (input$add_title) input$title else "", - # hide colorbar if input$hide_colorbar is TRUE - hide_colorbar = input$hide_colorbar, - # if metadata is not NULL, add it to the heatmap as side colors (row only) - row_side_colors = if (!is.null(metadata)) metadata else NULL, - key = TRUE, - # if file is not NULL, save the heatmap to the file - file = if (!is.null(file)) file else NULL, - # use 1000 by 1000 if file is not NULL - width = if (!is.null(file)) 1000 else NULL, - height = if (!is.null(file)) 1000 else NULL, - # input$ncex describe the size of the numbers - cellnote_size = input$ncex * 10, - # add a little bit of margin to the top - margin = c(0, 0, 10, 0), - ) - } - - combined_plot_legacy <- function(data1, data2) { - par( - mar = c(input$labelcex + 1, 4.1, 4.1, 2.1), - oma = c(3 * input$labelcex, 0, 0, 3 * input$labelcex), - xpd = TRUE - ) - corrplot( - data1, - is.corr = FALSE, - type = "upper", - #order = "hclust", - tl.col = "black", - method = "color", - col = getcolorscale(), - addgrid.col = "grey", - addCoef.col = "black", - number.cex = input$ncex, - number.digits = input$dec, - diag = TRUE, - tl.pos = "lt", - tl.cex = input$tlcex, - cl.cex = input$clcex - ) - corrplot( - data2, - is.corr = FALSE, - type = "lower", - order = "original", - tl.col = "black", - method = "color", - col = getcolorscale(), - addgrid.col = "grey", - addCoef.col = "black", - number.cex = input$ncex, - number.digits = input$dec, - diag = FALSE, - tl.cex = input$tlcex, - tl.pos = "n", - cl.pos = "b", - cl.cex = input$clcex, - add = TRUE - ) - - # Add axis titles - mtext( - input$yas, - side = 4, - outer = TRUE, - line = input$labelcex, - cex = input$labelcex - ) - mtext( - input$xas, - side = 1, - outer = TRUE, - line = input$labelcex, - cex = input$labelcex - ) - } - - combined_plot <- function(data1, data2, order_x, order_y, metadata, file=NULL) { - data1 <- as.data.frame(data1) - data2 <- as.data.frame(data2) - # reorder the data - data1 <- data1[order_x, order_y] - data2 <- data2[order_x, order_y] - # make a copy of data1 - combined_data <- data1 - # replace lower triangle with data2 - combined_data[lower.tri(combined_data)] <- data2[lower.tri(data2)] - combined_data <- as.matrix(combined_data) - - # create a copy of the data as original_data - original_data <- combined_data - - if (input$logscale) { - # scale upper triangle between 0 and 1 - combined_data[upper.tri(combined_data)] <- (log(combined_data[upper.tri(combined_data)]) - min(log(combined_data[upper.tri(combined_data)]))) / (max(log(combined_data[upper.tri(combined_data)])) - min(log(combined_data[upper.tri(combined_data)]))) - # scale lower triangle between 0 and 1 - combined_data[lower.tri(combined_data)] <- (log(combined_data[lower.tri(combined_data)]) - min(log(combined_data[lower.tri(combined_data)]))) / (max(log(combined_data[lower.tri(combined_data)])) - min(log(combined_data[lower.tri(combined_data)]))) - } else { - # scale upper triangle between 0 and 1 - combined_data[upper.tri(combined_data)] <- (combined_data[upper.tri(combined_data)] - min(combined_data[upper.tri(combined_data)])) / - (max(combined_data[upper.tri(combined_data)]) - min(combined_data[upper.tri(combined_data)])) - # scale lower triangle between 0 and 1 - combined_data[lower.tri(combined_data)] <- (combined_data[lower.tri(combined_data)] - min(combined_data[lower.tri(combined_data)])) / - (max(combined_data[lower.tri(combined_data)]) - min(combined_data[lower.tri(combined_data)])) - } - # make the diagonal 1 - diag(combined_data) <- 1 - # create custom hovertext. Include the original value and which matrix it came from (input$yas or input$xas) - custom_text <- paste0( - "Original value:", - round(original_data, input$dec), - "
", - "Matrix:", - ifelse(upper.tri(original_data), input$yas, input$xas) - ) - - # make it a matrix - custom_text <- matrix(custom_text, nrow = nrow(original_data), ncol = ncol(original_data)) - - # transpose the data (both combined_data and original_data) - combined_data <- t(combined_data) - original_data <- t(original_data) - - # flip rows of both - combined_data <- combined_data[rev(1:nrow(combined_data)), ] - original_data <- original_data[rev(1:nrow(original_data)), ] - - # same for custom_text - custom_text <- t(custom_text) - custom_text <- custom_text[rev(1:nrow(custom_text)), ] - - - #print(custom_text) - - heatmaply( - combined_data, - col = getcolorscale(), - # input$dec is the number of decimal places - label_format_fun = function(...) format(..., digits = input$dec + 2), - # add number to each cell also with input$dec for decimals shown and center it but only if show_numbers is TRUE - cellnote = if (input$show_numbers) round(original_data, input$dec) else NULL, - #cellnote = round(original_data, input$dec), - cellnote_textposition = "middle center", - # add the custom hovertext - custom_hovertext = custom_text, - # no dendrogram - show_dendrogram = c(FALSE, FALSE), - # do not reorder the rows or columns - Rowv = order_x, - Colv = order_y, - #revC = TRUE, - # add the axis titles - xlab = input$xas, - ylab = input$yas, - # hide colorbar - hide_colorbar = TRUE, - # add the metadata if it exists - row_side_colors = if (!is.null(metadata)) metadata else NULL, - # title if input$add_title is TRUE - #main = if (input$add_title) input$title else "" - # size of numbers in cells is set by input$ncex - cellnote_size = input$ncex*10, - # add file name if file is not NULL - file=file - ) - } - check_errors <- function(col1, col2, output_id) { - if (!all(col1 %in% col2) || !all(col2 %in% col1)) { - # The page has an output_id without the _Error suffix that normally displays the output plot. - # We need to make sure this plot is not displayed when there is an error. - output[[gsub("_Error", "", output_id)]] <- NULL - - not_in_matrix1 <- col2[!(col2 %in% col1)] - not_in_matrix2 <- col1[!(col1 %in% col2)] - output[[output_id]] <- renderUI({ - div(class = "alert alert-danger", role = "alert", { - tagList( - h3("Error: The columns of the two matrices are not the same. Please check your input."), - # print the missing columns - h4("Missing columns in Matrix 1:"), - # print only the missing columns in Matrix 1, not all differences - p(paste(not_in_matrix1, collapse = ", ")), - br(), - h4("Missing columns in Matrix 2:"), - # print only the missing columns in Matrix 2, not all differences - p(paste(not_in_matrix2, collapse = ", ")) - ) - }) - }) - return(FALSE) - } - return(TRUE) - } - - - output$downloadSampleFile <- downloadHandler( - filename = function() { - "sample_file.xlsx" - }, - content = function(con) { - file.copy("www/moc_data.xlsx", con) - } - ) - - wb <- reactive({ - if (is.null(input$input_excel) == FALSE | input$Samplefile > 0) { - if (!is.null(input$input_excel)) { - loadWorkbook(input$input_excel$datapath) - } else if (input$Samplefile > 0) { - loadWorkbook("www/moc_data.xlsx") - } - } else { - return(NULL) - } - }) - - - observeEvent(c(input$input_excel, input$Samplefile), { - if (is.null(input$input_excel) == FALSE | input$Samplefile > 0) { - sheets <- sheets(wb()) - # sheet selection boxes - output$tab1 <- renderUI({ - selectInput( - "sheet1", - HTML("Worksheet with first correlation
matrix"), - choices = sheets, - selected = sheets[1] - ) - }) - output$tab2 <- renderUI({ - selectInput( - "sheet2", - "Worksheet with second correlation matrix (optional)", - choices = c(sheets, "None"), - selected = sheets[min(2, length(sheets))] - ) - }) - # metadata tab - output$tab3 <- renderUI({ - selectInput( - "sheet3", - "Worksheet with metadata (optional)", - choices = c(sheets, "None"), - selected = if (length(sheets) > 2) sheets[3] else "None" - ) - }) - - # Xaxis and Yaxis selection boxes + auto suggestion based on sheet names - output$Yaxis <- renderUI({ - textInput("yas", label = "Name for matrix 1 (Y-axis on combined plot)", value = sheets[1]) - }) - output$Xaxis <- renderUI({ - textInput("xas", label = "Name for matrix 2 (X-axis on combined plot)", value = sheets[min(2, length(sheets))]) - }) - } - }) - - observeEvent(input$sheet2, { - # if no second sheet is selected, don't use Xaxis/Yaxis - if (input$sheet2 == "None") { - output$Xaxis <- NULL - output$Yaxis <- NULL - } - }) - - # observe input$legacymode, if status is switched, click the visualize button - observeEvent(input$legacymode, { - # do not run if no file is uploaded - if (is.null(input$input_excel) == FALSE | input$Samplefile > 0) { - # if legacymode is switched on, click the visualize button - click("visualize") - } - }) - - # observe input$scale, if changed, click the visualize button - observeEvent(input$scale, { - # do not run if no file is uploaded - if (is.null(input$input_excel) == FALSE | input$Samplefile > 0) { - # if scale is changed, click the visualize button - click("visualize") - } - }) - - - - - observeEvent(input$visualize, { - withProgress(message = "Making plots", value = 0, { - workbook <- wb() - # check that there is a workbook - if (is.null(workbook)) { - return() - } - disable(id = "visualize") - - # if metadata is not None, read metadata - if (input$sheet3 != "None") { - metadata <- as.data.frame(readWorkbook(workbook, sheet = input$sheet3, colNames = TRUE, rowNames = TRUE)) - } else { - metadata <- NULL - } - - # save metadata to session - session$userData$metadata <- metadata - - first_correlation_matrix <- - as.matrix(readWorkbook(workbook, - colNames = TRUE, - rowNames = TRUE, - input$sheet1 - )) - rownames(first_correlation_matrix) <- trimws(rownames(first_correlation_matrix)) - colnames(first_correlation_matrix) <- trimws(colnames(first_correlation_matrix)) - - # adjust format with correct rownames and make matrix - first_correlation_plot <- corrplot.mixed( - first_correlation_matrix, - lower = "color", - upper = "number", - is.corr = FALSE, - order = "hclust", - diag = "n", - tl.col = "black", - number.cex = input$ncex, - tl.cex = input$tlcex, - tl.pos = "lt", - ) - # save to session - session$userData$first_correlation_matrix <- first_correlation_matrix - # send first_correlation_matrix as custom message to the client together with the metadata - # this is used to make the plotly plot - sendCustomMessage("first_correlation_matrix", list(first_correlation_matrix, metadata)) - # if not legacy, use plotly - if (input$legacymode == FALSE) { - output$ANI <- renderPlotly({ - ANI_plot <- single_plot(first_correlation_matrix, metadata) - session$userData$ANI_order_x <- ANI_plot$x$layout$xaxis$ticktext - session$userData$ANI_order_y <- ANI_plot$x$layout$yaxis$ticktext - # also save the plotly plot to a png file - #single_plot(first_correlation_matrix, metadata, paste0(session$userData$tmp_dir, "/ANI.png")) - #session$userData$ANI_plot <- ANI_plot - ANI_plot - # export the plotly plot to a png file - }) - } else { - # update width and height of the plot based on input$scale (default 1000*1000 with scale=1) - scale=input$scale - shinyjs::runjs(paste0("$('#ANI_legacy').width(", scale, " * 1000)")) - shinyjs::runjs(paste0("$('#ANI_legacy').height(", scale, " * 1000)")) - output$ANI_legacy <- renderPlot(single_plot_legacy(first_correlation_matrix)) - } - - # enable the "Matrix 1" tab - shinyjs::js$enableTab("Matrix\ 1") - # click on the "Matrix 1" tab if we are on Instructions tab - shinyjs::js$goToMatrix1tab() - incProgress(1 / 4) - - if (input$sheet2 != "None") { - ws <- readWorkbook( - workbook, - colNames = TRUE, - rowNames = TRUE, - sheet = input$sheet2 - ) - rownames(ws) <- trimws(rownames(ws)) - colnames(ws) <- trimws(colnames(ws)) - # adjust format with correct rownames and make matrix - second_correlation_matrix <- as.matrix(ws) - second_correlation_plot <- corrplot.mixed( - second_correlation_matrix, - lower = "color", - upper = "number", - is.corr = FALSE, - order = "hclust", - diag = "n", - tl.col = "black", - number.cex = input$ncex, - tl.cex = input$tlcex, - tl.pos = "lt" - ) - - # save to session - session$userData$second_correlation_matrix <- second_correlation_matrix - - # if not legacy, use plotly - if (input$legacymode == FALSE) { - output$MALDI <- renderPlotly({ - MALDI_plot <- single_plot(second_correlation_matrix, metadata) - session$userData$MALDI_order_x <- MALDI_plot$x$layout$xaxis$ticktext - session$userData$MALDI_order_y <- MALDI_plot$x$layout$yaxis$ticktext - # also save the plotly plot to a png file - #single_plot(second_correlation_matrix, metadata, paste0(session$userData$tmp_dir, "/MALDI.png")) - #session$userData$MALDI_plot <- MALDI_plot - MALDI_plot}) - } else { - # update width and height of the plot based on input$scale (default 1000*1000 with scale=1) - scale=input$scale - shinyjs::runjs(paste0("$('#MALDI_legacy').width(", scale, " * 1000)")) - shinyjs::runjs(paste0("$('#MALDI_legacy').height(", scale, " * 1000)")) - output$MALDI_legacy <- renderPlot(single_plot_legacy(second_correlation_matrix)) - } - # enable the "Matrix 2" tab - shinyjs::js$enableTab("Matrix\ 2") - } - incProgress(1 / 4) - - ## mixed plots - if (input$sheet1 != "None" && input$sheet2 != "None") { - # New MALDI matrix with order of columns from ANI matrix - - col_matrix1 <- colnames(first_correlation_plot$corr) - #print(col_matrix1) - # check if all columns are present in MALDI matrix - if (check_errors(col_matrix1, colnames(second_correlation_matrix), "ANIMALDI_Error")) { - ani_maldi <- second_correlation_matrix[col_matrix1, col_matrix1] - first_correlation_matrix_ordered <- first_correlation_matrix[col_matrix1,col_matrix1] - #print(ani_maldi) - # save to session - session$userData$ani_maldi <- ani_maldi - if (input$legacymode == FALSE) { - output$ANIMALDI <- renderPlotly(combined_plot(first_correlation_matrix_ordered, ani_maldi, session$userData$ANI_order_x, session$userData$ANI_order_y, metadata)) - } else { - # update width and height of the plot based on input$scale (default 1000*1000 with scale=1) - scale=input$scale - shinyjs::runjs(paste0("$('#ANIMALDI_legacy').width(", scale, " * 1000)")) - shinyjs::runjs(paste0("$('#ANIMALDI_legacy').height(", scale, " * 1000)")) - output$ANIMALDI_legacy <- renderPlot(combined_plot_legacy(first_correlation_matrix_ordered, ani_maldi)) - } - } - # enable the "Matrix 1 vs Matrix 2 (ordered on matrix 1)" tab - shinyjs::js$enableTab("Matrix\ 1\ vs\ Matrix\ 2\ (ordered\ on\ matrix\ 1)") - incProgress(1 / 4) - - # check if all columns are present in ANI matrix - col_matrix2 <- colnames(second_correlation_plot$corr) - #print(col_matrix2) - if (check_errors(col_matrix2, colnames(first_correlation_matrix), "MALDIANI_Error")) { - maldi_ani <- first_correlation_matrix[col_matrix2, col_matrix2] - second_correlation_matrix_ordered <- second_correlation_matrix[col_matrix2,col_matrix2] - #print(maldi_ani) - # save to session - session$userData$maldi_ani <- maldi_ani - if (input$legacymode == FALSE) { - # if session$userData$MALDI_order_x is NULL, we first need to render the MALDI plot, we don't need to do this if we already have the order :) - if (is.null(session$userData$MALDI_order_x)) { - MALDI_plot <- single_plot(second_correlation_matrix, metadata) - session$userData$MALDI_order_x <- MALDI_plot$x$layout$xaxis$ticktext - session$userData$MALDI_order_y <- MALDI_plot$x$layout$yaxis$ticktext - } - output$MALDIANI <- renderPlotly(combined_plot(maldi_ani, second_correlation_matrix_ordered, session$userData$MALDI_order_x, session$userData$MALDI_order_y, metadata)) - } else { - # update width and height of the plot based on input$scale (default 1000*1000 with scale=1) - scale=input$scale - shinyjs::runjs(paste0("$('#MALDIANI_legacy').width(", scale, " * 1000)")) - shinyjs::runjs(paste0("$('#MALDIANI_legacy').height(", scale, " * 1000)")) - output$MALDIANI_legacy <- renderPlot(combined_plot_legacy(maldi_ani, second_correlation_matrix_ordered)) - } - } - # enable the "Matrix 2 vs Matrix 1 (ordered on matrix 2)" tab - shinyjs::js$enableTab("Matrix\ 1\ vs\ Matrix\ 2\ (ordered\ on\ matrix\ 2)") - incProgress(1 / 4) - } - - enable(id = "visualize") - }) - }) - # download button # generate matrix1 (ANI) plot as html, add date and time to filename - output$download1 <- downloadHandler( - filename = function() { - paste0(input$yas,"-",Sys.Date(),".html") - }, - content = function(file) { - tmpdir <- tempdir() - #print(tmpdir) - single_plot(session$userData$first_correlation_matrix, session$userData$metadata, paste0(tmpdir, "/ANI.html")) - file.copy(paste0(tmpdir, "/ANI.html"), file) - } - ) - # repeat for matrix2 (MALDI) - output$download2 <- downloadHandler( - filename = function() { - paste0(input$xas,"-",Sys.Date(),".html") - }, - content = function(file) { - tmpdir <- tempdir() - single_plot(session$userData$second_correlation_matrix, session$userData$metadata, paste0(tmpdir, "/MALDI.html")) - file.copy(paste0(tmpdir, "/MALDI.html"), file) - } - ) - # repeat for matrix1 vs matrix2 (ordered on matrix 1) - output$download3 <- downloadHandler( - filename = function() { - paste0(input$yas,"_vs_",input$xas,"-",Sys.Date(),".html") - }, - content = function(file) { - tmpdir <- tempdir() - combined_plot(session$userData$first_correlation_matrix, session$userData$ani_maldi, session$userData$ANI_order_x, session$userData$ANI_order_y, session$userData$metadata, paste0(tmpdir, "/ANIMALDI.html")) - file.copy(paste0(tmpdir, "/ANIMALDI.html"), file) - } - ) - # repeat for matrix2 vs matrix1 (ordered on matrix 2) - output$download4 <- downloadHandler( - filename = function() { - paste0(input$xas,"_vs_",input$yas,"-",Sys.Date(),".html") - }, - content = function(file) { - tmpdir <- tempdir() - combined_plot(session$userData$maldi_ani, session$userData$second_correlation_matrix, session$userData$MALDI_order_x, session$userData$MALDI_order_y, session$userData$metadata, paste0(tmpdir, "/MALDIANI.html")) - file.copy(paste0(tmpdir, "/MALDIANI.html"), file) - } - ) - - # we have action buttons to check first if session$userData contains the data we need, if so we click button using shinyjs, otherwise return an alert message - # ids of buttons are action_download1, action_download2, action_download3, action_download4 - observeEvent(input$action_download1, { - if (!is.null(session$userData$first_correlation_matrix)) { - shinyjs::runjs("$('#download1')[0].click()") - } else { - # alert message - createAlert(session=session, anchorId = "alert",content = "Please upload a matrix first or select a sheet for matrix 1",style = "danger") - } - }) - observeEvent(input$action_download2, { - if (!is.null(session$userData$second_correlation_matrix)) { - shinyjs::runjs("$('#download2')[0].click()") - } else { - createAlert(session=session, anchorId = "alert",content = "Please upload a matrix first or select a sheet for matrix 2",style = "danger") - } - }) - observeEvent(input$action_download3, { - if (!is.null(session$userData$first_correlation_matrix) && !is.null(session$userData$ani_maldi)) { - shinyjs::runjs("$('#download3')[0].click()") - } else { - createAlert(session=session, anchorId = "alert",content = "Please upload a matrix first or select a sheet for matrix 1 and 2",style = "danger") - } - }) - observeEvent(input$action_download4, { - if (!is.null(session$userData$second_correlation_matrix) && !is.null(session$userData$maldi_ani)) { - shinyjs::runjs("$('#download4')[0].click()") - } else { - createAlert(session=session, anchorId = "alert",content = "Please upload a matrix first or select a sheet for matrix 1 and 2",style = "danger") - } - }) - -} +# Session-local state: uploaded matrices are never placed in global caches. +server <- function(input, output, session) { + is_excel <- function(file) { + !is.null(file) && tolower(tools::file_ext(file$name)) %in% c("xlsx", "xlsm") + } + output$first_sheet_ui <- shiny::renderUI({ + if (!is_excel(input$first_file)) return(NULL) + sheets <- tryCatch(matrix_sheet_names(input$first_file$datapath), + error = function(e) character()) + shiny::selectInput("first_sheet", "First matrix worksheet", + choices = sheets, selected = sheets[1L]) + }) + output$second_sheet_ui <- shiny::renderUI({ + f <- if (!is.null(input$second_file)) input$second_file else input$first_file + if (!is_excel(f)) return(NULL) + sheets <- tryCatch(matrix_sheet_names(f$datapath), + error = function(e) character()) + suggested <- if (is.null(input$second_file) && length(sheets) > 1L) + sheets[2L] else "None" + shiny::selectInput("second_sheet", "Second matrix worksheet", + choices = c("None", sheets), selected = suggested) + }) + output$metadata_sheet_ui <- shiny::renderUI({ + f <- if (!is.null(input$metadata_file)) input$metadata_file else input$first_file + if (!is_excel(f)) return(NULL) + sheets <- tryCatch(matrix_sheet_names(f$datapath), + error = function(e) character()) + suggested <- if (is.null(input$metadata_file) && + is.null(input$second_file) && length(sheets) > 2L) + sheets[3L] else "None" + shiny::selectInput("metadata_sheet", "Metadata worksheet", + choices = c("None", sheets), selected = suggested) + }) + + loaded <- shiny::eventReactive(input$visualize, { + shiny::req(input$first_file) + shiny::withProgress(message = "Validating matrices and computing sample order", + value = 0, { + tryCatch({ + f <- input$first_file + wb1 <- if (is_excel(f)) openxlsx::loadWorkbook(f$datapath) else NULL + a <- read_matrix_input(f$datapath, + sheet = if (is_excel(f)) input$first_sheet else NULL, + workbook = wb1) + a <- validate_matrix(a, input$kind1) + shiny::incProgress(0.20) + f2 <- if (!is.null(input$second_file)) input$second_file else f + has_second <- !is.null(input$second_file) || + (is_excel(f) && !is.null(input$second_sheet) && + input$second_sheet != "None") + b <- NULL + if (has_second) { + if (is_excel(f2) && (is.null(input$second_sheet) || + input$second_sheet == "None")) + stop("Select a second matrix worksheet.") + wb2 <- if (!is.null(input$second_file) && is_excel(f2)) + openxlsx::loadWorkbook(f2$datapath) else wb1 + b <- read_matrix_input(f2$datapath, + sheet = if (is_excel(f2)) input$second_sheet else NULL, + workbook = wb2) + b <- validate_matrix(b, input$kind2) + # Match once for early actionable errors; avoid retaining copies. + shared_ids <- intersect(colnames(a), colnames(b)) + if (input$match_mode == "strict" && + !setequal(colnames(a), colnames(b))) + stop(sprintf("Matrices have %d and %d isolates; %d are shared. Select 'Shared isolates only' or fix the IDs.", + nrow(a), nrow(b), length(shared_ids))) + if (length(shared_ids) < 2L) stop("At least two shared isolates are required.") + } + shiny::incProgress(0.20) + meta <- NULL + fmeta <- if (!is.null(input$metadata_file)) + input$metadata_file else f + if (is_excel(fmeta) && !is.null(input$metadata_sheet) && + input$metadata_sheet != "None") { + wbm <- if (!is.null(input$metadata_file)) + openxlsx::loadWorkbook(fmeta$datapath) else wb1 + meta <- read_metadata_input(fmeta$datapath, + input$metadata_sheet, wbm) + } else if (!is.null(input$metadata_file) && !is_excel(fmeta)) { + meta <- read_metadata_input(fmeta$datapath) + } + if (!is.null(meta) && !all(colnames(a) %in% rownames(meta))) + shiny::showNotification("Some matrix samples have no metadata.", + type = "warning", duration = 8) + explicit <- NULL + if (!is.null(input$order_file)) { + explicit <- trimws(readLines(input$order_file$datapath, warn = FALSE)) + explicit <- sub("[,\t].*$", "", explicit) + explicit <- explicit[nzchar(explicit) & explicit != "sample_id"] + if (anyDuplicated(explicit)) stop("The imported sample order has duplicate IDs.") + if (!any(explicit %in% colnames(a))) + stop("The imported sample order matches no samples.") + } + order_for <- function(m, kind) { + if (!is.null(explicit)) + return(c(intersect(explicit, colnames(m)), + setdiff(colnames(m), explicit))) + matrix_order(m, kind, cluster = isTRUE(input$cluster))$ids + } + order1 <- order_for(a, input$kind1) + shiny::incProgress(0.30) + order2 <- if (!is.null(b)) order_for(b, input$kind2) else NULL + shiny::incProgress(0.30) + shiny::updateSelectInput(session, "metadata_column", + choices = c("None" = "", if (!is.null(meta)) names(meta)), + selected = "") + shiny::showNotification( + sprintf("Loaded %d isolates%s.", nrow(a), + if (!is.null(b)) paste0(" and ", nrow(b), " in matrix 2") + else ""), + type = "message", duration = 4) + list(first = a, second = b, metadata = meta, + order1 = order1, order2 = order2, + matching = input$match_mode, + clustering_skipped = isTRUE(input$cluster) && + is.null(explicit) && + (nrow(a) > 2000L || (!is.null(b) && nrow(b) > 2000L)), + kind1 = input$kind1, kind2 = input$kind2) + }, error = function(e) { + shiny::showNotification(conditionMessage(e), type = "error", + duration = NULL) + NULL + }) + }) + }, ignoreInit = TRUE) + + data <- shiny::reactive({ shiny::req(loaded()); loaded() }) + has_two <- shiny::reactive(!is.null(data()$second)) + ordered_first <- shiny::reactive({ + d <- data() + d$first[d$order1, d$order1, drop = FALSE] + }) + ordered_second <- shiny::reactive({ + d <- data() + shiny::req(d$second) + d$second[d$order2, d$order2, drop = FALSE] + }) + shared <- shiny::reactive({ + d <- data() + shiny::req(d$second) + match_matrices(d$first, d$second, d$matching) + }) + combined_first <- shiny::reactive({ + d <- data() + both <- shared() + ids <- d$order1[d$order1 %in% both$ids] + list(first = d$first[ids, ids, drop = FALSE], + second = d$second[ids, ids, drop = FALSE]) + }) + combined_second <- shiny::reactive({ + d <- data() + both <- shared() + ids <- d$order2[d$order2 %in% both$ids] + list(first = d$second[ids, ids, drop = FALSE], + second = d$first[ids, ids, drop = FALSE]) + }) + diff_matrix <- shiny::reactive({ + shiny::req(input$comparable_scales) + x <- combined_first() + x$first - x$second + }) + pair_data <- shiny::reactive({ + m <- shared() + paired_values(m$first, m$second, max_pairs = input$max_pairs) + }) + + output$overview <- shiny::renderUI({ + d <- data() + shiny::tagList( + shiny::h3("Dataset overview"), + shiny::div(class = "metric", sprintf("Matrix 1: %s isolates", + format(nrow(d$first), big.mark = ","))), + if (!is.null(d$second)) + shiny::div(class = "metric", sprintf("Matrix 2: %s isolates; %s shared", + format(nrow(d$second), big.mark = ","), + format(length(shared()$ids), big.mark = ","))), + if (!is.null(d$second) && d$matching == "intersection") + shiny::p(sprintf("Excluded from comparison: %d only in matrix 1, %d only in matrix 2.", + length(shared()$only_first), length(shared()$only_second))), + if (d$clustering_skipped) + shiny::p("Clustering was skipped above 2,000 isolates. Import a sample order for large datasets."), + if (!is.null(d$second) && pair_data()$sampled) + shiny::p(sprintf("Pairwise statistics are based on %s of %s distinct possible pairs, sampled with seed %s.", + format(pair_data()$evaluated_pairs, big.mark = ","), + format(pair_data()$total_pairs, big.mark = ","), + pair_data()$seed)), + if (!is.null(d$second) && !input$comparable_scales) + shiny::p("The matrices may use different units. Pearson and Spearman correlations are reported; raw differences and error metrics are hidden.") + ) + }) + output$agreement <- shiny::renderTable({ + shiny::req(has_two()) + pp <- pair_data() + stats <- matrix_agreement(pp) + data.frame( + Measure = c("Valid isolate pairs", "Pearson r", "Spearman rho", + if (input$comparable_scales) c("Mean absolute difference", + "Root mean squared difference")), + Value = c(stats$n, signif(stats$pearson, 5), + signif(stats$spearman, 5), + if (input$comparable_scales) + c(signif(stats$mae, 5), signif(stats$rmse, 5))) + ) + }) + output$replicate_table <- shiny::renderTable({ + d <- data() + shiny::req(d$metadata, nzchar(input$metadata_column)) + replicate_summary(d$first, d$metadata, input$metadata_column, + max_pairs = input$max_pairs) + }) + + # Each plot is calculated only when its tab is shown. Palette changes do + # not reload workbooks or recompute clustering. + make_view <- function(prefix, source, name, combined = FALSE, + first_label = "Matrix 1", second_label = "Matrix 2", + is_difference = FALSE) { + output[[paste0(prefix, "_ui")]] <- shiny::renderUI({ + if (is_difference) shiny::req(input$comparable_scales) + m <- source() + size <- if (combined) nrow(m$first) else nrow(m) + if (size <= 300L) + plotly::plotlyOutput(paste0(prefix, "_interactive"), + width = "100%", height = "750px") + else shiny::tagList( + shiny::p("Large-matrix raster preview. Click a cell to inspect its exact original value."), + shiny::plotOutput(paste0(prefix, "_raster"), + width = "100%", height = "850px", + click = paste0(prefix, "_click")) + ) + }) + output[[paste0(prefix, "_interactive")]] <- plotly::renderPlotly({ + if (is_difference) shiny::req(input$comparable_scales) + m <- source() + size <- if (combined) nrow(m$first) else nrow(m) + shiny::req(size <= 300L) + ma_interactive(m, name = name, palette = input$palette, + show_numbers = input$show_numbers, combined = combined, + first_name = first_label, second_name = second_label, + log_scale = input$log_scale && !is_difference) + }) + output[[paste0(prefix, "_raster")]] <- shiny::renderPlot({ + if (is_difference) shiny::req(input$comparable_scales) + m <- source() + size <- if (combined) nrow(m$first) else nrow(m) + shiny::req(size > 300L) + if (combined) { + m <- ma_combined(m$first, m$second, input$log_scale)$values + normal <- TRUE + } else normal <- FALSE + graphics::par(mar = c(9, 9, 5, 2)) + d <- data() + meta <- if (is_difference || !nzchar(input$metadata_column)) NULL + else d$metadata + ma_raster(m, palette = input$palette, title = name, + metadata = meta, + group_column = input$metadata_column, normalized = normal, + log_scale = input$log_scale && !is_difference) + }, res = 110) + output[[paste0(prefix, "_cell")]] <- shiny::renderText({ + shiny::req(input[[paste0(prefix, "_click")]]) + if (is_difference) shiny::req(input$comparable_scales) + m <- source() + original <- if (combined) + ma_combined(m$first, m$second, input$log_scale)$original else m + preview <- ma_preview(original) + click <- input[[paste0(prefix, "_click")]] + col <- as.integer(round(click$x)) + row <- as.integer(nrow(preview$matrix) + 1 - round(click$y)) + if (is.na(col) || is.na(row) || col < 1L || + row < 1L || col > nrow(preview$matrix) || + row > nrow(preview$matrix)) return("") + i <- preview$indices[row] + j <- preview$indices[col] + sprintf("%s / %s: %s%s", rownames(original)[i], + colnames(original)[j], format(original[i, j], digits = 9), + if (combined) if (i < j) paste0(" (", first_label, ")") + else if (i > j) paste0(" (", second_label, ")") + else " (diagonal)" else "") + }) + } + make_view("plot1", ordered_first, "Matrix 1") + make_view("plot2", ordered_second, "Matrix 2") + make_view("combined1", combined_first, "Combined, ordered by matrix 1", + combined = TRUE) + make_view("combined2", combined_second, "Combined, ordered by matrix 2", + combined = TRUE, first_label = "Matrix 2", second_label = "Matrix 1") + make_view("difference", diff_matrix, "Matrix 1 minus matrix 2", + is_difference = TRUE) + + output$scatter <- shiny::renderPlot({ + shiny::req(has_two()) + p <- pair_data() + d <- p$data + shiny::validate(shiny::need(nrow(d) >= 2L, + "At least two nonmissing sample pairs are needed.")) + graphics::plot(d$first, d$second, pch = 16L, + col = grDevices::adjustcolor("#305f86", alpha.f = 0.27), + cex = 0.5, xlab = "Matrix 1", ylab = "Matrix 2", + main = sprintf("Distinct isolate pairs (n = %s%s)", + format(nrow(d), big.mark = ","), + if (p$sampled) ", sampled" else "")) + if (input$comparable_scales) graphics::abline(0, 1, lty = 2) + }) + output$discrepancies <- shiny::renderTable({ + shiny::req(has_two(), input$comparable_scales) + d <- pair_data()$data + d <- d[order(abs(d$difference), decreasing = TRUE), , drop = FALSE] + utils::head(d, 20L) + }, digits = 5) + + concordance <- shiny::reactive({ + shiny::req(has_two()) + m <- shared() + shiny::validate(shiny::need(nrow(m$first) <= 2000L, + "Cluster concordance is limited to 2,000 shared isolates.")) + shiny::validate(shiny::need(input$cluster_k < nrow(m$first), + "Choose fewer clusters than shared isolates.")) + cluster_concordance(m$first, m$second, kind_a = data()$kind1, + kind_b = data()$kind2, k = input$cluster_k) + }) + output$cluster_summary <- shiny::renderTable({ + c <- concordance() + data.frame(measure = "Adjusted Rand index", value = c$ari) + }) + output$cluster_table <- shiny::renderTable({ + utils::head(concordance()$assignments, 100L) + }) + output$metadata_preview <- shiny::renderTable({ + shiny::req(data()$metadata) + utils::head(data()$metadata, 100L) + }, rownames = TRUE) + output$metadata_note <- shiny::renderUI({ + shiny::req(data()$metadata) + shiny::p("Showing up to 100 metadata rows. Choose a categorical metadata column in the sidebar to compare within-group and between-group matrix values.") + }) + + mantel_result <- shiny::eventReactive(input$run_mantel, { + shiny::req(has_two()) + tryCatch({ + x <- shared() + matrix_mantel(x$first, x$second, permutations = input$permutations) + }, error = function(e) list(error = conditionMessage(e))) + }) + output$mantel_result <- shiny::renderPrint({ + shiny::req(mantel_result()) + r <- mantel_result() + if (!is.null(r$error)) cat("Mantel test: ", r$error, "\n") + else cat(sprintf("Mantel test: r = %.5f, two-sided permutation p = %.5g; %d label permutations, seed %d.\n", + r$observed, r$p_two_sided, r$permutations, r$seed)) + }) + + output$download_first <- shiny::downloadHandler( + filename = function() "MAniR_matrix1.csv", + content = function(file) write_matrix_csv(data()$first, file)) + output$download_second <- shiny::downloadHandler( + filename = function() "MAniR_matrix2.csv", + content = function(file) { + shiny::req(data()$second) + write_matrix_csv(data()$second, file) + }) + output$download_pairs <- shiny::downloadHandler( + filename = function() "MAniR_pairwise_values.csv", + content = function(file) { + shiny::req(has_two()) + utils::write.csv(pair_data()$data, file, row.names = FALSE) + }) + output$download_clusters <- shiny::downloadHandler( + filename = function() "MAniR_clusters.csv", + content = function(file) utils::write.csv( + concordance()$assignments, file, row.names = FALSE)) + output$download_rds <- shiny::downloadHandler( + filename = function() "MAniR_matrices.rds", + content = function(file) { + d <- data() + saveRDS(list(first = d$first, second = d$second, + metadata = d$metadata, order1 = d$order1, + order2 = d$order2, matching = d$matching, + kinds = c(d$kind1, d$kind2)), file) + }) + output$download_first_png <- shiny::downloadHandler( + filename = function() "MAniR_matrix1.png", + content = function(file) + ma_save_png(ordered_first(), file, palette = input$palette, + title = "Matrix 1")) + output$download_combined_png <- shiny::downloadHandler( + filename = function() "MAniR_combined.png", + content = function(file) { + m <- combined_first() + ma_save_png(ma_combined(m$first, m$second, input$log_scale)$values, + file, palette = input$palette, + title = "Combined matrix, independently display-scaled", + normalized = TRUE) + }) + output$download_settings <- shiny::downloadHandler( + filename = function() "MAniR_analysis_settings.txt", + content = function(file) { + d <- data() + writeLines(c( + paste("MAniR generated:", Sys.time()), + paste("First matrix:", nrow(d$first), "isolates"), + paste("Second matrix:", if (is.null(d$second)) "None" else nrow(d$second)), + paste("Matrix kinds:", d$kind1, d$kind2), + paste("Sample matching:", d$matching), + paste("Cluster requested:", input$cluster), + paste("Cluster limit:", 2000L), + paste("Color palette:", input$palette), + paste("Log display scaling:", input$log_scale), + paste("Comparable units:", input$comparable_scales), + paste("Maximum analyzed pairs:", input$max_pairs), + paste("Pair sampling seed:", 1L), + paste("Mantel seed:", 1L), + paste("Session:", paste(utils::capture.output(utils::sessionInfo()), + collapse = "\n")) + ), file) + }) +} From 82977116111ae3c26fe6490cf388ee97e4249f3b Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:22:16 +0200 Subject: [PATCH 008/134] fix: detect upload formats from original filenames --- R/matrix_io.R | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/R/matrix_io.R b/R/matrix_io.R index 93fe0ba..6a83afe 100644 --- a/R/matrix_io.R +++ b/R/matrix_io.R @@ -1,12 +1,12 @@ # Input and validation shared by the Shiny application and command-line tools. -matrix_sheet_names <- function(path) { - ext <- tolower(tools::file_ext(path)) +matrix_sheet_names <- function(path, format = path) { + ext <- tolower(tools::file_ext(format)) if (ext %in% c("xlsx", "xlsm")) return(openxlsx::getSheetNames(path)) character() } -read_matrix_input <- function(path, sheet = NULL, workbook = NULL) { +read_matrix_input <- function(path, sheet = NULL, workbook = NULL, format = path) { ext <- tolower(tools::file_ext(path)) if (ext %in% c("xlsx", "xlsm")) { if (is.null(sheet) || identical(sheet, "")) stop("Select a matrix worksheet.") @@ -16,7 +16,7 @@ read_matrix_input <- function(path, sheet = NULL, workbook = NULL) { } else if (ext == "rds") { x <- readRDS(path) } else if (ext %in% c("csv", "tsv", "txt", "gz")) { - sep <- if (ext == "tsv" || grepl("\\.tsv\\.gz$", path, ignore.case = TRUE)) "\t" else "," + sep <- if (ext == "tsv" || grepl("\\.tsv\\.gz$", format, ignore.case = TRUE)) "\t" else "," if (requireNamespace("data.table", quietly = TRUE)) { x <- data.table::fread(path, sep = sep, data.table = FALSE, check.names = FALSE, showProgress = FALSE) @@ -84,7 +84,7 @@ validate_matrix <- function(x, kind = c("auto", "similarity", "correlation", "di m } -read_metadata_input <- function(path, sheet = NULL, workbook = NULL) { +read_metadata_input <- function(path, sheet = NULL, workbook = NULL, format = path) { ext <- tolower(tools::file_ext(path)) if (ext %in% c("xlsx", "xlsm")) { if (is.null(sheet) || sheet == "None") return(NULL) @@ -94,7 +94,7 @@ read_metadata_input <- function(path, sheet = NULL, workbook = NULL) { } else if (ext == "rds") { x <- readRDS(path) } else { - sep <- if (ext == "tsv" || grepl("\\.tsv\\.gz$", path, ignore.case = TRUE)) "\t" else "," + sep <- if (ext == "tsv" || grepl("\\.tsv\\.gz$", format, ignore.case = TRUE)) "\t" else "," x <- utils::read.table(path, sep = sep, header = TRUE, row.names = 1L, check.names = FALSE, stringsAsFactors = FALSE) } From fe3c3293c3003cf83ed25e2185256e8c02e0446a Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:22:18 +0200 Subject: [PATCH 009/134] fix: combined view dimensions and categorical raster annotations --- R/matrix_plot.R | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/R/matrix_plot.R b/R/matrix_plot.R index 32d800c..6129501 100644 --- a/R/matrix_plot.R +++ b/R/matrix_plot.R @@ -57,7 +57,7 @@ ma_interactive <- function(m, name = "Matrix", palette = "RdBu", log_scale = FALSE) { if (!requireNamespace("plotly", quietly = TRUE)) stop("Install the plotly package for interactive plots.") - n <- nrow(m) + n <- if (combined) nrow(m$first) else nrow(m) if (n > 300L) stop("Use the raster renderer for matrices above 300 isolates.") if (combined) { norm <- ma_combined(m$first, m$second, log_scale) @@ -129,7 +129,7 @@ ma_raster <- function(m, palette = "RdBu", title = "", pix <- grDevices::as.raster(color_matrix) n <- nrow(x) show_at <- unique(as.integer(round(seq(1, n, length.out = min(n, 16L))))) - plot(NA, xlim = c(0.5, n + 0.5), ylim = c(0.5, n + 0.5), + plot(NA, xlim = c(0, n + 0.5), ylim = c(0.5, n + 0.5), xaxs = "i", yaxs = "i", asp = 1, axes = FALSE, xlab = "", ylab = "", main = title) graphics::rasterImage(pix, 0.5, 0.5, n + 0.5, n + 0.5, @@ -139,6 +139,23 @@ ma_raster <- function(m, palette = "RdBu", title = "", axis(2, at = n + 1L - show_at, labels = rownames(x)[show_at], las = 2, cex.axis = 0.55) box() + if (!is.null(metadata) && !is.null(group_column) && nzchar(group_column) && + group_column %in% colnames(metadata)) { + groups <- as.character(metadata[match(rownames(x), rownames(metadata)), group_column]) + valid <- !is.na(groups) + levels <- unique(groups[valid]) + annotation_colors <- grDevices::hcl.colors(max(1L, length(levels)), "Set 2") + fill <- annotation_colors[match(groups, levels)] + if (any(valid)) { + # The left-hand color strip represents the selected metadata field. + graphics::rect(0.06, n - which(valid) + 0.5, 0.40, + n - which(valid) + 1.5, col = fill[valid], border = NA) + if (length(levels) <= 12L) { + graphics::legend("topright", legend = levels, fill = annotation_colors, + cex = 0.55, bty = "n") + } + } + } if (preview$sampled) mtext(sprintf("Representative view: %d of %d isolates. Inspect original values in the table.", n, preview$full_n), side = 3, line = 0, cex = 0.75) From 024e386b18fb30a9dbb6b9098b1d340150967d88 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:22:31 +0200 Subject: [PATCH 010/134] fix: pass original Shiny upload formats to all readers --- server.R | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/server.R b/server.R index ab72090..c8c4b5b 100644 --- a/server.R +++ b/server.R @@ -5,7 +5,7 @@ server <- function(input, output, session) { } output$first_sheet_ui <- shiny::renderUI({ if (!is_excel(input$first_file)) return(NULL) - sheets <- tryCatch(matrix_sheet_names(input$first_file$datapath), + sheets <- tryCatch(matrix_sheet_names(input$first_file$datapath, input$first_file$name), error = function(e) character()) shiny::selectInput("first_sheet", "First matrix worksheet", choices = sheets, selected = sheets[1L]) @@ -13,7 +13,7 @@ server <- function(input, output, session) { output$second_sheet_ui <- shiny::renderUI({ f <- if (!is.null(input$second_file)) input$second_file else input$first_file if (!is_excel(f)) return(NULL) - sheets <- tryCatch(matrix_sheet_names(f$datapath), + sheets <- tryCatch(matrix_sheet_names(f$datapath, f$name), error = function(e) character()) suggested <- if (is.null(input$second_file) && length(sheets) > 1L) sheets[2L] else "None" @@ -23,7 +23,7 @@ server <- function(input, output, session) { output$metadata_sheet_ui <- shiny::renderUI({ f <- if (!is.null(input$metadata_file)) input$metadata_file else input$first_file if (!is_excel(f)) return(NULL) - sheets <- tryCatch(matrix_sheet_names(f$datapath), + sheets <- tryCatch(matrix_sheet_names(f$datapath, f$name), error = function(e) character()) suggested <- if (is.null(input$metadata_file) && is.null(input$second_file) && length(sheets) > 2L) @@ -41,7 +41,7 @@ server <- function(input, output, session) { wb1 <- if (is_excel(f)) openxlsx::loadWorkbook(f$datapath) else NULL a <- read_matrix_input(f$datapath, sheet = if (is_excel(f)) input$first_sheet else NULL, - workbook = wb1) + workbook = wb1, format = f$name) a <- validate_matrix(a, input$kind1) shiny::incProgress(0.20) f2 <- if (!is.null(input$second_file)) input$second_file else f @@ -57,7 +57,7 @@ server <- function(input, output, session) { openxlsx::loadWorkbook(f2$datapath) else wb1 b <- read_matrix_input(f2$datapath, sheet = if (is_excel(f2)) input$second_sheet else NULL, - workbook = wb2) + workbook = wb2, format = f2$name) b <- validate_matrix(b, input$kind2) # Match once for early actionable errors; avoid retaining copies. shared_ids <- intersect(colnames(a), colnames(b)) @@ -76,9 +76,9 @@ server <- function(input, output, session) { wbm <- if (!is.null(input$metadata_file)) openxlsx::loadWorkbook(fmeta$datapath) else wb1 meta <- read_metadata_input(fmeta$datapath, - input$metadata_sheet, wbm) + input$metadata_sheet, wbm, format = fmeta$name) } else if (!is.null(input$metadata_file) && !is_excel(fmeta)) { - meta <- read_metadata_input(fmeta$datapath) + meta <- read_metadata_input(fmeta$datapath, format = fmeta$name) } if (!is.null(meta) && !all(colnames(a) %in% rownames(meta))) shiny::showNotification("Some matrix samples have no metadata.", From 356225dd459f52738e92da49a51a75d91283c93d Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:22:38 +0200 Subject: [PATCH 011/134] fix: use original filename to detect XLSX, CSV, TSV and RDS --- R/matrix_io.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/matrix_io.R b/R/matrix_io.R index 6a83afe..c56b016 100644 --- a/R/matrix_io.R +++ b/R/matrix_io.R @@ -7,7 +7,7 @@ matrix_sheet_names <- function(path, format = path) { } read_matrix_input <- function(path, sheet = NULL, workbook = NULL, format = path) { - ext <- tolower(tools::file_ext(path)) + ext <- tolower(tools::file_ext(format)) if (ext %in% c("xlsx", "xlsm")) { if (is.null(sheet) || identical(sheet, "")) stop("Select a matrix worksheet.") if (is.null(workbook)) workbook <- openxlsx::loadWorkbook(path) @@ -85,7 +85,7 @@ validate_matrix <- function(x, kind = c("auto", "similarity", "correlation", "di } read_metadata_input <- function(path, sheet = NULL, workbook = NULL, format = path) { - ext <- tolower(tools::file_ext(path)) + ext <- tolower(tools::file_ext(format)) if (ext %in% c("xlsx", "xlsm")) { if (is.null(sheet) || sheet == "None") return(NULL) if (is.null(workbook)) workbook <- openxlsx::loadWorkbook(path) From 61d1972526e72ff7827d10a27680a78721860f57 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:23:00 +0200 Subject: [PATCH 012/134] build: declare MAniR runtime and optional accelerated dependencies --- DESCRIPTION | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 DESCRIPTION diff --git a/DESCRIPTION b/DESCRIPTION new file mode 100644 index 0000000..02cae0a --- /dev/null +++ b/DESCRIPTION @@ -0,0 +1,20 @@ +Package: MAniR +Type: Project +Title: Interactive Pairwise Matrix Comparison for MALDI-TOF and Genomic Analysis +Version: 3.0.0 +Authors@R: person("BiKC", role = c("aut", "cre"), email = "opensource@example.invalid") +Description: Shiny application to compare similarity, correlation and distance + matrices using scalable visualization, isolate-level metadata and + pairwise analytical summaries. The application is run directly from app.R. +License: GPL-3 +Encoding: UTF-8 +Depends: + R (>= 4.2.0) +Imports: + shiny, + plotly, + openxlsx, + RColorBrewer +Suggests: + data.table, + fastcluster From 32c52804d63c6d5750ec259c2250de4156198cc3 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:23:24 +0200 Subject: [PATCH 013/134] test: cover matrix validation, exact values, clustering, Mantel, sampling and raster output --- tests/run_tests.R | 172 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 tests/run_tests.R diff --git a/tests/run_tests.R b/tests/run_tests.R new file mode 100644 index 0000000..2f25990 --- /dev/null +++ b/tests/run_tests.R @@ -0,0 +1,172 @@ +# Run with: Rscript tests/run_tests.R +source("R/matrix_io.R") +source("R/matrix_analysis.R") +source("R/matrix_plot.R") + +expect_error <- function(expr, pattern = NULL) { + e <- tryCatch({force(expr); NULL}, error = function(e) conditionMessage(e)) + if (is.null(e)) stop("Expected an error, but none was raised.", call. = FALSE) + if (!is.null(pattern) && !grepl(pattern, e, ignore.case = TRUE)) + stop("Expected error matching: ", pattern, "; got: ", e, call. = FALSE) + invisible(e) +} +test <- function(label, expression) { + force(expression) + cat("PASS:", label, "\n") +} + +ids <- c("Isolate B", "Isolate A", "Isolate C", "Isolate D") +m <- matrix(c( + 100, 80, 40, 30, + 80,100, 45, 35, + 40, 45,100, 95, + 30, 35, 95,100 +), 4, byrow = TRUE, dimnames = list(ids, ids)) +test("matrix import reorders named rows to named columns", { + scrambled <- m[c(3, 1, 4, 2), , drop = FALSE] + imported <- validate_matrix(scrambled, "similarity") + stopifnot(identical(dimnames(imported), dimnames(m)), + isTRUE(all.equal(unname(imported), unname(m), + check.attributes = FALSE))) +}) +test("matrix identifiers are trimmed without changing values", { + dirty <- m + rownames(dirty) <- paste0(" ", rownames(dirty), " ") + colnames(dirty) <- paste0(" ", colnames(dirty), " ") + cleaned <- validate_matrix(dirty) + stopifnot(identical(rownames(cleaned), ids), + identical(colnames(cleaned), ids)) +}) +test("duplicate, inconsistent, nonnumeric, negative and asymmetric data fail", { + x <- m; rownames(x)[2] <- rownames(x)[1] + expect_error(validate_matrix(x), "Duplicate") + x <- m; colnames(x)[2] <- "Wrong ID" + expect_error(validate_matrix(x), "differ") + x <- as.data.frame(m); x[1, 3] <- "not a number" + expect_error(validate_matrix(x), "nonnumeric") + x <- m; x[1, 2] <- 70 + expect_error(validate_matrix(x), "symmetric") + x <- m; x[1, 2] <- -1; x[2, 1] <- -1 + expect_error(validate_matrix(x, "similarity"), "negative") + x <- m; x[1, 2] <- 2; x[2, 1] <- 2 + expect_error(validate_matrix(x, "correlation"), "between -1 and 1") +}) +test("missing values must occur in mirrored pairs", { + x <- m; x[1, 2] <- NA_real_ + expect_error(validate_matrix(x), "mirrored") + x[2, 1] <- NA_real_ + stopifnot(is.na(validate_matrix(x)[1, 2])) +}) +test("matched matrices preserve exact values", { + reversed <- m[rev(ids), rev(ids), drop = FALSE] / 100 + mm <- match_matrices(m, reversed) + stopifnot(identical(mm$ids, ids), + isTRUE(all.equal(mm$second, m / 100, + check.attributes = FALSE))) +}) +test("intersection reports excluded samples", { + x <- m[1:3, 1:3] + y <- m[2:4, 2:4] + res <- match_matrices(x, y, "intersection") + stopifnot(length(res$ids) == 2L, + identical(res$only_first, ids[1]), + identical(res$only_second, ids[4])) + expect_error(match_matrices(x, y, "strict"), "differ") +}) +test("pair indices cover the strictly upper triangle exactly once", { + p <- upper_pair_indices(4, max_pairs = 100) + stopifnot(identical(p$i, c(1L, 1L, 2L, 1L, 2L, 3L)), + identical(p$j, c(2L, 3L, 3L, 4L, 4L, 4L)), + p$total == 6, !p$sampled) +}) +test("sampling is reproducible and does not alter the session RNG", { + set.seed(1234) + before <- .Random.seed + p1 <- upper_pair_indices(500, 1000, seed = 41) + stopifnot(identical(before, .Random.seed)) + p2 <- upper_pair_indices(500, 1000, seed = 41) + stopifnot(identical(p1, p2), p1$sampled, + all(p1$i < p1$j), !anyDuplicated(paste(p1$i, p1$j))) +}) +test("matrix pair comparison excludes mirrored and diagonal pairs", { + pp <- paired_values(m, m * 2) + stopifnot(nrow(pp$data) == 6L, !pp$sampled) + stats <- matrix_agreement(pp) + stopifnot(abs(stats$pearson - 1) < 1e-12, + abs(stats$spearman - 1) < 1e-12) +}) +test("scale handling preserves source matrices", { + before <- m + combined <- ma_combined(m, m / 100) + stopifnot(identical(m, before), + identical(combined$original[1, 2], m[1, 2]), + identical(combined$original[2, 1], m[2, 1] / 100), + all(combined$values >= 0 & combined$values <= 1)) + constant <- matrix(4, 2, 2) + stopifnot(all(ma_scale(constant) == 0.5)) + expect_error(ma_scale(matrix(c(0, 1, 2, 3), 2), TRUE), "positive") +}) +test("cluster ordering and adjusted Rand index are reproducible", { + c1 <- matrix_order(m) + c2 <- matrix_order(m) + stopifnot(identical(c1$ids, c2$ids), + identical(sort(c1$ids), sort(ids)), + adjusted_rand(c(1, 1, 2, 2), c(2, 2, 1, 1)) == 1) + result <- cluster_concordance(m, m, k = 2) + stopifnot(abs(result$ari - 1) < 1e-12, + nrow(result$assignments) == 4L) + skip <- matrix_order(m, max_cluster = 2L) + stopifnot(isTRUE(skip$skipped), is.null(skip$tree)) +}) +test("Mantel permutation uses label permutations and restores RNG", { + set.seed(48) + before <- .Random.seed + res <- matrix_mantel(m, m, permutations = 99, seed = 44) + stopifnot(abs(res$observed - 1) < 1e-12, + res$p_two_sided > 0 && res$p_two_sided <= 1, + identical(before, .Random.seed)) +}) +test("metadata alignment and replicate summaries work", { + meta <- data.frame(group = c("G1", "G1", "G2", "G2"), + row.names = rev(ids)) + aligned <- align_metadata(meta, ids) + stopifnot(identical(rownames(aligned), ids)) + summary <- replicate_summary(m, meta, "group") + stopifnot(nrow(summary) == 2L, sum(summary$pairs) == 6L) +}) +test("CSV export and reimport retain original values", { + path <- tempfile(fileext = ".csv") + write_matrix_csv(m, path) + imported <- read_matrix_input(path) + stopifnot(isTRUE(all.equal(m, imported, check.attributes = FALSE))) +}) +test("compressed TSV input keeps names and numeric precision", { + path <- tempfile(fileext = ".tsv.gz") + con <- gzfile(path, "wt") + utils::write.table(data.frame(sample_id = ids, m, check.names = FALSE), + file = con, sep = "\t", row.names = FALSE, quote = TRUE) + close(con) + imported <- read_matrix_input(path) + stopifnot(isTRUE(all.equal(m, imported, check.attributes = FALSE))) +}) +test("RDS input supports numeric matrices", { + path <- tempfile(fileext = ".rds") + saveRDS(m, path) + imported <- read_matrix_input(path) + stopifnot(isTRUE(all.equal(m, imported, check.attributes = FALSE))) +}) +test("large matrix preview is bounded and retains exact sampled values", { + big <- matrix(1, 900, 900) + diag(big) <- 100 + dimnames(big) <- list(paste0("I", seq_len(900)), + paste0("I", seq_len(900))) + preview <- ma_preview(big, max_side = 128) + stopifnot(identical(dim(preview$matrix), c(128L, 128L)), + identical(preview$matrix, + big[preview$indices, preview$indices, drop = FALSE])) + png_file <- tempfile(fileext = ".png") + ma_save_png(big, png_file, max_side = 128) + stopifnot(file.exists(png_file), file.info(png_file)$size > 0) +}) + +cat("All MAniR regression tests passed.\n") From 008105197ee274e9d44d470faf254010e02269be Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:23:48 +0200 Subject: [PATCH 014/134] bench: add repeatable staged scalability and memory benchmark harness --- benchmarks/benchmark.R | 74 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 benchmarks/benchmark.R diff --git a/benchmarks/benchmark.R b/benchmarks/benchmark.R new file mode 100644 index 0000000..c550c03 --- /dev/null +++ b/benchmarks/benchmark.R @@ -0,0 +1,74 @@ +#!/usr/bin/env Rscript +# Benchmark selected calculation and display stages. Run with: +# Rscript benchmarks/benchmark.R +# Rscript benchmarks/benchmark.R --smoke +# Rscript benchmarks/benchmark.R --large +# Results are hardware-dependent; repeated runs and environment details +# are required before reporting performance claims. + +source("R/matrix_io.R") +source("R/matrix_analysis.R") +source("R/matrix_plot.R") + +args <- commandArgs(trailingOnly = TRUE) +smoke <- "--smoke" %in% args +large <- "--large" %in% args +sizes <- if (smoke) c(60L, 120L) else if (large) + c(500L, 1000L, 2500L, 5000L, 10000L) +else c(100L, 300L, 600L, 1000L, 2500L) +repeats <- if (smoke) 1L else 3L +dir.create("benchmarks/results", recursive = TRUE, showWarnings = FALSE) +results <- list() +idx <- 1L + +for (n in sizes) { + cat("Generating synthetic matrix for", n, "isolates\n") + set.seed(777) + features <- matrix(stats::rnorm(n * 7L), nrow = n, ncol = 7L) + m <- exp(-as.matrix(stats::dist(features)) / 3) + ids <- sprintf("isolate_%06d", seq_len(n)) + dimnames(m) <- list(ids, ids) + diag(m) <- 1 + rm(features) + gc() + for (repeat_index in seq_len(repeats)) { + run_case <- function(stage, expr) { + gc(reset = TRUE) + start <- proc.time()[["elapsed"]] + result <- force(expr) + elapsed <- proc.time()[["elapsed"]] - start + # R's reported high-water vector heap is approximate, not process RSS. + approx_heap_mb <- unname(gc()[2L, "max used"]) * 8 / 1024^2 + results[[idx]] <<- data.frame( + n = n, repeat_index = repeat_index, stage = stage, + seconds = elapsed, approx_vector_heap_mb = approx_heap_mb, + renderer = "MAniR v3", stringsAsFactors = FALSE) + idx <<- idx + 1L + invisible(result) + } + run_case("validate", validate_matrix(m, kind = "similarity")) + if (n <= 2500L) { + run_case("cluster", matrix_order(m, kind = "similarity")) + } else { + run_case("skip_cluster_large", matrix_order(m, kind = "similarity")) + } + run_case("pair_sampling_100k", paired_values(m, m, + max_pairs = 100000L)) + run_case("raster_512", { + file <- tempfile(fileext = ".png") + ma_save_png(m, file, max_side = 512L) + unlink(file) + }) + } + rm(m) + gc() +} +result <- do.call(rbind, results) +print(result, row.names = FALSE) +out <- file.path("benchmarks/results", + paste0("MAniR-", format(Sys.time(), "%Y%m%d-%H%M%S"), + if (smoke) "-smoke" else "", ".csv")) +utils::write.csv(result, out, row.names = FALSE) +cat("Results written to:", out, "\n") +cat("R version:", R.version.string, "\n") +print(utils::sessionInfo()) From a82c2f7010fb2ebe1b832660f17b4411b5ebab20 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:23:55 +0200 Subject: [PATCH 015/134] fix: read compressed text matrices without optional R.utils --- R/matrix_io.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/matrix_io.R b/R/matrix_io.R index c56b016..6aa53f7 100644 --- a/R/matrix_io.R +++ b/R/matrix_io.R @@ -17,7 +17,7 @@ read_matrix_input <- function(path, sheet = NULL, workbook = NULL, format = path x <- readRDS(path) } else if (ext %in% c("csv", "tsv", "txt", "gz")) { sep <- if (ext == "tsv" || grepl("\\.tsv\\.gz$", format, ignore.case = TRUE)) "\t" else "," - if (requireNamespace("data.table", quietly = TRUE)) { + if (ext != "gz" && requireNamespace("data.table", quietly = TRUE)) { x <- data.table::fread(path, sep = sep, data.table = FALSE, check.names = FALSE, showProgress = FALSE) if (ncol(x) < 2L) stop("The file needs an ID column and matrix columns.") From f2e4736bba570206c891004ff753fdf04bf5befa Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:23:58 +0200 Subject: [PATCH 016/134] fix: close PNG device safely after plotting --- R/matrix_plot.R | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/R/matrix_plot.R b/R/matrix_plot.R index 6129501..33ad946 100644 --- a/R/matrix_plot.R +++ b/R/matrix_plot.R @@ -166,8 +166,7 @@ ma_save_png <- function(m, file, palette = "RdBu", title = "", max_side = 1200L, normalized = FALSE) { grDevices::png(file, width = 1700L, height = 1600L, res = 160L) on.exit(grDevices::dev.off(), add = TRUE) - op <- graphics::par(mar = c(9, 9, 5, 2)) - on.exit(graphics::par(op), add = TRUE) + graphics::par(mar = c(9, 9, 5, 2)) ma_raster(m, palette = palette, title = title, max_side = max_side, normalized = normalized) invisible(file) From 9af50c060b53b826c1bbf88c35dbc5294b0fe736 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:24:12 +0200 Subject: [PATCH 017/134] ci: add Linux and Windows regression checks and benchmark smoke --- .github/workflows/r-tests.yml | 49 +++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 .github/workflows/r-tests.yml diff --git a/.github/workflows/r-tests.yml b/.github/workflows/r-tests.yml new file mode 100644 index 0000000..9891192 --- /dev/null +++ b/.github/workflows/r-tests.yml @@ -0,0 +1,49 @@ +name: MAniR tests and benchmark smoke + +on: + push: + branches: + - main + - upgrade/** + pull_request: + +jobs: + r-tests: + name: R regression suite + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: r-lib/actions/setup-r@v2 + with: + use-public-rspm: true + - uses: r-lib/actions/setup-r-dependencies@v2 + with: + cache-version: 1 + extra-packages: | + any::data.table + any::fastcluster + - name: Test numerical correctness, files and plot export + run: Rscript tests/run_tests.R + - name: Parse and load the Shiny application + run: Rscript -e "stopifnot(inherits(source('app.R')$value, 'shiny.appobj'))" + - name: Benchmark smoke + run: Rscript benchmarks/benchmark.R --smoke + - name: Upload benchmark smoke results + uses: actions/upload-artifact@v4 + with: + name: MAniR-benchmark-smoke + path: benchmarks/results/*-smoke.csv + + windows-tests: + name: Windows regression suite + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + - uses: r-lib/actions/setup-r@v2 + - uses: r-lib/actions/setup-r-dependencies@v2 + with: + cache-version: 1 + - name: Regression tests + run: Rscript tests/run_tests.R + - name: Parse and load application + run: Rscript -e "stopifnot(inherits(source('app.R')$value, 'shiny.appobj'))" From 59a71681c4047aa17256037a680e951a538039f5 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:25:22 +0200 Subject: [PATCH 018/134] feat: add large-matrix region navigation controls --- ui.R | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ui.R b/ui.R index 1b0bcc0..3754636 100644 --- a/ui.R +++ b/ui.R @@ -49,6 +49,10 @@ ui <- shiny::fluidPage( choices = c("RdBu", "BrBG", "PiYG", "PRGn", "PuOr", "RdYlBu", "Viridis", "YlOrRd", "Blues", "Greens", "Greys"), selected = "RdBu"), + shiny::checkboxInput("zoom_enabled", "Zoom into a region in large matrices", FALSE), + shiny::numericInput("zoom_start", "First isolate index", 1, min = 1, step = 1), + shiny::numericInput("zoom_size", "Isolates in zoom region", 300, + min = 10, max = 1000, step = 50), shiny::checkboxInput("show_numbers", "Display cell numbers in small plots", value = FALSE), shiny::checkboxInput("log_scale", "Logarithmic display scaling", From 9b84ff9a55d644efb7bb490b9c2293c750e5d761 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:25:24 +0200 Subject: [PATCH 019/134] perf: render viewport slices without allocating complete large combined matrices --- server.R | 72 +++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 50 insertions(+), 22 deletions(-) diff --git a/server.R b/server.R index c8c4b5b..27c74ff 100644 --- a/server.R +++ b/server.R @@ -155,11 +155,20 @@ server <- function(input, output, session) { list(first = d$second[ids, ids, drop = FALSE], second = d$first[ids, ids, drop = FALSE]) }) + # Keep source matrices separate until a particular viewport is requested. diff_matrix <- shiny::reactive({ shiny::req(input$comparable_scales) - x <- combined_first() - x$first - x$second + combined_first() }) + visible_indices <- function(n) { + ix <- if (isTRUE(input$zoom_enabled) && n > 300L) { + start <- max(1L, min(n, as.integer(input$zoom_start))) + seq.int(start, min(n, start + as.integer(input$zoom_size) - 1L)) + } else seq_len(n) + if (length(ix) > 512L) + ix <- ix[unique(as.integer(round(seq(1, length(ix), length.out = 512L))))] + ix + } pair_data <- shiny::reactive({ m <- shared() paired_values(m$first, m$second, max_pairs = input$max_pairs) @@ -218,7 +227,7 @@ server <- function(input, output, session) { output[[paste0(prefix, "_ui")]] <- shiny::renderUI({ if (is_difference) shiny::req(input$comparable_scales) m <- source() - size <- if (combined) nrow(m$first) else nrow(m) + size <- if (combined || is_difference) nrow(m$first) else nrow(m) if (size <= 300L) plotly::plotlyOutput(paste0(prefix, "_interactive"), width = "100%", height = "750px") @@ -232,8 +241,9 @@ server <- function(input, output, session) { output[[paste0(prefix, "_interactive")]] <- plotly::renderPlotly({ if (is_difference) shiny::req(input$comparable_scales) m <- source() - size <- if (combined) nrow(m$first) else nrow(m) + size <- if (combined || is_difference) nrow(m$first) else nrow(m) shiny::req(size <= 300L) + if (is_difference) m <- m$first - m$second ma_interactive(m, name = name, palette = input$palette, show_numbers = input$show_numbers, combined = combined, first_name = first_label, second_name = second_label, @@ -242,38 +252,56 @@ server <- function(input, output, session) { output[[paste0(prefix, "_raster")]] <- shiny::renderPlot({ if (is_difference) shiny::req(input$comparable_scales) m <- source() - size <- if (combined) nrow(m$first) else nrow(m) + size <- if (combined || is_difference) nrow(m$first) else nrow(m) shiny::req(size > 300L) - if (combined) { - m <- ma_combined(m$first, m$second, input$log_scale)$values - normal <- TRUE - } else normal <- FALSE + ix <- visible_indices(size) + if (combined || is_difference) { + # Slice first: do not build three full N*N combined copies for a preview. + a <- m$first[ix, ix, drop = FALSE] + b <- m$second[ix, ix, drop = FALSE] + if (combined) { + m <- ma_combined(a, b, input$log_scale)$values + normal <- TRUE + } else { + m <- a - b + normal <- FALSE + } + } else { + m <- m[ix, ix, drop = FALSE] + normal <- FALSE + } graphics::par(mar = c(9, 9, 5, 2)) d <- data() meta <- if (is_difference || !nzchar(input$metadata_column)) NULL else d$metadata ma_raster(m, palette = input$palette, title = name, - metadata = meta, - group_column = input$metadata_column, normalized = normal, - log_scale = input$log_scale && !is_difference) + metadata = meta, group_column = input$metadata_column, + normalized = normal, log_scale = input$log_scale && !is_difference) + if (length(ix) < size) + graphics::mtext(if (isTRUE(input$zoom_enabled)) + sprintf("Zoom region; %d of %d isolates (starting at %d).", + length(ix), size, min(ix)) + else sprintf("Representative overview: %d of %d isolates. Zoom for exact detail.", + length(ix), size), side = 3, line = 0.1, cex = 0.75) }, res = 110) output[[paste0(prefix, "_cell")]] <- shiny::renderText({ shiny::req(input[[paste0(prefix, "_click")]]) if (is_difference) shiny::req(input$comparable_scales) m <- source() - original <- if (combined) - ma_combined(m$first, m$second, input$log_scale)$original else m - preview <- ma_preview(original) + base <- if (combined || is_difference) m$first else m + ix <- visible_indices(nrow(base)) click <- input[[paste0(prefix, "_click")]] col <- as.integer(round(click$x)) - row <- as.integer(nrow(preview$matrix) + 1 - round(click$y)) + row <- as.integer(length(ix) + 1L - round(click$y)) if (is.na(col) || is.na(row) || col < 1L || - row < 1L || col > nrow(preview$matrix) || - row > nrow(preview$matrix)) return("") - i <- preview$indices[row] - j <- preview$indices[col] - sprintf("%s / %s: %s%s", rownames(original)[i], - colnames(original)[j], format(original[i, j], digits = 9), + row < 1L || col > length(ix) || row > length(ix)) return("") + i <- ix[row] + j <- ix[col] + value <- if (combined && i > j) m$second[i, j] + else if (is_difference) m$first[i, j] - m$second[i, j] + else if (combined) m$first[i, j] else m[i, j] + sprintf("%s / %s: %s%s", rownames(base)[i], + colnames(base)[j], format(value, digits = 9), if (combined) if (i < j) paste0(" (", first_label, ")") else if (i > j) paste0(" (", second_label, ")") else " (diagonal)" else "") From d70864824cb036e4b698cfa7564a6dfee8df9234 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:26:11 +0200 Subject: [PATCH 020/134] docs: document upgraded MAniR workflow, large-matrix limits and scientific assumptions --- README.md | 134 +++++++++++++++++++++++++++++------------------------- 1 file changed, 73 insertions(+), 61 deletions(-) diff --git a/README.md b/README.md index 5d13545..344b946 100644 --- a/README.md +++ b/README.md @@ -1,73 +1,85 @@ # MAniR -Originally this app was develloped for comparison of ANI and MALDI analysis. The app is now generalized to visualize the results from correlation analysis. +**Interactive comparison of pairwise similarity matrices for MALDI-TOF and genomics.** -MAniR is an R shiny app that visualizes the results from correlation analysis. The app can be used to visualize the results from the analysis of a single sample or multiple samples by way of correlation plots. Initially the app was developed to visualize the results from the ANI and MALDI analysis. These are methods to determine the relatedness of bacterial strains. The app can now be used to visualize the results from any correlation analysis. +MAniR is an R Shiny application for investigating pairwise relationships between bacterial isolates, or other samples for which symmetric pairwise matrices are available. It began as an ANI-versus-MALDI comparison application. The upgrade adds numerical matrix comparison, cluster concordance, a large-dataset raster viewer, metadata annotations, and reusable analysis functions. -## Original background information +This development branch is **MAniR 3.0 prerelease**. The historical application remains available in the repository's Git history and on `main` until the upgrade is reviewed. Do not cite an unverified performance improvement: the benchmark scripts need to be run on specified hardware. -ANI analysis is a method to determine the relatedness of bacterial strains. The method is based on the analysis of the genome of the bacteria. The genome is divided into fragments and the similarity of the fragments is determined. +## Installation -MALDI analysis is a method to determine the presence of bacteria in a sample. The method is based on the analysis of the proteins of the bacteria. The proteins are separated by mass and the mass of the proteins is determined. These can also be compared between each other to determine the relatedness of the bacteria. +Install R 4.2 or later. In the repository directory, run: -MAniR is a tool to visualize the results from both the ANI and MALDI analysis. The tool is based on the R shiny framework. -### Example of the MAniR app, single matrix output -![Matrix1](images/matrix1.png) +```r +install.packages(c("shiny", "plotly", "openxlsx", "RColorBrewer")) +# Optional accelerators (recommended for large datasets): +install.packages(c("data.table", "fastcluster")) +shiny::runApp(".") +``` -### Example of comparisson of matrices output -![Matrix1vs2](images/matrix1vs2.png) +For scripted validation, run `Rscript tests/run_tests.R`. For repeatable performance measurements, run `Rscript benchmarks/benchmark.R` and retain the generated CSV. The optional `--smoke` flag runs a short check; `--large` includes 10,000-isolate data and requires substantial RAM. -## Installation -MAniR can be installed by cloning this repository and running the following command in the root directory of the repository: +## Input formats -```r -R -e "shiny::runApp()" +- **XLSX / XLSM:** one matrix per worksheet, with sample IDs in the first row and first column. Optional second matrix and metadata sheets may be selected from the same workbook. A second workbook is also supported. +- **CSV / TSV / gzip-compressed CSV or TSV:** sample IDs in the first column, sample names in the header, and numeric pairwise measurements in the remaining cells. A second matrix and metadata may be uploaded separately. +- **RDS:** an R numeric matrix or data frame with row and column sample IDs. +- **Metadata:** a separate Excel worksheet, CSV, TSV or RDS table with sample IDs as row names (or the first column for a text file). Categorical metadata can be displayed as a color strip for large raster views and used for descriptive within-group versus between-group comparisons. +- **Precomputed sample order:** optional plain-text file listing one isolate ID per line. Any remaining isolates are appended in their original order. This avoids recomputing clustering for larger projects. + +Every matrix must be square, numeric and symmetric; row and column IDs must be identical as sets. The importer trims outer whitespace and automatically aligns rows to column order. Duplicate identifiers, infinite values, invalid matrix ranges, asymmetric entries and asymmetric missingness are reported. Missing matrix pairs may be imported for visualization, but cannot be used in the Mantel permutation test. + +Select what each matrix means: similarity (nonnegative; larger is more similar), correlation (range -1 to 1) or distance (nonnegative; smaller is more similar). "Unspecified" permits a general numeric symmetric matrix and interprets larger entries as more similar when clustering. + +For two matrices, choose whether the isolate lists must match exactly or whether to compare their shared intersection. Unmatched isolates remain available in the individual matrix tabs and are reported in the overview. + +## Visualization and large-matrix handling + +Smaller matrices (300 isolates or fewer) are displayed as interactive Plotly heatmaps with exact hover values. Number overlays are available for at most 70 isolates. For larger matrices, the default raster viewer displays up to 512 representative rows and columns rather than creating a browser annotation for every cell. This is a **representative overview**, not an aggregated matrix or a numerical substitute for the source data. Click a displayed cell to inspect the exact underlying matrix entry. + +Enable "Zoom into a region" and enter the first isolate index and the region size to inspect adjacent samples. When a region exceeds 512 isolates, it is itself reduced to a representative 512-by-512 display; choose a smaller region to inspect every cell. + +The combined views use the first matrix above the diagonal and the second below the diagonal. One view uses the sample ordering from matrix 1; the other uses the ordering from matrix 2. Because ANI percentages and MALDI similarities can have different units, **each triangle is display-scaled independently**. Hover and click inspections, pairwise exports and RDS downloads retain the original numeric values. Log display scaling requires positive finite values. + +Clustering defaults to average-linkage hierarchical clustering. Large matrices above 2,000 isolates skip clustering by default to avoid excessive computation and memory use. Supply a precomputed ordering if desired. The original numerical matrices are not altered by clustering. + +## Research features + +The pairwise comparison tab plots values from corresponding unordered isolate pairs, excluding the diagonal. It reports Pearson and Spearman correlation coefficients. If the matrices truly use comparable units and the corresponding checkbox is enabled, it also reports mean absolute and root mean squared differences, a one-to-one reference line and the isolate pairs with the largest absolute differences. Treat these statistics as descriptive; isolate-pair observations are not statistically independent. + +To bound memory use, the pairwise tool examines up to 100,000 distinct pairs by default. When the full dataset exceeds this limit, it selects a reproducible random subset (fixed seed 1), discloses the number of evaluated pairs and marks the analysis as sampled. Downloaded pairwise values follow the same selection. Change the pair limit in the sidebar for a larger subset. + +The Mantel test permutes isolate labels jointly in one matrix. It reports a two-sided permutation p-value using `(extreme + 1) / (permutations + 1)`. The current implementation requires complete matched matrices with at most 400 isolates. The Mantel statistic measures matrix association; it does not establish that two typing methods produce equivalent classifications. + +Cluster comparison creates average-linkage group assignments on shared isolates and reports the adjusted Rand index and the directional adjusted Wallace coefficients. The number of clusters is user-selectable and both matrices must have at most 2,000 shared isolates. Pairwise similarities and clustering distances are kept conceptually distinct. The metadata group summary describes within-group versus between-group pairwise values, which may be helpful for MALDI repeatability or batch studies. That descriptive group comparison is not a formal batch-effect test. + +MAniR accepts **precomputed** MALDI-TOF, ANI, dDDH and other pairwise results. Raw peak detection, spectral calibration and alignment remain the responsibility of specialized preprocessing software. Feeding differently normalized matrices into MAniR does not make the underlying measurement scales interchangeable. + +## Export and reproducibility + +The export tab provides exact input matrices as CSV, an RDS bundle containing both matrices, optional metadata and sample order, static PNGs and a text manifest of analysis settings and R session information. Pairwise comparison and cluster assignments have their own CSV exports. Large-image exports use representative raster views with up to 1,200 rows and columns, not an exact full-resolution image of a 10,000-isolate matrix. + +To use MAniR reproducibly, archive the source matrices, the metadata, the settings manifest, the installed R package versions, the generated plots and the resulting tables. Never infer a biological cutoff from the normalized heatmap colors; inspect the original numeric values and justify cutoffs from the relevant study. + +## Project structure + +```text +app.R Shiny entry point +ui.R Shiny controls, linked views and downloads +server.R Session-specific upload, analysis and lazy render logic +R/matrix_io.R Format readers, sample ID validation and alignment +R/matrix_analysis.R Pairwise summaries, clustering, permutations +R/matrix_plot.R Interactive and sampled raster rendering +tests/run_tests.R Numeric, import, statistics and rendering regressions +benchmarks/benchmark.R Repeated staged scaling measurements +docs/UPGRADE_WORKLOG.md Implementation scope and release criteria +.github/workflows/r-tests.yml Linux and Windows checks ``` -## Usage -The input should be provided in the form of an xlsx file. The file should contain the data in the following format: -_|_bacteria1_|_bacteria2_|_bacteria3_|_bacteria4_|_bacteria5_| -|---|---|---|---|---|---| -|_bacteria1_|_100_|_98.5_|_97.5_|_96.5_|_95.5_| -|_bacteria2_|_98.5_|_100_|_98.5_|_97.5_|_96.5_| -|_bacteria3_|_97.5_|_98.5_|_100_|_98.5_|_97.5_| -|_bacteria4_|_96.5_|_97.5_|_98.5_|_100_|_98.5_| -|_bacteria5_|_95.5_|_96.5_|_97.5_|_98.5_|_100_| - -*Note that the diagonal of the matrix should contain the values 100. The values in the matrix should be the ANI values between the bacteria. The values should be between 0 and 100. There should be as many rows and columns as there are bacteria in the sample. The bacteria should be named in the first row and column.* - -If you want to perform a combined visualization of the ANI and MALDI analysis, you should make sure that the bacteria are named the same in the ANI and MALDI data and all bacteria are present in both datasets. - -## Options -The following options can be set in the app: -* **Worksheet with ANI values**: The worksheet in the xlsx file that contains the ANI values. When an excel file is loaded, the worksheets in the file are listed in the dropdown menu. -* **Worksheet with MALDI values**: The worksheet in the xlsx file that contains the MALDI values. When an excel file is loaded, the worksheets in the file are listed in the dropdown menu. - --- advanced options -- -![Advanced options](images/options-new.png) -* **Decimal places**: The number of decimal places to show in the correlation plot. -* **Size of numbers in the plot**: The size of the numbers in the correlation plot. -* **Hide colorscale**: Hide the colorscale in the correlation plot. Default value is True. -* **Show dendrograms**: Show dendrograms in the correlation plot. Default value is False. -* **Show numbers**: Show numbers in the correlation plot. Default value is True. -* **Log scale**: Use a log scale for the correlation plot. Default value is False. This might improve the visualization of the correlation plot when the values are very different. - --- advanced options - Legacy mode -- - -![Legacy options](images/options.png) -* **Decimal places**: The number of decimal places to show in the correlation plot. -* **Size of numbers in the plot**: The size of the numbers in the correlation plot. -* **Scale of the plot**: The scale of the plot, this will make the plot larger or smaller. The default value of 1 means that the output plots will be 1000 by 1000 pixels. -* **Size of the ANI/MALDI labels**: The size of the ANI/MALDI labels in the combined correlation plot. -* **Color mode**: The color mode of the correlation plot. The default value is 'diverging', the other option is 'sequential'. -* **Colorscale**: Based on the color mode, different color pallets can be selected. The default value is 'RdBu' for the 'diverging' color mode and 'YlOrRd' for the 'sequential' color mode. - -### Diverging color pallets: -![Diverging color pallets](www/Diverging.png) -### Sequential color pallets: -![Sequential color pallets](www/Sequential.png) - -## Download tab -The download tab allows you to download the plots as html files. The plots can be opened in a browser later on. Saving as a png can be done by clicking the export button on the interactive plot. - -**Note:** Legacy mode is not supported in the download tab. To download the plots in legacy mode, right click on the plot and select 'Save as image'. +## Existing use + +MAniR was used to visualize genomic similarity comparisons in Versmessen et al. (2024), *Diagnostics*, 14, 1800, ["Average Nucleotide Identity and Digital DNA-DNA Hybridization Analysis Following PromethION Nanopore-Based Whole Genome Sequencing Allows for Accurate Prokaryotic Typing"](https://doi.org/10.3390/diagnostics14161800). The original tool was designed for ANI and MALDI analyses and later generalized to symmetric pairwise data. + +## License + +GPL-3.0, as in the original repository. From aebe1783fae8612be9d4b41934cedff7542071c9 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:26:56 +0200 Subject: [PATCH 021/134] feat: calculate directional adjusted Wallace cluster agreement --- R/matrix_analysis.R | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/R/matrix_analysis.R b/R/matrix_analysis.R index cfcfa80..1d9d68c 100644 --- a/R/matrix_analysis.R +++ b/R/matrix_analysis.R @@ -140,6 +140,19 @@ adjusted_rand <- function(labels_a, labels_b) { (nij - expected) / (maximum - expected) } + +adjusted_wallace <- function(labels_a, labels_b) { + if (length(labels_a) != length(labels_b) || length(labels_a) < 2L) + stop("Cluster assignments must refer to the same isolates.") + tab <- table(labels_a, labels_b) + pairs <- function(x) sum(x * (x - 1) / 2) + same_in_both <- pairs(tab) + same_in_first <- pairs(rowSums(tab)) + expected_b <- pairs(colSums(tab)) / choose(length(labels_a), 2) + if (same_in_first == 0 || expected_b >= 1) return(NA_real_) + (same_in_both / same_in_first - expected_b) / (1 - expected_b) +} + cluster_concordance <- function(a, b, kind_a = "similarity", kind_b = "similarity", k = 3L, max_n = 2000L) { @@ -152,6 +165,8 @@ cluster_concordance <- function(a, b, kind_a = "similarity", first <- stats::cutree(ca$tree, k = k) second <- stats::cutree(cb$tree, k = k) list(ari = adjusted_rand(first, second), + adjusted_wallace_1_to_2 = adjusted_wallace(first, second), + adjusted_wallace_2_to_1 = adjusted_wallace(second, first), assignments = data.frame(sample_id = rownames(a), first = unname(first[rownames(a)]), second = unname(second[rownames(a)])), From 2ec74c38861375602b749b3ffe717ffde7472573 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:26:58 +0200 Subject: [PATCH 022/134] feat: report directional Wallace concordance for MALDI and genomic clusters --- server.R | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/server.R b/server.R index 27c74ff..2d9464e 100644 --- a/server.R +++ b/server.R @@ -349,7 +349,11 @@ server <- function(input, output, session) { }) output$cluster_summary <- shiny::renderTable({ c <- concordance() - data.frame(measure = "Adjusted Rand index", value = c$ari) + data.frame(measure = c("Adjusted Rand index", + "Adjusted Wallace (matrix 1 -> matrix 2)", + "Adjusted Wallace (matrix 2 -> matrix 1)"), + value = c(c$ari, c$adjusted_wallace_1_to_2, + c$adjusted_wallace_2_to_1)) }) output$cluster_table <- shiny::renderTable({ utils::head(concordance()$assignments, 100L) From 26ac9beb084a1c4b97b04b840615e0fbc9a726b5 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:27:02 +0200 Subject: [PATCH 023/134] test: assert directional Wallace values for equivalent clusterings --- tests/run_tests.R | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/run_tests.R b/tests/run_tests.R index 2f25990..0d21b80 100644 --- a/tests/run_tests.R +++ b/tests/run_tests.R @@ -112,8 +112,12 @@ test("cluster ordering and adjusted Rand index are reproducible", { stopifnot(identical(c1$ids, c2$ids), identical(sort(c1$ids), sort(ids)), adjusted_rand(c(1, 1, 2, 2), c(2, 2, 1, 1)) == 1) + stopifnot(abs(adjusted_wallace(c(1, 1, 2, 2), + c(2, 2, 1, 1)) - 1) < 1e-12) result <- cluster_concordance(m, m, k = 2) stopifnot(abs(result$ari - 1) < 1e-12, + abs(result$adjusted_wallace_1_to_2 - 1) < 1e-12, + abs(result$adjusted_wallace_2_to_1 - 1) < 1e-12, nrow(result$assignments) == 4L) skip <- matrix_order(m, max_cluster = 2L) stopifnot(isTRUE(skip$skipped), is.null(skip$tree)) From 7bd7a73c0f2c5abbdd9b118a39d265f2a00b8b69 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:28:52 +0200 Subject: [PATCH 024/134] perf: validate numeric matrices in blocks without multiple full-matrix copies --- R/matrix_io.R | 55 ++++++++++++++++++++++++++++++++++----------------- 1 file changed, 37 insertions(+), 18 deletions(-) diff --git a/R/matrix_io.R b/R/matrix_io.R index 6aa53f7..d48c336 100644 --- a/R/matrix_io.R +++ b/R/matrix_io.R @@ -6,7 +6,8 @@ matrix_sheet_names <- function(path, format = path) { character() } -read_matrix_input <- function(path, sheet = NULL, workbook = NULL, format = path) { +read_matrix_input <- function(path, sheet = NULL, workbook = NULL, format = path, + kind = "auto") { ext <- tolower(tools::file_ext(format)) if (ext %in% c("xlsx", "xlsm")) { if (is.null(sheet) || identical(sheet, "")) stop("Select a matrix worksheet.") @@ -32,7 +33,7 @@ read_matrix_input <- function(path, sheet = NULL, workbook = NULL, format = path } else { stop("Unsupported matrix format. Use XLSX, CSV, TSV, CSV.GZ, TSV.GZ or RDS.") } - validate_matrix(x) + validate_matrix(x, kind = kind) } validate_matrix <- function(x, kind = c("auto", "similarity", "correlation", "distance"), @@ -58,27 +59,45 @@ validate_matrix <- function(x, kind = c("auto", "similarity", "correlation", "di paste(head(only_rows, 10L), collapse = ", "), paste(head(only_cols, 10L), collapse = ", "))) } - original <- as.matrix(x) - converted <- suppressWarnings(as.numeric(original)) - empty <- is.na(original) | trimws(as.character(original)) == "" - if (any(is.na(converted) & !empty)) - stop("The matrix has nonnumeric values. Check the data worksheets.") - m <- matrix(converted, nrow = nrow(x), ncol = ncol(x), - dimnames = list(row_ids, col_ids)) - m <- m[col_ids, col_ids, drop = FALSE] + if (is.matrix(x) && is.numeric(x)) { + # Fast path: avoid coercing an already numeric N*N matrix into another + # full-size matrix during import. + m <- x + dimnames(m) <- list(row_ids, col_ids) + } else { + original <- as.matrix(x) + converted <- suppressWarnings(as.numeric(original)) + empty <- is.na(original) | trimws(as.character(original)) == "" + if (any(is.na(converted) & !empty)) + stop("The matrix has nonnumeric values. Check the data worksheets.") + m <- matrix(converted, nrow = nrow(x), ncol = ncol(x), + dimnames = list(row_ids, col_ids)) + } + # Reorder only when necessary; with 10k isolates, one copy costs 800 MB. + if (!identical(row_ids, col_ids)) + m <- m[col_ids, col_ids, drop = FALSE] if (any(is.infinite(m))) stop("Infinite matrix values are not supported.") if (!allow_missing && anyNA(m)) stop("Missing matrix values are not allowed.") if (anyNA(diag(m))) stop("Every diagonal entry must be present.") - if (!identical(is.na(m), is.na(t(m)))) - stop("Missing values must occur in mirrored pairs for a symmetric matrix.") - numeric_diff <- abs(m - t(m)) - if (any(numeric_diff > symmetry_tolerance, na.rm = TRUE)) - stop("The matrix must be symmetric; mirrored cells disagree.") - if (kind == "correlation" && any(m < -1 - symmetry_tolerance | - m > 1 + symmetry_tolerance, na.rm = TRUE)) + # Verify exact symmetry in blocks to avoid allocating N*N transposed, + # missingness and difference matrices simultaneously. + n <- nrow(m) + block_size <- 256L + for (start in seq.int(1L, n, by = block_size)) { + ix <- seq.int(start, min(n, start + block_size - 1L)) + left <- m[ix, , drop = FALSE] + right <- t(m[, ix, drop = FALSE]) + if (!identical(is.na(left), is.na(right))) + stop("Missing values must occur in mirrored pairs for a symmetric matrix.") + if (any(abs(left - right) > symmetry_tolerance, na.rm = TRUE)) + stop("The matrix must be symmetric; mirrored cells disagree.") + } + if (kind == "correlation" && + (min(m, na.rm = TRUE) < -1 - symmetry_tolerance || + max(m, na.rm = TRUE) > 1 + symmetry_tolerance)) stop("Correlation values must lie between -1 and 1.") if (kind %in% c("similarity", "distance") && - any(m < -symmetry_tolerance, na.rm = TRUE)) + min(m, na.rm = TRUE) < -symmetry_tolerance) stop("Similarity and distance matrices cannot contain negative values.") attr(m, "matrix_kind") <- kind m From 47f0a9435411604f1ccfa8f1e2b6691ba0a95b56 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:28:56 +0200 Subject: [PATCH 025/134] perf: reuse aligned source matrices and validate uploaded data only once --- server.R | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/server.R b/server.R index 2d9464e..7be2136 100644 --- a/server.R +++ b/server.R @@ -41,8 +41,7 @@ server <- function(input, output, session) { wb1 <- if (is_excel(f)) openxlsx::loadWorkbook(f$datapath) else NULL a <- read_matrix_input(f$datapath, sheet = if (is_excel(f)) input$first_sheet else NULL, - workbook = wb1, format = f$name) - a <- validate_matrix(a, input$kind1) + workbook = wb1, format = f$name, kind = input$kind1) shiny::incProgress(0.20) f2 <- if (!is.null(input$second_file)) input$second_file else f has_second <- !is.null(input$second_file) || @@ -57,8 +56,7 @@ server <- function(input, output, session) { openxlsx::loadWorkbook(f2$datapath) else wb1 b <- read_matrix_input(f2$datapath, sheet = if (is_excel(f2)) input$second_sheet else NULL, - workbook = wb2, format = f2$name) - b <- validate_matrix(b, input$kind2) + workbook = wb2, format = f2$name, kind = input$kind2) # Match once for early actionable errors; avoid retaining copies. shared_ids <- intersect(colnames(a), colnames(b)) if (input$match_mode == "strict" && @@ -127,14 +125,18 @@ server <- function(input, output, session) { data <- shiny::reactive({ shiny::req(loaded()); loaded() }) has_two <- shiny::reactive(!is.null(data()$second)) + subset_if_needed <- function(m, ids) { + if (identical(colnames(m), ids) && identical(rownames(m), ids)) + m else m[ids, ids, drop = FALSE] + } ordered_first <- shiny::reactive({ d <- data() - d$first[d$order1, d$order1, drop = FALSE] + subset_if_needed(d$first, d$order1) }) ordered_second <- shiny::reactive({ d <- data() shiny::req(d$second) - d$second[d$order2, d$order2, drop = FALSE] + subset_if_needed(d$second, d$order2) }) shared <- shiny::reactive({ d <- data() @@ -145,15 +147,15 @@ server <- function(input, output, session) { d <- data() both <- shared() ids <- d$order1[d$order1 %in% both$ids] - list(first = d$first[ids, ids, drop = FALSE], - second = d$second[ids, ids, drop = FALSE]) + list(first = subset_if_needed(d$first, ids), + second = subset_if_needed(d$second, ids)) }) combined_second <- shiny::reactive({ d <- data() both <- shared() ids <- d$order2[d$order2 %in% both$ids] - list(first = d$second[ids, ids, drop = FALSE], - second = d$first[ids, ids, drop = FALSE]) + list(first = subset_if_needed(d$second, ids), + second = subset_if_needed(d$first, ids)) }) # Keep source matrices separate until a particular viewport is requested. diff_matrix <- shiny::reactive({ From b201d68d1130aabed74559a3010a413bab0d8d00 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:29:04 +0200 Subject: [PATCH 026/134] perf: reuse source matrices when matched sample ordering already agrees --- R/matrix_io.R | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/R/matrix_io.R b/R/matrix_io.R index d48c336..2302537 100644 --- a/R/matrix_io.R +++ b/R/matrix_io.R @@ -142,8 +142,12 @@ match_matrices <- function(first, second, mode = c("strict", "intersection")) { length(setdiff(ids1, ids2)), length(setdiff(ids2, ids1)))) ids <- if (mode == "strict") ids1 else intersect(ids1, ids2) if (length(ids) < 2L) stop("At least two shared sample IDs are required.") - list(first = first[ids, ids, drop = FALSE], - second = second[ids, ids, drop = FALSE], + list(first = if (identical(ids, rownames(first)) && + identical(ids, colnames(first))) first + else first[ids, ids, drop = FALSE], + second = if (identical(ids, rownames(second)) && + identical(ids, colnames(second))) second + else second[ids, ids, drop = FALSE], ids = ids, only_first = setdiff(ids1, ids2), only_second = setdiff(ids2, ids1)) From 679b940d5174bac7a402b8aee9373193ae9dbbd7 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:29:21 +0200 Subject: [PATCH 027/134] fix: center difference-map colors on zero without changing data --- R/matrix_plot.R | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/R/matrix_plot.R b/R/matrix_plot.R index 33ad946..20e563e 100644 --- a/R/matrix_plot.R +++ b/R/matrix_plot.R @@ -15,7 +15,7 @@ ma_colors <- function(palette = "RdBu", n = 256L, reverse = FALSE) { grDevices::colorRampPalette(base)(n) } -ma_scale <- function(x, log_scale = FALSE) { +ma_scale <- function(x, log_scale = FALSE, center_zero = FALSE) { original <- x valid <- is.finite(x) if (!any(valid)) stop("There are no finite values to display.") @@ -23,11 +23,17 @@ ma_scale <- function(x, log_scale = FALSE) { if (any(x[valid] <= 0)) stop("Log scaling requires strictly positive values.") x[valid] <- log(x[valid]) } - rng <- range(x[valid]) - if (diff(rng) == 0) { - x[valid] <- 0.5 + if (center_zero) { + if (log_scale) stop("Zero-centered scaling cannot use logarithms.") + radius <- max(abs(x[valid])) + x[valid] <- if (radius == 0) 0.5 else 0.5 + 0.5 * x[valid] / radius } else { - x[valid] <- (x[valid] - rng[1L]) / diff(rng) + rng <- range(x[valid]) + if (diff(rng) == 0) { + x[valid] <- 0.5 + } else { + x[valid] <- (x[valid] - rng[1L]) / diff(rng) + } } x[!valid] <- NA_real_ attr(x, "original_range") <- range(original[valid]) @@ -54,7 +60,7 @@ ma_combined <- function(first, second, log_scale = FALSE) { ma_interactive <- function(m, name = "Matrix", palette = "RdBu", show_numbers = FALSE, combined = FALSE, first_name = "Matrix 1", second_name = "Matrix 2", - log_scale = FALSE) { + log_scale = FALSE, center_zero = FALSE) { if (!requireNamespace("plotly", quietly = TRUE)) stop("Install the plotly package for interactive plots.") n <- if (combined) nrow(m$first) else nrow(m) @@ -65,7 +71,7 @@ ma_interactive <- function(m, name = "Matrix", palette = "RdBu", original <- norm$original } else { original <- m - z <- ma_scale(m, log_scale) + z <- ma_scale(m, log_scale, center_zero) } ids <- rownames(original) hover <- matrix("", nrow = n, ncol = n) @@ -115,10 +121,10 @@ ma_preview <- function(m, max_side = 512L) { ma_raster <- function(m, palette = "RdBu", title = "", max_side = 512L, log_scale = FALSE, metadata = NULL, group_column = NULL, - normalized = FALSE) { + normalized = FALSE, center_zero = FALSE) { preview <- ma_preview(m, max_side) x <- preview$matrix - z <- if (normalized) x else ma_scale(x, log_scale) + z <- if (normalized) x else ma_scale(x, log_scale, center_zero) cols <- ma_colors(palette) values <- as.integer(1 + round(z * (length(cols) - 1L))) color_matrix <- matrix(NA_character_, nrow(z), ncol(z)) From e19d4d6e135fc6f3f71cefd81304b0436bcc67d8 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:29:23 +0200 Subject: [PATCH 028/134] perf: bound combined PNG export and use zero-centered difference maps --- server.R | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/server.R b/server.R index 7be2136..ba3d08e 100644 --- a/server.R +++ b/server.R @@ -249,7 +249,8 @@ server <- function(input, output, session) { ma_interactive(m, name = name, palette = input$palette, show_numbers = input$show_numbers, combined = combined, first_name = first_label, second_name = second_label, - log_scale = input$log_scale && !is_difference) + log_scale = input$log_scale && !is_difference, + center_zero = is_difference) }) output[[paste0(prefix, "_raster")]] <- shiny::renderPlot({ if (is_difference) shiny::req(input$comparable_scales) @@ -278,7 +279,8 @@ server <- function(input, output, session) { else d$metadata ma_raster(m, palette = input$palette, title = name, metadata = meta, group_column = input$metadata_column, - normalized = normal, log_scale = input$log_scale && !is_difference) + normalized = normal, log_scale = input$log_scale && !is_difference, + center_zero = is_difference) if (length(ix) < size) graphics::mtext(if (isTRUE(input$zoom_enabled)) sprintf("Zoom region; %d of %d isolates (starting at %d).", @@ -421,10 +423,15 @@ server <- function(input, output, session) { filename = function() "MAniR_combined.png", content = function(file) { m <- combined_first() - ma_save_png(ma_combined(m$first, m$second, input$log_scale)$values, - file, palette = input$palette, - title = "Combined matrix, independently display-scaled", - normalized = TRUE) + # Export no more than 1,200 representative isolates to bound memory, + # then calculate display normalization on that exact exported subset. + ix <- ma_preview(m$first, max_side = 1200L)$indices + a <- m$first[ix, ix, drop = FALSE] + b <- m$second[ix, ix, drop = FALSE] + shown <- ma_combined(a, b, input$log_scale)$values + ma_save_png(shown, file, palette = input$palette, + title = sprintf("Combined matrix, %d of %d isolates", length(ix), + nrow(m$first)), normalized = TRUE) }) output$download_settings <- shiny::downloadHandler( filename = function() "MAniR_analysis_settings.txt", From b3b79eb9c4e6b7f883019f6204e35efab33fda0f Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:29:27 +0200 Subject: [PATCH 029/134] test: ensure negative and positive differences have symmetric display colors --- tests/run_tests.R | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/run_tests.R b/tests/run_tests.R index 0d21b80..6645064 100644 --- a/tests/run_tests.R +++ b/tests/run_tests.R @@ -104,6 +104,9 @@ test("scale handling preserves source matrices", { all(combined$values >= 0 & combined$values <= 1)) constant <- matrix(4, 2, 2) stopifnot(all(ma_scale(constant) == 0.5)) + centered <- matrix(c(-3, -1, 0, 3), nrow = 2) + stopifnot(isTRUE(all.equal(as.vector(ma_scale(centered, + center_zero = TRUE)), c(0, 1/3, 0.5, 1)))) expect_error(ma_scale(matrix(c(0, 1, 2, 3), 2), TRUE), "positive") }) test("cluster ordering and adjusted Rand index are reproducible", { From 1ca9814a4b7e97d8c9d8830aa283924e8981a9d5 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:30:11 +0200 Subject: [PATCH 030/134] fix: anchor Plotly cell annotations to axes and escape uploaded sample labels --- R/matrix_plot.R | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/R/matrix_plot.R b/R/matrix_plot.R index 20e563e..51c25b3 100644 --- a/R/matrix_plot.R +++ b/R/matrix_plot.R @@ -74,11 +74,12 @@ ma_interactive <- function(m, name = "Matrix", palette = "RdBu", z <- ma_scale(m, log_scale, center_zero) } ids <- rownames(original) + ids_safe <- htmltools::htmlEscape(ids) hover <- matrix("", nrow = n, ncol = n) for (j in seq_len(n)) { dataset <- if (combined) ifelse(seq_len(n) < j, first_name, ifelse(seq_len(n) > j, second_name, "Diagonal")) else name - hover[, j] <- paste0("Row: ", ids, "
Column: ", ids[j], + hover[, j] <- paste0("Row: ", ids_safe, "
Column: ", ids_safe[j], "
", dataset, ": ", format(original[, j], digits = 8L, trim = TRUE)) } @@ -98,7 +99,7 @@ ma_interactive <- function(m, name = "Matrix", palette = "RdBu", # Text labels only for small matrices; large labels overload the browser. for (i in seq_len(n)) { p <- plotly::add_annotations(p, x = ids, y = ids[i], - text = note[i, ], showarrow = FALSE, + text = note[i, ], xref = "x", yref = "y", showarrow = FALSE, font = list(size = if (n > 35L) 7L else 10L)) } } From e679294cc0f25e918a28ac9e7c88e5a335a9fca5 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:30:37 +0200 Subject: [PATCH 031/134] test: compare both shipped XLSX matrices and preserve historical split-matrix values --- tests/run_tests.R | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tests/run_tests.R b/tests/run_tests.R index 6645064..1e3308b 100644 --- a/tests/run_tests.R +++ b/tests/run_tests.R @@ -176,4 +176,23 @@ test("large matrix preview is bounded and retains exact sampled values", { stopifnot(file.exists(png_file), file.info(png_file)$size > 0) }) + +test("bundled XLSX example imports and preserves matrix pairing", { + file <- "www/moc_data.xlsx" + stopifnot(file.exists(file)) + sheets <- openxlsx::getSheetNames(file) + stopifnot(length(sheets) >= 2L) + wb <- openxlsx::loadWorkbook(file) + a <- read_matrix_input(file, sheet = sheets[1L], workbook = wb) + b <- read_matrix_input(file, sheet = sheets[2L], workbook = wb) + matched <- match_matrices(a, b) + mixed <- ma_combined(matched$first, matched$second) + stopifnot(nrow(a) > 1L, nrow(b) > 1L, + identical(rownames(mixed$original), matched$ids), + isTRUE(all.equal(mixed$original[upper.tri(mixed$original)], + matched$first[upper.tri(matched$first)])), + isTRUE(all.equal(mixed$original[lower.tri(mixed$original)], + matched$second[lower.tri(matched$second)]))) +}) + cat("All MAniR regression tests passed.\n") From 0390341eb6ef3f81ba48a8911378d97c191c06c9 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:31:00 +0200 Subject: [PATCH 032/134] feat: add publication-ready vector PDF/SVG export for moderate matrix sizes --- R/matrix_plot.R | 53 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/R/matrix_plot.R b/R/matrix_plot.R index 51c25b3..20185ac 100644 --- a/R/matrix_plot.R +++ b/R/matrix_plot.R @@ -178,3 +178,56 @@ ma_save_png <- function(m, file, palette = "RdBu", title = "", normalized = normalized) invisible(file) } + + +# Vector cells are useful for journal figures at modest dimensions. Rendering +# millions of individual rectangles into PDF/SVG would be excessive, so larger +# figures embed the same documented representative raster overview instead. +ma_publication_plot <- function(m, palette = "RdBu", title = "", + normalized = FALSE, vector_limit = 150L) { + n <- nrow(m) + if (n > vector_limit) { + ma_raster(m, palette = palette, title = title, max_side = 1200L, + normalized = normalized) + return(invisible(FALSE)) + } + z <- if (normalized) m else ma_scale(m) + cols <- ma_colors(palette) + scaled <- as.integer(1 + round(z * (length(cols) - 1L))) + fill <- matrix("#E5E5E5", nrow(z), ncol(z)) + good <- is.finite(z) + fill[good] <- cols[scaled[good]] + i <- rep.int(seq_len(n), times = n) + j <- rep.int(seq_len(n), each = n) + graphics::plot(NA_real_, xlim = c(0.5, n + 0.5), + ylim = c(0.5, n + 0.5), xaxs = "i", yaxs = "i", + asp = 1, axes = FALSE, xlab = "", ylab = "", main = title) + # One vector rectangle per cell, with original numeric values retained + # separately in CSV/RDS rather than embedded into rendered colors. + graphics::rect(j - 0.5, n - i + 0.5, j + 0.5, n - i + 1.5, + col = fill[cbind(i, j)], border = NA) + at <- unique(as.integer(round(seq.int(1L, n, length.out = min(20L, n))))) + graphics::axis(1, at = at, labels = colnames(m)[at], las = 2, cex.axis = 0.6) + graphics::axis(2, at = n + 1L - at, labels = rownames(m)[at], + las = 2, cex.axis = 0.6) + graphics::box() + invisible(TRUE) +} + +ma_save_pdf <- function(m, file, palette = "RdBu", title = "", + normalized = FALSE) { + grDevices::pdf(file, width = 11, height = 11, useDingbats = FALSE) + on.exit(grDevices::dev.off(), add = TRUE) + graphics::par(mar = c(10, 10, 5, 2)) + ma_publication_plot(m, palette, title, normalized) + invisible(file) +} + +ma_save_svg <- function(m, file, palette = "RdBu", title = "", + normalized = FALSE) { + grDevices::svg(file, width = 11, height = 11) + on.exit(grDevices::dev.off(), add = TRUE) + graphics::par(mar = c(10, 10, 5, 2)) + ma_publication_plot(m, palette, title, normalized) + invisible(file) +} From 26949bb29630acbfe8f2ffc659a783e5f053b114 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:31:35 +0200 Subject: [PATCH 033/134] feat: add compact interactive metadata tracks and consistent export scaling --- R/matrix_plot.R | 48 +++++++++++++++++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 11 deletions(-) diff --git a/R/matrix_plot.R b/R/matrix_plot.R index 20185ac..6dd4db3 100644 --- a/R/matrix_plot.R +++ b/R/matrix_plot.R @@ -60,7 +60,8 @@ ma_combined <- function(first, second, log_scale = FALSE) { ma_interactive <- function(m, name = "Matrix", palette = "RdBu", show_numbers = FALSE, combined = FALSE, first_name = "Matrix 1", second_name = "Matrix 2", - log_scale = FALSE, center_zero = FALSE) { + log_scale = FALSE, center_zero = FALSE, + metadata = NULL, group_column = NULL) { if (!requireNamespace("plotly", quietly = TRUE)) stop("Install the plotly package for interactive plots.") n <- if (combined) nrow(m$first) else nrow(m) @@ -83,6 +84,28 @@ ma_interactive <- function(m, name = "Matrix", palette = "RdBu", "
", dataset, ": ", format(original[, j], digits = 8L, trim = TRUE)) } + shapes <- NULL + if (!is.null(metadata) && !is.null(group_column) && + isTRUE(nzchar(group_column)) && group_column %in% names(metadata)) { + groups <- as.character(metadata[match(ids, rownames(metadata)), group_column]) + group_text <- htmltools::htmlEscape(ifelse(is.na(groups), "Missing", groups)) + for (j in seq_len(n)) + hover[, j] <- paste0(hover[, j], "
", + htmltools::htmlEscape(group_column), ": ", + group_text) + classes <- unique(groups[!is.na(groups)]) + if (length(classes) <= 30L && length(classes) > 0L) { + category_colors <- grDevices::hcl.colors(length(classes), "Set 2") + selected <- category_colors[match(groups, classes)] + selected[is.na(selected)] <- "#E5E5E5" + shapes <- lapply(seq_len(n), function(i) { + list(type = "rect", xref = "paper", yref = "y", + x0 = -0.035, x1 = -0.012, + y0 = n - i - 0.45, y1 = n - i + 0.45, + fillcolor = selected[i], line = list(width = 0)) + }) + } + } note <- NULL if (show_numbers && n <= 70L) { note <- matrix(format(round(original, 2L), trim = TRUE), @@ -107,7 +130,8 @@ ma_interactive <- function(m, name = "Matrix", palette = "RdBu", xaxis = list(title = "", side = "bottom", tickangle = -65, automargin = TRUE), yaxis = list(title = "", automargin = TRUE), - margin = list(l = 110, b = 130, r = 30, t = 55)) + shapes = shapes, + margin = list(l = 130, b = 130, r = 30, t = 55)) } # Representative-pixel preview: never use the reduced view for numerical @@ -170,12 +194,13 @@ ma_raster <- function(m, palette = "RdBu", title = "", } ma_save_png <- function(m, file, palette = "RdBu", title = "", - max_side = 1200L, normalized = FALSE) { + max_side = 1200L, normalized = FALSE, + log_scale = FALSE) { grDevices::png(file, width = 1700L, height = 1600L, res = 160L) on.exit(grDevices::dev.off(), add = TRUE) graphics::par(mar = c(9, 9, 5, 2)) ma_raster(m, palette = palette, title = title, max_side = max_side, - normalized = normalized) + normalized = normalized, log_scale = log_scale) invisible(file) } @@ -184,14 +209,15 @@ ma_save_png <- function(m, file, palette = "RdBu", title = "", # millions of individual rectangles into PDF/SVG would be excessive, so larger # figures embed the same documented representative raster overview instead. ma_publication_plot <- function(m, palette = "RdBu", title = "", - normalized = FALSE, vector_limit = 150L) { + normalized = FALSE, vector_limit = 150L, + log_scale = FALSE) { n <- nrow(m) if (n > vector_limit) { ma_raster(m, palette = palette, title = title, max_side = 1200L, - normalized = normalized) + normalized = normalized, log_scale = log_scale) return(invisible(FALSE)) } - z <- if (normalized) m else ma_scale(m) + z <- if (normalized) m else ma_scale(m, log_scale = log_scale) cols <- ma_colors(palette) scaled <- as.integer(1 + round(z * (length(cols) - 1L))) fill <- matrix("#E5E5E5", nrow(z), ncol(z)) @@ -215,19 +241,19 @@ ma_publication_plot <- function(m, palette = "RdBu", title = "", } ma_save_pdf <- function(m, file, palette = "RdBu", title = "", - normalized = FALSE) { + normalized = FALSE, log_scale = FALSE) { grDevices::pdf(file, width = 11, height = 11, useDingbats = FALSE) on.exit(grDevices::dev.off(), add = TRUE) graphics::par(mar = c(10, 10, 5, 2)) - ma_publication_plot(m, palette, title, normalized) + ma_publication_plot(m, palette, title, normalized, log_scale = log_scale) invisible(file) } ma_save_svg <- function(m, file, palette = "RdBu", title = "", - normalized = FALSE) { + normalized = FALSE, log_scale = FALSE) { grDevices::svg(file, width = 11, height = 11) on.exit(grDevices::dev.off(), add = TRUE) graphics::par(mar = c(10, 10, 5, 2)) - ma_publication_plot(m, palette, title, normalized) + ma_publication_plot(m, palette, title, normalized, log_scale = log_scale) invisible(file) } From 71f2889263ddf3b901fb6e232068a3c34ce3c044 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:31:49 +0200 Subject: [PATCH 034/134] feat: add HTML/PDF/SVG and exact difference exports with metadata-aware previews --- server.R | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/server.R b/server.R index ba3d08e..bdade0e 100644 --- a/server.R +++ b/server.R @@ -246,11 +246,15 @@ server <- function(input, output, session) { size <- if (combined || is_difference) nrow(m$first) else nrow(m) shiny::req(size <= 300L) if (is_difference) m <- m$first - m$second + d <- data() + meta <- if (is_difference || !isTRUE(nzchar(input$metadata_column))) + NULL else d$metadata ma_interactive(m, name = name, palette = input$palette, show_numbers = input$show_numbers, combined = combined, first_name = first_label, second_name = second_label, log_scale = input$log_scale && !is_difference, - center_zero = is_difference) + center_zero = is_difference, + metadata = meta, group_column = input$metadata_column) }) output[[paste0(prefix, "_raster")]] <- shiny::renderPlot({ if (is_difference) shiny::req(input$comparable_scales) @@ -418,7 +422,7 @@ server <- function(input, output, session) { filename = function() "MAniR_matrix1.png", content = function(file) ma_save_png(ordered_first(), file, palette = input$palette, - title = "Matrix 1")) + title = "Matrix 1", log_scale = input$log_scale)) output$download_combined_png <- shiny::downloadHandler( filename = function() "MAniR_combined.png", content = function(file) { @@ -433,6 +437,36 @@ server <- function(input, output, session) { title = sprintf("Combined matrix, %d of %d isolates", length(ix), nrow(m$first)), normalized = TRUE) }) + output$download_pdf <- shiny::downloadHandler( + filename = function() "MAniR_matrix1.pdf", + content = function(file) + ma_save_pdf(ordered_first(), file, palette = input$palette, + title = "Matrix 1", log_scale = input$log_scale)) + output$download_svg <- shiny::downloadHandler( + filename = function() "MAniR_matrix1.svg", + content = function(file) + ma_save_svg(ordered_first(), file, palette = input$palette, + title = "Matrix 1", log_scale = input$log_scale)) + output$download_html <- shiny::downloadHandler( + filename = function() "MAniR_interactive_preview.html", + content = function(file) { + m <- ordered_first() + ix <- ma_preview(m, max_side = 300L)$indices + widget <- ma_interactive(m[ix, ix, drop = FALSE], + name = sprintf("Matrix 1 (%d of %d isolates)", length(ix), nrow(m)), + palette = input$palette, show_numbers = input$show_numbers, + log_scale = input$log_scale) + htmlwidgets::saveWidget(widget, file = file, selfcontained = TRUE) + }) + output$download_difference <- shiny::downloadHandler( + filename = function() "MAniR_difference_matrix.csv", + content = function(file) { + shiny::req(input$comparable_scales) + m <- combined_first() + # Full difference matrices are intentionally materialized only when + # explicitly requested for export. + write_matrix_csv(m$first - m$second, file) + }) output$download_settings <- shiny::downloadHandler( filename = function() "MAniR_analysis_settings.txt", content = function(file) { From b4156314ecda5c467b4928fae705748870fbacc1 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:31:51 +0200 Subject: [PATCH 035/134] feat: expose standalone HTML, PDF, SVG and difference CSV exports --- ui.R | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ui.R b/ui.R index 3754636..c840235 100644 --- a/ui.R +++ b/ui.R @@ -112,7 +112,11 @@ ui <- shiny::fluidPage( shiny::downloadButton("download_second", "Matrix 2 CSV"), shiny::downloadButton("download_rds", "Analysis matrices (RDS)"), shiny::downloadButton("download_first_png", "Matrix 1 PNG"), + shiny::downloadButton("download_pdf", "Matrix 1 PDF"), + shiny::downloadButton("download_svg", "Matrix 1 SVG"), + shiny::downloadButton("download_html", "Interactive HTML preview"), shiny::downloadButton("download_combined_png", "Combined PNG"), + shiny::downloadButton("download_difference", "Exact difference matrix CSV"), shiny::downloadButton("download_settings", "Analysis settings (text)") ) ) From ce4e50e0b9faa96d396ea50c0981132beb8f64bf Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:31:55 +0200 Subject: [PATCH 036/134] test: validate publication PDF generation --- tests/run_tests.R | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/run_tests.R b/tests/run_tests.R index 1e3308b..96c9c8e 100644 --- a/tests/run_tests.R +++ b/tests/run_tests.R @@ -174,6 +174,9 @@ test("large matrix preview is bounded and retains exact sampled values", { png_file <- tempfile(fileext = ".png") ma_save_png(big, png_file, max_side = 128) stopifnot(file.exists(png_file), file.info(png_file)$size > 0) + pdf_file <- tempfile(fileext = ".pdf") + ma_save_pdf(big[seq_len(20), seq_len(20)], pdf_file) + stopifnot(file.exists(pdf_file), file.info(pdf_file)$size > 0) }) From b72053470cd9144c91c968dcb6bf577e4f76ed3f Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:32:44 +0200 Subject: [PATCH 037/134] fix: match historical complete-linkage clustering by default --- R/matrix_analysis.R | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/R/matrix_analysis.R b/R/matrix_analysis.R index 1d9d68c..1f70afd 100644 --- a/R/matrix_analysis.R +++ b/R/matrix_analysis.R @@ -1,7 +1,7 @@ # Reusable matrix calculations; no Shiny dependencies. matrix_order <- function(m, kind = c("auto", "similarity", "correlation", "distance"), - cluster = TRUE, max_cluster = 2000L, linkage = "average") { + cluster = TRUE, max_cluster = 2000L, linkage = "complete") { kind <- match.arg(kind) ids <- colnames(m) if (!cluster || nrow(m) > max_cluster) @@ -155,11 +155,13 @@ adjusted_wallace <- function(labels_a, labels_b) { cluster_concordance <- function(a, b, kind_a = "similarity", kind_b = "similarity", k = 3L, - max_n = 2000L) { + max_n = 2000L, linkage = "complete") { if (!identical(rownames(a), rownames(b))) stop("Align matrices first.") if (k < 2L || k >= nrow(a)) stop("Choose between 2 and n-1 clusters.") - ca <- matrix_order(a, kind = kind_a, max_cluster = max_n) - cb <- matrix_order(b, kind = kind_b, max_cluster = max_n) + ca <- matrix_order(a, kind = kind_a, max_cluster = max_n, + linkage = linkage) + cb <- matrix_order(b, kind = kind_b, max_cluster = max_n, + linkage = linkage) if (is.null(ca$tree) || is.null(cb$tree)) stop("Cluster concordance exceeds the configured clustering limit.") first <- stats::cutree(ca$tree, k = k) From cbba48b240ae6c004d5c91bfaf08a361b493a53e Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:32:46 +0200 Subject: [PATCH 038/134] feat: persist selected clustering linkage throughout analysis and exports --- server.R | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/server.R b/server.R index bdade0e..a7c24cf 100644 --- a/server.R +++ b/server.R @@ -94,7 +94,8 @@ server <- function(input, output, session) { if (!is.null(explicit)) return(c(intersect(explicit, colnames(m)), setdiff(colnames(m), explicit))) - matrix_order(m, kind, cluster = isTRUE(input$cluster))$ids + matrix_order(m, kind, cluster = isTRUE(input$cluster), + linkage = input$linkage)$ids } order1 <- order_for(a, input$kind1) shiny::incProgress(0.30) @@ -114,7 +115,8 @@ server <- function(input, output, session) { clustering_skipped = isTRUE(input$cluster) && is.null(explicit) && (nrow(a) > 2000L || (!is.null(b) && nrow(b) > 2000L)), - kind1 = input$kind1, kind2 = input$kind2) + kind1 = input$kind1, kind2 = input$kind2, + linkage = input$linkage) }, error = function(e) { shiny::showNotification(conditionMessage(e), type = "error", duration = NULL) @@ -353,7 +355,8 @@ server <- function(input, output, session) { shiny::validate(shiny::need(input$cluster_k < nrow(m$first), "Choose fewer clusters than shared isolates.")) cluster_concordance(m$first, m$second, kind_a = data()$kind1, - kind_b = data()$kind2, k = input$cluster_k) + kind_b = data()$kind2, k = input$cluster_k, + linkage = data()$linkage) }) output$cluster_summary <- shiny::renderTable({ c <- concordance() @@ -479,6 +482,7 @@ server <- function(input, output, session) { paste("Sample matching:", d$matching), paste("Cluster requested:", input$cluster), paste("Cluster limit:", 2000L), + paste("Linkage:", d$linkage), paste("Color palette:", input$palette), paste("Log display scaling:", input$log_scale), paste("Comparable units:", input$comparable_scales), From ca888f4e2faff9819d64a5ce0539a0c9f12d169f Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:32:49 +0200 Subject: [PATCH 039/134] feat: expose complete, average, single and Ward cluster linkage --- ui.R | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ui.R b/ui.R index c840235..b4719c9 100644 --- a/ui.R +++ b/ui.R @@ -45,6 +45,10 @@ ui <- shiny::fluidPage( shiny::hr(), shiny::h4("Visualization"), shiny::checkboxInput("cluster", "Cluster samples", value = TRUE), + shiny::selectInput("linkage", "Clustering linkage", + choices = c("Complete (historical default)" = "complete", + "Average" = "average", "Single" = "single", + "Ward D2" = "ward.D2"), selected = "complete"), shiny::selectInput("palette", "Palette", choices = c("RdBu", "BrBG", "PiYG", "PRGn", "PuOr", "RdYlBu", "Viridis", "YlOrRd", "Blues", "Greens", "Greys"), From a8939c8138a9d121df3dad2678ba285e68a968af Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:32:51 +0200 Subject: [PATCH 040/134] docs: explain historical clustering default and configurable linkage --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 344b946..4c8bbe2 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ Enable "Zoom into a region" and enter the first isolate index and the region siz The combined views use the first matrix above the diagonal and the second below the diagonal. One view uses the sample ordering from matrix 1; the other uses the ordering from matrix 2. Because ANI percentages and MALDI similarities can have different units, **each triangle is display-scaled independently**. Hover and click inspections, pairwise exports and RDS downloads retain the original numeric values. Log display scaling requires positive finite values. -Clustering defaults to average-linkage hierarchical clustering. Large matrices above 2,000 isolates skip clustering by default to avoid excessive computation and memory use. Supply a precomputed ordering if desired. The original numerical matrices are not altered by clustering. +Clustering defaults to complete-linkage hierarchical clustering, matching the original corrplot linkage default. Large matrices above 2,000 isolates skip clustering by default to avoid excessive computation and memory use. Supply a precomputed ordering if desired. The original numerical matrices are not altered by clustering. ## Research features From c3e9936f4895ae3a233a75d2bdb81f3874c01920 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:33:27 +0200 Subject: [PATCH 041/134] fix: preserve sample IDs with leading zeroes in delimited imports --- R/matrix_io.R | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/R/matrix_io.R b/R/matrix_io.R index 2302537..7bd1dd0 100644 --- a/R/matrix_io.R +++ b/R/matrix_io.R @@ -20,15 +20,24 @@ read_matrix_input <- function(path, sheet = NULL, workbook = NULL, format = path sep <- if (ext == "tsv" || grepl("\\.tsv\\.gz$", format, ignore.case = TRUE)) "\t" else "," if (ext != "gz" && requireNamespace("data.table", quietly = TRUE)) { x <- data.table::fread(path, sep = sep, data.table = FALSE, - check.names = FALSE, showProgress = FALSE) + check.names = FALSE, showProgress = FALSE, + colClasses = list(character = 1L)) if (ncol(x) < 2L) stop("The file needs an ID column and matrix columns.") ids <- x[[1L]] x <- x[-1L] rownames(x) <- as.character(ids) } else { + # Detect header width without parsing all of the large matrix as text. + # Explicitly read the first ID column as character to retain "0012". + header_con <- if (ext == "gz") gzfile(path, "rt") else file(path, "rt") + columns <- tryCatch( + scan(header_con, what = character(), sep = sep, quote = '"', + nlines = 1L, quiet = TRUE), + finally = close(header_con)) + classes <- c("character", rep(NA_character_, max(0L, length(columns) - 1L))) x <- utils::read.table(path, sep = sep, header = TRUE, row.names = 1L, check.names = FALSE, comment.char = "", - stringsAsFactors = FALSE) + stringsAsFactors = FALSE, colClasses = classes) } } else { stop("Unsupported matrix format. Use XLSX, CSV, TSV, CSV.GZ, TSV.GZ or RDS.") From ae492dfcbab81620d6bbe581a37213171fa40785 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:33:29 +0200 Subject: [PATCH 042/134] test: guard numeric-looking sample IDs against lossy CSV parsing --- tests/run_tests.R | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/run_tests.R b/tests/run_tests.R index 96c9c8e..1042ce8 100644 --- a/tests/run_tests.R +++ b/tests/run_tests.R @@ -198,4 +198,15 @@ test("bundled XLSX example imports and preserves matrix pairing", { matched$second[lower.tri(matched$second)]))) }) + +test("CSV import preserves leading zeroes in sample IDs", { + id <- c("001", "002", "003") + x <- matrix(c(1, .8, .5, .8, 1, .6, .5, .6, 1), + nrow = 3L, dimnames = list(id, id)) + file <- tempfile(fileext = ".csv") + write_matrix_csv(x, file) + y <- read_matrix_input(file) + stopifnot(identical(rownames(y), id), identical(colnames(y), id)) +}) + cat("All MAniR regression tests passed.\n") From d7054143cd38c0360674fae09cd2cae4974df8ec Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:33:55 +0200 Subject: [PATCH 043/134] fix: support zero-diagonal distance matrices in log1p visualization --- R/matrix_plot.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/matrix_plot.R b/R/matrix_plot.R index 6dd4db3..02977d2 100644 --- a/R/matrix_plot.R +++ b/R/matrix_plot.R @@ -20,8 +20,8 @@ ma_scale <- function(x, log_scale = FALSE, center_zero = FALSE) { valid <- is.finite(x) if (!any(valid)) stop("There are no finite values to display.") if (log_scale) { - if (any(x[valid] <= 0)) stop("Log scaling requires strictly positive values.") - x[valid] <- log(x[valid]) + if (any(x[valid] < 0)) stop("Log scaling requires nonnegative values.") + x[valid] <- log1p(x[valid]) } if (center_zero) { if (log_scale) stop("Zero-centered scaling cannot use logarithms.") From 175fd07c8d12770baec918eaeaded7d47e5477ff Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:33:57 +0200 Subject: [PATCH 044/134] test: verify zero-safe logarithmic scaling rejects negative values --- tests/run_tests.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/run_tests.R b/tests/run_tests.R index 1042ce8..e6f0e18 100644 --- a/tests/run_tests.R +++ b/tests/run_tests.R @@ -107,7 +107,8 @@ test("scale handling preserves source matrices", { centered <- matrix(c(-3, -1, 0, 3), nrow = 2) stopifnot(isTRUE(all.equal(as.vector(ma_scale(centered, center_zero = TRUE)), c(0, 1/3, 0.5, 1)))) - expect_error(ma_scale(matrix(c(0, 1, 2, 3), 2), TRUE), "positive") + stopifnot(all(is.finite(ma_scale(matrix(c(0, 1, 2, 3), 2), TRUE)))) + expect_error(ma_scale(matrix(c(-1, 0, 1, 2), 2), TRUE), "nonnegative") }) test("cluster ordering and adjusted Rand index are reproducible", { c1 <- matrix_order(m) From 60432b516988addbaef854717dff5db65b1a800f Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:34:00 +0200 Subject: [PATCH 045/134] docs: specify log1p behavior for zero-containing distance matrices --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4c8bbe2..0fb1cec 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ Smaller matrices (300 isolates or fewer) are displayed as interactive Plotly hea Enable "Zoom into a region" and enter the first isolate index and the region size to inspect adjacent samples. When a region exceeds 512 isolates, it is itself reduced to a representative 512-by-512 display; choose a smaller region to inspect every cell. -The combined views use the first matrix above the diagonal and the second below the diagonal. One view uses the sample ordering from matrix 1; the other uses the ordering from matrix 2. Because ANI percentages and MALDI similarities can have different units, **each triangle is display-scaled independently**. Hover and click inspections, pairwise exports and RDS downloads retain the original numeric values. Log display scaling requires positive finite values. +The combined views use the first matrix above the diagonal and the second below the diagonal. One view uses the sample ordering from matrix 1; the other uses the ordering from matrix 2. Because ANI percentages and MALDI similarities can have different units, **each triangle is display-scaled independently**. Hover and click inspections, pairwise exports and RDS downloads retain the original numeric values. Log display scaling uses log(1+x) on nonnegative values (including a zero diagonal); negative correlations cannot be logarithmically displayed. Clustering defaults to complete-linkage hierarchical clustering, matching the original corrplot linkage default. Large matrices above 2,000 isolates skip clustering by default to avoid excessive computation and memory use. Supply a precomputed ordering if desired. The original numerical matrices are not altered by clustering. From cb0a672ed2705d70a6d7650e0c2f72fbc6403e34 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:34:21 +0200 Subject: [PATCH 046/134] bench: add reproducible original-versus-upgrade plotting comparison --- benchmarks/compare_original.R | 85 +++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 benchmarks/compare_original.R diff --git a/benchmarks/compare_original.R b/benchmarks/compare_original.R new file mode 100644 index 0000000..e6436c3 --- /dev/null +++ b/benchmarks/compare_original.R @@ -0,0 +1,85 @@ +#!/usr/bin/env Rscript +# Compare the historical corrplot + heatmaply pipeline with the upgraded +# cluster-once + adaptive-plot pipeline. This replays representative calls, +# rather than executing the original interactive app in a browser. +# Prerequisites: install.packages(c("corrplot", "heatmaply", "plotly")) +# Usage: Rscript benchmarks/compare_original.R +# Rscript benchmarks/compare_original.R --smoke + +source("R/matrix_io.R") +source("R/matrix_analysis.R") +source("R/matrix_plot.R") +for (pkg in c("corrplot", "heatmaply", "plotly")) { + if (!requireNamespace(pkg, quietly = TRUE)) + stop("Install ", pkg, " to compare with the historical rendering pipeline.") +} +smoke <- "--smoke" %in% commandArgs(trailingOnly = TRUE) +sizes <- if (smoke) c(50L, 100L) else c(100L, 300L, 600L) +repeats <- if (smoke) 1L else 3L +results <- list() +index <- 1L +dir.create("benchmarks/results", recursive = TRUE, showWarnings = FALSE) + +record <- function(n, repeat_index, pipeline, expression) { + gc(reset = TRUE) + start <- proc.time()[["elapsed"]] + invisible(force(expression)) + elapsed <- proc.time()[["elapsed"]] - start + results[[index]] <<- data.frame( + n = n, repeat_index = repeat_index, pipeline = pipeline, + seconds = elapsed, + approx_vector_heap_mb = unname(gc()[2L, "max used"]) * 8 / 1024^2) + index <<- index + 1L +} + +for (n in sizes) { + set.seed(2026) + features <- matrix(stats::rnorm(n * 5L), ncol = 5L) + m <- exp(-as.matrix(stats::dist(features)) / 3) + ids <- sprintf("isolate_%05d", seq_len(n)) + dimnames(m) <- list(ids, ids) + diag(m) <- 1 + rm(features) + for (repeat_index in seq_len(repeats)) { + record(n, repeat_index, "original_corrplot_then_heatmaply", { + # Original MAniR built a corrplot to obtain cluster order and also + # constructed a heatmaply figure. Legacy plots are run on an offscreen + # graphics device so the script works headlessly. + pdf_file <- tempfile(fileext = ".pdf") + grDevices::pdf(pdf_file) + tryCatch({ + corrplot::corrplot.mixed(m, lower = "color", upper = "number", + is.corr = FALSE, order = "hclust", + diag = "n") + }, finally = { + grDevices::dev.off() + unlink(pdf_file) + }) + fig <- heatmaply::heatmaply(m, show_dendrogram = c(FALSE, FALSE), + cellnote = round(m, 2), hide_colorbar = TRUE) + plotly::plotly_build(fig) + }) + record(n, repeat_index, "upgraded_cluster_then_adaptive_render", { + ordering <- matrix_order(m, kind = "similarity") + ordered <- m[ordering$ids, ordering$ids, drop = FALSE] + if (n <= 300L) { + plotly::plotly_build(ma_interactive(ordered, name = "Matrix")) + } else { + png_file <- tempfile(fileext = ".png") + ma_save_png(ordered, png_file, max_side = 512L) + unlink(png_file) + } + }) + } + rm(m) + gc() +} +result <- do.call(rbind, results) +print(result, row.names = FALSE) +output <- file.path("benchmarks/results", + paste0("comparison-", format(Sys.time(), "%Y%m%d-%H%M%S"), ".csv")) +utils::write.csv(result, output, row.names = FALSE) +cat("Benchmark output:", output, "\n") +cat("The renderers have different capabilities above 300 isolates; compare\n", + "end-user latency, not pixel-for-pixel rendering speed, in that range.\n") +print(utils::sessionInfo()) From a4ee6900803abe97b9f71b3c67ff7be1777513ef Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:34:43 +0200 Subject: [PATCH 047/134] feat: make large-data upload size configurable --- app.R | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app.R b/app.R index 8fe5628..be0d4a2 100644 --- a/app.R +++ b/app.R @@ -5,6 +5,10 @@ if (length(missing)) stop("Install required packages before launching: ", paste(missing, collapse = ", "), ". See README.md for installation instructions.") +max_upload_mb <- as.numeric(Sys.getenv("MANIR_MAX_UPLOAD_MB", "1024")) +if (!is.finite(max_upload_mb) || max_upload_mb < 1) + stop("MANIR_MAX_UPLOAD_MB must be a positive number.") +options(shiny.maxRequestSize = max_upload_mb * 1024^2) source("R/matrix_io.R", local = TRUE) source("R/matrix_analysis.R", local = TRUE) source("R/matrix_plot.R", local = TRUE) From 6119b90771401b56330fe63c52315ce0e12691d6 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:34:45 +0200 Subject: [PATCH 048/134] docs: guide large dataset uploads toward CSV and RDS --- ui.R | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ui.R b/ui.R index b4719c9..88fc355 100644 --- a/ui.R +++ b/ui.R @@ -19,6 +19,9 @@ ui <- shiny::fluidPage( shiny::sidebarLayout( shiny::sidebarPanel(width = 3, shiny::h4("Input data"), + shiny::p(class = "small-help", + "For very large matrices, CSV or RDS is preferable to Excel. + Import uses RAM for the matrix and temporary validation data."), shiny::fileInput("first_file", "First matrix", accept = c(".xlsx", ".xlsm", ".csv", ".tsv", ".txt", ".gz", ".rds")), From abe374aca09fee322be7d2d4ad3f15cb0f99b8af Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:34:48 +0200 Subject: [PATCH 049/134] docs: cover configurable upload limits and new export and baseline tools --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0fb1cec..6db4f41 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ This development branch is **MAniR 3.0 prerelease**. The historical application ## Installation -Install R 4.2 or later. In the repository directory, run: +Install R 4.2 or later. The upload limit defaults to 1,024 MB and can be configured with the `MANIR_MAX_UPLOAD_MB` environment variable. Plan available RAM for at least the uploaded matrices plus working data, especially for two 10,000-isolate matrices. For those larger projects, RDS or CSV is preferable to Excel. In the repository directory, run: ```r install.packages(c("shiny", "plotly", "openxlsx", "RColorBrewer")) @@ -17,7 +17,7 @@ install.packages(c("data.table", "fastcluster")) shiny::runApp(".") ``` -For scripted validation, run `Rscript tests/run_tests.R`. For repeatable performance measurements, run `Rscript benchmarks/benchmark.R` and retain the generated CSV. The optional `--smoke` flag runs a short check; `--large` includes 10,000-isolate data and requires substantial RAM. +For scripted validation, run `Rscript tests/run_tests.R`. For repeatable performance measurements, run `Rscript benchmarks/benchmark.R` and retain the generated CSV. To compare representative original and new plotting pipelines, install the optional `corrplot` and `heatmaply` packages and run `Rscript benchmarks/compare_original.R`. The optional `--smoke` flag runs a short check; `--large` includes 10,000-isolate data and requires substantial RAM. ## Input formats @@ -57,7 +57,7 @@ MAniR accepts **precomputed** MALDI-TOF, ANI, dDDH and other pairwise results. R ## Export and reproducibility -The export tab provides exact input matrices as CSV, an RDS bundle containing both matrices, optional metadata and sample order, static PNGs and a text manifest of analysis settings and R session information. Pairwise comparison and cluster assignments have their own CSV exports. Large-image exports use representative raster views with up to 1,200 rows and columns, not an exact full-resolution image of a 10,000-isolate matrix. +The export tab provides exact input matrices as CSV, an RDS bundle containing both matrices, optional metadata and sample order, static PNG, PDF and SVG files, a standalone interactive HTML preview and a text manifest of analysis settings and R session information. Pairwise comparison and cluster assignments have their own CSV exports. PDF and SVG contain individual vector cells for matrices with at most 150 isolates and a representative raster for larger inputs. Interactive HTML previews include at most 300 isolates and require Pandoc for self-contained HTML. Large-image exports use representative raster views with up to 1,200 rows and columns, not an exact full-resolution image of a 10,000-isolate matrix. Exact difference matrices can be exported as CSV when both datasets have comparable numerical units. To use MAniR reproducibly, archive the source matrices, the metadata, the settings manifest, the installed R package versions, the generated plots and the resulting tables. Never infer a biological cutoff from the normalized heatmap colors; inspect the original numeric values and justify cutoffs from the relevant study. From 02f74d36c24c348f8220aa5bc713556f5a0323ad Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:35:12 +0200 Subject: [PATCH 050/134] perf: avoid multiple dense copies of all-numeric fread and Excel tables --- R/matrix_io.R | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/R/matrix_io.R b/R/matrix_io.R index 7bd1dd0..447b633 100644 --- a/R/matrix_io.R +++ b/R/matrix_io.R @@ -68,10 +68,11 @@ validate_matrix <- function(x, kind = c("auto", "similarity", "correlation", "di paste(head(only_rows, 10L), collapse = ", "), paste(head(only_cols, 10L), collapse = ", "))) } - if (is.matrix(x) && is.numeric(x)) { - # Fast path: avoid coercing an already numeric N*N matrix into another - # full-size matrix during import. - m <- x + if ((is.matrix(x) && is.numeric(x)) || + (is.data.frame(x) && all(vapply(x, is.numeric, logical(1L))))) { + # Fast path: common fread/openxlsx inputs contain numeric columns. + # Materialize a single numeric matrix rather than three dense copies. + m <- if (is.matrix(x)) x else as.matrix(x) dimnames(m) <- list(row_ids, col_ids) } else { original <- as.matrix(x) From 33cd5c79054189fb5eb29e6764578bc456d7342c Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:35:14 +0200 Subject: [PATCH 051/134] test: validate numeric data-frame fast path without value changes --- tests/run_tests.R | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/run_tests.R b/tests/run_tests.R index e6f0e18..c3a4994 100644 --- a/tests/run_tests.R +++ b/tests/run_tests.R @@ -29,6 +29,12 @@ test("matrix import reorders named rows to named columns", { isTRUE(all.equal(unname(imported), unname(m), check.attributes = FALSE))) }) +test("numeric data frames take the exact-value matrix import path", { + data <- as.data.frame(m, check.names = FALSE) + result <- validate_matrix(data, "similarity") + stopifnot(isTRUE(all.equal(unname(result), unname(m), + check.attributes = FALSE))) +}) test("matrix identifiers are trimmed without changing values", { dirty <- m rownames(dirty) <- paste0(" ", rownames(dirty), " ") From 83988d404de6587e498cba66abce44845b60b17d Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:35:36 +0200 Subject: [PATCH 052/134] test: add headless Shiny upload and reactive state regression --- tests/test_shiny.R | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 tests/test_shiny.R diff --git a/tests/test_shiny.R b/tests/test_shiny.R new file mode 100644 index 0000000..46cead2 --- /dev/null +++ b/tests/test_shiny.R @@ -0,0 +1,35 @@ +# Minimal server integration test. Requires Shiny and the declared runtime packages. +source("R/matrix_io.R") +source("R/matrix_analysis.R") +source("R/matrix_plot.R") +source("server.R") + +ids <- c("001", "002", "003", "004") +m <- matrix(c(1, .7, .4, .3, + .7, 1, .8, .5, + .4, .8, 1, .9, + .3, .5, .9, 1), 4, byrow = TRUE, + dimnames = list(ids, ids)) +path <- tempfile(fileext = ".csv") +write_matrix_csv(m, path) +file_info <- data.frame(name = "example.csv", + size = as.numeric(file.info(path)$size), + type = "text/csv", datapath = path, + stringsAsFactors = FALSE) + +shiny::testServer(server, { + session$setInputs( + first_file = file_info, + kind1 = "similarity", kind2 = "similarity", + cluster = FALSE, linkage = "complete", + match_mode = "strict", visualize = 1 + ) + loaded_data <- loaded() + stopifnot(!is.null(loaded_data), nrow(loaded_data$first) == 4L, + identical(colnames(loaded_data$first), ids), + is.null(loaded_data$second)) + # A palette change should affect only rendering, not the loaded matrix. + session$setInputs(palette = "Viridis") + stopifnot(identical(loaded()$first, loaded_data$first)) +}) +cat("Shiny upload and reactive smoke test passed.\n") From b686d3c5036de404c9ca14c43e7a397f40753c4e Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:35:45 +0200 Subject: [PATCH 053/134] ci: exercise uploaded CSV data and Shiny reactive state on both platforms --- .github/workflows/r-tests.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/r-tests.yml b/.github/workflows/r-tests.yml index 9891192..bd3bff1 100644 --- a/.github/workflows/r-tests.yml +++ b/.github/workflows/r-tests.yml @@ -26,6 +26,8 @@ jobs: run: Rscript tests/run_tests.R - name: Parse and load the Shiny application run: Rscript -e "stopifnot(inherits(source('app.R')$value, 'shiny.appobj'))" + - name: Shiny upload smoke test + run: Rscript tests/test_shiny.R - name: Benchmark smoke run: Rscript benchmarks/benchmark.R --smoke - name: Upload benchmark smoke results @@ -47,3 +49,5 @@ jobs: run: Rscript tests/run_tests.R - name: Parse and load application run: Rscript -e "stopifnot(inherits(source('app.R')$value, 'shiny.appobj'))" + - name: Shiny upload smoke test + run: Rscript tests/test_shiny.R From 5c3d95f4f7fedfe0f8c6f4c9f274f9c40e8f497f Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:36:22 +0200 Subject: [PATCH 054/134] docs: record implemented changes and outstanding release validation --- docs/UPGRADE_WORKLOG.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/docs/UPGRADE_WORKLOG.md b/docs/UPGRADE_WORKLOG.md index 0e5ac39..0325458 100644 --- a/docs/UPGRADE_WORKLOG.md +++ b/docs/UPGRADE_WORKLOG.md @@ -38,3 +38,38 @@ the benchmark script is infrastructure, not evidence of a speedup. - Tested failure handling for bad/missing IDs, invalid scales and missing data. - Accurate documentation of large-dataset preview sampling limits. - Measured, repeated performance comparison before a release speed claim. + + +## Implementation progress (September 28, 2026) +Completed in the upgrade branch: +- Reworked upload parsing and numeric validation, including preservation of + leading-zero sample identifiers, row/column alignment, strict/intersection + matching, missingness checks and blockwise symmetry validation. +- Split calculation and rendering into reusable R modules; replaced repeated + clustering with a single selected sample order. Historical complete linkage + is the default; alternative linkage settings are available. +- Added lazy Plotly views for up to 300 isolates and a region-zoomable, + representative raster viewer for larger datasets. Large combined plots + slice the viewport before assembling normalized matrices. +- Added metadata color tracks, pairwise agreement summaries, a two-sided + isolate-permutation Mantel test, ARI and adjusted Wallace, and descriptive + within-group/between-group comparisons. +- Added CSV/TSV/gzip/RDS imports, exact original matrix exports, PNG, + PDF/SVG and HTML preview exports, settings manifest, tests, Linux/Windows CI, + configurable upload size, and staged benchmarking scripts. +- Opened draft PR #2 to keep the original main branch intact. + +Verification still outstanding: +- No R interpreter is installed in the environment that authored these + changes, so the R test and Shiny integration suites cannot be reported + as passing. The workflow is committed but no completed GitHub Actions + job has been observed yet. +- Run the bundled XLSX regression, both CI platforms, and at least three + repeated old/new benchmark comparisons on specified hardware. +- Run large real datasets locally, record memory/time and inspect exact + values and visual ordering before release. +- Record dependency versions from the validated environment, and produce + a lockfile with renv after a successful R run. + +Do not merge or tag this development branch as a validated release until +these checks pass. The arXiv manuscript is outside this work scope. From fc761078351c6d259d5ce5f56b635ac50a63211b Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:36:35 +0200 Subject: [PATCH 055/134] chore: ignore generated local benchmark result files --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 6ce1d85..f60b9b9 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,6 @@ vignettes/*.pdf # Shinyapps.io information rsconnect/ .lintr + +# Generated benchmark measurements +benchmarks/results/ From 3410f75c3718faaf1adb28d445c3db711606bcf7 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:36:38 +0200 Subject: [PATCH 056/134] docs: avoid placeholder author contact in prerelease metadata --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 02cae0a..626abdf 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -2,7 +2,7 @@ Package: MAniR Type: Project Title: Interactive Pairwise Matrix Comparison for MALDI-TOF and Genomic Analysis Version: 3.0.0 -Authors@R: person("BiKC", role = c("aut", "cre"), email = "opensource@example.invalid") +Authors@R: person("BiKC", role = "aut") Description: Shiny application to compare similarity, correlation and distance matrices using scalable visualization, isolate-level metadata and pairwise analytical summaries. The application is run directly from app.R. From 4be46712baa89e380368335620c9f093f98828c8 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:36:49 +0200 Subject: [PATCH 057/134] chore: remove superseded experimental Plotly script --- www/custom_plotly.js | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 www/custom_plotly.js diff --git a/www/custom_plotly.js b/www/custom_plotly.js deleted file mode 100644 index 0487ba3..0000000 --- a/www/custom_plotly.js +++ /dev/null @@ -1,21 +0,0 @@ -const createPlotly = function(message) { - // message is an array where first element is the data and second is the metadata - let data = [{ - z: message[0], - type: 'heatmap', - colorscale: 'Viridis', - showscale: true, - colorbar: { - title: 'Colorbar Title' - }, - xgap: 1, - ygap: 1, - hovertemplate: 'Value: %{z}
Row: %{y}
Column: %{x}' - }]; - Plotly.newPlot('myDiv', data); -}; - -// custom message handler from shiny -Shiny.addCustomMessageHandler('first_correlation_matrix', function(message) { - createPlotly(message); -}); \ No newline at end of file From 4664347ca9cb8b4636648142ba2f294aee3d8f2e Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:37:11 +0200 Subject: [PATCH 058/134] fix: initialize click-triggered loading reliably in Shiny and integration tests --- server.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server.R b/server.R index a7c24cf..cc887ad 100644 --- a/server.R +++ b/server.R @@ -123,7 +123,7 @@ server <- function(input, output, session) { NULL }) }) - }, ignoreInit = TRUE) + }, ignoreNULL = TRUE) data <- shiny::reactive({ shiny::req(loaded()); loaded() }) has_two <- shiny::reactive(!is.null(data()$second)) From f6a4cf2241d944474469a1db90dac1b87a0ba495 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:37:34 +0200 Subject: [PATCH 059/134] build: declare HTML widget and safe-label dependencies explicitly --- DESCRIPTION | 2 ++ 1 file changed, 2 insertions(+) diff --git a/DESCRIPTION b/DESCRIPTION index 626abdf..153d24e 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -13,6 +13,8 @@ Depends: Imports: shiny, plotly, + htmltools, + htmlwidgets, openxlsx, RColorBrewer Suggests: From ad15c10877a001cced78a98e87d59194f2ec1db6 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:37:36 +0200 Subject: [PATCH 060/134] build: validate direct interactive export dependencies at startup --- app.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app.R b/app.R index be0d4a2..9a96bae 100644 --- a/app.R +++ b/app.R @@ -1,5 +1,6 @@ # MAniR Shiny entry point. Dependencies are documented in README and renv. -required <- c("shiny", "plotly", "openxlsx", "RColorBrewer") +required <- c("shiny", "plotly", "htmltools", "htmlwidgets", + "openxlsx", "RColorBrewer") missing <- setdiff(required, rownames(installed.packages())) if (length(missing)) stop("Install required packages before launching: ", From f35582b59c18b21d697dde7569b9f363a8e65a73 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:37:39 +0200 Subject: [PATCH 061/134] docs: include HTML dependencies in reproducible installation --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6db4f41..b368efd 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,8 @@ This development branch is **MAniR 3.0 prerelease**. The historical application Install R 4.2 or later. The upload limit defaults to 1,024 MB and can be configured with the `MANIR_MAX_UPLOAD_MB` environment variable. Plan available RAM for at least the uploaded matrices plus working data, especially for two 10,000-isolate matrices. For those larger projects, RDS or CSV is preferable to Excel. In the repository directory, run: ```r -install.packages(c("shiny", "plotly", "openxlsx", "RColorBrewer")) +install.packages(c("shiny", "plotly", "htmltools", "htmlwidgets", + "openxlsx", "RColorBrewer")) # Optional accelerators (recommended for large datasets): install.packages(c("data.table", "fastcluster")) shiny::runApp(".") From 98bed21486275bffe70ecea39649ed632c64da49 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:45:12 +0200 Subject: [PATCH 062/134] fix: use rep() for repeated PDF/SVG vector column indices --- R/matrix_plot.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/matrix_plot.R b/R/matrix_plot.R index 02977d2..1228170 100644 --- a/R/matrix_plot.R +++ b/R/matrix_plot.R @@ -224,7 +224,7 @@ ma_publication_plot <- function(m, palette = "RdBu", title = "", good <- is.finite(z) fill[good] <- cols[scaled[good]] i <- rep.int(seq_len(n), times = n) - j <- rep.int(seq_len(n), each = n) + j <- rep(seq_len(n), each = n) graphics::plot(NA_real_, xlim = c(0.5, n + 0.5), ylim = c(0.5, n + 0.5), xaxs = "i", yaxs = "i", asp = 1, axes = FALSE, xlab = "", ylab = "", main = title) From 3243e5fc0d79172b2bc6411899ef29990ca18a30 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:46:47 +0200 Subject: [PATCH 063/134] ci: prevent shell expansion from corrupting Shiny startup assertion --- .github/workflows/r-tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/r-tests.yml b/.github/workflows/r-tests.yml index bd3bff1..e89abc7 100644 --- a/.github/workflows/r-tests.yml +++ b/.github/workflows/r-tests.yml @@ -25,7 +25,7 @@ jobs: - name: Test numerical correctness, files and plot export run: Rscript tests/run_tests.R - name: Parse and load the Shiny application - run: Rscript -e "stopifnot(inherits(source('app.R')$value, 'shiny.appobj'))" + run: Rscript -e "stopifnot(inherits(getElement(source('app.R'), 'value'), 'shiny.appobj'))" - name: Shiny upload smoke test run: Rscript tests/test_shiny.R - name: Benchmark smoke @@ -48,6 +48,6 @@ jobs: - name: Regression tests run: Rscript tests/run_tests.R - name: Parse and load application - run: Rscript -e "stopifnot(inherits(source('app.R')$value, 'shiny.appobj'))" + run: Rscript -e "stopifnot(inherits(getElement(source('app.R'), 'value'), 'shiny.appobj'))" - name: Shiny upload smoke test run: Rscript tests/test_shiny.R From 693ab49f77746098ace8e0c483696cb007b0563a Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 14:49:31 +0200 Subject: [PATCH 064/134] fix: correct multiline if/else syntax in benchmark runner --- benchmarks/benchmark.R | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/benchmarks/benchmark.R b/benchmarks/benchmark.R index c550c03..41c9c90 100644 --- a/benchmarks/benchmark.R +++ b/benchmarks/benchmark.R @@ -13,9 +13,13 @@ source("R/matrix_plot.R") args <- commandArgs(trailingOnly = TRUE) smoke <- "--smoke" %in% args large <- "--large" %in% args -sizes <- if (smoke) c(60L, 120L) else if (large) +sizes <- if (smoke) { + c(60L, 120L) +} else if (large) { c(500L, 1000L, 2500L, 5000L, 10000L) -else c(100L, 300L, 600L, 1000L, 2500L) +} else { + c(100L, 300L, 600L, 1000L, 2500L) +} repeats <- if (smoke) 1L else 3L dir.create("benchmarks/results", recursive = TRUE, showWarnings = FALSE) results <- list() From 5ba6ea6d36b536d52962ffc551c8c65688dc2daf Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:29:20 +0200 Subject: [PATCH 065/134] feat: add synthetic teaching example (examples/ani.csv) --- examples/ani.csv | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 examples/ani.csv diff --git a/examples/ani.csv b/examples/ani.csv new file mode 100644 index 0000000..0184c0e --- /dev/null +++ b/examples/ani.csv @@ -0,0 +1,13 @@ +sample_id,ISO_01,ISO_02,ISO_03,ISO_04,ISO_05,ISO_06,ISO_07,ISO_08,ISO_09,ISO_10,ISO_11,ISO_12 +ISO_01,100,99.885,98.85,98.965,95.69,95.52,95.35,97.22,97.05,96.88,96.71,96.54 +ISO_02,99.885,100,99.655,99.77,96.88,96.71,96.54,96.37,96.2,96.03,95.86,95.69 +ISO_03,98.85,99.655,100,99.425,96.03,95.86,95.69,95.52,95.35,97.22,97.05,96.88 +ISO_04,98.965,99.77,99.425,100,97.22,97.05,96.88,96.71,96.54,96.37,96.2,96.03 +ISO_05,95.69,96.88,96.03,97.22,100,98.965,99.08,99.195,95.69,95.52,95.35,97.22 +ISO_06,95.52,96.71,95.86,97.05,98.965,100,99.885,98.85,96.88,96.71,96.54,96.37 +ISO_07,95.35,96.54,95.69,96.88,99.08,99.885,100,99.655,96.03,95.86,95.69,95.52 +ISO_08,97.22,96.37,95.52,96.71,99.195,98.85,99.655,100,97.22,97.05,96.88,96.71 +ISO_09,97.05,96.2,95.35,96.54,95.69,96.88,96.03,97.22,100,99.195,99.31,99.425 +ISO_10,96.88,96.03,97.22,96.37,95.52,96.71,95.86,97.05,99.195,100,98.965,99.08 +ISO_11,96.71,95.86,97.05,96.2,95.35,96.54,95.69,96.88,99.31,98.965,100,99.885 +ISO_12,96.54,95.69,96.88,96.03,97.22,96.37,95.52,96.71,99.425,99.08,99.885,100 From 0cb86d8ece141dcc00172b5e132e4d650ef6bcbf Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:29:23 +0200 Subject: [PATCH 066/134] feat: add synthetic teaching example (examples/maldi.csv) --- examples/maldi.csv | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 examples/maldi.csv diff --git a/examples/maldi.csv b/examples/maldi.csv new file mode 100644 index 0000000..9e6d68e --- /dev/null +++ b/examples/maldi.csv @@ -0,0 +1,13 @@ +sample_id,ISO_01,ISO_02,ISO_03,ISO_04,ISO_05,ISO_06,ISO_07,ISO_08,ISO_09,ISO_10,ISO_11,ISO_12 +ISO_01,1,0.838,0.876,0.914,0.543,0.543,0.543,0.543,0.543,0.543,0.543,0.543 +ISO_02,0.838,1,0.52,0.876,0.387,0.387,0.387,0.387,0.387,0.387,0.387,0.387 +ISO_03,0.876,0.52,1,0.838,0.66,0.66,0.66,0.66,0.66,0.66,0.66,0.66 +ISO_04,0.914,0.876,0.838,1,0.88,0.504,0.504,0.504,0.504,0.504,0.504,0.504 +ISO_05,0.543,0.387,0.66,0.88,1,0.838,0.876,0.914,0.348,0.348,0.348,0.348 +ISO_06,0.543,0.387,0.66,0.504,0.838,1,0.838,0.876,0.621,0.621,0.621,0.621 +ISO_07,0.543,0.387,0.66,0.504,0.876,0.838,1,0.838,0.465,0.465,0.465,0.465 +ISO_08,0.543,0.387,0.66,0.504,0.914,0.876,0.838,1,0.309,0.309,0.309,0.309 +ISO_09,0.543,0.387,0.66,0.504,0.348,0.621,0.465,0.309,1,0.838,0.876,0.914 +ISO_10,0.543,0.387,0.66,0.504,0.348,0.621,0.465,0.309,0.838,1,0.838,0.876 +ISO_11,0.543,0.387,0.66,0.504,0.348,0.621,0.465,0.309,0.876,0.838,1,0.838 +ISO_12,0.543,0.387,0.66,0.504,0.348,0.621,0.465,0.309,0.914,0.876,0.838,1 From 040f15c801fd5aad4cb3f1ce0c7804f6063e6843 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:29:26 +0200 Subject: [PATCH 067/134] feat: add synthetic teaching example (examples/metadata.csv) --- examples/metadata.csv | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 examples/metadata.csv diff --git a/examples/metadata.csv b/examples/metadata.csv new file mode 100644 index 0000000..d91f2a0 --- /dev/null +++ b/examples/metadata.csv @@ -0,0 +1,13 @@ +sample_id,group,source,batch +ISO_01,Group_A,urine,Batch_1 +ISO_02,Group_A,blood,Batch_2 +ISO_03,Group_A,stool,Batch_1 +ISO_04,Group_A,urine,Batch_2 +ISO_05,Group_B,blood,Batch_1 +ISO_06,Group_B,stool,Batch_2 +ISO_07,Group_B,urine,Batch_1 +ISO_08,Group_B,blood,Batch_2 +ISO_09,Group_C,stool,Batch_1 +ISO_10,Group_C,urine,Batch_2 +ISO_11,Group_C,blood,Batch_1 +ISO_12,Group_C,stool,Batch_2 From 7ee5572fc507570e643b7a664b99c9177596b3a5 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:29:29 +0200 Subject: [PATCH 068/134] feat: add synthetic teaching example (R/example_data.R) --- R/example_data.R | 55 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 R/example_data.R diff --git a/R/example_data.R b/R/example_data.R new file mode 100644 index 0000000..2be4d13 --- /dev/null +++ b/R/example_data.R @@ -0,0 +1,55 @@ +# Built-in teaching example. All values are synthetic, not measured isolates. +manir_example_files <- function(root = ".") { + c(ANI = file.path(root, "examples", "ani.csv"), + MALDI = file.path(root, "examples", "maldi.csv"), + metadata = file.path(root, "examples", "metadata.csv")) +} + +manir_load_example <- function(root = ".") { + paths <- manir_example_files(root) + missing <- paths[!file.exists(paths)] + if (length(missing)) { + stop("Built-in example files are missing: ", + paste(basename(missing), collapse = ", ")) + } + ani <- read_matrix_input(paths[["ANI"]], kind = "similarity") + maldi <- read_matrix_input(paths[["MALDI"]], kind = "similarity") + matched <- match_matrices(ani, maldi) + metadata <- read_metadata_input(paths[["metadata"]]) + if (!setequal(rownames(metadata), matched$ids)) { + stop("Built-in example metadata does not match the matrix identifiers.") + } + list(first = ani, second = maldi, + metadata = align_metadata(metadata, matched$ids)) +} + +manir_write_example_workbook <- function(destination, root = ".") { + example <- manir_load_example(root) + wb <- openxlsx::createWorkbook() + for (name in c("ANI", "MALDI")) { + m <- if (name == "ANI") example$first else example$second + openxlsx::addWorksheet(wb, name) + openxlsx::writeData(wb, name, + data.frame(sample_id = rownames(m), m, check.names = FALSE)) + openxlsx::freezePane(wb, name, firstRow = TRUE, firstCol = TRUE) + } + openxlsx::addWorksheet(wb, "metadata") + openxlsx::writeData(wb, "metadata", + data.frame(sample_id = rownames(example$metadata), + example$metadata, check.names = FALSE)) + openxlsx::freezePane(wb, "metadata", firstRow = TRUE, firstCol = TRUE) + openxlsx::addWorksheet(wb, "README") + openxlsx::writeData(wb, "README", data.frame( + Notes = c( + "MAniR built-in example. All data are SYNTHETIC and intended for demonstration only.", + "ANI: fictional percentage-like genomic similarity, diagonal = 100.", + "MALDI: fictional spectral similarity on a 0-to-1 scale, diagonal = 1.", + "The two matrices use different scales. Do not enable comparable-units metrics.", + "Metadata includes three fictional groups, specimen source and measurement batch.", + "Two pairs deliberately have discordant MALDI/ANI relationships for exploration.", + "Select ANI as matrix 1, MALDI as matrix 2, and metadata as the annotation sheet." + ), check.names = FALSE)) + openxlsx::setColWidths(wb, "README", cols = 1, widths = 100) + openxlsx::saveWorkbook(wb, destination, overwrite = TRUE) + invisible(destination) +} From e4f774b8815fe894b4e04262d49262d49f59c7bf Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:30:11 +0200 Subject: [PATCH 069/134] feat: load bundled synthetic example helpers on app startup --- app.R | 1 + 1 file changed, 1 insertion(+) diff --git a/app.R b/app.R index 9a96bae..7218bb3 100644 --- a/app.R +++ b/app.R @@ -13,6 +13,7 @@ options(shiny.maxRequestSize = max_upload_mb * 1024^2) source("R/matrix_io.R", local = TRUE) source("R/matrix_analysis.R", local = TRUE) source("R/matrix_plot.R", local = TRUE) +source("R/example_data.R", local = TRUE) source("ui.R", local = TRUE) source("server.R", local = TRUE) shiny::shinyApp(ui = ui, server = server) From f3b5f74783a906190c903c95e314a6fc8fad0865 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:30:14 +0200 Subject: [PATCH 070/134] feat: add one-click synthetic example and XLSX download to sidebar --- ui.R | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/ui.R b/ui.R index 88fc355..007222a 100644 --- a/ui.R +++ b/ui.R @@ -18,7 +18,18 @@ ui <- shiny::fluidPage( shiny::p("Explore and compare pairwise similarity, correlation or distance matrices."), shiny::sidebarLayout( shiny::sidebarPanel(width = 3, - shiny::h4("Input data"), + shiny::div(class = "metric", + shiny::h4("Try an example"), + shiny::p("Explore 12 fictional isolates, two similarity matrices and sample metadata. No upload needed."), + shiny::actionButton("load_example", "Load example dataset", + class = "btn-primary"), + shiny::tags$br(), shiny::tags$br(), + shiny::downloadButton("download_example", "Download example XLSX"), + shiny::p(class = "small-help", + "Synthetic data for demonstration, not real biological measurements.") + ), + shiny::hr(), + shiny::h4("Upload your data"), shiny::p(class = "small-help", "For very large matrices, CSV or RDS is preferable to Excel. Import uses RAM for the matrix and temporary validation data."), From a80e1305cd888cb06dabea0d250a4152ac5b64f0 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:30:17 +0200 Subject: [PATCH 071/134] feat: load example without uploading and export workbook with metadata --- server.R | 56 +++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 43 insertions(+), 13 deletions(-) diff --git a/server.R b/server.R index cc887ad..f7c1139 100644 --- a/server.R +++ b/server.R @@ -32,12 +32,25 @@ server <- function(input, output, session) { choices = c("None", sheets), selected = suggested) }) - loaded <- shiny::eventReactive(input$visualize, { - shiny::req(input$first_file) + analyze_input <- function(example = FALSE) { + if (!example) shiny::req(input$first_file) shiny::withProgress(message = "Validating matrices and computing sample order", value = 0, { tryCatch({ - f <- input$first_file + if (example) { + demo <- manir_load_example() + a <- demo$first + b <- demo$second + meta <- demo$metadata + kind1 <- "similarity" + kind2 <- "similarity" + match_mode <- "strict" + shiny::incProgress(0.40) + } else { + kind1 <- input$kind1 + kind2 <- input$kind2 + match_mode <- input$match_mode + f <- input$first_file wb1 <- if (is_excel(f)) openxlsx::loadWorkbook(f$datapath) else NULL a <- read_matrix_input(f$datapath, sheet = if (is_excel(f)) input$first_sheet else NULL, @@ -78,11 +91,12 @@ server <- function(input, output, session) { } else if (!is.null(input$metadata_file) && !is_excel(fmeta)) { meta <- read_metadata_input(fmeta$datapath, format = fmeta$name) } - if (!is.null(meta) && !all(colnames(a) %in% rownames(meta))) - shiny::showNotification("Some matrix samples have no metadata.", - type = "warning", duration = 8) + if (!is.null(meta) && !all(colnames(a) %in% rownames(meta))) + shiny::showNotification("Some matrix samples have no metadata.", + type = "warning", duration = 8) + } explicit <- NULL - if (!is.null(input$order_file)) { + if (!example && !is.null(input$order_file)) { explicit <- trimws(readLines(input$order_file$datapath, warn = FALSE)) explicit <- sub("[,\t].*$", "", explicit) explicit <- explicit[nzchar(explicit) & explicit != "sample_id"] @@ -97,13 +111,14 @@ server <- function(input, output, session) { matrix_order(m, kind, cluster = isTRUE(input$cluster), linkage = input$linkage)$ids } - order1 <- order_for(a, input$kind1) + order1 <- order_for(a, kind1) shiny::incProgress(0.30) - order2 <- if (!is.null(b)) order_for(b, input$kind2) else NULL + order2 <- if (!is.null(b)) order_for(b, kind2) else NULL shiny::incProgress(0.30) shiny::updateSelectInput(session, "metadata_column", choices = c("None" = "", if (!is.null(meta)) names(meta)), - selected = "") + selected = if (example && !is.null(meta) && "group" %in% names(meta)) + "group" else "") shiny::showNotification( sprintf("Loaded %d isolates%s.", nrow(a), if (!is.null(b)) paste0(" and ", nrow(b), " in matrix 2") @@ -111,11 +126,12 @@ server <- function(input, output, session) { type = "message", duration = 4) list(first = a, second = b, metadata = meta, order1 = order1, order2 = order2, - matching = input$match_mode, + source = if (example) "synthetic example" else "uploaded files", + matching = match_mode, clustering_skipped = isTRUE(input$cluster) && is.null(explicit) && (nrow(a) > 2000L || (!is.null(b) && nrow(b) > 2000L)), - kind1 = input$kind1, kind2 = input$kind2, + kind1 = kind1, kind2 = kind2, linkage = input$linkage) }, error = function(e) { shiny::showNotification(conditionMessage(e), type = "error", @@ -123,7 +139,18 @@ server <- function(input, output, session) { NULL }) }) - }, ignoreNULL = TRUE) + } + loaded <- shiny::reactiveVal(NULL) + shiny::observeEvent(input$visualize, { + loaded(analyze_input(example = FALSE)) + }) + shiny::observeEvent(input$load_example, { + loaded(analyze_input(example = TRUE)) + }) + output$download_example <- shiny::downloadHandler( + filename = function() "MAniR_synthetic_example.xlsx", + content = function(file) manir_write_example_workbook(file) + ) data <- shiny::reactive({ shiny::req(loaded()); loaded() }) has_two <- shiny::reactive(!is.null(data()$second)) @@ -182,6 +209,9 @@ server <- function(input, output, session) { d <- data() shiny::tagList( shiny::h3("Dataset overview"), + shiny::p(if (identical(d$source, "synthetic example")) + "Synthetic teaching dataset. These are fictional similarities, not measured biological results." + else "Uploaded dataset."), shiny::div(class = "metric", sprintf("Matrix 1: %s isolates", format(nrow(d$first), big.mark = ","))), if (!is.null(d$second)) From a268676cbee5368522cc337e3b5832097d8f2731 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:30:53 +0200 Subject: [PATCH 072/134] test: verify synthetic example matrices, metadata and downloaded XLSX roundtrip --- tests/run_tests.R | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/tests/run_tests.R b/tests/run_tests.R index c3a4994..46dd469 100644 --- a/tests/run_tests.R +++ b/tests/run_tests.R @@ -2,6 +2,7 @@ source("R/matrix_io.R") source("R/matrix_analysis.R") source("R/matrix_plot.R") +source("R/example_data.R") expect_error <- function(expr, pattern = NULL) { e <- tryCatch({force(expr); NULL}, error = function(e) conditionMessage(e)) @@ -216,4 +217,42 @@ test("CSV import preserves leading zeroes in sample IDs", { stopifnot(identical(rownames(y), id), identical(colnames(y), id)) }) + +test("built-in synthetic ANI/MALDI example is valid and includes metadata", { + demo <- manir_load_example() + stopifnot( + identical(dim(demo$first), c(12L, 12L)), + identical(dim(demo$second), c(12L, 12L)), + identical(dimnames(demo$first), dimnames(demo$second)), + all(diag(demo$first) == 100), + all(diag(demo$second) == 1), + identical(rownames(demo$metadata), rownames(demo$first)), + identical(names(demo$metadata), c("group", "source", "batch")), + length(unique(demo$metadata$group)) == 3L, + abs(demo$second["ISO_02", "ISO_03"] - 0.52) < 1e-12, + abs(demo$second["ISO_04", "ISO_05"] - 0.88) < 1e-12 + ) + values <- paired_values(demo$first, demo$second) + stopifnot(!values$sampled, values$valid_pairs == 66L) +}) + +test("downloadable XLSX example round-trips all matrices and metadata", { + demo <- manir_load_example() + path <- tempfile(fileext = ".xlsx") + manir_write_example_workbook(path) + stopifnot(file.exists(path), file.info(path)$size > 0) + stopifnot(identical(openxlsx::getSheetNames(path), + c("ANI", "MALDI", "metadata", "README"))) + first <- read_matrix_input(path, sheet = "ANI") + second <- read_matrix_input(path, sheet = "MALDI") + metadata <- read_metadata_input(path, sheet = "metadata") + stopifnot( + isTRUE(all.equal(first, demo$first, check.attributes = FALSE)), + isTRUE(all.equal(second, demo$second, check.attributes = FALSE)), + identical(metadata, demo$metadata) + ) + guide <- openxlsx::read.xlsx(path, sheet = "README") + stopifnot(grepl("SYNTHETIC", guide$Notes[1L])) +}) + cat("All MAniR regression tests passed.\n") From 4d8297c5a870e9871cdbd0b2b774191bcea6f15d Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:30:57 +0200 Subject: [PATCH 073/134] test: check one-click example loading and switching back to uploads --- tests/test_shiny.R | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/tests/test_shiny.R b/tests/test_shiny.R index 46cead2..0b275b1 100644 --- a/tests/test_shiny.R +++ b/tests/test_shiny.R @@ -2,6 +2,7 @@ source("R/matrix_io.R") source("R/matrix_analysis.R") source("R/matrix_plot.R") +source("R/example_data.R") source("server.R") ids <- c("001", "002", "003", "004") @@ -32,4 +33,29 @@ shiny::testServer(server, { session$setInputs(palette = "Viridis") stopifnot(identical(loaded()$first, loaded_data$first)) }) -cat("Shiny upload and reactive smoke test passed.\n") + +shiny::testServer(server, { + session$setInputs(kind1 = "similarity", kind2 = "similarity", + cluster = FALSE, linkage = "complete", + match_mode = "strict", load_example = 1) + demo <- loaded() + stopifnot( + !is.null(demo), + identical(demo$source, "synthetic example"), + nrow(demo$first) == 12L, nrow(demo$second) == 12L, + nrow(demo$metadata) == 12L, + identical(demo$matching, "strict") + ) + # An ordinary upload after the example must replace it without carrying + # across the example metadata or second matrix. + session$setInputs(first_file = file_info, visualize = 1) + own <- loaded() + stopifnot(identical(own$source, "uploaded files"), + nrow(own$first) == 4L, is.null(own$second), + is.null(own$metadata)) + session$setInputs(load_example = 2) + stopifnot(identical(loaded()$source, "synthetic example"), + nrow(loaded()$second) == 12L) +}) + +cat("Shiny upload and example reactive smoke tests passed.\n") From d6b06781c551141c08a15fec139c16099e68c597 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:30:59 +0200 Subject: [PATCH 074/134] docs: explain synthetic teaching data and example download --- README.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/README.md b/README.md index b368efd..874bb91 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,28 @@ shiny::runApp(".") For scripted validation, run `Rscript tests/run_tests.R`. For repeatable performance measurements, run `Rscript benchmarks/benchmark.R` and retain the generated CSV. To compare representative original and new plotting pipelines, install the optional `corrplot` and `heatmaply` packages and run `Rscript benchmarks/compare_original.R`. The optional `--smoke` flag runs a short check; `--large` includes 10,000-isolate data and requires substantial RAM. +## Built-in example + +Click **Load example dataset** in the application sidebar to explore MAniR +without uploading anything. The example contains 12 **fictional** isolates in +three groups, with two precomputed symmetric similarity matrices: + +- **ANI:** synthetic percentage-like genomic similarity (100 on the diagonal). +- **MALDI:** synthetic spectral similarity on a 0–1 scale (1 on the diagonal). +- **Metadata:** fictional group, specimen source and measurement batch. + +Two isolate pairs have intentionally discordant MALDI and ANI relationships, +making the example useful for exploring split-triangle views, clustering, +pairwise scatterplots, discrepancies and metadata tracks. The measurement +scales are different, so leave "Both matrices use comparable numerical units" +unchecked. All entries are illustrative and must not be used for biological +inference or cited as measured data. + +Click **Download example XLSX** to obtain a workbook with `ANI`, `MALDI`, +`metadata` and `README` sheets. The equivalent editable CSV files are in +`examples/`. To upload the workbook yourself, select ANI as the first sheet, +MALDI as the second and metadata as the annotation sheet. + ## Input formats - **XLSX / XLSM:** one matrix per worksheet, with sample IDs in the first row and first column. Optional second matrix and metadata sheets may be selected from the same workbook. A second workbook is also supported. @@ -71,6 +93,8 @@ server.R Session-specific upload, analysis and lazy render logic R/matrix_io.R Format readers, sample ID validation and alignment R/matrix_analysis.R Pairwise summaries, clustering, permutations R/matrix_plot.R Interactive and sampled raster rendering +R/example_data.R Example loading and XLSX download generation +examples/ Synthetic ANI, MALDI and metadata CSVs tests/run_tests.R Numeric, import, statistics and rendering regressions benchmarks/benchmark.R Repeated staged scaling measurements docs/UPGRADE_WORKLOG.md Implementation scope and release criteria From 792d42a3e1b35e646b7060284f87bf9219c5fd36 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:31:02 +0200 Subject: [PATCH 075/134] docs: record synthetic example and added validation coverage --- docs/UPGRADE_WORKLOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/UPGRADE_WORKLOG.md b/docs/UPGRADE_WORKLOG.md index 0325458..f5bd098 100644 --- a/docs/UPGRADE_WORKLOG.md +++ b/docs/UPGRADE_WORKLOG.md @@ -73,3 +73,8 @@ Verification still outstanding: Do not merge or tag this development branch as a validated release until these checks pass. The arXiv manuscript is outside this work scope. + +- Added a self-contained, clearly labeled synthetic 12-isolate example with + matching ANI- and MALDI-like matrices and metadata. The upgraded interface + offers a one-click loader and an XLSX download; numerical and Shiny tests + cover both the demo and switching back to user uploads. From 74b83cf731d731dadcba2bb849131ce5d50e5812 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:32:04 +0200 Subject: [PATCH 076/134] data: vary synthetic between-group MALDI similarities across isolate pairs --- examples/maldi.csv | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/examples/maldi.csv b/examples/maldi.csv index 9e6d68e..70c246d 100644 --- a/examples/maldi.csv +++ b/examples/maldi.csv @@ -1,13 +1,13 @@ sample_id,ISO_01,ISO_02,ISO_03,ISO_04,ISO_05,ISO_06,ISO_07,ISO_08,ISO_09,ISO_10,ISO_11,ISO_12 -ISO_01,1,0.838,0.876,0.914,0.543,0.543,0.543,0.543,0.543,0.543,0.543,0.543 -ISO_02,0.838,1,0.52,0.876,0.387,0.387,0.387,0.387,0.387,0.387,0.387,0.387 -ISO_03,0.876,0.52,1,0.838,0.66,0.66,0.66,0.66,0.66,0.66,0.66,0.66 -ISO_04,0.914,0.876,0.838,1,0.88,0.504,0.504,0.504,0.504,0.504,0.504,0.504 -ISO_05,0.543,0.387,0.66,0.88,1,0.838,0.876,0.914,0.348,0.348,0.348,0.348 -ISO_06,0.543,0.387,0.66,0.504,0.838,1,0.838,0.876,0.621,0.621,0.621,0.621 -ISO_07,0.543,0.387,0.66,0.504,0.876,0.838,1,0.838,0.465,0.465,0.465,0.465 -ISO_08,0.543,0.387,0.66,0.504,0.914,0.876,0.838,1,0.309,0.309,0.309,0.309 -ISO_09,0.543,0.387,0.66,0.504,0.348,0.621,0.465,0.309,1,0.838,0.876,0.914 -ISO_10,0.543,0.387,0.66,0.504,0.348,0.621,0.465,0.309,0.838,1,0.838,0.876 -ISO_11,0.543,0.387,0.66,0.504,0.348,0.621,0.465,0.309,0.876,0.838,1,0.838 -ISO_12,0.543,0.387,0.66,0.504,0.348,0.621,0.465,0.309,0.914,0.876,0.838,1 +ISO_01,1,0.914,0.819,0.895,0.504,0.582,0.66,0.309,0.387,0.465,0.543,0.621 +ISO_02,0.914,1,0.52,0.857,0.348,0.426,0.504,0.582,0.66,0.309,0.387,0.465 +ISO_03,0.819,0.52,1,0.819,0.621,0.27,0.348,0.426,0.504,0.582,0.66,0.309 +ISO_04,0.895,0.857,0.819,1,0.88,0.543,0.621,0.27,0.348,0.426,0.504,0.582 +ISO_05,0.504,0.348,0.621,0.88,1,0.895,0.8,0.876,0.621,0.27,0.348,0.426 +ISO_06,0.582,0.426,0.27,0.543,0.895,1,0.933,0.838,0.465,0.543,0.621,0.27 +ISO_07,0.66,0.504,0.348,0.621,0.8,0.933,1,0.8,0.309,0.387,0.465,0.543 +ISO_08,0.309,0.582,0.426,0.27,0.876,0.838,0.8,1,0.582,0.66,0.309,0.387 +ISO_09,0.387,0.66,0.504,0.348,0.621,0.465,0.309,0.582,1,0.876,0.952,0.857 +ISO_10,0.465,0.309,0.582,0.426,0.27,0.543,0.387,0.66,0.876,1,0.914,0.819 +ISO_11,0.543,0.387,0.66,0.504,0.348,0.621,0.465,0.309,0.952,0.914,1,0.952 +ISO_12,0.621,0.465,0.309,0.582,0.426,0.27,0.543,0.387,0.857,0.819,0.952,1 From 8b749196a6cf69a37cb60c71facee59f9dd041f2 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:41:23 +0200 Subject: [PATCH 077/134] feat: add scale-independent rank-gap exploration for pairwise comparisons --- R/matrix_analysis.R | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/R/matrix_analysis.R b/R/matrix_analysis.R index 1f70afd..83e8183 100644 --- a/R/matrix_analysis.R +++ b/R/matrix_analysis.R @@ -194,3 +194,25 @@ replicate_summary <- function(m, metadata, group_column, max_pairs = 100000L) { if (any(!within)) stats::median(values[!within]) else NA_real_), sampled = pp$sampled) } + +# Exploratory comparison of the order of isolate pairs when measurements have +# different units. A gap is the difference between empirical percentile ranks, +# after making smaller distances mean greater similarity. It is not a p-value +# or a biological cutoff, and it is based on the sampled pairs when sampling. +pair_rank_gaps <- function(pairs, kind1 = "similarity", + kind2 = "similarity", top = 10L) { + d <- pairs$data + if (nrow(d) < 3L) return(data.frame()) + if (!kind1 %in% c("auto", "similarity", "correlation", "distance") || + !kind2 %in% c("auto", "similarity", "correlation", "distance")) + stop("Unrecognized matrix type.") + score1 <- if (kind1 == "distance") -d$first else d$first + score2 <- if (kind2 == "distance") -d$second else d$second + n <- nrow(d) + d$rank_gap <- abs((rank(score1, ties.method = "average") - + rank(score2, ties.method = "average")) / n) + d <- d[order(d$rank_gap, decreasing = TRUE), , drop = FALSE] + rownames(d) <- NULL + utils::head(d[c("sample_1", "sample_2", "first", "second", "rank_gap")], + as.integer(top)) +} From be37a43ff3d1b7f0237a2b3c963c50ed2b6d13ac Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:41:48 +0200 Subject: [PATCH 078/134] fix: put categorical metadata strip above Plotly heatmaps and move legend outside plotting area --- R/matrix_plot.R | 60 +++++++++++++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 22 deletions(-) diff --git a/R/matrix_plot.R b/R/matrix_plot.R index 1228170..67a6b7d 100644 --- a/R/matrix_plot.R +++ b/R/matrix_plot.R @@ -55,6 +55,22 @@ ma_combined <- function(first, second, log_scale = FALSE) { second_range = attr(b, "original_range")) } +# Deterministic categorical colors so a group retains its color when a +# different matrix ordering is selected. Large category lists are omitted +# from the compact track; the full values remain in the metadata table. +ma_metadata_palette <- function(metadata, group_column, max_categories = 12L) { + if (is.null(metadata) || is.null(group_column) || + length(group_column) != 1L || is.na(group_column) || + !nzchar(group_column) || !group_column %in% names(metadata)) + return(NULL) + values <- as.character(metadata[[group_column]]) + categories <- sort(unique(values[!is.na(values) & nzchar(values)])) + if (length(categories) == 0L || length(categories) > max_categories) + return(NULL) + stats::setNames( + grDevices::hcl.colors(length(categories), "Set 2"), categories) +} + # Plotly is intentionally limited to manageable interactive views; the # large-matrix renderer does not transmit hundreds of thousands of cell labels. ma_interactive <- function(m, name = "Matrix", palette = "RdBu", @@ -85,23 +101,25 @@ ma_interactive <- function(m, name = "Matrix", palette = "RdBu", digits = 8L, trim = TRUE)) } shapes <- NULL + palette_key <- ma_metadata_palette(metadata, group_column) if (!is.null(metadata) && !is.null(group_column) && - isTRUE(nzchar(group_column)) && group_column %in% names(metadata)) { + length(group_column) == 1L && !is.na(group_column) && + nzchar(group_column) && group_column %in% names(metadata)) { groups <- as.character(metadata[match(ids, rownames(metadata)), group_column]) group_text <- htmltools::htmlEscape(ifelse(is.na(groups), "Missing", groups)) for (j in seq_len(n)) hover[, j] <- paste0(hover[, j], "
", htmltools::htmlEscape(group_column), ": ", group_text) - classes <- unique(groups[!is.na(groups)]) - if (length(classes) <= 30L && length(classes) > 0L) { - category_colors <- grDevices::hcl.colors(length(classes), "Set 2") - selected <- category_colors[match(groups, classes)] + if (!is.null(palette_key)) { + selected <- unname(palette_key[groups]) selected[is.na(selected)] <- "#E5E5E5" + # Draw the metadata strip ABOVE the heatmap rather than on its left. + # That keeps the y-axis isolate IDs unobstructed. shapes <- lapply(seq_len(n), function(i) { - list(type = "rect", xref = "paper", yref = "y", - x0 = -0.035, x1 = -0.012, - y0 = n - i - 0.45, y1 = n - i + 0.45, + list(type = "rect", xref = "x", yref = "paper", + x0 = i - 1.45, x1 = i - 0.55, + y0 = 1.015, y1 = 1.045, fillcolor = selected[i], line = list(width = 0)) }) } @@ -131,7 +149,8 @@ ma_interactive <- function(m, name = "Matrix", palette = "RdBu", automargin = TRUE), yaxis = list(title = "", automargin = TRUE), shapes = shapes, - margin = list(l = 130, b = 130, r = 30, t = 55)) + margin = list(l = 95, b = 130, r = 30, t = 95), + colorbar = list(title = "Relative display color")) } # Representative-pixel preview: never use the reduced view for numerical @@ -172,19 +191,16 @@ ma_raster <- function(m, palette = "RdBu", title = "", box() if (!is.null(metadata) && !is.null(group_column) && nzchar(group_column) && group_column %in% colnames(metadata)) { - groups <- as.character(metadata[match(rownames(x), rownames(metadata)), group_column]) - valid <- !is.na(groups) - levels <- unique(groups[valid]) - annotation_colors <- grDevices::hcl.colors(max(1L, length(levels)), "Set 2") - fill <- annotation_colors[match(groups, levels)] - if (any(valid)) { - # The left-hand color strip represents the selected metadata field. - graphics::rect(0.06, n - which(valid) + 0.5, 0.40, - n - which(valid) + 1.5, col = fill[valid], border = NA) - if (length(levels) <= 12L) { - graphics::legend("topright", legend = levels, fill = annotation_colors, - cex = 0.55, bty = "n") - } + groups <- as.character(metadata[match(rownames(x), rownames(metadata)), + group_column]) + key <- ma_metadata_palette(metadata, group_column) + if (!is.null(key)) { + fill <- unname(key[groups]) + fill[is.na(fill)] <- "#E5E5E5" + # The annotation strip sits in the narrow gap outside the heatmap. + # Its legend is displayed in a separate panel above the Shiny plot. + graphics::rect(0.06, n - seq_len(n) + 0.5, 0.40, + n - seq_len(n) + 1.5, col = fill, border = NA) } } if (preview$sampled) From f68b5ea220195ac9d9fbe865692435d2d13a4196 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:42:11 +0200 Subject: [PATCH 079/134] fix: attach relative color legend to Plotly heatmap trace --- R/matrix_plot.R | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/R/matrix_plot.R b/R/matrix_plot.R index 67a6b7d..51ffee4 100644 --- a/R/matrix_plot.R +++ b/R/matrix_plot.R @@ -134,7 +134,8 @@ ma_interactive <- function(m, name = "Matrix", palette = "RdBu", text = hover[n:1L, , drop = FALSE], type = "heatmap", colors = ma_colors(palette), zmin = 0, zmax = 1, hoverinfo = "text", - showscale = TRUE + showscale = TRUE, + colorbar = list(title = "Relative display color (0-1)") ) if (!is.null(note)) { # Text labels only for small matrices; large labels overload the browser. @@ -149,8 +150,7 @@ ma_interactive <- function(m, name = "Matrix", palette = "RdBu", automargin = TRUE), yaxis = list(title = "", automargin = TRUE), shapes = shapes, - margin = list(l = 95, b = 130, r = 30, t = 95), - colorbar = list(title = "Relative display color")) + margin = list(l = 95, b = 130, r = 30, t = 95)) } # Representative-pixel preview: never use the reduced view for numerical From dfa4dec121539cb554adee71ea2023ed5c20e1f3 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:42:55 +0200 Subject: [PATCH 080/134] docs(ui): add contextual interpretation guides for every analysis tab and measurement option --- ui.R | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 95 insertions(+), 12 deletions(-) diff --git a/ui.R b/ui.R index 007222a..bec18ef 100644 --- a/ui.R +++ b/ui.R @@ -1,4 +1,15 @@ # MAniR: matrix comparison and scalable visualization. +manir_guide <- function(lead, details = NULL) { + shiny::div(class = "reading-guide", + shiny::strong("How to read this"), + shiny::p(lead), + if (!is.null(details)) + shiny::tags$details( + shiny::tags$summary("More explanation"), + shiny::p(details) + ) + ) +} ui <- shiny::fluidPage( shiny::tags$head( shiny::tags$meta(name = "viewport", content = "width=device-width, initial-scale=1"), @@ -12,6 +23,22 @@ ui <- shiny::fluidPage( .metric { padding: 10px; margin: 6px 0; background: #f2f6f9; border-left: 3px solid #487f9b; } .tab-content { padding-top: 15px; } + .reading-guide { border-left: 3px solid #3c7494; background: #eef5fa; + padding: 12px 16px; margin: 12px 0 20px; color: #234257; + line-height: 1.45; border-radius: 4px; } + .reading-guide p { margin: 6px 0 0; } + .reading-guide details { margin-top: 8px; } + .reading-guide summary { cursor: pointer; font-weight: 600; } + .reading-guide details p { margin-top: 8px; max-width: 88ch; } + .metadata-key { display: flex; flex-wrap: wrap; align-items: center; + gap: 7px 16px; margin: 8px 0 3px; font-size: 13px; } + .metadata-key .swatch { display: inline-block; width: 15px; height: 13px; + border-radius: 2px; margin-right: 5px; + vertical-align: middle; } + .metadata-key .key-title { font-weight: 600; color: #29465c; } + .section-note { margin: 13px 0 8px; color: #3b5668; } + .results-table { margin: 12px 0 20px; } + .main-panel .btn { margin: 7px 7px 7px 0; } ")) ), shiny::titlePanel("MAniR"), @@ -51,6 +78,8 @@ ui <- shiny::fluidPage( shiny::selectInput("kind2", "Matrix 2 represents", choices = c("Similarity" = "similarity", "Correlation" = "correlation", "Distance" = "distance", "Unspecified" = "auto")), + shiny::p(class = "small-help", + "Similarity: larger values mean closer samples. Distance: smaller values mean closer samples. Correlation ranges from -1 to +1; larger values indicate a more positive relationship."), shiny::radioButtons("match_mode", "Compare samples", choices = c("Require identical IDs" = "strict", "Shared isolates only" = "intersection"), @@ -78,54 +107,108 @@ ui <- shiny::fluidPage( shiny::selectInput("metadata_column", "Categorical annotation track", choices = c("None" = "")), shiny::checkboxInput("comparable_scales", - "Both matrices use comparable numerical units", value = FALSE), + "Both matrices measure the same quantity on the same scale", + value = FALSE), + shiny::p(class = "small-help", + "Check this only for directly comparable measurements, such as ANI from two sequencing runs. Do not check it for ANI percentages versus MALDI scores, even after normalizing the heatmap colors."), shiny::helpText("For large matrices, plots use representative pixels. Numerical analyses and exports use original values unless stated otherwise."), shiny::hr(), shiny::h4("Statistical analysis"), shiny::numericInput("max_pairs", "Maximum plotted/analyzed pairs", 100000, min = 1000, max = 1000000, step = 1000), - shiny::numericInput("cluster_k", "Clusters for concordance", 3, + shiny::numericInput("cluster_k", "Number of clusters to compare (k)", 3, min = 2, max = 100), + shiny::p(class = "small-help", + "Cut both dendrograms into k groups and compare membership. Changing k can change every agreement statistic."), shiny::numericInput("permutations", "Mantel permutations", 999, min = 99, max = 9999), shiny::actionButton("run_mantel", "Run Mantel test"), shiny::p(class = "small-help", - "Mantel tests require complete matrices and at most 400 isolates.") + "The Mantel test checks association between matrices by permuting whole isolate labels, not individual cells. It requires complete matrices and at most 400 shared isolates; its p-value is not a test of typing-method equivalence.") ), shiny::mainPanel(width = 9, shiny::div(class = "main-panel", shiny::tabsetPanel(id = "results_tab", shiny::tabPanel("Overview", - shiny::uiOutput("overview"), shiny::tableOutput("agreement"), + manir_guide( + "Start with the number of shared isolates and the relationship between the two matrices. Correlations show whether pairs that are high in one measurement also tend to be high in the other; they do not establish equivalence.", + "Pearson's r summarizes a linear relationship. Spearman's rho compares ranks and can detect a monotonic relationship on different scales. The same isolate appears in several pairs, so ordinary independent-observation p-values would be inappropriate. Use the optional Mantel permutation test for matrix association."), + shiny::uiOutput("overview"), + shiny::h4("Association between matrices"), + shiny::tableOutput("agreement"), + shiny::uiOutput("mantel_note"), shiny::verbatimTextOutput("mantel_result"), + shiny::h4("Within- and between-group values"), + shiny::p(class = "small-help", + "Select a metadata category in the sidebar to describe how the first matrix differs within and between those groups. These are descriptive pairwise summaries, not an independent-sample test."), shiny::tableOutput("replicate_table")), shiny::tabPanel("Matrix 1", + manir_guide( + "Every cell compares the isolate named on its row with the isolate named on its column. The diagonal compares an isolate with itself. Larger values mean more similar samples only for similarity and positive-correlation measurements.", + "Clustering puts isolates with related measurements next to each other; it does not change the values. The color bar shows a 0–1 display scale based on the data range, not necessarily the original numerical units. Hover over a cell for its original value. Metadata colors identify categories, not measured similarity."), + shiny::uiOutput("plot1_intro"), shiny::uiOutput("plot1_legend"), shiny::uiOutput("plot1_ui"), shiny::verbatimTextOutput("plot1_cell")), shiny::tabPanel("Matrix 2", + manir_guide( + "Read this matrix in the same way as matrix 1. Its clustering order can differ, and the display colors are scaled to this matrix's own numerical range.", + "Equal colors across the separate Matrix 1 and Matrix 2 plots do not imply equal biological measurements. Hover over any cell for the exact original value. Choose the same metadata track to see whether visual clusters correspond to the same sample categories."), + shiny::uiOutput("plot2_intro"), shiny::uiOutput("plot2_legend"), shiny::uiOutput("plot2_ui"), shiny::verbatimTextOutput("plot2_cell")), shiny::tabPanel("Combined (order 1)", - shiny::uiOutput("combined1_ui"), - shiny::verbatimTextOutput("combined1_cell")), + manir_guide( + "This split heatmap places matrix 1 above the diagonal and matrix 2 below it. Both triangles use the ordering calculated from matrix 1, so the same pair can be inspected in both methods.", + "Each triangle is normalized independently for display. Comparing the position of clusters is meaningful; directly comparing two color shades or subtracting their display values is not. The diagonal is displayed with a neutral midpoint color because it separates the two methods, not because its original measurements equal 0.5."), + shiny::uiOutput("combined1_intro"), shiny::uiOutput("combined1_legend"), + shiny::uiOutput("combined1_ui"), shiny::verbatimTextOutput("combined1_cell")), shiny::tabPanel("Combined (order 2)", - shiny::uiOutput("combined2_ui"), - shiny::verbatimTextOutput("combined2_cell")), + manir_guide( + "The same split comparison, now ordered using matrix 2. The upper triangle is matrix 2 and the lower triangle is matrix 1.", + "Switch between both combined tabs to see how each method's ordering groups isolates. Triangle colors remain independently scaled and the diagonal is a visual separator. Inspect original values in the cell hover rather than using color as a shared measurement."), + shiny::uiOutput("combined2_intro"), shiny::uiOutput("combined2_legend"), + shiny::uiOutput("combined2_ui"), shiny::verbatimTextOutput("combined2_cell")), shiny::tabPanel("Difference", - shiny::uiOutput("difference_ui"), - shiny::p("Only available when both matrices use comparable numerical units."), + manir_guide( + "This tab calculates matrix 1 minus matrix 2 for each shared isolate pair. Zero is the midpoint of the diverging color scale; opposite sides represent opposite signs.", + "A difference is interpretable only when both matrices measure the same quantity in the same units and have compatible preprocessing. Two different measurement types, such as ANI percentages and MALDI spectral scores, should be examined with rank comparisons instead."), + shiny::uiOutput("difference_explainer"), shiny::uiOutput("difference_ui"), shiny::verbatimTextOutput("difference_cell")), shiny::tabPanel("Pairwise comparison", + manir_guide( + "Each dot is one distinct, unordered isolate pair. Its X position is the pair's value in matrix 1 and its Y position is the value for the same pair in matrix 2. Neither the diagonal nor mirrored duplicates are counted.", + "An upward pattern suggests positive association, while points far from the main pattern merit closer inspection. Different units are allowed here: compare ranks or correlations, not the raw distance from a one-to-one line. Pairwise observations share isolates, so they are not statistically independent."), + shiny::uiOutput("pairwise_intro"), shiny::plotOutput("scatter", height = "520px"), + shiny::h4("Pairs with the largest rank differences"), + shiny::p(class = "small-help", + "These are exploratory discrepancies in the relative ordering of pairs, not statistically significant outliers. A rank gap near 0 means the pair has a similar position among all evaluated pairs in both matrices. Orange rings mark up to five of these pairs in the scatterplot."), + shiny::tableOutput("rank_gaps"), + shiny::uiOutput("absolute_discrepancies_intro"), shiny::tableOutput("discrepancies"), shiny::downloadButton("download_pairs", "Download pairwise values (CSV)")), shiny::tabPanel("Cluster comparison", + manir_guide( + "Each matrix is independently clustered and cut into the same chosen number of groups (k). The statistics compare which isolate pairs are grouped together, regardless of the arbitrary cluster numbers.", + "Adjusted Rand index (ARI) equals 1 for identical partitions and is near 0 for chance-level agreement under its adjustment model. Adjusted Wallace is directional: matrix 1 to matrix 2 asks whether pairs grouped together in the first remain together in the second, adjusted for chance. Reverse the direction for the other value. These numbers describe agreement, not biological accuracy or a probability that either method is correct."), + shiny::uiOutput("cluster_intro"), shiny::tableOutput("cluster_summary"), + shiny::h4("How the clusters overlap"), + shiny::tableOutput("cluster_overlap"), + shiny::h4("Cluster membership by isolate"), + shiny::p(class = "small-help", + "Cluster numbers are arbitrary. Cluster 1 from one matrix is not necessarily the same group as cluster 1 from the other."), shiny::tableOutput("cluster_table"), shiny::downloadButton("download_clusters", "Download cluster assignments")), shiny::tabPanel("Metadata", + manir_guide( + "Metadata describe each isolate, such as its group, specimen source or experimental batch. Select a categorical field in the sidebar to show a colored annotation track next to the heatmaps.", + "Metadata categories are not automatically cluster labels or validation truth. A batch-associated cluster may reflect an experimental effect and needs separate investigation. Numeric metadata should not be interpreted as categories unless intentionally converted."), shiny::tableOutput("metadata_preview"), shiny::uiOutput("metadata_note")), shiny::tabPanel("Export", - shiny::p("Original numeric matrices are exported without display normalization. Large matrix images are representative views."), + manir_guide( + "CSV and RDS preserve the original matrix values. PNG, PDF, SVG and interactive HTML preserve the displayed ordering and palette, but figure colors may be normalized or raster-sampled.", + "Plots from large datasets are representative previews, not complete value tables. Export the CSV or RDS alongside your figures and save the settings manifest to record clustering, color mapping, pair sampling and your R environment."), + shiny::uiOutput("difference_download_notice"), shiny::downloadButton("download_first", "Matrix 1 CSV"), shiny::downloadButton("download_second", "Matrix 2 CSV"), shiny::downloadButton("download_rds", "Analysis matrices (RDS)"), @@ -134,7 +217,7 @@ ui <- shiny::fluidPage( shiny::downloadButton("download_svg", "Matrix 1 SVG"), shiny::downloadButton("download_html", "Interactive HTML preview"), shiny::downloadButton("download_combined_png", "Combined PNG"), - shiny::downloadButton("download_difference", "Exact difference matrix CSV"), + shiny::uiOutput("download_difference_ui"), shiny::downloadButton("download_settings", "Analysis settings (text)") ) ) From 34c41cabd2692f241c2e8dcf094a24c0a433f66f Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:44:03 +0200 Subject: [PATCH 081/134] feat: add dynamic plot explanations, rank-gap exploration, cluster overlap and safe difference guidance --- server.R | 192 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 171 insertions(+), 21 deletions(-) diff --git a/server.R b/server.R index f7c1139..1a04c51 100644 --- a/server.R +++ b/server.R @@ -145,6 +145,7 @@ server <- function(input, output, session) { loaded(analyze_input(example = FALSE)) }) shiny::observeEvent(input$load_example, { + shiny::updateCheckboxInput(session, "comparable_scales", value = FALSE) loaded(analyze_input(example = TRUE)) }) output$download_example <- shiny::downloadHandler( @@ -186,11 +187,23 @@ server <- function(input, output, session) { list(first = subset_if_needed(d$second, ids), second = subset_if_needed(d$first, ids)) }) - # Keep source matrices separate until a particular viewport is requested. + # A checkbox cannot make two fundamentally different measurement types + # subtractable. The bundled ANI/MALDI example is always protected. + can_difference <- shiny::reactive({ + d <- data() + !is.null(d$second) && isTRUE(input$comparable_scales) && + !identical(d$source, "synthetic example") + }) diff_matrix <- shiny::reactive({ - shiny::req(input$comparable_scales) + shiny::req(can_difference()) combined_first() }) + format_range <- function(m) { + values <- m[is.finite(m)] + if (!length(values)) return("no finite values") + sprintf("%s to %s", format(signif(min(values), 5L), trim = TRUE), + format(signif(max(values), 5L), trim = TRUE)) + } visible_indices <- function(n) { ix <- if (isTRUE(input$zoom_enabled) && n > 300L) { start <- max(1L, min(n, as.integer(input$zoom_start))) @@ -228,8 +241,10 @@ server <- function(input, output, session) { format(pair_data()$evaluated_pairs, big.mark = ","), format(pair_data()$total_pairs, big.mark = ","), pair_data()$seed)), - if (!is.null(d$second) && !input$comparable_scales) - shiny::p("The matrices may use different units. Pearson and Spearman correlations are reported; raw differences and error metrics are hidden.") + if (!is.null(d$second) && !can_difference()) + shiny::p(if (identical(d$source, "synthetic example")) + "ANI percentages and MALDI spectral similarities have different units. Look at Pearson/Spearman association and rank gaps; direct differences are disabled for this example." + else "Direct differences are hidden until you confirm that the two matrices measure the same quantity in the same units.") ) }) output$agreement <- shiny::renderTable({ @@ -238,14 +253,18 @@ server <- function(input, output, session) { stats <- matrix_agreement(pp) data.frame( Measure = c("Valid isolate pairs", "Pearson r", "Spearman rho", - if (input$comparable_scales) c("Mean absolute difference", + if (can_difference()) c("Mean absolute difference", "Root mean squared difference")), Value = c(stats$n, signif(stats$pearson, 5), signif(stats$spearman, 5), - if (input$comparable_scales) + if (can_difference()) c(signif(stats$mae, 5), signif(stats$rmse, 5))) ) }) + output$mantel_note <- shiny::renderUI({ + shiny::p(class = "small-help", + "Optional Mantel test: click Run Mantel test in the sidebar. It permutes whole isolate labels to test matrix association. It does not demonstrate equal typing performance, and it cannot run on incomplete matrices or above 400 shared isolates.") + }) output$replicate_table <- shiny::renderTable({ d <- data() shiny::req(d$metadata, nzchar(input$metadata_column)) @@ -258,8 +277,47 @@ server <- function(input, output, session) { make_view <- function(prefix, source, name, combined = FALSE, first_label = "Matrix 1", second_label = "Matrix 2", is_difference = FALSE) { + if (!is_difference) { + output[[paste0(prefix, "_intro")]] <- shiny::renderUI({ + m <- source() + d <- data() + if (combined) { + shiny::div(class = "section-note", + shiny::strong(sprintf("Upper triangle: %s (original range %s). ", + first_label, format_range(m$first))), + shiny::strong(sprintf("Lower triangle: %s (original range %s).", + second_label, format_range(m$second))), + shiny::p(class = "small-help", + "The common 0–1 color bar refers to separately normalized display colors, not a common measurement scale. A neutral diagonal separates the methods.") + ) + } else { + kind <- if (prefix == "plot1") d$kind1 else d$kind2 + shiny::p(class = "section-note", + sprintf("%s contains %d isolates. Original data range: %s. Input type: %s. Colors are rescaled for display; hover to see actual values.", + name, nrow(m), format_range(m), kind)) + } + }) + output[[paste0(prefix, "_legend")]] <- shiny::renderUI({ + d <- data() + field <- input$metadata_column + key <- ma_metadata_palette(d$metadata, field) + if (is.null(key)) return(NULL) + shiny::div(class = "metadata-key", + shiny::span(class = "key-title", + sprintf("%s annotation:", field)), + lapply(names(key), function(group) + shiny::span( + shiny::span(class = "swatch", + style = paste0("background-color:", unname(key[[group]]))), + group + )), + shiny::span(class = "small-help", + "(color track above the heatmap; not a similarity scale)") + ) + }) + } output[[paste0(prefix, "_ui")]] <- shiny::renderUI({ - if (is_difference) shiny::req(input$comparable_scales) + if (is_difference) shiny::req(can_difference()) m <- source() size <- if (combined || is_difference) nrow(m$first) else nrow(m) if (size <= 300L) @@ -273,7 +331,7 @@ server <- function(input, output, session) { ) }) output[[paste0(prefix, "_interactive")]] <- plotly::renderPlotly({ - if (is_difference) shiny::req(input$comparable_scales) + if (is_difference) shiny::req(can_difference()) m <- source() size <- if (combined || is_difference) nrow(m$first) else nrow(m) shiny::req(size <= 300L) @@ -289,7 +347,7 @@ server <- function(input, output, session) { metadata = meta, group_column = input$metadata_column) }) output[[paste0(prefix, "_raster")]] <- shiny::renderPlot({ - if (is_difference) shiny::req(input$comparable_scales) + if (is_difference) shiny::req(can_difference()) m <- source() size <- if (combined || is_difference) nrow(m$first) else nrow(m) shiny::req(size > 300L) @@ -326,7 +384,7 @@ server <- function(input, output, session) { }, res = 110) output[[paste0(prefix, "_cell")]] <- shiny::renderText({ shiny::req(input[[paste0(prefix, "_click")]]) - if (is_difference) shiny::req(input$comparable_scales) + if (is_difference) shiny::req(can_difference()) m <- source() base <- if (combined || is_difference) m$first else m ix <- visible_indices(nrow(base)) @@ -356,22 +414,69 @@ server <- function(input, output, session) { make_view("difference", diff_matrix, "Matrix 1 minus matrix 2", is_difference = TRUE) + output$pairwise_intro <- shiny::renderUI({ + shiny::req(has_two()) + d <- data() + p <- pair_data() + axis1 <- if (identical(d$source, "synthetic example")) + "fictional ANI-like percentage" else paste("matrix 1", d$kind1) + axis2 <- if (identical(d$source, "synthetic example")) + "fictional MALDI-like similarity (0–1)" else paste("matrix 2", d$kind2) + shiny::p(class = "section-note", + sprintf("%s distinct pairs with a value in both matrices, of %s possible pairs. X = %s; Y = %s.%s", + format(p$valid_pairs, big.mark = ","), + format(p$total_pairs, big.mark = ","), + axis1, axis2, + if (p$sampled) + sprintf(" Evaluated a reproducible sample of %s pairs (seed %d).", + format(p$evaluated_pairs, big.mark = ","), p$seed) + else " All pairs are included.")) + }) output$scatter <- shiny::renderPlot({ shiny::req(has_two()) p <- pair_data() d <- p$data shiny::validate(shiny::need(nrow(d) >= 2L, "At least two nonmissing sample pairs are needed.")) - graphics::plot(d$first, d$second, pch = 16L, - col = grDevices::adjustcolor("#305f86", alpha.f = 0.27), - cex = 0.5, xlab = "Matrix 1", ylab = "Matrix 2", + current <- data() + first_label <- if (identical(current$source, "synthetic example")) + "Illustrative ANI (%)" else paste("Matrix 1 (", current$kind1, ")", sep = "") + second_label <- if (identical(current$source, "synthetic example")) + "Illustrative MALDI similarity (0–1)" else + paste("Matrix 2 (", current$kind2, ")", sep = "") + graphics::plot(d$first, d$second, pch = 19L, + col = grDevices::adjustcolor("#305f86", alpha.f = 0.58), + cex = 0.9, xlab = first_label, ylab = second_label, main = sprintf("Distinct isolate pairs (n = %s%s)", - format(nrow(d), big.mark = ","), - if (p$sampled) ", sampled" else "")) - if (input$comparable_scales) graphics::abline(0, 1, lty = 2) + format(nrow(d), big.mark = ","), + if (p$sampled) ", sampled" else "")) + if (can_difference()) graphics::abline(0, 1, lty = 2, col = "#555555") + if (nrow(d) >= 3L) { + gap <- pair_rank_gaps(p, current$kind1, current$kind2, top = 5L) + key <- paste(d$sample_1, d$sample_2, sep = "|") + highlighted <- match(paste(gap$sample_1, gap$sample_2, sep = "|"), key) + graphics::points(d$first[highlighted], d$second[highlighted], + pch = 1L, cex = 1.65, lwd = 1.5, col = "#c45a35") + } + }) + output$rank_gaps <- shiny::renderTable({ + shiny::req(has_two()) + current <- data() + gap <- pair_rank_gaps(pair_data(), current$kind1, current$kind2, top = 10L) + if (!nrow(gap)) return(NULL) + names(gap) <- c("Isolate 1", "Isolate 2", "Matrix 1", "Matrix 2", "Rank gap") + gap + }, digits = 4, rownames = FALSE) + output$absolute_discrepancies_intro <- shiny::renderUI({ + if (!can_difference()) return(NULL) + shiny::tagList( + shiny::h4("Largest absolute differences"), + shiny::p(class = "small-help", + "These raw differences are available only because the two matrices have been marked as directly comparable. Sort by their magnitude for descriptive inspection, not a significance test.") + ) }) output$discrepancies <- shiny::renderTable({ - shiny::req(has_two(), input$comparable_scales) + shiny::req(has_two(), can_difference()) d <- pair_data()$data d <- d[order(abs(d$difference), decreasing = TRUE), , drop = FALSE] utils::head(d, 20L) @@ -388,6 +493,13 @@ server <- function(input, output, session) { kind_b = data()$kind2, k = input$cluster_k, linkage = data()$linkage) }) + output$cluster_intro <- shiny::renderUI({ + shiny::req(has_two()) + d <- data() + shiny::p(class = "section-note", + sprintf("Clustering %d shared isolates independently in each matrix, using %d clusters and %s linkage. Change k in the sidebar to explore the stability of agreement.", + length(shared()$ids), input$cluster_k, d$linkage)) + }) output$cluster_summary <- shiny::renderTable({ c <- concordance() data.frame(measure = c("Adjusted Rand index", @@ -396,13 +508,50 @@ server <- function(input, output, session) { value = c(c$ari, c$adjusted_wallace_1_to_2, c$adjusted_wallace_2_to_1)) }) + output$cluster_overlap <- shiny::renderTable({ + x <- concordance()$contingency + overlap <- as.data.frame.matrix(x) + names(overlap) <- paste("Matrix 2 cluster", colnames(x)) + overlap <- data.frame("Matrix 1 cluster" = rownames(x), overlap, + check.names = FALSE, row.names = NULL) + overlap + }, rownames = FALSE) output$cluster_table <- shiny::renderTable({ - utils::head(concordance()$assignments, 100L) - }) + assignment <- utils::head(concordance()$assignments, 100L) + names(assignment) <- c("Isolate", "Matrix 1 cluster", "Matrix 2 cluster") + assignment + }, rownames = FALSE) output$metadata_preview <- shiny::renderTable({ shiny::req(data()$metadata) utils::head(data()$metadata, 100L) }, rownames = TRUE) + output$difference_explainer <- shiny::renderUI({ + d <- data() + if (is.null(d$second)) + return(shiny::p(class = "section-note", + "Upload a second matrix, or load the example, before comparing pairs.")) + if (identical(d$source, "synthetic example")) + return(shiny::div(class = "reading-guide", + shiny::strong("Unavailable for the example"), + shiny::p("The fictional ANI measurements are percentage-like (about 95–100), while the fictional MALDI similarities range from 0 to 1. These are different measurement types. The application deliberately blocks direct subtraction for this example. Use the pairwise rank-gap table or the two combined heatmaps instead."))) + if (!can_difference()) + return(shiny::p(class = "section-note", + "To enable a difference map, confirm in the sidebar that both matrices measure the same quantity in the same units and were processed compatibly.")) + shiny::p(class = "section-note", + "Difference = matrix 1 minus matrix 2 in original units. Zero is the neutral midpoint; positive and negative values appear on opposite sides. Colors are scaled symmetrically around zero, so hover or export the exact matrix for numerical comparisons.") + }) + output$download_difference_ui <- shiny::renderUI({ + if (!can_difference()) return(NULL) + shiny::downloadButton("download_difference", "Exact difference matrix CSV") + }) + output$difference_download_notice <- shiny::renderUI({ + d <- data() + if (!can_difference()) + shiny::p(class = "small-help", + if (identical(d$source, "synthetic example")) + "The difference export is disabled for the mixed-unit example." + else "The difference export appears after you confirm comparable measurements and load both matrices.") + }) output$metadata_note <- shiny::renderUI({ shiny::req(data()$metadata) shiny::p("Showing up to 100 metadata rows. Choose a categorical metadata column in the sidebar to compare within-group and between-group matrix values.") @@ -494,7 +643,7 @@ server <- function(input, output, session) { output$download_difference <- shiny::downloadHandler( filename = function() "MAniR_difference_matrix.csv", content = function(file) { - shiny::req(input$comparable_scales) + shiny::req(can_difference()) m <- combined_first() # Full difference matrices are intentionally materialized only when # explicitly requested for export. @@ -515,7 +664,8 @@ server <- function(input, output, session) { paste("Linkage:", d$linkage), paste("Color palette:", input$palette), paste("Log display scaling:", input$log_scale), - paste("Comparable units:", input$comparable_scales), + paste("Comparable units selected:", input$comparable_scales), + paste("Difference analysis permitted:", can_difference()), paste("Maximum analyzed pairs:", input$max_pairs), paste("Pair sampling seed:", 1L), paste("Mantel seed:", 1L), From 6e2446c9681de16239c7139ec39cb9b43463fb0c Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:44:51 +0200 Subject: [PATCH 082/134] fix: reset example controls to the measurement types and clustering actually used --- server.R | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/server.R b/server.R index 1a04c51..97d3545 100644 --- a/server.R +++ b/server.R @@ -45,11 +45,15 @@ server <- function(input, output, session) { kind1 <- "similarity" kind2 <- "similarity" match_mode <- "strict" + cluster_requested <- TRUE + linkage <- "complete" shiny::incProgress(0.40) } else { kind1 <- input$kind1 kind2 <- input$kind2 match_mode <- input$match_mode + cluster_requested <- isTRUE(input$cluster) + linkage <- input$linkage f <- input$first_file wb1 <- if (is_excel(f)) openxlsx::loadWorkbook(f$datapath) else NULL a <- read_matrix_input(f$datapath, @@ -108,8 +112,8 @@ server <- function(input, output, session) { if (!is.null(explicit)) return(c(intersect(explicit, colnames(m)), setdiff(colnames(m), explicit))) - matrix_order(m, kind, cluster = isTRUE(input$cluster), - linkage = input$linkage)$ids + matrix_order(m, kind, cluster = cluster_requested, + linkage = linkage)$ids } order1 <- order_for(a, kind1) shiny::incProgress(0.30) @@ -128,11 +132,11 @@ server <- function(input, output, session) { order1 = order1, order2 = order2, source = if (example) "synthetic example" else "uploaded files", matching = match_mode, - clustering_skipped = isTRUE(input$cluster) && + clustering_skipped = cluster_requested && is.null(explicit) && (nrow(a) > 2000L || (!is.null(b) && nrow(b) > 2000L)), kind1 = kind1, kind2 = kind2, - linkage = input$linkage) + linkage = linkage) }, error = function(e) { shiny::showNotification(conditionMessage(e), type = "error", duration = NULL) @@ -146,6 +150,12 @@ server <- function(input, output, session) { }) shiny::observeEvent(input$load_example, { shiny::updateCheckboxInput(session, "comparable_scales", value = FALSE) + shiny::updateSelectInput(session, "kind1", selected = "similarity") + shiny::updateSelectInput(session, "kind2", selected = "similarity") + shiny::updateRadioButtons(session, "match_mode", selected = "strict") + shiny::updateCheckboxInput(session, "cluster", value = TRUE) + shiny::updateSelectInput(session, "linkage", selected = "complete") + shiny::updateNumericInput(session, "cluster_k", value = 3) loaded(analyze_input(example = TRUE)) }) output$download_example <- shiny::downloadHandler( From 6d076919a979d950a32cb00adb207e999d9c6c75 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:45:25 +0200 Subject: [PATCH 083/134] test: cover interpretation UI, scale-independent rank gaps and nonoverlapping metadata track --- tests/run_tests.R | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/tests/run_tests.R b/tests/run_tests.R index 46dd469..9d94772 100644 --- a/tests/run_tests.R +++ b/tests/run_tests.R @@ -255,4 +255,47 @@ test("downloadable XLSX example round-trips all matrices and metadata", { stopifnot(grepl("SYNTHETIC", guide$Notes[1L])) }) + +test("rank gaps compare pair order without subtracting incompatible units", { + example <- manir_load_example() + pair <- paired_values(example$first, example$second) + top <- pair_rank_gaps(pair, "similarity", "similarity", top = 10L) + stopifnot(nrow(top) == 10L, all(is.finite(top$rank_gap)), + all(top$rank_gap >= 0 & top$rank_gap <= 1), + all(diff(top$rank_gap) <= 0)) + # Distances are reversed before comparing pair ranks, so negating all + # second-matrix scores and marking them as distance changes no rank gaps. + reversed <- pair + reversed$data$second <- -reversed$data$second + alt <- pair_rank_gaps(reversed, "similarity", "distance", top = 10L) + stopifnot(isTRUE(all.equal(top$rank_gap, alt$rank_gap))) + expect_error(pair_rank_gaps(pair, "invalid", "similarity"), "Unrecognized") +}) + +test("metadata colors keep their meaning across both matrix orders", { + example <- manir_load_example() + key <- ma_metadata_palette(example$metadata, "group") + reordered <- example$metadata[rev(rownames(example$metadata)), , drop = FALSE] + stopifnot(length(key) == 3L, + identical(key, ma_metadata_palette(reordered, "group")), + is.null(ma_metadata_palette(example$metadata, "missing"))) + # The strip must live above the plot, not in the y-axis label margin. + p <- ma_interactive(example$first, metadata = example$metadata, + group_column = "group") + stopifnot(length(p$x$layout$shapes) == nrow(example$first), + all(vapply(p$x$layout$shapes, + function(x) identical(x$yref, "paper") && x$y0 > 1, + logical(1L)))) +}) + +test("every result tab includes contextual interpretation guidance", { + source("ui.R", local = TRUE) + view <- htmltools::renderTags(ui)$html + stopifnot(grepl("How to read this", view, fixed = TRUE), + grepl("Adjusted Wallace", view, fixed = TRUE), + grepl("rank differences", view, fixed = TRUE), + grepl("different measurement", view, fixed = TRUE), + grepl("metadata", view, fixed = TRUE)) +}) + cat("All MAniR regression tests passed.\n") From b98d0d9aeb9f1c25cfbb6518a75a7d922ae0b212 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:45:27 +0200 Subject: [PATCH 084/134] test: block mixed-unit difference and verify compatible uploaded pair handling --- tests/test_shiny.R | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tests/test_shiny.R b/tests/test_shiny.R index 0b275b1..af9e647 100644 --- a/tests/test_shiny.R +++ b/tests/test_shiny.R @@ -46,6 +46,10 @@ shiny::testServer(server, { nrow(demo$metadata) == 12L, identical(demo$matching, "strict") ) + # Even when a checkbox is set, mixed-unit teaching data must not be + # subtracted or exported as a misleading difference matrix. + session$setInputs(comparable_scales = TRUE) + stopifnot(!can_difference()) # An ordinary upload after the example must replace it without carrying # across the example metadata or second matrix. session$setInputs(first_file = file_info, visualize = 1) @@ -53,9 +57,14 @@ shiny::testServer(server, { stopifnot(identical(own$source, "uploaded files"), nrow(own$first) == 4L, is.null(own$second), is.null(own$metadata)) + session$setInputs(second_file = file_info, comparable_scales = TRUE, + visualize = 2) + stopifnot(can_difference(), + nrow(shared()$first) == 4L) session$setInputs(load_example = 2) stopifnot(identical(loaded()$source, "synthetic example"), - nrow(loaded()$second) == 12L) + nrow(loaded()$second) == 12L, !can_difference(), + identical(loaded()$linkage, "complete")) }) cat("Shiny upload and example reactive smoke tests passed.\n") From 4105ba4de472e19f0acf2444b80bc87690078c23 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:46:07 +0200 Subject: [PATCH 085/134] docs: provide research-oriented guide to every MAniR visualization and statistic --- docs/INTERPRETING_RESULTS.md | 160 +++++++++++++++++++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 docs/INTERPRETING_RESULTS.md diff --git a/docs/INTERPRETING_RESULTS.md b/docs/INTERPRETING_RESULTS.md new file mode 100644 index 0000000..6008fda --- /dev/null +++ b/docs/INTERPRETING_RESULTS.md @@ -0,0 +1,160 @@ +# Reading MAniR results + +MAniR compares **pairwise measurements for the same isolates**. It does not +calculate ANI from genomes or align raw MALDI-TOF peaks. Start with two +precomputed, named, square, symmetric matrices. For example, one could contain +genomic ANI percentages and another MALDI-TOF spectral similarities. Each row +and column refers to an isolate, and the same cell in both matrices must refer +to the same pair. The bundled teaching data are fictional. + +## Choose the right input type + +- **Similarity:** larger values indicate greater similarity (for example, ANI + or a MALDI spectral similarity score). The absolute range depends on the + method, so 99% ANI and 0.99 MALDI similarity are not interchangeable. +- **Correlation:** values lie between -1 and +1. A more positive value + indicates a more positive relationship; -1 is strong inverse correlation. +- **Distance:** smaller values mean more similar samples. MAniR reverses + distance ordering internally when constructing a clustering dissimilarity or + comparing ranks, but does **not** change the original uploaded values. + +"Unspecified" treats larger values as more similar for clustering. Supply the +correct type if you want the scientific meaning of the ordering and rank +comparison to be accurate. Neither the palette nor a logarithmic +transformation changes the input type. + +## Reading single heatmaps + +Each cell is one row-isolate versus column-isolate comparison. A symmetric +matrix repeats the same number on both sides of the diagonal. Clustering +reorders the rows and columns **together**, placing similar patterns adjacent. +A cluster-looking block in the picture is a visual clue, not a validated taxon. + +The color legend is **relative display color (0–1)**, not the input units. +MAniR maps the range of each displayed matrix to the palette. With the +default diverging palette, red represents the low end and blue the high end +of that display range. Hover over a cell for its exact input value. For a +distance matrix, remember that low (red) values indicate closer samples, +the opposite of the biological interpretation of a similarity matrix. + +If you choose a categorical metadata field, colored rectangles appear in +a narrow track above the interactive heatmap. A separate legend above the +plot explains which group has each color; the colors are stable when you +switch the matrix ordering. Metadata are additional isolate attributes, +not measurements of pairwise agreement. Gray indicates missing metadata. +Large raster views show a narrow side track rather than putting a legend +over the plot. + +## The two combined views + +A split matrix uses **matrix 1 above the diagonal** and **matrix 2 below +the diagonal**, with the same isolates along both axes. Combined (order 1) +uses clustering from matrix 1; Combined (order 2) puts matrix 2 above the +diagonal and clusters using matrix 2 instead. Compare the apparent blocks +and which samples move when you change the ordering. + +MAniR normalizes the **two triangles separately**. The same blue shade +can therefore represent ANI of 99% and MALDI similarity of 0.9; this +is not equal biological similarity. The neutral diagonal in a split view +is a visual separator, not a measured 0.5. Hover to see which matrix +contributed a cell and its original value. + +## Pairwise comparison and rank gaps + +Each scatterplot dot shows one unique unordered pair of isolates. +For n isolates, there are n(n-1)/2 pairs, excluding the diagonal and the +mirrored half. With the 12-isolate example, that is 66 pairs. Matrix 1 +supplies the X value and matrix 2 the Y value. An upward pattern suggests +positive association between the two types of pairwise measurements. + +Two useful summaries are Pearson's r for a linear relationship and +Spearman's rho for the consistency of ranks. Values lie between -1 and +1. +They do not establish that two typing methods have equal resolution, +accuracy or biological validity. Since each isolate is reused in many +pairs, those dots are **not independent observations**. + +The rank-gap table is useful when units differ. It ranks pairs by each +measurement, placing more similar samples higher in the ranking. For +distance matrices, the direction is reversed before ranking. The absolute +difference between the two percentile ranks is shown as a **rank gap**: +a larger gap means the pair occupies a more different relative position +in the two matrices. Orange outlines in the plot mark up to five of the +largest rank gaps. This is an exploratory list, **not** an outlier test or +a measure of statistical significance. + +The bundled example intentionally includes two unusual pairs: +ISO_02 / ISO_03 have fictional ANI 99.655 and MALDI similarity 0.52; +ISO_04 / ISO_05 have fictional ANI 97.22 and MALDI similarity 0.88. +They illustrate the need to inspect individual discordant pairs. +Do not interpret those numbers as measured bacterial biology. + +The app evaluates up to the selected maximum number of distinct pairs. +For larger datasets, it uses a reproducible sample and reports the +number of evaluated pairs. The rank gaps and displayed summary then +describe **that sample**, not necessarily every pair in the input. + +## Cluster agreement + +Choose the number of clusters k in the sidebar. MAniR independently +clusters each matrix using its specified type, then cuts both trees into +k groups. The linkage method and choice of k may change the result. + +Cluster labels such as "1" and "2" are arbitrary. Two labels with the +same number are not necessarily the same biological group. Use the +cluster-overlap table to see which groups contain the same isolates. +The adjusted Rand index (ARI) is invariant to renaming clusters: +1 indicates the same partition, around 0 corresponds to chance-level +agreement under its adjustment model, and negative values can indicate +less agreement than that model expects. + +Adjusted Wallace is directional. Matrix 1 → matrix 2 asks how well +pairs grouped together by the first matrix remain grouped by the second, +after correcting for the expected chance grouping. Reversing the +direction changes which matrix supplies the original pair groupings; +the values can differ. An adjusted Wallace value is **not the probability +that the first typing method is biologically correct**. + +Both metrics compare the selected cluster assignments, not the full +distribution of matrix values or independently confirmed biological labels. + +## Optional Mantel test + +The Mantel test assesses matrix association while retaining the +dependence between cells by permuting **whole isolate labels** in one +matrix. Its permutation p-value is not obtained by treating every dot in +the scatterplot as an independent observation. The app uses a two-sided +permutation test and requires complete matrices with no more than 400 +shared isolates. A small p-value is evidence against the chosen +no-association permutation null, **not** evidence that the methods are +equivalent, diagnostic or causal. Save the number of permutations and +random seed with the results. + +## Difference plots: only directly comparable measurements + +A difference is original matrix 1 minus original matrix 2 for the same +pair. Use this only when both matrices measure the **same quantity**, +in the **same units**, with compatible preprocessing. Comparing ANI +from two sequencing runs can qualify; ANI percentages versus MALDI +spectral scores do not. The example deliberately disables this feature +even if the comparable-measurements box is checked. + +In a valid difference heatmap, zero maps to the neutral midpoint and +positive/negative differences map to opposite sides of the diverging +palette. The colors are symmetric around zero but rescaled for display: +hover or export the exact difference matrix to interpret magnitudes. +A difference by itself does not establish which method is correct. + +## Metadata and reproducibility + +Metadata categories (group, source, batch, etc.) are descriptive. +Within-group versus between-group pair summaries may suggest something +to investigate, but they are not independent-replicate statistical tests +and do not account for experimental confounding. If apparent biological +groups follow batches, consider an appropriate follow-up study. + +CSV and RDS exports contain original numerical values. Figures may use +normalized colors and representative downsampling for very large +matrices. Keep the original matrices and metadata, the settings manifest, +the result tables and the actual package versions with published figures. + +[Back to README](../README.md) From a8376d7838cf279c9edfc1c061bcd59cbafcfea6 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:46:10 +0200 Subject: [PATCH 086/134] docs: link the in-app interpretation guidance to a complete reference --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 874bb91..d79f7b9 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,11 @@ MAniR is an R Shiny application for investigating pairwise relationships between This development branch is **MAniR 3.0 prerelease**. The historical application remains available in the repository's Git history and on `main` until the upgrade is reviewed. Do not cite an unverified performance improvement: the benchmark scripts need to be run on specified hardware. +For help understanding the plots, correlations, directional cluster agreement, +rank gaps, metadata tracks and the restrictions on difference maps, see +[Reading MAniR results](docs/INTERPRETING_RESULTS.md). The application also +displays a short explanation directly on each analysis tab. + ## Installation Install R 4.2 or later. The upload limit defaults to 1,024 MB and can be configured with the `MANIR_MAX_UPLOAD_MB` environment variable. Plan available RAM for at least the uploaded matrices plus working data, especially for two 10,000-isolate matrices. For those larger projects, RDS or CSV is preferable to Excel. In the repository directory, run: From 899c9b6999cc464d33e522979e146d230bb95b62 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:47:53 +0200 Subject: [PATCH 087/134] test: inspect metadata strip after Plotly constructs the full widget layout --- tests/run_tests.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/run_tests.R b/tests/run_tests.R index 9d94772..b456462 100644 --- a/tests/run_tests.R +++ b/tests/run_tests.R @@ -280,8 +280,8 @@ test("metadata colors keep their meaning across both matrix orders", { identical(key, ma_metadata_palette(reordered, "group")), is.null(ma_metadata_palette(example$metadata, "missing"))) # The strip must live above the plot, not in the y-axis label margin. - p <- ma_interactive(example$first, metadata = example$metadata, - group_column = "group") + p <- plotly::plotly_build(ma_interactive( + example$first, metadata = example$metadata, group_column = "group")) stopifnot(length(p$x$layout$shapes) == nrow(example$first), all(vapply(p$x$layout$shapes, function(x) identical(x$yref, "paper") && x$y0 > 1, From fe2cf0b6d5d8faeb6ef2fdcb2951e55f5f85fb9d Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:50:00 +0200 Subject: [PATCH 088/134] fix: omit uninterpretable raw differences from cross-method CSV exports --- R/matrix_analysis.R | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/R/matrix_analysis.R b/R/matrix_analysis.R index 83e8183..351c8e4 100644 --- a/R/matrix_analysis.R +++ b/R/matrix_analysis.R @@ -216,3 +216,12 @@ pair_rank_gaps <- function(pairs, kind1 = "similarity", utils::head(d[c("sample_1", "sample_2", "first", "second", "rank_gap")], as.integer(top)) } + +# Keep the exported table honest when the source measurements use different +# units. The internal pairwise values still include the difference for +# calculations that are explicitly enabled only for compatible measurements. +pair_export_data <- function(pairs, comparable = FALSE) { + result <- pairs$data + if (!isTRUE(comparable)) result$difference <- NULL + result +} From 230a4e705ad84bb30e3f309e33f7904e7b02c789 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:50:04 +0200 Subject: [PATCH 089/134] feat: distinguish active dataset settings from changed sidebar controls --- server.R | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/server.R b/server.R index 97d3545..219d59b 100644 --- a/server.R +++ b/server.R @@ -164,6 +164,23 @@ server <- function(input, output, session) { ) data <- shiny::reactive({ shiny::req(loaded()); loaded() }) + output$active_analysis <- shiny::renderUI({ + d <- data() + if (identical(d$source, "synthetic example")) { + return(shiny::p(class = "small-help", + "Currently displayed: synthetic ANI-like and MALDI-like similarity matrices. This example always uses similarity inputs, even if a dropdown below is changed. Reload the example to reset the controls.")) + } + changed <- (!is.null(input$kind1) && !identical(input$kind1, d$kind1)) || + (!is.null(input$kind2) && !identical(input$kind2, d$kind2)) || + (!is.null(input$linkage) && !identical(input$linkage, d$linkage)) + shiny::p(class = "small-help", + sprintf("Currently displayed: %s (matrix 1), %s (matrix 2); %s linkage.%s", + d$kind1, if (is.null(d$second)) "not loaded" else d$kind2, + d$linkage, + if (changed) + " You have changed analysis settings. Click Load and analyze to apply them." + else "")) + }) has_two <- shiny::reactive(!is.null(data()$second)) subset_if_needed <- function(m, ids) { if (identical(colnames(m), ids) && identical(rownames(m), ids)) @@ -595,7 +612,8 @@ server <- function(input, output, session) { filename = function() "MAniR_pairwise_values.csv", content = function(file) { shiny::req(has_two()) - utils::write.csv(pair_data()$data, file, row.names = FALSE) + values <- pair_export_data(pair_data(), comparable = can_difference()) + utils::write.csv(values, file, row.names = FALSE) }) output$download_clusters <- shiny::downloadHandler( filename = function() "MAniR_clusters.csv", From 48917a97f43f88050cb097a4177603797984549d Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:50:06 +0200 Subject: [PATCH 090/134] docs(ui): clarify when type, matching and linkage changes take effect --- ui.R | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ui.R b/ui.R index bec18ef..af5df99 100644 --- a/ui.R +++ b/ui.R @@ -55,6 +55,7 @@ ui <- shiny::fluidPage( shiny::p(class = "small-help", "Synthetic data for demonstration, not real biological measurements.") ), + shiny::uiOutput("active_analysis"), shiny::hr(), shiny::h4("Upload your data"), shiny::p(class = "small-help", @@ -85,6 +86,8 @@ ui <- shiny::fluidPage( "Shared isolates only" = "intersection"), selected = "strict"), shiny::actionButton("visualize", "Load and analyze", class = "btn-primary"), + shiny::p(class = "small-help", + "Matrix type, linkage and sample matching are applied when you load a dataset. Palette, annotation track and zoom controls can change the current view without reloading."), shiny::hr(), shiny::h4("Visualization"), shiny::checkboxInput("cluster", "Cluster samples", value = TRUE), From 0ebef1a92a23316c49099339a0f128098be348a1 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:50:09 +0200 Subject: [PATCH 091/134] test: ensure mixed-unit pair exports cannot contain raw difference columns --- tests/run_tests.R | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/run_tests.R b/tests/run_tests.R index b456462..0195ecd 100644 --- a/tests/run_tests.R +++ b/tests/run_tests.R @@ -256,6 +256,16 @@ test("downloadable XLSX example round-trips all matrices and metadata", { }) +test("pair export hides raw differences between incompatible measurement scales", { + example <- manir_load_example() + pairs <- paired_values(example$first, example$second) + separate <- pair_export_data(pairs) + comparable <- pair_export_data(pairs, comparable = TRUE) + stopifnot(!"difference" %in% names(separate), + "difference" %in% names(comparable), + nrow(separate) == 66L) +}) + test("rank gaps compare pair order without subtracting incompatible units", { example <- manir_load_example() pair <- paired_values(example$first, example$second) From 27c442c388b4957b7f9438ecd13f739e7010ffd2 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:50:12 +0200 Subject: [PATCH 092/134] docs: explain why pairwise CSV omits raw differences on mixed-unit data --- docs/INTERPRETING_RESULTS.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/INTERPRETING_RESULTS.md b/docs/INTERPRETING_RESULTS.md index 6008fda..739c7ac 100644 --- a/docs/INTERPRETING_RESULTS.md +++ b/docs/INTERPRETING_RESULTS.md @@ -88,6 +88,10 @@ ISO_04 / ISO_05 have fictional ANI 97.22 and MALDI similarity 0.88. They illustrate the need to inspect individual discordant pairs. Do not interpret those numbers as measured bacterial biology. +The downloaded pairwise CSV omits the raw difference column unless you have +confirmed the matrices are directly comparable. The synthetic example always +omits it because subtracting its measurements would be misleading. + The app evaluates up to the selected maximum number of distinct pairs. For larger datasets, it uses a reproducible sample and reports the number of evaluated pairs. The rank gaps and displayed summary then From c02dd204045cbe47d2a07be381270a7a76e0147f Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:56:58 +0200 Subject: [PATCH 093/134] style: introduce fixed-height split workspace and accessible persistent analysis toolbar --- www/workspace.css | 169 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 www/workspace.css diff --git a/www/workspace.css b/www/workspace.css new file mode 100644 index 0000000..b541375 --- /dev/null +++ b/www/workspace.css @@ -0,0 +1,169 @@ + +/* Desktop analysis workspace: independent control and result scrolling. + * Mobile and short windows use the normal document flow instead. */ +:root { + --manir-ink: #203c50; + --manir-muted: #657b8e; + --manir-border: #dbe6ec; + --manir-brand: #176a86; + --manir-bg: #f2f6f8; +} +body { background: var(--manir-bg); color: var(--manir-ink); } +.container-fluid { padding-left: 18px; padding-right: 18px; } +.app-header { + display: flex; align-items: center; gap: 16px; + min-height: 73px; padding: 12px 3px 14px; flex-wrap: wrap; +} +.app-header h2 { font-size: 26px; font-weight: 650; letter-spacing: -.025em; margin: 0; } +.app-header .app-description { font-size: 13px; color: var(--manir-muted); } +.workspace { min-height: 0; flex: 1 1 auto; } +.workspace > .row { height: 100%; display: flex; flex-wrap: nowrap; } +.workspace > .row > .col-sm-3, .workspace > .row > .col-sm-9 { + min-width: 0; display: flex; flex-direction: column; float: none; +} +.workspace > .row > .col-sm-3 { width: 26%; } +.workspace > .row > .col-sm-9 { width: 74%; } +.workspace .well { + min-height: 0; flex: 1 1 auto; + padding: 0; margin-bottom: 0; background: white; + border: 1px solid var(--manir-border); + box-shadow: none; border-radius: 10px; + overflow: hidden; +} +.control-sidebar { + display: flex; flex-direction: column; height: 100%; min-height: 0; +} +.sidebar-scroll { + flex: 1 1 auto; min-height: 0; overflow-y: auto; + overscroll-behavior: contain; padding: 14px 16px 24px; + scrollbar-color: #b7cbd5 transparent; +} +.sidebar-scroll h4 { margin: 4px 0 8px; font-size: 15px; font-weight: 650; } +.example-quick { + border-radius: 8px; padding: 12px; background: #eef6f9; + margin-bottom: 13px; border: 1px solid #d4e6ef; +} +.example-quick .btn-primary { background: var(--manir-brand); border-color: var(--manir-brand); } +.example-quick p { font-size: 12px; line-height: 1.45; margin: 4px 0 10px; color: #4e6679; } +.example-quick details { margin: 8px 0 0; font-size: 12px; } +.example-quick details summary { cursor: pointer; color: #315770; } +.control-group { + border: 1px solid var(--manir-border); border-radius: 8px; + background: #fff; margin-bottom: 10px; +} +.control-group > summary { + list-style-position: inside; padding: 11px 12px; + font-weight: 650; color: #29485d; cursor: pointer; + background: #f8fbfc; border-radius: 8px; +} +.control-group[open] > summary { border-bottom: 1px solid var(--manir-border); border-radius: 8px 8px 0 0; } +.control-group > .group-body { padding: 12px 12px 2px; } +.group-body .form-group { margin-bottom: 12px; } +.group-body label { font-size: 12px; } +.group-body .small-help { font-size: 11px; margin: 4px 0 12px; } +.sidebar-footer { + background: #fff; flex: 0 0 auto; + padding: 11px 16px 12px; border-top: 1px solid var(--manir-border); + box-shadow: 0 -3px 14px rgba(19, 54, 74, .035); +} +.sidebar-footer .btn { display: block; width: 100%; font-weight: 650; margin: 0; } +.sidebar-footer .load-status { display: block; color: var(--manir-muted); font-size: 11px; margin-top: 6px; } +.workspace .main-panel { + flex: 1 1 auto; min-height: 0; overflow: hidden; + display: flex; flex-direction: column; + padding: 0; border: 1px solid var(--manir-border); + border-radius: 10px; box-shadow: none; background: #fff; +} +.results-toolbar { + flex: 0 0 auto; padding: 10px 17px 7px; + display: flex; align-items: flex-start; flex-wrap: wrap; + column-gap: 18px; row-gap: 6px; border-bottom: 1px solid var(--manir-border); + background: #fcfefe; +} +.toolbar-field { min-width: 120px; max-width: 220px; } +.toolbar-field .form-group, .toolbar-field .shiny-input-container { margin-bottom: 0; width: 100%; } +.toolbar-field label { font-size: 11px; font-weight: 650; margin-bottom: 3px; color: #466376; } +.toolbar-field .form-control { height: 31px; font-size: 12px; padding: 3px 8px; } +.toolbar-field.control-checkbox { align-self: center; min-width: auto; padding-top: 11px; } +.toolbar-field.control-checkbox label { font-weight: 500; font-size: 12px; white-space: nowrap; } +.toolbar-field.control-checkbox .checkbox { margin: 0; } +.toolbar-more { margin-top: 5px; flex: 0 0 auto; align-self: center; font-size: 12px; } +.toolbar-more summary { cursor: pointer; color: var(--manir-brand); padding: 6px; } +.toolbar-more[open] { width: 100%; } +.toolbar-extra { display: flex; flex-wrap: wrap; align-items: end; gap: 6px 16px; padding: 8px 0; } +.toolbar-extra .shiny-input-container { width: 138px; margin-bottom: 0; } +.toolbar-status { + flex: 1 1 200px; margin-left: auto; align-self: center; + text-align: right; max-width: 400px; + color: var(--manir-muted); +} +.toolbar-status p { font-size: 11px; line-height: 1.3; margin: 0; } +.toolbar-field.contextual { align-self: center; } +.toolbar-field.contextual .shiny-input-container { width: 94px; } +.results-shell { min-height: 0; flex: 1 1 auto; display: flex; flex-direction: column; } +.results-shell > .tabbable { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; } +.results-shell .nav-tabs { + flex: 0 0 auto; padding: 0 15px; + display: flex; flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; + border-bottom: 1px solid var(--manir-border); scrollbar-width: thin; +} +.results-shell .nav-tabs > li { float: none; flex: 0 0 auto; } +.results-shell .nav-tabs > li > a { margin-right: 1px; padding: 11px 12px; font-size: 12px; white-space: nowrap; } +.results-shell .tab-content { + flex: 1 1 auto; min-height: 0; overflow-y: auto; + overscroll-behavior: contain; + padding: 8px 20px 24px; +} +.results-shell .tab-pane { max-width: 100%; } +.results-shell .reading-guide { + background: #f3f8fb; border: 1px solid #dae7ee; + border-left: 3px solid #52859e; border-radius: 5px; + padding: 0; margin: 5px 0 12px; +} +.results-shell .reading-guide > summary { + cursor: pointer; list-style-position: inside; color: #385c72; + font-size: 12px; padding: 8px 11px; user-select: none; +} +.results-shell .reading-guide > summary .guide-preview { font-weight: normal; color: var(--manir-muted); margin-left: 7px; } +.results-shell .reading-guide > .guide-body { padding: 3px 13px 12px; font-size: 12px; line-height: 1.5; max-width: 100ch; } +.results-shell .reading-guide > .guide-body p { margin: 2px 0 8px; } +.results-shell .section-note { margin: 8px 0; font-size: 12px; } +.results-shell .metadata-key { margin: 5px 0; } +.results-shell .results-table { margin: 10px 0; } +.results-shell h4 { font-size: 16px; margin: 14px 0 9px; } +.plot-frame { height: clamp(400px, calc(100dvh - 310px), 900px); width: 100%; min-width: 0; } +.plot-frame .shiny-plot-output, .plot-frame .plotly { + height: 100% !important; min-height: 0; width: 100%; +} +.results-shell .tab-content .btn { margin: 5px 8px 6px 0; } +@media (min-width: 992px) and (min-height: 580px) { + html, body { height: 100%; overflow: hidden; } + body > .container-fluid { + height: 100dvh; min-height: 0; display: flex; flex-direction: column; overflow: hidden; + } +} +@media (max-width: 991px), (max-height: 579px) { + html, body { height: auto; overflow: auto; } + .app-header { min-height: 54px; } + .workspace > .row { display: block; height: auto; } + .workspace > .row > .col-sm-3, .workspace > .row > .col-sm-9 { + display: block; width: 100%; float: none; padding-left: 0; padding-right: 0; + } + .workspace .well { margin-bottom: 12px; overflow: visible; height: auto; } + .control-sidebar { height: auto; } + .sidebar-scroll { overflow: visible; } + .sidebar-footer { position: sticky; bottom: 0; z-index: 40; border-radius: 0 0 8px 8px; } + .workspace .main-panel { overflow: visible; } + .results-shell > .tabbable { display: block; } + .results-shell .tab-content { overflow: visible; } + .plot-frame { height: min(68vh, 700px); min-height: 380px; } + .toolbar-status { text-align: left; max-width: none; } +} +@media (max-width: 600px) { + .container-fluid { padding-left: 10px; padding-right: 10px; } + .app-description { display: none; } + .results-toolbar { padding: 9px; gap: 8px; } + .toolbar-status { flex-basis: 100%; margin: 0; } + .results-shell .tab-content { padding: 8px 10px 18px; } + .results-shell .reading-guide .guide-preview { display: none; } +} From 565a494bd8986af8dc092d77adda1868b978080c Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:57:39 +0200 Subject: [PATCH 094/134] ui: keep results visible with independent scrolling, compact sidebar and persistent live controls --- ui.R | 244 ++++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 149 insertions(+), 95 deletions(-) diff --git a/ui.R b/ui.R index af5df99..d14514f 100644 --- a/ui.R +++ b/ui.R @@ -1,13 +1,16 @@ # MAniR: matrix comparison and scalable visualization. manir_guide <- function(lead, details = NULL) { - shiny::div(class = "reading-guide", - shiny::strong("How to read this"), - shiny::p(lead), - if (!is.null(details)) - shiny::tags$details( - shiny::tags$summary("More explanation"), - shiny::p(details) - ) + # Help stays one short line until opened, leaving the visualization visible. + preview <- strsplit(lead, "[.!?]")[[1L]][1L] + if (nchar(preview) > 108L) preview <- paste0(substr(preview, 1L, 105L), "...") + shiny::tags$details(class = "reading-guide", + shiny::tags$summary(shiny::strong("How to read this"), + shiny::span(class = "guide-preview", preview)), + shiny::div(class = "guide-body", + shiny::p(lead), + if (!is.null(details)) + shiny::tagList(shiny::strong("Further interpretation"), shiny::p(details)) + ) ) } ui <- shiny::fluidPage( @@ -39,98 +42,145 @@ ui <- shiny::fluidPage( .section-note { margin: 13px 0 8px; color: #3b5668; } .results-table { margin: 12px 0 20px; } .main-panel .btn { margin: 7px 7px 7px 0; } - ")) + ")), + shiny::tags$link(rel = "stylesheet", type = "text/css", + href = "workspace.css") + ), + shiny::div(class = "app-header", + shiny::h2("MAniR"), + shiny::span(class = "app-description", + "Compare pairwise similarities, correlations and distances") ), - shiny::titlePanel("MAniR"), - shiny::p("Explore and compare pairwise similarity, correlation or distance matrices."), + shiny::div(class = "workspace", shiny::sidebarLayout( shiny::sidebarPanel(width = 3, - shiny::div(class = "metric", - shiny::h4("Try an example"), - shiny::p("Explore 12 fictional isolates, two similarity matrices and sample metadata. No upload needed."), - shiny::actionButton("load_example", "Load example dataset", - class = "btn-primary"), - shiny::tags$br(), shiny::tags$br(), - shiny::downloadButton("download_example", "Download example XLSX"), - shiny::p(class = "small-help", - "Synthetic data for demonstration, not real biological measurements.") - ), - shiny::uiOutput("active_analysis"), - shiny::hr(), - shiny::h4("Upload your data"), - shiny::p(class = "small-help", - "For very large matrices, CSV or RDS is preferable to Excel. - Import uses RAM for the matrix and temporary validation data."), - shiny::fileInput("first_file", "First matrix", - accept = c(".xlsx", ".xlsm", ".csv", ".tsv", ".txt", - ".gz", ".rds")), - shiny::uiOutput("first_sheet_ui"), - shiny::fileInput("second_file", "Second matrix file (optional)", - accept = c(".xlsx", ".xlsm", ".csv", ".tsv", ".gz", ".rds")), - shiny::uiOutput("second_sheet_ui"), - shiny::fileInput("metadata_file", "Separate metadata file (optional)", - accept = c(".xlsx", ".csv", ".tsv", ".rds")), - shiny::uiOutput("metadata_sheet_ui"), - shiny::fileInput("order_file", "Optional sample order (one ID per line)", - accept = c(".txt", ".csv", ".tsv")), - shiny::selectInput("kind1", "Matrix 1 represents", - choices = c("Similarity" = "similarity", "Correlation" = "correlation", - "Distance" = "distance", "Unspecified" = "auto")), - shiny::selectInput("kind2", "Matrix 2 represents", - choices = c("Similarity" = "similarity", "Correlation" = "correlation", - "Distance" = "distance", "Unspecified" = "auto")), - shiny::p(class = "small-help", - "Similarity: larger values mean closer samples. Distance: smaller values mean closer samples. Correlation ranges from -1 to +1; larger values indicate a more positive relationship."), - shiny::radioButtons("match_mode", "Compare samples", - choices = c("Require identical IDs" = "strict", - "Shared isolates only" = "intersection"), - selected = "strict"), - shiny::actionButton("visualize", "Load and analyze", class = "btn-primary"), - shiny::p(class = "small-help", - "Matrix type, linkage and sample matching are applied when you load a dataset. Palette, annotation track and zoom controls can change the current view without reloading."), - shiny::hr(), - shiny::h4("Visualization"), - shiny::checkboxInput("cluster", "Cluster samples", value = TRUE), - shiny::selectInput("linkage", "Clustering linkage", - choices = c("Complete (historical default)" = "complete", - "Average" = "average", "Single" = "single", - "Ward D2" = "ward.D2"), selected = "complete"), - shiny::selectInput("palette", "Palette", - choices = c("RdBu", "BrBG", "PiYG", "PRGn", "PuOr", "RdYlBu", - "Viridis", "YlOrRd", "Blues", "Greens", "Greys"), - selected = "RdBu"), - shiny::checkboxInput("zoom_enabled", "Zoom into a region in large matrices", FALSE), - shiny::numericInput("zoom_start", "First isolate index", 1, min = 1, step = 1), - shiny::numericInput("zoom_size", "Isolates in zoom region", 300, - min = 10, max = 1000, step = 50), - shiny::checkboxInput("show_numbers", "Display cell numbers in small plots", - value = FALSE), - shiny::checkboxInput("log_scale", "Logarithmic display scaling", - value = FALSE), - shiny::selectInput("metadata_column", "Categorical annotation track", - choices = c("None" = "")), - shiny::checkboxInput("comparable_scales", - "Both matrices measure the same quantity on the same scale", - value = FALSE), - shiny::p(class = "small-help", - "Check this only for directly comparable measurements, such as ANI from two sequencing runs. Do not check it for ANI percentages versus MALDI scores, even after normalizing the heatmap colors."), - shiny::helpText("For large matrices, plots use representative pixels. Numerical analyses and exports use original values unless stated otherwise."), - shiny::hr(), - shiny::h4("Statistical analysis"), - shiny::numericInput("max_pairs", "Maximum plotted/analyzed pairs", - 100000, min = 1000, max = 1000000, step = 1000), - shiny::numericInput("cluster_k", "Number of clusters to compare (k)", 3, - min = 2, max = 100), - shiny::p(class = "small-help", - "Cut both dendrograms into k groups and compare membership. Changing k can change every agreement statistic."), - shiny::numericInput("permutations", "Mantel permutations", 999, - min = 99, max = 9999), - shiny::actionButton("run_mantel", "Run Mantel test"), - shiny::p(class = "small-help", - "The Mantel test checks association between matrices by permuting whole isolate labels, not individual cells. It requires complete matrices and at most 400 shared isolates; its p-value is not a test of typing-method equivalence.") + shiny::div(class = "control-sidebar", + shiny::div(class = "sidebar-scroll", + shiny::div(class = "example-quick", + shiny::h4("Try MAniR with example data"), + shiny::p("12 synthetic isolates with ANI-like, MALDI-like and metadata matrices."), + shiny::actionButton("load_example", "Load example", class = "btn-primary"), + shiny::tags$details( + shiny::tags$summary("About the example / download"), + shiny::p("Synthetic demonstration data, not measured biological values."), + shiny::downloadButton("download_example", "Example workbook (.xlsx)") + ) + ), + shiny::tags$details(class = "control-group", open = "open", + shiny::tags$summary("Upload matrices"), + shiny::div(class = "group-body", + shiny::fileInput("first_file", "Matrix 1", + accept = c(".xlsx", ".xlsm", ".csv", ".tsv", ".txt", ".gz", ".rds")), + shiny::uiOutput("first_sheet_ui"), + shiny::fileInput("second_file", "Matrix 2 (optional)", + accept = c(".xlsx", ".xlsm", ".csv", ".tsv", ".gz", ".rds")), + shiny::uiOutput("second_sheet_ui"), + shiny::fileInput("metadata_file", "Metadata (optional)", + accept = c(".xlsx", ".csv", ".tsv", ".rds")), + shiny::uiOutput("metadata_sheet_ui"), + shiny::fileInput("order_file", "Sample order (optional)", + accept = c(".txt", ".csv", ".tsv")), + shiny::selectInput("kind1", "Matrix 1 represents", + choices = c("Similarity" = "similarity", "Correlation" = "correlation", + "Distance" = "distance", "Unspecified" = "auto")), + shiny::selectInput("kind2", "Matrix 2 represents", + choices = c("Similarity" = "similarity", "Correlation" = "correlation", + "Distance" = "distance", "Unspecified" = "auto")), + shiny::radioButtons("match_mode", "Compare samples", + choices = c("Identical IDs" = "strict", + "Shared isolates" = "intersection"), + selected = "strict"), + shiny::p(class = "small-help", + "Similarity: larger means closer. Distance: smaller means closer. Correlation is between -1 and 1.") + ) + ), + shiny::tags$details(class = "control-group", + shiny::tags$summary("Analysis settings"), + shiny::div(class = "group-body", + shiny::checkboxInput("cluster", "Cluster samples on load", value = TRUE), + shiny::selectInput("linkage", "Clustering linkage", + choices = c("Complete (original default)" = "complete", + "Average" = "average", "Single" = "single", + "Ward D2" = "ward.D2"), selected = "complete"), + shiny::checkboxInput("comparable_scales", + "Same measurement and units in both matrices", value = FALSE), + shiny::p(class = "small-help", + "Only enable raw differences when measurements are directly comparable. ANI percentages and MALDI scores are different quantities."), + shiny::numericInput("max_pairs", "Maximum pairs to analyze", + 100000L, min = 1000L, max = 1000000L, step = 1000L), + shiny::numericInput("permutations", "Mantel permutations", + 999L, min = 99L, max = 9999L), + shiny::p(class = "small-help", + "Changing the matrix types, linkage, matching rule or clustering requires loading again. Display controls on the right update immediately.") + ) + ) + ), + shiny::div(class = "sidebar-footer", + shiny::actionButton("visualize", "Load and analyze uploaded files", + class = "btn-primary"), + shiny::uiOutput("sidebar_status") + ) + ) ), shiny::mainPanel(width = 9, shiny::div(class = "main-panel", + shiny::div(class = "results-toolbar", + shiny::div(class = "toolbar-field", + shiny::selectInput("palette", "Colors", + choices = c("RdBu", "BrBG", "PiYG", "PRGn", "PuOr", "RdYlBu", + "Viridis", "YlOrRd", "Blues", "Greens", "Greys"), + selected = "RdBu") + ), + shiny::div(class = "toolbar-field", + shiny::selectInput("metadata_column", "Annotation", + choices = c("None" = "")) + ), + shiny::div(class = "toolbar-field control-checkbox", + shiny::checkboxInput("show_numbers", "Show cell values", value = FALSE) + ), + shiny::conditionalPanel( + condition = "input.results_tab === 'Cluster comparison'", + shiny::div(class = "toolbar-field contextual", + shiny::numericInput("cluster_k", "Clusters (k)", + 3L, min = 2L, max = 100L) + ) + ), + shiny::conditionalPanel( + condition = "input.results_tab === 'Overview'", + shiny::div(class = "toolbar-field control-checkbox", + shiny::actionButton("run_mantel", "Run Mantel test", + class = "btn-default btn-sm") + ) + ), + shiny::tags$details(class = "toolbar-more", + shiny::tags$summary("Display options"), + shiny::div(class = "toolbar-extra", + shiny::div(class = "toolbar-field control-checkbox", + shiny::checkboxInput("log_scale", "Log(1+x) color scaling", + value = FALSE) + ), + shiny::div(class = "toolbar-field control-checkbox", + shiny::checkboxInput("zoom_enabled", "Zoom into large matrices", + value = FALSE) + ), + shiny::conditionalPanel( + condition = "input.zoom_enabled", + shiny::div(class = "toolbar-field", + shiny::numericInput("zoom_start", "First isolate", + 1L, min = 1L, step = 1L) + ), + shiny::div(class = "toolbar-field", + shiny::numericInput("zoom_size", "Number of isolates", + 300L, min = 10L, max = 1000L, step = 50L) + ) + ) + ) + ), + shiny::div(class = "toolbar-status", + shiny::uiOutput("active_analysis") + ) + ), + shiny::div(class = "results-shell", shiny::tabsetPanel(id = "results_tab", shiny::tabPanel("Overview", manir_guide( @@ -180,7 +230,9 @@ ui <- shiny::fluidPage( "Each dot is one distinct, unordered isolate pair. Its X position is the pair's value in matrix 1 and its Y position is the value for the same pair in matrix 2. Neither the diagonal nor mirrored duplicates are counted.", "An upward pattern suggests positive association, while points far from the main pattern merit closer inspection. Different units are allowed here: compare ranks or correlations, not the raw distance from a one-to-one line. Pairwise observations share isolates, so they are not statistically independent."), shiny::uiOutput("pairwise_intro"), - shiny::plotOutput("scatter", height = "520px"), + shiny::div(class = "plot-frame", + shiny::plotOutput("scatter", height = "100%") + ), shiny::h4("Pairs with the largest rank differences"), shiny::p(class = "small-help", "These are exploratory discrepancies in the relative ordering of pairs, not statistically significant outliers. A rank gap near 0 means the pair has a similar position among all evaluated pairs in both matrices. Orange rings mark up to five of these pairs in the scatterplot."), @@ -224,7 +276,9 @@ ui <- shiny::fluidPage( shiny::downloadButton("download_settings", "Analysis settings (text)") ) ) + ) ) ) ) + ) ) From bf6c50f443e723abcc8643a4c3d1ee6aae48332d Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:58:02 +0200 Subject: [PATCH 095/134] ui: size all matrix plots to available result viewport and show loaded-data status --- server.R | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/server.R b/server.R index 219d59b..c0044b3 100644 --- a/server.R +++ b/server.R @@ -145,6 +145,18 @@ server <- function(input, output, session) { }) } loaded <- shiny::reactiveVal(NULL) + output$sidebar_status <- shiny::renderUI({ + d <- loaded() + if (is.null(d)) + return(shiny::span(class = "load-status", + "Choose the example or upload matrices to begin.")) + shiny::span(class = "load-status", + sprintf("Loaded: %s | %s isolates%s", d$source, + format(nrow(d$first), big.mark = ","), + if (is.null(d$second)) "" else + sprintf(" | %s in matrix 2", + format(nrow(d$second), big.mark = ",")))) + }) shiny::observeEvent(input$visualize, { loaded(analyze_input(example = FALSE)) }) @@ -348,13 +360,16 @@ server <- function(input, output, session) { m <- source() size <- if (combined || is_difference) nrow(m$first) else nrow(m) if (size <= 300L) - plotly::plotlyOutput(paste0(prefix, "_interactive"), - width = "100%", height = "750px") + shiny::div(class = "plot-frame", + plotly::plotlyOutput(paste0(prefix, "_interactive"), + width = "100%", height = "100%")) else shiny::tagList( - shiny::p("Large-matrix raster preview. Click a cell to inspect its exact original value."), - shiny::plotOutput(paste0(prefix, "_raster"), - width = "100%", height = "850px", - click = paste0(prefix, "_click")) + shiny::p(class = "small-help", + "Representative raster preview. Click a cell for its exact original value. Use Display options to zoom."), + shiny::div(class = "plot-frame", + shiny::plotOutput(paste0(prefix, "_raster"), + width = "100%", height = "100%", + click = paste0(prefix, "_click"))) ) }) output[[paste0(prefix, "_interactive")]] <- plotly::renderPlotly({ From c32097c3abe148401e413ec9353afd0796048cc4 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:58:42 +0200 Subject: [PATCH 096/134] test: confirm workspace controls remain unique and independently scrollable --- tests/run_tests.R | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/run_tests.R b/tests/run_tests.R index 0195ecd..b7fbb04 100644 --- a/tests/run_tests.R +++ b/tests/run_tests.R @@ -298,6 +298,26 @@ test("metadata colors keep their meaning across both matrix orders", { logical(1L)))) }) +test("workspace separates scrolling inputs from persistent live controls", { + source("ui.R", local = TRUE) + html <- htmltools::renderTags(ui)$html + for (expected in c("workspace", "control-sidebar", "sidebar-scroll", + "sidebar-footer", "results-toolbar", "results-shell", + "Display options", "workspace.css")) { + stopifnot(grepl(expected, html, fixed = TRUE)) + } + # Repeated Shiny input IDs would lead to controls updating the wrong value. + for (id in c("palette", "metadata_column", "show_numbers", "cluster_k", + "zoom_enabled", "visualize", "load_example")) { + found <- gregexpr(paste0('id="', id, '"'), html, fixed = TRUE)[[1L]] + stopifnot(length(found) == 1L, found[1L] != -1L) + } + css <- paste(readLines("www/workspace.css", warn = FALSE), collapse = "\n") + stopifnot(grepl("overflow-y: auto", css, fixed = TRUE), + grepl("max-width: 991px", css, fixed = TRUE), + grepl(".plot-frame", css, fixed = TRUE)) +}) + test("every result tab includes contextual interpretation guidance", { source("ui.R", local = TRUE) view <- htmltools::renderTags(ui)$html From 1a9a0b79f40b35e40964065f466384ba5e051c6b Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:58:45 +0200 Subject: [PATCH 097/134] docs: explain persistent display toolbar and independent result scrolling --- README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/README.md b/README.md index d79f7b9..63a36cd 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,27 @@ Click **Download example XLSX** to obtain a workbook with `ANI`, `MALDI`, `examples/`. To upload the workbook yourself, select ANI as the first sheet, MALDI as the second and metadata as the annotation sheet. +## Workspace layout + +On a desktop window, MAniR keeps the analysis results and control sidebar in +**separately scrollable panes**. The lower-left **Load and analyze uploaded +files** button stays visible when you scroll through the upload options. +The right-hand toolbar remains visible when you scroll through a result. + +Use the right-hand **Colors**, **Annotation**, and **Show cell values** controls +for instant plot changes without re-importing the dataset. **Display options** +contains log color scaling and region zoom for large matrices. The **Clusters +(k)** control appears in the Cluster comparison tab; **Run Mantel test** +appears in Overview. Matrix type, clustering linkage and sample matching are +load-time analysis settings and remain under the left-hand **Analysis settings** +section. Changes to those settings take effect after clicking **Load and +analyze uploaded files**. Help text is collapsed to one line above plots so the +visualization is visible immediately; expand it for more detailed +interpretation. + +On small screens or short windows, MAniR switches to a normal scrolling page +rather than forcing two narrow, separately scrolling panes. + ## Input formats - **XLSX / XLSM:** one matrix per worksheet, with sample IDs in the first row and first column. Optional second matrix and metadata sheets may be selected from the same workbook. A second workbook is also supported. From 11ef1418bb6f40a7ad1635f7c4997dc9a711192a Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 15:58:47 +0200 Subject: [PATCH 098/134] docs: record desktop and responsive layout improvements --- docs/UPGRADE_WORKLOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/UPGRADE_WORKLOG.md b/docs/UPGRADE_WORKLOG.md index f5bd098..a3d9f96 100644 --- a/docs/UPGRADE_WORKLOG.md +++ b/docs/UPGRADE_WORKLOG.md @@ -78,3 +78,10 @@ these checks pass. The arXiv manuscript is outside this work scope. matching ANI- and MALDI-like matrices and metadata. The upgraded interface offers a one-click loader and an XLSX download; numerical and Shiny tests cover both the demo and switching back to user uploads. + +- Reorganized Shiny into a desktop split workspace with independently scrolling + upload options and results. Moved live palette, metadata, cell labels and + context-sensitive statistical controls to a persistent results toolbar. + Upload action stays visible in a fixed sidebar footer, interpretation text + starts collapsed, plots size to viewport and narrow windows fall back to + normal scrolling. Added UI structure regression checks. From ee7f37ce6fb87c0b7342079dec35aa59f14022a9 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 16:00:23 +0200 Subject: [PATCH 099/134] test: inspect hoisted Shiny stylesheet in HTML head and report missing UI components --- tests/run_tests.R | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/tests/run_tests.R b/tests/run_tests.R index b7fbb04..6db10a4 100644 --- a/tests/run_tests.R +++ b/tests/run_tests.R @@ -300,12 +300,16 @@ test("metadata colors keep their meaning across both matrix orders", { test("workspace separates scrolling inputs from persistent live controls", { source("ui.R", local = TRUE) - html <- htmltools::renderTags(ui)$html + rendered <- htmltools::renderTags(ui) + html <- rendered$html for (expected in c("workspace", "control-sidebar", "sidebar-scroll", "sidebar-footer", "results-toolbar", "results-shell", - "Display options", "workspace.css")) { - stopifnot(grepl(expected, html, fixed = TRUE)) + "Display options")) { + if (!grepl(expected, html, fixed = TRUE)) + stop("Missing expected workspace element: ", expected) } + # htmltools hoists stylesheets from the body into the document head. + stopifnot(grepl("workspace.css", rendered$head, fixed = TRUE)) # Repeated Shiny input IDs would lead to controls updating the wrong value. for (id in c("palette", "metadata_column", "show_numbers", "cluster_k", "zoom_enabled", "visualize", "load_example")) { From 159efa76d51eef04e014939a3249eabee6634ec1 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 16:03:00 +0200 Subject: [PATCH 100/134] ui: group five matrix views under Heatmaps and show only controls relevant to the active result --- ui.R | 141 ++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 82 insertions(+), 59 deletions(-) diff --git a/ui.R b/ui.R index d14514f..94a6cc6 100644 --- a/ui.R +++ b/ui.R @@ -106,8 +106,6 @@ ui <- shiny::fluidPage( "Same measurement and units in both matrices", value = FALSE), shiny::p(class = "small-help", "Only enable raw differences when measurements are directly comparable. ANI percentages and MALDI scores are different quantities."), - shiny::numericInput("max_pairs", "Maximum pairs to analyze", - 100000L, min = 1000L, max = 1000000L, step = 1000L), shiny::numericInput("permutations", "Mantel permutations", 999L, min = 99L, max = 9999L), shiny::p(class = "small-help", @@ -125,18 +123,32 @@ ui <- shiny::fluidPage( shiny::mainPanel(width = 9, shiny::div(class = "main-panel", shiny::div(class = "results-toolbar", - shiny::div(class = "toolbar-field", - shiny::selectInput("palette", "Colors", - choices = c("RdBu", "BrBG", "PiYG", "PRGn", "PuOr", "RdYlBu", - "Viridis", "YlOrRd", "Blues", "Greens", "Greys"), - selected = "RdBu") + shiny::conditionalPanel( + condition = "input.results_tab === 'Heatmaps'", + shiny::div(class = "toolbar-field", + shiny::selectInput("palette", "Colors", + choices = c("RdBu", "BrBG", "PiYG", "PRGn", "PuOr", "RdYlBu", + "Viridis", "YlOrRd", "Blues", "Greens", "Greys"), + selected = "RdBu") + ), + ), shiny::div(class = "toolbar-field", shiny::selectInput("metadata_column", "Annotation", choices = c("None" = "")) ), - shiny::div(class = "toolbar-field control-checkbox", - shiny::checkboxInput("show_numbers", "Show cell values", value = FALSE) + shiny::conditionalPanel( + condition = "input.results_tab === 'Heatmaps'", + shiny::div(class = "toolbar-field control-checkbox", + shiny::checkboxInput("show_numbers", "Show cell values", value = FALSE) + ) + ), + shiny::conditionalPanel( + condition = "input.results_tab === 'Pairwise comparison'", + shiny::div(class = "toolbar-field contextual pair-limit", + shiny::numericInput("max_pairs", "Max pairs", + 100000L, min = 1000L, max = 1000000L, step = 1000L) + ) ), shiny::conditionalPanel( condition = "input.results_tab === 'Cluster comparison'", @@ -152,29 +164,33 @@ ui <- shiny::fluidPage( class = "btn-default btn-sm") ) ), - shiny::tags$details(class = "toolbar-more", - shiny::tags$summary("Display options"), - shiny::div(class = "toolbar-extra", - shiny::div(class = "toolbar-field control-checkbox", - shiny::checkboxInput("log_scale", "Log(1+x) color scaling", - value = FALSE) - ), - shiny::div(class = "toolbar-field control-checkbox", - shiny::checkboxInput("zoom_enabled", "Zoom into large matrices", - value = FALSE) - ), - shiny::conditionalPanel( - condition = "input.zoom_enabled", - shiny::div(class = "toolbar-field", - shiny::numericInput("zoom_start", "First isolate", - 1L, min = 1L, step = 1L) + shiny::conditionalPanel( + condition = "input.results_tab === 'Heatmaps'", + shiny::tags$details(class = "toolbar-more", + shiny::tags$summary("Display options"), + shiny::div(class = "toolbar-extra", + shiny::div(class = "toolbar-field control-checkbox", + shiny::checkboxInput("log_scale", "Log(1+x) color scaling", + value = FALSE) + ), + shiny::div(class = "toolbar-field control-checkbox", + shiny::checkboxInput("zoom_enabled", "Zoom into large matrices", + value = FALSE) ), - shiny::div(class = "toolbar-field", - shiny::numericInput("zoom_size", "Number of isolates", - 300L, min = 10L, max = 1000L, step = 50L) + shiny::conditionalPanel( + condition = "input.zoom_enabled", + shiny::div(class = "toolbar-field", + shiny::numericInput("zoom_start", "First isolate", + 1L, min = 1L, step = 1L) + ), + shiny::div(class = "toolbar-field", + shiny::numericInput("zoom_size", "Number of isolates", + 300L, min = 10L, max = 1000L, step = 50L) + ) ) ) - ) + ), + ), shiny::div(class = "toolbar-status", shiny::uiOutput("active_analysis") @@ -195,36 +211,43 @@ ui <- shiny::fluidPage( shiny::p(class = "small-help", "Select a metadata category in the sidebar to describe how the first matrix differs within and between those groups. These are descriptive pairwise summaries, not an independent-sample test."), shiny::tableOutput("replicate_table")), - shiny::tabPanel("Matrix 1", - manir_guide( - "Every cell compares the isolate named on its row with the isolate named on its column. The diagonal compares an isolate with itself. Larger values mean more similar samples only for similarity and positive-correlation measurements.", - "Clustering puts isolates with related measurements next to each other; it does not change the values. The color bar shows a 0–1 display scale based on the data range, not necessarily the original numerical units. Hover over a cell for its original value. Metadata colors identify categories, not measured similarity."), - shiny::uiOutput("plot1_intro"), shiny::uiOutput("plot1_legend"), - shiny::uiOutput("plot1_ui"), shiny::verbatimTextOutput("plot1_cell")), - shiny::tabPanel("Matrix 2", - manir_guide( - "Read this matrix in the same way as matrix 1. Its clustering order can differ, and the display colors are scaled to this matrix's own numerical range.", - "Equal colors across the separate Matrix 1 and Matrix 2 plots do not imply equal biological measurements. Hover over any cell for the exact original value. Choose the same metadata track to see whether visual clusters correspond to the same sample categories."), - shiny::uiOutput("plot2_intro"), shiny::uiOutput("plot2_legend"), - shiny::uiOutput("plot2_ui"), shiny::verbatimTextOutput("plot2_cell")), - shiny::tabPanel("Combined (order 1)", - manir_guide( - "This split heatmap places matrix 1 above the diagonal and matrix 2 below it. Both triangles use the ordering calculated from matrix 1, so the same pair can be inspected in both methods.", - "Each triangle is normalized independently for display. Comparing the position of clusters is meaningful; directly comparing two color shades or subtracting their display values is not. The diagonal is displayed with a neutral midpoint color because it separates the two methods, not because its original measurements equal 0.5."), - shiny::uiOutput("combined1_intro"), shiny::uiOutput("combined1_legend"), - shiny::uiOutput("combined1_ui"), shiny::verbatimTextOutput("combined1_cell")), - shiny::tabPanel("Combined (order 2)", - manir_guide( - "The same split comparison, now ordered using matrix 2. The upper triangle is matrix 2 and the lower triangle is matrix 1.", - "Switch between both combined tabs to see how each method's ordering groups isolates. Triangle colors remain independently scaled and the diagonal is a visual separator. Inspect original values in the cell hover rather than using color as a shared measurement."), - shiny::uiOutput("combined2_intro"), shiny::uiOutput("combined2_legend"), - shiny::uiOutput("combined2_ui"), shiny::verbatimTextOutput("combined2_cell")), - shiny::tabPanel("Difference", - manir_guide( - "This tab calculates matrix 1 minus matrix 2 for each shared isolate pair. Zero is the midpoint of the diverging color scale; opposite sides represent opposite signs.", - "A difference is interpretable only when both matrices measure the same quantity in the same units and have compatible preprocessing. Two different measurement types, such as ANI percentages and MALDI spectral scores, should be examined with rank comparisons instead."), - shiny::uiOutput("difference_explainer"), shiny::uiOutput("difference_ui"), - shiny::verbatimTextOutput("difference_cell")), + shiny::tabPanel("Heatmaps", + shiny::div(class = "matrix-nav", + shiny::tabsetPanel(id = "matrix_view", type = "pills", + shiny::tabPanel("Matrix 1", + manir_guide( + "Every cell compares the isolate named on its row with the isolate named on its column. The diagonal compares an isolate with itself. Larger values mean more similar samples only for similarity and positive-correlation measurements.", + "Clustering puts isolates with related measurements next to each other; it does not change the values. The color bar shows a 0–1 display scale based on the data range, not necessarily the original numerical units. Hover over a cell for its original value. Metadata colors identify categories, not measured similarity."), + shiny::uiOutput("plot1_intro"), shiny::uiOutput("plot1_legend"), + shiny::uiOutput("plot1_ui"), shiny::verbatimTextOutput("plot1_cell")), + shiny::tabPanel("Matrix 2", + manir_guide( + "Read this matrix in the same way as matrix 1. Its clustering order can differ, and the display colors are scaled to this matrix's own numerical range.", + "Equal colors across the separate Matrix 1 and Matrix 2 plots do not imply equal biological measurements. Hover over any cell for the exact original value. Choose the same metadata track to see whether visual clusters correspond to the same sample categories."), + shiny::uiOutput("plot2_intro"), shiny::uiOutput("plot2_legend"), + shiny::uiOutput("plot2_ui"), shiny::verbatimTextOutput("plot2_cell")), + shiny::tabPanel("Combined (order 1)", + manir_guide( + "This split heatmap places matrix 1 above the diagonal and matrix 2 below it. Both triangles use the ordering calculated from matrix 1, so the same pair can be inspected in both methods.", + "Each triangle is normalized independently for display. Comparing the position of clusters is meaningful; directly comparing two color shades or subtracting their display values is not. The diagonal is displayed with a neutral midpoint color because it separates the two methods, not because its original measurements equal 0.5."), + shiny::uiOutput("combined1_intro"), shiny::uiOutput("combined1_legend"), + shiny::uiOutput("combined1_ui"), shiny::verbatimTextOutput("combined1_cell")), + shiny::tabPanel("Combined (order 2)", + manir_guide( + "The same split comparison, now ordered using matrix 2. The upper triangle is matrix 2 and the lower triangle is matrix 1.", + "Switch between both combined tabs to see how each method's ordering groups isolates. Triangle colors remain independently scaled and the diagonal is a visual separator. Inspect original values in the cell hover rather than using color as a shared measurement."), + shiny::uiOutput("combined2_intro"), shiny::uiOutput("combined2_legend"), + shiny::uiOutput("combined2_ui"), shiny::verbatimTextOutput("combined2_cell")), + shiny::tabPanel("Difference", + manir_guide( + "This tab calculates matrix 1 minus matrix 2 for each shared isolate pair. Zero is the midpoint of the diverging color scale; opposite sides represent opposite signs.", + "A difference is interpretable only when both matrices measure the same quantity in the same units and have compatible preprocessing. Two different measurement types, such as ANI percentages and MALDI spectral scores, should be examined with rank comparisons instead."), + shiny::uiOutput("difference_explainer"), shiny::uiOutput("difference_ui"), + shiny::verbatimTextOutput("difference_cell")), + + ) + ) + ), shiny::tabPanel("Pairwise comparison", manir_guide( "Each dot is one distinct, unordered isolate pair. Its X position is the pair's value in matrix 1 and its Y position is the value for the same pair in matrix 2. Neither the diagonal nor mirrored duplicates are counted.", From 9f7c798cbb3c121c0e4f90c132ae20c6ea6f02a5 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 16:03:11 +0200 Subject: [PATCH 101/134] fix: close grouped heatmap tabs without a trailing empty argument --- ui.R | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ui.R b/ui.R index 94a6cc6..640b37a 100644 --- a/ui.R +++ b/ui.R @@ -243,8 +243,7 @@ ui <- shiny::fluidPage( "This tab calculates matrix 1 minus matrix 2 for each shared isolate pair. Zero is the midpoint of the diverging color scale; opposite sides represent opposite signs.", "A difference is interpretable only when both matrices measure the same quantity in the same units and have compatible preprocessing. Two different measurement types, such as ANI percentages and MALDI spectral scores, should be examined with rank comparisons instead."), shiny::uiOutput("difference_explainer"), shiny::uiOutput("difference_ui"), - shiny::verbatimTextOutput("difference_cell")), - + shiny::verbatimTextOutput("difference_cell")) ) ) ), From 0c18bf502779c258413ccb19523c962d12c25758 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 16:03:24 +0200 Subject: [PATCH 102/134] style: add compact subnavigation for five heatmaps and context-sensitive toolbar widths --- www/workspace.css | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/www/workspace.css b/www/workspace.css index b541375..206b9f4 100644 --- a/www/workspace.css +++ b/www/workspace.css @@ -115,6 +115,30 @@ body { background: var(--manir-bg); color: var(--manir-ink); } padding: 8px 20px 24px; } .results-shell .tab-pane { max-width: 100%; } +/* Five matrix views share a single primary tab to keep navigation short. */ +.results-shell .matrix-nav > .tabbable { display: block; } +.results-shell .matrix-nav .nav-pills { + display: flex; flex-wrap: nowrap; gap: 3px; overflow-x: auto; + border-bottom: 1px solid var(--manir-border); padding: 0 0 9px; + margin-bottom: 8px; scrollbar-width: thin; +} +.results-shell .matrix-nav .nav-pills > li { + float: none; flex: 0 0 auto; margin: 0; +} +.results-shell .matrix-nav .nav-pills > li > a { + border: 1px solid var(--manir-border); border-radius: 6px; + background: #f8fbfc; color: #3c6076; font-size: 12px; + padding: 7px 11px; margin: 0; +} +.results-shell .matrix-nav .nav-pills > li.active > a { + border-color: #bfd6e1; background: #e9f4f9; color: #185c79; font-weight: 650; +} +.results-shell .matrix-nav .tab-content { + overflow: visible; flex: none; min-height: auto; padding: 0; +} +.matrix-nav .plot-frame { height: clamp(395px, calc(100dvh - 355px), 850px); } +.pair-limit .shiny-input-container { width: 150px !important; } + .results-shell .reading-guide { background: #f3f8fb; border: 1px solid #dae7ee; border-left: 3px solid #52859e; border-radius: 5px; @@ -156,7 +180,7 @@ body { background: var(--manir-bg); color: var(--manir-ink); } .workspace .main-panel { overflow: visible; } .results-shell > .tabbable { display: block; } .results-shell .tab-content { overflow: visible; } - .plot-frame { height: min(68vh, 700px); min-height: 380px; } + .plot-frame, .matrix-nav .plot-frame { height: min(68vh, 700px); min-height: 380px; } .toolbar-status { text-align: left; max-width: none; } } @media (max-width: 600px) { From cc733d09e37fc597d56b0b8266fa18a5feadc6fc Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 16:03:47 +0200 Subject: [PATCH 103/134] fix: avoid empty trailing arguments in context-specific Shiny toolbar panels --- ui.R | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/ui.R b/ui.R index 640b37a..3aacc41 100644 --- a/ui.R +++ b/ui.R @@ -130,8 +130,7 @@ ui <- shiny::fluidPage( choices = c("RdBu", "BrBG", "PiYG", "PRGn", "PuOr", "RdYlBu", "Viridis", "YlOrRd", "Blues", "Greens", "Greys"), selected = "RdBu") - ), - + ) ), shiny::div(class = "toolbar-field", shiny::selectInput("metadata_column", "Annotation", @@ -189,8 +188,7 @@ ui <- shiny::fluidPage( ) ) ) - ), - + ) ), shiny::div(class = "toolbar-status", shiny::uiOutput("active_analysis") From 47867b20f4ecb92f05f817d5c991197c1bfe7d8d Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 16:04:04 +0200 Subject: [PATCH 104/134] ui: jump directly to the first heatmap after an example or file load --- server.R | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/server.R b/server.R index c0044b3..0da3678 100644 --- a/server.R +++ b/server.R @@ -157,8 +157,18 @@ server <- function(input, output, session) { sprintf(" | %s in matrix 2", format(nrow(d$second), big.mark = ",")))) }) + # After loading, open the result rather than leaving the researcher + # at an empty Overview tab. Display-only controls then update it in place. + show_loaded_heatmap <- function() { + shiny::updateTabsetPanel(session, "results_tab", selected = "Heatmaps") + shiny::updateTabsetPanel(session, "matrix_view", selected = "Matrix 1") + } shiny::observeEvent(input$visualize, { - loaded(analyze_input(example = FALSE)) + result <- analyze_input(example = FALSE) + if (!is.null(result)) { + loaded(result) + show_loaded_heatmap() + } }) shiny::observeEvent(input$load_example, { shiny::updateCheckboxInput(session, "comparable_scales", value = FALSE) @@ -168,7 +178,11 @@ server <- function(input, output, session) { shiny::updateCheckboxInput(session, "cluster", value = TRUE) shiny::updateSelectInput(session, "linkage", selected = "complete") shiny::updateNumericInput(session, "cluster_k", value = 3) - loaded(analyze_input(example = TRUE)) + result <- analyze_input(example = TRUE) + if (!is.null(result)) { + loaded(result) + show_loaded_heatmap() + } }) output$download_example <- shiny::downloadHandler( filename = function() "MAniR_synthetic_example.xlsx", From 98e9a57a6c38d267ac0b915d9374c7a71444b330 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 16:04:31 +0200 Subject: [PATCH 105/134] test: verify nested matrix navigation in responsive workspace --- tests/run_tests.R | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/run_tests.R b/tests/run_tests.R index 6db10a4..43cc3b4 100644 --- a/tests/run_tests.R +++ b/tests/run_tests.R @@ -308,6 +308,9 @@ test("workspace separates scrolling inputs from persistent live controls", { if (!grepl(expected, html, fixed = TRUE)) stop("Missing expected workspace element: ", expected) } + # The primary navigation keeps its five matrix views in a single tab. + stopifnot(grepl('id="matrix_view"', html, fixed = TRUE), + grepl("Heatmaps", html, fixed = TRUE)) # htmltools hoists stylesheets from the body into the document head. stopifnot(grepl("workspace.css", rendered$head, fixed = TRUE)) # Repeated Shiny input IDs would lead to controls updating the wrong value. From 37a464b6111ed0d7d5e4dcfbb77d390e2e098438 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 16:04:34 +0200 Subject: [PATCH 106/134] docs: describe grouped heatmap navigation and context-specific controls --- README.md | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 63a36cd..1c09b90 100644 --- a/README.md +++ b/README.md @@ -54,11 +54,18 @@ On a desktop window, MAniR keeps the analysis results and control sidebar in files** button stays visible when you scroll through the upload options. The right-hand toolbar remains visible when you scroll through a result. +After you load data, MAniR opens **Heatmaps → Matrix 1** automatically. +The primary navigation groups all five heatmap views under **Heatmaps**, with +a compact secondary menu for Matrix 1, Matrix 2, both combined orderings +and Difference. Other tabs are Overview, Pairwise comparison, Cluster +comparison, Metadata and Export. + Use the right-hand **Colors**, **Annotation**, and **Show cell values** controls -for instant plot changes without re-importing the dataset. **Display options** -contains log color scaling and region zoom for large matrices. The **Clusters -(k)** control appears in the Cluster comparison tab; **Run Mantel test** -appears in Overview. Matrix type, clustering linkage and sample matching are +for instant plot changes without re-importing the dataset. The palette and +cell-value options appear only in Heatmaps. **Display options** contains log +color scaling and region zoom for large matrices. The **Clusters (k)** control +appears in Cluster comparison, the **Max pairs** control appears in Pairwise +comparison, and **Run Mantel test** appears in Overview. Matrix type, clustering linkage and sample matching are load-time analysis settings and remain under the left-hand **Analysis settings** section. Changes to those settings take effect after clicking **Load and analyze uploaded files**. Help text is collapsed to one line above plots so the @@ -100,7 +107,7 @@ To bound memory use, the pairwise tool examines up to 100,000 distinct pairs by The Mantel test permutes isolate labels jointly in one matrix. It reports a two-sided permutation p-value using `(extreme + 1) / (permutations + 1)`. The current implementation requires complete matched matrices with at most 400 isolates. The Mantel statistic measures matrix association; it does not establish that two typing methods produce equivalent classifications. -Cluster comparison creates average-linkage group assignments on shared isolates and reports the adjusted Rand index and the directional adjusted Wallace coefficients. The number of clusters is user-selectable and both matrices must have at most 2,000 shared isolates. Pairwise similarities and clustering distances are kept conceptually distinct. The metadata group summary describes within-group versus between-group pairwise values, which may be helpful for MALDI repeatability or batch studies. That descriptive group comparison is not a formal batch-effect test. +Cluster comparison creates the selected-linkage group assignments on shared isolates and reports the adjusted Rand index and the directional adjusted Wallace coefficients. The number of clusters is user-selectable and both matrices must have at most 2,000 shared isolates. Pairwise similarities and clustering distances are kept conceptually distinct. The metadata group summary describes within-group versus between-group pairwise values, which may be helpful for MALDI repeatability or batch studies. That descriptive group comparison is not a formal batch-effect test. MAniR accepts **precomputed** MALDI-TOF, ANI, dDDH and other pairwise results. Raw peak detection, spectral calibration and alignment remain the responsibility of specialized preprocessing software. Feeding differently normalized matrices into MAniR does not make the underlying measurement scales interchangeable. From d3f5b6711903c123e2ecb5b1cac02edb135016d2 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 16:04:37 +0200 Subject: [PATCH 107/134] docs: record grouped results tabs and automatic first plot --- docs/UPGRADE_WORKLOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/UPGRADE_WORKLOG.md b/docs/UPGRADE_WORKLOG.md index a3d9f96..f6f3085 100644 --- a/docs/UPGRADE_WORKLOG.md +++ b/docs/UPGRADE_WORKLOG.md @@ -85,3 +85,8 @@ these checks pass. The arXiv manuscript is outside this work scope. Upload action stays visible in a fixed sidebar footer, interpretation text starts collapsed, plots size to viewport and narrow windows fall back to normal scrolling. Added UI structure regression checks. + +- Grouped five heatmap views under a single primary Heatmaps tab and added + context-sensitive controls: color and zoom only for heatmaps, pair limits + only for pairwise analysis, and k only for cluster comparison. Successful + loading now opens Matrix 1 automatically, without page scrolling. From 28922782e8eae73fccffe60d27661cd95b5d56a1 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Mon, 28 Sep 2026 16:05:51 +0200 Subject: [PATCH 108/134] docs: align example, zoom and pair-limit instructions with compact interface --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 1c09b90..715884e 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ For scripted validation, run `Rscript tests/run_tests.R`. For repeatable perform ## Built-in example -Click **Load example dataset** in the application sidebar to explore MAniR +Click **Load example** in the application sidebar to explore MAniR without uploading anything. The example contains 12 **fictional** isolates in three groups, with two precomputed symmetric similarity matrices: @@ -42,7 +42,7 @@ scales are different, so leave "Both matrices use comparable numerical units" unchecked. All entries are illustrative and must not be used for biological inference or cited as measured data. -Click **Download example XLSX** to obtain a workbook with `ANI`, `MALDI`, +Open **About the example / download** and click **Example workbook (.xlsx)** to obtain a workbook with `ANI`, `MALDI`, `metadata` and `README` sheets. The equivalent editable CSV files are in `examples/`. To upload the workbook yourself, select ANI as the first sheet, MALDI as the second and metadata as the annotation sheet. @@ -93,7 +93,7 @@ For two matrices, choose whether the isolate lists must match exactly or whether Smaller matrices (300 isolates or fewer) are displayed as interactive Plotly heatmaps with exact hover values. Number overlays are available for at most 70 isolates. For larger matrices, the default raster viewer displays up to 512 representative rows and columns rather than creating a browser annotation for every cell. This is a **representative overview**, not an aggregated matrix or a numerical substitute for the source data. Click a displayed cell to inspect the exact underlying matrix entry. -Enable "Zoom into a region" and enter the first isolate index and the region size to inspect adjacent samples. When a region exceeds 512 isolates, it is itself reduced to a representative 512-by-512 display; choose a smaller region to inspect every cell. +Open **Display options** in the Heatmaps toolbar, enable **Zoom into large matrices**, and enter the first isolate index and the region size to inspect adjacent samples. When a region exceeds 512 isolates, it is itself reduced to a representative 512-by-512 display; choose a smaller region to inspect every cell. The combined views use the first matrix above the diagonal and the second below the diagonal. One view uses the sample ordering from matrix 1; the other uses the ordering from matrix 2. Because ANI percentages and MALDI similarities can have different units, **each triangle is display-scaled independently**. Hover and click inspections, pairwise exports and RDS downloads retain the original numeric values. Log display scaling uses log(1+x) on nonnegative values (including a zero diagonal); negative correlations cannot be logarithmically displayed. @@ -103,7 +103,7 @@ Clustering defaults to complete-linkage hierarchical clustering, matching the or The pairwise comparison tab plots values from corresponding unordered isolate pairs, excluding the diagonal. It reports Pearson and Spearman correlation coefficients. If the matrices truly use comparable units and the corresponding checkbox is enabled, it also reports mean absolute and root mean squared differences, a one-to-one reference line and the isolate pairs with the largest absolute differences. Treat these statistics as descriptive; isolate-pair observations are not statistically independent. -To bound memory use, the pairwise tool examines up to 100,000 distinct pairs by default. When the full dataset exceeds this limit, it selects a reproducible random subset (fixed seed 1), discloses the number of evaluated pairs and marks the analysis as sampled. Downloaded pairwise values follow the same selection. Change the pair limit in the sidebar for a larger subset. +To bound memory use, the pairwise tool examines up to 100,000 distinct pairs by default. When the full dataset exceeds this limit, it selects a reproducible random subset (fixed seed 1), discloses the number of evaluated pairs and marks the analysis as sampled. Downloaded pairwise values follow the same selection. Change **Max pairs** in the Pairwise comparison toolbar for a larger subset. The Mantel test permutes isolate labels jointly in one matrix. It reports a two-sided permutation p-value using `(extreme + 1) / (permutations + 1)`. The current implementation requires complete matched matrices with at most 400 isolates. The Mantel statistic measures matrix association; it does not establish that two typing methods produce equivalent classifications. From a4c4c7ef198509f673e92368ccd5ecfa83ca544a Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Tue, 29 Sep 2026 14:09:04 +0200 Subject: [PATCH 109/134] feat: add exact pair inspection, metadata comparisons and reproducible research notes --- R/research_workflows.R | 162 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 R/research_workflows.R diff --git a/R/research_workflows.R b/R/research_workflows.R new file mode 100644 index 0000000..cfa2e9f --- /dev/null +++ b/R/research_workflows.R @@ -0,0 +1,162 @@ +# Researcher-facing summaries. These functions do not depend on Shiny or Plotly. +# They use the original numerical values, never heatmap-normalized colors. + +manir_pair_inspection <- function(first, second = NULL, isolate_1, isolate_2, + metadata = NULL, field = NULL, + comparable = FALSE) { + ids <- colnames(first) + if (length(isolate_1) != 1L || length(isolate_2) != 1L || + is.na(isolate_1) || is.na(isolate_2) || + !isolate_1 %in% ids || !isolate_2 %in% ids || + identical(isolate_1, isolate_2)) + stop("Choose two different isolates present in the first matrix.") + if (!is.null(second) && + (!isolate_1 %in% colnames(second) || !isolate_2 %in% colnames(second))) + stop("Both isolates must be present in the second matrix to compare them.") + value1 <- unname(first[isolate_1, isolate_2]) + value2 <- if (is.null(second)) NA_real_ else + unname(second[isolate_1, isolate_2]) + label1 <- label2 <- NA_character_ + if (!is.null(metadata) && !is.null(field) && length(field) == 1L && + !is.na(field) && nzchar(field) && field %in% names(metadata)) { + label1 <- if (isolate_1 %in% rownames(metadata)) + as.character(metadata[isolate_1, field]) else NA_character_ + label2 <- if (isolate_2 %in% rownames(metadata)) + as.character(metadata[isolate_2, field]) else NA_character_ + } + list(isolate_1 = isolate_1, isolate_2 = isolate_2, + first = value1, second = value2, + difference = if (isTRUE(comparable) && !is.null(second)) + value1 - value2 else NULL, + metadata_field = if (is.null(field)) "" else field, + group_1 = label1, group_2 = label2) +} + +# A descriptive within/between-category summary, computed independently for +# each original matrix. Treat the pairs as non-independent observations. +manir_group_overview <- function(first, second = NULL, metadata, field, + max_pairs = 100000L) { + if (is.null(metadata) || !is.data.frame(metadata) || + length(field) != 1L || is.na(field) || !nzchar(field) || + !field %in% names(metadata)) + stop("Select a metadata column containing sample groups or batches.") + one <- replicate_summary(first, metadata, field, max_pairs = max_pairs) + names(one)[names(one) == "type"] <- "comparison" + one <- data.frame(matrix = "Matrix 1", one, check.names = FALSE) + if (!is.null(second)) { + two <- replicate_summary(second, metadata, field, max_pairs = max_pairs) + names(two)[names(two) == "type"] <- "comparison" + one <- rbind(one, data.frame(matrix = "Matrix 2", two, + check.names = FALSE)) + } + rownames(one) <- NULL + one +} + +manir_directional_association <- function(pairs, kind1 = "similarity", + kind2 = "similarity") { + d <- pairs$data + if (nrow(d) < 3L) + return(list(pearson = NA_real_, spearman = NA_real_, n = nrow(d))) + x <- if (identical(kind1, "distance")) -d$first else d$first + y <- if (identical(kind2, "distance")) -d$second else d$second + valid <- is.finite(x) & is.finite(y) + x <- x[valid]; y <- y[valid] + list(pearson = if (length(x) >= 3L && stats::sd(x) > 0 && + stats::sd(y) > 0) stats::cor(x, y) else NA_real_, + spearman = if (length(unique(x)) > 1L && length(unique(y)) > 1L) + suppressWarnings(stats::cor(x, y, method = "spearman")) + else NA_real_, n = length(x)) +} + +manir_fmt <- function(value) { + if (length(value) != 1L || !is.finite(value)) return("not estimable") + format(signif(value, 4L), trim = TRUE) +} + +# Markdown text export for an editable lab notebook. Only optional, +# already-computed results are included. Expensive clustering/permutation +# analyses are never started by the report download itself. +manir_research_report <- function(dataset, pairs = NULL, group_table = NULL, + group_field = "", cluster = NULL, + comparable = FALSE, + question = "", notes = "", + max_pairs = 100000L) { + example <- identical(dataset$source, "synthetic example") + one <- if (!is.null(dataset$label1)) dataset$label1 else "Matrix 1" + two <- if (!is.null(dataset$label2)) dataset$label2 else "Matrix 2" + lines <- c("# MAniR analysis notes", "", + if (nzchar(trimws(question))) paste("**Research question:**", + trimws(question)) else NULL, + if (example) "**Teaching example: synthetic data, not biological evidence.**" else NULL, + "## Dataset", "", + paste("- Source:", dataset$source), + sprintf("- %s: %d isolates (%s)", one, nrow(dataset$first), + dataset$kind1), + if (!is.null(dataset$second)) + sprintf("- %s: %d isolates (%s)", two, nrow(dataset$second), + dataset$kind2), + sprintf("- Sample matching: %s; clustering linkage: %s", + dataset$matching, dataset$linkage), + if (!is.null(dataset$metadata)) + paste("- Metadata fields:", paste(names(dataset$metadata), + collapse = ", ")), + "") + if (!is.null(pairs)) { + stats <- manir_directional_association(pairs, dataset$kind1, + dataset$kind2) + lines <- c(lines, "## Pairwise relationship", "", + sprintf("- %s of %s unordered pairs evaluated; %s had values in both matrices.", + pairs$evaluated_pairs, + format(pairs$total_pairs, scientific = FALSE), + pairs$valid_pairs), + sprintf("- Direction-adjusted Pearson r: %s", manir_fmt(stats$pearson)), + sprintf("- Direction-adjusted Spearman rho: %s", manir_fmt(stats$spearman)), + if (isTRUE(pairs$sampled)) + sprintf("- Reproducible sample: %s pairs (seed %s; requested limit %s).", + pairs$evaluated_pairs, pairs$seed, max_pairs), + if (isTRUE(comparable)) { + raw <- matrix_agreement(pairs) + c(sprintf("- Mean absolute difference (original units): %s", + manir_fmt(raw$mae)), + sprintf("- Root mean squared difference (original units): %s", + manir_fmt(raw$rmse))) + } else "- Raw differences omitted: measurement equivalence was not confirmed.", + "", + "These are descriptive measurements. Repeated isolate pairs are not independent observations.", + "") + } + if (!is.null(cluster)) { + lines <- c(lines, "## Cluster comparison", "", + sprintf("- Adjusted Rand index: %s", manir_fmt(cluster$ari)), + sprintf("- Adjusted Wallace, matrix 1 to 2: %s", + manir_fmt(cluster$adjusted_wallace_1_to_2)), + sprintf("- Adjusted Wallace, matrix 2 to 1: %s", + manir_fmt(cluster$adjusted_wallace_2_to_1)), + "Cluster labels are arbitrary; agreement is not a measure of typing accuracy.", + "") + } + if (!is.null(group_table) && nrow(group_table)) { + lines <- c(lines, "## Metadata groups", "", + paste("Selected field:", group_field), "", + "| Matrix | Pair category | Pairs | Median | Sampled |", + "| --- | --- | ---: | ---: | --- |", + vapply(seq_len(nrow(group_table)), function(i) { + x <- group_table[i, ] + sprintf("| %s | %s | %s | %s | %s |", + x$matrix, x$comparison, x$pairs, + manir_fmt(x$median), if (isTRUE(x$sampled)) "yes" else "no") + }, character(1L)), + "", + "Group summaries are descriptive. Pairwise values reuse isolates, and batch effects may be confounded.", + "") + } + lines <- c(lines, "## Researcher notes", "", + if (nzchar(trimws(notes))) notes else + "Record what the figures suggest, the limitations, and what you plan to check next.", + "", "## Reproducibility", "", + "- Export the original matrix CSV or RDS files alongside these notes.", + "- Record the selected metadata field, pair limit and version of MAniR.", + "- Figures may use independently normalized colors or raster previews; use original values for inference.") + lines +} From e8500644012d105ed81a221aa866ac6cd111552a Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Tue, 29 Sep 2026 14:09:22 +0200 Subject: [PATCH 110/134] ui: create question-led analysis start screen with five concrete research workflows --- R/research_ui.R | 67 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 R/research_ui.R diff --git a/R/research_ui.R b/R/research_ui.R new file mode 100644 index 0000000..f7eab38 --- /dev/null +++ b/R/research_ui.R @@ -0,0 +1,67 @@ +# Task-oriented start screen. The analysis remains in the original Shiny tabs, +# so researchers can switch between the guided route and all available tools. + +manir_question_card <- function(title, purpose, action_id, action_label, + requirement, next_step) { + shiny::div(class = "question-card", + shiny::div(class = "question-top", + shiny::h4(title), + shiny::span(class = "question-requirement", requirement)), + shiny::p(purpose), + shiny::p(class = "question-next", next_step), + shiny::actionButton(action_id, action_label, class = "btn-primary") + ) +} + +manir_research_start <- function() { + shiny::tagList( + shiny::div(class = "start-hero", + shiny::div(class = "start-kicker", "YOUR ANALYSIS"), + shiny::h3("What do you want to find out?"), + shiny::p("Choose a research question. MAniR opens the relevant analysis with a short explanation of what to look for.") + ), + shiny::uiOutput("research_status"), + shiny::div(class = "question-grid", + manir_question_card( + "Do two methods give similar results?", + "Examine whether pairs with high similarity in one matrix also have high similarity in another.", + "start_agreement", "Compare the methods", + "2 matrices", + "See the association statistics, then inspect the pairwise scatterplot." + ), + manir_question_card( + "Which isolate pairs deserve a closer look?", + "Find pairs that occupy very different positions in two methods and inspect their exact values.", + "start_pairs", "Find unusual pairs", + "2 matrices", + "Select an isolate pair, check both results and review its metadata." + ), + manir_question_card( + "Do both methods make the same groups?", + "Compare independently calculated clusters and identify isolates whose assignments differ.", + "start_cluster", "Compare clusters", + "2 matrices", + "Choose the number of clusters, then read the overlap table." + ), + manir_question_card( + "Are known groups or batches reflected in the data?", + "Compare within-group and between-group pairwise measurements using sample metadata.", + "start_groups", "Explore my groups", + "1 matrix + metadata", + "Select a group or batch field and examine both matrices separately." + ), + manir_question_card( + "I want to inspect my matrix.", + "Open the heatmaps, explore a region and check the exact value for a pair of isolates.", + "start_heatmap", "Explore heatmaps", + "1 matrix", + "Start with the first matrix; switch to the combined view if both are loaded." + ) + ), + shiny::div(class = "start-footer", + shiny::strong("Keep a record of your analysis"), + shiny::p("When you have explored the results, use Export to save an editable research summary, the original data and your figures."), + shiny::actionButton("start_export", "Open exports", class = "btn-default") + ) + ) +} From 38b3deecce547cf184768377b028848c8b51f678 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Tue, 29 Sep 2026 14:09:33 +0200 Subject: [PATCH 111/134] build: load task-based research UI and pure research summary modules --- app.R | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app.R b/app.R index 7218bb3..8622ec4 100644 --- a/app.R +++ b/app.R @@ -12,8 +12,10 @@ if (!is.finite(max_upload_mb) || max_upload_mb < 1) options(shiny.maxRequestSize = max_upload_mb * 1024^2) source("R/matrix_io.R", local = TRUE) source("R/matrix_analysis.R", local = TRUE) +source("R/research_workflows.R", local = TRUE) source("R/matrix_plot.R", local = TRUE) source("R/example_data.R", local = TRUE) +source("R/research_ui.R", local = TRUE) source("ui.R", local = TRUE) source("server.R", local = TRUE) shiny::shinyApp(ui = ui, server = server) From b6f33f27185e3ebd1f13ece4cb116652e2972334 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Tue, 29 Sep 2026 14:10:21 +0200 Subject: [PATCH 112/134] ui: add researcher question cards, exact pair inspector, group summaries and editable lab notes --- ui.R | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/ui.R b/ui.R index 3aacc41..2e8b8d4 100644 --- a/ui.R +++ b/ui.R @@ -78,6 +78,10 @@ ui <- shiny::fluidPage( shiny::fileInput("metadata_file", "Metadata (optional)", accept = c(".xlsx", ".csv", ".tsv", ".rds")), shiny::uiOutput("metadata_sheet_ui"), + shiny::textInput("label1", "Short name for matrix 1", value = "Matrix 1", + placeholder = "e.g. ANI from WGS"), + shiny::textInput("label2", "Short name for matrix 2", value = "Matrix 2", + placeholder = "e.g. MALDI spectral similarity"), shiny::fileInput("order_file", "Sample order (optional)", accept = c(".txt", ".csv", ".tsv")), shiny::selectInput("kind1", "Matrix 1 represents", @@ -133,7 +137,7 @@ ui <- shiny::fluidPage( ) ), shiny::div(class = "toolbar-field", - shiny::selectInput("metadata_column", "Annotation", + shiny::selectInput("metadata_column", "Group / annotation", choices = c("None" = "")) ), shiny::conditionalPanel( @@ -194,8 +198,10 @@ ui <- shiny::fluidPage( shiny::uiOutput("active_analysis") ) ), + shiny::uiOutput("research_context"), shiny::div(class = "results-shell", shiny::tabsetPanel(id = "results_tab", + shiny::tabPanel("Start here", manir_research_start()), shiny::tabPanel("Overview", manir_guide( "Start with the number of shared isolates and the relationship between the two matrices. Correlations show whether pairs that are high in one measurement also tend to be high in the other; they do not establish equivalence.", @@ -250,6 +256,19 @@ ui <- shiny::fluidPage( "Each dot is one distinct, unordered isolate pair. Its X position is the pair's value in matrix 1 and its Y position is the value for the same pair in matrix 2. Neither the diagonal nor mirrored duplicates are counted.", "An upward pattern suggests positive association, while points far from the main pattern merit closer inspection. Different units are allowed here: compare ranks or correlations, not the raw distance from a one-to-one line. Pairwise observations share isolates, so they are not statistically independent."), shiny::uiOutput("pairwise_intro"), + shiny::div(class = "pair-focus", + shiny::h4("Inspect a specific isolate pair"), + shiny::p(class = "small-help", + "Pick any two shared isolates to inspect exact values in both matrices, or choose one of the pairs with the largest rank differences."), + shiny::uiOutput("top_pairs_picker"), + shiny::div(class = "pair-selectors", + shiny::selectizeInput("inspect_isolate", "First isolate", + choices = NULL, options = list(placeholder = "Search isolate...")), + shiny::selectizeInput("inspect_partner", "Second isolate", + choices = NULL, options = list(placeholder = "Search second isolate...")) + ), + shiny::uiOutput("pair_inspection") + ), shiny::div(class = "plot-frame", shiny::plotOutput("scatter", height = "100%") ), @@ -277,12 +296,26 @@ ui <- shiny::fluidPage( manir_guide( "Metadata describe each isolate, such as its group, specimen source or experimental batch. Select a categorical field in the sidebar to show a colored annotation track next to the heatmaps.", "Metadata categories are not automatically cluster labels or validation truth. A batch-associated cluster may reflect an experimental effect and needs separate investigation. Numeric metadata should not be interpreted as categories unless intentionally converted."), + shiny::uiOutput("metadata_group_status"), + shiny::tableOutput("group_overview"), + shiny::h4("Sample metadata"), shiny::tableOutput("metadata_preview"), shiny::uiOutput("metadata_note")), shiny::tabPanel("Export", manir_guide( "CSV and RDS preserve the original matrix values. PNG, PDF, SVG and interactive HTML preserve the displayed ordering and palette, but figure colors may be normalized or raster-sampled.", "Plots from large datasets are representative previews, not complete value tables. Export the CSV or RDS alongside your figures and save the settings manifest to record clustering, color mapping, pair sampling and your R environment."), + shiny::h4("Research notebook"), + shiny::p(class = "small-help", + "Save an editable Markdown summary of the dataset and your selected analyses. It is a starting point for your own interpretation, not an automatic scientific conclusion."), + shiny::textInput("research_question", "Your research question (optional)", + placeholder = "e.g. Do MALDI-TOF similarities reflect ANI relationships?"), + shiny::textAreaInput("research_notes", "Your observations and next steps", + placeholder = "What do you notice? Which pairs need follow-up? What are the limitations?", + rows = 3, width = "100%"), + shiny::downloadButton("download_research_summary", "Download research notes (.md)", + class = "btn-primary"), + shiny::hr(), shiny::uiOutput("difference_download_notice"), shiny::downloadButton("download_first", "Matrix 1 CSV"), shiny::downloadButton("download_second", "Matrix 2 CSV"), From 333fef779ddea7294745b2116765f4b4d0de2b6b Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Tue, 29 Sep 2026 14:11:09 +0200 Subject: [PATCH 113/134] feat: compute bounded within/between-group values for separate descriptive plots --- R/research_workflows.R | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/R/research_workflows.R b/R/research_workflows.R index cfa2e9f..50c2d03 100644 --- a/R/research_workflows.R +++ b/R/research_workflows.R @@ -160,3 +160,28 @@ manir_research_report <- function(dataset, pairs = NULL, group_table = NULL, "- Figures may use independently normalized colors or raster previews; use original values for inference.") lines } + + +# Values for a descriptive group-distribution plot. Never feed these into a +# standard two-independent-samples test: pairs within groups share isolates. +manir_group_pairs <- function(matrix, metadata, field, + max_pairs = 20000L) { + if (is.null(metadata) || !is.data.frame(metadata) || + length(field) != 1L || is.na(field) || !nzchar(field) || + !field %in% names(metadata)) + stop("Choose a valid metadata group or batch field.") + groups <- as.character(metadata[match(rownames(matrix), + rownames(metadata)), field]) + ix <- upper_pair_indices(nrow(matrix), max_pairs = max_pairs) + value <- matrix[cbind(ix$i, ix$j)] + left <- groups[ix$i] + right <- groups[ix$j] + valid <- is.finite(value) & !is.na(left) & !is.na(right) & + nzchar(left) & nzchar(right) + list(data = data.frame( + group = ifelse(left[valid] == right[valid], "Within", "Between"), + value = value[valid]), + sampled = ix$sampled, + evaluated_pairs = length(value), + total_pairs = ix$total) +} From 7239d662bde69e033d64c31b6ffa4fb50dd534cc Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Tue, 29 Sep 2026 14:11:45 +0200 Subject: [PATCH 114/134] feat: guide researchers from a dataset readiness screen to question-specific results --- server.R | 168 +++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 146 insertions(+), 22 deletions(-) diff --git a/server.R b/server.R index 0da3678..09aca56 100644 --- a/server.R +++ b/server.R @@ -45,6 +45,8 @@ server <- function(input, output, session) { kind1 <- "similarity" kind2 <- "similarity" match_mode <- "strict" + label1 <- "ANI (synthetic)" + label2 <- "MALDI (synthetic)" cluster_requested <- TRUE linkage <- "complete" shiny::incProgress(0.40) @@ -52,6 +54,10 @@ server <- function(input, output, session) { kind1 <- input$kind1 kind2 <- input$kind2 match_mode <- input$match_mode + label1 <- trimws(if (is.null(input$label1)) "Matrix 1" else input$label1) + label2 <- trimws(if (is.null(input$label2)) "Matrix 2" else input$label2) + if (!nzchar(label1)) label1 <- "Matrix 1" + if (!nzchar(label2)) label2 <- "Matrix 2" cluster_requested <- isTRUE(input$cluster) linkage <- input$linkage f <- input$first_file @@ -136,6 +142,7 @@ server <- function(input, output, session) { is.null(explicit) && (nrow(a) > 2000L || (!is.null(b) && nrow(b) > 2000L)), kind1 = kind1, kind2 = kind2, + label1 = label1, label2 = label2, linkage = linkage) }, error = function(e) { shiny::showNotification(conditionMessage(e), type = "error", @@ -157,17 +164,16 @@ server <- function(input, output, session) { sprintf(" | %s in matrix 2", format(nrow(d$second), big.mark = ",")))) }) - # After loading, open the result rather than leaving the researcher - # at an empty Overview tab. Display-only controls then update it in place. - show_loaded_heatmap <- function() { - shiny::updateTabsetPanel(session, "results_tab", selected = "Heatmaps") - shiny::updateTabsetPanel(session, "matrix_view", selected = "Matrix 1") + # Put the research question first. The user can jump directly to the + # relevant analysis without first learning the list of statistical tabs. + show_research_start <- function() { + shiny::updateTabsetPanel(session, "results_tab", selected = "Start here") } shiny::observeEvent(input$visualize, { result <- analyze_input(example = FALSE) if (!is.null(result)) { loaded(result) - show_loaded_heatmap() + show_research_start() } }) shiny::observeEvent(input$load_example, { @@ -178,10 +184,12 @@ server <- function(input, output, session) { shiny::updateCheckboxInput(session, "cluster", value = TRUE) shiny::updateSelectInput(session, "linkage", selected = "complete") shiny::updateNumericInput(session, "cluster_k", value = 3) + shiny::updateTextInput(session, "label1", value = "Matrix 1") + shiny::updateTextInput(session, "label2", value = "Matrix 2") result <- analyze_input(example = TRUE) if (!is.null(result)) { loaded(result) - show_loaded_heatmap() + show_research_start() } }) output$download_example <- shiny::downloadHandler( @@ -189,23 +197,138 @@ server <- function(input, output, session) { content = function(file) manir_write_example_workbook(file) ) + # Isolate searches use server-side Selectize so a 10k-isolate project + # does not inject tens of thousands of options into the browser. + shiny::observeEvent(loaded(), { + d <- loaded() + if (is.null(d)) return() + ids <- if (is.null(d$second)) colnames(d$first) else + intersect(colnames(d$first), colnames(d$second)) + first_default <- if (identical(d$source, "synthetic example")) + "ISO_02" else ids[1L] + second_default <- if (identical(d$source, "synthetic example")) + "ISO_03" else ids[min(2L, length(ids))] + shiny::updateSelectizeInput(session, "inspect_isolate", + choices = ids, selected = first_default, server = TRUE) + shiny::updateSelectizeInput(session, "inspect_partner", + choices = ids, selected = second_default, server = TRUE) + }) + data <- shiny::reactive({ shiny::req(loaded()); loaded() }) output$active_analysis <- shiny::renderUI({ - d <- data() - if (identical(d$source, "synthetic example")) { - return(shiny::p(class = "small-help", - "Currently displayed: synthetic ANI-like and MALDI-like similarity matrices. This example always uses similarity inputs, even if a dropdown below is changed. Reload the example to reset the controls.")) + d <- loaded() + if (is.null(d)) + return(shiny::span(class = "small-help", "No data loaded")) + changed <- !identical(d$source, "synthetic example") && + ((!is.null(input$kind1) && !identical(input$kind1, d$kind1)) || + (!is.null(input$kind2) && !identical(input$kind2, d$kind2)) || + (!is.null(input$linkage) && !identical(input$linkage, d$linkage)) || + (!is.null(input$match_mode) && !identical(input$match_mode, d$matching))) + shiny::div( + shiny::span(class = "data-indicator", + sprintf("%s · %s isolates%s", + if (identical(d$source, "synthetic example")) "Teaching example" + else "Your data", format(nrow(d$first), big.mark = ","), + if (is.null(d$second)) "" else + sprintf(" · %s shared", length(intersect(colnames(d$first), + colnames(d$second)))))), + if (changed) + shiny::span(class = "settings-warning", + "Settings changed. Click Load and analyze to apply.") + ) + }) + current_goal <- shiny::reactiveVal(NULL) + output$research_context <- shiny::renderUI({ + goal <- current_goal() + if (is.null(goal) || !identical(input$results_tab, goal$tab)) return(NULL) + shiny::div(class = "research-context", + shiny::strong(goal$title), + shiny::span(goal$hint), + shiny::actionButton("back_to_questions", "All questions", + class = "btn-link btn-sm") + ) + }) + shiny::observeEvent(input$back_to_questions, { + current_goal(NULL) + shiny::updateTabsetPanel(session, "results_tab", selected = "Start here") + }) + open_question <- function(tab, title, hint, requires_two = FALSE, + requires_metadata = FALSE) { + d <- loaded() + if (is.null(d)) { + shiny::showNotification( + "Load the teaching example or upload a matrix first.", + type = "message", duration = 6) + return(invisible(NULL)) } - changed <- (!is.null(input$kind1) && !identical(input$kind1, d$kind1)) || - (!is.null(input$kind2) && !identical(input$kind2, d$kind2)) || - (!is.null(input$linkage) && !identical(input$linkage, d$linkage)) - shiny::p(class = "small-help", - sprintf("Currently displayed: %s (matrix 1), %s (matrix 2); %s linkage.%s", - d$kind1, if (is.null(d$second)) "not loaded" else d$kind2, - d$linkage, - if (changed) - " You have changed analysis settings. Click Load and analyze to apply them." - else "")) + if (requires_two && is.null(d$second)) { + shiny::showNotification( + "This question needs two matrices for the same isolates. Add a second matrix and reload.", + type = "message", duration = 8) + return(invisible(NULL)) + } + if (requires_metadata && is.null(d$metadata)) { + shiny::showNotification( + "This question needs sample metadata. Upload a metadata table with matching isolate IDs.", + type = "message", duration = 8) + return(invisible(NULL)) + } + current_goal(list(tab = tab, title = title, hint = hint)) + shiny::updateTabsetPanel(session, "results_tab", selected = tab) + } + shiny::observeEvent(input$start_agreement, + open_question("Overview", "Do the two methods agree?", + "Start with the correlation and inspect the scatterplot if individual pairs differ.", + requires_two = TRUE)) + shiny::observeEvent(input$start_pairs, + open_question("Pairwise comparison", "Which isolate pairs need follow-up?", + "Select an unusual pair below to inspect its original values and sample groups.", + requires_two = TRUE)) + shiny::observeEvent(input$start_cluster, + open_question("Cluster comparison", "Do the methods group isolates similarly?", + "Use the cluster-overlap table; change the number of clusters if justified.", + requires_two = TRUE)) + shiny::observeEvent(input$start_groups, + open_question("Metadata", "Do sample groups or batches show a pattern?", + "Select the biological group or experimental batch in the toolbar.", + requires_metadata = TRUE)) + shiny::observeEvent(input$start_heatmap, { + open_question("Heatmaps", "Explore the sample relationship matrix", + "Hover over cells for original values; try the combined view when two matrices are loaded.") + if (!is.null(loaded())) + shiny::updateTabsetPanel(session, "matrix_view", selected = "Matrix 1") + }) + shiny::observeEvent(input$start_export, + open_question("Export", "Record and export your findings", + "Save editable notes along with original matrix values and figures.")) + + output$research_status <- shiny::renderUI({ + d <- loaded() + if (is.null(d)) + return(shiny::div(class = "start-status empty", + shiny::strong("First, load your data"), + shiny::p("Use the example button on the left to see a complete analysis, or upload your own matrix. Add a second matrix to compare methods and metadata to examine groups or batches."))) + n_shared <- if (is.null(d$second)) NULL else + length(intersect(colnames(d$first), colnames(d$second))) + shiny::div(class = "start-status ready", + shiny::strong(if (identical(d$source, "synthetic example")) + "Teaching example ready (fictional data)" else "Your dataset is ready"), + shiny::div(class = "start-facts", + shiny::span(sprintf("%s: %d isolates", d$label1, nrow(d$first))), + if (!is.null(d$second)) + shiny::span(sprintf("%s: %d isolates; %d shared", + d$label2, nrow(d$second), n_shared)), + if (!is.null(d$metadata)) + shiny::span(sprintf("Metadata: %s", + paste(names(d$metadata), collapse = ", "))) + ), + if (is.null(d$second)) + shiny::p("You can explore the matrix now. For method agreement and pair discrepancies, upload a second matrix."), + if (is.null(d$metadata)) + shiny::p("Add metadata if you want to explore known groups or possible batch patterns."), + if (d$clustering_skipped) + shiny::p("Clustering was skipped for a large dataset. Use an imported sample order or smaller subset for cluster comparisons.") + ) }) has_two <- shiny::reactive(!is.null(data()$second)) subset_if_needed <- function(m, ids) { @@ -268,7 +391,8 @@ server <- function(input, output, session) { } pair_data <- shiny::reactive({ m <- shared() - paired_values(m$first, m$second, max_pairs = input$max_pairs) + paired_values(m$first, m$second, max_pairs = + if (is.null(input$max_pairs)) 100000L else input$max_pairs) }) output$overview <- shiny::renderUI({ From 77c96518b812b0f94965a0eeafb405afc28672c6 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Tue, 29 Sep 2026 14:12:37 +0200 Subject: [PATCH 115/134] feat: inspect exact isolate pairs, highlight chosen pairs and compare group distributions --- server.R | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 155 insertions(+), 2 deletions(-) diff --git a/server.R b/server.R index 09aca56..b401ab8 100644 --- a/server.R +++ b/server.R @@ -612,6 +612,74 @@ server <- function(input, output, session) { format(p$evaluated_pairs, big.mark = ","), p$seed) else " All pairs are included.")) }) + output$top_pairs_picker <- shiny::renderUI({ + if (!has_two()) return(NULL) + d <- data() + top <- pair_rank_gaps(pair_data(), d$kind1, d$kind2, top = 20L) + if (!nrow(top)) return(NULL) + labels <- sprintf("%s / %s (rank gap %.3f)", + top$sample_1, top$sample_2, top$rank_gap) + shiny::selectInput("rank_pair", "Explore a pair with different rankings", + choices = c("Choose from the largest rank gaps" = "", + stats::setNames(as.character(seq_len(nrow(top))), labels))) + }) + shiny::observeEvent(input$rank_pair, { + if (is.null(input$rank_pair) || !nzchar(input$rank_pair) || + !has_two()) return() + d <- data() + top <- pair_rank_gaps(pair_data(), d$kind1, d$kind2, top = 20L) + ix <- suppressWarnings(as.integer(input$rank_pair)) + if (is.na(ix) || ix < 1L || ix > nrow(top)) return() + shiny::updateSelectizeInput(session, "inspect_isolate", + selected = top$sample_1[ix]) + shiny::updateSelectizeInput(session, "inspect_partner", + selected = top$sample_2[ix]) + }) + selected_pair <- shiny::reactive({ + d <- data() + first <- input$inspect_isolate + second <- input$inspect_partner + shiny::req(length(first) == 1L, length(second) == 1L, + nzchar(first), nzchar(second), first != second) + manir_pair_inspection(d$first, d$second, first, second, + metadata = d$metadata, field = input$metadata_column, + comparable = can_difference()) + }) + output$pair_inspection <- shiny::renderUI({ + d <- loaded() + if (is.null(d) || is.null(d$second)) + return(shiny::p(class = "small-help", + "Load two matrices to inspect corresponding values for a pair.")) + if (is.null(input$inspect_isolate) || is.null(input$inspect_partner) || + !nzchar(input$inspect_isolate) || !nzchar(input$inspect_partner) || + identical(input$inspect_isolate, input$inspect_partner)) + return(shiny::p(class = "small-help", + "Choose two different shared isolates above.")) + p <- selected_pair() + fmt <- function(x) if (length(x) != 1L || !is.finite(x)) + "Missing" else format(signif(x, 6), trim = TRUE) + shiny::div(class = "pair-inspection-values", + shiny::div(shiny::span(d$label1), + shiny::strong(fmt(p$first))), + shiny::div(shiny::span(d$label2), + shiny::strong(fmt(p$second))), + if (!is.null(p$difference)) + shiny::div(shiny::span("Difference, original units"), + shiny::strong(fmt(p$difference))), + if (nzchar(p$metadata_field) && + (!is.na(p$group_1) || !is.na(p$group_2))) + shiny::p(class = "pair-annotation", + sprintf("%s: %s = %s; %s = %s", + p$metadata_field, p$isolate_1, + if (is.na(p$group_1)) "missing" else p$group_1, + p$isolate_2, + if (is.na(p$group_2)) "missing" else p$group_2)), + if (is.null(p$difference)) + shiny::p(class = "small-help", + "Original values shown separately. A difference is omitted because equivalent measurement units have not been confirmed.") + ) + }) + output$scatter <- shiny::renderPlot({ shiny::req(has_two()) p <- pair_data() @@ -638,6 +706,19 @@ server <- function(input, output, session) { graphics::points(d$first[highlighted], d$second[highlighted], pch = 1L, cex = 1.65, lwd = 1.5, col = "#c45a35") } + if (length(input$inspect_isolate) == 1L && + length(input$inspect_partner) == 1L && + nzchar(input$inspect_isolate) && nzchar(input$inspect_partner) && + !identical(input$inspect_isolate, input$inspect_partner)) { + chosen <- tryCatch(selected_pair(), error = function(e) NULL) + if (!is.null(chosen) && is.finite(chosen$first) && + is.finite(chosen$second)) { + graphics::points(chosen$first, chosen$second, pch = 21L, + bg = "#fac06e", col = "#803a1d", cex = 2, lwd = 1.4) + graphics::legend("topright", legend = "Selected pair", + pch = 21L, pt.bg = "#fac06e", bty = "n", cex = 0.85) + } + } }) output$rank_gaps <- shiny::renderTable({ shiny::req(has_two()) @@ -677,7 +758,7 @@ server <- function(input, output, session) { shiny::req(has_two()) d <- data() shiny::p(class = "section-note", - sprintf("Clustering %d shared isolates independently in each matrix, using %d clusters and %s linkage. Change k in the sidebar to explore the stability of agreement.", + sprintf("Clustering %d shared isolates independently in each matrix, using %d clusters and %s linkage. Change k in the toolbar to see how grouping agreement changes.", length(shared()$ids), input$cluster_k, d$linkage)) }) output$cluster_summary <- shiny::renderTable({ @@ -701,6 +782,78 @@ server <- function(input, output, session) { names(assignment) <- c("Isolate", "Matrix 1 cluster", "Matrix 2 cluster") assignment }, rownames = FALSE) + group_summary <- shiny::reactive({ + d <- data() + shiny::req(!is.null(d$metadata), length(input$metadata_column) == 1L, + nzchar(input$metadata_column)) + manir_group_overview(d$first, d$second, d$metadata, + input$metadata_column, + max_pairs = if (is.null(input$max_pairs)) 100000L else input$max_pairs) + }) + output$metadata_group_status <- shiny::renderUI({ + d <- data() + if (is.null(d$metadata)) + return(shiny::div(class = "start-status empty", + shiny::strong("Add sample metadata to investigate groups"), + shiny::p("Upload a file with isolate IDs and a biological group, replicate or batch column, then reload the data."))) + if (is.null(input$metadata_column) || !nzchar(input$metadata_column)) + return(shiny::div(class = "start-status empty", + shiny::strong("Choose a group or batch field"), + shiny::p(sprintf("Select one of these fields in the toolbar: %s.", + paste(names(d$metadata), collapse = ", "))))) + shiny::div(class = "start-status ready", + shiny::strong(sprintf("Exploring '%s'", input$metadata_column)), + shiny::p("These are descriptive pair summaries. Isolate pairs are reused, so the table and plots do not provide independent-sample p-values.")) + }) + output$group_overview <- shiny::renderTable({ + x <- group_summary() + names(x) <- c("Matrix", "Pair category", "Pairs", "Mean", + "Median", "Sampled") + x + }, digits = 5, rownames = FALSE) + output$group_plot_ui <- shiny::renderUI({ + d <- data() + if (is.null(d$metadata) || is.null(input$metadata_column) || + !nzchar(input$metadata_column)) return(NULL) + shiny::tagList( + shiny::h4("Distribution of pairwise measurements"), + shiny::p(class = "small-help", + "Each method uses its own original numerical scale. Boxplots show the spread of sampled or full pair values within and between groups, not independent biological replicates."), + shiny::plotOutput("group_distributions", height = "315px") + ) + }) + output$group_distributions <- shiny::renderPlot({ + d <- data() + shiny::req(d$metadata, length(input$metadata_column) == 1L, + nzchar(input$metadata_column)) + matrices <- list(d$first) + labels <- c(d$label1) + if (!is.null(d$second)) { + matrices <- c(matrices, list(d$second)) + labels <- c(labels, d$label2) + } + n <- length(matrices) + old <- graphics::par(mfrow = c(1L, n), mar = c(5, 4.5, 3.4, 1), + oma = c(0, 0, 0, 0)) + on.exit(graphics::par(old), add = TRUE) + for (i in seq_len(n)) { + gp <- manir_group_pairs(matrices[[i]], d$metadata, + input$metadata_column) + if (nrow(gp$data) && length(unique(gp$data$group)) > 1L) { + graphics::boxplot(value ~ group, data = gp$data, + main = labels[i], ylab = "Original matrix value", xlab = "Pair category", + col = c("#d4e9f4", "#b7d3d9"), outline = FALSE) + graphics::mtext(if (gp$sampled) "Representative sample of pairs" + else "All available pairs", + side = 3, line = 0.15, cex = 0.65) + } else { + graphics::plot.new() + graphics::title(main = labels[i]) + graphics::text(.5, .5, + "At least one within- and one between-group pair are needed.") + } + } + }, res = 110) output$metadata_preview <- shiny::renderTable({ shiny::req(data()$metadata) utils::head(data()$metadata, 100L) @@ -734,7 +887,7 @@ server <- function(input, output, session) { }) output$metadata_note <- shiny::renderUI({ shiny::req(data()$metadata) - shiny::p("Showing up to 100 metadata rows. Choose a categorical metadata column in the sidebar to compare within-group and between-group matrix values.") + shiny::p("Showing up to 100 metadata rows. Choose a categorical metadata field in the toolbar to compare within-group and between-group measurements.") }) mantel_result <- shiny::eventReactive(input$run_mantel, { From 74b89d57f7fd33a80247cdd0319540d958205384 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Tue, 29 Sep 2026 14:12:56 +0200 Subject: [PATCH 116/134] ui: show group distribution plots and optional cluster calculations in research notes --- ui.R | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ui.R b/ui.R index 2e8b8d4..ad2a18e 100644 --- a/ui.R +++ b/ui.R @@ -298,6 +298,7 @@ ui <- shiny::fluidPage( "Metadata categories are not automatically cluster labels or validation truth. A batch-associated cluster may reflect an experimental effect and needs separate investigation. Numeric metadata should not be interpreted as categories unless intentionally converted."), shiny::uiOutput("metadata_group_status"), shiny::tableOutput("group_overview"), + shiny::uiOutput("group_plot_ui"), shiny::h4("Sample metadata"), shiny::tableOutput("metadata_preview"), shiny::uiOutput("metadata_note")), @@ -313,6 +314,9 @@ ui <- shiny::fluidPage( shiny::textAreaInput("research_notes", "Your observations and next steps", placeholder = "What do you notice? Which pairs need follow-up? What are the limitations?", rows = 3, width = "100%"), + shiny::checkboxInput("report_clusters", + "Include cluster statistics (calculate if needed; at most 2,000 isolates)", + value = FALSE), shiny::downloadButton("download_research_summary", "Download research notes (.md)", class = "btn-primary"), shiny::hr(), From 6a3cd89794549627eb6b629de7dac530b4c83dfe Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Tue, 29 Sep 2026 14:13:12 +0200 Subject: [PATCH 117/134] feat: download editable analysis notes with source values, assumptions and optional analyses --- server.R | 50 ++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 44 insertions(+), 6 deletions(-) diff --git a/server.R b/server.R index b401ab8..81aa645 100644 --- a/server.R +++ b/server.R @@ -427,15 +427,23 @@ server <- function(input, output, session) { output$agreement <- shiny::renderTable({ shiny::req(has_two()) pp <- pair_data() - stats <- matrix_agreement(pp) + d <- data() + stats <- manir_directional_association(pp, d$kind1, d$kind2) + raw <- if (can_difference()) matrix_agreement(pp) else NULL + adjusted <- identical(d$kind1, "distance") || + identical(d$kind2, "distance") data.frame( - Measure = c("Valid isolate pairs", "Pearson r", "Spearman rho", + Measure = c("Valid isolate pairs", + if (adjusted) "Pearson r (distance direction adjusted)" + else "Pearson r", + if (adjusted) "Spearman rho (distance direction adjusted)" + else "Spearman rho", if (can_difference()) c("Mean absolute difference", - "Root mean squared difference")), + "Root mean squared difference")), Value = c(stats$n, signif(stats$pearson, 5), signif(stats$spearman, 5), if (can_difference()) - c(signif(stats$mae, 5), signif(stats$rmse, 5))) + c(signif(raw$mae, 5), signif(raw$rmse, 5))) ) }) output$mantel_note <- shiny::renderUI({ @@ -905,6 +913,34 @@ server <- function(input, output, session) { r$observed, r$p_two_sided, r$permutations, r$seed)) }) + output$download_research_summary <- shiny::downloadHandler( + filename = function() "MAniR_research_notes.md", + content = function(file) { + d <- data() + max_pairs <- if (is.null(input$max_pairs)) 100000L else input$max_pairs + pairs <- if (is.null(d$second)) NULL else pair_data() + field <- if (is.null(input$metadata_column)) "" else input$metadata_column + groups <- if (!is.null(d$metadata) && nzchar(field)) + group_summary() else NULL + clusters <- NULL + if (isTRUE(input$report_clusters) && !is.null(d$second)) { + m <- shared() + k <- if (is.null(input$cluster_k)) 3L else as.integer(input$cluster_k) + if (nrow(m$first) <= 2000L && k >= 2L && k < nrow(m$first)) + clusters <- concordance() + else + shiny::showNotification( + "Cluster statistics were omitted: the dataset or k is outside the supported limits.", + type = "warning", duration = 7) + } + question <- if (is.null(input$research_question)) "" else input$research_question + notes <- if (is.null(input$research_notes)) "" else input$research_notes + text <- manir_research_report(d, pairs = pairs, group_table = groups, + group_field = field, cluster = clusters, comparable = can_difference(), + question = question, notes = notes, max_pairs = max_pairs) + writeLines(text, con = file, useBytes = TRUE) + } + ) output$download_first <- shiny::downloadHandler( filename = function() "MAniR_matrix1.csv", content = function(file) write_matrix_csv(data()$first, file)) @@ -989,8 +1025,10 @@ server <- function(input, output, session) { d <- data() writeLines(c( paste("MAniR generated:", Sys.time()), - paste("First matrix:", nrow(d$first), "isolates"), - paste("Second matrix:", if (is.null(d$second)) "None" else nrow(d$second)), + paste("First matrix:", d$label1, nrow(d$first), "isolates"), + paste("Second matrix:", + if (is.null(d$second)) "None" else + paste(d$label2, nrow(d$second), "isolates")), paste("Matrix kinds:", d$kind1, d$kind2), paste("Sample matching:", d$matching), paste("Cluster requested:", input$cluster), From 27b393179f6d14e0f02d08b53f68bacc1290b882 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Tue, 29 Sep 2026 14:13:38 +0200 Subject: [PATCH 118/134] style: make research questions, exact pair drilldown and data readiness clear in one viewport --- www/workspace.css | 78 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/www/workspace.css b/www/workspace.css index 206b9f4..03178d4 100644 --- a/www/workspace.css +++ b/www/workspace.css @@ -191,3 +191,81 @@ body { background: var(--manir-bg); color: var(--manir-ink); } .results-shell .tab-content { padding: 8px 10px 18px; } .results-shell .reading-guide .guide-preview { display: none; } } + + +/* Research-question-first workspace. All panels scroll inside the existing + * result area, with no extra page-level scrollbar on ordinary desktops. */ +.start-hero { padding: 10px 0 6px; max-width: 840px; } +.start-kicker { color: #45758c; font-size: 11px; font-weight: 750; + text-transform: uppercase; letter-spacing: .12em; } +.start-hero h3 { margin: 4px 0 7px; font-size: 23px; font-weight: 680; + letter-spacing: -.025em; } +.start-hero p { font-size: 13px; max-width: 85ch; color: #597083; } +.start-status { border-radius: 8px; border: 1px solid #d7e3e9; + padding: 13px 16px; margin: 7px 0 15px; + max-width: 100%; } +.start-status.ready { background: #f0f8f7; border-color: #c6e1d9; } +.start-status.empty { background: #f4f7fa; } +.start-status strong { font-size: 14px; color: #254960; } +.start-status p { font-size: 12px; margin: 6px 0 0; color: #5d7584; } +.start-facts { display: flex; gap: 8px 18px; flex-wrap: wrap; margin-top: 9px; } +.start-facts span { font-size: 12px; line-height: 1.4; border-radius: 5px; + background: white; padding: 5px 9px; + border: 1px solid #e0e9e7; } +.question-grid { display: grid; grid-template-columns: repeat(2, minmax(250px, 1fr)); + gap: 12px; padding: 2px 1px 12px; max-width: 1140px; } +.question-card { border: 1px solid #dce6ec; border-radius: 9px; + background: #fff; padding: 14px 16px; + display: flex; flex-direction: column; min-width: 0; + transition: border-color .12s, box-shadow .12s; } +.question-card:hover { border-color: #a7c6d3; box-shadow: 0 2px 9px rgba(36, 79, 103, .08); } +.question-top { display: flex; flex-wrap: wrap; align-items: start; + justify-content: space-between; gap: 6px; } +.question-card h4 { font-size: 16px; font-weight: 650; margin: 0 0 8px; max-width: 33ch; } +.question-requirement { font-size: 10px; border-radius: 10px; + padding: 3px 7px; color: #466b7d; background: #edf4f8; + white-space: nowrap; } +.question-card p { font-size: 12px; color: #50697b; margin: 0 0 9px; } +.question-card .question-next { margin-top: auto; font-size: 11px; + color: #627e8f; padding: 5px 0; } +.question-card .btn { margin-top: 5px; margin-bottom: 0; + align-self: flex-start; font-size: 12px; } +.start-footer { border-top: 1px solid var(--manir-border); margin: 6px 0 20px; + padding: 14px 0 0; font-size: 12px; max-width: 850px; } +.start-footer p { margin: 5px 0 8px; color: #607b8e; } +.start-footer .btn { font-size: 12px; } +.research-context { display: flex; align-items: center; gap: 8px 16px; + flex-wrap: wrap; background: #eef7fa; + padding: 7px 18px; border-bottom: 1px solid #d4e8ed; + font-size: 12px; flex: 0 0 auto; } +.research-context strong { color: #315771; font-size: 12px; } +.research-context span { color: #5e798c; flex: 1 1 230px; } +.research-context .btn { margin: 0; padding: 2px 7px; } +.data-indicator { font-weight: 600; color: #37647e; font-size: 11px; } +.settings-warning { display: block; color: #975e13; font-size: 11px; } +.pair-focus { padding: 12px 15px; background: #f4f8fa; + border: 1px solid #d7e7ec; border-radius: 8px; margin: 12px 0; } +.pair-focus h4 { font-size: 15px; margin: 1px 0 6px; } +.pair-focus p { margin-bottom: 7px; } +.pair-focus .shiny-input-container { margin-bottom: 6px; } +.pair-selectors { display: flex; flex-wrap: wrap; gap: 8px 14px; + margin: 6px 0 9px; } +.pair-selectors > .form-group { flex: 1 1 180px; max-width: 310px; } +.pair-selectors > .form-group label { font-size: 11px; } +.pair-inspection-values { display: flex; align-items: center; flex-wrap: wrap; + gap: 8px 20px; padding-top: 7px; + border-top: 1px solid #d9e8ed; } +.pair-inspection-values > div { display: flex; flex-direction: column; } +.pair-inspection-values > div > span { color: #627d8f; font-size: 11px; } +.pair-inspection-values > div > strong { color: #1f536d; font-size: 19px; } +.pair-inspection-values p { flex-basis: 100%; font-size: 11px; margin: 0; } +.pair-inspection-values .pair-annotation { color: #385f78; } +@media (max-width: 1240px) { + .question-grid { grid-template-columns: repeat(2, minmax(210px, 1fr)); } + .question-card { padding: 12px; } +} +@media (max-width: 800px) { + .question-grid { grid-template-columns: 1fr; } + .pair-selectors > .form-group { max-width: none; } + .start-hero h3 { font-size: 20px; } +} From 9c723e00a8a5356e6344e8af23c47ecf89e7ef16 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Tue, 29 Sep 2026 14:14:12 +0200 Subject: [PATCH 119/134] test: cover research questions, exact pair values, grouped comparisons and research notes --- tests/run_tests.R | 96 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/tests/run_tests.R b/tests/run_tests.R index 43cc3b4..442916c 100644 --- a/tests/run_tests.R +++ b/tests/run_tests.R @@ -3,6 +3,8 @@ source("R/matrix_io.R") source("R/matrix_analysis.R") source("R/matrix_plot.R") source("R/example_data.R") +source("R/research_workflows.R") +source("R/research_ui.R") expect_error <- function(expr, pattern = NULL) { e <- tryCatch({force(expr); NULL}, error = function(e) conditionMessage(e)) @@ -298,6 +300,100 @@ test("metadata colors keep their meaning across both matrix orders", { logical(1L)))) }) + +test("research question choices are concrete and available on the start page", { + source("ui.R", local = TRUE) + html <- htmltools::renderTags(ui)$html + for (text in c("Start here", "What do you want to find out?", + "Do two methods give similar results?", + "Which isolate pairs deserve a closer look?", + "Do both methods make the same groups?", + "Are known groups or batches reflected in the data?", + "I want to inspect my matrix.", + "inspect_isolate", "inspect_partner", + "Download research notes", "group_plot_ui")) { + if (!grepl(text, html, fixed = TRUE)) + stop("Missing research workflow control or help: ", text) + } + for (id in c("start_agreement", "start_pairs", "start_cluster", + "start_groups", "start_heatmap", "start_export", + "inspect_isolate", "inspect_partner", "research_question", + "research_notes")) { + occurrences <- gregexpr(paste0('id="', id, '"'), html, + fixed = TRUE)[[1L]] + stopifnot(length(occurrences) == 1L, occurrences[1L] != -1L) + } +}) + +test("pair inspection preserves exact values and distinguishes incomparable units", { + demo <- manir_load_example() + p <- manir_pair_inspection(demo$first, demo$second, "ISO_02", "ISO_03", + demo$metadata, "group") + stopifnot(isTRUE(all.equal(p$first, demo$first["ISO_02", "ISO_03"])), + isTRUE(all.equal(p$second, .52)), + is.null(p$difference), identical(p$group_1, "Group_A"), + identical(p$group_2, "Group_A")) + same <- manir_pair_inspection(demo$first, demo$first, "ISO_02", "ISO_03", + comparable = TRUE) + stopifnot(identical(same$difference, 0)) + expect_error(manir_pair_inspection(demo$first, demo$second, + "ISO_02", "ISO_02"), "different") + expect_error(manir_pair_inspection(demo$first, demo$second, + "not_an_isolate", "ISO_02"), "present") +}) + +test("within- and between-group comparison retains original scales and sample accounting", { + demo <- manir_load_example() + result <- manir_group_overview(demo$first, demo$second, + demo$metadata, "group") + stopifnot(nrow(result) == 4L, + identical(unique(result$matrix), c("Matrix 1", "Matrix 2")), + sum(result$pairs[result$matrix == "Matrix 1"]) == 66L, + sum(result$pairs[result$matrix == "Matrix 2"]) == 66L) + plot_values <- manir_group_pairs(demo$first, demo$metadata, "group") + stopifnot(nrow(plot_values$data) == 66L, + !plot_values$sampled, + identical(sort(unique(plot_values$data$group)), + c("Between", "Within"))) + expect_error(manir_group_overview(demo$first, metadata = demo$metadata, + field = "missing"), "Select") +}) + +test("direction-adjusted association treats distances as distances", { + demo <- manir_load_example() + pair <- paired_values(demo$first, demo$second) + related <- manir_directional_association(pair, "similarity", "similarity") + opposite <- manir_directional_association(pair, "distance", "similarity") + stopifnot(isTRUE(all.equal(related$pearson, -opposite$pearson)), + isTRUE(all.equal(related$spearman, -opposite$spearman)), + related$n == 66L) +}) + +test("research notes are editable, truthful and contain no mixed-scale difference", { + demo <- manir_load_example() + dataset <- c(demo, list(source = "synthetic example", + matching = "strict", linkage = "complete", + kind1 = "similarity", kind2 = "similarity", + label1 = "ANI (synthetic)", label2 = "MALDI (synthetic)")) + pairs <- paired_values(demo$first, demo$second) + groups <- manir_group_overview(demo$first, demo$second, + demo$metadata, "group") + notes <- manir_research_report(dataset, pairs, groups, "group", + comparable = FALSE, + question = "Do these methods describe similar relationships?", + notes = "Recheck the discordant pair with original data.") + joined <- paste(notes, collapse = "\n") + stopifnot(grepl("SYNTHETIC", joined), + grepl("Spearman", joined), + grepl("Recheck the discordant pair", joined), + grepl("Raw differences omitted", joined), + !grepl("Mean absolute difference", joined)) + single <- dataset + single$second <- NULL + one <- manir_research_report(single) + stopifnot(!grepl("Pairwise relationship", paste(one, collapse = "\n"))) +}) + test("workspace separates scrolling inputs from persistent live controls", { source("ui.R", local = TRUE) rendered <- htmltools::renderTags(ui) From 7b81e2172e2236053680b89c9482f058b1950747 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Tue, 29 Sep 2026 14:14:30 +0200 Subject: [PATCH 120/134] test: exercise question navigation, missing-data guidance and pair/group drilldowns --- tests/test_shiny.R | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/tests/test_shiny.R b/tests/test_shiny.R index af9e647..62f8144 100644 --- a/tests/test_shiny.R +++ b/tests/test_shiny.R @@ -3,6 +3,8 @@ source("R/matrix_io.R") source("R/matrix_analysis.R") source("R/matrix_plot.R") source("R/example_data.R") +source("R/research_workflows.R") +source("R/research_ui.R") source("server.R") ids <- c("001", "002", "003", "004") @@ -32,6 +34,12 @@ shiny::testServer(server, { # A palette change should affect only rendering, not the loaded matrix. session$setInputs(palette = "Viridis") stopifnot(identical(loaded()$first, loaded_data$first)) + session$setInputs(start_pairs = 1) + stopifnot(is.null(current_goal())) + session$setInputs(start_heatmap = 1) + stopifnot(identical(current_goal()$tab, "Heatmaps")) + session$setInputs(start_groups = 1) + stopifnot(identical(current_goal()$tab, "Heatmaps")) }) shiny::testServer(server, { @@ -50,6 +58,23 @@ shiny::testServer(server, { # subtracted or exported as a misleading difference matrix. session$setInputs(comparable_scales = TRUE) stopifnot(!can_difference()) + session$setInputs(start_agreement = 1) + stopifnot(identical(current_goal()$tab, "Overview")) + session$setInputs(start_pairs = 1) + stopifnot(identical(current_goal()$tab, "Pairwise comparison")) + session$setInputs(inspect_isolate = "ISO_02", inspect_partner = "ISO_03") + exact <- selected_pair() + stopifnot(abs(exact$second - 0.52) < 1e-12, + is.null(exact$difference)) + session$setInputs(metadata_column = "group", start_groups = 1) + stopifnot(identical(current_goal()$tab, "Metadata"), + nrow(group_summary()) == 4L) + session$setInputs(start_cluster = 1) + stopifnot(identical(current_goal()$tab, "Cluster comparison")) + session$setInputs(start_export = 1) + stopifnot(identical(current_goal()$tab, "Export")) + session$setInputs(back_to_questions = 1) + stopifnot(is.null(current_goal())) # An ordinary upload after the example must replace it without carrying # across the example metadata or second matrix. session$setInputs(first_file = file_info, visualize = 1) From c2c32dc36ac48d4e176a0da0cf8146ce7224121c Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Tue, 29 Sep 2026 14:15:01 +0200 Subject: [PATCH 121/134] ui: add interpretation cues and direct next-step action to numeric comparison tabs --- ui.R | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ui.R b/ui.R index ad2a18e..097c03b 100644 --- a/ui.R +++ b/ui.R @@ -207,8 +207,11 @@ ui <- shiny::fluidPage( "Start with the number of shared isolates and the relationship between the two matrices. Correlations show whether pairs that are high in one measurement also tend to be high in the other; they do not establish equivalence.", "Pearson's r summarizes a linear relationship. Spearman's rho compares ranks and can detect a monotonic relationship on different scales. The same isolate appears in several pairs, so ordinary independent-observation p-values would be inappropriate. Use the optional Mantel permutation test for matrix association."), shiny::uiOutput("overview"), + shiny::uiOutput("overview_insight"), shiny::h4("Association between matrices"), shiny::tableOutput("agreement"), + shiny::actionButton("overview_open_pairs", + "Inspect the pairs behind these numbers", class = "btn-default"), shiny::uiOutput("mantel_note"), shiny::verbatimTextOutput("mantel_result"), shiny::h4("Within- and between-group values"), @@ -284,6 +287,7 @@ ui <- shiny::fluidPage( "Each matrix is independently clustered and cut into the same chosen number of groups (k). The statistics compare which isolate pairs are grouped together, regardless of the arbitrary cluster numbers.", "Adjusted Rand index (ARI) equals 1 for identical partitions and is near 0 for chance-level agreement under its adjustment model. Adjusted Wallace is directional: matrix 1 to matrix 2 asks whether pairs grouped together in the first remain together in the second, adjusted for chance. Reverse the direction for the other value. These numbers describe agreement, not biological accuracy or a probability that either method is correct."), shiny::uiOutput("cluster_intro"), + shiny::uiOutput("cluster_insight"), shiny::tableOutput("cluster_summary"), shiny::h4("How the clusters overlap"), shiny::tableOutput("cluster_overlap"), From 5dbfc72cb0fb45eb4ff06771b32509ed40f80b7d Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Tue, 29 Sep 2026 14:15:23 +0200 Subject: [PATCH 122/134] feat: give researchers numerical context and one-click follow-up from result summaries --- server.R | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 58 insertions(+), 5 deletions(-) diff --git a/server.R b/server.R index 81aa645..57398e1 100644 --- a/server.R +++ b/server.R @@ -274,6 +274,9 @@ server <- function(input, output, session) { return(invisible(NULL)) } current_goal(list(tab = tab, title = title, hint = hint)) + if (is.null(input$research_question) || + !nzchar(trimws(input$research_question))) + shiny::updateTextInput(session, "research_question", value = title) shiny::updateTabsetPanel(session, "results_tab", selected = tab) } shiny::observeEvent(input$start_agreement, @@ -284,6 +287,10 @@ server <- function(input, output, session) { open_question("Pairwise comparison", "Which isolate pairs need follow-up?", "Select an unusual pair below to inspect its original values and sample groups.", requires_two = TRUE)) + shiny::observeEvent(input$overview_open_pairs, + open_question("Pairwise comparison", "Which pairs explain the matrix association?", + "The pair inspector uses exact original values, including pairs that were not in a scatterplot sample.", + requires_two = TRUE)) shiny::observeEvent(input$start_cluster, open_question("Cluster comparison", "Do the methods group isolates similarly?", "Use the cluster-overlap table; change the number of clusters if justified.", @@ -324,6 +331,12 @@ server <- function(input, output, session) { ), if (is.null(d$second)) shiny::p("You can explore the matrix now. For method agreement and pair discrepancies, upload a second matrix."), + if (!is.null(d$second) && + length(intersect(colnames(d$first), colnames(d$second))) < + max(nrow(d$first), nrow(d$second))) + shiny::p(sprintf( + "Only %d isolates are shared; the individual heatmaps still contain the unmatched samples.", + n_shared)), if (is.null(d$metadata)) shiny::p("Add metadata if you want to explore known groups or possible batch patterns."), if (d$clustering_skipped) @@ -424,6 +437,27 @@ server <- function(input, output, session) { else "Direct differences are hidden until you confirm that the two matrices measure the same quantity in the same units.") ) }) + output$overview_insight <- shiny::renderUI({ + d <- data() + if (is.null(d$second)) + return(shiny::p(class = "section-note", + "With one matrix, explore the heatmap or upload a second matrix to compare methods.")) + pairs <- pair_data() + stats <- manir_directional_association(pairs, d$kind1, d$kind2) + if (!is.finite(stats$spearman)) + return(shiny::div(class = "start-status empty", + shiny::strong("Rank correlation is not estimable"), + shiny::p("The values may be constant or there may be too few usable isolate pairs. Inspect the original matrices."))) + shiny::div(class = "start-status ready", + shiny::strong(sprintf("For %s vs %s, Spearman rho = %s", + d$label1, d$label2, manir_fmt(stats$spearman))), + shiny::p(sprintf( + "Calculated from %s unordered isolate pairs%s. Values for distance matrices are reversed in this summary so that a larger oriented value always means greater similarity.", + format(stats$n, big.mark = ","), + if (pairs$sampled) " in a reproducible subset" else "")), + shiny::p("This describes the ranking of pairs, not whether either method is biologically correct. Check individual discrepancies and experimental metadata next.") + ) + }) output$agreement <- shiny::renderTable({ shiny::req(has_two()) pp <- pair_data() @@ -696,10 +730,10 @@ server <- function(input, output, session) { "At least two nonmissing sample pairs are needed.")) current <- data() first_label <- if (identical(current$source, "synthetic example")) - "Illustrative ANI (%)" else paste("Matrix 1 (", current$kind1, ")", sep = "") + "Illustrative ANI (%)" else sprintf("%s (%s)", current$label1, current$kind1) second_label <- if (identical(current$source, "synthetic example")) "Illustrative MALDI similarity (0–1)" else - paste("Matrix 2 (", current$kind2, ")", sep = "") + sprintf("%s (%s)", current$label2, current$kind2) graphics::plot(d$first, d$second, pch = 19L, col = grDevices::adjustcolor("#305f86", alpha.f = 0.58), cex = 0.9, xlab = first_label, ylab = second_label, @@ -762,6 +796,22 @@ server <- function(input, output, session) { kind_b = data()$kind2, k = input$cluster_k, linkage = data()$linkage) }) + output$cluster_insight <- shiny::renderUI({ + d <- data() + if (is.null(d$second)) + return(shiny::p("Load a second matrix to compare cluster assignments.")) + c <- concordance() + shiny::div(class = "start-status ready", + shiny::strong(sprintf("%d shared isolates were partitioned into %d groups in each matrix.", + nrow(c$assignments), input$cluster_k)), + shiny::p(sprintf( + "Adjusted Rand index: %s. Adjusted Wallace, %s to %s: %s; in reverse: %s.", + manir_fmt(c$ari), d$label1, d$label2, + manir_fmt(c$adjusted_wallace_1_to_2), + manir_fmt(c$adjusted_wallace_2_to_1))), + shiny::p("The group numbers are arbitrary. Use the overlap table to identify groups that split between methods, then inspect those isolates in the heatmap or pair view.") + ) + }) output$cluster_intro <- shiny::renderUI({ shiny::req(has_two()) d <- data() @@ -771,9 +821,10 @@ server <- function(input, output, session) { }) output$cluster_summary <- shiny::renderTable({ c <- concordance() + d <- data() data.frame(measure = c("Adjusted Rand index", - "Adjusted Wallace (matrix 1 -> matrix 2)", - "Adjusted Wallace (matrix 2 -> matrix 1)"), + sprintf("Adjusted Wallace (%s -> %s)", d$label1, d$label2), + sprintf("Adjusted Wallace (%s -> %s)", d$label2, d$label1)), value = c(c$ari, c$adjusted_wallace_1_to_2, c$adjusted_wallace_2_to_1)) }) @@ -787,7 +838,9 @@ server <- function(input, output, session) { }, rownames = FALSE) output$cluster_table <- shiny::renderTable({ assignment <- utils::head(concordance()$assignments, 100L) - names(assignment) <- c("Isolate", "Matrix 1 cluster", "Matrix 2 cluster") + d <- data() + names(assignment) <- c("Isolate", paste(d$label1, "cluster"), + paste(d$label2, "cluster")) assignment }, rownames = FALSE) group_summary <- shiny::reactive({ From 5dc0b686365c8fc191d87c9c20ed2395721a7956 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Tue, 29 Sep 2026 14:16:04 +0200 Subject: [PATCH 123/134] docs: provide a question-led MAniR research walkthrough with real next steps --- docs/RESEARCH_WORKFLOWS.md | 127 +++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 docs/RESEARCH_WORKFLOWS.md diff --git a/docs/RESEARCH_WORKFLOWS.md b/docs/RESEARCH_WORKFLOWS.md new file mode 100644 index 0000000..74673c8 --- /dev/null +++ b/docs/RESEARCH_WORKFLOWS.md @@ -0,0 +1,127 @@ +# Analyze a research question with MAniR + +MAniR accepts **precomputed, symmetric, named pairwise matrices**. It does not +process raw MALDI-TOF spectra or calculate ANI from genome assemblies. A matrix +has one row and one column per isolate. The number at an intersection +describes that pair. All comparisons require the **same isolate IDs** or a +deliberately selected intersection. + +The application now starts with a question rather than a list of statistical +tools. You can work through a whole analysis without needing to know which +statistic to choose in advance. + +## Begin with your own data + +1. Upload your first matrix. CSV and RDS are preferable for very large + datasets; Excel workbooks can contain two matrices and a metadata sheet. +2. Provide short names such as "ANI from WGS" and "MALDI similarity" and + identify each matrix as similarity, correlation or distance. These choices + matter for clustering and the direction of rank comparisons. +3. Upload a second matrix if comparing methods, and a metadata table if + examining known biological groups, specimen sources or experimental batches. + Choose whether the datasets must contain exactly the same isolates or + whether only shared isolates should be compared. +4. Click **Load and analyze uploaded files**. The start page shows how many + samples are available, which questions you can answer and whether matching + removed any isolates. You can always return to this page via **All questions** + or the **Start here** tab. + +To try the workflow without data, click **Load example**. This loads 12 fictional +isolates, a percentage-like ANI matrix, a 0–1 MALDI-like similarity matrix and +group/source/batch metadata. These numbers are synthetic and must not be used +as measured biological evidence. + +## Question 1: Do the methods describe similar relationships? + +Click **Compare the methods**. Start with Spearman's rank correlation: +it summarizes whether isolate pairs that rank high in one method tend to +rank high in the other. Pearson's r describes a linear relationship. +For distance matrices, MAniR reverses their direction in these association +summaries so that higher oriented values always mean greater similarity. + +Use **Inspect the pairs behind these numbers** to see the original scatterplot. +An overall correlation can coexist with individual pairs that rank very +differently, so review them before writing a conclusion. The optional Mantel +test uses whole-isolate label permutations for complete datasets of at most +400 isolates. It tests matrix association, not equivalent typing accuracy. + +## Question 2: Which isolate pairs deserve follow-up? + +Click **Find unusual pairs**. MAniR lists pairs with the largest **rank gaps**: +pairs occupying noticeably different positions in the two ranked lists. +Choose a pair from that list, or type any two shared isolate IDs in the +search boxes. MAniR shows their exact original values and, when selected, +their metadata group labels. The corresponding point is outlined in the +scatterplot, even if the pair was absent from a sampled overview. + +In the fictional example, try **ISO_02 and ISO_03**. They have ANI-like +similarity 99.655 and MALDI-like similarity 0.52. A difference in rankings +is a prompt to inspect the spectra, genome quality and metadata, **not** +evidence of an error or a statistically significant outlier. + +For very large datasets, the scatterplot and ranked list may use up to +the chosen maximum number of sampled pairs. The direct isolate-pair +inspector always looks up the original source matrices, not a sampled +or normalized preview. + +## Question 3: Do the methods group isolates similarly? + +Click **Compare clusters**. Pick the number of clusters (k) in the toolbar. +Each matrix is clustered independently using your selected linkage and then +cut into k groups. The overlap table shows exactly how memberships +correspond between methods. + +The adjusted Rand index compares the two partitions independent of +their arbitrary numeric cluster labels. The adjusted Wallace coefficients +ask directional questions and need not be equal. Compare their values with +the cluster-overlap table before deciding which isolates need inspection. +Neither measure establishes biological typing accuracy. + +Clustering is limited to 2,000 shared isolates in the current implementation. +For larger data, start by exploring a justified subset or import a +precomputed sample order. + +## Question 4: Are known groups, replicates or batches reflected in the data? + +Click **Explore my groups**. Select a group, replicate identifier or batch +column from **Group / annotation** in the results toolbar. MAniR shows +within-group and between-group pair counts, mean/median values and separate +distribution plots for each available matrix, each in its **own original units**. + +A difference may indicate a feature worth investigating, but the isolate +pairs in these plots are **not independent replicates**. Biological groups +and experimental batches can also be confounded. The summaries are +descriptive and are not a formal test of batch effects or discrimination. + +## Question 5: What does a particular cell mean? + +Click **Explore heatmaps** and hover over the cell to see the original +value. The two combined views put one matrix above the diagonal and the +other below, reordering both by either method. Each triangle uses its +own display normalization. Equal colors in different matrices do **not** +mean equal biological similarity. On large data, zoom into a smaller +region to inspect it without sending the entire matrix to the browser. + +The Difference view is available only after explicitly confirming +equivalent measurements and units. It is deliberately blocked for the +mixed-unit teaching example. If ANI is expressed in percentages and +MALDI similarity is on a 0–1 scale, use the scatterplot and rank-gap +inspection instead of subtracting the matrices. + +## Record your observations + +Click **Open exports** or visit **Export** when you have explored the +question. Enter your research question and write your observations and +planned follow-up. **Download research notes (.md)** creates an editable +Markdown record containing the dataset names, analysis settings, pair +association statistics, and any selected metadata group summaries. +Cluster statistics are included only if you explicitly enable their +calculation in Export. This does not automatically run the Mantel test. +The text includes cautions about pair dependence and synthetic data. + +Save the original CSV/RDS matrices alongside the notes and figures. +Static and HTML plots may show normalized or downsampled previews, +while CSV and RDS exports retain original values. + +For details of each statistical quantity, see +[Reading MAniR results](INTERPRETING_RESULTS.md). From 76adb285351d441644bec7d928e1b72d22cf91e3 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Tue, 29 Sep 2026 14:16:20 +0200 Subject: [PATCH 124/134] docs: explain researcher-first workflow and editable notes --- README.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 715884e..2e32d2d 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,13 @@ MAniR is an R Shiny application for investigating pairwise relationships between This development branch is **MAniR 3.0 prerelease**. The historical application remains available in the repository's Git history and on `main` until the upgrade is reviewed. Do not cite an unverified performance improvement: the benchmark scripts need to be run on specified hardware. +**Start with your research question.** After loading data, the first screen +offers five practical routes: compare methods, inspect unusual isolate pairs, +compare clusters, explore known groups/batches, or inspect a matrix. You do +not need to pick a statistic before you know what you are looking for. See the +[step-by-step research walkthrough](docs/RESEARCH_WORKFLOWS.md) for an +example and suggested next steps. + For help understanding the plots, correlations, directional cluster agreement, rank gaps, metadata tracks and the restrictions on difference maps, see [Reading MAniR results](docs/INTERPRETING_RESULTS.md). The application also @@ -54,7 +61,7 @@ On a desktop window, MAniR keeps the analysis results and control sidebar in files** button stays visible when you scroll through the upload options. The right-hand toolbar remains visible when you scroll through a result. -After you load data, MAniR opens **Heatmaps → Matrix 1** automatically. +After you load data, MAniR opens **Start here**, where you choose a research question. Choosing **Explore heatmaps** opens **Heatmaps → Matrix 1**. The primary navigation groups all five heatmap views under **Heatmaps**, with a compact secondary menu for Matrix 1, Matrix 2, both combined orderings and Difference. Other tabs are Overview, Pairwise comparison, Cluster @@ -113,7 +120,7 @@ MAniR accepts **precomputed** MALDI-TOF, ANI, dDDH and other pairwise results. R ## Export and reproducibility -The export tab provides exact input matrices as CSV, an RDS bundle containing both matrices, optional metadata and sample order, static PNG, PDF and SVG files, a standalone interactive HTML preview and a text manifest of analysis settings and R session information. Pairwise comparison and cluster assignments have their own CSV exports. PDF and SVG contain individual vector cells for matrices with at most 150 isolates and a representative raster for larger inputs. Interactive HTML previews include at most 300 isolates and require Pandoc for self-contained HTML. Large-image exports use representative raster views with up to 1,200 rows and columns, not an exact full-resolution image of a 10,000-isolate matrix. Exact difference matrices can be exported as CSV when both datasets have comparable numerical units. +The Export tab also provides an editable Markdown research summary with optional researcher notes, group summaries and explicitly requested cluster statistics. It does not run expensive permutation tests automatically. The export tab provides exact input matrices as CSV, an RDS bundle containing both matrices, optional metadata and sample order, static PNG, PDF and SVG files, a standalone interactive HTML preview and a text manifest of analysis settings and R session information. Pairwise comparison and cluster assignments have their own CSV exports. PDF and SVG contain individual vector cells for matrices with at most 150 isolates and a representative raster for larger inputs. Interactive HTML previews include at most 300 isolates and require Pandoc for self-contained HTML. Large-image exports use representative raster views with up to 1,200 rows and columns, not an exact full-resolution image of a 10,000-isolate matrix. Exact difference matrices can be exported as CSV when both datasets have comparable numerical units. To use MAniR reproducibly, archive the source matrices, the metadata, the settings manifest, the installed R package versions, the generated plots and the resulting tables. Never infer a biological cutoff from the normalized heatmap colors; inspect the original numeric values and justify cutoffs from the relevant study. From be5155979a729089adb6a469ac336900b0e09983 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Tue, 29 Sep 2026 14:16:23 +0200 Subject: [PATCH 125/134] docs: record question-based analysis changes and validation scope --- docs/UPGRADE_WORKLOG.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/docs/UPGRADE_WORKLOG.md b/docs/UPGRADE_WORKLOG.md index f6f3085..fd6c51a 100644 --- a/docs/UPGRADE_WORKLOG.md +++ b/docs/UPGRADE_WORKLOG.md @@ -90,3 +90,26 @@ these checks pass. The arXiv manuscript is outside this work scope. context-sensitive controls: color and zoom only for heatmaps, pair limits only for pairwise analysis, and k only for cluster comparison. Successful loading now opens Matrix 1 automatically, without page scrolling. + +## September 29, 2026: question-led research workflow + +- Added **Start here**, a task-based researcher home screen with five real + analysis questions and clear data prerequisites; loading an example or + user matrix returns to this screen. +- Added exact original-value drilldown for any pair of shared isolates, + selection from the top ranked disagreements, and point highlighting on + the scatterplot. Rank-gap lists may use a reproducibly sampled set of + pairs, but direct lookup always reads original matrices. +- Added metadata within-/between-group tables and separate original-scale + distribution plots for each matrix, with explicit caveats about + non-independent pairs and batch confounding. +- Added editable research notes in Markdown with source and analysis details, + group summaries and optional explicit clustering. The report does not + trigger a Mantel test and does not claim typing accuracy. +- Added researcher-entered matrix names, compact data-ready messages and + question-based navigation; preserved existing detailed tabs for advanced + users. Scientific summaries reverse distance direction when interpreting + pair relationships, while exact uploaded numbers are unchanged. +- Added regression and Shiny navigation tests and the walkthrough at + docs/RESEARCH_WORKFLOWS.md. Benchmarks still require repeatable hardware + measurements before any performance claims. From cd76d2e98d30ace74577681d8faac2d6e547f341 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Tue, 29 Sep 2026 14:16:55 +0200 Subject: [PATCH 126/134] fix: clearly uppercase synthetic warning in exported research notes --- R/research_workflows.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/research_workflows.R b/R/research_workflows.R index 50c2d03..cb6fad4 100644 --- a/R/research_workflows.R +++ b/R/research_workflows.R @@ -88,7 +88,7 @@ manir_research_report <- function(dataset, pairs = NULL, group_table = NULL, lines <- c("# MAniR analysis notes", "", if (nzchar(trimws(question))) paste("**Research question:**", trimws(question)) else NULL, - if (example) "**Teaching example: synthetic data, not biological evidence.**" else NULL, + if (example) "**SYNTHETIC teaching example: not measured biological evidence.**" else NULL, "## Dataset", "", paste("- Source:", dataset$source), sprintf("- %s: %d isolates (%s)", one, nrow(dataset$first), From 9cf1fae8747d41e7b2cd68aa9d9ae7e4b507075a Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Tue, 29 Sep 2026 14:33:39 +0200 Subject: [PATCH 127/134] docs: capture real Shiny screenshots with synthetic example using headless Chromium --- scripts/capture-docs-screenshots.js | 158 ++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 scripts/capture-docs-screenshots.js diff --git a/scripts/capture-docs-screenshots.js b/scripts/capture-docs-screenshots.js new file mode 100644 index 0000000..352bac3 --- /dev/null +++ b/scripts/capture-docs-screenshots.js @@ -0,0 +1,158 @@ +/* Capture REAL MAniR screens from a running Shiny session. + * Use only the bundled SYNTHETIC example, never a researcher's uploaded data. + * + * Run: + * Rscript -e "shiny::runApp('.', host='127.0.0.1', port=3838)" & + * npm install --no-save --no-package-lock playwright + * node scripts/capture-docs-screenshots.js + * + * Screenshots are deliberately not retouched or composited. + */ +const fs = require("node:fs"); +const path = require("node:path"); +const { chromium } = require("playwright"); + +const url = process.env.MANIR_SCREENSHOT_URL || "http://127.0.0.1:3838"; +const outputDir = path.resolve("docs/images"); +const screenshotOptions = { animations: "disabled", timeout: 30000 }; +const maxWait = 60000; + +function fail(message) { + throw new Error("MAniR screenshot capture: " + message); +} + +async function waitForText(page, selector, text) { + await page.waitForFunction( + ({ selector, text }) => + document.querySelector(selector)?.textContent?.includes(text), + { selector, text }, + { timeout: maxWait } + ); +} + +async function save(page, name) { + await page.screenshot({ + path: path.join(outputDir, name), + fullPage: false, + ...screenshotOptions + }); + const size = fs.statSync(path.join(outputDir, name)).size; + if (size < 8000) fail(name + " looks unexpectedly empty (" + size + " bytes)"); + console.log("Captured " + name + " (" + Math.round(size / 1024) + " KiB)"); +} + +async function goStart(page) { + await page.locator('a[data-toggle="tab"]') + .filter({ hasText: /^Start here$/ }).first().click(); + await page.locator("#start_heatmap").waitFor({ timeout: maxWait }); +} + +async function capture() { + fs.mkdirSync(outputDir, { recursive: true }); + const args = ["--no-sandbox", "--disable-dev-shm-usage"]; + const browser = await chromium.launch({ + headless: true, + executablePath: process.env.CHROME_BIN || undefined, + args + }); + const page = await browser.newPage({ + viewport: { width: 1680, height: 1000 }, + deviceScaleFactor: 1, + colorScheme: "light", + reducedMotion: "reduce" + }); + const errors = []; + page.on("pageerror", e => errors.push(e.message)); + page.on("console", message => { + if (message.type() === "error") console.log("Browser:", message.text()); + }); + + try { + const response = await page.goto(url, { + waitUntil: "domcontentloaded", + timeout: maxWait + }); + if (!response?.ok()) fail("Shiny app returned HTTP " + response?.status()); + await page.locator("#load_example").waitFor({ timeout: maxWait }); + await page.locator("#load_example").click(); + await waitForText(page, "#research_status", "Teaching example ready"); + await waitForText(page, "#research_status", "12"); + // Give the example-loaded notification time to disappear. + await page.waitForTimeout(4400); + await save(page, "start-here.png"); + + // Real Plotly heatmap, with the default metadata field in the example. + await page.locator("#start_heatmap").click(); + await page.locator("#plot1_interactive .main-svg") + .waitFor({ timeout: maxWait }); + await waitForText(page, "#plot1_intro", "12 isolates"); + await page.waitForTimeout(600); + await save(page, "heatmap.png"); + + // Real split-triangle view, both matrices ordered by the first. + await page.locator('a[data-toggle="tab"]') + .filter({ hasText: /^Combined \(order 1\)$/ }).first().click(); + await page.locator("#combined1_interactive .main-svg") + .waitFor({ timeout: maxWait }); + await page.waitForTimeout(600); + await save(page, "combined-heatmap.png"); + + await goStart(page); + await page.locator("#start_agreement").click(); + await page.locator("#agreement table").waitFor({ timeout: maxWait }); + await page.waitForTimeout(300); + await save(page, "method-overview.png"); + + await goStart(page); + await page.locator("#start_pairs").click(); + await waitForText(page, "#pair_inspection", "0.52"); + await page.locator("#scatter img").waitFor({ timeout: maxWait }); + await page.waitForTimeout(400); + await save(page, "pairwise-comparison.png"); + await page.locator(".pair-focus").screenshot({ + path: path.join(outputDir, "pair-inspector.png"), + ...screenshotOptions + }); + + await goStart(page); + await page.locator("#start_cluster").click(); + await page.locator("#cluster_summary table").waitFor({ timeout: maxWait }); + await page.locator("#cluster_overlap table").waitFor({ timeout: maxWait }); + await page.waitForTimeout(400); + await save(page, "cluster-comparison.png"); + + await goStart(page); + await page.locator("#start_groups").click(); + await waitForText(page, "#metadata_group_status", "Exploring"); + await page.locator("#group_distributions img") + .waitFor({ timeout: maxWait }); + await page.waitForTimeout(400); + await save(page, "metadata-groups.png"); + + await goStart(page); + await page.locator("#start_export").click(); + await page.locator("#research_question").fill( + "Do MALDI-TOF similarities reflect genomic ANI relationships?" + ); + await page.locator("#research_notes").fill( + "Synthetic teaching example. Inspect discordant isolate pairs and " + + "check whether the selected metadata groups explain the difference. " + + "Follow up with real spectra and sequence quality controls." + ); + await page.waitForTimeout(300); + await save(page, "research-notes-export.png"); + + if (errors.length) { + // Shiny/Plotly can issue nonfatal widget warnings. Retain logs for + // review instead of claiming the screenshots are error-free. + console.warn("Browser JS messages:", errors.join(" | ")); + } + } finally { + await browser.close(); + } +} + +capture().catch(error => { + console.error(error); + process.exitCode = 1; +}); From 5c12535cb475be36c6c69d328b409e9b36d27e00 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Tue, 29 Sep 2026 14:34:05 +0200 Subject: [PATCH 128/134] ci(docs): run real Shiny and capture reproducible example screenshots in GitHub Actions --- .github/workflows/docs-screenshots.yml | 99 ++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 .github/workflows/docs-screenshots.yml diff --git a/.github/workflows/docs-screenshots.yml b/.github/workflows/docs-screenshots.yml new file mode 100644 index 0000000..20b55e8 --- /dev/null +++ b/.github/workflows/docs-screenshots.yml @@ -0,0 +1,99 @@ +name: Capture real MAniR documentation screenshots + +on: + push: + branches: + - upgrade/scalable-analysis + paths: + - scripts/capture-docs-screenshots.js + - .github/workflows/docs-screenshots.yml + - app.R + - ui.R + - server.R + - R/** + - www/** + - examples/** + workflow_dispatch: + +permissions: + contents: write + +jobs: + capture-screens: + name: Real Shiny screenshot capture + if: github.ref == 'refs/heads/upgrade/scalable-analysis' + runs-on: ubuntu-latest + timeout-minutes: 25 + steps: + - uses: actions/checkout@v4 + with: + persist-credentials: true + + - uses: r-lib/actions/setup-r@v2 + with: + use-public-rspm: true + + - uses: r-lib/actions/setup-r-dependencies@v2 + with: + cache-version: 1 + + - uses: actions/setup-node@v4 + with: + node-version: '22' + + - name: Install browser driver + run: | + npm install --no-save --no-package-lock playwright@1.55.1 + if command -v google-chrome >/dev/null 2>&1; then + echo "CHROME_BIN=$(command -v google-chrome)" >> "$GITHUB_ENV" + elif command -v chromium >/dev/null 2>&1; then + echo "CHROME_BIN=$(command -v chromium)" >> "$GITHUB_ENV" + else + npx playwright install --with-deps chromium + fi + + - name: Start real MAniR Shiny app + run: | + nohup Rscript -e "shiny::runApp('.', host='127.0.0.1', port=3838, launch.browser=FALSE)" \ + > "$RUNNER_TEMP/manir-shiny.log" 2>&1 & + echo $! > "$RUNNER_TEMP/manir-shiny.pid" + for attempt in $(seq 1 90); do + if curl --silent --fail --output /dev/null http://127.0.0.1:3838; then + echo "MAniR is running"; break + fi + sleep 2 + done + curl --silent --fail http://127.0.0.1:3838 >/dev/null || { + cat "$RUNNER_TEMP/manir-shiny.log" + exit 1 + } + + - name: Capture actual example-data screens + run: node scripts/capture-docs-screenshots.js + env: + MANIR_SCREENSHOT_URL: http://127.0.0.1:3838 + + - name: Upload screenshots for review + if: always() + uses: actions/upload-artifact@v4 + with: + name: actual-manir-screenshots + path: docs/images/*.png + if-no-files-found: warn + + - name: Store actual screenshots on development branch + if: success() + run: | + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + git add docs/images/*.png + if git diff --cached --quiet; then + echo "Documentation screenshots unchanged" + else + git commit -m "docs: update real Shiny screenshots from synthetic example" + git push origin HEAD:upgrade/scalable-analysis + fi + + - name: Show Shiny server logs on failure + if: failure() + run: cat "$RUNNER_TEMP/manir-shiny.log" || true From 682973bcc74cc7896bb0ed1de3ae86e4b5575eb4 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Tue, 29 Sep 2026 14:35:41 +0200 Subject: [PATCH 129/134] docs: add real application screenshot gallery to README --- README.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/README.md b/README.md index 2e32d2d..cb15468 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,28 @@ rank gaps, metadata tracks and the restrictions on difference maps, see [Reading MAniR results](docs/INTERPRETING_RESULTS.md). The application also displays a short explanation directly on each analysis tab. +## See the actual interface + +These screenshots are captured from a running copy of MAniR with the bundled +**synthetic example**. They show the real Shiny controls and output, rather +than design illustrations. The [research walkthrough](docs/RESEARCH_WORKFLOWS.md) +has a screenshot for each step. + +![MAniR start page showing available research questions after loading the example](docs/images/start-here.png) + +*The Start here page: load data, then choose the question you want to answer.* + +| Explore sample relationships | Investigate discordant isolate pairs | +| --- | --- | +| ![Actual MAniR similarity heatmap](docs/images/heatmap.png) | ![Actual MAniR pairwise comparison](docs/images/pairwise-comparison.png) | + +| Compare cluster assignments | Explore groups and batches | +| --- | --- | +| ![Actual MAniR cluster comparison](docs/images/cluster-comparison.png) | ![Actual MAniR metadata group analysis](docs/images/metadata-groups.png) | + +*Screens are recorded at 1680 × 1000 using the synthetic example. Layout and +colors may differ at other window sizes or after you adjust settings.* + ## Installation Install R 4.2 or later. The upload limit defaults to 1,024 MB and can be configured with the `MANIR_MAX_UPLOAD_MB` environment variable. Plan available RAM for at least the uploaded matrices plus working data, especially for two 10,000-isolate matrices. For those larger projects, RDS or CSV is preferable to Excel. In the repository directory, run: From 4b2bf85c43dc0cd013af0e29da536553afcc4fa7 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Tue, 29 Sep 2026 14:35:44 +0200 Subject: [PATCH 130/134] docs: illustrate researcher workflows with actual Shiny captures --- docs/RESEARCH_WORKFLOWS.md | 51 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/docs/RESEARCH_WORKFLOWS.md b/docs/RESEARCH_WORKFLOWS.md index 74673c8..b29f633 100644 --- a/docs/RESEARCH_WORKFLOWS.md +++ b/docs/RESEARCH_WORKFLOWS.md @@ -10,6 +10,11 @@ The application now starts with a question rather than a list of statistical tools. You can work through a whole analysis without needing to know which statistic to choose in advance. +![Actual Start here screen in running MAniR](images/start-here.png) + +*Actual Shiny app after loading the bundled synthetic example. Choose a +research question to jump directly to the relevant results.* + ## Begin with your own data 1. Upload your first matrix. CSV and RDS are preferable for very large @@ -33,6 +38,12 @@ as measured biological evidence. ## Question 1: Do the methods describe similar relationships? +![Actual MAniR overview showing method association](images/method-overview.png) + +*Overview: the original matrices' association summary, with a direct link to +inspect the isolate pairs behind it.* + + Click **Compare the methods**. Start with Spearman's rank correlation: it summarizes whether isolate pairs that rank high in one method tend to rank high in the other. Pearson's r describes a linear relationship. @@ -47,6 +58,17 @@ test uses whole-isolate label permutations for complete datasets of at most ## Question 2: Which isolate pairs deserve follow-up? +![Actual MAniR pairwise comparison after loading example data](images/pairwise-comparison.png) + +*Each scatterplot point represents a unique isolate pair. The pair inspector +and rank-gap list appear in this view.* + +![Close-up of the actual pair inspector](images/pair-inspector.png) + +*Select two isolates to read the original values and available metadata. +The highlighted example pair uses fictional data.* + + Click **Find unusual pairs**. MAniR lists pairs with the largest **rank gaps**: pairs occupying noticeably different positions in the two ranked lists. Choose a pair from that list, or type any two shared isolate IDs in the @@ -66,6 +88,12 @@ or normalized preview. ## Question 3: Do the methods group isolates similarly? +![Actual MAniR cluster comparison and overlap table](images/cluster-comparison.png) + +*Cluster comparison: agreement measures, overlap and memberships for shared +isolates.* + + Click **Compare clusters**. Pick the number of clusters (k) in the toolbar. Each matrix is clustered independently using your selected linkage and then cut into k groups. The overlap table shows exactly how memberships @@ -83,6 +111,12 @@ precomputed sample order. ## Question 4: Are known groups, replicates or batches reflected in the data? +![Actual MAniR metadata summaries and group distributions](images/metadata-groups.png) + +*Choose a metadata field to see descriptive within-group and between-group +measurements on each matrix's original scale.* + + Click **Explore my groups**. Select a group, replicate identifier or batch column from **Group / annotation** in the results toolbar. MAniR shows within-group and between-group pair counts, mean/median values and separate @@ -95,6 +129,17 @@ descriptive and are not a formal test of batch effects or discrimination. ## Question 5: What does a particular cell mean? +![Actual MAniR matrix view with example data](images/heatmap.png) + +*The first matrix view. Hover over a cell in the live app for its exact +original numerical value.* + +![Actual MAniR split-triangle combined heatmap](images/combined-heatmap.png) + +*The combined view displays different input matrices in the two triangles; +each triangle uses independent display normalization.* + + Click **Explore heatmaps** and hover over the cell to see the original value. The two combined views put one matrix above the diagonal and the other below, reordering both by either method. Each triangle uses its @@ -110,6 +155,12 @@ inspection instead of subtracting the matrices. ## Record your observations +![Actual MAniR export panel with illustrative researcher notes entered for the screenshot](images/research-notes-export.png) + +*The export page with illustrative notes entered during screenshot capture. +The app does not automatically write these observations or conclusions.* + + Click **Open exports** or visit **Export** when you have explored the question. Enter your research question and write your observations and planned follow-up. **Download research notes (.md)** creates an editable From f039f5b38c2f50164752d2eb76522ed0854273cf Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Tue, 29 Sep 2026 14:35:47 +0200 Subject: [PATCH 131/134] docs: pair interpretation guidance with actual app screenshots --- docs/INTERPRETING_RESULTS.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/docs/INTERPRETING_RESULTS.md b/docs/INTERPRETING_RESULTS.md index 739c7ac..f995a3d 100644 --- a/docs/INTERPRETING_RESULTS.md +++ b/docs/INTERPRETING_RESULTS.md @@ -25,6 +25,11 @@ transformation changes the input type. ## Reading single heatmaps +![Screenshot from the running MAniR app: heatmap](images/heatmap.png) + +*The actual Matrix 1 tab with the bundled synthetic data.* + + Each cell is one row-isolate versus column-isolate comparison. A symmetric matrix repeats the same number on both sides of the diagonal. Clustering reorders the rows and columns **together**, placing similar patterns adjacent. @@ -47,6 +52,11 @@ over the plot. ## The two combined views +![Screenshot from the running MAniR app: combined matrix](images/combined-heatmap.png) + +*The actual split-matrix view. Its two triangles are scaled separately.* + + A split matrix uses **matrix 1 above the diagonal** and **matrix 2 below the diagonal**, with the same isolates along both axes. Combined (order 1) uses clustering from matrix 1; Combined (order 2) puts matrix 2 above the @@ -61,6 +71,15 @@ contributed a cell and its original value. ## Pairwise comparison and rank gaps +![Screenshot from the running MAniR app: pairwise scatterplot](images/pairwise-comparison.png) + +*The actual scatterplot and pair selection workflow.* + +![Actual original-value pair inspector](images/pair-inspector.png) + +*Inspect the original numerical values for a selected isolate pair.* + + Each scatterplot dot shows one unique unordered pair of isolates. For n isolates, there are n(n-1)/2 pairs, excluding the diagonal and the mirrored half. With the 12-isolate example, that is 66 pairs. Matrix 1 @@ -99,6 +118,12 @@ describe **that sample**, not necessarily every pair in the input. ## Cluster agreement +![Actual MAniR cluster comparison with overlap table](images/cluster-comparison.png) + +*Compare the group assignments across methods instead of comparing arbitrary +cluster numbers directly.* + + Choose the number of clusters k in the sidebar. MAniR independently clusters each matrix using its specified type, then cuts both trees into k groups. The linkage method and choice of k may change the result. @@ -150,6 +175,16 @@ A difference by itself does not establish which method is correct. ## Metadata and reproducibility +![Actual MAniR metadata comparison](images/metadata-groups.png) + +*Within-group and between-group summaries for the selected metadata field.* + +![Actual MAniR export page](images/research-notes-export.png) + +*Save an editable research record alongside the original matrices and +figures.* + + Metadata categories (group, source, batch, etc.) are descriptive. Within-group versus between-group pair summaries may suggest something to investigate, but they are not independent-replicate statistical tests From ee22e3fe75513e2b2e9410d58297f396a38a9b06 Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Tue, 29 Sep 2026 14:36:13 +0200 Subject: [PATCH 132/134] fix(docs): target first of Plotly's multiple SVG layers in real screenshot capture --- scripts/capture-docs-screenshots.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/capture-docs-screenshots.js b/scripts/capture-docs-screenshots.js index 352bac3..afb260f 100644 --- a/scripts/capture-docs-screenshots.js +++ b/scripts/capture-docs-screenshots.js @@ -83,7 +83,7 @@ async function capture() { // Real Plotly heatmap, with the default metadata field in the example. await page.locator("#start_heatmap").click(); - await page.locator("#plot1_interactive .main-svg") + await page.locator("#plot1_interactive .main-svg").first() .waitFor({ timeout: maxWait }); await waitForText(page, "#plot1_intro", "12 isolates"); await page.waitForTimeout(600); @@ -92,7 +92,7 @@ async function capture() { // Real split-triangle view, both matrices ordered by the first. await page.locator('a[data-toggle="tab"]') .filter({ hasText: /^Combined \(order 1\)$/ }).first().click(); - await page.locator("#combined1_interactive .main-svg") + await page.locator("#combined1_interactive .main-svg").first() .waitFor({ timeout: maxWait }); await page.waitForTimeout(600); await save(page, "combined-heatmap.png"); From 0fdd220db1871b1e8351ce13af076d20126ed95c Mon Sep 17 00:00:00 2001 From: spomlol <77454330+CedricHermansBIT@users.noreply.github.com> Date: Tue, 29 Sep 2026 14:37:59 +0200 Subject: [PATCH 133/134] ci(docs): serialize real screenshot captures and rebase image commits onto updated docs --- .github/workflows/docs-screenshots.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/docs-screenshots.yml b/.github/workflows/docs-screenshots.yml index 20b55e8..c15c929 100644 --- a/.github/workflows/docs-screenshots.yml +++ b/.github/workflows/docs-screenshots.yml @@ -15,6 +15,10 @@ on: - examples/** workflow_dispatch: +concurrency: + group: manir-real-screenshots-${{ github.ref }} + cancel-in-progress: true + permissions: contents: write @@ -91,6 +95,9 @@ jobs: echo "Documentation screenshots unchanged" else git commit -m "docs: update real Shiny screenshots from synthetic example" + # The docs may have changed while this browser job was running. + git fetch origin upgrade/scalable-analysis + git rebase origin/upgrade/scalable-analysis git push origin HEAD:upgrade/scalable-analysis fi From 229ad90cb421a1d5e03b437ed8181a1a46943c3f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 29 Sep 2026 12:40:00 +0000 Subject: [PATCH 134/134] docs: update real Shiny screenshots from synthetic example --- docs/images/cluster-comparison.png | Bin 0 -> 175908 bytes docs/images/combined-heatmap.png | Bin 0 -> 159262 bytes docs/images/heatmap.png | Bin 0 -> 152668 bytes docs/images/metadata-groups.png | Bin 0 -> 194094 bytes docs/images/method-overview.png | Bin 0 -> 192129 bytes docs/images/pair-inspector.png | Bin 0 -> 37114 bytes docs/images/pairwise-comparison.png | Bin 0 -> 154581 bytes docs/images/research-notes-export.png | Bin 0 -> 159420 bytes docs/images/start-here.png | Bin 0 -> 186292 bytes 9 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/cluster-comparison.png create mode 100644 docs/images/combined-heatmap.png create mode 100644 docs/images/heatmap.png create mode 100644 docs/images/metadata-groups.png create mode 100644 docs/images/method-overview.png create mode 100644 docs/images/pair-inspector.png create mode 100644 docs/images/pairwise-comparison.png create mode 100644 docs/images/research-notes-export.png create mode 100644 docs/images/start-here.png diff --git a/docs/images/cluster-comparison.png b/docs/images/cluster-comparison.png new file mode 100644 index 0000000000000000000000000000000000000000..fa91c92ddc7862ff6acaf445fe1fcc75dc28851c GIT binary patch literal 175908 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�T9IOo< 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

VP-p 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

~$}f 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 H7NP$GX3}`M literal 0 HcmV?d00001 diff --git a/docs/images/metadata-groups.png b/docs/images/metadata-groups.png new file mode 100644 index 0000000000000000000000000000000000000000..902b27e54b9a5c99bcbb79f86199b49598bfdd3b GIT binary patch literal 194094 zcmeFYWmKC@_cuyQ3$$2U3KTD;xCD1dizLJ6|d<(<2?LgB>m%A zcp8(6X=IMo4=ygQ(esJOG#Bgqy2z#6lpkE-c}6?ryl;Mde$R&U<@3vcPdR}8HV(a+ zRb!};%B8Tfof|u`?MOiKiM}Ezv&wBWnK5l1mui? zo;N_bYa#pJu`%{SL^$8ptV>9!xW?8EUNWa9PA}Ky9@(kdB$w(PshTL}c*GBMV)}_< zBkH+G{HgVpV4`645ug#R7vd$Gt7 zUVUGsMe?j;_|XZwWx~yXgrB5%}!>eg^RK z{AHc=C3r6w4Tk%rk5QYID5LqZeK*Ic!~Vw~TQc4CLOWb2(Yw(^e5u`tXj6M;*_@NH$*){R+(ZW3Txmx5dK#2T2;+|F&?1$m6KKv`wPb@4 zD45f(s3!^jU!DHGbq0fHo-|;KSWp%6#ze5&KYcYJ9#fsm%~w4kxF$Fu`Al!2e@5Hg zdMB=CGK|T{&MW1$<9;v51}9y2Mf&nri$j?QAF11;TfCx>t{cqxBwwGJRs0wCCTRmr zH70^?&jgOK7q7H+UFTb=O^o%FFkX~S0ZbjJJrq6rm z0$VIt0E84@lY1}BillZK6a_Jp|9jBXIxZ}I&a5;2oIW4d_d-H$C@-l18=v1$8g*~N z$msq|Z2Y8zj2e!^vpRpwO@%&3`i5U#qy>#wG37bET2v`Q8cCz7BX*TzzHX+Hd?x-SL0 zl0gYspz-gy8PqYpUQzM43qxpZYZ)zFo%xxZA35#RWFkxL-z0g1Ex!>$nOSY^s%t#S zUWliq$`*|`&uFY8=h8BjseOF^}*9-o&Xc^4jcJ($YZo@o2k(jR@iA29xq#q?YCpYbf`$t)57Z8Pck zn#2`7*-$ZFmlVutZ9>^*5~ft2-}Bc>-fo;kTHD`v5QV%OMsmjHJc_B#^q7GR_@2)v zGj80{s&r@DU6c6 zj@?R{MFox5)qk=bNLOMiq&-&Bd)T*9C1n91w!jLuy-%ugbwN>$k?sa*YBKT9ftI4^e`BMu&-0RTpSbXOdk6Fps zq~CLC&IOgP31i0?{RTBZekIy!yqqnNv*l%(Ti|1I^9hU3g|&95pmdooI|F4@dE^px z<#vRv4iZAq8D426jo1FUnUwC6)q~{3UlWjMxRq_ZRvAtFA;#UA%)*CezgQevY^YJqRfR|BhYolp^g??v-%p>E%%Bpf z{@vP2wT%zzNnn00oYxoM$UP`gmqr(8}cklrXSo6D5zSrHn@ur`TG{cK=vO$4&j)XV0sbNTjk4C2qh&HKkeL)3bKE9I+8AF<#mNFr0w)E3q z2gVyL+?jcbsmKYJJ&F1C0Too-{6`d2h;qY>r9`q{xr=g;C|36(0=JCev|Ca(bT?nT zME>?rU{I20JxK7G^iVl~fL>=_nQZ)YhO4z~$j764f`r~)=*@Y$5XziU)p>nn+OCoe zHCK*pZylR-;AWNlg)_T%=*!924bp|hcbl8=z1rxgvZ?AZ_AFt^miGjfe)vajY4L9v ziuhoMLkv_`Wc_&_wVR91s}{B?R-2R6EU38Df^Hx0L_(V}^-@t#&T`oPkIn~Yh=@QD zLbH*vJ>s0+`mU#9dJ^avXRU}2*7ETR5Znp;>Xlwx8rSa$-oV=wpOOhQ8DVrGrgM>H z=Uk#;<<7q;foGS!UkDZLx&-{7)&4<69}#n+Pg~Q)shwP5`E>g3<}(2mM?DsfE~q^X zi!G1a4yWm-o-xav&6?1a=Y!!L0})F#YhD~aTcb5gzWSlYkx;U^a#BTe?@FjXsP_yW z672}-F}NN^Ca*&hXSuqjoY&=f9R8G&Rw*eTKYGzOaoPy`qhH>|(K8*_?fcB@k@x%- zGEweKMW3=fJ_|qj(?c0X+qjw0d1z*h>x*aAP=4_udF07=)^su$>iYwastO6kV}tId zCbu(nLR

    ip1zGBxHo>TT)p225%@lyZVD-7D_x_Y6}l&+DU}RH!2pm|;E#q@AAR zRsa)j`Ea!FuB>15m%I!Ki@W1oXGzLOzU7VZ_|KX}n+|#^Z@~NSwB!kfeZGqovfGbr zlSgbn_J4mC5@ADJTF7quOh{B?G>b;5i*JBjufu?CI*c zk)TFuA&K3=BmA$;G~~P?&FuGTv$Oq6FfX1 znL}@NFpWT8MtCQauHLLH&wFrKtVv$oZu}0g)ZY1-xYkG$aqOa8r(LdErU;bMv#Ftm z-L2i-VHvlxnx6zZRqQr++TAqkR>Fg+sYm2xuaIvyRr*;0*27IRd`DOnw4 zcz$zxk8qbJ=?i%*Zl?-;wegcYjPnFgZfTpWj}~wp2#c3X3My6yK_73GUaG9ypSElX zK4OSTbDVBU-AP$PcaK%FR@)zPiR8zKx)#C=1g#qlz$%MzN z03KAJ;FzNzHa40$X!5Dnb7Mp+vX%Bh4EE~mgTz77^Q_Wz!C9#d`Zy`JZSwBQXJIMw z+j?HoQo{+7B)eXgB}8@7z7&j%-!gQ+<56<#*7oG5M-1IfS>27i4hWN(-rlUSdY-L^ zm(UVp>w#G~h9x#17(T49ozg>~W%408uVc5&$=ks>hc(tpK3+V!?#i#^rPkXD7s^v4 zl55PC(ph)DMBo_%`N#1=-a(>6*>-9prR)D<0lg_XqUp{My*(4zQQ~e7$f7Mk=1qlX zjRVJUe}1(INTj@)b>G*}Sx2(?#5f%$6IJ1Mn%;LaqUhZnd-K()&vfWn+$ZFDPr`;T z7$SnByiLPB1Prn&KK9s^TXOHR9)0H$xtY!s_axza@`7Pz`!sdZ86JvLCP2m}ZEiVI zjh#Nud7kVlS9UyUE5Y+34tT9w2!$&@Jth2kRtxWs+PnoCSpS#X+F zq``^njWBoe0f_uHX$zH0dT2+*TTE(dyH2H7EXv3vsB)tfC7~^!u-WG-xMC3xq<5zl z;UIo}RjCz{7t-_`G~3kTB+gM;(K)fco&n>c<*3_&E7T791Nrtgj_rZqCCE~vUlWV@ zU2N(gGAW$Kw@3by+uL=NDJg4$4`wMq5qP#XbfTKpzoA3uOgaGtluVQ_W=4!1lb7i0 zcM7}&+B2~aB#qkzt+aLOLK}b9YN(WD=O}rI^1n{>%ZqyAtdyDM)yHz|i*tG~K@)68hxXZr z^vk_z!$fs+@jp%^5~Cwm6E{EDcBZB%pBb7Rzta(}=;fA)DGiO_5el~9$By_BKfl7^ zLD5;rv2?cB6xgMbj8i2G#$a1&5@W13k-j)1lBBN@43?75;O|-Ptwz3yIfEWutgH%aN+Bt`!2_pa-6*q*Jy{A)er~ zbhS~}D($Ubf7)0bboOJb?3#VkZ2R4(JeD)z|Jl8gdmWgm9f9pwvu`s?7(*Ho-X6a( z9cc3zX%{zKuWb&2pjp{*lF=W6s?Xlr>*DB$}2p1^#_;mQ2 z2vokTj!3v%?9Oee;m_P0+E_e~H65E!aO7DR8pRqA#(ISFYDdd;+h{QD)t(EYnM1caK8#Cr>v7tz zFx>*u5E1ZX0=S5B=Cd5cC*ovND?Ert87X!?%zAE>nXU7B&2V1U8Hl)64U#9upw4^f zs3kZo2k6vd7)%oi!8Kkg(*taKXl?E(Xx0r)x9s*llfl6`adpfo>b2!0Z^ zD8w##T#$xH_DMr1cE*Co%`!^0v{MxbkU@P(*J(AA|E?<%!GGF|^2dd_zV^{%Gxr{> z!2Ek4EYK42TDu`*4-z-COmxE|f=!;pO}JTAem$H;)G4Zxi~-pz$R&>)$))kbBgr@zH(- zu1b&X_41RtF~2h5t;xkXVc`=IDmAaYN*SxiE&j<2+diR_EJF$>#=$0|hL$*;y z+`mi0aOlhQUduLnR~!49Ki5_CyOFkb*{bpBTI#jyyo_ZUq5oMwU#zH?2C1<0c6#L0 zoe3U%Ek6f2OwDOZ^YF|)t(zx$O~x#u=4URzdW!<_s~>%kBA ze!yQV0oi8wv(FS=?&N|k8eWzUSN=OPs9y4c$O@8*d*X+mE|Q2_ zVXWV0du*m-?93YVUM*xUO}E$N;3C^$cijC+IB9y1ff1LN%Y?$l8DUXny|_{#9YnnK zYwB==|9p2lw-*PGp%2!o@qdBmTQ^S@BN<98QOXe#^mDvjKT*4Xpr4g9>+bC5f#7hI zj&Q7B?do7@qNOslIY5hN0jur(aTbmF_-!`VpY%;rPs`?iCyH@E>Oo;B{NIr=FyQ@E zDC2)Ki2G**2p{|#doVCQi$D55o&TS85cCEfUeoywZs=g&XlK>vdkMLt!@z)i^CuK- z;X+wjOvPRThchH^MFqM3Aw)1R7S8uNq&G1Y$*C?)Q;J8rEU1PvR#H+^)hzT0q*Jq3 zsWEP>Q(mPmy@QXGhD>Q1;Ih~J7CUIcMDE#$aOoZlT&`0ROve6;ZT}W`zdSO>^wXI) zv6`x0NQxW*lK(P=MNsewr&i~FzP9u*eSpC!`_r*dwV*>n+*KrCfqfu6PN-T~wzC%e z*J%!tCEzuNMYcDqq}dQAqi!>aaTBL++RyLZr9@(siF4zVg(sawcg8FH(o+5;iNCAB zfXJRI4pLV7Ly&Jyroa&W+vU5LHthF1bL5=Mk|kK~x>@AzrOUZ!6w7a7Iqf(69BPJdm+ToidfP~{=+c$?sg~d+BT1<=^ z=LDVRsi}TsjImObFI4E?UGh4pdu`!JdXpV%Ck5^N{1@hD@Y7_;QBQ88`&EuM{(A$P z`;;)t4hm95CcR4eOtnD*e~fXV#%amko{2ZZ6@Cu>{or3!yu)z~wyN!aP~U%dO%ojR z7Q;!|ct|&S9~o%^SiXdh{C%uN44G6$^xW;=gC7H9Q}Wrb|5u&c41vbmeMpW{>G&(F z#_YtVsO~Dv7WYqR>fbH{7wZX`UqjD-{VN2$tBfrv_G*b3rai}2oGqI-JvUD_ zu=&AmXSURoeVm64UP!$r-@Zv{_A{g`zgg4a@XR~I!?#q62o7jn(qtg1;U!@-r@$hl zv5IRx?o@WU0U6e~goXVz?mJJ<{am7Z)fQS!yw=6WfMirZhD*%)W{KX7eFB?}!zonz z!mc+v0R!F~pVWPQH|Cekr(X3?8Cey;Y)AwVdW(hH`G}i|B+$2EfwY0fYz97m`JKmk zRubpsj_i=z!ho=;zmAdObnY`VS?Hd0uITv+lmUyf&!__xjj-lj$ME;NTMcnZu2SktB0!m(g_{qXwtlZ-)?MMo#4qUq2 z7xxpHzbu9S{NUWzq<7sZ-d~t*=nT9(%ui2SkkOsWMZ;eBL|-&-Fc2hqK*3vSD$qlhzn<)kzHL41FC|m|Sj4&pndr zu|=jgGLqHy+G)`9u9Uhj8<${9SA;;Q5K* zc?J!sBY^+wN+PR+g%FK6{!-xRE{FL!1noI|br0^K`!?$StGm<7w3 zq2WR9oV+i!tV^jVONF%7&FC}B%E=F>iZ5s`>6KEQo*YMpIvuI4K-i~PD$0gb(~M3~%Jr^Hvkh=V$YdS2c=b0T!DArno1I8y zUs8}gm&efZ!(htv=QREoJ64e~cs&5S3l9Ehnwu%TGW1}w(v|bP=PXO!ig?(v zqfZwCuh3xzZ||(=%AILYJ+3UbFNOct)ToXE66E+#)U$)ZX?^93mva5}r zn&chrct@eeKVg=iS;okYl@{KY>Y6f>QS{!Go;W*j`klOi;Rk1L)7{>m)@xOz%~|XZ z-Trgh9gv28row2+iZDH&aUBK_#PL~X%p9B&-d%AqM_+Il9`2|oI~cQugF5>1F?Cm( zy?iDKWz9y~g5!Rc2oBL^(>>M@nMR|~c+h5^&W@hB>)9s-B{X+@wu{!)*E7Mf!k%sg zKW!sWx@=U}o?8``9LJf$QeIn|d7Z%NXm8OO*wziCX;@`ZdssSNr^4yXCI6lyJ=!8* zv5E@3x*!ELWUU@e2sMfMc9LH=E7f6^hB5VK0oGsj-F{pQ=FpsX(}2BygU z4I00xL#RFee!c(n!+H4sp|kYjI<$IXPZtg6+vqJ=ySwylpsH(pS;$IS8foj~ciK+~ zJ?3l%UpKnKRDMwW>{~cOMo4N5Jx>?+HZJ&zv4D+-CE2JCv$Go6a(m=JLmkUlQ&STs zCqzl`cSqHFo|J#iyjsbZUs_Ogu!)mynFDAkJKdAEiC3LOj&CP<)b`YBN+Zdcc4kJ8 z1mG`u)HLJnZuaZj*@U@29c>*=M;|*1{xEa+1N80^rQsfF|5BxXQ+4BrIz|BC9(dGO zJ!->JL4pguzH*y_#%C|PNxF?}S8FC2Z)=eKeTOu5nfqPzPKpJrwKANeh;J(<^78V8 zgoF$&QoqlPAAWxt{H4%Pz|*tiFVXRvdaV1Q$NED7M`b`vKwXH&q`D>_QCqo-D+y04 z3#?;wUGvJ+T_wY(*0<{&4L`A;qK#a6xQ6;#c=+zIyy**hOE0`<20(+z0An@m5Hd!+ z1gc}Z#+}Cs%(`ib^n8hov36oQ>h;!(4e5K&E%sjCN~wEwGkP1!X$H22w47$cejBO) zl6gjjWn^R?!YPO_%vsI?u&Iq$X5Ta1r`#AAPL7|tA?1H)$QEU?1fv#eU4CSJUZ4#0 zy+)KZaR=G!5(|Gn#)650*RJb12-4we)^Lhi`}CKlUz1D zug6SDQvD~B^Gu>9*JOG-pA6y?r+RJQh#*in!vlK z!x4{-`|nP(ppsIhr2`Z!YN~Qs$Hpd3?DXMekAqB2?F$??5vs153$riY;6VA4CkBlW&nIP~%k65E9&YHWu|P{3!Vzl!zbO}$aeLiUE><$_$p&J(P2CZ09T%^6+89(^SwJO zJfdRgVk7@rIf=p!E7st4Zs7^X`fek6CY@#|)6Z3IdGav3gPG~5NZ63BeCHp>8vkUk z?C-5D9@2Q}<-WI@*ky*rxkpkbz@`XgQy!v&3px@5QZ)1xdKNlRDV=CzvPN?>6M0O7 z>&%(sd*lO0Tv>EJGO3WlfQXw*28M=W2Z(gd%^?a3aQ<@*{|v@DzPGAC{vAKcIX}*J`YK8%X3suMfVBd|$XejRo4|5F|9@`XybRKrw;qxcTB- zv)QjNi)XY`_rK8ZsxaEL)RIwzK2M$8#lhz@oGYg*xB0PQk2ABV&%CF1KEkszXObTs z4&147rhZAiBE~c!;wAH^cOju_yPOb_a$k)?K+2l69GWvg^xTAAL@hp1=f_jriDVEH z7w3Ce3pP7mW~V1^_$!FNmVVv)O{ycWnNI*(S*1PAM+G(hOxf;ifACK%*<()l zI0gLpLH+G;MyiJg#R}uv3&ghm4e$&qW}qnI^_auQ#v~}JDdokTx!sbG&@SiKR3feq za)m_|&1mM^>4)^rPLZ!j4^?rllRa<^8uwB7hh%cu(>VTMRI9J+mHjqARv-H)G;XII_FNteHlxGwYC@8!~@(y?u*@>Jf5Ele&F z8gnLM1cW;=EmoTAyzutFY|y#c(V(Gb!uNFCR|82a5?7K9>NNgam@qJrQlfj|WUO5tTcNI})Qhmu z$|$EGI!pGj-|CPPV_BtZHt7CO9)58as^4tt^9egWOoh`URJP-!v3oZAT#R4u5RCrd z53;H6Ma{G~e=t78#+jIvJCyNwny$hks=g#L&`W4#=9y>Blta zu~3#>IyxFuUZG-1qD)Lo@ac8<1{ru#Pumf705n?mY~zlhxhC-me=1l;%EvAGXR5rP zFV$>j(nN8hjwP#J31-`ZkVYM;zm|a3dg268Ys+U?qw645sMyhk5x>voE6%k^MwpwV zZFv^LcyW7p8f}^?pq7DPV|X~j$I4F3jGcl*YB_O3?g^iXT|;{MO4Qu*tZ8aI z2JdAwh%TjFelI6$UP1BQ%~S>LMip>0YZva7l)f)x2OUfxyEV&Vp058AQDojQM=Tz?B8d<*-LnyjeIe**Faz~fPk%VzSo{CK4l)gDn zGaXxLu|iZq(|5c7XRiBa1;D?lL~c8Y6ch&Qyz#r<4=v%>V;FO4pv*~a=r z6dqZQ?a#*WJ}%x;s0Xq@eLblhzVRr46?(uA7`o-lI?HS{8sE9i?OuiSXnO91Ns02E zs<5s(mLCck5-q=CEgkx}q*cQ2kvo=1E}F~+Iij~b9Thul?%i5CpYdi*gUN{UP7aqw1^M7u@&jy$*9Odk25Rv~vtet8oB7b5tZP3G?F) z8{Zj>^jeO7J)7Y!gHJpGrN1y_TwT#4<*g*7N>D|)LTdCyqJTjdwlIar!jnuaxt`wj zbsu-YtR0NC_9#lUwO}K;;ZW+k>3JOV&Gq}+vuo2nK*EHRY6LI8css+)G(B}sZ_$%K z>r>B%K69Q^Z0+|S5@6{>Wje z#x8SSM7CGQJ#t-+HAxU5JM*Y+=aFo&N)i)Z$CcdF3BG%xT}!1K`iJEdsMm>#;;8;b z?es))r7~8Pb4_AJc&dCRm3>ce(V4KD>s#4nzvDeilyF72waV!Yxj~uKKRG)F#>j6& zY102<0m;?s$w=POh@ZeAL7N*p9aS3~_wu**z8Mu^ZuxP0l0ACcb*)O$=(pq^!JG5s z7Zwy*#@%eLIKK8CL0KPsxF8_w#=Ro>57=ed&oQrwBq6=CZ9dVkB5l}rN+`{$(7QbF zfWV=ZQnCjAc7}<$eEdz;KD^mhRlQ__aOdu1oKCq^e(8N=K1akWYv~j6a(tOv)HG<< zNGrQ2-RajTQ$or%32Ve6b9h`95Ne2QMo|lTe&QJ^!QlWX%%g--Z-~A7@TB`}8NN2QWwZE`3WaOmv94%&cWE4QNTjhmL0|gevd$(` zm*Q?^+iTTwvChY*s9xQLd%wTToz7RRTU6N1ELpUQH;HnXNgY2jWnIak^raX#z^>P# z*i8zFq^E7OlkAO@wFwUJ*p0KS`IgE(6yr6Js%j2eY>8kkjMRk!!1^5n&X+asl=fg? z4kMW$38jr0)i~vuN9PypbRR#B)tb0s3aCWQcaJbsT(`So3CvS<_Yw4e z;ib>wvF9TV$>Mm{Ug?KQB?Uk{orC!O{~#(CJthuKhonpewSvu}!WU+! z=ec(Tz+2(7NW_T-+1-uXvdRj&>l>MZSszmP&H0FDa@Z=590$op={4`_W=Z}AoVb+T z)b2sOT|wy*T;P(D7_qj>d7Qw0d^W;RA-cWA-jys}<(gIA%Dp=MWqT~6Lqm2}8ITGu zSbgI5rkRW@y@!TbI(A?fJUz27*JG*0Lw#k7Ol4g0%$q0;D6BXyzkBuZI=c?F*GOBw zh+{z44NemPEmWU>)a2=g_=f52D<`bVVJW<_oBWpiGT!nR8RZIKi`>PQStvcFixTVl z^VT?ZH219njZHsgYE|t(pWfbu)!x~~O?N}e@yD^L=)ykg$j63~ivzM-e;Ua&D7&B0 z=*cjAv@Desae12?PB#fe16*44+z(y7+>`46aM(3BizS>L4w!{gcMyR0Gs8^_sS06epE=cPGv$fjc$qS z-HTn@s(-ngtrlaMh#4`(3(zo{iYA0(co@hV(HUzM0m^vA?JIJ*&rLMI(oDyZ+cV-J zt8@%_$ER=st(8U(`rzs>;+tP4yBfRf{#3+4Q+_dWG)YsAXlcZaA9Fe8K+>GGk` zY1KHCA%dSKACu+xC(efQhc@3#5;iZ}6$F2)lc#q(9i4b#A=3@f@~ppI$MIY2lrnUI z=^FTOc&s4|!2Rwyp=`qLy!D`S1G%=DAI)}sp_sojJ&I5ey$ zHe5IgFI7Pl+q&Qe5=2o0QoWTvIG_L}KV%MKN$iKrQ-G@sZ#FyLg?4>Ax%n0uT@_wB z)CqY3+7-4~`8I33%I2QiX%knLj%k3_i)k=4tN^Tio2$4BA%?`@VKq}4I@V?$)-dCX|bc}eLyy} zuGo(c7xf&i3@9wUs#it0GJDUutkq4(3yfrK^Vi?=Fz%LnuZ}(*5Q3nhdUAq+Z$gD# z%Bo>Az=3H7=3J=u<52vsX`bQjh4O^m#N6fCzbr`_MlVBVZQxhZAcl2%h9ntLD@BLs zo{jQphFmsrZTNMuACd1mKC#DeLpO$iOZN8lmqQg=+rEQ_YrEf3FL=^jx~TN5)MCl^o|jXMRttkEVk zxK&mEh~KO0%(OmUN=qHtMyYTAQO@r&crmzU}PbVq2Gw{j#Q$ zxX)x-MD|o)Nu@iLJln!f=|@9TO_LjA-1$nd8q&_Jf_rTz*s1q3%$?8F%aNY^**fj| zJ=FeB+Z?Y|ZKgji0?vVrx@=aqCUI$hvPSo$P;kBEaUgh9BAKnoGy2~tEh%XcOigy_%Xm|0nRI=yP zLteHjp9IjTKIrLn5*`+sqi$UWZdk`f@lIYhEghLwJ0o6uYqZXWLNo2!yDr>9{jV;+ zI@j!1C5wY60>G0?xh6;8or=lcpchwH!LYEClY~>qIrG){%wX*PYXU+a0K|CZ73;Uf z8sX(XBW>eo+`)v*0XG~zY? z787W8`64)4#a5y{llsr?ZrPY`$Hn{|MdH(qfID?x*Y}&E%id7Vj>sg#8%I})`gE#n zN}Z1LvAN;CY0Pc}VY-bsot*IEH;MYO-BU0ac%wh3WJ2AcXTlpW>)?C->3w8&a9F6g zko&}CDdX@S$bHIV;ux1-Vd!F~Uy>0rllAPE&4+13+KB{!{wbaz*FWUiKkc*lM_#9+ zJ;ittag_>MqB|ZlljJoh>k`;f`ue0N?5s6=jJ_Y8i}hPR!}sV6t$`8n>6oFmwYuc9*%);klhN>~XE*S?d?bJ?Dr8isvJ zIM2b5;Z#w@xwK!JfZ6EEdC2dpOYswM^~w~7#Qqw!2Rrc-?3kPkvHJRy6hbIB0Ap16 zKi0#*xWE(~>n7pwv!kuEmGW0}M3&+nXt@HgcP8k$fRu7}3?1TTr?#dv4U?V;|5htt zV4P5$yR;~AUje}~M4Mo#2LQ?_Z~#V&eQue;!ol9vq7I9W6S8fKe}0M~#1G+2aNc5D zwwDxKXWp3;wr;;5I9w`jK7VyOuaq=JL^1vQ5I30}`nxNUvFUihXL4nKO8G1IlU}tY z?>&Rbm8_{yb-%NfqpIIR4m$O#6~$p}UPDC?HazE>ahjc4=hd#V=G!^s4^l&~Kb@qY zw}01lUhRL609=XtnJ>&$a}}xB{_wQd-$|}9*9(aFMHM+XIH*By{g@wDU{6P$6(vAfB0gxg{aUk4?h$7%W*DRAqLKA zSMh(V;0{Ow{$UIozl*cNK0g{Zc(u-uNPrg^;bxmYNS_m&Qm+W*G5)U3@`m0S`^dfv z0PTjYk?=eI@lugp=zW3a8{>mNNflu1sJ%L2ywR{#&$jEBsHDN-g%L zh6ant>Xf*CqV4J$JyA7)dn3Y(-=0SO{&(0Wz|IKb`SaNt>ou$gkRg++E+I?Nm4w)KmY(0?5pDT|`EX+IB=ASK=br{QHX>D=5mE!x2oyzxv*NR9i~6<)>-* zCZ^_KmU)kiMJ_kk*cz@@pM$Tho)R{oM*~Fj7^)|?bSB9?ly>H6cKdA*Q<~9R^+{#A z@Y|pY(-4?dclU9Ur;zHLyvW_PhFf+FFR_C`rLijvHh+d?exyZ_GAMH9zpDz0f3w=Y zw%@R@TTnO-ho!@9L#gX8@%XlKb3r9g@|=$gxw>?vCh;w)FXoknOxE_I78NkQkd2d#Khs#F`sAglCYbMQ!bc}zUrr&GN zenjc5Z&!0;K_I)abcaKbCBrf&0sEksJjQB8;GWyY$LFnc)8Zt1x`le2BIqHh1@p7) zmtmc55_Epld*QMg(2$4PGo-v7TQUFHi8OQu>pnL~Or%WCZ73Zz{cCZI&Afg5@HL!9 zx-9DVPn+2q#N zoL0Q<6T8z9l#GvWBAlD)$m2tIKF{InCdrGc-gtfYUJ=uH`AMDS9d6OR_-b@c|AKdX zMwlq8|M60#x1uQF-LC>2NipHTPm10khmRK1aq5g6ZyB@-@PioLDTG}svZ5q;^z5U1 zi+?+GgWRR0 zzVYDg=k2ovI;Pf!iRO^mM2r&H&I0}W5#*fg`37_o~tY0fhX z4M}Jlr~0tW+XR4l*TBY}CexU+u~tV9^ExFz_KId&0q5f-yR!?qhMzy)+|U~|TOlfl z4n@?S7FP|Z4$F=+gb2q~T+lS{Oo=nXt6Mfp%ePqMSe$>2jcM(QU8d8-U!sK~NJNbk=+NcTAL_*>y^QnA`qmrC@U#*EIK41^uKll{T8(3eb{yrr zSkj;+X9y!fTH{fZO=#o_vuYLo?vrp=QFTd0btJMH`k-<-b!0z`Vxnbc3Y9m=>wT?@ z$K}J%pMk}*DOlZ>cs3f(&*W9UeG6nnR*XK+RvH^gRrp_&y=7b+OV_WRy(0t&AuvdS z1_*A!9fG@CaCc`09V7&IcXxLg7%ahkaF^f%48aG7L!Nu@`#k6U_SU!RU-xuPb#+&* zwXXWF0I89;(UmkTZ+x9s7JGq*OvL<7()sN;5RRr1@IKgqS)V6LW)&;DFfl5Hdva-v z&H5oiNvFQao6wrIsZZBAwdq&<3|kxS;6xGhVX!_9fU_Eo*LlABIQkkNw}_1;A*?># zq^vz(U;7fdAuhb{&xhUmMo4Y9mn3BBRY#NY9vF6GrGgz#*rSQGQMBkqEY0CuEtVD9 z7!Z~5K#vSVt1NDarIl6Y9=;c0Q++m7(k&x5&MUEJePN16GVYPVfj~ z^mHv?OV+9^2qA@@-X|VKZWdCT8F1h<&@n4+?(dR2y>>2~0+v@Z;9O+0D`?|@%iu|1 z2M)bO$QjNDK8_)S`4k_+GgRySjot%|k=JFBYiTMgU<;-!NM{2}`M7(*jK`jHDI^`& zg>rO?lD}wSfWN(vW5FYgaO{mFe4RFFH*r}lTe#`gNDg5o{bcaiXQV}p@}Zke;Z=aa z!U?K_v+XNTQUW^GJQLZ1c>D?-4u_%wQv!?U=)9Jw_@oh|lME5B-aoFN;K zfNN>_Br@7K>b8D0?R*PV9O_W%Y2{bUdMzeRF`>7jKo_8=9s7HqQ$yB9CN4i7e!|SC z-wLvR$LKIzbEoSC!s{K;g@EcL4@X2XD2Z-UKOWElNyEAGe1 z>RSzLNa`cxymH_{0POEXBcqy5oZS0jIN$+GmHPU4i*iK6ha$sWZb$F#Uf0q?OV#3$ zHrIE0Qc<6PZWG|=?Tg=0RaPoHN5}afbsK$=@GJ9s^6$v7`xHk z;mMuFJHz|B+UTSWo2h{x16IlWCezx;XA;$U6eu)1I#UiK2e6>cVWBdmEO^KJ$kIfM znd3J9`K$tsD!;y2XBR=UtouTup`nh>X%)l~)sCY(D>X~2U3{qPWFa27iAB$3uTX-| z!Iv-0vEZS5WzmyDCRpftaEVRgb4y)<=aO<{nEhIs4Rau2|K@=6y zP8er3pX9!VqgpsFcJtu0@Zxp%SO$D&lEu(AGqGDuK59QR>qmP)Bd$fn(wb9svT03K zd@o|!%-~HqKP$`ZF>&u130)0XC}U&8QT(z;(E7%GTFvxmna~%iRB9xID%yIeI9C!= z?4X-Go_h6;gZi}W{9c#$Ao%DP<3yq6Kp~|yy&~69TUQ<$CGCXtJ@JcAFfsjWIdfj2 z@mEyOx{pTGC7g|uKz=f0}%hfwhN^D^&!0jU_Jh6%ul=9**>3xX~LX>pB0 zanaOpp2Y-{Hw;Y8Q|x+HgG5Ci8Vd8<6Kc4ShBuTgwH`x# zuCO1C$z2!#9UXccv_GVpn}n$7bJfBBgoJ;sI#s_wfIMn%H>BW0y*?@c@A;lp6KXc0 zv^Z4*pH7=%)1QAULa-Dc)lCN+IRMT^3hO5f>n~1aCI#V zr)iXf22HVi8L$0*>viY}P!*X>$aae3S4SwVrjzL(U zPI}nvhb`1KQW`=*ld4W7!=sOYlawFtZg;}S-txIoQH9^()ovPrKP*dOJ2R&53r+TZg?fAH{vDamFfmd`tq zQ@~h1XDnpy%TS(c3uUG;Q6^(Yr)EaKEilcp&wxj?6+P&!Zhbr_R?hxmP@ZIEP>bKMiHso$@b825P_97ax%)Tw=Xal-~S@k%^a0l z9$^awnMB4(&99drp6#+F6JXdEv2`bVN`X*q)uyME(wv|gZuiONx(iJfe4(!`&KzvT zsTSYYI>$N3Jxxb)OG@UMv{s*1@Ox>nE;IdEbR%)UsG_Q z>yF%V+@<u2Oz2hG8S>S?0b(n*}p#7H4BUi1rA%i5ZafZRdg!jSbjB}#GF9D}m`XzDk{heLm z?L-ex@K;K8|=T{@xdFzfJ#U67$p!}1)iXfKMjgA$}+Uv$G60E&&iJ#EZaj!gwW;y?_ zFW{m}y505AieZ$7+#VfKUGby#61j84t2fWxanONyZV_bK=KDq79xr$oi^Zu&vo%k# znK3+tU(?0#pr0@gbwcT_>Mp^iOyLKoz10WN8+1>7(Ah1D2ilpX5b_J8UF&;NaWQ>i z{t6UF6~4~AlA55$A!Tg|Z8*!vbZvs|My7OfhgrEaS_tX7G_{N9N;0|AcCE!Ne;OL1 zwk^6$szhPs&%)6CEZ^dBq&fI1Z{qZh!s4smAS&e<>Ao`+^1iXSLd^Iv=S%YZ)@W^= z7L`O>n17!qwb$8Z98ga780m^VG#Dw_VF zw|Lt5H&@Zfi0}ue8Pwdwb{)7QBrjn;GfOeb4R_ehUcV{@Y8p^%-mfm3ZN9Pd!kz@6 z;2blULi&&A^vl3=`81uqapin9@Q|&&b$kY0Vg41~tKwBUJL&VFuTMLnX_n)0JP>?x z)VI3z7UL>O?WD({qZvYzfr`HbpB~~H^8b7^pS*skmnJ`=jyNw5-TsYN zJzWTfdGmh4`}dq*s{v20&VR}mQfHyJp-+4A;_vh;KmK#j_st*B9}*eaNcnFo%N#7p zAzK~qvCAtJU}dwQ>|$E}W27X?X~Tb}CLul?@7o6B4+}gvyM^T7F<$9`G24C4FY4&Ja(nY8@rldE%oz_KvvSU;dosbsg zu@t%go$V;&zDf>i3T>u)muAZO$_{Ndtsr9~RFQA1Z3FvlF(gcowT{ zShthox&^znRn+c4;!!kvm3V7&*dR|~-xqE@$TnZZ`^mL1QC@QU{kjV4pD`aOo@OXk z=Y^$_rv3BEnZF-P`vgIM3;`)YRr1RM?nPNtX^*XP5*a16$<5GK|+E5-a-GFdNkvJYwF3|ygi%E6j=zTFeCbJ6vHw3 zqSs>nA}X|*HngBKLNTO?_kN^M!k-1ZUxIi~pA!pu#b;T^8kQE4O9ejY^G3x@K;hf9 z)d$q0>bX*J-pIL_*du}sGU?bp|0S3kp8oZVGSQRqS3gA$`oF!x1ci9cE3-c4GFcd} z8G!#RzA({1q4KLlOOK5?58vbFAwp&P+@W(o!qTVi#J%P0yo}1As#|Bv;}6ux7zC=L zH2JiVrM<)0{_IjUKV-jE5O$ThW;;=m5cw+jMA=6rikF90a7+PlG)*dS_-}9hs`AK@ z2GVB^SSMI3rjE+n#iIHyVH*=MtL9iJHY6jbb{^ zclnW$&fx1nr+mg-ihG-4*F!r8HH*^6A&e(M(qDZa4N;zrbG) zK>i%MWs-AMR52yK_S!97?&EtG(;95W+|%pj^SOA@aps)SnpXC~&|6Ly7nhs-V~i?3 z{{3NRyp2Q0J(n4=pik7B6b`r5#ZDnM---fqT2~8w!1bo3{O`R8kcSNqr@Dg%l zcA7BNtW{nNUP&r8JY6BtKiTNc;{SV2SS!kBKQ%c>X5dhGZYNWI$N_ptjc(_n;ic^| zH5%MxUqiXkp@oel|A3>UX>RQW@BW5j^L6dPLq&EmAtY_1!t@3;@j6f4%RDwL}iP_5{kw=|7K! zDn_UAa7h`jauAB6l6rl}UK}|4fMuBNwh>^sQ3UzhS?GRi&5TL$#RPSoJ98TcR|byV z64cF2L+?4(O@uqhYFbHA;qW)+obSZ@He|b2_sg(=i)=5Yt&ukzi9hsn^?sTCj9zAj0?~e`>4UQjzE$J{NkFIY(9?$zd&kIszsXe3y8qXYz ztt3Y+?k?{uQNosZX9bW7B0p4%^zgY1rc zI}*>}MTxmg#7BHb3!G3j!?9ZjUtbYkW2m~5oF}mps=L|52rBDaARHn=%9Ej9h{vs% za@~WTn-{?>^w4j`K}M~wry@A2S<97g2i-ri$;PC9so5BhXR^eGNxZI`r1e|KPG({3 zF`u#Au1&@g_E*Ja`~Q_Nju)waafg2N82-+1n|Lf$*g{-Yb&7L%GUn+t$sXpgkhW=9S@fGXGqeH z%(Cuva+zK+KTDcm$NJ|~&PyZ3vXe@gR!}=0@E>#ufd_Zop zj)GJw-MNYN`XCwWsNd05$W)=FwXA7MJE53u-jjug7D7zUdFfD*)q)&Ge=2^~g{8Qu zv#Yowwx!GLb?HXR8CR@mPjk{i0&c4+c5wGP6?JLHhDzpl?tq9UbyK`#x(o6n79h2| zbV-(EyxOOu1#Rm?i8*x|4(;5j9_eWJa#h!i5*o^rwHOv)f0%Q1*{=S>#;k^^mkTdf z_3DWIuMiq@j@*t7L}*IGq&9JV^#c~5EBGwzl4OLjlKH`hi zd0eB#k_vEjf_P$KMjQE6&U6v`Df|>?(wFo($QQZ4{MHRV5L1`Kc26CYA~)LOR zyenh6SE(=F)e~?abf8#R^jKW1hg1xBKl>ATzIk7&x%FBnkCsolz`B(8_UHn<$sRS8 zPhQ*#$IkD(b`wd?l6=)03Qu{i9tFe~xb+pj>)M*P(?Xj}dA!(}7i+QGS`PgyZG^dl zA0#3A8vK{!ZWa^kCFXncLVB6iTj9Sy;O$e!;ybK(G>v?jho={DPrbX_8M4T(DO;@P z*a>KpO=34|6^dL{?Lm)DM!D4jLIe;$)PpmWOtmuueIXD z`;?#sOZ~7fO6TT#bGXBR{n=-6IM;P%kZ)}@ZQ|gbV{_YFStD_G1pg7RU8N9xefhI4 zsqcF=B&*pF_h!dtsz{a)8%Zo(vY&=BwdXe6t~lE!1HVW`KeM}Q6&Fwa*%Bu9K2aA%a?nx|C0h%fH6gD#&9F4( z^W6a6__~J2-y;=NWo&$%k8aMHvX)zuN(bn-d7TQHu{OJ%mxUaA_-O(n6z!#_Q^6fl zRdy`OlNl)dx zwqWsM=J$7`-mU?-;CBSfJqcQhuQ46R6OKZoV3wb-ANz&84#cUn`a3q{|1$QT za+u6x5J1tMr6OJcHnLs5lBUD*r?;$@n1 zI{jvI=;WR-@bTPT;PtPfbM@7p`XQ-tXE(-fb>Y|Dd-o$|9XZ=gEpHV)TYDS#<^v(z zYLnLvncq!m{tB9_WW{&gi$5p0T|Fw8PFaj`x(xR(L;}p)+f8TLgJtp`98j2#rAXm? zY=Ic0vL@jm__db{m?F)bxm{<=G>Zaa@^qpXFU``J;8%)KyQu{6vazt zl%)uGn%V}|nSqyiudSP1-${YBcXHuqOYmm=z<9F0$M3@yvZTQNOLLkxdPrwVZOQW% zNfVP9!7~F7dtB9SYU~YWEXV|zAT%OBP@coXLJ`hSg=yBcC01^`@j~&gQ#0kc{3K?5 zqxHrW0iZ(JnR+ZT?SLNcEJjfBEtFnAl|xH66QnKViOf(}dp zQrYBniL*6EPu^s~?GAa_jUTu*4?`8g6BX@mwv9b_KQKx$NRnUS%>)tw^uGd zxw4O>tZ#33huDE>S`R{mUa z4e_w!C@i17#}oBOHo!YdjBX?5RilJvmdk!b5ErlYB6==1_9q5k@KWm3%b8qPV&Wpp zMn9^^MtlNs<`FL^5w+Xd>gwCM14IC4J_2OyY}c|pK8rQNOLG^Ps*k3U;i<%7YrTd3 zpe;Q?ZNNU;h-tpXt@!%#0z_sSaF~^8W>MDA&C6syqy8ay*z)#xK(h~=0%reYnkh4& zD*rkW#K1UEL5|Fg?qIdbQ5vHkT1xdSq-g@=ky8jTtx$*A@Fs#>)Xc?s5vFd2HueRRHrp{Ei-d_OXv0nmLktgj z`m}%*KCa1;dD%afp@vL#&)VGrTV9{`}zI4S1#&KusA#gl6^96JvFuBkK!|bUpiWu znd=vdXlN9zU%R`7dTC)G7C3|4kR3J@gzN$Xy@3>O+@!}ChG{1wGHMVjsC|@ZR?2c3 zPRfZI++7o@U$8M|Nl2o`h$eaL^e<##uB_Uwg*b1;Vt>rGF|g7(M}?1R>7PfRFA_xh zeQn$p29q(}9K!zw`ci$`w^Xpln_~o>daa+d7pqQgW6(9#FTt%$+CL42F=QTo75Xss z_f?kPL-8g|{eTb3$C11aN;Gp%DFKk;ydD}H zCmFx!jP~`HeVYm0Bm={eTz?nJl0%^tvOVAozNK2(eZg5q3Qhwf_?qwX*W$=vOfN+M zOxk4GJs|XpvWSi^O4Hb(fOm$%=f*{`OYV-aFPKzumU}y!jN8~ZGS6Zu5^g>(sU*bv z2Z|k9Qx|Y2R05ba3#ZDr1fq+Q1(wW4x~JxyRE!;j=Ur`AQqw-wSO}!w#HT;yX22w# z%;x!`pWn{rI?X7^^A0M*CZe=xjf?J47DUMbPV^Gv7@*&?9>L;m)3nwyq ztfgo}q!Pr)Ts35At!-6#ZY3Sd6W5ZIa?pFut}E%>lC*xF0TEJ)YeK#Tj^)apFt$s+ zIW>J7Fz-9CHz`usk?eWE{WN2ZUzRc#8f@G|*ECR*#5H^uDU^(9e%cCDRMAZ>LrkJC zFgT;+?6s*_c=xP}rP26yv|hSi|MXK!@Fg1;3{TOmk|$Gn{d{0!p^0ecH)3L01oCc& zQ$@N603;kdovdvlZdl<><9Osz%-R_Fea{!Y$dqYlKF%?7D$#kBN8fpa2s*T=|2xBr zsj!enU9r^qqYwlNY95qd1(NdH{=PT(% ze*MhVYzth(KVbF}rU4&e$>IwLwwZ+3IPA$nx7MwRw{h!m^Nfd<$eEW2yy1=->Y_S< zQhWAVtR)2O0h{F5b-gA`J_7Rx3Y#|c+$#7eO;uMSe-V1xOQ zG@y7C+g}1&>7=NW*R$#Wb(We(`)0(6MSb#73uUNeI&VWxUOk+FeK}h}o@UH!!;Pr* zOEMFznspjE%ULxY_N5CiMsyy}c)SclJ`lCmpr$)u=|)L;ivSbOx}ac6T-aQP8T*_t z*MxxV_Ax2y#f-S5;HuWgH@*)-K$O*e(cWeSzi0+?<|`}l^*#7~e@C&{nLwJ_MemyL z&EDnVL5c@`dgwH_G=#G>T?Xh{#XS-GE%BRHNn!I{`t9vN1dPpwnJ9OGx|rP>r?9h9 z?@Xs3O~pYE!i^S8ZMpVR{Dc-7YVZ4nq|&6*ofynzLX~oC0LEaM0C0>t9nND#%d!B| zLUSn~L|K6$`*99MAYLe&$zclNK(H@gnqKAS-{bZ#ScHqYGO41Mkm7lS7jgxq-khye zD+M-`RLZ)jGf97O3NL<5idw?(OdK1j@}|}CYiL^-H)GaA%TuN$tjp_^-b*1nRksQq znH=?f&CHb);of8taW>OfW|QklWPl5v&Aq}~&eGzrAKvPZ=+5U=G!D{_DiUY~{7$^- z*w?s=oUV7O_9~Ae$QiMu`Xf5=t0(~sHRJwSbHk(pLds)nN-|V?WUDG#ZzTDw~%h{LZctN3ov$jtAG!#aZ`&q}i;QoVX?-;H9er6VDjW$e4p3R5C(e06Zmzvj zVkYWNz^P#dzbWB1u^)Xo8#m^XLd-E~TN5f;$|Lt|;C&qn94B%mXr?sM=}Tx3Y9ULZ zd7czeGFE+4L`Ve_onWlv*1^^kxK1S4?fmqB@xIFAv$FnkLQ*BJro>A>bSJQ{0`+Ec z`!!Uud+x~h;Y>Z2HfrGgXZ6~@RP(sw9idXc_C8-(O9FbW|5AZCPxV(0|JXex_yF(;cX&oDNUIVRbC#Qda z+WALD*1arPQrRhGvRzGe{YiP++DI`n)oE~L#?taC{;*&|j8={{`K=z5L1|;dIedaQ zlN_Q%dE&|ugiRB=8)8L4*FkHS)6V#$>RUAGJ>5C{QO7Rygmh>`#d7cZxCdXeZ%4RqDFSJ1uTvHl&5?w^L$oj zRAM6b;MJ6nxENMYK;Ii)fpx7g1|1#{P$wcNH9xO4Ks06YgvRdn1{B|>&|5#9B_)*? z%;d8Y-r|?h2v)2ZM4U9Y7cC^!;3lgb>@~gqMEHGOX8z8tXr}BiVr|0nC1JQJUTrLa zPx6=dszg}Pw1!J6t^gU!pJdK}>)aREwID>m-qbQw+%64`ZEVjr6TX}uD5$)OM`f*U zxq5b0=Rn&&DC8qgEDy~)CeVSS$J^&*Mec#7aRHV#h3W81Lmu zLb8^&Ht6Iq1DQUXP}k50>%0sh20t8mURFUaH5B7szr~tAJt6%FBKKw&G@d91tzK7*m#Q6k}lropZ;aiLUo5AA7_!f z-{gy{zNX(I9GG!q`|_Gisp><6hoN?pF^OJRpt1GlEjEIU4_oA=GWsod_q{r7=o|^{ z5e}>O1Y@9^$%BN;W8tEg(nQD;5?F!ZJ<*iM_L&Sr?7nSGK`?#jjBZk^RmcA@dq_pp#lNhQi35*{;H zlX0|e#25<&JMOa%gRn8(f~)WsiWY-5%9>4Q0<%-QV>8~Xis`stLC->1GRkO%WR_fO znp4N+q+$m@Epe&pyONj788x%6khg2_wUGFeGkctkQJ|`8JKI>QYfQ$%3nrU(!#^Yx zS~#bPy`7!qRCo}%PPN_ihfEhf8P;26e8ApigGB4Idb9-|ka*uo`v(^>#P7lQY+AMV zmfq{3&)0~U>{$CG;gL-aPf_Fl+Zsm#%gRxUIj#Y8*9RQmJdwhf1IEk>aYQ&r7%btl zP9u`xF9WYg_Jv95o7Vb56H=*S=E1Q_Tqrcu!wdYEvPL2l{C{MeN}2Ht3w)ZuCzPKPM$+g8HTsS z7~rjb7K3b6XfHjet7E1;me79ott0F@FsthKBf_TI`>yF^*8ycei?!D zHSKqU`~ny=GVOL5T+NRF?YV;{86O2a)7Oh|pM6=&DV3441gj-o)JVrND_)qjDhvd5 zv^-h+vlNf_?2%u2f??h#iAt?ZdP}BL7D4pL%$u7j0LF+*Vt+^{?ELiIF}VPmkHY-* zQQj}j9feOiCW;6-cewb$fyI|!L|?`pZl_Mo=`X4A#e%f4Tr4c`{f3vtl^JzR1RvR_ zzEns`iU+oW4t;l7+=Rc5CWksrfWswTplGX`rARHaoHp+2H2q#dZbO8CPx?2z43Wm@ z@3}cnQLnQE_#k@6Bm!hoS3ta#$rJR&)oxC=-An2%{%EYJq@dQW+PKCcO zexZpTw_9&Qu2f5_fmQ)C&Y!LnKEU)+b+6hz0I;=ZwNDS zfyTQe=nIn&bHPWdg_G;CBLGGM5I(|X;rW{5x+o4GBl{Y$h5_zay}AF(b=2zUp%krmaLBpFjbR>9gjjD(Yot)8i+rh{_APY<~QOMO>4ExDNj zaKML4Z{?_9F zD;cu$rj_-+BGgqy%sxh2KUHhmaK*hmc~fL=V2`X;x|pj%C}$iH8|nWT5_rhDGi<3t9qz{%u%8Q$IFgZfqt}4QYID{m$p&`=;5F}&dWvGiQapbJY@{3%G8 zZE0=1hCMt>SG;>d>FFFVM+m<7< zso5uVxr#ivrKB9Akqd>Z4MWTG`C(4?w`(HBnosfKGfQzJKM};{?Dbsn_@IF&FJ-k~ z%ZWJwY*D>Jaj?|h8AzGz3>&n>oy-JC+liJzhLOP&H!HHG-haKVECVfeH8>*R*qBWWvPc z(xv1MskEwIgNset)H(G$_?KH&)7E@Yx9Q??u)uBKd%Qmw79Nzz=fJP)*B-Nrhh--D z?T?_TSw(?@wfHYZ0vu|!zP>jkQOT8xLL@txxsCzQG2nwoB#C(oB1H?54B;_{C1^2|J`q z-`(=x*DS~yJ0B8xa0)_Btd`m*UFS3R}a%`{AX!@Nywml~RR_uvb$~aOV~Qh0w1Z)aGfICwM7iA!$~^lr z?-zfv6rFG*h|Mvr4K7vt34{~rEkP!qc$jaugl2>+k1Zj;&p!FYuOUsSHQYZ430;gF z|EB-yDcH6V8N5IX-5WuoZNlFVS#6zPO1f6CQ~^gPm_4F?Lm7)ZA1f9fR^ou~Z+soz z*rmU*^#uk5TEM4qbM-V&Lp*!)y;bIUR(uf&4<^#t{+&Ob;EZUjX0frzk$YBi*sOC@ z;vrmGnK_s*&w}X3%8z;y!NqcNT4X+eof7n(k8J!f`jWX7VD$$N`XRp`E^2H;IAcJ> z?bdQ{F-vj%@!BPhccZ1x%(e@ZgMxM=fCINC6YZcDgTu5 z;6H%M|Nn|x;P$tWwOPT(Aj0JH54w<8lsTrmp2Mzxh z_Ivt5_$oa;Zu|Hl3EY1HK8=Yfz(*WbWt;dIq8d^*=Y1Q6``cZz>i=P!wtkHO>zA?Q&@2$xG z(vpg511GG58_bi)YcW+yRGA7q-V#t;B)W0EU1|X-S@xu_{}z60`@PmF)Zt!3LsCc1 zYiGe%mdW0sF8wN}{VBuA`rMUwlBhm00&ZKX7#^+{r=-#Ec0D&q`;)RI@ZOsWX#rX3 zIQX$-6;`$ID~!lOG4d-3!n8kk*thd|q3Y^L_WZ@O8*BscA0!i=+tQ*{sz&f8XgHZU z{#Lxx=boD=>MKK2&5yGu)aIESeMK2HWXlJAUJEL4J{bS-iSeNpHazex_Av|VB(&%u zbOm=T7whO{46I}ACPReVX()gzE3)L)eGTcEzQ9Iabd0Y52sb5IyN~2qAIm5|h^7B< z{1A>smaM>}rK)7V_pl!k+>tiLzqeH3eXF3L$G;!>Ya^NIE2Hm-Ub5@2`tZ@D=j0Cp zy@hvk_gJaCu;8u-0kg^Ui#28*SdqzPPU{M0E4j~jFwEV0IAU+C-xa3S3ZpYTZTetT z&uqV@)LlV-PKby@p8XE?p%&hxNXgjMU2Jb>BTX>+@ z5_})N%KvBZc@qLE3wngG@MJwt2TKyvEKWuYhSc_BE!-eguS_Tp!)MCXao5$tug z6xzcFOBYV-h70)KD!KWX9HFvw~S2LGqQiy`9luugk6C z_G{fDPc5uJ{QzG|kf8)r0?-04RU4vy;snzsWM&epe);qALT2t~x}!FDmK>#3#Ocm>Q{${k{tRdIRT{TnS29-TH{Spsoi9{vQ%laUbXrTL|Tj5I&1T$zg!e2MpTT= zZ1&C{_B%U$&CJ`W0mkJM#njaHq`bE?&sI8)6sc&m7buCsbH+n7gP}K#{lBD;*GRi_ z`5}qtt@y;F0Xra`;?0i4Vso9uifK*;v3o(0H)T~}WM$#!t%YRS?8D_4 zg?Pu*5R#zYKkYs@V`OCf+wa?QaZ29I%*>zv*x=6lXU5ukw-ffhi*xx%dG@)nI97?F5rl08 z1CM6m{9=LS^qHNP9WQyh7rmlMCnr@K9;={j+4^#vH-}GrSMg#xODo}VPU3^{zC|bQ zZi#kiVSe_ge6J`i9||GgCZ4X}c$6rY#sP2gUi$vQYuMCk9>t5niv|Z$+y4@km+`j< z{cJ(L`i5om@zWDQVQgtB$N6&qfIxh-I(1OKpK}w$sc6J@rzz*rH`!gS=pzvVIYDMRH zurzN%LHz(8Q_UVCO^0>IpJ}6aK{YePrY?8>i4&C6#+Kz&Q@`LDC3?0JI)G5gMCm*Lkxyo*&z zPZC2NtmC`NJi)aw%O4<)#xMR5`5PO?ZfCdpd58BM0)AB%L$i)b}1q`!vDb^Yv0O1~R|A6P3`_Zl(j zPR?EQn&wg zT+o}T<(icyXmwTmoIyL`bmbP9WH(!-^$Vln z!Cae5s;(zLGV%Qp!R(sO=V%C%ijivCc{JrpqhTTBHk!6~K5A~6T%o)P3Uh;O?eKxC z3>bivqtq}Q`}xeGjYzMHod-2r#ug>0d_VDa*WnpfYsZ2u_s-u6de#zpDXKc|RV|+= zi?x2#9@yO{4NZG@#(DVZ8v~sW(qyqONu5Awp!zF{(&dOT)t`rM(f3170y1#*Z1nla z3lB#{>$iSO77;N27tem{y%J4KbH{*SHknoXqP#uTrUp`o& zYU=J~*=A%6I3@VqNY|rLR_c)-Nc@-oqUf%C?_J_{)s*Aq1u|(tM4s2bzbSuo@cY(spBh{-7M_B)z@$1=AKO3qR#YyjM)X2Z27-}L{3pY`Gg^+ z9OZBB#hT)H0Q{mAqvsgvbCwNqV4bHdVqbXd&T?!|5`+P^qY=O`#WJRJ)t#Rv-uf8W zfFcZ{Y0m|My5V&CQ1{jM%0F8cD_;4J=J?r=0I?I(OXRAASMtU5I%I$ulgOl60Yp#P zic_GIx~IT8H!mME5i@YJK|`PBE4aBS&U}A>&bkc-atou~++PcP0I3T5>r=)tWNZ-9 zwjLU3i@M4$6shLb% zxwL%*S1XEilOu^qAFLZIUzY?p;s7wnDr{BAE0?}@IzQFDNQoz$=(__UpTR^PTZfz` zk2(DLI@D~77b`gWx78D97zI4`K#c0nOvF+_ZB zA3BOTu&Gpkq~nkh~3!HefwM+Dhy_^7%dd7M$dDrh-m23#)Bd=sv8HHBmTi zs9WAV{(Og5x1@P6utoiK&rKsy?*)ZJ4t`Ccl+gzDcEZei^SPdfX_Bmy4LM#%%Y-T>Kp3H*k@KXOU+SiP9m1AQ*CM3 z3l^3db~&8iRrcGUhD)b<*A%~cu;vZr*G&D6-V+7HOpwAC#`|C~5w%+xPch;gP6oGj zYw6rj$ztnpWg+29hc0<5SQ%>BXyI7|cKBD{>+N>4Q61|WBuiyDXXUicnQath*9>08 z#jAn2Dq|YJ?2L9DFD-`~N0Sm!+^6Dg`AUxKD<906FMVdO9npvu#uMWX0>6r=;(f

    wQ{?kgF3%i7}s&FucjPBSofrTt|lTljPFDLkm)L=Mk!foNY^&BsltN~HDi zBG*nGI{vSvtGL)lndRwc-?w0?TsyD&M-t@P~)OFrFM9E)|vgouqM__TCTMt)cN+F`F_J z-Tl^Q8Jv6`ValV@^hvP>{cXidoe#*Il`G3>Ieo8A26Vb&=<^i&tnUUQ&}Z6bn94OE zaD$cQIc}L1dH16;^-lx8YMWp&_w@soNPE-Ajg}0=-If8~m>yZd+uPw(z@S4brL>yB z)>^{QhaReVF?r;U9Iba=4*i_Ye6c{ChFz-@!urcAVAZNl0)$-{t^W0Ax zLEMedEu^OLbHurHn906zBIX3{#e9qGCzbA7YR8sMUzHh0-`KCT=#iF672GLbyBfH9 zlh`9mM%v^wX;_Bbr{?>0BZseiwvcehqUYa;X;|t*h1c@snvWtjisK`>%u89K?Ez&P zB``8aiijxq8t8jD@1>byQi$7V{;bd#1TYbLkMf7a`ceBs| zTrtc9NdPeqSwTLOMypHLl6FcVyHWIL4OM5PeV>Y*Fz10-jtz#AD6Nei@;@F%q4(PIzDuOJFs9(N)q6KTSZx$xUL%52b{}AJo%|ojstc zvl?iFDgtG!2?n*7E?|%AK9*Bk%hg-2#mKFd zl=2HE|01bYRiG$8$4v&Hyou1j=JlJ)4(am}j*mH>FXfBOg|(u>uC|64Ak}~T$N(XF zDo~ZZNexR|d$Zr6hK7j|Z1h~znjAe}go-4>hf3zm7m_b8KWa%tvs(9?Z%b2I<$s$9 zqd?VQSD|!td0mlPQJ7TvO*pq+oNcOW&9kqT9W<$8+>NJIf5xn4!IDxqs5(Kte-_V~ z2QS!XaM@wlLa{wnN4V=Ms}SIZx)6>egmBpZ_Qzj}D={_tNdeL+O#)DCvxDk%rB@zV zNNw_ShD0fbhnCpEAt7jN83mG7toA0%1G%+M1b-kS&3|y-I1+U!KhqNslB60@Q7%in z8Z^e@izq*u7m?Sq|3Xc2NJz86UtbH+I~!#$K`l?RLFI>q&VC%u|Hyd3XM(q23$VqK zGA8CIfXphGV;{EfIMVT;3XSb)nP2ZV0K(^zjYRH=-Q%mpwyPcRVhMq(gH5S0QHUCm zh&6>)!x@%K9bmEIos*Iw9vUgL2^pOQQ>fF9asm%gl4&b$Ab^7?xhjLh!qF^bDd-KW zaVd7gb~rut`wkT6&V$#AAi1a)^B`RGlHU@GaRmgA2NV>T?|ac%GYkB8(51A7b4cw zj$JUj!99aUn+msYICXZx%Seu$;2tKx#pwV+606x;E0x2nYbQ;`b5;8PVgZ#*SLgFQ z(_PJD(e3#t{$(BgHpZsR>#Ui?ctC2et*}RS+!I!O$07Fw17>3-s1&ne9_MLC<1N#h z+;ZcA_Yj-6__!CZx6P;%tePahhxYnFCx68e;g8b1UNB@lqi8W>!w-0)eERlV+ldNH z%BMPpU&_TyJOB;yUhiQXZGu1vTj3$_=T$Ic%x3qir*d$l*1E!jHC?r!J?MFV=HLP* zqu6ErfOQI6oz2czUQ+156-vcwPY@KKRBLk6cg5*@{~;sri{T!L8(;bvL(|cROQ84Y zo}JR-9J)2c@uqE&Nh6~B2d2ZDy?U{oG0xaN(Zx?<79_&qAv?%10H$L+xCF z@*%0c_aTXRbi8X(Q`PcY}m6yzZ)d{w-Pq;;gT@puu|hz!80Jv``fnyTqG|dE}S$1cQ+z6j&8WIesN- z&@Fzg@h~_y%4CD_dZ)UnIcTY~?qLaMyD^gR81k;#sR^3lE5Y%WonM8(KZk@i;TpJ| z_Ief@z2^59D!Ayk5If6Iw^<{XZTz`9CMGG9rLH)hjOCTGbeo=!Gu%Tj9gsT z)IHw7G%#BdzeZ)e>c_VqXf@*iEw*!xtW}lKI#C=SOBb3;nl7*Rwg_B^OV(r~&6trU zE&-)C7_;VFp67N}_X3y;I8HQCn9lzWe9}hh_ehe`1UFcFk`G?lq}4h&HUM-8F@&91 z;@QkK|MWw1d8Y=)0yMV96sZ)iqyod6?C78o>YQfdrzXcbP!kodwAgJgphQ7O`Aa_o z*Yi13ZuZcKdJ3r2$qKBP4Z;rnY==u#zGg2bw4PwZWwCC0{pQD44q#g7r-HBss-Bux zp1(CcGnpe)Ls4ouoM)FcI*koNh1BN>6B%c4!&$AQfx3Hr&)fy&*fqTHGqi0PjNtX< zQ^E0%6FpGZwcVmHy*mwujlD8CV~#q=@E=Qbp3y;3VPPNP>gNOIh}AJs71c%$&ux^0 z=o7c4M_T2idMTb9l7YGJ4K`jAebL!+_prfS-AC@Va_p(`IBm%MyoRZ?wbK?Yi!Kej zs|04jp}GWBY!f`^P{p6`YzBC8yyL^YrWrAvDhHaFzxEilyoiS=rq_jV){GcXba9qp zgLGQnL!pDyM4zx1Oss$3@%t}c71nN5(;Yi355(4^uXQWqoxJC{=LtH0s+gk_R zubw^4h^%T<^h2?sp33GOOm6g%d6#RGcg`1|EP)o7V}yz8YCClS;}%eqgJv7W4lv2c z#7c1K4eI%(H@KbMzE!X?f!C=`c&?lmDheD~b~I?q>Ct~uGxkvR1eVRZ$WM+>DJ|76ikJ`YCiTw2u1bOm5Vy9KX?5p=J12+6W}2^fnfgt0 z1=+OBISIK@@&<4B4wS>)$sXR(nd%YW*&5ae>Ur*^nf1!jm%P)8{u$G`rW##+So~h+ zj^}F$$1XiHZXcJk)A8qbM93`O$n<}*c%OMHh0e@}=Z&1>yJd0VC@{YZO(GEZ%|c=r zny?NHpLb|sM#`@d6XsIi63J*HO%In=3$2TJw=7ot7?<3HrRXmyZpctvqh^#$&01J0 zCk$Zc^)|lHcHr^;-PDoqAb}b~%CYtAwG!NHC*Bc~Szfqbk-=WGM+HRDvX6+$xZ#+z z6`c5V5zT6lOw^0hGbCaC=($(zXjz>2@`f)E+?WcW#mQigdl; zD$Zq}&QestZcgM1CNWLYjW20l{Hi&(mNCfIq)SFNvA|9?*{orT`1!HZK(nB`g&0`LoL{)GY=p zEtlb!*U{?dD+3$K?|H^s$|X!5Pr9Xyd*%4<_6-8V`a*lh_4={V=*{r?dxBoOEb>%b zHahg4>V)9~AA%@AS0@;LOCbacP+q4p(*8f#}MPjlFaE+EUJ&7>#g zuZFiTlj>Ek!)b7(-IcXUcsA%m4tOMU`kCa67#pjo1kJoXlvr+XYIXfTDc7kWU5x7s z5f#*o^@SNNiIUFEKS>5{-&=vjIBE}We;o2q6bdW68t zY&se%S|gq5;J2DVeUh5>sW3wJyv3yT0o~^Tt~X~C?+^25IqsM>F^HVDj!Fzmem@;5 zkYFyAi?^cxwpdPG79jX~JEyDlenDF;6C2CkNY$>OSF&E-jPvibDgQGybk78i(uV^X<|eJAhLlm0CTe%){am zPN*@sD}Zzpls|R{Y+nU08M8hc|q-zM`KXT3xPR=tQ)_sBY=9)IMJ;Iq0hr z)~zWSN-&eKlBL|>9E!SxN5f8&m71rOq1Cj;BSAi6RXXA3u$KFRm}ChY4h{ABZ*xiKk+t9f>ENv`vTa6{QqU}tIrE``T*ey+RWRkI#P{FuKs zZqqO#nzqJK*53Q^+chY4gjib!(l4%jP=PT4`bZe;Hg{bFPvekt*@duR6gmR{!gOw z1D%?DcD0TZZI#dYa_275N%2{wL{$J6jJ^Pl>^9#G>kO5`)G9sd5?Y9*RO9Kl?cASx zPb#vbPWB6nU8lQL$2y%QTg|Xu6NjEys!YR6V)myr<0svRs6s=uPZTWQ;o4?r`@(I$ z`}=uIAL>i~_{O*sec5D7YxlZM(d3()V{efl21=JDZ#8gY{q3NFexuliV{kvMjCM4c{RR=QB2nKCBQ zUR<}xmQJp9&b=A76XV0p?$cMsq2TPXp=AhGY>&Pc;H%GNq+i-CLFUzeG#?`iAR`wW z3BmJ9ra+~XO=WtLF1M%`PZqiVQlMnKlv3XPV=5pVs>RFp?4Dk^3&283HSqq@>&LrA zPG!>!{ZSN-9?-h6a6d)+Iv2y~8L=%zJMM5cM|OX|16F3ceTt5nv`rajCe80nRUS>gGS)PEM(G)P}>?9IE=fzAMJ;2G| z>O#J`_kgryV6q(VNEb^_2Z+1g6c-N9U)0FSsSwF9!9}WE!(nW7M~zyGND9_}+Gl%!y}3RO%@TZ)y><^FvaSpBJFcyU3jo&4YPp4gx4 zr`Ux~y-#PZc$LiUhl@DdV-IX8$+4;a;%s;jgf%`er8*p~P@($@Iiw1I`Fl1?=3A1B z?&6$UD|gz<4&RZ{U};{iJKay zX#5MYW&%9APskpFI1jTcDox4Tlww9D!@mCB?HA&T56-@^9xzfuPvSg?x0f)OAtoSn z90=)Awz@b5-QTn^7*ab$J7|VL9JW=sxTnbvf@>w`9;3^SLXi76K#=|Ct7@0C55_w2?wMsa%u5t3 zjEO-Av!n7G@!tWvx4*QAAD=Q1~fXD3Ihj& zBH7#!@2!^>bJH(uHm#(qKcVBBQfK5F^50eU5(TUwjYXO7MyUGLyNA6kIb4os`*W&Y zwh~MzQ#M?z8OL3iOr(uWa@)8+_n)L@GfUl5M5Z@8&Lz~CMsQCO2KQeVm#qxxXj4UW z$%H__WyPsRHo7WcR#wm_2K-vL(7S>y6(&kkcIU@6w?c?1U;gmnB6bJb!|%QkttfS~ zF0W|qBB<1zp;_6*pjy@pv-U@(?%O}Kcn8dv^5`nkwyp)IY4 zF-spd9#;J9Sq?G9)vH8$obvf>`yZu4!T-eqkOsZ6J$LnzM?t|+msDZr;wrWtX{_eE z9~o&F%y>Rcb~P5}YkH#d8!Ng*rEVTjtV$bKe--hc|5N{4mmcFa$?)cvRh(gCil*9u ziZvPLt=eC1#(cC#D|*MggJ@~|UkznNJMfEt>2i;YeGX8>$MS>LM{^$!I3$IK*o%^~ zTcIZUF{=^-3kEelt69w_^v{BktZK5=ZUdMRpK2igF22B|xg$xYJbuIA5S)LYVKk^ZoCB4Fs>H=(N9mI(s!rysyqm%X zHIPL0MGcr^<$g+yOeWX4zWAj1Stob8qlVA*R%6#!NaHa~Sc^~2&T71O+E_u= zpNg(k>GL3X&{Bv0$$u$)KhV7GC5tJz$c1_Mf!iP(n+(AD&wXr4WH9|Ky%Z8m9BkK? zi8pV0A+AYh&hoSFhnel@k|8Sd(^!42{(z%?GgeMc?#*=A{g@uVYAH57Mvk|#wVm|K z$m|Z18Xr~8LzR_kt|=1&t!yK#9Ujh#jDU@W^S(7ug*5#Jr^#~JOk`?Eef-$yywJ)Y zrQQP^#6_E5BpxKVD5<>~>pjhUyFg%P!@|e81aT%Mqi*lA_zoJY(L&GZq*jL{L3ika#U$^;Ic%^{3* zmWKXO#5aDOpNqJ1jH2S?`#D%B|7X>G~BCO5<6!@5#p2JSV*KFEZ(V)tgj1=2I*h>sV9Ks9PUk~!R^v6n?$cdJX^m0_G z=$PX5&^BrzxPXj8^b=J_aRtO&YiwUW<8pPcp*2BnHt|gQ=||40NeP$NitiJ|75@B^ zfS##pV6G%b(2jRYl0p&=l9sssPBUiB(`DgcErP<>7Cq45r<{OirV=)u#%c|jNHWbo z?H2vOO2qKZlm^H|QIE``2ZJ$6UPI)k!>yULk%G3W4LVyK+rcYq!D3ONFG!ufibIiO zjH-e@lWkI6%xBU5pItMhx@c6C7q^B=IqMkQTvZawY(@RWc?&1xOiC#g-7?!F)_rX&Zo-HWm(W!<)rE)eN4{eJ5jcbukQLBdtlI?Gz$4eawg%o zVQv=#`aKdk$VC_9dK|iUj?wVmT_O5QHzvigqCjXk#9c+!G`>w8AojZYR^V^%ND636 zDrgq^&5`J>8$yPq2B?@x$E})e6Z)c1(?EmUd1AU=yiwPuH4|#|n#J1M#Ys;Lr$RT` z1O4W}y>lY!Y3U7s8XR9q%tX7=^CZeEU-ZNn8sZ6jOg!aeCCRB6sd#DvHBtQ{Z*dLk30se9IL*q%#S* z&>R8hFxUW}2^uJrhT}=FPuz5Fiv&NI$-c@GQb&9%RHi$7^$UYxxt_!HbkeGYDxN*D zUh@3<@koC`%MipK6G@(P-&#jB7 ziYt`FVq{#Ww^aFC=SVmXuB-H6s!nH1yzo4hzIV$QNLkB#ingGu9b?S`Bse0E{a_23 z`0tc!)$97dcv`)D;gL6dw`DhWIl!3lN>uRa;twfsw;D}z!S~li`$t`09nDy2#s6K! zM!O(70oQGbvdBzOk?plC%0I(;u?P9pKBhgZk^db%-b#yLH3*6BKHTQs{Ll7&AOHWA z*Yy9+c=|s-alCovqTGV2$%2SN{vymlSOB01spj;z{kR)mLZ5X2m^vMpJbPl#|3Q<5 z!wm1==dfR?^L)zh2QaDqg}mG%DFl+pG)Vvd_)v>n4$SrT$&ZCh1vC9&1|+Qhx2-k< zZ{T?XpF?8RmRjK=!k$L54b+9F#);2f4{un;Z#vG@@F~(;~L1F*#Uz@8ZzQ~dw0ex8zNa?=Y z6p|bG{+?h&4uR`p(Y2#~-c`lGEn6^CJ)X#Ri2elXzkl;2(a6+57Pg#6X+Yp9XIk|g z!@m4qCf%vo25^XIQqxaV^tfJlha?>9tszVM#QM`G(A%cmW}B~6t$Y9B%OX)R3DDKV z1Y~pMbms+9S8J6aVyM0vEfPfV&y)TT)@nf|HGhaj3A+C8;6)-0X8-?K@Bd-S|L5<6 zWB$F{F;@ft;dON-vHYEmv(j6Y+WNMKlEwQT2=cop586LeLM_K*+GLiey1yZdYJ`9P z*|@NnP?-9hHtd}Yfbc@tfz-yqexh3ztDq-ujJ>rI+7pIED@k zZmN!2!MfLA=2}qdC?4%E7*EsX_QCbEc7rI-fs}up77S6Ly;Jm*=VZHCXhw`t>h*bC zledazDyQu&=lEUU#BId#*a8nBa-c##|CRUrh2b39VB{mDCBfGcGre@KVLuAr#SHD5ny_+=P!D*QKH3iH5F+B>6TRQUCby6Ghf10g z8S#Y1_(jv2y-j3rc{<~g;1Wx}HGR}sN(Y_a?ka;+vJt%xW{jh;X z=6+tz#peF=2NxoQ(3H1fe<_VCTMu^m4WGOMl)D@5%5wyv&ADH&*urhmCOMXOQQ>2b zVdPgJHXZ-u3gQls?b{yG6LhU4H@k3ULp>)7iMYc>LWwRRovESC)ZNxXalqzu-n&Tc zOPNkq`aCcj;_f^D_2xmqv93^15!^gq*82W7P5G}H;+@vi`HaY%dr*I^ov_evO|ew} z#80X3nUzc)?}w5N6Q{@qv1$~-kAxTAiaxrO4%eq?_qW+{81HmiT->J9+jD_nLg6xM z+%M+!PGw(q^=Hztkwrj*)wMr0lkGc?mB_Fh;_?pp6cnV^Td1*y2zLHRN&`|=HH(ZA z_yh%nylS7D$iF{ah>d~dQW;uBLj~h=V}AMfRG@>BK90=$%G^@P@mL5k<1I~kFQA@SKT2MO4ll!#Fbk8K+FzkO^`$C zIz+CxWXXtqYmyM)G^+I9?@T9?f*i$lRY9W$*VC3VF}&QL;U-!`B>5Ye^J-(>zahpJ zGAk~kHlcW62C!GfsiyM77tXSRXp+mF&QsXwM1FZ8 z-6i48>fc14`*-a80yg2WDdT$~yn`li<$mD~C`G2rLdHJ4Qd{5Tu}Do66k|MBtR`Vp zW%Yc=_siopv&?pp@d`LpPx2M-ohUXQyr&1 z$0*rXiFzNzv)#L2=oxn`)s%a9OFaO*{1Y>LAMD;gft6aPTx7NN3hYNtZq%@yp_&SC zyS0x_r>wrJwiwQSu9v?4yJ;g4s9jK9Id9uOXeOvkkBS?qx(jMKI7GqB;2Rz&-|VIB zsg)Dr4+8Mbw^#4Im7PzwyI@MqHw{z-v`0j<3^paxL&i*_6uV%yUChcQ(tQb2@eue#`MQItr`KX%XzvA zQmrrX@SI<-zh$3Sjn)_>emUTWCCJexZJ0$8^V*2WC1(o>3w_z;Tq_G%)5%h%X?~eg zcPhHx%*ie6g<8_L5$uVc5|icIhwioxdm@bqF;7W1im#@Z-JmKSm~dzEa^Y=ZHPO;` ziB3M?W1XE%D!GW*okO}Fdd<)0KX$PORWQ|PR zvsD$+^hD?)bGenEDr)$NL;*t2A%QjpXvDO_fOgQ^a6f|+0sPgECm>mynRM6fLErB$ zL${{oWU;QuO+1C7mbE(3GX#$`c7g;~j=%pVnnViEz}X;@gr&ySCGI}!62d!lAq-bL zBnuZ78D&vId$RcPdU&O{F9qP{NpFA-0Q0`}UIU72_>g=$Fag7hy%Q9d=UvWUQ9m%h ze^06R7-J{oHP1g13^RB1d87uYiP$~?YS=>hSyamS?U?&5%CAegj>FynZ0@QieeMTq zbW;FR&4y-+V)IOH?Vqh?Rzr4r>duRRH?%5}r0I3%TeLJ9Q^Z0F^P)T^J>a47# zy`AomcaDN7IZ(K|wkAZW^L!><_k&D%WM2GujDgWJL2K>2;mKle(*I%s$-LThEglv# zP?i00e}}Fthi)BSu9_-3bx6Jlcg};$Va&2JT+Pwgv4CQy2I(o! zrXW}1B{Wziv|%6F{-;RjUK%Nz7-E9B*;G#1?{KI){2*7KnXka-zSiz54%>4aFW;i+ z9;H8@h~%jkzBo+X8j*X2onV^CNmN)-LlWyLEVKieN%!ei10K$B1g5DtHPs6?(t@Y` zb>RKxw)-XY?v}A{T1AgQ>IbIMlN@$@xZnm47E{$Wweu2zbVW;mY5#d3P}ir{*G5(& z(V^VwyXpFx$Bdb-k4K-|-D{dg!>(Z!t>O_6lJ76}5ZtMpW#onr?c{`J6(6Sj*AC zq0KAHBB^gd0*{^NiDt6Zg}iQ!>IQ|EG(cN(R6`E> z>ve7z`*7dh^1OjkRrg&Ph*8heu~6lztkUwRDl%I(I=0sfokm#r1d>QbCi2>al&3arR9GYhP4I)$>q}SQ( za(VqJVY0?_smSFFCEJq}+k1JeBRIwTJ-Y-)znmw<+Aeid89bSR9udeQj7?EDPFeeH zc^`2*7?0kevsEWiq_ZP{xQszd09(viUvM}$&3Y7>SEj$^GTUl@rDoE7hO9n`>XCv+{g6<2<8HdvxFv@%n#%?|G+DHYnvfg;K3loy?~CPjc2QJT8-0qqqJ4IW zkx~@-SAt&Kk6#nXV5PB9F;rB!(Kr;@Rjg|KO`FH`fr(rsVC%$I`a2U%6hKN+*3{YG z+lR#AjAU9}S$SC=QlMf_jLLt(SG~p0%d4p*YO_JQN}))+2a^4AWzL^y`+UK=XCyN9 zuuTpB0Y^=CAu2-qG9839nUU4d|mxVZ-D5};6PRA#z zME@?uL%gEp3Bv)@Eo^OW(|ZRg;Auo8Jho+VfSd=XN((D%kve!&vyeVYqz+zot@6>h zJ8a0|mG*hf=MAc(Nj*_VWlgSl+C1%G{?asg_#K8rt$MG_DRC}y>Pj;$E$zSrS0R)f z5G&0e`9oDh^Ggn{_MDKbY_pK8#az>7zm90t^tM?}edLGf6@x=6)NP9UMFqf$Yx`SN z(}h-iJ#^y?92JpU#Tx_L!Bl3or8w}7J((PRV#q^K8Z(piWd6Qq?g=G!4aCOrL`dXW zZX?lX_0Ou{H!AtoY;-JmdpTIBwe#qq4>^FxfTJCY#l)7HBxyP;t3q`H%Sl=>5WyyX z)XsvCz-XK2CFQb=F#|-MoRqb5_GrL%^-0e}9iHX<1!2|99PzBcY~-1;N$ zeVt`f4ed;)PzhA9KBq_Oawwr!dHE2^yu_toN|E*L`@j(Hog4q{VCtkZD7ReF2w?vM zH){P7S;U`GQ{g>hilatmw{5;(SYa8`$RAqi6f^?pnoVm3o4fH&uPu1lkh~34h+x!y)Lgvs|)>_$1{bAI$LH&?J8%4 z$`k7UL)j`x=~>In26847-Zpm#&T75IIcdWTj#6WEQk;k%svuckSc%E9k_sp46ygxH zVWMvrh0kI-S>%!s$J|hu$)s!C(K%CT`DU$FGC+ocxIej06k0Ef4N%1QeA+-ue&Oq%X_ZI5)*3>M z9gp}W=d}Y7-HyGP?d3_waH{n~HE{^Q^x?Lk7kfk6zK)Xe6uO?k(GAlC=Vo5k_(C2a zMq&ju(5V6-M?K)gY29xE96w~;!_(gv|F$WCyTZ!%F^wQ&hWiWS`S77YLcE^cVN|d4 zUh{<&^VFV2`xcQe6Gw!OvCNz@bTCN9%}Z8ObDV`AYcz{IyGP~}&-{wBs{#Jai#Yv< z?-YxBf9guQfr~_Cq-ud@uAJ+mjlSgx=UAT-CYf-mQZ~ELb-yidY^0R5L&-8eZfI=` z^@Ln+Ig%M`p5SmRa~O;oYW2Byv+NkfC4llm%&z1G=2YQ$)w1Lfo4a`-%i~(bh|lh9 zg9PP-ex0D^ie#s8=g$+#PTxSwgqKRzY(nmnw96v}f~mCb%a!zzOAt zdHpwui+R_f&9>AD($ehPufUDh9`R5uCC*7J4^R3hJz3cv?%J4;8IWd)*)X;BZ|RSg zNCH9k#(2AhZDC{S#nteS)cDU}d~*wmy`#+EM=JfFxHeeZdYGkUsyX?Mi2m?JeXU_Q zaUk{{N=Yv9LWe5wy&q|05)kD$idZngZ>oYZuDqH!s@QRbBs$f~%A7JYDd3&{cF18$ zX(@^d(al!mHnzLtt}>Dy`$GdM8^0Bt#|pL*Cx|szPds!W?;KTCaw;m^8Ow}t7#_~< zNPSvA6IIQ3^LcR(2)2o~Z(|(~C(Xn5hw@e30oGpEU%}1t79O7n{>8DnGTxRdSzJ{~ zRYAa`U(FwX%sqc`#`mO_d0W{5=F7wc5u1ALStj4PgTva@?$<+Ji1Oy{Ep65qH|tY& zP;dLVL((re#hr3^knm*3n1ue4^TK zGe21eh@Gw2jeOilY_4l>GPp<{sUecoS{xe9SFD(D5}CMK=9o2crGdNKQ+1?k*W1+> zvI_6CvIJwMOUe)*+~o{J2+ZrQ?lTIy(D1}tmJ=O*q%g4o!VLY=Bxc(+9(DMLxptgo zxbPmUStMAU*9MlqYDT-CUdR|Ws@s6~R5$F#RUuIC7YD;eiK(O+H-^5@O!y(bCqw=5 zEz+k3sh;R;Q;fImlMwcO&KUY3VVSZWl#we5E6%jC!EgIK%`R&9xi$x&SJ{42<+?54w3MmD5Vi1P5We;;w(i#r^j{sf3X1DzH zvPi}isik}(=`wZ;Q=ef%oV4X-CEHiS#)6)BC++=-nPS0x#9RYzZ7#IYZZ$8SN>UO- znnF^PBITLp^X$y`VPRQ{1$X0F8=qIcq|ysivx-b5C~B4se(v!b4iSptB>_8s(F))A znWbnhz5CfZknZEp4=>QPaDP&@4SU)>nOj1^ySn*nX}p~d91*-(M2Zn=`~qmB_lUKm z^Xx%`x%ZVk!}VyE40sC(uQr=U%zra3>>Sp%WLP-|+lngFxx*I&Cw450d<9bAR~pA9 z_+k7k+1Pjm76*;ZPC3OKj^1}!@@qO9T0EYdVkirpNnwNXc@qka*IG6HOCC0A$d}=@p@$M*TVIpEgW~9+sr}~Yu=kU69IqoAG-ihZ8C1` z#oryNSSV21ac1B5pkJv@V3e&ls|A>}uW2+N))*^9%@OTkrdPHl^z7*YC{b$pjtcMj zsVvld5;aD5;r*yB+Z^-n^d2r2|8ywd35omEB`@88Mk}Z&PtNxK0)Gzz`+!5`a!^lJ0p7*sn9-ng8_~UZk0^u7Zak!eBHT!56Q7u)n|jrg7G{ zvEx%~Au!c5)gNFaoRDpoU)R0bqHkg?G(BCpHZR9O>1p<5gziPGL8tNWT*j`Igre`L zgJ!?YlM1fl_KYHup(&4 zmG{1PM|;^S56@kko=SR8)rhG?xN2z2>)jpgwAs;G1Jss9d8@T4`Izb?#I-XglD5Nz zCsRTLYy5wUr#fs5B@Z-n$lyCGIXvpCS{OALkP5<0>UEa>j9(PL=vJ1@(!Dl<)Tilc z=@ZL&*43(tvFJJ|sM^hzfOWqQ67PNt%)Rd^Ct_0mle6?z-D0K&>)awST7c+_C*-hD zO0IIM%Vf&NKdumR*6VUA4IFleajAc>}wpLi!)bs#YcJthTll2o7 zyzSnyL&PU*IM3)?OIR?p2%gt`>iW*7Y62Mk$u%BlVZpK7SSKT%m{AxI?wnh_QJ;I? z0$gHu`^qx`KM8w->s+Nh1fOwD)XXPT(_!HC&D{CqeDq*7;+BJ_g{Uz2VWTwxCc2am zzi}6T9uI-6%td_o_+nDUXIvZJC5(ud8zJn*`Blxyb3Ar5(A(MFol};od%9_Av*$|v z&~IoBu;8ReoG~~bT@I{|&>d`Z4{1CTwPd-805A}hmEBC;BsWwC9Y1qC<2 z_793!xNhoLehv0SY&cccaBsN=x5y&Sw$n~tU9>IiG^LJx7i(*QCNrs@^|N~pfes_* z&fq%Oq#1=B122R2UM{HMmk*mVR&F+zq1N*GA6mY$sGjiKOTf;SnDE~vVr0=RoY`MM ztwZr9rF=hf<4fbT2nr&ey@5L+v6e3D{j&dJ0Y7|5EwK3ax$aCo8(z-5=+J+<+9ofD zCC%KR0lcV7(Y&lUh_ZMn8X}rU)Za|%Ayhxt8ks?LYaXee;`I?833MM;mUqqj6r){X z+VV$BL#xj9J}h_!#Dgzl61x*Jm~Rh!e8$O4F_T7GWvqQk&g*UMx>pd_+388&^D<@HThL@EOidZ}u?mqP%qMNiOQgqWF%wO?VNGD# zl6+*)lBbVIS2F4lIC0CuU_3kInu#P6^0rrcer0RUZM0Y9b2HgA+&XJH&gS zT5hH26|~hkb3dtP>~ltrER5(*Ugb|T;{3|8$w_*5o}FQaST-B4C2N5ltf1%f_P&@2 z<(_+a*Ieaclf2=I+WeS5+o{dFyd1V9DOb0}9e-2ed%S36YiYQ_=YS&zFEJA1eoS~4 zQ*m;lHwp1_XE;$_kxP`>Bc``t@S5u|-dP)27Pc@ovOCb%^o$J?(YRuaFROEdckZ9a zB90nVox@#nnr;Zm2T}*sl|A9%Ih(m!qO9(=AtZO(5s!J^;h5}%dQuN}0B3%yU!9(X zVC;^3gvL$&)}yoGpfix{W@$#xS6jcmsuFbmb7<-(P@<=)zIA1zsHEi=ygt6vTG!os z-JG&ZP#c9Z1z%vX{PiPjzO_Ko;!QkeBD9uFOIyb+>`Am&;6!m09i+VRY+syXc|15=c}xdhm>o$bg2*wIsXXp4$97sIm+sQy zr(SqUUl2K2Cw&pOFXo+T0o*%y7p3dQD)&+!@f5P8(~}CfO%+;&tUs9vRFHca#{@_m zdAQPwPu8WLHcDkPs2$dxa^w?qK2h78{!Uq>A)T*|H6>}fd^@uj0HIxY)iZ>^;~|Cl zEiQd_C99kG`r^5^M0K5gcUHoL9{5pYDXZCHuey80l8TLRhb{dK)*{qw39wysBVxRc zxEAVh&YoXLf8Ov2t`kdhDedgmkciJ#%? z5Zc3D0lLisUiA$EVd1H8>fM_UW$d)i1#orU>kign!X?WC6Mv~fD5s15&dPOTi|hI} z4tn2wU?aXrbC;e7ZjnmNCy&yU>Aui&@z|z#*u$`yYhA7Z=ZUVw!BPpT8|!r?r>$!b zeuh{v`4iR`^Ne7#0UOOhwJ`g|2>-t-xZ@T38yfct^ZU;A%r@q?*l@?@l{>E;)~Q|aAoBAkVs=DwX| z3Qg1}2*Let?POiHmUZ8dzkC8pot?V)DdW~WZGXHVV6x)!<4QIBd|&Gse+9X=qSDH6 zxoZ`huR!?kzZuEaKcq`6=JVGs*S((UhOeHiMyg|EcUP-Ed&2sGvU=$SxBI!nQEsF5 zn<6KZI5tNXm;PUc}$S1B=1DDwO#t)&;Qp1Z(ZirJq&5ef82H@~{!tPp(C8atFE zd=wuz(d*mSyA8%W`HjjpZfk1%$}jVJRqb!&lKwJ^SziJxNDSGdLH)k3f@c3=XSOQs zjSU(6j|SKi*TDas6>nwzKNLd#F9)rqtYJ2bXMvB?O#h^)pF}ONAYdaQI~kNw&;M%I zcl6eNc9r;)Z<5%cdPvr9Zve?k|QboNT;5~}YMG1d< z2-!y)rvtu^*;Xx6la3Qf7Mw8_qNKq+z)602J-*umVdA29gSRU!(1-W}gIFjHlcUnt zmpmU$t%`%u+`m@EApqwaCj!f`9lImIgV5$H>MznveQsKqPk)%rB!gNs*&kjyryS=( zo50^B{<+_3Gza0?y=2hXt^&U%yq@BZmLZMMfsC`& z%Em7GPcvumq#viL>7AAYTrT=1PI9v{2{htA7(mn{=Hb#Ht!i&)sHPox@?{~gDDrjI zRiC0-{5#mAZ6I)ytO-hn+}&SyZ@LfguvFgP>}2E_#~*Zi+B|j~a7ZYX%t3@n5MDiJ z=m@AhcH3=T2{V=+?-y4-hb_Hu&3u{W$K5SET{vf3i9UM#)a}g7d_s=&R5P|O=r`6Zt>8F1u7?=Yt`PbR)kU#Q)>uuI9GP2e=pg7@LDKU~e|;_so$ z9(o)gULO>^`;H&;c;8jGpOTw}7CXzOXQo47PDkh;dAKL7_;{m7-5CHbcsQ0nFQJTe zQG1J7(UiHln9))zY652Fy&Ya@d5|?~IYz+bXw}#sSu6(jJciv$)Rt6%Ls+fz_gGcd!*LgcmT#TW94?}? z83~jU$?#*HF^bIV}!W-05wa#M^_r7{c3;$3WkR*q`OJmGXlV4a% zrQG%cM$pxrm?S&ti`R?^b5V5<1<-BlY4Cf)%`?O@Y~ia`0+i+N`q{z#AEfs zZx^g%?P_eiIHbYv8_!3uOdXl;SNfCetf0zVyEGc5M~O|A?G72R!k+wt!Sj?Vx0)`qHDH`cEmMN{f)M_?nry$Zg1}%0{5)X+G+_rxQiH= zqPHa6_Zj|Ql)YtGTUppHOoySgr9dggZ72nbyW12B6nA%*AjKU@ixe+VoIr7h;_mKl zfe>60La^YFlg@PBbN+nSIp6w`>q@fsUVE>-)?@3wpXaS6!J0yRCwh-6El@bmdLEUO z-KL5vwYkUYSL(^)?KR+b=CvpczZC`-bLDYm{g*j$T@Gpa_;6{#)7o7zk_WVqaN-zK z*zr!K1=BPAW`+VD5)Bj|PLGY^k`=;{jn55(>F7rkRSdBT9Gt}^qSn@$Yn7|!59U3P z_L8h23&e`{iNmBefZe|ziF{G>%u_1Iv*}B zI&dSkfobq_xz*^*yBHJ)Dq!s@t;6^cM{6AIzoG?=bjT<7d?Zr1K{H)%?~D(dt2Zu^ zE#}r$JT)o3-bJn5biM}KPGD0o=*`JB-rcXHKf0J9yr&BL&MjQ{#fJMi%7RpW#pq}D z}NCL-@}kiOA?B{<|(uPVf?)ta9h!f)4IW8DTLQ#q)8Q0UC^KEfbeSlFSaRaGQGKFf0|4Hrs(_I|;n>6GWb;%M(B7P5bcYby;&&&L)b z*on53EfQ+U4$_NbySXU(b41GLd8abYiRh8Sr+>Rkm^97&{k7lSWLSav!c#FI+rO@* zb)0>$!JRuV^4Lwzh@~BsREu~ogX(mgd0faA5bG-@%e$eI$e{Q#o%7%cL%UqXbezvM zveO~v-gVLh4YN%aj>Dlx>iVwcMoUh;=R9wZ&? z_BN4spI6xgmGV;abKY=V=69V!OiXg~^gVX=BJDqC(syp|WS3tt->4uvx$mzbB!Ndm z5ujiAN4kI)U=zVPvi|A^%xx@D(Hgpd!}Jo9TP1V?9vwQOa60g16qldRKmHv3-%p(OG{`BPSj`&xz`_&*m) zcN9jgmCe76lm|K8wb|bwdL)ji0Q$gIy0Xk2W!dLx<2u~2CQX5Z(Su_TL8!~t6b7y` zZe@SJN|5Ev%(04by%iUm3HW$o!Dk{f(#<6ZwdfI#Vtl$WI>@6dS+yi_qrzCTEfI8T zJyr>pejcZ@80M${^1p@W%`H}B??`uvka3IpQr{my-)uO`nLJ5{DxhfYH0gwiTqtBS z+;^soJ;4witz^oeS%1fyZX-_}i?&Mtol#vHhruS2;b!>%lZ@??4aqO7=y&TKIyP|M zoRIOmhyNsbgyCHZzS&8!*RqJJRLYxeK)FW!dt8^4_4(Zs{zR)0UgB8ppoiwc)qc1f z4w@Sy3ja>7<+FwR$Zzhg#f7Z~PaXl?Z`CPk32$_&uZPvaZ|(poaJKR*2X-I-Uz8kD z8Twjp#UJRtCXLHU)3hFLg6z><4 z=Q+-N>A>`%+V5V&u!BqVkdranF2C?)rn*!6pw#D&f5Y}Rf~_p)Ry?2W{1*$z1^kai zDO1Ep-Tmg@8{rfsrQqU27t{#XLTB3z!@B2ajFyT1>%Tu$5w>#~~f4R}+U@&IY;huI7S1_A%QYS&cPH(iWR zjLEwrMQTA0JcvH;EAX4tgThUMn1MEp_H~G(aw<|+`>pTc zZ|S@r^2@#^ocu1~`#fX%zG7%I{!f@K>&ExR1w~q^o)B>?hTD^S)Bic1vkUMP?M6(j za@@sHfE9fm%Wf|Vy}W?-#O+k51;A_9dqsKEn#`{zEB6iit9~v)WyI`yOr=8C2t<+q zTc#)k&kw9Jw4YegvU#iGMK#Xq=rA2u*Fbn(;d|fs5-0fxRHWvTtrewRL6A)S;5Aw< zfI4(%xZ3)o;%d=unuFU-Jvr!<&SsYaAxISDc?FRs$H~^J>ZDq?l>3UV{S=faj>>I{ zKMo1RF|0&Pvc4LVk1-K188oM0z4*Xj_LJ0I4jQE#nCZ&hdQ(^e#sRbsb+k*otn%=q z%aqq>xSJf#;9yS!sCl1K-X?*kI~LMs^87k(6!q0+<+0eMIVJ*j;02Y*+k0abG!7Gt z;?AAf>td0%m2YJ3eN2G+aFsQE$qxLW+bGGb!Id=ueBd_|N2-JE`nSU8RyLkhzhAYe zOe%V&t=ql1nqP7D)`zi(uUsPJnROdf*336gJ&&V+Tb9VkURl5(R$I+T(u!*O<+~Aq zq!#0nc_PN%ya%7Arg(bSlbnl^??D$Xrzqljb(*x9;VLTdWuEf(X)d_fcsNytRnp#7 z0(E7JDceO~A)s6k*in_Av`@~h;TfR4TFgV>`<0XgFPmxZl7p*PlXIbWetJCmUHSxy z?SzF{f3VKw+;s711!aMGFZ5+3Qwn?5i8xbGugg81wt;&-CGcj=L|oiJt(W*(kt&t%FuD9CBZI6!zEVY2K$t40SIcrc3a}tER`XYa8lN+Kgq`he zv0w9GrdLIQO$XBq;jCS!a*Vgj^IBw2mIM|}N4!s=c?IF(x3++>HV-+#fZM(_;|)>x zW!dGH$)%})r4zVDsB=RyR34!1Qo7AR+XIp9L{iu!`W~Pv9-4mSm_l|ZKj{ckn&=av>#M$%Ppq;J)+3TuS5ln~d8-u5c$CRcjL;Xa{^XYw}J z@gf#qC3{SQl=@QXRFeWzb(qo=b^euD7}OlUKw{pTX{WLx%THS$A~L)3V?lKArm^Dsv8{1iR!Awoc{B#GX+Hv^UlWCOU@@nnm$~bIZ(|_DHp~-?ReB)oW#(lV>nw=$#3846z<#lM|7|ayW z)N#wBMGp>-1r=4-L`43Kso6q4500s;%@G;YO7?UY0aTQfJJR+^+V=bWn77e$V8LO| zTq-Yi$dz)&jf{kOfq-WA13Rj%S|(-Fst{;vB-d1yq#KU?WaP8ntoKGbYEo41IDIJ- z&Ez>U{AzP5wG=pfTq^3Cz0{Sqw4{n8J%G8vHxes7H}P!c|K{5LD6o%KZ^!w7F~u7V zf>znS7`7Y7zSmJaCjM%218lkv7p3uA%n#>{wb-adg}Uhqi?|G|aETR7duiqeAXr|} zNKEX{=QC6@+%D-Nm;F4byN5#wfkcvlc+g?3z}JW^5SB8fx&k%Eq+RUU5W z`E^og0h`wIc>#`R~ajDJjzFvNcYxOnI?X05GPMCC4v%DEq;~EC6yoS_;d|)F|); zEb1Y`J8c(RgUA%FHk0E5+xzDCdzLc;Y>4{id4z9b3VN`q)JE%$aqf}KI+c~0#y?EQ zo?Io(0^PVXPCY{)QU2=8ENnA4CK-D}ln(xEZifIwNIRTQTPL9ru^p$g99y;)=$6-r zMU+WFr`O?9IV5S~B8XHhSYfGJR`Y`m!@KK6ixyYUml@AGbX>vK4>$KdTYCQ*4yH}s z%JU$ZBS_3HF*YFTRvxX3Hv$vUq>XM&QLW-Pc|L{P8{VI=EmR;nNiES0^!OP^AQH6h z(Tp{|J)wcP^V7yf@9x2r1k(OsQD9Ib3820*R{jD5VCR`o^9=p1Sy7l%I6R~;7%6>D zAO2A1Th(JXTsX&P5&l=X_GQ3T2I?*ge!Zx&A8PgQ(m(n;Fb^tiz@X2P)-(6Ag$(i_jUPMV`7IX->X0%>7R(1Q)r8jp_RewlvKi7m- zYRol8Pvc0M7`!GgrFZ)Gmcm-i1m0-VE1cj<=qY*QY>LZW6w0zN705lr+rXYmyglHU z-h5<(<(xn@swFt_?Bn6Ros^m7emL1~_h7;whlm9(DZR{UAqJ!-8w#1<=|Es{xRwRA`Jq=vi1Q{-w0mCHJjQub7hh1+VJlErwDk$hQ4uIvv?>9ybvic8DI z{W_~~;;J=TM>{cOw{X>;dJn;GZ4lpn=I8g1LRS5ugN|H?3i%g|qhKe^_jKvDf`??nm7G@pE(nUA)&$j%uDsGFk@T7l%Au);$!J zDw)?v(!8~u#9?`yPgzhOEfX}YU{v)J5ptv&$(=w-TN~1t!m+UuLhMRC255Rt9FsnA zhijxVakeW1oui6xg_7zv`Q%YBKyl-c57zG3gb&E1{O^&w+Q|zai5v-5FV(TD6uwQ_ zVM%?R?Q$5aR$;g(P~+Nh$8;Uj75YfLA-|(kGl#HA_e3|O+slR6z-vrw@S`3zdHsji z{4itnFEBw4-)5tLquApwNf$U$0;b8r|Mfwd90sHG)Sd`rKRnG`jYh+}`xPAKr@Lcq z0nfGsI{41p%NJW?H%bPB#2nAP(~hJDFVBfxe#PSdXK2C zZ+(b?@m!+UGf9^LGCvx+KmUGv50uxMNy}VR!89&dBheoDO(yiv6`0&>8L#aVXl9HG zHE%7pyfu%TTgL7ct;&CmH6wWf@_qRJH%#x0xs4faw`x zwR5=FWh(qttb){NML4XUIgWwBiG|oXBGr0Xy^XE@o8TC3)o%EH&(eTzL3{sIbeA7BE*G@Zm*32FuZ$K+XcD_!7s zMLF>{3hElH>LiTv;a+B-iCcKo>m`!(WaECiIFb@wU#g1`W%5QcE5DsdQvPj$QsX+0 z*Z9z14x#h^=@7p7AZr#kFbx=!>j7o9d$8B5-kf3at!L$64P6JAS1WkAawyl=m9+(@kG}}ns z{LDSm(7tn5k_ub>6eoz>0SDdRX^sP(>-+*e!5U5|;B6H=Tq_&X_fNiK-B`54(VI%} z2yOZ$#1BabE@$6t?tQMqEV`HgDl-dGHh`fR|=Z$+}X^lw$BMlU2R;kBim-0(!bp* z@$a_94j$eT0$xy%oJ}_Ps8EhlZ*K8WUl9nbW*d2(PeIWxo2mCNr*fTX&e-7RZ52HU zG{Uqesw~C(tIW%Q*@7zkpi7N2Hgkug9SP^yuS!nFlVZsBI+;91*0X93)=VBV-aI3% z3-Fo+y#OeJVAAa1rE`igZ4$q9;KZVY=9+DuIF-m?P(x7x1L90-CjN5<5ntY3C-rvm zut?yIW@sVs=V6;oRVM#HzN~pEMmXN~-5ht%XPXJTRu8|e_V1+|<`Zic62?wu%SxFI zZ@Mhp;U)PN~)$q&Aum|kqxn5$J{Evect+VlqQuB5wE*mL^eeSB2ATErD1ytw4x^c^Q1~31c1DeNCLOdDZVEnfU5e!{j0Ri5o+B3XK8vym#ax`~4SnzxzrM+a98@&NEZRHO{bca<`&f1VR;L)mW~5Vj>`9yC zhd5>${Gg?Fj7*~$eQv|$vv8=x7(1hLURJO!6ic_l+#ynp^4n38Y>MTm%tG*|+l~YZ z`avc0O2M{oAZ8PkUMV7j)909nRXW5}!kIzUJH%X@_&TNNEcXA_5l}wQx-M<~G58RJ zRWy;sl6OJVO?BIokhR#4O41_K3mBcf-vw7*?RKGzd8@hX9UUI73rlPt%6LR8Vz7lY zpoiA6cN<+t&(5aDQ=GpVUxPK#)%ZNvIh&;v3MR`Lc1_cof94eji zR6ED__1P0uJ|36uRR^%s4pEmjGziyu&UTBR+x43Q=a5*9#2Gg*qoh6sGM3huQQg6X zfYqvp$~;`F-IvW``wBh}T)b3lwaf}v+iBLg_F3Gg$Sj@F;)vY82k}W*-ML*#?HYZ1TGOdVsOXrxP#Fj;Y^u4fRaQQ3PD zFUZJHFUaRI_+q|Fxyi?D%39*Mx736VAx?$diCxjqnq69wkx@x+2C4KF9F;pOQ{4nR zQP5Rnnjo{;%O{t!^NQavKBSD@#bg)rTw~y;RhJ_C8o1thWcycA-2*0y=ev1Iutnxc zWAD!1Z}A2VX2;(1x=bSq)5=CVmhU}W@(5N|6IRxgL&6>h6}6UcE!QvUD~pW@S&)vj zgb}m#jsz5JU=NDz$OKN@w@q$&t2@c0-VZ`Ssh?jHFACSVJXp_T4>xp*x1FMMSy5x|RO5MuAKf z>)NfyjxB0Y;;VN+39|lvke%v`|3TwwMp=|YBZRKiuAaJ=5h;OkXDyoXy$~Vj?ga9cRvRlgx9zFJC(8+L zIy>n7v!paOHZoyz1_>Q{%TPfCa6M(vy*-Jv9zd}&z>fQX^y|#9(Md$rE7E5|*{Zn{ z+gdD>cm{vsj9PE%x>n>TP3Zt*yQSJ1E_OZ_BaP=zioD!(4x*t%w)843FW1&P zewpiqkLWN(GobkWci^^EwCN)V93l&wFx0~$L1&;#UGCNCUwQA4j-@iQcCa9ly1>$D z6`}ss6rDDbj=uK$(`N2*Bk^{h`?=~n3X6ld zx%IB^J7}Q#Fb=9jf~v)!`w4_jc~*Wi?9;md)V;H@gr}ehz45tIpL3ouk!F_giDO*6 zAuh=Tb<0rt3G4^HqGxmp2gK6RUM55`<7My7P(z3Xn zaUbf>`-u$X?4`t7lOOOLKnriIa_to6%Ho8qD4Pnf*@h18CwFJu|Ak*B!s}|@B<4)o z`QrR`-OI$Q)rS_vXl2l=QgmTt%7J?g$KFt|`Ic~B#7;P9cgC2$tOUGV$(k+*rsfs{ zEiGl-pOJ}}x!=}j3)`1JobK=kha2hqrD5c9xMX#dxd^$>CQ=w|ShLN!R0A8Z6y!?H zEA3W2qz8rwd)}=#?XBL31;WlT#n!N!`UDV2St(SV0Q_J^`{_v^iMN`VS<`Spz#z?c_md2*Xgi!@*M~R(Cc%qC+$FS(dq`g`7yzEpsP@MfX@3aI?5BnH7}7yT41AKbGY{M&yv z#F$yS*FMZNM=fgkHjIv*?F!at5~VmF8@3-Vh5V!{YDr%-sdPA)_-+P2kx=U{qg)Q@ zZXk$#4b66*sUngwjEBAN;A$?pJ0MRJ1X2qRu8WMls5j|YvM4QY7>GjBQ8Mbel?V{$ zl!ebfk?afrYm|_)unQa;+6X>rvd#^K1yXFt%4U-e_{YgvG>Z+sBa0ywTL5K(da9FE z_tZuHZtH!&ziz8}Nr)6L*GWpUV`YflX?U(0W^5PTy-VihLMb+IQ#(bO*q3QB zP0P9Skn7oai{ytuF)f}sz0^3WQOCvN=Zw=;$-GG^P(_9omHcO%uFVR64 zp|O4q_}*5C9pl-z%$lnagvA5BoP_d}&0k_pDb}f*J)7eNy1^r<)EggmrYbe-o?lEr z_BMXlwQU(eFjuUGowpV`IDOx6Ro4-dH+qCPe=R|dkxKdWG{*VuVfXyi ztj6Y9^Q}~u4iDmQ*?M7pYXr+T!8s5OyfuRM*&bUh{tC57rlVGugpC2A?0j}vT72zq|X;@%ha|DWgvm!G;iUhtzd4M!nDrAnWUFW9yQA{%I$U=fGVq=S+I`G=vCn~vaXiOG&NWj9Xkez3Z1<~cye}{1 zKn*fRp!QdV&CNAfyg+Rbu4gI%msN4xUx7=v^J#ebdb7GdM|n$bMr0>OAW&2a6k= z`}Smc1(_PsfVH`pnA;c<%b0DC%z6TJx!b@*-)`9D1ow>ZsqQIKx?rU4q-a;|DAq9G z48!V&D?%-8fEd_s9h1*o3r{w#Dxv&A-9i|BD58;Cy>(acPGUP-`0je+LhWdc=dS+` z?!V~hDmQdxc$v57s^fj7T46Q-78pNs(ezX>BM}PqP+`DX}UKK;(h-8;$rc9eLugJPvGgO*={7HeRc0~+F!in`^iOFxs7MA z>-X?E6t?_cj9cwBd!r&GLsF~d@=Ve0jEyeKO?BvV;G)wvKQm5DupZpYeiAL&|LmQm z#8^MDu@sF29JKLzcUvk~!SfiE4a8j1jnPWzjL>hgM#rEA3ysIdDq7-SQ95we3&2I^ULlxru#9^Gb<36Oha)w z27NuiG5ifeWK$IxK#pzr&4p)P{9$ll57~;+t8Y9hquw#NqS&$;bTTVlR{INU3sZUy zHvxY6Ctou#7o<4uW5-B$1OxDpRY?7A3A{TPpq7ZI<VLRQlBY`jB>g<2=lFW-y8FEW5B9qln$F|pJB z&NlKli`TF+DiJBWQW2AGzqj+i3r&*|dZUd*Pe&beWh?5V`s}mllG#ItUV)XPDc0zt zk8v-AfArRHb}X74%bXs$FM7=`2Kcddy3F*jIX@v4sG^b=o1fnJ04Y3ZJBQB|2yA-F z{(W@yH|d+kKt|!7eJ78ZqEOY~gxE(D&)1Bg`6@g|(}&ppy0}wA2u(9h?LfF z?tH!4t!~y{?QZR%jjSqiU${$&M9z7$r&k9_@rT!Th>_@<&wTqptAL<57Yq#V*QOs> zF}h~sx(Su}D@I#QQ$uBqT%a)LZD>QJGu}PlnLZ1WN%pVJTAB2kF=;&F@swvo?u^9D zW7QnBdvl_2=7PxM@`F$Y=Y{(>Woq>hs7G}C-LQq+GJeXzn>i7w-I7|dqH=Ej#x1*1 z_BqvX4W>vOs598Fb4rJCo03mG2G*m&@yd(n@7HNxBrI8!xKs7uLUs&AnYD zQ_D#--r=owZ2(jWBBk>B--|#!06)0TCpwI@7&MB{^Xo5WRK^|R`C#nGsq79e0r*(} z$-yIchUCxFh2`;cqisn~?OK$*ikr~E6T5p3I!`#82eY}8)Ft+`<_J63)^0KJQLW{Q z(u>u$D+{uKSa@VlZTK^orj-rqMz7;@EMV$OzsyX41Bil|{a%yjBdT&C@Rq_rSdesa zo9wY@DRUH#{urZvZHs)NqpE$gq#HYtgO>3`nd-sHL7<$`qSdFpXCn{Qj|o}#J)aa7??rX6iwYFE+N6{-HwC7y(pu#_4{B@li(#W2)ix?`b4lFK zcs0YVHTce;iU`Qowq_wy`pA_q+Jm#mH7^{uLCf%MhZ!?^W9W(Uw8_O`>|7$j9@^NB zt8-+Qj*5@r^Ppd$U|!RI1pY4;5VeEU50GuIpW99%8@Nm&f^cr)D7D7^G80Ujk!2f? zVEN%4Y<;;rU(GDVO@XA!;m_xyTVa5%@Odio>n>eSyxj^al{W!fDxrMO0r5h;oNKkH zw2OeDpNM39v6sue>WL{Dxtl6KVFdHs8!=R1V-3|4p7xrNP=zG-B#58i5n#K0Zvk;4 z0o~josUv7bKp*3r)bQ( z^vDKy4f+L}*^Ae-TjV#(sA;!zTqIpbj%3|bg-ZUX2 zj@91F#M9=&T|&m@XOp{#@m*!Ocv$sTrVmeS_Jg0gI4#IC3kD_eySvZkvOhh4+MG?Z z=HK0Ch&E@fWUVrHqWork4YyM2((Y2G?pB}$tI8C!?xi_crjbP;kX@Q~LefU|fM z*kJxc8OfVAI@Fb4X)}|7;P5=~@_x|-Wh*q*#eB5A%wnK?2x-23Vb^JA3Ge(oTJN5% zk$8sOyLE0T)`Z`YDP*#drneznCr+9PD+bRIxn|~z&Oxy!nK~w-cSs!?prclO^vBH3 zZ`3jK)6zq>-$!{{-NNw$&M`9pLfWsX4X%4js-(}1geynyh&nUY8b#aVY%QJ8IGM3v zd>9}6ocu@6wCIr-@ZfKcK#|Eu`rIB^F$hhCFCJQCrjzk9)QL+$DA&nwp@rA79k_9k z1LP5Czm#WF+12ZA!{j80nX|Dji}hu6zQrpz6wtrNF4&|k4lS z{PS{E>odRasbsUn)(ud7oPfo7tJ zAQ5^D&qu3?Q&jxjp*HRD&EY8C*7$81n;CS(Nw6o_6$Tlfw>`)3a4jP4p$APQ7<5i` zDxcqRF+^s@q1LWeOgaT+=Zcmg;(Ng~+L*kjB3w18yf#{+5mF*3o%!4rJ0YPVNP6Uz zs!R4jG$uk|JVtk8A)v1VpNvjx+2}OqnVo>k_nXm{h}!aIG5k@2iPVv`z+=>d_v+Yy z+P0~_6jmLgUF_1Ms@V?P_b#DTR9|EgK^??PifcHGIcI~S=mQnPCnVY)kF`R`>IFRg zUH1&a)`A(=jm48vrTEyK29>67x7HS&e)!QkAM{n0Q?`}kTpq0g0ajwuYNk$#M!}Dc zSP8do{eDG+5;ujkU|-tkS8bhKel|2!y-5L(A8|z}7nN02IosRY1N_1s*!xU5&u{$h z5*fQ@Bl^wL($Y?@{TUK{IBp@g8U;29)1n%uA4UIQL;qZ{Ejve zK9eT%eoDYy0BkyMuK;8OdyrsZ_&Cf{elU}R7>*VqWIYCf7d56Ovp$E9N%`K1%b@zn z>a{cFg=LZ-Pr6W|$p-5sw4G|m+zLV;Rs6e`!iRxEKXN^EDh)SWo3{qzXoOD5ZuE3i zRZX29>h5wekN*z5-XW>izdxIlKqr@2wLn)GUq2{xwh>Z(`4^hUfVR-e$vhvm-rV>y z>kC+qk)9rId=#9Nh||N`AVbn%wi{Qemq4M=5J_4zIBl2fDtGvw9oQ_PUZ)QZE-ojv z3yqah@7@J}c;kE2y!WJwCpvQ3jyF9!=wW$$99}76fmX))Du;~ws-6szmxnqW@pRsZG@oGT=@2lFN{HLnm+(;C% z_pNwWUaxoH`&+g;vwyn$wDH+j)*_np9d$S(dPfTx+6VbFz@`37q_CuZHlGAjQZiY& z=8Z~o1GH@nQ5i!j0QO3caan9Ab*^RS6x~&`4o^j~-m= zC>fix?PKZy$W!d!4Z2So?-ncf#0x)x30Hb68Iudn&KDt?B(MBuR8_DJQ|VE`YRo1X>fBt^+RA4?Onfzc%fW2K=gGJiU;`*Ja{ zS+~$nC;NA>i>^4!CYbc*sCZJ}9Q9~X4G#C(*xBrf!I5qvjSMt5Sra4U9F`V+>Na>j z+cK%qWRrkO(IC6S=waf3JjX^5bOdL@r1W0z7N@t*e=LMa=w3Nf8@14WaXC(86<@={XQpL@lUY>)Y*ecwQ+~OmlT}ZUYc2?pF9D(C)36$;Xm(ada5MX=YB2-$58y3cbVMW1*<; z3vm`$xFY%E*s_+)Dme&V6Z$me-&fkj`7y6x*{z(;hcYW!=x{CxYq>zNkt~tbDahoY z`h>>Lg=e6c<8ZZ(Z`R$;{3e3172;WTZ9cn@$G0#GR;(iVK6QUGr-Ngkx-d5Knf#_T zZ07T0oJP6w8IG3{tw+QsaaEIn?ORH5=|O$|+CLbO5c;tG%&j(ME2PJ1hH}Ahe8e7f z*n;!38DDo2MB68)22t+V$h&xYwoSgaP4@7}O$<&}zZcY`x>CzXJ!=o5%s!!fj0$a5 z*lq8E32dGx7ed3GCj{IK+wbr9I<{>M{lpQH*_Hk+VG5xI)Bon4QEeTQ*U_*v~+y!kHbG*qQ6o%(qj>h(@N;7>DYJ$ zG(qJ~*Bu0Pe1sl{9!)Bx8z4nJD7YH9kKP_XX-J~VV3&6D3f9k9Ift?=%T~GqLeK@_mroJet>>Jf;i8^6#MH10NPD8a#mw zMkb3hhqh+-qBf3kKZ=cxrTdRvLCgMuzbE7mZjaCut6kd=qC=ZPn?d)`kT zn?!y_tArVr3&-&hQ0d6&9S+vO1Wy~hxcBFP_f5OytRKHjOrh+6|E18{#bH+e^t@JL zt9f)fZ?BhR)kbS$ItRh0qVMz>0H>akhvs+lg(cH`4XDo>YyXYG^cmffB5{h zp`w00+J#!SX3|P~A@1a3p5K-otg1}Nf)!qfeP`VQiSmT?@Zdo2GmFdROUl2}mQ@B& zOI^0GD+bSQS1+Ei8a?hA?-a@ z*xt!ziyCF@l005%(s|qnDmGjm5M>d`n%6ZjUT7|bYWv|N?giO7O|8}(EH%1iuN-9A z)TT9-X3RG}xxLt%q@al7+~sV+@mJ6=&;t+DQmh0t5ip2CqscXaHt#uHR%D`==|~3# zCSjm+Dg~ug?(eA>qI_9FN6po38z(8hp*P;!SqajNbBi3AcY{T;EEP6mAEC2m(=)@9 zy}9R6!0>04izc1ls@?W3`z(UP`Jz6So7Bw`Q?gCPx{*r-?U|{e?wjS4Gq91shSPoQ zcQEmxV%~CjH9bvLsq&H^S&5J+;v^IQnzL5gS6GXO0Z$d6L`IQ~}^Q#Mmr5)}$>f;S$fQh!a z=hvRZlLCgqCdOsc;2FM@U8|kDISXcC$*Kwcw3MVIon^&K?YR;PC@8Ba*WUrhfW-ot zgd@H2cKp9sK>s{5GqChD+->jFZ=z~&JDRH3uJvLTtJJd5$*y!V$c-Hld9(1OA*TJB zO)8kL6jby1^CrNNPUhQQHqE+W2=-Zz=fT}jVJX7l)3Qsl%4aK2$yUprD$(t zB5`4T24o=rD@HHqRkA0wCnyigiQ3aWda}pqWf5&_cW*D}B@p~M22myfCL=iRo+oBr z+OAu_7wqH;;bV9$6kE&ZGYiYE=N$AI(l) z2qKo^8c8XmxCjfCtIaM!UjPF0Qf?13je~)<1-X`!apZd&Ldi<>=cz}-qCp$siS)i< z5zR^Wb9NW21lykFadsOwGYVs85^D5`FB8?YEs7L9@Cgy zqn=wJX#CSt)MvwM@cULOQXIa{?;q6xxX8<*^yvaY1fqU1`7*|nwolhSqj*Mc0~>? z@*h#RqVD!2h=_6#%i83k^K+l3FFxPpESq+cJ=?m!TA5; zlAt{+5etj03<2kt7~a|k?!v@T(!ZZ0ORJaN)W+I+VQ%g{#=2g?w5_)&^?z$u8@Kfn zu%MtozMv)WUifDDkto1jn2M;%82})B^5<{v%(|Y{`!F(wM4`aDtDBn}7M)5}1bjQK z+mw@;nfaF^)^C2|Et;eHK@9shAE>L=ehKUFE3LJ_z^DI)6GPPEr~Gdh4b4gUzmdH^ z{-FJR=Hp(M>8BW07g3cf=Up@<#j)_wq>E(ynJF_rsvyp&{0}d^JH}i9> z4<{wW_bi~C)bfKG$Hv3(8(}`*G(MjZu#=`y>MnoQ8V>)T7xtGaA|7wdI{GQoZ2$&7D4r3XJD=_^I|;X+KVg#*;haH zU;Ry8Rd~4V73B6_ZVbMA71<1ew%u(?iA0VLGu~=Py{N%NXBjJ^_=OV|bx{<2&oRox z{oG`p$ue}Oudh&+gS6mWRd*>vBY-4oH@sY4kWPmXJ|Ep5B`&I|@YNr2xa>TToid0$ zjR`Tw&o9>}-OpCfZ4!HxFN!eTHrH2ONW*K{vhC zb3v?)dHjaoiJ9u=m_BR?$oPz#C?<^ynClE^^_q@RTkzEDsFdeMlBXu5zl8Bgyio_) z)D_AEvRci%Lg$E8@cg~bsuN;Q0GO6#>=F3S@g^PV+4_TYtIfH@xRvQ{neAL;K|5+0 zaa!)N0kh29FLU>OFL3pez7qh7XXdztWpW+g%0lj(*7P8$%G^6$uQ7B)q@(&0&R7Y2SU|yCQ<@b{Zx*YAb z&ElNWa`|oPL50Y7>!2d>fH))Zp2)+k;$s%dT1SKCH5BSVmXxhzYj`)2dK^-5Vlu#% zw#7HzuPK`n&;^+GND1|)FF5KhIs0;FfwwcyJKP~}*!D5>>~zW7ZWf-P0`|7`8#AC{ zB&zZHkx)iNCWp8ociJw2y_{_s_{0*$Bl(9&T!yEfTih3$UsCW0=O0KcdEwuO=DFe= zN%K=%{ipf!eGAQgOZrmE4y$W5p5WduKCGv-?UlKn{x|Z#=xES^g57t#=0B;pC+pL@j`$hE4w(Z#}8C~lbkT{Dm zRahys6)wXfB_QM!7fF(3RBsJ{T{bz3-oABQh@H?!!IcjE!4+jMCr6aPDAI<$!Me}# zt=H~URMWxd+98=914iX*QM%khZ{ibmGlqxg3eHiJgV?S4A?xL;J#IjrGE6y!vn z`4LtVQ}ZM0>Ugtpcv8bKx62~JDqNVg@*I;2`~!%=5$fUYXe6`hw}Bls{GA?AarRPs zr-P!IFD9~=|JA@?epaddj$l)SQrT?WcX2Eu9`sx@CGGi#W{H~!-(((3B(WkExE3O| zGF~`qHwx{qiN&uMZrHoSVs9`Wy#qGCG%|izi?S+^-%Yo|0nfyy7}o(C#BH<0)P@cM zkUgOYe``|5(y@aHbU_0aVMXTK^~2rNXGF+}PEOI0m1t4d(y|%2pIh-0;=u(uTlw#6 zk8)nNehOVODi| zw6<2+SKQ8^2DZblYaTKDU1Phtr%w!P$J)&O{zzJ2;N^C2XEE53-_8lItwnc{+r|o& z2GT}c9oI@rx+33y*pGF7&T%wy#>i7zygxh^lpk`d`=Wr?&ShKg;KcCyjvlz=KTzbcUu{%k?QZ?13w|VV$ zKVTP<618B(bXsZu+0n1ilvIXc%}Jr<6q88v$A~mHk7)xBI^XN0EAFWLv98oNOpA2T z)l%|@vjU%bw`Q&D8saQnR@E%Tl`7rjNOQ5phlNn-suwln4&PHGMBj|3lmVN+XnxIk zNy`3iTGL{R7@M5qAj`jPaB45&;#RYKT9Fge>&& zBL1o%l?dH;!xM_^{ttCUjWC~IkbZ+u}ksNCR2_&PaKh&*Lr zhTd*|S&xW0!tGK|fVgl^KtsUQeVd#H2Z&z_l4$0Y(%!QGW+;X78EGRF^r1a7+w|>7 zPR0`uPmFl8#;*xz0&_u3Hxj*m+}_RZ*$+)*Wc}hhK!- z-uG)_<$=u|?0?brmQiiA?Z0T9qQxo2iWdp) z5Gd|Y+@ZKb(cn_7xI2Mj!QGwW1b26L4-O}Np8xxvz1Lo6o%7|)r_7qnJ+qRL`}*1S z_F;`{<>N^ALU^q7+g7@pozVRu@B`u7Jurzm_GOY~3mdnUkp0ZDOh8t^5hxF7ts#sx zn;@xy2*;o`Ya*Z6X{6|0ARDrME(QdThM-|pHKy7zg1ibxNu3(U&i$t+OVmoN$6_-( zopc&ceB8Is7Mlxs8j4Rx1?MvT+^HD6cdCAX*4k&XSie&{W_EUIBEP)4QPjdu7#>CR z-}avz*AZ`$VpyM`G`%3Q;>yvS8eOcS%df3SX*88Qnp>ggad*$IENt+dRA|!BL`E%1 z0XU+wApR2vz;yZ7nD264UcC6A{gDKBC$C6)QWaAG!C7}kJfwIt$|!l-_)i9T_e09! zP_Stc!cbtpG1|GLwCM7d>Rssk_#th0WOw%A#Z<-a8~tP?ZHgGW;$2d<2P%gl zYU~c$&0X6=do9l2WwePuZ2@-axl~vOv#g^*`RG(d*_d}V)#6)EBYiUD2jFfWyVE8< zm88ekkD7$hD@f5KkMZ!V`AX-BxzHHqfYbkA0lo6u00ZdpBo}_5H(1obIsQr$$9I$u_5izZN>2EhrhMMu0Gn|`wm@cbq`=Lz3r90VnLHo?^wo_snCaGA*AhL z`c`65r}$np+VL7w%>ugIa`3Gr*l2AqcyND7($h55y`BdTd^3>PPf%B!E-HHP9>`al zuPx5SQ1!~B>7J{6FX`v8mu^hKYz7VxFTFV-T}N8WnT-ChM8%Ff5qd(ZMGI)DF4eVM z+oW;6aQxkLRGwe{8Q6qd(<0|wlRR8ik=0zKhZ$=LD5uDIvWV{ZW?ML~*q9L!KkD`S z$GaJQNXF}egmjric2=Th4=WPI!HrTLT=)r95Rp&@A-v%l2Xlc)^G8N*Di*;HJ>_4{maGeP+`mH+a}E(Q$om7&j{@9}?2l<%RAUEMkc^=Z*8k+_TWJ8BTM*rbPO+|B>V zPMv6m1@I5YqpME~@%OipjSO)OeQvLl#GzoIm*g&s2<|jVl6+PtAnx1y5gi|e>Rq5q~FPAJ^ZwEYxL(Hp7)xcRDh+V z>qg5>qsTCciwAWCFS*`KB)n;oc%~4*$Im;fm>#IIFG92xT-C-yi@stc5XW9Uh^x$2 zm--mO2WS5F%u!pr!vJ9~5n+js{u;MZMzs-VSyqxA#e+3H#-f)Yn6<7qLFz&j_d?X<;H z@WVIK$mz#)g`Ctp#-*@GDvC-YA!~f1j^h~xo6$U|{rL~Ok~F@de$MmkvfCZGwQ0I*hD=n=)Q}H~ZVstsN`ac#qhS zAL$XAg(O(3bOJY%<9W9C&1c~)f>zcJOFkOeB|4Q9>1jq#4F%LTVrQGZ=0i$ZqnSIj zpRS9F$uS){=m@{w#Fx9lg^Atzy_#3Ew{}qSf#+?GC@k+o3~SO$-VN0@tK4U*qaV6Q zEzU(4!)PmYcH7vBcDsFZN-BqmuUF<8w7W>?7jT~{+Z&W*uGH-1P2%tn#bX76G-shASUHMs;a zBwA%SVUP^f(Fjx;>TCub#5lyG>7Ix(pbMl2-yVnbgRU@H5hwIh@?6W9aAusgOeKr( zxXf5Uhri-6+kQn}i#A@6TOKM)FK-h0jB5`RNCu&f(^I6@Bcj`^mO5ABw#$vqB?d=UP&jD`W6F2VSU-~S>va1 zD!-KGF|@_we5tDwDTtC+k>g#2Atth<<6ul;NniJa5I2VHd$#K1wV9>AKFD;(5jcU; z_t^BGlt+dcwnaEN=ELjalZO;<#5NMgNBH6NyFYcRYPOZtcnXp~A(eSl;9GBxIGKg$ z#<3HAEx}%vO4_n=L*^>~PCL7IK6&9R)MMUCr3sCDwZoWykKz-w3%6J@Q{ciM883G? z5mr2n#VLD@1s%(iHV+4^C^#;5LQbeP^IB+SWqFg+$&08sGU+IOP5&)CUwlRQ8_x2A z_{D^=zKEjr`8K)uGrDWs-LgG225_)=dmS54NDI2ROHN^eya_DD6M*Kr{IlbC^-g#l z;i9PjAH@TTDO{it@_*#M{5=SK`8NdS-_QTwSIFUDP-lBQof>?u$T!s!Nh1GugyWb0 zOUrB&^1q&cCi>qC|C0ja`1h&#KZ}q4oB#I5eDVLsijQe39De&^cIJx&a1}yP|8Ct4 zbMk$1zfTW`n|81!V2kQPYjEX6lEG`^G#J;u5pm0xJS}p_(sNbPO1!F8y&+S9%F>UeWPL2o_Rw1BQgVyh)XViqpVD()B{nk%ucVjG;EJpdiw04`! zOEG%MmKul%Layo2Mpgqo&*#YW#pkf|>KNpvMRJ=Rn%dzN*r8Z-hB}k_nuco3E|+O3 zAho?SlXm!5nB)+Lo@a5>(H{1A*lb+(Tw-c)yi)r)y8`mk&Gmfqv9D@$gZoJBMrCMt z*SH{N4UJa1+lu|7CM!0Wx~5UGlv-l)M9#h#1Qpjx zY#^tBx!Bc22y`#FdyY!A*~zdt#&uJ#E1{XDs};)LGBTpbzPIO`EEMyy((}-?(N$q( z25I8r;sUj1>nf*0!j=k@!*wz(Oj54zM%f+13qm;%+OA!#uXPE_>Z)qpF7{I5AXG=v zLuEOZ{qB;JjjqbF76WJiv}N}ScTgZj)&^XA(k2zW2xytj-58h%Rv(>a@vF;VY)G zf6U4sfr%%VL6j^cZfbA4yDPIO8PA<69LRzxXo%QlP<5oJ(J-&Gh#^eFptyTUZysO~ zJ$g#JOfgb6I{)t1kZiy-(c9@blDRsa>%fuKm%JS;4t7Kxr!Oya=mZi76I6RS+4mY$ zRGI}SO1}}}g6S~KigM2Eg7qoxs&KMMk><>e5U|K2t6r0DfOvM#ovC|!4%evz?vrTY zpiy0oi>>6ZQ=Grh66>)v{R?KQ;~)(d|ZBQWdh|cpGUcozyE)Y3_rJ>xTZN3L zOZ&RItfxst8(?AIIE|@##1ewD3}PM!58#d5Ic&$zlsY_riHY7wV?B*y-0njdLLy}b z%aLYdD#u!Le`pC=NW6+Il(dnqnwCn7!zLQ#l_?vX!>P>fV5NUzMHKd8;-+U%NWv!K zii?(d*Q;;in4ehAD;+qRnLQ}$+8bJpCRe;(HOC%fJPqRig5$f?NZT;%aGL^7T|AT& z-Tw1<7F>a}uX#^EoC}f5#Gvz}cQfkPZ1`857Wv^H99iQd2ZP+=K!Yp0j*j;v4nDV& z5CVUls^$nv3tLnUnX=aH8D)MzWjVW`dU{#DQU@UHm{b6gT8Cd zz2f2=w2|vHpDt{$$6O^?q{w2xDRzqxD1++3$)8uc^5uK@VUftnEnONOJUlH5((CWi zEfKH$8Di?hK8ll0jJGAKQg)40=A@-$>=vIy8J-e&sZVh1>Kyr+L!UUM5$YZP#JU+?&m2BN%R!FTPgPbOjM%n0> zS*nq;<+V=LvX)48-g z;v>oj@0VVnitcfL%5buMqxiPm87=HqT6J(#^dP@}cFQAq*xGZHPu`N%y&nn?%sSs_ zu&)s#1t`wH69G8Z)uFqTx{zChP+dq!md#IFRIAz$bO`%V3T0-y|2Wll*LmxixaX+Z zv6%t`qB~7{oGtG5#d}4(az86Z9RN$<;PB)z6pKmE7Ps!`Bznp~z?Cdey{Zs=9``ea5g^5fE5{(T*ZxY z{qG!eHyRm&VU+j<;>H#_uG8s9HF5;gl6NA6H>Jy75r?FNOS4!rf@E-e0|Q5znzSg) z7!q2S7+Ol!6q4>Mr$skl$#!vgEW>H9xhd|Q-b2uK+DQ^Aa+9R=^6g`Hv37~A$h2C2 z|8h#TKhPDm<-_j@iO7LNzwF3d&qiBrN%{HMC3l2)D?KCoXwPqssum(X$D7Wy>N6PW zyBa#UvUB}fhM{i{Vx2chZho{liF#;Tm~{T87L8mefyx$v6QWX5Vk>)Et>ld~`=dn5 zh*@hx>qM;n?6ySHU`ro5Q6}396IMaKG=;5^VW8@)3d{HE+j^T?z(M4=frC3`nwiBw z`9formTd+jjV6TBT|&%K>n~CRg&U!Ha}MwI_!wtb8VtYY7OJOsC6mIkkc!o6cB^X| zDh_thPdB$tdYt|J9X}a|%F(n{t9TfNKcEmVvNpd$(H4a&xho{Xi+U0+sEFsvvqo){A^^K8N(COD5slS zg$L5niwK{MF8HF#7lT_$mzW-(8j>h$2fNscHw6RQq`#zDpR_B1MG85$65RuVI`{Dj{0uMKq%fKvFrrtIqu$lAnOU1>RkNmDIB&eZO>V_4s2Zx z^;8;`R$8`)d9vyTCQrUh2g>OCl>O$Dwr~N=^i?6%leyjLXep2D@oQ06)G<|E z>z31m zfkhAIH$g4Y>9xTkp2oVRGf(q#Rh4WpONR4`DWhYc@beorwVV_Fw3&Q`f~!Z?-5X{e z{js3rZMxW*29T_W7$_v?l>?(cu?gVA3QKAT@_{nI%_(%)%XN47+AootEw8)llh?MQ zZ?mdO=ywgXu83bRD&!hnm5^{MrfS(}2&Ahl{RuGnha_EvwQB_Ek40`rb<9frW&^Nu ziRqO;c{Rl6K#}HBmh#@a{@lzTS{4}Iw^9Q8(~wur zfKNE4^MSG$-e{N;8$UOOFU^w+*E`QNx@>C_kwXhn!)rx5W9TJ+A-azwQm;JP%|;{9 z?&nQ1H$VnU4+b_Sn2{> zzKSY$Vj8y59^!9IaBP=pi9FWMJ&w?2?wSXez}et-Ec4l6{Tcd!f^V*=cEJ$7y!@w# zCdIY}cu>@am;_3hK2V*@_SY>_l(|D4-dpg4gn@)6&5ZFpp@}H$j7VSPbPKZ3)zhjbU9Hg+3=UB{%W}Fa#xs%@?&5}@B zg=f$?Ac#0W#$XG+mQz!yCO$-LP%)wbXv9jzm!N=eRs#daiw#YU)!|N39k?sRVx|n` zoHPBFDK)A_O!P{=<(6+KXF`Uu$an#Pr675lTsC$q@fy=EcY@{sP1oVt936e$H}@S& zf%&mST7(~4bB$+eN8`QCNI539-5QfN6>0`B---p&#lniOR*IBqpkyi^ECp*SGN@`G!cI!k`p9S zDUM%Db%YQ014l=gsZpcAy-F%(Y563MfuD&tV{IXWAxHqIbl*@B*jPZMs-dE|C5w~2 z8$uy}VM7IRM)p{;vPdoXc|mCzGjkLy>*mlw1)Ol6XQ@Elp*3vBQi})A64r@x9EXqa zcqQ9uyU|;k@0el+k8nM%*R#&m=;}<2>_O%8#Hgeje8-4FC1x4#cJoBRP4_O++DQte zy$%DEa<8%DQ2;GG-a*%gL`wuoawoZ7^~GmaCfT1y7nnG+N?ejV*Csb8X)Er*Dfr?a z(TR!BOBJy3ObEFffoGjd!Oh$lWBs8bmwAud<%Sx;On(7`7sT26pUSJMSrl-02BwbF zMWSgex7E)k!N|$xMtVmf0$<`)qtA3NvO3k=YK zy+6v*U)M5*)0GBuMK^Iurf-Zgl=kUiFQz%^!(I%<+u5pj18WqZTdDi?Ym#$qs|q9BE5>$SbGyO0!$J*MU`8fAa`cGR{z|b=9B4){ zGe2N>J^ii8*itf!N>lhr4DAlGT;4k=A9hKRMEtPN_ z=NLE}2dDpbPH!N}{mJX1YkCYwoL1ADl+E$_w7VpsYU9Y3X`^mI$H)XOCO`(9LMogs z0NlVn(}zY8cvyOY61u!D@O?A{;J8|0zaKXed@BQP4v6q1u%DtSAe6b6eYn=!tJ{4O zYi*m`FCD9EZuRuz3i`qJ#LSDO?9U@Hu9GpcPRoqaGa2@t*2;p%Y1ra5>eCVTVL9|~ z>5M|q>43%?I4amx0)Uo|=UarHf0|=JYmQi%Q0~4b!y17OnR;SV>2Hxl$ix&{wPa6o zGb0*8&+B4eAEC6F(Xcw~cllZ-1UGg>%Zyc?#w$5i-o&xuo4b!&TK^=Qxx4{~9kIBZ zPa+{+aXJU^ah63R;UV2DwOQ`Rb&GECq|Y+Fjbx!VK0=@#C^2cltC$bcxXhCcF3=IS zW0a!P77|#*TZ2Gl!})~pzWd@_9c)xbt}maiIb|$-=Ki*mC*aMeMyHF;72rxq#}2C( zTKM*nr0&|Rgo){Ai1fDC$0~s)wKhz*pUwn2PCFj*FHU9j5j{M>HRG}7dhwNAx(q-v zk;%=jlTvi?<`x+c3#`vD$s*i%YtuY8ack3*^PFee zYiqtSBzY>C`_>*D9!VF;CnD3zt+X&(yr0kL6x%E{(YCJ+;Se&3UANeY)mu>4S?<8r zyik{U7n-hHVu%9KRatQ4Evemtt!i7iS4~fb*-EAB5(hQMc$`OYZB4kO>-n^ORNpo6Tc0aOuNrX~0Hlcc85xU)v&*n#ryv}pS{dr^A9ufG9?eB6QN?Ge0k^zgzamIi8kiv;O2 z)!w0({(p-{e6Se)Z#?3$K%Y|@Udv)BKS=!MkJNoYCPCNhhbbMJB^*qL+Ii(>()wN( z^(-}I_PwN6%s>HUrDbMw_KD!*!&)<%t7~0p9dj|2 zdN~cHxP%x|Rvd)-Bz!kb_Wn@b1jvx&kfQT*fT&t>N=&q8jU*`$!@F7TOEOG(#PB;6 z%-N)$RWaAGPf?3p8d$p87;+R;=uXt~`J{g~DRLt+K5jtHDuP?vW~(I(ZE%b(*WX%7 zDwf8mSFs}|^fo5K>nx@Db<=v}7zSl)309rLrwk9W$VS|5?gd4AY}Mm*RTCk+^!iup7UrO9O0NtI|?3Ah)@eTtF6t%upN(qZMrTFs0?_ZA`&RjgsQ@DGDe+ zbU#muF~)pZ;rt=4{K9zxRan89il0X9fMsC9WB0D@AcbWjMtB{~I8nuj%Cng})MXfy zhj38~M?Y;)7f9n1acm+bpPCh_2brYeEd0+TgLaKoszbu!I*}xQT#_k_IQOy`(>lOJ zs6JT;Csc4tNWZXW~jdFsB~rUosxJ8g}}x^@9vZs{{hzod^GQXWvs%-QYzzIbQ< z#zSYUHYt+Rn=*dJOqm^LPA}I+j?S3-*HOmyi+}EyKmX18oK0Iqf&AP$51gf~GpwqG z{LmUtzkGn+MO@2jJ$`LVsyOPs(z^%+=zcsskKVM^yh&ev>;>&&a~D_|%F$Zw9REUu z9k6ep0LNJLks4&EuCA?(4e9iqQG`gf9aw2g^Q z@*3!e==XW6Q{Guk#BH(Yd!I;R8);*1jR&h=EQARJAeff9dvAQbRj@rdWBGIUhLI<7%Jmss!3+pZ2Pr6 zE+p)Ux8lvq)U29*nuU&;M?q5-FKDs9KYO5p3mk>ov6h?L_x8V23h(P(=&!7Ih=BJ= z=4#i(ZE&*%GAF|`{m^$G;$*_6KBFQ(-I(pj=eJauo=|ojM;4qNvJz&gTxFLsX<#EvsFkJsIxPlq*7@+h%yKt zt`g?Ezhx}ww|a*IMfx>AxS>m#QXUh(mfe! ztM^hk&iAZ`ZBQ=WzDx&*?%hJ^8s(cKy~pDd`_rzUD;+qd93?%VYf)3YlMs*ohjLFr z$7f#Sv*bbATpngCA%mIYK<z{<9Xx`Ov{(!@QK}Wi(SL zLYr=5u(5iGb*cN45$LQnCV&`T$F?@{2Js*LIv?8qLQHykUwHiMDxlQ}@pg%L?71y z&1)6-yxHgzp;!J1iCoxrgit)vRl~hJg1BP#v$H&^pL!9cQ*C`|M*$^;q&MLl{+Fy0euM%ywo*bSH>r~MslH8oNe#@jk z9$GOvdrHD2$zN!zx0F|v9iCs6-;Ak?>~;|tcLl!)4087Gs$Zho7?U)}JRw>#WT;pl=EOnIp-RI1A$Qbt84Fhjhw zg#wnSX3xbJhvlhZjORz`lup-KcTBky?Y5l_`q2iy-l*(Ya>?~7M&Wp>$*15}Bc= zE6ty|deF|E!bqSY2!$)wAFh?V-T$KP96`j>g>e}&O@lv}2ebbg<>6NOU#JT{MEV-s z_uNcLXa@3hVly0_<*G_sV{m?@dmVr=L9Z23my3%T)bMBGW=eyXgQS4aMX)v@%UY6} zQFACn^OymqQ>Bj-eY_m&RYP}~Ye`#XO)26{dA)h;Ctl!9W8Sc}gwO0>Ya*iqE>4Je zciyscbNJZMu?{>Si=EI~T$XmBo~>{w_74yJR=cqwKv-OLjk;XBVi=1k6u<1 zo_{;z#oNTYIT{pTB>5Y8V?BDa&o9L|RaIIhRsM+UVPfc*sJbS1OF3=qn>_1^ySBde`{#?j)7Hqwi1U-9W_^)+wJ+o+^I8P12LRL#pKv0 z^i6zT|EEI?Jl^EPo5SOm;??wy39{La_h*4&OTQ;{TD@?)nAa&h%poiUViQe!=v7PlWQO`@EXiDJup~}ziwSn{B z^M_whgYdpy|7Z4sAoMisF49-GOszoK$;nA5GwR>3zu=1v)M+m*DA-E|yMjZe;cdJf z-mE51j@=YAwRd&pG&JD<=QnUML2Y`{wzjq&nUqj}u^WuEpdkOEMD-uC0zMeree~D8 zLG$m}d>e52q0ide{|?ZjAN(3_@A)sAA13_npKpGo`rAln6>&Tc{~Fe~VI;Un z4cFP$)maR%s0KjNLF%47<^@2@sGNC7a~fG`*FwOAJFhr){T}#*L+YRLtEq3*K!!7U z`&5BEuj;`R6iO#at6kovBAzzGlye>J#e}zIh>q+{!emn_=FZuD^7QpH=bfY3DaMnH zgo0|Zqcl1A6*S^ijGS0>c|Kc~S-6d7L8s?tILS@dR=f;Nvl8?~6bh+AiQJW_B)iba zT#@5G;7Z>|0a46)HHUc}48gjbk&Q%uL*@}qT4r1DgfY+h zO+(*=lo>o?g*q)QSPLof2iqGfqOyDTrXOi^t2t6_I-?0< z9if|oJS5@;QoU&aO}(K}lbTI`?wz8Epk!Fq+@CwU{Dx&>AKl@L_hX&Rio+cl>Ny z;xOx(mNh@0rH$;kW%2{F0jT4%eb~tdh5pLH<*JPU8YgSARCr>NCLC5> z&&k>K(S2zKt`!{tV>UCA{#HZR)=I=kte3@$ifSASn4{oLBE+u>mB#TwN#o8yiB3tI zO;T>)a@nCmY}?;8DO4R2$g)(?ivARvB$q%zlC(9hSPk%P#LWVSzAHTXWd3mc;MQ@# zBM=^Pnn?AKOMX7J(TuQMTEbn$yTzzxYCK#TMTDbV<4vXC z_kjv-U_y$`dfkhpYm`xhSYKQibGT9R75GCT-Lu6( z;U>?>mZh_eeHArMGQxE)bq{UQ8Sf*i?93z$n?Y`*XrxRMAD+ko{Qq1%`}2>f0lBlM zJJ_9@vkX#n5ZOpZo+r24zT|uy8fyGSObIx%j+I> zc}ko$E~uL@#Q5ZYt}vDcSLR-@O<*lwrL?JU67Aw7#Mr3_BQRk7motCw!s((S(YMDV zOoL;tPbcEr#KSX~Z`AaV*bA9KN%GSN(MDmMZNnXYWGlbn9M)!_GBi!3ti5ZpMY3qR zWvhm169&_r47seYgWQ!S5mr0h@1@QD{$10%pI^Ap%3x+E1fAcagNUUmj4lnq{NKFe zac6Yaops_y0lGonQ5l1_H4!`8OF;6#VLSl^#Yw$#W^R!Vudy+< z&XG_?JNtkP-MB+xkc&r419%6UQ~vD8dss;Ljh?$oitgYgvM&BtlImj{gsHv}wJJzS z2-+2l(6onShxj9Y3*&LP@dnRE3_X=Rz4M73d}lS%f3i^cINr|!L*dSBq{>!)mt7J4 zsqW%3`LwbL44qE-WIbaYi&oLVB*^|k*>k+wk{EHJmhxGf*T-&zj}hwA2J#M~fz=mp zRaD|Lmex0^k3R+e6|XFigS4wozV7eIVp^+8ZT>+jxhe)DBKM>=c~yg+6X|-GlX!Bq zA?Fc&QixZ3QoT+(m`BnqijmOC#`9v}f+d)vIQG4J+uemu%Ol}jWIkhRBN=1e&#iSz zj=WZLsKnwYE&9c%a&m85k#f6N8l8A zqX5T`=s8H3;34q(Rz`|crhkT83b+w1wV^P73TaekmaLK(2&Ys`>{Cn==VGqQ$o7UO z$WHg8v54x!+Q;ZZ1QR$5( z|B$dqQ`t^2b!&RAy?k^2b-#^l5yxC|As^jBc&s*#RdeOkuotG-i>VmE%_6f+IN3K2 zGh#BePV(lJ=)w-6gf+&g*);O-#hZZD{Dl0LRDHY&U(soea z>ihbV!M(SBm=jPoPsPgOrPpeXXoxc$*ty12XWbKr+#*Gg4r`(cHJ%=#%DQioBwx!c z#>_1p3}*tkChW#RhP*;TgaiW2TBHD$HydpB=E2a#xrq><`t}EeSWA7ePts7W{B4~~ zHcq+~B2m0$P9y6OW#(@Kzug6)Zw~yL?hDMFKE=zCucYp_{dkL02#f6BegES_B^ciL zE1@K|{32`?rt~JKwz|3Ee<$CG8^31E!vkUd?IUn=2;PO}nr=bXjg`_KJzTdmOiyr$ zjTd-Nm3LSb*Mi-Y_t{uh${D-bZ){pVuI9~YQyYc@;xW$o=|(#cS?Pw+pp@0a{3)VTE3 z6W8^slQf@J&fa-C27awe$Tuxj!KvWFLUnyg#2=%Z@$6XRaKV$E4%k2Z_0I3+wA7{b zX0Ijs5jzthxV9z}lZ-c3&9HBLlIBNdQaV+bAv^|CRk!p2CvbFn%b4b-Rr(dBP-~4t zyFF;_DALh?iwlHb1Md7X!b8rPfrB$^$E|Apn;iLe3xrb3Y~8{!n%Fbg?JoG)3730{ zR;Q{mpj^h)11H23x?&F_3py#-TXb>(RmDA6}$>zIFn8oqzTW%j6c__V8NuC!+ms3?UA}qtYb8Gl9%Mhc{ zp=o|+JVb=Wq=PF)F~~Wv_zCtC^xIb5;7~09Xy`HD^WYSUBA;IBt&1ocNpb$SzGEt< zc0=P;%HsqbK83SNYw0OQ-D<4oX&L@n65w#M1kg4Z*W%%mF$dLLB~hVA-Ij(>JY0|bJM5GdI_Bqgxpe%v5w6J=V5SfjlDgy zzy$tBW0o7$=7`%HoSIJw@xNAX{enpy(a~vueb;Ef;d)h$hltL~S#4xUVWy-pK)3Bd zMtyyuwU_c`>x75)QddOhZ>=cR=yZE!8boB=Dvj=?)cEnqa-ykpj1%iqT#GI4g&606 zBlJUL5J8rlvz6WVn}h_N1tGPk%z#;$)Pp^P7;&}4^ulGDftfesEkXglYekj9*G7G* z56$-sKJ89PsZrm_2cjXSN9qK^uo-v*8YF36rbC?O5U#s=DHf<(ss@=X7hWWP7;`eva2K_;2$7Xc z-(HfDIl{eZoSWpR%CDNPT4yU(Pd*?7cd`re) zzCS!_w^vb|3to|+;NQ3m-555SaeIr_ytKDGVwkT5(FM14y2B!lQDyS36$P}XT{x-~ z(08qWX)lB%audn{b+a&=Rtl2s{9mq(yuYkg)UOWxLXQjt3r34dgD3zshS7Ji7`~~Yx-wFs$u^SJlo@5nBd~?&&6yv& zvEZQArXMQ3cIT%WpD-&OV<@lO>>n40OZtOa^Q!DGkmo*DOx`kgA&CF)iFGUWwl!1n zcxi3Q_f;^wz~I{?L?y`V^`f|1syFS91s$nCI-f_kE=%d&g9`G9hLQ`=epEpN4_nXD z>T$~z%Yj!dQqtM8aaAGc3$J%(b8W>HE<6?mYSUpv%~RT$^>XBQi^2}!$7hV+9 zD2?#4M5B3G$Dv8SxET8YsNDT7A-#Iprt=w1+A3}U3vX( z=Fgmxl?!5`M8eQ@2x|C}b57Spq8qptF(fn+_d5M^#^lmdi18M^N%~Mz@i!dH!$(mV zgo7e4=fU2R8>0mDJ+|ki16z`? zm`(XemP+rd&Jucuw+gQ2+O~3@qId627buz)LLjEglbhS2Eq8%U%UH`+Ro3!cu<(91 zQSqUhih48fQ*~Q1mNg_bF&t}Ac>5U@@~zS_FNZY_!q+k-5Y)?QTs1hPuKdt)@!6`? z&xcZ_&<*Z7t;DL(Fq(r<8WcVukg!2(DmP+7&T)ZzE$K2dupK^bl#<4V1EGl}%;18k z0h5bl9@kL01=p|O80eqsl`ik+c&|`7ra72uN;BJDe9!g=wX%m(Sj0B<#izv+eFe4J z(J6P}6{Ape>s8AT!bqRz%IZpbCt8sV{QiPJfU5`f^GfOa7>pZ-l8o%`@1-KcpCv+5 znZ-QycOWIn5NWIl`Lx-`TCE|x)LP<_iu7X>x0c`jPg5$MHNOMRhl=U*Gute`0L;pN zq;}ChlATo@*kC;0+#SyFE??%~iVvE;wNQN4F;E}m9zIZ3)uV3PQ%)gFb~&yH>md45 zp0WzHEo%NY2b!+cO0m3kwMVr*M|t*XNQZ^ZUkGULvMVQ;vs*`uxS;txcPvs~=&pwE zrd|PLr#`Ht*>2an-QSOR_K(%WJeC6*`In?VG2kRv&_f21)Ni0+{ms*r9R~a8)-^kA z_nGsvV-BUy+O}%x`$D?SgRS+tAp1CE+g_Npm3&}M_CKw5XYE6yA#?9FYQOOo^8 zsl*2qRy4zdG>UVLjY*0aX)hhV+n2mu#1(ZloH3MJ$T6$0W9XGhA63pP9(Od#w=O;& z&gqpCqN}Z~5SqjPGDgQRgW%oedrs+SCw*_VNYmRM8jZH11pVe(6BW3}T#yK9w7E7nYTNnts2B^8q5~{Qfl; zl*K%-+Tjz+)Yf8{X01AzQS!WtCNs`?X*`1FJ~qIA#j=Z2VUyw(fohqUTDrI4J&yT! zJjnu1LtVM$Y`vIWgN7w^Bc^dME@yT^2j3!fz|xT(nOJ&;G0TE$Mv#SsXTGs{g1d6~ z0d5wO4)&YvPNQ+eK5HT<7jtcpvxJ_ExvJ*HZDo{|$RO%je>8bo+fjiEr~b_A+0>?i z%N{ZvmU%)#ES!`n2I4Y5x!iwo$MdZ%%(p}-fIN7xXWB4Z`pzb3Fcj^2sOA@4Kpln7 zzLialnvNl=VYF3z(J4%=1SB z>$C_eCp(A7$6amu=J7P}SdcY~^LSb5LQ4ySVRr#VX?TflQRCz900nukJY_gP@QMkC zYf96@7w!b-3Gdi6yDuGnN_r``o&z~6%?&oiL>J=XQ3FxlSaHliy+Vo_N^2`CW>PTP zb{8Dm&<&Add3rYS%LXsX4QkodruJR1sOGfn=CpkujnwEA)if4>8DVmsM{Y&I6Gq|$ z#HrT$J1qSPb26T#6Uu5F5g#{reCG$Nk~jCbjrq#dIODZa<}HVMIAXP}0JD?CrLkbH z6e(J{IY_aM*Rn;&8?AI^FgW|I-wQsioAu;%+`Z!qD}fc=jaqd=4)cNpPK*3mC0KOl zoWG!Ein3-WlR8*z46fHjaHse<9bK)1$-d(5S>Ck&-NG$7kdMDGB_^yIxTo?;z!qa> zp8M->|*$z5AXD*YIozL)8$yT9b!CcXbk1DE9{EB>4D=!bJ4GO`?&-XW{-g-Sr zx3H{5Rt&_-paR&M#bhkk0i-w94{S!r=q>eo_p<`8I9bQH?iRp@jy2p1&Pw+){ShaU z@m0VUYl*qwsL^X4Jm5Dvcz^}HCF``|k)Ak+L0YD$@3wMdB{z-|tE9`D|HtZR(B*?2_kC?(@t}r2o^^T*6WZbV>OU<+fdsEwDpq6ZfDItetikx}z zm4sa|$UkXhAKkKox>!mc$v7Bl49%xz=#YnvO{m1IwkUcB%YUy(|BXLgMw^_mbR^{E z4IN$~<~BT}?`x1^-|5Ed&5ulA%Ljxon3cTdN0JJ@(4>x_JgAxBGvG(n zOt{U;$XE#_j^#`1jY>#K2@L%CLDzH7@0f*a%(tbN+3N5XL%XS8E`9}DFTeI2+tIpZ z3Nnqw5xIolV(>{xPj}4hvhKY@7tq+fNOr1lYWap?Lo-tNOr=pPaIA^1`H#uaZE zoL^a4QB$#Yaf@q}1&`h{j}PcY!*izI%%8V$l5Kbl6`O!O-*yyq;x!6zn%hiWOj>u% zLhG~J$!AraFTdAl4K2O3u(p{fDl;N!7zan_%WVB$w7q3O9NoID8zaHp-Ccsay9ak` z+`VxK1b2eFySux)ySuvwNKTV{Ypw6>yY|_8-*fN$15Gv6P&K<|^?1j4-r2c3D20jG zv4n1VT>6Ou-mm!ye%A~^_)kUg=`_{*ff7Gsz&c?oy&$z;$Xq4Loe&ANw)N#zgc;gH z6H#@OFY_-pP8`pzvB`OlXi~LB89FNlz8UO(6rb74K}xfgbaPlQmW*(|hI>ra=lWFv zxWohB-VICl+@r%6?5j8s+ILVQWuZOmq|fX`JZkKK4GbjZ1om31-)DxidIlQ^j$n2# zuzD}dhu!jDSu`?H7-pvzW3`j$u#e4F#N{Rqv&pB9!`hrC7|DDVgFTysKv?nR*6R$I zm1^tZ#3!&rReC?vj224)3msM@y@uL&ChPmlZbOrIIr~K)OmjXK#6-7{pE{{g&TCB7 zndmz}x%sLSckDyMA3SO+mnhUh7Pb|nt5FglJ{Y+l zZANb3m~|zyS!&xA5R^I{7$@KL=aW92n~?stW@MvH&JWnH_8DArFC%8jV+Q4Za~9Mz z`OKZBj*N}O4?KZWtITflv&uSV^`ph=H;4i))s)!#Fi}*)tfw#17urn(!Y$Q?b(?M5 z6T5PKxg}arMU1tHNDa2b0!KP64TOg?-H_% zxNEv;Uzu_I5z%TSaipm6trnG-gO^G3hRqO`ryf>)!kHv*mAMk3BVOWbUiCw3{Dx%2 zs`8Dj!1nLFYZvM3A|BCgubAMs(vCGs13P!mI^MsVVXo#3rQJX zSJfeFKMrHCSujDT1Zq4b%HTmv!-f2r^;bpsvb5|M;{_@gtp)ao9j}(b5%6`z3jDtF zr=AhCZ9vMHuvMuVmfp)^-uVlVnELdfFu$~%`r)VMUM5|*vU+=B3R||rwDnItglbMJ ze-aG4nV=A%to<~%Gb_$IrF}y!=QaH~rX#rfrl#~U52rBJ+36yN^LO3)V@%h5&k8PP zPZ*4(4$#0^MbBi%pL09xbc>bE?}1HCK8)*y{o_|afVsqYYBM0ATjpiD5j*!3+S+rr zF~uAeg#2BxJ z7#vJ7xr=8&Z_aD0wiw51ADdR85ZH$1bHlwDS0ad2{<@ef4sT!OevO41)hFuR&fA6o=b z?mk0%Io|fB$bH}RoKE?C)o(;FsgdYZGLShD>~>^L&GAGKmn^Tt^lAZNo=#JKjnJQO z796RJev-+YgR|pcself{Lcfn&v{D4!J}iB{c-B(uy`>|FF54E}y_!`Y_IXcjQTi_B z@`_l-+|uzFyl(Ki-2{`V-t}ynX!P2GNm(=Q(njYlX$fWvpv|8vLgrVZ-pBY7V?Ldg9 z5jytU!t#~iBId)%|4s#FeAD|sr2_Y(H|eZR!uia3M9P_}#%5I&WcaHp@N<*3qtQ^d zKN##g#hR5iUG2;{9@iOZ&rdO87!#9$bocX;Qm(|5hes#>Tyj^>mkM+ZX`9L^t#-TY zS@?3y&N|HD$K1MxhN8w&X(f+Cf!riZ#yLG-0zG!7RAEDh9bmEXZZjx(&&o5u2lbNh_{doprir5&)J zK!?bhqo+TcE)7B`_nhjg0bVaBAS39aUz(Zj>*aH+ zZ|v!b_CHXcklJEaVR3Om+pjOuEIhRRm`+7_i#Kt+N}r0_g167=U(qK-+;3Y)YVG<` zjk?Dcfg!2Sf>|Z6lE#^oS?y+dNE}|4iO-lFQ>}aGAgMfFJ}B5-m&oMea0S1KS@rHZ<|lvk{5#8eCSg;iZctTBuXd`ME2=Z@X5BXHCzBs!uAF3Ya$kIuAmt zE5eOFO0MHRWyS`7=jJs_3D{RszxKtVuQSeW%%i})+HK;N2^t$}%qQ=FadB~!u}42{j}MGLU6f27 zIw-cZm6l55!~Y>^fNVOm70KP1_wj_aV&A+%910? zkG};~v0leT31)bR%$M^ceds?yQSg8rh0fc~yH0^L8xH_*1vq4@vt!G(oF ze9tE^8lEqiB(i~TL8!uoHrfd<>-Fjh5JT5&Gr6)C^UteY?ELQU`sx`%Bff%#95y{_ zRMLp6TyUy1S1h3oEo0M@1mQo>M@yk(zkcHldH@ z;s;zxnXrx4E-Gr0YLR&_wAtB| zg+SJP`KJ*$wOAX0IbAUo;J|vagyYltsd9c4j-(n2x|n4mCNfs~^eplx_Q*OBOe|D} z#Gy`B6Wf(UP#B*nrb>{&+uOksgc{i43o81Bd-VOr*XeM1F22dq$>l(8LS=5yaQ>W7Ij*bR4UCO?7px+kkKd{T;pm4YQ+Xv zv9;24GHYSrlanD!IU!3x*dpuZGZ?%|-3b$-;gR0i&<;UI58Q5jH>NN1e*7P@@QuoMvDd3jhqDy>vja7nukxOh|p! zT*{X2J4?I0<5&JhH)6sQz{pnPFW=7_P+NnOHVNp($(?GeZBz&iPXiFPsh^mDXDAlh z9p6Y;T~q#JVtk8}w`2%4i;>Cz>{@)(ndX&^sreWvz)*4n!yC7g6MGsVCADIKo6glN znmj*e*h6A94Mv<}<)Fth2umso!heuX)|Y~EPnLFt#;VUU5Y1dvhW0~xZUJBLprqHr zOQYC*3O*ctNM>-#={c{nUp(LzqmfJeVyw<@c$Mf&z?*=L8c!}241!b>3;O?WCLr)m z)?FOBDGs*E;BljQu{gE$$BY@Ue+$nrdY19(&Yt<32`HYxrQ!AJ!Ug}kcU;wH3(b^< zc>8NBCwzGogPj=&oQHbB_eEPsQF=J5foqz{F@jDWMeP4Qazlo$iTDxUNNSxJg-}aY|LEaQc1Ct6ZVwsh`tTE`?Q3kc>3CWSt*g;N?Mv#8? zUlBAWDvwv41)Va_2r6$97BiG6FeIO_&FevJuBey0up3MWJQ%P0`z3^;;pFW`Zi7_-1AkxQ$6?CW9tCFfrDEfSxLdTbd%!e>6|Ua;U+hpYwyLK}rmpnU zbk2rvJSLi&aTJMobw-owC^=@9qnkvwSKbq4-}knHz>&uH8h?XgT`(B6N=bNXPK#CgBLXX&B*Q`=Pp&{}dN}lf%8( z>hxvsPM8#J@sqG|uE>W28LNCBN1V-|v{}Q+nA8^LI@JmuQ_-K^aPt}}J^i_BdMnu6 zR`ryur9gE7Gc%bX%%>{uC{q$RZr9tu3au6r0F=mim{g`Jpqy$j25T#US$NS98ZGD` z(}^h?GzA$e^^FfA4R=ofWl=hoM;JYNYK<=Hrd7Ep4ll*WS2>QFqLtjyCbO8OGEunq z%A%p1Am)S~G~KeH+(8`57!JvN-3)~~x&Ral#tz@DN^xu+p=|NkSJd^%*m8vdf9e!& zbm_*HAj4zglM}Ilx^zN(kU1RGldtj;sTyU9up3@0OjA9J!Rf9BfK)4>Ec`&s8;X0~ z>}>W0psv;*rc61XSUGlnb&gKieEFr{gUN=b@OVdw!_9X7c6T8VCove%OJuqU64KNf z3!N8{jd^vnUFH^>!}yKnDwm+YYt#<=1fTQ)pG#%7bWuq1UzMLD7Q zB6f`;JMs<>&WG8`${_=vh#>*;y|n73c-nT+!DCkd4$@>DQ!#k5^^zmn=S9stnc1xK zTBLp#j|a`~cVkd%A;LfPDr?W=9K@2Aq_Zt2D~Kf#0bOg?yMs<%*ub3e@1%~2oOgpb zaV6;EzS=j)aHrdUs-6m*3sP?U$;=!SO(rcm)6-%&= zYh*qFa~*5zSty5e>wBmPdpt(HP3j)|8#)5Q{nHwcLF$0(Q5@;UZl<7YyxhNC}_hG{^i3c6dkle+E0? zJ{<^HO3N6G=#^S8pbhtS#bwRJ%#0oGqk7y-XN`Hdw~)||6hv+}?p_P0UavDF=aLdz z7CXuYCL4|u%4&ZQEfx!t9Q&M_9D}%FsvhrQBkL|ze(Jia`MEvv%q1)N-LN>T0P)26s#qHvv6a&06MDS4%+CIH{_D{A`$;5NSEUSOp;-A0eGffcsq%cTus@a{l@nUpB6r-#bS*H_e?2 z0jEdBM(UuXa~W2+^RER-&%L5{yJoDiurAK3d0ez8cDc>~*J1337FOT5J>8ZA<)&9RFf1X zIJfO=NF-kofhB$r9}ex?u%5~6sMcxN*(XsckT2_UNnLHv5Xd)D^hSm94Vfxx4TEe_ zirh+zR9D_{e~mpWWr>Bg#10H5L%1l)6L7FmnZ;c`)8x>8rA*ybX2kethsNP#+2-59 zK@z=Twg1)Ng!Lo@>GGOHbUbP6)WY-TQ7qot+T^o=_P6Hs)%YOY|1(4Y9n=ix;sYp6 z^tWt1cYK$kR_T{l)apI3(rB7dDwcV@|DYx*o zlE{{adxo@bb@~svG^p+ox)~w0lKXCISXu_PfM~Z1Zmv~r?-gO*vgQ3Fx!&CeO0Lf^ zZ%xwEIf|P}Nu=o?#6y@{IkjM(@WpKlX@#&)h{}WR$P-r;mbjTL+|b^(I*1t8D@Z>+ znoV)%YKf|et;5^*_tMv92IogQmCo|XPKiFCTC~MRx0+U;nA!ImDe2dOfKQM3wFac{ z%M8PYD5>L+j*i-iGUT{NwU|GsIW{S`SW$B&9TnmNUWg96>7al8y!`1y(Uiqxx|)$# zAUTEjy>8ewRNEM$hxT1uncA(C@XYJmXV4oYPk_j{bZHb;QD;2kch{%PRw2E5(Q#%j z+5RTURT0=@q|j4SLZ31dK!Rts$xOk_x7IWk!?QKI>c3Y#)y~;7{}pSV><(_X@#O)4 zQWfDThty}_KpUa7ZHGnC90?8aUl*T3#1&y2hdz#efmSqFmRxCwXWWX2C!fV!ynIQl zeJ{;tbcVXoH6pVdt*x0~LLnhJ7?~LSUUTHYwmeVzYAZa~)Ly(q^`X61PIzS}i95RsF2M65A)8!ioJhhNq`VhHPaND)wNo`l?M449^TXtVEyYi&kV z_^V2&p}saj%-c$)J#?W#jEae==RTEr^3k;rhIctH^gX-(ZV+=-N%kU*{{rjZs-`|> zgW^wB(!Il)BZ0MU8NR9Y$yS@eRg9P7jq34g-{!yn&obbqkGftN8{iL3S(fy8);}dE z%O?xWD685fR#TLR?BJJqN8dVt?vF?mW<7`md;z&sT4oWo z?F^11`ceT@)G474?Xq8n=drdQQvOBcn-J{Yl1d%Ixjz7+^1LrGj4HmLLy8V+>xA$g zlO60)g_)|@h=^bTx>q~howWKcywEdywmKb*Rd8R5Tg#T2k%D?LwOJE?YUF)ZFberb zSXV=~K7TIE2#yzWBBfZORJVmqO^CG-rdyNPXb2s}w51X4b2&!}`cjd)8 zT;IXISWN$Xm@)W;Guksmp{vD&^L7P=A-B1tl!C!Xe>L1xst}s5Whg_*c8MkR7@KxiD&EF6Ib?Vc zKIdIP$%5P}0Iq+|E8=FsX7mAsGtI2Fig4#5>(~aJy(g~*iN|6yB4Q5sVvQ9m0X7v`yCVWlHq@V|;L`slHFH#Gp<0e;3Hif&-Sy!ay+%7h z;m#+YzlS-&f45lpz2!~!f9nCAX9uVY^&c(ZKm1DIE4El~10=G7j!l{wDC`_jZtGdG!4uBct~dWzApGu|L==ELt`c)atB$ z9)}ESi%0y9rMdN0cco;yZRtLm7MDC#`$jy=vb&3HOR`3rvi3)P{gAK>9an}{OQ`R3 z1VSBC(SQPvF6D4q)gw{T{=rSeEH|mEN~!Dg(vP&XR>MB?ADWU@38Fx{YqQ)A8S09{ z<7Q^Y@3>}Xx&p7dk+es#f*2z}A>2sE>a}P*JP+b~Zu9yKXDb;Hll9}#mCn&yh90Plnq{_Bk3JX*6Hi!Cn{d3(NK_B$v`{ z+y2UNLMD;b;YWOx2b$P-ZJrb<1FW`@(Bmq)5;-rzIeII5dNm}uo6~VYvMWUtr`J0ljOyp>xX7MfUN0t`d?q2mTzzoese?Fl3Mf`{O+ms_UoJMOv^My6P#pb z$R$@j`ugRzx(=&}6hN%wGjRnYfQ3OKIVI`hcnd8Nv*9%<4ll`yF}aS3^nVh;OzFIv z|BH7F_YN2lA>YKyBPm{+9d51E`y{vp*{e6%i0EA>fr%H7E|SHoLEt)oCPuWJ+Mq@m zD6z!PI_BFmfc~@1H>X;D(0w87aNa;xvtWg;kvRcZ26-zgSc0^h8 zbMiPuL>s?*!{tzguErEyz%JJhCYBeA$%;Ws>YjxplDH4#m;R1Ne%2ZwCM&h@G5~BD zT|ewBzV{n3%eid6K885I`}ptEoS_GVw1yVfGpLae*cW)v3 ziBEcOCm0NTW`niQ7HsuhRb%jl#W6G=;?&M@v;m-`kCsJISGQgBJMQXOYQ<{qH@c6G zNn73J5MFQmeCSaHWAw~#&m>9U@DnMysXT~+h~D=xc`XQW@%+9kHqcvWV6&y$-|RSbYF1_XHCijqzN>zu^)ga4JD6V-ysp)1clp*urYl(+ zp_wHBjGaz)q~r)2v6y;oyZvHR)f6e!@1IhteMZT@mr{51bQ2rJ-evjp#L+kofqd^$ zvd;77KLJrr8Lw^Jlwfcgq@2wMJBLC<*W3s;RyULg2=b4icNKH|O5wrIjt)L&e?Ps_ z!A;g?)P?n5E#wpFNsews3vvI3+MgPUB~M|G*!m7h;hwZq{XTBKD{^_+O^#}6doAgx z8PvgJ?lj*X@Xcoqw>Z1V>ZvKC7lOh(zB~cbR)pV)6%^?+Fcq!^;$f-JNdxP1m zx_q(5wXMrMob}@vLlOyv{Wn2@<9bk9y`JGYnt5NM0!lK8X^O{4Y(^PW-mWjve0K2m zm|eUX#;g63 zKR>$WGg=G0x~!X2Mv3K3NzOL*M){+#Li;%+w%UF3-NA{c{D{83_M5&mbZkf^q5@t? z`;-v6i-mnkx1|Bjr6Oc}3Y+`woFg^vb7S7UGd>5>X-uq~1E~OBk@~+4Nn$Ji--aYX z8i?M%Njx4YWdC0!9u*e=<9F)$FvrBLKR*4DQJedk3(csMdPde#xTueUTUH?BLgEv6 zgcL-!<`w`T!3XEjjmU>4n5F+@SfQGmi1)`e)7pa{-p>StO6PYJyw>2*wTe5;R~8N^ zS0bqdo{B|Ph#{k&M!X?!ko!bP4ed}*R+5vVEBbOlr1Yv9ednAyiKI1hahV^IXKOa` zTinSJ_lbM5WV~tE$=$HwPsCJK5Ulq$uCu2Xq5nT6ADiFfD3Hf397{0lI_#)uD8y*> z*+d260yn;e#~+ULgd5@X>Z-9fCz$W3B-c36*}%aFFHciy#?c{6U*aDTvQ&;Z7A6Zo zcg_`z<{z>x=zbzpwn|e@vM>c(eK+gqGR0Arz2FJ{ln5iGKx++HlXwJxQIQn9%(@9x6Kdl{ObMIelqpxV72eQ;uDrl;h_QZJ*e`=%==XsOF_Vn>9@7wQu zsCvHKhNgUAF$BRG%CA^MP~=GaU(60 zwWJ`|c_+8mex^+gfoG+!3^lSgmoMT18w**cf7i@j{i!M0Jdq7X6MoAdF?;*U{Cm#A zM=&-D4xMbw=Hw`Lx?oH{f*xU8ISc>s1AJB_|IAdcjOxMTa^gS}MgwY=)Zp>JU?WpF zO+-aEHd5*@La2xg>d0iB zaBaDvO3otI7Zl-SE{GIn!mDBsqXWo&2EsRoKaq?Xbq(oRu6{-i0@K7LWF)^;dFw4j zBnEohnF;$Ji!%Vmd+_UZ$CLJE0R;Im$;pv{?t7xC%Z;q?c#W6)(m`EDDnhl%j9%az zKLlla3puSVy|2I5Z>?Gi3~fsWDgHP%p$HQYd6)T6`c+FhS3qO~*^BWxIp`fha|{-q z&K|RuLf8879(qoh7AmHi&*?`3S^OP2Ei`J42E!&K`pb(Fm`Mv;Mk+)|cEl6wuH(an zGz9%=UIDhmbPU_Zfu4N4XbGbx7$%B9746I`n0Ji2n{#^VQCR!8H_%s!^_HiNqA>dI zTT{M^MCKA{KfGS*cwWe(L_yQ(&70kf*DfZY`Q%Jh@2R}WN@)LF*?$r!ROl9nL-Sy;|CnycGvFi49cRs!V#2fi zC1ce~%O2AD1gV9m!-Jx1RMl zxa=@FN)|Fp6~<|CYIB@YkL~xKUHBA{Bz%6KD&*i`IfQ&B!^?)tkaekgT_|L?aIwxU z2FF9Bpx`{8Fgwc4DzFd!YFg_qOz$=FfDT%^F<*_*C(NI=jnTk^KE{PMxr#d@nR6qT zo9rxid1hmvGn%PL5>GpTw|r+v%bZT>IB;2RyKX$$JKsJsJilo2pU)>YN{4LiuuVog z5hBfNNgN4+ORguI_t=a8k+FM97EU?u#+S350Bzm*)>;cv{>Sa3VJ#`{=ICL{rqdPF{0V>#GL(q4oq^Hjd!o}l(9(y=&4h#rfFik_pZZULW)} z*7V|-6z6m~P)B<>KgvMJ_n=7o?8yc~uw!>pUf*KdQkqXDfooOH1~F1lhlMb#DfJy)df;e*RMa*cYI2V`s zElQ>FK#)tC_{CwnZ;lJ%v?+U4>5CVe@?;L97BWMz(4W^&8PLk=`^b=FqQa?pUw%Z>M0Fw&qsznJ<; zm2bkkU!?ji&-E8fl-eWvbJpR$WblN+;@zrTsMI5U*PQFBpcPY(NC{csZKE5Q8fyWY1L4ffu13ka4W-J&EK6qOg;)il# z{;G;;wz_(7EH|EM!&KQ?3Fg-tB)vF3hBsC7N`H(Mfy6e18 zqO6QNeW`{$f$eE1Yj!g9kT+Fp=h3!HSjb0laxD^|CqO>zJWY}q8NHt4#!yt*3p;HD*$EyFzm`Z}Rfl6&2Q5 z2nzA39DeR38SNd1@7l=FK>^iphBMKdvEUaHiHJ*}7V4oD4C z^$p1?bQkt_l`--S?HOsR@=3>vr=_?3QQmLnY(4?uCMj|_t#FCh-{JDfsf1Je`h24Z zA^dy3=yphwv~Rkr!*Td(5X=!e;%!QTs}Mx|{GR@|*EjhacktKV=X?P@Hkcd4fxMAI zcekc9Rv}^}MEtbHih;dpfU)!-erICx?I81{P6^)=d4h=bm2J~ew(myS@zB>PNGBsu zaGbGg4YK6)oP;;f%QVir0}+$nm~_0%TL+s8?5=HTaZG}oUSt9*lii|7A50a#QU&-TSmQDs92>qi|v+$aXiRxb1^o}io<^a8g>9%NG&ZEz$L>qcgxUEC-RXT&pX;!3QlgS`gModg) zS^5GliNOyx4FrVA315PNP%8Mj&~^;lU=k0lK^b}Y=9f1tUUFNz-Fnnj&H3~a?F>{q z{k65*x>t*;HGw7t!p}Lk$M92F&8H?tCyPs7UL3|ic$fhB8zCFX2qd<7^ zS$(lIE1j3?EBnh5cLF+I#y!o2t87ytb22K(-OhUk{ zD==US2d~p^W_P|a68@ybYoTS(ZtA$;E9_fcto1TV$TAKWp4e(uSanm8@6gNkUBmpN ziw#zLhvncEj>-ya%b~BN=EaTTyZzi9wDIBg89E`%mZSOBZ#NTOc}5dKO=m@7eNy`y zvjm-1stbN6?KUJ!)n3z8i^s$_wBc4z%Cd!~PkH-0+kBeU_V84mq6hLiZlC<|z4fhh z6uQMiOvCMv27cbvu8tfsNBdk4l|q?nz>P!kbd!Bv;d-g3#SA=sJJwt+VFL-NCSPIy zl(m?QknJ@AuTu>rtq;cZbm^v&UCRlC=1}LKsJlpQbJ%4QZiqJF1-v-iUBO5aM)`tP z*xjK({;8#2M;z|N$EQzWJNS_L7dMYkD>WtqUdLQ#c|=s2aTG^Ka*0Gh87DvnFnANA z%4uy=nzQXVs#|!e?~I2Lw884Btz$rD8m$b?LIat>4XiE%Tl7SeYc^;5t)71uEWJ37fMh(PN@27wQD%v@o_@jGl1`xh{Jh7dD;m ze2>HCxatxw^F3$QX2)&uFly;fmoE)jMEwZYakPaP{c4&?h_>vpEF5K~BAYgee9u_{(3s%wkEjn?~y}4y>=s z@RUd*Q2k0mCScoYy4NKZpLA@2&xOcU_Dfh4YoYniF=vaufc*%2JN5*v{6E zWV}nDkzwbe+<}Jt@hBg-+U|x%Gx+c%+MX)>6DyuQRkJm#!&3IZUFX0T%;8-rwbGip zQ2Ls3Ed@`8?uYbOHzeMPR3!VppnpKvdUDCce zU=ZO*pojX(R*7ni<@6X5!lJ;9H3U-keK|~oaeWpm5-t_s-m*}Cts8KX>D?C|c zed5%uBNzX$HUF#yVpdEuTg{2B3mv`Cen> zx?nktY?MV2#JP3J6E5RXD45hQ)klS*X?72?^B=wHAN`o_ubR@PWyvba#-JW;*B+BL z)a@xAMzkCZyrdzkktxWPX{5O7^?d+vA0DZ>v7^_?8^rWsAplu9*D6Slp#PjtgHRO) zO3gIA(d5cma{TZ*s|J-idDDDhFB|&zqWb0y$G1C-itc1pjVZ{qz8!EEFxhR1K`C?B zQ^rWp9aD>;C?N9s9xC5i+=^}qK1y$+(V&ioe^P1MiSt`1d%P1ZoR@?{@|D6@R4VuV zt6>ZJUx#-vqGhp|5s5rYA(6v~Gr(KoL1#CaOofRUgpc5+%|C1O{Lw%i<-4Pxz)1O_ z`kSGw$~8O~^7OzO^AXE)d2LRBj+WbF@< zA|79CG7W+IIhTgBtmev3AlQU2>eNvwO{V@@ufL~;22MZC zGv^Izhup0N+*SNJSPrhI_7f0Xqbq|!jtsO>r;=j2NYwiYlB)IQ{!=0CQRMiKv`}f= z;$wW52%Jb;kk2nL2SUEapHEYuYbP3{3%8NQ1FJ6)_NN(C8yi_nZP^E$7h+6;04hp?OoEm*){4l%5vTL&K%*S}uH zbl8*rT*;D`mA{ZOfZHVg2LSqdL=K#nj>#)O0^6jnmKK%~KCncwcMom=PYtxazxYtn zQbV?<2t}m10zTqJu%md+*0boc6E;t5q>|=SYvN5QQ;;IHihSA|jrcjQIZoWa<~``k zgX+?82GWP7=zMxt+goHPdTvXM+fq@}j|T4uZ_{78J8_P~seaNxSCy5ElFBJ^aH6^JXexKqSZQhL()a@w~&TVIdj>Ei8 zg%Fk1>x>hM1jVlUCW_Ap-V81BLIPP@!CcTz$dci*Rl!+O7~pJjV3|4ZUoj%d8<0To zuRro4(X>9h2NC`5B|&URG_LKg+&maTYULxF9HlCSMWs*zf}_#Xx-1IHPQeGlB3%-$ z;Ne0cL<#}nI_4)!8c9r05bnt`05grc zEF=*Sm;Oq}dNvibTB%9ANt$P1*JEubN~EjDCL9=MGG|SVl#bWO@u)3_7z|MXM7DWSp9ecKiM%hk11OLv}5gPPc-4N**}^bNnxx; zdubt5-eR`PXodxR4*1Z_V3&PI-A;W6dt|Jc)L?b{6a5>-aR5DW3DmMR#+Vw*5)6rz zcJ*mNN9XXH5EpUy&V}~F6uB!N@ApjzQv&s=?q+ww@JPQ-K!ljhuF7H3X1Rv>yA&6k z6C(K=sTu?_ZWRPjb^W8I>SJs6#X*u|HC#^82Tv!HOss4xk)~)ER*PG@OzNu*7brBg zsHjYZi_aRXXsmJPfun9XM&=ZL^^qy>o}U!h(CRFg)3$0nGmFdc4c$}$rnAQw#3yKt z?m32FM6Vd)zlMVpo31JR)K}|G=EcjR*w6eUuo^e3O+KEVy7%1V5ZYlfyHdh=<}?$biR; zu16R_5A8d78Pq#V(|@d}pq)F2O@O*3O~~>85n^6n?iAzobNWBWhW+1w%%Gnxfo8~` zy8Z8`OoYEig8n(a0zdq%ME~YZ4biKz^UsliBPVzoAw)<)OG`^dg%l)IFx|0zDPM^E zb|MHNNCiiS_k^1^7Q@jdx5*!jzX_6Whg>d9vpjZ?P$t3?VHKxU1k#hIaSy=d# z_5;a3v;bjJQqq4OlY^Kg5SzKAq(m~Fwm_jP%aIKm_U#14Y})gJ5+7kygC_02s`(D; zr)50xV#G&^GHXKfN|v@WkluV9gFZ_9$6Ptsc@1Eh==>{&l@a}o z;BSZUjfv>Lwt{$A5DI${34K_qalTkUihTin5Pq{cQZMNX-BJdwnMtTxEQich)m{dL5B75Fs0;Y z67FfpndZjYi_S2>ndsOY5^ndj;srv=?yP1>C;ch_ySB{KOHPSAJs~}{)T|-+*YUUB zx?DiLigp4-DBqKlnuK98v~*q`OZnwh;_OUpE;Ayc!yUs9%VkA?3?oN{x1dW5sB??NM9^^%{cAjR$MaI8>4qfDE$A2`V5K9p8Z zQHHWVTbJ09KjnUT_P?o>qZ12u19h?F5g)u3H5I_=_x|~|yVY%iY6>q`w-_FUc(paX z*lL@n$2u^dJN2IUOfI}&Ql7$TYbw$&BqBZC3GTg|x_|&`c@t?j#JKRsg`G}X*Q|Y~ zZ3dyfv$a*`%Ov18Q8=d=h27lVULLd~cGo98d-TGcl?cgw%D7<(*BB+s6NUw^g62Xd zx_CN2*prTZ?~xiO8z;NFs~hMfE`93-It}*$aZ#tTR&8Go(HUFtq?2>Q1%X;s2s-ZQ zRn1$Ctf2D-dVU%81Hm9kMn(yeUrJ`BT7|yD{KRDG1V3d+nQqRb62JA0Tvk6-`o@(iLEQA%V8joHx7nRZz@C!B56LC>H6e@bE3mK&K z&Zz0TsvR6H!6Y)*!d;5*2zqA*;1C>}vfu?>rx_?bg&z7%O-b|=phMjtV7sbqNM1bx zaT+co&35-^fkN%3AD8*P|S2G`nY!J(0mO>dF zOw5oIPM~{yu*vOiLigS$Fj)aV)9KX8kdJ8kro?ptD0&HHMFC*EgsyyT0$x8q!|!>*tfd6iqkxSrKDMiirTVOgym$MbQoF5e&V(u@294k zBHuH(TZHa#Y9^whLTsGwAy(TwXog3OCTu}tuMR4U>TdT*K9vD zkJpjdB@o{VKj*5?Mc&s;JzzDPiIRe4`Bl+4Oeb8f#Wrksr>A_U5vF<>sFOTEKCD+Q zV%g9o-%|gjW~3Hs0bOnVK{3VCHD>%qZGPDKlJf@`o;c;`5;oVGl^#>GZM3TPk67Vq zpWPt>jkIIS>M&IUJ7r`C*!#}&pA*VT0}J>DdU9?s;odd2W7sv z8_~#?$R_@Bu$*XkRVgMk+_ozS$45(5Y!AMP_-QY;I?&d+p)|i}QgU(vA5YYni#4jA zAm2N;tnEkRq%t}U z96g}+(D{8K{3=r__~``PzfIEVWU<<~e@QG`f&n zjdky+Jjc`TA2T?diWjQph)EKEM;N#rE>tM|%mwyffx!{# zm?dc^uj=y=srN(yYpzUs22#D1;_lp0a^=fNou&DlX*a-d=)sCB z;N9pu#fDG|+)@!e7&DRkpUfkNE1I%A7iHj9tUULabw>*g?{VARBubnWM_1pWZbqK2fmOd;x zkG;{sl&K%J_Uw3Ps2t}V-|l_x8YK9XZSLxtIhkv)m1E5Y<~qIB>r4%0%9oEL5tvC~ zB$?u|NV$y{HKJc4>-Ksot4PEm(6d^Zq2j&%`D~vmaF*)u@p+Zc2xhp2^{2NrVoGdWs8MqfxftS#Vg&r!hHvcO6_R)fpxlzMT%zh=?GKEzO% z6J~BcSBq7E3439*7qYhI0jc-$Q5HGiK=wf+%WIv;=)(*z*uWY&Y6b9X_f_6+Brs)# zQuF)SGTUB-6_FO2;|uQ)KDZAiQ@iKXpIoPImWSTiOOY5|jY{>l2sC*u^dayNf!9}r zL-I609tZYuE_bqWKij^(aO${if%O$9?a%N=RJ#*eJyA|U3%-G@zoPBdHZ&<%ipXdg zDL012-2@zzk!`soC_UCXt3oR)sIj?aQa1#_Go>nmN~(zwtB6&LE07|a{N1*>u^Rlkw0>8e6w&L6XW}r6 z%7Y!K#~m|jT+%Y~ioWm&EIm_0@;4XXzwUQH>%)|raWl!1ucyGqyov4z8VR^i$${EE z@DY7ykv3fDy-%8{QCuL5ZOo~Hd6HZvL5%WvbPVs~FF}BfV{AuWRK?kK?C*QhXel9c zcx@=t_QdQijf%CM&~NKQpv7RUnz15c zvTa7u5|>JOy+H1wn(d6T{ES#qe$8GZq*IQNYVF0xwO?J;B2EU7CJEn7Mdf32_-$gq z|9WImbZ^)834a^ccE&QnW1hcN6i)JkY39Dv{~E46jV7BKB9yPRQ95} znHexP-XJS#_cZ|0w{;RgIuJ)w=SY7s&Ozz%Sc563B0+>sll#`^Pir28UXP!i6pvUmj za&{#-J>U$WfLqg6fi^cZK?GWfY}c}#9sR08sH~r<#YA(c>v^xN*I_ZJAMrdC+8;C^ zJ2w$1O#Lg{4qa`oopzFMu0e%Q15=S0v8AU~+C3cM2}@aXu!-NSs8mT!EAH~4s%$`3 zLTn0hb5)8n16};V;R-ExJb4spVsC2}$ICLX8xJ2X`Oi5p7m3kel?Lnk_nuMD0b89s zsY)ju8>-1Dnac_`$knN*=HiNjv`B-BlM#Y}kN%!+ZaCpGx&pHjZoNdX=PlOQ1;4eu zbrN!d-vo_sHu7sqY=wW06+1$UivQ9G7@H2NFVztI>@(w@xgoqwDl<3m4JsY1C(obO zpMXaZVP+W}+Ql5p%&b3R7oBZ%V;9Z5US3N7_5oI)@au`z2a2BxzKr+9WZTuw4`8XZ zxw|mwxvSbDc_eI%G7qwSzO=Zb*TQ`rD@sFu#ky}bu{ds?n$>xV#h^X91un#X7; z0}sEi5TZx!uFtKdvn#7P@7-Wiq%th=D>>ZwgaLsQi3Flzg1EUuRV#O(l-+m}$HaVG zj3Gax4O~SF%Iqt%!JBK8AenQ!%=Y}5s0QpPq(}t|Xd_}Kv+A}z%ed;hr=?nNnympz z-Vq*0;VwjUbJ#}OQ2vmB$&&iRQQly!ta3~lN4A4Vb+&|~jg(B|R@7kP6BmyaIN@4{ zO-r2JU^#dyAEW(%nVt(uh{FA^63QQoGY&-X#Z|VxQ1g*ka&A-8iQX1;9sYPbEi2G@ zcir2**-ne$bGItqA$848MNw)@ihR+FjNZT7CsPJ9pHye&#*&Kda!Iz|<&tm;3bq|3DGX1qp!1#Dnvz?e>*&gf>c1-V zUfGE%Kl=Nrmg}2~!Gox+dE&q+ox07uyv^EX;2r~FSAk5yFUf}?egNFzbBeO6vlrO8 zz5I#Cfrj(gC`OcvD-UQW)0vt8;=z(S^!WPpFzYVV+u!lX zgOzN+zmtl2+;0lEu9hw7Ei{>)x@R0R*FyFI1cI1hv%8O;RNuemEs$1+g-gix72r^b zF^x$V#D-UG(S3jk{Do)A`pp`mj45*#S$$reR-;Xl`*jr?gJ`&I4ftt@6DGHNEsXXP zus^=OXVJaDQV#1c2YQMWZst!baEK#P_5!kHg5 z3Y?@~5?~|b97k? zquxC2ehXWi5ti?EKWTRBu0qJheus2V_F(q-vyb81V?q!>Warzyhl}k9#qDt>FJH6G zAK*&(xGOPuY}L}Z!%g6asC}YKPe$f~{fvNzugTF)8QoQ*YlKdm4nlEgzk3Bjpq?YA3lh~ zuYm+`9~UAOb8V(Z#e6q%#aWRhBb5j91RAIc3$&`zJI|P;m<;;Y8a#5}(rw@0{`oFo zG6!cwDZ#1R>;mhyHDR8BhKR7+(LPvisGEQ-aR%wo(!w9~y^YHH%>?=o*gt zCS@05yWA1#-~H0F1WsjGDXoI{PEEwdAy3{Yc{F(RUOMWSvX`7=A!FEuriWP5nX;GKF+cL-8XvYzd4z~k0v(4G7> z;q7{dIk-GCI5)q7MJ=Szf`5U4!G#Z4S!rWz4Ew%utnVyB|GFd}v~WB4N17&IFbW zBG>z>rZ8$8liAH3Niq%u;C`gGK51#33@?lXC*^NVJb&PCJ;mVK1uwM^A#~dwT1aX^ z$kYv4dGxQiWa;>6Va{77E^%9l)bD|Xi9lv%dK<|>3ta_i`OT@sNId;y(aD9#2{Ld7 zf_cd*WE^bb z`0yk<)@`S$LbEI1*ktw9zFywwe&)`0(e#DX^gzGrerv+AJ+JA z)5$TSnFEs>Y@iaP8)3V%+ch^H;3o@EQ182i)xxuD;B7N5#+j}CSD`Ye0gbRa-`&Xb zv0DsegmF?x+|FOI@d5cP*rz>X!gjmsq%fctblRx{wA^O13mmMcu_E-Egd7N+Rg|=f zHyRMDrc@b@QrPDe2E2L9My-Sr@?`#&Yup!^-W->96M}ShHZm88{ypMyH9N`S)XQPD zwwOEE5U73iX_aIpjW8Ui{Vm6RI!KFhE)eg@PmBx8|}RNP){_DV|#=TGk3 z68j9Y!pfTlWBwN;^J8+^VlEU4gSh&NX^zY^OZ0c8f*D8gn9~B%jy_}8{!uKO(#O0l z5fV|>ZhTXh!zh9R_RkyDctd@|K_TZ7NMBVSIVo;cOghiA7)PT}vzjQAlZ>!E9wa^^ z^F4g8!G{@NPNnhmW?)F7#0B)_82XT1x%Hbh>-9n1zuIgeKZ#lwczF^$XjL%kTp*Y7 zCCAURVXzjPR0EyDG@KMGBOw#Yt=^p3<4Q4W9c-NOCN>J6YUS53Myad?cvXNDEFzM- zx4GLeRD#{ymEp<8l)L&?+I z#xJIT5Ukc0Z<@9Ox{JpR9r86LF#aTNf?~O1*vD{V73IZ;G>lvbH|U7Zn$i$WE3zQ- zo+ARc!r>j|a&1o5yBt@DNc$Z@n!@7C z6QRc8RB)97+cQ1s1z~?abNGebKTm9IsM;FX|Ga9P=QJ>DR$Sy)ZoS=)sq`rr`g8Df zKKSP}p@a8n}as)^|9mZBa{Maj+uN@Bfas{TENnV_~TVZ%8vbx$g>* z(}%XKDV>TZ06_t6Tp$;V`1UTX1b&(qNMH>MrNW(o0)-Qk7xLU_iCBZO*7lo1B2buC zgv8Ml@6?GHa$+m^ax>7L_g(&gS1kHQ=Ir+`C%k<8uM?gf-8XtFer1h%y!skjjE8S? zdr#Kpa(OxGwb))S5r>98oqYYUg;7Tv$&4D6*uLkj2YLTKchO)<3{@a6d*KW1N>q~; zlRR;q@yw(7)gqx759^b0oyj#Oa+UE~7Q!Xx&qKF=mfO}{Lbo)+{ys5oBbB4Boo#GM z`peqjdflHJR~dGE+Y7X727##2LdD;?+B>%ha&Xjf?T9kUCpFU4fD`U~-{=YJYz}t5IiP zHbkZ9=in9x2M5Nxtj}>W1v3Xw2v(c#$G`XeW1>_j8Z$zujBrl$-`k*%uIyjrptr|= zw-bc_V6o7R|L4Hz|A1Zp>k|GImf>6At|EB5xs-a-%v3J1w1bHsD;w1!YEk?3s+OcP zT+Sp(a_@2L@bIc1z1@*4HC^tK>mp8ylN<9j)$8I3hxRmuQoXz7ZJk;RxRk-er!JOG z__DWbv=y;R2{HE&Yhn^fdCP|1=~8vSdYLz@``NZ?1FNU|6a{oVLrhtN_bEMNu(VU%Um;vY@gr04 z3;|xYR|6MD4$sVKRmafm_4(&k){4t%1hya?~@!B^(tSB;L{ zvDhV^Fuvob=YsxMerNqD%Xm_HvML~d-$1xiRcWAD{kN%xEcZ6Xme2P}87M-P7Q@n? zCp*UCDrl``xc3de{o+qr8(dzr_^5zc4bR~>Ln9MafBU6;5p*L#fJtj}46Zdte2=>e zgL|<}i$+0afkNEqF=^+itYi+Jtd%#?q~k;@nL}2ifCK;PO<6&Z7Jp9R$wHZ}%G32O zyR8LJk-NA~+TwxSC-0I?#}UtJfUjNSeec$m=Nhy1ODD|w75qP-b<4Yg z=YsvKLHh!WE8`j(;eXcxW+QFAKSbVKargTVYZgl9ta)6>HYVDyw7qGWu0&$j0jKlP zvw`xH;@8>P?~Tx#?9LNX0xaHg_TuORQ*y?4DX{i_WG8uS8SW&jyra?1Z(ue}QMjD8JjY^*F<9 zl()Acu~k~b+oXIlmL@72Rbrh##FM>jVKxV*Etb(a`h#>X*+wP885<&sz=#M1>gE*Iyd(c(6 z7Lh~~z*`{$ydWjJEm^9)0?VJEnQ1t*C)c1a1*dSLIN8=3VADD?vS{z^Nu|Koun8U1 zOhmjhO_T_2Cz#N*#$C@p$xj3h9t6X*hYya?8{VeN48O7}L++k5DiOI@(@e1h)9`(^ z)4R7dC{a}qkHAKFRYk}$kIAc)umiWV6m)!6Nm&q_hmmNXgjwBXck{jBw)K*MMg_c+ zHV;pVV`AalgP*-huP^YdQ!tu}wbWYMIS{vP|H%tv+Z@})90%JHO?7R}32~{@-Wqw7 zwVtU3uNw;+<^Doi_wj8HBc~VqVQHS)Rz@@yhPD=qg&drhfXDe!7^Adnt$nsAwlbJ; zY#;FvtCa>{sC-fZIQv;4C+(+Dp=v@K;T{f))35k2T~UZ#7V^Id!2+@%nWg!tVV zcI~}u5&?f*{=`0o*Iq%*p0gVq2)yL*}ASKsYgXke?w5R^q@7+9Jc+t0*3(Kr2mQ)xS@K|J4;vi8g9?h4F3dXz~5#s+8VBd_DIJBSsn zRhO>6R9d#T9dlU&e4h6%g782ZnL^SnM!bNW=G+JKAx^#i_pOab>o2P_xHqEX@yRRY z^m|bZEt&DPNa^F?@ZOH36cTeD@i%q-F4+6f^zHYuSCcQ^R4tSBpllS|K{>+KUEoi4!6$2RKM69|x5m$vTT(1e%kDj;W=XnN%qx%`AM{f5Lg8;Rr2bsN6|keHoyT;Wf!wIF zuRm;G(xJjl@4x2ePeCQq>UsW6pCA5hcNg-^d~-fpsiDj(l+k62pIJzo8efM-&v=fH zYC<%fw>`A7N3th3hfmXpn^fMOose>C?b>HSV8+eItkY%Jvb0^!_*8drQ@J=z+_K@d zs35Gz!U3!Ay2`XVJ+5*vWu^N&7f^{tExGoT30I-F9E|re*nf?uIuXKmTlPX<@ub$s|IF6*`#MF+XaYrI z3Ya4Wv{4&TYiI#cK@rN1`{ z=`5tkEv@bzVr0P)jDEJt8Yd@5a`JS<((SR!D#EPI|IUEl|HA)cuc=u8q21`8#jgpr zb8+!s2GAtH?NmuETr0b0F# zMH*|boW1xs*vMtNHBsfoS80W6U0F?Di;*QlA3YMTf~TL40ui)}SGBQ{?+bPArjt0WW=)g`?0dgBy?DEeDqBTd$zQR)xUuz9eVYZW=>3n+!${E2j9F1DUG z!-CIc@mJN!9O3DJYXZ55oqo0F@1>RVh&%bjocapEQ$2`1z`ogcc*nx+@w%Q}VcAg8@AOZIEC;!Ys+xzGog%S#(oG!*4sVzp^# z>GRjtPcaRv6YU_OMMxW~caChz;soFoFMh#ytC4?htJ=ACp+&1v>>5zj#HPo4i?pBh zl^u>#J@&OHaem$PId=XWm?Q?j1tlgRo1%t`Y+x0vZ}Q@I_P)wB{QsQYdK!cdi&OS zc2^lKC5nV~mT{OZmP(fS&YiA#s{05zBR6xu=cqoiToiTX5oBoj8pz&X)5&m-mfdEf zF+`=ilrxxvEen!FpCDCU$ZB!DsEP;`(A@1>LDQAB>a}Wb@ zqd5I0AF09OHc5GzcNxUB_>4l9X@e6YEb)z=AL&P7dye>T3!F*Xx9J+i(g(dYD`zT- z(6kn_ZNuXsa$X#Jswa&{5bbq7`rsrPhM|!}c1vGey`Yb!m)ho3@@iR2mvvte&+;mG z5p@nM{~k+*@|35S9&XhM>R{gKd5=nca;5MRTd$6{p_U#xltR^YRr5(fI)QMZeSlm&xtla7#CL8wVVwoDNr9P#|B7|0-0P84XbVDKE%jrIvZ>BVoIo< zo2^|8x~`Q7@JtYuU0wdYkZ!@r)HIp}<7#+~X;*s{=mbxz)%3I1ZQyoXy((E(SAA~3 zV-$x9T>i_NNEYtIzN?i1@|+4iAN>T} z|Ed?DMmhV*?aGu;CJaDmf}y2rU3`?-0m*Mvg|bd{Yjv+7Gm{7 znyR%0G1$JR?=mn;4D7CPUix9=HelSr1lZz({siYxXX8$3dj7{AH(i%I+tmNj9p&~n z=(s>5U5k3KL)MzvuB~9vmtkfd6M6OXu=(ws+A$pnUPr6T4{xpb;sk3Sfw8KgA*l(O5S;}K-{GIm0Ex~sa-+zte++qbLuhVC#a)PYo_=YDOw0@B5WC$ExBIHYOVa;jM<_ zr<iL#I^(Z_aVp)v!gyx@~;q2uIn7g!l)k4m3M~R zOK{lr{Ld*jzbVmpn?CtrHU151ACjgr)^0{+B^z7> zt1zVup1x=Te*JlRH)^xx@)DRY0}(T`gxp(yR#8&4isKGvx@|1iK}k4Cc}NFG;nrsH z1V2Mp!&hC#kIUUrp#Gz?iqXI~ZYpXy#!;csT6*&zn zaPX4|ymL5dg0n_L>U{l8#&sMcXAjz>`@~7->6_2TSo$ejlLu8fKmH;rV05cyP^3Ys zP4_}R#qD@@?z5)T$(fr}7l4t4K{Her{tdu<|JY^o7IBhU_+(UUxl<%H|IHy)YTRC( za)G(xYgGmA)OCS|)Pa*jx-K$gRY5rJGUp8Sv3gX_)F7h0nOxsahb%u0w#aySG!Wmf z%eq%)Rp{JCLIs*>VK*(>QT&C#N~S_k@yj?LN6w{X+)X_@~CEvJWx1x$2%PNYG0#H5-cQBo>>6`UDDs{TvB7g+~KQ2w-B zc;e+QN*sf-n(E@VrQDi|rTX{DSWoYl`R_iRa@x7i&sy=y@(p>3ZJ`ruiU4G577n+V zRTn(JH1bVG51)%dBXpeij_ zfUZWS}++Mu|NvB7u6VZhj6US48mw^RJ>qdf**&fWA*RLFH0=$Dq`| zJE}127_qwb8qIw1YL4(Ohwz`?1Oi%V{ui?)s(X@00NvOE$r|Z}Rkc2yA%fyOu?rGa zj8ewo$z)ZOsjgh9JQaLgp=AG~xn{JbQCvLL1uBiCg}0t$O-(sj^;WpsAL<$^JSrE+ zwX%|*8+c-BHIh`VPGZ#Bv;EepssnH`GX`Ubkd>hYJF5i~(AcoGv65Wt71%5GW}^j9Rc)6Iz5R=K$Lp40^mttS=Db z$`A%$Sx4A0+n@ojZ@!k4mx~g3%jNrc9!rbFUlugD$a(qZUK=PML)RUHtc7~fi(E~} z_!nnq=t8%-T+Rg=V7M+HW7|Et#Wx(*q>07vJes=z=ZnYd%R*W^jw37Y-Eu3|1Y8rP96mxel zt9bv)>rj=P0KLH9^(Qyv6*VXSwev~U67E!oy#MC4)MBc2mO=+3;Msq614t&vZv__@ z4c1yeLPoksGs1al*rumU4jFZ?v1MyyOdj2E?6Q1ACB|mMe`mkZ zmeD^&6xQ?98*Z(dbwoXz}7U$2?{erJQpU>1@@=-C+-il6ES*FtL zdNyG1N$>b~stG)`?3ALaxx2mz%kZ?6^g#rh8?rnDj}Ti2k?e?(A#j2zKx?`4aMth^`XOkP(*wL zPzAaP^Ox+B$ueF#%)6#gj`{jFsju_|sTyTTcu`ac;w1T%9gjipsJKrn(;GOY`@QIxVkgfOmKKr1<;s0oj;@hbN>49uT{(b(_b7e@g>gPRZjVv zJ@1I%kn~#BI3*r7swCmI$;v)e`Dp*dRl4U8oC2Xk+_=kx3F1ZQR7U^teZOg4k;#=g zV20WI?xn-ssG$=jF0o)mc4DKk(i8qS>`wxB=#6JT>t2ns=osJK2O?jEO-TchtzFCyeM)i>f~O1A_DQ{-s8K77fa2qrFHPjX_IP3@(h-$j_;(--_F6Y zxhk4KL-;Yq_Hrb)19Lf_t%()BWwevn|e-@4oY(g z4&q~_70kvXJz^x;wurlTqvu020lIMfd78O;&9_pa^RGkfP4ySwbqQ)fXZ|LGglN{a zZy1|&S#`XtBrxJy`RQB=SA1b-q1zbqno<75XXrHZFCb|J;+qO&J%b9#A?Y%c3 zJ$H`Ia_$^+<~N7W?Hd4?vDx7_0~_i*ktHXZodBO^{Rt)HgW&zuU$1!+WhMq=OBKux zW7yDMwK_-A%6*us&X9=dd{(QK5}8JIXOlIp+NvZ&CxnAkopsil*-Sf2@W7W;f?uDl z@O)mRYHWWEv{mlJnbL&hyxH{{NNS+99}KbLZzsnjE-^}`L@!mL*|lU0V#V1$2FyiF zHP2_%a&pDha(L~ghzoM+(Q%?IcfP9DpQ-OJ_fptS-VqUQ8~^D4m~I~&@2g9Q0GC1Z z>@u2s#mTUe*Jd=SH8_#gS-6PT5lFDohuu%|@~V!nHFAz{ZEW4i_jDi>8qnL;>;O$O z0E+`at)_oIz>z5L&#h6PLd{%bxEfFmy!8l@+LO4P` zS8SQ+56(`vkdcX1NuP1N<=6y4&@w%@>&}zl-&X^A4A<(SqapEN?w{PiUvajZrDn=- zEpwC0_1~*h-Swva+IX{Y32MkjX47cwk+Q=m%+_H2=~0b>GAVI^`&UPbP`|^;b1_l{ zHLF~H6`kDDxl2XVIoH1cHOvkZ$6ezkTgs3#BKT+FU%Po#~aVw zWIb0>VIm1J=pz&?n)|tem^h|$bEa9~>Vz7?ERN}Z4T*mp-9;-Q+}Bq@*H~HBJnDWu z36(2DSZdJ0Y;bjDIE-$YR*hr2K{$4M{99R(a(;*_l&YYcFL&`F@YG0o`_0Ms>0T8h zZ&4xZ#MX|&awE_F^$)!ejvfOCp~DnZjKnd>4c4k)6tBMf;DIj5jtfbh$}J_nZ(oOM zX0Bh6T3~F%v+i`aCH;q=SfGqY=KCM2AN3@1l)l<+!6He$`_hxB#yDZ)+wr{_74he- zLaLY3xWE7UCL+t3_oox=k(pPpKZXd~HX~%R>Wa+D{yH~mctvZ%ZRY6vr2jvFm3F`v z=;EaJj>rht_p~5Wz74Igc~XB_8rkp1ywMpjeL`jW=lfN-latK@GcD=iE#|hMM2V6JZD$IQI?+q9Ds7kd{M7u|cB@ZWY1O@z`Lklu(+WZY% zPN|y;ooq0bM^_6fR&}_wt#B6S7ggYUxO2pYx7N6WNEBES$gEUo7||W9Vc}tZprNJr z{e$O8O1RP(Kz3zvUwJZ!!|Z5K1h>@Q#={7G<@e1wO3Vhy!QMobwo351u8?1-k6+M; zCRK>30~}0FP_*KoA7iF?Z_g}58&-w>SWn{Pe((7CEum)j`^EoUvqN_RWnkQ*{Od^n zdq!5L_WmEiBmZgtKRvXJ4+{8VI)8yB^JtS}WZI&2vOTKJ zG@=jOm)I+uo$o8A*1z8oUbhuv=soiAgZd5m_(*L%IWl+<@N*gcrr@z?Le7jbHV3XxuvXk{f+osVm6v$-7h zw>qEO`_u!6__M7ducvA z>0rhcrF1~Gc0Xmw$$oC?Idz}x)CEL;msRjBJl5w;l$9*rJ~*w&HAZad4?E?x9eG@Y zO;blaIwO@nVY)(f{XQt1PoO?PlSJuid_6SAEbUKVqurLB?sbdsQY26_X%xi@y2}v` zI5LBW!(9<*3Q+U(^+h|JcGw?z*y=!0QM49&BZEYa^2C3L?5-1kMpmjsRTdw^(Bm09 zpZ>b}e6L7&ORBg@2K%)BaE0gDiI$AG)yR@Y+%FmCW4pyoa+8uZwv6kNF`!>>)j{~6 zh^D8{N_%m=^tX(S2}+`~o5)-LUboypEN+5V*Z`R|q6T@W#0^tWdYfhmf9Th$dR5g7l7Z9G!ej+Jlg23EhxI#aUj@qc_o zpWj_x!Xikf*al^4*Pp=2`>ZQpEr%gm;GTG9>Do)Q&-$g7)dacN?M*_i>;@k{Uuomb zlPK<7sP$?(2>hXVn#}0<(@JM6ZYj}O;7@G^_%0JhNrJ&tSf$(iC;h2%Sqa}J$|12A zcV6$(awdcl4@uz{ZnOv9vSHJs8A>e*68`i@^3tPip;0(pOauhk97$@RUm?@^6y>bN zu#n?`E63@<-`=7;C0igSzY;oHZGhTIv?Yh@Fs}s`%)c!zpnXh^L|d7$G$(1Zf1vBh ze6>wVOrMePuTLw?Up!xIm8Hg;)OYujX5iVKzv&NQxGQ0>((Yi(mkKa>nul?SAOD!{ z(!(Pq*4pe-AB!0LWiBt3{;5ArnQs4=M9gr#?KBnc83}f6pK^@iaO7fYdK_ymYB~mv zfcQleZ-U>0l%*0u#+j6wFHH-)lFnwJf-0s~we8+m4m+++?WPCKE*{RFnX%Uww9Fdk zOxUSxtT;z%ia3G!Z&mIeIbGxn(QvCNIZlWb)|9 zcq|rx#Lbm)rq3VxW@=oUro`yEe8$|aM}}b)W2q=>gk_0C`L04GSXx^>DJgiBRtdjL zi~pzJ{oP?1;0GrE6`t_6n*S=JpB(4vDfWBW^9hD7;9Lavmj2(%`euMqFS%v>&GnNeVe)^4ppW$!&xXa zrl}xx`}sRHfv#^?0-Ie?#S8U`RSZn=i=9NQe?#OJrAoO$ovyNsbRq0s+!^xh-G2-v z6hZPajgsf>B0kHP$d2=dw6NvN=AjIdcaQD6G11SAF9L!8ISJ9Hsnzs8IdDzr9`lM5 zr$JbluBQDf;~x6)uYzMdbGcAP>TmVcme^G^q9J`^(W1cq%g;gR_LDkspGgS3_4XUc znXaZM$pIC5VR^wH*Il1Jo-Nj#dX9Hh2oK1?2KT*jHc=zeE`-oxhQ4GH`E0L$;rGrl z<3+?UW};8}6(4;nlEnP=KVRqfilxJQ0hlNXvz5*olc^;yy}PQF8q@g@WLAug=B<+CSmL4X#DJ2ZSanN_F%@Xg3rN-_R_QTHB>G5PJk;2dgIl0ea z$tiH}v#({ZnY8T4?O(`oNL%ovl7cUGN~Lz@9R(K)8(01Z3h)1%38``$q3f?*PV*zN z1(sj+$a}0r2r(8mcTfJktvA`aBYTDao2wB7!Ymr@ZTN3@q)2*8zFP@rr1LZ74SjH< zoeyy4F}SkzSK^6rI7ow;MWR8k+Iz$GWVT^+eth*IahI=WE#!Hl#g2=(Y3i%ObKR8y zUNG_?OUAL(h9Sg-CTAKWaz7((f8#J?k^w3`H5Tj>uuX@nQ9jFsD$or&+8!F0goG&n-kCXB(h)WoN1}^jNu* z3Il!wh9~Quo+RLHav*(V*Knzl^=H9#04;>^a@;OA1i9vxOya>3wSD1q+@Fb0qA`kY zzTquXm#eu#{Jd`qx?2OtY7PK939iT*WW*Y8iManHSxNX?Jm!_RrQ~gC3z}Bt8g`tZ z2tNqJy!+9pG0y6XfrsJG)6}|~&(Qy8pf|vlG{03ZMqfAkP4ITPC6q{K+=44T*I@0( zROKV;85cV_?NRp*77qsqVS_8`q(k~iz?!EMU*iIK`Yc-nM~h4?AK&eUh_94Ke0W8! zrqQBlA~Qgp!iHBzGD;?o(6#1lXQ?cM?Pi>#vt3U6^76JM!6}%Xi@kT==Q(wie|!~o z2UB>@Yxd%5GA?(kdRW|UZi<#B1%WSS;<)3nRyV3(#qVCr=*t^~$xrn0vUKEfcBqH3nmJ9oFA?qAQ!Rdw z-ZKlWA&e>Ey-C~&T5ofAWe%8YnqZoa8lL*e0LS{6Q(`iXHNyE$g z&D^X|heEA=_+p5F>(M1EjC<`bFl-yT^zvx=Z{C<39=k*>9y=T_ospZZHgU@A^Uva1 zsf+xsHj;m$i>WQvguBi>N9K;13A>;?_jf-gQ`>dFoeMgjEmhosxN@A*=l!~7 zZ=4BDzY#vfUtH!GJ^L+|GVWZaPae{Az?}O@aU+2>QuYcnpUkIX-spaL^D1We8(Fv5 zRVn}W=W73Dp>`iOY>4^GoDj2C)cS?{&(z2LH~Xxeevbm zhV;5Dn7TyEy=vvPSEe$p{gH7$*Y8tfq-QgaLC0B-HIyps{@qs*dU&VG zmDAs~Q8Vif2$dBx^(p9D?-rEHsv@{t%W1TgE-d`-QKdD9{oHo;_yPnIF)c%~-yk(+ zWG~{=gC(UyvdxjbWxaA^XB#Zp2sQnb@0QU1s&$YfnWP^-2DlR4J2;pX(i9_NF+sZw&J% z_RHXQULM}?1y7Yx7fIj=d-exEvdqGxb8>s3iqcJ`SHGLngggdlcajyR|IIKtIi8{P zO}l%m(@Y4j-j%d;7qh(IygMUMELOG-M(+Bi@lV{1S{r{Q+hHkLBAx( zm;7!u>R#);P=%Xo##2AVmOiqOV}4GO3Mr$a#&x$@@RS8*!i;kn6YWE*b{dam5aSL& z#Lx2$gR!j{Q+lq+)zQu6*hG}lq)M=#)pWwJEk~0qu`KO|P^fQiB24#*qW-df+-2dc z2v2kU+9zORL7MSxpuva9op0Ldns90|SwGR0NBBWfwxKZCrOQ8B(_39o>GE=57&%30 zWt0wgv<7T^*bpdi?}b(P*uuF=WwjXLb9YMJxs7pc>+RDF#<#KJv}R_aSKH>g(5d_u zW#8lKbYg5?0ID2H;Cz~B8O2jtHrt7)hHnO5XVAX>UxdA7P@BOTHcSmlib z*@}F#^VLB5x_7#b&ecnID-xXLAsQh}soWpKN|HEih&=!$EY|Pf($%mW2(x@Gk}g9L zkDbU_Y9G*jSal-4OrN;PP74$e@K_m4O9@^sU8;;7dX`u(g8Z?tUUkiilCU8-Uw_uS zz0t$JoPORlwC%VE&H4~zRDbtWU>z?fE!d3aj9TRDi`Qt}f zyeoG4UOz|8khY|PLrzt!-AeE%ZT#dAF@LiF@nvu*l{)wa78X2GsK%g|LFj9JG1^$> z-$rD(@FmtExrY43eW-SBmx^0}P|{VgzURgp=4r5g(U9t@dj1x`o3QKwy>e!q5w4BD znJ9a#yqSn_l8CE?WK*7|T!kp5RJuL0&QWGC;M@kywNKS=vM!2z@QI%&+oWiFEj)cVR>|+j<`<+N`hhoMZqhF)2+Wsg1qdm*v zc_v?d;Obz}F{?#W?+?M4TQ=Wk0+K|E`c%q+r``Q4`dQL#&{S@L=n>~}uMK^{L(g)*%zwtaeTM%FB+T0B@k${6>q>gH)Se*CC<9dNfcm^6; z96y!!T!?Nr(Nfj=tP#sT)m20Us1HY%Eur+;RC|>vbb6gu;J#r&W3?gZNl$y=6S|}~ z8*R-igiHZ!NIp|FAwmDvvR)g5M%G+XT1Ov!Hc5+Rs#*?$E!suquw#i z%G~Bqa162YHGyQnOt<0MS67)MV-1u2Fv6y`7h6?vz{{0dk@?=7+o*cWcJGE6RIlr0Od(L3JMP+8b_96k+*o`xLqQw#ObFu-OuYSaSvZD?o zh-MP{@WAG~8l&lS__uM$-mzq@6x*Eeh>2WHTU(Ai`ts`P%#FVc5zZESeNF%b)K*k{ zqDKl35C4RarCKBt(b_S<4Eej^?A?5iav%?Ny_vtzW-!F{X7;R!Ma{AJt1x{Tw!fUI z2Te{J;JxnMClipnY^twf>R5z0ZX8$6-FaaTuC$b*UP*HZ2|_NIZ0^o>g_wot%2b@T zN=5#Hr1K^K7X7i4Ryb=@VzX}_F3+6Un>=1LG%O4@x_0lLkL7ISu_=e8WPCvC3?dLU zZ~i3eZ&*H0nz|COTM$Enly3cM{8{GH)8H|QTyfyThuHSU6P=us) zr4G?}X%fmaXbYPsS7y+9nWAJ2eQ+EUM6!CKTd9i+-Fh>K`{KpQnWLR=ULvMe`WdVi z{2^Ac{3TF}O!sD(c2Y1WfAn`2Cf9KRjto2WlJIzPb+kSRA2spjy7jlc?U8QdW8$W( zu2A8W9JcB5t#>ktqI#RYUl1}z5IdCTy5cJvaM;UBh=*dacX-hUyg5|!I zo?919_x|bv=3GI6ZGPSLYO}^*OUUH#NdQ zE+kQf=h&nqm^6;gbC*&SARvEtVm8`sJ+M%v&-ePa(Ky_S9w+u}@Z#iKH}dx>rf(#= z3IrT?WjmFbk1dbIpj~W6S9^e^8~H1mqEBFOLay#&HM_WsK+F7O*61hZ^x*1lzw-^G zO7ypSw2Ax8KJr8w>~fj?v7Fi;qsO1NBv_DZ zn-|GYK%FRu4;vXaa-a7o&updZ0!q4|=$EzIfg&U0Wy3=UCJJcnF5{TGT;bO(z=_C*hDH)P6WS_xGVOY z!lbCl{ehaX>7uaNN~7{s#Zf>}rv-F)9xkf<8?2n+d@)OByJM^k8krt+ov4y=S`tVf zlB)s!4u9HP4|^2-qg|=3qM}At@VQ9S!_BE{!`V&~2lRg0T9RSTS@8O~MYc&4apB+- z7WVFOZ^0Ih)fMr}^rdoH0`YsE~C280M@Q&J)38~d)uK^A$bR` z0)tV+i6Nvp%`gC@>KU2Oo&LS_ZBA*SJIc&fIGm4RL-v4JgpuzrjZW~TD_KZs7 zwXtq1yAQ=Ut@yE=gzs2zfBiMD^+^|~8|`#`8=!?gZ%8zM9Y%`w*VG}j`WW`?@taYn z7J7S~{IQ-i@66ILP~3`-{*5m+Qyrus4cz-x)$agksc@g;j zZD@2+_DHfE0Oxz?uhRV<1vRoYK?NzSFP|kQSBjcEj>LT|bcd4Z-KV)xTgr0k|6;#? z3%5aN5OdTqZvg0y4<6DmZCje-H=rv|eUC*R__%3A3h;1@MZOKV*~|!z2FMTQzUbF; zajb4nv!;E>8EqE8JrM|Rs`A}eV&mwBZA&0?VVZ=K=nZ9X<>Wgv<6v{_akzBUlf4T4 zq3KOxB9(2*a=fcrf4th%e6#o*Dqm8DwX+f|6Q>4_GfkUsph}?cos>glj2dFt-fEQz zTiLM724Kb;YcF3qzKxo3cI)db57MC1eJYBs@d&?nIpg{X5Bt%aIB;5x?-Ln=X2Ca> zJ+>QlL&5U2r>|bpzQk$T+C7nX-Z%0;4Zjg(NLAU}&-6&s2b6ds=Zz)O|0m_4`5Z!v z^#Khq1D8oQm=#oeE&LLX;3ODRFwSD}jtB!1G0VapvfO+>kGE%tj^>9n?phhF6JM3t z1>hB|_VH{Y-ADYT;ox7B&WF3!w%MhA5H?al4-F+CT_QFWO&cxk=e}vE z{u%Ei;u-I+Nf_?==EOU;r-v&SQcgJh=8b2P(dxi}j4Zu)w(HXzjZ=DsQ@1Ob5z^&8 zX~SNV^b;%sdtA`gLc_#F!eeN-SEJm`0i>FF_OtZ~YJmylXo^f@o$2jP@r%V4lyi$o z)|r3?rvzjB3UOS-zc1Rm%KYj+^c|hyhs80A^Nt%Sn7)dDNr*8bU5}5p{KN2Au*fXs zKx4VX2U!{Vb&GchW5|U{9JNh6b48%j24aEJcx`R%Bp-TS z4Ip9p;VL+@uxoFkyp7xt+|h5g9NvE$Md1Q~92{`uP=f{`^nhQb>f%hLCHe&|?VUQ} zr~dG|my5=0eZ-67(Kgzz)i(GHvKI<(wlqta8K1BZ9(J>b@Tc65a{vG{k*&^MnZw=4{i z0AZG6?90tG!8uzTWS&Y~yE>+9>O{3u4P54`-1h|{TxSoq+ixY`0EP=6)*6dVc_GC` zKxrA0C8KGyuVKB#S_@9fv9jHryL9_6Pg!*cQ|3|We?@B0;JVu~aDNO6Wfdnm50Of| zbtlVBXNXj7abm$$2Ophv-KoK4dWn4t>=Na@{2&r`EOTpy7abYB5ZNy5L^3GFxzz2X zFIrn&dk9lajgA0Q`TZ~GPwc57VwgN0@2?X6SBJ2kWV3pPuT_rMrzBg4d`?PPEk!ue z@+_H4!_|r10k;L+63it00}QA3<1+Fdx=O&vsS<(vxnx>MUrX6lfuX)d$5`%kemP`t zjLL#`Bf82GKc4O`=a(f>f3=Y)2htU-S+Y0kVN@^9jkgRIA>UR^u zLO-h5eG`bEstE%9Jp_K|CKed<(G~D*%T&_PK85WJUl!Hryfm3PB$sGvUqFzHAcZkf zlqK4}yR7PcC52g1fxzk0l* z)ox6Sdqj4kPF--n3Fu^q@~2dlHJ76MK>x^vK(IOhdlWio#bQKoMpNvJu57{zX z{h*VW?YA{?-W+aO_2Dz<`-hC)CAp8s1CQk-116tCzA`6LbRFlrkq7*d?D%u;%1Dve zZ=5|K!=oSpijXU6vsst&P-_kIT?IDY*H_!mKUyXO)#E%4v93>|IIxU%l~-+7_*Vyo zBjn6330V8KZvPPJYRsh1^uP6UG@7YyX$|%pgSPWbN)K4xe02Tb{@Pt$Nl9J{T#z>t4A=ja$}2Lu z5tab;e8A7{kgAM)PrdoST0jXn9c zp7Ffm)<5t7h@9|TD8W!>xOP_S>}UH62-yam+zKt93brOlqtpsG}1j=I~kkDsUJCWZZ6Yc$rv@tZ$O%j=_xD` zxo9bJo5qMJZ6?)loL?2Y1QPXK@I!ETZWU0rJpG4$eWSXn;AVrQxZoU_ogR~VQuu0G z%WXI;Ms7{DR{oX@)TPoFdNkW* z{Wcq1>a#!zjf_3{azSB`{8)v{RYsW{|JMv$JYF-@f^=g!Y?bYcJ}B_>$B|HF3gWVD zUwCDt-OUK(+r+WKB!q>m!V^Cvx53e^2{tG!J zw!`3^s69t#>>fJ=F>*Py=2AYqwss#9+$%5bkZ&}xercp?_#b659NFI=>KstXG2ljwW2YjRZ0s7_|4ts%i}T z8kifujn*Z7q$`CXcw7nD^46CVGAr7eZy}|nAqQ6|_7Znpdw3&%D?J)g0MV{>k@&R& z@0267TY2p5Loi#Zp9UPt@D{xx2TnGCw=m(w|BJ{HB;&c!ooY!Fm1whAczUUK=+XDw zYzr%gT<6M?lunT5;v;PF{=Vjmbqi~^>Y>T%-2F? zLS=u&lk;>M35|sv|0-Q|dz_KQ77kF#S&%j2YsONj}?_tw@;pKj8PIUn}(PQ%KU zORo5b*ne5z`sh^JD*nxRoxDBgya*m4=_s-B%Pkb3`2-BD6xN-*w5RmMH6t9{Ye-9b z+rC+fcCW_4*MCUP_9w`A7J^l?W@s zaQLWcA1FjW&4$?mD{zm>R?R_1bqn}1p^7|p?^^%~nk4uJ6{g8WV1 z!q@%%6EZSeRi(8Y1eIB+-Cxc&(n|| zFF+%1O$lwO>$Jjmy2@mo$^yM(ixj3zPDc?V6e3Nk^}yP4XBhGmX1|>IA*ZylFyG3M@jmyy*73<>0v$)P<~9TPSpIBU+mk= z3C}}0p%zln)D0zBaT$PlbKsL$?S9#paVR>WW$o@w%|I3GLWt3cQ(dSM=?rvvQY?nq z@ERKcTI|lT8jg+ugF@i!caW64*z(lCV_Oj!vM}cVCL9Xp7DDF}kOBU+RLT)Qf_K`x2+ zaip3-ft>GPHks>&VJ3f#@-;&eb^JPe$+vfk1P9|0Wq!r^${d!6=q16c56i!-z&m!D z=Xu_-at+}mT$INa2SvB9VHhSP*C$u5Zn0#Wt$VA3`Pb3a0A{x0U{%dhLsKJ@!h(-& zw674--$iB@nas8n-zRr|(5NN)xSH%@#0p&bFlTTEZI)DKX`CCDS6yxP)j!4cM_K(l zy0xJ#pgpj!N*DE)DgeLUmLJ*P!Kb?9S1iHRVNIdlswVUJ++7%H=ksN`Vh*d&cIQ1Z z?o3;{fL~4g-T1ZvhsaeJcuK!m_R{Zb#}n@vR&W|92z#s zTteh^N8`+jtVgv4lG+aa6Lkr_Rlu`UsTK(hCU&eSKWYW4#mfPr*PR7vb%Rt@DJhRpNP#D_^4k{6ER*^rYO{3%GxBP;AFm7u%g z;a6=K;`sLl8IWHcQ=KCB=i_2}A(TC5m&f;Zz}*AJik(w9@u0^1}LYm?-|cS=g1LGP<4Y^$@(L-pQio%ElTm9 z2>zulFR$=-U4WvtWY-YF0v#biYq7VcFFpw#yy7s+8ZLV^$jO|( zXHfvk1gk{(9INFc)((pz>j*5tr=Jxr-5{XTJqqDm*8-lF5))u}kdYQM)TFeSvCxv+ zZ9E|&%nYS!oO}&JKfo=Kw~ehLUb!b^b#aX972QIa3Iu`;Av6sqeMY2KM1uGk_BP3@e42sDvk%@2FGO9>{^F&{|kwJ}Onm1nC+J~cl_fx0e%2Z;rTPK2<<((7(iUDaNP_O*}&P80jAZ#|SFK=T15=F|Ys8Yuul$Q7MaReMnbYqkD4sSt|951lO$ZizMs( zNx|@>b^kE4Ck^uaO>G`mhMazbf|j)`tF22Tb-(uGX1$nnu5{{b6nmgS8XOP%;|5HX z%M+0*O{zo&<~S6Ju@Lor_!G4D>FbG>pOz^GXAqsgOyM`m-Do|=iYxj=$X=rp*M#*a zQ0G3%t;e)wtVq$_qh*@u%?h>VoSixLq)%*XPZRbBW5|xK4xX_|)K_i?<`W+mvrW=o zq2`CLp1@2JM8r8}O3<=ytgj&3L2AvGWQZc0gY4UBORT^Ee=AZmLNTaEPPpae-fZvv z){!L7yrJl9tG6}5Ot~tH1EIjhVwu=rbfgip;}P_6gS`Yv;lm#&mfD(}02H6TC#2ot zM(eZ}c~rXcMx*gHM+?b{0*)pDpsQen?FtaD0=w5doTdt$JUHfZ&ai*^OgBF=`Av@n zyTE|QcwJ$X?jrVNRZ)Tdv(;YG+$C&!vPV2fTL{L8Q|Xx6vYqv?$7iot<<3oP+Scj< zbt)CX+#O2~qcpZse1KLEMox9#q>lMuw#q_ZzVHa>{h)z#ZUUuVn5klhX&L0b4hz(~^89kGQKR1;IZAIU zL5dPZ=+6jKMEJZNh~F}hfK_R8)ccJTwKIJ%~Z?eH5@FGe3q zJsrK8C$QMUe35Tz34dBDJVT^SB1-*sZ>BVeIaFL+KvpY1r&twNzLu*g%~sH<>*}G4 zNyqmu&W1CCPFz8hD#iXy#4>6%j z^2*BQ5k4#eH$h%f>}|j4D>$dz%O!NT5^GGOgV0HN`S{vAgUuw`ZHKAQGI%VWs@AX8 zS*4Y?5>8&^%D$dISa@H&;h*u`V4V#{l=wF81@8*4%o ziG!p99#h5Oa@Udh0hR62|Ho>uhHwH`vMsgccub!2BDH0)jd;^k#;csysOr&C)*lRO zN+E~wn4OfJ^t!8?dyP1c56BzY3FZ?EzccU-Ln zkB-y^=#sVbd7X-xOZt$7(j+gAIi9SH7L%SybV@^0B{{jsr$@<#pzhzFHp=~aB0k=) zo_lju{|Yrs#x!+Isc!@!s-jcnL~fxl|HX+;+cu&Bw9) zNh;LV_U@qgD!MV|+hKx?G`!fN$Jrl^MlAOa%1lhUGQd1mAC%t8er9Mq5k}PE8KF&v zo39(@^SgsdQv4z1y5bRs@Y{zc|ex!+Ggc{wSefx6I_37k0j9=xW*(eJ5h$M z{;rT?8pzpVeY2Y8_-xh6A~{Lx6xKPX-vMh8$W84T-O7Pk^B}SGWw47@0 z=loRq#->oLUjNIO4N*j+>#^}P;w07?FIv~OGm3nS%h8Sh&3+f|3mmG|?Q@yyy%?4E ze!onwJi}Ow6@AXj_<@}el@-z_Pgiwod6DprDI98ihO;smIH}s%72ELHcB1l>eKT5Q z#SZj`LaPC~AX@QH67yDjt>#`KWoy$|w!hhlDIvb2$Z}exYJ-q(C&Jmx!-v>|qD5Q5 zg=Edb%=Fe>vcmXXJ=3b3SBmTffskdEEEl6W+DCZ*rH3MR4H@EM^tt^r$y4Z@1C@|`_dDGcJ!^GWoD^pT+nq3~ryITJfv989?x~WQE zBaCpJW=25FaXx&W{k^r^Hd=Z5orQX~d**$e&mdQM%8pI3B$vx2+IN=ErY81O@}E1j zP)Lr=5iA znS-eKlD`O1Ty+KT|~};^0mV}lI~?%UZ&_M_&o{Q7iHnygt9he z{>|lim60ePq;Y8KlvpoF()40)}z$0h`?ep?`+T{%gtU}ToC zo#tTi^8CB&*IBAfp^N$>g5|cQ>(Ru;e|E{E$Y|vz-tgzpGvH44)lJz34WdlPi0ZcTK{1i8y&?>>xiD85XcQ zVVlv!{Fj1GlD50GeN*{eeefVQCvH2OTE^!Q1jA)-I9ZeSM|S;U{Qv0V3MP#HNffWD ztPjKJ?;9V?R@QSgCTv5HT(9M*?umF=?5Z3$p6YUcLLDJnxUuIXHo?ll$-gdI$dc|1o3z4>sD#>wMs`pfXXBl+Rn^m^Odv8)nogt zBPUVIm0#kFN=iHnVS(4nLxAMFDn!iU$>(b8DHH0azcF^c3!ZcV=(9q5V_TrtBZIlA zxC)tVE+-lp!jzDbxK3$QUOs&0&Ew;cI-C}o=QAKA>C0|QIA5LN-x~k<$L6@|L2O@O zj;}P+khgJGftWSh2*`|`qt~G zqu>eyWUF3m{RKhMy!V&Dh?cf{kMr+bA0zI|ewctj(^Zyk6R(Ja<$hxm!mXWK69{9FXLl@R5FNo(3yB*C&&FUtI%exM=zbJ87)235MqXF~7L#$C@wGHG0MJ^?Fk zJKB*mEM4mr2-;Z6>FFM zhqK|!gBa1$8jo*VtSgB?W|@yJkB@rK?r~?i>-_6cbE3%%H}_@4y*Z@2At|yDQ_gND zk%j$f%;nPXVNXN`p^V>McDH|(hrQ2lQkYwsk_i?sldJAJC;bMv?n=Yw*{yV?gnhxD zMsFN{2M`6M=TEzP=sU@Xc^ZSFCd)%N_8TxVQXLNpV) z#PbUhqC4AQ|HkO#r?vSe!>|=?=yYB(x=-fXWA`PCKsa8Y%Ts}EsIlzI$oC`7T)%82 zgVpjDZCb!!$o=?X7^$nz;Vc*JrNwdjYQc3SC+pYBi?lkn$d6ncr+0q;IGIlR@s$sv zo6~`IFS~0Hjjp5GGXQsP_To({#VneaMV!y+DB<=7;1>H0FBS6P4soM@Y>VrfQt4$u z$)l?{402IU`pCCvc%PxQZ;`k|nBPwp(-GyO3x^DKI{vz zigEy~Xg5`D{Q4ymW!HHu7gvTg5e#!FEH3(HQ3M3#6?w;ZgHjH z)bT^u`&Hql;{!O%8}AG8CWhI(tGCOqaii;_%7aOoMJ=6NPcDaFdP?r%^^itx@p9t} zwtDM*!M$kE=%<^0YGw!}95MR-5OrE0Bf7Bx_n{h98>Xi>X_?aSiH-m6M!h+5A5X)o zxB82cYW~dEW=WOxelN$&^;(f!SG#p5Gf+oV%H8Cy#OuN4CZqR-LyXUKIc3s1`n;CC z53!B^ZU8eVlNp8|#MfpNW!^J=iF*^J@ca2{kj|XtqoAH8{J2C|5;UyfGc>*@=4xR8Ibot0vtd)N)TwajMq9;mz&fhbs?ZlQ*Zw4J=Ae4+WNX+U_;{DMQN- zgpWid$>)spWG&%x)U^IVk`?c=UDiM4IgI{)czN58&XXVgvL^r^Keq~c&WQD(Iy-)4 zBacd7b7W+{FtIg2-?nlW%Ly9&G`fO@5`hGf`u)QCWYW6W{(Jf1?7OtzwQLVPV2B>b zaeT06ttf)7r`Q|K&@|6Czj|9h%N0d`n2*GPCTvDQ&kT?|FF zo=}4#No2}KGXl#hdw-XE4LNT)ok-^#Gc>zY8^hdAaM*IPMcA&>dGmtQK+3J5a&a#V zEa@k^k8L?OFF^>mUjHQWp->MK6RHq#QG_1~$n>u&91wo0b-?}1)8rUpvg>{ILjpwU zIx$Zh>b$ti-CV5Ch9n*~KmKJE&pOzfpnFSMy4AhhfYwdoz%t3OhH#b1mu$Va0bA5DX1c|dzUpUI!0P$M1hjLCT zFEY+PpGTBFB;y@sP0aON)UXyU^jq?x5XT^5G!eY_xL+ug0z^;Mn#b4=$~4;hGD8XK zG<85MBGVo<1SFtAWp5|>T2qay1(RAxm^it;iS)$$5u-6;L6HPaEc1|-msV3 z%^)%@z~wTv&%+b=*)|~s^8Uv)QbGO?NO3O6&RGS-*in`Q$c5x1?lSHDf;39FBfk(e z5n<0wRTo5ubE%F0CRS+#9fv zc}d_=CuUF1Lq7ZRh4RzX6)IlsV9e#E`BIDuvfh-TDIARe_3*Id1~L5LcIi$T0tq3_ zjrKSbaysrWbW=b-VIXAYx!m~4$jTO%l%Tvq;HCdBkWW*hyKlKA?6T+CU-51u5S^>D z_u*PR;gIKwldMJqo6Ft(G89>l)N9^kq0SNAVIaUn0tOozvUU+kR#Jc57&+q*n=WHa zui5jmm3ZfrizHYzkeljy*5%t8^OtGod#LQO9VzXA{%8VL2! zIpW9u5TC!vr_VstqV&fa|N+mavA@R5kokoSlaF z_UDGqa@M<|^58`+PmxeBwcxipZabkLAqq+5eO6W`EAW{&6pSYy^foj74uAlpn2O7A zz@M~n)5CqEuh#nHO82%2$z?tvWEQ!&4o*%_Z(rQGySx9_{UTW(EZ}lvM1`P+_GOIM zQoyVn&+OFg=~N`PZ51mYKjpI_0jarkuE{XfviS@<2-fFf}b!XmL2W&oOhCpfgj@-W``8inu&PbnM>eZA#i&YQ%Yhk%p4Bm zB#D$}v|y)}xSv*yMpti?C~@@F+dWKiWtmYewv;!mkl*YHD80A8_>-DEopO)Dm=Z|v zi%<9=FMD@xw0Bn8&3gyi^eE#~ zS+jum@C)Hqon%GolU8Jfq4_LFE18qyiM(KDTAUfclG?B!d(zjdJ>8klltfduijcK$ z=*!D_WthOQ8TZwMviH>Dc+Z@a7U*4pHOb^FyQ{GXRZ8cZqxnmiF|UHahm%Lni#}13 z9K};~*(YtN(wys|njQaRQ^1m5eF^g1xs2%shvWX|@{IfgR3?UO|7wqo3_C=o5t^Hn z$F6g-mXh#onVIa(X{R}1>^CRKM(SF=I$IBH;ORb-POjC52B)94NWz{06k6yhtw4WB z<6UAGt`UzRPiTvGdZEoe@A*T(s@%oltE)pe@<|PtlJ@AgejOok6h()fQm4zMHF=tp z+TYRy(0Ls+%W8ao&*$|JQT=8bl4`WNB4C0$Ye(W_obODEzFe5*GvICcWE+dVxKdveju6!u}S)}a)w{7e;eG*hq5yMJ?v7Ain9Ow4K57}QPP zoRIhM%Q>}m>>Gkt{`clkbmY+gKVI?+Sz`mYe|!&9?592Ix@CsiMW33WbH@&W{BCq1 z51YkLVyGNc^s%`|r#Fuw&Fjy{XZapjcwVo6pab!%?RSLY&SHDePE6iM+l@*06$1u7 z=$XLff47VUR2|tUbUvfRBek3TfwEt8^k@3$D>gz`2zAH(6*l}yMb~HGWr@r;M9Q-Z z(z68K{3-rs3YB~}hf^5at6p4=m+dQ@h*)0o)#}NG>@?de@kV_0uoekoU$0=Mh_^P_ z@XdcSQW}Bu;vCvT5d6cBkq`gbT-t-$=7hWtNc;IiCUgaXrDjCj>;;lqS4NW8>h9eQBMxsdycZG*03*>$vps_|AwhW?!UqX&va*0_{X0$3SSt)TV}S za_!gOrv#erY`@+=lq777OMD@xqAHflUv-TM!`3Nf^f!4M#>}Zp%zm?eC98ZBlVJjX zQsg`t;*%V;4&U*=S_exGACRddwYTL!7N@blZM;f*XA?E@`d>7h-bG)KeAD)&<4DpE1zQxG5&qwFhQT4Jj`6aX<&6h{GVm~E zb$}|5nN*vv&U=|zmWGiPTI>0XCFGK{8#a<5(B!zQKoa#Y#%l0gU2in1O|SOG-_(9| zuI{cV|5?|Dq3%bmByY-Khzx z-V820C(%DLrw9H11$U4)KE$S?f9sV=UCz(@-uRlOjtY94w&058DCcMqi7XBnJx1Bu zdQdz(y1@XwR@p^}+if9pR5Uc3XSZ2dUs#j>=?c{REKtnE!N%U++3~sjk)D?5aRICJ zFCdK{Ae4)jb_Bt9U zoe*)mFC~iPEY%3AG%GL_LtXXm5fsA%{=Qr2hAR_gr^xqhz! zSej27oE$0m4kRG^v5Nb7=IQ(g8D(>o0V5@|(TVXUN;tmT^vpH7p!fZyL02FM46gqw zW?@kj`r*<5-quV~>{1enofknv!FwQ_dA;jO{=DFOo0*gw?&na6vJT{6zZ!yGofGl8 zbgH-cEaQpq#lr)%UGnumQzZmaQODCEI+tCabl&X8)DzQ4lDWm6AAaTge-)?!!_tke z+jAp~o_5N;q@>xh6t#64Owm&8TwHbrh^)!ly1J2F9T%VBvH7CrY%vhfLa6q1K1%P5 z`7xGB2gs&}%)yu}C(FvUd6pajetsT291JM-d4J7L{jUqNj{aNrOE?(n(hGXLtC41# z%Lg{e%@gzbOIze9Yxa}SE0UCC)avgpFh`ZfQGmz;L_0Sj;-WvL0ErYF#JhBSH#XO7 zlo-G-t%$;sS6ltDq`r@5Go@O4n9)*{tjThvi1*^pH*GJ&nL?Qz`d?00W9>6_1zKOC zDD1mWpvCKZ*Im@ZX_#AOi#W9<+uMpcqeKE%>b?`@e}v@h*_1X5be`xL(Y0zL(>6C(_#&D zhv7E4occWE#yDJvrY9~lMQ(FIz6DSO~n#=hXVaS@ihq><1$mat4%F3F;<4Aoke(KiT z(jxGh_&<|dmXUHT%KfIwCrjq%O|I!g<5dA z?t8C5;NG>ESRERwNM?dI1El14p$dC#O`o%fNE&avOhF+q0UP(iSV{~eyW0Nu$75j) z+`Y*AS1a(kPq3Gw#4^LFMf>xw4Pp@d;^ND)C5_#;u zx_TBx?1eh`+FHA1|Af+KacK(J=fp^yLMg9uoqr(@&AviNeOiWBs5&h?g@Ia(MrOEWU0CK#zpC#Ox zl%2h{uK|vu6b@KtXYKQ?h*i+4MJG?XCgc#H6tWw(v!W)}$V>8@-GA;*vtaAJ%#Q07 z3~t2NGv(TEl5l+EIlk8V0pV6yoP2zEczA5=)2p!$M=biivQaA}9@OM?^?2h=Uu}9L zQ!!vgGzvWYfGv~{_jfA6%MXzS*Y)hAT)^fFRrl?O7?YZh2ywQ$eZg;i6(*Eij+Qx(b3Soi% z`RYxto_Qqici&a+9J9j~Nr7~1NAu9+gzyRZ;>ABK2vo-~8t6%<(!s1`54@fzJ`}CD6Om-a&{!dS>%) z1Eo)<-F2B3?{C+g`ZinXrJd)?JkWKXcT;DkRqCSp#A2BcDN#q(&97|(?_NQuH{X8z zZ}Wq__4SEmzeq_3)PnIr^oR0^sT|C8Q^fW*3ak&9n3xje7zZVmo`EesPrL^uH8nL^ zAKTO{eYu_==On^hdX%(r8Hnu2`$OLgRlEED#(+-XdVe)AynU{vvy~fF{9HkAw5;Go z{WYV8opP?SG{;%pnw5*39ab0tSNM3v=NF>bhfIjvbx%CbrMt1NVZ~H|3PZYyrCw>} z_2rm1?!}@3yhf;zoxWq%{V?@#i_ZCFg9CbFPo3eOLS4p5rX@djs?%_o?;VBsG#6C% zX9h6}m)r6LxmptErS8z$p)zivJH#TZ3{t|B2}sXHbbds*)z@a?+T50vRJ0@XM0(3h zS|t9N(4C5pPm4U-$?r$HTstE@6Gh6r%gKC1+0DQlF!q)6$hTr=k9Z(g!1z8 zZ&&h`mv7y9LPGNTEa!gd3(1n7Uslxz%h7y=7wVL}=$RT?ysk$v7(zlu+p*yoFut% zyHC;R5Rf@DR4utDv>f97Z0SYU@^X2nMZ@>CVsEAKDYbKR(@`nW=l^i_mSJ^7OV=QQ z5JIrv4#5fTuEB!4I|p}n4FQ4&2=4Cg?(XjH?hc1(?tQ;+=FdDM{O0NIvwL^#T5DCU z5>g!_JU9Adu7LUkvuLc<7DcKDpN7AsYin=iienJ5(4-$2kBGA0Z?jbKW{LuXy#O^+l_(t_{|{2zC-+2y96Fv57n!4;BuGMQV<2D`GOTra)aHL{8<7* zyQNdCsHGMYzsmVDKK1^>d~AZjuib?VJ>!nA^g?Ha0qb-!5~E+g0ahpz)`fFC?Xz=P z-N^~KaXm&?#fBR8th^K^F)0Vl3?Drm&Q zdl05jR2=AeG1blY0>FN#{P{02E`$pKPew#UId=~!=f~^}Y0;2mC9WKqOAOENW33-Zo&9;+yBl4xfy?$9A%2;hGzs-0({xN6- zq^;(`65B6}pxJr~5qiRJa|d~xRe_L+{22Wd`!~^#h$zBUxFVs=d=t{*tl6I1sD!mm z9#K=xW-wbCH$sb&0ak-!P21LE^(cmMfQi!ZC+6>hvY2}sTvPFHdgn&}&rW~W-v0Xh zwlaU(o(|67Dg8)EIP}3d9s(a6ybObP}5Kr zqJ)w$xoIMzgic@LZ)Z#U?v(+@AsDc1h=@p&QMP`X-Z6p1la`dk4ZdR1F$|G+3Xtod z-d6T%GT~_i{Im|1%(C0pF7{7})sN%c9)*7SSx=UBNiO3fzX`j*!RzoZ$H-sP#&Wvv-uQ*#p<&wpPF3s~7U%4ZK0<`k z!QLAA%AIj@KG!SOAIrgre!W$xw-_BoE^N1l`ladHB#4PNnI*Wl876?{avG$_1Y*lG z-jOu*Hx}+4lk+4QGt_NEPKxQqCAg@s19ZVF+u=i-<}ZWwa0r~rUVmzWXC%@mtbU)+q-RTKBY zk7G`Mn_WAH7Tp`$c3|}T9nAb%M_{d1zA3lvV=`0ZIOlFI7gh5Bi<=slWac8q-tWMF zrt>82b{M(trk+$3NC@_l-gU5$-u?@f=Z!U%}EYg|A{+HK%S#Qmt9*|E`7+zh$bA? zqer12;COpbK$j`Lf4lQKmsVA^TINU!8T>=&L+A%AfUl42XvO$~8^1i3&w4rW_D^lz zSJ7P3(xtn8+5F2-t)kvUe9h80=sZ&QUJ-LMKdXz^qBho9RB_Mu&Ywf=Dso zLIS9#w0ac!{b?(Xg(JMKqJP8VVw2w_e#mdVzyV&21`cEnsFWINEFr46-%#N=A-`h` zgT8(~fKnz63<_Km1=R&w8DUs`c_gY~g_EyA`_SOsdEBo)r=pyVjYW-MkNh^h5=WY% zg_}0;`H7RWht#fn#Z3OZl7@naIE*Y;L2hdDHJ?ZIQzH9-(BQOmG5Tavx-$(zm0y{_ zhXaVu!S6_oRvEhTLzN#QxvRHCGk$}+S5;M2BO_8b!Ah#Cswyf5K5~@lCF_JJ z!G=JG_QOSx3eeOvxd!R{5l3X8$!i;untg0KPVj4$flZ6>4YJJ8u^aN}Q@D|6NhojQ zGnYM8D{>quD*;>2>eox0(EtjA0DTz^L(ih%{8jExA*F?9(-k#P*Xvr=1(}qq5cs?{5_2z>CzzkBS7-p`%H@1R~knagnK2ZZZUbdt)?9WHg zy|156pe^@@46h;?{)f{%7R@(1kXQ5ZEW$L<^Rg<02~Z{w_+ceCgST+12KG0fB5=0W zW_?Sr5LLo+j0_6{_@b%Siu)P&WnW%p9apBqRt(w-zHEwXJYi^ixFO;*dymLPmNi`z zKj>~=x>Crbs5RQ>O3e+WLA-&~I%H@tK=Nu%PEI$$3(Lzk%XOo(v*>B-CSBrx)*5e=F;p;oj=f<5u-^8=O zV#$wF+jbOMvHz$~t*Ls{FL8r&QIA&i^?56(fLpGse3Djg|Jv@U*>zXZL*OMRS>Oz( zLXT#%+U~q)1#1AGRzK0+7-CjBXjOdJ5RPa-9+Y6}H z{nB@Z-xnnGkFGy_rTWdWu=lv9-%HM6t7X z;KC>>K<3nF+JmqEocf%+xkY)86K#|GJnsJ1mkGovV$cBmzTDP+&accz+=H#Il+)`s#TPE1S$c!i*dh%qGo7vGNjZ}G#^ifQo2)&PNa{_Fpo z9`Cef5rz3kcHRus7u0M(NuXOId%0`Y`T|4ZFWcpm<8VASM+z15$Fya~%9SSVu<)>M zcH?6L@7c(Uy}bRn`T5&hT3Uel>)6=XL_k01$)f$-$zq`Mh&3-h@_}a#iuerw{)z`M ziozT{cxI^*5u7{B8aOLJm@K7~^h$a+m8fV!oVAsXIat$tgTrEcwPWXe)tP5PUt(Ppw+^ zvK2}{SEe1>A@<=zvutry6%#SB!B$UjdQk|ODaAV!AO7k^bG<*_4{iqaBi;l9g}{_8 zgn$<&qO|m|b;rM4paXhn%37BL)tl;Nr744#f9m8@SR#+Z+DX*ilB;roEsOvRdHf*a z`4fVl3_RRI=GYGr?d2)54IjD>4l1#GJdIw5QV)l4K^WmnZ7VZo8w-cbHG_Xl zuR=<0Ok_iyyxLyYU*vgf*FyR?XH1RHP>si^s25RFuPAd@#AM;l-dlZ_aQ;KaUT5SP z9rNzOoUE6h9N>qxsr!&yDyNmrZz!K76@9IQ0+_i~tfrQkBr&^a`g_>@syW4sFrT#uXY_gxPi$yFF0^_H%w#;BRx3a-SXZty7;DxHLKDIU{IGL&76lgnf2fbLBa`L8 zTTQoSrJN#*b6&e%0IWl{oH~B~nh&*6{VV(U04E`Vc;fMo2r*M^2p63C;A_nC+)Kry zJ)hwG)TG7To*hWkm0OdUg-7gyfLB)VMJ(e8Cuy0J!?Bhn=LhppgshINGCFZNFk=Am zKX1UU&^fVTQx#xtAv`}R9Y~$qN!i?(0ZuQYP51p^q6=WY;n8fSP!J0%>;8CpB*15R z`M+16`Q8!p^1hy}HXBqnG-BJ^+moWe-WlM%pD_?E`A0|Q1d%ZQGM+yc${Q49Fwqs0&rN-($Z>cYeV|^3gqvo zX76HOU0o?D@rk}|L)5^yySobo!n-|O5T&PvbLE!A)4TDc0p$?RE&{0v<7LhO|J`XF z_1@~v!OF@iCe{y!NtZG91%5@3yKFzW4{|E~ToEC^J?_a-fLxL0U=x#i~HdBf#Xw$A5`X$dA_o|yxq;g zBtUs(%35^?A{?M*%2C$ate-7bQ$U{TG{Y_Ex5G(GNmZl^e=ULnEa6&rD))&`g3yvj z1AVoR2jJ+u*>4Kg<~8f-E*R%s@e^X=`8nI}k_o{ysh)?%^g@tIDu7)H+?M! zpXVRGsHLILk%as*va(|7kj|i~si~^^`XFEJRU;l{ORd)(~iX#>C+3)iwx8+R_^to;m82HoNWj`*)Uhmn0c~k38 zC+tXfJMc(+5S~)C<@#SC@C7|eTt2YVLU1uteprJWq_aI{J+FL@8`DMK@;a5O;Aec& z6D~53r1uHc!96h+kPBFa1!6&VhlLA1)A{^anm>4@<#GIRn*`~OAy|Nov6t4?w;V z5X=6-WKYoiU_zTZT0D2c>lLYY#_ZL*q+HE&ql66crs3@ke!SlQjy42{EXY81V}oCy zzzIYiBVo=c{>XFwvq+^=LAW^R=FM{&B&^z-o^1tjR(NheB+T$H+%oDT(BgFITv8Na z>n4}FVjbeBHQRJa9^>8n`4!?V?kDNcz<^%$BJgQ1@xI&f3iOlhlbxn7w%=nGTbs!& zp*oz8?4{rJ^E5Q{`J-a2j9Z<^VopCQU<;oD&*1pk-cJ8&anu2_pPol&gTZ8eJzp08 z?fBv{JDGwZ+Ia+r8=Qm~Yi>Dx*}gY1^9*2fROIC-X@-M}qbK!G07Rqc8cSOqRm$ z%vL5B2wdM+CX@G0|NVzMDZxW|N2d0(kQK7xz+s3vB-|W3oljy;NzG(ZylZdxP!R^q zhGXMUf1b#f9s*;6;XT@+xtpGiFjP^*fyDqC`@iYk2a>YecOOY&gwD%WlK}$90fa5r zs`~-UHU8Rw!$0Kr9w@HQDS;7bqRi`s3R2BZ>>>~^+@vUjYinszf&IJ?0x%Q$P|jU7 z{==$TTMQ=FI(rsUuDp#0dr#+YKgpk8YZ?Ozk{M2AP^!)?ByD&SJ8Vdlwm8i=WOie&-1S-8y$Q?TLf z-zI1^u$@rz@Rlw#A-m6uZ$rZa#5bQ2tro@9-oon%J^(ujH%2uSy5-8=uRtSWhsjJN zK&qO#~g1IlH?v1((Ox0smBp>o_2uot>2>CUy1X=>T(9eQ z#mM}MG1&_SD3HI1v-#&ke`=!o;kf4K?V?DRyCY5nXzmZ60flrGlePBDfA=4+YW_E1 zjWa+BnJ)Lq&D}QEtNr>8-uP@V?^!_xC=x|7W0?cT;T$+^W;~U8jyd2l#oV>&Yolu{ z+6h}^3ELj#TifaGvMElNy=g>#y1csIlHx|Yb?lKW=P#Q6l^3y=i0V~MuBWlppCJpa zzer>xs3Ei3rHYj)cErv&IS~IcWU!YNN5<^pNr|xnIN(j*H*}L`T2!?M^*} zSULKnQ5IE!!+#zq#*W~(O~UJLi*C80D&Rf-LtK0iU`Wce8h-)LyL!B!E%5b!b&%6JxBz9K+K|0vvkZ!T5zn+201*V>1{Yz zE|1+pwb+js0jr4Ub842CZDR&9GF>w1T#WC9UG9Vbobonp!(C5<1Z!)D#Fs?%Z{VBp zd-!4fqy6+Ki#I3jc<-vV0|#_u0PldS5|Q`dH{|MCGPd`Hu>_rj39J?53HHO&JlX$k zhnPxuj6o+ak9lTdF~jNB9qlIGv)OR_Rh_S2C*bM(>tvR{Il^dihS27Vp7kUfEBnlx zT=(Wt|8M2mq$ZPdRYWC& zt4rYaav#kqgNpsmN@GJNcqKTXHV1#F#R*Qc!@d zf5z5)_|MDoM&SNEz@~F&I-2_&);Vl>phjBi&6Or4ivIl&udJRxqS@`N?Q3KX9+5MD z&-P`(FU_7^rk|svgVLNXH;9Wij~i|9xMQ!h(n8K6u>D=r;gIoVi zSg$XD99T{Dr`7YxY;zXP>FLiM)N`^mwVg9lSMl83W%n}YeU36&8`WPW?4hVH!a%tc zM9t^?!JE|DK^KfCsef^CeZXH&4+}dmA93^g@oU9%LIs5&kmKWo1E*oe>N7l~^B>ET zQv*ll!L?$$Zl$VlU0)C&qZ(@qxssHZW4?`pSMI!URbo_1ukI>f-yDv$<~Gjvnf~Rd z{7wJ@)$3QSr8&)mNHs`2sZ3J+yx+!?!!1HHD1iKh%e4DyZDL zr@$ho(+iR^sYAnbzE_5wlkT@SIFRiHPpp`vMA8;+mJ0PrhqvNg3s3c8K8t2&uPD*b z(yGpwS_k@oA5C_LVgWSf7unm>V>lR1_6|{gA>vk$EXyokdAzP;2x=mJn)RBv)_G}m zIZf|t3%!42Q`_@dZhcd|4m!Q^zn%6V#8ZD`?ObqiI(@0rylYjDdaa>_S=ZofJ>T;8 z0x~X7CMM)^Ey`GB6AG=*k;;iYZ7^w4mRJ=r*D>Ykd{G5#UU8U0_~jvB52{bEFgG3L zD~+Zm^P|&R1#YVBCA`DPaP;T=X?(5`P^kqPm#*h&7M|Pmt6?mECj8&Q<=$X%Pu5V# z7i6Fet2F^v3#J+z!IgwyV;-$q^1A?z(Z0N_`;&9Ze@4??*mxqoo6BWXM;V>s9$$Gm z76O<2-r4y7`9P+eF>@+9f?z18-vi{o z|5LJ;vE6xilU!@PJt1M{eRDQ}x!Mk%@)uOHSh-M&HQ3~wTK@^P?%c^#w2Xx8@|?=; z^6IUD-Mi+qgk}SGt8d8S(P@((A;D6*lK0wX)NN=X(SJmY_g)hP^f_@jJ~1_!c+X{P z!WPDgdcE+_%;K(c+qz0$pOty7G+BIu07DZ*#z#m0`1Tcm>H)wy{1>1*@^DD!SL$+q zH($cuGbDBQdbRQ``~+5nKhDsfv)Ov_MqQU;AZXg_x{fu7N)b@%ZFO090$AOJ7B>eV z0yr@5?C(z>-T+7*NK-c){78;mZm||;g>=T6j18T2^i_2f!T7QLXZ@tus|S` z66m9Tp%e{H9lTM#3Qy^8a)0r}n>XK?_luaRYbsQRTZjaWr8m-7U4DVb(W4rbZE-x9 zr_Dr;)PbF?q0tr_OX0V9`jZCF^B&juApe`>tHgRdU-&WK>!7Ks4C~7NyHo%Xr(d2m3`a22IInDvF^$!sFnt zEsH&*6sZ+|0S9y5xZqW<=O1IXvv(w>`mh}B48j+)W6){5$gn$b$^YvEgHN~4#|YMZ zNM|excs2R~KM98*6%k-aX~NDy-+DPV!dgOfysE9epqTtPJxHM(BR0>*Z8~ayifkZB z+`~F{@(45s{@Rao1DYAXUOQQD?LUrrtG8JFJX=N>VY+;e$7`|+ZpaShR<=>Exr6PsR*?a5s}@ z9A(XMX=gB@Qzj{-r2Y=#cnoxeWwR;S=wP{rJ(?O0(oIWFR4*l(P>`oYBaa!>%g|?r zsDT)zs{mCmA|N1qgwUW~#TIZO_;#T-LpEP^ywJJXI;sv2b*`tYVr-tLRjSV!uEsU| zIB}IuH#ayt{+&h%_WHOwu0lv-rsw3cqAIA3O$T1kU8;QW4!+v}lme;jRg zc;+V%MK|PGoLFbkXK6H5&+pD4nI)-lNmQ)l^|5CcT20o|(oSATxWAD4As9U{0aWq0>@5mf2q7lVt@|u70Z?@P{OIb{E&GS7N*8xrL5j4 zCCO+BvhK{D+tnH_^5UyqrVM0594lM7TFCYx9QtcYiKi)ssp|bYD~YMt6F$#SO3HjX z74T1@t+BKec8Ri9tLf`p1z>q-dY81i+cz_#L>z^NiJ6^-FJO`VTs;4JdOQZvbPeIx z|D)Q`0exWmjXK?pU#SvLY0nRV+Cgps{fZ$}V@H7=L@d9`I)+Zv#6A(r`7s7nX}ToLO{Wev~`xgw|GB z2^)oOqCFgi>eN~zqeZK7_;=sme5LH!x3hJbw8Y(H!XlgR<*wY);LPBA1lW138P4a$ zX*j8ua73fxs6{a7%P7zHW4;f!f&?Cf#YI=lYT2jrZS`?@rs-2Qqo z8G+7Te3hG*vLaCsh;jNP^Wu5NEd({fxFIZ=*W5`%MU|ych=_>z5hBCQA|kuz=xml2 z7f4uKIqKe8Qhl&!HPMHO(L#E0)9IhMx4O^yc`~xFTs-gdBb#6sYW6YW|IEwoj^>Z}pJY%8bIfd#fMA`g_e0!yzb(!a`aqofiLxl5SEaT0E&i93=FO=`w3BjWC%eOAHp{-+-!CGmC${~b?fpj zqNj77DU{V15z$zS>z32Rh~;`B@fdM@=3Yh2v`O!5Z|{I$o1~orINfCb^i{**u(6w} zO#@bWk?eN~56X@I%nhxHwitDP+VHVJq2i8@HTith5!Y}mg@d5|2+0lMs|vR~)3_RX z_VKSo|16LIq(L=hR^|#hV1-JMlu`~2fB$z)V~KYnt^S@IaCXyTKnO_Yl}fKX48ABo zquNv9&bYi9NL?p59bEAEWbZG~0MK<~adN1fLhP;1csCF#{)_opQ;Gaw&PNO6SQk7eZ*TCrLYLkZ`Jq=AsdHMSfyBE-d zftdI;I7Wwm-zkeNRe$#C!Ie}|_-}c+LxJ{XB;hlFm@)$7&{N;8_upt&lZY-Zj@SD; zcOnQ=DDgae=&6OS?Bz@$E$;t<{k8Cx)cMc&K7afLVCm$5Vyu=VZisHmn# zgZ4Ux6oB&sT$?j?6)?3L8Q zt4-Lg7LPDzuvwoq@{^8=+Ox8{y1G_YRz5?p*!<@wFeFWD^3!myKA-CN!yq6X>rv|| z*c>MW7_3-#KoBZ^!WSd}KpTY8wzC&;S9M(ZgTYBJ=(VZ7n#o`ioH~rr==$t@Q|B!s zn3l)3J<#{&Rp)8(D*>c`zBfCoYS@!!vEwv5e_hu52JT(wuDf%ySTiAvIHEK^bdl5H z^S+J;kN@o^n|LzJ$@RQjLxY5%{qVk@F{Ctc+udG+yNaeP_`TeA&JtP5BSG%2aN)Lj zz%Z;h0cv{jU|z429{%qESO4Ii&r`%15pbCInN7;~Q5Vd53;Ug|7CaTEo!0K$6m_qy zyW2{MN>s?`9!$<7huirtj>qfb>dtSNgpf>uo|u(Qw)c%Pr2=j>KNV?wZkP=vcXmdu zDsVyc>|?6jW|nUSs6LI4RzfOWi`)IozgtblQrVbh))J(fz1YI73=N)A0<$LO_H|lQ zH1wCQM_o)1t$kdO+|jt!*-U#hV~VNg@nxG6RF`nVA_13hE0qp`EX4vWkYLA}uo< z!Nnf8;&XHB#4=jx52ASLL%g&o3s3`KHM5(5sZy@MyCXL$X1^7c&d+88>S`>lhY9I;u4T_3 z!^0$Yr$b*U@Qj?#^Ry(m20FJbYEBUacyOal` z@!*}@EZn38cbCamfa`~#M+H762vfSEq9O%FMZzgvO%ag*>oS#MvWqOolZDByE=VXo z;Qs&(_~$5N1*$GDcy)n2p9Iqx9O)aE_SE@$FxXsVG(df2BQcIoTgMeQH+ z!W_d}oBfsZc6qp=JasWyrVb-ZIveaRn~0;+1iBoP+G5n}of6j;UkMA=6-mBNG>vXL zl|r^VYqOo4$#izHEaS1e|Ap=mu|qA*%SE5U&-yZ^CYR!DdO3tIf5_U?!)Mtw6X3rh z9Q(usvV4Z$%@duyU2Mw=dRbV)E*>*PEvEB>WF&g&L*FH{8;%E8(H5p8c*vx1UcbsQ zyDicC=Mxy;9&bC|N~vu0d*rW`1gIu9S*2SC^~2w8@EC@=;EOa6n_u*l#ye4a^5r^A zbrD+DM>eQ;pZPtX@EGEpZzX{md$OOS^GIUR&XyYVM=NJexCA#kDkbxNbG>>TNad$( z3NEXNoHlceQYZ-nakBjB$-PlaCZiTe?E(V>;Xk=2!}wAFCm{NlfHUH&3}~Q3NX`Uc zObBuop`B?QRFTet6}jWXi;tL_boEptCo<`t4!3Gf9f)QBxnN!F3LMrsdF++c@K?}O zFkVxIgg7KD&}VpRzCzLYi^Tsnu`|HDxc7k&VLG-VKkIu%jG?6(TH|Gsa!(kMOt43rX49Nm zcfYwSXWBGC8w6+&ECP)VNVODZ>+ z_f->Kq&_nSV)cHScbHcMKiaCzK#lhZD~v3S+VOTZjhwgb?5|W#nb$t=LEdW5{UYc( z#AG2G4-zS@W-ex#T(UgLAI(>vAq0*|V#fTKuI@GF zys=XoQAkd8@%0`&DcT#x>2VgM6mGJtV!5bW6N9F%iu>Q<)9#6}nrOWvoPsy8AGcj{ zsY?T;H68*nhpTz0z;a3k(rTblKAn!g0U&p^b?26==q~$JB93EX9+5erI@fu5z#oJO zv*NSR&gLGdbFj%t7>Sz5aWm{Q;g(9;-C^I9Rwe1ocK9xKxWDAkHJ1D{Q}tA6PiDO` zp&mB(BJ59hdHvX57do?d0}v3A8KyO6=S2H;XG&B_TXmx8E$qto*m8wRA0alxUESQQ z7OQsi)4km%AYqUQwCXIe)5rgl0GkH-%P^FBb=~-|_{l zm#$P%^VMgWT?lCIj_!#|Mg0|0Q^1H3Y{27F#H2k0>$*fbfj*GWOTGQ;-8jaO``KHM zz(+|JOZD>={D^wLp74#TL=nZFBn4%Eo-*mn{3cFlgRs0Zsmeh&eO|CXt17>`&Qb%s zY&(1?z}^~Ys?w6@80_btx~#1z#44>}Ed-yGoLTA=eVrHI{XJ+S)k9F%3q#m@N}%y8 zw(VmV@}VwXfYv%5hxz4F!NJW{UX|22U38`oBl?$1C^3tVzVSa&t9Mfi`SU~2BQ1r6 z9PpZrPf3yJLPd!#(rq7j+M;|z+O9RoKB2a2eBj|vN}B0zf4kbATL=-;o~48w_s(8R zV&fY4C!z6)D%O1BKoHKhQ41$rG;@OrC?dX}T!G{k**wG_MpA;2PGMQbD?l?`f*)8xYsf$t4}h6F&dc#u+3I@1Hl4axiFS znLX6tweqR0)K|P{m`q_cHHprjx|~F6xo_r#jRsX_o2d!Gb|;)Om9N@D;*3jH>nafH ztuL@dO?fAZpsE*!AYjW*vSHt8aIw~T7_5*U>r;ZLh)2L^C$!l*%wUrn4>6H)U{Au8 z3O>-WF|CQSmj#LgOXKLur*vlzBH>RQRavRBXn}*7HAz#if5##B&_w1$mOcc*37s+b zFkjXXwG)C6nM8(PQzsf2;eAo&sZFVp;9Awff|)72VC9 zGioFu)gw!-?9hjt?N-0P9^tb?ghq0@x{is6#F!;VDSY~&-mCAnk)4xz=8qMuM_$X& zdjjalLE_uPOH2?il!$D_c)dI&tbClV`(+H0uR_$3V}zr4d|WdjMg(iS z3xTguQHQDhbcv&CU$Ng-1ACl1BkBGgo{)!Va+9_7&18>6s( zC7$>rA&&q;|;fhMhC#%Pc4e)t{W?gHoZwnW7 zd0>L8dh)kQC{sU{$M#m{N6UCtU8GuO!z@u?eQFFf?4CB)?|bJs5Zq1FU>NMlcN?|ynYP{YS{vi} z$mrC-Od>nM0yLc#dc(yXI&VJ#w^usCwpr=DIY3)5-Z@k)(j3o^v+x zXhhU?BnEPbi7@d9>zCK0$&GMKZ};x2t7vO~MT&k)0t-p{1wN+r>vXai=#65Bq-+i>mTKbYN)QIk8s#C!7?SlD9C8r(>6!oWkNztz<&+_b8(YGzc*zfKHcJynb&1Ksz5Py`K~?>`N75#4-Y01&thN`#ng*wN?{C-^Cv_GnE=8& zW)BmcPwz`MpJXgKrJ({jkWz(L##!%eTcrBDX!$X9{E-%;ZGJO<$!G)GpnqXjDMz!i z+?-AZKy+M-Wy%$@m~TV<*u}=KG+ipHvQM1rtO##}j!gRJKwGQ=vikL24>W=E4PaVL z8%^V^%OD>!U&YGX`9{_z=4PYnz*?54YSeU!cC9rEWbxE28nk|Iz-)%ErlpSRw4Lk7 z9ialdumQ$DlqY9rB;${Hw8O)t|IjcWYeevLl0ZAdw&w6{6sG>VPy)5xw$7(je zx`}IH!rA(9^E!}vtg5G*qO3WrrdsITGsKkkzZ#9@n;Z8VgGL=yoCqaaC_A6-jZ06^ zx{s@X2;oi0uHq9 zy3ALYd@?VL$L;uL>^*OxyhxnIWn^}GV68MZk^q!g#aQam@+K6CE6cOC7RB+PVO-fa z(%Bg%ncwy&L9ke<;1FIzF(4E-NPUzKz%Qd$++!MMgjj;av=jF>NZTvc8D=-HN?oehwAW~?YEC{j{Vp9QG%CQX4-UMs88>S|`D=Kh?q zC!?W<+<;Iu`%1TNHQ(QpF_0-daD-RX= zeGQ<6;~utEAGNK<#m1^@YNEQbNXt9UKqu~>yu$FoF?v;QOBR&x@3B|-!`#+0>B)U> z%6EfC_$2t+l*Di-T}UJ{V`7RFvl>4IXV@xT^9id2ppXeKEk}zkOy-<{r<{{#WO=0RIyu@T9rI?OQ zV*n$h{WehEXaZMOvCVq9Vkrf!+kAY#$p$Z=UW;X2@N(Us?OWKI^&b&}Wy%GF??JK8_ZcO zW?u8Md)B*Or@bCWiYtX@�s>Ri2?u&lKP9IEC(oUojd@UBm&REodUdfr+VHo0_IQ z`fhL|by#X->CZ>JzR@RWG{1Wb8<|v2I^o|qF#kJvch*ql{;D~gXuW?mR*-fJ+h46s z&GafiTt5UC9#emTE1&;)6syEG-ZM0|lyHmIYEQuH?zmiMrBHYy2&dKJ8Z~HW&H{A! zLzLr{s+3MuNS`b@)it}22hg)@F(JQm@D~52{j-)@D-HH>cgUt$ly;1b_hM&fsLd=R ze65D`k8wNsM3hX;%oa0+U=pS7GN403Lf{b)u)|a{neBm31hu!oYCKr?F6E~VPHjmZ z%l=U8ibh~#Xnv5tywF*|f%fuU+L+Y_=coHftf}^xP)6%?U=R0ppaZ`%EiR83yx*H% zvS80tEb6A2%l>7#Mf*JJd?b~XZ6f-WbbH<%;GBL;!~%tS|K$Q80jU@mEA7ZdrvtFj zmS*P6S?r##i&v$W^XR{aT#os@l`yNL`P*L~f8d9Uk_BafU#Q(zfBlsr^*7d58Mk%vETw1Ubx-a(+Mq|zr;2G6VV?z? zok;AiF`;!_v(h%4*4OdjuFh)mCppO}P&QJDTmF9fWbxfA)0qEw53qj##baq{xZfGv zwAs+*v(O;Ui*?EE^ZFR+Lv_yn2c>tQb-to9Ch!q1U94KIl=SuCY&02huFh+FTEr{G zXb|T9RI@Q>jLmiDDCW8k8cSJgq0!uI$Iol|-pyU+%y_Cwb8k*XRaZuwje+4?X{1WA zd?BEB>oXyOd9~J*$=I#a z>(sb6iaxK1MktemF9!SY?jsRT5;18Ej)@y(^S}VTp(>sd(C*C{+T22S8*kQaJeuB2 z>-d~J#zTi61*DNHlEup34HYWYbm&#hYLs#n$Y-_Z&RmqUCysYR_E`yFVoJ4l{*;-)`5UUIogPkTaHnSb7yq_p&5AD6?WmYiUm9wW0MMXvD zrxe!+`BQ2n03b{kuSki;_UyKn!eRpe0#Ckl2!ZN(11N5BiJb@7_Wf1Yz8#GQcbFjA zG`vkK2_3tttc3#yXqM)`X&>sD7!vu=K@Ycx3_dBkAv4jxsG*sv|F(fuER7KQ!#XXz z+vx|Xu7_ugRg5inY#>~+IU}AA7aDM7@%qZRdE#2&lcF0MEZyhdT6akr7{Aa?JDud{ zNUpD;YI9Ak1$W-3p*>!%pPHQWtFZNibZ=%xzb{NE)x{aVm(klHd)i&{omIQpPVe-b zWUc|W=8h$ZWXk6`2UdEN#!_24Oj@K*y7rKg2Q@PhTlITsA%=xG9O6kI8*!+j#V%H+Q}<`VCh5GNq*TC5a0uN)9;P}! zcxmQKVPJ){YZF75DC%ciMSf^A6~kE7>2jPaCqH~3O%^X!`0jMCPSa=QFUf!akA0Lh zWbOoN(#f4#I6U+EIXuHMbIKmdzkB&8%Xe~GoKe@*l-ahnF!Qh1AWG%? zVfuqNZ_`%@*I0Qq%eoKR-^&V1N~XVlh@BX1bq`B9=yR-Sv3s2wIwsv(`qahF!qOot z2Ylv`Ehy3k>Uq{g*?E#EC~bu$e-F;EnAxNg-KJQ>T==M_z3=*zH@jB4i{ncpB?gK? zU$p&Uq|$j8%k5u(a~2{WtB5XC|Lomd%*M?5RK8M2+4FCJ**lquncQ-9sA6b!y=2{s zj!d@G;r1Bk|KRK`gW~G8Fw7_=hr3&#kpuz+ceen+ElA@Mf&~xm?$Qvnp|J$_ z#;s|*ad&4 z?h9zrPuwvqHuC3ujWSxcusXa2^4StIGo6<*TCz4MlHiaH!<8~Zh zT>~S^MAhD-CAOct`uOw&408rt-^R*dA}mRaFT*YN=l;OE^o{%#*=*AFnN`LjT$*+^ z+Bw2S@U_Zm*LpLbBvrJ4lC79|;@(u?Z$p_|y-H#gm9>!6p^q zdS8}5Ja;+OS=YC6!y8&Kq9dGB=Nw|+LEkz%p3;*ox{AO|)wnq~uU@R*>mxr*1Z9-4 z80tB$!B;gRTon_sO7}~s9WLrk0e;tlg|OwhRwWNNw=T@Z%F(gv{Hl)Ket{j(k(HGX zc4nsr2P0}_jSWB-TjL=EC_pxA<(=$9uP@hYywbmF0kS(8U9XctwL9|;OFPDYD(KZZ}Z|X#x!?N}DTRSic_bp_aUCrt_~Hi}=)=dHd)##DoH?0C( zkc_=JKz-O$Ll37;=8sPJeb(7{6Y|Sb+gRsJoYpEhK_2bbaIvhmL8oyGD#Q8BK&(*q zUvX=6@tkbQjW6k9U#S_InTr>U45TGod9AIlEW!ENj@G9NcBA#{Eo<%yXI+_McnIkl zhJMUXPUarp7WVcE#tB6iQVkIQ8Gj*cSiGt%Exf4{tBk=1+1%pu#F48+_pDM5+{z&t2HDGmz| z3(#W)wqaqn>##XPw~ykw3Yt#sLE8L9dU~0x0$U~(bKPywB4vYkCn}j-TLKN1$NL|R z)1YV8&c=wG0h2oal(?FfUS$J4_dRPB$W$#Px`i2aFzIJ+c!6jZ@gfRLt;(_!b1GMi zvv64u-RSUL4vnL}MKIPx+20E?!*BN-Is$U>OMKCC$YDSkq!)8PKx_FN~rp80-R z4bmFaOeVP>PTJXQuA3J^bX>PhJ?>lt9Y;yY@Dv&1Q|}OUxin6fg$=fARvU|F*jv2a zTS@RUsDOIyA>9lQtdP~xz=7jiVy>i-!#1~8^!`MZ%0&(F3aJ6IiKd*ghd1_P@nO#0m zjt{^yRdlFhfI>jaex5p9;x=aM3tKTmN%PYyp@XAw^v$s9Q_L*k7E+lXvW)Z`Pa{oN z_n2N8$qW;eIi!^*5}Ikec80s2i{qp@>~C7Z;}QuqL_P#)>3GF*Ls0{RnTNkg}A?7eMDrPn`fgEeW1x%!Fyo$Q$X`~9=nEy^-`HPFo+OAo%MmX#x*f|-NwUNrKFB2w*FYM*D9J#pUo_H?q#I4niiBliH z3onj;p{BM*xa{i-X25fzGj0!*U*R84u;?cd9CH}mekqX`(9z!h{jT|Lo)r*9Wz5Xl zH!9t(Zx?;OPNI9Q(YfqM6ddg#8rL&r<(Rl}VUw~lY;lY)rGGcZ7;??RLS|J7mtHkZ@4-Ro{W90NyZ2S8puGTf{H8o*P@2El;JI}a1uDYIj zvEMgQE3pEdL_5Ym6>yu`^~Z=XJq!z!muO+oa<}ta2<&l2n%cuh4X) z=VlL06af$xIr?$VA^VD+^`n_uAo;LuX@diqjh{81N{POP9VZLuwN$f$+Mu5MR*Udf zp%Jg4pCy!7hCH|OwkUNs_PBFfka1qB>-|@Y{wA|&RgNTO);Z62VOUn`cl4J2Sv~r+ zhq8y3AA#Tj1YzAUxown>gp)cb?eEYx#3YY4PWekn6A<~;@NGxqwPH4%?)p$YTuw&p z1}jr-5L;NNOYlI4JLZKJxnj&GttQ$P^IkN+x%Bq6v;^9#TE5hE{oLbxc6{PIUSQ@+ zg>3KWpzeWdw}I%~xz)0=k(QK9T8#L|h^a=6Y57eOTb-Dnu`Ke%_-IXYO@uYB3}4oD z^JQ5(n!!8O&C-(lQN_Iq@BFy0FW_xD=3G7+U!dI)U$?pokf}Y&wY>g$P@nt8_}a05 zPSVDCtqkT4DIsIaSKr2WMWe11531z z#?Dt#Xe5pvG9}4f{G8b;0Io z;c`t*2gKoTXueU?qKKnAbw%xo`Ek=Hp+ppWYg}q*xES)BSy=CyPwS4>2)f>67L@pW zy1e}P>+=m0PaYm~yFOUbY&(oPQWB}ZP8XHh!|QBkp+=VG6lDI%^19!gS3)!`e(F;~ zKG%Y3uL~}*IR9!D4TvNSUdT-MCS|U?L@`sGev)|0YbtxQz@Z$j8QW6vLR)LB9Q%3GCnMJ*g9iE$+qoAMOj{4ZPwy7}>1q>t zE;1QS8$jBejC@;LlDs^a28GgHk$^VGYouNgs!aQH!>BdhU2qu_^mUP0~0j~g(~u*ha(@Z0-3U;QL?8&8-?`ouP_aYH%JIs z2k-9E&NiIroMiTw&D086!`Tye5_^B>5;TG&+kOdO9G3P16(Q~eY3z!!Cc{+`!!sWo)7Ojggj+~EJq1xT78Jy+&28I-yg7uqP| zEKK|22xyBo&*dSBgmf7~#A$3Q9@Pd6T{>x>1p!`dM$ay3&wt^(kJxce{}o! zM8V2aRkOfeL`P?CE6!q^g@Cs{l)y-B!aaMedcL-tgzm9rq&tAHZI{mr)NOooOS*49 zSvrbi$bGmzOVg zDd3C|0341}Q(n05_T15>_pCNHHQk6LL!r=`nwo+FI)5TbqF5mGtuSf>W&p1j+x0!f zaU^t7A-a*!kcuX0n3TAk<`|U3jh#Z&=yF!wJ6q|e)>C_kkp}oKxUbIO7oPi`AK$$+ z^gX|hP_jH2DvKyNJ+axn8TS3%45uxdhT}X4S1Mkh{(yg5$aS#39B?`>Eoe3?TaTX8 z@2Nf6A*`}AG*yY6kGsjkKc}H-_6X|_+$@$~`1a$K+SFcjpL0jmvHf)6Y5Q5BZ3O+- zZG7=Jv9VE-eSBDkq&k3B?(Xts zfClaj%9V0`#Zs=mANa|TVZKx!2J_=FLwMq`B=DRW9v(4>M$Y$NCyT=sGm>TcU?Sl( z!BXq|Ne+KV$t^G|#?+BD7xGQ`|lGfmMyGbE2Hu?l-YZF?K+=`HT78*09) zNXt`MJa=4!>kWYeG>kWd24k)Uw_a_WavMwD~rV`?X2M zsM~lVaKG(uBhrzh3Ww*yaZA9t#G5 zyBj`$kZ^Q#1Wv#J-bizpyUA_=3r|%IUA%sr{XF}}j@eqDL1l?^{VUN?=4n}GN{fWR zz-LIfLjKt(c|$ePB6Z6PXA zrY@a-c+W?KtueAgY|~H?IjFTUQEfR&ZQy%4YmxObh-0t7-p=<5m2`P|i7R@UZHEBl zNL~McNQz8e5eI9Jy|ej27A?#&d@MZDq9J2mH|Hgpxgu6+Tm7)cy4MQ8UI{sqN$*0kV7J=R=bN!87p(SBG~-<2&|PznzFm?|wM6k|Pp3@~P@<8n<_La4Cefb#!D5 zV|grw*VfnXfook~Utgo!nr{SNI-a;IS`lF&eV7et@wVNlB#mOZ4T(&f2zcFgGM)8s zS#<2%k*XFk?}beYvPy0{6a=?J%H^XMPTM$Ik*|&B-=!17cV)YW=d-5`{wDTpR#sIW30_;GH5N z(J`7Qty7-l8r{EoR1Sf>o_X9HR;!yJPEQbyI&(?@TCXshsUpqxe6{#6S_~_c#VX5E zH8b6;d$ucE#R^aT+>lMHhL|pOOI)OW`v5s>jWMotfNZeuSkPe6M$2M*JDM3l*`66I zPcNsSfUGh__mIKIkOYJIBBcTK8w3I0FZawXI> z9~v%$<3KbhX>#GxpuayN1qd4yD8Wfa0EZ@epKyHl8^=IQ(2z|nhyJg$ZJT=R=gOXO zydL3ziz?|0FMuTdu%W}^kpp>^-Ds^B9J8|8*(z*-H8kGnI{^&u^MC1lr%}5MwtTA% zc0#5J%Nq=U8756|7~FUxW7s|EeT2Ec6w%Mc&CjKpux`|p%F=Z3W;^wJbNVhfA6(rs za2pWp4xePpumbY7`NY8qC4Kaz~0fgwEec6}$KW%r{neZnh9X-@sAZu=3k&HnN(zX92>j6@I%ci7kg zP65H#q>5Rh3QIx7m6hHJn`8YK#I7w3dpiQxHEy zc#kJoDs&G4t<+{slq~@MVyTq3D5XDnGd`@z2H6tX*eLjGnrEdfAYoF?;zThes!uE3WS3N^L_}*D= z&I#fR#SQU)9<7ztkqFQ)$stLG?mSFMI~U=e@_L&SX&@E69`5e|k@RIVBkUjr09P+0 zpIoFJs%}1M0_sE!HUX+Za(kjg?c>L1R{nsRX<=(ye)DYg@Bh2iD*p1>lPA&A21aT+ zIu=W0GqYCfh%q%rF1lp#8rPHIXfQOcib*F3#m7w$)W=iz z%lQI(YmBZTBjDvuioH?NM@!iKQy#J!wc72~b-2NLMs0MtWuqWgOQx zAYpvSDh$IK{|_gvRfD;kEMEwyxa{szfbw_aI%duJ77K|h`YfBkv`YJl|8D@9{9DK8 zu0E-?s+bYh6mOt!ptPDcTaUdx$}%$^ z-qCD?F z`Od${12bxs?PpR;iGN|m>2_D#4gbUGO|(Num&NUQk3~!Q48(X|8@Sxj+T+-n zy+wAz(~d2)o9r0O#kVs<(_Q^P*voq5MEoo-hQ;y{hX!G(bzhfHTcd&-ivLfEt?PA` z_UV+CMf|<>3M_C$&I{d@mbU4(9MGXv-Z zKn$)Jus~6V9W(;I^Jn$7`}C!bztKsxBEiM?J3ZvH*s_pB;2HC3&A}r4OiWE|d_t5m z1nG7cYxmJG5Y(SH^WBQhHVnf-9>O`g5`Sj{`oC2X5o_~DnA|7R3}?{KV%g_pk~0=7 z$`-Q6TQk-PVSoRiURZAPd|4MON83+D!}%Md2`sX?8#Hu1SSeI9uJ|3y8NB^9H(=R}SkeiXfP(!sr)mAqE6tsdl@8I6eQ#JNvfTKeqe+l?>%y;4Hdr?{bAu$x9>~e8Y0E zo3E(jxsIrk5EFwOdO5g?y~gzTd&_NDZ@#g&+|*SHHLMT7HOc$STk?9)>uNdAp}ib! zb3fGZ`glB-gG&|ux5L3wdyR9OHtByteqse~`B3q5`JfAfnQh#Zz#Fi16;*bet z=~>L!ZwF(KBaV`J*Zx8(%_`6LuG<7_U{0e+Vnbf5BOIbYBe8Qw{tXo~RAUK{+wUrf z=WIb!$~szTQ0AH71JbZl0n`;qF$``kg~PMrmmkaYSxUUeG=MFAg=v@>rZM-TVeQI2 z3~$wsW|_`zxMxdP4nC6O08hS^!c}^$+W|mqa;FmlIY7-uZ6y?2Y3HEdWR9{wivH*>#5dDBH|5^_}Yr zS6blpV51y*|9NZ0W=s6{TXN*MrrM3P$ET#U=?*9&6n!lxI{~f8X|GtL* z9YZhv7Oebdd^7(S`TNg@_dMc%8S0TYeENdFP)h}Gs#d1(Nx~i0cNg=TvNA#+2Z%p1 zBvH`VuIebl+p+aJ!>~H|EZ@X+=DG4`v!;(bM6^X>4zZZ3o9NDX4cIW!vG&#q@i9eD zRyY^oD2jKJKW7em6O}0+qwR`?eO~)z@oZ~K*4ZRFqhDF*c`zC*jqAmu+V`cY-%p*< z&kYzS=hMY=xCF&PxNS?HjnE(O>n+obm6BLjQXp?F(1t+X$BzWoBTM?Pw`-q@Q4aFi zURpP^S`Yt6s_3+M`4u-PLwSbWM@cci9!ES`bniKl-jrW0t2)^K$qW|Rr5T;Ke z4_b?@)Q@*8pmwdl_XOR@eFd0OFDMToP_}S{W2i1$ipq&F1s$m&WC*C%jc>jca zyDA=0)O2pC&NTnR%=u+ZWs4${3PUa3_ws^|;W>9sP)0`8ucOrhrpO29RjAml4%x^* zmZqi%l?mQD=B=g5GT(+ZVFYqPXgNAd=~!B?_RI-i)vQjVj=Pj93qFa0_qY4u*j_<; zv$iJwtSZ`gF%Lpzzlv*{h8NF#b{-M99S z+8j;4G7AYUADzKrheI&sEHX$Y_WB;W%>reku)V{t@4dQoXf=(h)0>6Yr^|kz9>*~*x7ZX zY`O~gw!;Rtbh_wPNb4-|8)pU05?mOF^qh;Ld>ER=e7;!fy$;ANiO}KmIXo0hGp#m@ zzIIn_U`I-|f_(H3&I#q`X8`^eEA6)cHC%w#aKc5a?%1Y?-)ABq!|ChzMcOKDv=D(M zvud8pn#+hW*5gg9wJTi4SkMETUdCEK})($ zDSjQ8cN*WYkF9lKiF^Zej;h;W+`~Hjx5}YH4-@BY9Bagv*ars(pSwqu-nHBv_+0KpcNP)yz18*v?{6R2cAMVcNGt`cTlaJ9B9r=0_m(B$!p_Iy_T+MF z6IEVrV$!dP*ocjocx|+_%J}C`%bTmibR#2wmJYUh7kr}Ly@xsc5jzsp!U!9Px5tr> ze8&!O~TIR1g zsjL?7%1+N-^Zi8z0^JqIh3D!b|0ugr*F(d&e``~Yq%!j{nidXO1j|(FJNN4#mzOU5 zp6Zx}mNJZ3{5{CFr#I1;Yx%4ixJoch_Bh(E!m&M1`P5=D zXR)_{n%=6^=_cgv-a3%3V%;c^E<{0!8yjqVux{$CkW37I2vR*Mg1N@$r`tp(;k*a` z*26wpBFJSA74#^P9d~U=`eswy)H161P~&tHtStVtMj`Q*ttKi+h1rd9S+t;_YUp^Q2MPGr>ra||k&Gy^oAl0?r@wKe^ zW+Cn=GkfLee`M{(x|Pg1W?lKEa|`eiWQRC$eKvLoYS6B=9k=l9?8XYwhv=psX3xeo zQwH|uPaeK#6zfc&$z(*JxQ-BD%-}1;(O0jN?axB6M(rOsbQZvJ+FvJbK8j+wN)Sem z9!8QgSJ*YDs%Yz1IQ<%1Gv7$mA{J`WPD$e`sNw?oi4K!bcK1V>Mfhl-&Go^aY=XyTGDq;*1vaADquK&*rEPLD2Y(k^=4zQ>hA0wK!jGndzdT87Hi%2 z$1EmhH+?jP7@EDDt`HV?}jPw z3^<$cvl%uREb|1u9zod&So@^dw?AkWxh5}q)mGDQ%sYgOX*Zmy)&9&cvxZ8tth~=>M8CdVNbDX?*(OsZXzyYSZ`9?FhLpY@w*y7rdn>G23K05hJrC;Q zK7M&R(*1>jPRm9_fuI^TP?ePbT~P$~Y*K18x;slIKFH0Cc@115GrgJqkDn1uWI69a zXD~tAY#J`s*^pAGLO&kMm*W9PixT<_1~@0 z_Xr`M;;~tD(5idexL|RzNIG7Fs5Kb-8BG{rYeAQ-#%qS&db{KovMuCO%}~%#SW*AZ zcbqn45bR8NAk%2ix3Z&P6k%;)hwvJPw>`YetAUL0bM_`MC^jXRg^$$gI(o|1=YJ?+ zQ;_ScEJ?7b<6}yynB+u)>iGzG$@I9yjw^Q-c>E&aW${1c@O;yj4PbW5v0^LL*6OLp zdAKQMi&kLc)8Q{QF)T{vYl(>)WO{_l+EoY8&B5=?eEwSKK|8zaUyPZDhg%IbOGecV z8)JPk?Dot}7aIf8=-Q6^Cv#V@4(yPFaURNO^r2)(aH1MMmHZicn* z)z+FMZqF`gQ*&z=Dn@QC_7vG!Ia-`H5i)zFa0-w!Rm*i|_hM;T(J%oi*ua|;@+V-KdQ|338%NJ`!MXzh8x)6;(vG#wRCi7W zW)n99A4EM*Bg{sYqliFN{fw`Xi3vpl$*nJBq?4fjbucqpeJnf35#A~!i>>GRt_G&4 z?}X}wI=p3YxH9U%u1|pyXoo~rMl6vYjA=WQOEt?SscB@a3{^v=V3JU{=drt z#LY;Pub#gv&MzTSBhXDK7ZuxI0SCBdh)dEx{kL_$x z13S=8+V||n&9qsb)pO{<4o+F~2D&y*@1JP!aQ)<;O0PkJ zS;iD2ChAoX^rnY4P;VSctZVXtKhW+9+6`}J?#+F*bWu_6wDGN%I^Nc86b~}IFr-tD zDJwG|Rn&2{*YQv=SVxr=;PYsKFi-gRGb;!Ot665d=uBknT|anaq=e^rkj6>-u@ua? zQgW?F`hS=rBSCQgQu};UFNOWa>dwd0CV%eit)T1W(q~d+tY!ubxJ)Zmj*>Y3B|Nl| z<`NrBHQa|&$yLd{6OKe5=rY_{P!%~T%l>-DS0;ANNa2U5!H($V9eiQS8g5FQ>~Tr~ zT==Ju(uvhk8Mhu&^~~P+x(xCHY92Pp+?WYX!(oE7tMiwHQ-(4!mD4|L`p4Omjv(Hk zIrVkAd!L40^WWuWHJ*Y;I;?m_03>|1##VWK+Hu37o+$cdU+gS0%_K$ed1UIz2M4dG z%yO0+v(BH~`Em+lZx{7E#BTda~GE4z;a1cIYeI^-m;Y{8qsb)&kI4XQ714%rQWd5T1{P02G<)a zTiWKpJCBev+s8WufF%pq@(m^s5`K5Q_H%YYy`u!t_{`*J{0L{4gj~8Cujw7cE>0`i zC1rYRoXP2A(>R`Rr}^72>JaOO0bd zd!PFa9iSPkIhbwPIYf~$FknV zy6^@+x4b{i>r{NOKk>Scyz3|-7^`MsaJ{`eyD);6mESC0`kN?_oWM*Q#@-CA8 zf>&th_wPp*=~}o!ee3Se-FY5l6`Iv`57J&`Db}RETKiaJgT43tcF<4A{aka@I0 z{)LZk-y)tz-Z>fecUh%fki$rfb?G#$@Cl~hn3Q3qJfM+E?TgykUZGv|am?%m2!;8I zq`Nof<_XbhS)J)39wk-#Fhu2BXy~iZZ%iWsx1ISVrCLJQ@%wRy*S<4N^^XCE+;=P{CK;xX z`p{pyT!;d$gxD+nHbhFHvrtHf^AYtOvig6yfTLO-*hQ{54_D3UF)(lL$AZFi&v1BJIzT_m`Z0^0?#ms_!NRq7CSm|!3+8H!@-D+umbSS1$L&Uuzz;V@A z)zT&SF{#^Br7%V~+ab1PS*SwfO;POYv~u1pyxk#Me73Y5ij@u|f#0!w%4`9P(^D-! zqvh2#D}3gp9*^dwNbBDpK2BpS*8*i2hq5_ecQaVA-zHTgF(s2x#M#gJ3@aI7pVh;Z zEN=R}3cucd_j%UDL1!q)&`QgN>nOl?u(`uNlM$QhSSYM8Uzk@JIg;G9e4>ptKCITJ z$Iah)l?lp+<=uu1(v_+|fuIF#tZZ8j%d`;sF`x8fNEIha z)$wQyjq1!2%-9C{MBcP8XGf-t6%0kq@K~_xZA>J)U){WXi%*~AFxK65h0Ll~xM*$C zo;;hN!OfK8t<#Zwruz~jq04@J6t3CGb}tW@v3*#=%!MoD3j0sdid(n5rB-A5_0W&;cQmQPC@jnd9Hf~jj?hTYGt(80@bhV&PKZ= zn$9xoPGn0?MHgwAx*z{pn2%j+8MSb3aJ3tH{)DIUT(Nn_swpayh12N-Jc0t_KNV0S zqPa@AJgt`98Zxml)r{DgcI#gEbJD25O=FRwG=X5$MV6I8Qm*^|m~M>ou2<9(+G$5Z z>20-e1y~GcVzmMG zUW&z9NSvd>a8N^eS{L&`CE3klG9Xdd4)c1?%nxizlxyU0&IBvo?=|xEq5BFY!q2hJ z1+2E`1BUotzOZItd3S%}pk?X3_}+p3u{+wonZ#!1T3H##_Vb_t*L*Eq@Xod^>sL>^ zk4hk!i50l7V6wJ;k-EC!+;v}WmQwu8Wy6t&f&xpeY@>L===|Vl@%m$bdo{ z*t-{(Xf6oXg~W&fuA*Z`S91Np?qGcJnr*&@rnqhQwK1c6;VeCtB(0)7K%Thn&=JSA zz{6`j>sWU>l5^S-hdMjgackfcsjDFx1a*^7Qd>P$8|*|3*tEex1$@GKL}mQuxYjMD z>dX_&^RJ%PD(Xh6dW!7zR$!Oa8!YQVG0)w8fvp!=)PFiIg>LEW4tK&-;;@0`#DvBb6$n3^ZVkxyMETb9 zigQ_-t|B=GOE+h>pBqs&=#TzWITVhBUe`=o*mx}556_1Tf!m|8A(%mZQ!RT75!VqB z-iZ>**>>aT@5R2`re(jk&@lF_pBQ2Jopkf9FD7J74>GtZnhYk|SG% zL?y+$EGn-RgdDN&&h4XeEwoM5c~H8)@KqYVstmqCgh#mB-F7=L+k)(_LhkhEz81q= zhUdPsi3oEv_x$3B`l8W$w)l@#q(qm~7OTKPJ^d4d=Jv042XreWsu3WUQ%*aK`Qlu| z8bbK)BK=;7Ob+{cw|C7sjbDQ;-*t^nB^0`d9_c-3O<3C7B#77cm zvwt^-o>nv1)XKG*aj(hylr-y?jPv4A$<;|-D}~)Ndd-F9EHe6xZlB9#QhO|e2T z5&`}BldT`q^giI?kA8F6hac_q=Wc#5qUozeyRu`6qh1E??+MTFR>VMzq%C|F#Et8$ zNQI1-Lku*eiGsaSFrN`th%6wOj>vf)YN{v(L*R5HFlB94e}`{Gaozm3c(1(6jQN9x z`D<};>Wju_$!?;2*Drh#IU}3$Idz|O-trYme}XER#y?vc9SH%{fcN1axeniQo;^(i za^&?^F7?0rLA7qhA%aPgHiJ`ve-7?ESIz*w?9RDPoaL7t(HwH|Pv_6kOO4p|+jS@@ zA~0j1{PiV>n3Ug#>9addsvsgeZLqW`sqVcWL&s5MvgklQ!x7n%xd+eJywpo2ofEgV zJ_|*o1}B5Anq#c3?Sn7frYe+zTH}SQBYiyhcI5I7=Dhe7(hs5IAYISY6J@pKNeKd% zO)+~ks6nLJ#XkZyeh$W#{8SS3L;ScuL1$;qysbJ1!;L$?ptdOsisC{+oVVS+*L6PA zGp87MMh+kzHN}T2)=)FhKw68v+EB9>cGg;-g9E(CX*a-#(xUvUi$g~~XF2GcasXd% zzCOQ13%(pT-?&G1S-kvmL|?`73F5p`!N5|pw9$t;e6hRHN4e-9j_~d_OAN#yi}!Hh zw?8r#!?f#iDeHDVPo8*ZD3I7}sa_8Mp&@dp+jpw?X1}vK=hBr+f~X@s9DXCqkf1k> zbA8`!3ENrwsbh3>>_L9*iF`57D37;6ad7YA^!s$2i>TVh%DiIl>G!9|zzFH#$?8bE zr__ZbU-s(-IE-Cd3$z|y9$f3foWJ&app-3xyX|P!eI*C7VP|JI0>2748{3y&h7;)# z95;6$9r9Uu`4=m0It8iyq5FC7`FI_Po36k0wT@ru(ugq-h7)nRF6b*PwY7cW!V(D? zyn2@(z!oWMp%92z|a2=>E`?2l9vCBY~sJ> zW&a)jzZ9ZRfK=ZZY6A+vaea}&x#|KQk3VimxW8tKBVv%H{G|$B@h>heyBLHtzq6S6 z3}sT$aXS8lvQmi)*@9Lt`RiHv(h92hQ7FZ~`rl=^oADw@T=_zaoI9`4$I8b`2yhM5 zGl`(yljp_FUf=n15I5niGonQ`eBr|SS6c}I7WSbK8a6qP`SY$F90pA$KpXqdXl72e z0$2ol?M%WfcB+r6Z!@$zc!=iHX%udqQ9nlW$i<~E(xG&PAF0}4UWdtGNAQ`nXx5mA zq{%I%Gg6!Z4)ka|{I!J{rGITdT12Cn&J@39n|u^3(bm;;jGuqJ@_jUbT&gk>(p<+E zq;D_mIeL8dbngJl5q63gh=}W#TOoue?-B~l*v&8uC?)m1d|h-m#^dt!p+Ik4K4ppU zS_MV@ znTv#VSfy(>*mUVXWCoC5D`YkE)!j;6Ibaz!HdWn@iV%^HB^bFc#SLfmXib>;a!DDH zs(7DWexDr&+caX|d_JBV*C}@W-%}p}XrbRx#(TTJITRxMlEUQFOv~O;3_men#d4fG z7mQ&TQ}FZ_r1?qEW-;9VuF7t6o~c5R{7w}$S~TD-6-~bVzD z-kK|pB_)_=??JiC-N_^|ICK zN)eRH8$*Si`q&Ur#<^y2c_HzQJXSJMAn;K-uQ_rB_kutOJN**%zNRxWX5dUA04!Z8 zFXS$@&-2*@-Tb@?I~ikXzUzMvyT^;g-;&C#dr z^7&jvJZZYm($J!`-|?C34?ZSO?r*>4rmj67A?Ju&UEbR6)c8RltE!RA_}V3-`f%{i zB#URte-|4-j`H8k_uzKJJXvBD^`Q^b={-(fGxaUBs%~Ceabtn*hQT40VI8&!7oM8m z?IPug9|W4$7W6n%kpvf=1**?WfVB0>J!x4e#ttK1h{7Es+wo4uVsjx&q>b3;{y_qN zJ`^|*5G*0nQ-!GHgvsOX092YlLM5CX6$ZjhHxqGL@0_{Xapkyizu<1KJxc-koqvQg zVAK8Y0WYC!D*VaSmhh}4sc{dev9e|>sK@YUWboW747`Frme2fZ&$GRnh@M_(?WYMg z{Mo%fkEhqO6mx86gNtqOdif8HQh-gl($HUns_w{%Xb1bQ(lN1DT9cdA!YUc+`b7g< z&%D>kcaDYx@Gyb4;&cbEb{*|n4%H`xKb6p`s+>^+z|@y zFVrD$RB4Lp-kWP=D2!Tuy=~?r{kf+WXLr8?qNKzU&yueLli!P;aFPTMhT+~yb1eMS zrY92maXP@GO^>q-ONa0>RH-so4$jmY-&CMe;>$t9ayi#sOgw$(j+yX;;4^PBI8bS6 ze43p!|NB1y@&NHW>enFBW%TX%EJJU)qqDAQji&w8eQ)ot;&c2?e!L}OhsOlx?)C>9sUm-9O^j%-%p8RR!nx4jj!nA{i2iZ;hN zS|)bO;6CsZNg0hXihS^vhDk<;`cIYL9ANa6EdE@m?^oNIs_3gpe+T~bN=9FFBm5}q z0PaNb>&tiC(&_(A;M$M)jx7U6ig2Dz0Ko^~ZQURwgVY;(q(Lx&Yzh zZ$xYVH>l;m_q4e^^P0Z)YU=+2i3I)MAdw+({0w2xfgn&sQ3Vh>{~1eS5`fvzf5-m= z5&8df&TtvKWyA-F!Z3h{Op%v*lsyTwk^`F36c!fB)5ihanW%z>>O^Lom1JFini?Z7 ze_LdYQIawxx*GdQOq)_^`0Bl|iwtV6C9Tq#R00FIHSRjKVX3(jabD*}rBe&(AOCV9 zY4xI18A3uB6dt&h3Db#&Ld`seTSQ#danH9mAJwY=Wlamfv$M0_qKiNyj^Dq(J$hd@ zIx>}=px-sqyDR5mVHgIw7FJfFwK&;z zqj!@#_ve4F&Ep$zkEl}jiuo)mG+8u+0OaL+xR)sD3N@&4r3_M~HGn@CQXyA|?Q_yH zi|6H~{Wa6#Ovr3|{UR7Ax%&Dt!5aJTJ^Lpt2l9{%wmR+(PtE5fRl`Fum z2X5Y8CgQ`;`-~@aKYpbK(-VVJhVX*BO4?e->w0GR`edIxf*aP98EY9B>}_rWepGeb z{QSei!&7u_fFon5@{0u7f~`$%fv5g;@TKQ+EY6s%w>P^%xhnqqc7qhh1tC-2MF*s! ze<84x5rY9n{5wg7q{dOpdH#LmVzNm#I|-DN>s~&#)(v-GLeuPMNC@lgqCXI5P3=Ab zrN{@vz>gp)`&d9r$j3`5pJza`#E!(MggWjoHja4sxd1zojnKgXZHn#DqK-3fH|;<%Ql@rETXciXys)|seM zL*=7gfDn2k;w|ZXaZk2ggD)y;=CY|?y#GyZt}BJY5QhrcgAcg@m$7@2tE+gSeU|L_ zD!hwsW14GlUPAoN0P<|tkMwKk#lRB!2$#j) zlusP!#;`t8f(6l=W+z7uVvjge0_GG_d}}0v@APa|NJ^RMNZJdmC$Z~*#PmB4_PT7% zAuhM0ms@X^Oa?8tJJuV+?dt^h^B^-7izOU&t&nn#GLH#oeyoo>v#8j1GOT0tLl$C zdfe)A`S*(CWBtr;D%2H|xbmJTII09_eQ+jo`MX;#wW+O}ZG`Wvkr`O_WXHj3?JyS} zya!TPs}lQ0O5>UN2DnU?FT&~1&N=Dmj=cD7?cIm^^B{4Dp6#s)2m=2SP+U}ZC#p$a zZ?U2!1ex)iC_}q$Del0vhiHHaA1JF3z)XRi?%+~C*=?w1X-e{LzTD`r(r~jY2>Ec7 zkY8KAvmyjmbZVE3UN9yXu_aDHBn|3SA8n$T`66>w%B;*k;E5UWTe$zo17IbXuk~5a zNh^{-i*_3MSVi)_5}aRX#25KWsIf`=n3t|-${V(X5HmR;WrU^i*9Ds)J;oS}yg74g zXpHnSy*Hsoa=Q;#HHYn6$pcdkzB`+f5dN(LY;?;y;h4H0Xw3e)lwRE7G{>R?WSbve z#DXWl4@8g|g@(+-L(KV{wjSO%k{W457d^2lCj#`ER$G8QACnq4!o5xOq3CQJ!aiGnP=TEDhvt=AFq++@`n8jw~^U^G5m7%cDws$*Ehz3Q_u#a<-==XGQ zheO03)CzJ&w{!`X1p}iVjzc&?nj9H*J;3K%XOzu#mVW-}Ql=wVlI&D1>7~O7XNM$+ z@l5KfRplMn2;pEqdPu2(2En_h}V z?U_#fgsql|4Zn5S6CMgJgzs$IRM;9_Z{hZDAs7BgVjKP+oV{gKTU*%gTiJ!S6lifN zP`pTy;@+ag3u$mE?oNV3DelFgxEFUz(BkeILhzu$-A=l@-*Lw|W85+BJoFf_F18@wvkG_m-5j9XyW_G2b+WVw|!Qr7twm%%Z}<#cIPjcE;Q^w$|INe^x-^kATMSs6F2Bt~QrbW=|ZBO(?xzUi~PlhF#!&vjWrA ztizv9MQ7f;O4OSd;cF1xE?$Qz<;Js2bz!QP%{t3XuTO}C1Wd)NpN}{)%PF;}eTFqu zZ+~xX)xMj^8m|NRg!ZwPmktWv!Jk5pbP;89giek5l|I6XQ^{gDK>n!fOYz}DyB-&Z zn$y$c3hGALWVa`vD;n;p5QmUCRaoR++G|OY2ag|Ql1^BD!H%C9M%}t?&G@L1YF}Yo z+ndnO4BKiSCw8vy4JG#HsyayN-6ZrW#UuIbgw?$4FkSkKvQPYkxFB|N19BoQbm1=7 z!irvVwX_Itl4Nti-5{Pj4ac9@W^5+Eo%vkqxM?-d9=X0ThlZ}Yf+MUH6 zOAFW`dLeFik(*J$!0x?zqkJ|A(rUPOjQ^sV?sZmBZ(VkKHiwDmlI1=MU8vp>y*$gF z>jfd@EsKs<`4sCEuf2Toiw+-{5DIXLd7eyZnwAHss54txg{t1^oIsZIBAiTZn&$bB z0@Z-(ZlHaLllRW}QT6@h84tchy7s;;?`fY*B;jVcJETb|hTMxkV(V!B8xFc%^w6Qw zKf@0&bNJduE*L*UZY=A)+XmW`xeMt>2_j=d(%`JKTD8ghna{99eeCQj!Z^d^_#C&! znsX$`izHcNSx`*!0Oe!SLp8~a589%uD8$w}6Xt!(53^a9?wVz<`4p!Y3NY-9E7R7< z-5r5-;MDU8@U67Z$=r2RB_U`mq*Y0WI;~(Nnc$VRUFUm_Q?iq>g+pDKaZf7rr+SRr z$-~-#?NBMU)@*jWz;Cf4^2@R}Cx;&!Ue9c>rr;U&nH<{)o@5Ak z{J`#$RVp^JkAPv{E#>sghN|g#iCm6|s4KXST$<|nsM9jU+D$ktLFE^*RLyRhk)BfP zr#@$Qy4H&x8`-iCZTM4p)8Rc{S0C+S^V!I@S>#vGZgfqjtfu*}^qgLiko)nj~CXJ#HfX zXNl1F-!#Yr=FF!}9Wu`6RlK%?HE$KtlfABo;WxVT2dB-GuVARy4d)ptU2LAb8Mbv} z69y^-C5TC8{`AgdEOh}s|1@I%SVUGgHCjc-Xq$M`(!?PL!3Wvdv^$Gv;q*Bf9FD3b zwCSj2nTrR3ww<8fOhPuZUt-jLs(fZDV`VPwQ`hY)HWg|?ePw`fMop9%c~~7cFlU!j zB!WsSrboRpi%rN;5j7E}>#*S=!EH%B2Pu=sGCohiWlBV*`Sm!ymRqYxTc=IQ@u?

    $3P4x%%-wf`S6c-XJ?Jh=_7@xG*8DQwN6hzHuNMr=0}6CXeC z`R&w+YbL|}?hRRe=7f>8R7MgoH_v#6FR9Z;PxV7Hr;1j*Zee_g6IZn*4-=_jdUb27 z$%HUjB7)&p7_N}6cyN`TmZtzTeSf~O8Xi$h6flH@fOd>ecM#~D9xbm{0)@ws^*-0y zL7B?C3mz`D3q*uoCB`=->7wNWUprq^Aqmy&nioaQ|iF_R&jQ$webbY3q zQz*A^2tTsplPMqwc{VfHomX0@py=}%X`>(^L6qj*N+(bIN`8%*H)F&QZf2qg>d&yE zZM|JD_i?1EB(#z6@>8WRA68cUK}>pg9T0B1jzSrC1E%HH3JT5!^Gko}@*2n< z{bkLD^nNE*%UoMkCoO04Jbd3tV3e7DCiXt`#(HkUC~7`bx-?;0mauBRNxmR1xt=Nr z@GT?k1FV5Cux)Kx?X9!mz^AXD;x}i2vh>(BLg&6pIVn#gg0*y5rtyffJ~LTUp4Ul? zGJ?~ap-J~==jfi|=e|Zcz7E%N2v}jf>oW#?bc<<=oR{O>3D_vNKPKB#g!s%$9 zkD`00+OI%iwlE7aZo{pW`fGOtoEfNlgrpQK)niTA>8Ynz-20k0juB8*Y4Rg0i`s87 zQyzz~egn@&H|+qGfwhP=D~@dfPh(t~A`^!smu;uw%BX*563tMeMk z`M~VSO*_#GWA-iX)p~u#lcTy7m7?mA`-9S&39cU#LwTmFR&> zo#Jw(RiHN-dMl}iSstT)DF2hrXzG{fs?R{YSa;RY0vvE9DVhH%-TYlzXh-$6Kf9p% zNAxEwbFNrf`4dwChJxq)P;ffRrr`y%l&&^_C3c`zSqpDyey$O_^*vAHl6zOg81rPK zhZx0_)zZQqWA>`5JaCb=Ai^uWv?6UGRe^hsn4MU^bq@cBnkOpA1@k-uvatq)ayyQR@f{K~sxZ~ipb|55B&4wVrLB%|6NeXH9?!x?>F zcooNsERT%TTj$>tF}Zn9xFQYQq?BY%RHdnEj&W)L+X0y0f zjPuv^9(^h%uHBcrrgSx%+%>HhW6@LkH$T5HS^er2KEAHn&n_;Eh`;A&uz3`8!u2lv z&h$)uOaQO3gl4rf;gaem#%Nc}yu!hCakwf5qDD@J`<=jp>Fg^quI&nA>gjeN5Ox|VimrwM3U$l)7 z$Y@$y+fW>9#QU>^9U_=Gk2q|eXTI}pwKG%3EaoLbW5yIwglnrsB1c^(?0l(Bs+a%N z^RY%nJ0ZidX~r^ecE8fDrMN|1ol)JjCEJ~z+K|6DH!cTnQcH>&zOzm*x@mqR@R(uW@e5snLUhSHS=fJS94klbW_zQ?|t?lSJ zz+_iKL(rUpAd#St1*%Nkumepe#I{ia#9iFXEIPVU;+z!bs6Z>~>Y~9n5`<0jv3`mk zT&EVOF!Sw!uAW(N(;s~%bQrhc>@|;M+~p4D!#cIIGn}$4uCt6Pu_mmLLKs=5{Dj&YK^CRKGC+23UsyY z>K#3pgO-ucfnV1fA3pFqmJh0_=Ozl?^<%hGT>wv-4KUUlslFIYb@#3?)UzL|ll8U< zS9mR`c&p20twlv!)FPu1>f2knGgvP6+?M~wLf_1Y)`(@~K>0qdCWYVX2huUVI|+pH9h4sMWK=b-cGue7In8a z0qS(tSEgQ*jsC&`qdcx_Cv&tCteTGS7%s53bG34aU=Mk#ZDH5dvtqZ5Qu1U0vy*KF zalEVaJ&w`RH;c}TXhzh@DJod_ygnHKhP{JxBlek&K71oGM(YKN-JVQ%nKj>@!2tOR z)DIqv5O#ICjKcOWv4rMHxTq?gc6c8giOpjRk$W&f(NOsn{K>JQ7)|fx-a~)Gmhxuw z*?J}G#;3Xle~8>O`n9#sTh&1eru8g(XDGhLnrp6%T{MrY5*tOs51wZ7#&ujb?Bdo5@L`91SpTEo++ zm3qP~RAiTOvYCA7!y4zo@vlr3WMrBgTQsSb`#+%l4WmM;XS!?CKFf&1Wk#bI6g;$? zzGpCZgc0U){koZk>+po=GpX=S+cUBB7b)Ov*WD>*8t0R<{e?cjt;+v5Z! zToj@#ld5DVsyTfWE8l@u!n z<>8D2MUzgmV~mD=d|q~KqOO!fSm;v&lgU(-0Y^AZ{sz5?J&G53O5k^?fe(5RKdX`h)GB^ujiA`J7 zJy}kHQ)o0aK1755lv&DqLp4Q?SMk-jeC`~Yu>8ykfpccwo@V_-{hg)P8<%2wI}IKd z+bm^woH_eFOkO^M$3_hghE6G0bViJzfl1!*-@h^aU7Vnd zk&&?y!Xt6k5NueHuE-%f_9Cgs)%28BfY_!o2N{T zF;C^i3H&X@z8YtAdmeb_C~8~o@T}CH^n;S0x&(&PqrJ4DrYDdJf~)6rcMgS1tU}o6Nq0gdc0+m8MTnq zHe>li`#&)JoFtuZE8-5bzVbw6HYF{J(wv^2I5FbU*)ZPn_wA#1ELAH`m;n-Z-B+Rf z2Q4R;%0BHZ5l*5Z$X?1I>Q!2a?g5tf!!rAKx94^nH+R@Gc2`A&t9y3(!4>|$^9RGb z(0q3tw)#WQOb-QuP|OzuS#OnQYuo_};(B@6hm9O1TdfL2BjOho4~8eLK5(2L-y-FI zWBl-s?ILRL-N__u6seZb!hCQ*r4sI!@6+1uw2#Ik7y<7347C4I(iORiNZ+%G$Y3)E z5KDTUEh4S%3MOKX6G+${?>b}ZpNtq54zb;qx5`qux-(fF4$%T)Z6B4?A!rUwFOOv_gfiXB$+vk zyyv459(I`sb&7UMpl?vRvtE55#y8R5QO#Jwa9?(RaDkYFDhJzppET;QPxp0Sft0oD zi8G}jgyYnuj~`s@n?I`8!x!D+@fF7UqSE6VyD@ue1`P_lf+RVOaiP`lnm!R=^b8)? zp3~@iLd%%tj z>F}OZzPa~pde5b9K*cLcBZ+8HQ;qq-q~a=eHZMF=@ii=V4C+$t_^u-#MqBQuhN*%c z1FI!DYp`EXk$*x@IJAVH$M@CZP@d{>Jai4Hoy<_z6bHmyUS|socnc-RXj2#VDh6xS zTHm^bcvbB9>>Z_b8Er{G)tg&Vi(g&AT$(SeRI%QLk<=xJ(dQb+fa<3l+NQ0XG1 z3Az%0W_W+CE!MJfkJ{CHBGH@3K)*`NvHMpG{5taIy+;v;;Z`?c&cdCMTzA#JAlm}X z@^Mz0Aoyoh3ZM7l&EZ+{K>nbZ=j}t5BuF3#pTU#MeKU0vuhIMVhdm$L%sbZ3M}J5J ze@&Pvv_Vfgec|+{pjjAWaX+{;_sBs__S2_><73))8eM%-02=z(8L6{Mx(5f`l*hsc zNoMg-H8;qsTB;sED#_o=T_QX~7xHg9TqMV+=kDGy9MQ2@dp;dUGcx{~>vIyt^|@#> z>z^F%p!|xRruf)qxBn-8+J_bb0BhK;`dpg{|IhtDaCQH;mg4UL{*Sb*bop3~QZ)}m z$axyh1N-tG0bSwE67j6h|7AUW2s^cYBt+-%VAOK~BrWd!U!Kpq0Ut}e;^q)xA!}Y} zRu(#3_MeFO+MFAu89J@(k9|WTx2$GGO#NzMRAR%-k9;#BkomvS&)k0%$CbzE&Z2p? zexTtYf9ylp0V`(O=%Syn0001})X>q<33mrSD2+gs>z&t^|GUdtpGYj=zuc}i`STZ7 z6&`giT`w>?+S{}K5B2O1Z${G|IwKz*u`UP-Ws(0ERyO~5XZ7{`+e3qWD4pA&ag>r- zQi}HG9a?cap7L1dFtfV9c`FsA5HR>(Qkzz&*<29Ce8$5MPWC%G&K}Z1MCh#jKQ^i= z?8i{K=B)z1T@iL>dh%do+-ronekRxIXGjrx!25Tbs+)6$N*9sly-QubzBrHk2M=zD z&(nc5=UeqSmH)juHLUkc6;P41YrZ0n59HjF6_3A}?UYrAie^FUdfm~A1%Gt}KzEJF z3vfypbv4>Ygtl))%dIB{F4wF1WUTcf7!O=4Q8@d(5wobWqW?iI3@uDxf(1;blxu|j zltx&}>Ctnqr^Ej}o&!1et2Q*B0^Jq0;;iW7|9got-E#2$J^r5`bKd_gX8(TycKE-F z+8;fNpW-bMO9j*9WoFl*L4m@A0NM^)y=lOedon5Mf6xD$`fwQ5uCoO^$qqMh#^S9r zgC8RuT4Os;t8m^aYsuMtY+BRne_pP(Vq_Ojh_1_9VB++cM&OrutkP-B2jwJi0ZA7I zrbJ8i`!w67psPislqPt#K;#OImr2N;)=q1 zrF3GR2E=Bc%)sB?)>i!V4|2tcdPIoZXoJscl|U)0qxEKYHJ&TbU-Qep*6Gw*+B;eq zkLN2j`WVU@17T$QP;`U;|FE`kv zQ?!;04UC`^LIa0>6*AAIc4jhptzn)^=E+}D`cC9WVgp|5RjiB_j=KYp!}}x2g7dKw zYbMYQp9+mJmooY8KtGE)&4dw*imFpRie0Z#M6g*${6(ptKU*pn=O8Lw z#gCbNIGHSY%E?+|@s8(E$`OC&U<@B|&ZJ%KJWzJxXt*Ni+&>v`OF?ENjaCbM=QK^J zJXo%7FNMy$WKACH@GJPFBVg4#Od~!neI~YG(9Z|!(IBLRS9zN0?DD|DPf!oj5E+6r zgOL*roKn-iwOrF_jXFJBF9pA9jlj+&qCpw8B zeHt${n_03}5SX6}6(*%^$h^Ox)VC$zq$U;HMySo#X_rJQtu&Io2%h=W}u9J*^>x>oOV?)AuZ{LW_ZT7L{hy217 zv)yaxod|Hu9~oS4#UXp3`|o-v$JEOrv6W*&ta`r+NNq0 zhvr2}-5?SX*2xa>^S1}LAtKqx9x2^o)V8M;JHgiVS?6Tqa2i)#rJC;2Lb3#20c!3g zU#^u;H59C&p3e3vMQC*3rpF#_&#^PbNh z9`_kHtIU7d2{XUDjM;Ni%LP@;Vc!=BGR#i~t)7&z(K&1<#`M4?b}DwUyB? z&o`8%Y;UTii5b~kT?!tBf7X={wDla4j7jA-aIpvp6}CEA3RWuiOeW<##Lu?Ucef$R zFN7Cup}ebNF0BCBR@`f1t}FF^R#$VAk;^)V`T8sB#J^Ci{kDrAdTfbUW6};mrF#XU zitLG#rSh`_%T#tE~qwi%mDit9tZ*LYrdvtbr&fm&*BK1?#PH5rN{ zO8B&1|47J9(_QP81LfjWf}0a5AC;4dvuakueZ-Mn$IC_y9tIQtE`o#P7c15aanHBY ztCHj#(!Niwcj^GN&as>!(V3i5Z0SnI%GP>AlElLl0eyK}J$0Tg96Tbe8ymw~@iR=I zi2?as1t;|aa_CUanRBfvk*HxQRCWL#mmT3IsD>Cm?;dvfrMgh!^0%@7%!@p5W*Lt2 zF(iZ6RJ2FDy-7K-grCFT&~;WuJt?Mv(g{kXYG<@+xA!-PDk~Lt*B__x_qfnduQW{z z5SL!rte$PQxh=1qe7`KtR=g_F;1uee(~^8XGniVtfrw8k5sG2N2;)HMLqz4Ehd;X3 zHq{_pi{p9La$U8h&F(hMUi9guqNGiX6%&c}J<`edwlx+mYarFi@5cK#HMhe;;Brn@ zsF$wP%CJf7%#?E)r;**Sl%OXCH_pcQQUZ$5FB&o$45`|fzi=_Bnx`o`9kjc>ypyJ! z`mZj1MZw)AF{`T#WzEV^qklW&H`52c6m9Y{gpMGekR$(#0YvVmBcxxxP;ufAIk(-* zGSDB=hUS7C;CMnuEjpAWrHJU&Wc`X(jEW^CkWtv@)`N|7CILV>L-BMC-DI|pR-qGX z&%J(jBNr+6wj}uSoucRgLfQ!4;eQ4?2L~VPDIS_rJO#es+-=+)pQ^ZQ+TANv_)<_rXdbg zX?z4iM*`87nJi9o@LeSUhj*f57dl6F5Ddv~;$_%4Dw33?pw@9JCiU9=ZgY`<(Z8}A zb2^rMO|Gr@UUA3_*O`3D`~%&}@z(e?LeDWG@Wg?9-OzZ1Hs+}4mr?Q#fDU9Gs|k24 z{mhbgkL~M~puZ4Fue_Z4KD4Rzi#qGn?=H8+4=FE=0&|;$Axn2gQ42nal&Y-oH~gKT zs`8NH;5-B@Y=$N(5kB3WurbkkjGNZbMa-@=tE(m(JPP+%C1DvjT5$0xck>bt61@lW z=e3MI{oMV$&!0b*G4Jh=LW%0d!HGpGzgYF>_ATbM z8|cS`%Al}sba+;{m*x4%7Foe!pYa0@Y=!z9A!A7Fm=g z?kXaLRD@FpyAI7omAzFPQ?MyDJ+G|D*`cAV-g*@oVWA6@^ZS@oza)CTj60u)Nz5`C z@Xd?0X=?=@Gpi`QrHQ)ByxV zV(Yb`TjkxIExMcY@t&8w6zT^Y=VGl8nEsb0caI$hSSh|a1)5je>7M2Fv);G4n3 z4&!5K>5D=0p8jT6w=INJV-qh#*Xu_8*-zqhSZ7F@lq@-ha>RoDiJ`TjrM1pN9brbK zcH+SHXmhbZtR2cyF*F;TuEffuAY1_+p0>m_3v4RVV)d!odnq;iQ>vJ^laNR+Lc5x$ z?DqoW!s=NRLyy_gk4(ra7EO-fanZmr+xA)3eP?-{Zfs0JN7ZvGieABHaQk#aN&j|9 z=V};oWLwNfzC^Umw4y;l3TQdG6&3(VP4=gtV*W@cCZLzhmtS(IRiWDbmEm*VWTJ z&Sj_kcd%;1`bK_D9I~}%wcPzCW^jP3e%+*Kv%MU%^!Xb2lt)vargV^LUiVFiC@}7W zr9W@W@}m}(#Gh@vTSgsk`ipuM?{D|8RqBMwSm{MQe4gZ}8dvpB zwN1r!vD*DC9u{$N=x2I1(q**jsx2SgmadywQF$;CuNotSM6x`4Z#oma^hw_jDxVj7 zjT*oFiAks(SBRGp4p7${y1sSv6M1!U`l>;YaDJQ=P#GCj=TKC;H5@T#G>JYs41%6Jy&MUmR_tm`?e-0lc?Kxky zsTGjvD^x2%g^8t3+gQ(%Ar;4X-Zi3Z{bmEalMnGg)D{#49v{w~p*9wUf&E?KcBV<$xFKv&0^q)i?I%L# z3Z&IRNv=w19H}L+iKJT6AQ9J6pbLR0Na}8Wom_0Mag6yF@>@XIqrP?^*R;hFT{(;Lw8P|eKCosNqSii9RRK+aC0%RM$-5CqHtyDgZ6nedn-4T5K^H22E(h8gc2fDSjC?I)o{4|E`_h zaKBwULoL5n84&>SIge|1d4}-jxS5`?7*JD&+MqV2ie=a#hy2zXi3VJDDSVrz%i`sj zYhc(K(ohvl{IZpeGRJy9sk}iG9==fI0y>9zXC#b4E_SPfP~-5f@mcs)UB+HJ zv(j)<#zNbvefqwK9d{m6ADiNjU`XT7>nR6a((S>xP@TD<9M_@Yh%8}ZFE^KV8^TVy z^%NZ9+y!d}E%kQ^3(#^t+#p#WX~ib0)0jo)b6B(or;QinMjA^fUbs48-5q(f)@sS` z#!p*x)6G);L)Iy8d=h^D_W3Sm1Nj`ellUXJ#3ORF%c$p|^WXOv&4DCF`v`r%^e;H- zhKpBMEI&OZ#fOh~f6$*O&DUdD(tLk1H3ZgY711AUvy{u+l%$SUV+LJD`_d;CQBi;F ze6|RQL{e#)FjZNewyiGor zC7*iPP~~L32#>zhfqAbikAMd_Cg4c(QmSUPlFTxvnmkA*lgrPehQj1yaqnPwcE-!YzzCT@Vc9#h3Jxn+Ya$|}=GWbU=yDil}m?fa#zsIfNj%j*&6x;@t-V5^w}nwX+er9qfs34jPKJ zv@U@SMFtV_a&*s+D)ik2V8xw$u zlzNqISf`ToF5**BcC{Uqv0AkKeSJ<*QKUN}aZ;%G?4ex{4Ns%+%*^!S%xyJ>-#?Fw z`&w@L*K(PlEW>7@J=zD*Q;YlLoH!H9?12v{(p{d0?;V`o6(!X_){8DyyRCP^Ie#al z!iZBo?y4y`9w)@x3F^g-w>_==%CiyUI9cw8$w5xmXoD7h`eWZrv3YjWX^En&*ddoA z-_7h4fN?~F2=JwSOLt2e&{Zg%rj^d|I1hpK1@z=e%J_O`oAG2@9o+ay#{RJ4500Bh zyAldy*>_4&{fS)f6mI|d*}*Brbk%^2w6qHS87hJ-qVp#lpYjN_>A0fUf*!}`Q%1g0 zQ<#4YR!{-dS?b%0^HjQU)G`8hl(*CvON7F_me`U-Gr!cbZs@24#?00`=}!j4I$n&A z8&`JD8pg4Y{BZ2~4rw^>tVOl<$E_8`ba$7t@`e?ZcS$=PSA;&TnYtxkx1#wXd%k~X zw$()z(rejmrIxUM8RmUy=H$CQoHls7adEnU5vZSOMAB?HvEKcV?aqdzc=!`raRmpi z%X-Xq5#lUQM%^6cN zcqR>jHhLn`Y|Izp_OU{`0I(@{A+^p$OOn!wgMhzj_nktrKDr~B8Ji#w@EX}QoSaPc+@eakO z{d?eltLX?74VSwN92GH6DzIF5PI*6@brPg{=>362|7#zx0^4x(-mtMR)JO37eX6Q% z6;KDt{P*XBCEKUFOI<2)8;TlnGJ5|^UBWpjT=4(<_ZtzWpVI$q`QZO6!FjFg30S-( zOS+T>9as2{^2`=0{@+~l5LYb=;PXch4p_~B{hyUt{$v@U?V#Vy!51!c+w7)LsT7F%G3vYjLK*0Dp)hkg|2r+382sK*v$gR{HE;oVDv=QBI5W6PH zm>~c6A{Q|KZ0@?1yX7N&Ms*P=vALOkTxYFOWTzv5`al|uWX<51%|b48`IJy_+B@IZ zk~)h2ag--7aNHhsQI#9E&=V4!b+fjw-FOu#h>^#gH0b=#LJW`~OLzN+d@G^~KNZP6xB z%1xSSg_ekkIbcyNxJeahw0;Jij6Z{PWO&vnoR4>vj5h1!^w_{f%=$OMT-jA?xx()( zyW^fg)+sQQGMdhur-#0j2ye9afMYOj?OU%Kf{E`8MBWuvF_vMSe8e5aSUg*hEb!mH)7v?uLTwe%tI;!M4G zZRN-fQokQD%rz~|)6(^C^On~U6VEcqvz2Jvx~xpxCzTa7T+FOckk+EzcA6gCIljW= z{qx}`-?iuqM}(U$62s{GgV;-%`~nu*Q!aw}2!g~?*5;sBVDc%jbT<_ZzU$EYs6!sFIC{Fa_RM4&bb&~0Np=W~B& zN1oF6k^9VXE7v27&v*Npyzr~STkF|`fM@>XUP)ImR)y&%8z?E{dL3zr_}WkSCx{;-kB zJfHxSx4Tc|5mb;otQWX>{f8B;%eO}#n`_&;5Lt$VUX}0MCyQ#70jBtHopT^-5c{3_pRRR}# z_*z~MReH&mK8-3B)JB>0@HtjZwhrvQ?MC43mg>&8Z;Kn_w6GS^S8kBc_cV5-d}bYY zs?}Kl2Bp0ZN;cP)3q@guN7m>mugzRSk3-e^Te*p8HeGUE@lWepUGnuPWky{_h18|2 za9F+NQ4xP-$j)ebnJ}D8XC`>;G32LJ^_>o{>)djKs?t~F14gNNy8)t+i{ojBM5$63 zUJggy26I>p4*RH7#J~M~iBN{|;A{WSCL?0YYr)whvFUNN+-xj%#GZ|0`o7{h-Mi0T zA6KZ5>%6=-yD1rA^Qp69Y!km3BX&Np&sDz@+^&KPwMZ*ghYRazZ+^VXx%$3lqz+$r z9Zs^=`Z>OnO6bdP7oJiG=SNKtsx3e+@h$@+%o2c860WrSbz*2N(}EJVSIc?a%SFf1 zkmNcny+&_%FEn)VD&wIEsC#iWVB=P%X*E;s)@pwd5K#8&O!}WpP>d;s{2)VT4Klnr zOkC4o3VWlo^m% zK8wdP@-FTo#;Aaug~S(N%Iewi6KDbS-V1{}9B$zu-cY&)DtHVph>CrtV_)Dfn3o9P@tpR>bB-ZlMp=#cEa3s09X1!NFa-UU$*1(^$%IJbqo)j{-FwX_`}d z3y*C4YIcCriktg{?}_T~S7gNnQ8T*ZZe1-}@dir9d$}UjG}}IdZ^~3#RQwv!MMe8fm8T-50tm3?IiXhTkYxdWJ z`|nXaRI2s|9|kY+;vXunAtYKe_@Z=x(cT+TfB-_~-yC%l6#3+R^9}Fj-YYxC{f{re z^sB3w(`BQG3X;{mWmVbmj^DFLXDGAUpAB*Z4|l}bLFp@yu8dnU!G8~h>85MFq3=GE z(A(dY9`{*D?S47N(%*&ceBAO%1iIKCNk=b}Gm^>@jrY6q*`}~?+wX&RyWp&d5!mXd z_T{uWz5)^f=QNQJl0)YVe0+7IY0hLVmnOw>bMzRA(64Yai<6P)@B4Kzu9~dVSBDd| zNlNo$@wRT!y+b~R57qL6HivWebe;FKgr=>BV^h#o#yB#+m%eb=fpb0XO{`*!+6v``Ci*7J;*r zn0{?#6nPA@tEo2kyd>$i&0(A)KjMFpUFEPe!7iU+5Fz$0L0UyG?;2*t53(O+G-vgV z4fvLeSlm@v!#9VMl*wWp7lGuj{(*#^$Wr#qPlU>Z_RIHoKHmwl^E2CdGkzc8BsqKq z?2P9z6xY-H%6Rb1c_~fy+Ge;Dk(Aw*o+aS{Mp+sv6gfWMdCGadZ3%O2=0N+$8D+|V z1?o&xq_YA~AeuY+_;C4LA5M`+uO%U7;^mD434Fusu)K`2aBXyWu_$GS1M4)!BcYGD zV}7paP>~y4we%zR=aDMYGm!mzflANS0)2LQ18}TO`nvYd z(>SBd6WxTPsCZXIaMjuin_1Y3LPR}|d_3L^-KcfFGqD*jT*JsX2-pkXmM_!&#jvrr zK;mOYz&+a#eUvM{LO30m#!Ae0&=c-4q!JHxfCbPY+NnhrhIvK3wz8ARpzC#cgPriY8Ifjgfjks--c;kPkl`>6BW{A-StJ^x@p3y-wD zK3-Kiu9g|xK#PA*5mJh%?+JQ#3el)WC#TcKB9Jzq#!Bnv@QrC&&+kE`Ov-l-JptC| zqRS77^49O{&R@k-Mnas#I&QHH*(+|53iW((aXJmmrRsPcL0>wIM*Gr2i2clrCr?^3 z2HvoVQ0%+N%zw^tBq?mPgLRrH@HB(CrbCBEd8^{20C+g`h2N z^F_VoEFPckf<&TjiiMo(8FV_xju&O)N<>Z!3rbKJBkYo&C!Q45kw1*hV+5bYii~~c zmLKQ8aJwThRtbz%r|%cRxUq|j`n5Lry%%2!S1UzU12@TG_3=U5lfSck9(K+O0C3~W zD=b_mFA1rZ;>V2nnMI;)i#nNtpqp6%aRAXL^39{b?HDacM8r2G5>HHG{EkPu7{GM3 z&oRw*9)Y$9;8DMzw*?SXI9TC_>hTokbE)7}w%tAHZtLt`sw?H>$64G!4oj7@SDafQ z$yN+HKabyH-(p=z|V}tyuU#E@wQa2|8Wis?IKP} zf*p{)h^J0bL)2tgM@QWez7Z#P@Le$QZX}afK0lYCCMR~V4tUO^}m&Iy2g8o<^2#KKd%SS)tdMJaa-VtTU zZ||(tGvnfUeYRLJG3fmIDWbuXoY)C~(VQ?a-kdH+ul;t#SSNhWHClSRs1uvW<>cWf zMo%ZFWgBRJg*jg*pH&wX@#||`tXJ^cZKeUPIut+R<)}{+OVEQFJ%#8HlyYYNfmU*= zMm3#Dh#L$||l^E>eh?v8q-qFpmyAcvPJ1 z0&-&L8(~U(X_a1cqqWLR^gU6%SxK2K8V^Y+PeZG5#YsAilkUVX!YM^kVgx>Dd%6rzD)zDB0>sstf}k|2ro$kJkfJfn97{vzBi1 zA5S%RpPuunncV0?RzI>hly=CpE}p8neo2d#rEI1T12=CpOq%K_3D?=}tEAZOzoD_#h z&+$6Ji{PoPJ(Vop+}$O1Oxv0h&skI<3XvaUyLow4(MPGAfjPyS2YTFb4d>g+A$M!$ z?JR}RG2N}C5A|(`T!Gw|yr&s%LHyk{NRL;%;pp`s)_cm@j6DWr(7QebG4S1oHMfGp z9B~TlUi{B$TN8qid!ce@vZyYu+qp<6WPt+8&hZ;V*?xU8|31xWyKD{;_3}2obS%7~ z1X|3-3pOfH-toMS!sYPzBxLeU?b|BB_G&}*TMxuM>2rN6S!w6H$B8E-{J8_|zyh4I zw2zO{J}I5F)BHY7D z14V3}J;<<|vCB@gLW%4P$Wwhn-Z?|d{|{2l_nNnJPg_7{d0+(EAXJ!2JPHpPSU!IN zLNp?ehHJ4DF#d^8*Jxn}a34(UrJJrL<1yMMS96bPMZb#ArDG6XPEW{YHez5>76S|S zcPgB>Y_2wr4{qj)TWLqPEH2b`45&wk{rTRX`@XO1{$AhvdVgN; z&wpzTnzUeEo>Yydf_7ckjGzF<=kf@oMOxt0G1IlIeao+B#AGCL&6V@T&RYl<>b6=J z-JJo&*m-r!Y|M!l4J0iIldP@zVT!h;sVrR26({6bjM9}QuNR4P7J2gY&q|;6a)a)k z`%qIo^Z?hX@lJX>Y9sE4H*v~(jayS<*m06r?PM8zyIRSCh-y8VPMT3|Wz=>`a z)ghTZE3CY;A`i)}cu-!G&Bm`@OO4v<6Ec6xjg2((cI6(|2!GJbv~1{z%F%bU&1lr} znUNaXe%za;!mhfx)Hu_&l>*UIeXE_TWgPZRc~&1N5CAZaha8B<=XsEozunDimQ_eH zUf}*-?Jwo5SH6>R4)WGx^*lMLsRYSk{#%a`v@w$EITS+cDilx-T=?262Pv_Vnx%d4 zynwh~TIL_Hy4_dc#;fVc+B0*lGs(q5gepoULeRBHJWz)K9QQ2h;rs zFPKTx+mz(k7X{3l1T1gW_Gr<#$7;hT(*@c(W?KNw8QW2v9l*-7>Kq3YyyJ&yu&9iY*D4REz114S$xj**aua8o4*A0w|_Gv7V{(0*Zou6_9Y>`9NlOM?5!}Pcc9Y$_~cNC98<>fAAi} z9?IR?ig<$B_}`f#xTlAmL~QLh0u(64ib~;?fZ4iaMdT2n|)9`RsF*jJ)~~_aQZ$8 zapQ+`#a;Vj-_!|xNvx`x(_{^U1N0`IiLl~%Kjmch-{or6!WRF0lI&2&Lun>Lv@p2H z3Xv>MQ}IB>g6;u!-@AQ-dbt(%eqt4S6^dVahRlreodO#GLbKz=Jn(;yLMNO#>Vo5P z-Ba>81hCSltebHQv{o+rKd80J(kHDk>4%H)&+Xn*M>0+63@{F@usT+bkig^8vH)pxLf#Gaa_C@?vM5 z-RYpwP^BCQE~ldLEyPJ4x;kD<;{1H)2kmc2S6LW|h-*EvPe#>5;O&7UxiSi{bux4YV@@Mu=|GFjDEz;al8?jx2Olw^E@-TQ z1!x1;XVVevj>A;A-)|WMq*QI(0OZI^&ZlKNcKb>YVnriBOplp1z&rX#xPLIVg{Waf zup!xohMp1lJFULGJ@MCEP5gFWjB4&iUoL`|r~$e+&LWTENcMEkH`bdwWBw})1d`VAMOU9V>!XK*L4k_|FW3W#@d#2``WD^`vb&`BX)PSqc5vvS(2c`cn8WQ zR}sSR-Fa<$f%xX8+IZd2!|i-_X0ROP(n*9W5iKVMYE6dc0rc5At;49}u18l^S_s(k zHDULfhQ5`nk7cXX+eF zw5Ei-%^NW_E_PtcVML<+i&^_P!gS-24^q2xU;LxMz_kjVx0w(3^Rn%RREb0h#~=?r zg%`s8LLw>f;t*q7z{cwU@-*e~mtYZ@EZgo2J`R)$NcUOJ&^#pyF6GwYT_znR90ZmduL=geuO#}i0;tul5=N46D znp6aY_Xv_Ag37Kb2a9jDqs5nyP6{_Dz2Cq5@-gD2Ju>o3T?ri8tWw1q-B{AODRV3S zhT@jetIA$;m*PhLgUp)Jt2TGTFibtsMYxB@ z_ja|b{e0&`L#%K4o=i{`-xPvHYzK{l8iUnc)9l`F~gg{fO3= z#&=Kjvmcg!xKktR0Bv;&68>8}gbVT7Pe1ax9#>0h$ zgJM$w^C5Q^RXF_71Vu`^nrE}8TUTTnOAf8`TvN%S){Vu%UhH{oVmmtr%w~6!8rjCG zul^IhVqJ%*WMDBug~NG0Gp8L9r{ngJszn3M$#I!&qyW&j#4lK5N$+f~uWoKhJ)zj) zE~#HY3#Gm4&|sTW~O1?3@_RLwKGv{9yPyn+0k7iWRgU_ zWoFz;X%}2Q(0Yq{Cv3QIQdb`Z$(xJnhf3=jqQ(r*l<_xKtdGK)4U(B_|$Yo-!tGarD;$5)mU(E z8rllHO;0cLJl+R+JvdlGgv5``=Bhke9@K=oWhaI7AlK(Mt@L#@Zw~yxYh8K6cDqIU zlsV=shA^*G4M8&~Y26r$OaH=m1zWI$@S;@gaoIk*gsCVGkuQ8V=^fV617EHLXz>+{ z!NGLu-+3RA)w=kSKs^EtM;K$bG{CvCFMQ^=!4T!V{P-k2ZvVRTHR-zqqGIaMr(Ajh z%vT{Kcq4-V+qGUog8};6ECcl)wc?GHt|Z=o?1oJ6%IF9VS?aFqZ(ndr(@t+_IbKZb z>E`eDT7mdDW6mxeiIM7nMATt1`-vU(PG~yCSK@$h9ny_28Rqt^tk}S?QmfQc%LugS zg=|-0Q-1!7ysMSEAsd3!@VM}0u& zDo1K%$~jenN1tGH=dneYe<%3szUL5a226}-RH;X^>Dvd*8D#efNGQ)j+nhb6*t$+d z!ocibzn`fuw-j4CcZ~^7eC5O!IiyBIM@Ll=7S5jj zxzBMMIVRkV%JVVmN_x-cb!^QC*qGC3C$<SiRzEs{YvCY9iDH=%d7 zaVO$>n!8a!1l#5VJe|vLd101SXI4z~3J(A$<>Jp^VNl_;?wKg_uWC)>Qy9y!Ft#o2 z?j$ATmg(TA6&{fHqiG1RN`NN= z|9q1ChyrHK5S%n5oNnC6cU|ogpLA7%nYmu1XLPzkcN!)xb3O~0!lq(DYSmt91+x*b!E#SV5pK_TI%m*}AI|8p?ed=dGT zr;_@F6qkeh+t7~l5oMqpvAM;zW&n6FA5bvJ+j3mXLXo;OzPj26&XhY~5Z@WY*4C;5 z9+mWUW}{N;B@lk;3%Xc*u$;Y86P;zESmm;yxHLd{6`!Dm~a1mg07%4T<4lb4-|u}(5Vo5H=4p%m$6AgKL`q42@Z z;M%859}T)dr38fJ=&oFSIdDvTAc()utR$}YszRIQ+ z#_^OtW3w(d2PLDg{K%t%cpYiR$csPHb9jHG-k$A{pP);|B_aO#Wj^oNX|Vs@bm6(_ z%{iKAuR-f0_oCOME9~yV%M49dfi=zPW3Jg-z?al>hj$KN@>Y}!yJxoJ(CrP_at{rJRaLivU7;^kudiVP<7W9x2#GS@DGROuL@u<^_Fk88ISlE#wmRO;{}# zDynd1kFM;Jja$vgzp1l3~Y#+VU!vphNTDjTB;0~MV1H2T8?%niOCZ}X@ z8HxC4?A6X&c|WH@WRj$V5(%n6l?ZcHPDAc642Ke&}2VEv96{Kx@tx zi$8y(V}$H_w-?el25&vxyNqRyuNJ70^27Kvmh`#2=9*(nE;dez12$bQ{o@EoUfrww z0hM3vuHTGr>5&UU)4l_o;ju-`j=9v$pm%I&H67H!q_IrOx65Afz>>*BGZ!lxsx>31 ze+^@^$>P5*#!<+8gFne9x)#fY2nd44=4rJQA~XNZrHp2w+hp?M&iBNOa{gGnb!fGG zYz-O#?-22a$}Y*o_Fw{z*HSjJ9#N(Wpy? zJKNHybKgo0WxU~QGz=?UFWEL->QG|*+U&h{A`-Gxc6^CuDqVdg*b+v3hm__KQQNGm zP{=~x-Ti^*cDC}Z&-RWH`FkFB-UQuw-qXOIZ;A1HSX}%&<}|4DPA4Bdq*O99>&guE zfMz3XE=05~p#hBv#cH(kxR(aVO^BqHMDj7ZokTo)f;`i09~wg5Rw{1AQkQGq1h+e# z*}ot4Ge&;!B$4n6jWXc!8@b&+Uk{LS)z0*(#ST|2EVTAueuci|U8X7%78;LONN+W| zOY~>o4Je4-^T(V$x0K%EJs0If*8*Pf%Th2-I%38}BGny!h(=g4$O_p*vh zr%kuoT-h*|oxIdE)Jja{TkvyKgoH+;b&h6Cux+T~6C(k3zS*qv`rah*YF#Vpu(mtR z)k7N`UIDEQ7Ue&|j(Iq6Ri zyMh?1=>X?;&xa!>*OW%~#&FYa8ipL=ax;&9A`W-k`#Qpw{kr#!{LhZm-a!oORCdaj z=3yHrQrvOl#u>K=a_)(%lXt?wk?1DyNN&rQ$Ka>hwZuYBKvP)H<~e@MH1Yerv5^aB zexE`8>To;5iXHWk%9^Q*@!v4gHN(;J*+WLzCo`*HAKTfct7fje=E)0P_sdy5CG3${ z7{t$dX5>&@zrt!LHXqg8%i#gcSWCK3_p3%-7Bj$l(*T)nb_kNK!Ga${y<)5!`vo4A zrmJ0U&EC2yQKs1+KHGucQPZ)`Ahq2zh5!il=w}fR=6tps5;js(Xc*sq{S+1gx|Jl&tr)b&Fs^Nb`M! z8TL!!M%+7|VW%2hi!Qdqj&;l;%{|4P>vOc&H0V>r!al0vV1g@qcw$@ zOJ_+If62xRieGEmZ!S1lnBIw)qoPr?HaR`Uhq=%#5Y>pu^~&c_r!-&srs3=s-!rRQ z9kv~Cy>3onUoJCbm34^2ARQbkovi8ZJxJvl7&37r>5wEqNqculvZmc7=h5*%%N4k-P`yC|RIyn(Z0_porBP-3NzIt{r{#6ZqEH=;cgUjW)I)SBk z+nn7bwo*@Exm^#nPF1_a&d(3IP7nWK0Ut%#l|G2KQJ_(+DV|yNJ{iUaY1LZIE&xT;PcXd}S)N@1mx5o6 zC&^5g8p|!|=pC5%0b$n|6b*auW)G$7G-u5^9b)I+LCVsK@p(Io*^R@KV+L4XKDxc#d0tfghS-)aN@s+6d8 z*8L@yMOpZbi^!MIqUG!EP3E3qR~U>IzUQ5FkaTS1_U2F!RG= zWtq&b1x>Jdn zIlI^F+KP2|&pZcuvfGXR0v>Sr4^gM-hS)AKlcKQ!fYO_`g zBr>e>7CWz!l33l?_lgzm%bu_Jv{7C5PA9sItQ+lu2hAL*tQQ|wFl47~441uie&oFehp{IG-< zZw2T?3>*V^Z~A(6KGkyN`5$6(TLs;8t?Gep<>%|jAy$3l6M3%_{PpU?f>PY+HUq5O zc$zhbZPR!LVL^g1Fle;?`j@W{#>+OBnk2%+JoCs5 z4p^59?5S)#Vx!yBUxXH>1A$SJs61gx8z0)IGLhcErc}Kwx69@r`CS4V2HiF!tlIEy z=>5_|C{+b62Fa0*Gu?TBAzZ&XURnZa7u}>%h3oNugM=^)yyM zM!x?H(|$kw8t;WFdGaoLGbL`LRx#-AXnw#BJD}Fapz(^XGy*35HYn>OYt_#R=?v^+ zDPGpD?5v(*klZZ{Fy-E1Pk=+PI{^8tFV7#-!0Eir+zb(fqIhmZe&exKT{J~2Sr7-X zAKkRfEVg2yWZB@L5!^G8WSJkhR@J8c0C;^D7tPAE=b^RtSqvYW*JwQBfVI1X>}Sp# z@`A7{UqO8Q(J;vbTrA5cT+?+c*W55LxWMNykc~_&=AQ>X603JMl!E2_-eYqLHD>bK z*Gjgj*ke`t1gfx-|MO5d`}T}nKH_(uVwg5Nb$k%gcW=6yC92X<7fE~sNpo~_YD*gO zI&Y?_1q4YB9^WsgUAje5Tbr`(O+ZzBgJez{7A^GLYOR*&^m%xAbx9=6%V-PC$O<>u zw^NUCQCW0;yKwt{bi8eM%2e||R>_B3wVRp_-S+3To-alTsy0)!C|aH)H}YG}Ld**9 z-5x9$^J_!}6CObx+r?ByAfr!B^Wq-P(3V&G0rBEIcKueljPs5BqW=Whx_mEdU*rx+ za|@v*6a4UF*7(A5{wo8Z|-JoERv<|do|p5}ETbblZ-9bqb<1z2q_ z_8+C5(9^2i6?dpB{YYQ>VGJKb@VoRc*RbjLqHJ%PfLrMAT3`H4MX*;Fjbdfb5$(R zx!*ry1>ik-i*8!u&r@9Fa+4k!n+ZIv##6V}zW+tk<9tTAG0@8T!tUQm)Rix0{vxqE zLq`K!g6L1)l2GoEr{=K<)K@>$46hV^a&D%mB*r56Yyr}VkMRTtExe8s&J%&!TR#bU znH(dTIc-3DiFo#R<8AIe)d_ozx6b7a1?c`2-j;qO_xd2vXteW%)fkzs#PYd*@}G&Y z*y>hi)FAwEac$^;+d(IZymcv`!`cEGU(zba3Wn}Utpel_z((ms;Bat6jQ6iBgvSo+ zPGPG5Y6vUN^@ijJ|5tVE(~tiXZ5$2%`2Sb_KVAc-KC3JXX2sHYEiFbOEk?b^ zwsfO5L<}bSH|pxB8Bgh*22lWv7W}`VY7S115SpbyO6N z==O@XHhzSgiBV=2pGfme&Ct@)J6x%s{cbDXNPUY_SKUAR_3bodC=C%p|7y6+Ywv7x zP;9TVtb3-!rk)-z6U6pITn~rS{8EvKmh>J<-18D)l(sZ8SE>;Atp4Kgm3{4~UdV-7 zakP41F*l-YK3?^PlGl-U*IA- zH{g;7^tUxQA=s9$fHf>BeIAcKyP&4l|LUy#r}cjYFL3Zu*_EcdScvvqxX-#ohD0XqC50&4tCbTm=%b>Jl-YuXB-)|g*_T{ zo$&k>`m^(g`ofv$SDytea*_(erL`6W1kk%XtwC2RL}$k>L{isZe>)<)7t;Ggcx>Nx zboTVv+x86$p)P-PSu_54!^ePe`8I#_pUfBnLL2`^TsbzTiU2bC>mU;JwhM@LJ-RFBsH#jyg>XA67eB9eCYE4mfX zcp6u~ADk}d$dARW9g|K^zPHTC*nsidc&6$YesTE)&TJ@3+}<(q$~Q<&I*XnM$?(Hw zEOtZLcZ25Fp%W_WjiFv%Q_E==LjPVV8F(%>zB;L5Hcrc^0WW?5l79_mwW=K465EGc z6!L&7zS*!I>|W#E{@F;`%Jkj0qGzM#EH!K~H|4>BFFHQ$^ z9{*~8bXj{H)A*VfwwFrA5wk4{VPmE>bA0!ztu1h}7UcmK-qsP7 ziO_GHGC>{2kHHS)CHue!Zub1h|7~&vxYI&2a?;YwK*c|KXKM`qZp4e)clE75->u>D zUk_yGfyj;+n8io%$2A-%Wlz>D?4`{K#>L6sG&bG{@Jx4C7Sd&FE}M!)wTGiSU62y; zNeP(`SS0gq=bICq?FacJ566y~%lL=-PH5Zi#JWI^Zc|w}*sG~HHdk1_FtsI1vwyvy z-?F;WCGT;q4|(SV`PA^HwB>3})L@QFD>|yHJl={cCX*cPaxYG|SX)PZwCj|Nm!+%Q zZgK{JQ%qP+(5D{xqUYCpPUzbfXOZGD{Np}U{r^qv*W>Py=xD*ICilE7bHfHI1{ zGip?JL(`P-HB)?EOUd-lb;@R}a*M)&$GhJ1q&8C*(B0W!i`o_*YohkVi-Zts6oTrf zu7d_}?dQbF4N73@^vc!2AebmUw1NVr+fvO+EdEr>N-?baKj4D z@gcihW6L@A+>EYEx2I)Pi8qR2!++~DWfi25*PNcruj2H%T(0n|B%iKHwLQAs*1Wo% zjL%jP(I05qK*3RzwnBnJ*+k6tCL0!#smI{euXu2MQIWUlw$(fZf=O5mIALh(tf|YM zpLs9I#_=mrcI{_7nN0v{&n>i;N4`BjZ)u=XmFO825YKtr`TE1l_ea;t3eDheM3TSL1x-(xZ!zS zK1(ETw$Q`i-c@h-jYLIB5oWN-RWTUBA2;bT_x&+9TPyzYJLeYo$9NW;oZWx)6d<=fKn}57f&&RDh7v-|j{GrAtKHGTW7G!m^<*Fpku+}b} zp1Ps;bUv=~G^_nFFadBa$;j~c6u+_X$dD|i;w%@-J&l-Knq+WOp%MQSj)1U08B0@I zuI#GR_(5fg7x{Q{U2K=J2Z`eI**42`QrfAMDBM)Gj`vN`UpeqXV7cnjoak4vnZFIs z3cnyneLjV*(efUuYmVi}|L#OvjDHpqAw%A&rsndUpDu`YP#n%~$3?6Ko*7w6`(LNF zQlbC#adE7cn_oCMI+8=mL|(w>snbwU5N!Q6^uI`BB~BmhIbi#>G)4O%EG#T=dhtU; zeM(BoPTt>SyX{u#){y_s~ZLF*eQAtmPj?sYgOzW)Es`~Km(NH(q5=yC{{PAAV+ zeb|ofn{U<)XL*RFAi^fpj`zAcsyZrZbXnltCS-45-a9yyFL|sV;5OI~fcl-hZS!jT z$u>>wa3s&Aqtq|nHL{UjVCPYt|`eVIl0;2e>g9_9wlwsfPtkA z(337dG1Fb$il;9MvvN*D=WD>FAEt4W-3-!mPWf84*kJc48;)$q9qPg7uH7sD2VR}> zCY#=SUs$WXIZHP)Bird&o3E@nc@U&H4-hf%V#!{XD1 zo4;NK+qRHozqii9ZT`O9BL<2AIQEa%1}vqyxn1r8L_i88;IrE)T^E}WQ4q=uH$UVq zJv>pjCguKM^A?Hbwlj;f9EDS-52Adab3d8o(A2k`4~{mBPV#vqRd_5f5AKWbz-VIH%6fZ{r#^U-qZxl#PmLaSF(+;Dy$!T?;bo1#%a)^+MxoiOzsK%jr)_6Cs!fx zblsZE(<^Ts|Fv{n`sGL^`z?vnl89ennVvaUy)}&GyqzI;+pWull*)QD0yf>yi%fFZ z<8`xbX68YBt~A70f^@cJgwsT2{?$0UZh)?ydtKO46%aO(&LD? zESx%>-FCdmHv4LDGo*qd25@yMiW^vGwgILk=+nrw8Di5lwp@DH5B1(xK|iRO2iAag zvV-yX2x*w}yl(7kA$RtdBI6dJ2#=o6Ti?aS<)uqVXsE269rH`)e~k4SeI#&K-iuGS zoSOUg(fjjb0X40EkOp7o{;=5oodLa8r2#NFc0-`)3tJJo=jo!0CfGOgr`d82cg@qN z%WJq~aQ4N8SIdgq-3cR^x}V1S3krDajkRNLGT~ zUQjygPvl}2`sSFKSFdm4FO4%XBe$<8V~B2-GQ<4>T+bx^%^I1v+w$#+5{JCi67-TzZaKjB zjm0k;{HrC5&+?@?(+X=(6HaT*!n*sl6wx1r`{%*HIm5y9!LLjBE?>9yZ8enLhQv*) z;Sp~8r1_odMdV~w3o&`I{&G6JIyl!>11+J)#Tv)sks=0WJSbafSC50W{A?7A?ygj6PlxPO%XPML>(C6T zd&|zGPAAXWQDgbW0c`XhlAE6tm`Cbs^OqhI-&5*L9-!P}2K%@xjEW?;9E~mO^p}3k z7g~NYFai|ZcOxVVX_e<>>~kdhrdK~{ry?(#r+1b#?lF$^T+w$^{i)*qao!g!@L%q> zeWX^1_QZXd)8LqtAEH#An(gAmNa0qImE=Q==i{aplG2fphSLc=mHdu!9n<>U6G*UE zv{2q64=?;K`lT}P6cZYd^f+#vS!CEclai3T=HXwGK*sFf2e=>Q>#&a68+I{}UVMo( zwVkfW^ad^1^|J7rT9yQy;i~gOn%>|Td0rY!fymkP(1pJrmc_2iQvrBvypW!fIlYlo zQWcSqy0+0v6ncc1KU!KJC0(P(z7YUlQcLP;!(Gfo@j^Y9^;e6xUo~);JajsK1i<#- zN}=$8&mCUHO09z`LGaJIsethsBby6x(eXBK|CerGdXzzMCdb`GE?M8sbVUT=HaKtmT)YB!dNmtq_Cy#-2abCb6EdRy~v{pvvmZ-qx zs6G?bi->f}R!<#7*1f$og+2ByJfAe3ZTMK~rZeN~pT+bh-s7k!Zd-VcB&|?k`O-Z@ zT#M?{qmSDq$`h;1=~UT<$Q|8`yG%0wrj4*)4$V_BVqsAI6rn}G@H%6@II5A3ipkx=;hm=);Wnn8J;Z&bxcGC<>;7ZCsdh#5 z=0-qmNMJxiB(8n!qKABt@vVr>Qr%tY>s8$mZ&u-wpi_hKdLBfxNYnhmw~_uKXqcA} zBGC5&jPMvEs(8-g;Y@z5^mbji^OCq-B$vNGxFJ4HWUxTPE-2^8>^@5)yF0!GWbKv^F~JJ>LynICq4QEhmH1q ze-Edc`@~e?U?%x5o#1iBNaw&XTV`>3_0v7^)gmwx2MKQ&!3ufL9g&wSfQMB3dV$rM zpwT(8vPXl5WG%IXH{|96jH>25S{5f~Dk$kGXFGE>W9>2%f)fLc*S5w>OB*~w+IZ!< zX9qE67O;_QEtRx5#f)9m7jEvAg)ai=7VgI8o=QM2`%&#`Vk=;6su4G%*+1KH00I5y zn`w7Z>ks32qu!$GhCBO9ggW*&ZbR@021>DVI9L6+t+ZRA1IIA(+n^;~TVoet!6Eo) z1VOUB_13*qWONGUaW?W^i0s%or*VM|+r#h{#y`$W0RD%1G9ajO$z^Nl^4yg59I%k8 zqQdw@-JFEOWp!U%7g(rECEhM!3_4z`LEx_ z`cbt?t2y2Z`wQynsH*LY^W9GFeG^*>+L*!e@={$3peo8WOrPOf7S<`-)qUq>?Rg;X z27hg#`zMjH5g)YEh=uim-54Trx>$AtZIu@oMA3ez<1GGio&R#cWu&9j;Z59Q(v4MF z-ukyMYyD>7>czld`JwZai#>HaCslLHpdP*$DLwNGb?{!$b}GC0HPvHY#+`t{cInR| znuk#$EhSc>#<+-2vF~0l3Xz~{nI@*Qrk6HfD0#Mwo3A7+iM35_Q-BikPCU+T6I52q zG~G<<^8`3=hmReCj;jyLp`J0+Pd`22g|w%bMRc_LwUnp7aiFa@1pvZ$c(U`#In>XM ziHkhV(@gvW`Dx>g2v()pgEW!>n#{EVIXZcpb zjyEViQza$uvwMB0sxLbkAarX|0BN1>t$T+pn!3Luesj-D96}3VEZ5J&v9R*;mvtUGrI&8x_Auemo>{E9 zjGgA8Wx2~rXKz_@Q@lm>?34X$>mgtk=7z?5$1k~Z#*GQoJnjBHGw%MN5+8yEjX*B< z?&A9Hm{*`%Tu!6#l_07$^c4Tg6kspeldW7@F`KenWNJL;W}EjAn)D&2096+;-Q9en zKeVusdbOGYle{!Ykha>G26(r2zL@tVWRJ2r^WmE}hMS}a#u;cDJp`YUNRvLAcvz7` zq3aJYnw4#mu`iJvjpSz0SyY#Q)4r5kYVPrUF(Wlk5(P0KJIju{gC^P^c(}kEQE_ak zCNq6j?dG031QCh(9CQb?X)d=E`8kuVn-bi(F@@T%wBC#)NdN~U8rJIZsFZ?o$oZF5 z`^;NA`;YkRU^AyeP%#jyp7E&Qu*CQS38N1em-HM?E*D(-32cfX?$WFiZT$|#orc; zo^ICX1b!yPJB8-kGx==Oxp9chME*A3w+wq@zQ@9lK(!v#lX4OK=S1J2fqFo3NxODk zq)KPX}0+J%F+ae$UIA@q*XEWWF52~qH<2j&Nuze+}YgE4_Hb=L5S@0`CO>NsiYQb72gF9-BuY zPQ?-`cNjKl-$PxGa`EN6?~lD)ijEi6Q3aA)){I!(TYnluUW+v}&l`|>P2DqvlZLnc zWQK&}u_A354-K&5Zmkc z7nOj3A3S1QTN?~0NfP(iL)+*NN^v^6=x)2C;Gty3B&iRRzad36I77UXQ?{_|M_)=8d=dn1>4{){ud_!iokqMmJfhBPH4`#$9!9xfM=UYua1# znjM9kTbsmQozwa}qb(&+D2v0Zg^`p7CnhKBl3jq^C#H6ZapuBMoT7MN8u9YM=m6Ff9M%{W7UH$-XiD84#T!nEoc<7r_Ks5XVz8rh#~R zVu_sG9$B9aLRd$8OS4fMs>!5HW#Xm9b22#LkTXKx&jhPTnZz?&&!9MAl9PLnA{ zJx|XCWeKO-+YS?<6hsqWjO+=NISkXL-COwqsrvCr=Qk55cdbGiwH#EI(!AnIo>LN* zZ~R7$&+S-xg?EvEz?Av4BB>R;+;ZJ&`r`&r@QUY%gjBw3n-Uu06ENE)l(!;EFJ?bK zeb|FcAtS6LO`cVI@vaqF8i#q6{#eMOE;!S^up4SgaB4sE;$&RwfDEgt#>J=2-#eh5gZV~gsnm*dk!Cjg z*@YjllUyR0=GQmgTF!?Tv1aqvQvt2@#`jl;Pbr`J zBwG4fqe#d8!Eft=)v*#8)zagg3Z?9J+hFrgVA@ten|Ik2_{vVYs=Ce8=F=U~sIg2% zC{=Q?#rB{jjw3&4>%)VIFg&5nkvO1WXWJGBEI zKW{>hdj_pAh=U%WmdTS0+6fxwX_&1ZWOQp z$NIA~^ZjN5MeoqF!?LCX*l*f@+uy&5i7^+UMSkMuc)L-Z z8?b-nMany73Pf)8SY1Tw@4M|Fq_-oL=}q22&?{hNy(K33R85MvHhFFz4mJ1K>b$x% z61uo(=Tv?fr}We4*I_-Y-#x%eNB zce;&I2#gK}4qnm*z}Sk)VAXVSbX+q{-wG#{q_B1XKLhLLYa_nlGGJRuF(@P5_sgez zY!A-4v=R<@owir z7C`|vE59X4ecVEj`(424R*m>rEkByp(#0{F6R+U@w-ZIJ@}5tr7;LDgH{26>{Czh; z3&itnffU)wWIZ5GR;v|cT6AV-v}9X2rL5Kz{?k-XsGbG}F#tG@Z@RYu3oxjuoC-%0 zWAZaS2i~0AXMy;!c9LW7plHkdA8<}Np~C58GxxDyF5Cl*10AX2TO13MXx%nW0|UB3 z#s$J%hmoeuil3p4N1d8mC;h#o4pt0)*6!&K>l07#2Mj0ab5h&L2(!ZZq)L+ zTA3^bYD>A^%-&ZFjNP`{v>bsy%U3hjpWQ}1rW~Ss)T0+58`}NZhDLxxxs<20gTmfU zvZCx^^W-MnOk=Iyx#T zJx6xzre!`Ry()TntF}EWorwKKxU6Zp%11JH@;n^x!2twcp2n3kXednKjg9Eq zZK#weT+1<86Pf2E#6w^S*dqYE*_=?4+m+ZlQWa zXv24^nz_Z63SN(`V&Q7BSWRuPN@L_(!CAUMPB&}))E4M!Jzmw!&&NF+pCJbv6xg;6BN2vepLhSn?}=GXOSA_6tK*%rZBBiKivP6@VHzZX!^{&NE)~s zk5MB-ajPNUR&eAiKPF;q&chRLzGa@R_1d1J;(QM+5S7N0jrr%f;jc!Km1ipDG&Ko; zIY*f4!E`5w;n<@D=&`tW1tTY)qYC(=R&u5_MlqJcUS88`czC@O0JLKCX!!`7xJsll zA^b4)#v*(>9vWgh-3x5shdO6i!0HR85%U=}XV`^)+#g6wrf$xjXll7ZfP`Z$hnTJT z^SY>L=8QX4j3hQt^YIaR*(rtOjvuHnX8ES(wE=vxR&HtDyhdHGE{oOYyvS7pg_;%W zxz?hGxmbL*Z&UN9jYI3>vxgqJc^+p?n5^2k_z+-RK@^Lp^01Y>JSEJ#Snahle}Usn zHA!b)B(EY0PxW~A$+%hSge4Mx%f-#QSDf1jYwG>Q!4K5dKq_ak2*4nstR{cG8#_&C zz~oh)bAPcS_dA;n>UW%yDkDd#?I};^ z_@M>A!!-S}d85f73y4D@r>0r=%S^4O@zJ{0bO6jo?=jBvNPNGeu|ylDS`Y z*v>w#S6J}baKG3>{>BQj$Yg4RnQ zHeY92EN6QO@`4}+YM{c>wz%#CiT}Y}AcH?-Iv3-orTa2Z0@|+m*-l*-lYVA)T6%)j z=w0dYdthh^=pgeDI6o{$16Sn5X>4V&p9`Z(u z!tu%nkke=fXX7KZM0465U`_R3Cr{<|X6y#z==D5LMaymYuNNGG@fayNchTj7`~-eT z{pG6O2FnG#M!4B$Ql_+=d7n>OBVckImkT7Acfl6!}V`tx&VPZt4lj(*?&75-ZPSw(HlZPNhlJh`O?a*Z-oHA+IaFl7@twF5$1>rq+!GDbs0bckItzkvCEl#vdBeBZ*yeN@3$m(RFJ~B!1`jj?MKbDRwpNU-sdnHu5u(V}a;ZWr5Rt_H?3N@x(Ng3Ich_VHa|DBcU9xY}q?{ zn=G__Ju^F4eIA>xmgGR4@f5yEaJkiBy#My%cjxNPrTg8}+XYlM!vCq7%$FMctm;?Y zku?emgI72OZ<+g|uX85{e>YpcT~L4+*clsBkO2P=#@;$At|jUoj1z(d3l0hH1b0Yq zC%8j!_r|4@;2vmPgEi1taA_pC(?H{myIbQrQPnHONv8B|lKe#6U zux6c-&ITANq%<}TU`E41olS&Ppl?u|L7Lut`Tj-+a&JhFC6xH)@IX_CwLP-L@1L=cDh)yjSnUuK@Bp z5KdP}4VdNFv56uL4k&FV=DaA=t#XDtYxKPGJ3heLDBp1b1Cq{fFObQU!q$wl75>Ot zwE3PqLXDyg=VQwHbMt(b}-Ec96DF0*=8PGerUO9zd62YWb(21 zzS#kdC0BWL$?tBYJqXur1bDcoGdnoGfH0chK!)g`b-vOmQINdz#?HFBwG8;E!x~n@ zs3BmVn8-GqW1aY)etYu7L*W5!nh3v$-3JsZ(cfID7)#W;&t-aoWb zuO<;Y=6#NWq?1N@6o#<3%Fl)LEwSUH9yf%i@zZ2TKTsv>V-{JVHKcMI^q2ffj%30p zEA4|Vzlz4y$Z9nF7G_Ox(jV-GSOl7PtjJQyOj_z;uJamP9JM>c*bMk}We)J`3J6p* z_=`~aAqZmOSN}7No_uq-UX0hKT@>6Y!p_^O%3)d!^ThP80?XfKTq?95pD)oRK&s7t zx%EJ2!{??iIlJV9jgJhZq!nD7PiGQKe!WCeDYkL=-5=Ns7NR2emF?JY8r8x%^5vM0 zl6eHhyg%^pY{u2D2y*z%@(B=R2)VnO*u(~Jt_d@F>n7uN6b>%pf|6x>0_x+O;ROor z69orh$}AIWz712C$;!iJxU9$xWp~Q(^iF$};Wb|8xx0>B%aD4HSJ|m2qKI@GIVy-! zxV%#72qCI8Gg=CFmvVpJR!MDJAdOC@*~CI1mPryE@3t`Kk5pQfHU7>(;|3x<{=XmUz7N z!=8UzNE0An{^=A%UIc~VO}U8N1be$s``P&oXWJt<*sM!mMW=DNYX1B=vpzWTazI_4 zGWXWSB+k|5dH#NdOz^mxOL+51s>x?=&(a(?7Yl4VJ5X6h!4 zUMXxo)`a-fa-Xci$=lM+dnvrRRJ|aaiz+xR$092KN<;H`zSgtf*OgUCo}bm)Wln0V zl8F79O3U?_Y3IK!#46$JCLfw8Yn4aVZ-j44X^bT;nqQ07bY`1I9E>fqU2N1V>5+4f zcz*CgeAkCx;d@C-OJ7Db`j4EN_uyXS;cIMfc?i=gXW?x~^y9SNl;}OAk4-)|b?>x< z5Shew>Pj29osP4$%CBRZF|s90>~!558%O5k-R?*QQ@flG_5nP`G(2|cI*3vXyhmSy zoAfA1c8!O|;X^Gf6{*_C`RC|V>{IiFd~WpY%VKU+UBBHi!ZL+bnU&|9)eRL)L@Cu0 z6;?I@z^S_!$*=$N=6)%PrsE7?NAPI{S#7=7{TagVX*RB&uv2Q#)x_jz6RxH@pikFa zd3`mNg_YD_6;46O*KX*#^TVq*sZ5|M-V@7h2?tUkb|`Fnk8l*CV2Ps;Df<~6{n`~L zWGIJ9LJWR7{iebB5|@ORIl~gTeRM3ZJD(p&c5J=?U+_2GW?CgGg5tUYRXdU;kjfq%U_xQ>GxT$c?DPamhwzlh6!M9MBwR$oY_0MPSS25akW z4!1UWTPgsuKR1pJ)>z?K+*ijTIDqd1TCJz&oc^=bYvZq$6IKPj@H;Y8>II9C7s1JCM!G zB9AjoiI#06xcOw5$uVZr47_H@jbF_uYP7qvNg4N|K{bT{Qr`49J-nLg`R>h*Sz;D! z8u6f;)I@?TvssJDURDU_?&^Gb-m*+0^|X4b(#FF!eNsoDv#C<-m4fXFC%%be3iqm9 zX2BY1BSJ>Fsf)Yes-J`v9dvl`L49q&(Pr?M^`)`?ErUvDyDW!=;$*F`C*Kg+MrFoRbOOne zAs?D7qY?pOTkOf`5XQ|lhKBxLGD3bI)t}ANi+DZkU1`<$S660Ve}b&n2w;632(FPZ zDll-|x-7g~TQEq0oUvl#1hFu|xSk@=SO4p~kigzLCr7Bywz?!N6g8i|Un}$(RWr>b z#6tnpUm90Wc1)#9^MZjn2E=CRA9yPW%{*KLw~AtKESfU?VUcoq>kF=B|{7F zRGvbFf^r=vv*Qy%Sqr3SV1!ZaHui*Km&F_h9N>|Ml8}}AUTYI*o=gJ&ydj2XF6U=D zM6-gurO294bQXpGW`){yYkxUTfk}rtgFnf1|NVvvqy5xp11U)*%=H815IG{&&*api zbpva1!8JfnLS9iGHD@MH8iol50giP6^X%~!>EOfcNRurc{R~ z)derP5*3iw5;XbEOq190yyb#(Q-Np=HOraPU@f5>pUG{Wbq7kg-))|>awg<8YNJzF zeK1rHTcAWTgfn@6ne=Q`AsZh+T{$ zpz%|xkoAc!Frue z^v2?le6&4?yb@cf581I8{vQ^AT7ZngkH4WtjhW-3)v~fbBxnX$d`WtrQIR9ffgPg0 zrTCqNmYqjKYx|NFQ+Udmv-G5PM09Xk9q-0`uh#S4_lC&_J3M;8sWT&%z|?K*yII!= zorpf8@eXU3UG#*zAh|SioP<&q#r~*$b*Nk2ZBV%a#k7ifbVSILi{9&1w)G-B=8HAJ1vM=IOn5d`+Nf-%x{I>pdFz6I1Bmgcy z*{Y7$P82c=^{ETJ0IIU15}q)RH$rhNd2?-Js`X2mUK7W$WB(B zX@A))xf>at=ZKkrk;Mbc}e={YrS2%zVu}Z_Z2;Br2$|4_ET^$drOt=ZT|w? zOV!KBbY@rcpp9BpwB_VmGmsa%01k{l?k7jD2npe%;jLBhL-$@UXE5#4N zpqQpQ@Bf|X1tpzMlWQVqJW1I<`-OMa@J8hq^cPh^0&}kjKZ7*(JBhNc!g9tT<#1&M zZf`asC290>E;P_Uodd<{WL2p`2WOWO`MsJD&%UhCx`1mSil6^u$kAK*d}-wKnlS%u zA4mYoI-#9QNeKt2!(VK|lZc}#7tlKJp%JID;KIU?3a(xC()(+yq54Wkm_H8tu)4o1 z+fIHAwk;hyCyl7I>;;C#u(cP}F<4JrCAaPzTMz!BDK%%DGJ!pmBNZCK09sh2;eBTj z%RgqIDa@sOacwh z?5y+{!Q#D5^b@sgyxoNi;N9MJQ=c;99w!R&cYv)m%QRe)G%hKoRxdSbA*N$7@A70A z2tfRjCZ*~9NRVv*Y@A+S_Z6oI;=~Ia%I1DXvdI=B{1#}lFmk@injy+$qr3K9JdKAM zH-|U;8A0^=#bB!~QF6|ARmKK6YFt-TWv&rj52;yN0&J_h?K7nAAMj&G-8(XwKW>L_``jQ4Rx27GR!#dQu~ zFIdydW*=E{>QtjUeD^AxrRDK~AI`9x`N5aL-QIM5 zSM%Xj0Og}|_Z6nzDCthV1+9z6G(ro|)38iGX4lW!d3PRyJa&=zVRv`ts`*7v?sJ84 zOj`6@(;fHUqmi&ODMc)<9!umEf2puUFs@hQQwdc=%e^lc1RRu>Hb$4J!_?&-{+0hc z2^1R1YfgAd_J0Nij9qq0$NEfpdO+k=(#x57gS^5WfbcBBT(e&hatV`Kj7>!b;r|l^ zV1&p3*+uBF|3+EA|Q4WL^DHVM2g(&A=HS&`q zEhkY{ymHW?C(tKOiO050hJf|^%@cSVRp>vDdh+C!W-jKbV42+l$?l`#_Fwzv1M?H0 zdH3Jt(n8?3f79wcdGblrMf88bSkSFuDfPcU0iyrKH0z>DqwxPd(|s&5%nsi?Tvk07a--MjF{foCfqW|PBqLIJhnr37otcl+8o`XyzUgT;EhX2gPzmGm( zxnuoWz!DBT{MO%PXr!rI`u=%OR1&??CIQpgd0@9lo?Nrx?t1_o!3=8Or{&IV@xsp-nVGq-?NJ_Iw38Qoz zC{-61J#1FcWEmjJFuGPiLq1&MkVh!wbJ(Xsbtjq3jQ(Gb0Ds)`(M%Sqe++^7`V6(} zE*|+3az3mT>Go^K;^VRrDC^Wa58diedfAz%+8T3F+SuJ6O>PkR7C3KYPD`SN-`)t94&0`?*B25@bBIdGziQ)Zhy%ibb^F^C%c#*aFJAV4|MEfQeSNUO;#O!{c<3v+ zhQKWdr?Qa^S1Oe=xR7e1ht-z=7{)_aTpvbg>*8S-rU?03pH`dR=a}P>-LKTslV0Y~ z^!8z4lWrgq@Ga($68D4yAj2jUKaFCQ)G09m>nd_p`9r*E7fQz1Hb0q!%tX z6VNtjm7epIOI7mU3ovLEycDMYQgfIOdbn;Y6N{~b8XOXF4Il?F#ITL@NRg6FbE7>2 zJ22>e0mH(vWKMh6K-8ih(Wx81q%Knh&4h~d=)87S5=3Sm%AY~>aXN9nVSQ_1$P((% zpcbOpAHf(}6AG{4zK=vsjGhb*=PvfM`_!6g3A?t84JWPl)cF#TfEM{th3r>$Q)4$Ts5z(W(}W0gS!8 z!K-zUFdZ8gabGF>B+Y&p!V7XB73~Jy9;WN`bKxt$)*M)fu^MpqJ)Ni>d==*LsUD3# z3$T%;%>CuP=>5>BDp|G-5|)R@HUCL)-ct^@Y;SoY zg5rE>?#M88r+PK$qH`7QHo+f8G@+<&N!FJYxXk5$K1-D8;cG81=d-M?3C^iObc?R~ zy4Bv233;>ed(?8~H>r)LI``mqnav~bohD~S?uMi&0ksKsE(hIN zK=RtEMtqddp9r*q7?3;q-Pk+eN%!R48?pYD)a#oOm7S_95!X7_V|&>GZ;Z!|DsI6ltq>X|so4IE0Z!IaByyV1tkIk7N_l{8w zd)@t12$4`h4N3hU4=tVgO1T`|=YMMR+Fe+B+5|6yykY`V-jp-R2^<|{?zx!o4(fff zY;&}Y8q5-n8WJ%8Z$j&%qSKG`ljWxp3=*znv-bEC4Cns1pe75l*#tv>$%~8~ee5~O zi%fKm;8C7@xQKEb%cr8{Km$b@Kj`rP$Xd)jD=Ui-G%6lHN|%Ot?>*2$k7~?~nvi{1 z<}?$tpGJqGBpfxSY#ZV}9e&r;7qIy_;(86jAq%i%mP7b8<-}9_%XSZvu&HG7lP9U@ z7So|G{|OCS4UVWO@E{W!!ron*;Cafr6FD4Tw((R*F$IbVZcs85Qk8(f92R0fqzZUs z*3sNa4{qc}_K@fJD^SK_u}8aE0vjg(!vfYs5gC|wT$>d0WFWoLRe7nHEUqpXq#639 zA07e}Hpp)Ny=!Un16m|o1@wBjiNKdwB0F(9_0$s398(7{Zpaw3NG1*WU5|gEFrI2< zr#JW49gIz<#6V04dS0((b3|JY9OQO^Pr;^9L`#VN||^`Rt2X9C9V&6Bu&B6&EC?WnK7+CsiS;E)nW@%hQ)JexBiV_%si0 z$XHsfitOq}S!tc?x*9AEkLxA2;}gxYFJEEoKOMf4Lsqu#$sm97aal0Wgc4hJE=Sc0 zifizUBVJuA6CGN+ZBK7>V4R!esBd>Cd7&x>hK51<~&sEO&n7-(AEu)&#lrlWz zc3MC4K~?PH50x&R|NP75&0D9A`^#dRpbXidiE zOZ7t$4TECG*-F@3VYfoHp4ZSJ=`E3u!9LyNP&0LdAi3gILB&)dn60*BwCtP%L&S(P93o2$3{Sp$6d##_RP~>6uYvcQ2oT zA!mGwG*FSj=8GD7+b2=A+_PI~nvFnXZuVLYm?`~)OrMJ%1@b6Jt9RUsiX4H1L9nEQLe zd!!0=i@knN{$}O6CaSO;e=V59B4}9RP$YmnR7An4j^@nCwW!|$nYP?|sM_~f@qy{L zVmEKMBR;0}2Ej&D2;n^TUaA#eSL&aH)%pSzOf;#ii~2n;sxIN3_RCG7#@%~BdwG@} zQrRxo$Z+yyh0uJDOT7r`NSAf1{(eZ!b>(g2JKEfQNM4Cb0dv{-5$W?Fj2n?_8$C?a z(DZw;WIwl^Ox`l$&lYcXz7QzkSKU4j*4d3v!)i*C2oCZJ$DuJye}cNSOO zW0Tb|kc#Af=Uc%dqGL?J?Wp>V=LQb*7nx_tdZOuXSi!&#k|bmnOGQ>yc~Kdr@AYY& z+BIjosZ@1-2LjEv5g^46?TOv}D^ey5?hRKA6?Q>4h4^uu&wzng&2Sq_3`W~VIeXs;G;bDKF2=INr*rQ)0VH*y`(d?mMv**~iDpaYU8;UR_WUu5j?*RyAf}o$Y zvPZDx3=BRW&-9PIx~{2g{4S%9*l5;meCaViPzXtMeU?6gv1uVb#-yG?GYzuut2S{$glVYSt!yIP9SvC z9ii3}*DfqAzXj&pNweXgqF8wCrrfMy7tpF4hui=1X47OK0FFfE7Y= zed(G`SKtu{Lm3ow(UE>!3@?i5kOub38BDTo5kf?(f(+o zsBepRVrkvq)d@y?cho^9O;BgZM@&(EtaG$dWxJJ2p)A*A_G>`8E^pYcea9=8jK#ai zEo1{t8b?j07s)1a)7|u?IL8QU4X1V3`z(|KRY=S-=I69ejE+#Qu&xKbn_E@S+Dx(5 zW8)=CgN2hSiu}^iNpj?1*vXFyO}U_KPMVI{KBMV)H8XNANcnJ4t<#yC6;}6o^OQz> zLo0c&WsKj+Ht)Mg5JTmPs}F_RpFDKAX85Vss4aoAQ|T~Yyhg$P9cZEGj!G0J?sMx| zG%;ONOd!ohcBl^0(sf;@Hq5oGG^3)(q^>$9Bssg_j}fx*X1}`nDCosj(5F80CV24& zf#v(ZOex;(FR@xfXJ;e_UAabF25j7Zn|2pTMy>bDbq{y=_KUy-%#k zfF{fLxCzY}=zH#%z`^5mBrf$3eHA@T3jpc~%~e8IcyKTWckC-4E9AX~!c3s>2_+dH zXJc$7mgrF5umd`&<$UQh&*#<5wDlrtn(dH@4zQ%~W;rfC@Y34UpeBcdq2PPHg7*i3 z!44~}_^XLyHFK87stumhGghky2lO28-d5EZlArJ z5^P6sy-*;=`|2TZ6IV&aF`<|Clic3%Cjpm}pLBhyltFmYbLwM;2|#FI-*3QKTr$T> z-9*j+IqCLk7aD@ZdFfMI(GIP!a}HKd1(L#w*v)EUL1Y#@M*Dq=kPh>1^3O84rk`TV zmKXD@4zU7yg+79qi^S_d#Uu8peMa#-b34iyq@N}CM_R)#z^mL~sCn6t@pj2WR2O_PN17mU-dY9kS+`73f+(vCj zgvKIl&;5es-b4t1#Pyuz{0=5E=$&Q-zuU9f3w1{3 zNCi|(#oz`Qv&AOw^d_NSeC-+MQlawMo-hFTt}(nyvQoB8zaYRo|B0R{++a&=-xYN> z=-!+`yZTzK_3X&a;~Gwz@cfZQDCNq4#6bW96P`O0nB%=GnhOZ@qdTZasZDGVWO{HL zxX7P-GPY|pvd>FQ2lHPD(C2gc*)m!W2(}$6DtS|YD!)0+ex|`7&4$+}woMXpVn=tK zSUQn!YL8+CH5c@0t0E^|-}XbfAg%GS&I!8W+1cufFld;tFZcN5f>v&gF|QQ$Cw zlM`xmtM7Z$*17X8cW8pz8MUL$r&C^@oMeGWnQM~v@$et3t6gS)lL9v(elw*f zGA}o#w`-m1T^!LMsknL>2b1r3s5*&lhAJQYz9}ppkunb3;1y$ukf@$#)RDWu6PJM&q)bm!nM!3gM zYoCV`wT ze*Y*?`*ABkRnglupD!`vr4>-IhQ~Tp4tZW8vQSaQtvruCwwc?x)Q!UYzGz@uwPGq8V#zI!f^`?- z6^b>v*E)SuCM!NK74vX&&%*_3^$lzxrtBj9zb5sjIR(e0 z_xsmr@NSKLk94Ln0lQ`8qk}+c5t``qh)U)YP@m)vx$E|^(7QHN1_gN;JtC7%0jX<2 z_+l_wFv3*n^Gb<=m)e)Fi^X}V2j45UeZFo?d@Xavic}r&S+D}snN&~WnPntI5ej?} zaIcK_FYftrPSR|SK=Rm#et(Pwd=iCg<9I-#KW2n9{JzqSW{}J0E`>@~H@;GPBLAoL ze5CZ?@T3cXnf^xyPT{ecYKh_^$to z?A)x>6K9-$p{xI}fUZoHRW^Jw@B^eC=eI56^#oVB>v4pLuUv|om20inZVeFR+9|S< zIQRpHtm2qp_9NfyZH_99<&xDkJ+TXkbE(()!D?pK>f&w{AJHVUs{OA)><_u%GEJDt z$Rl5X1^kV;>)jdtDgZ{ozyt<&@-j1MR*RQTu=(#Pz=w^A(DM^`% zZAGx*LeHz)O?RqbSY{;K(DEDBGZmg!AaMZ~hly(ra!#kvnU*McCfvDuF)(GB=CMt+Uc+V z2(amgv9hqVTuK?V^C1*M{uNbgI z9FB}8VB(&Perlqsrdfau_0mS0Yqsa=qFL`0`OlPIA?dVXuH6S^Qjp$(@* zeN&MH@AaU)H*$PmI@u?JI3!W%Ys3@-ao}>g*Ny3WJ50}GXWhVi;r54}kX|+oBn_nq ztSzj!Noy+if%BZ_xkLU<|eVbUv(HmK^eEn zz??n6i$IPW9P0|;0C#EthCb2d7pdWr(0w3lvSJ-#Et#lR&6`R^rl&Jcyab0lC)7w% zBH*4sx@42fB!*sX(PUT?S8CH*Jbqo%R<4PHh%Kxa8ft*-#1HN(dS@kq*o|IJcwn>m z?5)dewwQRHlvOLOq@zig7Ob*jzf2?mqu;j9cXLz`6e_DCRWa6duP{7n%8=wOF;`aR z*3+;YdPkE-4~<`#Dr6L9DM+8|nzNnQrFFK`4+_p{vS|b>Cb6b#=udppTrg}3kBsz{ zTVXRc@?m?m7#y85nXIJdDp?^WofN}CkN=8^j^z9HhYvIb>xzJnWf!Vy!Lzl));1^s zyLc)-}^M~l$dE=`C5x+u%-p;F$Ou#i1@#%ff2gvBsZ|d66Zh? z@F@6dQIz&-7cD}4>M~>A3o8=P>?-xZWBX7eNi=KWQ$26xYich&>?k2ELkK=&k`lSS zjX+yWW|#32y8r3LzvSTEU_P+Bnpk?Jx!z>C=znZnAm7@Zr+x-9^7G#nnzjM#UUS0e!)-H=y zBB0Y&e*7U?*54JBsSRb(Cww>Uw#;8KwQ4*piAwYkRpAOW&x?V6!{e>57Yt7xeCI)c z%D|S?c&W{)7*n8qUzbRR;_iPwfu)f4&Dqr`{2V`)gpN>TH|2rz;K8JaHzX2$^Y^wR z%1l*qw{dLSfgp$f^l`+1Jk_IrBH`P0bc_{7U>@q{uJhf5I3^Qd_fmBV-{x=4dR&kK zFRI#)oDC1UhyX95>tC>?YeHF;lRQ9NQteJyY4>6y3D3fBJ96gGfHJel!<8k1O+`w< zm6$`>@VSpS4;G_W>5H|wHh|b~GK!@9zt;}2u4 z%HMC@@@{V;+sK|W1Y0eA+KA=+G3u@v*oKGr0(li%Z2eTwAf`DnP`~(_LQ4kj70U)F zIaTL#a}(2fSmrdIEAa8q zqvrUip1N)SS11D8n-O7YM)Z0j9j;$qTn$s}yHrnumply}i*>ewO zKUyhzEIRx9H7$eO@4JEy6(KaBN@yJN6VDZug8YpacwgYsoAr@wGbCA4U6Ch$OFm!>=L>!llqlobFAo+}7P03gRvzUg7N#<@yOuK5|8CxCbsQ8BhW`{~ z>7(b;<&NpglkMnt?mobCKOQvpNf1j3!J_wgy4w8WcdfaeEgt;ykDie^jwUFPI<@kGCg%8J~gdv$NXR^_GO(Q5eJ~R23GCt|ss7`#}<| zmsv7BdSNwB=P(7XDu$$cPra~wZWA;yZfqy7-$1rc%K}miL0MQ0DQWK?gWGo)8cFr5 zUsR4FH=)eB1%txXSMft2ETX>w6y;!gEWb(Z}) zM$5?a`qHGw6sU@ite^15-S=Ga+us4AIr%$lB!{HEI4G@z+nyrJn}Hl@bcVoVeh=2C zm!S7wFSPz)?KHrE9~NBxVA?*a+x{3~%M;&<0lwuit_IjU_e8PAutjD@{Hqi^#kzA2 zG_cRzfEy{14l$_~*1T{?(EdZhJMCv}R@i)&L9G1ZX!EZ&?XP|FA(xsy122}6%1iHB z08jlCbA$g-h=&MXr1#4VL`~=|_f1|bk z+W+qo2LE4`4xsHeUpgI0?$05Siq{ymc5BNR5%=q+|H~a&DqqgTm`0rw@x4229dfFm z{IB&V7g(>J{$*KIs{F@Y8g%e_w|PhKyXxpQ`Ng61oj46?vu1+F!P>*Va9ROXpslE- z&86$pGJnmybJf1d=}tCQF5=e}E+;@shs$x4tGuF>r4$P#$NkR*UTzlCT*}!sDj*+` zyQqw9YXOAiJD5(FOcwOaEOWS>-?RUo&JK8QGetsB`0ID*RCmKmSp}kQI_lPYJsmQ0 z{_SncdzQxf;y(Ye0L6|Pk8oxopAjXHg+a4d>)>x9)PfqDtFe#t;**Z9A7O6|+9zT}< zSo3H9`sWEPhym{n3rmIXKc60;rmmsv(0BLlcU7G5=`!v;HP!K`a)0ly*oRD_T7i@SyXQM|&clPnh*%cl z)8UoS5qUbz5;o>K7d;+iHf)ne`JR!E=e)BzKi3e0)$6|L3?e;$N)#f}GHu6Azp|)i z&<_+Kj4i$Jq`zHMqifZC7z%d<`|eQysvg`OJL`g-IkV2xf1zD*YJzi~Xtv>5id;5<$HeEeEHvt1h#i)RQ=O&Mk(xW-)%~@h)e7$+; zF=Cf+XOb#Y7e3ew*ML0QS0Vy_Fh(A z0GmncodF+|y(p(bI{F+76VrUsPB@+1D0>j(IElu4Z_Yy7g0(PnltdJq&w#8I8DX!RYyk!M6!UQlDk#_w=KCD1Okr#FLSW2{Tsqm z^(ZO0$|)XMDtv0Y3@>%a&gb*QBrmV(MyIYKD0Z27`Dg06gdLNfAd~+VCtJJ-yn!m= zg9#j4SRvx&Hy<%8HJ^k3umE{^w3r^M3x-A;H@APujZ5zJFmR{tTZ_6ZgmfXhgsX+3 z!TOilV+0ur+a#9&I^t^Oi%SQ(;^WY!fEKe*PvPeZKSVn_?fv@A@ZcYc3v^lx=ggPv z+}=;Jc;R8;@;tU?w?v{)WB>X*4SzHBZ?|p%A8r=EJ-wLueZaH@8U4R?sN22-_tYfG zv}WzFJ~9S98u>}yUCopX`-R}orbt|)^kU{IY#$T?ELVNl$oRBG#eON_hD=IOb7>7e z5<;q%79aJhthC%-+6-j7Z%jTV6*478)lonMD+?_>P7`uS4S4BS{~1e{gcS_D)sxL^ zOwi`Po>@>AiZ^DfsNp?q+c@4&Q8%q=K?;kj`H?Mq@@cyVzMmn-+y~kJ$5dPLcgezV z|F~w6l!(AI#NWoH#tC{A!bUR4CSa6Y3?`03w?xsi3=Yb$>#dCSeQvDnJd@Y5vT4&@ zAJPHtlOPunPl^I;HPGtsA8vwDOEwk!tRNtoG~0(k_^9CKwU1NS{4bUA;E(C)1#VpBc6 zOgDcCiThcXq@Vcl`A)oz#qZz%%#CM6wD<7OY3+Xc??s+8)D?7c@CT6lR~{`7XBAav z7!4~b`kp@$x|K6d;T@!YYJRFaExedX+$!%DsqsWk2II%E3VwoDrdq>Ad0fU?H$|>K zoDDtfE1vt%?sZIvht^tX*%+54Jcr)A7YsOA+110`whVso+5gR=tI^$s_E3kkBX{<4 zgS1Xubq*1vVW=Z{Mc0KY>Gvj4DRHs4BPbl+E;(}2r8qI_!p$RQC97L%F9cWk+8hKw`U;wx>bn*YmYyhuVx zt@d_7+Ncv_740kT$7$ue;28oNoU=62dX3&rts50vyvRbFUAFbpy4)B{*T+4X^Z2`C zD>?$ZGyJ<_b4D|Y1TxUj&^S0atlhgUYW-6m!(o!eC~%=}7x+JQ3jVH%a}ocCi#}NA z-aDXctV~*Ls7QF6a{t&;OEC67OX%P0yVrjq`hV^JaWVN=*=Xw!9fMmBD~UR(Sf2ZN z9?o*%`zgte{m#M3{tqWp!aT**Dg)K- zWTb>5`+cY_V(%KrQjsm%bs7A?d0!*>6H6OvmHncVl7h{Pz$T6c}L3s zSQfB$9knQV4$Yy=-6JNu%m&%kUhk3-Y*H@}(Jn4bfU#T`zs4e>pviiQv9a)#mYWXH z?nJ<|eRyqJ#}1UTF^>uI=lZd@@Izo73{yTd_3RcpoZJn$lOmZbjJUa1sDzCuQe8GT z72C?)-?tr~Db=Ji`1$_slt!81h5oOfx6X+zu;vGm28zOj8~;*NkCvoo?p!U?UUx|FNK9iH z?Sa)Y5HqoNMHV#bA8|Li|Arf}6FCTkJr zMk{0sI=AIoW!jBeg@%6%pdeGYKWP4t%Kfey@tf~Cqbr`q=iAzt+C~VYxahYDOX}To zuKGrZ@20gp?6X+g{I$sTEo1%NL4}dm<3RG;@puZY5WzZ7hEX})L>_znd_)%qtV+h- z!j>`H+`$9vF}`<&`vw92IL@C7qHTC+pNiTW2*n+WyF0<%Em&}O zPe{;Y^V)xRXLfe>!#*D}bLM28oRc}{k^8#u-*v-s@jfWLA)1&G+}d3Du?v@SgN3zR znr*grPM|btgOsVF!E2>M7m`@$Kf(o`8ElGY3MCitJe};gjV}rm5*j&}xyOXPFV81)JCt~HFmJ4mYt{6FD==OaEBBY&e0G~LOLg)mPY=IfC@;U} zHD8kzl}%XUxe}!yh$xuyZKz|}(gZ!S(gHkX2e2>9i2aF#XUw&J|HizRLM5;o?(KL! zjaO^8oIg9OYX$Hm7drG0s9j&hA}14Vvh$=OntWon1Y}q2`UM3i%>&8(%Qog$u28BfM*g2zU$7?clhd{w84;P-Y0H2j z`uey{xA|WRSvggp|5ynGp|UJw$F&_cH|Mb;Srz$%%bSVoQ`zTJ^Gc@lzT=d<>+=BR ze&xL_8m1K}4n|&wsGo0ml21-qeWnl*nGxQ9Pm}jaKZrj*aAg`46I4z;dFE>R!8B*9 z1g)mj^Ws;K7s{k0E%7y%vJ-Eb9dBZ1O0-0b$Y)Hb2=LfP&BRWxc&d*zREu1rpwL)z zBxRra$R_+o)P!36&G;@8Iqu<;rI~TtQ6A#d!4)5E##w^+2n&?y3B%q!XA>tgyl0Im zXzSEhD)pY7s3Ps*KSCi2wI_!9asql+_d)(5>XKh=hxY6YPiwND6}wyzGB+Oy#Vq== zWR5Foq~tloCt(?q;jn+G%z2;#SV##>J(eFtx14_U7aNub7tK2E@!L%2=>^bFJ+!f9 zv2{&YNWR(szQ({yS4fH6&Vb0RI+Y*= z#xZ?YzoRjZesUKpzoo3g?Q=N4P!;)A93~IOp?uHXdag8)@O#e@8p3c)>SEIRfiWC2 zVuTG)ZgsH=C&SJPlf$_p<}Kb5@0B-_@s6 z9MP9Zw-s28HFP>@{>izMRC87zruVKf(Lf_(&}C`kw-EZufG@;`vp$udW$8;B=HAtm zfHfE7sHNHHxeW5be89T;>OU$+!n*I=5lgLthnT|gH47QGo=A!l3Kn8^02jxg+r5bc zrpHv|38L_`)B6K$>e#)wD@bMO_iEsitg-}v>vmUx%kA2y1vFKi8LkY!Zfs`W!~5r- z%`;esB<(YH-m;btT3FD!%bF>mwqfCou&(uV>O(D!ri;|P129&cwn#tvMq(L%K`%bV zSO?3q(Qk}zTUDuhPFd4eYuj>~H@aCusa7Or*ux2qFzcGdZA|siFU>0kMkvU(fy;9S z`+z6RnaoGYywq$7#cDc8qG^1*Ik49uqOh}*#`C5~?&y#D-rT28oa}f8-?QhFB}Y8C zTuyxWJ{f6MT~*IybKVpv?MMyO-IbRQ;?UlZ9j@qdc-_G6b6}9S zeLx$N4fS(qs|{R=pma-sC;7<|@s;K^9&&|$V$|WdvkCH$m=!lnhm51B%%W?L&i_i< ziO3t(InF#Gs3N4R2?VuRtj)D33X&@9oG?tOrw{1>LE!VN${YP>>7R=Bp5}GNj=!13 zNnm|?;|uZ^%x942@)(lMUU7jO36(0p!1+wNpolQmPIe0(572?hCnW&ox|ektRGn{FP2oq-;wi z*?9tDr=w1n)pDU5T%rv#~5!T6hw-zKiXhOwmg{>`AIFN zgg{vI3&R^?kiY4g?)BHnk9O6>Ce?L4lcQA&zn|yjrv0`^Nh<5|kuhpoB$OPI&EIfs z?d&aqe~141rYPH4g`dhXe7^4JS?&2mYu7^YZ5S;%@0@bFzO>Y#Djej}JX#5$6=rRj ze$8)GLl9PxDyc|iDx9Hj%?hh65i(dPDH2{`!O8dcb5i4`1Y5h2v4CmL1m!ojN7{Zh zli8z?LowJ97ld!Gmq#CHG}u797U)BF;}e>KDHzi}uZS>X%>sYZQuf9P>U<4Q?{Jgr z+`7hjVlkC)GoLU*^6M*f`%idx%mF35>#)axVCbr3p3wLfD6gDlCGO0u8XH!wj5S#pHDl=Yr z9M@UKA#VR)ETI26)q&VbjFOtVj^zfSWzkEBbwziK71Ma4@y`c^fQsLuG%SU&X5&ir zcm7gRU?xT!zaO5?^>Uy(AM5C zEt!8Wg)zY#R7!MiYujN=`Hm=u7AV=uzyk2Sirt{uDNdYo{mtZ*vd~7{4svzcb*T^ z)?NZa@O*ev+c{>Lek^czmPz39V{ZvcfQc5@n0P(D0#baDv$iB5ww-e~V)X}`4aW(w z?PJ!CL1F8@vq?c`6?rxGRBu*wX~ypV>LTP2)Q=g$YRS}}POYG^1WG;A0jABv)xAYo zo8rABj*7`Q437GZRQ)G}4YzoWIaxhRwgs=(6LmfNe?={~ztZNi#lnNVU&$X*>uiDx zf+zgkdYc5*%&voE&4F|2(WHN@=-@|G=@qP-eNI_4ZW)s=g-B&$aDwEsH(W^;s#T}e z^2&jT1dxelP!U7^Cx!P2V~K#GnMrq>Kf)&s&7-L1LEnnQ(Z!GJI_xdinFM*BgDq)~ zKiyq*%1bdR6K+4fFLisVrp1Xh$2FX=4#zg*(zMNw`-FQvlqU)~XiYQE_|(>*YhUx! z_k-!(Ue?i#f=yOKl!*`VW9%MxL%P%}rk2H9rymFY3h2cB?@jG9g$T;l3X%K?it)E) znR-YLS5;?&ir-%!A5xfEQt|~o-NEPD&M9O%z|F<&z%}x=i89-%LNRV5Vx!H-ogd)~ zvZw8C14k4Vva+>b6aQobKC9i;nc5uO`RSWEQA_sA#dM@|s%|^-VT#b7Y>0s!`eZu7 z6Z*lTIDt&>E{YKU>@HEMRfP3sz`vWj-(;`rRTkG|QbnSk6L;UEy$3b6A1ITXEgrh*Ne#C5+dqb1sn11rz|*vt8j}q?l4dcTP0!JqhVS(4(Jv7L!Js-b__le8`_?;zsv{~go`2K@Je`+;{ ztgjoMnIU3xYJ;4Sukx;KCf!Z^wbY53EAIN}-c! zk|1|aDhX$!ghLj2lfzc&F+uy17g)*bu1Ee7iScf3Wf-(ag{In%Y~CXub?!>??alt0 zk|9jhhspC~Lw9egZ{FfwLO6j>e>KB|5U$Q`0V-lP&EAZc=09kqvu- zy0re7*gU;)OPkbOw{CR<-}QB~cdpK+(Sx854+>qN1e0cx^5=@?D}wzfkM&wX*03Q% zr6z>i_}(+sQsd{cACnjA6Ms^6s~bArsW&un>eyFE=DjuXUz)*l<1RR;^UZ+Ga2^-C z#MTVX8Gq=@lxyVlZ*(`~`ek|gr)M-(+w;Xram&F(=JKSeF|{Y{(@Cx9Au@o}__sIV z$rP`6pqjsvs@)9Ik3ORj@!z>@uNGJPe?<0b>sfxxE{mSX7IgVKdQb2f#O<3zns%4b z=~a#i4yC&tk3(Y}g|cEN0z z?s0HH64MZI#qquqE5)Zve^VIrnJ1Bu4{m~<`EvhmsZ7Y*(mRRrjO_b)iT38enUr;d zP;1_>^$JI|8F|ay(pK%7LS!!$m&^UX0w9QMw|J z(c6C5F^Hc}G~@N{GmT`@iTkgQ3#64!4bFUs53L#3VD$3W75PZFRkeq6xWYV1*c+ez z&|zL#pBxaf`darp>#cGOg)!!Dcc(5j!*h}KMOPcwc04r&lz~v9K+J^M8*smY-E?whvNUO~#JuvrU1$@%iAV7jg zKkC`-@zBmPXG$~uRMCM z{NmaY8CSVe^$sb?nWE(hC?g*4466hNxbMg$*r3;5Eu43%fxk}f<6>o3uBsxc09#Iz z0x~n7-v!sU6gr^-k9&zl&7POzg5Czxa-NW_*K3T)-Y{o=DcL zmY!74SX~(Djcqg55x6kAY8*vcff4y(=8a> z{1gI_GUYc&?{a^-?e6wNG-YaPwZ#|2AK$^-8%_bq3JN_B{na#-N4w@_OAJF|-)(&Z z`bW5#kGtd4#cQ&8FJz_3;_#(x)5d1U zHm7TRm6Sm+=nC%NhW;X5t;Fx8ZxIPCj#ucy;>1T8lP>Y-OW7mRF4i}X3`)>9RFHH~ zj6tFenUy&`d3VVWfkF&6b{Jzd-^{=f)=JM4g+#a$@gv+FQeN{}JJd+j7=mJ*kdbBH zt76f)D3^W!c;UYh;9P#e;NVx207#RZtYl(d=!Au-xNJX3X}ZF0NHm@sQ>hgVN=e7Cxrw?>zHRRte zgq&O9g9co;PnNdTh-~gqE-l&`idv%?Z(RvF%BL+GJFirhc#lK`yr?Dkvw*|S(b$Qw zd@moL)5BqtK(CP>N|9Ir3tGPqMAkFSO_~tOG+JZH-j5q21eL4YbUw8-^}P9Al4fB> zTcOLXRBvQ3uh5bi`icdhyxsHO$%*f&uCQowA8KqZYl}MZNug88jsl*(VB(VUWP1DA zr~K7yXqZ^Rg%fdPoc1%9gpddil*9B)7ikdOrJnSKu&80|52dZ)(%UomFczBC*=MEz z#_N;b6jEdLx>G`NoR7#0pF`;SvaEDatDdtp^j(?wLs8$~JJLS0Mb5l{bmj7i!k*Cs z`mjeiTY^M}<7>Q3+czsSe6QsdLnw`DAq^g8`W^`XSB33diz@>Mngf9*>Ou*I;Tz;5H`L~g<_&YWdy)C4nZwH&7P!~a44$ZYx@|jS=H^2_ z6Wb_mN^fl|g^yQnRNd$C%WiDN=M#SGUTCHwEy z_%-c{}|Jwp;Pv@7@@?fsL2|S+mt9q`2Qv& zNdxibEQj1$VcRD5w~4v7D}M&ijuYfJLcnI3eOS_Cv)y9)TP5*~EaAiM{<@<_x&!9Nu(ttFuV*@8zzRXJud=eo*s-&U7fP z7j5)do%iv?WAp%q1FEvg*feN{Y943wO+Xn-8))n3o$;&x?z6%DVl2OVKU5)33rjwu zU+#8QHED81W2z2XAlhmI11D{fS??6=LdPCMtAhm(PEm?6McPl-z>kCpC^=J;kfYv( z{s}DUYn|^SwDM+gsCTGAvJ6V*Ktf2f!_1dLfj_zZH>Q1shgPHH8A`H!5P^e96JGR< zs?O-d*y9k*FYcm7$S2rpWS`%oV)R3wyX+A^Jvd_nl*kWcd4?Ilx0##~ZLhL{+i|;V zy*~loz5>c6mTxH{9V44RK*QqD8_b+|$I5pB>w{K#LyOXVSyRn8&(ate_G@=P`ktYH zhXu~@(aA-DR@oyByINz9vCAk_bUfdGN00ib*kQ8F+W1GKR%*ZW2I81?1CsHIz2Bk% z4WXJay_{iUWAkMXwXle|O`jXd(O@(SKB481sHeGX6MBVL3JfEMp=ueY0a@bbQIbtH zJ!W`cjk&#Mrnf>CDuD)^OIQ>#-!5^gcj+dHa#78!nZH31Ro&^%I}%CS3!2`hQo|sh zP)iwz9WiyW|6&1$WJA$|{6@>XY{&k#MO9;bb+)-dS^w2`?_1W;XyfGuv`>TGf$8yC7t~BLOW1XFMP}GsUyBsx2Cpc(#E)juX)=Wl zf%9-}CruQI83#cWY>w%|mJPLn%!rSvyqib$2GAzqk1_C}mx2a#6Ab&BMiV-G&6lYS zHd4`SR#%}%%zbCh%8?pLSU0r{WS1LReD<1G83VY^ltPh(L-W<%Ptq0wHR{SKps5w! z=9OjEtU6@O)e&y@jqP@bv*dw)b*%-t!t4@H`U%M~jILT*0Ps;k7E z?WMok(PHnl(X9EVTg4qOO4(aA^-!p&S>M}xdYhI;OAYUTJnwt6lhhC02G_%l4}RR^ zj0s-qlZlfNI8x$|uf2(tHXy0IJ9VTH39f2Z0=%sTQ4?~_C4&Z`_&Cl+YD5|bc56Re zM(vbh0D2y}QBxp$oAKAvJKW4ypNzWpxK4F@Cj$Ce_NsVw%TKuUB;^u2hA)xk;7E?H z?T8nZ!G@Qe8pi4%m$jFzb3JMK<#sv4eNGhH@7~Dyfu|(b*SCyEOha-nEV4GU*l$-%vk{|z&{ z5*R>pv791P!|xQ41NdlNMp9_!{!1Eph?pmZ@4{07y4h$MM%R%N$m*u|LYkh!{qB}JN9QK-~OrsbK3olyjZxXPHhKJT%5a#GQr+6hy`%hB8s z{yAFuW1RMIo-3`9+!ap}gkR0djJ1+1PS`}8Ey!$y&c_buk*e=}(UA8l%Jw)TGiS`aTJ~tAw9fK*&5>j?@zLdf=q9wzp(M$+ClR z+b6l?QsVqBFDepv9H(ZN;@{x}X8ivq+0!ig_A)+TnzaR81h6rTw{=z)b-Vf(|P4I4`MD(riEd z&QT9zjHyIOLY|u^)2&xT?^J1`wq>S4IufB$@G$~E3ym~lVKFY#T z8fE@<=EwigcW}YXtK^r)I3ada=1nlSkv87qGS{vk0~pW$-dP zb3Q(znfjtk;_JAW#m6)&+_9(iLTMbHK=?$|!yc0V%OcoiIoi&D)~i*vh^vlPi6G$- zSd&|#+9%Tf<|-In67nhBoez-6wjH+kF#G3Mx5E%}uA_N;8MBIRwyfKSX#Pb+tY#A^ z$K)9!pTqniDd&xWR*ZBoNLpM!^pL{JTs1z&HKL@zKts! zlTP$+`~M;3_*lOk#JTD>GxQfLvi{*6;4`rJpS-AhKW;{saONtLh*b~F9^7*fdac6_ zSz-Ej09tKzMm}&8Chqbe#W30$M6`9-b*lbyf%&WbbJEQRq;38l)2n#)vh@G0SMrSW zdv6s!>$l7pc9{^|`yuubYU5B>`5u|=Ra*!BNUFnbfTAY8`=_@{0$h*P`*}V0Dt`=_ za1Uf`mMJh)Z&zufkz%>MZ`NtPKe<<5pl?!9YpUglsyP`E`UM(4k{ejea2tgT_+FW; zJy=}$=dv!j$2H7V54Ntqw~R_d&l@+#9O^ZGygHjB#>XxA#sh0)nfY-aH|z-u2LE)g zAszFdaM$VE*|sbe@ChzxE(0e7=dY@)1hu8wf}g@a*F68{UdOmF5MWJQ9Af{4xe`d- zw`MVuJGj`|?-|`ZA`Q)A-X2E0CiQ);Jiz^SR}L)U_V3!7Rj*r-dvcodegp!x>{tTO zf78z|s~w>wSP>xlSHHo>W1hY14}bALtEAzkx?`e=%kiyr zbL@2I5eBBS$`mnjT}L8^gY)mB3aq=2FFbxtFON(4@t>Q=eEwPah%puVxBa31%VFsM z`@!Eo45$9vpvIaEhH5TW?u1d_e*69&7+fic+|1N9!)e5cmBEPk zomK2HgiCdGs#}zT`XxCB6Pl-}A$GAQ(OT~`L4?)&`d?Pj8CTmWC(F9%GqD+9<5|jO z_LcnhVanE356@J@ro#p!_5`6XZ0|UGdMd8vL(hs&6Kp)U6_Fo%-swXmK>~vxpNIiq`UG$*w?(pJQd-8GX5wEX4Bb#fxx4ye)SM&01FSd(~CXL{?mflxoUuDimEuc)6~_LP*^gUXK7&%_8J zT2j0Y+JU#Jn18zcDDbbLH<9!p8rgH_&~#k(=+G+{{QEU>Z_JYipwIQ}LAqweS#E*R z%%-{p({presT*)NU@HvO=yOfz-c>Hvo6pFQRfys_GR{RwIyJ1terVm{W*??vH(K1) zkL5+XsDrZN78T*HS3JZf>1k-=ieMR(E^hu=wL#LFr39)%>`rb;Rjiqy&rCBwQmppU zEkmWuX0b?OLzsUP(coSBWt!MDhp51waq2<}(W2JkwkqVTfEi6zBMmXHc|)W{sG=`o ziCt!k%$Sz)u75+8?i7N)S?k^Z5n(TSoGq=_D9V;WQh^%THR|QIUY=LszV3-kcUXgf zEyKhB)(3uGp9kBL^+orpYd7ATX>4u0YjS$A^-^%mDPd2%utsMk)44ApdjvkKTPjCtbK7#O)A?LAttwRBn~v-qwK~1hJdBKf_28I?8K|W`1eJ(oE_=@wU+xi_wfM76v(WOT=C67> zH=cao+omb=2^;FDRzXDZ z-Bnp+X`=A&Vn!4l-GXbh;$9|2eqXO6MDRS)fv;B2ZM`=!EbhxHk+9vd$1LbF>XR?i zne?ZKvgpH3=%Qfv*R92}lQ+ZIO9} zMC3Y?v6a{yC>W))(tdfyadFyhxqS3^M$Lf#{2)L%&X2}nPZX!rX_l;N!cV+~6%`gp4Y`c#<>P^U^i_MLK;JPhWyG%|LJC1{&EE@K4O5jFPR&$z zIu&t(VzxV#uV~XA8gT7n%tQv~i24?8G;_aNZwkr##EPbTNdjJv@5$C)tJ4`!ye1QL zd$XtI6lB$8V>-``@5qe+su}KeTc{UJ3APS(OUd6=ECe-5vFD0+>itu}joob1auCrwN zy5RjcW>DgDpQG2_fJOqVW+$!2$xXn#y1|gg2d|%eZ35;i_(J3l^?m5NLq1$igZci8 z1>_!~I9HIBZJw5p=k%1N9OJUd~@OtMmHDpx%^`kOT0%|}o zs_bA(c6DE|k}?4^xwPB6x402e^os@S=fw})e*Tc6!miI{k9tzBNyZ~**hIw>zmxV> zU-6e<%y~FI(oDl$rj+q=tC|`|vn#*+MyDZ?_aul~h25eYVkp-N`4)nh&4`{nm))8k zfo~PZjYki>z#}KvwL1{BMdYmc^i=)|*Uk@C8_LiolymYOVc@|VtNf$tDu@h@gHffw zSdLO&bZZ=bAt2L`Y?Yf1vQwRX!8}>;hlWH@LgJzLx|OAog0V9#aN^!)9zwp*d=_o^ zn1vWXU$QK#`sG~J>UidJ-Y%*%!J#n4g6&Y{Qe?I>`U*L4TvTGPHS)y(U<%YO1sB?| zgTCjZW8=&B^hE$FtbHd?3B?w!1+e$1hP86dwHWU~oWzDM5eY~gJbJgF!c3}SY9}@K)cwfTDj!slR8OuH0fbOJGZJ)O z?fM#hX_7V}C^)0+#Z=t6mq|iAqW4my6Ezv|4mKrh=K7e3W3P5vaipeHG+wC`qG52L zD@&HBkS>RV%%YU0;u~c_rw5 zTqF@Wb}^mK`fb-MzWMs=0VB*ejMXqQ#CJcgEdV@&fxKF~?F*|cs}DBk*mJY=iovE1 z!sxE1Gv-s2@{f{$3E9a05#fiGeT@*kL4J==F8Z)jyId2XUe)fr$)4|AcJX*e9~CR4 z_I}w?VA?=(n2N6~-=%Pi1*)j;$sU(NZgEKy z3Iek3=?74?#Byy?i#X*#%_neR1|bLtrJ|s=EmUbwHx!;!u=bL47>K5tpaOCb4)F|?XKhRO_Vy4!f-9D^kk6ZlNfv_vC;x4N`| z40h0@9MQfMvPms-8~3P9dgpYQp?H18xVk*K!Ri~?dq}#c@z#c2Q**eF%w;G^dg4Km z!dS!96ik?jrO9`iBRDfFO5`l5aSV4mij8`ct~@vn2sBQ%y@>jS!_(q}4M#CzVdSj^ zoWCsrW6GEWwl4j?TpRQzUDwIyN$gI#rjGaJv8TSMJKdAX)CIVCVLQ4KMg<=32cG{F zTwfO&*4EQq{-&p1Y%2KN@i^7DH%^+u_Vq8b1LDfOqHyMx?Yh)se&@AXH;@ZM>z=NtH3oCDoXKIkd9cSOnQ)EM@7V9yeUI9FxWSUJP} zIx5Ncg~p5O-|op(#?SzgO1TOSibIO)g$m22Ung6U1^dT51kZA5dg3FI#8r(LV+gF= zL+4hig=IdE#Np7PN~bMuml3SeedWq!wy9ZNUgSr6g%PNgI5L%0ujRdZUc+XsGo5ZF za~gdNyW6YtLy`9nu*3}y3?)ci@|f*#{JQO%6VjxG9W;Lvh^yqQB77IqZH-l92@h-o zJ(CnD-T#bz%gn6Fn|;mX-(gY8+W)m}%5+n@SAlB7o(e5NjWjX{Aqt|8J`L8lZXRv? zGnGqQ`#D1?&nPhdxI^@vgiN8Nj`qCi7EgbOcw(nt*J7zx#+UXA!`)(t0@3U)>AMq7 zXAH7omZg!wa9?ML9*<~}_4|h1(6{0ytg;m5b0XdHk77;FCF*Kj+Z*5$=f`-K z!~^XU{&={ru)KxS`}vJqCf{TRiMs)|xZ3QL$hLAyv!uHeb1}=bKtxd)WXrsC=2En;9XQ0H zBVO3~M`e1-=}=byPk^UeWKOM{!`(*1t&7$bX;>4`ulCNEqon&4d24&uK)b?j__RQIP#gY_ctNZOFSBmL3UNvpf5SZ+r+F3j?20vPSLgn$}-U#%A<8)We>Tf|ySnow+p6$qm7md-J zW{UVD;WE6)*W_{NYFFnSv)G;Z+=SPZfscdYV*xtf;_YqTC>yvRER(S8^JIL#W~#P! zDvR*ed5{*^I&3cu6%@(6qeM!!NGhFn;fv94s`J$7SuRYT@laAanluGpy3ol5;!!FT zzMJhO1oJ0$I_Qetp(Rabi*;KyxKWB7yF)hC;tKNqyU{aWdB?L0 zN(!1nbh+j{!Wwh3>M22X|zow1r}}E`c`_J|fs@ z!X=0!?&4Kc{|9TqWZlG>n@ibu(K+}PE~UtK;~#TA{21GT+RIr162Z8-On5!e_OjH3 zy0X5veH=2u5Qcc*pgFvp6^~nq=B|cHMVi~(F+?%KGHy>DBK2jL8x`JB0));FqMFHS z8v_o5+)JH{n;HwxZ_^VnWG_va%ghGGrpsV)%f58k8GOCC_W`T(*y&x_S)X=fS=KDv zf>dPs=%mHECNsV2EoHdVe*+buOAVc?yEagKOb|rmd%{2&YRbFi3Jt+FCIyu>qSzK@oF<;D*I-PHS7x(o%I=pB~=o<%fnDu8hu z%b)ZVW~8TbIuMFjFEg`SUYFncIJuP$!A|bf`YmGtcY9Fqb>uW#+F@jcF09VOhqh6qjSBomn&22q-~AWM+>!t#lyCqmZx+_E0>1P z3(AE(t4@Sgw(!+enkpEx=NO zTb|*{&S`j)kl~_u`NqS59D6Z4w09_29uq{(YDQ75eB6SZvFV?#fBQ@H{b4YDvP7$% zX{WlB`vm`kiLU@^NCji^{SkQ^dAr39G}_0z@%t_}ZZL6rGZuNNxvDAP8NR>bvDaOn zpL3P3klNx>zrt@%!c5cJ^`^BhZ=G0*f3PUy>W$DwvW^(TwIIJ%9T1hp4`6&=2u=r< zeX%TY7sJXj>Yd4^f4;Bde(*glzQ9f&1y3m{#zUrP+fGdLjirjD>B>m^-}Yr(M^a5i zs_Kinu%Q1G1~wGw&;dl#L@ zZmiI4&F)iaoiLh8OzyYxK9qMENjT;_OZG0ZqU9tX?0ys6wCQw4Nkp)@pV%MIv%qdl zT|HDDzsOz9xt%tut5f+F8K4_X>9DnuA0_rRQZ%q-l(Ge zx88@=Hod|g8kNO`_6e#7RF~BIt;*^?xyoIpiZZ^mFXyzi-H;6wVQ-(`F|iX>B`7E% zvQ^FU#H>8a5w|1;KE8334~DxtjsI}g0}Vv{a)b23T5mhVhxfzA4gw#7nTJGDl~ujR z`e$Ye>P{sEgtU_ml|xX!EB5Ez(YJ>;PP~gIrp)WelOY8>BaSWP2Q?nD*8cF7gd>>u zUf}w&h+a;?)z>qdAe}|lVP+%PrvBB|Noy-hIlvHov@Uv$MEq!_dpN>BJqzVTolNWB zW$Hq&0LBepE+!JVy=D&=rjzAzB&W^aIJP=Tq(H&05+tAmQAGnbo;V`oKKBAM{#lpE48CWR7BIj|j4+b_Ce-Z*e zQJOKCEpM!cweO{&hw142^H{WMy`pIe2FP|zO%SEJW=9jpEMQX9$auf?CGw4BFaoE za#u?WaHnFpgr_Vx%94ndU#_$~+qUDk>GKcSnR?3YlH9B~`q#AU9^0I(VabSP2q%;2h~6n5+lHxG0Y zh#-!Cf4ABuTCNQr=7&HsjztaaY)lW%;ZGqYXsR)Sa9elPjd&ikpnG0H<0WS#G#<&O zj%R4{>`uP)GQ!iHvSgmm&T7F5l~^{}_XQuz0^#fXXU4rK{o-0n1lD;uZ?6FOJtF+e zS}v7N_F807ojfm}#yOW` zuyRaQpAmP0i!6_%M!%6SRYkgJ&+pGq8ssUal^BxOjjwg5qPylqW&%U&-v(-Cj&%%m{CV3 zAm49Gf6UB7h>~1<>YW+QoMw<(J%!w0bPu6Q#0-3oWT`Q=_2^g~=Z>#%nPRoUr8SQt z>#bhij9hoQ2x|I9OkT_MZWTOiCzLP0Qa9GhJ3DIhW7{X2mHha`nzte2vzL7Xt5B}% z%9=_>+UW{6`W8bq%=mDZmS1w{tHTSJJzJO6*VEu>Z5LPAlRce9TqUG`Uw7P2 zW4dp$w)*7Q_%BhZt*%X2TRcwaq9}9bCzb6v42{yz))Mmg^Ox7#Db9uGKD(Lwe&Um| zbdb4wY1a2YmPjxmVwgrX{AeU>aRF|;GN1eC-YT|h`R(GwU0gQWK0O=zFIn?)Lv4yN zNGmBy>Y^V%v&|p@Q$C=V8N&Hjw?mvfArAM-6sBP zTO*c8i4H3>>Hhh`J;An>*KTA-BEwww@3j%LgVnC(;=>PTLhrZFhasvp?(cR6z zGAPPI41EFwq+jD)(fpMeIL;jW}y2+b+lL~weu7kLpc@dAf<1Jg&ys_ zQ&rj9B;g|Q*}_A$Fa+Jp`qEBvlQWm;iUIBqv$F?Y^F2X5v_F?P9@^3R{npLr!9B&Y zT$SF@H2$wp>6P4*!hMT>rN=gKD|ZdnJt{KkG16*I}@3Y02;{1VOAGtdAD zou52;E(M6c05tyGPUHu@uJ(ccv=pD4@tlUDBLt(*07hnbv<|T3yKSzqJlo=OI{W3b z3#e1+N8$Cy`B=%=S+4W60B%9}iMN?TroHE~DB^-IH#G`ET#{jSc4wZ^lN&oOExfbT>Mwv-c@eOtxH4JJFE zbJly%LsqOCfOB6fXQ-|u+|K(bGu!wv&nR67N z;3ZUZ zsw_7O0X1p5R`|NCu`Oaiq#PKnGGe3TPJ5j_HWt6aLyS+|QG7|a)zn&MLBU&<&l-M% z1mc9e)X?)p4JEb(N}jON`t0k=uR$Y4+XfH6CIK#wfN4VIZkiW^;USw|>+};TZKd1z zXFeU%zo5ylWc8E9B!_95^p%S551uK@0ENZY(!%iF8mWp7hf_iIJjLfm;95 zt|RmNs%2TsrN@)a?u+xQumYJDJ<1rk^Icl~OXZ1t$d%XjH$nJJipY8Mi{cv>IB zgHNSCYg2mCPcn;wX=OVL&9q?3vb06fd)_LS8lqY?XSzKXDLn9}_s5J-IFh%VD*6uO z4k=6m=_Nnz>_Lw<@HyKb&y-?jV248H4(shQU)`n;9DR`jtw zLYSBC6%UY$4*W4A;!zW$-DU{h%Na-48%8I&y~{T~qo>U;Q*B#S0!X+eoJz_eoHBTS zbNAQ|GkN_O`3TSdFFC|RS0w$uP%|r zLEKwK#no(4qj7;if`tSP?hxD|!J%=dacQh^cLKrPU4m=l+PJ$*)4029@Y~7vo%5eN z?%V%z>wz&g54(5Cs#-PITx*sYuIWuap%{A-rDA*Q^8BO>BN-&*dHH>?<&d>h63kkq ztfmAZ75Y-~QFf4+1eXFVq1`HN^yB^;3AurB+kP~qncvI_l|bT7)c42ij6mPsS%Flv ztFaR?`vJ5`;PVMyBoU~ZV;aa?+ztPX5V@AftXBEZs>M_28qI+|Y{UZmwt)X?S9_$o zM4bfuYiOT5?5ntBOWk2?uqQh{Qx|OFF_Dq&-_7*N69SbcdL7Z72Q=vSiCIXrMcvS) z?1mN9DYBB=Ro`Cv`q=8$qB^sHY;5(l_7?SdaSqumJv7E9$?s<#2lUa(uD~2HBV)uD zc<(9^+H|DNe_4^=$J2Pd4xxAGVxL406Fh$}U_|})-cupPX((APPO@>tcs9xLTKbVU zN==@;!FhK;M#lYmDV~^Q5$|M1I`2Qk?_+~KdxTjI?VCCIOlnIt$}d!9a~%yP+6Xv( zBpC#*s_zC>aIxj)HriGK2bw_>e5YN-oDpw@l(p+0Fm5UC6*5Ac$CeD=C~2x@5O?l; z9x1RONf{Iy_-2pS41dBmrvu6K)6Ax$E6(jB$?$~QH2HmK6VkpCw?Ms&shRL#IqwjO zUsK~qVif;fP*&)r`FN99E6CnhK~m&bp+6#5v=Qtdj?d`k(;J{ilCV#l0|cK90v>13 zPo^GHZ#Pl&hSwx?tNs4jhY^RPe!-P}AU=m%bNm!MIyR3Fc-3Jv?KUo}JnS=e6P8e; z6BHnLxII0lOnOICBWY&G?Qc%ZzN+Tvsz1(l^a8|g-+a3`v^9Jf?A|cyrER~F+~^uJ zV|o4QX^X`ZVN)b#W@$B`+vAWDTcMJY4O^*Ree|vBL~x!&%i^)_h3Z;*bIYm1L|OvY zZ(a!=(7N$-ddzf+Odl6j5l2+tVczCV>{01^LU6awjF|A|O8BcAx~p>L#@7ud3}Tmu zG2{=-aR%y?r3R^V6eK*w5MdF8o^$^6*sHOy5tb3v6n>la;#n#l8%Pt^n!UrUhWK#> zm2_iz1#%*#k*8M{dh^FmP6N z4NLmJt}`7;;c;y4H}E+My2^#y2g#^8HJ%@_rziIo@!6i9M+!iqVZo1XmX~7sVZRf% zw95_v*l7>9qJ0vjDi0@~YX^N7J|vvAocaQ=!31ORAe$1*D75cqqGgqJY?iQ`M5ohv zxJ_2znLtg8PEQW4mg?DMoQd?^cxB|{&5`*@$blRYvY%BQ@kl_ep(N>eLU>IJ)Ouu* zCu|ORK!At#ACeJbLGYv@>bV$`@;c^eu}%UtA zvPk!$=H);K%-31XrjJB6Pq_KPCT^nSceRJ7v5@%XLEL9`i7nB4{hvOf|8#%(X$!d3 zBA*qA|D?5a6DW*w9qq!Uv!DX#gvfD9g%NrUtv444OY>v=*L$pz>5QMhpal$h227=^K^n2kwa=$}o-mS2- zt+5FxuP)Ml{kTBL#H4S?g^VbsepELf{B3#s2{!Y>t$pC07D}J-Xw$GNEBDV2S&5N^ zJx+=C`g4X!xN6*&jZ0+yFyb)dZft!!P&6gz)v|<5CK`z8CO$?$jQ#x9%z!w@=pTFrB-WQ9|w~t)>v07?ltaML|bNqw*P! ziUlA&Jj0f}sL8cE>R%OHoKgIRkAB>y@*NQa%Z%&x9g?EV6M0P#ernmDPd|}6r#-=8 z=b-S2v7;7M#?RN3Kkv5t@v70@pL;(qmWRegdOOiZU)=8QRSU35e`buy#PqH_WbkgB zkf!>hgI-{8(W7_bLx-KSdNc-3)y{y#+=jI}dtH@b78l*=RJ_brs`LF(=Xz&1!3k%% zxvcr2e{AQjAj20i&uc%ASUdw8UShoNAL=bOJ5(-=IMl}b-Il9AJ}(j0;WXmhjQ*PV z@nkj8(Yt**54NMc!a0)AFb~th-azML2XCJK=z4HyJTx!j7J7&u@a78u^tDJQi}Uar zxdcfmf|l@uwXr^-%}q~-$K~`4sa2RvtOSz@?X$ZFEy+rYcNa*lSPlkA#+xKyQDy{> zB&kIa?f0kT@#fKMe|4;0Ir+`PF8}knN>d#f)lQN!i%UOXqK89vL)?E&TdU4=1D1o- zF7mZ0kDH0Yo|h&|2yU&PL(5r|!Wq=5lDWroH(IqLE23fOSXj7Tw=G2xgxOt_ZPilqz0c3lUGnnaESh(FKWpxguuZN?cr{;9rekw zH8CESmR^cAP$|t>0sm_PaZ+LD^FaRb&UWVCMWK8{By%PPqHKOmiA4OT!qdAa6G9sO zZQw2BF9PF#(oE$3?NkEc=4nYT{#sD**VbWseLfl0#+ zOfo?6-+~AAu>PEDB^+#PfN9Q4mX+{0vB7^fle?Y2%U8c^M$&ljPL!@xuJSuE{fNH! zu_#!@9M#SencP}<-yQdrK_5aB(8UcdXgx8C$|{Eb5ag%8-cIX zk*=Yzq(VteY{l1(d0}W|5~S8fdh*#7RljOpD|Ap>RG{<+#1>tRhCz;h6Y~c~Tw97; z7o>#FsJZ;+Lb!*Fdzr;oUAzAKMGbQ{kOg)jOPc^VVY0lUrkcaer?aCc zj5VqCJjNZxxzb5h0N0OYDSA5tFU;6bF+Hq^9i1YkI0?q+5b(r$xoo^S%+0 z*<9%w)#|L;#qy#4oRVA*>q{SNPDAx0HpcWv(Z>Ps1ucDDf)AYC&H4{CQbR|?a)eLS49UzqwMoKH^oaf%_YaC^-H6-_C$~v4eT>t@FLA!v1=pYG zXy`$i3I^Mlo?EC=O_*34r~dnUa5hT-@t&d6y<;Gzx2&UyN#7VD(BTd|aL zWFx8KTCs}MQq9xf_EShV70+z2704sv;~0jDNhf8mHaGq;#TS3FA%0zDfvyYCR*o8N z%e?}X>PwNd7UpMy&`~g$+X!xeBBw)f`O&%5jO1KeAaI*SUR>>l6UT{1u?Q9tclL|7cSD>I`ko=V0ZjTb+bfMVbqTrDoQ4C1SA44V zGYBN9Ont!##cAQ&9{rn7{`7`s8?!e1qUx>&QWZ$*3_BzM5C8*ohnHZbK`5=UJ_(AV#@ ze}<+NGSz`1!X4HhKqJ2fbU)*xsj%}NzD4iL8DnjB-=7P|L{1Et%+o}@n zzK}Y!6IC1{x%#=v6w8Z-a#VqaZr;P95O0FTTaZcyxD?rZt5MI*x|iQS!!Xi zhf%|$e^PSi_$=P6+9sxM21(pq+*2KjmE3k6LuCTZrUWn*cJ4){1(_Uz`G7#ueM z$!Pi0XnJ%#9*^eEih*h>|IclV?EI>UvQ_MMO5U+qwL-L+yV*O~w%|ZtqvOpT^B$J+ zXtCm`=0@dQQjrl>6dhROe3w^$Z$BN0(Ds;zwASA>_q%eh(&C;wduuYZigPJnGu8IX z1w90BzI1;VQD`*15PSp_C%+Bt6fs^-EZpd#l8dO zO-M32y}X!3lGyU{EYtbOwq)E#VqVi+u|Czh{Qc&yl!wzi&#Bi91r{R{hlQ>(Cd?4NS` zvJ6jv!)CzFRxX+o=+4UL91eZ`Zwh8xMeN7d0t36=HzMwaP@S-e!px*6K%31{?d;W zGT~_$75oaq|9l|g?}KU+i;j^lh;*by^%toS6(DZ<3?iw%C?|VA;DNTeUd_b88Xs_Bm;P8ma940u}xlNzOzkuHsT zL7U2OIM>K8!NYGbW(X8@Q~ zi5W}!WBMhsu|Y92u3t+FREh!zf@01~Jp$Cwz78zSg()u4MvcV{E9Yvoqj7PI7duNO zb2Gd_N`23%D zi8Qh5h$c!jn)OvHh$014#%GmrYURZdgar@Cx{7wk6Fh$DEm_5S!O?y zP{7p^`5(O?#JK#R`0ziK`kVf@Z2$lLgQr%~_>9t1X4Du{vGBf@1tyEOnkt-ASLO)A zq0s1Hqb8ilQu3CMpy8Vz8v|h~kv%`Sm~W=6!7}{>D*_MS*VS$ji9D2AAMS@>3v^;F zHjxS+Ei{|mhOrkY?-sNx-8uLBlsjAD_qvYo^Z;_t#}GB$lP)`d-&cjf{-8Q8I@66h z`vRtML0;N-EyhJ@H|}A72CT*FFKUTw-&QN?h$lTl8$m-wGM6E}IDrjGJRl|I&8mxx zRi?R&R<#j-Z?elYaV9z6lyWV!-E4QIv-)KluH1rO5_{_>MuEXiaD6{oQ5^D&My90= z^IC}#8KW|wr_zt!cq+2GwAoqiw$%oKU8!$H_W+b;u_=)KUb#1n^?1dh*z9C}sRr4+ z51KCxWlE{AH=k3Pg=tg;)o52n}VUucCKNNRUQRh!U;xW&9lIyJ>pg0)tHplLX6PLBn26 zoFLgw;`HB6sQm3j$G@FO@mKn%6X)GO@TDfErl#!e?L$LD*8|&Dtg3)?Po2E2>ou5} znKNX?CN`#|mj_U)31$~1DNLuJPj-=j3 zZv*`kPDOVr%DM@4g@e$6Or2^;wxsAS{VX2OkXkI%NnG-ylr)2y9jTLR$aNcMLw^SBHrDQf$XW)+2gF_77)Umt6y|1IYVkH z$KA&$D%CqF)2=4S3 z$`;?`TIv;}p^U`^O#A${RX`*TP;8gtK;)^kFJ80Coa- zqJLcJ7u&Hb`jB2K-8;g6g8Tvt%dS5-vRvz_agy0NULk2T_gcA0IVN(cyrJ_YB@e3~ z=r;+2RFZzBq#UhpRyg@sy`MuCEp8*B+a?9+IB!Kc1eL$8K(Z+G)dFNq-;{M}IhO9! z4_$2hTpTx+PpRWznfh6us!3VX>UnawicxZ#8IM$1GYALVX%wPQR6j_P0|FMGGm<%j z4KxHScoiZxZ-F?w`&97+8a0d;4HBANSOlGu>8F;pgT|2Q3RGdCbjb$zw?T7WH}%8q zOJU(7BnfzAg1NdvKdVF3)YG(6pWjh0)vuhVSg|vF^$vg9#$fh|u~v=A|m+ zk@vluXE*x}EZSr#ME!&*<2|aof}6HkIWxX91}V)sHq>guKbtF!=C;me53{!uVsRsq zq@Fx?(QFM1oYrjdSm^9D=#3z{zrCW63EAH_v$eH-cKqV@dMiCvVnc@ip2co^l!DoC z>+7UqWW=XO$Xb$-FgcWLSWA+{%lSNMRk!gVpsL^V>+Lqhz(|CANitb3X*_+4Q=!g+ z-_HzUDMTQkeNB%{o!zJTQBGL3_+qwHKvRk(=VjGpPt3b5C9ne9DH3{(ugJlb4uP_` zw2-mgW?4?d`?_G$oboYOMwolW;Vw^cWLUFiG<({!lYbDymg zFo%nQ_L)I%mCqY$usK#cV{bbT+?qWP$lunf&|R_#+6GjLg8AfPM3mwZ_zai2J;h$w z2jX@RXX2Adev@+f%0fP(JLTuz97jg6N?fttS)_nE@v>)?c-*;&M1ON`ib6!xvM@Vc zHy%dTEz|>Z67Fg`klgAL>3S*pHe6I%9sk1NyDXksHSeYxbLOBrVSP(0@A|TcsC+~f zA2t1?hMiR)WWVzP|2h*z4%`H(dP(IfkaZQD33E{-0DexRfA@xqfJ%9t!Xgy@(X`Rz zDrEU*QDIz8-C?l$?j7Zj`u47O$a5{PyDJ^jfjE%OU2F*UivR}3BMNyjnn7c8t@6o~1@O+@l(4W=clk{WJ*gg;NMC1LWbC)O60*0(?! z8Y(8K244yLzu9TL_^v*kZpBp>QIB*Z5x+>CO>QZwQD`_lyC$b+LFNj95n?b~LmlA7 z!xB_T0gF{_bv%4LW(rQ%09X6ku$x2} z+0pED3_pI5qi9kxXP-gGVH22jXUw*}wzT-oJoZKTPikHcgU2vCSb~uhpm{O#h)rd0 z=yf#MMM6KJ+>3cxKB=FlU|@XV1pT#b*u#xay>nJ(cz&ZEDy@w&=pZ1Zr38I%D5MJ0 zTJ<-7<{&_yB#R`oGm6qPdfJwj4-0xinuulN_S9CC5G6F^Eo&`LosbYgg?HV$P)G?X zoNq}wwULJYlALZw_0##J$@e&u8ygXWZ6+pbTa&5X(F3_*!}&YG0jT=ddGUB3t%JfZ zO47#b&)M728F3a7&g?lgg8ZVQsW~LHXJ%&B8|^=`#eadB`_zkK^3kpe2ocE0FDyh4 z6j~1yt&SnjFVaJbSQIU`Ju~{Md$o;EJM@5>7PRl6_G+7W4b=%$Hsj z#g5_GF|Xd)+9Wg|(l`=VZCVHBc(zXZ6f2BNR1@}bN9A0+(c0%9jEZoU!=+!_}T5Mr3FDP|VWbQEYhKWZLifI`_2Rj|j ze{f^G$9nlfTB^}W@yai8Y4(b&svzLNa~F$aPjYoJ6J4pN$Ak~V;o84@Ch9<9lhxMV z#l_g8AVrm$dXH6zwu*^)1tT23$7G06b27Gqm$)!Fggg(w3Kch`AabHrM<_n z-<2M1+R?ybyFq@@&+-`Vg=jkan3)a@*KB#n*r=a{ZPWF#Mo}J%X;1^lYrx~nG&7>H z-mq=n(c;riaE$0NaZ8(Ix3oHj6{B@qIrx$L7K*IEG;Sen`*j3h zNT4hTPqQGy1nJSTn0V}F&7|qEK#1_upHYQb<>%LHz6EuX4I))#W=d!!KW?@QTh>5~ z7!<~C#|OvF^59FNp(FO=h3> zMHd8&mN*;pm(+_HNK@IBvc@`>TZ=~94iqJyw$7huoAfax zw^~YcD`}1`mL=5dr|Fy0y-iNZXDr<{sNGWj`s(2oj}XSH+#Epw$4F;VpoT$g{!ENj zsB`-!?+5yL^SF`baTVx!Wn8gV1Ww}t$`Z!mL-SgbrUqHZAQyQuQ@JS@8ftvig0@CG zQPr$03?R7S4>%F>K9rQv{WTa--~nhv&#Jk8#c{*PeGs$TG zW(w$^pvuXWoLBR{YqxYFf%yIyC)d57Q-DT6)Bc18E95or9Rklo6xGryMV?`0W8;(K z)qVPlm)xvp@`;j?(t2PwM!gfn@BtEw4?jJ;=_q*FOhYQjyQQ8(AWn6G>mp~mkFzm2 zF{JRlH_HKk6X;y=GtxeVPL7DI1rx;LGIjgj4pOL>Mn_@+wFn3~(I=p#!HD-wA#P!P z&Y889QAJKc%tLRxote);7_Mvh$ESu*Ib#VwWGvGakRy9H2jO+RXc;Hgem^CgRQJ<8 z^YX^5E;2qYHuA&8p-aD!_Bk=RbO&L}xzkoju-*IF7Q4rg5cBv-L3jHwq?ZN4P|MVo%f+16@8%?~nwKwcSPyN8c=@!M%@R-2QrJ6Th%!@WU$Bc`Qs` z%|i>=UjWHyV9~O4s~#&VqT;*2EBQV_p@*S9;62_2<+RwO2zg`TlRHq>PX+SnIC5$= zar1$n4Y|_F`rAZl6iizt)PM~sTRl^QK5Yu}rLSd7pj{nl1DHWj+{>UOu9s)DCB;#T z*<@x{ERhia%r0j#=(L-LEr3X_vgy)p{kq_!=M1{fIWr~xc8E&KyeV^MOj}LG>dfm> zHm0CAp%*S)3{@zI?X%rclWWb`;xe@WL-paAhB=*3kriG z_hSV#84U&pEgr|E(#iox+llukaK_vOpbzT%5`^nVP zv#&8;OoB9~g_tASZJ` zwMbP3SgCVfYlf{N%?oQVA$9aL4(dBJIE#v{ZkbB%dX7Gx<^7$pTpA_02+C?w{a|L2 zdnB?wZ2k_hC|XDmtjAxD&Nj~-+yF$WwfbwX_gaP#sm3(a5);i~+Uc^L_|(=qgd|jv z4dJ#2h|s_DqErXqb2m>7W4P@pPIY@LQhP?);^xN5nEyC}Gbo|9TH}Z<3hHHnriHW2 zy;jaJbN`i%=jM(_&0Iq;Kvh5~wTN5G_kGs67NS0uD>=)u<6lF-5Cb-@KOczwj#mEC zRN%x1GZHI?>HS>L>LfnZg@y!;Q6}{>*!5w`pwCaypdy3uXtYSzFb$G$9MNUYx`reT zz`RSQY>6U322aA{>r7|$`7wGQ0z@$ATW3E-M<0%1xw6=>-hn>5gs0Jq^MCUExf;dw z68C(i?5t^enwgu_jX*9Id$KTbTX42K%fv@eQF8wmz4IKmEgSjAZGw!A>v43wO&yEf z<&8s)sw4@7bg0>1yrkgCRg4agt#xqmCa zxudChY=53IdT+vN*B6+;NyI2>C-=N-sC`f(C=eR-PV<~CCXjJ#o;HfHppc3u%1W*c zGkf;+YTC{Fo8!);cNgcCQC&UhQOb(q;YZqp(UdufcoqZe)6W?RJN8!t;Tac%jRQ_M10fa0 zVB?vJCaK66=(7SzU9-Lv+Dd_TY>EcldS=H9$J}xBOTxa=D3x`xPBMv5vWHW!4&m4Wb&LuL(_N%y-Z~QDgMIGY1={jg%FF5!q;ZJr zrev{N+q}@*JR~knqb7Tx4B*X9M2H3UyRhD2d0XaEAG%NWiT)VOa6!BLSL#Jy)S8=d zy#NMk+9G(pQA9QfKF}!lUxXKsaQ(7$ZXXP^F&kO+1&GkO8Qqst`)?e1U>#0O$^?Sx z5|7Lz;GrkAdr+FpoK9G5GTND$jvX+^OX-C^n-C;b2K4eZ{paSd#9or2NT6^%J@&<= z5*~U|tCRBaX;HSrvI52xzIlwfG|f*nTBbFI`p0)|_{4YzHPqNcTD1%_*E{2(Klciu3+`WQa(($`cz1e2m zFYE>e>DoG)KGHqR+SwbAnl_wX5Y3^Rl()pIDG%Z{uk7G#C3*>h2w%~o@i&-?9>feG zqFSc!=}?EPw6M@Ady%v%WcRCk!GH_{=MT}Ga_EcELU^E8yEaR~!{ z8oXrHMp{~*YFJeu1w%4Ck#e%P12~RofX8aw%=xL4l_G>HAS*{|Jr~X0i(v zL~c1V;NkpMr+QbNgwmXh;6+rK3Z0VI?z>%Z+fHQt>@`HuR^GnyfG+E}x~ z-wwpiS66}v?&s?S-nDYCHEsqNHR1zq&9vyzqO^U$`FEeT;iXsf6WWHqOLSKNsliu+ z35=rqSifz8;JXp^=zL>}S|JOr)RoD;{@@+LX5C7_R9J-48n%VFY`v)P%W_ze=J3_m zZ-SiL4MQmFf|6cBmL_(Z7)+tAdIKRpVws6^h#5qKU;7ubSbb^7y7qr@9UZbv=B1U9 zSJ%v!6?$=z%vN)iKFp2YYGoUv3LO_8se}KpuY8;`jhN+C-FbDdnmW|$ecz|{?0Ht91j1ZUESA_ zQm0DWosIDXp}+np0RS{8ytk`V-l^*Qrl5a1=j0PqZWQCIF31-ly;NmMB!c7eDU_Dz zeBniWZ3~i(fL2?&w36PshwwM6)@AJ(jt?G*N$0WOZ>0nt(Ka65to_kmZjD|=1kT3( z@?(F|O3h=%e*-Ar5(D$ni9H`v)JoayPouC?BJNHw-d(fC+L6Kvy5W9oZl3HLiH zH(X_MJhOrKA1k@OT~X(}fdFwgEkvF?*wsyI$*I4&Lz{Wn#6{wJqgg@eV`Y}Q0P|tE zs1#YpM7-7mH12pdvB?@`7`!*+Qug?m@%2Qz=PdZ}-0IV~sN+Pj8trIu=?wfiRYduu*qg zyIM3VIeKh1l{VU6C}(YSnyi`Kn(R5p;dvb0TGy3t8cw+b)CW8QTK?QJ5v>(tvz(w~ zc;;lv$94%JIaD9*N}^p=pIQZ4J2WG6W@4F#+EnkN<()ufiag2h2d^c+7R&G}c>RFk zuGx3J?1~L%B1HPUf+b0x* zE+F@~Qi;gKqapL&w0XYycHm6KV$@BP{m6MJ^opf+CFRiW^VD9E-nMsb>Lehc*j5dNNU#~2>2R!rFv z6|GKgIm*|Cud}zx)}5ihdRRmgoEXy=3vAy|=L~beHSA*h)v%PWu2C>~`MH%8W}YCf zwAoiY2NaMdY+@a}tsjfyhhc6QYSS5w1Ta()GFtf1g)c~3GhfMDs6qTby*+q+ahv$> zKtH+re5Ym@s1ygv!;&kB7JUPJq_p-Oi~Yt3e4 z1$-@ZPHSopfWeaHKLZRPNsRit*}C`Ch@;!i zv|kjaF+?SgEOPsM#Kq%OY{G9f#clILXl(r!L+lkULI|i^kpWwwD|Rp?ITXL9pFdtr zXus!rIDyeQTStT@sTAMmcBnzz}h!%af{Lae7;_xhs?v^r$ zX`-}{PE;nXtyuSLatM&vb+PXNLcm&A<~_Vy{6qQ?mk#yvuIc|7WS$3ty&tKC+iO3> z_3d*9m*hG0KxOGDDp#mdb<$^s(p9y~XR*S8eYFSikd!S$OWhR~`;CgX^E7>M>b*c| zMYTl~va$JQo1gr;X}DC>g<}z>WKi0Cif z>_N`v?{9|L`UgzyxXad0B#ZGx8WJXALDl$Nc@M?r*$A`!glQWR8J(WKX(-G(y;Phn z{$8X{b$Qy|Hd3OOyU$C#<(6^GpWnFSOKtN&0o zTGQL~7s%o&F4Y?>(s)%6mzOwqHcsccS-QJ~(CC+g+%c`Q(1Oy!Q-_yBwYAtR!l!SR zy0yLy$5CBlkk3#?BY|VQ8)Q>rrW9Dl;16vd_$7g5B z%WUmKeSZ1W)TX8tORl=(uI46I2G3o603MDq7mVeEJF1tO53x2h?+4;?u5b~i$-KcT zTAJ@MIIw40eaV*rWq0kk7ZLs`V!P$G3UTm9r{2C*HlN@>$3VrUA8fR_T$iFz=T=wG zkfmHk1CEX6M{eQqCr#84X^%N+&)nS@RYT=&Ct@c=ORJhJ6_|L)08obGrRpK>>66(uKQ zV9?nnbHJCDEawK=8d@5ebji9zMw9&GCPrBxCbd#vb!M-%7sRo!6r825H=&C{aD2!DTzN5OkEs>)E>sHSXlBH_TF z*Qa$ks9VQI;1LbXD>2VhuAM8l8no3yZM^KuDC+MMw0;$mu+QBnc(rhQq4FPIRBQTJ zI_MoYeh`2r)~@F;T|*xXZmuXU&gC@CYt&R0q{X|&gc*>uVl!FyjOC3#w4gye13G?QN8u;!dZ+LT*sBzU-J?yfev^CY_6_qC*&@UO8 z4n%Rln6q&Q#??s(ySTY<4YHVIlVY`QaS!^>tP+4dqkg2GUdAdsUUL)-x||yHNLSVX zId1CT2JtQ3gDwwt=Ty)gkD9;D8$#7=-!8d$H<5EwsWZ=v`P~ml$-1wYeTGeiUIP^3 z&KFOWj>zJ6409+421>q6OUjOnS$hB4KRaj`iKk-iuTW4|hRjB}CBKDJA!F#*xI6o5 zswp^7BiIOA_6l-Up7-iIMy&Jjpl0`b>7VpkQ~pM*0gtvIkB6a~ZV}<@DH@PO+QApw z!q?oGv&d;g@f{a z46JlLo+jY{6BIw3)->bc#v8=n>$l{z=T9Tqf4HO)zvbb`b_PB5AWVb&ymr_0o(k$; z-QT}c4|TtZ$V=N5tdbNfjU*rZocN%j7NIWRVFpu;P4~Fe_>QuWmtGI)8`*$jD5=D5 z#7~0%&zkzP!zi=wboNMu#Z(t9LAR?P zp!HO=`wRQ5;_woSOS2Fe9e!`^XyvudT-@7Xk4zM%z$-9{msO`Mx#tT(WyYM)d+MwH90gxsSY&-{N8Jf3xw{y+ zI2^rBGD&FTp*5Q}_!CMQ4vWkD*P3`5%hBH_q40W6DpHhW{e#4VV)Vb&Nf2i<&*A?o znfL$Z0l|4F(Qff@JX$1sa-5xMk~FaKZ^4Tn6iNsPJ25d4L7_r>;v`=%WvZZ{@bC8= zXYV3-waCcGz5>>_m*!QK&z;6cS%y0IaB*?z=;;1kjIGgy3_BpoARHzGF?;)qi#=H4 zmcwc1vK2>8PR@(vx7`~yQc_aF#Apid|D$^G_eaq*2Zu%c|Kof-;nDpH_)Crd^Pg`F zf0DTVZT~#9V#p{pk{E+p$CyxdSPAIFn~o8_^PlE|`ls$~55Rp_lt%Oh;G&=aTQ3;v;NwHY-BBynfancfB06UMnnwL5HhDqA_9?(f!E*ecOq*ZW|Ku4>TJ6|b zIM1cq?c~_{0#74$?7_D0_a86)XJ2v%(J7{eW~+#-2L zkrF=YE!@tAD0sG?)lc zVyVJ!wP)hUrhQQ)k$jJsbnQ7EqC%b1P}o zcMB(fZs^CItAn ztm>Q3BEe@@W?GN!DZ(V_+VwhXMxQ0M#z3wD?R~~UJ z5=Qc$4p|nRI*Pa}Zy(FwJ!tj_^q35LoT6e}S0pu(*g%^S&$!d~WfH(W8C6sKTFTOH z2Q$Med}3D_dTAnV>w3rbGAk^yI5;x+%-0pPA*a5&r59w*!%6Wmx{5X z&3~uH&$&oDl>a~Ey>(QZ-M8=iw$vyEO7UVX6nA%Mixn>}L0TvpJZOMWN`d0V9f~^? z3Bg^8y9OtC@Zbsf2g@BDms8wBjn`t0h=BWV{iGJerjQSeYu~FsKVy$u3jYV#yd$%P&DT#;A((c1sqN%CWso)Fp^a{$sr!D-IYm#K)yflp>!)C3XjF06wM3*eCfI}Cxspxp^k zDv=56J)(|%;W+SxYZ!S%z`r~Nwa;KP9V&*Nv2KV7m;3u@m#unRoQI3rAg{D^{R~O%38!m|4pFtnTRHQaW8BQexK=K}4y7x%EWi1;A$+K-Zh8D1zkh7VJZ7F z6NqQIt0cEK{d1Q^@tmnj64eZs(UC9r?Y--K_xM1vd6Jm0n>+70!#fs~QKjDapznQ} zMem71CW$(%1d19TbMIHVA6+>{FV-dc>|GrPW-Y>{J-Q(%nB)3iOX-rEA2+5-N39yO zmfh3N7vFTV(%d2wuvq&MVXGFZRIpOqvGJ%@y@QLd1a-az0eQEWPU-iae3Xe^d= zvLNw=CdOSCgsH8Z*mMME)>K`(8v4C8WBQ_#UU&No-_N{pUC^p?RIRrReXJ}mXsWec z)MHE|q_fb7tu>(&jRt+DKHCeHuf_+q=CKLi%mVkl-Bkp&indQNE3E+om*B9+>{tpY zP(t$5RLjK-y?nkZNfwcI>RhjOASA|NXzX5OB(*sT3dEmVagc9}5(nbRR82rnCRq3v zKd!twhCeik_%x>p)Ldh9ZGzEWdI=k**YTRjBOK>L%biaq`f@&fo(`4z>&rsqHZl3d zgJ~Wb0budLT#3AdU;b(8TXxw2-Ib@cAeSYTHgax8)Xh|ioAe%lK!xfNjiBxDVXA$p z2x$%4#rvvA;%p|I=BsZqV})atBaU{2w}l3BtDM3D-yYbcP9cve^Ur?o;UNH^WU%HtHPncqGjLqw&F$jKW)W67cgsXoa9BdFVzHuF>;OrU}6 zZ6RSaH+s|CrV0u|t}CI+FQXF)VTO%$=0lM%Z7*%@JbKFIs)-EF=^Jw@zrW@w>f%4{ zCjVV~#RFeVdj&kX=`cE%)cEU7>|gi&^?u9#?WW|imMG_V>L1d;FjM z!W*+?MBQZ+XnOnizx$gG@%Q+l^FMWT{TE-fvX%ewM`If*ES<0MoEBO3*Lv~?_#wn6 z_82c|?{(t+={+o?y&u~2+DQoE)eBDP0n=HnHXjK(r@pG*s%J$pH9sM7V zVqv<`u)B{DNom=Lk3<(&-i_<$U2Eo@jeCfzZEZh~e+5NEjuE`A)F{cQFeJP{arC&b z-XJz8#5PPg!F|RsC06viU^i67rzeTR z<2E*8hjX8~m19@#plZzaQ(4N7JluAl*|Y4oAJ`tU8#?;*v$){RIy;mU(b7qv$dW%N zYJbJP-$YZ}2Cv$kdxG>8mbBdqdJ^`@yv1@Gtl-swotVpD0Yvy_E2y>1%1{@EDpTO+ zxNH{nfn43Ha{9)OiiW%J{(ul@9ftpiy(8BLRx>-Yl;8Ge9Hoo3(BTBTjIAx&6=T)$ zZ8b8#xxIMvSEJ+)!JV8tqS39-f*iGSHMMCQnX)<-{5+KJ@DaunGjAE+Jgubt5Z4T& zDrnMsmBpS~qE!2p&e=6e_c%$w&FCqS0Nl`I66O-Y(4K3n`@uN1oE71a*k1gD|Jj0{ zT&%^eUhSb$ZTTnVC9;ojlM&u8QM88Z|o_HH#OvRihnFYd!$Pti)n!+ZvMk!lU+UfQ@Z9=R^!8zB^>( z*Y`5TdP`@;DPxS2&bD9c^VL?I1+U}z9)bC7Xc-G;Z-4Ro>~j;>{1m-!N{=7LQJ@%o zd(w6sV)TvOPVh+8y10 zw}UEN$OPuDUjlZ<^Y-SB_RdoLm*J`%O#&fx4OXj7q5ADbysgElkwp=`7hNf*ii**$ zO(XytUPjb(-hMN`iYFTj%cV9rVOzl^|9>gOWvFlby-Dt)DAp-*=&Z}8IiY$ z?d{!r93ngD;q8JHuAVVmn`t2~x3D8_xa}SNoF$pIcyU>EaBK6}P}p^Aa2zloE??wx zZPS`L1v46j5@q$_eJxF?zA*5(nvK;47N_Vuys_;O0ssO>6yqdVbNiZ_r3n8y@Pj{u zzxX!?{vVy!le8$kOBl?&?pp~mk27iCv=p6@-PCT6Z<`9(Is&CPk{oTnYLP{Z^V7> zk6={^ncT(pp6scis2zWElanQirNc&31T?K-E~w$(iIJo>njb&qLM<{TQD7Bf=2xYN z<(jS`gN*_QFezqB{VGJas4qHoUwMpwC%MZGPKj00gqqpTQJkg<@Nz1?*Pixgkcd41 z@3NK040nztTEpETtP?$ojYbi5_fE+RQVX8``4mUE5&nd~Q|a$4SD~iQP}!0Ch}|{Q^WW>KsdN zBF41ESxv*Ual5#KZqb}d*o#lO6BDDvTS>E#y_tyOw;u3gHB3Y)NmUlSkF}tdBuh3L z`g)Olku%|ZbvE%l2_x2Rc8%x$V{`YP+=%z_J>g(L{9r-gMduMGsi*XBoJkHMj zMHe>blyxNIK361XQI9BX9z0pN`M3xDwbqqV0dTWww$?EfzUyTcrFZOlooCU=pO`Y| zbN!Im5PVuG?iNsD#64JjQ+7XQ7e#yvGch=BN$KsSP%vQ;F!eDb-x36NexiVEe4YI> zOLFar^>>;?S7Rbit;fEIiGmkPOV9R=&9xr*Xqz*j!02 zs!IlL9B!J`J$PNcDt4q1itUOL0K&d|lv|^SArqe}J*o@Gu8gzAqfRaSY@P9?IcG#2m+(&tjO-w;!_B9BxQ23lL#c79 zk3A$$qKEYm*MW{3Gc6`PTW+UboC#O!<$iFter|EndfsZQwNuiO26V?@KK@KhcQ)i` z_F3hZGdlcC52p2hbOFZd=|qTA#xe$hrCr=wu0WaG{zz8hS7Sd%1{3v<`wem_7Rnc!B@{y7$$ z^X5Pvm*p9QfrFsv2h|;6p@v3RmOx~%qX|gkFq_=h)B{!)=VEu&Wn(E}9h4qY;&Jtk z+L@!Ggku>5Onov`Y`x~87b1R45^G)s@QdOk=DuC6Ly;T zs10=A@g?2{YJTMrfO4(t35DW>ETsONP6H(SoO^;1nWUr=wpJhcZ6-(c=(H{veQXwg z4UTU>aUZsAc+Mv33n}UIfXG~mYA|RXX_uZ0P~k^bZTE;uUMLlRBDQiA&7e`?ILrR{ z*jH2T;qi`Xr@4MX)jf}a?vw$C^xDci(SvuYF28bI^R%v_qZmlm`#lnay9dJOZzF!H zAqV+8EDh1 zbo72@f>=34h z=*084T$V~X?#)JQZajL0gc8s zmPRaip;j}tgiRW{Z8{%2o+@mvu+Yl!jwurFnKOLdIItORweX`hh!AyG=#Ts1ieD7d zUiq>+9oOp86r!l`tw}tghD}-Cc=oz`$?Bm-E`Q?__=ya#Z9P3<3T5JYoV0z{N{!!4 z*oO>*6i}rOrlS^ByPlXC2k>e?VUzIC6SeE)LYLSB7IJ|Qp{CWP3(%C0^`+I9=S3Fy z2D|{YUn|A&ND-DHNrPLa1EK;8@&L;rIBIO)2Q`E57uQ+M7vo6;y?B^uYRW2SJG;p) zKqOo7oJxpswof0n)j`SDZ+QC)o*?G-)R zuKVJ4TZfvj_V=?d5|$VmN^yOM@|Cd*=K&X-Vft^oLYsugjz%Fyh>dpmcwfiKq#3pxtF*|cBnmsb^k z6(1VNK68HfWwt_baU)IavJBrI+c@Nj@yA>@Rc9-8o9UM)RTIlJDwH;gcF0Fz4dX{f zfg!&tv8T@=8j6kDYdwEu4X8yMVTv}KZKOl^N9830!QyK9FB3DlA{Wrm?6h z!*b_Qi;HH!A2YZ-4Y?)J$YOw|qh5Oy70-GZETzb|m$*yQbFvlew@PEhZn*AoQjkA8 zx_h%5DBp>%4NgkVTMQEemZSC`8hN5Dsnm#RzFnWu2kPKSHz6**7krqQh&_4U>wI3b zFH?yf-dQmek2AEY#+foTyPszk*Fi7?J1Ic^$L)z|+l|RoKjWl;%=V_hsd*9uz6w#}IJt12nRglkoM<^3Qwh@%q+B^(?&(*V1Qy*!>r9gI}XA)w0$%R@jSAkJr4#EVAO|f08!CI+wnyd1{I-XmH z>qDAQIaSZPc_w#C0R^pJvSt6!qd^$r>A(&}rJhgJxdb%nyMKMr9)T>tE4X^NZ8T}5% zU_g9cdNpWRhT$#EtZoR?F4TQ+eOnb zZ5x|2;xyuC?K43Bsj?E?Igw3j0x{U$baEEWwc6MJUN%;V_5YP@tXlTzX^&LD^{N-; z?9j*?WAXFBwsVRBpRKM4Lia!hwvwrI#b|Z_I=cf>W~1&+eYH@uzhFXZNtw5y?enVv z0CbV+rNj{-hYR%@cz&4EX>=Mf+lwEx?)raN>zhhT>)Yq z=U!+H)r@E!u?%!x)`T_jV;L>2*mtjJ|NM|Y{!q>Szik+${>Mwk-Q=Y1)BuBrQPot{ z{lhW>8_v!DSvKqCKbI<85Zb!;hgi?>;BTQbW~4b__Mxx$|D{0?TjuKgSBm{V(I))$ zuHUMK-(@VYKOu$jKNq+Bc=oBTtSK?|XkeLBb$#xddo4M-R*NqK2ziGVS+l%tv{vv)CK)ad5ZD{kj$)K*FJaXw zvOIdXH@2NFFA0($e6lk(r1@g$q|4pV@r~n}{Tv(q-}m5$;H5_B$8M-Y()nmnFA}-S zKcUnT&T>6e_`Nb5a*Y!ta|%4`I>+f%@oq44Gdaa2rguo;I-Y>C&Re^3;twRlSix!H z@tW!S6h9^G-#WK-1(8T=oX-?~=W8|`f$$sKE#9nMunJl>WhI|Atao`P!7beEgD#Hl z*0bs~$L>rHf>xpz4Qc3-U*?{e)#^M{re@xxw5?y%)rv~>gdQ;t3{ld7l9#jOM5~Mg zOB>upZe+1u#;Z~_?k!2waGV9Sv|ChJ{hzOf?)s_m|G64^(qp{(Y8ybxi!+`}$2fG5 zzP;R1(BJ5sQ{k;B)@ywYT97)YT+S~5<%RKh|LETGJ{eG4T$?;LY%uRn5V6v2?w#vr zO-(u);nx8LkAE4FKv$-vi;Y%g2r;G$OPiYQT_~>I1b8T=a!>SiYC6*MZkU?}mK+V4 zkq}%tHu0J(QCm&uIv<)Ot~7D9l9mbRbBCl;Sj@Pec$v#*m2@Kru!OKu(vq*PE&C*b zGy73R)_o(<7F@t-F_&X?b4T%dLp?i{8E?4b(1q$TS$3mg>A1-s|6t6{dEJY#TnjTJ zuo%K75_x8k=>T4Zr*YyvRxAuowy0t&6LZ^>PU1V%Jh9dx2y^T zl9Wt5q3cr_B|s(7*4q2k!eonUv@=*UR;v&om>CPR6C@K3r!)ulu3{ro<)+n6`md_$ z8j7nU!ulM{%L{fN;YW-}DG6t{lWQ#$?puhq&8W1PPCAfp{nCl&cI=h)@VL>?ZV!Yf zo|?J|Dz*Hx8vfz)Ai^bHw|CZlx6T8zBpoUFh_dh_M0U z7VI^xv4>)&C>t{`xjD;U3yHC)HN zGtq)2HoG>q{%t!`vd`JqK`g;_ns3(_pX|92hpkEO#i z_lL;y@KQTF6{V_v+m%l~KFzkA5BJeWyGgXauy;PR~dxw3U?U3HNDyj^!2_mGG1!7O87DGMWhCpni%#r^@_yxabi zG5z1qia&g0ed4&0&P*I7nxj=jy39m!>~QOV(L zV`iY%#Z7L$0S#R=MB1=yQlL>)kcU&a0g_@Dh`dDcZk@$w7ueVYU5$iocMbZr&s)Tw zY*|>FNsgKx@zR~+#;)OdyUVKH6ql+k+Bd7z+or7?=3i}t&92V2u592!cvd#@2i`7b z@@jg@SBlf!zp7}giq$Lu)tF6-xoF$g)IM{a8k}#U5*k3A!VEYorx#LWIDz2?q<-%hMB4+&XtHnzV@*=%Lt)3qg#` zlXy+1EQZ;m+ONNW8u{Lm)4g!r+D@LHkTh#2ghyl4$5N1p>Z64Pd!Leg4_lGNs&!RG zZs8#_LvJ_XwBCt^QFD}W>4$2K7()@yQ884q`&-l(FhCdkbe#6_fxmdhU?{|8ZZ^7N@g%UeuEV8IoURffok{|Anyb?!uT;_i zzdAaJG{PbEd8wh9U1kh5KwfQ6+F1N95zX5u1@LtViAF zCz2)TOW=VpU7L&P|`3#YvnkxP&Gt^>p;K_5w$u9oGxjJ^T2E4iy(+dhSoX!%JHyFZ*`-fHg>A)7j?Z62#HGLZ)J?KA&jexmQtd7~BhI)g&|RzSOP*MfFwAh^{y zy%TJf&FVvocooNhbns7=a?h=C|Peyg$jwjQ%9y1GH)=IoCFT(a4sU*A3# zWNhGj0oGXhnWniE5gun|Mx^U;iHnBfcauK++PrIT2T#4*0(Dw^y7kGVn+}>S_jOOv z4W9w;E<^p!KhV)#5{WqXsL#-PE5(-@WRKNN$K+q5O1ZGhmR>7mDpc&e{+@nfug(Pt zqo`(ILk=bCb*$oe`q$F|VqGSZ-$BV5yy&BYgL=1H+{ zz>61c>2OnupQ{nNS8Hd$lcr7=@P%ZakzI2OrhZ}=O=B?Ag`zJmqmBS>*^f9jsx9ton^;_Pi4Z2vtO_Z?D>&zp|3LI6wVQ6xy-5(4w`lEk9Hm+AJIQw zAD?%rH6P@#X|e*7{iO3!1LaOAte)k9@j-6u8n!qzstl7V&*pLb3yq}oMBv=QS(D?1 zwd>)7>&5Vmzbn(+=nY-SB)5~fG}egkF#FjbN@4OvPJFV+U?&|(IjTy zFV`K{EQ!JI%sxLl<6g3YgzU7H95MZH=vZx4k9t*wM%C z$uSO)r5Y$k$mb5>R@IX^w(+ot{PHV1do2y3^9Ih1AVSR6Vut7ESsgAi2e}!PwT>3V z%b7iDW0flAbspY-z|&l2tzareJNgQgYX9leLUA-<-^H7kz=r9EP9Br!;rxz$7Hm-X zaUl67z}{xZPAff5y>7M>x>Z!Gl*B@Rs+wF>J742~Z$|r6zCoH>irvp|g*H4)vZiC0 z^bH1C%e3+b+#x_$80@ZWSUK07NMwh5@j`=V?4=}g`HwW++Is;3#f}!L${LYSI%}V{ zPA7UZky*Eq^(8CiMG0ahYS~@Ms6J!|{Rgf03Go6Fn_>861W^n&041%2|O#EfKV?{`Pc8C0+1(* zcw$z06xBI*aNr7jzu~GJ97Gfe=#}|SMuRgMPU3aDWJ0;Sd7!8`9@G<=Pvrq`1t!Pv-R^U*pWEg1<>5x>ouoz`^Gn7z%HZ1}?K| zgb}6IHdWI{sjH==w7M_7eBZHC6P~!HHhcMtv9i5vG+4GXZ!_q4cwFn5bGF2G`Rm_f zdl#C)stWeXaLt@P9{Z;ouK^77R{yY+w+dfWetypwCHLFxmm@;%8J(;C)k~ zE#do^LI?)^H~ji`Z+t`gb^y2(UK$M{XqI@nBey=PD}2e0Kg%UGMXjKh@RYDQYilwM z>fG++Mli3g$4&$~Syk#Ly-`dF&r?zXg!_j?yZPSzjn$sw6rGu?6SRX@Fg?7V%z?20q zY45!Ll=UZu^LrWFvMzGYxVd=UGL&)X{1vfXsJqn9W~o+zMOWz9gZS#WsQ!)h$zL^J z4Nlvgo62%>g{7R+mG^Jb9X7z#Ply`0uVYpZ(t}HRm>(NPZIXL=h144iWw;31_;(}^ z3aM{BZ}%b_0ZZT^w!p0Fqo~N)SfM9M|KtK1_dm>^3+<>FR&{7+*l$pAxybxQZSG3k zTM$dksyJEr*eodF;C({VnDd_MFADFxaKOWX{RA5y1U z8DaMva*eNhQtufV(Kwjy6+TF?M}hq(&ZRY=&#gLmyi-xX`JD~KZ}aN;uxpda(QwL? zPCd)f87JNlrh~Zy^2$nKRf=xqzVE{+k08vxJoX61wgnX_J+2y1M2_K6D%Wf0lpoJL zZ5kia2mZ9PH(io?O#RTOP#(jrpmqxe76iq{p~q6iybNpa7g!0-dJ|@_-P|P=HWsbo z&nc|OvUs0;ZDO5!99-7)?RI~byW;C6m7WXoI}N;A8WA!ny<6x0!S=@s`d#xxleC(|(Y>p^1{SSJ+NK&3TBU zFEy0WFH3!f9hkt`9r%eu=`qaCl`}#zg)vXq28-n8VWC23i0Z0Jn6Sf=)Aj6yrna=R zb$7YUW)$Jbjz-n7AbNF$G`a0T{NA@vRlDa~0ooR+-$m}(38ftzw%$j)LqS~cr6d)9 z%a=}kwb^WpoP~Yv{nYe*Ygb?OFoixmxH$C7I!CcqB6H5$Gj7_|J;R#4W&H^3gO%9q zjaag}I(`q)6?Oimm)#LG?}AcTdl#G0x?@jSPHGuB9%Bibc~KFrDuzq%%9no79t?UE zrm{XX=lw!L+`0gCh>qp1dt(&iAu7<7gS}4uiASJ?%@+QUpfKP_rDZ-`q-wSb5o}l<${T231jMImm=b)|JgPOZ#(EhdQ4J}fdc+DR^ zTnt#9xu$xy=uxY!N>S_er=a*Ve9BAfjGB|=&8#?jfzFBh?5`Whlvn7_QtnbuM=Cu$%y)-UK0aLof3`WKF>5p40chqUc zZ83W!AMbN#8`Q}CYLYCS9G@%41f2P>dR?X~a9?ku3w0}Cta+N6KlPQYog!0ia+%Bq z+;{3QfPOxsHqj+}Qk>zEhWz2%ltflY=58=f!x#Kgrz$d$v*txeL#xbu*c^n+?4^b? zVOSndVh^Grn9a`XXZ zKoW}+;c9a%b5e9S==A8&joWnp8?`qr({Z)z9w%8fYKio4F`yo(zVa4-r_?@>E-a@@7{T%eeKDvX#5P_AW7E7NS-4b^DPPjo_={q4o>dT#& z^2;5XM!_<)sJ^S1-I`J2EB76lTyRRKBD~r*Fs3mi+O*o1y?XvBYzH2u!N)w(>WM>a z+dbhK5dxoz&I}~(Gj?!oUK%S*hQbzZV3JwCZs_;kaN~$b?>zC=tvs75Wn2CN(`X8x zX>8$R&t(q8B@(!yA&hyy(hP2OSIZ+qOR3g+PNcHYGn_j#x^14KYM$;VWwk~I1t0DL z^IUI|64i-_y`|TvK`$iCvhoADy_?7>yUxCLpHmFwBdPcaX#}CzHEL_wJkfiQ)H-Yux@ui zA9N_MPHz}hAz3}@IKbjY04u@}JXxNETno|J`5!~GIOU9DzS<}YA3$Ejmh-<ZX|gh5YS1Z4bDdq_PsSp^ZdWfe_Etr^c*z z5H#Sd6WP)~12k`W?_v(F&7|eTAa$`w2i(eu@TduEtV;t~cHa3WDKgzJ zqN8Fk42~iG$}S<@kQ<$nF#R>U%qsdVVV?Q|AW4m=ESdQ&FAaYSvyK)FsV)EDGgnJ+Dan5y8h>TdZ%)xtN?Z))yy zMoO;Nu+IznlKdS0nBTZtlU+W^>(x-(RN2~0%G|Om7BIV~^`r{=jt14Hx>a9;aJ3Qd z%?wTcOw*IMbqd;wymIk{&T=pT5X5!F+D!w?79vFJMuTr?tkZ@@B*%M=jSlrKWG9oB z)(g?Dd(>AOl=2)%7!Eab@(U0jd9;1pqj24|-A?Vs%UhF(@A1lbjSvJDe&tXYEQ>bo zd#52>Vzjo(J+1WWP>&Fyl3kEUtn`7Ku2!9>W=^i{6B79&;h+|Re_EE!c0=l}P&}Yi zW4LAki=L_j3_d+8K<;mQDQD6Lt98Tu;H0u=tvDS_9nUr(gqT}nIw$qG=1UbzogRkdpi64}{?MBG2xk}U}Ya&R0 zPA`T_)n$pgad!&f@E;mBTOAF5AGy zdwXnrolEV3zx_MS4ZI9-W;i$>M}<6NG6IAdS65hc4RRuM_`OJZ zZF-n@M^N>Q zg1KODF2#pu7#gb5=U%~pVuP&5J+>oLYnym0;9Z0IiId3>xGj)xPeJl8lCc{~ zCGb$1+0OV)e&W}w#iA~1I>rb3Lwvl3<}0FtpD&s|?mmAiyCn0b5Y>L}%yV!@uo z`O%vCY(lZiA(3a210FrAsEYcWbEl5tBl@WJnU;}>FGqq5Z;sox*Sf)Z zz{9NZTmB#XQq*zB0oFQg$B!PNG;(A+kP*{>ZOWhH>9$VOW?I7S^S-Jz+9pB7-ILzI zXCF?BVm@)Hs;T8zqAlH*Tr+ zZmex>>}@Zz@ob?c09r}aXCJ)4kUsp?xAJ4lOyNPXddGD!1o6Z8)P{WHQ2-^>N|NZH zTi#?I201lHtViBIwaF!FWU~XuZ+4iMB`{(7!;D?8@ddv-oT7@v%W?lfIpQW zP~HQC8phc5D#eda>J$|spcnQW1}Jm*=_wEKfER3x3@%b-UK1a|ag#dwfyE|lg}ir& z`c;{2GlRCWYA5Boa0ax+0sEMudUlvpuCX&|}$ zyxB@KQ#@)&OgS`h>XPr!>3fnwq~oIu(D@GNbaAu^|9K#Teo1jHHC}O@(qSrJ4j0&+ zH@}>l#pSM?v5OEtmwrK6%jXDuD?1ClTvw=anO-{8x+mi};K4Ak(fLtjAiLn*`?__V zI(FRo&VG@%cP6|zh-55Faz&@!`8bZkzSrKj4jL}X0V9${0BUk93H22!D(=sA)*nl6 zu5^Z5may4~7q{M%Yj2NC&aF*HW=BXM;+!(K$CCuBZA*WJ5~a+(v& z3Gaekb|$KbpOZ!gZWrd7?co9Dar+?W&(DR10g!r#l23xu(!zVns z)==P{LJvP_P=5iQ+$p{f%RDZmsXb3u?tLhR4UX%LT8N z){|3#gL5U$Z~RNus6m1Hi4vb4y~Q%dN)ktA4Jm`{?lTWiPORO_Gy+ZG3Xr@Ohaa#-?au z4@Zvpcz}5&cPHQ%ndCZ9!)&GEy9Q#a6?7WwK*!5t{|&LFh1X;%tqC~GwKJ><)WA@V z2~1TZTT}Rsb&t?F_xsyDv{!<%SYe&=lXmmFeN7o7QUg8Zr_i{5ZW zJ)3^YGba5(^w}m@-v$NlsQ9$>G$5)2dU9G3I@HUWsKS$Tf;X1ftw+o2Kn$UpuMJ_& z8YxTRL3Vo$V^63~l7nP2-1}-FJPq(Th4q6{zuwgiRek za=G6#mJj^m~%VgZS$Rrt0GpQNf$6}*H3-*JNS7d=Nt^;7t-$$`}hk{))g-{ zi+*trPQJqALWkpiLF!pD>6LBu4qFE6n?mYMHlJ^Cs(?vK`8{J+X8rC_u*EemAt8}+ zC5E$dDl58h9E>k|9u1!tOJ>{EA_n&K#o3-_s0^ZamSER((QHI{LK@BQ?Mi^I!Qb!%ej&zpcuouVQ8@1#3-2}$- z*Z8Y~T7Da+>+9+`WtE=Dxp>ITV?~gQMGC8G%#8X6%EPCEdIZ1y3ZAN#GB2-CD19}b zQ7{pPG2KfNyaE;J#{mk5cfa;+IBK1+r@o$`pDJ`-6lTJDm`Tj9^%(c~#rFRNzTV|J zSBXV2uz&Q_{W&xmywdPYOUL+Q&0XsF(srojQByU$ErNV-c>3-5^j|!0pfSjt)*xjzf+lq9{Ens z?5*pCn8iKw*g%5tv!#uQ9=hQtNU3O`P2aeE ziC}$hb%V4_P_eR4PR)drQ&W-Zb}*{MQ;{CHn4p>-EYuaAae>o(uvtH^f30u)UMh=^B3oOkx^MalIMOrFF7Ca5b~@E}A3wt?zew9hb6xXoe2cZ#`VK ze{Z0k_kN@;V-@2jja<+)4|K9p_tI{(6UBO{PGXCT3#f)|U3nY&YUXlP6II_HMz3)D z^gdQdEnvx%Vl%Srp4e@kZMvaZf ztE+K9>042y zBLn}bDA$x<(G$O-BB+#0$D{T(2Mzn7s8eF#D88+@5z`dc*;G8MAFT;a9Sg!%(B{hD zrmU*&i`QwdwOw|1o-?n)kn8vHVHc?&?RgE(2pVv+c=yxpAg@D}JKto-;3UldP_KF%B5(wQdF*3xyfRPJuzD zhRo9Wg9j8^S_?g9YtN4wTdqFyyD~J#(|^G@ zY8rFdHK8RDR@0}6%?Jxxaoo~vah62JDJ#t2R$*?Lw%%=gs5`iQN@f4KZjyuucrjeJ z_ZW=l)c<<#v8q5JEE%(tl2C|6`cJffDC!Qp*k&vf1&#Rm?(H-M7E~MVI;H%6w#l;I zMc803=?c}06+v?mD&Qrb+(AAk?TfEQjR(!gvvtoh zyhSD5dS~<5Y!UJGH@^1Y_ADZ;pU>m`Mhep&qyZ9L$uSZ469}GP3lo#|{&RAee+EI5$2e9APm!-;iE4|9G~! zdpurilYjABR%)6%@t&G@F(G3hMh7~6a?0cD@Lc;YejZ^0CX3D#THs>-^^+3QyP@#| zY+Jv2cX6?F=a>-;Agc*Tr<e6o&raAnn2T z0Taa%mMa&v1h>-jZuf$`=;L{aPagACr}<;O?$3FnRB%)efnICyzzW7@kG;*~s}(52 za=)06xrS?knT#sn~$)eO^KHTjj361tYJ0fSdHvMyhB?ZuiCZ6`TAQyqGnXsG_wwF z{ZO?Df#a<&)p_qfn?F}V0qk)6Zw{6= zN%FUIS(<=9GI-Bob?K6{0C&>2=JE_?JC<7H5L3SMZNA69QD#|XY+AdlVM-CS{PbcD zB39-WgXAc(r_RQiY5KoX{B=Elj{fR@jU)agOvI!5f*_sD>l1Ow@#pqVj$szA+^*IH zc0+*z>7VyPj?1%3P#7gh!2k<;OPSL*@ipXU#>U-U81JzX-|l|{4a#~a8Qgwu)V+$> z@RWX6N8IT6U}56-nS4WjvhrDN?w1yh)k}b3v`;QVTPdiz4dJvFeX6;c=n?gtLK3J1 zJFWHiAvs(Oq@AA<^XN89EFq;R?PFVs$#RGcK|O#(g*Y2h+Y0A3xZgZy+til|dm^-o zw+}ul?>PA%ht4(4_ey6nb9m1@#~j1ewILO(e7vbJD!RNH!#Tp2ULbE(Ztj?j7WGOZ ztJPX8oeIqvC-d0lMmsLV`roP!qi1Mluko4T(>cM*QK|o@(K|nGk8zXz`VZuEw1BLz~UaQ>3=O$o8C*tzW78y)}s7+ub%AA zXtldbD;5V!{h-5nEq7$*^=Y2u>XWPMR^S9+zH6+jOCno^-AL#^C`$uv?fHcT3rkDc z-)~i8|0dvVygIrOPeHZx5M0*y95jIQjG{a_)ARZ|Tq$e1V~mvpe(?fx4_w=$hRgG8 z9(r(aa5!JdH4gii@35S__hgUFi%22XM39vgBX)2S$g&%1T^+Kn59{(12O<*J$WnPs%<|M&H8n@D|h`@dkGga`k>kU#(b zJ?1YbaL@D@@!$x}(URgTu^es7JbAuGf7?y?m1hZNumA0{ICCKjG|=0yLK-s}auK3=zLl>r@FvaL1me5}GgR~R5i`Fj)~Pff>g zI?H3p;r+j>RDP_hu8Vqx-Cy$UzzI$jY-hC}A38Eoh*D$3-t<+yda=i{WhDjnQ!`h{+{GWfF zH(Os-D2ngLzrW+t$u~=DttWMsTdIGVsW27oONVs-C!2jj==(ifb25A@^2fht*#$h0 zcPjt+X^=oKPlhXU+^X(>5vqLQyZ4^=m;duf_Hm1mSfX31te^ik%;~?+`@aLA{vX~c z6MK*KUoGH29shpxL zj>LaY`lRxg`z2g3GcSg5Z(-pd|m4&gJzc*)pGNJ%(L2{eUHE=A9({YRq{|t!=#Jw3qh0w4X4k zg}2!9SGM4@c*A+{b)isYPw?4Scd~mIFl5CSmS~wsfNAI27hu)#M|n|3*}!5?%&1p` zkLw&X8JB?yp_>(?7M^-k9Wn_Vb<0T(^&lxWQl!fX+%D=E#my%jc)DgFZ_JmxF*s_h z*c+BCjM$08A3VXP!jY+V?V4HizNp#2-lMoG@9{GvAE9R~p_^mHS$m_ye(U4@SqEa| zzA`^3g=#Dq#Smi0oSxOk81xq4(j56EA@@vr<7lYp6ran&O$xV*325~`(hMuKNPyHU^IF12NNrGbiC5JJO)X{J z@%=sL!17Frnw_0xx|AgKU(cEP%Ioml5<`i|Zq>jmX?z2AYrfi#GA?0U4gL1#=V!c> zQpLsE&HOsFx4-` zcE8k^+)pFwu!ME;@NtHac2U{U}^)aSTDl z1EZ^l2o}%2g3H<;F4Ig$j~LeJ-MlNM!|2|?dCRM+#>UDjrMuI5b(c0j?VI?5VCY$`4qpRVe74Wrn&20Q2ir8|xu19WmY_N!C4U!vodOZd<32mEobS@SoU9|Rx~4#FvE ziMlGh;3#$Zx-V4s$D>u_Y*7hw-<=dUP*SP#wxE1-GR?6U!G@3bGuy%fSPLO^3hB3q z2U3>HEoE<@!}U;a&hj+v!h0C3)t7T>J;kvxXO)OZ=V`yIC9Z8=f9)FOqN79Qcyp$0 zqHuF1t6(m|`o4fAlQzE4PK?{?b5y9$Y(1U;K@D+G{k%Vx;^^T)Nc#%ns=aIq)dtaN zyqg@l)4Erp7_#snF1icldmBTkaqo^{= zDd1s>_~}(>4pr*XUHa2+7+OpR?dyH`$mHBsI;ygqA`?wS#&}2D1|eMoGmpN2o9n$Q zZGTdldB|aCETcXm?2r zW-P8Ysf>gEoGz+?XP&rDB@sD#!j`(=wAV8Z-?mSZ|Aid3!Hbfv7M3h9T|ggigG);S z-v}{1YU{R5x<6^Ej6FYQms(QgybAwF&d1CDG#wvnh`84f=T$FBj=LY9GdK*muun~% z5;8j05Fab9ZQXS#|80$SFWf)3n+x@f#mG0GrtHW^d!nrn_~3mr+}gsMQOn1@EvfET zUp7Sv)%tc)PoWZTqWTq66q{Iy+-Lb^x)Uhqz#RZK}wugpbbqkgKLJ)w)a}_gZZS3Y(7BA zW;Pn`tYxJu!a;`ESgRlZs=ZAo54wqX<+RQ6_)>kX02zkvFq!9FW8w}+qV;Fwl^rs6 zruPCK9v1f6N4-tp zT)1|irN;$U1ne7hRXfz0lK+ku2$U52GPV;A*$nS!|1$=4IJmgFzX)FF9#4om_eI;b z7D_po8g?7mY&%?dn?NE;9MR-%G+x*e8Wc__L<}kQi5vuaI=Wo8&oc(uJD|jd*kt z4|O*!4!o{6ERP7!qLD!WJ=HkuuiSuxUk^);Fe%|4Iy|4&cNCL8O6h-7FpFqKB%S3R z)%VH(MFHM1Hk$oBU?*;xypla>&*de3`NZ8GPg%+RpE;Qe9f$JMs3+L!GGf}XOu_bc zWK9Y!V=Je9zR3wLF&o#`%JcKg(NrId)(tgX1u8=nZN_@#jF}qvY&rrOC{NsJBX;)o zIi}S=V=eBd>515E_Y)}Jcr&fM_Fox*>gVy+X?4SLgt&169kBMAX|%kcEXRIf$n#L| zRg$gkqOqsl22WW{-?yR>3jQ3s#+E#mvg{n!aNLWcb_L;l%FSBL7^|BE+Pptw`#0kl z_}K0)n06E`*PYmvrs|(ZJvFv_5o_M!y*O{`LRz^38w)uFMs_?VDn=+XE)Zy!sh?Jj z9lYf43?5St>Cs{Vq5KZbMV(8gagF(uESAbD`qLkSr6Ve|6uv^~EBjQW?UN6F1$}}RV*f+lOiu|Z-({tJZ8FXvf{Fzjyib1vdjI;KYQ%=R}Hk15FKzC@3 zpn18$$z|jZcX=?+2|&v0F5waL9qOVJUX2ndGhgy=(UBA&ePc@r`I57l;CBU3%W8sm z1zZ~T$~=Wp2g^}rA;f@1z@P5J9}}gZoG%3yi5KWnx7JXH*f+N3c_i_SuPbtCg*c)+ z18N?K%%G+IZDk(SRF3i`CJIhB6)_AsBsl*>%09l3NfaLmUT1Ba_Tz2)`|$I|w=jC< z)HjtXMm(`c&SSf51ScSk;^%oK7Si->B8WPiebHyXn<4^zWKO6H6IdO&Cq?YmYm*xo zb;my%F6D&zQck&yxb7_K-={s!BbbLqDpJ0!&qW1p@`HCqT18}K5UD#)+Wmp~VH5SH z3cth5E8HLE=HiAK-`G2ypI#7kT@&#b?HCNH{VJ>*SHyw|sU#<8-{yS%E~%>_e&_Dq zyr7b|&yar7{LyyxYiRSsb(g48%y7tzG~2zxclnWaRk2fOuj2y?afQhqhUp$iuknTf>r;qL@%A>StQKoCfwVx zG94#A9AX$7Y|`hp83?lFv9s=O#M5)E0nP9z)F2-k__b@R_V$1j%0};My*Z=j&RhI< z`4>TDnKb=+&lWp4bTwPw-2gZWXiB@Dh8lb+l`PFFkjRAyI1X{N@T!tR|C8sTylrdB z7E9{9VHs2na&0&5@t`(6z13rX@VtG6`B9T|72>(7)%xV(l3UZ`&91#AouMG0Svq{{ zGwch1EDnCzcdgum&7cw1@XhV7rd1hbajg?r2LE!DT3MRJ2TPInlZ;V#|mQYTgk~l1xEgS0%tq|JWWQ= zo>3ueG4fGd`H=LN5-z<+!*lIVIom7-T;nYd#g+Y|wTw$0$xxBd5UV)R$Kb~WQ^)>h zrL$yat8a2$sRT^5rs!--*sH;pV0~N?k#L6Oz{HMpNN!!7gh=O3XUs2051^lIRc`^6 zXwvc%E#JFY%nDW(@XP)_&>}0_6iF zspgvVcddH5pgwqlJGlJRTHaP_l*5vD@+SD}FVSrxon<}3SRo$Gc)6v|jUmv|9=Y+T zhXXxJ9nLN+WoNwaZap?5pVXY0baVyOXLuuD&yTn*t{4rru%0L}Ken*Ay(v#H%NR;7 zwC5!x@!4c|SF&82jP!_rlQR?Y*bVu=HG7E`0z5hX1KIncs-^m~@W!_;;Y0YjBObeW za)IYpAq_E84#+3DymU5>>0QLj!V05Q zG!70vj%B{6!!6?a*~V=VD$&T>9&15}-i_LC!MSjC4~ojHG9?Yi>big=;a!0d-w)v* z*f_6Gqb1}vRbiU#|GU<+1P*TU1>EJAbnf6zJQjN=7so9u10fz`W^A3>Gb-A;e%x9i?o{o^ zE0Q6nD86Nem^apo11T|Y`?+@?(mm}eSLd5`HN!*5%s$q;*lAbOtf+DZ!7?m&ZVm#j z%1<~Z$#+aZNvqhB{7Tcl*!qsKtSkUjnk#NN^)B2Z$ko z#r0LWqJTf&w<=RZwJ}0wV+jKipYk725lgrhM-3Jlw|UH((A`z)DDh=}{k1MHuf55< z`LTF(I2JV9MupS-=F_i;8n83Zwp0AF!ZBePx&DnvNT?;bV6*-OYTSakV-!lfqwAy3 z23qjGo2WY2PDJISfL3gw;K{OPl;h2gWI zX#`KS=dPO$TMgwUFXt!sv9cYno`$t;??EFBWpEAJqY4KqC|_Pz1DAHZV9PTy)wlKH zo(z(u$$}kNTbm0c^S@ORC~2+5n}1QPlCy+@_V-{5*AiZ;&ihp%5=b22i)kd8qe3JY zkNmpJfkSi|=dJ?h#W;8{)&Am=`^Ff~uCwCe{^wd2oX_}&-p(G8*1%V9s)+L=t`M13 z)<(y5*E+yDITje1^I?c_5#3BI;pO46E$=V38x~-{x=gLy@Q_`)s4nDguedjLt`bbj z-eo@Xn`@td6~CqAnFluMn9*!>p3-P#0tz zTFcySaoL)m3uf~kT0__msOp>-ub3X=d`S#5c$gan<8q%gbbRtSIm$4=GRO5RY;BrW zS8+T$#8i6rZC`8u%KN8I=z0fkYBM9%BDUaIwbCQ>eO74wLHSBp%{2ugs z*4ut%Dto)@;ZU}zYiUTiACEpE}&@Jc**Pr2VD zp#0lHPHCPgq=YEQ^+&;F%k{<-$lCLXtY_>^HfYaehT=mfnPk=>o*v{*qgidtpR2F= zz|4B0=mfjEf0?*|^H118nx{`HXJ}px5rP6zz?c6T*oT>ep)WdQD>^h8R)=)7H-uK4 zf5dM%Vw<|8Q2abV)IF#U?{j)1D)N>O&aYwPWkxc-#HQm^$kNV-GyW>28Xy~Cg3q^( z3j&021l4H~b7htErd1DtyF!EFdSYx!o~DX%=G%sjzO9Z?0dHj>t+ONPrx~7~`8?c( zm45~-y@{8fK0~gZEyH8p+#DPtf<hp@;IXldzk7gNv`juEKB9(?TYSoLj&s$ z1xr}uS85O1Sfe;b?X3E?D&Qp=ySs45M` zsWo3LC%z&%@J4sbN2Q(N?=(O9tnDCG0()X^$ILlo3@u4|e^Hg3kxO^ZXh(7vZYBd$ zdi=%Ve0k^1)tinSS!)lQ;7kNDI^f3SoIkWOlG6>RQ1UXpjxfeyeN@*Gi1m4O)Jy9} zinNtemUBdxpZG(K$!bP%);C%N2R=eS3OY~%0D4}>g-aQO$b_!sGM0MWk7uyV&=>6u zXQSGI`ky`iLat7G{;J8p$NLBD4`$vLX9D;y_92{B?8OQ~j)5Q0^?0YFl^M}(^H>$f zifKOAx%Sp1rtVVM4D7@q(+nz^uR!c=1Hm>cnTAJ6i18eEOxZW4wxh4BN~{*yqmtns z4}q2GYE4Q8Ro1OP;&u~fag4>XimPM7OZ#6>4;NmXywC1;jCe&>qc@c~4wRW*Z`@^v zod7N9MV!^%$Rf}P&>CdO3q`BTyg$l&n%PNf87-omnn2N_r>G!3^g@C(vV>&f&` z@S!VKYFBegjv%d}qP1%}v4T#^K|n&w*H1x%3d$VBFVqYX*FxklCUSnqXZgWec2tTG z=jwe`?$y3LO(0OrEbh@~iqe=fV6~M+B8TDe$%&AntGW`oeq>O79Xn3usg_<0TGd(4 z;J*}w=xiZIjPA4hW>+7ZPEI!cde?vzTl1iVgma4pX%$Rlc!B)VS;G+2aI(7^(%drQ zW@SPkv3?`m?=*wZJJ=pj-@={S^VMp8i{k3%1jI<#VULc3<{ptxT?PY34wb*ae)?s4 zm%;VS=!d@OD4t>=gxW8iRtkB+x!i;ZktF2|_sw#woF`;nK8LF_LdSzIW5u2)#RfN; ziLvK+eb|`J314$&!vQj7&+|^F?a4iFYqrCg*YQBup0y;aA%86hGWY9k1!YP5jYPEX z+c1c-eRV;K9vWl5q0DE3uUvdc>H~@fX3eO~1O9Kjj`DKyg7|9|;B)Pgi+BxQ_9tSS z7IT?#vw$y;qB^wqoT2H{4F#7DO2zR!`y3&3RU9+|=Tlo@C-GMV?Iyl1TYzM4M9AUC zbI?JKmj&<-_aD>3K-i#y@VtDSQ{9c93nJQDH(A{|(%~$Hfp<#7vytZLf+S;k3|83$ zb$6rl%t*M|ch}V7aZ9|Y`}~n`dtmd;N*gT+v!W1QqdspCD`Ppuj-xr}yi{uX*(^$- zRdF5~4l|xLiko_)8}M}!MVE-UBZH-gR?>i*7xPV;WECVjQ^g~74!Lg~{Y1~r zTRf}|OpoY&5+eK*g~&Xv~ zs5xru62Mz>?lD<RlzrUqsbt1XFMYKQM zlZ)Q(9KO6u+DBWvY6Oi{S-iu`&3j_PxN@_g?lm*HiF;1~sz2HV3S4W5*h*i&iR7L2 zn4Dk6$OEmc-QOr@zFxYj5mJBXy5n(_(0@n3$r*{q{qD-0hGGY4`b8h|<}VIo*zsyc zBdfSn!RgPAhpW}=f-gm1w|=g)I!eh2UGJ{Bo3s9>`HSxPgt!Q+$qp87cE7UHrfZQ|%FoN$QFZy} z#a=J)l5vLB&(->T*flJoIv1@ml-e&KYCXLrSr*IiY2@f(kBQ4E{<&cAX_&Hwul;7a zCGtu7r(x1lUv`Hyj1^}TBIY((wSM@Gy!^rG$Q|W^^kpn>J;vUl_yx6L{Q4n7!9b{K zaZBAno6Uan?i>PaS@i1a5TW-R&90lo8Zd}FivpMo%OeE~E+cf)agT$144ymuLdEq2 z-b8V{WiJ9xR0(_DkN9C2RqOI8>c`BMIiTpkl6vKliSD}W=BCmRpKw7`-7J`eMc3TJ zVWm2Zlhi=iv+MV|{p-Mec1Uw04+G+MVfJ3cCO6)2Dfx7J>gEWQ)57`25uc!(>aJyK z1nsJ4P%P`Vjb_#qNlLIiD3C(;Zx>GE{yr^Vc*!;Z>_)vKR#k4s+mL3>_$C-GluR?2 z)UZ1pPoy3rk@|kvrU|$zg|b_E|vI^O9z=-E0lkXl%N|INRCmLA{E!EV&ea9_I)b6 zouvGlTmHK8@=ch2v}PJM4n;<4l-7SNw4Nui45rmoM+f=IrgEE@DN`e*vu(C=Qj5Ga z$BJ#Ufj?FyE%H#>bzMHnRJh+140X+v>)cH`?gk1*%Ve=AE6S}wbd`|yn<~_?V@2iD zD7=g#*$agNWsopRN0uNtM;#b1|AXUv@yo7T;*~Qzf;Yr>MFNk4(JiGeV{-tcmmfu@ zi;YErk;ca>NO6^*q~~F=(`6%Y5OArSOK06)qA`d`TZWdwp-j?h;w52r@kP+IGn>Y- zm?qkYSSh|l59grS)L?1J#ZV|`BAz7mYDfl!DGVhf7{D1KsAA&bAa1bxZZ3V~Ud z*Wb!s=~CyA7mE-uMyFf?27RQw={DG96htC`#xP)E zJM0fI6o>rx5B@bh!1>DADZ4aD&+Tf(CcNg{%9%xeV+iDBlLem}Oww!_kLK_W(c@N4 ztT&dlDhB=@vT#Apel`*V82g8AeBL;CrJei~Dw=7e=laq9>Mc|Y3?2?x-LGe@r7~AE zi6bZpX6VUhf;H#&(HT!V$w=IIW!kwqQVy=y8C_S)8GT+U{pX-;eC}9ip5wKax^qRI z&!2nFl4J&*GU` zDq#K?jw-Q{(3WCBGl`E$o9S6O8an+hLl!%MgpEl~r^jhG9q!ggUDvo*EE6J!Haxr< zQe%gcXc;=kOwwKcJ05Vyx!RP$(Yl;qlJd2Sw%-W@`&oCwvJ*XBHQR(JIu8~D>4xM$ zU>pG!4&L%+Ie`4@C)Ss=lL;oI%rnc%p}MtBVV@2aL)Pz^cNLt&BYT>%6@P^>-~Mr#7Lc3xfgFvQR!V8xZb%G*3)lcFnDm==VGuoldq( zab}9m9Qe{~K&^f2xLg`R;ROB@RXUT<6Z&sIqUVe8+Y*@kkB|h3hy+a;I9aFooq+mz zK_pP?!q_xlT81d1JVbD=CjC>zoXd(bg`z=XT#8naMFxYF@}rDFA+`T-BM-(`U~Q9i z*Pi8YMBVv}&7hu=yxklxVrld-4N}EExFQsC%wFV<#7jsz;E)3NL>o*#^9ZXqfgN-cB}s|I4%*0 znIEqSgv)#o*@+u$z^g;rtRq6g`(#q}I&6p3X^3d^nWGd%5<6}z>VRs%{RNYn#?+G5 z_6w`fQ|}bTfAV0SBfmK_oTd7m&;0ARlchoYGo?0pA0+q01_M`BzJ8oP;Lb0^v|IF^ z<^L4X{VgV-Yvti+Is9`W-RDaB=z^m!EHhZ9y|Xdq0Vw=2=OaJ{u`Lqe?{Z7m=#fywvEt8PB4yPGRZfY*D(yLUcTqk%UYQe$WjX5i{rf-;H8ccp>xVOd#I5% zx09BOB|1-^?{<|p)o0dlNQ;vaBiQx3TI}5J#5Q-7&P{M>dQVyex3=HBeO!v}!9(G8 z)MB|bpD(l%TERa8){y#pm2BK17a zm)K%abtpLOhdsac4ANPpw0O$)9r%y5*cdgesqJ<3nM>cGS@%}o+^`^t9&SDy%_8Z= z*H&V^y?S#jgL2; zvW?lyB7gXkN%1z!Y>u-`Y3hZw`IZAk-e_vpPzh-B+W~^qmlKe0Z>bOpiTfgkci-0D zu)0yE42@;3q^s)6rcA@6PKUg$~>WwZ<rHYT^C1m4YfU~BA_E%0-6baocvn3sw^}7?> zqSweBcB}Wz0QU}Oh}2>|ZJ?^34!SAf+x~jC4pGf1_++Wr+;@;X5L9zbK7`eA4!;S6 zH%Bf|iEJ1gC7xS&a^9XCCwWfw z&smi;=m}+V-EVK1Nt3{c46#GnG?s#R1ODVSdff;3yOt2N7OrtaVqwoX7B@zF>CaC_ zuiYp$@WdWnSJiLwUOICd?fFIy=H_0=gm0M}K)vkBB;{R|4Bc--V#Lm6P0LV}OJG+X z(nO5jO5@-UTL<4Rh64i0e=e5Bi+=ASR>gUfWKM-~`#U|**0jlmg)f(3V*2R%kJs03 z8&Fse0-YX_-K1B$NPfegjlEbr#eVT7CF`4zAP zIkjZQ-%0k7mixT>uqEK-JP;(VNYm0GQ0cNUw^rO#Xa+&Pb2xd>r`IMrY6GMb(Eq7h z?ck=-W^CFlxDQ2{8gz_45jNMKbEQKNy?sN>hBXoN&1$7+>}pQ8Pifm`NP*wWka}W> zF)kc=t|%%IKqf^~#PG!NI3XoPMKKpa#-{#u%0wt;9EUEY%=*)pnIqM!-In;7EN0P; z`7t;$46Y9(m3BNW zshMKi(y+MnA0&TRc~=s$7mxxo*ose3Q;y+?^Q}XX++1{-Cdq`0@2jM$zlc zbRNY`hRb0qrAws$vbNxEN-ly-)O)ecSz=-4JxA#U*7!5dVutB>zGU!YrYss=F!a)v zWhl7rfySE%rlObLDhgK7F}sV`&G#{5`HudUkc#7iG``P;m}9SN+%4X#tFv!1>u%^U zarR+%wJF^6xxis(v6e^sZmG-;!vLOq4NvkR^`4tII8h4;2q~o-!yP!N_wUO|IUEKq zNq=&(a1V&;1)^-Zfb2-ek6!;%UjJw)Rws5*1NlK3Ic^D=I13Y2u5b}dXo8!|?z}`pR4lzK=XxbK@wmiZAiIxQB68&^Aj^zbSAEe`L=<|e3tMN-ahXrX^T_K3+0zM|&>E%rh|{s^4pR*M z4?MEgiUu<-ksgjU&MT$SwkZ`?xd-2mN9una(^wHEq!xd)p8MGOLS&!YBHwgt_|S_d z5Oe!`+Wxb!UY~HxzcZ`TzA;zLE_ZP9I@y6x;8vM)Uz6{kd0ty*2Hvh77)(Sh6B1?#v=tmEB;o}4%3 zc$+M+9Vx#d~xx#1h;T8z0-QNy3%ycSzt*LdzR;76(XX4m3N(i z&^+0o5=-stjLv}EV7w2cp`x=;%{wfKg*Y7on#t!&@+7qpB-(5Dq=qXF;VK56yF&ajYrovv3$ zFYb^$J*A99KpOqBgqJ?Hxza(!m6~`+ft<&uk^~+^LUsYLRh;CS27*UP3~`aDe=p7ihZ`E1cjtT1@ufA1Cn_s^8~Yy#3~Yrv_OL(4ct6>{#C z5rp{l^bWWT!uFhgH*KW%bA_sG-$S`DWI^F<$X04|HIE5xq)=;Sn1k6r*FW9J`^SiY z^a6Ti`zmND?x;4K^_OgOcEPt!hwBl54jI^@Q>LKpS+Yo}XgFfCz|MJBizljmrm&0M z!D@w^avj42(0+O$(w4pBaJR-(wkW@L$L;L=9$L-T*7G$SIX{i}pnO4_?(6D4K&>t3 z+qLRqRuxiaA4?L<$$b6nkOugrnsFEUYW#-j?GP;)1{i?B5XxG6lXK!@U%jjvx zGgq;rYpa!hxKT7O7L+0C!_vY$y~pIWmaetU3z{snkB+9|*_Rn7;A_a-zTAXfBP$ya z65PVSI@~H$jQqMz7w(${aJzS2zHpvhd`x!W+gw`sWCouck}>uw^)SN48eNHk!Z_{D5k+polAkR8mt0p{NF^t8R1 z%vnev78D8ro&Q?0vI*>V5yH1m$ESCAe=9Y1ffv(aHk?y3)70Mj+plTfd|4~cu*~9P zO4lVh=jAwy`-yikrM_r}eR;*;2+wRV9FRM0T|zkGXwwwqzQ{q%3cvcfalc5gJ+xM- zg^6L=ve8<;d{70l%Yx+T^2|?#(d4UYtNSg_U=|&;&6Rh$Fe=?A_#LzWgdl}je(zjZ zwNop~4q{?xQ4G&sTwG1dqdn&ted$hL=_VjkfQX!L(x}VqgFx;_uZV{ZZ`eAX?)vSN z!KLG3OrR6DCR?v*VH+u6VLP7HyYH%P)gx9TBE_ z)DatMiZ%B<9XqVf?sC^2f*gdnpS*R~TfSesU7z^)w)7!nWJbo)WFBPGLnd*U;kdS< z>jAi>KQ51F6B?LOe$tryb9b;X^$z`?fMHTm8rpU6;#gcYw4!; z4q5xnH?K@fngiM3n0b zqr?jFDdcm_;3v|%Rb*%(JjHG&Qn-zm(48sjw>7+oP6$eqNV*LKt{h_}3drc~Rh(Bt z`EMZ3HuAit1}8dsk>yMJ8Sc#}V3llzPJNjTxzvag zn^^=%D5t!XJkM)@v;(%Ob1mfBzoeo`EdA{JIJwLgQi3+cB!!mvxleI(i1lgZaSN`G zIVyw8BZmERdP!WWV~cAJ5Nl}N+|R?vx=vwB#d461{^IogUqXg({kv;)Zrc8p2dd`S z6LKx-Q5PVV;II^bRM9bCgQrhfqWZc!-AxdR{Y@^w>v5VdgLr278z{kKPLH_ArYtzT zEq0=$czXWrbfDPyS>IblCm&GMf{H`AmJS=2mos04OD%T9CH57sNJt-^yBlg*SfpR^ zM_Zs&pZWMA>SON+(XHn}H%)pU9`wv+Ps`cwRzD-Qv<Vw!NP|v9kpE_T4`scQUZF;4-54W;&jIDVBQQ&3t7vFVTm`R`9PCbqqzCzW)9gV zR~+;($8j!z)z2TQ&e<1C&uEoWq`%k{?v&p?$D71ZEH3LQu;r%sUe&wY2pWF1p`AFO zz{XtD;6h5niLn@KP+4Vjxg_A%N^g{lgMZDjkvg}5A_T}lz zNvc{d7fh+mX@tO09OF%XW84#Qs064$YF}ulJYVTexU^l#K(mTNWwhC@faR0xE?N7B zcTU8cd2H=~H4AGg0aN734;+p2!Y<|&xX6N|-%oU(Bi=m(v@6S|Ol0bep&JP+ugA4X zv8vR>{7$^zlmC)ig3Yl1AJW63M&OkSK1fEJkF1_B_GExkkw_BA0!EVUa}TybLG4#S z@E^ykYME6Ovtm_<8`Ft`Z5D(Ut5F~rJ5&23;t{W8bEPX!uB>cCD@V2U0|k$!h)-uD zzm|%`#WkmR$fzZAP5*9*D+J3s&SQ)Y&JU`nNyEfVKdt@VV$4ad%mnCuTvZTKEj`wt zhZ%^#EDPk_zmH#FC;6>>_6r+yFj#m+q^awPx%`|`m}O6etfN;CCwuk;y}%RCT~xtZ z4n^t(D>~7g+_Je}&){9J;lLZ<6y|}v1EcYJo{ze1K1GbI+7tRBLL>MmfY`ny2C-jt z;pkw2(>hbU6tY8`yvz>QtZ+?G+tt;9mjyAe+ZX7&nOmFRZm#DRP7(anDm^?}WzYf( zc9+@Mz{`hn$T6%%e+R}O=76xHasuaS8Wh}_x79R#1?~zgL|m+2$0}l$%Th6+@cH-% z_M%_mU0ZCt@X^vLw<+q-1Jb-lCt9&#aCY=QX;oOP<`24lnE3d|eLxY)zC7`?yh!3>92dt*83F z<8masG__w$)=XLrMyV*IGjtohX&ea{iZR|09>P+tf90C;O^*4+FZEE~D6^>5Tv1YI zZ^2Z+b4uFd1doZ&%a=xxD%5kvw%72p~p892Q0HUxBsT zW$%i?|Cs01R0rQ-ET*)deQG1I{K2z~E5vRQPJXS|kf)=vP!RHPs+*! zx2}BJWtWQ}pK$7#b9Fc@Su!(%-OtKWWWey^R%<-rY*V~EL)_?{BIDmHrD3CVkImu9~wQQ); zp6@O`+qVMqou|#=SnkOp!t70%w-EY>iQ#aQtpRR73#4A;-9-tl6Sw0reFm~7#Z*!^ z4!+0JjP3v*;7h+QkF?Q|!o%XW`t(KTC1lA$7NIg@XECjQU=j;jIn09)?OUsF5x(jC zSy*aYL6Bo0`_K!B9ne;#)C8>XvS_ROr0rPVCSFc6$Fl3&T<3m-Y5B^+#yqh3 zJ>>1ZdcKA7miTf)n*o+nU=$J;e=-4vO-GhVs6^LGx;O4a(v>1cb|7~VAr1T^Dd2+G zF5Wx@Rc=cwM;o@B8VF6Xw)j{!XFOFzPE?%Xvoxg;AXHbE069FIeXQbLIilF+OgGdW zzTHkbw`O0)MM;4kTwxyG>Rl}?yFf>l)x9pC)|V`2zByc`NDNlA>5F|2BfeI>m+h8> z+ym5rs8VIM4pJ<|7Pzj^rFAye(zbr}53hkYPF(I_JNcDPgJT^kK_qE++s2)XGVgD2 zb;bFmV=tXxz3#7fC>o*pcjG(Go%zQ%ESWS*q9I9#URST&q1Pf?5$ocOLN`GX7pIn^ zqndWj&P&Tbpk#%C$}X#s3kePBsr^|a53NJH(scgJNT5>nXjd!KC~fir?(nu>CDxl-e94H7sUTc@@!Wj5@BaJ_#iQYj zSbG>n(r<3!j4CJlpl}mfPi0=_J?*pRx~t*QS`&yKdnE$(6TLMXeJ*_G2`rc*2we@4IZ4Q=)m7R_-A-hc>n|UBJ zpez@6&#}~^%*q3L|D2ya0AI7DVO!Tfx{Jq2?o8!CjgkE%3+ie23)G(KEsK*H22l`OleZ9U4S%6>qtS%!WhY~{9(qUihH55M)w#2RSviizTW69R5{?RrEqy1DAa(mU)y z#K+kQk8rq1aN@SEhsb_T)mKRMQ9K<8yDxAlq|pGEV%2@Qw5mhV;Dub5m%48Oc7Df0 z)Eu#t{Gr#QYQpea&N6Wb#|yBH?oL)(Qnd$Tw(@(dVT;H(3uH#sM+@@^vr!NPqN+06 zS?vJ^I&4Jwpweb|EK9}GkP)K$8SjEU-R>hRxzF{<8!H`o!V6P9PoI{c#PM>?CldNF zJ2XGs9<^K;1|4NFPb4%{orVJBc$!-Mun9mW=W@fejVx9>Kv4<)D8r(oBi<_k4f$F0 zEUgR?;FyMOI=WS^T8K&)c=)vyX3zx>S%H$g9Ei~5vyf7s_fU~(J(hsDjk!=l?aTb0 zxF!3%5BVIhF0Phu`|mc~E}Bgtxm=K$Nywc?^Zdm#f`yrssbldJRi@D=fn8Q2guu;^ zEA@;FhxaYPiv=W{vA6D9b{1|Vh4@Zn9S`%lQ?}V=;uOgH`C5vK_CB`?)u?w^^=63b zM znuFVmq+I2cWvY~_UpR4^12yu5v;o$1dY*Ew8#sCT-yQUSoQdrecs{G*7@sS$XU|a8 zF-&bPfHDuXm2u-om*sHRu_8fG0v}0+<4xwic)*9Kyr0Jx!=|ap1&OJ%}9srni!}#%ti8LKmT@|fku)5Q;X8>ifDY_O4nd&}- z)C=;S9Z?u>R9FJsoa61;N@~^&$pE3r|Dt__W8? zjHr^2774wgZhhqVntm#7NpXYMrF?`90U8sw#GgeN%-pYQSX~0($#>gBJN}B)N-{zN z+Crpnm3K}?6Pq5U(6e4~nNAJ+PF&wO?9k0~V2mI;u2@=bzh1nCd{xIXgY9$w5IZ67 zz3O&r6z+G%Z^Y7e$3ale%(h{rSCKF6H4GTd;UJTLgEl*kPWPtif^4eqZ%iczt3Y;v zvN!@q?IQS&SfeEFy3e{b@WR>5nXGod-XAE?S?kPqK=z&a8lOE)se7&X{Y; zs!X!^qJ}Z#lv`G`lJs&Vv@fQyB@~+HAOxm`35@ZbxhVJKdIoX|>$!;!J00VK9KHd& z3vBsM)fXZ3fdgt8f>pN}pQ|fIy_JmnZp3Wupu|F8RH6kATqfog2`vVAfonrSeU?f>eF6JTbAPlZ;yp1@Sj}S_^ZMCf zIB?g=GY6N9+gp4py}blFbLbDT4durGvnmbunMnRy>Y%+rT=R$~{iAo1Ll$ba#-n`wGrgs3=MnBUqHzk_rJL-2>sBQ2 z3f&J`V0H6m{O8nSzb&2j5c8^(*T*2K_wjs3Whnz^G2|ZCffKphOM|K@D(o{C1#d|7 zjPnLK-9u)%NEw~XoYJ8`owRnmhj*-g^vR}|)unIji!OLdawe$21(NO8>ex+C8sPnc z3>)i=8%w(lPUrjnLOlZxX?JeMR%(=Ih8c6d^#H!IWI=(sOyMc9z~>CM>9q^L@!o1$ z)X(@`RZ6y}eOukGrt-st&*G!~^csFodUcZkf4)CiqLa2qVUZ9WoGiKU7%h`9VzflD z5qqV)mvxn0pevkZo+TQa`} zXPi#D)!`X&3D}z(o!7$^f}d=972|8n^nm)-frRyU>BMx2W|7^VGY`=c|I1!0zDUTf za|236rlFxBKffD`Ryc3Vxj{E#w08u`o+PWKrS5nB0^+rTo@k^}P zE*^5TohJzv*|lVNW$5l#>e|1;gQpgnKr#L6&q;X(=H`-5NkJfxmv9E!snPx2d5a3e z%xZlW7>*+b1HG0%ivRvi-RT4D}a{}E=h(i^E-7nW$-AC?N z_qNStv_}&&R|az6ZhO?|7@%;U$rFQv@OyIerpj~5YadJe=B8h2GZD?|=r`W#^RY9H zZUc0P1+^}fOyF>Ex^S!xWzD5(s zZgW+}&78DEX_EYj4?g~czaIFSwDO^DiGN~i^N(mw{~zVVzv9%%{XgcYObJ{m!E_(D|}89dW8Qu{}&Wd1ePh?`Fyj|V`o==)1?onk03+Q;k|n(QD8Sn zksttZllDNY8}qtey_%)*c6^)BdFh3Sqy*&`_sj;TTltvwiy|YP($h00Oo0Mc&)bG% zOItM|dwYkUBp?3uEwADVJie2|Zx>KIbW8WwJ|b!J<;&cgjomzuh4g~Aw_@#SjMF8~ zYvqC?7I$)`7i0`XJimg?%(^Q&P`=Lw4(qIfOt`--%-#di$xa-+Hhp}SSmMkI-rXa- z%9>Yeigy8bHFU7Hk?ATGnur=O>*;xAv;3W;E#l>8AkejJEqyVueZl8?qbH3ns$JK4 z_#|g)O^j%56Bm4JaZ`Ld9k+%jw49nasR;-7DP;VCB-X7|a3<19nN~yY0U8&N?B)?J z$GbH#;dd!x+XrU6dQ9Z;#x5FT39wK}h5MEJu@KVh2JpeQnNS-N<1)fiIA`u8hhjZp z+(W`+_RaNSy22Fjb~9eZ2VT3{T|ojXif?es1&?W>o2ns?Dr`z%6t%oP;|=8Nqr=vA za1lY=mTF0>qc%MljeWR}Sbl~f;-EQB-<4faH{tOg> zx>`hTFpW39Xms<|o6B;jT{hv*=KgarHs0st}?;6^q5Z z-MI7W`+WFenq(-2P}3?;L*M-AfYt=&bcOw_4{6M@{!oaiCOIw1V; zz|7|2E$dR$TZ)`rs$fuq@l?==tfUk28Dg#n%P-;l-ZIM)SivsUP!sWnYX7v z*z}5UN0u&sc*%dEWzLy3t;JD8I(7gt%u7u(&t=^v*>*LaVOt-e5` z2$wbk#hZoF6?{5$e8QaORN)b+^^07}cd6;SY(109y-OnS9dVlLvbo-uEIRP@lONU{ zRFq9(>7m_&e*WeFY97;+@@593;k%b|kV;)2>9+Ac=o;l9-|=w%YlaL>QB8y^Z-VzAZf!1*Fp2v_bCT)3NpeE z(7aVz5}wP@^aIp74s|)kAPBeF6V;b2IJM4X$vym8!YwE58V{YI%(a zCH0^YHnmBYl)Y&UlIJFL?dpd9sD+pFY)xnQ1AO=S+Df(y`qhlZ9xi~$&BBC7=6eTO ztR2b7Pn)Q9Xc}WZw^s(_>;j@s{7*Lg{{@v4{^IvJbmIId;T+oe zKE!9%@xn;}$xA$ojnR+_Pq~Tszk#D^V<2dQZ=67d+md;~VW31ARy`e-e{qoodkXDgQ@x@v zk`rEvO|rjfmdcD%c~6Q{szk*K6SRDj)@QI&{<2e(MBxn{*DI2)8-v9sw%y|1vLen( zqf$SrbGrKtny1wMjTwpctPoLP^2TXeVoauyEj}j@TU6~(05@d7T2UZ-a{dXSTA}Yk4oL_WVP2%PvAZY z+a>1PUXQBkx2YDgvh@9>9)siNJ?~LvFt-b&A(LCavvZxg?2@>|>b)%$3VgcYWpm{y zA=SH_^SELsn*18a$*ZWz9Fli13(m`qLU3i(KbHp1UdCLr5LpH7^4KnO9iRxP|C>m{ z`c~sK2bKY*4R}PItmf3b9Mh)r+mYE1(hK&~nD<~QY=E)8GGBLlRo$_D`9ZX-N?aAX z?jf%!X!D)?mi_Z|9!_XMa$)oSRn~1%!X)~hyO%t0Gq8Lo%*Cq7OM>Ujas3O)I_SPm z(Y`F%v}sKbNv$od#Tk%H7d97?EurNe?*H|fUdFo`+kUrA zh@a(77mbMV{3uC}uW0(JSzzez9yoNquy@YS!ba`L9a0KEgG|5DQNDksJwH9sSaBgWwMYLRo7GG_v7iALm#5D zZRDQb8v#S<2eWfQMaisijr7jIL2bVUt#1~d1(A5X3a>nyg*~Iok9Y|v7M)^|ZDb|$ zcDrFhq1E-Ue=xY-psBk`ScMg(;l9iV1rVDn_u5qu=VRq-I<9yW442T&H{;CMSTXLh z<_zs8u-s!rnvFivuCB<}6(hWcSz3P**NAsJ9T@IB!~H?vGqFafhcsT`oR)NH8C|QY zk`<0aRj#V_k|nfIbxrS{9ofes(&#^aOGx&c0N%v!Q@_H=#^&{eHm zJxnP{FtsNc0?`Q+Pn*>eP7_${8%!hPK(?nC_S}mI|w|g$30_e6vcJ}C`9bFD&!R&BK zLQ`R+;Xob;3gS!dJD!tF1i*76Clm4Q^~>wR+a*1ZT;eL`zC?%0eD^QKmFbqmiSnYs*B&Dq6Zk00t;Y;`lgQ&L^3w=ntpS^2!RbZaP`d67F&9x3&FprlOx* z6;EaMXq9F@@-gMD!Qx&k&iO=_1+~Yg*8Q9cQG;i~VOnhP?V;w?X)ERb!EEerbNg?L z7;j~0As6qvFi_sN!*!|(h+>#pH+G2TtL=qlMn_=9 z%?btFjGzdjp%eqp^G9d?<8`89AoBb5X}$XkM3HUUj+`f}$m&R1Yh@AZjVhv7sfbuY zKI~d-4X%uO!Arrej!sS_>jiUoSm-mSc)gM>LCR4@Cw}k&YLwF0fk^;>AM-N_-rctI zA>-mTwlTV(MsCgN(sEtt^A!2Ko4^mzZZ{vxgD13m`JBUuPd(NOWIl=q-@H__9E|U8 zsM|b&Cl!BLy*mDeyP}(6qZQ>{o}G2Hf7D+8IYUi2*wbpg|9Qn}jEIU8+^UgV!qiA) z#(yFnXp?i~T^`)aJ|71Z0rEaS`w&#Ak}>qev!m)mlwS|4V>+u#|J1ZvPifc9vciGa z$d^E6+0DQOLJI?>sEp>@vG<++Fv611&5_L5aS0f~wPm2W4z3o-?kYPxsQ9><&w3QI zY_wsjQd{OE=}vU-TLOr{jMbcu$^ABG`qsSj@^UglsbSwHQ@p6f=h8iYV7n7{C3`Vh z@Mn#t71Ha>bsc}4#zzuhs=78u^R=z-Szw+@0EL#0H2mFXaOZI2c=5a`^A#5hhhr}7 z?bhW=*Ww(T$|Bf;pzY`5U891AsddVsCb*&jQeelo!Bj|NUClV3WU2=;J@-RMKzy*l zh1?~%?Ij)Ok0p3Hst?W{*7B`JR!xm$`2)rUv^&pChl~cRv5T9=v+vGx9_t2#Y%yA-?K_xwyMfep30hec1Xy^Wc0>y zCzntfA|;H*+|T#!Wb0GdA6u&Y0nXx*=4%M^0;ydQW2Bx?cz)Zd5uLKGjN#JNj~y)z zAE}n{4i{2No;rrxj~a5HT7#_6X=RZl;yF>YdC|Q4Wp3H3EcQ0BrpC(2ji^F$vyJ>B zyZ<-O$F63{nP>j$QtqURAS~@lwJ`B+TeMw=hlT#8pcM@uJBIC}yJ0GiJSR(_H#+kr40SZiu}%}dCy%)J3v;pL6-MRyFMn&F)Hp5`cqA?YsB``PPGx{2h8$^8n9%z}jHsHBsx3-4J4A%E z{hbNTxw~$qoLW9yo%JpqUt`>zG`qK1oh^8CePd1N-ejkLI4u+)j=w=uQ~kDPT!g~t z>ZMSYL#J-~L&ofbLz=*@GqQtq3FbASO;1r(?E)o+t4MF$Ew25-qnvjWq847lWx3_O znWbCt$#d|bnsye|hf7g@MIsk3>6S!FPq~>n>z-gnGoF*;JT!vU2Vp2J#huQFpXE2j zcuHA5NhWxowa-{AUlfKv|pP$Q5rGnUcVE!f}Qp$zh5NU>{_>wEgy=Q+ZfwAXaAf z#B5{CU$?m_y5gyv;`zJ=pbiTgM39W}#UXHt8x-P9fHNK7OXqW6h?n~dO|L1vS{?p zY;p0k$?ES70$7!R7$PlNbMXgzeosWCWi8>;HA|Y>ZXWAGX2zmr5Nv1XLvIiCI^U;Uh33}74 zJF?hDI;Yi`mG60w`+B@cmEExc`cj3U*{+-TL^Vdi1DRRA{UEG;XL;N{AzT?)veS=; zbNsXzS7{@yCk`k5G(JO2!AEh=5r-rhTd3v{$+XQo6h}+GuHIbTBrcI^3N$MNxd3hS z=5RZQWGTlG9^1^^#p|T|I{m{hBTmTo1h-Ahc1W61ZS(iarlU4A&lxAW<3=#B9UVDb zxa99_2NsmIs$J7=hblIVMlf+Vbn8m2-%c&;7DQ?9yXN$AAo8FIdbaqF!kqKlN_lLJ zBv55LdKQNV$?$NMgZbMZEDMd!E>IVEVdn8Fv89Kh?=NntRJRq)GVh<2o9|HCyBx0Z zLYbiEH9N9pb3yQ1-e&ekdw-xjiSmy*T+Vhrn zr>BR@pt%7MelIA<7D$7v>UGR@CC}DJI6;OQ-&XdQl#_0< zIJWc)#;Uz@YAAMmPA-k;C#!#RH?n7`vFKlEvE+TVE>Yn2a@9|ky$uJz^GKts#2oW5 zAnetGuuonl$FFji*%nG?il25K74RIG#hFIK;LjtfG}>0z)}Ky3cX`WlXTg2&im`b{ zkSc}f*S9-tvYWmmn>wWeHYKCZQtE89@9g3^(5{KgswCcTEGVnh+BO9{ zZQof{mAR99XzjCzv#2VB$2FNNtFV62+$PVwgjY;uDu|(t6wi1P5pFT*Fp6HxH<94e zKrk4qMUtQiXV)*7<|(Ea5wDs`)*ln_iQD;M+i59;$7Pi)YQYvM!9Z#@4pp8=c6A_{ z=B685-$C5CO60I_+e{YI1>^@{jCm*)8x}!%l^_$*7l(EE zCM2iQwH}7Cx~}WKr-!&zGeX|1NV81ky7+2m%ta`zqAX$}0}HyGQ+NQ!hPGGBLV-Bw z-H$N*!;I+%CtdqpjPIUu=Nk=LK~xwXN^x@WB;}iCEG4*JYM#8{VT`)GVo!vPCaUr* zsQp9q^?!SSN@6!`Om)|bb#&k0HM(xY^inXwDw_BEc%?Bq^Wd97%61<)*tQXP zcg##l*MaMgxP^WvwpfhS<%2CG(6^XDS^Lw<1q-kV9Pts@D{`xyWx`VW+XtsLTmlqT z-Ct@&F0!&#c1BkTk4-)U?FYIt67S8AB2xvqGIZ>kH%Q@``=lzZH(GaH6k2Jk71W=Ht2Rh5`7*@lZ#OS zTzim8u3D5F6!Q%svyYZTx&y;se(KI&R|#wYN)sqa;{m^v!EZ3ycQx6`<|T2OQ^4z2 zXrvs!F8Gaoai)Wnr>sspUM-GsD~XIDO1HqzXK{Y6XbP366(v*faYgiwbE9@p%rsm+ z{}z22$Iu_V`F@4}IYk=)jC2LH+XGU}?sfEXK)=VDZ2Ea@u7&yy*(qYDODJBb!mrHA zN-@+Owh+YLnMJX2yhq}Ga9rMB0aw~;8adYVQAY%|avi~+z_C9)RHt+8yeB)*f#Fza zrw?o*3zj}Ah`@^XF4AKfIqS*|hL|ah%MzWlEiO6iZdC1VdXu{y?ZNwq$HOk^uKQ#! zc#5%4Q37i((4@shl>u)`rPJ@*MR4zb>HL-izlO4N1$HIxtGu@m%)f+(WEHt^8cm?8 zC(r_?0#9>Hujithx2S4O-^+w@)| zmzPM)jB+QO9{?6t7aCDZJjUd>FdU_t0LMZ zES6+Vo8|dcWf9&>@=VH~)x*Qj;J^$ix*LuGYyD7ZOU@y&TQ)gbv|IJDgtuC4oMyNx z=dFiO?Q%GLS4HJKS$%#-SX&Y2(S$=Wo_Flm9y6-)wi5+}qo}jozZ@jGRuA6UC^S_XX-Ck$TcFaxj z3csC8zG{0$%qopbx_Bo$Y|gW&Z%yHkOrIb9fK6kBnRLH=25Z91ZTB}2`-Zee0G#J-Ves=WXsyHKjb1FQw{7w$j zV>L~zcf0FnT7AT8*ydW)i3PID0I7}A=e9}TF`KCdF2EcuHjkv7^F4kjVK zwJ09oJC~+uOjZ+3EzC^!+~Nbw*6P`cumUYqDuARpIlTD`d3SsT4N=KNK3l;KMrC`- zhBxUalezuFEw326@$e-V7E;bhWRHp;Fm<=4`l!8rH4m|~{1UI%@)lUGjd4O85t;eH z_}qH%OeQamWC2|Vtc2Vi=#NXIh&%Z}-!BXn&{DM{D=P#}Dsv0Te7aP36(cKC=7qkB zWh}altq3tgVYOb(6n>mDN#o9&#{>*!xD@7ntheqw*ZDiGXz~5_cj&+X?!La2rlxNI zIdqIjvkY?mo3^=$Tx#VY_j?Fald`55Vp>@x5`-*hBUwOWY<_mWw4VRXve@`>-kHZk zG+dMS*GD5uWBWt}aSng;byLXgsQ_O0$gH=}z2>8Oc{NCXD7BTjc6o`;?U`5o5#f&2 z@M6_2ckpgw%ayQ}D0rjhFRDy9r1CNc<7JX^{sd|4^pNe6lWzY0_C=pzQR>rQyvn+N zv359nz^gQj@269j))NW(fc zZTkq?7n;PDuQVZ%!+8&Bf}{61it`7b`*6B>pPfH*I$@b6mV#~}QTQam>@@1GkyrXg zVes79FuBY|U|8B5we@7?EA^{lncr!WW|n{l5^j3$I@wOlP6HQ{P|wDD9yaaGqDmYp zT6GgDcByjJJ#*Y!6|*QLu{}`zfJd)m{Iy&>JNeJqXq5D zNs)~Aw2<_)%|K1JT>YyM3x0Em!%Uh4EzDa%t}|p%r(sHH(R@pA z`Ms+Ok^p#BTydHs@_I_erQhay>Dw7t(D1+v#i*_q{6SQUr1WdG_?tc;|<1%!2i#MF` zUe6mVQeiI}!9ZsaZRza=?kevM*vMa z=`G?{TivztK&F{r1!ff9H4CxajB8DFKM1%!Rp9w9@G{>?dj(^tt3%~kvnpr66~>_M zbrwB++}>Wfa@tn)EH!^aa#PjB+o99hRYVfG4{Zxke1DIU9|P;6RdW)~ZyXM%KOU)X-1oZhI{4-@=l=`_MeQv+zF6- z=Nm(GmmE*m--=7VtxT4ZOGghvWz<;G8?p-Ehvb0~XQV^qALb0f*Z}BehM9JQ>^f86 z47M|wphszn!w8wx&kQ}_V&2U-?-@GZQ2UKnQ64%4-w${H%gqSJ01S-lddx@BGN8w1 zz!NN|O#Pl7->5Epc5$Pw3GJrX81I;?n1i2qeweQ(1=||A(XQx|XS(f_J@$v79C4Om z=?Hd_-1c*`|A|EI_%Sc^S{cmTE_Az@kV+Z71mbg~G5!t+E#vdPQIwC#SCw;0;aZ4k z&kk&IXFXfn+`XHWs-tc<3tfp4J;mszeTK0oLCSmhB`y*AI1Q*Htqwc9!WzWNw-L)mVB41_M%L^qvz zAH?{7A!$4P0nkJr=!s@y6xGQj9j?uN!Iv`YDoO(44P&u^mRH|~oPNjWcAGK8b=7uU z1@WO{UIqLw`%8f;CKH7U|Jl>-ro7nqSUY z@<|`fRK~SW;W3K!m9VoeLllBIF>1S>lwR7_%#{YWzNH9z+WDh27KCBPo+6PvK+v&A zjK>G>;cU5(MC`IA*Yi6{!Y+!h)|wH3=Xhe&gY?$vN26Y*mDaZX@k){rqw*B1+Y%AF z0!}u*@}&PAe$2o0Nz<~0s{d@v>v_TBKCR^*oGF}RC+UG4&l8TSF;;$` zj9KG_Xe~HOEGBP8WyDLji5toXTHAM2=9tcq-#h3X-zON}EOc=m=GD^S)KH;dvmarD zIZWHCE59oHOBEI#fHIG|oBlgBTDB*JYr@O!=1*c~fa}O%ymx8p2J4!eP_^lC zx@)2a+(!+VReq<2bse&h33-^*{PcY6V#O?oGNJ04<2U~|1p8|Z1;H8sel)DtFjJ9s z?@QjyF1ElQSfG2tc*^EK=3}H?EK_3DPb_WW2txf=&AF$&rJyf|pSx{n0tSfORw*s& zb4>Yxyuwt7t8jz}$r3(%JnVqIInsr-`VwoDi-AG&Z+_G#@y482*r_3*;j-Lg&c_?o zYIBTP=~X)a178+v09UcOJsYw|RksLprpEgtdBh=FMwMCF4LZY}yUk^nsf7G>zui4- zdVaUMf=OF&(GImh|3d|6JVEF9_}B{!mcADw&}Moqax%dADAVV9*yj$Ysydb6of!f9 zoS=hoG_#g)L_}^RNoY$bje$dT2rzgr1FwYAv(=n1N?vFGN7qL#{gL0z4Q{8OA1zMJ zTeOJZM{s-IF8)N~aNzZ;+HXtjx3_yjfyY96Ab5nr6_!dbO6`5Q2}C8YaP|fZ&G!y+ zxQK8No9|uq*kjFViTO(zu!VoU8dbb2!#gBnS^9^Ue7ACs#2p;9I;)|;_Y~jFRPg?a z$^z04$+d8fOpiYp6+i)WzRm4=o~XxkY>2t6qQk~00)UKq;3wGKvcn&Fv$4fgUXX}( zIv8Wyp4@-ka=A&s!Qq7@dLZodN0(3Vp_e=A(fuQ;>_a!5{KFk1&q^fjA{AOo7~N<9 zKtC+GmdSzQ0b4dMwmbDsZ#AUgK{xj?E(E2i^}GB}$>Bfozorpi6aK8MsIauQeup-q zx9u!I8zcSCpSWTSc{VdUH#apoiHEiYpOBEBc)8gMZ|~n9$D1!|q7Il9hG7yeNE~L zAa2XYy>@?m{m?=V_c({2*E%%;p>O^^;83ek2WnsGw0V%yojY1)f!)OWM=}@HIck|c zhnc;Z<0PjlJ084%f+aRh$v;@=Pc9@A%TfT)yG3F)w`gRNcI?f&c4n|5JbdPpH3mwD+&)XiQK3 zwAVlJ`q7{E`6r(J8++}d=AijkE&%m?{`cJL|JO(Q=8eYf>uuxlIZXs6IUbjMdF@3& zMppk;@+4$`j1$;eP$pAGHG-~;vN=Q{yDfhV7k⋘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 literal 0 HcmV?d00001 diff --git a/docs/images/pair-inspector.png b/docs/images/pair-inspector.png new file mode 100644 index 0000000000000000000000000000000000000000..a7561c21e5cb8140f9b5a76f9ec4d9edf510420b GIT binary patch literal 37114 zcmbrlWmw!j*XT=2TiQ~fc<}lu7bWGFiz=*2*uz%8F7LuZdryprByLNK2@qpgfC2L3zUW^66uW z-e(CB6qL6pG7_R{?x}lA=(?cu2azMCM$XyA&td(xFJJx?7ya>zMD2&>n`pdYCarnR z_Iy*qYM5`mfwmdpAk`hMsk_3kvW#*|=GXe9Z<%kN10jp4sCAX$w$Szm=N=#{>hDRj z)^se2=jK}{{D-Iffv12&=MnJ3&B}u`^|chRRKuQY{NeucuypmYLyy5B65_Q@NfOeX z1&$CJ>BJJAVvPS}p;*6PbCk2@`rBRdBDJae1CbmkHObqfFZ=O@ba z%Q@nIGq}a-Ui=gL9R8#9-x|QwCf5It#gG_%{YN|AQdn4`h1jIW^($$n*t^?eCR%GSI~WS7U^W^B!=lVt@)6&RPLpB)j=WYNYgSh^o@mR z#+$hVcC3j zYX>Zg38=77TGse&(H?IrV%0ewzdm!R+F2B8;&LJ+DkEJ^|KX$pRYK?sIer#l!;bz( za9;#n=xS@t-c-5BrN>+tkgBvI5_MJd6}&qLSW^X3%YMGwC`9ns_X+rxb!=}>2nreP zwY>V?CDFE8OGA=Mr%2W7imzVGB|*w_+&PE6EdRXU;pzyEFGB>g))q&SqjvPLrr()l z{?L+4-El@u<60a;K}Vvc&8 z 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%0Ah+{4%C8w3FeHBA7u9*?l)SOO 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 J3D@pC`UeWYM%w@Y literal 0 HcmV?d00001 diff --git a/docs/images/pairwise-comparison.png b/docs/images/pairwise-comparison.png new file mode 100644 index 0000000000000000000000000000000000000000..66a56d43dbe5fd17a4084e1ee2c30f373dff2b6a GIT binary patch literal 154581 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

    !xgwAc!d%yM@N63X{#Y-lE##V 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

    #8zt1cFbQB2$DHm8qTDJ(abx=UV|z6-X>? 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 MMdd^)K7S4PKe#L*H2?qr literal 0 HcmV?d00001 diff --git a/docs/images/research-notes-export.png b/docs/images/research-notes-export.png new file mode 100644 index 0000000000000000000000000000000000000000..3bb8128f83910b6e7a94b74e4c6fdb136ba065ed GIT binary patch literal 159420 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

    bA&`db#fr8fX`VUFy}i^eY*9vN1JdrGHLLC z3xSAu<<-a6ZU?)=+UKS3wGQVfPIq{TVV5d4ka>&IgN1g?!lrh@HFh(Gxpy?S9 z3KRTS00v}@gSEGgvTB|%=^->+%a`pc?Ae+`LlUDed=s+dJJ_ruEy!_@GhU9w#SjFs zv#3yym7rkM-}QD$vB$f__nWSFewQt>`Eb?gv`pYnjeEB$zmM{NBA&r4=(>YJuGYK5GgUFn(=pUxna2^qsfbiqvJwRMps8*||Tg^N`9 zssl8d%~7D??)6Ir(xWyq2(0kLrzE4fbyS-y`dx>6ociYpRzCBPawsrm&onv`SZPXw z(2)Iaui%p}A??q7!*YM2Hl{Xf)w zbyS;Aw=PwvKnt``ye-9wLvcxqmSV+=rnqY$NC>G=pv6jQfnX`_q&Nh3cL}b=A$ZV` zo67Gy-?{g!yY9LF+;!&<)`FGc&CENqXV3HO{cNh|j~aR&g_BG^lF>}%zy9w1RLC(K zse-BH2Ys&S_VHkCTJ!RkX{^&X(k@zK&W;O*x`UUft_B7M5_g_iPCKO<=Lp@?wl|3> zT^bj7KK44?rCmzIp}gASi}v1D_9sH-Uo^&(*Yh5?|8m{>3naV5Qm-IufbtdQ6B4bn-q7aX3#tmIJ_cZdTxyV|`%$DuY6?Ki?`4o(mck<9wD>C+h&0gtV zGjRI_*Nqrk4|k&^BUEb{^SF@%g*XRQ#)xQS255&xo-UY1ic&58GDvnK%Yvr^L9E(lWpS918xn89oBP}Z` zqqE|tl|X?2sKy~z=(0=n*kQngSosUqD<7mbdCU7=!AwP+hkkIfzF&3gHT4M*3~5c_ zi8Bb50%Y(OIWCB%ra<2E#?h+h2n8g{6V8wK46A&_`l!|vRaPs>hJqqG1| z%M_RDURp_?F4}|U(Yo-fLQxpts@9Sv)yygwwG_)st$=(5X#4Po%J6!AQNmnS{uyS; zH&m2M#b-*(Fd=PDAjwBhEiwDq%*&*%b}Mm7&~V7vcGqdaXs zBE;KrSt*ikGe#$ka#`hm$jp^K82q_e4Xnkg+jy4&slLNOzzL2*v zxgzmHU+a6@q`n>Wj(l(J7L^3L)z@e>KoDT^V@ZdwP|Yvv(dK0Llz`ofhw(3y_;)8; zMK#{Xe1HCs-s)(sX;pzB&|)~ONcPniJ-TkT=N7lr_V$wElRSrf1v*kyhQ^q$;cWEl zcGi+w8agvAA?S25U2XSbYrN0b*CBD=7tTEIc6~9famWVjY$Y>WheQYNO|pp^m-76` z$}3Pv%NC#E_Z6iPb`UM#i!dQpjS+GyA9w|wFMdmdOv%blU5T^1BsJO7K6U=0+CyGd zH8y)NkLn_kNb-6I8C4>K93ZMJW77d%Shd;$2HhtK9oVHAdAghNnQvRQ?1|62w{;q?+U zk`^uGqGK>WUm)pb4L1xs%SjyESiCk7esxpSnjd; zY0bimhmm@nN+!wi3105$54^l(%IO5N3l7mh1>2nRX=(xG$zhbl+F&+w@^K_ zd7u4KKeM#7Vg2}Usu6UE*k=!H@6SaBNT|e6%{L0hi+%>}QZ!+j)OioOPE@ zV$l|!leW}$4n<%91FsK9zqVtl^9fSq%IR$_p9g0)W~w2FHApr0aMsnZI8lqk#(1=2{S35+=fu4~MK`)&S822|q+13V06%JH zgRG8XvYvHSHhS|=5OJ8amy5W)!!W${+j?)Xi7#n3Mq&@Nk|2ZFz&U zOPj3dbJwLl>qA^D*G!CO2XF|dW9xUosgbU4c(Wog<96bLF~W6mJ=`z*rGG3q)e`gC zTv1C*@F~2}Fs?A%uh5QPC+cfxu4EmdI6&TVUVaMQVIk5k4tWrY$pjL$;MTV#IrJ_=Y&afBZD}S{mCpMGY3~1fCReuw~(OB;#3+{rNG0hm1S=!DbEM3a=kw>#np%=`D{dAVrd~uv* zb+Nbhw11DAGumQA9yx}I2*_g;yVY2=`d@HL!P5`H zZ@wJRFk!@!1U0AVUZ|`Rs8j+I)MiFqlegAcqJP{xd_Z8*R+oXscd5mbj%V$WoE^EQ zQ$PJlnX2cfb^jN3ha4@wm|OipQRv_+J0G9>PO@HOtA;~c%t6LzHVujWTtTPgoq96P|wpOK0^p&FIOvjOVYL4vBHSU>%=j-C| zUIyMr5n_fQvec_9SjQmTkg0yl(j`Nx;10mJjU$c(7Tl-oBQvZ9Txz~KV8}u@3J)h z>#fLGjl^eaQBt9-MHTr+!7rRv1}tl_cgO{xJ#?U3XIa}%9Sz-c@)KN+$sS$^=Oi)u z#$b~$lDBneF<*2*{M@TUOS;+su0I|^mEV_iD%FwL%e={2)Sj9Gug%KY3O=GQs<&{k zb!3)Y+QO81WA99jOncsnT3Q+rjtz>Zhs)o+qTo2e(9EN7jP6hfFVp<_%weLe&$2)8 zy5KDa+jw$6k0)Y4_l)Jbs$`jG9&;#VXAehURz6#b8@p9GIW(cX-#P?~{TmC> zH=+{PD&`a9jctNBbu3j(F}oPEJVX_u#^jnjQPxtw4;HWIzd%i|dogsJGri-6Udbji zW8JZXS|VH0k)58!8RCYOt|ZOm*HDHv8c%F9t~rWNsmLYqOgT={`x<3Qji(E{)*0@R zv0CsTj^)4mE)A{L_~}hl9)wHdklae21Ws3UI4?4^Z_;jTrY5&X1hZM^11XU4CtrQ7 zo_Zs;4K|1i=L3EfI#WHj4RYX7fhXvZFmqLw_{#M{JFQ@yiGv(-Vh_^j>f;{ zGE)M(+hWOoE@qzUohXl4xHx%i+MlguX)32t6v;^$C1g${(OmoENA z_j?vlxB1=M0kSihIoVv&FMmjLOwgmw5LqMAM<{gI?O*Zrg!bmbvtI`0mZacBMO^UN z!E$=h=9G#Do81IKoh_0h@S1P3#PHC_@xZ9|)boj8ghI+4bF!g ze3BjzZ@_LXEf4~1yiw~)$n-(Bwf0w8fuk(1xjax+r4Y=4qMc1R(XEKc<;&S=Rp~i{ z;-H20HE^OjO!cgb+v95Ne}?hP+~7Jk&V&k2KhVOC31Ol~`$1>pJtJ%J7iVIr*O-?I z?2QL~8ap%?^Cdwk>G_ZwaiOZ>>#_|KH&q?25(AxI?+@rOrAf=|*Hxr@AEw4z3QUw zTkZ#tIBdvcdTd+UoP;q-^4wR6USlxCY74Cve={uHU2jp4Q{N~WqlKQ_XjWFf3+WL6 zJ#buBW3)|`jQ3)sL|k{vo+?b64Ju8`Uz=^oTeR2>xsSHjpw+8m-aK%CftI4?p^)Hf zfyHIT{PxNkM&sIO2RlJGR{yIfPoi^Y3^X0TcaJZuN1lJ(md_i@G(i-b&5iUN6{ex8 z@C7OIU-=JspwNUPbH{K;dw^g9@e(QDH6t+N#Hc3k52D{gSlfm8G1k9+!5J ziY4E^SH*zhkj)Ac$$XcC9G82C0I;*rY%)2ie1x7(USTai8{WJ23C^Q(yMl+?6xtG4 zfOO#3Ol}v9c2JI)t7k!B`bQJDSo3k~^Jx4F(a2>SKXbb$bS(<~B@>pe_AOlJ++%fq zzP$Eq??4YUppZ9NyqGpcSDrtx3W_3t&K8=T1pGa>_vG~mS7?nr97y&W;irt?kr-PN zXRiAbm_>B6kJ*u0yloaYIxeljML)!zQ5^6#L{mpc=%3&xg)~iXA0O%6Hs;H(Z3N@G zeX6H>d$*!w$^H}e?3$UZ4$B^GfSFGrjoV~dpc-|8w zgif)4q6PR>nINsrB$iMKH)-g}GD=IMh;Eu1@u2JL>l+*2XAzSSw(I)AWGO>0`R{M~ z=GiY!oDaR`r27vtM)W$UphEgT!s`MA2n6mwP53fl%l~a}NS_h1@BX&evbX;h!6W=( z^!ESfT@(l~*AG%vfN>i~=E+Ir-brcj<=MCM4gi5Jn93xmh9^bw&-@)({u=hEe>#Gv zrY7m7HA=wYax?k;-8aN4>uJi6@C3Z42QF-JuI~HhU6%FrK!JQNFlr`jCP^oAY7dVf-4k;k@2j5No*%0A9d(_ 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 SPn#xyEb(;pb6Mw<&;$Vcd$v~q literal 0 HcmV?d00001 diff --git a/docs/images/start-here.png b/docs/images/start-here.png new file mode 100644 index 0000000000000000000000000000000000000000..0905d0a0de4aec42900e351aa44b297254f9ba75 GIT binary patch literal 186292 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

    f2K014fqlDM#QvO>MOPvg!;qHc~t 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

    BLS0$b-v&waBr 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

    M5X+3>Dh0=O_OWYJ$+0^;Tm>=5y`8> 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%0A&B_TqnaoCVN?CMPTx{(-8YsAH4O8aM>7^o# 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 CH<>>G literal 0 HcmV?d00001

W&@Yn&g6H!b5%BAj-H1o7u+`0{xjJskkC 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 hunG9$A=!b4Q|3fN8hk2ARz7`zj}G2 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