From 12d71ac815e7ba68204b94c37bce9d98698925ba Mon Sep 17 00:00:00 2001 From: heyufan Date: Thu, 26 Mar 2026 14:21:33 -0400 Subject: [PATCH] Fix batch inference bug --- NV-Segment-CT/configs/batch_inference.json | 11 +- NV-Segment-CT/configs/mgpu_inference.json | 4 +- NV-Segment-CT/docs/README.md | 2 +- NV-Segment-CT/scripts/__init__.py | 3 + .../scripts/batch_inference_utils.py | 262 ++++++++ .../run_brain_segmentation.sh | 600 ++++++++++++++---- NV-Segment-CTMR/configs/batch_inference.json | 11 +- NV-Segment-CTMR/configs/mgpu_inference.json | 4 +- NV-Segment-CTMR/docs/README.md | 289 +++------ NV-Segment-CTMR/docs/ctmr2.png | Bin 0 -> 315540 bytes NV-Segment-CTMR/docs/finetune.md | 157 +++++ NV-Segment-CTMR/docs/inference.md | 98 --- NV-Segment-CTMR/scripts/__init__.py | 3 + .../scripts/batch_inference_utils.py | 262 ++++++++ 14 files changed, 1289 insertions(+), 417 deletions(-) create mode 100644 NV-Segment-CT/scripts/batch_inference_utils.py create mode 100644 NV-Segment-CTMR/docs/ctmr2.png delete mode 100644 NV-Segment-CTMR/docs/inference.md create mode 100644 NV-Segment-CTMR/scripts/batch_inference_utils.py diff --git a/NV-Segment-CT/configs/batch_inference.json b/NV-Segment-CT/configs/batch_inference.json index 605e66d..2118459 100644 --- a/NV-Segment-CT/configs/batch_inference.json +++ b/NV-Segment-CT/configs/batch_inference.json @@ -1,7 +1,14 @@ { "input_dir": "@bundle_root", "input_suffix": "*.nii.gz", - "input_list": "$sorted(glob.glob(os.path.join(@input_dir, @input_suffix)))", + "input_root_abs": "$os.path.abspath(@input_dir)", + "batch_skip_dir_names": [], + "batch_skip_dir_prefixes": [], + "batch_resume_skip_existing": true, + "batch_use_input_list_cache": true, + "batch_cache_wait_sec": 120, + "input_list": "$scripts.batch_inference_utils.build_input_list(os.path.abspath(@input_dir), os.path.abspath(@output_dir), @output_postfix, @output_ext, @batch_skip_dir_names, @batch_skip_dir_prefixes, @batch_resume_skip_existing, @batch_use_input_list_cache, @batch_cache_wait_sec)", "input_dicts": "$[{'image': x, 'label_prompt': @everything_labels} for x in @input_list]", - "dataset#data": "@input_dicts" + "dataset#data": "@input_dicts", + "postprocessing#transforms#4#data_root_dir": "@input_root_abs" } diff --git a/NV-Segment-CT/configs/mgpu_inference.json b/NV-Segment-CT/configs/mgpu_inference.json index bc0e9c4..eecf12b 100644 --- a/NV-Segment-CT/configs/mgpu_inference.json +++ b/NV-Segment-CT/configs/mgpu_inference.json @@ -17,7 +17,9 @@ "initialize": [ "$import torch.distributed as dist", "$dist.is_initialized() or dist.init_process_group(backend='nccl')", - "$torch.cuda.set_device(@device)" + "$torch.cuda.set_device(@device)", + "$monai.utils.set_determinism(seed=123)", + "$@checkpointloader(@evaluator)" ], "run": [ "$@evaluator.run()" diff --git a/NV-Segment-CT/docs/README.md b/NV-Segment-CT/docs/README.md index f1d1290..6df05bc 100644 --- a/NV-Segment-CT/docs/README.md +++ b/NV-Segment-CT/docs/README.md @@ -22,7 +22,7 @@ mv NV-Segment-CT/models/vista3d_pretrained_model/model.pt NV-Segment-CT/models/m rmdir NV-Segment-CT/models/vista3d_pretrained_model ``` -## 1.1 **VISTA3D-CT** [[Github]](https://github.com/NVIDIA-Medtech/NV-Segment-CTMR/tree/main/NV-Segment-CT) [[Huggingface]](https://huggingface.co/nvidia/NV-Segment-CT) +## 1.1 **NV-Segment-CT** [[Github]](https://github.com/NVIDIA-Medtech/NV-Segment-CTMR/tree/main/NV-Segment-CT) [[Huggingface]](https://huggingface.co/nvidia/NV-Segment-CT) ### Automatic Segmentation (support multi-gpu batch processing) diff --git a/NV-Segment-CT/scripts/__init__.py b/NV-Segment-CT/scripts/__init__.py index fc5f109..5b58bf6 100644 --- a/NV-Segment-CT/scripts/__init__.py +++ b/NV-Segment-CT/scripts/__init__.py @@ -13,3 +13,6 @@ # from .multi_gpu_supervised_trainer import create_multigpu_supervised_evaluator, create_multigpu_supervised_trainer from .early_stop_score_function import score_function + +# Ensures bundle expressions like ``scripts.batch_inference_utils.build_input_list`` resolve. +from . import batch_inference_utils # noqa: F401 diff --git a/NV-Segment-CT/scripts/batch_inference_utils.py b/NV-Segment-CT/scripts/batch_inference_utils.py new file mode 100644 index 0000000..16e12f3 --- /dev/null +++ b/NV-Segment-CT/scripts/batch_inference_utils.py @@ -0,0 +1,262 @@ +""" +Cohort batch inference: discover NIfTI inputs, match MONAI SaveImaged paths, optional resume. + +Behavior is controlled from ``configs/batch_inference.json`` (skip dir lists, resume, cache). +To change which classes are segmented, edit ``everything_labels`` in ``configs/inference.json``. +To customize path filtering further, edit :func:`should_skip_path_by_parent_rules`. +""" + +from __future__ import annotations + +import hashlib +import json +import os +import tempfile +import time +from pathlib import Path +from typing import Any + + +def should_skip_path_by_parent_rules( + path: Path, + *, + skip_dir_names: list[str] | None = None, + skip_dir_prefixes: list[str] | None = None, +) -> bool: + """ + Return True if this path should be excluded from batch discovery. + + Default (empty lists): do not skip any path based on directory names. + + - ``skip_dir_names``: any **parent** directory component that equals a name (case-insensitive). + - ``skip_dir_prefixes``: any **parent** directory component whose name **starts with** a prefix + (case-insensitive). + """ + names = {n.strip().lower() for n in (skip_dir_names or []) if n and str(n).strip()} + prefixes = tuple(p.strip().lower() for p in (skip_dir_prefixes or []) if p and str(p).strip()) + for part in path.parts[:-1]: + pl = part.lower() + if pl in names: + return True + for prefix in prefixes: + if prefix and pl.startswith(prefix): + return True + return False + + +def expected_output_path( + input_path: Path, + input_root: Path, + output_dir: Path, + postfix: str, + ext: str, +) -> Path: + """Match MONAI FolderLayout + separate_folder + data_root_dir.""" + input_path = input_path.resolve() + input_root = input_root.resolve() + output_dir = output_dir.resolve() + rel = os.path.relpath(input_path, input_root) + rel_dir = os.path.dirname(rel) + stem = input_path.name + if stem.endswith(".nii.gz"): + stem = stem[: -len(".nii.gz")] + elif stem.endswith(".nii"): + stem = stem[: -len(".nii")] + sub = Path(rel_dir) if rel_dir else Path() + return output_dir / sub / stem / f"{stem}_{postfix}{ext}" + + +def collect_input_paths( + input_root: Path, + pattern: str = "**/*.nii.gz", + *, + skip_dir_names: list[str] | None = None, + skip_dir_prefixes: list[str] | None = None, +) -> list[Path]: + input_root = input_root.resolve() + out: list[Path] = [] + for p in sorted(input_root.glob(pattern)): + if not p.is_file(): + continue + if should_skip_path_by_parent_rules( + p, skip_dir_names=skip_dir_names, skip_dir_prefixes=skip_dir_prefixes + ): + continue + out.append(p) + return out + + +def _cache_path( + input_dir: str, + output_dir: str, + postfix: str, + ext: str, + skip: bool, + skip_dir_names: list[str] | None, + skip_dir_prefixes: list[str] | None, +) -> Path: + sig = ( + f"{os.path.abspath(input_dir)}|{os.path.abspath(output_dir)}|{postfix}|{ext}|{skip}|" + f"{sorted(skip_dir_names or [])}|{sorted(skip_dir_prefixes or [])}" + ) + h = hashlib.sha256(sig.encode()).hexdigest()[:24] + base = Path(tempfile.gettempdir()) + return base / f"nvseg_batch_input_{h}.json" + + +def _compute_input_list( + input_dir: str, + output_dir: str, + postfix: str, + ext: str, + *, + skip_existing: bool, + skip_dir_names: list[str] | None, + skip_dir_prefixes: list[str] | None, +) -> tuple[list[str], int]: + """ + Returns ``(paths_to_run, n_discovered)`` where ``n_discovered`` is the number of + ``*.nii.gz`` paths after directory filters (before resume skip). + """ + root = Path(input_dir) + out_root = Path(output_dir) + all_paths = collect_input_paths( + root, + skip_dir_names=skip_dir_names, + skip_dir_prefixes=skip_dir_prefixes, + ) + n_discovered = len(all_paths) + if not skip_existing: + return [str(p) for p in all_paths], n_discovered + + missing: list[str] = [] + for inp in all_paths: + exp = expected_output_path(inp, root, out_root, postfix, ext) + if not exp.is_file() or exp.stat().st_size == 0: + missing.append(str(inp)) + return missing, n_discovered + + +def _parse_cache_payload(raw: Any) -> tuple[list[str], int]: + """Load cache written by rank 0. Supports legacy JSON list for backward compatibility.""" + if isinstance(raw, list): + # Legacy: empty [] is ambiguous (stale file or old format) -> signal recompute on workers. + return [str(p) for p in raw], len(raw) if raw else -1 + if isinstance(raw, dict) and "paths" in raw: + paths = raw["paths"] + if not isinstance(paths, list): + raise RuntimeError("[nvseg] batch: bad cache (paths); rm /tmp/nvseg_batch_input_*.json") + n_raw = raw.get("n_discovered") + if n_raw is None: + n_discovered = len(paths) if paths else -1 + else: + n_discovered = int(n_raw) + return [str(p) for p in paths], n_discovered + raise RuntimeError("[nvseg] batch: bad cache format; rm /tmp/nvseg_batch_input_*.json") + + +def build_input_list( + input_dir: str, + output_dir: str, + output_postfix: str, + output_ext: str, + batch_skip_dir_names: list | None = None, + batch_skip_dir_prefixes: list | None = None, + batch_resume_skip_existing: bool = True, + batch_use_input_list_cache: bool = True, + batch_cache_wait_sec: float = 120.0, +) -> list[str]: + """ + Called from ``configs/batch_inference.json``. + + ``batch_resume_skip_existing``: if True, only queue inputs whose output file is missing or empty. + ``batch_skip_dir_names`` / ``batch_skip_dir_prefixes``: filter discovery (see + :func:`should_skip_path_by_parent_rules`). + + ``LOCAL_RANK`` (set by ``torchrun``) is still read from the environment for multi-GPU cache. + + If resume mode leaves nothing to run (outputs already exist), prints a message and raises + ``SystemExit(0)`` so the process exits before MONAI builds a zero-length DataLoader (which + would fail under ``DistributedSampler``). If no ``*.nii.gz`` files are discovered, raises + ``RuntimeError``. + """ + names = list(batch_skip_dir_names) if batch_skip_dir_names is not None else [] + prefixes = list(batch_skip_dir_prefixes) if batch_skip_dir_prefixes is not None else [] + + skip = bool(batch_resume_skip_existing) + use_cache = bool(batch_use_input_list_cache) + wait_sec = float(batch_cache_wait_sec) + + local_rank = os.environ.get("LOCAL_RANK", "0") + + if not use_cache or local_rank == "0": + paths, n_discovered = _compute_input_list( + input_dir, + output_dir, + output_postfix, + output_ext, + skip_existing=skip, + skip_dir_names=names, + skip_dir_prefixes=prefixes, + ) + payload = {"paths": paths, "n_discovered": n_discovered} + if use_cache and local_rank == "0": + cache = _cache_path( + input_dir, output_dir, output_postfix, output_ext, skip, names, prefixes + ) + cache.parent.mkdir(parents=True, exist_ok=True) + tmp = cache.with_suffix(".json.tmp") + tmp.write_text(json.dumps(payload)) + tmp.replace(cache) + + if local_rank == "0": + mode = "resume (skip existing outputs)" if skip else "full pass (all inputs)" + print( + f"[nvseg] batch {mode}: {len(paths)} volume(s) " + f"(input_dir={os.path.abspath(input_dir)}, output_dir={os.path.abspath(output_dir)})", + flush=True, + ) + else: + cache = _cache_path( + input_dir, output_dir, output_postfix, output_ext, skip, names, prefixes + ) + deadline = time.time() + wait_sec + payload = None + while time.time() < deadline: + if cache.is_file(): + payload = json.loads(cache.read_text()) + break + time.sleep(0.05) + else: + raise RuntimeError( + "[nvseg] batch: cache timeout (raise batch_cache_wait_sec or set batch_use_input_list_cache false)" + ) + paths, n_discovered = _parse_cache_payload(payload) + # Stale legacy `[]` or missing n_discovered: recompute so workers agree with rank 0. + if n_discovered < 0: + paths, n_discovered = _compute_input_list( + input_dir, + output_dir, + output_postfix, + output_ext, + skip_existing=skip, + skip_dir_names=names, + skip_dir_prefixes=prefixes, + ) + + if not paths: + if n_discovered == 0: + raise RuntimeError("[nvseg] batch: no *.nii.gz under input_dir (check paths and skip rules)") + # Resume: all outputs exist — exit before an empty DistributedSampler / dataloader. + print("[nvseg] batch: nothing to run (resume); ok", flush=True) + raise SystemExit(0) + + return paths + + +__all__ = [ + "build_input_list", + "collect_input_paths", + "expected_output_path", + "should_skip_path_by_parent_rules", +] diff --git a/NV-Segment-CTMR/brain_t1_preprocess/run_brain_segmentation.sh b/NV-Segment-CTMR/brain_t1_preprocess/run_brain_segmentation.sh index c9b5e09..9bd8e60 100755 --- a/NV-Segment-CTMR/brain_t1_preprocess/run_brain_segmentation.sh +++ b/NV-Segment-CTMR/brain_t1_preprocess/run_brain_segmentation.sh @@ -1,22 +1,43 @@ #!/bin/bash # Brain MRI Segmentation Script -# Supports single file or folder batch processing with optional temporary file retention +# Supports single file, folder batch processing, or file list processing +# Supports optional skull stripping and temporary file retention -set -e # Exit on error +# Print startup message +echo "Starting brain segmentation script..." >&2 # Default values KEEP_TEMP=false OUTPUT_DIR="" MODALITY="MRI_BRAIN" -CONDA_ENV="vista3d-nv" -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -BUNDLE_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" +SKIP_SKULLSTRIP=false +SKIP_EXISTING=true +NUM_PARTITIONS=1 +PARTITION_NUM=1 + +# Get script directory - handle both direct execution and sourced execution +if [[ "${BASH_SOURCE[0]}" != "" ]]; then + SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" || { + echo "Error: Failed to determine script directory" >&2 + exit 1 + } +else + SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" || { + echo "Error: Failed to determine script directory" >&2 + exit 1 + } +fi +BUNDLE_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" || { + echo "Error: Failed to determine bundle root directory" >&2 + exit 1 +} # Colors for output RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' +BLUE='\033[0;34m' NC='\033[0m' # No Color # Function to print usage @@ -25,114 +46,146 @@ usage() { Usage: $0 [OPTIONS] Brain MRI Segmentation Script for NV-Segment-CTMR +Supports single file, folder batch processing, or file list processing OPTIONS: --input FILE Single NIfTI file to segment --input_folder FOLDER Folder containing NIfTI files to process (batch mode) + --file_list FILE Text file with one file path per line (relative to root_path) + --root_path PATH Root path where file paths in file_list are relative to --output_dir DIR Output directory (default: ./eval) --keep-temp Keep temporary preprocessing files (default: false) + --no-skullstrip Skip skull stripping step (default: false, performs skull stripping) --modality MODALITY Segmentation modality: MRI_BRAIN (default), MRI_BODY, CT_BODY - --conda-env ENV Conda environment name (default: vista3d-nv) + --no-skip Don't skip existing output files (default: skip if exists, only for file_list mode) + --num_partitions N Split file list into N partitions (default: 1, no split, only for file_list mode) + --partition M Process partition M (1-indexed, default: 1). Requires --num_partitions (only for file_list mode) -h, --help Show this help message EXAMPLES: # Single file processing $0 --input example/brain_t1.nii.gz - # Batch processing + # Single file without skull stripping + $0 --input example/brain_t1.nii.gz --no-skullstrip + + # Batch processing from folder $0 --input_folder example/ --output_dir results/ - # Keep temporary files for debugging - $0 --input example/brain_t1.nii.gz --keep-temp + # Process files from a list + $0 --file_list file_list.txt --root_path /path/to/root --output_dir /path/to/output -EOF - exit 1 -} + # Process files from a list without skull stripping + $0 --file_list file_list.txt --root_path /path/to/root --output_dir /path/to/output --no-skullstrip -# Function to check if conda environment is activated -check_conda_env() { - if ! command -v conda &> /dev/null; then - echo -e "${RED}Error: conda command not found. Please install conda or activate your environment manually.${NC}" >&2 - exit 1 - fi + # Split into 10 partitions and process partition 3 + $0 --file_list file_list.txt --root_path /path/to/root --output_dir /path/to/output --num_partitions 10 --partition 3 - # Check if environment exists - if ! conda env list | grep -q "^${CONDA_ENV} "; then - echo -e "${YELLOW}Warning: Conda environment '${CONDA_ENV}' not found. Attempting to activate anyway...${NC}" >&2 - fi +NOTES: + - When using --file_list, output files maintain the same directory structure as input, with _seg suffix added + - Existing output files are skipped by default to support job resubmission (file_list mode only) - # Activate conda environment - eval "$(conda shell.bash hook)" - conda activate "${CONDA_ENV}" || { - echo -e "${RED}Error: Failed to activate conda environment '${CONDA_ENV}'.${NC}" >&2 - exit 1 - } - - echo -e "${GREEN}Activated conda environment: ${CONDA_ENV}${NC}" +EOF + exit 1 } # Function to process a single file process_single_file() { local input_file="$1" - local output_dir="${OUTPUT_DIR:-./eval}" - - if [[ ! -f "$input_file" ]]; then - echo -e "${RED}Error: Input file not found: $input_file${NC}" >&2 - exit 1 - fi - - # Get absolute paths - input_file=$(realpath "$input_file") - output_dir=$(realpath -m "$output_dir") + local output_file="$2" + local failed_log="$3" + local output_dir=$(dirname "$output_file") + + # Ensure output directory exists mkdir -p "$output_dir" - + + # Get absolute paths + if command -v realpath &> /dev/null; then + input_file=$(realpath "$input_file" 2>/dev/null || echo "$input_file") + else + if [[ ! "$input_file" =~ ^/ ]]; then + input_file="$(cd "$(dirname "$input_file")" && pwd)/$(basename "$input_file")" + fi + fi + # Extract filename without extension local file_basename=$(basename "$input_file" .nii.gz) file_basename=$(basename "$file_basename" .nii) - local file_dir=$(dirname "$input_file") - - # Create temporary directory for this file - local temp_dir="${file_dir}/${file_basename}_temp" + + # Create temporary directory in the output directory (use a unique name to avoid conflicts) + local temp_dir="${output_dir}/${file_basename}_temp_$$" mkdir -p "$temp_dir" - + # Temporary file paths local skull_stripped="${temp_dir}/${file_basename}_skull_stripped.nii.gz" local preprocess_tmp="${temp_dir}/${file_basename}_preprocessed.nii.gz" local preprocess_meta="${temp_dir}/${file_basename}_preprocessed.meta.json" + # Monai bundle saves to output_dir from config, which defaults to bundle_root/eval + # We'll override it to use our output_dir, and it will save as: + # {output_dir}/{basename}_preprocessed/{basename}_preprocessed_trans.nii.gz local preprocess_tmp_seg="${output_dir}/${file_basename}_preprocessed/${file_basename}_preprocessed_trans.nii.gz" - local final_output="${output_dir}/${file_basename}_trans.nii.gz" - - echo -e "${GREEN}Processing: $input_file${NC}" - echo -e "${GREEN}Output will be saved to: $final_output${NC}" - - # Step 1: Skull stripping with SynthStrip - echo -e "${YELLOW}Step 1/4: Skull stripping...${NC}" - if [[ ! -f "$skull_stripped" ]]; then - cd "$BUNDLE_ROOT" - ./brain_t1_preprocess/synthstrip-docker -i "$input_file" -o "$skull_stripped" || { - echo -e "${RED}Error: Skull stripping failed${NC}" >&2 - [[ "$KEEP_TEMP" == "false" ]] && rm -rf "$temp_dir" - exit 1 - } + + # Cleanup function + cleanup_on_error() { + if [[ "$KEEP_TEMP" == "false" ]]; then + rm -rf "$temp_dir" + fi + } + trap cleanup_on_error ERR + + echo -e "${GREEN}Processing: $input_file${NC}" >&2 + echo -e "${GREEN}Output will be saved to: $output_file${NC}" >&2 + + # Function to log failure and return + log_failure() { + local reason="$1" + echo -e "${RED}$reason: $input_file${NC}" >&2 + if [[ -n "$failed_log" ]]; then + echo "$input_file" >> "$failed_log" + fi + cleanup_on_error + return 1 + } + + # Determine which file to use for preprocessing + local preprocess_input="$input_file" + local step_num=1 + local total_steps=3 + + # Step 1: Skull stripping with SynthStrip (if not skipped) + if [[ "$SKIP_SKULLSTRIP" == "false" ]]; then + total_steps=4 + echo -e "${YELLOW}Step 1/4: Skull stripping...${NC}" >&2 + if [[ ! -f "$skull_stripped" ]]; then + cd "$BUNDLE_ROOT" + ./brain_t1_preprocess/synthstrip-docker -i "$input_file" -o "$skull_stripped" || { + log_failure "Error: Skull stripping failed" + return 1 + } + else + echo -e "${YELLOW} Skull-stripped file already exists, skipping...${NC}" >&2 + fi + preprocess_input="$skull_stripped" + step_num=2 else - echo -e "${YELLOW} Skull-stripped file already exists, skipping...${NC}" + echo -e "${YELLOW}Note: Skull stripping step is skipped${NC}" >&2 fi - + # Step 2: Affine align to the LUMIR template - echo -e "${YELLOW}Step 2/4: Affine alignment to LUMIR template...${NC}" + echo -e "${YELLOW}Step ${step_num}/${total_steps}: Affine alignment to LUMIR template...${NC}" >&2 cd "$BUNDLE_ROOT" python brain_t1_preprocess/preprocess.py \ - "$skull_stripped" \ + "$preprocess_input" \ brain_t1_preprocess/LUMIR_template.nii.gz \ "$preprocess_tmp" \ --save-preprocess "$preprocess_meta" || { - echo -e "${RED}Error: Preprocessing failed${NC}" >&2 - [[ "$KEEP_TEMP" == "false" ]] && rm -rf "$temp_dir" - exit 1 + log_failure "Error: Preprocessing failed" + return 1 } - + # Step 3: Segment the brain - echo -e "${YELLOW}Step 3/4: Running segmentation...${NC}" + ((step_num++)) + echo -e "${YELLOW}Step ${step_num}/${total_steps}: Running segmentation...${NC}" >&2 cd "$BUNDLE_ROOT" # Override output_dir in config to use our output_dir so segmentation saves to the right place python -m monai.bundle run \ @@ -140,34 +193,32 @@ process_single_file() { --input_dict "{'image':'$preprocess_tmp'}" \ --output_dir "$output_dir" \ --modality "$MODALITY" || { - echo -e "${RED}Error: Segmentation failed${NC}" >&2 - [[ "$KEEP_TEMP" == "false" ]] && rm -rf "$temp_dir" - exit 1 + log_failure "Error: Segmentation failed" + return 1 } - + # Step 4: Revert the segmentation back to original space - echo -e "${YELLOW}Step 4/4: Reverting to original space...${NC}" + ((step_num++)) + echo -e "${YELLOW}Step ${step_num}/${total_steps}: Reverting to original space...${NC}" >&2 if [[ ! -f "$preprocess_tmp_seg" ]]; then - echo -e "${RED}Error: Segmentation output not found: $preprocess_tmp_seg${NC}" >&2 - [[ "$KEEP_TEMP" == "false" ]] && rm -rf "$temp_dir" - exit 1 + log_failure "Error: Segmentation output not found" + return 1 fi - + cd "$BUNDLE_ROOT" python brain_t1_preprocess/revert_preprocess.py \ "$preprocess_tmp" \ --out "${temp_dir}/${file_basename}_revert.nii.gz" \ --mask "$preprocess_tmp_seg" \ - --mask-out "$final_output" \ + --mask-out "$output_file" \ --meta "$preprocess_meta" || { - echo -e "${RED}Error: Reversion failed${NC}" >&2 - [[ "$KEEP_TEMP" == "false" ]] && rm -rf "$temp_dir" - exit 1 + log_failure "Error: Reversion failed" + return 1 } - + # Clean up temporary files if not keeping them if [[ "$KEEP_TEMP" == "false" ]]; then - echo -e "${YELLOW}Cleaning up temporary files...${NC}" + echo -e "${YELLOW}Cleaning up temporary files...${NC}" >&2 rm -rf "$temp_dir" # Also clean up the preprocessed output directory if it only contains temp files local preprocess_output_dir="${output_dir}/${file_basename}_preprocessed" @@ -175,11 +226,14 @@ process_single_file() { rm -rf "$preprocess_output_dir" fi else - echo -e "${GREEN}Temporary files kept in: $temp_dir${NC}" + echo -e "${GREEN}Temporary files kept in: $temp_dir${NC}" >&2 fi - - echo -e "${GREEN}✓ Successfully processed: $input_file${NC}" - echo -e "${GREEN} Output saved to: $final_output${NC}" + + trap - ERR + + echo -e "${GREEN}✓ Successfully processed: $input_file${NC}" >&2 + echo -e "${GREEN} Output saved to: $output_file${NC}" >&2 + return 0 } # Function to process a folder (batch mode) @@ -193,8 +247,17 @@ process_folder() { fi # Get absolute paths - input_folder=$(realpath "$input_folder") - output_dir=$(realpath -m "$output_dir") + if command -v realpath &> /dev/null; then + input_folder=$(realpath "$input_folder" 2>/dev/null || echo "$input_folder") + output_dir=$(realpath -m "$output_dir" 2>/dev/null || echo "$output_dir") + else + if [[ ! "$input_folder" =~ ^/ ]]; then + input_folder="$(cd "$input_folder" && pwd)" + fi + if [[ ! "$output_dir" =~ ^/ ]]; then + output_dir="$(cd "$(dirname "$output_dir")" && pwd)/$(basename "$output_dir")" + fi + fi mkdir -p "$output_dir" # Find all NIfTI files @@ -208,16 +271,28 @@ process_folder() { exit 1 fi - echo -e "${GREEN}Found ${#files[@]} file(s) to process${NC}" + echo -e "${GREEN}Found ${#files[@]} file(s) to process${NC}" >&2 # Process each file local success_count=0 local fail_count=0 for file in "${files[@]}"; do - echo "" - echo -e "${GREEN}========================================${NC}" - if process_single_file "$file"; then + echo "" >&2 + echo -e "${GREEN}========================================${NC}" >&2 + + # Determine output file path + local file_basename=$(basename "$file" .nii.gz) + file_basename=$(basename "$file_basename" .nii) + local rel_ext="" + if [[ "$file" == *.nii.gz ]]; then + rel_ext=".nii.gz" + elif [[ "$file" == *.nii ]]; then + rel_ext=".nii" + fi + local output_file="${output_dir}/${file_basename}_trans${rel_ext}" + + if process_single_file "$file" "$output_file" ""; then ((success_count++)) else ((fail_count++)) @@ -225,18 +300,259 @@ process_folder() { fi done - echo "" - echo -e "${GREEN}========================================${NC}" - echo -e "${GREEN}Batch processing complete!${NC}" - echo -e "${GREEN} Successful: $success_count${NC}" + echo "" >&2 + echo -e "${GREEN}========================================${NC}" >&2 + echo -e "${GREEN}Batch processing complete!${NC}" >&2 + echo -e "${GREEN} Successful: $success_count${NC}" >&2 if [[ $fail_count -gt 0 ]]; then - echo -e "${RED} Failed: $fail_count${NC}" + echo -e "${RED} Failed: $fail_count${NC}" >&2 + fi +} + +# Function to process files from txt file list +process_file_list() { + local file_list="$1" + local root_path="$2" + local output_dir="${OUTPUT_DIR:-./eval}" + + if [[ ! -f "$file_list" ]]; then + echo -e "${RED}Error: File list not found: $file_list${NC}" >&2 + exit 1 + fi + + if [[ ! -d "$root_path" ]]; then + echo -e "${RED}Error: Root path not found: $root_path${NC}" >&2 + exit 1 + fi + + # Get absolute paths + if command -v realpath &> /dev/null; then + file_list=$(realpath "$file_list" 2>/dev/null || echo "$file_list") + root_path=$(realpath "$root_path" 2>/dev/null || echo "$root_path") + output_dir=$(realpath -m "$output_dir" 2>/dev/null || echo "$output_dir") + else + # Fallback if realpath is not available + if [[ ! "$file_list" =~ ^/ ]]; then + file_list="$(cd "$(dirname "$file_list")" && pwd)/$(basename "$file_list")" + fi + if [[ ! "$root_path" =~ ^/ ]]; then + root_path="$(cd "$root_path" && pwd)" + fi + if [[ ! "$output_dir" =~ ^/ ]]; then + output_dir="$(cd "$(dirname "$output_dir")" && pwd)/$(basename "$output_dir")" + fi + fi + mkdir -p "$output_dir" + + # Create log file for failed/timeout files (after directory is created) + local failed_log="${output_dir}/failed_files_$(date +%Y%m%d_%H%M%S).txt" + touch "$failed_log" + echo -e "${YELLOW}Failed/timeout files will be logged to: $failed_log${NC}" >&2 + + # Read file paths from the list + local files=() + local line_num=0 + while IFS= read -r line || [[ -n "$line" ]]; do + ((line_num++)) + # Skip empty lines and comments + line=$(echo "$line" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//') + if [[ -z "$line" ]] || [[ "$line" =~ ^# ]]; then + continue + fi + + # Remove leading ./ if present + line="${line#./}" + + # Construct full path + local full_path="${root_path}/${line}" + + if [[ ! -f "$full_path" ]]; then + echo -e "${YELLOW}Warning: File not found (line $line_num): $full_path${NC}" >&2 + continue + fi + + files+=("$full_path") + done < "$file_list" + + if [[ ${#files[@]} -eq 0 ]]; then + echo -e "${YELLOW}Warning: No valid files found in $file_list${NC}" >&2 + exit 1 + fi + + # Sort files deterministically for consistent partitioning + local sorted_files=() + while IFS= read -r line; do + sorted_files+=("$line") + done < <(printf '%s\n' "${files[@]}" | sort) + files=("${sorted_files[@]}") + + # Apply partitioning if requested + local total_files=${#files[@]} + local partition_files=() + + if [[ $NUM_PARTITIONS -gt 1 ]]; then + if [[ $PARTITION_NUM -lt 1 ]] || [[ $PARTITION_NUM -gt $NUM_PARTITIONS ]]; then + echo -e "${RED}Error: Partition number must be between 1 and $NUM_PARTITIONS${NC}" >&2 + exit 1 + fi + + # Calculate partition boundaries (deterministic split) + local files_per_partition=$((total_files / NUM_PARTITIONS)) + local remainder=$((total_files % NUM_PARTITIONS)) + + # Calculate start and end indices for this partition (0-indexed) + local start_idx=0 + for ((i=1; i&2 + echo -e "${GREEN}Partition $PARTITION_NUM of $NUM_PARTITIONS: ${#partition_files[@]} file(s)${NC}" >&2 + files=("${partition_files[@]}") + else + echo -e "${GREEN}Found ${#files[@]} file(s) to process${NC}" >&2 + fi + + echo -e "${BLUE}Root path: $root_path${NC}" >&2 + echo -e "${BLUE}Output directory: $output_dir${NC}" >&2 + + # Process each file + local success_count=0 + local fail_count=0 + local skip_count=0 + local total_in_partition=${#files[@]} + local processed_count=0 + + for input_file in "${files[@]}"; do + ((processed_count++)) + local remaining=$((total_in_partition - processed_count)) + + echo "" >&2 + echo -e "${GREEN}========================================${NC}" >&2 + echo -e "${BLUE}Progress: [$((processed_count-1))/$total_in_partition] completed, $((remaining+1)) remaining${NC}" >&2 + + # Get relative path from root + local rel_path="${input_file#$root_path/}" + + # Construct output path maintaining directory structure + # Change filename to add _seg before extension + local rel_dir=$(dirname "$rel_path") + local rel_filename=$(basename "$rel_path") + local rel_basename=$(basename "$rel_filename" .nii.gz) + rel_basename=$(basename "$rel_basename" .nii) + local rel_ext="" + if [[ "$rel_filename" == *.nii.gz ]]; then + rel_ext=".nii.gz" + elif [[ "$rel_filename" == *.nii ]]; then + rel_ext=".nii" + fi + + local output_file="${output_dir}/${rel_dir}/${rel_basename}_seg${rel_ext}" + + # Check if output already exists (before processing) + if [[ "$SKIP_EXISTING" == "true" ]] && [[ -f "$output_file" ]]; then + echo -e "${BLUE}Skipping (output exists): $input_file${NC}" >&2 + echo -e "${BLUE} Output: $output_file${NC}" >&2 + ((skip_count++)) + continue + fi + + # Process the file with overall timeout of 5 minutes + local timeout_seconds=300 # 5 minutes total per scan + local process_result=0 + + if command -v timeout &> /dev/null; then + # Use timeout command to limit total processing time per scan + # Export necessary variables for the function + export BUNDLE_ROOT KEEP_TEMP MODALITY SKIP_SKULLSTRIP + + # Export the function so it's available in subshell + # If export -f fails, we'll declare it inline in bash -c + export -f process_single_file 2>/dev/null + + # Run with timeout - use bash -c to ensure function is available + # Escape file paths safely using printf %q (bash-recommended method) + printf -v escaped_input_file %q "$input_file" + printf -v escaped_output_file %q "$output_file" + printf -v escaped_failed_log %q "$failed_log" + + timeout $timeout_seconds bash -c " + $(declare -f process_single_file) + process_single_file $escaped_input_file $escaped_output_file $escaped_failed_log + " 2>&1 + local exit_code=$? + + if [[ $exit_code -eq 124 ]]; then + # Timeout occurred (exit code 124 is timeout) + echo -e "${RED}Error: Processing timed out after ${timeout_seconds}s: $input_file${NC}" >&2 + echo "$input_file" >> "$failed_log" + ((fail_count++)) + process_result=1 + elif [[ $exit_code -eq 0 ]]; then + # Process completed, check if output was created + if [[ -f "$output_file" ]]; then + ((success_count++)) + process_result=0 + else + # Output not created despite success exit code + echo -e "${RED}Error: Output file not created: $input_file${NC}" >&2 + echo "$input_file" >> "$failed_log" + ((fail_count++)) + process_result=1 + fi + else + # Process failed (error already logged in process_single_file) + ((fail_count++)) + process_result=1 + fi + else + # Fallback: run without timeout wrapper + # Note: Without timeout command, we can't enforce the 5-minute limit + # but we can still catch failures + if process_single_file "$input_file" "$output_file" "$failed_log"; then + ((success_count++)) + process_result=0 + else + ((fail_count++)) + process_result=1 + fi + fi + done + + echo "" >&2 + echo -e "${GREEN}========================================${NC}" >&2 + echo -e "${GREEN}Batch processing complete!${NC}" >&2 + echo -e "${GREEN} Successful: $success_count${NC}" >&2 + if [[ $skip_count -gt 0 ]]; then + echo -e "${BLUE} Skipped (existing): $skip_count${NC}" >&2 + fi + if [[ $fail_count -gt 0 ]]; then + echo -e "${RED} Failed/Timeout: $fail_count${NC}" >&2 + echo -e "${YELLOW} Failed files logged to: $failed_log${NC}" >&2 fi } # Parse command line arguments INPUT_FILE="" INPUT_FOLDER="" +FILE_LIST="" +ROOT_PATH="" while [[ $# -gt 0 ]]; do case $1 in @@ -248,6 +564,14 @@ while [[ $# -gt 0 ]]; do INPUT_FOLDER="$2" shift 2 ;; + --file_list) + FILE_LIST="$2" + shift 2 + ;; + --root_path) + ROOT_PATH="$2" + shift 2 + ;; --output_dir) OUTPUT_DIR="$2" shift 2 @@ -256,12 +580,24 @@ while [[ $# -gt 0 ]]; do KEEP_TEMP=true shift ;; + --no-skullstrip) + SKIP_SKULLSTRIP=true + shift + ;; --modality) MODALITY="$2" shift 2 ;; - --conda-env) - CONDA_ENV="$2" + --no-skip) + SKIP_EXISTING=false + shift + ;; + --num_partitions) + NUM_PARTITIONS="$2" + shift 2 + ;; + --partition) + PARTITION_NUM="$2" shift 2 ;; -h|--help) @@ -275,13 +611,34 @@ while [[ $# -gt 0 ]]; do done # Validate arguments -if [[ -z "$INPUT_FILE" && -z "$INPUT_FOLDER" ]]; then - echo -e "${RED}Error: Either --input or --input_folder must be specified${NC}" >&2 +input_count=0 +[[ -n "$INPUT_FILE" ]] && ((input_count++)) +[[ -n "$INPUT_FOLDER" ]] && ((input_count++)) +[[ -n "$FILE_LIST" ]] && ((input_count++)) + +if [[ $input_count -eq 0 ]]; then + echo -e "${RED}Error: One of --input, --input_folder, or --file_list must be specified${NC}" >&2 + usage +fi + +if [[ $input_count -gt 1 ]]; then + echo -e "${RED}Error: Cannot specify multiple input options (--input, --input_folder, --file_list)${NC}" >&2 + usage +fi + +if [[ -n "$FILE_LIST" ]] && [[ -z "$ROOT_PATH" ]]; then + echo -e "${RED}Error: --root_path must be specified when using --file_list${NC}" >&2 + usage +fi + +# Validate partition arguments +if [[ $NUM_PARTITIONS -lt 1 ]]; then + echo -e "${RED}Error: --num_partitions must be at least 1${NC}" >&2 usage fi -if [[ -n "$INPUT_FILE" && -n "$INPUT_FOLDER" ]]; then - echo -e "${RED}Error: Cannot specify both --input and --input_folder${NC}" >&2 +if [[ $PARTITION_NUM -lt 1 ]] || [[ $PARTITION_NUM -gt $NUM_PARTITIONS ]]; then + echo -e "${RED}Error: --partition must be between 1 and $NUM_PARTITIONS${NC}" >&2 usage fi @@ -291,17 +648,36 @@ if [[ ! "$MODALITY" =~ ^(MRI_BRAIN|MRI_BODY|CT_BODY)$ ]]; then MODALITY="MRI_BRAIN" fi -# Check and activate conda environment -check_conda_env - # Change to bundle root directory -cd "$BUNDLE_ROOT" +if [[ ! -d "$BUNDLE_ROOT" ]]; then + echo -e "${RED}Error: Bundle root directory not found: $BUNDLE_ROOT${NC}" >&2 + exit 1 +fi + +cd "$BUNDLE_ROOT" || { + echo -e "${RED}Error: Failed to change to bundle root directory: $BUNDLE_ROOT${NC}" >&2 + exit 1 +} # Process based on input type if [[ -n "$INPUT_FILE" ]]; then - process_single_file "$INPUT_FILE" -else + # Single file mode + file_basename=$(basename "$INPUT_FILE" .nii.gz) + file_basename=$(basename "$file_basename" .nii) + rel_ext="" + if [[ "$INPUT_FILE" == *.nii.gz ]]; then + rel_ext=".nii.gz" + elif [[ "$INPUT_FILE" == *.nii ]]; then + rel_ext=".nii" + fi + output_file="${OUTPUT_DIR:-./eval}/${file_basename}_trans${rel_ext}" + process_single_file "$INPUT_FILE" "$output_file" "" +elif [[ -n "$INPUT_FOLDER" ]]; then + # Folder batch mode process_folder "$INPUT_FOLDER" +else + # File list mode + process_file_list "$FILE_LIST" "$ROOT_PATH" fi -echo -e "${GREEN}All done!${NC}" +echo -e "${GREEN}All done!${NC}" >&2 diff --git a/NV-Segment-CTMR/configs/batch_inference.json b/NV-Segment-CTMR/configs/batch_inference.json index 605e66d..2118459 100644 --- a/NV-Segment-CTMR/configs/batch_inference.json +++ b/NV-Segment-CTMR/configs/batch_inference.json @@ -1,7 +1,14 @@ { "input_dir": "@bundle_root", "input_suffix": "*.nii.gz", - "input_list": "$sorted(glob.glob(os.path.join(@input_dir, @input_suffix)))", + "input_root_abs": "$os.path.abspath(@input_dir)", + "batch_skip_dir_names": [], + "batch_skip_dir_prefixes": [], + "batch_resume_skip_existing": true, + "batch_use_input_list_cache": true, + "batch_cache_wait_sec": 120, + "input_list": "$scripts.batch_inference_utils.build_input_list(os.path.abspath(@input_dir), os.path.abspath(@output_dir), @output_postfix, @output_ext, @batch_skip_dir_names, @batch_skip_dir_prefixes, @batch_resume_skip_existing, @batch_use_input_list_cache, @batch_cache_wait_sec)", "input_dicts": "$[{'image': x, 'label_prompt': @everything_labels} for x in @input_list]", - "dataset#data": "@input_dicts" + "dataset#data": "@input_dicts", + "postprocessing#transforms#4#data_root_dir": "@input_root_abs" } diff --git a/NV-Segment-CTMR/configs/mgpu_inference.json b/NV-Segment-CTMR/configs/mgpu_inference.json index bc0e9c4..eecf12b 100644 --- a/NV-Segment-CTMR/configs/mgpu_inference.json +++ b/NV-Segment-CTMR/configs/mgpu_inference.json @@ -17,7 +17,9 @@ "initialize": [ "$import torch.distributed as dist", "$dist.is_initialized() or dist.init_process_group(backend='nccl')", - "$torch.cuda.set_device(@device)" + "$torch.cuda.set_device(@device)", + "$monai.utils.set_determinism(seed=123)", + "$@checkpointloader(@evaluator)" ], "run": [ "$@evaluator.run()" diff --git a/NV-Segment-CTMR/docs/README.md b/NV-Segment-CTMR/docs/README.md index 3e89a6b..600b9b1 100644 --- a/NV-Segment-CTMR/docs/README.md +++ b/NV-Segment-CTMR/docs/README.md @@ -2,9 +2,21 @@ NV-Segment-CTMR is a unified CT and MRI segmentation foundation model. It is based on VISTA3D CT model and extended to both CT and MRI. Please refer to [VISTA3D repo](https://github.com/Project-MONAI/VISTA/tree/main/vista3d) for more information. -## Performance on held-out test set +We defined 345 classes as in [metadata.json](../configs/metadata.json) and their corresponding dataset in [label_dict.json](../configs/label_dict.json). It shows the label organ name, index, training dataset, modality and evaluation dice score. If a class only comes from CT training dataset, it may not perform well on MRI, but the actual performance will vary case by case. We support three types of segment everything: "CT_BODY", "MRI_BODY", and "MRI_BRAIN". "CT_BODY" is the previous VISTA3D bundle supported 132 CT classes. "MRI_BODY" shares the same 50 label classes as TotalsegmentatorMR. "MRI_BRAIN" is trained on skull stripped [LUMIR](https://github.com/JHU-MedImage-Reg/LUMIR_L2R) dataset and will segment brain MRI substructures. +Preprocessing is needed. Follow [tutorials](https://github.com/junyuchen245/MIR/tree/main/tutorials/brain_MRI_preprocessing). The exact mapping for those three everything labels can be found in [metadata.json](../configs/metadata.json). -![Benchmark CT](./benchmarkct.png) ![Benchmark MR](./benchmarkmr.png) + +Example segmentations for **CT_BODY** (CT whole-body), **MRI_BRAIN**, and **MRI_BODY** (MRI torso): + +![CT_BODY, MRI_BRAIN, and MRI_BODY segmentation examples](ctmr.png) +``` +Note: The predefined segment everything does not cover all labels, user can select more classes as output. Below is a segmentation using the label list from AutoPetAtals. User can extract the label list from each dataset defined in configs/label_mappings.json +``` +![CT_BODY, MRI_BRAIN, and MRI_BODY segmentation examples](ctmr2.png) + +``` +Note: For Brain MRI segmentation, the model is able to segment 133 classes across diverse MRI sequences including T1, T2, Flair e.t.c. +``` ## Quick Start @@ -33,12 +45,12 @@ rmdir NV-Segment-CTMR/models/vista3d_pretrained_model ## Automatic Segmentation (support multi-gpu batch processing) -We defined 345 classes as in [label_dict.json](../configs/label_dict.json). It shows the label organ name, index, training dataset, modality and evaluation dice score. If a class only comes from CT training dataset, it may not perform well on MRI, but the actual performance will vary case by case. We support three types of segment everything: "CT_BODY", "MRI_BODY", and "MRI_BRAIN". "CT_BODY" is the previous VISTA3D bundle supported 132 CT classes. "MRI_BODY" shares the same 50 label classes as TotalsegmentatorMR. "MRI_BRAIN" is trained on skull stripped [LUMIR](https://github.com/JHU-MedImage-Reg/LUMIR_L2R) dataset and will segment brain MRI substructures. -Preprocessing is needed. Follow [tutorials](https://github.com/junyuchen245/MIR/tree/main/tutorials/brain_MRI_preprocessing). The exact mapping for those three everything labels can be found in [metadata.json](../configs/metadata.json). + + ## Single image inference to segment everything (automatic) -The output will be saved to `output_dir/s0289/s0289_{output_postfix}{output_ext}`. By default the everything will be "CT_BODY". Add "MRI_BODY" to segment the MRI body classes. +The output will be saved to `{output_dir}/s0289/s0289_{output_postfix}{output_ext}`. By default the everything will be "CT_BODY". Add "MRI_BODY" to segment the MRI body classes. ```bash # Make sure conda environment is activated @@ -57,8 +69,28 @@ The detailed automatic segmentation class index can be found [here](../configs/l python -m monai.bundle run --config_file configs/inference.json --input_dict "{'image':'example/s0289.nii.gz','label_prompt':[3]}" ``` -## Batch inference with multiGPU support for segmenting everything (automatic) +## Batch inference with multiGPU support (automatic) +The `configs/batch_inference.json` defines the batch inference, you can +1. Segment all NIfTI files within a folder and subfolders + - `configs/batch_inference.json` builds `input_list` with `scripts/batch_inference_utils.build_input_list()`: + - Recursively discovers `**/*.nii.gz` under `--input_dir`. + - **Resume (default):** with `batch_resume_skip_existing: true` in `batch_inference.json`, only volumes whose expected output is **missing or empty** under `--output_dir` are queued (same layout as `SaveImaged`). Re-run the **same** command to finish leftovers. Set `batch_resume_skip_existing` to false to segment every discovered file again. + - **Discovery filters:** edit `batch_skip_dir_names` (exact parent folder name) and/or `batch_skip_dir_prefixes` (parent folder name starts with…) in `configs/batch_inference.json` (JSON arrays of strings). + - **Optional keys** in `configs/batch_inference.json` (defaults in the file): `batch_skip_dir_names`, `batch_skip_dir_prefixes`, `batch_resume_skip_existing`, `batch_use_input_list_cache`, `batch_cache_wait_sec`. + - **`batch_use_input_list_cache`:** With `torchrun` (multi-process), only rank 0 walks the tree to build `input_list` and writes a small JSON cache under the system temp directory; other ranks read that file so you do not repeat a huge filesystem scan on every GPU. Set to `false` if you want every rank to compute the list itself (simpler, slower on large cohorts). Single-process runs are unaffected in practice. + - **`batch_cache_wait_sec`:** When `batch_use_input_list_cache` is `true`, non-zero ranks wait up to this many seconds for rank 0’s cache file. Increase if rank 0’s scan is slow; decrease only if the list is always built quickly. + - **Which classes to segment:** edit **`everything_labels`** in **`configs/inference.json`** (and `modality` / `--modality` as needed). See `configs/label_dict.json` and `docs/inference.md`. + - If **resume** leaves nothing to run (all outputs already present), the run **exits successfully** with `[nvseg] batch: nothing to run (resume); ok` (avoids a zero-length dataloader / `DistributedSampler` failure). If **no** `*.nii.gz` files are discovered under `input_dir`, you get a short `[nvseg] batch: no *.nii.gz…` error. + - Rank 0 logs: `[nvseg] batch resume (skip existing outputs): N volume(s) (...)`. + - **Multi-GPU:** `--nproc_per_node` must be ≤ the number of volumes in `input_list` after filtering. + - **Outputs:** With `data_root_dir` and `separate_folder: true`, `input_dir/patient1/mri/scan.nii.gz` → `output_dir/patient1/mri/scan/scan_trans.nii.gz`. Ensure `models/model.pt` exists. + - Advanced: edit `should_skip_path_by_parent_rules()` in `scripts/batch_inference_utils.py` for custom path rules. + +2. Segment based on a filelist.txt file, you can change the `input_list` in `configs/batch_inference.json` +``` + "input_list": "$sorted([os.path.abspath(line.strip()) for line in open('/absolute/path/to/filelist.txt') if line.strip() and not line.strip().startswith('#')])", +``` ### Single-GPU Batch Inference ```bash @@ -69,68 +101,82 @@ conda activate vista3d-nv python -m monai.bundle run --config_file="['configs/inference.json', 'configs/batch_inference.json']" --input_dir="example/" --output_dir="example/" --modality MRI_BODY ``` -### Multi-GPU Batch Inference +### Multi-GPU batch inference (cohorts, resume, optional folder filters) -**Important**: Always activate your conda environment before running `torchrun`. If you don't, you may encounter `ModuleNotFoundError` because `torchrun` will use the system Python instead of your conda environment's Python. ```bash -# Activate conda environment first (CRITICAL!) conda activate vista3d-nv -# Automatic Batch segmentation for the whole folder with multi-gpu support -# Change --nproc_per_node to match your number of GPUs -torchrun --nproc_per_node=2 --nnodes=1 -m monai.bundle run --config_file="['configs/inference.json', 'configs/batch_inference.json', 'configs/mgpu_inference.json']" --input_dir="example/" --output_dir="example/" +# Example: multi-GPU batch (same command for first run or resume) +torchrun --nproc_per_node=2 --nnodes=1 -m monai.bundle run \ + --config_file="['configs/inference.json', 'configs/batch_inference.json', 'configs/mgpu_inference.json']" \ + --input_dir="example/" \ + --output_dir="example/" \ + --modality MRI_BODY ``` -`configs/batch_inference.json` by default runs the segment everything workflow (classes defined by `everything_labels`) on all (`*.nii.gz`) files in `input_dir`. -This default is overridable by changing the input folder `input_dir`, or the input image name suffix `input_suffix`, or directly setting the list of filenames `input_list`. - ```text Note: if using the finetuned checkpoint and the finetuning label_mapping mapped to global index "2, 20, 21", remove the `subclass` dict from inference.json since those values defined in `subclass` will trigger the wrong subclass segmentation. ``` -## Brain MRI segmentation +## Brain MRI segmentation (any MRI sequence) -For brain MRI segmentation, we only support T1 and require preprocessing. We provide a convenient bash script that handles all preprocessing steps automatically. +For brain MRI segmentation, we require preprocessing. The script `brain_t1_preprocess/run_brain_segmentation.sh` runs from the bundle root: it changes into the NV-Segment-CTMR directory next to `brain_t1_preprocess/`, so invoke it from the repo (paths like `example/...` are relative to that root). Activate your Python/conda environment (for example `vista3d-nv`) **before** running the script; the script does not run `conda activate` for you. ### Using the Brain Segmentation Script -The script `brain_t1_preprocess/run_brain_segmentation.sh` automates the entire pipeline: skull stripping, preprocessing, segmentation, and reverting results back to original space. It also handles temporary file cleanup automatically. It is modified from [MIR tutorials](https://github.com/junyuchen245/MIR/tree/main/tutorials/brain_MRI_preprocessing). +The script automates skull stripping (SynthStrip via `brain_t1_preprocess/synthstrip-docker`), affine alignment to the LUMIR template, MONAI bundle inference, and reverting the mask to the original image space. Temporary files are removed after each case unless you pass `--keep-temp`. It is modified from [MIR tutorials](https://github.com/junyuchen245/MIR/tree/main/tutorials/brain_MRI_preprocessing). + +#### Single file -#### Single File Processing +Output path: `{output_dir}/{basename}_trans.nii.gz` (default `output_dir` is `./eval`). ```bash -# Process a single brain MRI file -./brain_t1_preprocess/run_brain_segmentation.sh --input example/brain_t1.nii.gz +conda activate vista3d-nv # or your env with MONAI + deps -# Specify custom output directory +./brain_t1_preprocess/run_brain_segmentation.sh --input example/brain_t1.nii.gz ./brain_t1_preprocess/run_brain_segmentation.sh --input example/brain_t1.nii.gz --output_dir results/ - -# Keep temporary files for debugging ./brain_t1_preprocess/run_brain_segmentation.sh --input example/brain_t1.nii.gz --keep-temp +./brain_t1_preprocess/run_brain_segmentation.sh --input example/brain_t1.nii.gz --no-skullstrip ``` -#### Batch Processing +#### Folder batch (`--input_folder`) + +Only `*.nii` / `*.nii.gz` files **directly inside** the given folder are processed (`find` with `-maxdepth 1`; no subfolders). Each output is written as `{output_dir}/{basename}_trans.nii.gz` (flat layout). ```bash -# Process all NIfTI files in a folder ./brain_t1_preprocess/run_brain_segmentation.sh --input_folder example/ --output_dir results/ - -# Batch processing with temporary files kept -./brain_t1_preprocess/run_brain_segmentation.sh --input_folder example/ --keep-temp +./brain_t1_preprocess/run_brain_segmentation.sh --input_folder example/ --output_dir results/ --keep-temp ``` -#### Script Options +#### File list (`--file_list` + `--root_path`) -- `--input FILE`: Single NIfTI file to segment -- `--input_folder FOLDER`: Folder containing NIfTI files (batch mode) -- `--output_dir DIR`: Output directory (default: `./eval`) -- `--keep-temp`: Keep temporary preprocessing files (default: false, files are cleaned up automatically) -- `--modality MODALITY`: Segmentation modality: `MRI_BRAIN` (default), `MRI_BODY`, `CT_BODY` -- `--conda-env ENV`: Conda environment name (default: `vista3d-nv`) -- `-h, --help`: Show help message +Lines in the list are paths relative to `root_path` (comments and empty lines allowed). Outputs mirror that relative layout under `output_dir`, with `_seg` before the extension (e.g. `root_path/sub/scan.nii.gz` → `output_dir/sub/scan_seg.nii.gz`). By default, existing outputs are skipped (resume-friendly). Optional: split the sorted list across jobs with `--num_partitions N` and `--partition M` (1-based). -**Note**: The script automatically activates the conda environment and handles all temporary file management. By default, temporary files are cleaned up after processing. Use `--keep-temp` if you need to inspect intermediate results. +```bash +./brain_t1_preprocess/run_brain_segmentation.sh \ + --file_list file_list.txt --root_path /path/to/root --output_dir /path/to/output +./brain_t1_preprocess/run_brain_segmentation.sh \ + --file_list file_list.txt --root_path /path/to/root --output_dir /path/to/output --no-skullstrip +./brain_t1_preprocess/run_brain_segmentation.sh \ + --file_list file_list.txt --root_path /path/to/root --output_dir /path/to/output \ + --num_partitions 10 --partition 3 +``` + +#### Script options + +- `--input FILE`: Single NIfTI to segment (mutually exclusive with `--input_folder` / `--file_list`). +- `--input_folder FOLDER`: Batch only the NIfTI files in that folder (not recursive). +- `--file_list FILE` and `--root_path PATH`: Batch from a text list (requires both). +- `--output_dir DIR`: Output directory (default `./eval`). +- `--keep-temp`: Keep per-case temporary preprocessing files (default: delete after success). +- `--no-skullstrip`: Skip SynthStrip; preprocessing starts from the original image. +- `--modality MODALITY`: `MRI_BRAIN` (default), `MRI_BODY`, or `CT_BODY`. +- `--no-skip`: Recompute even when the expected output already exists (**file list mode only**). +- `--num_partitions N`, `--partition M`: Deterministic shards of the sorted file list (**file list mode only**). +- `-h`, `--help`: Print usage. + +**Note:** Skull stripping calls `brain_t1_preprocess/synthstrip-docker` (Docker must be available unless you use `--no-skullstrip`). In file list mode, failed or timed-out cases are appended to a timestamped log under the output directory. ### Manual Processing (Advanced) @@ -174,169 +220,13 @@ For more details, please refer to [this](inference.md). ## Continual learning / Finetuning -### Step1: Generate Data json file - -Users need to provide a json data split for continuous learning (`configs/msd_task09_spleen_folds.json` from the [MSD](http://medicaldecathlon.com/) is provided as an example). The data split should meet the following format ('testing' labels are optional): - -```json -{ - "training": [ - {"image": "img0001.nii.gz", "label": "label0001.nii.gz", "fold": 0}, - {"image": "img0002.nii.gz", "label": "label0002.nii.gz", "fold": 2}, - ... - ], - "testing": [ - {"image": "img0003.nii.gz", "label": "label0003.nii.gz"}, - {"image": "img0004.nii.gz", "label": "label0004.nii.gz"}, - ... - ] -} -``` - -Example code for 5 fold cross-validation generation can be found [here](data.md) - -```text -Note the data is not the absolute path to the image and label file. The actual image file will be `os.path.join(dataset_dir, data["training"][item]["image"])`, where `dataset_dir` is defined in `configs/train_continual.json`. Also 5-fold cross-validation is not required! `fold=0` is defined in train.json, which means any data item with fold==0 will be used as validation and other fold will be used for training. So if you only have train/val split, you can manually set validation data with "fold": 0 in its datalist and the other to be training by setting "fold" to any number other than 0. -``` - -### Step2: Changing hyperparameters - -For continual learning, user can change `configs/train_continual.json`. More advanced users can change configurations in `configs/train.json`. Most hyperparameters are straighforward and user can tell based on their names. The users must manually change the following keys in `configs/train_continual.json`. - -#### 1. `label_mappings` - -```json - "label_mappings": { - "default": [ - [ - index_1_in_user_data, # e.g. 1 - mapped_index_1, # e.g. 1 - ], - [ - index_2_in_user_data, # e.g. 2 - mapped_index_2, # e.g. 2 - ], ..., - [ - index_last_in_user_data, # e.g. N - mapped_index_N, # e.g. N - ] - ] - }, -``` - -`index_1_in_user_data`,...,`index_N_in_user_data` is the class index value in the groundtruth that user tries to segment. `mapped_index_1`,...,`mapped_index_N` is the mapped index value that the bundle will output. You can make these two the same for finetuning, but we suggest finding the semantic relevant mappings from our unified [global label index](../configs/metadata.json). For example, "Spleen" in MSD09 groundtruth label is represented by 1, but "Spleen" is 3 in `docs/labels.json`. So by defining label mapping `[[1, 3]]`, VISTA3D can segment "Spleen" using its pretrained weights out-of-the-box, -and can speed up the finetuning convergence speed. -If you cannot find a relevant semantic label for your class, just use any value < `num_classes` defined in train_continue.json. -For more details about this label_mapping, please read [this](finetune.md). - -#### 2. `data_list_file_path` and `dataset_dir` - -Change `data_list_file_path` to the absolute path of your data json split. Change `dataset_dir` to the root folder that combines with the relative path in the data json split. - -#### 3. Optional hyperparameters and details are [here](finetune.md) - -Hyperparameter finetuning is important and varies from task to task. - -## Step3: Run finetuning - -The hyperparameters in `configs/train_continual.json` will overwrite ones in `configs/train.json`. Configs in the back will overide the previous ones if they have the same key. - -Single-GPU: - -```bash -# Make sure conda environment is activated -conda activate vista3d-nv - -python -m monai.bundle run \ - --config_file="['configs/train.json','configs/train_continual.json']" -``` - -Multi-GPU: +See [details](docs/inference.md) -```bash -# Activate conda environment first (CRITICAL!) -conda activate vista3d-nv - -# Change --nproc_per_node to match your number of GPUs -torchrun --nnodes=1 --nproc_per_node=8 -m monai.bundle run \ - --config_file="['configs/train.json','configs/train_continual.json','configs/multi_gpu_train.json']" -``` - -### MLFlow Visualization - -MLFlow is enabled by default (defined in train.json, use_mlflow) and the data is stored in the `mlruns/` folder under the bundle's root directory. To launch the MLflow UI and track your experiment data, follow these steps: - -1. Open a terminal and navigate to the root directory of your bundle where the `mlruns/` folder is located. - -2. Execute the following command to start the MLflow server. This will make the MLflow UI accessible. - -```bash -mlflow ui -``` - -## Evaluation - -Evaluation can be used to calculate dice scores for the model or a finetuned model. Change the `ckpt_path` to the checkpoint you wish to evaluate. The dice score is calculated on the original image spacing using `invertd`, while the dice score during finetuning is calculated on resampled space. - -```text -NOTE: Evaluation does not support point evaluation.`"validate#evaluator#hyper_kwargs#val_head` is always set to `auto`. -``` - -Single-GPU: - -```bash -# Make sure conda environment is activated -conda activate vista3d-nv - -python -m monai.bundle run \ - --config_file="['configs/train.json','configs/train_continual.json','configs/evaluate.json']" -``` - -Multi-GPU: - -```bash -# Activate conda environment first (CRITICAL!) -conda activate vista3d-nv - -# Change --nproc_per_node to match your number of GPUs -torchrun --nnodes=1 --nproc_per_node=8 -m monai.bundle run \ - --config_file="['configs/train.json','configs/train_continual.json','configs/evaluate.json','configs/mgpu_evaluate.json']" -``` - -### Other explanatory items - -The `label_mapping` in `evaluation.json` does not include `0` because the postprocessing step performs argmax (`VistaPostTransformd`), and a `0` prediction would negatively impact performance. In continuous learning, however, `0` is included for validation because no argmax is performed, and validation is done channel-wise (include_background=False). Additionally, `Relabeld` in `postprocessing` is required to map `label` and `pred` back to sequential indexes like `0, 1, 2, 3, 4` for dice calculation, as they are not in one-hot format. Evaluation does not support `point`, but finetuning does, as it does not perform argmax. - -## FAQ - -### TroubleShoot for Out-of-Memory - -- Changing `patch_size` to a smaller value such as `"patch_size": [96, 96, 96]` would reduce the training/inference memory footprint. -- Changing `train_dataset_cache_rate` and `val_dataset_cache_rate` to a smaller value like `0.1` can solve the out-of-cpu memory issue when using huge finetuning dataset. -- Set `"postprocessing#transforms#0#_disabled_": false` to move the postprocessing to cpu to reduce the GPU memory footprint. - -### Multi-channel input - -- Change `input_channels` in `train.json` to your desired channel number -- Data split json can be a single multi-channel image or can be a list of single channeled images. Those images must have the same spatial shape and aligned/registered. - -```json - { - "image": ["modality1.nii.gz", "modality2.nii.gz", "modality3.nii.gz"] - "label": "label.nii.gz" - }, -``` - -### Wrong inference results from finetuned checkpoint - -- Make sure you removed the `subclass` dictionary from inference.json if you ever mapped local index to [2,20,21] -- Make sure `0` is not included in your inference prompt for automatic segmentation. ## References -- Antonelli, M., Reinke, A., Bakas, S. et al. The Medical Segmentation Decathlon. Nat Commun 13, 4128 (2022). - -- VISTA3D: Versatile Imaging SegmenTation and Annotation model for 3D Computed Tomography. arxiv (2024) +- Antonelli, M., Reinke, A., Bakas, S. et al. The Medical Segmentation Decathlon. Nat Commun 13, 4128 (2022). [https://doi.org/10.1038/s41467-022-30695-9](https://doi.org/10.1038/s41467-022-30695-9) +- VISTA3D: Versatile Imaging SegmenTation and Annotation model for 3D Computed Tomography. arxiv (2024) [https://arxiv.org/abs/2406.05285](https://arxiv.org/abs/2406.05285) ## License @@ -345,11 +235,10 @@ The `label_mapping` in `evaluation.json` does not include `0` because the postpr This project includes code licensed under the Apache License 2.0. You may obtain a copy of the License at - +[http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) ### Model Weights License The model weights included in this project are licensed under the Non-Commercial -[NCLS v1 License](https://developer.download.nvidia.com/licenses/NVIDIA-OneWay-Noncommercial-License-22Mar2022.pdf?t=eyJscyI6InJlZiIsImxzZCI6IlJFRi1naXRodWIuY29tL252aWRpYS1ob2xvc2NhbiJ9) - +[NCLS v1 License](https://developer.download.nvidia.com/licenses/NVIDIA-OneWay-Noncommercial-License-22Mar2022.pdf?t=eyJscyI6InJlZiIsImxzZCI6IlJFRi1naXRodWIuY29tL252aWRpYS1ob2xvc2NhbiJ9) \ No newline at end of file diff --git a/NV-Segment-CTMR/docs/ctmr2.png b/NV-Segment-CTMR/docs/ctmr2.png new file mode 100644 index 0000000000000000000000000000000000000000..029a2b7673b89430290067b4a93165d80d2b8e88 GIT binary patch literal 315540 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 *_3si=Xtc+xPJ^Fo~-irdCm@0a9?r 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

9pVSM;(f2Ah)~5 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%0D2D-L(za)Iye%A@|rLSeipRd3ZI|AqF{f{{~ z0oEVS{y{niHQlBrGmOu<*k8!IPbC_~N&7t%(&x^lleSMM*SinQ=lP+8?>W6EUt2aU zYmbi_ZeZwso@Ub*XzDbZB#Aoc8y;gO2sJI~g1qf-0nI?$rko0|-$-d6=M}BPo%K@; zunj4Kq(Xm>(^GkqmM?J-eZ!UC*6C&@#>UDw{h4tjw@6n&dkL#B!zhI7Hy=}-?SE=3 z!-P9YCHd(4)XwS)M8>Ec;%*0RD#98;4x3cq@SHu#o(S?iKicNfyd%ZMmO8E(dI~n& z1lt_Szb9TnR*4y}L)_$=8`!itzJ=eV`;?2e$)dqU-Q)BGJvnez<}EvPP=z zc!Fvc;p;>=dK;AMqw-^E8_PHOi`zie#bkcwFQ>}L<{XavUG!qD-u;HJu*o_2z57ARNrx0% zabUgBCp`eHs^bzuc4?3Y_ge)Qv$D#|Lm*8QPi@`93Pq9I)t29L%@$kn>BDPckxgv= z^vlgWhtOCjLD*iL@|%i=UP5wmhx1C_X3ouj$WrkjcP1Z~wQP6pk%a?U2$W?!jr0nFh(^B z($uAD06VcGaVS0-51iiF!YDEl8%6$;W?L0#%5D;E4+;Zu#IwUV0Iwm8%DTzvuuA%p z@%BX^)tncvbEUbwAf35iU%h<5ZxemJ$&M;cB}g1!H8vteC;~`kdpLPba8L*_DIKCK z?0DdUs6ut1<$Z!Xn-AEgv-R+I2flxmP)))g^e^c}=ZI5NJ24Jh$^ci-9;#{Rh`3kS z2l7GL^|&JuSB;I;u&Skliv2hR)#Kt>Jy@tc5%(TWlj((u5LXTD7=DMP$;5GU^UFUM zzx{J)+iF)my)B_UeaFY6YhsH?#IO`@9`k){+G)3@6AIQuT6OB$hR!E)gj2}) z{t+`8(TLns>t$PiCnjcEh;&?xPA}J2ibiMo3nkY4K1t4V5Odn&A-yfG+a_zn=VW-E zh20@kN&a-ftJVdCn~$?mg4q3yYOvPnIv$O`^$}2axnt{pb=_>u_PxC?fkm`nwtE~x ztDx7FxV`tjbFYL4H0T6lV>Zd`RDR6k>u@n;-WoKT#s8bfA7}wFX*D3S{g-+Es1@UC zQlMUAkCT4qn^+}d_ZXMXk0S3DySC$z-XEWC5Wz9E^qsfvKmz6&=wmPd&MwgsP{4jY z==bGB1gIOm%;&S>DoPs<(Kmtx@DO!>Z_Yp<PE5q*w1bDVw_O>`lgPT8V72G9v1f&26t z_{X(Z2x7>X$kDu5XQ+UkQwRBAFliB$T|NEJ?ePKim{U;E7p~|u zR$?w%nylIV{uY`qq3abe2z0g7=fm2D_3jP?kW~$rv$zgagk_7N6Vo~UZ!71(`S)eS z5z+!hi}&d*C{LbPZHQna>ff3j+BDV0mEyH**=WL83pPv2@A<|0+JGE=eM4p=&lpv- zgQfuLT%Wg31c5Zui})Y_03-{; z55g}f;djre>ipI&m54?*O7j&|>$8xS*v4m5XJOZB5DT_eTqgD8x4{r)VZxn9QYa}lFz$NY{WY1)UF0ktTrguKe+XGg884WTj(;_E7qCm= z@~I!ce$+1m$cOCj6%HvtB5Nuu>M#)y{QSgh%v6~je8z+B2kuS=CE{1m9l(&WPMpvo zMj2wm!2yK5vrrZpy1{5=xU*pD3kD2NF+fkcjKVa0_|8^?t+?gf?w`V6pl(b7BjP&3 zQJ6az?IgclR7D8bfKuQ2G@!Q88jWl^4y@Kw%w2LQQ)?-(H*diHxvTiB;J4ZL($ItQ z3cg}%hFJPUI^1r+aUmb4JUEqON-T|F&G&0unRRoFxyy&XccG(!;iNA$HyfiwAA6T8(1o#q(zttoK~jC>D>gWvLGsidg#g z%_leZ?{VOB%Hgot%;(^Q35nh&&iBXDYqP6+zIHJid{a7(#3u*>N0?D~zC6f9)kM&v)=zNoWomD{x(*NCPUB!& z5*Q?t>IQ2B9?icjE?s*MV@A1jBLFhV*PSj&gPy&Z8V42e=079o%yz{Z=RBRfjU(7) z;O0pyKhpE*eXrnGynaN}mcHrBtYOk`8XiSlXi$w6fi+cXh%NrICxK1K-N^@-zF&z; zqBT@rz)uFLI7sntGaQ5w^-cQq5Q`^gCZ{qZh4sY`zynyqoBzc=5gWpWSN*-9 z)|C&~G~$9wv0MT|NurJEKO(jpG<`|oSm0VENT&~zQ1n$KxoT9ZihP$$IQxzijFvys zYVzFe!SA@8NhL)ySv(6`0zk`ysi7%G9@@V@4^M>IE`(IaFNO=*XOs7uFcIvLR|cqv z7V1^0$MO#c5b2}=5s+{UYX6djp!s_tHq$)0KIIq8*pHy_k`|bm=B#6>cQIc&g`d^F zBXyl{pZT!PSO(sjr%%!z1xR}mRix}b^;nU0;+JdtMhH-ftZJcOpKcyxY6MURurUsY zY7|+BKSwTSCH7XV82$Q9r^S9b&c!9Lx>|ZMsyy+Bad?}U^n5KMYBk&l?- z$i3l-n5ON=zuU}sXp*Voi#N1ykBtVcb3k-Bk-`QmYpuPIxckbm$X0?r{BV{Q#9yJ8 z%1m%o8(>s{UcY|?i7$7$>k&dKrBUbSRAV|@FCjY1yKQ^(H2+GJWG@1f+F!oA zC%F9V887p8cn&+j+GqhKIcl?*Ew;&Ed0!?O;3EbnWV)Tr7h3Yh7Syn1Y$+Pwo9Z2; z#UnJ|qEi)$&5^h78P?Xa-Yn*#Z+mzJmXKiD6A*(Ny`Ox+2D-Wk*iumCidio+m5#jbTp8d~YpSbPu z5hsop%(o%qdNDPLk+gV%toCmpFjRF7y>c6~8jr!*YZH7R3HT3gXN#J?+T)9Rcy4Q` z@|q_{gcJs4skans9DrcKxU{O+OoPS4&6`5?gLVmH^m^HCuiQs}$VO&7#@xX47)4(1 z<)(wKBPoU&uXc-Y(5Y(Isw# zlz(HbQX0xB{fadLfIeYF%86<|>T@nf+}9;7Pb%8-S#?-3X=wt`RSCLJkpX}FP=s}7 zsmO16e81nKn)3Aau8j#%P7bzV_e)X9N`q@Wx1`*`sR&Vr5U6mfz|vF{)pkF@vmb=0 zY(y2@s^f0s#Xk3h<+y-qcMiS#=ARkKdNZ}Ig^XOtycOi;?Aa_KNNiWIwUE}jgJ0Fv z5`O7ie)W-WL=MuO`}x1lZ>Uj02h935NB6XRo?eD?8t~!&f~uCF49pjdeAgcyYwcYz zwIj6{Qt&f+2akwOi}SoKENWYG+Y6~m8-Q@;uD$X9XGOUL@&q#?0n$*-u_vo;3z?w- zV&kA6H(sTE1Z1$t^3QjB96VLXXoXS2YwoTZNb#zJy*DNWEH~^qCIEEyC}rIcRL$Ft{GIK_=xJ(v6PYo@Edw>FNQb&^x7QkXz+o;k znfK3nH`f&+he_DCHXoy*C`|Jg-?)oG07<02z}xm#xc(J-8&a5lQHnOZy%#lxm+es& zt_p1o?teriO8kmFfr{SE+ zT?+_+@>qQVbi)8PuEgDzQCR^YP;$IInroigNVu6uptVm7qtUopK%o@ttvUsV#;Mdsc5t5t3zW|uf+tG&%Lzn<&0^c_up|Ka~O zM3;E8>gFURjZ&<}!lnn+_YWIcR{1oU19s6|?($>;BE1U2m75oFrprU2uC_n(+HT+4 z(kzp1k6E{=8{If6?f(0`&q{Bk{ZoAR*G#|y50ESOIK)MS0I?B zzPCu~=utvyzY^A$EJYmZh;9VD97IV=X(eS*F_qNe+6t(~?V(aZk`YqFzsXbmR(^5W zPXYY)PU*PXo>UUox3}Cp3$%ctDmAr;5KvRY%C*FWt>#abt$>jlI4+(IqX%Yk zu&1wkyb`L8)LD@I#B#CtT?$UCfvgvZ{`-c?z6LFUC=e80Pg{wVelj3k$v%mGu^O{z&CC{;B1?%BS|{~mip z`MX{e`rU~c#nu!?BgSXzCTU^2hs$%`fCSTB{O5co$hn-jx6R~7E^ff*^2g?jlp$P) z26lj13{*Y}%0G-W!Jf>kNFm~#PJ|BL`#X?iwG-DdKD;^I?(+NB866QgI0H~sm}goi zqNJ!m|DSHx=7B9_!o5OXx!K$do7(N?duZiO7=3 zwiWFKw6ZwNLnxQ-TBo(Cg0CUr(2|t@KuC#;O42qvP80!dj@?-rZZg1r3&IP7f;3a&5C}BNdIqOT#;5W9O6? z1IyfoAUK@cWz@l?(7sXKwsz4;#PPJ*$m7yY@j@J3|BIwlCuH1o6*q-~%ET-+N)Q#l z_2B2DOG(Zh&@M+@l=zR8c$f`BM!-uIeI_sQvVY%9GVGD-6w0gS~F5 znc3`T*o5)zHL(X2BF-+a&_*4#m<0#i2wP!m$xvI)e^g1J&6M z-kMoKYNWAuF%yRN8=2a4bS+`mg<|aj5ZM>FSWs4zQkSfRrk6(#hVSv_xVS>%M502b zWa7eay{rumv)wP&BjE>^*42~B-=K!MNt8^0KcHi#wrHDhu@MKe;=Pl_elRG^-IHAq zMiK%bRl=^_{98GjON5u(;ki@Ep!Ol{Z6Yy={4yZkROys^K6Ie3;rbOJnNYRk?D4hi z>gs|0tQ(tLR@fQ(M2yE}5LRo@d6Z*bdZqmxJm_S#AFZE^Oz}?4BrIeUYC{~nJU#`1U0tDQI(3cf@fWvz8MF8XMgdSdGq6;HM{sru z(k}Z}EG5oSKYA?oURCPlo~NE1EpZ&)U%ml=RlOeMB;3@&jt8&fs5hS0EmR|Wl@~i& ze#>%o?OSq7P8TIg?U&Goe!JOq6p7!vvnx$|bzsCT-)(mp<5q@^2GaQdqA zenAo`)A#=E+3g|p0N~^VqwbcrEjsNCE7&GkxjzwnhNJsZjEI5}+%Z(&D(uvtYf&Ua zVDDtR_F}37zb&g}@nE9FZ2#7B_k}|$Va+P*IZ`p%9e7zU`8x))v*Q0;c^Qef>9BoU z7e-O|*NK?#=1CZV^@9bkS#U(f>0i@HNla3NoAy)=_1y2Lt@@oagEeS;6u@I|8Q*5> zmFov^1&0leis^h2nj{cAe=u~E!Y0dQ-QbQzP-ehXxA4W+Y57t!_N$FImayuE%o!C z*7g#9g0?5G*u6X`(+&Feo^5?DgHKJ zy@}W(&rm4XvL)$$=lsed z0RS7r1)Z0v>akp&H40HpIWH^a@yohBRS);)dp0UY2u*7!MSVNmBV~H^aAKd*t$KxD zs!wvVgbHb! z!F%eQpePn$P)fx%coA4E+!20n08(cJA7HT>FujiEu`{~=6CxnwKI{GJVzd~Sr~HJ8 zve(|q1ZO@xv$3%;SDcI}o+(Fwqo^AXTI|@U4!Uu9{_#cmPS#bp6j&8McK) z1}GBorq3E)G??NN$T2rjJj7t6BTohX_kT19W^oL}iTZ-F!F`6Kuu)@wfI2t)+m^b( zXLuw<*7^;>^BbZ9pQQr^c|jaiBHt3p&IcuY(cDLQe~ zSQ_Lvkj3WL^}e!Ie9^4+z4`bFlOH$5A9-kd<*%@_=C4 zlIh$r3#1B=3EU|_xW3w(+0wK4%JzJP6F)D=B2x0#!}vcffOqa7*UE2Nm}elq7T$l9 zTy{JKS`Z``E=Ua3;ol+#p@CDL*Va6`;_q^p{ z!I+W3C|V~8e2%6IwQ)UM;dM{!G<5;UVY|s!Q$H3UDBIHwVh1Y7#gYOZ8G(1a-HT^x z>*a@$)D3T=?MwtivF-!*5c=-4s$0~OM|wD(CP0_-O=5YPa*RSUq_X<%wNfn!eRrmWq`c3N zkorrjg?8rr-Y4TRCcBJHmzGDfpRWbl`P3WvmOIZepY^`9-&2xHk0C_`a3ZJwmUQ~~ zF`{4l7+t^RUzRG3xD5$BZ_?bGM(314a!U&|o-y?NDvH{QKbHG^3hiGo9Hq}z0UFmG z6S{Y1sIW>*ch4nN%SyX`7j!fH%6V=v=lcF+w)RKnISeEV364OEWAh&_-rpx%aU@_% z!3SOY;bArM5#_I@ib2#PGuIJlvh?y4KtV0mcD9D%jp9dDS+a?-nNRq+8DaY)_YXDH z9x>le=EW;tPNXAvH;wTyN>r1#4U^QOjhxMwb~V9L>ayTf+lgH6POMpem6!c}GMxc8 z)7NCmRh7F(@4+8ai%lX*D5z_)W{e`N-GvimQhWf&1(up$Daa~_H$myR3G{)+25o!j zP6VXGv2D(K1W2?qgR-h%Z8+Vj#>xlqyTQVM43y55H4(b}zHxJH+gDaan2(ZRlb!Vk zapxr{=yzW&XUZNXECrL2j+@d2Us5491euzbJ%0e|UIt#GWI_zpzp^+%=eyM*H4bn6 zt(&q%d>~X&|h4*>FtCIXXJZxc<+7q@2*8Vv7$m9skPtR6~^LE6*fh>n`Ajuojc{ zwaOD_8t`{hQ?*PciaYFDCw<3)#Derk|4~D+5%(4p)ZAW=YU|Dg%ESelLDPEq_O819 zAFH-=+b)>iNH3=>4Xf`N=HW6vfJ*nVi8t3xImx}*S$=&(-IV`^3eqBvDfZCb`tOiO!n|35b|i{C(z~oriL@*AjHx#;b?3q-m{stU zk&!=0j|j5G;ia0x{}~LmaH`Zkb^8AU`S0FCN7Qp z#+$SIup}@*y*PhsMf+d_M&?ZyC;rux1^x_Q>P z;p*^fLg>D6Seg{7q<;A^^rO3u7;!Fz(eNF(vO%n#;}7zKU`H$!Z#$tFk_2oX3sC?T z!C^^tNIN{eu?@cCYYCb*+mO!n-zvbC>u~F#Nm|f2gTtDY2u)f5jAO~^8;a|`d&>#< zoe*oZ){)TO{GxF2M{Ez<3tVm|VFGE3%nze!DhA&Jk|S~`>LTi z&d_HUwGbY^>tm#eWyY&cVED~k8s^NR%E3E=8FnR)oRoKh3m61gOh3W^YKs;4=!SO(O~yO1;tDZ{UMP1L`qv((D{*l$V@f&E8vM1*cB zqb;g^CL0BM(Ze&Hoty}$_PD1hPI9cIEL~thsCoXJxFZ^_Qm54rj+dpBD>Mf%w+RK1 zcc@nUvsFb2KAJidoVi|rL~bzTuvi{VN|UujsuqegtDl9h6Ag~Z$QEX|FyH0dR5BMh zUh+<;KE!?iLPV)<21JysNTw`(2rv+R)7??(3Z>~t zywyHP#*{a}`?e_@%BEGjCCXU~_ROt$OhPqKHk`C^UEeD+ZUX|6zy4-Ne93jFU(~MS z$+)E02^BS^^h4B0gv>=In_DsH281WAJ%9gjuT3E4fAyBa2L$fRAGWpn9e&+V;Z1#< z6?|*^N;vqW`)Xe$1DR^BBxEMKWDjpoFfdJ^A$li0Jw0zVCmlBx^gQ!kuW-W9^USAm zJ~f#;^~Y(ChdBb8hJ4d&7;`lp_D7MOY?qV&mb+b}U-OHc#p3%;Xz%{~{W3k`IR9RJ zV%zvhSXHa1+d|gg4ZxD3MRx}B%XA2^P#|P)xA|7;?A%`3gF>!)he1hRt7`{LIXq^_ zY%PS_cdMl)ZE(c;?-er*I`Xi{;?`g9G0{55u@oSv-~m+po^S~{;>+=#l|Qpg6!Jrx z1y*H-G1Eug5kC?5v_rQ~r|KM}T_Z8Q_9Q`+dwUYih2>`~{VHMRM75OT9r?Y!&}-t- zJMSWT7%2=fDPqL`eHR@&-&fks?XN_b5NNPCleS*7=QsHt-IS*W4&vA2n?7M-tDAe4&PTxouneuDHI z5@1U$155b*260Pezm}zEJamo`@T)Z**W1`{{taAMv*~T-eR*>Q=jt`G%uL`WH9dzR zD=3yF#rB*2XI%Zs$MLlN9y|DBBa9#f+A>1K><-)#){@Fmi5hV`Pzb^XLJ`m07ix!Y zMwXFU%-;wRAW$G*Qt{6<8QDwkIFw2xEk49Hrw;F|ZoE2*7B|Iq?xz9v6Z)Ygtx+J^|KOlj zR$dw{kP6wfq4Z|UV;ZwprzhbdT8fF!SvYnFeP_ccTdbA@#5!f z^g5~)6-8Bw{x%1i@auub08_ZV#-A z;`sm6T}04hAt&x#G2DI#Qi4K>_6}BlKEl7rA%uJ6FsTovTc<$9h(#4TkMQ3v0v@vN zzUqE%sn^Uih08f ziK@9SM45Tzu?HBGOddD20G-uYJvZ}l+?j@FjdO8u#J`rmc^vkA#6en2%rJe`h%WO~ z0BlVZ(E*W1B+;tg%(88VyVthn00t^NoN4Na5`KFBy!3NwNR>wcoO_*pzq1O*o% zlKxRvU)7a-O8K|bGX2yNvAr(zCK1++xc{0q9T(u;{=PSZ)^H>tEIx0myX5USWm{}Z z#RDO+V@Id(@H=Q3pgJhkGbqBf2w%U_pi2{wa?A-m5HK*=V*7&(sddxyi%aO9^naW` zLOFfkoNxZYZVJjjE(qAxFnpKFk64$$J>|_7CQNBL=Pr+-RCcRukFVJrYccIZBMnkm zKa3cd@-CqOPm5_)_gakhGD^167ql9apsAJ+3qWdW(vHUZr;%zVO=EZa^OXbDS{oJ- z)eM=39mKpmSUi!+IZG`s55H%ts6&)Zjr-@OIz5Q=elN2_0Hf-v4|ty``ut%7W``#6YtiDp&^Rzi=< zy54KW#Pb#k%?rBdk%SWNKemBA+hZ9lEnw)$*M1-FonL6&G)%#rc~vr@3?R#6`Cf_U zecDWSJ;@p6&md!oEg{`H!M4vFDeNiy#!(f<0GeNH-AZ49ftgEigFKr6Rc`ZYMhoB`aGiiqU;t@IYYVlb`}u{MD2g<-0?a2nG8P4{33P2 zm-QfKQOUC`edhMdGMOP-75>j7_6X(AJQyYp9ky2QWMp+Wx^(QLdiieM>MoP?m8v$H z!DKBu4NHqDY0DB7*iXpa1;0znOGoEoPr5%-(M|K?2Wd=~EI1culV)EEypJ@bn*{kS z;oBHP4n82w{o|wi=DVV=Sc-SL@5X-yEQnxpR*kC~M?>pE=zDjq)rIf=B} zA;qK_()?NssX|2cb#-_C?%^9g`~fnlE)0X4l_%Vs(4On21F-~)~pO$?80es+c#JfA$2h1h_r>s0dCv>_MfQ3!(d~Zwbe;NRM z>cx4|CT6HKgA0{Xr%pWcw24dG?_%J8p1Y-cF)Z5f=z&-7*x$V6rV%%1=jHr#(_Jy_ zX?bMPbh_}K#Tj?Pt0(cv1N-0i@Jor}-WCut82S@WsV`i8Sx!z))sZ7o7~eI6!7#MR z0Zs;%1Iq?jkZXafTCDfe%}FyL^h%YYSuaBx2- zSkW-U)_M#DSdB#%^ivFQc$hNHm^Ie~vt{Yd7c*>|ElXRrIQ&TOkxP64lvb7%9iS^_ zt+d11OFAoLoDm2XBMS~4#l$qLXXjt<}x;Ml={w>mlqWkMq{ZPom^Z-5L;^}73Ws1e9W0$TZk~Q zi~s1#9DR$MRy-*~GXX{A0JN2|_CMieZ)UaoyC_RLmQGds-~L;z9PRXe^+>p+VKHg+ z^%CB0`{l`sOI4)6T({}G`xps*KOBe zZ72YyzawZeO|y?uN@=H1XPVvbf>h6%?!0(jmCo^{h%eh1igUEf2;)Woqzq|pF3r36 z$VKxk>%d$0{<&25E}J@kzMGDsUs{%Bc=2u2mo;1#Ry%6dHL1AZ)b>A~283o{(eZ61AI1%$8a|8}YD{ z>2ZiTI*7nGg5A>h86&`9)#k*AAW6j3VB}aAmk}lu3f0!tdraeoFE6(pXROE4y12M} z#v!)jrz#aPy&J$|t7tg`&47WT49o_y)1I5af)hcUkjUG^L3qs}=o=X@{UT>6jIA`f zPktgO3pzZcPJCu=epZ?7#6703cTRBvA_yxu49-9%rQ)dVZ}UtJ%WZZmfI%-)G%PfYPY3JjX?JkEJRJ^_UrdnO*D;xTtF4k1l#`Ee?44VpikZLr{No} z%cqY}C}a1Y>R`bCovSXioiwDhIw&Eq8|*jcId$!C0K7TxyP60j>IQVBiISKu$P_@w ztRzjk@5~PYoOL2Oy4zGmpvFkU+beHRx^7we$?n~B&X@4z>ktRjfr3#zz%j*$Gy!N9 zP^lC$5C(0ycQ@{-?`(++$b|2E7bx32?bmaf_Qon-TNeh|Al2bNF9n4OaX}7|?mv^* zg^Rwj|HBUGZ})xq=44~eiTgXzT18ncoqZNMdM0otR!3U(f8F}`t8R@o+o6|G=1);H zkcQZG))R^MZG?IfiUfc?f|$gnrs`|z9!sf1mr=y|%*SaEQ8?W8%*$_|apKX2;VKtg zT!x3w{G+BnY=DV0ks?t|A}O1^#G@;I5;EGq>Q4sZ#MegI$Z z@cK{VB0;>5PZs0G&d=}Rw!<+arP2aS)I=0dNVy96^Rv!bG{=6%WPpim5`sqP%n`@} z0ca%HlD2Kb^O98(CUWG3_MHidjd%dr2q|cWf+ydvM!*_z{5T(3FL&B!xc* zn0J2pH?iq@oPzgn#)9d?pUO!9K(;aG3-gtuS@VXM5G-;^E1Fq%yPZf-gs6tZ0REmf zff$UDx~`u}Qh9*827r-A>vW`6|5Q=~NMNzeErav*>w!S5Ha^hv1~_z{Co{{mE!}sq zzV0yN?DMh$LGj@I@#*7_VAdeAtjNyV_xsqGv?7Pwl{oCTgF*;^fGnZJvB67r<$Mz4 zNfug^j>oHPfDQQl$o+KL01ki*oUk!Fv!$~49k?F6nz%4T z&lpT1l4RAy<^!2_BtO=~9fg$15#@U$zPgr-cz~lx&(E3tv}@o1?qlplvu*Luvrts4 zY}-0Qhf~%Pm@?jR$kf*4X{=_)29Yhq7FuwjH~2v-|t&a&d7PJXcm@dfV8m06W?!pv;Np#G4U~Pi?9DMPrssc0oa8*g4f; z73;q^3Vd*r?ex#)%Mj` zQ?RksthP8&bXUf?q1CrHT2$Y1RNO0*7siGP+3`pj5NNb>tK)|?VjOBSQLU56scFFb zqmJ{CfB_@c5(?KdD*!~|xLDgX)McYaLjf>go(OvyU;_o%6F?g${TC@m_y~f1^`$(R2OEY0YF1EDSu6zyVpr3;e;C+&SJ#-;D3;E9a^SSoE-u4|Qu@L(PY7j%)^FNcT9iN9!xUR(0U*yCR9#wswAEz<9d0r+h)+uyP)6PI%Ao&KE_^I+-^W ztO1}-s7H5ERh`(q3vDAXGZSEdmHi>`!g}}u^!Zi{d^7Y!7}$nu^1xna>*q+={O02z zG9uy7dv9yx#xv9$SMEGWV8Hhd!k;O}kX|seX_~BcTU+ZJE7zQL(qi}ab#X~M%bvt> z@q?fO>9cE+(aQ^%U+uc`@)XL_ z!&o`k`F59$3|)4srY~`GR5t;@NoZFdW#L|eFC~Rg8GOrdTia=G#_%h;>R61+9c1#% zWbhaO5Ye=9SG$bLpn#^WadeMD2JO@PUgMT^0~HA%fH||~V}!hO^A9)WgjO+yh*A{v;8#L4`Z;8x5;a$-V4Sc^S)pyeW{%{=a*Z?B? zTB-UbnV)u9X& z^cdF2%ynGK^*^b#v*Um~@YYEXRot|zCN!m#hi?*cap?H zJ)+UUxCoydg*kVQ_BdP)hzz|x@r3$K=>p$VUQ7XFc)i#Qcje_|UU0_oj-x(h=`vkh#sbT)1zLf>jrKUk9+%`!zoy`bH5Jpp zF?SA9NC8bS?DLQMi&Eu@&q7kwj_BLZZRp(MHDH8SCK{NCBF06%3p1riS6Pz*QH4EI z@B#|YIkIe#N_e<~3?WxkW}^AAt+;qHN|Vb=L%WMxrW9{H{*3zUr4~D00Mekx9uBPg zTIHq>j(NPY$d@xh!dP2t05G~xo71vz`wiyu_6ZbhnL#CDo_sE>C-g%EnX^!C^U~F7PD%;MIQz0_n;S(Bzou2Az~}X@ z`((?w;(`lKU+OrYRmUa=(zP&;d44eNR00X@c(j7D=MA{Xv>lWBMxQ;vN}ww9?UyZCzXPBMp(J%77;r^kk5YxsEP$RHjlqBALVp*~ivjm+XD{2mMh$s??Y}&qSasIqs zIQyF%001BWNklp1iTjO?QMx@~rU_G{!BGU&?68dNoS{4Dv=>1!h5&(_pN~Jo!s7l@kwwE10CA`1gzWT2_git{j=&yS3OvLeUIN>itRoG zJG&f?r=tL{HQ{fWw*0`QKAL)3v6DoJ1s9j}LPX(6WY?aWNoC`Q_+W8y8E(!guCTP@ zq`Oo#5k=x{k@XLyx7#F{+h^;{3M{`YspY2x{`jAG_I?1Mc`5H+p!Su9hR2!#%s8bW zkn3S)?eti8!HMZ-Z`j_o@vU7izqRY-&&|GQdeQ8ZcRB_jNl$!bJHQpcgmx7=E(bqa z>*J2B2nK_z)~=sYKHg0M`no5ad-s|kDYnD!sojseX7hO5o z^)ngcxCVe>LVd$&g0;3Oyd zNFda+cyN-CAd)1!?Q@S-tR3Ce4k%=z5?{xgzWNy4u7`*aLUim}+o|0Q3gqk`_KuE5 zY!ku}1b_hP&c`kX70m4O`IK@Z;c)%FrYYs4SkBzV#pSbwW>#r(A)=1S+0l+-?R41Z zM{-Iwu`Rutr}11+#4?dixoheI5H%0>z$Et}eKDhV@|CjW798C{s!@Ao^79S(;hvAA3I(q&A;tWELWkqc}o%Tru!lBCL2l|HAB zd)x+&2Tn`dC{ti1P~E%r@RM-XDz^fd{Idxu{rQrhNM$r$XN7n49ScZ; zcD&svO#;F0}i2KQ@M88$XoZ4`z2_+OW8vdjG0UL+kqr$7_Y1Q2s` z?s>n?%+jot0wy^2l{@0t_)~X<*a8c>vclW+E0=s?%0Pru|Y(NiB5`k_IQB9=&+NN=H@G}ht zV8h8qFd6s%aJKz+enU2QQzVn1nr%@v6A&XLk}>m^s*RrU+8;A2SJ#`ZW!@CiFe~7f z_=gVx3wReVSQ*xwN#_(8h0IK#sMXfgQUxG0qaf(d2GHDA7mn=9&nYtv{}2=RYv3p> zt8Lu31M4Qd87j~AuMY2uoIH2G4JsWh_~Kk?7+$2%hE!c1wFG2u#GCWP(aZ`UcI0RI4`Lm#8>pRe-VxqRABnY_Uuce0 z3PV7Eoup5UfRrRmYTeitsf-Tic>7>{{`^Vf=4q{h{_JFm!uJCSA;MP6Tl-$WSX^{g z+xKF)b^v{)1U-VMBhVVwLR{E&uS1*F)0zAS03czw&W0|dh7{uM4>!!6Ir-?r4^=5t z?s9P%X^5dsdBe16<&Kk+Vg^hh>6xF!&z%nHCDU2J^!`%u3^U&Zs(QDUPsjWPNkyLv z;2-zk?PmbwFUbX^vLF&@+0eS9! zT+#~>#bQydRWOj0{>a6}#bpe_P^BoDQ8dfZj%J+`$eoZ=J~9S?6WRx`Xvo?BlZ4)C z+x?3@3ywxbm)#{(kd_)Vh|qev-PP{ z7Jk!X`iB^EqJdeMv*MGShw$*3*Odi5SsOS1JmTCBnNAnvl37K{*)OBAhQCl2&J1b0 zWAxP4);xXlmIWTuc7p)M6s`eaq+uOA?SKC5gX?egmN_~`ba*)DN`dc<-IO)M$9mwm z)6e~*KWABHNx9(@LT=ghZgT{+uhz58MW+;SGLCOVdUsRR3w9uYn&;};ULR=#KxQz% zIDe|vDiOmqs6NPXV%zIKUJyUxw(Y;kMNt_h4tzsMz{J}QYy;wMJf6`WKB&FOEyvQa zax*y^kG&4RMpmx7WOEsLh$tG1`n+Z+Bg1h%+f@`@4hk61I#um|0;8zUbrA`YOrv9k zE$FjVt7Mb^7(gH+@re~vzlnN!LV|=O(WB^D_c=(&fzFAe9If@p7Y>o4J&qpD2CGEg zfz-yJL4XioR*Gf&iPi)aG}tsuk_NdEs4fQ|O6j>Xrg**Pi?6R-G=H`m&gbIdaxlO` zpljJ+4XwFdy68-oKZ2+c%RFt8P~buAk(f%k4++h0P+I-hlfpxp3GtCZ+$>;rT)X6C zGu1Ab6M!IU4>uys&l5Q2nA!Ld*p)I%r0VD9^Y zp5y=|fg)^uwDF(EVo3!S*}wr+l?pfnM*%Q_69|0DwuH9L{F8@DuA;WT#Z;xYm-b1)dR zZ95u`<>zLlH;I9Zi;K%}K*UNJdw1MkG~ws03rBGz4*?(GHVq9pY3fq1#IG1wgr1dP zKV`6nCup4YyU8A-EyG-A@68T9QZT>bB5zX$whf_M=8Qn@()nKj5b$Ra(9pc6s(uTA z%Ib9<(>I}Lj$!zQVgpdXX}IJ#obwu9YtW60apkKJ>A3t7kFOZXQp_&HfolL5b_}U@ zZ@&b%q-^RPL}5U%!sqUuCM1Dj`=z!%L%PxJz`uadlr#Lf6F<^wx-U!X_J}ZMb@=Qv z0le_u9RPMeRyF?IVx33?#AuHOAauF`k|3;)=)#5p?&9V5&lDy-bkT7-YG{zDZoDtju)w>EeC;t0j`~0p)4Isw_q4i)-U!v zpXN?oTt)<~^{XpBs5oT$%qitcYj-ktad8>@Xf3L%rWcp(WsIf);39xA9YFfr|M>{a zQU~@|Jm_J~(kqJRWPu|P@3ENg<&u(|$%gG6V#gjcke3|<0A_%iTC1z}eGFjTj^_cC z6wELwwTweO&_Efcn80eRuI2h%j5pF_{}H(PF|6L5hMrtT57z)N>u&bZ1O@#K7AiNspL)v=B0-tl&RDZVl_;njAS2an4 z09?K3dZ$;BUIE(kN%dbJc=(XH#agpv^WtN2$Bp;*wgDIhJ@(LEDe3pO*QDi~5Yfk5 zUKYYwzvG1yaN)K1Q6Y*3QI|&pGjJ#a4`HK((Hd#|QvI=u0;d%hO!FU6ZBb*SCDXrg z+5u+}0la~)0gogRe&FJA(4drh>ZKLOA31;8qzQUZnN?g|Mg}8n8AAxfa{5}<*&qOY zm%$x=`ZkrfG#=n*iP&PVzx|`;q>=%4K!T`y@*nLmYk(m-;>QzG0f2p0J+sy$9fQ9g zL6Qi1AD}>q+^ltgR?teM9)e(l5{7pnx;DZR(iDc9{Kw@Wg^1$u_@oIXxj8wG<0yA3 zcX4q!NFbpB5J4IwjJ~6n(p!A5PZ%oQkyBa?D5b=;G9UmWk=-)2zHM-ogd?dvPXmOc zm<*4+BceJ#0}nOS89^QABWRNhvdXg5wr$r(kgSlhbluDWi&5$L7Z zN7guhFy9j@G2ZFuAuprQ(LGh$f<&w^`s_=1pdCC~@?YFoS@`*gkBHzFYReg@s4tW&}00I##{Jw1G3p z$^JAoE-nW%39Z3lv!>+c=EUPM*8t!$W_f(dm;dj=lcZ8J234w>IdWRr*D2g>#<743 z;GXoScRMhD0rmp4=z6TWA9h1~>#T*i?FldsA5qSs1kbpEcnIiv(G+?wSQRXhRdAdJ7OEg&?_R_xt-cH_iWRrZkBlE>u$q zo(;|<0j(fpDoaZTRDmi1CB)WG);?kyPNH#+Wu3iZ#qTO#jruR<}+H4$Dlnc$Le@;~D^5hJ_gLJs=Appl#felgf`a zSsBtay2j!612ZdapLXO82?aVaS>fo)JMZ*yuHDk>X{C`dyZp?DGBRanBmqpn&}x4K z|8u9@oM89H{pHXwCd2t=Z)esfjbW+D2}y%0bo033p2eucklXlvjzk_3tACy1=4 zQB_;D=Vuw;JG|&P!TxGI_dfnU8(%2G{65dS1m3QEO&JXRoAf0Iba5FIXst^M^Bu>z z`)^NOv3%KR568u&Z_4BT-)Cpfa2)@jB7PZmhBsG-yDjiE5ClroH^}5!3H%l~KbW5( zJ#C$q_do_Fl^_lbFyR?M-Co@J{mzEe&IiG6vfEydb~a=bc%@gcVj|kTx_QS7?HTaT zJRvus`X9+uKcc%^fM_S5ZFr=BlLJ44)@Z*68tAJEUjJxN0Bryhwbj&> zcuZRZ9~*L#L%C~q-VG!axuak$?>RkAEHT!ABXm@PsC z9kXbIpisOrzV_aBCz4YU6e2WY&wc{s1oN~v+9;cZT?7D3!q+JCTBRe`={4`;k;OPe zCS{Re0K4deqr?SZX6S?#NRViB>NoFxz3Zk0C>@8Q#=X1qP>_wB&f^`NnSp`aJ$WV& zn`Q;>i+Y6@?>!CxH(od>osR(+Xla*Yx4yU&0<%tV)Hea$-9(2mM(cpGd@I%YA6UzCN~eApB-#fhQ;d zKu971W=NCvb!4;2^kvzq@60xaG&2p4AmKH90ABo8Ti0)|x)xhDg`a!6wa2gGttzwB zM}h!YI~h~DeM=;yFydBtd-Xd5ALe?zQ;0k(eMWf+S%_lCws%C<98OEYB8si+aql#o zl}P=T*pcW`pj`qRN@~K=0t($E=`Nopm^mveD;A5!TR)p zdF7e29LGC^Ta^1M`abe^{9k~Tz)Jvt_t*U+9Pbi2x8Vc)|z3z~}Td(5& zUw1aly=S@^GEzH?4h{QhznWAqJ!tx6X9gkJ#gMOgq_g}B65HxGudn*Z6b1mRmKWWZ zb96QqsX2x;g;pP9Rzk1o9ek*M`|pHc1!QXd%(E|O!?5!Fs7=#hxVVf4mSsKokEBO7 z5jC|`zqI3-CyXyY6u#8L@(=<^s;^t}>|e}UM=?>zlE|#x(yael@r|P{(LytGd`$qn zYq-bX6_%QIctg)DZ#(6Aa(n>50!&)-xZLT5i*Ni}%^&<*ZWuTSfB_TU=TP6;&~(At zsTJAh7UxY~{mFA4!?%-m-4gxZ|HdCxhfK`i3}nTCpW%TZGSi}GWWWZlUGweV9d?@~ z>@$wKk!+}6ZGHCN%2G5d7`XkPSXcdp?@4LQk*2u!^pBvi`iYNKT<6a;FMDb(Ksx!7 zT`r@CYXC?Y7L--B@Ba7RyS}1gLON^!pO&<&f9Xi{1^@w|1)>&>Q*lidT6&b!BNBoH zfEw5hz0v{9fLDST(Cwx9*!1|$T5?musN7gx`^M(GkN!@{^pgwr#o?P+AGVnptXUYe z_OZRYSGTkpktV`*S>KgQB!e9_kdc#_6{|`4Q@*j}`;x>5yWV|c=ZlH2e*Iq`ty|l3 z``kIk8NZl$=i%=ka!KwL&(F5^1|z=#byzE;Fg|Hmy>`cAhylQ#@j*Fe=)Rw@OrSJs z|JyqS6dX`};v+!)7Q5@OPk!O76LNDh`>XHm;xdY4n*qNx9tsBMIiH3AtjaF7|D84Ob^9*Tj0gV* zXMMTfWiA0t_4wq2&IU8vBuPA|zg%xf`g6>&v=pJJ9bI4lVdv-h88d^~K4_B}1a5&T z00O5;3qS;9Z>h6${Efm*^5=38LqxW1oqFsMCB;RtSk$sy1AvQ*%LuVox7Ed4C^V!_ zNKhchjD^kcr{B|#9A%?nX9hSE8Gt`&^#UoWAM~`%Rb~(bkR7w}x+ic#Fk$pnelgOy zWeA9osP^|Np3G93rs;dmc=cjL4k)t`C>MFck*Gz)*Q{A5>iq)nBbbA%uF`+PmnW-> z@Bh$YAhXF&AZGS?Gay*67*tH?x=P&js{evRrN<-9_T%33ZZ&{Vc_@%mq-^c_+8q?Q z27r`dg0OY4E!xv9d{B6S*MNJ0tAH=2qr(y8e}UpI#=~y)&(COg?b8;2Jz)bNkjL-?;5d~o4}9r_X@r0@ z$!8K7vNN9m5yJcI%2y*_J^VX9({Fm)lY}NSVMt*Z!UW-niAOCcKN5f>`Rvj= zu_bE+ay^$nd#DgFe2f5fIx`Z9jSZ{5vgWH5_?vkK#iIZHhlj4a^c;^{1Hi?_Wu!<<;!21*A;#&{BnJXZ3Gf!?X<$f5 zDGX-TeU(B?J5>ONF#>=A>=t{ake!;2HsaSr3_!d+??Cdq7G6tcfsB~oxCB5%?bRU@ zos5cRnb1qN>VP42vT++a;hhO=6q_cCimtu%d5+S4ti1mX17N=ZOhBcU2q-Q9uufc+ zZigOga(YYME@Kwg0FWAzgog}U=(PE00T%E&a8Y{t8%Yen)9sPc7hd@Mni2z6;9bXiYUYjuhn0^6(+37s)MCP9@Tn&&9rhK%=1=+mFWp%#NWAN6;amIfB(|On-%A>mi;31=Jhvlgec9@2O-xDU?dh8EwI^kwV z4{y|kAhEZp@`2TV%rtTYi6*=0oV%tLOwVA=%n*{&vRJYq=3|!^Q37{P=n~u_#5e!r zl4MC;<>GL}#tIqUt6cS!m3Y10al z&O%1SvAF-8*I&*IHO@Tj3W0Gi;;ENjeEOVO7tAg`WLO8B;0gSN5i}r%L#6D2sqjQ& zZCn0pmwGt|Kpc(t(zl<{7b%=CAbL5@_e(sePG9(bsW!@Ersufk(C7Ze$_KO^_?M%H zW_854QCL?(fkfQf5D{F_p$x`edA7AGY&WcxVoQCEXF_E-@XXPtL80!f4c5;>PwhP z`N#9^TNf7Qk0tn=cHyYw@b~j=L+* zi9~(VuGd!I{Tn=gG)@}zR1Vg*@V~bGe8J4~LxDV?>%8B2qYeN1$!8{A^r2rAkgL=$ z|L~ZT>xbhOF?2}*X3ovcjYPthW!-%JaHeV3iU0-C!YF#(N2#DyStQRZ?mLqy?l__jYia`|~DXJv-msocfI zWyB#;TIdx0{{a9>Nv$O)p7_XM&6+?XkkCd#0>)q~$Q~F0Lqftv934Uq7!a~cQs|^$ z>>`y(LNb9s!h#+%p^MaAIP4-i5)GW?p(hd~Sq`T7ZhA-zodAGy?kBL$rWgCT59)JAZqQ++-_ zC;PwE66;7cljcNaKZl^G_tT05gh5(@1*dUBWgzav67PjX;pHw8%{62iv*9*5`AHr$yA zdI}hJyLvmNoswY-A4n*0vtXxP&oe@4k`4qBgcQ{2%EE#h1mXmM7(z>#im=_IDx`pr z2@$wM93DQoJx1{eMY~-uQ@5v|JivlN0J3*3r2YO&{akILI!eL=g@Gz5T7>|C2-01! z4?k`Mz$n9-L&e_9->%5t5yclajP`K)H81^yXtVyYAR~^25{Ybhdc2eQBI<%w)T~^xBmi<--SQNQ$ImzM*|ZveGPaEcKrl5jMgxO znZDE()V+$di%W7ij{500z8K2P+_$gMl_*@s8fHuUf~%KT36XpSU`H8q=01~C@N?x% zV-61M@CM*r;K=^J{R&$B$UsMAfCj$VbuzdYxVQZ+0ekWGBRG1{BOyWIoso|&`=m$v z6IZuKWiNkVX7&Vs*Gj_5($~CIQHQ&`^+VLOxAoBrYL`wrZPBE~YCu0fDUAPm`G;4$ zUMBmpTM$v>?v}?ctXuf+nE$Ie*Esw0y=sSh)HD`wR$_Jx!Z&0eJt5b;^ZIL+WB5E) zXQKkLy%}#;+_X2=c>emkhPVqCm(fDAZf$A#$#3uf{xui6H2_>(TtrnT~($X z(>G(4|KS%Rt4|I8X-Y5@xO>9yD<{_8vh_d4ZJ%&J8BPP^P`(N*f%RDb1Xw3!Bwh1nMW4xkNHo;!{^h1k3%y+=(mq))fpoXP=Qn8=L46NAtI%9YfH<2-0{Fq zzj?6LS$FxA!vH2JCts%)Q>e8^Ig^sn{turudf?b>2XTcA?$**b0#HL1M0@!D_xx69 zK=%kQ);0t(yC$h4LDKdBwWedj0TP9tM0@NRwFjXQ09GJI0Oi8UBxC;lsH9zVD%7%gd#NKL9NW2XRneG2NV!yeqn;6&P4|L|y{m2}&XYDb|1;gd-9~j)Mq{)A^E( zBz?>h`WXq>umEK0jC_?1&;mW@1AGENLUzq`k;b{s?w%M^X$KzA@lx&bAk*K^j|c!l zJ^-rNWYH_7Coq7jM+isC178@M$etLmGkt;}TxY!z!8HI33PGg!_;}o8t}=|F+W-V$ z0f|IhVPV5Vxz?F&7$40If4JL<%hwtGiMY1{T#*|~{aY{P@2orxLKoHnu| zwzkRei;gEKF&rx%?>Vcd0~;2B3=H1UiAJZi1R)$%j-k?*b8wUn#O2_InX|L9YU}Dv z)42JDD{OnzYje1`v{NoJsb`M*bRvLrfk9T(?F$CN9kZ|Ouy*?b;{c9D_9yNy#Tjul zCI7@`K*Cdq6MV=MkWJX$gm+ULm}V6nV1Y3~t2|{JUA5l?p;SXc9p7a(2TAhGhEb+< zw#}?S&@E7PLcy`wwk(U4hJq|5Z5SmpWqY>U4y=eGA_fa#YLy2}C1fZ&Q@7^@B-T;p z7#N1POE~#(GRv~^EK3VSR6M2!;eO%bGWrlvTU+Y`PdtDAX~#(^UFE-vi_1t-E;5VF zET8Ea^uvc)*!J<7McyG>{5gIAVUALkL#%QO5ge)*mHkF=i!KVS}C6a|wY+IH^s+)#^9heg-S*-&>HGx~( z^Jp?)O7nmxO4)2jZLKrO%!gKNc;sY@(e|$Wn2WnmrwdU^&?~dpsVtjW7aowu51)C}k6! z5RbDU01;(H)liH{F3I8=00x5-Fmra--SYd#Di=<^`p89-)KJ~*e869TOM&}_KD*h?F>_%7^R)hFT7lmxb>tT z0J!F@3T0^k1S70oX{^5>?R%8K%Xlh)j3qcljYP%XG-4p*3$&twEbV6PaT!I3sI{&2 zZ~uJxlFyy2lR98K#uQ3&fKq2 zCuoQ7J^iD^r;M^=55H{L2|rcZ!KQz8I15O*>)j7`y!6!CH?xckLa+w=Wl$;YKNa#RaE@LYaH^Rt5b1`6{}&xVWUB^NWtSuymn{#nueU zvyF&bTC?7I^_J3-Js19Al~$7y?Ha2AT8{Q4fx@I2f7ppX)$apx(lP9t@hc!>_$mMo z83JVR@VDmKo+;VLy7890y3e0{@=r8W{nvLt|M{yt&SY!Kn)rie&;{;w|wpJ?*_dYFu7A2@2yQ*^~btZf2<2!@qQ2xuR(1~9&8_JrcO0Pev( z7Az@@7gzr`8t@iu6UOjeLS_z>WS{nE4!*ZRfa@N~f8~PWcITYOUR`i;Bo9;c;gk8$ zA7$O}vItc{C+U`|2u;Z>1=dM<_pkpNA0JYzm#zKn5D&*CNn8WKAYmz-Y_DUaZ~_VO z0sayK007^R2bLy^fki;h7}5R%Na#o;6?JPO0NOMsn%Q#rwEqc|b|54G-^^}-V+5pN z@9m)T2f9~FXGxU;ltdA!M|}VxFT8^|woxqo7ujbihl9Bu*8N=;8&vC7eRmmFl+ssT zxGXc2xpl{`-0aNJ9*&DkJIb+}%ZjKVq=%`6D>4 z!I>q#!ioj)7LOHD%xoA2Gq<+3{{6W(E;{=} zkXr-5#l>ZWP^@jOSPxzeOT-@2COFD+^!|QK0G;9T%yev#_w@_2>)&p%D|NvToI{#` z7*GIPj$H>rszs9rv_N~xSqfVh)m|ECEOqiMouievLuk<^b!eQ)A?P+wRsd&uX9v3- zSFG6~D@e&XRgk8v%!xD3ZIm7Y5Y{8=N{b zyClm)mK3nUs?CDk(w=)_4yLZdHj#=th#5*d%$-+XC*B9)55g}X=VYF`&hy;9>RQP% z4@JXwA(@$jjHQwrS;X{&rnuoS4C%xJVw_ad1+(TlhiwT?@&J`qrB-a7ZDmjrdLAct z%&0#x&ZLGT=nO9y8kiz97U}m5S}n z_I#zNq>xif|27zyd0y_qfXCNbR~yLk4cgowfW6oyAPAxer5bQxH=vpz0QMu8i5vwi zz)>&ZpQoYVUaXpp`KcZr0~yFX5ubkv4-ImlL*TwMKL&8g-{-JKFwg9Du58Di;Y5zM ztzh~p1-rO(gPBd!)LOT+wm$R9J6}BS)X^T1i%UC3t99q%BcJwp4|SXoNzytbT7b^V zcO~Nvoiud`YlRLcsocCtdn#9L{CN9u_;m=yW7gTM6Rp%C=bQ_Gfvqo*6^*|0+rDM9 zWw%W_{ufg|%C9asBv|;p3>J(;A>SUemevn`zV@X5yi_|50A_Hn8p5n~-ju2NQ>T%X z@BR6;z3)7C@uRbY`5t!yba6Q#fk2>gPgN-Bzhe0^$5HNIjf;!Rrwr}z%w>ghJYxFK zH>0v826zYC)$PEKff}GNodZlSMiIUUU^#BKg&l149e>7kPM)JCIMmj^P^@*?~o3d>SB=H$^@&6>1iu2_0j<2c0dK6nKDI5>y0f7QI`i;eA{ z=jHJ9K7t_*2vJ*0o#gdcQjGmI!Do@NzwjK35RpjHE^8Xjd+%KYpwCb&)*LGK zUHbKj!Os<^V}L{C2;f8@HU_o-%=>E*3qc#+Z;tKK5NcR`|2xsFPn~!6(V-Lm@|}&+ zGsqmi0`LN#L;2a5@I_R300U@6<2fih8{^N$gqQJn!Vyt-xbRCDB6UXq4NSt+OL5~M z1~~*o*Qd%~&RzG$?c0UX^EpGJX z2kcG&gPMr7Qd%iiN_dpv9YEBHYh`P;wYIg=T0yIX2-x-IKsZ2KqED?7${Cjto~p#g`rtsP4{ zc8?d4ll+Ty_uo2(P@clBD)u-bMu-uj?LxY?EbZ9bk@VY?8UTrQp;Zsw36=T;Ktjwm z?GVzcu8mRLqJCp-IfwL8+5XDr|Iglg$H!5f`~RQkoSE6GRWDYtB+GKg9Wcd!=_NoQ zxgnHh5D3LI(+n7lZQP4oWUJS$Gv_?N zKUS7yS#7nef<5mSFRY!NIdgV)cFs9Z`8=ZB0Wccc z6OsB@d$I5{QOAf^R;Hmyw1O?>0kqv%vvMHDQWJJ0tObII)nwlEPlu00oT5ko$S>eI zEo53iWABqt7;2n-SV}vJ6ntpi8G)dj^3<}H1h5mE&4ZPmr=WTVb~>=zt(LrsrDa^y zN^QYt9@PVY21+pX^Y~d9om;V~6xFE;0qIdGDx`tH=Dn~C0JATiu57jC$(>eU;9W^L zmf;L-{SOme-Pk}Nc-$wIOUe*YI2?ZGy=~{6zRa~6xJ(kRD>%s~O+(1Bi;59I4A>3` zpgQ%#w*b1&fK5Q}f;Es;8OkmlqhAvPIhbCFE9&s);!oro0Yg|r&9B(uNL@71nqI{) zW)iaU%yXpKUsS}2u}WBxCQrf<@n~Vkp0LAB{TE^!_hz5KT2-7{Gs4Tl%%Le$%1^zp zea}8mmNKL$M1(;H;7{GnPx**RXaO}~EeQe~t#?J5Q*7A9WpbgkKL3nm!C-L1rmf{u ziYB>b%f-dzC}6%>a&Eyq+fEczPv14Y3Xand3i(Gn{UPFb+#l`!q}Tr{^PtuP)?B$P zcgNhU^?z(w*m$%?Pm4P2E}3>=P{opwj$K_%hvYC#w%UEOcKt`x*U^yovVfh1^OfK$7LSFJo}--V?v9Hh;Zhn|#o%1#ohQ^z-LMOWJFbr(u32p~ zJR8}XTOauM%Cm!A;TzlAU(Cw#jbPy?h3;s%p0&&=_#^WGYSbpM6KEQ!)ZRGoHoz!b zg)1r$sL61}80tb~JL;3-Xc}COf&yfx$Tjd<;HOoIorW?Xz$(PhlqA=TLtZm4g_N3jNG zVc~o%d=P)Q38(%551)+lJ@8IqL#D*6F9Dc)X>HYsQ&mENDR-(lYHQI}Aus*)Q}HtY zySgQ#{d752P+DJb#diq%SdW>Eg#em>>A=TS-q5h2VXX_M*A~s1{rKk|yXNn0GRHfW zcMCZ6n4hX#uL6~#IfxDgIdHTeQB)^Bw_^fi09{-%1v7g*9;H+`+`VPzp3;&DStPl* zxEx!|3QYNM>G3L&sH>^GYVqP6t@1R7c$5|rB5v!*^Xxfi+N_6}s|MRmE3Q4WV3tQL zTG^r+6Gy31hg^soPpkZvMIxC?y78_1vG~JD;}d&0>*c)Te|vfTZCm%9_jiLU8s6)A z`YUxf?>u$7727{`>nkPsR_5o=C38RoVHn&0`H$`ko^TQx03o)>IY+l#VN#-Zj>lRD zDr+jMW@qO)iM9x<4NI)`cg3$>+(^tfp6-FhidF zk?k|rfYXb10RRWMX!WHG{Oio8^EoH&_WDBdS@Xe>i~m$Ablg6fr(tnQh3SoY!2~R3QbdXXFq~?x z4N_4|L2MFYyz+;LXsPF<7x0v2OHxD*1cV%!H$wsyn7s#w6|k?2FI}Kdc6QqU3}O6p z^P@qSAHWsKTr>s@m;n9@mpz7kr6?WwRg-{7evev=i{6(6ih+h{3#*(?hlr*xsW!6| zIqgCnW}6@uWJ`)m8u~6XBzODNX7e+6U`+dcv~r9;z?s?W^*W9d?(W{bzp-}O*eEr+ zxTJz&<*+hiYD_DjCm;9OqdN9fVAUXR=@<`KTV5f8Oq8A1fQAEr6|*y3dzp(C(t}Om z2*QLQ7D8LO152<9LxWUG`QNNHE9EKV3aywNM)T+kM5S*j9&3(+pIK>U zK|+H&(b4x^_OPyYw9#{|NZ0`2Qv^*yOH&Cm^J4%f15Stlkd{IV)+T|pqgXk7xY{CX zt=Wd=WL?~(7$#DQcVyBLip2*}7e&X3nZL7r&&Gvqe(;ZapBVPPDEO!?}>-K)z zi6EuWg^~47AWw|(AVF=JJH1yrR2HOErBmR^EqMMv%xh)uo z_{%z2$BBrf?c~(GT-@DR=-u_SW65z^5D?(70~;N_*zW4~mIBZ}HoR`WU$ zzhp0-j>5r#!bW{CM8c447j$br+yOvc?Nc_k&((5h`C^i*Pu!Idmiq`A9qR?;cHriT z?#IMo7{=NSo2OS*oV)x4C+)eri%Uij3AN?)IqilaCzCSOTA&N?0IdLkxmPV>-M`i? z#hkAF4Z)m(zIk1Y#57!8gPXm`AI}btC(Jr;W|g=4BSeQS$+hF~XyXAh3sFaF<2SVy zG^U;<7ngB|h@#PGYkNm^Ww|T<h&*9>8C5rUfcsO;TJn3Sqfoq?RL{Es$&WEXEv%!&HoOKv9;b^G7l z-?~2eGDh(W+b)u1oQwq-nP^I2-Q2a3g^x#CVVa0Kx*DS$(eOJ>rOP0#AwH{PCl<6e zFG#iUZyEF2ix$~}zI)&t5%PCC@$c<>GNl$=Qe_wiK+KC+03$GL9&4H3}}{)gzod(Ac7R4y*u{m?){L^K`0fyd}oP8cqVS-i;-wSjj7YtG;<7zB3Oe#t=RU=bw&C zAHnY;2>TG`kvjmih*t+u@g+bYrL?rsVBn>1zyd5Nk4icK7=UEk(A?hvpdB-zJuw>G z0Z>N`L6l)hs$+(@K-4$UotQY1R)c6P?)Uo!jqr7G8Fxh7`Dg9)I>QJ|CI`T; zfnW4_Su(d&tHYkWBq-d{zW4d}W-dE}`z+NI;!|--Hm2#+1B>1-FzcL(@{p%=fVcFd z7@tV&+`0W!rKRfta5?%=N-bS5+wb?Tdi|aGvuj*8fQyUE*imeR&M26j(2lm9j{NNJ zl$I@Y#X7DdE4v=_NCN-OUex6066J3 z6x}vHJ$au|gQ69ft&rGuL3L=^!n_e%mmFnGKNpUj*Ylc?=vMV>I?-t3mp$7QumG4c z2HhT#<1xzE|76Zi-zz|XeiEw3|&iy2Sgl^okAiiaZlmp)b z%|iUorfph?rT5LT$GOn+QN$8pU}fuL2Bp-J`Lis`eENmAPF{N4M0dxwgkv9wS>nLDQ(x+|=RMTnc56`B?Ab zGTtz=&*xK)6NyBHaBcrCE-qt>20N@2YXJ~*U?TGTv|{NTwF&Ud8V7?Fn$bOsiXv;R zbw4eEv4gc1251Dr5+)S&v13RWBhLk3KmocZ4w4v}nZcASvc=#i#o8(CcpQou8Jt~* zI52YSe-bHr)+@v6OcHde;r~g>l*-cD(aK@1CP!NB(akU`P~}Gd55iXOfhUXBm1wUo zw@Q1}2#db~AkBMr|GZ@CcUcz$AVIOX^VGL?Ey9V{F20p1r^XY1Au*+D|FJPK%i)%`#{U~u)l2+Rs#4nZo+xk)Bpe=07*naR9lGUg(ylc z^3TWBS;%oxG_q(z0cwm307$HS8(mSf)E8VfkA%=#17OX2-r1L3DT@tHze>+xl(H90&yLL?RN2hJt}iN`||*Olnw=ShC={ zkV;_vy@Tzv9@z51xn^My8YZv@m;)q>aIw}nBH^9ER=`(!1F^p@+8k?rqdTXl96(dY znklVUjp3&`sv+q8C}lvTUIDloogT!FZoi9*3jiW|?d=V7YpWK`o1xU$6;O9^adB}O zC!$FFwCb1Ifa3R|xl!xfxeLtBEbNFuk{|wO@zD9W!VBNX2dG3#bc1@WK<5x2Nt=|Hm7GF6Y^HQ$c-j(@ThHkHT$8f5CfrViRmLME5}1aeg3 zt<8Tsyyae>3TiNW6qQ?)p@BFc#?DCvsq<;YpPD%g(M-%`67>3t0rvkJq7H!$G^{u(a z$H=6e>sKuq_nLFU5JDaeEBk-c2uU(Z@opsM zX3w{UqbF_9H$e)-OT0)SzCN)(T(^H^9WZzC<>diO zvzA$YKLr}8wWfY%u+^Wzo6k6SLyR0EAxLth=i3ny!Vt+CVA|<-UpXYUkT`wR-6Ozg zOTd!Sp8Q3u-}krx9nKExDeSXTmJ!M!`|!bdi;~JsM|OHbzr2WOC~K3Vw(fo zjwe2|>$*xV0YIQwq8q?x@sp~mc@G!;bzRFE-hSvpjbd!nz_fpsJWzkhJIm{SFnh}w z`T%?ufMqu>qCV+i(xMOjVY)C3tqy$(qDXh=Ma>Ogk48dbxHK_?z{2FIS6G z`p)d7*4vnW2TTRdIk<7>xwX&DC^j`q;7#VGIsRauaN6MqW(G4rBAB1Eo~Vg?Q}gm(Dt6>39c8xwyC-Gn9+q?X{O_rNa4H&z*NlOv>_! zSUzZnKXmuZutC4OX4CbfYT-dVb^$I6z&n|I0OHAod%H~i(%$Djn|~8PHf%kas$m@l zksVPRUWyw_2DZWo=KAOX_3raik6Rk>=A_!Z24-O4eOON*XyY(wt8B&hs z$0C5JpnrVwY)436H2jB0x;f|(5WAx-x9xs(6b-rzjcZv;7cHn&$PjZ*CWZ$F`%QnA zC+qb{+oQm{>9;txNWkd8pfQFWkv$z-_xN$;bW|TylNv=7yD&+pCL{Wz66;fKz6EL$ z4P*cSh66xCnt&e8Qoj#d0Zd1Y4J4G)vF)vX-*OqMr}^fDvWkkM>8e06kn>A_G5jsh zbYr$2%On5*$Sw)>h8hSdgvkXp0jfDq2 znu8^90Js78b{_{obB_P|lF)IQ0b~I|=FyC&48v!J{JA7z+|)Gc&oW8~ta;yE4gEG} z6?^h)0^t@nbO`&2s$SX>&G&qw`&D#LbZ=Z-(u0|U!Jus?V)5AA8C7l>02ddRu_GWn zRlb6_9k;#K9Yw`69mh8j7HZaGS3HSzZ#-QZ z{3?;qlQ_$t2+G!PKItqv9s{N*5U9cF+~4*56z90%1@e!8fo$aEAP)eJ2wchRbrHai zaBBjQ597OfWcuy|>I^rn+yCSVd7lUtsbJezrvj4597`YEXNHFix zy6VWc7_3=K?Ev^O@LgbP20J_mJ8@6y&iP>jQyL64`&8-{Po`y^3V98+J za)3v$TSFz1o)9k|zx2ACxc})l?&{s=U$}1zZ}!5=X(z-9U<=kif?qX=89>q4gaAmu zOb&aRS%Lr%(ThJ@S9qMK?9{>mbR?jK(8E~&h2%+?w&?P{f|*01P&^ik$6}`}ndjb5 zE)$Lhi>Ph1#6=o6BM}R6M9tmxz$yKmyn-1xEJx3BR2g&r0FUJqVK6g5;4vvMGtB5W z&^n6UNJE-JK#5EwPYAJ3Nc4`XET#5IZH{T}9~YPL!*QI)o?dn8 z@$)N6OSE=t0Jylgj1`-m7Ol0}l`s>w&^oi$e=qg(tymm3fhtkr7;{Xs236fASV411dyhaff zJ8H@?eMc&x#UzA?5dc=qT7v{|D0)d6I)^|&G=A7!SY{|=srE=hVZ$D%hiJI9rGpdh#mzk^cr+@C`FWnSlS=+#E? zCbqM{g4r%JPP}>MN9|TG^QO_YoGBPA$r}pg#X^y~+`Y%QCTQ>;X355JEZ*c%P$M1F)E2I7nfcViNt-6Jbm$5CzqBKYIhppGSL{}#EX}mxIHUt zo7Zb*ZdIvmef48y(Vqd%p#>jxu&dG8`Qe2J_h$xXroUmYaaZzC+9#6PKxr>X-*znlA zTOH*@0_Oj_v61uf@O62Xo=ND`%EWL9GAAm6Ejl1_G!ivqwWWygl@*zC` z-eP~2FZb!aFT4<4|GU}u3z7q-pb|t=qT#RG@6T}@KT3d63gHk@w4W-(MN&M};6^lRpd-eTDOZyk`GZW_I zntG-Pk*MFhS+DS%RCJ^1^D;9lJ?G+c=n{JCj}OJ_8=w8bwllw6qwEZSN|Sl3*Y}%S zFRkk8Jmaa?EBysOth($!cRifhv$(kSwY1pkv^LmXFeRs$_|w*&-_?~1YDaIWy&Xad zDM$cdu*dLZc|+5rIbLhH(Wn3vAiEre1UfQNsTBFS$jd_rP-%KM%UF0pV1hQ1!G;X& zp+IgZ&l{K|!gkD>O<@&yOFX83=pWT#8bKP^gPjLn>$i^yLz0wfYu_^vK%g8`3Q&;g zWU?d%>YDJQ$Gt-Pa(umpCm|_N=ndpsqcgm866Nn}22ZZg1()|7Nvpv*%a;}w6-qhD zN{71~laQku{Qf7hvbsbj-J8q^`S_C_SKyrE7{))T(qLs_1`g?w*#4Qn!tnS z$Wv&E)EB)6R>$AHr)BSpu!4SXR+cv_%Nq&_IqAY&h$zzDw*U24fk-E;Hh9wgLZ~$y z&S`5eU?uA-hMoCV z;h?(`5<31*JY1(&37F}eRXcX1wS`i&(J{l5wbcsj0}GN~D<=no-3H7u5cK2~wtKkF zem7`l|I>K*A^d_Tg+N7G5GdN+2_N~gvqW+Q&1?ny-cV2&62R6+J4c~65@%h ztOmayN_&KnYfd&5tD^yTg^(^{RChlSCzG{VbD+Sw_KD*{zpne;Gr!;5xUts9D~Zq5`TII-+2hhQiKObMpnj}r~1Trv=dtd_QWQeB|&_RY5 z)Tp-u&_l~Jb`k(ic!%0&uoD@^q5ovh|0$J_8(|pC2Dr!SJP-nCz-(%5HpFDic60`7A-nW2>0+barzjx~ z7>4CId8sFhkswdN2z$f(uubVjLP)K88u3VThcH);b@A3r!{DvxU!ZSPSk}OqU*vGO z0Xq^nEfZ%+9R&cf&i)x;1lpl@IdCi>K7x?@0dwD)jm~^o-rThffCD?7ZW53{>}5O! zEE$90pU~We?!$U03?U5xByeOfYVsJdSI7~4C{q|Fxeq9p(ZkF+IXSUdG?B1x{n(|0 zMsT>e9K8@xIMTMM<*{n29aX{KNe3&eKI@$$x7S{DN$J8xtP}|`3dz@TfP~n;?%ka) zzhrlJ1DO55MMkz~6wf6EszpmKS^?&<2*Gl3nPfzx(cj$v*oV$vo}Crc?ojUH;*x2e zn*Rj`Y~?sU>pwnt{&9n-zKk`}q?dnDcVI(T^V+m5008oVv+&Kgv8f9WnlL6*GC^lA zT^jPWcj@T8l@IvKJ*F@Rn~`!D-j9f@F7|r4NIOia_(53fmABvKuSizUB$bHU?QQ$l zud7*pddb{*BbgZrX{`L#H)dWiFNL!nL}_)>{0}jG=$zH%PepdqWD2up;MC>U$0(+C zW^Zgqt0`~3`ag!@7)Hig_A{@_&RO&2kDl4oc>0sCJhR~6*L2iGbJ->Rxo2M+iv#M$oJ^*GU{ab(E_*Y5B%;MR-u2EJA0E>ZopamGFWXz<1Jun^o z9qAdb0YNx_dL(~7zQ8tfq@NQ+V4^(Q3Z4q%x)*E6$x=2$fVI%?O0k#`(o2e#->rUr z)237J!P~R2aEM!h0Slg2p!$9a0kL7zo7d6t0Pes)PQZ#Z{hriwkup9ANx+2XU}_#S z0K;RfymM7#f9z8)E>iXYADyVHz3Ho)HlAh3K|j{JQbHQ0G(P^$54+PAL2@~kA)-hm z{KH>8aLd&f`+eR?7!K^>G7d0vT(=Nr91RWt8r0xTQcA~hOy9@ z7zY4Au?{puVqyoL?wx04Y_NFrjeB}@-nLsfFufP~@k2z!)fp2(iveP1RT8jmX)xjmi+$GNA}VXEY58YtFCs-?VDcz6}k|O&Y~L4=JV9vg%V#sX2Y+)@SQ? zugqYl#~PW5b!pXEx6RWg;@X%O&AI*oPUNKDX8JhV`DxvEZjy^svii9;tcuM=FTE4r zy0q)A*%Z=Krp!FI^vl-1AT|%*+L0G(E-zhu&>}DygBSro;*ZbaO>;|grc6<)CepH0mL(Y zrqN;n0yM(vibO(61ML|0S`jHB8+wJ!GYA0|!_-=KC!B!C=81C19i6xifOHWcK}1Zc z)&cGZGgw0_NRS|6rev@l_lS!z-fu!c>EmSx#T*fA3vgP~ebFa{jC&-_D5(j~NKq+R z12KU6cy?KUP1d4k1A_>Hg&aW{gaO~3LDI}2( zGCHsTl#5Ghbai#!eETnc{`H$Dx+5;fF2A4g@i|$gx-;_X_-3N8f^ViZcmBzGpscJ6 zl76g{0M_A8yKqf07NwM|Fzvhxrk#44avUCH?KdHi5FPvWuKC@sd$(NjOYbE=sfAv! z9o3ES!&YhPk_oYG%lfKvqQFUhMC|o1~4Y~Z0SF%5r(ny_S=T- z#HNS-y6K_60+@H@HHEb^hOlcV!nozN8Fuv04#Q5Q*m0&_d0o}DxBTPR-@9mkjW-y& z;_M$RSxL}%8$20&02Xi@=mYqw1#8%y1vfqwMdH+o-I7cM$){)Zbo>K}UZ=KwC4aoKTY zi$)ljNt$EhlG~8kBO2%Aj#mv z(*lxzGkc0l;tdD-w&9gonpHv%V3j5zzzpt*1MPouW-zP7VLfE6hn+sN<7mJXUJ#gB zYsV||VrbPG8d^-~ZN<i(^;uSTIUMUbjSywS+Wo1pa7hh zO(u~b03K--d#5zSn-c6KFarPG`xuHN;enX1O%RbLI3=u(u>SXq0d%CHn1~$ZBqP(M zJY-BL^j83|m7V9y1+yWfC455qEYr(?W}Wl_NS1`2g*h4h>-5^nh8nzpicJRxXPzde zwpyzl+hLwa88|Wo9C#^1`Gg=S1xmo~F|{aLsf3bd&yz$Yv=)O|w=^h5LthCZ07R6~ zj-+Asb#WP*q}AZ(_dI;#M?WCkN|`PbjS;c$zkJ1Ca&k*2Wr^B!_#2i2_$W5!W0w2a z?!`%9#qGX17tP)IO6xyAzhf;bcc6&D1~?*F4+IX<=14z7ACi_ zwsI?9Etvkon!jvQ-2iscuKUwHy?-Bn z^R2JUZo7E- z7lkmEJVOB1fG0|Y(*(YPYoEfsm!9!;gN&gSFNj1_+pZVi`Tc?7HE( z1%{_2tys?y6Vmz*Q%b*i?S}wBh+l1*@#?F!!fQRS@AaP^ct1&_Pc~c!KxT+*r%S4Z zPriQb2aG!_D~GKEOvJIcchw6&&&zI`x8!22<|nta;*#S+xBPYSj@3^+aBsua#!53ad)Pxnp$*ProC0s(yUncu~sqgiPuCy;;L8D9gSS+@hbTXy{G zy}v<6uQ~6!lKfK5Oah5|ZECC6MJ$E9fTraF#)FuT43TAoM<&8Cnizw_e^^w#B=M=ABWPkbm83hk@k@Ar8p zx;rk%Iv%A$lX!)hCSvS$3X_71{Wm5{0}np@q;)>(`8WB`p|?hIE{3ulWouMfOM~C|EfmEjs}?q(sj}FG2MP4<93P zkPiTwc?35&4RB2ky=esl0F=!b$GTG?truzy;D8Wt99uc0rJ9I>YDW{U10XYeckdI} z`@~OkFJdV>h_XkZ*H6SAGa+Svk0L9!6<01Qz2(I6)sOwby6=`LRi&D>V#Nn<_uR}! zluw5BVzLi>&7!YGNb3YY_R9AG;Bl0m?7jF$bJRfzW7b?aBlxj9mpu3E)7^;%q8pOi z4PmU@{N$SbuO(mJc*gC7p3&yWk${<1pNb+?g)=_A;_K_4eXHy0zxryYXr-koe*OI| zpV{|c{-8hENRI`7JMO(|-6tPfsQOAOYtyP;@BKfkB5$7){zVOCYb~|r#7D}%cU5!+ zb~inRmK@}b=i^EO@8ZoH^ripi+>(jPlLSaSyQZ)8AHcb{%?VBMCYx7|9?T>{6z%Rj z_pLWS?6ne74m=atD8(ZyUkL7RXRqftvv{4|kanM4j%k?LFbvkZtF!a&zy0ghk9}~W zd*tHck_LoCyM3hP-LVsiaF_&1%acJLfOZ^ZCnzixCu}EbM6SBSZ5eyX5?bC6N`o;HVZXK zorWp7mCP(iROZYk61&9*ddo9biUQ*K^TNO}}vA(weSraH!1Be#1>SD`M zQnO+k*3$5da+s9MibJK|epySbS=k!4ueZwtiX_5)chg!4G17oU%^KSA7Y3Y`^6sGH z&GJi@$JZjVJFMEAq{6>&M9nqu*g3u&Yk({&ZR$i0c@oC5Zt`fg*Q*a0%211))7Q|0 zE!>ceJc02OYvo`|AeE-o&a zLYQLBrR$H}zUPJK_Pp@i^b0>war}vyssunnwASrffB(Gz@L8YrljtiCjXu&>Z?HXQ7b|^Hc3>`(-r(rT&T{D+s0wM~ByPtY-_4#Kk zGYvQH&&9)w8Zus)BX?C|dXp;05kX?WAh%oEs*}0T6}# zq3nyM&Miv7;k2(d5fb})F*YsbwHu(JeEPqa zlPFQW_GPw(f8or3`zSlnl=_)--EZ5!^LZUr=Ptd$WRssu>F7+tK=JHZmsy`rGh|-~ zvEiR9Th?vPP`^e)p4MNQHtm0-(c|74?E7~aDXs$`lQ@2J$!qHuG_HQ)>J|4EPYI3S zNv9km7P->$zQf$#6|5E4oHTVi{_)z{W@!L`QR_eHhMA^ME|*j!2qrcBw%G>CGSK&{ zfG2?o(I}%Pv@57viynA$)^SCKFE`vp_0s$0yUxsCoV2quLp%MK+04kvH>DqTI{*;T z&gN}fn>UWSADVUbaWi&)AFns=Jn_D$QD!f>eDPcSKkZFO<^|euocEa}+R+2{2LQC` znZDLL;|<7obnS}7dxa!<#tGAA%dcGd!kqixc+ZDG38s#^ha<-hCR%ekBKh&@`SZCW zou@t_7Dr1r-rSB4{r^X_s;t1)6eh5%=q6=Ck z*tONVq)XCj@Z76!UwZCxb=0Y@ySPj?2y)Z~Z>ZL0U_#at5>hCv6J^A|hr^PDJ|c6H5KOj&^!g7E(WYln9U}c33-b zY;7MY-Z%gnqMb+$tU_a};k&P)lvX&X_MH5CFjx_5(d(AbN+^ek^kM0hthI7RKH_M{ z2EcYU#|6j1LTMJ_U~$m#T!58;Tn9iV5k%TDb*{%2vO!Ql4HN1`#9iUgjxATrUic8J*+=f65_;MR6*bE$ z4sCH*CA0!=x^XH575}!m1lXUU?gQf)p`L^Q^DaE{Z9I5hYZxCA%7 z3^jO~4{NTRm*pwXj_v^f&3azh!p81~*Z00S>fR{rRLz}UT{=q{s~Ovz7%jSVQQyJW zjt&=Hs7=-;oPclc8@_oxk0&zQuWb9~m2b=e@ETZ-u^gWOS_&J#J?%RsI^U~3>3ye! z-OZT!rR0lww^kL@1X3#eLKL;*)vI6s_z>bh0HQ>Sge3Vtn;(B>q5>6MjyjamAG+Z5 zU{=> ziKLsW?BbFR%xqbf)~dU^>$SHxT)5(-iSCh$i_7~Pa#V9|Nz5_;n6~3!%)N@tBCg{Z6Q(!|v} zL*w8B=+3iSLy5g;n;NsqWUg0RJd%s6p>tL1+55vKt%7s=y~&K3Q$6Ih%)&tV_12Wb zZPCJ@*Z=Q<{tYrrY0WBHx~cKa%CiF{vx9vj!B{orRd;#<#vuoQBh$P%tT|`?lJ49Z z;05cXHh|;L=dy?E%NnEmI!$<{pkjQiYy`BGw#KZesmz#&4I`_dAqpL1MmMww+1*PM zo{ltkKf_D;+1J2>Rq7g4T>ak8`C} zS$4(Qo)4_u`({)8h>>7qXx31ww@%H#k^Uoqm4#kA2unGqap~gAHni>Bv1}`tS;0V_rBzB7L~B*j)iHNi>;Ksu9TzLd ziYEeA*2E;DxEysbv&Z96%IWUzdV9mxiqhhV?vabjQ3Vn8Ed};C&b=Djb1*HXK_VHW zbO3KYj&o*Sirn%=JgQ;0Zsjv|E1&7Naq;!HW|frShy);E9#+n`ukD_Q!p+TZ|Nb}U z{kWw1)Y*u`%#+2lvWh+#)TEQ^Lur=%<;Gt$uRYYpS>OJicAR8WL=@}ndh0iLp7P~j z`I6d+6IXO`IZE(&JX?3v735`KcK&IOquigAi;GJ-n9b2A=g<9hD3rwvpjr(QcAg;^ z9IDG1T47F(IdgLzn!8ovbVv<#KM_Yi(N}>)Q0!fA-z&n!nEp z6jriktwvPLc`V4$`d1ZGcU4XMGf_>XpxutR4uH|&Ish`s9s8fD^ye?iuAKMUhDFWM z=qJwKlA9YCE(4v2iQ+^N=3#2e^@BB^aAj#Y&e#3yz_V#|JIQ?9v;Naq>Wt7APts>*pZSyw?FP$vC?M0*_@h%auOB+sjR<}7{Wa_9MKcXy9O$fX zY8s^j;IQ^ZkJFS>vwHW3mB)YbBh{;Kn6`7-RXgVaSPM>CxzkStNP0+m`zL_Ty!Lwv z@11hQ@R=e45NK$}B|iaBaeU6K3yM^Nd&Pf7fEJ=Yo|w6D(55pg*biF=CXI{ zkmFY#!*u|-WD3i&)^DtNNo~E~#;5#1V zq}T?cXzjw@4(tFRR86Yuin8V2>1PxS=&EP#3YD~5e(I;xPZB#p?3)nU-e~ zZLMi_gr2=McMN<0)Q#vC?Dgaaw#!I$>%RF;ReqqzAvJO(M$+VQaHRD=iB=3|R;(P> zhdTh282A(n)>CJI_1lyLLRcP zDO(FeYJ1qCk7G`b)>UwJ7Uf5e_sm$|^p*YjhGE`Qzp74mPH@lOSGW#<46`fJEFsE$ zd3o8MgcLUQUwQU}!11`R<-oU1Pg_>b&skTc(|t*73+i(!>E;riAV?*M5bui)S8GUwBoY)xs+ZsJ=;0fvU)7?oOxkYyRqx- z+um^ymoVpJ@sYy-59EOn19_zd@FrFnFuilKlcssWqRrcqs}Hw3NCC(Zxcv`~6UxTx zn_(H)-8ywHYCcktQ|?Q}`p+bqSm!k#_z$JLmSGQjfRfS)nx>G#t!wC#A(B>u`iAD| z)fJtm1f-Cqjv!p6P$G?sq4!k-^V zPU;G0<|Kz?0+{)^Z~Ov4&Wu@$ue^qbl$~{PaY+@e_3{%I1_J&!-`P-GJ=LuN;Ns#k zI+o|poQ>Q+&Rg)Z&zCno<-r&}Z@9AddgWB|5#l!e(2A>1$pfL8yJu35DZJNmZ2<2A zUk82+d}+AT{t(y<6dYXn=difCa&xJcf8Toi7)TLQ1KO70izvKszNhrPw|;k3)la78 zR@pqf1>h*dAhoVz#c95Wp>)={|6*;%?)~VT%H@$n=hZuo`y{^c8GI|_x19j$3b+5i zqPv5-$BO7>&+yiN01g>bqu%+?b38A(fi>q=`SYgrw?=XbuAH%@Cl5dxfA8ojP=$tR zJ=46QF6KG_QowZpWSF1qe-^-RYd@A}6)f4aug>eMGtD8cG7*O(!HpYNLbr<8bn z2ZEu;Q}O|r2I+GOm)x=cBH*h)ZW?ZYSFFY*Ggf_s^S+$$N47Sgk7Zp!)uOEI&^R&* zs1a@NVYdh7O02yN_u(d7aZ&A}+(lZy4Jg(g98`&8xC7^&nlif3R5x>wRJaz+rwDjh=vCFms8{m9s+xR=8G>}gAs|?4Gb&GzvLA_Pp2Fq z7ytBIi-d(7r}X-tKWk^lVw*dA1==)p38t2#y6^BHfNj_it&K^`>g!T6VBUmltEpyI z$x?mL=pZ2v6aUEQ>?|%W!=scs^@IgJpZBHL)-0MgW1_p`;&OB$ zl$J`fPAczf3|_Qnh&D#DL>Yo)F7lu!wg#9896o6KzdKp4spo6sBbcKolb}>bl6oL!!H{1XC|Vr+d4&yuV;(uh*-Tii9H_o!zdc zmWzwasByGXq@`A#aW!X>)^b?uf0CruE`jtw&$?t$qmjfU1`qDsOR1K5JYYOw21wd5 z7KJ@IWCGC8Iu$($Npi5+APFLZNS;BEkR$}O9zckOAOs0@=p_-QHyt7(AyOT4OmZkW zGj+UR1I(;-vI?>f{xO=LNi9P<;AdZ|2Qm}XVMP^K_f|%jq~vIAky2VYtiei8^6pMP zTnE6IUJ?rct1(B8fyaTL zq~QR__Y|B}e0+kP>tpNIZvDUg-d%}rm!bIZ*z}Z!5V;r4D{x!y>kpkYG+l#x+~3#S zjoGBJ&BnITIBC*2X>8lJ8ndyT#2?D?)UdR@BRt{WR>fu5Q~^f0Yf2=~e@up)$E0O8!@^UN6e7TVJ9T zlznuhzj*J7p-`VrkZqsQ9H5v!9bx1Q1^cC^SDSCVRi);p%ththfZ&w|gZUSq(r)Yr@6cOK1IzA)~?PQL?=~GCik8dAMS#V+GO$9?;1F2EtEKp)c+Vw$seG$kA zmK9M;oogw|4tN$soOa=^4O}*>mC2&4Hl>XmtyxgKXZuxG5*e0#Bn$7L^DH-S0`=A> zziA$}dihRm$C^5ZC#>}{1U#$Mmx~d+R340z4r9_t_C=r8Dvrcb?W2T&wILr`q0F#h8nU8|I-92? zc*=3?Y1Od`;Lh$Yi?QGj_uT>EU)9OQ7f$zIM1}EhiqkowTw^G5>lHQrX^ym-Oh}MU z(GFMVai~>ts&xa0o0waNwJB(HaIN_91PG`(su*0OA3F_75*gETETGop?<$|mi4{B# z@50tL>^(j{_s%0SI06h68aix2*FxyhO;-4BU>P9YK|Ey?^9t(WUft8e`egg#Wm@EF z_TZWk#ti|0I)v-b7vh*DCZrS{_vdT0@%OjF(d1ATa}Is6HgU13QNz%N0X|>;Ra+Om zj-zA79b6IvKGy(`o9nN*$c}bXkWdvxZ;~EJ%UF^Fo4ibR=uo?Cr?f){*I} za@b*Q_IBg>#qWm>37yOo1nhRLIs6kR`umN-nVmy5G2jl7DxKWxco+wrX))2?G2y85)Z#i>ZvDqaC@c2A08T= zw6*5F{;f!dGZA>wKMdbp<4}T^PGS&5@)~B2w`}rF-MW6}TIoWv71=bn3fPmKjA zT}iG7T));p^mMre=bK-SC7Da;o)s^eVV`ebp!twhSapVitqX76**Omv6miL zmijG|51(8uDq${DLrD!+pb1NH>Y4yRR1kRt;HG_VI5YvoPQ1?~HKX9T%yJNCDcNSQ zMwrmW!z@A!it%PLn{Vt*Eb-#^Fa_wjdYldBaRb7k;6><>EHDogE?(7u*ZlYUy7bS= zBiNRoQ0F*vO6_$wW*h=d8#l%&29&!ASPRPdeka)(vOmmyC<~?&1_KA~+KDvGk3<01V;`B2q6e_!Hk`7dq~ax>Gg7w9nA~5DmEz z54o9@bUP_u5{T?w99Mk5zBO5OGsAo7mmQmn@Hmr=-CGM8VH(J|c)l$VcpU9KV)Oj` z2@sW`Ui($Aj?DAeErY}1^)!w03S0iVJ_@9zUM9-vvgImyD>9H`l3XWup{Rth$P@PT zY&-KTDiWCbCdHkL!<{rxt-nk4`JI37pAi|_K&3_t2^ASBOTIELUQEh!nE_}Q@jp8yMb!0cD~ zk+RY&8sJEOA4dcxEjy%A=NJ>Re=m%GwD~kN13Vf`*2o%#^H4ED;!M#Dl^c#3gjxn_ zpe9=Uv6Az->L)fpN*N_$q|24f0Hp+m;s-;X$el5>drmGIw7({zJk~qf4DD?X#Z(sn zs^pZ9vtgfa?C->E**%G_L@Lqjr#BU0N>u1-$Viy8LQ1V}(6Qt=QZ!v= zk!Qr_Ge8f!mvFAdd*hqi#EXDkPQ)}B1z>51yRm`OhWnn`zYcL&fu8P^&0j&vbJvW| z%kByV4a%QoM5U30HvH!t<_i=}Jg}#-9U+o-shR1W=3DU4_$ckw!>J}3TwiWhg_UP! zZDgAbA4-hTu|`MZ*&{(bdMx`g2ayXt9uUVE4vpX50P;|LN!!f{>A)|+##e-tRe4N9Cx&XL;MCy8nPeF>rj_@Rvn z0s1ID3+n1hZ@Ej}xFmir4g7g(dc24CaF2#6dYC9f56Pw0^ZqE03ez)R=-+P;mC^OM z?}Jx4l>@EoTjlCTn5?AM+6gAv*Z0l7-+p}ogzv>`JXGKI?VJZHX%-gO-mbtHjID)= z^tkN7l%3@Q2fK8QJvcpL{wMGQlRQlhI-b+x#8Xi{vrnOfHN0xTsT( zMJk8ryY-O*u3Ng~0qIQtzH#qFp3;azra3)lF^L(@L+5{QoP(f>^JtR3ptaf4++1X3 zC1ln95gJ=Ebtz1Lypx_tj> zt?k!b&%A66_Yq39o!Z)-TS92^va6NQ72+EA)@vUNmv5YlrM58(F{EXhiADs=pY)G znkT$#Snh5|yPSjC!|cG(tIZjIeh-Qd_szvrXf9*9FyQtevC-6gX4dE+SE(h7l=FMn zm>L-#nl<30e(qeRz?S?7H9d6Jb3K??>%M%wpa2Kk<$nclw3QNjd27#_s{B#?M6lW! z4p<-$H*^|bI$w3_iq~l!#$f$%hJBQ*OSp+)Y1!_!7L&967N$igFlfZ>^xvI|?^d_# zYIN5$?P;?)dt6WVtFsq5^KX<2Zz9ZFF+HZ8k9mxxfhmLhmC2=h*401a4m= z@2IBIexe%uf@~2-ek*s{;?HP#kqBt_-_jl4ES~fNnTDeR2ce4~VgIl>Nz&9z!~QVs zd>ZkDXZuNCqLX03cO&Ws)OZzBV=lOYSC@&mcvhj2DoGP+yf5d9t#nFiw;v1Pg(n8Y zms;~X{%u0pdK&~L>27r@((<`^KvM;1u^6f_Jk(U)J;`83009c_mivM|Z z``W`)v%1?hRoli8A%sG-e*RR1T-r3@tM?kr;*?)|y*t(%!hLgwMG+n@CEnG5xWaeT zd3EpS$Y_<7k|V23rQp?W6#CMW$b`wzU!<3v{Og}l48>qnNGX3CC>0ZP9w&~hjJ7+3 zxhs#fs{AVuG$l0%BGUUKM~4ziVQ|>cz`ovORC^pfy5BJtKxBp-=sbC|mvGaXvTcHN z4gg3XpXq<0?Zc1^7=j}JK((+O%_P3nQ%^l8PE^$hd@kithix=~<_dG|b z9Vq@$K!eR0>MfzGdEOf682t=b|AGK1GVo!(=pzuR7N6F16laeqHw_--H{~_@-ZaKU z9i=Gbu>U&gb#egTF8(%F(zH~Q&>1|wgv7g`zWfuJECh5MF`4A#C&H>wtff^wx3$Nz zVT571gH48|X&}JwavQiaO_L(}sPPC#BKlgAz6c;2a7$Yq|G}MbRKT5ya`1Wncrw3B zqM~)s-dqBD3_L-UCA^?eVS^`GdIi3Y4x7^d=2FByqnzVckzDL(U%WChbCu4<6LA5m$s|!em2W7_0Q4Ad)MydpJDoV!3txy zR!w3Xoen7oNa`&3Jni+lj6ThibWG7p{I%fTW6SEvQ6wyE;}#jKN#(ga%)=<%$Ic3n zt>Nd_#q?|VbI))?=dc5pKan~mCl>-EiT!7wj{R$6`b3>S-5mh zA%zEJ0WQA~r#MO1(&oi|_nFIF{1E!PNwUUagF(1$UTSzhycW7iRyUUHD?OM1lYyjd z#bzuhp!gstLXU!z9+mhh2A&fMnRZ=8()hUi^{X3umuCNg&f#CU_rm*k*b0oArHyM2 z&#gdLM6APL$9hdRYGVXm)KIw*M5*~4%{|4g#~Re+zES~SZ-}pmGNRKYLEIexP81Fm zY%0@JJf86Vvr@#rCt{8XvM@SIXYPTpbqhYhUV*LFiVmQ~#{Oi{OWj9uu!%F_!#|3! zdc|}8)rmwtfeN0e3>CGR$?=t^6yrLuKwyeDoQ5b?F^8R#i)+}0;6VO>h=@o`oGtNU zthl9&S&v@o|Fr-Q8j~gG>1=uZi3ng_wm*)=M5W0vIF~zZ;8Xb-I<6NSi}GkSOG?@= zwooXYDauJY6PWvjb`r@EfZt@8mH9wi%$$U(E3c6>^I{+$Sn9^n%a}up8*g@@X2nrF zJf|p?P#mW=O_|9Y99NjhIINFU6PifEz^82~b`?)Hl2is%fRfJm8~vyV1bjO=AO%W> zeMkX9Ss|`pBvIcK14#?)gZeEd2KWgKqLYLxk=I$so2FP%%8O_5hSI~$ocUVcYYhdy zZt^_7>;Jm;s_A%KjG8*?wLC?w-Sb3DkUoMmQtCQ}$>G)2F zO|tcL=s*@uS!#}vWggIFLVDb@RK6y#JMO1y4iggqc`l{Y^6l{v-K%71`=)lVc_j>T z!i#s?B#u}WZ8jLcXYtW&+6z`A%pFwF{uqihTFDl;T0g{iat}oP;Zta;c%U819AWOa zIlDflhEZq&RjD=lz!E(#C9kPv(Wv*RodQ(F5w6Y@!mp1Z$?=vQC) z_%T4snxOQ)`Wb_KT=@%=3Ja@1Zffc&g!~Caw(F=ox2`UOO;RsAll=UlqJ5Ts&8O}+ zHZnEnPk8|RQx;I#i@2Iq<5E8=|GCp&t)O}Xptw%YeLUXMqIuBYD{fP=?J}0G5$2q) zFp;?%zCHodp06lZ5m`;7sM4KMD75aLO%i3XqMHNN{BGVRtYIoma$33broIREsmk*a zts>>#7q{|wybK41d6j&DqkZgd&~7hpp6s;0nTr@tIb$TnXwNRM+R_*6W?yK#jQRc3D(GZ*LR*OlxD(qoTEj87$!gDYJzGyTx(P{3Z9oxz$0r)OH8GvmCcxiz zydw;OfA9`jI@n_~`Mh&+ga#n7`ubjX2icHLSZs?1FL`=xK*Z$lq~)NQ^%4Jl1J<9?iNWmm7`*dk=>uhwSPWw)U(0TgyF%T7l^p zF;S5g$mIpC69QCs_#l+(yAn4P!{;lw7R1X22CUSn-~TiLo_kslk@_dL)q1fFlwbh> zGFvM|j`sABLEn75!`+dg3!b%(BlEi?hgQ+J3T_>Q%cn1L`$ zDAkEon&I|MGf*eVl|?7(H#?w*1ouufj@@MQb7adVS@v!`m|$R524d}CGq$uW5i%XU zp1hZ+(JEM2jwF+Ncp?cC4hZ17sIcYAiXF`sDsgYEhK43(jR@bX?(DpMm|~psPOJ+$ zk@*hK$lTTWPD~O)G3(Z16k94dyG;2zWZmkUaj0WNaK&qBDp^Q8(ZuN;*rjY5>E2C? z*P=f5O0W$^IDkp0b7nY$ym2!Lxl)NaEo-*KF_1YrBgPK0<<<((>uBr&KEg8Jl5}=1 z0sV{FXyIM=UT|fT`EE5r;fvMAh}eT2#p+DIk(7BA;++%Wub2H00RZ1`9t zx745^{a*r&xgl=YE#*EWs-&TUljZXAKa9!8NjWaDNZg6c!k#n03LNneIiS*dT<_n! zZGwoAbiZ|oH^wb;2NtPF@43>^nMR91>@6s?X329|RL$xL} z7~lvXMeCJ2o=`-l;;@w1#em(t*>Fv#Mn?YbJMh`+wHfB2&LskFudi{?{+$*pUGGj* zj+W7l@X;XAJQcdr6)}tU(v#h|YVU&{>!($BX8iXA(Mqu{vGgABpU-sUASQlM#eDwt z^`}N1<_I`p?QEps5?dz`F+O!BXCr6mAKXzjKxSny5ZJmm14ztKBSRpf=~uZ45Gv9! zH_lPeq-}QjbxEM6T)!AJ>IoYpFo!s@bJr?E;}$cu$8A0qSV@r=_Qor~0;CgC!a2F^ zgnpvvpBDN0nUc(APCT!pG(xoeL+o=^AvY(7(zsekGr=NI+9ex+_s5WwWaf%)s%mKL zFj+Qz$L%q3Z-y@YQ~{#t6^Kt<+FeiLL+B~~Y{8Ioq*!f%XcK8uJ;_z6+GTU}o~S7) zx=0wR3PkY6O}Qt7Oc-&t42>o)mv;D|>HX^nb2XHBje2l#; zyWw>(fC)mNArA1|svik?-VDcY`@MACUp8*bBS=mz0jUsDLU)c9&;Rucv2dS#zOK(n zYVl{4q1il<+vK0vMu&f|CT={o#QFU`c(hRPq{e0+;ci08r_;=^tY*x?B4e|nO6qTN ztKA)JRm?RN4|-DRIHhs7AvNzOABw58*rOUCaBHNg*#+ti4XqU|HD^!ico34y7sdNc z+DMB;DyR59y#KFfB0W95R)e0X*{=1KY?}Shp;`>U^5EsO*~a~0_OK*#zN;IU=N9B~;e}DXyz0WHQ(zj?c_|tP zNX_eOKe?U7iHL#C?>nZ`bvfVG&NS=QBHN5%Dqn|MZldNZO|{A$;_)_%I<{bJ$aQ`PSR(3 z`eNF|o|U?9*)*YCztHjRcjj35Lp`6*RM6VS^S>rLZ=B^S@l}06z@5PJ6CKlYWZ9~+ z7As2-ltj6a-}}oa6AouA?mL!E+{--V_7zf9=_ZliF6d%DvUe=?N5@Vl8%_pP8{SmYQnz>to65CwF5ZctzK8R#blZVSn zpup;b!IUb_I3tctC28yZ@Ur_IZF@rO2ivJo3^9g*bu6MjAZG~q#dP%f4vS~4E8|n1 zhBQG*SOx}7cv=R*3`y{C04?h~*`m+oZu*u2^mM~H%yq9Air}4bQ$yCcU5jUz%oyxW z%i)&pRnn~%jLtIspC{S*ZWjPCz-kH)zvVNaOwrrg&rsGT(T30VI|g6c?o*@HZ=d(h zadbCTu}C{X?v}3i9`oc#GoC9I;+ep=P@wqm?-A-RL_VOP8%!R|O_IBL?%I zK$lm|oA#P&l3L1|3`9g`0#K3CyJ>~d#`KrFA0G%-G6oq#QdaBPp>VX~Gq8XOYm_Fp z=Fm`FILo4*4OP4mBx%1;3mRSzF4Dvoi*AsUcy`JBK7CL)!FsFfqDM$b2so;R}Ia zTrea6@OAxn@<>6QZlZV+>JgA~Qz~J$vpj;dh%|%>CRYKY*J#{4_A})JyH1wK6pB?I zRYw~gpuQTuSQWeHZP@&#vlj@ZZ^?{{3Kf671y2JZix!q+2Td}1aT=&F@a%?Ha(0p7 ziC?5I%t|4GzIQCtQ0;?d?7!nAFNlPSRNdx~@of18JkxF}8wD;L(xqo9$>66jynM-4=vpniYn{>N5iQEz!r=!*!(kRjpL z>#h4kbO?xuTH0FHX4la_QDPH=acd_v1nMRuva%v^N7O`ID)ROxK61TK zmb3;K{j9$Rxv4)S+}5We4z?pW!h)Cq>!)H{xpXk;fg==bir}ocwJkoHVccg(hbPsP zhG6#fuyV^Mw{2B)k^`(IiOMJ`<)dtXh8rTTnQ61p54XOAp+H^Sc`E5TxxY)9nb1r? z5tQP$5rIGvCj$f(xQsddWd?4%fT)r_-UZMi~;FJZtLMwY*pJs)+ih> zPu99|x`C@2)R%DQYpmhb`%&$q=`dBe6Q-xB)G6>Dt4IL2J{xY9A~S8t5PIk;YSqjO z{&*ITbN}YcI){c*xq-A(V1@ln`;V{3a>fe@;K3(W)r|sdEC;oqAQ#hv!FgCk3;lQM z(o}UiShpO-I2NVr3{(tyfb>FN&lwi`y4-kdi0%QY0rKi0tk-tT`2(&MmfqTMFsPSEtUtP~9L8cM`I$AKQNw|h3~nv~XENg{KESNS(}f%e~GpUCpC-S*G5 zKM!g=-0$Jpv{P2s=5Euk_@6)g-e$mg>-!rAUR=5ai|iX0cAEz6#5xW4 zM}i>jK-TP)_bPXv_Y~D_8LH-JdBQbbQgL)NKZJxot~G)`A7G>*dKkAmPXEA1fZTMw zYcIsNH(Focp_?tM?rHrZ1qEiSyPnU~5mhQ%%{Ty{v^`AX7xk(nqOtznYt)3tE{&&K zu2WNQHCTkTR8~9bmwTaX7VSOjFJu@eyAGzk6PlWuH}2r>MCh&e4^-BK3?7(LF~i=* zal4@OVEY==?TcVXATx@nR<&RmujZsOL&&n8_o}!h2OW8<(hXy@NNYV8!*-U;yw@!MEA)BQ){KV0iFoBD&)4L7F@=KpjsEvtMkCW`Ev476 z{KxAoa+g_`JzP&;Y~=|3sOcq@XPm}DfUvlb_HE&{*f8_OYlEuZebqPLiWiN0#jC9! zw-GfMm2I91VU(mgn;y5B-z#=T&+oI@sy`l>aVwGM~W2B$y=>(YR2)v?oAdH z$^;rEoFqRI;wS*g+&q>oofW@-`il#}eY}3vj!S5#L4yv~;wsC~LID(OCinmK{^yHfQ&r`#{@IItHRlP3 zD1#Eau;*_mZkQY4Fv8rkksd4=2@BtG8if8;cL40Kn1yI=+g$gRQU=ysrm;JP7nBI) zjrU3jmn90Sxym`c9JIq3_4 zCpQMAooh2?*#r>)?$I#nFL02;(Y$i-)X=~=e+Wp_fghzbs1k2|bMga)tN_7y>y@w3 z+3rDTFo~a}friMr6%WMHRk^Q&$ZivG6tBm@;i`rl6>U|0uM5u>HQQ1EXCwgc`Gu?K zP?(2tl>25L#w-fd+y_)@WTL9@H_GV4F%{Npye&5UJ{Yx< zx=vHhis_cYvA|*AZbr`R!)jaq({zG`seRAW9;Uu~x=ezOF+269<_w$Aw{!Pon(%bv zvtYYQvE%s`RviXXEnh9N;=cK+>weqsmF(;6PLn=`;j!XIZ@4h^*yd)pGdk}rfEV8x zd71QBCh1(F>HJf+F;_yUTNh{>{D5#MBBs!r|1jRKZS~~yFJy2#CzDg`%Ew{S?-I%t zqQ@+?gPf0n-LcjVB0xXRU4PQ)!2I=^?k+tKryeMvvEygQ&fI#ojil_oycQy@MyAYo z)&&8A{g`s5^05Ax)bs528a~zR%?z1PQUFm$3oD6ZK5*o0w_PZUl@E0PgYgYi%f~-G zv+Dv`xOuOcHosoV$9`#qMTyN56_2-n{sX$ZJ`!|S>AAwc*mcjG=Y~p^D)wBI*!+c} z+t5%i!18otbV*aQxc)Jj1;Q1S<^yCX3>SSw+&U{<{iW}VNY+)h>iCC(D88IpWN?0!fg7-c9Uu zB-gcl9@<&uFU|?@;!@(OkKz?S)9l{<;DxXEb0pleIG=>k?54*d!3*F06_6f~BcN7h zzjl%HD4opxt3dxF%tt3LJ&pFoGp;O5L~GsxhuXPqj|U(baG>1@`qYjHESX_hwD?jzOJx;=3IhtOhFVJgbbiNb-SF8 zcSKwS{#IF5C1)xkXS zzAYy7p{+uE<0qNo^0}GXR{M3)Li@g->t{#Rl^A}5QXIG>3aT(T;n&({=H;n%ln|(bDGZp51+_BE3VOT+^2vwnhkCm$ZYxV zZCG-y=<$y=-nj1YaGMMsTHM6w%6FgQsv@OJ(V|;;Exhk(Ra@9U=|T=Ks#M zJ?IwfDd>F7vgg90uXCh=@*G@d2I47;F=GTk&ftj#`pm2r^{S1L)pwc|txUv6B7-Gc zGpN4iY7;Ud@DNs%drj<6vhwKxaudHD0+v!-=^9ONab!FQ2DRGhIbf;&SfERc z8(=Z&TaAkSekI1({Ais0N=<^6e3ob*;?|jBE0hgTs|;1)^al>d&|bi>nSo6VOga9w zMgqgafkJmbhvC~8;q%gL6nm!jlV%nzuQy?dJCF9kZ_Zbb%y#aRl*F$})V+ujg+Tmk zlzN`E#5S+>C%)jLwBC)_d!c%@v5TusU@RZI;@>7k71?H24uEqGnKT@r(y6fkm{!RU z{WFJ|bY$UEi*Kz_I|Ejk z|D{$1j!Wtv0M#PM8HZie$JVUMgC-y3Glv^63oBmC(Qxg0Q7$gF^exWBKU}k&v*C6g zb)5c(=voF4>)g23Y0aZX6TSU}{J3YvvRIk?gcN#0{ZboByH!Eibis-6zb{%DL-^}q zDOL@-!VKqj=VE;=KixUHSO0fGr|W52{IalNfAFVR zSRi`RJnVGazNAoh+w9+$3tXwa3qO3BAnz|lFKDP}w33Q?l^Ua3kAX18^HtPzl47pM zmzB#vnjfg--{q2Y|3bL}OBt5N3vObugvA*c;=hAx4~OWO;v9uz;89S(2n%_s%Hv#v z+edB~&(JaR9giLu2f*r=B402H&jY6^hoU9Cu*3l<{ch6MG1U;E zl_#e*f|Ip@!1-6I8fa;crz;fuzwb9zX|bN;cD|^n*p+`R3=UlK6K&wJ(`((?XEU2p z{+4c)s08JxYqV*lH$7@eqwSux#D)XYa->TYk1%6YQ0H*Ob>tF3Xx3ikg@NzP=GdIq z1CX`P9q%_Qkxr^F&Ea>M_f6?8X!^I%XQ8t2JPivRl7qVY->H(y8V3? zmsw!tCbNA$TzEgh-M1zTw<1c}16|_`{b=J%M>@w{YFJ04vTWLy-CDZ|33=j~;72+W z^2b8kPr3`a`WU3WsmFK>o-mqyU2po}g@(MpmiisMxKmrA*ZR;Vo2(98*|#2G-)QFC z#%rt^uYS+aMgfS6i;s>NBa%K5`WUVEmN4mgx`8Dh-_c12gnqp-`fD?OG^yEwX3wC= zsIbW!>`~Uzm@`lB`uD^wwkZ_IzpgdfpcCQ9+sMcK@qGaRY}%I=5?VogdX|Iz(t}pt z10rWxiNY|E6c$SEuDMf{WVS!6>E`Cy#$r{ALm&zS2>$z=Dv)BOuN5^ICX5GJL|*|& zwwOF_Ae429a~L30-6RUA!P&Yfc6*zWo5kYifX{XOiu)Xi;5!Q2Nem)W!vwIJp@eFkZIH7LUDHmVrAn^V_`|{ z8v88z@rDO`@?ygLak9zcrN?J~{059OQ@*+L`>M&KU58unALB5ed~$;OhC(zoK8go! z(A*1gOvfgxjj;5+F0(|wH#c4)Sj{89vcYitVsp}BHnZM>5PNLby8gp6t5I+IMZ?19 z1u)`bRQ($^vraS35=l0crlpUV0GoLpR>uVO+*3QPqz^Jz_n?6%q6MzsEDdsq4ZK^@ z8WX+~3Z#@X{+%pI!h5DBY!-4$uck%EaofWQ!%k7sl%E?moDN{a5AB_Zmok3HaJlL_ zG_2Wb1S=3*gVM?su+RJ;VE8=X!K3&C`@-s?Ts3ld+_dy&W85xVD{%DjiIr6}T5a;7 zViij6_kU84mEL-7+t-vfONKa_G@Vq`ZZfDyOU3J05sSo6Vcx8$a*m}iSt;5Q65OMNSY!WR3-ED8sjgek!M#6tQL}Bobt;``W?@6& z=0v(DB|B6cL#(0|%^=8LbRVlVZAfH6A{cNY#~K9b58V2lk2CP?e326n4jk{IF8?H| ztbW=5d{74&jx{*olBQ16pZUp<0PX9SjFxKN;=>K9dzmx4A>8;;)x&7i?Bfq_tVyU*0qx}%d0XY;M(zjcM?xH_2 zeGvI;tNF;@kUZI&f|bt&g}F(ZPe%;lJjfNxTd9eh9*c7*jy1Oofu+T}JNSIWozU9Y z2EXx^Iy9YCMP?5?)=V$S)Bo-Z7q2+ZPvt!c7)vQx>5dn}E>V5bx7#@EuCPE}Fb%#E zcR~R)AoXum)0|YwT+PP@5dp$yuV0})!P8|5IGCXCV|1)@V$I!W2+M>@>1*KDs(=5d zNU%oz+tHujoy6cRE~u8oB4V7QY4-N?sfdl1*Tr(|I-R zcBg>;lMai_Vx7C!3q7~)}rWVe!DHy4KI{82p)=~B?^VfYF=!Dyil-P}EHf8`ytp7GR> z{U!jxl#Vt3I?ExCGlJhgd`iRB%|K_sYKi^mU(tg{4RyZ8!f%4uGU%y|aVN(hsw|6I z5P1Na76bul?*lA~29Mr?4AT0mpWF!F=^0$5R13Q3H+>?D3N|Trk6I8>fj9~3irbF8 z?=RQ(#h(8CO0l!JB{pE0t{NGO8+4-ecx9po+^x1xsx7221(11TR}%#MYk2X+_yblL zB47A;?eQlU*CEoG5@dWDazuC=h9#C*(mHAS)VI=P1scX|hZ}Svq7qW^g{8GNleev? zR3(VgrRT>pO`B{ACK=^~G*RO5sQwq5A9zawF^>y(p;G)j8t%g6Mu^)g#1y3dr z9!?2QCL(a#({O3jIwU9K(vDi$s5YtviU5#Nmp2qBwouYwn;YU)LnlY9hdYL?@|rNW z#H?VQn|dsPoKV3WpXbfpnjh<5GOu#)hei($8|Y>o*81F)8A}yc*H!~6Rot|eE|%`s zX9gpLZ?{oHukXofJCg>_05}2(d$vfQnOh|9aE>0kHi^`ZcFm0EE0FJ@cE#3(<8*q2 zzsACrP?zD+tu7l@N+y?wVcz&>;W?=pBt_|s`Oj4swMX5)q}UH`)}u|XI@d6>4?EJf zs=Uw8#hSQ^2y-qxRXRW8?S5L~rm*h`U}-hqBT-uijnL>~cGxg3vemEGQSW);g_@i- zWqxXOv<1h%G3yHN!PL6USt?o!Vsx8Ygrp)QU{_|OJj%Pm3R5XD*1G^|w<1S5Fz-c3 zQ^nM6Z=t1SzCPu%FN+`mPXaDI^H^1bEeVhlw6(WrY45~*U&=19ofO500b*gL|Ik~i zxozb92J^$kU38OQHTKDJ6mdEuk6EQ=>e>+t53Ih~vA(mW5uQGk#gw+@EuwwX!PI^o zg<#WXW~(Tl$cIeEL=Wb!WjChkX3F5I>bORPQ$MoyYB2~Wj_yyMB;h!D-$O@KkR%!B zzp_1M!8poO6qh5LG1Xl>x0Md!@JvkrCVnh0E6)T7BFgs?GqqfQuBm_b!YJV|+f@~s z_sD(BL0R}@yLnw^dQ%IIEG5+f7+sg z{Pi%^0->krUs#^%fx^NqEBY{(iCTB&l$TA11=UZ36G+J53JxA}E-G|lHJ^Ub7S`_g z=wsslBHV?W1@?Db7P%PXonwpN=S_CYK9maZhsu>K>hGrz7O4!yKHBs1D=@Adyfmi> z;|>#>eZ#$&Ereq=e=~b>lzmecH^te(^VkvalT@Hbu$=bOv*fI>^q6k^-YOexn*PbeHIp{an5@~) zI4~gl&ef{fbc$)2E-cFLc8~jZi;ayvsrLKQMgt9I(r`Q3Z&`%IWR{z-a<@D zLgwJE`?AaM2ApU!t!CQPH_errA^iTk@wNt?p;V=*V_g{-XqQ)2KSRE! zb3_pJPRbr-Hl)5jxPVzqDl}L3OpK2pCaEsJf9LKfE-jV8lh!g1nMv7g2##W{-#$RJ z))!p&-K7l(4^9|6@HYjmqO;fX*mk($JI5H8);IDug8A$yiARI7(L;{iy&%@mv34Wg4?TU}x zRj$|Mh{+-Oe>i-G$0E}y6HTaF{=T1BngUl!!xAV`en3Ai15SCzKv~0Nb$noTTIru;pv#Oj@}6=Fx1QuFKeU z8m;|K9^&Cz5#=E*&3hWA^oPy5@kARd-XkcuL1v~8+ze70$U4i&Fk+rizZg+soe0Qw zzj>!^XN1 z;ck_X#m6VZIF(t6*(s3h1~*hsu9I6x2h-;TAOCe__b{2{gxy-qMz4ye-n~yiOOfC8 z{7qtC2-~LfVJBWw+BZKNwMppRRLD+ZJ+rKxjE;U6&OM4hmJJhJbldI<%CUjowi89T zlKO+M8vaO;t$HpS#8a6k`@dd(bfOl@g%MU?%diZOzG1&oMS zg13H0YQ&GvQ=Cb2G3^7`d;BCRfnbj~lH6*LmGr{WoVTv5yVgUmyOVVt6S=IZqb-)k znSnNFTU(p2sdkp-UxPr{Tx_##G*MLF$5?!K?7w>Op(7}|53D;$vEaX33q?$s{ErrP z&x}WnM@91|l^3}UeyAcBml2i`M&>L)74{dtwFoDXrif55=xd0ys=`4!$aHT*7pH($ z>0Tq(<-+%s4pjJ17G1j>Rr0&N#?ejV!9i-Pp2v!LrDtnRQvVO>{peAh;~`}Kr9f2~ zIC@1t3ILcOckvsT54Lr?Gspv6kXg@3sS90dmvCjIP0cUdbis+5h_kft1(@)(&Y~nz z&4{K6xz)UJqM7bC&5!6;ePU_hKT!~o5vx(*%n{rXIb&yg!RjY4MgvqFdC!@pt(heW z+$~+!)mb0HONVR0%|-CV2A7xNPLr&&AVlVnMY5rI!%~Op$3X(kfti{ffGPhcQwVr8 zGC3`WJ|HR#eUIPR5SJkwYL7$D@$jo624y+O5BRW?>+*O{ySnxujXBrO%0#DN>R?MNPnWq{gO6>0JhU2@`q8i{~ z5;N>ullc-LP4(B(v-n`Dn0xt`b?Tj4lH0dG+AGS7hmnkvbs z1)+uiwWg)}-*^h{RsZS>cr*+_;+S)9I68~T;mlM|<@_=)dWo?2 zwu_m^vU>tDH$>t4@<_BpfkBdPJyu!}sg=5B@w&BQbwmt0yE~e{e|E|zM8W=BkErQl ziJx7Gb~2{6?#>HDdzPZ_T8>Q|_d_=K*{nzvK5{Cv0GYXvG2k%Ce2{HOoj z1~n_By&{rY!J?5 z3pZw*!G<`>L{>OIx`~LWVNHE^8)L??lanXYDwVYp$H7}%A-!)D$xw^7GXh#kyJR>QkL6aF9Kc-q1a7_9Rt)u>P*bE{{f3M*~I-(!T?s7P~Z-->sWJ zRL4ghVT`ffqK?d39IA9-P{&y25$Ve$oIKAjMtmzprr!B;lHftDmy9=J;;ZPlnN8f_ zvBpg#&w~-RsfBhBG`xsbNfQOY>ZB!bvm}+)gN?6$UIVm(4X&0I7+eWNa4?nWm9$u!9&4g&tFQhKFNTCKH#=Dgb zTUQuZjqnwddPzKLus#u}pV@(;;uzyoe&H^^<5YQ|Q6Q+C;Dkx$;fzZVrDuoQd}4{^ z&$B*GbhYIagw(o|N{$1CJ*E~6nj5ZV?!BE_Xme>A3K&KJ~y)elFHj^s@y;wD&;ZF`zaDw zsvT&Es%Z|T5hPoD=)6=+Eet0@^1WSgvC~IH7Ab-@nac9juCq{~0YWRA@=HaV3;D@v|2{?hUpzS? zz09m+li_`EOT53~Px5mJWE1snOl9)rj*ltW+ZHtLmsUG*B1ngjKc;bpjnbXBH)4R3?XOuY%~rnh-&N+;V`rHgC9Riq3kV^M)m9E+7M$ev->|NXnXBgOyU{S{YI5^Ai)d( zqWYoP!LiBs2ib4cd}=tz)~M^#r|3j1-Iv?Zp8(mj4Kd%((ZKJDF$9Uo{HnY7<*@(B zE++iC?fpO8m!D&rVV2PYy!`TPN7r$g^RKwYPDdJZ#e4;+{z&1?jMLS5k9UK7|NgH0E8uKt;cCc9J;0P@5KM^> zO-dSB9E>MygtctjW{9;_rPW1Kyr+R7fh`X4O-`4sbK)@fZc_0y3suAY@7?Dtd((eD zn<?aLbKg z^9$2)!}~cl04be2Zp_HegBn-7{83j6a45|3o{fHnMv^@(&)E75f43bi$Eo-Dr6(Jk zco!|q4JBkZlg0Hr!2>^6ip+EYPZ?0Sso$8zZAyq>sl?Lh3+sTOWY&UW9<3i?AJUnisQJYdf9RMVj!SR_ZM)!2?+RM+(uIsdCsA6#LZHhM{j|E$yAm=^z!6Way?-=nJ8C|w zP=7A6=ATE5N=Iaa)ZZZ`4P-;Eg)XskB8Pz|T|Jku>UqxQX>>RUNxx5Rv^k5`+kg;I zdRM~8Q`36;&^XI&)^jR!5c~Jpt5M?_T*QImyES=!GM0}L-V>hn@5YNNMX`e2k};pF zbj_DAoVqqKPJGt?c%jm_2rduy%%faY4O1fmU9R7QY0KMUQ$U1w>F4A}3aQQIQToIy zAe5giee4tjAeEWBTrd;Pi}laMCs;Ki#Do?BjN+Ihu{;@K2nV(&CX8FgvRFc~5LENU z{lP;PL*9NO_TC#}$DJlIP$>tVKp3;&-G)T|B=eNPH;%tQz>|;sp!Bff0IgIVB7bpJ z>H^6|EtSAP%B=`HI#Ub8?k+^y+A1K#*hH9@b&aR&^M6IX60 zQ#AL*R>o2FSGzBH_y`F^E`)GMhays{NT&t`=ZS>%S%T3Crmd%yH{%@gbmM1y6TN^Tg0r6sNeY5RiEpw zGa|q1y=$IsTo#xFU_++yAMLnK<5H_&_NT=`dK5!0M4Oo`3Eqvc%o8D%X>RN}J?jLQ zuuVH1Uj5S6Ft0YE>FnSfeze;?;VG;4iXU*RGe0<#R9j8{jPE#QlmV6LYjD#=FO@{9 zDIbhlEz|YVxfSJl6<{^Ed*rF9@1bw*qH@Iv#ex?uAim$RMN2)ytH*?g9**WPbD ziY8>rtlhmki;`1NAar&$^vw?&s-7`mu#)7hN8sqW>S5;?sya23_2nzsyTuU%{ej&I zXGMT1KtF7b?}C0LAyyKyo9&s5FkuU5>q3_2a`$Y!aXPl{H57LjBO4!!R`%_(_YD}X z3(C5(*SQUo89(D+mB6-a5$rg9nwIa}Ya9(7yD$Y1>&3`kmXw!HiNu-%xs+Y6;+8Up zkCQEZaG+R_S>*x7ziuzU<0qP{PWIYsnK9U>n*e?d16{ApDC+p@#p9oAkd|YxP(P=2 z9}Y_n&@B!84F>_8eXTQvLra?S$5h48!Z8dycP);CLIuZsYZX)HK2 z##a?r5Qe!y4N^us72V@s6h1bn@;QNLX%O{?YbX&AD<=3%9?cb5WYBCVpSv0_QS=^? zKC4CFS@r}{UL}H8jPV?-YGM#g^D|yn{Sr2uhF;?DE{`LuS@3)i(#h55@f1r3n-bKH zIV5^K(4GB?SuS`BU(M<^nOW5Oet#LTPwu7Gr2DgBWR`?o%`G7-I&f7+fq5-EsA+sN z;`@pkPOiv(+8l~r`mM3sj7vbZbw9=+K$JnTX3*Amap=l=JDSzEzlOsqsff54J&`Ox zA~YD0Dga~S{+qWP2M)ck9N&j^ z^Dozh9+VH%4i5Ar<3S!(c)~c1JCLNts2)T*h#v&y54Om{@W4}vhpb|EGuj8qMfT~$ zFAbS0ts~v1TCSlAt0dRP@1s(A5TcDmp93hi0fH9iYs$|vhjDULiasT!??;SZ&E5}5 zKJx$&h?yHk)Z)UB+zUiOGd1Z@=%y3H9K8zPN+{iUzw$O}TzP{8ieFCd850C-e=I;e z_2F^}C}T5J-4HInM);he!-|0lf$>rlC+er`LLVPm4zD}HIc8o@rYX%bHngyuA34(B z6`TQ69Zlig1}Pd>CPXKNgSrp;2^_eg-#YSJQ_yRC?-1qS<=j*tgvHlvI^Z2jYz(kh zvPP8@kE@{*nd8C8!WGQm!VcG>P*Q6InmHaj2d%P2?SEt($XJ=}g@vRkV{Nr>MRL;( zrQb1yVMEB6?Jz}U?H^w7Vk0H46viMDH>b3NRfDtmjo6@FUC)FqEKXh&=Dv$}lfsEJ zF#a&(s%r3uV`g`m{GbkQj$&y0O~sskxfm^z{HJCspoW|N`+_-@YjFp~8=ojGQefR0 z8kRr{n;q1M=AtE|S6P_#)Mp2|LXm%O1IFk{N5M^lhp_BuD-36d_`l;ZnYGQk|9;$n5Wla8$;q1Vq(XJrE9ueVc-3FmVU0R-MPixj;s z38a`Bz)nN$o2p2)tz%+-+g)l|#9=o)s9zTT4wqS5tT7hq-`%ThxoT{zuc>^T-y@6&w~71JfxlEX(?n&?Bg}=SU0fg%t}NJh4=N z?{D^k)-`bRz9dM%>03@3vmo;bc3$)sDE9dDXn34!z+stl5q}17&Hd8ebaw+Yccl_qdI@wedMfYy?7qA*9C8f^Gjth?_f)64x; z=Ir%7WM5}*AtE8};cMLcbLuus);E97qdnnlNH55*^ixO)mSZ9txqbe8;Km4|9ZlN$=@$LUZFQ+$Pi)-^cR#!%=Gl8}1qZqd6QDo7?#tpT0n zD%Zws%|z8<#|m0csntoM0fTDa-Hx7zi>_E>ybRW^)*%;}h)vynE72OfYzPRLEpxA^KdP@y5>C-%F<~mR8BLp?sSmMJE7|DPYQL27fqx=CJkUJHq4!_0rZgGiaw%Fk*%P zZ*GkTpaJ1%!K0X%l-e^UWP}iqbeU$lB^pO7hTMtQp&P?QcAfPnv?7-4$3B1qSNU}t z2c^L{fY^QuV`~RV{StudNDFf&>xl$_KwDa-)0)m`vDmOvhkh1Xf2W0vUD!|!S>vem zbt7V(iA)yr!j^i3sxz zNz%_fW6CVZTz2cecR=PJ8v#NelXXb#b%P>b*}vc}C=%Tz9|B0XeU~r;0T$J8OU)Z7 zrHN?#H*=>o3VH%i40_MRtuf?)3plE7OIa_sZEp~;;^?PmIDF(mfo`6ERR%R4=*stq z#wa9F#@jRCsLVaU$9F424#&@qh#j?7;r$~;uVd@|1@t_UWz-wkLGt`ijr?YT~$#vhPXrws#O&X}@DW{-k z=^ns>hx{T6Eo5$VpOC>UlCYg+e7vFIRXYe`F@lf8}LM5Hq15V_g?KL#-wn5coo{?6M!@2 z_3r0s>t&t)SxH%pkYw|D8VbOC!1v#+#CA5DyLnSW=MgJl{dT#!NBg(j8soIres{zxYi(qk zr!kB%Iqr%3X{<9}38rDyy|#3j0yhefLR!^={vP+^~8Lgyw8E7=dJ~nFF(Zm(;iJ|MDH_G=2!IWJSZj31sMu z`hYmHFBfdfe(tuS=^)?+cNN!J_eJvEfh zrEj~J_`q6wG`HmBbMSmf(BJUDV}_dUNRRUZUAR4eLYZI2WQTJ~DNp(rgyJ>N$yygv zkT+=xqhn-tdYm1h25C1uw)40ed4gP66SYtQ>`*;RmD2<4;4&>y<8DIo=IVJbuIDO; z7yvGm0^kEZN=ZE3jG|c|muhKile7*ogQOviQLQfa(_2=s$0gkt=uFcz@6!l4Fb zb0l%9-kk(EbjhVY^S5l_PvQ_bsu1?p`Y=-FRY@^E>iC8gy-a9+Tx1Z$_22x zsH@yDr!I!TUZ>yJl=PTEjQHJT`L@A%c3+2Sd$9tnwqdXVev|9@%tZoL(@&eR3xs7q zkHa!1G%sf3ojfWWL5Cc0Y0LZCa3}G%0cBWLw=OJD#*5BDex50D8!$%CeH}Ggzo)$I zD8iycc`FGQyg{6{!e2T5=+N(rF*6gsJfeD-KVIDKiPUl1C2`vhq22Na_p^9`8yFiK zn-wk48!$&;S{;D56~|%;^P1r7X+gTPGQ`@+JFAXx)byw~jBKCs6YpB*j2M~nwqyh= zB^Xn$`TL>Sf@ZtaRWknCa`kL7DNgj5(?BH!mpB{L#bJrfsI2YgVIw=VXBChIN)!;7 z=NtYfX7*+zP2uVQ7Li($>7(y&N=yL&$4BU|7k;{|sT|$(OwrdYvk36OOpb;(n z$0bwvuEdh9(=-W5=M5BYWYAfc4GS`<_(EcJt!0ht)^t6ZD@ zYXaN8-Y?Ab8KB0-2TfcFGs+3b+KpFKw(8m@;3U17_F`QX@L{=26OM5<$T}U+9QvT znv+HP^mj|o#Vq7-R2GOplTjs9eozY3v?Zv=Y~Y{*TR}sF_wI!2uS2> zK!yrcJylyaz)2YKyjmrUb1Ugj>YtggB9*~DUElB~Cr4Lla^WZQs#X99(<%t_&iiMp zoI=C=`c}cPP6sPIG!s=tTb5SGmygNLo8wA1G`<|I)AUybvE`&PraaK+i~_O#*r83_ zR_P)_)KZmTPFtXW-X;{$%X} zDdgDtiC2s4Q}&8Mn_vKvruAme%^`WUj28Gs7HO z=`v`Vp>JBktf&Q73R028h$&$dj>tk{!PF@FxH>%iFDF?r6^5%p9e*_xqmir4{XG6f z%43lU0)7&YcNlVb5j>ddI#iAI@DT9)=E`L-FXD?9QY2&|ms+kWXJ>26vLNlpt*fxq zhQCP4kIIcPQm$N2BlX}7Yavg(+aZhSV}B8JE~-^!!~Bm+3jkm2(`yM6u=!(aFS_Kx zBteGv0AaS|1&h5{qCX2sN?Hy;DpF<0H#2K<&S@bGeW4g&r0lKutM9VJnvjABerY|u z&ixHRk5!q^J`~pp@ks+Il3g^#Q2ro^$&v+`vv~IS6DlHDtt7zUGy2BFAA>R>t8!^>#k7y?*3DTG*fC{ z`z5#fCbc50R8bFweL&(d)m4Q^c15#>nKEfaVBT-MO-7D`(smBR@4YP&Tcvb!xTofb z)Jd{(?FL;o)HYlnx$j#C`KtCAM|s?gs)zr84+j-0wCE$yNIJu2k-(R$J4U2?Iz*92YURF@^w|3GGYYVc-1wYN2n_W zLzaCT?+gN-UuTheHC-f3SjLT~_{p(xWwt>pU|p-UFub^QAV1M%Ctje`cj`2{#|`(S z<4k#~y|-0>tL%7!&@=SQSD*puZK_d*^?so{i&crvt8}v0`Odg+mEi@28cKM-Bqio* zyRV}N!`wax3mz=C&>n;LEztFeYwIIxVk=Vobze}*l9O^aIFF@zLg(Nw`WW}x=#FYj9BWR#?@=cZ>cxcEhK+a z*WH`pgIhZ~#CV~7N(1@e^dS^5=-!s;T<{{^GgVJWDs_F!dmStS>$^0!Q<W z&^+WAz4NHzz22rG8R`3J8Lb$z+(U^ktjt_*&^z`XO-gJi{8kPDM+BkL8ON?y?~zAE z-U~rZZzPDMMQz`aw;il%{Sma_KT85tBk>#h*ma{LX?0W@L;(ZU^J$OmaC_XCMJTTg zS9_QEG0t;C@tQsA{}>HO8P?wQ7wJLWy+5WB0xp}4_ai$&#naRFjT900AdmN#H57p0 z>pj1TT7;#1@abbYafivjc3hIDt(-%8qoaHg)y^%@rbHEld^?TDid!bKdN_k{f> z#=zy4m-xj0`F=t_MZ<+A57^lp$nbmzZYEP7ZV{xThG_6VkHO`SD#nM^*;1!{9=^L) z{L;_+VRCt=ZKBCuq#NmKYb$ttM*Thj;8RT-FtP3(hCl%&3e=CF7 zTpt68XO*yTKq-bw15%fpnW`QN7D6;xa$iO0~Uz{bw&gvkbf3nXxl3op#JzYka^<)L0VB7kc zC;+MVGhcZf#iilSVbf|AmPkZH#FtSHedF?e(-r<^l1;|LqMMs6Z9edB)zDbA-;4?N zc4g?GMV}OaEev$d=c?#Y1Zq&`$i1x5gvazd?Op*~ zQdGhi7rOjmk$Yz?{*CANsV)JoZBk*$u!DhplkxwoY6u809qZPf^VxAxnk8UEOpcu; zcDrtcMHUcUwo?y)A(1+2Vw=>1vzA$JB?wumziMrpYmDPz5}+xQ6(vqayRa>2#<%jr zqVD-bp%F*IQ>)G%%R?oipzr~48V*x`&E+0L>VGwi!#KU4lnl-W9?{YIu9~Sg(bF=_ z7AXoLRIX?I^^8Df(B=K>Oc}Y6+S^;+=wm5sX{&@E)b@p`u`}ygR2knOpfH3u-rQP+ z&sEbo6A>>^H6Pt{#@ZQ~O;!BrcTG3m%BC0hY6{NemEeC~_lXg%?d8{#s*!-9c|^?F z)9@-{@17VG4p%whx!Q5N_wzR{n2@6QrRL0%O$F3y`*_;#!R3~786St%1_X1e$AxAX z7qUb>Kh8)Xem491P8XbUz8g(!H&r(pO?~`=gON+U{N3Ync4y_QQyu!WpJpk@Z*w1d zIG

$)v2Z&S|A8FesM>ve+cGy3_wO?F%vs;f=1#KRHKuCq-;CBf zPHv3b>Z{+|@{dz4KTi6)g#@?{-u}rc(OwoSh7+S~b$B)K7mR2<4SgU=iQL6l&d)ofVSf|l0h^Gv4NW0|cyIH8Lp zKtmF?+A-79cI@8GY*@ZT`T4_M|EVV|=ISyWQJJfr z@pFD&FNnW`ES_1Uc>N)|aZ+tNiEdaVfyY`}lx*jn8p-9Ah05NaEnuNS(NQ z@%-Nic7|l8Z{-MlpJPt(>$Mc;gO#ULf3}h#8w>#cr1a_4)APc|#c!g@671)Gf}6^b z#(n$_+bh1{wc>j`NXYlo{iNE}k_m59HM$6R`R{LUjk0ivaNRQ16KhWB^K1^i)OlsQ z$3%Ch0)UhRd~q{>I{pX>MesVq5R=eF>GhvGCO1~IqZ0G?JM*F!TRJ$Mlf=>xW`USL zm@v0jyX6odgfWNM92yr^3sGgh?TDgZ$bbFoSSZ8SZwDcb0oUnQ6;lT9se{xu)gDpfjh=S!HpH$3o{1)_BVOyyd2kGW!pYrXs z;w6%*^G{f=jc0#CXXqk2y{|n!?S*?r{9Ns+=5k#+Wk^98>;d!@K^+` zEzE=dRRJ0^F5(O`qIkDB5X+F|K@}2aaHw0gNWNVf^#OlUIr@$cZCVk;+f}XW3=(I{ zltYSXg%bm6r2S(z+&RYUldl<&W!G-F^(DQs{ZE6NDo+Il&2x7Y+ZEb_yGOAvLu-~b zZ-#Ac9IB6MZ>+Gm!*r5grdPGPc{3hj$g!vrcm%OyJ;jXji%;(z`*6&Fru3wWZ?`lj z-wo6;)jRosx62xg^vt?!OuFdJ_P^DY3_yTBes|s3RD^yG$E(%Wl7^AavrL@dGUN>1 z=9NEUhQ%#b)%XCEs1~TTO6D9XdlXrod+)7S@t784DtFQgwT;} zE}rarw^3El&Ge6g397o{*Db41J$~xFVpMP|M^9b`wfvwlfdqt8Ic%g>nZIX9<#92o z7w1%D7xi8uyO-jM=f^8mJ}+6zCA#tj;qcRDykGqI(!z09@Rnx2Z(Z zFwW<6f6&qL9I6&mVWGyraVAs8C0|m0$Vh%LGR-H5f&4w@TMCu#?dSyET!#uWhtr{b zuWspjtULoIs8SbXd;u25p$IW~PI@3vC$7!n{1JRYWX0kZL@vMbZD8>aWXE05?&bJF zgVW9An5Cp>7>HAYfv_O;6ostoe!()oZa4h#|>^tkt|!k;}q`iQ3y> zI^~=)l9kW_M*TF0>ttZZGBIc6ngI$~GzG0EZ#GXpCT3_SyNnS#SudKtV6!s|k_RwD zUl`?BeFbEG@2)m=>+fUePQ^ddf3;&*pJ*lG8rwzA!Tar^a@8 zbeVuaGRMo6C-r#S9>>keI`h4}FE~!aA=u{bM0WRbCD6A((C@*Jp{s3v7uS=DS|*mIGmo2a(5+S*msQCr5vQN4oH_VVY|*2P$^r_} zlR@|j4$bc0Z1cyt+~p;@JxedO@1@GP;S#H+WsF>^CE zj+sL|XB`8MzZ-fG~M){hMp@1{p!vTFR4B|0!u7O-+O~$%@Wwes1>>O)s%a=(`rau$_7%G!X7gjZztE_X>#ZMfLvn0QjtA%DI2y! zGDT$ch+V2Ud4~=6DNiQ6XAl~I>^CYxX(aFP#5dWkV7Z^%^l~lI?I2JcFBl<%PKK*d z+&@1LjV@$&6N)`z&}90KAZ3*~M~2`#UiPTX=O04aGu|a= zY6b7kvM5!Qh$m_^>@V>s;d@|Uit*6ALqYTB661CKk4=#p?>T1*AJ4gCZ=3aSvESyz zY;8KthjN17^_n%cO@9@x^|tib>Bj2ej}<~v#)mK$qLFU_s!043C|%Qj)Cf9$#&U7} zshL5eHgslDdkXPWdiqF03EvWj*KN1>w-9B9%a~j9-|WK9mCB&2%(7+1!K)2Dy$#mm z+x4s?&#qZu+cZ6*;wGyf(LI^W$9~D^Es=?>voASE;co!c-7R>_#fB0VIu|< zCyWy!QO|$-J!Iv*ZT(hSei@&qIQkQE^Rqcn`gb<#7}wvF zAq30!j@rt=95NMeQ*E zk-yxl^s;H{Hx~+HBlt;!E_xOL4sVaD_lAJL$e&sQpM4z;c2yioxtztDTc>m>b=_T^ zKYe1?Q$JL&A5<0)e))uA*8jfh&cs|X)0vJV5js2InALVtnJuk}i+Fu4gcZ9I6+cm5 zYpAjMj!4{SEdnk$Ni#8Ng&LepH9rcHFNc%9Y}40emZfbnO8|NrTkHgSeifFNnsQYU zMFUE~(rV4RUyI4pt`cLjkcue~i+=!06ZJfMH8lBIiDIFC(PX)}>6o_8gTg{Adm@F0 zY6*$y9H;{aW2K|MepR8N^rnST?|%Q|0a*4sELC0^%N7pK_jU6Vt3fko;S(?c@UdvWmJYm-mL;6|x z$%@_RG}O^!M$E*)YzZ%}Sr1M!Xc-yweWdRK@Unr7R;%~NhGFuL+ys*Vm3UTY@?`RY zI!arIEOXcrznPM1tg0|dG8ttp>N1Yj02bSc2=iog9E2EYbO0>ak4zY`QQQzW7Z7~P zU?D7;+|0|5f&_2Fc&49pgKazAri3DfUiRRuMzzxNaNgLOx>TMEp49J0R{0HO8z@m3 zWI27Up|ai-+5$18tE*!)I@@Sju)Ewl~+*VKj9h&S~~{I|9^P zV|_Iev#=V{ZMXvJ_Cvh{DqTnYoC7LQ2$O{+l6yi(k|RRj5a3Td ztD>u{n;5QZbUs_^7oIE3?^M4FnrXEU2IA#svc@(NZjsmIE2~B}lk=VhsJo z-)B2NttaCo&Gka9rJ7H>m8$(f3~qup{~y&PQ9KWIm?h5{B=BKu%J&ITf#PUbj!GiC zJXW=QYYXUGMeO$}j_>Z0#f9j^7>t;LIHMd$;BbaVnw`AzzK|bhxW&tPrE>wTh15+>%;ZxUvE>u#DzX~Y=MDU$~?>N!6{v0^x$?u?hz68ugd=KCUiXAyC)neQI+{DdHG=>#0+8?x1E7v`$#)y-KsUASOD5gaTEc<}kS)uwINljlRuMMa7@F+7%K|(UCp9k`QZf zFcbmQ^;q^IUWYefm}+&nJk|~!*{9{*p_KyElj>Wo=NBpf7}W|UUcj@Dm^R4&2WV@l zl(QoBN(s*4q0niHamV8N;ZnRRZ;QZ{M$3tJjCnb!IPST$iV4H!Y;WD>!Us$UL<~B$ z8utsHeQ~iMyi6G~9iWM=FK67{ZeAW6xF)isPB+YZ}I_%6;Gdzi&%KT z=buDCAq1l2+lns~b+x~Fw$x^YoqqnJENEiIgC(w6RAcV(pL@?r8A+Jc&B*~{K96Hf z`Pjax9y+Tzu(2mT(jo16rlu*)@j_ot-v=;!W*cG#b6?hN#sGUXJqnu z{-#Q%c{)6Wb|S(mKg}ImtW4`8Fx2E$P)O1cw$}imF&9oz^Ib`gFVbsL&N6s`2Qy;R zjBv{O#F_5znP#$lm{D$n`3{*~H+hwDSLy~oAF3OZZgM*xTr|6ACW_1cQOSRGz7MQ% zva|Zr9C^#r+lh&U!9zr|QbVW|rWGE90-%Y6oX&d2@nv-)NnLqFiHM{+Uv=av<(Wad z;14I1`~t2s@sJ0xwx2#<{~-N#vlv)W`QYE-!s{TV{jr5&c^Ar|4VH#xGjooF(dHD2 z=V;}x)X(Lh|HT>3o~gr*2VJ9q>Pkw^datS!Uk0^64BG@9Q(i@8kLi(ujt-DU0<3zU zrvMNx8FY8bO@%9Nn=tW;fF(eKJPiEaAx2XcWQ0hX6lY7tJY`)~(=oDt`QU#8C0a7x zOx%%pr00&W_nWo)-$vb@5Tp6Q8#JA(&Z|Bi{bBWcnYtl59|G_@dwltDBfQM@1Vq>6nk)ZJqglcWQ+4j6=K2 z*uq*yhBt3+?K=b~GNSs*%cxx4rt2{6`qvQx(IDC-Hnz*yIqQvCttenV=gopSOJOH3 z#ckJpI0xvMkMIq8pfMz8nx9`lkS+C1JewmURf@U8XX#&ne&^$C2%k}1p8scLvP@F? z7mxSzi>Lw~70Gkra(3GS+<>1OdxXmlYofK=H|N}=U356MZ7<#IXj;?Wmk$w^n_ZRu zPh6ftTP0A0$RA-#9Y4jRmOlN^guI8sEC=w}*kHgz#DGjot)FLYPu{vZlphvBzPrD_ zx>5@Wd8-0{;2tj8wcwhxki&qN<;=6QX*(e3@eXaRx7S!b>OIbf;Q)SKJ`d+*)U%)< zQgW}|TE?QCNUU0t`7p#8*4g}?*J<{wo4&L&!{;N|8la{=C!L_#)-Rlfub9mNS{K8M zZ(7|msQ@7zlhWosvs6fd{w^|!>0Odgh* zmj9ri`~G{fYaSw#$*0|~UN4LsdmfX6I7f^DfOPfd1Ld7&e?%EzvyZE`Lux>eQ*EocRI9^8!DL9IO0 zQ6}bgG^>wNjM#XYCiJ{`c{kfA9l_TJYTCzmW??WjhlQ@7dVS^kjw76wT4f4DkuoNY zSR~DF1LMm7tDmKw#g(7fb5ow`Uw*)$jHpN2m=!pcRH?F_;X8-3Y%mhzwC%FLjWv7W9&|#IqST9m-gj$iQJ_;GoxX-3!*5Owj);d zPq7^F*0H=bEW{@utMU5um^rQA7<5hbTGYV|dy?zKYB#NJe?Z`4zW`1CW@k59-Zi6~ zc?puPv+Z_w^Pfttryt4owKcbHZ7UE?PM)Vbm)#d0cntN`fyW)c#Xy4yLFTSO13t7! zw$%gO^#tx0C%&JUB`nD=4HSnC@*-ol*9V8~h)F8!n(iG{(MK>t5i;9_H& z&z;1c8Ty{Aj=0?7BY(i@?PVhJce|2WP-{OQ3>64gnUtZ&@8wSthGncg=qlXivLd-j zy_q;o!X@c2QP3OL0xde_XLwfi0k0Jysn@9X@Y0( z=4+X2FPH!M`2g?$ZbC8Y+~=&X(U&WR1;R?+oT>BDYl2sDwqZ$Mkk0?EH?PNbeK&x= z{<58~CGY8hmZF^V3j~qp_KSxI>C^T%h^;tCq)NQBpX$hge2Z{4t3)NuK8WOSn7LHI=~2Ii>u~O_82X%Lw$$5R-2UBCys_(+wDThe&_`)Qfc& zb`E5dIZX{VeO~tfSHGQYt!lZpsn|Z+K7heru|iGt@7Qmz3DZ31DFS=KvnMbVg6euN zZ@GU`0l7}DtLGDRjeHJiZ^vuZPaq1VzZ$EJ zu&@X#BHkZnuDsGU#>k3S0sF%>e@pFWFaeq3zw*all3%tT>RRED~@9#7omh5Pb7;)0N^2my9=*m#WMff^$16=ZSRKTLZ-Rz zc(3S~BJ_AEElQ12+YsbdtxNU*70VtAQ)$uihL*?cS5&P?<65(b@3!lR_kYs2!Xkso z`0{KDbS+@Yuu{^o75iLf+wAqGl9n^0;sx?>RafHczao$}D9~!P%2U)tiUoHZ7cFl| z_k~^0`U!;t9_3b#xl32cCNLG1GY_r9`%y94YdyhBm$ZyH=?Yc+<*!yT;G&k4oGygv z1)xofvo~h!RL(nhDtW7%!U>m&5xEk3>M;?8Z8>lqkrayrAVnA0OO#iCi#i=#?WHCk zhG1lXCKc-;B@+h&%Dth9s{`T1882+X;LvrSw=IHm7(fl!A{HL*aRG=|(nZ0{N`Zdy zjP)I_B8`Cjc--mR+2QQhm~)Us+sDZ7FK*{8#tNlszw6I%XG&)w zv5w1CFnm;{d-LpRk~-Dip+=)Lrne`NkBXf(Zl&O$4l$|kpX?7zk)`T&U-s((yH-Uv zfJ-N`NxS9p^R-m9l$Lp>%skD6qP-7X92qHTDR_E{>e70dwWXwpA3-opqpK=>rN`zh z3vQLUj0HRCy>~0DeUpqD$u;v!Sem>)+7-}Fh!e+f^mK*d4d-6VL=afz>aBd5XBtaG zq!dZ$$d;uMFy)~#J`2L4w2`a)VLxJTqW*i_1}0m6aD1l}e5mQXdT&)i22Youwt63r z0H3UfC5^q|wWzxi%OAthmX0I>{{|YJ!8Y=N-|vo<-(M1OG?X0C6un6KSr`6BG4G#F zP1|p5I;T1FbH55yY!#>00ntctnA%OpS}V_xr__ts)dDP8Z?4bB{ju}|v*g4|-1Y9j zyb$HpR=Ew_T%$;AqU{nxKxq*fRVeW_Ah0MR6A`>!00ZX5GTYnQR$A<*@2+0grX(Rp zS$-WWP1hZlQMk;9@M7gspWc&ZYw#8MIJ_8DUAVHA#FX5#)l}P#k=l|J9EUTm-Zvb+ z27gkXksz=jSy)L<1RNgCvS^bPhl}sMd4d{hdqnQnJ-5NXWRdMqvZ_Z5b`k6%)q#`(h^%qS$!Q$LiANoBCDhhUu+OeDoVSY4l(-AYM5ru)75%xNAm}aDg#X&@ z&m;(}Dq=y_`CsLLPANA>!U_XL0XYC`a3Z@huBUM~FRVegG-$fjbYLrr-!9IQO%RTF)XslvGa&inXrzKo1 z+lswcepW7>|NX!hiJE)|W1Q zzoG1m82O_19rbiCT=~k7BWy(%18K5C#xaTZE)}n%fjzDRp#~{bB9XpJ)mfjzuV}IS zCzUEOcFCabhXS;v+GB$zl<<5oJ{i8uy}0MI*Z*b5o~vux`8E~3vj0cZvIS3;inx=-i}%`S42Ga za#Vq$lxg`ELo~71AVE7!2QF2wXsur7d))(yGmleu07`eH%p-WO0z1f33S8a^@c(cE zjfLYOj|4}4PdwRnV>-PnQL$wFk@g6DL|CYe{ICicEe;~cVr#kuYU=t{>(}Vl=>7g^ ze)p$INSpB2ZT0?rF^!~h2KP11eW_WMOE*)-37}gT!lP|Cv_GUf{q%v+lPsGwH~z#w z?GC&mrk4hfSA=f7HXeRXKRNck*sLd0p)47Das9J~DWiS6#{04YknqmhBbGr4T*O)50!2taYCR63&Z2`QT_r>O{Jfmhe#)>W2=vTvi4?lgA^V| zfOs{3h+t+dGAo^9;YzAv7(xm7=dDbshIahb>K_`|4B7Y!nre(&assh6zbnrs^30tma?sWN%@7f3?5!ZsZOXY}w+8((CTqt}tG%nq zL|4#s9y&iRI#`^lqsY6p(=)duuja|S(R&mTCz?C3T+tLJa@NN@fz1%}@D(X?7@T#Y z+3ip?B!uZ36D~ASFG^32+H)V94H|e7uYe1E(EcDuIsSo%jIJUkwznJ5<8WPjt`Dt9E5;)QQrQxKR5$S>ekll|6h-ipgWB174LH#OQ_+4O;4L>LU*$zP~F5 zLNY>tdUF+$wD9;p-XTS4H+0jZU}KsjE1F}hm^;cp8+fSSBylCMPFRBmVoceMtX3BK zEaD5`{#WfwFWFu{Rb=?>?3Kw98l{_{J1_RU6+EkzJ_ml@_ZqosM{1ME8~s0`{(>Qn zu89^#dvFU*a1Bmy2<{p@xVsbFeIUV|;O+zu5Zv7%gy8P(Zo{4Dob!J77fet0-c_|$ zt*TX~^DZ^LaI=6(`Q_pVciT5#a-qPRuSWNhCSmY5)1BUw{e^mlPp(|tK2HopXx)^T zOOd7MHt>L?ZpBc_D#%#j@a4z8zbI2~I;z<&-DK;H(b&1o;#8 ztaHqFxf`-rEfo4414hB*O|^RA(;^Fmj@RK22@;l!}cTi(?Gn_u*@9hYZz zLKaW$Oly9Rgi}pYliW*CyFla7Bq6m@81Qd0pUnX~VkIz*y-7!l%UA#!`xp2=Cn*O1 z35)%H)649(yMD8T|F9}Foag3vDM{r48t;sRj(-Qj!{~H9`V}KARaYAiYyb8bd>JGB zQ1J<0_$HxYd#c0fWs6VzU?3L&G&2Oq5!kLH$RG3W+V{2Wjq#G;5hES_e_2|+nrV?| z32b%DSbj83SNwK%PA}_XFE)Wc>9C^KWqaw#3ORz=-8B(ybWmM#Tc@#W)jlmgKlMNK z^{o%gb=p_Y`uL|)OMFOyUnpR1pYFMOt|~MkMs^)cL#LFxQ&+QW=oB|wN|*CIm7$@L z1(|@aa0qbEcd17v&2Hy}qcR=b;fyTJR(pEtXj|{x#{{1$+w=OY-cPmM$r8%MGxX0+ z8GzZ;Dx0iIB4x);GgE8$Z#)65@-p-SwD&2^Zyk0yzCJm>1*+iQ2Y>piDbcEH-r z{((*>LD2}5_5UIV-O%4stL-YZ3p(P};~8%~oyK-oGshoYV7_Gi|Ov8)~?ps)|;(dQqorR6^N0f9H; z*5XqNQwqv|E&@uY63U-uE3{_0S9y$XeiM10_A()|XzQ|2lawS`4j|3%PZ{s!a*-hd zqFEYs?|~mmABh~rFb$cy6;z2_M_FPA^q>Y}XXzsj&fjIU`DoG8>x2lx~Ksg=4h-5^V%8c_$sNkgtZ8-IX6as z9iZu4Va#Qrd*-2ELo)wKfXFJjO$Az^$c zW%@l@tUvBqjYp=e*VyyfPnI7o<$iPV7G$^df5shLrgU69lJyqNh_qSglr@NVDH|H; zNz4XQPJ}qx&<|5aHb~t!ljY7I$W>+`5#*J7#jF#DiVs~l>zolG2wcabN*;Xu9VDv# z;epZ7#(BYc1--4<{-I5pg}yZIRwM*<=U0K-Rion3;LCN|1KmU>|52hjCoED#&ndO(A20k4fH-gYDo9y-uYf7yI;(cB4DiX*8%nx;W|Rz&dbmz`n_#Euc=TX!@q-R?qRV zPi=1GVb!zUSL%J#0#&?XSLdlH2#(b#uIvQgk_81%XrJYEutMbNJbjFHoS97OPyw`J zy|;?@lf`(KP-)gJea+y@Db^NU%utX{o_5DUYZ1=#wX2a(ht1GSl`!i=~3X?q@}AOTT>(#s&bx_KLfKwnqH(SfC)? z6(3T_rJMWwTpvnO>!Txnvp5i?hXtabjImPU87;~@TH1*Jiw;asZ(V!Gk%=VZpm)B8 zG8t$ck^w{$c9EI#T3U$m;fog7q!HvbdcMP4uxg!G7!;};EpLGidS0j-#T83-%Z3lm zv!hK_lv^+0E;Bknv(WQwW>S3%evvLVhp%je-8QK__LU%ig9bK+$v@ z5#I6=*EA*S`E&nUxRv_jy70_YB&a+7p~)%}ed0=s8CiM3m77W~T)5eMG509b#WrJ2 z*8>EjEiM3XNb!K?thtCLZu*aJ=d!Bn?eFb*^!d1H2qx@Ec#K;HK2$8{U?Bk;tVd=V zmX=X?0D;-BT;x5HJd>(727TJFDMls9av3a+R@8ZpdMc?bX+mjOnWZ*jER{S_uILjD zEm8;M&lLDcS3gj0x=?5-f`6N6?Qqmm#FyPUeK5ksK)e5t@tN@(9)>vbG)(b(dibK@ zMg|*!N_|xpc z5Wa!T&O{V-D+13+AGVmhu?GY2haNCI^HSct-zUJ6lMJE{#a~pRKpCzfOJ0cr7d~yY z(e#;wwp33tsrC!BfUMjwUlB;MOA>By!Ev@LfiU4~z%U|`?_^`cCXE!_%tuHN((aEy9MmuY zm2N`pfu$Z2b5q6BXsB2QwGN7GmyKw>_2LUb;YY@D`NlaQkl^t6$ zDtseJ9D5MysY{Sw<5rAA*A;KLqQ^c4@h3~Wpz!zuCxPSB&JPkuN^8Z&{Ce zww!B6TqMzVOf=tNbnQZq;{W~gD5tO*T+kE}*XPodu@ED6^+3CkRN0`t#K5U|(RSQ}6YuSG2R?TG@T#-C;I)lmy;9e$CRdw~r(`_*hPp zZ>JTib;a46D7J$$Rcz+lnKPU(p=GMv?xYzwR7-brDmQNT;8 z6^q_wXYfinGP;*ItSRDQ?K3ez1Z)&2C$Y5Te@Beq!N)d&ERJj|XU9x6S9=w&-p?WR z<6M?}O*JXpCEpXx5JyP^214E?uy&vzB7!_Y?kQM zsE^&Ck_QKKKNpu|yVDnX^!Aw6=mCWgnq;HoD|NGNoY90IYbXQ&N;t&#tevRO>*c{F z?zB~bCp9MwjLvil5M(fHc0<1!Q4DPxTmAeoUih^2@3IDaDpxb^43mU#>^2Lw1bdTc z5ODGYdiRHbKiy_0gA+zxGuQz1t+blcs=&LX{M9^-B^IIJL<9jIC8$6kn;1*-o{Ryp z>j&ESVZ~*UEaQ;HZnTP`r%uc2ZB(;eec%KM2c8`6YE1zC1O)-LoEr#_LXQ0+@tG3* zF0Ting%LGQjR7k@@rxF%e!80hRkmSO`bUMC1$jE9+CWl+`p_voz1ncc0m|=tdgE&%L67C72za}5zJWuB$M!JES&Q5 z8{tJ`txzg=kvxV4I)NFBql65fuEADnP)7)hjR!Lm&LIyIHwN7ntjch9!SO8BLW1Zb z+6k>`urL*q8YLDuo}P{}fSws%GEa8NAd!*os}eOsLe`19qPrUc_`mX@gidudwdvH5 zx9O-3Rg5a--;i>|&fPJ)@Y%o|!mvlQZ9#0O!>Yhe|zv(|@NO=I<8xjZ4y7gN1X*Ovzp`6EhsfF0O$&&?w-r z!0Ft{*JNW%M8w@iK9kk7e|d6khida#Vb-0Y?Gx-yMnEdVI!Zv*QAyHLbKCa6@H&tx zo5aFJF)av~X0%2Bbb=lBjspPevl!yughmVBe;%D7RyL@ctkDm!P#ec*>l=&uYl()2 z>g;{{k{U}QtQ^~p;UqE|(b#U&z!XAl*lANb#CBHMTHB}SxBJg%h__z)2VXcr+>lvB z(bPV1)v7|_be3;>*G54|zABz_V~x(ETtKb5L-vrJ(p`Bde8|_eHXYe-`aDZ;Lq@ig zsaW~-l<)0rf362E;3FfVTuEbWHU2OSG2ObyuV_7OG0COJm2)ZJ64JQ*QE;A+}Guj*Rsarj@|c}XaEZnw=ox| zB--12xdTUtGuNDx=ju$Mw#IXMe+0hXXQ+f6oU-iZ4xkK0it}-9>gbJ?ficAED}(qdJPd+rw`(OzaWtYNgs7NIHHH$jOiAOL ztWPm7xo|$y%rt65DQG!+s$j-H`ScM}?BIZzmDHmuVW-i7|7ukQ2~2jfIFKj>rpjpc ze=*npVG1V@0Zf+~nAAQ9AJ?gVy~(HJ3IIqE_49b;=tkEypf*x~MYQEeA8Yj#DM}^{ z$dH_>Y2W1&4PKNh)u0X1f`>6_>&TteVK+)Ny5w~gK@?ToZp;|8AKTZ@#33q|8rpp0 z2Lay7`!{m~OBq=rkgr4S#ol=JSK4BNmLh&{)j6K)PTMD=*RD^zfP&zq>hb#9v1Hds z-$5IjV~(PM5jt9Bn#)A@fcG^>w1C3Wnq;fGC@e@Kl$9G97#6(Ta=Z{=R=!7TzQspv zH>r<1qqf)%6x6D-2|4~ble>1PliB69J1fYTOQU8o5*I&utCZB2)tNo14ih2>saL-JD*WUq_w@E8+ zTl0`TEdM53%PG}FaDB3`)}$ca2^Lt_TrtW6_%HBV`V`%M2a%- z)I?r?1Zgy_2|D$_va4`-@L~K_f&m;P#pG+$(x{Oqw8UJTj=d;+R@@#-aWroANOxx=B<}jJlb&8V3DYP6Cd>A%GOQ6 zdy)zz34thwg>NFcD9vm5u;jS3=A3I zW%&O1AJ|E8$xz!J8aX(UBBnkSL=*)*H8rn~0I|hA?9}-7^oA+*&h3+>6DU}6ArU}L zo_C}3wO7MA1^)bp9k{;#Hx;wJaOu@v#O7$4Xu_R=b?McoB-6sP&q6vzU7aY8FA|e> zGP4lz<$=HV{!G&zvH+V*HGF!R;v%ae1 zEL)iPZ#gP`F8|||ErVqW%X#VTEDyP&&c5E#RMDNfQK0LuUq74VqN#~2Z;0bEI5mNLF}iYvb)xAU#f&CWC5$WlL>7cLwZx-aX~ zstq%tyf4)titu*Gdsy>+qX0mnZs8MCXUhq`|IA?l{ml3JYSg$!o>N(5%A#9N^4Ehn zEp|-WF@tM8Tvh{hU7(9j|J1luL<*ol{N*$|wT&K_o>_!!5ApY$3t>4vnNAd%W$71= zpshXpy|X~wXVGEPv#{-h)-n5xIiO?lIUv@XBI?p(+%O$IxL$P~R z$a8O^^TGRaLT_pvKj1YAU=ne7lZ=N$j()l?k7yZ-hGb&3bg{MO`US6fJRDU}^$1z=x=UYR- z(7CSB>FeCInqIQYzDD&#BnHA465h*T8!xMr%I@Bxw^zjO`Ozvjt+ zXX40if}nGKq?M-9!jeC(s~y)bk9*xRzahIrX-MFZLk4ZA#?BuQk_9VK=6LPz8V+?_ z95VBjyvZlezs^U5(fJyvq5i+Kck?}+3`%sk+odpP@W?A}{-K<(OR35BApsml^w3r3 zFtwuPLTRxd2Si|jy|sK%`tfGR%?hR0EHBd%B(n1c&SJ zu9(^HK+F6`dKf~Iv-n^UK_?eU5aQbdN?QG>CP&2@tZE3@2Lt{6d#TY;UnXL4qPDYe z3_-`$kp~>Qd)V$H4E$ zKJXKFljl8i(+H^-66}6@j~`Rg5|_kQh%dVRS@N8rzdI#X>PK`n&#iWTqMFy4pmtQI z&^Zz;Brqa^BqyS4)R_e%wJwI42S6c;ec4&(0$5A=$!DIU(7Ofquq#zenwYyDT3NF@2X;)jmXr!1tVy2{u*nyRY(x>8pD*TpuTB9ysg^yvDAMQ3L` zEq9PRVfAka=T_MP0la(O!K|(-TRpmhsPb%DcQ>#@HO!jHxz0^We=5=~>Uv!pBar!q z251zI6|w!J_;R%U4u$LES3a!3vx-u{_^zNpRat583qBeN`wP70&&9KoHCQ1n4my=A zM+8+71SDg$bSd2(WLC6fz9NnrA#)^9suxwsuy4buS65Rb*#izRUeij!L?_u#8ukW5 zVM$bxPk)%+mY&T9pfBIz!=L$AZtl#mH@9Lcj61Q5=UHry6xKd1LUiPN9TE{z+{+(N zQ`O$sP{L)kd3JHOiebzjx*B5$9Vs|4;M-2`B@F~e=&{Pg8OHV&<7s6 zc_msXPUN(pRD)a%q{?m#X;zYiV06brMNg~~1~=Tm{#R@un6#Mmo*d&kIkCOUVh*8?6CK@I%_1&`|2!^>;xX*Omvj5Qc~)H?28~SXmxG7UQd7j%LCkyYE1~`U zDagW7ekMTNO_y){zS%JRQj{Fn<#-M=blsy6Ex!}TH13+}I$Ywe$X(Ukn`jB_dA@Vc zc}$#y{S(b8sjg!fj1>5CT<_TI$E>Z^h4E9mkWdItK>_V!niZR(;&I?|4|6v6^A{p| z^OKu=$Ok17xOwey+(!IdDgnKiZCCT1`PS)L+B!{; zQVQb%K{C#JK6!zar%XX7IT#mI+00Xtjp)(WA6rpxW#zjb;%ep&uOe>rt-Hx{63+s0 zq~V|1S9JZ|O(@ohPA-dL_tc2Vj8zpzwRk@`UbdEPz|zx}^GvLFoZk*iFO<{qyt(w8 z(rqceIlttO7%cn~69E1XJ0wI|5c$_s^=yj#<#^e#*|sjVaJncAUh|B953X`hqk>WT z>?d}x?eW+iOA^>)N(oMdrR%9s+g)-(_uyaFgKyE-00*y>A3F9kAA12#e@es&YA}W< z5+O1!^0;Mv9T_I&+|JjQru=n?i=#s|;lY=`9G_vWHhyhRh5a$)6*}3lZ0yo&+AJ5n zC5}vaS7pKO6oe-Zhhs5(Q9}Abg3Qq-K2d_<3(_C796}tXL3yxQi8nQ!XM=n|9Ns5C zW+k_WKCTR?`X*mxxbf7Ss>N~pe(Y6#E#if#zQT9QCi*pdC>J)t37gy*>|6&?CLjr0 z8P#uO4)yO&%ZL7Q8n60RGQdXhJ&+AEzhx29bFW6Oj|Ny8C5rT4f6jJqh+9d13WOZ5 z{b<@z1&^>IQUkgn4;BGE?<}9CK34d_-%;=OC@B7qBEqyp59=E-r%F&TY;b5e1LdW+ zQp7XR+k;-mF@q6&dt>y|>l!&nou7zR%Di%W3InLAZjbuML_d^A5!H~6!o?xTsZnqM z&CvM@-wlER$q#XVO^t(1T4!$u>6mdW&ZW`%1%I&vu$-`zO|7*#w@d=F{a_Hq+|R!R z?-0NMj4ZgKTXu#pS?Vu4)*@G3*&V_7`-H_LbBTB@-XEk##oo*tym#betG^%x8pQ+f zlC6kfY0inw$?uyD`9ch(hF2^o5#o7le@IGTeEE+9Q4mz(6-qvRPZF2g!s3A=Lqo7E zQEDo*>!AlZZ6#CSS`A>QA|`(cE0#BhK`@4)E%-fnK$Z%?+!VDACUc@Jvbs{Es0|C7 z8fjvQ!{oK;v9bTaZbqeuX-*9`dGA{EHW~d)h7^=2#&13N>A;VE zh^EfU4GBzQ`6FpMo&?J9IE62*mK`vNh>lHd7c{4VEx z+ct<@BZUPSpOpi9NR+!9kdmbeusq*u7yWGh7{b6DoetZ%V#f+mx06{NBo!gG41lhi zIGLG(ikOnZVZli~QFE_M2`*U=@~nRNz@5nSf)B@JDUVoGCJ!#poGh!3Voi$ym!6;1@ZMm4WF2x;rE>#%NHdC+RPui) z(TI76@32tErSCixZ6^|VmGE_uF@-R)IN($+Frc#ZM@2)O!k#zoy!n zk$5+9{XU?=CrIYYH=8{L8gc+-(ZgKtRX$EGPQ>HMI0NgJt|wj;EuQv$K0Zpd7pdR{ zr`K~E#;boJTlAxr!O>WR`559x-7`ez%|+m?Fk%nCah*Nzk()Pd(JSk5@}z0}65ks- z&xOz~5idvdFq4S!0UW_m1*G6nNA7202(J5WsI+(9L!fW^-!|*Y_Rm=MN!ITxt@qO< zoR>Ur#YiONu3j=TX4u)kzag8q1lm=fcLoWA$0tLEFa`pk+LN`N8iVcbuqf92PZ7d+n4PhB!SqTGWFlQ@Ke*usnV)d?3+#9JolqD^j!Z( zQ&EOn3*5zM)iANJM9LI?Do#!3$~aWy(!p1pdne*>^NUhQSR&7?NbyAqY=uKA8l>k- zgMf-_$Yh;6w@SoTh*RANE zjP-JJ1}j`GF-lxHorW)TQ%?Mb%V0}oc1{?_!QeIV)0X|UfxxfAd2)%2bl32GRi>Nyqws=9ciqRcn)&|ts} zm5nLcz`VKh6&6;~8p({vFP^{6RG6;O)t_Xy=^&J%nK*$(W}aQIWK7^R_!d-kB10Ujj+oMomhZAkX zta*T)2*2)t==b59PnomY%H^Rl{MYHQ^bzj|b+M8~1)NpqT1XMiSP#M@)N`9i|M<}n z`=t-~8XtA&Ciu-B0NOmd*|SV2DJ)C8D(@}N8(TY^U#dUg0lW%XqalRa7LtxK=3L*D0^HSEz}ZW!jF$O;%oi?!n#C_dif^exGOCIw?_`(V`u2aZ}# zPU^`N8mzwrmV1WO>Vn@E+jeq^!W#-#gJN+*F?CW97eKM^ZW-7Wytd2Eu48i_=)T;@ zIv-9>G-isqjm0~CE8^tXOamz1F$^eCDxpxoDLrF%!;nVM!8_nIzoVRiD2RhCkjKP- zU}3X`JCpl%Ai#%EmZ;)U0GI&T9sm{_wGMZEz6j*4f&U-zN;#gDnMoWs^mX}hJZvok zx_K*x_E>h=e@3Lsz4MsGbxK38Jom73qjy;#zuSJpu!n}0t}DxPHzw5}6ezDLPD{V~ zu$x-twa&R5z;Uy))0*nPcm0Se64(8YNYDAbw|cuO zpbOzmCAQaCvtH!iE9Xz&V8#tV?)L-zmfep(Z013rAFPB)y42O>b$qJR--hMOh zix|v-D0P#^;kgU1uPbS|Ah3mPWG+gGo49#E0X9&FB)bqCM$wCSN zSE@k)|B^SPcCwV%yTncGVe1h_df&zhgF!JZS=6lDtxz= z`68U#NMv2Yf;JJ(-d}5Ofnr8nP`HBEQ9`=NNiMPYy$-zkNA=LBVB3|0x{s4{6g%_&!pd0%mmF^v#zPM*3V3ycq}J(mPQnzrvxIV^RR! zUp`9^bf~csHhU@#U{QupzLW4tBKB280$@Ud#0%o-fel>u&z>ty+w8FNn1Tp=>Ul|q z@rLjpi$efW3h(A#W}yO#AY9slVd}>MyX4X!O6d>Q@0r`)XINgANC9f2i1FAu#8@Eb zf6C8p&_?(Ft-PJ}?_J3QtawQr?CfTsx&Yjr#pE}KJSS6U0zF0PF}F_+3z$t+6-I%b zs!RZw(2s9V#KCYjfcCL_;#EEgyA`UASl~;vDLZ9}ueki@NR>Qdsz^w%&Xm8`myz52fWw2+xQ0ULEVJJrYMgh_1QT zO1jH@fa{BI#Q4j$a1n&jg9st)ytiLy!=n(qu@0RM=Uwqv8Lxi3{gHe2Iu|^8E5Fz2 zfUEh1>UN{v2yA6?SGJ+?#;43Tqd$U855YZsS^Q4U$Q!T?UUiJ_M2Ywro3GWQ7t+9Aj}ky0eu zU&F8buM*%Q6fc6Rgx+3>MW%%SE;YdhJvXFgaN+!l005Ow{cm^HI!J8QVh7c#N`p}+LHe4XZUb6A6$@io z)Vs(oa((X|0HdJ64{m@U{$ZtvLpATj;Sp=*}aLrg}UlLi9*fZRZQ^^8~B80c3- zTU9x!>=YOpd`Wc>iSp}js$7;8JTN|$!ZgXlq|R%ZcmS>ekN?3C3Wx&AZa_+9OZeo{ z)Eehma1tcW=yx6uzyCjaoTzu4kB_ffK6X3cc!vDX9Yc(z=`RJNKWZEW5^yMS37I3Z zZ_$x!awt?(85_*1;?yG(nyYU?Y~Pf%QDb_6SPIV+ebrC5QQaKv*v8Z$!O(ub`csi1 z9QBx+!eQ(XPad38$ge)b&Fk?#r&_OfcrbGcXyFTsi;vqzBG@ql$*NDO`i1FA1Yr5` zg1k+TaY`>c+VRTMhpq?l@aUg6Z+Y>@iJSpqGiZQ(C0<`FF%}s;@yBzq3?#ff%Xq!= zukwp>i(DSKaEn=ansP z|4XP=qcFXi!c<0P=3P;36vi zhq&fp&r8Cmrni3^&26Xw?XZ!u+)j14ZdQGENjA&X)pmc5+-1rV6UbJQ3V36pFM}bF zhaP`G_VO=AAUuE{c$GU24($K5zUj2+?>BqR(&p%MTUV(-|GoV-vWA-9?D>HScAaKG z1AiyrV5?p6<;XSkY3B8rzsvJ(l`h499NQ)MRSImCZ}u6pgV3QN&z z8)F}D0;9;597`s34-#en=tZqa0T=n>_Stad`gp$T$yok5-9C)$jK}zr)HC1a50b$8 zFPHsQm+RcXITMkGZ~t5yI9Z;~AmRE^u*5N%V{Hm?ZJD7a7#WtwI8IeB4 zxP(Sfg&l}6F?9vhwi@@Pj9ugVDe)Oqdb`!(bMqab{ol@`a*`^!&yc%R2z-@&-_7Pf zYg(+$SgjQwN49znZImxD%u)h)JzRgD;u!uaPAW)7%7S_^TSj+UcUt{1%&Ag`-(iBl zA*#`O?>ojuDS1ABXjCM4UjUp;aw^Zl!yM?+7l^B`zKJ{&F}!E<=<+$YYLuOz+x_rf zFmW=7Fi~Fpr1hk=+FsxcosjhAe_8-s#>et>GPZim;PmC?Wpb~B&ss5;&!3?mkrLZ{ z`J}bzk42e!IITDd5nkE4<+M?v94+YNBlV3tB4a**Q{>0Z_-!;yNSwr>33Ws-XSG&qZz(*AP#sDJS6;zj3k^>E_1fk__UI)#q5A-sQ)2~Q z@T0#@9A*T~5*B92MMlt#)FI7Mt#w_;>V;28(uefSViU3HQ6-5_i=-?nqCOqH!%spM z8+<`qO`oT>s{}In_+CH&5O3{SsEFQjf-HB4)eT0v{FJJX;P#FWM~wf-`aF+>@=vN+ z^g+Jp2HXQ2ChQZ%sK2@$rMaL;X@sn_8L0o`Ist}g*!nzI8@;+3f0wWmP_US7bWKD@ zfRt5Ub?w_h?)Q9KeVkLF(aTLV0cc8>r|Eb{&t0`QIf-xy$8d@<-i>I7xR-Jk4%bQZ#+G;GxODRGRq)w z<}jAcn`?TnKjS262qgxNhVoD{LO+*|S2awoH+D&>-HP+-Df9dMv47@--1ef0sAOQkmGm6Z3X%N^r*uK-r6DfL!zrpOp~L|;j%cQLvdM=$k& zg6--5fo-}V(T#)4A1w)g!c;Y3V=RwM+!lBYTLMC|%ecM&`8A!XEc`Y!(%wX8iEXns zT!timj$p-YpU#~X=a)RHomhthM+QS}6``HTBvp7|ll$)F2?S_g=VKtEqHvxsLq`LR zH}S^S{Q~=XSRLDlfwP?JyW&kkof`NZj#YJ+9Gd9uHew!{SPQRzGe(u5pCIsYAX}4{ zNqBll5bK)f)`r9>;B=|s$lbA4N`CeuLceA0EtHi-g^lei-T`TuoYi59S1d2?`iqg(9ZpOq10Jr}0CIQNyuB$^(L>I3y?VD@!HX=AQCa3WA^vL5k{X@8Zi z)Rfy|j!=W5q`!rwv2R-BT-VvR=kYwdC!L$vXKc+^?ae!2){6EcrXD-#P?JOv75Q=obd3wvfq=}`GnnkWK|d$-%R^)sJsZ1jJ7G{FhLTXk%Q56u(%cUaH$R5mUC-RK6TU zm;2tGwft(iPV9xp$XaSIyyM;n{?LH`Pi6g1tl!#dAGPM}z3NrcKYFeVmb&>u7!y$|AfAgJfab9aqv}2@9V~w zU}8gcnm2H5Hxh)Z9Df2oIWCAM5b*^+DjMSq!${|WLcr}smN+_G=o(;vB92~*fy#pE z)OOaKP|9sJ86SUVcP^{U%F+NvwlJNHzC?Y2n}bm9zs>{-E^I(FDPs3XC{!jYb}m}% z{G8&-JK=ak|GhdOO;~!fATR0rj2a^{)_0QUn?*5pzDg2Jbc-&0_6*~6VcFTpQEeZ2 z;=^8OVfDk{IPm=Xrfg!{Tz<{!*Rw)M2{(KNAQc{&%oH9zlK%w->IcF9KY5{)+iUW1 zaL>lw>a*npedd2sm+dG?TRR9ngEH^^{dmtmC4@va$HSG7WdY*!OgcOJ@Mf>Q*?z|N zj>jF#&fC*onNv7d-og2z0nU@bt#kf`Ldd@Do58`mF)_>azqXw7s%Tjh&0$Q8D_dGz zAR4{j!h_Q-S=$goWEox^dSjY|*W9Q}Na|pun-@qDLd1Y3G2w4WVs=J)Wfr+UqQ)QXw~FeO{LwmkB2rkHir+KWG2zp^p*>cvCJHd&vFXdK3#6q(~-_ctOC$yJca*q5IQyFvW z)z>}S^Y>bpsd0f@Czk|kng2MPo=2bGZH@@`xg(*tetls@)3w}2W=`vGAEK}}J>1!hMMk2_cq;i-d(EkI>zrRCuka4Qz&}V%c9??nO z{n0@cW9i3^<~h`uS)7N;((z+9@}H7r6Uv_ERQsP97m`WAoK1CP(ZXeqXkaca>Nizn zNIk3K(loxO@PZv(qsKpyrq|Afs5RX$?LR3>>ng3q4332{!^JO*Be1@mSnjF(EGqhH zW47%9hZ)|VmV8wQqartL#+6FZ|Fbs(0(tz=!85RUv{(~ zJcwQe36raQ*aD&PPiyf@6|;x@C`cty#A>tBJyKszD~;XNG?4jlp{afI--y*w>k+EK zb#`JpJ}#N>VSh;tMn($14t)tXU;VvD&XQ^_HzE*B;Q|7_2tQt}0#3(ItQe%mljGi- ze|uL(3rh`8w}IitftSXnBxH8uxn1lve9*?n-@lX+=r+HJJ=n_ILSxIh4=SSzzCK%V zIZ%u#`I7)xVaRgl3i$t$O^SuXvbUF|#bV~1(T-)!Xrwf!1v{G7&8HI%Uzov@I09Ry zFN3BmL4Im=VnFHW@B)1<&-LILEQJf!Ko((zZ?T|jH@*(vd8kt!COCqDPTOzoBy;tt zv1BsV$+?Vc0#Z-W{SiEKXs6A=l*?Lb-7_&XtYJ^b_zEv}NLq*?8Z0QCkA`aWt*KO!_G9=|3JX__o%9+@&{ooTZ7-Nk;?8T(8N)3Po10VTqR-a zmKu*2Zd0^tRPGoH7bU0{ppv_!uk9}NaXO&=Z1r8SQf_&+c$6#81;JK7v;AKY3xJpHpS!5QC(N#kU> z{4F$=?&+^;t&h2y{v-l3WPZU=(LE}S6h}D$eXN|UgQUN_(7X!E&I#;GjiS0TdD^f1 zD!m&)eY@QbwJ4s>D+iPSZJRx1cUVIrmW~=ryVW3(m)}nvlwF?Dn((mwsfS+xu!LC# zB2YfJ_g)h*U7N_uathf&UPM8*&~MVa?9G)p_bJ=DqN2?E5CgSKU(-+@Y1HE9S6F%U zvPP^8LweJ0qy@e|{S+YZ;xUE;l60q0;L)+-gp{h~3^NgJYhmRJM9u2u-6>RJYYz>* z^@>owN(UUyqTSGce&6-WVyM8I)BV4O0g;pYrs=Xfzu%q+v!VWBtM`6NUO-=iiaJ94 zD_NC|7$u`7bAwrJDS7Af;Wy=u(hCX4GB3KA##aFLx#(@Qz;2RSX}xW~O?m!QpYMDy zUL+TBtmed%_d4t98ewu#PnXGvf5@l0_0<^}AO?Gp|=S1Cy5wX3-BM%2_~0(exB3bA7m}ea-n}$h5?Y^DC1j{ zaU9{`KuF-%(xdeFa2MbRKubd6{rf-*cT#roK`e4yh^|j8a>RmG8cqOVSUk_z95|T& zndOTOgZUkUO%ecTzr|OE0|uf9@e*?|9AH9i7*v(j2_Sw^UR}(*Rjz;{VU`+PJG@ddZ9Pbw`Zt_Gl}(%HvYw@>eE#Qe4MFZY zCPqdqFyZ+``zUa@6h%oeGJ&&P2z@?XA0j>%A5*XR;~Dg+`R6>vh)KdpQidFuMO(~U z6c0MQ%24_=Rh{t|WqbvHWe<6a^;Hx7+FFg}Ng_cXVdl*^DfR#FZ9{d4vD^Ko>@)Fs z-w?Rfuy;8jp6hEh%jMaey+f42mQCY2MoG=94eIt5_4azzpIhW%e zGX0IQPj}YeaHZv+2?3-WtQf1<{vV_RsPD69&C{k%mKcsgHm`U0r^s4+miAI4u=?;h z{Qety>6UIYQ{HEYfPrqL@9-JNX= zNYJG2nDvdDxTYLz8O94R^3o1w7d2!?<>pTKKAyNT)G2c&V}&C?tP|T# ziIv2#|GK2I!;p@b#_0p~pI?afvzTjA;F?m|Rx52v`92D*kkI^rbZ~gpX~VRno!n1i zTWZnZEPOq5;%~Sy5#Q3r8ipc1aW|y(OjpLI?IFmGw)6Gr`qsQb^y#X}o)@MAo{#T6 z`ZK0HI4w(hSIXVT)>cW|g5NO@`J9m@=xMa-*ZP(_C`(-yto1Td4Pu|hRM8c)Wh~hO zc{kt4@2Ao}$C`ywnRUI4Kh8E9kE+psA3|xDXGbz*ga&dh73QQdnMoV;?%wjP z;_km&FFhSa>@*fA2Q&_Wy3w8?F9N{ulo51Mtfw_%_o}MS=d~?ToI-2eqVL{eotl5_t7mim;to-|4Ex6FamrAo`^mZlrhfO`drc`N$KHz< ze5&1iir3gJjcuXZumKap6 z(~UUyfp;g>$zvv~$H0lRJ@D(TXGkuUh2Wzf#E~=(Qnfw(rgeA77vycm0EZhNl+0HF zkD~mXL+X2e!5W~)tHL(e__;$2Q_-G#8C@uAWP!RRSA_51uqOve;i?e;o_=rlxL2t+ z*3r@z;Ivyo<-rvL)bBS{b?~I~;SOUwU8`oQ4#zA9xVCDsuBY!Z_3Yx`zqHmB8SxlL z)A1XwJul~+Ze$((d681+m(-z$e2`p@Wv-nd28>7kswl-C-Z4+S?Xp@_-8u(S!LVG4 z#R6&2IZBc158mF0k&$OLjvskBW%(u#<>#(4xc^Un=BF?f%%LBjLJsTWRo5(&=CmOY zC!kMu%qnEpzW5@>j;kPSOp*_s89^}@2=8w$o~9_k6u(mpK|oG3g8|3a-80>m#KS(p zmS%f@x04pdc}B>)?a&*SR1n-qUgEpi5ij6sGaX3lKD){Fmmkj2I`2Qtspr5-t7a1j z38H}eW{e4U(9H&VL81tv`8B;dO9-TO^wY?tOX@%rzKtVH%jUAjSR&z0w=X7_Q098w z(G<&;UfXc(bD^|8)lgmVsT{ZG;t8k2so?yDG`;Z{bg9Xa*oDoiQ&J4<1fv3WhQjL3M{C#T!{4y6T~`H|i9uLwQ6q=2SYWHfs<>H4W&7%9b)ChR z;mzO@W_6L5p7BtVs?MWam0_>n?(>62=p-&1WrJ!pjT0^H6!DIUTMbQGIe`K%r}AOC z_bo$r_6QURfaT0p@`T}Z7Zczb@c$#~8yMqix3(u{!^T$QG-(>!wi?^E?WAF2r%4*y zlZhMKwr%U1=Q-!R-#?hy``+tb>sl8~J#X$8I7n8Qoo&Smdj=?n^J<}YS!g0YX~5I0 z1vw*0=Scmfh#8|Qs46L+`pGd$hzv`#B2S4?Pd^eex$h6wP2#P-5w$q+eg524h|8HS zS8cx3whr1k=$yF!tGZSG`u>_r^pnK1_02@7#O5?;zLs_6ZQVh>#H0qopZ5lFTQd>` zJ)ENlBSd2?h+ug$e;VFMBFHqYR~(l(d&eFt{rN`FgX^xfZM zT87(xyx}Di{!(-qQ8-}b7HW;@Y8M+r9klgD63>rY*+6zaaT~~OyP3_axA+3xcT9wZ z(?l4P1+ndTporf#X{))O zRzZ4yM*#qs7t<3et}^Vmrk>npTUgK+^dfy%S}a1Jw@xU zt?yp?5@GtpG$u67pV32Qzv^B9JMjQ?3;U2-vV^6VQb>%QfPmf=;v+n4rYvoKbF7Dn z6LSU9NuYrF15$S1LrVf)SAgH)=go|GfhcR!dyluy>t`lorYW+yjMAS@YXdp!K3io} z^>iZ<|1eX)uR?V^;7O*x?QsGPo;J7-Ml&}h5b7H)!v1#-_NFiQpF@WS`~r*dn7$LP0Z!$w>kcGB^!`m?Xlp0!$@hfag2)RV&~>A)K=Lz@ z%aiquG~SZ~;L$ZvQ@jB{5>*V_VdTCyx+dHIm$ex1X!6zc_vC+tLJB$qPjC9{I?hi| z$$M1a$6@B#GD?vsej%)y?j;MtuKXm%mm-oB&sP)`f*#0+bzk1*ikNo&6--2~2v0Us zRvMw~V(vyDoIzu&E|SzJCI}^FHNJl5uLy{O5DN*r^=HNeeEU=sDvenbSxS!$sjYDT z)qi!}0D(+}+GsOJ6#y$w)rC}`i5nD(BZL?~ES4F%03faspo1hu6MSHE;=gH0l3*p| zkZ0Usso!seCI4dUy%fY13iA|eyYgHN-i2Y~W=rKfBk<9Td);D2UV#%d@XnmgL`cb7 zeg7i-sW(rhfsx*gs2saq0|9D1kfOj@bDA}euf9gzSVyQ zNAMu{W`&?dfXNlh@*3ih(t@IUxRZA+$Tcm9q6l5OIk4)QBeX)ap@v2eA}cR}>72l5 zl>B&$w9U&JtZ&pvy{<8CnK$nO-Umeb60Un!8?Em9YOX_x3=iuB>|oQ06&Do|1$MHK z&vmpW^@5NDiSZ$yCD%-bV1?nypc4VK1l$OJmcA1hJ6!aqWZFp0pV;rO*ZcEI`5h}v z|GH(^xG?8$T2JCJ-%sXxPJ3{;l^VAJp|rP-*m z_;mL%XKScE{RQw{wAA|%xLDQsDDhZdHq3fLMpclS<5Z94bg<55?f$+0rL+C~g0=r^ zI@^(s)OGs8$I2XIkTc4Hop$HBlwIf7TKLfW;&(5Lhw`Am#o|nKHLqvS0Qk>N#t-LO zDdwICswaeCf!jms8wszb{*3@S{AiAwuYnGpwW;@;?h{}Uhk<*qCv(Pn5Mv0cZNXmm z4HaN7&@iB3P-Nn0bX@2CXYiK41DaZV!e^JnbEjdxti|Vca*9=%A21IrG#VX}u}7&c zT+^-)30Ds-_zG0II92ebPVz`u)7JGk<28(qHDiIU66y*!6sgI5se@Y-t-KI0U6Cdo{*^ zP0C2*n=!v9lb$77eA@kh?5g$)L`uCky&{2YexjlKpWYcyg$$*)(^VR3%xh`rMyquf_rI%w-7&PpCi**cSny%yiatkeb1Z7 zC%F3|{&kt|j+_TJw9q6-zMckBcQ~9CK{3X5Pm-Y3##;~sk4rmLqKQ2-Yqo{BqbwPm ztDoV>@W9Y56JY5JhyoOh9laWtTp~y#a*!)++bkbsrq&|J5ddzan|B9A+#Rl-%4CIK<2SAugtcPS zM{E^Br#Tp3<68ETEto>+uM^R+dZH%T0r0!Yl9tw1K0H$JBll&!5p%=77nkQ}Oq=5$ zx9b7a@jhpfRqb zO2bbB)T26zU}7&=^sy^uo?|5C$qRFgha4QEtk6Lu9Z_?00D7gZIvHE~(k0q+4Io^3 zqys=hUSa`!7Z{S1bdWvJZD-x?+uun!lsC>u$@7-;@NpL$P% z0nbTTmxTGp|J9p+O%I8|p)ErSI*xWEpP4vtolqc?60J4fe2-7*8#BCIf}23b3pb28 zgBSe~ytZr$P{-?svwU$vGT#+Tf9bidr4fS?k9q|Lq%-jZ4$B5Znz5s;4Ca&iC z+HaE6k=d@-#b5Ov^}!S`s;t9$``7QiU?$F1zP@ZbyTY>;6$Bd1>6ea{cQQb|fD-#d zK`)98JjpVCx|>oToc%(l!%5YwU43vaVoH*udtHQ}oZ$k6D73sB zdHRCwBeBlL;>`{A25*(0!f9k&r=I&^u&TGgKx9mAZDFAia)?=rvDpL(--+n_;){D7 z=-ctD;SPuXXA`dQ->etydAcNm^bJ*n?8ga)1s)6Y3iE_z!@t2IPh@$khe*8K=1^X1 zxjz?4-IFPzyzeUmIUSD`D$$77w*jBOgUz=!d#ob-KY%iY`<7MK2Nh=WyW+7nUYBmQ z)UmniG5(zp26@%SA$XFTfiIUYa1P_49!JUZndy8_-J$v~Mz;=YW%_)`4YW#&JgTKU z`?akFAJ4C0aiBWW(E??TewKJFzUxENl1~i&JGILcb2vFyrfZhjA^>W+cHnOpo8iq7 zZ1CN^faTI5n+dfb}{e=PXX333p<}9?I4*l_d*ld@a>)xdO^eJObyntRIH<++FUjjHrqVWsR=o^XusM9dSm0g`Lr#@3ZnV#1TR&BT?#CllK&{5=?pK0@V17XK zlA-U->_~^vN^`}>PTP1#Aa>aV%m41Y2pa5|_uIe$e$Tz9?to4KVPfR4RZ?QqhDa5P zI*eWCXJ-F)dR$8DWazX1aRC6iu{1yQ#_ioPNJFRu!I2p$HP*d6fPkeYtq=r^gkyQb zC8Dy90(}6iy~Z7&F#I&20VM1dLKL6!V9}L9#Y-ugSp`}Xfk&7UKWW;WXXmC;MhWn( zhKNuA6?UOWuGm9-x_iOTa9G7KUGmK<)K;! z;Qwpu6+lUJP*2ioaX2Zx!oF_T>j>RgZsd$KwqisDy!bRJ3MVCAy0TmVYb7Nv^$lJW z@%N4+Cl)Zt!m7AG2I9_Ah8-CW+9PByzn=t-Bfp4IGM+#qhWvYW$1m8PwU8A}=wAjH zKW8BUXo-c4g>znX*4Q4hjh2zXDru2uAd@R7s(LLpF{&->pCY9HfjG8m>t1I{Hz zsG8LmwCpEh5oh@^XlxEvm9?ggTM322ID%R$xBrfP5bDloQ5^Hm)wM000TCR$y);&C z*w>uN7|0mXr8b3QeM6+Ax30c7f1GJOEpI&F#QTL2`Z=s1geM(udvioEv!nm($|#?v zDUF8`YS*%pyt`r%;lPC@m>37K(6s+%I)-dr8O)TVHo91EvdG&TB!j-zIQ_UkH*K+*A_@vQ zmwz{vVCXp3Cbd%ffHN@j*Bja{?^v7v0eTNens?IgPFuo3VH_)VwSP1IXyV9d&hZ>` zcU_SmES(48&3;H7D13k#wOihHY^gpwq2RTpvA3Ewyo%tv2a4=uMoi@0H2cwxW(b6U;b60s^H1pd_1Mr-1 zASc_NzpV|xV!HDzhYBGo2LoLxgTLoV9skj>hqaVkBfMHaSE^8vX{J1dCntx@cZ4{! zz;A;s@7IUNm|Y}DPir)*tjBrJMIQx@kkAKN@bH<^L=vc!YjCTIymsrWJ@)e;-d6aU?wh8okDrQt&H}QD<4|1q@|nK)E|;|Ii#| zrym?p8} zC|M;Zs)-vHieCW%ZBp9&Pk<@Z{3O2M5}L4g2VA8lt$gKz72xMug&N8M!ETj_Zy+s% z3HXGBbw`%ZYViBI`U!P|Em+%gR^>R^2@h!E?iN1Y3RE_AZ)-=)+TK*ZQguBibS(yV zBj|sstaiCS`6<_sv77c-rEQ$K0Q2X)PoQTbd4*hldtOB0OQ?X_E43{l3wP}a-6Taf zQyGGkA>aM>8K6qX$$VwKGq;lPBf)TItpS}f^1#~7eJrYTl|>pc8@ALw)WqkGy$tG!hw0)qWqn=d^x%Xy4K& z50{2Eqw`AYs%Jgyf$xL@U^bqxC6SfI;|1Kub!eRKF^hsT_^|#(q^f!xO)kos3uE;i zp74uM@JES2oqf`OeU1afe~#{S{pE%QFhfa6$$Dz9CSIz)fa?T7c{>aow#n1+i#1jT z&QQ1%Wn87R&Owd;aYU8TjZbE&kDj+0UcD(E)%J3UIZobZD7>3CcDI^qcYjKD_y6_0 zbBfui7|&6-BvsJZcH2NuRCBKFK_5VnlAD+4TP~HD@Uy3j;vAs6v3)uya{K1B3iFRx)2V0#g zAAgMSk<&#)Bh)Y%Qvn6wCMiEJ(bdZ$D)`W!IrfP>QyhF zd8suc#|AfVB3G&)t4%Z7isbU-^5s#>Mx#Be!{4{bqKwiH7JI|O8rW>hkS6(Jq83^$ zzl>BcNQK({B(w(qq$kOn4KW*X@()c+C{Sh>?yO!PmD|b?o7Z~5_U0KiD7Wg_Quubn zOWt}1_PfC&lVrRnrZ<+ms5sTjxxG+*cttTO4Lf}o^Y%NN{oz)-7u28{)^NrbuUMXx zk)-8CLx~SVs+d<&Rva84*)&W%xh&@@T|+l@Pe*G#hfOd5m0&Tf;z)SLx!MGE8S%|( zorte<-fo)Ck*fUIR6l-D+&_ACz~ny_#33;^SHIoepLz4;*u2W|nZ9P(;E?G~{<}hh zG06psXE((rhyi60!)*u?%ag@0y6VprlSNRJ`CK&6TGy^#;$r@OCf3bH zT3oa!!~90E96T`!rBoZqFax;jdSwuMTx)*CAe~DXA+l?GbN3{%=;z3gkBiU+CSK=2 zQ%$J1qVKrKYx^M3P^>yMH!MDYnP{eiSt+mM*vXWOLYrTv$%d!dBmb zlplAO+i@N-AW^+suUoVZWW?l--zG>Y{OP4&YE6n7U*XwiB-3uw>=JEb7X$+R@Kxms zg7$gBW^EXWjL(EOx0aV)mO7Rs$4ANiMi43jHojT9*Zb!DlpZ?1F8Z-Z9+{7yzZL z!389kYzW%9-6f5dp`|6vnm#-RH+L_IcRJ>#pUKTLrGJpPMX#HlO&!5md?E8z>kZM$ z{)EW|N3)RN$m?mYJZ}~_VwS7FTRZz!d*7^uQN1Z|iOud|5ce5CU+xk^IKO+HL~lGY zDy~^gH0QpM0Fb`EWHj)O)$@=$_TZ5~D1F25I}0KyRL{9D`faK4bC!uULRn%)vi@{v55) zHg-YJTerO#_3>hOGt4URs=IgpAcw7d4)!Ow+h15-JHA29X1Ngo&UiSGw|YOUWOAJQ zS>9DcFz7neZ)E1G!%H%1{nJ2Qr1(K~m9Rn`_?y?cwfecAURiUnp-zn$AYqULoloYg zeNnn>J8?Pe^$g3m1!xzyp7aTKf>br;Nb5(3^s-I|^hG@QGca(31@{h5)6O402- z&m(0*=YYXGQRIL6Ra~zy<>!p(2?koG<+e_=l zF1w#Z`bY0v?6>i0h>vb?3M)R^aoSRuosWA|md;bo2-qFB220Js->hAmGlR~;ut{~} zw6xG~s~*eb9eLQUoPe;|_|=^EYTZwo@TAd8M?1+u%1OT@Iz z=Lb|j6ob0~8uSw8ts1uXWKl%RCxl$gFWi6tCkVdH`47)r#@w6I#B>d>9yZsjFhwse zm3b|%)2-r(ujwoZg0|NVI(@*Ep(YBKR%M8A+L5Suv&vR6Uok@%qpjz6rWxs^h|m>v zO`EVr{xVtJ^4z6DlJdUHKsB>p+PH*MabLXjYLkm%!ZiYw2;_^>_2ZyL}G+eA#4UG?yJ`v?2 z&3~vfI}17P6>=TOrn&A337GCEuYC) z4^mU*xZS5}xMm=H9)efg2lzSnzwj)_bUdAYmAbWVDk81*9$9&5ZlB5&N^`YbdW`%v zPWv?%d2?^>fqHEo1s8(F`??k2#!KS48+CW_VVheM+Y#*Tf7cuK=|ZXM_*K*V#h1gb zPnQvfS5EGTl-jN zWlfX(&P1LWbLS=HEF5r5%9t$~Z?V#s+REi0Bux2z2t^LsP8lkuGN7K53}>jDM9K7! zB7z1#1}tM&8FZ5-AV3Z?hS{RQQ)#^xv_**Qm(c4$k3k>4dIXF>0~Ar{HLN+*=sR8c zsaUOD8whIpQbbR}8rs8^ld)$OCY9t0r1Z%f4zE`55I8d4r&9%XOQz?#$zjk%%Piz^ zrr8mo@{Ulg%w?C-!*+lPvP>bGtn@_$GosK#w>(e*+VfQnZ*|E*;&sK`0_X@*%6XQ5 z<)hY6YPy?~`=#r0-}ur=lTxHyvqEsvhynjRL);KFB}$C7+BUD-2s-08j$KXy;g`=R zk?+@fu_A!rSi*NJzp0&3U7V4o^zyUBnp+Jj)a5J-b~mI$+m5M9VcW>38mxwIkL*-J z2b_(6f%cUL$Sc?5#QsW&CczVJy#%uTR%@4biaWDC ze=J(g2e+*3GHRyW@TS5MmFB`VrgYP85J#v-+bMk$X+stt=P^HpmrF^S>8i4m^F;sT%xZEG#_ z`v|KYoMMx|Hre~7cM=u^R4Ni~-%&GcGTkN$9gr||NneL^YrFo0(fpyq>Oj!xheL=y zY@M2e6g)SG0-rC-Mo&aE{8%8qhmNU4dAJlw4Krcj8XU0Yv%cAqkJNOgJyi74E4Gh~7uM0C$>HZOs4R?E8%>OrK&lj-m64k8;8 zrNl3@MSm1jwMtHsZ)s4Y0irqW^$$?XwPp$8(FuU(b>8WVHk*-q4Qqljz7+j>I!3~E zP`2bKv44Wu+j>)R4;*HAv)QiJAtX6gbYGc!f~nZUDYU~;I3hiL`&romWC`(L+&AO0 z7>QR8Za*Uj$(q;AZVGJzt6Q(9do~MG*#>_5*)a)NjaTN#VeytB8mW=H7yyojcZ9iPs;1-em z*0mkec5Uqj3$|BJ0S0#h-Hv;<(uUIevOOQhl=9IPIFqZXtiG_`XI+oz)DVvVQ1aiZ z61~nldtG8qyGMi!He6CpdEPY$#rCJU3#rb-T4;PRRHesDOP#KO9Cx1bmkHt%nS?3Jyj>r49 z|L!=PgacYHmEO~WK*X3&@#crxT;(|U(!2Fy&(z050<+4VKk_z6mgBQdBU$a%rdR;> z)w-q+|M~g4qdBMC_iavJ;a#K)(Tx5&lCtvoEeDD|lL#Q1m#VSxHRRyBZ$p-n;%oIg zTYwY=_C#6@<>6OiE*CEx6hNf}YBoZAd<;r}=wsI~j^9!drB-(&8DVQ}U139TG)3j? zvFSrRH}KS=8vXvqK?1sxmyZ2$3fv z-4AaVDh!v>`JiaE7mn>)&!r+1k1OEhM~>%dzoJ5r%UO37Ns*4c!X>&(Si0i1VxGCc zz}aXrTM{s%m+TJ#f^LCIgJT{E*3_G&8o)|Pk;Qeq4Ck=*CS*PL5cgu-75C9gpLdTV z=^Uub*#K&X?%=46vi}D}#*Jl3Te^5?tHO*C#qUX2MdJE~tHr!b2hk;p23e*-rBZm< zzoqBE-w={m(LyUJS*Jb7JsEvy4@1kE#>+~BcpXqdELP5vrU?-*2%s64HK=Sfg9%7; zNqy^phYSiCoZpRPbN>uVIfAFX5PQZaFP5tkF*ekcKbshh3W`kKCJ$<1;v zRD2vU16nv$p)R{LKd1z2iqwJ0o=FiUd~fmT`DuYh3o1y1EuV$ap!6Vx?n+8aNy&;n zE5l3W-uP~s-mIML3 zuud6+w!2_mn2l}OBbtZKYa7Ch2@O~ky}=g>B2_*vB86}%xl2H!q&k_ua6MU@M#OIY z$&KyGSlJ@4+`RIx0f4+L z`JZeE&IDo5(|Ug?=0KL)w9On(bXoT#Y7MD9<$dK^8%aeO-DzQ#dDGQ5`%4s554sF< z)WoHYhd?gb->Pgnm@6u_d!6=s52JAL{Ca*hHr=;zZtKtrM+JT;urh|(-_ABdl4?B; zv&Z~xAL5sHV;A=+XeN3-8P1D|h%e^|Hp!mE^jh&5&TEz;d(Cs3UI|=wdtppBwfF56 zsMOjZ-@_mk=RDe5b?Ux!5PiC!Bdn+YvAkV5pMkT^d7NHt>wfYxdye@MO^JcnnUEUo zl7OS5+hNqvdX7tIBwF-*c~%GK;LU@Rw5hW}KN{opsVcDHz4}M2C?vssuvX?#PdLiL z*|G|!4^4A1N!@W{b(j%Df=~TC7h$f3Q=P>cUI`L(BvHayW35Q$#*&}M zLjr|2f!vC>H9MQeVjRyF9~{S*Uoi=AcUw?%a2za;l7|Kd!N1U6tePy;gMhY>UwW#> zR&GlF_&ReXs51pf9$t3y5m4m!`bof&Gq_9zS(3=v8|P`h@OH;0tp>xfLxOeNWH%TQ zqdIIp@}7O4$#yf`Nmjibewp$8HYzh~eChHcqZBM22eIeCS1;eD-a?6FE?86J;j)dZ zD9lgHp_pK(?1K$LW&qk^;AE$?OSD`ZF!hVJz3q=mW zaAvoAy00;0ecmS2x`Yto4{HuRzJTaFrJZ4{H}Ub+|CS^qW~ZC(Eci%W-Gub*h-q@k zVpPcAa8f_1J4fQH9DI414+eT@K_k&wC*#%kCV;jV#hTK7?gv%1K<5l6mz}%U2Eyn+ ze1xe~E!Laog%5ax!9lJfkpb(yKOjgwf4{yo$VN=ImA_4$99a$_=ZMp|szD6ZMuQ`Z zMKvOlPyHhTeRi(}CU}8BtU0@cMwW(q|5cJ5Z^rq~+Vh0{&R=$K*AIRRuXWFp8OI{l z-*7V{|E>_c=eT$)BZNcDzWUnA;k1F%!#gzUvASlJ%wI%K_g;IhgXTq8Fwuo9<|`|< zE~-5x2RDEBHM^FR*M+nCkX5e?Yw`&0T0 z08BrJ>S`kk=RNWHs1S>B9qN(i>wDl5YnLSq{&V1J(sTUKs$3ObF6|yDt8&%p91n z0W-mPdK&EM$1q6zU05pDj1#L19lisHUpq-d*Dk6e#^Vt*`U!Vepco}Lj0peJfM(GY z6)WJIOI?k2u5;fsc>c>+z=Kokt%ut{wPNx7OY6(RUvH{*Ht`XAV#BD=p}IN`$4sil z8T_4L&2rR_LwqMk2d3WaOWc`&@jZ2EQ9_1#^qP@vpswBz=8%C}G^e$uRFql!)0lX; zdz(w5s`EvNu9P!I5|$!3{(#$5N{jn#1*<(9kCUNe+Y67kCn_vsd~1k6G9h-zde4Q- zIoCF3BR!?OM+*gm%7iuO!`i$9H_#UH*OC3aupKBf6lln*lYXPC-$A@4N6kIpZ6GS$ z-Q@H1BEIYcQ@=Fj29P~r%=*AipUuQKj_bLIYnK=8R4a`aixb~m`0 zPdqiN(O;OV^OR}O?@4d*`QEzdZ1hOuAr9uINvHtO6lnP@6`cs2!`Q6V6I?vpSXJRfoen`cb67_#rxTx zaMqpI-Mk&}Y>;)@=zz%st1HOJbW9{?UyS8JZadm>sJTAkmV1lpDh6A$LIsEwR%!`J8PciQMvYDK&J-9{M99{n`1c(b7X)1kQujo-Ax*iT7 zP?&M0!@fBSnR+JJzP%3Wn&V{UJ_SM=d7GTn4JwHhHCVK4WX360@6ys%AU;PooNu*P zic%#Qj|`WgCwKoI&4nOxqaytc72a&Wesf)OJ=A2Q8j*e%&+cW=Y%m`x)*A^LooZ%( z#S?UNxQ*XdlIB4kLqRN8Th#AROplZ8yJcc=tQ4J8QW|tNuJ(Qha0w zQ@BaDB$LWTS-AK;W%>_$@OOp2(4wNb->$+Q;Xzj!_)Y-wC~Ay?GP(U_yYN- zoR6zk7{-_{@4cnk2jyCpSj)k)r#{!wfl9$SD^MEK;leTo9+iT(!ySx5AAUvOQ*c`6KLKkJ7^cx}8t?49HfTc9UAD)n%mn z1G#!`TZt;0c)NF=pTfFBu;eEU}%s18`f2}IxCLpQdjI9v*_M$?B2>4T~8D;?zgryt} zwvMjdAh47_QTs=R_!##ofN77Y6>C7*`Y)u!v7sB#rF>eoXeCP+njR-LhR%q}-MBr! z8~s;0?-Q0U_TSn!Q-V+Bq4D|9kkPtbS$!W=<~~jWo}2ppKD~mlIZ%!sa8b2*-Xqvj z%!fU$Y}l2=(}*jAwVE*-blI%D{cmMLY?Os~ScC zLA7zAje zNCSHjwHGXUl=!3ZT@t+eh2TG1ZS6=t%0BCs&IYr=z22&$L+T_!*P-6d@>bL?&G(4| zI2jfEXwvj)Uc~Sx8-InM?HfocHdh`FznTiTfoETsr|xM*^vM-q#G2sAV-?ZYq@;0N z79&0PZ1qt>_!Rgl3sYBDm$mWlG3U%E9iDklb4fQNNa0TzM1T%qB*D--9Y-mC=M(kz zbd7hiJlI8)MOz{OvQMO=adQ`nmK6sZd$|cqfs*NmkJCnSGdpfw1SMJMY?BKkUP|2`iO_(EAJXu( z^>1TUo0W+>TqfbB@nH_6iLEN18lV#88&0y9MXdW6r6?(mcpL`$tW;<$$jJ)lKrTrF zIqViE5TP~G7?)ggtno!qg3Cb9KZ6;X6k9)HGqWwM=Yd?V0`yS$u_Re0*AoiwIY5iDFFNR>?y_+(OWV{X2 zdjXf6F@(_-Gk)$4pJxyz!j#%we(a>QBhIi==1gEnjTWQr2}-LSq=kf>mAJGv{E}Nq zEUZl!Yf2hkg%C8Elw_Hd6+rr>@k?dvT;fmwEkiUzkZk?COeUC2BO#fonEWKU6bi7q z7hr+=$>T4`jQ39~1ps`w8@Q@V6XH9Cd+_>wkmQ1ngZfOVLI=DCD0>}yetkL-S4-99 zy8Roa`;yE3`Z_+<+sWa$9e@5Al6<>xNAqU>m!H4KYSM%iAGa^Pb)0=a_eDXbk^T5j z0iF<_*6a33%7cD(YRL{;oIM*X(#ktfDGn0wHrf4M5oc*>@4cQ{hqunjs|>A@itlK~ zy>d=!M&R!#t@jsJ>phIA&|<$vT}*1$!ZWT0*B5VZ4UZ6pMai*CweNbW0jH~v&w*mbpovUfF$$BDQbzM;oa{R-xk8#KUGU1dG*Er2TWR8r?+ zZ+A*&vwc>1-^4aUNcpTE_WWi5ivh)`rJvu(e^;KXQgPAt(kZ}lu(6^JfkC;zR?+$q z>oHqj7 zrFlll{oV>5d=eCgy2)9b$Gg{wES5M$#j!lb*J(30BdO~vQmpzO z$CabUrC0(Le4wMXIe)u_t8L)b)ea8MXLZ-zlqs!j;AJ@=rPE6T2U2GFO6%;;0m`}Z z>xsh8lE+EKPW{_`0t!a2XA(HKaYkfS4;76swq8dAE7@t}LJom?cU;7;oXc+mw-c-m zSIge8S}FY9|Mp`L0KK>id<%5srH}~l*&n`{D5;={6DOClMg9?H41ifDsHTpWZF&0S z8aPaLMeKTlC~+N$tGeL@h3QEyEI!2Z30Mqc`V4^ebX`SCriW}qT}e@pmN7|5H}7Sojl(-a&kRp%sQj((G5P~>=W9cRKGI)_NTe4u;Vh8 z`k69>S}>(=n6DbqS7li>g^zf{Dr~g7YAS38v6Aa6uH@exfu}L!+_y_H;u$dH$cYWF zmE$w=m4<&Zs38om>7eFJH&Qh@8CvlNa-Kl+=q<-+PQb?0xp)QH@1`;m2o|iBA~(S0 z4}LO}49iU05px(yfZ08k%Zgu1XGeV#L{P{8=49F1IJB)xaTO`^iAa8BrFtA5dvVe5 zNXl)ZjRePy*DLLwbm?Gz#vD<$#L*0QaxhA8QrJs;Oq-VGsPh!pZ4`Z0 z&lE!>!^_f&ja|Q*rW2Kimytxu{%Bz-#z590q%j?Vc7v^lR>s?wK!T{nIUTxG{uI^` zkRBZs<)c@Ag5_hBb0~0L)3OLVJUv?}cpd^wxi|SN<3P#NL5H-F-)lB_}F(-|$iXSRy_rVy_ zxjlT?tanE?{PrKj2|PAzZ*Tu#$dKiB_qp1T^`-8umF7@$F}wCiyuo3bwrWymeG&h| zL}PHbwjKJR)~QpovWA3fqOXc!bkQ9{zy9GX!K35!e5SmZuESAJtj_;bcg+KUC*wHN zx$0LDfT-F0tqpny$@^`mam8!YJ(k(C&7SGs^?X2je9Ub?rL`YEZ(mQ1bp-x)yq$z0 z0O&lN%8r<8RpL8Al1GV?3%s0RlC<59_5}Id&~V_!l2t_93>K%nm*Y7%ePZLJ zTWl|`mT#rB`{5TPoy>pIIE%5(Si$Q&CxwHfdv#&_-g_pW7e*+K%CwZ|a9mFya9WG_ zmH!R9Xa)7-0vn&k>|q~hisH%qa>~Afns*;y@({E6Q-ilCM_!GPYS+0C5al2-kMZpB?Qp&%RrhneaR{`G}gr`@XmWn}PgaO-lp~ zA&T!?F{-%n74nHIE^=!Cr6B^XR6t%R=jz)omasGCX5iDViZP9Dvzi6Ytl;$6+K?v& zo*r((XUfLoQ{8xB=>$v16_*U^QA%h8+Kd$Wzm{yJWMtDS1xa=c{tRcg9D?zqW(|{@ zIqG=NkOQurU}Zyrcx(*=W{Vj!A*;pVxK;%UVHL*c*o1Tnlhe+W2}H=ge(RrzGm$10 z>$V>3o?)$T^#L`Zwlh?XAd)lTmdV>s%& zdoL*Flc2;hs)bc4O7L(3+%JMt@AUXM?aO5#{uZTaUHK>5<*MN+72fh~e^g)hW5UN! zss^xqVwdaRvo_M08T!Zod!X52Znp06?k#ZfW)Zdn54Mciy3c(*zn{=G_5$;XS|{wO z{d|OLgu{&oYdyRN8s&M9g#6b9erN#V$20Vqo`#ZFt#T? zUaNb$B5tsKay0ue^8G>g!AuHo3zo$iUQngLV`8$e9tW+#TDs2ns7X%s81JZp^)KTi z8?Eml&QrBL6@&bYpnVsb%)d}8`oLxg9EO&@gCT3}i_r9Tx6NTHcZ^8I-APva*TOlJ ziwfY^yMf4?&iGW0!tf=_)m^B~il^bly(x~L(pEKQ0447+>hT%3G=LAJfq{}r{#2j{ ze~rVzU3CmLiY41ih4XW$P^z$-PAS4AwINNLRjtf&846wl}s)6@}OAFY1F z0YHDTAk^)Ww91|>JK89KeJE6~q`RX(b4+&9T{BWzR--#ZF1>CeVzQ;*p({#K*J|sz zu%>00MzMjYpC6WEEM*fO+;4ACm&^Q2^eGCnYj=I4=gSg&z>MjIQE)zj850A8N&HUB zM*9)>N}baps|7PIzT*$e`9i1iNM5MX!eo-H1yEfL?Tf7-*=H=aPRSk^9l@d$(Ujlk zc$0SK6Z%DJZSx<0Dyybro`cI1xr+u(?gbUBvQ4sQOU3#K+D^@^-l&CPv8{(G8#EL4 z;upxOuYbbkMSgGe_s6SfC~uf)jTilWFz*71URQ-tYh(r+NZSo9zC0m-@U=Xr%0G`x-MBl}YxwRZHR7I-ib^CxwX8r4 zK1M0xOf7pV=`TxaQQA)gI^mj*1(%e| z^qUlgw^*uu1ow1%bPHtCtV7X*G zIg7*%P)j>tWcqnpaejpsRM7*9k_8sZH$%ZpuOIw{o>FoRYOOKw5%I9!r*_4Rn!4j1 z$E2BHj?W3?9m#=6s=2mE?YbjsLyZWTU>du@qRx_}>8PGluhc0@6dt^{IY#cPLj-js zN_v=QI_B%DGo?z^)s^6(yCf2g;a~ZTHmQn@;F1#uv9K*d;3y)eZjB{;Ey>UQKj~5g z&1Wl*$Lg;>r*+Or!&ZIL!TA?Yu4C8w3k)9<`7%uY3t+@=p#t>ym*i(IGv$u3Ae1~r zISEcqOX_ZWc&>A4W9uufaE~A3RpvxxE~}S%zFo$-o`4@{Wf#?;>&w;RDJum0lHUHx%#Hct|n zn)~Q>v(cTXbTjef;tcXfG}Be)-=9V5sPSKTvDWhfbb*}tbM;kofTWdkiE%nlZAgCb zv+I}32y`-*l#mgS=I0&u=YfVB**>0buxx}RG)2{&R+d73LU$c+fhkW+V8D!{RyfjM zkNx6hZ||4RLM}lJAgS(;tnZ(iTf53HEH7|cSuQp{A3QBPZ2;olR*1*R>BY0q)d1_> zh<#(Z>ha!q;*+1%K1}Gbp!+v(FHYE#5uA-~gG#m3@$Afj@vP4b$_5(F^}PYEuSuRH z0tiWlkDa7X>J~-i`lPbQKFvcn0^!T1gMtSxn)>`Mr&wyn=$>$sDX||Fw;)k(*T;0O zuZliXJzp^+Gl04y>#famDD)feQ~@gT?L!Cj7TWNV@Fzd}^yR)#RCm0#t7jHcxm8#A zpQmI$tnq*&pYwK14y=U}%Sg)o9v9dE?_tSegYGli67aV)O}Q{VZ-@^Io7hP1smLyG z^dg;!D&q?O(%S04v^JFm9p=J{hNceJ?=jsDvYTWwD?PM#rNnoUXUONl6+0=PYv|0W zfGW%U1EdlCLEKC}v6q~)4GmelESnZ*7H2hXX&5>g(mxd#ZNVYVs>}S@Bi%Z`8=LQX z^!B&1Ne=IDT$uCbm({>sGQ#8(Uf{g+4;BDreBa{OEOpCw%Rj_nc3q>&(q`X7gyZ<$ z>dI$pvlLC33BNKM(6h~}aT&cSFu#dTZ(*U<75Pz@L`FKw>%EHFpRG4~v*Maj?sctVpru@6pZA5cWXwi%5}`7-VB~B@ z4Ev-d3;Q3Wi)_?prD-0RPj>r&lcMk5_XNe5&>hbMuSAHhhC-6yi;rj&jJmQ1Q{gYxDX_L7?_% z5aZ;+UJ$zPFZmqRvcGtTfCn2ONLpil@eT^O_@$x039Ld;`;P0BULS-x!t3cb@@r>9 zbvw*rD_n}&`EThXNkEqglI`%DDFLixRMamsONrnO687Q>Lw}za)~!Ski=INBg2I~b zpzBVRTL2A2)c@n@9USY7mhRzmV%xUWph06awrw@Glan-!8r!yQqp_XFX>2>^%e}w* ze*eLKWS68FM_bc9Lwv^UhZHhlynj9Itxeob_F=~R{HnA#W%>Ryh}UCT z@G`dLa%v72F8^oKx6MJ)JjV`xb1Q?HNwTECz9N#Xq-RRQ(1f;-szd|t7c2-)moXrl zh3EBiiM;(3()L3Hob@CJjoMTu59j?{yvgZ>*kb4|es-dEibk}&TxQR8)rO712Qw&v z^+_?HHa4wE1JfdlUZIwx`|c}1V{svpwMaFr*w9~iR7{e0YFvvHXLBA!~+lp=-JJJ&ieGI8#H1hku}+|NSQ!pHj!|-yr!Eir({M#Ovf)ZM( zL+=YUIDOO$2<;lnknV<8YvhM7WGBpNNdyR@<9C~)R=9cNP6?PawJf_U%!7<>12O$K zfV78%QS6MAKXS`hoAWl!86B}ganWGeH*u| z&sB5(fkFZ3^gkkBJZ7WcyC_q&-2y057+@FHzmgr(6}jHd&8{{b+--=)Ej7@{m=}7) zvgbr-*!ZVyn(5dqX4Xx~$skrWu$dd}Q|RhLBMl?VoFXP?s_3Y^iQEGZOxsIZ``DhG zw7*rZC_}zuT_RzKL-_Ci1Kk?}AVjJ1X8iohLfLFIt&6ldYznb}3SCDu3&*U^6=OmW zI<**;?5&4|;ql_vjS#7m!&KyaJlWw%N3(XWqwc?GXRVXSEfnbWvPR`8?D7sM|E{W{ z0W^*RX@A1yCzwcO^@AW=r2rr)_a+}hk@Ue?>#!N`a*e(~jACZqx6?)4|BD{9|2Z)e z+`)d8f55<#@&Jqu(a*fUXHm<`RH8+5+=bmAol^h&dbSd-`TN|?DMNc0#QC+ZkX*Ru z+7ohBv)0t~^&sM@G_-%Y2ha}?m<0btGxI1&BBkIZYZip~g}H-oKd_1iMj+musL9%S zQPM2*`SFx{tAKARjeh6Tp)L*w;9yM?QYfNE=6_ymHltWm>QJ;*--6T zwe8{*Ras{!d$*i#|67%H>Lz!`l%{yEy?8@5s;4EutM(-WuP7 zm88E1NmyX(iIp-L^ZYYRC#H)4he-)B8C1D+C(_$OcXyRw7+{P{jYAI9Vk|#p;}|s} zAh4i*JLlK!cw4CU4iua_^rzNT((E!-$zbzZCXZHYt%A<`fu|L4HsnR%P@FqE1YRzA zN(;tB9MMz12%!}`z3DeR?3VPr2j)Lq_bHJfP?xR$w<)VPXSX|e3^hmgtCxm}%QxlM zW&IU2PIoPuRx)cX;;X53pnh@@RKE(Q6j`ijrokCc-QFPe#YX)}qtEp1+XtR(oVw(k z6o4pg1nYF#ViYJa* zka&HBc7a{J^AB#;4sts(`p|Hcjlx>vyM)+HLs4v`)L`UA%*n`_s!mt5U;Vo+PGkzO z2@arP%Q8K)t63^oG@~5nGCY3S#2hOXE_=ZpQQUW}ygk$0H&0Z9_|c-Q2zp~(ln+A` z?OI8D?{WP%krpnoq9t?UAv6sK4Z&4kh-YM)b|=8tpOV!Z${)0xYN_kj6F0|2`CR-`Vf-|5Wx zB%_fo@Y0SKtezr2i|ZXIY0QuWs4aDmkhJPqS!XHXz>?PT*T0=?nYRY)Ctj&^iFp5U8=U+k8B_kJ zS}*!;5COy}x)WkWfk>j=8iyuh{Jnxti{>YFDe7coow@H z8=BQk=OgT|G(^k+T-d^`o#n z0zf5(kH&iQva^yAbC-Pw_l6w+e4Pas8)uwM6vfs>qS4WhH)(~XepD3a;I|pj9~NcB zG}Cz83#ybk%8oNme7E6_vpUgs{^B>5hRo%nyY|r4`A81XO`bq+{l8uSgA?0S0v1M> z8@+K>3Ul)*TCl@><8j=F1G`0~mUi92TXYXUroM(VCi~FNb!u|0Z1MK+r<(ird8X6d=PS{)X@7Ebi(Uqap)3=Al><+Rwqo(+sV0t_L#Qo_j>~44&yc+ zug7;wGm(n7rQ);Ab?0RMx{;!$NgyvOJcbt$Yd=@Gbs|V*DzJd{F%4j(P!n*_0Vpp| zsnqgPoxZfen4Bj}Zdah=23|GQkm$9RR(7sWx^Mu{6H~sW7-)<~eyrwC)O$Lu20@#P zDFPB<+#V;yTI{pnk%et6EyZpxAI`zT;c@^u4eEF^#@V3cSyWXes*F53|=$Wh-36q^K}vWoQ#dRo|JdwG(uc zql`lwIb4p#!9X@fixl&8smFM5FCZ}Lnc}7aGxIWyr}J=YX0^3eIu-t1 zRs>iqvY9Jt579_fuGrBlyJReJE=)v)Fj8H{EaR`eK24Z+JF0y%T}_n$)n2KWZG>O} zfJ3}VmaMbFJ>*THWIbVWmxcu@Vkk!=^L6v7a7txUkR0qj#orlkJj3Iqu8uwqlRNTW z(%T9$aE}WrPLBfLr%UGT+DK!XFPyR*W&d{9<*YJ%O7)^{xn?UjzI>F>n%DZWZ_=+ak8-fA)EaRl)7+tN1{208eCE=m4kr^KrrMXw&gdbD|+)BN;;-y(U9NAYt`i4^yrl@Az1SpYgHgt))2B71^yS z>+?d_-M7mupR~KPJI3n5_oK*e35jg&%w+X3y&~ed$~#6G%NqkUMXJIOCdhPkUoA!rIqxfV&A~$C;{~hN zD5zj@J#=PDsd94_xhZ5gt-$iZL=n`UuMiR^Yt`cS`M7-C4cQg*8@@~+EGrFXh=08lB`bj**v z+t+;gAn*oBK^wyTs^2=$f+FxTjHM19^nr5WpI30MWVhGpDNzN-J*B6y+$c=nb>Ak` zau#6xiikRC;0#0;5hmb%YfSzr{SB>NCNpes&uMGAnBy3_Azf03ZneJh+FkZuJ7tk2 zs$sLuYK>z){ZW!)|7(}+oN}Sz+WpEc%~Q_HOU6M~Q6lEQM<&8K%Odxz;?BOWt`t|E zkMI&^-}8@)>TPt0JftlGvI3-FaxBn#$?t!9Sz30D8HNYncELCJewa_-((k_=mpR~* z2x412uUEkRcwaI+^bXG1REyJvOZ z;2x{JKiFCR&}VOJOcEyGXGk1o}FhMq1A) zf3fifAa$tYh_J6JN$Q&Fn`Rh+-~nOoZQs_fLI zHo69HRc6DGZPh&iE>z#;$KBBhN3xvF52I!ufR=`Jne!e;K3C?{S(GHWso4Ds;j#ii zj!*oqKiUUqU)eqwLmlg}Pa0T`6pbw4@-1H-TtK1B?cMvk8;Wb*fgBybUIc0)GTGx; z3TMOzLU?yp2B5>6xU~`f3v*~v3Agv>^4+P|6W5g=X$9pF9@D(3kkCK18EXf7K%&a< z7-LUO7NPbOgELO=Kl2I-txvlpBwW4(4ntNWO*W!`MDU2iMTE+)K+*oQUa=xBXq>1!Emm>E$<<)A3NDjU2$JhXl8ur858QNF7+H4FU|ND z>wJ6u5e_4fsPgQVjc)>qj&t?s=up9MG-v`L!A{U3u>I(zw<6DWT?5Qqg`BUuRM!wP zSZMLgEzN(YRvA6B@M}5x1)^ch_+P%*R@(RLu)4CUOu8tZ-^=D%yM{|-uYmk)eeefZto9D?v; z-Y$azxj|Hx?Kz&ia&CBnOFf+Is^_txW6S$~DEknnL*la#f=E?29f+n^1?ReUIGSIi zjM;iR4Vkk3IsN_aS6p{t{C20%*~#3q_eI6I^ca;+@9dY9S)ht5My%-Ue1OkEC9bCk~J+1j~~?&f5b> z&QgmSs#7-|(=`Zs2{i-WiX^iQX<2PW&WOmA!z7+)VhQatz2BqEAAL{vbp2D_=(^9z zIVY^aT)(`dnlN*q$awUi>1?sA0BGUjCa2T-euV{YtIbu1E26^CmK*@4@%qZq@H9qD z^E9~^#;vY|n@!HedYLq_wMF~YKzERVYo;v;t1X2_d)7i;9?Fl$xZ!?wW)ZI$f&?bT z5yCO_t(}R{7IB!l#rC%QtA_nzfpme0g6T8fc7M&{1cVlM8Q^eY0)@j&AXa%iSXlFvw%ugUj8&?`_V~1clXcNkIYLh{$Emfd$nf+ zt~Fw$q5vwrnlWOQX#PMfWBt=ULzo$_yN~)pgPVCPuc^n|a~6hF_Ia+ks|MkI1178p zRHw+(;QqYUrRpVn9xTK@-k@qf;XKg|im+ifb@ThcD{j)kfYI2k^vsUc5@^W?tRFRt zrHfq$d!K$j5GUl7w`45C71cB6)r1>638?+FEe$!kG!@3N8bijtL)S6#-mGbJW%wg& z&3c9f*u|x~>o`zyD;>GpXJ{=dE{ywWT$f(Zy)y59R%l6nb(UwZpVup_AYp77!~{N9jXwdNG{jK(LyGu<--P8fH*?HNi#E&+dDrNrpsk zm6u)@L5KVhD!>HUPUW}#^TOC=?H3Du!sFw}k+&Db7n;_WPDO-&EvNy;v0@61fvXb+ z?VamRfy~g6lM%vDG7O+*aum~CV1s|moxANDhz}9($EFF9Q;wy0_+SLdJ1kYPm`~}j+*|Sfmak3E)qlOVvaH;4fb8gQdOL*EwN7%-Pa2n(dBKB6Tv+QHc@Y$ulGbspJ3qtZ+H10T6g>KKH+ZRn z<#Uw!q+P{n;?Qu^Au+O8@AtQfdath%bJiumLbh{2| zbk=grlU;E8GNrOc?i{fQt*K-j-0AD_%^w*ZkXxH>ON{zTZ}*=nS)rTM_v(E4>(_-2 z$`zCGdIey%vlP9u7pkdLB70#p%7X{`buNFBA_W)H0{YyrHB<+X!!gqp@t8BpC^L=5 zEz|Y#J{aPJEXrVy3Mf7ZLP=1-_Ga8Be?nMQwHsNtyyvu*A4t9@x0*)5sWibrA9iYQ z=L7FBg7Kk5=$VC@m=Ng`poKx2Cbw7O5ew4q0ob;V^-5lq?xY^Hp?UIkONNnDC1aG> z1oq{^;ZD>Ah}Uq33P~NFBe7;cp6Hvzv67G&R6Yeh58iTD;U7V_g5o#R?fkQxuz2p% zo9Na87m$wV1P=!tkDkT(W}bAhQ*`G!uJaVp4v#<**snAu|Fr>ysCX7Jaf|-};nvf_ zYs3c8I72Go*R7BFUzhg9zBZdyLmlp{SkDHxmEdu`Eij0k2e(BCgd6mltp5+CEj?R$ zdi3l~$2%k0NX+(lBQM0*1JZ(wM|ZaO^UzU{p?I+bLL>GSnjBmT|Je!F`$xSky#x3!;cw1G>P?T0 zT_7#pb2XP#|L&>)2_ei zw-REi%6Q*dLBvs~+dc_$oo#{o+xjuBuN8ZA)q#)6-Evc?x9%n1fva z1*W!30c;?!vomup+4A;uG-b$Qpt_IJWU>LvjJj516~J_~c@~%_-xE1^T`Z;V(qJ;t2PIJp=3{rehtf=zDzTXqf~DNgn!3ZQPb#_TwL9E(3Uiw}!7@j-Yx7{$d5( zM%8?3f-a(R;%NfH5;d26-BztTy>5%5S)8jUs7!J1|C`suhN-Em(-*ywJxy6|2_^3? ze-;bQh`D%)mOWbZ$_#kV^|NR?ZnWFAL_(ug2;Q$;Bz6@S# zAy^1SR(0-MT=%??dbqn%w+)W{)?Kp6L`PY{JJ#*(;6zKjNWeL&MSY@1dk?tJScFaS zzas?zt2q|(F@w;=5jB51^@5PP;^t~gRQj>E*>~7?=tHofV&OOe(0oqL_?`#SfcXv8 zNqtYG2J`|NkYo2Kn)nsSN~A+ygiHja1mb@bfC<@xw_Ps{<2^oSP#N0Av3XJe)Wwd> z=+fmx{69FA3m#or(&u%#8~odL2{i~~RQq%vOK+?^e99j~(nKbcW#w9aVoAZ1%U~;!QeG7T4%{JHmF&`womCq_AI~k^mhMiO z({Np2E(mKDn!Cr^j^_3m{4z;(TEB(__%DcnfnKD>^5d#2=RNxinmb#N--3|&{4c4 z!9XZs;eV<}YT+M;tu9cYxt|YThbgj{-*{<5q}sm7Pe^z&VArms27gJY8UOLWgt&}} zWUB!z%un$C>Y;y`6ExbK%oY4q=s2FmgThPWfhz1$a&9!E(SCkv3g`psXSb0z*;}<+ zp`tt?N1*FV`hOfhxptBto&H zw2GA(XFY8(fS=el1AV$3J`!aKBs^Paa|_D)Uv^7za(41IKcHyn^Zfkhg2+mq?{f8p z65zq?6_D7dNcHKK6--4>y@6@pJizB~UWy9VFZGV{U{ju0mraiI#@HD`xG2g`?V=Ih z0-O1?uBELECNyLbJZLkmiW& zTU<$|0x!Bdppe+uhyyXlFP{JTOB}#-EIKr)2ojaj|SjG$fA{ z<$aNDzCVoDeG!4UYi|C{{i0eX5%&``GS3PYPjo2N%5X!83{$(*!KKn4r0YTk-aM<& z1TZWbs45eWsHl!SU@j~fZ7fMHRi*mepA~axg`{6ver3eb6a2|Z+$MR9*#S&&42|$> zHZj+KTmx_RZ+G;o#)y~r6`Hz;x%bTEig;lh&t3mz&`=9^0)3Q>p{LF#v;Nl1f&sNT zd@Tefg?q{V{iz*+#~>V=ApB#Z3%ls9+?>0xL0?P(aJA45Jx`Ea*>fLQ)p~hg$WmM$ zWam!^b;ErrdS&_RTx@?NxnH9NDs~3oph7+%Lr-EgXZfbPpYjiO7;gpszn<^R9#Rvq zx8~V-Hk8uLwX}@$`R(eSupD+}NK@9l?hf)*NG&va^bbUav$3X~!cwEzlvz=#rj%=I z&13^rKxCZj%b2{I%8*1MpjZt*L`@%5^&F%SMNo*s91;M^j7x`-{lp1@qopz9*bP@b zdHF7T0bPVC{$Z>kJAq*1CIHw^?s0xRIsCciq?v@+{PhnAg!NBp`8xe3B)rG%RE>(F z`V_&%(sFn}(XR6*Uwue%sE(;3RH~hSj<4g|%1gUZE#GX=pU>^BwTvGk0+Q@lW_W8m z^hDJ_`#AXK1I8sCy{4B98l$Cv%g8c9nu*Eku7|tmMn|#NmUA?3X2JDUfesnHXkE=~ zA2bWjWNS@!(i?94W*!C)5RPZyAN2BW352EpRY-mt6fG+889n-6Iq+L-D-C%=kU?JZ zhlD82mjPzIrsAoqJoC^Uj*&_RGen9gwL&Y#Ad3l-v+F2IC;ZKO*f+@?d-p=Rg4O~) zLOYMb$E=iCT>G+`zbP_931utdQ@~g$ow5Ph5{*k<9F?hWHdE(Fa~{prIkhm6nE%J6 zQS5q=5YDfzUN8J%UgliD{=^~FJwK_h(4IZPxA2T_beDchAy~h<;bZtkQ_N*;L=2tq zQf1c{N&h_Lm_^G+X-I*GgL5G&JrBfV(vfrs_rsq9Im%&U;L<7sURme4^?b22ay>9W zVdc_9)m57#L^$~J-W_2JR3^AN91edk3MA41jv!`}ZvQJu@WNBwe=Z0M8zr=*tG=VS z{;i#n1r9=$edpVFeJ&DdwvNa6vE>AtNIvJBT{zvmx991yec9)l;$sBiu$BwE?vKD1 zb>Ze*UFfLM$7UikE%hJbLy>ueP(551>{dg@2P`*}vN>kA|Ax9^}1--1^54^ykv}1XrMh z9eSWPQN)UnI%qef?5l%iee)JWk?FID@ zx33-_uT%OZ$K=aw*vXK#E*oIM(@4}FS50&6vyJ&BTSbyOOu%OlPFBzF&znJHwX-R& z@pEDMVWgdqSO)J#=ayMYle5G9W!50idE|)ufLR`DG@zsH4IYn;;CuM7s%3a$LdQ-v zm#;~$PMDOkeFvZNPc)8kzj&&3YPIxnM*#}eGeq|?q-q!dk-7pf z6weH8cON9%OiT16$b?Q#se^2{%bNxn?z3uN5sXBqPK^E@l1PxEwjkPN6g(vL=wk*N zW|Hk6JA(izi6B@#)Y-H?0AYZj-HYt)Yk-G-pOX=HbC_zReXQ!GSBcOi9I3ZZ>zEF#Cw!YPWmfdD#PGWlE}}>Tm7ykV%V~98|r@g}O`|$kVxDt^ zXm`RGi1#ZJJt11oCRMwayigcp*4ia~n(6mqrkab8>_wZMf}O?Eep$j+IGzr2oYOg+HlWmNjAD zDPs8B{8#gNhwP)xqi`|Zm)9SIeb}DE71!&1N9d|le2*M&v;7)ySeNof`0z`gm|&fk zu#sYg>76e7b5ncGS5V0R^#bJkjzpb(5Bz00k@g_mb_cKXZLIC}`tqLlDfz@& zv;0`d*9;P*sL7gcsM&4m@5p5Gf>elP{6_&>sPMrsQJ#LnXUyvvS(`f+{50tjt@Bje zgb10yeAb2c>p5j9&Gw=1uiOTHN?lG81d|`ezV}WN?$|*`+~pL?l1+M8@PM&tkeTLk z-JV@Ti6XQ6?@v|`yd{{~*1j@{ z$B3S`;d&4b7LzfCAd`2sKjaYng_sT`8;fEsO=aa*3oMAsLRT>q@X?q*4*9tmlR-t_ z=^Mj+o0gggRPB%pT&}{Wv|+8xo5{8n!~_In0NFho*A)PtQBPCvQD0Wk$3ge>@A73T z(JAWxRdC^-A9v5lP6KLkN zP2hFFeggYYA#8+M2(I+lU|x}6Ug5_d0172~B!~rR#*W)pCRIRvmj2#+uJW!ZYXe>Z zRU&yy?R@}e9L$TR2@xesL+VEZO}~tsc~U6GrpaJZqUqfO8-){sM}Pjav<^!{pyrCRh8-dV-hGwg=5fkXCcu> zE&xq)`&9hRK-!&u(fi-xPb`e8#?&UrwM08zQdd2K@~XLP@>YBkSQpe2;Q>#rcEdyW zbk#zLy-R^kUV`dUX}NJ^EQ!+kP5}}DzT}rm@rBK_&49x5?O7B6N3tG4xaR%8yx&r{ zoed>Zf_~%kJ>#w<1ou^18bEYqzATJnEl!J{=*jAQYD-iVil_rNa{eePXOTX@9RDpHvCtQBG_zdMltx@5er>{m++C1eMO3Bg6myR9U7(W!ABj zi3IgiY~4Xe1Kv52;CRhZ1*qI1WzyT@of~6J>Arh?vTV7!!V3b1JBm%NuY<$s667IT zYfg{+^d((-)M(1KX``j~jd=>QxBRX?H@?}YW9Q(w;bT~tgc2Ak16Cw%za|lGlcF^? zc%2O86kK;QGFTq;Gkh;)S;CJZ+V1v(qZAhQv3!XZvYmQQEzQD-PIP+o_C;4vGKrsqQUfE@)zOLf_rf>lbO7`tw5e zq!f>)!hHD_BR>3y|BBcm$2v<;MD{L$4eFSgynk?Uv~y@6YsGc4ANw5F5)* zg;4qXBSat^WA;3)Jbh)izKlofY$-D8e-@@4=(M_!t6I=U<@Y~M|D@}Q#tB$Gh}Rv} z-y_~)G{=YpYniaRSukFIj{pj2zP8@zx)9}eY_)K(ZwS%k0D?L%O zq~L@BtCu`6t@bSDT7f82837h(wn$zbO*eT8igu_j5gn({bub`@N#223bndR#KdX#t zBQ71yhZ=D4d0%_ZOLMf0EB7pAEa=91$?S@(c-k24qp8k zvZ^a&l%%n4YMBrLQfMYD`$qvN$N9@ZYNBtEIh*j?vRY2~#quJY(}^_3&9h)&k<>=) zI()BYfg#>(4j?-JKL>EjPkTt|Sy_kThbb{Uc+I`;sq$0S#rLF zw&=~QED7GvR$orNSETTv`tSGVL~K+m*Z(&YTB4$&xc21Fm@J$tTb(DcI|kTbyq@&E z)>M-AMR!H~8>wq=4|$PdLPTN%k})Cw9*>NhHXVQtWt^_Duf+rmsK{v2ru%>o*lK&0 z_YOQckv)O^K^k-8a~*+dISEV*6%bG#f{DwbP{&!c3ih=r`)p<5L}&t@fBgZBJ?t?J zMJPx`M@I7^2 z?NLQ5dhe;z{L{u59`VwFqyFEUXsw39&yEny{bq;{)4c`odHZj)a=HqsG}YEd(Et6B zrV|?h-e%`*jE57p79GBS>b;d^62}<2eoh7jCIGYs;Q*`>FJ#Ydn45!frb^!uk5_|m z3njD4kj+E_Rp^!C6D4I}bcFDPyr?yEe(57zDSR}zK6Vbo0wukD^P3Rbz;{SC@DMP6 z8dIe0VYkr@C;dHjhQ!3vDFb^|dEgi;3CB^Bct^<^|JMt|+uYn!$n_j_J|=sniUng=bb$z!nl=Ab%}lmp%Z< zGo?!a(D6$&HwNj7VkADnr*Vc@y#=G^d|q|+q%^s;PsMZ%2c0y(4o%{9@b3fs$L}Vn zsBExgO6m5krhz5*3B>1&g6Q1HMRVw+v9alK0$1eo*@#)+!~=Nz&1}x=BOIUU4gmGJ zw+)hqq&&_sXBl>L4Ja+nrI*rr@ZIYEI*nA4scm)L3c&&H z%Q-dOW?cL&E6nwk%Z>A0WjU$0-w}A|Mr(v{%4LY`(w%bVvY6ZoQtw%SC*z(lBNN~e zpP@+W-2gTUj50by@7s(V@D8g9x2>!m9+B2o+S_&JN%0?*3`jDS7^1agE=5+8kE=M- zvGeQ}G8GduqVjL}aeqBJmFDqsy2`JAT4wv*@JI5zglVJ!O?P$X^-(V}=6#($7EfAb zao&5BY`uLKD%5YVpl_SV1EK7Lt$2m8JHS>5ysr)*!2 zEAtvt2U>af%=s3%jIG^RTT;tdq8QD6`r2pRvh;6o;@*u*WP8hhSpTx~Bf^AxxLyV> z&eb*9(yyhC_v>K$O~juta$dBlYJLb#IWtH}Ibn2#@2!lF1+rt`9;}*w%pOfygpKj4 z{uVR0QWRcnZh(J55#^tP()wEbU6BleeRca6G4qgpn0XW^EHNqRdDZr70x$T?T!vov z>p*=3W952?BgNJGK+&^3mh-w?<=MB8PZdmUVt;K7!y=pOvmFTzOs*mO1G#NE-F zs?Z*##Gf1^lTBy1l!U~u)AlsEhc#J4SlzyLZ|0dP zM7}M46AI-B>k(jQEhz7oo+7W>N!E8DyxK*-lC@K)l*`4>uteuXXNaP|Qly~>QrF=P z=m{shw-wyVH>hFe@(`=G541gPHC+uA&Fypc5VqP9v}hrbk3sui(8Cf_EbfF7H0gx| zuzSg{O%cAg=ZMduA%`a|z%s?DjE%l$~BBBGtBS<-;s*qCU!*n#d z_o2EPeOH>3yeWfIhue6S)@=L93OU_G{WJgK%?u9UhTQ-UIoHqUg`f$ZuEYO-|3;!h zN%#BSR`-25Vg zZq&@<3Qkex+qg=->f&lL*UWlthh4($U^X>bX8EKowG+_L%^N;+YuZcmx;LH9Y+JaV z!}C|-9;{?7m1el~prB&itQ?Tpq501}G07?$5yxCQ>H3E|-1E*QXkD1bM(I3w%*WO8f*QcPWJN@{~x>Cnf8qk$-hM z9yPta+wchgNJ$YO*{R0UO8E9AW{5^X=z=sRWIeV*()%|BT&SL;N4vdlnV=h1%sk@L zEU=S(#iI;B;)?ffLn@DjoJcPos-T>0g}_tkmU5_ECfMZlzqkA!6~#{M^5W`q9Qd&- zUdE=W(upF1tsnU^QGu~5$!cV~8vqg%Rfuz+ccDI&DFzS48RL{#N;Sm_DtL#L<^hRm z{Yri0ve8GA-qYk}11Ow{iWb>yRukuBcmZy>FtN+dcYO@d6!B72{X4Oju%xZ~1fO6( zHhOL4G86lmg`NM(3>+M!aj)3ODbx+q{cgUdUv{_)El{d8WVm}!M$Y6zb~`y=&d zTb_(f(sFzylNBl!z|eV-SaOS0)kJUfpSH=CDuM86-B~HAA36X^*+2KEQR*lOMNyL& zCSkle4L~2xOHAXZ^yB6sncCY28{u#&#c(y3LL~#AdVC(N8LouRe{T4{EGBh={-=ZH z2)!*+>sKt)BLsdo5MOW$I^w7TEhl;a`sgD{^n;i==f1)474W+_v)w0zv={!_0@V4@&yDzRd)Dss>qqXivCQ!y z>FZ+L#&q{yjBFEfgHBOkSbKZ>$GwloC)LMVMaSA;xSy=<3PDFHX}O@^;67Pz)Js7j zq50-XEqrt$&Y$_Zv&DA#)AP}BD8M<$I_Kjx>qpQ@|6y%hnx$gS^9)B}&Zg_-?Zxz_ z=EedY<>eWCEcyMPyY8YM~$J!bjf8Qk=fg6op*{A)6;Av>p<_@?Sfrsc(R$)h0_9?EyEw-VHW9ha0X z%KV%S*SI|-{zu`$2jb0}r{WyF{pn26@N8H!y&QM+Ru+M$l>PJb$0~2iF6114RKdRi zB&>kVFb~7u9$+LxFpXf?m?@7&RC)f;R$2+?4B7 z#vVF*+3&*^fd5j~Xy|T@EdeJL;3SzW88=xb8&^(xi307MPx1nSfSryR4F-ubS0r5u zvuvmSMz)%jD)Q}>&$A+uP32_WHON<%0{Sd zxF<@q^Wp@-dIzTD7U>c&8^x)@;t|49Dib4iR_aV(ex>Mi& zD*xRfj9`>2`cyD{`8Y~w{a0_)zwHDA=H4(a8?4JmcA327MpDva;HFJmRwoJVeW8C3 zNBfmedSk7wjJzX88v5Tp2dpqmXz?w_{Lk3DxTOMWQA_sMeXxIH+d)1d>xbp1K#CaW zQz!iX_nu^R2Jzsq)c>%%9ERYX;Vqw^hsc@NrrJwTo+putW;|DZIWlB}o3M!L)X^+@ z{#o!C6C4q1IHELBQv1?9_$PnW1CUO;gK@7%dqg=d%F98??!bUIry)B)Y;{_xvv8yRwDGgH_x0pGQJ6~TgFX0S zY6DTAMQtoPt6hKJcvDlqH?8Dmqk%?X%B0A_Fh7~A*7ElTXqSRwV10J;qs`&%AF0rl z=6~SIthM00cg-FLfg-D1AamA}=GaiMFccdaq52|OkT4HRvFS+Vxi8eexFB*9By=!I z;Ck0M_-Xyd4-#SIT0Kk>gI5_TMv~}#dUWz)FyDk{JFkS%TOJBsSz1l0mMJ$sf7jE7 z(dB9tbrS;@7hqyOoJW)la-DeeFvA8BQ{J{!}4O`YY2JZ{3&d95Q@tlo4jNxjGQTYD@y3=oD0qE*2RJ4N^EFqoXwp zn|$n~1Q6~jAw~mzVI;^yzVUM<_`*N~I$nbP_GUzjz!JcIDWK>f9V|~($BsC)%#%F6MG4l;! z+4aY!$amBB^=`J&3<03#VSI$R4HXVT;mKF2o>CPhfA*VvzNyf$zX?9u4PTLe)4v6w zj5A1x7S{LK^|V?hketRp8~b@rBThGx%+kV!6Bl*Yzqc`F2VA+BTbln_Qe55zciKK5 zVpQ-UC^y0i3t!0F#dKHfci)jESq>{kEDRlYUGjWvS5=`dzJ$UuBI=6E95X9|KSru8 zfmWLD%ctD_VD?tXGk7~~%t<`|SGN@I1x4%2BR=!rpCaz}1a6oIAE?!DHcSME^(+#Y zARMTyOM#C=j`pwn4bEG*9}}G%-JQO6<2=5(n1x~~0sKx=sHQIY&->YYGWwm@(+uGB)$I!R5>Ku~EO))$ty9rVBzQncF&&@-(4#H2UPkpVZgnvXA zsXTm3{g!bE{`EE9XgX7({kJfNGkqdn?&&UWKe3Xvsrzf9jrnUNCeo8fgslKCyI~LRawN`{e1}hM#AOgsmBBiL$gJwsi=jU*Em?hyCNPm)hqKU%8 z;f{6N#ju`4js^w>3RA-9j9&!VT#TP{Jt~_kT{mDo$&D?*cN|FPvdcd=zqn5*7 zNJ{IPLL``K{FAa|=1KZqs6MTHw1uT?WDZ}d++CGTxoEw~ezWZJ_XHo73{FgFSXg!h z4omvdyFQf#;!WsA!6TQpbqdjs=EyBH2L7MfRTa~{qlaLWBtKKLlv1-%x~R*2W=gy_ zk(L}@PmqKSqvByxEv8XV89rv)P-&+KALQ|jC8SsDdLS)1#%|w$WM<4-xZH2P?q43Q zSGNlyMuA~^>MCBsDO7%h{_ID%JC#)XNHy!oQd?EyP0%3CEkND^HxA6TY0)XXxKLw`F~JS<;AwW*@n50**+_pqh7vE8W}=O+4OY4co4P21mi;Y z-h`u3M^+c42*f?q=&d^LN4R)w=1D2mCRS^IT?{7scOn%hYr6hZk83d;M;T_k4u037 z-f^$!uxf2LBnO8`?5@YwoBQ^CUr&Lx#47a+h+qPYpQToCc$;qzkO-` z8`f(%N3S2CqFvitHxCge*+!R}Met|jVrUY`W{0`~vNLh9!-r4VM7`)e^0Ui+bIu4U z9e)BDr*teS`uaaYxtt`7Z*mK$5J8FPbRXPlFBwPFo@SWcic5}GRTcAewYV)3xrvX} zRm5Q@KP54yyj+IDXaGKB_tfDLrYPBCV9X!xzq#|Liv&2c`GkJ-#rX!>>);}w{j{3u zBc56K{cxw?xZ7Li+@PxC))r6o*eqC&NoCG2H{Wb|>?!2A3}{2KZ|iOGx209NoNmRN8YxaIH zd+Rqp?J2V^IjpJl<+L|>6?7D^wV)r}e7nUy4M^DwCAb)|zxWJvFJ4dp2cM{I%+D0;3}Flf{`oxj zT8i@Nlaq$pZFeSUQ^W0a?l_0=4f$i~gC#DcN++v1K#pS!F|U&h*B)zDE+Z-yN+-de zStMvMXZmc)LF2QvR-Fl?DD4D$$-|>LLPImMmo59Vq5K7n&d`_b0b0dHJ6Q_C-pYG} z{-DAtL3#SxnHA200I(LZbYlUSX-3B|B{+@A`o0@~Klv1;uDZy)hs!eX*YZeABbZcu zNq|lhT`>n3`*6GMxs=lo9*j?k6qkLjb)NRas{QECG)|m~iSeCFDT)w`3c%43-4MN^ zf0OW!=&j`NA2FN-sgxb|MW{%UzMd%*&oQVl(Mf|R;9Udsr`2D ztR1`kITv!Yye}y!PW4l^8s}5acTuwYaSKFi1W~w_FN8LbBadhED-2Q*VXf1Akc7@5 zb9Oo*FnsER83EOW?+$=c5}q;M%pbRnw#|$V2cIQ?>s~nyXp*U7F=ny)zY062&l4#* zps!41po3P$YasVO8Y8Z=CKobJF*YG#U)?E|-N7t1a?6=2st^-__>42&&G!=9(L1N% z#X^jXRjJv@EOHgLsqOSsLP&OSEdwFvfnV|e@;p=I$|n#@8Tv-y zdbnE*`S(l0ThXLGzSp~N8ad&bzrA;da{We(u2O*f~=$hk7RA@=j_yn)}-p| z#l@gknk0DNKE)mmYp)%{1s`8*EZU<57XWaSy%jpI!0MbhVI_^FZ}aI=pGI|qj5>@C zL@9C;t*ouVjn!5_$6m>4h{ebkX+j4Zo@zr3XUFp&gjyf-=0&0;j7~^XMl){*yQ)MGT_0lv3@!0E)1sFhM`*U(!oHcF0xD5h%*(w zg>AAc_5`-aklJFp+;K&kltdgkO+d00-h>17~9o)W1r1BA>K6Py^t!cX!0(Um%!n5Og*$y^Z_A~(5>6e38BnpWXWx(u3121|G zs@A(Yg~)K(mG7;2>_sr!3En)n?h)pD(bH!hSUtC%Mdz$~6{=~eAInpM>fepbfZ{E% z*5&_d0e)zq|+etBx5gK4VQjUQ?Z0_ zJJemf6*F?6k5yLoax&C&{as;o3fF#Pwmz~j(dGQDYddM$MtEh)mp~Lvn6F}D1*QAwdcyqh}=^y{i z%=9wWS~^&EXQI#XJ^OQ<_?ZiUYL6_9|H4{SCF1row)hb5)zM$2XTpEC3BGy9umWg) z?y_y58=gM_wP=kLuDO&ve28lT4&1yTw$!N@c< zz!vzcCwAo{f@ei*RqXjZlmslx9?etFAQ4pf))qEtI^64F?~p};QIEW$v&0HXraO_N ztC4%14CAuKy-3!`g;oH}eDQlnOU2zlKjgO`985PB_!=9Fx(OoSu`81o{f9jU3A}BB4$jGrkVps(~ZF#V{{nqTO9GM|Kd-XM(~kEol76d}>6+GKByI zgZFGU#hA)bVB_h2406wYc!2_pcTda_B`|kWjorVhfxy4<%_*|qF45+(ix!X=2}1gN z%?+LoBL=VOCV2vSFMz>>elu?#gZZDgrqi^=SC*JI+;O@vPF6!FDwJPFLI(Sou4D_$d zI+y@IaosmuK@Z8G4>vjqX&lH-L9=Pv%Xkyhl`QYi*Z16d4!d+D0=$1Z1WiIA#lpr}!g;%?`}POi0NXPy$ol?Bz;-bW1(Tghu=D8LbqtRM{AO49K zBJP`rlO1pd-)S;2a(o_=W)3pqrzqn0*`}@-tY~fiY>s}sveo?|geb_>7#4bxv06m3 z5DKvujcZn-+O+5fDic?vA;LzHhA-slePEYkOBj?jXIEk?!vE2qzy?e=L@BfPA@9+9$l#;D!mK%Ar+nIiodqq%W`dr2LtW&1-()uXzCYS?c! z=o!>d$L&GIYF0hXE~`J#MNc>w9E7MQQ&}jRd*41o+yp3;)WXekf^1;`TE)XWzh7ul zDmrX2NWr&;&KlhW7wSmRJ^pa=`+!{e2EiZHVw$Ww^!_lc5R-UoR=t$YqrgB<^WU8> z8DkRDMN=^XT#O#8nMA$=>j-`3UA|JK8{OZqJFD}2E&bK?iByDPC~DTps@8QD_F*uw zW!xVYbucEi1*nM*m0eHJhLMwTnVU=v0Rq*q8j;%yM2tcsM1HEJI$V#wfC)d~D%`Px z?Ktuc<^gJY{ z!(}+tOWr9PwYdkk2Pu9IF8=k5+jJ{8SQWi?+q2xdm}HFPJtQd0S{K8nC(8M$hi20) zLg(NQ#P_fHcOl`~Qy2e&!f&aM=hK}&yXi%Y_>&r{>?)&%ga(B(NopuKRUF>>ILN&yvu(GR=sqK6D)G4mAv&3zc2AS+8qi(Q=3wwH9 z7~Q_#_{Fc_u-!`!{jWfE_2i|lbQ@P0v``+LaSroAA@>Wvd9=PbtB&K)s%KA;Nmgz4 zAFyTmb|;(XG`LXt8A6E4;YI@w%6r!)F zhXP6*tSl1+odQf^56{WIMZB*jjETii{@*)F8-VV$CoX_k(c9y<51@+f7lKDQgr4Ni z7)VU1f#G-$fL0%h1m}*jnCbS{%4rb#zGF>^&=8V68wRv+nCpu^VI-_H`!;{+3g z0nJ*NuWz-TDLI}nShr~JKVn2F@hV0RA(co5fYsPoTD|Fo*h2sfSInAK&7Tu;mVi>G zrD1wQ58X@bBj6d{WKXi=Zm`}0w8iIGTx8~d3A+rDoi&ApWf!&@%vf8J9ghr&~p6Oe)doJQk%^k zD)99gA*bc4()>RUztRBPNAIThytktAN{7oaM)R91sG5U~x*36UE!|hI>v;nq&N2>m zCzPL=H*dUQP@2#&U7^q9$|=)1S?9qjC~MzXnXvCQ&LbIe_}!Hx9bP4s@S~hefqt%s zd$SJuay$9@7+8=E<~o^2S~jcwG&_Vd#;A!?Q`~gsU1>{{V5DQl=F&SsL`0N*NQ-^B zkGG$n15E=Tw4;a;WHYYQw5#v0rE#;ac)7uGC7+_!oh_%M>P|^dZt%|knMx=I_qbmT z5*2GW1>FrAsY#`eoe}ZzO*>Eujh(2$?xWq^OgvYf%-#_e}6P1FPRx z6qBk?ggPEau`&nY?VIcVa(vT1T1x)-iLMbtbR}AbyOZ#GX_9ZXDNsD@^f`N8I}Q_I z^#SMI!!zbD@Yk~ZG|N=BfIxK$hA84%?YX9_p7m98_>9NgRZJMA!Xup{UibOU#)ewj z%xa@;?%#yrAb1gn`(4c6i_QO$Q0U-e9+vmRgCTVRI&T2fruW z0CbOs_8*?4=m-aaeQDqJ@$LA1E-FHY1nV_P+5fv{ED<@(fk4{bOG!b$wYGf|&B77G zRDHxeYb$g6E*$l#S+(=b)#v*D8tTufW{qSDQFmWZ=`;^vkNMB!2l`sp2c^7dXEVe@ z^fAe*_*(kUv(81@a~&2;uB*z5&406Gs5P`qOZ*}?q*~w^==LsV z-I#0Ud&wE;@=(+elvFVf35fD3E_blTzaX?ic=f9j4LNdPLyYWe9X9VzFBlZFG*M54 zPu)W_l(yuokhti{YDJ|vy%TL9(w$ozMgIXk8#NaF<5LdVs8+nTsJB^-W+Rr%`NQcb ztXRvfPWf?}%O5Xj#0J-QoQ+Zt;r)$)!OHS+Y;)GxL`K%KH%WehYb9viBe#6Nj^p}= z4zUJ1veQYtu8iY334rqGto^UZ%?{rvly8y#L+k5ZL|^WO!ZpDE+2RcqORkQ|MEX|w zaEct7*KMwQS~u;O{u@Gpx;{&V9?T;fA$@AJ5)&eT{IrSSfo10fYodspn2Xzr>BtGd z8!$5zy8>LN`<&nih$8$K`VP3_xQkq@tWOKMN-GC&V~fJ~$IAT*_~G=t+QF`A!U_Eg z{NwK%s1L?pGWwz}IH6a&aGxXrD-srq30v9dp6)@wxUhz^{I>{rT@DdD9x%IF%a1DBXZ8$(EVUWhJSxsAT_RjfiW7l|P0S>0eO{c)i)Xq}$cRR+9Xrf_F)4O`;=NG> zS!8|sLf83gU)V`^0^J$^L)O@=(f>N%riNn19eWXELIxl;xt*P0NJ3WV=+B|{rR^&` z#JQ$iv-j@qmU3$iAlwr!V)m0J&6|tq`Ol@H+{E>br5kjXV4tgfgCEdDzT{;ajkTps z5xtj9(ttxyK}8K!U+E`)LevC=N>@9#Ux%&DTd&)<8ky(3f6$`22vO~6p(7oSWiDz3 zl)f*_BN&1o`fkU@Zr_!z+RMGiKiIXtALS`3+GS{8{v?u8$p3@n4`_gd$Kp>2QBQ}< zE-^8!xlHG!FlN|?sl99wjT2%@ro5Pp{|&odbdAKV7m4UZMRMTSa$WDj*bwAN8|z^b z*IGoGwzMhF@N{`TL8qiBGOyD9OSkbF6HSi-K!lEIXcX$W9_5bneLV?r?wcJwfQgj^ zRhGV}oEezlEQ9u7qj*84S z$0Ixo?tWVYcNtR+bR5tFQSUGGeeBlnoie`wB5rr1t_+wu_I(BHiS|=N8G`@ifASlr z#wNmsjSbpQv!^@Wvv7n+gN!2belkF!5m2obb!5n17ZAwsq8tD_0DmvplZb-d8pOkq zs@xLU^9^gj3@Yg1shHZF#|UCpp(S2-^q_aj{!F@vURIVtE~W@VP+u~vWNk>6WZJ*T z&caoV7n zu&a*sokv%b6Q!Xc^^z_1^jC}1uR6H!z|DEkpbVme7cHeq%_9q*=C=7ER3|B*F$26d z$>Kjqz?gsIi^N_LTO&c$IzgGAa?i6D*CHIrL7LG!s$JJ^qMvNiYPDd8fYz}jx$sd* zf<{+h0mv63E{`p{gwRAH(>nZG(U;;7N;57i$=oHl8_vuX+yeb~vnfXb7@^ZEB zcXQLP%fmE7=V~pYxxVjjPms125@bf6$|oQoKo-+lb$@xx>aB_x@d4E`FsXaDn;fR* z(h>`~iACR45%K_37xebM)9F%qYGx(*avU!3et8+mNO@_Tl33Otn$tIyUE6KD2J+s? z9FH6y9!03h=rG_pVgk{(gBUE1KiD?=xq$MRp#}u+`^Gi!2~4ek(9C?Evjj@BAYu+I zA*sSOef-4cgbDjLG&=7qKg4^+F1V`BL@vdPVV?UKyRz6l5ti$ zto9yCHh0h#wEl~Hx>@DX88uXR!1&aC;~J!)?;@?vX;LQ@PmF5MEqv2kj+~@jCH+x` zBfw&i&d2d`4NN{DTs*wwUwF<050}d2&lpiJ+|;mf+@Pz_XMM|@v(Z7&UvbXQ3&!18 z&wX!hp>iQ!SE1=X#(kKr*TAGlTLRH=sg-<7nAh*VE!82@@&ijfqKs)-Z|$p!kRZJu zssI(%9)|C`yN^cbPLv!B^}MOp)O23S$3d>Q=|0~YKRzQr(e?iI%Wb&$Np7;P4{HOs zNK*)md)KaUtMCQHTS)BHo|AeAedDk8GF~q>5n&Xp>KO1R)ND2|l0w=w5UCP2k$Z82 zvFmV8z24sZ3Qy1ip#NiH+iZI|$l5Wxva%QC=J$JGn$@Fwn)>mEuTR)@KDs;;4*cP~ z)YE1fZ+*-C7TMx2@^S5}*|!|`Nv+Kspr5ncn1&P-`I~4UjJ607ay#Rmvg`CyzmlB0 z8oyrw#uL3Y?_(qfzMg90n_&Tu(Eni)tj6YM-`A!s-`_&^7(W7E85xODL%V8fNZE8# zY#1A5J7Z~1*()v%Wc}A->_0LAJQk0^%vB33lX*Oqh8afI7u&P|e5GU%Y&dn6v#>%9 zUBZX2_!R76QI>(SIB3tSt#6k$E|Y$$709Cm<5)+^+s%w&?0F6QUO#d796vG;oguu2 zZrMWz_s+m!d1ixN@eU!c=H|way6*YrrfeOal!lRJ%m}|6pa~>+p^jjbd~GstkDk=< zC4XWrSSBS&HW51SJEE;fLdk*6@iC$Q)RsYuMz|ti)nhaqS1sa7ti=8_q_srBIGvDS zuvW-k!XK1X=O6x-2%z)2sZ*-1B^5oK8~KVztUtSfwQF59=a+N`wSv!7ekg~K;h&3M zEOqFs+5bd%bA4wd`m2oiOR$96*%?>}9~cD&t{d2WtOWy$fk6HM6U7aSC@6` zwVWbPbpBG@P0j76p^z<7o-=g#^2*)sU%0}xZ$2vg^l-f2*K z&Yl%$NPC0Ti=a4L$=r2z*UkCKHH}1 z5-}U_!hY8F!G02diQ*$(-y%qG;&7KfWaC}8MaN3r6y$QwYFPY4Lqh=UT+)H1GIC8Z zB_Uj=UH@gM1Q4oHh+d!Z{>Wp6?kwc2wdKaRqnYK2R5o2y2LMX~dM2Q=Pz1n_w=)vD z<=@5)E#SA?rQglJ{L7q}Yip;AyzH<0-GpF#y^%x>Ek(d;Zjj=!e;ALzVVSiWl>9mf z0}|PXY46E`QiP7NA6yj?dRuv8&95*NC7pkZeK^L?>_nUK$Kc#exo6JQ!rmRIQQYUz zt;;w5ng^`J!%*l6){>-FE3R18P}B2%&T*^M@ln&dbOQf@!4&Um+pE?4k^RSYp?&K4 z;GFE;=IY&(K!&x&Ebodi-TUvmzvOLR=ezxVmzj#i`c(+q2j+g$;526^r!{RIp{@5J zbGxfoN+bs&2t{9miT`@Dpjgz?S-$LZ)xm{&*A{+8f6(}-HJ#NQdJcSa-1I=;X8ux) zL1DM^w>|Eet)q3jwtiY}oBW9mavVm0$H~YE(&UfLr-01R=E)7o%bw?oTNQ6^p)i%5 ztxxwpfF9c2chVCA0_GchF7CYsp*Vxy=L%wa$`NY*3J9%j&UlP%J?;<}GUeQCq@#E} z0$^vm?hZb-rs}lw=5mh&nc( z?i_Zv`cQt&TePa#Vq3@0d1|iwz;hF(Us@x7u6^4W>?R~6e#@-kJzf2X2UBdDVmtl@X8&9=a6~jK5vqJtJz}+LTRW={x&`xJ_YV3w~ zGqKm2Y8Y4=FbGk->I3uCV)-I|9=(xitTsXWVkm=I0@N#X&$3s+w}^RqvaH)4dj&5h zY*DCGR+g5Jm-gfy(?#~96JdnxB0;@uw3q-you|jr{!zSoV`gy#m)#s zwtxnJDDuS*?%Ey9zaZ|?rG8jZDo|JuWL6}Kf#5&gRo;oE^PWKSWP!jy-<`8eyFF9juZ7y$4Q7fA6vM% zP3Qi4KB>{I7WKn+&M>u!t^b<^JW9LFOM8RVlK6P!pF4Tdduf8NNwg#=(ok1bq9~NP2zxXi@3nzSpJBuQn@Kq{{%EmbV+)1oIj_K%!<9 zvINmMz@dgV6eK>S9J7p1ObDv0n&<$Jt=I_XFgTK-;D`cxLAY=>tXVtnsKG+9#B{!b z#SY00wx>TD4(oqfGpI-*-AILzkQ4O@49O*>ywM=c2Y#%fA*dH9n8P>=pa_Qh3YCBD zVh;w7d16Q_BADND-I3FW}(2w(s`I>jeG2}5x6axf+ z@+Xa_p@+pXTrF|=q0_r-lMJ;ofv@Riivz2aHF1cNPWt3wqOSZ8q=oc^WJsZ{r%=QsEFi;q_5)Q z^X7`9agSq>@*DdXyLdQ2!xHo4q{w@}fnC>A<*$EovSbC=FQ!u}FM&M@cyC*zNdb!n zLC+sM)U(NWMEm*#-l8@L^71VSZ7DblI&Pvcbjt-n&o~R}^EH2p-O(?V?x^_4-wRxh z?rsGVm^HGl@wnRjZ{7~W_v>pKpRsAtCD}meo42QLCn+(-Hl4`+U#&eNdT{Kw^K&rv z5brSc#d*NGdEkrh3k^sQkX-^oOD`FAnQZL5Ny3DRW~9f$st>)gwRW&|9s(>zW-IM{mmQyZh}{^uWA zN@`gw06_O0BYoBPPYGWCd|Cb1l#ePSu+co08-FZ&exS5ONkWSSl6}p^#$sR5&_<`b z>`3b(Fo6qh;hW5vzWM`Shh9(uA*#WpoH{Z3wq1b-3(b_g;5 zNAeKbkdK5)A6R@7E4~Ajgs>GzH8LxCiW8Pg6tRtv`}`{R4TDqxsi^Tvi*cM*U}bOh z4)H6U61k$(9n}|7qG+)RSmiCNX3K(QZI;sgk{=Xse0PNvuj?sQNgr^;60SJ!Yv1T{ zRJRz9p7$CARc9z-DX36mvoJ3-Zl4KzqN<|(o$^YCMI$slCjz~{$JFrY5Apg>8P5w1 ze|V4>ENtHl3*GrYtRqPk7o_%sgQJhU`x1GY2O>8J#S#~X*U%jcVB$HGJLYm|M%0z& zo!0VFoLW+}mC4W>7Wad7@?xIgGWklxv^;K&6Ah(+CZ-aF7~W!K_q|}FfWAm)9o(cT zqu3d|Ocu$*!GW~%bZKg$HOoJYe8zt>u|Y(qV06lV^ToSEtG4|}+jL*r8=qNeEGOyW zs{@#RBvlzr6+i{i6#2fSMH6KC#tUhhR`nVZQddn1Q6A9VG+cLE_Dx7*_9txPs=2E4 zU*b!6a(k9PnyNg8DnC>8rGY>=M`fQ=Q z7s@Ayc4!6R^iIUqcnL#9Q7J%pDolqpcdq^=F*+DIK8n__Bd`~1gu>CKFj$Sl8S!v9 zD?z8j^)u`CJ)*Qqu&`d~J!zhoyB2m;)UZ&o*zT`Q!qLv{G+t{G%+tvcee-q86F&*c zxxp&)knSlqjx2;qfCgVL&J6A&KqT)Z_T;&-H=Us4(IYAk=w&lbt#oj?Y|Ob#{cI@YXD+&ft^O&eCz{nDi?b#N?$ha3^Pv_KBP@1BI9+~Gz z!ct*FBiuE=zggF!Y?7%_cj8Je%wRvyl5@K?c67XUb%B$oK?*d9o%bW5i+BWUZVt?QA;!HZmV7);vsq$L;0%LL&c%kwuW2ni$;a4)U|R zdl)hOfEs${<1xi&_+X_CH%~8K9^~AOpoJj&;3*-bBvbRiqgjjg?S-U0V!I^Iml-Qe zHVBV`=G3p~vXxc+O%U{!zpBhSCJ0;u29996>^rXmf)&hZKBV!b66v}93DEAyZpK~!gFWn5!>&cYlR6#Jz)S+CJH-!r|RZfzdplwnR`hPbWNYPI7u&$P1X(QbypH# zLeqrZ9H}e8J}q>7AX|GmDT|WIq3>QYdG9g!DR?oTt}1NH+-);7QznKAYdyt)mh))u z+^*dKZ7p5*UG%X2%EkCpQHo+^8cy?8E(&wz_4iaAOQ!N&lGfG5oyK{&{R9DRvf0DG ze>~lP?j{H1Zaxi7t#U-tdhx^eCx)aY(WNFjX%mZ3p8hhlkbvk%bh9|7Ys zBHOqp#>v&7HsyXm+w@55>j<7aiaWakOU|2u5beath0<%7tgLcd$3IJ39+SyKIZw)4 zf-E0f6>W#xTmr;D)tBC>?BB92VLo1Jz71%<6V(L!fO<=-?m&9?bCQbvY-)zUVaEpb z%1UO|H|O<1^Blohj?aXfQ4iXR90^ra6GHH`C5W1+I%6_2+stBOXg1_YaIz!4@Dva1 zVBG}zIQ8%vt^5+MmVr?W)|%H5!nQ#;Wi#sud6tndd3DzFF%(mvI)nV`XJrT8UZqe1otkLf(|UX8|i%0FJ=N zf*YuZ3IP2Q*>eP!6o6v$cQa2*Zwc2^GnMt(hX?WCCGF)HOH9Fm<%oGEP3&FI_tC&Q zCbFsYMAy7uYrQUksISKV5~^&@6qrh5_O`aGFGJa@9|v)SsDq5GBnHr;Jr}voGgaFP zTsHeBKI&mu4my7wD+RBrKmVagpxFfuYlCK_?s* zUH(&b|KQ3+-bWctrP`M=Gle_SCvy1p%~)ks ziSL5+jw`10mi#C#^3M|2-#p9wx}^#iioPDl)nt8(oJNE@YCYx~nVY=rz+(34y~E&CSI%KFj) zCW6)`uuw?L)fILm4d%8cYCT9O*j3~TO^IEHONA1^s6z|3Cg z+{#ZELq6`$UbN_miQPQaw!vw1axpkciaTf<2*aP`@*Z~s2Qyv>x(&b!PMk-khIax* zu7n=k(RAq^h|!fE``fUYTGl>qA_`0jFZU^oF|D`lYv>b5DMxX3HbhJm!Uk7ex&qb% zL8zqI3qCZPO6wk8+Z`EJ(@}??B6>`wsgPIoF0$bD?ytph{ICCrt^W99x>yj1T&re2FE&{yN9^i_ z-iR*XJHNmD{wXHV)pDDy&kR>Sy{O*@0jl!=AUb@IeCb`&-9d7bCEX_@wl745S`{L z*G1~(ynG)mq!iaLI<>|<=B~Zzs`igP-vZJxgqwk7h)^ME_T!VxIeID$-EJ3~2^jw! z(QyW+_3zXidfM8ac2)nXr3vqyA%%*kp^)svY&F3tr3;3q*oVr;#5}Rm*u0$A%2x$C zrEBLE(ICoeQzscSAo*j`m=Skb1yhL83?lLXD_%xzUg-j9D2F}PEmOH=8F*}0g}W<$ z|85*l`bRSx8gBCU$2*;+6QEELV#-FtB)i%#R*F;=oQ{Ndy5u_X$6IzU3F zBlDZRbXnjnc)djDUUTU%uyk%IcFVeVaf^$}8b>Qj@8Sf&K05f)1Q)6wVgl557gA_Q$#hrCKHA`s?P@h78xj{@4W%j%F#W1%^Z$4LBQD8mw^rwL8HlsYq-It2_Voj5 z|1SMQNIGe=Evt3?KE~KVAsC^j0;YA)?EF=~-bp*dEtunNj08Ft?;tCU$J!MiQBg&( z#j|_w$uWd+8PzkABc$e{ul^PZ9!iq;abbh*UEO+JGBBOEQ~Bp9W2f&uyFx^hW{l`~ z;I&9BpZoqcM65$we`^46-12S$>Xeh`9JLbu0!ZS<3>N0fN(XybNz18#ZT-UZ=c*SMoGr*xAj4rm?06N3jAACWkw|QSBm zTxa@qzvKHuZZbQ*hv=ZwHBYO7+ppj^Ug)u zo7{S(y0Ogms1m_tb9o#Zt6XD}&q#R;8i1^ch>J1F(T7TT)c(%Fv*X$QcCtfv%x$_p zTQvLFdGaS;jil?z0bHS-hvZ+k(Dwr$?ha1n3BWINU?cGK+M2_st9PAI*-a(ay1#Rx zm522V2%FJ9Cfm^V4fTDa;xj<;-6bPsy}CX*NnCuuy>TBGHbXGI(GoDC%Qkr3R`LN< zm``WE=C>bKcu>jW{Dw(w`xm=GK)V=FnkJp-wv!>J#)b_w&TV_@6yqJA!^+%@Jd=mK zD+fppsLzT^(1}|<8Erc7;9WyUhccY>bfz9fY*5MAyj0u91YB5&qO+|nxL|0u?9C%! zxNJVJ*FPG(I+Fexy5~6)z4l@+n;nF*EjXt)Py?AKMm$_B%8t4SLoyW!mG%eS>F|+6?w-90(n8E;>p3eLqj_^wW+PFhg^6-;Q%!Tx#D>0gon}f z+nIOyiE1^AwmTN%U`3Wiw)*A@5@Hm&Z!j`y=$j$r(8;c+J`-7vRwC;}#;_rwyIsb+ z-4`va6nzhD^UjDFvAg+V@!~XgcsJR|qpr#yhd$=N?%-SRpf_IfPMVLyXrM)@98Jgh zb+nDQ8_AXPi*ApWNVV#L!0Bvud2;_d*9KmX)hv`?sUOV?q;F?S+G^u7Vb|}c^vq)~ z4jTk1%sx~$82YOgeX%WjmawNky(KLo&~9f?y10gskxw!9h|zffL-(sqgQxCHm?}~; zxfKL4>RznAy$Pa2#im2Zkv@)vM}{-gs#K0kjOU{zk?`e#Fv0KcUxR!rBcMIqSsthc zgF8b`)Z?6hb4lN_?qeC(pPvAnrF{oii__H_Khb{aVHf7@~*GcInY%}$U^ zhqK$I?L-$fG*7H%4F`q$gtx7v5O}t+aVg~a`2#>yc*i}^@7bYS2y|~(!SbOyJQ_}Z zXWc*`@mKEy>-71lpGd48A%oV)7);N^eD9Mz8!Ara?N;`xN8gwf%9uH0(zpiVZ#`v*RbaMxpJ*5Z$Hwww-iS^5%lh zFc|dB7LDKSeh5-0vK`0F60~Nv3<(h$mN<~F8`bXxFIMmfvIDZoaUdi$A+q>fKngLL zZ{<$@6Sh;PT>DH7EV%PosU4y@?|OPG>Q_l3!j{x$>N*@f6b-1meQU&EDqDB9*sG37 z%5I_Xb{jo{L2o!nE3f_gv-2S-!90}9QCDa$bfA1nrrK^!&6+}h^ zzU@BmK8XJh?_No5!b9|~& zBd#n!E%W>Vd z9bTt`F}5WJ_x%JRPN}dpDvPYP@JepRen4f*i||q|94woI=IK%)!wJmkBA-T+%et;rIx1=fyvNC?3+h#P!!!}`=kT0Fl)cA<#fN?f=fd~{kTiwt69Vk& z$4JCmMIi9Dq?@LwrVae$rgYgPR`*bhOT6;QtUi;5wb*DZR(9aL?S1xOsi`BgLJo@) zGNbuL8$AG^Eq;snID+2?d7IMl(>Qq)4uMWl_L29;x_Gvd{PIn-j)udD)(`;AiU1YO z_^<}nL^_?Hw1;djt|Nv{yqxIPf`9Adzqq2r@E3ex6xvO(Y$#sxp|4VnI2~_kaMNxw zU(KJ6mi8Ou8zC`5Y#>fIr;Pge)2W;;fteRc~>W%dU4+~$g&A* z%CFx#?kEcJglL8Q=S+qdcFeHfO9nz!`^(0O#n3|hAqSy!|1Zf!y5`M#HWeS$KYygW zV_rVrOoI%%j1N}mM`cUz&V*sw$qj0bcA_S_*?zQ(d@}Vp++yWF6`3lcJZbhFs^qR) zGo2s$AD+H3JkD_IdL}j+yGa@~wi>H(W81df*hypCw$a#WW7~Ez;WvHHIp6=eu4m?% z``%bLzdpU)(IrJ-kRr3=l zR*V?dThef89Q_3)7)Fdk-Tv^aE#-sOYS8iqZa)SA87l3=_41=EHz5oL4DW@|K%#q8 zyNzne(J*|C8Z@l7`eX`Zt@9(^pSL)}zBQ5o;Z_@^-0R=UnhMAT?pp$Z41qhdf+ z&EO*jVLhfilXTrn{BeFW>@|e|9WNO&ag9$soz|0(_|#p5sJ)+7BAPLNYtbY9T$RkA z`7T1L*<$@H+=q-7eJUMSa__V6MErD=>2|rKQ0MVjv32kIQPp7eN%Yh!b z!U_qRaY;lF2B8b())FB#@-6`{k^FieYbmOvX!PXAJwhV^C&6nJ`@BVkk_WPcnE&n7 z?}E~ZR&8x;Km%27;KOg1esqkBv>PFkERsw$)ER*t5RUsMx`~EtM=_3p#>12{6_Z=?!8KxP(&F2Rj4R>rJ<;<+A|}gEA8WG#DAtFXRH2+02v27 z-g0nub|y-e{k=7({di0vogRG3Gtwkq8Z6`O+bJMeoTPM8wwXrMOln}$gpkhB!QrGH zTb~)fp&H-uLU;*iUC4BADF}p!6P#fs0}$XwAf}4fn-Y+X?F+Gk9rFo``FVl$ITl~A zcvK1!$XfbZs$>_gck6|m@-$w)McuQl8r@483dY0K4)fOwiqi=cd~`2B`DQ|+Wmy(~ zeEI()S*(W#2hB}QZPhOVIUO3u@Sn`ta4EwC*t?!f)O3Anns#=?E}ejKO7^ZK>n2IpG>s-Sw~ zakdD7uX|(96zVzDn{>p3fOe!?^)PwO&W_$z(W7D4z@yu?o&evDWKn=q_cyO?59qPo zcV~+b=|__`sB8#Vi2nAA8+S}!yTlU4&LRlCi}k5L0(~jJXkE$5Yb}CV8EV1`tdz-0AdJ>gVq zqs8|YOi=_eCV|u_ibi-(;zYkqj~yE77Ao7<8!w{XdE_L4DO^0}$9rwF$7@G~lgaCv zL+A?#MoP5?eR;;>VZWIOz4d&a4=To_%o02v!BRsA@Q^mT@Zl^mMDN~F3?pZix_r>R z0KC-#zZHeYT<|a6kdw}6eJBZtxw=mY5C8~_H^f{lt3ji@C;2R~NXY(9WWvcTZ{GX% zI{A;Bt{0Tp)33L%?>^IQk8*z}O2_N>H?%UBj-!7`L3|2i_~N?OL7`P|Y*9$_xZwo0Y}mDJE0z2E;&I?X7hP?- zfoEkp<+JIufdP*Z4|aG+Ku?HD^90!DN}IVL1&VMKkEz>8_gtyhpGKfar~=?fgGy!c zm^n8!;#M*KHw$3z!jg1yv{crF**U0=N!bZc%fVOY3@UfR_TG8Ipp20*U3Ta@%p{9|&x|G6I^L1zKE=ogRUUA4mY-J6CP5g}7B9O=lw>)$3{; zId-U6m%;llwQi*|CedYm)1t&Wj`i8wrpvcWs_HJ`2LPI3V%vJ#;^vhtfGP;9p3x`V z9&^1b?_8@wYx6zQgCvbDp5FS0g;TQi2vv{WFZS10)K%EKNV^xBtJ!tEoI4}B9(3LK zsXaN+ivv}cSw4K)R~op-*8x*eniPa8LGY9*Y!Gx z+tTU-sxiJI2(<+k_aTj!RU$_tix7kyFfE6+hWbbYA9@IvNryWMTrSv6M+xe1OO?N3 zg;2uv`*m(xF4E*_Lw9Q_US~BpX0$by}FY? zHAlo*V!AQ$Rx|N5V*1x_ z`M1YvI^E_M)%d-i8NVe^yNY57m)i@&k$z2Jen@Z8Q`b{#DJW=Is)JKtV?O^%_Taq5 zwJHfszJN0R*I)n{6O?tomFV9$;iz#m+i&eD{VbU{RICp(q@c9w)0W8~(UXRy5W!U4py})%>&J1DeAa z!#<8SzHPs#586<$vUK?aVpx1f$mm<@eo&013TE;E;uxh37c<*b{JZs89A_mlf}v_a zUcDvjXIelIny~U`Q&*iu%?!E6Z+A;hYC4X(b>yG&x!U{B7PQqSey}9Gt?Fc*>l%Bo zoy1I-CykhTn!)-i(OrL0K>5s6ls+qU$>~jnt7q1+D;gLZ&}hqjYD{$f+AXu1z=&C$ z>8tP)v#N`+>#=sSBNr1z=TU(R2WMtZ;ZoeJ6Ai` zPeYShN~7hEo##K9==WMqr+9 zD9aDu6V+AK9i>zAQhaO<+`G6`@w#G~-R^MxN&DW&kgC0zrkWxB-nJrw0QmQ(DbZnT zHM#mI`K(`52A~)aZOAOP{f}3A;phgq_=OEiFy7h!Jd#~V>#^O^e?R`aIypHPeIF$apwZ;AKYL) zP{r~TWfK_OdysuNu$mTkzE)knKKQ&Bs^iA??nM&CP*aH}9-n$`&#TyR`AC|~4+f$2 z`wP;3+^-|w21F(U1~0Y9P=-UkT~5lzlyC^lb`>;0sPU)*hQ;;LK_f=DeoqHQIce{G z&einys5(|uvN>I<8jbYe>+_5Bz(#Bu&oKeW z%R!mPboT-!brW@e)tO||>PJ6mMUtT)T2@xoiG$_QHT9qxEbw0gQy9k%#y-c@s#2l? z&?tTit&DR_n8#AO-kqP}NuBD#teG1xP#jKozsj;Qwo%V=FFQVkWKd0YS9;SK%w=3(bb{X*h$S>lA;naIBTcOASK4S7>J2+cEHKH~VZu>t% z^g#Iny&dKZKN-@+L-?Z!han7rHU8jlvb6CxxPF~PCd?o&3=wkM{OI%*Sw!8 z*b%3VIu1&QE#nx{VDrNo@ttzQ7OpCt2x9GfKW!mwNo~o(zLEW?B&OwvlP7Y(44}zy zp|6Mi_cO-!xTbE$RVUJzLD6QJ=3|F}8e#FZ?JYJ2^(H?v(p$TB_0sgJ?A*!X!=fgf zHLK31&M)Cy*GymU_GV9(2^|?LtxI?Aqa!!dD#|z0k7e#$zkEmjihIy^t~EZ7VJTz( zcj`WVgXq-X#tRk1{e!o3qZh@Vgb6VfI_iiw3^o(do?*7>#DXj<-IZ_^!E2lhCi_g& zNZpey68Jganqzi#6(?Fu+8L%EEvb5Cr5fFqmX-)TZ%BEfWS8AigED)g7PH zBO?gt#KLv^)$*i6Pg#5IDKE~j1Bdifc%bo-U;J8p4jOhOh#;C$_zo0=BNc`IYK$Dk zd|m#PKviGfh7@M+!?lZvin+U}&h@pNJ|RaVq2sPnfGUAp1@OnTznFq?9TSjI{bCge zhQt6&1?Bwd=4;TF(DZUGRH3bYIIL>y%Auh2X0`e1D%eJdRzNAy*`zIGG5|63(=xMB zkJ&n^0DhXo*w52$6$@wpL@%dpYsHd7*o{$?j`v!oJ6rqR=pi;^D!mDSbl`Jquib0* zA!p;e_3K*UDW;nj6U2h^-6yZg6fRSu1QCHWc`J{Ob)lI>dTtz1>1`vMMJ zNI)T_Xi1ia6@)2Fib{eT^BB@u<{Z@UZT9Jg|1U;BqAk4|xU|GYFgk-rH0y}Dy~3DI z8H>;(jTlynp+r{8Xg#&+5-O{b0-NWo{27Bd1;$ybpxmz_hT$!sX{AIr=hf#K5-T!I zAl2`wUjf;B@-PAY=-DrR)I`!z7eojO?Wx?vu~t>A%hqf=NtPsz;MnWXus0k7*w6i_ z4txm@0tgOTQYc-I{JKHy@<+)QutQ#bFAhlz>m&KjPoxQH<&I?f!LB@dH^zfd#54dB z5h;n@|AX6XQYRZ<2|)W-f26jRmw&x_v*uV;SEC2-OwGRBNNxC?DSC@pr0U>O(pdR3q=BH5M+` z#M_AfZ2nnz>o(#At?VM*Q}cYAW!#z>l$d^mx_hC-u)q@0z8V8PT_O3JYcfPhWC5+# zm#JM3x@*mDP7Yk*u2*5FCjbW(7SBXB9r>5Fs6m7x?IK)m;=ycYM)8^Oq4bqcdKto& z!wblp9I7~VFn^5CjabdJmuA&^y1qS-ru<*@8XK_wcsgP=%WSm&eRez~^&-x^us;7b zqqENVHa<6AGJuc2*u;@$W6RT1X(EhPa})B?y|gk=$PKVrsZ8-f{(G%uma`biHS;Hn5Zt3K(@3MW-PP32ZiD7P#<-H5ZE~U2T{M zN3p1JGgvq_-ZzHxxDH^0>YJ>i7qA6Y3Kmdk4w)VYBdYorn#3~%QR~pr0H&tnLyVxt zV6+|c$|fZ$*&m`kZ~X;B>Kap21Jtz>*!xO$LP&qH*twy->s;b?{1S7zHpfH(UH z`Iaq$wZ2d1_3Y8j+Nb;Qdl8qaZ6&K}!|&@p1NSZ#iC^%H3haCT&XN+^lbb**+j>UY zpSADGckAy#XeKhu91CP&1yRYIiSYG85~gO4LL$;dwGTB0sV!XgPdIh2y#q@#*MAkF z9Y(_9*0HQ#HOy3aDyi7e=7!G7b6nB|`O`!_;{J0l_Fh0a;7#k=34hOnlC%bAbmmy`Pwf? z4o4F#?s19Ptk4HhYajv6NR&`*2kjm0SGF4aEf^gsdd=_Jz@?POn&u7b8{a1az`>u2 zf(c#8WP>%eXS>gM5E{ATO#Xj<0uhZN5qp&v%vs@jed_`N%9`9-ghUS?e{1GosseUg zJ{Xl)$Z-C}xUiAOx0XyVPbDQIj)ZFy41Lmv+xz>+^>4c~W!LS}BwhzL3mc#z)|}Yk zE_AK{11p>jZ&dVvkpnN1r#0T_XnF1;(~XSb<=UJMqh0n%pEif7?(OcG_vhg$>I#?) z!<>}H?vD-Fe&fQWfG|gsswzo}pWg4h0$nd}YPx$Kw&12fIPsI|z9-`Q^~TAGZu26f zQjE9z+?IUG?=~o;Jss_b%O5_2Y1mc?T<^qmWZzt%7dVAeoG26MIj3Z@-}BUm@&EY3 zYgtXcwqza*=>c0(2KRR5KYSIwZWV8B%?_cd!_hSoGL&&V(nX0kG0OzeR;StznoPzH z-J>vshPokDZj0GvenMsUMg9_j9U@g>bGh;`rxA-w)XL#|B|jh1MBAM+`UO%zae&Bw zJpMoDlG2J>18dr(LGLw|SKv0jB7!Iejl$SvX;fdWqb$2KV~U`tUX)w`0BFFFhxnY| zyK;{T9ATRryG;yU|h(j&VO(PlkN$$^v}vu2t8a!;i@@ zUoSFJps3Os=w)_tacRn#KJ@uWZ_(K@r}vW(j>0cleB?MB+gV=?r*awiI&U(mfB+ac z3P1P#?!(~B`J?a=OZ93ckGB`9AonGWLQgJH+BWJbm&gxKZoo-f&CB?eMLiiLGn2NX zbr{D5DF|c^xyJma;{JIeY%meh<>=ZZ%3xRL`_g-|O%!oclDdPJqY7Ik1%F|)@Oqnf zCuhPRiduMkkN;oPHZ?UZTMs=3%IkWW;307b@3e(VEo?>URIg-PorZAw+|%KHXbZilVvx1 zVDv@U9j+trYBo*Iu0PJoQ@Xnk;$LRFF(JkOMrsP!e~_$O>kgBdbzj|U$mxI&lnG77 zr1#?#81tmJE0v>E=N}8krI)Mu=&E4QB#FNJ_4VyR3u-k%u1fo1Tmz9`|2(RIu#-wM z>*_jzao0x=fLqYYIKy9w#<7Fk@>3ut`hLF)4shhx&wg%jY}2tI@HE5TqlGKWP4Uif z!HhC_5ZVjh3ojTJNJ8$!JvR)~x7cO(JiaOaylkBDRnu1IzPyTL^LhBzml*j3rNsy@ zAZg-_q;*Wa1Pm$(6Z(fedwTU;UAmdpb1znvrr`-AMbdM0@tkQ}wF8cHbHq(btQBKs zP!eGD`;9WSMGJqD>w4!0PAlSmHc1NE{V|l6)c+)hUOY3w;TmZ_mfsiy3|000^Kj+t!dTMY<)sRc zOtpwHDD|NpQ?QL7STVpGc${`QZNWxw^+4gMpM8y{UmJYUzlEV@DyE7|AmoY5^(Vi) z5TIL#g}!qBF_`M#yQ^elPU`(Y7ODRr&#T;+2?jSM0s76y&eI<+C#XI5$Eeu6*rZZw zKZxE2vL4qOi!X~AyE=4E(Paf#SJnFqF~H-)&BztRd~ZI0sh5+)W3zb;){zE#Q>x`g z%ikG#+)thu1`7Zgea82bZ$zZey)2!CiM^xm@ptquyAdS&2R>U?97qvFk!WJ7M+Yf# zCH;TA--fLEnJOD?5rq@8^(K3&X@2c^H!lT5VHKks`k~|W_;0?W@GAZ=d1jEX)q7C_ zW3UwWdH(*2TFw+a#)WGz>VFbS5q{|Dg<5#hUY+)Z zEE9eZ)Va3s_So(h8@V z^hgF!L#POlv631i4W)dU@GoH# zou!GD`e=cJ6Pi}dnHR^PV;w*Dk0iUBLYU73Bjo*<>R$)t#|^L%uM&DB7JgH02J0iV zx*szuMLP9BJbJuNlf+$189Mz8_==?X6zAN^Eh8aU3t0 zDLv3g_5kBI@O{i3>$|d`8P?B*#_i*nQ2ws{O7-tf5-yc8pU0G*pYF~%y(_<_0($El zroW*0eH;JdX#bx#1;N~~%Qf*2w!igyf8DOw&^!wZqJ}(2FBsv7iS6lX;WU_-RZ$_= zgxvZA@x%Y{XQGXzq)WDUnPaEU`Ps|0`nV*n*{k>0k#9|$2xJ46Fb!M*^zs4~Jbw8) z$3Ld0I}m0k*?w?($C`)HT>(FH%e~!1&(DX1$DP72@-2;1Ud?6|>JWt|=^*=uxx#b} z#t0|YiIUY-*?7_6x4rYFj1dEbqaawoyhS=e0x&w9qVXCKBQ|}iZ}`1abq^mvPq(^3 zg~VBGsvTAC$zwhvK5I=RTN?P0j{7;?Q+GZj^!Y(I9@?+~*HLKGL&YT^I<5a)Wet_= z?mmslPIg9;3-W33lNggn#w0Xyo21>~-BaNawcm{EL5GXzz7`9OpXV1DqJ8t5w^xdV zk!Szk|E(02RaBY`W|PyEcb*@$u|o{%`qA@|wCi4B!OL>IcZV-K7YEjPH@rab1@|ik zR+fiZx*b~+eJwTJAtT;&x?v_Yt&DyL#JOGeT}rZx8$C-;kh*p@BK+t5;7!4VDdm3e z+S_9-fJdZ7NL&`^S6n#kK@MN<=hog|`8pX5r^MQSU8k#T9@lt4>w1-XcQ6NroL`AQ zr`&1jzQ-C$kd9%Y-`_v*-wfR1bY9FA*wWAh;bP0x_$`)Ey>lgL>Q9VtK+@r5|IQ*2 z|1tn;E4ZY6WL@YB=XQ3&#uQcl`(iG|>#Ut@77$;HzGr`D$H;abQjbMyWi3#r(7#mmK8N7H5> zm7Jbq=X3y{Gtn^IIy+i@oA)4Oj`We-}(=KMJrvc_a!bo9cCJ71{vHqng)V!L!KkL{DVS*zIAeQ|5d*`<|&IJ71(->&t z^4C)Wf=op?0-9c`E{Qp#{-R=R+T+$PJ1u+haqB9ym=dH$S?ke-gx5XH+)mqCm##K< z1!}0iAu{9VFHF%)p9#>gx5kdChn31;zFz8(JA> z;Np#!q4RQ?p9^Qnkq9$tBAqp;tQ!J}N`zvBXh?i?7jviqp5(<66iWnKfGZjOE7d2SUVbWK8_ue!iQwA6o|11=iy&rl?>W& z6__}9rGr!crRAB#L-T(uq~HW$xM&n}S6A2gqID{dh4(+gz*_rlB^FWd8x|$x<|cd9 zwEzQ`Sv-y0Egr}A6DuPu0Bxz;e$%GM{V}3TK<6fJC}D#)zF#OC@)f2O)|ZXYA*Qj} z%QkXBwlvGl^VkijSu|HA-xIg8g!hHde7Rl)N%G51m3CKNS>D61+bM+T_*)-R(Vj4K zHC};h$;_wi2aFoL*Iq#+==g-=r}65^zX!pyG3nFLB5lq)^B4{5Lg!Y^?LZt3Ta`z^25j!*&Lid8aOm1pU08;Sl#36~~qQp*2= z!k)*5bWL?8OC5MuL^d8ajT?<9D81;^S|x~YFxxEYWR3Mt49l>D+n>qeTDlzj?-#4r zD@o-$fvf(MVPv5l>@%=3QZ;zlxDt@Z^>{6z)flR6nie|mUc2FBWcf0b9c?aN<4?tg z!(;>M3f*|JMF2ssz}GcW!E*@X$*Vt1`IK|kBbpGs;zSmDMj^=O8xwX4;z&~H2VClS zzfQX27cyKdKrQZhbz8fLNPo})m>*gn?%)N)eO-Jk z&8N-4fCqyPJ4@&alnKX2YwTtR%FB>~VM0gyYmw_2eN44=6Z9DzzwrSP9$I7`em3XS zivR!s=})1XZ#H2Kco`#;qk4_xYjIf^c7us{<7)_lDF9wCL0LR3o+R{5s%(5d;s=3_Mf}AiHxl(Nbl2`sH~$aKuGCi0>~| zF`uI@maLuetypiXd!$vKO)q{Xo-6kEW9jy1Xu$tLGPq99;lpC&@kOx$UNhHDV9o~3 zqu(85(*l?__F9P5(Q_W`oFmt)T&S%RfwN!W9cvr)XTvR2r51W~4E_vqh z^*UtU*kkn9I|Dt#Dgto%)8`f!HanJ!BZ4}5r-KyJ9mmFOgt(wpxU}?wv-z>m`&gfJ;Ht_6FbxU=Nid+xy zgmoqF)dMFcRb%^o!{m%Ta>SRFmI?mCKen#_jirOXAIL%9NC0mNI%Qb2$x?<$X( z&*}Xk12_BDJBJl9vt>d1W2M%wce?320h2@hPQDfI8!j_4(nJ`+K=S{4H&|h5yVve$ zP-!yaWnGAz!Dx`!(SvBWBbJCkU*Q^U7p2bAJe9@?i3Sz8NM@$S|H67pr;}w1v=T4| zEBR7&y#PN65iM1P*`zhHC?SXf@H6*J^$-At-xKq3bTzoWRtlA{8JYfZ8RVn2$jedt z7x=ac0;Vb?cMJ8K%Zc=?b9F_-Rf?-Zh02@ni{cX0^>23>cCL+eObDa^#$Tk!P#u1S zfUd(G;KqmqSGw^0Avu$^IQ>hFBu1_<7IXA)>Km0*!U+rnM=_fgVBgyQE-*s&KMWxT zI%@NS91UL{Dr|kx-++U5Wz&{L^);fzC`ZO1UBsw<8=vYD zu=(~OqJm+{lJcyjk)qgQtxj?}TKlWM0{1J~n28hmwCtBp`$|9z;V__*kGc!iD;$K* z1G~SG(eL=l)9!p1+&%X(*t7;-&bKpDfIPtAGb|m@6ls{R3Nm|@@%|XV2mlm!U!L+L z(|udF7H)=__~H2+`o8V}UXt8hXL4<5h3gNq;*S$>j+G+J4kuTLDA&8DunG`N@O3_P zdM~a8y1DPYp0(?Q zlB0;f%bfOaXA^-@m&dtSBVE@g5!1>nR-=eh9@JM*U4tCA?t3v9QkA&>trM=o`ZxI} zPE7nGx9L&SDUN8Tzkj<%;-xkH>lVir2cWmVUm383)LGDTiji>G7QWIoX^fy^N~Xf+ zV+hN~812rDNT8 zh9*>0R1DDe9G7Y6cN5QO=z~hR%28`{qMg}UHkL-;acT>qRbc=Gjyq+`eji5EVujDm z)f+eCjGKtofcjo7e@V!;b(Ad}FHLxwt$DshdCx_G!HkkiT^Wn2hkWbjQO^c=moF>! z4^`GZ@ND|i=gR6QevAxvHuy~)t3zt<=DH;3jz5p;HfiJMR}xLZ9WV<)y*7S{aOnS! zDhZ>;{5jM6j*$lwxa5%*!MF;jW()k8%Uvofi)1O2mH1{&<(sVqZM;3!GXtOFqcAzU z-|Fryhr}$0i4KMbnm@wjS|D2>0q<-l(Ebn*GQINa3#w7PB*YO%WzCDep)P|cqRJ3f zlb0#{E+;#n*%Fz?g|W~!wEVsw#H*UM)ee>5!JWRbXw{|(C_s@cKjfC)!1_ARJZj8q3h1Vimi zNEe=4@zx9iCNobn3`2+tzTb*;W*97n9b6_5n;OJi&y z%@p^y?H^IDJc6HDXDlS*$-a6!I)t|F*zmIt5X#1E&R>`3(_SN+ ze3OUQ3}0w6#pn5#WY1T-9@uxJJ%2wK%a@M*Z}#LrkinJ@&yO-ZFJpT`tW>FBM78u* z03ocEF+uZsM<;wQ241PB_rac4YCPN2ZoP0{r{|*97>G;6;CVA}-IJ-0(f^8b9QVHd zAi-g4m37;oxjFiY#40VIw8CeVeziqjjbiPiMEgJdwMjjguULfX{y5KBb9wV(pm*gG zR!%HhZW^gxe>pGGlBT8vZlb@SRj%^`X!kUm{Yhlx#VX+62@ z1WwPa0$;}!Pz|?Yva}vM`odK`%EUWfkdhTvOp@3XWaZlpY%(ImG@|3fqYRCioxUdB zym|9q>fJpnH7(3Qe1~)3Dr{7nEzRfW;tPWS0Hl|e{I40z^;O<~e-@V5_`sS;SzO`? zHUEr}KaQhtS)J|K3}py`GCPx%L~!4U3n*eQSAw#J=mr9whWpp*p}V^tGtB3IDF^a7 zAAh;6a|>n{zdW=2vqDvfhouGhtm+d#%kxRdl}dq1{Qr_u9VUQsi_nXCZ4;imwg9$s&{gm^~1X?tx2P46=4y(WQqdw zw;RwJQIF>pxINI-N@z497orTp{X$kms3>BIQ%o;z%hFBe7}grw7D|NN^$SQ1i4U2P zMAL*nSHgz5Y?Mk->oo(}Ak2UovT>W^*b1C~UtHX0>1Xj)9FW2*@{&CFx7_%U;MfDQ z*U^{^NL^Z>)Yyo=#5DY^BS7_i=-U-WdT82@b4}WH?f@h@z&^vu4;0NBG*(LfXTX6h z- zqb5r0b`Sp0yxBTS7iiCtBXhsFN2tJ6Ww7uUszlj5t=_wZ9%a!83+m^jamoR197UCt zG|x|RUik99m*@U&-=9+f*)A(!fKwIc#{-D2^X=dd zwgz8umHoG256bH&jUK<}M|A!x?y0t8H}89qDOWQzc0lNzPL-c$?fK~72accLIobJF zZbnAz|Fq09zG&V@SvZ^=91r*R&+l+_CYZu!*HX1!32ZH#hi&CQ9B3 zbSx=2(usBCY&`=>0G8(_=@ydvKmYu5>k}J>I{R>VMHo5~aI?h)Am(}Xp>rU2Z4H&5 z*n5e$Ua<0m?(HUPWKRNZisyDt?PUc%I-EFZ0nso}55kM0Myq>QDB_{z1}ZwsCGq0# z+rTOCD+ViX%1@ZyH zbA_p!6uRwcf8DE= z&-ry&fxzn~nOCmknlJLf3z)pVhG7*LZrA3yvs!cUSc2sHq+~|4{c5+;^q~rlW&{Tb zN;qse&#D}xS_F3&JQq0^P8d!4l*2w3ByzyqPrKND*Te)*9CR62(n!_|&jdA{^;@yy z)<*Mw&3x~>F;o#miKT?1a~X1ew-P;tV-7 zVOjrc*oX%otn)fVk#hOvaBkZql>5Yey-zWVbnwTT2{QgQ3Ua6@fz zaa{vApn8jU4qr+9lTi3LfArVY)idX@YvWQXRK_%9y<7|hS&Q4(<7kb$>V1&ZQ=S9^ zzB)qpZV&wQJkv0)`xwcF3^}gACaGuF}F@re8T`j}WynYyFM)yJ)jK0sS)gs`tnHX8K z>P0rTP|LS6*ulK^?LHs9wEmE; z3;cuy_MK83S^>Z4p7*Dek4vAF@qh7yocG*lQo7m_-iJ5r_(P;5T=%gA$DXhnbp7j3 z3;qT8h|uFuq|Pu+pnf|#)xDcWb)QFOd_R5Zr>{Y}j3z;xnTjzZUV1*QiGJ5f`B|O| z>WE!eeo7B}cD;Xl*tt__!r5TD*8!6J2>e_1ysVY&>Aiuf&C7tlV0DT`uIm7h4Ev{q z5S*xNVlYOweH&fRdA{O}0K=a~%IZY4n1IAO${qB03IyPwHeUY^f{ScS@j`3drQVi2 zzr8ebSlQc6FU0*IFh52}#5S-rD;h?_-GtH4m?Y(Tb~dBA?!2yIfE!cQ)&S-y8$x86 z2>D!bovoe5+@^g{fVoWQ?L3zQkeK`@$RP$dUTJyj)9^GaxBImQ7%NP*2EEHZ1oQQN zg)NNO8e?4R>psroc^e>qt@z!JKN3jY0WP_KoE6uHdBWewEuQv4m>NLWdH1U zH>aLZ z;*WN<~4?(P_>iL#`K|bru0u6ktSr0oG zsVC5l0*YZd$mNKv*WGcb>R08aw41jU-=hVh*)jU`li|rJw9Lv3FQSJ%HBSsXJj?df zxYTAWQosm89Rd3NL-D20Q6253cTAm;-AObW#jfl)*inBHVT+V*XyQ@MbJogi>iG#i zl4|)E2^|TqX-#_`C~9215#8o*yrPfRV$J(hsNL^V9D1(5;%gGCdhcV&u#rS5r7}ZH z6%2fgX)?A;jZHinD&Wo=t>^-@x|-9|^)^93Mb~P)mP>GHKJ+Z!df9i{4ODU}Bqu83 z|5&>@^m?nX<<_-;c;cZ0EJ0DE*AQAr{Vgu(cz*>=2HTnWL}BcPRN?ngW;(yWEa4M8 z&oaCnZ4BK`z}8d|a$C!uXDXc@WXY|7cC$WaTkbYD-zq>V$Q!toPfXQu|%# z-vB3+(OCy0Z%=h~vyFsAoe{e5nNbF1YI>=QHh4deFon(Rr1tXi$4@~T!0)}pdqT1Z zYKw6OaVT(B?vHZjc^j6!#=$pjSQX9n~L?vKG$y zn>p7VOX8UTT;X>M47_65LWwDNt0wr-KuFJ89fw@!@7&gpTjuPNoaTNZ_&d)Mn0L@&laMp^eiyxk})M0}T)B$}qa;?#G z_Kxsr^)x_(l=e)~TVMG_5u zba%6-j+4<_2Lm@J5^d>Z7@En2A5YF(&Xidl{u5EVKh5Qv=K3pZ+P;`3@w0z|%UNF= zPFm}W`r(PZU26xp#ElRW_3=qlQ?2HGnHy9j!xScrq$!!B>n^9bqerzN(VtvWkHt#a zotx)6hEAQ!KE>jjX}@i5vhj-b-c-YpEp?RnF_Vxefvjblo|0+rZ3*(>1?LQyP)rxw zk&WAywB!nz*=v0d8)OWc;{S`9qH~LjEuL?ti%t@DYSg3yy)?t*MX2p}U+0@PO;W&+ z^bsj^FF;4?9vxa#N6Lh@Ec^#NVgN(Y0tQGlkA33m`@yI1c#|r=!-)jT3MH!ryXJ3| z8IlO3U*p-Wf99EfAhMC;_rd4Qym$iRQETq~`?-t>q(U4?n!(6p|Fzx^$FK*IO6+v? zufY)~rW*K(V?cXC4-;f6ye7nd^0wegAu?jW8;}VY)}RHquVL>d&35*N@Edjw7p_{3_J@pFSc?R+psTA9T(M!bL$>E-#kxv@z;4a|;)1)&*58amJG_p>uG zSaRk*Lpx`NpMk1&{6*qzU-)uE zkYB#Ky1r?di4kZPN*po$`k#uRPMr?vXLomZwT{I|p%AIm{KHGPk2yAI!h*y)jPj9T z)4|Qy?)hv}=HT`8{b^3X*M7xfd4k|lz5Tj#neX?Tz+U;6SXt5rZk6LuS_jX#>^x4Au3B&iv z^@DwcLta2v%uo>$7YcD{KXwz-3gtIa`IITIk~?>Y0&UT=x$I_)AuRP*LUfacWo-tM z$ic#%pJ@5iY$60)Q48?7HAZIinf_H#G!YSr8%@v4_mrz^uXT$mCr{7f- zP*BQ7@plR5Sapx#9j;NV9uqBo^tYQORw{;c+Hp`2nphtF0*BGOI~Vq^Q+ggn&whD3 z@jq@i0|Xp?&I_ej0F)W9+-b59SF2f7H6V=Ta|Yo5uFBAo*sU2)%383 zaqQVIxVA{w3kAOHyJ+3CRdfQUxXNOKR{x1D0dPRUTLIB~$z!e>>BZ{$EpH85Y&|g?kVM1Zf1MLka1IAqFYw z?ruR!xxvk|5KyKH_yl)UL8%OXOIe)P0edox&7F+`a2+?!@(cztj3gFO9ky0O+90O?%Zf z@XmY>`3_sl9x*mt*+Uoz#SAgd`y?GesW@oQ1KUiXil*)pE zcTs%3WI8O&UP;l@22t-}j>xW<;TF)#q8%cfiJNJOc91VR_fVKxkZE#n!YXJ(($QwS1!t3Mu!bc9B?KC!+3H7@Vozi<&`Mw?@t>KQuL=Wvbve_Vpx2nN>;72Gh1uS@9H6|C~GCc{fc zi|*)>F=rD=K;GBf*|i_m>Iz+%;HqoCp52)mFvT{_Qg7+Fae2Nx5ZZJgpYaLn=OQ^( z`6NDY|0L5dp@7KZ5f5XM-0Jyp>kTvGND_`Q=)JgLHb==E0fGG;@vmDVV}Dyk#|m3$ zbO~KkGx+k&ggYfl+6Tv;2b#S6bsaDsQuZX;&N|yGgzPgipks$)R=?sgmA#2|Z?x8~ zg4R?ovK%MV#Pe7mH*c$>zG3EVOnQt4;(T4jZ>k5)?BXLj|-{yMdQ>TExCYF;fCwpiNjc@Hx-yMnc>FsBAC z_e#8}m)f?>j`6iUymF-@>2#l>!ksAS7Ut7c>Ks|eet^gPv##$?>9ap{&WW3O2^(O6+=zJJYuLMjjpMdK^jCu|jKf@fuh-kVuh!SmBEDBT z4;Yc1qzTRzsxKP%jX~Wh)|IG@wcc&XG^IeMFxG-TylyEcV~qyFGXC2$gXY|hn=A!> zm9BBBtf|uuvyq4~ss?58l5;9NWpd&0=cn(E+uI&5TgdMLRVWXNwwR(~Uw0G~8kJQw zZV62+*f>yb2s)bicc3QDHs^ne_=X!S@F76r_*1c;*w(d$qir1CuXOwb>*hoR2mZ*2 z{RDg@nx1YzD{ffI{`~YFrX1X5skDG%!-m3xFTGmXX0B;z90kYralHAKc<)a5!;KpI zLayIJR4D%`4%om=i_sfxumMGr949L@@TlpWj`r=?GynN#+q2e-<+VpGdX68casqB= z_xc`**L*+kKHdN;XI2RR2@vRFFxD%f+mrYAI4#d$5g@X@;!$g4gbD6f!ES5mR}17& ztUh5CmI}@;{EbOIfqv9)7(HJ+GX<)OYI6rhRM^y(-i< zKZZE^Eyp;+q%>(QpG^NBw>j&gC6YRLvg`+=%(-o^xXX^nx1k!Xh7REinWAeRU)DYR z?QVrNx3dQsGyC$JNG*Q-*_Cik6}Yv6Rg6I4K{ zB9zr2oHOLa?ieCL#QA@7>lau!TqxM0)kE;m>DA)~ep@c2z9Uvx9CsmUuEJbI2Kt^; zQor=xi@*Kw%DTBiKk?aln1g)`7M=!yqO%0w*SydWJes?l7k1jErQv6LD^Ks=o&J== zpnXe(QEVY^Q+)qT-jAPQ6-!of&CeWiGPbD!(My?SLm z?)}kK8$V&z1m8M>b=JP$Qf#3Nn4;jxUp{f_TfA zvTBqr+Nzeu;21g%l)}G<=y5oHkbPFB?OL4o>g!%j!H-T!Ou(JfFtESzKpe+6vUwyx z-l`{#S~_;0PhgD;=H-jLRS*JpBlUzXzd}VEmv(6xS2*<`f(rKsu6zULN#iu4zCIA% zltZGPYLR>zg!+CA&0DHIkG6}wM|eSs33eP$eB^_2QNYP!x3TZet}bs>B?{m+NIO$m zpM&h8`6`sb9vNR8-f9KjQ>pXJ zv3343j05(4mg^56Q2^klT^xv)%cIfwcsUCa_<$3tB)t9=cm};CCl+ze1-G7{L}7^R z{yNK7!w=Z^5}Cf<9Hy-dNz{E0jtsr<+U^TJYz5>sxqmn>*C2nlv7>1KL~kt}IcD9< z0bcwBHwoD>2@c!kjk@DCbMEXOv)KW|P0A6>wCk=Q%Dd@M9AQn7XArLL-Wc!hI3uX( zMFF}Y@krUlbEInOZ#DSM5#g#&&NgjZBEvYDd!?qYNuQOOmX{Hd47V;XEVm8xZ-Yyl1)a|XMs_p@cAVJT zXb75>dQTxA010rifqSJqcHi49!qtDJ!n*ebKZOH9zY^ZTmZP@!o$vW_hnn|{TssL2 z>w6w6FaKB+D-o$1{z6ISO0Xtsk|X%^fEkdd6nTWh#__H1-`EJOZucI ziv4&|!Pm;q9LXcK^S;kvDLc4ocBrYyPB?D;&7oMO5coHX(aYB6KgN*?EM>`(WI0UN zaSUTT!fSZ-xBd@WkpF~JkpZNOOh^I`E%nN$1W{;8?KcXojQ0xw)8~tWuj(aK7%WUK zA2SSLu2||DtyBt+SR7rdw7?Ta9(#xt9p#8UAY(nkq^|yqUZ`o({j>4tD5`2PGe1F8 zK@R{_%?lGzizrxAeq>`35VnqFgt-`Gtuq~=Y+Q+aHlCPtclBmFmd!uIu5zCrRY`Gd zRe2uY6=FdG0Kszdm!nv(QqpvI9hWrKQV$>$!1hbWWq$aq!|~ZUp}?}7RNxbDY1wpN zBVPvl*2{y0Eh_il7uE9VEZD~aDo{cPW!oNVYHzx9&$gW;GWfpt1@P>JokM2vY(Sc4 zmev9h*Y(HBrw}?INR&@{>HYlmrYpZyd)D=9Zrd_;OknDfWSC-!h@wQ}!r(F=z_5>Z zf%gDO9R0P~agi!ort7dsuR8h(0QftGXP0BAJTVSOK|Tv1=g!`@ycG^@q+&5rkZ-9V zr^2n{jELyNh+oHGsB+h17k>2Pwkr(WMF#F`h)|i#eJX3K-_6R_Lj{5eTzjJ0&yKe@ z4B{@%(5sd&MRxlo^xw#mZn1VZyqQ4pipk*FIk9tM&$w(I-}YCU27-dyT=o#I41TVh zdF#Xg(F0-SfTdqwO9tqkEdb9s#g;k1Y`V|q=|b7^Z2I+vq+#IEQ6T6x;#JBqD z?s>dmy<8{M`*E6oP6*@6%BmMSn)K{qEhus^{H7m72-gJQVMwq1+Tetn_jlD#<|-Dr zod@1W^8kA<&M8*}f;&aJ1l^4xU5|%T1lvD=xA{#t;3b%4 znvm0#p(b~}8RM5=@=1tLr&UuF%cf6_ggGxedP>-32=l;<~^>M zo0-EA+zTl%V&*~x01t~_GoFUpJPF$|wo>zOm{ZhAknE4krX0PD1?`Y~K{4qsyDzkD zd^fZ0#uW5ZThF}}fw#fS>US0~?|qYtlEsRLvM7=%wjBcY!NhD+k$-WzqZc#uW-9SM z4UK(|(lYh$KcQn;zKi|)EkWN4AKNaUrx^Eqp~<5wHhA3sQc6&q*_t`T)QmIj!kSszNyHtxRMYhlix;8&kLHP+-X_n5|u2{=&!^bO_pEg6PQo|qHs)d9s!4sW~8`} z$Wz&7*st}cNCK4Yv1bVM3|9&Jm>FC0t85iKbWFNuC*wx5sdP21TmC0rbUms)Etfi7CD@tRyRkA%B3u zIDy8V`Yr0@)4pW)*xodU%df>cRKryVkPqz1*36*U_!(qVWl@)oN0&4hB1vpEK?C+> z6=Sny)gWPT6DP;77VjPp07S`zDe76LT=*)thwKKL61Dov;~K~5*}jXYox3ll^du}s zH&3eFzB=zH7hyRzC9EQdon-04}h2wp?1hSk;ZS8RQ$$AA%}I=ISwUmRT<_ zcG3Gelgqj4Adlb%Q{ZlSLH|Fxfi|m|qLZBVdJB94%u|<5zn~A#DE2y=2~~e?zlF+l zFDZ0TW~X~`Ui_uqwrE1#D1ZC#`iBfxhj#NdUor;lxVezp(#r42c*CLJyeMV5gLoLg zMw8TEpG44Bp3;wZ_-&GiZGkfi0N+vdVN!H!^B(MJbBYq|y zsqZ0Gq*zD#U)=`$-s(?0fe;;JnZ%2{$|dxHB|q_aT0hJgQ=ND-@9qpFuy)+ zBp$t_>(qVDsNayPo}$0bc}{94$po@5sQ*mySY=PlPLiG7>qn?0!r*&u)#PVzN)xNE zx6pGuiuxXbqG`ExDjlET@?PLkaKtRu@NilHY^1fI3kgdw*`1oZl3e})&v8G3*NC{f z^O~E*lAbVri@Y;V%thrD&%xvs2Ty3oXg2t6WPTGn2M2CwWrstK(6P-F=l6RU0K`_h zj!Xi{PkMiXzgM=OkWV{*Ddu#?PK&(GQsmH(F2Ve*AJYko;7=5QCa7^XB_)M+xZYuF z(p9B@3$!l4>fn|OczL(xOKvT-IOSE~Ku#AyO(S79t8Z6z{b>^RdQg9$Nrs!~ik#y3 zpUe$fI$lnFu;(XfIG7h$KnZ!alaOXtt%!sw} zv!oW}Wu8LUMQ9ZF2mmngmxvtAkt45SbBqdW-H5JqKU_MdAZLaQur5A8pSUaxx+gK& zaR?qBEXu^(a6D^CV#u#k?{5>OR%X!>b1^sHHjy<_;VlhXdjb3wz8zutIXckmfnojhmgGgg}?X&CC915mvQlQ~>@*Hs+(NQvI}6K5dwmwkU^ zA#**072A-4PP@lDn4oLa9DKix;;HsocjC-2+B7zw?0#_ z!#WTi+~p0yIz@giJtKxn1~NR071WFo zY}1xAeD`_ve?BN13Jdu&G{mMfYCLdfQbY@y_?0y5yD{-fk&Y1 z0YU7F*nBZ@Gt7pZ^5m}kKRg2J9g6WTvYr!wpa@)Ax`a3Dn-0x;;LTcx+vMP*pBy6} z1}(L#muVgmra6NG9Y@bHpjbm@G_M4xzG0p1I-T9MQc&T+o`dOLVf}pxD2Ul(yp9XR zn4!+spgRA2DPOi8m#M90eAcsoEpNw5kHXZ&-y{5h;N?$pb(UvE39b(|Kd1215;d6I z#?_BFur}5>D!idW|LdE_1Yhg35*yXqKZXFHoLxlELMU*sdNSPFTHQ(VKH{pnJvTS( z@}ANn7uc7;2K*!hpBotin{ciu@??m^@1gw3>jwjv~Z#FDEAoWakYk9xhFF3a&H$;AZxqml{OvQeVg z$dJ2OPU@4b$jk|H!?cKErX6=h)wcAEPUS5!Ax|BpjmLxxF&@j@nsEv#+FFt_2=Ovn z7iZMdx(EFBzEwki^8}wV>)IB+ZFfpmI ze)3mPuqz-i=7=QL*I^3X4UE)y9WnbDloJJY3`*Rp5l55kg?)F{<yP(V z3qtWq6r0Zs+2e$e?ps(fHULQ{2hF;ORE%#KEX99gjlB3FIL@mX8yHX0orCO)4R1t@Hv!@&g| z$ED`3Z7UygH;Pmc3L;63?Y6%P(;>@I!I~TG8yX1Qr%?CCT{j~(pl*$fh$z8dYgCnJ zEY@|;XC1AQ%m3II$sLgzF0uX^_NosJf~hATB=)uibb$9&U(Nn}?@V7&QE}8tfeBn6 zL8Z{tz`MdXA~PfYbmD-vEf)l1vc2MyS3M=0qmV-zOg%6J`3~omMo;HMhjO`FFO3Zt z`F^#-rS?0~(3L+@+%?(#CgBNOhFBU*j5b>4N0V?jBi1GFP_rg*9TCDa;z7$ z^#t6k)>BUDjY}O#5t}?KIKNdVGY)caM`Fm?8L6q6=~;{A!f%&gKJOM_8CSB_TX%& zZV!F4Yd%4KZbq{p758Uk2DM14K-B`Dl4ZJ_S-NnG55@c0yr?!=Ey|tBfdugvPxP~@ zT0iwZ)}Dsx0%v0k&&N0aXgdr$fma&Gd9Kt8_)@Cj<~{%g>b?ehT00EMI1WWzplCgo z&jV^bbqElV+s1TCM09P_Ft58A;A+^L=Yjgp=Z0MwvfC|gZ=(Nv`(sBdzS76ASl_i} zd{}G7LkL$H!bb9Roge?mX#+>w7KB6T#we`Pbiea{&mu*FbAe=o=pj6fm&izZZ8fAn}* zhKAoTqaWbeDHYOtkxQ67*ZI>E7A6G!RI5jN+vK=MUZaxUU|*D9(iw*p6k$_>Cs1Q@ zo{_eiI#D}Uck(Za2kz3{Z*ms*2Q6K7k+|P;_5yD0zWgx*a-0p%+evan{pMAtPGG^p zK|!W;bgam5#5$_5%tb*BE_{J^f9akgK1*P>CL~^lf$qpE809ZUV3rhg0v ztX_t1F$Tsz?iAbep-a@Kyxt%E*#7`9+Wvs@ePv}|aQ_xLFlRU*&5WD-%`ksG(wKoR ze-8c$szU-jT;eH~om(u;<*l<>?%L^|tIi^;-whVYoBpE+af?t*L~6Zf3?VQhg^&6M zytS2Qpsc5;>D@tz_BNYBpKH223hMid+GwiWrKP1;JSYYbUz^fQ2|rWG;5*PiXKYKw zz@Es2Qsjo@ks49jNxEnK@&_QBk>)$-5kAn)E zNKVwg!B$H*V4dw#mrE?ySycA&eh1Bv5*n7rDR*I-UKfii{vJ1#p!A$EoD3iep(CT& zh_UB47hX7ky$B^1zvE2Q%ZJCn__D*#XuY^RiW^*{$FB$w!8SM(ms0DI5!<@?;gPKQ zFcBQ=T&L`&T~Fh15dG!;MSsf)iefh-EF>R=k|a{+UZC7x)roXu$dqXeW_lqdg-^FE z2(O|Y0L!MX|I7_6RsZAJ8|FaD_vftdX#CHd&)M){Z2;W=^jlL^Lk+bc!YwvV>sgr4 zR(qSGdW36M^JoX$N|f_ZMnsX#7=4;$9#m=oXxbcm3p9i5F*P%@)s!wz93s&_FYC(gepta7?&MWkLB-(j%zI z0&af0b7%?Ku3GJXE-6ngcP-jpR(2ewqcaO@yLrLHy=lnrZ_n?Jf4vvAU;hSODlu$n zr?4}wDD59Cj*>1=ViTqqXg%rB;6lxvN{b*SFluTEM@ zQAPk7Wd12;TSqDoF?~Mne|sh{FitjCcTZFc$eq)z^b0%;bz*B<;=B=v8#b-uZN1zw z@DoBw|J#)K9o$FkPilpk(Oq{h+Dff1ofkBH#kvo=OFQ*4jd*BzTifg2O@=Byf_T8+ z;rRsRb-+n1%1b;AGGRM2>h$}MPY&=#mU=aygjf{$MNt{7Q+0~nXI9+v1A1=M;h-wi zQfKSEtFP}XZz6Zb#khmk`Y=@{sgWJG*BcAim>Yh86IUqZ)>UyakH@|^HgLwk(2(^( z(;)9P@GxISAZbF_=fsWe($b>1i3Ua7jH?9VVO-E?+W%k~6%0n;E;vu5r~z4$J_n|6gc%)&%dm63<-8>w+h z6|LeGg)He#L(Tis@bm2*DjVM|^w@Z!rvMWxv7L5}h?aZ-j5<^-sDb~E(Xq+|>$eUs zj>!!uza*gn8v`j1usma1gD3?~!6k0c)+1sGQpcr4h9l2f++baz&4X{;aJ=A01#>00 zY)oWnRM2K5V?JvFu|zFifFp{f&)uer_!^fhLzdF3`Uzc41(TIm;G+{)^&$FV3W{iH z6O%@-$%_e)3G}jAt8P*h;o}0SFPe+`ksK!{^2J#$PrZiy%Z%HYBgwevm?g_ps5E32 zeeFfJInVfrWw}7L!S^o5l=dmu8=vukCM*yJBHpW0iCzAD^UY^(^w~B5uJ+xk*zmr_ zpidg~p~M2d&%icsoTrAnKE8bzkYG+V*Jg3m;H3OoZ!X&Eroh5|;1PwuAnR(VDDdX< zQD1>Z+0ZLuKPQ+)w_U&t*bMHLBM5y#6DUGO^5vUleWY%3tqlklK0Bp*ul=&hu=iLf zbiU*HIWRMI6Eccs1uaO^=fUtUBg9Y+vZ_!aESggGyfl7m!QFj zr!Ni)@kK1GO{MF=hdbp7|EG_4eBHsUb;^~})Ubm7?888|Uk`#3@f5mlNhXIljxP=K zx#yl-on390_lGazcHnG@=iN3bR;3;|j}lmF&XS;Si3K`GYkr}~b1_orXp%&?x{v?AnH(A#djA-t<_t*2=uQA| zCJ(ag`L74AH$9$eSRJO%)q#PCB5^TiV-MMnz>B9ls$zk;)a?tQ^X8eXiVEorr(LH} zMEPHNJt#giJT3~^3rT+T?cM<$AsRWYS-L@Joi1rK_Ar+OtD-s2Q&#F5#u>#0BKruu ztYQoaESeZcFn<3_>-!&5Q-8WqC>hAdj|Dpc1l4eY)rw5ST&su`o-E0UHIJxag&rs~=&^T!>1)`OOPvEIAC0zRhVBxpYRPHI-b=Tw9n zED`T?ssOLn=l1_q^D>qyS5qbD1+$t#gTwR%c}ltZ>o+y|+ub2O6`UkiZUzqP4SnvyNim|OL0fwh54rb>4-wBsi%|3}-dnu^h+Cnr5a`aCYuUsX!N zj(#g~od7>!>RLCM-zDz*6)-uH`IT&w)ulwVzp#*jP6xB>QIQmX)l^nQ#PnD{ZeafJ zJ)Al@tB#lg@i%y&xS4|WJ%1dIlEXoA3;YC5=<8@{g|ZGiFXfnA^9}QYJ36^iZY%nB zo5^^#n}}|{#}ls&EN8^v{d@_1?ZTw#8CVGmkEPHL4wc?>>S9DQ#(h#)PXy{u`)c=pq)B7;*y?jL$Vd39smg%8+2L6pn5%&d8gEBhKvmlu5EPrXmp5~PF7O1m z?zuW5^*8c&*0G(-wVwWR(U+=@a==}ovojYyL*SpWz3DIFgEOI>uOyWfK^93&%)<>1 zgo}AYi)5S%q@DNj-{Y#fBwNk%sm<-0i)xL z9NZroeOlJ_N*ZJlHHQSv-qH_A%0nJ93LE>Mq|QyMRd-$wFaB(M8o8ABV*C2m`LD0$ zY*i0{Pr9Pb&REq8)mZGH|B2|5KMC~pjfixSx|x`Bm5P+b@kWRLnn{+@@!z;3(l(0P+(MyuI z_te#Kv&6iPwy;~~{I6-5LTnZ$y?%6?bXoWwzlfCuo*5-0NUuoJCCsl(k~NROja=f^@3i1& z^==md1DcMZ>1qJQhA!9JgrlVSI zv@)QhYTul6rD(*tNM4Svx$wyMTKjnJL-%gGE#Chn;S(txd@a0IsTrw7taBF-f~$gg zEhWfPaEB-!I>hUr`U1cRT0W1u?O30}?UFoE-pavY%v???L4c>N!FnA_1I@`=ey^#3 ziw`hJ_@YNgMcw!7r;+{b)hTjKkexz<2+<`8RR*iA2Fozt#w9rxTgFAr{OnJafY}L) zqO$g&VOI8@!_HUX%!o*3Sq8$m&fZZkO69kCe`7X0o|4Hj5|hBJ468Jj#H*qzsl@=< zQ33V(p90otfi8pHPq`x8{e3DJ@>v(ij%M;3PH%cAYcDZw}kBED@ z8#-I>_%Qn8Q)tGr+x1Y^*uJiZkh4F^mu;1hpH=YYTg2|opO&Jv7SC3?C>#IF+w+Su zT+!zp+;u{0m%f@V* z_-o4~rkA|6cpRWpLxjyP)U#G;K2PyOR27xvcqPx_qnvQ8M~Z!V&l+umFs7Q3q9rpP zqvsX!woqLl`_>lSShFY7kJITex>@VEi@{^O)K5! zWB5L+pxu|3-&XLf!y*)?0uB5UCElwm8|n6=e)kw%gE=6RTI5M9EzOm}iLO&!0(=_l1J zceeIhKlbWsfk^=u$rOI(uIISm?*-;{xgi9?ZK%y+bK$-BSL23TeXODAjbfU7+A#K) zo-|DNl{CpK1QkMb2=zoSn`D#YJEES4Grn2g5i;mgW)GBMK4k*D;xc$LMl!Lp&}VTDw7?T>-KC{E*6${To>V!*ER+#l?T+lq2ItwWC)@8< zDV&GD`WjtBbN%-GODZuk)N6eLU6(uU&~niLbY)wJtY4Q$}*Czidk)x&{`(h zpbW>p*cn>rZcuuao{$3_F@5RT#8O&V$rr9KLRhS$Hq1Vo}lTVM)w=@_-o_1j(WEq~1RoK*bY`h>UCaTFP7jqeA|LI@&dnZb;cvF5mYqZKGY z!9S804?V8KAWsOctH!K&aVzXHz2O;z7Gouhb*WFTdazTv4gDAP;g1?M-|ciy(^6oB zdz-WSIx7t4Hpgieaz+lFW~8<(lA{lnV!W0h$z}W-jslbVFALP>+$VPwS3JIlbU9`J zaR=?+19MJt)|f9<;vuMJr2W5&sAI^)w$teu6e2-SSG1AW{0z5=t+j6VQ;!7i!vYD| z_DZV0%EMv$eW;nbEZMbSL+TSB`RTny-Mq$)$gmQg9RFQxQ5s~xC-l9m^Yt2GVubrZ zein-g&RP3X)D<_?r zsyKd5kFb z-+iOLok7r;s>2u4M3%bxU`!Da^?Eh*OepH*krppQC1;Oo*guFl&=EV|JBdVX*Vx>% zUQQB5o3!@sdG#@3y8lcR^OGrWodu@c!dJPxkXpPi{DKzsKi0cRdRWzqn}+7)cAyhC zDk8-ZIHoiebsD65Xs?v^kqKqGA&P7IPo0BKNwIpGd-Rgdn>I?GI`EB-FE#ZQ)xNlr z$pmfT@@!Irz+VKes9yFEJ(f4b%Y5Y~$y)IoLNOjgsi2USXy!$U9<-XCxEYiG4t=uE zs<77QQIvw+bB=QeMvZM1cvNFu@P}b_b+LRd2cbB%P^!%nHK!Uk_;<9l#|aG#$*ZDL9tq`IP#kg0Hh>bq~s{-3@LH{dVl_@lMI6)iUD6zwOGxWY?TP zL`XqNEESj3V>2EXxvK%_Hg#7A3Ya>EjLSH_yh&es2X2KJ%_SgC)p5SJIG#elsK2cT z28we}$pcWSgAh9-WQy5ds$gO7{}<4`IBn9e2oyUEP9^}ObMWJXB7}bzd>3i@F9UN; z@D3;T0%y*wuaT#@c^}uG{)OI)(-$W|Jm>Nvu*kLU+OFUR*=8sa_D0}fMOjq zKHu!Wx<2k%ILU`vt~w0Hkia(OzY)2#?ouO>y8LMsZs!T$%DpktW; literal 0 HcmV?d00001 diff --git a/NV-Segment-CTMR/docs/finetune.md b/NV-Segment-CTMR/docs/finetune.md index 7625d6e..9154533 100644 --- a/NV-Segment-CTMR/docs/finetune.md +++ b/NV-Segment-CTMR/docs/finetune.md @@ -1,4 +1,102 @@ # Finetune configurations +### Step1: Generate Data json file + +Users need to provide a json data split for continuous learning (`configs/msd_task09_spleen_folds.json` from the [MSD](http://medicaldecathlon.com/) is provided as an example). The data split should meet the following format ('testing' labels are optional): + +```json +{ + "training": [ + {"image": "img0001.nii.gz", "label": "label0001.nii.gz", "fold": 0}, + {"image": "img0002.nii.gz", "label": "label0002.nii.gz", "fold": 2}, + ... + ], + "testing": [ + {"image": "img0003.nii.gz", "label": "label0003.nii.gz"}, + {"image": "img0004.nii.gz", "label": "label0004.nii.gz"}, + ... + ] +} +``` + +Example code for 5 fold cross-validation generation can be found [here](data.md) + +```text +Note the data is not the absolute path to the image and label file. The actual image file will be `os.path.join(dataset_dir, data["training"][item]["image"])`, where `dataset_dir` is defined in `configs/train_continual.json`. Also 5-fold cross-validation is not required! `fold=0` is defined in train.json, which means any data item with fold==0 will be used as validation and other fold will be used for training. So if you only have train/val split, you can manually set validation data with "fold": 0 in its datalist and the other to be training by setting "fold" to any number other than 0. +``` + +### Step2: Changing hyperparameters + +For continual learning, user can change `configs/train_continual.json`. More advanced users can change configurations in `configs/train.json`. Most hyperparameters are straighforward and user can tell based on their names. The users must manually change the following keys in `configs/train_continual.json`. + +#### 1. `label_mappings` + +```json + "label_mappings": { + "default": [ + [ + index_1_in_user_data, # e.g. 1 + mapped_index_1, # e.g. 1 + ], + [ + index_2_in_user_data, # e.g. 2 + mapped_index_2, # e.g. 2 + ], ..., + [ + index_last_in_user_data, # e.g. N + mapped_index_N, # e.g. N + ] + ] + }, +``` + +`index_1_in_user_data`,...,`index_N_in_user_data` is the class index value in the groundtruth that user tries to segment. `mapped_index_1`,...,`mapped_index_N` is the mapped index value that the bundle will output. You can make these two the same for finetuning, but we suggest finding the semantic relevant mappings from our unified [global label index](../configs/metadata.json). For example, "Spleen" in MSD09 groundtruth label is represented by 1, but "Spleen" is 3 in `docs/labels.json`. So by defining label mapping `[[1, 3]]`, VISTA3D can segment "Spleen" using its pretrained weights out-of-the-box, +and can speed up the finetuning convergence speed. +If you cannot find a relevant semantic label for your class, just use any value < `num_classes` defined in train_continue.json. +For more details about this label_mapping, please read [this](finetune.md). + +#### 2. `data_list_file_path` and `dataset_dir` + +Change `data_list_file_path` to the absolute path of your data json split. Change `dataset_dir` to the root folder that combines with the relative path in the data json split. + +#### 3. Optional hyperparameters and details are [here](finetune.md) + +Hyperparameter finetuning is important and varies from task to task. + +## Step3: Run finetuning + +The hyperparameters in `configs/train_continual.json` will overwrite ones in `configs/train.json`. Configs in the back will overide the previous ones if they have the same key. + +Single-GPU: + +```bash +# Make sure conda environment is activated +conda activate vista3d-nv + +python -m monai.bundle run \ + --config_file="['configs/train.json','configs/train_continual.json']" +``` + +Multi-GPU: + +```bash +# Activate conda environment first (CRITICAL!) +conda activate vista3d-nv + +# Change --nproc_per_node to match your number of GPUs +torchrun --nnodes=1 --nproc_per_node=8 -m monai.bundle run \ + --config_file="['configs/train.json','configs/train_continual.json','configs/multi_gpu_train.json']" +``` + +### MLFlow Visualization + +MLFlow is enabled by default (defined in train.json, use_mlflow) and the data is stored in the `mlruns/` folder under the bundle's root directory. To launch the MLflow UI and track your experiment data, follow these steps: + +1. Open a terminal and navigate to the root directory of your bundle where the `mlruns/` folder is located. +2. Execute the following command to start the MLflow server. This will make the MLflow UI accessible. + +```bash +mlflow ui +``` ## Configurations @@ -59,3 +157,62 @@ The default configs for both variables are derived from the `label_mappings` con ``` Note: Please ensure the input data header is correct. The output file will use the same header as the input data, but if the input data is missing header information, MONAI will automatically provide some default values for missing values (e.g. `np.eye(4)` will be used if affine information is absent). This may cause a visualization misalignment depending on the visualization tool. + + +## Evaluation + +Evaluation can be used to calculate dice scores for the model or a finetuned model. Change the `ckpt_path` to the checkpoint you wish to evaluate. The dice score is calculated on the original image spacing using `invertd`, while the dice score during finetuning is calculated on resampled space. + +```text +NOTE: Evaluation does not support point evaluation.`"validate#evaluator#hyper_kwargs#val_head` is always set to `auto`. +``` + +Single-GPU: + +```bash +# Make sure conda environment is activated +conda activate vista3d-nv + +python -m monai.bundle run \ + --config_file="['configs/train.json','configs/train_continual.json','configs/evaluate.json']" +``` + +Multi-GPU: + +```bash +# Activate conda environment first (CRITICAL!) +conda activate vista3d-nv + +# Change --nproc_per_node to match your number of GPUs +torchrun --nnodes=1 --nproc_per_node=8 -m monai.bundle run \ + --config_file="['configs/train.json','configs/train_continual.json','configs/evaluate.json','configs/mgpu_evaluate.json']" +``` + +### Other explanatory items + +The `label_mapping` in `evaluation.json` does not include `0` because the postprocessing step performs argmax (`VistaPostTransformd`), and a `0` prediction would negatively impact performance. In continuous learning, however, `0` is included for validation because no argmax is performed, and validation is done channel-wise (include_background=False). Additionally, `Relabeld` in `postprocessing` is required to map `label` and `pred` back to sequential indexes like `0, 1, 2, 3, 4` for dice calculation, as they are not in one-hot format. Evaluation does not support `point`, but finetuning does, as it does not perform argmax. + +## FAQ + +### TroubleShoot for Out-of-Memory + +- Changing `patch_size` to a smaller value such as `"patch_size": [96, 96, 96]` would reduce the training/inference memory footprint. +- Changing `train_dataset_cache_rate` and `val_dataset_cache_rate` to a smaller value like `0.1` can solve the out-of-cpu memory issue when using huge finetuning dataset. +- Set `"postprocessing#transforms#0#_disabled_": false` to move the postprocessing to cpu to reduce the GPU memory footprint. + +### Multi-channel input + +- Change `input_channels` in `train.json` to your desired channel number +- Data split json can be a single multi-channel image or can be a list of single channeled images. Those images must have the same spatial shape and aligned/registered. + +```json + { + "image": ["modality1.nii.gz", "modality2.nii.gz", "modality3.nii.gz"] + "label": "label.nii.gz" + }, +``` + +### Wrong inference results from finetuned checkpoint + +- Make sure you removed the `subclass` dictionary from inference.json if you ever mapped local index to [2,20,21] +- Make sure `0` is not included in your inference prompt for automatic segmentation. \ No newline at end of file diff --git a/NV-Segment-CTMR/docs/inference.md b/NV-Segment-CTMR/docs/inference.md deleted file mode 100644 index 653f70a..0000000 --- a/NV-Segment-CTMR/docs/inference.md +++ /dev/null @@ -1,98 +0,0 @@ -# Inference configurations - -All the configurations for inference is stored in inference.json, change those parameters: - -## `input_dict` - -`input_dict` defines the image to segment and the prompt for segmentation. - -```json -"input_dict": "$[{'image': '/data/Task09_Spleen/imagesTs/spleen_15.nii.gz', 'label_prompt':[1]}]", -"input_dict": "$[{'image': '/data/Task09_Spleen/imagesTs/spleen_15.nii.gz', 'points':[[138,245,18], [271,343,27]], 'point_labels':[1,0]}]" -``` - -- The input_dict must include the key `image` which contain the absolute path to the nii image file, and includes prompt keys of `label_prompt`, `points` and `point_labels`. -- The `label_prompt` is a list of length `B`, which can perform `B` foreground objects segmentation, e.g. `[2,3,4,5]`. If `B>1`, Point prompts must NOT be provided. -- The `points` is of shape `[N, 3]` like `[[x1,y1,z1],[x2,y2,z2],...[xN,yN,zN]]`, representing `N` point coordinates **IN THE ORIGINAL IMAGE SPACE** of a single foreground object. `point_labels` is a list of length [N] like [1,1,0,-1,...], which -matches the `points`. 0 means background, 1 means foreground, -1 means ignoring this point. `points` and `point_labels` must pe provided together and match length. -- **B must be 1 if label_prompt and points are provided together**. The inferer only supports SINGLE OBJECT point click segmentatation. -- If no prompt is provided, the model will use `everything_labels` to segment 117 classes: - -```python -list(set([i+1 for i in range(132)]) - set([2,16,18,20,21,23,24,25,26,27,128,129,130,131,132])) -``` - -- The `points` together with `label_prompts` for "Kidney", "Lung", "Bone" (class index [2, 20, 21]) are not allowed since those prompts will be divided into sub-categories (e.g. left kidney and right kidney). Use `points` for the sub-categories as defined in the `inference.json`. -- To specify a new class for zero-shot segmentation, set the `label_prompt` to a value between 133 and 254. Ensure that `points` and `point_labels` are also provided; otherwise, the inference result will be a tensor of zeros. - -### `label_prompt` and `label_dict` - -The `label_dict` defined in `configs/metadata.json` has in total 132 classes. However, there are 5 we do not support and we keep them due to legacy issue. So in total -VISTA3D support 127 classes. - -```text -"16, # prostate or uterus" since we already have "prostate" class, -"18, # rectum", insufficient data or dataset excluded. -"130, # liver tumor" already have hepatic tumor. -"129, # kidney mass" insufficient data or dataset excluded. -"131, # vertebrae L6", insufficient data or dataset excluded. -``` - -These 5 are excluded in the `everything_labels`. Another 7 tumor and vessel classes are also removed since they will overlap with other organs and make the output messy. To segment those 7 classes, we recommend users to directly set `label_prompt` to those indexes and avoid using them in `everything_labels`. For "Kidney", "Lung", "Bone" (class index [2, 20, 21]), VISTA3D did not directly use the class index for segmentation, but instead convert them to their subclass indexes as defined by `subclass` dict. For example, "2-Kidney" is converted to "14-Left Kidney" + "5-Right Kidney" since "2" is defined in `subclasss` dict. - -### `resample_spacing` - -The optimal inference resample spacing should be changed according to the task. For monkey data, a high resolution of [1,1,1] showed better automatic inference results. This spacing applies to both automatic and interactive segmentation. For zero-shot interactive segmentation for non-human CTs e.g. mouse CT or even rock/stone CT, using original resolution (set `resample_spacing` to [-1,-1,-1]) may give better interactive results. - -### `use_point_window` - -When user click a point, there is no need to perform whole image sliding window inference. Set "use_point_window" to true in the inference.json to enable this function. -A window centered at the clicked points will be used for inference. All values outside of the window will set to be "NaN" unless "prev_mask" is passed to the inferer (255 is used to represent NaN). -If no point click exists, this function will not be used. Notice if "use_point_window" is true and user provided point clicks, there will be obvious cut-off box artefacts. - -### Inference GPU benchmarks - -Benchmarks on a 16GB V100 GPU with 400G system cpu memory. - -| Volume size at 1.5x1.5x1.5 mm | 333x333x603 | 512x512x512 | 512x512x768 | 1024x1024x512 | 1024x1024x768 | -| :---: | :---: | :---: | :---: | :---: | :---: | -|RunTime| 1m07s | 2m09s | 3m25s| 9m20s| killed | - -### Execute inference with the TensorRT model - -```bash -python -m monai.bundle run --config_file "['configs/inference.json', 'configs/inference_trt.json']" -``` - -By default, the argument `head_trt_enabled` is set to `false` in `configs/inference_trt.json`. This means that the `class_head` module of the network will not be converted into a TensorRT model. Setting this to `true` may accelerate the process, but there are some limitations: - -Since the `label_prompt` will be converted into a tensor and input into the `class_head` module, the batch size of this input tensor will equal the length of the original `label_prompt` list (if no prompt is provided, the length is 117). To make the TensorRT model work on the `class_head` module, you should set a suitable dynamic batch size range. The maximum dynamic batch size can be configured using the argument `max_prompt_size` in `configs/inference_trt.json`. If the length of the `label_prompt` list exceeds `max_prompt_size`, the engine will fall back to using the normal PyTorch model for inference. -Setting a larger `max_prompt_size` can cover more input cases but may require more GPU memory (the default value is 4, which requires 16 GB of GPU memory). Therefore, please set it to a reasonable value according to your actual requirements. - -### TensorRT speedup - -The `vista3d` bundle supports acceleration with TensorRT. The table below displays the speedup ratios observed on an A100 80G GPU. Please note for 32bit precision models, they are benchmarked with tf32 weight format. - -| method | torch_tf32(ms) | torch_amp(ms) | trt_tf32(ms) | trt_fp16(ms) | speedup amp | speedup tf32 | speedup fp16 | amp vs fp16| -| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | -| model computation | 108.53| 91.9 | 106.84 | 60.02 | 1.18 | 1.02 | 1.81 | 1.53 | -| end2end | 6740 | 5166 | 5242 | 3386 | 1.30 | 1.29 | 1.99 | 1.53 | - -Where: - -- `model computation` means the speedup ratio of model's inference with a random input without preprocessing and postprocessing -- `end2end` means run the bundle end-to-end with the TensorRT based model. -- `torch_tf32` and `torch_amp` are for the PyTorch models with or without `amp` mode. -- `trt_tf32` and `trt_fp16` are for the TensorRT based models converted in corresponding precision. -- `speedup amp`, `speedup tf32` and `speedup fp16` are the speedup ratios of corresponding models versus the PyTorch float32 model -- `amp vs fp16` is the speedup ratio between the PyTorch amp model and the TensorRT float16 based model. - -This result is benchmarked under: - -- TensorRT: 10.3.0+cuda12.6 -- Torch-TensorRT Version: 2.4.0 -- CPU Architecture: x86-64 -- OS: ubuntu 20.04 -- Python version:3.10.12 -- CUDA version: 12.6 -- GPU models and configuration: A100 80G diff --git a/NV-Segment-CTMR/scripts/__init__.py b/NV-Segment-CTMR/scripts/__init__.py index fc5f109..5b58bf6 100644 --- a/NV-Segment-CTMR/scripts/__init__.py +++ b/NV-Segment-CTMR/scripts/__init__.py @@ -13,3 +13,6 @@ # from .multi_gpu_supervised_trainer import create_multigpu_supervised_evaluator, create_multigpu_supervised_trainer from .early_stop_score_function import score_function + +# Ensures bundle expressions like ``scripts.batch_inference_utils.build_input_list`` resolve. +from . import batch_inference_utils # noqa: F401 diff --git a/NV-Segment-CTMR/scripts/batch_inference_utils.py b/NV-Segment-CTMR/scripts/batch_inference_utils.py new file mode 100644 index 0000000..16e12f3 --- /dev/null +++ b/NV-Segment-CTMR/scripts/batch_inference_utils.py @@ -0,0 +1,262 @@ +""" +Cohort batch inference: discover NIfTI inputs, match MONAI SaveImaged paths, optional resume. + +Behavior is controlled from ``configs/batch_inference.json`` (skip dir lists, resume, cache). +To change which classes are segmented, edit ``everything_labels`` in ``configs/inference.json``. +To customize path filtering further, edit :func:`should_skip_path_by_parent_rules`. +""" + +from __future__ import annotations + +import hashlib +import json +import os +import tempfile +import time +from pathlib import Path +from typing import Any + + +def should_skip_path_by_parent_rules( + path: Path, + *, + skip_dir_names: list[str] | None = None, + skip_dir_prefixes: list[str] | None = None, +) -> bool: + """ + Return True if this path should be excluded from batch discovery. + + Default (empty lists): do not skip any path based on directory names. + + - ``skip_dir_names``: any **parent** directory component that equals a name (case-insensitive). + - ``skip_dir_prefixes``: any **parent** directory component whose name **starts with** a prefix + (case-insensitive). + """ + names = {n.strip().lower() for n in (skip_dir_names or []) if n and str(n).strip()} + prefixes = tuple(p.strip().lower() for p in (skip_dir_prefixes or []) if p and str(p).strip()) + for part in path.parts[:-1]: + pl = part.lower() + if pl in names: + return True + for prefix in prefixes: + if prefix and pl.startswith(prefix): + return True + return False + + +def expected_output_path( + input_path: Path, + input_root: Path, + output_dir: Path, + postfix: str, + ext: str, +) -> Path: + """Match MONAI FolderLayout + separate_folder + data_root_dir.""" + input_path = input_path.resolve() + input_root = input_root.resolve() + output_dir = output_dir.resolve() + rel = os.path.relpath(input_path, input_root) + rel_dir = os.path.dirname(rel) + stem = input_path.name + if stem.endswith(".nii.gz"): + stem = stem[: -len(".nii.gz")] + elif stem.endswith(".nii"): + stem = stem[: -len(".nii")] + sub = Path(rel_dir) if rel_dir else Path() + return output_dir / sub / stem / f"{stem}_{postfix}{ext}" + + +def collect_input_paths( + input_root: Path, + pattern: str = "**/*.nii.gz", + *, + skip_dir_names: list[str] | None = None, + skip_dir_prefixes: list[str] | None = None, +) -> list[Path]: + input_root = input_root.resolve() + out: list[Path] = [] + for p in sorted(input_root.glob(pattern)): + if not p.is_file(): + continue + if should_skip_path_by_parent_rules( + p, skip_dir_names=skip_dir_names, skip_dir_prefixes=skip_dir_prefixes + ): + continue + out.append(p) + return out + + +def _cache_path( + input_dir: str, + output_dir: str, + postfix: str, + ext: str, + skip: bool, + skip_dir_names: list[str] | None, + skip_dir_prefixes: list[str] | None, +) -> Path: + sig = ( + f"{os.path.abspath(input_dir)}|{os.path.abspath(output_dir)}|{postfix}|{ext}|{skip}|" + f"{sorted(skip_dir_names or [])}|{sorted(skip_dir_prefixes or [])}" + ) + h = hashlib.sha256(sig.encode()).hexdigest()[:24] + base = Path(tempfile.gettempdir()) + return base / f"nvseg_batch_input_{h}.json" + + +def _compute_input_list( + input_dir: str, + output_dir: str, + postfix: str, + ext: str, + *, + skip_existing: bool, + skip_dir_names: list[str] | None, + skip_dir_prefixes: list[str] | None, +) -> tuple[list[str], int]: + """ + Returns ``(paths_to_run, n_discovered)`` where ``n_discovered`` is the number of + ``*.nii.gz`` paths after directory filters (before resume skip). + """ + root = Path(input_dir) + out_root = Path(output_dir) + all_paths = collect_input_paths( + root, + skip_dir_names=skip_dir_names, + skip_dir_prefixes=skip_dir_prefixes, + ) + n_discovered = len(all_paths) + if not skip_existing: + return [str(p) for p in all_paths], n_discovered + + missing: list[str] = [] + for inp in all_paths: + exp = expected_output_path(inp, root, out_root, postfix, ext) + if not exp.is_file() or exp.stat().st_size == 0: + missing.append(str(inp)) + return missing, n_discovered + + +def _parse_cache_payload(raw: Any) -> tuple[list[str], int]: + """Load cache written by rank 0. Supports legacy JSON list for backward compatibility.""" + if isinstance(raw, list): + # Legacy: empty [] is ambiguous (stale file or old format) -> signal recompute on workers. + return [str(p) for p in raw], len(raw) if raw else -1 + if isinstance(raw, dict) and "paths" in raw: + paths = raw["paths"] + if not isinstance(paths, list): + raise RuntimeError("[nvseg] batch: bad cache (paths); rm /tmp/nvseg_batch_input_*.json") + n_raw = raw.get("n_discovered") + if n_raw is None: + n_discovered = len(paths) if paths else -1 + else: + n_discovered = int(n_raw) + return [str(p) for p in paths], n_discovered + raise RuntimeError("[nvseg] batch: bad cache format; rm /tmp/nvseg_batch_input_*.json") + + +def build_input_list( + input_dir: str, + output_dir: str, + output_postfix: str, + output_ext: str, + batch_skip_dir_names: list | None = None, + batch_skip_dir_prefixes: list | None = None, + batch_resume_skip_existing: bool = True, + batch_use_input_list_cache: bool = True, + batch_cache_wait_sec: float = 120.0, +) -> list[str]: + """ + Called from ``configs/batch_inference.json``. + + ``batch_resume_skip_existing``: if True, only queue inputs whose output file is missing or empty. + ``batch_skip_dir_names`` / ``batch_skip_dir_prefixes``: filter discovery (see + :func:`should_skip_path_by_parent_rules`). + + ``LOCAL_RANK`` (set by ``torchrun``) is still read from the environment for multi-GPU cache. + + If resume mode leaves nothing to run (outputs already exist), prints a message and raises + ``SystemExit(0)`` so the process exits before MONAI builds a zero-length DataLoader (which + would fail under ``DistributedSampler``). If no ``*.nii.gz`` files are discovered, raises + ``RuntimeError``. + """ + names = list(batch_skip_dir_names) if batch_skip_dir_names is not None else [] + prefixes = list(batch_skip_dir_prefixes) if batch_skip_dir_prefixes is not None else [] + + skip = bool(batch_resume_skip_existing) + use_cache = bool(batch_use_input_list_cache) + wait_sec = float(batch_cache_wait_sec) + + local_rank = os.environ.get("LOCAL_RANK", "0") + + if not use_cache or local_rank == "0": + paths, n_discovered = _compute_input_list( + input_dir, + output_dir, + output_postfix, + output_ext, + skip_existing=skip, + skip_dir_names=names, + skip_dir_prefixes=prefixes, + ) + payload = {"paths": paths, "n_discovered": n_discovered} + if use_cache and local_rank == "0": + cache = _cache_path( + input_dir, output_dir, output_postfix, output_ext, skip, names, prefixes + ) + cache.parent.mkdir(parents=True, exist_ok=True) + tmp = cache.with_suffix(".json.tmp") + tmp.write_text(json.dumps(payload)) + tmp.replace(cache) + + if local_rank == "0": + mode = "resume (skip existing outputs)" if skip else "full pass (all inputs)" + print( + f"[nvseg] batch {mode}: {len(paths)} volume(s) " + f"(input_dir={os.path.abspath(input_dir)}, output_dir={os.path.abspath(output_dir)})", + flush=True, + ) + else: + cache = _cache_path( + input_dir, output_dir, output_postfix, output_ext, skip, names, prefixes + ) + deadline = time.time() + wait_sec + payload = None + while time.time() < deadline: + if cache.is_file(): + payload = json.loads(cache.read_text()) + break + time.sleep(0.05) + else: + raise RuntimeError( + "[nvseg] batch: cache timeout (raise batch_cache_wait_sec or set batch_use_input_list_cache false)" + ) + paths, n_discovered = _parse_cache_payload(payload) + # Stale legacy `[]` or missing n_discovered: recompute so workers agree with rank 0. + if n_discovered < 0: + paths, n_discovered = _compute_input_list( + input_dir, + output_dir, + output_postfix, + output_ext, + skip_existing=skip, + skip_dir_names=names, + skip_dir_prefixes=prefixes, + ) + + if not paths: + if n_discovered == 0: + raise RuntimeError("[nvseg] batch: no *.nii.gz under input_dir (check paths and skip rules)") + # Resume: all outputs exist — exit before an empty DistributedSampler / dataloader. + print("[nvseg] batch: nothing to run (resume); ok", flush=True) + raise SystemExit(0) + + return paths + + +__all__ = [ + "build_input_list", + "collect_input_paths", + "expected_output_path", + "should_skip_path_by_parent_rules", +]