From ba4c1591547b78f0d6a157d7c0bab5c2de489f2b Mon Sep 17 00:00:00 2001 From: Matthijs Berends Date: Sun, 8 Feb 2026 23:15:40 +0100 Subject: [PATCH] (v3.0.1.9019) Wildtype/Non-wildtype support, and start with `interpretive_rules()` Fixes #246 Fixes #254 Fixes #255 Fixes #256 --- DESCRIPTION | 4 +- NAMESPACE | 2 + NEWS.md | 13 +- R/aa_helper_functions.R | 28 +++- R/amr_selectors.R | 6 +- R/antibiogram.R | 12 +- R/bug_drug_combinations.R | 27 +++- R/count.R | 12 +- R/custom_eucast_rules.R | 4 +- R/first_isolate.R | 2 +- R/{eucast_rules.R => interpretive_rules.R} | 69 ++++++--- R/key_antimicrobials.R | 9 +- R/mdro.R | 2 +- R/mic.R | 34 +++- R/plotting.R | 146 +++++++++++++----- R/proportion.R | 16 +- R/sir.R | 76 ++++++--- R/sir_calc.R | 18 ++- R/sysdata.rda | Bin 118584 -> 118600 bytes data-raw/translations.tsv | 4 +- index.md | 8 +- man/antibiogram.Rd | 2 +- man/as.mic.Rd | 8 +- man/as.sir.Rd | 8 +- man/bug_drug_combinations.Rd | 2 +- man/custom_eucast_rules.Rd | 2 +- man/custom_mdro_guideline.Rd | 2 +- man/dosage.Rd | 2 +- ...{eucast_rules.Rd => interpretive_rules.Rd} | 37 +++-- man/microorganisms.Rd | 2 +- man/plot.Rd | 2 +- 31 files changed, 394 insertions(+), 165 deletions(-) rename R/{eucast_rules.R => interpretive_rules.R} (94%) rename man/{eucast_rules.Rd => interpretive_rules.Rd} (85%) diff --git a/DESCRIPTION b/DESCRIPTION index 07bef054d..943f76434 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: AMR -Version: 3.0.1.9018 -Date: 2026-01-16 +Version: 3.0.1.9019 +Date: 2026-02-08 Title: Antimicrobial Resistance Data Analysis Description: Functions to simplify and standardise antimicrobial resistance (AMR) data analysis and to work with microbial and antimicrobial properties by diff --git a/NAMESPACE b/NAMESPACE index 54f6c9563..8e3742fa4 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -214,6 +214,7 @@ export(cephalosporins_4th) export(cephalosporins_5th) export(clear_custom_antimicrobials) export(clear_custom_microorganisms) +export(clsi_rules) export(count_I) export(count_IR) export(count_R) @@ -244,6 +245,7 @@ export(ggplot_sir_predict) export(glycopeptides) export(guess_ab_col) export(inner_join_microorganisms) +export(interpretive_rules) export(is.ab) export(is.av) export(is.disk) diff --git a/NEWS.md b/NEWS.md index 2b42197fd..0d71f378f 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,4 @@ -# AMR 3.0.1.9018 +# AMR 3.0.1.9019 ### New * Integration with the **tidymodels** framework to allow seamless use of SIR, MIC and disk data in modelling pipelines via `recipes` @@ -9,15 +9,24 @@ - `all_disk()`, `all_disk_predictors()` * Data set `esbl_isolates` to practise with AMR modelling * AMR selectors `phosphonics()` and `spiropyrimidinetriones()` -* `antimicrobials$group` is now a `list` instead of a `character`, to contain any group the drug is in (#246) +* Support for Wildtype (WT) / Non-wildtype (NWT) in `as.sir()`, all plotting functions, and all susceptibility/resistance functions. + - `as.sir()` gained an argument `as_wt_nwt`, which defaults to `TRUE` only when `breakpoint_type = "ECOFF"` (#254) + - This transforms the output from S/R to WT/NWT + - Functions such as `susceptibility()` count WT as S and NWT as R +* `interpretive_rules()`, which allows future implementation of CLSI interpretive rules (#235) + - `eucast_rules()` has become a wrapper around that function. ### Fixes * Fixed a bug in `antibiogram()` for when no antimicrobials are set * Fixed a bug in `as.sir()` where for numeric input the arguments `S`, `i`, and `R` would not be considered (#244) * Fixed some foreign translations of antimicrobial drugs * Fixed a bug for printing column names to the console when using `mutate_at(vars(...), as.mic)` (#249) +* Fixed a bug to disregard `NI` for susceptibility proportion functions +* Fixed Italian translation of CoNS to Stafilococco coagulasi-negativo and CoPS to Stafilococco coagulasi-positivo (#256) ### Updates +* `as.mic()` and `rescale_mic()` gained the argument `round_to_next_log2`, which can be set to `TRUE` to round all values up to the nearest next log2 level (#255) +* `antimicrobials$group` is now a `list` instead of a `character`, to contain any group the drug is in (#246) * `ab_group()` gained an argument `all_groups` to return all groups the antimicrobial drug is in (#246) * Added taniborbactam (`TAN`) and cefepime/taniborbactam (`FTA`) to the `antimicrobials` data set * Added explaining message to `as.sir()` when interpreting numeric values (e.g., 1 for S, 2 for I, 3 for R) (#244) diff --git a/R/aa_helper_functions.R b/R/aa_helper_functions.R index eb36953a6..f32e2f0fd 100644 --- a/R/aa_helper_functions.R +++ b/R/aa_helper_functions.R @@ -685,8 +685,12 @@ format_included_data_number <- function(data) { vector_or <- function(v, quotes = TRUE, reverse = FALSE, sort = TRUE, initial_captital = FALSE, last_sep = " or ") { # makes unique and sorts, and this also removed NAs v <- unique(v) + has_na <- anyNA(v) if (isTRUE(sort)) { v <- sort(v) + if (has_na) { + v <- c(v, NA) + } } if (isTRUE(reverse)) { v <- rev(v) @@ -708,18 +712,25 @@ vector_or <- function(v, quotes = TRUE, reverse = FALSE, sort = TRUE, initial_ca # class 'sir' should be sorted like this v <- c("S", "I", "R") } - if (identical(v, c("I", "NI", "R", "S", "SDD"))) { + if (identical(v, sort(VALID_SIR_LEVELS))) { # class 'sir' should be sorted like this - v <- c("S", "SDD", "I", "R", "NI") + v <- VALID_SIR_LEVELS } # oxford comma if (last_sep %in% c(" or ", " and ") && length(v) > 2) { last_sep <- paste0(",", last_sep) } + NAs <- which(is.na(v)) + + if (is.numeric(v)) { + v <- trimws(vapply(FUN.VALUE = character(1), v, format, scientific = FALSE)) + } + quoted <- paste0(quotes, v, quotes) + quoted[NAs] <- "NA" # all commas except for last item, so will become '"val1", "val2", "val3" or "val4"' paste0( - paste0(quotes, v[seq_len(length(v) - 1)], quotes, collapse = ", "), - last_sep, paste0(quotes, v[length(v)], quotes) + paste(quoted[seq_len(length(quoted) - 1)], collapse = ", "), + last_sep, quoted[length(quoted)] ) } @@ -1097,11 +1108,14 @@ format_custom_query_rule <- function(query, colours = has_colour()) { query <- gsub("any\\((.*)\\)$", paste0(font_black("any of "), "\\1"), query) query <- gsub("all\\((.*)\\)$", paste0(font_black("all of "), "\\1"), query) if (colours == TRUE) { - query <- gsub("[\"']R[\"']", font_rose_bg(" R "), query) - query <- gsub("[\"']SDD[\"']", font_orange_bg(" SDD "), query) query <- gsub("[\"']S[\"']", font_green_bg(" S "), query) - query <- gsub("[\"']NI[\"']", font_grey_bg(font_black(" NI ")), query) + query <- gsub("[\"']SDD[\"']", font_orange_bg(" SDD "), query) query <- gsub("[\"']I[\"']", font_orange_bg(" I "), query) + query <- gsub("[\"']R[\"']", font_rose_bg(" R "), query) + query <- gsub("[\"']NI[\"']", font_grey_bg(font_black(" NI ")), query) + query <- gsub("[\"']WT[\"']", font_green_bg(" SDD "), query) + query <- gsub("[\"']NWT[\"']", font_rose_bg(" I "), query) + query <- gsub("[\"']NS[\"']", font_rose_bg(" R "), query) } # replace the black colour 'stops' with blue colour 'starts' query <- gsub("\033[39m", "\033[34m", as.character(query), fixed = TRUE) diff --git a/R/amr_selectors.R b/R/amr_selectors.R index 7636c51ba..ee7b106a0 100755 --- a/R/amr_selectors.R +++ b/R/amr_selectors.R @@ -839,10 +839,10 @@ c.amr_selector <- function(...) { all_any_amr_selector <- function(type, ..., na.rm = TRUE) { cols_ab <- c(...) - result <- cols_ab[toupper(cols_ab) %in% c("S", "SDD", "I", "R", "NI")] + result <- cols_ab[toupper(cols_ab) %in% VALID_SIR_LEVELS] if (length(result) == 0) { message_("Filtering ", type, " of columns ", vector_and(font_bold(cols_ab, collapse = NULL), quotes = "'"), ' to contain value "S", "I" or "R"') - result <- c("S", "SDD", "I", "R", "NI") + result <- VALID_SIR_LEVELS } cols_ab <- cols_ab[!cols_ab %in% result] df <- get_current_data(arg_name = NA, call = -3) @@ -951,7 +951,7 @@ any.amr_selector_any_all <- function(..., na.rm = FALSE) { } } # this is `!=`, so turn around the values - sir <- c("S", "SDD", "I", "R", "NI") + sir <- VALID_SIR_LEVELS e2 <- sir[sir != e2] structure(all_any_amr_selector(type = type, e1, e2), class = c("amr_selector_any_all", "logical") diff --git a/R/antibiogram.R b/R/antibiogram.R index b7199e13b..1fffc1dd0 100755 --- a/R/antibiogram.R +++ b/R/antibiogram.R @@ -560,12 +560,11 @@ antibiogram.default <- function(x, next } else { # determine whether this new column should contain S, I, R, or NA + S_values <- c("S", "WT") if (isTRUE(combine_SI)) { - S_values <- c("S", "SDD", "I") - } else { - S_values <- "S" + S_values <- c(S_values, "SDD", "I") } - other_values <- setdiff(c("S", "SDD", "I", "R"), S_values) + other_values <- setdiff(c("S", "SDD", "I", "R", "WT", "NWT", "NS"), S_values) x_transposed <- as.list(as.data.frame(t(x[, abx, drop = FALSE]), stringsAsFactors = FALSE)) if (isTRUE(only_all_tested)) { x[new_colname] <- as.sir(vapply(FUN.VALUE = character(1), x_transposed, function(x) ifelse(anyNA(x), NA_character_, ifelse(any(x %in% S_values), "S", "R")), USE.NAMES = FALSE)) @@ -615,10 +614,9 @@ antibiogram.default <- function(x, counts <- out + out$n_susceptible <- out$S + out$WT if (isTRUE(combine_SI)) { - out$n_susceptible <- out$S + out$I + out$SDD - } else { - out$n_susceptible <- out$S + out$n_susceptible <- out$n_susceptible + out$I + out$SDD } if (all(out$n_tested < minimum, na.rm = TRUE) && wisca == FALSE) { warning_("All combinations had less than `minimum = ", minimum, "` results, returning an empty antibiogram") diff --git a/R/bug_drug_combinations.R b/R/bug_drug_combinations.R index 7e388eec7..6eb9a9beb 100755 --- a/R/bug_drug_combinations.R +++ b/R/bug_drug_combinations.R @@ -43,7 +43,7 @@ #' @details The function [format()] calculates the resistance per bug-drug combination and returns a table ready for reporting/publishing. Use `combine_SI = TRUE` (default) to test R vs. S+I and `combine_SI = FALSE` to test R+I vs. S. This table can also directly be used in R Markdown / Quarto without the need for e.g. [knitr::kable()]. #' @export #' @rdname bug_drug_combinations -#' @return The function [bug_drug_combinations()] returns a [data.frame] with columns "mo", "ab", "S", "SDD", "I", "R", and "total". +#' @return The function [bug_drug_combinations()] returns a [data.frame] with columns "mo", "ab", "S", "SDD", "I", "R", "WT, "NWT", and "total". #' @examples #' # example_isolates is a data set available in the AMR package. #' # run ?example_isolates for more info. @@ -111,6 +111,8 @@ bug_drug_combinations <- function(x, SDD = integer(0), I = integer(0), R = integer(0), + WT = integer(0), + NWT = integer(0), total = integer(0), total_rows = integer(0), stringsAsFactors = FALSE @@ -133,6 +135,9 @@ bug_drug_combinations <- function(x, I = m["I", ], R = m["R", ], NI = m["NI", ], + WT = m["WT", ], + NWT = m["NWT", ], + NS = m["NS", ], na = m[which(is.na(rownames(m))), ], stringsAsFactors = FALSE ) @@ -146,8 +151,11 @@ bug_drug_combinations <- function(x, I = merged$I, R = merged$R, NI = merged$NI, - total = merged$S + merged$SDD + merged$I + merged$R + merged$NI, - total_rows = merged$S + merged$SDD + merged$I + merged$R + merged$NI + merged$na, + WT = merged$WT, + NWT = merged$NWT, + NS = merged$NS, + total = merged$S + merged$SDD + merged$I + merged$R + merged$NI + merged$WT + merged$NWT + merged$NS, + total_rows = merged$S + merged$SDD + merged$I + merged$R + merged$NI + merged$WT + merged$NWT + merged$NS + merged$na, stringsAsFactors = FALSE ) if (data_has_groups) { @@ -229,12 +237,17 @@ format.bug_drug_combinations <- function(x, I = vapply(FUN.VALUE = double(1), idx, function(i) sum(x$I[i], na.rm = TRUE)), R = vapply(FUN.VALUE = double(1), idx, function(i) sum(x$R[i], na.rm = TRUE)), NI = vapply(FUN.VALUE = double(1), idx, function(i) sum(x$NI[i], na.rm = TRUE)), + WT = vapply(FUN.VALUE = double(1), idx, function(i) sum(x$WT[i], na.rm = TRUE)), + NWT = vapply(FUN.VALUE = double(1), idx, function(i) sum(x$NWT[i], na.rm = TRUE)), + NS = vapply(FUN.VALUE = double(1), idx, function(i) sum(x$NS[i], na.rm = TRUE)), total = vapply(FUN.VALUE = double(1), idx, function(i) { sum(x$S[i], na.rm = TRUE) + sum(x$SDD[i], na.rm = TRUE) + sum(x$I[i], na.rm = TRUE) + sum(x$R[i], na.rm = TRUE) + - sum(x$NI[i], na.rm = TRUE) + sum(x$WT[i], na.rm = TRUE) + + sum(x$NWT[i], na.rm = TRUE) + + sum(x$NS[i], na.rm = TRUE) }), stringsAsFactors = FALSE ) @@ -246,10 +259,10 @@ format.bug_drug_combinations <- function(x, if (remove_intrinsic_resistant == TRUE) { x <- subset(x, R != total) } + + x$isolates <- x$R + x$NWT if (combine_SI == TRUE) { - x$isolates <- x$R - } else { - x$isolates <- x$R + x$I + x$SDD + x$isolates <- x$isolates + x$I + x$SDD } give_ab_name <- function(ab, format, language) { diff --git a/R/count.R b/R/count.R index 532c0b748..c3a19d621 100755 --- a/R/count.R +++ b/R/count.R @@ -122,7 +122,7 @@ count_resistant <- function(..., only_all_tested = FALSE) { tryCatch( sir_calc(..., - ab_result = "R", + ab_result = c("R", "NWT", "NS"), only_all_tested = only_all_tested, only_count = TRUE ), @@ -135,7 +135,7 @@ count_resistant <- function(..., only_all_tested = FALSE) { count_susceptible <- function(..., only_all_tested = FALSE) { tryCatch( sir_calc(..., - ab_result = c("S", "SDD", "I"), + ab_result = c("S", "SDD", "I", "WT"), only_all_tested = only_all_tested, only_count = TRUE ), @@ -161,7 +161,7 @@ count_S <- function(..., only_all_tested = FALSE) { count_SI <- function(..., only_all_tested = FALSE) { tryCatch( sir_calc(..., - ab_result = c("S", "SDD", "I"), + ab_result = c("S", "SDD", "I", "WT"), only_all_tested = only_all_tested, only_count = TRUE ), @@ -187,7 +187,7 @@ count_I <- function(..., only_all_tested = FALSE) { count_IR <- function(..., only_all_tested = FALSE) { tryCatch( sir_calc(..., - ab_result = c("I", "SDD", "R"), + ab_result = c("I", "SDD", "R", "NWT"), only_all_tested = only_all_tested, only_count = TRUE ), @@ -200,7 +200,7 @@ count_IR <- function(..., only_all_tested = FALSE) { count_R <- function(..., only_all_tested = FALSE) { tryCatch( sir_calc(..., - ab_result = "R", + ab_result = c("R", "NWT", "NS"), only_all_tested = only_all_tested, only_count = TRUE ), @@ -213,7 +213,7 @@ count_R <- function(..., only_all_tested = FALSE) { count_all <- function(..., only_all_tested = FALSE) { tryCatch( sir_calc(..., - ab_result = c("S", "SDD", "I", "R", "NI"), + ab_result = VALID_SIR_LEVELS, only_all_tested = only_all_tested, only_count = TRUE ), diff --git a/R/custom_eucast_rules.R b/R/custom_eucast_rules.R index 5cea829c8..8a762fb12 100755 --- a/R/custom_eucast_rules.R +++ b/R/custom_eucast_rules.R @@ -220,8 +220,8 @@ custom_eucast_rules <- function(...) { result_value <- as.character(result)[[3]] result_value[result_value == "NA"] <- NA stop_ifnot( - result_value %in% c("S", "SDD", "I", "R", "NI", NA), - "the resulting value of rule ", i, " must be either \"S\", \"SDD\", \"I\", \"R\", \"NI\" or NA" + result_value %in% c(VALID_SIR_LEVELS, NA), + paste0("the resulting value of rule ", i, " must be either ", vector_or(c(VALID_SIR_LEVELS, NA), sort = FALSE)) ) result_value <- as.sir(result_value) diff --git a/R/first_isolate.R b/R/first_isolate.R index 95a5a2fb9..091154708 100644 --- a/R/first_isolate.R +++ b/R/first_isolate.R @@ -246,7 +246,7 @@ first_isolate <- function(x = NULL, FUN.VALUE = logical(1), X = x, # check only first 10,000 rows - FUN = function(x) any(as.character(x[1:10000]) %in% c("S", "SDD", "I", "R", "NI"), na.rm = TRUE), + FUN = function(x) any(as.character(x[1:10000]) %in% VALID_SIR_LEVELS, na.rm = TRUE), USE.NAMES = FALSE )) if (method == "phenotype-based" && !any_col_contains_sir) { diff --git a/R/eucast_rules.R b/R/interpretive_rules.R similarity index 94% rename from R/eucast_rules.R rename to R/interpretive_rules.R index d049f5ae4..1e709e066 100755 --- a/R/eucast_rules.R +++ b/R/interpretive_rules.R @@ -53,15 +53,21 @@ format_eucast_version_nr <- function(version, markdown = TRUE) { vector_and(txt, quotes = FALSE) } -#' Apply EUCAST Rules +#' Apply Interpretive Rules #' #' @description -#' Apply rules from clinical breakpoints notes and expected resistant phenotypes as defined by the European Committee on Antimicrobial Susceptibility Testing (EUCAST, ), see *Source*. Use [eucast_dosage()] to get a [data.frame] with advised dosages of a certain bug-drug combination, which is based on the [dosage] data set. +#' **WORK IN PROGRESS** #' -#' To improve the interpretation of the antibiogram before EUCAST rules are applied, some non-EUCAST rules can applied at default, see *Details*. +# TODO Remove this remark before next release +#' **The `interpretive_rules()` function is new, to allow CLSI 'rules' too. The old `eucast_rules()` function will stay as a wrapper, but we need to generalise more parts of the underlying code to allow more than just EUCAST.** +#' +#' Apply rules from clinical breakpoints notes and expected resistant phenotypes as defined by e.g. the European Committee on Antimicrobial Susceptibility Testing (EUCAST, ), see *Source*. Use [eucast_dosage()] to get a [data.frame] with advised dosages of a certain bug-drug combination, which is based on the [dosage] data set. +#' +#' To improve the interpretation of the antibiogram before CLSI/EUCAST interpretive rules are applied, some AMR-specific rules can be applied at default, see *Details*. #' @param x A data set with antimicrobials columns, such as `amox`, `AMX` and `AMC`. #' @param info A [logical] to indicate whether progress should be printed to the console - the default is only print while in interactive sessions. -#' @param rules A [character] vector that specifies which rules should be applied. Must be one or more of `"breakpoints"`, `"expected_phenotypes"`, `"expert"`, `"other"`, `"custom"`, `"all"`, and defaults to `c("breakpoints", "expected_phenotypes")`. The default value can be set to another value using the package option [`AMR_eucastrules`][AMR-options]: `options(AMR_eucastrules = "all")`. If using `"custom"`, be sure to fill in argument `custom_rules` too. Custom rules can be created with [custom_eucast_rules()]. +#' @param guideline A guideline name, either "EUCAST" (default) or "CLSI". This can be set with the package option [`AMR_guideline`][AMR-options]. +#' @param rules A [character] vector that specifies which rules should be applied. Must be one or more of `"breakpoints"`, `"expected_phenotypes"`, `"expert"`, `"other"`, `"custom"`, `"all"`, and defaults to `c("breakpoints", "expected_phenotypes")`. The default value can be set to another value using the package option [`AMR_interpretive_rules`][AMR-options]: `options(AMR_interpretive_rules = "all")`. If using `"custom"`, be sure to fill in argument `custom_rules` too. Custom rules can be created with [custom_eucast_rules()]. #' @param verbose A [logical] to turn Verbose mode on and off (default is off). In Verbose mode, the function does not apply rules to the data, but instead returns a data set in logbook form with extensive info about which rows and columns would be effected and in which way. Using Verbose mode takes a lot more time. #' @param version_breakpoints The version number to use for the EUCAST Clinical Breakpoints guideline. Can be `r vector_or(names(EUCAST_VERSION_BREAKPOINTS), reverse = TRUE)`. #' @param version_expected_phenotypes The version number to use for the EUCAST Expected Phenotypes. Can be `r vector_or(names(EUCAST_VERSION_EXPECTED_PHENOTYPES), reverse = TRUE)`. @@ -100,9 +106,9 @@ format_eucast_version_nr <- function(version, markdown = TRUE) { #' #' Important examples include amoxicillin and amoxicillin/clavulanic acid, and trimethoprim and trimethoprim/sulfamethoxazole. Needless to say, for these rules to work, both drugs must be available in the data set. #' -#' Since these rules are not officially approved by EUCAST, they are not applied at default. To use these rules, include `"other"` to the `rules` argument, or use `eucast_rules(..., rules = "all")`. You can also set the package option [`AMR_eucastrules`][AMR-options], i.e. run `options(AMR_eucastrules = "all")`. +#' Since these rules are not officially approved by EUCAST, they are not applied at default. To use these rules, include `"other"` to the `rules` argument, or use `eucast_rules(..., rules = "all")`. You can also set the package option [`AMR_interpretive_rules`][AMR-options], i.e. run `options(AMR_interpretive_rules = "all")`. #' @aliases EUCAST -#' @rdname eucast_rules +#' @rdname interpretive_rules #' @export #' @return The input of `x`, possibly with edited values of antimicrobials. Or, if `verbose = TRUE`, a [data.frame] with all original and new values of the affected bug-drug combinations. #' @source @@ -156,21 +162,23 @@ format_eucast_version_nr <- function(version, markdown = TRUE) { #' eucast_dosage(c("tobra", "genta", "cipro"), "iv") #' #' eucast_dosage(c("tobra", "genta", "cipro"), "iv", version_breakpoints = 10) -eucast_rules <- function(x, - col_mo = NULL, - info = interactive(), - rules = getOption("AMR_eucastrules", default = c("breakpoints", "expected_phenotypes")), - verbose = FALSE, - version_breakpoints = 15.0, - version_expected_phenotypes = 1.2, - version_expertrules = 3.3, - ampc_cephalosporin_resistance = NA, - only_sir_columns = any(is.sir(x)), - custom_rules = NULL, - overwrite = FALSE, - ...) { +interpretive_rules <- function(x, + col_mo = NULL, + guideline = getOption("AMR_guideline", "EUCAST"), + info = interactive(), + rules = getOption("AMR_interpretive_rules", default = c("breakpoints", "expected_phenotypes")), + verbose = FALSE, + version_breakpoints = 15.0, + version_expected_phenotypes = 1.2, + version_expertrules = 3.3, + ampc_cephalosporin_resistance = NA, + only_sir_columns = any(is.sir(x)), + custom_rules = NULL, + overwrite = FALSE, + ...) { meet_criteria(x, allow_class = "data.frame") meet_criteria(col_mo, allow_class = "character", has_length = 1, is_in = colnames(x), allow_NULL = TRUE) + meet_criteria(guideline, allow_class = "character", has_length = 1, is_in = c("EUCAST", "CLSI")) meet_criteria(info, allow_class = "logical", has_length = 1) meet_criteria(rules, allow_class = "character", has_length = c(1, 2, 3, 4, 5, 6), is_in = c("breakpoints", "expected_phenotypes", "expert", "other", "all", "custom")) meet_criteria(verbose, allow_class = "logical", has_length = 1) @@ -1092,6 +1100,25 @@ eucast_rules <- function(x, } } +#' @rdname interpretive_rules +#' @export +eucast_rules <- function(x, + rules = getOption("AMR_interpretive_rules", default = c("breakpoints", "expected_phenotypes")), + ...) { + if (!is.null(getOption("AMR_eucastrules", default = NULL))) { + warning_("The global option `AMR_eucastrules` that you have set is now invalid was ignored - set `AMR_interpretive_rules` instead. See `?AMR-options`.") + } + interpretive_rules(x = x, guideline = "EUCAST", rules = rules, ...) +} + +#' @rdname interpretive_rules +#' @export +clsi_rules <- function(x, + rules = getOption("AMR_interpretive_rules", default = c("breakpoints", "expected_phenotypes")), + ...) { + interpretive_rules(x = x, guideline = "CLSI", rules = rules, ...) +} + # helper function for editing the table ---- edit_sir <- function(x, to, @@ -1131,7 +1158,7 @@ edit_sir <- function(x, track_changes$sir_warn <- cols[!vapply(FUN.VALUE = logical(1), x[, cols, drop = FALSE], is.sir)] } isNA <- is.na(new_edits[rows, cols]) - isSIR <- !isNA & (new_edits[rows, cols] == "S" | new_edits[rows, cols] == "I" | new_edits[rows, cols] == "R" | new_edits[rows, cols] == "SDD" | new_edits[rows, cols] == "NI") + isSIR <- !isNA & (new_edits[rows, cols] == "S" | new_edits[rows, cols] == "I" | new_edits[rows, cols] == "R" | new_edits[rows, cols] == "SDD" | new_edits[rows, cols] == "NI" | new_edits[rows, cols] == "WT" | new_edits[rows, cols] == "NWT" | new_edits[rows, cols] == "NS") non_SIR <- !isSIR if (isFALSE(overwrite) && any(isSIR) && message_not_thrown_before("edit_sir.warning_overwrite")) { warning_("Some values had SIR values and were not overwritten, since `overwrite = FALSE`.") @@ -1230,7 +1257,7 @@ edit_sir <- function(x, return(track_changes) } -#' @rdname eucast_rules +#' @rdname interpretive_rules #' @export eucast_dosage <- function(ab, administration = "iv", version_breakpoints = 15) { meet_criteria(ab, allow_class = c("character", "numeric", "integer", "factor")) diff --git a/R/key_antimicrobials.R b/R/key_antimicrobials.R index b8165e7b8..1ead34817 100755 --- a/R/key_antimicrobials.R +++ b/R/key_antimicrobials.R @@ -282,6 +282,9 @@ generate_antimicrobials_string <- function(df) { function(x) { x <- toupper(as.character(x)) x[x == "SDD"] <- "I" + x[x == "WT"] <- "S" + x[x == "NWT"] <- "R" + x[x == "NS"] <- "R" # ignore "NI" here, no use for determining first isolates x[!x %in% c("S", "I", "R")] <- "." paste(x) @@ -311,11 +314,7 @@ antimicrobials_equal <- function(y, key2sir <- function(val) { val <- strsplit(val, "", fixed = TRUE)[[1L]] - val.int <- rep(NA_real_, length(val)) - val.int[val == "S"] <- 1 - val.int[val %in% c("I", "SDD")] <- 2 - val.int[val == "R"] <- 3 - val.int + as.double(as.sir(val)) } # only run on uniques uniq <- unique(c(y, z)) diff --git a/R/mdro.R b/R/mdro.R index 09a075840..e583ddea4 100755 --- a/R/mdro.R +++ b/R/mdro.R @@ -777,7 +777,7 @@ mdro <- function(x = NULL, sum(vapply( FUN.VALUE = logical(1), group_tbl, - function(group) any(unlist(x[row, group[!is.na(group)], drop = TRUE]) %in% c("S", "SDD", "I", "R")) + function(group) any(unlist(x[row, group[!is.na(group)], drop = TRUE]) %in% VALID_SIR_LEVELS[VALID_SIR_LEVELS != "NI"]) )) } ) diff --git a/R/mic.R b/R/mic.R index c0234fff8..229f86e85 100644 --- a/R/mic.R +++ b/R/mic.R @@ -63,6 +63,7 @@ COMMON_MIC_VALUES <- c( #' @param x A [character] or [numeric] vector. #' @param na.rm A [logical] indicating whether missing values should be removed. #' @param keep_operators A [character] specifying how to handle operators (such as `>` and `<=`) in the input. Accepts one of three values: `"all"` (or `TRUE`) to keep all operators, `"none"` (or `FALSE`) to remove all operators, or `"edges"` to keep operators only at both ends of the range. +#' @param round_to_next_log2 A [logical] to round up all values to the next log2 level, that are not either `r vector_or(COMMON_MIC_VALUES, quotes = F)`. Values that are already in this list (with or without operators), are left unchanged (including any operators). #' @param ... Arguments passed on to methods. #' @details To interpret MIC values as SIR values, use [as.sir()] on MIC values. It supports guidelines from EUCAST (`r min(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "EUCAST")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "EUCAST")$guideline)))`) and CLSI (`r min(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "CLSI")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "CLSI")$guideline)))`). #' @@ -157,10 +158,12 @@ COMMON_MIC_VALUES <- c( #' if (require("ggplot2")) { #' autoplot(mic_data, mo = "E. coli", ab = "cipro", language = "nl") # Dutch #' } -as.mic <- function(x, na.rm = FALSE, keep_operators = "all") { +as.mic <- function(x, na.rm = FALSE, keep_operators = "all", round_to_next_log2 = FALSE) { meet_criteria(x, allow_NA = TRUE) meet_criteria(na.rm, allow_class = "logical", has_length = 1) meet_criteria(keep_operators, allow_class = c("character", "logical"), is_in = c("all", "none", "edges", FALSE, TRUE), has_length = 1) + meet_criteria(round_to_next_log2, allow_class = "logical", has_length = 1) + if (isTRUE(keep_operators)) { keep_operators <- "all" } else if (isFALSE(keep_operators)) { @@ -168,6 +171,9 @@ as.mic <- function(x, na.rm = FALSE, keep_operators = "all") { } if (is.mic(x) && (keep_operators == "all" || !any(x %like% "[>=<]", na.rm = TRUE))) { + if (isTRUE(round_to_next_log2)) { + x <- roundup_to_nearest_log2(x) + } if (!identical(levels(x), VALID_MIC_LEVELS)) { # might be from an older AMR version - just update MIC factor levels x <- set_clean_class(factor(as.character(x), levels = VALID_MIC_LEVELS, ordered = TRUE), @@ -279,6 +285,10 @@ as.mic <- function(x, na.rm = FALSE, keep_operators = "all") { x[!x %in% keep] <- gsub("[>=<]", "", x[!x %in% keep]) } + if (isTRUE(round_to_next_log2)) { + x <- roundup_to_nearest_log2(x) + } + set_clean_class(factor(x, levels = VALID_MIC_LEVELS, ordered = TRUE), new_class = c("mic", "ordered", "factor") ) @@ -305,7 +315,7 @@ NA_mic_ <- set_clean_class(factor(NA, levels = VALID_MIC_LEVELS, ordered = TRUE) #' @rdname as.mic #' @param mic_range A manual range to rescale the MIC values, e.g., `mic_range = c(0.001, 32)`. Use `NA` to prevent rescaling on one side, e.g., `mic_range = c(NA, 32)`. #' @export -rescale_mic <- function(x, mic_range, keep_operators = "edges", as.mic = TRUE) { +rescale_mic <- function(x, mic_range, keep_operators = "edges", as.mic = TRUE, round_to_next_log2 = FALSE) { meet_criteria(mic_range, allow_class = c("numeric", "integer", "logical", "mic"), has_length = 2, allow_NA = TRUE, allow_NULL = TRUE) if (is.numeric(mic_range)) { mic_range <- trimws(format(mic_range, scientific = FALSE)) @@ -336,7 +346,7 @@ rescale_mic <- function(x, mic_range, keep_operators = "edges", as.mic = TRUE) { x[x > max_mic] <- max_mic } - x <- as.mic(x, keep_operators = ifelse(keep_operators == "edges", "none", keep_operators)) + x <- as.mic(x, keep_operators = ifelse(keep_operators == "edges", "none", keep_operators), round_to_next_log2 = round_to_next_log2) if (isTRUE(as.mic)) { if (keep_operators == "edges" && length(unique(x)) > 1) { @@ -605,6 +615,24 @@ get_skimmers.mic <- function(column) { ) } + +roundup_to_nearest_log2 <- function(x) { + x_dbl <- suppressWarnings(as.double(gsub("[>=<]", "", x))) + x_new <- vapply( + FUN.VALUE = double(1), + x_dbl, + function(val) { + if (is.na(val)) { + NA_real_ + } else { + COMMON_MIC_VALUES[which(COMMON_MIC_VALUES >= val)][1] + } + } + ) + x[!x_dbl %in% COMMON_MIC_VALUES] <- x_new[!x_dbl %in% COMMON_MIC_VALUES] + x +} + # Miscellaneous mathematical functions ------------------------------------ #' @method mean mic diff --git a/R/plotting.R b/R/plotting.R index 72b842860..479d4cd71 100755 --- a/R/plotting.R +++ b/R/plotting.R @@ -399,7 +399,12 @@ create_scale_sir <- function(aesthetics, colours_SIR, language, eucast_I, ...) { args, list( aesthetics = aesthetics, - values = c(colours_SIR, NI = "grey30") + values = c(colours_SIR, + NI = "grey30", + WT = unname(colours_SIR[1]), + NWT = unname(colours_SIR[4]), + NS = unname(colours_SIR[4]) + ) ) ) } @@ -424,6 +429,9 @@ create_scale_sir <- function(aesthetics, colours_SIR, language, eucast_I, ...) { x[x == "SI"] <- "(S/I) Susceptible" x[x == "IR"] <- "(I/R) Non-susceptible" x[x == "NI"] <- "(NI) Non-interpretable" + x[x == "WT"] <- "(WT) Wildtype" + x[x == "NWT"] <- "(NWT) Non-wildtype" + x[x == "NS"] <- "(NS) Non-susceptible" x <- translate_AMR(x, language = language) } x @@ -537,11 +545,16 @@ plot.mic <- function(x, meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3, 4)) language <- validate_language(language) meet_criteria(expand, allow_class = "logical", has_length = 1) + meet_criteria(include_PKPD, allow_class = "logical", has_length = 1) + meet_criteria(breakpoint_type, allow_class = "character", is_in = AMR::clinical_breakpoints$type, has_length = 1) x <- as.mic(x) # make sure that currently implemented MIC levels are used main <- gsub(" +", " ", paste0(main, collapse = " ")) colours_SIR <- expand_SIR_colours(colours_SIR) + # wildtype/Non-wildtype + is_wt_nwt <- identical(breakpoint_type, "ECOFF") + x <- plotrange_as_table(x, expand = expand) cols_sub <- plot_colours_subtitle_guideline( x = x, @@ -572,10 +585,14 @@ plot.mic <- function(x, if (any(colours_SIR %in% cols_sub$cols)) { legend_txt <- character(0) legend_col <- character(0) - if (any(cols_sub$cols == colours_SIR[1] & cols_sub$count > 0)) { + if (!is_wt_nwt & any(cols_sub$cols == colours_SIR[1] & cols_sub$count > 0)) { legend_txt <- c(legend_txt, "(S) Susceptible") legend_col <- colours_SIR[1] } + if (is_wt_nwt & any(cols_sub$cols == colours_SIR[1] & cols_sub$count > 0)) { + legend_txt <- c(legend_txt, "(WT) Wildtype") + legend_col <- colours_SIR[1] + } if (any(cols_sub$cols == colours_SIR[2] & cols_sub$count > 0)) { legend_txt <- c(legend_txt, "(SDD) Susceptible dose-dependent") legend_col <- c(legend_col, colours_SIR[2]) @@ -584,10 +601,14 @@ plot.mic <- function(x, legend_txt <- c(legend_txt, paste("(I)", plot_name_of_I(cols_sub$guideline))) legend_col <- c(legend_col, colours_SIR[3]) } - if (any(cols_sub$cols == colours_SIR[4] & cols_sub$count > 0)) { + if (!is_wt_nwt & any(cols_sub$cols == colours_SIR[4] & cols_sub$count > 0)) { legend_txt <- c(legend_txt, "(R) Resistant") legend_col <- c(legend_col, colours_SIR[4]) } + if (is_wt_nwt & any(cols_sub$cols == colours_SIR[4] & cols_sub$count > 0)) { + legend_txt <- c(legend_txt, "(NWT) Non-wildtype") + legend_col <- c(legend_col, colours_SIR[4]) + } legend("top", x.intersp = 0.5, @@ -680,6 +701,8 @@ autoplot.mic <- function(object, meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3, 4)) language <- validate_language(language) meet_criteria(expand, allow_class = "logical", has_length = 1) + meet_criteria(include_PKPD, allow_class = "logical", has_length = 1) + meet_criteria(breakpoint_type, allow_class = "character", is_in = AMR::clinical_breakpoints$type, has_length = 1) if ("main" %in% names(list(...))) { title <- list(...)$main @@ -690,6 +713,9 @@ autoplot.mic <- function(object, colours_SIR <- expand_SIR_colours(colours_SIR) + # wildtype/Non-wildtype + is_wt_nwt <- identical(breakpoint_type, "ECOFF") + object <- as.mic(object) # make sure that currently implemented MIC levels are used x <- plotrange_as_table(object, expand = expand) cols_sub <- plot_colours_subtitle_guideline( @@ -708,17 +734,21 @@ autoplot.mic <- function(object, df <- as.data.frame(x, stringsAsFactors = TRUE) colnames(df) <- c("mic", "count") df$cols <- cols_sub$cols - df$cols[df$cols == colours_SIR[1]] <- "(S) Susceptible" + df$cols[df$cols == colours_SIR[1] & !is_wt_nwt] <- "(S) Susceptible" + df$cols[df$cols == colours_SIR[1] & is_wt_nwt] <- "(WT) Wildtype" df$cols[df$cols == colours_SIR[2]] <- "(SDD) Susceptible dose-dependent" df$cols[df$cols == colours_SIR[3]] <- paste("(I)", plot_name_of_I(cols_sub$guideline)) - df$cols[df$cols == colours_SIR[4]] <- "(R) Resistant" + df$cols[df$cols == colours_SIR[4] & !is_wt_nwt] <- "(R) Resistant" + df$cols[df$cols == colours_SIR[4] & is_wt_nwt] <- "(NWT) Non-wildtype" df$cols <- factor(translate_into_language(df$cols, language = language), levels = translate_into_language( c( "(S) Susceptible", "(SDD) Susceptible dose-dependent", paste("(I)", plot_name_of_I(cols_sub$guideline)), - "(R) Resistant" + "(R) Resistant", + "(WT) Wildtype", + "(NWT) Non-wildtype" ), language = language ), @@ -733,7 +763,9 @@ autoplot.mic <- function(object, "(I) Susceptible, incr. exp." = colours_SIR[3], "(I) Intermediate" = colours_SIR[3], "(R) Resistant" = colours_SIR[4], - "(NI) Non-interpretable" = "grey30" + "(NI) Non-interpretable" = "grey30", + "(WT) Wildtype" = colours_SIR[1], + "(NWT) Non-wildtype" = colours_SIR[4] ) names(vals) <- translate_into_language(names(vals), language = language) p <- p + @@ -797,10 +829,15 @@ plot.disk <- function(x, meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3, 4)) language <- validate_language(language) meet_criteria(expand, allow_class = "logical", has_length = 1) + meet_criteria(include_PKPD, allow_class = "logical", has_length = 1) + meet_criteria(breakpoint_type, allow_class = "character", is_in = AMR::clinical_breakpoints$type, has_length = 1) main <- gsub(" +", " ", paste0(main, collapse = " ")) colours_SIR <- expand_SIR_colours(colours_SIR) + # wildtype/Non-wildtype + is_wt_nwt <- identical(breakpoint_type, "ECOFF") + x <- plotrange_as_table(x, expand = expand) cols_sub <- plot_colours_subtitle_guideline( x = x, @@ -832,10 +869,14 @@ plot.disk <- function(x, if (any(colours_SIR %in% cols_sub$cols)) { legend_txt <- character(0) legend_col <- character(0) - if (any(cols_sub$cols == colours_SIR[4] & cols_sub$count > 0)) { + if (!is_wt_nwt & any(cols_sub$cols == colours_SIR[4] & cols_sub$count > 0)) { legend_txt <- "(R) Resistant" legend_col <- colours_SIR[4] } + if (is_wt_nwt & any(cols_sub$cols == colours_SIR[4] & cols_sub$count > 0)) { + legend_txt <- "(NWT) Non-wildtype" + legend_col <- colours_SIR[4] + } if (any(cols_sub$cols == colours_SIR[3] & cols_sub$count > 0)) { legend_txt <- c(legend_txt, paste("(I)", plot_name_of_I(cols_sub$guideline))) legend_col <- c(legend_col, colours_SIR[3]) @@ -844,10 +885,14 @@ plot.disk <- function(x, legend_txt <- c(legend_txt, "(SDD) Susceptible dose-dependent") legend_col <- c(legend_col, colours_SIR[2]) } - if (any(cols_sub$cols == colours_SIR[1] & cols_sub$count > 0)) { + if (!is_wt_nwt & any(cols_sub$cols == colours_SIR[1] & cols_sub$count > 0)) { legend_txt <- c(legend_txt, "(S) Susceptible") legend_col <- c(legend_col, colours_SIR[1]) } + if (is_wt_nwt & any(cols_sub$cols == colours_SIR[1] & cols_sub$count > 0)) { + legend_txt <- c(legend_txt, "(WT) Wildtype") + legend_col <- c(legend_col, colours_SIR[1]) + } legend("top", x.intersp = 0.5, legend = translate_into_language(legend_txt, language = language), @@ -879,6 +924,8 @@ barplot.disk <- function(height, ), language = get_AMR_locale(), expand = TRUE, + include_PKPD = getOption("AMR_include_PKPD", TRUE), + breakpoint_type = getOption("AMR_breakpoint_type", "human"), ...) { meet_criteria(main, allow_class = "character", has_length = 1, allow_NULL = TRUE) meet_criteria(ylab, allow_class = "character", has_length = 1) @@ -889,6 +936,8 @@ barplot.disk <- function(height, meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3, 4)) language <- validate_language(language) meet_criteria(expand, allow_class = "logical", has_length = 1) + meet_criteria(include_PKPD, allow_class = "logical", has_length = 1) + meet_criteria(breakpoint_type, allow_class = "character", is_in = AMR::clinical_breakpoints$type, has_length = 1) main <- gsub(" +", " ", paste0(main, collapse = " ")) @@ -901,6 +950,10 @@ barplot.disk <- function(height, ab = ab, guideline = guideline, colours_SIR = colours_SIR, + language = language, + expand = expand, + include_PKPD = include_PKPD, + breakpoint_type = breakpoint_type, ... ) } @@ -947,6 +1000,9 @@ autoplot.disk <- function(object, colours_SIR <- expand_SIR_colours(colours_SIR) + # wildtype/Non-wildtype + is_wt_nwt <- identical(breakpoint_type, "ECOFF") + x <- plotrange_as_table(object, expand = expand) cols_sub <- plot_colours_subtitle_guideline( x = x, @@ -964,23 +1020,26 @@ autoplot.disk <- function(object, df <- as.data.frame(x, stringsAsFactors = TRUE) colnames(df) <- c("disk", "count") df$cols <- cols_sub$cols - df$cols[df$cols == colours_SIR[1]] <- "(S) Susceptible" + df$cols[df$cols == colours_SIR[1] & !is_wt_nwt] <- "(S) Susceptible" + df$cols[df$cols == colours_SIR[1] & is_wt_nwt] <- "(WT) Wildtype" df$cols[df$cols == colours_SIR[2]] <- "(SDD) Susceptible dose-dependent" df$cols[df$cols == colours_SIR[3]] <- paste("(I)", plot_name_of_I(cols_sub$guideline)) - df$cols[df$cols == colours_SIR[4]] <- "(R) Resistant" + df$cols[df$cols == colours_SIR[4] & !is_wt_nwt] <- "(R) Resistant" + df$cols[df$cols == colours_SIR[4] & is_wt_nwt] <- "(NWT) Non-wildtype" df$cols <- factor(translate_into_language(df$cols, language = language), levels = translate_into_language( c( "(S) Susceptible", paste("(I)", plot_name_of_I(cols_sub$guideline)), - "(R) Resistant" + "(R) Resistant", + "(WT) Wildtype", + "(NWT) Non-wildtype" ), language = language ), ordered = TRUE ) p <- ggplot2::ggplot(df) - if (any(colours_SIR %in% cols_sub$cols)) { vals <- c( "(S) Susceptible" = colours_SIR[1], @@ -988,7 +1047,9 @@ autoplot.disk <- function(object, "(I) Susceptible, incr. exp." = colours_SIR[3], "(I) Intermediate" = colours_SIR[3], "(R) Resistant" = colours_SIR[4], - "(NI) Non-interpretable" = "grey30" + "(NI) Non-interpretable" = "grey30", + "(WT) Wildtype" = colours_SIR[1], + "(NWT) Non-wildtype" = colours_SIR[4] ) names(vals) <- translate_into_language(names(vals), language = language) p <- p + @@ -1036,25 +1097,25 @@ plot.sir <- function(x, data <- as.data.frame(table(x), stringsAsFactors = FALSE) colnames(data) <- c("x", "n") data$s <- round((data$n / sum(data$n)) * 100, 1) + data <- data[which(data$n > 0), ] - if (!"S" %in% data$x) { - data <- rbind_AMR(data, data.frame(x = "S", n = 0, s = 0, stringsAsFactors = FALSE)) - } - if (!"SDD" %in% data$x) { - data <- rbind_AMR(data, data.frame(x = "SDD", n = 0, s = 0, stringsAsFactors = FALSE)) - } - if (!"I" %in% data$x) { - data <- rbind_AMR(data, data.frame(x = "I", n = 0, s = 0, stringsAsFactors = FALSE)) - } - if (!"R" %in% data$x) { - data <- rbind_AMR(data, data.frame(x = "R", n = 0, s = 0, stringsAsFactors = FALSE)) - } - if (!"NI" %in% data$x) { - data <- rbind_AMR(data, data.frame(x = "NI", n = 0, s = 0, stringsAsFactors = FALSE)) + if (!all(data$x %in% c("WT", "NWT"), na.rm = TRUE)) { + # # be sure to have at least S, I, and R + if (!"S" %in% data$x) { + data <- rbind_AMR(data, data.frame(x = "S", n = 0, s = 0, stringsAsFactors = FALSE)) + } + if (!"I" %in% data$x) { + data <- rbind_AMR(data, data.frame(x = "I", n = 0, s = 0, stringsAsFactors = FALSE)) + } + if (!"R" %in% data$x) { + data <- rbind_AMR(data, data.frame(x = "R", n = 0, s = 0, stringsAsFactors = FALSE)) + } + lvls <- VALID_SIR_LEVELS[VALID_SIR_LEVELS %in% c(data$x, c("S", "I", "R"))] + } else { + lvls <- c("WT", "NWT") } - data <- data[!(data$n == 0 & data$x %in% c("SDD", "I", "NI")), , drop = FALSE] - data$x <- factor(data$x, levels = intersect(unique(data$x), c("S", "SDD", "I", "R", "NI")), ordered = TRUE) + data$x <- factor(data$x, levels = lvls, ordered = TRUE) ymax <- pm_if_else(max(data$s) > 95, 105, 100) @@ -1069,7 +1130,7 @@ plot.sir <- function(x, axes = FALSE ) # x axis - axis(side = 1, at = 1:pm_n_distinct(data$x), labels = levels(data$x), lwd = 0) + axis(side = 1, at = seq_along(lvls), labels = lvls, lwd = 0) # y axis, 0-100% axis(side = 2, at = seq(0, 100, 5)) @@ -1112,9 +1173,14 @@ barplot.sir <- function(height, main <- gsub(" +", " ", paste0(main, collapse = " ")) x <- table(height) - # remove missing I, SDD, and N - colours_SIR <- colours_SIR[!(names(x) %in% c("SDD", "I", "NI") & x == 0)] - x <- x[!(names(x) %in% c("SDD", "I", "NI") & x == 0)] + if (all(height %in% c("WT", "NWT"), na.rm = TRUE)) { + colours_SIR <- colours_SIR[c(1, 4)] + x <- x[names(x) %in% c("WT", "NWT")] + } else { + # remove missing I, SDD, and N + colours_SIR <- colours_SIR[!(names(x) %in% c("SDD", "I", "NI") & x == 0)] + x <- x[!(names(x) %in% c("SDD", "I", "NI") & x == 0)] + } # plot it barplot(x, col = colours_SIR, @@ -1160,6 +1226,11 @@ autoplot.sir <- function(object, df <- as.data.frame(table(object), stringsAsFactors = TRUE) colnames(df) <- c("x", "n") df <- df[!(df$n == 0 & df$x %in% c("SDD", "I", "NI")), , drop = FALSE] + if (all(object %in% c("WT", "NWT"), na.rm = TRUE)) { + df <- df[which(df$x %in% c("WT", "NWT")), ] + } else { + df <- df[which(!df$x %in% c("WT", "NWT", "NS")), ] + } ggplot2::ggplot(df) + ggplot2::geom_col(ggplot2::aes(x = x, y = n, fill = x)) + # limits = force is needed because of a ggplot2 >= 3.3.4 bug (#4511) @@ -1169,7 +1240,9 @@ autoplot.sir <- function(object, "SDD" = colours_SIR[2], "I" = colours_SIR[3], "R" = colours_SIR[4], - "NI" = "grey30" + "NI" = "grey30", + "WT" = colours_SIR[1], + "NWT" = colours_SIR[4] ), limits = force ) + @@ -1298,6 +1371,9 @@ plot_colours_subtitle_guideline <- function(x, mo, ab, guideline, colours_SIR, f cols[sir == "I"] <- colours_SIR[3] cols[sir == "R"] <- colours_SIR[4] cols[sir == "NI"] <- "grey30" + cols[sir == "WT"] <- colours_SIR[1] + cols[sir == "NWT"] <- colours_SIR[4] + cols[sir == "NS"] <- colours_SIR[4] sub <- bquote(.(abname) ~ "-" ~ italic(.(moname)) ~ .(guideline_txt)) } else { cols <- "#BEBEBE" diff --git a/R/proportion.R b/R/proportion.R index ed811e297..40c37a24f 100644 --- a/R/proportion.R +++ b/R/proportion.R @@ -231,7 +231,7 @@ resistance <- function(..., only_all_tested = FALSE) { tryCatch( sir_calc(..., - ab_result = "R", + ab_result = c("R", "NWT", "NS"), minimum = minimum, as_percent = as_percent, only_all_tested = only_all_tested, @@ -249,7 +249,7 @@ susceptibility <- function(..., only_all_tested = FALSE) { tryCatch( sir_calc(..., - ab_result = c("S", "SDD", "I"), + ab_result = c("S", "SDD", "I", "WT"), minimum = minimum, as_percent = as_percent, only_all_tested = only_all_tested, @@ -269,7 +269,7 @@ sir_confidence_interval <- function(..., confidence_level = 0.95, side = "both", collapse = FALSE) { - meet_criteria(ab_result, allow_class = c("character", "sir"), has_length = c(1:5), is_in = c("S", "SDD", "I", "R", "NI")) + meet_criteria(ab_result, allow_class = c("character", "sir"), has_length = seq_along(VALID_SIR_LEVELS), is_in = VALID_SIR_LEVELS) meet_criteria(minimum, allow_class = c("numeric", "integer"), has_length = 1, is_positive_or_zero = TRUE, is_finite = TRUE) meet_criteria(as_percent, allow_class = "logical", has_length = 1) meet_criteria(only_all_tested, allow_class = "logical", has_length = 1) @@ -287,7 +287,7 @@ sir_confidence_interval <- function(..., ) n <- tryCatch( sir_calc(..., - ab_result = c("S", "SDD", "I", "R", "NI"), + ab_result = VALID_SIR_LEVELS, only_all_tested = only_all_tested, only_count = TRUE ), @@ -341,7 +341,7 @@ proportion_R <- function(..., only_all_tested = FALSE) { tryCatch( sir_calc(..., - ab_result = "R", + ab_result = c("R", "NWT", "NS"), minimum = minimum, as_percent = as_percent, only_all_tested = only_all_tested, @@ -359,7 +359,7 @@ proportion_IR <- function(..., only_all_tested = FALSE) { tryCatch( sir_calc(..., - ab_result = c("I", "SDD", "R"), + ab_result = c("I", "SDD", "R", "NWT", "NS"), minimum = minimum, as_percent = as_percent, only_all_tested = only_all_tested, @@ -395,7 +395,7 @@ proportion_SI <- function(..., only_all_tested = FALSE) { tryCatch( sir_calc(..., - ab_result = c("S", "I", "SDD"), + ab_result = c("S", "I", "SDD", "WT"), minimum = minimum, as_percent = as_percent, only_all_tested = only_all_tested, @@ -413,7 +413,7 @@ proportion_S <- function(..., only_all_tested = FALSE) { tryCatch( sir_calc(..., - ab_result = "S", + ab_result = c("S", "WT"), minimum = minimum, as_percent = as_percent, only_all_tested = only_all_tested, diff --git a/R/sir.R b/R/sir.R index 1235b3cb8..8641794ab 100755 --- a/R/sir.R +++ b/R/sir.R @@ -27,6 +27,8 @@ # how to conduct AMR data analysis: https://amr-for-r.org # # ==================================================================== # +VALID_SIR_LEVELS <- c("S", "SDD", "I", "R", "NI", "WT", "NWT", "NS") + #' Interpret MIC and Disk Diffusion as SIR, or Clean Existing SIR Data #' #' @description Clean up existing SIR values, or interpret minimum inhibitory concentration (MIC) values and disk diffusion diameters according to EUCAST or CLSI. [as.sir()] transforms the input to a new class [`sir`], which is an ordered [factor] containing the levels `S`, `SDD`, `I`, `R`, `NI`. @@ -58,6 +60,7 @@ #' * `>=` and `>` always return `"R"`, regardless of the breakpoint. #' #' The default `"conservative"` setting ensures cautious handling of uncertain values while preserving interpretability. This option can also be set with the package option [`AMR_capped_mic_handling`][AMR-options]. +#' @param as_wt_nwt A [logical] to return `"WT"`/`"NWT"` instead of `"S"`/`"R"`. Defaults to `TRUE` when using ECOFFs, i.e., when `breakpoint_type` is set to `"ECOFF"`. #' @param add_intrinsic_resistance *(only useful when using a EUCAST guideline)* a [logical] to indicate whether intrinsic antibiotic resistance must also be considered for applicable bug-drug combinations, meaning that e.g. ampicillin will always return "R" in *Klebsiella* species. Determination is based on the [intrinsic_resistant] data set, that itself is based on `r format_eucast_version_nr(3.3)`. #' @param substitute_missing_r_breakpoint A [logical] to indicate that a missing clinical breakpoints for R (resistant) must be substituted with R - the default is `FALSE`. Some (especially CLSI) breakpoints only have a breakpoint for S, meaning that the outcome can only be `"S"` or `NA`. Setting this to `TRUE` will convert the `NA`s in these cases to `"R"`. Can also be set with the package option [`AMR_substitute_missing_r_breakpoint`][AMR-options]. #' @param include_screening A [logical] to indicate that clinical breakpoints for screening are allowed - the default is `FALSE`. Can also be set with the package option [`AMR_include_screening`][AMR-options]. @@ -398,7 +401,7 @@ as_sir_structure <- function(x, ref_breakpoints = NULL) { structure( factor(as.character(unlist(unname(x))), - levels = c("S", "SDD", "I", "R", "NI"), + levels = VALID_SIR_LEVELS, ordered = TRUE ), # TODO for #170 @@ -454,9 +457,9 @@ is_sir_eligible <- function(x, threshold = 0.05) { %in% class(x))) { # no transformation needed return(FALSE) - } else if (!all(is.na(x)) && all(x %in% c("S", "SDD", "I", "R", "NI", NA, "s", "sdd", "i", "r", "ni"))) { + } else if (!all(is.na(x)) && all(x %in% c(VALID_SIR_LEVELS, tolower(VALID_SIR_LEVELS), NA))) { return(TRUE) - } else if (!all(is.na(x)) && !any(c("S", "SDD", "I", "R", "NI") %in% gsub("([SIR])\\1+", "\\1", gsub("[^A-Z]", "", toupper(unique(x[1:10000])), perl = TRUE), perl = TRUE), na.rm = TRUE)) { + } else if (!all(is.na(x)) && !any(VALID_SIR_LEVELS %in% gsub("([SIR])\\1+", "\\1", gsub("[^A-Z]", "", toupper(unique(x[1:10000])), perl = TRUE), perl = TRUE), na.rm = TRUE)) { return(FALSE) } else { x <- x[!is.na(x) & !is.null(x) & !x %in% c("", "-", "NULL")] @@ -486,7 +489,7 @@ is_sir_eligible <- function(x, threshold = 0.05) { #' @rdname as.sir #' @export -#' @param S,I,R,NI,SDD A case-independent [regular expression][base::regex] to translate input to this result. This regular expression will be run *after* all non-letters and whitespaces are removed from the input. +#' @param S,I,R,NI,SDD,WT,NWT,NS A case-independent [regular expression][base::regex] to translate input to this result. This regular expression will be run *after* all non-letters and whitespaces are removed from the input. #' @param info A [logical] to print information about the process, defaults to `TRUE` only in [interactive sessions][base::interactive()]. # extra param: warn (logical, to never throw a warning) as.sir.default <- function(x, @@ -495,13 +498,19 @@ as.sir.default <- function(x, R = "^(R|3)+$", NI = "^(N|NI|V|4)+$", SDD = "^(SDD|D|H|5)+$", + WT = "^(WT|6)+$", + NWT = "^(NWT|7)+$", + NS = "^(NS|8)+$", info = interactive(), ...) { - meet_criteria(S, allow_class = c("character", "numeric", "integer"), has_length = 1) - meet_criteria(I, allow_class = c("character", "numeric", "integer"), has_length = 1) - meet_criteria(R, allow_class = c("character", "numeric", "integer"), has_length = 1) - meet_criteria(NI, allow_class = c("character", "numeric", "integer"), has_length = 1) - meet_criteria(SDD, allow_class = c("character", "numeric", "integer"), has_length = 1) + meet_criteria(S, allow_class = c("character", "numeric", "integer", "factor"), has_length = 1) + meet_criteria(I, allow_class = c("character", "numeric", "integer", "factor"), has_length = 1) + meet_criteria(R, allow_class = c("character", "numeric", "integer", "factor"), has_length = 1) + meet_criteria(NI, allow_class = c("character", "numeric", "integer", "factor"), has_length = 1) + meet_criteria(SDD, allow_class = c("character", "numeric", "integer", "factor"), has_length = 1) + meet_criteria(WT, allow_class = c("character", "numeric", "integer", "factor"), has_length = 1) + meet_criteria(NWT, allow_class = c("character", "numeric", "integer", "factor"), has_length = 1) + meet_criteria(NS, allow_class = c("character", "numeric", "integer", "factor"), has_length = 1) meet_criteria(info, allow_class = "logical", has_length = 1) if (inherits(x, "sir")) { return(as_sir_structure(x)) @@ -516,7 +525,7 @@ as.sir.default <- function(x, x[x.bak == 1] <- names(lbls[lbls == 1]) x[x.bak == 2] <- names(lbls[lbls == 2]) x[x.bak == 3] <- names(lbls[lbls == 3]) - } else if (!all(is.na(x)) && !identical(levels(x), c("S", "SDD", "I", "R", "NI")) && !all(x %in% c("S", "SDD", "I", "R", "NI", NA))) { + } else if (!all(is.na(x)) && !identical(levels(x), VALID_SIR_LEVELS) && !all(x %in% c(VALID_SIR_LEVELS, NA))) { if (all(x %unlike% "(S|I|R)", na.rm = TRUE) && !all(x %in% c(1, 2, 3, 4, 5), na.rm = TRUE)) { # check if they are actually MICs or disks if (all_valid_mics(x)) { @@ -557,7 +566,7 @@ as.sir.default <- function(x, x[x %like% "not|non"] <- "NI" x[x %like% "([^a-z]|^)int(er(mediate)?)?|incr.*exp"] <- "I" x[x %like% "dose"] <- "SDD" - mtch <- grepl(paste0("(", S, "|", I, "|", R, "|", NI, "|", SDD, "|[A-Z]+)"), x, perl = TRUE) + mtch <- grepl(paste0("(", S, "|", I, "|", R, "|", NI, "|", SDD, "|", WT, "|", NWT, "|", NS, "|[A-Z]+)"), x, perl = TRUE) x[!mtch] <- "" # apply regexes set by user x[x %like% S] <- "S" @@ -565,22 +574,31 @@ as.sir.default <- function(x, x[x %like% R] <- "R" x[x %like% NI] <- "NI" x[x %like% SDD] <- "SDD" - x[!x %in% c("S", "SDD", "I", "R", "NI")] <- NA_character_ + x[x %like% WT] <- "WT" + x[x %like% NWT] <- "NWT" + x[x %like% NS] <- "NS" + x[!x %in% VALID_SIR_LEVELS] <- NA_character_ na_after <- length(x[is.na(x) | x == ""]) if (!isFALSE(list(...)$warn)) { # so as.sir(..., warn = FALSE) will never throw a warning - if (all(x.bak %in% c(1, 2, 3, 4, 5), na.rm = TRUE) && message_not_thrown_before("as.sir", "numeric_interpretation", x, x.bak)) { + if (all(x.bak %in% c(1:8), na.rm = TRUE) && message_not_thrown_before("as.sir", "numeric_interpretation", x, x.bak)) { out1 <- unique(x[x.bak == 1]) out2 <- unique(x[x.bak == 2]) out3 <- unique(x[x.bak == 3]) out4 <- unique(x[x.bak == 4]) out5 <- unique(x[x.bak == 5]) + out6 <- unique(x[x.bak == 6]) + out7 <- unique(x[x.bak == 7]) + out8 <- unique(x[x.bak == 8]) out <- c( ifelse(length(out1) > 0, paste0("1 as \"", out1, "\""), NA_character_), ifelse(length(out2) > 0, paste0("2 as \"", out2, "\""), NA_character_), ifelse(length(out3) > 0, paste0("3 as \"", out3, "\""), NA_character_), ifelse(length(out4) > 0, paste0("4 as \"", out4, "\""), NA_character_), - ifelse(length(out5) > 0, paste0("5 as \"", out5, "\""), NA_character_) + ifelse(length(out5) > 0, paste0("5 as \"", out5, "\""), NA_character_), + ifelse(length(out6) > 0, paste0("6 as \"", out6, "\""), NA_character_), + ifelse(length(out7) > 0, paste0("7 as \"", out7, "\""), NA_character_), + ifelse(length(out8) > 0, paste0("8 as \"", out8, "\""), NA_character_) ) message_("in `as.sir()`: Interpreting input value ", vector_and(out[!is.na(out)], quotes = FALSE, sort = FALSE)) } @@ -615,6 +633,7 @@ as.sir.mic <- function(x, guideline = getOption("AMR_guideline", "EUCAST"), uti = NULL, capped_mic_handling = getOption("AMR_capped_mic_handling", "standard"), + as_wt_nwt = identical(breakpoint_type, "ECOFF"), add_intrinsic_resistance = FALSE, reference_data = AMR::clinical_breakpoints, substitute_missing_r_breakpoint = getOption("AMR_substitute_missing_r_breakpoint", FALSE), @@ -636,6 +655,7 @@ as.sir.mic <- function(x, guideline = guideline, uti = uti, capped_mic_handling = capped_mic_handling, + as_wt_nwt = as_wt_nwt, add_intrinsic_resistance = add_intrinsic_resistance, reference_data = reference_data, substitute_missing_r_breakpoint = substitute_missing_r_breakpoint, @@ -658,6 +678,7 @@ as.sir.disk <- function(x, ab = deparse(substitute(x)), guideline = getOption("AMR_guideline", "EUCAST"), uti = NULL, + as_wt_nwt = identical(breakpoint_type, "ECOFF"), add_intrinsic_resistance = FALSE, reference_data = AMR::clinical_breakpoints, substitute_missing_r_breakpoint = getOption("AMR_substitute_missing_r_breakpoint", FALSE), @@ -678,6 +699,7 @@ as.sir.disk <- function(x, guideline = guideline, uti = uti, capped_mic_handling = "standard", # will be ignored for non-MIC anyway + as_wt_nwt = as_wt_nwt, add_intrinsic_resistance = add_intrinsic_resistance, reference_data = reference_data, substitute_missing_r_breakpoint = substitute_missing_r_breakpoint, @@ -702,6 +724,7 @@ as.sir.data.frame <- function(x, guideline = getOption("AMR_guideline", "EUCAST"), uti = NULL, capped_mic_handling = getOption("AMR_capped_mic_handling", "standard"), + as_wt_nwt = identical(breakpoint_type, "ECOFF"), add_intrinsic_resistance = FALSE, reference_data = AMR::clinical_breakpoints, substitute_missing_r_breakpoint = getOption("AMR_substitute_missing_r_breakpoint", FALSE), @@ -720,6 +743,7 @@ as.sir.data.frame <- function(x, meet_criteria(guideline, allow_class = "character") meet_criteria(uti, allow_class = c("logical", "character"), allow_NULL = TRUE, allow_NA = TRUE) meet_criteria(capped_mic_handling, allow_class = "character", has_length = 1, is_in = c("none", "conservative", "standard", "lenient")) + meet_criteria(as_wt_nwt, allow_class = "logical", has_length = 1) meet_criteria(add_intrinsic_resistance, allow_class = "logical", has_length = 1) meet_criteria(reference_data, allow_class = "data.frame") meet_criteria(substitute_missing_r_breakpoint, allow_class = "logical", has_length = 1) @@ -899,6 +923,7 @@ as.sir.data.frame <- function(x, guideline = guideline, uti = uti, capped_mic_handling = capped_mic_handling, + as_wt_nwt = as_wt_nwt, add_intrinsic_resistance = add_intrinsic_resistance, reference_data = reference_data, substitute_missing_r_breakpoint = substitute_missing_r_breakpoint, @@ -926,6 +951,7 @@ as.sir.data.frame <- function(x, ab = ab_col, guideline = guideline, uti = uti, + as_wt_nwt = as_wt_nwt, add_intrinsic_resistance = add_intrinsic_resistance, reference_data = reference_data, substitute_missing_r_breakpoint = substitute_missing_r_breakpoint, @@ -988,7 +1014,7 @@ as.sir.data.frame <- function(x, on.exit(parallel::stopCluster(cl), add = TRUE) parallel::clusterExport(cl, varlist = c( "x", "x.bak", "x_mo", "ab_cols", "types", - "capped_mic_handling", "add_intrinsic_resistance", + "capped_mic_handling", "as_wt_nwt", "add_intrinsic_resistance", "reference_data", "substitute_missing_r_breakpoint", "include_screening", "include_PKPD", "breakpoint_type", "guideline", "host", "uti", "info", "verbose", "col_mo", "AMR_env", "conserve_capped_values", @@ -1101,6 +1127,7 @@ as_sir_method <- function(method_short, guideline, uti, capped_mic_handling, + as_wt_nwt, add_intrinsic_resistance, reference_data, substitute_missing_r_breakpoint, @@ -1123,6 +1150,7 @@ as_sir_method <- function(method_short, meet_criteria(guideline, allow_class = "character", has_length = c(1, length(x)), .call_depth = -2) meet_criteria(uti, allow_class = c("logical", "character"), has_length = c(1, length(x)), allow_NULL = TRUE, allow_NA = TRUE, .call_depth = -2) meet_criteria(capped_mic_handling, allow_class = "character", has_length = 1, is_in = c("none", "conservative", "standard", "lenient"), .call_depth = -2) + meet_criteria(as_wt_nwt, allow_class = "logical", has_length = 1, .call_depth = -2) meet_criteria(add_intrinsic_resistance, allow_class = "logical", has_length = 1, .call_depth = -2) meet_criteria(reference_data, allow_class = "data.frame", .call_depth = -2) meet_criteria(substitute_missing_r_breakpoint, allow_class = "logical", has_length = 1, .call_depth = -2) @@ -1409,8 +1437,7 @@ as_sir_method <- function(method_short, if (is.na(mic_val)) { return(NA_real_) } else { - # find the smallest log2 level that is >= mic_val - log2_val <- log2_levels[which(log2_levels >= as.double(mic_val))][1] + log2_val <- COMMON_MIC_VALUES[which(COMMON_MIC_VALUES >= as.double(mic_val))][1] if (!is.na(log2_val) && as.double(mic_val) != log2_val) { if (message_not_thrown_before("as.sir", "CLSI", "MICupscaling")) { warning_("Some MICs were converted to the nearest higher log2 level, following the CLSI interpretation guideline.") @@ -1863,6 +1890,12 @@ as_sir_method <- function(method_short, ) } + # rewrite S/R to WT/NWT if needed + if (isTRUE(as_wt_nwt)) { + new_sir[new_sir == "S"] <- "WT" + new_sir[new_sir == "R"] <- "NWT" + } + # write to verbose output notes_current <- gsub("\n\n", "\n", trimws2(notes_current), fixed = TRUE) notes_current[notes_current == ""] <- NA_character_ @@ -1977,6 +2010,9 @@ pillar_shaft.sir <- function(x, ...) { out[x == "I"] <- font_orange_bg(" I ") out[x == "R"] <- font_rose_bg(" R ") out[x == "NI"] <- font_grey_bg(font_black(" NI ")) + out[x == "WT"] <- font_green_bg(font_black(" WT ")) + out[x == "NWT"] <- font_rose_bg(font_black(" NWT ")) + out[x == "NS"] <- font_rose_bg(font_black(" NS ")) } create_pillar_column(out, align = "left", width = 5) } @@ -2073,9 +2109,9 @@ print.sir <- function(x, ...) { #' @export as.double.sir <- function(x, ...) { dbls <- rep(NA_real_, length(x)) - dbls[x == "S"] <- 1 - dbls[x %in% c("SDD", "I")] <- 2 - dbls[x == "R"] <- 3 + dbls[x %in% c("S", "WT")] <- 1 + dbls[x %in% c("I", "SDD")] <- 2 + dbls[x %in% c("R", "NWT", "NS")] <- 3 dbls } diff --git a/R/sir_calc.R b/R/sir_calc.R index 511fa682c..b7a338001 100755 --- a/R/sir_calc.R +++ b/R/sir_calc.R @@ -41,7 +41,7 @@ sir_calc <- function(..., as_percent = FALSE, only_all_tested = FALSE, only_count = FALSE) { - meet_criteria(ab_result, allow_class = c("character", "numeric", "integer"), has_length = c(1:5)) + meet_criteria(ab_result, allow_class = c("character", "sir"), has_length = seq_along(VALID_SIR_LEVELS), is_in = VALID_SIR_LEVELS) meet_criteria(minimum, allow_class = c("numeric", "integer"), has_length = 1, is_positive_or_zero = TRUE, is_finite = TRUE) meet_criteria(as_percent, allow_class = "logical", has_length = 1) meet_criteria(only_all_tested, allow_class = "logical", has_length = 1) @@ -117,6 +117,8 @@ sir_calc <- function(..., print_warning <- FALSE ab_result <- as.sir(ab_result) + denominator_vals <- levels(ab_result) + denominator_vals <- denominator_vals[denominator_vals != "NI"] if (is.data.frame(x)) { sir_integrity_check <- character(0) @@ -148,7 +150,7 @@ sir_calc <- function(..., denominator <- sum(vapply(FUN.VALUE = logical(1), x_transposed, function(y) !(anyNA(y)))) } else { # may contain NAs in any column - other_values <- setdiff(c(NA, levels(ab_result)), ab_result) + other_values <- setdiff(c(NA, denominator_vals), ab_result) if ("SDD" %in% ab_result && "SDD" %in% unlist(x_transposed) && message_not_thrown_before("sir_calc", only_count, ab_result, entire_session = TRUE)) { message_("Note that `", ifelse(only_count, "count", "proportion"), "_", ifelse("S" %in% ab_result, "S", ""), "I", ifelse("R" %in% ab_result, "R", ""), "()` will also include dose-dependent susceptibility, 'SDD'. This note will be shown once for this session.", as_note = FALSE) } @@ -165,7 +167,7 @@ sir_calc <- function(..., message_("Note that `", ifelse(only_count, "count", "proportion"), "_", ifelse("S" %in% ab_result, "S", ""), "I", ifelse("R" %in% ab_result, "R", ""), "()` will also include dose-dependent susceptibility, 'SDD'. This note will be shown once for this session.", as_note = FALSE) } numerator <- sum(x %in% ab_result, na.rm = TRUE) - denominator <- sum(x %in% levels(ab_result), na.rm = TRUE) + denominator <- sum(x %in% denominator_vals, na.rm = TRUE) } if (print_warning == TRUE) { @@ -259,13 +261,13 @@ sir_calc_df <- function(type, # "proportion", "count" or "both" for (i in seq_len(ncol(data))) { # transform SIR columns if (is.sir(data[, i, drop = TRUE])) { - data[, i] <- as.character(data[, i, drop = TRUE]) + data[, i] <- as.character(as.sir(data[, i, drop = TRUE])) + data[which(data[, i, drop = TRUE] %in% c("S", "SDD", "WT")), i] <- "S" + data[which(data[, i, drop = TRUE] %in% c("R", "NWT", "NS")), i] <- "R" if (isTRUE(combine_SI)) { - if ("SDD" %in% data[, i, drop = TRUE] && message_not_thrown_before("sir_calc_df", combine_SI, entire_session = TRUE)) { - message_("Note that `sir_calc_df()` will also count dose-dependent susceptibility, 'SDD', as 'SI' when `combine_SI = TRUE`. This note will be shown once for this session.", as_note = FALSE) - } - data[, i] <- gsub("(I|S|SDD)", "SI", data[, i, drop = TRUE]) + data[which(data[, i, drop = TRUE] %in% c("I", "S")), i] <- "SI" } + data[which(!data[, i, drop = TRUE] %in% c("S", "SI", "I", "R")), i] <- NA_character_ } } diff --git a/R/sysdata.rda b/R/sysdata.rda index f77bac3110bba182f0035884b2102db586fb1dca..17608774880453820eb614fa7a3539139a37b750 100755 GIT binary patch delta 110630 zcmV(xK5p9hn=Kl!+MOF1OPRp9 zaWcrlrc9Smx#3?V&P_vf&7D#jTs!tiq5&9)*P2Hy&$TSE4kgXh|K$@;dRG>##dz8E=KCFy^h?b(bo zD)VZM`R#!*!Vvp%r$Su_f?1f(HYY^MaQ;g{afU=r$}>2xs|^tz9-U(PV@YXM{VDQo z#ID@1=h;ut^B4-R_1V?(D@M#xTFHPU_X+=+>XiYrjcWD)?L4hD^Gc;wgl|QFONCHg zcWTJW85C@DoWq<$qJ(D8rbas$tpc1L|Z`Uwj`h`ZpOkgHP%lcln9icy;=M%>cK z5N?o_!eh#pyClqiqzzss5UsE->+UEPsQYNp_D zQSIm` z=r;JNPpzlIKc`iH{3_JdK}lle8Lk9=5DNj@D2d!(obvKwDfq?pM1wE3sY;iWb2-)B~$seyUJ4&t4X2ki!w;7jCioNYYetZtf8};{-_=^$Gie)Ulrwp{_ygRrEq_ z%M#Fkc>%_oaW5m0j8{dA!@EJc1^$*+Wz+d zPdd3^k{8Fd#YQjxdozp&9H7eCtC#6Y4v%JPZ{X17%SXpQ`H)7v@4@hGwJCN;KDZJg zazROIY*2!*UK{No;ldJJ4hT4dWMSjkZY$Qo04z4p((5+pJ$Ab%ZlIO2Y6t@QnqDd@o6#Ii=C&R+KdJhYr>YI-&f@ zYz;cg)ex;RD0z)uq3m3Lfe#AJx)vsJXa!GxKK_>81Le!omB9&$!0J}~pw*z*b?z!o zfbtg?z58rj`8}<$4>g|bUc_4{Z{flFRc@q#X0Lw|6s|;xpdUBaT9Z&;67fnjb=JBm zZqtYKC2ws^TI_){RPKH+9XByslc3}10Cp}ZR;@UAI$XcXMqN<GrctEH6=ZZ$X{?CEmN zmUXEz816peTn3>y{bBhrh?~uRx|*Z>8sj8Tv+f`~ewzNIiJVK0cL@%VhJX4GFS-uu zQPO;NEse-=0R!C_e?_dWwzmJbCvf|Vq2_<=K*uq?kOKN!aGw!UYnl_fsw9eu2G}Sc z_)bnwIDl#Y40oYbaZaLO4Rv58(WFcd%JlL}Dh&#H)bPK`?Tw{~{1Q@F_);9)y6 zc*dgcq%r!o{M3S>g0@I>oJ;+0+j76I4md9>yISMkjIY1&$9phGT^xfewKy1(@8EcW zAeN7Qz<5EQBlu;VN=6J$z3eut8O9O2CLLg-PNroba&5C3qSqPcdxJSy|^@3zT4%_}H>6f%s5??MIGd5!|4_?yY|E z-0i#y+RUpTp-&-zCRHB8i&%9@8GG4$1}{bYY&L{vq%grx0KcOmPaN_M$>_XD}_!$NZoTsQ{pvTKaW zrOMifdT!u4MDulVljYK{tJrAbYUZk~IK}H;`wsq9N7XDEs-4E|W|BEMx#(Q}=3Sa| zo#Dp-uyLJ$#m<#0kR#c6cy}jk2uOPwvM>XDtL^w3^vUD07)ydohiZTN;L2a;tf6OO z0RpnRe7L62D|q?bLsqL?Q~XN)ka&dEpf&vmKdzV>@{r`y(7@q*+HN|LG`R}0FkwWh zrP-fjQ)ucG7c}=yP=z1I_K{2VkAU>yU1tYyn3?k?!j+qnstfHb9rzG@SywI>l|pr` z-quwLav;>#X&rS;L5P1Z|3yuRdFUXF;V4vBzaCW4vFh=kGZMBIDwHGE4HhyhL_Ci- zvlB*h+yn@1u?+GgR@FAAhS@%wywQrnJ99v5V#qRnl7G`82s(+D+iXFtBc;}%81cfB zKk`t#Aw+ms0Vf4?e1_JHIffVDV>Mo%!d0TS2SD_?K}dW} z%y7?V9IJH%zl;Dc;P|c=vGd>zUqIinZP=6qXsXGI%(ELCgh%-6Owg0f<+~h|id2mv(>FX`syQ&k9y+j3N{$B~6d}s^$)vvV5VzrAzBt#8*zm6 zwONWJQkLN`v$1T*ReB9J3{F&qSRaT%uO+>ZAxmyHI{$}2Rz%$y=eAvkP!hO3 zR99(9$hP0vXs<&**!+EPk@Io3j}U8B6D`{~U}AL&KjR^(!4w`?D7%P7&tD zRK0(7Nri{=&ui9=n-0M8xw33V+I_+yVySyzTw%tgIK=9PQ+EJDnTf~tPKfe!i9^TS zyiOFoJ5Ca6skiNw=IG~p$^Z`XuzEF=a1T30GA0r z!nI~zUzFvl5=(LAci;^&DSXVS9|SVr-5h_WPg4(gAc){Xxb`s`&XK%|hxTgAEoT?9 zQ@T%xuo@M*JN;~6(hZ#Ab-jrYN@X(A>MYg8lsOkBOz~94T`G<%%LmlwIfvr0P!@ku zQo=H}%2rR%Mf^9lub7uKV-g0jp$1V7ni{FLjM)h8g&oDGVMkIDryy4Wvu{#|Dl(Ae z68$vRD%|z5%5+z=^vGMhg^iS6I#ak3k?g2s_vXP|g0#FJ;p?(=CryqF8HgY=SA@Vw1{`TP|>AFExrxoaRdeU-!BAy73%kOmWxvuv6WqC*eT-!6T;p)p{ zsC#EcH!fLAqk!?#(q^0Fx(870@GX$OFCEzERx9!RH@Jqt+hmahuDKKT$l-fW3o-UG zyWInT>m(CmS&kA<4_hFT<1nzn3*if9C9jZjvE0wT>hBHy>$FctjB9_E38@l*ZzR24@4Dn`PKeu;mrfyr(5QSO)#Pw?)f%1tmBTp+b+S zo+)X@Tg7kP+ten3yM)n6lE$Y+Dup{03y^ z06Gt=RcyLkh7q0-j-`L2?sg7M1~As|X@H^2Fqy!)CPTpVSa{i0!o2~S#eIkAe~S5e zQJ~z>+oldca)JAuhFlE1X0G4s^`y)~4j`02Ibe0%-D!J(U-N!}rU|i4aA3_6sYvEL zu*kPfu>94JtB)@cysEh|Sr>~$11eK0D~_>z#c~<&pAn6 z{YLQDkb13H?#+no9A-xM85`y_(8wpKZu0J817&vt=IRgJhSPQW+Vv4M%5%1c@^+h5I(=4uaXmU`B;G#-))yNe zv=|4AZIzPs)hNS{ggHgXhay4|k|JM_VwMYZSiQ8!af5%ykO55+4B75&{i_tyav}x^ z7{{8`E2(AqXber61(4YKv}?NF2m@b<+t%s#v>Jq%!p&>_fx>VDCOzb*yZj9kBs#0s z0@Rl7Zh+sTrHiOaWU7a>2w))Fgb`gnB0hRlwtcT_nLrmoOVl&WS|Q}|o5c6LY(bll zttG^JLq&gv^ZGj~g!j4##mmAf({|X_#(w#o8L75lh$n;DYQcn{^}(pvg01nWU8+xH z)rzT^OrHDL*8Qe*+mbFf;PE-;yp)#FW%G3q$gqBH;`Jps64Wd@_hei_09UCLAUUp* z{uiFMz(UOsU{K%s-0nqy;Iqu?vsiFFfW#)`JokS^I+RM7UZbf+bd@_#k{JJ2BXRa> z4IC}AmVD{G$_;{CqMICelppd}{nF#IAssug*98B@#YmxaNtCpc+&o*yAn`KHL}&S` z^pyXT)3$;~)-~e%a5{w{zV*tdJUhS+b7G%Cink|RB#*6xT06hfWdX-=n*UF~SR=em zZpD8E%ko>?-g>~DoIEm1`P9ZsWoEIE)Kz`IOylM(J#?NP$m|&{nOYz4&hJpRnYZ{SSiHtPtGCA&O4xLUj zlTs)zFpWTD1LeAjmuZh9?0{N7Df}izbgqBOah^{gc5DoBH{}LerDvT{>PVbdqy z>A2wU4Uzy%&Ix^HC?%pL?ISHmx+i0xu#_Lj@u}Gwg<#^E-4n49l}L_h3EM~-TwiO| zukQ5=g$0I{eut|(27cgSR8ce2m?3qq8n(k4Z$b6D7!>^8vJH^E9v4L#=1+UM)J6$d zPN&CawZkO?#Fi|#N$TaM>w}|Fuh@U!C8PE~h^1ws06hs{II>01LNg5;;EUGF#jvPZ zA@3mp7K|nU+$(fQU4KT%f-SxDI^nJYxy!`Nerhr*UCu~6{#aMw>+iLt-k`YA5~B0& zh!~q0&O239p>jy2o~3Uyw<%(TYId0kq+_pd-o z?tm_kc^7~9hAknqpdFs(ZpnW(pnm6kK@(kp;a4Q#@_8%xu1Kbb$PxWxxSxP~mmzPr zZSz`Utdsjaa^kC|MRPnY{JQ^FmG-H3zh5(M0iCwLz;b*!b^b3&wrA zC=|u&N1Cyx=!l$^{yN<)m;t5g5D8QPiunWM^64C<1ewN6WaC!^d;U|0sKQQx4-df`M4^Li+T9oY&d_&gMR7N$ve|r3hX{iJ8T*_^^S^1)}vfr@d9!ivxKZ#Ek+Bo zHfu9>RT&T+@W`*$30!N|yIcOZY|i|3Ijy|rY9AnUvQ zLOtxlncn(!kLQz}7+U*$@^Zhn)tnz?S?0NIX-^IjCZ?DC2oeHw{jnzN;Ay zn_j5-YOMBHb^6opH<@tm0F}F`@yiA$nm+RsB1k%qWnOkKC@K?#Wp9pQ=>WwOZk|Rg z!?Q*}nz*k_`%%>xhj@Xlq41MkEq^59HE)uMQIiTE6ChnU{|$TU!w0J%*ojpI>$Ycy zIRhX9dSQR8SSHPuJ!XZ|3|9G>WC*_ZmdhPL7&U=*^{=kUQ;tdyGm=%{XSxX4!9mHq zWg`kav1T6?3tKbrwYG^C*E|fr)98FFuj2-8y1xtAK4(z(PgB~5%@cofD8)mSZJB=lmsHDByat#%QLk#p zS)_eoh(%v5gez!6o~b0Sb3GP97Ko@CYs^0Zaih`)@*Ii~d~4iNhQO%(kO7l{1W|AR z_1wjN8ZbC$6eLd;+qJPa@kwVT&46hmG0uZ4b-U&C5P>VS z#kPO?7em9(#L9y#YA#`}cOO$W((ziFkk6 z!mKhuHE>)rni>&&l$Vc#2IDC0tFlY`6{${^q%EW?ANBeWU7%Mf-86aO5D~odWynu#Clr0t8sti>OAe9 z`njZLFB`gSA)@7SSw^FRByQN)%(etpneDO8_OkQF$SgOi(+x$&$ONTZ*7(?Q??sB$ z3;;m%&VLhxX?`ew-pB39ME9RB60NNX(Z_lG`o`2)dB+c16JM7qcgfM*nvmfcS0hQx zz#<$vad#3A8iKE1JNfhyPVs+*E1pF#ev{m;v>7Y9C-A*s^efuC#2{EspYwsu#msgo z^xOC4AXkJV+>ETPtF>KfKvwzBCSDZUxS1N;a?&a(l=q~yEIdfKcSCMhZYw%3;PML% z13PCMc4=A)q|3(W73-~-2YoRp$?)v_XQ92D>zvE!&43}0Q`Zg8Tr7Vp)!oKr|I#%$ z2Lr=jZhwLxAR3ojmZZeOpF+LY60@KlHtY4pVTX?Rj%Hx7>y|BI3p z7m*iEzEPsRlneBQq25ZsrkhH6sgK0reB5B0FXApluAG$QBsev9(xQwVSndo}%Ak^N}m|TAXA!Mop3&*H!_>K`p z$ynYc?uOd3x4^?KErDTBUAe`y2!8Y4Rb=knl!ZM)B(Lm{KB5SQd2m92AU5VDd zgo=?W3=d_CqsY9q%s-OZOTDNJm8ToRX?j?oI>j#sl{u@?C>tv`K9PR z@6ch>I)m{@FW!F%5hj%4Klgv@{7tG$pUDI3k-Oq5G}?Uor*-6mWgq`^D_ev5SIvt@ zc2$isuvd{TDdQ<()xqG|^O;Jci-$9zeee=B84nQf4Bjk+!d}(Ik4K9nR+lUlca$_O zGqU0Sv_cp-^!0lwE{Cd3GTYX`Jn^aAClq|y z49R1=9WzJ|f}u81p81zpiC$uixq@VwpozicAUV5$NXc(OI9ElLH1NH2w5+MV-a%(>bOvwx*v*zy-Z-Ld#1D zwdgbPW;A~qxKhgg*`ym5si{C|kenbxdSX2|6x&u;h#1G7+%2z=w=I|W~yZ!*$-ZSh}afqj= z(9m)wrmy0qznBEc^mQxp7VPqI+6f!9vlWi`lU#qFk>u&)79QxB&H04*hJATyX=(xc z>w&yU1tS1_W^2rR!AUKBp7KASO-b1$WMf_Jss(zIWMHXAXraMFI>Z@`6g*kO!=(QX z4hw`!8&(}&JwRb*37{FcSobWJ4vwN+D7M-G}3F`yj*76wu=&6Ld`B*vQHY zh8yi7YTq&$!GPrET91gQR@5UgI~dSWFI6!wmH#{E(xs?a+Uhg#kYnc`d%Tw=Q`+r0 z`&;iKpmcvJJt#W{f>IysdYa)%JVEVeb!x}tI~e^MNl}x9Y_dKA~J2dqHb2y+BJW| z95%u&OJmAB+~*SaK-|6QyizX8No_q?zqAtC8OxI;*yb{uSK_xWigbZI#|g>}G#310!zXKu-jgOrP>0+=i@KW<#ihvVZqw7&-Fl zm93>!b7xg61ih?N#zx589Ed4}5;jC5n14_T(j%Sus4mb{UCu@=VlL{LUutP_CV4@X z!INe?`8A?i)g_GRia$w9mVA2sJ%Y*pQNbVK9ITKgBo0b`27A#Rmj7Lq3i5x*CM8N! zqF+15W#Wl;72I;>K-1wGby{rG>W zcg-fPR+^<+w~66o#5H`qZ8jX0VFIi;Oi8R8RPM?=z*t`02(_$xLaxFAird=DkOUGj zVVsL6Vv`W<7s(>$meItN-k=no~vOYxmI#`!J?gIT9_~oI)2$R2u%_ zAYy*1hF_)d_f$K^1;K7_!8pQpe-l;T2QO!TJnY3j4dMAZ4G*#?yg$(F==74|-L6xn z(63lBqz^vCpW3xiUxO9avu&z~5JvQ{4Pt-wzSY6;W|Ck*tkDW+C}V%MDRA^fs=@vy zL8h}{=Jjl6?tXg#lbKTAm@Q3~JIp(~A#I|*wM5K#IYujnm>^1&h(iPioz@4@@b$UGahJHjvkg(WEf?s|Oa0iP~ zj3_;BU0yJ*Ypa`wH9>zpUoB}ClToohSUU5=I*9q`Kan_2rNl?jy?a4*AWkW>AWH&n z+PzmJL2Dx1-GQhm8v z-Eq@NO`$s|y24|$c3<)b4bLShP^6PnJ4U~nKiq$d-|KvG>E|Y6w&1Mr z2NOt&+4Zv*jY%``kV&wg1Pr02@XVUnsc?7B3; zNxkuSiNPBAJT5K;@8z6QRZFfMu6BaI*>=%iutzhf!Pg`G77Mct)B~dLQbj9Ur}~5Q zmAds4YU1m`kUqXU1H0-9DRW@>xIV_2mN@D|ux

