From 8a73955cf78c3d5639e8004e18ff2384ea101cf4 Mon Sep 17 00:00:00 2001 From: "@daaronr" <8229168+daaronr@users.noreply.github.com> Date: Thu, 27 Jul 2023 15:58:25 -0400 Subject: [PATCH] small fixes and rebuild --- .../evaluation_data/execute-results/html.json | 4 +- .../figure-html/unnamed-chunk-14-1.png | Bin 61347 -> 57906 bytes .../figure-html/unnamed-chunk-18-1.png | Bin 102034 -> 102021 bytes .../figure-html/unnamed-chunk-20-1.png | Bin 151697 -> 151848 bytes _quarto.yml | 2 +- chapters/evaluation_data.qmd | 21 +- data/evals.Rdata | Bin 3327 -> 3333 bytes data/evals.csv | 2 +- docs/chapters/evaluation_data.html | 1378 +++++++++-------- .../figure-html/unnamed-chunk-14-1.png | Bin 61347 -> 57906 bytes .../figure-html/unnamed-chunk-18-1.png | Bin 102034 -> 102021 bytes .../figure-html/unnamed-chunk-20-1.png | Bin 151697 -> 151848 bytes docs/index.html | 8 +- docs/search.json | 34 +- 14 files changed, 729 insertions(+), 720 deletions(-) diff --git a/_freeze/chapters/evaluation_data/execute-results/html.json b/_freeze/chapters/evaluation_data/execute-results/html.json index 1677ea7..a7049cf 100644 --- a/_freeze/chapters/evaluation_data/execute-results/html.json +++ b/_freeze/chapters/evaluation_data/execute-results/html.json @@ -1,7 +1,7 @@ { - "hash": "a4e7b5185bb73b611a1a82aea9bff999", + "hash": "8e6163c505fd1797a296605d08ca6127", "result": { - "markdown": "# Evaluation data: description, exploration, checks\n\n\n::: {.cell}\n\n```{.r .cell-code code-summary=\"load packages\"}\nsource(here::here(\"code\", \"shared_packages_code.R\"))\n\n#devtools::install_github(\"rethinkpriorities/rp-r-package\")\nlibrary(rethinkpriorities)\n\n#devtools::install_github(\"rethinkpriorities/r-noodling-package\") #mainly used playing in real time\nlibrary(rnoodling)\n\nlibrary(here)\nlibrary(dplyr)\nlibrary(pacman)\n\np_load(formattable, sparkline, install=FALSE)\n\np_load(DT, santoku, lme4, huxtable, janitor, emmeans, sjPlot, sjmisc, ggeffects, ggrepel, likert, labelled, plotly, stringr, install=FALSE)\n\np_load(ggthemes, paletteer, ggridges, install=FALSE)\n\nselect <- dplyr::select \n\noptions(knitr.duplicate.label = \"allow\")\n\noptions(mc.cores = parallel::detectCores())\n#rstan_options(auto_write = TRUE)\n\n#library(hunspell)\n\n#(brms)\n\n#devtools::install_github(\"bergant/airtabler\")\np_load(airtabler)\n\n#remotes::install_github(\"rmcelreath/rethinking\")\n#library(rethinking)\n```\n:::\n\n\n\n\n\n\n\n::: {.cell}\n\n```{.r .cell-code code-summary=\"input from airtable\"}\nbase_id <- \"appbPYEw9nURln7Qg\"\n\n# Set your Airtable API key\n#Sys.setenv(AIRTABLE_API_KEY = \"\") \n#this should be set in my .Renviron file\n\n\n# Read data from a specific view\n\nevals <- air_get(base = base_id, \"output_eval\") \n\nall_pub_records <- data.frame()\npub_records <- air_select(base = base_id, table = \"crucial_research\")\n\n# Append the records to the list\nall_pub_records <- bind_rows(all_pub_records, pub_records)\n\n# While the length of the records list is 100 (the maximum), fetch more records\nwhile(nrow(pub_records) == 100) {\n # Get the ID of the last record in the list\n offset <- get_offset(pub_records)\n \n # Fetch the next 100 records, starting after the last ID\n pub_records <- air_select(base = base_id, table = \"crucial_research\", offset = offset)\n \n # Append the records to the df\n all_pub_records <- bind_rows(all_pub_records, pub_records)\n}\n```\n:::\n\n::: {.cell}\n\n```{.r .cell-code code-summary=\"just the useful and publish-able data, clean a bit\"}\ncolnames(evals) <- snakecase::to_snake_case(colnames(evals))\n\nevals_pub <- evals %>% \n dplyr::rename(stage_of_process = stage_of_process_todo_from_crucial_research_2) %>% \n mutate(stage_of_process = unlist(stage_of_process)) %>% \n dplyr::filter(stage_of_process == \"published\") %>% \n select(id, crucial_research, paper_abbrev, evaluator_name, category, source_main, author_agreement, overall, lb_overall, ub_overall, conf_index_overall, advancing_knowledge_and_practice, lb_advancing_knowledge_and_practice, ub_advancing_knowledge_and_practice, conf_index_advancing_knowledge_and_practice, methods_justification_reasonableness_validity_robustness, lb_methods_justification_reasonableness_validity_robustness, ub_methods_justification_reasonableness_validity_robustness, conf_index_methods_justification_reasonableness_validity_robustness, logic_communication, lb_logic_communication, ub_logic_communication, conf_index_logic_communication, engaging_with_real_world_impact_quantification_practice_realism_and_relevance, lb_engaging_with_real_world_impact_quantification_practice_realism_and_relevance, ub_engaging_with_real_world_impact_quantification_practice_realism_and_relevance, conf_index_engaging_with_real_world_impact_quantification_practice_realism_and_relevance, relevance_to_global_priorities, lb_relevance_to_global_priorities, ub_relevance_to_global_priorities, conf_index_relevance_to_global_priorities, journal_quality_predict, lb_journal_quality_predict, ub_journal_quality_predict, conf_index_journal_quality_predict, open_collaborative_replicable, conf_index_open_collaborative_replicable, lb_open_collaborative_replicable, ub_open_collaborative_replicable, merits_journal, lb_merits_journal, ub_merits_journal, conf_index_merits_journal)\n\nevals_pub %<>%\n tidyr::unnest_wider(category, names_sep = \"\") %>%\n tidyr::unnest_wider(paper_abbrev, names_sep = \"\") %>%\nmutate(across(everything(), unlist)) %>% #unlist list columns \n dplyr::rename(paper_abbrev = paper_abbrev1)\n\n#Todo -- check the unlist is not propagating the entry\n#Note: category, topic_subfield, and source have multiple meaningful categories. These will need care \n```\n:::\n\n::: {.cell}\n\n```{.r .cell-code code-summary=\"Shorten names \"}\nnew_names <- c(\n \"eval_name\" = \"evaluator_name\",\n \"cat_1\" = \"category1\",\n \"cat_2\" = \"category2\",\n \"cat_3\" = \"category3\",\n \"crucial_rsx\" = \"crucial_research\",\n \"conf_overall\" = \"conf_index_overall\",\n \"adv_knowledge\" = \"advancing_knowledge_and_practice\",\n \"lb_adv_knowledge\" = \"lb_advancing_knowledge_and_practice\",\n \"ub_adv_knowledge\" = \"ub_advancing_knowledge_and_practice\",\n \"conf_adv_knowledge\" = \"conf_index_advancing_knowledge_and_practice\",\n \"methods\" = \"methods_justification_reasonableness_validity_robustness\",\n \"lb_methods\" = \"lb_methods_justification_reasonableness_validity_robustness\",\n \"ub_methods\" = \"ub_methods_justification_reasonableness_validity_robustness\",\n \"conf_methods\" = \"conf_index_methods_justification_reasonableness_validity_robustness\",\n \"logic_comms\" = \"logic_communication\",\n \"lb_logic_comms\" = \"lb_logic_communication\",\n \"ub_logic_comms\" = \"ub_logic_communication\",\n \"conf_logic_comms\" = \"conf_index_logic_communication\",\n \"real_world\" = \"engaging_with_real_world_impact_quantification_practice_realism_and_relevance\",\n \"lb_real_world\" = \"lb_engaging_with_real_world_impact_quantification_practice_realism_and_relevance\",\n \"ub_real_world\" = \"ub_engaging_with_real_world_impact_quantification_practice_realism_and_relevance\",\n \"conf_real_world\" = \"conf_index_engaging_with_real_world_impact_quantification_practice_realism_and_relevance\",\n \"gp_relevance\" = \"relevance_to_global_priorities\",\n \"lb_gp_relevance\" = \"lb_relevance_to_global_priorities\",\n \"ub_gp_relevance\" = \"ub_relevance_to_global_priorities\",\n \"conf_gp_relevance\" = \"conf_index_relevance_to_global_priorities\",\n \"journal_predict\" = \"journal_quality_predict\",\n \"lb_journal_predict\" = \"lb_journal_quality_predict\",\n \"ub_journal_predict\" = \"ub_journal_quality_predict\",\n \"conf_journal_predict\" = \"conf_index_journal_quality_predict\",\n \"open_sci\" = \"open_collaborative_replicable\",\n \"conf_open_sci\" = \"conf_index_open_collaborative_replicable\",\n \"lb_open_sci\" = \"lb_open_collaborative_replicable\",\n \"ub_open_sci\" = \"ub_open_collaborative_replicable\",\n \"conf_merits_journal\" = \"conf_index_merits_journal\"\n)\n\nevals_pub <- evals_pub %>%\n rename(!!!new_names)\n\n# Function to insert a newline character every 15 characters\nwrap_text <- function(x, width = 15) {\n gsub(\"(.{1,15})\", \"\\\\1-\\n\", x)\n}\n\nevals_pub$source_main_wrapped <- wrap_text(evals_pub$source_main, 15)\n\nevals_pub$eval_name <- ifelse(\n grepl(\"^\\\\b\\\\w+\\\\b$|\\\\bAnonymous\\\\b\", evals_pub$eval_name),\n paste0(\"Anonymous_\", seq_along(evals_pub$eval_name)),\n evals_pub$eval_name\n)\n\n\n# make the old names into labels\n\n# Create a list of labels\nlabels <- str_replace_all(new_names, \"_\", \" \")\nlabels <- str_to_title(labels)\n \n# Assign labels to the dataframe\n# for(i in seq_along(labels)) {\n# col_name <- new_names[names(new_names)[i]]\n# label <- labels[i]\n# attr(evals_pub[[col_name]], \"label\") <- label\n# }\n# \n```\n:::\n\n\n\n\n### Reconcile uncertainty ratings and CIs {-}\n\nWhere people gave only confidence level 'dots', we impute CIs (confidence/credible intervals). We follow the correspondence described [here](https://effective-giving-marketing.gitbook.io/unjournal-x-ea-and-global-priorities-research/policies-projects-evaluation-workflow/evaluation/guidelines-for-evaluators#1-5-dots-explanation-and-relation-to-cis). (Otherwise where they gave actual CIs, we use these.)^[Note this is only a first-pass; a more sophisticated approach may be warranted in future.]\n\n::: {.callout-note collapse=\"true\"}\n## Dots to interval choices\n\n> 5 = Extremely confident, i.e., 90% confidence interval spans +/- 4 points or less)\n\nFor 0-100 ratings, code the LB as $min(R - 4\\times \\frac{R}{100},0)$ and the UB as $max(R + 4\\times \\frac{R}{100},0)$, where R is the stated (middle) rating. This 'scales' the CI, as interpreted, to be proportional to the rating, with a maximum 'interval' of about 8, with the rating is about 96.\n\n> 4 = Very*confident: 90% confidence interval +/- 8 points or less\n\nFor 0-100 ratings, code the LB as $min(R - 8\\times \\frac{R}{100},0)$ and the UB as $max(R + 8\\times \\frac{R}{100},0)$, where R is the stated (middle) rating. \n\n> 3 = Somewhat** confident: 90% confidence interval +/- 15 points or less \n\n> 2 = Not very** confident: 90% confidence interval, +/- 25 points or less\n\nComparable scaling for the 2-3 ratings as for the 4 and 5 rating.\n\n> 1 = Not** confident: (90% confidence interval +/- more than 25 points)\n \nCode LB as $min(R - 37.5\\times \\frac{R}{100},0)$ and the UB as $max(R + 37.5\\times \\frac{R}{100},0)$. \n \nThis is just a first-pass. There might be a more information-theoretic way of doing this. On the other hand, we might be switching the evaluations to use a different tool soon, perhaps getting rid of the 1-5 confidence ratings altogether.\n\n::: \n\n\n\n::: {.cell}\n\n```{.r .cell-code code-summary=\"reconcile explicit bounds and stated confidence level\"}\n# Define the baseline widths for each confidence rating\nbaseline_widths <- c(4, 8, 15, 25, 37.5)\n\n# Define a function to calculate the lower and upper bounds, where given only an index\ncalc_bounds <- function(rating, confidence, lb_explicit, ub_explicit, scale=100) {\n # Check if confidence is NA\n if (is.na(confidence)) {\n return(c(lb_explicit, ub_explicit)) # Return explicit bounds if confidence is NA\n } else {\n baseline_width <- baseline_widths[confidence]\n lb <- pmax(rating - baseline_width * rating / scale, 0)\n ub <- pmin(rating + baseline_width * rating / scale, scale)\n return(c(lb, ub))\n }\n}\n\n# Function to calculate bounds for a single category\ncalc_category_bounds <- function(df, category, scale=100) {\n # Calculate bounds\n bounds <- mapply(calc_bounds, df[[category]], df[[paste0(\"conf_\", category)]], df[[paste0(\"lb_\", category)]], df[[paste0(\"ub_\", category)]])\n \n # Convert to data frame and ensure it has the same number of rows as the input\n bounds_df <- as.data.frame(t(bounds))\n rownames(bounds_df) <- NULL\n \n # Add bounds to original data frame\n df[[paste0(category, \"_lb_imp\")]] <- bounds_df[, 1]\n df[[paste0(category, \"_ub_imp\")]] <- bounds_df[, 2]\n \n return(df)\n}\n\n\n# Lists of categories\n\nrating_cats <- c(\"overall\", \"adv_knowledge\", \"methods\", \"logic_comms\", \"real_world\", \"gp_relevance\", \"open_sci\")\n\n#... 'predictions' are currently 1-5 (0-5?)\npred_cats <- c(\"journal_predict\", \"merits_journal\")\n\n# Apply the function to each category\n# DR: I don't love this looping 'edit in place' code approach, but whatever\nfor (cat in rating_cats) {\n evals_pub <- calc_category_bounds(evals_pub, cat, scale=100)\n}\n\nfor (cat in pred_cats) {\n evals_pub <- calc_category_bounds(evals_pub, cat, scale=5)\n}\n```\n:::\n\n::: {.cell}\n\n```{.r .cell-code code-summary=\"save data for others' use\"}\nevals_pub %>% saveRDS(file = here(\"data\", \"evals.Rdata\"))\nevals_pub %>% write_csv(file = here(\"data\", \"evals.csv\"))\n\n#evals_pub %>% readRDS(file = here(\"data\", \"evals.Rdata\"))\n```\n:::\n\n\n \n# Basic presentation\n\n## What sorts of papers/projects are we considering and evaluating? \n\nIn this section, we give some simple data summaries and visualizations, for a broad description of The Unjournal's coverage. \n\nIn the interactive tables below we give some key attributes of the papers and the evaluators, and a preview of the evaluations.\n\n\n::: column-body-outset\n\n\n\n::: {.cell}\n\n```{.r .cell-code}\n(\n all_evals_dt <- evals_pub %>%\n arrange(paper_abbrev, eval_name) %>%\n dplyr::select(paper_abbrev, crucial_rsx, eval_name, cat_1, cat_2, source_main_wrapped, author_agreement) %>%\n dplyr::select(-matches(\"ub_|lb_|conf\")) %>% \n #rename_all(~ gsub(\"_\", \" \", .)) %>% \n rename(\"Research _____________________\" = \"crucial_rsx\" \n ) %>%\n DT::datatable(\n caption = \"Evaluations (confidence bounds not shown)\", \n filter = 'top',\n rownames= FALSE,\n options = list(pageLength = 7)\n )\n)\n```\n\n::: {.cell-output-display}\n```{=html}\n
\n\n```\n:::\n:::\n\n\n\n\\\n\nNext, the 'middle ratings and predictions'.\n\n\n::: {.cell}\n\n```{.r .cell-code code-summary=\"Data datable (all shareable relevant data)\"}\n(\n all_evals_dt <- evals_pub %>%\n arrange(paper_abbrev, eval_name, overall) %>%\n dplyr::select(paper_abbrev, eval_name, all_of(rating_cats)) %>%\n DT::datatable(\n caption = \"Evaluations and predictions (confidence bounds not shown)\", \n filter = 'top',\n rownames= FALSE,\n options = list(pageLength = 7)\n )\n)\n```\n\n::: {.cell-output-display}\n```{=html}\n\n\n```\n:::\n:::\n\n\\\n\n\n\n\n::: {.cell}\n\n```{.r .cell-code}\n(\n all_evals_dt_ci <- evals_pub %>%\n arrange(paper_abbrev, eval_name) %>%\n dplyr::select(paper_abbrev, eval_name, conf_overall, rating_cats, matches(\"ub_imp|lb_imp\")) %>%\n DT::datatable(\n caption = \"Evaluations and (imputed*) confidence bounds)\", \n filter = 'top',\n rownames= FALSE,\n options = list(pageLength = 7)\n )\n)\n```\n:::\n\n:::\n\n\n::: {.callout-note collapse=\"true\"}\n## Next consider...\n\n- Composition of research evaluated\n - By field (economics, psychology, etc.)\n - By subfield of economics \n - By topic/cause area (Global health, economic development, impact of technology, global catastrophic risks, etc. )\n - By source (submitted, identified with author permission, direct evaluation)\n \n- Timing of intake and evaluation^[Consider: timing might be its own section or chapter; this is a major thing journals track, and we want to keep track of ourselves]\n\n:::\n\nThe funnel plot below starts with the paper we prioritized for likely Unjournal evaluation, marking these as 'considering'.\n\n\n::: {.cell}\n\n```{.r .cell-code}\n#Add in the 3 different evaluation input sources\n#update to be automated rather than hard-coded - to look at David's work here\n\npapers_considered <- all_pub_records %>% nrow()\n\npapers_deprio <- all_pub_records %>% filter(`stage of process/todo` == \"de-prioritized\") %>% nrow()\n\npapers_evaluated <- all_pub_records %>% filter(`stage of process/todo` %in% c(\"published\",\n \"contacting/awaiting_authors_response_to_evaluation\",\n \"awaiting_publication_ME_comments\",\n \"awaiting_evaluations\")) %>% nrow()\n\npapers_complete <- all_pub_records %>% filter(`stage of process/todo` == \"published\") %>% \nnrow()\n\npapers_in_progress <- papers_evaluated - papers_complete\n\npapers_still_in_consideration <- all_pub_records %>% filter(`stage of process/todo` == \"considering\") %>% nrow()\n\n\n#todo: adjust wording of hover notes ('source, target...etc')\n\nfig <- plot_ly(\n type = \"sankey\",\n orientation = \"h\",\n\n node = list(\n label = c(\"Prioritized\", \"Evaluating(ed)\", \"Complete\", \"In progress\", \"Still in consideration\", \"De-prioritized\"),\n color = c(\"orange\", \"green\", \"green\", \"orange\", \"orange\", \"red\"),\n#Todo: adjust 'location' to group these left to right\n pad = 15,\n thickness = 20,\n line = list(\n color = \"black\",\n width = 0.5\n )\n ),\n\n link = list(\n source = c(0,1,1,0,0),\n target = c(1,2,3,4,5),\n value = c(\n papers_evaluated,\n papers_complete,\n papers_in_progress,\n papers_still_in_consideration,\n papers_deprio\n ))\n )\nfig <- fig %>% layout(\n title = \"Unjournal paper funnel\",\n font = list(\n size = 10\n )\n)\n\nfig \n```\n\n::: {.cell-output-display}\n```{=html}\n\n\n```\n:::\n:::\n\n\n\n(In future, will make interactive/dashboards of the elements below)\n\n\n::: {.cell}\n\n```{.r .cell-code}\nsummary_df <- evals_pub %>%\n distinct(crucial_rsx, .keep_all = T) %>% \n group_by(cat_1) %>%\n summarise(count = n()) \n\nsummary_df$cat_1[is.na(summary_df$cat_1)] <- \"Unknown\"\n\nsummary_df <- summary_df %>%\n arrange(-desc(count)) %>%\n mutate(cat_1 = factor(cat_1, levels = unique(cat_1)))\n\n# Create stacked bar chart\nggplot(summary_df, aes(x = cat_1, y = count)) +\n geom_bar(stat = \"identity\") + \n theme_minimal() +\n labs(x = \"Paper category\", y = \"Count\", \n title = \"Count of evaluated papers by primary category\") \n```\n\n::: {.cell-output-display}\n![](evaluation_data_files/figure-html/unnamed-chunk-14-1.png){width=672}\n:::\n:::\n\n::: {.cell}\n\n```{.r .cell-code}\n# Bar plot\nggplot(evals_pub, aes(x = source_main_wrapped)) + \n geom_bar(position = \"stack\", stat = \"count\") +\n labs(x = \"Source\", y = \"Count\") +\n theme_light() +\n theme_minimal() +\n ggtitle(\"Pool of research/evaluations by paper source\") + # add title\n theme(\n panel.grid.major = element_blank(),\n panel.grid.minor = element_blank(),\n text = element_text(size = 16), # changing all text size to 16\n axis.text.y = element_text(size = 10),\n axis.text.x = element_text(size = 14)\n )\n```\n\n::: {.cell-output-display}\n![](evaluation_data_files/figure-html/unnamed-chunk-16-1.png){width=672}\n:::\n:::\n\n::: {.cell}\n\n```{.r .cell-code}\nall_pub_records$is_evaluated = all_pub_records$`stage of process/todo` %in% c(\"published\",\n \"contacting/awaiting_authors_response_to_evaluation\",\n \"awaiting_publication_ME_comments\",\n \"awaiting_evaluations\")\n\nall_pub_records$source_main[all_pub_records$source_main == \"NA\"] <- \"Not applicable\" \nall_pub_records$source_main[all_pub_records$source_main == \"internal-from-syllabus-agenda-policy-database\"] <- \"Internal: syllabus, agenda, etc.\" \nall_pub_records$source_main = tidyr::replace_na(all_pub_records$source_main, \"Unknown\")\n\n\n\nggplot(all_pub_records, aes(x = fct_infreq(source_main), fill = is_evaluated)) + \n geom_bar(position = \"stack\", stat = \"count\") +\n labs(x = \"Source\", y = \"Count\", fill = \"Selected for\\nevaluation?\") +\n coord_flip() + # flipping the coordinates to have categories on y-axis (on the left)\n theme_light() +\n theme_minimal() +\n ggtitle(\"Evaluations by source of the paper\") +# add title\n theme(\n panel.grid.major = element_blank(),\n panel.grid.minor = element_blank(),\n text = element_text(size = 16), # changing all text size to 16\n axis.text.y = element_text(size = 12),\n axis.text.x = element_text(size = 14)\n )\n```\n\n::: {.cell-output-display}\n![](evaluation_data_files/figure-html/unnamed-chunk-18-1.png){width=672}\n:::\n:::\n\n\n\n### The distribution of ratings and predictions {-}\n\nNext, we present the ratings and predictions along with 'uncertainty measures'.^[We use \"ub imp\" (and \"lb imp\") to denote the upper and lower bounds given by evaluators.] Where evaluators gave only a 1-5 confidence level^[More or less, the ones who report a level for 'conf overall', although some people did this for some but not others], we use the imputations discussed and coded above. \n\n\n- For each category and prediction (overall and by paper)\n\n\n::: column-body-outset\n\n\n\n::: {.cell}\n\n```{.r .cell-code}\nwrap_text <- function(text, width) {\n sapply(strwrap(text, width = width, simplify = FALSE), paste, collapse = \"\\n\")\n}\n\nevals_pub$wrapped_pub_names <- wrap_text(evals_pub$paper_abbrev, width = 15)\n\n\n#todo -- sort by average overall, use color and vertical spacing more\n#todo: introduce a carriage return into the paper names (workaround) to wrap these and save horizontal space\n\n\n# Dot plot\nggplot(evals_pub, aes(x = paper_abbrev, y = overall)) +\n geom_point(stat = \"identity\", size = 3, shape = 1, colour = \"lightblue\", stroke = 2) +\n geom_text_repel(aes(label = eval_name), \n size = 3, \n box.padding = unit(0.35, \"lines\"),\n point.padding = unit(0.3, \"lines\")) +\n coord_flip() + # flipping the coordinates to have categories on y-axis (on the left)\n theme_light() +\n xlab(\"Paper\") + # remove x-axis label\n ylab(\"Overall score\") + # name y-axis\n ggtitle(\"Overall scores of evaluated papers\") +# add title\n theme(\n panel.grid.major = element_blank(),\n panel.grid.minor = element_blank(),\n text = element_text(size = 14), # changing all text size to 16\n axis.text.y = element_text(size = 8),\n axis.text.x = element_text(size = 12)\n )\n```\n\n::: {.cell-output-display}\n![](evaluation_data_files/figure-html/unnamed-chunk-20-1.png){width=672}\n:::\n\n```{.r .cell-code}\n#todo -- add more vertical space between papers\n```\n:::\n\n:::\n\n\nIn future (todo), we aim to build a dashboard allowing people to use the complete set of ratings and predictions, and choose their own weightings. (Also incorporating the evaluator uncertainty in reasonable ways.)\n\n*The below should be fixed -- the column widths below are misleading*\n\n::: {.callout-note collapse=\"true\"}\n## Future vis\n\nSpider or radial chart \n\nEach rating is a dimension or attribute (potentially normalized)\npotentially superimpose a 'circle' for the suggested weighting or overall. \n\nEach paper gets its own spider, with all others (or the average) in faded color behind it as a comparator. \n\nIdeally user can switch on/off \n\nBeware -- people infer things from the shape's size\n\n\n::: \n\n::: column-body-outset\n\n\n::: {.cell}\n\n```{.r .cell-code}\nunit.scale = function(x) (x*100 - min(x*100)) / (max(x*100) - min(x*100))\nevaluations_table <- evals_pub %>%\n select(paper_abbrev, eval_name, cat_1, source_main, overall, adv_knowledge, methods, logic_comms, journal_predict) %>%\n arrange(desc(paper_abbrev))\n\nout = formattable(\n evaluations_table,\n list(\n #area(col = 5:8) ~ function(x) percent(x / 100, digits = 0),\n area(col = 5:8) ~ color_tile(\"#FA614B66\",\"#3E7DCC\"),\n `journal_predict` = proportion_bar(\"#DeF7E9\", unit.scale)\n )\n)\nout\n```\n\n::: {.cell-output-display}\npaper_abbrev | \neval_name | \ncat_1 | \nsource_main | \noverall | \nadv_knowledge | \nmethods | \nlogic_comms | \njournal_predict | \n
---|---|---|---|---|---|---|---|---|
Well-being: Cash vs. psychotherapy | \nAnonymous_13 | \nGH&D | \ninternal-NBER | \n90 | \n90 | \n90 | \n80 | \n4.0 | \n
Well-being: Cash vs. psychotherapy | \nHannah Metzler | \nGH&D | \ninternal-NBER | \n75 | \n70 | \n90 | \n75 | \n3.0 | \n
Nonprofit Govc.: Randomized healthcare DRC | \nWayne Aaron Sandholtz | \nGH&D | \ninternal-NBER | \n65 | \n70 | \n60 | \n55 | \n3.6 | \n
LT CEA: Resilient foods vs. AGI safety | \nScott Janzwood | \nlong-term-relevant | \nsubmitted | \n65 | \nNA | \nNA | \nNA | \nNA | \n
LT CEA: Resilient foods vs. AGI safety | \nAnca Hanea | \nlong-term-relevant | \nsubmitted | \n80 | \n80 | \n70 | \n85 | \n3.5 | \n
LT CEA: Resilient foods vs. AGI safety | \nAlex Bates | \nlong-term-relevant | \nsubmitted | \n40 | \n30 | \n50 | \n60 | \n2.0 | \n
Env. fx of prod.: ecological obs | \nElias Cisneros | \nNA | \ninternal-NBER | \n88 | \n90 | \n75 | \n80 | \n4.0 | \n
Env. fx of prod.: ecological obs | \nAnonymous_12 | \nNA | \ninternal-NBER | \n70 | \n70 | \n70 | \n75 | \n4.0 | \n
CBT Human K, Ghana | \nAnonymous_11 | \nNA | \ninternal-NBER | \n75 | \n60 | \n90 | \n70 | \n4.0 | \n
CBT Human K, Ghana | \nAnonymous_16 | \nNA | \ninternal-NBER | \n75 | \n65 | \n60 | \n75 | \nNA | \n
Banning wildlife trade can boost demand | \nAnonymous_3 | \nconservation | \nsubmitted | \n75 | \n70 | \n80 | \n70 | \n3.0 | \n
Banning wildlife trade can boost demand | \nLiew Jia Huan | \nconservation | \nsubmitted | \n75 | \n80 | \n50 | \n70 | \n2.5 | \n
Advance market commit. (vaccines) | \nDavid Manheim | \npolicy | \ninternal-from-syllabus-agenda-policy-database | \n80 | \n25 | \n95 | \n75 | \n3.0 | \n
Advance market commit. (vaccines) | \nJoel Tan | \npolicy | \ninternal-from-syllabus-agenda-policy-database | \n79 | \n90 | \n70 | \n70 | \n5.0 | \n
Advance market commit. (vaccines) | \nDan Tortorice | \npolicy | \ninternal-from-syllabus-agenda-policy-database | \n80 | \n90 | \n80 | \n80 | \n4.0 | \n
AI and econ. growth | \nSeth Benzell | \nmacroeconomics | \ninternal-from-syllabus-agenda-policy-database | \n80 | \n75 | \n80 | \n70 | \nNA | \n
AI and econ. growth | \nPhil Trammel | \nmacroeconomics | \ninternal-from-syllabus-agenda-policy-database | \n92 | \n97 | \n70 | \n45 | \n3.5 | \n
paper_abbrev | \neval_name | \ncat_1 | \nsource_main | \noverall | \nadv_knowledge | \nmethods | \nlogic_comms | \njournal_predict | \n
---|---|---|---|---|---|---|---|---|
Well-being: Cash vs. psychotherapy | \nAnonymous_13 | \nGH&D | \ninternal-NBER | \n90 | \n90 | \n90 | \n80 | \n4.0 | \n
Well-being: Cash vs. psychotherapy | \nHannah Metzler | \nGH&D | \ninternal-NBER | \n75 | \n70 | \n90 | \n75 | \n3.0 | \n
Nonprofit Govc.: Randomized healthcare DRC | \nWayne Aaron Sandholtz | \nGH&D | \ninternal-NBER | \n65 | \n70 | \n60 | \n55 | \n3.6 | \n
LT CEA: Resilient foods vs. AGI safety | \nScott Janzwood | \nlong-term-relevant | \nsubmitted | \n65 | \nNA | \nNA | \nNA | \nNA | \n
LT CEA: Resilient foods vs. AGI safety | \nAnca Hanea | \nlong-term-relevant | \nsubmitted | \n80 | \n80 | \n70 | \n85 | \n3.5 | \n
LT CEA: Resilient foods vs. AGI safety | \nAlex Bates | \nlong-term-relevant | \nsubmitted | \n40 | \n30 | \n50 | \n60 | \n2.0 | \n
Env. fx of prod.: ecological obs | \nElias Cisneros | \nNA | \ninternal-NBER | \n88 | \n90 | \n75 | \n80 | \n4.0 | \n
Env. fx of prod.: ecological obs | \nAnonymous_12 | \nNA | \ninternal-NBER | \n70 | \n70 | \n70 | \n75 | \n4.0 | \n
CBT Human K, Ghana | \nAnonymous_11 | \nNA | \ninternal-NBER | \n75 | \n60 | \n90 | \n70 | \n4.0 | \n
CBT Human K, Ghana | \nAnonymous_16 | \nNA | \ninternal-NBER | \n75 | \n65 | \n60 | \n75 | \nNA | \n
Banning wildlife trade can boost demand | \nAnonymous_3 | \nconservation | \nsubmitted | \n75 | \n70 | \n80 | \n70 | \n3.0 | \n
Banning wildlife trade can boost demand | \nLiew Jia Huan | \nconservation | \nsubmitted | \n75 | \n80 | \n50 | \n70 | \n2.5 | \n
Advance market commit. (vaccines) | \nDavid Manheim | \npolicy | \ninternal-from-syllabus-agenda-policy-database | \n80 | \n25 | \n95 | \n75 | \n3.0 | \n
Advance market commit. (vaccines) | \nJoel Tan | \npolicy | \ninternal-from-syllabus-agenda-policy-database | \n79 | \n90 | \n70 | \n70 | \n5.0 | \n
Advance market commit. (vaccines) | \nDan Tortorice | \npolicy | \ninternal-from-syllabus-agenda-policy-database | \n80 | \n90 | \n80 | \n80 | \n4.0 | \n
AI and econ. growth | \nSeth Benzell | \nmacroeconomics | \ninternal-from-syllabus-agenda-policy-database | \n80 | \n75 | \n80 | \n70 | \nNA | \n
AI and econ. growth | \nPhil Trammel | \nmacroeconomics | \ninternal-from-syllabus-agenda-policy-database | \n92 | \n97 | \n70 | \n45 | \n3.5 | \n
NEfzpiIyl(<-Ctt+lQg0lHV&0T zFDm(H$2Ibadyl;JuNFsTDJfvpZKj)#17j@32X%Ld`V&5!?Wya-q!A?wv6jctMUa z_u%rt886SCc)Z>L*+XgFf~uu#r^JJCwq_59Lz_xughkuOYuD~r74$kgSo2F1Br`0T zR|`)wtn;~4^~ayI%@AWUGOAfuf|<@QPygzx_Fhln-L>v*a+>oINcHvZ-0fqgccO_U^{a%B$~S6{V?D2k&7rfV^b zyA?9$cg1%`QqYH-FoBh4g7X7T;>mi;u2Uhlbw&_#pMuJ{nCUo?-El|N6&KH;mfM@} z{l!?s7w(YJmVQljP^fL6sTX53YUbb9zZtt5iHU!+uDap&qk8HnU)aE9+@bY?4^VnH zKC7l1?R0vcQ?%Q4s`7{RJ_>at;c%B#nj7%d@LvXb=dusqaOb0ML3W HtiFljasBOjx)N{S}{Tc zKHKEMV^FFXli_pEEBf$BzJ6WOa$;I!sBmrE `bA>*<}-+gPGdPZ0V=a^H1-s15-9Hm||h8Xm2*#)`s{y8s$b(Ce|MM z7Wg5$+WhrxmtD1&6BX#&Njua=jgCr!hG&?L_u8+s-Syb_Gas~fOPIa)jE7AaKCy_L zHRfR}Wb4%EVk+4857Vy;NYYN1RkCd?9&7pT&ol||EZyD=p&G0}??8+5cd={!&2%$_ zkuu^fDsTyElt$fZZp}Q|f3kK;sVunMSfXE8eCASj=FV-{s(4l=YO{G>Pw@c?N>Htx zZd(mZm70%7qu8kVoxWn`xi}Yu4Qv(J =oB>na3gnk(|zpDxpcIDE?FP*IUBZKcc8x2bkI>~D>(J4{h2co zXv^|{wB^BNQd*1g0fNdFMN}I9#}LOsWK04fPuw&C$1qiPJGnuiqfNr3$JD{(Cus}* zjmPyg9c7g6l`S1FiwEj6Bair$#M#MD#CN`G>0vmkCoU 3IetAqsI~E zDM9WV+QA$Kj;s0l`G))!;wix;%Kgh6D@r>kwrRMVna&Pt>vwBo&4^mhpjnN>C>3;z zRou)G@g{ZMk5`m)7R>nQEG4gO>Q?>ARbA1VNGm3dMbePEwOwC0R+3RAmDCKu*WR zibEg8(twS`6mOo%(UmG357*B}4F@=;-3lDmHLi1stR6S%t7If@G7i3-uI-#Ijv_Lz z@o5fWMmo=Une=R+UJKQHqF!e^(p! H}*QZTms~a z-|eOgn=RQoSkKeGMJ5kg(dm;Mx!G^Fv5|>s9CT0ZaZY&cPH;pT68DUHQ{Ql?wm%zg zf_nIKgQH;uF@n75yA9M>)CbL&0PZPg@lPiuqrV06lsJ5ju`^q5rbc>l7^6-IbCcKY zlogP2D#pIeKsQ^uIZzXK@px|p)Lu8JyO!g!-7B-pcrenccwI-AWw^Rx0S>cAO+PQL zsd#%7=zyGhOdN@>S~{{BktS^|KKtP%C!AV<9lk+r;OXF1(!b_2O_`{f$HTocxfuc5 z-sD d XHOH6(rKt7r0#6e!0qNt+8S8;<^qGuMJe!mih2Ta(Bh57{dMi`_;z2@_8~wa1 z{qgyLqa8$nh-teqpFZM&Zv-U$9#>Olp1O0Sfw$YbFX6eU!U^nVi<~7cuxa|FYj|{& z7F68qj(DdbPW)&nD#($8!aT%deC8cfa`KMJ=%5wxeT6;GoM++ofm_RAs)~!!Tn#tV zl?kgYG?aWJmIHQ?dvO&Q^m4$~z8T~|tDugI&wvGbQ2jtGa=GGQVqHJH66AHlQ)q+E z yt_cvQtEFaCAD!U(VFdg%K_Y(A`=L+qq)Ox9J ztDf$H4A-D4lOhvYNNVSZJ9RA@A(mk}%{NsP@`7dUdDfKI`&gQV+GV}<8`d)iig6qp zqp`8Gnd6%_-zdEw+rX`^K***=rH@K33rY2f?u;0FC?mw^ryci9cs#UB9wnq~h+M}X zYjOFs$)dl~`bbN$;8(br1@fhgzDvAZ+)tJaM7Ai$Pjv_!C~qL^#}x<2-;xa9(PNRk zYN*ylCqOu31gp2g`U%aTRf##ikV_+H8$cjB0AHO|GeKD9 x9&dMl!DL%ByubgXe zGrd_1N(Q9)cVMaAsn(U96_y6fqp^r*3>B^{bxYJD-!<2#sXA`nzCa!DA(wW@>pO`- zX1P{Dyn5GhUu0cr3^tXir5FE!5-4y}5U^vZKd4r29nD-sp%mEg$4o~vJm||WHbM {d_d0hc~?pWxQe#n$0ML d =W)}aLlqS88PS~w6Yhc`U@AjD7%66L(URodfCFY~xb>%b-7Ce6e5^@Eudn$!- zLNTS+s|9O~;z>Zb&|xM~G6vhbV>x1WXB?$W8&>dwBFV;^S{q2yjo$Uz&oo~C8gLBZ zUA`8*tm^x(`1L~|m_2;QPTR)=r*oz@Q6EA)pSEATuTb 2#KN5iN41 zKv{Fj*(cUWc?e@$MNNAIC#6jwsV=8T`tUS!YFcRJOT~CW6yzhNiEfIzO)cWtuwITu zuf%L2H^l%_B-vT1HsGbg(ayZGP1}9aa;V $dzIidP2RfUCPY*ra94TWZNQ+%vmE!X)F)j`$}V>$Gxe~Gwf&*5pdGsTQo zMQ$zAMhL?DpxV9Uk}{>M=5Dq|ZT49Aoka1*h@22R{<)&b=qC2LL?9=M#zu*)Y27TL zOBAxX#jIY|8I#hTYlR{8=9a0GWnPM%1I7}@Ob2>)IfC9#W3vNx6Z`TG4GV1wMlhZ} zjQ60hLuLM*b)6~n(BreU7{_!7{@9Mor)KZ73U5uW{>)Ck9TP>&@n~0FI^CqIvaDBE zn=di)&__&7IN>Y3UcPeZIk6uN?8C8?PK)oQ&SlND8N}saD%aYG^QN;Z8_Ow`r1M?& zzf?<%xE~vp2V~UFBjy9Vg4q!D3(`C>&|~8SPlTI5H^}=?*%0?lo8CeDx}dV9g54%n zgDtMC=1koZRwT(0diKK1<|~ymFxO-Uu@COqwgFt_QM|W@H{*H55(!C^cgl@v<}LF- zXcRW9eg;8pH#@Q8L7u9j-A%rPdkjkCj6+CPNFUq)vuO!Eb`Xwqh_b #V5yg=zkWQ+28jk~z bP=iV9%33;gm`K&o6>Y#*Hqis44V4^n^kG4W+y9BKKz2}-Mi>*hC zEic}dRTERFrBz;TQy_UPwcqtIEHq>Ahi-yu|3*~z$h $|@oT7V>^cuyoc-O$53Z}nGrf-7B#T6vo~)}|wXvfU zuA{#lIrWMP!S{Hr1e?HOYgi4}K}}8hu2=suwGbaWtaCu9b>);}Ub5vihoW#RE%nAm zcgFp%GU}n5s-9R0E-Jl2+3`#z#BbWH4ldj*(g`xJG~+`c1>3W0J8fW!_F1gksFlLT zbAwUnO}?9u1s3F3Z1cA60W(s^HpdN~z#Jl0{IIb3uu`E4s)C9^l*)a`ZL^_KpFw+E z?fqc2m45hgmN*o;noiufCC)o#QqY iZfm3WKnY-1VK7q4_EHI{xH!`V*g;ineEK#?7 zVwsIZQ>q>mhw0__YVN2P6b0+@7tnOAUQNd|xyZjswK@Dsp~qq?6Mca{cuxoswOddZ zbaQYxI+j0^OmS)I$qUkKhcp9$
MdlK8mlS~xl2ca zKN+5Eq5N6YL!VGzWioWN^gG<1B<7#p`N4V?#`oxWT3cT-MBDD@F2_`au5Q>ILS2SS zaCuQ#>e*vz;_+f K$QBxgVj` zj?H4qlpK)3${2_{^dNE2zE)jHptyjILO|J(W$H}gW}~ {09dPIQwy?V*z z7hB3Z?q|o|7~0O{6}OW?veEvid(g|4vZU{t3r+3^C3fA8V-i-$W3~J|KX>{hYrk>2 z;0!OKxQwCT%$42QIrgO&ga;wQ({C=6;W7Ks=y{VXZcvwvNAMUVY}%wP5-Yjh-Jo@_ z$%*Znzh8UOC~nGudtS#r=juJ5fdx-cD$@-N(4O01epq_|sssk47 j z2hsml_4uYL=`dxSYA1Dnx=4o1(TK8vOYBeSpmrP32l8IWW@A(7!;cZRTSv%`a@<*h z0`Xfyroro88*bv6vGDb~0jo5$rN=G5N~ MT@b_eF~$V==?f^Lg>E0r)&QC}H^wYh`|j zWkoaBB5F5XQ|XrY2gEEFCYjacmdl3S@s3@8_J#pZYZ7KLEH42sh$)l1cDrxjn9zVl za>jY)K`^!;$+_nGraNZgDzP`n=`S8_7|VP6YWG4AKK<+mPQk6k^!-`}x7VHY4?+&I zBBEtKI`+6zEycYn?$B6SUiU*8L*KV%Iyin87!*W!`ecd9?^f%?oob{=LhZ(u*UKpG z#>EsEn`hHR|0 zdsAwA=>;WvIgt{z{+iNsi7skw_iMBBS=8$5JHK{=M_@PjbgPlANs6|eXd&7x;dYk# z zF2<}VIM%9qbj78VSkt*TSoi4r733akfilVVw-;pGR6)-`P|MwseAK OZ#uwCrN(md)u!dv(X}D9@&fv{@kJ+9FDlN6^}AaRXBAr8 z#eStF TqQ&3&LlFs5xYW|rusBE}#V+?*MX@+0$1 zGB+! o&_eXYA|Xj0Zi= zXO|ta*is)BV1_d{C}E7SQH5vc^=vaFl)@?*TPp*lysAyK&<4v}+mU&zt|+_eMf+Q_ z8`$dgUcjkEX`g}oKyHfUjm9t5mKu=|b9uEo^oF|9T@(-Hs&@ ZH7zhe05-y zrmI%2c9(#(K5P`6GFY0@OYd)z9r(r#nSpN(7%VU6_&{>I`=<;N?Rs{ SjY0hR|M?Z7IRggtzQh9 k4)(P_B)R?Qj3lkdPM z7XR{Tt)Sv~x^Ddu`;d-LLrW$q9u%ofltp$$sGV)D4Dduuf4 xeRFu=6 zknb-k-^Ju0Lzp&3)grw5zL4JU5S$|wtX!aqhC5oaii$E76|hOp@E1+y&m|SNNQF*| z4vS9hcWqBo*H=7f;R(|KA*JYgjbmB0!7+MRru;nSt&(T5FjLMev^y2t< v*aW^5%8F{0QkmQ-hbhn)u-;(}j5A8=oGDx_R+<;K7Ja>8+-w?aqyDDZCQdol zQaIGVrQd{ejl+i27mY4raI;2Gip4DOpJM?P*?K<)BA`- z)o14sXb ()95SNxAN%;cJ;mg;YGsfk$Ur7yQ4(v@ zf#8JS&9ma}&Wc{^*KL)s{1MSs|DaID$T2&AvK*Ddh{~Kcv RN|=(E%GUY dqiTpf!)2yz)_widd=~&_!o?Y}>F=kpu-fL+P zm=l!n2m$}i**6~bha7&d_2lSJ-QRlUC@{5@Q!p7|L%IarEQ#dV%yEn4F_?tQcF2~@ z5#1M1vKE3tL@W}n%Y %StK;VuVCM(Bt{7G@>3)a%c-tNJFj&c*o5<74U(^qDd&*4z%oI% z(Ymi{Oza$j`@kurvD|nM^lz$e!UbR+l?=nOwhn=_ 09|Br6}M$19V*%dRIOp!8kkRxeO2w}Hxl$1R`^f2E-J&y v+bDWQzj{YgCf!lY|Y9dnY#MnHlw8DiOS4~(j2;O zL3~ YKbOUmS(a8o5?o3E}^b`;~hYku_OPJ}wat@2C6KU_fdvUa@Oc!RoC*H*4# zY)E7|w;z;Fy@jq!^7S~=FSVujrCN-(e<{CM5Y2)QwJDz#&mH%FqgT^CM;liAz-U$* zRy$rQxgnw3McJ09TV2e#6R5vT+*3BBo%04UvE~fZ2RZ25iaqPE0u=$>8BmY!B7 1pnjI9%8yzgo7HWp8&|hgH~+G6k?-v~E9eoc z^FVlW|0)+zPwBK9^UU#7m)EwVxSQrbfAVM4UNv5^@=Ofu_SX$4-YXKFWH$1wBg~?P z1V=JfE+!X`Q0gPl+yk$S&A$ZG{Q{eu1tATC@6CQ?W#gRO^QzvL7*Mp-p32ph+1!>d z?`=8_R2jLm+?c* bc(A(a3ToTlspUJ%JL8uUV{mJ2>S z2$-?b95w|aDimy|GO^{*=T{)m1$}MGX*HqM^^h%&k6{Yc?gY1{CMN@!M$j;2rmjwh z?M<7_{z=_K8nxr|JQN#6J~mD^t)A%)+SbH9yf#~LF Q4JA^XTx3t *nuteuG0 zdPi4Nf@qUWu5^oSbxa0}t_goSX==e(aQ?*|SXnrn%spr<6%<5=x}2)*v!|-G@|pE# z)W<5w0}V6Po;;;3F^ku;tZ3~q$R+JuV_3H8qucGBEm9l`c2YR6gikvbwW zH#sO;dx4CDblg)GUzjJP=%-vSXDE{ZmAA;<%@;E7Y?M$1dBOvshBo1OoV(UDgDk}4 zus)EnF|9OLsi!X< z)$KmyL=` 2L{n{U zUGDmxS;VkTx-ofvDhLbH(6?o)s^Y4f9PiAmHu+*IIK^D;bT)ir>sQ}ufm)M-d9yhx zU)s;L9W70*_xP~+h4Ci!@bqHuzTot &xl09R+*Eu0iI}iy9)p!s-IB6!g;I;*hklkEZ%;v* z2<5y15F_0+vj rJ&bgvh!1 z C)oyF)=^0tx!rNzExdOlKDyqS(|L^h`iD?vXNx)L~CI*uda zqNdv)yH7utZH@W@yHtR7&sYknXqo@Qg!$n=&69w^G@O#)oj~Qg#9J0=DFsBeNaaJH zvmluss2nZ!@awsW3$i78LQy>t(fI&8hIU7YF&@DBo4 &4 z*`Vea$>jZRohYR)qa%Fyt{3Ckt+%JHA+?hS8~dlPxNp?jKZd=ZdNp@ILu+Cv^0#di zZi0eLz9%27mFRTtECGt7*ZqqHUm@pQG1tk&S2v{c@%0a*sNY6%m5*FS?mW>s=#}rF zzLDLJSkrCscE3h*TnXhm2ty2TdvkVo4hJ6M-x8AjxJk%M5`~4xXnOOx1b=F#XE6C2 zWylfIkj>GZKc@P3WR>)`0W{4 `eI_4}DBjXg7-9zes*ix!cuAkv2Z(Q1mIY z?Gl97x@s| 5d07Fk}AV^OIvknK~nBmA1m>S
?3c{E0Hy&q}O3(I#bj zKLTW^Mjt9xcK|*JBTpq{=YOKf+xt1S!em&dp{~yniXHY{+^G?}<@N)Jm%2jtDoo=j zps1CvlqMxv{;zvIL0))7=!6Wcu4VnJmqK_Vd3EXVN%FM%?pBv5Po8GcRiwYu#jX1u zMU9r}q`J``;wi`vUXcug#HP>b>lObCC%%#?%I$wPUmWfBc6MOApVw^;+2b(Se<(5+ zWt@F?4Mf%!1+_cbuc@U%jLrG(-MREPP}1)XfLXnG9QbqXvKj!mE)JV)Z#Obw?4L`D zNwPzt-M (w7f5#pTmVW8SEkM$(wgqca69accVMzoi(&f!m-dr%g~(s zD$94yCzSy9#X{VoO56UVxRC^5?(Mi|SBxP3)%}%fOm4Fu76IT-0b3gKk2u1HWFpgV znEN(bnG%N#e2zYCaSaf)_S|hlaR04(ybl{xzsV3sEB@8HR=??oEy-1&j?!aoA6Bnb zS!ugWJkz-87w+QH?CsEm0nkO&Dr}LY9su;PII!KS;o81A0Fe fYaN zaLy=@H$Cq~@c#1uKVdR|$ DJY5mCtlsOskho2cKe{uD #1KpvI?DKPLTAzzE zaeouLWNX|$b%I6m*!Gj%HR_7Zc8>l$*rfJ#PMva2F1_sM+Yh}Tj2z(;4C}e*y{liq zYFFu8jMcd)_;msfn51V!li5Qjhv25lWM;`H#SLkZ`Z3eV0(FkfE<6nQ1feIeC_N`o zV!KF*Z7r0JS>`Atw9yc7R5k<&O-6whb 4Hg!U%YaT27>DDD&jj-KfdneX7Hss-jj+ZyALpnj0st%hlnFmxZpRGQ zu!0`h4bmviyFb0^ulxz?a3!fvw6Nm4V{zE98YGwWrX$vLv1s>xP^Rh&@j0B??hWz2 z !{AbzVw_9{bKCz}q@>r`hdslx4 56u)R`ZVWeyuiCg!0l-l?3 LW3HuMmSJf3q{7L-n+ zBiPWQNM!GA-hEx6CL`n9@YJvV5Xsa0)!g}k=uxOw;1zNL2WlfXx AH%1+amX zvKM}TO;=u7Wl_Mf_QQ58$cCWQy50c`3_nG0FIhGFQLe9zEiq04;40H9#Oq|K2d!h( z%WR6p;T;8%ZXHeP%vmK)i+%fCzIo>td?jl;yIp<4@m3{!E;vk{05aXU*6DV0{Yv5I z;L}Z&6nPHKIa{gBcT_vvsNV<<0}$t7Ce>8E6HrJ^b3blx+k#t{67*aq%7i7baQRmf ziq?s^OxTSAXrKAOiYI`^Cty3Eeojap6HEJZvwR=_{r3%;X95)nwmbN{ bWRGOaiXd2B< z$iJT(&o5jGYt-lSfi{VYW1+F#Ze5Oj&C~{Q`2gGg*MLxv;Fvk`O?vIWv>4d=ljjYZ z*CgTM0c^E)Ma@*r2DiI7aQ#S*#D) CE40$3MUBKLDO| zTtB8q3k309uN6PzS~nUjyzb#wCtN>9gyS;)*k}*CFfLi8fVAO1IneJvM$!y~z@l^_ zCvdIXA0hq`;vY-Ik!%04#6RxzXG!UgJN@U5^Jh=|e<`rJg;^W;#Rc#u$oZ$r{W8Em zLC*gbk*Yd_z>7s6>Iy()(9Z=M-`qWqZh81^2VqyRGY^tjIk^bVtk)>=%Rhwt&>r8g zrBqP)5WGcndYgCvqGSt3kDXS_hIcv*-{bj_FQD8{+^Z2$qNgM}Nzyd`U{nvZV=Tao zH2bMqkp6*sI@OY+2R5gcixkX(v*U}rXuKxjiJh0f#A!IhO$@pl3~CO{T@* nXg{bK3381O!aSg$o&YSG%Z6g#h|`P_+>5R!W+jHx0@f^&T?c)9?>E}j{zD~ z{E_jLb8LeVrDkULDwxq%C2*2B_ZpxXM4JJw>u9HK~>AE4qo4*RnU<=W2`Dw07CXw#}xT)>{K~M}mJc29b zu5SaLALyanke=qR0x910yz((i!nvF8K(@5S(bL?$YKpo)KRh_}%VK`ZczPayROfu` zD_n0bJO>FIb#iLpZ=d*?o81Bln@yAH6 ZLjLTqyKvqImr1b_@GRF-l zMVzlZY=3|w*_LDmInsS=s;j>zhkyOHBodJ6>Am@Q6IXKo=Mn!%@sFbZvBiIRD!)JO z=8s4HvuXU<`u|<(`4ipz3E=+3sQ(X#;ZFwd%W+M=%CFgM-$wHI+>ZCb>@W7o@hHUF zR#{Zdi?2uTfF@aK8*41*^hXX_T*-qCNuV0Rc4@z&9H7G!?Z@VU>R2Edpsh 9-aEj6O$(Tu` zULTe;%}4@3gZ`aFark3zppmPoe9wA5-i48-5=(5=ya%9vcHf+sarS~Benl39+f#tN zOH~Zd0;mXwv@b{q7m|pW=SXg6n(Ysjw~7@uj*^(^%58EuhO8p(wV|WHbia(4zK? z|Lqsa`YK+GQ3A74i_-x-ittDtC9p6Dk4qG9ucDU=lr}Qxl>7k6SM694oTpxlORG5b zXM=wYaBRJs1~V_R!}=aJ0=fQpe)YuL?zQi(jxp7*6vML(|3+?!X-t d8Rx2}rILK1xK;*;W{0+w)l+rgB_i_Agc$0m% %&hfz$(Eo6Px>i!Wtz>~D$Crre!DVjUS~fsM)9HM_!L2X)5&HrG$)1?j zH^AM=Mx>kKbXES0?2|O|h3WYnO*Tm~$l;IeS3I7d9(V&Dz)y={aPjz|!{ssAUy}2i zBRE)v8En1cl6~^w3~2QyTGT%63Llcqvp;{j0}uq9c9uJTI(M7EI2sSsBXs()oOFs3 z`?IC!rJM|*x{aVkET>-Xi`p)c<0XW r(5_|d$@JFzJOvKI$xdS*xB$gy^ zP5RzjTxx8t@WjH(O8eWzc>6EJi`4ad(qpbOLH%HMg|V&sM6iD+jwY$*Sps8a!fgP` zR7~7!Vms6A`o1&4W9{~UGnOYa5j~LcT2aUk*Q0HmrwJfh0K5$Er@zaXxBwwW)`sfa zfsq*5nLr$90Ldp}Ct9xJS9J;^QrCTs4`wc1@sP$ =qY_2W*ecJ8K}z>4rPoy!`#I|8mz@$e%iK50)F+3lPx7Uw#J0 z^{E=MxL)llr=>ILeCrG@ h{X&GWj_M;S19O2ky$)uu&T#6)wb%_ERu&^e0AI>mooDkk C1SN{TJJg G1yPS%Z182YPtz-^ykD9vHHPD3BmcE^QG84BZkg)ey z65Mir+REU @Qp zW`s0kG|y*1juw}iWn}0b?(GBC7hwbMAYAxeaFhnY@-4g=-F)53Vll82<=q6+0X}Xk zfw8zA5y+Z2cMH$_rYj(iC~2Pugywwz!=2@>;-LXULst8b*L1eR&MgYKs)Trc`$R)- zc(=TKy)j#f1)FYQM%1kCkX8xjCRB976hpO#9i%}%C*h`v_5-Byby(m75;#|O?2xj+ zD)8tUjDQ?4@G$-ZPANv+doqXLgY{X1u@h`<_tM3GG!VjHFm5Nw`k1=o(&E!+F9Kb0 zTKM=na0E=xz%d8w23WR>E2^CFpDoH_d{l%^^xdpfjMRn7%H}+Mi|03Z0*eu;#E;Z- z*1{e;Fjsc~9CIR(ZOul@?RPl^bybHuu=@CeH9{cBp>SWX-l~tV@p9r3^)Yqh&1!C< zp+V s1@xjh#J1$N&V8(s5b!BnVPYZOcm&c{1v$rl3Z-$+uysN16| z?32aaG6bSI>Ur7pD%}K0aPM$DUdhXd2MpsyO7wV7$^8-}%Rit^{Z^Z9-0^KtId9KU z^4RjOL`0RZjY-z<`$Mi1euB1a{2_B#l76{Q+(Qo;vEzv!v5yEnm2z&y8i4+ WNibBo(YedK7T|wuAje151;l71k(*I}~``piS&MXL6GV zoQ5E$Z;zb{iU{DTa}7E%e~lj;Y;md`6twCAadeGI(8fvJhWd%X3VD7{sOCGV YfYJX_&t;vd8(0sR^&$;Rfd>b_s-$OgPaL-i6PYsNiG#7T zhXhHoWUdW_?V^(#!P(aq#wiXY;+* =|)4Z|y}}V`osfiJxOf-3E1DL9mV~_m;N;PP3E1`lBsP zk3K*%E~akP1*oYRk=RfH6^oreLoY*cT205@C+YY-pf>v{4ixa!>ej&YRd9U0``9+= z4O|{s@`*YDKdEniJqB&^f)q25w*bnXe9nvopbua<28REQR;Hr whwjf4*p_AmAtSWdsv9NLHar*?lk({|Hb8!k~b+JaU_KOdf0gw`bo= zwS#tro_e0PS|55#R>@t(@#Ylny}7I*QDh|!J#U5iAqcBfaGRl<($xR)oH`6>W`%p> z0bGBl7@8qEk!1}^v`8@F#s%4LQ) A40n7$n2GtIWophiZ!pF6mO;C{!m% zY8znmSW(6j=!RiW{~4UZ4hbTGob_d`0FA*^9eNj>H<2m^P9C_ ?I5}I^1-Upkta@~HXU9h(PK47@g!wPT{Bw?l4!9(T@0o
gX3DOuoH1ysNWoZ*1DUqi0vgC*|ywxEUq{2n54EYo|j z ye;|5@y$$qmqcsxC{F|#;lpJ$-vA|VYpg_4^0C#jAdRm?V zuahJM7*ma zwY7!i%EoR*gX>tTo2>a6f1Imheg^wd19$B3Z&)~ohTy#D&MttB7LSAED=YmNFnaRt ztjqs*kxBYFUkq5+oVi+%vvt7&-CEbNM98 ZKB7#>19Ix8{YVW;+ znq1>`Q9w`x5tj%^$0bEN0)hdg*pM2fcTl7^ArwQ$f@_Ha(mN ~kMxie?x9Q}h4zVPvt_x<(fc_ay-4`VJ`xAfsXZM^GWB;r}p z;xmXMk*Q%dU5-ym+nC~I$v_uGq0$M&D1UnflAzTnt&>*#%t&~P;_PXtUD(cXxHWRX zm;i2W3dC4lAScih*#mhx6apAF_ =t=9=HsVGs!(O1H3^lcSNx~7{CVRo;=#Em z(i3Lisc;&(z>+3(u>l?G=Gv)S(K*pvhu==M#$J;-1j0rEV?d*;3ovUoIE;emLi?=T zN=fae!tt({iGoe|F<*7vaA7By$u%GWC}T)*mLH&$E^NvX>m{|OhMP%kumvC{Bn0}X z=D77kY_Awe{0PNV52R1fGN6@5K!xldGdT*_NsOq4uaG64SpmLuA!+8&Mm6p4%*LqF zL678+^8*2Zv-7L`;vKd1r|oiToPo#7;fXs2Q{AAjuw5ka?eDkAG(DK!@9~b^H+Cn5 z;VXcMWnn2JTomwp#eTDWyCim8oFK_;_=L7kR)x*E;=x!TkpPG@Nq&H&XtWh-arglr zmu`!vnF1Rok8By_8s@}qi{q>~b-}gZ1S+KiSiFJ~7J6I;4kEV;@g0{pFlA)1$43Vb zDJargAD=lc!AQq}V}->xsg7F*mhnMkOX4i8$9Y1##vn2~O#XfH &PH8579Ki6OC40zM8kO8o(}$Xi@)CDuZ8++FaFE*{4zJc zEb1?(@&Cc~E9IO>H!z1=lY*D7ORv}^3Jyb#>rnJP45q6yuF}ib*9-0?B@Uo6AZyZH zq@U(~Okx-RrxO3==LTk;dXTNJm%B)8_Y6Fep#1bR_Wbdm^c0E|+MrZGRJVX|4S?-~ zvZoOVIpq#`RI18t<`aK>@E^Y#OhxOFN8i`$zXn_26@#lX9!`S6y-rfem+C|U`EhaD zD&vwaZ6Am{y{!Rtj{r!op>R^`fkdFUGx8?+xLYo<4A!FhyZpOV(|*IHuyOlJ_@HlQ zz$eUPWQwwRvR)3U>WRMj{%8%vhJojoW=>5%X{F L_}D2v@(Hyh2X%8~OiSIk7RbaOkjAcZUr*(dEs40oyK>L95&A*7<$-AP;g%b} zj9Dm^XzhF?6Uuz#v~XApxKI5p5Fc9Bw2&}rBt?lcX)PB)kR==mikH7Dn`mG_VUHB* z8Bzv&R;D-sx)>c9pA}s)kKfQwQ$)T4j^s93lPW3(LlcU2pqQXx>nxWbkdq+t8~H@X z`CRHT!vTu&X{}g~ht@xHNXtj$ VB`Jms z)ZJp1atSkEFHk!1kAUP0lu+AX62n_eh6WQI72(Y}Rg_BnhPE GD@y{~{k$v?1$6EZk z*n)d#ochKhaWqvx6ggJ1=Xyrh9bM_;qTjpJcI2`Y?N^RFHZB6f<~4kj?{Nq3Qd0+o zwOl3P1pjA}9qdI4o9mC}kE`kg{{|ky S!{J(mkR@BG; J$lfF~ zq%wYHWIE&%of;5CK?ViJLCy#;ov0mYMuAN3e*NKAm->+^C3W}RZzP%C|2OCPdotuC zn+9`d@|pohVaxvOO27~t2WD)#WfC?isow~cfd2CvNLB~6umwm7w+elExhz_|B${Fb z;);V-AMcMeMnd^4O%l4hhPret&7Ao$#ftvWREl(lf_xGPtwRxvxQtPglmf~V-qoI4 zDhXQ6Y>mmclVm7K>3%ct=I0%2fOJ`ML8?5Arov4wLBV6ZUrkr|Utue-Np+V&YL-%` zd;YkCtRRb`J7;lRF0>Q|5+!f6w(7B26iDf$mHdvIdrX%D=bXw_=RLM;0uroovdx%( z1y!Iuwg%4Wl_MH+> QQ27kT5e-+lL&)NN2qQCaw|BTUo8JS;J z^p_v}?{(N;j{a99b4)uS{a2{=D;E7%Tvd0uMA`fGR!$^ox^>|NgVq(2o@DLzfO;3; z(6j(z={Z{)uM`_dW1Ws)^p3?K-lg^sB*TLNy`~jFWU}xfR5b6kALs}+kf<(lkNkno zqsS>Pzb8hu?hDjskL}_tMJnZR1_w@I%nhg%y@6ti`&I{k90OFolpQF1EC3W43_{o* z?0TTWF`QMW!*ra@U;J%JgKV2L!3V@iWk~n~ZF9h5K~jnPAc%K%^_|!P7>h=qL&A^_ zR0ND-kID1gJ+9%}#~9p0`L~pUo@W^l+=u~eF;6S;9T^+DjqCnhfQ!@QJY~#rX_O%+ zMat=*Q~*fOd%Li?t1Lj?mkBVL-hFnh$9;S$UCGw`**0M1Y{*MZnp&|rk)O+H-pp pU#9M+usfr%N>IoT!}myQ
T-3~@2i%I|p={rn=?R$`Kdi(38)mS>>odhbPs$xY$igLa z?SYuet#71}@rybMFIu*kN>YT^@do%!kb}=b5**;5D;n!f5F+eRRK;u-YSj8sk zQC(W>Wr&XWb&tY46x3%vqUgoIUN*s z*_!p3w^z d_tFu6eu1hB9BsOQWtmqk-=?$pC?&rNK22<>POQj(qJOlD0 z6dDy;R0Fbm088|7>q%77 8 z8N-ZDbCQpk=|ZD%u;(i!`x}|2vJ1S+BzAi}K|k@i_6_+{Z|!xS< K5Gmvz}y9-XEFW*Gjk5g ;ckzXB||U5sxijP;GkRP*&sffxp;|2>$pIOS?_!G`#fNM zfmhr8$p00*OQhN 4{@kbGDK#MLGZ!6FR}nyg|TTD_5)z^oD2U zIR2}Of;MS k*z{fDE;U%u+1bu<5(YlML;IWD*1d0@U^2D2~q{-ZkR(i3&aW(+3sXq 6pry4NwGF=%J!J`NGU7Ym%x Z(jNks%9P*9khhUcngl0 zFe8thp#|npl*~8|N5USF>OcQIIwSS)gBOI-jpj+!q+?2JeQ+@3&|^?aaSSD`VH2pu zbXBj#95b@2gd$A~SbU*5W_aClpN2X}bf(V0{g_)#VLnH;>c -XNwBowZ=%ciiGuO7EgD4)Ut? zih29*ebFKTR-)OWP|){dyz){Rs2IjM8jSsWu~7@dz?QLYqPU`P%n}v_6Dj{E{y_l6 zMp^{=13&I~@~v^jL!+ZSy?iETIMeO_7z^^yv3%~rq@GJ%q4N!dWP&7gq(RpqEr5@a zaHBCY&HD%vKJtshT Ji-?f>*SYJq3AQ8NO0u<5W2+xS?X*_YhyO5We0*x z;mK7XGPl XUbP17b56J1y05lJOZLi_lkgMPfPlfszwNCnpn34^G_p<610s9j zB;a)E)hb=`UMF?p(K^wbq>UC0sLDScez7>b1Md$tm)gF*50tYC*xkQga_km5p a)qa O?_ zXLf C$m#Fm%L=7y<29#|im>{PoDyAX8Z>=ghOgN=cJEnof+0EC5Y)BL?4 zha0V3#KT^q?qGIS4+&R}mFK&j_|0~pUxmwT%_B!H1_aSX@))CD!44F^!sef4fQe9l z?iFDdJfUg_T*4;YPXRhG{~gaZvv(J=5UryYR$p6cT5ZZI%>|$+hSd~dDVUL&fzuwE zmIym_q}oS$N@LLyz*14&Kw0)TEPZETBsfbjLg^dZ^hSu_y}!}$4V!OWg=Ol;5c*wf zB)rWLy7(y1p)^6s-q;r)Nz+6Eu`+?>;~wRETL2|mlBj7+&byZot%Ly@iQhmrMal_S zrP0lY(%}dhoyB*e9!IlWNAKs|x`?~PBMZHvMUN&1?h+}msN?S5_(~OAMC!I=@!6V& zNj>a6ZI{@bGt==m1bPu{^p>pozaWK3cLRlR!L0C)+g6Z|*Q_}6)tVo8*R*ov$!#qc zFOw1{Na-}-9_%CyfChJcojTBnYcGx@X%3PCx3Cpk9_z2$B%rWb;<_uKz8rRsYPZS5 zruq?Phy;s$@MXrm*mo+w6YBpVB_QKumJ|W%__AB3c^wMBumwm6>^tPO+W ziN@o^Lj{2a4f9CtCc}kYfiCgELj~(YTydZou0JN~Xz```;x3@ec<(?sH !A zm66>FiD?itsu>>*3AB=+itd|Vm<=#4oO n1n+vFm>D<+OmwEgaFN59PKP Lqqnzyzwf5cpFuUH8$?>z)btWM# 1xN3!t48S{>p$r6w5M!7e1LB^Z`o(}CxxVH%IlZZa3AZBq5R`6*G z^|zjtD|j3LF;}By{ h`4h80z_1r`TzhsxgG@#a{kdcJuUARQ>%OY1q)-Xz$ zCDmCGIW^eEC=u>f#9U6Wsa-~Hk5o5#21v(k9jt^$q8)c?-!; `3^|}ivK0>=LbM1dU z`ZSE{-mNV5cV>)V EKxA6ljvwNM{~};irn_<+4V;S;coX*P*+=q)Kkv?4ead-KE-M1EC=S! 5tBS%KVLfcrM9#<0UZLwGREC~|44%|cD zs*q @7D~4!}>gE^Q{$qW7vM8!qwYqkHhYBHappc+s# nb+k#{>0e@tG0wn(CQNh~LjqrEwGJQ-q> zU+k-)oe#i#nknpkqSv4BrVuttt#}gbqbSz}dlLm!sGT3rBqj?%5T%E%#2r_4V`^!W zgRpW7gnSzWny`3LyaS@T^&khVdp?ALnM{=VDUJGMqrwxk5U-J +HYN>`&DoLm|@gAgsx+d)9GHH&AwW5|$sgWo;;VH)2(B zUn2l3(M+k7gK#8D_@}-FS(6jHoMarO)&Rs$OPt|Q{r(CGT8fLm|4iKel3{a W4&Dfx7ok0}B8 |j)Iy?+OXgG`yDluGv_naE%^wlSylw$ z%ie14j}oIfRL&0Bk4098tpU)ho?{9n6YO(pd&NNF)o}4)fkIY>$$LV@Q(hB=__(M{ zQp{CEVK7GCNU}_GkE;U)eV$3!(?v6^CqG8@K%Z$FO_u PqN5lu0=S&?jtIFWS-zdF($O`MoH z@?xaai11r)+%4if)jcs$J~giy16g{TbpD%`INzrM_InIL`(4e4UBl+w@3 }wO!1J{%mzZV6j;FnYsjVqsZOGl3Mj45o1iGA-h zLrhYt29zCT`<-U8p6En``qaCM!bW!=z!R$c5Z0O!X)Enp6mKeP&2~|)lg=)Q{>nsm zKTarjdqTsQ?1byIe#)G>3#H$xqeZ@PW#f0o;`pTgn>&>-NtVq^;lCl @Q} +I2n}vw3t;IW<*Xo?GTL_OAyid 10 zLgxblo>PVB6w3lM6+vHTxiO)E6^W6t*IQRA%iA6OD{uOX)wKfeAQR_tzh$!$y*VH9 zB)!IOU6Xqtyv<;po`4skS1A`mP`AVkjo)IZuAoBF;EM^vCFb{^xEK=Nd&gC un2ELMg7YdG;3$fQYkXK5N8tHB!I{I^>t=SvXe!728NdB5i&QqGTta>bFBf8n zc1U;5=hQ*%gGO%KYb&RrPe12PTMfcmvG1#+%qsyUjQ*UjHv-i*ysx(J>zzTm^mVsy zdY)6;Yp)BXU2^?%k%i`=5w!&(BluCrtA@^8SG#ux(zIXYhQGm3F&?NO4r-Z4KL#La zKNm - *-J=A0wUFn9U-A1YqtKM1Ia1A)Z z%?gQ)`m`{~BpVAkI}XH|Q>$HRI~6&4UEQvDoiGkkR%yUy;F_kw34crk^gz=uVb`2t z^=4K#Pk`F0Pk6imMk|b^(Z!6_ivM8Tm*zvF!TL!|-gKz?-6PD@_2TT+sgE2r5z~k< zy+$S}7`&_2jJQ9a&V`$1x*_B5-_0gvcB26Kxh`?qOD9wqSnvR^_o$1xt;xQ&Q%
Mcxm~F zBv^~?4$ heS`vB)kYt98%(eqkMLS`!Flg}rCCuA3WkN$YSTG}U`5lrS7m6EpHvypsqb!-b~@ zW^_`}BOZ 1<*jZ27=kfvZOz%5x8Mp4_$Y-ZUk39AyCL}1BQO);<+o*SLr^GOy;aTYEs}Klp z &P=8xVk&wZg z9+6VQVzdGl#I2l!-bXG-v&ls~VPXe@d)Ll)pkr*6LmQiUWHkcJB>~H|4H3y7bWl9l zFfV~ss=BY-ixUp_8Om7XR4q!AxEJ^qS9( P?S! zVcxo}Dz?|u)?Cnvh|W1HG4p`972Q)3&C~~B*6d2d`$>tUol2>uOKQK~I+)|4Jw< ELf1lOI}Hl0vnWJCR^+V{ty-i|JW;04d3(Wv62 BTG2ih6Bw&vPt}EpIC45Qc>jILg$ENy&mY}TAdmBy5f>a@ zP(xCmUX#%|Tc`TGs`MewwD&SU4?=gB5WCM8NXR|g!Z#Y}DLAoLW6c&D_cFRz(RHxL zwzLZKaKRNTja;9p>K%ig@lmyKapD=C*uS}3iLD)KpWH5-Xi$DPlP&k=Fkgq0&|Mcz z2;?;CDHRtGv+AOH$T`gFbtWG*D;Aus)KiL%hK2Z8SkQOPQ1W01PQ(qr9-sIkBm7`1 z;1F?dAwRWEZ#)OXM-_>kKTt_^?-W=d5pWLk-d}tdkUKcz+XLM)bX#9e&6`N~(0jMa z7d&9kWzkF5n29$WPoqy`<`WNvy_sBco-R-m=RplN>e~)mZFE=@_qQ_-hU=oAhYbR+ zi*~k-gjLJV05heTRQ$jiQL_l?xEUuI>Y3gHBhHLFOj@BbL9*4g1)rsOURBs#S=)pY z6F^=YTetP?h2Litf2;Pq$N%IPMzk{wIAD#WHXR7E6KARb3T A)pR$*JbFLKdzWlw{v=P@ zPD(>`Gy~SV5o0zS%6 MEs7%KNhauqKc(I?Hjvb&eX#VIY! zKe?|a)F;f}g?Q-}SbK8Jmh(9U#q-6+3$K6&G)(iLo4EUEqF|;$SBRi{O=o0k+g?(5 zAw5mz3g568l2zInpPftJiIXCDn$u&5a&{AiC+0l! x}(`fl}~wb$qUyF zPbo1Zt94%gvn7*)&|bccO;+-i%(B2XNEIn&HGh`>P3p=5Md`kW8mvxZP{Up?Dz1em z3%XkO1&XijVGuiQm`%h|Dl*6;HmlZT8X?7QO-NMm^RNeVhtpE6R5os5?`mziCNUCu z^LOsSADE_o&eg&C3AN^o6)$=}9|^YasfJnk4#27@)%a^qCh=Ji7T9)^AHVNP7?zE| zFGHh7Hve89#zkoduASL;h#ya~HMV!6;_-n7^z7dL`8mBalnmu&Jkk+4VuL8x>1z_g zbjEGzHJ_!Bq4q|JO14`OZF>8ryTpVLv04Q+GATk3A6epZ shz|@n^y@^OO(8Fm2QJ6pazG|QaH`GgCEZ2Y=)*wD)$_! zb4zH>ALw`~VH t>nH7{aZ!iQXg*vwZ69dh`B$s0?}?n3IZvqkS!%rlT2T z8h=XfBWIEya=?lb5OcArI3F`t*x;HYsysKmHe<&G0iPd@VqRRZF%7$FRNXY>`={|% zGV_EgB_HEgx+!^ 5J;=3nLf}V#QpME1|i=Q *ivo1LbOYbnQzb}Q2nD&_FT31rHHFKV>ad;mNNuv; z@ )^Rd{h{Y!|Nd*4py3@4ql-Uh`~(u`N7XJ zBBv8wL(*&l9Oq;PV@2QzdizYWX<21v#c%Ofdp}VS4%&|d(6h@}$iZl3V{zlEv#W`S zLi?n$0ROE0a>BAZR#<>Mi2c+cv)<9dZCRPeJ{+6$jp7%jTwAHPX?aSfeeG{~K8VBS zdorFYIJk_s{0zbN>h#kru9^m_rqrVSryhX`iwBdw$|{WaI^LG}93-yGw22idv9j~* zB`Dd}-LX^POpSf7NXqhsITQX-F*2L;pD`s(4I2Nb9L(gxo>HP?7ouRsuxi`}M+ zjCwPvS-{1iDio3_@1AVwESdEZDytI+3KS-*>4|eH{?K!R!LyUIs+c793uU)f=*1U* zD`meD>CXHSPLbAPM~Dv~noZ+f`mTH5g^?9w1W&zG&gE1n2uxOPw#SxyG3J6H#d3G6 zdIXpHq~w+}qY|ID;mwhOL{+~4!{T0?Y5>f}$lN?NlIgs&M!De3&Bb!*YK%QP)10|& zj9Ei6uvuU@L;d;MQ4X)Q_Eg%p@oD4;#yR!T*UiiXcXsvsR}}$E(9`4myw~q5YJS_? z4Y-uX&-j(f%q4rVK>%99LoF+~@XUKO>Rd*E%uEgbcRADp&-@QZGxDI+WG-@DZb`m4 z5dSa@#!w#c00F3;Yx2G Y>q(G)`wwbB%UP>mW#h*^t`Gc z?2FF2xaekkjp%0h<`e%ONrXH$$-bBwd*LQ)P!?NQ-5no)&G`LA*v>5yt6ILd{TW9> zf_;`JpvbCQ!&r9Arw5!^JI$Xg&V0W>GA;;;pZl7! {|O{i)+E2liU z?G_Vc@BdED#k>rwDfDLp&y@xBJh9stIFA@kOU^q8uXC1j>`$Z^iyCc@>~QeF^^ue< z 3HiYt-ews#Re?xz;u`u&N@?f zlq7Nw ;5y`f0wpTn+N7 zYf~7d3Rl%8-tq1sA9VE!e6j;3P|RX_-D1iQOWh1?sTzEBVC4U?b!h#UyQYg5~u@t zdk(0N2xJEEJnr4toh%o0C?e7W-qGQmMwWM&VG^(PaA*KbG$l#Z@$!NhoBhhWXvYI( znK$ibYd4FSu@jkdVRA+I3F7w&*^zfmuL00XD1`SQP32ph)39(r+m`nGc7>hN;gn=B zlvC{ULQb=8u#?AI-u+QB!+aeyu7Od3AinV1_6j@pW{7D^)`D$z?_~}9BJ r+sD0!xMfw@ylgG$o%Ku_j|v11*S`8*Z!fY z1mS0cukeH)oI$_l?ivSDR`~%DTlWHt%NHpi{9DVDkU~Y+hxj<9FRqZxibRt)xT~>Z zzGGc^?HdC$*ZEID#B)R$A~d)a!j*=UH{4b+?R40k3Cbl{1cH{!{i>mBRBmrYK*wc9 zdt3xgKsi!aazcr1u%NTLZ@-{$)hAIl!NWovArX7vT9&4;7;lxQkO^xQChuP yAN9+Uw6iMF4 zZoBo^uFBSanKaxqRcFKxQGdc8u8I0f;#0h=b ~9kz`WKCQo0gmMx0m9sWV| z$~pJ%2|djWJf` D>yU+6bzvunKNG1?!aT(q%Unp^)!}<0rNB=f7-oAXUNJlGn zi~10B9h-gnZU@4?H-f#P&p#zFm;TL#!VRJ &c5dM*7-YQFz~>3{E{l{z=g&B9oQ> z8SAr$>;CJ$Lc6AZSyV1n;oEm&8NToXE=N7Cil`EPvbeLA47!L8zbW)3>{n?x=-bqz z(?rPE57pJq@rW3l7w@ILJf3Lt)6fldW&UmEl7X3fh&}`}6@^vxE6>Y`UlAb 2sq5#zfCY^uq7dt>lV% zNcJYrEXWJC*W34IEOwb}MPL)Rb5hw}dxrLUz@usVCeL(VmH5;(8QpueJb>n7;4}fs zXZ_Sz6O}C3zTqU95XW|k@JM|f#%X|nyHRk~wtXy?Ja75+ZHCmFdl|1xpYvSTsh&>r zYL?Zo{Ey|dkElUfc3`CTS@qi XfDRr6fvg~rV7!* uGkMt{g4oEuXBAN9-6i?`1Y8L)z7k z+#d*f8gL(=ljm%RNp+mV*VA*wI|3^ACzNM$ASX4zhFy5$OBd^>6;-UfkmNcFV$mkQ z?eMhBu$ *Q)+E-df#2*-D#dB_@b#+J#i^!ck<>Hbpow>5 z|IFck5$3i?Fl Cb>KN4vX3mGL)RqG-g@4adj3==t4`2S>elw|E zhZl@Dc58D(B{Qv`)^&X~F~CN*xG$sNv0;lp$(%~$!4PGfZKDtn^w6Q6e-Q4mO#l); zh3LSQj~QWkoO+sy_VC+6pL$6nsg8|e$pU3-{FKxcrr&_RkHIkX$?JCk>K6N*24Q|0 zO$%RQ{QqmDQj!r&4FQ6y-?;lcgB$h =M2vT z 9^BWk)yI@0m9ProD49uGp(Ry|rH$ZIpfRa*) z`Q_Nnf6eL S9NeiH$R<^eaYSD-*#%)YwLzCszw?zG6~S$d2s$_6q9jGZiQf0 zu$p#eQfI^^n$R;@x-Wiby+DVmw(uqF?5FmkU wl|_=PjlGa?7_kPk+PHg{ zjGU4N=oQ&L{0M_mo>Kzf{?9L0&XH53Q+@8%{GSK@ (D$Bt((H+A>gR6Qb$L#`W0WxCvbbMYa1DA%f}<~t2`cP4Nh6HZL? zZ$c!=BzdilCoCe8h_-Z3-G1E0w;ApdV)N`J_}w2rN&iTl3`%<0cS4y2im~97i9kyS zA#7Ck*JEqzT8vJ%#??k2oJ8v@dT4I%pP!j8idzOHh(CPRH7# q~(F5nvl1~N3m7N5q@rn*W6nAwI^k8720vz!9ccml}ZMKX$>&|F5 zoYbk@Ma~pC@1lL6!>fTq4 svX&Ac!@W49k`u9IZs}i(ars{?@(iEor!04jO z+7RnChj>7^jTkC0lGKsJ9;`PfU2`0{-a4FbkOaJc3yY76h&H1Ln~aNxmPwV9Th2oD zli8cq7EONpqr1~48B2tU;vFzSRb^D|lH%LMr {nbtsA(Z`Rv(E z(t^k~?5m!xbc{RD!s~-;rp4U$-kF!n<(je}!F9x6vAf@^2z}wNxmf}r3*K5YeEc)l z-`_g>^QqooED0=m@Z(!@%B=^MJ1b+sgo$p#_S%$h_}catW{VfjE6MK#oJWc+xJJKt zf0k_uY_3#p_y(?p+UcB7mh MZ$JeF{g_&w`hUu^P*26{AT9Np8|>z?4z^9hlCZc002K} zvFUD8ctvM^QaVGr fQ!P0CEQCB)y4H*fPG#i>E(g+Q&u30#i9J?d0uUNpPacrZn#vzcPk}Z zGl^+utT~Xlk?JNVoz68 _=fI~#hO1A^pHgzb%ff4qTKpF+*u4)JQ9}{Uqqi_k>GjXs5n~XoCE=K9j5xJ zbg2nI>8I}y?3hI`@9CKk0tM@^G}zGUxv342z(91;9hv8iGyPsBJv;-(6<5ndV#sTr zZayk^Ur@sW w8@fQSHxuv zU7K!{D<}sSp6-bmnI&-fu9R*h&XfihZQudhe`I7S#O?cEEhkq@IpmV3WndF_Ht*M5 zPrUy0@j(WKoUp>htB-C+#KgqhR~!s3lOyJs&_58shxwEC*{9P7W9vH)ISsn}NGk=8=< >yPV zyj&7SC&*`tRNf}kdtzcE`|}GltPeW-PL4B3gzRq1fyLrKD><5bMmtrRf2D61d_22t zWR~ZLrH!zlz|XkS{P;FVNrC3}iFDT2PUXTn0a6#HZ2V8soE?J*wOYPI#L`N=8E2-7 z_iJ(Oj=y^3(K$jNs&7Wcl)=kNHhgZq=0niO6t;n>t{%sP`*(t`%em&%+enfz6y2du z1sW|IMl)b8azoqQ(z)#o%WP%iSiiV~Yd=_DquDgi1n(F4_;9(}mzz!1cE$+RyZ(kW zY~An=+T7|AgXTsGkR_U2p6WhTckOV>CNX=`f*-%V%)rWXO38WA`DvkMl62{+=N2IS zKaH`UiMv72vhc_0S(aOxaV1J$D%wL;V53j6MneB *Q#04CdSki{SkgiW)4m}IsLk1(j^#CMW7wO7-L|5b*?>Jh9vo2p;}XX z2_>zB4wGaFq5EB~_Syg}U}wy>NF}M(en7;|6YN=5Htx5R`+@a|bxL>E R+qa^LBFk&@@-D-TVt)jAUhTz7hX#&koaQ49 zscv_$ukwmL?g)K6_@Fo8Fa89$%C!o8^=hM-Hc^lH{4A$yfy*EwdFvWwdPxSRjJ~0_ z&6$`ZX=Xp17t;@|urt>n{KZ&U LJ+qen$9}M+s#uC(no$)s_EY(En<_s~ztG_V zC8Egg0T FS$5%)Gl$`lU4y;|l8MCSLD&;`9vay__@BKtNT)9krO=ElQU6emS8tgpTcVS3h^6 z#QueEq{4ppGb-B8vSX`%QK8Emqn7KQd2~*0C!{B!`7FvqZ?hmy i9mP9c}WRR3#wZ uwTQ@Nk1BNN}_;J?GhWar05#CN>8h|Ln(mxDY}{-uL-FD)nb 4_tlPbD$>pslH;c9lxc?AB=*;ak8`NMtel;1nno5c_w+Kj!2W1Ygo zPYykLO9Kc#GG`7zS;q6zqZ`;;^f%@?jg%)7ByB@N$#|Pzd286lo6c~dMy|-BvY*8V zyt_0L=#h_cyW_u<_-t{E(LyD7(5^(T-m4#Do9q_S|423QuI1Kz$3rq*PpR-+ri~9j zx5>*(ErJ^_-}l`3xzyNc?0TS#A|XQ=D)iM{yWtekO_?SwD#|xR45NzdTr@0 Ac5ZY`K{shn_FZ@_AeA5|Fp5swH6035Oe zuF^#TzjRrKE0@({Z4% 4!rVhydZ6usPRWKbWXf0m7b#F=shsYxX%jZ?b$$L|rZV*ho=DGY}(eBvGVR)Kh6c z*hckixP!1e!*#&P8g|2H+s>PdiWfIW=cyek`Gt{6VWQfV%lx(EHcJk=mma%A=kA!f zOyPq=FVvaTJbBM%ymqi-LIqo|nL8U8U$#0@XtFe&15F#{E@EBwZV7A!KgiiGm*Ib0 z1#-FCH>L>B{D6h%iGbZjmXD!779 cPv#+?M&FZ~8bI#t_zMo-fYR+tZ?<}j-SI>N^_o6l5C>S`Zn%(B^4(90zWoT$I z61(5BUXxJp)loKXEav)NRG?Sb63~B#nPqJ6yzP>tl>bb*ZLc&?|MSq?`h3r*JW*XY z3pnd+tM)LP@e2F3eGtLgqLIaE8*h$MOivtyXH##G4?tjx@ivG=UP`}f4HgLrr0Ci4 zL%|?O 7mn)EB* ~zw4gqD25xX!IHhGv(uaLSs2q20QLzEqRG_7qM+>#Fk z>%z;fSB}>(LA3jm<9yCq!yIrPh4V#khU{2mJwCEXJH cPkp!B*w z`GdRTL{(vZk&~gw3WG=@>$lBzE}2fB?Ju@T=<8x{K#D(~eeNm9RwvbPvLl3|hAlNL zh(VM1Q=k6cZG#g+9@zF*c`OgO$iDcKfuFUxtbwU{>lU#qPRtdg-6)BtjTRODT073? zMn}0D9rIAQ=6uL %N^yq46~t{yd6GxKV{=G)0=RX|C%`)7?)tKNE!e@f4Iwv^r_Nmw&{C zFS*Y#lZm`&{}#(a8J&^7Vq)!F P2$9 ^{Kh{X@i!3n`JApg{^0$2QjxV5+DUuq*h~9=x^8YV<9P)Eu@^sF;XnQ^IG;I? rMu@Zg=_mjD!8=+YK=|Kv(?|4fBa0$~gT2ON;GgOpt=mO6EuZ}_g4u-D literal 61347 zcmeEvXIN9))^0!$umKwd6a*9jK{^UZw}D8L-iy+^Af3=`C@otNLJ@)rp@Z}qKxxtp zy*CM=L+B9dol*BWd!Lj0=l;0QbHD2keHN^+%A9kIImY|GW8~F+RfUts&K-k5ASV^? z-qwIX$mJlABQ=yq!Ee^Bx&|N+vQxIVZr!)PrEtsH!P!;w(F1c!1xqJOS6g!pg_{tF zczC$Bu?@5KX_@%4f-9H4J?%y!-<&$Q_O{SLqvP4&%z =3vtRp3zjnSW5m7u*oFq(`FV%yK zIJSn-zRi-YL+kmR`wAp4N1pd*i8o)Iu!J0(sn0hKB)hTum8$RIHdURZ!#lQ#KWd90 zx{Qg`%lYWo*TOGN@9 xQ1H!3qTZPLCZa-GuYFMt={cL1<47yS>ciw=JlrIkYUZrCMQ!7*|w2cRjWu zQ)jO2Tgg1*mYyNjQFA4=JJy ik z8H#KsK~y8oVedz>MlKr3)SZb5Z<71`%zNRCpc&omKiQ~lp@wE3Q;(gSv3Wm}V)K5x zXMADo3pf4%Qle#d@O6HsL+~c@kbSv5;|tD4o4xXczqd`MdpniYBld0~MFGV(Pqb zMotQzz3`Fk4Of$ G6Fvu>BH&)M<0eI4vha77<}F`e%FWI8QoaN>Z% z|46|6kWR_9`Kzru$Nb8j4eJ!vq*X0sQuwqT9u$21pnpwghm^Gi;#cNXL1}%|aBp&} zN%oC>)7BeS&H&8lq|Enkj}fj2m$AUF#^e01rmm(gtd9{2cHQ2%tM*H|AM=h)*}~O_ z5jPF``J^seJeU4b`^7>@ZRX62XH*Xad_2T5>B1R|D~>jPa<<6y%L-&jf4tz7RnYrg zR!ctmC>Ioo!HFDEb;3MjSCl<_@wsD#&$Go1q=&zf^k8mK!{ZePDe{L F0C~hvKwrLXc@K~-e5B&*jP15E0@|g(t{}N7{F7T0{e_F(@1)O9tt+so}*{_i&6< zyyt1{XI-^(=uFo64MQ&{j!{TI6lHR_yYJ(-cBFd@Qkryl Oc3%jbXQ^?=my n z&eU c9fm(If4}!O?HPXFzGO&dx|Qm&Dk3(q%vlzFy{pSuQ+r=$t94zh zr{}nY_dQNhGD;dYxj+cX-w(o)YQE48bH?BPkKh0JWYA4HNO#14{t4k!&DUd;fe{W} zgMxp**k6|?lUqDO^k!LskeRQd*(ceFToc?%hRCn~AHS8E(38z$ZW0M@z53QEp#oLn z#xC_|X5;L06z8)`Oa>o@@^wzdJ14TN#WW^s>lzoKn3AkCj~Ti5XwS}@9{O|?Zw)_I z8+=rIvWqj`;f=|`DqIa;j V}-+JE_JSNVKS1@vj_qj`afg?zWQHZg{Du~9F~goy78 zfvB*5FOMMa(|UhCbx81THSH~+Dcu~j@3NNN9dKLkP)HSzjdKVwn~5J?N3O^9Rm!uu z{gI4;$;zO{$pvC87RTuWuvbhK!E@=B I*x~-z z?04z_FNuXuwa63x@ ?qf_T098U~%LW6%>WBy}964yM =r^{vzwM7X0TO85K$3H6_XV zAK8~aQ?S01+51inOYhhmaz=OzSi&!UE$fhHN}12CmN9m1;^6kFt!J2viRLqm_84+3 zahpp|MK($=xtN<&OUY1utlq7tR&vqD^JHdqN<1k+Ejn`h4Aq}Td5x_^cqTg*4{(ln zPbb(mz2V5t%stkonzXq4eWAEHlVIdY3?vA0l#Qa&FRPA`B_V0Y7c6p5muls(>_HdI zSq-HEnl%$UuOUjRHnL}9%p #6Hu)>7>I3)Zqq)ZSljl~-AL>oW$S zx9#WG _bjVO<%wBym-W8Xj4mB z 1uv n?A-ip$4@zYS?4jcC9aKs_id-_HVy=RUnDNW(_Hg-L4qh=igsXmCZI;i!Q0; z$j)mx*RvMe%IwyD<4!JmhWwoLEw$^|x9gqoDz|2ML&8+R!5Sj9lzBJca4Vo|XFeCf zvXQ26CIGyp_G`4o*>?d4_}OSfCvF|t30l})B{+WquWg6OhJx&ldXbDz1Fu10nh%Re z^-fQ2$Y`bzE6P;Y$fZ6;1^j|29mt)*7$X~KVs#iO8x%U~v{db4P=*>Sw z&tv%KvBq`g1Bc-50(>S?yCeR^PSpn+xtTR?(hwhlZ@Q9OnV;qqc6c2g&jzN>aTZ>^ zXSw3}nVccHsMp|%^iBti|Dbr-wMB7geYHhEZG}OT%z_oTtqd9~Z8{0TF zp=<1}-ND(xpO>qE>r2xeE}aLnHW$_$m%*Zf3*E@KGTbU#3NCPL^ciWvi=d@M5?mV2 z&UPvZ@HN20F#-{JHcvTIcZ4dzQ=Bo!9bg3l6sHq?om@^d?rghoIW2EeA1+hd_Gs%S zxU3X72ImLjvxba@cp|!hFHBFf!;hZcU8mxDcRy^4+5BvyuXjl%$-~mf?a*Qrek#7J zmSywPX
;fj8+fI~7mr4-@2?wygVCw%limJI%|EzDaB&+0`q9@0Fh;QSSf9Gm z-jz{S&FVq_J<&0r`Rw`?x0QN^)c&RIci|Wem73R0pFIq#tPDOGZEdczw2M8UiQQUF zu*ks)V8l49)atFj-~tYJC%pV7=nydz&XFpj+;8L!? *gxcpRN6<9dUzRX+Yo8>qOczr&O%r=w> zN>J1;N8%^BWCxmVq$sw0<+`50e0g?fkXbO-1pXA40PP&SX6*N1{~CVEC;_UWYdX?I z@=o _?{aS-+*6pC3AhBfoxmq(_$G zqQv0}>!Hy1{?^agKJ?OUeX#G$jPsK<)?8!bnfCbWkd7wIdA0aMqoMb_W-@d1-eMg( zXy}y4m5 L*!c8Y($gW1X5mN2xBPs>@gAy8Bimcwoq( zO1Ov5_v5B|j?OGYzBjMUyN9C7nZxEL$K5yL%ID`Yb4?08W1GM}(APxLlVe*l>NBr; z>Kt6LLPpeGxviUhGV?_o6< zsA^fNbzfwvcvCa#d4^9N17 znllM4P4ayw_p6_)l(y+Yu5R(pO3mw| ?MR&{pXRi89Z&7^!Biu0{K< zY=N~`jj?2M@oBpbo3)&SdBeSw(0UkminCP1inNT}!JKZjk8&K6Gzo!kwU)>`jKWT{ zOe72+Df2PmhpjeJd~0#E`Eb6uat lt1=6u zJdm1VSxcahSq`F$*rH@(3D{fdvG+|#r;x+!U-4(=ZVBItcG~S98r>{btwe+&9x^re zvABM{fYDX+I(Sd*mv*nZ&%{?nPj=+Vk6EANfW+mh&g{e*8PuEa)tnCMgciwhJ^8-j zj+w^jwMes6tX}n2-k9jX6~n?|=mluXSF%hm(-2I`68*0GQn Qr|t{A61bJ~^B>g{6xnGFaUkdh`HaYFm3wNmo5^}Q9SVCg!N zbmCD1!=U(sHh3X}>D#rGupWkSaYgZ!Iyx?`^w}iMeTyQg&!LcMuv1_sZgZNx>A?^7 zRrL;lt*5b@PxZ~b=DTgIQmKTChJNCBokv6ds&jszk~Crms_E3xl9zRh>|)E#9kpgx ze2=cFv4D^K8rpxeAhU9!Zpj$uqswLb&7@M4)ByjcM97IYFl^Ktlj@^3`So!IH|eVl z$CrL-?^Z2em_K=k|Kpo#RdNYkgwP#<$Qk3kX5A`R<#MsAm2gXXbC%Sf_U}**vC(u# zwE6dINjCWF$mWHQD>B!*KpU%A9alnhD?bccH}4Cw#2*WcmPOtcsGG^tQ4IjDR&sZt z03DMryO{@z%FJv;4!&>wbZ{WtSAHi^rAT{Ho0{~kv=yd5gl$kHaV2abIBmvHUv(q# zNe7*bsgp4|Glo%eqgzw5gYJ_<-^_FAp>!4q-&*JvmNE@E*7Nm3`=O?L4_ifVms3tg zATBN&P35gLFzLFpAabCI0{gk0hs(jTybS2=yjf9PN`ennU^MQdOZ_e8;~l;d)UP`6 z=)*m<5H4>8V{ rpp=S{kf-7 zb#l{wIA7BTOk?g7;;+ynQp^h2XaN$$@>4rHtEYRsFQ0N$X?Dv}uL@pDaE4--5@sA( z=vVajUWiq`cfAbj@M30#IL=kv_ogZFX62cm`4w+7N`okqq}cXdO?UO9Dalf_q2mNu z67LnCS9P!KOSqq~(H8P_$)jt;2eQ>vjwW0j+i9|UThYQ_;dcJm_)-OKY0_miquepC zo_@nld#xk>Q`R8}el_?IZOV~OmiP@8qe$au6J)}i5bUh3qcxe&T1<{{q{4Wn{~Nj& znAFk}1t(6`Q<;-xa>iG!rwC|cdwo;y?DT;+r>9&R }eC79k^a#GNOEr_>nw1Q{BL7+l8sQ{; zudy {bilm2Li>h1cT&3bB$NI#Z3ZPt`qcySrX z;JW8~QQWPK{Tivi`vV6wBX#Cp{#h7Tf?H>0H>c0@9)aB*kS@tsUhgpEC8e_*xoD=2 zh&v&1r)ndzC(RnA@BlR&!zzo^>vrF}+7%hTlFM{hX >>}9qTNx*sTP)`s7Qb-)Oyy2CMKTQawwxoqQ9l`TD}Ct?khF@^f8KW=)jWZR4GR z%?%ejj6!ib(hJ8uGADaN)Ug)_W@w6XIa=1PLDV1TI~E`EuyyOxT~q47Z;d}@Nb{z? z;?JD!L{ZI`y*rIp*@8-M+4(iY<$4jKqO6{0A|! ^BBH@XY%U!cEH!z- zTxXi4$~ XU)-7{heM`6-PO&Y_IK?Lp;JkIr}= n9 z8oQOHc6v6w!-m~J5`Sih#oyVdE1oCVNd#{Pe;XXGh^P3x{z?t{;hylAmG+IISmc E~SE=Deot)pQrloPQrOSuWty^F!7jH#g)VuL>D#M-uSPT-M=kH3_ z^A#i9rsU|F`+;Xn{ChKsH*-3&Z2`E3o(w3%n4N!>bpu6x0~{`ZR>kLU+PR$V&!)dB z-epxHC8J-I;yv6e#Mu+#A_DUr#$<48^udp>g{x{Teb$$1L&<7XO%@wzOS3#~71I8b zuXEaEHp5*gvawK!HmwQ65TS1p@W+ja;Ycy8 IU~r<>sPL=lUE@bYT|I@sbq*0n!bHd5)P z*wc)wWaXCyNr% 976^o^T!>6Gt|O+LA7UC#Z47yH)tT695=`Q&Tg=`-lH{+H=2 z+x&EQ+C}{>UU8F_bj7~Sjh}PjcO2y# -eGO@xXryloQtH5c<<_X^kb?+k6ErTId*(3l>i)r-#+$hz zO|=)b)*{>LsH0bI$(PtxRUa?1Wt}VDkEZ _dA-3HHA-O9h73uDRXQlYKk^DUiR`HobQncr~q$VBjBm6}2m zQC*HURnJQ9X$1I{37SU4u7+!Cu=wWaotDm9HBM;hsW)diEbuYG^=R^CwcY-c( APlCnL %%u&F7<