From a590a6e102d7c8d085bcb3eedc4d6b9d9d3e9933 Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 7 Oct 2024 11:25:54 -0600 Subject: [PATCH 01/24] Adding the pre-commit hook --- .github/workflows/coverage.yaml | 3 +- .github/workflows/pre-commit.yaml | 23 ++ .github/workflows/r.yml | 12 +- .pre-commit-config.yaml | 31 +++ .vscode/c_cpp_properties.json | 2 +- .vscode/settings.json | 2 +- CODE_OF_CONDUCT.md | 2 +- DESCRIPTION | 8 +- Makefile | 17 +- NEWS.md | 2 +- R/ModelDiffNet.R | 51 ++-- R/ModelSEIR.R | 34 +-- R/ModelSEIRCONN.R | 48 ++-- R/ModelSEIRD.R | 40 +-- R/ModelSEIRDCONN.R | 52 ++-- R/ModelSEIRMixing.R | 46 ++-- R/ModelSIR.R | 39 ++- R/ModelSIRCONN.R | 28 +- R/ModelSIRD.R | 43 ++- R/ModelSIRDCONN.R | 28 +- R/ModelSIRLogit.R | 64 ++--- R/ModelSIRMixing.R | 42 +-- R/ModelSIS.R | 40 +-- R/ModelSISD.R | 48 ++-- R/ModelSURV.R | 42 +-- R/agents-methods.R | 84 +++--- R/agents.R | 76 +++--- R/data.R | 294 ++++++++++----------- R/entity.R | 118 ++++----- R/epiworldR-package.R | 1 - R/epiworldR-package.R.in | 1 - R/functions-renamed.R | 14 +- R/global-actions.R | 97 ++++--- R/make_saver.R | 159 ++++++----- R/model-methods.R | 207 ++++++++------- R/plot_epi.R | 87 +++--- R/tool.R | 223 ++++++++-------- R/virus.R | 269 ++++++++++--------- README.Rmd | 66 ++--- README.md | 191 +++++++------ _pkgdown.yml | 1 - configure | 1 - configure.ac | 2 +- docker/Dockerfile | 2 +- docker/Makefile | 2 +- man/figures/README-logit-model-1.png | Bin 27935 -> 36373 bytes man/figures/README-multiple-example-1.png | Bin 9530 -> 24847 bytes man/figures/README-seir-conn-figures-1.png | Bin 42302 -> 53967 bytes man/figures/README-seir-conn-figures-2.png | Bin 38218 -> 44236 bytes man/figures/README-seir-conn-figures-3.png | Bin 32300 -> 41484 bytes man/figures/README-sir-figures-1.png | Bin 35901 -> 45470 bytes man/figures/README-sir-figures-2.png | Bin 45528 -> 55060 bytes man/figures/README-transmission-net-1.png | Bin 35433 -> 81295 bytes paper.bib | 8 +- paper.md | 2 +- playground/benchmark-seir.R | 17 +- playground/benchmark-seirconn.R | 21 +- playground/epiworld_presentation.html | 32 +-- playground/epiworld_presentation.qmd | 27 +- playground/transition_matrix_checker.Rmd | 83 +++--- pre-commit.yaml | 23 ++ src/actions.cpp | 47 ++-- src/agents.cpp | 72 +++-- src/db.cpp | 88 +++--- src/entities.cpp | 49 ++-- src/epimodels.cpp | 168 ++++++------ src/epiworld-common.h | 2 +- src/model.cpp | 125 +++++---- src/tool.cpp | 142 +++++----- src/virus.cpp | 128 ++++----- tests/tinytest.R | 3 +- vignettes/getting-started.Rmd | 141 +++++----- vignettes/implementation.Rmd | 20 +- vignettes/mixing.Rmd | 6 +- vignettes/run-multiple.Rmd | 66 +++-- 75 files changed, 1992 insertions(+), 1920 deletions(-) create mode 100644 .github/workflows/pre-commit.yaml create mode 100644 .pre-commit-config.yaml create mode 100644 pre-commit.yaml diff --git a/.github/workflows/coverage.yaml b/.github/workflows/coverage.yaml index 8b99c08e..6fc769e3 100644 --- a/.github/workflows/coverage.yaml +++ b/.github/workflows/coverage.yaml @@ -15,7 +15,7 @@ jobs: - uses: actions/checkout@v4 - uses: r-lib/actions/setup-pandoc@v2 - + - uses: r-lib/actions/setup-r@v2.9.0 - uses: r-lib/actions/setup-r-dependencies@v2 @@ -36,4 +36,3 @@ jobs: shell: Rscript {0} env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml new file mode 100644 index 00000000..2efb1421 --- /dev/null +++ b/.github/workflows/pre-commit.yaml @@ -0,0 +1,23 @@ +name: Pre-commit + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + pre-commit: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v3 + + - name: Run pre-commit hooks + uses: pre-commit/action@v3.0.1 diff --git a/.github/workflows/r.yml b/.github/workflows/r.yml index 72f9c523..bf69e222 100644 --- a/.github/workflows/r.yml +++ b/.github/workflows/r.yml @@ -12,7 +12,7 @@ on: name: R-CMD-check-final -env: +env: GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} jobs: @@ -82,7 +82,7 @@ jobs: name: epiworldR-built-package-${{ matrix.config.os }}-${{ matrix.config.r }} path: epiworldR_*.tar.gz retention-days: 7 - + epiworldShiny: runs-on: ubuntu-latest container: rocker/tidyverse:4.4.0 @@ -98,7 +98,7 @@ jobs: run: | install2.r -n 2 shinyjs shinydashboard DT shinycssloaders plotly installGithub.r UofUEpiBio/epiworldR@${{ github.sha }} - + - name: Check the package run: | R CMD build . @@ -118,11 +118,7 @@ jobs: run: | install2.r -n 2 shinyjs shinydashboard DT shinycssloaders plotly installGithub.r UofUEpiBio/epiworldR@${{ github.sha }} - + - name: Check the package run: | R CMD check --no-manual epiworldRShiny_*tar.gz - - - - diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..0d3cdcea --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,31 @@ +repos: +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v3.2.0 + hooks: + - id: trailing-whitespace + exclude: ^(inst/|man/|src/cpp11\.cpp|playgroud/|R/cpp11\.R|README\.md) + - id: end-of-file-fixer + exclude: ^(inst/|man/|src/cpp11\.cpp|playgroud/|R/cpp11\.R|README\.md) + - id: check-yaml + exclude: ^(inst/|man/|src/cpp11\.cpp|playgroud/|R/cpp11\.R|README\.md) + - id: check-added-large-files + exclude: ^(inst/|man/|src/cpp11\.cpp|playgroud/|R/cpp11\.R|README\.md) + - id: detect-private-key + exclude: ^(inst/|man/|src/cpp11\.cpp|playgroud/|R/cpp11\.R|README\.md) + +- repo: https://github.com/lorenzwalthert/precommit + rev: v0.4.2 + hooks: + - id: style-files + args: + [ + '--ignore-start="^# styler: off$"', + '--ignore-stop="^# styler: on$"', + '--strict=FALSE' + ] + exclude: ^(inst/|man/|src/cpp11\.cpp|playgroud/|R/cpp11\.R|README\.md) + - id: readme-rmd-rendered + # - id: lintr + # args: [--warn_only] + # verbose: true + # exclude: ^(inst/|man/|src/cpp11.cpp|playgroud/|R/cpp11\.R|README\.md) diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index eb3d24ec..2b240b0c 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -17,4 +17,4 @@ } ], "version": 4 -} \ No newline at end of file +} diff --git a/.vscode/settings.json b/.vscode/settings.json index a09d2f0d..b4549178 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -62,4 +62,4 @@ "editor.insertSpaces": true, "editor.detectIndentation": false } -} \ No newline at end of file +} diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 0ed3b818..a8187564 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -59,7 +59,7 @@ representative at an online or offline event. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at derekmeyer37@gmail.com. +reported to the community leaders responsible for enforcement at derekmeyer37@gmail.com. All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the diff --git a/DESCRIPTION b/DESCRIPTION index d14e78bd..e98c661e 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -5,7 +5,7 @@ Version: 0.3-2 Authors@R: c( person(given="George", family="Vega Yon", role=c("aut","cre"), email="g.vegayon@gmail.com", comment = c(ORCID = "0000-0002-3171-0844")), - person(given="Derek", family="Meyer", role=c("aut"), + person(given="Derek", family="Meyer", role=c("aut"), email="derekmeyer37@gmail.com", comment = c(ORCID = "0009-0005-1350-6988")), person(given="Susan", family="Holmes", role = "rev", comment = c(what = "JOSS reviewer", ORCID="0000-0002-2208-8168")), @@ -17,20 +17,20 @@ Authors@R: c( Description: A flexible framework for Agent-Based Models (ABM), the 'epiworldR' package provides methods for prototyping disease outbreaks and transmission models using a 'C++' backend, making it very fast. It supports multiple epidemiological models, including the Susceptible-Infected-Susceptible (SIS), Susceptible-Infected-Removed (SIR), Susceptible-Exposed-Infected-Removed (SEIR), and others, involving arbitrary mitigation policies and multiple-disease models. Users can specify infectiousness/susceptibility rates as a function of agents' features, providing great complexity for the model dynamics. Furthermore, 'epiworldR' is ideal for simulation studies featuring large populations. URL: https://github.com/UofUEpiBio/epiworldR, https://uofuepibio.github.io/epiworldR/, - https://uofuepibio.github.io/epiworldR-workshop/ + https://uofuepibio.github.io/epiworldR-workshop/ BugReports: https://github.com/UofUEpiBio/epiworldR/issues License: MIT + file LICENSE RoxygenNote: 7.3.2 Encoding: UTF-8 Roxygen: list(markdown = TRUE) LinkingTo: cpp11 -Suggests: +Suggests: knitr, rmarkdown, tinytest, netplot, igraph, data.table -Imports: +Imports: utils VignetteBuilder: knitr diff --git a/Makefile b/Makefile index 7effd62f..7e0f0bbd 100644 --- a/Makefile +++ b/Makefile @@ -2,11 +2,11 @@ VERSION := $(shell grep Version DESCRIPTION | sed -e 's/Version: //') -build: +build: cd .. && R CMD build epiworldR debug: clean - docker run --rm -ti -w/mnt -v $(PWD):/mnt uofuepibio/epiworldr:debug make docker-debug + docker run --rm -ti -w/mnt -v $(PWD):/mnt uofuepibio/epiworldr:debug make docker-debug docker-debug: EPI_CONFIG="-DEPI_DEBUG -Wall -pedantic -g" R CMD INSTALL \ @@ -15,33 +15,33 @@ docker-debug: install-dev: clean sed -i -E 's/@useDynLib\s+[a-zA-Z]+/@useDynLib epiworldRdev/g' R/epiworldR-package.R sed -i -E 's/useDynLib\(+[a-zA-Z]+/useDynLib(epiworldRdev/g' NAMESPACE - sed -i -E 's/^Package:.+/Package: epiworldRdev/g' DESCRIPTION + sed -i -E 's/^Package:.+/Package: epiworldRdev/g' DESCRIPTION sed -i -E 's/^library\(epiworldR\)/library(epiworldRdev)/g' README.* Rscript --vanilla -e 'roxygen2::roxygenize()' EPI_DEV=yes R CMD INSTALL .& $(MAKE) clean -install: +install: cd .. && \ R CMD INSTALL epiworldR_$(VERSION).tar.gz - + README.md: README.Rmd Rscript --vanilla -e 'rmarkdown::render("README.Rmd")' # update: # wget https://raw.githubusercontent.com/UofUEpiBio/epiworld/master/epiworld.hpp && \ -# mv epiworld.hpp inst/include/epiworld.hpp +# mv epiworld.hpp inst/include/epiworld.hpp local-update: rsync -avz ../epiworld/include/epiworld inst/include/. check: build cd .. && R CMD check epiworldR_*.tar.gz -clean: +clean: rm -f src/*.dll src/*.so src/*.o sed -i -E 's/@useDynLib\s+[a-zA-Z]+/@useDynLib epiworldR/g' R/epiworldR-package.R sed -i -E 's/useDynLib\(+[a-zA-Z]+/useDynLib(epiworldR/g' NAMESPACE - sed -i -E 's/^Package:.+/Package: epiworldR/g' DESCRIPTION + sed -i -E 's/^Package:.+/Package: epiworldR/g' DESCRIPTION # sed -i -E 's/^\\(name|alias|title)\{[a-zA-Z]+/\\\1{epiworldR/g' man/epiworldR-package.Rd sed -i -E 's/^library\(epiworldRdev\)/library(epiworldR)/g' README.* @@ -52,4 +52,3 @@ docs: checkv: build R CMD check --as-cran --use-valgrind epiworldR*.tar.gz - diff --git a/NEWS.md b/NEWS.md index 344e6951..d0be8221 100644 --- a/NEWS.md +++ b/NEWS.md @@ -7,7 +7,7 @@ * Ports the `Entity` class. Entities are used to group agents within a model. * Refactors `add_tool`, `add_virus`, and `add_entity` simplifying syntax. Now, - these functions only receive the model and object. Prevalence is + these functions only receive the model and object. Prevalence is specified in the object itself. `add_tool_n` and `add_virus_n` are now deprecated. diff --git a/R/ModelDiffNet.R b/R/ModelDiffNet.R index ac96e68e..3a7faee2 100644 --- a/R/ModelDiffNet.R +++ b/R/ModelDiffNet.R @@ -1,10 +1,10 @@ #' Network Diffusion Model -#' -#' The network diffusion model is a simple model that assumes that -#' the probability of adoption of a behavior is proportional to the +#' +#' The network diffusion model is a simple model that assumes that +#' the probability of adoption of a behavior is proportional to the #' number of adopters in the network. -#' -#' @export +#' +#' @export #' @param name Name of the model. #' @param prevalence Prevalence of the disease. #' @param prob_adopt Probability of adoption. @@ -22,22 +22,22 @@ #' \deqn{ #' P(adopt) = \mbox{Logit}^{-1}(prob\_adopt + params * data + exposure) #' } -#' Where exposure is the number of adopters in the agent's network. -#' +#' Where exposure is the number of adopters in the agent's network. +#' #' Another important difference is that the transmission network is not #' necesary useful since adoption in this model is not from a particular #' neighbor. -#' +#' #' @examples #' set.seed(2223) #' n <- 10000 -#' +#' #' # Generating synthetic data on a matrix with 2 columns. #' X <- cbind( -#' age = sample(1:100, n, replace = TRUE), -#' female = sample.int(2, n, replace = TRUE) - 1 +#' age = sample(1:100, n, replace = TRUE), +#' female = sample.int(2, n, replace = TRUE) - 1 #' ) -#' +#' #' adopt_chatgpt <- ModelDiffNet( #' "ChatGPT", #' prevalence = .01, @@ -45,29 +45,29 @@ #' data = X, #' params = c(1, 4) #' ) -#' +#' #' # Simulating a population from smallworld #' agents_smallworld(adopt_chatgpt, n, 8, FALSE, .01) -#' +#' #' # Running the model for 50 steps #' run(adopt_chatgpt, 50) -#' +#' #' # Plotting the model #' plot(adopt_chatgpt) #' @aliases epiworld_diffnet ModelDiffNet <- function( - name, - prevalence, - prob_adopt, - normalize_exposure = TRUE, - data = matrix(nrow = 0, ncol = 0), - data_cols = 1L:ncol(data), - params = vector("double") - ) { + name, + prevalence, + prob_adopt, + normalize_exposure = TRUE, + data = matrix(nrow = 0, ncol = 0), + data_cols = 1L:ncol(data), + params = vector("double") + ) { if (length(data) == 0L) data_cols <- vector("integer") - else + else data_cols <- as.integer(data_cols) - 1L structure( @@ -80,7 +80,7 @@ ModelDiffNet <- function( ncol(data), data_cols, params - ), + ), class = c("epiworld_diffnet", "epiworld_model") ) @@ -94,4 +94,3 @@ ModelDiffNet <- function( plot.epiworld_diffnet <- function(x, main = get_name(x), ...) { plot_epi(x, main = main, ...) } - diff --git a/R/ModelSEIR.R b/R/ModelSEIR.R index a081109e..505d20fa 100644 --- a/R/ModelSEIR.R +++ b/R/ModelSEIR.R @@ -2,27 +2,27 @@ #' #' @param name String. Name of the virus. #' @param prevalence Double. Initial proportion of individuals with the virus. -#' @param transmission_rate Numeric scalar between 0 and 1. Virus's rate of +#' @param transmission_rate Numeric scalar between 0 and 1. Virus's rate of #' infection. -#' @param incubation_days Numeric scalar greater than 0. Average number of +#' @param incubation_days Numeric scalar greater than 0. Average number of #' incubation days. -#' @param recovery_rate Numeric scalar between 0 and 1. Rate of recovery_rate from virus. -#' @param x Object of class SEIR. +#' @param recovery_rate Numeric scalar between 0 and 1. Rate of recovery_rate from virus. +#' @param x Object of class SEIR. #' @param ... Currently ignore. #' @export #' @family Models #' @aliases epiworld_seir -#' @details +#' @details #' The [initial_states] function allows the user to set the initial state of the #' model. The user must provide a vector of proportions indicating the following #' values: (1) Proportion of non-infected agents who are removed, and (2) #' Proportion of exposed agents to be set as infected. #' @returns #' - The `ModelSEIR`function returns a model of class [epiworld_model]. -#' @examples -#' model_seir <- ModelSEIR(name = "COVID-19", prevalence = 0.01, -#' transmission_rate = 0.9, recovery_rate = 0.1, incubation_days = 4) -#' +#' @examples +#' model_seir <- ModelSEIR(name = "COVID-19", prevalence = 0.01, +#' transmission_rate = 0.9, recovery_rate = 0.1, incubation_days = 4) +#' #' # Adding a small world population #' agents_smallworld( #' model_seir, @@ -30,12 +30,12 @@ #' k = 5, #' d = FALSE, #' p = .01 -#' ) -#' +#' ) +#' #' # Running and printing #' run(model_seir, ndays = 100, seed = 1912) #' model_seir -#' +#' #' plot(model_seir, main = "SEIR Model") #' @seealso epiworld-methods ModelSEIR <- function( @@ -44,20 +44,20 @@ ModelSEIR <- function( transmission_rate, incubation_days, recovery_rate -) { - + ) { + structure( ModelSEIR_cpp(name, prevalence, transmission_rate, incubation_days, recovery_rate), class = c("epiworld_seir", "epiworld_model") ) - + } #' @rdname ModelSEIR #' @param main Title of the plot -#' @returns The `plot` function returns a plot of the SEIR model of class +#' @returns The `plot` function returns a plot of the SEIR model of class #' [epiworld_model]. #' @export plot.epiworld_seir <- function(x, main = get_name(x), ...) { # col = NULL - plot_epi(x, main = main, ...) + plot_epi(x, main = main, ...) } diff --git a/R/ModelSEIRCONN.R b/R/ModelSEIRCONN.R index 3e01bff1..d55a6d8c 100644 --- a/R/ModelSEIRCONN.R +++ b/R/ModelSEIRCONN.R @@ -1,71 +1,71 @@ #' Susceptible Exposed Infected Removed model (SEIR connected) -#' +#' #' The SEIR connected model implements a model where all agents are connected. #' This is equivalent to a compartmental model ([wiki](https://en.wikipedia.org/w/index.php?title=Compartmental_models_in_epidemiology&oldid=1155757336#The_SEIR_model)). -#' +#' #' @param name String. Name of the virus. #' @param n Integer greater than zero. Population size. #' @param prevalence Initial proportion of individuals with the virus. #' @param contact_rate Numeric scalar. Average number of contacts per step. -#' @param transmission_rate Numeric scalar between 0 and 1. Probability of +#' @param transmission_rate Numeric scalar between 0 and 1. Probability of #' transmission. -#' @param incubation_days Numeric scalar greater than 0. Average number of +#' @param incubation_days Numeric scalar greater than 0. Average number of #' incubation days. #' @param recovery_rate Numeric scalar between 0 and 1. Probability of recovery_rate. -#' @param x Object of class SEIRCONN. -#' @param ... Currently ignore. +#' @param x Object of class SEIRCONN. +#' @param ... Currently ignore. #' @param n Number of individuals in the population. #' @export #' @family Models #' @aliases epiworld_seirconn #' @returns #' - The `ModelSEIRCONN`function returns a model of class [epiworld_model]. -#' @examples +#' @examples #' # An example with COVID-19 #' model_seirconn <- ModelSEIRCONN( #' name = "COVID-19", -#' prevalence = 0.01, +#' prevalence = 0.01, #' n = 10000, -#' contact_rate = 2, -#' incubation_days = 7, +#' contact_rate = 2, +#' incubation_days = 7, #' transmission_rate = 0.5, #' recovery_rate = 0.3 #' ) -#' +#' #' # Running and printing #' run(model_seirconn, ndays = 100, seed = 1912) #' model_seirconn -#' +#' #' plot(model_seirconn) -#' +#' #' # Adding the flu -#' flu <- virus("Flu", .9, 1/7, prevalence = 0.001, as_proportion = TRUE) +#' flu <- virus("Flu", .9, 1 / 7, prevalence = 0.001, as_proportion = TRUE) #' add_virus(model_seirconn, flu) -#' +#' #' #' # Running and printing #' run(model_seirconn, ndays = 100, seed = 1912) #' model_seirconn -#' +#' #' plot(model_seirconn) #' @seealso epiworld-methods ModelSEIRCONN <- function( - name, n, prevalence, contact_rate, transmission_rate, + name, n, prevalence, contact_rate, transmission_rate, incubation_days, recovery_rate -) { - + ) { + structure( - ModelSEIRCONN_cpp(name, n, prevalence, contact_rate, - transmission_rate, incubation_days, recovery_rate), + ModelSEIRCONN_cpp(name, n, prevalence, contact_rate, + transmission_rate, incubation_days, recovery_rate), class = c("epiworld_seirconn", "epiworld_model") ) - + } #' @rdname ModelSEIRCONN #' @export -#' @returns The `plot` function returns a plot of the SEIRCONN model of class +#' @returns The `plot` function returns a plot of the SEIRCONN model of class #' [epiworld_model]. #' @param main Title of the plot. plot.epiworld_seirconn <- function(x, main = get_name(x), ...) { # col = NULL - plot_epi(x, main = main, ...) + plot_epi(x, main = main, ...) } diff --git a/R/ModelSEIRD.R b/R/ModelSEIRD.R index fc1394e4..25a45a1a 100644 --- a/R/ModelSEIRD.R +++ b/R/ModelSEIRD.R @@ -2,16 +2,16 @@ #' #' @param name String. Name of the virus. #' @param prevalence Double. Initial proportion of individuals with the virus. -#' @param transmission_rate Numeric scalar between 0 and 1. Virus's rate of +#' @param transmission_rate Numeric scalar between 0 and 1. Virus's rate of #' infection. -#' @param incubation_days Numeric scalar greater than 0. Average number of +#' @param incubation_days Numeric scalar greater than 0. Average number of #' incubation days. -#' @param recovery_rate Numeric scalar between 0 and 1. Rate of recovery_rate from virus. +#' @param recovery_rate Numeric scalar between 0 and 1. Rate of recovery_rate from virus. #' @param death_rate Numeric scalar between 0 and 1. Rate of death from virus. -#' @param x Object of class SEIRD. +#' @param x Object of class SEIRD. #' @param ... Currently ignore. #' @export -#' @details +#' @details #' The [initial_states] function allows the user to set the initial state of the #' model. The user must provide a vector of proportions indicating the following #' values: (1) Proportion of exposed agents who are infected, (2) @@ -21,11 +21,11 @@ #' @aliases epiworld_seird #' @returns #' - The `ModelSEIRD`function returns a model of class [epiworld_model]. -#' @examples -#' model_seird <- ModelSEIRD(name = "COVID-19", prevalence = 0.01, -#' transmission_rate = 0.9, recovery_rate = 0.1, incubation_days = 4, -#' death_rate = 0.01) -#' +#' @examples +#' model_seird <- ModelSEIRD(name = "COVID-19", prevalence = 0.01, +#' transmission_rate = 0.9, recovery_rate = 0.1, incubation_days = 4, +#' death_rate = 0.01) +#' #' # Adding a small world population #' agents_smallworld( #' model_seird, @@ -33,12 +33,12 @@ #' k = 5, #' d = FALSE, #' p = .01 -#' ) -#' +#' ) +#' #' # Running and printing #' run(model_seird, ndays = 100, seed = 1912) #' model_seird -#' +#' #' plot(model_seird, main = "SEIRD Model") #' @seealso epiworld-methods ModelSEIRD <- function( @@ -48,8 +48,8 @@ ModelSEIRD <- function( incubation_days, recovery_rate, death_rate -) { - + ) { + structure( ModelSEIRD_cpp( name = name, @@ -58,17 +58,17 @@ ModelSEIRD <- function( incubation_days = incubation_days, recovery_rate = recovery_rate, death_rate = death_rate - ), + ), class = c("epiworld_seird", "epiworld_model") ) - + } #' @rdname ModelSEIRD #' @param main Title of the plot -#' @returns The `plot` function returns a plot of the SEIRD model of class +#' @returns The `plot` function returns a plot of the SEIRD model of class #' [epiworld_model]. #' @export plot.epiworld_seird <- function(x, main = get_name(x), ...) { # col = NULL - plot_epi(x, main = main, ...) -} + plot_epi(x, main = main, ...) +} diff --git a/R/ModelSEIRDCONN.R b/R/ModelSEIRDCONN.R index 42290d5a..f019e5a0 100644 --- a/R/ModelSEIRDCONN.R +++ b/R/ModelSEIRDCONN.R @@ -1,23 +1,23 @@ #' Susceptible Exposed Infected Removed Deceased model (SEIRD connected) -#' +#' #' The SEIRD connected model implements a model where all agents are connected. #' This is equivalent to a compartmental model ([wiki](https://en.wikipedia.org/w/index.php?title=Compartmental_models_in_epidemiology&oldid=1155757336#The_SEIR_model)). -#' +#' #' @param name String. Name of the virus. #' @param n Integer greater than zero. Population size. #' @param prevalence Initial proportion of individuals with the virus. #' @param contact_rate Numeric scalar. Average number of contacts per step. -#' @param transmission_rate Numeric scalar between 0 and 1. Probability of +#' @param transmission_rate Numeric scalar between 0 and 1. Probability of #' transmission. -#' @param incubation_days Numeric scalar greater than 0. Average number of +#' @param incubation_days Numeric scalar greater than 0. Average number of #' incubation days. #' @param recovery_rate Numeric scalar between 0 and 1. Probability of recovery_rate. #' @param death_rate Numeric scalar between 0 and 1. Probability of death. -#' @param x Object of class SEIRCONN. -#' @param ... Currently ignore. +#' @param x Object of class SEIRCONN. +#' @param ... Currently ignore. #' @param n Number of individuals in the population. #' @export -#' @details +#' @details #' The [initial_states] function allows the user to set the initial state of the #' model. The user must provide a vector of proportions indicating the following #' values: (1) Proportion of exposed agents who are infected, (2) @@ -27,58 +27,58 @@ #' @aliases epiworld_seirdconn #' @returns #' - The `ModelSEIRDCONN`function returns a model of class [epiworld_model]. -#' @examples +#' @examples #' # An example with COVID-19 #' model_seirdconn <- ModelSEIRDCONN( #' name = "COVID-19", -#' prevalence = 0.01, +#' prevalence = 0.01, #' n = 10000, -#' contact_rate = 2, -#' incubation_days = 7, +#' contact_rate = 2, +#' incubation_days = 7, #' transmission_rate = 0.5, #' recovery_rate = 0.3, #' death_rate = 0.01 #' ) -#' +#' #' # Running and printing #' run(model_seirdconn, ndays = 100, seed = 1912) #' model_seirdconn -#' +#' #' plot(model_seirdconn) -#' +#' #' # Adding the flu #' flu <- virus( -#' "Flu", prob_infecting = .3, recovery_rate = 1/7, +#' "Flu", prob_infecting = .3, recovery_rate = 1 / 7, #' prob_death = 0.001, #' prevalence = 0.001, as_proportion = TRUE #' ) #' add_virus(model = model_seirdconn, virus = flu) -#' +#' #' #' # Running and printing #' run(model_seirdconn, ndays = 100, seed = 1912) #' model_seirdconn -#' +#' #' plot(model_seirdconn) #' @seealso epiworld-methods ModelSEIRDCONN <- function( - name, n, prevalence, contact_rate, transmission_rate, + name, n, prevalence, contact_rate, transmission_rate, incubation_days, recovery_rate, death_rate -) { - + ) { + structure( - ModelSEIRDCONN_cpp(name, n, prevalence, contact_rate, - transmission_rate, incubation_days, recovery_rate, - death_rate), + ModelSEIRDCONN_cpp(name, n, prevalence, contact_rate, + transmission_rate, incubation_days, recovery_rate, + death_rate), class = c("epiworld_seirdconn", "epiworld_model") ) - + } #' @rdname ModelSEIRDCONN #' @export -#' @returns The `plot` function returns a plot of the SEIRDCONN model of class +#' @returns The `plot` function returns a plot of the SEIRDCONN model of class #' [epiworld_model]. #' @param main Title of the plot. plot.epiworld_seirdconn <- function(x, main = get_name(x), ...) { # col = NULL - plot_epi(x, main = main, ...) + plot_epi(x, main = main, ...) } diff --git a/R/ModelSEIRMixing.R b/R/ModelSEIRMixing.R index 1dee4eac..161803e7 100644 --- a/R/ModelSEIRMixing.R +++ b/R/ModelSEIRMixing.R @@ -2,46 +2,46 @@ #' @param name String. Name of the virus #' @param prevalence Double. Initial proportion of individuals with the virus. #' @param contact_rate Numeric scalar. Average number of contacts per step. -#' @param transmission_rate Numeric scalar between 0 and 1. Probability of +#' @param transmission_rate Numeric scalar between 0 and 1. Probability of #' transmission. #' @param incubation_days Numeric scalar. Average number of days in the #' incubation period. #' @param recovery_rate Numeric scalar between 0 and 1. Probability of recovery. -#' @param x Object of class SIRCONN. +#' @param x Object of class SIRCONN. #' @param ... Currently ignore. #' @param n Number of individuals in the population. #' @param contact_matrix Matrix of contact rates between individuals. #' @export #' @family Models -#' @details +#' @details #' The `contact_matrix` is a matrix of contact rates between entities. The -#' matrix should be of size `n x n`, where `n` is the number of entities. +#' matrix should be of size `n x n`, where `n` is the number of entities. #' This is a row-stochastic matrix, i.e., the sum of each row should be 1. -#' +#' #' The [initial_states] function allows the user to set the initial state of the #' model. In particular, the user can specify how many of the non-infected #' agents have been removed at the beginning of the simulation. #' @returns #' - The `ModelSEIRMixing`function returns a model of class [epiworld_model]. #' @aliases epiworld_seirmixing -#' -#' @examples -#' +#' +#' @examples +#' #' # Start off creating three entities. #' # Individuals will be distribured randomly between the three. #' e1 <- entity("Population 1", 3e3, as_proportion = FALSE) #' e2 <- entity("Population 2", 3e3, as_proportion = FALSE) #' e3 <- entity("Population 3", 3e3, as_proportion = FALSE) -#' +#' #' # Row-stochastic matrix (rowsums 1) #' cmatrix <- c( #' c(0.9, 0.05, 0.05), #' c(0.1, 0.8, 0.1), #' c(0.1, 0.2, 0.7) #' ) |> matrix(byrow = TRUE, nrow = 3) -#' +#' #' N <- 9e3 -#' +#' #' flu_model <- ModelSEIRMixing( #' name = "Flu", #' n = N, @@ -52,40 +52,40 @@ #' incubation_days = 7, #' contact_matrix = cmatrix #' ) -#' +#' #' # Adding the entities to the model #' flu_model |> #' add_entity(e1) |> #' add_entity(e2) |> #' add_entity(e3) -#' +#' #' set.seed(331) #' run(flu_model, ndays = 100) #' summary(flu_model) #' plot_incidence(flu_model) -#' +#' #' @seealso epiworld-methods ModelSEIRMixing <- function( - name, n, prevalence, contact_rate, transmission_rate, + name, n, prevalence, contact_rate, transmission_rate, incubation_days, recovery_rate, contact_matrix -) { - + ) { + structure( ModelSEIRMixing_cpp( - name, n, prevalence, contact_rate, - transmission_rate, incubation_days, + name, n, prevalence, contact_rate, + transmission_rate, incubation_days, recovery_rate, as.vector(contact_matrix) - ), + ), class = c("epiworld_seirmixing", "epiworld_model") ) - + } #' @rdname ModelSEIRMixing #' @export -#' @returns The `plot` function returns a plot of the SEIRMixing model of class +#' @returns The `plot` function returns a plot of the SEIRMixing model of class #' [epiworld_model]. #' @param main Title of the plot plot.epiworld_seirmixing <- function(x, main = get_name(x), ...) { # col = NULL - plot_epi(x, main = main, ...) + plot_epi(x, main = main, ...) } diff --git a/R/ModelSIR.R b/R/ModelSIR.R index 76a38297..0fce74d5 100644 --- a/R/ModelSIR.R +++ b/R/ModelSIR.R @@ -1,29 +1,29 @@ #' SIR model #' @param name String. Name of the virus. -#' +#' #' Susceptible-Infected-Recovered model ([wiki](https://en.wikipedia.org/w/index.php?title=Compartmental_models_in_epidemiology&oldid=1155757336#The_SIR_model)). -#' +#' #' @param name String. Name of the virus #' @param prevalence Double. Initial proportion of individuals with the virus. -#' @param transmission_rate Numeric scalar between 0 and 1. Virus's rate of +#' @param transmission_rate Numeric scalar between 0 and 1. Virus's rate of #' infection. -#' @param recovery_rate Numeric scalar between 0 and 1. Rate of recovery_rate from virus. -#' @param x Object of class SIR. +#' @param recovery_rate Numeric scalar between 0 and 1. Rate of recovery_rate from virus. +#' @param x Object of class SIR. #' @param ... Additional arguments passed to [graphics::plot]. #' @export #' @family Models -#' @details +#' @details #' The [initial_states] function allows the user to set the initial state of the #' model. In particular, the user can specify how many of the non-infected #' agents have been removed at the beginning of the simulation. #' @aliases epiworld_sir #' @returns #' - The `ModelSIR` function returns a model of class [epiworld_model]. -#' @examples -#' model_sir <- ModelSIR(name = "COVID-19", prevalence = 0.01, -#' transmission_rate = 0.9, recovery_rate = 0.1) -#' +#' @examples +#' model_sir <- ModelSIR(name = "COVID-19", prevalence = 0.01, +#' transmission_rate = 0.9, recovery_rate = 0.1) +#' #' # Adding a small world population #' agents_smallworld( #' model_sir, @@ -31,33 +31,32 @@ #' k = 5, #' d = FALSE, #' p = .01 -#' ) -#' +#' ) +#' #' # Running and printing #' run(model_sir, ndays = 100, seed = 1912) #' model_sir -#' +#' #' # Plotting #' plot(model_sir) #' @seealso epiworld-methods ModelSIR <- function( name, prevalence, transmission_rate, recovery_rate -) { - + ) { + structure( ModelSIR_cpp(name, prevalence, transmission_rate, recovery_rate), class = c("epiworld_sir", "epiworld_model") ) - + } #' @rdname ModelSIR #' @export -#' @returns -#' - The `plot` function returns a plot of the SIR model of class +#' @returns +#' - The `plot` function returns a plot of the SIR model of class #' [epiworld_model]. #' @param main Title of the plot plot.epiworld_sir <- function(x, main = get_name(x), ...) { # col = NULL - plot_epi(x, main = main, ...) + plot_epi(x, main = main, ...) } - diff --git a/R/ModelSIRCONN.R b/R/ModelSIRCONN.R index 6a92b8a2..cd6af26f 100644 --- a/R/ModelSIRCONN.R +++ b/R/ModelSIRCONN.R @@ -2,23 +2,23 @@ #' @param name String. Name of the virus #' @param prevalence Double. Initial proportion of individuals with the virus. #' @param contact_rate Numeric scalar. Average number of contacts per step. -#' @param transmission_rate Numeric scalar between 0 and 1. Probability of +#' @param transmission_rate Numeric scalar between 0 and 1. Probability of #' transmission. #' @param recovery_rate Numeric scalar between 0 and 1. Probability of recovery. -#' @param x Object of class SIRCONN. +#' @param x Object of class SIRCONN. #' @param ... Currently ignore. #' @param n Number of individuals in the population. #' @export #' @family Models -#' @details +#' @details #' The [initial_states] function allows the user to set the initial state of the #' model. In particular, the user can specify how many of the non-infected #' agents have been removed at the beginning of the simulation. #' @returns #' - The `ModelSIRCONN`function returns a model of class [epiworld_model]. #' @aliases epiworld_sirconn -#' -#' @examples +#' +#' @examples #' model_sirconn <- ModelSIRCONN( #' name = "COVID-19", #' n = 10000, @@ -27,30 +27,30 @@ #' transmission_rate = 0.4, #' recovery_rate = 0.95 #' ) -#' +#' #' # Running and printing #' run(model_sirconn, ndays = 100, seed = 1912) #' model_sirconn -#' +#' #' plot(model_sirconn, main = "SIRCONN Model") #' @seealso epiworld-methods ModelSIRCONN <- function( name, n, prevalence, contact_rate, transmission_rate, recovery_rate -) { - + ) { + structure( - ModelSIRCONN_cpp(name, n, prevalence, contact_rate, - transmission_rate, recovery_rate), + ModelSIRCONN_cpp(name, n, prevalence, contact_rate, + transmission_rate, recovery_rate), class = c("epiworld_sirconn", "epiworld_model") ) - + } #' @rdname ModelSIRCONN #' @export -#' @returns The `plot` function returns a plot of the SIRCONN model of class +#' @returns The `plot` function returns a plot of the SIRCONN model of class #' [epiworld_model]. #' @param main Title of the plot plot.epiworld_sirconn <- function(x, main = get_name(x), ...) { # col = NULL - plot_epi(x, main = main, ...) + plot_epi(x, main = main, ...) } diff --git a/R/ModelSIRD.R b/R/ModelSIRD.R index 08272f17..20f0297f 100644 --- a/R/ModelSIRD.R +++ b/R/ModelSIRD.R @@ -1,16 +1,16 @@ #' SIRD model #' @param name String. Name of the virus. -#' +#' #' Susceptible-Infected-Recovered-Deceased model ([wiki](https://en.wikipedia.org/w/index.php?title=Compartmental_models_in_epidemiology&oldid=1166587407#The_SIRD_model)). -#' +#' #' @param name String. Name of the virus #' @param prevalence Double. Initial proportion of individuals with the virus. -#' @param transmission_rate Numeric scalar between 0 and 1. Virus's rate of +#' @param transmission_rate Numeric scalar between 0 and 1. Virus's rate of #' infection. -#' @param recovery_rate Numeric scalar between 0 and 1. Rate of recovery_rate from virus. +#' @param recovery_rate Numeric scalar between 0 and 1. Rate of recovery_rate from virus. #' @param death_rate Numeric scalar between 0 and 1. Rate of death from virus. -#' @param x Object of class SIR. +#' @param x Object of class SIR. #' @param ... Additional arguments passed to [graphics::plot]. #' @export #' @details @@ -22,15 +22,15 @@ #' @aliases epiworld_sird #' @returns #' - The `ModelSIRD` function returns a model of class [epiworld_model]. -#' @examples +#' @examples #' model_sird <- ModelSIRD( -#' name = "COVID-19", -#' prevalence = 0.01, -#' transmission_rate = 0.9, -#' recovery_rate = 0.1, -#' death_rate = 0.01 +#' name = "COVID-19", +#' prevalence = 0.01, +#' transmission_rate = 0.9, +#' recovery_rate = 0.1, +#' death_rate = 0.01 #' ) -#' +#' #' # Adding a small world population #' agents_smallworld( #' model_sird, @@ -38,33 +38,32 @@ #' k = 5, #' d = FALSE, #' p = .01 -#' ) -#' +#' ) +#' #' # Running and printing #' run(model_sird, ndays = 100, seed = 1912) #' model_sird -#' +#' #' # Plotting #' plot(model_sird) #' @seealso epiworld-methods ModelSIRD <- function( name, prevalence, transmission_rate, recovery_rate, death_rate -) { - + ) { + structure( ModelSIRD_cpp(name, prevalence, transmission_rate, recovery_rate, death_rate), class = c("epiworld_sird", "epiworld_model") ) - + } #' @rdname ModelSIRD #' @export -#' @returns -#' - The `plot` function returns a plot of the SIRD model of class +#' @returns +#' - The `plot` function returns a plot of the SIRD model of class #' [epiworld_model]. #' @param main Title of the plot plot.epiworld_sird <- function(x, main = get_name(x), ...) { # col = NULL - plot_epi(x, main = main, ...) + plot_epi(x, main = main, ...) } - diff --git a/R/ModelSIRDCONN.R b/R/ModelSIRDCONN.R index b4b3fb13..8a78314f 100644 --- a/R/ModelSIRDCONN.R +++ b/R/ModelSIRDCONN.R @@ -2,15 +2,15 @@ #' @param name String. Name of the virus #' @param prevalence Double. Initial proportion of individuals with the virus. #' @param contact_rate Numeric scalar. Average number of contacts per step. -#' @param transmission_rate Numeric scalar between 0 and 1. Probability of +#' @param transmission_rate Numeric scalar between 0 and 1. Probability of #' transmission. #' @param recovery_rate Numeric scalar between 0 and 1. Probability of recovery. #' @param death_rate Numeric scalar between 0 and 1. Probability of death. -#' @param x Object of class SIRDCONN. +#' @param x Object of class SIRDCONN. #' @param ... Currently ignore. #' @param n Number of individuals in the population. #' @export -#' @details +#' @details #' The [initial_states] function allows the user to set the initial state of the #' model. The user must provide a vector of proportions indicating the following #' values: (1) proportion of non-infected agents already removed, and (2) proportion of @@ -19,8 +19,8 @@ #' @returns #' - The `ModelSIRDCONN`function returns a model of class [epiworld_model]. #' @aliases epiworld_sirdconn -#' -#' @examples +#' +#' @examples #' model_sirdconn <- ModelSIRDCONN( #' name = "COVID-19", #' n = 100000, @@ -30,31 +30,31 @@ #' recovery_rate = 0.5, #' death_rate = 0.1 #' ) -#' +#' #' # Running and printing #' run(model_sirdconn, ndays = 100, seed = 1912) #' model_sirdconn -#' +#' #' plot(model_sirdconn, main = "SIRDCONN Model") #' @seealso epiworld-methods ModelSIRDCONN <- function( name, n, prevalence, contact_rate, transmission_rate, recovery_rate, death_rate -) { - + ) { + structure( - ModelSIRDCONN_cpp(name, n, prevalence, contact_rate, - transmission_rate, recovery_rate, death_rate), + ModelSIRDCONN_cpp(name, n, prevalence, contact_rate, + transmission_rate, recovery_rate, death_rate), class = c("epiworld_sirdconn", "epiworld_model") ) - + } #' @rdname ModelSIRDCONN #' @export -#' @returns The `plot` function returns a plot of the SIRDCONN model of class +#' @returns The `plot` function returns a plot of the SIRDCONN model of class #' [epiworld_model]. #' @param main Title of the plot plot.epiworld_sirdconn <- function(x, main = get_name(x), ...) { # col = NULL - plot_epi(x, main = main, ...) + plot_epi(x, main = main, ...) } diff --git a/R/ModelSIRLogit.R b/R/ModelSIRLogit.R index dea4168b..9d01c8f2 100644 --- a/R/ModelSIRLogit.R +++ b/R/ModelSIRLogit.R @@ -1,4 +1,4 @@ -#' SIR Logistic model +#' SIR Logistic model #' @param vname Name of the virus. #' @param data A numeric matrix with `n` rows. #' @param coefs_infect Numeric vector. Coefficients associated to infect. @@ -10,69 +10,69 @@ #' @param prevalence Numeric scalar. Prevalence (initial state) in proportion. #' #' @export -#' @returns +#' @returns #' - The `ModelSIRLogit` function returns a model of class [epiworld_model]. -#' @examples +#' @examples #' set.seed(2223) #' n <- 100000 -#' -#' # Creating the data to use for the "ModelSIRLogit" function. It contains -#' # information on the sex of each agent and will be used to determine -#' # differences in disease progression between males and females. Note that -#' # the number of rows in these data are identical to n (100000). +#' +#' # Creating the data to use for the "ModelSIRLogit" function. It contains +#' # information on the sex of each agent and will be used to determine +#' # differences in disease progression between males and females. Note that +#' # the number of rows in these data are identical to n (100000). #' X <- cbind( #' Intercept = 1, #' Female = sample.int(2, n, replace = TRUE) - 1 #' ) -#' +#' #' # Declare coefficients for each sex regarding transmission_rate and recovery. #' coef_infect <- c(.1, -2, 2) #' coef_recover <- rnorm(2) -#' -#' # Feed all above information into the "ModelSIRLogit" function. +#' +#' # Feed all above information into the "ModelSIRLogit" function. #' model_logit <- ModelSIRLogit( #' "covid2", #' data = X, #' coefs_infect = coef_infect, -#' coefs_recover = coef_recover, +#' coefs_recover = coef_recover, #' coef_infect_cols = 1L:ncol(X), #' coef_recover_cols = 1L:ncol(X), #' prob_infection = .8, #' recovery_rate = .3, #' prevalence = .01 #' ) -#' +#' #' agents_smallworld(model_logit, n, 8, FALSE, .01) -#' +#' #' run(model_logit, 50) -#' +#' #' plot(model_logit) -#' +#' #' # Females are supposed to be more likely to become infected. #' rn <- get_reproductive_number(model_logit) -#' -#' # Probability of infection for males and females. +#' +#' # Probability of infection for males and females. #' (table( #' X[, "Female"], #' (1:n %in% rn$source) -#' ) |> prop.table())[,2] -#' +#' ) |> prop.table())[, 2] +#' #' # Looking into the individual agents. #' get_agents(model_logit) #' @family Models ModelSIRLogit <- function( - vname, - data, - coefs_infect, - coefs_recover, - coef_infect_cols, - coef_recover_cols, - prob_infection, - recovery_rate, - prevalence -) { - + vname, + data, + coefs_infect, + coefs_recover, + coef_infect_cols, + coef_recover_cols, + prob_infection, + recovery_rate, + prevalence + ) { + structure( ModelSIRLogit_cpp( vname, @@ -88,5 +88,5 @@ ModelSIRLogit <- function( ), class = c("epiworld_sir", "epiworld_model") ) - + } diff --git a/R/ModelSIRMixing.R b/R/ModelSIRMixing.R index d10b5c29..5feb2562 100644 --- a/R/ModelSIRMixing.R +++ b/R/ModelSIRMixing.R @@ -2,45 +2,45 @@ #' @param name String. Name of the virus #' @param prevalence Double. Initial proportion of individuals with the virus. #' @param contact_rate Numeric scalar. Average number of contacts per step. -#' @param transmission_rate Numeric scalar between 0 and 1. Probability of +#' @param transmission_rate Numeric scalar between 0 and 1. Probability of #' transmission. #' @param recovery_rate Numeric scalar between 0 and 1. Probability of recovery. -#' @param x Object of class SIRCONN. +#' @param x Object of class SIRCONN. #' @param ... Currently ignore. #' @param n Number of individuals in the population. #' @param contact_matrix Matrix of contact rates between individuals. #' @export #' @family Models -#' @details +#' @details #' The `contact_matrix` is a matrix of contact rates between entities. The -#' matrix should be of size `n x n`, where `n` is the number of entities. +#' matrix should be of size `n x n`, where `n` is the number of entities. #' This is a row-stochastic matrix, i.e., the sum of each row should be 1. -#' +#' #' The [initial_states] function allows the user to set the initial state of the #' model. In particular, the user can specify how many of the non-infected #' agents have been removed at the beginning of the simulation. #' @returns #' - The `ModelSIRMixing`function returns a model of class [epiworld_model]. #' @aliases epiworld_sirmixing -#' -#' @examples +#' +#' @examples #' # From the vignette -#' +#' #' # Start off creating three entities. #' # Individuals will be distribured randomly between the three. #' e1 <- entity("Population 1", 3e3, as_proportion = FALSE) #' e2 <- entity("Population 2", 3e3, as_proportion = FALSE) #' e3 <- entity("Population 3", 3e3, as_proportion = FALSE) -#' +#' #' # Row-stochastic matrix (rowsums 1) #' cmatrix <- c( #' c(0.9, 0.05, 0.05), #' c(0.1, 0.8, 0.1), #' c(0.1, 0.2, 0.7) #' ) |> matrix(byrow = TRUE, nrow = 3) -#' +#' #' N <- 9e3 -#' +#' #' flu_model <- ModelSIRMixing( #' name = "Flu", #' n = N, @@ -50,39 +50,39 @@ #' recovery_rate = 1 / 7, #' contact_matrix = cmatrix #' ) -#' +#' #' # Adding the entities to the model #' flu_model |> #' add_entity(e1) |> #' add_entity(e2) |> #' add_entity(e3) -#' +#' #' set.seed(331) #' run(flu_model, ndays = 100) #' summary(flu_model) #' plot_incidence(flu_model) -#' +#' #' @seealso epiworld-methods ModelSIRMixing <- function( name, n, prevalence, contact_rate, transmission_rate, recovery_rate, contact_matrix -) { - + ) { + structure( ModelSIRMixing_cpp( - name, n, prevalence, contact_rate, + name, n, prevalence, contact_rate, transmission_rate, recovery_rate, as.vector(contact_matrix) - ), + ), class = c("epiworld_sirmixing", "epiworld_model") ) - + } #' @rdname ModelSIRMixing #' @export -#' @returns The `plot` function returns a plot of the SIRMixing model of class +#' @returns The `plot` function returns a plot of the SIRMixing model of class #' [epiworld_model]. #' @param main Title of the plot plot.epiworld_sirmixing <- function(x, main = get_name(x), ...) { # col = NULL - plot_epi(x, main = main, ...) + plot_epi(x, main = main, ...) } diff --git a/R/ModelSIS.R b/R/ModelSIS.R index 075035b7..a874a3ee 100644 --- a/R/ModelSIS.R +++ b/R/ModelSIS.R @@ -1,23 +1,23 @@ #' SIS model -#' +#' #' Susceptible-Infected-Susceptible model (SIS) ([wiki](https://en.wikipedia.org/w/index.php?title=Compartmental_models_in_epidemiology&oldid=1155757336#The_SIS_model)) #' #' @param name String. Name of the virus. #' @param prevalence Double. Initial proportion of individuals with the virus. -#' @param transmission_rate Numeric scalar between 0 and 1. Virus's rate of +#' @param transmission_rate Numeric scalar between 0 and 1. Virus's rate of #' infection. -#' @param recovery_rate Numeric scalar between 0 and 1. Rate of recovery from virus. -#' @param x Object of class SIS. -#' @param ... Currently ignore. +#' @param recovery_rate Numeric scalar between 0 and 1. Rate of recovery from virus. +#' @param x Object of class SIS. +#' @param ... Currently ignore. #' @export #' @family Models -#' @returns +#' @returns #' - The `ModelSIS` function returns a model of class [epiworld_model]. #' @aliases epiworld_sis -#' @examples -#' model_sis <- ModelSIS(name = "COVID-19", prevalence = 0.01, -#' transmission_rate = 0.9, recovery_rate = 0.1) -#' +#' @examples +#' model_sis <- ModelSIS(name = "COVID-19", prevalence = 0.01, +#' transmission_rate = 0.9, recovery_rate = 0.1) +#' #' # Adding a small world population #' agents_smallworld( #' model_sis, @@ -25,33 +25,33 @@ #' k = 5, #' d = FALSE, #' p = .01 -#' ) -#' +#' ) +#' #' # Running and printing #' run(model_sis, ndays = 100, seed = 1912) #' model_sis -#' +#' #' # Plotting #' plot(model_sis, main = "SIS Model") -#' +#' #' @seealso epiworld-methods ModelSIS <- function( name, prevalence, transmission_rate, recovery_rate) { - + structure( ModelSIS_cpp(name, prevalence, transmission_rate, recovery_rate), class = c("epiworld_sis", "epiworld_model") ) - + } #' @rdname ModelSIS #' @export -#' @returns -#' - The `plot` function returns a plot of the SIS model of class +#' @returns +#' - The `plot` function returns a plot of the SIS model of class #' [epiworld_model]. #' @param main Title of the plot. -plot.epiworld_sis <- function(x, main = get_name(x),...) { # col = NULL - plot_epi(x, main = main, ...) +plot.epiworld_sis <- function(x, main = get_name(x), ...) { # col = NULL + plot_epi(x, main = main, ...) } diff --git a/R/ModelSISD.R b/R/ModelSISD.R index 30abb6b5..bea44a08 100644 --- a/R/ModelSISD.R +++ b/R/ModelSISD.R @@ -1,29 +1,29 @@ #' SISD model -#' +#' #' Susceptible-Infected-Susceptible-Deceased model (SISD) ([wiki](https://en.wikipedia.org/w/index.php?title=Compartmental_models_in_epidemiology&oldid=1155757336#The_SIS_model)) #' #' @param name String. Name of the virus. #' @param prevalence Double. Initial proportion of individuals with the virus. -#' @param transmission_rate Numeric scalar between 0 and 1. Virus's rate of +#' @param transmission_rate Numeric scalar between 0 and 1. Virus's rate of #' infection. -#' @param recovery_rate Numeric scalar between 0 and 1. Rate of recovery from virus. +#' @param recovery_rate Numeric scalar between 0 and 1. Rate of recovery from virus. #' @param death_rate Numeric scalar between 0 and 1. Rate of death from virus. -#' @param x Object of class SISD. -#' @param ... Currently ignore. +#' @param x Object of class SISD. +#' @param ... Currently ignore. #' @export #' @family Models -#' @returns +#' @returns #' - The `ModelSISD` function returns a model of class [epiworld_model]. #' @aliases epiworld_sisd -#' @examples +#' @examples #' model_sisd <- ModelSISD( -#' name = "COVID-19", -#' prevalence = 0.01, -#' transmission_rate = 0.9, -#' recovery_rate = 0.1, -#' death_rate = 0.01 -#' ) -#' +#' name = "COVID-19", +#' prevalence = 0.01, +#' transmission_rate = 0.9, +#' recovery_rate = 0.1, +#' death_rate = 0.01 +#' ) +#' #' # Adding a small world population #' agents_smallworld( #' model_sisd, @@ -31,33 +31,33 @@ #' k = 5, #' d = FALSE, #' p = .01 -#' ) -#' +#' ) +#' #' # Running and printing #' run(model_sisd, ndays = 100, seed = 1912) #' model_sisd -#' +#' #' # Plotting #' plot(model_sisd, main = "SISD Model") -#' +#' #' @seealso epiworld-methods ModelSISD <- function( name, prevalence, transmission_rate, recovery_rate, death_rate) { - + structure( ModelSISD_cpp(name, prevalence, transmission_rate, recovery_rate, death_rate), class = c("epiworld_sisd", "epiworld_model") ) - + } #' @rdname ModelSISD #' @export -#' @returns -#' - The `plot` function returns a plot of the SISD model of class +#' @returns +#' - The `plot` function returns a plot of the SISD model of class #' [epiworld_model]. #' @param main Title of the plot. -plot.epiworld_sisd <- function(x, main = get_name(x),...) { # col = NULL - plot_epi(x, main = main, ...) +plot.epiworld_sisd <- function(x, main = get_name(x), ...) { # col = NULL + plot_epi(x, main = main, ...) } diff --git a/R/ModelSURV.R b/R/ModelSURV.R index b9312b72..33899c4e 100644 --- a/R/ModelSURV.R +++ b/R/ModelSURV.R @@ -1,5 +1,5 @@ #' SURV model -#' +#' #' #' @param name String. Name of the virus. #' @param prevalence Initial number of individuals with the virus. @@ -18,11 +18,11 @@ #' the chances of becoming infected. #' @param surveillance_prob Double. Probability of testing an agent. #' @param transmission_rate Double. Raw transmission probability. -#' @param prob_death Double. Raw probability of death for symptomatic +#' @param prob_death Double. Raw probability of death for symptomatic #' individuals. #' @param prob_noreinfect Double. Probability of no re-infection. -#' @param x Object of class SURV. -#' @param ... Currently ignore. +#' @param x Object of class SURV. +#' @param ... Currently ignore. #' @export #' @family Models #' @aliases epiworld_surv @@ -52,37 +52,37 @@ #' k = 5, #' d = FALSE, #' p = .01 -#' ) -#' +#' ) +#' #' # Running and printing #' run(model_surv, ndays = 100, seed = 1912) -#' model_surv -#' +#' model_surv +#' #' # Plotting #' plot(model_surv, main = "SURV Model") -#' +#' #' @seealso epiworld-methods ModelSURV <- function( - name, prevalence, efficacy_vax, latent_period, infect_period, prob_symptoms, - prop_vaccinated, prop_vax_redux_transm, prop_vax_redux_infect, - surveillance_prob, transmission_rate, prob_death, prob_noreinfect -) { - + name, prevalence, efficacy_vax, latent_period, infect_period, prob_symptoms, + prop_vaccinated, prop_vax_redux_transm, prop_vax_redux_infect, + surveillance_prob, transmission_rate, prob_death, prob_noreinfect + ) { + structure( - ModelSURV_cpp(name, prevalence, efficacy_vax, latent_period, infect_period, - prob_symptoms, prop_vaccinated, prop_vax_redux_transm, - prop_vax_redux_infect, surveillance_prob, transmission_rate, - prob_death, prob_noreinfect), + ModelSURV_cpp(name, prevalence, efficacy_vax, latent_period, infect_period, + prob_symptoms, prop_vaccinated, prop_vax_redux_transm, + prop_vax_redux_infect, surveillance_prob, transmission_rate, + prob_death, prob_noreinfect), class = c("epiworld_surv", "epiworld_model") ) - + } #' @rdname ModelSURV #' @export -#' @returns The `plot` function returns a plot of the SURV model of class +#' @returns The `plot` function returns a plot of the SURV model of class #' [epiworld_model]. #' @param main Title of the plot. plot.epiworld_surv <- function(x, main = get_name(x), ...) { # col = NULL - plot_epi(x, main = main, ...) + plot_epi(x, main = main, ...) } diff --git a/R/agents-methods.R b/R/agents-methods.R index 2c1bd5fb..81968896 100644 --- a/R/agents-methods.R +++ b/R/agents-methods.R @@ -1,57 +1,57 @@ #' Agents in epiworldR -#' +#' #' These functions provide read-access to the agents of the model. The #' `get_agents` function returns an object of class [epiworld_agents] which #' contains all the information about the agents in the model. The #' `get_agent` function returns the information of a single agent. #' And the `get_state` function returns the state of a single agent. -#' +#' #' @param model An object of class [epiworld_model]. #' @param x An object of class [epiworld_agents]. #' @seealso agents #' @export #' @aliases epiworld_agents -#' @return +#' @return #' - The `get_agents` function returns an object of class [epiworld_agents]. #' @examples -#' +#' #' model_sirconn <- ModelSIRCONN( -#' name = "COVID-19", -#' n = 10000, -#' prevalence = 0.01, -#' contact_rate = 5, -#' transmission_rate = 0.4, -#' recovery_rate = 0.95 +#' name = "COVID-19", +#' n = 10000, +#' prevalence = 0.01, +#' contact_rate = 5, +#' transmission_rate = 0.4, +#' recovery_rate = 0.95 #' ) -#' +#' #' run(model_sirconn, ndays = 100, seed = 1912) -#' -#' x <- get_agents(model_sirconn) # Storing all agent information into object of -#' # class epiworld_agents -#' -#' print(x, compressed = FALSE, max_print = 5) # Displaying detailed information of -#' # the first 5 agents using -#' # compressed=F. Using compressed=T -#' # results in less-detailed -#' # information about each agent. -#' -#' x[0] # Print information about the first agent. Substitute the agent of -#' # interest's position where '0' is. +#' +#' x <- get_agents(model_sirconn) # Storing all agent information into object of +#' # class epiworld_agents +#' +#' print(x, compressed = FALSE, max_print = 5) # Displaying detailed information of +#' # the first 5 agents using +#' # compressed=F. Using compressed=T +#' # results in less-detailed +#' # information about each agent. +#' +#' x[0] # Print information about the first agent. Substitute the agent of +#' # interest's position where '0' is. #' @name agents get_agents <- function(model, ...) UseMethod("get_agents") -#' @export +#' @export #' @rdname agents get_agents.epiworld_model <- function(model, ...) { - + res <- get_agents_cpp(model) - + structure( res, class = "epiworld_agents", model = model ) - + } #' @param x An object of class [epiworld_agents] @@ -62,61 +62,61 @@ get_agents.epiworld_model <- function(model, ...) { #' - The `[` method returns an object of class [epiworld_agent]. #' @aliases epiworld_agent `[.epiworld_agents` <- function(x, i) { - + structure( get_agent_cpp(x, i), class = "epiworld_agent", model = attr(x, "model") ) - + } `[.epiworld_agents` <- function(x, i) { - + structure( get_agent_cpp(x, i), class = "epiworld_agent", model = attr(x, "model") ) - + } #' @export #' @param compressed Logical scalar. When FALSE, it prints detailed information #' about the agent. #' @param ... Ignored -#' @returns -#' - The `print` function returns information about each individual agent of +#' @returns +#' - The `print` function returns information about each individual agent of #' class [epiworld_agent]. #' @rdname agents print.epiworld_agent <- function(x, compressed = FALSE, ...) { - + invisible(print_agent_cpp(x, attr(x, "model"), compressed)) - + } #' @export #' @param max_print Integer scalar. Maximum number of agents to print. #' @rdname agents print.epiworld_agents <- function(x, compressed = TRUE, max_print = 10, ...) { - + model <- attr(x, "model") cat(sprintf("Agents from the model \"%s\":\n", get_name(model))) n <- size(model) for (i in 1L:min(max_print, n)) { - + print(x[i - 1L], compressed) - + } - + if (n > max_print) cat(sprintf("... %i more agents ...\n", n - max_print)) - + invisible(x) - + } #' @export -#' @returns +#' @returns #' - The `get_state` function returns the state of the [epiworld_agents] object. #' @rdname agents get_state <- function(x) { diff --git a/R/agents.R b/R/agents.R index f4b4f8a1..34e775ae 100644 --- a/R/agents.R +++ b/R/agents.R @@ -4,13 +4,13 @@ stopifnot_agent <- function(x) { } #' Load agents to a model -#' +#' #' These functions provide access to the network of the model. The network is #' represented by an edgelist. The `agents_smallworld` function generates a -#' small world network with the Watts-Strogatz algorithm. The +#' small world network with the Watts-Strogatz algorithm. The #' `agents_from_edgelist` function loads a network from an edgelist. #' The `get_network` function returns the edgelist of the network. -#' +#' #' @param model Model object of class [epiworld_model]. #' @param source,target Integer vectors describing the source and target of #' in the edgelist. @@ -20,48 +20,48 @@ stopifnot_agent <- function(x) { #' @param p Probability of rewiring. #' @export #' @return -#' - The 'agents_smallworld' function returns a model with the agents +#' - The 'agents_smallworld' function returns a model with the agents #' loaded. #' @examples -#' +#' #' # Initializing SIR model with agents_smallworld -#' sir <- ModelSIR(name = "COVID-19", prevalence = 0.01, transmission_rate = 0.9, -#' recovery_rate = 0.1) +#' sir <- ModelSIR(name = "COVID-19", prevalence = 0.01, transmission_rate = 0.9, +#' recovery_rate = 0.1) #' agents_smallworld( -#' sir, -#' n = 1000, -#' k = 5, -#' d = FALSE, -#' p = .01 -#' ) +#' sir, +#' n = 1000, +#' k = 5, +#' d = FALSE, +#' p = .01 +#' ) #' run(sir, ndays = 100, seed = 1912) #' sir -#' +#' #' # We can also retrieve the network #' net <- get_network(sir) #' head(net) -#' +#' #' # Simulating a bernoulli graph #' set.seed(333) #' n <- 1000 -#' g <- matrix(runif(n ^ 2) < .01, nrow = n) +#' g <- matrix(runif(n^2) < .01, nrow = n) #' diag(g) <- FALSE #' el <- which(g, arr.ind = TRUE) - 1L -#' -#' +#' +#' #' # Generating an empty model #' sir <- ModelSIR("COVID-19", .01, .8, .3) #' agents_from_edgelist( #' sir, -#' source = el[,1], -#' target = el[,2], +#' source = el[, 1], +#' target = el[, 2], #' size = n, #' directed = TRUE #' ) -#' +#' #' # Running the simulation #' run(sir, 50) -#' +#' #' plot(sir) agents_smallworld <- function(model, n, k, d, p) UseMethod("agents_smallworld") @@ -75,17 +75,17 @@ agents_smallworld.epiworld_model <- function(model, n, k, d, p) { #' @export #' @return #' - The `agents_from_edgelist` function returns an empty model of class -#' `epiworld_model`. +#' `epiworld_model`. #' @rdname agents_smallworld agents_from_edgelist <- function( - model, source, target, size, directed - ) UseMethod("agents_from_edgelist") + model, source, target, size, directed + ) UseMethod("agents_from_edgelist") #' @export agents_from_edgelist.epiworld_model <- function( - model, source, target, size, directed - ) { - + model, source, target, size, directed + ) { + agents_from_edgelist_cpp( model, source, @@ -93,12 +93,12 @@ agents_from_edgelist.epiworld_model <- function( size, directed ) - + invisible(model) - + } -#' @export +#' @export #' @rdname agents_smallworld #' @aliases network #' @return @@ -109,8 +109,8 @@ get_network <- function(model) { get_network_cpp(model) } -#' @export -#' @return +#' @export +#' @return #' - `get_agents_states` returns an character vector with the states of the #' agents by the end of the simulation. #' @rdname agents_smallworld @@ -119,7 +119,7 @@ get_agents_states <- function(model) { get_agents_states_cpp(model) } -#' @export +#' @export #' @param agent Agent object of class `epiworld_agent`. #' @param virus Virus object of class `epiworld_virus`. #' @param state_new Integer scalar. New state of the agent after the action is executed. @@ -132,8 +132,8 @@ get_agents_states <- function(model) { #' - The function `add_virus_agent` adds a virus to an agent and #' returns the agent invisibly. add_virus_agent <- function( - agent, model, virus, state_new = -99, queue = -99 -) { + agent, model, virus, state_new = -99, queue = -99 + ) { stopifnot_model(model) stopifnot_virus(virus) @@ -152,8 +152,8 @@ add_virus_agent <- function( #' - The function `add_tool_agent` adds a tool to an agent and #' returns the agent invisibly. add_tool_agent <- function( - agent, model, tool, state_new = -99, queue = -99 -) { + agent, model, tool, state_new = -99, queue = -99 + ) { stopifnot_model(model) stopifnot_tool(tool) diff --git a/R/data.R b/R/data.R index 0f0f1508..20983a89 100644 --- a/R/data.R +++ b/R/data.R @@ -1,11 +1,11 @@ #' Accessing the database of epiworld -#' +#' #' Models in `epiworld` are stored in a database. This database can be accessed #' using the functions described in this manual page. Some elements of the -#' database are: the transition matrix, the incidence matrix, the reproductive +#' database are: the transition matrix, the incidence matrix, the reproductive #' number, the generation time, and daily incidence at the virus and tool level. -#' -#' +#' +#' #' @param x An object of class [`epiworld_sir`], [`epiworld_seir`], etc. #' any model. #' @param skip_zeros Logical scalar. When `FALSE` it will return all the @@ -20,75 +20,75 @@ #' name = "Disease", #' n = 10000, #' prevalence = 0.1, -#' contact_rate = 2.0, +#' contact_rate = 2.0, #' transmission_rate = 0.8, #' incubation_days = 7.0, #' recovery_rate = 0.3 #' ) -#' +#' #' # Running the simulation for 50 steps (days) #' set.seed(937) #' run(seirconn, 50) #' #' # Retrieving the transition probability -#' get_transition_probability(seirconn) -#' -#' # Retrieving date, state, and counts dataframe including any added tools +#' get_transition_probability(seirconn) +#' +#' # Retrieving date, state, and counts dataframe including any added tools #' get_hist_tool(seirconn) -#' -#' # Retrieving overall date, state, and counts dataframe +#' +#' # Retrieving overall date, state, and counts dataframe #' head(get_hist_total(seirconn)) -#' +#' #' # Retrieving date, state, and counts dataframe by variant #' head(get_hist_virus(seirconn)) -#' +#' #' # Retrieving (and plotting) the reproductive number #' rp <- get_reproductive_number(seirconn) #' plot(rp) # Also equivalent to plot_reproductive_number(seirconn) -#' +#' #' # We can go further and get all the history #' t_hist <- get_hist_transition_matrix(seirconn) -#' +#' #' head(t_hist) -#' +#' #' # And turn it into an array -#' as.array(t_hist)[,,1:3] -#' +#' as.array(t_hist)[, , 1:3] +#' #' # We cam also get (and plot) the incidence, as well as #' # the generation time #' inci <- plot_incidence(seirconn) #' gent <- plot_generation_time(seirconn) -#' +#' NULL #' @export -#' @returns -#' - The `get_hist_total` function returns an object of class +#' @returns +#' - The `get_hist_total` function returns an object of class #' [epiworld_hist_total]. #' @rdname epiworld-data #' @aliases epiworld_hist_total get_hist_total <- function(x) UseMethod("get_hist_total") #' @export -get_hist_total.epiworld_model <- function(x) { - +get_hist_total.epiworld_model <- function(x) { + res <- get_hist_total_cpp(x) structure( res, class = c("epiworld_hist_total", "epiworld_hist", "data.frame"), states = sort(unique(res$state)) ) - + } -#' @export +#' @export #' @rdname epiworld-data #' @returns #' - The `get_today_total` function returns a named vector with the #' total number of individuals in each state at the end of the simulation. get_today_total <- function(x) UseMethod("get_today_total") -#' @export +#' @export get_today_total.epiworld_model <- function(x) { get_today_total_cpp(x) } @@ -99,17 +99,17 @@ plot.epiworld_hist <- function(x, y, ...) { } #' @export -#' @returns -#' - The `get_hist_virus` function returns an object of class +#' @returns +#' - The `get_hist_virus` function returns an object of class #' [epiworld_hist_virus]. #' @rdname epiworld-data #' @aliases epiworld_hist_variant epiworld_hist_virus get_hist_virus <- function(x) UseMethod("get_hist_virus") #' @export -get_hist_virus.epiworld_model <- function(x) { +get_hist_virus.epiworld_model <- function(x) { res <- get_hist_virus_cpp(x) - + structure( res, class = c("epiworld_hist_virus", "epiworld_hist", "data.frame"), @@ -118,14 +118,14 @@ get_hist_virus.epiworld_model <- function(x) { } #' @export -#' @returns +#' @returns #' - The `get_hist_tool` function returns an object of [epiworld_hist_virus]. #' @rdname epiworld-data #' @aliases epiworld_hist_tool get_hist_tool <- function(x) UseMethod("get_hist_tool") #' @export -get_hist_tool.epiworld_model <- function(x) { +get_hist_tool.epiworld_model <- function(x) { res <- get_hist_tool_cpp(x) structure( res, @@ -135,26 +135,26 @@ get_hist_tool.epiworld_model <- function(x) { } #' @export -#' @returns -#' - The `get_transition_probability` function returns an object of class -#' `matrix`. +#' @returns +#' - The `get_transition_probability` function returns an object of class +#' `matrix`. #' @rdname epiworld-data get_transition_probability <- function(x) { UseMethod("get_transition_probability") } #' @export -get_transition_probability.epiworld_model <- function(x) { +get_transition_probability.epiworld_model <- function(x) { res <- get_transition_probability_cpp(x) s <- get_states(x) - + ns <- length(s) - + matrix(res, nrow = ns, ncol = ns, dimnames = list(s, s)) } #' @export -#' @returns +#' @returns #' - The `get_reproductive_number` function returns an object of class #' [epiworld_repnum]. #' @rdname epiworld-data @@ -173,8 +173,8 @@ get_reproductive_number.epiworld_model <- function(x) { #' @param plot Logical scalar. If `TRUE` (default), the function will the #' desired statistic. #' @param ylab,xlab,main,type Further parameters passed to [graphics::plot()] -#' @returns -#' - The `plot` function returns a plot of the reproductive number over time. +#' @returns +#' - The `plot` function returns a plot of the reproductive number over time. #' @export #' @importFrom stats sd quantile aggregate plot.epiworld_repnum <- function( @@ -186,7 +186,7 @@ plot.epiworld_repnum <- function( type = "b", plot = TRUE, ...) { - + if (nrow(x) == 0) { repnum <- data.frame( @@ -200,7 +200,6 @@ plot.epiworld_repnum <- function( ub = numeric() ) } else { - # Computing stats # Compute the mean and 95% CI of rt by virus and source_exposure_date using the repnum data.frame with the tapply function @@ -212,7 +211,7 @@ plot.epiworld_repnum <- function( by = list( virus_comb = x[["virus_comb"]], date = x[["source_exposure_date"]] - ), + ), FUN = function(x) { ci <- stats::quantile(x, c(0.025, 0.975), na.rm = TRUE) @@ -222,10 +221,10 @@ plot.epiworld_repnum <- function( sd = stats::sd(x, na.rm = TRUE), lb = ci[1], ub = ci[2] - ) + ) }, simplify = FALSE - ) + ) repnum <- cbind(repnum[, -3, drop = FALSE], do.call(rbind, repnum[, 3])) repnum <- repnum[order(repnum[["virus_comb"]], repnum[["date"]]), , drop = FALSE] @@ -237,15 +236,15 @@ plot.epiworld_repnum <- function( by = "virus_comb", all.x = TRUE, all.y = FALSE - ) - + ) + rownames(repnum) <- NULL # Reordering columns repnum <- repnum[, c( "virus_id", "virus", "date", "avg", "n", "sd", "lb", "ub", "virus_comb" - )] + )] } @@ -253,19 +252,19 @@ plot.epiworld_repnum <- function( # Nviruses vlabs <- sort(unique(x[, "virus_comb"])) nviruses <- length(vlabs) - + # # Figuring out the range yran <- range(repnum[["avg"]], na.rm = TRUE) xran <- range(repnum[["date"]], na.rm = TRUE) - + # Plotting ------------------------------------------------------------------- if (plot) { for (i in seq_along(vlabs)) { tmp <- repnum[repnum[["virus_comb"]] == vlabs[i], ] - + if (i == 1L) { - + graphics::plot( x = tmp[["date"]], y = tmp[["avg"]], @@ -283,7 +282,7 @@ plot.epiworld_repnum <- function( ) next } - + graphics::lines( x = tmp[["date"]], y = tmp[["avg"]], @@ -294,11 +293,11 @@ plot.epiworld_repnum <- function( type = type, ... ) - + } if (nviruses > 1L) { - + graphics::legend( "topright", legend = vlabs, @@ -308,7 +307,7 @@ plot.epiworld_repnum <- function( title = "Virus", bty = "n" ) - + } } @@ -317,7 +316,7 @@ plot.epiworld_repnum <- function( repnum[["virus_comb"]] <- NULL invisible(repnum) - + } #' @export @@ -332,7 +331,7 @@ plot_reproductive_number <- function(x, ...) { #' @export #' @rdname epiworld-data -#' @returns +#' @returns #' - `get_hist_transition_matrix` returns a [data.frame] with four columns: #' "state_from", "state_to", "date", and "counts." get_hist_transition_matrix <- function(x, skip_zeros = FALSE) @@ -340,47 +339,47 @@ get_hist_transition_matrix <- function(x, skip_zeros = FALSE) #' @export get_hist_transition_matrix.epiworld_model <- function(x, skip_zeros = FALSE) { - + res <- get_hist_transition_matrix_cpp(x, skip_zeros) class(res) <- c("epiworld_hist_transition", class(res)) - + attr(res, "states") <- get_states(x) attr(res, "nsteps") <- get_ndays(x) - + res - + } #' @export -#' @returns -#' - The `as.array` method for `epiworld_hist_transition` objects turns the +#' @returns +#' - The `as.array` method for `epiworld_hist_transition` objects turns the #' `data.frame` returned by `get_hist_transition_matrix` into an array of #' `nstates x nstates x (ndays + 1)` #' entries, where the first entry is the initial state. #' @rdname epiworld-data as.array.epiworld_hist_transition <- function(x, ...) { - + states <- attr(x, "states") n_states <- length(states) n_steps <- attr(x, "nsteps") - + res <- array( 0L, dim = c(n_states, n_states, n_steps + 1), # Includes the baseline dimnames = list(states, states, 0:n_steps) - ) - - res[cbind(x[,1], x[,2], x[,3])] <- x[,4] - + ) + + res[cbind(x[, 1], x[, 2], x[, 3])] <- x[, 4] + res } #' @export #' @rdname epiworld-data -#' @returns -#' - The `plot_incidence` function returns a plot originating from the object +#' @returns +#' - The `plot_incidence` function returns a plot originating from the object #' `get_hist_transition_matrix`. #' @details The `plot_incidence` function is a wrapper between #' [get_hist_transition_matrix] and it's plot method. @@ -388,28 +387,28 @@ plot_incidence <- function(x, ...) { plot(get_hist_transition_matrix(x), ...) } -#' @export +#' @export #' @returns -#' - The `plot` function returns a plot which originates from the +#' - The `plot` function returns a plot which originates from the #' `epiworld_hist_transition` object. #' @rdname epiworld-data #' @details The plot method for the `epiworld_hist_transition` class plots the #' daily incidence of each state. The function returns the data frame used for #' plotting. plot.epiworld_hist_transition <- function( - x, - type = "b", - xlab = "Day (step)", - ylab = "Counts", - main = "Daily incidence", - plot = TRUE, - ... - ) { - + x, + type = "b", + xlab = "Day (step)", + ylab = "Counts", + main = "Daily incidence", + plot = TRUE, + ... + ) { + if (!inherits(x, "epiworld_hist_transition")) { stop("The object must be of class 'epiworld_hist_transition'") } - + states <- attr(x, "states") n_states <- length(states) n_steps <- attr(x, "nsteps") @@ -431,27 +430,27 @@ plot.epiworld_hist_transition <- function( yran <- range(res) xran <- range(0:n_steps) for (i in is_not_zero) { - + col <- states[i] if (i == 1L) { - - graphics::plot( - x = as.integer(rownames(res)), - y = res[[col]], - col = i, - lwd = 2, - lty = i, - type = type, - xlab = xlab, - ylab = ylab, - main = main, - ylim = yran, - xlim = xran, - ... - ) - - next + + graphics::plot( + x = as.integer(rownames(res)), + y = res[[col]], + col = i, + lwd = 2, + lty = i, + type = type, + xlab = xlab, + ylab = ylab, + main = main, + ylim = yran, + xlim = xran, + ... + ) + + next } @@ -469,7 +468,7 @@ plot.epiworld_hist_transition <- function( # Creating a legend if (n_states > 1L) { - + graphics::legend( "topright", legend = states, @@ -479,10 +478,10 @@ plot.epiworld_hist_transition <- function( title = "States", bty = "n" ) - + } } - + invisible(res) } @@ -502,13 +501,13 @@ get_transmissions.epiworld_diffnet <- function(x) { #' @export get_transmissions.epiworld_model <- function(x) { - + res <- get_transmissions_cpp(x) structure( res, class = c("epiworld_transmissions", class(res)) ) - + } #' @export @@ -517,33 +516,33 @@ get_transmissions.epiworld_model <- function(x) { #' - The function `get_generation_time` returns a `data.frame` with #' the following columns: "agent", "virus_id", "virus", "date", and "gentime". get_generation_time <- function(x) { - - stopifnot_model(x) - res <- get_generation_time_cpp(x) - # Replacing -1 with NAs - res[["gentime"]][res[["gentime"]] == -1] <- NA_integer_ + stopifnot_model(x) + res <- get_generation_time_cpp(x) + + # Replacing -1 with NAs + res[["gentime"]][res[["gentime"]] == -1] <- NA_integer_ + + structure( + res, + class = c("epiworld_generation_time", class(res)), + n_steps = get_ndays(x) + ) - structure( - res, - class = c("epiworld_generation_time", class(res)), - n_steps = get_ndays(x) - ) - } #' @export #' @rdname epiworld-data plot.epiworld_generation_time <- function( - x, - type = "b", - xlab = "Day (step)", - ylab = "Avg. Generation Time", - main = "Generation Time", - plot = TRUE, - ... - ) { - + x, + type = "b", + xlab = "Day (step)", + ylab = "Avg. Generation Time", + main = "Generation Time", + plot = TRUE, + ... + ) { + if (!inherits(x, "epiworld_generation_time")) { stop("The object must be of class 'epiworld_generation_time'") } @@ -559,12 +558,12 @@ plot.epiworld_generation_time <- function( x[["gentime"]], by = list( date = x[["date"]], virus_comb = x[["virus_comb"]] - ), + ), FUN = function(x) { ci <- stats::quantile( x, probs = c(0.025, 0.975), na.rm = TRUE - ) - + ) + data.frame( avg = mean(x, na.rm = TRUE), n = sum(!is.na(x)), @@ -574,11 +573,11 @@ plot.epiworld_generation_time <- function( ) }, simplify = FALSE - ) + ) gt <- cbind(gt[, -3, drop = FALSE], do.call(rbind, gt[, 3])) gt <- gt[order(gt[["virus_comb"]], gt[["date"]]), , drop = FALSE] - + # Merging the virus and virus_id column of x to repnum gt <- merge( gt, @@ -586,15 +585,15 @@ plot.epiworld_generation_time <- function( by = "virus_comb", all.x = TRUE, all.y = FALSE - ) - + ) + rownames(gt) <- NULL # Replacing NaNs with NAs gt <- as.data.frame(lapply(gt, function(x) { x[is.nan(x)] <- NA x - })) + })) if (plot) { # Number of viruses @@ -604,9 +603,9 @@ plot.epiworld_generation_time <- function( for (i in 1L:n_viruses) { gt_i <- gt[gt[["virus_comb"]] == viruses[i], , drop = FALSE] - + if (i == 1L) { - + graphics::plot( x = gt_i[["date"]], y = gt_i[["avg"]], @@ -621,11 +620,11 @@ plot.epiworld_generation_time <- function( xlim = range(gt[["date"]], na.rm = TRUE), ... ) - + next - + } - + graphics::points( x = gt_i[["date"]], y = gt_i[["avg"]], @@ -639,7 +638,7 @@ plot.epiworld_generation_time <- function( # Creating a legend if (n_viruses > 1L) { - + graphics::legend( "topright", legend = viruses, @@ -649,7 +648,7 @@ plot.epiworld_generation_time <- function( title = "Virus", bty = "n" ) - + } } @@ -658,16 +657,15 @@ plot.epiworld_generation_time <- function( gt[["virus_comb"]] <- NULL invisible(gt) - - + + } -#' @export +#' @export #' @rdname epiworld-data -#' @return +#' @return #' - The function `plot_generation_time` is a wrapper for [plot] and #' [get_generation_time]. plot_generation_time <- function(x, ...) { plot(get_generation_time(x), ...) } - diff --git a/R/entity.R b/R/entity.R index e10c4227..52403368 100644 --- a/R/entity.R +++ b/R/entity.R @@ -12,37 +12,37 @@ stopifnot_entity_distfun <- function(distfun) { } #' Get entities -#' +#' #' Entities in `epiworld` are objects that can contain agents. #' @param model Model object of class `epiworld_model`. -#' -#' @details +#' +#' @details #' Epiworld entities are especially useful for mixing models, particularly #' [ModelSIRMixing] and [ModelSEIRMixing]. -#' +#' #' @name entities -#' @export -#' @examples +#' @export +#' @examples #' # Creating a mixing model #' mymodel <- ModelSIRMixing( -#' name = "My model", -#' n = 10000, -#' prevalence = .001, -#' contact_rate = 10, -#' transmission_rate = .1, -#' recovery_rate = 1/7, -#' contact_matrix = matrix(c(.9, .1, .1, .9), 2, 2) +#' name = "My model", +#' n = 10000, +#' prevalence = .001, +#' contact_rate = 10, +#' transmission_rate = .1, +#' recovery_rate = 1 / 7, +#' contact_matrix = matrix(c(.9, .1, .1, .9), 2, 2) #' ) -#' +#' #' ent1 <- entity("First", 5000, FALSE) #' ent2 <- entity("Second", 5000, FALSE) -#' +#' #' mymodel |> #' add_entity(ent1) |> #' add_entity(ent2) -#' +#' #' run(mymodel, ndays = 100, seed = 1912) -#' +#' #' summary(mymodel) get_entities <- function(model) { @@ -67,14 +67,14 @@ print.epiworld_entities <- function(x, ...) { invisible(x) } -#' @export +#' @export #' @rdname entities #' @param x Object of class `epiworld_entities`. #' @param i Integer index. `[.epiworld_entities` <- function(x, i) { stopifnot_entity(x) - + if (i > get_entity_size(x)) { stop("Index out of bounds.") } @@ -87,14 +87,14 @@ print.epiworld_entities <- function(x, ...) { } -#' @export +#' @export #' @param name Character scalar. Name of the entity. #' @param prevalence Numeric scalar. Prevalence of the entity. #' @param as_proportion Logical scalar. If `TRUE`, `prevalence` is interpreted #' as a proportion. #' @param to_unassigned Logical scalar. If `TRUE`, the entity is added to the #' unassigned pool. -#' @return +#' @return #' - The function `entity` creates an entity object. #' @rdname entities entity <- function(name, prevalence, as_proportion, to_unassigned = TRUE) { @@ -105,13 +105,13 @@ entity <- function(name, prevalence, as_proportion, to_unassigned = TRUE) { as.double(prevalence), as.logical(as_proportion), as.logical(to_unassigned) - ), + ), class = "epiworld_entity" ) } -#' @export +#' @export #' @rdname entities #' @param entity Entity object of class `epiworld_entity`. #' @return @@ -123,7 +123,7 @@ get_entity_size <- function(entity) { #' @export #' @rdname entities -#' @return +#' @return #' - The function `get_entity_name` returns the name of the entity. get_entity_name <- function(entity) { stopifnot_entity(entity) @@ -133,13 +133,13 @@ get_entity_name <- function(entity) { #' @export #' @rdname entities #' @param agent Agent object of class `epiworld_agent`. -#' @return +#' @return #' - The function `entity_add_agent` adds an agent to the entity. entity_add_agent <- function( - entity, - agent, - model = attr(entity, "model") - ) { + entity, + agent, + model = attr(entity, "model") + ) { stopifnot_entity(entity) stopifnot_agent(agent) @@ -152,10 +152,10 @@ entity_add_agent <- function( #' @export #' @rdname entities #' @param id Integer scalar. Entity id to remove (starting from zero). -#' @return +#' @return #' - The function `rm_entity` removes an entity from the model. rm_entity <- function(model, id) { - + stopifnot_model(model) rm_entity_cpp(model, entity) @@ -165,32 +165,32 @@ rm_entity <- function(model, id) { #' @export #' @rdname entities add_entity <- function( - model, - entity -) { + model, + entity + ) { stopifnot_model(model) stopifnot_entity(entity) add_entity_cpp( model, entity - ) + ) invisible(model) } -#' @export +#' @export #' @rdname entities -#' @param agents_id Integer vector. -#' @param entities_id Integer vector. -#' @return +#' @param agents_id Integer vector. +#' @param entities_id Integer vector. +#' @return #' - The function `load_agents_entities_ties` loads agents into entities. load_agents_entities_ties <- function( - model, - agents_id, - entities_id -) { + model, + agents_id, + entities_id + ) { stopifnot_model(model) if (!inherits(agents_id, "integer")) { @@ -207,9 +207,9 @@ load_agents_entities_ties <- function( } -#' @export +#' @export #' @rdname entities -#' @return +#' @return #' - The function `entity_get_agents` returns an integer vector with the agents #' in the entity (ids). entity_get_agents <- function(entity) { @@ -219,7 +219,7 @@ entity_get_agents <- function(entity) { } -#' @export +#' @export print.epiworld_entity <- function(x, ...) { print_entity_cpp(x) invisible(x) @@ -231,13 +231,13 @@ print.epiworld_entity <- function(x, ...) { #' as a proportion. #' @rdname entities distribute_entity_randomly <- function( - prevalence, - as_proportion, - to_unassigned = TRUE -) { + prevalence, + as_proportion, + to_unassigned = TRUE + ) { structure( - distribute_entity_randomly_cpp( + distribute_entity_randomly_cpp( as.double(prevalence), as.logical(as_proportion), as.logical(to_unassigned) @@ -251,9 +251,9 @@ distribute_entity_randomly <- function( #' @param agents_ids Integer vector. Ids of the agents to distribute. #' @rdname entities distribute_entity_to_set <- function( - agents_ids -) { - + agents_ids + ) { + structure( distribute_entity_to_set_cpp( as.integer(agents_ids) @@ -263,13 +263,13 @@ distribute_entity_to_set <- function( } -#' @export +#' @export #' @rdname entities #' @param distfun Distribution function object of class `epiworld_distribution_entity`. set_distribution_entity <- function( - entity, - distfun -) { + entity, + distfun + ) { stopifnot_entity(entity) stopifnot_entity_distfun(distfun) @@ -277,4 +277,4 @@ set_distribution_entity <- function( invisible(entity) -} \ No newline at end of file +} diff --git a/R/epiworldR-package.R b/R/epiworldR-package.R index d1a5744d..cfa3ff5c 100644 --- a/R/epiworldR-package.R +++ b/R/epiworldR-package.R @@ -2,4 +2,3 @@ #' @useDynLib epiworldR, .registration = TRUE #' @importFrom graphics boxplot plot "_PACKAGE" - diff --git a/R/epiworldR-package.R.in b/R/epiworldR-package.R.in index 21204cbb..415ae58f 100644 --- a/R/epiworldR-package.R.in +++ b/R/epiworldR-package.R.in @@ -2,4 +2,3 @@ #' @useDynLib @EPIWORLD_NAME@, .registration = TRUE #' @importFrom graphics boxplot plot "_PACKAGE" - diff --git a/R/functions-renamed.R b/R/functions-renamed.R index 61556bed..d6094f5a 100644 --- a/R/functions-renamed.R +++ b/R/functions-renamed.R @@ -2,7 +2,7 @@ #' @description #' Starting version 0.0-4, epiworld changed how it refered to "actions." #' Following more traditional ABMs, actions are now called "events." -#' +#' #' @param ... Arguments to be passed to the new function. #' @param model Model object of class `epiworld_model`. #' @param tool Tool object of class `epiworld_tool`. @@ -10,8 +10,8 @@ #' @name epiworldR-deprecated NULL -#' @param n Deprecated. -#' @export +#' @param n Deprecated. +#' @export #' @rdname epiworldR-deprecated add_tool_n <- function(model, tool, n) { @@ -24,12 +24,12 @@ add_tool_n <- function(model, tool, n) { as_proportion = TRUE ) ) - + add_tool(model, tool) } -#' @export +#' @export #' @rdname epiworldR-deprecated add_virus_n <- function(model, virus, n) { @@ -40,9 +40,9 @@ add_virus_n <- function(model, virus, n) { distfun = distribute_virus_randomly( prevalence = n, as_proportion = TRUE - ) + ) ) add_virus(model, virus) -} \ No newline at end of file +} diff --git a/R/global-actions.R b/R/global-actions.R index 2504e204..e305a298 100644 --- a/R/global-actions.R +++ b/R/global-actions.R @@ -1,15 +1,15 @@ #' Global Actions -#' +#' #' Global actions are functions that are executed at each time step of the #' simulation. They are useful for implementing interventions, such as #' vaccination, isolation, and social distancing by means of tools. -#' +#' #' @export #' @param prob Numeric scalar. A probability between 0 and 1. #' @param tool An object of class [tool]. #' @name global-actions -#' @examples +#' @examples #' # Simple model #' model_sirconn <- ModelSIRCONN( #' name = "COVID-19", @@ -19,7 +19,7 @@ #' transmission_rate = 0.4, #' recovery_rate = 0.95 #' ) -#' +#' #' # Creating a tool #' epitool <- tool( #' name = "Vaccine", @@ -27,20 +27,20 @@ #' as_proportion = FALSE, #' susceptibility_reduction = .9, #' transmission_reduction = .5, -#' recovery_enhancer = .5, +#' recovery_enhancer = .5, #' death_reduction = .9 #' ) -#' -#' +#' +#' #' # Adding a global action #' vaccine_day_20 <- globalevent_tool(epitool, .2, day = 20) #' add_globalevent(model_sirconn, vaccine_day_20) -#' +#' #' # Running and printing #' run(model_sirconn, ndays = 40, seed = 1912) #' model_sirconn #' plot_incidence(model_sirconn) -#' +#' #' # Example 2: Changing the contact rate ------------------------------------- #' model_sirconn2 <- ModelSIRCONN( #' name = "COVID-19", @@ -50,10 +50,10 @@ #' transmission_rate = 0.4, #' recovery_rate = 0.95 #' ) -#' +#' #' closure_day_10 <- globalevent_set_params("Contact rate", 0, day = 10) #' add_globalevent(model_sirconn2, closure_day_10) -#' +#' #' # Running and printing #' run(model_sirconn2, ndays = 40, seed = 1912) #' model_sirconn2 @@ -61,23 +61,23 @@ #' @returns #' - The `globalevent_set_params` function returns an object of class #' [epiworld_globalevent_set_param] and [epiworld_globalevent]. -#' -#' - `globalevent_tool` returns an object of class +#' +#' - `globalevent_tool` returns an object of class #' [epiworld_globalevent_tool] and [epiworld_globalevent]. -#' +#' #' - `globalevent_tool_logit` returns an object of class #' [epiworld_globalevent_tool_logit] and [epiworld_globalevent]. -#' @aliases +#' @aliases #' epiworld_globalevent_set_param #' epiworld_globalevent_tool #' epiworld_globalevent_tool_logit #' epiworld_globalevent #' actions -#' +#' globalevent_tool <- function( - tool, prob, - name = get_name_tool(tool), day = -99 - ) { + tool, prob, + name = get_name_tool(tool), day = -99 + ) { structure( globalevent_tool_cpp(tool, prob, name, day), @@ -93,7 +93,7 @@ globalaction_tool <- function(...) { .Defunct( new = "globalevent_tool" - ) + ) } @@ -107,9 +107,9 @@ globalaction_tool <- function(...) { #' `vars` is an integer vector indicating the position of the variables in the #' model. globalevent_tool_logit <- function( - tool, vars, coefs, - name = get_name_tool(tool), day = -99 - ) { + tool, vars, coefs, + name = get_name_tool(tool), day = -99 + ) { stopifnot_tool(tool) @@ -120,7 +120,7 @@ globalevent_tool_logit <- function( as.double(coefs), name, as.integer(day) - ), + ), class = c("epiworld_globalevent_tool_logit", "epiworld_globalevent"), tool = tool, call = match.call() @@ -134,13 +134,13 @@ globalaction_tool_logit <- function(...) { .Defunct( new = "globalevent_tool_logit" - ) + ) globalevent_tool_logit(...) - + } -#' @export +#' @export #' @param param Character scalar. The name of the parameter to be set. #' @param value Numeric scalar. The value of the parameter. #' @rdname global-actions @@ -148,9 +148,9 @@ globalaction_tool_logit <- function(...) { #' the model. The parameter is specified by its name `param` and the value by #' `value`. globalevent_set_params <- function( - param, value, - name = paste0("Set ", param, " to ", value), day = -99 - ) { + param, value, + name = paste0("Set ", param, " to ", value), day = -99 + ) { structure( globalevent_set_param_cpp( @@ -158,7 +158,7 @@ globalevent_set_params <- function( as.double(value), name, as.integer(day) - ), + ), class = c("epiworld_globalevent_set_param", "epiworld_globalevent"), param = param, value = as.double(value), @@ -173,22 +173,22 @@ globalaction_set_params <- function(...) { .Defunct( new = "globalevent_set_params" - ) + ) globalevent_set_params(...) - + } -#' @export +#' @export #' @rdname global-actions #' @param fun Function. The function to be executed. #' @details The function `globalevent_fun` allows to specify a function to be #' executed at a given day. The function object must receive an object of class #' [epiworld_model] as only argument. -#' @examples +#' @examples #' # Example using `globalevent_fun` to record the state of the #' # agents at each time step. -#' +#' #' # We start by creating an SIR connected model #' model <- ModelSIRCONN( #' name = "SIR with Global Saver", @@ -197,28 +197,28 @@ globalaction_set_params <- function(...) { #' contact_rate = 5, #' transmission_rate = 0.4, #' recovery_rate = 0.3 -#' ) -#' +#' ) +#' #' # We create the object where the history of the agents will be stored #' agents_history <- NULL -#' +#' #' # This function prints the total number of agents in each state #' # and stores the history of the agents in the object `agents_history` #' hist_saver <- function(m) { -#' +#' #' message("Today's totals are: ", paste(get_today_total(m), collapse = ", ")) -#' +#' #' # We use the `<<-` operator to assign the value to the global variable #' # `agents_history` (see ?"<<-") #' agents_history <<- cbind( #' agents_history, #' get_agents_states(m) -#' ) -#' +#' ) +#' #' } globalevent_fun <- function( - fun, name = deparse(substitute(fun)), day = -99 - ) { + fun, name = deparse(substitute(fun)), day = -99 + ) { structure( globalevent_fun_cpp(fun, name, as.integer(day)), @@ -235,10 +235,10 @@ globalaction_fun <- function(...) { .Defunct( new = "globalevent_fun" - ) + ) globalevent_fun(...) - + } #' @export @@ -273,11 +273,10 @@ print.epiworld_globalevent <- function(x, ...) { #' - The function `add_globalevent` returns the model with the added #' action. add_globalevent <- function(model, action) { - + if (length(attr(action, "tool"))) add_tool(model, attr(action, "tool")) invisible(add_globalevent_cpp(model, action)) } - diff --git a/R/make_saver.R b/R/make_saver.R index 74ecf634..72064ae7 100644 --- a/R/make_saver.R +++ b/R/make_saver.R @@ -1,9 +1,9 @@ #' Run multiple simulations at once -#' +#' #' The `run_multiple` function allows running multiple simulations at once. #' When available, users can take advantage of parallel computing to speed up #' the process. -#' +#' #' @param m,ndays,seed See [run]. #' @param saver An object of class [epiworld_saver]. #' @param nsims Integer. Number of replicats @@ -12,10 +12,10 @@ #' @param nthreads Integer. Number of threads (parallel computing.) #' @param reset When `TRUE` (default,) resets the simulation. #' @param verbose When `TRUE` (default,) prints a progress bar. -#' +#' #' @details #' Currently, the following elements can be saved: -#' +#' #' - `total_hist` History of the model (total numbers per time). #' - `virus_info` Information about `viruses`. #' - `virus_hist` Changes in `viruses`. @@ -25,7 +25,7 @@ #' - `transition` Transition matrices. #' - `reproductive` Reproductive number. #' - `generation` Estimation of generation time. -#' +#' #' @returns #' - In the case of `make_saver`, an list of class `epiworld_saver`. #' @examples @@ -35,28 +35,28 @@ #' n = 1000, #' contact_rate = 2, #' transmission_rate = 0.9, recovery_rate = 0.1 -#' ) -#' +#' ) +#' #' # Generating a saver #' saver <- make_saver("total_hist", "reproductive") -#' +#' #' # Running and printing #' run_multiple(model_sir, ndays = 100, nsims = 50, saver = saver, nthreads = 2) -#' +#' #' # Retrieving the results #' ans <- run_multiple_get_results(model_sir) -#' +#' #' head(ans$total_hist) #' head(ans$reproductive) -#' +#' #' # Plotting #' multi_sir <- run_multiple_get_results(model_sir)$total_hist -#' multi_sir <- multi_sir[multi_sir$date <= 20,] +#' multi_sir <- multi_sir[multi_sir$date <= 20, ] #' plot(multi_sir) -#' +#' #' @export -#' @returns -#' - The `run_multiple` function runs a specified number of simulations and +#' @returns +#' - The `run_multiple` function runs a specified number of simulations and #' returns a model object of class [epiworld_model]. run_multiple <- function( m, ndays, nsims, @@ -65,7 +65,7 @@ run_multiple <- function( reset = TRUE, verbose = TRUE, nthreads = 1L -) UseMethod("run_multiple") + ) UseMethod("run_multiple") #' @export run_multiple.epiworld_model <- function( @@ -75,8 +75,8 @@ run_multiple.epiworld_model <- function( reset = TRUE, verbose = TRUE, nthreads = 1L -) { - + ) { + if (!inherits(saver, "epiworld_saver")) stop("-saver- should be of class \"epiworld_saver\"") @@ -85,12 +85,12 @@ run_multiple.epiworld_model <- function( fnames <- list.files( path = dirname(saver$fn), full.names = TRUE - ) + ) if (length(fnames)) { unlink(fnames, expand = FALSE) } - + run_multiple_cpp( m, ndays, @@ -101,45 +101,44 @@ run_multiple.epiworld_model <- function( verbose, nthreads ) - + attr(m, "saver") <- saver - + invisible(m) - + } #' @export #' @rdname run_multiple -#' @returns +#' @returns #' - The `run_multiple_get_results` function returns a named list with the #' data specified by `make_saver`. #' @importFrom utils read.table run_multiple_get_results <- function(m) { - + if (!inherits(m, "epiworld_model")) stop("-m- must be of class `epiworld_model`.") - + # Get the filepath saver <- attr(m, "saver") - - if (!length(saver)) + + if (!length(saver)) stop("No -saver- found. -run_multiple_get_results- can only be used after using -run_multiple-.") - + output <- vector("list", length(saver$what)) names(output) <- saver$what - + for (i in saver$what) { - # Listing the files fnames <- list.files( path = dirname(saver$fn), pattern = sprintf("%s\\.csv", i), full.names = TRUE ) - + # Reading the files output[[i]] <- lapply(fnames, utils::read.table, sep = " ", header = TRUE) - + # Getting number of simulation output[[i]] <- lapply(seq_along(fnames), function(j) { if (nrow(output[[i]][[j]]) > 0) @@ -147,14 +146,16 @@ run_multiple_get_results <- function(m) { else NULL }) - + # Putting all together output[[i]] <- do.call(rbind, output[[i]]) - + # If there are no observations, then - err_msg <- tryCatch({ - class(output[[i]]) <- c("epiworld_multiple_save_i", class(output[[i]])) - }, error = function(e) e + err_msg <- tryCatch( + { + class(output[[i]]) <- c("epiworld_multiple_save_i", class(output[[i]])) + }, + error = function(e) e ) if (inherits(err_msg, "error")) { @@ -162,26 +163,25 @@ run_multiple_get_results <- function(m) { warning( "When retrieving the saved results, for the case of ", i, ", there were no observations." - ) + ) class(output[[i]]) <- c( "epiworld_multiple_save_i", class(output[[i]]) - ) + ) } attr(output[[i]], "what") <- i - + } - + structure(output, class = c("epiworld_multiple_save", class(output))) - + } #' @export plot.epiworld_multiple_save <- function(x, y = NULL, ...) { - # what <- attr(x, "what") lapply(x, plot) @@ -196,61 +196,59 @@ plot.epiworld_multiple_save_i <- function(x, y = NULL, ...) { warning( "When plotting the saved results, for the case of ", what, ", there were no observations." - ) + ) return(NULL) } - + # If it is not reproductive number, then... if (what != "reproductive") { - + oldpar <- graphics::par( - mfrow = c(2, floor(length(unique(x$state))/2)) - ) + mfrow = c(2, floor(length(unique(x$state)) / 2)) + ) on.exit(graphics::par(oldpar)) - + for (what in unique(x$state)) { graphics::boxplot( counts ~ date, - data = x[x$state == what,,drop=FALSE], + data = x[x$state == what, , drop = FALSE], main = what, xlab = "Date", ylab = "Counts", border = "black", las = 2 - ) - + ) + } - + } else { - + plot.epiworld_multiple_save_reproductive_number(x, ...) } - - + + } #' @export plot.epiworld_multiple_save_reproductive_number <- function(x, y = NULL, ...) { - # Identifying sims sims <- sort(unique(x[["sim_num"]])) - + totals <- NULL for (s in sims) { - # Subsetting the data - x_tmp <- x[x[["sim_num"]] == s,, drop = FALSE] - + x_tmp <- x[x[["sim_num"]] == s, , drop = FALSE] + # Computing daily values totals <- rbind( totals, plot.epiworld_repnum(x_tmp, plot = FALSE) ) - + } - + graphics::boxplot( avg ~ date, data = totals, @@ -259,10 +257,10 @@ plot.epiworld_multiple_save_reproductive_number <- function(x, y = NULL, ...) { ylab = "rt", border = "black", las = 2 - ) - + ) + invisible(totals) - + } #' @export @@ -272,9 +270,9 @@ make_saver <- function( ..., fn = "" ) { - + what <- list(...) - + # Any missmatch? available <- c( "total_hist", @@ -287,22 +285,22 @@ make_saver <- function( "reproductive", "generation" ) - + not_in_available <- which(!(what %in% available)) if (length(not_in_available)) { stop( "The following elements in -what- are not supported: \"", paste(what[not_in_available], collapse = "\" , \""), "\"" - ) + ) } - + what_bool <- as.list(available %in% what) names(what_bool) <- available - + # Checking the filename file_output <- TRUE - + # Using tempfile to generate directories id <- basename(tempfile("epiworldR-")) @@ -316,9 +314,9 @@ make_saver <- function( } else if (!dir.exists(dirname(fn))) { stop("The directory \"", dirname(fn), "\" does not exists.") } - + what_bool$fn <- fn - + # Generating the saver structure( list( @@ -327,22 +325,21 @@ make_saver <- function( file_output = file_output, what = available[which(available %in% what)], id = id - ), + ), class = "epiworld_saver" ) - + } #' @export print.epiworld_saver <- function(x, ...) { - + cat("A saver for -run_multiple-\n") cat("Saves the following:", paste(x$what, sep = ", "), "\n") cat("To file :", ifelse(x$file_output, "yes", "no"), "\n") if (x$file_output) cat("Saver pattern :", x$fn) - + invisible(x) } - diff --git a/R/model-methods.R b/R/model-methods.R index 61210d0d..464927b2 100644 --- a/R/model-methods.R +++ b/R/model-methods.R @@ -2,19 +2,19 @@ stopifnot_model <- function(model) { if (!inherits(model, "epiworld_model")) { stop( "The -model- object must be of class \"epiworld_model\". ", - "The object passed to the function is of class(es): ", + "The object passed to the function is of class(es): ", paste(class(model), collapse = ", ") ) } } #' Methods for epiworldR objects -#' +#' #' The functions described in this section are methods for objects of class #' `epiworld_model`. Besides of printing and plotting, other methods provide #' access to manipulate model parameters, getting information about the model #' and running the simulation. -#' +#' #' @param x An object of class `epiworld_model`. #' @param ndays Number of days (steps) of the simulation. #' @param seed Seed to set for initializing random number generator. @@ -23,83 +23,83 @@ stopifnot_model <- function(model) { #' @name epiworld-methods #' @aliases epiworld_model #' @examples -#' +#' #' model_sirconn <- ModelSIRCONN( -#' name = "COVID-19", -#' n = 10000, -#' prevalence = 0.01, -#' contact_rate = 5, -#' transmission_rate = 0.4, -#' recovery_rate = 0.95 +#' name = "COVID-19", +#' n = 10000, +#' prevalence = 0.01, +#' contact_rate = 5, +#' transmission_rate = 0.4, +#' recovery_rate = 0.95 #' ) -#' -#' # Queuing - If you wish to implement the queuing function, declare whether -#' # you would like it "on" or "off", if any. +#' +#' # Queuing - If you wish to implement the queuing function, declare whether +#' # you would like it "on" or "off", if any. #' queuing_on(model_sirconn) #' queuing_off(model_sirconn) #' run(model_sirconn, ndays = 100, seed = 1912) -#' -#' # Verbose - "on" prints the progress bar on the screen while "off" -#' # deactivates the progress bar. Declare which function you want to implement, -#' # if any. +#' +#' # Verbose - "on" prints the progress bar on the screen while "off" +#' # deactivates the progress bar. Declare which function you want to implement, +#' # if any. #' verbose_on(model_sirconn) #' verbose_off(model_sirconn) #' run(model_sirconn, ndays = 100, seed = 1912) -#' +#' #' get_states(model_sirconn) # Returns all unique states found within the model. -#' -#' get_param(model_sirconn, 'Contact rate') # Returns the value of the selected -#' # parameter within the model object. -#' # In order to view the parameters, -#' # run the model object and find the -#' # "Model parameters" section. -#' -#' set_param(model_sirconn, 'Contact rate', 2) # Allows for adjustment of model -#' # parameters within the model -#' # object. In this example, the -#' # Contact rate parameter is -#' # changed to 2. You can now rerun -#' # the model to observe any -#' # differences. -#' -#' set_name(model_sirconn, 'My Epi-Model') # This function allows for setting -#' # a name for the model. Running the -#' # model object, the name of the model -#' # is now reflected next to "Name of -#' # the model". -#' -#' get_name(model_sirconn) # Returns the set name of the model. -#' -#' get_n_viruses(model_sirconn) # Returns the number of viruses in the model. -#' # In this case, there is only one virus: -#' # "COVID-19". -#' -#' get_n_tools(model_sirconn) # Returns the number of tools in the model. In -#' # this case, there are zero tools. -#' +#' +#' get_param(model_sirconn, "Contact rate") # Returns the value of the selected +#' # parameter within the model object. +#' # In order to view the parameters, +#' # run the model object and find the +#' # "Model parameters" section. +#' +#' set_param(model_sirconn, "Contact rate", 2) # Allows for adjustment of model +#' # parameters within the model +#' # object. In this example, the +#' # Contact rate parameter is +#' # changed to 2. You can now rerun +#' # the model to observe any +#' # differences. +#' +#' set_name(model_sirconn, "My Epi-Model") # This function allows for setting +#' # a name for the model. Running the +#' # model object, the name of the model +#' # is now reflected next to "Name of +#' # the model". +#' +#' get_name(model_sirconn) # Returns the set name of the model. +#' +#' get_n_viruses(model_sirconn) # Returns the number of viruses in the model. +#' # In this case, there is only one virus: +#' # "COVID-19". +#' +#' get_n_tools(model_sirconn) # Returns the number of tools in the model. In +#' # this case, there are zero tools. +#' #' get_ndays(model_sirconn) # Returns the length of the simulation in days. This -#' # will match "ndays" within the "run" function. -#' -#' get_n_replicates(model_sirconn) # Returns the number of replicates of the -#' # model. -#' -#' size(model_sirconn) # Returns the population size in the model. In this case, -#' # there are 10,000 agents in the model. +#' # will match "ndays" within the "run" function. +#' +#' get_n_replicates(model_sirconn) # Returns the number of replicates of the +#' # model. +#' +#' size(model_sirconn) # Returns the population size in the model. In this case, +#' # there are 10,000 agents in the model. #' # Set Agents Data -#' # First, your data matrix must have the same number of rows as agents in the -#' # model. Below is a generated matrix which will be passed into the -#' # "set_agents_data" function. -#' data <- matrix(data=runif(20000, min=0, max=100), nrow=10000, ncol=2) +#' # First, your data matrix must have the same number of rows as agents in the +#' # model. Below is a generated matrix which will be passed into the +#' # "set_agents_data" function. +#' data <- matrix(data = runif(20000, min = 0, max = 100), nrow = 10000, ncol = 2) #' set_agents_data(model_sirconn, data) -#' get_agents_data_ncols(model_sirconn) # Returns number of columns -#' -#' get_virus(model_sirconn, 0) # Returns information about the first virus in -#' # the model (index begins at 0). -#' -#' add_tool(model_sirconn, tool("Vaccine", .9, .9, .5, 1, prevalence = 0.5, as_prop = TRUE)) -#' get_tool(model_sirconn, 0) # Returns information about the first tool in the -#' # model. In this case, there are no tools so an -#' # error message will occur. +#' get_agents_data_ncols(model_sirconn) # Returns number of columns +#' +#' get_virus(model_sirconn, 0) # Returns information about the first virus in +#' # the model (index begins at 0). +#' +#' add_tool(model_sirconn, tool("Vaccine", .9, .9, .5, 1, prevalence = 0.5, as_prop = TRUE)) +#' get_tool(model_sirconn, 0) # Returns information about the first tool in the +#' # model. In this case, there are no tools so an +#' # error message will occur. queuing_on <- function(x) UseMethod("queuing_on") #' @export @@ -130,9 +130,9 @@ queuing_off.epiworld_model <- function(x) { #' @name epiworld-methods #' @export -#' @returns -#' - The `verbose_on` and `verbose_off` functions return the same model, however -#' `verbose_off` returns the model with no progress bar. +#' @returns +#' - The `verbose_on` and `verbose_off` functions return the same model, however +#' `verbose_off` returns the model with no progress bar. #' @details #' The `verbose_on` and `verbose_off` functions activate and deactivate printing #' progress on screen, respectively. Both functions return the model (`x`) invisibly. @@ -154,8 +154,8 @@ verbose_on.epiworld_model <- function(x) { } #' @export -#' @returns -#' - The `run` function returns the simulated model of class `epiworld_model`. +#' @returns +#' - The `run` function returns the simulated model of class `epiworld_model`. #' @rdname epiworld-methods run <- function(model, ndays, seed = sample.int(1e4, 1)) UseMethod("run") @@ -171,12 +171,12 @@ print.epiworld_model <- function(x, ...) { invisible(x) } -#' @export +#' @export #' @returns #' - The `summary` function prints a more detailed view of the model, and returns the same model invisibly. #' @rdname epiworld-methods #' @param object Object of class `epiworld_model`. -#' @param ... Additional arguments. +#' @param ... Additional arguments. summary.epiworld_model <- function(object, ...) { print_cpp(object, lite = FALSE) invisible(object) @@ -184,7 +184,7 @@ summary.epiworld_model <- function(object, ...) { #' @export #' @returns -#' - The `get_states` function returns the unique states found in a model. +#' - The `get_states` function returns the unique states found in a model. #' @rdname epiworld-methods get_states <- function(x) UseMethod("get_states") @@ -193,8 +193,8 @@ get_states.epiworld_model <- function(x) get_states_cpp(x) #' @export #' @param pname String. Name of the parameter. -#' @returns -#' - The `get_param` function returns a selected parameter from the model object +#' @returns +#' - The `get_param` function returns a selected parameter from the model object #' of class `epiworld_model`. #' @rdname epiworld-methods get_param <- function(x, pname) UseMethod("get_param") @@ -207,9 +207,9 @@ get_param.epiworld_model <- function(x, pname) { #' @export #' @param pval Numeric. Value of the parameter. -#' @returns +#' @returns #' - The `set_param` function does not return a value but instead alters a -#' parameter value. +#' parameter value. #' @rdname epiworld-methods set_param <- function(x, pname, pval) UseMethod("set_param") @@ -221,8 +221,8 @@ set_param.epiworld_model <- function(x, pname, pval) { #' @export #' @param mname String. Name of the model. -#' @returns -#' - The `set_name` function does not return a value but instead alters an object +#' @returns +#' - The `set_name` function does not return a value but instead alters an object #' of `epiworld_model`. #' @rdname epiworld-methods set_name <- function(x, mname) UseMethod("set_name") @@ -244,7 +244,7 @@ get_name.epiworld_model <- function(x) { get_name_cpp(x) } -#' @export +#' @export #' @rdname epiworld-methods #' @returns #' - `get_n_viruses` returns the number of viruses of the model. @@ -254,7 +254,7 @@ get_n_viruses <- function(x) UseMethod("get_n_viruses") get_n_viruses.epiworld_model <- function(x) get_n_viruses_cpp(x) -#' @export +#' @export #' @rdname epiworld-methods #' @returns #' - `get_n_tools` returns the number of tools of the model. @@ -264,7 +264,7 @@ get_n_tools <- function(x) UseMethod("get_n_tools") get_n_tools.epiworld_model <- function(x) get_n_tools_cpp(x) -#' @export +#' @export #' @rdname epiworld-methods #' @returns #' - `get_ndays` returns the number of days of the model. @@ -274,9 +274,9 @@ get_ndays <- function(x) UseMethod("get_ndays") get_ndays.epiworld_model <- function(x) get_ndays_cpp(x) -#' @export +#' @export #' @rdname epiworld-methods -#' @returns +#' @returns #' - `get_n_replicates` returns the number of replicates of the model. get_n_replicates <- function(x) UseMethod("get_n_replicates") @@ -286,9 +286,9 @@ get_n_replicates.epiworld_model <- function(x) get_n_replicates_cpp(x) #' @export #' @rdname epiworld-methods -#' @returns +#' @returns #' - `size.epiworld_model` returns the number of agents in the model. -#' +#' size <- function(x) UseMethod("size") #' @export @@ -298,38 +298,38 @@ size.epiworld_model <- function(x) size_cpp(x) #' @export #' @param data A numeric matrix. #' @returns -#' - The 'set_agents_data' function returns an object of class DataFrame. +#' - The 'set_agents_data' function returns an object of class DataFrame. #' @rdname epiworld-methods set_agents_data <- function(model, data) { - + if (!inherits(data, "matrix") | mode(data) != "numeric") stop("-data- must be a numeric (mode) matrix (class).") - + if (size(model) != nrow(data)) stop( "The number of rows in -data- (", nrow(data), ") doesn't match the number of agents in the model (", size(model), ")." - ) - + ) + invisible(set_agents_data_cpp(model = model, data = data, ncols = ncol(data))) - + } #' @export -#' @returns -#' - 'get_agents_data_ncols' returns the number of columns in the model dataframe. +#' @returns +#' - 'get_agents_data_ncols' returns the number of columns in the model dataframe. #' @rdname epiworld-methods get_agents_data_ncols <- function(model) { - + get_agents_data_ncols_cpp(model) - + } #' @export #' @param virus_pos Integer. Relative location (starting from 0) of the virus #' in the model -#' @returns +#' @returns #' - 'get_virus' returns a [virus]. #' @rdname epiworld-methods get_virus <- function(model, virus_pos) { @@ -342,7 +342,7 @@ get_virus <- function(model, virus_pos) { #' @export #' @param tool_pos Integer. Relative location (starting from 0) of the tool #' in the model -#' @returns +#' @returns #' - `get_tool` returns a [tool]. #' @rdname epiworld-methods get_tool <- function(model, tool_pos) { @@ -352,10 +352,10 @@ get_tool <- function(model, tool_pos) { ) } -#' @export +#' @export #' @param proportions Numeric vector. Proportions in which agents will be #' distributed (see details). -#' @return +#' @return #' - `inital_states` returns the model with an updated initial state. #' @rdname epiworld-methods initial_states <- function(model, proportions) { @@ -379,4 +379,3 @@ clone_model <- function(model) { class = class(model) ) } - diff --git a/R/plot_epi.R b/R/plot_epi.R index 36234322..b263a931 100644 --- a/R/plot_epi.R +++ b/R/plot_epi.R @@ -1,8 +1,8 @@ - #------------------------------------------------------------------------------ +#------------------------------------------------------------------------------ # BUILDING AND INITIALIZING SEIR MODEL # library(epiworldR) -# sir <- ModelSIR(name = "COVID-19", prevalence = 0.01, transmission_rate = 0.9, +# sir <- ModelSIR(name = "COVID-19", prevalence = 0.01, transmission_rate = 0.9, # recovery_rate = 0.1) @@ -37,15 +37,15 @@ plot_epi.epiworld_model <- function( x, main = "", counts_scale, ... -) { - + ) { + plot_epi( x = get_hist_total(x), main = main, counts_scale = counts_scale, ... ) - + } #' @export @@ -53,15 +53,15 @@ plot_epi.epiworld_hist_virus <- function( x, main = "", counts_scale, ... -) { - - res <- lapply(sort(unique(x$id)), function(i) x[x$id == i,]) - + ) { + + res <- lapply(sort(unique(x$id)), function(i) x[x$id == i, ]) + lapply(res, function(r) { plot_epi.epiworld_hist(r, main = paste0("Variant id ", r$id[1])) - }) + }) invisible(x) - + } #' @export @@ -69,84 +69,83 @@ plot_epi.epiworld_hist <- function( x, main = "", counts_scale, ... - ) { - + ) { + curves <- x state_names <- attr(curves, "states") - + # If the user didn't say what scale if (missing(counts_scale)) counts_scale <- find_scale(max(curves$counts)) - - curves$counts <- curves$counts/counts_scale - + + curves$counts <- curves$counts / counts_scale + # Initialize date vector of size length for state names - date_candidates <- integer(length = length(state_names)) + date_candidates <- integer(length = length(state_names)) # Identify max date when the counts stop significantly changing by state - - benchmark_value <- diff(range(curves$counts))/200 # 0.5% of range - + + benchmark_value <- diff(range(curves$counts)) / 200 # 0.5% of range + for (i in 1L:length(state_names)) { date_candidates[i] <- with( - curves[curves$state == state_names[i],], - sum(abs(diff(counts)) > benchmark_value ) - ) + curves[curves$state == state_names[i], ], + sum(abs(diff(counts)) > benchmark_value) + ) } - # Round the maximum date up to the nearest 10th + # Round the maximum date up to the nearest 10th max_date <- min( diff(range(curves$date)), max(ceiling(max(date_candidates) / 10L) * 10L, 10L) ) - + # Defining range of x values by max date as the max - curves <- curves[curves$date < max_date,] - # Defining range of y values + curves <- curves[curves$date < max_date, ] + # Defining range of y values counts_range <- range(curves$counts) # Plot the first state with( - curves[curves$state == state_names[1L],], + curves[curves$state == state_names[1L], ], graphics::plot( x = date, - y = counts, - type = 'l', + y = counts, + type = "l", col = 1, - ylim = counts_range, - xlab = "Day (step)", + ylim = counts_range, + xlab = "Day (step)", ylab = ifelse( counts_scale == 1L, "Population", paste("Population (", counts_scale, "'s)", sep = "") - ), + ), main = main ) ) - + # Plot the remaining states for (i in 2L:length(state_names)) { - + with( - curves[curves$state == state_names[i],], + curves[curves$state == state_names[i], ], graphics::lines( x = date, y = counts, - type = 'l', + type = "l", col = i - ) + ) ) - + } - + # Legend graphics::legend( "right", legend = state_names, col = 1L:length(state_names), - lty = 1L, + lty = 1L, lwd = 2L, bty = "n" - ) + ) } # plot_epi(sir, main = "SIR Model") - diff --git a/R/tool.R b/R/tool.R index d311891e..ff86257d 100644 --- a/R/tool.R +++ b/R/tool.R @@ -1,9 +1,9 @@ #' Tools in epiworld -#' +#' #' Tools are functions that affect how agents react to the virus. They can be #' used to simulate the effects of vaccination, isolation, and social #' distancing. -#' +#' #' @param model Model #' @param name Name of the tool #' @param susceptibility_reduction Numeric. Proportion it reduces susceptibility. @@ -11,7 +11,7 @@ #' @param recovery_enhancer Numeric. Proportion it improves recovery. #' @param death_reduction Numeric. Proportion it reduces probability of death.e #' @param tool_pos Positive integer. Index of the tool's position in the model. -#' @examples +#' @examples #' # Simple model #' model_sirconn <- ModelSIRCONN( #' name = "COVID-19", @@ -21,49 +21,49 @@ #' transmission_rate = 0.4, #' recovery_rate = 0.95 #' ) -#' +#' #' # Running and printing #' run(model_sirconn, ndays = 100, seed = 1912) #' plot(model_sirconn) -#' +#' #' epitool <- tool( #' name = "Vaccine", #' prevalence = 0.5, #' as_proportion = TRUE, #' susceptibility_reduction = .9, #' transmission_reduction = .5, -#' recovery_enhancer = .5, +#' recovery_enhancer = .5, #' death_reduction = .9 #' ) -#' +#' #' epitool -#' -#' set_name_tool(epitool, 'Pfizer') # Assigning name to the tool +#' +#' set_name_tool(epitool, "Pfizer") # Assigning name to the tool #' get_name_tool(epitool) # Returning the name of the tool #' add_tool(model_sirconn, epitool) #' run(model_sirconn, ndays = 100, seed = 1912) #' model_sirconn #' plot(model_sirconn) -#' +#' #' # To declare a certain number of individuals with the tool #' rm_tool(model_sirconn, 0) # Removing epitool from the model #' # Setting prevalence to 0.1 #' set_distribution_tool(epitool, distribute_tool_randomly(0.1, TRUE)) #' add_tool(model_sirconn, epitool) #' run(model_sirconn, ndays = 100, seed = 1912) -#' +#' #' # Adjusting probabilities due to tool -#' set_susceptibility_reduction(epitool, 0.1) # Susceptibility reduction +#' set_susceptibility_reduction(epitool, 0.1) # Susceptibility reduction #' set_transmission_reduction(epitool, 0.2) # Transmission reduction #' set_recovery_enhancer(epitool, 0.15) # Probability increase of recovery #' set_death_reduction(epitool, 0.05) # Probability reduction of death -#' -#' rm_tool(model_sirconn, 0) +#' +#' rm_tool(model_sirconn, 0) #' add_tool(model_sirconn, epitool) #' run(model_sirconn, ndays = 100, seed = 1912) # Run model to view changes -#' +#' #' @export -#' @returns +#' @returns #' - The `tool` function creates a tool of class [epiworld_tool]. #' @aliases epiworld_tool tool <- function( @@ -74,7 +74,7 @@ tool <- function( transmission_reduction, recovery_enhancer, death_reduction -) { + ) { uses_deprecated <- FALSE if (missing(prevalence)) { @@ -82,7 +82,7 @@ tool <- function( warning( "Starting version 0.3-0, the 'prevalence' argument is required.", " It will be set to be 0.5. Next versions will fail with an error." - ) + ) prevalence <- 0.5 as_proportion <- TRUE @@ -107,7 +107,7 @@ tool <- function( as_proportion = as_proportion ) ) - + } #' @export @@ -120,7 +120,7 @@ stopifnot_tool <- function(tool) { if (!inherits(tool, "epiworld_tool")) { stop( "The -tool- object must be of class \"epiworld_tool\". ", - "The object passed to the function is of class(es): ", + "The object passed to the function is of class(es): ", paste(class(tool), collapse = ", ") ) } @@ -130,7 +130,7 @@ stopifnot_tfun <- function(tfun) { if (!inherits(tfun, "epiworld_tool_fun")) { stop( "The -tfun- object must be of class \"epiworld_tool_fun\". ", - "The object passed to the function is of class(es): ", + "The object passed to the function is of class(es): ", paste(class(tfun), collapse = ", ") ) } @@ -140,7 +140,7 @@ stopifnot_tool_distfun <- function(tool_distfun) { if (!inherits(tool_distfun, "epiworld_tool_distfun")) { stop( "The -tool_distfun- object must be of class \"epiworld_tool_distfun\". ", - "The object passed to the function is of class(es): ", + "The object passed to the function is of class(es): ", paste(class(tool_distfun), collapse = ", ") ) } @@ -150,8 +150,8 @@ stopifnot_tool_distfun <- function(tool_distfun) { #' @details #' The name of the `epiworld_tool` object can be manipulated with the functions #' [set_name_tool()] and [get_name_tool()]. -#' @returns -#' - The `set_name_tool` function assigns a name to the tool of class +#' @returns +#' - The `set_name_tool` function assigns a name to the tool of class #' [epiworld_tool] and returns the tool. #' @rdname tool set_name_tool <- function(tool, name) { @@ -161,7 +161,7 @@ set_name_tool <- function(tool, name) { #' @returns -#' - The `get_name_tool` function returns the name of the tool of class +#' - The `get_name_tool` function returns the name of the tool of class #' [epiworld_tool]. #' @rdname tool #' @export @@ -173,18 +173,18 @@ get_name_tool <- function(tool) { #' @export #' @param tool An object of class `epiworld_tool` #' @param proportion Deprecated. -#' @details -#' The `add_tool` function adds the specified tool to the model of class +#' @details +#' The `add_tool` function adds the specified tool to the model of class #' [epiworld_model] with specified proportion. #' @rdname tool add_tool <- function(model, tool, proportion) { - + if (!missing(proportion)) { warning( "The 'proportion' argument is deprecated. ", "Use 'set_distribution_tool' instead." - ) + ) set_distribution_tool( tool = tool, @@ -217,7 +217,7 @@ add_tool.epiworld_model <- function(model, tool, proportion) { } #' @export -#' @returns +#' @returns #' - The `rm_tool` function removes the specified tool from a model. #' @rdname tool rm_tool <- function(model, tool_pos) { @@ -236,13 +236,13 @@ rm_tool <- function(model, tool_pos) { #' coefficients associated to the logit probability. #' @rdname tool #' @examples -#' +#' #' # Using the logit function -------------- #' sir <- ModelSIR( -#' name = "COVID-19", prevalence = 0.01, +#' name = "COVID-19", prevalence = 0.01, #' transmission_rate = 0.9, recovery_rate = 0.1 -#' ) -#' +#' ) +#' #' # Adding a small world population #' agents_smallworld( #' sir, @@ -251,7 +251,7 @@ rm_tool <- function(model, tool_pos) { #' d = FALSE, #' p = .01 #' ) -#' +#' #' # Creating a tool #' mask_wearing <- tool( #' name = "Mask", @@ -262,52 +262,53 @@ rm_tool <- function(model, tool_pos) { #' recovery_enhancer = 0.0, #' death_reduction = 0.0 #' ) -#' +#' #' add_tool(sir, mask_wearing) -#' +#' #' run(sir, ndays = 50, seed = 11) #' hist_0 <- get_hist_total(sir) -#' +#' #' # And adding features #' dat <- cbind( #' female = sample.int(2, 10000, replace = TRUE) - 1, #' x = rnorm(10000) #' ) -#' +#' #' set_agents_data(sir, dat) -#' +#' #' # Creating the logit function #' tfun <- tool_fun_logit( #' vars = c(0L, 1L), #' coefs = c(-1, 1), #' model = sir #' ) -#' +#' #' # The infection prob is lower -#' hist(plogis(dat %*% rbind(.5,1))) -#' +#' hist(plogis(dat %*% rbind(.5, 1))) +#' #' tfun # printing -#' -#' +#' +#' #' set_susceptibility_reduction_fun( #' tool = get_tool(sir, 0), #' model = sir, #' tfun = tfun -#' ) -#' +#' ) +#' #' run(sir, ndays = 50, seed = 11) #' hist_1 <- get_hist_total(sir) -#' +#' #' op <- par(mfrow = c(1, 2)) -#' plot(hist_0); abline(v = 30) -#' plot(hist_1); abline(v = 30) +#' plot(hist_0) +#' abline(v = 30) +#' plot(hist_1) +#' abline(v = 30) #' par(op) -#' -#' +#' tool_fun_logit <- function(vars, coefs, model) { - + stopifnot_model(model) - + structure( tool_fun_logit_cpp(as.integer(vars), as.double(coefs), model), class = "epiworld_tool_fun", @@ -316,12 +317,12 @@ tool_fun_logit <- function(vars, coefs, model) { coefs = coefs, model = model ) - + } #' @export print.epiworld_tool_fun <- function(x, ...) { - + cat("An epiworld_tool_function object.\n") cat("(model: ", get_name(attr(x, "model")), ")\n", sep = "") cat("This function was built using -tool_fun_logit()-. and it features ") @@ -334,9 +335,9 @@ print.epiworld_tool_fun <- function(x, ...) { ), collapse = "\n" ), "\n" ) - + invisible(x) - + } # Susceptibility reduction ----------------------------------------------------- @@ -345,75 +346,75 @@ print.epiworld_tool_fun <- function(x, ...) { #' @export #' @param prob Numeric scalar. A probability (between zero and one). #' @returns -#' - The `set_susceptibility_reduction` function assigns a probability reduction -#' to the specified tool of class [epiworld_tool]. +#' - The `set_susceptibility_reduction` function assigns a probability reduction +#' to the specified tool of class [epiworld_tool]. #' @rdname tool set_susceptibility_reduction <- function(tool, prob) { - + stopifnot_tool(tool) set_susceptibility_reduction_cpp(tool, as.double(prob)) - + } #' @export #' @param param Character scalar. Name of the parameter featured in `model` that #' will be added to the tool (see details). #' @details -#' In the case of `set_susceptibility_reduction_ptr`, `set_transmission_reduction_ptr`, +#' In the case of `set_susceptibility_reduction_ptr`, `set_transmission_reduction_ptr`, #' `set_recovery_enhancer`, and #' `set_death_reduction_ptr`, the corresponding parameters are passed as a pointer to #' the tool. The implication of using pointers is that the values will be #' read directly from the `model` object, so changes will be reflected. -#' +#' #' @rdname tool set_susceptibility_reduction_ptr <- function(tool, model, param) { - + stopifnot_tool(tool) stopifnot_model(model) invisible(set_susceptibility_reduction_ptr_cpp(tool, model, param)) - + } #' @export #' @param tfun An object of class `epiworld_tool_fun`. #' @rdname tool set_susceptibility_reduction_fun <- function(tool, model, tfun) { - + stopifnot_tool(tool) stopifnot_model(model) stopifnot_tfun(tfun) invisible(set_susceptibility_reduction_fun_cpp(tool, model, tfun)) - + } # Transmission reduction ------------------------------------------------------- #' @export #' @returns -#' - The `set_transmission_reduction` function assigns a probability reduction -#' to the specified tool of class [epiworld_tool]. +#' - The `set_transmission_reduction` function assigns a probability reduction +#' to the specified tool of class [epiworld_tool]. #' @rdname tool set_transmission_reduction <- function(tool, prob) { - + stopifnot_tool(tool) invisible(set_transmission_reduction_cpp(tool, as.double(prob))) - + } #' @export #' @rdname tool set_transmission_reduction_ptr <- function(tool, model, param) { - + stopifnot_tool(tool) stopifnot_model(model) invisible(set_transmission_reduction_ptr_cpp(tool, model, param)) - + } #' @export #' @rdname tool set_transmission_reduction_fun <- function(tool, model, tfun) { - + stopifnot_tool(tool) stopifnot_model(model) stopifnot_tfun(tfun) @@ -424,111 +425,111 @@ set_transmission_reduction_fun <- function(tool, model, tfun) { #' @export #' @returns -#' - The `set_recovery_enhancer` function assigns a probability increase -#' to the specified tool of class [epiworld_tool]. +#' - The `set_recovery_enhancer` function assigns a probability increase +#' to the specified tool of class [epiworld_tool]. #' @rdname tool set_recovery_enhancer <- function(tool, prob) { - + stopifnot_tool(tool) invisible(set_recovery_enhancer_cpp(tool, as.double(prob))) - + } #' @export #' @rdname tool set_recovery_enhancer_ptr <- function(tool, model, param) { - + stopifnot_tool(tool) stopifnot_model(model) invisible(set_recovery_enhancer_ptr_cpp(tool, model, param)) - + } #' @export #' @rdname tool set_recovery_enhancer_fun <- function(tool, model, tfun) { - + stopifnot_tool(tool) stopifnot_model(model) stopifnot_tfun(tfun) invisible(set_recovery_enhancer_fun_cpp(tool, model, tfun)) - + } # Death reduction -------------------------------------------------------------- #' @export #' @returns -#' - The `set_death_reduction` function assigns a probability decrease -#' to the specified tool of class [epiworld_tool]. +#' - The `set_death_reduction` function assigns a probability decrease +#' to the specified tool of class [epiworld_tool]. #' @rdname tool set_death_reduction <- function(tool, prob) { - + stopifnot_tool(tool) invisible(set_death_reduction_cpp(tool, as.double(prob))) - + } #' @export #' @rdname tool set_death_reduction_ptr <- function(tool, model, param) { - + stopifnot_tool(tool) stopifnot_model(model) invisible(set_death_reduction_ptr_cpp(tool, model, param)) - + } #' @export #' @rdname tool set_death_reduction_fun <- function(tool, model, tfun) { - + stopifnot_tool(tool) stopifnot_model(model) stopifnot_tfun(tfun) invisible(set_death_reduction_fun_cpp(tool, model, tfun)) - + } #' @export #' @rdname agents_smallworld -#' @returns +#' @returns #' - `get_agents_tools` returns a list of class `epiworld_agents_tools` #' with `epiworld_tools` (list of lists). get_agents_tools <- function(model) { - + stopifnot_model(model) - + res <- lapply( get_agents_tools_cpp(model), `class<-`, "epiworld_tools" ) - + structure(res, class = c("epiworld_agents_tools", class(res))) - + } -#' @export +#' @export #' @rdname tool #' @param max_print Numeric scalar. Maximum number of tools to print. #' @param ... Currently ignored. #' @param x An object of class `epiworld_agents_tools`. print.epiworld_agents_tools <- function(x, max_print = 10, ...) { - + for (i in 1:min(max_print, length(x))) { print_agent_tools_cpp(x[[i]]) } - + if (length(x) > max_print) { cat(sprintf("Showing first %s of %s tools.\n", max_print, length(x))) } - + invisible(x) - + } -#' @export +#' @export #' @details #' The `set_distribution_tool` function assigns a distribution function to the #' specified tool of class [epiworld_tool]. The distribution function can be @@ -546,19 +547,19 @@ set_distribution_tool <- function(tool, distfun) { #' @export #' @rdname tool -#' @details +#' @details #' The `distribute_tool_randomly` function creates a distribution function that #' randomly assigns the tool to a proportion of the population. #' @param as_proportion Logical scalar. If `TRUE`, `prevalence` is interpreted #' as a proportion of the total number of agents in the model. #' @param prevalence Numeric scalar. Prevalence of the tool. -#' @return +#' @return #' - The `distribute_tool_randomly` function returns a distribution function of #' class `epiworld_tool_distfun`. distribute_tool_randomly <- function( - prevalence, - as_proportion -) { + prevalence, + as_proportion + ) { structure( distribute_tool_randomly_cpp( @@ -572,7 +573,7 @@ distribute_tool_randomly <- function( #' @export #' @rdname tool -#' @details +#' @details #' The `distribute_tool_to_set` function creates a distribution function that #' assigns the tool to a set of agents. #' @param agents_ids Integer vector. Indices of the agents to which the tool @@ -581,8 +582,8 @@ distribute_tool_randomly <- function( #' - The `distribute_tool_to_set` function returns a distribution function of #' class `epiworld_tool_distfun`. distribute_tool_to_set <- function( - agents_ids -) { + agents_ids + ) { structure( distribute_tool_to_set_cpp( @@ -591,4 +592,4 @@ distribute_tool_to_set <- function( class = "epiworld_tool_distfun" ) -} \ No newline at end of file +} diff --git a/R/virus.R b/R/virus.R index b93b13d4..6ffa7c0e 100644 --- a/R/virus.R +++ b/R/virus.R @@ -1,9 +1,9 @@ #' Virus design -#' +#' #' Viruses can be considered to be anything that can be transmitted (e.g., -#' diseases, as well as ideas.) Most models in epiworldR can feature multiple +#' diseases, as well as ideas.) Most models in epiworldR can feature multiple #' viruses. -#' +#' #' @param name of the virus #' @param post_immunity Numeric scalar. Post immunity (prob of re-infection). #' @param prob_infecting Numeric scalar. Probability of infection (transmission). @@ -14,44 +14,44 @@ #' @details #' The [virus()] function can be used to initialize a virus. Virus features can #' then be modified using the functions `set_prob_*`. -#' +#' #' The function [virus_fun_logit()] creates a "virus function" that can be #' evaluated for transmission, recovery, and death. As the name sugests, it #' computes those probabilities using a logit function (see examples). -#' -#' @examples +#' +#' @examples #' mseirconn <- ModelSEIRCONN( #' name = "COVID-19", -#' prevalence = 0.01, +#' prevalence = 0.01, #' n = 10000, -#' contact_rate = 4, -#' incubation_days = 7, +#' contact_rate = 4, +#' incubation_days = 7, #' transmission_rate = 0.5, #' recovery_rate = 0.99 #' ) -#' +#' #' delta <- virus( #' "Delta Variant", 0, .5, .2, .01, prevalence = 0.3, as_proportion = TRUE #' ) -#' +#' #' # Adding virus and setting/getting virus name #' add_virus(mseirconn, delta) #' set_name_virus(delta, "COVID-19 Strain") #' get_name_virus(delta) -#' +#' #' run(mseirconn, ndays = 100, seed = 992) #' mseirconn -#' +#' #' rm_virus(mseirconn, 0) # Removing the first virus from the model object #' set_distribution_virus(delta, distribute_virus_randomly(100, as_proportion = FALSE)) -#' add_virus(mseirconn, delta) -#' +#' add_virus(mseirconn, delta) +#' #' # Setting parameters for the delta virus manually #' set_prob_infecting(delta, 0.5) #' set_prob_recovery(delta, 0.9) #' set_prob_death(delta, 0.01) #' run(mseirconn, ndays = 100, seed = 992) # Run the model to observe changes -#' +#' #' # If the states were (for example): #' # 1: Infected #' # 2: Recovered @@ -63,15 +63,15 @@ #' @export #' @aliases epiworld_virus virus <- function( - name, - prevalence, - as_proportion, - prob_infecting, - recovery_rate = 0.5, - prob_death = 0.0, - post_immunity = -1.0, - incubation = 7.0 - ) { + name, + prevalence, + as_proportion, + prob_infecting, + recovery_rate = 0.5, + prob_death = 0.0, + post_immunity = -1.0, + incubation = 7.0 + ) { uses_deprecated <- FALSE if (missing(prevalence)) { @@ -79,14 +79,14 @@ virus <- function( warning( "Starting version 0.3-0, the 'prevalence' argument is required.", " It will be set to be 0.5. Next versions will fail with an error." - ) + ) prevalence <- 0.5 as_proportion <- TRUE uses_deprecated <- TRUE } - + structure( virus_cpp( name, @@ -97,7 +97,7 @@ virus <- function( prob_death, post_immunity, incubation - ), + ), class = "epiworld_virus", uses_deprecated = uses_deprecated, deprecated_args = list( @@ -105,7 +105,7 @@ virus <- function( as_proportion = as_proportion ) ) - + } #' @export @@ -117,7 +117,7 @@ stopifnot_virus <- function(virus) { if (!inherits(virus, "epiworld_virus")) { stop( "The -virus- object must be of class \"epiworld_virus\". ", - "The object passed to the function is of class(es): ", + "The object passed to the function is of class(es): ", paste(class(virus), collapse = ", ") ) } @@ -127,7 +127,7 @@ stopifnot_vfun <- function(vfun) { if (!inherits(vfun, "epiworld_virus_fun")) { stop( "The -vfun- object must be of class \"epiworld_virus_fun\". ", - "The object passed to the function is of class(es): ", + "The object passed to the function is of class(es): ", paste(class(vfun), collapse = ", ") ) } @@ -137,7 +137,7 @@ stopifnot_virus_distfun <- function(virus_distfun) { if (!inherits(virus_distfun, "epiworld_virus_distfun")) { stop( "The -virus_distfun- object must be of class \"epiworld_virus_distfun\". ", - "The object passed to the function is of class(es): ", + "The object passed to the function is of class(es): ", paste(class(virus_distfun), collapse = ", ") ) } @@ -148,9 +148,9 @@ stopifnot_virus_distfun <- function(virus_distfun) { #' @details #' The name of the `epiworld_virus` object can be manipulated with the functions #' [set_name_virus()] and [get_name_virus()]. -#' @returns -#' - The `set_name_virus` function does not return a value, but merely assigns -#' a name to the virus of choice. +#' @returns +#' - The `set_name_virus` function does not return a value, but merely assigns +#' a name to the virus of choice. #' @rdname virus set_name_virus <- function(virus, name) { stopifnot_virus(virus) @@ -158,24 +158,24 @@ set_name_virus <- function(virus, name) { } #' @export -#' @returns -#' - The `get_name_virus` function returns the name of the virus of class +#' @returns +#' - The `get_name_virus` function returns the name of the virus of class #' [epiworld_virus]. #' @rdname virus get_name_virus <- function(virus) { stopifnot_virus(virus) get_name_virus_cpp(virus) } - + # Virus add -------------------------------------------------------------------- #' @export #' @rdname virus #' @param model An object of class `epiworld_model`. #' @param virus An object of class `epiworld_virus` -#' @param proportion Deprecated. -#' @returns -#' - The `add_virus` function does not return a value, instead it adds the +#' @param proportion Deprecated. +#' @returns +#' - The `add_virus` function does not return a value, instead it adds the #' virus of choice to the model object of class [epiworld_model]. add_virus <- function(model, virus, proportion) { @@ -184,11 +184,11 @@ add_virus <- function(model, virus, proportion) { warning( "The argument 'proportion' is deprecated and will be removed in ", "the next version." - ) + ) set_distribution_virus( - virus=virus, - distfun=distribute_virus_randomly(proportion, as_proportion = TRUE) + virus = virus, + distfun = distribute_virus_randomly(proportion, as_proportion = TRUE) ) } else if (isTRUE(attr(tool, "uses_deprecated"))) { @@ -209,80 +209,80 @@ add_virus <- function(model, virus, proportion) { #' @export add_virus.epiworld_model <- function(model, virus, proportion) { - + stopifnot_virus(virus) add_virus_cpp(model, virus) invisible(model) - + } #' @export add_virus.epiworld_sir <- function(model, virus, proportion) { - + stopifnot_virus(virus) virus_set_state(virus, init = 1, end = 2, removed = 2) invisible(add_virus_cpp(model, virus)) - + } #' @export add_virus.epiworld_sird <- function(model, virus, proportion) { - + stopifnot_virus(virus) virus_set_state(virus, init = 1, end = 2, removed = 3) invisible(add_virus_cpp(model, virus)) - + } #' @export add_virus.epiworld_sirconn <- function(model, virus, proportion) { - + stopifnot_virus(virus) add_virus.epiworld_sir(model, virus) - + } #' @export add_virus.epiworld_sirdconn <- function(model, virus, proportion) { - + stopifnot_virus(virus) add_virus.epiworld_sird(model, virus) - + } #' @export add_virus.epiworld_seir <- function(model, virus, proportion) { - + stopifnot_virus(virus) virus_set_state(virus, init = 1, end = 3, removed = 3) invisible(add_virus_cpp(model, virus)) - + } #' @export add_virus.epiworld_seird <- function(model, virus, proportion) { - + stopifnot_virus(virus) virus_set_state(virus, init = 1, end = 3, removed = 4) invisible(add_virus_cpp(model, virus)) - + } #' @export add_virus.epiworld_seirconn <- function(model, virus, proportion) { - + stopifnot_virus(virus) add_virus.epiworld_seir(model, virus) - + } #' @export add_virus.epiworld_seirdconn <- function(model, virus, proportion) { - + stopifnot_virus(virus) add_virus.epiworld_seird(model, virus) - + } # Virus MISC ------------------------------------------------------------------- @@ -291,26 +291,26 @@ add_virus.epiworld_seirdconn <- function(model, virus, proportion) { #' @rdname virus #' @param init,end,removed states after acquiring a virus, removing a virus, #' and removing the agent as a result of the virus, respectively. -#' @returns -#' - The `virus_set_state` function does not return a value but assigns +#' @returns +#' - The `virus_set_state` function does not return a value but assigns #' epidemiological properties to the specified virus of class [epiworld_virus]. virus_set_state <- function(virus, init, end, removed) { - + stopifnot_virus(virus) invisible(virus_set_state_cpp(virus, init, end, removed)) - + } #' @export -#' @returns -#' - The `rm_virus` function does not return a value, but instead removes +#' @returns +#' - The `rm_virus` function does not return a value, but instead removes #' a specified virus from the model of class [epiworld_model]. #' @rdname virus rm_virus <- function(model, virus_pos) { - + stopifnot_model(model) invisible(rm_virus_cpp(model, virus_pos)) - + } # Virus functions -------------------------------------------------------------- @@ -324,10 +324,10 @@ rm_virus <- function(model, virus_pos) { #' @examples #' # Using the logit function -------------- #' sir <- ModelSIR( -#' name = "COVID-19", prevalence = 0.01, +#' name = "COVID-19", prevalence = 0.01, #' transmission_rate = 0.9, recovery = 0.1 -#' ) -#' +#' ) +#' #' # Adding a small world population #' agents_smallworld( #' sir, @@ -336,44 +336,43 @@ rm_virus <- function(model, virus_pos) { #' d = FALSE, #' p = .01 #' ) -#' +#' #' run(sir, ndays = 50, seed = 11) #' plot(sir) -#' +#' #' # And adding features #' dat <- cbind( #' female = sample.int(2, 10000, replace = TRUE) - 1, #' x = rnorm(10000) #' ) -#' +#' #' set_agents_data(sir, dat) -#' +#' #' # Creating the logit function #' vfun <- virus_fun_logit( #' vars = c(0L, 1L), #' coefs = c(-1, 1), #' model = sir #' ) -#' +#' #' # The infection prob is lower -#' hist(plogis(dat %*% rbind(-1,1))) -#' +#' hist(plogis(dat %*% rbind(-1, 1))) +#' #' vfun # printing -#' +#' #' set_prob_infecting_fun( #' virus = get_virus(sir, 0), #' model = sir, #' vfun = vfun -#' ) -#' +#' ) +#' #' run(sir, ndays = 50, seed = 11) #' plot(sir) -#' -#' +#' virus_fun_logit <- function(vars, coefs, model) { - + stopifnot_model(model) - + structure( virus_fun_logit_cpp(vars, coefs, model), class = "epiworld_virus_fun", @@ -382,12 +381,12 @@ virus_fun_logit <- function(vars, coefs, model) { coefs = coefs, model = model ) - + } #' @export print.epiworld_virus_fun <- function(x, ...) { - + cat("An epiworld_virus_function object.\n") cat("(model: ", get_name(attr(x, "model")), ")\n", sep = "") cat("This function was built using -virus_fun_logit()-. and it features ") @@ -397,27 +396,27 @@ print.epiworld_virus_fun <- function(x, ...) { " % 2i: %5.2f", attr(x, "vars"), attr(x, "coefs") - ), collapse = "\n" + ), collapse = "\n" ), "\n" ) - + invisible(x) - + } #' @export #' @param prob Numeric scalar. A probability (between zero and one). -#' @returns -#' - The `set_prob_infecting` function does not return a value, but instead -#' assigns a probability to infection for the specified virus of class +#' @returns +#' - The `set_prob_infecting` function does not return a value, but instead +#' assigns a probability to infection for the specified virus of class #' [epiworld_virus]. #' @rdname virus set_prob_infecting <- function(virus, prob) { - + stopifnot_virus(virus) invisible(set_prob_infecting_cpp(virus, as.numeric(prob))) - + } #' @export @@ -430,52 +429,52 @@ set_prob_infecting <- function(virus, prob) { #' read directly from the `model` object, so changes will be reflected. #' @rdname virus set_prob_infecting_ptr <- function(virus, model, param) { - + stopifnot_virus(virus) stopifnot_model(model) invisible(set_prob_infecting_ptr_cpp(virus, model, param)) - + } #' @export #' @param vfun An object of class `epiworld_virus_fun`. #' @rdname virus set_prob_infecting_fun <- function(virus, model, vfun) { - + stopifnot_virus(virus) stopifnot_model(model) stopifnot_vfun(vfun) invisible(set_prob_infecting_fun_cpp(virus, model, vfun)) - + } #' @export -#' @returns -#' - The `set_prob_recovery` function does not return a value, but instead -#' assigns a probability to recovery for the specified virus of class +#' @returns +#' - The `set_prob_recovery` function does not return a value, but instead +#' assigns a probability to recovery for the specified virus of class #' [epiworld_virus]. #' @rdname virus set_prob_recovery <- function(virus, prob) { - + stopifnot_virus(virus) invisible(set_prob_recovery_cpp(virus, as.numeric(prob))) - + } #' @export #' @rdname virus set_prob_recovery_ptr <- function(virus, model, param) { - + stopifnot_virus(virus) stopifnot_model(model) invisible(set_prob_recovery_ptr_cpp(virus, model, param)) - + } #' @export #' @rdname virus set_prob_recovery_fun <- function(virus, model, vfun) { - + stopifnot_virus(virus) stopifnot_model(model) stopifnot_vfun(vfun) @@ -484,81 +483,81 @@ set_prob_recovery_fun <- function(virus, model, vfun) { } #' @export -#' @returns -#' - The `set_prob_death` function does not return a value, but instead -#' assigns a probability to death for the specified virus of class +#' @returns +#' - The `set_prob_death` function does not return a value, but instead +#' assigns a probability to death for the specified virus of class #' [epiworld_virus]. #' @rdname virus set_prob_death <- function(virus, prob) { - + stopifnot_virus(virus) invisible(set_prob_death_cpp(virus, as.numeric(prob))) - + } #' @export #' @rdname virus set_prob_death_ptr <- function(virus, model, param) { - + stopifnot_virus(virus) stopifnot_model(model) invisible(set_prob_death_ptr_cpp(virus, model, param)) - + } #' @export #' @rdname virus set_prob_death_fun <- function(virus, model, vfun) { - + stopifnot_virus(virus) stopifnot_model(model) stopifnot_vfun(vfun) invisible(set_prob_death_fun_cpp(virus, model, vfun)) - + } -#' @export -#' @return +#' @export +#' @return #' - The `set_incubation` function does not return a value, but instead #' assigns an incubation period to the specified virus of class [epiworld_virus]. #' @rdname virus set_incubation <- function(virus, incubation) { - + stopifnot_virus(virus) invisible(set_incubation_cpp(virus, as.numeric(incubation))) - + } #' @export #' @rdname virus set_incubation_ptr <- function(virus, model, param) { - + stopifnot_virus(virus) stopifnot_model(model) invisible(set_incubation_ptr_cpp(virus, model, param)) - + } #' @export #' @rdname virus set_incubation_fun <- function(virus, model, vfun) { - + stopifnot_virus(virus) stopifnot_model(model) stopifnot_vfun(vfun) invisible(set_incubation_fun_cpp(virus, model, vfun)) - + } #' @export #' @rdname virus #' @param distfun An object of class `epiworld_distribution_virus`. set_distribution_virus <- function(virus, distfun) { - + stopifnot_virus(virus) stopifnot_virus_distfun(distfun) invisible(set_distribution_virus_cpp(virus, distfun)) - + } #' @export @@ -570,13 +569,13 @@ set_distribution_virus <- function(virus, distfun) { #' @param prevalence Numeric scalar. Prevalence of the virus. #' @param as_proportion Logical scalar. If `TRUE`, the prevalence is set as a #' proportion of the total number of agents in the model. -#' @return +#' @return #' - The `distribute_virus_randomly` function returns a function that can be #' used to distribute the virus in the model. distribute_virus_randomly <- function( - prevalence, - as_proportion -) { + prevalence, + as_proportion + ) { structure( distribute_virus_randomly_cpp( @@ -593,10 +592,10 @@ distribute_virus_randomly <- function( #' @param agents_ids Integer vector. Indices of the agents that will receive the #' virus. distribute_virus_set <- function(agents_ids) { - + structure( distribute_virus_to_set_cpp(as.vector(agents_ids)), class = "epiworld_virus_distfun" ) - -} \ No newline at end of file + +} diff --git a/README.Rmd b/README.Rmd index ba6d4105..2d336627 100644 --- a/README.Rmd +++ b/README.Rmd @@ -13,7 +13,7 @@ knitr::opts_chunk$set( ) ``` -# epiworldR +# epiworldR [![CRAN status](https://www.r-pkg.org/badges/version/epiworldR)](https://CRAN.R-project.org/package=epiworldR) @@ -39,8 +39,8 @@ From the package's description: Current available models: ```{r print-models, echo=FALSE, results='asis'} -models <- list.files(path="R/", pattern = "Model.*.R", full.names = FALSE) |> - gsub(pattern = "(Model.*)\\.R", replacement = "\\1") +models <- list.files(path = "R/", pattern = "Model.*.R", full.names = FALSE) |> + gsub(pattern = "(Model.*)\\.R", replacement = "\\1") sprintf("%i. `%s`\n", 1:length(models), models) |> cat() @@ -80,8 +80,8 @@ sir <- ModelSIR( prevalence = .01, transmission_rate = .7, recovery = .3 - ) |> - # Adding a Small world population +) |> + # Adding a Small world population agents_smallworld(n = 100000, k = 10, d = FALSE, p = .01) |> # Running the model for 50 days run(ndays = 50, seed = 1912) @@ -104,22 +104,22 @@ The SEIR model is similar to the SIR model but includes an exposed state. Here, ```{r seir-conn} model_seirconn <- ModelSEIRCONN( name = "COVID-19", - prevalence = 0.01, + prevalence = 0.01, n = 10000, - contact_rate = 10, - incubation_days = 7, + contact_rate = 10, + incubation_days = 7, transmission_rate = 0.1, - recovery_rate = 1/7 + recovery_rate = 1 / 7 ) |> add_virus( - virus( - name = "COVID-19", - prevalence = 0.01, - as_proportion = TRUE, - prob_infecting = 0.01, - recovery_rate = 0.6, - prob_death = 0.5, - incubation = 7 - )) + virus( + name = "COVID-19", + prevalence = 0.01, + as_proportion = TRUE, + prob_infecting = 0.01, + recovery_rate = 0.6, + prob_death = 0.5, + incubation = 7 +)) set.seed(132) run(model_seirconn, ndays = 100) @@ -141,9 +141,9 @@ head(plot_generation_time(model_seirconn)) ## SIR Logit -This model provides a more complex transmission and recovery pattern based +This model provides a more complex transmission and recovery pattern based on agents' features. With it, we can reflect co-morbidities that could change -the probability of infection and recovery. Here, we simulate a population +the probability of infection and recovery. Here, we simulate a population including a dataset with two features: an intercept and a binary variable `Female`. The probability of infection and recovery are functions of the intercept and the `Female` variables. The following code simulates a population of 100,000 agents @@ -160,7 +160,7 @@ n <- 100000 X <- cbind( Intercept = 1, Female = sample.int(2, n, replace = TRUE) - 1 - ) +) coef_infect <- c(.1, -2, 2) coef_recover <- rnorm(2) @@ -170,7 +170,7 @@ model_logit <- ModelSIRLogit( "covid2", data = X, coefs_infect = coef_infect, - coefs_recover = coef_recover, + coefs_recover = coef_recover, coef_infect_cols = 1L:ncol(X), coef_recover_cols = 1L:ncol(X), prob_infection = .8, @@ -191,7 +191,7 @@ rn <- get_reproductive_number(model_logit) (table( X[, "Female"], (1:n %in% rn$source) -) |> prop.table())[,2] +) |> prop.table())[, 2] # Looking into the agents get_agents(model_logit) @@ -208,11 +208,11 @@ sir <- ModelSIR( prevalence = .01, transmission_rate = .5, recovery = .5 - ) |> - # Adding a Small world population - agents_smallworld(n = 500, k = 10, d = FALSE, p = .01) |> - # Running the model for 50 days - run(ndays = 50, seed = 1912) +) |> + # Adding a Small world population + agents_smallworld(n = 500, k = 10, d = FALSE, p = .01) |> + # Running the model for 50 days + run(ndays = 50, seed = 1912) # Transmission network net <- get_transmissions(sir) @@ -221,10 +221,10 @@ net <- get_transmissions(sir) library(epiworldR) library(netplot) x <- igraph::graph_from_edgelist( - as.matrix(net[,2:3]) + 1 - ) + as.matrix(net[, 2:3]) + 1 +) -nplot(x, edge.curvature = 0, edge.color = "gray", skip.vertex=TRUE) +nplot(x, edge.curvature = 0, edge.color = "gray", skip.vertex = TRUE) ``` ## Multiple simulations @@ -238,7 +238,7 @@ model_sir <- ModelSIRCONN( n = 1000, contact_rate = 2, transmission_rate = 0.9, recovery_rate = 0.1 - ) +) # Generating a saver saver <- make_saver("total_hist", "reproductive") @@ -295,5 +295,5 @@ You may want to check out other R packages for agent-based modeling: [`ABM`](htt [`RNetLogo`](https://cran.r-project.org/package=RNetLogo){target="_blank"}. ## Code of Conduct - + The epiworldR project is released with a [Contributor Code of Conduct](https://contributor-covenant.org/version/2/1/CODE_OF_CONDUCT.html). By contributing to this project, you agree to abide by its terms. diff --git a/README.md b/README.md index 8c19d6c4..b2260abb 100644 --- a/README.md +++ b/README.md @@ -105,8 +105,8 @@ sir <- ModelSIR( prevalence = .01, transmission_rate = .7, recovery = .3 - ) |> - # Adding a Small world population +) |> + # Adding a Small world population agents_smallworld(n = 100000, k = 10, d = FALSE, p = .01) |> # Running the model for 50 days run(ndays = 50, seed = 1912) @@ -114,6 +114,9 @@ sir <- ModelSIR( #> |Running the model... #> |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| done. #> | done. +``` + +``` r sir #> ________________________________________________________________________________ @@ -130,39 +133,42 @@ summary(sir) #> ________________________________________________________________________________ #> ________________________________________________________________________________ #> SIMULATION STUDY -#> +#> #> Name of the model : Susceptible-Infected-Recovered (SIR) #> Population size : 100000 #> Agents' data : (none) #> Number of entities : 0 #> Days (duration) : 50 (of 50) #> Number of viruses : 1 -#> Last run elapsed t : 134.00ms -#> Last run speed : 37.07 million agents x day / second +#> Last run elapsed t : 62.00ms +#> Last run speed : 80.26 million agents x day / second #> Rewiring : off -#> +#> #> Global events: #> (none) -#> +#> #> Virus(es): #> - COVID-19 -#> +#> #> Tool(s): #> (none) -#> +#> #> Model parameters: #> - Recovery rate : 0.3000 #> - Transmission rate : 0.7000 -#> +#> #> Distribution of the population at time 50: #> - (0) Susceptible : 99000 -> 822 #> - (1) Infected : 1000 -> 415 #> - (2) Recovered : 0 -> 98763 -#> +#> #> Transition Probabilities: #> - Susceptible 0.91 0.09 0.00 #> - Infected 0.00 0.70 0.30 #> - Recovered 0.00 0.00 1.00 +``` + +``` r plot(sir) ``` @@ -185,22 +191,22 @@ agents can transmit the disease to any other agent: ``` r model_seirconn <- ModelSEIRCONN( name = "COVID-19", - prevalence = 0.01, + prevalence = 0.01, n = 10000, - contact_rate = 10, - incubation_days = 7, + contact_rate = 10, + incubation_days = 7, transmission_rate = 0.1, - recovery_rate = 1/7 + recovery_rate = 1 / 7 ) |> add_virus( - virus( - name = "COVID-19", - prevalence = 0.01, - as_proportion = TRUE, - prob_infecting = 0.01, - recovery_rate = 0.6, - prob_death = 0.5, - incubation = 7 - )) + virus( + name = "COVID-19", + prevalence = 0.01, + as_proportion = TRUE, + prob_infecting = 0.01, + recovery_rate = 0.6, + prob_death = 0.5, + incubation = 7 +)) set.seed(132) run(model_seirconn, ndays = 100) @@ -208,47 +214,50 @@ run(model_seirconn, ndays = 100) #> Running the model... #> ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| done. #> done. +``` + +``` r summary(model_seirconn) #> ________________________________________________________________________________ #> ________________________________________________________________________________ #> SIMULATION STUDY -#> +#> #> Name of the model : Susceptible-Exposed-Infected-Removed (SEIR) (connected) #> Population size : 10000 #> Agents' data : (none) #> Number of entities : 0 #> Days (duration) : 100 (of 100) #> Number of viruses : 2 -#> Last run elapsed t : 81.00ms -#> Last run speed : 12.21 million agents x day / second +#> Last run elapsed t : 15.00ms +#> Last run speed : 63.50 million agents x day / second #> Rewiring : off -#> +#> #> Global events: #> - Update infected individuals (runs daily) -#> +#> #> Virus(es): #> - COVID-19 #> - COVID-19 -#> +#> #> Tool(s): #> (none) -#> +#> #> Model parameters: #> - Avg. Incubation days : 7.0000 #> - Contact rate : 10.0000 #> - Prob. Recovery : 0.1429 #> - Prob. Transmission : 0.1000 -#> +#> #> Distribution of the population at time 100: -#> - (0) Susceptible : 9800 -> 13 +#> - (0) Susceptible : 9800 -> 11 #> - (1) Exposed : 200 -> 0 -#> - (2) Infected : 0 -> 1 +#> - (2) Infected : 0 -> 3 #> - (3) Recovered : 0 -> 9986 -#> +#> #> Transition Probabilities: #> - Susceptible 0.94 0.06 0.00 0.00 -#> - Exposed 0.00 0.86 0.14 0.00 -#> - Infected 0.00 0.00 0.85 0.15 +#> - Exposed 0.00 0.85 0.15 0.00 +#> - Infected 0.00 0.00 0.86 0.14 #> - Recovered 0.00 0.00 0.00 1.00 ``` @@ -269,25 +278,28 @@ head(plot(repnum)) - #> virus_id virus date avg n sd lb ub - #> 1 0 COVID-19 0 5.615385 91 4.832228 1.0 17.0 - #> 2 0 COVID-19 2 5.000000 9 3.605551 0.2 10.4 - #> 3 0 COVID-19 3 6.000000 13 5.049752 0.0 13.0 - #> 4 0 COVID-19 4 4.592593 27 3.885469 0.0 12.7 - #> 5 0 COVID-19 5 4.846154 26 4.920913 0.0 14.5 - #> 6 0 COVID-19 6 4.236842 38 3.241906 0.0 12.0 + #> virus_id virus date avg n sd lb ub + #> 1 0 COVID-19 0 5.769231 91 5.455022 1.000 20.750 + #> 2 0 COVID-19 2 6.400000 10 4.880801 0.450 14.875 + #> 3 0 COVID-19 3 5.166667 18 4.422536 0.425 13.000 + #> 4 0 COVID-19 4 4.659091 44 3.784566 0.000 12.850 + #> 5 0 COVID-19 5 5.205882 34 3.273210 0.000 12.175 + #> 6 0 COVID-19 6 3.137255 51 2.713077 0.000 8.750 - head(plot_generation_time(model_seirconn)) +``` r + +head(plot_generation_time(model_seirconn)) +``` #> date avg n sd ci_lower ci_upper virus virus_id - #> 1 2 7.125000 8 2.474874 2.7 9.825 COVID-19 0 - #> 2 3 8.090909 11 7.203534 2.0 23.750 COVID-19 0 - #> 3 4 6.708333 24 4.338695 2.0 16.425 COVID-19 0 - #> 4 5 7.428571 21 4.738897 2.0 15.500 COVID-19 0 - #> 5 6 7.628571 35 4.173345 2.0 15.300 COVID-19 0 - #> 6 7 6.921053 38 4.675304 2.0 16.150 COVID-19 0 + #> 1 2 4.444444 9 2.185813 2.2 8.000 COVID-19 0 + #> 2 3 7.411765 17 3.922034 2.4 15.000 COVID-19 0 + #> 3 4 8.538462 39 7.100208 2.0 22.000 COVID-19 0 + #> 4 5 6.312500 32 3.905641 2.0 13.225 COVID-19 0 + #> 5 6 7.200000 40 4.052223 2.0 15.100 COVID-19 0 + #> 6 7 7.660000 50 4.461216 2.0 17.000 COVID-19 0 ## SIR Logit @@ -311,7 +323,7 @@ n <- 100000 X <- cbind( Intercept = 1, Female = sample.int(2, n, replace = TRUE) - 1 - ) +) coef_infect <- c(.1, -2, 2) coef_recover <- rnorm(2) @@ -321,7 +333,7 @@ model_logit <- ModelSIRLogit( "covid2", data = X, coefs_infect = coef_infect, - coefs_recover = coef_recover, + coefs_recover = coef_recover, coef_infect_cols = 1L:ncol(X), coef_recover_cols = 1L:ncol(X), prob_infection = .8, @@ -338,6 +350,9 @@ run(model_logit, 50) #> |Running the model... #> |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| done. #> | done. +``` + +``` r plot(model_logit) ``` @@ -351,9 +366,12 @@ rn <- get_reproductive_number(model_logit) (table( X[, "Female"], (1:n %in% rn$source) -) |> prop.table())[,2] -#> 0 1 +) |> prop.table())[, 2] +#> 0 1 #> 0.12984 0.14201 +``` + +``` r # Looking into the agents get_agents(model_logit) @@ -386,15 +404,18 @@ sir <- ModelSIR( prevalence = .01, transmission_rate = .5, recovery = .5 - ) |> - # Adding a Small world population - agents_smallworld(n = 500, k = 10, d = FALSE, p = .01) |> - # Running the model for 50 days - run(ndays = 50, seed = 1912) +) |> + # Adding a Small world population + agents_smallworld(n = 500, k = 10, d = FALSE, p = .01) |> + # Running the model for 50 days + run(ndays = 50, seed = 1912) #> _________________________________________________________________________ #> |Running the model... #> |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| done. #> | done. +``` + +``` r # Transmission network net <- get_transmissions(sir) @@ -403,11 +424,14 @@ net <- get_transmissions(sir) library(epiworldR) library(netplot) #> Loading required package: grid +``` + +``` r x <- igraph::graph_from_edgelist( - as.matrix(net[,2:3]) + 1 - ) + as.matrix(net[, 2:3]) + 1 +) -nplot(x, edge.curvature = 0, edge.color = "gray", skip.vertex=TRUE) +nplot(x, edge.curvature = 0, edge.color = "gray", skip.vertex = TRUE) ``` @@ -428,7 +452,7 @@ model_sir <- ModelSIRCONN( n = 1000, contact_rate = 2, transmission_rate = 0.9, recovery_rate = 0.1 - ) +) # Generating a saver saver <- make_saver("total_hist", "reproductive") @@ -436,11 +460,14 @@ saver <- make_saver("total_hist", "reproductive") # Running and printing # Notice the use of nthread = 2 to run the simulations in parallel run_multiple(model_sir, ndays = 100, nsims = 50, saver = saver, nthread = 2) -#> Starting multiple runs (50) using 2 thread(s) +#> Starting multiple runs (50) #> _________________________________________________________________________ #> _________________________________________________________________________ #> ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| done. #> done. +``` + +``` r # Retrieving the results ans <- run_multiple_get_results(model_sir) @@ -450,17 +477,23 @@ head(ans$total_hist) #> 1 1 0 1 Susceptible 990 #> 2 1 0 1 Infected 10 #> 3 1 0 1 Recovered 0 -#> 4 1 1 1 Susceptible 977 -#> 5 1 1 1 Infected 22 -#> 6 1 1 1 Recovered 1 +#> 4 1 1 1 Susceptible 971 +#> 5 1 1 1 Infected 29 +#> 6 1 1 1 Recovered 0 +``` + +``` r head(ans$reproductive) #> sim_num virus_id virus source source_exposure_date rt -#> 1 1 0 COVID-19 976 9 0 -#> 2 1 0 COVID-19 644 9 0 -#> 3 1 0 COVID-19 608 9 0 -#> 4 1 0 COVID-19 314 9 0 -#> 5 1 0 COVID-19 41 9 0 -#> 6 1 0 COVID-19 32 9 0 +#> 1 1 0 COVID-19 943 9 0 +#> 2 1 0 COVID-19 40 9 0 +#> 3 1 0 COVID-19 6 9 0 +#> 4 1 0 COVID-19 973 8 0 +#> 5 1 0 COVID-19 495 9 0 +#> 6 1 0 COVID-19 480 8 0 +``` + +``` r plot(ans$reproductive) ``` @@ -482,16 +515,16 @@ If you use `epiworldR` in your research, please cite it as follows: ``` r citation("epiworldR") #> To cite epiworldR in publications use: -#> +#> #> Meyer, Derek and Vega Yon, George (2023). epiworldR: Fast Agent-Based #> Epi Models. Journal of Open Source Software, 8(90), 5781, #> https://doi.org/10.21105/joss.05781 -#> +#> #> And the actual R package: -#> -#> Meyer D, Vega Yon G (2024). _epiworldR: Fast Agent-Based Epi Models_. +#> +#> Meyer D, Vega Yon G (????). _epiworldR: Fast Agent-Based Epi Models_. #> R package version 0.3-2, . -#> +#> #> To see these entries in BibTeX format, use 'print(, #> bibtex=TRUE)', 'toBibtex(.)', or set #> 'options(citation.bibtex.max=999)'. diff --git a/_pkgdown.yml b/_pkgdown.yml index d71acfb9..b7517c2d 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -1,4 +1,3 @@ url: ~ template: bootstrap: 5 - diff --git a/configure b/configure index 65317b69..9f0e850a 100755 --- a/configure +++ b/configure @@ -4535,4 +4535,3 @@ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi - diff --git a/configure.ac b/configure.ac index 97048765..f06e2b13 100644 --- a/configure.ac +++ b/configure.ac @@ -184,4 +184,4 @@ AC_CONFIG_FILES([src/Makevars R/epiworldR-package.R]) # Use sed to replace the line useDynLib\([a-zA-Z]+ in the NAMESPACE # file with useDynLib(${epiworldname} -AC_OUTPUT \ No newline at end of file +AC_OUTPUT diff --git a/docker/Dockerfile b/docker/Dockerfile index e82145ec..d186bc94 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -16,4 +16,4 @@ RUN mkdir ~/.R && \ echo "CXX11FLAGS=-g -O0" >> ~/.R/Makevars && \ echo "SAFE_FLAGS=-g -O0" >> ~/.R/Makevars -CMD ["bash"] \ No newline at end of file +CMD ["bash"] diff --git a/docker/Makefile b/docker/Makefile index b161464e..3259f7f6 100644 --- a/docker/Makefile +++ b/docker/Makefile @@ -4,4 +4,4 @@ all: podman: podman build -t uofuepibio/epiworldr:debug -f Dockerfile . -.PHONY: all podman \ No newline at end of file +.PHONY: all podman diff --git a/man/figures/README-logit-model-1.png b/man/figures/README-logit-model-1.png index 3cd4a67d5411776445c1e8befa2b41ea8c3e29b5..d4e76bc435c8c14ea3c69f527f7ebb25302cf29a 100644 GIT binary patch literal 36373 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 diff --git a/man/figures/README-multiple-example-1.png b/man/figures/README-multiple-example-1.png index 819f25830577d97629c3c6f7788c9451c486412d..1cd860cdef28236af87116b72d14d3ed0e4c99d6 100644 GIT binary patch literal 24847 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 ECzFhf$^ZZW literal 9530 zcmcI~XIPWX*C&P!(xih_L69oaduW2vLX!>((t9UVBcOB?=|qUqA|2^nT2N}F7XhiE zBZL;}MjxO5Ui)6VANJaJKiu~TX{hSs-~eDa zI5&P0;bL>N^@Ry=aBy)zT83&^^2UuD0000N7Z(o?4<8?&fPjFIkdTOoh?tm|goK2Y zl=SA!n`C5UAFNU|?iqWMX1sW@f&9 z`!)*;3o9!t8yg!tJ39vl2PY@zojZ59xVX5vx$oY+%frLN%gcN3-aS4(K7M|F0RaI) zK|vuQAz@+R`}gmQh=@FR@IX{lR7^}vTwGj2LPAnfQc6lnT3T90Mn+avR!&Y%US3{7 zK|xVb5eNh-DJdx{E32resH&=}si{4D_)uM4T|-0T(W6I?A3xUA)YQ__($?12(b3V> z)dhh-dU|^L`uYY228M=)Mn*9c3gY;0_7ZEc@Fe{N@IXK!!s;Nals=;-9+gwj^=I-w9;o;%w>FMR= z+9#|=kMK_O$HylmBqSy#CM6}kdGqG&+qcQd$?x91 zOG!ydO-)TpOG{5r&&bHg%*@Qn%F52phC-q5-@nhv$;r*lg~4DSK79E2@nc?IUVeUl zK|w)bVPR2G5gZQx^yyP^adAmWNoi?mSy@?md3i-eMP+4WRaMpJ&!4NSt7~d%YHMrj z>gww2>l+#x8XFs%nwpxMn_F61T3cJ&+S=ON+rNDI($Ue;+1c6E)z#hI-P6;9Kp=X1 zd%u4D`t94dzP`Tx{{Df1fx*GSp`oGS;b9~a`ThI%k&%(n(b2K7vGMWoiHV8H$;qjy zsp;wInVFf{+1VdIe$36y&Cky-EG+!|`Ezk`acOC3d3kwdWo31Bb!}}8g+i^buWxK@ zY;JCDZEbCDZ}05v?C$RF?d|>g^=p5B|KQ*NjYc0H9v&SX9UmW`oSdAVo?~i_6Q)tE;Q)>+7XT%TVkZAokQS^})d*@B01S==Fd<$H8I8d8Ddj7zo{&BZg`p zUH9(qx!x4*x@o&m@0yq5YL~gK`kW$FK#f;3EzB*9Yg3oXPB1J@gDC1j!P^35s?X0K zD}QA;&tMciIalmw@exKrgLkD+^TYC}%MiIH)DUzpWSFt_Mv` zl6(#jI~fGvL`0*Z0s}Gu@JA?l-@F1s#Qyt=T-nw$0>9k}rI+>IAJ<%3rT{aHD1^|5Oqz4#n=9VsvT?l60Rf!F0s@08WDG{ZVtr8iM0qnM;8*cYZ znRhOA=kK-_=1}iK*%U%7M@m?%6$O5@Q?V&-%$!1?4nnNQ>pvSeM(A_EC8N=E`mmzq zWe3vS3>LOB$Te`AKG}zM%h0t8D<;9N&c=oo&*D~qH&rvz5 z&>fETubTWKXXU#qrbFV(Z%ZwGt#SHn_cOjJR~&0Er_McszTF*W{&@w0y`2bto{Gya|Y2Bx;g;S5e-dJSMt(vyM?dYT)n~Sfd3e#8Y znIdRQtGa?-Glm7j79L1E4lKQCe+N@56wh6x39+YjNRZka4nsFyOItVoEZIiEY+x5)I`6mXPv?FVdBwBP z(xo$O@gR6u`CCJRVO@-}@8xSXVdf0xN6falP3}r}2{s+Sux1oeu7h@42FVXi_xV3Y zwo40*N(BrRQ^GH9A9`ESb%9;z-tkTg)*a;k!o)wFFmQz>d4@l*RrL9kNsqxn=trJ+ zSpZnL?T<)o+Z}XwZaLcPNqF8RZQpFd&t%|TpzU^U#FKd}2wLn&ad`Dvr~I#UH2bFy zCO@9i`Ho}2A5sr8q2XOqF4JVC&s?)AO*j<BY8f3)k~JZw0;NDZK=Hv2l|&GGTO z3aS~uFW1&ihWJ?{b_Cco6&qPm^I$%WV`erqymyLW(uopY+lUvWFUJK=MeBBT@o1{= zcj=QG+A5uYW^MpQ)6OHp?+tcduk;WK`EC!dJkxC0qI>QQb0F2g8hAbpFLSbYrHt*YMUfJ0B8|oI&IYl)D55XzY3YHQ z2-0)IblyOkLfygy91DLTSC<^@{e%yTX=AnHl zXq|f(tE=0**NXQ*lbI<1vg9WL{@DZ&Gjo5~WdZfkWG<<#Kq<;}L;V8n76rFz*f=oo zeeWsI^H_*>&pv@h-%b88$zkNLU)c@=8uviG!AlX(P}H4otZl1@BS<27%67W#hUlIT z0Y^))BN)i1S^pxWByiX$R{vX7JGxq0wCN7Fs83@0<1gE-sM1IFANLL0+?3-N*{}2o zJSaDJvfI{P`}FObWY2l{b@EUJ4^Lc$gLm(~yzvUvWca*SYtQo5df zHm$+Zj8#`lZdJk{$Yx1ow?&)UqdNIr#eSS(k@ty{h5t~jD;t~%bwm7=5nu!XIssvP zl)PmBA2)xjH?jAG-PyufN3NHmG6slhIy&WXa*QzJx{#}<+aXW&PB=lZoBz`T?Epn} z9T=NUiNsQHAkS+p8_gK6#t#4bL6jqtPdZ8?Z>=}{8Jt)j&Y_=of zjl^YcR#?-EV zn0ec;f~JuN)E*4Y&xiz4aA|+iyqlwPrtIhK?*O=f(w^O@JO06nAbZU5qxgO zW)VOodIQ`!`UhN2#{D*vv`;ud$euA^(JF0N+n$Xq&0kuP^vt~B8PC7P9%91MOB--1 z>D<#QwYnBIl#N0qn*r`16PthdQS`WUZo`$^OM^CWV+O@`?-;N*^&$ctS$RZK!ioCJ zS|(xA5?Wc&$@jZAOpddJ?%rW_KLewTh-iF8#F3ZyONg8NR!7PIFq}Ug$()oq4wN)< zA_L%CUL5svV)>N*@%PaLO?yfhlGUgcwFni2I}3o|J8*QBH07FRsYPG;P&XX?EH-^uml)1 zo5#XC6fwiP5A4{*n#4m{5R|Z1eg?9{JAeE);J^}c@SX4EG$pxzqQO@)=7TiGE+NURptqE#IPhYSnF(}=jxSS z{}o~v52-GMyhk{8Ne`JJ|Gx-y63k%lNm8HCqa&+iZyf589*Pte6wOZEAx<7vOie$J zpHpGyc!T?XOxau46pTr(3MS&pxV=89!j=s!u2B|5@*rIGB`+8Yguwx-<^E)VmyM7% z=9yNHj=Py8E;r>glwnWoonhCJp#xyR`QvA_*cs9y^VKKb??CHkb@JijUhY;~Y%}2z z8Q|`WJNN!fq^?*A;XInfD+)oUwBw7P*hyxZ_jhLdlM8R2d^MB&wOD zXA+ec_}h+$R~SRCE`G|L|6{p7sE>%N;%Ti*Y6u`Nh3>YGZAf{WZ1`~{0Jj4C{Bmd2 zDSl5O=-lq@oR8%ox&OK6uJ9kd3xWay(IaR@67WQOQ}Ye~g7u_ai8 zi2ltbW)t~JpJ?ncwu(2aSki>w_8lsCDw5oAm6sJVqYfmT?PLSpV3k8@@0&|8fB<10x5wMbH?tFg1sshEMLDzC`OjoaCRT^pIeV z#x}UM=})f{%iONBC$%doFwcK-~2r%2q<9`jy(ieyR&d-no~IJQS%mY zM^Q9E5V+tuIJ(6GEM7k=ZC;R38y4G)Q~h42Y*E*cjiv zL92>;^r}1n1BBfm!EUAg#D^O+U3G+QE1|Gz=w6Kc@xYwxQ@+SlKPybliJmJ~)gFAI`qgt@I6NrSnUAI3K@A^_GtUWCp6-&?T>Dv0? z&Yh5E7xaKFl6{nMFm!hSh|-@6Wh zejQ*Wj-5NqbT9`K`w-h26KsI&u(n~#9kS~*-FeT~*?r9*68&dgTdT9IxkIdUzNUG& z3#}Qv8r6DYZx3^-ilC-mc-DW+TPk`fHrh_?9xLp1{tN!hoX{teah)4gkvjIo#32Yq z{aDh|=wtboy7)5LtV~A#7~6j4OS0|gk&09Xs&(^&(dl3;=uQ9eq)o(RnQtI2>&N9p z2ancuLJ)P*Qqot&^2yRS>AUoBHQ2<{AXxJf?QmXpSQatFECT;ZJNW^g^Ka*0?G8&d z`&44yyHXaRSIP{ZU>^D$tUWKofRCND39_1TF+UZitQNofv3|HcO3B>p{}nR|Ft5vk zN#Svhwg(d(ylG@&qH3h`+jl@F63AKCFX!w8cboBwm)Qm{?|Y5ev{-VA6OG;T0rnUd z)m3;;@dV>Gae#_UwR_^AgB3f!dgfoa6ODaZq;t~4z%b_kt4d86npPOF@$tfID9ZNy ziS@aS2T-yZZ}YoKoUHn4MdQa2kE?kq&j{fAyDQ-H$7^-T1(&UCKZk@ML2?vlz7gKb z^X`@fFC>kV2+-5qpd`XaC%0!r!2<{Jh!}-w79=TzM8W<0N42ZhW@4oyAJw$p(+M`6 zx>kI-gU2V8`Q{BW1k~A0K%A>quB~zU-60sC)l?oi=48MXh0ur#FqD-ybnQT~9FK=~ zNjBpLVaxi3lTvFKxrN8u=WqqluTryL(~~_D z#qsbEv$@Fu0$`J2Whdx(RTv&S2=8%LD{ewaC8SB8Cz5m%_j(Xi*-xccjLeQ@6aaJ6YcP8wqD_F z8;^O|OGu8z>Yn@y*^Drn_B_Lc{(6NeD<1Q&vW?JTRVfY5uPZ=ZKhjM}tIj?WiMX2P8&A8$A3SoMH0Cw>58FlvKtV!W4&7TVx+v2^lfhFDp6iyV>UMFk&Mw zH4HsJ;k{B$TDaBL3JT|S2?ngV-8}}Z=YAY!Y(o16vRlE`syXPebJ2Q7;-xj+K0?KV zBr2ykb~$iC2{tb^4L?Tm#A=~W+^2{EN3phB=ef{>6P+oN{}Q0Imgj2>eT}1OVclaU zGUQQDWq4$g(gI!FWBE*sw^@*uec4KQ{1Vt22@EBL1QA2d=m19}=<|y|x$=*46pg!# zujb`TRA4y*{If=u=lcIrp@z%15*E@9Pj*dN07rO`Gg`pWbEl)Q%^<{C@JT5-BcL}Qw#2|)|WFe_zPTNLm}hCkQX z`A`v@xx05+MT}ScZn-Ts8BnmgdVV#}kqv}BJhMoww@7Iz&0N}JAqgQG({MUSx*kkj zS+%~JXCno|?tW<&U?7BK;Xs(MfA&vl?I&MkDB+Brp3fQnoNuZ4#(Y0`+a4hNf&-*7 zmfNl}_s#X79@4xpve9sC;1@>x6s%IR|>CV;`I^DE|9Mv2wbO{_DdQlA&zWW%w>;T2EQte@ z`zUwS-*urfZ}#oos>gqh&X z06x*L-O(t!vL|QMa+%*Ykug}M?eB1baowJ>aO)TzAoFz)LF^i6jlF_gW$2=hkS^u6 zEWNAY{s9_RP*C>h+w0E_Ut=3#Rg2aK@mk9v;8Q%?Hj0G@;z&(BOPxzPV|AxgGF*A{ zo}F}6^jg4qrB&h9)Z9V4c{#(j#jbIt=$!!$!G5;Msb8f`-^LXfpZ@y4Pz_NHEjkMHe? z`8B`3WGm)Bz52CY>AC1mjH$MKPanPQ-+u?cDK;+FOFCDEJ!yJMyGsKl)Cv>lRbs6+ zcF__>slKZr5Y)qrV#jKq6jyI&)pitP?Xjaf72KFHOknRwz;|7y^Zj<$$_eT9L!Wr` z%GMn-TN2h(#O?Sorm=@P@b-y}pJgK%KHN0~SAcYz*yx=UyS>hdfiX6jotE*H17=sOLDsCo&$4?9;cyr^hu9R7YzOk?+$G z`3n`|@VGv<=uZ%Z37wXN_wdT%4hk&1d>(AOSf3CuR|2GGgM$XS7k-=#IF5acsb6H>hr0Lw+R*77ncC!1taU9zA>Z zcjx~BtX5c`_jtd=gvF?*Tj^?)yz4LjbFe(<0ZGg*Q7=)*@pG=Q1y#@I^!j>~*?xQ? zFP8-V*q9i@x>IV4yd#6a+dQeLc%dIg;(Jvcbd#uf*R)Dmh9Ju5SguejKQV^0FNoDZ zBq=e*CN`MWV6bx``~#sc_peU7YrNv&K@dyCJj(}LP?Vy4lIem{uWHb|lg_00=Fvqq zS9AFFJP`H(ZxehI;Agvdt>k}w)d~S(p#z!$ZxhjZ9kG3N8H@|*qlBYGh{h74t_i0v z&rb*dsT`nT+ihw``^ZEkQS~hb!&Q%ATM7Ac+mCe%U{)UionBSp0kj-qccESK;uf#& zgvc5~eAw1kI|Z!Q%Wj#jIaXa;;zXeRe06Vu^op1U$n$?ZYp=HBv+U~)bP5`3?-C3n zIz+A?`|Y|&ZX)M~-brt?Ia7D@yC#J_4h3z-o=~7YayDy5mVILc3~b#xB^K=smX{L5 zd1j92P`MMr^C8)1Z}y+bYSqf)GQsM zTbI~Z)TZ79jV;{|8HZm&d8$;$m6|_BDD$^jH|i!-=I*+?2!*h&x4|+;`r8t@pE-MQ ze8Hqk8}?cdTk>*IwJ3=qW7JO2rdp@DqT+m(ZUggg%+t+{ay4$&=+sykz{!hiz6C=5)Gnj=o6K#d&06Tm`ix3G`=02plHZq zD2uw)T5NlKe_t^A)jSGGQZq`l7_Ni7F(h0SQ5;d1whiVGbQ5h(OZy=6@TOQ$ttaX; zLiKG)FMBBy2;>ykwbE;Rp)N@2pX}8XNLMb zE|lSliBY_FE!Y6$N0xU*X7@(D-i+IRaW*kj3kQGg@&RG*Kyo#*jdI}~%+N_%;VyX; z>$r#wtn(V--yxFp$y%s&g=Pp6UjL7}f{LG>=XMh&g|>dwElFykD!h_fO)+iU z2wVKt*#Z|1Dj}2+M1VK8jX4d(*ZP9)ILEvO^0(FH4|g%j*@EKFRO3{5a%T;n=}w&V zjE7H~kf)#(?@ERl_<`CVSi6=piN9J1RNZ0P>r_Yw%e-e3l8dSkgav+j@{L}}HaSua zA?dgIDRJ?_e3&BenlwA$QQ+rRJR)2x``6Dyk!n~=gD(f!FUl15}%ALOUkILX9uFJb6b4CDFRlbaJkK8qA_ zRq*?Cx5kW)i1*5X;+L~;s_fgXxmBiTJyCt-dV8pU4_{U3xUoCO<&BS*gM;P!iu(o4muVdbGe2(Ot4p# z%ONvUM4Kh=57!W{=Av&p^%Z5b@b%m>`cu~(#j``Q>MPN(wuzWrK?Av+n6F-^3@E~f ztx#`}v=e^)6SB3d_Shwj(i2!ybn+Em|Q%;ePฝy^ISi4g2$JgNG?4; zvi|2z5ngcl#^;vR(fd}v_wY&4x8;+@Em1&0H=+$|7c#o+t2i+R*u zDj^Cl%YRrjBtQdTO=ED`?DH-{a&@4ZC;w!ISm~Wd_HZbx18jC$XBSQ>c|AJufd?~v zi#qvF6GoMFIQ*9b4;J_1!aI+Ba?E@iTtJ-$qxfJQpSEP~9hwD#L;FG2gLFGKt^%(s zOJthNuxDFzjEBzT{vs4yxb|rEV$igH5T%eLifo^H5LWzMVo0|-VI(Q=L{9<&Otml< zfyt4E4|b@>df+0?#r?_nlujc9%eG6aH$3R2bD>bV(&P)HX~IWK*{jEKylI>Se5|p< zqyay&P?{6+dM&C|=OMdjDO`CDJiZ36rvm5tBx9i|+U!W#g2x`zo|}GkDJLoAGgpuC z9YCwyu&~9J0w^V$fZ}tRh0Kv7_6>&(`ANE{*b_wudiTLD2jgd$Ce~Irg%hy*W%RXD zAW;RQ1w2(0^ryFbhhEVa{!rR8^xN?sSzIQWh(2M0+9b4sV7D$?<3*6&WQ7kI;$HtY z_KnQg@3#OoMi{x*J?fzS;yqEcwEN&4DVaPA%xCrd$&^IL+q>99fQ#B z0V>i=OnN{?ho{^-XOdo)Hx6S}ecMrg(IKk$M<@AEy)>>Ln;kWgVFwbn>yxI-XS@g) zF4cQB-Bd`$gDD6(k_@w|P7#G~6|kAKvX|==<|!3$Tgx%7$)OFJ7tOvYg_R=>!|wZX zSkqW|&Ybl|NT3F)UnI;(RoLhK9tThP_nF%M-X24lZy1~7q1~udWx~sT{zHW&g}%F# z@Ry}M6tpq%%z|y4DHqQ-l-;_~>02f03N5x%-qO5b#hTwab&1pu(g{XfZ6P6 zb5wRi5*9@}7plFznvZz#8aNmU++zZWQv+IE{spW5@9!cm6`#%xEYg84D6tPfa2~1Y LsFo`~efd8C!EaEv diff --git a/man/figures/README-seir-conn-figures-1.png b/man/figures/README-seir-conn-figures-1.png index fe7d1ac4ebc91df0544f42b9c1291a0d7ab80bc3..e2ddcad3044e1828231f3c40a73370616a0df087 100644 GIT binary patch literal 53967 zcmeFZbySq=7dAW$gA669q;$80NDtj1DUAYB(%p?ncOxL(AstfEAPq`)cQ@a|Ilpr} z?^@sg??3Na!&V|@QG{a z0tW~Ld1@*mqG&E6A!7B>%2wI>oq>^rk)@HXsezJ&FbMQIEKF6$gh&-fAf^5r1LaS@ z@!Z_#r}vz(RUef`{HHhXjlNmTGRAzY5{m5Iol7&NW?#9@Hl-855yEK8UyNCN&}yS0 zGb`E)VftF7_!Z(udpUe9kvWQsv{TRitudy~yt#k&YCZM9b7S6ae;y^Wj!`Rqo(jxJ zP|CD6w*0Mo{l^a;`!>5>hVVH0IBGb;mG+kDy#vy&`Kj~TiwEPKQbh^4pt*ow z#jpFwmyJO8&pIo0ydgq2JxEjUFOh!meoQ4@#_FgBspEY?Kdc-|ied}W6Jw+;488v` z6NI=yajpqLv^$&$=i|&Tp(F1X>wQ&}EKf1k?04f;BQ|ILW5!P*;v1_6&H{Yhc>=v{ z{L&|kbk)^a`=Byr({G&^4@UK-NJkVPoyMjBTjV2w9|o#!O+=ga1%+HAtqghNNyZop ze$EbUe0^Q}qPNvA^-_@?Je5*W*U^bVi_7#(<*pYL#N~3P^g;b$>L#zckAp7j)}Ma> zd+akAoAOKzbLV^r7Gm5FSvkg3%MQ9UgQ zx*W}oi$V}e#iCYyB;4brUQLsYp;u$?6|p?qBR3P%2bbQGPOzpJLlU#6E%4)6VpuP% z&EIAB8LK|FXe24Rsk@ebRvt3Jrb*^zj!EX_#NzHkJKfbis8+@7zGr81gjG2Af#Ptu zu>HV9m7)pN)5WC7VHoLyHO2T#DHf?{ze^(Wm{nGMvMkbQnqFnYP{R=(>8G6C@#J=f zC-o!aE^rh|>0BXAA)8J@UH8U@iHlW3ozm%C7{7*o4Vm}FOWUGH%{7Z z*;5)5m@(P+OpmA84n4H%ZA_KxZE$I#-XnU#d+p4q)pG7|45%S{G+1f<%PPJ<=Nk7P=-nkKK{6y<^^`ciW+PwE7nuOYGWqws)>8D+~ZMw~ZcaP2@ zv#p-3o(+jzx`f%d%K?Y^epyxp^15llo7r?>&0kD>w1xrv?H%ogG76i|0{xNRvA8;N z6=8?r>NGy-F1Io)@+kJkEwJ0QEdDmRB&Z@D|AfXpcjbT`Ufy!WpF&CypFF^#(ba$N zEZ5OfhJU)ur_1i>BOk(hcRhCw0UW`0Yd`#jkneAHkH&4cD*K-BTORPM(1y4_0Z{tkD>CCA7v{mJWF8r}=d8gBH( zV))@3lm1uU#w*PSpkjes=W``znjh~Mz^^C#I@;6~2!@JCcFwe%Eve=~zucR3A8zhk zJx<`q7eI9x5AY9E&M2J*ll_2$cy07n>Vupdh#q(k1;KqX1wnv!aKIk{@b~CT!2f&# z&d7lO=RMrw<3D2Q&CG&8Fp!j}kcu8F9o^L?JlO8iRtAvM+|+q=e4}TaE-b*6aG`sOtOo z=B$qEXXp2KV-E)Qzk9GB$c5(kvPOcC{=8s8&>w-cBp*b;l(0XqWDtU)BLs^S?w^-W zBvuB9KxuX$6e8*U?+Z+O^M8ybiKGZZqqF=V{%0gg7+kE!pC=%aq}dQ!??4Hj%VpXa8rpk5fa=*oFV^Lu6DiIF9VPB>eyE9YscDj;^x*kkX2AfNU{2^VYT48Q(`+~QM%WJe zq{QFd!Y=n_Y86Tw_jzu%TnPt4o--AevCJCpf4{M$Q_dZrJE{};;kmFmS(0+PInu$x zh^u2C#i&s!I$5Gc^Nc}le4|*iTDmKYFz?{R>+UQemQh1#baXV^ZsTV|It?Xd-RS%` z8SoLL=tz>9GQgY3R5z=H=zAm63@%b+v9$g(F`F!ZQCIilldl>(NY~=U<)Eb z@!6?2gzjxIt-ZSHpRO8oDC-TH^R8#%wehMV$)F-gE*>s*Ojb|nnio7jx%?a!R-G%G zq~y&V=%loG^aESrEwGo93tkU<^t*v*gxc=0q)XFf5NNX?C+9@<&`e-0M^h)dVGCBY z_S(s0{I7*Zrvq4YSWn$H-2Quq!u{m1=LjY%y6dZL#9JT8;5sy4=i) z;BcaP+ps*8#NMsMGOjz5WwX*XIg%xzb5v_Nx6N7FyjNZVLHGEQw?kFtp?`mS#q%Ja z##7(7YA(`juOXMrF|u)YwUPe)tHhd()li+U_fkRGdd>@!uZ(SyegujR)wqUCOiGc%sOgYx?TCnRL7nJtM~GU8K{Z@bnf#LyFftD8So zs$Ql$d<^ASO6D||PI+ZRsacdD6}8 zY&)lAqT}s;(}_H{^`dtyy{dHVsE}rrNoKvl>XT_!D!x9z5FiAW7m7t{O!eD^MYB$g zo+2rG3eaqHZO7k6Uv*_qPmq$esoq`>fQJ}=bb9O$un(Q$3ldN`yLBOii0Mwhd~4Ke z)qn##ks01|XaA`6RTSy!dZ$dx^xhsdXK$nf508z{b~VWTX0P_^yy)D|r@J(kp4%30 z(W~Pa)a7FxC(Oap>{KaSR`F&Ng;LtusZ-9ctq&K4JPgFNy}+Ygted8JY4JOUMf@el zYyBak^uL^3=G2nm`KzG0K7p{EWjYVkvnOuTqNJ#pPGh-p$xfCQNpW#h`kyZ2=vA?x zck^K4d_peEaTc-q&Wa! z-7fYgQioYiu#o*ow(rs(ZfPWJ&|mOSsurnDI6MINr&`gBL@4f|`2+zO;h{xU4zNRprK&J%{b%kcwLfz@8%-L4U-FeE#nHo7O zgK3O?Oltkh7k!8jS-B%h?=K$bzw@fnxCJ8*VAr5rQ*GdaAMbt}3Ld@P-eRa<3%Gf* zOqL-(FHAZW-g3e0rdvOUxO-F{Cg9^nv5$ZLeVgt}%LQ-j?*-#LH-U90(hG7u56)pn z4kKv4)r3B9hhc+5wrJmE6It8(1_tbNN_i@B*2muB{bUzmG?PzKZF07`!{>D@W?+6* z+H@@4tY-?f+g0Zhm1(|eIDYe@U&$_-krS6rg6~$*YB}C@tOg4k+rgcaWk48zf+$OQ z+4Ew~X;Q;D&8XmM=?Z;Gbj~`LW_JXMQ>QAIuDVOh!9dxN)F}*qiB=)){1~9_|9h{+grfdgiJ9 zuqm<+*D(a_czRA%SLrcn3Eq}Za|4L+8%LVxlwCu7cqv4Xg+VJyuc*v371inr> zRdvo}KitP;q1F7!)Zv;iChE?-fd^b8o z8oRW9oj{%Y$h!+3&+bUk2^wNz?hnIDu6ntE%B9*da*x(F&zFk1a7tL-ff8_+)6Psp zvA>p}w=azi&cWQZW+om#_r}GKVYyDm)Ew+b3tv+OHLt~M*-vkdVTcar#n$x2kz9lP z3x)(AW~+x{5f-FZvO@?YXI9qwz63TCW6&QSUjpD_Ey!S*fr2wlFaK(d+MRZ=%Ckar zCNs4UuWR1jv$mS;{piMu5$0CLi`|d0a3S*%ZYfJXRur)mV+P&fTe!qGHa9hFW;Ssa zlf@dP_PVZHR8yWG7Xv^WLO~oX4)<)`9Sf(%+3)rP&KoYVU}UX{J3sGj!#pimHKC48@aF#lBRJc0oCK;qt%K+z>33$6jnuZ646!TxK&$QLB~vcUE>yveSMo9^DJZ#+E~MuzfL~^9k7Wi0*^+OfHDP z|9P8MOFirELLIC1N~g#Ve;9(I327vC)vNWu&{`f&4#R>g{dj_Cb}23AesOK60ZYqm z<@2D(bWEZQ4Kac`)1*(x#5}{-i%)_HOX(hVe}8jma9l#-(lL5wTJTO#MnhfGY*V58 zQ3b&k)66PHV#wWS=IKonPt)`zy80eDgqi;!EyXx7tjPT(^xMzg$@t^?vk zW3v6(>fJUSVu#YPTc^t|QazHx^NL72M~ z#l$)DjQz~#9DV9}mDY#!`eOfg8Zo8;#dsDL8L}R2@7DkA_Paz&U z+z4NQC@wp2HEa(U9J=e6ll4FX$n4-^KTCYrmte2Hx7*!7F!t%WJ}yj-Php|XIC)V9 zgqDq-$PpHA-4jXnA)(u<1O2Xz__o>6TAuWR`3D!6wrIO2wCV4{*luRj?<^#gAFOWybIDfo5l2Q>;3Jx~VslRE4)~0b z4+LU3Ow%8~{)+4ajvZ)Ro0Pll zF*>leHmMlu`q7u@f_$yA)93H#y&#IH?~*c585x`A$eB#gG5B&YC3RST_+}E`AfnSk zfVnOSnkevjguYTs&%Q6<)?-GiF5uEd9q0!yBlKZ(+)y(?Z_o8f?#1UZki$s9WO&^V zHwzD%GqqN=>AAI5O-JHs%*!Iqui)A%dll;AM;c#tw(a_{nxi{Mz3dJJAxX3F`#Dbe!={NfU1LhwDp{pW_IR3978^v<+1q|pYqjA% z5o`pR^%*{N^#rgbf7{jM7$=LYB!I)Y>#m|1W!($KRe-Kj<1w||dFto>TqOJasRGHl z?d4kYqA$vTrTK7%Q0ZNfdfDU+iR&g=GrDlRi|IuzF~+MfYSihMZml5!bbc&wr+c*v zj-8J{d9QcVLfgtLJa4i!g=25Q?0e1*Q6mW1r+4fQax;MPO8(Tod9@ln(Kpe&dvy>8;yH^kWUE-6l-*WTRjZd_ zB!>riftFQPZ>V}q(v!B=OK7H?wnoMB3Lu>Prkeber&p}w<%n+=XW$t>$SHQPO}}5b zRTD9F#f~YT^Q&m(yqQ3F_sZdgj^J^5roX_O6F42?!cUPki$5S1mrEzl!38L&?fcCa z^F&ewTTi}17Km=fJ7%pYvH`-j!!co6F-fCrN~@VF>CBioQ8};bm#$Mch8w_7 zR%{2R7^Gv3iz20RpL-O9z8^=?2>1BnnV)GeWqAg3v?wC1HlG;_EI<#x+U}O_v7vg` zBA_S`JD0A1j6x+?6@XOU;CVVCQN31;g?!2n*S%ORH0Z!Fa_U5C#7RTXr2Di(+#m_f zfHDV-a|AL)?`ukO_C60ys2p7vHjeW2m4o+0jjQRfC;O7}vkSgcInE1(SaT)|XyARY z8v$Q1X+{e{OUnJE2$J*k3iM|;=R0&CJe>9{Z=^4wY;lpy()!~hKU6zPzv}9XqVevG z#rndC-4EM{nyfQ`C?#-5l;Uo8^AzwD_KN6Kzsx%5zYUGm7Bspw!`C~4o1K35WA=Eo z662aC-UM#N{MxWu@WIRloI~~wU1F2;W4tU8~%mmPUtQ?EO#9~3zK|d0tUnJ|7ds5{A*dC`X>bfps zZtr0?S=wd-SulOE79Y;ycL5xG7U339e5kXJaQTJ-y-4s_X zs;mb_x4NKXi@@wotd_ufVsBab<&qdSm>8@}PiEiF{zMyGu+&8q-|rJUF+S96l`OE> zA3Zy-M+R*`j0wN$vf-1RaOc^3g{-!**&+^Vm#Ia%pX~VZ>e`ndGOD-dP;nvCq|*K@ zk$@W`XKjo{4I_Gql8B^ky5kH{=m|@?nQl!p6rtvYBnfL00dc*?XA0)+@SB9@`ClYG z)dm|Io=h_{(5-3s@ZTp6f>Xq}Gy5JB%I;n_;cj=cC&wGLy(l&wb0ND#vNMT%wmU`C zrDcvBrU5G#1x}x=8FNJXvZ>8?R9})x3O7CpqdZRnsiTVboAQL+fjc`b(J>795%?IF zBA)K^XILnTY`X>^7x!hZZnRAuq}hg%QT23V?O&dGP+7#kq!DitIEl;=-|e9Uc19Hj#TRW`uY#b=JAK{!W31q zW(59|`UR#4U@uQIs8+YCNTenRfdSgDk8<(OdMyBSj&Z!_F;)d1E@GFHE2OWS!4x3# z@*-osCGB|G@BV}KR9!bq(1K4@v(C=v9e9f8(BWxeKd2l9ht+--!nuGp-t8{B1TTAe zfS_>G>DN#*$B#{Y7-@k~|sU4606}-dCZ`E2K(La`%wp}1=1s?Xu%XC!ikik^6 z2~6$hS&7C4mWtOzMC#zIFDxeMpNwmLKjl#U?AB(%OHI^Yms!G_v&&ABJ68D}ia-2`JHEA0PGSt_2b>+ID_QQn-07 zsPk54Y-n*C(xxl$qq9k1z{^*N@L0r4g^T+IZfS?C&T!dC!l6xVVCPjmf`Z*N#=^jz z5_&XIUPn*os(G#OtEp&@rzWHp5%y8Iqg}IN1HZ*}Ci;CD1P312g^*TV1%J`*1tP3` zYhN@@f7s|ni@}=IUi+l}1RG3Olmw6Lq*m*}-0NO~;BM8I*oqbY;Dh zKq7OUr#^q@*-T*T^g@}Xs???GoI8WH=Gb2F<;?*9?ATfKlz=|6)%29-0%!N`LRTcJ zxa&DaPc?Q=Gl~numIOAPYcY#fsJ|Ox;D~bnH@b`cJ;u%)>4rJlBlGCHqde=LNbUkT z3((|O$BUQi;0mvfsmwWNu|ZyY9mzWVa#Siy%WWpHHTF|yTg|ePefMY=JQhu^ zd(Dp&5o85Xgtq6C_|xSaIm8j(ymN?HWJ2@W`O5~Fy$L>i`5yNQmgkL&ctZL_!k}E= zNeA-q3F^c4gWJT(?dDhQ#7u(`aX3aeX>3yE*Mp1*T8rFy#M~|zg3&7$j-ZH7RMdMZ zb`z`=m5vAo_`xgZjzYxisqHwhH^Z>$dFNPGqgwWWOv1Oxi~F{S=m+hK8#0%zcil~~ z8M<8)@<4b-uepV0ICJ|5zESvCf$p212TE^UCpvw3BlBt*Q3?HWhLgoWa%?tlpc&!D z9Vw${4DWq|R&`NauC@`UQH|G%rt*nKl>bvlxN+j4v6`2s{UM<367&p=x{I&cJ!85x zUebvtg1Xk23UU!WF0eb~)#;;)`2bm8I`1c=k6_FdNc-8cAXh!o_dE_=ygfj_@$d4^ zp(!@n;}WzZ6N&kR(nfq3j~1dx@wPn;)4${9pha&11OU6A9WS8)=Y+WaLQO6r>>tq0 z@_Ur9Cv;3#h_a0>tIW}#qKN{$z0{xYBZS^t*w18I1V6A&$-fqU9KV~C zR+x~ORwM?mio)6DB{~LF)2}eBLZ;GPoY5c zkpYP%WoU5h!Ci=phwNEtpa_G+xUE@)1v&PAD^fcnw4oFd5JYlzK1}F!6VL<1LUAQ|$7Sr?7DC%pZW1;zT40<>m7uOy5^?5&m zkFyoO`%M;VczL_o2Z_P;j@CfpuT&p7gI0p{kyO)+o}Pw^c;3&4U~ol#Cy?YN-?K); zf%*Mn!_(~+3nxQ4!RTS)MUA;`p!+qXZfAE|$Wxa|UN#GM=UcWQ;1XiT*<}(SCc+E6 zpp;Dvk030;#}adg3f0HKS*`W44I9sY>GMxX#~;10=d1OopP;He@pWM=LzPR)Nb)P= zMXld>j)6X~REthfFblqhEMIrvUtOCW%pN08Q~-p9MKn>^=hNp}Z`T!s_Oa?+N>2cw z5Qe}mR)_=KU_ybgZJ*mYJ^EWFl-ZOePeh?JbTmixncgTZ8VuX6fzyYqM2Rj&w#V76raZ_#UYa$IgR+;|nI7Can2=0U+KgSN)p27d zu!6(q(^O^9mhe?yDI288N|Z(Ytj^oFMaaFW-Z+>5&!w0ae;t!Zfx<_a9F(AKZIQd~ zZl+fhpc3kCgo0}WwVujZ=ebFH{=7_atVqSQGm}nzT&@y{`u_x;`hRFVNCte zfEw33-|Uu^H}UpAQ?+J=lR(bUsX=HHe3^iVC zz^e(JA-HZOk=*6hOTq<8Il))GR)0>0)Q6Q!ky5sA$?0W-{T4Zf@YvW`j`>unYd8&R z~h2O1DUC)E+_wV0% z-hf^c$9I3ZGFoZWuN-cJ_#XiqwuEJ!4Kj-~GBoVTl}mwWD&P^TmTGGhs+AP#uqC~| z{jZ5ZS-|1XVLn*<@s0=cOg1()(=U{rmyAsRE2YmOz5WSBdX_=qdhucPKZ~<|3fFB4 z+X|ZJP79%;`uFtU6d*)2-lLe!c^_5<{%pnLx6#_hFq`doaAl5T$XXL)Tl>7JV&mrYltLTEaq<{d0 z9CGYT@4phbxECiWDLHK3CW3-*CUGhjj1#4lBi)ODtF6z1Rr_Z?8Hz~bC0ezLCl@q! z-S}jgO2CX2#@L?zISYT9#~r$J5ETT{;~M4qK9iAwG_LW%f9&XMjQ0v;IEq3-8n_<= z>4JKIsKZ|~4XC|2fUwEta%_mtW*F4{dfw3z5Ut`_^!E44%^%M9W{kSSUz9G){GYe%BsbF8LA8Y zZ;8es%cD(qVczLD&7D~>@qJ{{u2U>jDOg^T+;4o;q}saGz0Li`$5r%3oKycSLb5gN zaTUxu4N(8#(^LDc>FS~{D@oDO8d+bAq_E+vUJwcr$L=A1yOm@U$66MRUN)etkPM|P zK>z-5_2b?vUGlwqF^;-TFx3yqBS>}0_n2{kCx1+rRu&wN16v9rHm?BEy*JZz9%_?< z!h~wnz9H18Z5?+?pRuTrV=P)-66gpRG=580o?^a#|9;gumx`vca&7Tw*Q-Whx%TYg z?qQ+J>WtgIJ(_~1a?M1%#xNC!F6uG@7JTp?LkZg;#~({xS>{<(VNQr-^{9;!)m8dl zWv6>Ww}g#L;-Brd#js8V5%h*{mRaDr`&=2;P<>**$CQkq^*M#sJUlcTdBrcD^slc} zp26Zj&U-1b#ez^WtITX?9|Fe6m86ggpGp7NQs|7fkDF=>aiY&{wQ%; zKN{@qXH)SqI@LeIOL*m74tIbevX6bp^+$edrTbr=Dvrbg1%g|jVx?6PC?eGq!KPx+ zyoZNU-B-GW33TLiodr^1-uoT&|3qz{zvc`Kj3CVEi{<0^O}7(rccjJyEf6Q2D}apJ zL-V%X#9VWWAGRVt&L&U|Hwoj(F=&aRWKZBZ z-syMIT0%&(mzCM6=J$G91ks6j=?G&<8{S#Pf1FOB6SUxA9*h4#x5S~W0H2=;8JS*N z&XK=zz6;yqpepa`?z~Nb*8c17fT}Fu67hU>`p_c7Oh6NMSdi*0jSz11p?{%~&1i66 z_U^8&lERg+<9=fNR=H7Mv)0{ryaajwp-a-%0o!k}pca zjg$IQxI(ioSw+#|Ok{^j;UKgQwZ9vTs5OPWMov*DGT)Igx<%YtNwYu zoodkpuF87k<%Ko*q7?0%+iCV~`BI&G%aOlqO0~o&x>2u-CaGLBN}&j881Cyc2E}tbtk*CAB*HBw@?v}6prrVw9II#tY!3{j-Y2N6X{+Fo0LT->^eTK_T+wDG_Z&#k~4y0RT;` z^IuK`k$O+0Omoqe3J%p&uXfAPte(V4tW6edDRBs_le|+w$_`_ovCbDD*G!H3dx=n7 za5y%MrD2o&>U_ouVLws+3m+X2MXc+}4Y`SAL6gUWahX^GBBk_2jJpq*;v`AU5{sgG z=HhXz!7Ek8PSzsdHveAiJE7LbYgWeKje3mXj{+wH?2j?(H&8>gAvr4pz9O|&GyBRn zTNyfVpres{kx!`_Cvy8TfMkMrnY&9PhoXQuFWtMULHy3_IxJcI zfA3HewskRRyIGn~7@SE4qPe)#|GDWqA+hEs7~Zp3@3wZ_(777e)p_Rr<{BSOPKy=y zZ&z!KnE~1^K7Vi85ea)Ag_qDW;?Z|?w<{RY^9|*^|K8xY?a6PdY`YaKaERNV^YwxP zMT82ZK43~kaqgCb`Ks7^#u-Q9c@5jQnsT%BgXWaIa>faY->K?v03V=?!XR&Njs`#P(G>5VUL*4mG>jM}+w&MGsW=7U52!DK>YFfr+ay!c4lZ?mzM`jlY!y-cYlOrjZuJtkOtQO!VbU)kTZn*0g%&5 z==1fc!ZwRdG1)<)kZ-;)^!8#y#P;_O3$~Suj_5c!p>aa4{lC$35Gt6+HzL&0kcmik zQHc{0F?2x~-hXNJH2+z`c|Sickkq~Mufs!}3jG&u4*~U+uIug1lo+<)!Ev6GOUB=} z!i4l;${i=oEQ~oi+*EX7bnyR+tfI(p0u$spR2mUMWW(8JUz=R)#9UT#k&pdGgKHAY zRduiTy@>{U!V`Ha$^YKx5jmg^)4o>FoTLk)Uw(Rw_G~pxi@r~fmu;1tDk%KHwS|aJ zUWg+!B~0w^>d`|#paN5n^d&M94z*9iGb}^*ykoYL8tFAO*!jqIO;{4XQ1g8s6+G1a(>D4214zx+qvC z2CX`uJaKbVC}Tryr3xb^4cD#Hr%>fCX?qhr+QBy2M@ZR911D4BUTgSp!DeEl=i)ht z9gUN+dXg#`0u#)Ln*3UN*DtM6#UgB0Qy;JF zyHN{ti{oc?o69&D9pqK)Y*sOD0nN>*)f+B4KAsv02}vna7~!$Rb9L3wbUZ)mbZ1K8 zDTx5l1X_PzOezas2- zd@F0McT7U8`S3Hfb?Os)04k1t6+;0iUDVGsUYWsU&gymSmW%y4hMlRh1bp@nJp)PX zMs2=AD#K22ppg`%EMzz=rFJ4A2d0>4kv{cP03DK|3L^_Hx-x6Sv`UH`e zpZ%gvs@Q9(Tx~_Sb-8k6t7-Gf`6yf;RA}JIu<{zt9;k=WJmL1bcbAftJ$?JI)bU9M z;FE@cn#g9@gArj<7X$hFxi!ofaXvK|;T1)K*^I zcjExjE9z;SWpv}%wbV%6dxQibNX}{<*(FdkDh-rLHX)~*q+DJ)Z;fPq8c5^i@=Xp_ zCG)w(lvJG_rZdwR(i);87HLQti5p{X>*Ddvi9TI(W3_{g*N&m9KU9sdg z`m!1&U`YEq5Wwi`gDL$$MW}*{*)1&K^(W9^z zse}X;FTBqHT1U$Y)(W??e`{;&*+z`5#i-#>x-e*46?DJ{89x_JY0Cba_~Rp+s#w9e=NFG45hf4D z;LEdclZhwMCZAGic;lLPmXKZdm7C&7z4Q?eyt15q3sjp?^ShnL0@WBYjy0Mg!%S6X z6Vkw%XcDw-KhI#^Q^H}DV|%}D!EXvr>%3k;0gzBJet?;mFwL^Fu^9r&6SxFO7v!q^%beGu5P@7#K80e1 zA*Rd8Ix^c%M91h}TAFQ^?ZRm*RSs1Jv^w+66#m23B-zsy5_pJbUSuTjs2+uGapf-!B|)E|Gre2jMx$1lH_SxQOBBJL-Ym0}9}vc(Vj z9pbEVY~H}td|TnjuouTWsDQ^!Su5=JjXzeA z>R!K|$fh(+fv%^i$y0Qd`PZeuFom2O?nWog%*R_@Fh>^A+mHJie&O7d6M zz~k*1$#ZICDD32FWG~Ke;OpJ-HacQfMprR8U^`V9<%}`{3s+Hm#~UwPo$opW4m-Z8@ zr;bKfQot=T)cSpFdTr0Y>glnzZ(E(bgHO2f+9P!(WzYsp`(lLm`%ne=DYatm+f>;d z-8cKrR(Yp)*0oI;+MG6Ll!#okA@bli;`(D1XKZgYYH7Ntd+pBj;(|XHyb&jLFWh+z zhqLLs73A3$OE=o+WR=cje|h*$qs6m%$QfYrQQ{fS!o|0>GGbfob_ugr_wp_Ub}n=T z3VTA?)$BVW;3!d223{F~+06JY`E)v+!dW_X6%!Jv2|Gib$2`eso3*Idm>icBkXw*@ zuG_+(T1Yujq<-O=iYQ4Mjieu!oe;P9`(cHD)S*wlIaD6S^C3zwIH?{x?Qs!6U z;swJ`Mob987*H+}T7;)JRQGf!Mc)-<| z4FSN>SO)gno1{o-;F^N?U5qrYhH4SB$5MC=1CvRRLtOrXhyZn8*iB-wvhtMr$@p8b zi{rA4vO9r!V42kl9YS=G4J5VDOL}xD6?-827Ez3d5yt%pD>Z#(=&Erz)!8(E;SB%e z)?^BXwX?7l%KpCCPiAQGu2h8n4bXuh1#mc_NG^q|pjP~dBD6h7y&E?p;2g{ngR@IC*r${9JfiVvu;({nh zoG#5}zU9GcwZ4tN)36;1)j7VFdzKxY<)&G>RPK>5gMqNgk~`PbHNCQ`O42 zKZXDh{ON~1KV=@vQ<&PRpUQtDQd+khtZY8W4uNk07JGWK^Xf-MfQ|yn~IC4%i?W}o0&dWeEwOC zDzg{m4R~gt_Am0=kboA@??C;S5*F~d?wNC1V7j|Livd!@swkQ4#y?|=N*ko9)_T&1H!d}xQl+=#t;3E(HOW)hrnbfkH;M|+7w+koG0}A6Sfebm(&7~hiGUE_h#hsOS z`n^2XJ|&qMalBCKFQ=|g<6S+oFmoNqSFx;Xs(a3c@7YBu#h}(t9590^`k3)s>x+AA zB`T$6oq4Q!HYa(-s-jnIHu1l4t&v*ac=S(;t^K@klli~qu$d)N#3QLT9TOjd?<5*VKzZIHg3eFb5r`I3 zT+C<+B+lK>e;d2%ZUVKUTmG-~@uf%$p{Pxj#j_V}%=q`60{HH#zw--u8Dzke*7QDC zjRH}0DSGj4W~T`!ecJYBkp0h+kM#d#t=)8$sb(u5(A`nvcmSZZ?7X~wKXd`w#JW(b zx^j!a4T{ROw{%$6tUhn{`sqkAc~|2O(0k?vqhDxaKL_p?X&Hod^}eqQ*KjUMmF;%m zvl4fKrf$r#%U|*ZPUy>pF^``cv2@CY0Pd_b?8P!2&hSww)1C7fY$K0>*<(mDVr4O{ z%(T?#Xm#qn%`&l9Nv#GT&@e>b!9+na{&6$7Kh>>2nOnJ{4{eqiOH z95_xWv&0@vz=iIR2}(vZ;R^taW)V7T<4ISb!>mjEV6V_d)fWqRoAzMX^^wK#FTLh9 z$;o&48V{TW@)y$YCIkZB;2~!O2&K71gOFB9549U{G@`zcS>4&Qc6;7Gh6(|n^m7l2 zh|*1}gaj)Z^a)}{v6W!%7NugL??~38s^2l$9v$H=mSk{*s<_m%?3JCFHQ8#F4VOHs zH7=AG z%d**|r#s`KiKYV?Um>~IyOnCne~Zx8$n@h=y1}Q@&4y$~w$cHN{EM$YFR&xXF|Y%a z7^-TORMh0gTGo)ZCg27DX1Tli2EXod?8X<}wE83!Q} z*0=v;dwi0MeY_tn@|5mnh!l84PJeLe*{Ic(MKq4O3U9n%iAmVzllJKwN*D!YdJrCv zMbx*crD?JEN!W`K^j2q61l%030qN9HSS%TldZJNVrpuv8Et*%Rr}R zY9}ovsW4n@^P@t;h%_$wIpNKoayAf!*lvER(5dq=GxqliN5QJFUPsm|bd?cOcYllM zvoroqzJ|>p&VW40iw=1WN&nj}NI4+PMar_4mP*2wUg{;Wu}LqIWs^_<=B@y4d2#vX z`p%`X#?q@{9)g@M@cE@LFF?@uMK4o;pDu>ZI=wM1h*A>09-ODZ+c$U&AKGA&gGB0> z$%t4)GXW|t^=9Se_pf>0)G;j&%+h)De4Be~h808)rkF{H*+Z-}JXJ^hS~y?Kh~$s$ z6QdTd+ke+Tm;Q*r;-BRFe44jh!T6K{1~>i=t!p_N#(^an6cROMSxEZr{xu^BGcQpX z^sVuumAvin*xbIaUu{F9bdC6F7#5rnQ0V~|)Ng^wdFuI@0^Q&!AZaI**?r+XgD6KyPOXs zBR<+MsgF@5@LU@e1|c>Db{PwcU?Jzq!sU^^HM_w!C6G)juN+ZkxREZtCRDO22Ebgn zujaSl0I}91Fl`{R{m=kLLDDwc!n;!lNYGhRvhm@pbB=R$QNona|N*WrOEb*{x zy%tZ~OI8nrK!+iNCCLnLsEQObdD;A1A>wP3+G5!u+6R3uS!9|sAwer$&89)K+8 z*sbl4DBDa{DI(#}jnAG$UI7iHIbtEtv9baec%1ebfhMb1AQ!W}Fzj2Z*P{DjAd&1b zjsuZPvP84`I1)txNR3!y`E;pbtzDTbWpAA7ux;$C_3u52q8+`t)8qhrvi^bX5L zoaxdHqzlM~k^=(x|Cz1`dI$92jONM_Ch@scqT;jtFd*6of<+J`SpAExtib(AP^gYQ z>`UEOSwq$EYBC>Ej7!HMu#3UiYnSYEMeZ!a4${?DN~u;}xb6a^cxD~?xdw+5diSq| zKquK~mIQhduT$wo@(C2+V?QwQY*jU`U`!KNH#OLp>Rf6;5aj6AJl@>?)xj7;>t-7q z0Te98vE!6S-SB@o2@f@E01W_2>$CKuzkHD`RKNabn>2LqVuZN&wbVmK)L3P)ln_>8 z<(1Ku`_xAOP>6ENF_i(<8X)wj-2eY(Bc`!DfzZ$9u&t8BZXB+k_~p^fH9)nMTj~aM zJw>VA?O@jh&tmW%(JqXCSH~_W0-j0-!cl`^uZt zZjQ80#0-&74Jl!UkQJCIzvuisWw;PJOiqJeH(bCiqFP}JX5rZKRc zq@*M|pl36_P_@V`K{jf^zL*SfidFc2&Ifw@WxGDp6r*lZ(9VNyQV^9*~KpF=)}T=IPLT~cU`0_V3OlVn(bgFK}FCHcp2cLBP-&nES7y$w=Q zN%6AY{eH%&X%x{M>)V@rs&X2@lj&Z0b1=9S*cZ5}kK5{Zb^u~?Xry-}!0^i`DnuzU z!XaPG6UfWly%Z;Rf1-9TSIAOg0IqOu^YgO{$&}zUTK6Y$9N0rBf7c8MunZ2^Ns{s) zsi+lE^4n^dy1XrkK5g5JgY0y(N5VKTez|}2<7?g~tFP$W8!dEiG|6Y%*<^jhT|mLX zJO0p4Dj#9$;c6+QtG61REk`S4^(SD>yXUrctTz}KZ`};zzMQzsm|paX(Uk~CQhX!z zX+^rE@_y`*WOLko3kc02t%u$GkNw#DjlSoE;hXR7_AQ=K8h#`iQAlL}K&;fo;*<89+I$rj!h=xXZ?Tk-h+u}NOfef%sIda3@T;?Ixa(vHUmg{Y zMP<-jlgl@4hY284mk0C|DHW zFaUWU|1+4{Cy21<;`xb8A59;<=XP|5E#R$1Vi~@X`3z%R+AK^R9|yiUcAmpjsujHh z`ir`?f%<`sG4sI)!F$?`G$&nRJ81ft<@c)(zw7Pt9ADrI(t8Zr3NlssWNSN@!n;~IEr#$!8kG_Q3G#gJUb}4PeswD=N4$b3yZ}p$ z9q6(x={|1nBo{HnK6F8}{9T!Ix-}+oe|w@(peG3E7(im+e#WXL4yZ&JG%g|$^we&d zxD4%q0^a|fNQPs*bA6-6|3}qVhDFtWU&BauBVE#6(%s!DjVK|FNOvP4($XOyDbn33 zozk7sE%m?W`Cada_p6u8oH^${JJw!nZAPNgL2}P#yWT2BLR3kJC++For~#MjBA#c{ zibsj&Wlam67Q-&D&7^b=)!PVFh$#GcLBXreD!$~}ma{&R+Shoht4F#1&rjFcRErp4 zH2;837&*kjbR9@Wz5+e?T~yyD^!sFU^e!~d{|x2-hw7b`;h5_R5`@D&&~w<`3voH_ z%5hzOM%JX_oO#A2!*K;r^W;xUxxl0Ti!rfECG>5za162npkO}-dS$sR&mAHGAiFj} z#t!S(&m!3se!QI01Z|Y>=-^j+_=`MTU{re&IRbDQ%^C-S&|#Z@*r{&5HL$Vq2w~Ct!C_Ho$F6S7(gXu`-LS{9$CBQTK6~$Y7uD z9LX&CD&C3Z0g#y>&+K5^m?Y0B!T}(FMWr(r)9Spa19T}bd`U4iWPW0}PLPoY0Uf6z zbQG1nMV<1}yZ{G63-Jja%Mj3F?-T)pSpoOIsh3BKde?vd&_FexvD_Y~W<;D8A;SOm z@+WI-w1BICT7g!P>OcOL1Mz^?e+Q-8ORi%xG&!li0C~(w0a#23xbE!n$i|VgLQ^*o zv6?`qyg>FbX(hQL8xNG-?>~xSNtWuAeh=Ldd%BfUcR;{|nxWG3(dmw>fBG3d~R!AViQ#1o9%m@ zrfO=#%UXC=lV~Sv2mCE6Hs{r8nv;p4|Dd2mB)oqM)wVOoPFfg(C*59HlRo?Oc+Xn9 zRbLpQGw1w)0d`3@PX)4?Vm?3Zq1GKZ)eyld@(hj z9Y2Gc)-o|!aX2_dJ%_p$ZjOW1et-vN&Uw}T5dFrh**C`hKPSrH@M#P&8vx@E zQ9`YQoQb19zlv%cS552$bC0A0o}JN3q`ZOoLHmL4ZMZP!Qfvui+|8nR)mqA#v~Lmc zv=hEHGmkH5c!j<_#=_$ zHtM4Y}ab>Y=rCfl2eoCn1Un(cq5>OWo5o(YkzRjph**r zuBh=e9M9slOJ*qFV&p;$YhIS>jlzd_OxqH?q&9in{>LO zT_GkgeGlQ4?N5ePT$5UAB897p9AEenJNff&lIY1M?x}mA(anC0g)K>`chF9Z^c5No z(i;eUISWy{L-Ak1pHf*rgcfLh!t4W48_Z6Te}vuF=3?(ScVP{ZV~`79{nP1QU7&*! zHgg1YyZ5fOE=e{1790HfzOo7ia0UQjE7SieIkp_~_XVLws-^9cy5GeJpH~~h&gTWO zsvSN^d2`(bAhQXaZ^!u~-%baN0*YH{a;`}qNg%R5K61L6wK!)ZpLSsEo|H`bT|B@v zUM_qutI-;EtJCVTo|zPNjGTZCtwkdNJwqDTyCbZ@8m_I#rZFX-50dkVta$K&RewP3 zDWZ+Z>~1ZU3&X8@#_)n*C=fgOO!>v84N{@)O7XD%ZE0m&!eK@8sLtDmu-xiuqAyUZ zk2jUzg;_KtL5bP3N-_Q({y5X3o`O0A*cYg9I=E(Aa8`5R?|u})nu&#If5n7b&G!4J zz@%Mlrn+9A8Bm#)uUP9?(nv_2&xpz?;;e^0;Vn#FmZ@0oP%@fJPgB~o$2H%cgx^vq zC{tBEw?B!*SnQF;58R77{M-IGUU|@q6nJuRwr1bzmd{?sWZm(Tq z*^ePTfgq>&?MF9 zaNOKff$>-a14DIe-pm$ z4lOw-VZ-Gg1+DYRsd8;mS zSw|OD$0tJVQ}t3rp<+IYqXONJ9cJ%)FF{_A6kpp_=`S4ny?kz!J)|kzxqEqwl^9_l z%^a9dA2)D1^P<2-lXpMqI-;kqO3dpJl_S0{UWjzCo7lMVBaU#k2>dOQ4zWs!Mt)dP zw-?1*^4}*R^%QEbu2SX=A-Ud;2=fDox);X?3R#n=v!cpksi39H3d1TBKL1uRW`h3y z*TIN*GZX*)-(R(MFSaq2gu+A31f4f}9+IinE;x%Iqc*@&rC_Xg>#ZAterpn&v0>sE z2P-9F28SAme-VZd6*Z*>DoR+`IcB=Os6B!9eT3vxDpEdI+cVSMYj&hcvIDA^3bxIw1e$L3COG_R2SnDr{~ zSjLc_^=z|b1`d(z_!AM^YOy#xU;5Qk9(Bt=R{Wsd?G_CYn0lmK6x&{!^2ZQfVo2G>>37&pJPbSRoJ8NkJa zPCb_XV?)H5n8=dfyT$pq$Y09+iwvl7o@TH1M|L7p`2erRFiAW^GI>2 z2b}i&CaF4_Rd?EtYA#n+n$Xo1(cCQ&+F0^WVjVJm7w!a~keoX_Wb`E9M z2&$Anak1Z=2l?2jUFv7xOezP()x*VD3MduTsZQmj{@}VSVB{12zoDQUXH&y@wL|%Zn=9ia5xnUa=k8YK}Pm-7v&O}$|@&iyx^|9dG zNmrSIb+3|COX}tA3LoE|#=(4!onewOM7ElBx;ark`N?66lD!k}`BGA;BOeBZ54@_d zbjdxR7IE=BTE~@ln3{#9T8>LQrv|9sTARbs_*-}kWn$f

Db@oXGw(RSFMEX`PX2UOR*fDpsHfkillL3Ls#p!(ai*R2=GB9y$mn%prJ>}}0h zPqbiUTsY1H)l|xU*)EZ---Bxjs>d!vAN!B>|3wjonPx=WaD2{RnBfzjQtY&CwTT3E z)%qSWQPTl-<5A81R#)OM3QtO~=_A7%gjm*bo=26kf4B679$&d1V~)AWc@kIs?#t~A zR{?yv1$yDRboDY1ejsIGy}a6+kSdyKbba6Ym-cf!=SM79Vx_`PLT17A9`FC<96 z4`<7#(ha495D08IZq+)9V1R4`;2DQkI-EBUM_LcdTW}qyQR4?V%#wPgxzt*;BVc(J$)@gi$f` z7BaNCioK8#l7`}KcN~*Y2b--?8wT9wJhA^Qy5$oPa*>oKT%UN-M z;!dFTxSbr8(-UY%Dx|8K!aJe@cycv*d0=rJ8rBhrxrko+`Q77*pS_0Eo&%t-_8K<^ zD)o5$J`PA7j|gk;O+No8W{RbS$-T%zRVuL(yctS-gL2(@sL#OSQ2__~E5>fUn-mk9 z$L$s_R+pG>bHR}_rSc0sot`2hWuw79=9uHQUL>=9NGvUvFPri1J?Hy4ghxYRzNM$T z{s;isdDnb^+~nh$-I7Q_Vd1{9Jnn*_cSKy=oT28usKc)6+NvIe{cJ6S99;ttHy(8Z z!g`txtvf(_G6;%dub~iAb_M7E5*UAaM=t;?$ z^?1nG+8lL_z!u%hrj!Efi9D})GStxy>w(AMTo-E*s%G(=8pPkr!XBqNzA1LiZu^rE z30wz;<*5hI%ee`&JV#n}EWg;`{@=4^=D1zpfi1-#;;rEnT>vPa!0-Q3TZBG@L!8)C zB?|4)BKxmS5W@>(59+FeQx~GA8<@uWzD*a0{hh2lCsR>mas5zX2)gx8i(aE_G9mW? z6~5(yB2;SBp3V$a@0Y-UtuD3SHdc0zH(ghmH-rGM>$?JB7aLkij+0b?IZoI*sGPPG z3C^f$xc`vVdA!`jXmoDP~h~0C-IOwxNso5Fj)&c9j+@^ecG4g`GZ;?V z?klD%jNhd5*yJ5)<-F?7P=?bV>&_O~&?(WBVQc=&WiJjVmW_1!j2uIk_yKCqRQE1i zP0d;kQ1Hu>J^($^PtjEtui(3E3g62wS*B5*r5wNeHbnGezI6ISIEQwVw$zA!7}^!3w$fHYuYFl zC+6;lWD0FR<~fW6zuGYQU`_a6s-FCFd>KOsoCxIJlxUKr`;6kwVYwe0l)8k~z>z^% zP%nG3hRFJ^zr%^*cZ3xcr@}OA5Y2!jhG6xakyWglPS)Xc%}nyG`dBV*dgA(3V;#3Y z`;B2YfVmT3>m_#d)>bLMPcZy`5#X*(kvsFY_JOkM?^@+~S9<4U`>49WueZ0Nr;o)^ zH2G$D1Q>r^Q90y?RLpl27;8Ve5{(6iqdkq;|?{QeL4rtRP12;_S`%fLpQ-%x<#x%GDflICXO%^(k#Bu;!nyTs=Up(Jyq#8k zZw7%vatZV7zd$BU7TBB!^KYF(ZtJU9oP6`Y-u#NE3H5cEX0ep|`j%H}Gu{%a%!V|? zKS&b=yBfV4UA9#fNRs!ev;n4;X>vf4d^kb6cIpRg&8p2hgCcrBC3~f7*C5iN2yuFf z+AjHR3t8E46@ykt(p-VmwrQj97YpSp_nWs87Gw(FTDXY`)0CGJ{{5%DvidI!O~5xp zn=!q4I9tBdyXqh~)E;VEt9O1nB>)nv=fC};E5jqpzR%8No3dNj1HWKU@SHll&bJhR z-6)u&4jht{VS{m00NiLvI)mOcE7KVJJUw7=;;jAoOkM%EbCki#U9Xl*b=9X}t2yJu z`h9aqr{2N15zItf6G@b8>Z~UuSAb6%AZ@%*>3KZ8i;Cq-00qYGZH^Yy=yeh_GbI4O zGFf5T7^sqj7EoX&@`8<>##N8(>uO!rK=&VE+9jml3fYVlAF`>{=Dvxqb4$kr&v;ki zz0=iAW|k}KjV*lr^I+U_HMI43Aw++FrdjjNm5`@+Yn`5k2TEy=iZ5f$e2^NJxm5sBI`rDH!n0f?CE! zNW>zpgb{I;xv~Z4=apqIIAiCkYx!arZ^}&o3b3klkPPV zuP4CFSZhCjFN9NQZ3i``RuG*4)$`lh>Vk>q)r zp>p&F^cfTP4~*f42~(POqi=wHa_+~g8ND~QRtk0iaZEO(p4NoaT!A{|jjb`T`pnZ! zVKX-JL?;u}?k5uQs^PU?;87|Ua%7}&QYtq-iNYO_1;bL-Dzx3T8^hCeCLiX8Ji%0x zd~!#ETofZzQSE{>Ol1DA9pze6+j;2+Em>H3`yOaB% z=_0q3JQFRwz@}J&ZkcY!9Wk(GA!RgI$&RaC0Mqs#=-+-i0(WP_H<65f zfNq)+OC}VBLtyN=?9`2(2ghOn;Lq7aCUY%d2h9vpVOgx}!>w~CmYA+>3)H{Yd1|dQ zxOQja6_kT+(BPCiic73nc2@zXZND1C|CLT90l?sg`(fj{|CkU*15+rs?m=Y{#hG^i zMCGH1S4xVCk~~l~xtUn9Xr*E8kI{Qz`s>7MANz3+IxwhhWw6ZYM7Ha^Ck?9CBW9+7 zodpx?qh_hL7+F$adkxB`$jQ+tuQv&aiFgWtx+s1!SD8&J>chXaZ4m~2EzFS6+MCK+ zZjU7XR6nnpOS^tvT~{$%nB}vY$nsR|Af}k@dheliX)LJUDs|iCbpQ~$xuBd$t|7p* zD-2aDfT6;bv<8gyT6M%u3<|VDDEMax3r~e7b&a*B9FSA*yeZ47OpT5d|1!Bg95C|+ z!7Y3XY_JVELL?F=Lz?o;$Pa4gOqdl*_w@vRM?y`lm2P`PmEjw1H=?(J?WNlctP3jK zG|1zsKva%tuNK^*+#z@gQ1jPfH0O)#GzCE7uK>ng+tKW8P9uX1rfn_4*YlP^Rzgxl z37=_qq2|!fv zJydkl0MVTR37`*^Pwvm*oAIbvYo$x%l!TPx4ZZGwQg{?zdm2rqZrhm!kOBv6-Yr&n zT+#9NyB!kyq&WWh@c1_ZpY0f}*;M$wE{ny(fTMHrQ|jXmiIv_I>ZO{s*%55InYAPh zFPMJw^&XawyJ2pqwqt(|Pj+ye> zeqms1aLCqq0834y;lEBhNEK#u|2^v}o9mMxwO+QuYK{bA))<dYai1g zx{QM&uI#~!OCu!lwUEA_pvE?AtnoOr5a~izp@f7;yrgPG9H6_uIhkwDWvoTb#afAH zla=Q*#yqRChkS=nihl`p0t^J}Ts#z(&lQpr2x*9&*)Dq#2ifV-wy$MI9;X*{8ZtC5 zgpKb3xKRtu|KWV}!Mb(1F-oho z{DG!*K|DZ$dt*iQf3&LXb7M33z2n2mHAHKs_O2iN7#pRruyaY zdNR6mJk^rk?}WnW>W6&C4PpozU9U!(I$C>@H;6l=vQb71amL<>lOzhIak7~?$e)n7x zdTpgFyp^4rIjWIAc5L+zM%EJ_JC|~a<(iq)GY7o@^3OV>Q3kLB16!`@!WBQ3!mj!? zKiK1!(~BzOQF$xrdtr>$ZfP9I(gcBza=*%4bl%ym-%OU*K*TvTAF+ph=VcudxD-Lkazt9iO7DA1%gV&i5CFij3cv z>8N5SxeSL+iUdBCc&5%?&6!qC=|GCyuL?e=8TTKN3=tL;vivz}zN{157H=C$e@t{; z_d-5q)_C3U))vqR3VB*9Jcc5MG?O3yy&OX1Q?-r#;MQ!u(B|6=2Eig;{3NNq&64?2I z4l^XF9ryA=5z(@B?A@9v)u{{qqyDOx&6iIV0JOiSYWKg_!cdE3w9)d$?po6Pjedov zF8bT*BcJ>^9$&q$s#EvY6z1M;wm;ix{kCJk0kAar_ar-}C+r3({$ZYpK!}=32b0v| zo8a8WHL(2_C8x1to$5bfQIo1diqeeW*(YQ5p-tywG_pWmIo+YEna4uY^3KVe>5@Ly zTxMif>cAlSH8|KyQ!Q5Zt8fY?`OWp0W`ziRN~h0}kzKh!5)&(|PX}6qQ#zQ{9I};p zD!ptC81$JOBhkpcLW3;uSvTVWrA)mEbDM{x_zR6r22JgPMlsh) zG~KRUUVO*+;oGU$WGNPl z-J@4d?MRAO4hD*AdCCt+JR+Z)l1qCC{uu=l{qN7S@+J>m(R>k%p+VqtxIYtT>~F+BUaG7!PSxogvi+&?C{< zB_>=4tW)%;Hi?PG6eS1eAd1-k1`p&hk2^ zTT!Is(Z(kvv$QTV3+QwYTZIuEjodlJ$pmmctM_#Q(|Z)@|YFwrp4Bw8>%Y{T`uuSon7AQv*t?nmTz=C5iLoObox1j(cc!X8xrcgcZ9 z$d~0OpSO!Pt8P755MHm(=QIW}^}rgZW0;!WDHqIMcE`J%5N=@jC^%zB#KiOhiUo(m z5uRN`_1Ya$JH|UuD-5gaUoM=VoT`0dYWe%s_GCp7D5x zdrbJnmmi8d??xW4dtD0vv10zGW%xrOm8MhBc~?U3*ASXVm%O>qksxU;jGfWUZzqz0 zC;NmXgmfKnsU4eGspmC>e)G67@%qb~OJS8G;*=^1-8Xae9etAoG}2{bpYtfYZCY%o zA&J-#J;cZpWikb0iA_OadnKRAgb1X<&<5Rz4ODGxbL3+fZzzP^m5DQ~BffEwYRJlV zb9RSbe#&GiPYjhWXy^eJMrh$%=`JH$7+y_sprS1lAN7C`)jR=ilfXIC46><6fo?Y>mL@W$poRcN}Cy4qFzJi z^8dP76uqb?eO_;DZsKFV&`uNauA}zL9B4VbGqOnR-cTuv@GMr8mJZR#dhda>8^jmC z#*1qPiBnqpmic9`x8N1<&YQ@}o< z4l#)3#n(DY1ajy1f^{G{r)gzAT~B?K#A2dWX{ZK^RII=nlBiUIVz;9O-bdm|mf6|a zAyAO~fG&@L%6X|j+o5b16mfy>%OC~h0FzvARL+tJ3f6O@Zk0Ws^;d=C0tKOcaTM&8 z*vUqoQ7=F0gaqh>6ekiZMA)TOW?d7Z>?4qnkjQ){Wd^Jy4XF6&4+fPadJzM4b^M1H zM-5KvLBG+}Zc@ek+a&L{WV*;?lx38~z%qd!;T%KT?)v!m7i2+v#UG;X723(IIX_ax z37pY&gUsr55Vn%kDUV2i%dD$81iXdCnH_KJm&QHaIowTE5=#VUOiX#_ z9R0@Kmeer%=6_6uz)#DL=&&X<8KbN9_8-#37t^p>wrp6~1v+|r(Nx6~wT9>?CaawP z(Qoni`FoKqt64a0u>Sf&uYoM`*QxzaeE2oo$UtV?>1y21G2)l1MpiQcZg0JAs+ za>5Pm*fkV$rb7e*jh<5C2tCZIVYyib^aMFzB=lrxj2q5?kw6{oceP zeL7weSaz{XePP?cwwcaSCAl@^jYP%rXi#jzGs0;{b;uqgNWt#}bA5e%&SAV-?`Zm& zTtu+7)u3`}=+FqB!LuIqBiqRIR+7w5@fpekeympA6+ zOxM?z6&sXgAZV`gym+^t>b5sd1XMYO9 zQ&(MXo&01WQ7!%`b)Y1CWq&<~7G5Ucc&e~j{K&4+ofIAip3Cs)#5@D_ zDm;@48(`B@?j)0ZvP6^tTiA?*>a@knH!C!y4crmpQ5jO(<@GBGhh@*>&cQH+P8vkf z+1c4X3T+HLjy05_H9CD35!7zGqhvOXyreYryH!;j0w;+(S?^d2#%fGlY63Kq^8pTH z4nPg)PNxqv$m76uZqSq&FMUuulr#oB(~`Xl*EASh233eW zLij`Ld3(SZhXCxk8GSUxNYQUY`NT=@c3`=6juj~#JkFhAS7keS2-@0Vfz(%9KlCcu z%5!)$m0ZQtG6h3{{oEkc35{IrOSY6l05&L=+5iK!ExUCj+K-s%yHil(p21C`UUn7q z0e$(J1g8RXXQsD0h1gpyD4u`cv+(>@rRFa+k2{t*qB<{&yZ)Q-aUqBC*A zO9PuKA<_(W2a%Yepg3*ETYS9h14lPe8M4*8Y-v(eefd^-5bhMIJj-{JWV(vtyR@VWM7XD5E>V-B9!ji?#_E0;Y0! z*h~t?+#a2%u*DJPKHH$@RCIExq7IuX3~$1+J13W{Vw7A{IB`4oA(VPJ=if(QvhXXW z?xJP{nhx!dd7Xj$%&ar8xnp?q64SHuE8;z%nNsB+M_^lc#ts-J`eArprT{@HcK$%r zOUbbb)U2Apu29r%=kpLkT~nC?ZnbtfS#}R90KJ6bCQ+jWPcobEi!oaG{h;pBE;Ri* z6-Lmqwx1$fCrO1|jiUZfvw$z~wm0F($MPhHFDCUH(`t)$QCW2AR%rykd9NWWK~8T} zisLApB2VDO&DSJ^si4GDe&fiUc)iV=Fh?B|u|GkgZZF_d*mAnigLRM#@)@`J&#!%?S-G^=31t9z6i9}w) zv7MC_?Fki2q-F@QD%Px)%x?je_N>de2oWZkymeBX95+nPCAJfZ-0YB)ru8bL=$BiX z#hPRTFtRrT#9<0OXNfmC*YP>{uDbZ$;{fduEjIxip@xn*?)UG2#SQ>gOQS|n4fp@ZU=SzonVU6wZPHz9`qU<*ly z@b_Eq-hHQ{gtP=Fx1bRDS`U`0vp5;LFuz(s^P(zpmDh?#8m){E7%7hr7*+F`thFc> zt$*`&QSIjUVcH+I@qt)Uc!tNWoOlRNB%dXf8aI={&3oaZhI+;th=H&x(^jKeyC2#* z-avj#mypwcb%k|IKyU>7KVvm^v^V5otWrm7`__fEbaMU031A}&-f8X-pIS!l|VokZv-e1^3tJ(lVBpx=)xRsBY zXMaMn9MHvO95-%0lg7`= zxB2tH0V_LOX_!8GtUqXwkT41+G&D~j)hH@9Uv4oX?>aL#q_Qq{Vz`P80{y&$=)>XU~5-Q0S`O<)En?QgBpGP=QccK64Ews>kiG*gqA4QgeTXm|> zVq%}(TvWO4Q(pNg)Uj)_`Ql9GY9Gn$tmNu=>mPUE2RI%(*pYdhp*zJ3(Kj{Lf&Z=! z-wXFFf{)>V{Y7bJWfOSPqyB*Do!^@=uKmke%OPf-pow7k_=zce*}!Ks)o1vGPNotH(F+$8B8GnIG2(j|>ayf?`fu6wroN5}6e ztQ|%+ufhL3rGWia72x8?1$`unD1j*?%^f41INUdK-;BRLH*gaQb*|;wc zqgz1IkWypdd9+Gz;X(DU-0>M%`EWh7qJ0UMD1lU6i1Jz64_-pz&j~}>G9V#srCYE? zw=8;q+GtC1u~&y-X6+$|!in)X123Cx)}i-`p^Y7U3=>rcM4OhZa|V1OD3}rhvZHzX z#P%aUJ!ABTQ3Y20V!KrrrajClbAH8xZt-;%=&raNd1UZy{#4V-#*#Ab&Ymna;sPB! zzMEhsULM}R3b2nOE>V%A(tRJF?A^*OO77rIX!isfzrORrM2p86C!HA^oPI#MlA4PU zG+1fCdCj_a%_l^l&5X{o-JCqt!4$BdLH39PkuEKvppf!=zxF6WIPvS2POc z7_Hocf`pQ@$@ku!DEiOfAmg&&LWx$9q*bJXic;sNIZ-)VL#95RdxE-T8OxCoTm%Ym zLd5aG*Z#;O0hVvzDF@2Yb2NUVZ~EOBt~x_H(URf&5523atIB@yH6uTt;|dxdA0KpD z=mD0g6eU8*|#|3gGW2a-TkKP-h#o;CzE8p+42`& zCbTRv*pPQqP33^y9!_C*fdK+bI94DnApo|+KYi|8fSnSdR5*rAyWgX@MWW>9w)TeG z&s3i~sYGXnxZG{I?#ZA>bJvZY`_updTr*hP(bi#mOK?(HkoT^<(vV}rdOjU3gp#PL znQa-UU7poLm$R{lX4lr9wXFMq{;{2qBrwA^EX8#sZ>D=@03<4;yM{^Fe@~$pGXn@qm^d8*=(c6`V|v=P(!w}K8(T;SnBj>w)Wcx%UD@b^5x=&cm_dT9e<&m?cd6-I=2$6 z+BUY<*b(lk6r;!OhXX#@mKq#WmDbLW|Ha-1IZ7@r&8T`Xb5vMY7<@hOBC{+K>{tz` zum41+Yx=3aJN%Hk%3hx`R6%=r&27&O?ZKUfgYeAD;!``m%4ie zzJW(A0KRyqIi3WXUUZRr`uZ$Dmk*U>K>KtucZb!s7(j}|XR7!fomqGp^=ziXkE1oE z981e|1>0vz8cFZ#wPDjPns#6biXf@i_Dc=e&kq-v8JU?AZNA<$_KO7m4`<<*Wn*rz z?a;7PhExT^TY9|J2Mvbs5WMM3E_994n-_=}1Lk``&!xofLPGMb-&Qhw2*aAmB1m-^ z`%3@Db1B+VGyn9i_tV7ay}~7$2j|%0m+%K*2PsZ|`4;&Rtc+6sX(1!rI0pE4fQ2*;2I}f`REmL(AO3I=^|Ug4<2FI-b!>i5G>>;|8gjT zdwHhmGwW&>MW}>1de!oPG5teF388+q)w>?=08iO}qbD*VHg@zxQ*;!34+6MpGvf5l z_|Wg63q-^uUjrld`1LS`&p7CsCe6@XEdXs-J zGnt2LNnG7g1vb34(;YxX7Yq8IO_0-Eto{DZ|BQ%;U`V*XP=TgebXbC%@9U##R{tfC z@s?hYkCk?*7uo>wQsbei>Ta2gtmbKP^~WQl>6_8tIF(s?^Pz1{hFyK+$`lfVt+7(0 z#_G@hUZ8^y2@A^u4b@BTcb}Ko&cn~pq3x(Ughf1>j8hC6ViP1Od3o`nl5kzYsC9+3 zfOjM5@c#b(Un!xmXir7fOWKx=uhGs7qO`0;rY3hte(r%Dzm|$E?3vMf!5JIl;>L^g zu8!B_r>}kuMRUZ3KnS-js%-cUB295B47_%wZaFc4XXAjO`6ieLOM`u?$|jo?ycy~v za|B|48ObX>aI$&+9y@G?uH*N0fCvwkYb0g^DILuyIX{~5TOMMa%1B1bei}L!Qky|W zbvMEM>0pX3xK#0VBqyfPF6YfsaNEov2{47feIBpoB+i5wW!?b*Ra@>|LRFA^7Vc*U zUNQ~(j*5W;!qVu@9IfSv?q_&3hDSOU)~J>5xdjLDF6?-WpQPfw^vZ&t7cnrt+_Pko zoxMvB>O^m%^1QJ!`ol@;-t}z-M-r*%kq~u8u?5Fju3Xs2T#pW>ZX05*_gcM7sZ;gC z;;jb(5pEkcxEgqx4oHnz#w`mpgowX}cwhhhk`|Ta|Kz#AleM!zMajN@rA+~kZT z9Im79;H*3mo6#JaDcr7(jNf9&{Y&M4mC+b+`;{=>?Jf-K8`Zdsba&q>NnPQC8Oa{% zH*qok*;2Z?Ub~-TlbpY#2n$)Edr`M85mAoC_Ga|V?QM`{vgue08Tn4A?{qm5DpqBG zSJ1c!sT4qJneWv@st;gu~Ln{V$U*kSVNBYznV1t%hpHpdfIk@0U=cejM;Lsr%U zbDi}nxep)s87|a0xZTaK9H1MvS&SO6fGB=&pGW8D&|neyaI|-`-*>{Jz4hL5hLzzg z3@bZ-V&taLC;0d76{WEo3y!L>c$XL<*7KOB&AMB$F}y0eZP#wCXch8lU`#e4OGp5V zb?&JOK%e`5TK1m~(r2$h5p#*-eYv3W_Bf-AZ*yaALcSkb@bVZXIxTz&C*Itku9Lto z2V3vaSjN-sTpKEJ9|h4(8mMdWKK6Q?Lhn&w}J~iJtjKw+yE$Q;Nk5(e48jLD#}!0 zzw<-Ia{*QD8RxTm(%*?<<#)s8JKV1RA4RWuz8jN8OIWQ+kW{KRW~X*zXJWY`7mcF+ zWRxz_FA9_H`02pQ|GGFZU?O;3y_}k*EV?ghsXzf22$|8rLG6;G@O_n!HFQYUskmQtW&`Xp{v>^Ziv}+GQr|+J1Pzd zDvST;1>iI2#mv%Z1YQXb`3^~aEMN$6%Q?8(^br+sE|S~1z?y32R+YhXg?7O~)N_C_ z=>N2UFE$Wz|I6^29)^&R5DFH)1g4XgbrJ0E!5hsC2jmc+p`r{!F~G^TFV_~*68U7R z(j#|BQ?(xh6QA;spBRkkZoX1}a^_b!rmIXu zN+^`EllC!$CAU{YKY##Hr;Q$0ojwrkdq5)-!~=mVj?@#Rkyt@y!wy50Kje|j<|X>4 zd5*A^Ft3+PV|i~}U%$QyFB3!3V?mGQ z>lIgi8(lXXd~K2VHI!ncI{`@eFUv7_PI#W?4SKR~^^}Dg7D5Ht-t~u!&!V3hdEa#} z9zW;tvT`D8e7hbJ_^O~6To5jRtTH!RzV_T{S9PX4*WyFWNWx(TV=cM|>dI{=VFO8e zmGoCH7I%^JkT4Qpih2+49H^BO$s-9XsGe@ykxVb^@lG&inB+MRmZ}3&W7Tt!vIgqS zAP2NL0b|f#?VZcg2FBP6Q;`0e6EApXmb5@jrN0^B}zfRcTAd7oge>OWvVaaWlPk(MOxj4 zr(~0u7`#mHFXa6b1&J<lf77-rz3g zn@mXPb%V!-UF#88A`^RI!^r4lzlg_XPl9@Ajh?Tf!|_h+^q1mm*b(IM6caDxODk*~ z9O~|D^_=(Y?Ckm|>xdj*@cn;GV|e zBg1Zrdp&{xExIWY+iq~vyj51Tg6DF3(|IIb=4Pocq8%zp51B|XBJ*pSvn8E|PbUG2 z?J7wo2XW^{yr4u_qnz@byhJ%qE;3glHm5o9v=mC2IBjhil@`RJ%xFqp=#S$s) zE*wp6d$I}JXptA&RsOJRa#UC4Wh0w%jyfEd|0do6L0@Yz82e9N@W?y}7OH}s8}&%ns6S##3>)isui^akR@;zY2V+ovlh$>%GeZsd91~Lvaz1f)H>b9^ge~*q@I`rXW_?$Kdz;gQF|P}$Y%fIl zkt^-TMAZ~eKH}<36~`5RsR8W+1)!UE0L`g5w%)WRgTDXYC)^19*$EHqp{R@$BcVDh zF*M@tp$Q4rnJur>R2Xmtu88vs3qu@AmxoC&CJ4Ddw29zySVEvZVm>`!dnReT78Vx% z-B6qM?cIC(z&{qE)+g{c*bYCDixT|1nMq11Pp4t^g{MpmS3mefKg;><7^Yq0_kK00 zwZ*?aUXBK_n@bb_M(ed)aVCYUv0#?k5Gty1bBa@V{0w+^O zDhnA3;qJ^9`W8y!O9(WiWaX}101_{(uR=W1)zwv!t{P5W!9Tee;?RbM2ArwLC3SF$ zQPcvu&UpZ1ZpXC2ZvWtW8doz?!fCgGP^#x_tc(j{B|&~xXFv|VZ{fQR>kL? z4}C3A&lpOWf<;ODA=jY)1gjB<#yGcMkC1#koFuj?ij~EmFy&F>vE3v$Iu;=P)Tbi% z`#3*mzQ8CofEfB*OL7AD^nm|uS>WExe3}tG^h#7IMMcSh4 zuNImK`i*{W^vP%q;RxHMT~j42$$!wh_{#Y$;{xdg8bH}Mu43wUM|&_^9t{i@5J9&Z zmY?tC(xcVp6>OClwr}Z9A+dE(j`ZXbOPck`X8Gml$f0wYhE)Ig!WJA4A7bK*iEj@g z-S}pZbb6AXVIltP z!Cmhrd^D<)4V!n#Ug-YH?7>gT?*zDOf?e&#_!5>dd|r`x{8BX~wzU-HKTtE5CJD_& zLt9ep+x?>K@j@j+AE0Ie(^tPptn5Sx_hpJz!{jd6D`V84lZYpNzEb?;Y5ow-nYP4@ zuT9+(vzmQ~nN>0cys`4U8ki;bKY7$rGp2!jh@FTgIb&utLm+=a@r`#w=P$kYiT6*q zoaGh-OM-RM4_~Gl7EX+pNS_3#lO3?kvm|xi_*bOf;XtnuF^_MRkEZ@JG9G>4z<@lF z#{)3ScA0OLgufW$`AYl*gYEwTOX{e(u*j{~v^`{FH!8bAO~QKG*T>k7P1v3rvwrUM zSMUAN^4aVUjxu6A7#GcrgiLX87o5Pb653fq_cAzJ?#rRe$ZOc;ntRo=m2V{^CopLR z^&N}Ep7Ql|EljB(w0`o<3mw$@{v(NEuGAWwD~Mv?-hK-GwwG!3+sFq67r__*JyU(;~w05YmIppC-2r~{V)>i=u+t)jB(-o8;lP(bPKkdzLQ?(UXu zq`Nz$yQRBJT0lA^q*J;}KtQ^`c|Y&_kAr=($N0wBC))!CV4luJ{GeBY=0p z$uXHkeDY+hM#5$IUNMzmhsx>6OwOBdHgs!P^UblV@VCGxjGT~; zyze7n*4COG3R1NOzk#ZC-2qZ~4jWDay__`pdXNRgddbY{HG^Cpb&8?8F2rrN6eRy1MkxjYC&vJwVB zr5G3BuOC>rd>`Cz9}QX;G1n4l_1*W|cE~^6W4X7_5E1k7d>Y0ePWMKcu8#Tqt%_u| z{Dy_Fig=}-kC6*$oC#5gC%*2yms-Oev*E+Z%6IB|+Q|!)h=z%Fuj@d)^5JvzJ}-J{ z4KZU^qLhU%ysd6=wx)v5%O7GbpeR*MXVgf&;`dh*)5}$xB(a?q~BC~$xw7u-Ye$sa`_>4{%2Z?dX z4Jiv&3wiw?j`WTKpH?35ePHx{Oh3hbk!EETitTtUGV#3{BjlUo&l}v;vCuB?ab^MX zH);C5pa)V4ke&P=OYfOY^&=KMG=9Vtg&|fGrFU03(Q(dw?Ve^=opFI=vG)f(0sCqf z$b03?&{$~A&IjlKR!vo3pp>aVLPCNyTWwyRfR9fWx(IF=8maN)(|V)zZRceKa_8DD z9Q)pR;yV?k{+1uc0?WOVh<mr)faowBus?c_ zG*o2_6D#c>L>=u8>MyyM@Fl8k?6ISnh;SGv`WGMaIZhILk5-MEvm67>7|>|*j0Syp zGplsZ?64GYJa#tkNm5->&`UXA?C4TafgjGG<^{VWLq-C zRED4#J(r+G?N(6mQ@(6u2bs<^HFRn=C|E^LfXC}(m;1Pe$ zwYpfP5yxl32mp9WJ$eqNApiDWQS;pt4MOc-lC>U?VsS-``{lZEn5cqJm1tdKJ*MG$FOV(A2S{&*oMT+w-34v&`#X9oS)`^H;pAI+-cED%6tg%2~i7aG00l3G7+<$Juh zCEKNg5O)fB1qoTO(=vTP7za`yr5bzQ1R0cEBI4Bx0alL^LL^v`(yvQ;{I&%Z)iWxC z+m^ws1clAcJ9sjgI{#yrO#izcI*%oT4H@4XcOTd*U4;=XB41r77+YK0DN6;G$|1La z-QW&Ta>BoUP1iO1TcE#I9qXo(NAU;FCD9$sV8Fq!lik)I95yt+yZk$XuJ`PS(4(W! zl##E(C*tBz@r;Uq*x%{jzkx+Xl*GL5{uv+a0y9y7&VLv{?h(L|3j~2q$0oI4Ph!a8 zfsp{avR)Hx+`J5CPtky%dbEn^^{i@LsWzi<~0ao+U4&^p=anb&v1o&a6Jp9m|MFPzuA z0+gfFE7XzL^S%SIH+LZC6CW4n59;`QK$-}q?)?Y`Q@MyR0LCfv&3$Sw$JZnVkL|}% zUrGM-Tkj#QWpAfU$?#vWJA2!V{Ff2Lbf0kydy1|nr=Q`X%2*f7H>XdF%~gL83tV0O zkdYB~pr;wC$(Ro&UEkZI-U|VcI(2+ynz>5=Ba2B*O%-02%la~rY5H|9cx(A&jr?@$ zL%j22(};wh*|KvV(KC+8<(_gK{6AUyHKqjVUDWlsRYouKj#y|cOTYlNpypTy;7T0S z2w{^u3bIQ?QpZcTdB3>scz{#?!w8RBhGz5VbiLl00ml3vsCtKn@!r1khGkk>9`||B z8+=CI`%{v8-{y6rJA!1Rw95bd`X-8sEwrGn;q+WuklsROrz{EbTXmFPVF?gxf^8V{^(J*;=CakapHp@p0w4~tH{ z59A~)Mt$&{-25Zlqx?W8fwFFfb8V;x793|*TX7n_Z}N4e{t0O#B$ zxzKW&di#ceAkk2MJip9zd%DJKoS2Zu^$mq6gkhlQsp&+AJWEHm{&`->}|xobOlxG;l_Fd^dZ?FGHN$oQV`eAn(-OTzO;BP|~$ zW(wXzP;dhGf+}i!<9lT_a zoT!vlR7ei^wYU~Kq&;rl{Em(|r~1iNAdh4f;eY+gq2(HW+57&r=tCny5>ixT6D0g4 zxNL(?BqT3mv6!NmKq8p2?jo~44%MXS9KhM1M{VtY_MPiu~UI~mlx!ZE zPCYm9DArmd33`8Q{f<0&YqEHibblKc%gH&TL^M<#e@?8QyX6^ zKs$>EX<^JLK!$W+8){Rk9)Og&EE6#brRfA}}eK59X#f4fFn{Wcf;pVHBD zLflf@8{vEp_CD7U&+UId|Bi*1 zLs z2J^L!_NZs6vzcbd)QukojOlT?ooQa85Jv%73Yii_r@BQNa&Og(xfkRY1V4eer!EKess6XiE#*lT^}v>MTcnk?w~w z-!tmeVHA^Pxt#@umVLmbHX0anN|xw2PGxb}q(_C@Y?r4VIdH5Jr-lC3_k3Aql)Yc& zMzwjj9(o{1+sJ@(iTY0+nqG2YYI0Vnk;#r}NCRNT8o;paVGEejbq4S!L81(RmZX1w z{9W-iuy|-9R`l*ohD!K?6Q<#LO7GO9(90!POGUQ%-GeD-N8i1O_2AOuMJRoQ6IVa4 z^GLrNb*m4s%^FfN`*uus`L?;b)v`BTTWGm64Rq?2UBC)6G8}_CA4sj>zPC)$9GDml zPbDn3TR>$rI(uG!-$%kjSI-*tmYBO5iclBkqJwQ?hI6n)B(!qzZ0CX(`Rk z{rw*N^I-g2R$a4LVm?RSr)C~5)W)pMw^de>&6=^B=!E96 zFJ85RkbZJ-E-ujAaPy3^m5JZVWb}P-jUT7z=x4rP+6Tq%T50)`wAqgKdGxbCYa6)F zh18yNySE-c_Lo6akR+4tJx{XA&U6`lpC%&Yt_&OTOIHH5(Ss@B>q>~#0Jd_J@*htp zI>N9HT(6{%BS(y!3k~U?Ltyp-J&p0}n_Z4GVWGVRfbxW9WMmxBslmRN#6(6->JAQB zAUd26x~AjXpbs>gUT#<(UPw*UaP~^coWFJLS5TZT(z7i|UwLXuCafv!Bw5uV4pDJS zII}QA`K7TlHhct?nk$6aaR9;VP8vZb%X?wz#)9{O`HkprG5#og`y%uE(O%SM0W>!1 zw|D;NE_F9L(fxXv%2BT&v}A<5XE6t3X?bG}{oV!T^n6y{pOB3Ib{m6>VHe;%x&c$5 z;OgC;wm@AjNO+m5vhMado3Gu4pI8cR%{-EG`v^3=y*U0*!EGc@^-e6;>*|$cT-K%* zvRfcTOUw3V@~@t{Y#1sUyKriX(hl&-1?QoK18i-Y+NYu(M_EocG2d$ACXzrKS^*0@ zm*ZcA9IM&E?L|Xhry-fNyd>3$S~X+_c#EE^k$nM&i;o`xru7zj-c%1>aBd|d-N|}y zgCy>`ZjgP@l0T04gBD~zN!fD0nTa&)rQEe<`e1oA+L2lZQ`;E#jDsn<1o&Pf#4v$&I4KWwmV79961Xxc^w4mFzJQxi zpHmpmXF*#Qw%Ys(Mco$K#_Qq;zSC4-JFRhWqCwOLW^P$OLXM1Xa-k&jP1&}2|2Z*| zw|RQclFhPWXA(n51ljFI)iQIl$Df7VH}hw$=I~&g{W|F(fDn3!{0*DwP0xJBWyxY239};A=91%B>voXg)LQz?L&Y)DwJEYI8!nMPZ1_Edg@n;9AjUE{ke1ONRI8<)v780_SMEsJjrXM)%X zAI}mTvbdaW9UbwyBdE%+o7WK3$@gzv2RB?TA1Z|1Ih^+de#PF2*I=Y27V~cfo0e?; zQLqkK$)mZ%6_BZ0edwPObQ*4wnuz$;-&bc9!AlMH5 zb#fuyw?f?L8y})SQCY}fU{Zujsbu+a>|yhcANhObd>tG+T|7+3r`P7tLT47ABn*H` z5=7V_J|Q6x7=h*i1W~%R@zks~yndVb%d#u?CN|!CemJY^z)_JxuI#0rIir=wPQ}HJ z%)y1Hd}r1v3ixETyQ6j!E{f-Z;=fK7=I(D8(UWPU@IEO@9u%Os^SqWXq?jp zn`vmI5?Y=B41G2WQ)Ihvu(#mDkW<)=(~AVgHUIh73UBR42*{n{eFFZ7>m3sas~dRz z;-=*kDC2Gvg^g!I%_Qe8llLd$Xh-uuGm`9>J~EI!{u8W@MHsRF$2&uUasud6ObF+A zNxR7{zz?BwgG8QIQsz!)GK!aWth53(qd`%s!v%-sdn`Ff#}t>9xJpzBoxm6~rHOYm zh#?nmjW4!l6njF#zrVyXr3;M81hK~fl1y?SAGCII{hps{FguSLRWW_=ja-S*dz|>D z5|r0hI(e2`8^ncF&Q_$_XhRobMgNF+eWjjU=_K(!avbX^rew7IdibY;Jmn|^zM;|} zwwBz!J>zroVukh9Wr4>U5ZoI8Grn3dXa(MOh!AHVG$xIx-BrN4HohVjsnh_glhk`* zg6Cqp07an_*=pVmGYr!Z*FFZmtlzMzVT1u|N1<|{okbN)t;uI@OU=MeGP0mczflw$`Bc=W#y6^JXDmFiq@F+d zSq=nnv&UTm%uX0<99_n~c@9|&agqX%4ubaQ)EOG*v*Uo6RfXQ!kWiHKV6z^K>X4Gn z-o_2o-xvZHe}y$sT=$s`-L`Md)8|B-#6DJOQO;vNWV04d0u#?*-mg2KgQ;`jpofid zgHQB35)ewWp}5{C;wFQEj#!9N-bM{b&twLmXFu}CBEI8pf8!#Y&-Ulkf-}65BKxtm zM@)AA8%-DQte2EqVWX4V4YsONb@1K`eJs7>Q3H!ShP`rL)U?aIVRFUCVWB4tZ*pY5 zy)}v0MS1s%Mgs551t}>TqLZT|dcXatSY5=GCZJhcsn?DV<}RU~oqnyjl-+$rCTIrK zg~C@Kv;`q=Z#KjLAeUea2$ZQG?1=YKx`6IV0Q8HO=KOKao3|BVi)|<@ODH`}-n7k; zhOYC}={PhW&f5!@IByI-Acs>*UqcbKeb0{^oE}>}68Dh7UJ?N{$IYz)drD5sfDBR= zOG6Re@`859FL#{TXp5)YJdw~sTuLG7ue4+4pqD3fE@5NiF?P9CGZzS#1ZPg>l?uLe zpPBZHuLJFnskFg$MbSJZ0D^_7dKE3-f)lbo>eY{W?>jVhT*l$(TVf;lv=9*(yw7`K z@C7q_vMk>G&jK<7A5U&;eOT|n+?bIUQ~KtQYh&lsS|)sgF=_)v6`VJ=e-O=hn#?ou znGnxM>dnT7?d=FSth>OoF+G|DsvrR=VCsRhn?iYqkDdEz`H^05wAtzXR09CX8Gz=L zV}gL(MM;bLcKZ|1=aW29p{70#serV>wEB)ICes}6`E|q=dEDZurt?1Sczf;H8lfVK zB@{W~CSMb#7gug3(_RC*{{v1vm!K{cO$C%h&bH@ z;HF*0HjK;>Ll7d(-OvVCd*ic`8}7v6k&u$-l<+SX+Pyx2o=6cYCChN&#dG^G%*8YP zh;1ZX>4HnyJABbJF>{S9SZaog9qGis7I~amTEyxfpwxrJ-X2UL9kdfS8sg9&9T&2p zAt(^&Gxb_5%u%p1^<_)pWW}h3dM5jLsy)CAY@ zDyLKrW;@CPwV z0?9u1oIf=UXwOC72_wUPw>P#R(J) z8?7)hf3$oMYmuL#&aYE(VYjzp3@(Y)9lF_yM?yZK!G;m)F$@pdA7*o~MGKAJ21? z?*`Dl4gwQ{s7DnFXPhr~Bo0A~$*NjTlP(h6UXj7E>l(NS^Vrb8x7Cig+s| zEicFJt)O=az`JoF&|1^N_YI$DO`)~CPY4p%(%?#mzISb7;93jx19DMH-a^oC}?Df4@lBIyOC$C)#hsY+7@_}hvpV; zVo>R;fqQzE(u)fPSrIik%BbX-d2o z|EtaSkvoQ%FCE00n~+@$i0Z2^-XxAP$P72u*K=>hODL(xp8B}@h`1P>s_F6{V=l{k z%Y5Z5HX7a?e_r2SYEE=N@7%$*rCt%0oYIY7WL?kul@wUd{f<*D0LY>3rrE!c<_N%S zCuhjd=tq52uZ3;ZEXb&dYQo9Bc>ie4xmtBU&nyny|3})ckXk1^@#oA*NuP zS6U{G^_k?6g%TaWp$qj##y>%8jrhwsdpW}A3l3bsiOk9N3g7QX76DPCfA(}c%1BXM ziRbdhbeO?~#%=8CN59sAi<;qW-O``St0BxKN5%Yst{q*Ig`cmHXd z#`wk?_S8%e`hCVNx-DWS$Hv7qca{OG%;x)C3pMMyM@2~)5ZFfGJNX23CzP!dlIwL^ z9KkRZ+Y*4VI^qiA=60cWWj`0wexs|veRZpW~A>{v;A|-#{q9fE2 zVS>U5J;ye}g7`?i*F3 zRlF*aDhAs_w3!>$lD>-8WdCt_ok$UpA4#m*IS28y;qpnr*|U50hi>EJFqSdkiL4)5 z2kVi0V=$-&7Pu%!C6GQk=(A5@4z6D}zOYu3pl=i#QIgO;KW$Q10e;ks>c)= zW9S=VOyr2bU4j%0YWYIDX@|dLqy-XE@8|_(lhz{wWl%*y#QAI!ZyM^RvIku1_z^HO`9L-XG9dRj)WBEqZfJOJBuY{nVRI5> zKUj%T2+`NkjS0mp$X&_3}P?G2tCPMGpkWVIK6UQcuVuDq|Ok9}^b{M2U|NHpgqLQ?VwcifHXf z!2N`|Pzpc0?U(l7JOj9d&wn37f`Ux6r)xp6CQ}QFcd~k|I5+aq+PubYm3Z)awcym1 z@#vP)387k(Fjr<4Hn!XHeXubcYKvv|p&?H;-|zRUmU6X^s1H;D!p8;l>xek+8eUezC7O+ewb?~RYVXAg44|cSK`k+%^ zg=PRxj~MjlE#vf z63k3?JnbqGG?Og3$Y=@Six<3M->FkjMJYo_St*6zgiDZfGvH5R3tMX;klDWN!CfdO z?H5N0g_Yr?(&%RCe;MN$pP=mE9~o?5yc4M06i{lm1l4gBaO(8#HMN_a#;i+7as?ax z2*umb2!10SEUH{B7(6kHIcf2}LkBu#YB<^|3)_R766a>R-SjDz^v}OfETaWK(!owF z%C)(AG#Af1XTHWzBmmr$cfaESkAru9F)nzLR8r~$O|P@A=g%W7KWcVeu33)rdaBIKZ|B-F=mhP zVq>QgX2bRn0Y#gnndi29bQFh?_^HO#EjSp-Z^qHb=^R4b{7bP;={P+-RpWehvY?8V zbKzU5$BF+Nm9SudueJj%FLCweZzF0Mu+ZI*ysioQq7!K&QTw>&)86kp{^ou`=-v3A z_0M9Wg6Do%NKP+@@`5VOceP4=h>3|ES>`!D+2HKFF4;KbWRWFenmh9}43LW!GZJP` zNZ5*_Pbu7XrzoK!)%EUI;7)uRgl@(J~WN5qq|N zs$%K{n+v`?gC9 z({d>%wVHF!qu#GNIPC!#YLJPLvpCsnVywEcWF~!LP(<|r9>q3lO+S_H*T=Ii^5?iw>Z~P#&NpigKkbYK#@RS})Nns@o0+k?1 z*+~Qknzm+@iy=w%J}oIq4;pMDbQ|S(lbjGyFFtglzIMV3#XdJ|B>g4o2&Pup$k0Pk zx-bOT8Wn2;D?@6wqhDH!z5T<)t{l}yXQAy?7=%YU24;KkJYHrjy4_e;$c*;(&cUDS zd5$u53=Rx(8WBMD3i^izDX`YTl9c1#T8PSnQW2HKEJKJ!iBqUw5~${Djr8e{6A#%9 zZPWx0q%oAS$h1fhKQ5-+2ZcrBytbLnNeCrR?yH0&3^sQ`4@`kAPed&Zc^|IlMW%P$ z?|@!~0{5r)eS7g^Lo94{mb;Biq&Y#jJ>%kA#TvJQh()p52CZ+l415{1uEs!JwP+`i zH_Ku$&B(e+qZS4fj(tE0L$OSm5^J`@UM=1UWeX#o3fsrKM`T0tE5_53gcW+ib32Fi z;Q=8T{Xwg9H*HXfKQ&xxQ9-+oHs`PIo*`re;S0(L!(9p<^guw~(py4sFwb~*{nMC( zT%#o#HD%5yN5foBCZdLU@xXeW6#M=edjL~gBhp~U^{T1Hr4C0Q)2P-p^mF59++x?D zs^~<{U05$3v$LYjH)eD!Ov+)BW>&TEbQD=kdqNR+5t>)L)OGfDBpnfubv>1YHRmq} ztw;^xgE}3B;t?eZovmQ|XdL0>Ad9>7D}+hu0m-%y1Q{En@|*jDw`X_Hl$!7hea}~v zk?%DvhUzlNoB9!5jVzOd;_&AvWTk2ncpI_b>Zj!E7OIu`sBbndQ$KY~ENT(vo9nqkJv;5%F`IE9B9c!6tI)+3ooGMChLQ500PT^U~N&>sR=N9hIKl-rk?y$%|-t{64Fe?wSH4r(M^emXh^hKa-G{cg<8EQy2ROnL-bQw?&*{ zXfo+Hs{1=y0pv|Cm~8{X4~WTDe9k>=+F!%k9nr>7pEb2LdgEb98Rnj=s&qDJnzDlH zqdGOF9Tr_{9Fvw}=6Vh!-$?LG7#+~?+i$A$L*|Ac#-$3rgxM}Sp$a*%_|?IQh-V?0 zL=`FUg+dakCuw(Js!3kMV5nS1IJvU+c@6u%&x%|AI?hT-Xc7B4vNLM)gtqE=DaGne z0<-lCuQ*d5e=i3ShxO0%zSo`%*N<+*HU!yHo0)nlS<+gQnNW`a5Cjy2yL9@gT}VAV zI)PKk4Nx5+(ezh-`5B;wcJKLreRpFjS1n68@rZR4&Qh*YBx68Macy#}MYVcu$k$NQ zn73wh@Gaj)=C#b3OiYiR#!zE2YMc?>68~Y;KtC4+`%a6IfDJ*lLMNBq|J)xywV*T{g4L0NQd<<=r?$*6yxcDGROA*A@YOSHDJLCCc?5)3+j6wP{zR*(Q`r6@SS+u+uBS79sh^z@c{Dn zUjWrgSUhj?)xHQ&C;y>OL*m2_$gcumLo8rUt^?q1lE|6Gc5PNs9L@vaZ%tO~ey5kX zq5Sv%2am_U3<4)XXC6M2BmRSF!bd|Rsl`Xz%)Rr1Nw<}KkbL-G&+&h*Een>NRuGAX z)`tT0L?D0xaEkx^`{tho&-z3s#Ftu9K-B-wkElqyU}j(^ZsY&!D9sRHW2S7c?ll3l z#J^6_1q%+QLvafv{MT<&rui3V#mO!>3=ItdJPwY0CZ`g`Y_sbzK8QS2e7BL?A>N7P z)b{sRHaB;7yJ^7{gCxTr=$QkWn>i;oPfqmLt!_lO&~r;EeSLi&@K_nIU<9HCMBv0t z>oDwAT7v;@20uGH+hZf4zLs|sg7{4nL<#+#`#Uc!}I;Zr!9{dCJDTxfsR{wiLy?jEG(mLYY?!o?wXt9 znD%Ap0BLf+-WK^&?)_;ATat*;MyQJ!D`owO-f4Q6|&FS2`|w=DK0A7@$&nV zUQq7gDm*f>H5}#5&mA?m)#`smWRs0ARL&L72F+vvcvQzh*QT$cgQ_ z<0?SO`V2_En^wH=3#lVxS&RYh&-tF0zZb9T*+-> zkD81O8u)bx7Y7GXVR6ruD3G)Ou)S>*i2yNBKS{n4Ek)(lkrfqu5K^UQU`PfiBcAq` zIE*^E4(?)MIbe?)^1^_*;YZ7v(!A#H-{}CXY#0cKu<>Qy(_K3E)?&RZ}U+3A3UB%cR7 zX$j-0XfW=5r>CbEfh(s7WU=GR82`DWeI{;~--T`9UE0F$w%qIxQBhHm08qESV?e|! z573b5fIh{+{Y*zUw&E>85BoDv4S3Pi)C5u#D^Iw=BfuI{1EUWX9}+v<*seB@bH#F1 z+Du*#Wn?Q8AJ%J4b@Crxa!!swZW5_3@Dn}2qY8o$V7}M~E{D{&Z)3qMXVe`Lpc#g8 z%49_&_QXIdQ%K|#Sd+{9b%B@TPE&Mrw9dI14N>$EhdE-e^k70uv`)pX)*i>ScKOWn38(<{|aqp<9s9u8Q9su?!pUtv8UILw#FDP5% zij%BNBP)G0Fd$UFWa&vfc6@qcDq=K4bn!X5qoOYiI*1Yz85#NSD}6o;rvC1S$MN3Ym%Y!;2%p&MZkJimdl^?9qf6AZR_cP};=n!NN=8(NWn63mOB{2Y^ zr+Y`Vt@`5W4Y*(Td$8T#l88I;SWtv!CLQp^WWIwaS;i`nn9d>_EvE8fdTd5Swb_0!$2_Q`Ff#C5& zW$3PjwQYAixz9Ms&z$=w;AkiU^E;sarNI4m^7Ad53FZSAe^Ag*z`l#~f5bSf(I#5bqn%n|IYLp!uRu5GI#Nfxggi9w=_v6h?BhKXc zep!D}YB7>r8j|hC@4&PAR`lr&7TXQ4t->5TIwQa|CZUnjB*0!GAuUaDgyVoqgPwp7 zH7`d*7>~l1zZ-#o8z2ntO6be@4W3a&$|)pveN~yojl7nw2^c+sWT^IV^C{+0V>S)* zQW*A!RlvC@m@&Jb3bL}a5%@nHC_N< z{s;H&B7CsT^Dwq+;K7gZ+lL_4OGr|8B2?chT{&5k;SY693Trb|uK7wytG< zP*0umcytkDcJJfLW#zVfe>v`c_a;2fEG_fh0nhl*5CUk;54-cY*j4b!C$-EgJSeI5 z5s0Jd|B6WEtqhBkl?DVpOhc^q*ToebK1OblO zro!Ul;fQc1dogb`I*>(w>^sf>3yde|$aTVv!bB|67r#W6pc}{gNFU5reA#9oe22La zRv5-*H4I|!G}$SLLBT^GXvC`rgObXK|B0TZOu+t^sq?ES75@&P9Y^50ehgwuAn!?~ z#T5Ax0iR4MphDt(8bF?Tmju+AXnO+G(*PD$>F}-@rGV>&j;y4h1}_#m_oi8d_vdg< z&xjjS%O3o*0wh>RjNE0jm%=}E6>|7>edYJ-6Q;@OZR&(6MEfV&9s;ow|C$;F09Az1 z=46I$g#v>MaxqI!l4M#HabPEHLq-12)fF;1qUVC7*y76|$@oPJi}!fAp^F$NrD^#L zFo`fBhrWx!n2y9m%a=!^4QI;+qm4quIMeLU`?mfcpLKs^ASm4MqZ<>$?x(|CMi9Lh`NA_FfkNTKsnk zhX+wd3dtIl1L{)$K9~-X;c+^#U-_@>*B}H^X&9C`CjQsK+)p6cn_cG7fk=w{>v$>| zXe@sERkjS#L;Baj(ln3(zQ0DEkN&SK`XmX&lK%h8{C9!ze{nT!Aada#w8cr$RfTY; zVnPXIf`u=DJZ;tG2WIeOW`uJ=wpjz-`1*huquAq!g;G>}h z0GQ@5cHh9j7O0{%TAgV@S{njp@44VJ+rQchfG3-N$19qHa>oP%XLKq*-lQcT3?_L{ z5lV*SzcGy=L`9$;Ms={HNs>oou` z>oH%?kH=x18coPG1q4e|$`3(YUjVJr2y}nn`>WCVE|3N^0qLb8PhxyBe<+w|aeuNK zzk(lbsDkU?uuAniJ7_UVt@iPBnlztgnFe$ zyw%qiNQu|KXMe^JawU8u$pOUVZuu;3Q-D{FtvCXS5r@lfRjXe$d9!6I1NAikQgnX! z+w5$!-?tLV6Fes0%A@0vG`1=*omc;=$Co1>m#G4Z1GU4&#tJh{fcCU;Ih<<*4=NpI z)T9h}8eJaFj{`^1gvwo9Xjs%i9e*fxCuMF?sDL`g2_Sr30lGkZ-ZvBaVnTT^W8gkL z?SW3iyUuFaZIGN-f{`e3YPEhR|H&+Hu-_2M37in#xjBPufDb76TZiD8Uv2owAx-Eg zBm=Xhd*=Y~lO-U1*JcZ}5$4KNsHf@Q!F7V`x*RF(C@6#beGLT6R|y+@<@AgT!cDmd!6*IhF-`#iU@B#jqv_6%k?JNl!}6<9q)lf{^>()B3ckP8U>n*+b(2@ zhc-a2JH_f8VPUIhSGwfEZ@b+^NF35A4zd)6rs3I^VURxz)1k|FCYxN=if!AS4n zFH9#2B!QCCsBIA;vm|_;CirveyDH~YYDq;i?>tR$l6_`s+~E-!U`u`5Cj^FTEN6Y{ zXr@~|FD*|#;z^qtgNKoAo#0k!_yFEQp4e)dW6d-?p0|H@Ze|3MYoldAq3Bb62;hpF z@1EZTeDec}-d!hIZt)mk?~}fT4q0alEF^$Mz43u%cdjx#+!oFR)q)n#GpYm|X0F}K zEyoY94w@gf`ol-&^4S9*JmdsFIzPjqK>1=sL+V^ShtKO15ETrocyI!pJPzl5MSx<- z8h@VA0Wt?)?s%u$LY}!0G&TL^i1|Ekcojx3XL14+bY-yN28Z&!1U&vyXzn;EsGWhD zvCUH+RS+tG9u8ixex{HKToeQBCLb4%^ZxotK|eo8oKE4mwb%=xF2UaRl@l`8>4|H9 z<+G?P6;O(eLu@pTNBQt3_*m&4xWQ*1@^P8;=IkaLALwl<|jZ(5SnJ1P@ACP~=F4R-#P44gpn${Qysr+H^P zpFIGI=z!6KJ_e~z6@d4+KHj<5l~k5Tu$I2_WHjZ*vi{w2@ewo=GT6*wY*yPAminH- zXNr>l!mJaN%PvR1SU#3~zVW!Q#)L#H4G^*V6N>b~0(IiJU;oLnD=IurV!x<54rL#y zCY9|jzCuugcmvH_td_uZ^0@u^1!{)}E#6l%3Oxdd`0u^-00bw;7;hfuPSuqS`NmoI zoHZFsx5glVRzp=?rMnbHb`(x6oUI&C5>Mr}8u9fsRp2s#$n6!@sbOur%}VQR!;W$t zkjb2{uh5$P>b3va=%Z4%@6qtWe>YAU@(}Y8Oj`28J0RcIk>{$NZU_M813Yd4h@9ev zU&m=iaz?zOnN^8`TQZdf>BY$eql8_V7s0|}Hi<^`G>LiG^giV&4JwP1F^^O*Iitg@ z(ZG7et5*$(t)UQ1OBkB3}9`xJQ&Hh3m7Kad1h7U^dI@q_tbvS*#FKP#Z)U=E~k z9KI;EA@alKD#1HG-Yzy+U}W)mam-WkPek0;RH=9mQ-i>vhzaeBP-dRTNA%Xe>x3%T zx@1=_MQ0?@TfxTQE7>_v>3m8EkZqbiizN||_3|3a_%Pn^Y*uG(uAebv6;r$$nL@uf zpt3N*DN}Kno>9&(gPdcvTJF0dMRyBAyoq5XW#q^2)c0yW@I7)1YK_VF_zE2Nn^P<{<2VbHQ;c_fX z`z40fRb22RnDD&I`8A!#g}X}@`{+&(_!Er?-}(!(z`_eg=1J#(fH(leG>WdaX83a{ zah@MOym@RZsmr{hEO<6mf~w+^xujG0XFL6ZdDD%fo%)0(xE_l-aoTvbIzx2c_POK?4h4P;x@1S8O zRAt$P|L0mD?>Wec>7?$2{(VG}QV=RVB3%4G_wfI8SMY)=ER*p6+!5ppDIGX*CB?z3 z{~Uqb!#k>f(t!Utl?mj;$rO+OUK{vAa1V0-?-!>_ztm%Y>-MN<6AJv35|bCL7B&d{ EKN{koX8-^I literal 42302 zcmdqJbyQVf)HZq$L_oTvkyPoH29Z*_yO9tC=?-b6L_h>YO6iagM38QzyQDiLr0bjf z-uI3>#`o|2@1B8jfPMB}d#$FFc1g?)-zd2RRrQzIs$<-hjt5o zbGRdG2H((M%j!5G5ZKK(|B%}4bIlQm`-o?fPt@H%ZOypp6Rch%b{`gOyIk`NdIB3*CI{LalAL{A_J4t!g?FS`rh z{ILW6fA^#5drCx7S6A23-&w!Y{TE5{ZN?m1+uNzBsSgyA&0oDzaJ5Qy*ci^+o~oh? z%FN6Zblv*ldwJHK$W9m3nu06HOsd=5=fr)Zd#bBqA&q6${V!+b zSXfvLlS~W@%Lj{v^%~yEjAO@*fp?hd+}ILR-o4uuKvGtYdlg_ZK4#<>g{xcdE0TT0 zDbpj8+l!j*dw%EkZJMB~t8@Din;eSjXzT1$iJp*=>`^b&YnZuupL1dwb7SNFdOtsI z?()a>f2M0a)M#TbcAIfNfBt-Ve*8eFEk@12z-O@yD@a*f9ATK5lVfRa9)xSkK{6TB z-q@I7Ggj<^p`f7fo%)&F83((ts`H#x0 zLUnF`|C}DI8r6AsF7A2z_|#vW*CZ29##PzRDk>@2j};pzEBC{I!k&dTcrG%1a_g+;bLTVi)sR+jyrT5EH2 zLJA6D$0ga3S6^v4h;AVxo0*xBe~M2?;I$s4$87%h@1NplVQX7keKj=#JUkU0op4;3 z2(22|?O~(k;o)JhO8N&6x|bc<*-O5C`=*#G_()56b;{b2a&ch+?pR$_b?}$hF=|P0 zKJ1Io2Y8>LZDV_wV1QrIolGPoA#Wu&F!T z9xa-RrIQI0yLfJDaqIw2w?3fOhCB3dPeJ}0~L1zIJJ)zfc~?}UVg zCMG8Sov!Alp?TB2j7`o5Cztmah7t;P9bjM(Tix#;L<*zPUDcW|imEwPP!4mH52 zQ#n?8Qw#Jh`_rF{jEsu_biTaWOQ`l zZvH_mBXU8^j|SNarNC^Zv}mpK|Z{hjrRJI%Jpgo`zsHvcJvs3;%p_FlAq_QJ3`y7w!4;=ezdrerVWRTTg&MKia&p*l2`+0>mHumPQiPe-o`fYc;bpA zq)7KW2F=pqVwS~{wwerwe3VFOr-68np!%Oj>W>SLzW+fH1Dn0@N*3`tf{~FGWGe=w ziTQ~da#{TT$f{R~NiF(mTyz)1eT*;YT}sN-{&F{Lo45AfmuH8~%!T^Z_$9ccq#kSi z8Kq|J3x0M}l|_mqXc>QgdG#f6=P0D`ourZT**092n>>n>rH^884^l2M{1tC0F&**0 z6U{Fi931?0L`_BIjTZBxM~!~(Q$BtqBqSW4n4k%YjEZt{bR5=yf!RzY;u%!+rL=VK z;`HDitFF1Vb@*7d`(9@9tYX}z`~K3i+LpmVE-tPzqk3OSb1%o+&9=mTIGAd=~M_pO}*j7#kZ)<1h(uyw@to zaO;hD4{L@}nkX6#GBR?wWPo4GpFdPI|61=E@eJ{Ovl(LxdY76?sgk*Jkv? zIWfI1&v*?5L_`cyJ5q!L^2#6ZRo~6k3GEUJ-Uu0~8%>!jFE8JtuH+{tPl2s(E z-yG^#{V5kF{_me(LJ}SQ{qOi)F{y-q_?#aFqGB~&V`5@TqLGr2EUm6CGN|P!N}&y` zJIBh>Cp_Paav%R@(&D)10fw;9h-(r_#*0w`>tthV8+qjvS&*04$Zka!RCj&lB|O=N z?=2}AB$3fz*|fNaE79BAdt#d)mZ@lbn72dg{BKPq(?VVz(=aS;;(k!2-HdMiGPxd1 zJSsLt*jTmKF`ME0i3U^oF|ohK?b zs0m2~%b~bNjfjW{XU{DwQ)MB3Oq#NxP;jL=;JqnFPja!3+}qcOQ_uGD<;&#w_%9ZL z1n5`bNt&5YPEY3{w*=2$V>?mix;@$2(&D^6DAl7gFZQk=KYz0Fm5}$z z?vp^&RACR*Q{umXfbb;1A(xhwHOUdP8%DaNfivms?uLUU(847%0mm#7nRAg!Y999i23F_+U)w}QAqTw;`z_qlrtZjmLvKNZ(0Q+yF z3fTdjhJ!;HhLW8vO^;9Wl`8h+8o-O1s%r8yhq}G4FjYyf=D?D$n4b>>7I-CSC3P=f zo&T->^XJb7&yW34#c9*O?RRr`@$K#Z<|w7n2EDYg!IMz1LvIejO5wJQmdNSbqnfGBuUz`O$VbJ{Faey7J5wKUvhu^0LcnFQsq?Bc0Z-BpTjH zqtgHnvl{=hwvF8K%Xek}g^n>#0%3`;9*e$YUK@agBq6_G%UoTaTlRhu@H(;u%hJ}? ze)*Eg*LCU(giuC$dUZ|Bm6a7c2>6?$MeaE1@VW8vafsXrA3o3q#S2LZ2?-I9cR{4t zyVkF9jXJ4*?tXq$v`?dSis^siCoLT!eqY(IHC&1=XnJ~j_qrCANio3h`s&w4gB1^1 zDK%}-xNW623*!|gI=aqJXX{iYJfDcy_19NIS3@K;6|g-}z0Mz3b}=$C3J3_eXolv} z#mYK5I&N)ksrv~j6lXzv>t2oue&e;b5d79PH<14aN0R(S$B1?hqZv0Rr^+vDpQf8N z2sfN22}y{L*RS{em6=KV@ZlO*@T;lHS6qnYqF;)u{it&Neswm(!yo!#LG-HZ4C=f+ zU=7>@j(2ZfKfu6OtDgCs9DWo`{Uf&VF{_tKJ#FLYLH_(3A|fJQQja(p4&JG>hgz2R ztO~JTxM2jm1qY^?JlATd!ID2LQDTx^d|vRwLbW?$G@6&&Jk`z$*~R>>F5o0$FKx8qlJ%Ox@aVuq5>0r4^0gXjgy&@u&^+|tClZbP>T6_1FSkdJ%xP7_jLbjRaF&C zv4sVr!{QwpLTYNiqb;4F{)N_v@U#(m#`4a~)3zvbNuP`Rt;QTMP|=r%08O8L`mxBJ zF<^D*_l}SBV@V1775^i}R%9zWuuvXJ$-l7BHW6R2?X2TOVKH)I! z%h=V~(fZJxzvFv5GeW#t8)kXs4EKXVu*mt`cJwiu`Rt~{(!MP8(Z2kmu))pET~J)i z$R=9g_j{mFa9gPXnfvi$tq1#zkGWkYjp!cMsNt&fu%LHTA1WcWurI?_21h|&KjwI{ zYjQz$Kc%NlD24?#>Swc>f(nE}f;+~_E*`D9?CTok$TrO%;G)^h))^QYDypMlW83Z0DWGbmZHP8lTU(o! zl9Z5AP(+Ri`(E(-)*c)mKky{aEAL{~ENqa=mQM;eeolAxyYG{LTF=dF(o z8<81j;NZY{6??|e(iWM>Q_V29`&rE$2Q$;mn)^GtXjm6)M49+pkDEkTwfvsX+m|+kt-CDB zA^Qp+qd7A^aIejH8k+BpUDr#tzP>Kvv5%7WEH#FQRNE*296=YfGhH2MLc$r)-kYJeZz!UV)zIPJ6DR1a%;g$g|guRy}NuAD^l~f!a|nJjE%^sl0Cjg znFjMx?UO)newS#0WQAR<%4_gVcoL|ns9k2#dC|3Q--lap6+a&p~*CHpp9d?P6z_BEe)>z8lpLB1nar77m_Eq^A2h>bk4KheE5!3CJkzyH=>NB?)_i8mK9gM+GkDGFHw5MoEPDPKw}I&AP1ez4B2 zVFxl)uyrHZmk@S^sgzt~32zRwg~Po5mt*C22d-88&Xa%}4%Qi${{Q=roGHbbQmT1` zetS+H9@XOaU%!6+t-PF0=pkGneL3TKK;m=2hHOA=`B_`%IeHiy&*f_rcphy%(=@&r zi=1SF+&`crZf+GY0_14tFzXOchr|2dD=)Z|N@Vo^{=Egc zGGw4HF7xK+=K-0`)OwU3AtS>WF|(lH&nx;2W%r8{2grrCWp3a6SwH@VWDM>kWZPi3mlqcj5)$BT_$i`g>7PG) z79J5%UQto&b6%O3_h^FihFfPv)xZ~)SOWqI*h+8U%$_`XBhR?F=MFTVSzF}k*=7k% z&CRH&gC)>E`goClBL4`pQGWe-2Zzt6FL>|wfN(M)xLU2iB|h=7FwAgv{?Y? zQo!Ly_Y^Wvl&rGf*!^_f7K8zU1F&+fyg57kK$G({~ zH#Ikd^Bg8!%g)SP01OnR0K8IuUfzIw3w#RkU4^#su|U59aA<-D&lD640B^tj3W1)a z_y}gr3hQC)T=*M1Vpd&sOMKD(9ysH0lG18#YKeaJ;J7+lBBbIMI&c142^0qW+Pb={ zY=snyzR!?8uA|=hnIz)H_rD8;&HxMbkc(>&Mg%7SBD4#6=69Nyk=p;vdeNPmm3;W$ z3ypV5{4oqqeDg^LN=&j}dWw>!GDFO>V!JZ3&}TzAbV0a@QaN;zIdpU)f)Zh^lD4Ql z;xXAWIeXg9BB%=-*3zENs2ZPD!Q|3ya^KHA677!?4YX*=~;vQR$8yc;JAG9qm(wwp*=qfil2{C z?3%Ju%GSO4X5yc&md;hdApK*+6HvrF_Lm?o!~KZS(@WmR{Wf8nq5Ls9nT&vd+ql6W z$S2pW@z|E#6Wg;fBNA)xN=HnM(TDV0g+GZ2o)LY;4^}S3ef|xuFc^*5G%Kj`86IbPm=g^1>K8mfq1 zGhPF=VsY9$33`qAXN0tmG#NF*=rLl|W7*zE(0^3Ue3<*;p5~)3j=#I!nOKWg@tJCq z_1_M`lzaL!fu?yhjE2LsKiMw|PON;hqS>fF2TU*pxfc6-_!T~-%b9EYCe(h@jn#U@ zp0By2-jzl)yrlK0jCqMRyy-bcK&_kL&RrJ7{KU~ief z`m)P;nR`la%|mZ(y}8I6wg5WV4<4rTQ>-=?Ps=yHmTyF_EMH)KP}NP*SBEdJB@GwN z>gnE(1C0_TB3FI-F+D-vP+3!#gpHm)VD)b1QIl+1_NTuEHl-`OK(CVTr2mLEyjf&5hGB$*a*bAIkAYMcadH)NSypy8>_)EKE!&g9Mw5za?Tm+M0Ok z$}ipw%bz8JCGABP|BT43+@|=&^HH(F*UQ}Jg5T<#O@)$_P3d4uQ$Ecwvw=v}iH*d= zP8A{AkR;NO#F}7s^NHHTNI^Z*?iZLYix#B7y#AX6ABzD92m|sp3s* z`fY)40TkMfk#1r#o`M>+%PKFl$S+N{`G0Ls$jknN5l%depIdkS2@L3j3ZlrgUpa=a zkm{9o0`GVNW@qEl26ahduwZ%UPlvG3zi>z1w=fvo`;$r6heCcjz}G(0vV(oAm_ETe zw^j2rKi&>%KP4=$C=!Jr(sylgP77zQpMq`st5mgB5)+9s5ybigU*m`0Q{IE9#PJ#x zCpS#-DN^Mbd}(|i50BrlP7LCcjwDUR45S#}r4T_Na*=!IkiL>`3^2NJ)N+nGM&>kT zhY|%U5nf+Pv#7nJB!=xvMep8!i(}m?mwa_WHX`9o+r8OvWE`T4s~?&A7#=V$WVg|& zD(F*hpLw07>`)q?8Pekjs{Wg5ew+DH_5k7wLUuQOd5>!>0)tP0+=MN`B%?jT*H2%? zAR?BM5H4^RE}%N$NZS3A+=#@)P`haDKx_WZJq<_xq&o=zYkw3RUA{LoW-dy9>X5Rv zxacoq?iqMLpb?@4Lqw6?6~9+e)h{GGZYzbexUIy*_=(v^1GBFO8KEl#e{^%UZx(z! zZJN&Qwb42#pcOPhGs6w7-G3@F zd3-f}m+rR{^Kzq1#FZ~y2t5wM>ec;5NmKFSB_I?mCWSKMkJMw;Xrue#2<)z-W#KaLML=*9mtu1@}=n=ATrBzBZ#mq@Uk! z3>*z;{?fDg`xi%3?YHMtw;rz`A$~^dmPGjcTN{8vDr7NT-Q58Cv$7W7(L4ptzcc#o z8umq-w}fF&iCcHfui_Rt0+^Ej(E=Eb#H}{vj2eR51W58!&(+n{-Ted*8Zd9c!M7ow z#|ZxV^(&+;P(l0zwTua*Td527MSgru7i*gvr49@QUi%WC#?56=5b2pL4sF|m?q-bk z??%wd%ucP;pX~zauKJMhvEB6AK-QhW#)i9)8Q=gPZ#6*s_;D3fZ{x^m`Z=A+$TqEa zgTMYM^b6|4u(@~Qw9Zpzb_=2WG@*7sV|O%lupnXo?N0WS8HK=(=ruKE+D71c7#J9S zc^-B(H$SZg0`UUaQy>p7fx4q<3|yJBE_P#V@;)M(A4`<0`nT+KNYjbj?`eW2SMa?0 zLG6{cb6?z)Lzr>J7bU8VKg zP-~6EX)j~^_#*^jlD?3&n!VPeV9AKlpoF}>Pxm-g`Zw|HWdwdZ7r-dUQUH-{Pn5Sq zfy!erRmd$fD+>yM&s43_HH`ZQn%MNc*vy8L-XHq7`%un(5JnWWZg#CE-tDWsmvj3g zitpk{mPmW}Rv1qRKKf_rtjo*eStt_$ApLi6P+nHH@S2}C_94uGh=|W{t_rus@B2d1 z>F40gek60P>f?R=p4hWyF6qjT@V5w}*|MGpj0nzQz;N)3$Z+~Z%x&#ye&?$RcxSW> zVCP;~TDG^fEyQ##udHC81OPW5Mas>1|Gxj$nz+q8bN{v1#|c=OlIP}|o(KH$KNxWQ zi(^g7PzJW|2Iu^kM%y!|a;4_UB z(<;lUx0aDJs1dj$&a6ViEN0}sV7Pu*d|}va@Hlx>?>%MgkupPLGkhihRj^z@esV1F zxm)nQkj{D>B{pJ?PL^=N52MeJwGOx8Z}p^4C};WngHjg~0G61}$Pbx2-h8L&Fh66M zuf+A$((BkmR3NzIU90|0CI!&hg?tvPe)Vnm-aAUXo9F|OUi^i~wzkmu-s%PO^zhgh z8FJ!@dDwKpG+U)>e>!UeiCG%m6uVv4GmezR!!41+-q=afs-!+U5q}IePRqc7cnxt4 zK3`wM^tSKaJIcF=bdwUM_nKdP-M*eotDjfjoxGavDi_M^AiWu1Zl6|qy`TU3Ke?}5 zw=rJbeL90APE*31mi9ZMm7`TQ<=J+1Y6o^G6ATXE2C{Cz5wYhv>PN+DZKe+xc8vR*DFA^YR* z^Na}zx7ZGzswUkcpSKeS^Q$ma4PJ7bPbz4=cb1IvX`RC;2Gz%SGgCQ0CQYPY0RrpL z&=4o4&FlPMzkWgCXC>fvQG7W%x9hw0mV>V&-^agThrnRO3j%4j>UP`0YXc3XDYdHY zxh;};E|WCFna~XZ(hqx(QX+a9JA+QOK28Mvz-LV5>%H5%h}8diETJ!E>B72Y$@gzX zQ}m*&D}TK7f4P_cht}wBetZi)r~^m532FZBiAXkj!*lF>H81br8Dw0W_ROuU*&6A8 zmaiXQhn&+CH90zpdA@Az@>9Bz2%<+S6F03#%u~tT$Nxo(^ZDP8JkQP9HnJqS!4T7f z9l1;vE;kgk|FQA)x8FhZcxl8s-}ed)jXlnHovN01KOUFye`AL@VFCE4;&bX$jAleQ z@*WmeP>Q7_y7N!<*W zX~p`A^HhbhH5^V>YSk$7z z0s`PddytTjOiMp*A&`{2DU7njg+_-Xz$~z0a?udE?9~esWy96ZlGk5n{=S>x4aP?| zWJ^@~#J?B8Ugr)GF`VE5cp`4=!7o5dho>21mfZ8OA z!ciEZklXq)dTA%3^N+xY?@kaO_k39`Dx|DA5CL;?pvLyoX|=Z*bWMWJxj?Z2osK7Q z>y2?s7#{F}^g_~zVX3E98cLrts9rUG=eqsH9YL1(pwkdI`M@LRdW_asKD^?OC2=-M%8}L@7dCvKDij+CQN>hw99UHAUqO;>)*j99-~q%wDjIb?y_-S|r1|gQ{-|Zroq ziWXFB8p>&uTNP*4iWvFSBX*|j>=n{{Y!_l^9-4LjUswT|+t&DAy^>5JjC6bQJAE6n zzcd;qDQBR3ds{-X1BnlX_Kn{XaAeS_5woovt}tr;v>ILSJ^jW~6+R=E#bX+wPnsxj?Bv|5yei(0)Tbr84dQA_P9kN^ zNaAu#=F8{hl?k1aa{8l%MJ>(M5#7%~iaN%z2Wh%}Ht~ zi|nlRnMX*_sl2*wncc3QoU+Ly|TL}D%;Tdh?4sAyQ)Uw+@pMpo}op#RK{Ttj{FX5VV3v`(8{6qTB zL~A3tCO%7&EMcz&RB4nXe(mKQ;5L}A%)^>`v-KJw@j9FeQTC0b!XP8NS@B-YZW0Fq z+iJiru`R7DBK4(M3G!IzmUe?*BdIXrODRvf{asES_owlUL3dWgBfc~cJ~+TOd?RohE&AQbHVA48{)gCYE-mYXo`a^-E8}eAA zWHg&~$BbAoujer)S>V=d@n*o`;-aXOudd(waT++XDagY`dFCxT>;24aPbRNw>Q<0D zqi^Tl`n86XjzU1}P*l^vyG_p_{SCZz5Ua7uzXOe#eF z>v?Xitgq0of50#>$dg4TV-Dwv`J2{OX=%jU(GKcQl zRFLdyAc?c`1dSf@d8nwLj}^RxomWH|@(n;8j>R=+-+B&!W3YWuZ09m$e@DzitAUJc zx+}ILp0V>=g40OvWr^PVP*=V+|JpsxxBJl>CYc%w>@%I#%dBnk52Mo+(FX~*i;%&| zg+pt(!!=Ja{_9&4zk)MINo&=ad=6F=pepfyalRdROAVfy4N2tek)-Br{#9+rte$Fz zFSS!kfXeh4LR7yr>ERCKJBZgXR2h?Skxrp@W z@NKM_o{#m@tPg~6(*vo{?CpH&Jqx%0J<+7ILOXNXz<#cu2?DFx3hN<2+Q6|;;^UjX zc+ool8ek(xB4^n%)9S-G({g}72`BVMYo=pS>_ZHZW z?{>T|&X5d{L6ee}_H=jO0`VdvV|IGFIAh$NyYQVmp-{U5an%^qg3RxrAv!TXR*2Ot z#R%#xm}HOrxdnHZR-md`y4fs^YRcj?W8A<2kv-i5kRn<}`pxTp5N?QxYF>O#$hkP; z0_Oq2O0r>XhhMNI-EW2Q_#gGCy16XR+K!HGF6DpX5JZN~FS`(d&kg{1WcB5-d6Z@?3o)XQ< zV>hv#0#J_66w$jG7b+lp0p0i~lQFZBxqq_;Vcep*4EaRheR?Cd4`^z-s-gjV$J{l zozeQgIyO6rB|DvTLd4=O9)nxpLymdLabF6=Z)y7^&QDT4%s(Coaf9v}avWh5=f%K^Dv^jSZG_8)vBMl&t_tMcXam^5B;|jrWL&*>o#%0VnCA-2$XJM?kVR zz=x9byM`8SbUH{X;flv!Rh233y5r)NX^Ku=ZLzLit|YBawd2?C-@hj%>7+gryZlEG z_@tE_h5WIddHF;UL*pG36ha~*YgTM1BKRxy>!edpe)zTT>Y@G(9RNw!GZv-swC_G4 zm)=TtGTZDv>w{loV`C?c*zUuful`N~$x>e(W9 zBcIjR7Y3CREDl%FZzx6?0iFPfHz=SDYOeZ%LqQQO=6eBZrW*_d+CE9BNqPY72;xwH zy6)~j9M9YjH%34`Y-3{+7#Ii~Ww>LKyz6oolr;&Vj#&o+vxDbxSpz84q@<_+)`y02 zl<0!og+K2b#6h(NM7h5NGEaZMu>%xzad81f-#|5>MbNSqk!G4r`}uAs$^X*curIPV zLEPIwl0Y+fB17h`k)ng?+=v|LoK)E?f5NAXEf*X6x%KD%7imIXGUA?zeZ@YVB_GF z#CbZSNMnI=Y{jt}XtYA^{vM#_FtM-*2nfXd@SqM4f$;R=6e0eEOMuunf9+(GsSFv( zoJ_>RnfnC>W89-y*#Pe{2*YlqhX7kz6Hne&?kB4pphw5p#c@q+1Dyp4@1zJLky=S1BTV7r!2~qgS zanroeB14D~3|JjJ3kPO-X=##>8yn|3SOZ!HSh}CSQ$hRGl+dF`c>*ibUl@C>2=MVi zGcsH6XAcsBogGoTX?{97x+r_Wn<8Oa_!AlOvyYLYdV{SYFYM)84ZG5-M@)Gu=}rt( zES0jNF%@uLEG{p%n)*x+eash{I6XP}4Y3z8K7je(zJF)vn)+^&Gu;C*@&GzU&@!ME zU?A)I{Ghd=pM`MQr4B|ua{Ku!GWFY@#A|m@yW^g`r0`J380Dc z@;4#TTwTOO&8n;U$VRV`hsP4div8z2lxlLSDBn4 zYo27scCK1I|Ln0C@2Fx`2pP7vTae=&?C(RN{21igk&&371_cXvDU4>Co^lqq`^L`O z+nc9O8R6VF936rw_|`*3%Jsf@0pUl}zEDzcU%Wd7k{cQ+E>9L?B8XWxX6vsbNx7FC1w`|{d@%>Nd~yxVC9t>l*c_pe z;zlCt?JX>7-TIbDHP0Ecb+imvWf^Jdg`6wcdlcArsEsXw&Prr6pcQol_5BSaYGFYe z#Hje`2lV0yw~q}Ev*`a&PAMo6iJJLzlm0tWqv-4CkVZ*+U0rxMIp6u=dH53a;6+8O zf5uYV7d^bZN(^c$zkHFTI|x;DO;6yzD0{gZo~bJ^;o!fL(?D3m{n*~SDpQ(LDxJ@SrD|H$pK7G|oSM z{v5QbxY1QFOJsmIeAj7yc5TtP6r1EJ32amrrvYEzDCUka$PZrYZNkL9)MaP-6zCif@-_=iKx^6}RP4YL ztLzn?TH<2_dy7)jK=+U%7%~`~zdr&82Pf+HCr~m?lzlyg>`oBsZci17($F3|Eq#v^ zDw{JiK@*CnOl9r7sN2RMHjq&atvlN&0Q?7zC6+Rb(Pe9#laFt7YD(`s!tNhcZAOL( zNOzlp?*au18IITbAOnDH*jBu10p8F=2+`T^bopLTKN!aJ%nYzFqA$7#q0tGJ?r}Rl zQoqTlbfmo?DQmUP=^=TN0ePKU5I>FvOZ z5NvLiw+~}ptqLUq$qmnn{8enremn5unO+l=R{F@6yC*glU}X4IRDb3yd9KPxLAkG| zH#JhA1%PO#wY3$(3Sdrf8scagT3Tr$UX=pUV@T<|Cx6nWuC)g)KP4Ae5^lV}674w+ zAc*PSVRbfq(Xs@btrZfP>@MiTB+<6VOS51Ff%(ekb{WW&>cMLVlyDP=L3acY6d#}K z)no<8hd@pbz(kcX4#;AJHyL(ZCD*&EEzODG*cBF3OyjA5Rw4?ohd+PypK6&g#%yVe zclS3ioB^=ocg?M(G}^7x;R#8Yen27_c3d|(n=^BSc)c^XV4*SNSH|~a*p*=+Do+|-8_s!#0s$2a-eU| z^WR#oN|xySBES;J^cCghZL{OQAd~S2ig};BhNc{F(9k$LNCu6UW78&2T`(3_(r#H_hNGR zJp!!>tXzoECg?2qXU`nYso8%f(rsIG(+Uyyb1YYNcyGy8Y#kNz{w*i-2pqQ@s4CCq z6y59SGc64pP=f@4yf7|4-rUB<3%q7#OIH`Hwia3jKr(L_sN^XmD;vjs_FG^PEUc`r zfFh9e0Hn1?ja2j`3;haU8FWx4J+?Q5{!MlD_>>eqE34d^n)CQaYJlvrdT^0Cv1*|9 z|36v)L~@hKpzltjo@>DctuV3DGYt7sF)y#!in*abc$VW?J|UOKmB0v=IBY*Z+^mB3 zeefbmlVvX=h_xcjqdqr6E8O|+d^6~u0e(VJ1kzFnH;}9pfo?K1G?ect3c~6`0?pzk zd*tYJ!T3!53(Sb@0~m_Y=wFaMz)=2K73~!v!Gi!!H%scF7aMe!pm}zH(iUU|i+`W$ z)Onvm_5w@-C@|yRzlXHUZF@2p7Zl9dL+j9b4{2+{+Zd2h!s7*YK#27;6k9<_=>b)r z4HlV5pqsO^H$ZaeUS4zdl$Gs(!GXG5L`0-7O-$*+`4*x=IZlY=ON4n<*%xqgS7J4Z z-CfR)YTPzQdqzfxXyEY%Gg&e?nV%Ys<$;M5lN%lzgRcL_zU&`cO>e}&(BDoi>WzyL z4BS&a1YptJWbym5^70h0F##VyTwyo($@6NGC+HpU0$@^d&!0p4sk-+xL}ZwDI_b!p z)-mXrg+vtk3}v6ESW#oyL}Mq$w=6qW*-ix5lOp^JlHSi!sq2%NGzPVsc04sd7KoPn zw=Vd8=1o~Nr4Z1(o?c!yegoeuk^7$?x)@K9aAMcnz6f+vMK^crFWmSO7!wu-fdBJG z-zQO@pO7f^5aWYp`GYGr6}c8yOG2|{v%Sx&z%A@#y%`iSkfH&xIg;k^`n6RhNUJ9o zn=G*%=Osn*PXurcIg2$g4&v@jPw(jkY9dR2-uR!k6 zU^J?iCeLUiVs?5f{h-a0l)}g0@~>BCq9U~jAJfUhcQbGJcqhwOKzBp>{Ii%}on;>t z4o(aJ4{->bi5ymIId*M8J<2T?EobPcKIAz4QB!WMWPaCvJDffFry zt9c~@-0sjKCdfc3=)8M;{1-?g6&1W%Wo(4O;E3kzjJ*BzL4HzdWJk2r<4z78=ap>T zLh03VArr`}z}8x?+3~|689x9O3wP4*v%dkzJzoY;X79s@plbnw-wh>|bn6!4ovF3f zVn$8`Xx$1i=kZfRMjn2d;vVI+_AIBo$7x;kmD>zh8(Lc0FtPfx4d^{70bWIwsZmQ) z6Jk4flvqmH@{=$EhiZK)N=nv*=M%O+RPOi}mvUP~{^J;r?|(g}yW9B%qjU7QAnN1v zM6_7t=Pg6(RK?@{eOkk__i1T2U=vt9C#M5QvR9UtaCu=v1q22vfVomoKu7?L8<_au z!Gq(?F<|~7Iktv}RzUDVyXg^yMw1^u_!kzTOku&51TAPxAIjj?fM|lwmKzVAXymIx z*#{8>fGD&MgD~3@bUiDt7^7bP!-TNA2OwXa4G$w2U>*$(O_AjnUxaRgEOpkqEU9O~ z-zi!3?5PF|UwVvuIIbTrrF>A4^z5lZErCIm3CYpf;U=UhLCP;)e66pqhn)ni^$hr( z(C;)2R40TD5)u+9%x8mX1A8LozB>o$5Ae&8xVq&Q3eb>QU+)JX3&099e)tDgy&Dk^ zJj}t%%d6(+&$iZ9EK)8Mqkcg40B4zT(bQRP)2M4}pETo$vB37_;Zc|B0sM(g!T%bb z5+HVUvN%;`539vQ9P!MyEoRUvfSUicG5lhKaB^Y-D*Uxc5|5ae1fikv|5C0&vqcJp z`yE6&UWjMK-^)nfUwXc#xjF^CQe>)Z%u}E021ojx3b%Q-&5xaKxA!ekH@;gDDw`l~yy+?izZ-E~4?=Wk#b9G%I)nCFJPB~w&`%Q`6SI17ik1N>t()61T>Qp1 zA+&&+0a~l*qom2X%)?~q1!0D6+F^?gx>pa_jp`!nw|`Gf)j&1}LI)EQ6FfXTzpK+6 ziH!82b%~5!n11lC8ovmGl;My1`qOibfp`)y*{=#$AP>H28Gyz^vZxT;g@aSr!u?i5 zd|A>27auvzDoER*pB|V;rJNx!9U$nMEXso=Zqh?=#vz!bj%WX@*M8#o6Jy#~?v52~ zIN7&8)fX^tA1q7g3?iQ`x+yFDIFu|iqmlWKG%9rLgq5zXt;LmqPAY6nO!bF^U{Po^ zY>Au8%ZDd>WKGcb5l6gw^(tKA>C>kdmzAs%Sz~&@ zZ6M#eMa-h@j|%`T5t^}}Q~;fLqHR#Ds*nkHo+`0(}RD4=Ez_!U`Manm$6KSq}Y0 zUI34B0ayub#tDm$fd2o$_YxK0Yi{ntaLIk3LT@^pV4IYdmO>R1cn=Wu=)QVYWD&^0 z$0v>U$SW9jN*)!-E52WrJ`b zj)8bBU!AG78*&0z2)DfjDew3DN&mp8p`0L}H2`3yFI7n9U#=4LG0Vvv?CmvPM}~z# zbwxv6oe&;#wBOCXCqX2a_f$$jOspPa3EtuXJjQsX~1VF+&S$fHN;7oik549NMJOC*683o104glXM>L-e*K$S7n#1he<2mP{4 z#Cz7>3qB9WfL-i~H}B*b<7k4wsI+ow|A$s?<$z*I-}pE`lNLZWP%gSjV4jkJM_ zm4j_!V;=&ZdxZ-orwX#|;+;r?YMLAPk-d_WP0 z@EY{GZ@RmW3JEC|Nj5b%V;54)+OK4T!X8;DF?a5i8m6G>L?uhl_d6EGQ{)hHovAOc$nDeoRWv~i6=`i%N`Afk_it=$>;o*O>eag4+n;!dmAfO#V?eUq?guhW`L|Onjg1rkGntXo&`e&D=uJ=l4}5dL ze#@GAfFS#`Swm{kRns!GzIv~GdrzpA+1gOmq2})OFjHy(3nz}EFM|Sld1d9}cJ_gV zQ^Av6jEWD&5Fdog-+u!w0Y0)#PXE8`OdY=!2?1VZ(m$rv)#LW`7@yq9@SKCHBAw;5 ztG?X;?~AmP`_7-So5+t8V?FO$P{FkWfjRsu%wko~-B^hN$^5goNyl+71 z{6Z5?z4t}0@9en-`gsd-C{8Cj<0 zJU$~i%2o=xr5l6nJ%VN0znrVFN#d%XVO&`6s3D~qIT6>AI`MkHyNdhoLXUD%A-xg# z`_H|ZFF(036vL$3<0(Y9#EE~XGsirP+LWT7MTf^+EEP!U=+GX$f(6Gx~8g6STAD%7jSNeR{ zb$;yJtbbMd`N@AKvHe0GtE{JNX~}xz${KkA_xa($^#YuVY7-Rzf;!C+Z7x0PM6cR{k=$V{uWUN$@srTB2z)kwjYFA42fr=A)f2>o- zF>Uy;4MFdh$Fsr2!~`H1zdZuFZ-fin8J20xD&p-KohB#f85lf)cOToJv-h6sTpA`k zjba(M3;cV|ZJ84Ybt1aQtvr{mMwG1?sakbrx1#PtR*r<-^IMqk!GA}*b>!OSD&1PQ zyudkhw|K&XhKjM~s{GHHL<(!3yG@n`He7UEjy}QhPz!1>u*xekJ#iP8d@nZuQaOB900@cW^li4U@L%7lcnLFLt zIxR%($!E>qe42hn80`vuF_EMFzO><;Wkt5_nGdvA=aYsi*dT}577!M;uJ@S47C2C1 zkso-9FCOtqM@`GQgoSl$E1ZrnM1_Wu6&g_zFwtM)o{BuiQk%rvKvqOTRACj#LOKpL!9*axw7f>d>ilETLi zc}-p2r?D|2C+Oz2@aZvYzew4U^MXv#D1nCa&v3%#3^oi14uWW^t@=OD&d#EY4Z;us zcKM%@;Xb_jz=JI2Hp`h5$eLR>cL|N_IpiAQ!5Ok>ZtybuSp29#uwl<5Qsk4+6KtWa zAp5X+`4l#FIHLV~4Hue9@%HZVVgrug(l9ms1mYKf$#FK_pddxfd&|qqczE!M5J|S) zd|JXdB83iW(s%wwI2VFLfRgFJ+tp@^bRx^)A7Jw_114r?8-SUjq;9CI169MH*cBBO zg|3~HAa!XdAt`Akz-s-7A>Mr*dDyf4$1VUc$ap>3(AbCww|l(6U5_$QR!21FeMp`u zXA1nIu!|da8I^^Y&=Z1iA}5Gq@}o(I^lTX`9Y{{FHXyEc5VX@I zj-VC+COT9&2>2BjJ}1I;j1*o3N&yTO8lFvj+??`0V7PwK;8gY0%RB)0XXqI zlu|^KGoYAvoPXBUmOG;bkfyOr;*A64ox zwvSjFXw+#GQc%MX=PBX@;1oy6j)qbrw?^;JkH99)tOF_I+!|-zA9?v*w5{nhO>@a~ z$Xn~yvpNMe%&u3y*2Rc&=HtEA)I4b8rCkxMArBN$5uT)}Y-B3Xz%!4@C9M;N zk{QGJ67WE;&S)Ct2p;$3u`uGMI<}hfAzVhZRg>u-9p8ITp-UR7&Orj7U0;-^I7+Gx zR5a~njq*vE4k{XW;_!NQZVr}e5UwFU=)?W}Ax;^4{dx`&kKpm1QFTUle9h|wjec53 zC-B#J8-NA$vd5sofiMW0a$5HVL58U0VT4oyaSY6gKyA3Wm`Xyx?B1bF)mkA^ObP*s zgrsEPW8wp6GKP&pQBhInOm!@(fguTU)9GCyviEbFeF_<8AJH4Xj_}eZ)0`I>Ra4*p z!1SH^2@@;kRb9lY5u-I1x)%9{mRucIU1!xW(Rv#uQC#G;pDi&*S$-V41rWVNx(dq} z7Kxn%4Blv+d(KQb6#s*tKJh1NNlQyFl=zh(p^=#CXfM8S4%4(44su0M5Zv5Z9YHIY z0O?&tMg6lF>M8$O^D;N1V2NW*E1Ql1jolj&7~z8R=k)LXR3UpDe^R`7-^a2;Bx^1+ z?>sD}hA)eK*7$y@`~LCxHe0~?M4S)1(W6J-fOK#MZ&m;zZw=Za5TvA}fCWGwN)=AL zfz98Yoau`GFp^^tdX%64*r*6^47~-`Em8tP%h1>lLQ97{AV3~vW|c37htpr#2VuU# z(n5?_GZhjR5y338MjLH-(Y(+oXz|ry_zK|CN7IGwVn8^qx2UWv_&9>u6ak%p&e@>+@tN`RQo(MmpAn-#x69bf%!Ew-*&d8a+)27eHdn z{UL8-0b?H@xW-=Dv+m#T)cAeK!2=*Y_S1nNG6Eevy@8cg$yOh5Rt!6B!lNqiD>}@c3-W`h4ZPDkb+4^r`?N&o;kt z+;wNdpm1rqS8S9rwi9o87}TxBTqqrxX5Y8C3CZDIlsk^fzPsamSTHDN(-%p?y27Bv9{0B(Vn;MA$G#zwh}?bb1aYV!=h9hWZA5MCmb zZ_l1x1V^f@Y<_bqD=TB;+!!5yEOx#a?%w;GCX(yom=#16E^*H3O!u3ZRurUvYGnxo zovS~p02T~!w~f`g9|X3R^WiDuFSKGf6dr1ZVLlCy5NTqyB7BT=-m zb{8gHaPU8q=DBa*`j%GLe)>{|Wgm6=E6x``Gd1;han4AfAHAh94FXnhwf^GC(4{3O zf3J8sZ7e4H-DL}8|Kd^zZo;FPI~nZ7=@XcG7k){v{<(Hj_`{b-UNMD&y~?*Z#k+vA^DkdaRJF=k0XruUnl_oyYFkUqe?sH_{&$ z7vER#_o|d@dy}bffI!E}O1TgJy2NvfI-H|y|JSEW;{98!CEiI!!IK8vsf>3H&^WD2 zTTuG>qkr!6B$v%&J|$2UMsf7$QRK?%nV94o2_$MwVpSm_7!+2`h>{NlaPy1!T>e{atH07XSorE^TgpngzR2m*$W%#5O|@#c1^|k-7xI)$I-l9x`v7TksqI|>t?iu6r}!61+6SyUcPL*{;q?DSha2?@n04j+ z!5qmGSgIF%=GvUb;P#%Pf+2b=;#<|I7>+=4NTMFoHryhMU{vxP77U~=Z z$deKh9RKot`RxN{8x005#X#8JnXm)~@Biu_ar$r2kMf~3r-8)}bbaUA$Y_=I1XcHz zA4yR9t!;ISraffi>xn=!v%zYYflS3fa|45Homr5ou2REz6%L{V}UZlPy9GKn%N!XV8hw@8_V&t zXDXLkkd@qqzmK)kOepCck&eU9tlo%iR@0h@$#D>iW;@$HzsGZ@XqzfsAK&+N5A_Gd z3ISzWX&#FxNU)d^(bNjNQ$Rm0XzG#n3$_7Sm4L()|M}_bf586s6PmV8&S1o|6}PmE z4i67^c6Ppd=LWDu#O-ZhBlnC?M^?uj7uS@PpZ{uaa&7I#EK)8htEpK*I5SQ1+IA1+BZ(659`T2uPP=#LwBqXcO|Xa9!VEVq+l@>f zGwvKOmMu7agE&}c4J|E+yBl_?M|pXBIOKhPC%7NK@R4zJ?9Odb*SS2r8cZ0XwoehD zf&@Q^bcliHj*c?Otb5GOXL8_O$^7=wV&mPOM~EY`)PkMuEyfqGiC;mq1(H!oT>M^# z9SNaN=J?l>3%NTS?4>U>cAR&0Z9=jl#7>AoTN`h;Ig!@0c;~TW(epPHd_DzK|J|SW zjfquMb3{cYiU>rE;T6%~{RPWvG#lJvJk4NlSYW$78E&0)jU>m4%IzV)*6OQ9@5;4X z$NpXWK8Q?FAVJg9sOQyN>3GRJwTNhgvfB-=TL7jmetjMZ*8?`K@+VIkpd<_m+Qx$c zfG%C1hyI#Qv2G#uj;Vrg%aB zs=jmVvCa}^`K>>uGc4}h6@a$PH z^kw*~SaLT?X5W+-y!7S{>DT1h|M5GcE5$t-qea7tuQTEi^VjxI|6eV@vZcV!Nm6+J zj){xEz#B&K9;>)s(9qCOq8h@Lah>>Nd`Hgb<?uA#?w)`~q_z_19>lBaD|4wcP3d}0>>+ufX%^#xQ0=x@j`zfVk{-TGIhZ~K48os-B(AqS0EUm@!r!{1O}U;Q!F_rEQ5 z(Iv)1XO6bdMWb8f)Yy66mDDXt)YY>Apjg10X}OjF=W9bln(BN<(sMpIqDAj|^@^MPSx1KhKwp_VwP)l0@9SAM`G|>%q8d}$ z1pR7LSz+;5)IQr{H)YZb>9emR|0<=Y=`9GYhM)ct=-fyi7&|`-)ukg|1ympr4Md0+ z>dLWy_y0GHddX_{zTx3hTKg6cfTYBC_06_96eF94 zjU6TTM$%EJ^YZb*eexqGR*_ZA?j*oH!A!Q0q1_n3K2K(ghQEzvkoETK?va3Stq< zsyTW8$>xEp{s&O$s+9632pAOdFbJsdsk2;5=s1~59onrjsBI8)mz9m!y6N#h$gs)f z5o05q_~Py;#Uycnd*sEv3r8QBr5~*FPGuxlKH5`877R22kC2Ix5#m9!^c>yX5NHUb zh19BZr*cL&mT2UNS74|hex4E7wU4RcNJ8tp`FYobNbWyJ)%H2mT>}On%ogjO)H`~Z z(4_pROHl8-yzwMcL3G!&6ccsw<@r%X22zf$bJ?y^&n{%UGO6Se2=fFD4UJV9*`epp z?a|=?T+*51#v97wO>j2I;jYcJ|gEXwOaml5m$=T`u&)vlA+gj*fs>u+Qwm<^=o> z%mY{{0-?*Ez&AmYPk6{C)!ozN#BnfkUs@My@go&0bMDsk8yO8D#zuzJYZ8K28>-`+ z9dv8ydy2#OYcE|?RLQv4!n=y?WgppHbX|Y~DJKX29f9|$b!%l91TS(H)o-(84U=;h z?0ebWogv|LucYLXxp^A+w9;wK|<7N+k=QL9@tGPh zFJ=~AQ&8A9$TThNr0m-U|AjXEGq$-EH**nTQk>O*bf{0u;;O3c&~L89kcY@JR+!3z zUcP<%HYkYMZ_(eEh3XQ30z9y}B!9qx$5vwOKoD@!*F;V5 z^;?uSOMk!c2+N(C`O%hZyALD`t}m}vVFQBl-5o3#ssl*1{sAdNIdG|usUz-;*tcWN z_i4gI9cNh`1`Ox^ZfWuxf8JI&zD4So^!-wwa9`HUsSt0-q>mkgo^uq3eVpL(*)D-K z4xlsSS=F+XG$FE0*qOD_35-9z0Tb6HtLNV{uy4!CP;F z9K7HDTgg0}AYg2rC4Nx-?%n8tkH-}5rzlviwK21UZ zbO{b#AW=Y6^gY}u9d_8AP@kY_z6L-o7*NQ@=gFQB)g?WXn-i;0iGcU12X2drF(-SU z$&p<2i}r%X;g9N>|LXS#=ORP%`)8hrvM_2v!u5uSMqYn17taZwweG&+Y3o}r>R!ad z>#O{w8K1ADPMb#?ni-|DMH=&^RX)to--q%StUO396kL{=_d3kcL%(<36`v}^^AH4i zOU@I&I*jR)Cd+Y;#+Cebj;5ePt5Qd=k?xc4V+7iabA?QVm{9qT4GfqJd})fVmOdHA zQ(f8XrMj2J{o}1-=kc(=U-rzaN-|Y#o@@S%h6SZDI5QAUSQGRvy2m|gDA2xp_wk#T z`jbrWi{GRwSejZ3Q=9BI)y)rl%I!yl3rCs5&!H;Zf|LMYatmtsn#|dLukS-fClifc z(rV- zWb9+Obd-bi4~4hdGM`0UZajRa?D2JyYm{o=583;B52~G1Q`?5b0Q5{6CL$K`RPDUd z5M@WByoi0h?V6(JWU}-GI2Fz+zA4#QyOmdZcV_1KqQ|+l2E%ThYm6Lyvr9Z}Xn3Li z9iLQ@MiM=O*oFD|W#CIA);7hcUjZ2c%Y@_8AEjf%o~e?(T8Z+9RFe|2{S1s)&jq=@ zj6YIC<D)y0_pv-{&Bb@OU*I`IW&g zCAa>=rPJFnalcy`0~Ovlx~wl=v~-j?{^Ha9Uj2Lqc@cSec_d3?79k)8gKmwvlu>$y z-GRYj`O3NFE7(qYo+qr6c9QIfwWz~s$7yDVjX15t zPkS>4bmp+Wd17@^J^knFdjz3qHzUWFR(r!8r!;>P2v@*GgW{AsetZjL)4IImJ)=U0 z+Me9swG};-x;DXB?Hg`xt37tJ4RK?Kp#hb6*>PKtm=Mgl)%tK1FdjmpsJc2J704E? zXr*uaGCJtCtoAW_YKFCyi&~!)RrxnIvc&4yzmk7I-bZm?$px-)&%y%-U&g-c-=LZ~ z?dMfvK1Ug5ht~w@x((R21!tRVu~q~}=9TJuZIwz0@7Fu>`Mov17?kJwj?6r_4GG?b zQFxfl2oJgicHm}ziyBv8-?vNKeUI@TX-z(|zCq7@cYgrgTXwo7m9_f(#U`t;u^7<< z(ogMQrr$5q*SxJ@Ed4tDSX;Ad_o0Aeh*GdFw(VjvU~T`9 zw67<=_rTkR;6r#Si9h%PfP1)zh+-qKx4`v3exaYODls9q+GN_Nnw!@qKUmOEoM!tt^n`76_S>Buv!&$i({7FN#o?y9lS>p`8bS~W#63g}K0o#N#IXYj#9TXWhwu_;4I6bV*s+SpC(Dh0{WKa}OR_ji@q*^kikw3Im!b8})1*7wqS-$-T?JWr+xz^P zW!p26C1u8RKleVd1~W1S;0+28)RKP}hVyAh%B4?wmrG_UeE9yf_VcY4EL>U_N{fd5 zjkc;z4!C>j`-#2T3Dpf9flEmVzO_`Aa10I(c$k&FFC8L%YnC>{Na2Wh=5OxT?{Wsu zGt_Nf8636i=yljLcgYmT08SrPkfG7C8>(N2DSDNFS6V(CpkL-Lpx6pNE&Yt8~LxfI?-tz!|aSL(5HWi{)a?MzYcIX-hq`cUf82ge`)ByKHh7oh6En&|)UiSEJ;uIJ2U(Yl-MG2~LIN|S5L zZtq?vPyG-X`u<|>cXcn5Y?oun3+BJy3f(Ky&jSB@qo=zTnO zkY$hpZVgH}%w@SQds$Cqr;*Vd@{9|cGh}I=f21QR=wnOP1+#wiNTjd1DOzlI-z5Yj z@(R#9K@TOypCQ%h!pOh?MkgPjCWB;3|m0=D)GF2BJ*C z=hs73dvE%~ye5~EMAr74dtc%e(6PYz$<^yHiEp#wWmT6q`7V2-t{){Ovy@%*wLCcL zl>d3_9WY&3mq4Y1XIPk<^M{L+t<#ge&qCGF2va#)=e0I-a7dzY;@hnTuK~B&uO3#N z{rm5(f58z6{82-nK7pwqArK#syjq-~LC?y%zO8em{xg8))_=ZS(+beVIAZ?;=?V4h zfTxg~R*+JogrDl<`pE3Pr~$UKMf~eOelySgNlN0U96l-~sT<(Ya@i?>RJY0^T~>|m zId&YRU=V%1Y%&kwa$*0_*xM&9wdvd9^PQQ|#aqK|^q^===|N`){3w)4H+0iJMsqZo zmsmIX5YHfkIuzn12>Krb4Z}#y$O@A?J7Bg!jk|}6Y7VFXj+KHKqhRiqd0t^r$##&< z$oBd0c=fch%zs64Kb%zp^As1*UBLK1{J?cv*{FoV3TWmk;&DnhX^K3&)c#J=zvf;~1GaciS z(urAW6jM`^ll=n&;C6Q@LmTk~x(SFKkcaW#y-I=tL?HLl@-ic37;*Edu-h4(`|~fm zW@5wd)v!gzvEGG}lA6F*djckPp6~wJSLUH4Xp&g$J-GLr_>NOU8_{8>POZ?2HQ0m& z#tU7Z%JY1T?H9NK0GZR8n(&yc{%HIOR~1$YX7a>m6f65mt@uBelgHV2Fe{xc89UUN zsO$CApKe`MgudylVVF7LDe%54P(GpGoEGIEcV>j!h-d?fh}fN|)&2G@k%@L$c+i*k zt&sM$;#k33k($kOxfp_PjE^f>%Ns~LhGUaD16&o{N=L*=iyjWP50NC_*_8S`?Nz@% zRV8e~{2KZth>}{o7R(W_fY3jfiTj+Zaf|8_REF(GI8A>JK0KOeC_6P5KK9PBXzm)j zNyH;&iWc-|5T~L8W{pwXh(dHcc04G+twE0tf8v_Xcs02QOK^3=LHG~!khhdz1wM(fNxixHMn@KIb~n|V#mGX0N6 zQZ_N))LXUqMPt|cLp~U=aKI{3{TqX}8gREDT+&+f<=8^iuN zx%=I{x^y2^lX|LNfhC7jOKt5p5C{N{g-D)w+8N=xr7(0nFr~6Sc<1fqg&`R7mm*1i zrMxf$m=O!`TyOq69NZ(TMk9VNVWdR_^~;Itw)3`LB0o)z-XJB&CpmBmkF@73=9|A` z5-%P)_J&Eb{~L2;w#wZLf4NjGZX$(e3le0a9tc$o_RJid89N=)!1stXeylq#-=3et zzBe?lm~f`1mAN^+8jtY7D~+b2=U-4mCk^4agz+P&kAdM1p&3G!_USmpg6P!FIb zOiWF2%-^d_1%KjZcH-WX;lBs|$;ZAg*sQpFe^jwdbHPq$!iKTc;j}oPsSfSzE1hqKH78e>o(cnyd!6f#PG z+Q{V?JN`nkKM# zzsm;e`}cQ7!U8!Vy2j^lzQPniE|)q>LjH;uR~clc6>0<)2n(EFxq=V9+~2RY$o|Qm zHV%0*PajO%Oi7m{^Afm25O_1-DRY!dOxtfcX-5< zCX`kk=XUg4EM?~*gHuBXo$RzmwkPH@73#M90rpuRqwM#5iW_P!o2re%v1c=X=9HJ{ zgp;(&J~P;8*~xrb%-MCUp|;%CDpYdQ__s^V(ihX{BZ1WILx*2}^b|V1Jz@2#p=C46 z%A>A@LYWRCH8`_jYa3PP46Fj+CMdX-rt~}Wms-XA3k4?wO744C)^}c6|NCgzd{&nK z)6Iy7d**=Uz@Gv+7{uV$JUn_lWy*4dg_$3;^0jVV-}lXByML3Zb>j+sY*{0ng>O^s zxtF!2N@DNtq_H2at5nc&qAHd6EM(|8`NfanRQrDyEC)n74Sp?*3|N__Gn|3?H#arm7l#<6Y?_Uy$ioc$7HYn!@N`YEP*XYVUgL4Q zvcYva&Ao8_8bIEA{ckufm3KehbCCc1`olsE>3_i}l@VLAFlfQHc-)KyD9Q zUnf;O7Y|Ouo}$FNEO{?q8Y}u0`z^5umR*n;6#JZ!lBs+9$I3$7{1-X}GEWwyu>h4q zc+)z79U}HTcO@;qu#osc>1d+~7BgGj+g@)G&Do~8d3hoxTJoX}4 z;{-ZFp0E2e*ZqR@C;xpDY^9pC@M!ci$yCX@jUz(gXn+_5XcG)-IAmrRbqMMMH{`v} zO`Gpl$*I^<7~IYz5L8O_E=)bk=jY|lCC66#vA3AkA)^UijGw`VqAaU* zpHSn7&7ZrKc4Hu#^6T6^+V3jdZSQuj!sfbT`$ zoW*NxxPrBLPrYAUj?n0h)AOHkUhq}F^ZLpkTJ}NqtgqH{zC91kyh`rAJJCw@#p2pp z=_XZzmIInLVB<;1{@TC)IPCq%E7L2?@OqzYRG3)5v*><+v2Kfa?ez>Ff7KeL%B zSnBQB2z*PuFTfvEs-Lt+eE^;={pxH}b7@;`5PjE41HYIZp1a zYD(3q$R0Q7o}vB?f{kP^-@)56em1CxB+6$?H`D zex!YS!0QzkJDFsBbkEE9>j7N4%?A4{3I(X7_bYZdOGPhQH^<+(6B07m@|ncz%_K!k zGG)Tpv(nAecoEdBxKO;J9{>my3>1~v)g!T{`^WuOdGd@GOV=*=$&wN@Xi9?&$Yj4S z_!1YO?=a!nBd!NeAF-+?I(%?98j0qcXR=q{80Y23+b(LPm4^w}Md^)R)@ZQwPr4(@ zqaE>=ekq@eeNpal%sAPnc;PKc!gsYJj~-H8Fl(Od z3D!4>@BbjuKd`vS03w458vHQruA5nNx3*QSO!;D34>e|XExGRts!X}yw6Z>Npkn=b z!)uc{VVNfxhb`WEO!?NHxzA3ubLXF}deVjckLgdfD%~rYc6dLmHC9Xio`N+-3W7}i z9JR#cKiv+4DA~}?EbDNaUhkX43G$weER!~Er@_qaI^)U&FKF^c? zR9`YaNyiy!ay~i=`8E$b@^X#-Fr5`+6j+>aw&T2Ic#~RnKxXTcgIiVWag*~yuf+I> zvsr`Q><_=7|DVq~vcu+WAMKo+>Ye+G5Q>8y1*ftWBMlImL0GC_>Mf}DyjXC%kK!o= zIXG*fzAWkE|J4FmSTv#ugrYkL4HZNrd3k>ERGJ2<8%9YfJg0RpE?@Z)8)duUdwoE6 zDcHUi=^t*E`Znln!NX*dG#f3=`U_0IpW5)YwL{x zX|4DlTBV;)q7iZwc|2m%+VZ>@^Omn6ekjGVz^CWt)V~{RJ|d+5bX&8VWAyYz+cFe- zQax9*T$f%AY3%;~^+cxF>7Pt`)3i|e!!?3~tM`)K#R1UF%(aNnLsBsgqza9Qh-DE& ztcuEjnAdSAIINOQg+`&=fG|SsHp|_#H0O&0&sv-pNXwXC{rH?brq!t>cs!8wO;UIE zaO;mW)uO!@HGYg-YDzu)+T(lO?gL>*zXg*t&X#@9XZJ4dtdrDc{FJ%u8DE006O_n3zDy0{B@;95RHo z02~1By)G6Y6U`AaL_CBOR!88&Xo6F;FZlSZLIMs22@SP*DMfGIuXVMxX7#APh@qyp zz$2`r<|KWa&srr8rQ8>2K$Ep3Ieq-|rmFO1T7ez^)GuFM37Gw%98OzQVbhZDcktGivJlMYc>XR6%x<02uqay6B zPI7a&J>w*gcvPVuwDK%dl0x3T0A-GKz-${o!z$}Mj=gv$nJOK?xZx|)}?OZAdg zM1RrJk@+tMoUBfKxR`4j2Fc;Mt; z18eIbG_}aZgpTII#fu2|!s3>X{*gF=s){BT+Q`N@Y(sv2#%ZJwQz0JR{mZkR2vmaf z86J}9SI@1$e+P*eX0GcQT6ZscUfjL*Bw)lQaUhpfGgC;=Bq{ZXu1UN=a8R6*Qh{72 zPk*x6rbREEZYI5>hQBkZ4epS{CF^4t#d+FB}HWr6xcy-JD zeXsg$h~96!@%@K*lmv}$PqF1-j-}HDg|lZ(q$XA3$Pk-y0oCb5Voj0Be|7Ol00*eJ{95UetkkkBSx=qJd41vlt!otR zm2)4llHqu3No#RIn&C#^(>t^JM^{Yl$gf29w1=)_3A*S>^WEGb^1&R6tR$)4!@RuZ zgY%GY14W37qf;>ZzAm0JPJCY2tsp&zgBVi@Yc)TE7Q(imRY$xWfWJLCJnlOL1&l8! z8Bcx_6!*{zUGWlpKcrd+(%srqVsG z-*ygP&YOMQXQo@jdo#o!6nVim}(Voq)PNY`K$X`9CuB_U|a`9|};DOR& zmxKQ$GadK+2R##fdsXG-SD+w8Gk5hW6*cudPLYZEI9kmE`hr%p&6`|2bskt7jjZ(YgoTWm6Sxq|m@e6zF4_Jn^UL>JPt0_7 zpMTV#ZDx?o&u`4c`07tI!1LW*J;&W@hNLy5GI~yR<~TnH(K`T283+21Sd)Q?jxL zNM<&aJ#*%ah>*}V#13pgxoWauQvLjpL2L`b-}SA9wFhlG65fNoqd&y6x@)_2U;RI^S4Q%?ouO8|53H zqb=%J+0*gv{tuByYm_s0cGRV`bOTj^nWgbxQEBPQ-@k5Jkms)8u$%q^VgI|o!#Lx+ zs@^ia4+pOUBgc7&khbFgkiQN4QpXsbpS?#}TxV%zd51CiadelawrXwVqe0X63nkND zXRpZ#hAQudRRKiH8!4o=`fNr9Qb8)dQWXl#u^{yk^GNZ||KW9Vk?F+i_U= zGP_q9{pm7;vByTQMSF0s=XI}2XVtSBhOw<$^nJ&Qf&JviX!B!sB-9Dni?ZN;@hIS0 z`S+x*8!*~`~Q3@V0Nj9?U za7b%VOG`XH^6}n<^P0rFH#dmENs#-6ON>p7i@K_3nhcE3<_btZqzt7NqzbRz*{k)k z{E6Mr?*dt2FDlPH#^RR4CGSf6zkNKAuF(FU!`2WWV`qZ6 zAJ>;wRC7=x)<7laEqA#16s_kjGG&~PJ~=g|v}J;@Vc6`#R6cxPM54xJ=xo~BvPM*R zBxTN8hb5l1>tLMip~SjuXn02QSl+PddsiWuz^x-vs=O}}c4fDmwX!NJE$rkNh;*KH zcA4#yWC*oWk?zgAsubi#6`mM(?v%Qx(h=s_gg3_%xcA`e-R0@NBe(9$3N`A+8Lq6pfQi%Iaec%u zkR+9u=+x_b?pzlB=6^fhO`JA`&ZUYLc_>5Nq6WDy1Y9H%t4)nd@}8&}8b=#{{JP9j zR4+F2BILqRvbIu>EOmApt7zkag2&E%uOw#$^aBst@Q7xovh;S}cFLY2DG;xyUL^9N}G;tlb_^ zxcfAdKQ8Sz>USz~mNfP>HIB)9k`yP%pTwu-QrZ(D=$-w_pS8<3oIbCJ>2aa{#g7GL z*#yaca-Bop^R8tb?98n_7i`$@{?>)t&n&*jjpk%O9lSN`dXjzZ=i3+k9z2aquS?rY znTou|;?HWhtE(18@9qD1-MKsG6RVypbwQqM%AZDwl<_fSk2GBQvg2kO!a3>4$zZ*g z=ZNi`fSD#qsaTpkgbty6^_GQ3K1c0`7M_oQ{8jz`Qh~nIpCO zVzrD)Ufh6@mP?m|r}2{)tdVtRxgRGBK6e&Ab^f{0pBaH;QAG#hM2*Fx479Z-efGva zo6@IQl~5%Wc%VK>RS>?1joC2#eZu9pS=Sx~3z7RN9Fuas@S40L@MA}^%gZJ|9czWN z0x$MO8RydLRIntUdlW;`5w2b#_Hc+*uh^Htg`*?n^o`el8p!e1G|r!&KoN2X32{75 zj*fKE9YdXXFI;p`=W)a$0~aUt@iRoNoWXB$4XT6jJ!Bf#i<=2Cg>Vf~q_XXa(9L&= z{ZNx_B)~|ylW>CPuA>C&JzfyjBn0PbbG~@VojHMj*FIGpI|QvEfq(EcCZHa1sSCZNg3u~>H1->0kY z>5cOWcRI)v>eFjUX7$jegv3qomOh;nh%w+Ri+{z+pjDxL^sJ-3$3wk`0*8!q?8h1C z9pWUy_hwvrV`o?|#24FLW!F=$o#1fdOZgF3rm*&WN*^P|*e(pS?F>tSi=E+K&SPn@ zgTZGXz7%_MG9>wy( z+k#}oO5)iyrvmca@IL-4$0;=S3wMxL8y!sgN?)kP^Wjz%t$m7V(caVKk<`gOBpEyO zq}onUgl1*wiG_xcgwu05-{(H)=n+DZA|yL-t8J=$L5A&o>C@X69p6gUjQ_elo-{?b z^!Ag)^Nw4yc1vIXourpEq%XV*$+dF6j(cdEQxG_6hMTm(iOa)?pGbU4D{Mx&^CJa{P zDPwOg$}o@$<2Ty%1tiJOCLad;aFIG0!Bx=zdz$>+t=Ub3ue%8vefBv~bVnk09pX0F z8zW%wh*u!jN0*(?;9iV?%F?_N{VBqO8;kqjl@eB|6V9lcN`&g1TBSDHxUQp0&B7lY zRqjL{5&m8;ROe>$&INTF`T&FnAQAD7tqWFf~J|Pm8*A`GE6P+St83*d)CM_qsN-s6b#M=CETLNi+D6u zB8$Wlp7P6Bsb-B|&pKJa^2~@^duLbA`xGt8)2Ge}=Gy3QHau_e4#i!tL*zNx1ds@8w@rt%x;|&0YoY4-pMIHdw9_f6k#%Lzg_KoF8r$$&fLm~N2wJym=YzM_c63+7yuAe$J&2Vy< zErdWBa%F~`a9vfkfd5%G&o#=2S>(~-dUQ{7a|i^|^~#u}L5YNLoa(r9C)-e^93>lT z&$X*JRMpe9c472rw#E+ajE{PszL74*uaPfw>>)GJe~rBZ%Bvs4wP)niMtBiSfTKd- zUP(o!TIn-?8kIaQ1}%uC8MIUiyYpEMN_i>n#~sn2(G@U$#ClNdwq60@&OT>q+m!J4 z{F0Q^{kACvn(dMTVNtra67&bf4$<`LY2MZnNDU3wa%MTvp(0^qpmQ*R+EVAR(KUlp z2m7vtWU1|E3A>^1$eNIw{a!3V*I-5_u`sJ=uPjY|3JFujqn^D?ROC(!vKejXdh3js zqPyweo3b&b$398nPme4&f9=gsNxb9UT z%vfDpLlCtfk|uQM1E2>3GHkP4s+H^9FuYYG@cQZdSwO%#t<&8lQ9QFckt_9e?rH{n1wSlsT}nAC78PMxFvRl zy~_LTNFH-ToQy$=ChM3UU;MLd?rVHq_J&x8U!6$RPUy&fYAsHt%+8n|MG)9Q7@xD5 z%63X2Aw1;1zEZ(msj92k7ft47Ym4JgOG-fNinLnT*pw+eJOx)6VgbH99&Nrlb*HxW zZ{w+#%%)`I>*y_1^0Th7KJ3+#)sf@bf+y?KbmfSO6Msf{4+(*s;7Z9%czPn0A#?|` zi!vSA%u&{;U;F(@d-z2L9nk`Vxl8f?{K3qC(0Yv*WHS(Cd#~D}GBz-{S6Jxu zIHGUH`0QD%%wFBiA)^smx%AN;zf69xqp*Zfq0OegHW$aHi>DHSQPLS70YO2f)p1hU zt&X8Qb9BZFY-i$y6UHyTNkJ6!2x7{-S6y*75$d>@7@f!J{WH*wAX`~9RoiNJPn!lW zJ<>>#VKsL`HWPrWxtW8cyWsxn55UfGF43@b_C>mT zycUW@ucKpP5McQa0t8QXjn0XwDdv6qCg$cI`e5*H%y8 zo#m9iZFanty>mz#_XR_?*DT{SIq}o>vf)3k@r67|H_Q=t^D(i%{fhV4UP0NA^y^<~ z3bLzC95J$RdbiQ}N>}!iz&ZZqFB@xf^6#$71TKDKZq3X*O+p~>hhE3|%@65z;2_@X zD&z>4Bv5jX|G(c@<-o94)Nq^-**U9<2i>&6`oybcR;^NRJ&)!K6^A02N0x52*}iv_ zK;pxe!rg&bt=wm?Mf^z)4Y=^vkIvvMkm>0w*RIX~jBE-Ls`*Cu3qOhBnF&rgCNQWx z#R=kim;d;2wS1Av3w@bBNh%;aQNYWf}`eK3<+ zSrHFU8j8HPA&n>M@#DwG7AVNceI{b0>+&2D*+?%y0l#ba?n;-*uU{8YXs!IcEtFwh zhOjx1CdU?@i>G}U98671lXZO0GMmU49Z-3-9QwiWc2v~j(vrl&$ycd&Q&K)1Qbnl9CvGaC<7AsuK%ZfKXoB?` ztSs2v0L6dUy|)yOP~jv7O9KP(i*MOfG?K4(il^Pp$hhR-fR%%!KyuP$nxa)IqV?B>mO_&`Bq!G{WEI{G950fA5Y36^K< zFI=Ek(I(|MbkQ1qRp>Mx>lE}md%fIodJl=)TSO+DOEZT36|FfGn=@l(X2s|b0Uuqw zI3-LH>mcEVY%nm0mVdyuhQ>jbAWD7AZL|r=J6BX;g|(|##njpoJ^lJB?wTWZ03Kf{ zPuYy>YELgOshjuaQsL9Xy|(^&E0;$Sd+*r0-rlQ-)*IP4TKP?Aoae^Q#(*{P*v@pZ z^Sg$tYHMj}XpRaB&JpheOCC}!5bK|FS}Ey66JR#P50$RL$*OY8y6kW$nphln<)JE` zT3lbh2B}3^&^@MUD1nJ#53rlRk&=zi|t^4-Pj8N+}4Vpr*DT_<}kO@Uk5Kg0}W;ZN7v2 z^~_>mn3;q?f`0^01rKt4P{Ms*U``G!eB9j1Ja=LA9f6e;;*S5Xx3dqcIZfmEQLShy zr%X+WO`>hunNSka$u!EuY=i5pHBmVj?`EWk>Zqw0?X}L7^deDhYNqruy(1MG%PAbj z%OQl(CQUDl>cnwsKfm4mZ?E0!n)ze@j;l^R&wby|ec#{DmvPEF3G-7w-99VM{Ts$` z&GJ*&8pGOcXn&b;-euq#zj;ALPx~0WG#I9%{_4ATH=YiQl4OZv^M3j($DpuKuveaJ zj?+c#!N?@cNAi}^-@odtbDaIMGGMDzdJ|>L7o;mX(1;R<;f$3O%Qq<>8@FaM2IaG7 z4A6E;AJSMx=rs>|6T$ub{8;U>mG_xN-bxmqfBMpAQqr>@swyiJ8~h7n8s)!XLk;%% zZIwi8JY~HvXc)G%SRepRYj?b)1Ta0yQ^fnGHZz5{rd;&kBT<)o6m$oseE$&#OOGY?%mIr{f@jfz8SJ##s8bjoX9NEw-85!fMD{R+o z+|8K-pAV=ZDyjq^-{S4-xFosP2RRrE{@IBg55uRR;N3}+Vm)&fC=Z8d2euBZo1@6h zwXc=sOi?#z20xuuybK6KA9I_ED@-8Fyano5Lq+*E^wMp;;n&w#UqKZFYo>>gDG|Ct zot;e*my6Q`U=;e|;O?&X)Icrho(p<8hsg7I%rs@UU3M9F;HU$hL-t7@&GGOs8L1z4 z&~-Ccf?$0=H=Vmk15{wytSOjsam~=_(c+;c?9MSp;!}OU`UQKDUhF$CeAH-;zn1~F zw6AY2I^wXf8R~@3-ner%F_w08+`#ldUxy?K7#Ct7V3;Znlvl8G8qrMfk}0lf?JT_; za7dw0a4VqIfeicY*WqslL*mYD)4kp?P_>$Svk;DObMq5_Pj1YH85!5EE#B*GHeo_{ zd;8ALoA2gccT8)BtFzxHb-dot1tTLP!NlnHZ9IyOWoBNk3o#x_T3P_YPdL(PX~C8imWY3AX%~dS`^S9vja#_OeKH00Mf5DxW7I1U0po`QCL@_-@ z+DJXo^I$}Qp;+m32?j6B9gig?nc3R*qPTuIrk=?YVBO&0hr@duT@j)q^QRZ5r>7Ux zX*j}o{H!>`Y=PKPxp8ckN~Kgjo&%8U$KKwl;!$Wi%+1XMR;*wlbk|(Esqfc(LP!Y< z3)ATHcjgKuK3G;DrR_*h!|`pw^#yye_(VFt%x!MpUd90glss5VN}v9r zLvqU*9JniF3?ysXcOf#W}Y1_%dLV@8joeWc(UB!n^!Lp;rZq!iCw4xP@KT%N*4QHj`{Mf5o6}%ynY?w<>j?=Mcz`XLab;OPCm%mF1V@h zbS{TKo+#!d=Tq}mR?d(}>a`&mM~?VRGE?K{Nih*v7g5EO2I?^$B8}7XweD_i8>?EF zh1U*Ufbk?tPffMlX$ZCIhK@LP@|!1vQT6D67v^>5x{0hhC~qs5oVdk)58-r6C}=L2 zC2*DkimM9?|6H5wKT&)cB>)cvZX;MBC>vdS9Lts$UEgprAHl9l^(Utkv>cF@_;m?t zfoDVfGsf7Rd)|+R=+|XR9CLZlkds61|L)$Lqh!Z~3qMK%M#g+;%BMfV8uPSIHJ(I+OA{;B|l9$$&6Law` z(UHvZwOke!c&f9rV}3$?d35I1ap8$%lTi0tI7k*s3m-jNRjphXoi(?`P-LJwr@#0S z3mvlFiW8-!Q^_k%PEAcstCN4Ydez@41z*5uq6o{t6y8W0%c`nC`+%o&ikum|WQpwc z$43i5-k_iZ4MtVTTl9c$1qXnNg5u&05+|d*lYoba$=5e+jTd%;vYv*cF`Cj0aCaTe7-SUQ=W1841=a+b| Giv0&a0DN??k+((4F)04KIiq- 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 H*-!o_?(9L9 literal 38218 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 HD}DYKpd={3 diff --git a/man/figures/README-seir-conn-figures-3.png b/man/figures/README-seir-conn-figures-3.png index 516d9201f2e96d42aed9fef63005d91c033bb144..8e52506560e2b467e70ffd9cf4f50b5736b4edbe 100644 GIT binary patch literal 41484 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 diff --git a/man/figures/README-sir-figures-1.png b/man/figures/README-sir-figures-1.png index 7203b10eac159d77c7600aafe95a4f3043a672e5..20a8417c5aa1b551693b2ee6d44b7ba9e1af694c 100644 GIT binary patch literal 45470 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퉂!KOE>9}#%Cg;C(-&)~ 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 diff --git a/man/figures/README-sir-figures-2.png b/man/figures/README-sir-figures-2.png index 1963afc53355dc3fd332480b3ec943c62530d353..b6f289d98159e6b2fa11a1ed7c211fab9339eaec 100644 GIT binary patch literal 55060 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 H9Q3~cEqh!@ literal 45528 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 z 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 PLSQz>(lpIv#qR$A{kuzf diff --git a/man/figures/README-transmission-net-1.png b/man/figures/README-transmission-net-1.png index 6277139c12653532af1b1ccbc98b6ad2c63917f4..b3e48c13b8127bcb68fdc1b3a8c490d78bec7792 100644 GIT binary patch literal 81295 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

Vq0LF?*7oj%K@X0J?~#Uz0yYqrnQOYwik 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 diff --git a/paper.bib b/paper.bib index 28310667..413563e2 100644 --- a/paper.bib +++ b/paper.bib @@ -13,7 +13,7 @@ @Manual{abmR note = {R package version 1.0.9}, url = {https://CRAN.R-project.org/package=abmR}, } - + @article{gochanour2021abmr, title={abmR: An R package for agent-based model analysis of large-scale movements across taxa}, author={Gochanour, Benjamin and Fern{\'a}ndez-L{\'o}pez, Javier and Contina, Andrea}, @@ -30,7 +30,7 @@ @Manual{cystiSim note = {R package version 0.1.0}, url = {https://CRAN.R-project.org/package=cystiSim}, } - + @Manual{villager, title = {villager: A Framework for Designing and Running Agent Based Models}, author = {Thomas Thelen and Gerardo Aldana and Marcus Thomson and Toni Gonzalez}, @@ -38,7 +38,7 @@ @Manual{villager note = {R package version 1.1.1}, url = {https://CRAN.R-project.org/package=villager}, } - + @Article{RNetLogo, title = {{RNetLogo}: An {R} Package for Running and Exploring Individual-Based Models Implemented in {NetLogo}}, @@ -50,4 +50,4 @@ @Article{RNetLogo pages = {480--483}, url = {http://onlinelibrary.wiley.com/doi/10.1111/j.2041-210X.2011.00180.x/abstract}, -} \ No newline at end of file +} diff --git a/paper.md b/paper.md index 4ed5fc8e..3726b609 100644 --- a/paper.md +++ b/paper.md @@ -58,4 +58,4 @@ The `epiworldR` package addresses the need for sophisticated epidemiological res The development of the `epiworldR` package has ushered in a new era of agent-based modeling in the field of social science and epidemiology. By harnessing the power of C++ and the flexibility of R, this comprehensive package offers a multitude of features that enhance the modeling and analysis of complex infectious disease dynamics. The package's ability to handle multiple viruses and tools, its diverse set of epidemiological models, its capability to run simulations multiple times, and the inclusion of global actions capability empower researchers to explore a wide range of scenarios and make informed decisions regarding public health interventions. `epiworldR` serves as a valuable resource for the social science and epidemiological communities, enabling the study of real-world phenomena, prediction of outcomes, and policy analysis. As the field of epidemiology continues to evolve, `epiworldR` stands at the forefront, providing researchers and practitioners with a powerful tool to navigate the complexities of infectious diseases and contribute to the improvement of global health outcomes. -# References +# References diff --git a/playground/benchmark-seir.R b/playground/benchmark-seir.R index 0c860d18..78fd8f1b 100644 --- a/playground/benchmark-seir.R +++ b/playground/benchmark-seir.R @@ -10,29 +10,29 @@ for (n in ns) { sir <- epiworldR::ModelSEIR( name = "COVID-19", - prevalence = 0.01, - incubation_days = 7, + prevalence = 0.01, + incubation_days = 7, transmission_rate = 0.6, recovery_rate = 0.5 - ) |> + ) |> epiworldR::agents_smallworld(n = n, k = 20, p = 0.0, d = FALSE) |> epiworldR::add_virus( epiworldR::virus("COVID-19-beta", 0.01, 0.6, 0.5, 7), .2 - ) |> + ) |> epiworldR::verbose_off() sirfast <- epiworldRdev::ModelSEIR( name = "COVID-19", - prevalence = 0.01, - incubation_days = 7, + prevalence = 0.01, + incubation_days = 7, transmission_rate = 0.6, recovery_rate = 0.5 - ) |> + ) |> epiworldRdev::agents_smallworld(n = n, k = 20, p = 0, d = FALSE) |> epiworldRdev::add_virus( epiworldRdev::virus("COVID-19-beta", 0.01, 0.6, 0.5, 7), .2 - ) |> + ) |> epiworldRdev::verbose_off() @@ -47,4 +47,3 @@ for (n in ns) { } saveRDS(ans, "playground/benchmark-seir.rds") - diff --git a/playground/benchmark-seirconn.R b/playground/benchmark-seirconn.R index 6e6a947b..785e8b24 100644 --- a/playground/benchmark-seirconn.R +++ b/playground/benchmark-seirconn.R @@ -10,31 +10,31 @@ for (n in ns) { sir <- epiworldR::ModelSEIRCONN( name = "COVID-19", - prevalence = 0.01, + prevalence = 0.01, n = n, - contact_rate = 4, - incubation_days = 7, + contact_rate = 4, + incubation_days = 7, transmission_rate = 0.6, recovery_rate = 0.5 - ) |> + ) |> epiworldR::add_virus( epiworldR::virus("COVID-19-beta", 0.01, 0.6, 0.5, 7), .2 - ) |> + ) |> epiworldR::verbose_off() sirfast <- epiworldRfaster::ModelSEIRCONN( name = "COVID-19", - prevalence = 0.01, + prevalence = 0.01, n = n, - contact_rate = 4, - incubation_days = 7, + contact_rate = 4, + incubation_days = 7, transmission_rate = 0.6, recovery_rate = 0.5 - ) |> + ) |> epiworldRfaster::add_virus( epiworldRfaster::virus("COVID-19-beta", 0.01, 0.6, 0.5, 7), .2 - ) |> + ) |> epiworldRfaster::verbose_off() @@ -49,4 +49,3 @@ for (n in ns) { } saveRDS(ans, "playground/benchmark-seirconn.rds") - diff --git a/playground/epiworld_presentation.html b/playground/epiworld_presentation.html index 9f816de5..81b26249 100644 --- a/playground/epiworld_presentation.html +++ b/playground/epiworld_presentation.html @@ -33,11 +33,11 @@ .callout { margin-top: 1em; - margin-bottom: 1em; + margin-bottom: 1em; border-radius: .25rem; } - .callout.callout-style-simple { + .callout.callout-style-simple { padding: 0em 0.5em; border-left: solid #acacac .3rem; border-right: solid 1px silver; @@ -88,7 +88,7 @@ margin-top: 0.5em; margin-bottom: 0.5em; } - + .callout.callout-captioned.callout-style-simple .callout-content p { margin-top: 0; } @@ -139,7 +139,7 @@ .callout-caption { display: flex } - + .callout-icon::before { margin-top: 1rem; padding-right: .5rem; @@ -251,12 +251,12 @@ } .reveal .footnotes ol { counter-reset: ol; - list-style-type: none; + list-style-type: none; margin-left: 0; } .reveal .footnotes ol li:before { counter-increment: ol; - content: counter(ol) ". "; + content: counter(ol) ". "; } .reveal .footnotes ol li > p:first-child { display: inline-block; @@ -298,19 +298,19 @@ .reveal .slide > img.r-stretch.quarto-figure-center { display: block; margin-left: auto; - margin-right: auto; + margin-right: auto; } .reveal .slide > img.stretch.quarto-figure-left, .reveal .slide > img.r-stretch.quarto-figure-left { display: block; margin-left: 0; - margin-right: auto; + margin-right: auto; } .reveal .slide > img.stretch.quarto-figure-right, .reveal .slide > img.r-stretch.quarto-figure-right { display: block; margin-left: auto; - margin-right: 0; + margin-right: 0; } @@ -458,7 +458,7 @@

Visualization

- + @@ -480,7 +480,7 @@

Visualization

'autoAnimateUnmatched': true, 'menu': {"side":"left","useTextContentForMissingTitles":true,"markers":false,"loadIcons":false,"custom":[{"title":"Tools","icon":"","content":"
"}],"openButton":true}, 'smaller': false, - + // Display controls in the bottom right corner controls: false, @@ -658,7 +658,7 @@

Visualization

] }); - + - - \ No newline at end of file + + diff --git a/playground/epiworld_presentation.qmd b/playground/epiworld_presentation.qmd index e67c29be..cb3a76ad 100644 --- a/playground/epiworld_presentation.qmd +++ b/playground/epiworld_presentation.qmd @@ -81,49 +81,48 @@ Schools as entities: tbd library(epiworldR) seir <- ModelSEIR(name = "COVID-19", prevalence = 0.01, infectiousness = 0.9, incubation_days = 4, recovery = 0.3) -# Adding a Small world population +# Adding a Small world population agents_smallworld( seir, n = 200000, k = 5, d = FALSE, p = .01 - ) +) # Running and printing run(seir, ndays = 100, seed = 1912) seir - ``` ## Visualization ```{r} x <- get_hist_total(seir) -x$counts <- x$counts/1000 -x <- x[x$date < 50,] +x$counts <- x$counts / 1000 +x <- x[x$date < 50, ] with( - x[x$status == "Susceptible",], + x[x$status == "Susceptible", ], plot( x = date, y = counts, type = "l", col = "blue", ylim = range(x$counts), ylab = "Population (thousands)", xlab = "days", main = "SEIR model") - ) +) with( - x[x$status == "Exposed",], + x[x$status == "Exposed", ], lines(x = date, y = counts, col = "purple") - ) +) with( - x[x$status == "Infected",], + x[x$status == "Infected", ], lines(x = date, y = counts, col = "red") - ) +) with( - x[x$status == "Removed",], + x[x$status == "Removed", ], lines(x = date, y = counts, col = "darkgreen") - ) +) legend( "right", @@ -132,5 +131,5 @@ legend( lty = 1, lwd = 2, bty = "n" - ) +) ``` diff --git a/playground/transition_matrix_checker.Rmd b/playground/transition_matrix_checker.Rmd index 817920e0..d89c6a52 100644 --- a/playground/transition_matrix_checker.Rmd +++ b/playground/transition_matrix_checker.Rmd @@ -9,9 +9,9 @@ output: html_document ```{r eval=FALSE} library(epiworldR) -model_seird <- ModelSEIRD(name = "COVID-19", prevalence = 0.01, -transmission_rate = 0.9, recovery_rate = 0.2, incubation_days = 4, -death_rate = 0.1) +model_seird <- ModelSEIRD(name = "COVID-19", prevalence = 0.01, + transmission_rate = 0.9, recovery_rate = 0.2, incubation_days = 4, + death_rate = 0.1) # Adding a small world population agents_smallworld( @@ -20,8 +20,8 @@ agents_smallworld( k = 5, d = FALSE, p = .01 - ) - +) + # Running and printing run(model_seird, ndays = 100, seed = 1912) model_seird @@ -38,7 +38,7 @@ precovery <- 0.2 pnone <- (1 - pdie) * (1 - precovery) patmost_one <- pdie * (1 - precovery) + precovery * (1 - pdie) -p_die_given_infected <- pdie * (1-precovery) / (pnone + patmost_one) # 0.08163265 +p_die_given_infected <- pdie * (1 - precovery) / (pnone + patmost_one) # 0.08163265 p_recovery_given_infected <- precovery * (1 - pdie) / (pnone + patmost_one) # 0.1836735 p_neither <- (1 - pdie) * (1 - precovery) / (pnone + patmost_one) # 0.7346939 @@ -51,15 +51,15 @@ $P(Dying | Infected) = \frac{p_{die} * (1-p_{recovery})}{(1-p_{die})*(1-p_{recov # An example with COVID-19 model_seirdconn <- ModelSEIRDCONN( name = "COVID-19", - prevalence = 0.01, + prevalence = 0.01, n = 100000, - contact_rate = 2, - incubation_days = 7, + contact_rate = 2, + incubation_days = 7, transmission_rate = 0.5, recovery_rate = 0.3, death_rate = 0.01 ) - + # Running and printing run(model_seirdconn, ndays = 100, seed = 1912) model_seirdconn @@ -76,11 +76,11 @@ get_transition_probability(model_seirdconn) pdie <- 0.01 precovery <- 0.3 -pnone <- (1-pdie)*(1-precovery) -patmost_one <- pdie*(1-precovery) + precovery*(1-pdie) +pnone <- (1 - pdie) * (1 - precovery) +patmost_one <- pdie * (1 - precovery) + precovery * (1 - pdie) -p_die_given_infected <- pdie * (1-precovery) / (pnone + patmost_one) # 0.007021063 -p_recovery_given_infected <- precovery * (1-pdie) / (pnone + patmost_one) # 0.2978937 +p_die_given_infected <- pdie * (1 - precovery) / (pnone + patmost_one) # 0.007021063 +p_recovery_given_infected <- precovery * (1 - pdie) / (pnone + patmost_one) # 0.2978937 ``` # SIRDCONN Example @@ -94,7 +94,7 @@ p_recovery_given_infected <- precovery * (1-pdie) / (pnone + patmost_one) # 0.29 #' recovery_rate = 0.5, #' death_rate = 0.1 #' ) -#' +#' #' # Running and printing #' run(model_sirdconn, ndays = 100, seed = 1912) #' model_sirdconn @@ -107,21 +107,21 @@ p_recovery_given_infected <- precovery * (1-pdie) / (pnone + patmost_one) # 0.29 pdie <- 0.1 precovery <- 0.5 -pnone <- (1-pdie)*(1-precovery) -patmost_one <- pdie*(1-precovery) + precovery*(1-pdie) +pnone <- (1 - pdie) * (1 - precovery) +patmost_one <- pdie * (1 - precovery) + precovery * (1 - pdie) -p_die_given_infected <- pdie * (1-precovery) / (pnone + patmost_one) # 0.05263158 -p_recovery_given_infected <- precovery * (1-pdie) / (pnone + patmost_one) # 0.4736842 +p_die_given_infected <- pdie * (1 - precovery) / (pnone + patmost_one) # 0.05263158 +p_recovery_given_infected <- precovery * (1 - pdie) / (pnone + patmost_one) # 0.4736842 ``` # SIRD Example ```{r eval = FALSE} model_sird <- ModelSIRD( - name = "COVID-19", - prevalence = 0.01, - transmission_rate = 0.9, - recovery_rate = 0.2, - death_rate = 0.01 + name = "COVID-19", + prevalence = 0.01, + transmission_rate = 0.9, + recovery_rate = 0.2, + death_rate = 0.01 ) # Adding a small world population @@ -131,8 +131,8 @@ agents_smallworld( k = 5, d = FALSE, p = .01 - ) - +) + # Running and printing run(model_sird, ndays = 100, seed = 1912) model_sird @@ -145,22 +145,22 @@ get_transition_probability(model_sird) pdie <- 0.01 precovery <- 0.2 -pnone <- (1-pdie)*(1-precovery) -patmost_one <- pdie*(1-precovery) + precovery*(1-pdie) +pnone <- (1 - pdie) * (1 - precovery) +patmost_one <- pdie * (1 - precovery) + precovery * (1 - pdie) -p_die_given_infected <- pdie * (1-precovery) / (pnone + patmost_one) # 0.008016032 -p_recovery_given_infected <- precovery * (1-pdie) / (pnone + patmost_one) # 0.1983968 +p_die_given_infected <- pdie * (1 - precovery) / (pnone + patmost_one) # 0.008016032 +p_recovery_given_infected <- precovery * (1 - pdie) / (pnone + patmost_one) # 0.1983968 ``` # SISD Example ```{r eval = FALSE} model_sisd <- ModelSISD( - name = "COVID-19", - prevalence = 0.01, - transmission_rate = 0.9, - recovery_rate = 0.2, - death_rate = 0.01 - ) + name = "COVID-19", + prevalence = 0.01, + transmission_rate = 0.9, + recovery_rate = 0.2, + death_rate = 0.01 +) # Adding a small world population agents_smallworld( @@ -169,8 +169,8 @@ agents_smallworld( k = 5, d = FALSE, p = .01 - ) - +) + # Running and printing run(model_sisd, ndays = 100, seed = 1912) model_sisd @@ -183,9 +183,8 @@ get_transition_probability(model_sisd) pdie <- 0.01 precovery <- 0.2 -pnone <- (1-pdie)*(1-precovery) -patmost_one <- pdie*(1-precovery) + precovery*(1-pdie) +pnone <- (1 - pdie) * (1 - precovery) +patmost_one <- pdie * (1 - precovery) + precovery * (1 - pdie) -p_die_given_infected <- pdie * (1-precovery) / (pnone + patmost_one) # 0.008016032 +p_die_given_infected <- pdie * (1 - precovery) / (pnone + patmost_one) # 0.008016032 ``` - diff --git a/pre-commit.yaml b/pre-commit.yaml new file mode 100644 index 00000000..2efb1421 --- /dev/null +++ b/pre-commit.yaml @@ -0,0 +1,23 @@ +name: Pre-commit + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + pre-commit: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v3 + + - name: Run pre-commit hooks + uses: pre-commit/action@v3.0.1 diff --git a/src/actions.cpp b/src/actions.cpp index 3868f090..2dbc7cf2 100644 --- a/src/actions.cpp +++ b/src/actions.cpp @@ -28,7 +28,7 @@ SEXP globalevent_tool_logit_cpp( cpp11::external_pointer> ptr( new GlobalEvent(action, name, day) ); - + return ptr; } @@ -45,11 +45,11 @@ SEXP globalevent_tool_cpp( *cpp11::external_pointer>(tool), prob )); - + cpp11::external_pointer> ptr( new GlobalEvent(action, name, day) ); - + return ptr; } @@ -66,11 +66,11 @@ SEXP globalevent_set_param_cpp( param, value )); - + cpp11::external_pointer> ptr( new GlobalEvent(action, name, day) ); - + return ptr; } @@ -79,13 +79,13 @@ SEXP globalevent_set_param_cpp( SEXP print_global_action_cpp( SEXP action ) { - + external_pointer> actionptr(action); - + actionptr->print(); - + return action; - + } @@ -94,14 +94,14 @@ SEXP add_globalevent_cpp( SEXP model, SEXP action ) { - + external_pointer> modelptr(model); external_pointer> actionptr(action); - + modelptr->add_globalevent(*actionptr); - + return model; - + } [[cpp11::register]] @@ -109,13 +109,13 @@ SEXP rm_globalevent_cpp( SEXP model, std::string name ) { - + external_pointer> modelptr(model); - + modelptr->rm_globalevent(name); - + return model; - + } [[cpp11::register]] @@ -124,24 +124,23 @@ SEXP globalevent_fun_cpp( std::string name, int day ) { - + GlobalFun fun_call = [fun](Model * model) -> void { - + cpp11::external_pointer> modelptr(model, false); sexp modelptrs(modelptr); modelptrs.attr("class") = "epiworld_model"; fun(modelptr); - + return; }; - + return external_pointer>( new GlobalEvent(fun_call, name, day) ); - - -} + +} diff --git a/src/agents.cpp b/src/agents.cpp index 04c6b8d1..cc22775a 100644 --- a/src/agents.cpp +++ b/src/agents.cpp @@ -12,17 +12,17 @@ using namespace cpp11; SEXP get_agents_cpp( SEXP model ) { - + // Making some room - + cpp11::external_pointer> ptr(model); cpp11::external_pointer >> agents( &ptr->get_agents(), false ); - + return agents; - + } [[cpp11::register]] @@ -30,12 +30,12 @@ SEXP get_agent_cpp( SEXP agents, size_t i ) { - + cpp11::external_pointer>> ptr(agents); - + if (i >= ptr->size()) stop("The agent index %lu is out of range.\n", i); - + return cpp11::external_pointer< Agent<> >( new Agent<>(ptr->operator[](i)) ); @@ -48,14 +48,14 @@ SEXP print_agent_cpp( SEXP model, bool compressed ) { - + cpp11::external_pointer> ptr(agent); cpp11::external_pointer> ptr_model(model); - + ptr->print(&(*ptr_model), compressed); - + return agent; - + } [[cpp11::register]] @@ -66,82 +66,80 @@ int get_state_agent_cpp(SEXP agent) { // Function to get agent's states using get_agents_states() [[cpp11::register]] std::vector get_agents_states_cpp(SEXP model) { - + cpp11::external_pointer> ptr(model); - + std::vector states; states.reserve(ptr->size()); - + auto states_uint = ptr->get_agents_states(); - + // Getting the model's states auto model_states = ptr->get_states(); // Copying the data to states for (auto i : states_uint) states.push_back(model_states[i]); - + return states; - + } [[cpp11::register]] SEXP add_virus_agent_cpp(SEXP agent, SEXP model, SEXP virus, int state_new, int queue) { - + cpp11::external_pointer> ptr_agent(agent); cpp11::external_pointer> ptr_model(model); cpp11::external_pointer> ptr_virus(virus); - + ptr_agent->set_virus(*ptr_virus, &(*ptr_model)); - + return agent; - + } [[cpp11::register]] SEXP add_tool_agent_cpp(SEXP agent, SEXP model, SEXP tool, int state_new, int queue) { - + cpp11::external_pointer> ptr_agent(agent); cpp11::external_pointer> ptr_model(model); cpp11::external_pointer> ptr_tool(tool); - + ptr_agent->add_tool(*ptr_tool, &(*ptr_model)); - + return agent; - + } [[cpp11::register]] bool has_virus_cpp(SEXP agent, SEXP virus) { - + cpp11::external_pointer> ptr_agent(agent); cpp11::external_pointer> ptr_virus(virus); - + return ptr_agent->has_virus(*ptr_virus); - + } [[cpp11::register]] bool has_tool_cpp(SEXP agent, SEXP tool) { - + cpp11::external_pointer> ptr_agent(agent); cpp11::external_pointer> ptr_tool(tool); - + return ptr_agent->has_tool(*ptr_tool); - + } [[cpp11::register]] SEXP change_state_cpp(SEXP agent, SEXP model, int new_state, int queue) { - + cpp11::external_pointer> ptr_agent(agent); cpp11::external_pointer> ptr_model(model); - + ptr_agent->change_state(&(*ptr_model), new_state, queue); - - return agent; - -} + return agent; +} diff --git a/src/db.cpp b/src/db.cpp index 3731caa7..1f7aa397 100644 --- a/src/db.cpp +++ b/src/db.cpp @@ -13,23 +13,23 @@ using namespace cpp11; cpp11::data_frame get_hist_total_cpp( SEXP model ) { - + // Making some room std::vector< int > date; std::vector< std::string > state; std::vector< int > counts; - + cpp11::external_pointer> ptr(model); ptr->get_db().get_hist_total(&date, &state, &counts); - + // Preparing the output cpp11::writable::data_frame res({ "date"_nm = date, "state"_nm = state, "counts"_nm = counts }); - - + + return res; } @@ -37,23 +37,23 @@ cpp11::data_frame get_hist_total_cpp( cpp11::data_frame get_hist_virus_cpp( SEXP model ) { - + cpp11::external_pointer> ptr(model); - + std::vector date; std::vector id; std::vector state; std::vector counts; - + ptr->get_db().get_hist_virus( date, id, state, counts ); - + // Mapping the id to the name std::vector< std::string > viruses; for (auto i : ptr->get_viruses()) viruses.push_back(i->get_name()); - + // Mapping using std::transform std::vector< std::string > vnames(id.size()); std::transform( @@ -62,27 +62,27 @@ cpp11::data_frame get_hist_virus_cpp( ); return cpp11::writable::data_frame({ - "date"_nm = date, + "date"_nm = date, "virus_id"_nm = id, "virus"_nm = vnames, "state"_nm = state, "counts"_nm = counts, }); - + } [[cpp11::register]] cpp11::data_frame get_hist_tool_cpp( SEXP model ) { - + cpp11::external_pointer> ptr(model); - + std::vector date; std::vector id; std::vector state; std::vector counts; - + ptr->get_db().get_hist_tool( date, id, state, counts ); @@ -97,25 +97,25 @@ cpp11::data_frame get_hist_tool_cpp( id.begin(), id.end(), tnames.begin(), [&tools](int i) { return tools[i]; } ); - + return cpp11::writable::data_frame({ - "date"_nm = date, + "date"_nm = date, "tool_id"_nm = id, "tool"_nm = tnames, "state"_nm = state, "counts"_nm = counts, }); - + } [[cpp11::register]] doubles get_transition_probability_cpp( SEXP model ) { - + cpp11::external_pointer> ptr(model); return cpp11::writable::doubles(ptr->get_db().transition_probability(false)); - + } [[cpp11::register]] @@ -123,45 +123,45 @@ cpp11::data_frame get_hist_transition_matrix_cpp( SEXP model, bool skip_zeros ) { - + cpp11::external_pointer> ptr(model); - + std::vector< std::string > state_from; std::vector< std::string > state_to; std::vector< int > date; std::vector< int > counts; - + ptr->get_db().get_hist_transition_matrix( state_from, state_to, date, counts, skip_zeros ); - + return cpp11::writable::data_frame({ - "state_from"_nm = state_from, + "state_from"_nm = state_from, "state_to"_nm = state_to, "date"_nm = date, "counts"_nm = counts, }); - + } - + [[cpp11::register]] cpp11::data_frame get_reproductive_number_cpp( SEXP model ) { - + // Making some room std::vector< int > virus; std::vector< int > source; std::vector< int > source_exposure_date; std::vector< int > counts; - + // Getting the right class cpp11::external_pointer> ptr(model); std::unordered_map< std::vector< int >, int, epiworld::vecHasher> rn = ptr->get_db().reproductive_number(); - - for (const auto & m : rn) + + for (const auto & m : rn) { virus.push_back(m.first[0u]); source.push_back(m.first[1u]); @@ -179,7 +179,7 @@ cpp11::data_frame get_reproductive_number_cpp( virus.begin(), virus.end(), vnames.begin(), [&viruses](int i) { return viruses[i]; } ); - + return cpp11::writable::data_frame({ "virus_id"_nm = virus, "virus"_nm = vnames, @@ -187,22 +187,22 @@ cpp11::data_frame get_reproductive_number_cpp( "source_exposure_date"_nm = source_exposure_date, "rt"_nm = counts }); - + } [[cpp11::register]] cpp11::data_frame get_transmissions_cpp( SEXP model ) { - + cpp11::external_pointer> ptr(model); - + std::vector date; std::vector source; std::vector target; std::vector virus; std::vector source_exposure_date; - + ptr->get_db().get_transmissions( date, source, @@ -221,7 +221,7 @@ cpp11::data_frame get_transmissions_cpp( virus.begin(), virus.end(), vnames.begin(), [&viruses](int i) { return viruses[i]; } ); - + return cpp11::writable::data_frame({ "date"_nm = date, "source"_nm = source, @@ -230,21 +230,21 @@ cpp11::data_frame get_transmissions_cpp( "virus"_nm = vnames, "source_exposure_date"_nm = source_exposure_date, }); - + } [[cpp11::register]] cpp11::data_frame get_generation_time_cpp( SEXP model ) { - + cpp11::external_pointer> ptr(model); - + std::vector agent_id; std::vector virus_id; std::vector date; std::vector gentime; - + ptr->get_db().generation_time( agent_id, virus_id, @@ -262,7 +262,7 @@ cpp11::data_frame get_generation_time_cpp( virus_id.begin(), virus_id.end(), vnames.begin(), [&viruses](int i) { return viruses[i]; } ); - + return cpp11::writable::data_frame({ "agent"_nm = agent_id, "virus_id"_nm = virus_id, @@ -270,7 +270,7 @@ cpp11::data_frame get_generation_time_cpp( "date"_nm = date, "gentime"_nm = gentime }); - + } [[cpp11::register]] @@ -282,7 +282,7 @@ cpp11::writable::doubles get_today_total_cpp(SEXP model) { std::vector< std::string > names; ptr->get_db().get_today_total(&names, &totals); - cpp11::writable::doubles totals_r(totals.begin(), totals.end()); + cpp11::writable::doubles totals_r(totals.begin(), totals.end()); cpp11::writable::strings names_r(names.begin(), names.end()); totals_r.names() = names_r; diff --git a/src/entities.cpp b/src/entities.cpp index f20534c6..33d1622e 100644 --- a/src/entities.cpp +++ b/src/entities.cpp @@ -12,9 +12,9 @@ using namespace epiworld; SEXP get_entities_cpp( SEXP model ) { - + // Making some room - + cpp11::external_pointer> ptr(model); cpp11::writable::list res; @@ -23,9 +23,9 @@ SEXP get_entities_cpp( cpp11::external_pointer> entity(&i, false); res.push_back(entity); } - + return res; - + } [[cpp11::register]] @@ -33,15 +33,15 @@ SEXP get_entity_cpp( SEXP entities, int idx ) { - + cpp11::external_pointer> > ptr(entities); - + cpp11::external_pointer> entity( &ptr->at(static_cast(idx)), false ); - + return entity; - + } @@ -52,7 +52,7 @@ SEXP entity_cpp( bool as_proportion, bool to_unassigned ) { - + cpp11::external_pointer> ptr( new Entity<>( name, @@ -63,9 +63,9 @@ SEXP entity_cpp( ) ) ); - + return ptr; - + } [[cpp11::register]] @@ -76,13 +76,13 @@ int get_entity_size_cpp(SEXP entity) { [[cpp11::register]] int entity_add_agent_cpp(SEXP entity, SEXP agent, SEXP model) { - + cpp11::external_pointer> ptr(entity); cpp11::external_pointer> ptr_agent(agent); cpp11::external_pointer> ptr_model(model); - + ptr->add_agent(&(*ptr_agent), &(*ptr_model)); - + return 0; } @@ -96,24 +96,24 @@ int add_entity_cpp( SEXP model, SEXP entity ) { - + cpp11::external_pointer> ptr_model(model); cpp11::external_pointer> ptr_entity(entity); - + ptr_model->add_entity(*ptr_entity); - + return 0; } [[cpp11::register]] int rm_entity_cpp(SEXP model, int entity_pos) { - + cpp11::external_pointer> ptr_model(model); - + ptr_model->rm_entity( static_cast(entity_pos) ); - + return 0; } @@ -142,12 +142,12 @@ int load_agents_entities_ties_cpp( [[cpp11::register]] cpp11::data_frame entity_get_agents_cpp(SEXP entity) { - + cpp11::external_pointer> ptr(entity); - + cpp11::writable::integers agent; cpp11::writable::integers entity_id; - + int id = static_cast(ptr->get_id()); auto agents_ids = ptr->get_agents(); size_t nagents = ptr->size(); @@ -160,7 +160,7 @@ cpp11::data_frame entity_get_agents_cpp(SEXP entity) { "agent"_nm = agent, "entity"_nm = entity_id }); - + } [[cpp11::register]] @@ -234,4 +234,3 @@ SEXP distribute_entity_to_set_cpp( // cpp11::external_pointer>(entity)->set_name(name); // return 0; // } - diff --git a/src/epimodels.cpp b/src/epimodels.cpp index bdf41cd8..388acfdd 100644 --- a/src/epimodels.cpp +++ b/src/epimodels.cpp @@ -18,18 +18,18 @@ SEXP ModelSURV_cpp( std::string name, double prevalence, double efficacy_vax, - double latent_period, - double prob_symptoms, - double prop_vaccinated, - double prop_vax_redux_transm, - double infect_period, - double prop_vax_redux_infect, - double surveillance_prob, - double transmission_rate, - double prob_death, - double prob_noreinfect + double latent_period, + double prob_symptoms, + double prop_vaccinated, + double prop_vax_redux_transm, + double infect_period, + double prop_vax_redux_infect, + double surveillance_prob, + double transmission_rate, + double prob_death, + double prob_noreinfect ) { - + // Creating a pointer to a ModelSIR model WrapSURV(ptr)( @@ -37,16 +37,16 @@ SEXP ModelSURV_cpp( name, prevalence, efficacy_vax, - latent_period, - infect_period, - prob_symptoms, - prop_vaccinated, - prop_vax_redux_transm, - prop_vax_redux_infect, - surveillance_prob, - transmission_rate, - prob_death, - prob_noreinfect + latent_period, + infect_period, + prob_symptoms, + prop_vaccinated, + prop_vax_redux_transm, + prop_vax_redux_infect, + surveillance_prob, + transmission_rate, + prob_death, + prob_noreinfect ) ); @@ -65,9 +65,9 @@ SEXP ModelSURV_cpp( double transmission_rate, double incubation_days, double recovery_rate - + ) { - + // Creating a pointer to a ModelSIR model WrapSEIR(ptr)( new epiworld::epimodels::ModelSEIR<>( @@ -78,12 +78,12 @@ SEXP ModelSURV_cpp( recovery_rate ) ); - + return ptr; } - + #undef WrapSEIR - + #define WrapSIS(a) \ cpp11::external_pointer> (a) @@ -94,7 +94,7 @@ SEXP ModelSIS_cpp( double transmission_rate, double recovery_rate ) { - + // Creating a pointer to a ModelSIR model WrapSIS(ptr)( new epiworld::epimodels::ModelSIS<>( @@ -104,15 +104,15 @@ SEXP ModelSIS_cpp( recovery_rate ) ); - - + + return ptr; } - - + + #undef WrapSIS - - + + #define WrapSIRCONN(a) \ cpp11::external_pointer> (a) @@ -122,10 +122,10 @@ SEXP ModelSIRCONN_cpp( unsigned int n, double prevalence, double contact_rate, - double transmission_rate, + double transmission_rate, double recovery_rate ) { - + // Creating a pointer to a ModelSIR model WrapSIRCONN(ptr)( new epiworld::epimodels::ModelSIRCONN<>( @@ -137,13 +137,13 @@ SEXP ModelSIRCONN_cpp( recovery_rate ) ); - + return ptr; } - + #undef WrapSIRCONN - + #define WrapSIR(a) \ cpp11::external_pointer> (a) @@ -154,7 +154,7 @@ SEXP ModelSIR_cpp( double transmission_rate, double recovery_rate ) { - + // Creating a pointer to a ModelSIR model WrapSIR(ptr)( new epiworld::epimodels::ModelSIR<>( @@ -164,10 +164,10 @@ SEXP ModelSIR_cpp( recovery_rate ) ); - + return ptr; } - + #undef WrapSIR #define WrapSIRD(a) \ @@ -181,7 +181,7 @@ SEXP ModelSIRD_cpp( double recovery_rate, double death_rate ) { - + // Creating a pointer to a ModelSIRD model WrapSIRD(ptr)( new epiworld::epimodels::ModelSIRD<>( @@ -192,12 +192,12 @@ SEXP ModelSIRD_cpp( death_rate ) ); - + return ptr; } - + #undef WrapSIRD - + #define WrapSEIRD(a) \ cpp11::external_pointer> (a) @@ -209,9 +209,9 @@ SEXP ModelSIRD_cpp( double incubation_days, double recovery_rate, double death_rate - + ) { - + // Creating a pointer to a ModelSEIRD model WrapSEIRD(ptr)( new epiworld::epimodels::ModelSEIRD<>( @@ -223,12 +223,12 @@ SEXP ModelSIRD_cpp( death_rate ) ); - + return ptr; } - + #undef WrapSEIRD - + #define WrapSISD(a) \ cpp11::external_pointer> (a) @@ -240,7 +240,7 @@ SEXP ModelSISD_cpp( double recovery_rate, double death_rate ) { - + // Creating a pointer to a ModelSISD model WrapSISD(ptr)( new epiworld::epimodels::ModelSISD<>( @@ -251,10 +251,10 @@ SEXP ModelSISD_cpp( death_rate ) ); - + return ptr; } - + #undef WrapSISD #define WrapSIRDCONN(a) \ @@ -266,11 +266,11 @@ SEXP ModelSIRDCONN_cpp( unsigned int n, double prevalence, double contact_rate, - double transmission_rate, - double recovery_rate, + double transmission_rate, + double recovery_rate, double death_rate ) { - + // Creating a pointer to a ModelSIR model WrapSIRDCONN(ptr)( new epiworld::epimodels::ModelSIRDCONN<>( @@ -283,12 +283,12 @@ SEXP ModelSIRDCONN_cpp( death_rate ) ); - + return ptr; } - + #undef WrapSIRDCONN - + #define WrapSEIRDCONN(a) \ cpp11::external_pointer> (a) @@ -303,7 +303,7 @@ SEXP ModelSEIRDCONN_cpp( double recovery_rate, double death_rate ) { - + // Creating a pointer to a ModelSIR model WrapSEIRDCONN(ptr)( new epiworld::epimodels::ModelSEIRDCONN<>( @@ -317,13 +317,13 @@ SEXP ModelSEIRDCONN_cpp( death_rate ) ); - + return ptr; } - - + + #undef WrapSEIRDCONN - + #define WrapSEIRCONN(a) \ cpp11::external_pointer> (a) @@ -337,7 +337,7 @@ SEXP ModelSEIRCONN_cpp( double incubation_days, double recovery_rate ) { - + // Creating a pointer to a ModelSIR model WrapSEIRCONN(ptr)( new epiworld::epimodels::ModelSEIRCONN<>( @@ -350,13 +350,13 @@ SEXP ModelSEIRCONN_cpp( recovery_rate ) ); - + return ptr; } - - + + #undef WrapSEIRCONN - + [[cpp11::register]] SEXP ModelSIRLogit_cpp( std::string vname, @@ -370,16 +370,16 @@ SEXP ModelSIRLogit_cpp( double recovery_rate, double prevalence ) { - + std::vector< size_t > cinfect; std::vector< size_t > crecover; - + for (auto i : coef_infect_cols) cinfect.push_back(static_cast(i)); - + for (auto i : coef_recover_cols) crecover.push_back(static_cast(i)); - + cpp11::external_pointer> ptr( new epiworld::epimodels::ModelSIRLogit<>( vname, @@ -394,9 +394,9 @@ SEXP ModelSIRLogit_cpp( prevalence ) ); - + return ptr; - + } @@ -416,7 +416,7 @@ SEXP ModelDiffNet_cpp( std::vector< size_t > data_cols_s; for (auto i : data_cols) data_cols_s.push_back(static_cast(i)); - + cpp11::external_pointer> ptr( new epiworld::epimodels::ModelDiffNet<>( name, @@ -429,9 +429,9 @@ SEXP ModelDiffNet_cpp( params ) ); - + return ptr; - + } [[cpp11::register]] @@ -444,7 +444,7 @@ SEXP ModelSIRMixing_cpp( double recovery_rate, std::vector< double > contact_matrix ) { - + // Creating a pointer to a ModelSIRMixing model cpp11::external_pointer> ptr( new epiworld::epimodels::ModelSIRMixing<>( @@ -457,7 +457,7 @@ SEXP ModelSIRMixing_cpp( contact_matrix ) ); - + return ptr; } @@ -473,7 +473,7 @@ SEXP ModelSEIRMixing_cpp( double recovery_rate, std::vector< double > contact_matrix ) { - + // Creating a pointer to a ModelSIRMixing model cpp11::external_pointer> ptr( new epiworld::epimodels::ModelSEIRMixing<>( @@ -487,7 +487,7 @@ SEXP ModelSEIRMixing_cpp( contact_matrix ) ); - + return ptr; - -} \ No newline at end of file + +} diff --git a/src/epiworld-common.h b/src/epiworld-common.h index 6c5892ac..bd6317fb 100644 --- a/src/epiworld-common.h +++ b/src/epiworld-common.h @@ -3,4 +3,4 @@ #include "epiworld/epiworld.hpp" -#endif \ No newline at end of file +#endif diff --git a/src/model.cpp b/src/model.cpp index 3a054d04..44d0c8a5 100644 --- a/src/model.cpp +++ b/src/model.cpp @@ -7,12 +7,12 @@ using namespace cpp11; [[cpp11::register]] SEXP print_cpp(SEXP m, bool lite) { - + external_pointer> ptr(m); ptr->print(lite); - + return m; - + } [[cpp11::register]] @@ -24,12 +24,12 @@ SEXP agents_smallworld_cpp( double p = .01 ) { - + external_pointer> ptr(m); ptr->agents_smallworld(n, k, d, p); - + return m; - + } [[cpp11::register]] @@ -40,22 +40,22 @@ SEXP agents_from_edgelist_cpp( int size, bool directed ) { - + external_pointer> ptr(m); - ptr->agents_from_edgelist(source, target, size, directed); - + ptr->agents_from_edgelist(source, target, size, directed); + return m; - + } [[cpp11::register]] SEXP run_cpp(SEXP m, int ndays, int seed) { - + external_pointer> ptr(m); ptr->run(ndays, seed); - + return m; - + } typedef std::function*)> funptr; @@ -73,7 +73,7 @@ SEXP make_saver_cpp( bool reproductive, bool generation ) { - + funptr* saver = new funptr(make_save_run( fn, total_hist, @@ -83,14 +83,14 @@ SEXP make_saver_cpp( tool_hist, transmission, transition, - reproductive, + reproductive, generation )); - + external_pointer sav_ptr(saver); - + return sav_ptr; - + } [[cpp11::register]] @@ -104,10 +104,10 @@ SEXP run_multiple_cpp( bool verbose, int nthreads ) { - + external_pointer> ptr(m); external_pointer sav_ptr(saver); - + ptr->run_multiple( static_cast< epiworld_fast_uint >(ndays), static_cast< epiworld_fast_uint >(nsims), @@ -117,31 +117,31 @@ SEXP run_multiple_cpp( verbose, nthreads ); - + return m; - + } [[cpp11::register]] SEXP queuing_on_cpp( SEXP model ) { - + external_pointer> ptr(model); ptr->queuing_on(); return model; - + } [[cpp11::register]] SEXP queuing_off_cpp( SEXP model ) { - + external_pointer> ptr(model); ptr->queuing_off(); return model; - + } [[cpp11::register]] @@ -152,10 +152,10 @@ double get_param_cpp(SEXP model, std::string pname) { [[cpp11::register]] SEXP set_param_cpp(SEXP model, std::string pname, double val) { - + external_pointer> ptr(model); ptr->operator()(pname) = val; - + return model; } @@ -176,60 +176,60 @@ std::string get_name_cpp(SEXP model) { strings get_states_cpp( SEXP model ) { - + external_pointer> ptr(model); return writable::strings(ptr->get_states()); - + } [[cpp11::register]] SEXP verbose_on_cpp(SEXP model) { - + external_pointer> ptr(model); - ptr->verbose_on(); + ptr->verbose_on(); return model; - + } [[cpp11::register]] SEXP verbose_off_cpp(SEXP model) { - + external_pointer> ptr(model); - ptr->verbose_off(); + ptr->verbose_off(); return model; - + } [[cpp11::register]] int get_n_viruses_cpp(SEXP model) { - + external_pointer> ptr(model); return static_cast(ptr->get_n_viruses()); - + } [[cpp11::register]] int get_n_tools_cpp(SEXP model) { - + external_pointer> ptr(model); return static_cast(ptr->get_n_tools()); - + } [[cpp11::register]] int get_ndays_cpp(SEXP model) { - + external_pointer> ptr(model); return static_cast(ptr->get_ndays()); - + } [[cpp11::register]] int get_n_replicates_cpp(SEXP model) { - + external_pointer> ptr(model); return static_cast(ptr->get_n_replicates()); - + } [[cpp11::register]] @@ -245,52 +245,52 @@ SEXP set_agents_data_cpp(SEXP model, SEXP data, int ncols) { REAL(data), ncols ); - + return model; - + } [[cpp11::register]] int get_agents_data_ncols_cpp(SEXP model) { - + return static_cast( external_pointer>(model)->get_agents_data_ncols() ); - + } [[cpp11::register]] SEXP get_virus_model_cpp(SEXP model, int virus_pos) { external_pointer> modelptr(model); - + external_pointer> res( &modelptr->get_virus(static_cast(virus_pos)), false ); - + return res; - + } [[cpp11::register]] SEXP get_tool_model_cpp(SEXP model, int tool_pos) { external_pointer> modelptr(model); - + external_pointer> res( &modelptr->get_tool(static_cast(tool_pos)), false ); - + return res; - + } [[cpp11::register]] cpp11::data_frame get_network_cpp(SEXP model) { - + external_pointer> modelptr(model); - + std::vector from; std::vector to; @@ -300,7 +300,7 @@ cpp11::data_frame get_network_cpp(SEXP model) { "from"_nm = from, "to"_nm = to }); - + } [[cpp11::register]] @@ -311,20 +311,19 @@ SEXP initial_states_cpp(SEXP model, cpp11::doubles proportions) { std::vector< double > states_vec(proportions.begin(), proportions.end()); modelptr->initial_states(states_vec, std::vector< int >({})); - + return model; - + } // Function for cloning a model [[cpp11::register]] SEXP clone_model_cpp(const SEXP & model) { - + external_pointer> modelptr(model); - + return external_pointer>( new Model<>(*modelptr) ); - -} +} diff --git a/src/tool.cpp b/src/tool.cpp index d39f8ab6..a7dd9efd 100644 --- a/src/tool.cpp +++ b/src/tool.cpp @@ -22,40 +22,40 @@ SEXP tool_cpp( double recovery_enhancer, double death_reduction ) { - + WrapTool(tool)(new epiworld::Tool( name, prevalence, as_proportion )); - + if (susceptibility_reduction > 0) tool->set_susceptibility_reduction(susceptibility_reduction); - + if (transmission_reduction > 0) tool->set_transmission_reduction(transmission_reduction); - + if (recovery_enhancer > 0) tool->set_recovery_enhancer(recovery_enhancer); - + if (death_reduction > 0) tool->set_death_reduction(death_reduction); - + return tool; - + } - + [[cpp11::register]] int add_tool_cpp(SEXP m, SEXP t) { - + cpp11::external_pointer>(m)->add_tool( *cpp11::external_pointer>(t) ); - + return 0; } - + [[cpp11::register]] SEXP rm_tool_cpp(SEXP m, size_t tool_pos) { cpp11::external_pointer>(m)->rm_tool(tool_pos); @@ -69,9 +69,9 @@ SEXP tool_fun_logit_cpp( doubles coefs, SEXP model ) { - - external_pointer> mptr(model); - + + external_pointer> mptr(model); + external_pointer> res( new ToolFun<>( tool_fun_logit( @@ -81,157 +81,157 @@ SEXP tool_fun_logit_cpp( ) ) ); - + return res; - + } // Probability of transmission ------------------------------------------------- [[cpp11::register]] SEXP set_transmission_reduction_cpp(SEXP tool, double prob) { - + WrapTool(toolptr)(tool); toolptr->set_transmission_reduction(prob); return tool; - + } [[cpp11::register]] SEXP set_transmission_reduction_ptr_cpp(SEXP tool, SEXP model, std::string param) { - + WrapTool(toolptr)(tool); external_pointer> mptr(model); - + toolptr->set_transmission_reduction( &(mptr->operator()(param)) ); - + return tool; - + } [[cpp11::register]] SEXP set_transmission_reduction_fun_cpp(SEXP tool, SEXP model, SEXP tfun) { - + WrapTool(toolptr)(tool); external_pointer> mptr(model); external_pointer> tfunptr(tfun); - + toolptr->set_transmission_reduction_fun(*tfunptr); - + return tool; - + } // Probability of recovery ----------------------------------------------------- [[cpp11::register]] SEXP set_susceptibility_reduction_cpp(SEXP tool, double prob) { - + WrapTool(toolptr)(tool); toolptr->set_susceptibility_reduction(prob); return tool; - + } [[cpp11::register]] SEXP set_susceptibility_reduction_ptr_cpp(SEXP tool, SEXP model, std::string param) { - + WrapTool(toolptr)(tool); external_pointer> mptr(model); - + toolptr->set_susceptibility_reduction( &(mptr->operator()(param)) ); - + return tool; - + } [[cpp11::register]] SEXP set_susceptibility_reduction_fun_cpp(SEXP tool, SEXP model, SEXP tfun) { - + WrapTool(toolptr)(tool); external_pointer> mptr(model); external_pointer> tfunptr(tfun); - + toolptr->set_susceptibility_reduction_fun(*tfunptr); - + return tool; - + } // Recovery enhancer ----------------------------------------------------------- [[cpp11::register]] SEXP set_recovery_enhancer_cpp(SEXP tool, double prob) { - + WrapTool(toolptr)(tool); toolptr->set_recovery_enhancer(prob); return tool; - + } [[cpp11::register]] SEXP set_recovery_enhancer_ptr_cpp(SEXP tool, SEXP model, std::string param) { - + WrapTool(toolptr)(tool); external_pointer> mptr(model); - + toolptr->set_recovery_enhancer( &(mptr->operator()(param)) ); - + return tool; - + } [[cpp11::register]] SEXP set_recovery_enhancer_fun_cpp(SEXP tool, SEXP model, SEXP tfun) { - + WrapTool(toolptr)(tool); external_pointer> mptr(model); external_pointer> tfunptr(tfun); - + toolptr->set_recovery_enhancer_fun(*tfunptr); - + return tool; - + } // Death reduction ------------------------------------------------------------- [[cpp11::register]] SEXP set_death_reduction_cpp(SEXP tool, double prob) { - + WrapTool(toolptr)(tool); toolptr->set_death_reduction(prob); return tool; - + } [[cpp11::register]] SEXP set_death_reduction_ptr_cpp(SEXP tool, SEXP model, std::string param) { - + WrapTool(toolptr)(tool); external_pointer> mptr(model); - + toolptr->set_death_reduction( &(mptr->operator()(param)) ); - + return tool; - + } [[cpp11::register]] SEXP set_death_reduction_fun_cpp(SEXP tool, SEXP model, SEXP tfun) { - + WrapTool(toolptr)(tool); external_pointer> mptr(model); external_pointer> tfunptr(tfun); - + toolptr->set_death_reduction_fun(*tfunptr); - + return tool; - + } @@ -248,30 +248,30 @@ SEXP set_name_tool_cpp(SEXP tool, std::string name) { [[cpp11::register]] SEXP print_tool_cpp(SEXP t) { - + WrapTool(tptr)(t); tptr->print(); return t; - + } // Function to get agent's viruses using get_agents_viruses() [[cpp11::register]] cpp11::writable::list get_agents_tools_cpp(SEXP model) { - + cpp11::external_pointer> ptr(model); - + cpp11::writable::list tools; - + for (auto & agent : ptr->get_agents()) tools.push_back( cpp11::external_pointer< Tools<> >( new Tools<>(agent.get_tools()) ) ); - + return tools; - + } [[cpp11::register]] @@ -286,14 +286,14 @@ SEXP set_distribution_tool_cpp( SEXP tool, SEXP distfun ) { - + WrapTool(toolptr)(tool); external_pointer> tfunptr(distfun); - + toolptr->set_distribution(*tfunptr); - + return tool; - + } [[cpp11::register]] @@ -310,9 +310,9 @@ SEXP distribute_tool_randomly_cpp( ) ) ); - + return res; - + } [[cpp11::register]] @@ -335,9 +335,9 @@ SEXP distribute_tool_to_set_cpp( distribute_tool_to_set(ids) ) ); - + return res; - + } diff --git a/src/virus.cpp b/src/virus.cpp index eed27cb1..8dd8950e 100644 --- a/src/virus.cpp +++ b/src/virus.cpp @@ -23,22 +23,22 @@ SEXP virus_cpp( double post_immunity, double incubation ) { - + WrapVirus(virus)(new epiworld::Virus( name, prevalence, as_proportion )); - + virus->set_prob_infecting(prob_infecting); virus->set_prob_recovery(prob_recovery); virus->set_prob_death(prob_death); - + if (post_immunity > 0.0) virus->set_post_immunity(post_immunity); - + virus->set_incubation(incubation); return virus; - + } [[cpp11::register]] @@ -48,41 +48,41 @@ SEXP virus_set_state_cpp( size_t end, size_t removed ) { - + WrapVirus(vptr)(v); vptr->set_state( init, end, removed ); - + return v; - + } [[cpp11::register]] SEXP add_virus_cpp(SEXP m, SEXP v) { - + external_pointer>(m)->add_virus( *external_pointer>(v) ); - + return m; } [[cpp11::register]] SEXP rm_virus_cpp(SEXP m, size_t virus_pos) { - + external_pointer>(m)->rm_virus(virus_pos); return m; - + } [[cpp11::register]] SEXP print_virus_cpp(SEXP v) { - + WrapVirus(vptr)(v); vptr->print(); return v; - + } // Virus function -------------------------------------------------------------- @@ -92,9 +92,9 @@ SEXP virus_fun_logit_cpp( doubles coefs, SEXP model ) { - - external_pointer> mptr(model); - + + external_pointer> mptr(model); + external_pointer> res( new VirusFun<>( virus_fun_logit( @@ -104,157 +104,157 @@ SEXP virus_fun_logit_cpp( ) ) ); - + return res; - + } - + // Probability of infection ---------------------------------------------------- [[cpp11::register]] SEXP set_prob_infecting_cpp(SEXP virus, double prob) { - + WrapVirus(vptr)(virus); vptr->set_prob_infecting(prob); return virus; - + } - + [[cpp11::register]] SEXP set_prob_infecting_ptr_cpp(SEXP virus, SEXP model, std::string param) { - + WrapVirus(vptr)(virus); external_pointer> mptr(model); - + vptr->set_prob_infecting( &(mptr->operator()(param)) ); - + return virus; - + } - + [[cpp11::register]] SEXP set_prob_infecting_fun_cpp(SEXP virus, SEXP model, SEXP vfun) { - + WrapVirus(vptr)(virus); external_pointer> mptr(model); external_pointer> vfunptr(vfun); - + vptr->set_prob_infecting_fun(*vfunptr); - + return virus; - + } - + // Probability of recovery ----------------------------------------------------- [[cpp11::register]] SEXP set_prob_recovery_cpp(SEXP virus, double prob) { - + WrapVirus(vptr)(virus); vptr->set_prob_recovery(prob); return virus; - + } [[cpp11::register]] SEXP set_prob_recovery_ptr_cpp(SEXP virus, SEXP model, std::string param) { - + WrapVirus(vptr)(virus); external_pointer> mptr(model); - + vptr->set_prob_recovery( &(mptr->operator()(param)) ); - + return virus; - + } [[cpp11::register]] SEXP set_prob_recovery_fun_cpp(SEXP virus, SEXP model, SEXP vfun) { - + WrapVirus(vptr)(virus); external_pointer> mptr(model); external_pointer> vfunptr(vfun); - + vptr->set_prob_recovery_fun(*vfunptr); - + return virus; - + } - + // Probability of death -------------------------------------------------------- [[cpp11::register]] SEXP set_prob_death_cpp(SEXP virus, double prob) { - + WrapVirus(vptr)(virus); vptr->set_prob_death(prob); return virus; - + } [[cpp11::register]] SEXP set_prob_death_ptr_cpp(SEXP virus, SEXP model, std::string param) { - + WrapVirus(vptr)(virus); external_pointer> mptr(model); - + vptr->set_prob_death( &(mptr->operator()(param)) ); - + return virus; - + } [[cpp11::register]] SEXP set_prob_death_fun_cpp(SEXP virus, SEXP model, SEXP vfun) { - + WrapVirus(vptr)(virus); external_pointer> mptr(model); external_pointer> vfunptr(vfun); - + vptr->set_prob_death_fun(*vfunptr); return virus; - + } // Incubation period ---------------------------------------------------------- [[cpp11::register]] SEXP set_incubation_cpp(SEXP virus, double prob) { - + WrapVirus(vptr)(virus); vptr->set_incubation(prob); return virus; - + } [[cpp11::register]] SEXP set_incubation_ptr_cpp(SEXP virus, SEXP model, std::string param) { - + WrapVirus(vptr)(virus); external_pointer> mptr(model); - + vptr->set_incubation( &(mptr->operator()(param)) ); - + return virus; - + } [[cpp11::register]] SEXP set_incubation_fun_cpp(SEXP virus, SEXP model, SEXP vfun) { - + WrapVirus(vptr)(virus); external_pointer> mptr(model); external_pointer> vfunptr(vfun); - + vptr->set_incubation_fun(*vfunptr); - + return virus; - + } [[cpp11::register]] @@ -324,4 +324,4 @@ SEXP distribute_virus_to_set_cpp( } -#undef WrapVirus \ No newline at end of file +#undef WrapVirus diff --git a/tests/tinytest.R b/tests/tinytest.R index 3d8963c3..0e78dc56 100644 --- a/tests/tinytest.R +++ b/tests/tinytest.R @@ -1,5 +1,4 @@ -if ( requireNamespace("tinytest", quietly=TRUE) ){ +if (requireNamespace("tinytest", quietly = TRUE)) { tinytest::test_package("epiworldR") } - diff --git a/vignettes/getting-started.Rmd b/vignettes/getting-started.Rmd index 90d39fb2..2ae8b68e 100644 --- a/vignettes/getting-started.Rmd +++ b/vignettes/getting-started.Rmd @@ -14,7 +14,7 @@ vignette: > ```{r setup, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, - comment = "#>", out.width = "80%", fig.width = 7, fig.height = 5, + comment = "#>", out.width = "80%", fig.width = 7, fig.height = 5, fig.align = "center" ) ``` @@ -23,33 +23,33 @@ knitr::opts_chunk$set( epiworldR is an R package that provides a fast (C++ backend) and highly- customizable framework for building network-based transmission/diffusion agent- -based models [ABM]. Some key features of epiworldR are the ability to construct -multi-virus models (e.g., models of competing multi-pathogens/multi-rumor,) -design mutating pathogens, architect population-level interventions, and build -models with an arbitrary number of compartments/states (beyond SIR/SEIR.) +based models [ABM]. Some key features of epiworldR are the ability to construct +multi-virus models (e.g., models of competing multi-pathogens/multi-rumor,) +design mutating pathogens, architect population-level interventions, and build +models with an arbitrary number of compartments/states (beyond SIR/SEIR.) # Example 1: Simulating an SIR model ## Setup and running the model -This example implements a social network with parameters listed within the -`ModelSIRCONN` function. The virus name is specified (COVID-19), 50000 agents -are initialized, the virus prevalence of 0.001 is declared, each agent will -contact two others (contact_rate), the transmission rate for +This example implements a social network with parameters listed within the +`ModelSIRCONN` function. The virus name is specified (COVID-19), 50000 agents +are initialized, the virus prevalence of 0.001 is declared, each agent will +contact two others (contact_rate), the transmission rate for any given agent is 0.3, and the recovery rate is set to $\frac{1}{3}$. -To create this model on epiworldR, simply use the `ModelSIRCONN` function. +To create this model on epiworldR, simply use the `ModelSIRCONN` function. From here, the example will take you through the basic features of epiworldR. ```{r sirconn-setup} library(epiworldR) model_sir <- ModelSIRCONN( name = "COVID-19", - n = 50000, - prevalence = 0.0001, + n = 50000, + prevalence = 0.0001, contact_rate = 2, transmission_rate = 0.5, - recovery_rate = 1/3 - ) + recovery_rate = 1 / 3 +) # Printing the model model_sir @@ -61,65 +61,65 @@ Printing the model shows us some information. Nevertheless, we can extract detai summary(model_sir) ``` -First, the name of the model, population size, number of entities (think of these as public spaces in which agents can make social contact with one another), the duration in days, number of viruses, amount of time the last replicate took to run (last run elapsed t), and rewiring -status (on or off). The model also includes a list of global actions (interventions) that are called during the model run. Next, you will see a list of the -viruses used in the model. In this case, COVID-19 was the only virus used. -Note that epiworldR can include more than one virus in a +First, the name of the model, population size, number of entities (think of these as public spaces in which agents can make social contact with one another), the duration in days, number of viruses, amount of time the last replicate took to run (last run elapsed t), and rewiring +status (on or off). The model also includes a list of global actions (interventions) that are called during the model run. Next, you will see a list of the +viruses used in the model. In this case, COVID-19 was the only virus used. +Note that epiworldR can include more than one virus in a model. Tool(s) lists agents' tools to fight the virus. Examples of -this may include masking, vaccines, social distancing, etc. In this model, no -tools are specified. Lastly, model parameters are listed. +this may include masking, vaccines, social distancing, etc. In this model, no +tools are specified. Lastly, model parameters are listed. + +To execute the model, use the run function with the SIR model object, the number of +simulation days, and an optional seed for reproducibility. Next, print out the +results from the simulated model using model_sir. -To execute the model, use the run function with the SIR model object, the number of -simulation days, and an optional seed for reproducibility. Next, print out the -results from the simulated model using model_sir. - -```{r} +```{r} run(model_sir, ndays = 50, seed = 1912) summary(model_sir) ``` ```{r getting-totals, echo=FALSE} -initials <- get_hist_total(model_sir)[1:3,]$counts |> prettyNum(big.mark = ",") +initials <- get_hist_total(model_sir)[1:3, ]$counts |> prettyNum(big.mark = ",") finals <- get_today_total(model_sir) |> prettyNum(big.mark = ",") tmat <- get_transition_probability(model_sir) tmat <- round(tmat, digits = 2) ``` -There are two additional sections included in the summary after running the model. First, we see the distribution of the population at time 50. This section describes the flow of agents from each state (SIR) after 50 days. In the +There are two additional sections included in the summary after running the model. First, we see the distribution of the population at time 50. This section describes the flow of agents from each state (SIR) after 50 days. In the example, you'll see the number of agents in the susceptible state decreased -from `r initials[1]` to `r finals[1]`, the number of agents in the infected state increased from `r initials[2]` to `r finals[2]`, and recovered agents increased to `r finals[3]` after 50 days. -The counts for these states will change based on model parameters or +from `r initials[1]` to `r finals[1]`, the number of agents in the infected state increased from `r initials[2]` to `r finals[2]`, and recovered agents increased to `r finals[3]` after 50 days. +The counts for these states will change based on model parameters or simulation run-time. The transmission probabilities section outputs a 3x3 matrix -that describes the probability of moving from one state to another. For example, -in the susceptible row, each agent has a `r tmat[1]` probability of remaining in the susceptible state with a `r tmat[1,2]` probability of moving from the susceptible state to the infected state. Notice there is no chance of skipping states. In other words, an agent can't jump from the -susceptible state to the recovered state; that agent must pass through the +that describes the probability of moving from one state to another. For example, +in the susceptible row, each agent has a `r tmat[1]` probability of remaining in the susceptible state with a `r tmat[1,2]` probability of moving from the susceptible state to the infected state. Notice there is no chance of skipping states. In other words, an agent can't jump from the +susceptible state to the recovered state; that agent must pass through the infected state to progress to the recovered state. The same logic -applies to moving backward; an agent cannot become susceptible again after -infection. - +applies to moving backward; an agent cannot become susceptible again after +infection. + ## Plot ## Extracting information -After running the epiworldR model, below is a list of all the functions that can -be called using the epiworld model object. +After running the epiworldR model, below is a list of all the functions that can +be called using the epiworld model object. ```{r showing-methods} methods(class = "epiworld_model") ``` -To demonstrate, start with the basic plot and get_hist_total functions. +To demonstrate, start with the basic plot and get_hist_total functions. ```{r} plot(model_sir) ``` -As evident from the above plot, the SIR model constructed from epiworldR -displays the changes in susceptible, infected, and recovered case counts over -time (days). Notice after a certain amount of time, the curves flatten. Below, -a table representation of the above plot is printed, complete with each state -within the SIR model, date, and agent counts. +As evident from the above plot, the SIR model constructed from epiworldR +displays the changes in susceptible, infected, and recovered case counts over +time (days). Notice after a certain amount of time, the curves flatten. Below, +a table representation of the above plot is printed, complete with each state +within the SIR model, date, and agent counts. ```{r get-hist-total} head(get_hist_total(model_sir)) @@ -132,8 +132,8 @@ repnum <- get_reproductive_number(model_sir) head(repnum) ``` -epiworldR has a method to plot the reproductive number automatically. -The function takes the average of values in the above table for each date and +epiworldR has a method to plot the reproductive number automatically. +The function takes the average of values in the above table for each date and repeats until all data have been accounted for. ```{r} @@ -151,12 +151,12 @@ plot_incidence(model_sir) ## Adding more viruses/viruses -epiworldR supports multi-virus models. The below code gives instructions on -how to implement this. Using the `virus` function, give a name to the new -virus/virus with its corresponding probability of infecting any given agent. -In this example, `prob_infecting` is set to 1.0, making it highly contagious. -To officially add this new virus to the model, use the `add_virus` -function by calling the original epiworldR model object, the new virus, and +epiworldR supports multi-virus models. The below code gives instructions on +how to implement this. Using the `virus` function, give a name to the new +virus/virus with its corresponding probability of infecting any given agent. +In this example, `prob_infecting` is set to 1.0, making it highly contagious. +To officially add this new virus to the model, use the `add_virus` +function by calling the original epiworldR model object, the new virus, and the new virus' prevalence (which is set to 0.01 in this example). ```{r design-and-add} @@ -164,47 +164,47 @@ the new virus' prevalence (which is set to 0.01 in this example). flu <- virus( name = "Flu", prob_infecting = .3, prevalence = .0001, as_proportion = TRUE - ) +) # Adding the virus to the model add_virus(model_sir, flu) ``` After running the updated model with the new virus included for 50 days, the -output below describes the simulation. To confirm that the flu is included, +output below describes the simulation. To confirm that the flu is included, notice the presence of "Flu" in the Virus(es) section of the output. All other -output is interpretable as specified in previous sections. +output is interpretable as specified in previous sections. ```{r} run(model_sir, ndays = 50, seed = 1912) model_sir ``` -Plotting the previous model (including the flu) yields the following. Notice -the presence of two reproductive numbers plotted over time. Variant 0 refers -to COVID-19, and virus 1 refers to the flu. +Plotting the previous model (including the flu) yields the following. Notice +the presence of two reproductive numbers plotted over time. Variant 0 refers +to COVID-19, and virus 1 refers to the flu. ```{r, fig.height=10} repnum2 <- get_reproductive_number(model_sir) -op <- par(mfrow = c(2,1)) +op <- par(mfrow = c(2, 1)) plot(model_sir) -plot(repnum2, type="b") +plot(repnum2, type = "b") par(op) ``` ## Tools -Now, the implementation of tools to combat any viruses and viruses in the model -will be demonstrated. First, for the sake of simplicity, remove the flu virus -from the SIR model object (keep in mind the index for the flu virus in the +Now, the implementation of tools to combat any viruses and viruses in the model +will be demonstrated. First, for the sake of simplicity, remove the flu virus +from the SIR model object (keep in mind the index for the flu virus in the model object is 1). Next, provide parameters for the new tool using the `tool` -function. These parameters include the name of the tool, any reduction in -probabilities for the SIR model parameters, and increased probability of +function. These parameters include the name of the tool, any reduction in +probabilities for the SIR model parameters, and increased probability of recovery option. In order to add the tool to the SIR model, use the `add_tool` -function with the SIR model object, new tool, and prevalence of the tool. -In this example, assume that 85% of the population will have received the -vaccination. +function with the SIR model object, new tool, and prevalence of the tool. +In this example, assume that 85% of the population will have received the +vaccination. ```{r} # Removing the flu virus from the model @@ -216,7 +216,7 @@ vaccine <- tool( as_proportion = TRUE, susceptibility_reduction = .9, transmission_reduction = .5, - recovery_enhancer = .5, + recovery_enhancer = .5, death_reduction = .9 ) @@ -227,9 +227,8 @@ run(model_sir, ndays = 50, seed = 1231) ```{r curves-including-vaccine, fig.height=10} repnum3 <- get_reproductive_number(model_sir) -op <- par(mfrow = c(2,1)) +op <- par(mfrow = c(2, 1)) plot_incidence(model_sir) -plot(repnum3, type="b") +plot(repnum3, type = "b") par(op) ``` - diff --git a/vignettes/implementation.Rmd b/vignettes/implementation.Rmd index a72a83ca..dae17362 100644 --- a/vignettes/implementation.Rmd +++ b/vignettes/implementation.Rmd @@ -13,9 +13,9 @@ vignette: > # Introduction -The following vignette provides detailed information about the implementation of `epiworldR`. The package is a wrapper of the C++ package `epiworld`, a framework for building agent-based models.[^where-cpp] +The following vignette provides detailed information about the implementation of `epiworldR`. The package is a wrapper of the C++ package `epiworld`, a framework for building agent-based models.[^where-cpp] -[^where-cpp]: The C++ package is available at [https://github.com/UofUEpiBio/epiworld](https://github.com/UofUEpiBio/epiworld). +[^where-cpp]: The C++ package is available at [https://github.com/UofUEpiBio/epiworld](https://github.com/UofUEpiBio/epiworld). # General flow of the models @@ -31,12 +31,12 @@ The core function of `epiworldR` is the `run()` function. This function executes a. The state of each agent is updated. States are updated according to their corresponding `update_state` function. - + Since the model is discrete-time, **state changes are stored as promises**, meaning that agents' states are not updated immediately. Instead, the state is updated at the end of the updates. This is done to avoid updating the state of an agent and then using the updated state to update the state of another agent. For example, if agent $i$ infects agent $j$, then agent $j$ should not be able to infect agent $i$ in the same step. - + b. Once the update schedule is laid out, the changes are made effective, so, for instance, individuals who became infected during the update will start the next step in the infected state. - + c. Global actions are executed. These could also change agents' states, so just like in the previous step, these changes are stored as promises and made effective once all actions have been evaluated. d. The model's state is recorded in the database, and the `current_date` is incremented by 1. @@ -69,9 +69,9 @@ Viruses and tools provide a way to adjust how agents move between states. Viruses in `epiworldR` contain various baseline probabilities used across models, including transmission, recovery, and death. On the other hand, tools alter these probabilities by reducing/increasing -them. Furthermore, tools alter agents' susceptibility, infectiousness, +them. Furthermore, tools alter agents' susceptibility, infectiousness, recovery, and death probabilities. Currently, tools alter these probabilities -by a constant factor, +by a constant factor, $$ p_{ij} = p_{v} \times \left(1 - factor_{host}\right) \times \left(1 - factor_{target}\right) @@ -85,8 +85,8 @@ $$ factor_{agent} = 1 - \prod_{t\in tools_{agent}}\left(1 - factor_{t}\right) $$ -Therefore, for example, a vaccinated agent wearing a mask would have a factor of $1 - (1 - 0.30) \times (1 - 0.5) = 0.65$. -The adjusted probabilities principle also applies to recovery rates in the SIR and SEIR models. +Therefore, for example, a vaccinated agent wearing a mask would have a factor of $1 - (1 - 0.30) \times (1 - 0.5) = 0.65$. +The adjusted probabilities principle also applies to recovery rates in the SIR and SEIR models. ## Transmission in connected models[^models] @@ -98,4 +98,4 @@ The "connected" models provide a version where agents live in a fully connected 2. Then, $c$ agents are randomly selected from the population. Transmission can then occur from any of these agents to the susceptible agent. -3. The probability of transmission from each of the $c$ agents is calculated as described in the previous section. \ No newline at end of file +3. The probability of transmission from each of the $c$ agents is calculated as described in the previous section. diff --git a/vignettes/mixing.Rmd b/vignettes/mixing.Rmd index 7fb29c8f..ccdb36b8 100644 --- a/vignettes/mixing.Rmd +++ b/vignettes/mixing.Rmd @@ -40,7 +40,7 @@ This matrix represents the probability of an agent from population $i$ interacti We will build this model using the `entity` class in epiworld. The following code chunk instantiates three entities and the contact matrix. -```{r entity-matrix-setup} +```{r entity-matrix-setup} library(epiworldR) e1 <- entity("Population 1", 3e3, as_proportion = FALSE) @@ -71,7 +71,7 @@ flu_model <- ModelSEIRMixing( contact_matrix = cmatrix ) -# Adding the entities +# Adding the entities flu_model |> add_entity(e1) |> add_entity(e2) |> @@ -145,4 +145,4 @@ legend( col = c("black", "red", "blue"), lty = 1 ) -``` \ No newline at end of file +``` diff --git a/vignettes/run-multiple.Rmd b/vignettes/run-multiple.Rmd index a080d22b..34efebee 100644 --- a/vignettes/run-multiple.Rmd +++ b/vignettes/run-multiple.Rmd @@ -13,88 +13,85 @@ vignette: > ```{r setup, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, - comment = "#>", out.width = "80%", fig.width = 7, fig.height = 5, + comment = "#>", out.width = "80%", fig.width = 7, fig.height = 5, fig.align = "center" ) ``` # Introduction -The purpose of the "run_multiple" function is to run a specified number of +The purpose of the "run_multiple" function is to run a specified number of simulations using the same model object. That is, this function makes it possible to compare model results across several separate and repeated -simulations. +simulations. -# Example: Simulating a SEIRCONN Model 50 Times +# Example: Simulating a SEIRCONN Model 50 Times ## Setup and Running Model To use the "run_multiple" function in epiworld, create your epimodel of choice; -in this case, the example uses a SEIRCONN model for COVID-19, 100000 people, -an initial prevalence of 0.0001 (0.01%), a contact rate of 2, probability of -transmission 0.5, a total of 7 incubation days, and probability of recovery -$\frac{1}{3}$. +in this case, the example uses a SEIRCONN model for COVID-19, 100000 people, +an initial prevalence of 0.0001 (0.01%), a contact rate of 2, probability of +transmission 0.5, a total of 7 incubation days, and probability of recovery +$\frac{1}{3}$. ```{r sirconn-setup} library(epiworldR) model_seirconn <- ModelSEIRCONN( name = "COVID-19", - n = 10000, - prevalence = 0.0001, + n = 10000, + prevalence = 0.0001, contact_rate = 2, transmission_rate = 0.5, incubation_days = 7, - recovery_rate = 1/3 - ) - + recovery_rate = 1 / 3 +) ``` ## Generating a Saver -Next, generate a saver for the purpose of extracting the "total_hist" and -"reproductive" information from the model object. Now, use the -"run_multiple" function with the model object, number of desired days to run -the simulation, number of simulations to run, and number of threads for -parallel computing. +Next, generate a saver for the purpose of extracting the "total_hist" and +"reproductive" information from the model object. Now, use the +"run_multiple" function with the model object, number of desired days to run +the simulation, number of simulations to run, and number of threads for +parallel computing. ```{r saver-generation} # Generating a saver saver <- make_saver("total_hist", "reproductive") # Running and printing run_multiple(model_seirconn, ndays = 50, nsims = 50, saver = saver, nthreads = 2) - ``` -Using the "run_multiple_get_results" function, extract the results from the -model object that was simulated 50 times for comparison across simulations. +Using the "run_multiple_get_results" function, extract the results from the +model object that was simulated 50 times for comparison across simulations. ```{r retrieving results} # Retrieving the results ans <- run_multiple_get_results(model_seirconn) head(ans$total_hist) head(ans$reproductive) - ``` ## Plotting -To plot the epicurves and reproductive numbers over time using boxplots, extract -the results from the model object using "run_multiple_get_results". For this -example, the dates are filtered to be less than or equal to 20 to observe the -epicurves in the first 20 days. Notice each boxplot in the below table -represents the observed values from each of the 50 simulations for each date. +To plot the epicurves and reproductive numbers over time using boxplots, extract +the results from the model object using "run_multiple_get_results". For this +example, the dates are filtered to be less than or equal to 20 to observe the +epicurves in the first 20 days. Notice each boxplot in the below table +represents the observed values from each of the 50 simulations for each date. ```{r plotting seirconn epicurves} seirconn_50 <- run_multiple_get_results(model_seirconn)$total_hist -seirconn_50 <- seirconn_50[seirconn_50$date <= 20,] +seirconn_50 <- seirconn_50[seirconn_50$date <= 20, ] plot(seirconn_50) ``` - -To view the a plot of the reproductive number over all 50 days for each of the -50 simulations, store the reproductive results to a new object using -"run_multiple_get_results", then plot using the "boxplot" function. Notice + +To view the a plot of the reproductive number over all 50 days for each of the +50 simulations, store the reproductive results to a new object using +"run_multiple_get_results", then plot using the "boxplot" function. Notice each source exposure date displays a boxplot representing the distribution of reproductive numbers across all 50 simulations. As expected, the reproductive -number on average, decreases over time. +number on average, decreases over time. ```{r reproductive number plot} seirconn_50_r <- run_multiple_get_results(model_seirconn)$reproductive @@ -105,7 +102,4 @@ plot(seirconn_50_r) # ylab = "rt", # border = "black", # las = 2) - ``` - - From e241581e73bf5bb82a0f615d0db3c737059ec513 Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 7 Oct 2024 11:27:25 -0600 Subject: [PATCH 02/24] Removing adding README.md back to pre-commit --- .pre-commit-config.yaml | 14 +++++++------- README.md | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0d3cdcea..93c401eb 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -3,15 +3,15 @@ repos: rev: v3.2.0 hooks: - id: trailing-whitespace - exclude: ^(inst/|man/|src/cpp11\.cpp|playgroud/|R/cpp11\.R|README\.md) + exclude: ^(inst/|man/|src/cpp11.cpp|playgroud/|R/cpp11.R) - id: end-of-file-fixer - exclude: ^(inst/|man/|src/cpp11\.cpp|playgroud/|R/cpp11\.R|README\.md) + exclude: ^(inst/|man/|src/cpp11.cpp|playgroud/|R/cpp11.R) - id: check-yaml - exclude: ^(inst/|man/|src/cpp11\.cpp|playgroud/|R/cpp11\.R|README\.md) + exclude: ^(inst/|man/|src/cpp11.cpp|playgroud/|R/cpp11.R) - id: check-added-large-files - exclude: ^(inst/|man/|src/cpp11\.cpp|playgroud/|R/cpp11\.R|README\.md) + exclude: ^(inst/|man/|src/cpp11.cpp|playgroud/|R/cpp11.R) - id: detect-private-key - exclude: ^(inst/|man/|src/cpp11\.cpp|playgroud/|R/cpp11\.R|README\.md) + exclude: ^(inst/|man/|src/cpp11.cpp|playgroud/|R/cpp11.R) - repo: https://github.com/lorenzwalthert/precommit rev: v0.4.2 @@ -23,9 +23,9 @@ repos: '--ignore-stop="^# styler: on$"', '--strict=FALSE' ] - exclude: ^(inst/|man/|src/cpp11\.cpp|playgroud/|R/cpp11\.R|README\.md) + exclude: ^(inst/|man/|src/cpp11.cpp|playgroud/|R/cpp11.R) - id: readme-rmd-rendered # - id: lintr # args: [--warn_only] # verbose: true - # exclude: ^(inst/|man/|src/cpp11.cpp|playgroud/|R/cpp11\.R|README\.md) + # exclude: ^(inst/|man/|src/cpp11.cpp|playgroud/|R/cpp11.R) diff --git a/README.md b/README.md index b2260abb..b2bc2132 100644 --- a/README.md +++ b/README.md @@ -141,7 +141,7 @@ summary(sir) #> Days (duration) : 50 (of 50) #> Number of viruses : 1 #> Last run elapsed t : 62.00ms -#> Last run speed : 80.26 million agents x day / second +#> Last run speed : 79.47 million agents x day / second #> Rewiring : off #> #> Global events: @@ -229,7 +229,7 @@ summary(model_seirconn) #> Days (duration) : 100 (of 100) #> Number of viruses : 2 #> Last run elapsed t : 15.00ms -#> Last run speed : 63.50 million agents x day / second +#> Last run speed : 64.01 million agents x day / second #> Rewiring : off #> #> Global events: From af1ea4cb8f8144fce153925902853e1ef77c93b9 Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 7 Oct 2024 12:58:16 -0600 Subject: [PATCH 03/24] Adding pre-commit to Rbuildignore --- .Rbuildignore | 1 + pre-commit.yaml | 23 ----------------------- 2 files changed, 1 insertion(+), 23 deletions(-) delete mode 100644 pre-commit.yaml diff --git a/.Rbuildignore b/.Rbuildignore index 81cc5946..80a809fd 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -31,6 +31,7 @@ README\.html # Adding gitattributes \.gitattributes +\.pre-commit-config.yaml paper\..+ docker diff --git a/pre-commit.yaml b/pre-commit.yaml deleted file mode 100644 index 2efb1421..00000000 --- a/pre-commit.yaml +++ /dev/null @@ -1,23 +0,0 @@ -name: Pre-commit - -on: - push: - branches: - - main - pull_request: - branches: - - main - -jobs: - pre-commit: - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Set up Python - uses: actions/setup-python@v3 - - - name: Run pre-commit hooks - uses: pre-commit/action@v3.0.1 From 6807d9dc04904730c8fb1cd53bccc24a98d13a30 Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 7 Oct 2024 13:12:49 -0600 Subject: [PATCH 04/24] Adding pre-commit as dependency --- .github/workflows/pre-commit.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index 2efb1421..f9e70faa 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -10,6 +10,7 @@ on: jobs: pre-commit: + name: Pre-commit runs-on: ubuntu-latest steps: @@ -19,5 +20,11 @@ jobs: - name: Set up Python uses: actions/setup-python@v3 + - name: Install styler + run: | + options(repos = c(CRAN = "https://packagemanager.posit.co/cran/latest")) + install.packages("styler") + shell: Rscript --vanilla -e {0} + - name: Run pre-commit hooks uses: pre-commit/action@v3.0.1 From 6610a22e03fe32686e49c79927dd1aa6b14268f7 Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 7 Oct 2024 13:17:22 -0600 Subject: [PATCH 05/24] Passing Rscript differently --- .github/workflows/pre-commit.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index f9e70faa..cc99fca7 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -24,7 +24,7 @@ jobs: run: | options(repos = c(CRAN = "https://packagemanager.posit.co/cran/latest")) install.packages("styler") - shell: Rscript --vanilla -e {0} + shell: Rscript {0} - name: Run pre-commit hooks uses: pre-commit/action@v3.0.1 From 9c78ebc59bee217b44eb0089c42519f972c94c6c Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 7 Oct 2024 13:22:51 -0600 Subject: [PATCH 06/24] Get to get the library --- .github/workflows/pre-commit.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index 721a3b11..8eb26f7e 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -25,7 +25,7 @@ jobs: - name: Install styler run: | options(repos = c(CRAN = "https://packagemanager.posit.co/cran/latest")) - install.packages("styler") + install.packages("styler", lib = Sys.getenv("R_LIBS_USER")) shell: Rscript {0} - name: Run pre-commit hooks From 0146a6e02c80f3c0f00fc9615a76b28e7caef86f Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 7 Oct 2024 13:27:16 -0600 Subject: [PATCH 07/24] Setting up R in pre-commit --- .github/workflows/pre-commit.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index 8eb26f7e..24d38215 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -22,6 +22,9 @@ jobs: - name: Set up Python uses: actions/setup-python@v3 + - name: Set up R + uses: r-lib/actions/setup-r@v2 + - name: Install styler run: | options(repos = c(CRAN = "https://packagemanager.posit.co/cran/latest")) From 8016f59e306e62812dbab60a761286b2dc2053a8 Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 7 Oct 2024 13:33:00 -0600 Subject: [PATCH 08/24] Setting up where to install the package and from where --- .github/workflows/pre-commit.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index 24d38215..6e3eefc3 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -28,7 +28,7 @@ jobs: - name: Install styler run: | options(repos = c(CRAN = "https://packagemanager.posit.co/cran/latest")) - install.packages("styler", lib = Sys.getenv("R_LIBS_USER")) + install.packages("styler", type="both") shell: Rscript {0} - name: Run pre-commit hooks From cfb6543da59b34d8c91f1deffd59cefedea25afd Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 7 Oct 2024 13:34:43 -0600 Subject: [PATCH 09/24] Both can only be used in mac and windows --- .github/workflows/pre-commit.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index 6e3eefc3..a1d9cac7 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -28,7 +28,7 @@ jobs: - name: Install styler run: | options(repos = c(CRAN = "https://packagemanager.posit.co/cran/latest")) - install.packages("styler", type="both") + install.packages("styler") shell: Rscript {0} - name: Run pre-commit hooks From b442dd01bfdcd09eada23a071c0b760bf11b91b4 Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 7 Oct 2024 13:42:55 -0600 Subject: [PATCH 10/24] Adding jammy to the repo --- .github/workflows/pre-commit.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index a1d9cac7..9ecf7098 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -27,7 +27,7 @@ jobs: - name: Install styler run: | - options(repos = c(CRAN = "https://packagemanager.posit.co/cran/latest")) + options(repos = c(CRAN = "https://packagemanager.posit.co/cran/__linux__/jammy/latest")) install.packages("styler") shell: Rscript {0} From b745b2c8b408e92fbae76347743871577fc8fcec Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 7 Oct 2024 13:48:01 -0600 Subject: [PATCH 11/24] Removing dangling pre-commit file --- pre-commit.yaml | 23 ----------------------- 1 file changed, 23 deletions(-) delete mode 100644 pre-commit.yaml diff --git a/pre-commit.yaml b/pre-commit.yaml deleted file mode 100644 index 2efb1421..00000000 --- a/pre-commit.yaml +++ /dev/null @@ -1,23 +0,0 @@ -name: Pre-commit - -on: - push: - branches: - - main - pull_request: - branches: - - main - -jobs: - pre-commit: - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Set up Python - uses: actions/setup-python@v3 - - - name: Run pre-commit hooks - uses: pre-commit/action@v3.0.1 From f3e9f0c680e9ab26007892372387c8a20f91e19f Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 7 Oct 2024 14:09:36 -0600 Subject: [PATCH 12/24] Setting no cache root --- .pre-commit-config.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 93c401eb..8e0973ed 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -21,7 +21,8 @@ repos: [ '--ignore-start="^# styler: off$"', '--ignore-stop="^# styler: on$"', - '--strict=FALSE' + '--strict=FALSE', + '--cache-root=""' ] exclude: ^(inst/|man/|src/cpp11.cpp|playgroud/|R/cpp11.R) - id: readme-rmd-rendered From 7c29b840f75de85081216d41342ace83af9bd29d Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 7 Oct 2024 14:21:41 -0600 Subject: [PATCH 13/24] Reverting root cache pre-commit --- .pre-commit-config.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 8e0973ed..93c401eb 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -21,8 +21,7 @@ repos: [ '--ignore-start="^# styler: off$"', '--ignore-stop="^# styler: on$"', - '--strict=FALSE', - '--cache-root=""' + '--strict=FALSE' ] exclude: ^(inst/|man/|src/cpp11.cpp|playgroud/|R/cpp11.R) - id: readme-rmd-rendered From 060dcdbd1dbc914d99953f84c1566d506b3e1c92 Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 7 Oct 2024 14:25:54 -0600 Subject: [PATCH 14/24] Running pre-commit alternatively --- .github/workflows/pre-commit.yaml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index 9ecf7098..63fbe32c 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -25,6 +25,20 @@ jobs: - name: Set up R uses: r-lib/actions/setup-r@v2 + - name: Cache pre-commit + uses: actions/cache@v4 + id: cache-pre-commit + with: + path: ~/.cache/pre-commit + key: pre-commit-${{ hashFiles('.pre-commit-config') }} + + - name: Setup pre-commit + if: steps.cache-pre-commit.outputs.cache-hit != 'true' + run: | + pip install pre-commit + pre-commit install + shell: bash + - name: Install styler run: | options(repos = c(CRAN = "https://packagemanager.posit.co/cran/__linux__/jammy/latest")) @@ -32,4 +46,4 @@ jobs: shell: Rscript {0} - name: Run pre-commit hooks - uses: pre-commit/action@v3.0.1 + bash: pre-commit run --all-files From 18145633267bddc68835ce236f69e73707412889 Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 7 Oct 2024 14:29:17 -0600 Subject: [PATCH 15/24] Update pre-commit.yaml --- .github/workflows/pre-commit.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index 63fbe32c..433abc2d 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -46,4 +46,4 @@ jobs: shell: Rscript {0} - name: Run pre-commit hooks - bash: pre-commit run --all-files + run: pre-commit run --all-files From 80b88a2c887eded2a3ed969758e863dd826bf264 Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 7 Oct 2024 14:33:14 -0600 Subject: [PATCH 16/24] Correct hooks --- .github/workflows/pre-commit.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index 63fbe32c..dcabebc3 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -30,13 +30,13 @@ jobs: id: cache-pre-commit with: path: ~/.cache/pre-commit - key: pre-commit-${{ hashFiles('.pre-commit-config') }} + key: pre-commit-${{ hashFiles('./.pre-commit-config.yaml') }} - name: Setup pre-commit if: steps.cache-pre-commit.outputs.cache-hit != 'true' run: | pip install pre-commit - pre-commit install + pre-commit install --install-hooks shell: bash - name: Install styler From 1adc21bc2592e9ed27d94e513f6d553f4d5bb936 Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 7 Oct 2024 14:38:24 -0600 Subject: [PATCH 17/24] Forgot to install it: --- .github/workflows/pre-commit.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index 55aa399c..6d46547a 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -32,10 +32,12 @@ jobs: path: ~/.cache/pre-commit key: pre-commit-${{ hashFiles('./.pre-commit-config.yaml') }} + - name: Install pre-commit + run: pip install pre-commit + - name: Setup pre-commit if: steps.cache-pre-commit.outputs.cache-hit != 'true' run: | - pip install pre-commit pre-commit install --install-hooks shell: bash From 4cd89fb49994fd59d1ce904c62b3631905bd1065 Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 7 Oct 2024 14:48:34 -0600 Subject: [PATCH 18/24] Dealing with styler --- .github/workflows/pre-commit.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index 6d46547a..68069a19 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -22,8 +22,8 @@ jobs: - name: Set up Python uses: actions/setup-python@v3 - - name: Set up R - uses: r-lib/actions/setup-r@v2 + # - name: Set up R + # uses: r-lib/actions/setup-r@v2 - name: Cache pre-commit uses: actions/cache@v4 @@ -41,11 +41,11 @@ jobs: pre-commit install --install-hooks shell: bash - - name: Install styler - run: | - options(repos = c(CRAN = "https://packagemanager.posit.co/cran/__linux__/jammy/latest")) - install.packages("styler") - shell: Rscript {0} + # - name: Install styler + # run: | + # options(repos = c(CRAN = "https://packagemanager.posit.co/cran/__linux__/jammy/latest")) + # install.packages("styler") + # shell: Rscript {0} - name: Run pre-commit hooks run: pre-commit run --all-files From 762c0606e1efbb74f05fe3c8264a01006be7cbdb Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 7 Oct 2024 14:52:43 -0600 Subject: [PATCH 19/24] Revising how to deal with pre-commit --- .github/workflows/pre-commit.yaml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index 68069a19..4ecafd01 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -22,9 +22,6 @@ jobs: - name: Set up Python uses: actions/setup-python@v3 - # - name: Set up R - # uses: r-lib/actions/setup-r@v2 - - name: Cache pre-commit uses: actions/cache@v4 id: cache-pre-commit @@ -41,11 +38,5 @@ jobs: pre-commit install --install-hooks shell: bash - # - name: Install styler - # run: | - # options(repos = c(CRAN = "https://packagemanager.posit.co/cran/__linux__/jammy/latest")) - # install.packages("styler") - # shell: Rscript {0} - - name: Run pre-commit hooks run: pre-commit run --all-files From ab602943bfccaee41776301f9fd0d3c72619427d Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 7 Oct 2024 14:59:50 -0600 Subject: [PATCH 20/24] Forcing the R version to be 4.4.1 in precommit R --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 93c401eb..f60657a4 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -14,7 +14,7 @@ repos: exclude: ^(inst/|man/|src/cpp11.cpp|playgroud/|R/cpp11.R) - repo: https://github.com/lorenzwalthert/precommit - rev: v0.4.2 + rev: v0.4.3 hooks: - id: style-files args: From 1acee27a3f1d1b04bf5b210ea30f2fa66c5fea02 Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 7 Oct 2024 15:05:44 -0600 Subject: [PATCH 21/24] Adding some contextual information --- .github/workflows/pre-commit.yaml | 6 ++++++ .pre-commit-config.yaml | 2 ++ 2 files changed, 8 insertions(+) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index 4ecafd01..d7feda48 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -32,6 +32,12 @@ jobs: - name: Install pre-commit run: pip install pre-commit + # Notice this step depends on what + # https://github.com/lorenzwalthert/precommit has as + # R version in renv.lock. GHA ubuntu-latest runner comes + # with R 4.4.1, which is the same as in renv.lock. If that + # changes, caching will not work as it will be loading a + # different version of R. - name: Setup pre-commit if: steps.cache-pre-commit.outputs.cache-hit != 'true' run: | diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index f60657a4..c3a485c2 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -14,6 +14,8 @@ repos: exclude: ^(inst/|man/|src/cpp11.cpp|playgroud/|R/cpp11.R) - repo: https://github.com/lorenzwalthert/precommit + # This version of precommit uses R 4.4.1 (renv.lock) + # See the pre-commit.yaml workflow file for more details. rev: v0.4.3 hooks: - id: style-files From 080368bffab91923a5fb1a2f6f6f793e9696881d Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 7 Oct 2024 15:16:53 -0600 Subject: [PATCH 22/24] Reverting how pre-commit works --- .github/workflows/pre-commit.yaml | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index d7feda48..b57105f0 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -22,27 +22,11 @@ jobs: - name: Set up Python uses: actions/setup-python@v3 - - name: Cache pre-commit - uses: actions/cache@v4 - id: cache-pre-commit - with: - path: ~/.cache/pre-commit - key: pre-commit-${{ hashFiles('./.pre-commit-config.yaml') }} - - - name: Install pre-commit - run: pip install pre-commit - # Notice this step depends on what # https://github.com/lorenzwalthert/precommit has as # R version in renv.lock. GHA ubuntu-latest runner comes # with R 4.4.1, which is the same as in renv.lock. If that # changes, caching will not work as it will be loading a # different version of R. - - name: Setup pre-commit - if: steps.cache-pre-commit.outputs.cache-hit != 'true' - run: | - pre-commit install --install-hooks - shell: bash - - name: Run pre-commit hooks - run: pre-commit run --all-files + uses: pre-commit/action@v3.0.1 From 79c66d92f95df368d32be8cda91d7bb366f0eccf Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 7 Oct 2024 15:21:44 -0600 Subject: [PATCH 23/24] Adding pre-commit Renv --- .github/workflows/pre-commit.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index b57105f0..467e9f07 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -22,6 +22,13 @@ jobs: - name: Set up Python uses: actions/setup-python@v3 + - name: Cache R packages for pre-commit (live in renv) + uses: actions/cache@v4 + with: + path: | + ~/.cache/R/renv + key: r-precommit-cache|${{ env.pythonLocation }}|${{ hashFiles('.pre-commit-config.yaml') }} + # Notice this step depends on what # https://github.com/lorenzwalthert/precommit has as # R version in renv.lock. GHA ubuntu-latest runner comes From 654616c20e8007934499c7e81619934e02bef158 Mon Sep 17 00:00:00 2001 From: "George G. Vega Yon" Date: Mon, 7 Oct 2024 15:30:41 -0600 Subject: [PATCH 24/24] Need a cache-root maybe --- .pre-commit-config.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c3a485c2..ca6b31f7 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -23,7 +23,8 @@ repos: [ '--ignore-start="^# styler: off$"', '--ignore-stop="^# styler: on$"', - '--strict=FALSE' + '--strict=FALSE', + '--cache-root=styler-perm' ] exclude: ^(inst/|man/|src/cpp11.cpp|playgroud/|R/cpp11.R) - id: readme-rmd-rendered