D?MKl750a(Py; z4g4SSK2Q_c8c)Y)h})P<-y9cJmUYDV%E4F6=JXV4e>WnDQRnmyY&$@gBK)9Dp3_w`eg4yMd z<2Ej>c)^0wHGAUwA7h_GY=~n`nT1IKTQL(U*!s13M6dFcBe*IY%$~(uTkuOKxoWci zhlKj6wi&F3QcR_?^G(N+e=7bedyj5S#8#}1Xz$v{1YQ_?lIvYVkE}6qTA?a87`#v`My*a9D>XI&->8c;vG}EA*(N<8) z4o^dAcycBp;QN`8baY~elb@D2jWy8}8byDN)uhn({X!{3l2WR^!Qr(7$eDX71=po= z%#o`=mS1s4#U=g1IYfDY0}GS-|04%$v?K*&0!YYsF=khi1}r9HUd}WMcV>~fQZ>{K_gqG69GJ1P1>UwBw_4`r= za4X4oQ?_;Q7DMNp+uxoi8jy=yH|2l&Q8O3frfz=_ZCv-jO|1_NzOe65vZ{>Y00$8V zt>$ddM3)uh&hw^8Q+2imUC-Cb@@$9JOmU|d@8xnJc_iJ~R7+GIc!0iq9FC1bQy_2` zn9M4*3N9<3#|@yuoQiBD+Sx!dy_Q9e;8L0f``eg=YF*M0)}6?nsjWao&mezPij+Wt zHo$V)r2KcL6vAoyvoA+Mok^jaKDrNrJ^YAnGWG!LeyPTgrd~Y5Kh)f8jw1eu1g(kW zXU2Z59&=$h?kMY3RKm3kwqaDPXab$3$eZrrCQqm97NgbT>bRmZxLgI7mT6EuCSwte zFMXR<&I4xpi`||KSkV81Ox1r1&VpK93v0XQ5P{fArIEd1i781FxDWfb$SXlMeH`$7 z$XNWvS4vqIy^;~R&&D7k7a$wfH={0XJE_;fjt)cJuL?)=xiEoyQSY?b3k?JP_Uu40 z&5>3_uhR`g*roe+LGa%H?46J_ztcj$8Y{6phRgodZ8+O(aI@^xWK@5HUpsRC)MT4% zH4V~2GW<&wA#A{qL9TT`Z|sZ1q|hN|x_Kk`(o@NE13HN|Bu-wcGrxuQLj-^j-IW|g zVJD=@d5m;GeNUgVJ?h~R*0FCt#tn;mzJ5>{QKy6d$6?=Ghp~isu6bhx_3n6CKUENc z;0u!9Q27tIMq@`mi{O9UDT1_XdCg5Fq4iE0X0R0?MQkce@M;q39f{uDK&#Jq|v_mlcN#PoA4)0t#cr0 zM_axQFhyDuXy;_-U=M{88IZ|>%ZHn$pN)*`_=lL(P%Jg4lazl$?kw??G{yg?S)l69 z|DzG=B)d}LXvk3q^Z zzY|5S;~Y-RT|9x;)IyJua@l$3_INu)ONwi#11tw|7K{LTNy!Tj7MdlM)v=0KZrrT} zO&@@}oll-_fhvDyctXQgW)*?#drc|@i6c4kYLJbm)MgCKYP*R(tC;W&DRKDQDQY>1F=Ejn>BaKwK*es@Cf1n_ZRH?03uW)ioq z8dA8EYgRholq=V;E=o=SspbySw0KPK=Y>*K*0U{6gBmRAgf?tu{dV(~-OTy4M-EA% zE@&KS!W%+gz*^rVfNor@&{l6%3O$M@5D!dG}pGRWn&* z#)#%>z}|nM`!6-ldl}Tp1ytVd?&SW$!tVc+q$mU^wOPl3Ck9mZB6udh%*JT{dg~3X zP6l13CkLDmy;MI0uU>*KDPJ3!boI{{vZg*Nyqe<+ZTh3Ry%SDJBL&BIEU{a`&f8U}r;PhF*nEDG{v)ZF+9b}YZ+#=GT< zi9UJ}izxKEBp7l$NW@MS6&%`4ID8f+t8U2|7ysG5vWHnHy6H0`2~AF5?k9auQH5rd*aYW3{^q5 zy9vI{-S_}mAoaNLCC6%JDQi70LxVaN0eIgY`7%=Uv>`e5{rr#xywt=0QbZvwUoL-p zM^Wt-hm<%eMsn)?R*o?=@I3gWDO#KePLexBv^E}4W<lt9F(>e1l?W#gVazI96(-4=g770Rp; znS-Y!%gXHrtpH_kXGxs0XynLq%&-JnEt37tprYWa?&F=d!Xr$l3u>fx$_yvgQ^*>k ziBs$@1J?-xpF`UAc>sK+*VuJE3N*t|tiwLS$uu@>9=$V8?TkW+#!P5syv#sz1ucDc67Fol1)ULT83ZZ(`hYuD2memdWn6zwx!+uhiEQ2DRZb(dA& zKMaNsm^+n+rzG|&s2Zt)TbvH(|agP zjG9+-$@^$QH}Rou)f!w7FSK~*R(6!58TC)Xmle+T4uZKoQI3G>)1p(naR;f8&z1wx ziwnlImg6~8QrPMB%WB`tdAj@ZBVS)=)%cR>q$8oY~hHRFU zYKV9Nz*|X$RHkZH>li7R%>j{>hJ}})&3i&mbtQM6ZFm*ZE61ZVy_yU>3mz*w=L-7L z1$c|Y(VfBs^}5#(fw0q5NKC$)FVxl3!n-ZOLD$(Khx#@>Pn?~#Zj(-hWZA+Cp#3K-3|Is5 z4X5>-r9OZB@&R9s6*;cD=o5MYI0gxSTzien$(@0WddJ^T_KZo4Oirnk zW;GU<5?Y}pI%wC|2ty~|`w@x3n=P`pLy`6U{E zU^joD;(MaxlF;Vy(iXvMRsI}5u^I$RyWJnRT7a}E^XXdRIjM7#&7ue`(@my?dz;V% z4Kob>b}^)j^Al+dPl7*=%gOS=2R~c!fwJeZ=oJhm=bZ+RhBQx3wb$O47d(Z0G>0+TC8EYh@~GZx%$$ddSo zp|2F6RWmA@GU#OLKfS@oJHZ+H)G@<69BDCw1v0+h-gL&Ncm254&u;BRKMks3Opt%W z`l#$6(DkRKv!8@2@QQZ@_x>46YyRPq!?^ae-7$pwm+JZv{%3ZoSIO-F1 zANcBij@7*BwR!>02XKyWJP*mH1mDknR&R7c#dRA2J_HZ$Zn-7waxG?dik__ZOGpd( zBdfK4Px};x;kFWtY_pCHc~a}6UKD@bGv|G4OfVZuncWKy=@qJc6K$5=d@Fp!sz)BwT+6u4~k@l8hFZwC#V;ME1}a zIGxUe5R|dFk=uMfi1M(!o6!E-w^!Bp7h2Gzu$@hiqqD=<3y3)QUJ-3=P7etqkK!Ql z=)o4wM2Z)sLE35~ZGnj`lV>&_(Y=D%}MQ<+Uu z)Q;=r5HNYjros`)ddhNHd2}{89dBf7m)HExdF3IaPSDmhvF(?K6Nx?|nP^_CI=FvhxjhHoRZX$^JX=f)p~kFP z(#jlvSmu{-8^jUd(~t7h7RgJH8JkBlnxd(OA!*!X9UKQxmpp+JDqtO))@hK}#s_*n zHI_gr{0_ zh0UYhWzZ%1sC$|KShYZ2!w9#vS;E>fP)vb+ld;<>l|IyuuhWz_Zj0qy&9+6>`;Nm$82NM~rCUSK zYDk#yS6o-)s;xZ1v)hJY0&o7aO6Xg|yA4L$ELZF7!pma}L1Iai zO;aF9U#PN5K9$De84?(R-=Zu{W{%pGy-YLwjchVbef)nRsGz(#bT~XX0`|+?v1@%~ zwTT;+k|`$?@Fbh?w)=B!F@)W73fjKp<+weOQQAYQ=|on>{Y_CVi-9 zUz;*Dz$9yZ<0RV%o%Ab93u|oph1cD^^~D;YkEwmkjr+OiT(|}Spgn2l-J4;f9T8FE za;B7Xa5;Z#&c55GwM`PLoSalzogulMy>m6-^MDYI_Z%6cQXp+`6-6vX!Gf9eaPBKLyE=ks*5DRXGn#6EW_q)}Hje zDOed8f;`k&Kft5O>nI7i!aBl+4v><+U02^bH7dWxw~)21y?wy3Gd87{{l3OW!^-^& zEdni(nm#Nv5Bgn$hFb|=W#uN7>VkmQMY~tMFXNP$I7V-MC8V~Q8cE(N*J?QHxzFCP zfee4G**$I|`NFKx7pm+?E#nD%dthY#Ad35~EfqWOQA1ZHb4pOG<@+$#VBg#mh+{8o z+offC5x$h$&w1iXy050&|6nfmH*q}J!(eZ|DvBW0%MCt)=5h0}Ob@V5pkF)x`98aO ze7PE6m3)Ic1pR8Uz*!w#@DJh7uLaxzqfvik>u`)B%%F9deL=bmcRQ9sQ()t;W;mVr zHzKvEvu$>UNb*XLO<^HUS@VsZ_^b*b7pSgNeR%Oj97J=1y(dJ!E?i16$>YIKzyI^! z0mCePTo1?>fQ-$@^yC})63<7yb(R?`J{iBl$_Y-7C8V%QZBv5qV=e*g3jKSrJo0)V2gmc;0zU6Hp zgP#G&<=X3({yIx4B7zJ^^#;!)$22kPAu@()<7r9J-Vkmv@8GhB?ZjNIo4o7^l-sr# zp6iE(cbxb#F9bsva(K@WJ-Hbz?%#j;;y-NBx1pIc#lr9toQr3rh@ir9`rcsCnc^Xa z;-6z8sUL{_@EkM$&u&ruciPV+Mj!mpf2c%z1(i5a}Kwn{R4`Y|HLZ@2% zrHo(O!3m%Gh>9wcexG#k5si*S|NY)bYcEp zDTvJ_jMy>~Yl+{rx{Nv8ov8aST#uHE+FcV;@5XmSe)cs#=axS&8U}CPmU*6sf|{37 zRq6LfRh-e{^itS#cz~5*EfwIFy%^Dal4o#e>rcIH+a4rKDH9r+&MiD7-6WahZ4Y8q z^hd`JJ}b40ZRi-<$g6&|$#sA6P^~eN$13&~EXUH+7qf;CVb3Gizas&j^Y-{?gnAT= zEMfIIiLlcdCHy?JK+SfAx7L6TbkS%|#RQYjTJ*@;; zWnPYlD_Ha{wJDI)1kEOtMEE`G>w@;&!xI!m_~-@)rvAoId~vikdnZ{E4e}TuU%u7f z(fA2dWMN~@Duz*R-Q^c}uq|r@e~7+%6A~DZiUm?UgqaqDBwT86>|&U@*%~GL1Obu? zv#-uEt;{mGp_RWbTuFbQXFsghRt*4b^<}c|)*7y;D&|)*gQ}|-K#b@P!Xpq!ey7LO z!w|jV>kuux8p=9gNYc9l85yKJ9$5fac(rKSN+GX;vl5*Iv3XBJwsn+kb?MrX<|C>( zhj+a+%*{RcNl}Wcyp*w%D6+mHSg*hCQAIS2mYO5GF+WVOBx!#PQgCV_KvEJxtUtEp z=Z;rch@d1dnviz<^$v=ce+O%knbz5T2_^gwrn{Su@AxQ8I^m+jxFp+21!^fx)%GUN zdafMSfBTbp?3QG6FsEQvd8F03A1WwFOxGbK~mRQUW7(xgE;*aIV2)B@zQJL6V?Csw$2`d=~b)&n$jA5(g1|5{!ZP z@G|y3h2s_gMtp-71yhMvP>~P6HHi~ORNRftw`Dp^%E66gNd!O+-iK#Md zjMyr(z6gJh!}bawiI{*39OG-OSCK~3H`3*4r^!1(b@1~7LeJ=x0Poz)kE<34Cx_te zRu05n1UC>yh{|xPKSLUZbzh|EwvaI-58r2{e=t+69CG;7wHtKtQr{WKYw8Wlo@Q$15tXLlMexH;IBA?EIF zRaSqDju{32OauwsF4L2ehcVh0rU&S;no+q^u)50vo{5VU|0X}+>bxay*GP}0@}%{? zf0SA3Sed0oQjC~;uT?C&cYl_U-6S-PM)Hw!pK@?&Rc=H79W=a_6RZf!`p1>Wh36-9 z$2OFmCxC8_kv7r1=SZL7?_AC}se=-a6gPjJ?!*$UhZO)nK)}D5&@K_$5!D==ulML~ z52@B3y`fep8D{{i6rluTwRvoUvI<^D)7eF%nNCgTvU*wHVrDe9T$4gnsio1=22_@9 zjlSqY9vecYuk1aeBZuUNrmG*<{-Fe{;#e2K-Oo`YFA2$VQL{c2jk}xj%ubWM*ZS-) zr1E2b7lhr+zFxd6|;t?Po1EoE)J7 zEP_jnf=JPK)R7!_Y&NFWX6<*Ckr{v70tUSZmaPcCI;rZ>jkP+NiLHf45WpXJO$1^J z%*=!FmW(hwg2?!$XSN1aFZ}IVyc$NIE#vVx!efIyM(+;0?nl`wgP84Iw{Wb*91viC z@9)kQr_gy2>eS{IHOa&i=(@DJh# z3sXIVVwXL60Yuo$YQFPLSVPbZq@qr#nRc`kp~Y1oFKLnBb(%p&au84PLx`By^3k~o z4Ka`1T!+(UfIQ$#I)S4+9-{0(n~->cyy&YB0>YFkQV~=4vaQp&?&Kj)aLNFGnQSn` z)u@~QK1Xz6#2H@?*hCKtBN{kyC%mXP?jMp|z-Rqi^!IX7**pQ*3;!l*8Tbn&eR~Hv z>VK7od&chbk*#~PWcxr{#)%bC-}ZuCdY(S4rzP|Z*`p|U`q(NgoT!Rp1zZqbSBvd! zw9}fGcwk(gS1rQc+!9Oe)Y0&NN^6eeny?ANbP9{A4+LUoJ{7)LHL_N>X!Gm!Ybg`> zGSR6J;(GQ|h3SZe9$Q8X;Y`aRf2hm;5a`4`fRnb$LD(Xh##eW&=u2xvPMx!gyl0Ri zo)z=y;C3eUKJRLWFz0*1lFc69ijuie`o64y8<<0O|@QP&?6R{3{aU7nfl;LkEulPn|$1LaIsu7{5C8PUd|T)|7q;zIJvlgE&wY zu3~C`imlRrMQbNoXZpFE7|4V>ji_!X^VR#uxX@}iuSqo;@`JB_o=*3<)bDOb`ka%V zg6~>xroVDsddYymv0kiyT~w)E2H_DPs<}KcOY4EF@G+=^In&p`U8-(c>;n_+^g+1r zvHhoq!rtIVA672AJ&PsYp2S|=sd!|m!FF}Ew=bB=(q`w7RoA_UZJ*$caC3P5K*ssD znc=+T1YNFm;M{jN^J=U1=LC@(;n`awS z_*oXuWQbqSe25?T6W-%ibyK__9g&_ZoEE}n*)jZeWi?N9QfOll;a2SwQ?;G>g<=)&#|^av3UmAfAr z${L3+TN;k7;nLdO!w3RBEl4j8>QX;z9RV(?a3?Mkmx-(X3k@N^A)1G?pGfR@gU2fn=;}@bwd^O;-hdL?r0zGwq(i>V#<*P|7TSW}}64$PR zpK=e@-U3eTC19HOus;a~L@Hl?qNAcZ@%PMwwO+m|<$_oQ!Kk{PD{`IG5nfr3%2)V* z=n#l4nW(cdR^YNAOya)_Y7z9pOs^-7r?BVsl!0ae;y+IJKLnPuLCJMu$_>f3`KBd}WdjKJ1K=GWIJb(nzW@HImE^ z;goRn{%2%#)BbU;7e!kd>czG=zY$MmAa>m%WPCJ#0S{Rfv?#;)-RU@MKsxNRY4vZv zG}EPQ4zmDy`l!7-h1)AXpsZh{{rdNA#fjE2vJIGecpO-AJtz-o`3bNIpzPM|gpke{ zB7KL3JuNO1FkOz(B(D7$OAaIo>L3b$ssZuxwGLO5-@05 zJrD&De^OzWAq`4?EK`}`2M{K@b<^n8jzoQ6Hz<KHCPwYu#9A;8aE0@Apn+59qkC_y&J_n&=&W~Uf9K)AnC^hrs z?68GKpal64VIq2XoK*i|3v^Ru?^xyFWn3eZ9etU!Syl>+w|(Slzb1Y=66YwHtC)*_ zykk*km+xJP{Oem>_MH7uyrQHsG{z(gAHZ(F-$dc`XSEyl;cej6ym*6lh)@-o(nVr% zH97}CTDY04yv8_d1R@nhlFvznyiSU6h7X5tC&Y+(yy2spPv?UbJS# ztxnx<0(HR@D(f3b2YWF6yy0c~F?S|u^7(QP%Cl?}^yw6Gn@Wap@G@_zmoY&WYKaD0 zEFr1fq`G&=TP_ym+@GfD^#=zV;sD*dr(P#CO&VIws($aD>lUcv?rjAyy6M(`KrV;B zrM{lDm!xSiC`o#lEf>0zWi5Oi%8y<(YC%L+?IV4Ke7$bqjp)c zdr$utJOu*c9uJreu8s&6^c#p7yq~01pQr(@hhn$WbB$_=SgW)#_#i0e_dJ2n`9%@FReF?NZGbh|NWK+apfC`{G5DBH95?3nLBW)$H%@zWA>L^GXs=1rkAGC-|Vg*YVYUnke8W6q8XDdPRWc9Jmt(dN+Ni zNYyU9!KlVAa+9JHp{%r9&B!}$M7(cS5xM2@)i}t-Z8dCR2y`gj(nN%RYbOjpAot1E z@r*@eIaz?o8Ob;zd3Re(`Eeh_C(RSo8wO)bH3CSO+8YCgw(hP)`|a`uy%77XD3YOI zPA1?d2p*+=>`k?k#bQTX688ka{_+){vlj-ku@Dcc&H{Sv{fTok*1;DdhNoPYXi=Q% zuuIi6TYf$(bZqs*h4|`!6b)AS7Y!>`mTN9T*j~Pa4m=Qp0E`mddql8<<9*8lU#7b6 zoFfT1@6Fm$!-c5loAGcfCT80Atyr<^qp3&A*h-^Q*JCA+a`qh8K`EAubpm7ilB?qGWd zhcDJ=q6sq;L#AQIOg+A-oU93=_SGq*iqSG6T?9S7y1J)&Ihzh62ZP+7a_xpDfc;N$ zR21_XKqDSg`ub?}^J-C4ooX@`q@WX^%T}1m`F}qt<<1zc`0~7l2V7+Rdo|GwtKu%u zb$xA^+NVDnj!$)eGs!5RL9$fCB$7Dz9|c-rpUEH@u8u({T>2*ML`BJO{m@xP6prM< zRIOchTP>G*M_JcX^PHbrwOhyHlEjugK~rUP7x5)k=_Va1YgpDxYe4 zivL9@9kE+lPFUr6r_teD{FlshfDD2!KMzOA^1~_xKYr(b!92HazC0^XI{E4#h-4P) zBo5%4N}1+QG|@^6tS|0YAYoon?@2{B3*haqV3J$gZQL}=A2DOH4t0^92N3!`Jk6^j zmP4`g+E?pEIJT1IOBf#3pL+5xzg!=YtB&?(5pP%_y^Y77rEPj7Q{KB$?Kz*P5q0Lm z_?iKY()f*kEd*tbL3CKj7+6-yiInj>eknT>(cF+jexPtMPD*GI62~1_SOnOKHd8tB z*q&LnfV^b^N089kJ2UvmiX{v<*n!?j$#&3`6yS$MwNEO)iBPc|ynPYniPB%4Mx;Q4 zXUAQuQf$IUT3Cl4sL^9je8#o@_Tr}Fur!1>el{O}ZCDv!ro6Vw1Zc1bECT%1hc%ft zauyEPtLr02TRox~R!~(3Z|W)a-~YWeYm%Epc%6Wy%9jKu7~@TEvf z_u_M_TWl4Z;iA+9t*>^pzzsN#>w3%meEU^@?+S=F9i8CTeYC!|x$DQ2Fj1-OMH^t3 zp$rxMRhyR++Q60xY&^nFw};&HrH(p@;vU67^ddh4mZGbSl}N9;hEKhyA~jMM+xY*c zVLjEB*_N=;sYTy59)`6`4MA5fX2Ctgr2U_sVU^P`H8L>Abdat9@Xzm;xY4I~2HVqr z6+%j0{{2Cxm?pDP1?LKJfz8i&p|3v=F8m(2qT+23I)n=gjFi1#;s;|%AXP;I&WtJ= zJE535fxckwCR|j;0Udog6s7jvpXKM?BZHYT`j!N7&y}yLE{8uPfKU3l1p;C!+z|DT zOXaOJl^xc}9PTA*Bo5wd{n?c|oRx8Zp}1+x$q`7q6kH)Ip^sM?o)Aa&qSX}-A+`Yn z{Wq%c0(ds;9dtc=cHMTqs)n5e{OzPd!6D{)AXbt~P1(W)SJHnSW#i}SzB45pu>$bH11-{jMsuJ3 zEIvu#+(Yhef*<`%Uyyn-vaHe^%n$@rcTb9}uT*+a?^VPaT=mKI2)Us+YPPB&`yyZBA4YLbWVf|QccRV(oKCHPQPqjV5glFlL#&!A7OX~x-qBypi4vIyXft~N>=eFtx-xuIMd4I^P%GK%BF!5`7k zL5mZIdQbt)dZWV=b^SN`T_-yljma*JoXS`uCewSGg`|6G)gXaABcmB;F&tpI!fObYJ#%JHHZ+z!ox;@czjg@re7T<@_<@G0j8*ln*4J7dLr6L~oqjKnthC_pks0br0r9Xa<%#B5jWA+|CxB5f= z1-nHH+QevB-?&}Vh*sPbS1_5CtktEiNU+%#<^qq0z{)4Rk%&z~_^Ogeg!IAa-W~ab z7t|R)cqcl>4oU&M*Rb+`31dP(!;K3p9mwxa_4B!Y5j(u`I0HjDFYE|bQ7I1DQ|xSv zAT`m|<0&2;7nD$S1QgJo{o!h@v{`2{g{N5)C(FIuP?gHB7TL6F;sBee)d(Knj>wzKDJ zc`4=1`}|ItHe%tpZnt9rvF)5Y2Eg<#$R$n?bnaOBs?ve7(P#j$teLe&U*m7v<=S^R zcvA(P*^d@^6tPEtg$tZCo;GS-(y9I-+$UNrCCSktF=o!n3p-F5*w;C1jw`FLOl}AJ zYU@^@(i(qyJ>F4|?dTYYAZ{hvp?3EMb6`CIA?YQ@=22Xt{t%wWo6v^0e|5Blw#bFv1arV~d`PSaVH&g(E~2*sGi!D?UAc&01rsoHek^x)43>)gAyT%HLPX zwApY!&_!8;);xlLhQAFI^u_FNR}1g3p_5fWzQ9rXpC;%1qaT2Tf| z+U}v3)kmW^lzthJ-X9asAC42j^AkS*9@fGFpDh;NuJMtszTAh;6=eu+67U4Ct7pA% z|FzqHiCGesfJs@JuxER+_+d@3h%I$eTC#ba6(MtE?_J5CDWD7QBq`6^ZbDFLLViz8 zbwOs1MW+ay+oci;r&(1z6x?S2!wgz27k+dCEWv2e)*Qy4A_fKW52jc|5T%JY=HP+I zw@2>$TOh1&LoT!G7F>bVFOlUm^b>O&smrB*6Xb*39FrZ@R;IYArGAcU-Ztj(@OH#^ zbn)4|fm6))&7oOgxU51CzZeAURxjRSY>D1UbC}1VE#I9Q|4c&zb!l8rLonr?;P{L5 zTdbCk@Rz3;*J%)^kZ52?58;f|1#fH}d=$g$kgDH%gg#wV?3tX6v?IUVwghZBVfRdb zet&r}*0Z9Zs8d_C-*YfPqRX@{QhMN@VZ|+)@zvtc;;H46t1dS@u*wiV%>8fpzy_>e zbY_6l0Chm@4Dji(7OTK{;zWr;d|eR=Zm@dUHYDIB&*vuQ1J^K%Gv`Nf$X|Hk1L_T> z9WnPchb*wVtF$DaQnC0Lm#3Yi(s;3dlA2BEqP!fxG-F4|6Upmgrk~Aoz@!LthiQ{$ zUwV6l>lw#TRx0JLL0-~R1s%PEcr1k9u-VH z&mM^C-c2?Tw?@kx?i+ez143~1wPgm-k)R|k4gCmhCSr)wIuk;e%NwFcUYg{8e$c3YKiw0TOqi1<3RuQ%C=m2 z4f@i~fxBFg0VNjI!);6BE~nd#w-Gz1Pyx~gYx&}-x`R2IQ@Y+l21qDX(04@QD`tX~ z_Cw>=-jj$Z2M}#>5dpATh1|va8`u4iig%;GLO74Zvl`ugfH`4*QzG^9H3#u;qCu17 z{H0~y?;k@BV8&or_2>jZ^7BBHW;dXrfRwCPd2--i=xJyik-@iiU{m3*_`tEUGgd%; z!dUlD0ZH4$F_U2Njh2`Cho=DUVZfXbz2by*SoR-#Kpz2}kh(K+Z3;C?GvMhH%C1|* z*}XGw@^7vj@#5-#D4gg=J|N7ZQM)WT$spgXLpi&*HkJ#g8`JbVNMeudMtOnZt~x4M z{?GXf-p4mk#sFH?;tPy^C`m>a`$680RVAnNbM)#qgKfvD<>)?sbWd=o>$r#FZh-}U z*gP!wi=J;=6|9tkjIr33MWEsbO9p)Cs>JKI_JjS-x;9IHl?2zi%s$NLbOPW3R*HZ! zhM)=7`*`Au%krHms=3=##CDBIhCN>+WM!PS&OR;Fj~w})iZCMh3zz;uYIjBFf=3XU zG8EiO<}zDKz>n4baJK;R`GubdWMs;!4(KFr~#>Em!aVkjSG> zeTL9|%SP3I2=z#?KmRqo?em2ply7*G#eq->R^NX|7m=8eG-S1Z4vzQ}kb+_Yu}wKFvV$lduvGkF z8%6<Zlz9&^$lDbNq)B9+o{u=I|_>RCG0I*2a|ukFsB zo-{MbjV!Nolbna&1&zh%NOsh%mp-NFz0d8DoPStc(MYXYPwU{=SGgn9vm&g_g$ z_3|Enkmfso3T~4qNEEOsj`qitnKez$0oC@PVKC6dPvQ9TdfUF~E%xkATp}ginx~br zPL7uhJBkYV2dKLUZ9$dX7K7JzlGab{PW$_t!>v^~B4 zWyh&cNSAX3pUpveMb#1%;Idy;>O0n+KsT8W3skyeSDHy~T>3FKg3_(|)bU9Vba|XK z(`jszm=q;6n>TGN_1n=v>&El`+iU_=9L}2rwcln#2I0KK)G{59_%=Dbd%fw1!B| zG&|#qkwo0T6TpHIJ!jT`oK;_XOLKzHV`UASds22?=JpN(L&-=Pa1Rp^^r_*XV5eMH%IdW^BU+tHF9@}^UjFfO!b@b7{ ziO*SgVoZ}oTWfBA72_yzyXU~@Be|xD&bKVPE~KulLbn%ZqO9|_>9Pp^3fPY!lZcZq zcJu4s(y!ua*fMi(BsrbtNMqNUoaBx*KpEP+&h-ZJg8DiL_EO`Kvw&jNeeO6T7s{oB zq_9d*)WIiZ%|Hs9(cT!jXoI;=X6xiQ$RU`8Al^0~J zjKdrvxHrf>bAa3Vw$0sBIWpG`EnwUFlCpA$nma;VnOX ziKYyOw_rU0-*N|SYZ*e{bVmNG_(8dvq>VSVW1hR!OB#-?p#|v8`E&=ZU4q^X#D& z3a*x=rnMP=yP7LN=Y5XTh293($Ww$qJUmPqdkC73KZn{6NZEKKB2iU|W+T`C&z1u) zKZLopFMHGs=J)9YMmVai`u}>*3&Pwug8MIY_-Jn~==0Q^rHC_EaeuM)e$))5<1D;N zJ->`8XyrmN6Extldt5wdiK#hH7dGb6>^XwPyfd?Zw?kW#HbO^b$I>kzVu!;Lvhuh& zw5dhv?DHqcGvlZT|M}z)s*;waJoWQ@QTy#xI*@Oq=$fOE43g^uGNy+*K8mjYzM^Ec zKBAR!B@f5^R8>kG1ya+_3p#_QC3Uy_=y{WyTckIQ@vQ-`Wtu~AElJEXRsP^{!fJN@ z)k^?>G+v&{a`g<|&!tJp-j|C}q9*}Q7*0ihmi7)F?kGO{IaRWfLqYEyh9G#I`+AuHdFnuY1Lz zYil}7nkQIP#t5}(Fim?*#^}48XRpkSYa`n|f5_kewnEGFQS7!P&jhftJlr-D(Um54 zz59vL*xZhdadn&HmssV1swTwJO?UnXgKGA;8C)V>&gr!9?Zvy|OwQD|chc#N*;HqL z^tMt>A`qwaQPJJz3r5m54X9Fq5Syg2W?*{!rD8G*sgy>bLGgv9q~+~Xi&>Yo819S&f{d89 zyBpOr+w36%6Q+J%|L3a;CMjM)V}I9i<%rO`oCO+NT;}d|4%O0K(rfWEG*^{760TrN z>3C4WI)fVVEEP1_pZXk*XzqD(a2a!5_0t^Y9l=|?F{H(TqsJ{Ocp$Tw*ehp$jsHN) z<}4p~N@BrL)F0QgQF#1v^EU8<5Ec`3)RZXWJmJv&FnT+!iEk~NUZ*vZjgPXf#2U?W z95iNzQo$-H&G^Ks3Q9A{IY47l)bH``XxD&;Fy7P$K$~Bv>QDpZsnrHbV19Mto2Use zZb}x6m55mhY+xWB6d-)leP;)Mj_Rj4e_>?W@T6G-PYGgX&~*f1e2tZ7DzLOu7e?2# zpUR-2yKNLz^NK{6292r5%gVUW>=*9Ybb@Y3!h?oyQ(7Znk^gi8>F3Bby>Slx8wNC? z990iwez=A)PsnQKClf+1)=V5+x2OCgkAowX>;9%n!UzNtuf=Y>`yds6Pq6tYH;;`= zw7|O>M;ql6n_JP7n9aoZPIec^IggEd%uO_@*NA~7jQ)x~s+F3 zg=#qiDRea|&ls4WMEin&TnRH_bhw1r433qf z+k$U4dch?AE3Z%WIyUT$WlD804H!FGnp%W8BN)khV`e-HV-3L7C*$Ap*y$8m9 zx923chT^l>&*4VtbQMV~sCZ5Sw4x!F)wi}&hnZ`g`_fr9H6Wrg(Jfb;MYJEMF#x0a zC6kkjnoLLkDKBMzbTRrG&pc3=yHUTos7IG{xl^POz3wSPJD!|LOC{SaeY+R4t!@2H3ud4TZ#)i3yrPut%SP_-e}BO0K6Oq`Pi55tJ&A>0sIzU$xa<|R6DbeWrXiW zdaViHocsBI$XC|uP~T5yi5LDxKktX~}KP$0C&5^pISaI#jw@H9Wn_6>g$2 zbXY_vGIC7IpC(gX2!STdVAnn%5UO7L#QsINtzvd+J?-hb!Hf1uen+9(<`qLphl5vG zBQ;wID5YnK{z>3c6Nl6SobXkGFiWBvDXVBB11}Nlu|vqg1!jx;k@+lHbfmv zD>7j7@J?b+rB~m~`Qe|K12cjnK#g>7#v5xkxU+ETQR~!FJ+i(uj9Mu$Eb`N~5$_H@ zk)ysQ8G$BqblMWP@6aF2GBd*9; zPnaZscKRO;Y;T=XjVsaKpJq?;r$)Awd*v7ev6dk#x~}&xO5NyhXS*BLb)Ohr_ye)i zU=}o-+)XI#!}%RzCrQ6^BWaBCc}IyTHPGxeE6Wy8>x21%d83xb=n+px*0LI5;R!B- zCLUifc&-DYu3DqO3=gbN>Nm{7o|QS`Q=`&m3 z@a`$cj8v>!I3Ubg0yt%_?t>$@@Qk=cq_4t~8#fhn#Idh|0~=C@3V7T`S0AE^<^T17 z&YqYh2~<#<48Tl39k%m$X194^Dsp+&vchL=EFE|vx}PaOdSFUwtGBAkxXjbq(ZDi) ztPtXbmc~bJ-_1U+ni{V5u1Zoj%iTS6)i;SZ-uJzOmFG!<@LJ*~w7DA@_!aq6mWmN1 z2386@d>jLu01j*N|YO41)aJXB6 zb=BFqibW?arzOi3yCezRw}x-|)VMkc9DvxM3=Bhd1@cHmxCw#|4V3uWK93G)PzUqf zSSA!`iPr+V=uY~{A%QqHAlpJ;@+?6^9gt@JnUc{dgMyFEG_4o4DJT9DPEVtM+viYj zD*=>@m`pQSGcgaTH44?M(B|8f&>f|nXi8wuO|iV7Z;R%@;M@Mfz0+UFH_$O8fP#(X z$1wXcPz}2$3+Q55%DTamgb2Xw^?CbW56%^fV`ch>e^Ap)aq$q=2X9tc10;d*plu39Ar5yD0MYQR1xfRJsE!*V+2lO%!Lr;G>VZqh?c2 zIKOqEz2~W;tb2DvAYE}D@~0?!%1?M^!bM31%=*23Q^KW;FJQ$H*&PFaF}yY;2Co{_ zd`N@_=&fkLdJ0Z-5yn)Xq5@vOAv~qzq9SsXO+5;vMr;q$XT3xR#Q~&^mF{0+L%8xB z!HE?$!yU5Eo|&msjE5Y2U0Yfk!#8@c^w^*6JZlm;YK3TZdLSou*|n7 zVFpC}%PmArH#rwLAkw#R#U4KtGfvV{@((0 z(?W|Wp^fjXG1-h5gQxIwnT>wv6O(NIn*+fLu2$ZwOxkX~{ynjc{zh>? z#2Xtsm4QwF1Vp26see0dA8kpBb{6w3cDR2BC5Tp}%-A)S)pdTlE`eifBVQ}BVw1@9 zXEpzuJ<(6ujCfIhUB@j%J4lP(0yv%HeWsVU$_x}47TiwtWN&U|0`x?Yuc)vDB_(}T zo-|`ls!?*C=x_f7$bd-abL?Q-tV8y^zX1~*dCq3He>e=$k^emzwQF*X=m?n_89f{A z;dD*u-$)9Kg-a=WXC+L%sGt5f##1B~=L2)2QMw8I@h=m9ck`&-jI$yqkKDO`9clhl z7szGt-Id6y+E(JQHyzO9NMzy7;_^u60Vaa$3D}p$6Y-CZc(p~^VzNoSAi95+k1DNq z&nC5xlB7p!;$fw1bZlr7E>Qx|N(xVqSqo|QS3%K8ikO%bWjn16q)r$o884ECM0Af6m7 zH#fz`g%pC;C{TQ0QE>nX9YXb!=h;HD>diBtKN3M=x&h5>?ItJQOV~32(e>wlhLL-P z(4iB5ExIF7Wj%g(zAUx!CCo+J4{L0;LP>1IyCt>BKM->{Enb3hyE5@7r z0Y+=lJ$$|R;)wszzs^2+C04?QgU?MxVGg>vJ5~^h$$xV4dI4q{c9ezLB+r((T|9LMxj;LAPvP;@8wNYVm|lMu;v!3b zD#7FXc{m66V=qw!9;|j&bI*{NjBF#u0Ien4n?>?N$@3SxC4MUnaz`e=k)r?e65iFq z^%69HP1jMfma}JGzUNZsK1wW~19XXM83>01#Q1sB7^O_x)}qZAZDNpGIK~k5DvqyE zRUynBW);TQ*ED_MzIJ4OmUg!i&}R zkg@*n?f7KKfKP!1j@;NggEF|F43l_YQx?XuTp_Ef$N}I_-$%G$EJ(a9cJ=}@3dlH$ zqZn@T(L@}X2eDaKe_Z6x|JvmtJ~?r@D`}%gDEtZPa=K^)VG={dc;5uu20Y z5xK$)Z>9@V^zSMl#)GP3F>mX9PwTM9oP{uxt{@>2UJEMh&w=hmRG?l9@E9n9bRzfs z);G0Anog0+k#6z!k`yf6_^0+jI@D#Y0i0j+E<_{!Wu&Vct?yH=I}c-0j1oQO3=leFmlf$%K5GCYOMaF!9$@| zURzev<=l9R<5HZIq~bqZVZc5;^pR^oQ`Fro+NK44Hr^>m=`cG=um|W z+P9Kh!V+&8hsX@C1Cta0Q+h}b>tzY8I)h-J`~UNIQw8M~%S8lCgKAkibKWvNcf6XS z6k%HMh~hQr%Y;Hm{v@DgiscG#dL0ip`69cJeiJ1cmr2Uv=2N2wl}At%3P#G1chwt% z7_-!PDfw>l`K9MK__rN@+HSkjE|iYIv+6n|mP8ya1*wJ2&`zS=X9pgL?wKP6AX$Fo z*QeFjv5;Qpp^Q(^_H*e*?u!|LNclv4=bg8qu)hG!AyM|D7O>}hZ_?5D;vVpQ zMIF1{1HMiYgW;JMG2|Ij?B&jpYl;rYkD3TIRqFMm;g8)IO>PJb$fE$q|b zX=oZ6aoASBwxP@jFZA(*Nvpx>Sy4-OTe9LN2L51*9S#!Pogt>?|87de0iqPE_GBT?l3a*x{BGTU&HHW8B@#rQx*YJ7IA>~y zeDt3U`9V4-J9h`>gnHSiu*#p#dYz3MDCFZoXEXEC1Y8fJb59$Ew}Hg&1pEWZZSS$< zR|j}D9G*TgUL%YvuMZ(jaIsJj8~U^sHac9uHd1LP2NUNr&7O>>iT8{((@4gRlT;Z8 z9Lpajl4Tu#*{h^5=S?ZrI|`tv&ySrzNRii;$fhz?28qa?E<3Yte1RnulqZx2KBj^N z={lO4-zX|?PtctEAn7e_?iy*>@uu+n>cVpi&4qpjINVVvVxDO>Ywt=ElY55WwYNvp zdkNHhZ-g$AJ# z8L21+TJfqlDuAJ-K$Mm1p#|pX7W^Dfk2i!vG2#Uv3pU?FlJMW`kL#fZRT=Uj#Q@Tv~)K3bff*u^_!Pi)i&*qK74H1+N+gGHizIUCFNti&oFXLfp`cT{!W82=>n*9OVwnODb!uXP zzwue}(*IGtUtGSgwFoVm4Dn zL%O7(kUYinIH0P{h@fDpC3%uu9WU)tsiK@cSUhaDi&ZwbeBylP%J7vKCk>GSZD^8P ztJJ!G7<|ixOXyJzg8hS5ALwTfxh(+ivczDQBv(*>9oQp`UokzF6X5;}Q_A^&7RZ-l zR2%a=nY`o0U~g7I9r!mssr8IGeE#18G7zj6d+A4n$h1EHASl|z;0k#y-S~Z))f~%B z2vi|rc2b@1WodGZ?6T=>yzf|PT-AEpQEgj`V4utSKalW{X{UjL>w(KR3OsEn_=t%1 zMwvMJQy;MQWpt%qXY+=R3X1K29PJ3`j@;Q*fmc-?8Kjic=6fUEvk;ANhwZhsjuwc3 zDFof&6tshy0uyKf*|yN7m$Z-JG`uu;5$GP~jq)je#AGApM=99i?$$9ekMak>GX zA?-51P-Zco+E&n#F_yokGxXVKG=5LL)+_V;{?2V;hHK3im}( zPu4DJw4(DuQunI6fXZ1`55E}A1HZbcu-6YHpCHS!o%fBEu)92?v=fs>UG393I8>>v z{m4~2c}`Nl1AEtAwROFJyNiwu%uMuITlz#+WZQyUPR4xVhQ!1ML<_)~wTsg{7P1!R z6^tOLU*3+C4Ax#^(?U(><-UJXcb)|is`4<4Gav_zh8WN&D+>cyL{b;*Wtl57osx^g zna7u;nGtsrpit;i4+lLd(n{~v;mfDkt0S~wKtZU1z<}`}^u~vOAtazY#T!1%AVJ0a z(=$0q>UKUqdZG2M2b>(rL5Coqmz^jLuT$FMYLW+TrtCBRy*6a_bx_8u%7OP2*(Q&g zlYzoAse3xucz4aI`7qSt{2NSL!$)lMeIvv}v*ANZr*Rn7mw4uVOn-A{1yJraX0;k! zT=O&1RY~X4a8Lbz|5O3Y=D|T&Ki1>cTzFnAYc*i>*6>Sl{`|)c#@Q(Xf+1X4A4Z$_ z<~U4N$v*7wdEa*ZdbfaVscq1t;KQa2`S@XWb-4nKkHNn(tNBmr{^uzgrWV2wO4=ES zj|50ustSsfBQ|v>7?@bIntt(cSO^rn$1kqvNxTF-w!ut)J=>Ps4eKZ~8uN$gxnH*= zefOH39FRq4=IW@BT(yB==w`!MeRPK496M7r%9XW)5ObIe#aCFI=Ub~n>4Z@8^sGrf zt>;@@GSu&#)|8ECHc%a{d6kDNHy(BXSXA)S%t@WDMN47@>I^_ z%>b&e(mDmKpwkBMJ~pVsGP9C@DM7BundUoGoBET$4Ty3dMA+^{=oOlu!^H@G{-Gvn z;X+aVrJul&jQ~0v>VhV6y`YX#hVuXJK?QL671m*YyJ5*$fag(KW*@B9NggPd1BAh!BA?Rn!cL@@sj#dFmFSV``{ooL+4yM*DmSf zhOlD5Oa(|ZUrW~4NBBK{F|uS-JS^Q%l^e3f7)|S8v$mL(`5A(%pl!cUJY3&WzXcJQFmnwX(R z1O+#u)lGA5lbB91{mK63>r52?GaiORXyxmH0!(phOPDJ1@De`jP$VF} zyB!OCxZ|LCsvX1k(DO6Tiq*E@=W{4xC1CknYhr6O>|htBme%{V?YLG9>a5nE?84Gt z3gfV3_*g9NT)?k`4l>}@S~A?y$^$cwibo~BYHrMfvpwGRw-+p`n3yc`5AEzS^afvl zBl@;$t2oC~`W94onsD^pQ!A%}Xju?7>Zc2B9iPymbl6YaQ%|!Z#@7-B<91WDXOjF8UDu z->P4U0%{{9Ox6%63kWdo7=5g+$cw|~^OS_|rCX`NW)OE`+Es${HcAc-hY$<0eYxp8 z9t!mvKF2S`|4)Kru&ZKJ+MdlnKd~0g`vp6gW3U?zRP^O$M*MgSP`?*8F3q!l?*4bz zntp7DjxEt$cHl!}P2GP)g=Lz_w&|#i$8OInK2K+uS!U)f6kTw}xjnSwyU9}!Q1|fs zxAt)$htufF*o{*Q)tgACFM4ab1(iN7hYpj4BYt!j`NSbImNK&2+^E^bOi!@4H) z{nwaKTP3+6@g|97f+b@N!d`ZN+2$;Z{&;!JfvhvelwGj7;0`s*m zcU&ogt+2I%2oxUGZ+&*{ ziOM`@wi@h&m~2@OPO@^Gyu)A1YJU^)64z9xi_MfhK6$&G4zqh=Mi)rZc^@?;*`cR3 zD}R(@6A5&BQWdnSw-7#m0V#-I`Ks1&WZ6Eu_lYmX@;zLZ(>T5?Rast$WcF3AlWfhg z)nQ{+e+N^|29Oq3>siH0 z-{>1ZC_teb%Sse4%J%zX->ZYj=k5*i)bU<$YvklEZ@1tVy=);tLtH zCW=QBQ@xvR?on%hq)?m@gCnmbdPTSWb>XPDG6<=cWrJ0c_fd-O9*5|jD^5t_yzHfj z1oMf_=nCl=*?Pbm|B)T&Fp24&y_{T4KN0Rf-|knpQO>$p&5hFfw46csVP%=S!{Cg;;z(31>J9%+h?5|XKBd>vh_vN>2 zicaN_iTV$(Lyas!$!ngEzQ`N}{6fRppR!)gNjOxKyozA=-;m9Mc0;fu0UtJFXZ4me z5TpPtK+?apaGvJ1Rf)u>^p1uc!3KX2VgYPjQ{?7V@&s8>SO|B1C|rzJGlAIZAK-bi z4G@j{(oY=oxw5DHe@>$mKUTFg$y;_O3VsKxKB7IMi-CgWKw~?SA4WxbBmRZfLD24o!n4Ic`n?X|ZtyFi z!VG{a>~${w$6R54r=Wi$Mjybr>9;v6RZxtt?~gyoDufc4f0bY&lyYa(aa@?+hfsUY) zM?1POTe@~iD((lWx@)`Kj#}=@lBPwF@;mwQ_3%km4JKG{DN@XfDN(hUD}DC_aDSWn zYd~od{u-ktw<+j2qZsMky5?h~iJN74k|By?;Fk*L1abQ`MAU7QRR9gEWpCf6K zplpEgW}>lR95v;h(jgxg5kCK=XosC(H%Wh$KtUOgl!BOYL(d;sOcB@W2t+uZ<%#E9 z)9{hJYSZPUp{nzpoCjJ84 z`dh7rjMa+H@{f{Fanp6pPp}?$?(t6X+!)JRMnJ4eto!o-~AWC^oKqoSj_!L(-Sc+z9yd-rYS% zf62VjPufItBb0owl~YBly8_b8GEGhXW9#u$pao@C@QpfYUd;dgt9mka;kXfjd=ij{U4BXzpVM8^qzvG_S z!SBr8gNg~oewFMOZt#tBHJU?4%r<`gf3XRUGUZ5%b?Pz~-@g3>WJR>`;L~p-*!V1_ zWH*)lT*4X>$*AB-jUL|12eh>#7Hu;3z)pHrOBn$WA87eH97t9Qei0)*eChbw44%{9 zos|sLXP;Jys$+h6s!uYGIN(CabK7Lz(}Cr74dL}mAhxu-;wWGxN0}Z(U+DzFf88pz z@N=8#Es9~2BxXb&MX}&)oDN6vsd9U$tEC9lh@aYN3AP}x+A9=kqqJXW*f_$%^!La_ zr7%k*y&<+66JfIT90T-ZFcT7DAqr~tF3=Mye2%kA-4@6U?Wv@0p8YH-Sy8QCXkl^P zmx-1qBHAcZ9kf6YU3d8@>@Hszf8Ll?y@>tXGFaVaJ|Te%SDHWKBS;9a?qe$R;;AaW z#bE0AA!@|-201~&z)Nhas5uciL7$I6Prw`YllpGmusJ6*m7hrP-2lKb4}OAzgxVcc zomEYaj;r2MS+#>b8D__9qro6L?$`!W8(gChdrGEB;|{;ld~h7B@WJ|te|!tyP~k{8 z^T%uS=yE62c2<)q751M*1Z4*sX)uS3!T|9)jR&TRe_z;&v%Uge2Yrwk49~v8%7p<5 zaPO|h=_qhjz@5TSKU^g8AT5-nk6 z?oMQqZo6VAVEKkfcO?658M7nI*N{3Dho)nJg`@gaAc6U9f97=af1CH^Wu29uGHrtJ{t0Iz-#~rU~KX?sYzx)s%r-FQ(7qu zPlRV;Y6JWeBsE`bN84&V0#i;&J`L*jOR=~_Nnd9m=*;;Ze-W5exPoFPcUP%)k4|QK zBd`YE!?ZxFnk}K?hx|{2g69=><1uNFN08U}y%k*=9Mfu}%Y)jH1TCgxrj#L1;KSJV zi7|wmA2em;kTu%&3*pI}QOz{a%cag|xY%Qw0i~Y@&pAp^^pG$V2@+95O=_o?5>)U~ z_9ZWt)dGiie=tXyW|;dAW+!QeXr*H`cgxAf2~8Rs!Ka)1*?M59AJ(5dI4Cotp3em= z{Yl2Z0d<3W?fue~x@|f}i@6>x`l1uI4BJaHOd0M{3+ne~C3G#+E>R*u;^E2{OEaJCWF1#7e|QD4Li=*8Mk$kh<-NJP%?Jh* zC|_L-kWec)xR>~>;wrKYD`k<22FK2kR5AbB_`IcOgN3hI$Wb0O+(H#8jAGGfhLG|J ze%@zUZ2^ zqikYxX09rZ6;Pp^;sf!&zQ=90rw!FGBCh8)EMT;#K&JP8X`tSpiBUauHMyBZHeuKY zu)9`?)w;gz9D6<2ie*C6<8+{jbAbtOzu-g}e>7$;H*b`U>&>dY+Bd}PBEOtw2BK=P z#0d=n?Mp2g7UT0V%5V#s>7mnn4BeF3?GNStYdFWrNEMlTX1&;K4UlY<5r zqd|}h=h0Q2g~ENC&&yZ5C!T2M5ZS;4>&NRa^`cqD52sjXm+7lMsO5s*8Kh)G`Xh%6 zf8hA4CY^4{H_5HzV_jAE11drhDlC-Du{Qd$J zntgE7@CCC+m|Gi@7_K9lyzWx@B!@`sBBqB$CjlwR8-0XYmp<`^Drq;&6k-I}B`YPN z@o$Z zp_0;h9+Gn?XjmH7dz8?s*Z)>l2^t$eq#}}aQR{6?gL(whs-7$=4OAvo{5zNaJ{B&x z(o;4EbuI1iI_=6Wosr+{Yw{zW-tuai)PRBgmckvx7x|9av78y z9ndr(jFp%H`Vvu9Z2>Y*t|m`0e^mBHpqs*=krb-IB}MttR9;^DpdfkVsMg=-8bEy| z2|o$YSNen(@>g&X+y*}bLKp{qqu;EZ?fTw#*64#cs398Q|3;6xj~pl7Tebc=Jk}d- zwdlIqw@4+9BZ8)|YXBoz&AqI;mxR}V7=YY9>IUE3Rg2X91@byazW30De@8T(G)y8) z<_JBBhmkgY!4(^X$-;O{7Ne1N^Ot8Tm9bV*Be+@A=;1Zm^p#tEoOBxieK>b+IXX&` z$KltEH>_FPX=VrY7i%y?3((=k@8JqE;0my?>~s|p>5*evv@zq2l~Uh7=R6!(52qS4 zKeOxe?F+i>`+#QotI)F6guv@;;7F-uLx^6@5?Va zr@}gq=O#~J#(Z;BURJucN1KH-rCLh2krT@9t*FIxG*~C>*E(jzG{Un`p~47}6Z*B> zW#4A4gQ<$>eqRKVME#=3Jo_Vvt@Om6!7J$_24T%_lprfwP28grf1Ysn#>Q0%)p0&; z+QTZ?{dyHIJ=+a&C`Q94rt4~sP^d9%HzOz1dr|lT-@txMJ;T>TGxV8AmB+84Nn-?~ zYJ>c`%3k%TvNrRapZ79!j39}Kc3WcY$1vMaYup>iJ%AHCfWX&q-C<-9kj1gJ@o6i? z-_i`k6Puu^f1aPPf3SZ{m<3C-gFL&cPgyBuCgHm9eh~);HADWqA!#t~Dzye=akuV}Zvw;sxZme;U~Z z`LwP+PB$YMk40oSBf8HG~gA(0!qxr)TEg8kCo)0Hq3w84E^xOcb* zGI|g;{PJLKPxg}ID#&z~-7(#&V&rs?+=_ux4W*343EGU401gav>V9O6NjD$}~py=*6^S9r|}U3L%zjH z{2EYn8k#zZt!v^4dJ8kd6sn#gx>K>5v8JwN@dWuytV}f42Ah4hwaYW{s5T|y_&2_E zJ^EJ(opngtY~9-A!iLkH6VgHoFo$IM0kgw^s}0oxph_tL1iHh`pPfyB^pM0 zkpo4p_AH=k^ID_J%mPgEk-t|zt6^BQ(IJ{$NZ_-}p+!V`PxhMPs6;ZU{6*cF~f5@65 zk-GZbH}OqHcVBFH7k5M3v|#hTz7aNp?>Nh|s8}8~cE2traY7il2Mrx#wW;Yl?5r)CO44 zZCQ8^w0Wuu1161~&3tTXQl83daG~6C3XS^S;nFPf<@6_&R%c8?t)zf3%0%;SUp;CLDBN;FJYO%+jL5Tpur8tFEfd zZ;e(XZXqve%bN|qzMI zSuD+re$3E3l$b8uof;cLSM{R zc5l%l)_nCp-!Ous>C;co@LvA{e`3H^-YrLF=LW#Lf=_lOh4VPROEJ3K%Q2wYUH327 zQ(K8fNgLgMn@6?`>Zb$p*Bhyh&nD>lyA^(z>zMM*?IXo;KbydD950ahuNTSzLyNo& z&ggC^2sgBh;K%)U4Pv0`i)^>|s=%qr5x-~C+NIP?&+ldAa6xwhH>Ll1f70x|XHCS| z4q4kWC_jQBFyz&%H&V^?K<{aqo_gkdLsr?SMDPsya9h|OnK4C`ZJ&b4he{-pz{{C9 zOpLer&ZG|)8Kc*k#S@61SyGi6*Ou1)5(&>bd7Gny9Oq?_b-S6Ky@f)cJL{^w)o9>+ z#r_QF&lE4NyitAEo?snVf4J$929@Of-10Pn>g{_hh|a z@l%(}EtttO`-4@>PiJJb?h25lI3Rj_K%5{mP$!^3R<6Dmou{0gR152z*kyk@f+uKk zeWS$SF^PxkK*t4qckIRcPp%&VWT;??4v-7-2J}$wBiiS)X^ejqf4~9m_U=Xj*wHiz zo^e3A#tH;-LVej+ku6??-H78Efg=#HM&ArxjFkH-ln?$8#Y;Wy*XV~;GsUq>niz3E=-gI`0H%DXk`lCrONtHQ7kAvwUMuXXZ-GoohbXO!kbHf24y zE|m+v8bBNR4Od3ow$`i{V@s1U=~PHRWgWEfUiX4M zF#QzSq{p(U*q;}4M`7#7)?3eq%dV?l%XY!uvTqUnzX1j%_@&rG z0X_a!H|9Ura73{xJrU-#Q&Q{tq{02cGY-_!>^8Yme@-u_N$>sOBYmYP`UAKV=QzN2 zg9kkF6eirhkLR%(&x%7G#-v}{j*i(elL}4%OlXs0# z84{@q0{w8y&xX#bNPm+mv+Ga|4Kz)rl?M&X?dSzaS{zbvoAV!$+BEpBD1zV2tojCY zu%Plce<$Z1ZbfPokrQq0cAr}wCWX}pSU7GI*EV6Tc>G9li1)wfrat*dUQmzW>$)j{ zh5=knnvbZ_)SDrM4Dy&E{A>Y%yhoO4U^(}QR5w_DARA=!p?OWW9lia(7YQL@k;K5I zHW;X<2tU_@k^^rn*IJBxKdtmFZeqy$M$_s3e{k5tf-Sx>1vdGa6s4#F&RF~;I#4rB znDWJtG}IyWsE*eoaOKQfKc^Z9vp==(P{pF;kd2(L67k=H*OYCfj5L;DVRkHP1)oBB z2UjS&4_%awmE`d8wyh+pAtA&6f*Gz!J;{J8Bw`KV$)7o+o2P{lr723$v(A*hO-cL8 zfBl0BmpLHCiBc@OiQ@$Fd7M|9*@0=wOXP1}Ao|2rj3_ zc-mzxk5C0duGjIms7jy<@(sAiXL*82e=LnoU}uAr)QEkaX^=&)&S!jtz<1mpm)$V( zoXrI~O}%jsJ3rx<`Dv@&G5*bPa+*a;GVDeP+2enOG>Q8gv zye{YOz&^qYq5%+Y9Mc_e4rtpygT)A>mDmNIxFWhXr(O2~0X2)6O+f1|L$_`0f4m5H zXEZIM&>;Gij_ZQCHh6X#-a)ORW9F43vb$?u{!@=!p)X3~u7xJDy(_V{$Q8auiT65A zXlczE8R|5Uov<{?3$_+8;uxjj*^870wDFf60&i%m_AA!73`#S}d}MJ7C@$V@PmEztSLz9W9{Q z_J>~2;z|S2jk|S6{ibqD@FO9mK<|r&^R)g0cagfMnK+bd(Z8_bt7GKzPPWR$<00Ar zGja5wd~-Qvymb!}OAU$nmqS}Ni*F_uuZo@SXhCdY$PSH$hbk{^{2X ztPXR`*ZJqkyXn^CO4vtV`wqamyDdc8xKRY=+B-=!Xp)Hh)v-?7I+%!ROYl?O`TmFQ%AdVd_q4L(R z>OQwduC8}S9q8VmLRwz5JFWS1JDRD`N?jfK#F^8r(4FZws6LD1;>A~e^<@VpNq1My z8OJB4EL&C<63%W?e@<_ry(vCeSWdSzfZd)a?&dVJ+uW)Bmm_!-Lq(dOo~Nykw2)4X zILvwZ>i?be=k`lyi5<#$tMQC)PTrVm(NvXQ<>AC)kyuaHB>L%-ZXjg{6BtgSG+AcE zHC;x2n`3!Khi0$fMR|TDa9L`rDXFS;rp|U#Xe|FMmx<>9f8F9tO}N~4vUxvZ66Y~J z)?TKgKZf8A_HHCyTrT0HlVQ%h_#_VYUrCn$$5R2=0l`1{!0#W;#2SLJkI09IXZAtc zU{>I4yMS%8pIof_tOe|z0Ej6}$!Ch;_Y$O{RcCyjE< zfX2JUXD^8gDRnf5FcygvUJjTs{5PHD5L_MUdW^ZIKd+)Pf~(a1S+;z?!)I$J`mxhga`yj zWE9;&e@UmZbUsq;nwHc?{O z{7mAs)F*jOQxk}kIIcDzvJ(sr_$lX<LT4zuXbZ(}StVf69Mr^8dxY{xTD%@p>=-y2z|(At~84 zy0qN&3Tn1F{~|cOxzWduw#8Tqw>l)|hY9=02f$`)Py{i{$d62b;sdB*&(>9`2d z%yfZ8vsYJu4cRF@>layTmf~xjiwQk!#gRK?1BYnn$8LetyR?C&k=WiYojyfti<1?o zf36VwKO;BTTi@P*j?0Xeg0?P5!NI4&Mg)q`^@Gsfp2z2Sv_@Ra9_q(mtg*SvDVzK= zP)VfWnod`vAZN|nBK7=bE+VqWi$1*zZH!~h*K=3wq@wU>^4;HM8sJCRXcRX)`PRHh zg_dsVrALhI+ZGk!>N??@{g^CR#ajd;e;_duxERX#Anhzf3Twepwxy@Ea$_We6QZ;~ zV=X6cuR`+z9Usc1e7ne3yGfjBqk_OE&w$pk3URe!$S}&)9FoDj7s;&s zZtSdo-!5+fOb3g$bThrNj?-24>bF_FjmsB9Ctf(o-3!{op@xC097vnOi)I@se^QT;6N2frcCo79W6UJ1B|!n>gaDn?{oBUu zK;Gujicezb=uw^EA(2-Mp5j_dnWD{-(K4Nhj=5uMM*xL5;3?2VYX0pOyo#2xEY|Sa z8zEY?X0c5Kpd`BtybMEdXo$a@fA>w>xCFcRtjDCYiAjT_9@J)4YHY8N-F#7lLVn2p z4755Y|2CW}fM(JuB!V8Dn z8}*iu7Zv_Ma89S9Vsb#}f8U6_7o6>pF#5Vi9W*+i*53{IpIK(9py7HkfH1P|fo&@k z*D8SL4T0*O%?X2F;vC%_51R4RsQ0`d<5`DNUIQN~b-EhNd8y@zHuBGwJq>=Jf6nv= ztHFAvIke*j5b<{W?CcGt9V$aaXbWs%K-_-t809&=+6~Nw9Jf+!e;XwH*q0U~S5@fd z%?+f*)XlV8x0Uan-E-zE!ZGmgY)J)u&8zc?+cC}_`#$2=a!^v@Q!>cX{0K*rz_T?f z8&wJz#mIqDr4(zi27)^FdMUvPNdSH$Ith>@@a>~FsLP+uspqDW);p+q{;`;J^f?6R zJRsGd6e*D83+;5te-w)Bj8$-q&H>D%$~Tr)FfakQlM@V)y5lWmVrY$JJJCT z1g<)6mDh1Mp8zy#BBL(K!0Jjb8Wdo_{0xDnHEm9&L`<9g8vg)EOTK! zG>VP^)&ZnbTY<2tQq#_c9@h@xL;3HgkS{{k$oO|dB2u$0Pza zcf6)~S;+ucsYVWF!#O*lM;=wNgFAv{-+~Mg1SLD*f3#S>pp!Jhi|23)%X{GZg}mHl z(aq!;ft=@_EN@&?G*^tl=x-8%Z-Z>mlNgArcj$~WlY1QOgzr_vQ(D59Tbso?NyGWi zlO0Z2=U^tGkRuef35p%qx+Z41 z9wB&ZKr*iq=0Y@0(gb4(>Q*(12}Hbr)BnS6nefwuCc2q5&oSGlM?IPabnH!^6eMPh zLsmkfkktfnn@O5?cmjqF=kTqvvL_RFc$Esnf7j=S5e=SQ({ntD3+T$RRnqv#^*Wh7 zOIIA$z{Q(fJtk6a1($EBB7vee z6xDEKX+f2z?fdD8GSLS$cyGC3@j#GzY1aH}eMj));lSBPy&+PRwVF1l9|#9qf6L2E z{PMTdQ%5VwRw1C=@h?}sAe$UCGYX?e-3BRe9)A?0Dx;t2%Xu0RaygE>1nIK<7{FUw zy8+S^wvN*^W9&XqV;nC6q0z+_H_G2ZD@SXtpD2J8is#KTb<0siEGh?>o?(h<9oJ0VJR?b0-9(N%o=No05sX zt{@{uiH5%*Q`5eogl%@wL{NrK>E5N}C7WxA+y)mD2C1D^IxVFhJji;dpPn1ssxoLs z*u_5l^@hhDdXUIo&_T0uuskPsKwUoZ`HKLua})FUC!V3-(;#*C9L0-#7lhj@l$|t9^PSgryCgmfW|&(KCP>X;J=hvgv1~MnzMG?|7V_nF@W{X56-~vsq z9dw;T9uQIM(QeyeXa||9f|ytAiQzjygwK2Iun3)%fwMtlr+P2@U5ner5niM88Gk?5 zSds<&K_CNaKGP^`f{%)2h>xG%-&J{EVsKS`YrQ*cJ>9H$QTBZge*~EG|0)UfBdUbe zAh~_iCEPw5smMF{rXCUjS5iD?WlkcTOCZb@fwfaXi4~@w7dF6;#~$X-cZwUT5%Ecm zf|>RZCzwK_fq3`-fN2h(z@}kkala3xugJn#B^_Ub_}Q7sZBSU4g4+#z$=9Y!=55`& z1{Z=iwlpR%G0P+aJH@XkcLJ?j-9VoGF{ z>Kr_vQk(5r)x8t@2z*t~VMj&O?+v@E&5`XV{kNHN0~9PzxmJ3PcDG+A!1+K7fdH%W8((Y z0vn(l4KvvTe+14b?02s+BS>6{Sng6|{U8@^s<-W4d4aZe-;d}#aa5wSAjxk0gSR)n zS+s)%3z7243V`H8WPLDP5VLp)CMGcOKC6UfcM4x`1*c2H3a*uBW>IjE=(H^fB6!9Z zs|lIA5Swd84vFvzKmhv&{m0jABy(N^04Tqo6QKk#e_*3!TA}m$Pi@=dXQ&2dd|d1F&>-8wA{f8M{)vMFOm) z!~Ktf3ufYxG4`U6j)>hxOrv#3OSYYW2(w=LCM|M0TVl6L8el2) zfAb26-roY`iI~>uvZCYVFzKlI?}kFnBVAoShB~GT_*u>S&}^fOL?I1i51X}TixXZk zp`7-(h~^>#+$2BI3Y>J4urKkRJ5tm7sw#$FeuoP9gep*c#uNkZXNUgKo4mT?;bJqZ zJamNV*_ITT$4Zl{kbk|FqM3&b2tGd|f4HXT$dVqrnk|fca2vNVDa|P|2||s zLbkj=2SAbGA#_oU6P<0htIY_fjYWxK={ajQhtQS;_YHQSvFJDhBG4NY)gthXT{5g> z8F8l~QN3$-E*tbxLdaNDE=%GZQ`CpGWJ{mVHJX6~BwXG=4&Ka6LlxP2q~ZF1f3TrX z9%u=8yOh87$dc~Pa0fMyj=g44Jc5ZU3cNIAuc4m9c*@8L^xb7|V{s|r!W`VaLgC#) zy}2Gr@WDPrppsRyy)sqfqx4FqdtuQXzp4G_yG8+txd$YlEcvOO=0mFa<^K*&;p~|H zoolpD8A`o&9m}f&P7~{CdCa9${71Vq<@quE!?!c?Wn1nB z7Y`9}H!5N$samGajmzTWrAOUZ7Z>5S=;V`-Kt~%|7v`o^_)pA6E(1#1f3Vff*GE6t zH%FvcXu$)iY6oy1VLRWr6)3!G^kuw9^0H!^#i{BvR(5DO{$e~@Eb@>8htr;bE4`@i ze%+7Rt3MJbPoXh+mw&Tnu$~#=1Ld4Y+ENyfEbu+)u~`UP2RU^LJz@{%IQA3f0IC~u z!^x$LCFDH$TA>=BXCSH;e?A9}?b3teQYfMm)yy@!8R(=M3O6&d87nckgMAqlD;YIM)RZxrCcNg>+4^HQ~<>FODLuCwOGV9+Bx%d~u}d)W+h3i-U>i2}|$5$^>m*w0c#-N+k(Wa;v6AFTR;5yY=si*lv z^hM3{foJ9Zw>b2nqDZ}`fG%OOUEqF%1rbg;r^ld%c1^pCH#b&6#Z2jrga~mBUc=x; zjMJu6+*9on=6-@%(n68|s%)>;E-R4pKz{wwb&OsJe~8If8pv2LxSACxfM@9_ zr}8_=e=9BDX360cl6`E9gzuVhOw9qll1N7XBh^|oq2Al4^uyF$o{dec13RJ)iy8_$ zwkLpbtZ=1f&@q_PMVoq>;~SVU4PUt?x|ud!&)ZDQ`=TML-T;k?l#!`q{m*c+e=9`jf}Z7w@_X}nnQ2CPsHYIYrnAuQ zuY}*`2?kLL#^t%XA_v5Hj@`V88Y64g+t+=?jPt)weOJp9p?uT)T1dRRG3i?9shsSa?zc(p;;8ACZ1%YV%etBz){2O ze+H37ob>dt)*0v!;X>j^Gb58phhe=Y#HW(NOET$w_CcmYAYTN!|plqN}Ftb&P_ zFAT5^;P=nD2nn&^W2@TKAGwAJ*Zc_2g@H3lmA#^tPKe9Bwu!Cau(|(qIaYQMv^vUb zqH@I23~7e#g2389qZHYUcJxA5K-gF~T~U&x{z6yG<_`^2)OSuA(geR?%StsCe>@BI z-5Y(?nw*BzT-;I?KTf~&9djh;PfqfC-d!gu4&8ZUnB>G}&}G<@ee2K(ljNL}RDhon zLP4~TjHpS-*X!f|8A5&X?w`TGxw`%7zrV0!e`s{z?)kn+!V94 z6xUhzaqftC;;~Hn0-pno6zLIRF3g)u#pjpkLu#vt)Tv;|MH+`SyAz{`f8<>c#LZT` zN#iFB_NQVp+rKZFMG5e~e^V|h>g^!pEGhQT*xB`}Lp)J)GUm>+ty+2W8y$sIEg)ub z&Hb!a%i9}skNEi~GQS?Jp^9WTB)-CI&E>94iZa$`bMG8fRKZi*;;2FgH-UJL6lw>k z1P;5~i5%m+)!OXg$hlu}e`)k$EQx3^(*H19RdkS$n@OX(r5b0MVl8)WY3oIkq~hzz z_<)gR@fjs!wTlJu&TeTOTA8l;W4u|Pz8o?=bl_^5x<|cs0$PH`@eY-N$j`noSW|I< zI~2PJkG+^0mUDBd3|nWhQ&BllzI+CfW2u&2JOs8aEX0z)OkRIKe=u9V26Oq5Zd3lw zhexsS);SbCJ&y4R;IiM)?sDC<+{0*zl->0Ciz5jRgR9kSABE!19yShoID4f7kfkYm zR=g&A|EEb=1lq&+2ZL*xFdeo1@TlmVByx@sh}VB#Ux_#hi4)-&_Ljo4;Vx+Hh8w*~ zK65QoHMxq+JJf3%f823hREUWL0Nv#0$sRxOFyKo@>2N(2Xvo zI+GOJSrC*2nVb39IbC?b_DQ*7TC%nZcTf_+cyI~IyZ7&Ts|PhJLOD87h4;?-EW}8B zm|pZRV%D8XqTwF?jlMX9GNDm4AxrDh;b>!MSru8apU=fke|SOTQfw)ToT*a%tEQE1 zgjv^$Ebrz&7j5SONyxzzip<)Hn{bH^$g~CIyU}9&kb7 zhcE<~k?KMrln{bijZLOuB73Ma_>D;Ekc=BwqP^bLn~h$)5Oa*|=6c%gN2+v9FN$uu zBdZv%#J=Sjf8DI&TP$YSwh+oT<+Q9Ano;|%gE!cC79Wqk3MRvR-9Wwdys@^nbFBDc z?ONEtP5tvAa*wb z!*~nZgGA>Tm%p-GHV&ON?w7^k$Td}$(E&#&YkpH1FV~=LhGQ8Jq!5x3i$g`qRt5=-W>*k{(1f8DRL2*A!GC1I)1x|_eYm&37t4xN88 z4ra*~3psEq$C7#K{hkU(RNfo07qR9wVkU2%E*8;c^`{$T(b9CFwELZqPKv}#6fz`i zRpisOiMmhW#Aj~N5*rJF2HQRuvho@itHKfEyfGV;S8|YIRT|qYf>j{uo+U ze{&V@n6m@9tZ#)A8O<_$(i>-Icg&2-W5!w7b0dq4cHWWOM=J-?T?IvaC?QHZJ}K&@ zJrj`RmeF8pDDM5xz^dmj8LQyIj2wN>(}tnq4}t)yXRJe|$CrsZ`MOiB9|2gaAa>Nn z(oy1XJl^T-LKl6wl44g8DV!%U{f!H4e+gY#<%u&!dO=yi_+D0TOQy2rJ3Cc3tapjH zGcg&$N9X&)H`8Q;Us12n?fEs_FNxoywx;WNEQ0N+G9u(_a_rwtHoh1&aBj!jL|pX2 zbE}-4bV0V>`|0e*LbwZ!06{uknZG7l5(4MY$fxTSb4=z}x8E~99wMBU0ZbZ7f0=3% z>r*Y)hs2G8tLi3>7SEZ)#%edIf-S}kez z-siH+DW*FqjkhoianS#Tq}gK!e-Bsyz~heL8JiAhredrM-c#m)Gap(=E1lpJGL4YP8W`GaBQcgi?wzxu>cOBq}I)`#a&K13B8nBa1}^ zf4D+_?;k?5SdNzA5(sy|bp_mv8J_J$_ZN1nWE%6?P9@8@MArUhkpNmof1gHQ%{wjO zsw{TH5qI?Ej%!hve3?2Hd(Wzv+_)`W5!`l3rFe>SS1K#qFUqIa=!a}U$ZLogOjv=B zWJRY}MA6tnYLl!vCyu-p+LwL(8FAy2h$Q?!Xyf@bfxb4LkHKJjNOCIlCuXqC(Uq2K zLsU!C#8z6eu$p@qALA$4f8IL|6_c@Lh{hh6jgXH!<+X__=|V6x+O_+op(R}7mf2e~`hdpWuHssFP8-T|C{wg@f5Hj~PYm0AII&1< z#La^1J^a3ja1qv{AFzp#w8<{=O#jwK5whaZfeqH>8}bK4mCGb9`XJA%QB zhZH1s)}XQ4pUnlZ3|^^|ES!1T$BTsUr>Usr;9(@uXM3k}I0z-h&v@GdRTOrU;sw)(L!siX~#GlFZKfka^ zt~$e`KIk$#CKd^LnHI&cBhi6eA=NA6ZRgVi(%Zd&sNAOT`_^AZVDvOU&$@0n^S#_* zMOc@;OhI3T_h1LVU8kFfKfvRs8p16RW#3u#o)Le08+?Q$f1CVT6@G+i!!g+Iz_JDz zrr_@_*N(gVjzqKr6B4}#Do0zt=@b8~6n&zzqO(0kY`_41jUTtG$(vbquC(jUFQ%>Z z-Fk|jLkWi3IQ|ZVMEDM-*u9Gd%RYx+;FESPxH7*N*+dPhb56^Pf^ZETd8?u!Z+$%@ zSV-~Og+=SWf2sx9TmM$u+)pO~EicD$Wz&l<{DyVQI(G(jeo93f>5r)PcAPMUfE(V{ z?|!M{VlUOFqg?gsp|<3Bq&5dCWXx;pb4UBOQzp5xorV;_(Td4phJ(GeVi(Q(E{nf! zY|ttQd6|tBa=I;dyK;`~GU)7Qn>)CaHvpUC345;&f9wLk>&4D5$&EMiWb_H;e66Yt zyW$lE=Z^z#PEpD=Kd~)Gs)&TPWOJiTaP(=8b9^3=G~q#dQZf_!rkLL?sj#sE$6~fn zH{rkwOG0~RE#={Hmz!*>e<*BMn@c`-24v5*GZrty7bD>ib6eTDuDj0CxKE_DqM$=e zif8IQe_npJ|M8&eTMH~5QM5&VAjexjgY{NGWD|VDlxB#QaJ!8K~9K2)xL1L0t8>65!83O^<*(`5MDi@ ze-1x^qPqFG5LKQ!;1;X`2@IJ-iwPHL>SKq&?3LRZ`d3;&?I?eg)~{BYM=d1g5UIfu zxdrgfATu-mlDB8KkDyV|c*G#iMA^ABxE_f6y4H|^a4x$_X66j-&ZhU02?MJAc5D=q znnnw2Z=Or(jbNQyov-z3WJXflAV%DQe|lT#%XFd+7d6XW-Rk_?!HG>i5mko%i&1nc zGS3{H3ZgoU{=64hyO_o?h7KW80vwYZq7!zrdrKCgZ5bJU(mmtpC(5TxrUKtbu3t9D zj9$uG^C!^!Vn=7;J`4^k3xb~rUGK>1Uv@|05$-oF0fzQ*LACj|0Y2vl>OVv z8(b}^3W3<@Mv?;T(8rGEC|V>fC)&<{f8tNF+E}b${18Ctr&Rt~mU7Nx=v||tBL#mi z-iT<}u_B@4gSl-*wOdQ})%mPRfAgh^#4LKTbI?m`>dT?sNqA;{aF4`KRU_!1IQCa* z$*wco(eA(zm*TURz*N-oFQ+{gy_Q63?kxy`DHN3{i)pbnXPK=eO$OcQ8p0bX%wtaJ zHqB0e@WCz&r*reJfOKeW-G?t8c|D+nQdr&6le?{G+Y1lG*?L6Pr73t7f6Amy>?%5D zcUC%fL{9OM`2)ax4Nc!L9=VC|r4%7jFBC}Jc|*i)f@Ms;G6wq5vpbhJKzl9P_|gN)V24)raV)`g>E>`5jJ>&Zt^lJBT3 z5fZ}q07F2$zirEbzry~+m5t2_>wnU517zkUX#)IXNG}x%oLx!Di0E=vIL)Pzbfv}$ zeT(MoF80zAYa;A&iOc_}m(1Cwy*M^S1EYjBZl@8kjj5%1iPZ0PQ*>=08;2r1W}68; zcH4s0wLa2xI%o7hE{r2|X!a__{wUNC&JEAthno5RO2es&AemqTk*!U_JAc0{$ao#n zpk1VEe21uBMo8kjg=BM5JT8!#Rm4;bYr?}EklIa?RDwbdu<5fGI_s0S&-v(vZtMn6 z%;P2g-7?dUPvV%{;lja4T%MY%Wd8naQ> z&$v(muf0Ks1b3|k4w6$y+yzt3#3V#ub3mIDZ~C20V6QJToMnYs$l!u4qT3u! z(Nisj?g%+FdR+z7R)0ENi9rBsUQsu8yP%MRY99K_@>xe=Wr}jQG+cZgW8OQ(B^Ifm z;`K3ouHDv3aI9k}_gf7puv3b5?4%c_dveKqQEfiBj#QGRva8Qt`6(ikGH=g^wvc4I zg%1wHd{Jt*8NZ!GPqMiE4t{*9xZ2P$*WeTjy9l4a!XKOCl7AyWiDLn$5Qa1hbn!Ax zNm!_ku3SAY+ApE*QnsAjovp%`Rq|`PpjG`8M1pT*J7^SD=O&ph#V`G|+Yc3@oRYlp zsb+NLfL!iNic77R?73WqoAR^MxH3Cy)@WBVly4pUNa_>lA|BfA=UW9 zT2vmGG3`$4J5&;Z!4c)-b7?Mx0!|s-*_ITFs)ufl^4vDKO>A2N^KKxhcj)# z-bTE$88<}<$?P6{_4C@Rq`PYUrEa?|@KkXl7=!25x3Brw37#7OCY4?9;Ne2*2EeiM zRLBbum1o^|^bsZGXQJY5nAPBBdy7^$C`+XY#8Tk|oPS}7Yd722!@yNXZYRmNHiW0? zsKG|Tth`g1JruJ@##lwF!%&wRf9Hw6(i*z4a~z+@#GH;briRQW-w8vpiZ$N9AHn=EL%(r`z+1|CM-Tqi8J$K;{1`{Slbs!74`zu=o3xYE9uZ;R(jH|#!qP5#S-^PwcFe8sG zG6&jy!WEv1q0mjAkgiCVcEHQF)-c4qwXs_qe1FSlMEz_d#q^>BFm&Tz?1>@^;x~yb z9TuJU+H}cO*5m7&k9)YF7!kemT<^(zM9}@@8;z*X25B2SHC^#g4@Eu z0;Qd}XD+;?dRV4JE{WUcci|5pP_*I0$2eA}akyh(&uo*!G^E{`N&yg*ajWUyry0`O zvVZkA0;O!`XmU$B^T~|inZqJ?-U(tI68wcYt=+fY{xVV$aaC$*A5`y@PN{@_e-?I_ zxaP-@EMaZt7BEp8;Xf<0b#>6@`ZrO5|7^RX0F~?7IZC7%b7luWhA{)zqIopWV4sJh z2+$=Cc5D%wd^SIr1`x_tHN}Wl^}|Mj$A5rAJU?3g73n2;4?PaiNrpE~p3qKW~U zZ_)T0viPHusim@|dV*^5xhWx?4}T;G;;53o_2JwUIsk&V4a3A5Uxnqx@mb36h7G;U z0Urn+HhF-`BmfZk2bw%9xAMO73;D_{IMOiYpvR1)jiC-s z5YlqxuA!44CxE*qwH^}PkE`W&S>b7j=x>2KQLGcPK<}NB>lqt-yJr#gyMMItn6`Jr zDboHA4fT&sDXIH|*7@$DbVPIo`i85yPf877n@i~6Qa*4088;ske&;eFiT(rWp(sH_ zuiXC8<~G#$guSmTtE!p-Pg5|-6kQD@iiuy2rR=$Kgq$&KXNI)IV%9Hm@cO948;0s) z{sHLPSJ9ijMi`0cWg_0}e}8HxTQsaVz!8}roQGhCX1i2nCze~% z;B=l%(JXmFA+0fcaHXNWnI9rr23vS!rb`4&)PIQG+zU$@X`$8B zxmiX+fR!Y9XJ8s20P^l2CQ5_qi5Ozgazc~~N*lz8nLZ6g0Q$lK>=c4h8biTm zs-kd|^Z4iBBe#sqD4aHW`6w=dhbj16E{Hj3wn1wBR5C;(!ctK3N^DTpw{Mkk_TwtlSy2AMfYwd{$-LhM_a%L z&wD!@&tvJ|zxFsz;xK&e7DBqD5a{K7H50R&M|x%!L$ui*XkYiqW>bg5f7_9ck%-;- zGCQ)()Gb1ysc*v2m^S@?MC_ca&gWf#k5A*G@qdWhvp>}7tbe1HD2K!X&HT$3bUBY? zbey3(j**e>P&LD}0UAc<_YaQ9I_7XUP$Wu~YVUw=3<`z-PbPOAAgK#?y$+l_KM@Ty zZ+6bQ*r7yvzYinxZd=ivkw0}ut=`&zvD!QW>U z%8p3h=+-+7_wVmj!Oagh-3JwPl(3?^_)tcty$+GMjDMB?1N+U~O~BuBhm((aXH|)* z`v^+kPr#31X4_c30k__)xajtqL%#klecFS(6hdE|Km|5wB)+GZH51B^vSk11qHT0% z+^+F9zqN#S?uH>8rNNvj#>}m8R?5sUl}8)GfM0HlcU&$WVf#S)P6JD4YY%Gm{<{Dx z;8V%TEPuDc3n!-yFv!T+luBMLK<5LW*@Tdzq1pRmo{m&V6)u`PzYX+V-4g+ujDJjt zFk&~sjpxZRTy$ColI%o!YQh1;r0JM zLs5q_2Av6(i{G$d)lNlyCu%~7o!Je3p4^s?1Ai+y*}kVx+kxZ>D&i_byCg2?`Vt?d z)ZouAH<*GCH&CGKBg2@Z0|7U{_EWr$Pi}keH+{jN$R#2wrPJBwf_3radjCm88dp6e zD6phw11ox;5|#g+qnARO-?~3=^lUaS{h#5=$-mKaFh8z+rE`%cdM6G9!+-mNy0d5H zH-Eq1UIEzza==DMJ^-BsCCQR%XCLmz3=KdGvGm-TJbLPKlu<}ND(5$n$FR1+GOqao z8lASUKm)a@FDi3f6Iq9MJQK%hHcH-GGJ^gU2x%RMig#pKtLUz0L~Hpf{=M94wgtWw z8nwpnT|&|@b3FH>n0a?;BT~4UZI`Sglz(KY;>HY7D6=*1v*NndE`Owl4UXSQF6G$| zAdQM=m1*_G>_ZNw<PeC`b0AUkT{vA;B#P?F$NDaEv;(Bt;{@}8%x4NHR1 z#D~L6@zszle$y%Cy1gp(&)}Tn5#%SC#b4&>^uHo;=n}2ifxbf2-XBc*N?Ac$AAi>j z+Huxok^1f_T836-%-zVJGELp-B$_^gzBfjKq*Da&PIyPO^x))}B=*+q3T~TEXjek>H3zbGX z;xg7-`SMcgE%|U+&I4}3ppi=veH)6_lshbK37;tZ+e%D(`zj=syad}Su6<~aS} zq;#4I>kWk4Q0h-ZNWgNT`+uyiNyC2}=a$rNoj1Aap|eDsSK7f9?BC9$kYVtZg4@Gm zl`RO#c~F1Y(DC@qq)4Z1!z_c9N{{)OdPqcZ>zNI8O8Us(6eJwCG5$I;`dr3uWw;Jm z@#0XP#t1rY2#bE<82)z?4rc;^Wym@@lFc`s^d%v{Lqv=pVF=0w+kZuwiSVZd43+#% zg?1)2*3ReLf+F4%l;^X@eTezw`o9EvnX5p>iMi$PS zn8UXfqjA)gjg{@f*EQNy%vGLOF5mON-g{TtCC0ByU}OIFdXUGIzdxI#Yi0aSd>|i| zkzsrTDsEhX5~TZ$Vt*)i+bQ||C2oNVe3o>Nqokh8;WM>xE3s_73s7K)#+geNVTg%I zwkb7YlITH^RS)1v-gc5I33`7@uG0d_A4ADSJ{oUjE?`ogh&87o6tx8AerFe!ebq~K z(*;e-@eLo$vElgN)m{CY=6e%%>Zvk^jRbCSbxh-{TRO+a;(y_7B(Xcz6VQF!Tf8LD z^-ozjokM%j0`%G+)#6@G@7Wh|DTHqA#3K(odg&~VS33Ft#`8aAwzwUfvG|x}ouxQC z)Xk1$$bF|GYv0B+(&QAjM-X+TSj+BJ=J0A5L4qnM@czg5`-0a>##CMOU+}BlZYXR2P z^}1Cpm&?7Tx=U1Cxb9k64y+0KiU_ZjEKHd6O=tW)el4hEMDVGSuXChnWI?-r+#(?M zY2{%fs%=SI8)k54N7&z16%a=;H7;I*QhWEb`yp{`g?|$oxJ&Qo^CbZCXcbeb%DQOg zaA43Ryp9P`kc)wE2)%n7h1b9#;<w#-=#<^ z!0uylgnvE?PjnS?VN=iQ0N^h`PFlLmW?b2?|NI$k-~UV!@%kWug;dNjZC0jN`{?lo zKZMqjhX0&v`--gJ!b-Q9xEKV%HgLq&Iq~{>>!Bt)%LHkI#u*TKjQW)T(zzh#Spxuz zk83_BvQ26#0=B=r!3XYH<@9Y7mj=hw# z4S(c9in6_lptkrk^`Sxai@Mjhe zt+na@ISAtZ?33ce=Whgs(V`)CQ1|dE<|YB-PhoVEyuQ3G&66?5>t~pp8^ci@u3tg# zJnZ{h6r5t`vPb6aQxSCldQpC#kiaW}*nfX&%Sl}NdE}Z^&_b*i@ZLIN8?>APmJ9@# zxHRa~Wp5yPfk!?;zFH0qG1D{YF}yY@=?v2b+N~>3Y^;#OFw*rGCo^i7O>K+xr=4*n ze>hXiAXQj?u^Pqx1A{X_t8?bupujl!~pZKNvB7D$9$7d0Rdyz z{G)NLQZlsakJ>*G;@h0d97{$5V62B!SEaK3eRh5t4Z~jMqWp04j00jABHhP;*114R zH_VTS7WxQkt#3=r@IvVDLl}|HU4L09%I(tdyY$BI+*ucXB1F74dVZg1p5zPH5z3 zpV65{?6r-Brl6aO#|0{e{yZ7Tu5N)JpIvj-H=M)aCi|>u;;Lt5s_{V1rhfu_*=z7F z3w$#|;IukF8PjPrx3Xt#I;@+DAo2oOIW7zp^S>yjj@6Q$qgdUqH2~<2s&KR&h%YM9 zY*TQvv60NawaSa66lUdDfN|kMWopbF078;m3y;Kfg%;_|k{47X=3jW=G&Zj34^BO9 zsM|u{2U!wd<(bSpCj=gv>3^X%bifE0R@4@`(r_D2SRtc!4QdwoVx)f-&eJTME)m=rcc&XApf0L@@E;6J_ffs6Ni|#r?Pnl*nZ;T8oE6E(g2~72eIXu~o#nSdzQjW#F|{0z(7uMw;T=RFF#< zGCBzXQq^-3qG50SMSte0%-a^yez9X1@2;17HCg~}L;;VE+6EM1t@>DOY{l?7cvrZ> zrO>e~Z5oXy!|cU-`mBM=vfjGO(t%{|d7~_^&u(M^;i`-f3w}a!8l(gGZWmz4<}Xur z%PiXs(0_5B_-^xY!}`b`y?42-&Fjz>#7$Jxu_VjSuk@PBN`DH=*C_C0Ch~LT%>tGo zq30ku`?ln$iy7T$#16Nb-f8cT=U!5c;V0bawaVK4c9A9O>ke9&(wGeN)&^<5k;*R8 zuv^(IrIr5pB}h@1@}_0>xNRU~WMNi5Mw=3A5yr^+@@=JHqLK5MIaqRZ9WY63Kh;B8 zF=#%2Kdf`bpntC1Wb51FczS_z)5q}b3?EK^p#!}`U#=u=IWn#d{2U%i!o4^ka&uZ- zXry=jYCwlAJFlcyn@Q4Uexgn=jw127|Dgre&A>9(&>C-91jCjIUv-gTd#Kr8XDvnB zxYr-NPZ4y0p##9+J$D0t2(zL?jJSwLBG}Zhg@4(Bet$XFRaOeTLh_&vDJP@T?Kns< z;x~CKnQLzbpi7~nr#et$>B2Jq@!cFBsD6b98 zKW4kFWR;bA{=E2=(f8)`HQ*P-@&cnk%Z9_Ext51EL+kLq^nU9FX#;uSB+iNh zMdnx;rH=>0E0}JTSaiANtD|mcD7dDGF@Nu68aLhkBZ)`3`_9qDhZF!kW>R>7%Iu|p zKgnVIGLM=J4fg4viK0x44SeE*8PSDx$A+<5C@>mYV((7x;fk_|5q9Xo;+6=v=NW(XOPWbe z9T-Gi-u6MPGr1ddcF|fhCT@XSJXfJJ{bw^>Rc|VFeEDz^2P!hTjUy{wVE_*k8}%Pn zs}R&rn}2PkD*NAVfBwq_rIww%C`|U2_UGJ({9G1f)F_(9 z2chz^@S`)?NqD|eoSLBv_kp54vSN5?LV#;;6>nX6Fv%+hToG4HG9^ z2^X}-9x%!?*!W;@xl}=qA;AH^ts}I|SfWQ6u-*Qjt*5VYS?nT_s8wJtGJh@y6fn}@ z0ry}4C2#r+Z_X8}hl$!&sN@{h<{0c7%el8vKjwBx4-2BU#sr1u!Xh~rsrjnxX^ZO+ zDko7uOFUG3Q{MT5WTox^y%01wxayF+A+Iy@KY(wZav#RdGqLzT)HAG2D0(s1pS4Z! zxG8&OpGE6m$o0oRkKrXNYk#2)xOflK+v=$`%j>T&_t5-i?x;H#UYD7oVxoD#wxHo( zOe-Yf@&rh;$#j3cdBk|tz%`FQF=t#QTu`kBY(fTSk{L*!+u!!0!D$zNqa`YgO!Cwh zPW?C|eRuz_;%6Xpk6Pu9_Ck&SvtOd4*QC5;q|p$}HH{S|7Gq7&ZhvWAwuTF)RPllX z-%(Ep=h8GDuu69>NBrd$8xDNN8!wi~a6XL$c?Ev)<~m)q7w;@pDaMW}XzX|Ocf!T= zxs(z&#VRarbRS(^qrQ zs)5#$v=q`Zj4FWVE`Pq4x7Jz!rSzxNI|b8R#V|QG5B^q&eTa3#6IVmxc}G^qFI3Mx ztc^zW+39IKu;tKqx!{{j`_a7$>2 z(a?SfBF-lCU|qlG>M0+ZIol{{|~S3Al2U&u$ML zF>??wmrcKSB{TYDe>M;96h$7)rjRo|sRUxSK&~S=kx} zrx?nA!WtTWA%a}@!aKdH8DJkExjOFrp-W9jM!w3``x`-|3-3)7CKGuqqX}s(1YyQ; ztiv;%5q`zRq`8(Y%@jZcP6BAzJGZ6?m}t(Y~*BeYs@lO-hSqMB@jN z)OzUP5`V$=>5!U}X>QJ+zNWgJa*06P747VbhQXe3R$<*4wd)mtS!qbGeSvvZNKRsh zdb*NokAnWD25AGdK?YMSpAc|GZ+@#>Z-yX5-TpnqA|p6sbz{!K5kCq;@{W!7$lac(VdH6uP2 z^cKKWn}MazoUQSm2o0rtrcFh70U#nD+F-y(hZi6cMA6^d%KvvaS@rGOO;9OuzX4TW z?8;xB7z;w?1;2pX5S$RTxvoRtO53n5WIJnWWd&r(Z(Cd8nvv}H^2NNKwRQa2J%2j5 z@ilZE--bx}SBS^hhW5s|%XUHBho)z|&X)FfGmEjMHk`U3iZq@r^p?VBbBweO)o^g# z9yR(VrMq-~sWHEoYRYoqvmXeU9=NvW-OF%S9cOvHgal9G&ohiBZ8!qGqAcmU&k$@{ zZQ0&FBL3`LG!wy2B$SDpKH5Zf$A28G6ac}vU2d$$TbDx_G8YG5d4A_tF$#v*dl0;|hIV7U*512?>1_01?zF99_xT(EG2CkIoh2Xj2m<@d(=oT*?cUsbehBin zZ@CxEF;EQN46(Bj7fj31sM5f(8MVcLaNxLKG>LYN7hyd7Elcm!PoMEnA;ZdBP!g_I zUrTONopp(Q0+O`$yKa)6j|OMAsXv|&7wRY~Y@9z9ZBBhR9j?p*(}9i~s3-Fk>$g8V&TGH5XG!nE zIVu=hIWJcFqn!wwX@B;jOGW%paE(A9D(GnbBy67k5h(bj}omo*V!y&G2 zckBuVyi=Bs%W^8Q8ElR(POPKE}=1hgXUed#n9 z3Eplj&>6MWXnoMr*#(e39|F%IEgT{~AFAwUTMEv!WTaw*?BZ!A3K$-D<=viGB>hyaQ zN#o)y5GgKlE)Yf|QY~G#R#~J;b(_Js(DhOp;!AlYFn_{=*(Ap3yfWfQYCTk3#xwuH zBAMmJw#!e+?Wj_@)cm@*p{g>(aF}7tNBSC)0Q07Ni#!FdyCZD^%eb}>FA9N!UF&v% zgC`sh6s@{W)P5D#w^3*c0LT>iRWrV~^okV5#Z>eVF~4m%A>*ZHB}id;=age!`(tl? zmv_keN`F~1Q>F>$Eexe#*t5Uik{4rqQL*H89Z{L@0GHPdm)3t|+)Dq8yK4HtI!gJk=XHGBJL;4PrOCPzwrKUI~onrJA_IVm1L?QkR9eR5r?IAuy#wqQ(Ej`p6KqfgtN8JP#Q<%k{OPlVM^*lwPeSE$U z=OR9glCL7%GIK75zF97veY%L?Pz&Wlet#xGZ|5S|d{!@je&(O8v2mK7x?&|q-=U`R zszYS63D{}R&nX=0w>hbJ;Vit9H0-Efcy9xO$p|S>sEzoc%I*3r-UmhZuXP687ADyd}6^@CR>ux3mGzw6%Sx=Me*nw(n)b$wO3?R1Nf)=v^G1M7oOUHwdk|r`R1G4`G2B2X7et zbVLM7SCyLMVCpC4dW#SfdoQY_=(HaO>5W>meFt#31lRinI9b1mw|tlM0e@i7+zu5D zikhNZMpr00Fxua%ZX-M~cMKQgx1OS!1!9yXJwE7{x`iR3>5fkSXu=|>;eIx6&W8BJ zU^S3AD+oO9%J4`ktO6!DLIpBih4zF35di{dVWD&GWD!21i$Ccw1+4Y&neR$~3?qLT zihzRK28^L)JHY3Wz*6!ng@5DDEom^_ImQCVEYoz%udqOy{=Ss+QvTM=plquIHG+nu zq@ld<~{YDl+dduxaFC?ku`iD5fo&Y=OW#Gh zIiu8yfvyw#H7IXeeH;Y55{d@pllu|o=XxXrWnz4>QF`MUyGM3o!tWIS;gdm|pENie zmHUOTLY!L>o>sRS$$tmX1R-oite$hE^^jsHkH#%LdBck0v{0?`{`F}KoFho}I~ylI z_1FdP{AmdES@0(=Ce>?a3#mfk+n-`Agk0=mwqo}*uFHv_ISAKaOn@xgxVibr`m^hq zVjud|M|%n0F%|w{+s=0cX~|>Sb6~qxO`{grah{FmkH%?5-hb|Z`T@f$?oJ-ewK4f6 z#S1)(a`TiOwL6MjBx*+-frGHRlYOj?DHkd_KQk|E8S%+tY&31X5+6U=VO|{btT%I1 zsn5z&J-D6nkvwSZSoFVcE$jHQ(C*lmpZK$$=M+v;)D^4+{u&%QQ=ET#VYfg!`GJmOsxl4td4{615UL>C zkOMc;g9pkM{c~0e);BtGQbMu?hz9O=fr&N(b9kS6>b#y!2i%?1pE0 zX@AD`wLDs(X_-r0i}a%D5GZT%#au@HJL!>fi@L(#e(gWzyqHGJk)VkoZ5c%zj_Cl2 zge%IqRPlN<8A}$`JTIc;seBsUl*CRgyu-}_{OON~cLdi|Yt#2x&#Br$LYh;}3fhQY ze10jm4nd|@6VTC>+ifv-03z1fx7X6w(|>nY;4Ta$`g^HVtB_hrU{&TWS$iV&G7=!k z>coN7KZ~T6_$^)(({XN&Md6+V{sxhJXSKJLn}c@`cu7zR{G3gabs&LBM;O*oMWxS; zAKSqsLRi!>2(wMn^w2SYS#+HGHf#Nw;(lpM*VvkNVf%<;$fP2`@8sl_0V|M;hJRnG zh1+JD6C!<%Xng9)ZHCwR9$o|Zootk5jR6E~cX7rPBX`YKQ4G{X2Vd9Ov#03q8-$q} z?eWLH;iPEdxM4B+WVXvdZ6GS}Si;fa3hMDd z@|m`7Z4A5(a$o#+JbwEl8rWJ=qRgoW+PQYdxBw?(&)3)_lX!c)VFer}y7R-GjdGY@txPcg~4uAUUDR`pJ z4#|Z`DFH^|Cif8i#gdYs?=?I7y4*Ii8+P281aAjU=3PndYt!d68hT{>pl{rWGcj({ z%@D^C904?ch2BM?mg(usZ`Iho4m3vM+8R{K(-NaTa8zJBJ8Bc;5U()<_phm|Bn_4J zZ6Ch#;`Gwp2lhWWSO2aZ(0_t0EKE@H37Caf?aEv??<(H-Y&0uXV0&`_@205Z7=Sin z3cI6ya=Iw)q?5EuIwLRTw5*W9vk(?tL_ZW8pTsPrw;85jUoLKid#aQ-apA1w{F%1F z;kLCuLDjDrb6ST$Tg9c@=c8yvMaO7RWij3hRk&fI*@}4*QNRK#?thsaD?!EzEjT2L zKYbp5EMFLb{6xEPH&G9F)yTrwY>JOv@-6_Zx%d8>`>b(S?Sij>&H=|c^2NV&RJmEb z?uT!6=`SNx$Flubz)u^VK@H zb$@yh`*v%F6`pGH=Ghx=9QtYl&t#>}pv2fUGoRO_CC7q68p1oJRlAfFo96mN(KgeZ*iW#fc%S^$bBqw*;sL_}-_3^@g-g3V)=E-oSN5$7V6OC}OF_ zlZ0JpRrKMUywQv3w1`^HSdlBB9x8WS=_-8ZK)UlGO*VX#yoxDRPZYR*5O{|`-Qm|S z>>*g4RmSLVTb)5_2InAxj_(w+#qvdTAnTq`@ymo+V!aao18x|xDm-1BXHSSsp#u;y z2bR?DN1bHan}2+JhkRLC698+>`x2gaQu7-{(Y)+f2!j97v5c{*Ws_5PG9%!@4gRR# zhcjoB>$-Q?ul9e^xZs*FE12i+V_XhIjudz@U&hAxTM1A{z%-2&M4L+G+!NGHUOO5& ztuuRF^XY2UpqE+-=6_#r*f>reCaJ?>vwXBrZzyy*#DBUFPI8vWVME?NhUEDij(MtB zT=IRy&LsBCf+2HO!<$YC>3Sjku9~}V+}E>1{!RNW9SijH)V~Z{Rq6y0a0DmBD%BDK z4LEWva(_3yD`Xg@^hs$zv1Voac`kz+g2l<=L>^1bFtHnj_;|k?IU`G5$%p+qv#MZ7LJ0TIsN=GVVjIS&O4W_lvey4EbAXoc}#K# zGk(eY$?Q>RC91;Q44+~uKghYi|LCrH4=BMB5=?L~B~?~bqB-o3lcV6bG_$=Kr3We+ zPhZ6kvqMpdKh}{yB72O9!W`4h&i$HjPoaFcA|aT9=uiZ%VD* z!hbz8`{=;p88j!<TA4;{~LsJ4mf&dnid$Eu7nS@af zj5KsX=I0%BM2Y3V#o3!^@NWmFdez#L%V2O^`uq5Ofhn1ou)*kCzt+--qeW|hjmVvS z8n^i8x&d?IR&CGuke;WfyZgaQbNiLyzkkTOwSL5Vs%Ad6lMi&77@sw)N<~!% z^(rd)O4SN4ne>!|c}2b)3~aCV%4zx)Ang-z%Jiu?Vn6CQqjBZ=5XjY56^>K|5!tZi z`qE!2fzl~Jn`EX-Pqz@S`PS8gj3=4Qlwh0v|966e?}4?UqZjh1xjR;&HR02`6Mrh% zVDC3C%v1&mm9v<((AeIOA{(83+H}V{bvtuK2OX%L^beBD#&h45>2c(`9C0*il*YJK zlU>n;3pq0K7+_NBWeu7uH9&oU2BAIzz?dXNZfzWvnOKZ#<7vbr!etC8=E-5aPKXlm zJ>hg5w9_brvuUpsb9^>u_NCY|UK>xa+C?C*`s!{8?wO=BS*IJ`yU|DUt* z3&urCZH#=COEI4Yd9Z2kFJ`xso`4z`N@So#cm07S7Fd}U<@ohJtb{tX7Jod1r>L$m zVsemV`=Nq!+hr(;DhoIXwS(Ybn|jcep%4W3b&ttRn}Y1d+l}aV*K_%}%r#)uD{1R; zj^B8KJ7@rnLT4M2#^G^$XHBG}U%_xIV^a%GMsIClH+P}mLOS-1ccvNIFd6}-l?a$f zBckx#`3LSWmcj!LV5iiv^MCIoFq^XT<%q&HqpKT?vXn$)_YPFlLc>ap#bel0)IQ=8zs+ z5$~vCuBPPOeg%qzay;-iikvts5DdrMz;H*k_tlYkLY~P!c5$_saes+llzI37*C^cN zZF!JJCXLErgxthm`iE_E%x_(C7LC-V5#K;#v6LAS_Dx?*?95eZLc`%9pL_+sv`vCHNn_QUMnUBD&{Q)H&NfT zL5y;^m}}F}U8iI=F@F~UfGZxn*CoXdqq5J}dqdc-8t|d9;`sBZE;mWZAprr})WtGH zPiU}~+}WlZ84r=vUWe}HsT#mzK{vm+rOzjfz5Q$EpNXEi%V4yDxOLI5;(S|MLo&da z!-8baS(C5<)@ErqF4)*(@qOjt`KqhekboMVovwhVxGq0%SAU-ow#}V~>xhvUOM*)N z{}4=J5ruoaKcS`f2*MZGOG$6;Jrfn7!EdW#O}0s>{L2vhrr1JU02>cCPxRl=<#JK9 z7D#LRSZcQKhrW}ciABbnbzvMZU*=Z~8KS!hLUR7NCt*${>+)~l=E%!y%7TVWIb;L- zwi}hR)FVFYD}Q3)*pQnoQjUyKy3bidp6E-n;7`rcTOVT*!=D&4{-d1|R^b^QV!yMR zZ{oZh4|197!IhUu<^b^aVRdtr5mS)LE;o_4SM1Fc9+PV7)U;&4G*!$0mnlC+nWOTM zI(MyHtDkB6tu=N}9F12Vvx6oz%j{ufC=Wa*GTZ8jtA8CvhV%4uPlItzp)}#zShJ+)3FE5?LKQSu@D&G%?3vOBq2iQ7B=vzBZCq z;3epzH5#Y14wP9;(1uI*czUW+>&b`Su*`91e1B#3ii{oMjUxP6)NXJnvZu-F3muC* z9JOfd)GWr@nC#TI8V-a0ILI+Iy&H`G=lam2v>kH8jDdXY%JiQ}ZFuz)bd4F2iX0rS zLgugTv*qO;vqkFX%&OEF&RT zA%6}wcX)nJ2V~jDew{v6fygH2JF3*pXULX0s;iNeFkbw}p4SlWFTZRj2FDKU^tD#& zCf)+bf{x59|GN)Arr;lPEWFw_nA z#h>`}biE#eC4fixzd!ycbIg&Z5!jwW#oFuOqf=Cor{ zE_Ok-pMjZFQ){Q-yYw%cyNG zCe~GBd#D7fd%el%;d?El93!B5r6~)CMN(EiehuA4be(s zF5B)t==$}w|9Zpp)V$je4q%mjcO5f2PJDN--Li=Euq}wz(_$X^S~3`Lje!3zk>!pi zW-V1C1$H0|#xaPzjXY@6jpeilLi4&%e`Wh}PBMN0yoF=X6`m`>8_v;Z6o0?)Fqe7H zA}vZW#mhOZdPR>{7BqbR7TL)1r;-(nsNP4uUY*VCoKqgMDtXbD@(L5Ee37qKiD7`t zLKZ#L=rgGuOak%pAt#1m-w+4asSUlJt_rR!T0v`FSNm%wILc^)4a3C?!+n%DDxDI| zjvQfpIp^|YDa@py+j`6~_J2=XesXxS7Rw%a8?NA2+reUu5yX@9FzeA{1Ggj{mPq$WIIqrz2<ci@Cg{sC(XrS%F%QKz^X&rOd}q;eB1a#iox3DrDpCb?c*UUsYWd<@`kDR&8S=Gkg9kZE3#Yq8#@<00~RKJtQRW zVws~jFH7IPbQEHWMYWE*Pl`aFAhC@hEvf3-Uz+C)0rGfOvs&~0AEo+@c@q{adKz`Y zXPB|cd>ltt27f)U+NNgRt3J$z1k^Wu*~V;p>3ZqhfHri7T-vQ%=0NO-v=Tq|To;og z0fEM@EOmV4+?b&&hZ63lj>TZr+RXqB&~P;oeOzrY^4S|)%}90&0H-{4pYdA>#03z} zEbVdi`buP&GpS7C1pg7aRpw_<3eyyQQ_b!)#Hrl@Qh$l&$)H5S>nKB=c(P9G-z>h< zA(Om2qNyk<7plf_AZ5^WR#XFkVJ8@C+=cIiL5Yn9ik}9-VhHQpP3AJt?hLAD(~Z!kuLFf^gp9AHZ~D zDZcFA>`{`~>@R-3?oaaag2}slywUpQL83GM$$$N~rV^5h0Ra%(Ig1xE%>d@T8o(T$ zB}wjXJ*oW$DjjRQ=`s>XF%Yb9$4IApmw)`*NKPP2EC;E`FS$h3F11CgK5+N=4MO7Y z?Fs8Lj$mZOIrszxov$4w(pG3OHMD|uu%&D! z*B#!la(|#>`*Ikirju*$ftZ|+%C|hTuwKyq05w3$zqL_S^$R5Xp;bWEbsWyWLK$&m z``R3$OqyD(%_SGK-`)##1q%>8n*WctlE_^~w!PrMPgmxhj$+*K(0ED+fMaw~+gmCU zDC>XXjj=JUVI^AqCZpt?aRU9Ax_CHxDM6*jv+kpy6k@f_10(@wR_3)ypa=E+p;520VtZ7XspMH8UU}bh7D@U-Bjuxv29y9=MG%j@v%?Lar+CMkZ6L9eGvX*EWAx z`xR6l+9{YGL8_BbY#W->sPx^z><1lS;~YAIGD*hzfOf`Pkw4U6?9U5a@b@w$?ARN~ z1Vogs*-yG04Eu)~za;N}u!4Bw7YnK2H*j&?mYaG5#If{%G%IbL35|MAFQ{u7)A63P z#F_;B;WEybLj_KiYbu`qC9BO`hh%@!EjzDc<mNq4*z76e4|5m>ceZx*vfUNKTxzFkbqJwd=x~N$8^~Gce zRiMXA2(2yaXgx2WCLQLL&Zn!0c@m}i5H0yl3Vgc1@TkBR^Q<@7s)8CQ8FPR1d7H_t zM!<^lkN`b$yaEOxX4l>o8Z4)SJ}pl8NZHIYZ8UCe>;4`}zz^06M$>zVKZcKSG*Az3mmYJ@dnuN)>vDldeMMwVniFPypN|S9H>K zEn|r-Ja}zYDagvM_ThhHHqG)B>bfl_lnzV1p$5VW13rw&k+mQRUOw(*rE03VK>g2l zSZ4Vf|L52f^Auz*DFAkJtFn4md8$K4)7cH5d<+V`8uwFRqqJfvs-C<=ta0BKz$GxE z5xe|uA;I3uXybK;$PG*h7C4>`ntUN=UWd)Mah)EUb_W|o`H+9j+P^U}MsV>GJ`>E* zz(k+RtfS-yjGx0a;8YgwZRQYAUWI+Tt{ZAgC$gRLI|L%0#K`dGB|UgIch_wh`8Rt# zYpDqj<^|C&uqS-*1R5q!$RO&d2?K7kqUleNGXoJvD8}M@ge{)(lY+$97*0t;kx90w zb&X0*Cws8fVLN{l5LC}xb~(X)J^~qL_qB0cH)E)8M)B}_9Youw4Y#3YX9Y3nrPfeFI(U*MOC9yIafS)pUF^8ZH2W7EBMDEM9c`M|cj&MM+>mnLF(e@uC^z4}Qc3PA z-g0`xxqN@!pJ-VyO_h}tJ3$^2UQ_vxDM(eDS>8cY{tv=1EzNw=TQE&KnQFn%`2YpZ zp)>+w1Etra0-CQ0(U>oJId$?8>*cH;-E=~kVLV{!uV6E9&&uE3c|y0W)@Pq$JSFEF zFb)pU#wZ|q16Z&ms>rw}aAAKKBGPc`IH7szq#4 z0Bg3M+=~=Rii1Gg@^bf)BVkoOGH+?ZXqb;4&5)U4%=|Q8o25YWf0J?;#bo*k-ZO)^ zZ-d=>T{4(5+IO+)iab5xHAK5x!Hj8LR_P;*IHZ%S6+*QeG~|Cc@Dn%KNv!%RWN5-PCn~c*rx`vJBB*Xd& z&8vWtv|__~r9RIQN%zM!vWTO&MW)8xX2zhEA4=o|f$kc>JWgXH$AIpWlT(&4>(w;8*Fo=#h46u)eItQ+KzjG5PWb&gLYP=$ZBTuR2ZGSNc&+BnT&tt z;onNl(a>(`gy!Z|uMv?O_%l8%!aDxm(8l{cCNgNXi#?azpt;L{bt!sp>oG*}LTHC4|U95Qj4K zVKR9nuwZ?601>5FFOt6hbwFto141}(b{-r^61V9XDlu$d7%QTaSyw~5(B6OD>srq| zh^4*4vkC#%#b!q;cL_+Fkhm2$1du?IptKhvESX(u3vZ!{zMMI!P}$t_!$b+VyW`dzWcoZC@VS9Dl(XjVaY4n)7XET5r;Hd&(sswx z*pH>II*YZw5|!S_xMb)a=E`#Lssx{o^+pEHhJXuNX2v%@ss6c#(ndiJAx!o{u0$r9?FOmZ36^>S`Rgb<7U-R-wpS&j_sQIb!SFI<*!MXGx9y z=y7%796h(AKX8BkS;E4_?UBkYfFLMQ+kvcpaffaG8d_Kbj9L8iY+`&zj{nE;sZVXW3+S3hqBtUz;l4Zi8pa>HJ8Y|JYk!Lcw1>PD{!kI--T(3X+id z%j&_RY-S&4%-^Sf*0?@@BZy#--5r%u|Fwy20td66d2D~!KXwdhg{n%C6P@BQu%s;Z zvdtO&D7@+&=!x=siP~yL6C~nGkzkmFEY|;f0N5Rr^;ZeA_$Y<7g!kbz(RybDFw0lj za0ddlohCz6w<24PM#Ld7!08l1nt4fXHozZrsg5AOvQb;D{}n5@>>3GI%#amsEVJcn zsWUELLt%eW%KP+Y$$vBZp4U?eLqlO^f^7k&C{N^g?WFx41ya%LUJB`fj9a50HSFoH zQh9GtAADDwQkvO^%yVXL#seog4? znwME*OAMTHTCFwl6HlT3MRnW48=$3v$f1k~f=GWJj~8OM-a}pMD!uzu08x*WqdUmm z$Y49wDX>n%Ea^if^)pveHndyQo(6s06QnPtDvAPz=Xt?a0~u(abNDk5MH+Oq3*bEn8B?>zM^lu}0e(?lO#WWA(T z-{OA-u=VHZnH_F!6`5p3j;Ss0T?v3qW*y@}aXd zk0i1;8+nr5FIZ}fAG}!EU2Q+R4w(Jdw>il4rxMw(2z`J`29v1W&8_4KLzwV?JyfP~ z_siiVCTYt;&CbXn*#cW{9_F4-R#7m`s=9yD7%;SeV_A^w)4c4%VP4_s*MS`&$6_a_ z^z}f6#i{TC)kyIvhyc-@6>cg)XvnIjaHI)XiK~p#goiwY@?6IH$Hd@0c^S0ic2eBH zJhP%Ok}xjdLoiD@T5Loo_wZ@jZynAUlED_C@YVD;68^994QX>oN}tQk;Jwj0i$8x) zeUFGXg}CO$sLqn4CJEu#PNssbRQpe-;~f|1DUE-WRY;L~rt$g8U#Tj3ATn+%+e zV?Xa_WP40qXGHq$K#a&8=eA5Ffw30orr*bf4Q=~1t0_HX$mB7^6&*#u`z4k{LIK=F zCpkw@t!g9FWhoxLsgx|s#^-i1PiB9T!%k|U0@&YAUXC~cnID9S)p;a>n}V4a(6~X+ z3X-_hGrdP`zPmy|1>Wpo4_++~iFaaHsa}v&g)IfIKBP+IXf@R2p1XC5 z9^W5-ZDWB@zIg2dgkUf=$f1dnNtUVUN&%^>pKECdGG1aw+9tn%MVB}3C6Cf1e%j8;j;c6^@s%YQw zvW?5CF4a~er9X5iM=~PYyzjxAU~Zm1du1rz_Sk)r6iS@yjF#!dum)GZ-C**sEiK>t zI53{zZz>g22jCdndn5L(i=%&C@(|tWe7gE7#x>%X`F8r{Qmms(6)P?7)|3SpIO<|?m>w-88GRQjEVX|UX&edndRDqo zwWm3|;cy6(&`EJO99-$PnSsh-${H%YwczoQeH0E87P@fg7)+d$g}y+O3=3|j(5l)< zpelc|4%ZsMi%TQfrin=^a%pHKs|-E~mJ(z`@+n-;9xo*wH&1iuGc@L`Z&ImCjibm@N!=M7wsBvV1ALW0Q> z20Ut;Ae1t^G-F`@l9UAE4ok($KuwkgOl9Sg#OQ@pG_F z6Tb;^P+`bG7U zug`kiZl8ZJP@tmobg*1fdaURa;d%lwoOG@|%eTc}TUY{xnp!QkTw|eDrDCB`s)7dq zx`h-v6;!Npsdv)8$yRUp1jT{5wq?A?i^V64MTkK9%9QX{WW3TJy<%4dIOLxfBY@NWcOGB`N8-w4l8ek`|96Mr;KEVONnF)d#EAKKh$R+Wn{P8 zHGh9KmlS;k@r|=eN_|`>B)zk?PZ`Ms`?vt*7Fwhdh-~T!FTrddtMt}7C>Dsk+K?nbLB(5@~q0xM=1yKUlPJBXmPLW(+w?8w$O_%9z)ABcy@w zG4Akby*%R}lABkhAis-O0xa8-72E!zfslWEdPk@eqBzSP2=Ne?BrACVIXQ$~It!EA z!smkN-CEi8z1D2b-#o&m*7+hM@Dihx{4lt`|&zI)8NoZt}b9Zr+O_xVfsXY zepu8M-r2l~{xU)Un%-fOygQe)X6%2jRSV>iy9u{?tCimrCN9JP=!D`4iJU$9DO%ig zoBi0^R|qb@JvjS8Sq=x?gEIX*3BYaX^2~s5Fw7>L=$(q*-E%0memh^4CvJc+7060y zHXCJ>(vKhD>X}odr2TsjSzOrSpyo(H;RD#DY@}5?b3oD++BldejOfW%%yxe}oOOJH zy{SFSth^Wcmwg^>DuQsGoMWxOhvc@2gGH`NEqHT3+G|Lxj&h)p^sOUSn>)X1&bP(n z4N2lZA~V)3R&VwuS5;s6#YV*8jpAtLp19P!Gi2%yc|I3r!BxqHG=G?}TDEI-$@Z8V zpy--t|AxPyY`QFxHF|e6%J+YECu{n~lz1T_b~VRBIo7hOq$kkW8#BRKg`rbCs&*8< zxY3U_3UuydlA6OW@OX9%5YoP~0Y0&zi1cL__6WHl;G6X59$I691G?-QPGO$SHRri6 zvmo-YdQ-#N1u-FM`zcb1PGYGn0>@4G}yo+c<>Ma(PhA^auNeeaW;wxU8ad zs7)n?n#N|sGYuQ0GXLVASICPAE{@-lu!+bax~KMHKZWskmgCtqz_THLK_zGz@=)YE zARGzX`vHp?YQk(6jVOP3CSND*Nwo24)a7&#cf}4Uct#Gck<4&#NMvM+_KH6?feu#} zOF`=Erx|~>?QU%pWZWIKFGendIhys%GV5|Yn2rN@`j~~(1W3{d5fRJ87YbSd>+YmKXLPAI zU^(!Rh)gv0{=DoevxjJVSf)t^sJO{@32tbeJ(5iR7H3Ic!Fvcr2kueoUdJtyZRsT`hT!bA7tLjsp-2w^^A_NN<+ zWzWmMDexgrd__`}nLC{5I~ZxEA{4|0{4FfGOogr;!RYg3>^yYbqtc< z9rRK=Wx=-q+zRmjWgporTTV9N{-WuNq0hAA-l*b+J|$zAN#bL5$Y?Oxa#Q((#=fp% z(ZjV_6qRurS_?`&Vyy*AkuZu;5Z`3*0?v^8bh?&wpIL4%$8iJInT{R+=mwyJiK;Rw zciaqRgbjb!&3dxK&7Bmx&&Sf3JemE&-sBoCVM>EP zJM+P`1KA$h9pg5hHpH4HID7x@tXh!TM=ZY#f||FW!{8orMw}=F1vjN4^yCtXseN;N z(@pkJPIwhWNMJ*di82w$-T|u{hnj1ez72FbR#$%>EH7KV^jUL2V`I52Dz5mnM~Zuh zC0ZT3iP|@5#q*T0oVl?TMf9z7eSczan7zHBlnUO7RYj$)KU&SJ&tYm ziTKk36SN(cU7>=~U#=-9qO>^op_Dq`cDUTg5{Q|PI0kyg|2~%8Y%3p6ffmo^A5+ol zc#(gmj_HrK(S0ysd(KoY1yL;ZCa8~L)l32D-Bt|yO41^5wiK%q-N#|CxH-q-*hGPrasZ?o33@epY`PvGlOX*dv%mB)5XMgfS7Qr3e{% zTPFqEz=SrSI8MIL+aozRU91DTM`X}&;a&sP8}7&XnBs9}?9yd@^)ZUV1?%b@#WsI& z^op^{LZQCgBf0LMW6q$xom9bB^hG9$&ejlO7t36G?8O%Af_p9*82g{qV$ma^sX{jf z*rEM{))IHTN<&()IG`#E+M!=eAjB9W6IQQ{t2oSnfT-%cX7*5PXwg=-F)HBaipGUe z3wTC%6G@|?xO|lh+D78E$;`h=MWBDT9SDCDE?uelp?-pj_6-3)`zlg25eZsj3~fQ3 zXKi?5=u`aRWO7SS^XB-G4|1DAM~;|W&Z&z}q$e@%SG)DQ50XJ%L_e^+eQnT_g#!{d(rhY89l{vYd)>SzxvbN+vrf|gAO zwK;s;z*BSwo%v@YXYz@q$kK}b;LpUKYSkt3Ty&0b4hvvnH7qB9}-k9irkn|S*}`@g4%Y!g47KT^Y9e@9KE z@*|wsS!5JXLDhDOYU1iCed9Ikz_cN`L))XX_6?;^#kuN5=!?$cMmim)vdc$>=1~rj zeOkFJlz8`?#Neu|`IO?<-?%*ye z27AV-{!Y6?wpzVZ2=YM*oOl)1sWc3p1~roSpsYjL8*NIwXfg`Immu z5*1DPK2;|e<2p1(%Wdkq3RTDdI%H}Y$Z4oh!QyOkmJZ;{-zBZP0(fwH>YCNhR1&&t zQ>eFb6wf}N^eb0sbXtGee4!o-o7sXWa0Do0cx46MaYki)TR^5jT75 zlzkNAc)f_8AFwvk`**4$ziSp4y{nkL$ET1M&*ezlm38D=JLZ2PKPeB=vUq!D;HU?> z_|Hz@C`J8bU=E(c*jkKz1iJ&tP0zpv3pa;n+O(>V-&YC4cqq;YI>wJ_lW%>BwZ1*C zDY0;2`!6|oBCC5VE<3uc`vXlq0hl}k9lym@#{CaH#(gU;*1~QlJPF+)yRX@}ta3%z zZL+BP7s%-YNj-l^;Z9{DH^Ww+9%-d?_iZdcCE%pu@(c>bqIYv-N5P*QFJXuP_Y&T^ zvgKkS%{2$xPLq#ohJbQO;`+d1G+ujam7pr-oz%py(~DB83|2n}C}k%zli(7{34%m- zGGeZ)8i@4T87{1kG+O1dzMc1)U0GA8Z4?;?SGq-nVwrzS=iQIGTIJA5FrLNzuivJJ zMKbXH2Hl?6XINC(4=KS{y{{HrTv`&QTQo>Ek_EXtiZ4Y_nHU{`^&YGaVV5qzyKSMq z1B5m1*hIvp-(b9^S+o9)YQ zmjRaY0;qoy>_r>eX*)7+KbCxLZUVSgq-9f0KWw(8ge*D%b&bF_~=C!-xu&W>pN; zzR!F!xEZ(ISwPF^^ZmzEfP@oWR@dy7&z6>{fKiVe)Az@L2=PlY+Vv&6Ui5U>F4ll# zAved8j?p%Lyi3J=H?7{Xte7V>Yjg%B+hZEJXHSxY{ zxi^RAzoDH@v?Nzx-#rpT<`SW7#9&yD2G)M*ev`reda_`=7b`__vOl4j?G#1wg1@2g zVC86$`W{(><3x}mSZPUGsOzcWCpav%xX6yROx*GjR_{Hv63;XHdnJeM@$jCy*ZhCG z-`|2q(ObZvxq=%zA4AiIpc@?D?bCH;b(OiSjWj0`vJ{oVOqn z7k{O8bE$`h;otNr&d}M;GID3Ae}8|lA}k`EqURA2@T!X6OqNi=-@#$I!CB*kE^1)V zXCDUxm@KB_q8g+*bkAN)np5zbcE5_NY6Zu&{@M9qr<5>7g$$QWX+Y$A!i_wrY#7k^ zJoUIV3Op4PfS9Cv^wSXyGT@Utkg}F!{Nz&N^Y(L)N^ZDO-TMMzLC(7%yXAj)RqDKr zVi|mxs^l!0NJC^^$L}psjf$=3zwX$khW|6+p+0wuBfC!pVf`b)=g%SppbjO0fF{|! zY;x;vr~(QqaZQ~-!1nr&oo)ifP`#`EnlT6$ct#%@c7v_eGf4;m09)>%yYS8;NK*C2hPwN55}#Gn_x1sCU<5dxDdD6J-YJO zl6*O_02rsi%Rf2dH$Y#kxA@(}#_OO(lMntR|x-h9f0M_YejaSd680bf1n zz}J70%F2)F`xh?{K27erJ$F5jIYVn)B&css-`y{?+4;^R`a?ogw^lQ3yJi$v6`zG8 zP9HLvqhn=IBfNd=Y-@c$dV9XLJ5E?AQz+p?^>Ru#F8Ib_mMNhaLh|pNGTW061IP!} zDs2A;UZyTKc&2e-gH3s0mYfaYS^kZPnS;uNgQ>{b#?#zZfqP8 zw;wbr+~r=4_>8e|65WS@9jCY2bG5_cNMJ+8;gid8|6#c;4qe+-f^^zRCRr$tC7oYy zgwOU@hb_@;3@MUiQNDkI9&VGbD>Q>2XFW%r zw5r{902l_Wq%y4zUOLA@0{9V$S9LmnZcqy|&dHm-OC5YN5t>st7rjuCW^jn`FBb2D z(Cbd!Kq>8qUFf z7asN%;~v;*(E5L8;iBuvW>jaJT%x(1;(#Fh%H`kkiEJ!0cCFXy8n{~0?qG8POsDc#(4ecIG-!nfu8+;2sYFB*yubi zILvL~dHrN`v955+MlJcI;s%c4J5K&eC$mH~3ANzh@yp>%WaM$req;A%Z9C-h_go4#g_V}UvimZ<+Aqq4o6OT06Z2ed&Z z;Z@BPs?E#hEj*t9hM4{bkW$Watgkup-TrvQts;L&E8k1pnfPC(tqfLSiN)CpGr&&G z0bu|?U~es4FW3~jG-6RYIDxUT4)U2=57L@CT*?kX~EHaNN9$4G!yJuSPsN ziJL-0>8!?2E0D#f$fKEFpZ3tpQem0Zu0$GRRY%J|w->~`jg>nyxzH%Q_jkd#>0oiQ z=QlPOJWw2GCDArV0BcN{cI-28fIww!XtRHgy9D1-u3nyYt8hIYElD$QW#o|%sGfD^ z00h`J7v$1JTXK2y)dl|I{-HoEK0C6&wjP}$z=?%xk4Q;AR$(UTp5c5{htJ)PJNF-0 z=n55z&GWBlw;C$S+mHo6;#4E}qbhB-Q<0|zKxzdvoEO)}K#y>O_M|(mb5o&mO?Q8p z9`yng@m6cEiP+k9MLUsP^eXORyDnmVb*RihOJ*VB9kWXPk=6^;4l@M4%`xc4=Ke6b z2k9k~DA>;33uD$y=+E_9pHFDshlhtA$Um|K)b*ErqxXbw7R`RVe%kUKpBuu1VsO%K z`j-y(m2Njyd}vjrdqhOkdnt#-Syg|GI<+3Qy?8Cd;;>1kuWPy8q%UJ8CKuNuz@r-u z?a7~gh=Qws+b;Lk!-jrwff&K3J3pHf?|{letsPO)JBAoDQvS(8rYx9~0FudO*~Tdy zrEE4q!NCq=8sgG#v~!{+s)4hsSH*}28nk=f(rGLvhqd#qxj`naS^9#4Zcl$8^H%@? zotj+zKfv_Ui*!#5ZV_$S?N_k!%%JD-73=Ii3S?01hNid^BxT2%zlOU4uch>}P&O`% zppGH@oh(`YhJo?ZO@rNx?0Rmn1ju;ttrG}Y#~kfdQxfvK4Y3g&jSyYdIqLqaEj6T0 z^SR)x#lSoEjp~+ev6NtRJQ9Crj=YSsahyI=rlzJ?);2XswW^+pNH}dv$WPK;8&={1 z>Az@2QF9UECO~y~`OOoyX#Q#2DmHl)zrzZvgOY3mPAT8ur=oTy-#_TuXU+5o(#Zpq zgaS)girQvnr~GwLBTuLq$=JEN?7Lx6Y(3HOt^~Oob%&O$cvS9L_VlwNQ$#5;g#wrgy?o zW(Xko1$;B=5;I)@Ps0Sd`|8d2?8rGVBZ8RCp~&p=Z#0g3gXom=beDQy@`Hu&$_l`T zn`?gq&1#w&l;9SsTrhOf=KnxzLM_u&hyKl6+n=PxX~kUdM1j*MAnc?0>O z26p+Nz@Rhd*w9j!S`C*=SDmOs2u>Fn)qQ^m68`FsBA%7Y52wP(27bbA3`I??7b z1p_spc;)ec^udiPDssaN++?p^Fy&mlI+D17fv#l2kbcj9Z*KJqZ6y7uF>=(4XA-p7XjEa>X#R6A@eyXe{6d6Uq3VOp&7 z;il+E6>)FH(1FFbv1O&vc z8U#{X?l{Or&LnzJ(atX5N)fL_qPFT{nvy;+5MTCa&Zd-bbVwu*ogO+_QVj@ME%*0t z6sfP~!y4O$Li2oJJ>}hGKx$71&D%@T28~95g7|;hlG=h8wud(O5P%)?gl*sM!M6)M z_+tDa3wI696Pv*{L_ZP@WawIPzTQl4C;S|?{tb< zASf>#5X0wuGovQ5%Ay9am83f7aEgs}PO3*5+IJw;CQ;3xm+?+dq=4v1YLh_shbNII!RhFZsi}k0mQE0k z$CMtg^<6_V&)+9+VR$ul2xC*V$y%KK+N&Spjf9;T9-yf=DMKHV9z}fuCcffv0cPuYUvFKU}q9$nM!!AKoOY2Vq z%AQqsIvIQJEES4N$s)>YqL*;kaDbw^>3^R9;|-^7MqA_ z=@}F=+XZRyLPREt28N?fS(Eh(V=!|SIEpjF;hP<|+n{<}G}ZMGP(Effs`*ZVal13q z7IP`Xr4-tM-S7*Px5z}wSxaz#(aW|Iq#@5?!OO5KpBIXOJ<+GDQM06}#vg!bm0 zC~KezF%2VEl8^@&Ww=Km4EBGD2JI`k{GeDw66%4E$Q0m;4UF2%&TI87A>Jfv(;G}t zN_xukYiB}OK^f3hjOjJguhz`49=&2JUs`UNyM(yszwbw24Vpe)BJ$MI7uk`w1a;Bnh-)EZ0r;71gR$*>ZrLF5F%OnLcF=!3a{!*%#aqcF zJvdAmBWclxJe(y3*NaIG&m&2>gy85j>27lcGT74#OsjThhhJ&*A0nrpd-UnHD2LV~ zts;14MeT@AQBQI~`Kx8R#44<-SS6so@om!{f_J`VSbN7*9;f9Pl3C3I|Hz?|m8JU} z=BB;ZC0yz~YeUKM`&ECz*A5ByQpyhaq;29BAuE3J6LR}so`Qk)p|p;nY#R2N_8ns| zbn455%o3eY5}nE&9Ga7_p#BBQ2?aW(x11x}7)#MaabqVtPypW%NKT(-utqGIdrkOA;=mIg%;YAnkB09@@<*^=eMbR5xW z0c3XSU@l|=QI{~b2UFeND*QWBq7Z?_hUvcqz-Zzf<8Wl-V-h7DPzyrPD0h54wp2(? z9d{^nGPd=PI0m({2Y|5DDY;`i@M(+>!*+|E^$3^UnzMhS_r1haXGj+j+*jPRZP8#MxmQYr(_4Ry54=wNeCp1zrV~+N;VN!DB=Xpg zcw7_~-lKG!$`5zfaK~QpExZ($XOIM0HeS{jnQgX{lGkPAJ(#s`ykDM zf#%Uu+lS0v*}_+StR481DkbQ(_Ob#BPzas}{hiw!qv!>f|!I^lnlZhnXw_u;^zdc)qu%uv^!@Ygv{@|87a%WlKp?YH9|s32;(McN3yVzL+l3Q zrba>wE)t)|7F=a=Aiv^qma3pQOY5Mj`5Ec*_XNS^SRp8U=M!om;XL>D@~!NjU|N4; zAQr(R@&T=cyG?qWyO3fFU2~G)sBUn91W((b)nhJ8PAVjfZ!fL!v5J|?AWMASfBil3 zx%dK^q}zBiPW+7cq8ufThcL6+4%q3IHY2a|JF6mUON}9hoEi@db`>NN4s0;RmC=C_ zw3R}m6ehC^VQeY<_v$&BYUDsjYqP(osUWH3@0$CJk+_CNhH8S4l?DE z2qah7eB_E=RpD81*IXZ?AlC-r0bc)1(d-Oj7lU~!PI0UT&o})LjdDeqZoSEDH-K(Vg)w{@D2UGd`6wIs%9MXmOxcWh zhvrsL_~-+Lrs$}S2VcOp!8g8c1S2=ujWQNp{W8YfJoNl?&7jE zxSWMZv9*V_!|Sr-`z#BvLwyk>+Kkt`o$y%9crpsWj(v%!rnr|`&#jm}U4&MQL`mbZ zz4aPYm`)=bF9-8JH>VZNTsnUrKa5Ys)5QkgokojwLgu$WfU0()<{Y3zMXG6jb8h|? z;aHxWGnnV%OAPRE(E%&>^nK&wX;4fbAgy+Sa(_)JB@usRJ^@?~1%R#LbV|4P*-y9u zHn-1b@;_@QdNk;gmYJk>APOEspe%IiXqc0g;xhlcd&vS^Dbr619?gHmWnh-pQP;Gyb@|bwa9W=AwNQlF84^884MmpN`TdpS1m?=@vq}7?v26MxKP8h`>ARYaVK>2EC zl8DD2u>fWqi$ih={rP{upYp7mVQ(Mgx$y3}t36Gk3E}3KwMO;66`6L`{d0@`3|26i&M+sdv zx$vl5;wa~)a4Hx6v8_MRmMtcO8u3Ja16iX9-;iqAv7uMV_ltW@uR_EIjI zbQzJ8khGDM8r98_`Qg?RBeF~5GeZ~9L$~1#rFOhSgYP;1hSfC2eLV*vtxk#eLb#$GS-~|HN|lF-zvw-m z3Y6RJ<70KHwBbX!3Y{ykla$qRTn_KWnu`MBP3Zw{B_qH98$D6229>D&r|*1gOO{Oh zIQ(@WX~Hc?m3uo_4y0r*wwhhEC-#*cv75f|+`U_uJC=V!bbTPgEu)@MDE&LupH7bM zOYlO{L`S!!^6A8=>kun6n5{zI5V{d^kGAx_U3c9g@YwQB#uT}F;@&SJ*7x)Le&X8l z(8{pkg*`l40dHE>FRjMcDP7(G30dIK4J=l6&H2XjE<0R)(7kDb{l+igvUj5#kUpm7 zjb;Ypbw+=rE1R-O5d=2uIDGS3+0tK`9r+b~-w=IMz-x#T$NxbMSYascqinX1rN#qK z7l{o%>08b#`FS4^cTYesJssFC+10Y zJC6HN1q5!B^4DzJC~z^r=g1GKu?vCe4=y`rsj_4~qs`?`Z{1Z!QHGj1lAq{N%pi)< zq{0)6Gbc)RfbqSuI-Hus6~M^&A33>9-#vfA@-7!4hdh{hH@?YwYq9{wZkH7>E*guc zgenbjM-dmi@Z1%jCS=kHu~h@dZzoO8TR>7L!$d`^XHr5Rx6MDlxk<){;#{OiVVR~_ zOZB5W8{)GU2k1s@d22)A+u&kiL7lZrGnRRyMrq>oyHcar*`S>z!xhmWp;0-l5^H}! zU*-r4&JUW+Jn85Dw!nzcx6tY)V_pr6muP9l9qp(jC`}do0)ArvM(s(JEbY*{;Ck+R!aA?xFiN9JVQhaDh<>V%V7mK^pye#f# z=KCDJkGkl21~}zVFU5%HC5mtHy1ZXob1;>mYDBe{LG1IDE(ju=VmxxBBV5Ca$}8Z1 zejY%oT^M}Ns5OoW`;~e`3k<6)QR*@dP?yXRwXgH-@nv>et{U$2-obxE-OF1Fs|qU+ zV66#0i)OaT7$i2?>&i1*JUfCb(;-qA!j~66ag1509C*eRvEk~m!ub~$Zs}|DbMwQJ zjMYwLerlV(%-vx4AUHwxgY#wPhL-|Dgcjt{>tq-wk^!)zd8H#cq=fg&$KZ6B(AgmI z6W?Gi)7hk9Om7&MxBP$OPQtzsfZAxQObusY-yew8bp^;%hqSVWs>ZM`l5QvpS55nb zKaC8^6^e^>xJmSOfOh14k$~v=V4fonq-I<~irNs5hP~u=XFj6=J)-YiuTfKO;1a9m zJCw<+P?&0wN+_Upy(V%%6RJ~+Juh~NWYB!dBVU7x+HQH7Vrzd!GS?Fepx|ts2gQGz zkNS!MUC13&{fRq#eKq_31vkF2L#!sJ3j!$#T}yQ!EX0!ZGwtmkbKk9n5Tj>85)ay? zTEg=8;YZMVcNH8Cn}z1l(bJp%wJGoXP^P?*y3iInnagCPBk73=c*~@N+doHDZ4a#uDV6r9SInASJ`R&B;pZkKZ4JhZMIP6LC-p{v8Cb(qr3%&5ecO za3w4d?XGSz+UVepZ=;hS(>7PfuZlhHxF?H#5>Z-iJV&+r)Sv@7`&H&n%Ij*P!Rwos zyzjWVJX_x24<4R8diKl1U~#Z#FoU{jj$1{-Vm7GGV z{0_G94*rK@cTBxLoO?!YHZM{#GW8fFDE45BIMuOY}?OE%j zC7@<(S9Br{MCg*rbvl-X=_JTU;NDwH&g9_fsr@;d$$mtrkBb06K)=5m{{gB1${u4! z%E;U)qp(gdko2&B7f!P&t`%6=gZb%JI8xX8n|9({SkXEM#(b>gOJUQUOfL48j*ktH zts`4BcDjx#h!%H4&{Chyaaf<3KtK5@@^LiKPp+5L-6dV&`#&wm4-Fc#K}JeYg7}Ki zU%pBdCM4`M9{Corn_dPC>W9SBfOGOr&clmB(x*P{n9sL=SQ6MavOekRaOV)=@bkL5 zVNy^rLMWSp#}Kj^Ge8N^5B}#%K{Ika1y8N_8c#z6HI<+=4Ed$LiQb03?jY-ms}F-8 z;9e)tWuf1{((V@l78mnbLFJgFd0A@h9psA&BH7~LrP3%g2rC3s1*bceREfznR!Id} zSVLGY(Lrv1t~1$+yRs_H@jVJsuVyPC`0VV)zlu4yzuJPJ&R;E3jc@9kv?x+_<{ulx zow~FG$|2i((zzv7!eF=+w6O-`Lt>)jewNONQMmZGWK4<4PV4a6Fq@JSdW1o*1cxxU z?AjEI07bUezDKKSXJlEqOxH@g)C}BLh06DXM#Eiy1F_dU3`ao(G~(w!D;BU{rI`Of z7E+pqnZ()#LT3W4tVMh}y?q$~4TGlr2QCzq6Xoa?w1tJ+$+_PaCAr+uQ5ndtL^L(7 zu`T1E`v2w7hm-Zu*xNSxAA-M%1f~p*?Y82vIPaM(>g}9Cr_Z#IM3wU1uNuxVKG5s8 z$T-e_&nW(o7uyY4&Jy*9iS*Y}DA0CtyoUp9CH zGq^NZ_zj%p+|q(hSCH)WtT>+=W{+^%h#b9m{%WIX&Rq8lcfbW^v?Lh)?MfdK9k z_32pkKPh$%uDF+JJ`?GD17e%$BUu4|N4S+*#U{Oh4m!R+rnU|&&O=t(70NI zzu%I{BFY(xS!ktz^_Z74=_&qv*qWyps ziM{F$9&sNlAkOQY=xHt+%TTcgBfwo>&sFH-q+py-+Z1=fNw+XL5*w2Xk)--sZ&{ZX zv67LSB*^HEAVAJw|Lx`Mlp8E-4L9YrnL)_AD&KE6zg!Q{{Xw0n+EiKw+%=9z))12bC)tFrmynpwifaJpX zD{m`BZuy4VD4?t>_0O`bLIo(u38DjAc}pHVfn0Sr2S8Gh8KHQH7cBI0(*FIjm%$l&n^zJQJ@jUifIlvdnw3Jc?S z_a+WQ$eA{R9y;#Rfs0mdrsj4H*b^=u#5tT-Zvz4C32{5S0WJ38ATYwtxxzFN2fd)Z zaZ4@8zPo|JGzR4fn(%-DapYXzAI8jF(Y7ur67oH2ZbO*+I+MwN!hZ*>7xEZ5Qd|cg z1TpNbmvZ>6qO;a^yzd*@0&zEw*8y893-VNg#<_;|ShKgP3>`8(6sr7%;lS##r!7(G?LOUFkG2Q^baV%u;%HrCoc<)Oc>(@+EPW~R`>rF8VN56cYsRAZ@iudkd539H#2=V z-AYz1&R&k}VCja#T+k}{-Y^QvdKv;vCGzH;O3b&i1`T|FB&uJEVj^F4^K)PA=PgAB zJ47RHI(GM9T5#=bOL4jCJyoeLPZXO#9Dhn0^Wd|wt-6x`_B5sVAXp;XiQy1bhB~Xq zKzDs)T|X4J)!pMfM|nkvz)D}H>RPua9(&VrG1~Ix4AibT#U_)F(wWSKX`tyWV%sve zz)mv;hv49UYq?yK_v=v*F4U7cFQxNdc48L%rJK^YXg1&)tD+60WRr`3}c zyaxCyJM(@tiilE53osCcCx$<7B*beO&wKkL|2Tt`OfXnzd!Yt?d{N^n>WbVXz>M`T zkrMcS(W(A-o7&jhrv2TGXccDN4Q;5^^+rEp`;Ao0zlo1(A~zKILFb^8^N6lTLX&AU zj9Vn*xqHp+`1G~gDBAFPNE5nwSAHkew<-VL76? zb&(e1n?qYc6h!mQ{;f--F%z~UwXk)L&js;+|GaZ3k@MP3QDfhJZJ7(vhdvmv&2sE3 z|K=lUg9=a4{GkA6vBr`(C=?Z$vb`H*ahR93F{AOIes@aTU?bV1rv7)h5ph|)RH*t0 z#jwiMK`w7aKvb?5A-lZLwZ>B!30JWgppq{-sm|O(7-t#xzXy4|+%C{OXzVfGa;+18 zaD@m~68udM@FOrcz>d#)S>UHJAWhwo)WmcHEb|c*0of)>STh7DycYDoBM((ZPG?y? zSf$78gq7Gb351(Rt0+!dZ{XVkoe~r)y%f~|r=*4C5X}!fW&dL-OgbXA%nK*RbNDU* zNNm+v89++w$pR*_E*f*zJv(f-#98wd_Xy*JL|DibU?bEPXp3{PA< z4;*}%U#f%&WR*xkmIN#o%r?RpEGM&U(NoAm4xub_yA0M=HzQgzRAHhEp|_=fDy@R8 zY&&8{1kYK}`{?Q@rLtzf<0cU&VxdB~{^CVqNPAS8nI1G6tP;F0GI`1cxyOuolEo;064e(3c{f>rAm?7hgnwVrx# zC${l?f4d0A@oBjbFpvp*88|dNg2f;E2)q}i7@zjMSN)qezIZwE0kMlho=F9V zc*EyF?yiIkx9ph4!J&OXXL;lR!{3wtYI`mIBwrcUeR-3n0dutUqZ&YeEhvBdML1=8 z`fm3f#i$=Oj-*RUhJ1;WNu*wd*4t6qZfYuQ0q)E=VaMFou;mzt(>|1AxRwWx>Js2{ zg(Zga15;x_=&!w}+^AmC(4VQt#P+}BO%sY=Hpgfq_i0yztzcvvioWlWv2+=p_I;)@ z(u)H>Sy9`UWi96i&!W120WO5KH3n6>VsD!5wM%9T65(8!bYmS)Anz~cT<%eMkTO<6 zVRVf`c(n|mZ1tEZncKy0$3JWs|Bi1>KwghvY_15DJX)YWs_i`FCCLReyx$&Y|Enzt zx`=>tOgR4N^BwV- z{h+j#Yk6u6FF)!Q!!Woy$)(2g4o&Z_g7p&L8!vrCC-(tj3`PX7oPnIy1bVptVz50H zY$jQL`0kXjnL5aSZ4QOBiNf{OuWc-@tGc2C0~~;b5G%v?qpACmC|Jh`*haqjq?1nW z54oa`HSsC+lKy6g-Qt_%#YkYekV_294?geKUond*;}0xZ_Z-?j)J-@lbdg{&ZQOsB z9|P;ATJA3v9H@J`4Xll{sA6?;x28LlC6SoP^}6IsJiFF^U;*cQqeCic6db&AZQl*F zYQ!hbKqpI-!o%D%5O6A>ahSDjB{Z0acA)D)tC~mzt!B8^_oL+&?%K47Oh>PZbsMd0 z8JJrjejdYzf5>|LNb&y*ju?sGvoElt=SU&x^jiU6=OWr-tusB;)Y{`8?w5SSOGd4_ zt5z?kxL`wn&veMN`vqYVk>{O6c68zpc`DjJxs;-B}a{r|$bS<79_Yyq1U`K99cL8J)p zZB+b4mT5W%6PMEp|2riDDKT^(_a8tVhs(T$ocz&$H1$#`)d?O(MpVE+53bd{o(3Bm z1{&~8RgG+Z+wJvi>VXHR_;`C_*}RcCQ7T@pZdH8%5xO)D@>cPDujC~n658P@yC0IT ziZ?b?dC*x9%$S>nR^gj)ke>ky&&Zwg+peYM&9&dz#?xr?(|fNPG+9@8j6se`QzJsd zkd+&MN^jT%kkt`O0+0ic`0BBXBOsadw8sW;e;8b1p=(67lydSdQ}eWY0;{C-x7d{` z2xZ=s-ll>mz7{vMK+n?##BwyFbXn;?io{?y9Fhty)27K(8#{cePqc35@La5JyFP-( zPHWcW>+DwhBC)2y{@Wj%?gH^*=ekQf@QVI_6&~Q(WN8eXlU8g)5u~Q1ELgb-s>~r2 zWG2GL3I7CTiV^RS6M`{LE~#;2*;3FuaN`95Z!L#Q!g&wXG>Z%e1q7_XjO3Jj9$lZM!;Q5z!ci`xw!rT1C7s{PKlzGbk9`M^L=gW)MPDr=cdD^GWyf6HJ ztNntily?qU2^@cedY@eLTaL(BdWWd)+S|xN_d}?I2)x$KoDT0dh;bE!6302>rAWS3q;=z zYeIym(Fk-#T{|E!F8Wpo+|eY_pSw<#yfmeLr9^ruO*?-%U#MN{6C0Y7Y7gvxdsBP` z&J6LU!<`CgpkCReLg5Hh#kFT#A7Yew286*UIT>}U{H9`U4@Z)Iz~}Tz+nBN$}@+V2QFuF?-uvzPtflDq` z1C#39RnTdyP$ES%4|J6o)4REU*rpfGh3_%>Y|LWTwlXUa6^ab!`&{1Xo3e+hu%+$W z?lii<;_A*!%N#UtuqoWyTg6i>L~0MDr8%8T6#U_Cx8mvE67vP6zSgS4UoEsMZIeP1 z;GB@d#n#z|ZwkHEA-y(}lvZ;9hJxvc#VKK?P-wnQs9WQ#3#JAirjM9^eNsw!W$&oJ zIB|Gf2Q0mRTV1H(-++@}KE95|fw@CXYP4lCRoG2}>?vxsN!xtWblSM-7_$W0D}s`} z?xYy{GmeqE|P7|GAlIJ!vlD*!LjvGybP+2Y=!24K3G{%>P=UbQ~>A`=)` zUByGa$W_rz7}(6~${vC9Jmj{2a}jA7vo>COO|($p zK<{j83sJQxJ5%-`#Hncqbq+|{j7xF~x+9HkkgJyG2 z4Y9(G(%KB^ZY0*m_`*5SDzK)?WWE4P`yq=80}c_8HTk1A=fuf;(kY~dd6~x5v9urt zj)`a*KcZujw_nLX85e-7OgC$kUXJ9bq2b<^BCr_kijAUw0()(=-Z^t#Ne4;u^RE8D zN2xz+-g*V?m{iAbPjI2&mU`QBPs8L7`JG4~%j`9DSx8as^-9O?wD7&9y3Wu$E>{*J zy0m#|f|^MVhp%mB@4!8SRF4SF@MHQddE-&C7{Ir-AjFtKf&U)6UDsy=EBi~4x~Z5F zlof%l&;YD|WGh~1Wg0UeSV)i712p%-5e0pKKMB>W=8;UTUW7W9J3Vd zlv_y7xaDe}Pt5o)gjny)YC*Drq}pHni$OXyams{ z`BMLXeRYH&Z13DAAetk;pu=|h&7NE&MW6y&T+bP+)k;hRq-Si^uJgm@l-H*u_z+Ro=KhlNRmC(lsP!FNZmmDDRpsGj!K~ zL;Syf$UbVEM8NEH4M`2H4iysjT~_ZP6DxtPs}cpaK1QdyTG)@>ZJm8U68UfidLlsn z*(F~QdWtUf2DAE5+9+)$6Bh;9d-N>VI#6$!3CWvoK59qRJM$OYhf#)H3>}&fXB}{| z{dUWT+Uqh_HTR|HFjputTG2@udS0dG3;~UIPB`j3%QoTPKdvYtN{e zWAOyzQ<)|Qvc?frJyGz}2Tg$mKFAP`*!%wv)c5`i zvm0(A3IKAP4Tq7zcQqyXAb+4V)k^#Re}Z6N)uK8y(egeErQ}s3B@R_{){*#s9d0F+ zbD*+aqw4`lZ0`P&jd_ zK8D6rW*RG4RuMrInE!{#k+VWgi8t}zF%YMRcJq=kM=xta4q zz_tg#TZQ|qNwSZdU#(ZZVfAa_itSF|hCnrhe3~R@p(i5|EzjTX>03oo%J=Z}F##Az z-$qBmVolH=2~tzK+A1%9(Z)5gaIVzk&d{Q#t#y$*QJr<5S^%f(xJ|Ce7OQHf8wn=L zfRj^eKXc{qK@D{qI$HwXQhlHUjRe>t=E7Wl%!}Gj%<=D(mo@gTMWY7) z`9iEqg0Qd*X}HH@-?-vNO_K^_QuAyHM>0#d%^)HA=B4;4$QZit?LO_g5G}2Gp`C3a z9uEK~S!}!$K{O73$#7><5qtJ9P$x31CJR&>Yg3HoGeXjh3(gqF?{xdRDTS5(2o zM6Ql!K_3fhxlTkW}TKyQ76t5YC(c01UZua>I+Y-|d;? z@afnI%=cqd3$rW#!l-=k+*^6qCpy&?S>5}=rp+sp`;5uKh&6!!>#MkDJ_xq5 z$~k#i%bs#mx|TT35vSj4q?xIOaGgq<5b6g08bGY~n_2LBNvkpT9KqA(MaGpj?1o^& zC!!KdwZ{>EWVg+SW%|?p{yyKr`bm9)N_U;IQW;y{#tE9?R+|kKlJto=G)O^7ohCjy z+lL8JV8cjMY~XN+j025+lP7894;qi&@aL$;p?fNT?r)L&zQ+lYV)C>=W|`7L@e#`R z?EIFua;%-#=9s|eG(5o#Hy2UuJ~_ZGcwB6sf$v=?vv!Ic5+)vG z13`)C$9B>jiKkQ`me{p{^rCw_R*7Q!o~MdacC@z>YN1;@&koURq0I(e7}GF;1JhFZ zPlp$Oo1uJujgxj@J@ip!Np-z(1l`6Wppkva*N<2&xFD5YYSM_}F4>>SCl^i#p<)_N zSU9OSoPMPD+}aZ5Yf*`8R6wC3+7U`79W<)=g)+*fjY)o7VSp8u&{__8d-o8)_$ z%$0q_68BnO@D@YHeKyEd$(`8a(K0a$B?MG|LX_w3J+41~!{fOI$Aj$K(xb+r#Cjx%{v# zeN(qt9C=(0eV)CVTuxYq=M_t|WKWM3o5R^rNhL{WCj`oriMC zT4|dsD@4fnLZAi24&(u_qQaFDcVB3KNvMJma4t_2mhLtrvTi;I z#x%CYW^Xqo!W*N@XY|te)46TX!}m;hzp=>@5?SR>L%nr5jKt2xt;n3iS>8`SBVl+- zYvJ2SQS@H}K0b!wzV(QIQ9ct;wu0uJFhF@t8JS^gSQ~?Z=zq&$eZKH7Wy`*QX*4C{ zM}cXRM7zuS4=39`PsOiB=icUYR9E;H7yjych_$2|dbLlQJMYb>ojn6i@>!u10g12> z-FX0{pyUdptQgqs37=irgI!89=6bwO-G9d^$P865B5?3PQCyx`1d$%1mjN?-e@SRG zWx#$T^>_|A%3UH#&?Rhvfjj|!{{R9_0=SPUnU{}IdNhl-XVdl%woqJ^d0V6}z;fgH zKRT=RAf65v?rL~OB~El z!XEwrYpdOQd5igC9#emlG&!Y+mtovgk7zfNS$)jDvGt69nRFaRoLQoM%O6+NVoMyfsu zzmn@YGfv05z#}}vHE&Rrop(ObZCr(-hqA@VHhzBHbZgBsg^Rf?DsT`US;t4oi&;el zYoOn1{MzDbvr-=-d(L}7d}b+fSENt%?zHQ*b!ogOX}OM%#Bb&`whrTA>QruE(dv@c zex5GQgE+j66l|-12o7eK3PrSP^_WwUg&f%7=7lK+K2>ZO{ux|2PvGI*p;N^q{l zk`VE0_0zyOutp>gk;kWvYt;!8b*85x?*sYby$(RZaKDM63Ksgx&;=|ZRw6%D#nR`3 ztH-p6C`fQ(bq+7-(XP*1>QRCH>+)958KvoA1w9GsgRO6NUePM9W2^ zuXjB7a$@L%Mh#YbmS`9`>@8r5m@@5p{~+XCr)MyqVAoP|E?N0ADdeKw-`%C^sRmdW z7ZSJ)zV4iUo!QApm%)e`c&-zl1K=p$V738~$Ehv;&p`qt3cKshqnXE&Pg-BHa}`0} ziX8lcHd0Q1dxiy5UnRWb%i2dlUb&efCuU&gRSI;N>PMTp={fP}unxIH#2lm|%!Y{k zOKQ()8yxIsSrRJ?QmC@=o6utVy<|68 zN&}e(!xUE;iYWdkeKw(Y{&Wx%8T=+t_QWh=SHd!X<5qQ1O2|O~dSCvn(rLVJ^~NPM z*c8Icg)*y|)8E0vFkKUVYkY6UJ5@Hyy{?!;MarTB*jq!2u3ez6mp~;RdMRw-*(%trh0C6fhM)YjSIv0V38U(q)Z)NG4LJ z9YHI95r!_=Bhkd+ZL#RB7iyzyb<6!$0*o&y0nxPTDHCeSb!#oHpFdC=bBc3`QT=Z- zE+odrjrPX@3B}LO4VNA?-k$ln_Pq#4y~23p)_^PEr#mVP1ng~3AP_5h2j)XIq1MX@jklFgtnH3}X|5yhYoCX}zFEt72HanX=2;}w~(HLPQ+cP3iZYO8o z4|jaEzWAR}wVA}#WMSPUir`$e%5s7b z;#w~PFv&5EGdkPhJN)v35P-I3oXWBfo_iO0t+kHe4eGDs+ z$AntNs<}!HgDo90Fc~jn53j*@E)@%S-s2R43U4SB0|$fi-tofXpMjl!jv=YJ4cPAS=yET1d*6o-s1%Gy@$ngYwt7_ORQ z_#%u92BnwmYI0HVd^feMK9|MO^vX2mXaxz&1wG0znFNnu81piFY% zIQZ_}Lvh(4uL-I48f{>Io$?@j2uLr1lgc<4nB{d#`*@8%C^aubV?~ZfihC;bwPw-E z!Kf_m|1tvL)wL<)VUi{vg8D}ov9JH$FivZ~KRxJzC-&StCjVCJYZ)%&JDE$xd(cBM z5XMz-#y}gw(%rG|fBxY41CZpb8AiTgH$K0sxxM6{&WECSu@rEBz+1UQx=$4*Q74!7 zzE-xgm@<>L8MuglCoz#dS@j*$lwb(yGIZ}hf}blN=b#Z*e#JLQoO?SE35gL`ZUl+0 zuN(nEuhiSVm?J4KA#j7^ojzhDQAfD~{?Yh?E6nzkIXmQa#r`~14eBfxK zovzIE5N%*(Aops2nS`15B%|w|uJxVF!aZ zt2Ug+&R8au!XvPlY~76OMA$!q_!$KQVn{a|Btm`~mR>GEtH+>v-p$*h%yUMj^~40i zC3a)VrxPzNlIq{yf_@4Xuy|;}0NrY+x{KUBOzwEbHqvl^T-v5eWxGxwB)kN@uQfQU zxHDEw=W~P5&Z3@)up>oj6@oCiXW!{nkOMMN^%)L2iVk}lt~7GDt}tg!)T?%&9k5@c zEvu0()>gp8YbEevW&O+?Mu&KqLv#MIV%mG9&?tzzK{XNCOE6m)pVCf_nf6ijA;}1W;WT7L`5$iH}_cY<%ibw%$>^_waTsC}<=`7XF2vuAHqx zl~@qVUy)J12rjGf*Wlv6V)KYQG(0R?ijrJN-%%}^Gg%8Yv{U9t(|`V3_{_n-u3`sh#s7IIXVojVFkO zY-@-}^ZMc6%n+e~S6aDwfPxn`R{LCb4p&xI4OhWtf)u}WDIKqU|exTrh&# zbG-^r(bMV^pFCkoYp5+U zW{RBvy#82PJ{4hslWo=^hi??E7^1*X9oiMPa{SyFc7X+N7VS-Lv;}Ol`7oSGSY5(w zYVHu|z+@VNQp%Z&k#LdPK1Jhy@dzal?t)_@RRpH_GJ>u-6MkKdr|#d(X=-d@Xbzdm z1JkzSNoaChT>f;|QqPd~?L)W&y?S1!G1(v`7&oJq4(8<^OL$aQ8g|l0QV-qZueGpW zBM@zn3?g@5PV|bDQ%b3p$=K;WP?ghP)f$Y-tX309kMD6V{RM$Uwvm>9FL0cJ#r?a= zeE|n}reV7AHuVcRRxXy!=Nmgnz0SjA38w)xx9ghvk+Tn(K<&Olj!dV0_!!ODdAmPgCWQFWkYt(W&)pM^CrSI&%ocQI`ixr~q01Vp{=#>Ee`(0hT6}k@0WE@| zZaV5bwo%Tfc8z@&D=3FJJs&dd6ES>`^Se+g0jxsZoK>x+S-6dbLvYd@#WZYm0#&x+ z)80FM+FUrdYua>&I4eXP0t0?H@>)qq`>I#gX=O6eAps9I0NmrR(Jjv|LC~xVHSsp! z*dckw58(hawwfh>(aFJVwhws&nxMlYsy^BkcCzahr3QE_=DHwDTeG}%I~K9OXQ0AX z6pA81N+<63amgcR*-KOZ$7>jelBo)&Fa!?UR2Uel%{B0t3OI=2>kCP~qdHcdNhu>&}z>-82L@ivK2* zuOe(em>2B~Han;~NAPIt$4kt#s3Xr;XQ(%~Jh!Uuo^()zw65rZnnL;vVM)zWS4%hT zS+aP|*Auyacw22DGA*Pmo6fPiO1OYqXebYh8UAz{FfNKGenfbF2kb}2reo1p#5TA) z^f!k-@C<_>tDM3W(CDKcreI-vNOs6i1?Uvb`&7oP=DwQ{v=v}jOT;lIcJQ8@!vXT( zpxtwUc1&io?@e*DlLR|0yY;Apa6n<g4wHe=O7>WL&4+2ZHfe zL?hZD`Lf~Ys)-p1GdK%Yf@&w%%3Rimj%4`EbBBmWI&PTC0ZBDsG+aV_OtdOpbO72x zQsm6dRy%v8J*cHafu-!u!6R{TcawKIetxrmU@`YryKNj7lpCtHY%2#H1f`*qw5?$Sv6JvH^H&0ge-MSWdLLF2x6batSJD*zoz#HR?`GawhR-KcrZ!xr0r zr>P4&ugj&TX@P2diWEt4$03C9b{8Ru4ydIEc@D5*9%HhozPdvF<8ZXlc$_0NaQl`u zU7sJtFdeK{V*L)g!9(UQiVfmxSP`Dr!!s8&{dCm7mZ@3NJE*ydc}aV|^ofGajr!(g zws zt*XkQ-ov-@4}Y?Xu2R%#t36Aa8dSnVz%2v6CR%e3M&ZD6P9-+A(;^qCM=4-`HqS;+ z8#F}cchaYf|8s+6F0e#m^?OOT_hWuqlpCT3(Q#J{?b7WEm>!$oz%2cL~h z)fy+;@{^zeRG-8+6BDTgARPIBKb5}112E7xl`4mk)|qjE<|&PVvaCtX1$#nNhz%Rm zoSSZ*G{``~mEIH?_zqNUrTo2(3!`ZEvZEey&<Z%hlc_MAAg^{Ai_F+3JG7cf`(7RtyHQ?6QHir?cOqvl`HCf&6cfcv#tg+ z#|8SvxuRk8G+!a331yb(roFPG|5)dQLI;dfh=%x>zvtL>enRtL|5?ja7A_`$&(rDS zGfwqv>e=tQ4HY0k)XLC<0`Pnr@m6-lwXo&^>)#tP84*z2$2Jjv3Dfi>MJC;k(@xD~ z5%bhtwmRd|d(;6^OlPJ{fiD<-1zO<+0J-1uf<bsRH^Bj(a%-k*OOfPZ$|sh zd>%g|DD~H6&5n=486PkhoNHO`zES5Tp}8Z_1P&-*bOFm|D@}s|)p^9rG57;A(d~D` z2lV;$FVCCxco&R+_-YmnHqUpS14uw0iqX-GTp_`y6a7wpL+Q_HA}gFI zQyaQqd{EK|6r76F;Av9o=S=RCe>OQ*PoER&@h6OpCY2zPl2NEY}#eCrmMt)P4*U z)HXOS#^ox?of%q}TSpjYvR;+@qEviXs&K*0O)@;a8o=S%DQ1aO+yKqS{yHb$kq_cmd;>%1loYD5f{=hV%L*fTv(dnKTC|4D zIX9^01Pl1gImXe)_f?CPg7Ae-5P3vmR}z?WHBCTbsGPYmnkoN@Be}a81Fr=s1<%oc zAhi!evvAPF%xq*?_ePP2_yxw{+>ys`nDpNsKviK2W97GJr!sAv)Zin6y=08y_$KJp zzUvD*cp^uoO(=d#LvvfshNvqj9+2ZjN-k>Qk?JpXBBMbK%qWF0G)FEmnWWTFaf ziA-7p3o5$W_dB)Egj*9XE0s*nGxNrO_*NbSbm25!DW8uL#%pZihT7R5lB-6g#2u_H zfntda9_V#4;b&?Yl;&9xkyKVrzRrH_PFS>OTF-^c$o7N>TQutgBy)lpURujOn&{oe z-oU{!sAsFII|5A?cyPKnLoT%~x1Y?TY^cp=>p9p1`mKPcZ#T56`xisq9*F*bbH2#8 zKAP+IP+?v!{)k#fi1ub&lOXuf6WU2DDoKQd+m=reY*bsf$ySDWYx5TEHDhqNUoNIK z^oZ_o{=H6_)S|I5?*D9$^J*r#TNYWh!s}*Q&ic2iY-E(!?ejrP(ugqCZwX;UXU`JS zJE8e$XnY9&_Ftl=y;kjc-rf^`6aS5fiZ&Pn^M9M~@5o9VtI<>KPXeSZ5c$tM3Z9#_ zJTE-=Ij$7-a%Es*6@)`BOV5A_=*)cQCjmDH_D-KQ0H36v=O9>8Ak!^y@x0dwQmQK^A)QvX^aozfui(P*?0xuu%~ucCWU_whuj@F0*MPMMpe3|U zIELk=VUMEGmxY`6eVobL2fx5+<>@it$nWE2h|nY&vN(uSW#6#V{t592C3!H|tx474 z7y!~!u&3?nkfvD?TmJ-qkdX{LJ43!|%I{v0^uWtFRgQVKkw35RBrz(4%mrlFno9FY zR&B3@Ch|q{M(sP$NzY`c*y2Y6(RjC4+ZJ0sAjba8ZrIXW2#RbuqZ$dHa8`FHDfqPj zHyGPlQR_B&9N}&Xqo}Zjc3K8BAt%c2X4BVx>WM>zL%ZN36|Pu+Z&9^-cLmXOzPplD z(JuW1k#)v0ZFTgKYjNq2FgtRkc3>A3q(tY~uT+rAs8A(m z2<^I$8iT$6WRK8)QZN1-+Sb%ns#9A<(w7Bvkj<|YOGwDybXj3II|JPKr&mPEZ{E1> zQbqxzX7KtBP?AwqVLY*25(jGX70(6E5h9g!;QzY8p`s>i5-|u7$Mf_>87XJ_uw=GK zXZuKg&Jz|;FJ*BHt*jP=cWW!hJN6#0RNCWMt`(8NOK%bNo+ zn)(_aL2sy+sBpD88_SizRt0Cy;gwgvv>P;B`i_OrAC!1;YZ*B9j^<*m>_>sUcLrp%{#&Iv< zvdgw}%#Q<7wL#B!%o6uxMM76ska3Do)k+uAJ@t~a8Z)RRvvp)5w9320FxR2TD>-=d zZANgRE*bTncF!`@;Ra*2VVWW?U^dSoxpma>Ft zm##X0z1JDF_}y#qvhlj3Xr(ji^cTkX;M~~o!!d+eh%;98+T7lUCGE8yb9^qZbAy(V z*ndUaJa6M`@P?5ABFOr;>EO)S7T_}xPX)cxPY21lfQPY0XRPX2h_#!Jxs%?T1od}) z-e@2kUlDVa$cKQL5a(K~u{@bF_)J!63ca6y48OYV1xn9Imyj+$p!sr`Sum}kev?T^ zV-uQUG;OMRd{tW`j>B2cEb?i)W+k&@`O*c}?hpCVv*rP9@>a`$WIp$9^L zh#vw+@%$}l3S2m3pirB`)?)6oyD^AZ+I>N(cD(u65c{lKI0m}G@ahfNfY6%+|2_0v{9y|+$d`ev+ z1TJV}Hpg_G^D!@}b~?EIhRlRiSKHNR90ou_tDDHb+DwK@14M3LvZ;g)149MBc0(V= zJ*{J(aWa=2@yLM-=>Z3O0li)~*mAZvqOB$0Axi@it=Q7SE&OyJ|d1D>$?YVuk{q4@_0JRTY?$fq7kjgm3 z%@45GwQb*pmk&`@=^67_SlN(_>7CcNcw%jKMCYvYz}OzkAE+}kmqvVh#UNdUcBpVa zR!!bQ7@+D5OFs}j;4Mbn?)5BFY}`5DoFun2Cm{t@1l7d+X(;hJe)n8|^)l0^Xus>( zAQ1BftX=rCKfsGNXu`IgT+Kn;@0M#O~oTnvt@915sR&m>4WXrL{)BUr>QoargSF-IwldYk;y&mCk> z_@W6zwSMv_jz^t*08ZCWK=~{G|k+n;em$iFPOqwt#SOm*P|Prc13+%QJ$C|88i#i;*>FcSU5tDy;F>c`(JL>gU=Knv^s* z?S+*Y+x@tO@=u5S-B62}e?Q3%FcMP;5l4;6Z;e-QRAB%TtBEGT`oy|m0p#&u7qT|S zXCCj)bXJ0j%z{H>TcV~sfGMTx9Nu8B@G6`(!Qj+Q&rh4xNZ5Lx!!cE%m${C4<|UMZ!zHFEOLsqwyDqdoUY$^P0cN$f1f&ee?jWZLOr0Vke)cf z4Tu%g(thjA(SX|%*h>yARDcXU1A-InY*i#`_h3;T>XR}r_8SRwpN%dirL1gRPb^t7 z{Uz8*!*MA28xeaV^SC$(0#UGj7WanG@Yu6aEF0vxL-+>)a*|##H%}0oE4@Bf5bIB! zlxM6YyOgk#@lTq+JuFgL-hDcgS_%Vhu#)Aa;M+T;RJ`%wtNu zy9cs$#>pY+WPFhHXPlw0eh#Hugwa$O*QC65hEC<)-R1QpT-9j-*-?aGG^)~#ENxL( zTpeMV@BvxPO`r2bPd4Tx!m(kwA=%z?8L%Gi0@5#0{alD@f7+~JTwB}0D_dVt`lbtU zs7{-;TD+Z!KzWP`ws`|*CSivpJplk)!IeE27SF)0xK=i}TuQbtu>^_d?T$VFN zL2)@P6;k%(mJlJ&Sx=j)FW*66BJ}~)%-vK;r_1e@_2X33OSYLSgpau|{D{!^k76^4 z^jkq$+|4e0f3;}Z9ZZE5EqMk(T075UnGv!N6WO@EbM;8sWLA39^@7UM=2aGycsaGF zYNm@Q8x{E|?B^2yu*;DgJ%=NWnG;G~0;Us)#A#nk0g{1O4(O@_srAz!lPZ?Ky<3D6 zU~6$|ii?wCERFp10}XeHP}g6utivL%qDIrEEVuVqe};Y-Dif)bW-`{vE?3~{wBf3c z4tqYH8MvP};A+%Cmhs(FcOlL+@47#o#`XjSEjmC>6qqbQX=M_crQdCBvYCsASPvdb zDOzLBOjh_vwGxer8_{hi$pjh6KhZ~0D#Pye~>5s%-p`m25Syt;@PuWvsmjT8vhH)paCFa@t{o}Z164(A*sVY(uTb$ZD#(u z_F{=wok?le{Y08dcE9RD_|Hymn7#$w{<~r3Fj^}{>241RrLaSUBxz1LinCPo7- zZ^9?`C%YfRF=xf+g+?PK@8ZDSxkauE7QZ<9`Z;CMdf+eciz`)-K(5 zQy4RJ%Ku(?Kv#f^S|gj`i|j^kLGaw<01b14tGsGP38^Nm$V1~1(n~)-$_RV~KMqh( zf7c;ShJG2oFuKgZF<0lsjU-T-960iEeAmqHp|SBmXi|AAEhxa)%Z_Zr$|Vb;Q+(Y* zCXoMjpQ;ucnDCt1l)q%w={REr0h><^7_iOr5XSN^FT#w}?JiYH#g~!*m?pM7qD!#Q zIc^qEIR1jRT(_$@U(S9^3d+2e~g8sp~B4?!&y8W90mQ@NII;=(){ zad%Kz$#lu1Kx>XnjfNe7=)&Zg^6hhpv}%s*xM{DA~XkvZy(Cd3`>^&ZtJOy%e{ zf3jZLPCtLdQL!iBXX~Pg-v{(nC9WV^v7bGdjcTM%e-bw8z53MgZy!qIe~>XtU$4YN zYjPAeN^1O?o|+ZK2!s^rZf**GuThFQFOjXFG;8~6i3>KWL@Zs96IE649JcKfiAhKG z5y!V%&Q8mx4qR8f2^8vWVwpvH=X;`MW~F8s7UJcxP!B*er0q7WJXbA&2Lm zpW%1wxoD-ml3Ooz2~n|-c#GA)JH?1D%A|BG;+z}o#27x4e^6 zgwYg3#Jyuf-E8ynOTi7$6)$Vp%|&|nw{9SP!-0!5!ja*8_fjSNmJ0t=I0^{N%o z#`H8CO$M7tUZ;rGp6*HY^e=Hpch0S`mfouk>!0z4!Zgo&-YQ|j18GWYvO5un1O$k$ zeW2~Wf8cnmili9cH#_Qb`3#Zk*fwt3N$0v!xiYx&qvnqKqA|zAN>Fo6{>w#sM=_%T zsU_4oW^!~nT0Nz&1zpdD;|l0?M{BMxO7J|#R#v{%M9o?}#Byx-gdu5@qIpQEw{Tsl zb{qX+3= z=v@&=LrsfpwfJ;fxGPh&j2twj8`5cc(uz8-J%BQnqwne_-fR&*hi%A8825;6>8~I4 zfA!$(`@SP+8Mq$`DXu^~JL9*(Snfk{5UB_(l+^v~`oQ-OeY_S!yr&E9nSrk?G%PJ{O?+A?4;5-b0LAVVcRlmV zusAN6;qn?N;&&f`A1EdOm_}gTZUEG^Ow(eh7MYc-!MzZR9 zWa1-|^&C5Q3SZZ6^FVh`nDHCvAZK$UW$)&98SDe)t!>nJZ3}q<>J4lb-64|&H04J2EtTP_D%qKSA<;EPXsOt$VJlzIEQs1<#uW0;yl?OQvGK z7_0UEzERJmisr8inL|d}*Yr-sf0cyMdcO~1Vge znCl`7Dyve!Z!?j>t(4(aHX`4QlRMrMMjggSV*3MS>?3v(lVg1=#Yxp$$XlV}nnEp= zxL-RGR=DQ-^%?qBRl~+rKG88{>WjVUZj}bZH@dezj=&#yv=<9}R>U#je+n)$Vka4S zTkxt3&2Ng8QN(267i`yrGq)&N#e&n58?DCvW(vt=t#Ic3Nw+VGfoz8uaj&QO} zM%CJY?*q(4$T_T+Rw!8I+qe#Z(hE4f;Y*vBqQtStsq5LtGg?2HrOS`WTj)L=6P`qx z)(*&mXw@nzHaiHaH(^9yf5_S;Hi@r70LS5ZUhD|r$im2MoM6$~_2fKzzYsN?`~w$^ zu8eC>q<9o}ksR+En z+h6tBWZ^E(IEX%d2gn!5(8j9o|5xfc}ZdXSIT!ue^C??syn=w`R|`Bc8wT+46UfXxRY> zdcWtJ3++;1_L*#+0NC+#4h@GL0tn0!lS_idna*MY#!NpM0Sa!T9O_NkcYP}yI_R~o z8qWalvGX!qr`rs*dm0TK%bk>YnwBYYp&ZcxgG}E=#NoVye=pNG%K^z6N#@U!_;_TT z2b^guN))V=A{GGPnjC_c3F=ob@CTlSkH|zTalt&+xqns5O+b>mB z#sNKu@-I(s3}WbyE2D#my?=d%BGN$46Ai|12KRBjnHuv%|M{wsQ4=_&VPJ-1uy3)E zOQ#HP8xio-e{3juJGznhOG&SynpN4rF3^*mSJWyGHN^qTP-~s#ie=G?t-#(>gp$QK zw1xghE&|y5>sAE5#+eyxKF{EJx%%>Aj+KYiu-}p**m``YXrI|-12Lx|7@$y%8u|r! zCHupfmKXn@B12X-*0;u@$$z!fw3m~V-yf-Jy)&F&h3yoXh4N&MCU^}j5M&7lVNnV9ZH%2oCA~CTp#dXtx z|6*3q`-@At^zuH+Hz-o|QZju5ag9gW_cl)|e_3>qg9xVZ-b~2E=8XBZesgH=-Hdl_ z0`N?nA-b7b;x(k^IG^$_$*W|;)PuH;zDbeTp@*x|l@;taT3wevFYtdyH_TaQS38wk z^f=xQYTe?j3k==%g8R}udyRClVS>_|3=C@h3-PjJ7iIcE+Ldd7^w(WwR*P{QLFotH~+zfGew&7{O1bf?0yV) zsimi*&(aYx9wJSxI`qSj3qPv$Rj^4Y25=CBaXJ^1vq($Q-*HSM!&)11sB%dHn*4!ab!s;DR8zYh&#gEOI^n`LCdih0#udF&v^ZIH8IUN#Y#UUWcKf8Auc zDYClst9@7PLHb&bHq=x03aTC$4(es!R)&KbGkWwqxQd|^K#*(V05U4YDjAX%I*S0w<5{hruP@y39dNh9o{l0~fVvGd6 zrR9Fdnj*s=O*SkjHca)Hqr72Lm3s$Ld*LVc zP-LC0tw~Tr&Q^9KYz9V@QsIne#e?vo@~%}}C6tqX-PB^VPpi)zr=g?%e`J;El7)wZ ze)J^rs0v`=LUMt?^kt}_L5ueq5%lpMm=%TE9p@|cZH%GB52N7+I#W6gLzxK_jh9}F zKXoXMb4N9Mif`;drV|+TC!DOsk#$%NWCWfn6!JS1%!cU&qK|MFl8UO%X`o!UVLZ|e zE{S_;dVp1a6W~T~- z$AHNTsz^q|wi(9nHwGMU3S4oWF+I8N+ssI%+yCFg8RFO;1yD(L7&b(BXCZ*n!eeVL z2m>q%@FLSb%f}{j?n+DCoNg2q)Lt*yDX+yTA$(uK#8HUF8j_yca1u}=!!+5i7Yi9y= z6`;G@uBs}b6>aT?8`rd93}T&)kkYdPzlDE>P4oQ+)%l*cq9ItgCYE{plyzqgJI*ImTiR zP_2eO$FfynW$`++835#Fdy9t>B@3-V^ zjqw>-%5l~xJm?@T?)>bk3TTxWUP2K|uAMM)bNy?}PviG?H|4nDg@BZ|Iejg*IMAw6 z*34ab!3c$qKe~xy_jxGM`5Re``r>H`FGT zZLGv~e*w>dZfvEZmSM3EF_hk^dB&D`!;VpN6W)^W=re6Qt||%;nMRM1pQ4Dh@)}x> z&@V6={(YXzPJsGL5TqdZ_mzC{XfgvIBNK`9n=J)nvX{i;=6aN)^|P$S_A~0Nh&mxc zDZ~Lb$t9*Zi`-;r#IITzTXA<|lhvGNQ@P?Ze?mi16^^w#9f$JhG)YgG5a5R&*9<+G zWAGJ5XLokul{(VJs7?1vJbFAzf#Vd!_V07fWb2XbF29*@TPkO<7_q)C`U+~}I*0t) zezJBDczR(wG=Eq8Txr({0j)Ajf=zAa&Gr>?X>Ef2<}KgiM9SBB-44dPSxus*)Q^Lz zf3EOh0RfDyHUIt_!8IQMMoqbRfL}i9!%2eH8$(zR=ibxqY#@)6!X~4Xf*}-dEBz^d zThvIMR}}pqpc;PFn!VupFc^rdP6ze1?dW{VGK{>k<%-8F_2MBFM~Fr zJ@bnOKo}5yKirW2B4XQcTFUZGf=?;b#`shz63_puEu>|DT$f5s!s zjb0IJPh8E_0jl}JKFN_Y1b?dEw!frn}pE70~*N|hH z^jqp(h*$bsPTXDItHdqKYU3Cfe?U2>9qcRcEmt9mER<%e4=o*dY$k zjJ4Bb&1eZ#w_r$7{X1s9h_8}5O!J~)S?}qLfYGAKfP`PTQktkdNXg2*f5lv6lhD20 zS>Up9>j6A3Rz*ufgFhMR7B71k#Fa`|&k&5~5^9(uWkJh>XPR<3=2TkOYGR3zaP zSuV?8x6!Ldk6)lXyAB3$aTkdER&i1)qr(!X9FGXNrOgW~Ykr5zfoJAx{83-?5vt#S zNW`zk&hwNv2A_!E!ju05f7@XW)})$~zQts&U$=N~zNs(1rY(~nO=3PX(D7)}DI=@}EhNyqsf!#?3 zxNTDX;*>vP;c;xxwG3zzUm()D&(~%e&K;TXHqO9&itMHu!4`jIuj@T$g_t zPe;l(e=r32@EE7_e;WKl1beos9?)zH8UB^ElCUa+^12JC>91%N@Wlwnw_04yduwvt zOL8GNGwFvnktTSR4*5O@+pc@3}y+vcU(9Ae7V7GP6c8^lu-Fueob`Lh}==6 zp)Lo0_3fN(e`KK ztd?^YMg5N=*`2=1T`t!hiY|{uN0GsFkS<%dM^!OyzWWVy?F3hRhO_H6iZK(vNM;FH zhOq4Sk6y29&jN2arAE)QF>H})F0Y;hC7ZlKGS2z_e*h7<&`eZApSXcR>?l7`Q^elG zf|v|Vgl;=rT`ic~V#ohxepaU>_z672KPjr?M^^qnBHH9u+S)Q&$dwtV8ciYkdb|dd z;Mpt(`ECNpJQF9bx(1X$8;*$=0GiG+rVGM-%Ay<-5!#!cfr*FwX>XH` z8F(;-e<^PGCih5(fopdaJ&qCc^#0>;*c)dFyLe@GvRvfxC9=qZ{b)82O|ZLI@_c+eV1 zG{)HmK#Wa`(WAhMae1PUYHED2LRX}BqhV732bYn(c~SP5J~glnN702j>DsJdfWE<6 z#&5d*RPE$9kFxN9U8wl}+6&Ft2=t)VutL$>QfS#n7knpFXj9hd<)UXMe~r*k%CR)T zf6g+`_^{vDHVG))iRu?>;>ze>*N3Ik|ZucRA}?Te3xqV%%%xEWb|DFkqK# zNyRDp^UjXYraQuY94k0z1tw(gemzxpf0D}}_s0CV{9McLHRCU)Q$e|_*@fv@h1}z0 z-NK?!9J=sg=!g1Ypy&!M`MWyCwH76T8{D8IfnzT?w;xude|>&k z)^-oJ1SbCVZ{lH*IQ80&fn6K7*)sG-HmE zK#9ri?9(SGjGnyWFoEB-Ll?n7_@%!ia(#_Y#FiJR{@RrgFY`}n4!`L%{=qJ-;xJXr z;b$$3uz<6Zxd}LCogb*?q%#Y#e=`Ycd<7vJkYJktHJ_w|wlk-~VnvnaO9kB6W38KI z_U*`^M~EfE&b_PWg}>Ie6Zhi|m@9cr{W5tV|6+y=aY|#}{5GmntkRO;u$bknXlM_E zo0{I@>K<+2-}gXoL?Wt8^goXIG{u1cUOwCM7>~oX>M2Y(^(6ZkjMXT}e~_GW^Z&Ms zTP8$3wy@C>N^-sDKQ&K5U(I4Wq56HH7*?;+ukqJCFc9yafss`<>)rI^i$0thFlns` zhNCTKA8qYe1Q*+-Y@fEfBfZB0FPN@TbdY_F{G?eO`D{5Ku(zDTjjwqm48St5gi5y% zC6qfQsfGk~7duZ`LqEudf8|&;1`ltN^hCU0lH>a4@wtnKNU5dN04RW(yv1T!`_$v3%h5c%_y7vyy%4_vOiXIu^j24!5#J4Z6%t@v>=9K!ZwXSlHBgkE^3 z^@MU8M{WwWt^Rau!&|%MJL^Hi@9K)Qh~p-fTtD=}2XB{aYEm@{Y`W?ErApz zmvxk9z${6#lvpTJe{xpok|Pgtp3x|_+-IY?D^KWj=0xxy|LUb~p;4TpQ$lT+064!J z^RZ@^T}>nPEJGOp67!gjm4UiEAD2>lVTsubEh238r8Y~G*Yy{?;O=`gv^Je)5That z1*4Je8iF{t>=WO?EVU&tDHhbhN737oDD+)ZvjHRtPVHMLe?RS0gG}qjgeMOTEC^d* zGRUcVPB2P7wINIWov+V=?CBfIA2U*mWTS}+3;`V)SqEHZ%#R+DQX0pi$&#bbRuu4~ z7;Oq!OCwA}wGwa7I{Hyt`60*t)as`wov(sHulLRb3qUH!tMA-HRlqVvL0_-F_>&LOae@kfY(C{ZR5-=2Nv}iZlQZVx- z_)vtjKN4neI`LO}s1qY7sRHr%Jpg}rn7<&TXQVdI6#6wF*%M5(at!qLkp!`$?KG02 z&R^)rhIJl%;uO!9_*S6zXmL9$t%@0${!TWQfL4`${+Q55qQ_imXj1XKWdGt4*}pM` zmb0YI=sA^F1|;n79{C zi}#BF97MFHH=j=&^$(%=SXtqH)c7k31KLSo-9OBqX`2xVTGRmD{eM2XZp1PEQ||@b zbN(DKVnDrZQr-vLYzzfqTJO}8?$n8$Jk)Wnurf}Nf7WGbEsPEf8 ze>3gId;6I+dd-yU^OC{qw?Q(XwfCq6!J9=-WJ z^*;t7!!R~fjy0*KiCfy}r4d*ulXyAIe~h@AgwhhBH3pR6@MRXjzZo+R=DDc7@O*}X zngLPm`Zt8gO0{ifU4P=a2B_o-l)ge{Ph9a9OTH?F0|vE$4;do5EnOkh`m+sth|ia< zS;TY|K6rS`KJPP?u*=y#rL7qmcLk$Jm;(AB=wKA3wjy7rsE=!hqoF~^Csj%XheM-SnP>7V zSnm=yk|P*#R+t?8iPUUrcgasPI|1|}e#964lQ?}YUi_L-^Q9SqXy1_+L~mtgJh&;= zL*0zmb?;~yI}0NJk*Pt`lzD0+f1N2Rqw3d`DEyw^DewTX8)Os}p`p`aC@ zkC<~O<1u++=(r(z*Ln*E-}1vub8_>U1CTQ1MDydt(Z*jjTqI^?U1;U5XU~a8If1$r zHe0vymO1-A0czJX+V~vUeK%DQoa-Ercp8*xrmJo-3thohIDs7Xzpjk;e_H64L8CD} zBp(IO)rr^*@A9qqcnwN(xwpg}WBp9oi-*X!k0q2|SHRh`nwP{~TP17+L7cO3RfPJ9 z{F^K%wN;{?SFoT{i3Ej+_)`DuWaX<}R_*E)u9!+;Wn7x3r|Zbmzqd=HPRBVInB?|G z$cO0g!e1|XB#x;=efM4sf6^R%8BmokC+SNnwxiQh0D3OpbZm{3B#lBJPmxqGj+1k) zhwf{i33nZl;P^r*gWA%$&?@x|XE5-h?tTt$qRkDY?K-kJ>T>?Ez|ux(MrY#<4Xs$~ zBAxy20XZ{=mR){qYBe|M7x){WW(lUu2qq^u+P8@I zy3a?I&2d;8zXfH2-NdnEKcW}pJYiLxBaF>^Z#yr{=Kpelap{r%*1!$h^^~pO(Jsm~ zF#JZ57o8^Ba!(GWe{@V#0A1b!#-@(P$?%3Lzf+vM2h+b9;Gw2*C;wV9(h=ms#|34@4k6giW2Lk7Ne`c$px1!WkSb4xhoMAyp zfd_LhfzwS>tNko+nS13Ms;bI zE~i_H`TXf)u-&pkvZ|gI!od2!a!Q4n18uU3Rx#G!6S!5@*!~RBz-+nE0y{P+Lu?wc zF^=;iD-4!geJ|T`g>v2Em1y8wql8`k35~C1rKLeAu z5inP@IwHdi^b60Qh3?V5>X$&P)wbKA>7MhSjw_-N`dyA(tA2sQ81#yvqz?ddV{m8i zVO@`Y^HyNXD=e2ZaSQEg!#;&^rvWhC4^GF)l&ZO)e=*-D)tQ`0ir5HOwLyGkA1qkb zu75)-Nn>+9$%<<57|Bo6uh!FcOZ8LwC%!Sx5>~~QjQs&UQb$Yu!Nqed0*9WR zRqPZ-wkaL`z%GAUPgrpy81R$;cYBhC5;o65tI=a#1DT5lX`raE8uJ_2h?7x3ZfAn!CGQ~`!?)C3K;mjYysx{sHAzYqN z(I?K)YUNc-c>z00#MJdxEcI*vw-!W@X#%3_zfX7^+b<{*F47O4W_X7vndX>AF!xh# z?pM|;T!>LNv>oQ2@rE2qe66x+?NXG1F+P{OG)_vp+V%y^J%kKNH${E62hbtP=Dm+7 ze;!Zyz2+mDft(6WjT|>pX4crw%+F0UMcWANty$_ZcDOxX@euT6t4&%~IOE|)fL^V? zfZnS*;U2$v;%y_+BTycyKm6H&I~@dof>g0!I~d+Pvv&%2u?AUmb<*xM3|rHv#FEu@ z$Q((!`eyWiXcvwfifMNQl~Dh~>I~vRRH$D5bZYfyM%aSY8%vnk4$ZDcp*K}Uo1c=Qy*!;c%8^=a= z$w;Ws0zwP6I@MJ5(~!39Slv3EeKk6O3Bf7iezpV4nIBGhfn!+(g)#q?f17$? zZ6UALhm2T2Z3apCFQn_97d&wh#F2SB=R9Fa%m$|lOPh%KYjROw(oUz#BxTpZ`y8** zjOi^`%Z80(1pNY86KX50ij?z9Lq|h8-gA74hG9PhG<0{HiKKp4ZTXZQmQsU=+^5RU{<*%of>5H_V>Azsb#%d*vLPP)K`JOWt#XJcA}BlsN5wx!6n%006$LD7*jx7NedAm$5uvThWC+ OFb#_W000000a;p+)t~qP delta 110614 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 z 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

    i;h&&(~mrX6KbhzcnTs(`!Z-R80BKSIn z_UG*Km4O-kOt{XFjD4Bp59L)4ahTyWG0DRQ0gb;Sb#y|(rY25^>b<H&>d!MYjqkvlo?8k@*c?8N_vTMd;XFMAB+uW-@Igj z5?64^e;puG@Sd;XLV&=sV<7^Tw8YK(ND6JhkqHq25WhM>q-yHg#-FwghmHpfOgz

    Oep7oZX%Apb6ZxKtRW^W(a2#AF{yYd40-d|qk$IOI8FP|P)Ge~lul$@=sPbY~l` zm&|wxA7GuB2#!vu70@>t=xxN_?v?RbFR;$Rvi6>9#_2=pTlm`oY-Bu!AgM|XbVga{ zh7}v&0y#gnf6rEZS74By!}lm!lZqEw)_U2kBQs!80cf&+5Eq&fphw+hxk{Sn>!hnv z(VYBM0zSv5P&3>JQLtxtm9ITr((isG$i5*|Uz8(0Dl^>D!0~S#7TnKAkQ;PnCOi^ZxzmhYGxWDb#GEvi^k=SwWt8*^P35KN zvufFtH~)ZtkjzG5X7uBJAne9C>$b-AX6;~JSDXN>OAA2PT07O+Y`-)UhBNsx3f`CPX37tf2n

    HeuLT00C9!6 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 yc@;} and \code{<=}) in the input. Accepts one of three values: \code{"all"} (or \code{TRUE}) to keep all operators, \code{"none"} (or \code{FALSE}) to remove all operators, or \code{"edges"} to keep operators only at both ends of the range.} +\item{round_to_next_log2}{A \link{logical} to round up all values to the next log2 level, that are not either 0.0001, 0.0002, 0.0005, 0.001, 0.002, 0.004, 0.008, 0.016, 0.032, 0.064, 0.125, 0.25, 0.5, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, or 4096. Values that are already in this list (with or without operators), are left unchanged (including any operators).} + \item{mic_range}{A manual range to rescale the MIC values, e.g., \code{mic_range = c(0.001, 32)}. Use \code{NA} to prevent rescaling on one side, e.g., \code{mic_range = c(NA, 32)}.} \item{as.mic}{A \link{logical} to indicate whether the \code{mic} class should be kept - the default is \code{TRUE} for \code{\link[=rescale_mic]{rescale_mic()}} and \code{FALSE} for \code{\link[=droplevels]{droplevels()}}. When setting this to \code{FALSE} in \code{\link[=rescale_mic]{rescale_mic()}}, the output will have factor levels that acknowledge \code{mic_range}.} diff --git a/man/as.sir.Rd b/man/as.sir.Rd index eed7a5661..279038b15 100644 --- a/man/as.sir.Rd +++ b/man/as.sir.Rd @@ -34,11 +34,13 @@ is_sir_eligible(x, threshold = 0.05) \method{as.sir}{default}(x, S = "^(S|U|1)+$", I = "^(I|2)+$", R = "^(R|3)+$", NI = "^(N|NI|V|4)+$", SDD = "^(SDD|D|H|5)+$", + WT = "^(WT|6)+$", NWT = "^(NWT|7)+$", NS = "^(NS|8)+$", info = interactive(), ...) \method{as.sir}{mic}(x, mo = NULL, ab = deparse(substitute(x)), guideline = getOption("AMR_guideline", "EUCAST"), uti = NULL, capped_mic_handling = getOption("AMR_capped_mic_handling", "standard"), + as_wt_nwt = identical(breakpoint_type, "ECOFF"), add_intrinsic_resistance = FALSE, reference_data = AMR::clinical_breakpoints, substitute_missing_r_breakpoint = getOption("AMR_substitute_missing_r_breakpoint", @@ -50,6 +52,7 @@ is_sir_eligible(x, threshold = 0.05) \method{as.sir}{disk}(x, mo = NULL, ab = deparse(substitute(x)), guideline = getOption("AMR_guideline", "EUCAST"), uti = NULL, + as_wt_nwt = identical(breakpoint_type, "ECOFF"), add_intrinsic_resistance = FALSE, reference_data = AMR::clinical_breakpoints, substitute_missing_r_breakpoint = getOption("AMR_substitute_missing_r_breakpoint", @@ -62,6 +65,7 @@ is_sir_eligible(x, threshold = 0.05) \method{as.sir}{data.frame}(x, ..., col_mo = NULL, guideline = getOption("AMR_guideline", "EUCAST"), uti = NULL, capped_mic_handling = getOption("AMR_capped_mic_handling", "standard"), + as_wt_nwt = identical(breakpoint_type, "ECOFF"), add_intrinsic_resistance = FALSE, reference_data = AMR::clinical_breakpoints, substitute_missing_r_breakpoint = getOption("AMR_substitute_missing_r_breakpoint", @@ -82,7 +86,7 @@ Otherwise: arguments passed on to methods.} \item{threshold}{Maximum fraction of invalid antimicrobial interpretations of \code{x}, see \emph{Examples}.} -\item{S, I, R, NI, SDD}{A case-independent \link[base:regex]{regular expression} to translate input to this result. This regular expression will be run \emph{after} all non-letters and whitespaces are removed from the input.} +\item{S, I, R, NI, SDD, WT, NWT, NS}{A case-independent \link[base:regex]{regular expression} to translate input to this result. This regular expression will be run \emph{after} all non-letters and whitespaces are removed from the input.} \item{info}{A \link{logical} to print information about the process, defaults to \code{TRUE} only in \link[base:interactive]{interactive sessions}.} @@ -122,6 +126,8 @@ Otherwise: arguments passed on to methods.} The default \code{"conservative"} setting ensures cautious handling of uncertain values while preserving interpretability. This option can also be set with the package option \code{\link[=AMR-options]{AMR_capped_mic_handling}}.} +\item{as_wt_nwt}{A \link{logical} to return \code{"WT"}/\code{"NWT"} instead of \code{"S"}/\code{"R"}. Defaults to \code{TRUE} when using ECOFFs, i.e., when \code{breakpoint_type} is set to \code{"ECOFF"}.} + \item{add_intrinsic_resistance}{\emph{(only useful when using a EUCAST guideline)} a \link{logical} to indicate whether intrinsic antibiotic resistance must also be considered for applicable bug-drug combinations, meaning that e.g. ampicillin will always return "R" in \emph{Klebsiella} species. Determination is based on the \link{intrinsic_resistant} data set, that itself is based on \href{https://www.eucast.org/bacteria/important-additional-information/expert-rules/}{'EUCAST Expert Rules' and 'EUCAST Intrinsic Resistance and Unusual Phenotypes' v3.3} (2021).} \item{reference_data}{A \link{data.frame} to be used for interpretation, which defaults to the \link{clinical_breakpoints} data set. Changing this argument allows for using own interpretation guidelines. This argument must contain a data set that is equal in structure to the \link{clinical_breakpoints} data set (same column names and column types). Please note that the \code{guideline} argument will be ignored when \code{reference_data} is manually set.} diff --git a/man/bug_drug_combinations.Rd b/man/bug_drug_combinations.Rd index 6311ad509..592cff5e3 100644 --- a/man/bug_drug_combinations.Rd +++ b/man/bug_drug_combinations.Rd @@ -45,7 +45,7 @@ bug_drug_combinations(x, col_mo = NULL, FUN = mo_shortname, decimal point.} } \value{ -The function \code{\link[=bug_drug_combinations]{bug_drug_combinations()}} returns a \link{data.frame} with columns "mo", "ab", "S", "SDD", "I", "R", and "total". +The function \code{\link[=bug_drug_combinations]{bug_drug_combinations()}} returns a \link{data.frame} with columns "mo", "ab", "S", "SDD", "I", "R", "WT, "NWT", and "total". } \description{ Determine antimicrobial resistance (AMR) of all bug-drug combinations in your data set where at least 30 (default) isolates are available per species. Use \code{\link[=format]{format()}} on the result to prettify it to a publishable/printable format, see \emph{Examples}. diff --git a/man/custom_eucast_rules.Rd b/man/custom_eucast_rules.Rd index cda94e12c..9dcede9ee 100644 --- a/man/custom_eucast_rules.Rd +++ b/man/custom_eucast_rules.Rd @@ -19,7 +19,7 @@ Define custom EUCAST rules for your organisation or specific analysis and use th Some organisations have their own adoption of EUCAST rules. This function can be used to define custom EUCAST rules to be used in the \code{\link[=eucast_rules]{eucast_rules()}} function. \subsection{Basics}{ -If you are familiar with the \code{\link[dplyr:case_when]{case_when()}} function of the \code{dplyr} package, you will recognise the input method to set your own rules. Rules must be set using what \R considers to be the 'formula notation'. The rule itself is written \emph{before} the tilde (\code{~}) and the consequence of the rule is written \emph{after} the tilde: +If you are familiar with the \code{\link[dplyr:case-and-replace-when]{case_when()}} function of the \code{dplyr} package, you will recognise the input method to set your own rules. Rules must be set using what \R considers to be the 'formula notation'. The rule itself is written \emph{before} the tilde (\code{~}) and the consequence of the rule is written \emph{after} the tilde: \if{html}{\out{

    }}\preformatted{x <- custom_eucast_rules(TZP == "S" ~ aminopenicillins == "S", TZP == "R" ~ aminopenicillins == "R") diff --git a/man/custom_mdro_guideline.Rd b/man/custom_mdro_guideline.Rd index 56d17ef5a..73062da36 100644 --- a/man/custom_mdro_guideline.Rd +++ b/man/custom_mdro_guideline.Rd @@ -26,7 +26,7 @@ Define custom a MDRO guideline for your organisation or specific analysis and us Using a custom MDRO guideline is of importance if you have custom rules to determine MDROs in your hospital, e.g., rules that are dependent on ward, state of contact isolation or other variables in your data. \subsection{Basics}{ -If you are familiar with the \code{\link[dplyr:case_when]{case_when()}} function of the \code{dplyr} package, you will recognise the input method to set your own rules. Rules must be set using what \R considers to be the 'formula notation'. The rule itself is written \emph{before} the tilde (\code{~}) and the consequence of the rule is written \emph{after} the tilde: +If you are familiar with the \code{\link[dplyr:case-and-replace-when]{case_when()}} function of the \code{dplyr} package, you will recognise the input method to set your own rules. Rules must be set using what \R considers to be the 'formula notation'. The rule itself is written \emph{before} the tilde (\code{~}) and the consequence of the rule is written \emph{after} the tilde: \if{html}{\out{
    }}\preformatted{custom <- custom_mdro_guideline(CIP == "R" & age > 60 ~ "Elderly Type A", ERY == "R" & age > 60 ~ "Elderly Type B") diff --git a/man/dosage.Rd b/man/dosage.Rd index 863d98a81..491d62d23 100644 --- a/man/dosage.Rd +++ b/man/dosage.Rd @@ -12,7 +12,7 @@ A \link[tibble:tibble]{tibble} with 759 observations and 9 variables: \item \code{type}\cr Type of the dosage, either "high_dosage", "standard_dosage", or "uncomplicated_uti" \item \code{dose}\cr Dose, such as "2 g" or "25 mg/kg" \item \code{dose_times}\cr Number of times a dose must be administered -\item \code{administration}\cr Route of administration, either "", "im", "iv", or "oral" +\item \code{administration}\cr Route of administration, either "", "im", "iv", "oral", or NA \item \code{notes}\cr Additional dosage notes \item \code{original_txt}\cr Original text in the PDF file of EUCAST \item \code{eucast_version}\cr Version number of the EUCAST Clinical Breakpoints guideline to which these dosages apply, either 15, 14, 13.1, 12, or 11 diff --git a/man/eucast_rules.Rd b/man/interpretive_rules.Rd similarity index 85% rename from man/eucast_rules.Rd rename to man/interpretive_rules.Rd index 051d4af2b..cbeda0052 100644 --- a/man/eucast_rules.Rd +++ b/man/interpretive_rules.Rd @@ -1,10 +1,12 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/eucast_rules.R -\name{eucast_rules} -\alias{eucast_rules} +% Please edit documentation in R/interpretive_rules.R +\name{interpretive_rules} +\alias{interpretive_rules} \alias{EUCAST} +\alias{eucast_rules} +\alias{clsi_rules} \alias{eucast_dosage} -\title{Apply EUCAST Rules} +\title{Apply Interpretive Rules} \source{ \itemize{ \item EUCAST Expert Rules. Version 2.0, 2012.\cr @@ -19,13 +21,20 @@ Leclercq et al. \strong{EUCAST expert rules in antimicrobial susceptibility test } } \usage{ -eucast_rules(x, col_mo = NULL, info = interactive(), - rules = getOption("AMR_eucastrules", default = c("breakpoints", +interpretive_rules(x, col_mo = NULL, guideline = getOption("AMR_guideline", + "EUCAST"), info = interactive(), + rules = getOption("AMR_interpretive_rules", default = c("breakpoints", "expected_phenotypes")), verbose = FALSE, version_breakpoints = 15, version_expected_phenotypes = 1.2, version_expertrules = 3.3, ampc_cephalosporin_resistance = NA, only_sir_columns = any(is.sir(x)), custom_rules = NULL, overwrite = FALSE, ...) +eucast_rules(x, rules = getOption("AMR_interpretive_rules", default = + c("breakpoints", "expected_phenotypes")), ...) + +clsi_rules(x, rules = getOption("AMR_interpretive_rules", default = + c("breakpoints", "expected_phenotypes")), ...) + eucast_dosage(ab, administration = "iv", version_breakpoints = 15) } \arguments{ @@ -33,9 +42,11 @@ eucast_dosage(ab, administration = "iv", version_breakpoints = 15) \item{col_mo}{Column name of the names or codes of the microorganisms (see \code{\link[=as.mo]{as.mo()}}) - the default is the first column of class \code{\link{mo}}. Values will be coerced using \code{\link[=as.mo]{as.mo()}}.} +\item{guideline}{A guideline name, either "EUCAST" (default) or "CLSI". This can be set with the package option \code{\link[=AMR-options]{AMR_guideline}}.} + \item{info}{A \link{logical} to indicate whether progress should be printed to the console - the default is only print while in interactive sessions.} -\item{rules}{A \link{character} vector that specifies which rules should be applied. Must be one or more of \code{"breakpoints"}, \code{"expected_phenotypes"}, \code{"expert"}, \code{"other"}, \code{"custom"}, \code{"all"}, and defaults to \code{c("breakpoints", "expected_phenotypes")}. The default value can be set to another value using the package option \code{\link[=AMR-options]{AMR_eucastrules}}: \code{options(AMR_eucastrules = "all")}. If using \code{"custom"}, be sure to fill in argument \code{custom_rules} too. Custom rules can be created with \code{\link[=custom_eucast_rules]{custom_eucast_rules()}}.} +\item{rules}{A \link{character} vector that specifies which rules should be applied. Must be one or more of \code{"breakpoints"}, \code{"expected_phenotypes"}, \code{"expert"}, \code{"other"}, \code{"custom"}, \code{"all"}, and defaults to \code{c("breakpoints", "expected_phenotypes")}. The default value can be set to another value using the package option \code{\link[=AMR-options]{AMR_interpretive_rules}}: \code{options(AMR_interpretive_rules = "all")}. If using \code{"custom"}, be sure to fill in argument \code{custom_rules} too. Custom rules can be created with \code{\link[=custom_eucast_rules]{custom_eucast_rules()}}.} \item{verbose}{A \link{logical} to turn Verbose mode on and off (default is off). In Verbose mode, the function does not apply rules to the data, but instead returns a data set in logbook form with extensive info about which rows and columns would be effected and in which way. Using Verbose mode takes a lot more time.} @@ -57,15 +68,19 @@ eucast_dosage(ab, administration = "iv", version_breakpoints = 15) \item{ab}{Any (vector of) text that can be coerced to a valid antimicrobial drug code with \code{\link[=as.ab]{as.ab()}}.} -\item{administration}{Route of administration, either "", "im", "iv", or "oral".} +\item{administration}{Route of administration, either "", "im", "iv", "oral", or NA.} } \value{ The input of \code{x}, possibly with edited values of antimicrobials. Or, if \code{verbose = TRUE}, a \link{data.frame} with all original and new values of the affected bug-drug combinations. } \description{ -Apply rules from clinical breakpoints notes and expected resistant phenotypes as defined by the European Committee on Antimicrobial Susceptibility Testing (EUCAST, \url{https://www.eucast.org}), see \emph{Source}. Use \code{\link[=eucast_dosage]{eucast_dosage()}} to get a \link{data.frame} with advised dosages of a certain bug-drug combination, which is based on the \link{dosage} data set. +\strong{WORK IN PROGRESS} -To improve the interpretation of the antibiogram before EUCAST rules are applied, some non-EUCAST rules can applied at default, see \emph{Details}. +\strong{The \code{interpretive_rules()} function is new, to allow CLSI 'rules' too. The old \code{eucast_rules()} function will stay as a wrapper, but we need to generalise more parts of the underlying code to allow more than just EUCAST.} + +Apply rules from clinical breakpoints notes and expected resistant phenotypes as defined by e.g. the European Committee on Antimicrobial Susceptibility Testing (EUCAST, \url{https://www.eucast.org}), see \emph{Source}. Use \code{\link[=eucast_dosage]{eucast_dosage()}} to get a \link{data.frame} with advised dosages of a certain bug-drug combination, which is based on the \link{dosage} data set. + +To improve the interpretation of the antibiogram before CLSI/EUCAST interpretive rules are applied, some AMR-specific rules can be applied at default, see \emph{Details}. } \details{ \strong{Note:} This function does not translate MIC values to SIR values. Use \code{\link[=as.sir]{as.sir()}} for that. \cr @@ -93,7 +108,7 @@ Before further processing, two non-EUCAST rules about drug combinations can be a Important examples include amoxicillin and amoxicillin/clavulanic acid, and trimethoprim and trimethoprim/sulfamethoxazole. Needless to say, for these rules to work, both drugs must be available in the data set. -Since these rules are not officially approved by EUCAST, they are not applied at default. To use these rules, include \code{"other"} to the \code{rules} argument, or use \code{eucast_rules(..., rules = "all")}. You can also set the package option \code{\link[=AMR-options]{AMR_eucastrules}}, i.e. run \code{options(AMR_eucastrules = "all")}. +Since these rules are not officially approved by EUCAST, they are not applied at default. To use these rules, include \code{"other"} to the \code{rules} argument, or use \code{eucast_rules(..., rules = "all")}. You can also set the package option \code{\link[=AMR-options]{AMR_interpretive_rules}}, i.e. run \code{options(AMR_interpretive_rules = "all")}. } } \section{Download Our Reference Data}{ diff --git a/man/microorganisms.Rd b/man/microorganisms.Rd index 596a9aede..07028388f 100644 --- a/man/microorganisms.Rd +++ b/man/microorganisms.Rd @@ -13,7 +13,7 @@ A \link[tibble:tibble]{tibble} with 78 679 observations and 26 variables: \item \code{kingdom}, \code{phylum}, \code{class}, \code{order}, \code{family}, \code{genus}, \code{species}, \code{subspecies}\cr Taxonomic rank of the microorganism. Note that for fungi, \emph{phylum} is equal to their taxonomic \emph{division}. Also, for fungi, \emph{subkingdom} and \emph{subdivision} were left out since they do not occur in the bacterial taxonomy. \item \code{rank}\cr Text of the taxonomic rank of the microorganism, such as \code{"species"} or \code{"genus"} \item \code{ref}\cr Author(s) and year of related scientific publication. This contains only the \emph{first surname} and year of the \emph{latest} authors, e.g. "Wallis \emph{et al.} 2006 \emph{emend.} Smith and Jones 2018" becomes "Smith \emph{et al.}, 2018". This field is directly retrieved from the source specified in the column \code{source}. Moreover, accents were removed to comply with CRAN that only allows ASCII characters. -\item \code{oxygen_tolerance} \cr Oxygen tolerance, either "aerobe", "anaerobe", "anaerobe/microaerophile", "facultative anaerobe", "likely facultative anaerobe", or "microaerophile". These data were retrieved from BacDive (see \emph{Source}). Items that contain "likely" are missing from BacDive and were extrapolated from other species within the same genus to guess the oxygen tolerance. Currently 68.3\% of all ~39 000 bacteria in the data set contain an oxygen tolerance. +\item \code{oxygen_tolerance} \cr Oxygen tolerance, either "aerobe", "anaerobe", "anaerobe/microaerophile", "facultative anaerobe", "likely facultative anaerobe", "microaerophile", or NA. These data were retrieved from BacDive (see \emph{Source}). Items that contain "likely" are missing from BacDive and were extrapolated from other species within the same genus to guess the oxygen tolerance. Currently 68.3\% of all ~39 000 bacteria in the data set contain an oxygen tolerance. \item \code{source}\cr Either "GBIF", "LPSN", "Manually added", "MycoBank", or "manually added" (see \emph{Source}) \item \code{lpsn}\cr Identifier ('Record number') of List of Prokaryotic names with Standing in Nomenclature (LPSN). This will be the first/highest LPSN identifier to keep one identifier per row. For example, \emph{Acetobacter ascendens} has LPSN Record number 7864 and 11011. Only the first is available in the \code{microorganisms} data set. \emph{\strong{This is a unique identifier}}, though available for only ~33 000 records. \item \code{lpsn_parent}\cr LPSN identifier of the parent taxon diff --git a/man/plot.Rd b/man/plot.Rd index 78dd00aba..05ce6e4b4 100644 --- a/man/plot.Rd +++ b/man/plot.Rd @@ -181,7 +181,7 @@ When manually added though, they allow to rescale the MIC range with an 'inside' \subsection{The \verb{scale_*_sir()} Functions}{ -The functions \code{\link[=scale_x_sir]{scale_x_sir()}}, \code{\link[=scale_colour_sir]{scale_colour_sir()}}, and \code{\link[=scale_fill_sir]{scale_fill_sir()}} functions allow to plot the \link[=as.sir]{sir} class in the right order (S < SDD < I < R < NI). +The functions \code{\link[=scale_x_sir]{scale_x_sir()}}, \code{\link[=scale_colour_sir]{scale_colour_sir()}}, and \code{\link[=scale_fill_sir]{scale_fill_sir()}} functions allow to plot the \link[=as.sir]{sir} class in the right order (S < SDD < I < R < NI < WT < NWT < NS). There is normally no need to add these scale functions to your plot, as they are applied automatically when plotting values of class \link[=as.sir]{sir}.