From cf4a169ed2a475dd9db9592b1780d834dd5e8166 Mon Sep 17 00:00:00 2001 From: Martijn Schuemie Date: Wed, 28 Jun 2023 08:03:47 -0400 Subject: [PATCH] Cohort covariates (#167) * Adding covariate builders based on other cohorts * Fixing build * Regenerating jar using maven * Implementing runTestsOnEunomia switch for new tests * Some fixes to cohort-based covariates * Adding a vignette for cohort-based covariates. * Update CreatingCovariatesBasedOnOtherCohorts.Rmd * Throw warning if using pre-spec analysis ID for cohort-based covariate. * Adding count type temporal covariates based on other cohorts * Allowing cohordId to be vector in cohort-based covariate builder * Update vignette * Expand cohort covariates unit tests (#204) --------- Co-authored-by: Schuemie Co-authored-by: Admin_mschuemi Co-authored-by: Anthony Sena Co-authored-by: Ger Inberg Co-authored-by: Anthony Sena --- .Rbuildignore | 1 - .github/workflows/R_CMD_check_Hades.yaml | 2 +- DESCRIPTION | 3 +- NAMESPACE | 4 + R/FeatureExtraction.R | 1 + R/GetCovariatesFromOtherCohorts.R | 286 ++++++ R/HelperFunctions.R | 9 + README.md | 1 + .../CohortBasedCovariatesVignetteDataFetch.R | 116 +++ extras/PackageMaintenance.R | 7 + inst/csv/OtherSqlToLoad.csv | 3 + inst/csv/jarChecksum.txt | 2 +- .../CreatingCovariatesBasedOnOtherCohorts.pdf | Bin 0 -> 229091 bytes .../java/featureExtraction-3.2.0-SNAPSHOT.jar | Bin 78395 -> 82318 bytes .../CohortBasedBinaryCovariates.sql | 107 +++ .../sql_server/CohortBasedCountCovariates.sql | 259 ++++++ inst/sql/sql_server/covariateCohorts.sql | 56 ++ .../featureExtraction/FeatureExtraction.java | 12 +- man/createCohortBasedCovariateSettings.Rd | 54 ++ ...ateCohortBasedTemporalCovariateSettings.Rd | 62 ++ man/getDbCohortBasedCovariatesData.Rd | 73 ++ tests/testthat/setup.R | 2 - .../testthat/test-GetCohortBasedCovariates.R | 822 ++++++++++++++++++ .../CreatingCovariatesBasedOnOtherCohorts.Rmd | 229 +++++ 24 files changed, 2099 insertions(+), 12 deletions(-) create mode 100644 R/GetCovariatesFromOtherCohorts.R create mode 100644 extras/CohortBasedCovariatesVignetteDataFetch.R create mode 100644 inst/csv/OtherSqlToLoad.csv create mode 100644 inst/doc/CreatingCovariatesBasedOnOtherCohorts.pdf create mode 100644 inst/sql/sql_server/CohortBasedBinaryCovariates.sql create mode 100644 inst/sql/sql_server/CohortBasedCountCovariates.sql create mode 100644 inst/sql/sql_server/covariateCohorts.sql create mode 100644 man/createCohortBasedCovariateSettings.Rd create mode 100644 man/createCohortBasedTemporalCovariateSettings.Rd create mode 100644 man/getDbCohortBasedCovariatesData.Rd create mode 100644 tests/testthat/test-GetCohortBasedCovariates.R create mode 100644 vignettes/CreatingCovariatesBasedOnOtherCohorts.Rmd diff --git a/.Rbuildignore b/.Rbuildignore index 53275cd7..8eed46ac 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -1,7 +1,6 @@ pom.xml extras docs -bin man-roxygen ^.*\.Rproj$ ^\.Rproj\.user$ diff --git a/.github/workflows/R_CMD_check_Hades.yaml b/.github/workflows/R_CMD_check_Hades.yaml index 63227ce0..8c5d59fa 100644 --- a/.github/workflows/R_CMD_check_Hades.yaml +++ b/.github/workflows/R_CMD_check_Hades.yaml @@ -17,13 +17,13 @@ jobs: name: ${{ matrix.config.os }} (${{ matrix.config.r }}) strategy: + max-parallel: 1 fail-fast: false matrix: config: - {os: windows-latest, r: 'release'} # Does not appear to have Java 32-bit, hence the --no-multiarch - {os: macOS-latest, r: 'release'} - {os: ubuntu-20.04, r: 'release', rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest"} - #- {os: ubuntu-20.04, r: 'devel', rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest"} env: R_REMOTES_NO_ERRORS_FROM_WARNINGS: true diff --git a/DESCRIPTION b/DESCRIPTION index 905d2dd4..17338684 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -29,7 +29,8 @@ Imports: readr, rlang, RSQLite, - DBI + DBI, + checkmate Suggests: testthat, knitr, diff --git a/NAMESPACE b/NAMESPACE index ab4fcd70..3659d2d4 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -6,6 +6,8 @@ export(computeStandardizedDifference) export(convertPrespecSettingsToDetailedSettings) export(createAnalysisDetails) export(createCohortAttrCovariateSettings) +export(createCohortBasedCovariateSettings) +export(createCohortBasedTemporalCovariateSettings) export(createCovariateSettings) export(createDefaultCovariateSettings) export(createDefaultTemporalCovariateSettings) @@ -18,6 +20,7 @@ export(createTemporalSequenceCovariateSettings) export(filterByCohortDefinitionId) export(filterByRowId) export(getDbCohortAttrCovariatesData) +export(getDbCohortBasedCovariatesData) export(getDbCovariateData) export(getDbDefaultCovariateData) export(getDefaultTable1Specifications) @@ -44,3 +47,4 @@ importFrom(rlang,.data) importFrom(stats,aggregate) importFrom(stats,quantile) importFrom(stats,sd) +importFrom(utils,read.csv) diff --git a/R/FeatureExtraction.R b/R/FeatureExtraction.R index 2562d5fc..b411a1cd 100644 --- a/R/FeatureExtraction.R +++ b/R/FeatureExtraction.R @@ -21,6 +21,7 @@ #' @importFrom SqlRender loadRenderTranslateSql translate render #' @importFrom methods is +#' @importFrom utils read.csv #' @importFrom stats aggregate quantile sd #' @importFrom rlang .data #' @import DatabaseConnector diff --git a/R/GetCovariatesFromOtherCohorts.R b/R/GetCovariatesFromOtherCohorts.R new file mode 100644 index 00000000..f981348d --- /dev/null +++ b/R/GetCovariatesFromOtherCohorts.R @@ -0,0 +1,286 @@ +# Copyright 2022 Observational Health Data Sciences and Informatics +# +# This file is part of FeatureExtraction +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +#' Get covariate information from the database based on other cohorts +#' +#' @description +#' Constructs covariates using other cohorts. +#' +#' @param covariateSettings An object of type \code{covariateSettings} as created using the +#' \code{\link{createCohortBasedCovariateSettings}} or +#' \code{\link{createCohortBasedTemporalCovariateSettings}} functions. +#' +#' @template GetCovarParams +#' +#' @export +getDbCohortBasedCovariatesData <- function(connection, + oracleTempSchema = NULL, + cdmDatabaseSchema, + cohortTable = "#cohort_person", + cohortId = -1, + cdmVersion = "5", + rowIdField = "subject_id", + covariateSettings, + aggregated = FALSE) { + errorMessages <- checkmate::makeAssertCollection() + checkmate::assertClass(connection, "DatabaseConnectorConnection", add = errorMessages) + checkmate::assertCharacter(oracleTempSchema, len = 1, null.ok = TRUE, add = errorMessages) + checkmate::assertCharacter(cdmDatabaseSchema, len = 1, null.ok = TRUE, add = errorMessages) + checkmate::assertCharacter(cohortTable, len = 1, add = errorMessages) + checkmate::assertIntegerish(cohortId, add = errorMessages) + # checkmate::assertCharacter(cdmVersion, len = 1, add = errorMessages) + checkmate::assertCharacter(rowIdField, len = 1, add = errorMessages) + checkmate::assertClass(covariateSettings, "covariateSettings", add = errorMessages) + checkmate::assertLogical(aggregated, len = 1, add = errorMessages) + checkmate::reportAssertions(collection = errorMessages) + + start <- Sys.time() + message("Constructing covariates from other cohorts") + + covariateCohorts <- covariateSettings$covariateCohorts %>% + select(cohortId, cohortName) + + DatabaseConnector::insertTable(connection, + tableName = "#covariate_cohort_ref", + data = covariateCohorts, + dropTableIfExists = TRUE, + createTable = TRUE, + tempTable = TRUE, + oracleTempSchema = oracleTempSchema, + camelCaseToSnakeCase = TRUE) + if (is.null(covariateSettings$covariateCohortTable)) { + covariateCohortTable <- cohortTable + } else if (is.null(covariateSettings$covariateCohortDatabaseSchema)) { + covariateCohortTable <- covariateSettings$covariateCohortTable + } else { + covariateCohortTable <- paste(covariateSettings$covariateCohortDatabaseSchema, + covariateSettings$covariateCohortTable, + sep = ".") + } + + if (covariateSettings$temporal) { + if (covariateSettings$valueType == "binary") { + sqlFileName <- "CohortBasedBinaryCovariates.sql" + } else { + sqlFileName <- "CohortBasedCountCovariates.sql" + } + parameters <- list(covariateCohortTable = covariateCohortTable, + analysisId = covariateSettings$analysisId, + analysisName = "CohortTemporal") + detail <- createAnalysisDetails(analysisId = covariateSettings$analysisId, + sqlFileName = sqlFileName, + parameters = parameters, + includedCovariateConceptIds = covariateSettings$includedCovariateIds, + addDescendantsToInclude = FALSE, + excludedCovariateConceptIds = c(), + addDescendantsToExclude = FALSE, + includedCovariateIds = c()) + detailledSettings <- createDetailedTemporalCovariateSettings(analyses = list(detail), + temporalStartDays = covariateSettings$temporalStartDays, + temporalEndDays = covariateSettings$temporalEndDays) + } else { + # Not temporal + if (covariateSettings$valueType == "binary") { + sqlFileName <- "CohortBasedBinaryCovariates.sql" + } else { + sqlFileName <- "CohortBasedCountCovariates.sql" + } + parameters <- list(covariateCohortTable = covariateCohortTable, + analysisId = covariateSettings$analysisId, + analysisName = "Cohort", + startDay = covariateSettings$startDay, + endDay = covariateSettings$endDay) + detail <- createAnalysisDetails(analysisId = covariateSettings$analysisId, + sqlFileName = sqlFileName, + parameters = parameters, + includedCovariateConceptIds = covariateSettings$includedCovariateIds, + addDescendantsToInclude = FALSE, + excludedCovariateConceptIds = c(), + addDescendantsToExclude = FALSE, + includedCovariateIds = c()) + detailledSettings <- createDetailedCovariateSettings(analyses = list(detail)) + } + result <- getDbDefaultCovariateData(connection = connection, + oracleTempSchema = oracleTempSchema, + cdmDatabaseSchema = cdmDatabaseSchema, + cohortTable = cohortTable, + cohortId = cohortId, + cdmVersion = cdmVersion, + rowIdField = rowIdField, + detailledSettings, + aggregated = aggregated) + + sql <- "TRUNCATE TABLE #covariate_cohort_ref; DROP TABLE #covariate_cohort_ref;" + DatabaseConnector::renderTranslateExecuteSql(connection = connection, + sql = sql, + progressBar = FALSE, + reportOverallTime = FALSE) + return(result) +} + +#' Create settings for covariates based on other cohorts +#' +#' @details +#' Creates an object specifying covariates to be constructed based on the presence of other cohorts. +#' +#' @param analysisId A unique identifier for this analysis. +#' @param covariateCohortDatabaseSchema The database schema where the cohorts used to define the covariates +#' can be found. If set to \code{NULL}, the database schema will be +#' guessed, for example using the same one as for the main cohorts. +#' @param covariateCohortTable The table where the cohorts used to define the covariates +#' can be found. If set to \code{NULL}, the table will be +#' guessed, for example using the same one as for the main cohorts. +#' @param covariateCohorts A data frame with at least two columns: 'cohortId' and 'cohortName'. The +#' cohort ID should correspond to the \code{cohort_definition_id} of the cohort +#' to use for creating a covariate. +#' @param valueType Either 'binary' or 'count'. When \code{valueType = 'count'}, the covariate +#' value will be the number of times the cohort was observed in the window. +#' @param startDay What is the start day (relative to the index date) of the covariate window? +#' @param endDay What is the end day (relative to the index date) of the covariate window? +#' @param includedCovariateIds A list of covariate IDs that should be restricted to. +#' @param warnOnAnalysisIdOverlap Warn if the provided `analysisId` overlaps with any predefined analysis as +#' available in the `createCoverateSettings()` function. +#' +#' @return +#' An object of type \code{covariateSettings}, to be used in other functions. +#' +#' @export +createCohortBasedCovariateSettings <- function(analysisId, + covariateCohortDatabaseSchema = NULL, + covariateCohortTable = NULL, + covariateCohorts, + valueType = "binary", + startDay = -365, + endDay = 0, + includedCovariateIds = c(), + warnOnAnalysisIdOverlap = TRUE) { + errorMessages <- checkmate::makeAssertCollection() + checkmate::assertInt(analysisId, lower = 1, upper = 999, add = errorMessages) + checkmate::assertCharacter(covariateCohortDatabaseSchema, len = 1, null.ok = TRUE, add = errorMessages) + checkmate::assertCharacter(covariateCohortTable, len = 1, null.ok = TRUE, add = errorMessages) + checkmate::assertDataFrame(covariateCohorts, min.rows = 1, add = errorMessages) + checkmate::assertNames(colnames(covariateCohorts), must.include = c("cohortId", "cohortName"), add = errorMessages) + checkmate::assertChoice(valueType, c("binary", "count"), add = errorMessages) + checkmate::assertInt(startDay, add = errorMessages) + checkmate::assertInt(endDay, add = errorMessages) + checkmate::assertTRUE(startDay <= endDay, add = errorMessages) + .assertCovariateId(includedCovariateIds, null.ok = TRUE, add = errorMessages) + checkmate::assertLogical(warnOnAnalysisIdOverlap, len = 1, add = errorMessages) + checkmate::reportAssertions(collection = errorMessages) + + if (warnOnAnalysisIdOverlap) { + warnIfPredefined(analysisId) + } + + covariateSettings <- list(temporal = FALSE, + temporalSequence = FALSE) + + formalNames <- names(formals(createCohortBasedCovariateSettings)) + for (name in formalNames) { + value <- get(name) + covariateSettings[[name]] <- value + } + attr(covariateSettings, "fun") <- "getDbCohortBasedCovariatesData" + class(covariateSettings) <- "covariateSettings" + return(covariateSettings) +} + +#' Create settings for temporal covariates based on other cohorts +#' +#' @details +#' Creates an object specifying temporal covariates to be constructed based on the presence of other cohorts. +#' +#' @param analysisId A unique identifier for this analysis. +#' @param covariateCohortDatabaseSchema The database schema where the cohorts used to define the covariates +#' can be found. If set to \code{NULL}, the database schema will be +#' guessed, for example using the same one as for the main cohorts. +#' @param covariateCohortTable The table where the cohorts used to define the covariates +#' can be found. If set to \code{NULL}, the table will be +#' guessed, for example using the same one as for the main cohorts. +#' @param covariateCohorts A data frame with at least two columns: 'cohortId' and 'cohortName'. The +#' cohort ID should correspond to the \code{cohort_definition_id} of the cohort +#' to use for creating a covariate. +#' @param valueType Either 'binary' or 'count'. When \code{valueType = 'count'}, the covariate +#' value will be the number of times the cohort was observed in the window. +#' @param temporalStartDays A list of integers representing the start of a time +#' period, relative to the index date. 0 indicates the +#' index date, -1 indicates the day before the index +#' date, etc. The start day is included in the time +#' period. +#' @param temporalEndDays A list of integers representing the end of a time +#' period, relative to the index date. 0 indicates the +#' index date, -1 indicates the day before the index +#' date, etc. The end day is included in the time +#' period. +#' @param includedCovariateIds A list of covariate IDs that should be restricted to. +#' @param warnOnAnalysisIdOverlap Warn if the provided `analysisId` overlaps with any predefined analysis as +#' available in the `createTemporalCovariateSettings()` function. +#' +#' @return +#' An object of type \code{covariateSettings}, to be used in other functions. +#' +#' @export +createCohortBasedTemporalCovariateSettings <- function(analysisId, + covariateCohortDatabaseSchema = NULL, + covariateCohortTable = NULL, + covariateCohorts, + valueType = "binary", + temporalStartDays = -365:-1, + temporalEndDays = -365:-1, + includedCovariateIds = c(), + warnOnAnalysisIdOverlap = TRUE) { + errorMessages <- checkmate::makeAssertCollection() + checkmate::assertInt(analysisId, lower = 1, upper = 999, add = errorMessages) + checkmate::assertCharacter(covariateCohortDatabaseSchema, len = 1, null.ok = TRUE, add = errorMessages) + checkmate::assertCharacter(covariateCohortTable, len = 1, null.ok = TRUE, add = errorMessages) + checkmate::assertDataFrame(covariateCohorts, min.rows = 1, add = errorMessages) + checkmate::assertNames(colnames(covariateCohorts), must.include = c("cohortId", "cohortName"), add = errorMessages) + checkmate::assertChoice(valueType, c("binary", "count"), add = errorMessages) + checkmate::assertIntegerish(temporalStartDays, add = errorMessages) + checkmate::assertIntegerish(temporalEndDays, add = errorMessages) + checkmate::assertTRUE(all(temporalStartDays <= temporalEndDays), add = errorMessages) + .assertCovariateId(includedCovariateIds, null.ok = TRUE, add = errorMessages) + checkmate::assertLogical(warnOnAnalysisIdOverlap, len = 1, add = errorMessages) + checkmate::reportAssertions(collection = errorMessages) + + if (warnOnAnalysisIdOverlap) { + warnIfPredefined(analysisId, TRUE) + } + + covariateSettings <- list(temporal = TRUE, + temporalSequence = FALSE) + formalNames <- names(formals(createCohortBasedTemporalCovariateSettings)) + for (name in formalNames) { + value <- get(name) + covariateSettings[[name]] <- value + } + attr(covariateSettings, "fun") <- "getDbCohortBasedCovariatesData" + class(covariateSettings) <- "covariateSettings" + return(covariateSettings) +} + +warnIfPredefined <- function(analysisId, temporal = FALSE) { + if (temporal) { + csvFile <- system.file("csv", "PrespecTemporalAnalyses.csv", package = "FeatureExtraction") + } else { + csvFile <- system.file("csv", "PrespecAnalyses.csv", package = "FeatureExtraction") + } + preSpecAnalysis <- read.csv(csvFile) %>% + filter(.data$analysisId == !!analysisId) + if (nrow(preSpecAnalysis) > 0) { + warning(sprintf("Analysis ID %d also used for prespecified analysis '%s'.", analysisId, preSpecAnalysis$analysisName)) + } +} diff --git a/R/HelperFunctions.R b/R/HelperFunctions.R index 7cd65b78..c7baaf42 100644 --- a/R/HelperFunctions.R +++ b/R/HelperFunctions.R @@ -102,3 +102,12 @@ filterByCohortDefinitionId <- function(covariateData, cohortId) { attr(class(result), "package") <- "FeatureExtraction" return(result) } + +.assertCovariateId <- function(covariateId, len = NULL, min.len = NULL, null.ok = FALSE, add = NULL) { + checkmate::assertNumeric(covariateId, null.ok = null.ok, len = len, min.len = 1, add = add) + if (!is.null(covariateId)) { + message <- sprintf("Variable '%s' is a (64-bit) integer", + paste0(deparse(eval.parent(substitute(substitute(covariateId))), width.cutoff = 500L),collapse = "\n")) + checkmate::assertTRUE(all(covariateId == round(covariateId)), .var.name = message, add = add) + } +} diff --git a/README.md b/README.md index dac18e69..3adf6a95 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,7 @@ The documentation website can be found at [https://ohdsi.github.io/FeatureExtrac * Vignette: [Using FeatureExtraction](https://raw.githubusercontent.com/OHDSI/FeatureExtraction/main/inst/doc/UsingFeatureExtraction.pdf) * Vignette: [Creating covariates using cohort attributes](https://raw.githubusercontent.com/OHDSI/FeatureExtraction/main/inst/doc/CreatingCovariatesUsingCohortAttributes.pdf) * Vignette: [Creating custom covariate builders](https://raw.githubusercontent.com/OHDSI/FeatureExtraction/main/inst/doc/CreatingCustomCovariateBuilders.pdf) +* Vignette: [Creating covariates based on other cohorts](https://raw.githubusercontent.com/OHDSI/FeatureExtraction/main/inst/doc/CreatingCovariatesBasedOnOtherCohorts.pdf) * Package manual: [FeatureExtraction manual](https://raw.githubusercontent.com/OHDSI/FeatureExtraction/main/extras/FeatureExtraction.pdf) These vignettes are also available in Korean: diff --git a/extras/CohortBasedCovariatesVignetteDataFetch.R b/extras/CohortBasedCovariatesVignetteDataFetch.R new file mode 100644 index 00000000..f6f079ac --- /dev/null +++ b/extras/CohortBasedCovariatesVignetteDataFetch.R @@ -0,0 +1,116 @@ +# Copyright 2022 Observational Health Data Sciences and Informatics +# +# This file is part of FeatureExtraction +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This code should be used to fetch the data that is used in the cohort-based covariates vignette. +library(FeatureExtraction) +library(SqlRender) +vignetteFolder <- "s:/temp/vignetteFeatureExtractionCohortBased" + +# MDCD on RedShift +connectionDetails <- createConnectionDetails(dbms = "redshift", + connectionString = keyring::key_get("redShiftConnectionStringOhdaMdcd"), + user = keyring::key_get("redShiftUserName"), + password = keyring::key_get("redShiftPassword")) +cdmDatabaseSchema <- "cdm_truven_mdcd_v1978" +cohortDatabaseSchema <- "scratch_mschuemi" +cohortTable <- "feature_extraction_cohort_based" +cdmVersion <- "5" + + +# Create cohorts ------------------------------------------------------- +connection <- connect(connectionDetails) +sql <- readSql(system.file("sql", "sql_server", "covariateCohorts.sql", package = "FeatureExtraction")) +renderTranslateExecuteSql(connection = connection, + sql = sql, + cdm_database_schema = cdmDatabaseSchema, + cohort_database_schema = cohortDatabaseSchema, + cohort_table = cohortTable) + +# Check number of subjects per cohort: +sql <- paste("SELECT cohort_definition_id, + COUNT(*) AS count", + "FROM @cohort_database_schema.@cohort_table", + "GROUP BY cohort_definition_id") +renderTranslateQuerySql(connection = connection, + sql = sql, + cohort_database_schema = cohortDatabaseSchema, + cohort_table = cohortTable) +disconnect(connection) + + +# Construct covariates ----------------------------------------------- +covariateCohorts <- tibble(cohortId = 2, + cohortName = "Type 2 diabetes") + +covariateSettings <- createCohortBasedCovariateSettings(analysisId = 999, + covariateCohorts = covariateCohorts, + valueType = "binary", + startDay = -365, + endDay = 0) + +covariateData <- getDbCovariateData(connectionDetails = connectionDetails, + cdmDatabaseSchema = cdmDatabaseSchema, + cohortDatabaseSchema = cohortDatabaseSchema, + cohortTable = cohortTable, + cohortId = 1, + rowIdField = "subject_id", + covariateSettings = covariateSettings) + +saveCovariateData(covariateData, file.path(vignetteFolder, "covariatesPerPerson")) +# covariateData <- loadCovariateData(file.path(vignetteFolder, "covariatesPerPerson")) +summary(covariateData) +covariateData$covariateRef + + +covariateSettings1 <- createCovariateSettings(useDemographicsGender = TRUE, + useDemographicsAgeGroup = TRUE, + useDemographicsRace = TRUE, + useDemographicsEthnicity = TRUE, + useDemographicsIndexYear = TRUE, + useDemographicsIndexMonth = TRUE) + +covariateCohorts <- tibble(cohortId = 2, + cohortName = "Type 2 diabetes") + +covariateSettings2 <- createCohortBasedCovariateSettings(analysisId = 999, + covariateCohorts = covariateCohorts, + valueType = "binary", + startDay = -365, + endDay = 0) + +covariateSettingsList <- list(covariateSettings1, covariateSettings2) + +covariateData <- getDbCovariateData(connectionDetails = connectionDetails, + cdmDatabaseSchema = cdmDatabaseSchema, + cohortDatabaseSchema = cohortDatabaseSchema, + cohortTable = cohortTable, + cohortId = 1, + rowIdField = "subject_id", + covariateSettings = covariateSettingsList, + aggregated = TRUE) + +saveCovariateData(covariateData, file.path(vignetteFolder, "covariatesAggregated")) +# covariateData <- loadCovariateData(file.path(vignetteFolder, "covariatesAggregated")) +summary(covariateData) + +# Clean up --------------------------------------------------------------------- +connection <- connect(connectionDetails) +sql <- "DROP TABLE @cohort_database_schema.@cohort_table" +renderTranslateExecuteSql(connection = connection, + sql = sql, + cohort_database_schema = cohortDatabaseSchema, + cohort_table = cohortTable) +disconnect(connection) diff --git a/extras/PackageMaintenance.R b/extras/PackageMaintenance.R index 7fa810da..7ec402ea 100644 --- a/extras/PackageMaintenance.R +++ b/extras/PackageMaintenance.R @@ -57,6 +57,13 @@ rmarkdown::render("vignettes/UsingFeatureExtraction.Rmd", number_sections = TRUE)) unlink("inst/doc/UsingFeatureExtraction.tex") +rmarkdown::render("vignettes/CreatingCovariatesBasedOnOtherCohorts.Rmd", + output_file = "../inst/doc/CreatingCovariatesBasedOnOtherCohorts.pdf", + rmarkdown::pdf_document(latex_engine = "pdflatex", + toc = TRUE, + number_sections = TRUE)) +unlink("inst/doc/CreatingCovariatesBasedOnOtherCohorts.tex") + # Note: these LaTex packages are required to render the Korean vignettes, but for # some reason are not installed automatically: # - kotex* diff --git a/inst/csv/OtherSqlToLoad.csv b/inst/csv/OtherSqlToLoad.csv new file mode 100644 index 00000000..7a8d93f9 --- /dev/null +++ b/inst/csv/OtherSqlToLoad.csv @@ -0,0 +1,3 @@ +analysisName,sqlFileName +cohort,CohortBasedBinaryCovariates.sql +cohortCount,CohortBasedCountCovariates.sql diff --git a/inst/csv/jarChecksum.txt b/inst/csv/jarChecksum.txt index 6d09f530..80c68cbd 100644 --- a/inst/csv/jarChecksum.txt +++ b/inst/csv/jarChecksum.txt @@ -1 +1 @@ -4c4c70d5446f1b6a33cf0f11faddc1b958fe9795798e3dc4f960ae09d65320af +5133cf2f456e6ac9c6b0cf9ea8be76bc8b16867baa0bc63f796cf1b92510b56b diff --git a/inst/doc/CreatingCovariatesBasedOnOtherCohorts.pdf b/inst/doc/CreatingCovariatesBasedOnOtherCohorts.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0835fda50fb6ce3c82ec5575f9164d3e5b66cf98 GIT binary patch literal 229091 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Ð@P;cemY8OGhBPoK2^L)q57@xAQ6#nFJmsiuw% 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

y{j=O89~HEXBY-p`9B&;@Ov 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 Y*8zd^oRj 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%0Dn`P~43R zpmTgOGN6fdPmVUdH(^b7ETxb9$Aoj?FtRUwg9uHyr>T^?E2zmSiA^)a{hM3_`Vr0W zq*G$~$S;=plrYA~&uIDY?$t%t*Sxxqsu;B}PxT(eu^vD}XWUv6JKs=wMc(OB9#zMH zNl}dK_2LHBUk8Ph7e?IlM+%p% zkvhwsR-!Ds#L)qIep_l+fSW^)j2Kt<*kG{k^DO=y6apBo8W6HM%Mf?|+lT!BNt>(U z>ToJMDHhVtI0p)^9o*phrk`_sO(!-VOwynZtJ>e>R$SAe3!_|sOTWL8_MN>GMIIfE z6kWMezODrLXjvZcjx@BUlu65^Ko=lT1@e5VLe84@?}D!JTLRE%T8%PBnlp z*l^p0obvCiBc9FT$kAp)W(>eV?W=%ppNkTYn~C<4%v1fTHN@J{p#ooQjd?*1SO=$$ zY@#8r&_ja?Qr|RoJX;49jw?hjy|LOb;)X2GI}V8Hr0#1kytV?@WpQt}Hk~vc6+fWN zpkh-eKXcyMCBPIn(e9j}dw;MW~(czB(8N|FnMT^9h-?Es-MJPZ}~_39&Cos3sjjcU6W9J7~h zWrp6{*2@7nt*rFiDEFZ|zy=CpuI8+A%@@EoKT32(DzZWl`dv`6ti=G}_~v}qDnbs^ z3K*1ArWLanYj=*(MBY$V_R;oN}Nm4wu4LoqSLvZSVvvj_-7kPw10p4#+7mVe?_(T;=X`y*TY`Z{^e zMvTao1#7vHxZbQpUrw)jWGtNtZtfuwzfAWI7^wJ_q1NWA(`YXd?@mcvY7yc1WtnK= zil}3`Xl4?sT34jw!7sH14ky0Psg+^#OaGYbpw^$fLgow?eQDODvpO35FS|ECJ_`9u zki9NIj{#2{{1|Ix&4Yw4hF25JfpVhM2g$2TAd^{r62N#mM_i`PypoTM&od(dA)8~O z3SEkBZUh}$E{Up}_TM^jE?kpWFo<4R7@=e*W@mL7FPygOi%p^Mx|}!4mj>)vi$*^-l5?3kh>#enD&`r2-eH7S=EN2YjyZRDPkF# za2fc_f;{wl+VQJ>+te6-Zdr>%vnaA_$K}l>B5H^oG(4zmL$C(fq1%D%{AeQj=qeN; zZmEmiK0X1N9@yaF`Cckh2)sIbaO?%RTUEtcvp@Yi?I9Q-(87OB4&ee1tK8e!G}^lI zy`TYy+_V{9ah)c7*BIzHLGu)=SQJz%GLQ{7Q0mDA`$dgnKF6O|$ZwtV0PkxdI*Je(Q!0E1XN~ZOy!k}b`BMoNMBkVUgI`}>2 zUMwbG$}~D<9YKV*JmB%r-B;E+aO|D8_GoO-?u~P2P#kBtDLZ&T2(6+cF9_X1o;mZ$ z=!XV!k(49jK8S=r9sJJy*kWW$a=-jlq%k+TFe^Km;Q3mLCbYsq9VbHDw23K2GO64b z(lK>^a`(|>9tmIZiI7~E@qAs5Rn9^Bh(@=Q5?<%?5i;n@`5DD+gU4ubz3@TI=D{C+ zwz%=Zs1{`_Qdg9;Se!Q>!IHFT@XO`vBlwH$|Ege?&9fp5v8ibV_kkio)thUJn|<9l zvHp&TmK@;PM})tSoAK~AzdVUI%~({s-Dnm&ejy01`KwL9IWdPt*(+(5Z;Z_m|(rY+4cK1+G zs;yJ>bQ)&{1+7%|3x>qQ_c>L?J~xkXSRe1!r-f$3$~`X1x=^QRYtv!U{vLQ;>l0k# zp7YruPV9n<$zg)IGRIY*3mx~W4D!36f=2SOiib*z)hd*IZU^P_QQajXTzwC44jYA` zyU~DBWxo<;UHH}XdqM{x-GlNzF#xsoU>K@$cUfOijqvcGz4P!3z!sWlVG?VF5h!^Y zuj621`7H}vdYO1+h)XknVWRiFc%%Z-@5soW1?prb;ig`XQ<3DDW}(hSHq1y$2Q;lh zyl-epamt?F%BQjds(KT4ZZJWjg|+z#aopBBG2Kw%VGsh|N#@u29chJGegRP8Bg#Si z@_svo97;na$M8kfz(?vB1U#MAvBC$ zrJlg@j9OEzfZdI%*`#{FlIV@K>!ShqYTBAGjN8;n1mwkn0hfDScgQ4}tu4ruEozaCwC$mYP6WOtl6++dnp9H@Y20uY?`&jWe zfH`3aS{TzwKBx`4sH1R}YlU#mQimWc3D*P{SAre5?!ww0reBjk!nwhe%`h>=bor$VskzR=mbN#_ZgvnuFFl!cd>F@u8d>ocEAwePHBF!P*LBxVpL02 z*7BSOhLJ8?N=qmqq&1MhZDSNz&K8Qf0|;w%m$5|wX zEWNSwf7mP&hYhk+wu|OXlw)}wnw2t-oYJDrg4S`j{nMW^MY6}xt7~c#2_NlgIp@^c z5o>wO3`Z5Yv*Wwzde+8X3L z1d>mF5+0o{kxP=z%RG<%g5aBn2LC96c1)nE8HKU4Fjr}Uz4deC-)n%oU`036AS=Mj zhsl-`16CF|rHtnGVmSBDwR?{GI)J;$Mn*AmANzk1LqsC^%DpZ6M(BU;%B8xmUL8pKsRM)~0VK2s+tX-1iHj(ymhr zK6R^toyJlgfV}FPO2wgALQvQA&?z^NmkjTdo$YYM5AqQ+@rUJrbYlj*M?g6LEr5fM zmeo7H5ywL!J=iSqMhE5D`82&#BwwhH{ougS6m_GW13(Qkc1iUJz6v2`$uu`Pq4u7T z(vW?85V4e43x06EPj?5*#o84n@)9_rNE)L3J%pEpBWtU>S!P`D37aBY&D+O(=Brgj zfrii$AtG@+F>2+7Tr6WS-sp)XYkcl3bwjPTMFf2k_zlZr?3WSsZD`*eYXL*+1)?RR z&BpKfBO&6n4)zYRxF9`}8?EdZe75G$%=iXuz34|~RKXvvU4V;f$!+e0)6TEDLI*&8 zxF8sc>7Z==`Za#pXfHlxa!qZh7X7OV`_kwl8r_(-NO9cWpPg1>9kc z`x2#7_Ofo09fWgXqqXc)awa0?wOl3&CbQ1Vo~hv;1Q}6}9G^l%BoXhLCNG;yUF(y? zPpJ~xN&mBAH;#=eIPkfQt3L^;*|o8JL|kLb;rmQHVRPB(cXhGaOH4_U&&x=HYe&!Q zx3p_G=POUj*8M%jp8#~gdtOuo|tn!FV##zl&!}HA9Kz<&w?BF-&K8V zE}oK6lD;5lTm?~$xRhsRTY)k-7CGMR!EnUt=_#-)Ew&37{8S2S7~N*=u0CIt_M7}5 z?29YK248ys3VAT&5tEmru`juM@T+!q)TA=Yk&rc7-)N$JEQx{4?I1Or-2 z3VPFYe4ooUZyG9xQ_fiGxlY67)uDc1x~e*j=ZiOzkh>>TUO|l@_@GlFZfD zQtF4wpcP^caETv0Xv!#B*F?-Xw5R&q>VJF^SZhQUv!bH+`hp9r^M)HV&C;%K2;=(+#D&Fu1kiJt>~W3GV2oqQICA4VQI6HK^_f4^MxH<&&qb%OO2 z+Mu?(6-m8nLt*c zN+}hbPWa;x?MeL)@S0=iq=0`1^7JV(XQxB= zk_s!I7l9o=`8W7=ZsokkmUuQ&1G+rVf|UN=PM|wa zkN!q3@-NoFOmur<3+*yusPf#^BkD4m_(b=wg~>epC>Pm{dSuVU^iFhRk@Z?oO@&a) z{9{yaRh(llzcZPd)=(3nLtI%(F^=reOEeT6Td`#DSpeu@dO_p=Q~kO*}>dj7qeJ!7WkZ#v5KKD>) zMjePVKYF~?K4?8BepN@gpGVTR=#~>-{yD8S`8|DeE0W%!5U!4YE{`O0D6xp5jBm%) z>k44Zze1#X`BO*(4XAG^kqrWp?CUr1+3lF8lLjASOPf`{cX5!CRDI&q;sp%^CmAkbY_mb zGgtYyC$}!~Cjm)Px`{@F-~Z&MH}Q$hD)a)?p!ot=AY!ZKMt=olENKkDc>k!4%(Z`eUP4Seb{XF{ofzgRmBgN?r(uI>GGrd)qX)@%ZhtB^y%K#PxeK{nYI> zCj4VEGW`zeSw)^4v>r63cb|0zkuzE+8ZU@%xns=9HcEAc(V%jm_1~iT4TvVI;h;9E znmI`>5-Z3$I;osT{s5Ux7~7^lHX|O2aVIBMzQ|&}|2_GD)v7!n1zd(yCNI5&rqmNi zu@P7gev`Fq^_+%or6%N14R>k}X1?||&F?4XZ5qpYg0}2R61Cyo0{9aM{Ggc+l(Tgl zF`g;2k2O|iqaQg$ZVX&QGTl01*PhY)KgRAUNR(h(6L8zzyKVPw+qP}nwr$(CZQHhO z+wQ*m+=!W&hx0Ix6%`ecFIAPfGS~lMX)Xcxn_@8e#dUa>TB+b>oh7j8gY!GgmC8jRu(icQk!8-&V2U)=*v0G6LPbZ2~^%Qd2|NsUgo9X;iF*g38B z>9Pf@Y;!$UT8=-QX^zpE)&>h)Bu0WV1tN!Fm)qWx*a~jLu!+9tUk`udKLNKe`;pwUR%y66h9MT2-0|-# zu-JxI>>HoV`Vx{5D!m0+#&U;Qmc-yVRR9is&=g#5&MB7zPrNIC2i8rcJm`J7GpBb1 z184}Cj#?{^eIQn1k>|#1`0bd~)lN1k4Smh8A2I-Kl~5Zyc0O2*c*tU0 z4F$R#%hZQ&;$dIjUvBXmooU^on|7hZyL8&(0@I$Nn^jQ$p}YOaUl@};LBjLCF;?sl z%^Y-7wQ8>aGb+f@6QI$B=7?2N>a9&LC;^G*EDvtZXZT8A|N9|PID~JjQZL!C75*Zl!!4^5xF6mW}iL^KKVwNi|TkcRN%fC!G4M&QxHSGC5(X+~vxu9-!oe zMxUIsIC|@tWBFVYW}i17%9qFP50>k50OZXquy$AtY7w0MCU6*9Tz0IhMil=^t%%p# ze^H!R{+r^&#!UbJC{FCm^z8rVk`e#^f=>91^z_V(|G$dUhp|%f?guwqqQU~sKuKpO zXR&0F<)T%GV25CwNQY!cyhulJCsq;G&*toVPT}cSPV1~5{NqIXNykdZEudTiMJ0Vi z#s&s(@fF`pRFxE!7l1n`C}$iFC3GRh+}7~O7((C3(7=Gdm^k?j1d~Hc6Rkbia<-lHrGAbG%_^Verx(?#@;#?ZmsA^{IcT1o3k?$n~D1%jG*ES74(3}HroB8 zQvfhI;rr0d^oKK8`fSUm@EfOmJP2H7=VU3wJNbK~P(L6mlM}H3qYf5SerUByM zm6cLK0GKfV7BDR?dV4E?`SpHIU;u=j>waDF?DlS*K*gQqpJOKys-}8Z0rWuIfN-*@ zd|SWqY?Sm&{CJo8%1vTiT7H=T=G53YHy`O4JKNjo(>vMN8Q0k}7}qzy24%Mg79jUb zPR(Eed|g2{0DcihK#ibM7T1B^YJqxLLGf+Pfk4;+eM!aFzbDP1QxLO2S~!10(bXVM zcbTn!P~hx`23LGwxu~;SsUZF;{o&Rp})qRP(7{!vDNplfUb z{4u$G@|>mO{}17WVqE-p`5)ob9|&%sR0muMY~bMH`a}BR$}JD+en;l;2(Y%c20*n( zkPMO@vAMnxpw3C~lOj8SSe4kAT?qd8%ecCN&&e9M`fJJB2$G)ht+KN;oTCnGbiN0a zl>F9fRtI?>JB@t?qX!6p1Hk8s1bwo5{ga-uYqGLyQU}AM^WyRXz(|BenipG)0sjR% zKRG^z0%7Ok1o+|hef?$|G&TWC*UV)9FP-GA4*y3{8`a1JeD6CIW9n$P<`)Yv!xxT% z`YkDA!{3SvpoEW6$V8aa^p0=t>-RM4Tb7m_4GT+{NE3hhSK_1BUZf?31@{-_ofiSm zueW`HY=eCRbNwrJc0qh%0mrPu>fFlUJ~rZ)VUh#OUsM;_$OahXcAS?adbe~OjH_j@ za`fSK8dT5d_}~W*&y7&Jil2{^6aej(mj+)g_;(*V<%d-hpfRPWD6NU*`Pm{5{{(r1+?Rrkqp3uBrcng4OH*;;0lH4 z{}m}@Cne4?+D__=yuNuLN(AqQJ{Nj=G{nER(`sGux z>&xB9+WQ9e|8szs-`CAY(=yU)%lz2ORu?c__c@5DwRlrYrJ`~-arN8Q&wUl$CtLfw zp$)h4+xYXk@UoQuFWkphW(Jp?wRlft5vv97f{PC!y`)`wcgUQhSXY)GYpx^38pjrZXf4&oU ze3|pU9)*4=HKnFzwj<+#sZfYG)wpe3R(4OLCr^77q<@}69%qqIyzYOoeto(D0Q_(G zkcNWQIgx(wE003r5Ov49!WGmcbV?2#unDN!+0ufW!dV2k!mp$m^6Ywi6LmS1d$PM= za&v48c+2D>86Y-KjGNi>4ZbFngpDT0RQprmg%zCGBooDn@U``KYMZj7UifGzUkwpP zl{_T1py~Mx-{i7ds}FfHtgleM3B#pYn~d4PSE~0&Es0VJVM9K-F#BBx-otO>W@=y6 z>g7eY3!t4AL)r=01|4j#IyvT=&J!J%o8dUS6*6Wf!NPq*YRw(-eT>n_%8%p z-;lH^6*NNN{4{G22LDZ8A z+=O_u+Dp}(8-@$f#|1}EzAC^H%sG;BeJD)8c$Oq2nUmwt5!}Gx*{x02u$bRgQ3p32 z`sFe3S_loR5bVeb(2X&0ri^{MxJ@y?rJ%S2)hLQG#TNG600z3Xbnq)w-i8LW;Cd@$ zOhwxEIZA^a2|D&yy%M?y&R**LPS}{Mo|-Wc1YppN%~rESWV&p1Uu??J%Cg=fUCnRz zw`)vAD0Q}|b}siT-y==**w>fhO0%(of7eAe0W9rhdi82gdQfwKd#(+Al!H?aB<=E@ zO9Cj#vGI(yhgujsmrPp)czva@_r0zy6^#__>zh|NRisMS!mbRar*P$$#H`XjfJTX_ zqx%^$lj~@8gC$5%Szm%)-k}2oWmSrE*gqauYe(rM!F?&(QJup3Ky;_7 zLPVRHvqJFMh8Owj3Dzmc*q z|H?}cbeFbtj$l{U^tDJtoW+9DTsv`?$H(PGOOhSs6lAdG*eVUJVLOg>J z1`St&c$OWX%=7GUq(gVdlJxF*A832}nYc|jwv?T_w*-@~!rF>&;B*Bq4?8ERaE&^? zJ+DKbk`9WO`&vjZR|p??WF{pXk2LU0>(D%lo)YSK6vp3VDjTkh^P)YJm8A^-)o>n) zReVM)^6A);V*J{9#io$4<-psB%-KcRI-+Sa&#z{&2A^cmp234Uv^pu(Qx^IAMO149 z^TECWj0L;Yd{xQKo*^MBXMBn~r_1Ixi1BN9j!PFC?nClIIX2Xe`^>zSQ1p#MI6H{J zBZsdcn|fA?k>VdvC}YN@K3BRI8*;mgZr$(A-aW#nYG{8Fk*j9+JUZ9O$niQUhBQB1 zUk9<{WEQr*^e@O!owbaRb}NN*XIkt@(C=jX;CO|RN`e3(&x50`L@j$(1rMuvEHUEK zo=h-_wBD4(}aS{rd=V4b{eQ*oWGmR!dRxEHG}8@VQM%El+K*40qrN z83+B3sa*pvglO}`yrkkM(W8Z#Fam8i5^1@xtSvsJZo6Z0B{HS)tafX0cTGOHM)h3fPrbQpfcZS=A$|pC&L;2u|DWW^MYdnn+Vd#u<+c79!vTvn=e&~!K4^Al%6$vlzy63!?K{Tr3Sh9 z&gbq^Sn_Ok4>gYu1H2or%=Ar&05}ZP{@Oi%(*v^sB%BDAIa5qeuo<*~am6IjGa34w zBZc_yQ%Td-CTJR$$I{?Fwa3|@3OGzWBS;h(_&WpLGt?Nz$ai24yCa`D*&pw#3eyJh=UUFYk)IPdR`~!#8?kaGHf#31Zu$0fdjDSS1HRNq)_J-&^gzBc$-%4dXlV- z8JealVp+Qa+R#Vb^cbh;GgCH^aXDwNNOGx}P1Lvk(L0b#&g(tVsh;PfLOc11!a4FY z&ILoms+AQL3hwnZl&pbwE8|6%O-Db7yribqZw^oAoSJviZuK%@3Sh*F#r{2ua8^L@ zxZ1^cJeq>=MDBN3#6(6(aX)R4D~fo(C9mf(#o59M%W^(*-B_YtzV^HMC(E+?PI57_ z!7b_%{mc3UmBI3SRrM3YnI=*NL#{)-?MFQ^=4%~~lk`lEZwciv-x14)8uMJ;&paaN z#Y+`vm0=z;>p>sy9>9;^C>7PUr1~+%PP+$OZX!wxv)IvbLKx3xVk7WR_`6W1v-C(I zcrfI@x)n*;o3v$5wDgh^U3tA%6ge$^|V z3WW(~zf-7z75w4f23B%7UQkL1o5IGVuU0tw$es`jt=`JL&bUF4G`K0_#%N{ru<$~T zkXv7!wG27V!fThN_BM4=;0X=FeL_vy61)}S&QJ2`2w42O$n%3(Pi>pi?Zg5rD;Fo# z5w|@k@&g_IG*@4AyuGVq$BN?)mt#GbQOzMboC@~_H;gr%H&?FbD?Z8!GC0SEG-6l| zAAXeZ^=$K!q9~+m0+hVPv%3>o_-O*!U91&&XUlikHxb5%#qz(A*D|LJN%+Yiy~^_O z{?SH1hR8np-*uI?hL*)Lh+>6nm76QuBv|N3ofs%>Hrb=9sYomg$F@*~o4F z0%b)y4^@9`<9V{$dg~6y9I#mmq`(!8cY4Y zDOkl)1oeSK;2Yzx@b2zaA<$5ofxBUzDPu#RK7-~3sk27c<+~;SD|2mw z6CredW{J0?qcvNZJZj1eEWl=m&hG>pkJ@}N2}?&1Lvm|U<7(9B$Ko3udrR8z4dD(o zdk+*mi+4y?@%x$r4S z5Ty8zSU0aSOoOprS3Kd}iO`6vVpvAct1RbSu(!~DMX+@vmHq9lR);&D>PJ z{NG#X@zv5Tygr9s34~9eD|HuMJQ3C1V^SE>V_i=M`~nV$-{i$53M&w!RbzuBs;{Q8 z`iPdecZ#;MJD-ABx$d4{Nh0G3#A}kq!^oYzP>HG=TSJXEV+xj1GNGJQ$~S^X2r&ul zP!{==D7Q9A7@Q!-r4fSww8xYfb0av1e>$KukS6-tdgXC72L6jKkPQOJ&sZS=hRGN= zSKmmt&9NJlf1Yh6pTy{LbSQbGt^vOxZ`zq}0(4J1x#7jfUvGY0)gUep@>96j6exMJ z&7h8%^m?OiE)-uV*fN{4FFE^7<7Sq&O^?BL7T&)Ha0jF%<0B0 zU-RYnZGtao;KF zVC%1>fz#ix>y4d>Y-)L7Q)oCPNvV>p*G{rh_XACaw?L!VGWF90FlVv@4N9j4n@Mx7 zoH~G)V3c6pV$+-CS5bp#r07H;^#q?NF1FZ=;+SuRNUF@*G!wG*1PTNN!l}GZ{cx>vjNaPi6 ziU5$nKce(%m}$WOs$_Ap8B8=E_L(XXBs=<2aey@PqU{oAAjR6KTR(5BiY%v5FIvxf zYYhVXV?E7b#Miv`K@e;&-cOjIu4zU(=9l{D0ZIMFqyW4j2B=G^6&;L{32I2; z@!#8QRFNKPpml0NZCXOpi}iLV_r6t%4|Q^j?K;D}0JzuBUC3snC9CKkepDP2*OF$j zKU1572jJNom8_$CyfIXoj@Sm8rP&li0kvj4;OVvN|Lb+OnEr&aS~E1kwXKE^>bXAY z>`A>@aQ7_x^{)t@BeFXf8Km8gPRukSebtBvcrN@^I1yFg*@B0TYA9muSC7{>#8HAc zR=(9LC>#iSMi|9WS4bw+9+lkHuhchFFQzu!7%5)~t3bzwH>^if>n3%$JHq(IWVxz~ z&mbM0U{6(w?U;npu+p=4Y;1hM*M&9(vr3%5|usZ}|OcZm$MsF)*e?LJ| zEPZwgyIO(a_(Fw-i12nc1MA1$#fW$$17Ouf-HXQYcIJ5g^R#SeJ!M!wYHIYb5hP zbZ}6w2xhweJGa9aaPXd+1Zn(o0fMWYy8Ai8A*C5U%FZ48fLqiZ(Gdq~>0Dn#^pZ8j z#&o=0e<5cKd0;9+kSeA@BXDjx z=~(cj(cO2^<+00JKT>ygl3F;Tf|8RUjj`}PHS+b%)4C_S)Oj*w0#ttw_NJ67{Omr0 zW4coa$@7?Z_i6tx`55V9ffc)Mrf$K#J4V$ihqJIIZg(?-lE?uQCood8mZ5h_?cT=zU1V zdU3}d0zO6L^5+%(flk45cIK$~1e_{={-GmBviE=MxzDWh55{3l^T&P0AS4Sd z)jCie;9;zY)+W5;;r7S{bs z!dsa=v*IStKJn%jEPq<*LxQ%4CmR!%;e2upsotZiQU@^)i)||=xyd>6RbDfdJc}$g zfGZ6rOUjqllPqScX(MK?!#{Am8l2CV^>;zj%9Al?S?{d1hQ48%p@tL%z8TWKQPk21 z%SE;FCDpecO*k3G$zBR_EeH*z$Kf_K_r2wvf1V0JpXVo6F-t=3Cp*P^U>d~TZx*H= zRBr(fKH-hJ1BUvO+gO#&H~5Z+4M_vjND;n_Y6jLgY9&o24FYgNGjK;wi~L8V6D%MD z0GNM3!T*#*SF~Pkao+M@JH${RK0<$GW`7%F({%Txau)K!V>67`N z>Ayx@SE6N$$`8@#0?>oouYy@a3Gk-p`gbL=#}5SCoN0;FyuD^cjiBmJ78Wct1X^B3 za_gI+*OkxtROvJN)y9LrU_a1ceZHwsupX~EGAL|%=KQI?E$8pfIl`FLM_!d`9!nyI zEF+rf2CLQpq;v#LcyCzAV1RhzBSynzVEn1Bp7k@}T@X1cnc6wQGth`)?qLDJL_nSm zTpm6D49u1gUHAjmNGOy37lP5dlGM1$;jgA7wgcEiWVq=-nLW#S;dMd5Yt%E1 z_P>LOn%!(`>|D!ehL-#?VthuW{f846EL*qT_4E^8kIHHJj0BSF>1g&uQuFf8Ty;*{ z<;Z>^j@}Fm{xNx9|9*I62&pn+kJs=KX_nn<@<%=Upx{A)*Vc#G5E}mDEW%JAJe^T8 z#0E*+5u6V^Jr<3g>3TpdfIBx?B2sp3v)cgzGXi0 zFMLE%P3rdJAm^Ftz3FpR@nz}`_yX-e^Zyb=Spb!2y%9uY9-hre&UOj<4R&w z9OP;Efu-|82h(4p^;2P%n!hLj_qmSL(;Zrc4GQ9_`leDOOlVDccRvZHmipzP_Pg{9 z-*c6cL{P6_WOg`2SyQH@-T!V}XR(u`C}Va=tc*eMI0VdyN^UagcHE`)zFkGnDElz_ z3}!`Wm-q!DU%g8(Ajio~^b95{j6W6F>#q<|Dz>Ats@ze{&<20x55mctx)+}iIWvOP zFB_T*t1%XNC#{I(*%ANh|Ah9KE z6+0nZd6CFqaO8Dn+jcvjoOA4*BM!M&(RA9k(%|~T6jbwNu@P45uk^Y8QQ!U^5-v-I zko(v^dD}SXIarMltri=9lvcNRMeteagz~49Ei!MUjhIGoZ7g;tro!;Vpy2ECq9pf~ z!%KPy!_{p|8;f~~4{J_v^k*Z+c6%RDfKW92up+I&_I*szHYDk~l%=3UOrIt%+-X%S zf_QL~8;YN$>6mjZ1&*7{Xaxvo>Lm>XGr9*zSr9#LOq3&SiuW@_kOHcwKUFL5Iy-gU z0jiQ2$zUtlJ(!QrF#8?Zsn){%aboy}P?A;2QI5Y&5u9u!UcR#qzt%eekwQp)hj^GB zH@Sq*`BD-r%JSh=Kpe`Y>Y;$%K+;>C+4>ZtCl%r<;}R?LlMnaQByhYCU+v)8;ULO{ z53#FRoWW%zgZB^!@^j&?vXhL&m;5rlK~^(-Q?*)!8J;<|(wxcj#7~brs6-umgsXMF zj$8d^414|+)8Y*YC6L5|-J8@W2Ds<5^=q{%O;2*#Gc~M#axK*W!*>=|dXuV41>rR0 zvV^^QG3Pde9{5$o*mxmAbkVt*F-ZG?hND}VSX}!}=lO)gydT0l;D8)ZZcPrcH)qGUTVrhu61+;Y$Gx?Y#UlL51heRRRO7sm>#};|SLhOJehwka`%jXY$`x zt#3B(YrHvwP5s7R3SJ|j!jG2zwa!lB`_@NF^f~B7qX6G`$a4BH7Y-|dlBSi9vL3#! z*z&MS=fO-HNO`WDT9+Ic8r70b7iu@}czwvf%z*Zbs5WD$$fXjOyYof?ZO7?;fGOx_ zzQK56ktiBIb8r5g-EV10r12`sfoW$npZ$2s?x5l^OFn$`Ac=-~dXDj;un@tssgJz(S8*D?}C(>(>d5vduA_12)z z%=|Bg*Vl}~w8w{>8dSn8E6CXSyG_!J0r7lC#_NhK$7=R0XUnqe+Hld!{-mxL@Z|0} z9mpFGgBS;XZq`4`i#_2@*h&7g1ElHKE|DuJrXH@{f7QS*V7oZ-X+PBX{+jlYqQ~^d zV$^xuv}|J@B?C=TvQ^<7qCI6?I^kyBwnN1E@0N?3PiXUnbx`?myLJUOMaj3vPt+6? z8^S1r9+Jy`{CUc=dg_uH)U}0sEF{dm&_KSTbd44|B^w+oJXfYE0?AbWt^ zJt-aHaD{wql1q0s#epDMHuGNJ@BG(m7$>JwkQqPsQ6QF-nJD%wImdn{Py@?e{~Mt@UhX{kcgfMs<~> z`mPBR!g=fYVp(n7*s9LSD{S%ZqWbRysEp_kwCug`V-L*!2FB)z`CkfhUFMOZYo;0H z_BZGqmX@`&T+x~1W2XHB?UcVs6L`2XIlKbP0}K_(MhgQgFG+iGYFza~Q3Hn4Hu&5w zuJ7CGSyHZRH3#c;oROG(otWkg8lT|U%C4(oF_??pvU6Tgvij-4-kX9qF$6{ecEexO zFo2u>Yay5gEG{<|*|rss_;pM-IBGnSA?x~B2*)pokaR#4iZ7ro^)WmIycfdy+ajB{ zEQ3Q25%`RJ#-&YiMz5%uDj>Chwvfz@ubLlcpVd&-u(r(3X0^aZXse)T+0YAV1#w{q zJda)NLS0S-&|%r?C>LN)hpczr{3cjXEf`)l5enr3eu7?QBR8HJ{fyORxpGDN)R}K& zOeutNzIz=_Lt*MqN!O&+v;i2oh!az$%5Cr34z&9a>W!EXBUvJ)pGO!&apS0X>s1#QQ60V+zV(ulIlee`1fQbDy| zj3L#5!cG&->RLJ{Jh63zjR^7aBI@*^+FdIqDOvWcVGHd$))%U$S-E=~Ju7m9y6KoU z+s5zf`c#~v3=thYRx{m&tGc)E%ZQ07xB(Pt%;LI|#ewdZJNMGa#X#dzt6cF_KMb}D z3x+01q7r4UlOicbut=18`p52nfO{G&XV)r}ae;z@A(tnF_4yE=P9WH^PNSC@S6lIT zP8)*2@n(e$m#=|IwDZR1c@Jo-BbhuEn=NmCqv&#aHrEUClN)IVU{77!YLvC37W96{ZcBzJ(`1Ymt3E$Io=>zjXo(j*>@=^b?gXb4R@n%tMA=TV zCL+$d!qQe{#eHp4ApBc&Wo0k8ou@P=S%Ld&hnqL2cCNWiI&JTTth=3A#l0(~BphGV zz!dmW-EUY)ge0p2PItX#ZxGsixjcG`ZyHm|o@I7~H&dpHu!ioMbG;_P9W$(OW*)W3 z7^V)U$N+;nmVfw~0~^=D!25G$W7|fr9LdBhcXT_o$Q>z!JBFLsk7th?_AZ=Mh;r`o zE;$0Y+K|`ms5i}# zXl;HPIB_XV3<9n_sIn6T3WRhM0=^TA6Wm&A_jwvJgu#M09z!5ZWaR0GNQz@)6-{Y4 zYhmB?rzvvm%wP(74mZ3?Ga_FYjPk6kL_-vT=Z8iP4gAU{XYeF;>ZGmDr7j!1U9$7# zFMSV6`^+53@Tzwua}4wxC|BnMXNX9My@`jhS9);Vcfd;lKLrO7VNWM(%h!KA*mNf* zkA0r_#_)V{3P<_vRKE?0AgGj;wAjxY5bM_qNZ)!yjVlxkqIdl3tVX{t`fXzoV^a0h z1``Muw2Pw-s({nUMvWw=s?_SbK7HPahcuDD7AQCl)1gd5nd}cMMmH=+X*|eJ3dg}w zD)47~{&2tj6eSwolff4}X8f2zXvRRS%>Z}2P==&q8S)!y>*Qf*%z$*R>ZPLZ@8m7; z>0`qGaJAp+S1Q+6>7F(&8;hQ7E238_S`y-lT-y62@0$-48W$6xtC3&n;iTVE#(P)k zE(oYICF@NwvTUKL{Ru?t4R#}>2jQ{P9rIG0cBg`*aclda=zpZ!ib-v1{)GJe*3c$V zQsKT(Y)zw4CMfb;{K1Kz`lA16S*gm3CM)zA^ehL5?aYKq%jMe$Y+>S3g+eT{ZU5QS zMD!a!)j@t7(>dATb57MINAAk9t9fCqLbvVNB$kE%OxuN^ZIGagGy)Zt7ss*0 z`TWE}BzZ+7$!@nvLFx9a(>4_joQ60@UC!<#O=yVRv0Cc zouY?HD9=S$FXC}Gn#uny9W88obcy+dNrEfL;uJraQ?oTU`*O?jrAe6|X? zG;O_ju(w^L%&w!7{8F3n_z17?i*9?@V9wwB#{&8@jaV&QC)DOSzlOetQ!2QtKF!Ki z4#-$H+ncAF$TQ3JKboYEYs#zH(~FJd#PQ}Kk8F@WFBETtK5WTjQwLmSX1NK-w3|dS z&W*?rZ?!fcEZ!LnAR_Y}$!!C!#v6GWA_J#8)Ckb#-;ebOzq*6a7G5DNtAXH+Vmaq_b@XlX(r8mLAwCMSgK9!oA7DMVti8E0hn<*E&rd~|aQ!~8RY%G#wD z+^kuqqjG%M-?&F=(a4Tm33h0c3Cg8x=nPj+S_!2NbX3?%m3b`qr%$xwm1xsCj%?T5 z!Gt%A!Xc<9)>cToKBVhLpI{xRDGyDT(iGbP6h%^4c?=BoK|#N9qv((9kO)}b=(^Sm z{qt67)t9G`lrGJEJP1iMpO(IK;E_C;lk_F3J8M<(I&Vxn7r;qnMh%_(W$yeGU`Ii zG86E|ylfo45ebk*JB5*Kz0|wVD<^KpOHy(9VHONv@em5bJ&Hxgtz>*nw6!sqw*Zda zStiBWYYar2+>s7@Y&$=&a;|TEJ zXh1E1ch!Ixb+BvsLj$g#`fUtc@u;8wswmmGIPTBVW4xJ~cg2d;DK_7Kb4qW@`T@@kLIRcVW8Z|^-Ti9Yb9jDG6o}LL zsya$s|<6 zjh5o!R}B5vFE}O>lVjAl{!uQk>!BOl{OcT-XmE<r9T7jK+4_GWT2p3FP>uCqUmAs=UTILdOJ_6G5A`w={v*8%kDGAKWm zSe4rHFibB72kAw)5$I4w{Z-f@Ou)*6iPIvNE8-5=026MDlT_u70FT#8W;pYX8i-I% zomAKBg;qls3#str`YJL>6Y^YccgSGO;{ZjQ0-=B29R}h#4Z?eAte7B>$nnO9r-CA6| zW>PSck)Rs4t);e5Fh=idj@SDj%!C(K%}o*FB+E~)h^aa-SueBB+TqrK3$)eISXv}) zKbnY?#=JXejwxI{YUx|9>7Wj&Xj=^3yTzo*uEi0A^1AetH9J3$z`1iHF^v&M96m(mZ!P<%UF zaKJFCb=JT*3;8^YBl05G1o+Vp37l0fTC}+Q(PZ!R(7(_9(^x)~PgX1qQ&`mAy)8dl zAM_kdJFhs*r?Hh1IdU{PkGIMkr2S_OX0JUc0|jHkx8o<)c-EX(3BbtBQw-?MS=t>y z>SD%;iWY|EF{id0z>AapH^CB_MlHi^Vzhx(3-3Syp_Wo04@`h=rGrF3ax(ugT0q3t zSA17J-HxyqG)&2$8UA;U6QcRJ>igHJz!vFfQQ05=3Dmb;TCpmSv{uaPr?i*|a#})@ z$GGNK{9wgZpNyDfry+w$Op~rOjBqM!k*~0$J(nQWI4d8#K7N8NpR=zi+MGikz0?${ zkwEY7KEJsFO^mF`!Fb#|oMZYu{w3fLX9(~die?NBTSRdw8m~m4Gt53kGiK2TH*WN? zF#CGbYUOYdKQ>A@HPY`V_L+o&ZsZXlfdR-(YonEq_((%(3cF}%% z&Vy`rg2!L?*#@{-ApB>KS;+2L&fStJAhdby)qW=9pc*eq4`t&ujDx_N_daXLQv}QOy?~>c}}JMOrzzi z9^GwK6`Rxv{GFWntNtz_CrxdKYH08UQrHa(Ow1eJR#r5yhAOVab|aU| zM&C|6>$bVyoz~$_7nO_6zn^H3$GxufB<}G{!Ro~gQO>vFP&@e~$%Q{ro*ZgeID}}y zRKyXcrL8W)!>ZLteNT;0NEB#`jH|M2&gYVAJ3SH@tB_0V|c3jM?8KlH$e-OIu!AW+@7-+(9pnyD@WXe`!vR zpk?;k7qmhO#@oK}QM8Mu!X?>xJ1MDw*8%jCRJUk;3$Xx!t2pa|fSVH@5|5xT*u-9J zYZ~XbB2X2>%a#j~Zo)h@cmMEeS!(9@sHMqiI+Y5Mg!cg&ElCbCjuvU1$`eT}>ybv2 z29;lLjWex@-wLgJ?*8ESH|hG2BO4O@r2$})Ka?+#rlTqsI(bzYQb6c-3i~98I3n@b z(Z*kdI@GD`F%<1xy!7rAc$5q$SO0qGskn8cZuhriV}jk`iD@kl$(=OJ8`av>f&fv< zb<7z|AujRb2d6>tthWTLeA5Z2^@3gY(CP{UgvIoeUukzKh5iDsfv^rP3 zfm?elP?*fK>c`OTc8x3{$g;(rHt+Y@35R65k9`guO9^3hrEoiafj-dRwgY zEDIt)In=jF9v`l;7(R(FKsknS03`C3P{!N*p$$dKt=g=M1kSDHI1a;us;JRouWU8=`LJsG6am1#biBmUO?-f1CW z;ne4r*@XT1eVequdt|e1`FX@Tp54C%2N*Net>AguRSRZm7j8~s7Cj61-9mZzK##K& zoeR03xvwdHwA!6*T_s^>H$>cwTf0~1R;;&o{g4RcUr3le| zNKSorD7X7$R+^?m&78}7AJhfxJu2qxfsg>Y$8}bLJ4AHU58%YiaHp(OE}+vjLAdF#T|twbyr%(HJsxz$HtaMKummOUC^FK zP-%@)@sQ`rVG$bRgvFG&aKnQ%pP*tnE27K>w!Yj8IkY7^OE48+EdiaH*sHSG*umU! zz_N8MWu2rY*+wCxv?j+ytZ-~ekG7{hBcJKo2XA-fHRjT9()<0fUrt=sB;fR9Yod zX-On0D!ekFfS&Jhy>JcBTfMqMYZ2zx8E6xH!Nm=+N6rY=DEI;{?tl7u+KUxL1Is>c ze7@w4wP6!b!%A)k^0(N3;GbH``YZ+?v4!@rb`)Pf&s!v7tZaVjxoo?x+XmYKL)#-p zx~m;>0e9!vaB;zdU%vh~IctHRnGwS<8d5?Km8jB*|0r+B=3H=Rv{iT`H!1Y$(8_5i zS0q=zzLqh*FR8fyt3Cr{CFNZX1$S@NNfvIX@yj_}TEG{?>eD*8^ad3Lv7@fa^+KWp zLhsOSWylcv0WFFIqXX{^0)Isl@k4pLl4gSpyXm7)Z0}>%)W3X&K#Kw|=KlLP&rBpN zh|nHQwVjJAWzin zelvp%$1sSSdM{2n%T=;7#f3dDUi$QhFD&A=5zD6;i(JN-osM|&ODhxQbIe^el>c1P z?^C=H)mZj`SPDC<@tzH;)2F-o-FB$1aT`gE*qe!+TzZs%7j!Bb)aW*mN*kvhOsne% zs(#>E2BcFrLXUT>rwmmF}O=fi8QlDsyJ?iY~lCLdSEM^8jl6r8Gtr|U@?u6{bu=_S;Z^1!JP(^bwG7yRurnGD3o9u^B0W7-W zqB4}&t_jBDY{7^{VjNA%r~P+48wXV%GDd8l6FyXBLm7*-k*|BqL**d+M}n+Ghb3Sf z@q>aF#qNpqI{^B}N_gL^eS~D_z;QSJ3O+YCv=bg_rr9r|Ui{_u$gyP%2On~*Hh>We z;{JpP1EO+wYvHCCS4@6KJ$y^9H&Q%ZPEqwRt_gQk4NGhV;znT0hqR2D5`vFt^T@f9 z!DF~dPVjN^MG1MbR5*mxEzc&<-+CnC{DA@TDDdq29X}n_;g&N%2Z%Ax_~kCtZZ*O| zM;-bGgL$4o*ZMGJej3MU|AZl=MbAdyiHAh+dgK!)_-mN~t)-AxW5e-b&majUusZiI z0#ym7HTDtPJ1YtI`yp6oW~!9wW@dY>vN*zh3+-%N#uwY)ua!->zja6ML3ve84YabL zv}%=$v${FNTwiJfpobe2Q69F>1Uve?3v}~fL$q9s?tA;0YAVi^8CVhfOkwtQg0z46 z!v{K}?l;la(GDpa+1e{zVKcQ$;|ow(S3WFCS^8eI)iqwHFa^n80k7h{_YjTiB(Oi0 z&N5Mg#2b#dgNKL{{AQr1>jTium+J^)=fBZ?L&Cs4jlj>xxE{~Z`onBevscWI06Pvy`H zK@v;s*dAid}c4#0=hh88Q1=+24m1 z8w0>|`}$h2xa=`|W0s@m2mv$8kb;*7^RN-r6nGAwvp8A2?-u>mgg(3#;j-RoV&$th z3d#|N24%_(2UYrGJ}bw=6q?mY5_;OPfXnCad-lYJ zo-62ldfnZhswtJm!L%EOJ6a3dB{Z*b;IO?nPvbcGh zmu;h7@%NjkQfYBzOB1ZYp8)*liG#<7@l02m zIt&XB<+D)H8TVY6HFSi4b^Hip>cK0>mXbd46q?iPRhQ9xve4u(+nP@myO-Y{56Im& zIZ>HvdlUYFnFX>X39qYGzf@ES-hv3^mjh9!u!8 zH-eRCP95xrq`K`F{Lfl8)^ZuR%wvo8U^zlHugue%hXDab;W+?a41&DJRkJ;Za_5{b z$+0Z}<{vbQh~@!Sc`wb|B_F}I-*}O2{=P;xH+jwR1pxj9s#{EhxqeMhGzBLS;qwfaw5uU&+c8F6m0-xmooX;$tM0UrQB61Bi=?^o@4RgDKr9_(p1Q zk{3BKPe;PIS~Hb!BU{VU%yHom{xUhNyX2vy6|`;M>VX7;Y4yWQ^Qee(QND7{FXs_b z$rY4x(ua_6)yDKt@7M3&0IuO|Br}H4ctge?@m4(5lZ`>u`}IQhTuqn&VAsPB`9-?+ zk9su{18W8?*>qvf5xC#Jb{Uq4U12{A4II*=?H**_#wkznDk%+E;th)uXI3IqMP~$R z%URdU%^n_NtT53P?rFA=9kS(@Cs@=oGxz5WOeAG2M)_}hlM+^D!hD!G7h zYsrZ5Hnw+5jD)TGg|re2oRcWS7m|o9K1k8gYL_37&*$bZhP|GlF~<3|Oq2y|R=_+| z1m4NFivb+X{U7s8u zUfCYKF1ZF@RmG#<*V1}?C!U(@`jrM3LEd6e%^UdjnA z{QKab#Oz#gwqiVR?|Ba+v-ll2gS`49L7|{;M{f!yfE#d(%o8JSnzd+U7~KS%VZ%rq z;KFek=imkldZ}sf9vP6?*$9IJ4}UwR2{686WjnD7s1JU=^|X!Cfx2bM7lNpYPtd52 zEFB(<@nOxB0Lxw^DT~8aZqh^{Wo8BKv)DykM0II8&d6GEak1w_SzKfq^1I9cLQWPu zW`CkR(&^Mhdm{*kulcdY1D}Vt9eF*}` zFIs(p8SgmEGUQNXwkpHhVm7ph-!JPpUR*2x1{q;gq+IZt3qW?&ow);+R$$v86wv;Y z$w*?du8ux-xP_dG6U)4Z<=B0AaN#c&=X*R@K;jZmwP-=z=X3k?@Je}#1YFh7o7fPe zCn)J?tBa>JtQL`|)@|sq?nd|0Z~mgCi8i_yI%%v8sbryViI|Q9O9=c{Ygxc>RXb2e zyOY0Js%&c-X1U(8W~;}dHe6+eycUn{8F4?tz73+$|KcnsZsFdA)6MrU-%_V_zdBLo z;GEp48`=3w#Dz&9Ce(v{%_wR3E%I6cRhYKFV*q<*3M`fP_629vHc+1ORL&k&N{26w zp@=spYKBHbs<2G8t41iHXjFJ7`%Av9J1-{5+m|y+jaj8h8gm0t7eFE^TWW(FYs-f) zROeii$UBGgB8A6^Wkae;Y@C|Yr{wTP4yjWo+9C~DC%0?N)BXRyEz0p^M$(G-u z+L2vg@$ghgn0@{SbY9cV>vjRoQU`NjoxJ?!H2eGty-+apVAMOJQ4%ur(DiVBZwhyl zp1}>C0UqKT`V2E03C zh~lM4akHjy7B42VtnRCxbEU)b7*N~IEb+Q+R`Vd=nTh|oiWz7war}ER(s#7@iI;EAHyY&n{@DUzj6ud_j&-yV4rOjm^iDO7lHNW0o;>rP>oq zqCO2Ct-TxAA>)lqb^j@@BLKXea}?tDH(d@tnkc1Ju+cjRNh8A8;*M>*0mzY#Z+OF=i5cesrLdDGXirDm z*aL}|*lXVTS5c<>YZ1^_0BU0NGN~(nWr~IP@{bhTao{vnA@_9JkxbZVwX^8v zQmf1OJ0wj7-&=mcu7WeC=OPgxx9)Fjt0I&8CYj~2OldQ2tYtuFkQ@3PB*2nR z4G)epu<7bnPKdd2YxLRBJ7}c&Z9rRW8SpN*f2ecA-fw!k$nLB>UL^a)`Ai%o)@zLD z(TQr{OJ1Y2K|^NB;0g#BwT5bsru=L>IsQlQhY=;63(A-GI16ouSw!SOkc6?@sIBKahm(KlQnY9A6>now zptXl?x@iaL~wsb5c%dr3?7B=`7#R2n&)3z02M35TX$ znK!H%lD3)?5qYLrQ?Z~|E<+R$_+CBUQbBU+MKcwqry-qv4Ax^ZPTS(Oj&!JMCMt_G z+E|dST{`buG$EnV(#QJ?qvx*r5rPze3f1gH3gP#84^$SQ=NqWfXzF;!BGv9}YXBlq zN-U5NqjRhM7Eud#J#L(n4k?D7Vl~yJkxJ1v}c4E(q4A923CiTPlvGrZb){ou&!q63 zch1h3US`;O@F?s`VEi5&K-@*Q`lM%fAQ+-5qaQ@v4B9cC#zh-BQE43#59%r=( z=B20XY%i_s`FczzIt4Z_w&=jmF_F-R%Z(P|0@;q5Zxz1CB)|U2J4Y`*_yh0MFZF{f zEeD{tbv8i+Pcwm0!+Npc?f&yqY#@BeSCRZe47x_stjvR<$R|aq>&redt0d6oi+DT( zepw4g>M)t`U?sRK?JKx(X?5;*e${#K;t%XtbR!A~0yqw#;$26#8(5<7-Pi2f*wu^j z1T(~SW-}h2C1ZxK_DI@(0I{9^r3RSDRrSQ$H4D=G={0N4cXvfG zbAS1!!D%M=8vU0-}O4EL60` z-@Y>E^bN{l8jBMQ1ue9Ux2<)tjb*a1P9p#YAd?K@QD2r!_MHxg6j!KDE3!sYz zr4K;^94}|}U_EL-(#l!H=uRYv;OaNiN*I=c{gbS75axiuMNF3+KFh??mj&4FlGXay z^6P>V5hkAa7$t;){?OFi#^e3gPXK~z$aIk;wT3$PI6QLaqnBGQHZ^QW)9<6MWKu6o zbWH~vl+C4Ax^icv6zDPgc}ug!U%<^d^`fPKz{iqN1#!iH<9ZgXLt2awcYU;^ma3d* zw>|9RNYLnHn|Xh~R0ndk4ez}< z{|ZeOG>pVcdXHB$Syw`-PP&Qr$*xmP*|TSh$lU-vpHh>%HHZM-UJ_va1Dk*pSM>k* znFi2Smygt}CJE`eJVsMQp<8l0{8%Ulx40}^AY4Dc&W`GE?JH0K&S><%D@`Fu}gmJPQ2We~I~ z5HDK1#&ox5V_K8&!C)XHV5DmBg?mvjw$!zAtGui|&%of{J9~Q*&e5>#I1JU$soWIB ziYraFKgMxXtaO4Mx!|qR(*m&*XMk%!_GXGdsv znzju0L3XXxNLrM4E%*L=0ik|YkrHg8RMRiqWaM{V#q9_qK$#(Nnf;#}T0~$^d^e$z zU*&IX$|}ZaV}2NKSk1QLZ1ZCY7@fyL^V`^wbeY*S$?nnH^Bm*jYoXbzt?N!!kFkhN zQZ?+!OFUV6S5KGoULCe{ZZv~DzxZ8@M-l1{pYgy@0A>9P@!LbL-BJ5j^H2_p>;MRf z3?H)5Xh+NJ0We_1E05J%@7Q3qHL&P_#8jBKRx52F4As?at8yNb`B{~s7lO68X?N_A zJgOg#;hO985?>t1%==P9!yAn02Y*WdD%=tzmo1o0aq{6KH!Gt`cCp=&s>v`29!f)K~}H%$#{dIV(M^zz!AqPRBWbF z-k`ufNNDfuG<{?kY68v`ZQ?9xu~y zUT(y*$J%TtRqJy&<}cK<;KUNv9d?V@P5!IkYk*X#>qzYcy|Y^r!g_7Y2*vxTYLumG zq`iO#i$fVRz9klV$aQlSCCED02NcbVvwA6@>c}p5NHXT7b#g))-!)~+=zGT!Y`Ysfq7aYuz1%Bm<9Z7 z*^tP&>!1RFejt@oqjNK&RH-Lcf|~;({0(j5aO-^Q-B;eXLnZwol3=N=P}QWN#li(K zdMPP5Je8J*d;6)|5`7NrKWP!^z4S$b6dYQ*av*O%eFjSlb2e8a;#C*~^U$f;uVqUH zPmev?P+KyWVf%zlN68w3A|4)uD!r91j?!&+c?{FLc@`aq?QyWnCW0}rrp22@b%slL zFE{hhYOFiSH9K@pYipd0L~`$v^W^9+4BaYF%Q`_47>QM#h@O_OMKZN;QyMcV~( z!Pw_Pkzj4UtfJN~t0zdnb|Lan-;(;y36WvfaZE}edKSi$m;_j&?zLz?p&OVDd%jl{ z0=I%rO$IjIeyVxN#=9meBn`uO-{CCNGyPnDBUZlgX1h&zSFaCq z+d{oaMCP){`GsBvx^!NFS`n7=wchuomO|{Wo%J&hlp6d!eNo-2K~$&Shjz`2^iFAT zA;#JH_msMfQDyi=S{^0lTjE8Nz;dqMDKRdK&e|z78l%(yW8n+a1Gk>o@jYtOZ}IY> z?BaTWL{talNMd_KQ!k*Cum-N1x}Ihu5roBiErx*PvX_qA;g7%xPJU9VuFC1M(CM_d z@$~rbWt_0>doqvWtO5G5Vdp|L=+0zLuOM8onr*-Zt8=S&{E zinENjvxJ@|1u& zpw>cP*uP0SzPg~JT32cPt5l=o^L^b#$u1a=Lx%mF>fCJ}ul%;OsIBEwFXe}x)ccuN zKGBQ|(!=Uw=`Xmuc+c$XM}yvJ%1v1p=ag9yMQ0zN zXpuf62V}3FcEVq_Ud_fY6LGI=JOWU_h7PPNmSN5U#)4g&#*#r@0+yf=^aC9WEa8E;D3M+h^1^56fd42ZkIsggSb11 z8C$!{xn|^c=cWe}JyM8_@*8{9h9ahUkL&k)Aa!_O7fj74zurJC76927~-T)xo3QCofn}p;smU^ zGjhwac{WCf+nAt2l(2^&uKsV+$f_4oPe+KC)g|Al2=ZMhwS6^76iP#+Ai!eA)Ar>4 ze9-tk7KafJX}0McV)i=*JJz9C;aTNe$~*5Q3}q4^>`;B=Zs@q6Xr0cs1(IyGnwuDp zNSqr<-_k7C6u_M$A=Nj`q+Y@0!$R>wo}F50;jzI@034T3P%cw#qx4SQYnrIjz*6~9 zdUh3Vsa2iH^W&ws9`kqRUFZRGhYL(>$WPnVRkSIQBKqJCOEqMy_z^^XQ2*J6ZEXhG zyPQF%6*yiHaoNI4b=8%L=t`y7{f~xb%l_CaEJTa_guvI%Q$FE< zM5#Yhw%a3Z%uy;)Y??2y0m3%Y(l-}4HuKy=L?n2$DOulmx&1$>R1Qdr%qJgF);C+q zzBjpET91aa^9ox?5p`wQWZ(I#6A5E1ztQf$UH7PQ8x8TJUuZD|847oc2=z z#O6HvSz^mwCLI;*{=8Bbl0x#O(dP6fuDqGqkFcg!!hCXFi;#=U+lEbroJuPndJ9L^ zUQbR8-w>>7HD|g)QluFkVqvU9z51|`D;D&JpkM6#xL>UK@!vI!j06(ZLg7vC8djW& zX?y!=-<~&0#D>Jd5?$Oah?O8eLH8IH=%(iM1IK@H2rfYw>*1&s1#;wL0x`6Cd7+Bv z65H0Rg4hMe>#<;K5B=1UtNd;ct^^yS2q|^h@12~nMWonkIteOL0-n)$J6XGGs`p^7 z8Vv2q>SJ7!>H-%EW4QP$zO!IexH?1hn3)^v>34D9J%K|P3XTc>MC+A!_c3N=ROr>SZ%jQH@7L;Mzq>~%YpW(dRlIDZ5JbV72`PIbJkGhq}7Slp7tA)MuK`Pm(@mn4R53tDA;o-4$g&y?JG1p~* z1v)v>eKJb8L*9~x);`yYC6a8~=LD$?;}I|(U8DUQ0L1(rTpSbbv&s^g1&4`un8X_6F$=%qkz_{ClpUHJ(uVPXa{d2iPSpcrUrG{;G z2?%hSCgn>s7nGE>=3yF>I)_9f!TN!C3Cjw2ko)L8O2lvd-~x_rViFybW|0Gg$% zLv5t}tVk+jo-}rPogerpV`S3lUu7SCO}vVd9^}4c6fB%a@+p|olOc-7a6DhlsZeA0 z9cj~Tv*6J)Z25_1=~SjWweY(+hsvGe>rZG}+4gTAJ=ry1ha^cA=-^uwB>xIs1a=-4 zl-y1yA~OFC3P9a+%}i-OnE56&jEPz)^261tiv)m-J3_5il^<4+b}mYwu*|j&bco+6 z#bU>U^+agQK;@j!n-XZ(S;YQCHRt4Y3y80q1ocn+7DIoG-c^AV_N7A5&M398;Jl7I zqIBUX+Sdg06`A;sxeN&3nPA!Tlb{)jX19yubMVH_;Bbhu-@s=@Y-OHe1qI8QUnuxj z`u|d6+My2lO&K$yV1g#Kf8$^v$(6XcBMmy3<#L1pM1xPG(1ceC`Y%GQ;(w^Jt~+oB ziX|$h+LcD0eL}Cvuq_Op!yO(-HenbJd1N?Yu|rxUMLL$kkC)N`jIO zWH~sMxJ-;H+oS}1ANRXZaN3*gbGMjqa@fI7C+VYzIo0RT5sh$7%!a$O)3XS9Fz}k< zgsvdVL7#zhHga42m!cMIsvo4B7Q1i<-+z5WxKn7!`MgFj8-xO}=fPcC`Ytf1k1zN_ zp(aP>nDQC2w=nY*gNXPt5k0HGc!peS3WX}hr+@wg*$3StkV)a&739cQtbI&hSj8BFAV{7lyz zoW-cb?I3P5KzpTD2)2J9rPdpUwSv4!t-CfQvTHiX3Xjh&xQ2u9Cr^8CJv?E|G(+HH z(3smM1xdHu@&9XZk*+62xw`MymvzUZw8%27aGo=L!$|?hlV0tkx%aF}kXjX4n18VR zRB(_60kt$nNFnQNn6Pl_%n>;^=e<*6pYY^;-K&-Kn@Pubt)Jh6xuem?#?oco#V3xB0Ftu2!x&^KI!qKUBg7Ng6ML4mdX zhvo&mx*XcoH6WOmiuI&L`mYV7(+ENJK@4&JIPXKvBK=N@Q?+5R%)egh7 zPh_Q}vxD}hYn|&JlJpU!DEus4TURhT4IMkvr*O}HW{E(`Xt0-5d1qqc0 z;%1B8{i04_s7ZXUmXZXO*O_ry@t1LqegxPW21ogtf5JGWqP-7tRZyWL$_Zcq}<#Ae+uMHJ7NasRIOSlRZe7TrrqN+ zY1CRe7Bk`77aLk7wHMD6k2(#d#i$xY(JV>9p;R!+S51z6wwy_!q)9uC5)V z^qbFl15d_n&bOSc%jZT@c~;&L?gDc>*FQu*4Li21nL}KW-?Jf)g3Y4yz27rN(NEd+ zAXD1J0;;GX9v+}Ww@MhoBZ-}J6J6j+c)W%_|1i}1dk@u;04hxB6X2?54A{a50b|8^_Y82<+IhU+o$Z_%8p9};fIY&XzoMjHXkVKK1kNNz{i z$;>CR0!a!NGal?8-U6|{zjt3_M4{Xi_DFz2xsT+}BJkJ!YxGp2)F?Yp5oU;m{>@p( zNP-*y79vih=F~fn8Mrx7_adUvye}f)u1o=`Q4Bx6C%bxMH_4Pl=?-Vl?*=75u8am8 z{E1DK#A+ntMn`{a-8=YRG;8X5S>As4HyMToR(wKIG{%Bu>nfkArJ1SI;pQP|Q~eV+ zr&J{|C$=^2|bi4$-d2G7){?Rb@bSXzh`|oYXRxB`R8*V#Y5Jet8uxud9qYQ+AA9MU9 zYMCE(h5%kg09Epemi=?)ua3MTqV8utDH6n51tIvwNOTyC+TN^eFD~4}%JaVgQBjQ$ zoNXSici*A@7J>3_GXhkejmGO-yLSIt*f@|$HD>L?x1ggq6@%<;tV9CtFXGTgcQ2T5u$P?3 zH;5h}B@=Dd_Z3w$E5{6Nd3e{Fd{^!U>0u@_EMHrDE52NGCtdCxxYd*HCMJdYWOl90 zG?-fpW_HlbPz0GoWva>a<~(pbqvuH%?cNXE3@ILlHA|9=#J1C+Zx?Opm^zKsO>E3R zdoY38oB&V1mdBybKB?t9!xPOq;ig|f6;6%3VJdfd$8N%r$ z;6R8F_vMeJNz1eo1#dTdt13~&4fL(u+7Kk*PI3g5(>FRKVMH)Aon{hN?a>25IpG$I zZi3#KuBm_UW*ox^E%Maa|bV^KsvQM#J6ds;xwrVIM$rt-44E(uH8dYK|-}Zs&jWtd)2?ySU27E}&$IY)(BN zy3+n*$STW${n}3oD-u~h^TS9y_cKP2Sm_C?2sBn@!A=wK80M6uPaFkIp$AlEUm5y~ zb3lPxzx7u3al`K)3dCeZvmA?JWv5|*VI)P?p9Rf|eJ=Qngg991Nat?msd`1*8DNFM z9gt1uOWac%hui88tWvSkU{rpiUAUef2lmfx!#+E9n-%V}FxN+aQ2oB^CMXFH;Sk`5 zpF2Ma|9nWQ)0PPAlSyif77aA=t>q1XnB=cep&<4lqx_=8isXtsJp(3=&#XH2d<~8r z&La@j&K6&pbI-?@zOGuYo-5K67k6V&NKwzU`hE+1rJpSi;OB-&%!A8BK&?c$qP4~% zJO)kp8C`4Sq)D8~t^w03ji^4dvr&&f&6C-&QZ?qiHHcl;98hSj_tw&N+(*6jmp(er zu=1Vj>Yy1hfiVLcXdqbs=xabPqhq>4`sY=*qHnEvgn>>Nn{GA`5{40({$BakMPi_3ji))r^_$)e@5@tfXa&x0?Wz`NM0Od0Sa3Qc+IHRq~c-k zC(Ca4{w0v!e(L>Os5tnCSkD$ixhZv(Z_OycDnV#|NT{BI;A{NO z-X<6(`JuvKw*VWAe`(bS>%LABi8Z9Qs{Od6Or9x_c)@esT-U1yIn`97mxhcD?_j%+ zVpNf2qrQ%Lv6Y4_N`fsk6ZsxyqCWp9V8M5Nd1UZ|o)*oxNO@IID`~`+*U1-%5S@jK zz2&S0Qt|}^-(D&&hBTo5Az6=WK!E>r1Nq{-!t{U}v}uqvmh61`t7}!3PmsH-ynfu% z>=0#~`oP@IhqVuo(wSs37`GJ`os9K^p4SH_CNR$@fra3h_WHIy$SziLlf#z3-3k;! z0i1CRP~2hJbodiMGDlAzb>2d+eid=%DHTJqzIcBC@@Hd;R1OXq%JXA%ShOG#Ks_F` zX^xgL5XD4`VpBq4^xZoz{Y|n2#;xZqx$F<7)U5W#S2&!u0z61cQ;gxl>@kTy=6}iW z_4M$YBJxKc))F3rvd@fzS<%NX$yHi@gvM61&gVS0CV@<2XLYyKBwsGesV9~r~cSP|KB$tZxXW4c*1gZrD*`u;(n z{Ddb;Q`7VC@ApJ`W1Tk2NQc`PCo=MLiFU3@(bE;^#i*p)!ay>+x6M^*FgdGn@L5%V zz@%~5SnG$V@3!2moRQhCG*8E9G<9oI?_KJ~*Ir0Qc5;cZL8L)YLAJ-`&_4l-l;N-X z7zXlywhI4WE=@v-EByBt;@{a`0ODDhf%aiYZ?JqHEQ};`y9dw*JIJ)g?t{}i8w0`P z>$gXrw(d0Z%8VIF!IwQVJ;46G-G;eHgeAxX?6ddhS<@q%lEPZ9FQSKzPd9dz+{D^O zM`_bX!Gq7wi{_~aZ>!jQ`u6xVx)(pusl?UJ8wEn+pP`GcXsb}z=g?E9p&C?A$yj3| z)cApJvkp?wep&G^VVo664qo);DkklKw!jrf>y{n&fSB@@&XxY4B zzlNQST2#}j@+!7${l5lhkdb614^B3J7!QVwA!?M}6eUw=f@|#>Q zGwk40KQHcin_;yQN=Hzz7FFkkbd-aK0wkX%qG~_mBo>V!9Q#%*9MNzVD9%x-TjN<; z3qtjER5$oT8R`PY1KdHd0_iHQl!-Rr(qmo2HdZUV!_cKGM_mdARpt58%ry&l|H*Vyw$f&@swt&@a6w^3L1zOu z!nn*>4$Mc*DTAa|;KIJ$TBpHSZfK5nO-Su5GolK!SK3i^?vY<2ZO&#h1Lrd6a#oH7 zFq@y-Z_O)4d-#WB<`-s~Oy-GLeX`2;7ELHEr#+N`6`EOhRk-6h>&1{O^jL+=1z+71N*8Mq!CvrE z=UPTdDez;6hxV%^KJ)K5t~98o4mtOe{)KQfUu;zUT4jy+HSIy6kLBZHI`ipPy}MGP zhZaKWbOqAV;6|A+IHy0~ydJB+;2z10?ZZkHdqmgph}dsR9rXS!1&}J#Vj~=WoXasy z#3Ir}f>mJOD(KZyx0gE@_kTDMN+G!LIc}!vA?Sn|dgY!$29(+(jo!^mS8Hgamnf)N+}3FX-_uhd zhEylitd8!Ss)mI81pB7Jdi^A3PV}v{(_2_3Bo~Kw0LSp8%V^FvW=T!w7akhoI3Li^ zL0Due)XQWtq%!z}{$SH%d@P0CL=f#AwvM%|m>Z~UjE6h^(DN7)wme*IJ`SW~it_Dc z?w*R$mABf~GV4ZXm~3zNtAVNEsJVg5g9<8a#$Fws0@v%`oZNh+l1i--@j(`1J>Ii| zSRp50k~7AN<_1$_NzIaHg8@hZgPlAj4BNCw#8s`D4(RKcYz=!jA|*2!QCB6J*Hl9` zG4odsR6BtjCEqGLX`9`Us4*cY0I1suTt7(#QbLm$&Z_0ib!o+p^a!@9yrH+|1#V zKatcrIs3ZMpZtb8_MFDFm4Ywr{waB(^&pc`XfVelo)!!LY8oGgOoj+a4{@5YROPB@ zS~y-c(X<00E~)Zf)VrR=w&KdFI#!)$$^|dzKn^=Yg@2J?AmFITsIvqmHA93xE82@n zV_CTgDYWwU<$fG^87Dh(FO9mKSI`qbnB8gx%*duAEB)a(#g4NgM;Q55U&&?b_sW9y zzrOc-;F|as_xDp#YGL4=v*v9BruJLtaN(6lF1-1ePikPwu&t82K+=GeTL(Uk(Co#W zaJ?bqEn|jQJ(}n-!CGcqYok6P9w3L%y;=rz+lDHS5N0N!l^?{L>M!;AiI|{Mo7-Tvnta*t-rLw`h9RW`i8oc2cso?ki*zx1Snd^42KV%t8Su>S>{vYL@3 zm;;$J>zf{;R_N`(z1Ht*z>Qkn>_tY~H;BrR7JrT`LyK}*eNY(|6g^$*$->cEWkso% zEv_rrLoJXglwHEu0fUH%H2_9&bhWfz#|0KAaZLhopdv;thPAflNxHneH?o9ElC;3`1%+#mWG_iv&?IRNDVG?`T@ZP2cup4RS) zj&lYf=ivE9fIH_hbIoIpK`X&ZzE}rck`$X8HZlG$L<%FuW zP+#09S3qWdr>|duyFf8`wHt~&`{;#U%p0&gAP1xE>gqUH*h|%iLwKsM9{dtZ@LC28 zeSui%kM>h14M|_*Hd|K)DB8zF;>5V}HK>dK+H{E)Vp>jEr`E!-*irdl4UojbBD}VfB?yzZsbti7`-l=*SjQnk%XQuvf;eOd+}H zjM9r7`m8I~r!w5uaecsjF7jJB!bdLZ?-flTK(J$=K~=INQh3|H$VCC2ziinVC?@=1 zRi>*GRExQb#FT!q>sML>YnTH3EsZ}bN;lfGKBhy+0aqS<#`YP`+`~XVc+P{ zuJI=9L@#u|H#3ToJZH>}BWt$oE`z^22;jT1<-#R0d(^dHF8@AFx`V(3bPF43uT!nv zUwJ_G{)mTiKwP7@B7dC0+v+csK}@tYZ2Hk5m62$yfEc-V(vSX!I8BZ$Tenc*ONz%- zZfGNiu6Fn$gGM#aYpto0ydQ1iS%d1*Ng1?V)2<}0mlOQ3rSq$9m8)} zMBXqGnG`=YZ!Uz97y>c?w5~>5+0NgT|*RX?z-1akQ4284)=87Z= zqkD@GPF$2fEsD_gIs02bi(;`%RPU1lhE<4J-lH^FG(|wVA_I0fao=$-E64_#Z^U5? zIYt`fbPTNjiSj|MxPnkN3k{`Fn+Z*%uqh@K<9Um6-pME+wkuvfZO)cYu@Lu#o8^7q zsyob|i?JOKafTBUnq?R+^|ORr$E4{MCi!&N)^NOmDI_U=76e_Vp9wphPk?EI74s`- zsAK_XMeB|hOGDYbKeS2;S%XkbkP;=hH{jedBavCfh|BgYD!R_?y&W|1nQE1q4EH$t zDLf0=M*1~tjL!Krk%Uy_VyJiRUiht;R6vN;?&^Jw$FFmAv(rCyEtnzGi^tYD|1#R+ zNS#?f-d&wFBSmKznF&L<#q*-5r=;y;=SR@ImnHHADju$DXw)O(>a|wP@ChqWRpV5- zw2vwD8#c=exNL-5gsc8CVH6GbkpvxPp;v)T5MxQ@;fTz_+65rdxt8j%^}6c*#8;t5 zR{BwGw7)5T)6y-iUZ8?*q5U*)S;vTJNIlx8JSfsy3o=?BvSyR^On956o&*-$kGSztk%(02*A&cWeTp1U(3Oh7DG`qHE zpd~AAdA7If+(FIaGTRe|7Gj-)se%90h#BUnIyHntF2Bfp%}l$ZjV_sTshtz55la!W ze*mp!1QRdXkzmnR{LXeIV4}%QIm~R*V$24znE`|%(tYB^KdneH2Xv1GE2+;0FQF4h z4*AE$%8AjQfizkz#KpA;N}Vg|@-9l+sa&I0Y2~+M;>-H#2R)tPy{8`{a>SNE-WoY~ zPoU4_eKszdLq5f9+*y}Zra4QW#17(Kd|V_E0Zk#wl*SY-oE zRE3-pmt&ad`pCoI-g~s(U7^}3p|it%@a8w^j=sf7xHEw80(Awz1|pII0s?g~?~@mv zkggMIJg*SLXO}~vm3jG1nxs*ILQX;Ue2>;H4`^5}8x8)zQ}&OP1SGt7Uj#~kmJIU# z@gm4%K*6oF3_7)dX~FZP{bHtb$OAPr60&mkLY@1qolSe)Ouuoxq#*L$FKKX8_%g}8 zQ-%8((Oy3*nz7Pyw|mYKfKewHY&W^-eClPuCisN+h0hu;TKlIZ_;f!wq&S~_n8;(0 z5=1xoH$|S6h&!}`1|IN=8X1ndU*mN~=>qN6=#POZ@w*dtqVpEwM zGDdUNV1Et=v8R)-;mKh1)`#>Z-KA`oQkFP)6kNLOXvroM{~C)u-%&O*QQoxq&3jOb zmd|L!WiuA1rh-wi#;>%>GnLY0@6ejahP3;sDv3ki3$|YbFLOCT@Kj21L37Y0Lq0Ql z=U678z3f_j3TZ*y;&h9gFTDB&hXj<=?QdenD z64zc64wEl)f0=NP6$nvzE%SivDp!FOqYDQ7lHD{?Y;kx$uR;f^mYc2zG;~iND+o1+L3`tC zXmgOXeB|xf65w#{|NWKZI(}H`6yGZts`-at8d>7joJgtn?@W!=>5XioDRd039CiFpvUL97upa%&iEzcNC8h)|pw^p#_u~xD@UO1g1Gw)>$+( z_QsNMbP@!t(AN#QuF1)*mXXEn{Z~*(?6q7W-**2akcE&Djh31i4Xi)WC>Ws(gA`(1 zgNqM_CQzxh01(OFw!9{)-euIkAd5hy)KOGaprlEMDriY%XFH%Y+#73aT%QCO$R=ni z5i>vvL;y4FEZ3;4eN1etl!%>CFLlPH5?tkEPou)=+HfD8OukRORVIf8#g$o~OFK)S!N(|eo0j|%)>(WOA9 zwg9ewiQk$0TlIepK=s#{Qoqlri7m+59bf`9g=dhnb$V|Hs{enc?0<5JJ6l`J8QK7; z{->hJIYnV%+W+mFzpTVS#o=opuZ31-r zt6KmJ^dMWOcNc)2vy(T#)Ybw1&yKRQ0T_h-i2jAx0Sv-_BMtzA$lr()z##fJ;sP*; z{ReR{0vN>qMoa((iN6uc`vU$(?@{FbgE*N13`&2acT45J5i5W}z$e5 ze-P_?6vOu+cCc`?`rG6^kPdIPQ={Z z&KwB(hsC?h;veumwe>&Xdv2S*A=7*AfA})J=eGSj`n#zYo-Zcnb^Lx_Q#E zaxnquSl-vk$-?@lG1$HT%hmW_x2L}j#P^B)H~w>P004n*Kx6o&d0S(iAj{P6A>}?| zg_9LfRI(G{}RntY6n# zlBy=N4#|vQB5V#oi4K-fA4G(3rl###)*iLx$g>TscLkL%(diY%-X z?OcPTiqp=S3!CefNV&v&l$LHT#F1~v?&wXIDyi@orT8HRvd@s-ei1tliCw$&@H;A@ zXcHNGsmMNX%ZxVfj!vW{LW*~Y2R&AT%GyM;z|0u$j(kI`v! zmp5FAq?A8z`C&0N7(Ze`i8VkzVat5%*>F=Cr!b_r=8E087bViK0mDJAe9|M}cw95K z;e$1I?@Vc7VSoR4TJQJjmmvo?4L-`^ih!tiCzi{d;f%Mk*OtteF|#6*OfB1GTV|m% zG-c9698nED&6|+J*f0*EB{sFC#H+<+GM!glis(YjTey;cK6foIw|Rr`0+KWhR`_`H zZOCKOg@xQx+m9|JAfn#`3wZ$bER+OrhN#oNRdL|^7=&s9jy=|bq7)LD;6c{HI_F)H zrhius(I%m>1Jk%(s)WeeehgFIkXxTc2J=eBFrYbW>y-K7P-d~H)~y1-f~OSdZ0ejn zA~KjP-(-MBqsDZcg@-ue1S^7_5uO(;?}Zd7S^hzIdj6U6&C6&rA!R4#`1j_Xb2wAJHauUE{T@s+3~wP8&v#{W`y3wv_B9#SC0aLB^lbH@4!T>U@R(?wkO=uh`*;8steCJd8 zm)F9ywxFMw@P+01TWX*jpe|e$W>9FNcqVs3m-(+c(0UH`1~Q$BCPR^&9IK=vJh=kp zB7sc8;&%6iv^0#tBY4$|yatRuy|fd7r*#&qLV$6QoL@qJ!eYWoK}}ei4Cd#MMu)JU zt{DC^%gzUB0|xRZ6chqk-$=S{jo|eCyTpUeW#Pw;MlY@d)dx>#(WxUhjWssg=9KmP z@hPe-sWQ>cb-l6p;0!>pNr^j61BIO#^`Bml5-5*54VB`A7y=x)wXq+M;Yl@8_q=mU z?s2+=p|FeZaSPCwZSfczV8|j(fsN`NAnPDKQuo;gx@f#d8x=_N)?9mC$&S4P`IJFQ zry6qfMUEBasa~)AuZ$J|a`gZhs`|A8CI5 zpe4e8HuQ(P8HqG)Co1mByB7K7vMlNXyJ_apQ=hTcW@OE|ANy-wY^)V`{yH1P z+G~7KaGBP%Lbbg|%s!(FLA+VItVR~?ZcUhIJULNZx;c6xSoX`xC4a&QxxHa%g8>v` z{q48R0jsBNYBdas*wfc=(x-r_0i^+{ER_Z~*@ti|%D53sU~JYWt4pFNC~5?ld+)$r zshIEeIve&9Eu`|xCzmcvfjrYFCi`}3Y*PT~d$zoZGApAZEu1+N zpl@uWT!U1b!p~3{pHY75mS;fY^MvsN<8tzrW=Qr!=DT`5fqpARtmI9DK7?dFaycSZ zYOPk<@j8Ww55thZ8-~Tg=0uQ|k_1Z5sWar)EMzpm0`=uDk{<-x4DW##1&VEV6F=X! zgz@u!fwxl0!en?uFD`5&BT{_r$AKsq@viej>7I!V;+TA#X@T4E!mynO)%DTl$J{b0 zT(zi$Hy&)wZwK$2OCZ>DhFID@FL|Gq=fG{=4Chz5va0fekS(sKT95>B*>}ALhlBLv z@(FN=A9riRK+`Jm=S5|^UKl0RZ<(=&&j3e$i}9xThHgbX%y7MTw4Z!y1PGN zKfvHROd9Y?P`9dRp=_bBN4Xm`-aHsgt6(fO&)7m_7#>VT27&9tZ*Yt>z|jXfVh z@yL+w{>vd!2WwR|VR-iZmml=sWt*T8@dFxpFV3}eaAAEv^H6oxXw;t-8-gSTB+>N= zCfJa<7^|w4r0VB}w+VB_ASF;q`ws8ip|QaBintE_>Nj|kPSmK$D5LJ@6`&Ej6IdL6 zl-WJcayzhVCDQPyV;C~2J_Kb@hm?hZifXf0JyhtSWLRc|S++a17FDjo{kn9rA3~x=FL!w%t82d9h}2Ur^0{5@AcY5xTJhj2MyORfRMVHZC;NNBu$SMS5W<^Jo@0K@6{Bms z##65_nT@3{bbyz`6}`j9h(wVj2r>B~#a*V1593$6I%bQs{#e1=pD-RpK6;}0xOu!} z+9pQh1fnUS=pjq@G~3e=6v?4HyP0K9{H(8+s8kp@3=gN+1|K?l?loTnfVb1V9p8l|#??R4Oy5P>qcPX9LB zcisyKnaF~K_^E~gory7yfRgm)n}f(6NEM~bW7S#>OO!XO=``*j1oL^dXRIJP3)xp| z?>P~j-{}|6L|zQH0(j8KRw5hU*45Ip^>XK+M(Eh1QNE1o+ArczE;(yEvK8cc0=hT} zlM2q}>WG*l@H%YVv86*RWzM97!ZDOFh<8V?g%dxJ)URx?;Oh@X!DG>B^n&feRT^Si z>}+vDa;`^yW8jB4uKCu1xe%ykp@Hf8^kOIhHs8)oAV*=1sztfZ4PEjjc{}*9Dsj%- z8BF{)<|7L z-$oR8->< znr~H-SSZj)F*a{+z#>!W$ksiYgjnBT_{~aRt;zQYe_70FmjkW3J4hQOEQx`e! z%|oRzgf%dEQk#?S6QXX~K&pqW;MIi2p}MHwV)D9@Ad#EMec@ zkzFlo4h91`He-x;8Yx2%_87^2L2aoZjghLz+EU?C4_++0?@XCTbbnuV$`mc$f=I{l zw*fR4m4NWUMg8;TLm7{BqEheTo-eZvdusSMkRb`n9W&K) zHP2TG7o5Hsf@BFkGwIeS;|@1)5@9*>IvJqbl2OiK4HJt(V>TY@NlHD`2URodh|=I! z7NJ);S!l7gpptKCtAo>67)}`A5E+@YEn>#*7Ga4bS4s>^>d5=8`oTATW^nqYZ~Bo} z2GH0NaGKW0Zp;K(jnH6En(IwHU%Waq5OS^H%UlZ}KtsP$k`4DiN$WZ;h(%AGhQ#X; zMS#{bN3@l^& z{*n8v)>#WuXd78JT$XMTF4wABf+kpekD1|g`qx|Vgapb*9z!2!G^Fh?ELDgH^*Uq< z!!)PyPLV0{--pJ5yp)NOUeuy9D!4~S%RLg=EO6@<7{0dKuAd2U1>zSumWRaQfJut? zd=b?e=J^Ug&?nllgYCY=01cv@w50T%e`n4q^I`Qc9D7JUK zje~|B8a*hgBPv8yj^AG3>Ss$!Bfl3-OH6LHTPZ|}{R@SlWN*WB<5`0duKLbGAEk8s z&sLmv{hv$ASgb>kbmw+X3u6L1wo^v1yY+-dbV*ofa&_0wa!)b!L^k?;QB^{dJQR6mm>x_c40vgI zlyc<|nyS)Kb0XWouk0bsJKe&sG_?1Xg1s-5li51_EbrY|>qXMRY~5^!sSreYrQM7OpzeZMETna{pG4>nA=$O^h)8 zLO`|TOSE6Y_*&sZ0vl3a>{%@J)Nt4<3N=9T?ZbyzfsHPKDWYd~zPgCLLz31)2AZTL zHoei`nMP@7Hou9~MZ_-()Kd}$lDUXcI-#(x;mcMAjnys{oNzg`eq`-c-$-W(*pYf3 z5Bh1NXarPr|91T7MEWLjQlu`BnJ7KS9T{gkev-?*21(%LTjD^@+RB=afBmbAF=P30 z&}6aoTVDLFM^ONMYpRTOiK~e~=YV2AF*EuWWsCXHWW0+Z?@E{58f$7vyKTqWx2DDF zbn+nvMlcM*UD)oXZF%KKJb=9%Vo1WZ*RO@0^%s%42C92isp_q^A`TTD371eqv`z-U z>)$?CokX046{`mV`r!T@L27%-HTE%xzrUI{`pgP;5;ti%r_ew<2Rnuru^fc1=dykO zM&iJ{|GI04@ns$9p-e&wA>f?G4_gC1S>pRx)6M9NT#cCOwY(o`t)87Ci&%AtPY)zD zo{5)|wV{m0e3gs!$E^F{X_j?ywcXL5U-8wAIwfx(!}6dCr>!3p72-yI3vdh*DUvhA z_ZnTN9XCu(yRq@qV4UQc*jln(s?zM3rqTPO?g-Cw2FmqzLxAFW1WJ@KMx{8W@wV*&B|KciEmUf18 z-E!bj{>7d_T?EI5EY03g(0NUMCFwhEc!cM;bG(`ru74^z&dBnGOhn`d=wV^rI{zlq zTGx5xUyz6WSQ-KgL-(F35MUG12q z@W*QSRb=hI)NSk1d-Q_cN|2L;EidS_!F3c<#$6wim?FC6XQF*jBcsU)V@H<|Xjh|H z;X;>7`BKy45mrl*NJSe?<=5HIl4&iauDBpAEjUr7+M=wj{=18}ZdBL{RDx2?tE zqah6WnRB1NoO$9vD+z7DFd7ojYM}JsMrJ7rRCjPB)uI(ut~)9HfVJb!Gp#FDMiAotO#xoyY8v}l}Wf| zVthvu{9zvh*TrtGn8&TmN1S&l@zwgi4X^IZoliU2{&wthWXAy46^oih9A^9!o)2z4 z>3-=N@zTSKpx%s*zi6!nFycvbrpIf2HIrhDbUe9P)q<{Cw+-y7H|LDJ8|Wj$gebfS z{$8Pl+QPwsjbUwkyi%3r?16%F)|D9z4xySP0jB26STT0#u%%g(-6ZWxOA=Pxr$4aEA6 zhtrgJKpMkDbpp=)Dzr3LS|(aI($u*eU(;1bJGx$S*r*1M%K1$=33Um{GXEd-47tSW z`i(O{IEYb_mOVk=CvaaCMyf%?GC4l=!H!ALavfs%h5ei12rd)r@|`&HQZhp2W5<~> z#(;GWjzg{scHq2$NSzdo-=!iQK8LFlBVgAdcAoy2hZw#$)`%MYlXPh^8jR>Sp*iMLg z?HECSte}no%G{s2*4-;RS|dJSy8cm+(?2$5Vol;sHJ^T6?w?BW^t>_mZ+P@KW}B** zR}s7WeXnC-4Lkj1^eeE8fc2Kli_N|Ez$bVTyY-;zhuz)EAynQk%jYu|R(E_7zoV6p z`olK+FJ8EV!<~dKc$Af**^x`caqzDicG-(AiAZ!fm_&9jlf2xEu;|j4sqWymi?f0W zSPSEUykv$4YPIfTXnRI%AMyZroskW{O05BSkavu`S_BpyyP0Nmj@_gI)x%@ai;b3Q z=;}dME`~tnCW65E2sr%9H7Aaf2FhpU=BSu^i84{+bt3Xy`Y#KC>Qag2?5~k_OPWO8 z{m0W+HpV9@*ZW8SoHan~+pMuFHxaA8yvtH^$4OdoqFt{pp+aFohk{8MUrRIzuE?pXz$46fUqu+&-@PxmsCV5AAwR+9>Q)!JpRd;QS0?2oNBTo#O>z)7u;SQj$8;p(`nAK-q*yU)kiW}Y0%#KwWn z++#ZIzpgEfIuLDeMmB2>LL1uJyim=rLK2?IU{tVU`E|Pb+CmEp-#C*R}%I0}xkvm>O z_z7T}r0a>T0P+iXyL`v`-{jCgK&A2Uh0US~^`$>S^_<|{c6;@81=#C;mrr_dLGbyp zTOQv%NjKFirxtl00r~noounM*kbc%sb?}9s?TdC%PQq}^h^XU^`%Iq=0OCbVL8~~z zcbx=r)9KgR@J{$bodbz^Q=I|!F4vl7Z`n`U1zZ+|+s@LL`YouFNRWNlmXu7Hh&Rq0 zlmUKw34#67fF#3G-)b1W{9=IG+9|fzV^eOah@~<|J6$H@c*k^0oOqhI!GI^>SLxe2 zJm~L-k_f}=)_&GF01;%QEy}2s_zs@ra_ouVZ0wb_GG1(VpM~E-%4OYTQ?B^}vHZBq z>BhVt?e&1*-QVaC+**ceJQ1iJ)ZB=q^ifgDVv|%GAETgxxoYpvHWAFfvO&3ZF5z#4 zpypHkytL|Uns%$=TM7*NS=@AhW<^LAC@ger315uA2Qd1ki8>K?=Qz38jMy|_qW&Ao zo^${NG3%I+rX8qB$_~R-=W=JLfq+i9AtD69GcHUHqjy&MU19iT1V!O?EK1+^B45053hoCgYT+ny!UAg%szwxENH?5m*Nc9|-jIN$e+r#YR}-}@il zJ`IDwyrbh#n!2x4{n4Zlq+)t=$d>xp$CCv%s~OaOF}r;`l04hjR&a8Bwfcdy;erH_ ztTT#Xs9Av8%J0WgoBX2YHtM4mhx6&UK^E0Zy+7{7o`lGPV&|lvVLbW>{`BMnEA+(N zp!l=dbZ1_ClbQY7ghn%a$L%`f$Eo!xz2*R!c#>u_CFp$~s3|&LBGjjo=#0Dt?xj!n z_Ax$Y3%L0fpDZ&?l_<7~G_Mp%7+mR0!ySIA*`no%m%M4GO-z}tb?t{;;(kQZ3iLgr z0__4((}qjJsKTjO2o|M$V)I8i*w%yL&Z_J*5}`OPX}hy>f7(9=vdA4vtNY26QTR-K zv-C>-b)E^^ZK*}EQyq8F9dM+m`D;LZ4V@LCMkRE;-|x>B@R-lWJ{aqZh|29?In%G10c#?2r1P9hy7%%bN{m*JGDsTO?rL z8RnGP(kSK|lK}atS@@gOB0t$Xf+;c~Y7xey$(XGs9-mR{MR+6{l{KpbXG34l*whIc zy?YzSP?m~jas~mL>@7%ME_d_FmDqet!hT7z<$2mNxoo1=`n`Pnb8d%;nVDLS?j{$+ zS8sNWd@vjI2!dl0T*xK2-N%jE!g|DGH`d6)8qrE3Kzv&VXxi13nr6aBS4=}aFe%0++2Mi@1Wc{G(axpX;xePJ z(O76)j_qJ5Tc~Tq>y-)+6!Lr?o>DL2{aFccL8(QO#4yoMmfc9OCXvEt)EXY^&Hnn# zm@sGbJin(GM!i0)7BVva3O$VF78VqkH84yaC8yJu?KxC$onS?blEW5+DGZYEXcq~v zt$~injxFx%`NAY-_i2wa?^8ENn1M2Z*jr`hwhZ@fvFW1P>8}wSA)EX;!#oT9mcoR| z9QPVUSh~2rAGo=Vih7gK_Jw@j``wN8zNHX)$Rm7-1sV#gjER|jFq30;2qFyuui%55 zEd~*A8W=Okr}uUfu%9lz-*#5CqCqXMmT3j+Q%ql;R(Xs873`d50uJGQ>Q&q)CNMs$ zoe>Po@@=&adZWTa#jnlinW?aK63oxl>R5EcTz~@4bF7>Fv`u?N(bK}Oq@&{RKAof7 zuh8y3Y!(v?Dl$dhP66ksY9epK%D46!wwpVcOb%Zjs^L6j+Kl7lct_CT^CWL3O1{F= zNuY~!#<@C}ukW!15tu`6m|y$EOzVgTre;9RX75E3`TZWROT~B2%&c@jo;}oOcH|Dx z8F0hNw*UHIw}*^!RbtxHN-A(K~;l?qkk_hvcQ0NH6Qby4`Ex zxy&GijhJW?@eou8>f?8E#CVY~E1?r8c5jp4$@KNuBK)RtF@PxI}OkGzsLkuJV4QF`YG38@IBIu8KQb+ z4lTK=Kt0CN?1XN?eJ;p0%oO#%7;tejToU~*<2IZTF+Io+k?tJ?Qzt2lhus?rG)@|| zTIc?~XG?Y0hPj7VK0L*%a};I}Zq=m>zujWXf1$7Ezhz+cn`0fOwN>^yO1YM_D?!59;f4{^+E~>vpMuS*^g!SIfA( zuQBP$DG5hEY4cUoT67p`zb4xzBXQbMU;5ajoQ-M~Ry)(Y6+ZOX?lCgMI<3Rz=TyRm ziT?c1#BgQOSd~w4)C3OI)VJ#3X(P4jVv9B%Cd3B?d+v*} zp|=!nbVvRHVRIV6W2ylwrtI(e$a+kOO{8nT;YTHLrM?SP>W7k! z(siZN@`GfuCOnf4tTVrZXGUFT83=yl*K&$XxerFJJGwCT1s#o2b@2-;#{CEQ47F;c zXm&-==%O#_5td8I&nJOCDPSDs^-g-MvoUG}J3q>|3iY*tT9Pk9VvLev(|gr{>v+5#2AMRnaKHUi{en50yTGY#PE*Aq5PiOP^g zBr`+x55Yox`*t#M)9c^yHJhoiS5NjB%)pg@(url-#OI_2K-l!>HSPS|YvHdDbKgr^ z+kQJg-B}Sm8OTRJD&%(F*RM{}Ij+T^$fY`6t;>L|rq8WfCRC3%>BLWMP9J=p9G}pC^}C;~;HOvT zcrRqgrDSOK`k_8pG7tJEI%-6)CgTNxhbfannD^h@U(*jhkU&V=qb-&AgRpg_2% z&&_c@b)C$pe$Ck@p%(tEVVxu&JICw4+YWoB_Nh8U_x#(qoe^Xqf}20-8ax9BfqH^f zm7D8PSXu}V#$_%PCp9GVk+}>glYeg8#RXziTnB!N3RY`}(CCBTBCVq0ai^p55e#7e zMtjb?*5ZZDd~j1VME8I(CStKtWXvZ9=efDzOnssMBcfd@L&$Ht3fAr^%tw)N1nA=C zCk%Kl_Fe^HlkvW1L_$5IGJ^rHjh>(!jVrgB&}@U+Y!r0BPN74NAWpx;gyl?lOXOp40wEK@%C49|c)&OZ#4WW!oY;=og zRoB`fnRTeU(&{*2i8Uk%=4%KGt#ETMAKwPMLOtZ54hJ`Iy>liY+nOBns?8!Fm!0!V z9pdC4<@VH`BhQxN3%4CLX_m=5%>VOH#h5PU&ldaOv>LkWfWu9FA;soPV%V@qtPQGZWj95 zJHa<{=$TPXp(ugB>DBFp@mE~FbJ442vreAhz=N66u?}z4S0y)hR^2rE-qdyuIl~^> zYm+5Fu*(;_bqhbI%#h1A-Nvg9QwK|xZbV_)t&Yjgt1HWF%JSW^)YuO6A3YCg*$R8> ze8Io2ASf%r&J$Z<=nWe9iVm(8U)x`K_)4NX;w&t-xouUGYc}#Pdi88XINxhJgo9EsjImi~w3vnxY2|^I;0(lZf9H=Tk$C^*_00Rcc!>NG_ zvlH3h?!MlQf>m*j$MtdtYk#uyt9kBf3s_ZsRD!W&y@(1}jNbLIxagy}&8{rB8%b&& z`Ff2X(-Bc;lX1D`>S9_e*EEQDuCW5-{=MF=xv(E;qu<~9qmp<7Gs(+?h+;o|4DzR! z;@6T3#i(-L+51IN#v0tGRx#IGpZksYCwTb)(rT**_gnt?uBqx5Bid&E)~Q$FN2s47 zio!V~`lkpi*;RHahK7K1>uBto-Z};#s=N&XyYW;*9GpGa90Di#qLGqL@qUU>_M{RY zyIT^BE%q^uQBG)nOG${?+B-&i5qXj#sZQ)m#PsdD}fF zpv><)Yp+CG8#i`3Mk8WGWrk|29ha*iwUAnoY1qV5bKW09D7r6p0#4j9Xp1~lMM*u@ z;d0UXu4LOc{Pkhn>56t>`*mfzapJuo{Cg^DNTrlY zF=pSGv=Xp04mD;{bsV9x@0Xr?H9MvSb5Hc*6cE)j^bG+RRHa8fmsZTxa=1UAXo%YD zC{3k*kS^1TYsW~bi`*1{6VfrGd1z*Qb=ZudkxwXEYz`vmT2O=tE+vXckEihys|yV4 z?YyE`9Nhl#8)VP)Dg4TcREu_w8JCDO4!A>$Q(aG?0s*sIOzW(%V87}t_wn31W>;jM zX1`#lDCW5df682@6T6i0D1YbNGE#-m0I#wqIX?08eeXH_I0e2iLd4l)ytQ{oQMbww zA)5J=sqQR8xe|jhVp)3eLIgW9oTd?ZKc(LHFXE4?w!f=B%mS&8+B0xn$cXfYcxXUl zMr2pY)h=h|&m(kxobF?zk^+IPuR~?@j1{F2oha>e8awJo6$G#W&#$U(MZZ2ApbK{` zP+lUWxfaBsMluDiG8Kv3Hpk9iQjzf8&tyKCI@7MIMWz zdG+;Vo%}Unna5Xk2_5M1S&vjZ=R_W);sSn+=zCSq(SXi;>ec(;Q|PX&+>A7z6maW2 z5ng>mi8%;*Mb0jHlvDVSMAcSo?jJ zbu!#I&MkkJe1YW><%|G|p-vM0y-~R~=89)`4FXsZ{5{G~8|}GyzF7e(T~(mYNcCm*7j*E1)gT z`4eq$%XQ$(^0>Y6xAtxe(loV8evD|-`#Y9xYDzQ+Gz#oK6>L5%8hfY*;Z=e@iFL#Rvwgd=j?!DmCw)8u5?kPUQ{MB0`1Nk-0mW0VRYU7mCM&rU(+Bk zn5ay6$-yh%AD$fnAk}@)#4aD!cb9a zjS4o1(hW(a3eDV@dCa3MN>tE@5X%vi{V0MphZLEJiQf6;#sUV@ihMsXYm#ErO55MlA`{{^3 zH9N|w_G=4%NpL(0F(R6OG@J7iMmhElo?T$SG!b=#lgCuF=Yy!}x8Iu+W)P~j^#C{h z(lNLhV56^@N5bkT!>V^SXW3C%=+RHEj?xd@7wxGf{FOK)|u}m`(Y)*@N&GJqGi>_ zr7y^=^hi;lt!lXNBn`Zo+yXyd?C`lParD9J?WdHEcK&Qc1j*G~NTnYp&yPVuEyw*0 z{<1qtmZs|ldC7xdye-VKjv+old7f#G~pEm=1; z<8Guh?5GCy6@1D7sFQ7DFgmW_2Tai^k7Tx&MfEBYX}Ts#82{x8)(BGycK5*^Gc7ZI z5Kv{oX#q=$hz#aL0Pwt?c1cM`d`fOn&KG7Oxbka2I^1jNTYK7cJT*go+Zu*vJi5y` zoA<`Pp0t_BTrX#H+nSvT=5V>^iN$_{B>e2E2$(2b9b8&VNF%xv?YcBND zb^-14_vgc6%Eb%3i%>z*niQGPw2vtOEGh`BUkqV(Avq)WXJPUT(Vw#}Kc8!-${E{O zXM!~vC>?G*Oz(TSVwJ*ohy}wi1WO3pQ=ZjyH>I4)@-HSMIM*Opoju=Bch*F*X_oZE zB^bn15{ZkQc%$1N{}3#vq)}E01ui8nkwb2xg5N%+sIWGE>>GLo@G8Guet=ry*ixnL z>g6wCsx3mTemzmtul~xUh=-~Qq2oy4A`I60gAc#Rp$dMCGtlpoevO1Q3Na;Kfu>5% zU5D1iBW!rdWy^Ts2C3p|{(c-B^={gtp~uT}pS_P;0w8teJa-kj8$s9HIW<;P!(jp1!;3;@V~^9&DC&8ST%4TCk1syP zJ~$s^KRZj1B{DA_IBGsQ;?914rHm>GvAV~>jU!b4z26W4u}GLD>CsS%wRsWm3Ppb; zCRGZIqpjVq;~`vjD#L5>5FkB!3K$FrUyDZAkASi>%2r&N5^8Qri|!~IaUB7qpnr~) zm`Pldts_qs@rizrJ6n%*mI?tlm>I+7`H~{9q{k664{L*vlT|}awIEnjM&ZXf{Dt~? zpJ;pY22*_SPm(|d9ekoY?rL@xM?+1yKh)u(B8pnSWk-?G#Bq9zZUnia2&8<9W74e- z$Y7yG@zo3JwY&-R5IIg-Mi}4#=iq5Gc0Tr~J2Q;EBClV*J~e$raPaM~#*hK`&pbru zWCHX4tu5wDLXG=4ruTYHv18VBdb_bL*ZvG+28W^rK2Wba7)&73Gpe62J*&ZA0NIgo zd_y~v;Y=1qJ%HZAS_&D^jSufLHs4%p){BA_eJp6e1k6d8D`sQ3q8<<$@#0 zvG@ahXWxs5QE{c6sZ`YmE+dQ4Ba;)&kZkz>+c zOPr1>XD2x_Q&6z(2jnNmcVdvoU+Dc&G}U*quh#~B61HDsw&7B4sm%IEX@+wU90c3D zvownqCG1{Uk9?4=x5qV1eLNx?Yb5WJyfYu;)?JXpl?+oMFmq$mr`u3ZF$ughcZ43+GmYf@>20vpdQ-1H7a|BGSciCVEpXK zQ6MIo#GRbL&7mWN_!QAUlpO*b^C7tRdq|+JM(s}#8PeTn2SNDT1$5eOeiN1|3W6QQ z(wpO2x1AePLC5;Q1&h+)E1H_=VybXu9JTbOnlL92y)#RFJ88=|ukf|mMxoACA(bCT z(Qs|9c);8(4IZ`mV@BE@7S?ntl4!63CQueXJ*x^|FMA=buoKVNc=clXx=zvWGD%17 zkX-X;UGxtqC@njk-i3H$Kn5|?alg7x$%#bC+=uWJ0lMiUpVZFpefbA<^&oNo7;nOK zSrZP8raIJiIqSIwuq9EX=2hCvgAl>8p1URQz9Y$`t$l89KLdm$Z8R2uhNF#vSJ{ag z{c1#;t~ErTVVbFkNWx@*i0ujW7F{msbo3+jrkYjn7hYY;jkZsG2uJq*G#-IsNI%SU z#JWAZo#&wW-MtA>so&^GrZA0YQeY9sizSR4^qf14*#||_d(AhQ&R%ah6YwZSL$uHZE$RITByY1cU*KRr zr*b-(rP%SLT5o>DCnY9VGvhg%R0A}8^_eXJL+cD`?UXa599os0zW{AcY3=qa6R*K< ztaVcu;w0b0G-sf!085h!pe)+@*6lne`MTNB-aKtz+6b*22HedmpdLXOROvsBN=cH% zMU36lA(S7Oq<@L;n=sT1K|Vq^LF+v-2QN_q2{^1Y>jg|g@ng~Ye~G|f7wvSEB;UL0 zigA!5sh?%kIry|N-BK1`Hlg!x>Jgj3>~20Ip5v!E+&ef}=YcZV(|B*bsy z#u=daw%HZ3TFX4t?#*zCG2v>Af+ReNtLIw-$=y`_)-wOia3`EiiKYz=TbX9w<6_e} z3JP6l2Yg_Q*XD=-TkI>y#iW!u@NrcOL9=XO@caZRto$~Bh?s>EDqB2j-_7uZ9 z56ACLeOA@yzJpFq)B#gnSBVctHL4RD&{eHQBWFkXmmjJHnZ^{Ptiy8{U2+5cb#L|!iIo6dj7}7K#{Sx%9~V`CYlVb2OxyPU7`UkP zm<6*&u|V1i(v9=rf)rI@XkiuQFph#|olW;Bwlt@Hd!Y*p9c6n#sNB^7%1Ku3Jx6{= z$MTCMiZl|&g^+~s}p?v^ZM*qC{Jv)Rvkm@%IzeF_kIgau}NG;D-MztkJ1wblkY zj6}eXy7-X?bkv?$*k6f`Y24RU`+eyvz(vft^~08hffd1F7Pu~%{Sgb<`SmtXOgU^A zy!)H~31$L~RQ1~_=jA^s%m9!!AJ7M_p7@#*Da(B`2q{%M7!hsh7OCR;e;QP17sK-+XrVpqMJC$j% zPpz55{MBKW7?pa|h_YiZMx?~W(9XPGAT#AiJ)@W7R16tUMH7quU?wxs($-_to@I_w zf%Lf=AtaJ+{pfk|hoV}fK@To}WJ^Y{!xZG`1T;I-Uxk8Q<$Iy^KClqReGm7?myS|i zoqDY0Yj2PJ!{_=w3uZD=Bt4<7%(GkdC}VAV(j9F;a!Dhi-@_y= zEu=@|tVt@6* zl(pf@7$K;mibsh$++W2+fVMd|xy_PN)SSp`o(0N^XTX7Se1VWu7!ryW%>G(}dM5HV zgBWOoQLWE&zVZA*OSzcDiYC!wWSkL5lBJrqtu8NlwCSqn0{KupS~X}{=5H*Ha~}zs z6zwkCi5+qo-h7IF{c@RuZ+pC|Ix8sOlzb`+tB%riecOk}pz^ZQW3SitRj;%K40$)m zOn138)#_EQU#M-6T}P4U_(SQ-W;M1N!kbQbh-z6hTSP)i_75j6i~}M8h~T!al8p*1 zZ*q%?c-vEGW905n)tX`7cbRlQM+MKgaoCwRAn)@DrST~nz|~B@(UM}5p}D_O>I}r} zibq^b^BnHkKD0cg6cb2ZT`VxC_Nx|ujBJRRvW&Ge4EZ@V>WElQS)L?B`%rrmf^nIa zM_z>#HQ!-;&Y)1@B1LdOmsm43xNSVJGBYAnn$DeX@aXMitudm675&wE^s$23Lj*>w zR+#a|I}9PV+5EtXub*MSmuIHea!i|SFT#PQXjOtDArK>fxCXuw=~!Yy)Acx z{Xw{-Od)}Kr&QBgU2wK-B}p#d(#Rjd*Lcu#9-W8`*vFJb{P??JJIu3sXQ1zNm`R}j~*Ww{D z7xX`Y4r(v}=#~zR=NaLS2(vLkiRiJ+byHZeBrs5RmDrX(1IGCoN)A!JXjl?yw02LU0QZ z+~I9F=iYnz-n`e{V|4%M9uHV^)GB7JS!+`tbJjQ4sv_o)wlki_Kny$YQDW&vWkf@m zFB)>Jb)s6-pyR@0?-C2N%@IR(jUxGkTe(Z99XvLYCR`(#g0noxPn^w+FT5284>DjJ zA9fflyd$5qZ<`d<@AZTJ(c_s9pSq>J!LM59andm6C7c@ffgP^6m^_SMB*@krjP(sw z$%Y7SGrqG$1Gal^)V=x{3nD&AWCTKmQ;#w(=FDU@zrNp9jCNgElI{^QV zjib@Vu(}*SiLbuRS*9{=v2q#@-j$udVi498_!y088GOclV?iqQ_F#)=BAV2lXzAxi z(@GHRM+6??+0^(Krupv72iWMSiii@$EfHBWy`~F_olPoUf@SohNu|w!;8!-3xQ|R%8-lB+e^c#KqksZ&@bWLRrgq?mH z&`W}Y;}{mjp8Asy%z!%6JB#w8-=y*5edRe;{sKv!fK;mqkb)6+qbwi<8R#uTLX__C zPBqUK28bz5+@-4G5f$UjH>hFrJnK>|W@6r;qTg%_x=u$##c=x9Vd1gakf1Bo_}4_h6Molmql$z zx!BmAmZ~8oMPe4Wuy!_aBxM%2HgGl(H8HX?HbD{)Kyq?+G%>J2a$B%bk+EBNi{5&p zW{nmb2V*eTr-vb|`AvOwf*MI-_Vw3y5wIL@NZB9SZcO{62siZIcyCNMM{8Q!uFk(? ze63qL|x%XWxAzS+cDTvYaU;%_=Q?rsFvt{q$n@uPazxZnb{%8OO%+ZWxB zi>+SFful+*q=G${TuHD_73!G}=6cxUyB%)&%^yO8;ciTPx!u5Xup7C%O3Dfga-3-w z-WORTt>6XtL>;YjiT92#@^i#xB)prw=U$LY*^mJM*_IchVydU#h+3&6b=%XK4;pq| zyaAadJ2lIEdLf*O?zrzsLcypv2P#WGQ=1pyx#^uBSt2|7Rq|!uuHwE2lBDJ;O;_}L z(X_Utry*I`sB28uA9yXW*?x7dU`n!Tl|O0Hg)O%d+{c%iKM+5dasuxA3KMTc>f3&> z7Dh^X>5u0h1QUxE1cwJz#((ZVvevNqb`u5>k4^=Qh{uiR9_=U9Njv#@mEaZp2@)tm zi5`&12FseLKchc0@(Zs!N@=~up?LGc6dlIPD$hcsAqmQefjAM-UbLYr%tM?gvW;ic z?RgrYu7hqXzXQKNJk!Y*)tdVS39!>UT*YMpm1P+37 z5~0AAYpDR_y<;Ppi>hmNrSuKK+gPOs5*X$n*A<35-ccTuhHz7myJF+qFItL_*!o8or=5?!B1KaScI!5lA7M#_SGpqxv4UW~)??N?=beY@A2Qd`!bE z!ZWRAEX+~EOti6ddcvw(Kx@RX*KEYRcMDJ5i#qxeq^s)H=VZ}qc3Qj2di!OS)uG31 z#J1OLyMC3`S@Q_LM(YT_P2(teH*$Q!4pPm~V|L2eWA+RA2>({tDUoM0 zPZdTQtaM4Pu%i_>!S&QVz~xD18B5(%XqamZ758pffDy={ql9(+h%=waO%XN5jAe8J`R*S~aT=z33X`Sf3SX4^% zwaZO8v1r_au)e_KW|>2^K0$GZI14zv5$`T}axX6^26D0X?rOi2PS$_USw zN}BHSMi0v>3Z^@SLZ>&0Bjdbsm)V^1wqR_EI-U45}wtlZJn z0nB-1ZvtBpwC8*lSmUafq82}I?Jhh7@eJX1E|Sg%VF9S1S)dW&$w?4U0nnPBKVg#l z9Y*~};9mk1i%T&9j(}q#sQ3VdoOiwKd@nY!@vsY&^%*P>Oc^>0I}4LnSV9O32F%u! zM-N9y;V!|F(;@aOFn#Jg446N{?1M4RKwLQ9z>y;)E(2?Sr7;AVLbRBB%vK}Ed&Vz~Nf~HRAAvcd81~@y0{JM@^0?Wsh`OET z`7FjmXHkP13JHC5KL!(#OtnPPMX{zVEl;dH`dasq&j2UnxyUU+Z=G%Be)qP+#T)qT znamGjxZaI@6;!G*z+bpDCSR$32hKOY11HOW%5&xd&|6Plw}eXXlSQGflthr@BPhQ3 zrfO5WV1*=$OXnX(8G3(nmWscyUkpESaydGZ3ZGO$5;M;F?L~zx&XVQXx@@kn!?Zci|p-m9;Adw zfOo4tNW^pRh}8pcr_wJnPWRi6h0fRuX?H#m$}LSS(>ayYp8Err6T6{|(gGSK z6;7lU%lE!1oEEATBEK(ODCZuII2i4`@n7G%n4Tx*xU)q_e8=v4oLX>lDNA4%aMk^_ zscLU|=1k4PXYb09?||5tmbg^47|5$PIquue&&B@W(uX!Sd^1_}0UQEk7ul2Tw^{46 zdDsm241Qf(x~KBv`n;W=g07-Dy!l*P=SHhA*9)5gHBLqnN{Jku;)6ZuvHt{QF}d1) zfe-FPb3_APq)-%}hj^eU;3>v20Cad%P0HHcYx)}g3J%iG`%*&m`v^b;pcMR9Mh%d? zd|6~>Z|9>8{p_OHY!Gmf^+BJz-#|qpsNpFvhZ#+(^%GV2VfNv0Z7gDOt#KVWjg|Q` z_OIkJH849!N8@&2^MJ{z(1jB8UUbB`@s$SxHuLZj0UJGDKc=i2M^$PKMEg({WoypRSow<^Vomtd& ziE;<29uxKwUl#U)Ye&!Qguro|uE%T$qUA{@fT`z2?bAmCW58_zct>_`lqh`L@2MX4 zpd82+Z)$mf@fiK#A#XOF`t3_?rQFt;uC=jnbDu%VK5tJ)f8P3^LJ%xmKt*<9cTN#p5ltS zu9&X-jZNqE@)B3{>I9UjAE5I^NySN5-mb%BLy5n&it#2r;VS3;aP<~iT>2vrTKt80 z28F&NK-#&eA*8>v8aj710SUy8+6iLEgM72{_1RBjT^XhnU)2!zK3gWRSU_jO>A-sz zY64A!Q4Yw_Meon4i00OXq5(154>i)+_c^R?rD?%vMR!Z+*z2t(5Hb6`c6rGz)6*D6 z2$n~e4bL6)abXOI3fYsG&~NaG`_a{Ot3B;hDln&Pc8BJ>I-_UwBls7ScF<{_Mko~L zB#1?hew^Ty$$IS(*uxsHdyl~w#YUqC@2uwe8f4`Tn}J9M1JJd`P!bpZI2vlQn~?V) za*ZFeMkiiMO&kl~5PhF=<|Zf0_wZ6vlypc8JIQHw$8yQNSKvwuDV(mC3TA7AGxg8Y z&I)=U(e06j8PX{C-uokv6Bu8C=?R?#*VbRnA~hgh62I({2nOQhFfu2HBgWmB%Pv7} z5Zq;|J_Wh+Wq-g>_O*bK3k0y7uLYF6kMOS{)#m$Tr9B z6~!AtIhcs>EIx!JW?oMC627<7?ZL9Zv@M-O0UyEsl`w{;?RNG%+A5F2!1j}3F!Aq@ z$@aenneqQ0ng1V|{{xYk(h27H9WvQ}hs^&R50nbwflgl6g-Q-~9x)|V3{-#di}fL(TEc zIi9wTiii_;!~N|e4>WzSBg+pGIawduZCX@LZR1^bJI=Q|{{)tK;(_+B(U7hS_slM= zHdE&B?eC4gJah{O-Yr7n*)w*btHNt6m4x%@r~=#V!-U3J&6|!UyJ5&0JhGkIGlf@q zc5`R@v~e@YuyEAMHgjnvV(p`yS^?_?^?!+HPaor1ae7ERd-oX6>dl_f*!UdoJjS!m ze~V|QJbxKIdd;(>!@RBfC$IV1>hE52_Ag$u020qK{~6C_{?~iW*8e`QsXpypDgge| zYd-XMAg|~&AneH2ynwOI!8giKK49k?8n9X`JNpUD%v(i6a_<*a? z1#zJXEDmonNC@5>1zgABnnLMS2e7c2Q5m@P8TZ2acb0$@L4sF zxZ!Xz!zl!EKVfGcX+sDfZ-`G6EPI-LK5{=#E)o*?KE}3os$TimtE{JxY90vxKoVcseg{sD-+`0$ziz6@sR)fh_UBY{sTe+P>*x`j05!o^nPzqSdP@vV zv%7=oH^UPR8dpx9Naf|lZH+`aoZtVLYAzS`XWL~g6_yXn)b58^C3-vuqL4@__T~Svo4CTZYdQxQL|#Ex?IhF zZ-MzQ5v^c$^s!1Mn^Y`IzL2tYK2jGQaKz`s?H*Yr`w4F##{9!=}^n0)%A`qWM zN1lGdwxR=SOrXhg@m@M?JS&0#d@Fz@z|zzWw31JE+{>nNV#XT=)y6*cg-jcghf91h z49i8XZ6Ml88ZD+r?9>7+i>LJ?!Aa={Xsu_QyB@BNC^V+&M_Ugax9&5wpOlsfS?)ybsf~Vx2vfSfFU7f<>yjdzJz6_ag{@5zb%*cimCgLIUOGgdgfO#iy z=F7}8njW)sIyML_d-)+mErg$a#HYn}twAQEX%&RF`LgPS!tgk;6lZ=du+|9Sd#)k) z^wB&@=K6#Bc>*FN(0z<cxYHQbNEUUwirk?C#KrHHRQ%iTIxwo2|u(m=Us+L_L@G zUPQ;ECV013a(cKtvkn=Dycb7MJZCh_z>{0^I(zr!Z`e;AuU zNCM?|j?>W`v-c0jIS7ZmCUWn6F$#+3uzc~=E|ini?p3Ad*}em7&Hk@d)5$VbxdXPe z{=U(n!*53RKo!){s~^`pp-yF1%&u~-yADJtQK>UPcfF;HCFixl3-21i`h%`(!6N$# zod=;u9_Xjf=pzr5U&OlbVDwqY_aMKuz`Ijkpj03fo9f7HS1c`+@fzcmp3bKtCWt?ibT2Z@h0n(SzM(rNnHt&1~#Uaf)6=tR@B z!?y;9Z|zO`MQ75Cdmh*gZFkP&l0(A>T{@oS<#%%bg-p;e*4648l@m|ii2p8hR^@N0 zdzV7c$$THI^g#HOK_Snh`FjS%9sIit3L{>{|1E>^{9iLDvj3bxY5jj^P|W_CK{5M% z2F3HgEQ8X*ik_JM_Y6wQ9~l%aNCu_-pED?R)Qu8Jhbpx{<-brEQ1ne6wGDG_Ih?{j zOK1L4VkCIzap40?97<8Wol~>tXl!^U5AXYofNsI|cj)}rJv&G_Avw=KzW)96CQw<% z?yn@R%}am^7UBunMy1WHa!G6c59ipIVSYr{hjVrzY$cYS9UiZ~kMIflF5bF*ADe3O zbgKEK8-dH|yw&Dd^KOacf6Z$-Vc<& zP?RR2UEtY^Rv$qhp%F5KVAF1)DN{L|(;OuM2dES^4eHz7))6{BH^N(Tm_BIMuYGxf z`{0CkgEr-kJCb?5a3*uZWZNEbB3Qo#Np6yg4(PYy)PB23`5xN8G#P%y`TEYd)h8`& zf=#WoY}b-A&E?~s>wYt`s$zL>F~gj{)gJSM;h5Vuxf%2sz)@hrEBMznzrHfuWqlSW zoqbh6$HI5+-(^(7C4cGnygNi21|^b!Bi|3g*^#D* zDV!5NqXGNA)j0!-Sv?F&*O3oC8n2*(Wvj0vWUXflSU_bzbOig=QE%0lsJ?@HK1W{3 zq7U#kTMd5$vRhjT?6pc4UWPfis0wEkY`#6YT~bS)=0LPJ^)pdiMn|#Yxub}^b73~? z2siFocfi_2U62nk?k~$^R`ENNP7f^mL9SD->;984E`=Z-ma9_3OQZE!&fIbz0`IfM zU-*&^3A8kZFcz#-9m+(sR+S2h%J41`Z&#Hrckx=e z+aa9XE7;0zDQ^BMH`eZ(j>;nRX^0DytvX#Z^EqJ&NVwY zZZbSqhVzA@)bvvM4H#Jd>Z;@&?Tmp&kkme{y|JmXi8><-6B~f(4J#cIvk=hP+|H3! zo0XFTa&T$`005asVelv%ABFRyuy_=fkHYp*Xam?F2LK@bD470Qqx5)U^eD_91@KXr zJPMmf@pKszI%Z`HXKRyxV^rkv*H8AIw4coX!}60+vqzP`S$;BM_gLfdDE`siClmi@ z{&Y2`zqT~|yZ%%4lY;SI6`rp8Z*KFc=BYPNH}%xysjvUqn+QXWB}R7VW< zLBWuvil7p9%%lx2aX}oQG%di#HW&I_DvMQ4U`QWYl8A_y)rzMNZ24N-i^Qkw+<6XB4wIy6gOEWQJ7cWsED5D(EG3S@wehk%Dr+yTOxcux%nZ5cfH zwtyHA8~``Mu#L#}IxFeq86Z}+!C$QXgq{pL%f&D|Ip70$#ZuHTy8)8{>NO)2#kcazdXXuB;{whXD!osC<MAAM-z8 z--^X*JfDUU8zUv7X>iO}2tYN%36qkb?oUX0WJ)4vjMGe{HR@99acp-J;T6j$31R38%eWxXz zmIioo4HprJ)F1k=tWwlCRi+)mpgjd&+jZo;PlSQYoFVTC{Fzc0a?k_RK5yAO`@`kKefV9o-A{6sNv>gPw)s})Jog6|T2yvo~#-ll2kOJV=rq ze_?u(6oU?m1`CbdrtNjcetP@uA$ z;9QR210@NhaICo;l-nF3o>m2abu=oX4#}K|&vURw47IbTdu-KYFLZ6RO1Vd}w&!e4 z=}bD=6GbQYUE;GRSfz5N&d} zVFWT(usSnWd(z+&tmuR-@VRwLoOB}JG02x{ zsy6KX-~|%9bPBzVw`Sw11G@#Oc3XRs*eJwUnHTA4Olj@N!wrA&#-N%RxVC?&gv}!^ zlO~?|C_V92{;;mU3E5+^73rc_Wb%A4AIGyTzmz+qy3T9OO4HFC?*Mzn5b`SMrD#^K zc@UhrTp}6efS2gLl%Q;koxVAP`#U)?@zb=fuOS@<7E?wT5~adRQgZgtYKDN#Tcsstt*{JB3f|O-mIOJV+Wb`G zDW8DK!$j z!ekMmobJRqe6UDrpY3W_>)P4Z5c+c|F2awL)}^^II25;I6BOKvVjp%xd>;JhLlPU& zUI+;)8@emW*DZ#ULaF7T(w-`%R!GbNN8Yls7Kh@Kn=rKI%YU_*3<)Ta{}KdEUxi~I zj#VW_cA1n?VVIvx0e+qsw>R0N0Q3yYs_NCmI9~_U4YN*24oIv3f=1;JPcvMiC7q?+ z(>}(F`RHIrx>>rjw+WB0Wq$YZI$6nN)@@@f?{gXp>F>2h3Yfpld9R$u_rffnEc$*> z-i^T+DIx8hlwjFMOdekRLkCzwy@#X?+)rnWGLqgR2c6p*>=_&Jp(l|ViIqYgiY96g zIW#GOry~3ag#2#W(YVg49v=jxGCx;LyY6uDzoXe<8=X4gYn5c49u}-%u5nK(s5zxi zFA&olsX67*$urUXJi9?YJhkf-%QT&O>U6z9yZei+zeN@(=XR5Ib$Pr~Q-4Tc-eWVN z9?&-l<4%}WMQon7D&rWa8hGXP( zUA?w!T&mKdaCrf7phft`?9~-SCwL05SXk|4CGn3WCXP7QD)*#UFq!>3)4!CCB2P`O z=}FI=JfO`yGVh^#`b?fn4lP41;lDW1cn(X`Tbh*H(nJ8y26Mu8W5k^yW;}jEsISd{ z>rHd(dhLmN!3V#9x_O$~#lTx(XoJx(8*)i;XQZL5v5i{$_1!sL4WT{b3G+9GkN3&< zG+J2vfsM_0KezNU1aFTF`g83#lhD^^0C6>r^92>~Sav4MqzpSF>zLOSkKU+(noYWFn{NlHBk5lBSm5081pUngfMss1*CTWJU(^eQE zl=ERWTRVQkua%XeLiTd@3@;MAw(=!OXp7OHDhjeoC{Ls-&i-Uj|JCs>3eF(&CcMN@ zXaqbCWL{3}^TSHe-e6^M87(A% zY-t`-m;L&`a_C$<=eV(eZKC%KYUGK}2}8 zF8?xi+kU~EVX7(Di-9ueayHQvWnSwtT}JnWm zXSS1rB(i94P(J04fn+(=B(@Ow*}E`e`b}_N1^wicJ;lLp)xv)@z&DC(BBq;$U>(TZ zcZP}^=F`4Dy<43(#|E<_E$>nBhOOoG_i=+y7UH4c{ozXvAy=vktAK^>=Ns?{Lx)V; zj8f+*r9LsGEwQuLFvi%fpUx6*tC>r-_NwWZK7O1E#V%icrm?YP(n@ur6|Yi0Y-ug0 zIyXd*_CaMy2b@m#EhUd|c&IWXFaPYBw_o1%LEM3CB3N`uU0v}kP322Y6O1UkD=u)$ zrHy*0uUgT1u38aZ((+*n-S6#pY*iP&j&fuxj^L&0kJHoVaj)u`=|17-jh|S|x6CQE zGbpyRDzu}cljK&|P*!}JMe(%OKu(>Rh%G!F^JoZn8Zgz5mWgYN2(uHT&WT1jTf3Pp z|4LlO@ZNvf0`QL2+n7yB@?Mw*21le?JH(r1 z#%xn0cia$^_?^Zsd2Z*bZ0WwD5_dV6#qge;`o2fuA!jO6>{5ETU+!?shk#38&Zk~)?GgC!9?j8wduw?YrF6g;&FOzGs7t zy1jmpKdI_MPQ8cR*9KLvOv+N*Ax_e|H__Orikw1TBLjRZ>t1FtAA~8$Z8k@M0 zY5_=DSh#hNn3XI%Odg9!%xa`sETpWYERae?J3D7c$r2oDO#LjyYTQg^K(l^{(|6zuf zYI2Y%Pyx?xtjko2)+i$AawDRcEZhcamwFX(*K`n5W&&KR*lfmB3(1@N(8g(; z6Y{fp<#xdy1E4MNmDtlBw%;BapDUPkpg7f&gZEhO7(SJmZuMV>gp;#@qqCbMWDLA{ R!^O_Zi9|&uCMS;ce*m)*V1k8vMzcj268WcO!lXv>Um9lcb#QK$!aI6(+ z-)Z8R59KFks}V2eKDY!`l!b))@8kZ55g;g_e;J8i zAq7Ln>rjpVB>eZ8NCfX zKYvNg119*->;Nzs*gE^)nR8&4ze0ohce!yM1Q{Ig&xeR!eF~C)-#rkp0Hq`~XG+7ljF@1tZ~ zv-*=%jGe3_Rm}B`m5N>bwTzX_jis&Y2^9I|vR(YG2qKN^fI75+{t?5!yQ2TU+y1XY z|2a_OS9T!ezejJ>ja`RE_=oF@dXPsoFd!gQs6=LQVStVXt{U2xg86_D7SWanX@Q*z z8?;?vcX_ZeEI4#Y9>m}uceV zA4NVnCgCHo%b&}}+1B2Nt8Plb=jV$CP-@)jo>7}-lXJbXfDLZFT7Px|ImI;>#w?e_ z{4e&$1NFY8BKC*P2S+S=TYA)VO;yCN!8|Oj%zVmYi+iM$X`DWb>3v1mOnq&=TZ9wk)O4d`D$x{l2`YSFa%ylIfvX*mYeV4Rlet1 zUwTkvIXqP*ULcg;$!2>!?(;4_Cbqbz!p@hvh*X3vNx)Ct)y-QcB>_%`lt8n7C<>!s;y%|ObPu=$FK}j9&s9+5hpJa_-`qNW7M6O@IU$tndoh0&!5@fj z`lf55t`NCLV(-8mzpN)ie_R(~HvnWUBB$MfcAXWW1Jl^)F4BgW1NS{pe&HVQnOERk z!K40m|E9r>aaR{L;tv*Ee1T{Lq-e;YAN_3nqkEJO1gb|2JV}J}g#S<}eHivUjqJCxl; zV%qU+NDYeh%BCbeKj%bXt)W>%i*|#C5Z!x;g^_0(~xYwZ-5w~ZFoZ>nA%ZNLEtIwg1OeO~s{O~RD%l%u}R&LlPBKXZjs)N?Bn zg%ElG|AN#1q7BgB_y5n?{DVzUpD;Fe9@6y)IP7D{#BW zl0WK~N}Ilx&RR>!Vr=P_>O~XnqGeDcGT7XwXk7PZRK+(RKknLW(A8*)-jshqgj8|$ zK!p+?!5<1(1T>eb3qtl0H*=oezz={#7BQz`*BB-fkH^3H-XyVG&>vjyAJm(S}ES(ac?=AL9qv>8dUOV%VJjQ2b z!IP-&_X_y7Jd(}3R*S-BSk7*X-Nj5;=+k@Yl;PAv(i!2d2|_(oLPH|K{n=}8aw%dY zk)x%bm!8^$kxXUlaGxbpaI5iFGL?fGdFW_Qwlzgt`YlQH(j7mk0bD8P^j{(^5`G(| zE^^4TD?Ug%l^H*^qcv^9UQU8cOKAl?-JX2>fd3K8f3x&|#nPBF918ibr8ct3f>iyr z)Th6eD*CUb>TOa3^nRcUqw%NGFEP;4?-qcN@Bu|!M+rb<0Y}Kwq%~O;I4oYxA;2{< zHQF4uz8wCz?T-^0K)jX2zOk1Le;mJcp6#}{X*X!>{nph7^$bZS35Ck6zY2D0y;Ak0 z5>L>6{n9ZOPbymr_VGwh{-NHXg5Aw3lFNG(Nrgls`MVMd(9D#5o99MW7`zwdFVZZZ zM?>63{AW0VOm4}Z{b`71(Myzyx|J4DyrLb*kN8&yYjD&l{T( z&j*zPtCOCaoB;j)Q?CIhL?%3oj;@KRD0Z?fa@TS*MSdM>YcV3C3NQ^8qj4yck4}5Z zRJ|<#sb-QN;45cR0XCo;0EE~GogDvuCM~-WYI){+!iCa7T{ZDrKufA)0(ocU`U#G& z(;!v_cl=U6I30L+($?NTw1Roz+HybZaMVY^^UfgJtCqLAen{5mLlmAB!6cYp1R2qp zu7B34iSWT}Ev8;Dn8hb)JNXKXbyGJ4i}nIDO}BSI^YH|B>T94d*Xxf-i-{KD4KK_N zViI;P6XqkEXXGoN195AV=g8>^eoEc11%rQ7{oiW*zp9pDVgSR21_BzO1Og&Sj6c9> z^sWB0TQE&IRIK7Dr#8UrPvDI?RFa?F!=!!X+ol=71~rAKZ)Z~ z@{2X2ChVN07|5PSws65DRSA6Kn;-j|_k>p$!g|hSCr~g2`z&%lAitoh-^sG`z{j<@ z2cNGTavgY1zV2=uVuA5S^gwl(NSs7|7yVS>vLgy&g_t3+F+?+g&~{WnJOPk1U@P{PgaB%_xnSSxsprjw}7COWt)*{sy;x($#ZJ`1j($r|mOQdkwWC`mREAq5@4Ot@I zTeTYsKQ)aWa*-`*X=fW@tcMt=W--?`z2CYuvAi`U9WmIA+y(xF4Y0f7GHW;6z(W z!=ukKlA8-9>n@)63B4K~X?a7NVz4A_KuR0GrM&aI@==t%Gf6{j zU}MCO*283}g3WsQw3d%oD)2%Ug}Mc-Q@9Vy!)7_lnrE@TfbN~WHKKZr!m#F1$#52S zMdx=$1V|)GOTfD~=T=;P7wd@o+0!+s#BH(XCo z9+iEI?T*+!y)D{~LSSGNB{%H_EtlCBHTNJUg7LPv?;5kRB%;>!<6@Pn%)EFPf6_lU zv%SXo3$?(U3WR_5Oq1iXq2F=*e$D9uc0$m=&2M?^EL^9>RuW+N{+nNm#2aUDz`;i# zFk9H(Z#pvsbFCrLO-r^%es%%6iZsz5lZ|&!|IjHZx5t&)$F<%8<4;vlOvU_q{m}W! z%FU0Y@P6!B`nw2Ak|%8J(Fc0TTu(##&TlV-!08J-897Aq*Nk8r^c_!UX&4r4KWi!t zXMUN1*N{LkRB6B`iYr5IvXigc+&0$T_HcnarDe|wy4{mC>kbH2iY6{<3k~|wTzjEuO(|hG{KFgsbeJm*#x`bdxsXUkh+dnLxIq z2s71d5qk0_ca(u!pn`%Tld2kdF^2g0JOgfH++s7=)rA1|cc_siyp?G8bi{d%KTuaH z@5e}2i0%+~K1G6Pr?8_zPB?CIPa!(~Vr=M$;Krt>S=ryb3OzNd_!sYHd5kDgLq`X> zb&Z@1Ch?-#Y2Q^Ud)AVpqP9c~>XOe#oyg3*->Y;yBbLop7|8q%e>XhAglGYMzNPPV z^zNBu)CJ@rpOYEmapq?x5ZIQu!zN745g(W38X+LLr9`w%f$8SEhwi7=;~Kd1g!!3n z1>MB;J?rk49)VsCBc9q7)dadJCS6fb3}_*z9=3-u$u9|%)Dof&m89(e>-PEo9^lJQ zb(0oO;0)Jr3cx_bsSMI}JHXu_r0_xX;|dhOFwuv+-ed2Y!P?F91#;F$MEOLKB#)7X zlfp~&Obq$;9mLU{QA+!h9E^$VZiPCcpXe+U$B*fQ@E`E|9~}F8+x@@bC+Sy;0Q?vH z!k80{)NvZi4(R@aeAT49!l@8IK-r1auN(jy7hG`+e$r_E1y89ih07r_3No$;y2-H_ zP}@rqoIkAK@9yIl?hVy)vSTv!4| zvO-7M4^1?eki!Z|Lj%(ot+@(K@O9yHV$|C}1~KKO2et5V?}B51wfnSWWEQVcmvG42DoMGyM zj|3lRUTf|=@=dDL*|)H9TC}TQ`%eOjyf*l3O0GoSt~1g>VG0gL5oi?&RFP)2 zynN>W41<`-2|t8it$mdR#)x@&?YJHhs~}TVLU8}`%wIgI6FimT}Oagb#cjp(o5a@D_`$ng*eZV9FL-V7zvSVi3;1qmXp|} z3%&_LR?}Jxqa3rkzgwhY;E!zJr)09%fmt#z8sgY~{iu@z`vp=BvZUQxR@l-rgRWs+ z)rq`=^HpJ32kf0+iCt##8m9gnnGyHOdTdiQFNXLWXK&t^a^m*<{0yK?lVQ_+gO|qC zI>($22pp&RHfb!at}=)wN|f=!QK-nFPTHy>PgDG&(Ql0ehlu%|_R}8@yA9on*?Un4 z#t()=&mxuCWFHc#RZNPzcIpf@-NY{_=soNWVo2wUBBK?KY`!w@!h^HwXX_osWPUt9 ztzs-z+5kU{y#tf*whbW0@aLTe{5R9>kFLQtmRp7|vps&@yZ{?D^Xwa@TLA&4+kDF} zdfo4!Z zaKH7fR$wFZNtu;`^xL=DR%wolCBiE5M=|6$O|q%A6k3k+%Id>F&Vl#(eFZ*%x~}V0 zqEMfLsX9?npE3Z!W5HJ+NE_e`LTD9h-5(puLqGckNMexw@X&u^8Fq&K02J^~^pLOn zV8$cFoqXFoUSQI^^ZqjnJY)c?6VJ8t0pbHE`KV?RpNKP1&fM6w?S@>ImPdoj-MORv7 z4fkh3`6TN7C`i~Rz_RsVUCVsQZi{Z@Uz_TCA1lh;M`U{W#6w(Q5%c$$>-gax$T44w zKgcC?30y+-_5y|q?r%kF(;Xzt#DM@!El#$k%P4+Tih4R~FaVSv&f9oGWO|6M!J7hMtH3$G})Rcc05oDIxAuYWG@AAQPs znid)3UR-0CIH1!f=cdAEYiFWNC>P!f$Z01B)w{o32tXN@M9Q=!Jm1~$Q1{KbeC$7krTRLh? z6Str@Pkaz`VwP*n_$xxEi*6atk8ns-xILmOs*97dbqTG3q55R}6nnh7@KSAmo=#SS z>=TUup-w$2paM`&;W4|4DQp85yEkum=NKXn)tcPE@t|WP#iveeB*R=FY}uHk`pBJw zb~NZnI;cQ&kNc08`yZc$@ZVnUpKL=`C>HI`-%Bp@-xb!sAwCws!P3FmRm8}}%v8k6 z-pJWY)WO}z*~-Y(%!R?l$#z=9&S6sm?u!oe3z6MIKwuX8t6jb{^pRn9wpBVy?@Z`9opI=wJpIgQ&He+S+kU<)Sf*wI_oG%}J-Q4|W9 zJx>O>(9fNq^o38osWF7F(BEF!bF=q?GD=GpZEUR)bcuXdaH{kD!Un*Q6ct` zK_0=ygNbDcNshK{{bm~;zZ%D1Uy7G7B&f~C5U_+$%7|@7#4q*?H8*}VT=bq&RCn7E zaZ4~@GMhpD<)3&PTKz~HXhH0kT(S6&{A;*R%Yi0=ud7`t-d2X~6FcVx&s+c;ro4A- zr<#r+yX{{nmjn0J()3Z_VMlgEKM^->K2pO@o4%_m>1vD?2}ZexE;3;s$(m;PFSibgQgKNtmz6?eK zq7*y0ScHZkqa8DOZCUtgqmlwl zRLBO<9Iz*mh|c2 z;PBS%@4yBUyQ4T#Y$Fikqo`oD6TX&fT$#1uw>_QaA^?$Nbh3#b%N9YB?`!Pc7<8UM;0lRg zibd=`U__O&fh?EKS~TBWi0AA%Wo6*T@|jBG7jlCa?8;*UJeHbu2r#1=v~X8f!QK&I z&RQccZstaKdeu06H;`y2QBiL<3^V#}Z|&4EzSVJ@hNc~XbYN&jKn?}&#`}kKQdO@K zhKBt-Dl$?I;uK7quuVAb%aM|_$UG*-os7usePp9on*m~T+Z{$=g(^}_~zM# zRUQyWwPi=?f*Kk;c{1^2DfO&sXpTb0U(_#%|6s;{Bg6kj#{Xaj8oyw<_1_4%?r)Wc z<^P8nq7H8MuKyP@x;6ho1_#nt70@f9#-r#V-HI)!@O;U7)sW0Ve>|(!*(9ZCbDC-p zeYv-Eru*v+Z$bi{Qc_ioP5>JF@WEYbIUPWDo|6hHyyXUNz2uZqkt8~4BwJ*7 zF9{wTjRr@|Nvjs!#L(Gj?-)(|)Y6}=UC}HTX46w1&nHx(7USm`9`XY81FDz65qbyy z2J@Z6gQ=7|cemfZx`h$36JI+a?7amlw!DAvWoXWn7wh(7Uzg};%f_N|=PTNwok#nv z@NEEAEe*R58~(`c)%2x=uQA&Vb@o8Zag)jp-JNW7g`!e>PtqXxmwHFswj!)(~T@;z1>_Ob+I( zb(=-9K)==tur2eKg-HET^D+M1K)g%cd4B<{vpa^w``_stsBZCWAsz(_QRE2OO{nnh z$Z9j^OiH9Zgbv;Y6P!BR0iP07 z8S8JhmwJLtrA!J7Ql{Rc-JK!$4!e#iHQyqGqdJBtYgY;3Bb6g%^gvF0EG=2yQUd@n zR3zeDvuH=w))l|ChEiY*VS{h$YuOu%Wx@`!vU*1c z7<7oC1oLr)WTin&*|ljN`@f(s<#PapPMiVI_w#|F9d{DSOigAG!#q*U~Rp;Tk z>wqVrAx!Q{%_`fyDcq%|EuoMe^O2I%z1MELH3s@P%YT(^5R^b@Cv&^OB0`UQWJARg zIL9Ik?wR@PJGI`ktwR{5QKON67$KF|l(=F0?2@&zxtq+`i;vei<4Xf1J~HOx z4B65p7SamXI4r=vZY?$Y!)tWL7@57rNScSm~M}A6hM|y{mQpEaenb%cHBd zTMTYx?6D*zH^?2XZi^X!q^DXBcQ(3CcnhR#BAD*}vElyyZ_(yB=7)=0J0?47EejP?o zVL@;}K0Q!K5~Dvr^Nn(2{tmc*zi1n2#IgVJvz@_ZGuTB`dY3C7sSR-m;s*BOWW z817t`mA~GOAgnMCQVRi6du?dPO?vHn6zLa2=v{)L`Yr0J+Y8&Q($qKek(gy-1{s26 z?;p3h675y9DY2qu3%D{~q1;@N-N;N>=YW42vG8+VeN(CooR1JOSW%VlMZ{<)r+Wy& zxLwl4N`e325IIob)vGwHX~KV>2^}t7dfEdio5A@T%{;UGHBf84 zd26#DQQY9Q1h-8G!(T86G57EI?7@0fJLfB}#rEZ+gGxUv0UG8b=J=t`&ljp2pVphW zig+kVVQ~xrhbm}A9=Va%xO=@=BqFGHIeWv{e7ocZfSE%Kmo2vY58e)&a@s!to#8LE zdLM?vfq>d=3NX?%Wk%5jfVo#9r!m-!n)jtV8!N+Q3WD9vuj#k)vD7IK>yVeXWOsZ& z#s&t04cSfzKo%E`xRTUKGO;0jsFz+Fu#L%`D?t6wGe>{(iyYy;hyIy{=JoVdVW@;d zAJ4=y75Dec-92tZpp4#CIFP76Qw^2}5xmp1e@{|peS<069_hR9H>eIf1H6qj@7ZL*Kr=e1sv0~duSb&B-F#eU8HzN+voM7QB8&N+ z;6Fa>zdhCe`mlfU*TUnxFbIG1*O-a){jvZxI}KC~B!322tu;CvYN7>9rE)T0c$#Jz zq+}`-+(3C-%gc)d-Gt$3`)#s2=K~|qu_AUKmp!c~u7~NCT3v9k<~4PkqXFII?>Q@O9M>ko#qJT=NL8CaEC}s?!?%nC&>Y8sQ>m+ z%ds}cprf_y=87@92B)#K!QX4q*g3h1iw%cG+KsbmzIf^a{%R`xG~IARO?77R3&|&z z1c#eF+M;%dfxM>j0+9}~E>iZ`(lZdEx& zFH-BMpm3C<9rN=Oe{}_>#y-6sZZ$H()?SPArQC4epkIl^s?Qwu~0|^q5r(gQ)>Fl~2lVJ4n$16jQ7~>B2F(O{PyvQi>4^k7-*={V*&;wv0PXC&pUkM?|GYgZeasV}G(y7wy9&h|VzCj)oKR z1Dr~2I-g8LY+~V@SoWW_I6NXHUQw!Z*{frYN70{i&DJ3x9%ZE#<&}g4mGpp2@?sq}>I(MM zh3RIQ52V*fAp!kCO01dS&H+lX<=ATtzjrBoK9-%bX1vc#^IEd!$#SLJ>$>yhM7ti|2Vo1O@(+MYvb~*RkO!LJ811RLu zUAUWrjy>$afyVfxf=&DUmi@TAeVx)`&!h<%J%5-o2zm5I*J|yc%4fnwJccbFkc|aO zdrn=ltULr)jkj1&I#WMnH1pu1PDq5IEHjM7Zdlg-1(5%NiNA^9{{@hLn~S*9fB&ao zUzkDP_|5pY^~(C+EA+nwdt?BEiLH@~%djt`p{m-SXYOZt7V=mQ;yuN%IT09fAtEVg zVj&_jArWXQCn<>VqI78_vDHvJdK--;H+0!ca5k{|TH2Z#z1B7x9XB`ni;fx_(O3VI zp63!W(DM#|0K3=ow)1uO$%jJc%?M?0_l+<~hGCU+qVa@{tv+XolOI67$bD+Vv8=e6 zTeqpam|JyQd2@})T;T+Vvpvn50Dl7uM+MVble5HjdVc>LgF-{kk1x&?N%FER|`o~2}9NRYv&*H z^WBDa=!fKUtx4^buuRO5jJpLC`w{CF|5@~p8_&!(Fk4BEq#Zz-B5l+a+0(rv>>Ip% zm2?A6{&6{#c3YXPv@o;^W2vT^ev_w_l9ds%ing$ou(X+%lb70^ZHfJS>q2120#9dI zm!tGuLFDfSWeUP`3(RS1O>O0$HAhjh6~}0)XzP0XD{}?Tk20(u?jNm^th4XW5hxf_))_l^52y);cAu z*jj}t!gsK^HUst(CKGQx6*q;tI3^346Xr7fx+)JSi}?VGV#SIiinK$D*dzp2>S-Ez zj`1d$R|>aAnXt^IAa5C~4(aZyj&zD*6$ixW0c{=I?xeSMil_V>f(+1y4+i);0-k895#?Z6KsYE95DeO_D^Ag%&WnT4>3NOq)!w=LJ)6 zS`LSd-X{OO8GhNVntdNfGg8r|nge@HS4Gw-`nqGMsDI(fvZNVQoJd#*1%xXByGoHRrbh@5Laej zRom+6*(E(#^v9x4OWv~a+ABeNkUl@xcmc|48)n)=OdCBS@$8HuItjsoMNeH{RasRN zxhkTjzG7oTR?SYnE{{)B=YW=>nhJKt7Mi^lwpA5ccsGmO3^s_h(&oIk%L)ihm@ zlRC;f61>U|Dz#;$7MjzBm64;To=3G+jw{4N?~F8PBmkfOVz~F$tI;2<;{`RsiV(|p z)9Q0;1xfmcIdQr6kXMrw37|UWr!_m9wjO}{RL4e2&CRlF>P6f=`*ZJ2uW)MJE z(-eZ;%+xF{U~OniEJf-KE z%v*70jSSSu1g9hsLSjvcL4O}-OC%e;(F#Y57MOI4P|m*Mrz)ZztP7W_sfHQzwCJj^ zM<#A8cn7~LC|&ZYys3+*%7r$tbS6NWbAFmBRQ+!?ENxjjuHpWDNPJitX{C8WvUTCg zz5{-SZk#}_LsaO(KB0o=G#EAmFV^Z_q(%Eb015vXcd^7E}ge z2pXJ;l`Z=FM1PPX(6|QbTCghARX%Bq2-+;TJo06g{9#5^^NQ1%DRx=MYJp>M~sfI_nY&)Ap*l~TP z5+2f*&p(IHciZQVc4IfWqoakqxNk@;}2s8$iHJiY0JpzLO zm5L9cte%&|W{q&kG-}&~fD62(2{8!hyns#umBFM61Ri89ErXy6xE*ENHHuefuTm~zV!KAcX;wIb5i)pzLT%mHsK&2n3C(Q zyg#OA#ydPaVX;@bU2OmyUE0j0xxlRLC5-W<2J|b}2g~KCWoeHO<^R<86I{l1kF_=? z$dILfKQX&xz_AkFtuaM)g|fJKB>FIsAfqz-zs#MFbgaBVXeJv$nn$$|lQ+kwl-vIy zCHZDP%a8SOa?mn@P!V2no%$=#LKr~ zpni%~5ejI*5FD-xgO^q)49H5j85}Ezwxx=y zy-7^N8}A3CCbPp|G>wAd;f46$4>E9a4$1ORh$%r@&N0IY6xl;LFkq@I(bDdeOdzKT z;kVhFna<>B&%qH#ByG|6nAGdV?qt4jaXN&$d)Tpi!4fh`P;+4p2DJz5`hDpd0@gKP*l6<;evAFE$IHQ7=FA1pr-`>sCNqSc#E6 zBI3n5%ERLhuq#x}oQ(aMl`KJx>gDq#mTO|@cr`Au610XE z=z%H+GZ@+2@@-FKJjKW0YzkftAzq<iYsudmWwvR-&9=!#DeU5$E0Xo&7OtoXXz|sRAH|Nlr?#t`d zM;y>q;FNyUKC>@E=S7c1oI(r}QiGRML2p@#W-$_*M5D6(^Z4DWha4|ZsF3Y7HAXDC z)m?Y7{kl|34XCmKk(}2o!+r-Ic3+d;X5BBgFTq0u;2mP4u+8`=D0bhbXa26GgySPr6C4rH@eu;I-Snr3zZ znIDiw;h4S+Jg}9$$cxyc{!U)wLm*af!4-?Nq-T6`q8;H~E;X@kgmphoTyw1)-Aq6~ zgk;O;t{8PR*pMFA1?te_tu7 zB`g-*j3>>$xNv@tjvKh@NEgohdW{OAFq^N*7}KBtOuqxw@GM!PR^dPRO2725pHWC8 z={_0U*nd55{PI=RYOUe!VhAQebh3B5Ttb(J5{j}pUJAXKOR{GN4suR|tEQ;|Ad710 zsR(Wg1TwBt-eRfipi+mAam))>XWXbu#eeFBfwE0lRImxB{+t7QSKpTN&)$twMpSuH z?PhXVYe<#Fwf_0=8z*1`#F2%|m0L*VOfwcQR9jM=iI!$i)sL*_VJwv~;&$sCi4w;Z z0)aN6g>6~miB$~%J;xW&n-Z@IKww)YDwh*K3cNLMg<*;QHYzc27^;M*lv9C6@7?0R z8(S-ktEi}mlZ-Yci4{qxu(mN3iYa$4=hTGY@L96-+tAS=tg(jST;*8tT+$?xA@tW+ z4*t86??h-camDKND>J|mNkz*KAxO~U4eiXu`B8}Dd?nbXx#(V=U5yw3&R%b^-&S3y zwQKk6Hd`*ht~c#Udsz8ZQ(Zz6_sD@BKiZMc+r_h5lDP0r`&Sjpkfvu{4AFMHO7yjaW7= z0xD|5^>uiYj_3Fo-b)LBwv7rZ+Emd5h3a9M*a|QoWF1Tn5-dCWW?ht)wh2|qGE$@U zEFZ9Xb3Z6T>6kkOB!l*QfEA*to>~cyjBsqH&V}|CPH4thpgDo9a73b!nsk|uYBSSS z8jt*mT@U%cDmq21igX-vN<659l%$aY`{`SnwIv`&xna~)F1FkwqCCT3_sM+0Ek*|ZpulTG%9`=~$9J^aGh zH33{hTdlxx^z9s&q|LnW`#x&>+_ja5w!hN)fWA~fz>NanY{8ywlroD>dq9=+gpFTw zj9J2yyBokAR#|^KiA_cKC0=*N9NhuN!4K@P04o+B_gtpg(9~3yS3sqy#8g>Cb*iLc zsHfsb;Fi2audUoNW{;F>#4Erxku#He_4_nk;l`AbXI_WsjYf;DD}YmO;r+IzEDd2W zxJY0&GNJ-tT_CJP30ufs*xVySDMa8#y6AYpYk#6p&)In)ubEnit%x^-Sqq#+5qwkfLd3r_v3RY_iba#QU;z>);#Eo4o~0w!u5zLi=;8^RSB9Sg+u= z48PCG(aOq6%c?G~2yFV9NVgHvOO@A{dUC`|71E`~LA7*y$RKL`UL0SKg$pBvp1yi) zV&x)wGr|RO6lam-1<^h|{g;^ISd-yS8)_hHppNh42|7Ks43CncdV=dm8ET+QY7)I3 zT9z6h-Ia`^bQQdQEIa2W#m_N=KFu^*arzwz)pZ~1{6=yJtJfgbThaa}g$@ed*kFmb z7(Way`I%l3$s2aVkClqoaT3O-H1Dly|G_0r^MoTqOa=?+E%ml_Ri9mV(FofwmudWJiWQ-jSCxH6<)V%@Dw`0zmjuL^nYZh%;JudoHIYvKXg=-~EZf$7DQnpoNJM$U zfo5lST4(c?=CN)VXKyq4I3;oN;CIhC$h(p96f?sw&N!H!N!>yH&3&NF&}sq_*zJ?t zk>=5WQ~FNL@82anO1|#o7<37(-DBv0;p&!8p^0(3jZ-O55IPfN2Th73F_pdMLOg%L zl{m@bHU(K*!L5vO3TdV|*16lwVc>g1R`2wWn7^)N5rWA?_Xw3cNtJF=LU!%{?prZ= z47!7z0WQ8DCKova2QlO#o4^Eg>J1-mAno8eE$RuduVEQ4Xp%kzjN7sF&?P>s`0npI zE@BZIWFB%=wB?hBJPMBZ+?T?CN81e;pIkKdoomswR>P-qE|1%- z?@L2rxVP&aFxNrMptTX&<19W(w=3|GPTCxiU6`1JT1_QcbFaD67)j45TjDgrzp@5M zU1UhH@lYukqcBhFk}*l1dPT~c^wa~{*5lJHUV_rB0i!dnqrsX*LYOK^q+8LkU`$dP z8C{K4{SKlPVq15Utfc@HYm++`>iQ5}C>!Q7AYsv~8h%9L;tWi`-DmptOHns093~md zwr%qoD4))sEn>qHS7DUh{1AAx0Z;P1Z-ps)DyX_WPVCi`^5o?0_K5PiiFqbiQdvAh z*SHz=;dzSbvDoX5-L9?u*_U*GjdsLKVtIw5-JUh@Y)T%91jr&|ezZOj_| zacTR+GZK{Cn5FxKGh8mD!lj)i{(Y@k`Qh?LFj2iFUg)vFwIh9S$BHbNc*_bdsB*^& zFUa}<&Rafb(3E)m7Ui)3@;#8PdTh{@IPod#vEU3iQqVpUbf#2$73D48Al#9@_-N*} z3hMQzWPgiYmqrEvE);lHdc7#^?sDrA70|pX-+ydNm%h%fNn31JdwFp9a|Y0g71p0K z@4af?df>fyQF(F@_@)PR{}}qBFhWe6=K*(kees}~&KtDikS{dOP$>4KElqCYoBA8u6(#c+9ug7Z;yT=<*LW z@yvNW!t!;y3g{Uk)__a}8v?#V@LlV_?-TG{#bYJ`(SXi-gI!_HmPLBz1V5=?F4X?D z19i!9bMb3uO5TwI7}y<&*8_{7N!#$;Ff$CrleW|f;3MEi7MFQ6SLqsZy*`M65WZ4yO#38@gl}{o! zAYM>(GNK6@!4I22<<~azJ>TJ8@&&s+jHZ0?bV~ZG%oyx=#9p8J|b;@7T~e~@czB1V9>PKqbJqz zhY6r@ZB)oYnXTep?}Pb{;oMUh4SDG1*!qzaV8i$dLaltTIoM6(g;{!1iWAnpdAbom zJJ_B1PUW2@pl||w#b=581YZQ9Y`pyJY>wMZ;f|Nmbr8-$BYl}x%&P!XbiHre{oy(@ ze0~sSM0m!xu|B=#O0YU}aC0=+(!o85?+Ca$rj}d1uH6z|1Sx-ZJhsmXHR9vn#do|Z z2IlC!-&XJe3bw#*;@eAEMgFOJfu6Q>)9DpcaMXU)mDk{U)9TQolxGT=TJm6gDz3nr z+8SR9Hj55IPRQxZs&RT!t}D#|U%Uv6^?FsX8S3A8VzJwxuu@c+?kOsF>k+!5+>s!brf=>?-VI_wHs zn}_Q~uh$pt$|`w^A&_H#q;kfwBh&hjJ}2{YQymC9uYP|e3{HPoa*S}~PPLOQwedwt zKYE+)5J)3Gx8Ln$o;+iA@RbU|$O3SbHDjYF)34pTZ(RdSbit&8W#edKr{aYVbUq@} zF<;r0gLUDUuNt*5pT>(-+(Im42U@I2%3P>ZDa7xFcv{lNO+dG_Mj9 zTJDt+I={(lIbjclW{t`&&E1Ku(9;x6Fta&5+K}f=yyOsdS? zCU=55pM$$R?weYe1gxP-`=DYv#2~;ehzdjIQ~iUPAll2kLE15o8_(`rE59T32zMw-~SCkVk<*=YH|4pCO&O3Wbnoa^B%JgAWL|zky#xQ9j<$J~Q--Mo-P&;4d%uA2Imz zh1bAFf@(RSx*sk2R6r8q(@e31uT>S@N%5n zGX9;9R7r9`Cj(v7IF1bPTq>O;>9m6_wKn68gb>@sPRy8jYh-z2&NPn>s#k@1BL<3~ z7ow^F@lPr!i zbT=ps(%oGm-HkLN(%sF1NOvyMNOyOKq;#_&EukRY@h*Bl_oKh(^Lcmw;M(ELIWuR@ znQQWVOXgWJOo<4CJ~D~t)+L?}3R{q&&AlK_r0XHglTgV}@b`bMGs&J+o^e1J`h~U! z+`HpHu)`er>?;c<-G>Htd78<{}btC!y+%5%M$iE%X91=8~ zmXgO7WKkBmz3{%Kfi(t<3;S5#`Cl0(J1*^SqgL|iA5=^CxC~`mFIbHxfl6UA-8xK~ zQy9^}_C_HHEKzTH#(Qk&GZ~%WYDu;0IQ?}z4N2?Y7Iv**wj+5z@cif!L>ycVf&+SE zgx)}D-(UiMNLO(^`or8lpWDj{{Vo#Fe*LW97a4eDuU$X>X5;}z0vP?(h&=Hjo^zLR zEZ@F4@&V4}aL21}Ep1Qyi}lgR9~&rqaEvnBwq0|qi=~c0Qk#SYD5A?d#t!w(uf3pd zt-+g+CBioo#F=&=EvJS#sAnXmty@4`kwv#5dKapg85aJexoV@wk>uQgl7VN3 z@$wG5a*}Slo0*f#yRIuR0r4PrW2upouQ3eI2s;*fNhXSJ@qerfCoQ&K0gzTn4Kr&4 zk-^v1+x$|3q7?SdCiW>VyrQ4$(z0d^fkg-B*Pnu#FOL+#gIR$)vtIu4@O;tdc(5M@ zEh2E<(_j+(z}%}>k&2nfRpl!KW*CKHdnn@Y9ZO?&eKR!7Tp0sKR@+iTi@rkKTlbrZ zxK$@3eHrLMjX%HPn+QWPQ z1CqqYZqGCNn7J1zP#RvlS$DL4aQ5xH1`nK%aBAA2A7PV_MY=1+rGl=yfb?M#=s7d@ z4i7A$OK7JhD?4k(_aWyYR7UsR@h;Q}TYZn}vYB`4GEUf3`~>mo&=23l&IkJm?#4W<~?Up%43O+H~Yz^4iz* zuTu2!-z;S1jWL`^1_eYVr$8ZbeG41td8n8HL$~_heX~yuP1_q!!N8I3K6h8b!H+HS&EdC6ufIED ztL^E}EHza|CByqnMtK7#XG=qNCq_!=L0NN)L2o?B6@U5>xsD^{4aFhHj4Su9aYXJagfX+ls)K#cFG# ze9?U?nvCHv=i?O5-D)~|EF+7xuIHR5fYX%0P3Ced8kyLx1)2kTO3|#4HBU1pA38JO zt+_LvSyH+@YRgFzFJ{H$lH2E~`Uokm;m~CPrGk83)O<=PBA#586M^Gd(O0!`Qpii>QbK`n4aM`h(HBo2q?jG~Yln`= z9SS9bNWOE#j`uOZ9meXd(uwaNA6lc)OA0Ap-1E-OgF9lQ0i%=i@N4+ls7iI;YcuXx zdsXKvt@;#ub?F=*uGO4Wk5Yl?pIWrX==DkNCE#mPSJu^1Qn73LLzVFpyK}hJ5JcM; z;}g4F3{eZzwUD}uC6>7AxZ;@Tur?`w(RE;eNqeLrSA;zf#RD4$+U_M#5^-bSJkG1zGRzV3@i&@0Wh?qy|00bafV6oOlq zt+uS_+`4x_;fZe(bTp?>!av^k_1%!s8%8A#UV_UOHM z?|izI*Bsax#;<+9{r)jnXEopMjufqrGvcvAtg-JC&^{2IS`zB{ckJ&l^z`(;&t7ldk~rtLMVeBeXe#q%>Jk?` z4!Ui(1K-~*k__u(T0@oEV%!w43BzTMos`>?2CIeaXa01(YgWE>&bm6~I;M26w%i-8 zRQz1(Y4!xAAOG|qq^3n^nLmF*S>Z=QPS(MuJ zEaGhwwG@%MsZQmwNliVL(sV&%nr-;_(2-596_6kn#OD_&OnNrJe?c_6X)=qmSwj2y zbt(OUm2OBXUK&epdz5b8YI>jSx6i?&F}YgUr7TgUhPb7M*sl$+N)7SL=hEtcg{62( zAb;N8gmwHN2Y``P{$YA5k;6IY2ECrJjhC$OD~Cl?uh`xUkO(a>dQXY_dIfsrhtl^0 zCE!Z>EU~R-Ua3G~ftb~YQQ@s}*%I(zqEl^RKDGE)-Sjvj*ZNlHbDEGf$1yt&A(H*8 zru!Qkpuqe7DG#sD0taGq0vK1BG9ug`y-MkERj#=-6mzkx;G;A-Ek7}26IkJos@4`O z;7!Uc+~#Vq&z4-z6yZQ%RkO=fef5>iWeN?*CYX8@{- zs>{#HTGb2aXqKvLWC-9KWc0B~1U zrCr~Hi{Z5vJ%A}Bs>@R9y`w0*!v%6AA++eCc@+%jij?5z+ui8PbwpYb?rWSZ-8a4% z!2Ai8SIQ0UG3E0MJ)orCZZHVjjM?dJrm+kz{Fu3$MeF-ox^bV;An78Q>=49=ziRDo zjP~->kMPp>^>nuIeYe2W{7g#>ezvi8bfGdCq6ts7%{9n`g2oXx!0+-_E)r;|(vc2; z(U(rL)fCEJt-lo=+1tXO<#8%z#5~ZK6+Ze=S}}Ens4JlXXhRBk7c8Kd5lyd#l^>p< z&Q81ITFSW)D0!!lVF47?i^Mt!TI!U}&}o*x_c3nBvwzDlF7+vWn`(IRgqgu01LiR> zU3i`)tC7ef-=hD{so{#yB@*aNQEbbl<-`UKA`eq=z;AcX?>V8tXWuI;zGvYzFtC`- zajDjH63NQjI@AK`9^b$3yD}uZEFI}%%^&8qsAqnFNuTvHJ<+1YXd?22I%t)5KD8n7 zID;>&ponR~@9+{l0+OJq&Z}3n1QcxeHdy6e@6+fO+7+10GP}?~*569Ny9|B#yd{FW zO0KlR6^EZ1XIIK*GHgmRbe*IJ*%@x@-G=#VjqcT~8$x^;GQ_bZr~O>(Z}6yuKHL;r zPmIGEc)qeO^Km8mRL>c7D3MIDs;{=|C_r2)aaUT;sh3w;Y#XWuX3261g6Epcsm7y( zqYg^EK|7x`ddG_fRt5$RF?%$8-9{Oo*!)EwM^qfaMwE!{|qgaofW>$}3G{Mh=m=)(RmU zZj|ST-}JF3Do^49!`HB`Is5Cwe_Gi-SK`;p{TM3qxUwAiln4Q`Cx43Ghk`pQ$t+Cd>W2&#Muz zgDmvAxZQQ5HQ$vuXUZtg%q5yRb&2o_a4UJX=X#EPk7r9( zB0534A9GfGgR{KPc$R;|ssEi(VV~8e=rv$#-ZRuIaG+$~BrDSM74C$V{#Xl@o$Ma= zUL7X&!Fzqk4TL+U!TM%XyhZ z)&BKZ&I8!-S$)gtwA?Bnv6G=5L;g}1J}I+0PA?TyVTfIP*$Ih@(4eYoh`U@-#O;il z@RE6447l{u#H%Cmt7NFZGe4<62r|fmCHHqnCkdt#>XR!33j= z8@LgFBPvG(S`!$;?nCBr2L3l{Y8Zyi2PaWvNG~M%>2idi1w&jlrb2p-(*Y8Iv zlYx5m0*xos-?Rqvnb>oHWoW(7r0iHSC~Y#Z5^|OecS`6U?h_iIf?Za+Mr0U)neS6Z zmuI@XXymR&IZxcm_a6|wd%MV*G-WV+-xM04@$;QdXvb5gB9gTW*K?8j7z)R^p`)27?m;3 zz8oP;3CNhdr~Vc;%!z7Vc;%>`=o`;I{g2LR3tq3TYFvaiOxc$87;7gT#oTSV{N(IOJ@ftK zl%*(CE2x6;0rq4bRj{6oNIu=3B2c-oQk)~RB6we$@Y6*>VOzlF? z7+Id>2}`khec4s?jzaaC+!gQSy_o_UMTzhFQg+##nN07Fi$?;|O;ERn`pH>1;7^4p z2WR^+D|k7sJxu7bLN9A0v3vs9<5_uYuH;N`jm+PjGE1Sa+HIY*OOcAci~J@X#eSE^ zo}9(oe=OghbN9?dsMAzot&;%fnsSrvA%;DylZ%Ftqkyh5t`ZV^Xy2B&0-gXkJ%ee| zLTLI$C4_);7B}}L-t$_GV$~viqFT*-)x0@EXU$U8G9`|0rOr`s`*OJwEAJ9Zz>ys1 zOqmO5UbEVt%4e;Y2s^g58PAi^NBfl9OvygT4GAD7Y1Igk%9SN>LdKN(^wh_3b_Ve? zXtD%8<=Wh=XoUhK`$Gp3F&%2aH&ce(P|Jz(0<0yOOW*P*jjnNQPZi9l%69g-Y!QF5 zZ9xohY(32aP1pPAor4?ZillIJ==f%#>i*}`E1L|qtL9YrU6c8<-C3A+PS{AB%6HZ- za|bD!WqU+Uij4jrLTj-wIcUu!tFMk0?zwKe+84&kls-iUy2kO`y1i-uf}ck|E_@Po z5_Qi#BNNcDBQOQde_F%*s`YcBx(9qCg!R=ShEN}g(W|U_1TlGQIk(0g<})mY)p9cP zYDA=QA>OVPEfFEH>({LMQ&57wuYP+}+yE@=ocJfhE6sV^$u0X2P2?s7uAIs0UD}Xc z^dzn?+LCbnSQ>AMkqq=DfsB!}gfWXZFCFvyp;URBk8C1)QbQ(8hOyDz5p zf&0YQCgX0&9}|vg>NR1M&{k|HE9w-*90HpLr}MU4)wYn_>BSV{2+$%bi72%-XLU

~qtYxydvH($lCWFwAWGP=Q{$mRu87xmY9CpAw?X1i%(K)=^q5iwiQB zgac|J)krj6oWjP$(m;DcyDAFIf@v)+DudZ$`lgBg`M5c&r;Mk;wD>U9iTS>a?jA#WeJPu zCljb5mfS)JQKMbG9MP^_3>lgWh@ma>mgtKKBcD|hg!F4#p95V9+lFp-9wq?27<_9e zs7FJO{QM;hI4%t2jWiM@-)p_Uxjn}@Cm0V;2aFvEyo2vgbTirKA$*%uV4vIJc_0<= z-D^K?XDUC{%_R9OEm!bM!rQP9_H^G+2f?<9!}mg;VVr(|J?D4&UM4U%QbZZWg88x( zHlg>e^<_4rBA|dN5ymJiIr;thP$SoM-AzJcZZpbYXM^O_`%{$I7AjtY!R;X5d z-jkToszkfcG!P|N4J9}jx!qOq^>s!}QO(h*!NrfHOVBT2Rpw1D^qPI+U;+1h9%WoE z{&AkVx5o4FR|K0suOIyPiURu69R(Z){xWq0C@2!jrw}%vqZa_IS|UVS1gxhUP*oG6 zQ$&!P|7Vb!yu1nQ-CPM6a)`hKrKjj^>d0UgO@>!+uws&QaJE>VV>TeR_WWf&Z0~qJ z$?%&+YH;}pRmXea9YvVjr!b5)@nZ9Wd<`*;sdsMQ{L;M-KZ36>?oVGs%^#76yD98% zmyDVYOQFs)={HV>)1yrDFfCU(OiST5GA%d6*0WJgbnLcgqUHUB%>=SyrnwsI?F=jB zzhHD>a4#j)fHo3HgI;ka8e^m_Z#ygF*@@z3#AF_>S<-;T!sHKVAlNQht9bcBXM|4B zj(*f(JGrL0+BCpnj8QHintyvZX#ZQu87O_0gE_<5u$!J$uw!bcg`K#JG5%xf>7Ck= z9;=pym!g2!EC{0!W)(;eJM26iF-8CFWF$sIr$eRt#)LFq*(r`&SKoZvpX^O<0s49o zJu(d{58+%Dis8{gA_2VV+!gZLWM=?3LY`4WZ@g@Cf8;@#Dv`d$`-wHTts z>xD6JKWPwDeS5TM=R z%{bSpyLu-yjI`1#)JvC}jK@P@)81+!|MIhxJA2H4tDn$L3m6Pn^7^(jaJuncG=dEt z$Y0o4tCNKeZCQYuLS$Lbuf|`7itdlh)8~Eu));lc;^M4$be4XB?*~@jY_*U*2Yy&! z?>2ABWe5!gEJUB8m#Qo^~7ls>QY#0`4KsIE#6mnraS!ccQ5)iMmY&ZwIao{Vk&nPhgq`gqYk5mPGEbA&q#+B z9^UdKp)XtrO%H=cD+=?ROdHKT2^-+va@U&P62r2@@Kr{Uj!VU6Zwe)f;8Ul21F?2) zH805qgWuD~5Qa>3(plLO%fJy<@(VXoB#}dhQG9e_csW4)&6SBh zJpx6bq^W$9aSN6u-PuRrki0NA*Z|Glb>_IfYr_EigIKqQ(pH%#fn={f!_0}k$d`WT zTh%-DUSX2eH_8LpYS4_2rxrSsI>2fVk6bGxrl>Fn1{3nUE*CcUnquPFI|HG;?NN2X z8SnKwk^or{hL!$U=G_ofi2N+`7&4e`sVcpKuu|O4)9>^!o{8BpcQV!>+A|=~kN{{V zeLS{zv_1vg_o@+BnsN;>zjS*UTJNG2;`Mg$OU{Xo9?z!Q&e~kumNzpX00_d`i1CG| z!Y;wN9*dmn@PB;;j4L&2BKy`JJ0ub`co(fg;~nWh7FQT*7L9dJ#Hk~q46Aj3MZ-Aa z+n32E(*Je%=rdt|=@*BO)^8#ndBf_W<`;j+E`L%^GQ@jV9VjGt&+WyG$sK{{`*jUx z@|eaqz};h%;*K@&6(NhI$1~u?z!;yhk(_p;Bn5Ol%80c?=bzU`jV-WJv$=6pd(Hu>p|F> zcb3TP8IXWTXj?itl1aq3Xso0Az6!#}8Ms+ZSdc?@l=oY~U`p8#ZoxspW-E`Z`?k6QMGNWAp(lrMcc+PZrA4Vn(0^TV|!@IU9*YoN%6H@Lo@ zDM^~EKa^j&1Y(A-Hvb$Q`SMQfQ|F!2YWq&+ZN~kw;Eti!hAfoxvArn%MpZQLt*U?T zXKnw+U5`?-pbOxJEr)mOkM>+x=_4hQpC`GnKj)4~NiM&8RFZ8vE`(eTT^3>d1pP#~ zqx%d)eMKHUEcEQC&+VoK%WzFd+3=6CnF+Cmq%-?qBC}UUB;rw7sCC{LrFC1 zp*@E_nYN5qP|f+O+QZ)2=C$&R<+f=x8kW_p$h4Iq2d1TE0S zxcX`~*D%)ARon9jE?GR@!;LGUl+BiSvrAIK;=5jf7h$^PGGrzy!!YNR&MGMCWQ?hi zWNYrt_uNals*GO=*>RBgU&kGM7WhnUCSkiQd3`akZ%tw}@2HdxDqW_-Q;{h3NVnQ{ z<`phU08-#aTtxR&$B$7->oMh@(6K5LiCbNqSv2vC+mZUwyjnNpjDKNhnu&A3kZ@{a z6NhFi|1io^znBbk&R@!7&is&<8G~QHNCSUD z)6zJgkcz6aydQBuGP<}SlwTE$ z&1r0E*4oLK9PXY#rFv0qXpYhlpf!ZjZxr<}@W!ZWZ(T3xxKh>uINo^*C zPWs-)qQC%d51Od>;_?9dO%b$d!;VaD1p>2O1<8bU5k?bdwTc*BwRM>oyh7T<0PcGD z4q)IN>%L6c&Om;kV2$gcY{#^J8^Cgnt*Jn-&cwFUs!vfvN< zI5~u@*NmFPd(RkMzA@#_|5&hft(B0gZAAgEv*lz=vL~>6dFUrE64IC(axxW!=I0fa zF=K3LBw*IE0QB7EsMlgs;=hDNxsB6teC$&F2Aoc@!=xqI;>NTXk2pXpN>-0kegwRifkQI)kXIrbek3*fqLmdDJVu(-kTI<} z2e7O^FgZ&H8SYZbbP_0Q?=#SmKtkOCtCwnb2%2NpoQf?blzsr(|(x@58_X6MoDRlUf|mbv~; zo3PNG7mR0ruF3(7v`>$JXCvOiYyxjIigMkW?GOBsKT#!7o_vyJJ8#hV27Bkn1TiR~ z2Ay=wzqlJ<(OpZoAOtmT>A}yuRkzD^HZaqTM?A8=ZQ(#XK!%c^(sL{&sS3nwLOQrZ zzLU$uyu$4y^&4Qkg8u|Z6vh&pi8{y;y-n8-`(8;SmivMoLCvf|lLN;axhnir&hMZ- z|IiS{vZ0(Jf7ohZ%5E6*@MCm7O>aCR5Gv%2A;q_ zfRxu9;BgRCj&U*e#EWKB?lF<;)oaQ~d#JjL1o9)9b4&aA?b6{5qD&P&gr!6y3pkM0 z+vb?rHc9OXfkZck2RqR-W(@gSstlW(r|WZZh^pdtPaW!e8^dO>J?4Plo33A2)v4Lp z_2Ub+=~Bc*gsD0frtp6lB7|q7-qO)Os34Qj3FP@u4BJ}xQqc2S(z{T%7qeons>Km; znu}Ocn0A_*PL%-$b&z`jLYk7H$f`p)b~}OD{B#-lsO3xl)kTYUh^d(C z3SZFU-JuhlOF7J$VLVWPcA93=B()<|XpO}`E0Q0DNS0YIy?lIq^ zCaVx0bYXxriUn#uz||)rwJ_x_agGe()6|NLAtx>rQSxkso+A*IAc!#%hD_ee9cYz+ zlLLOZ$KA8kWDRDZJ2A03sgrIICCOJrF8?I&?3Zjv1H{1ureq*^;>C%Zyo?qc42v7& z4zw5xYzrQ=9`H}s01ndgwt-3PWvIV5E0#@G4Cw0^l+~RR)RY+L%vO|H@fH+Mn%soz zZz>> zI!QuDg1s&Jvpa8KqTR#Dg2figX}ooYQ|pI~Sd+TDea~|6-De6O>Xj2u6T=>j2A_+Y zN10ZT%t}}*kod8T(gtfWTJYR4qsF6t->1$SalZDNf4n66hqrxzd(HguvfIbS*Q@V) zhJpy(v;5P$%4jG~u)i#wUNmJ~P?b1o6W?r`bkpoens_r0en@cFp`R{KT~r(J(HY9N zH=n?mI=tl^mzprdBs#QI!3#X@^W!SV$ct4|M$C=POL2K2XO$IPh_xUFINx zMtRAbc^RitDd3X&%dBH#H19<9Gps4caX5v#m65DDrLa*~r-h$}EY0q_-H{R(t*jHg zEf~wrV>r}XuoPSk1JdPYh3lnhHEo`TU#kedmT8DIKNGPc&YQvWz_AtGO7>yfY{qh` zJ5_BA+?SNiyil9)wOjCJRys`jw1!Qy$P(`^1(^JNBOaNoU8>rTWy8qu!1^>Z{c`~M z_xQ7R;fERw)&gYNXX?#QsZBU2s5TTx(8s5s{h&-103I+&OHW<>HSPls{}7UF6OIJ= z?58PAXu5pMqzDU!RO~LoJ`^osDg?gg@m&1JYTg-+0@H;ZT4VyK(*#E6IgVwV5B?7! zBCZ9ZJ!%Jy$}CQ@<`&QA7QI(4ZaV5OWc`5mV0ozCtGS^26ivskL4;pgj_FyNuzJ&R zpXJ*c60!hg*(*0{P*}dSIKaKm(014)6iGhsWbUnwJdH1Sl(Z9M zism4MX~wX0_NF{*Gm+A)W^1$hCd)kaKz2^+yku5js?-!4nlNuq)ofiH_VaV;*Y)6~ zH<<<94gw!%%KhU$@f7DL%U4sjw`xMar)|_6Cs#?ENa#;B-q+FbO0pPu>t`ve3wGC0 z*2C8^XYX(wp}?}@;$$wj1rs!b=xb{_tyFUZ9N`a2<4Y}yBR=Zh&DAAW*EqmxFyTml z(N@v{Mk1$|je$^CDNP6NQS@eNBTBzinYW-lNW;$5;Ypq7l~9>{=C_rNFQ z*we13A`z7y={Rt@SeD7L$w+vOZ`?p@?&%yi>wHb+%zcQio=_vE8&C0iuXtxeH&}?@ zxgeRF(=yq^LwaKO(5qisqpXOHO3=Hg!3us1D5I}8onXvdIG%4pe~`=qf)>_P(=vUX zG(kyU%OMQ@HYr0>7Eq@*=ur!&U+p47G*64h?^rH)xZtm_E`}h$UobnM_qhb2F?K7_ zvnn_d!SbEZ6|oM6(;E_Id&jI{vwClAA8-@-NFf95I5 zvxUrewj%1}iI2_ECl_B)wi|njpGItd2hM(rktorc>l}DLoV&*}J$XhVte5Ux*{Q45 z7UAX>G89AdDw@{xnR}oQaxt1vpvSNznolCS{9d16V&*3p^fmIVdWBg(XUpSy44ZvgemDN5CHyTEV9 zFNIBE9tm}TI9?My;d;k_wv;}R(zch?u*5yaD66>96ET$jY+nPjsCnMtwx8AJ#9Z)L zg+GXiL^Svmcj21UT!f{ak~_+8Rr6Mdje3`aluQb^b`jk0tok9H}? z(mM7M042#5=b*0|iNcWGlUbza`0acje8P~)yiu1V;^E#)K&CY8r2ZxG`CSx_&s(C# zAY8pcI~4vlbjz)F=mbz8+(xL$my8Y)_ z?ujA@+R?Yo2FC`i^9SE*gieWFcZpe%9)==ykOX-)5PjIA>Vto8V?H9V@P(z}2r6w} zaYEW5@#J|JL62nvqg)AolODAy!Q0M2oU2Tidw<8fP^7y^b^Q8gDcpTornGE5kXW=i z$}y4$0?yIeGY=owrDQKi*QiW@wnFEE{mNAxb{*Qvr%ZzFKlRX@v`xMhO9aa+B6YQg zq2rNtuG>p%ekOq6Rv;|&8M9M36dAvw_NkcoL^#iBvOZ}bT~WZ%PXwl>e$NmOXT96txU%`L?6>D65nz1p+{$TA}1Bk&i( z%bza-6|}#=iE7)L>0r>FRy3>d4GJS5@Gj8_$8AIjRT!v^ys&@@=-*2ikr&fVC>$2z3x_OnQJz+zaa6D`kwfsh0XjO_L#O~ukGn-*|+BLY@*wO*+-mns3 zwJY=r_|7-9jSk=8y)cq+4_yU#w0{RHH_a9^p4%tjY%zM*NHE+j<_N{djtA;7r7_Gk z8hM`b@{*!mTHKB)kFQ%ClLMUZp83=9i<5c-Uxgq!#fh8?Cw6^-?=up>Uhn0Siu(xOtCq;jjkTda34F%=V5Dn7}@_rbpSd-AZ8Qd3Fcm zEYL6gCZ8_h75NojH92fZo~l4zTHBaA4i|9t#(3g;3z=46VH@XxTZPZ1#%(a~sdVH2vJJqG07rk_73P z265xarVQ#%v8W}_Wapc!OZOYK$~~zg8^rdy35NIPZv|)bq=p#!ftU@_LmNyA8cM*P z^)8JKGN#CL7%9U3B&z2dGRilVFF{apd8Exz9MvEbxntSf#S;bnfs<~n-5ml{$5&Iz zV_rLIyh-upk<)R7+5O4Jx}UT*1QAyUleO(talQ&Y7JuCrn$;`ySjsv&*>c=~PWC00 zUfJ%8bGhNC`drI2>||cA)#Qt2hv5cvV$@`jhGTu-D1Ukb)7BiI-uN!bzw%@B(((Bh zYh6FTt&d;#y5hg8dRF5OG&fgIfrOkLYCOk=koPiDOyzKN?G6&qw(XtF$>BKq!jsX% zl~d2QZ1~xuh8C=fgVJ`mi)=F)1>V$dT-Kcpi*@_J^`E~5;IFDy-izL^AFM zjZb4B{Ydq_pi9+AO@nXrRTXvjzN`u1!!K~n|Mpq`H|`tWqE#(FWK+kFI3ed1A;^~& zfCj2!1t0-ebbfbisGN5pqb?lr`tPw=;p1E2PUB;-;{eM_B9`y=B9q=rP>a1Xc<{bF zq@q9qI2oEPnGyHOwtBaYuN;cFlcK-zIc-?YDDKUq^LW?HaVVEh_AR>Iu=y3%2R*U( z>$r)>sEOdoqS*0sn$1hL@5_-lYa{IpTPW89zy@Ph?rAmQ13R&`8$#G#opH?*Pt#WG z5X2*1VjM>sH9H4Y7yjAO_8*`@~#SzLf=E{x|H|S+YSjMmT{0tdin0+9Nk14JE5LcP7-fc1^)W zK+4X}J>?tna3a0=!#R}EMJIwB&hN+;RP(A{Z2OFFv-804VtII&+b=XCR2W|w#P7P` zU>YckqY_i5#1N(;J3ya7sfwub4ZU(USdGi!b`LeihJc|3h)o;o;guKAqY zfYD*}&azgRnMGk{B~D*br}s<&tY&LqB#16HdzQE&|1ff*)mOfMi&dW?XpL@)Z3g8d z{>b&f1ATd!+B8{x9A+pP0JDqpMr^%XkRs!Z!5PD}X#iin@AE*vag7l6n{sL?hOyRWnyA@qxrbHFea+ z#k_u)NwF(OX;Nq6VCK*CQ>rI4lfw6q_Z#(C6ajgwq`xt z&@a$#HzCTthd{e>q)K}ce2;Fp(YW&ZVm*OfWN0k<9#--GGs<(!r~>2_Pa%6Y)}F7C zr*4ANA5*^hnIrS|&MyQ}H$gQ+;@0=ZO!O}s*ceQo!?}3p@)vx=`Z`1gu6qYYH{&@h zSQES`5}i*JyqbW1IQ^1eSv#UCY#aT>IXW2Ch^`Qf(Xd$z-(53W42LuBI?y<*&=$LU zcIZ{S;bw%xB|Z-@61<=_Qh_YcZ27PEq)2){h8ypwMD)|K+X>{2_KO(YK~$Dc*Y96z<9I+1@*7q_oHk2>A>yW>FM%-QY8xpHfViJw zXxIoJzj+kS_v$~YL^34tC4zB25~-whIpE&qn!((2275kJUYx!oCVOY2|HI?m0E2M2tLAxI1ipLpn?obR`-BcAjxyZs> zJeR#VaR>3=y+Zxof3g8aI}EY@TsD9HnMTfLdI`#PJBT>9e$ryI#-&DsF@5et{Hqwk zC;3}1jt*Z8Ua~c9M!9z0L8VvWemGkhA=3qmTUvV?EHcfbLQX?r#MZA4kyxi4leskt z?vbdA&S(NR_G7*K*|6K_ISN9^NOha^^~s&SB)xjLki3gf?>I~W_R}LDj}YU}%VUPS zxS#Kp2VskXCcRg|lZa+#Q4ZGk#*0~HFD3jREK>RWFCD$p?Ls9nU!rEo_C!0jt_ma^ zrj1FIjo`_KtMijlcFIYje0H_U8N}ppYGY>1tNP@%CcHL%Ev{V(_1NmsZ;+ip1f7ZI zaYCE*s3(&l-K{MMJQE0nCl)&g!o%MVQO9tEeK1i8o4kAftoj8*H+5xs(TE&#nsrvb zv@(ur8dgUdU*yDh*5+8UbA;M5U_fYGI_+&tJrk%%JI6((0sDDSZ?;8HBU>H5upqg* zx6}JTf2d0FdyVaa^J@yyxCaj~#{E4T z@x7${XEp+Q75UGT=Hde27Y7NH+kHpKyyP8bg3%%&Xo40%P|Kzl2>T2GjSGYOzp&t- zSTX=N>=RNr$ch|52-+kA5d0F8Ob%fE_3%4gk^GJ>-Gl-yctzI{~003IOfzQV_iW z5JF%4N+C)pFTpna|M7t+;GfSEA5q9$4>Gp=|4N3G=Z_r5&>(gS!1G@qwjf0ch~zNn z1Y+z}PAeR>aDaEI!{|glUA9i^G3y^`;{|7ewe^|EDL*!W?CIIv(5|}fQ z{#Rx<9faTz1GGX1U?6|OuJ{v?m;XP4A%F7%MhKpY4ML*<{6<3uWzj(LhL9$7aS(!L zY5r5iQAS9rBh?cv1eg~aM8E{V`NjE9AlX-carUPEhnfaNN(Dgu-ADmc5I&-`5bi9X zk$+R|7$B)r3{Q>u)N}-(4h8@!`IFKd$O^aDASUv3s0eaC;NMSPKn`0{9K;-(+5VyY z6T0>9Dh_b`hcW&WLhb*mD~Aap{u^h4aTPIWkqLnLt73oRgNpwv_eo_Ag1=P8%mOj< zUrjvrRQxDmNPa31IwPb!e?f&pteE+){1;Nc6jPOt1v30kJ^u^42RQ`s7d4augfBrt z=_WeUpN8-x;!k{|zeQ+hLPU@y+{z+@Y}o+Vzbf=6vI*y3BBb;oBA#LXUkD^nHYI@Y zSJpoR%5(gcHR#P#R*e5<{e^_`JLg{k=OK}#|JI_i`BM==)=U77-&#a@vg$Ewh*jf* zgy{hkza;;8%=7O;*V+EkVg?NsNP-T4{hLR}Qy+kv`BbI^6hzGb(b%7d*m(b{NK5`d z8Y2Y7(EMXkQe@-o4-l$5hyngxZGqw^5uh<>011eI{XZ@K=i#@%n5UHds;f5*ew5dYzyCq1U zI*eDdzssr52*Cg4&i^i~K~CS&|HZ&=;Ww!{I{@!D2P}y7L92j&Co59|aDQ>QqZ#*v zh2*|}1_ed;7l)5uf0Oz%|3ezapye0_sbe^V{BP3JttV2RUkty$oJslsq527-`rC=7 zcAltcKzZ~4ykDe$PLKcAa`pZb=`)ZYEr9qJ>7Va%hQErL@$+9&)Tb%*Z`S>tW_w^r zDK`H{F)Wu)9+80Bjt8os{Kqi=I|}%}YJ79^%YQyn{-+)M*#U$wcW4068f3o z1hqg6mg30>Tu58NgAm*Hf^@Fze-+aB#XlKtS^x81@TP_^3Z?ody&Phdzj*ixh|>f> zctk?psDG>PIqg5R!^{Bc-%XlH3*m7__fI-x=s|=F2dOX=ln~_G1R2(JF+*5E{Xe1l Br04(u delta 30125 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 diff --git a/inst/sql/sql_server/CohortBasedBinaryCovariates.sql b/inst/sql/sql_server/CohortBasedBinaryCovariates.sql new file mode 100644 index 00000000..b3db28db --- /dev/null +++ b/inst/sql/sql_server/CohortBasedBinaryCovariates.sql @@ -0,0 +1,107 @@ +-- Feature construction +SELECT + CAST(covariate_cohort_id AS BIGINT) * 1000 + @analysis_id AS covariate_id, +{@temporal | @temporal_sequence} ? { + time_id, +} +{@aggregated} ? { + cohort_definition_id, + COUNT(*) AS sum_value +} : { + row_id, + 1 AS covariate_value +} +INTO @covariate_table +FROM ( + SELECT DISTINCT covariate_cohort.cohort_definition_id AS covariate_cohort_id, +{@temporal} ? { + time_id, +} +{@temporal_sequence} ? { + FLOOR(DATEDIFF(@time_part, covariate_cohort.cohort_start_date, cohort.cohort_start_date)*1.0/@time_interval ) as time_id, +} +{@aggregated} ? { + cohort.cohort_definition_id, + cohort.subject_id, + cohort.cohort_start_date +} : { + cohort.@row_id_field AS row_id +} + FROM @cohort_table cohort + INNER JOIN @covariate_cohort_table covariate_cohort + ON cohort.subject_id = covariate_cohort.subject_id + INNER JOIN #covariate_cohort_ref covariate_cohort_ref + ON covariate_cohort.cohort_definition_id = covariate_cohort_ref.cohort_id +{@temporal} ? { + INNER JOIN #time_period time_period + ON covariate_cohort.cohort_start_date <= DATEADD(DAY, time_period.end_day, cohort.cohort_start_date) + WHERE CASE WHEN covariate_cohort.cohort_end_date IS NULL THEN covariate_cohort.cohort_start_date ELSE covariate_cohort.cohort_end_date END >= DATEADD(DAY, time_period.start_day, cohort.cohort_start_date) +} : { + WHERE covariate_cohort.cohort_start_date <= DATEADD(DAY, {@temporal_sequence} ? {@sequence_end_day} : {@end_day}, cohort.cohort_start_date) +{@start_day != 'anyTimePrior'} ? { + AND CASE WHEN covariate_cohort.cohort_end_date IS NULL THEN covariate_cohort.cohort_start_date ELSE covariate_cohort.cohort_end_date END >= DATEADD(DAY, {@temporal_sequence} ? {@sequence_start_day} : {@start_day}, cohort.cohort_start_date) +} +} +{@included_cov_table != ''} ? { AND CAST(covariate_cohort.cohort_definition_id AS BIGINT) * 1000 + @analysis_id IN (SELECT id FROM @included_cov_table)} +{@cohort_definition_id != -1} ? { AND cohort.cohort_definition_id IN (@cohort_definition_id)} +) by_row_id +{@aggregated} ? { +GROUP BY cohort_definition_id, + covariate_cohort_id +{@temporal | @temporal_sequence} ? { + ,time_id +} +} +; + +-- Reference construction +INSERT INTO #cov_ref ( + covariate_id, + covariate_name, + analysis_id, + concept_id + ) +SELECT covariate_id, +{@temporal | @temporal_sequence} ? { + CAST(CONCAT('cohort: ', cohort_name) AS VARCHAR(512)) AS covariate_name, +} : { +{@start_day == 'anyTimePrior'} ? { + CAST(CONCAT('cohort any time prior through @end_day days relative to index: ', cohort_name) AS VARCHAR(512)) AS covariate_name, +} : { + CAST(CONCAT('cohort during day @start_day through @end_day days relative to index: ', cohort_name) AS VARCHAR(512)) AS covariate_name, +} +} + @analysis_id AS analysis_id, + 0 AS concept_id +FROM ( + SELECT DISTINCT covariate_id + FROM @covariate_table + ) t1 +LEFT JOIN #covariate_cohort_ref + ON cohort_id = CAST((covariate_id - @analysis_id) / 1000 AS INT); + +INSERT INTO #analysis_ref ( + analysis_id, + analysis_name, + domain_id, +{!@temporal} ? { + start_day, + end_day, +} + is_binary, + missing_means_zero + ) +SELECT @analysis_id AS analysis_id, + CAST('@analysis_name' AS VARCHAR(512)) AS analysis_name, + CAST('cohort' AS VARCHAR(20)) AS domain_id, +{!@temporal} ? { +{@start_day == 'anyTimePrior'} ? { + CAST(NULL AS INT) AS start_day, +} : { + + {@temporal_sequence} ? {@sequence_start_day} : {@start_day} AS start_day, +} + {@temporal_sequence} ? {@sequence_end_day} : {@end_day} AS end_day, +} + CAST('Y' AS VARCHAR(1)) AS is_binary, + CAST(NULL AS VARCHAR(1)) AS missing_means_zero; diff --git a/inst/sql/sql_server/CohortBasedCountCovariates.sql b/inst/sql/sql_server/CohortBasedCountCovariates.sql new file mode 100644 index 00000000..60f5a42a --- /dev/null +++ b/inst/sql/sql_server/CohortBasedCountCovariates.sql @@ -0,0 +1,259 @@ +-- Feature construction +{@aggregated} ? { +DROP TABLE IF EXISTS #occ_count_data; +DROP TABLE IF EXISTS #occ_count_stats; +DROP TABLE IF EXISTS #occ_count_prep; +DROP TABLE IF EXISTS #occ_count_prep2; +} + +SELECT CAST(covariate_cohort.cohort_definition_id AS BIGINT) * 1000 + @analysis_id AS covariate_id, +{@temporal} ? { + time_id, +} +{@aggregated} ? { + COUNT(DISTINCT covariate_cohort.cohort_start_date) AS occurrence_count, + main_cohort.cohort_definition_id, + main_cohort.subject_id, + main_cohort.cohort_start_date +INTO #occ_count_data +} : { + COUNT(DISTINCT covariate_cohort.cohort_start_date) AS covariate_value, + main_cohort.@row_id_field AS row_id +INTO @covariate_table +} +FROM @cohort_table main_cohort +INNER JOIN @covariate_cohort_table covariate_cohort + ON main_cohort.subject_id = covariate_cohort.subject_id +INNER JOIN #covariate_cohort_ref covariate_cohort_ref + ON covariate_cohort.cohort_definition_id = covariate_cohort_ref.cohort_id +{@temporal} ? { +INNER JOIN #time_period time_period + ON covariate_cohort.cohort_start_date <= DATEADD(DAY, time_period.end_day, main_cohort.cohort_start_date) + AND CASE WHEN covariate_cohort.cohort_end_date IS NULL THEN covariate_cohort.cohort_start_date ELSE covariate_cohort.cohort_end_date END >= DATEADD(DAY, time_period.start_day, main_cohort.cohort_start_date) +} : { +WHERE covariate_cohort.cohort_start_date <= DATEADD(DAY, @end_day, main_cohort.cohort_start_date) +{@start_day != 'anyTimePrior'} ? { + AND CASE WHEN covariate_cohort.cohort_end_date IS NULL THEN covariate_cohort.cohort_start_date ELSE covariate_cohort.cohort_end_date END >= DATEADD(DAY, @start_day, main_cohort.cohort_start_date) +} +} +{@included_cov_table != ''} ? { AND CAST(covariate_cohort.cohort_definition_id AS BIGINT) * 1000 + @analysis_id IN (SELECT id FROM @included_cov_table)} +{@cohort_definition_id != -1} ? { AND main_cohort.cohort_definition_id IN (@cohort_definition_id)} +GROUP BY covariate_cohort.cohort_definition_id, +{@temporal} ? { + time_id, +} +{@aggregated} ? { + main_cohort.cohort_definition_id, + main_cohort.subject_id, + main_cohort.cohort_start_date +} : { + main_cohort.@row_id_field +} +; + +{@aggregated} ? { +WITH t1 AS ( + SELECT cohort_definition_id, + COUNT(*) AS cnt + FROM @cohort_table +{@cohort_definition_id != -1} ? { WHERE cohort_definition_id IN (@cohort_definition_id)} + GROUP BY cohort_definition_id + ), +t2 AS ( + SELECT cohort_definition_id, + COUNT(*) AS cnt, + covariate_id, +{@temporal} ? { + time_id, +} + MIN(occurrence_count) AS min_occurrence_count, + MAX(occurrence_count) AS max_occurrence_count, + SUM(CAST(occurrence_count AS BIGINT)) AS sum_occurrence_count, + SUM(CAST(occurrence_count AS BIGINT) * CAST(occurrence_count AS BIGINT)) AS squared_occurrence_count + FROM #occ_count_data + GROUP BY cohort_definition_id, +{@temporal} ? { + time_id, +} + covariate_id + ) +SELECT t1.cohort_definition_id, + CASE WHEN t2.cnt = t1.cnt THEN t2.min_occurrence_count ELSE 0 END AS min_value, + t2.max_occurrence_count AS max_value, + covariate_id, +{@temporal} ? { + time_id, +} + CAST(t2.sum_occurrence_count / (1.0 * t1.cnt) AS FLOAT) AS average_value, + CAST(CASE + WHEN t2.cnt = 1 THEN 0 + ELSE SQRT((1.0 * t2.cnt*t2.squared_occurrence_count - 1.0 * t2.sum_occurrence_count*t2.sum_occurrence_count) / (1.0 * t2.cnt*(1.0 * t2.cnt - 1))) + END AS FLOAT) AS standard_deviation, + t2.cnt AS count_value, + t1.cnt - t2.cnt AS count_no_value, + t1.cnt AS population_size +INTO #occ_count_stats +FROM t1 +INNER JOIN t2 + ON t1.cohort_definition_id = t2.cohort_definition_id; + +SELECT cohort_definition_id, +{@temporal} ? { + time_id, +} + occurrence_count, + COUNT(*) AS total, + covariate_id, +{@temporal} ? { + ROW_NUMBER() OVER (PARTITION BY cohort_definition_id, covariate_id, time_id ORDER BY occurrence_count) AS rn +} : { + ROW_NUMBER() OVER (PARTITION BY cohort_definition_id, covariate_id ORDER BY occurrence_count) AS rn +} +INTO #occ_count_prep +FROM #occ_count_data +GROUP BY cohort_definition_id, +{@temporal} ? { + time_id, +} + covariate_id, + occurrence_count; + +SELECT s.cohort_definition_id, +{@temporal} ? { + s.time_id, +} + s.covariate_id, + s.occurrence_count, + SUM(p.total) AS accumulated +INTO #occ_count_prep2 +FROM #occ_count_prep s +INNER JOIN #occ_count_prep p + ON p.rn <= s.rn + AND p.cohort_definition_id = s.cohort_definition_id + AND p.covariate_id = s.covariate_id +{@temporal} ? { + AND p.time_id = s.time_id +} +GROUP BY s.cohort_definition_id, +{@temporal} ? { + s.time_id, +} + s.covariate_id, + s.occurrence_count; + +SELECT o.covariate_id, + o.cohort_definition_id, +{@temporal} ? { + o.time_id, +} + o.count_value, + o.min_value, + o.max_value, + CAST(o.average_value AS FLOAT) average_value, + CAST(o.standard_deviation AS FLOAT) standard_deviation, + CASE + WHEN .50 * o.population_size < count_no_value THEN 0 + ELSE MIN(CASE WHEN p.accumulated + count_no_value >= .50 * o.population_size THEN occurrence_count END) + END AS median_value, + CASE + WHEN .10 * o.population_size < count_no_value THEN 0 + ELSE MIN(CASE WHEN p.accumulated + count_no_value >= .10 * o.population_size THEN occurrence_count END) + END AS p10_value, + CASE + WHEN .25 * o.population_size < count_no_value THEN 0 + ELSE MIN(CASE WHEN p.accumulated + count_no_value >= .25 * o.population_size THEN occurrence_count END) + END AS p25_value, + CASE + WHEN .75 * o.population_size < count_no_value THEN 0 + ELSE MIN(CASE WHEN p.accumulated + count_no_value >= .75 * o.population_size THEN occurrence_count END) + END AS p75_value, + CASE + WHEN .90 * o.population_size < count_no_value THEN 0 + ELSE MIN(CASE WHEN p.accumulated + count_no_value >= .90 * o.population_size THEN occurrence_count END) + END AS p90_value +INTO @covariate_table +FROM #occ_count_prep2 p +INNER JOIN #occ_count_stats o + ON p.covariate_id = o.covariate_id + AND p.cohort_definition_id = o.cohort_definition_id +{@temporal} ? { + AND p.time_id = o.time_id +} +{@included_cov_table != ''} ? {WHERE covariate_id IN (SELECT id FROM @included_cov_table)} +GROUP BY o.cohort_definition_id, +{@temporal} ? { + o.time_id, +} + o.count_value, + o.count_no_value, + o.min_value, + o.max_value, + o.average_value, + o.standard_deviation, + o.covariate_id, + o.population_size; + +TRUNCATE TABLE #occ_count_data; +DROP TABLE #occ_count_data; + +TRUNCATE TABLE #occ_count_stats; +DROP TABLE #occ_count_stats; + +TRUNCATE TABLE #occ_count_prep; +DROP TABLE #occ_count_prep; + +TRUNCATE TABLE #occ_count_prep2; +DROP TABLE #occ_count_prep2; +} + +-- Reference construction +INSERT INTO #cov_ref ( + covariate_id, + covariate_name, + analysis_id, + concept_id + ) +SELECT covariate_id, +{@temporal | @temporal_sequence} ? { + CAST(CONCAT('cohort count: ', cohort_name) AS VARCHAR(512)) AS covariate_name, +} : { +{@start_day == 'anyTimePrior'} ? { + CAST(CONCAT('cohort count any time prior through @end_day days relative to index: ', cohort_name) AS VARCHAR(512)) AS covariate_name, +} : { + CAST(CONCAT('cohort count during day @start_day through @end_day days relative to index: ', cohort_name) AS VARCHAR(512)) AS covariate_name, +} +} + @analysis_id AS analysis_id, + 0 AS concept_id +FROM ( + SELECT DISTINCT covariate_id + FROM @covariate_table + ) t1 +LEFT JOIN #covariate_cohort_ref + ON cohort_id = CAST((covariate_id - @analysis_id) / 1000 AS INT); + +INSERT INTO #analysis_ref ( + analysis_id, + analysis_name, + domain_id, +{!@temporal} ? { + start_day, + end_day, +} + is_binary, + missing_means_zero + ) +SELECT @analysis_id AS analysis_id, + CAST('@analysis_name' AS VARCHAR(512)) AS analysis_name, + CAST('cohort' AS VARCHAR(20)) AS domain_id, +{!@temporal} ? { +{@start_day == 'anyTimePrior'} ? { + CAST(NULL AS INT) AS start_day, +} : { + + {@temporal_sequence} ? {@sequence_start_day} : {@start_day} AS start_day, +} + {@temporal_sequence} ? {@sequence_end_day} : {@end_day} AS end_day, +} + CAST('N' AS VARCHAR(1)) AS is_binary, + CAST('Y' AS VARCHAR(1)) AS missing_means_zero; diff --git a/inst/sql/sql_server/covariateCohorts.sql b/inst/sql/sql_server/covariateCohorts.sql new file mode 100644 index 00000000..87d60a9f --- /dev/null +++ b/inst/sql/sql_server/covariateCohorts.sql @@ -0,0 +1,56 @@ +/************************ +File covariateCohorts.sql +*************************/ +DROP TABLE IF EXISTS @cohort_database_schema.@cohort_table; + +CREATE TABLE @cohort_database_schema.@cohort_table ( + cohort_definition_id INT, + subject_id BIGINT, + cohort_start_date DATE, + cohort_end_date DATE + ); + +INSERT INTO @cohort_database_schema.@cohort_table ( + cohort_definition_id, + subject_id, + cohort_start_date, + cohort_end_date + ) +SELECT 1, + person_id, + MIN(drug_era_start_date), + MIN(drug_era_end_date) +FROM @cdm_database_schema.drug_era +WHERE drug_concept_id = 1124300 --diclofenac +GROUP BY person_id; + +INSERT INTO @cohort_database_schema.@cohort_table ( + cohort_definition_id, + subject_id, + cohort_start_date, + cohort_end_date + ) +SELECT 2, + condition_occurrence.person_id, + MIN(condition_start_date), + MIN(observation_period_end_date) +FROM @cdm_database_schema.condition_occurrence +INNER JOIN @cdm_database_schema.drug_exposure + ON condition_occurrence.person_id = drug_exposure.person_id + AND drug_exposure_start_date >= condition_start_date + AND drug_exposure_start_date < DATEADD(DAY, 30, condition_start_date) +INNER JOIN @cdm_database_schema.observation_period + ON condition_occurrence.person_id = observation_period.person_id + AND condition_start_date >= observation_period_start_date + AND condition_start_date <= observation_period_end_date +WHERE condition_concept_id IN ( + SELECT descendant_concept_id + FROM @cdm_database_schema.concept_ancestor + WHERE ancestor_concept_id = 201826 -- Type 2 diabetes mellitus + ) + AND drug_concept_id IN ( + SELECT descendant_concept_id + FROM @cdm_database_schema.concept_ancestor + WHERE ancestor_concept_id = 21600712 -- DRUGS USED IN DIABETES (ATC A10) + ) +GROUP BY condition_occurrence.person_id; \ No newline at end of file diff --git a/java/org/ohdsi/featureExtraction/FeatureExtraction.java b/java/org/ohdsi/featureExtraction/FeatureExtraction.java index 0661aed7..ae259058 100644 --- a/java/org/ohdsi/featureExtraction/FeatureExtraction.java +++ b/java/org/ohdsi/featureExtraction/FeatureExtraction.java @@ -30,7 +30,6 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.Set; import java.util.concurrent.locks.ReentrantLock; @@ -76,20 +75,20 @@ public class FeatureExtraction { private static String ADD_DESCENDANTS_SQL = "SELECT descendant_concept_id AS id\nINTO @target_temp\nFROM @cdm_database_schema.concept_ancestor\nINNER JOIN @source_temp\n\tON ancestor_concept_id = id;\n\n"; public static void main(String[] args) { - //init("C:/Users/mschuemi/git/FeatureExtraction/inst"); + init("C:/Users/mschuemi/git/FeatureExtraction/inst"); // init("C:/R/R-3.3.1/library/FeatureExtraction"); - init("D:/git/OHDSI/FeatureExtraction/inst"); +// init("D:/git/OHDSI/FeatureExtraction/inst"); // System.out.println(convertSettingsPrespecToDetails("{\"temporal\":false,\"DemographicsGender\":true,\"DemographicsAge\":true,\"longTermStartDays\":-365,\"mediumTermStartDays\":-180,\"shortTermStartDays\":-30,\"endDays\":0,\"includedCovariateConceptIds\":[],\"addDescendantsToInclude\":false,\"excludedCovariateConceptIds\":[1,2,3],\"addDescendantsToExclude\":false,\"includedCovariateIds\":[]}")); // System.out.println(getDefaultPrespecAnalyses()); // // System.out.println(getDefaultPrespecAnalyses()); // //String settings = getDefaultPrespecTemporalAnalyses(); - String settings = getDefaultPrespecTemporalSequenceAnalyses(); +// String settings = getDefaultPrespecTemporalSequenceAnalyses(); // String settings = convertSettingsPrespecToDetails(getDefaultPrespecTemporalAnalyses()); // System.out.println(convertSettingsPrespecToDetails(getDefaultPrespecAnalyses())); - // String settings = - // "{\"temporal\":false,\"analyses\":[{\"analysisId\":301,\"sqlFileName\":\"DomainConcept.sql\",\"parameters\":{\"analysisId\":301,\"startDay\":-365,\"endDay\":0,\"inpatient\":\"\",\"domainTable\":\"drug_exposure\",\"domainConceptId\":\"drug_concept_id\",\"domainStartDate\":\"drug_exposure_start_date\",\"domainEndDate\":\"drug_exposure_start_date\"},\"addDescendantsToExclude\":true,\"includedCovariateConceptIds\":[1,2,21600537410],\"excludedCovariateConceptIds\":{},\"addDescendantsToInclude\":true,\"includedCovariateIds\":12301}]}"; + String settings = + "{\"temporal\":false,\"temporalSequence\":false,\"analyses\":[{\"analysisId\":999,\"sqlFileName\":\"CohortBasedBinaryCovariates.sql\",\"parameters\":{\"covariateCohortTable\":\"cohort\",\"analysisId\":999,\"analysisName\":\"Cohort\",\"startDay\":-365,\"endDay\":0},\"includedCovariateConceptIds\":[],\"addDescendantsToInclude\":false,\"excludedCovariateConceptIds\":[],\"addDescendantsToExclude\":false,\"includedCovariateIds\":[]}]}"; // String settings = convertSettingsPrespecToDetails(getDefaultPrespecAnalyses()); System.out.println(createSql(settings, true, "#temp_cohort", "row_id", -1, "cdm_synpuf")); // System.out.println(createSql(getDefaultPrespecAnalyses(), true, "#temp_cohort", "row_id", -1, "cdm_synpuf")); @@ -115,6 +114,7 @@ public static void init(String packageFolder) { nameToPrespecAnalysis = loadPrespecAnalysis(packageFolder, "PrespecAnalyses.csv"); nameToPrespecTemporalAnalysis = loadPrespecAnalysis(packageFolder, "PrespecTemporalAnalyses.csv"); nameToPrespecTemporalSequenceAnalysis = loadPrespecAnalysis(packageFolder, "PrespecTemporalSequenceAnalyses.csv"); + loadPrespecAnalysis(packageFolder, "OtherSqlToLoad.csv"); // Called for side-effect of adding SQL filenames to nameToSql keys. loadTemplateSql(packageFolder); createCovRefTableSql = loadSqlFile(packageFolder, "CreateCovAnalysisRefTables.sql"); } diff --git a/man/createCohortBasedCovariateSettings.Rd b/man/createCohortBasedCovariateSettings.Rd new file mode 100644 index 00000000..23bde00c --- /dev/null +++ b/man/createCohortBasedCovariateSettings.Rd @@ -0,0 +1,54 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/GetCovariatesFromOtherCohorts.R +\name{createCohortBasedCovariateSettings} +\alias{createCohortBasedCovariateSettings} +\title{Create settings for covariates based on other cohorts} +\usage{ +createCohortBasedCovariateSettings( + analysisId, + covariateCohortDatabaseSchema = NULL, + covariateCohortTable = NULL, + covariateCohorts, + valueType = "binary", + startDay = -365, + endDay = 0, + includedCovariateIds = c(), + warnOnAnalysisIdOverlap = TRUE +) +} +\arguments{ +\item{analysisId}{A unique identifier for this analysis.} + +\item{covariateCohortDatabaseSchema}{The database schema where the cohorts used to define the covariates +can be found. If set to \code{NULL}, the database schema will be +guessed, for example using the same one as for the main cohorts.} + +\item{covariateCohortTable}{The table where the cohorts used to define the covariates +can be found. If set to \code{NULL}, the table will be +guessed, for example using the same one as for the main cohorts.} + +\item{covariateCohorts}{A data frame with at least two columns: 'cohortId' and 'cohortName'. The +cohort ID should correspond to the \code{cohort_definition_id} of the cohort +to use for creating a covariate.} + +\item{valueType}{Either 'binary' or 'count'. When \code{valueType = 'count'}, the covariate +value will be the number of times the cohort was observed in the window.} + +\item{startDay}{What is the start day (relative to the index date) of the covariate window?} + +\item{endDay}{What is the end day (relative to the index date) of the covariate window?} + +\item{includedCovariateIds}{A list of covariate IDs that should be restricted to.} + +\item{warnOnAnalysisIdOverlap}{Warn if the provided `analysisId` overlaps with any predefined analysis as +available in the `createCoverateSettings()` function.} +} +\value{ +An object of type \code{covariateSettings}, to be used in other functions. +} +\description{ +Create settings for covariates based on other cohorts +} +\details{ +Creates an object specifying covariates to be constructed based on the presence of other cohorts. +} diff --git a/man/createCohortBasedTemporalCovariateSettings.Rd b/man/createCohortBasedTemporalCovariateSettings.Rd new file mode 100644 index 00000000..166c73fa --- /dev/null +++ b/man/createCohortBasedTemporalCovariateSettings.Rd @@ -0,0 +1,62 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/GetCovariatesFromOtherCohorts.R +\name{createCohortBasedTemporalCovariateSettings} +\alias{createCohortBasedTemporalCovariateSettings} +\title{Create settings for temporal covariates based on other cohorts} +\usage{ +createCohortBasedTemporalCovariateSettings( + analysisId, + covariateCohortDatabaseSchema = NULL, + covariateCohortTable = NULL, + covariateCohorts, + valueType = "binary", + temporalStartDays = -365:-1, + temporalEndDays = -365:-1, + includedCovariateIds = c(), + warnOnAnalysisIdOverlap = TRUE +) +} +\arguments{ +\item{analysisId}{A unique identifier for this analysis.} + +\item{covariateCohortDatabaseSchema}{The database schema where the cohorts used to define the covariates +can be found. If set to \code{NULL}, the database schema will be +guessed, for example using the same one as for the main cohorts.} + +\item{covariateCohortTable}{The table where the cohorts used to define the covariates +can be found. If set to \code{NULL}, the table will be +guessed, for example using the same one as for the main cohorts.} + +\item{covariateCohorts}{A data frame with at least two columns: 'cohortId' and 'cohortName'. The +cohort ID should correspond to the \code{cohort_definition_id} of the cohort +to use for creating a covariate.} + +\item{valueType}{Either 'binary' or 'count'. When \code{valueType = 'count'}, the covariate +value will be the number of times the cohort was observed in the window.} + +\item{temporalStartDays}{A list of integers representing the start of a time +period, relative to the index date. 0 indicates the +index date, -1 indicates the day before the index +date, etc. The start day is included in the time +period.} + +\item{temporalEndDays}{A list of integers representing the end of a time +period, relative to the index date. 0 indicates the +index date, -1 indicates the day before the index +date, etc. The end day is included in the time +period.} + +\item{includedCovariateIds}{A list of covariate IDs that should be restricted to.} + +\item{warnOnAnalysisIdOverlap}{Warn if the provided `analysisId` overlaps with any predefined analysis as +available in the `createTemporalCovariateSettings()` function.} +} +\value{ +An object of type \code{covariateSettings}, to be used in other functions. +} +\description{ +Create settings for temporal covariates based on other cohorts +} +\details{ +Creates an object specifying temporal covariates to be constructed based on the presence of other cohorts. +} diff --git a/man/getDbCohortBasedCovariatesData.Rd b/man/getDbCohortBasedCovariatesData.Rd new file mode 100644 index 00000000..0633b1e6 --- /dev/null +++ b/man/getDbCohortBasedCovariatesData.Rd @@ -0,0 +1,73 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/GetCovariatesFromOtherCohorts.R +\name{getDbCohortBasedCovariatesData} +\alias{getDbCohortBasedCovariatesData} +\title{Get covariate information from the database based on other cohorts} +\usage{ +getDbCohortBasedCovariatesData( + connection, + oracleTempSchema = NULL, + cdmDatabaseSchema, + cohortTable = "#cohort_person", + cohortId = -1, + cdmVersion = "5", + rowIdField = "subject_id", + covariateSettings, + aggregated = FALSE +) +} +\arguments{ +\item{connection}{A connection to the server containing the schema as created using the +\code{connect} function in the \code{DatabaseConnector} package.} + +\item{oracleTempSchema}{A schema where temp tables can be created in Oracle.} + +\item{cdmDatabaseSchema}{The name of the database schema that contains the OMOP CDM instance. +Requires read permissions to this database. On SQL Server, this should +specifiy both the database and the schema, so for example +'cdm_instance.dbo'.} + +\item{cohortTable}{Name of the table holding the cohort for which we want to construct +covariates. If it is a temp table, the name should have a hash prefix, +e.g. '#temp_table'. If it is a non-temp table, it should include the +database schema, e.g. 'cdm_database.cohort'.} + +\item{cohortId}{For which cohort ID should covariates be constructed? If set to -1, +covariates will be constructed for all cohorts in the specified cohort +table.} + +\item{cdmVersion}{The version of the Common Data Model used. Currently only +\code{cdmVersion = "5"} is supported.} + +\item{rowIdField}{The name of the field in the cohort temp table that is to be used as the +row_id field in the output table. This can be especially usefull if there +is more than one period per person.} + +\item{covariateSettings}{An object of type \code{covariateSettings} as created using the +\code{\link{createCohortBasedCovariateSettings}} or +\code{\link{createCohortBasedTemporalCovariateSettings}} functions.} + +\item{aggregated}{Should aggregate statistics be computed instead of covariates per +cohort entry?} +} +\value{ +Returns an object of type \code{CovariateData}, which is an Andromeda object containing information on the baseline covariates. +Information about multiple outcomes can be captured at once for efficiency reasons. This object is +a list with the following components: \describe{ \item{covariates}{An ffdf object listing the +baseline covariates per person in the cohorts. This is done using a sparse representation: +covariates with a value of 0 are omitted to save space. The covariates object will have three +columns: rowId, covariateId, and covariateValue. The rowId is usually equal to the person_id, +unless specified otherwise in the rowIdField argument.} \item{covariateRef}{A table +describing the covariates that have been extracted.} }. The CovariateData object will also have a \code{metaData} attribute, a list of objects with +information on how the covariateData object was constructed. +} +\description{ +Constructs covariates using other cohorts. +} +\details{ +This function uses the data in the CDM to construct a large set of covariates for the provided +cohort. The cohort is assumed to be in an existing temp table with these fields: 'subject_id', +'cohort_definition_id', 'cohort_start_date'. Optionally, an extra field can be added containing the +unique identifier that will be used as rowID in the output. Typically, users don't call this +function directly but rather use the \code{\link{getDbCovariateData}} function instead. +} diff --git a/tests/testthat/setup.R b/tests/testthat/setup.R index 9d08e691..829100d1 100644 --- a/tests/testthat/setup.R +++ b/tests/testthat/setup.R @@ -16,8 +16,6 @@ withr::defer({ # Get all environment variables to determine which DBMS to use for testing -# AGS: At the moment, Oracle & SQL Server have some issues with the structure -# of the visit_detail table so commenting those tests out for now. runTestsOnPostgreSQL <- !(Sys.getenv("CDM5_POSTGRESQL_USER") == "" & Sys.getenv("CDM5_POSTGRESQL_PASSWORD") == "" & Sys.getenv("CDM5_POSTGRESQL_SERVER") == "" & Sys.getenv("CDM5_POSTGRESQL_CDM_SCHEMA") == "" & Sys.getenv("CDM5_POSTGRESQL_OHDSI_SCHEMA") == "") runTestsOnSQLServer <- !(Sys.getenv("CDM5_SQL_SERVER_USER") == "" & Sys.getenv("CDM5_SQL_SERVER_PASSWORD") == "" & Sys.getenv("CDM5_SQL_SERVER_SERVER") == "" & Sys.getenv("CDM5_SQL_SERVER_CDM_SCHEMA") == "" & Sys.getenv("CDM5_SQL_SERVER_OHDSI_SCHEMA") == "") runTestsOnOracle <- !(Sys.getenv("CDM5_ORACLE_USER") == "" & Sys.getenv("CDM5_ORACLE_PASSWORD") == "" & Sys.getenv("CDM5_ORACLE_SERVER") == "" & Sys.getenv("CDM5_ORACLE_CDM_SCHEMA") == "" & Sys.getenv("CDM5_ORACLE_OHDSI_SCHEMA") == "") diff --git a/tests/testthat/test-GetCohortBasedCovariates.R b/tests/testthat/test-GetCohortBasedCovariates.R new file mode 100644 index 00000000..ce4bfa3a --- /dev/null +++ b/tests/testthat/test-GetCohortBasedCovariates.R @@ -0,0 +1,822 @@ +# View coverage for this file using +# library(testthat); library(FeatureExtraction) +# covr::file_report(covr::file_coverage("R/GetCovariates.R", "tests/testthat/test-GetCohortBasedCovariates.R")) +library(testthat) + + +covariateCohorts <- data.frame(cohortId = c(101, 102), + cohortName = c("Foo", "Bar")) + +createCohortBasedCovariateTestData <- function(connection, + databaseSchema, + cohortTableName) { + cohort <- data.frame(cohortDefinitionId = c(1, 1, 101, 101), + cohortStartDate = as.Date(c("2000-02-01", "2000-01-01", "2000-01-01", "2000-01-02")), + cohortEndDate = as.Date(c("2000-02-14", "2000-01-14", "2000-01-01", "2000-01-02")), + subjectId = c(1, 2, 1, 1)) + tempTable <- substr(cohortTableName, 1, 1) == "#" + if (tempTable) { + DatabaseConnector::insertTable(connection = connection, + tableName = cohortTableName, + data = cohort, + dropTableIfExists = TRUE, + tempTable = tempTable, + createTable = TRUE, + progressBar = FALSE, + camelCaseToSnakeCase = TRUE) + } else { + DatabaseConnector::insertTable(connection = connection, + databaseSchema = databaseSchema, + tableName = cohortTableName, + data = cohort, + dropTableIfExists = TRUE, + tempTable = tempTable, + createTable = TRUE, + progressBar = FALSE, + camelCaseToSnakeCase = TRUE) + } +} + +dropCohortBasedCovariateTestData <- function(connection, + databaseSchema, + cohortTableName) { + # Handle temp table + if (substr(cohortTableName, 1, 1) == "#") { + DatabaseConnector::renderTranslateExecuteSql(connection = connection, + sql = "DROP TABLE IF EXISTS @cohort_table;", + progressBar = FALSE, + reportOverallTime = FALSE, + cohort_table = cohortTableName) + } else { + DatabaseConnector::renderTranslateExecuteSql(connection = connection, + sql = "DROP TABLE IF EXISTS @database_schema.@cohort_table;", + progressBar = FALSE, + reportOverallTime = FALSE, + database_schema = databaseSchema, + cohort_table = cohortTableName) + } +} + +# Database specific tests --------------- +runCohortBasedBinaryNonAggTest <- function(connection, cdmDatabaseSchema, ohdsiDatabaseSchema, cohortTable) { + createCohortBasedCovariateTestData(connection = connection, + databaseSchema = ohdsiDatabaseSchema, + cohortTableName = cohortTable) + on.exit(dropCohortBasedCovariateTestData(connection = connection, + databaseSchema = ohdsiDatabaseSchema, + cohortTableName = cohortTable)) + settings <- createCohortBasedCovariateSettings(analysisId = 999, + covariateCohorts = covariateCohorts, + valueType = "binary") + + tempTable <- substr(cohortTable, 1, 1) == "#" + covs <- getDbCovariateData(connection = connection, + oracleTempSchema = getOption("sqlRenderTempEmulationSchema"), + cdmDatabaseSchema = cdmDatabaseSchema, + cohortDatabaseSchema = ohdsiDatabaseSchema, + cohortTableIsTemp = tempTable, + cohortTable = cohortTable, + cohortId = 1, + cdmVersion = "5", + rowIdField = "subject_id", + covariateSettings = settings, + aggregated = FALSE) + + covariates <- dplyr::collect(covs$covariates) + + expectedCovariates <- data.frame(rowId = 1, + covariateId = 101999, + covariateValue = 1) + expect_equivalent(covariates, expectedCovariates) +} + +runCohortBasedBinaryAggTest <- function(connection, cdmDatabaseSchema, ohdsiDatabaseSchema, cohortTable) { + createCohortBasedCovariateTestData(connection = connection, + databaseSchema = ohdsiDatabaseSchema, + cohortTableName = cohortTable) + on.exit(dropCohortBasedCovariateTestData(connection = connection, + databaseSchema = ohdsiDatabaseSchema, + cohortTableName = cohortTable)) + settings <- createCohortBasedCovariateSettings(analysisId = 999, + covariateCohorts = covariateCohorts, + valueType = "binary") + + tempTable <- substr(cohortTable, 1, 1) == "#" + covs <- getDbCovariateData(connection = connection, + oracleTempSchema = getOption("sqlRenderTempEmulationSchema"), + cdmDatabaseSchema = cdmDatabaseSchema, + cohortDatabaseSchema = ohdsiDatabaseSchema, + cohortTableIsTemp = tempTable, + cohortTable = cohortTable, + cohortId = 1, + cdmVersion = "5", + rowIdField = "subject_id", + covariateSettings = settings, + aggregated = TRUE) + + covariates <- dplyr::collect(covs$covariates) + + expectedCovariates <- data.frame(cohortDefinitionId = 1, + covariateId = 101999, + sumValue = 1, + averageValue = 0.5) + expect_equivalent(covariates, expectedCovariates) +} + +runCohortBasedBinaryNonAggTemporalTest <- function(connection, cdmDatabaseSchema, ohdsiDatabaseSchema, cohortTable) { + createCohortBasedCovariateTestData(connection = connection, + databaseSchema = ohdsiDatabaseSchema, + cohortTableName = cohortTable) + + on.exit(dropCohortBasedCovariateTestData(connection = connection, + databaseSchema = ohdsiDatabaseSchema, + cohortTableName = cohortTable)) + + settings <- createCohortBasedTemporalCovariateSettings(analysisId = 999, + covariateCohorts = covariateCohorts) + tempTable <- substr(cohortTable, 1, 1) == "#" + covs <- getDbCovariateData(connection = connection, + oracleTempSchema = getOption("sqlRenderTempEmulationSchema"), + cdmDatabaseSchema = cdmDatabaseSchema, + cohortDatabaseSchema = ohdsiDatabaseSchema, + cohortTableIsTemp = tempTable, + cohortTable = cohortTable, + cohortId = 1, + cdmVersion = "5", + rowIdField = "subject_id", + covariateSettings = settings, + aggregated = FALSE) + + covariates <- dplyr::collect(covs$covariates) + covariates <- dplyr::arrange(covariates, timeId) + + expectedCovariates <- data.frame(rowId = c(1, 1), + covariateId = c(101999, 101999), + covariateValue = c(1,1), + timeId = c(335,336)) + expect_equivalent(covariates, expectedCovariates) +} + +runCohortBasedBinaryAggTemporalTest <- function(connection, cdmDatabaseSchema, ohdsiDatabaseSchema, cohortTable) { + createCohortBasedCovariateTestData(connection = connection, + databaseSchema = ohdsiDatabaseSchema, + cohortTableName = cohortTable) + + on.exit(dropCohortBasedCovariateTestData(connection = connection, + databaseSchema = ohdsiDatabaseSchema, + cohortTableName = cohortTable)) + + settings <- createCohortBasedTemporalCovariateSettings(analysisId = 999, + covariateCohorts = covariateCohorts) + tempTable <- substr(cohortTable, 1, 1) == "#" + covs <- getDbCovariateData(connection = connection, + oracleTempSchema = getOption("sqlRenderTempEmulationSchema"), + cdmDatabaseSchema = cdmDatabaseSchema, + cohortDatabaseSchema = ohdsiDatabaseSchema, + cohortTableIsTemp = tempTable, + cohortTable = cohortTable, + cohortId = 1, + cdmVersion = "5", + rowIdField = "subject_id", + covariateSettings = settings, + aggregated = TRUE) + + covariates <- dplyr::collect(covs$covariates) + covariates <- dplyr::arrange(covariates, timeId) + + expectedCovariates <- data.frame(cohortDefinitionId = c(1, 1), + covariateId = c(101999, 101999), + timeId = c(335,336), + sumValue = c(1,1), + averageValue = c(0.5, 0.5)) + expect_equivalent(covariates, expectedCovariates) +} + +runCohortBasedCountsNonAggTest <- function(connection, cdmDatabaseSchema, ohdsiDatabaseSchema, cohortTable) { + createCohortBasedCovariateTestData(connection = connection, + databaseSchema = ohdsiDatabaseSchema, + cohortTableName = cohortTable) + + on.exit(dropCohortBasedCovariateTestData(connection = connection, + databaseSchema = ohdsiDatabaseSchema, + cohortTableName = cohortTable)) + + settings <- createCohortBasedCovariateSettings(analysisId = 999, + covariateCohorts = covariateCohorts, + valueType = "count") + + tempTable <- substr(cohortTable, 1, 1) == "#" + covs <- getDbCovariateData(connection = connection, + oracleTempSchema = getOption("sqlRenderTempEmulationSchema"), + cdmDatabaseSchema = cdmDatabaseSchema, + cohortDatabaseSchema = ohdsiDatabaseSchema, + cohortTable = cohortTable, + cohortTableIsTemp = tempTable, + cohortId = 1, + cdmVersion = "5", + rowIdField = "subject_id", + covariateSettings = settings, + aggregated = FALSE) + + covariates <- dplyr::collect(covs$covariates) + + expectedCovariates <- data.frame(rowId = 1, + covariateId = 101999, + covariateValue = 2) + expect_equivalent(covariates, expectedCovariates) +} + +runCohortBasedCountsAggTest <- function(connection, cdmDatabaseSchema, ohdsiDatabaseSchema, cohortTable) { + createCohortBasedCovariateTestData(connection = connection, + databaseSchema = ohdsiDatabaseSchema, + cohortTableName = cohortTable) + + on.exit(dropCohortBasedCovariateTestData(connection = connection, + databaseSchema = ohdsiDatabaseSchema, + cohortTableName = cohortTable)) + + settings <- createCohortBasedCovariateSettings(analysisId = 999, + covariateCohorts = covariateCohorts, + valueType = "count") + + tempTable <- substr(cohortTable, 1, 1) == "#" + covs <- getDbCovariateData(connection = connection, + oracleTempSchema = getOption("sqlRenderTempEmulationSchema"), + cdmDatabaseSchema = cdmDatabaseSchema, + cohortDatabaseSchema = ohdsiDatabaseSchema, + cohortTableIsTemp = tempTable, + cohortTable = cohortTable, + cohortId = 1, + cdmVersion = "5", + rowIdField = "subject_id", + covariateSettings = settings, + aggregated = TRUE) + + covariatesContinuous <- dplyr::collect(covs$covariatesContinuous) + + expectedCovariates <- data.frame(cohortDefinitionId = 1, + covariateId = 101999, + countValue = 1, + minValue = 0, + maxValue = 2, + averageValue = 1) + expect_equivalent(covariatesContinuous[, names(expectedCovariates)], expectedCovariates) +} + +runCohortBasedCountsNonAggTemporalTest <- function(connection, cdmDatabaseSchema, ohdsiDatabaseSchema, cohortTable) { + createCohortBasedCovariateTestData(connection = connection, + databaseSchema = ohdsiDatabaseSchema, + cohortTableName = cohortTable) + + on.exit(dropCohortBasedCovariateTestData(connection = connection, + databaseSchema = ohdsiDatabaseSchema, + cohortTableName = cohortTable)) + + settings <- createCohortBasedTemporalCovariateSettings(analysisId = 999, + covariateCohorts = covariateCohorts, + valueType = "count") + tempTable <- substr(cohortTable, 1, 1) == "#" + covs <- getDbCovariateData(connection = connection, + oracleTempSchema = getOption("sqlRenderTempEmulationSchema"), + cdmDatabaseSchema = cdmDatabaseSchema, + cohortDatabaseSchema = ohdsiDatabaseSchema, + cohortTableIsTemp = tempTable, + cohortTable = cohortTable, + cohortId = 1, + cdmVersion = "5", + rowIdField = "subject_id", + covariateSettings = settings, + aggregated = FALSE) + + covariates <- dplyr::collect(covs$covariates) + covariates <- dplyr::arrange(covariates, timeId) + + expectedCovariates <- data.frame(rowId = c(1, 1), + covariateId = c(101999, 101999), + covariateValue = c(1,1), + timeId = c(335,336)) + expect_equivalent(covariates, expectedCovariates) +} + +runCohortBasedCountsAggTemporalTest <- function(connection, cdmDatabaseSchema, ohdsiDatabaseSchema, cohortTable) { + createCohortBasedCovariateTestData(connection = connection, + databaseSchema = ohdsiDatabaseSchema, + cohortTableName = cohortTable) + + on.exit(dropCohortBasedCovariateTestData(connection = connection, + databaseSchema = ohdsiDatabaseSchema, + cohortTableName = cohortTable)) + + settings <- createCohortBasedTemporalCovariateSettings(analysisId = 999, + covariateCohorts = covariateCohorts, + valueType = "count") + tempTable <- substr(cohortTable, 1, 1) == "#" + covs <- getDbCovariateData(connection = connection, + oracleTempSchema = getOption("sqlRenderTempEmulationSchema"), + cdmDatabaseSchema = cdmDatabaseSchema, + cohortDatabaseSchema = ohdsiDatabaseSchema, + cohortTable = cohortTable, + cohortTableIsTemp = tempTable, + cohortId = 1, + cdmVersion = "5", + rowIdField = "subject_id", + covariateSettings = settings, + aggregated = TRUE) + + covariatesContinuous <- dplyr::collect(covs$covariatesContinuous) + covariatesContinuous <- dplyr::arrange(covariatesContinuous, timeId) + + expectedCovariates <- data.frame(cohortDefinitionId = 1, + covariateId = 101999, + countValue = 1, + minValue = 0, + maxValue = 1, + averageValue = c(0.5, 0.5), + timeId = c(335,336)) + expect_equivalent(covariatesContinuous[, names(expectedCovariates)], expectedCovariates) +} + +runCohortBasedCountsAggMultiCohortTest <- function(connection, cdmDatabaseSchema, ohdsiDatabaseSchema, cohortTable) { + createCohortBasedCovariateTestData(connection = connection, + databaseSchema = ohdsiDatabaseSchema, + cohortTableName = cohortTable) + + on.exit(dropCohortBasedCovariateTestData(connection = connection, + databaseSchema = ohdsiDatabaseSchema, + cohortTableName = cohortTable)) + + settings <- createCohortBasedCovariateSettings(analysisId = 999, + covariateCohorts = covariateCohorts, + valueType = "count") + + tempTable <- substr(cohortTable, 1, 1) == "#" + covs <- getDbCovariateData(connection = connection, + oracleTempSchema = getOption("sqlRenderTempEmulationSchema"), + cdmDatabaseSchema = cdmDatabaseSchema, + cohortDatabaseSchema = ohdsiDatabaseSchema, + cohortTableIsTemp = tempTable, + cohortTable = cohortTable, + cohortId = c(1, 101), + cdmVersion = "5", + rowIdField = "subject_id", + covariateSettings = settings, + aggregated = TRUE) + covariatesContinuous <- dplyr::collect(covs$covariatesContinuous) + covariatesContinuous <- dplyr::arrange(covariatesContinuous, cohortDefinitionId) + expectedCovariates <- data.frame(cohortDefinitionId = c(1, 101), + covariateId = c(101999, 101999), + countValue = c(1, 2), + minValue = c(0, 1), + maxValue = c(2, 2), + averageValue = c(1, 1.5)) + expect_equivalent(covariatesContinuous[, names(expectedCovariates)], expectedCovariates) +} + +# Eunomia tests ------------ +test_that("Cohort-based covariates: binary, non-aggregated on Eunomia", { + skip_if_not(runTestsOnEunomia) + runCohortBasedBinaryNonAggTest(connection = eunomiaConnection, + cdmDatabaseSchema = eunomiaCdmDatabaseSchema, + ohdsiDatabaseSchema = eunomiaOhdsiDatabaseSchema, + cohortTable = "cohort_cov") +}) + +test_that("Cohort-based covariates: binary, aggregated on Eunomia", { + skip_if_not(runTestsOnEunomia) + runCohortBasedBinaryAggTest(connection = eunomiaConnection, + cdmDatabaseSchema = eunomiaCdmDatabaseSchema, + ohdsiDatabaseSchema = eunomiaOhdsiDatabaseSchema, + cohortTable = "cohort_cov") +}) + +test_that("Cohort-based covariates: binary, non-aggregated, temporal on Eunomia", { + skip_if_not(runTestsOnEunomia) + runCohortBasedBinaryNonAggTemporalTest(connection = eunomiaConnection, + cdmDatabaseSchema = eunomiaCdmDatabaseSchema, + ohdsiDatabaseSchema = eunomiaOhdsiDatabaseSchema, + cohortTable = "cohort_cov") +}) + +test_that("Cohort-based covariates: binary, aggregated, temporal on Eunomia", { + skip_if_not(runTestsOnEunomia) + runCohortBasedBinaryAggTemporalTest(connection = eunomiaConnection, + cdmDatabaseSchema = eunomiaCdmDatabaseSchema, + ohdsiDatabaseSchema = eunomiaOhdsiDatabaseSchema, + cohortTable = "cohort_cov") +}) + +test_that("Cohort-based covariates: counts, non-aggregated on Eunomia", { + skip_if_not(runTestsOnEunomia) + runCohortBasedCountsNonAggTest(connection = eunomiaConnection, + cdmDatabaseSchema = eunomiaCdmDatabaseSchema, + ohdsiDatabaseSchema = eunomiaOhdsiDatabaseSchema, + cohortTable = "cohort_cov") +}) + +test_that("Cohort-based covariates: counts, aggregated on Eunomia", { + skip_if_not(runTestsOnEunomia) + runCohortBasedCountsAggTest(connection = eunomiaConnection, + cdmDatabaseSchema = eunomiaCdmDatabaseSchema, + ohdsiDatabaseSchema = eunomiaOhdsiDatabaseSchema, + cohortTable = "cohort_cov") +}) + +test_that("Cohort-based covariates: counts, non-aggregated, temporal on Eunomia", { + skip_if_not(runTestsOnEunomia) + runCohortBasedCountsNonAggTemporalTest(connection = eunomiaConnection, + cdmDatabaseSchema = eunomiaCdmDatabaseSchema, + ohdsiDatabaseSchema = eunomiaOhdsiDatabaseSchema, + cohortTable = "cohort_cov") +}) + +test_that("Cohort-based covariates: counts, aggregated, temporal on Eunomia", { + skip_if_not(runTestsOnEunomia) + runCohortBasedCountsAggTemporalTest(connection = eunomiaConnection, + cdmDatabaseSchema = eunomiaCdmDatabaseSchema, + ohdsiDatabaseSchema = eunomiaOhdsiDatabaseSchema, + cohortTable = "cohort_cov") +}) + +test_that("Cohort-based covariates: counts, aggregated, using multiple cohort IDs on Eunomia", { + skip_if_not(runTestsOnEunomia) + runCohortBasedCountsAggMultiCohortTest(connection = eunomiaConnection, + cdmDatabaseSchema = eunomiaCdmDatabaseSchema, + ohdsiDatabaseSchema = eunomiaOhdsiDatabaseSchema, + cohortTable = "cohort_cov") +}) + +# Postgres tests ------------ +test_that("Cohort-based covariates: binary, non-aggregated on Postgres", { + skip_if_not(runTestsOnPostgreSQL) + connection <- DatabaseConnector::connect(pgConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedBinaryNonAggTest(connection = connection, + cdmDatabaseSchema = pgCdmDatabaseSchema, + ohdsiDatabaseSchema = pgOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: binary, aggregated on Postgres", { + skip_if_not(runTestsOnPostgreSQL) + connection <- DatabaseConnector::connect(pgConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedBinaryAggTest(connection = connection, + cdmDatabaseSchema = pgCdmDatabaseSchema, + ohdsiDatabaseSchema = pgOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: binary, non-aggregated, temporal on Postgres", { + skip_if_not(runTestsOnPostgreSQL) + connection <- DatabaseConnector::connect(pgConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedBinaryNonAggTemporalTest(connection = connection, + cdmDatabaseSchema = pgCdmDatabaseSchema, + ohdsiDatabaseSchema = pgOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: binary, aggregated, temporal on Postgres", { + skip_if_not(runTestsOnPostgreSQL) + connection <- DatabaseConnector::connect(pgConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedBinaryAggTemporalTest(connection = connection, + cdmDatabaseSchema = pgCdmDatabaseSchema, + ohdsiDatabaseSchema = pgOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: counts, non-aggregated on Postgres", { + skip_if_not(runTestsOnPostgreSQL) + connection <- DatabaseConnector::connect(pgConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedCountsNonAggTest(connection = connection, + cdmDatabaseSchema = pgCdmDatabaseSchema, + ohdsiDatabaseSchema = pgOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: counts, aggregated on Postgres", { + skip_if_not(runTestsOnPostgreSQL) + connection <- DatabaseConnector::connect(pgConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedCountsAggTest(connection = connection, + cdmDatabaseSchema = pgCdmDatabaseSchema, + ohdsiDatabaseSchema = pgOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: counts, non-aggregated, temporal on Postgres", { + skip_if_not(runTestsOnPostgreSQL) + connection <- DatabaseConnector::connect(pgConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedCountsNonAggTemporalTest(connection = connection, + cdmDatabaseSchema = pgCdmDatabaseSchema, + ohdsiDatabaseSchema = pgOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: counts, aggregated, temporal on Postgres", { + skip_if_not(runTestsOnPostgreSQL) + connection <- DatabaseConnector::connect(pgConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedCountsAggTemporalTest(connection = connection, + cdmDatabaseSchema = pgCdmDatabaseSchema, + ohdsiDatabaseSchema = pgOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: counts, aggregated, using multiple cohort IDs on Postgres", { + skip_if_not(runTestsOnPostgreSQL) + connection <- DatabaseConnector::connect(pgConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedCountsAggMultiCohortTest(connection = connection, + cdmDatabaseSchema = pgCdmDatabaseSchema, + ohdsiDatabaseSchema = pgOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +# SQL Server tests ------------ +test_that("Cohort-based covariates: binary, non-aggregated on SQL Server", { + skip_if_not(runTestsOnSQLServer) + connection <- DatabaseConnector::connect(sqlServerConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedBinaryNonAggTest(connection = connection, + cdmDatabaseSchema = sqlServerCdmDatabaseSchema, + ohdsiDatabaseSchema = sqlServerOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: binary, aggregated on SQL Server", { + skip_if_not(runTestsOnSQLServer) + connection <- DatabaseConnector::connect(sqlServerConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedBinaryAggTest(connection = connection, + cdmDatabaseSchema = sqlServerCdmDatabaseSchema, + ohdsiDatabaseSchema = sqlServerOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: binary, non-aggregated, temporal on SQL Server", { + skip_if_not(runTestsOnSQLServer) + connection <- DatabaseConnector::connect(sqlServerConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedBinaryNonAggTemporalTest(connection = connection, + cdmDatabaseSchema = sqlServerCdmDatabaseSchema, + ohdsiDatabaseSchema = sqlServerOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: binary, aggregated, temporal on SQL Server", { + skip_if_not(runTestsOnSQLServer) + connection <- DatabaseConnector::connect(sqlServerConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedBinaryAggTemporalTest(connection = connection, + cdmDatabaseSchema = sqlServerCdmDatabaseSchema, + ohdsiDatabaseSchema = sqlServerOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: counts, non-aggregated on SQL Server", { + skip_if_not(runTestsOnSQLServer) + connection <- DatabaseConnector::connect(sqlServerConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedCountsNonAggTest(connection = connection, + cdmDatabaseSchema = sqlServerCdmDatabaseSchema, + ohdsiDatabaseSchema = sqlServerOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: counts, aggregated on SQL Server", { + skip_if_not(runTestsOnSQLServer) + connection <- DatabaseConnector::connect(sqlServerConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedCountsAggTest(connection = connection, + cdmDatabaseSchema = sqlServerCdmDatabaseSchema, + ohdsiDatabaseSchema = sqlServerOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: counts, non-aggregated, temporal on SQL Server", { + skip_if_not(runTestsOnSQLServer) + connection <- DatabaseConnector::connect(sqlServerConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedCountsNonAggTemporalTest(connection = connection, + cdmDatabaseSchema = sqlServerCdmDatabaseSchema, + ohdsiDatabaseSchema = sqlServerOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: counts, aggregated, temporal on SQL Server", { + skip_if_not(runTestsOnSQLServer) + connection <- DatabaseConnector::connect(sqlServerConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedCountsAggTemporalTest(connection = connection, + cdmDatabaseSchema = sqlServerCdmDatabaseSchema, + ohdsiDatabaseSchema = sqlServerOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: counts, aggregated, using multiple cohort IDs on SQL Server", { + skip_if_not(runTestsOnSQLServer) + connection <- DatabaseConnector::connect(sqlServerConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedCountsAggMultiCohortTest(connection = connection, + cdmDatabaseSchema = sqlServerCdmDatabaseSchema, + ohdsiDatabaseSchema = sqlServerOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +# Oracle tests ------------ +test_that("Cohort-based covariates: binary, non-aggregated on Oracle", { + skip_if_not(runTestsOnOracle) + connection <- DatabaseConnector::connect(oracleConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedBinaryNonAggTest(connection = connection, + cdmDatabaseSchema = oracleCdmDatabaseSchema, + ohdsiDatabaseSchema = oracleOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: binary, aggregated on Oracle", { + skip_if_not(runTestsOnOracle) + connection <- DatabaseConnector::connect(oracleConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedBinaryAggTest(connection = connection, + cdmDatabaseSchema = oracleCdmDatabaseSchema, + ohdsiDatabaseSchema = oracleOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: binary, non-aggregated, temporal on Oracle", { + skip_if_not(runTestsOnOracle) + connection <- DatabaseConnector::connect(oracleConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedBinaryNonAggTemporalTest(connection = connection, + cdmDatabaseSchema = oracleCdmDatabaseSchema, + ohdsiDatabaseSchema = oracleOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: binary, aggregated, temporal on Oracle", { + skip_if_not(runTestsOnOracle) + connection <- DatabaseConnector::connect(oracleConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedBinaryAggTemporalTest(connection = connection, + cdmDatabaseSchema = oracleCdmDatabaseSchema, + ohdsiDatabaseSchema = oracleOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: counts, non-aggregated on Oracle", { + skip_if_not(runTestsOnOracle) + connection <- DatabaseConnector::connect(oracleConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedCountsNonAggTest(connection = connection, + cdmDatabaseSchema = oracleCdmDatabaseSchema, + ohdsiDatabaseSchema = oracleOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: counts, aggregated on Oracle", { + skip_if_not(runTestsOnOracle) + connection <- DatabaseConnector::connect(oracleConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedCountsAggTest(connection = connection, + cdmDatabaseSchema = oracleCdmDatabaseSchema, + ohdsiDatabaseSchema = oracleOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: counts, non-aggregated, temporal on Oracle", { + skip_if_not(runTestsOnOracle) + connection <- DatabaseConnector::connect(oracleConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedCountsNonAggTemporalTest(connection = connection, + cdmDatabaseSchema = oracleCdmDatabaseSchema, + ohdsiDatabaseSchema = oracleOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: counts, aggregated, temporal on Oracle", { + skip_if_not(runTestsOnOracle) + connection <- DatabaseConnector::connect(oracleConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedCountsAggTemporalTest(connection = connection, + cdmDatabaseSchema = oracleCdmDatabaseSchema, + ohdsiDatabaseSchema = oracleOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: counts, aggregated, using multiple cohort IDs on Oracle", { + skip_if_not(runTestsOnOracle) + connection <- DatabaseConnector::connect(oracleConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedCountsAggMultiCohortTest(connection = connection, + cdmDatabaseSchema = oracleCdmDatabaseSchema, + ohdsiDatabaseSchema = oracleOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +# RedShift tests ------------ +test_that("Cohort-based covariates: binary, non-aggregated on RedShift", { + skip_if_not(runTestsOnRedshift) + connection <- DatabaseConnector::connect(redshiftConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedBinaryNonAggTest(connection = connection, + cdmDatabaseSchema = redshiftCdmDatabaseSchema, + ohdsiDatabaseSchema = redshiftOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: binary, aggregated on RedShift", { + skip_if_not(runTestsOnRedshift) + connection <- DatabaseConnector::connect(redshiftConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedBinaryAggTest(connection = connection, + cdmDatabaseSchema = redshiftCdmDatabaseSchema, + ohdsiDatabaseSchema = redshiftOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: binary, non-aggregated, temporal on RedShift", { + skip_if_not(runTestsOnRedshift) + connection <- DatabaseConnector::connect(redshiftConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedBinaryNonAggTemporalTest(connection = connection, + cdmDatabaseSchema = redshiftCdmDatabaseSchema, + ohdsiDatabaseSchema = redshiftOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: binary, aggregated, temporal on RedShift", { + skip_if_not(runTestsOnRedshift) + connection <- DatabaseConnector::connect(redshiftConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedBinaryAggTemporalTest(connection = connection, + cdmDatabaseSchema = redshiftCdmDatabaseSchema, + ohdsiDatabaseSchema = redshiftOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: counts, non-aggregated on RedShift", { + skip_if_not(runTestsOnRedshift) + connection <- DatabaseConnector::connect(redshiftConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedCountsNonAggTest(connection = connection, + cdmDatabaseSchema = redshiftCdmDatabaseSchema, + ohdsiDatabaseSchema = redshiftOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: counts, aggregated on RedShift", { + skip_if_not(runTestsOnRedshift) + connection <- DatabaseConnector::connect(redshiftConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedCountsAggTest(connection = connection, + cdmDatabaseSchema = redshiftCdmDatabaseSchema, + ohdsiDatabaseSchema = redshiftOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: counts, non-aggregated, temporal on RedShift", { + skip_if_not(runTestsOnRedshift) + connection <- DatabaseConnector::connect(redshiftConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedCountsNonAggTemporalTest(connection = connection, + cdmDatabaseSchema = redshiftCdmDatabaseSchema, + ohdsiDatabaseSchema = redshiftOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: counts, aggregated, temporal on RedShift", { + skip_if_not(runTestsOnRedshift) + connection <- DatabaseConnector::connect(redshiftConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedCountsAggTemporalTest(connection = connection, + cdmDatabaseSchema = redshiftCdmDatabaseSchema, + ohdsiDatabaseSchema = redshiftOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + +test_that("Cohort-based covariates: counts, aggregated, using multiple cohort IDs on RedShift", { + skip_if_not(runTestsOnRedshift) + connection <- DatabaseConnector::connect(redshiftConnectionDetails) + on.exit(DatabaseConnector::disconnect(connection)) + runCohortBasedCountsAggMultiCohortTest(connection = connection, + cdmDatabaseSchema = redshiftCdmDatabaseSchema, + ohdsiDatabaseSchema = redshiftOhdsiDatabaseSchema, + cohortTable = cohortTable) +}) + + +# Non-database specific tests --------------- +test_that("Cohort-based covariates: warning if using pre-defined analysis ID", { + expect_warning(createCohortBasedCovariateSettings(analysisId = 1, + covariateCohorts = covariateCohorts, + valueType = "count"), + "Analysis ID [0-9+] also used for prespecified analysis") + expect_warning(createCohortBasedTemporalCovariateSettings(analysisId = 1, + covariateCohorts = covariateCohorts), + "Analysis ID [0-9+] also used for prespecified analysis") +}) diff --git a/vignettes/CreatingCovariatesBasedOnOtherCohorts.Rmd b/vignettes/CreatingCovariatesBasedOnOtherCohorts.Rmd new file mode 100644 index 00000000..7dd7d614 --- /dev/null +++ b/vignettes/CreatingCovariatesBasedOnOtherCohorts.Rmd @@ -0,0 +1,229 @@ +--- +title: "Creating covariates based on other cohorts" +author: "Martijn J. Schuemie" +date: "`r Sys.Date()`" +output: + pdf_document: + number_sections: yes + toc: yes + html_document: + number_sections: yes + toc: yes +vignette: > + %\VignetteIndexEntry{Creating covariates based on other cohorts} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- + +```{r echo=FALSE,message=FALSE,warning=FALSE,eval=TRUE} +library(FeatureExtraction) +vignetteFolder <- "s:/temp/vignetteFeatureExtractionCohortBased" +``` + +# Introduction + +This vignette assumes you are already familiar with the `FeatureExtraction` package. + +The `FeatureExtraction` package can generate a default set of covariates, such as one covariate for each condition found in the `condition_occurrence` table. These covariates are based on the concepts found in the data in the Common Data Model (CDM). For example, if we wish to have a covariate for 'prior diabetes', the default set of covariates includes a covariate based on the condition concept `Diabetes melitus` and all of its descendant concepts. + +In this vignette we review how we can create covariates based on other cohorts instead of concepts by themselves. In our diabetes example, we may wish to define diabetes not just as the occurrence of a diagnose code, but also require records of antidiabetic treatments, or blood glucose values exceeding certain thresholds. We can construct a complicated cohort definition, for example using the OHDSI ATLAS tool, encoding this logic. We can instantiate this cohort, and then construct covariates based on the presence or absence of this cohort in a patient's history. + +# Overview + +To construct covariates based on other cohorts, the following steps must be taken: + +1. Populate a table with the cohorts to be used for covariate construction. +2. Use the `createCohortBasedCovariateSettings()` or `createCohortBasedTemporalCovariateSettings()` function to create a `covariateSettings` object pointing to the cohorts mentioned in the previous steps. + +## Populate a table with the cohorts to be used for covariate construction. + +The cohorts should be loaded into a cohort table with the standard fields. **This can be the same table as the one containing the main cohorts**. The table should at least have the following fields: + +* `cohort_definition_id`, A unique identifier for the cohort. This ID will be used (together with the analysis ID) to construct the covariate ID, so **ensure that the `cohort_definition_id` fits in a 32-bit integer*** (so between -2,147,483,648 and 2,147,483,647). +* `subject_id`, The unique identifier for the person. Should match the `person_id` in the CDM. +* `cohort_start_date`, The date the person enters the cohort. +* `cohort_end_date`, The date the the person exits the cohort. If `null`, the person is assumed to exit the cohort on the same date as entering it. + +A person can enter and exit a cohort multiple times, but cannot be in the same cohort at the same time multiple times (this is true for all cohorts in OHDSI). + +# Example + +## Creating the cohort attributes and attributes definitions + +In this example we will create two cohorts: the main cohort is people initiating diclofenac treatment for the first time. The cohort we wish to use to construct a covariate is type 2 diabetes, requiring both a diagnosis code and a treatment code (in the 30 days following the diagnosis). The diabetes cohort is assumed to start at the first diagnosis meeting the criteria, and end when observation ends (chronic). + +```sql +/************************ +File covariateCohorts.sql +*************************/ +DROP TABLE IF EXISTS @cohort_database_schema.@cohort_table; + +CREATE TABLE @cohort_database_schema.@cohort_table ( + cohort_definition_id INT, + subject_id BIGINT, + cohort_start_date DATE, + cohort_end_date DATE + ); + +INSERT INTO @cohort_database_schema.@cohort_table ( + cohort_definition_id, + subject_id, + cohort_start_date, + cohort_end_date + ) +SELECT 1, + person_id, + MIN(drug_era_start_date), + MIN(drug_era_end_date) +FROM @cdm_database_schema.drug_era +WHERE drug_concept_id = 1124300 --diclofenac +GROUP BY person_id; + +INSERT INTO @cohort_database_schema.@cohort_table ( + cohort_definition_id, + subject_id, + cohort_start_date, + cohort_end_date + ) +SELECT 2, + condition_occurrence.person_id, + MIN(condition_start_date), + MIN(observation_period_end_date) +FROM @cdm_database_schema.condition_occurrence +INNER JOIN @cdm_database_schema.drug_exposure + ON condition_occurrence.person_id = drug_exposure.person_id + AND drug_exposure_start_date >= condition_start_date + AND drug_exposure_start_date < DATEADD(DAY, 30, condition_start_date) +INNER JOIN @cdm_database_schema.observation_period + ON condition_occurrence.person_id = observation_period.person_id + AND condition_start_date >= observation_period_start_date + AND condition_start_date <= observation_period_end_date +WHERE condition_concept_id IN ( + SELECT descendant_concept_id + FROM @cdm_database_schema.concept_ancestor + WHERE ancestor_concept_id = 201826 -- Type 2 diabetes mellitus + ) + AND drug_concept_id IN ( + SELECT descendant_concept_id + FROM @cdm_database_schema.concept_ancestor + WHERE ancestor_concept_id = 21600712 -- DRUGS USED IN DIABETES (ATC A10) + ) +GROUP BY condition_occurrence.person_id; +``` +We substitute the arguments in this SQL with actual values, translate it to the right SQL dialect, and execute the SQL: + +```{r tidy=FALSE,eval=FALSE} +library(SqlRender) +sql <- readSql("covariateCohorts.sql") +connection <- connect(connectionDetails) +renderTranslateExecuteSql(connection = connection, + sql = sql, + cdm_database_schema = cdmDatabaseSchema, + cohort_database_schema = cohortDatabaseSchema, + cohort_table = cohortTable) +``` + +If all went well, we now have a table with the cohorts. We can see how many cohorts per type: + +```{r eval=FALSE} +sql <- paste("SELECT cohort_definition_id, + COUNT(*) AS count", + "FROM @cohort_database_schema.@cohort_table", + "GROUP BY cohort_definition_id") +renderTranslateQuerySql(connection = connection, + sql = sql, + cohort_database_schema = cohortDatabaseSchema, + cohort_table = cohortTable) +``` +```{r echo=FALSE,message=FALSE} +data.frame(cohort_concept_id = c(1, 2),count = c(954179, 979874)) +``` + +## Using the cohort as covariate + +To use the constructed diabetes cohort as a covariate, we need to create a `covariateSettings` object: + +```{r eval=FALSE} +covariateCohorts <- tibble(cohortId = 2, + cohortName = "Type 2 diabetes") + +covariateSettings <- createCohortBasedCovariateSettings(analysisId = 999, + covariateCohorts = covariateCohorts, + valueType = "binary", + startDay = -365, + endDay = 0) +``` + +Here we first create a tibble containing two columns. The `cohortId` column lists the cohort definition IDs used in our cohort table. The `cohortName` column will be used to create the covariate names. In this case, we only have one cohort in this table, but there could be many. A separate covariate will be created for each cohort. + +We then specify an analysis which we assign a unique ID (between 1 and 999). We specify we want to create binary covariates, meaning the covariate will have value = 1 if the cohort is found during the window, and value = 0 if not found. (Because we typically use sparse matrices to represent our covariates, entries with value = 0 will not be included). Alternatively, we could have set `valueType = "count"`, in which case the covariate value would be the number of times the cohort was observed in the time window. Finally, we specify the covariate capture window spans the 365 days before (and including) entry into the main (diclofenac) cohort. + +We could also specify the cohort database schema and table where the cohorts for constructing the covariates can be found. However, because both the main cohorts and covariate cohorts are in the same table this is not necessary. + +We can now construct the covariates: + +```{r eval=FALSE} +covariateData <- getDbCovariateData(connectionDetails = connectionDetails, + cdmDatabaseSchema = cdmDatabaseSchema, + cohortDatabaseSchema = cohortDatabaseSchema, + cohortTable = cohortTable, + cohortId = 1, + rowIdField = "subject_id", + covariateSettings = covariateSettings) +summary(covariateData) +``` +```{r echo=FALSE,message=FALSE} +if (file.exists(file.path(vignetteFolder, "covariatesPerPerson"))) { + covariateData <- loadCovariateData(file.path(vignetteFolder, "covariatesPerPerson")) + summary(covariateData) +} +``` +```{r eval=FALSE} +covariateData$covariateRef +``` +```{r echo=FALSE,message=FALSE} +if (file.exists(file.path(vignetteFolder, "covariatesPerPerson"))) { + covariateData$covariateRef +} +``` + +In this case we will have only one covariate, diabetes in the year before index. In most cases, we will want our custom covariates in addition to the default covariates. We can do this by creating a list of covariate settings: + +```{r eval=FALSE} +covariateSettings1 <- createCovariateSettings(useDemographicsGender = TRUE, + useDemographicsAgeGroup = TRUE, + useDemographicsRace = TRUE, + useDemographicsEthnicity = TRUE, + useDemographicsIndexYear = TRUE, + useDemographicsIndexMonth = TRUE) + +covariateCohorts <- tibble(cohortId = 2, + cohortName = "Type 2 diabetes") + +covariateSettings2 <- createCohortBasedCovariateSettings(analysisId = 999, + covariateCohorts = covariateCohorts, + valueType = "binary", + startDay = -365, + endDay = 0) + +covariateSettingsList <- list(covariateSettings1, covariateSettings2) + +covariateData <- getDbCovariateData(connectionDetails = connectionDetails, + cdmDatabaseSchema = cdmDatabaseSchema, + cohortDatabaseSchema = cohortDatabaseSchema, + cohortTable = cohortTable, + cohortId = 1, + rowIdField = "subject_id", + covariateSettings = covariateSettingsList, + aggregated = TRUE) +summary(covariateData) +``` +```{r echo=FALSE,message=FALSE} +if (file.exists(file.path(vignetteFolder, "covariatesAggregated"))) { + covariateData <- loadCovariateData(file.path(vignetteFolder, "covariatesAggregated")) + summary(covariateData) +} +``` + +In this example both demographic covariates and our diabetes covariate were generated. Note that, for illustration purposes, here we opted for aggregated covariates. +