From af30d2308c12c4fdfb3011e9e879ed383591a50a Mon Sep 17 00:00:00 2001 From: Yanchao Zhang <47974713+yanchaoz@users.noreply.github.com> Date: Wed, 16 Sep 2026 21:31:46 +0800 Subject: [PATCH 1/2] Make inference runnable and preserve the original SegNeuron snapshot --- .gitattributes | 2 + .github/workflows/tests.yml | 40 + .gitignore | 7 + Postprocess/FRMC_post.py | 197 ++++- Pretrain/config/SegNeuron.yaml | 3 +- Pretrain/pretrain.py | 9 +- Pretrain/pretrain_provider.py | 2 +- README.md | 119 ++- Train_and_Inference/config/SegNeuron.yaml | 3 +- Train_and_Inference/inference.py | 273 ++++-- Train_and_Inference/supervised_train.py | 12 +- environment-postprocess.yml | 14 + legacy/Figures/example.png | Bin 0 -> 1597961 bytes legacy/Figures/logo.png | Bin 0 -> 21329 bytes legacy/Figures/pipeline.png | Bin 0 -> 451543 bytes legacy/LICENSE | 21 + legacy/Postprocess/FRMC_post.py | 50 ++ legacy/Pretrain/config/SegNeuron.yaml | 48 ++ legacy/Pretrain/loss/loss.py | 190 ++++ legacy/Pretrain/model/Mnet_pretrain.py | 327 +++++++ legacy/Pretrain/pretrain.py | 263 ++++++ legacy/Pretrain/pretrain_provider.py | 159 ++++ .../utils/__pycache__/aff_util.cpython-37.pyc | Bin 0 -> 4493 bytes .../utils/__pycache__/aff_util.cpython-38.pyc | Bin 0 -> 4674 bytes .../utils/__pycache__/aff_util.cpython-39.pyc | Bin 0 -> 4564 bytes .../__pycache__/augmentation.cpython-37.pyc | Bin 0 -> 22769 bytes .../__pycache__/augmentation.cpython-38.pyc | Bin 0 -> 22518 bytes .../__pycache__/augmentation.cpython-39.pyc | Bin 0 -> 22473 bytes .../consistency_aug.cpython-37.pyc | Bin 0 -> 6577 bytes .../consistency_aug.cpython-38.pyc | Bin 0 -> 6560 bytes .../consistency_aug.cpython-39.pyc | Bin 0 -> 6566 bytes ...nsistency_aug_perturbations.cpython-37.pyc | Bin 0 -> 21552 bytes ...nsistency_aug_perturbations.cpython-38.pyc | Bin 0 -> 21316 bytes ...nsistency_aug_perturbations.cpython-39.pyc | Bin 0 -> 21309 bytes ...tency_aug_perturbations_sup.cpython-37.pyc | Bin 0 -> 22519 bytes ...tency_aug_perturbations_sup.cpython-38.pyc | Bin 0 -> 22123 bytes ...tency_aug_perturbations_sup.cpython-39.pyc | Bin 0 -> 22121 bytes .../__pycache__/coordinate.cpython-37.pyc | Bin 0 -> 5543 bytes .../__pycache__/coordinate.cpython-38.pyc | Bin 0 -> 5280 bytes .../__pycache__/coordinate.cpython-39.pyc | Bin 0 -> 5255 bytes .../__pycache__/flow_display.cpython-37.pyc | Bin 0 -> 3931 bytes .../__pycache__/flow_display.cpython-38.pyc | Bin 0 -> 3948 bytes .../__pycache__/flow_display.cpython-39.pyc | Bin 0 -> 3948 bytes .../__pycache__/flow_synthesis.cpython-37.pyc | Bin 0 -> 2991 bytes .../__pycache__/flow_synthesis.cpython-38.pyc | Bin 0 -> 2996 bytes .../__pycache__/flow_synthesis.cpython-39.pyc | Bin 0 -> 2996 bytes .../__pycache__/image_warp.cpython-37.pyc | Bin 0 -> 2334 bytes .../__pycache__/image_warp.cpython-38.pyc | Bin 0 -> 2341 bytes .../__pycache__/image_warp.cpython-39.pyc | Bin 0 -> 2341 bytes .../utils/__pycache__/post_lmc.cpython-37.pyc | Bin 0 -> 2988 bytes .../utils/__pycache__/post_lmc.cpython-38.pyc | Bin 0 -> 2818 bytes .../utils/__pycache__/post_lmc.cpython-39.pyc | Bin 0 -> 2845 bytes .../__pycache__/post_waterz.cpython-37.pyc | Bin 0 -> 2959 bytes .../__pycache__/post_waterz.cpython-38.pyc | Bin 0 -> 2996 bytes .../__pycache__/post_waterz.cpython-39.pyc | Bin 0 -> 2971 bytes .../utils/__pycache__/seg_util.cpython-37.pyc | Bin 0 -> 5686 bytes .../utils/__pycache__/seg_util.cpython-38.pyc | Bin 0 -> 5708 bytes .../utils/__pycache__/seg_util.cpython-39.pyc | Bin 0 -> 5677 bytes .../utils/__pycache__/show.cpython-37.pyc | Bin 0 -> 9123 bytes .../utils/__pycache__/show.cpython-38.pyc | Bin 0 -> 7950 bytes .../utils/__pycache__/show.cpython-39.pyc | Bin 0 -> 8484 bytes legacy/Pretrain/utils/aff_util.py | 139 +++ legacy/Pretrain/utils/affine.py | 288 +++++++ legacy/Pretrain/utils/augmentation.py | 737 ++++++++++++++++ legacy/Pretrain/utils/augmentation_affine.py | 240 ++++++ legacy/Pretrain/utils/compute_sdf.py | 32 + legacy/Pretrain/utils/consistency_aug.py | 235 +++++ .../utils/consistency_aug_perturbations.py | 728 ++++++++++++++++ .../consistency_aug_perturbations_sup.py | 763 +++++++++++++++++ legacy/Pretrain/utils/coordinate.py | 131 +++ legacy/Pretrain/utils/encoder_dict.py | 159 ++++ legacy/Pretrain/utils/flow_display.py | 180 ++++ legacy/Pretrain/utils/flow_synthesis.py | 161 ++++ legacy/Pretrain/utils/gen_pseudo.py | 74 ++ legacy/Pretrain/utils/image_warp.py | 112 +++ legacy/Pretrain/utils/malis_loss.py | 14 + legacy/Pretrain/utils/optim_weight_ema.py | 25 + legacy/Pretrain/utils/post_func.py | 213 +++++ legacy/Pretrain/utils/post_lmc.py | 77 ++ legacy/Pretrain/utils/post_waterz.py | 92 ++ legacy/Pretrain/utils/seeds_func.py | 443 ++++++++++ legacy/Pretrain/utils/seg_util.py | 194 +++++ legacy/Pretrain/utils/show.py | 299 +++++++ legacy/Pretrain/utils/torch_utils.py | 17 + legacy/Pretrain/utils/utils.py | 57 ++ legacy/README.md | 107 +++ legacy/SNAPSHOT.md | 10 + legacy/SegNeuron_Colab_Inference.ipynb | 810 ++++++++++++++++++ .../Train_and_Inference/config/SegNeuron.yaml | 50 ++ legacy/Train_and_Inference/inference.py | 67 ++ .../Train_and_Inference/inference_provider.py | 201 +++++ legacy/Train_and_Inference/loss/loss.py | 190 ++++ legacy/Train_and_Inference/model/Mnet.py | 310 +++++++ .../supervised_provider.py | 380 ++++++++ .../Train_and_Inference/supervised_train.py | 266 ++++++ legacy/Train_and_Inference/utils/aff_util.py | 139 +++ legacy/Train_and_Inference/utils/affine.py | 288 +++++++ .../Train_and_Inference/utils/augmentation.py | 737 ++++++++++++++++ .../utils/augmentation_affine.py | 240 ++++++ .../Train_and_Inference/utils/compute_sdf.py | 32 + .../utils/consistency_aug.py | 235 +++++ .../utils/consistency_aug_perturbations.py | 728 ++++++++++++++++ .../consistency_aug_perturbations_sup.py | 763 +++++++++++++++++ .../Train_and_Inference/utils/coordinate.py | 131 +++ .../Train_and_Inference/utils/encoder_dict.py | 159 ++++ .../Train_and_Inference/utils/flow_display.py | 180 ++++ .../utils/flow_synthesis.py | 161 ++++ .../Train_and_Inference/utils/gen_pseudo.py | 74 ++ .../Train_and_Inference/utils/image_warp.py | 112 +++ .../Train_and_Inference/utils/malis_loss.py | 14 + .../utils/optim_weight_ema.py | 25 + legacy/Train_and_Inference/utils/post_func.py | 213 +++++ legacy/Train_and_Inference/utils/post_lmc.py | 77 ++ .../Train_and_Inference/utils/post_waterz.py | 92 ++ .../Train_and_Inference/utils/seeds_func.py | 443 ++++++++++ legacy/Train_and_Inference/utils/seg_util.py | 194 +++++ legacy/Train_and_Inference/utils/show.py | 273 ++++++ .../Train_and_Inference/utils/torch_utils.py | 17 + legacy/Train_and_Inference/utils/utils.py | 57 ++ legacy/requirements.txt | 248 ++++++ requirements-training.txt | 13 + requirements.txt | 253 +----- tests/test_inference.py | 161 ++++ tests/test_postprocess.py | 198 +++++ tests/test_training.py | 89 ++ 125 files changed, 15495 insertions(+), 391 deletions(-) create mode 100644 .gitattributes create mode 100644 .github/workflows/tests.yml create mode 100644 .gitignore create mode 100644 environment-postprocess.yml create mode 100644 legacy/Figures/example.png create mode 100644 legacy/Figures/logo.png create mode 100644 legacy/Figures/pipeline.png create mode 100644 legacy/LICENSE create mode 100644 legacy/Postprocess/FRMC_post.py create mode 100644 legacy/Pretrain/config/SegNeuron.yaml create mode 100644 legacy/Pretrain/loss/loss.py create mode 100644 legacy/Pretrain/model/Mnet_pretrain.py create mode 100644 legacy/Pretrain/pretrain.py create mode 100644 legacy/Pretrain/pretrain_provider.py create mode 100644 legacy/Pretrain/utils/__pycache__/aff_util.cpython-37.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/aff_util.cpython-38.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/aff_util.cpython-39.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/augmentation.cpython-37.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/augmentation.cpython-38.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/augmentation.cpython-39.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/consistency_aug.cpython-37.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/consistency_aug.cpython-38.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/consistency_aug.cpython-39.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/consistency_aug_perturbations.cpython-37.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/consistency_aug_perturbations.cpython-38.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/consistency_aug_perturbations.cpython-39.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/consistency_aug_perturbations_sup.cpython-37.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/consistency_aug_perturbations_sup.cpython-38.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/consistency_aug_perturbations_sup.cpython-39.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/coordinate.cpython-37.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/coordinate.cpython-38.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/coordinate.cpython-39.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/flow_display.cpython-37.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/flow_display.cpython-38.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/flow_display.cpython-39.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/flow_synthesis.cpython-37.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/flow_synthesis.cpython-38.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/flow_synthesis.cpython-39.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/image_warp.cpython-37.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/image_warp.cpython-38.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/image_warp.cpython-39.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/post_lmc.cpython-37.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/post_lmc.cpython-38.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/post_lmc.cpython-39.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/post_waterz.cpython-37.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/post_waterz.cpython-38.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/post_waterz.cpython-39.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/seg_util.cpython-37.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/seg_util.cpython-38.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/seg_util.cpython-39.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/show.cpython-37.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/show.cpython-38.pyc create mode 100644 legacy/Pretrain/utils/__pycache__/show.cpython-39.pyc create mode 100644 legacy/Pretrain/utils/aff_util.py create mode 100644 legacy/Pretrain/utils/affine.py create mode 100644 legacy/Pretrain/utils/augmentation.py create mode 100644 legacy/Pretrain/utils/augmentation_affine.py create mode 100644 legacy/Pretrain/utils/compute_sdf.py create mode 100644 legacy/Pretrain/utils/consistency_aug.py create mode 100644 legacy/Pretrain/utils/consistency_aug_perturbations.py create mode 100644 legacy/Pretrain/utils/consistency_aug_perturbations_sup.py create mode 100644 legacy/Pretrain/utils/coordinate.py create mode 100644 legacy/Pretrain/utils/encoder_dict.py create mode 100644 legacy/Pretrain/utils/flow_display.py create mode 100644 legacy/Pretrain/utils/flow_synthesis.py create mode 100644 legacy/Pretrain/utils/gen_pseudo.py create mode 100644 legacy/Pretrain/utils/image_warp.py create mode 100644 legacy/Pretrain/utils/malis_loss.py create mode 100644 legacy/Pretrain/utils/optim_weight_ema.py create mode 100644 legacy/Pretrain/utils/post_func.py create mode 100644 legacy/Pretrain/utils/post_lmc.py create mode 100644 legacy/Pretrain/utils/post_waterz.py create mode 100644 legacy/Pretrain/utils/seeds_func.py create mode 100644 legacy/Pretrain/utils/seg_util.py create mode 100644 legacy/Pretrain/utils/show.py create mode 100644 legacy/Pretrain/utils/torch_utils.py create mode 100644 legacy/Pretrain/utils/utils.py create mode 100644 legacy/README.md create mode 100644 legacy/SNAPSHOT.md create mode 100644 legacy/SegNeuron_Colab_Inference.ipynb create mode 100644 legacy/Train_and_Inference/config/SegNeuron.yaml create mode 100644 legacy/Train_and_Inference/inference.py create mode 100644 legacy/Train_and_Inference/inference_provider.py create mode 100644 legacy/Train_and_Inference/loss/loss.py create mode 100644 legacy/Train_and_Inference/model/Mnet.py create mode 100644 legacy/Train_and_Inference/supervised_provider.py create mode 100644 legacy/Train_and_Inference/supervised_train.py create mode 100644 legacy/Train_and_Inference/utils/aff_util.py create mode 100644 legacy/Train_and_Inference/utils/affine.py create mode 100644 legacy/Train_and_Inference/utils/augmentation.py create mode 100644 legacy/Train_and_Inference/utils/augmentation_affine.py create mode 100644 legacy/Train_and_Inference/utils/compute_sdf.py create mode 100644 legacy/Train_and_Inference/utils/consistency_aug.py create mode 100644 legacy/Train_and_Inference/utils/consistency_aug_perturbations.py create mode 100644 legacy/Train_and_Inference/utils/consistency_aug_perturbations_sup.py create mode 100644 legacy/Train_and_Inference/utils/coordinate.py create mode 100644 legacy/Train_and_Inference/utils/encoder_dict.py create mode 100644 legacy/Train_and_Inference/utils/flow_display.py create mode 100644 legacy/Train_and_Inference/utils/flow_synthesis.py create mode 100644 legacy/Train_and_Inference/utils/gen_pseudo.py create mode 100644 legacy/Train_and_Inference/utils/image_warp.py create mode 100644 legacy/Train_and_Inference/utils/malis_loss.py create mode 100644 legacy/Train_and_Inference/utils/optim_weight_ema.py create mode 100644 legacy/Train_and_Inference/utils/post_func.py create mode 100644 legacy/Train_and_Inference/utils/post_lmc.py create mode 100644 legacy/Train_and_Inference/utils/post_waterz.py create mode 100644 legacy/Train_and_Inference/utils/seeds_func.py create mode 100644 legacy/Train_and_Inference/utils/seg_util.py create mode 100644 legacy/Train_and_Inference/utils/show.py create mode 100644 legacy/Train_and_Inference/utils/torch_utils.py create mode 100644 legacy/Train_and_Inference/utils/utils.py create mode 100644 legacy/requirements.txt create mode 100644 requirements-training.txt create mode 100644 tests/test_inference.py create mode 100644 tests/test_postprocess.py create mode 100644 tests/test_training.py diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..c5ce765 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Keep the archived bytes (including historical line endings) unchanged. +/legacy/** -text -whitespace linguist-vendored diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..f795f0a --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,40 @@ +name: SegNeuron tests + +on: + push: + branches: [main, 'codex/**'] + pull_request: + workflow_dispatch: + +permissions: + contents: read + +jobs: + cpu: + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: '3.10' + cache: pip + - run: python -m pip install torch==2.9.1 --index-url https://download.pytorch.org/whl/cpu + - run: python -m pip install -r requirements-training.txt + - run: python -m unittest discover -s tests -v + + frmc: + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - uses: actions/checkout@v4 + - uses: mamba-org/setup-micromamba@v2 + with: + environment-file: environment-postprocess.yml + cache-environment: true + init-shell: bash + - name: Test the real ELF multicut backend + shell: bash -el {0} + env: + SEGNEURON_REQUIRE_ELF: '1' + run: python -m unittest discover -s tests -p test_postprocess.py -v diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..aa7d857 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +/Train_and_Inference/**/__pycache__/ +/Pretrain/**/__pycache__/ +/Postprocess/__pycache__/ +/tests/__pycache__/ +/runs/ +/weights/ +/.venv/ diff --git a/Postprocess/FRMC_post.py b/Postprocess/FRMC_post.py index caf247a..357d211 100644 --- a/Postprocess/FRMC_post.py +++ b/Postprocess/FRMC_post.py @@ -1,50 +1,177 @@ -from skimage.metrics import adapted_rand_error as adapted_rand_ref -from skimage.metrics import variation_of_information as voi_ref -import elf.segmentation.multicut as mc -import elf.segmentation.features as feats -import elf.segmentation.watershed as ws +"""ELF watershed + multicut postprocessing for SegNeuron probability outputs.""" + +import argparse +import json +from pathlib import Path + import numpy as np -import imageio + + +def _probabilities(values, name, ndim): + values = np.asarray(values) + if values.ndim != ndim or any(size == 0 for size in values.shape): + raise ValueError(f"{name} must be a nonempty {ndim}-D array") + if values.dtype.kind not in "buif": + raise ValueError(f"{name} must contain real probabilities") + if not np.isfinite(values).all() or values.min() < 0 or values.max() > 1: + raise ValueError(f"{name} must contain finite probabilities in [0, 1]") + return np.ascontiguousarray(values, dtype=np.float32) + + +def _load_elf(): + # Keep --help and input validation usable without the compiled ELF backend. + try: + import elf.segmentation.features as feats + import elf.segmentation.multicut as mc + import elf.segmentation.watershed as ws + except (ImportError, OSError) as exc: + raise RuntimeError( + "ELF multicut is unavailable. Install a compatible python-elf, " + "nifty and vigra environment (see README); no fallback is used. " + f"Backend error: {exc}" + ) from exc + return feats, mc, ws def post_mc(affs, beta=0.25): - affs = 1 - affs - boundary_input = np.maximum(affs[1], affs[2]) - watershed = np.zeros_like(boundary_input, dtype='uint64') + """Segment merge affinities of shape (3, z, y, x), returning uint32 IDs. + + Channels correspond to offsets (-1,0,0), (0,-1,0), (0,0,-1). + The original watershed settings and ELF Kernighan-Lin multicut are kept. + Output IDs start at 1; cluster 0 from the solver is a neuron, not background. + """ + affs = _probabilities(affs, "affinities", 4) + if affs.shape[0] != 3: + raise ValueError("affinities must have shape (3, z, y, x)") + if isinstance(beta, (bool, np.bool_)) or not np.isscalar(beta): + raise ValueError("beta must be a finite number strictly between 0 and 1") + try: + beta = float(beta) + except (TypeError, ValueError) as exc: + raise ValueError("beta must be a finite number strictly between 0 and 1") from exc + if not np.isfinite(beta) or not 0 < beta < 1: + raise ValueError("beta must be a finite number strictly between 0 and 1") + + feats, mc, ws = _load_elf() + split_affs = 1.0 - affs + boundary_input = np.maximum(split_affs[1], split_affs[2]) + watershed = np.empty(boundary_input.shape, dtype=np.uint64) offset = 0 for z in range(watershed.shape[0]): - wsz, max_id = ws.distance_transform_watershed(boundary_input[z], threshold=0.25, sigma_seeds=2.0) - wsz += offset - offset += max_id - watershed[z] = wsz + wsz, _ = ws.distance_transform_watershed( + boundary_input[z], threshold=0.25, sigma_seeds=2.0 + ) + wsz = np.asarray(wsz) + if wsz.shape != watershed.shape[1:] or wsz.dtype.kind not in "ui" or np.any(wsz <= 0): + raise RuntimeError(f"ELF watershed returned invalid or unassigned fragments at z={z}") + # Dense zero-based RAG nodes, disjoint across slices even for sparse IDs. + ids, inverse = np.unique(wsz, return_inverse=True) + watershed[z] = inverse.reshape(wsz.shape).astype(np.uint64) + offset + offset += len(ids) + rag = feats.compute_rag(watershed) - offsets = [[-1, 0, 0], [0, -1, 0], [0, 0, -1]] - costs = feats.compute_affinity_features(rag, affs, offsets)[:, 0] - edge_sizes = feats.compute_boundary_mean_and_length(rag, boundary_input)[:, 1] - costs = mc.transform_probabilities_to_costs(costs, edge_sizes=edge_sizes, beta=beta) - node_labels = mc.multicut_kernighan_lin(rag, costs) + if rag.numberOfEdges == 0: + # Exact edgeless-graph solution; ELF's cost scaling needs nonempty edges. + node_labels = np.arange(rag.numberOfNodes, dtype=np.uint64) + else: + offsets = [[-1, 0, 0], [0, -1, 0], [0, 0, -1]] + costs = feats.compute_affinity_features(rag, split_affs, offsets)[:, 0] + edge_sizes = feats.compute_boundary_mean_and_length(rag, boundary_input)[:, 1] + if not np.isfinite(costs).all() or not np.isfinite(edge_sizes).all() or np.any(edge_sizes <= 0): + raise RuntimeError("ELF returned invalid edge probabilities or sizes") + costs = mc.transform_probabilities_to_costs(costs, edge_sizes=edge_sizes, beta=beta) + node_labels = mc.multicut_kernighan_lin(rag, costs) segmentation = feats.project_node_labels_to_pixels(rag, node_labels) - return segmentation + labels, inverse = np.unique(segmentation, return_inverse=True) + if len(labels) > np.iinfo(np.uint32).max: + raise OverflowError("Too many instances for uint32 output") + return (inverse.reshape(watershed.shape) + 1).astype(np.uint32) -if __name__ == "__main__": - aff_root = '/***/***' - bound_root = '/***/***' - gt_root = '/***/***' - beta = 0.25 +def _load_volume(path): + if path.suffix.lower() == ".npy": + return np.load(path, allow_pickle=False) + if path.suffix.lower() in (".tif", ".tiff"): + import tifffile + return tifffile.imread(path) + raise ValueError(f"Expected .npy, .tif or .tiff: {path}") + + +def _validate_ground_truth(gt, shape): + if gt.shape != shape: + raise ValueError(f"ground truth shape {gt.shape} does not match {shape}") + if gt.dtype.kind not in "ui" or np.any(gt < 0): + raise ValueError("ground truth must contain nonnegative integer instance IDs") + if not np.any(gt): + raise ValueError("ground truth contains only ignored label 0") + # Metric implementations index by label: compact sparse IDs without dropping background. + ids, inverse = np.unique(gt, return_inverse=True) + return (inverse.reshape(gt.shape) + int(ids[0] != 0)).astype(np.uint64) - gt_seg = imageio.volread(gt_root) - gt_seg = np.uint32(gt_seg) - boundary_input = imageio.volread(bound_root) - boundary_input = np.array([boundary_input, boundary_input, boundary_input]) - affine = np.load(aff_root) - affine = np.minimum(boundary_input, affine) +def _write_labels(path, segmentation): + # Exclusive creation also protects against a file appearing during computation. + with path.open("xb") as stream: + try: + if path.suffix.lower() == ".npy": + np.save(stream, segmentation, allow_pickle=False) + else: + import tifffile + tifffile.imwrite(stream, segmentation, photometric="minisblack", metadata={"axes": "ZYX"}) + except BaseException: + stream.close() + path.unlink() + raise - pred_seg = post_mc(affine, beta) - arand = adapted_rand_ref(gt_seg, pred_seg, ignore_labels=(0,))[0] - voi_split, voi_merge = voi_ref(gt_seg, pred_seg, ignore_labels=(0,)) +def main(argv=None): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--affinities", type=Path, required=True, help="NPY merge probabilities, shape (3,z,y,x)") + parser.add_argument("--boundaries", type=Path, required=True, + help="TIFF foreground-head probabilities (original boundary output), shape (z,y,x)") + parser.add_argument("--output", type=Path, required=True, help="New uint32 labels file (.tif, .tiff or .npy)") + parser.add_argument("--beta", type=float, default=0.25, help="Multicut bias strictly between 0 and 1 (default: 0.25)") + parser.add_argument("--ground-truth", type=Path, help="Optional same-grid neuron instance labels; 0 is ignored") + args = parser.parse_args(argv) - voi_sum = voi_split + voi_merge - print('voi_split:', voi_split, 'voi_merge:', voi_merge, 'voi:', voi_sum, 'arand', arand) + try: + if args.output.suffix.lower() not in (".npy", ".tif", ".tiff"): + raise ValueError("output must use .npy, .tif or .tiff") + if args.output.exists(): + raise FileExistsError(f"Refusing to overwrite {args.output}") + if not args.output.parent.is_dir(): + raise ValueError(f"Output directory does not exist: {args.output.parent}") + if args.affinities.suffix.lower() != ".npy": + raise ValueError("affinities must be a .npy file") + if args.boundaries.suffix.lower() not in (".tif", ".tiff"): + raise ValueError("boundaries must be a .tif or .tiff file") + affinities = _probabilities(_load_volume(args.affinities), "affinities", 4) + boundaries = _probabilities(_load_volume(args.boundaries), "boundaries", 3) + if affinities.shape[0] != 3 or affinities.shape[1:] != boundaries.shape: + raise ValueError("affinities must be (3,z,y,x) and boundaries must match (z,y,x)") + gt = None + if args.ground_truth is not None: + gt = _validate_ground_truth(_load_volume(args.ground_truth), boundaries.shape) + from skimage.metrics import adapted_rand_error, variation_of_information + + # Keep the original foreground-head fusion and probability direction. + segmentation = post_mc(np.minimum(affinities, boundaries[None]), args.beta) + result = {"output": str(args.output), "shape": list(segmentation.shape), + "dtype": str(segmentation.dtype), "instances": int(segmentation.max()), "beta": args.beta} + if gt is not None: + arand = adapted_rand_error(gt, segmentation, ignore_labels=(0,))[0] + voi_split, voi_merge = variation_of_information(gt, segmentation, ignore_labels=(0,)) + metrics = {"arand": float(arand), "voi_split": float(voi_split), + "voi_merge": float(voi_merge), "voi": float(voi_split + voi_merge)} + if not all(np.isfinite(value) for value in metrics.values()): + raise ValueError("Ground-truth metrics are undefined for this volume") + result["metrics"] = metrics + _write_labels(args.output, segmentation) + except (ValueError, OSError, RuntimeError, ImportError, OverflowError) as exc: + parser.exit(1, f"error: {exc}\n") + print(json.dumps(result, indent=2)) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/Pretrain/config/SegNeuron.yaml b/Pretrain/config/SegNeuron.yaml index 80f2028..0e818ff 100644 --- a/Pretrain/config/SegNeuron.yaml +++ b/Pretrain/config/SegNeuron.yaml @@ -1,6 +1,7 @@ NAME: 'SegNeuron' -MODEL: +MODEL: + model_type: 'superhuman' # Same-size prediction; disable the legacy MALA crop. pre_train: True pretrain_path: '/***/***' continue_train: False diff --git a/Pretrain/pretrain.py b/Pretrain/pretrain.py index 75f9efb..37dac4e 100644 --- a/Pretrain/pretrain.py +++ b/Pretrain/pretrain.py @@ -4,14 +4,13 @@ import os -os.environ['CUDA_VISIBLE_DEVICES'] = "0, 1" import sys import yaml import time import logging import argparse import numpy as np -from attrdict import AttrDict +from addict import Dict as AttrDict from tensorboardX import SummaryWriter from collections import OrderedDict import torch @@ -78,7 +77,7 @@ def load_dataset(cfg): t1 = time.time() train_provider = Provider('train', cfg) print('Done (time: %.2fs)' % (time.time() - t1)) - return train_provider, valid_provider + return train_provider def build_model(cfg, writer): @@ -154,7 +153,7 @@ def loop(cfg, train_provider, model, optimizer, iters, writer): sum_labeled_loss = 0 sum_unlabel_loss = 0 - while iters <= cfg.TRAIN.total_iters: + while iters < cfg.TRAIN.total_iters: # train model.train() iters += 1 @@ -260,4 +259,4 @@ def loop(cfg, train_provider, model, optimizer, iters, writer): writer.close() else: pass - print('***Done***') \ No newline at end of file + print('***Done***') diff --git a/Pretrain/pretrain_provider.py b/Pretrain/pretrain_provider.py index a7c588a..3442c71 100644 --- a/Pretrain/pretrain_provider.py +++ b/Pretrain/pretrain_provider.py @@ -41,7 +41,7 @@ def __init__(self, cfg): def __getitem__(self, index): - k = random.randint(0, len(self.dataset)) + k = random.randrange(len(self.dataset)) used_data = self.dataset[k] raw_data_shape = used_data.shape diff --git a/README.md b/README.md index 6a857b8..d279a04 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,8 @@ Official implementation, datasets and trained models of "SegNeuron: 3D Neuron In [![HuggingFace](https://img.shields.io/badge/🤗%20Dataset-EMNeuron-yellow)](https://huggingface.co/datasets/yanchaoz/EMNeuron) [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/yanchaoz/SegNeuron/blob/main/SegNeuron_Colab_Inference.ipynb) +The Colab notebook is the original self-contained demonstration with its own environment. For the maintained command-line workflow, use the installation and inference instructions below. + > [!TIP] > **SegNeuron is now available as an Agent Skill in [EM-Skills](https://github.com/yanchaoz/EM-Skills).** @@ -32,8 +34,41 @@ The general-purpose model achieves outstanding reconstruction performance on ent -## Environments -We have packaged all the dependencies into Connect.tar.gz, which can be directly downloaded for easy access [here](https://huggingface.co/yanchaoz/SegNeuron). +## Installation + +Use Python 3.10 or newer for affinity inference. From the repository root: + +```bash +git clone https://github.com/yanchaoz/SegNeuron.git +cd SegNeuron +python -m venv .venv +``` + +Activate the environment with `source .venv/bin/activate` on Linux/macOS or `.venv\Scripts\Activate.ps1` in Windows PowerShell. Install the appropriate PyTorch build using the [official selector](https://pytorch.org/get-started/locally/), then install the remaining dependencies: + +```bash +python -m pip install -r requirements.txt +``` + +For CPU-only inference, an explicit PyTorch installation is: + +```bash +python -m pip install "torch>=2.6,<3" --index-url https://download.pytorch.org/whl/cpu +python -m pip install -r requirements.txt +``` + +FRMC instance segmentation uses the original ELF/nifty/vigra backend in a separate Linux conda environment: + +```bash +conda env create -f environment-postprocess.yml +conda activate segneuron-postprocess +python -c "import elf.segmentation.multicut, elf.segmentation.features, elf.segmentation.watershed" +``` + +The environment pins `python-elf=0.8.1`: [ELF 0.9 changed its C++ backend](https://github.com/constantinpape/elf), so upgrading it is a separate compatibility change. On Windows, run this postprocessing environment in Linux/WSL; a successful `pip install` alone does not establish that its compiled dependencies work. The scripts report missing or broken dependencies rather than substituting a different segmentation algorithm. + +The original source, README, notebook and environment freeze are preserved in [`legacy/`](legacy/) from commit `ccb0ba2c5e28e0d2c454e7320c341e71f4eb148c`. The historical `Connect.tar.gz` environment remains available from the [model repository](https://huggingface.co/yanchaoz/SegNeuron); it is not required for the inference commands below. + ## Datasets and Models The datasets required for model development and validation are available [here](https://huggingface.co/datasets/yanchaoz/EMNeuron). The trained models can be download [here](https://huggingface.co/yanchaoz/SegNeuron). If you use any of the following vEM datasets in your work, please also cite the corresponding original publications: @@ -68,40 +103,66 @@ The datasets required for model development and validation are available [here]( -## Training -### 1. Pretraining -``` -cd Pretrain -``` -``` -python pretrain.py -``` -### 2. Supervised Training -``` -cd Train_and_Inference -``` -``` -python supervised_train.py -``` ## Inference -### 1. Affinity Inference -``` -cd Train_and_Inference -``` -``` -python inference.py -``` -### 2. Instance Segmentation -``` -cd Postprocess -``` + +### 1. Affinity inference + +Download [`SegNeuronModel.ckpt`](https://huggingface.co/yanchaoz/SegNeuron/resolve/main/SegNeuronModel.ckpt) to `weights/SegNeuronModel.ckpt`. Input is a nonempty **3D `uint8` TIFF or NPY volume in `(z, y, x)` order**, without a channel or time axis. Choose the imaging scale before running inference; the script does not resize, resample or reinterpret axes. The paper targets approximately 5–10 nm x/y sampling. + +Run from the repository root in the inference environment: + +```bash +python Train_and_Inference/inference.py --input data/raw.tif --checkpoint weights/SegNeuronModel.ckpt --output-dir runs/example --device cpu ``` -python FRMC_post.py + +For a CUDA-enabled PyTorch installation, use `--device cuda:0`. The output directory must not already exist. + +Inference retains MNet's architecture, divides intensities by 255, and blends overlapping `20 × 128 × 128` tiles with Gaussian weights and stride `10 × 64 × 64`. Small inputs are padded for the model and outputs are cropped back to the original shape. Inputs and output accumulators are held in RAM; begin with a representative crop before processing a large volume. + +| Output | Meaning | +|---|---| +| `affinities.npy` | `float32` probabilities, shape `(3, z, y, x)`; channels connect to offsets `(-1,0,0)`, `(0,-1,0)`, `(0,0,-1)` | +| `boundaries.tif` | `float32` auxiliary-head probabilities, shape `(z, y, x)`; historical filename retained | +| `inference.json` | Run settings and input/checkpoint hashes | + +The auxiliary head is trained against `label != 0`; despite its historical filename, its output is foreground/interior confidence, not a membrane probability to invert. FRMC combines it with each affinity channel using the original elementwise minimum. Keep both files from the same run and grid. + +### 2. Instance segmentation + +Activate `segneuron-postprocess` and run from the repository root: + +```bash +python Postprocess/FRMC_post.py --affinities runs/example/affinities.npy --boundaries runs/example/boundaries.tif --output runs/example/segmentation-beta025.tif --beta 0.25 ``` + +The output is a `uint32` neuron-instance label volume with positive IDs on the same `(z, y, x)` grid. NPY output is also supported by choosing a `.npy` filename. Its parent directory must exist and an existing output file is refused. A JSON summary is printed to stdout. Ground truth is optional; add `--ground-truth data/neuron-labels.tif` only when it contains matching neuron-instance annotations on the same grid. This adds adapted Rand error and split/merge variation of information to the summary. Synapse or mitochondria annotations are not neuron ground truth. + +To compare parameters, repeat postprocessing with a different `--beta` and output filename; reuse the same inference outputs. The default `0.25` reproduces the original parameter, not an accuracy guarantee on a new dataset. Inspect merge/split errors across slices and use neuron ground truth to compare accuracy when available. + ### 3. Zero-shot Segmentation Examples on [MitoEM](https://mitoem.grand-challenge.org/) and [Wildenberg](https://bossdb.org/project/wildenberg2023) (scale bar: 2 um)

+## Training + +Training retains the original research data layout and CUDA workflow. Install a CUDA-compatible PyTorch build and `python -m pip install -r requirements-training.txt` in the training environment. Before launching, edit `config/SegNeuron.yaml` inside the corresponding training directory: set `DATA.data_folder`, checkpoint paths and flags under `MODEL`, and an appropriate batch size and worker count. Set `MODEL.pre_train: False` when starting without pretrained weights. `--cfg SegNeuron` selects that YAML basename; it is not a filesystem path. + +Pretraining expects numerically named volumes (`0.tif`, `1.tif`, ...) in the 13 dataset directories listed in [`pretrain_provider.py`](Pretrain/pretrain_provider.py). Supervised training expects raw/instance pairs (`0.tif`, `0_MaskIns.tif`, ...) in the 10 directories listed in [`supervised_provider.py`](Train_and_Inference/supervised_provider.py). Its dataset-balanced sampling retains the original **76-volume order**, with per-directory counts `33, 2, 6, 3, 9, 9, 3, 2, 5, 4`; arbitrary custom folder collections require adapting that sampler. Keep these folders free of unrelated files. Training crops are `20 × 128 × 128`; volumes must remain large enough after the provider's z-subsampling augmentation. + +Run each stage from its own directory: + +```bash +cd Pretrain +python pretrain.py --cfg SegNeuron +``` + +```bash +cd Train_and_Inference +python supervised_train.py --cfg SegNeuron +``` + +The two `cd` commands above are relative to the repository root. Set `CUDA_VISIBLE_DEVICES` before launching to choose GPUs. The retained loops write training losses, previews and checkpoints; the historical validation-related YAML fields do not implement a held-out validation loop. Full retraining and reproduction of the paper's benchmarks require the research datasets and are separate from inference smoke tests. + ## Acknowledgement This code is based on [SSNS-Net](https://github.com/weih527/SSNS-Net) (IEEE TMI'22) by Huang Wei et al. The postprocessing tools are based on [constantinpape/elf](https://github.com/constantinpape/elf). Should you have any further questions, please let us know. Thanks again for your interest. diff --git a/Train_and_Inference/config/SegNeuron.yaml b/Train_and_Inference/config/SegNeuron.yaml index eeef62c..a33b632 100644 --- a/Train_and_Inference/config/SegNeuron.yaml +++ b/Train_and_Inference/config/SegNeuron.yaml @@ -1,6 +1,7 @@ NAME: 'SegNeuron' -MODEL: +MODEL: + model_type: 'superhuman' # Same-size prediction; disable the legacy MALA crop. pre_train: True pretrain_path: '/***/***' continue_train: False diff --git a/Train_and_Inference/inference.py b/Train_and_Inference/inference.py index 7aa21b6..fc52fdb 100644 --- a/Train_and_Inference/inference.py +++ b/Train_and_Inference/inference.py @@ -1,67 +1,212 @@ -import os -import yaml +"""Raw-only SegNeuron inference, retaining the published MNet and patch settings.""" + import argparse -import imageio -import numpy as np -from attrdict import AttrDict -from collections import OrderedDict -from tqdm import tqdm -import warnings -import torch -import torch.nn as nn -from inference_provider import Provider_valid -from model.Mnet import MNet - -os.environ['CUDA_VISIBLE_DEVICES'] = "0" -warnings.filterwarnings("ignore") +from collections.abc import Mapping +import hashlib +from itertools import product +import json +from pathlib import Path +import time + + +CROP_SIZE = (20, 128, 128) +STRIDE = (10, 64, 64) + + +def load_volume(path): + """Read a grayscale uint8 ZYX volume without silently scaling its intensities.""" + import numpy as np + + path = Path(path) + if path.suffix.lower() == ".npy": + volume = np.load(path, allow_pickle=False) + elif path.suffix.lower() in {".tif", ".tiff"}: + import tifffile + + with tifffile.TiffFile(path) as image: + if len(image.series) != 1 or any(axis in image.series[0].axes for axis in "CST"): + raise ValueError("TIFF must contain one grayscale ZYX stack, without color, channel or time axes") + volume = image.series[0].asarray() + else: + raise ValueError("Input must be a .npy, .tif or .tiff volume") + validate_volume(volume) + return volume + + +def validate_volume(volume): + import numpy as np + + if volume.ndim != 3 or any(size == 0 for size in volume.shape): + raise ValueError("Input must be a non-empty 3D grayscale volume in Z,Y,X order") + if volume.dtype != np.uint8: + raise ValueError("Input must have uint8 dtype; convert intensities explicitly before inference") + + +def tile_layout(shape): + """Use the original overlapping grid, including safe padding for tiny/odd inputs.""" + if len(shape) != 3 or any(size <= 0 for size in shape): + raise ValueError("Expected three positive Z,Y,X dimensions") + counts = tuple(max(1, (n - c) // s + 2) for n, c, s in zip(shape, CROP_SIZE, STRIDE)) + padded_shape = tuple(c + (count - 1) * s for c, count, s in zip(CROP_SIZE, counts, STRIDE)) + padding = tuple(((p - n) // 2, (p - n + 1) // 2) for n, p in zip(shape, padded_shape)) + starts = tuple(tuple(i * step for i in range(count)) for count, step in zip(counts, STRIDE)) + return padding, starts + + +def gaussian_weight(): + """Original Gaussian blending weights (sigma=0.2, nonzero floor=1e-6).""" + import numpy as np + + zz, yy, xx = np.meshgrid( + *(np.linspace(-1, 1, n, dtype=np.float32) for n in CROP_SIZE), indexing="ij" + ) + distance = np.sqrt(zz * zz + yy * yy + xx * xx) + return 1e-6 + np.exp(-(distance ** 2 / (2.0 * 0.2 ** 2))) + + +def infer_volume(model, volume, device="cpu", progress=None): + """Return float32 affinities (3,Z,Y,X) and boundaries (Z,Y,X), without GT.""" + import numpy as np + import torch + + validate_volume(volume) + padding, starts = tile_layout(volume.shape) + padded = np.pad(volume, padding, mode="reflect") + sums = np.zeros((4,) + padded.shape, dtype=np.float32) + weights = np.zeros(padded.shape, dtype=np.float32) + patch_weight = gaussian_weight() + total = len(starts[0]) * len(starts[1]) * len(starts[2]) + model = model.to(device).eval() + + with torch.inference_mode(): + for index, position in enumerate(product(*starts), 1): + region = tuple(slice(start, start + size) for start, size in zip(position, CROP_SIZE)) + patch = np.ascontiguousarray(padded[region], dtype=np.float32) / 255.0 + tensor = torch.from_numpy(patch[None, None]).to(device) + affinities, boundaries = model(tensor) + expected = (1, 3) + CROP_SIZE, (1, 1) + CROP_SIZE + if tuple(affinities.shape) != expected[0] or tuple(boundaries.shape) != expected[1]: + raise ValueError("Model output shapes must be (1,3,20,128,128) and (1,1,20,128,128)") + prediction = torch.cat((affinities, boundaries), dim=1)[0].float().cpu().numpy() + if not np.isfinite(prediction).all() or prediction.min() < 0 or prediction.max() > 1: + raise ValueError("Model output must contain finite probabilities in [0,1]") + sums[(slice(None),) + region] += prediction * patch_weight + weights[region] += patch_weight + if progress is not None: + progress(index, total) + + if not np.all(weights > 0): + raise RuntimeError("Inference grid did not cover the volume") + sums /= weights[None] + # A convex blend is a probability; remove only float32 accumulation roundoff. + np.clip(sums, 0.0, 1.0, out=sums) + # An explicit end preserves singleton axes and avoids the empty [0:-0] case. + original = tuple(slice(pad[0], pad[0] + size) for pad, size in zip(padding, volume.shape)) + affinities = sums[(slice(0, 3),) + original].copy() + boundaries = sums[(3,) + original].copy() + return affinities, boundaries + + +def load_checkpoint(model, path): + """Strictly load official model_weights, state_dict, or a bare tensor state dict.""" + import torch + + checkpoint = torch.load(path, map_location="cpu", weights_only=True) + if not isinstance(checkpoint, Mapping): + raise ValueError("Checkpoint must be a state dictionary or contain model_weights/state_dict") + state = checkpoint.get("model_weights", checkpoint.get("state_dict", checkpoint)) + if not isinstance(state, Mapping) or not state: + raise ValueError("Checkpoint has no non-empty model state dictionary") + cleaned = {} + for key, value in state.items(): + if not isinstance(key, str) or not torch.is_tensor(value): + raise ValueError("Model state must map parameter names to tensors") + name = key[7:] if key.startswith("module.") else key + if name in cleaned: + raise ValueError("Checkpoint has duplicate parameter names after removing module. prefix") + cleaned[name] = value + model.load_state_dict(cleaned, strict=True) + + +def select_device(name): + import torch + + device = torch.device(name) + if device.type == "cpu" and device.index is None: + return device + if device.type != "cuda" or device.index is None: + raise ValueError("Device must be cpu or cuda:N (for example cuda:0)") + if not torch.cuda.is_available() or device.index >= torch.cuda.device_count(): + raise ValueError(f"Requested device {name} is not available") + return device + + +def sha256(path): + digest = hashlib.sha256() + with Path(path).open("rb") as stream: + for chunk in iter(lambda: stream.read(1024 * 1024), b""): + digest.update(chunk) + return digest.hexdigest() + + +def main(argv=None): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--input", required=True, type=Path, help="uint8 3D ZYX TIFF or NPY raw volume") + parser.add_argument("--checkpoint", required=True, type=Path, help="MNet checkpoint (.pth or .pt)") + parser.add_argument("--output-dir", required=True, type=Path, help="New directory; existing paths are refused") + parser.add_argument("--device", default="cpu", help="cpu (default) or cuda:N, e.g. cuda:0") + args = parser.parse_args(argv) + for path, label in ((args.input, "Input"), (args.checkpoint, "Checkpoint")): + if not path.is_file(): + parser.error(f"{label} file does not exist: {path}") + if args.output_dir.exists(): + parser.error(f"Output directory already exists: {args.output_dir}; choose a new directory") + + # Keep --help and argument/path checks usable before installing model dependencies. + import numpy as np + import tifffile + import torch + if __package__: + from .model.Mnet import MNet + else: + from model.Mnet import MNet + + try: + device = select_device(args.device) + raw = load_volume(args.input) + model = MNet(1, kn=(32, 64, 96, 128, 256), FMU="sub") + load_checkpoint(model, args.checkpoint) + except (ValueError, RuntimeError, OSError) as exc: + parser.error(str(exc)) + + started = time.perf_counter() + print(f"Input {raw.shape} uint8 ZYX; device={device}", flush=True) + affinities, boundaries = infer_volume( + model, raw, device, progress=lambda i, n: print(f"Patch {i}/{n}", flush=True) + ) + elapsed = time.perf_counter() - started + # Exclusive creation also catches a concurrent run choosing the same destination. + args.output_dir.mkdir(parents=True, exist_ok=False) + np.save(args.output_dir / "affinities.npy", affinities, allow_pickle=False) + tifffile.imwrite(args.output_dir / "boundaries.tif", boundaries, photometric="minisblack", metadata={"axes": "ZYX"}) + padding, starts = tile_layout(raw.shape) + manifest = { + "input": {"path": str(args.input.resolve()), "sha256": sha256(args.input), "shape_zyx": list(raw.shape), "dtype": "uint8"}, + "checkpoint": {"path": str(args.checkpoint.resolve()), "sha256": sha256(args.checkpoint)}, + "model": "MNet(1, kn=(32,64,96,128,256), FMU='sub')", + "device": str(device), "torch_version": str(torch.__version__), + "crop_size_zyx": CROP_SIZE, "stride_zyx": STRIDE, "padding_zyx": padding, + "normalization": "float32(raw) / 255.0", "blend": "Gaussian sigma=0.2, floor=1e-6", + "patch_count": len(starts[0]) * len(starts[1]) * len(starts[2]), "inference_seconds": elapsed, + "affinities": {"file": "affinities.npy", "axes": "CZYX", "offsets_zyx": [[-1, 0, 0], [0, -1, 0], [0, 0, -1]], "dtype": "float32"}, + "boundaries": {"file": "boundaries.tif", "axes": "ZYX", "dtype": "float32"}, + } + # Written last: this file records completion of both output writes. + with (args.output_dir / "inference.json").open("x", encoding="utf-8") as stream: + json.dump(manifest, stream, indent=2) + stream.write("\n") + print(f"Saved affinities.npy, boundaries.tif and inference.json to {args.output_dir}", flush=True) + if __name__ == "__main__": - parser = argparse.ArgumentParser() - parser.add_argument('-c', '--cfg', type=str, default='SegNeuron', help='path to config file') - args = parser.parse_args() - cfg_file = args.cfg + '.yaml' - print('cfg_file: ' + cfg_file) - with open('./config/' + cfg_file, 'r') as f: - cfg = AttrDict(yaml.safe_load(f)) - - pth = '/***/***.pth' - - model = MNet(1, kn=(32, 64, 96, 128, 256), FMU='sub').cuda() - checkpoint = torch.load(pth) - new_state_dict = OrderedDict() - state_dict = checkpoint['model_weights'] - for k, v in state_dict.items(): - name = k.replace('module.', '') if 'module' in k else k - new_state_dict[name] = v - print('load mnet!') - model.load_state_dict(new_state_dict) - model = model.cuda() - - model.eval() - valid_provider = Provider_valid(cfg, valid_data='***') - criterion = nn.BCELoss() - dataloader = torch.utils.data.DataLoader(valid_provider, batch_size=1, num_workers=0, - shuffle=False, drop_last=False, pin_memory=True) - - pbar = tqdm(total=len(valid_provider)) - losses_valid = [] - for k, batch in enumerate(dataloader, 0): - inputs, target, _ = batch - inputs = inputs.cuda() - target = target.cuda() - with torch.no_grad(): - pred, bound = model(inputs) - valid_provider.add_vol(np.squeeze(pred.data.cpu().numpy())) - valid_provider.add_bound(np.squeeze(bound.data.cpu().numpy())) - pbar.update(1) - pbar.close() - - out_affs = valid_provider.get_results() - out_bounds = valid_provider.get_results_bound() - - gt_affs = valid_provider.get_gt_affs() - gt_seg = valid_provider.get_gt_lb() - valid_provider.reset_output() - - np.save('/***/***', out_affs) - imageio.volwrite('/***/***.tif', out_bounds.squeeze()) + main() diff --git a/Train_and_Inference/supervised_train.py b/Train_and_Inference/supervised_train.py index a486917..abfbad8 100644 --- a/Train_and_Inference/supervised_train.py +++ b/Train_and_Inference/supervised_train.py @@ -4,15 +4,13 @@ import os -os.environ['CUDA_VISIBLE_DEVICES'] = "0, 1" - import sys import yaml import time import logging import argparse import numpy as np -from attrdict import AttrDict +from addict import Dict as AttrDict from tensorboardX import SummaryWriter from collections import OrderedDict import torch @@ -73,7 +71,7 @@ def load_dataset(cfg): t1 = time.time() train_provider = Provider('train', cfg) print('Done (time: %.2fs)' % (time.time() - t1)) - return train_provider, valid_provider + return train_provider def build_model(cfg, writer): @@ -158,7 +156,7 @@ def loop(cfg, train_provider, model, optimizer, iters, writer): else: raise AttributeError("NO this criterion") - while iters <= cfg.TRAIN.total_iters: + while iters < cfg.TRAIN.total_iters: # train model.train() iters += 1 @@ -254,12 +252,12 @@ def loop(cfg, train_provider, model, optimizer, iters, writer): if args.mode == 'train': writer = init_project(cfg) - train_provider, valid_provider = load_dataset(cfg) + train_provider = load_dataset(cfg) model = build_model(cfg, writer) optimizer = torch.optim.Adam(model.parameters(), lr=cfg.TRAIN.base_lr, betas=(0.9, 0.999), eps=0.01, weight_decay=1e-6, amsgrad=True) init_iters = 0 - loop(cfg, train_provider, valid_provider, model, optimizer, init_iters, writer) + loop(cfg, train_provider, model, optimizer, init_iters, writer) writer.close() else: pass diff --git a/environment-postprocess.yml b/environment-postprocess.yml new file mode 100644 index 0000000..be86191 --- /dev/null +++ b/environment-postprocess.yml @@ -0,0 +1,14 @@ +# Linux environment for the original ELF/nifty/vigra FRMC backend. +# ELF >=0.9 uses a different C++ backend; keep this workflow on 0.8.1. +name: segneuron-postprocess +channels: + - conda-forge + - nodefaults +dependencies: + - python=3.10 + - python-elf=0.8.1 + - nifty + - vigra + - numpy>=1.24,<2 + - tifffile>=2023.7.10 + - scikit-image>=0.20,<1 diff --git a/legacy/Figures/example.png b/legacy/Figures/example.png new file mode 100644 index 0000000000000000000000000000000000000000..6b89dc2bab2f105424f05039529bde8e9f48bffe GIT binary patch literal 1597961 zcmYJacQ{+`AOD}&v=yUhYsA)8RkanH6g8^oLhVhfMu{zvsJ8Zg*QgOijheAHReJiQ(dm$sLKu7aJh#g|<4N49mBEaX{z%NdFN4fQh?wYD<4{%=})*6b1nBu>WrX z_KP2=0RZRUbu}No^0(TWV@|bnOq1A4uMqi5b2I2}HY!p$TTn0YNk`5H*UJ7xdZxdh z!~2DGjnrRvB6u_lQNrQEw{OyPls=)EnHqR%XgK`z=&AG=X+Bm(MQ`}eZU(-z`MnqH z$Ht$;Pel0ef$GtG6&!!kf>Zc+j^2GGB3xVkJ=x5q=wf9RZ+*JRg98VX7u@z+Hc~OY zpy0jGZQht}QcFwAmlLHf&sd43-PRy;5YD~rj6`yFPrp0|kvMAn^}&Io@qe%M1&6bwYW*QN4@7M7C?-G^&twRh^u`Fd^z#M*Zr_-|ppxoOKa z`leU?(pB*N92HTS%41#`2J2n|=YUr??3Gt1U+78IjQ?-t8k=~O{C{@G?>nw6gn?tj z1OnFr0``6~E-B$D2Jqb=e2~>?@ZS)|Me50}M-)DG=nUJ3z#spqn;~v{AWtZ;O2alc ziGUJA-1hm7UmH#pGCb7k`oPNFFT>OAV6NccV3t_Bg?D}un}Q%e&DjWs>I?_HZOWdk@dAOi_oJh175<6PSh;WP5!?B&=+|!p1PBY@{y`q)NVHsQa z*2>ZYe_XhImGwz~k5k*NSl!HRzYP2SB?oi>{7Keo)9~qb72HA~9mk*KJ9GeRG7NNx z9uYb+`Daa%QOPt>mHQ62!X_>6*Ct?t?;CDcsl-XfeX~wn{qC-SJ{67aqlWJ`l-{ZR z(lfB_n0aU}kbBys>>gmv(gK^!h#IcETo;q4kI0YBJS&)2J*boUw-jV*cv3Z7iEUkN zP#v2LaHmWi()MkyoUPa&emT&y{DIZq$9di=dU;$}5=2VqNj^)34C9NE4h}5vV+M2K z_Ak*}Oys zI-algS%Dix{&SmFJdAwrp_f@%Ylq7fYtsqMO1sSuYUcwt$x}V5+!uE^YpV(R<2HSc zq)4BOao>5(HkPj+mD0Q{w*SMVZDn(cwOV!mML-azap(JLb}Ri~_BTx06s?Ybr*sz; zWZf`S-q$=uUp)CA-q78$7SfD7`ETgbOZ4%p(_d<*zh+c4Vs^oZ!%_LQ>`=Rfj!&E0 z=r_FX*p=~==pCfQ`ygAoRESGlE-5cLdW$>4d9{e%)a9iEv z#gn_qKS9A22CX-GJaW2IhpjI@M7MpM3OD$8By6#r78I?)svw#LC-%u~?irpR8p^;3 zgHvw{GVN?^Y_|XG%;?mD^>_`zoGM|NR0{gM!E*QI)EC6I{pR4@Y33?Oj-;a)Q|)m- z-Sb7iR9)I7PY;NDfDLgu2rsqs92{)pN*oEDAZB{>97S#(|M#B<&ru=%)=q)k1Ims@ z7h?Ta7s5{N#d!a&^5Nbdan9~Mw97NyY}SO^6XJf$ZvW>lH!=wBeAP6_P^m=u*=%}n z@tOxL=_D#>U07V=Hs~r0o?R$mpS;V3WJHw9BZY~7{gy&J)LspEpdQ|c`9Esrk~UM> z#ckdR!MTo6fln3oJ2`PSX?Q3%8r3l%-KMO1@rJr5Osx5@G`AbpSh3LQ>9jW=*m5H8npv zYCAu3Q;}|1PORT)+?+u>qY=L5$euJ@&f};Ve24+TEt=CnUMN@#8s1~3RK=SNH(9Ueb_Q7-#KP5Z{ ztFW5kzx~b{$MBDX?qQqC(d>h-Lry_iuDx2TSwZeNajeS0-~;sekgw}t)+!nqY#uG- z>ncKcA}6!P_g5Yq_1u?p7y1;2LmbU5W$wbAPxzKN&Z5|l*HVW5`TW+EsIfOR=mYH+ zfe*NFqyvd|%dGurtkUjm>>~sXxLVAwI9ErjV}b@^ zzeb^-cWE@uaPZ~qvj3@V?8#1(2Tpr&fN%Lr23?+_f%4wbz(wh+wPc!`9+vMWY*rUw z;KTAZ8V5AKC;H>8_G9$f@5+v4rI$Y|^Ta7wMJ`Qiw64F5jzlO%K8Ic9Y(Vtz`?>aH zFLf1N*izDTM2x_7F}Uef_9;-uI1JN zy%4Y7fMW+|m>sgQkZ~gtvz{O$-8yX`5Xldl!1K=UefD(^XC`@lJAIW#900-7cnOe_`)w^4Sj>6&u&A_6PgT`Ap8VObjU;&B6?u#Cv6HZk`F5EEgcm z-5VU0eAgh;d4_VO=Dg80XFI!8_mdm#=yP)1dA;xE6wYC7^_1@C`9?YQw(2=$xNb8% zaO*}`IK}XMU9HCc_L8~=TQP>no^a-eJo0nvK%J%|4?Je}OaBBPkD-HA1tfBfhU#GH z_(gIZ@}v$Y+a+sS7CGjg-tb#VS1BMr*b(vSVAAr9 zeaNylTJE85Tqti-jBt5$s9y#*7+F*)TA~1vnl3IRpe4+Q0%`{)kL#w{Kb=-L*SYntbc-mr2b3 z)9@!WR~bv#0DI1=2WgOY<~#tAW=lovEDT8w+XqvBA;Z;t{|!qA??>%3 zBKH`#C909YxqMb{~2(@`ebHurWmfQfQ1lrodv(B{`;AaCU;8A1g{t#)XZfJtvIWlnBrJV zjU|Imm%w#r^m|-UcEioO5evRb`FS^?qtozY|)5qlcmA?9B96-G6Tlx57n z7!P=^igqy#*$hnRGYr23n*i|&i?Y{yUH%zW`2MmWt3sH+tu`qI8WvG$7_rJ7w7@OpyQ`>K-bPh@YXXlqCT{E;EW&_uCUqEUgh zH}du4NWtgvmRmHM%P>SFxYl+6O+75w=Bu3Z@C58V^h0f>v>tx1EuXSDCrCOcc|U&{ z@9AY8TNSn2d#RHbm6k=&uNw{~Rk@*(EGKSzVkcFB8!1+SZ*j>wV8z+slWjL^!PKc& zQXFdV5@|t2+^FH!*C>CE++*!{K-196l8EaRLGEP^^C%GP;qEYE2eu8PbhvO}dU(7# zeqC`bWLP&xd}(uuw$I1~FPU!({TbA|!cB{Hrd|HxX4j$I`4cv*GHDgl)vEJ^%8(Hy zM|yBKJzYAJ-;hz^?Wbr%AN4JaO6AQ6Rau_2$DJQGdoFzGJoY){VXNwLv}zY9{f0L7 ztPg#v+mt23Le`HJ!3_>8xb6sjQrfA{wd7pyF4(Gc8v5$1wk5Q4>LlVjQP=F3VMuus ztizd?Y<78k9FU$jy9JAW$9jKExhvzf_U(SR{a?e~(3`;ED#Oyt8H!rX6$&pnDH32U z7nlEz!wLz8li*1ZBCYDiFp>$thPE@;vfvl)?!AWb`?B|fmr5FIq?#`!%L zvNU&!OnQTli(0(ilt^t0Q|GGccLX0C*mA)%|8rKMq_}ob0V9ysZKT8I{IPQ z6WlW#eHPnPAMf}HZl^<-y>Wur;>B2dTGv>6O5gjEM`>yUhrwZQGb$?Bd!**!4)ZH9 z@|5wE?k?O=?7)qlp2cp@Ujv5?7;;Qg_af&F47r{q&AgXV9@!|rZn5`W6R|mczBQa5kQa11ZcMNwvS8v<*lC!=Ko|O zro0E`b@01mgY`ew)CAUt;89}jJi;`OXbTybXlFu-plmityUb-A2j6&UK-Vs3(4+!C z02|u_pqM4TC0)N_2wRj61MHr2HiuxO07||Qu)6&~0>ADQBoO+SMu67Jm3Bn%KAWPB zqT!O#u);JLz=Hw883s95*M9l7tISPv+yjw;4oU(eSK=S_1G-BAfYg&KgW81(JWSCK zv%&2nvkBLj=$8Zq5Hu|+{Gg|FiJLtbfS;f&FR(oN(|f3y;Ap&%agShNJWcpDUuTJ) z$jtwZ6}F9}jrZ3$WwcEc1+RBTyS3k@jNrEn1D^sOB2C1aQoE5rluY)Wpk6RV zi^m?L2Cia0n@&<2)W}Ga>tIO>i?(?Ha~3(7rhOK%^{kx9a-3gLk>OT>@1B@-gf`}1 zpJ8yN3i#s}1wq}euc^Pw-MsCUpoKFc-JLXQIBYPn-ES3`-*5n}RCBZS)Yi$4c z9(RY9MV{25GvB_t8l5Y=|k7lSLRWmiRJ*-;**M_8h)+6=h&g8zs-n6@86|Rx2@@0|q z3s*c8jL};wak|DCkpOd&Ltu<%x*KBcFCi)vz=Zk@*zsdmVd~((Mm`;+hR&;My39$0 zb!b?*OTUc8sBSse2z@uJENu~d%k|DbWoEig)|}^e8?`E9U@OteTds~36BZ>FJn0+y z4GP^Xyp!TJ0^ee$k|Y-`gGH3RV$DdF^Trd6DrK{L=Cuo&>C~yQ{yR07)>N~!3i?Kh zT|wvu7wzDRx?>R#n*luEy+JLJaU;s8+2uPq0Zq)XUde%TOC*i<2l_&Ab3wgAvL-Fh zc2)ipyE{>Ro90c)&{^nlnLsMKp>g+m*?t^+$>SgTiY3TWqaOlxx5DlYF7&x5vWCdP7Pp1~9U&^f#}+rr@IMqNv8=gCHv#1dHjv<`Y(auf>KhXg7;gnF)eIX!f~ z8&1%6k0P|&JdApG@+$FqF;ajLAD};|(#EcG3G%>nJe<>DUIvR;`G&EX$#^}L%6aLA z3fBu){E{ptd(Zs);N4}F@+f*aY!p4BYd>8*c_@~?1-7W6J%0lc6QXXmlw#R>9U;-C zbbMD8a?Fj5ZKbGmISZxmc=-tFU0P4CF?Qni@)An9N=#VWwB$x~sd(T$)Ho1GtF`@t z$H?@EL#nBy>WNb6Yl^qzanuxF%2nif*&XT*a!cPMG9)Lzx?9-XoxgOO6#YjPA8ict z5h}$D%y*rgyE$ub&ZmuT>=rpj>aF;c{9lNhp9ru4>b3J4eh|?>(Ps&2a|pgJ*`d)A zP6x!dd)Zw6D`7$qyn$-63Lw0N0ccSGrpxyL9rEC8rYS~WbD_|OfMVK& zhnuc^`pb5%>zfA7L8*0RP!GFIYDL~gM>%|xQ(1GNhRZHj8hzVh$Q)uZbR?FUK zXY6_qqs;Y=6eW_^F#9Sr-T=GGi+OWdG;eA$jM^D}{JE1eZc+bqgNL%LEUWGs$!u@d z7rAvGY%gLyge#ckkPcTm`@tBlfsr0w$x)~Z@#o;Ni!9sHG?Dq`?#*6)2$5d;&40_` z3$uFN(?68z7&Y?X4;>IwMNDHy?6IG|OxEcO{J2+uy@BhSr;1gXupzV?Uyp!s+NgeJ zO`IWFFXo=KXQ8jW7FDQu{F3L|j0U4Za<&Ui=B=-Wo<-6;TCi^q&_yf8^rnyA(TjqA zbD8$!8y8i5n#D-Lp2Hi<`hzHC0>V$087k!ejnr|?xm<4(VqR}g`6as=$e*36u-8tD zqf0RpG#Ru;GCk=rlEuB`Xea5S7qCSxSUp~Yyzh4fK0E_=@q%OPe3ZiY4yCr!0DaOa)5^fA!xyx_)7L#hqr;Q}OR>H^*(8^})TCH9uv+ zk5WWiPwpP{nLLZF`<}I^o%uj*lEuff-Z(4$%QshDIfwdpA2y|EB;$%JKe^e*OnSkr zo-{b3RV~dYXnfu_4~5c~S-K>th8-v<)yEc2T1Av#>lwX02-H!(qbK3|%a(P;hI4X} z8Z~fbH+e+Q@2M&a>mOUHS;iCEq)dCqf!*3MvG22r!`I7vNSn$p+-vI{uo z^PS26xzbIud~N$;l^jgr^%%ywi0-7Z&%I5~QHWxe>z6`~%*X6-!~EP2YJ-Kp#{6XU zDtj4uHinKS{Or+!Sta^7rU?v9bxUp8BGcV`TcljGjnBfNe;4#C(M(3>7%`R#xH)9(4;*rj0PF!MRt zvC5trX}^RhK->!~P~+zm-@5TGXID%ux>e&iXLmL!XSby)cXy^nbI!}bvOqMz&(3r3 z`sh)gWbUq^oOETZ;Fdem_rpg^PeX5y{iFS{E`+DpEt6YgIWAVK$4esQx;24Qh-s7!jDPg3cjVsx}xLiuJz1#-;3UK**dt^$o9d!nf z0YF|b_WhOhg}UGXg{X&g06Q9{azj*t0x%y{(M=aEvb+XR28sq5eGA~_WJ{5pMfJtf zivkS*FdYHNUW9`lKp@^#?Bg!rZ9B^xbI#@WE4p4d;0X30@aC#Qm>ZDL{-8(rQ!@*P zjT`mQlkd!np0|DEbvT=iY!01FO8E;1Lr4Y3l?I19fdzByGVotVwzd zw91PbfctEGraBV7nqGi)fGZRI->Y~LpDBJOiR4b5)($p7M^^8OE7$XoHdSt|RVrwj zJocx62erVdG3^o{WqmN8u)rsH(+=uN-cI80;#8_qIU7ogqX;b6w;pDvbLlV%c)Gh{ zIzV<;DE&NGS!aYWc&fd=-K+CeB9eJeI386^7-HN?U1q_j7o@7+o5sfVGBpalCUb=R z8s7R4ZsXjUlX?$yChR%&Y{$y0Ps~l7@s==T&2Iiwyr9Ge7&~@l9H9Xx7fh7~R}a1OqlM{_LL$r0^ z)*yYVU%GgLsl9BJe}2jov>Wq)x5Akq>oo{Z*ok%Yqlj4z;#7T~Ir%#bV*b zknmfwKV?}XBv^m{lD`H@dAHuvvL&H4Cvt+_*cx{GaksWd8;JOf9o5 zJ6jx98P+L<3m_wm{wZ6J-3_+1PMS67^OtE8{Ti{oel%)ENyRR~_<|Qi8dE3z)4vYw zxR{eHC&tw#)qV6Yrv zIdQ1NVie7H1{A*FbXLEZQ|eE%NK@B_UT0E!2`7rkWgjsmZm;)3FqSmln9R7??%7GL zCE6e@d&=F>`k<3H${5FoS&tXFdg65E-MDaw#LX3ukMec=FjUc#BYQo&POidE) zFDbayy$L>$9JP=&(rF4&&x-w}8f-S$Q1SI1j?aPAp?>#mr>C51-;ttf1+GrK>udbU zN_1<^K|AN}ju>7}@EULiAy_3zJinD592@iTAcligj;VI~VxF}{bhdsy4>(1(cJA)f zwVBUOnsCCn?jtteY@dF8BO8=cvzxJ)Gc*BCj?$0-t6~bmmgFi(5 zUDC{6AXJL~Z=m3osMQi3ie`<*gWVVP+VB%C4?9SQw_Tx~<=eu9BOnNR^$`m&Atc$D z$N#qlvKIhIDToT`0qAAtBcKir*P+*L(vHx(Q1n44DK8*fOgznfUPj%JH#C8?{_$cc zRY`T!?QojE_0%;NN7iRoifk=DW|`bG{mJ+WR&oF^hnf{{0Ez(Ce-(eTq_Vy-P#5n5 zOOBxeu$Ua+8<6XtxK{SZR*yfS4*pZpB~O4mNzS(K20szDyXE8_es(J_2+Ou(I}OMi3r*XhVwzN1(6+p&vi5WpQyn=ui0 z?IBVz(nxV_ER~6d^bn$kiLe0Zh(wp%P&W>L>EN08##OL&8pQq!y_h&y^f-AcY5_W89j)T!;Ya5kY8toW+5Szw~B~ z8nH`x{o`xLOG`o@)&{g1Za>c$kfO>8(DbIdFeDmeL;&q0IfG?9=$HhjBIQ+cd0JLJ zP<|N3vg7T(8s0a7(eotmY(aTClNAaXT|ZRkr0=?lw07!qBzncGbkSLF;tI}AV>2E& z7niSfig$ZA+aEG3J4&x&lJ?hht?9nNp$69n_Pr*Z6JIray=Kce#ic>K%Dh`=c8h1i z{okZ#Fl|7~6MdDdk~-QB`3he-0q9sLobqTHWJ#e_SZGA0YAEl0c^xlZi!+R;>0X8% zESN*?B{zS0Kpd;-@ZJ9f@{Tu&Wq&~Ek|sX2hI%MQNm6vVKuGR zHC)9j(rgMCu9}1nb;-uvZKM7x$DJseU%xt`hw6c?sup`h_J=4q?3Kw zwVv&L*-TfCcdk7sF!C0WJ+8V``CQHQQAx)rqwup#8ze~X^_Q0n$%y2>*h)8u_W&jW z9)IHPBr-{IPY+h~xqFg-iYOThmGxqI)T4bdvUc96yKxH?-%Qj$HJy0v9xP(IT&8Ri zq`Zgfl{IMyea2b5!sR&Qf9T8l;qm1kx*NGN;tGfy6xBFAd^f$Fg?(xd=?Z#V-cXgfl-a*u;ZTzMIDv^+Fu>{sOvA z{gOF|G|?PBb*Xes>hIv8dpk*Ot|n)wsl+PTpZND=ST5yFmq#Z#aoykL^6W1%@1#gP zv@v{dShW;+>2Ab3(s|&ayF!|SW&e*gr9IMG(?b24 zWcLs8joS`=n9-x@s+?U=D;R-nRfMEW_$H}OaUs#FFHYzF{M)>j;B$hFg4ou@4w{_= zXbZh#DH2@$kteDnJRMn zQ~}KQ*m^HNW#|=AL{W{m0m^`QD9A?U?*$62uFUDHN3pNIZU9z5^Vh(Ap@r`SPy)To z$_)Pr%>Zmrs>`9OfIO5_HmH5rg}0Nw9eQqu@MlO;>N2JX_-EmF- z2qb>ypBiHk24pYA08x50z<_Q8!X@&fY?{;QPb%@Eu5rpfe9vY##Gy(f2_7g1S5311 z9Z^%7H*zKi4A0DfPEAXRA2o;pj>0s|*-m9!-38&0Jl(SJ``qeBYq@dmC%liAihKbX z@)~!^SVO4afumpBbToSU4}_{o2RtOlslh8_+?Y5ZOWNh44q#GVm`u!2H^6=WXB^hn zWa+hx?Nf(x4C-?)o#z`hDAr#!B)XSrDN-UhnUU~Ti5C-6zv_W1rFPZ9lO&+F0BLB7 zG#M3ps)KADk>;Sg8Lp!-G9z9-WnkrGP$@xVWBz5(ZnQrH?xj-{LdJ6|h~tHa$=pnO zYOwq!x5bxmjAT=)QaXl~$f8q{FPPUU6K}*9-c#K+Y=Lo{x9fyxDj~yl?IT{oUWG;v zvu@coQKouQ7CG3(NGlODP#zy>b7dUa*4#7dl^v%nYVQ*@UdL5}m5lTFSa>k_#bY`% zbD0xS;{9JJ(P-{oa%1ExTal%HH$|c}c+|S>G(0aMX#-#$X}gM%c~q~+NbYBK0h$Xn z#0;bmJ{Bfy+L4?2j5gZG$4oGQVDr1LO1MP^0CB%E;hb)BSCT-{`gy1{ip;RkKu^DqOYFLXKbE zQCX`HG9yK0zhW$1yRUuhGuD5QNK1U7|0QLsoXQ4j>Amu=J5+Wfe#%yjRM&r%QYK!X zT%;0UEpBqC@}lGosR7a${QAmz@RSBXr+pN=?HbFavD3gt5Rt`vD{I(ELw?yNPpOog zaGm?rr{`1m!@j0tCiHWa_{quE31=>!ce|ZHxYOiI!8il9D8kb0mP9(<9%Ea(fbF9; zZcoar_ZVE)lSJpXVO490M}02S&H>F{2SFEf^)pv-1O6G4SFEV1i5O{E(!u>^5g?X@|Ko|ddZhe-!K5cW1>81WT9)2Y zNNz4<@5wakoz}R2)T}kwm^YQxY3X^HSazp&_!c$@*AOGW60OyIVEHLSLFI1!LhtK( zSNqfR#_4S?pA-upm!QXUH4lz+{mdkjWwRn8+8C;y7(d2uw(=qL2r)4gB6`k`@y^4s zt$$2DGgYZcA8!bbKxz-U?_d8oXBgSW+a$bIJ1hR#c>LdGkqdVGR>+Y1{xco=N0YZ? zZI5`xCMIkDUnW6)as7Qe>jw!FBAX5U-qjF7pI^HK+aK^b6N4!GvtJ$nA-ndmRVLcM zZ0|2sfaEL9Xgrh4NmYxq;dH4`CO~TZjo8OG6u94efQ5nbwvRz0v_*h58U|n{^RsLI zmoypI%vu<(9(2l%@Prfi4rqyjswh{Kcf0ss#Xf#i3&ph0RsiL2HuHHz;|8$x&|@AY zSbJgm^4Uylh1LN>-b7_L?54M&>0_sba!VFY(fr+v2oQZl zjk_7R33^m$m<@i>6#(x=x~falg$B^N0T-cCA0v(U+wW#qQYoL1Qxj9h0YYC7i$FHg zmI-uBT&klIl@}C(5YC>*(v)6sFhwVLt86fiwU-Yu5``pxO{HzW?)hy;X^gNRH|-Ss+x19kEFP6U@MGs;y~ zn3&Ld+O0-pNf4Eb{`6)*6e!;X6~#?;@rrGpZ?6aGUOvK0Q>AuD_Sfmun1q2iPPCc4b*#m2F<*~E&8J2rF+rDbhSo8(VPaYj9WimmuO#A6i|4fI;bhab@6*jM>M; zyf`_{Todd>L1TxLOI1+*c++hE!RUoW7jWg^-0DzuX$@ikc^Cd7n#@78Yi^e(xfZIf z6l<4e_{{krU~UJ3A@$Pb5V1u~pJ6#{k;KLPp7}@*z;A;wR#|`K| z-B;mA++Oxuy=M0ZeyCsucjUCUOQOzYuPoLV%2pPvlJQw#}Odb zk%WQa7=nA4Hf;C;HgrQq;rb$9ALxCYeRID!p0nWbLH7l+O$*JTe9FzC#2h_7NWkSP z)aO@kU^m4j!z+g#t&zt$J$rei5#N?A*q?N2FQkC3sblT#J zJLvI?_ps+G-gH0CHHIT5I+>e#8pXD1rxeXj_;@EA`1f4~^;iOO;=fiDJ0gl&TmOHI zdw$Ny6jiNP!8LN3j>vqEZVNaCoNU+rTdy`AA^_D!meA6NNQOf`T9i%E3M;6YlmL1G zRnS*-U=EO}JsMWR1b7X|0yaY3PEa!=h$l1ue|7_6CVFLn0 zsX`TcXfezcF;>TnUqyBRO8`cI>KuZ`0;PevZ-_USSuJ{dL34YF>&lD%Bz1zR7{e>| zvUO15!Zie@bo-dLLij!4KGRc_lJKQ=7M@8mD8S(Qr||ncOCwQgU7-rg z=X{zUFbOhjT#JKbCOSG!b(WhwJvt!Ii17s_465Bmq?PdCA~O-rKh0$;-pZDJ`XO3f zRq*|qTNcwzhfr!vC?9|{suJ-MQ6Y(@xLd&Jt_pKbGh`F^0Ai@jG9Au+7prg<0N;r@ z1w}`zTzRQ7Ox3O(bLd<0`f;p$vQ+pkz%)P;nfGC1N`x>gzU!RW)gXlq5`Kd!Gj$2yvvUh2+FC`YQ2w-lBFXR>W?1%5?O<^ZREX ztiw&xd|f1k(%ola`z}dibVYrf_g8&5>zQCb8D*Fuq1K7sXMfbINQnU~g3m-Qkia1A z+%y)_6YdOXB5S=aaz2&jjt6(&2OW4eQ}#Gj!sWlG&vfkef_;zrKqPiaofx6+fA1z< z&4jzxj()Oc+tHE0xMppnzBW0ZGHi}=_Q5uHl_^Rj$2it7pI1pJMM~`d!neESp=C0( z!E^$agO+ZbAQv=d?PrgBB!8E-5eRwvI8lbvf|Ta_6eCsVw*xL)QJti5U`YtdbgNd4*4BnO+Xr)N z6MxBKW!2%!h%m4iT_ses5__WOxgCsc$vI*3 zNgZDALR0QV2d03;>+d#6ya#U_r%k@ZcYO$G`19jinGew+FCeu};Try*XI?&7_IFEB zVB|et%c04|NY0}+FOxfdxI-aTi_k_)fN5v_{tzc~jHVc6%Ejma`9Ch#su8854io ztL%vrPi5gn5bTbWL*L9W*JC_d>ETxpN$X&L_wm7cL5{+n>qGPOX~_qS4EA^lB%jB6 zI;YA(ftyu%$DOUfj<+%Of4|4Pe%0CE!P4+oEJnU)4=7yLGE?>g&6;L8=!xx+T3kNb z=3cctB2;j=-w$u13^;c`mgDEV};n*YPVb63G+>O|G(Ny>0DbkQi@ON6;&=MS<@ap#5w*BNhAMLI;q ztXx^%>;xP0KRs7|fr$D4xpEei;TRwePz3}n)7}$6v1-z^lXJm^bg9I!Cbg-AEA7v4 z3C!&<8`L0*&%fL8@vw!tZ&{BZzx!W*pj(JR$G zJ_Ul(??eLv-CnJtAhVJ$upYPt7=UX2m1W~CT(dB2ibo z9o~;z*{?3s8nDw5Y_pgyE$!7DWNtQHd&CD|;-?LNfIK00Nt|_QanumQw!7TRlr?Qq zAD~6-mZkn)w-pswPB3f`bs9{$LV2A9yaD`un%uzbU_czW%_-@52(0kt!_k7K1sa5% z$@ABk>;uC!AomTSMGckTzkVBr^P{I~@bE5%7xT^0G2R6piGBpTc`R-6@s&KS`yv>! zVJXyD@GAwELAGWM_ry=!?__Hth8YET6Qq4K=Bo7hMoo4i45>!QLp_f+M2Z@dfMS&j zF)=2|;;H(j@UmUFWqN@8d8@+_`$e#E!!&5(qiD2C?h|aAtK*OETK=eTShA_qsr_u6Du15c0V8etXL9qQT#VY3H^w$(}XkHgUdToTNbaPyg1{oHPVR!Qt zKq2wv$X8(&s}nz}FFp55e5UoAt!<9H*EZ|pk!#g}w$(@kEeW!%M6`CvD-}giDx%Fg z!EllMPPGq42Cw;bc_vi?3Zx}@)~zO{US|9_VNwss_wA$43-kAFc|H(h@9ypC_EOD) zbKLq!?DV%AuK~EU+0ddMQptr_`+Cr~w47pAM9KqAJ>`GVGi7AqjU%gD^j`nhK~b;@ zxR{1a%~MO9tziUWr57J77n<%!&%P_nZEdwUju^v2nGAg&PA|E}O3f?){bC-)wyFV(we`PWUChQ^(l4YKE{HP;Fvk@XD#iaWXSjs;nyJA9JI@qs5l*@$S^PxqwfH zK03Q*x-`3l%-nz;rCdt;zfm}G^qYy3J9p=wBWRVuTF*6xqQtUGUCw$NDI2 z^!R>Ld=)A4kN76{Wf7ew%GeFhnQxDgmKW*6x7vieUj-!EJdW!Bey)qntTu-nwyigl zynbFpBr5fWPfotBVmBT)>a#h_e2+NfQZ(Z5n$tsJW1QA3q8+k7@e&jhFK;36 zUApTgoW3_nzUzjk}l{8MGy}35*3%v$=pAjIq6&?&Myr?mOfXsi)uV|Xb=z*)Zd;)2i68Pwz zhq&I?HiQIy2d9r-m!Vm9=2SE<>W~Nrwu7?ypx=?5SI{EzY{|x(duoXv`I~p**;XTK9nZ?EswsgdHF9FyRa5H4i9+B#Cc|pvAJB! z7#Oin7ub~~F|ZOtkC^b*wzY8>iOro3-ATZLDGgBCWHI%RCe#=t=4>GvaYxVqjq%IN(RA z;J1{6uFwo2ZyAR4N@kUK&PDo!;qJxs(zWhn)KgzhB+=;3lot4J&9#T0@rznW;{0tP zl>ErJuVPga7nfbA==!JA0?^+?(6oUHM`$mN=aLdmQOi}{B&*odiv=@i*v%7n_(Cor z^H76Yh_?Gh60QD+E+5crt>C8#QCV--BGP3KAzi*tJ$Yf~8tHaCa4XozIl~$2^#m{4 zXW6=N>8ucF9K#miXk~2twLsqFytD4c(nUZ2*64Ak<_`GjGo`_SjQ9lId7+)+yL4566~K8Uc|CXf`98}-EwBeqYjZ<8Pdb9+GV4|`=^p|)2uQ*kk}>3TJPvU z>4HI^=}lJhZC$#CCK)rD%0=e4qQStLTv?kMM&^uP-7aV@+l{T;qP*4lCLZaUsuxE-F|g5j*z7M^lKt~Pwd*NRZ0OT`1^87M++l)Khwxmoy@ zAHNSskTBgrv3sr$eHIlIfSo5SzTEb9^BfcLn*cBWc{2nbhXoXBMZA;QG0RgsGVGRc z$#_@7mn6CKjxAJ2`NRU&Rr5}zNl0~8W4RwX`2-}q9~yA|SHR)pS#p^g%%{aj#G?H0 zS3W$EPMd?~?ZE9@yWpbz@^|4u97q2jRqq+pRNQv`?hqh!f`D{F07a#V2uKT|gGf=N zR{=qK?*W3+dr^8*5u}Bt^ri*~(gZ<3s-gGZ+nf7&pL3scKIB^_vuAc@?fqZZZ>`JU zyaG31rHg5jc%d=I>E3hulnb2C+c+3Zrd9@5WlPOptap5tlDenDfgJg1ztA3dn^sy9 zu`FXe>r_}&!i0N%IOv@mGz$5u9q(-s(I>oII?FW&SaRkiEhuB|wZ zG&k83%V2YOX;$2KcZPAXX92Ac5hzwPW_hOc2fkE}S?AsSiO*o8FlthM zDCe#7aJ!8wD{&guA3Ca7`B7kPvnYwB><<<++sb2WUhR1TbJxTEDWp)Sy1d>kQXT9x zQ5hV5^I^HJUPb%bXlTEm^20LQawY$4(;Y3jWx;C8vjf9N6cOSaXZ_6t$o}$)xX-Ff(i8FFuF@t9R4o3N!jR2?`@! zH4;gKTmS2yH~sf9Ky;uG1Ed1?^oM~^&=BwvErup$Aif7&@;j}JwmWNLcpOKXpRP;vrJ$I*BR4++;DnaI9enS1Zu-k7YIYi zb>eeCPDEd93X>Fh-Z>2uJ~fP`xI(mm4~nNMS)-QazeSNG;$hiA0TV7aaBp=5{j^ zYj8BwZA$kTABNcgLrIouKl+g_)d;@s(cM_$Yr{&u2607GfdO#VxDpCHi1ID>yXkAy znc;Ms^CZW$GtF}mOcYm{GEO?ct$*_5NtC7t`b4Rv3gSV28aJX~yV@&rLXR$n9epU< zM7mbP4f;U8Vq_Sa(KeoSgYJmrw@yTHUmq)lT>Q|!;AcYFnKb@%?GkIdsC}H)zDWJx z&jnN!(f=l>GtQb0xkQfB$=^FL=h5zjpj$%#c<@p(Vrn4~pKJJ#Q4R-7q$in4LKazO8ps6}KQgY>Gv*eK2vXk_VX`WQ%))|s)SaT!h z&;^&(E=G@896$C znYSZn&gb9BMAbq$aIy)M;AF==(%e0se=Yh~K{saC~eEU>AOrUxR`91Oo0 zRrzXRb|_s*y=R2tYE2eE{cC1dg#Prbj+aq4`5o`9p7MFA8)o0E<<6O}x5+Qj-JoCk zeowE$pw^Uc#91ui3a@Ndz!TVD_he7y(p|2@bz?41DfoANX=Y-M-r%U;C3gkg=9!M% zgt}0}pJtb;;;gdUTq3K}n%0myyorxq$SD)3KMg-4lIt@xrP@U6KGV9KzY(Tkn?ZDm$JG=fQ?4(T9%mn<7ytAYy*>SEBF4T_#<#)mZvEbsjO!QA zu3_v?N^Tz?VQgtVb!!bqfULQ-iD!dsc&k9+r&8{iMM^3~Vp@>r)+gj8ZqdtH$ngYlwn_yU_kOS| zNE(%3^w@8zv8^aK=Hv@GcQi{ za%(MDHL1wSj0e!5-+2jb^#ajtjgI_*}Hc8Qj z%Mw-3;YWgmMDQ4)*9h*&!z7B&v|LJIfL{<%R<5Iyr2xQ8PKqV<0sV;2EhOiHbVQ?& z4~OWJ7g6Z@J2YgVFru52l@>^mj;V{#9W_B>1~lz1aU4kMQMb$iInsu05`9(&-b9z= zeOI{vE@UgHTfh{Vuyas2dISk;V$KIXoq{`Fx_E(Hc;?hM~uq{@37n; z${5`05VB;gd6S5Oxbf5{DK9yGBASbDMM<~@a3zjsf!Bd77Mun35e$n3p`Cnzt#qZwkg)EtP@)zQ<(1Q zIa*@4WFbaURc>1)cSAmIGLfNvRy=?;k_M+6T=n6*t5jC8Un)J$bC&|ETm?$*BnmpE z8IRczHCW!`;49Al@hXlCMtAKovn;ajLS&Zs+)ITr z6OH+fHtp#5-`cH_nyr58@|xps44or={rg++JeL94uo4xYeYy>&r8zs-Z!GV56jS?Y zq)T0odLgUjWX?na?TKdm$9%sRl+{H?CI76(#2bl#+e?LQYtjZhXAB_;OtVMeHxf#0 z)Naba=dljYL+sCjp)BSlyXDU;2V;Xa55k_ih z64ZTVMPwf{@~#%6xTiwHWt~JHB}PjTr8=g#%jYr?$1!4JQ`I0JXCs>Czf-x5IGq90 zy7*v=&LmPUn=;whnA5MJ^f;=?2*-r|4%*z&8)GVx^8s_lwp&Lf7Hj1wgC7&<+!G{K zLswOLAZY+=s&f!``^rE1r%R&hiM-IC%Umo!u?kz-JNQ9T!DbQiu&3|NYh5}O!X8xYe@m+0r66SUy?*JG{I(|V>JBXDLWGICt1(B}R0pxn>; zpvA8HJ)^JJomAhp;xEV46@AiMYb@?F6?|PEX7UWjO)fOm&TPAtB?jX7g^U@-w%siZ zJCDAv3+a}UeTlytPV+lIrcL5ddGQwF6 z7jgTs+gmsU$Fl`>1FP`7`DDM!dx&EvY;N}ki$(VF+R5MY%Xy4zn}9y%UR|Z)uwKtm zIJ-H{j)Eol>-2QzEZOnRuUFA{PP->z91~V$uQuHczZ_*VDPA{keNkvL!OcPG#wz|t z^JQpl|NL)m<~gIb5cppx*Hr<;jeA+<9~JW+L;@fwpxuEi@Z3j#3I^wc*3pkFDRf|l zAVZ=9kXgCT?eY#B5r_uIfTgWFwZ$LW*NXi2(&laat>D2 z)p!Qnku;F&B6`e5>qm(r<+PFOu;ljvS^&;vqOoM4ji&?pfQ;CZynxjoVmSh<%1l^7 z0t4i{Y-9JN`K9{?eamj4Ee?n*tN7W#FVU%83YOK`)#yNV6?o$~Qz-foQ9(8J2k2a6 z4$%jYBH9WNx#VhNhfvu_w0+_~XZsJBLzvPT=i(22ov_QnCh&Q7KPTl9y=uM$HKq!il#bPb4&<;P=?+B=r&bL?DeB2 z7}YzrHwN36AYml9{an=HU9D9u)j|ethMsq{j8T*eymC?5`mQmWt&)Nt2awn=SwJ_OH?XM}kLw9|1*V&0hI9i%${a2frm1jOJJZ2Vu+l~*9 zAOGWb_6ZVrS_qphrSwv39+IzkC)k89Jj@iz*M2&E)c?MR@er{8 z$EtffM~W>)Be+?IXF1ozC6#0=jjbThxf8>zKSozY#)6Gzww*0CuuaR}L^`6|uSOJ> zdCC?_rOIjG9!bPY_d>8$DDAz0wPxN3UC0&27;g83nBsNZ^`h?4JVJ?m$nIgQs$&8? z_cG20Q*9=J{mA;WYfClhKIhf@dTT5(cdyJS#n)QmM>$Oh&Go@X+Z)I4) zUa^|(N>_yWit*fH8i9rt2Tk-zI;;2bkV|(@h~G4;m5eM*gcfhibLPdL{BBLk@uHmz zSiF+g?C}&us5;~}EjH#(Hro&MG%#z+`MWeGYEH1m+rl9?2|jaFQ@rM%0 z)|)?&$-@C|!0`IBi8;>DU^Jdrt$Aj3=mHz}D)>BtNq>qOgSkC+neCet%soOOwPfS8(a82Q7x5=mF{bX8|K|4FuL5OdBUgspk{uFn>K>Z#j zNh5YP-4!NluysRL0>&wupU)(l7<_*Tv0MFUku4p2TA#zrH1km6=9JqrQ?dOn!=_Db zD62O3Gexlg3)ct-72%+Cx+?^_|BFp-}O?Qz9PiTSt#Adq@~kB@E=b0 zN>n>JR5$5;*=t=y@)2ZC6bke?7+JC%b`%clh8!Y~QZnnW*3+ z7##8`Ni4iv^%phYB%_Bd-2C0@^;E^ZLZ$J>2&Q8SIl(L2Qr<=@PCa4Zdq~%B}aGMM^@@dAVMe3zH$J>eWVHCu5yBMuhLr*laXRr zC{IBxBEGz!4#tz$4F|@mO+Yfpl?*B+#bg<7_^?hgOIU}Zib~1OZdNurmzQmr=n*jk z*pyqH>^s4r=RnF3ofLs}$lW3U;2~UNLsSAyJ&oQ1o?R(%5w%ZHmW1!zmk0yUQMsW% z0IfnQ^iu&~5^ao=@)TzhUog2+w5e&;Bhr5XvW0@s_LeQxAo03Y+Jc1V_xU^_eMEnO z=Uxi0CA<8ro(t@PEx-X#h}t6?C~TDtN9&~+2H#2&A){UfZchAkc!Gp`Kz?P2ACga5 zg#^XE`Iv}kqD~74;5^}npkvX>+Lt`$Cr`APnbg!=#pfuMvKuASX!c@YSf=w~iD#f3xYO!}w49`n!J8QJ@0?4NcRu+pebTepOU4P?MCloHXr6}4XqlnXnQ-2c zJOI(J6id!QmL#R+ur?9gLVHD^idjz zzv*K#d|X~$P#Iv;Zb-)zB`&hvY+3;R&aaMe*Ob^5uv`6Rd(j_)ed`J@Y67J!_=oB$jZwes0+)aNICVnbPj$S&6z$b-Cy1p*0wcDE3D=9&&TA#k9vO+9 z;FQGt@i(*OTu+Y|iIRm66mRdPN@0c8IL_I$uYUh9bl|lZQWt;*?AA9fDpDLkKcb@1 z;Na#o++9xt-&4ihXZZ_Id=AIr#?tUOvZD8T%zn|EW$uuJ4o;d{g>Tm!N)o`NTWQB} z(~KyL@gQ#OFOJ?K*4dUB^9eS9OxxjH$4G*YrDTX>MlH#p%P+w@`|tl^W_szbn+L}o z?(DQv#Vt3q@s!3zkNdoNv*01?H9fqS6a9rrv9DJAZio|*}|JL@a%g_0fXSt$wjWPLX0o@{cyD&|O;{6TD`GK(p3 zC_P&@E=w!rSW=x@Z{YI~?ifh$Z56W^)BH*!S)wh~=z8Ph(%Yl{t|O-g`NU(wV_d8k`12mk6@deacv?Wy+^Jh=s( zdGl86XdDpNwaI}u36~l=y8XrRry*-=_lH1#s(k+~wV=0yck8DRQ~qqt)R*~9n#v=s zT)&I@g&eM3l-b42xfWDzRCb~?;jlY4%J5Y6k$0UA&8F_hJ!4AyS9sSkSg^NX&r-;g zk+;PCgTR~z9~-VGk9WKAbJ>_g2@9`heKH$*BEI!1eG_GLvgb@5PVnNJuNzDVP8hDf zS}pMK@4?DyV96^F$|o*8Pue=p+EZt`)rQT;Ttgm_+jzxA!@qyv|Um~{)n=g6T` z?3}twb@pryYE*A2Xk>7+FjpHp{gvPj|2-UtX%jZ*43Z0y3CKV77YJIK!0+1;;G22( z-my03`ruPh_jLm~CfN0NKKyT3+ru`mfvJZ5ooVaEyx%I<7QT8lc5nlx;ZcfaEq`aY z2F0lhJW85>i*$ZVY_O}o?PB!A-u>D_9p}ySyFTI1R=twrY`y`#$HyMTo1vz)pRcB+ zYg6V*UOM#bTmDz%^*~xDKUgf2E4%ku3y9T|HKUjS0L?}QRw8QqOKVD^0@epPA%i-| z3Puq8>A)P)98ESy8%4DM+5!0KOwjt4EqYpNB$g6H)XZ8ETzqp(-$-`$zli9NyrRW= zQq6Umt^fy+4WiNHyZYZ(G}_f~ftT zJwl_TK$W4o>Xw-j9ODt37mv~ExI34ifsE+ zj}qhLUjg=~4=nOO)6O+D0KxD8z~YRFZ9v(}|3jX|=9pYFTxMnYZpglfgiUzxI0fA| zAFmIQ4c1`G%<=o$yflFzc95HsJ-ZUi4jpc#zIdHuyZI{A*?ee8-M=!*nty+e&GNoQ z2H)hQ-HcbNDAM_8RO0@PsEtR#d>dpfc$j+uj5x(THx{k1RTX;*Y#uB(@D@RRo$lm? zP65w@(_#3CO)MLm^kB<4v428`t%1l=v;VGpN|lEK`--rEPjoXo40>k^Rm>B#ND&0Y zuf1^}1)qKn25b&HnGOmPC3`>%jO|r)mZApE(eQvrS{7tBg|u=#AzbBu=Ou`s_e;!i zioCfw0DJF??r7~J2Fk7liT%18QPiEBuszvXkn>`(^Tw@#5$?G=*VV#!ZrB|FQ5wA$ zNkc{~72{j|Si--<*6J+{(g9nJTDs;{8C5u2kL3WmkcMYm>nA-^CshAF2WRr-#(`y2 zpk)&m^1f11=3B!S!7-pKMHl!Fk55_q<5X4miuxu{GGTE2WKS|BcXR`f{=~_G+&(c^ zuZfsaPK+4w+sOOCGM>smu8O|aBQhl3dd4Y&tjZ$Z%29IOwA$8uFM4}~a*|!cV!0;Y zKcQYzoXl}F+7M~g17G-ZmV>U1L?m51(0rFK2enGP{K)i7PvG;*D5bI})4-D_Pkr*s;+uH|6J%>n0`E!uXx74V2dgE zd3#{=o=w4e(O=gb-iy&!`|K5;DxNU~G)GirI;OSN2vx(}sXeq8rRG_!3a4R30yLfWkqm3%K83+(fEC)!L zdgiUCN4_0-aeQ~nD9-L`se*RjXD}JDlWCpiJq{IAm)>1*raxfh+jz`Z*ks&4lfb6k zd+H?}nG=|&du5&`BW`lqtdDTft*fEYTbL+H_OG7yiDWo_W`fb^qvktj@KAxX#e6Qi zaXpXmEqgU{5%VheDCyPA@wZoqU7auF&ELcnD{BST491?Z%USn}x_8L>cG1}l#7G8e zCrUPpeJIW_(H7~h>oYuObN5w)*HTJ;f>!?AK)th(z@M0YJ9_6!mF)e7gMUsuoC-sD zo3B?I6s@NTI+IN?2lrYn)%M~!j!_TNHg;?TCb40;qh77QP28uqD*U#ajoo)6jjLCF zR2cegA_ZD@t51GG5Pxqkr}gJIBJ5S6zOfXiNP^zV_rbTHrIeclJUN*5vCS@DXES6B zQf8MGR+c%ud3@BW{N$6s<*Dap5I^UIKI+9)kNfeJN%zmzBEr$*M~`{90O39+U0i!F zUR&FpOYxc&J3YlA!dqIC)+ri=x6JqFPyQIl(aBApzO)XxW&87Hv$A78Otnn13c(^# z%CNj~==25Q?(=0!w(kGRctF8_Wn2t&X2PL>EBnrZ{=V*6W$f$8+!f4tmsxVSK(K9F% zX?F&kC!^8SmeO3n=XmD(Y1W}_YP209A87sX5>P61&YUaJd4~_M(0V*GNooQZo{{nb zd8@Q;qz^$A=oEk%c~d8XItfnp1dys4LWK_J?LnS^*>WQ-)vN%W@Ny#DIxYIe)dANA z`2vXxd>?(flz0Ll;B*tA=Ez%fOa+{N;SVh-v3FCr4RWeO-#x@ZzayNS&GYaOAEK4R z&_4N!U9KZ^de=?* zQ@OJoN6ri3wnahofWLaUWY;!GtI7j6n) z#5jSU#pIeA#aRBPMe4{|K~J$E9_mhTGvKS0HuZfACBAI7*7SXpR2X1f+#eWnY1D|DOuY(j4sSkM& zSmD5`r&rr|0NEsFTu!4f)3`otK&;JuLRnDX0xGmog!!!(Jd{7Z;Y;mC6F~S3 zQNggLzx*!FsU~aHS-eF_cDPXD#Id2jZN@8C5zdQm9UC)L4SR#e^pC~Wo>`6FejO#4%#Dwc zyHF8=LsF3j1|zq}91qQe$}YQht43cDKWODxXU)Op{#`QvESi^Gzf}vh-ZH`_N|u7G zUViD)QkOY%LEv@!eVlEj>pW%)#7nI=_#&{Bm!`2JVv;3@8n*1W*&=;CrO4CLD;t5t zKYiM{9jHoM%i5n3ex%>N#bjDrA8MR(= z>6Bfzu`+#^?Zc{sXE*^uS9|&OuOge(@2`T}{+9#$P4>A>zJca;S9>q7gk1S12tle~ z>0re#?3JE<1Nw-B=c#ttkC(7o(wi1j%bIN5ixH`<6p~Fz>y#52VP-LmzRm>qW6?x; zf8CCdGLrsqI$}MV4 z6ZtM`9#PVdUk9@ka`wHx&|Ii|L7ZX&!lzxM8Y=&@h2=l1SndjT$cH=xtB@Cf8)%qG zS%HXTZ8bVBVM|Z}sEULaYy)cb7l5)@(rkc!5wVAU!rj(>VlqMU2;{?sjiUy5(S~Tj z9nMgIOW^>-0X#)J6i_5_M!j%q2YpAI0Kjze(}YjLcw#8fGA4&Kp7m0_0aD1J+<|;2 zgj3DbWar4C(Fw%k;3$cZ0%<}M+EOIL{oAi`6r5b25J@+^l<-6J4YuJosz{@VUV#F@ zN$7))n_+SOz~O{sG=t?=M7cQVr%}ABMHs!#&yy~B51{mfdZiPFW(|uCLOwdnqD8X3 zqE#cD+u6npaj*`K{BsvZGKG$N(%2hwKiO9!Wk5IKl>OZ;P>~JctG;q-FL$r(YIQ4*bTiRHd=`saA`p7v5ETqqdb z16YdFc?R!;l9}+J0v8llwYEs~qX()%nf2~i-WwWExMPztkh;9A(C2-z;O<|UAqUo5 zsIZ6fNx-K?nn|wpaZ0Ebu&|^iA=#a`0ar=(LF?!5X|+Y`1v70skz++M86wvsay@r< zUu;>?z3*|cdPr{QPvTZsKdu1OwEFp$?~hNf5f^4K-;_hy2S+hT+QTe{yJg0Ij2}F_ z`Qdx1pu2S&o-!&LhqqfE(slw_fkrPB40vzv(5k7cV%tsW6P-%rx}j%Ms!pFZ(C$9_ zxrn6=W-*?gTWHMGKH(R+cVh$;PI}m|nN!bb`^UsZxLna?N7AZspVK!!-{xXljqKpr z=#yLO8H+08CGr&GZT@NYm4dve4R@E;peoZ)=MB2^pvZ1XDg+_XOd^ck_K_9NIO{s1@-nFty6A4Ep9$_kkBY%Pbl> zz5HeOPZaZZqW2GebYbYc#N^H=zWa)c*7sL{^he36)0k}d$AB|Dx*Zyr?Fhbz4H@$; ziy!r_RCsQ&_#iu0#M3L@y;Z5m>viw6ctL~A4QUUP+~>NBnOWOe1!+A@?se}c4G&@3 zwGK~%80pmnyy;F~j=nWbwRXq|Oe=TZqFg93z6)7+7YLKw{CCIoA=jx7*t)?5$KhX; zu<%uZ`nlsMoWHQJ~$3$IQXQ)zvrqI|2qB{$RP<+S z{$sVhXxRuJHM-C(xe=P<2N-G2;NJQENV5^$pct0p%D)i_(;mIm!xjhD61>$7Ud~DF z_&%}XNxkYb4Fa@?FfH5jZWOkXlU>cO*w3hWqEfb2uPbFTT6d^kt0}0~d>J#IXFgJ? z^3>q*gOAYb`mN6jn7i2P@-prb@w$_1e~DI^EDM?2S+i%jU)N3hO?^lFqGPw#Y^g8~ zy;pLmM>D8zlaXW%R$A|Pr(dNk8~gjZ5FFp=hO!$r)8`g+vX=z&`gf~{ePzcK_QAfL z2EOm5MbwO7{@<0djf;>bHgkm1h+s<_WDJ7&n;Zl!C#T33R!_9LWH>zRX#p!1BmwY*_m#)$uPh=#| zX3vUNLN0T38#ksxzI0}*^O$r@2 z0=?U;4M?~wf1>2W9Rs8zSuR2IhtXm3TmT;A3b39-bq|!aenBMBQNRd~15^PB)Yb&g zjrWctX*`Ml?1DRJ{H=n!+&SHFQ-C6ltU#iGpt>@6i9(8OR?7P{Q6z=go;Rowp(jzd z_?dwxT`ErgXRu#3!6>D1hES6Gq6mv2QIM(>k%NI2 zS-3mPmd-JeJ&*wU6%7eX^5>~fc?)*oo<>LDXBsvV-@4~$dvXI0gV^4*sgZTuI?rOu zCt~dXW*GHSgir2-B(x(@jos%-$~*1T436=v?N#nU8T&-HhrZP@8!F=Cc5V1~=4vm3 ziA&eU=vQ&BVPC7qX$u7ZOqfv_U)nnzyXv$ZjtOV zW+-vgEy;V@BO2ZenRE4erFfJ6UI-LRaS5tHy~J1<_RljlRmHdH)dFiy+kQ$MW(Tf9 zWI+qJK4_bAi9#J6^0QV~iAEe@PJj`mOTwCJXlfPOiX?kn=3eRzZUyR$c9sV506%QGw z+>6?L@S@m)_W5Vcwc@`~PW%$Ix={vVUJtLw6UjWwPab=)PGBPVGAH8mIe6?wY`#v3 z8OdSvFsg0M?K;}47#Etc5gAv&EuM*f(KctKJLV_vQC#C)leKqk^GwHdR?jb*Fpb^o z5$prO9(l&6fsNjr^DQ2=6}k`dJmT)LXt1rG3?O>jdncRhM++y4(j==7|3or1wwi5B zI#JPi>yK_);MBvNv~0{C`;SfwRz@vJ$U*zN+v)qi*?p9}|LDsH7dO3@vq0LeY=nnV zAF9_y#O{lp_jC-x+zdCRFr$ZK;qWkqr*E^$CZgP4=}o&`8*C}xsfDC>O>PNetX&C- z$&E+Q-a1z9;Zm|X^>>0MyF+gXPC}M`Uwa87dE*gyRMoc z^VCd_Z{;h^_>q;sm8%v0t;RB3gUhG-24Tai1>}Kni{zPb+pRMu#(c_vkJsN5m9JN0 zKV1L1{CK_M{PFrSe&yN&evDxZn|AXsfX@osJmKGrSlAMaH#}A1Y4cU*$-CoWWf?o9 zKc$)Yr}rjRvKvnujpt^YM39hiF$Ze}Wqs_Q*Z3)AWf&7vO+k`IecYdA+E{{=@~ac1 zG@%^g@LvRko|rX>={>2A{B5AE!WQ%hOoxULCV6ClTXH}LHyR3M&!D)dll`Wrl!O2f zXM^vQ(SCD;)Xv=Y;bS!PwHJ=jRVjpwNIPI1a0)4@N!37S1 zmI0XMSZIII?0{bp>CyK=W72!o^Q>+Ng{0nxHX*YJcDA5eCT0bP=2q$ckF;w6E_vQM5!EZv!@qw z#Pe=EadUz0fihtM&MBeRe#Bjk%yR)O0w|I6^~fHn;JFq~a<)S&fu|y&8wHd#uZ2Tb z)Yagvp-oF2zD}e9g^3y9B<_$CZF8vPo%9oIBht)0@z?wG(~R^-di?0f4Wahak&LBO zB`PRPolh&?F_`dl8l|j;=aEhB>tYHQEGAFmk}%pO7&#K{-o2_j!$vu1Tp=eGB2s~gfh==TkA7iSg*n9$wgre=YZk^c-XCp})StO6$xSOI zzrduSC=+k;-6*bD?)@wI0>1$Pi(q(y<`nA!H(Z*c9qva^VtG&zuyn9NnNAW7F+?K|{ zyKP`ZEM{hrQEyAp)MRveh&BJW@HL-R3cq>din+R=ZhBvDka1&)nZ95t{D+uG%%f*= zBiwCn?fACuvgol&WAf!Z`Ar{cP7TxFqt_f>+biFgj?>$kT}l_vyn{*{mex7H%ceNO z+1|3rK6`k`G4$&2%Fy7kmJk1W7pWK1_EzA@G?;1Qepa48f~DeJBHLEZhOmiI_k~sp zZa+xCxp2OA+v&8~Gth2*YS~xpMV%yWYTTh$qB{@b1UnD7T%05T)k%!uPBCMaKKx|T zR-@B|ZGcOy>8krZk=ECdZETUILF(-1e_9DCmR(FKn^uy~S^16m*7?z){XW5Wg=4Y$ zr0HGJiKquc4V&H7mZwNl)Jy)EkZ1e|4>$g_jggqP)pg1TgV)(*y#Jb@%QIEh{1_Pw zBW2nbtE>3+RF99b1~v$K%5((XcKaE<`z7AobF$Pc6g>Ir>tM(P1()`j|DAJbXN za8bI^8Wse$Sy2EQOr8a79?)M;m^`bR$P38B>?jMNli)v2kPkd4bPk%eKy;Gl{cs)N zie|H@BH3Z11IjL8(zdE6mcickprkBTw)m@DW?);aGL;soH&^Z)ykCpb zHG!sId>87%TifLBuHL4>*6&V?<*YgiNS4Fqd7tv#PI}>GqjBC3i7s+QEK{BqY4Px< zIO&JP!6A$Bo_(5^o>U5E*ZQl&MmcNrJzW-FH6BV%JBfcaLOegVH!K9&fO5yR;tf&s?vn|WMA9U2 zbR6Rtd)>m95{N72y?49z^0(ZjuC(yqsJEbyo1rcb{I$2N-OWANd7pJuJb1n%Y&1!`|uFIeG{|9z}%9HToYjeBnX z=l+F+faQPb7x^x^@%huD+|beEp)9{03aw=?jQG^s_zEn`b)(#k-nI7gfa95$DNR#3 z25C;Gtu30ODk)BFv<8tLAt~*5C-S#h9CNL`CQAqSUH4mcYu>dJ)KgzG&6(x_Uy-Y{ zsQKYmdUu-!t0MoJi$Gxv@1$vGO!KYZR$Y9@2|UZ2be>1Alm^YipVPUpJ&W@n!Hg1A z^0_VTL6^JSnV;#-F0A|er#Fg9<9qt1UK+a-lQ9}Iv-ht42rSfiFTN4|pP`kZRKh#I zgzNDE#ml$2J`H?W~@?D!`wuEtQ)+^10`GovM@y;X@n zWgA5e&xx}C-+fRGG{7yS0T&(m<}cE!uQik>lsR8(Aby}Ik{#ezGBp{aWqt7%`V~@6 zkb0;v+OR_r15{@LIGQij-)WL)h#`dkYLXb*9GNm!aO){q4#X5x0n*Gv)DOZ=2a4s; zUDarYre*piGAYjjY0w!s4$4CQ3{;c+U8iLa0b{nOXyCPaNC zleXPNGE8P)N)`+Dpd!oU1-+)~&|nJg)q8YM!2dm5E>80VR$^(2uomV2mPF^&?@F%3 zt&J7?K;fUx4*|l|!g-Tc!#dPz;L$Q%`OMl6w5iq;XR#D}lvP-9{M3mW>l{zW4t3C~ zAfYam@BHs=gCrXiDY4RD(3a@U@wZ!6s;03a^Jl~d#exe!ezvgOZ{<9q8~r`(;~BDa zH5)G%L2OH=*iZyIslyCegi`%8(X}1LB%)>^@>3NbF-T`l?7tQ=A5A?^FBxZ3SnLT6 z!d}Et>)fOzlbxmOSp#IT3>>3G`w9xXv>$pTw!7PgG(R|B5 z|L7x|`|i$e2-ym(`!uw7tr+qM>bqpu?7Z>Kb>o|_1N=NAz2Ub(eFX)yUwpW&TD+su zZ>LGoUE+^;W)sy|+|cGD^JYF+^8E`zThkv{==Xug+}NKHBa_~+7kpjj8=6nDW7jQ~ z*Gin~n%m0c)ufK$QBV0<=&T8l2m4dI(TB$>Tk;DD>+E~dv&3_(|Neb+nm%(Z5B8p2 zeh(R=qGk2NDLA`V=q2{sH>6pg3RG4pemHq+GV{7XB|HDz^q9E)Y_u|u&jOl)xm?1` zOe~|^OY{5zoER~DX+|DnEMn{u#dd7y(0JB-_{XGvJAG7aKCZqop*q%a*li)J#luVo zJlZ^zHE#wp)#lra`At1^@@6x+&MAjB;&cFps~uR%dHcnCxvqv5C82V|Jz>>}uy{OU zAlT`*wtu$%=&V~swsoX*QMPAU521K&39H}C&Jq~(Y7+jz#nW6*BBt+-SIGX9N?-Ng ziWr^AU-*#eR+q_@)3w(tMnTrMKu7qLnT-9By+`|H$L+{J?_N$o-;0NIp49+D`nZ>| z5$5*xUri;-w%Dx~XF3fSFa1cC!g`u&sJbp*I^u`dVR4CVcJ2p48B9Tx_smmIw|d|k zXQVNw3?Z|ql5LIZz3&NnJ~mf1D;9{_!0%fa`=RTOfuZY@e?xL^rU&&2_iVNm>Vop3 z*lG>k>zk77#u#m8d|iS9sWz@^9X??Dx?3W z&RIQ)4=Ju~ZsJbV0MQ3*K`wPX#uv$nk9Ih8Vxd3|(Jv4q8rC5=_jmm_8lgtAK(0f2 zpNd(Y_z^7G8n*Wxwn&UjAg-pxQ9oDs0tC@{kS`Iv3~lXjD-8Dx{feWsA-{|#e?&Sr zME}Z~=0NQRnE45xCDrS1rtBIa3*;SCNgqSzZdgH~KU5H&Ut?!GNX{z+h`qpr7d}Fl zp6{r3I9>oz@~p$Xz6E0Epb9AM0N8j1_9!6=gy5S1??@QbA!Razk?d;yi38s39SnD4 zh=~BuD*GFhdQH!GhsSa)JcR~LbwWDK1IL1((K{j^L=1KxkNLPAb6XDU>3$T{a6b3QXA=d+5ODoC$^HFo*s2xxe@Q`+L_vd+f3I^*+2_&sX=+X%7#6Q}y8Tq1#F$VO%8# z@eb2!oFLD$8+TP}0DNOwI~noyh$fIB_SNB@Zo$xf7JN)-hO{rXz;il%yX$kd&AIQV z&1)upeQ?=jXv@)H{sw1QoOKvzVUkM96?L#Ll|vZ%zBeB3Z(M>GJ)>>yr^7m3?BVZU z&YZP1#3{DM?h}siG)pFc?H%EPWyWTijniGtnn)!vMM z($lZ*WBfj~({`HOw|?H=zGmL`+ifj>&=|`;xTarwx3hrw(EMn)#6s)G^!1*N;i)Qk zs2WrODYQ}BEJGFPnttpDX)>wDV(?2(rXw1cN?R4TYSb0m3D(z}8C!US9yjvkxI)ui zeTavqIoTK+uL3EHCAK2?v!pP%RJ*y9W2=#E!=sPOzrg>Dl3S}jzTLZ%M+BbFyOd7p zCfAQ5;~2)=+YqP;ovAqS2Ew~-#qv$%M9sCb;y<;NM5p>|4Rw*O*pmz8^Ga7&txUvy zJd3Q#d39v#ABg*IKRxrVUgnz0ZaYuB)Y^N0%Kk9ZDs3ZQRa~1Vxt_0m@~;2Wu-^jF zwI98z>|EMUmPWIG^tStIB)WSf4HFXP+x$8=M?*uX!!kbkSah2{^0qz>So2y;dMIkuck`@#> z?K(+w17N>UL?bX0Er|`Lrle8=RS;!h3T=$8V1=R0Z8&Opr$I_uE`gRDwNMcZ4y^?8 ziyWn81eg~~T*AeG*Xm$$yZPg; zHJv7b#7bfjq~>~`{5u0mK1QI9v`tpYzVZ`^cP#h8!ISo6pZ4%|q}=pfk9c@bc84jf(>pzd@^9>llG<3j)eh^~%i3xG zZMe;n>CIlM4~y;o6;Q-ME^}HOv8c50syey^-6|a_?T@_|ZY=ySsq}`49l~bPyC>FF zs=_0S{=vNICWHBYd7%Cc%Y1h8ZQu4_2cAuVz0hl7gzgLYsDVbVze)syn~dHnOBDF4UpsZpGL|v zOntMv!Zey;Z}~>RkaJS5`kC)`WBTxKu@%d3HVLXxH^0(9E~N@fJRYB#i+HksgUo}& zigzbOWVtJu2BlUjR$HA4b6hu{4t_3dZvNhEmGs@BXO39j<<=lC8yv@n`cw-$&ONNr z8NKmj>dE-5F=bk9b#cgboDW>|f9Kw``)#ImvR_JM(tdgs;bS{h7myTY?Nxl7p!}zbYD)H^e04@sPf5# zs1jsPWEx1IbR3UNUN^rWggf&|h!@=oc;rH+5NHP>nFuXZ1ptp!Da=(8nBvvcc#QxObL_7wf*b!OMNvIny)C|QMG;sVRJ8W_ z;Aw{t+F z!}vuFd~C?mM@|BxkW*9tN-K&Rbf&`^jDW+QPB*w(svF8r{wRg3 zgKNaefux+2Q0;DnRC=zOWXFYn;mJAO* z2&dkk-7D|`nupllZw(&kKIHR1m6csct>Fv-^G{pk|4qrwtX_P?Lx{oM@LVIL5bo0x zwVA>LxV-0@55~FgBWX5z>=qgvFBw|L%J;;pL?Lo^3udXKzDYEIy@U0tPGKo~ow89G zcGL5R0ty=`IG>7Klkw$j)0?j?)Ux<8)(xDbDh)_{pz#_rxnNf6BT?h9!q;X#ZpFi~hu7xT#j9a9@2|tMdN-k@0CSNG5{}YwlKE z7W8^8g$`)x)h##`4j_!PZ{fO6-#OON)uuC0Bs8OXReuwj-YYU&R*o@!eW27Q=Oy|x zN!1DUSmIbfn>gIS`3|HV+3QgAX-25H;@$n<-DBO--veh%dw|$}?eY&6`=D)OW@h|- z@DAn4;}ubFA>FFcANGW&>c?vCXwl|BYE4NK1a2w&SKR5(kKF6ieZu(BO1=WT%D3KC znG61IsZ2%?yT`rH9XMQll1~^8?|a;xqffddmbb(wF*Vq%@a^i$a`<1HQ43h`H$N9=C8f?6*Da$U5o@&*zK zb?rnON+?f{*zuLYoPV@?s$c;d6Yv*w&(598k0R;6bdvjp`9F9`QEO=W0%vEaosP`NKS{k2Yi+W#=(0)-jT&5O)WqOQ${sSGeFs0 zJ>`C0iZ0@i&=tX?8#y;CKmax7i_mTaXkCkm>Vlf83Xa33?GK>5pjRb3Dm;g|iSdmB zr&F!RrmEpU7XW_WIt(04D!Q3eO?ifwnu&Z_>tfYu-nLwQG4@(k(>+r| zX;Y_SR)c!i0RJu;8|&P zr_ePCf35bAduaUxIIe@@F}FZiOd82|8gEe&?&E!;O3%Auk2$A82SHEz0#jNUeN?d>%<6Rx|Bxb&*b{CA1*T~jOC3|uq|lIr3gfvR`!EgsJu&@Z z`ein0ZsMlcD|{5xgb;m~3ihWs$l>jkxBmUjX=WS?`qQ)7CwxJ|4VIndz60(k_`9mG z9l6<%BaJ}Q>8n32>SjYes&BqK;hK8f>>{|VQ)zy3t7^thk@HM>;aB%WJ@>J!#cwXB zCNB#9^j1^5y&c<>sLXu*K>eNTW#zp}O!9i4upP~T?9@S(vU_~YGW(eJ_Wh(7liByC zkF(^~b~uy}vKH#kT4j;k%2%Zy7@Exe9#`kO`^jiJ_=ed*|8-hL4e7n<`mZw2E8YG$ zo|f4W&41>17|I&w3}C;JoH~r`r;9V2chjdju4msV(c}2)(H*bVc95<$@Ut4bYcj2; z`gLbZLjT5NlgrC@RsSQBie>^GY$RWkmwz># zZK_l1PKXxyS@R1EtKL^HLJ=gk&mtrVR}FGWu_ifeMw<+gNIBPLoh57d%CVc-!iXiAY1n~@1{9mE+M^T)( zJ-7F_jP6(}Ky-or9+f0@IM}fA6ktZ$!MxD{02IN2OF8mspJX%EK*(b*12zjcYc8Xc zF%W+wCqMx*EnG^4-1Fc~opiafActeaxpM+D*jP!R<&_{&^E>bs#z_mp!*JPE#y=4J zm^R8L8e9&v(ZX8b3vz$201WJnEwm#Ls{M&i&HN}L^{nbQK=2<^mhO#CQJ4>PGG9QO zabFu~wD-~hfQEd7WgBnTs4_nVECA_LUK>aaw08#jP#AqbjF8N=piY(OgSqbuRpWRr zaU^MSce7v^6Nw8%r^)lZ9-#ixtp#}R1Hqt!u-Z&{#mu~1da4`k`$Q%UTXQN}+ZccZ zI>6O!H_TMI(;Hxs_W(zn0C0u-Uy?6%I}$wrhYMWCtD+cEd|@ih-;yi|T!>e)YDZZy zM(D+_p-f7Dak9NHveYmBtv6_1hzo2n{SaC4zFG<{i?+dv?W88fLK`L}Y@-G@Uhf~w z+*5ZY)dsi*2IWa=KM}9eHCS0_RR!X5v3hNP3+&SW z7MGa5FOfQ8f3(7d&$`n2GkL|QnNNGUoYLp*mbkAjg&wHS!VhXF5#KMvR<19i-Bn?H z#DV*F`=znhQK{hv5SmFg>=Q;Rubv%ZQFS{oucNXg4Ehtw#M~=|{lc@CJ=m3as)4Fa zFk5XU@aw3Y#2v}7)hBHe6KD+$rn6PnbIbdQ$f?1>&0E;p22oci{moes{bzVSZOGb3 z>QJYf-Z`_vl&`Q`)O6y&vD;w7H}jQ?Xyx5Xx%( zY`3#sDJ5*$2-U3RJ5HR_BXidJjdzg5P?gN-JzKR>*}p4(r{%J5vqr9tisYEH2ro|G z7WW#{{WQ|d#k7?;@^rW``eTUktzhLwgDEYh4n$AgYPn@HugAH(*3O~)EOyC#<$Qwb z@cw464*r3hLQMfQ(L!!E!a<#?%&Tg<+q?4L(c;!?{s>3E{x+-h{$) zGxKb01^+ht^^+Gg*PLEEW1Q?D-eIz_5U{qJ=Ux7Zcn3-G3oM=eGyg;s*Y3#!|~w#iuAMz``Kh z_!&yt<7PpR@J=`$p3@m` zsgiSfo{SS5{o$i0b3gOO<*!v)A-`+g-~Id0sPQ|$`IUx&xS_gegDVIs+rLB9!uGN~UED1KQK_XeAKRi0`wJS1}P_oOb%i z@R9KfumtLBc7btF-GnwF#VQU|Z?YHgkRU{U4$Ktb)w2mfyf+X?Zw7WjGXN5&Sd&|M z47tiwL4m%95l7ws{uI?g3*Vso7@OswT~uL;X56q=Dq{FYt)uaEok{nbtSvCTB=>a! z6}HUoMs<@|qzGtPh+N=JQP*JB{|eGsgHfwqk!%oALqOV>Kw2UZc*eFZ5`<*%lFJQx1XAb*piK7Pjoz zG~hE}+G%SGu-@P#yY0m%v67!i(bmVg;u}zB>TZ6o0mEyts^^X>1!$Eh4mF*NNV+sT z4ukGAiPLDjs`F8jq_i-FHZ${0ZoaGW)GJq>@9ugezV_=KE)MIT-}p2VvQC8)>` zcx*-16qTbUY4)}89M*d9nN51{83Nj9-^3~QI4C!DhlN`9OLrrG(&MSJA6Zw zX3%g4sXj@EhbyPKF48WDJ56gd?y3N$WbX$FB8GqFR`Z zXY;Bm{eEF9b}&zQ0(|^SCX1Ar(mf)~i|}2EVSl~0m3;a>Wp}{ny3oR=;-d0WG?_3P zpwMq5qs~)Se`?zvdmH6n`M@W&Zqel8?)xlepDMvU@Kuj|9kktMW6o>9nHBb9dJD?M zvW%8P)Y`!Ws<>&v$8+0c2F^-P%Gs=YOyOj|HAf2nf~+aTqZMK~Z!e=!lbr;pI{MDE zvN-Rv-L=f1>IUgo!%H(yRyrzhfL zn~;|ruUtjoJFvX38u~f5OSDye$l^|+5!{vYcH$vv``ucyrs1=i9Ob5)`bVSgUcUxY zdcOXQyq)eU`fc*C-geqX1|%mWa(?h9q@{_{-r!B+UYg(I(`nnMZ+4*+B?mtXR*)Qg zx+B&7f=D;J>W-CBuc0|!ImL~I>AK3ba8k5q5AJ7%4#Cp2SKIoL?%#L_rl} zMvZ3x)if5suJ96~n}87w1N&_xUy_nT(0Egj!8QJjH*mr^Kn6&s8*3&(mSZ2oH{ z_=QpdjOQ8BHt~g0jmrfzLrpOhJP?TST!;%oP7e%wB}1d?Bx<_Dg8?MV0@MQuCd_6m z#xnFMW?F8kE7a1}BqyyiEy$uiA1Uf;_kh->FLOLsLdF7k_C2XDzCI0uxs^>)Y>6E8<^ew28fKA-fU-t}06W3;v` zkQmQtBVId&+NVgg^4q&aI!5S^Hv*f>R_*6(c#lPlSCm^33(J+qNXSNEguIyXKu$#N zlH9XzyQG&9I;tq5GH-NhiH-tQQA>}(;%oh0HM{k3sUg*gZ=j;QmZ*p7I(wgw0lAfE zCBuj=?EZ3UV0z9X%+$?_I57KII-L1A&d#e#WeCpF?ag?yEUM}kWxzeG?b7<=NobIW z@dnZ(HGo)%%#mko7S>+rm>SLIG#^*D=#{{VL`+C2#6tgRDjS7t;I$Uj@>_}#cP9r& z&7M*8Lg-Hycp|_!XU;p<@2<}=cQnWV*%(^`wf)6eWx*pCWHL_a3au9c_$Ti@H0ea#?7IoxtnK>Z4?->`Rm<_3LW8m&1`@UzL)8b? z^AxH(L#^VE+eqq3S$=4{rS{9?PHQdGu~Ag=;2MO4ks>{K6x?sj8XOb=f+fiE4kw?=7Kd>LaA2*-hGfV^ zmL9-8Efiye=U%WXNLJ4RTq;8W3rHmhjy75o1{k8C&cG;~hk{d-kc2#f6qY1RTA}^W z@=tkS6xyE&Be-^h&YtFB$QainV1j1ZoSOP(JulAf)l09mG*S)s+vfnF1oi>CF!tyR zA)u7V-k@uedMbb&y6%SMP;r9zMmL&brwU)2@WD9|JUgazM(YR%B#WgAey1_|)4 zW0?o$U|_e-*FZ!M2$N^0gfD$1h359rc4LPY4m)DRmT3z>|Hh)x*9&@Y*rfOnnHJRE zVR<=$lj%wJEteg%z#5j}7n4B^m5hAbPNl@b_8|wRqC9t6Cix=k2JeeCm!~6Ps^{41 zTPr^H@XyPTF*TkMj*S7vJp)EiP#0)X%?)_kC6vdV5U3%WQy#uP)ZqQq{~SFwVh~}g zQ^C%bhW{Dri6VYdG12LBJ!ckni#{!BZJ(eCT2K;5*-cM{Lt{N>x`ZWv?z(-=U%Y4C z-G2BpWaeZ!vE7~J`Rc2n!tPRDw5UKWGp6>g(}>*i8GH z(91n8oT;<77N6^*x|**Drsy&|pQhsTN$Vi6|BYm?uG+Iu2dmXT<5=2zyW5lq>oj)e zJ1)06N~hRex{d`Iysd7d&ElmnU!`a@#e7 zT@{s`lBJ$s_F{F&VA1yz%@!3HVx3V`<9-7$MKu2|3N-v(@lNw=Z$juTRSQ!-8IC1A zt(;OGmkfpCsumSO>i(jb)U&7XHN%fVf{g@90wl_JJk`i0E7Z7vU>*LEVKddlDf#=+ z9h88GcKT88yaRSlUS!GLr6kMC9ew)=sUO?A&8xfhQ{D33c!b1kA!DwGI$jzJTMGN+~E1@ z_e6;*c$#s8sel69lg)n}#xRAK=8d;Jlwvuv_Fr*~c+~wPH)DTTHa}cwOu_Gel_)v0 zBW##(SbX8Dt7z|@7S~=Cg<4hj{NYUMvzm~#@XwN8q!PFt9 z#{9I;_*xM7*LPK1(*0nlNmsmfJ9mI}o1e_108PF|w!J~Mb}4ZZZ_xG+vbl+7yPgIt zK$>2J`_mu6dY}nRGrS-u?k4jkAr> zXO!q1w#h(Qn@2$GmG9NP_Ua2)+<`F-=dsRb1^LdBUaQ-!dbD=yn={On{Ld~_8%NCn zURR4oT*6HCiX*P!E;-X{P*WkzFs%m=oit(0BLoUT=LNp{4=PhL;a|l3^h)4G9cp$8 z_u~eJ^1Y3^wOvdnsUGSeI11@)XlPC}G=SHjFUB8%<;Z_J*9?*&>Zve{KgDqw9cc`} zNZ{bXe&G=s(+gBucTJxx1u#Qq(TsyxhW6Fps82VY&k90LB0(S;`Nkv zQ}AyUnRO$K3r2_I*?l0TSnBihnp#v25w(JuSTvd3p4Q!DbU--{$gqX>FV zq|U8vp^YuGZqRh8k-5Z2{2-VcCDu#1$P2U&$oM--wD2(`mPj<*h!D$w@q|LD zhS}Bf*A@Hjglqo**4*}kuNk~uJ2JkB&17dD#wlwsD1v9Edr#MG+E+K^IuNXwCmg(| z;!cFLb{!FlE)rXEbVJVGB%NpLLJ_!|!+O3~v?u4isoIZNYODxPWbW28jM}w0j%MM@ zutz#9^0BE))>61tv>r-Iu4O#KGjz<*qc@~{jbJs8vB5@PWX^29eNWuRoW$Rk+ta-j ziLupQ+h;u~W7$kHO77*Ox@3*mo@7$U5iU$qJ{}Og7`z;>j42A@D_VYY%txE__~&MV zg&ps{CJnzU{Q2U=x4LX=b(Q<+N3Tsz@k8DA20f6#uFPO3&Zm<>wu2?jidF>_>!eIq zxc>rD2G&=a%&!c8+pybeV3!~)qxQ3glX)o6R>|%PD8ctKwA(8&OLs0c?G!J&TEg=& zZ8KWFv?N*k-EK;ApS;&lriMFg$(HSj@Xn+>w$pPnarU9X#N*{6)Sy9qiR;!)yUSK2Mj5sny7?wIA*(x<~7F1I*KslC6qO|wUKGQO{;vP!!I z*kb-VqrK&}CCGacGf_h3%=?8B^JV`Qt=d~x`F8NHcYS8{B@epBQuDpFEKS5F*LK0A z_cBxRcB%Scd(oRk9lr||j?1mjT(-ZbahePNil){28<=Fns8|M9{%$q7Jpskp_IjMq2Tt_wmyZ%?3*)}ZnT~?cYXJ@*Xvwj*BDk=hzIFGPy)UZ)Y*u4qtfNaYwMk5?|WEBdDt zv>lAGXZhP*yy-#NY(FSwtsTywD9gW@8WY5GFIUc3nN-)DFr@xN51MrgjQ{eO@no}B zB=rWa7A@H>xbH8XKayU$)6*uux_w@D5dOf=<9|R?PTkboXfvuS&wyJg_Yl2o3s-9{ z#exJV7MM#FEnr6ijVbj2=rHmFzzAR`ktEH_!0X6P6o`be>j7%>67E8jfP?*4F2;SJ zo4GMcyFCgu5Xs~U01ti!I!A4!#O`ibkU*a+CBd^^!OPq65Li3xHWFT!Ka7!p~}1-w8yT`T$Ct&^IqGX>yI`CFTC%nn`0OfggfC!8y0` zs6K2DIar4wxl^UP1#w?)@#T-7(J~Jo-vh!&Z*Tvp|(04IKjOY=p<^g_3Sn`v6$07AVFRN>B+wg%HP0} zqLPj#vfQ%8n%9dXTKLpqthQZkInKyYD#eLoX_^l+CQWtBjw3?BZ|R&oJp-Kp!r!L_8VB0-vkC~K-#ZUR^hs*bsdCNX$@L_O@@&Y z0!zRmEBdN%n!wh}hR5b%CqpJf+SlcWcDIn#si8!0;ayJGH*$CH`o%b<=v z&US6)IB7d%5T5RA`3*KtICJBV#l9_tU2A(WsA4CMQ}$_v!UrwHa^#!MXzcWSykr#L zS2OZr;?Gmtp+5t9>vUb3U!h700Ae5Pp37XHE(GeTpM? z(QK>k#Zgga;F7wOxaYo1HVN#(e8y)qm@+uE2z-y}Y~u-T5d9ZCAhmkOa{P$0}LDjK-nX$W07!?{cKmO0rSFCTquE6-6Pe zJEQT^$osnw6SXtr)>THMf%|Kz{x0IYIpg+n{(kE358M-{JUtSP4>)VT{=3cfQ7~h! z%og7uu=s7)kyBAL)^UDAPMWvnNfiU>K};>*7bW7`e512! z^>We#AJxY!+kpB@pj(gh^d=h3qF)Zkw>WuOyA+ryjb&{%guwmM2DM!mh2qqvE*#F! zH4x=C+&bO=G{^@CEDriN+?QU742dXeo9CcM=H=94%^I=O(?aiD*MfetIOV80_7J;g z10UIiZ~Z*F=QZCTnVq@AF}O1RLu{-pwwkSOpa~0yTKt*WggsLs|d1h zqVmX(58vj!_dDEjuFS3D`ER6yA4=CJTIKF{^5_NO4^l;Kc5{1 zI{zFvT271Uf-<2b^{1VN3B^Rw!~bo?WoviSsv|&5#X9&WcmZ_e7WWkLY3=uM z`bFZhyb8kQD9#g@MSJhJ9& z{_4j3Ar%!%yeOYs)V8+92E7*=pUJA%JudvWUw(*kf743^FXBvf39-;~G!c%6n~$<# zZC^0+M-PHdLwg%^paKjS#zM`b`vW!ar?~m=65!MEM@1~DiF2@!(|FS{m3hRQyq@A% zcwtL3(2;u0mZiyAkfVTEeu;hGhUp~D{Zz2~2z);Zt)_sG>MEq5-rR!tg$C%}K6WU& zRV;m$DsC)-mCE5OB1A^yBK^;gQpinu-}$!jH%9amv6Zu9yk7x~Gb_}(wvKC&vbf<{ zOi3aRo2(*vi3w4!Gch+666EDm+#IFb-wV%d#+oVvWk)Y)q$-gDJBj4?ir&<)hv58!py>y#nhM+K6oA zjOmlRyis}CHcI}N{@CK1DE(AKKOU!%!*$8Tg=^kvUPla}IKpwXbwv<5>Fc$@N4@Wt zmkM>sGB^WO!WodD$rV{ESYT~7*Mp2ye~P0w+2O;K^WY}`p~(54H-rhM3r^;^dH2c8hT)%{_3Fv|d``RgT`YfY>8!8dRM$KuPIgK~A@DiI6`E(! zI?KXtaNgRGI5FWKEMHrX1Il5ZCw@31+&#g-1S);A z_cN%u;OOUcZAw|#w8CMM@0PQ;-xb$8+&w-XL(0RILL;)p1M!udf7mHMR=?f6T6R*- z`{quWQKi)*=kNvA(XE`zgPi4k)ohj5T=ASkKWWRiDykI23)X|SNb4LH#=4=Ovm6c< z#%`^&D~i%peH3C7f5Y|FV?BbP%-k4pROm;J$@^n+*;|`Wj9&Nab=}t15>0aFiFVE> z&a5r6t4S|rSbp~i#G4%Xj&&)n#UO%$RRxiczQr(ri_@98OKWq8K z$FZxR?f1*0X~pCeCw&wu-0MeN*P53XdCP8*Ui-6rd*Jfp-H&p-m;Z##xrz=~{~xJ= z12UF8z4FTSJP=9+(u$161r;hW18@ioQVM}q;MFP+QNWj2#x*bx<~_zl15!963PMX3 z0)&f2P%U9q=MVISY%otHjKTt|4SkcIZC`vn)k+eC9r_fA3eyGy4w2ankj8b&^mvz2 z|6J}a5j+`5)U!tnHqco};(9h9@-)i|_xJ?UiE)`9gamH0Yh0j!cXEg+i8tHj$2t2p zLOZ61gLHTW=xVaJQ#FXh;QKgf9CvRV!i!6d0Sh$gKVZG@q~znz(~3CfN@0g&fusKQ zH=x7TAd`_tw!p1qoGJ#9OpI{@_abEy=~K07fVcl5pQ^9(Q6(W|F{ikz?f*8|(cW}8h;wF=cVkbjn{{ve({il#LINtGKWvZr>PFZu|$AAQZy z&c`eHmSj7@j+g4ikyLTeH{Pgd_NVPfz-k;HmFPPrZ1;6q!{xH@E*5WLlPCQ8xjnK( zhX|>}37DAo3(slLM|`n248&is0{dJM_^y?pwORA(e0uELwcXpq$NHhp?Y^q$KBK5C zsWbolP?q1D3>`U;&jST2|5DiPcquFMJmLIl>mA4QgvU}k1{(Y)e0}iu-bSH8|EdVm zJTv{sT}rM-1wL|is=({${`P2NR>mD$+PEsz8{rdB&?Isu?O5l=z9!E`O0qAMP|G=Q zx>1;1%QQ9~P|h}a7cI?+sE56bs>IWz4+r|b<7Lk6h01q&cE3wmA|ek6%5kVDZtp26 zRGR$(==ro(Vl1oQok6(WRwvEkBmHk68ETO(m2Ut1v(-YaF^-_?Y}1#2=~Dv4ro1@H zhXjdo5@(<{lSp|%*;?6MVU?UrvuJzc5~A?W>A1mVk~70Potq{t5ObEVG0h-BNWdRhjaF*qjq9i+>Q3L z5{s>UxU0zCT*p;bE&9Qon5L_L%HtDe*Xm}!b!h*P`@TB6o2!zx|4nwRO!rfgV4dCX z?mn!^(tE7uQn#}#={5zw4jYI-;&%G>L8;kJHmd zPhgqurDTmlM>tenF8WhP?MI^WJj2oKh){>bWYPk34Kxp@ zbBlTEg9^j^cGI;Mxcc=ud86AvhusTpuq=)t?1oaooR|(+d4W)>bV3b@x@n-e9k~Uo zLRW( zQQWok>^rQ!`S#keh$@Vi&ZUDDF{y=6s@N=zD_1%%2;-Sy+Wn3bcYU0E*uYnndM#GCuo%_mols4b9kA zj$6LzB*O$MR#7NZcX`{y64U!3v`bJqqt`b%+ulP*1<#^FNPg&WM|MH(>?0`j*(Yi3 zeMxIs|BJkRPnv)IqCVTSzH8d28PLAQ8{8|c@rEQ44R<2hL;Q4j5Ov4u9TXg67hh}d zlieeS9ntZq7*o4_LSwyM;Qv^PST_YJz9W8Ige{qFG~Ceo^GGpeUe z+P-lYbk_@yD-iR;3FY$nisWeb>%|$F&VQgte1jqOkx^gxswi2` z-p*uKBLADzZ|N@2p42_5_j#EoVg9o6OQaP(T0a=}Rgc0{z?gf6cCX4mMLNkdQbDte zn_SY|oMD-`ZRVNf$)uDI=f_uTmL3$G&f09$@8QqM6eW51=3i%@PxCS($D4Rlw`a?8 z`5|vSc%5t>gH-TW=3k~eCAWn;49m%BfHvdPQ*;UlUs{cHSYrb>{I~9Eoq`EU7msRW=AewmLuKhm(gr zI)2CKv>x1U?GxG|9+TYPuN`Pous3?IqNX0gC}k&6u>($@sqgjGBi$-)T4*c()GKtw z&eJO31@~7EUB3CNMe!APRDaAhsuNZG*Z0d8DLECpy>sP`J&oYh~mP409P4W7zYd*OMR6PUE_l)#QPUs z1I&1F#!H~(G*z6H7zxG+P#1wmnB!En6-Iiz!jY|9^juoTaG({7F*9}sh)Q{kMa9)B zL?2e3znMdTL60z%5Zj>m$M^HEjHJwC>5Yq_TIrywNF|K<*4a^C&>?BZ0svj+%7zz%zWddRnv4dW; zR}Roae4Q}4?o~tkXY8u%p!tj@8wr~?ODlAXU*jb@jz^?)m^wCuzEATa`U=7mRCaCM zf@o>)qOB}O3=^~1B4U|PT8>B%Jha!{-%j}86+F(P5j>qsK5F?b%YzwPcEo?Ycze6*~!Rs+WtVWqXUH^~Wb3v9}Ihi4ps9FL&BbdXkX+`0V*u zQM(a?LHiI5-o3c0L&%P`}$&`;<`b;SKud+qGo1)?mp2kF^Yb=E9 zE=MdobmW-tk3{`0&S8@IWkMk>{7_zU?Y(p;vYLX?vM4$$w%tcyuB@ED-6U7*8TV&h zqi;-Xg>@pmfe>g(~6X{L>av$J_}SSw>0>v4;IJzhpcm*|o6 z<9B-(gnH40cQc2qm`QTz|6`;O!j9Hssk74CXjhxl*8d@AW@l1A@flE_mE)^vakmoQ zP`xNdvhe91A1JZtD9hfq$|$Sadpr3wFI=D@?oC->sY_5k6m8Kn@p85*g@S63h%l}n z3JXv1J+-fAkkMjIYw)snY^(4Zy=rgy=(gC7{w;;=BXwj@7MLR`^fj@6&-(jNA|y?=bE82y;X3UQr0uou|( z+T8fS@c(cd`e`nqrT;=lIYr?(|RRUJxN`7LvtGk^NMk@e21V={47q6K&bvs}d8W)1@{Z(LlsAyLSY1OCkA zlyAHlD@}F57OINSN)rhcybjlowZq23)WLC{sGCCfCTzlvoZHT8bL6MIMO$2Il8|Nk2U z27+vW(y;-GihxM>1SCX4dC@5$-Q~!kAfpF}(jcJHDV^%*k{*pPx<~hK@6Y%5|Jgaa zo!jkPx9fU79@qUrOwl>D77QX5w12|-7L|<$?M=v@V5IHi<5f=VXWT1sY%!Z9mAg|Z z+MbJJG9i#w(BpY=m#b&_i!mS1PlB<_+)F(|ONRa6^g9QO8e0*%`>3Bu9~OJqMmgr& z!z9sySHoKT7Q96S+^~VF)qyfyS}qc>f44t>XbG{h@$;c&>$^tq ztb_%z%qIP!HEy4nhi^>=`xuA%;#QfS1Xh!V^jf%``RfuL@4epNJn!Dd7|%q4CR7={Ce%gK`1{{@^6X$m z0>|!7)I_X>TRh)Mt4$|@aN2IZ+vT45|NO{Cw?vE>JN{^=d;V>%-ZgJ`k#0YnI$dcMJO}^NpAE_PL(05D^7F@;*Q}!tCq%qQt9APGxuSYKi9aqdEUjIf;4?EV z8+&rXBsu?&rLj)0zJ+^A*5F_2o1k3LgVkV&czIlSD!%Egj=}#)LC^OLjlkZqKnHMe zOm#|b{o6ohmjNWTkmh7uegAGiwF5ER;qnJfW2_(gYq3tvXiT&<>qS-4;3THRA-bET zD)l81;UN88ToWzJIuRXGu3oXYvtq{);3FdVPDNy}SuXWQz&A{p^1;@eotck^NZG7x zYH!U0YomK=HIv;$D%=icgjMnXwQM~{u5p>7e2<9rkGolDb=}7On2|F&OdZVEUCP*e zSYtUvT=_Zvr}vn(81}E@f%*h79cJUWXesl6RS@cf|E#d{FfTH%hz>j3JpKHJyNo#D z+O~)4Pgm=29bqB!fr`{lH~n_o*KR+Lkz7U>rLlURpOU;EI{)5L9Lt;eACE@GCuZEV z>Jep@k=YDECfTsJ4)3VKNqgflRKG7jAkTZfe(AZ?8tD8h^DtVYO2^E0z?f+xs)p`TzBU(P~f*lxw!+9=ik$57{vZf|kDP2|{WZ zfCRDuW=M{KfAutY&{+#2+9cT%>}NTEhIOD*^?P6h2mt2rf6wyw7Ae^x zH~ki9&Y1a|Aodo*)Er??WO(74*25_jU&FQ&P#)B#&`5ywLM?I)e7Y22`}=JNg5+Hc zTNYsYjO5fweqp=`D0@lv;OXaWg!2L!=lc8xy`MA(End8FBs?zuzw_tk@C?AVmm&bR z2jy*hAa{&BD#0YHQ@WeK9T^-%E3wM;B$g3`d%4R!1yLsAzZj@+M0n=0Hzr5P(TX2FWo*k|!bJ{-ShT5xCN_y? zTEahWDe^=-ms~Z$Q+lY(aM8DeS@+_MPz&)YT`cZg`q*e0C2eNK0SV3M6h_veFxk_d zcLX|n%dt;Pz|me1UMQn@O;L{f1x|ma0+`nIYIRtbBT`bV%iwETx=_s-ft%~2DLxSi zda;~}gtIrj*Op^dZz(79cu@?GI7mvi9J{1F^^l5io*rW&{T$BI_lIdE+-;~fkfO0z zB_QYRo)C#nOH`oeMAiY02F4e67N!xPABFqCe;VS7QS-XzrBvKaE5s#m26$sX=P~(* z#pBubEC2Rp8HUb{$jwlzby&+;s>Z2G^Mdb@d5IXrv#JtOZ=DsOb8&_+V=>P1P?_uX zMfS$2zNn7iSp3MDu6}A@QgM4RljDyltRP9k>DLND%iMC(QD^y0OJ+))=Hz|7(TTp` z8u!4eM`*#4ChL=k;?TultNje!VBMJQQCU&|bpEC~q0CEva165QVh3oLR)*9g%tbS1 zJB!i+v|VTTKAFeW){EsmqhlaC&WikVy5D`Xvt`v3obJ8onePXyS*Go(GV!pI+*eDG zkv}1B>u5Y~eA~cK_#B-)kmP4HMm+Sdo;!No@7=FlS@3VkUb58hD`dj_sy^6zew}4; z3gOCgr#W7gFv$1Dv=du+dFY02NWKYo&il?e!Fsj@XRo)?+|h-GbG*|jGKCa#v6aeC z%bH|=|NBc8|WfF?CL;g%NJwa;M8p;w)*jg33qa)_k=oF4~m(CZ0Ot8nN;#PRaAw zb140&57T#v-1mQy${WO+YCFTwUj&IfzG?OsDz4-6n(?*gj+JO2?j4oF<~knfZ8X1) zS~IMd@FV}Ck1^3ve+vHkB{UXA437z>&`$ppYE<^-MtC;CAmMym`Q(g)KoQH z)_GZUFo15AJc&My^3;rKl|M1vH@}5EC)!MExFIp>kQu?_pzhBzMp=(ORKi$}!}6PO{+Au1;r- z2xyCzgbA$og>O9v2PvMfO`q1Ja0dd1Q15sixv_-&W;`}rCkX(jgO<()-gP_^hyb=p zJ$*>2Wd+KbjJR=H5?-o&C>ygpa*27mNcyJs>Ug^L7c%>fKlei{y~SWX%DAoJ8ep}R zPWp77#J4z^KFjN`V7B_a<=>kKlFAWwXvck3cI%(@@Lt?ldNi*f>cVT0o@)SGhO-fG zq2FEnTS16`;MqBi$ii_Jj8^5$g#R9=MD0UWw(cFT0eF;H0FAWKi_dRXdT!)sIR`*? z+_Bh*I$Lq%W($) zHbN3mcV?!^tdkzap0yI^wvR%|;o5NsLJp}iBHxWd))IHICpF?#1O-@^}Q_)saibTjS;2?DpQ7MHZ26rZ4VCCv?yeRP(^#tqVg;uqks9~ zvl&98`zUkXz29*HPN5IzT`#jCqDmTsvzy6Ah+AXNQ`gfA9v&10`so9H$!B-8@35+> z4`@;}-^)9pPo1rJ0~!YWnrlqZR-%1Io1}S6Nx2pvd@#^=(I3#FlkThBo>CF5Ipq5` z{p5PwHOuo)&%o4=Wu7}Ho~9?&CuYmYomCgdjGJKDO|*XnH{_6SXR?2PqsTFgEdlIR zlbXOEZ*XoQUk#3Mx?b6mIENzJ!sU*Bj58_D?a@A^{ncHwk|8>xNUQcf%G=#Zz;e9F zh&6kp2p|10>x_MU_r|WrN>o+jj{Kr<#Jg&o4>nKAHA^aDLAYj$>lzXAxW! zm)R9#8c%7n2ulmJVJWzgn{)l>WV?v8J)KE?heeKW1l)41m0@BhD`~Drj4)F2m~IfuE(mzAfzD5oTL5 zI5E|O*En{((c<~E8RwVh3b|b;S3mHstxvRl2J>#EKoeQ_tw*zTlVbt#bofsoI{dBj z)M3VNab4n`)xtHbusRW-FO9>NxGP-6{V$1_c82@1+ne@5xWlc(R$|2ITAnAdrvUv*`?+F%t~Ry zjY&;*{qLPDhW-c@hJn~D{$zUjM{>c<)@Gh}=WbHH^<>=659^Mx`W?ji;LVo&lst@2n`sZA1Y7}iUy*l!rcf?=CIBJN>a-=)=dNTE zIN5)sA|P#G8pvu~(2M%A^KlU--yMln5_GU{7J#A1(289ZH}64))L=4CrbApjYLbF!pz@)QDR! zCNy-C+xHZ8Om=VPnSD%o0g_a+mD46X(?biQmE0A&HbBZ zJyHo+43{N%2dw-sFZ)jNe!F3_w4ZmZotr)WO;=SwMqW#N4~58iD!0NXQ!JnKf#4Gi z=hg`1idGFR-3e3ZOVpSo<{h%;cmANDGxreYR_?!)hZDIC9(U!sI+~U|~Cb~EelCNBy?d6x6mTZ({OrIt?)N@AD*Y59R zgyR)>BEVN^g6tRpIoeN_w|{lCQurJ%s^n2a8Qt%xI9Zt==;~Bzp7uk~971ius*3yf zYR+B{z*E)~8EX(-tRHqL;6ndo>YZ7i=v)_p7ByxF@i>Ld<&Ebxm`(yPgWy9vSS;Sx5)*?<%sPwF zv<%T4um!igA%bCvlJkfE@x`7@?J#u~Id=e5i})-RO};m`^USAl&aSz{ZU~!~)6Vwm zyv%D}gNvJRn^=to3w4THnq_%tU-vNMIq9Gg|74bW)r4}t7ya0>DqSX*5o>8F{si(e zuIIWQbrS`Zrz6U=iV$>O$7%qq**7)U3MVII?4gcuap7dh zEb@m_>*caw+JtI-n3FGcLRQI|^na`m-DFZfhA!wdL~#4Cch_D1lUiti>5&^79xB;$ z0}rM}tCfQ41njINSA7B}GaJ6Niv@MveI1Z|Q&l``0S^5J*m|L=zkmZ$S@yUEGM z^rOQDVg<#fVi)JF_kyVbuUGXXn^P-AI;xbr`peyO1if%{)@Qd&NC7j$jg{j zcCPK!dfc-XG(uQwIm`~x_0{@2VN+Vv9<@4V>6hSA^1s4aB>H1V9D&nKG|{@ZAH1b` zeSDEM96IYLCr5tMD)6mt*VO+;c7IacjBNtRfB*N66-BK=VOL!|F+Qt9*7A?9+013I zSO0{GSa;(yz1h2+#e#TNS3^-mQ;eG~d(O^Z1v8^A%J%xBiyZd>$DE4G^&x{vU5x=< z%HKPQ#F|_1VCRk0Q@<2ho7XaxZhDsiL&$wWbq1{K=l-~0^9EQd-xjfUn)9d6^ANhU z7}FW$GkrB@++S-oEwu|qPjFl}B|q8Q(^ruij*s=S2H!%B+)5xt1AhbFk>rtKNMQ8Z z;7cxV)cEzO3In_ZLx*~94P6kC2S%c4P%Lh^Gc*P4=~IgG0#{h6CmU6|mjK{SJb;Z{ zfm;gW4|sFV%qRq)04ErzEieI|XtTP1Su*fea0NWcpnx*P+j5{eLt~R%00{vxTy2vM z(iT$EfFP(^n;V|af>kxjVsDyB70AQUT=Mi82aF^gVnJHW8&CR@1WQuh{DKlqjR7W9 zF+-34a+owetJZBiGN!d$<7@i9TbJw%}2N(I7AjC`D) z^zL7_H=jbu0)eLpUYL9qQiBmQB@~cSWExFrLHw@4duic8YpR^qR5_$DV)TsLzNj(x zIbawqTC|3_hkk&%bCXQ<6lHn}rnOh_vIYr#Q{+?BV%}(+mrqHA^k-Bh` zo^ljenG}KBZ~0d-`&UG{PY$MIFqSiHlbC+mj2gI5Ut-{CxcuaoE2!dSze`Z>JwVnx zA+ZEoDd8K-yK(iMFX0sj$b*(E0KN9L$O9pa12qM_toZ081V*-hr-1PA zYU3(YUwaN^31MEM<%$$18SM+r%9A|X$urJSC0O9ig-d48g*9tU{{&Segez_>hT@q4 zGgZaMa-yqnf$1SwumJ=rHkKc~cNey@IUnWW=x4v^@ zQzP=QZ|B{Uj^O8Myj1Cnd{tAG0L3_RmM6R7B3Kdm*W{YM>7 zKNExJ%=AngT-#&mJe-Yuy>Ej1DRBN=Fev5LUp~l*X*n5+Ml)%#+wpH8o+dm}5R+E>iqsrKd zX0M%)FAc+GYO9wk9wJSU(S-*_#+hF_Ypz|0Fcjlyy-<@R*fiAjg2CfIxGG__8D7Vh0$C6xyzq7ef;7;G$m}N&fn>@177iOM<4s~ zB6jme-Z$;76F;lJje`tx}Lr3m<>`@Ck2FlZ6lQl*}ytj8lEJJ@_$Edbt*)T5UfWloXcp>*KR*KWNM?${CFH`oGSU ziHeS7A^H;F#ubCnLA}nV%)Wz&^#YEAZkKogVaD|+wkki8Ix44Q$|q!87c?{AC(DHp zJ_`&fK;O#$IrKLO1+XJmGAse2pF2rFx=7qeLqX>mU~1o{Yt$hHRd$xuwy<95yBwk( z2BVO9MzW!0P64%oGXNe?u;hiE8QPE{4yS|wwMf7Xt$JH9DcFsHX;++tBH!7mb)Dn^ zNj5+W1Ec^WVuM010cLH~7G%k>eIV>|q%c6zgH$^%G+W$_mBLk;z3)$txP>^U0T2WO zC-bg{14#D#QdxdQxVg3HGn2SYqMI|UsN2M)H|LvTD4&2k4jA{q5~L`S;)92cJn%n) zPQ8Mc7CVSQJd_R*d*oRXRApcrsI{$+crNslJl^18)4qM)zvfMm;-L??dec!> zswpP!-8I2i6T!2Gtyb+%SVveb$V9#~0+_Ntb}7mM=CCwZYkvj^@B91GIB{V?PL9{- z@GY3{DJ|}!2yM}M|D`3j5{)sJ%~2X2gqn5ryrZKEl^cRo0#my6wpMCeVmeQ}{z39M zEokg^y$w|F1%25?14s*+Ryh3t3?aT~hBB-Y0Uo`^OM_E>i5BWKxP4!l_LZJM53@Dk zJytH1k`A4L4`+g@l8ZeJ_OvwK?{2kx+%1Acrz==4Z;HhKvp2Vnxt{DsuB^Nhx~Hjw zd#|;g4cSlIUt$w_)UuX6KJ)>CkFEdv-1Kkl>HfnVK>kW!%@$9l=iL;hyS}kW^KvC( z!lg1tj|A&oO1F3iFggyT!#c80zwd5YXfBekzliSCSM^(krF)QlGg>f^45_2%Q+?6^ zr;HCf{Grn_^=ZITC16;qKQVWsFlbatsrd5sLBczq;w5Z}9KP=S>)Qw+QJwT2@tUWl z4ZrTI${p(w|Bk^hM7|)y>s1;iuLGZ0jI``%IvrqJ{;K89JJ%l{JehoXxhn74(d-WO zCa7<{lK}nuJ4FsspB7yZl80ZO1^FArZX3Z@X%8;BzhEoxid)Wk`{$E)z1=mj=lMd* zT#~)3y4u)$8@_t3&f8D`4tO9is(;OU_T;@3>U3Faep2c77e&hJTF3Rl4B5^KCofyZ zqsRId}?`kAv7H_%!2MmDYKrIq*&bGXW|N^=*N|idncMZN24;Ls##sh zUyU}#rfTc7za-$C#g7N`qLb8 z0fV3oj%?E|VgtPME^bX9?#}tvm1Nv@RvG`cm&Qa(FQ+!1?(vv5sAtS~xz64h8F0Kb zQs3d3IbUB^m^8>SU16o^p*Hm%pa^W zzZC`qt(PgVlFea#kML`LGLF0YF~2sXDjzkRT)TN?y)*aHB07aO-`*Xbew3Eu-~MN) zx$^XS<3#ynS}S^ItWht)HZHBWsQs&JSvxU-G}qjwHW*$s5PkkZ|37*YEuo6vE-R)J z*u|6JMnzlb!Q>0+v_Vu*T3Jszl+|TQSS-N173a43?4G2A*bHIIAo!qk zzgj%&ZXj63M5CuV@nIO7p{f>KBd7GaU(KDYv|RUb>D-FC#w&-$m76j?JbPHv?n#dO zcEk|wuc6J!e+eak{@7@P%!*AcE?}j5KaOe@don0pbvD)8nilMGX}w>(a!Z1)tk)I)%CwhV^obdvFjzCu--gn+!r3xPqj5R{n}s2h0P0pbB9h1@}y zz%rasNbAu3kdihpgz#TRRmUvnHn~vxJ+sy>)`f?Enbeed7rq~$2F}U3K-#Em^rNBy zwhy?ku5@-Q;KTBUP&0r{wuo$?3Jky!6P^yt2j0-?qimFTvYCI`kI@jV1arWXtv?We zZ{EYb43{p-JkmBw3z}lZN5IUr-zourGEugkAh)zc&&lw)*jz!@6yCkW+tJT#^XNQA zkpV6OTWbHE;navs0{z!pkT%zbbLMTlE&yONRWR z67iq_8!{G;=kv_90b0?{r8OgyGI&abK`|lc(g4x`dUI9si*ztX2?Lxt8%^))7xEG# zA5NHs%3t=9U-GKp82>FKZWEh1TA|KC3RONZ@M1uSxBk&wU-vBm$&mlv2A@ZH3q>$l z$@3wWO9Q^pqurL6KkQuFMyFf)<}q4~@!15fC;|u{O^@u480kR&?w#P2x1m)Y)0dO4 zWw?s)oR+sEKnB*_tL5>@2$4vQqsTz)x29K}7}-T>&IizG;;Y&S3wW)Fd!GgET^u$! zovR>d21L+X6tEP?m4hze@qN#)jVLWkx2R#dU|K_`f$zug`9A&39``nfafYjWNr$`B zmBHhjS%)I>VoEuL7&+8bs578#KtG&4Jo%3K;%+dQpZ#w%03M0<;ER?$HL>!WZ3O>k6&4*Hszv zcq#uL+j?s!A&cMyoaL~ucT~*St7D=e=9GCqHv0#+JV{r$!!~N9@U3oP%Vc^+XAbZK z?KeWk4#3AdR<>A~weZ`{dAy?o32a{Rkt!!&?nkc1LZd00y47lq%|;vpYnRFd1nbiB z9rps(U?iE9IUsSyySL-d@2_7It#P5@uG%@vLmPZT`}?i=JGCdJQrpu@A&DgbhI6dmx$vVv^93P>0CS@hm%1ST!fWxzC#@uC@NYFeMS^Xg}sc$IW?|VK} zP`F%CvYPi_HKFCw#Uw{J!Q0FhX$N1u`#!s|4vJ@8bpGk_Mr*4QKPq7{UmHXFMnzBM zB+6y>ygFGHlvPDF`H^@iX)fhspk$!yBk;TEGp>TeT_G@@`mru z3$kqb=O|9edgEU`sp8H}aBrVa?9CFt7u0MWbZPx-Yvn~F=YYKUwf%naX?Kp{e(!V7 zC36OTJ38N+hIh|&f~0PmPUj4HJM}kp(pG)EueD77Z+zb}0MfvCQ27Y`>_;9zrYI3W z9SP!!JQL&&TtozD;f*Rj-~lgJ9cNH~gFv$(AXK_ZJ^5pB`8w4pBmnf2i<<6%${x%a zDu%vu0l2Lv1lNbUBkZj+!~zXUY`i(4xMWhd zH}ZcO^J7#&CZHe0rzy7yn*#owrM^V)R}RtNWM0-9QB>Taq$a&7n!pVS<3}E^aYJ zAKX9(>QN~3-mPrQu&^_pH?}Q$pP_kSffVG{5JbkT%vWcV15!V3$mCQZorNHVlX4+A z60U}pa~cWP6*hCEpys_?3}};+Z3iX*>Rbk#Vow!S_bD+EgBYJnmzP%3b28B90b7au z?d%uaJpf15y9X)^=tPr{U-}gCQgA6;ta*DW&P~Abk$%)ZZ(5WgjQ2Ol9?YgB#Y<(^3hL#k~^S-NmUasOLX9boB)IGlJ={Q$b zKyqa^$1`2>mbNz@&_WOr`}g8d{sZ6Q(%pE5iH-}yAMf(-&ZKR%qT*y2-(50X2|rRn1JB^n@=@8gfV_V??}CaSpbB`aEmpo?gjI`e4;v zlVxr#EFf^1?kUx)Zn=)6GPMTUW6Y*y`#xbRop|u2H(DuN@m{B2>9{gvDo0Bx<5ah3 z6jq_YD|!r;KmC;}q@{mk$PxLfL29DTLtpm4G(40Gn?A-GltcfI@meVMU^!Px!Tf;1 z)iN$-6fF6uWf}OMZt^YLes8z~r*sj0fUQ$rh7|hFSh&O|P{-@(Q3;R_u>&iB#zQ~>vbJB(X@cuQYVaGouiSp5WP7a1{2XrM;VO4^>}01>4e z?~>*XM9)_LkuW+>s9u9eAhq9O&)tJsZvEHS_<7dt&+Yzj$Kp>8WZBczGT-lJ4}87= z>{GCZk}8CoVjLIEo01d#R)K&cMt2QPuInp?6HB9}Zo_>$8i(w67!|YU6vbM9&$~xI zR#rW%z@_-m~a$345P|HfAB(i&ngp0mEU$Dz6#UpK`_jAOh^wI@u=phr9W9}iH^ z#Llv5SkzWf2q>qop{T#^dbL6acNrMyV2d|#~W$mdUPgQqGuVW zoIX~XxTCw3LUQ}nBR({5#FI_*qc-Jh{b!IpV?(}w702)=VJJQZRg2=jA)C*cAdl( z3Y2@`(D#1>`DDoZ1;7jAdt?CK%sw&~P`>Oeb@VY24KoISF_%+|C`SWWiY20qI53Hn0Hs0=Kw@N~0^o*_rW*e(ar~p?{+)KQZUEjMjmw3L0 z!|?J!fJJV@fQ@jiLn^ni+5=2NKq=?BfkxO`HkCZ=?V+}9B~XTAuOLf5nr&LQ7g%H%`mIbL`lsIGP|eFpI7Bp4uY+iHWN=F;2R=@1=>xB$upIXDvEa8wiI;hrTy96UNvY?l5R)$F z`dB7C2qr*PjL)19{PG^cbo`I+G;PE+I3ryTw6+O{R%8osnVw;fd}iw0HAs5i{c%=( zB-(RCE%_+RG;S17#+Em)x?NReJmvC4c3YUSD0`F!nO$o9Mh)9|!3fd(MEPOcS@&wK zwP&@9_6*Cb%6nrjv_0>)zv@X)K|Ks(;C(_s0=j@6P) z^8U`46tZBh@wzB?Bh~SHfI8P;&ua))qVUeMQT`KXP_1K$ zkF&Glc9{c`rZs~7$ciTrf0kD$w!CWLEYbPXQBn`tG=AOF`EzGv%9(hPNv4jsSt2nC zVvOCeD?vekxYXk{%~5Y*^it-cSmIr+Z|CvNO+#gI4u}qeRYIPCyh!eIJD?T;AUq9}hG|(E!vuVep#rF6|EvID zQ2wMJg8rb4H4|z3}t4 zD&?LsIsTC{AYTq@cKD-K3m>z+RTvz~FdTE6)^ZC=qY5M~Tw3c9yad3MGRw&@99`By zUMlA>Bbi^$k84QFxusBeL@*$}ju2t-#_{+tqFk8fCRNUdL}^fyNb*=G=$?-Zt%;!-zHn3)+}83-=e25%Ntn zESi@m4M!?-P+k8wqXZYr5tK%s#q+T9Iv~u6IQ`cg9JROTQAFAUG9+>sgR5+&^f)SF zk{HnSCbQPpD76brDxo(B)wEwCmGA?hh>ssr^%@p@J#dTZSb>}c3>8>O#D1Ds42wbK zZ}FPZPI`ovI&F({Q3|cyP0<_72NDksLqiGOEe??_c#I@002jTBwI67Y{9}^waALXX zopO0foE-jMLfkGsg~dkGQmj&xJk(I-*|@#h;dLC^pCsVbHpq~NqWu|-XZUo4+zR7yRc z+bgJmDy`(N5N5Ucyp%_JvI~&;8Xg1Hmc^{C1;I}83HlSj@?{zS{9K0+lZ2(MC_G-= z2ef5ey%GXF>gZ8LF0x>X9*hZuzA!s5osWN5+DR~y9Z34zh2Z-~_zJ8}4@A3Rr0?#|; zQPU&svaqVI(Q7<2HLLz_uFSP4M>R-mI?lS!sZ?l(N@g_l!Dp3Hp_(+U4z;4#<KSi03zH34Vyuy%Z2 zmsmUPmW5s$8E-H6jS|Iar#vILRefRUW5$N zyB6QC$t)bMviD98m;hU?`|s{ReYg`^PI1nwvT$Ndm}_DCgrL!#Kyb|^XJdET;x*$8 zi+J<(oXcA zAXOqRM>kt=53AF9eOeny#zbwmcjxEb$7pG-C24Y60E$>R12d>j#cA5^cHKshNi9cG zEl7}n)~G_sUXZxUro<@`@m(KLw*Wrb<#NCt)fgT&pow1a-;CHUaJIZcw;Uq;0QCzE zfN>#GVJ1-CSe4Jqg^Eicbo>j1E1oe2O#^rVXxK*ybdXnai=wX3G2P*4{j69O z>lAM2qi)qeNyg+}pG#Di0uP}2^!CCx&Oj+JVC&sQNdL+J!`7o9;A=~x^vW;u0p#hH ziZJGcFQ)P22+_QV~$(xUEUldoOldU#o7$q{X9MUB7?YtylID~px<@ouFUY#OI zJR1rpgT3P)aU03E8lU1}JX4h@@w4Bz=99TzHoO2!{HV#72w*z0?%R8-i9hQNM8wbD zI@PRNNn*=9&>8KP9d!~GjzYYQ>&Zp6&{v1gBjG=v+ODgDgO=p;I62G1(rpCAo=HSV zS}}jwakv%S6~d-9PcWQ!$YODD+2ZzL(~=j}x~z!V?GSMdTnDR#sWOCH>bXd2-p*xB zOGyNCVI0v)`+w%TxLU{ny|(+IB1(FNLr#N?9XhSDdnh-ZDri~%bw+5d7` z%gvqg@9O2k568enpx-B}I2nR!BK{4ZZQ|U)3fy5Qx@Rr%CqKWPSJGvcGUH@ zB6$Nxuda2uRBz|GN)rJ>c%|{Y3GS~vh4rF~>Ns9!abYW4AidTPnT)elM>R*D?itVI z|0z8P==khVpS;RfP51CESuTsk+;LT{jGKmUOnJ}r(Q^*?`WRsKb|=w$AvT{8wdZ1b zh4*jic|yrp^aRZ9L+-dyJ+&xDRgZ58&l-ER@A~-a`%g#R3zJ6LF^Ay+JFf?c4h4xb z%Y5~Cmb{ORasO1jql28(2mzsWU=fqu_E4$(xrS028^@&r=8YUjuf~-S=D@~dma=N* z+*t|T>2Uwz`4w1Aq23PY=ofVP+*%y&gTwLLiC=aawJ!IIN76#sxoFf*T-6ymf(0_>O?1Qa zF52Hq?jM|arrz`p+>+_MGISsKJfazU<33*Cep4{Al(WidG#UK=o0O#6Bf%&j5tvU? z4o(1s0SgdjZI~YkA*~dW7C*PIPkoDd8`Uz4INSKR1`Am%s1|`101;pxNh}c5=H7M( z0X)5xOdz6Q z&cQ8?C-ry{R6+Th5=tXd9TSMrBCs=2OB}LG{{HU40fcD=8a3N;ti;SLs*92`F{l`0%E^A+I za3hK!OHF}&&V*;J=m+)a|AfKTsp%pgXL|3#QQo2>zMX5~E|%I&>*|4f2vUDy^zaMQ z5pmPCRT=l5kA(Ey^i8HEuC8c4PGFs-aTbNd5=<$+O72L|cCy2LtF80W@>(2k=BNOfBqW1P39jAL8*zlnKtS(8vs;bL)!NpetJ?0IOaJdBAmHQ0XIAoN6%^pHA zfp&u_IO0Pwvlrs=P`Er6GxLR*NE_Ut;&sdC?3M}*{D=T2ugGz!_bG2~C|W6Oc4(4W z(hpVNe1X8mO3)AbmO7d{j`$+wbggu&$Cn5*pQ2f_Y`PB!bzi64VtehKqlrZOn?p6FXa5Bq)Q#^> zdiW!6EJ|kG|HuYQXvlA*;7*#Ia>vJC6mLU`!~B*{&sOqGb;ElnRw~20vnl~!6GB;I zUm8vdg84V1x;N$NX9K@HKj|RW;gH3HxmuNziKvUM!KTLzWs|%OWqwmN9?LHKxWXpj zqO(Snh?*qdafix@|1o;!L|(c<{vAS%=J9#3^2-*#T8YDwK{S1wgxGiP`9jtDuSD78 zRhGBe=%itkFWQrp&&|<(~X`Ps369;Af+Pl9C&pa>5%r4VLGgzA?hKnY6ug zNdMv{OZ8%ti&5B)58Im)Hxti^&Kme22gEQ~k-z0K^Uu;XcPmGX8iWSpZM?XnAH-AI z>J)eXng0E))I3wTxq1C#v4J|?^Y3Sz-gmJk($5GP?pC6PU*7-ZBUDxd8F}eV$<}|P z!)+T^&@!z(%I9hgln;6Lgl6_=RfdQ5DNH{fa66uwLR`xk^nRV@CpjJ@5U!XO4E1%lxVJ6wP1qQ);XH zPwD~SCy6AjLz{&a*9Bl903@NJ4cM8~YgHwc0#2=mynK<6$Uiw+c<-v>;TujlOJgwr z2PyL(@_$$AdpOQRy8O-zLN)>dm)+V-P zBM=aBN!*`jEc(>f`{MCF_dxt3r?;AVzam}*8io9x_Ywd6>i+Z}_Qh0Gihw8=i^wrQVy3lxUM#OmN1L#gkEd@^3kaXaNRT zVtdGtq1pfRJwNxNf_PXsxnE-~=zL;pHC)h!q?slv;}V?Zkxs9LM{kL}Trh7X49<)J z&+KK+90fe0XK^nd!>j@50{QIM)UdbFHZQL=6IkuTm29l!=&LS!<^o<~Q*qELv}(l? z8xLtKcNQ%T!ql2xI)bz4H#Q+v$#a`q&195W0~3!aw@>m>%MB z%TP_c^WUdx+zgMIOw7WWqywtid2OSkL~?ms;f}b04@_R3Y*~Nf z=Qc$D>J{Hh>CbX#)mlyckow!jGRqXB;L%xc8Di#y<#0$!PV&9%KK4itvQ&IrU}}lc zh;JwS-dFX(a?JOD_p^fZh%`*OcIn~p+4LXZX^}2z$jUQ=T2k%F32!xy)QMQ9fYh54 zjiz@`$bkq5N;W|;I$xuHN~5o;VpE(8GI>7>%l5Z+rmx^7ntD9iF#!4CyGhhkvq#ws z6y@>4Iboio1?t+>6fc5L+(b7xItgvFl*w2B_mWEv%3gxFQZ+tLjnTnStBIWcj0rpl zCTe$X<~)LU!&Y|Xkkn7=6)o<*fMs$5goKKSNOy^n(m5~)O2g1diy$2X(l8(rLrZr^4Bb5paOd~F_ufCw zpR?9EYt4GjKF@dW&t@#Z2s8xO4aC@)N)_iWPWT>#7*sAOu{oVf6xGvU5}-U*iGaOmZ1^c5V%*>D(Y@RE3`Z(^kl3IJ+U2YJm6Ni0ri+WnvRn z4)%Fm;tE`vrTi*=9_dy1S7|I3oK`H13-WhP)9K=-e7#gf%R%W;V@CGHWo3191;Z57 z(rVuS^y{Wf!=*p9rT5>9m2-DNMEJQWQt=K_o|`K#rar!YrGc31QfPWm(4g2E6#TniSu1iw;4%RHa6|o_ir#( z=Qi&3;7-eyhO+4IT0S`+`I}+?d_Gy>{era^k~;EsABs81_O;ip&oPx!{ePmI;E)u8 zm(H~bGrJ;FU8X`TiC5MW^x@ILieaB}NC*6-XI++`LC7qKJ`r_r(Za<6@4;n9yK0i) zj)WqmR~+1cN`Tu2fD6zG;a6e$#E?d~MrekQgo{C5!SFv3e^b#?0YX@T1l$Bgcrw%k z7{UZ57A7ZI3n4`dK)3%z=0=Hw%}YDz9KfpTAIZ6HFXwODpoP#*+#dz|IBaFEWUxd7OgZlz4Asmx9` zxw8YGoB!6=5)kp*_gualW;1WGQI;yeqey8!(P>nm)(-DCJDI3A&?XV9`ZgKoV1G6nt2)U;Exv);#efL!t|*k zyC`H=$%P8c6cV%!Vi^&OczkZb<@!W_`fcoWg+PgBEaNZP+Bv>%2ihgLy1kp%(EN;htlIXgK+btiVT zpSP@QBNZZ$T{R{J3UX(U?Wn7FZCIrueUj)_j0Fx0hPkCD3^vlpS$YNKErV9^>L+N0 z3-yk^r@>v^3}Xu7d{(#+`+h$d#x!1M^v8Z^yFIJS5Z5|h=lME!MhOV!Tk2BwLf80`puLpCbd8^-j!T%1f}K3Kv4n$Y+>vir9ciQ^0L%}w zKh68$TTJI><|HhEDC;g}+isicY+_$Kd%FmhrGBF>5Spe{`Bw#CG_p?rIh@mm<%l}b ziCqAGu^kei5(`$pGHI)jJMOOi9U^~h{Iqn=KK?=JPYnP2&BwgsPgcG&Q;{DE-+Z+X zxl%XbY`HYJ5ur5ZBAnoKXMa7W@Oe2E7y8ocv}-I-c$?$3*7NCsLdh^Yz)I&9MVvUD z6PMVK8@EJKb$p4`-^yh`k=AYxw-1LQ+l=M%T3_+`1B>#^dgNxdyPZdl!ZS-dv8-YI)Mr)~ zW4J#{D^2akFR%8Z@Y~LjX~)ako6h&4b!5lRW6AVxx(ff$*R2QP`!YcaO>Mre8Um5~ z{sNEB8Ks?@n(k^4b=7yhOU=@;0S7yI@&)W?y*#we+@Gsts^M2-dB_&Heh%vy%hGg! zrwtFyxeCMDJerRT$1mM6)xPs^8Q038J=@sFUE`5gdM}6bjb0t>M}AY=2NkkHRWhNN zvNXB7GhzQl2kXgs{jNNT0QnSiFRfE~4ZY>PhC9pp$CJ)2eDcr}gjU*=)gp5D^QO%5 z?+>iw;hMv@W&x`Miv~fuh#*aW1ZMy1%Zuo_R3yi~!j{a)R81qC!z>Y(ba0O7-af(= zWsr63m&oPSbnN%?8w1nXm}^;E4-UFy%-mGw{g0zB6<#umn?tWMc*s}U^q)HR1@W6R z-L?2Q{}%*9xF}-ZZ(%R%c}`YSqtIPc8##0e>E5p$rJ<^?phJ_PrcuoIf7QT!cY#kEW0&*NKdy3mtd?@+<^O#srMQPL_B3j!YwC@lFL z_;Jg59}7eg{=$C^eBMnEa6)Vq#}9u;LbS?ZIrGghAU#Yi*MLLboD)Nrn8pe%0 zd-4!0S|y~xR7wJ~!$yR1>P;RpH*+x1xUaO!!nLwhy=AG#TejNkclj%*zwP$_4EVr~ zv6gTjXM9T|*)6{kNeMAuuGrIf9sc-cgYOxQ2t+?0sFWDg$+rNA4p&ggcXhI}CJ^-> zW%RW$1BmC7vLGT(E)^XM7Rr>ADmb3S>$u(fT@EUx2cBB7HLgj(7Wsr{-pOlaN+L)x z>m@REV~lujSPwyN;ezY+X``UG&)G+^G%x$T*Afwz5B|nk)W7{**l<5A9OU}>kR}Yv zMGX96r5sSohvFl+cR0V}xt{EktTsdw;`n6g>H%C+qA`8#38+N4`xzCoFyvBsH&W`{ z`lY-uBhuEJJMQLmg3bp!eGLR)WlhwNZ#ZS>Llr9hWcfUD|1|E$5 zICQK=*=Okqt5AQ8WAKa9zwBmk-!4T?h~FGHYq_HI?P-riHKbOHbz^nHvR>}~P>_+K zYUnrHeHeG95yu*0<{O(1P*E)_iP?QZw6)CY8CA))6X1?AvI8|g{1_1`=IzQIBrEy* zHh>Q_p`lVTZ>N0q;_^?6$lawDMG?^cm+bu=%&5c)^<&;j;FMMPy{;yQc=_&X9`)^X z-UI4YH1Y=vOaDjD=Yt7xR%{x@L`9FSGVjL!=;2XpmNGQG=FIM{zQ;IF_ariKJ8`G7 z5lniiH(>C6vH}DV%ZQ?x`jj6g)h{)rTS@}mpt_#!I|~E5n);6uh<&*kpEsF#iZrRA zzTI8LSm!vz?<7vw8kx2-)Nf~`7qEw0`W7IYoSV;?lm~@kcN(to&vY{zQr|j^Q`dHT zHhVtTsr%(%SiSC@;}`-<$~b;E)Ue;c-uS*(p^?jMJl{tn+OGVLAU9=bZ9% zvFLU!W|w}4{RMn#H$BB{Wr#l`Zc9)J=v+cY~50{nn2v&E{ zsx(*X`sZs~@uF&P@oN(*5l~q}q88@qusPHlv@CC3^-v(DZKtAHeARTx(RjcAA_?(f z{dT}k@}^Ga=ls;0n|Co{<5ETw!h78g_0W9H`KTZQu~wZ6FKfL7M{6EFe=BT9;wr3l z34yOaRe*CyFhYfYng~f+dZVslBrROI&gJWAYW+BHeq5VJ9nO-YCh=iu4jgBWmC{IE z%w%VhzkV0OE|YPLN+A9d7p@zIfxfyLZabD2IHIB5_V1q7?%l`w;=hACGQDUecI1<7 zZ}Zu^+5Y;$XbfUF5~EmK1TsM7myRRT{-p{keNU(xpJo&jzOUw2myLscnyFGbz z6BOBeS6=c|&BW96U#_?abYRG~eF2Tu_k@M+H5W zzgyrFP2~?a=g$V+y|9=#(+=B!ukA$y-}aQz z=KZZh*?h&gA8I!S(l^7ej|o3g?&$v1AVfr;CIg@<6vVK+j!i39u%VmFefN>@4CcHuIjo+j8md;wqJdh=* z_C-)2zTg!FK=5{)&=ck|@bcA&#v*uWTyrg>F^X55Hg#pf8^g)6F37^1bCd8i$^7_D zY^j>txCsyuYsq&cNHorQv@Pq$u?#1{=%)r(=$SGx0tZqY-KllQN(8pbuC^;w$0)uZ)&$Cp=pb%h)p(`tijf}MJ__1o;` zO?BXocq`q(z9)4w{oCuSBiJ@^Ppz8`#>SPVp;(ke?ORj47Y>g5GS_|lV!a5J@^?|= zP0_+)z4&A+8aE8eE3coL^z5Z(_U$@9{ zC7685NL-hAf?3KoL#mYV&&N|pN5QYLx$~sovliDlHTjcsCq8aF{$QKum`p0Q^7kv5 z>c(2oU_)|GPnVJ=Phz{2<64%`>JlJ>Sa@3RGqgCTul_SN@k zmyw@ozgq5eQ*HBx4mO@Tc4pg2SYe}8?;@N0qB0vkUXwQOC2KlZ_th`q$na2`S3#3e zKjdxi-}O*hUQ{ck(0{Jt3(z)Sq&tgxuX=M{uL|woE>bX{&X{L-ay|B;k^P zhR30qefmqle*l|y0dC4%6ez13K}A9spz;(j1-nncMCCzP2ebyBHm2jz0GWse@TCFG z02=`FTM86Wc+G;h3K;;OB0M)4H0M5BfN&;dV zKsOu@A`7T)1Q^0Tqr+7Q5=NK}+mSFYFefbm2^EE%bv{Q%2ID6<5(Ny!GX|6fV_vR0b+;FDcVy&%37mB4WL!!;n!0~xsV@W3;hF%+x3$Y1Of&5@=SPpZit^FHh%v|#WJQKyq|{KGJ`$_G8pm{xLT zqN1^UJ@ot%@nZ>%+o32#ysERLa}J2SpK25=~Y+J*ch zZ4qGs%Gh4UcB6_4;CLide4H4k2(P+TA4Pbt2`CZ&es9ur7_5a{3xXc~xD@lQ6V+Go zqeXO6|5-^FJmnR?3JzSEm+Vd~JXSN4GAm!^wRrkw&a0`W;5LRgunP?BOcrLt2df#- zgvQ>Er*PKYeqp8G9FI_ajSTYs1bum?#?2ZX<*}V9 zyRW?4CHxP0MRMdrYX8AG_(tC${ zwW%o4>-nVyeO$A+*;i=%=PSQgmCY)&h;L0i^~dSFsuRG#)c$Rjgdx}PM`845?T}nGCNpif9Wo27QYAmmLh9@wEF@UGAmA;V zcx=Z#-~o-NJgKfK(WP~=<~Dt)6^Wm7JCs$`M zF>7lK=tfL^F#6_g#lgss5Xxrg6)-N?`e=I!`fQs;eqL~g{4v_3ZB_0DS3|ttBC?%9 z9Nyw$em0G)mfR1n)eb6>bdItne|);6x*y;zJk+IqH=R(_W@+@jr~gObEgwd~{FmBz z+_c=bAQN0U>gx4lv?f+Ty0T^9PD@|0Ax1U5bniv!{*a$3zaI9$=u|%7)v1~923^W8 z+^(ZG2fKh1 z0*7f7yOo^(vVHpV@SFn#=W+yoQYHYy-8}Cv6X41~EdsU)Jf;|7Uj?$?5S!uIZUNSS zej~}y@;4U#79b^Ieb%)SpjQp(O;TxDblg*=N$xZ)!Rx_c-p^r`fDXWOK>TzbT{Ypf zqfG9Y!O9=LPHJ-)RG1)Fxw{G^5}HH99p?XM$2@}|&M(l{WV+20(zB2j+D?Wt4U`z+P%!{C~SywoUD6`fP z>p(b0RwbH;Lbq%JAMk>#sU7MO_~AfedWZ9sODLv31zvYOGn4_LZUeG86>j;Rt=P3R9Nc26ulo|hL3 zy_q3^J3c*nSP1kON*qIT39bPay24$j4FikD0#E8!%kAG8k3YSs76nhcc!soIE;V>) z_sk4UpDH_-eruE-m8^@-?V$D6ig$ zhNt08mp(q$mF@e%?a=jg{*42C+$!FzLING~6m9IDo8x2^71Uh~#I7e?x^b{YQqN}- zwG-ZN9>O~e-nYX09hwPPN%#lru2697y;U#n`4Iv2(lMqceXtPEZ>7(##Nbow(yc;E z5-#6al_nqokZxsv(;`UZEp@6j=aPjl;a5*jxURqSL9a0_go7Rx1J4+jhGlSQS#J$Pc53Eoj zOy^rH|91QySDbQObdqP89>8HT=?xBN{d5Hp+M%}wgG=+53w=^IesT@0XK!*HemSHP z6YV<0Z2UH&9}$1(_HTT8XA@^~rb9Ia8q(9n-Fl7xyl{HnA@`)QJnPlM{bq9?<5$Ry z$jyEKOp@mR^t9)gxA&Ge(a;p?WSy{Apsj#4)x}f zLRDyQOHq!8`*_>}?b#~(ZmP9}8g$4z61wy>wv}r;icIQmM>}Zho_5>XOKo#6|2y&P zzUo6`?I7sLRKb)QbPrP$bYzWRx?h%UJl0mdKji)VW`0BM=CA3sKFT-Q*08U#h+Dm> z`W>~ivBu7kQ@+Mu&HX3cn~`I&GcvCgEOR9H=!e4-wKgMpjO`J}J++%WOC}7hrFHLU z-^VqVId^8bICjozPT-I{D7wh1=3>76Z`d!mDgKUg7xmM}V#V}mf{<5Sf7tN3{_{~? zQXB!zn~mur^JHr?qt4c0)Oq{QNLs!4gXclXDhqm}^fAN8vJ;~L-eOs@_g*#w>s756 z(Urq#3>R6la^hKDZ)F1}dymxYav0(U6a=lha8{KmEXcc`v2z%QJX4U{`PJZyA$9E( zJ$KHID`Js2Y}8%qf}-`>Wd38F<#UBZDU1RqAzl{5RZI=!n=SvovZS{Q!{l&wL44{d z(0=$s3po8Fh-9uPH8TSE7cU$54NwBHTqcK*THLcB@&bZ^YA9MT0UVE-JRI+p6jAUx zT|Ch|u_XQ!lo-qlcVy50dp;)#uxi2+%EbS05+?NKuP~Z?;E-6Po&Hg9K3<9;DgNoO z?h|CqJxCWBjRlbfz7U@JcP^npc@-Q1Pvqy_$1;f8iBVt%SsyjB)TQ^o3LvgbcNTVd2C#E#Ih0}*sdV#^d&2k+SpAkn(IA0*zqI9E#7T4V_UU0 z`jK%BP5hikQay=*7w7RnK!92rim^SBiB43{Hi9cq_4QQ}UF@peS`4D>nAXk_9J`)6 zPi=m>Y{&gTrb^;wFga#DG=Nqg;DWUB26M}B49`5&2wGz?2jg|J!lQ@udO1;-QJR;j zgKRxZn8b~Co4E-I_e2Hs57n)HRvH6)(ki;fd3ZL7O%Te09S$@FB7^=1;)gCZ(4 zA80G>DioU{ak?sTrn(!YApAN=iUg)7dZ{y*P>3z^n(nS2vbEkQdX7;{m;QRwRcrKt z5^Wp1lD;$@I_Q*Gb2`76(k^^xe3Rs@_XE(_H5?0Why6lZ+-`qH05(Zp9-%7iVGa?# z#)PY^O+S+|d=mL$C8%<5-l&Wkh*v(dk>P7G2`k%uEP?4`bWbRCeoM__r6S8^GY6bP zR|NK5{0=Y56#ZB`{Dwb{xUApUQ!n~B>_Ne;4+@rjWz_v0Cj^2y1t+XdUb~HoDYkxE zT6vIk@xkpKRI#CyS#Jp8q^nErevM6OL-C2VE%4FSj0oDQiHl9uz75>Cb9Ud; z$(dlkurF89*yc&;it*R21(E7bPG#bJ{+uL})vc@!vUAj5WSSbC|0+B2OLS5!HMHID zu`g}-bhm0r>+aFEVL~;5+IZ4dbWo9c+;fxB;Cj!MUthFLC|M0{Pv53{WB<*c%evux zLrO6{rfT@+%QcJC!`QFae%-wOe8VH&Ui~evi|yBMbbF>BX2-*@tGe~a^JnHa%kF`+ zb6ifzHgo5Fec78v@^a@Hr(d&9r3WTl|2j`~UefI^q*t*-{5Rywv8u0{=I%2514x>C zjVr=8OfQ-?nWrYSCX;O|L-GO-UA1%G&g<9HdanIdihYd30R5o8SQ;byW`;5x%agy@ zEy}^xTHS?oA-g9=h7umsWRtQLC(?C&5LPSif->>>GuT z7jHP~+xWMM?>BL+mXOqIzqli7tVp|^cNMNTtTk=CT618ZmA|(JW-`ua~ z4#WU2!%1NjH#AD^{ICXvuX3ib)Oeq-xR`|qGOMfzu87vE++Hp@F5^1Cne%|T&g>+Q z);Ot0d`?vz;NYClrssHUo~G4fMGMqikRv8y%Udz4h)y(5=w^>?nR!o0i#!P(oY z-LSMFBkMK{$Lkh(O-HHhobgBbS?QbtGdj^@REQ_4;}1?4?yQzBS0WWIWA5N@+-3~A zH(vG}k}JJ<#iOl4eDbU(TIP&6I6oG!8gD*i>EMbs@%o3~=-AfslM$YJuvvENtFG8~ zoYFc$x3QB0qK4KLbJRSH4Cya^wqg^X)g_G6Tcm~vngAyR)Biw+5pRK(VBject#n3L_S z^~rBzeY@H@ZSV|Sib&|x)9Fl1-VPr}II0uf3hOgE5RlW-6$?C!;j4>rQoz%WSts}9 ziXHcYeZm_EDDwJ-Up0L`UoVzkNl(S)_vUG$v4;4iX*b8+i;W?$=24M)60e13Gw<{Kt?UoGTn ztr&M=J8IW_wSoM8UL&eaJ|Wc6BR@Bx#=qmOTgp9Or$2NML0U5u9daJf^V*LMT{3;} zEhoIuC?n)xr)$*f1oX>qo-+U^pe>2wXEQFq94XQF`~#nkVBB4 zKszi`dA#<;@c4?m<qj)>@w{OTpeCqNlY^;LZMKqeM`OXLlzJ*5Ixk@MmO5SB&_Whz;tre7g*6po(G4{VPN#-wr zYZ^D0QD`V`wE~5`0fZG^1s4E>z#$5Uz!3tHHIv*@g>$wLkK-PK>ULi6JQ*njw^;~> zz&ufqW#F615=JdN8Bj5xMNtnJ37iFZlq%3t6bil}Pb2<7>;_~wB|QY9@g4)VNLRq- zr@#Rs5+Gs_KP{^0FO?7tjBr5sAvMV%sgLq3urSd;SgjPXNtLOp$JtL!7z=!gZxB2T z<83Ev&lb>=1ZY9+bikqj0!707DXMnLk2q9&LZ>{8d*zGiAhWAAayPm25q!3Vh74`f zyh<&FA_WV$O}avy+r|9>yFhDf?}Z1%2)GP<=|Qk;TpVJeah&Ahu1gQ=l^tNVBuZMb z#%we80;W~F5fQFuPT5$@%|TGxN3PY)F?&J+ibFb5A{!M3ju`6iXeZfFMj={ZViXa! zChk(m8_^NuaX$zh+fc>Ui)M2DimkDy=tb9CcV!xUXUySv0{3Wlvye9Kr9n8vh6{G4 zFsaCn$lV=eLeYRv8!W4SR&u>o5Kg?$3tRofod`6i_>5ML`WpZ%r*c`81}r}_g;<@Y zPR$MA5bTXT*zys60$SrXHag-pTl+4_aOcR)I7sJHv^2gnAFj)@V#2ycrm`$HSHh*v zd&TvBAeem{2%kL)rx(}r4!>lO>896T>GV1ROI+!Jb_cxVucGf}(gob8NC%wjxPTJ^ zN8C%(G$W{<(^akf_&u1rFc0xn^5Er*GG9RZ_KS@OelJmWD4^{4udw}>tBum28Kb8& zLuf}1EkKdFJdy!7toc0YgL#+MDs*M76tj!WNhAphn>ftZIXV^^<>Q^YlZLmS2KBpg z-d^cCaoFczM^iIZeVCVoyM+X<0Y33+Sg>7J5k1sRxus~#J`O7`h{BH_ruTTysC(3+=a+aB;+sF=Sx4>PGaYQRd@26+UyHRbXwL%sIEOSpBWHCXskH|? z7?{sn{qYD#TqVfkySVR1U(*jhWcW+j{F)t~-Gn81AMB;;*W!ujCvvWiW4tt>pP+A* zaa&-UY6Exv;q+~Zj5KctWmIFFceF!W`rfS$6rt&)*m1Ba{s0u6ywrCSzGt#NBOpE- zGuPCLOY?l(eoyOFtY-Lxw0=pe{u++1F6TW2S(yvTuXjO<8gdGL$lll;%0Soj`0E|`3i_;HEcO(|+S#o{m? zZ^wD#1oQtwpRHxldw$9E=nR!~S^SRJO;}yQUJOJh>z^lnnhW1+q>`%tX~thl-niYl zc@t&&5?a)#w)GfP)TuaN_ri+L;oNS^wVtqiiu}XG%ZssgI};YU5`1*9NMYZ=<>_`s(^8*(If=moaJf%CFBr zqR1=5+PmI|!*kbLM<9Nf-2g0iD|6h3{!dNfJ%I#B-Ag&4aGmbu1oLlPwb`5i{V021BwV&xu3jTQJnQ z5$$->c-_DyNI)oYHN_)}7Nr(2Gc_&=viysl3t-pIzC7&(tvM>_c5;p^GVx*5T`C;5%oKOmiseeh&wG$yBUN*gmZ(+LP7vM(SQSn;N|8l zwmYl>mH;stpTG~@Y#C`gF0Z8Ja>;-O_*KDRwEZp2AfLJ&1h-pMCt3S^OA`cO@#6%+ zRvg!4-bP3=K6-7(XMP#Sj&-7dv{+9kJ5ftOnAbw3I0SL`=yRfM#6br`o~q7{Ci2HP zwe5L`%I8v06U)A*LN3!mIq_JD8}73>3f^XFF&^=}o@OfUP;1u`7e^jlc2A?f{#82V z1Ow(_0k?EoSPcLMMJ6xo?fQ9K$?S;Oif)rHminG!|9i|K%a%2(FaEB|WyBe`2el!( z5M;qW2cR9y3Kwgyo^WuBhQc!dW;gkj>z^-0>MVsaPMReTA|=eA8MYWC zr3C_WyD4Y{<&#~P@L*k#D{Q~JCD1R`dV2M(YaYAh+;$&lRmN)_(>=-vebZeYz`#31 zGweaL;TVY({%OR65=fnRihEa>>*?U_ZU+)2jhVx>0|BAZ zdYUgfhU!>BBO#fI2Se@@R&N5RSGO}zyncR{!8ezRvK$dtiKbomtg?ouby%B!+OW%j zXf`qJU)_4Hb~k!kj#W?Ap$3JxdxsQL@B7w^sIj;+y~xdOgY8IePw# z&wrW*Mj4$dSW$o#Ho#y0uYS*;qvi_o3V-V6H%Y?=m5Kr=Ld^Y>GxOzw_B}<^lsc#9 zaLM}b2gXemr7_s7J9F9y2sL4N|9vq{`4TGBmRC82<3W*>@jo8i_kcY@I)SgvRPZt> z?yCF6V=5qcv7fKG+epxNKTs?1V>pM@qoK}FKe6dF<(YmjSMF@0oxh`?I|2=_K9inbR-N<)$GF_a(&o*bz2uD$R?|+4z9FG4bVpw?f^d--hxRK&y>%VpF z>+!L?^8%yY+wMO<{HOY@!)`#$rsPt2a9anfKEl!;&EC2k4y!Zd@(jbW2joYmHO{dM zT6cblojdlog3Um@%0;Eg_*L;9(aKvT*5gB4I>0HbY}<`N@9e0t4t~_vH#^r-_{hm&IiE`?3HX@mUWZNi&O5g*qtCi;*?%eGas$ zh^*o|ho0Tz?d<-x^mu4y^e%FM@F22#yP}-5nU7p?lHO0Z52NHP`{aRnmO09Iq+x3S zh^sN0m!l~lwb_5i3|=ydXnHY9*|@<`Tu5Xo;cTLxDY7+l6#T=SeMxS0{BoqleHFwo z7#n0J%Ntnh6Nt6?H}A7K@Xd8_L@@S?&d+z}BmZA#6Wsi}_ltN4&oN%A-95Kt>YBp_ zPzSSImH}4bL4zxCbr>^W7|o^w{6OCcZGc2TEm&wfCzx!xQyu{Pj32(^v+R;U1F?Xy zfbT;nlFmut_$a*PU}Drg02>^nPC7p+Av94!ZH?C(vr5GZVU`0j5H!U81uO#ovaXtd zMF31fvCDvHFqE3)e2dYdQZPSO>Y?FtHH)H&dnEUzXNf~a?3VApAtP}%>jv%uMdAZb zA?H;RZoOA}4-rz;6qn8veA;E3z}Gd26aJ3G@ToYdnlFgpS+rtKz&b}>2>*=qhCM}T z&Lx2brO*$2JPH`myp_KVmlZ*9M8LAQUpf^FV1b4UXC49Y(?p!wx(M^2;jd7Vxh?eC zBrlPlkgM^J+84MBqRBh8R{pkZQmNSKY>cqLhkt5(`b((MLmXS11C1xaD8nMT-0igd z@alsX0P-6gI;X3$ZCg>Fls$mIHzTLxMIBwfK#<}I3h?(35!aAVm094&EEi|gJDd9* zDT46gDSns|!*RDBPw(rN z7BusD-)g22n;Ue~2f|33WuM5 z_wy0mHWf!sHQ0ic*6T>}4bD<(F*K+1rEYXTBLU-GZyUGLRi-I$JD@$zaWGq5@(I_Ad>qp;1yr1?1^H5+0I6aVpE%?b{)|rfbuPp9qszDp;G@!=%jf*x>;8;*YwGPtq zjaXr{OUm()f@u!mp9bCoWyd}{gb>4^7_DU($pF#e1^f%^ztR!$<%S0jznWxrD zjF`CqkvQ!M+I&zUK=nTEyQ6IopSFkr9X`r9pNCdG`opmy^wR-H;n$O(mgxSJ3N3r( z#$qXU0d2l#Q~I@8pm7F%&s5^$;3SQBgrofvT1}@?dlF@;I)m?9^0=}BMRf^jnko1| zfyl_*?DX5)w9=i&A~W{VQ}@mcStB(IPjkW{XOGCbz}q-#aIJQ7-#>hbd6TyTO{u%cPW27phO|@`J`^0T+!qAF)%}!>mws z-}@3!z;Mm3V7Gf0m!<3JPybeMtwTwVVe~rfm0@EEyq~cwtuqC z)7wp6M0HgL&9pl_j(2XgX$cN@;emDT=-)0?d;*_)=V#gY~2>T}H1c}#bC zd~Iy03x~x9*X5O+>BReSVlhZ3^?L1>=3D}8g*1#%3wM(ibjszXo!Mzaf>#Kg*V^w7 zuaMveqV{vtUYc9QUC_eum6r#PFb{Um(z=k9EmzN7hYfS$x=%Gn9&M{y4|06j)k8IW z_#YE^)Gb-oY+vn{fFJBJg9mY{OS&TsccUxbF3&1tifd-~Ngru~PmbVqp=@sZ8m~w1 z4HPscR7s@4Iv;23SjWr}3R|-plAnql6s%W;Uw&ZB@G`D^!zy|5DLac%ZK=FdJ*#n#?v)@eBA5p(0c_oi`JToMa zU8D-xVg&3ki4!Do;hlzgZ~{2n0V1U@_uEzRaluWd+SPV-SMQet(AXSOL!Z)ugL z*a+xBnXWcHOu1v6(+a|jy>~h~48CN2s#m?Gbua$FURk`c;92MuG{i|I?5}VQh59o_In|m|g%4NM|K zi^o3YCj_v>fOi*fKL_Rstba9n)v`S!T;QcEb|n6QSs#_8gl2RLeI+_YhXaq-L5lNYb<+V%H}FCUQrWvgXEeEYlvGqUsMX=8#NC|<&x|<3N^P3_fi&1J=ow_1WB=AG;B*n& z9jtGCPXAW3Xzz{T0wbfTr@qPgmy53Sd#Q}o4=3kOe;c?jd0UmKH`hXAd`|A^9f?_8 zZ4bI0C7VaZ1)U!@+&0br;GP{y`cB%+KjMR7{Naj4CYSDpPgyT|X^%{SL)jX=O!<)> zGq)o?Q(_|qrr6eB=uxFbqX5DEdzI4S56q`q2XWLe0?UiDk0a9_p059grnmlU!VTNM zH%3ZqbjJWeML?ojCl>6REBqZ#$=zVGkz2keLK z_1blv*Kr=l@fK|4Ve;FJJk(cSGb-Qa-IwCq&(?WE;&AZv6O~bTqhj|4ym-gmYcDl{ zqvK~COz3-#=kt`Zxl0Cp-<;7&?Il^OX_M7D#-6SK- zJBwe97+%|KxL!0y}`O)rE7x<_{=0;=GU$9l9cS(g(lH)xX#V1x{;GjTO^#Xf9LVzBmX>QDNhY25D^oBu`1fdRy3@;f+IJpT2 ztP{z)B*pNikW?7K_5ephg502IUnqf(^+Ex!TLg%=6O_Rf>^c+-1fjq%0Q;$xQV*w? zi`xUm_)_3m$5T0gPPJ$*JCv|xSpNtZ7bpa94xu;0vj$GMn)~GP+)E|1&f*rPBTEk5 zssN1fMyL*u17t8884xdd^+c@$)bM%gPPD&dXxz-&e}ROBc8@1*UcnWx zvMod8TYsdqzi9GRA=F{8&EfYQTG7@GKoYUFs)o=s^LnU#6DM>w2)~ZEL}&5+Mq*bV z^uh%+%BnzAZ}@fKkk^(Jl`6bf8GLP>GLV_fm~y>7M>zn~fRdYhPMTA1MwDIeGZ`W_y|C@)h`)4fX;*1uzb1Z$ghF<|kel{B_H81v%}(f8f062s z16ty$bcsnj=cfCvj0EdJ_FFrkyPzBk)$5A()EAi~t_-jjL`35t- z+=}r&L1yUw3qyg6W{OtI5w9Mf&hS8JO&2DR6VTlKuWar~K0#%G$UC*4o`j7@as-FL^D)ef;ViX0X09wS~^* zP_g8vk!kOKfAKuocOo9ez5XL z6uM{ouPJ0;$=&r5<~k2?kX96seeB(S({h*OM%>K3@Ba+y-F}Sj*}tDHHTDT;xqX`x zUOQd7!@JvC+jRkV2p3g}Ddk*Ieag&?nTs>(n}(r}C&69JWp}Q=cXO@j_;bU_JQm`( z?Iq6VeS#EM%d@qd*SA`#EZiy&%IAx^ck}o&*P2&3wIdZ&)BFupjBO9tsrW_Gd}cD% zaQpS+X=_1Fg{H!S?29?wL^amgt8si`k8cjI#A4zwYZuXK`v1Abz@2=)cFu?9^1l5`;i{=n(=BQ2aeq@R+C&P=Y5sC>zmXOd0$!xA_XVJqwf|PbGMU#h=*)dq$)xDjRI$7g~Z= zV9gxQ2jgA=IniVxst-8Uk$?BBbQz8aU&{mX!l816JiF|VVz<75M>EJFU&0~oA4qds z^lh$&{JqFl!m|Nh-oXC&YjNaZM{3e%= zgS2r)2Em2i6KA6WTz$&9%%f)wj14Ee#lv<|C5*gy`pfBz8adtn-8k)0*^m-N1*0a0O7j&90{Vke*aQ=psS1`sg34(kViy^>;jIP2Q@O04q($|@M zY=A;%t(Gd;E=}LifJ%J)dMdr**MZCreLkpuXS9Y)BMz z71m##9c);Y&=@l|Q444~Zf&x5K>QZ$9uGTN4|%WL+03L2*WQ6%xnxdQ214#=y4AoH#G8RBuw-jZr<}&WK2w=K(@i0(RIv+nlUW;f+l#qI%Z#HaS@d0?GJ(8BOyHcvqGhEzUbjo58*ptHf9_mO<; zMln`Z*q?1TF;(e>J)pEm;Op>s?^SRe!?(6&i+5_6w@EJcdzG5=bUBV z@m~4idPX+nf&_MgC$ly}Ym(;e+}n6uBwh_U#}%>_u%aaFqKSw)-5ZO%%EWhU#Wo`n zpR9^s)H;pm)h^Z@yYsQi-dG0&^Rxh;sM)LWcSzZOmp&ALhH3AaULs9HuejrgFPI z5`{&GtNLM6@=V+PA&+B=mQ8!tFi!^KiSZ8qt+s8)SsmCfv2B{UDZWdvmsZ4;W^1=U z_r9MF=`oE;EAPG;kiEXoS=^AmxS#c+Meo8syOhjUc*_$KH=p5-X=CvZA&WaiOo(4e zU8$fDR)x9J>#fxuo1{go;NjOY(S@t8B~{{xcA?bg?H=1!@IHH?%nejaW(hSDQbC#{Wy92 zM@dY#qh{1e0d0>SwL0r;<7&2zZKRJtj$YJ${RrQ;yDGjl6i6#VHs^fLvU&2O#t$fl z%_nPp%JRD*m8I@=Si-)fheX0HTzdF2aAaEUaP;! zr?9M)R9o%G3r23rmNs~7%{{c!o|m>;<8_+U{(lWu_^V05^19k{AW8r$z(Ahx8A%c0 zB>@9K1L%#U=>ew1>k$J23PD$awE*XUEs#lIc{YWrFCduGOr2nb;~52N7wpgd<>VBc z4?F-?$0P1|8II_MlI{=5B$c=DI#hCjfs{r7W2EpR;3{0*I!4#ETlGAR-CV~^oqise z+AFmN@Pp7fB=F@!@bsh~#-ok>K+UswnBS^;AdV@SGqPxcDz1oV(5b3k4z7$_xW@ zcpUedra7CLvFE=pua3Xmqr_ru&HN&On=`S`ahSpx3TvWgUe2rgH29@dR0$jcGKoPHyi4qywoPc zK;k*lAG6D{(tcF|wIqw^y+;O|f9LxhWVTMk9;thaM-=l#eO%Bv;uiT|uZeY)@#hi) zqOVLM`jNf7a!LRWuXRe+cx1MvEqfE^#yaIuQow9zI4MVly{M`!0hlRl}&cK&eqXIz=@Z$oBa$XhT$#Vx~p47F4lh%uPb#ED2_F*DlIWnzviXb`fi$0f2oCZsTootDQ(isMX-R2F}TQ*BZV`)^w&w`{CX|*h_t1{zSh-qJWGluExuT-3)MMA~IkdFBhZ4 zK5bs7bG`1AfFH}aJtMiScWZRb_-c87PRDOUuCYjq^Yu-8)mYtB6KC_jpNc)W+m@pMsiADWqp42 zIVY`?lC!5Z+n%?oWMKlToHW^8YE=_;G3AJhnlIc8GprNwDVhAGbPE@Aud5nr{gFQX z!dOqVGP={H#h&!rvTSI&+2jNbSf}^#S(C0>jMGk;kLT59dOwd{@bbX`%Uh>euypYv zu{#)r`E_3RgmqrD=YxO2%+#FPUD=#?rk-4nht&tOylr^HtK|*Jjf-R3-5b8X`uP4x zMFANhyPPG*U0V0)Y0Cv$p6+V12H$JqX3zt}cfAC-^W4dbd*A^EhAHF6x2R9loA+Wx zpTIm2FBfek?%T`wc6?|qE_xOqXWL-fT00l0Q7DR6%J3rfWd`>1VB=+i#C_!2w*=#P z$|^h6Q~y<)vFrO+3*JerR~FC!VM%Y8v*W4hoetv0s>ffwuU1^~UX@vl(^~SgJq0 z&+*%7qp7sVtPT6m^RFm7|D7u1{iFE0YU|sW+6Kq5mXBmFW+?L)|BTJtYL2D)zJ6{h z!Nnvf$HSzi9od$m9cyITY*b>Ve>$r;o?sq=xv!pT4``;f+0^U0)O_d6+ zhqiu095P?)Ptba`kXzIvbe}tA|Ap>nbNtWX{nJ(Su#ty#lzKp`nRghr2Da=gy6BWV z8|ie(K0BUqRJ{LLg{WP$WT~>tI3dCoa{LM9om8HidEvIaLF>$yhKCV!yjWC-L^{@Z^;a1u9|DE78s~YDwX77+D zD?$~ZqX+BC+<*$8TnD+i^qU7Oq>l)&xa|9`Mn2#xu%^Rg69fc`bQp2`Oj5k-AQHRW z2m7w@At^ordI@|vRZ%RxQp)MP@i;L>*%@%lstJ=%MC|`1%4I&<+IG}-=F*Xod})g$ z!BsBpBf|mi@|BZT#3U;s82~{5qyw@dT|vjOCjpRNNsq}a2Aey#@x;ae21$gCB+a!> zJ)(J2<7v^ruY}IK8D(hvXOl$D6@t&Gg?f|a<%$h){z!Okx+9v1W|LZK!_zlH9dNWo z3IP?`a=ELh16@vk1puUx5{oE>?ticl$~X9w!MG;^jFTXSPY!S#9>OwWCvOe(>kMI7 zD=^Ob6V_e*?L~X9T)8#=DyZ7!JNZ%UfgGjf>2zGWfk`8NA!oN?)AgQ#3VA2bx@}W(nI?_W9e< zzZqqjSvXUceMi3$)425(w#VsY9K4Q~FkDOUtL(>5*!;Zl^?K4>f3aapmG%wPd@c~Z zpT3J~N#12UonhoxFa@;e2Cphd7jBjjgiA}7v_W~O$+S8=^T|n|IhTb02_AORHAAC~ zo4dYY|NX%CdW5D_`SWSt^@SgGrvTjELra(Wpi(k)%3EtUm6+b`*N(u|v$-iP@g|Of z35Ld>?z{>iCDbkl2;)Sf2nPJPFviZnRCo3dXD6TcN2R8xezY~IMiDg5mlbu{MH-jC zmrV}QXiO`YcvGGj?OOI8S#cUL-Tz9#nWa2k~#W^ z?WAXG!pP$iWQpuMu%Idy&G&}%%PwSRq415EU2(;VT1>f*MNdP{`DdfXcIOjRs6En( zvN@Y)llRQK;zQX^>j~-r2czii$Uf)a9MhtAtnix^ZXfW|J(JFCBedU;8?ZXqN?uF; zqTS^dxx5N(*Qff-MO(bPj2&E z530ECPe0fSAV;U$8MX>A9hz0_zrf+i^uhDzZmC9na~~H@rdC@RjVRSvy?i@mdxmMs zJADs+op~;L1+bN;-Ktd{55`p9)LdKr>st;N(Yn!L@gCLa^84Fy?`Pjecr5ho=lx{b zt+m0`^-+FO{_cINAK%%}e7}IT$j0fWNWZSue{DW{bmCKSQ2|DEkM8_1H@MP5y3T+S z1DgBi_Y0SkL0=Gur`w3diBFg+zwFrwq3>S)D$D=RN~qA8*rvA#m;h|a1r`FF08*dn zi18{27`R>o9wFbYM{COqR50|$kpYMS*O|c~N)3h)K^!0^kXJl|JaevC5UCFGIe-Ok z1SqLagQOcL^Mu2)aAp?>F2ql7q2_@FdQ%3;D*%W&fn!7lL~|Uir#PV-jh7y{bqW*! znZ{FPdlJ@h9hQ{f;X#3bI(0BN?K2Wjid=D`;s|7K$0wIuz7M*2$3qBJt1Gs{vqK^edpU|5f$p!)X6g*B; zdLzKtv>bh9ph#ESS`64>?b`TLpK33$ltj00^ajf&7sudiYB-?~pBc(Sol?Hk>dL4k ziWLje0D7Sx-=lct_2&}}@a<0MgF?Wad^wSB@=qb752O*$wk}%f6A|Z7cqjX}cR9z& zIhj4+Rh+}_589HfW3bNQp1;%C%zbfWm{pCM;q_E=a z!KzZvGge67@Lo|ihuWn0UE(x4r~~c7U3@8=J!kPfkL3fs6{d9=U3$P#bjkSmVZfl0 ziB3vq=wD(GCG~Mx62I*!2Ek zb>*h4F-Uvmj{vW`B_nBD{a-pJCQC$BejL(5E? zyUfgzuaGT>(#s33l2w#zanMXiy4M}nw=bsGXfl?}#zANjcbdZ#FMCC4q4{Oi-%}O1 zp+u;%9VI?PeNnW|nr*R^6Sw*G=UA7QjU!VoH(Gr^&`l&RL+G%nDes%lOsq02opn3k zedsVYv?;VYy`0mO(|+fA@Wn%@LCM#COiP);U84t%Af{FHk884EAyZSl@#B(u)i2YW zE$lkelY1kx<=J7eGF@U`uN*%5uJZT!0<~1`dP9+t(^daUoQmy=NawjoCQaQ&+`_Xc z^BsC|W7D=nyGhhWs?U>alzUm@f##$+A9!2Nz&L{W;_;1j*SB;5eWQ$PjuUH-X~Stt zKYh_@f$7E@uE0CrXYX9%*4PvUnzd?o1Gr23dp;fNeX4!yKi$8qHs61HZF<+rWi2YYd;cByixyu`kj+l24ceuC4L|etc43&E`t#CE!^?iHO>j&db8qn_68kEt4+1Gpr zgr==m$JJ5o>`^Q~d3GLbGtr;f<}jUo@=)_@(si2*nNBqE{vpdyFl5R;AP9TtJ$@XUi|;ZGOS%_@gO?d+{7FqYP0aoSDXzb_`KsYDVX~ty7jYKlL^H|ikp_uIue_DOIvUq(xku}VhIc|TbdZcVM9a!px z+Nw@daS*fOgc2^|=G|#r+P%!nL)7r1(3mpDK3Q$8nn-o6scegPFLDH)#T?USX%^q^ z*tOFPH(fBaxxh!YXwRkzuWfmBHTwiG!Bg*f5tx#&wV-O8uikcveP9Ipeo%HJ5wWGP z+1W|bEPi;_WamS(dD_nAVmw{eWlN>U1>KAEkF@Wq>zS8p8)_R1mwWU6-0e(LA5-7i zusE1UH=TL;?Gm&45c9Wjv#WhDhqc|bg~Pw~qr%NvW+Nu7AdAvtSVB_E_uT&rdE`mA zn`p$#fGCIC06Gus6P_L394~_HjvR-4RGRez`74&f(&JAj> zDsBL-Mu^L|Rd#-_baoK>XnMLH9L?vi_6!gg|4f~Qn@)#3+(Ap7{O)tx)%AfV#zuvB zT#!4Z z4@nhxj`Pa}^v`ErYek;x%<^=N$~Sa9tL(r~d@68kONyJluC1t2Cgf$ji#`6;WKk&XY%pP0DvKYWFvZ0Pm9E7G$Q~-?%e6LhqGKgmpBQ8 zQI2}Rw;#Pq_X|n(;#fVCgZYf#V>YtQ714J2!K(5R{LG%L5_wcrH3TAZW_%s$Ih2$Y zYXj>!fi3eQ>|yL2851whSKxmAylYH3LzG+{uPUKaSz)Ovp<^W5#o8xIJCe!Z_0Spp z96wvzlYU))b-~KcDLcudDIo_N>DJTYvH||<8`TF@L?%~X54Snhh7@AHS6?Q3>`-Nd zTh;2_9FZQ!`>m6=k1h+@r86lKxro-yh-nL1$T`1sN)5ITmmBPJzfz)as~EaE{=z>Y zfA;3?ePxgYjV7_rnzy<#t8z5ZAaJ(hl{KSq-^D+?^6oRH_ZVHLyMo8e;U-`mvic&% zV|tVm!QWvg$xUI1!*??FJ~)2RZXNakzSelz)7gGMiQ)TyYtq&=-sto^C-2W{ca2(5 zMhDxsl3iw&B@6I6=X-0P4585Z5gY{Pj!?SJt=&G-o;~PKZMogjpHEn8m-WO2w;0Q} zaP86dOXow&u9|7Old$(uxE{J*=BwTR=;W%g+Bv40k9$tTbeu~IvCF}@k15GNG~CQ~ zDAYALNW&3l9-j5G5ZQM_U|7A3ll#d&#D#yEJzCGnznC2Tp=$O-LLRPKtIAgcs{SJ0Do1UcCl=#=wjLJmA@Udh- zb3mD$UHw8{29eIp&jszqqFQ2k%kNqCMPb9Cb~h?u+;&h{FD6^}&60kdrdPY(o!p$> z!Qah~CvMM6W$F-D#&W2e>>kt$Jg5Ai3ZMD-*Ujz=Vj(8Bt4TV! z^?Gm1M4JBz4ncvMjO*(kuO5V|MSb7ov30b#{baOk3V^ z)i(T#yNH1gwLQl+u|=cri#ZhCMGL&AR53Z%kScOJ<$Lw)Zf^uh|UCE5_x>hXsCI!%|L4neI14t5=J*-PPxE z&)svvYwR9=57n*`)i2ORIqPl5?52-$?}yG$kABO!YnvJT*~IfJImnZl0Y3I`5feOn zvbuS)*)2#v6p;JxLmKkX?3S2;K#zkJK#l)7s08QU z8;bW<2XBI6fUb3nM$2~{YP}2~^Fwd|mT~zf*-DjPhwF;Svp%>V)Fv7XAd&%E0D{yB za{zqTl)w$1~4G2?n1rRD5tK74YZ;aLnEJXBfcl4r<^u z#v$d=VgbrD0Fqh4Euw5rj7K^p94>)%r=0Q%a;g*@p9e`5et!Ts`wvS{`VfQgIPlyfiR#o+0b9Vk za0I588Lwi@rkP}j1QftJXP2p3iTakuhuJulAm?4 zS$5sed=tMOU_7URJN!c5m}{*v{R#?^M{?+)cviKH@i44vU_Xv<2<;9s^8;5tsioG! zQLWbzNe<`8B*Dp$t}7Z#Vy!IvtgT>2BlIIU&H!%sR#FtFD7ucT%C{qaAbUsZ}{ zo_IiU9J()bl|HppwW4|1a#jf7iQ^biUuZZN2{{J}PV#U^$W{4 zNj@}VYWL;m9a^q*jy}9pY2o-ZNp1D>ztgwD6DD&1L=cbaHd^L7 z+^?QA;j0>DR0eKaep{GPPv6g# zi@N{B3dZevf=MeY-HBL+|9e9n2i3H^q*b6RQ^F@Y-5-?%-zPew#UzP@}Bpr z;6Zz4FtJ;fnzbk)m?q zT5V!AwT)VRCRf{Y4}Ywm!NWLSP3l~zoqld#)QbD>{p`s8P3Zn(~wQ#;?h-+ZCK|-3lIAw00i8U0XK(L|WM-{?MnDV@J?{ z`E1+oi;UMD{o=X$NX-ypi6EuB-;G!K;cOji6_tX1Z)EM6fxC@tvgzBn#+*lY=Z%{- zm3u@=5ckeIwFh42A5Pou?ZX2V+~d+&#{q*Ds14#db5i@8qb|l8Dq|5ldRvUxwklg?CRnjNvg*N z2D0yWJm(VvqCEufbz9sp;I%WCdrkqV&F0G0=xeLH!Sb$>Pt)Cd+00g$PxaliyvEG3 zY9_eWVL#tQS04uz&*=IG})0DrF6$e~yvx^Y5_5A3V>vq6K;1jPtTfW=z_ZEajC07ay}%ZRRY9W;1`{#ooZ zD-l1u>zUEiUS4Z*qe@XE^XHUK*2Pm2hIRJqE@C9hvo5hyE_sp7RQo$Hy}9%#*%2`r zh&wIu@?Smon^qngWKY>@g6!2(4T?6Z0)Us$UcL4;@bo6^vxSFM6~R#|YkbNnw?p?q z#}heK0EcfU@J$-|mbO}MMjI-l`vb_!`k@NQ>7jdt9$pWoG0m9 zYQkb^Q_urT*y^E5J>BsPSl44@T2{D>Iqxm!f2=7S+?L}kgC;C^592*7V@Im!BDugK zM;RyE;KHFvYouXqZ)G@zRf*y7wKomc`H`r}g zp^a=h86<&}Wf$exk+=U;xcTRK_3cBy)!AsJZ@yTc512L;gkX7=o-?bkR7C6hln_$0 z${ewYHIGH-cjKjXB}k^$Gq^-IS+F@LAE-Y#A=3IQelnG5LbUZKds|7g3n!drqHSrDvVJA+74!@~J&9d!@KjcAm?{i&u+9!I7KYfnMHtX<-H4@Z1I&lHxSv4Wd>QpXj{e`8Ldi_Pe7yH$-FsXur?H;#Y z*)*9|`e{g0Lx2v^Mv3>oxsd28{*yenHXBN9busUsztHMtCy(l7#4}EA>K2*VCmbk1WKeIATLzopbFneSba6hx}Ze=N|fZ^0}ytA9Q49c1KpU`X^(s;G}}r zu0s6O2bFKTKP9W0iC*K{tuHKGAs9d z^7rdOAtpOIHo^b%K&f*5FfpY|?M_`bEB<4mtb}KSF!4YUVxx;cxAsuId7AEcQn4X*!f#e zQ=3rTRI_4qw{IYBlDu$!0wGG#LJt z&EMeVYdtZp+uf^>wd^(5pvl*7N z5ncRz=^n~fLrsnmO;t1j zJjwO3U4A0WQIFn1v$J>LKA!i3naTJD~wzjtZz zx?AqDx4kzs_8s=H+DMBr@ZRyT9P3+-yb^JWa4GPI(q*|@WlG<2AqFYo;VH5g37)_5 zyDA4RO{{)5L{#pE6woeHI^Fuku}|wRj2w=4BCsSizrst5y~Jq@#oxhfy!K{zKItz_ z>taoNJ1zI(+HMFi1-6+i0p7z!m?%<#=p4aR_Bfh=fcvu&m$kTIoNzZRA$lN%nP^xU z?fdSJ)o8*D(FUmx#&7*!pKyCHUMDac4;EM!&MnW20-$1z@gCvX0i{Xm@N|KNNWFD( zBuxjXhR}0v(>NCf(GEb$1srj40>qK<73t4x8k@%E6uC?iz;MMIfFnQ%X<|;NgAW08 z5^8Y~$k4`ykI_4KC-!!zn1glbp=b@q6=8Gw3NVZ23Z*(lxZ*f44Jn(AN5lepI@ooC zl9uPk%YP2k791waWn>XkHIUxT*9_2SYnbTNN z+sI*xlJ3TP4jiK7?%+PR1kVFr69YS*0Z6y{Rn@u8A)mAEa1g0nITQ@Z?+tJ~E!V!o zU*DxKEHxA3BIdCIcwS9=bdoFnvQ01wS6ZWP0!__A81Neigd_RfT`1mA6)MvMen>!q zW2xi9TPMC8A~PI1>Rr)Bm3_;W{Q9mHyb8ugq^;35ZKuvM*VXjLvEZ!~d`<-_$>qk5 zfa3Obk~f-zz*k)q&Z@?stFEUBiZ>r*n5cWxF~hbv-+za&3w~#scsqvH=!jS6B@2U@ z%+-E`FV2sp*!xL}(`}vU&C92K7Ild!y@F!r%<_+5+YVa31RUq>0b96)JXPNUAXJ_9 zWX&U_+;>IXntdL)KN~wkxIW#EiMF34hs3`kagJ(r)P6Q0a~Yg<84B}D7a65iK=FBX zLWADkMHgdVAn=l!hRNtPFU#%^Id8Kb?P$6yUMZ+)LjjDK7l!@8TYx&E9gJrUi}dEZhqHEk zQ4;Fg`;V=?+e7rjzxUI^8JtAMn(bWk7bDU4zvmg?Sak%uEK60{ z<6^5Jw_VGj#pQ(qUH4bNofhl7VmZv;MqDis-3!&hFlNp6Ciw=lL)Rv+vs^w)7zWPE*~@ZcMcMFmkpZ}B5S-Z!%=2~ z(t`g>>Q=MOX1d6c5oz;YoiOkkUH2Sj8^Pruz!bh>W*4(x9j_17|8GY_3;}Ua6sk@E zq@8V;MnUpKse~b%4Ze6j>x%;Sw0=$j?=*0$MmM1_uv%MiU zAnj120DO!$940_}Thf0dX93=Eegp_&@zOaAAPn*k%{iU%auw-0q$++HLm(aG+{7J{ z`fiucDJpt00jDJ6n~_ia0CwAU+492HyeRfU8vzHR8f!H%P&Yspr6BT41*E@l@4IYI8g$%d@qj!?wb<=-Ou<0 zjz7WM%EI zLO0#}pp#qPEV_am!ZJ%h>_Tx&=Q$7u5Doz$X)1Pf-@9s3y^xE5VM+v7e)`JKMKI?I ztc>FDA-w*|Re;$%7f;LosDDD>+Ba_W6(CO3Y2)qHz|rOHne+^)m3~I>C$GcEvBlDXKe|(sWWBCvu+1ax?aem4xoT!@Dg^_dnzc_+T(Ck)V!nZSOVHXgP<2 z?9Q_U_L&9uo_E{7f7l7&4c{jEj_`PNCCSaaxcL~1fcIS3>Fqx0n?f@^lrxT-JdLlb zvBHY(8hRNuPkEbOE&Lk(dz?A-Ap@Iwd$5<>RN%j{oL@Uhmuc49UpUnM%x<$RYR-^7 zb}o%QVlJ~@)$w0dA-}ZW=T!;|4-Dq@^<{Qa$l{VqL2PV=^mh~~X%XiT8(d+o^#>~B zfx=uZl?QPXfAK0xk)ml$7BMPb9=o}4^ve@XB**O2g5eu;+qr!$jrmphYCr0ID<<{j zGR@itUvX23wSN-Z9v@XqYENk|Ix^NWZ4M)rCjaJnIBLVL^b($YD{I8*frsi%UO6Q_ zvt~bgPOo>zPF8U26+>?^t+?3$Z=Dhr+(t$Bcuny@md{(?@yY34KjOKsa9N+ zjm483y#vHiiK^Np?vk~;(^sYRRd8f*h&#RM+pX$WKHMuz%t8-i#9Ka9N|P!yy8RxXUtcQCqNRBVwuSt3FF-OOgMZ$r2*T#bW!T8Vs%0?tfM z?w4d$=gubUIv0ujd7K*787td{iiNIij29}=gIh)}Dx!vJk-I)?BK0_TK-))SqiC1i zS7Td7x(fy1;2PYksZ3mD4VyMLGwLOZ#wF@djfpnL)!NadBiP`Ek_&poEN(F*opQ&y z)O6H?K@;3dFFn66UnO_Bml=kg{Acjmm^wMfU;C*93F0CKcQe&nb}?Rb9*Z2re($-(U1;FN>hr7FcmpwZ)jn&go^?m+I9+x-9x->FcizC+nXO^Mgf*MTB4k zpD89t;}gFT^G4??I;IuBS4 zSL2g&5Q#+q8#)~1bramwK}fncJu*Q14)q*$PI>xgq!vhd%~cY>mxhWt@{YhQg-5^+ zXBEgeVT1;|98iE#tU4i97CEa|0x0$?U>@!FMDi6U%PeZm^uswAklDjmG%z3@u(cDo z%q156Wd^}U70thurOYoqPjpJf=ldV~35}q`s)75OmAjA{cZP1JyfWX1Qxbq`^61bL zx)mEL1th1?qcTW@1OAa>GEjPGsIr64kBJBYIHgHkWtusZHX4g7vkYzp99dF9)y0)* zs)z!Ebe@Tuw+hAZcVDK=pzFONsQp!$IG)dtk$hQE_;^%#DK9+wb}$`ga`r3W7{5^P zJRWe0Vh*PgQ^rptMNu3b20)-Y3m*;lgB#ZLJF+mB!NYoX44N`P5=yt#M}5pW-D`aA z`5C?_Qsff*?Uve*F@h!6^k8(_-g1(vF;|a4iDfLKBBznd5_yeHY~LF>S7!tK@Zxgq zWJRVO94og~5h0lXADQoqC@t|Hr*)FZ%5bAXSb(0@rJgB&e94fmZA=zgSp1M;xC7q0 zD35TKEK1i>zTJU$6JlkTa=A&3(IUD{&AIKS`n!{D@U`6%)jInJVHb^<8M@qg6okqu zVN>yjN+imk&P#UZOUq}-S#n*k31UG@SBguV%a^A75P0kce5Fo%v-n!if@;n4^DnQu zVvs9U)D7U$=51}LMA+iQ=a4+?hQTHTV=1?1E9bEJo>LrE=}aM+79x;wLV8{7W)~!M zX?owdYOvJzsV*@fWW?or0h3tfhcB6O2@dkPfX>^xDplh?Xd^VBD+rq_HWmy9-YAI* zmBA1qG{2HcStT-t+PFW?vD*4Dx}Iloyv?+AWBtq)7%|Avc7Iv`bL^%zgC0PH!{4m5 zO{(R6!bPL=_4+jUlHA>|_u&E8k07wAn3%uA`#16A7TehGs`YJk@v*+Y<-(sUKY@X# zY-9J0U0e?H#hMSoG5^FirA^7>n|BzF=iS2YPgLK;Hn1nKv$4GfUC}*WpHsS+`1GvE z4qYPF$g6W*@{(_4nOAlro(O8(vr%zU6=6305K$ZpZJkkJ{Z_v=fBXNjbkgba05Jr#Ak-vSu=XcKid*_~e zcJA}OU$5u$@l=rPYUp|=Z#Wq}UQQ_yH?bC~XZgH&Lvp0^dpXJO_~9>R9|RJIuB~n9 zt(>zUoQj~fl$|0-*v#RI(DZ4Uo0`AQZ?jy#(`VfFE=FY`u(D(ehNGMqi9Ocpk@ymF zB!^_VHFH)d6O1z^_liDzbDBK+d6Z2yaph-iPAY0v)4AkC&VsI_^#woS< znf?O-836BfBR^$9t#qW?i&+qQu0!Q8$R`z01$YLEgtMPi^rA0fy>= zc+pprd>VKf-%yq0g16$_=@#+8BXqk!g;1By*7EqY)|J> zsUumB8|kx7+?z!ve4vDTO&29SD0OP!(JNxyshy)BdAfM!FnpWQcjM71emgWTbZ{(x zDhTm&4Rv<|8S~%x=8dA250le&NXzFI_{zE{g*2X?k2D;7(xZ>`xZZ0F3%Qw`&wqo( z134}b=Y3*&5w|8)JfSuFEmNL&nOf7t8ycV}0U_C~{qz3euFmi{8POEIbUOV^sjr}) z#gr{{W7{H8D3WX4Dg6ys`OyDYsJr{Lq`<$#?Q}~5c@!GUaRI7yw#1t6j|nDdz`=C9 z2)caYL=x$Ln(tI8-^~>BD8@qKAHtpC)gr)hxLv!T&7yBUg)PyO?OJ<)H4)H;UFz;r zq8q~BVF%s>FTvOslKI&?7kJ@I3Znoxl|WifNiD_SJ}W*2v@*YAd(Wu(hXWgV zzG}TLHNiYcoI!Yp*4p;@93ZcsjFa#$odUMIjg%@MTp3*k*!6^$!LKeH_yd-L=#;N? z{rEw_Og{leB~I}X%eq+Jo+9fyujq4{Bn@qen#BXv+Y2$jCHc!L@pqyTRCP4B8Wabl z!D`DhuOD#2g^Z_YG1>Y&qOd6Xx?FNupg1tVNHoIZK$E1ADt{DDCuhfL$tzm0>SN6e zp~6Ix%9PLV{C#RIEu=>)cxcYHLH@Y6^Ge$1#eId2oo9K%EHhdHG~cNqlb1kX-EZYp?M@C%P`H z>TIM6)7Bu|>n1>%)x@xBLd(r%6A2rYMt=RVhhE3>WGW&ygM*UB2PL33JKj?axsQPy z_YS;j&5o6QbC0=A(SO)fFwc(;Zlu#qhI4S49e+qoXJXlNdodAy|MiV33Sbvd=*Bua z6`X|OXZ_(`&KvxAEsLM}=qq7u^3E8?C5At{|2gFo*y%H|=~3zB{u5Oyu8#40GC#;U zMxG^|>%`cRl(Dy`Q~uTAt;i(YEuqA<6CeI6JUCRMUwMNqQgiy2Eb}4eE8b+kcVC1V z_;+UJ#920%rRoFR$#wN8m_&|M62)r@4SqxN5lW{TJ1+bT2^*8X2+~j-p!@bA?4Myw zxvgcZvTx*V!jx@LW>q{DX%Am!viVGrOPB9}$m8kHGWvSOtQ>(Xj~kzldj@;)IF&mC zWrF~APjz9ogi6~oVBys;scr@UZ4?`8C@}Gw$1Q`hc?UKgxDhg13e~0562- zA7)5BSFi{lQ<)@_PEqCepz@qnAu9(uX_pMh3vgPMz4akF%>n;W6_);?wfc|QZHbe&cFxyInayZ<(p%#gR_!zWc+a%cAC ztHHZUkw&bkncF0b&3;}(@^crtLti{uT}tr*x6DOzSgJWLZEmuuOv^0J*_9>J@KSvS z%?UeabLn?6{5Whh^0VN4?p|$@d(2GB(tur2~T3Q-2-rBiqaw3}j$|4?Ho3US7U;dhM*!9cv z{r%y&tS>y5+pvyZHI~m_oikZ=VlPoA`#&Zy*sof(}^GS9r7tiO)ek%^&W}bHL4VRom@{rYYx7Otf<1h?aonI6zra}(1otW%;nHQ zom$+z!$1C`SEvZdK|JN}(&L~J#>_u7H)i2F88p#ab%?#RTQxnC)NEcYTx29OueBGikrGi4$ z;(-)ZFu{g75MLmlL*N&d(avFqBU%Hnz|rmc?TI%4Iiq=u6S=!bTD}W zo1*8EY{>NQq@FcBY8$d<(+9*)MyYKg<@<<;71ERU ziydC0VS0IF_;rx5o!|tgfg%d%U^-@^2XJ|*>>|kcOE(4}#~6Av!3zTE_DKzSOup1t z$-lIwujJq@Q%^{4Dg#NG)ky49A@DFwWx{K=sB^^^1grz8RKe7UJo5LHX%y|sFC#7M z?x|cTssrZFa|F?xvVR%EK9s6+0Eh<|q;+}iKU@!f<6Zvcd!u~3@qrR&(BGqdq?Un@ zmtJx7la9i~d*#?eAAtwM@XM(;xZa#Ppz|ssjV|?KocFT#Ra>$!HbRx4JtJvK?aR46 z^q^k>%emn7NjXt$?Y&%zyC>X|7KBhk-vM#k^vAd@lQCzCIO=uF91*b1bne=wy8|k0 zHRo_b3o(wML|qDmv5!Xi`BNqdNqvbWLY$kze3lAz$mV2KC%srK!%y6nZre*)Ow_pq zNn`h7Coyvr@N)dQN9UTNy@YZnHy!T9ZV9y8TZE)RlH}CEomwCb<*)X+s-S_Szc)^9 z(d2ZtOW~@|_v)?njnSX!j8;t3eO_p^U^&)!_V_UbP_|Wbzf_ng!wZvnzv#0A2g2@1 zQJuC+_A}+Ugor()Gf~A>B{o8`&d4sN0@Rg`^yp~x>eq%L*jIicrD%*B--}fcJ0+(v zjbewOWS&%a@&cuPpFo8o@DJUxpEyBih=%qsD%(ZU*azKUd;f>RJt@H<_{y3L<3Mmc zp#5_3#&>p-`@8)SJ3vRji+hX43lfGq<=i=TgykT?H4Lx3jSc2Bz>XNC*XPj}Op|`N zr8q^13I-efI=HU7I)b90er5XABUFm{pvRBz)@O8EQ8L3@C{I>BWUQvbW)#@UQsJ6Y zz-S<#;iA_0!gv$|qU-k=^DC)KoHOc5@T*HlE|xRJLNPRpWWUXKypef>CIhY%RU1t! z86`P%M9I>e<{hPbTQ4E+;6yI2l;hAM)yj5M6~%kh^Y1;+)Izaw5IG>t?Z4#*mrrhTGNtm zr(56hPK#3&_~?gVYS`9|hAHRaD!eq=EuY0^(5zMl}D2 z2(KRZXpf}sJWoGksJkzX?{9c>&(oGOnFlXOSq;)#+NgW-et3>7N#RMw7gm~zdY5GA znQ^?A;qvWd_Tk^*Z{~QNTfeQOxt%N*;SO|fc>2G5e7R7PZ%9?}_?rJpc-uYaisqL1 z;nHG$ZI7E1V{}Gy8)WO&p}wwyHg$d+5w)<#kR3&Rks_kWlaFj%B zz^{^J9ElKu-s-qcYWLG#q=6Og#`gBJR9=t~R^q@^qzzw-jeMg0yIj-8hjJqesmlVM z;7C4f`?@M(>#~hE>yQZGFxY{KHsg>Pi+?5TaTPLZ(S^08Qqi7?Brz+NN>U6zggK6?L))jF2xe zpT82nS4q3^k2*M?{mDcjZz?cVgR^1*NB}VLbYKCnDY|AZlJZ}|8%WcG)v}M`>ENwA zV8Ae*b*o^*q)4Gkl1AtnO}+#j1AGHccZ;vEF!@t0@f!I9=T49^03V=Yy9HQep9w%E z_Zwte~-vZoJsh`}ZSvEkndtKZg>SY7mnV+;UNnGijX>ae*zTZL zOM@?k?9az^^anf=t8ghWsW_Y?p1PekG~wkYb>n-fCrrpwAaX$esw!KWn*wdndDqsU zbf5SM&Ge^kWvi)JdzH5Ym9!|$&-;|QpoT}G(G@U$>acI#_gE2kKMG&tW~4Qq=gOdZ z2|YR?E&|a00TF;fAVL<-1>%aDHlkojY8@wN>UHI3#SM74@Kc@t6}c*gb&VuIg4<6u zeYwvt$g9FkX2Lu?i6v(S{!Z!iFhQCi}18 z?st8+K8~AvGs@ElC;&V=5;2BUS;pWgS<^Wocq87WYJU%Kz1Z5@XnjiD`22uG0Y~+5 z5|&u8#aKCKvQ{iyt1kDZt*UY6+hC+S&Q6xq;Tl*IMJ*nmgB5H$AIf6WH}*)vW%IjF zsYFMRgpB<0Ks51;g`Je^FI#1GQ&yF_F~5--u%IP(GRKXF0Su^(!9-qa3FpZ}PMMgYu{iOh9cA>J0gXdN$M6n^ll3iRX8#nVD5 z7D0d;r?4#6ND97fb+k|03*$1jUSGT64Y%?&-6`82Mh<_f-tN}NUzgV#sv0=6#!@+& z%N!Nx2dsoq9c*(bWu>fih=l%B5T!r(Bk^It+^T6Iz(hObi|keru3`7bgRPv4rTay9 z0szWc-7K}w2Hvq7osFB?Bik@f=@zdGZ&}vy1dE(X={!NpRF72p5$NredtKE5l1zZ1qqIh+{w_4OS(`rPQD z+L7$x-x0J@8Hw+`K*)^nB`u`)_vf=opE{*F@~^-Xkg<^&B&@+F4l17S9=3`-*0#Sc z)Hn<0_6t3o-DkDzqjQtxH<~(GFkzvG9W-V0?j&9b(PQTQVq-V=T7Tkee){Y?dr533 z9Q-;9kctz6Q>sm6{r2Mz4;mqlA8bqXoM_v1Fd6L~^EH!~tBtJMZS@B0m{)PWE^SbN z`1?#Yc(``FeqWAH%Tm97Z_~FnpMSWRjs?Fmu5jr`m&h8wuBIG`oomc{C{fzb68nQc z-p5!i^yKGi3s5b+^01Jo!4s30`B45SxEHN8}s8L`K|D}mM0`(30%P{H%JzR^uHR#XW4;IL}vK7d_sc7&XITCp@=f3h@ z1ceX_hY7!?43+v$9SGI~wTTRtUaR+WT%4rIW12;R_RoF}EykFtNOpb!TE~8!uZRg{ zSD>4ZHK(++&A&lH;8DVRg^#$zfB zwc6diEu{pbNx`+?)|hpM(dGz zId68~pwKj1vi{%uvcq7>TsP^ytASivrYSTY3UmG??E4(59Hd7e(H3&m+tDCP&Ko=9%21MXVlsZFK97VsN zrJl;(8&TBE!t#gDOE7@<*pKvSRa$t+|Y9cbWnn5k6CDpVHJ>sG#2|+bMbSNrR4> zwAr5Nnv*Ri{CZ>2#E^McJQD+VD)(P_NsGu3|rfS>8HzrR{ z_$aj;fNo~eY^kuZ(fr0!?}y9^{`htdEymMas05BkKWTwHVdPvkb2uqyv$XaIl?FFh zc(l~C?PzDVZ+f>hoac12*&UkBtBw@-Y7OxVZZ72RN2cgtBtlI=2Prc;whT$maDU&u zcBn5@^BOhMQOjPnZ1&M)#>f$yW+0zU8wSs(*j>o__hsf-gAsypY+m_1%0j z{YdXH4}$e(`yXMzl=#?$xaO{AND6;v^3}jZOTs%(fakn;`z(<~R}JrEuNQ~S5{R@& zbqa^g;D&aa$EGIQ9L8tu-HfZ)7-2ZGTO?lW9<^F{ATcv5_kRs#<~8hjS|+H>?O}_# z)*E@3tP39CK0E(RWAHnkoqGQ?`OQ4x-{&EpkloXy`qFuG{Aw|F#wkyYe+!QglJ&$z z#U;ID)Bb3Axcaio&wPglX<%MtWx(jVJz6JH!1ny5)dWW}858oJT`nE3D9SVUcEUGsHmS{;VfWAL&(Mh$r%#6M}&6)B!?{E%Ku zS~lrOwDC!jwph9~*Qo<4)B54D7O8AS#}(GF%69&PLr+6z_hIw___h`O4ge4bLO{l4b%cT8qPqifHFpW4mf=Ct%c3D!5&h1hA=b6Ur{ z*7c`;);sUp4ez%dmxau~PbN=KkX5!5w;jJ93%|b1i3mu_ zi9Axjd8!Ax*hv%5k1drALf5a9&g^wg*D6GMIl&m$W6vG46fTTC2D_2ynlNf~yc;rl z%fLvreq|lnWv3svTWG<2-BgZHnupx4m3Qxf2*+83cMP9=j9RYrJ4V#Eu6~@l^&xRM zI~V+>)))D9^dYNz)bhb(nJs?~)UE*X!X@h36j{fX3;W!ouf5G9==R3Lr>p#6 zI>&OE_s?Y)J-749@Yg@fsLRv1D|pz!r_hjU zWt|?sLh8!grYtnHwn$%&IAqa zcClsPIZ-@G9UbNlnE4eZcqzD;yg^xxQ!5&T%M%8O9FkOhk-|63H5#$r10IJ?)mPdLe&uUhfEjbrzsEHfiJ?H?x%Sj#dEeQ;&X&1mAWQ9>!ahD=<&A zvFwEk;C}PLboi4Ij_bEwZ1~JW7>qDH*`Q*+i+~pI>s~0@ zJ5qCg`U||NCY-M%MitOsVD#H%50u_4CsFT9pAN@WG1mux6=*fq+(7%ZKlW^Kkthc5rR^Lo2T3;CnI?soKYE={}|9XIL&QI{FBg$p8w5yCW)y zxH9Vx2tVOoauw6)9ur10`nB~XU~R3IBg+vMBvMS&SC$LJ_eSH=03T(MZt<_XIopOR z%ASg}<-;z|QN9>}Jv*y(IEt>(is~!9%sSHhlK{QsVcfao!>WD~G?Lk;t*Wx3YX3o~ zGOz8g28`|sBYme`uxD8y*3}BjofDloU|}6!F*8|yeHiZ>Lm9SVv2#StFMr->@yp7E z_ss|=3|gHTWEXj3QGqrJ=}0SMW^xaf+B9y{ZknCo6DxsP{E;JVZ#zjQB48r?MVag! zi&p!mwmXw^E%e>L& zcZ9?Uk^-r1y9qtjRF3ol-CZ7!|Kz$^eavsL`pjH%&&<=LZdNMquz_DN%_TBzbgdQ$R-=Hl*x@;J{Icv=?A@4=J1 zBDL}zgu0#&Q1eC!eY8Ql+EcX+*is?ZAh)gX>!}Rtr)$56x-fsgu#O+hH=a(9n9HC{ zUR-+?G+3!Ts4YNwp7hlk#6IHVAE#F9K%7B4swJLRaa}5z@a>f&B-flITJLyu#P)IM zPmTBBg`?w_!2ki8<+0si)Mv_U|I5j5B+pb=K@( zD9`K&ysC$Q`1ks{#K{j2(j#yUp=%fCOViuSc6*?l>xactiTV7DALj?suVj*3%5@(a zZHGuEeYdhqMc*#ty=o5WF5Ba2(^W&Qg?xvT3-q|({7<$`O^pStVj54wn(*zZ)^!h* z>XS>OuLz^KV0NfAL*Hi2I>6KV2ZFs=X9CA@Po)1PaOd0g^TMtlTeG$c`Mh@1(J;J5 zz@pR)tPu`kw;bf(ucR+;f(6oVQXAf4?L2&UsF(ZyE%w$e#(F_-z=NzOE5Bj?5{|^u z#ct|7dd?TSKG}t`jgo|jI|YTxIO$o^%Ill4S;nEH^kf6g#%iqTKJY2r50SB=9WNA& z$SD*+%oUa7ZH;vd?_iF8%8c4o)Lp)@)2Zk$Wp$s2%{>@#+s2LYQYPA_hbB0GGPZLY zIU%bU+O3eyVw7s`@Tz*EgdxtCEkcuRisxs|ECtWq(B5f8PE%Gv=NABdIr2w%nLZ2 z7Ez^GCV#RkOTz@9@FwcUC(b1_?&K5X5m#N0Z(Nn?~+~1O!gAvJoJY|B!`z&qz+Mcs21x7xuVU!;iQnFF8zp-| zB663M#0|JvOGr^@>@`81*kMBVJlua6a!Jsz!H`QrG1_*WgC_aN{Q*ar3I0R_nt{>) zmSbYvnI%EWFF1`i#1a^`Mp$GISnX7N|H{r*zTtWjFY2O+3ZC^liPyhS;sQR|{@Y6{t)^oR{3q*aID1IKMHj{w7eOm+5F(SOB0fh?2uYzt0$4KTLKB;S4S=A~=8o^x1HEDTVFE?E*TL)W5a}i9vcLzUw z5i&bMaO@jXAD9Aq*xE7?6-08wPqLr>S!={^B*0GVKzdV-KO18+$xKawUPS0J zY_{;Sgjs-Ap#cP6-$dmnWy%XIw+*%C2QlGR{wvfh7y14oI939qAkCbPpMuC9M$2KP zQ2+FUsRP1m_+w-P2sYn7aPzQe=Gd3S6K-FIv6jYRxUM+9S_2 zPhNoV6E2Os>gC(*@A_rt&+GG|ON$XHF^3rED9SMbc9Ir_b@HzIj*68$=_98y#ar3tDtTBRJolIe&jM>$tu0*^wGO!yhrz5^oap)Cz?2%HO_LO+#F7ui@xIZBl3#ryLd(QtZp^K58T~utDqewcZH?= zA2OS*9tY=8I~*2|5v*adJve5v-Rx(Qr1gbG6o}n$c=29A20GVGBCzG3rq`&>_dP?eyF%}a-C1P%<^*9UYzlo8m{r3w1M+e6hU{K# z%s%e>R%pc`uV=+9uiyC8Nv0HG#h&s8$)w(8Cmd-I%g!vwx3!=#*0gFhTsN>?Jv57| z7SdGt$ecGgD{EHc!p>j{J7vFKlSHR?v9W?S76d~@Y)#~39qg|H=Md+6{|HxZ+QvPM zed-&^f(jdos_iTmf7%7-UqANfq3u$ws2`KRGJWfpl)u+udtw>Fzn|eSlq3V{g)mv| zWt@u7*5k)l1k!hMf%$=fEYH@wxVA=|MS!J70M2lDOFIWZ2+R^s`S(sg!5?{P3j3vskx0@aRt1+WXm7jt2pIZdGmBp z-NYBl!QlRL_DgUKT>>1jbaqAMxGq-x+l1{XedpvA#D(~+>YX1$RtP6FSFSOrlk}YU z3-`y43@Lloo6orf-CU-$upECVDfdQvH@XGzwVPzA)E`>SLYU17+h98%WF$2?IZqeK zgmKwz-1o5OAmy+6Dj1+r8u9otq59Z{TuOpOT2+3d$OnyT>7cq8 z6-Fgipvj+QxO3r;bRj+U*zP^tUDW!|V?L{zzQz6zWi<|S!IpaTg=@dV*?0%P1_cbK z2v>2kN2skBTVJjz-5%z6I3`&~(%&fW4X)RF?>0-I%LB{;9;N>L5Y9Z6iYoNit$O4K z>|r&)@Yd0X&+;9AuK6qc#LU`Tr~eaZf}}h!87Upf9{6I5(2d^2eDT0j4JGVKkf^ER zdJp9Mqx^-LLfB|g8gjda+3TC2+v+0^RGBfPi7Jx6mnE;J!LcFpQukcjU^P}_@I%H{t z%1JF>Y{_gjZ7vM{k=4*WBS-u1c%e4iBHgB@{xBl~cN#f%5qkH{(O-kqUhEoviOh=W zzE?48Zb5G;HboTBRK|tmg2a5X@~h!dnBhQbos0xr$C8NM z46!mB!R5ETun5mTWi{xfRdpy>ug_b~>hBWn3#BOk0bMYpy`W-jg*b<-v4@ zS!qp)sWpQND(GeO)jwI=t8bS~_Wk-)(KDc$KFr@#2Q>GdKzz_B2s-B~XaI7~W{25P zT}czjsIR$Bo*wKK|v?GwNvdigNyxT59#11!}d>5bm44-34jWYpdyi zRn70O9c88o{?1V*8pS1RWlp#*|EQ0N6mvq+_PxFl$19f0S`@LV)ap>x+v2_3NL&&! zCaMdkA5<=y)4lFnY_9su%ijko`nM2YZHN zHp3NdEaE;SIHN?H*kGY!Sr=_Tq<0Q~KztluW>I-fkp z3td{m!G2|!hda_@Znom#?ye=fq>*o=zK^uvg5Qj$$okZZ-Cxd~E$?j2F!bZCuHvS$ z3zx(L$-doG+soSSP}W+6QQ3AK1H)xUXb|XLS@oiJ(M{h$y&4;1eN}*Un4DV`ZtlO4 zl^Fo1$ZS)}zy(mvtpTklLd};*E13~7cyB0J6JDXnqA0$9?``y7#cBXg*@e;+a4L+z z2yM~|$R{`jIM6CWNm2lOuXR?ymR_0GX$iP`XQiYPn;$2w!`r^`t$+AwTSA^pGJQ1AAM!!KFG%#{XLhe;QT zS1-|dB=qO`&e0wt#FxyO#;Ow}oe#n6jsIo}$BgTlD_vclPg($5;Fx3Su3tc>tE)%Np~zv#z-_ zwYToVE4nO!BiO3H@in(2t!;Uft#YVm#Sgv1p3iIl8Uklh{4iP&9{0Xa8jsrSJBpoK z8~6kVp;?V2$#3rM1fC=Gjf{*KXC4X8_~yuX=Cy#=o2(O)=KnN4EFc*<=RcU27iw-| z46=OmUbwY09lU)NKZehK4Se>l;wDbmY}#uRSxp~V&S*C(Uz|1H7{Hs$D5=j}OTdMj zF`*XF-qmlPBb$nDVz;!BJha1(#P*IsMHQZxqf=4q&#qeiVKOON2awt27rQ~lB?GE= zCBA>*M)YdM-Nr`#ymZT~G&iIzTWfrRO_=k zb3bzyT}=3&e()JhW*-!F&o917ZKLvXE{Z5731aGQwqk8!;z_OOJw2ILE}lFYj6FdB z7v*Xd*ErABZ}zi^4`BY+C=aKx(mfVK)7H?l_2rRFuPP@WX*xG3vE!t$Q7MGiDEO66 zX?Mk9B*OXG#QMsi?2*ScHn=q1NM}l(*}1$lQk=4l?x$Mmjc#AVzlcb|d;yk86P(^d z>enw~-#YV6$M@`{3k>k|nXjVnHV?saC43S8VQi>w9VP*<)@#$Kg<`JCOcnlHbu_k6 zyxx82aXT?``^Po02J~;dX%+H(c4ZB}+1RUcSwq>aZr-x?z2?MTA?Ks2Y}d4_{Aa9J zMl@m3QC;#mJ$4?$4c1+1b}$C7PKDX)uN~niNcKXet1((L zTtDK^qAB~HROJezR}uHqx|C&^7^d}MXo-yDa8sq0R#2Il5xT9+tP@MG7YRCHzlUPB zVvQS{=xkbOUFH`b_kj8gH55T7&tFbb9eh14?2KH|j~Nwntl!(t^D!sV`@XGv4c?xq z(a5*lO5*wb8rroe&}_YhHLTYXoql(8@ZqM!%UjOPm(jgUv?o;7!PkA9Pd3F>lHPY( z`jZsKFLU;9j+Ek)SZYyaaIJ*zJI?VoJR4HNeJ+G zSRt2ilW>Zd8LUyN1@xW8S1Uf^)@pf3`7fWcU9hq}i{`})u;xAq4TnEg>IK%CeIHD;c0hdd%MbTeknXQs$A@vLoNf}v>JPrh;aN-C5ia&j zB0V>;oKnX-vY^5snL^{-N6iRgdy-0;;qM%kRO!IVmCOr8#RuT=EcT=H!Dwq269%{x z;c|MMhqT*ZPho8gj|eZ3%evWq3ZPR^8#82NMgd9JaVE^3Uh$Dh=g zaok0HuZfioCNmgJvXNnO| z&VjXv-sG{3v)jcO%KxW+e|1!v>i37$0~Tls+m}HX#*2JX{Ld4@55v;vxetXwB11Lz z#c6lEf9)l7dUFe5)S8|$cF|TG&prb#$XMs(HM=r2s!~A{xif$lo_wfp#yl#I0hwA{ z*#24wSU#C(YGM+9^_zmb!kB1zT35$}gB6dTe0=>=4rqSkQ z1JHVLJPs&f(lS-9f5{^MzC2gd3)uqVBAyA0^*QRd+6&?wHye<;ntg3tTt$<+Vd0c9 zt|oLI)E9I3F7VxN@pgHV+Z0(#;bY$QCZ@zoe7%i{uZ@q$jg`R(UD#yb-Ggte#U5E_MNU*vKMAL zA1%qIPi7KUKaKm6=m)s}L+zN2@hq2T4c322NzY2`fuT!8$ZswEU>JyxI)+0%Etz}5 zx7Acs zMo~m*pZ&~d6R)-P>TUfJ9lovPac491oGf)j`l7TDRjihgw4bfje|Zn1zAl#%avL~tQy$FzP-!aUagu=bI4@~)Pkjuxj+@x6G5NV^4eq3!O+#g424{nv-*eIMtqdWP;bl2jdoT=fQ^cCg$Vfkmr^xd)pJzj7a|%S$4k=2&)iSE{gQ;NLOR(F%<=}MHPo*e&cs)4Sw1<9`c zV&`wJvmdsC!;o%=Mc%O&WwYS1s2L#|-;SGvSaI#2*f4@;^%;P7h#!Eb0BQhN=*vqA ziz-{e1Z|BwM8sg$M|a~1zY_?-i`vhRBb62YhGi%^e#EoTP%{8h!k=NC?aaBKPl4lg za7tC85z_r)2p#apU99p8pl#WG!VIo08bzaUupi)qhPplA34=!-$cx}5Gq(+yB9(>+ zW7oj^y6T8&0q~>bo2Do0HHli8q@uIO7gA^?GcrPiFC_2I6GEwBAsUV_(s=!fE$`U6 zEPW(^bDh_={Vv^7O&tJ(mm&#KfmXNCEoLt@8&g9Ke4UP>T)RLRwDY?q5vl0M&=_i3 zfZ|i*3+;~?Ra|y8n_@K4H*hSL@}mf2u0pdEiDChD6X9F|Lr^zeK4~_mJI!MRIG;d4 z>>(iYfGep+i8uIj1y}>_jwQtwl81&&aK_X!_TKwqqTElRJY-m(_r7~0=@-|0< zO3~(!EHs>r@M$EOuXz8{y%Z9{!f>`tI}n~7h))GCEN zhxIGJy5&7@IL)Z<$Ok*@FXNMr$<0pOu@?1ULdB-BUM@7GGAZqgJ3?kH%Nzar>Vrah zp~R-qV%t$bV-yvBgL4_3B>XeZB1%d%iz{Z8EwGT6ryLi-avfplHKNBg5V98D$?wOl zzFMiu*RcPxH>5Z-^4>zx zH_9N?!rB88?;8Z4c{!%fuhDWb;IG}a(i~XV(G?wHzOtBL%W!Wo89C?QEsNb6_bwn- z;&qe9e)y}H)2-jlgt4>hG?J_DWc2ZSJs2ZzEZ-=8O=7FkR>#ZOlq$RmnhcPJ?#54E z?Xf7lQ&^JOuu>_XVeBabuUXv6edLlf35lrTzG|`fcX^o3;NJN=4&wmXxNp;8?IGfJ z_G;Jg`frkOhn@iwE^VjmN{rDwz;MB{m7l3%mhWUd`9tfxayg&SR`d73M_RX@yRrSF zJ_8|UD*TBI2mF#j?{tDwqprX6t)=Emb#*Bn)&b>r6AYYE0@f2C# zn8}p$6m+yLAN+S#39n1s3eU4`FMBR>hWO3bRIO^6h&^8rqmETE7v$IP7U!vO{4LaT z_}*W44MMp0_SmU;(%}$v;G|Qs{n`rD=wqH_A5=|oVJ0+q=^|w0!nG6c$1kZlQ-A%! z5;`*I2-=k#S^=wX6+TDRMr03L~Lrcwi;2Ps`iR4(Q55g6g8qs zwRY@HmDsy#kJ_8qJ5T=4YcIHRU2(qmeV_9=fv>=S^@X{2zlSRReJcO$*Mx7{T!4r1 znseTDqs@y;ThwOVS51nLA379>dZU4hGwg%Dk^?rzW5h+gIX1cO;cD{%C&zf3uS&Dy zE$a#@5FrBN+z3;%QbMqEn}x?;@D&D8zxVL2xDA2fb} z-ApZlXE?6Nh*1MqW~SykQ6u(s(OS%V^S4;*d0HN#yZBqbr+415C!_jWRGL}@Y$$eR zb^N)?L>92dZToNSXgL(D4^tH5FcYNou(W<|OJr}J4|xnESeX11KgSPC{_l6fM! z-9J)AX_A~pxl`@3?~wfI+_*OF(romN?U&D?J=mWDGi1T-tUNA~(5s2#%ZVZ9!!vK# z>B|@SpUnJic`b2jHpDPk$*+Z;kKXNuiaSl`>7DF&Ip}VmcgZ-eN-sCRQ0lw6t9;}4 zJYlMMFO+yOWMzjk?)F@kd*KG-$IyCEW1wFBwxuBiY<>QAu(}-Y45nfz{sCatx>xQ) zs6p5mW{(VBk^wz@9uKJSBH4UkPu$6!0{C|Cgm{J(~%0#t0*vrP!a12-w#D?Ds`B2Wu>jEBH zvaSA5WMFHaK|Ax|-)0&ipO`mxjJzbD-rLaqveglBQRDBSTP1F}c2jDHvhxC$Gukpl z4ym1T*%vRtmWQqoZs>9v84DmZ@a4iYkKmyoE8?G0r1otkx-g}aE@+G^4-#7;PXMGISid{agSzzL24f6Z z<@5SvgQpZW2?A2=v~D8lRtiOKtHSuPNv`W*Y}%JVEChG+4#mpIivM2s2!Ojx*9&rn zk4VSZM5BZA8Re3c66I!=5`69rJk%Ug2B3>CR$y9zD|GH;vWsh!;XfLRx`)6#pK6j# z1CJhTjKz4e7T>gUT=|vwPl#n!Ri*NhJ(pE+v-1lyhVFm0^k(Qs>ILR%VprKhh1`3T zk3|qkqbLT0vHNHDdFnYKA$EB4tO@WStXo;<_#dEU#OSS$zjo6*sWNo;x#; zO^uSG-)`&02-sMi7&@(42!0uJyRLp7Zh&W z+Eiw{P~x|B2~oE(C?8)nIHh;x&4pX;6&O-n6j31!^0LSB+yvh2%7fUa(`Mcly-R#$ zga@mQA%o7oC5*LF3*1cid0Y-ivZ3AAYSPaDAFWCT|0C^UknMp^{FCtVgsoRq9lH)( zZr7hxD2W@o-0(j7eLQ6Ui|rmNRCa^UHRKtqayCYmr||iC#%>Vt&-0 zEd4OgxMi{$MdE`d?($xJ@uij5383A`33&hVh?C&59*?PJ{})o0ni)5oZlnFtmq&X= z5?kjrJ=RLzb+>-=`=5$VP1n})&K9h6@tVlE_$8*HZq@FeUW0k<_xSeNuk`-KL73>_ zY*xX)O2(hl1^N4>SMhtUBhS5tOY=Le`3U%AuccF;6uA(Dz=YCgD0x@HZO9e$(7_LB5`EpGUv1g^D%5 zbMwPM7ybtYpzB4J|KYWe|V9O>dw&17NMJw~aP5sr-XczvjUV z@0+YxZv{nSR;cjTpM%qNJ#f3y_SJL%ZKK7PH4|>r9RLL~6)BO3U{}V`K;h2$oKrV~Hwa)l|s1h>^{vx?5B&SOfQRXnNpf29sI7qph(oRdE$I{`b)C8b zels>q=|Zk+$ay$K>QY*wVxMmkYudj>$4u&@I&x+3&=t#dRVZ&y1k{k#z_kbFgAxar zHoNduM2n-s-0#YHD^S9htcrxeiO+T;sdEJ_2@;q4YmxJRK3=A$9kZ)GJXCGOpOa25 z#Fnzle-v8h3lM}?NF0%EM#>y5zHV2$l^H^0#jxc`uSlBaGmH0RktrTqiYX%i|Aj&f zf(e~E-6zCezndxzqAgNaP5{W(F0Vv-@&bYgmAlyG(SBofmq$D>WjoOQ=~VYf_Trd} zT3Ht9*^2=%(o0Y!+tD|rfva>N8}#2+)*VfjPi}d>j_)SvbQi~VRD``HHY^`Tco*IL zA77&=U#Ez;%@AnW2(i3)IYVammhMz1J@I<-bV?i7Tilmdrt zFjk9@UBS!5 zZZAs3%CEAZR~M4vGyz$WCV*x%GZpk%rzpx7EH7)I`^43K zCA62}K#*u|t0Bdz8~G2RQdluAO)9K+mL=vB($>Q65b4exUZ`BOkd~jW31joJc6iTI9Q<>zP)bOk?UeA9MWVt8Lhd4CI zPim0-$P`-2a4vcDeg}2^&_2~_BS$}ncF`+#=e}3JuNJtZq~vMV?9_5&N5nW^1ZV?MRPvL0%#~G0kPpIIrE*JY>s`J|Kmh*)s zYF4jDh6XmSkIhmTF3l}n#?#-Gc)3z{%QqI4SEpdC`e0q^*}Ok5o^DVFRMzXu3J9Ia z8npTefdtOe7~`}zy;nZ^(&FmGH{>!%q(&HJv8OsF)wMx68P{sH57c7=;0L-^V0 zBWlfA_MVu!>EV}3cQCRhUf=TG;GO#7JUvvohWhEpBdN!q2ql!=TKKe^`XYGhHjjD~ z|L}P26xV^8Z3LI;GZd4IGfo0U8CCcDyQV}omIsD6mOoi~p@W5J-I7b3!b|pP1l>65 zti!W$<(9tg;IfS5gc_qG-|~*E07OXuV%XdprVbZrtpV*U1nscG+TYKU7w_~9x&{>l zCcE6(&?z3b*m>RMyJV4Kz68hAbI}RzfAN`^SIxNKY<-krFI#L}CPEE2+vk0Cj>gcy zKbXK{xN#X=Nl@$TY-op=(agLN+nUE1yPg5KqF$*nGFGHurSxblW zJ?TAE&@LA1zc=C!@7TPUOu=FgqB3;9P~#+g4Vz^`T@>WsswsfI{1v49p9i-g7V8^y z3hRqtg)+B2Ja$vcdv*tDP*3woo8qxMd|L7IJDf{kV#RFlMt2I(uiN5xE4||bTqr&* z6XE$Qos;427(4d@uRKpUt0Kx1JX_onq6poFgF{|byVdwryG+PHT|d8`{?_^SaXZaB zGTDFK3ZDQ=4`lQO*^ynLb38=IZ%D+_6MT=(0}8^=Kr>*CO+us<013EAl10kevb3|k zNx;9`$B4BkN;C~Y=YYTM$dhd?5ctULYJWg=GH;%_Z%i+@w7819MZ@ zQuzNBIU-CaKUAgMWZVQm@FhJ(VcSE%YRg|=<7ELUfZxbKBwa3}zq>F|E@do<8e#i{ zY9-e)QY79vCcSC`uuXV0h6vpv1e861klRYrXkGoM2@*q+Z`pOxfryY4oh0q!X_vsV zFtNx|HH{JS`EA1Vgb}T)e9fy>LX2YX2ED7OIvH5-!=7pd^w*sK*}a$vIl8ktr?XATo{O?w;?M)PL}}g^=VqQH_S}YSfP6 zp)DeJ?Gc+Sj~~00tkX(If_yh4!8O0kVhLYl*?nN&>=wK$d5e83Ehml$XPB+vWS>eq zG0=2*G_=cO2eFn@wvVO<+q$gxcPC}ob&4JTM=Iw)g*QB}Mq}`Ye5X%8i=ykyXxJII>P!sQ-f$^#4LM{5JMMcW zp+|Vy2>(<@VL^+*3?g2_DhVN-Rau#)dfNsZs(rm*IVd1k8T_n$N@rXy(@FCR_R1p5 zgEFU&_!4b{Unum79hq{=UzV?2<VDlMe;`w|4~NzJ1M$_v9BK&Sf3f2q|bq2V`?u zS_-XcbV{mP#Tc!a#(oePNp+TKD!itf6fN$VpW?B#B3-)&*Mx(%rxqpolawQ^L#ri@ zoqqh0hF-6dw)Q|1Yi=4E{?Jq%6wVm}ek6eX6S9pWc5PcFiVB z!zB!jx!e;dbKRG;N@lUN(z%iHK<&)Tr98S+g9WRyU*fyzk6VllTTU9Pd1-}eeus8Z z$)`9+^?ybh5% zkH8zS_)TZo#ZTwa2TQXO+2ziO_3|>w+jCdDt+;>O)9Jk*b^EAaX_wd*&r}Qf-K3`M zQ>nWRIP#nqaFsVq_@3UY?CWdFVciCw2Y?vg?+opbK4>s+{Z3Q74-c>Cx1UzM zyyzi4@?7bRSixv7MoW@2V7{HC(IvbonaWet?XY+7v}uhg`(`nhYkK*_+@S1ko$`{H`*BX zzCCxmzz`B`eyAYaBs2v!_B`b!%pZ(;48)E4t7}Q+x`DjMQwe4n;0vlDBuroxWNx$&1o~Ad5Z(?WCVU zYNbAeEVG&hC+dutI9|ZZElwaFQ%snyavvQdJMti#`jm#tXIs94^TIXwN@a{|W$LdV z#6HkE2Yiv@9R@-A*fM!A*sjm1{islcd#x}*hACogb^i8e;J8DL%_#oXa_i8jH%p|! zIs+iLOEEhNW)-R%`8Xq`8z$hO8MUvL*xkqaT%|yJ9{31n+j6GMdk?k0T_p~os0Bbn)mvbI;AvdK zp)(lsQM;~(oA>kCCIj}vQ(8_N&vcHbBcw|xn@;)b<43K(T3z}#4BO5!zk#boq>_Am zddv(d(8RgP!?T*wwHWUGq%kd?OFhbOenj6cxa<=3V&#+UYkMA0F&^rz25+aenbY)g z+z6cxPsW*8^~RkY)7N^m%6PVB6~vyfR5q@vywc|;Pi7F^x94ttjBs1I4RzcI(#8a)#zrC>Y(1h zW*A=$Q!QqrQ8}fzed9UWn);+i`pf|2OrYOSe>u0!96$$Xsw!x09g|^svfWaB&xeG> zl2~=uJM_zV{O2o7VdRU3M=g{iH7uj3?S8s4{+rUN*F6lOAmQwUIpy^?s%%(+$!8r2 zR;<%Dx^Jt*0-an0a-a?HJqiAEVa!sa@ZFdG&t1>>?-ISx7r7Fb<~C~oq0!D?@d72L z_L=F)*{L0CK2DF${U~gBC~bW0;Uw#AgNUbUiAcj%s&E$=W|DikuSL^+l-&^Zz_P)x zmGL0jnK`7MpI&6vXpX;Wr$Maxw*Y^^8ve>*a`)2lTri+5#N&4t_x za}E$T8|?m3rxo68{%k7g_v;JyCI`=@bOW`Wj<-#&E!^HAY+st>n>Ma(`40M5`*gwC zz1bO{eKM8uNNUwTr@i)Ce1zio>VcP$O+^oqb`b8X-~iM4?M7OH4JCCOzC&?le}wS& zIg`3=;oC{;f4Kd>DYS4!SeN7QtXs#>lcxUGW?=>!>@V}Pvh&yH!|spqZO}Evg3HNx zrO`gmqQxuC6Zw5>E~grH?CrqKDEbNR^M!Hi=}Gfe#>RkU4nToPU)|M^eAVyPkoU~KD5pq!{WL;8ilJ*>W+020-TY{JhU zPwje&7;>vqIoo9f>tEwTcz}|YnE|@vb|2eX>`PCg0SE!eDv=6lW&hDcFg~bACdnJ% zdaR8U9U=X(FCof`+>;n#VRCkX1io_tQnLEJq_=Aw8t16skOg)Eo)WGBhT6S48Qu{w zB~+-8jL3pUpNWTjNp1j?l!7XYNVM5`QxP)xL`nLIlu>aH_ zPHmIEa%{fR3+D&qCDFx&50^n{HHG3+&lQUJI?ucYxNTfu@2OUJL+!gX&0W5GD{|c-M7u!^?f08m8Z@VIbWbD{U&K3ci0Lza{;+B-I#7U%#G@IX!D|C?o zpkSKh<+$=A^#(O|HDusX%4LCxFDCZKnnZAd@D%-vC@t!Zn|ZbYdTf{9>U*^>-18UU zdD(2PUDx6B9?OecA2QC7g&SylkhCnsZqf;YQhs&%Joji*tq?qU`)q%uQ=HwosDQ9 zeic0o;;0d9>(yTFzsM#8t&?gwbyNREI^7;wbXG>toM=LiQUZ}d?KSAMR*v!dExb>; zAWmR6BHYuOb_4mB7dh_L{zR#|uiLlit67JvQq9DaA++r@)fkmtM{iJ|mIuS2zd2a0 zcLT$X0IEbBeGKB0Qk!ewi?ug|zHo>*L}rip}Ds)y}H# zWFCI3k>~j6QM#C;GQ2OKaP#kK;-N!Oh}eY4VENk2o6UNulGi?{mAmE?B4d|5o*o%H zln_eqI?FlpMk&c>CT%Ae-rSmZ8@=u8OZ0qDs^=>^-!6$19b6uSXVee%nstV%y2V5n z4G23#HN{~+&iRh=G))%w`u6T$Had(+)49*e@FbgLfDZmTRD!))j*?i@det+Y_N|WT zes>&GqEoZ^i=Q2$O0K6GlCA^SOgje=MaJ&j`&WvIF)z;lw1^+So82~D5E`_fo@u1_ z?>95+iWae97X0h})L>wOr}&6<<=yF|#<}i>BIo`?v-xJTxh2UYb^Gi|TN`iH%yh3| z?a>hFPrhrNMe@80`8U1T(VJFJRatJgptYiC^OolLk|v?#atA|vQZjfI?|Z&|ox;CX z%T+9`c6ThT8G1XmTcwb8wBoxByX4UNK;p?Jz}{kXGky_n>LvN);I^T2?T50j=0 zcd7$^g1aoLQ?A;vDUWtv)<*x$oGA&sp0)FZb0VMz+ZVs5W-eyKvDl7$EOs?K3A;0+ zj7{@|t!&(0cb-R_#PDk*L?290CWtsr{xQcCL1!=iz_(CZ#`wGcMS+^?eGC~`jqYe; zzTe7T-&nzKBE-rLHohV1&O5OY`g4C?H?)2+o09D3cnTP(78fji4hSaX1pWyP=GMZq zCxbwu_w&$srj!=S>UBQvJ(NQW zCZLhvB}Gvd?YBzY1OclO?|x;`Xd>xCc!0>0nc6_&=VbQh|4EGL$^$}(2rK)exx?{y zAhB(e7XSk}2R|ZmMOId13_F`aG5Z#afMZQg>!uYenCA;%#pV44K%u})9-rSPpm|d= zq)EbKv2_p9O}do?eZ>7IR1V_7#N)v}l@O_#15gc9?g0t5U6jLSDyd}hIoc+^pV1Hx z88I$(yUqAC)#mj%Bu6+5JMsoM7o_%ZxrkBL0kiB>)Ygnl|Vi%24!Wy;4=R$n8 z7CpgzZ5P1AB#{a#1SFC`U`rnnj7+GAX$%%GeO)=hkbT5lJ~Q?mU5O9W>U9<#K;+L< z+(2)prk?%h*?nH~&+3?=F8nUh_(VSeW56HjQQUSys#~B5ex#Hx5;FEkQQn~BM~toN zAAsp4-SwCE>2%J)Y}y&73nMk@e`?VeE>CA9NIN6h+7EUm%1#i$cJC>h^I}9Y>+pvm zZtC2}5r@hv|B>Vu-PoeA+%s!rwS>Y|=wP10KG~x$;5D*_59tX3y$^yviTo%O$>$2H zXk&9|^%AL|e-*>~>HStL`>HtBps#=sI^kIh?Y$?6pi zI}w872?bvjeobyhi(o|p)IwFCZFei|rIB_5yy7@6-hOF0ZXt@M#qeeXw>)8$l z6`2S^jEPF?)j%T=$41tM6n_~Q;UVLh3&x=BFucd>C(di{kJfp;il}yuS@~5sQDxjuh0HZguGIA7%C&6sh%tod~Nhs+V?$L1yEHh+GfcbBp!pCalM#phezV?|FI+bH$& zw4rW5P+S_5={2dDV1@h9YeHXU)?nq!rzrk&ptBX6p_^cJTG^8wfLJvx9p>e1NX?j{ zU7i1-Ya=j5X(7E-oYZu+`?|7>1HDb@X?9Uw=i9KEtzE8rb3T6|vSv4zRK6*m)nvSq&|s#-9SJ<}%2LPf<* zAc{%gk!Ey!-5a{ns$pCWbatxFw>aHn^Km4{J0JOrEZlhK`2Oj z8s6AnEM06>gkk$%sjh7N*6jQpa^2-RAJiEn=NtP|la1l`Vt_eY#bm3))yz}NPag-5 z`g8(tKX|s!gvp@CN{Kk%_E#_FLp^o3aRo9#t92{Oo^6o9o9^{*GrbGkZ? zEO7CU#&M?R8G%DR2i^4xb?R+H2ZPHlGg2Wn|KrIhnj$#>21o^JA`c*i{wfJIVPec< zKq%m6*z?dI*A&l5VnO$_NU2F%xum9!u2|Z#%;1F(-?E!NS=|D*zb4HMLil-xR$70h66`Bd{a0 z3V!mQ_p9Y9?J__{6A{cy^SV|GC|JL%nO+fd;M4KBhpv+)6WA~oEx1v%5`1OH!>e4G zc6()F2Ca?C=K|Qk>rf9i*?~)Jr<-$gE|;+ZJ5*S`Ma-8TiequNRWfoFb#BlPA&0!W&yefFF&iJqfS)N(!g8#E{9PIA5^YDJ7Zu z{H9zN{+`IYF7)}t!RDl2#3fGChR#U9Kqf5#{efPV<8h*U;r?YqeP|bBN96pjv}p(z&s0ok z><4gSycYl7kqFiOH<_VZDmMg%T@p|l((RF^hLNN!twg8zM|P8!C&DPuYAJ?{0~(@D$;zx7}TQt${}Mx=VQ z2VUwee3Q7mM;4o}c4Qt0+rIrG^R(Q&EqkxJY)%|~YO z5*#>*HMu@vJPZIzxB0Rx5*E@kZ>syBakWud>D5emc_=IzOBi|Y`IN%L*^|D3>UU0N z4+9|0ToVg-XLXE6DRUcF9X2;D_>I$La96<5d(Y1dm(e0zE|-p~;Z9Cs?t9!mmroa| zW6HiQ>*-oJ+$_h4Ff2zYS&TaA>*@V%F)a9VCcok?|MG&zORdcJL6W02xdIYnuu5v_ zo(M^ahDtp+9~ zG@@62m%oy5Cyv~0aCz+}f>(b1_*R`AGmSgJ4TlZsHioL74ua2*>1piM=C^azrnpF` zp+Z%Q;@j0hJ3Ryze@|DB^R9c-Fh4c*V}aR9ER691+zbZSmIJ7x?s}giPIAEryvnpf zrUvn(b91ScE_1PKoZa*QjxjA32h(M(=i)oLwu;?5p8iqV%JuQ&!k=R6u9pC~f!HB2 z3w?SWszPm5NxyAH_{a|)0x}#XkyHF^GgMT>Te`v9yaR$wapMv+pZR+UKI$x2V z7P0z;mCP!XGi2t2I||%zwegODP7Qwlj+e*d6UwQIqUEoQy9gyEJe2%SUc3kz;qqLv zxpsNm7Th)%K3}X?TWd7GBd~YQGSF!Ds&(r$LL5ApL#M`2&mh;eU(E-VK z>0P}s77CzU@r=`h-Qza9-q^M-ykm_M_SP-xYbq+bk8b_pLb~A_M6%1i#HG`xW!T`@ z({eB1e*{{|!WCd~Bj{vzK&&`!~Q4tqfMz*dt*mL%3rda1QF zmgbNGDJB9@>LBoNpubN*Xzs8;#(hTYKh9W5lJNt2tWkRrFPd*AMZzMB(obpvaI7c~ zvFLE~ZP75l+VAXR^3HV(EZ|pT&kJ`QVD@}Zp>O}?;D$I7Wm?B9G1lp~nh~2>^d_lf8#^xDh7+ibe{u7G5OZD-v~ouL|k_?pMrh?V&bcmmbIF+o*^@2l=VldWJnld zfS&IZ=%wR<(wDTEJnNkauwa_{h@0oor!&LfeQXDU?`OPPz@$fpw7T20%ZEDM^*psx zfA2cRb)6aE-N}*&PSPTy!S*vI3HkgCfmh~fvxDP^Xa(1~K2PZ=(4I+XG*)mAC?uU9 z#d!A1#`El!tctz%{AVTguuY4z)phsgkL<4f&HAsQo0qYXP61)=>8$e1D6{K851^BJ zL{th)Boy?ShQjM7Ha`m_637%LJb(&a1&A$Id45mL&?1%1P>K`^c_TuzZ$m1;h;^3J zcueiv)q>th7^J=YV%mX~rP3b>W9#^MBy@z*kIPVu?QMXVp=#ViPtr_>f!!fe!l9)h z-ph`=y8J#R>{6nXmqrLLFv3F!`yANz+Ke~;#@^~g%h4-IwqJc)HVswb{)CJ%@c4<2 zy%3JThrnp}X^@wK_@$e_F4w9feB zFGWn`(-ZI?<;}DqQpT~`Zl9C!=on=w56)$|otZGuGr_$zr$y_CM6TIl9bcWDgC{LL zv%!PDXfR6HY@om83;oCCNVjc4t=E?(bCIQ9-h$Fflk}IPH6EJL&Pa3=jnwpLB~POt zWz#|A-gv;zDYKc62VRC(R!>h)EfhF5zL(DJy!;mmv4JbuL*JIyU)a1r+a*7Zi6-3P z+AC`1ps(SKk1n{@=<3_;UW(Sh&lEe9)Np?LG2JOwF0H2bh0W4u93GRO;k~YrXAMy= z-lqg*9l=~*MigzZjel$I60G# zj_u%gEn-Tz2JhjlvW({R4}49;F7AZIHpARLnE08L zt5nA0^Es6P@Ti@B8qc_t3Dzge@tIHT6zzojEgT#iGJ6oq^Ru{@19+v`p)9Gew5YqC zyLdfT7FF=H;xbx`{oc~6-^-JlwQnaH4_VPBv(YkZJrc|5s?OiK1&+VD7gFIpVY*Q> zIg{NTy&@QV1hea%fX(R!Zuc%L5op86Q&f&Opc!-_g*l_a?4>`No)#HcFr@NZKeRSb zkS@}Z%K$Z^1cg>+3j zpZ(8FhL^oR_OKZ;S4+PvW_=Oa6>HIra!NmwSEakU@!$ZPE`kao+UtKVzpsvGlltQ}nGm5rKv^@;^X7-JU5g$j*=xV2qToWqiI9q2vK< zzrRT!&I3jEU8ym#5CZ7UDSFh$xL9`y=Uy_aAxi-Owe*H5g88uFD?$eRv+)yoV%VWF zh*uHNe$SRe`zr_Spd(U(mbfA=KbPO0JeT?2s=OC@57|Yb&ea$RzUAzzkU^j&y&dtx z#025JLjDjCc9STB@I<+GRdXzc=iZlQzvR;jr z3sbi@PgA}52K7c)l8&xB`34p+Zfr#e(-32#mu#WOfN(@@HZ7nlbK3Ade+^M|#sLPR)brm4 zx($A!?np+`D9y03J-+i3`9G7&25G$fqW>pwQtVCaAdTNiC+hN}r|h~Fq^zN!;ZWB5 zgng?(#Fg-phC51>V0lY=LK2F8cB0*8N)Sbb=H}~4^=G8p9Z=T;hXVk(6KyqRW2wle zp1iLU%_6BS7o*_RkQr%`Mi>kn@mR{{N(GH{?EGkR$Df+M1oZ{9x5lH*J!M z32U}zJo5}e&m(ZR(zU54}X`<`V1*`Rmo77cOj3;o|37c-s!%1hU{q|fVbw4GCuc7LgZNwI(b&)>@xukn3Zs};=sReMKMh$%<$Al_M* zSVFH!HNAh5=?z!JuO<=rk0n&rOK=iDM~yve0%q9nr9GNv;Td|QSQV;e!si4nO160) zFqrW_dD5AG+mJ)d9e*<57xVRUx6U{8MOHFS%PO%=>h<~}`}?DBRV(xTS?&`yddkld zTE6g>idrQi9OsNb#yZEAgj8_v-##Y{pFd(q!u9OpPdkArkJj;gCO$kHpzX=g`B2o& zgOE!27iiqH@u&SdDElX^Z-Z*cMe?8nOB&bnqR7d;5Dy=PyI4Gb%;ZGI34fJ8JHek~ zLSy&5EwjXSlR9>8@dg4u2K`HCJWDx&AfWEe6$-XB(AG7^jEgsMyptDZ!HuVjUHoEN z+#narKN=sc8z;>}Y*697Yj=}wzJE*|+t%K?4a_vlCTCU-JKMcEFNQ(Vs5DXW2XS*w zg7_p(np$1*P~1LVnz9q*m9F5{3@vg(F>d@&CjRP74$@tO%PV0_TZaGa%WX26PxGwJ z&24(sE~8R2)ovMET-WiUPDV7E`?z)g{DXG?d^1%2dUd>5!CTK*R!?Z`0k*ZiVsgSW zWO!HFx_loUYTj1gWab;}Y}zOo*iXe5b<@E*UPWNS$eL6T z(-$XD5DVQ4b6k4nT58(gQp?VT>p#=|=b!OJoG^Dexwmpw46vYi`l^Uf=^;#TK;+9q)Y@ZQDupTz-{Y z1&5|-kK!a4c)JQ)TRLi|4e$|C+FZ%R$>;|FCR)BybJbk{Xirm|s|z{M!-Pzmpny04 zp1h+Jus0zPUBua3zIdfhmrbKf`hy+?rE1_5nWSyb<(o`Onyhu0!^^93`C7=wH?wbf zREl8_{U^^Z&lrjSC3$6HAacV+Op)*yKTUYNGvP=%C(KTy^}Awu z!x;Rn&h>hFBwgn>6H+@f1@8TlW>u*}W^fl{SH6q`tCVK&p**ZAmGDCBnp=OB?6#uq zc9~j%J<&?@fAbDW*vWgAu?E0n^Ix;r7i8krU z=j@&I|8>RH7>L+?){je7a*DCudKs_c|5o){fC@-D0du_VDermOx+ZE*;rs?2_FN`M@ozJkSt?P!#S}vt421{uO*XBOyjHAp&E~mpx|!5wI|`( zS-%S}}IE$Hw4i7&T#4wG=^ot$`n1XWB)Pw+{Jr6xTU*SL?s4 z4onyEbZ%Mwno${|Oh~U(aOJ-;cA=)yVG(6J(w}gM}c1M86Gcfj&d=W zUbyOu&oZ)FeF@f^lmC1?F~;2;&CZ*(V}X^$zoU)}p4Ri>TgH(+`r*~i=+^O;n4kx; z!wqHLc0ImBk{+5d&f%mVR+-UFRgE(_dF9J@eIX(XPr#W7Z0p#kZQiyjJt_}gPlXAA zv*EGfttRf_hBn_tzB=<$ODmDy&*AfYWBZ3S4yMzJZ1j$2BGjJrf-fB_&G_7hd1veF z)c9)D#l?%yll)Z|cl}giQb)_|F8}_|J@@v}?so_8$EjYY@Sjf;R0~UE3A?S>g`D?A zZpy7==B{MGel{m>Bdd$InH!h|@e|c#|Nl=^a|Mv?)Z!-o zC|qUc7bP*%4NI4E#I%LA-;OmscF94jf%a3GIa?4kp{M-ry4rcUOM1eMn5<{3p}Y9!#uy`*yVW zxI^aa{Etoe%_Dq3=Yg1eAKnW#hO*o5RH7$q{y&b+GOX$UZNnRl2qUB)5J01=1n!RP|GupZK zjRUQI{Ecnsa^ufq#bR6m!oy{0N<0)CpU7MVh{`&vy0Z>ie+hR~Q?x`xYydH0qjC7EZ z1!$uzap!)bZ*E?ArXsc|0ab$D|1MCYo=8BGmG6WFJ&J1oW82?4#2ygVHhj$z_VY@L zMf>Ur&%?gomn#45Hf|gTS3|-LMF|vTMel#SH8UNHsVkJel;LZ3IEjBVsYV97AwrJe z16=@!84@+HRk}YpmgE@x6sxa16k~)`vJfvLucb6C=lyGU1UlBbTl^R(i#hLT3Y3A9 z9GF?3--y0RMz+T*e3TE-8|OoY(`RYb`UN?2d=4KgStKw80}(&)l*D)NlWx1-}i)y-RO-+se~2^{(nDRH;sq5-IQc zmvgNTE-X0l&=<>?!?O3x&(p?ESU8-_aX1 zDVL@@yX1i?bSq0~K8Bhs+HsljIb^a;knoTJa7+b~y;R{0TJRu`%{Pp$_1yh(y%w z6dw%zBi&-6mH06uwdRqAlf6JLu}7vb?`hQhW{_E>bps}PZY|jewQRhDz*;9yW$IuLPAaQ) zyL?~zTi>xFRv28^)@B@|Y)@%w&^4;hS-fj(YiqCMP$xDZiKnS;HDbWw=@>p^7<~cy zCCmCYbG)kpYTAtaJ4|{;`8~PNd7VI)1_q?E@oM>Y5YRgD)Q@AfWH(o zLP*fWtjlKB($TJXdy*vzqH{;{QB7hxx` zu;Bz7bg`UtKF?*wo)~)0U0Q$|U-Pcf!3i>&uHLM9Rg&JoOXf zm2DEc4rJ|dW$){+D>17f;ftqaNJ$R|L?Y_FkiEy_mUIW;KjQhf!M_VdW<4Q7)U)n(C6`$-%!`cuan=V z+u*3Im4fqnSsv{Y2lM1TtW$kP)(6)=J%X2XYg(=>IN?&M^;$m&1%$LoW`xzo`Evl5 zMSKap!5>7DPI7_3AA;V%o?BuvrY%i(r_tKQ+V2o4orS;y;R;)PJx^REd?>WOAmg7B zpem?;Wqq2iJ;&9kV9G6(+bHalswiHU>a1I3c1w!OP$Q!+KZ{sl;L`ISAO859oAG?x z&3UVOciOUfyiw@9uqGKasXaCtLa1^mcj9!nNGymDF28aF8hJfkCok94DGTvEd{b>6 z@ww{P*>3QHa}T&B62YQN)bC*@sQ28i5EDZvEo!0>W>{G6Ao=?AT|D3mG8rR8?gF)k zeR$saxuyNQ3I1pb^Uoj&*sWfs8l3;tZi23kAZ{NDAh>99l~@l2loA{=`tS>YP>%N5 z>1xe`!!$zNHJi-{;>G)8J3tNB#&bPdJs_=G5~-!z^mH}*q*8?5)1j;%V7UHo71N6Z z&XLNnFGwDc|52bgl42V`_d()MIiAuEP$tMjI-E3^T_O9V zRuprjWYi!|D&SK(lH!?qO$D>c9%Yg>es&y;F`$VOCXSkIwT~&pw!Da}Y^iyb3{P zAbneY3MP$eT7dG_sa~T++ykjdB{-BN+Pjzz)wg(%pzRh1OHc!8_}WKW>_1HF<2#2V zxmEN4ZUGU1r}<<)`lxDE*&b|qoEEVbf%<7+cfqv&`X;8=|3t%_pNntnjI}w3579O@ z^)ChYx@f~L>Iw`+-X%WJlg}k3`-JE*fl^7;xfbo)QhEomsY&o4Cpy@UY%>V&m!WAd zBZAz?a=@P%*wsxs!qmBW;9EwJXFtpq$J65xL>U>xPcy$?PImq)H^YtQC)OTwP$^k5 zRja2aNxG_JeZHOxFO@DOyL0cm}3#n za%|tm{`{5-dMo&zx2ocAKFGeC{C-QI|1y>Qt;H$Hppi)C=B+N&x<(Owx#0>AM-O|c z!0DdTQW9ssCN^iqVg|v-w-%q#joNCHS(|J)OHdSsc5M>}l+Era4?!+d;yBy;`aEV# zmob)=QP)Ep(;QyE`Br(JE}Pb>_QjekyYTCiB(HzgJ<<$l>h{3loF>P-sVwEHOu?>Q z8IG{thYq9(UF~n@ zUor0G!+Iw=Ds@fkcRKYVL=_bLFT<$!m!#sT9{40kPWDJe%`V?XEW9Qy-S`K#f|g~Q z!o?u)lFy!mDVgVnS5h2<*)&F(3>>yvy*wG z_M^tpvfum8liL}a&6t#6yVLtWEcND>oxGBZCJGbww~yfR;eR8_>PcQ9Spw+Q;!& z&7e`b4-HG^T=qsPX#D;Lb3VC{|~aVmX-X68(JR{n*~4o z$}-?|d8-q??q@P$ILr7qf2=jLNJhQa78+dCj$&(+Z&3J2R}U9UK6{a>ywPd=V7tH6 ze(bt6mR-Cp7Jy&V3`x%~o3g+yMQ_V7U8M5N?++J^hJ0(YV<>lBsMZ%vopFgQ< zn2XxMe>LnbTmKC&PN=oFQESo$U!tzZNd7(3^tlzsqm`5}xSv#R*@X?VTq%iw|2{pQ zY(S(}DhbocXIgIQ56aUy)H`vW{~T}s&uNz_7jk%Qr5pm>@ACGs6STCsFPydWFVH<3 z6XJ%R?`>x0tM8@Xh6|)~OG>A6O7U`YA^5Kp&Xoc*J)&yL7H#4GqW@+aoYXg-DGzLz zN7$yE0AG;it6PSZ23G#q7Kd4%;=G-b2XAQ4-}JDZAgdb1-`uPPQl-)R-zI229?TsGFExtR^BuGPHTYyFP>JybSh;7xwcbz$HojHt1A;G(h zwZ~C@C9NYJR3b!S2EQCu&|FAUfTW+Yt9<51f+k4fddb`97*_Q;NE765=n2ckdLReXmtfpr!4^NiA<2@Ni*PP2t&FM`Eszj)Hfcgb z0pwAqHpLUamO!^g_L4$N>WvjB^NZtzXiO#*2~yT|aH2Boe(4{|XJE4X0#?|5DwCX> zAAs(b9`0{n2bUE|ixHP4+&r_g)cZyX-2@wz(+t*KUPAfgN&epn5*KTK!$~%#Y0z~< zglI&FSq#M%sKNpzKb$LXAKc*F<4p!%U}IFx2yq^!yFU3XMf_JzG}7b1eK(UQ2`y1( z)JT0hZptO;nN@Vzw+Ia}&XQdH#`K5U)~2rtXRV8VoXSpfEs4lU-{*fm)U;HNXOjEV zd=zu^<)%sz?8#YJoqItfk&3O9BHS=YJm1ED#j*hTE>nsFyf&=AiwmOqDNM#X^eKQx zcZo9p`%u1Zn_x8L^_S?^;#Ysfv~GHWs7NjydLgC4KYKWASJ|)<3|Xzl>!U7iPxgh) zm2S153M>A}tR#1E%TXrhLez6GXatU~f$Y{d8{%%$SAFaezTL}(JXrIMynv%a;oW#> z#T~k}81dx#@sS}Zj*dUV{Uf6poPVIL%*q;P!6yD0 z!S~71F8FqNR?iZWbO-`5Yv|_+uG9erL3@5~nMPM>_@JoZ|GK)mKA>Qj<$H2Ly5Stj z=~D|%eLVJ#0UL49-+$9LIz3vAdldYnQHLrmYuz>UZbZCMQ@K<|BFYrHBu&inoiA*$ zR3PRT52P8jCvybMB=fQy@8Y|}nHUm2MQygb$g$OYd#ncA>0^PFbN-nxeD$?{UE)&E z5PmlmAqb`_|Gb%Myh=0WR?zf(3fFh5Zt?E{9S7e{#z716Oj-Ix_o#`u+~}|^ahY+W zp7}0bvXok$`@umVdXEl<)|$~Tz$KM9Yv&z&Q?0!i21YQ{Pedy}DJvYB@F`A+#jVTV zt$xY8NnG(Uens!LLpiHgBT!q^?Nan)M^CAR_qt;d{VgM*X|A#cwr85y7K7PTp&j?J z;yUP4d#LlQr}ucIG5=y{qD-l3DWH>b*w9hvq?}U7+Jq!NW~eXm+*CGWgRa+d*-3}!ZbW@TD_%kLic4Y;-1(vz0+FdPZ#0s z-xA5mkJw}1Ra2Afq@HTj3p<8+jw`cmJ5D?mv>SI~nFl1!o=~D{g~H{55%7#DW9iK) z=i%?pCXcB1T4$CT^?*2x3P(ax*lL+Ks|D6V+w$S8RzoszMDvK3X_fG!rjFU;L3xSD zTXF8oOPvNW=eUKA!fxENFBm{{Jjt-0yvuB}92L5G`^i*caj>{qW5lS3R-JV+>0;6j-h@n7}t z>`cB)`JZyZ@P9q>_*kky#^)AH$KMM(o@7_en|4<3$uem4C2(ai!=c7yHz@#w^YBinVNs+$OF6JEQ1Svo0( z`TpKQg_)V&l>mtXT$k3SU=i;w~r7aOV5ChtQJxwq;lTU0ffu#Qz%PTQuSeYV!gX zuXBo{5IxUb&c*3Q(UbZ5o*P1SI?o%LUz$JLf9k$Dh9S2dyB8^+;}pKzEN~bv-k#Hh ziugsk8|5P9)%NuYb+4dG!RzQ0Xaz>KwJrKH0f1QUMD6zyhXk7q!!eyJ{hpMg_N{X$ zek&&GmO15ges`AaRS8e2(X?OJ2}&?!v6SGE)LYh0y+?naj*QZf#0Ff4^vCi#-?Z4( zRCYGtLe|P-pCdtg%x92PU8}Fq6A+0BOqc`~cy3q*ic6z3*4%@E8^-9IZ|td>f;=N2 zvLH@PY4AW{1<09?1?xtoQd~${U`vC=l4*ft(Ug-UiWIsqnP|!m5R8m|nhiW@3T*zp6y#Yh`JVmN3d!G*LiFkFjP{yPUU=W6{c zcf|a}I%h3j0S_U3MC#Aq69##`gO*|yOEy}D`?tP4)wT+gH!K9%9n)^9kg-FslxLlE zL>ZRD@0P-<1!WTcF!@Z-B=Xdrg1_*Z;$9|JIHhk^k2a>3ZUF6HYlH^UxtbAEgdeq9(D5@ZP6s zKl&@aM)CSJoqKEbwx;4hjO;*EVV&VDgWtQqweB{RQF2LPrGl|TY!hJ)Yvi4LMHR_Z zN>-H0i(Y*$O@w{n<2CKH96)W62w%@omV%NBJ*GcCbg6Lq6k&E15m z=)E!H4eR#{*D8oNJKKT+1F`(@pE~M{Cf|zTOqSV;6+`z6Z$I!iv8t<;59*Lv*-nzK zT=nHGIc{riWyqR04%gY@Aq2+ZKhQ3bBItUmQ6f3a|6yi-lb<(!iJ@yPWi~sACGd4m z7&alvV7RpGw6Bt_461#yts%8#3Q8#oWhu1L@6Znw!|v2RX>xIVn@9IydPZl?q{_nQ)>_R`v&B6D~Iy?w(F*_Pa;H9*7ALJ#!_GC(fG6$6h+-z=eg>mF-tm#LV-%xe5u!L1NkUFoP z{^EaH)igA)4@5sHko!g`oEnr$$OUcs%Mnhs?Y8gLX19CxJ6;YSJXd9~VP|7=!)&N{ zvx4*USGATyxPN<4E6leZ!Nc0iRBQZdi%Ea$ADF4N@^D$9%90NP>yV*kcGHI>f7o;L zD|WJ;4|r#L4|><=`ScHfJy(0dBBw9Xnc??lzGCQ|4e_0}P$%v+6Lz*3;D@VsZ*=el*R4ssN z=Enmn#rWi6GFurx>({=l5n{sHtc4&haaMsHsERm;E2M=*aBR_4A`2zW4U z&ZXw-&-=x|j4S)ySSw&gpgBMHxI*4syZFa8v%SGKv^~W(u$(c`<5ZseZ}<)bCc3Caw&N-A*iYu`_ zoM&^ffMGu5u>C?&jQc#l#%d%ApE@`n!LAm-y_zY&}@!l0c z4oP5~?b$}e5vXBF#L&N`4lY;cpZz(DylFCVp2hO}_q4B<*D6a2O}4qrqD&Z>i2g!9 zA^tGj@fF7O!9PuSAqpXIQp@*~miTz(@4QGsNxemnxCFtwhy8lG=QN`ibKOr~wi8R; z97fPj4`ojd@KW%6S)uHSZg`ElvLHth;P&ic%aH&Pq9K%g;^qTQ*)xWu78Fdl7k+u$-pI$2=8<3 zLI>R9L9FCDeGEy-!!K;4exwbPe*;|DQ{-2$SQ152my2jpI=+?gHm_Ft5|)8qVl7{E zK?D%jB_CzMo(c(xM|d(_IQw8=uyc`TOde6AXGqc{MKYH4Z6~+wG0pku&TKshOA-;I zbwSC#;Gu&QY^mRev0@3WF5BPuGSnqXb44?(A@krfvQmmpcrVgmL_SD#ePkkHdLlgT zIti+DrfY-go*_u0B#dg+8-@!#_0!dU^2SeS^u?t-c>-sP9^S|MVKl2QY zu3@Gw0#qf{|>(sArs+kqQR9zvNyKDE+pb7muPg{x-s`KT|H@QLoS!l*}fAN7b5Rr_Y9@>h}~cK6`Du? zP~r=>5u8ER+X;6z?-^>;e-}o{{Q*vGSF=5=xFm`=9~tRJdm1i!E4``p^!mstZ)w0O zXRA^Hl^60k*5$3%+he)Wy3&tv*)L;{dAPu2V4yEcxQ z_cgA~Y{<=oUTPL~0_34+cQSZlno+TA`i4@C(^9ji@lvzA;(5b81@kYMX@=6Sow+Bx z0haR}#kT%ZE0K?1S{xb(wyCS|(u6+x$l{^?aQevaaKEbXG>j>Vjg#qoj@jnsOFXq7)_vU-k=K2$>0WCz&I$olecRMWpfBW{k_Pu`rRQK3QDr@C1&|2m!RrJKXpc(%(cudtZpw28o^zibEjTj75TE& z`3ptX{!hEAJ+sHh1uDSmwY+^5PilYsqG(hAWQm1l-n7ucJQU#R0PTZJGLq z_x>_wT0@;VYbeyo-;uZkUImjNVJcg&2vF{Z@n@^l7O77$21@3|R7oIJ*a5u`l4=2t zB{ANqw4DMI1)fe%U>93nAF9N%G2zK#sNU)oPmvsu3>5N%`Rz#ANwlPk)$fB=L1#G7 z*HP~K3|hg!1R$5oEUb7%D+f|M-gx9z5fvFhyQWi2rBmn8!!(NZ!YV7UGYyF}>M|uc z^cj-!&~lP;4lxYiCe~7$))-!YPd~Ywpj;wdWO@Xyv7ua4!woRIG9Yh&q~0trb8WJ| zwQgE@=Rv)|_|jUegKm3ByaeiP`GYK)nnw*}g^BVf#QU`fW=!fUAf0m346Hkt5X<$o zDg0CsPWyQ(B5ZxCDkxDKKAh^ToEN>$q6A|0eZ@4E=209(xD z6Fd+y@cKzpxWyg!PqLKK---_-CTlyan{GT%Q!nMoVCu%L8iZA$xz<$^x5TQBKU$D{ zBb8YnJ_~=jwa3~T?K1qa_6|DIKQ5h1a4VB8<9;8IyNy&zNjn_4ka1<2Uoaql%E79Z z*-Wg`YI)Y47x1~KY097}w7PNVzYXCg+;HW~!FaiI`^XMam{^8$q%5lqI*_a9zlr7W zis#`2%{A^#mmT6{5XR_YzVeE7Q+XNB{l6?Y8`BQBNha6zeLA-U}}+g~&tr#x1&M@Chl zKVC5k2_>?9tcgA+xP-oT*!<`}Ipm=>=N8$}&waG&vm8JZlY+H^xaN#oI_B@G9D^1N z1xT~oP;z?}aE+Vq4a%68SL_2-)7L8GSSN-cQeX8L!HGEv&i$|Qi3u)ZBf~|v4D)V>!JYA1-xU4MMZ~~Roc>ThUgzviwdPq3&hb# z)QZGOkj>C_c6H3dE4|}qbvpq5YQFgfRgP<`O1?Dn;7?Ik+uf~tBPB;~Otaq{J0;h^ zo!`1ISyrR`9`tb#!v1XD?=QIYG?gWelP4?e=#{=bKrP1F+i48lS|Mi32NkFHHt z&Ua$gW0Ho(Z`3=r)$#@0VvXp=*!{5txaVr{J)4Y-F3bf4s7F%bo9Eo! zll>dMl zq2+fK){2T*IQAl%%=D+x1Cmj2P%sQBpdtWb1JMTak+Cw~-1`a5jPA#gXi@aZwZrpe z3XH*wz8VRFJ84diWCIQwNrw#npjX210$C*QZPpfAD)3jJ@tuvuwJ?AL!6l^gfE}Bh zpEQj}1FK+2Oj1TuJJS?MBkI)O!-9??IKfkVZJ_R8EjOetXo?}e zluqDgix*NkDOWhQF7<&amV0GQR6l3IqUoXV^9c@dNMe0OL zp9mg&F~gSIcRB_$gD4nrp)ij#eh>?xQ*WK5CHTR8JrI91$LlPp{4rNx4s?nBfNUXM zi}_Qmi+mz9>0=!gBk>>21w(C?l0%+&!r9}Y-2D&@^v;xwvYvKsRp0}|y#X`E1zR7# z95|olQPhHkQ5AzA5tMhpil7@XoHreLlwT1200gU2{ZbNkdGP^q;I5+Qt(pIT z%XZ7)6Na5&rHGH3>rL67Ofx5h%Ml#|UU}Q>w8`K1Li`6=f2y!0T+JVA*Em!foQNNw2m5~P+SPh5GAwyDMQ=#SpgtwZ&uwT%8@)@OP>>>L5vl%snA>FN%&Q7%m6e&k}dJGj7ZDtkB6n*PPcN!en|& zSgcZ9EIiGrM5&P|hByma+_FvucAw;npigRw!^QA#ADc#(g|{|utFF4HC;e3RjIliX z8blx7R_hw&7BQOI8e-`#8pX3w*}i)Q;VS!avdrtT#8#J39i3Uku@zFIlGU+#f$Ve2 z+tav;F>K&Br+HL5lU=Ri7Yq%oTsj_~ZQ@iC9{5j7ZJC2t1=f6D@WiFtIPiP?}T zJkp&)GOXmmxa-1`0mse28%e9^9=p5^L!G;nn;FF5cHd4CV$(fJdxhJ zo_5xAQbf73D-Y{CD}AqmuAz1<6cIgw*~p90E&axm+-Ehx(5?qrATMg0z6#g7Ue(u? zKA|xHlsPQT2d~`b3CX7atu7y-|72A(#1aR^89zZvrJmC;tj;0* z-O^&1X6NgSj!;2{1+~|Aid-;{=Jq_n@~*lr_FEk@x8>U}S+l0@$yjB%l!D=rN0W{9 z7@R<7M%zgri*RFWs;}6o^l`k^G;X6sYM#^q(|PRXmGD6K3RYYK)MVP)Ll)PQh@H(2 z!-VzsQ>%x4Uq=#y;4?-wDA$0csm-ZJ6IqJSj6}M#@Hu*06W8PMab6C=qIs<+BCoQ>e_oN^ZMV8S)sJ(rrmSt^kqBG@B+TR^Sv~W{G+bpQVw!k8{eTk zNg(_Kdt5uLdL)q_L@x1q?Tp5l96NhwIeH5uTDzJFOwLqAS90*4_S*5DTJc?#7r}%# ztLD>;6Rd#0&QE@ijX(N#UYF%JS!L67Z+eWOY;nx~JA_*5iqU)%Hn zG0LU$Y`*=^uYeF>19$~wme9-ctyHJhBOb#RKe)irrE2&uf~n`#)Snx5+=5~e!;z`% zehL`=hs$HQR(~&CPSa`Y+Kec?WHTs>`1La&LL$IRrt7nf&Y1@fbAC+9(O7DoMz#LX zPwyjMIfid|+lBu&k4tm&3om-fk)7`p@$0gQWi`@=zc267P#bzt$u@kB`}3}muDvg~ zuRVi%HOlvaSn|;{z*TjkDV8(6zfP!m+q39m9<;a^q(*@|jCy5^b1K4`VmFyH3O3j+AxivnGd~?p6y%4^Hqn3je%Fl+N(`IjhgOlN32;ew3-isr zI>cQ@hDT~{^y5v z@t&64VYQ3?0CDgN&Z2XvZz{hJap_xww%Ka-ciE#fovZC%st;ICtKPKse>NT<`Ep#u zw+0j*sNF%HLry}%Mwdr+i;p?l9OS_CNQ)!Occ~a1z`p{AJ18tGVnHQT1r!IQBQahr zoFKUm6fTJy-maV_RQ#HmazDin-MF2h?;&q3NiC}&Z;Mb^xrJeGL*s#8P2d+tffL`o zENISoG$#z2S9&RjZopyYyjxq8iUW5J$dMZgs;!6xGS~ka&hDZ~0u%f6=g%T&<$_`Q zi7*QKR1EvC?_8h2CA~J5xiWB&$dG_9Q9Bpp&{Ea^Nu1|#YS7XM>(khx2`R9keJ8X~ z#OjF;r6+IQ+Kc%XG#LboQVuDRKpjeGT0SgEs_Mgcsc&!3iLF4RT#tzATOe`)G%S%y>4!!N6hOOL6_M69H5kgbakerm%PX&^YB}E0;Lo+DT zug`f^89S}tF}%fta@Q1Fi644!;W?^WPIlzshgu|sPo`}*&>{y9=2wSzUedF!L={*- z>O5z?3T>EVR1WY@#2w7Z-=u0OoeD|5kJ>(Yzv`#?WE1>yW(?p(T~nIh0#5geO)RLs~XlR!^@vyMAhJz ze)e{XIER4JoYa4ALUNiz-fhn@2-`f_+=_`@<=U5hF{h?(GmwKPr;f{y>LetVB+1JP zMX3LOyPELAZ@U zdR;ZVJ&l>pnx%!r3ohMe6y8Gkp(^V4)QWEmMZ$I>lNw<1bnH;23okPdF(2#G&y7AW z9u@=Qx;KQ6&phL~{_LnF7xeO{OtX~9=Lej#KGCZ6Sqh1dIX}jC_{nsC{v7X7pV;92 z>f&lRM!J!4LIS%#jL4qCEjyW82{y57~dp(Z$qmt9?&rX z*I93daz4#+NZ6|WiG*$MBn<)D49XuMtDTtV(AVQ-y3!1EqBnB%r{B)HO8y%uLl?`g zcf20l{wm2g?ysTEkrZ{6Rvfz1E*{1cZ`9uLyC0ZkTyT$tarE4$Re&jU9r8rr643`e zkE?Os5??Hs+HE^hIb}7Ek;_`uf#-D#S{k2jW;KtSdtMrcuY0&@Z+RJo@A?_tEWB`k zk_gnDp2&$`rtm~o?6#`HcR*;w{C z8OZ9yOY`P+Tr4v_qGyADpAkL{?vLbz?5Du9@$G*p+SM+7+tNm7(GCXVXBOjhF5ctm z@H(^lwLPNWqKCs;^qlm1g~sMq^*my-D!Ih>hjnq|No0Di`Bwt&*yX>q`Bwb8I1U(y zeM>)T-0_nCQ)>W#b3vM7Z>4~vs2fc_y4(GWTmO_pXmD2zC0&uGvMa0q18Cs#<}xD3 zx7{qhJ6M^ejET}rkD$zMN-=r#9^7USW{7@@HC_A-lKgxh5<8w?kVVKF$*igdS1>&NeFr*pigF6gyvmzH znneT3(x92I0pSsPoj+WuQ#evwV3KX$je)3_nn70(jTKY8Yhik1i$FhC?t~B|{nkm> z|2U$tj=d&D8m1j?2THG5iIRrL^o+O<6-<9IYJHRlK80vw40ux5i1)CK(PR%&+sQ`w zv|skQv@;$<#*ky)h3afxi&5UEg}~mL?EFw(T%2BM+bPmVC(V~Y{^)X+(q!0>p3~#) zZN*l;RH(g>{t22`*N@DWY5lrMu~1d2kqRyauVZ2YVAX{=mJoSiu_F=-P1w4ZCU}F4 zgw(Aqab_#t`=IUul%px%L4NV~n65=Upj5aSSgIHm4pa#Ifn!&>;Tff1wAxNI2NS*7 ztD*Og12<-$MT@Q^b349%;%|yM+>uNPrahHiSy7>aZ`383%d9E7z_^#l{NG(2gi;!= zRW+fT+^ch$7vGq;=u#G09^LJWHa!xa+pfNs4#;iO?3S?Ul*|n z!+$0_f0qTv`ATbrJNxl}bPW{_UFx#c&O=vKhfM9CL`}D^hEGb5mg=m=5Ffw$_%)#d zg%F$?_uS}Ds^(qk>N?1KKU<%LUK91mneIwEQ?B2dF$~)ctM(*lan_Chemm}I4(xW< z@?}M4ML-xPNE_j~$hrmmZSSZnFFP^P1$u_;EZaq!T-#&j^xI=I8J#%M&Klf}A;0l_AXT9d(jTNn!bpU2VPjZZ7%)GLEq+Ma7|z z83aF~(*Gq!;JT;=-h9uouPXnrdvTUPvv_oIHrq7S7cgZOtt?X1Umae#xoJ2)`yQpS zR9KXf(b<-48r|uga^iO$Xh8bz*e9!!I~xcBDfD!zfbh=H@dk-YytpE zA%H4(C23^0C~07ICvV%^?|)a%|i>eeN2M$~Z7vgO!9kR^K8!-W{_)JC2iz?i7(e@`rZFTdcj_~A|t zM02@wmDxPeR%!unE8dD1635|xU9-9gV#E_pY86@BH`vDAm3W)RiuEwr*Vwa@7XSUf z|6SrcU;kYMqPW&LOB~KiGd%oQ?HtD?WtM%iriNb_-!&RQsc4G6vaXv}cqLt2;!A$# zaFxYjv0@Q-%h01Q?V#H@_-h)m+F0Tenml{W0N{i50RiNTf1^oOS2;GoAk8h`hSKow zWc@NUN3gGsT#3AaoWBYGT?;?lpAwNi5jqMSa2&4l_$T9MJ8$CuKU-X~e? zt(tF!QXm%aC`h{{ag;(!s5OF_wMh^QsU^44$n?I)l6S+3+!_2Lus@hGGc#TcNudWK z?NZ_j*CHh&kzu%t)XpaX@lTOTfQG`UZ7JST%JV_Mj{r@EOcvEkid!;JP-rPr=7Rx} z1(LIe1t2^7zzH1w0@x1uEN0?{T0E^dTA&tm6Do{6U$Mq5zM18@ePCMT^A@Rr+bXI- z?qMAz0AukEsBVQ414kT^OY`kdkhRbrJ)&gJsMj4%^6hqdhu`vkt6F|<*gj3fzF+=W)^d|a) zb}w#NQ0}SzWEae$*t5*oAC?-pse<&{Af2v=p}Oa>Jx;-qBs>t`JhjnYi!^Z{wTOt& zD`9n}O(w@Y5JPf9$D|o?HR0f2lxIVc{kYI0{CI~Bk{OjHbCnAP;E=4&UmDb>g4vt+ z{ptCr?p%E?(E#jMto1F3xaBSBPtH)QR3(PE00S5uz ztm8PT-*9ftqA=#aq_ct`nxW&zS5|y-j3p_CVZ1q}<4e4U@q!#Cpo#;mT^OOBWi7x2 zWOt7WDqr@S>c78H%=<}(_HyYb!YxMQ&k$>G;;uU?krVC>a6e({wI4F$(vaxAAMQ8v z!mx3}rc7snXRE&Wk4>gDXJTAKwKYtO!B&=T5o(^v*>!l0zS7^t?+a{2svdcI4dyni zeX}jVg;&4~XS^?YvPO<|{UwzDkE63-XoBs#_y$UdbW4mzx|B|7DN#~NHV}|1f5LK`J=545IlpdVMGgAW0s#r7bw_OhLx7G`}?+3 z=IG4`eN&Q2YQ0}?y`#}q?#48)Mw9S}ym_Ctanp69eD^5W*0^Qi@X4o3$OHpoXFAEt zaLv~&6+*X7ki8n@?ku2fA?qEb=){3fnmzC0awPI9hO#c5g96*6tkb@nlWK^ZCS9yb zowaah7ku=z=bv4WAMfe#X2z!u?gs}6VjNWA79+t+j{_f{39EQwktJ^}8X8NE#>^L* zkgTkM@q%?3>MFsWe%0!>+{_ZS-fL$1=)*vB#4B<`;-ckZe71_t=v*rsx_&t8oWY;>}Nq%(}H!|TjaQGz0X7)pdU-L|BgpV zuqJ3^C5(G+Q8YjFeC!fvIs4kkyUHQjwyL{k@{vzZO?(|b10fJ?b+?=LK3(w2#j95` zK_zqRNjpoq;WL=EzgDP;RV$q+E8=W%&X?{nV<9&`XCbG)5<^Or5tZ~_IT3y2PI*-# zfi>59Y6nID*cpbX}_q z)vZ6KH<-?X?sKL^Jwjm{7f^}+Z4v9)fijW%){v(+gP52BP_jDLJcv{!T9w#YQ!1rt z6;?sYyu2I6BXoNC$XNj zLMk;l7%wA4UeZjnxlLS44}eaN8ebn5Pp#?W@}~<>vj=AA*0}bhqhJ2mu~~*WGo-Z8 zS-VQ6=}ov0@sN5%$0?;3#2=LrBqcu+))YNEK11gZ^f4pPlH>B4tuUC_$faTWx43Tl zw@Z8J7*u8&V!tiJQdcb{!IVbPfqTv-Z-6z+zfeQ5FRlE2A z*U443%0D>5eVPgpvDz-H5hlZ88p_LJjQ4jATzMlh$b2eMfY-<&_@3hTh;0g|JL)YV z7r%&b=Cx#kt1(xA)7=Wf>(-rqt~*Fa{Sn^V2}^>8c$tSp0v8mw;UPf3&$v$c1W*dF z0g3`zbc%R6W6oo&3&nm;(0aV!D&)Wen1BQ2q{qNdbZawZQXR3(ejS!4vERG+cvMnY z8^4>psFnxn4`{Qn@fSKoUa9!pzV(_JM(zGUeo21}Pzw|=pfI!K{{uMh02ImrzPOWi zP)(A*w#)cx=C3DDq8ZzT!6_DwhQ_$Ps8s(UgaE;AAIp=!@dB(4(E}DH`=|jGkry(- zJhVfzY(QDS>kb7qA-_B4-s-C)`M}>K1TO7I2=+Img|~DXK%hYte zC{xh9H@6PzDDl>L7YbYf;0%PYvA9)jH$eCiId}vf3TOu$#zg>w*vWx~xwJ3hqDC6& z4PhEby3)YzIQe||{-Q7JUYIju*h78wgv6h+^zLMI+Sl&n=RRM$NIT?kx_JiDC&%6( zjWwx@19m*%-H1Y(uG4YP{4r%Y4ojf;=Uj!uRto*7{~*(KdxR$| zCCGqIS<`Vt>c>wxBEc(11GvM<+OV2tB}uZnK9&!(hw(M*t$U>VmN0t+c&yNCCSIX4 zLVt>IWN``}H0?>K<2!tz; z#3wWzYARN&h5rh&2o#zDSzU!IJAzlmBQYTaXjq2ZsjxiIFSb1y;CUd$^#C zlhbf!D<3HLqh})L@>jMAt26p)^e)G;$c3EQyTVJYHJ*a=&p#TEQ*sDCE8LL}ONW{` zv8?DXY%Zi{ormq0Z~V|vO%7LJ@DGt=lLE}re=?P#z06lBOf4rTo*E84@Gev6+E>0H z|LEoGmv(Cky3Vv=_0J_%vVIdc4Mq-dPa~4So=!au=*v<0aYF%T4+p_%YH2JDUn%K2&?jo6K9q zVTS4z)e$^?3Yq+yT^C&r1>Wr!sa zs6AL~`EUCnvBW2D!E8ln6W^*VK5Mq`Blt7y>$Pkj$0yD|NcX~ysG#? zp;9Z)h?)~VOaL24*&N@msu$BpE={XAX}eQ{$&dUaa)9?gOQKE}1FOC9c`nq|EO2V; z-C#t~!YD@!Ysm-}CzY_-JhHg3J5C zJU9sY`pi9gjC~m2NCgHjNMZ5C|2uKvilww+Jf&(uIHqH@y-mBa!$12dB3u@`G=8?hspLt~&(9fqMu2oubX7|C6M4m&J`e66S0#@0ckiwU5!6@B@R9b?7p%nZR4lRRaoChC_pjl-br9cHSfH{B$KZvH z^g#_2YPI%8rX6;qPf+!|ag%WyfgoJ^(q-DhY^xN%JIp?vl0ho{j#gC%yAuKl>*r@B z(1Xr%nS*T<^k8`sda$JRXX$G$uWj`%6Si%~`yl!1v_GntZzt^mqf(20>wl$ztx*dN z`h%xbV5^=M9z z@pcT`>m{t3Ce!3yo7<0`N0NrzX0x*;|>KS;X zJID&}+#mZA6mw$0*#TN)>!9Vi^#*{89g9)m;U6OHpw8Bv2Hs6#pWLz6R8NDKLv8~# z*`7d7(yu7)71lQK(;kx(Q5yiQ-ySRR84p(h>tyfj5F~x1wInZyBgLkGM)`c&@<*zG zjT5ur7~7@CV*cwK&g&WR9a2Xl!cYHejM3DTySVj~|H0&~ZqjnY5&-xv;N5TO;0}2J z``4G^9rtdD?9bY#d;bRZ0dEQN5pnE74`>(VUiZ(&T*a_MN);-ns@_?^9q3=ih@n!J zG@Z>Rk3jV+&j6CACQhcH^>itkZ(ur@emPS4`zy zl3_Bf1Lkdw37IAVEBR>59Y$YkE>IX=NNc={RZsf!$~;Eijr$QjdC6lLqtq#xr+gt5#nnulD$+WNxF8ew2q=c>qgPdQ+Th45-tI z10!UbuRTGbaxFo-u@F*aAg2-aO+x-*a6Kz)fB-qWTpn-d#(#uo1osKf6%$QhKDK8${uA1&O2J>##^Wy6jo|6@BC7WnMcYgj_#Ji%?BnkQ*nDoJ}^R1wa zKY*TX=YmFg>&4%#MUlwwkw<01fCg3Zm&;TFAM(Abz|R*hcn>*h^X5>JX_JcmZ$Ix8 zGhU>m<1?g1k zfcwkV~Q=68GVu@*cLTNFiMzol?tT$2G;xXEA1Oo1Cs;ly}NLH zG3Vc`k!jab)!&a%db_@fgGrK|Q;M?*CAj&=yV~mqNf+_;V}bCGuNfDn8MmrKj|IqE zZVV56S4w9^Cc2#t8#v$3rY+0~b7YNIRIB*?cQmNc-j7#Vy|<*QlWC6y&Do9K)DuP? zj-5P84)h)RgpO2>?6T$lBBDTkNzrcb^f_&}R2fVcb$_7{1YOTvn%8O#KY7`te$Q^i zW>f4ic|7o2sFBE(z5NJ+*yQ{6b?I@_()RPJnu`Gm$(6XK4=%PA0T%%lRny5gzwN$s z_ZZ8&9L^YXF9?|Vz%n)PuUfskJ}GV&a@#QwHtPizf6=IMqeNLiro={Pi5 z2BJp*&RNSJ2o>ixQCf+18meKw<#D+YpDl=m_f))zC1XmfrENsE0W{09|WD*>WYPB$h5Dv~$=?Y`S-?S_aLC5c$tHGEa>kozE(ZKDX4Vl($;0 zn-cg@?3$1nsFQJX+_QWh#8^Dx0ZLA%0XdvUH*LJ#P54f_8)vIMfu7=TXLcKp5+2|_ z_@n5Cf-fb0U5KaBzfmS)Y^=p|56>E1aD(80{u5&SRSkNvUxQWRZ)YV6G-n}=f*;-yM6}%HVbrd1({ANf` zA?Uhl9JZI!XDsBJ2B4%fs1e8!fPwdJzZYPtiDy<3^Aq7@2ANuJN4H`$N{@V` zkY!cKHQJ&HC@AT}7i%o4Wb~L<0h4p(8}C8toA_(XCtmQx44sdl)rFkpAhsR!Q6GR; zklyU!1B5~@MZ*%_NEE;GwQlh~JSWr1l4C!kgmP3`q6cK=BbQh4M<8dMBBF76Vcfd;$ zZ{UJ~xaKWc67$>TWC7>tKO8$?03i& z_j!{5BLF((=WWh)@%6tcE&AYn#pJJ9o5%xh<9PV#=m0M@1!G1+V>~LmRg3yXId+C9 z?^9;$SMj#R$Z9^mI-wjRdyF98@8lW}xP8tWoxOjH7l2d*_)Sasq~7=9W##cc{y1cvKSh3QorSnH^uQ6tQ1o;m)rmrOX0mV6UqOxU z<3L36rxgvrYoUYV@gRYpjk@Z*Usf2D-XbylPe&A;gXMvDMjUpvU~InAYj#V|)B;Lt zEZGRo1re^|KbceEoW<>a@1a8N-5)Ux`MiU1hIr#XcF=TY!lc>^@xzz7evuU+K+#ZWKwP$KQ|EPwm4L$a(;q7lTj#ft(ps6ZQF(!^*xsJ}U` zfY)`nz$SyA+uxhnl=Vr{JrE=B(ePU3+}Sk-CcnZeYJp)Htt0&DIxs5b5q8R0fxj9G zLX%E+ev-r{F|z(nmP@u{?P$wSzW<0DI5njg(fuAHt!X>=<94<;jfH}r79sBaXAw-^ zLFGb>f78!de$pQX^a|Sp>M&_Ot4RlBPmDiH^MwwEz1RPPy1+h9>`DR{Ucm z^a__-9@vf-qSDCPZ7@-P_;J+i#@;MJYhp7(;KR0DLyP(+{ovA1n_4~0GaLG5O2|6o znszD{t@i-=Bn+g9Lhu!Gp(2rG+VmSMjM{vkZIcI>Cg{e)wX9+QrG;1pX@3c?foG+a$n06QyGu&hF zF!pm!t1LboF)N!P)l&>ZdbNla|n#A z5k)nT)>l`|wBNPWr`e|O*Ux9^AJ>Rq?fkGtANZ}d2wR7U7@EN4Q+?Fm$*`1JZ;_}x z>#1v3LElk+8ou$a@kI|BA-_>uPt@8!Oh@0ww%5 z0>!}nT>S@A;VjtD_BIYr5P(dwcf>?brTCYXyv(Zd6+d)1evUt|t?vFPZ5 zP*<Roo=8iMt!K%i`o@6ihZqZ{uedJ+oCEZbMxVCk{<$E1TG4W5g`*=km9wL1rA8K1N+kD z4Nob}oQ1$PQ77jScR~B1(<#(YtBd@J{nvffGx_y%_tGzXVa<+C2^Z>4NpYl6*#k}T zpN|q0J;(Zqf!P`G>SPPp^eQu3WA|&oyf*Rv{=+TZ9n3pk!>tiM=tB<9h2!B!uP+zT z2$zvj-KV~$S6Arq;4! zN5kvc0!TON<}u>XrO$KrslB&SXqVYi$`x5@kbhNKeF9uncRquEr)O)Hm+R0>7(g1M zdMKn(Pn$xr4`3pF6f1tcPkJ||4d7VWLZ_)o7DF+D2`s zr~#)*|K$&2x8G8{(BM&9*bsi9T63Xw=VuPHb%$vXX&>L?d~)|C-xsCc0C!EP7wkWi z?CG5Vs#mw-N!(Ict(Mo@!?wxKfqwxbU{k_|0^rG9ht15%f1wdQAHbGX`*miWH(($o z%!ZK^Y@=2`O#k1iO%TLx#v9@wz}AHC2_~tQUWOlyU*LBbQ|`nB84JmsljFZF z;0z;p5`MdW%Rr#dz_)Cvq~%P1i^!`zeUdnuLw%fZQ>D(x3X{@FKfhhYTSYH*@fJYJ z5+7Z{q&d5!aAE}dp(y?3v#%G2wI5KnE9yY>gY17jW-tY4k;X+ap zmKRUZveKYD<;i69X9^m$|%$C-R+jIUgA>tjI-L!t?G=8b#@_Ac~thZRC@a z1jAq=OU9saUsaC3SmHjpp7+wN7PXf}(6qZRdb^e=)t=gwni zF`3)OWYtHc1wUEscmx1{W5SzsOtm@d$euGpGLrz;7v|LfNK)Vt%sy@5>jwiCVT{xb zj54GWbl{9H&xf8XKGNvduM>VWI?h}07 z;&}>>U*74Fs46l;>N#lUOVPp#_}{lD>w@Zu%u%Ob&eAl=|xO@yVZ;BaWJtti=JeL2pK_Hmv_tWM zb)MOBj)R2lM?bW>IujgRe8P5rM_W>5IM9Ex5 zl0@ZN4}Bo2SX$%La;CtUkci+`t?Ew^$Acy~CidfTVh?FWfzf0t>1h4iS4Fimjcy>N zCOOpHJ4^G>-R;b?zdyA4b_|}j4ASe&f8QW{H^*N~>9`h*o8xoObX?J)5-tw4{c^Q# zX~6FL|Y@huj?>`Fi5#Kpu`wnU^hl|l%&hkpzPj|LumxNlJde`J}qYuGHf zky}rFX~?ARDd;fa7MB+NPv0ps9{b`HZ^}EsZUJMq8t0mfFA>Y&a}K_sp=kNt_6qXg z>?-I%fr^Zk{29#BhzfE3=8I-95D-l@1q12F>DtRL~uh!mU@Jn1dC`X%+mPNT-;uu>rS0d`u# zP+kG+YG=i=awt)WihET=_BVWCPmi|cAeBE6sc!Y$s%YWn2-h3UN>1AQj0m<@ zKo+SIcfB27cka3x4w%+bRc^~az&4u@FE?hj@wAd^$=b*aZihKe@YJy2+L9DAGY#xI zT2YEwZU4!$^W~}yB8!`1cCn*O3b>Z}n4FYz(xB6xzQCxK?8wAl@t0-6Ordmwd3b28 zf)6SW>DvQ)4T=@l?`M?n;oI02_Q+*wH#Hy@8;%`Jf1%$~CsSG3O_P7eIjNc!~(1Y04s#^QxrC6Ei3=Zz2| zpnNI&-+|6tSBQ8w$WtFvym4f9QcMJmWA7$}e>h1X$I!qp^{C+|SC^=fVw%KJDp2BA zOV6U-R5$dNlfOZ&8P&hB=?`4B{2NR)k>fK3CLk|$zV?R7RIJu!tGYzy z%MkY@_|fQA=o$9S0e2`~M}~#P?A%}6Jwkj{ewKCZ?=^2^G*34OqV)$N(|&CxB7e=& zD|F*4&UWTOUp{HJy_fzWD^lh@D3MIXb3W8ca@jDxy}ct-M@dL(n4IB~^%x zGGHkb9n87u1Wk)s6?DK zhCWMf0=9ukKRy&n?K7n=@48))V{E7&(cVh6bUx)*kHK#O-T+Df4VoValPVXa+2gdW zfJg2e0E$mqFktlhovyzuDY?lp5kZ1Yz7zl*eIeUPP9Dlu@}Qx&bCb7TVAPLEf_O^K zsR46C!u~6Pu5gt^l1E0J?!NfEL#u*6sf=ctosM=^o(zB3;bP=f42)_EfP` zpwASYyAG?oo0QJotEy6xi0?+md{OlD#9=|POLTEIkc7{9@`+b%aS;Av)BrhV*i2ke zimHSB^{%S?(1(T4+n^%i48#qNA@%L=e<1HyR9YV*oN2L2W^EDFL)z;Ae5$&p=L@+v z3EsdVO=rNTbFxPpVlgRmKiG1V17Fb(jg`uvUxG6Rw!cL#rF&12Np}aqOs6 zHwcV^Cd;226|6`r(C*jSYYQ*RwWa22+64`l8Gm69CX_f?;ij@K`!XpcAS~bCEtj+( zJYv`qP24qI3N*l;1*M8^ZiS7n%k_GS^Z14o3lnTCoG?|KRPhkY>M@>X8 zD$Xc6-sSPc_f#--w1hCp!PH6=uj;-=d;OWmBu-`w((_~9L{zoMIP+nDy>FIPDl@}W zH7+q8z@Geqs|PUKP4}W22t5T}g4PLKS4AzH%l7U4^s7=QmDn<<*Tep57QB&HcV&zR zkpx0LluUu6+8NTyCz)%wUD5NOmC(U6&lfGfZDfSAx`z+R4_RL)Q9zNL;FCNV{XPjy z1*fDGFYBb4>1@uMPs94^zO)9Cv9%<+xfJtWxi8C`ZtM8;TWV6@1>P0{*!f* zfBk(4udQiaP7b+MEu<1*|4#zsJx@|1?absr_Fu9$U+sbKIF1aaT64|X0(^YGI(deQ zFkkSj^o3V%Oqv=a@?q%nNwi=?u z;OwT#8`@uIRk%|=q|MdEbit;L>unYJQWYV`x~{zi)-6Z4%)-e1-9&)6(ZB@Nw>o}5 zM1>N0o5t<6eDQWI_*Msz)mumULf5Iu-%9fB!8Aqit&&rwi|lF~*u07l^$g%4Lg%T!$2?&kPw5AzfG9R}Bx% zi8m-?`JDiN`tMNm+@a!&!`dPX)93W$@aVy#NT41EPg$$YkuzBe&6f-jAyepgz4o{=cB3!Pj({8f^$qPws(U9r1UlvJKR$YWj`!hc*4J4Kf*QbTK(QpUe%$#1p%Cj2hgWp3&i2RZUGzx>4!N z0|LQ4r^31bw6}2YZco+ip4r$PZRpdEwGWk70D{5 zBB(l$D608WZx6i%*P(qVcRAjd*IST}^JABLXuzT~`Q4PQ9|J+AFI7rS1InsAIx9w66&FxYY;S7pGo^RCsk6A+vcI^$>G> z@tDYbA9vqAYs*$Wp2qRZ4s!c@<~y8SW?P_5WWednl?S#5W64jGV}|*s})Px9?%Je7BhOIUk5S)}MLeTrXRFDtE5u1h1sF zTCKO+CdA@hR(qXJKZJzV_N!mE3OV8r8!(kl2g#Fr{leHG?t&zl$eP5sw>5E4(x?>N zzh=d<)B0@NXt%z5{^9W-!=G`gG9?JBW-LoV=TSGNhgm;L<|1XhCr!}IxxZeew$1yV zxr^s*r)J;S5hOELAI>u;Mb^Zn!ic?T#g+e!#a-P zhFc+bejbo>QoLCN47mWt)C+;YW|CTZ8%+l>C?HTXYO%sQhKuK;##{%Sz$W0$e@w*s zzFL${8Ac4;o&*wY-|4Tcg>#?#0X~Ivi_@T}Xj~-8SZs91s~F%DZrGjUdak&%y=L%LNW~B3cwfuyc*XJ8une}eN7ia&PhJG_4ZP$}l`y*@KUJ@C6FowyFA;Q~JD za6)|OyZvEQYnGpl>+Si7+u8v?Nk$Dlg{I&dFYUU?B!D83vpedgbhpmp#?d9a)H(>{U?Xw`61L=qR5C% z{!4cbk0RPGYDA881rIFdU5C0(?$V^86P*kOc0y92t5S7toJMMtu_9$kO2T!k)cs^CyGNcDz19 zP=oGj_)Jx3SzSKm7oF2)3TR!>5wM*jt>eYlz1~@H_=}V0dMqwrINJLs;@nw9r-?1= zY?+itVevE9xlW?XAysPJIUVb<)-7Jd%B%L3`+>uQ^{qW4qAI6DQaim^uM~gr&XJ(& zlxL}Nhlp8{Rx7yDTc^Z8`G2g?Vw$B#J`f|Q2w4QH@L|k(iXHl7SJW@tW=O+@^eL82 z;qNjnGGnXf$8m{STkK*_F^HEI2Y-VRE*1zbsDv(y3&%$awN5dsDrk94zW{ z1{T>nd>BIzY|qZ4cWJs&r>}{SEIouUrAA;=>}iE6~N;f`K6hsV>y&4?~Fqo`*7k;(srtP ziz5T`uNoiTox@iuVp|dI%H8!=e=~ZnI3P7!?ev#{98-__ELnP}a6UKO=AnH< zJ^#7suT0)1it&1vk&5zsSz%E(;#nwh&WZqP)_-M@QVjR=cYAN4ly2bHyN1@H;~XPv&G+qTRp*jW7B=!Be^MHW%;X&nGeJ(2c7-Z{C$2L$NnLcC|rA@kRDXSJw!_03JGE z!dNu%;meG@w{_cBA<2*%AXFQo8~W5I{IG~FsKkx|j`1S*XzB-ybqVr{rC!o{&Cq(kp zT5<0`H{FHwc~DzRt5l>TnsG?GM$}m)~a3N8O zAZqY`3W%F=nb3WBvB&y_qBm*~*O#h*or3r#Oq~Ry37C(N`E&h|v+#s>vtT&dE3DOE zQsPyZ=z!;iC-GlBix@6L2*9zS&u$bx`$rpd?iXjvtkx@rANxXjhD?UfKAmB|UY;eS zC+D(UnO?sbJH@{uI_57Q+-((_AN3BgpI&;`SQL5v9*eju^LEEii!Ee8HY^cr7&)+c!0QTs3dkeSLS-#y0=)r zcjnMZ_i(fG?_s?HQiUc=-z5LF%`?ux{qmx{%fKe-urELP$O3OH6048`7{L~kdm(|w z98gGKRl{>)2i>7T5Px;8$dCSW4%C2sm|sX7O$mWSf&8~XiA~hB*vv9iAdja z){s(9KG`;JK=nafjux@;uEkuFUI>MAA6vBA}8ZD^2l!M1eOr0jW)b2Vh zL~|Yb3IOC@NdBA$xfco-(z*k;NlZyPwn@`S@?y!m*g6C>$qIq*05_Lb=T-^cc9mpr1YPI4*M8^#d`)z5i#}hS2^Si zBxJD%R{6X?wvXIEl(CI~&S7dw;1F39Nea+p`gR1VKft1k?=nTCgC_FKp^cbQe)yWr zAYq8~0%0Pg<<;u~l)kfgHw5Soz{a)%C|}Uk0%9;90vc$Q^z?a{G&!1FS}dU#HPk#l zWC^KN7v$3Zs+~ZY5+83KyNFu)p@lnqJET$gl>VbTJb`PLp1YE3&q^2ppFt>c9_vI! z@)$kZ_SAr!2#8!~HH>SAk9Lw}KQs34$R0SQzgAsScn0{fOL=Fg-xu&D63qBL3z9Wo zzjEZ&pm8}76u2%7^1y}+$;-z2&b@~ZEi#I&PQqZii=dkds?ZcemUqlg4EuOL%f>CG z4+7s9(9KMe4p;2qjOV}#HAMk;N9Yiw>rAu;!eI&ji%PQ>hccH(;@CoAgjHV`%JwOY zB+lS2?_*hZ3NP()Qu9>7n83v!2NF?IL2bkaHL$R_JZCjyrgIaN>)1NHjq8!*Dc z&>ylEz05GePSHbKPk(?WhapvwTpx8Hr0P$z>NiRy|E=AEzJH>COk&(&SBOaT(yxLsE~P~g z2ClcATkkP;2?;RX{E`FlPSRyi7%0Jf0)~-|C8R|_&59eCn2yAi9Hk!Z4ubNDgG#*$ z3)>w5y|j%oo1acJ+T{mH5xOzR2wus$-XO0y0o}X3aek`Zm3zmwyS@Gi>O8aOdN=+) z5UJ~Nb&hy#w=X6b_?0s*w?E&)u2?9iW^#j!#+S>lh3Pnc=?|Pw#-q;=D4r03f{U z!%XIID}f%U-;vSRpI-^S`Mu_9Y*EqLcc)kNM(d zb?DbSYWC6bR5G}i3^%kXiQBFkS9tsCG!=Z1otPu@S{L4jA=QkKCB4vsv5Wp^QIy`(JW#7q)M^hkF(KlVL^JxG5+y_=~q(D`pUuw$t`?wr}hW#j|=wh zUFEF*#YPuW5C7Vn#`QG#J&lMEl-&uf{g-pq)lwZ<6aVazm+(c*;WA34V&pm#(mOu- z*tALgPC>!F_gl>wf@as_M9)6l-U&u|bO!-$|KT#5j9QYV{gJ%7`?gr=iq`APC|mz8 z*xrW5pIY_d)>^vEbPH&JzlfZF_HO1!f0& zzQJ1h#UN9ArPxK!OAYw%qsbwp#wPtj4)QE{!J23|Jm~a+3pk|lECmrvTLLGlVMz;W zQa&8=qVjuA871#aJSFVr9bpT}M0MR;*_%dG*Hx;tV}ynbE=H!0R;R=-<_Yxv=J@}- zSe*h!$;2;M1?^F*80j9M zMEJe#*OxPVRziz;qh*Z=H&d5Ej<@K~DtkSdl?$_(wN`l$H|Q*Za_GLJQb0RFY-Z{m z!=(b$WCqkP-YG(seZgLPHR#2PLEW2Y8f@|7Jatb)N|+%3pbR zlj&JOGD5ALGo8$larDC+=QA>=0`+Li2%S|T@!CptEngp0h@etova9S3YAEhV)9asU7T zZU(ZDe<3ksizAO2T-crnFsjxAF|nEk4?7fJFgL!T8&;2D!^bcoE;@V*C4b&4|4zNe zqe~Y8c&zh&2jI*jUr3%!W2^@QgvXd11Ap^3SA_v@d60Gk?pu{b@wCP~*Kwi;Y`*|K zq44N3ohH{IrB8|KA`dE}rDJd=VX}s+D}sQfX6mtL0NFxSE+Cy%=dk%_3X}R0jv2t0 zjX$)S!V9r89l`B$=)1>@jHt}W?KhgFuX(*E2SPQ&ZwWFyDNvPU66rh(7+3}^kYavt zGV&WR0^|zOca*&Mqmh?iBs)y5NCS9>VM{0`wJBRQ3Z5&H3Ol8&_q!D8J4d(eR#i53 zCRo}|Bs9Ph=>bSa0ed0eu_gPH!&HBKvPnd+s>77-!W2;Jk7I|9`T=FtGKY)wB9*j= z550la>x*3*9?%<_R9BEjEo;$T%3C2g>&jd@e+=ns3&JXM$u_@yq%y5RE@+}FnSw=t ze2Agk&`tCHBmG(8JjJWQJDfZPA&f_-8x2c4zZ_<^MQDDL+MHEO7HHZa8$hw8@QaVe zEDaQF1u@1@&uw0!!Mr#1Fg+9I$5W~LA326zZL+7)g|R(}8Cp_((I zFnKqp5RS9l?%@UJd``56em8061Dx1h%dDQ$-#1yNY+sSM^<6d9+9*D}fIu~-|9JTJ z23Q=BPVec*nkJ!9&1(Lx>Nh+Rt%e&5My~Q>*NfE=q+FljRgW6kkGyh@5*lC97Dd*7 zQ{hU@+V0yuEQS2uXgKgy{guwPD17QH)gcPt24XWct=8O~94%>|npN=)q3Z0#vQ(^F zyKf&dcf!?D!*L(m&*P-f_pi{;gv?j?uNmAhf_#0xr@hOdlm#W&OJs@MBii!MlxFf{ z8VJGQE(HTo9u2$gUA`Ka8r+oW+0N}`IcK*%pUU6loS8T1`<-!S%Mwl4crH|8$O5;t z<8!|jO#0D^8l+k6eGTfTWhP-+C5`MmSiIe$OZj~@%vUFg<2fCT0b^4~3TIEuQUb%W@7q4&~rAG*AAYu=&G~73v_J|jGTgplcHV=1`JQVo5 zs0rTN&5lfR)h2!8t13$W@r$icEVX^QrMH>ww&7-c@ctsd*a4yKdvv#!6`^ZAk?ALM zMW=c3X@Os#?mhmc=#fb0Wb4P}vIbRmWYz**@2X~CWAc+k&j}vCx&zULmifu4PN|$$ zQEU4fHeU+m33z;d>CN#hd*?u7@Q>bL%rTXNJ#CNgwugP3#)OjrwBFS-YLWIvFvy~B zj>0x7SniD{KO)0>Y980>Ct!c=6Ygl)pyt%ZCb%{F<>{B08TP5i)2Ufbbj4>Iz%xR`MK&^$omRzONLll zIL@jCg=NgKKD$~=PVQ;T((Q%FeJm-(l%KR zee6bR{i^#yzu`UyxlEpzHx`N9nYi9!2r}T&ad39v4U2A}dn+l4Qo5qjmG!wT>l40L zqr%f|ZWt!;y*hq1b#5dg#l@0AfXk!WH0?BtS-^2nU=)l#v_u4qkFZ^?AaosiHl|rN zpx$TMgad!DNq=+WZ*1wI4%fkM^Y9J3r@D&tU;F3DKeyN`CoIq(C$>Rif4A{>Z6{ir z`K;`lgCj05A8f++!h0BeTST2&gDqRv{`wQeZ*IBcjkt$(9YUzo9%}5BJ^5Xgw}C%& zn4(1-D{PzVGE?&TY~1_eZ(5`GB8(_~D<<=CKR9izKYd!-4P7fd#}j@*uBK^5h?1F8 z^OttL$Y+%u+lbbG&>M45O(;4Vg}iK4b3_bsEUjE3d6QM$Z30wY>K&_WXv@@I9I_2B zQOT6dltDVWK?&-@5%;}sLhkNB&56$S3Y%l3$KAc_Z;IZNgSe{U2GlWqdz{>dE7elk z8`nOzNYB2CHsO~^a|~;LiR1rpq{IN1e>ik}ylOfeGB8OFc3vs~cfTu(->W~e(Si3J ztG68Gj_k#mp^7NsXaW>os=S-r{AD3Nou+_Yzx|i|Y4noe!3S%kQnKPtQBy_2aXDx| zy7y;Pm5y|ioo2RA?bXX(Fb`h%`X^MkVH;RBbe?2s^fZ^93# z7j!|vvtlV1sRr@B`2~J5VTOfux|&a1dJa$CT*^Qf;gFFIi{Kg}tgkh;EJ~Fu|8O{@ zcWa*60iMfFv|F(b{H3w273`wAD90-6g7G6XdmS zzS?F38e1vJc4kBT#g@gN|5FskUsMgZ$NkcqvxqR>{KUIejP$LjJX0t_?9oC-VyKB9 z{nkbD-5%OCa3yM57Ep##+4Vog$gUrV@{NDl6Z=oZInQ+ZeuPV7XwRcK{S6}H=i0z< zwJRy{iNXH`$Qci?|3}hUhc)59Uw;E-DBUPAIwS|uFuJ5fq?>_=l(a~V5C@EwP)Z2_ z>F)UGMt7$}x;sbx_I;lJxVZRh7jVDtbD!5aQsD((YXRThyrk(NnmK%=?WfHJ1Mm}4 zd@qt;1W0b+J%NYsPY`qh+CzH)Y<`z-szHfs@r{Psoy>3w00EqA1b>OW|EBjMU1CYZ zW~#pR)nk(fr$5-+;J@Ma9C$2!znGUq;ZXTwQaCaY$b$FLsMJJXmXs$K1MoZpGM!Qh zm*`-DF|J<3!e6o#f~4_sTtWMl55Et;0M{FaaP5l}k)?t-$SfW*L>V^0*_PR!oC5-S-BvoN5C8)Hhe@@)U(wrdIbVNYpC-a1rhuM2Oe8^ zC9Ciwk3V2+AM@_Y2kfE5cWYeo{~pk3B1Txr?U4N*I407o;pc%W#O7ID*M*jj3$e7C zeD8oBr(NQYjE73<&2PVKIN2SppLVZbhM_*);ZuboZ^8h;$46yHz;458`COoJ=f#CjXP#{ms8#c)V z86#D;RC1Bsel9}&BcZOzsMQrdj-->BcsVq(QHj|hV9YvaD<)m>=@>rirsRro4mwoa zg|5L!9yq@Fd6ycrJG{Tle6=c@Pjv5WOw2&ml?>euXJmz5sadd5qB(!-X!kPgy6;A_ zUeB6fHvdWbstU(cw6Y}*u8CZuiNjJB0b@6RJ_q&<5t6wgfN6pSsppM5fYTOOAJ;BI_itu zb-9U_XK8OGD57CFuJq`VxcRP!U6u$r$rGOd%7RYkhkm-fQ<(Wmbvf*NLS#N$*fF%? zHGgW^foiyW7rwZ*v}l>Y>Jr1Uf)B|8E?I~G7R(apmwQZvKz9w$b^-JP=s_AED!)pw zBKl!T>MD=dYx5Uw2BlJZ_j4^udINx6bjn8&+m+vc=$-idFO|~n?+)$-|Gp3XB66@T z(-I}1l4$bGcy1?$u4DvM%wD+4kUYZ(pC7;}IN`aqlvwjFbN#(`&lr>Ekt zS-=+32hJLqsh!s~OG;3gR}mFig{0Dzb?HKup@k+oT-Nk@>*gz_cPT=vLjEsEmF%19 zy}d$b^3&2A2K#g%Z?adlq-I<9rC$fvf{VF_ORVF*+^inp9()9vr;cqw(LU54vyl|^qicA#m_k+y@vyGtoJ#L@{_-%z_I+g+PF zw(K`mR#qT;RbTSIo|_ioXTiZfuNNAA$U+(fnnDbA>$aSa;+XT6zu$h$hnUUyNL6w@ z!+hPAKA9X&@*T{|Js$5?S)0pVd(_0#yJo20!{7YJ0JlLvmX)s*Xmk^Nq3sG+*hY{`j=hRJiC#G)d2L$#)zs7 z8oPz2Pw6wS5xudW(#7-1y>tao%XyEhWYLq4!@esoF@0G*Owo?{V&Z#*xI9r*S(wM3Kbj{_hsB>J@MTI{su_z$2^yD@vx^bz* zJw|Kaiqg5hlt-&^kMt;gU_4~@Fw@XiPW&7xl_OIs`(&EdfAo<|SgrDq+&wNgXUY{j zgd6N5h?!RFD?^{*lwUK|_dS@_fl*X#k>=znGqOhQ@6++mi;Rx(&0_1Z^OT~_65UOC2eGDk zV5I5_h3`F$7Wb_mzw>c>^?g)x!W@9j|yZ@E*^1>goIG@{(=tW$&sGMfB{bD-B(c3+v-0~mwJRwZRbob*X zbnz2$NSR2oDEW`F>+m~B3Fe!m^S~mc;a_Na_Nn_*Zyn;TyQbVs@!dj5`GFzY?~G*Y z{HuM8P}kDw>|VP6Xw!*R+3wY=B;BKCVC^hz;ssS^))0{3M>GFC@`xXFNJdha9IaZ}-f`UUc7dsV9+vqojJd zYr6i@iK=0!M8`L98aJ)6w&2&p>2&B#L$B3z_rwnd*mi;r#AzuqU2^GLy71w(KIVG9 z_}0B(xFkBBc@JA|I(nAA1!>-J@R%FPDQIkx%L*~)fA_+50s|H`$Q*EP#AS$DreMda zt4U3#iw(3e*%-|K#x_213|~AnTfxodlV0bu_tZ1naTWkFN{|il1Jy_t8^!~PN?NIK z1w}$YQRpe$-KG@=pX{`O|H9%%Hmn=Zk%BjveXrC`QFw%87Hit*&gr?OLZb8OlpwY}M4c|e8s7_bxmMuGl(rTbM_EMPnf zRzTs|<-WJo@WB?Guh@Q){h?O>uDrcI{g5ozKU zL~~eg%N)P5-uk14c=VlZi3|cq;ODacO%Q6|=)RlXkgV#xIA<*;x3lYCA&;el^Wc5E z4GnMsB2?S}3khaDEFK3QF9EJNn_J3{Q=kTGD*2NxvXR&30AmGSa>~Sfrr@eYu)=D> zd4i&ywwzHLP@gGnW!l76Sq1#k7VR#v7G3?>MnL1-bm(Q8OGKGpW zvGIBk3Y}9Y;}E%zAwp5SB9U_3wGW$ZvWqN33P93~IiFUzxFR=8V4K{uwVXp|vBR;V zXMNV*KrBU&n#!maqd8|}KFmN0^fF%CRtTbfKrDMg)xkg(r}*t8-jF%2;TK?w&lk{1 zC~V(S)%Vvs6(1e;@k+yLRmSJgIIdW`nV!$(+auqgWY8+Whs9tfJnrV7Z2be|3Eh1) zQ3r!eS7TM@or`KFY@tuN)9~o0V36WK6hjceWutpz3zPv&TO&WKX$T(EA&#bLpCVXX z6K0Xm=`mCxRc_p(^0bzBh4HaS1uztP+iP9NLICxR$t~!`iDH8onA&bS+3Mr&c_GmL zKAuWJLrM|zH4hY(nL)71C#Au^k@5IcbLe?m(+}WLZ%F5<1-#k_)Qdir@91^jP69=( zg!Vo`aS}eLa(d-hGL{S7GYRF`pMQK=l9sbD!zOVE3y7}zNAcMc(M=i+lN#IRh0Dp; zgCc@|L@%&pqXU8mvhB24L+jPww^E-PZ-zdg#O2SB;Cs`N^@uht1R6heZjzLsqBTvR zMWv^X%R$^9vWm~KMH@_8UTpLCHj=HY8aqK2BzGg~sY~61v*)`gu zN}=U>In zd!5hWG{2Si7}8?SI#ly*Kb-?jqE#%1H_!5zNAFt-Q9bv& zbj~H>sBcQx`>AgPq1Qz@>UXU!(TaXHT zDJ%KWL>B7%TGmQJnpr1@Y%&fxm={@yfi1ho`W(H+F5i&xUe0xXxI~oSV0sJIu%%?gdB5UCgu;=w-dQ=6<6U;-~TXCWDX#Ji6{?@;z4% zz~1?Q0?%Hx7BCiC(n$~J0Q{HZaSiMo;?$t=dx7r|I=7GOk_FC(mMWMm34QPOVk} zD5#QFrO33GeNk*@EoICw-UhbM@=`J4(5LUs0Gr)nl8^YMp}#xbrH^1-QdxOIyJ5r* z=D&w_*IKZd;TnK+{Kd^)5d5tQNoNGftkwODau#-|Vn0HSYxMIiDm|!Ef3FB+gRej> z6ns6vx5cP8!&>pXKOXhqJLOUb6rtIC*yMFf`)6+4{X7rUQk4_T+Cu25g2X!#(PyiN zn{AJi+0$2QWs<89vJoT#TJ6bvmu0H<8S@!CzYSk120F-7RprS6*zg{cbMK=ou%#*w zwMUI_*nX00!i`tOU+I({Nr9b{b>UEzXs@j@w@zL*wQGd4Jy32kDk3lDh#=yjhIAa1 z5D*c&G7)7@ZQfNNpNYjKiqi?}Fc1oP@MR-KyYXgch!vdz$E7MV@!9bIt}?ACBcpk* zuYS|(bBiDa$Ug)=yrj#6%lay|JLw^RDF-5C@@qaMTW^L1CgEppSb7d@E>#!rUIWHF^mEgXtlbs?na*go#bJ_q`nka*93+Xg1 zvd-vX_wef_r36l&pfs0xhRx(mrdzj=pfq9n44_Irjxedm({4|699Ws{Zeoc(C1dDVGdvtzBO_;OR~X~l9;OZR4ickZKp zUdjH=ZK&&V>eW<#i)=Miv!?C#MDd>4j~@B*6btvS!-Ie9Mtl;}=TimxT`^Pj{M#$w zVD5s5EX?r_=YWW8S6AMG?lq6e)UoEfn-+n+RPF`e&-}5`M|5?vq&0H!D3ux4o9%th zUDC}bDT{HjeTL?}&HNfIWbI}DQ-@~_fA2SPbZB{oBweR=EBcio4c-LGy=!*+n93he zOjx}i&Eeb=$y0jkK|OUArPQ1E=)Tx~C%QS?n9lBSTM21uig@H$%eG1AS)Td4t|y}S zlVnY~v=Q~MysIa?U($YY+$QCJ%ox_K7JfA5rYh}-uJk5(F7YV0+(C8m#2$TY;#LWS-;`Iv#46&}#j^S-eTH8YUhca8?3xqc z>!);WF)+f^$VOVpEPd^^qkYs8bNA#?OB!dfPPK@*i;2F4sox*EH|RaN&$!|H+Wj7q zKAgy`nTk%mt%x^|43?d$D33aGmS&DM)y)Qq%H&%v-@oI%8f~)6S%!&XE}JE2!OAl` zC^B66xmI4)aC6blS=QUlARpvGh>td7x_u`Z>;?{2as8Ju`W(06$-ez#WJ;GjcGnwT z9>p6jj-L2$>wfppy1S{)50%+Gh&FUl{ry(<_eSqBJ0wl}vO>~*%sQL(ptM$bQy}}& zo?p9L;4SVLExwwjKY!w^`rA=qT93O;Fpk2|+0JHKPc1$fN}bm-5I>iv-ublvu zHm}lWzy!Sd(y!bIRv_e*P$GnlHEk`~f&@$4?8r zhJ)a>Ucg!-UDlTtJ@}vCdeGU)XHUe}7|!sZp`+XV`T6Z;|3W$NUIY909Ocg>!8Qbq zK(~@Kcc4OGNe7%2kbW{NDj!Dp4^0>6C<=ex;S|14NO(?wU?s|Ot|MyM`Ydz5#XFVo z5KcDFBxD7TyOKOF03}52`-7GA?yne@+;dU346 z`7QYJTPP$)!6=xT+YZ;?{uN@kz{WF4G~(Cl!CRlGtwB>iAYS=6Hg4HK4uNx`&6u2K zEMBD`SXUIFBl7i%`D`;3E>JWDWkNfldOq=cL*!F-1j~c3;uHVI>7VPy%89?>Ztgeu z`r6*nMgoK9bX%|2O75$8{sh0?IZbB|rhHDIP!l@?F*=Ld6ZtS;Ovuz;*rMmLDjUIe z&$hKDRSzTc=}})c)86X1R3&g|yP}WM<7WH0_RQZj_&sv~!$IJGpku@b0KtyLODjw) zmA$wPE(vax<<*FLXN5SLJ0MzFf}$tm)ZRJi(MN2|lcTqvkVn73fx0*cjAqW2_MIZR z!|$=eyS@~xs$;W>PG0=7L8i1`W@Qy)_^GmZDtiVX#}z2ArA1(o<@k`moZY8&gNU_D zcR6{nR6%5eWvonP!kvRW2vsU`I%E0wflCc%3%lTqu{M20U}<^l*kCkkNPU8KkAeRK z;18&{Ac*iJd;!(n^~RjYW|6*ju3L6?Dn->>frXWcysO|7cxw+2weZ!r?}k0PDK55b zN<`OF@o{fcS2&Jj?jJ&BugpG*TEhO8eG5&_BS-%w;YnM|pc{yBW!*MQE6u1MC|viA z$l4Kr>5(ROSjbdo1hS|h#ZG*kmHPa=Dyu>p6J^jzG;25UH&oVLNLfrO&G$La?98vm z?^5cU+LkRort__RccnRFeY461Gs^bODvEc3g_zHK2c|M*u^U%6SY-D~Jt$QD5e**^H*IWKYC6&qaa`&cc<5n~KO| zMa_%`S+`5S@o5dYs&k1OcGouFRpows^_;GYb1N<1G3gg=QhA+;lOreYNc}fTBK@`c zN$Gg5Kl;}OrFTKKx5IO5ae;3KI^Ax%8($J>G>sO`5uAQT-PcC@bad0+(R|HDsDj1h z(;|e}ry;dkz3Anxb6lC1_YFv)#&kKx}uvmdbXn_ z@B1Xs+X1Ov-v)&iR)lLx|F+7iVT4a{bNS=v#mkCTnewkU!^fm8uV%S}TWz%i54yEh z)}K(VWd8}MYpoGnE2$^?y+1Y+xK!sc-O^6Q&_2?#V(B}dumSkSG{$xG_P?R5Y^@o8 zjOoVE-+(ume!B`eYo>~jGh2^7{S(-SA8WTh$)I}o3LO74hSd3kj>uIHbI*l3^ti($FQ9cfb#&9nTY_Lk2vjeJ*Rn@g>0z?Ki7~ z)k>5#`@4FSzSZnL7J~Mt$`*t|$FC2561TDvWVK2YWMP|@Va)0mt+|(RO_A-GxI{5y zwVd*tsBJ+ok}A%O{xj2Sy0$ndA3=7du$pg>HFEo-?P=h&lSki=ygY2rPkP^1UK5$8 z|L8~da_JXt4fG|0O*6e$|K~0viaB_Da@qY5*YP4>H~IzZgB3n-Z4n!KdNz+^pJ5&k zGrGOnuY3+(oL_e*YGl2dzurCDp7A@FR_#cJ(mTdA^3r~I?NGgwq$%L*(636B%|q$a zUwG5;Hv9NuIZq=^+l^J7PW!|2^(j})+ZL&z;ug6#6SvSe$lIVysdYbGU5GUu*j1_= zmMNunk!PPHEuhf70s!+V@Z^kRB3jmbh_H1IP)pjfEsrO^)y^ z2sH4PPVyd55OlgL)ZYpwxq=2ppO_#Sfn5Lt3f4J1D1IH2GY!5CV2R8d@6bU6WaCos z=nz1dj~P-HtSa~jXNSM#c(}x*5!Z@e%gR(ra4IMqLE)+00ffyxB*32yo!20%uiGXj z2lb57j*xyI47qtAJk1S|2sxw(0cxJHR&e1HIIGWNwS{s?IntYF6I~O<!`MHh zE-?V_I1}m|cu2d_-C@e*Kd<=H zzaXUQRi*&{W{tG*C_|Hm{)J$pgqqo%W(jO#H~)Dp30q#pE$%5Nj9A`w5qAnE_xDhC z7GvQxr>gb%&RhTJZySCMJf@5QhCNH>U)D9ZV~o;~*xLcYY4uUiWx9VH;t7`6un)QH z3@nsLbsLr>N+*yFRob@d5JL+V>0&4EQz>vup|(whkL~U=IX4@Eq1uAu!p|PhwjaWnJ;{}TG+0Qt_BO+j5`zCUu4)} zaU<7ghO12IX+nidGFhDiV}qa!QTDS=^F3frXz#iNO#83cn_72L1r%!&p!Lb+S+U;o z!`}5|omDDSjK4xQjgXs-f<{l&F*Ff_f-n4MygXs=#@N{O!=mb4_hrK~O=hPZ7$g*B zM-;_Vzcyb_9rR^ov#YQG4VBU=&zGQ7WZW$k@~wYMb`*1|2!9H48MN*qU0nNfUP|yz zYt+s8u&s6`$Mqk5)f>U*>QDQR`7>BIOEr=+R-eNLTW5_#>;qI=yoKFa(QArL%f*G+ z&nP1aIac~Vq~4!gZw*wfQ>^F?RBzxVPF$1+x9--~3c`HxsM)U~8YCcbK6 zD9$A(#_PDRIk0`$B4>C^`UK*i@e12=)}F;XBs85fhWlD}w!Yze#|(J`-**PK!i&1sIddbj?u=$?6bSBB%EB8$=J(*A1xUiI^M zUwK+DSD)8bU*`V0TfH_a4TR#>Z_||3Dvpet6nwA=t>t>4*t_O-73P>(xu}aNx%kQ! zY))il|AEKO*{u?BYbkl&Ut>g6A&uSGWzwX#Lr-IU59;TybVxO;(d!)W;HMPxwNj4o zB$x2o{;<}X?Q(UW=X&p=*H6KnftQR&cg+r(MmbLgI}TbbfA2r>|IP))7Kg7?CntLE zC2O@9p}Kz>qsI8Muj88cqAsR`>@6pWu=~xgn(R-GH`}VFMfr9w8;0WpPoF`7LdhVsJ&(H-DF1I` zw*Q_|vYKcqtIPSe~IXg-h$j|DAWv88+o{9O7#OMAPmaucF;Dgx@PeOi8|IgL+ z>+RF`K1lEfLnQe0Px|u@L8nq{Z619Pua#B5L4?6yIUK=#{A1H^`*YGAI3BnNrND0q zYSow^*~dolcss@Y@*9o;F3MYQe19XhKt;rL16hyNlID^My2Qa=|B8iR`-BJUCy3#w z;w=5PDK(s3)w&QKLO9`F9<=c*iOvW}{m$-kEblnl5^1S7C7P6ePuE!zh-FWe1WlT<1lvuMM;jRXO< z6as`C@Z!BY6-VJY?nCNM5XVED^Ggt8OZ0poWDbY|*xGQu$9oA>0JXO`GYS)-9){t$ zQ3%xI4~0%B09bOxOEmz&xEF9HYwj}M782HfC;eycU$!>5|SK#kZ%tGEd+o$9+7Nv7ageU>` zglbzH13U39;}+hN+R)9!PT)<=edZW7ZU-`sKSCf!6am2A+B}kTb$-BfXj+`&i(lOM zzg;-QMgCinh2mwOh=BpvI$%D59sU7%m`hkCe);84&M9!Dnp?&(Oh{d$N*VwhyVAbhe&gq% zfYGLAX}HwsK-bY52vHKwhTo8f+kd?f)?xRAj6^Lav6Q_KO{E8+WgCi194 z-&m?Msdy`Idu0{+r7`Hn2sagtKR@0n6Fcpdx%}Di6}HSBYbPr`B<{=FX)5(QeN+&P z%cy^MGYXE19Kj3Rn2g@#x30`dAGFuzib9vC_wy}#4s6H!YW#g8#$cyKYNKUS{qbs! ze!8BKGx9XCY>h)assA)B=rZvZY5mdMk~?HmW{miIOoGy@9^SaBr{V5r^U;?1kHe4$ zr5`8M{Ud_A@U9tlzPjY&Aa(A0hW;L7j&zSOjh`8JlF;s46B-zyk}KeARv{T7?(tx? zivkA@3vLTTQB@EvMtpj8&*M+@)W%o^5GI!C_F-gARVEMf>U$pP?9^n;x% z3K58hO!qwkxW4i7_(g_x1~Ck*`p z2qmf4?F;&&;G>;Lvh%!)^T*(=8d;d2AMC5F-9nuYacu)V6`?&x%2i2idcdq9vx~c} zRD%AZg}R=!OPx*1_yOAy>mqEzmC z0#aQ;lvN7H=N8A1tAOIwq~YQ2J#Bq!=76;qJHGu?t}U9J&gaB!)rTz8szjmIR3EVj-letxux`f{wAJdgS$z#SN_lA zma>w~Ep=x#x%&FrhWo`CFjbzlf)lV>1c7e z2!r`l=vMt~#+|-(ihm)=PUmR7lbWt?Ll% zI=j}@*9Bu^B)v`tHG`Q7<6C)k!8idGvRnvh>@Lj1F2>|x^9@HgCWv4P4P@Oo{TRtQ znG+kl2u(WAqFap1W(d-|QaGZ>aYVivcDK8`RF6Jz%P`=eJ&5-*kS`@ySrSOUEKG-- zlR=ygn{mC$0g&qTWA8iAN@s(wj_=2#9uAeo66+>wMl&f%wR0S7H%XclqflhfQ>>QW(bCPOq%h*>MRiF>F%SMbVpuE!cZ zTi1X_Hp?t8a8SLHX8;9@VzUEnajLQAsr;HUq;|UoQvJ~fxqntbKLvAT^mw1M*;;tn zSF&u@Q$G}t@48iU%H)ln35X=#|FZncV7F$N8NG4>v5)uO&kp#l_M*3$^mn=PUF<_i zXP+2DHbP=d=nsTMXNfC7#>R}mAQaQ-8`1~_cE0AzyMcg;%pQS+36@M^{|!rb(l$Ou zf%e~$@esXzhyWNy(TD-;zQ?5qz~2F$j)1Bjz9jgDKOgEG_s|6Y^)CK4yBN8_-6nfs z0vK+mVrF#}%BY+Us01!;zi)@K?cyM3Q)y{tjR69H{)6xXEPjv59Izzx=uCvWnp7@RW@LF|^U6dhSQeRNL#Q!JGd8pl`nW2ZT)l7d(m};GY{x z-LEbT{}?(^4{YDm+0<}c;*p!g=fO9LR^PA}Q3s=bp2O#j)YwePA2E9&8iDnAJ_+6$ z!r$5d5gifS*y{O2S^LD;s*q){N?(FCOG3WVt0b|2W`N|6PFG;J_ChF;YPjz5I0Vjn zzUCe;LyZY^ETFot3J6{(@L~)ne*UI3o08q7+_HHyoZeW-PE)(c;2tR>jgLOf2ts`p zznnLr4i6k44gAz<8*n!%4|@?r_z0@}ZQZb-#|09fAliOuio~OvHCtTH79t;GCeZ}L zvMsNS(u^MJ;_d!agEC zgC5Cyc2H!($pf_zW+`q^f1FAyMcTXZlM1CP)i%((&h8WAD22nQj5MG8nN!84i=w>y zbD~n^9~#L<=U56fVO(N&XKD4{F@*g$D6lR8^;{uJ(hBy$IYe1k*EYtM7d(CTwR_L# zz19Vw)W+WKOz{P-(A(2-bko8Ok9zN?b&&7brnaw`agRe!jitccigHA*#Xd#d{IlI> z9V}&+DRJ{PX+d^IA*YM^=(>vq- zWId>9Yq>`(yZiONe$%>Phv=hq1B>*IHKh`6OK`@?aV(MBbA|m3^9JKfT}v6Q8Hb=3 zoY!*w^)H%kgG*qJFQC&i^F~ZfgZ#tnv%YEGX3R9A)3pgcd;Xsn+Zb|B%H)v}+Br0! zjymVp%r;_+k2I~4^K+T1{iH7j^`+KvIh?^*%ebQc<BuJ*l$ZnrK4T-kS`s|&b{7EEb! zzMgfN%$E`KHjtQ_8&c4b6(J0B$`I>y!`$nAy`J%ZZu%IOPa3kBoEu7?X;ts(RyCLJ zM^cQ!EGJLwmi`?0JG(r!*3bSjpM4YlsHLJj#6Q#1QfC1Bo^@ZgmfU>qX201@^9|SR z7yF>Z%IiNKnB5N?>%OS7SD#x)!c3f4O>s!hx@(9aQPv+cN))WT6;egk`un*BHvVbWg$H4u>q2_$N-M@NqNQ^oGTjnKMLw!hlcB&>=09cabi(**uaab zrr3DYjb=!+sM?Ke*Xi9W;xep~hmU2BAf3v;%adGeqpHVP%aA4}1NQbz72MZ*29qZxFEDPC| zyz1F{t*qzdeg)Tz9deXS|JyrtZ=48r@j7nx323Qopoi2&Ajvb(lb7&(d`5hWL|%Y| zeWIQMKsXhk4j(=E&@B^6@QFhVE>AQn-u#D39~QF#7}{3QVgNTFo-sMGWe z|K}|Fico9m$!~)11W3Rad}_cbz*B){38?>r=|RK^pdU-%0t&c)nIJKf5g`;&G+* zf=qV&B_Q!X@wsVcb4g={Wj*Ba6UC<^G%q8m)rP7$=MherSj8pzj1wZf7cQ)Pm+60Z zJO5%)dPe*RSLlOWbDv1mN(iJ#&gN%hp6JU=aN;v;go?gUK#WiGyNvQ>0{ygZX@(~? zflIQG*vnkeYpPXQN+cQ36Z=Bq0cl57Ed8qdktRyPO?h89{+s>R%{4!Kvvtrog z*pk2Hl@$SrrLzlx_xC#1~*nAC#+cu5o$@K^rI<}O_gyLK`eHF9>; zO-mM4h(o^>eECD6YBJmIpPt|`B62Nx2>0j1yedJ`85f+v27P%(Xe}-hcS_cj>J{I( zCbSxrsfdcFSC88cKYHdnJJqCMWlwKTe!XgT9lGs_3^wyX3^?NZ{sT!F=uU7)Bm`H9 z+Ks&9IC6GL7dllh1vcQI@ZF&_4Gn1TNpxe4PKS%}XUVj9bT(r#X>$zN!vPr$bA2;r zY>lMy0$%qycOgua)}x4AXLaK(M2bw!`dsIYJTimXCT4Yl7xkSiLkL1?npss*3S3OP zUV(QmmM?ac0Z|4Ki1Y-$dP5`wtcP7U)>dM!wjiBoa1HJYAtT4=|ATeM(0RmUPFU?g zdx7gLbR0J&@E%qOL(rVV`- zwXpQDqKq%p&)C+$f6QXVOet8ryN85O3e_&9Y30ZCLQkbmcI{iZ5OvORW>e3Znc%E@ zlca8N-vh6vS04kL>_V7JOg&{}q>X#KzXaE>wR&>qnEz51yz+DA)vDk71jV#_S-0iO@;1nse$6MgRVQtA_h*GX~bhNJq2ZqxG*LGE4GrHe18dAR)n+XcUK?nQN=7O(;1h3cA6 z=98Uz>ZsqT-I`{xzSaXw7dDv&A?jn!UYT<1Q<6b5XAp-=A4vKAMefi3Uy|FgDIT4C zRXlo?-tI-CA>YP1Qto0QkB6{zOufukbmh)PwZS;gTcfU17MmQunwwzqI^ zIQ|BJB@jdj+)I>HFj6RO2?K6+nzIO6!Z#G${ItyV@sNsLK<6OP0J{r7p!01BO9I{8 zm~l{^BiH)oSGlj+rVS)coDqD%fWTRrxBmAXEA~n>ANM@*{I`5Yyk{=D>$ekcm!3Xl` zZ9q0_WP%L#_fVjHW@QOPNrL0MiM@LB4!)i4{7txq$j}Vqzi`Gpna(G`KO1nt`Al4K ziE`MCBQoZpG+RyWAE;-jUb`XpG3v@l)JY4uYFLWkh1d-|$vG9tMiJyNbo2;Tq2uRl z3Nw{2)y-WB?mP8a+MCfuNBu_L`9z*3$U{ib@d^}eGG#n)_&Ipw(dgSHb2Fr)Wh3t7c)Ao(Vw+&r-udN zi7YPLCK00M3=Cg;?2M~iCx7~SUf&3C_p&cr2i*K(nosO->k^)tKu<#-{np>t7g{8D zJ7p!*y+V?d-cV_E8pdx-1P4z)#q=q9)>QS@w=+0nc`AxCNbOAHM7mCNsFulo^r(AN z?${Z)*_z+M7(7%;?WaK9mqWVV4$iPN=q}&iQ_Dp{i0c~O$U=(UT8uwlRoLaiSG>T7 zgnXVc87!ApvT3Qroo*$oLCaQx&x>P*Js-q}c~cM}-b)SKjHKGBev_>G*4ro%e^5jp zP6$Dzs}J>!FZZ@?1(rOjA-Vkf%LT&aYu#fPJPP6?iT%&wGC~f?=llHUB6+3E3n_VQ z**)$7;2{vnl9yH=o6_3%xHp}Xig0L<H%(Az$y=@W9L;W` z(BF~%kr|BTz3-!&=PTPW%4BzMN%d~Kv!k2VF{^&~}aPc{B`6syURzH1hHPjgvFB44e&fsgocp4YIfs2r)h*(V2T<641HAd4k2i1+D zn~B6dbB6};-ffP>pXv@c+fOo1qg>OhSDZ;)e$momRNFdUJ|Bb2Xxb*xPe1MDv9O@} zRJWL0`Q}4XioVHhEKgvNA+@+{$fxlb&cEu$mzt~ufmP%%BidY#uBjAnDk6x#MZcp| znCrz0AMNZB8QQZ92EJcq`F!eADUX-kCZ`TII877m)si$v7ub8bBUMk7W%O_nTTs!H z*s6MG|FC_jSGa93wiH2=gHu~wEiBbjtt}|P%~(|9>D@&tCvHV9)$u%9cNo2_(bqSO zEM>oMjaY2gZ%e6UxXDrq^m$EWYn)wsLO)Qh`IGx9IH{~;hurs|Q7|}YZrQ}oDZbj? z@Uu6$@4ZG9-n#=iYdTPSSpeh7P_yJ3!pqL&Y$Lb*q5)=65&OSRgzhcn5LyF*TmB(> zY)LwFw?We_rbhja6&F{bo+8z!=A9eMu87?|cb#?E%!pz8gx0WOWwkt*F18?7K9qBLwYNQp>EGeV@K z8wR3`Zb3qjP!t44H>fbWyOHj082mrq-+jOKczb&7dSB;x95WQcZ-eN8xf^Ndk&ZlQ z1=tw9Mvr%cD;(7xshspX``4(r|G4Yp?S#v;o5!`C)n}S``SmaqLYp;l^)lS|nk3%( z1##HuXVU4+d#J0!uTkEkUow%?d+yU1SXD=%>CM>09{+bNWim%@@!ojCEp2*`!~Xe*YtFjD#TDy?(B%7@WVbf+V=ui}uv$?w|^>C^oU z5|Nb{fXciP#}c9Y#K)Rue;8`tBA#$(pJayU58g}gJCGux3_gd_U!!b}rvZ6+fE zK{^Zkt|aDUD1xycL?pojphu7$M@S6_3NAxPwZOAY1EvU;A-(Z@AX^x{IbWj8l+tT( zY8*{VAV}gRes)xzHhh4vrqHnk^nz8zntjXkhiLQ+7+sJrvQ=*usi5(}iTsRI^gJf+@WE3BE|zuDQrT;OFv0SWILQ{dOf*ZG=@1-+fU)0OhndF7qdYyo3WtC! z2+(e1EE~Bc4urr7Qj_#n?g)*iFHaDlABHm(UJH2X@U?$;NY) zh6vrdq25&dDe&&b56uAK-Du$*Om59PvaI_{mk(qB2XyNPZ&y}0(|C(YUX*d`+_5bm z5=O0zeaiG!K7*a{S0Ccb5m#nB)wYs8PA&)SV|8CU>~h`4;ip=ZSS*y%PX*yAYU=OR zv}37r6SuYe^5Q*zy#MJB<$D9+j?t15?4+alfhS$I*a8N+diR{~I0xrzMy=~!LQ4(Y zcA<3k_jIb|!eWzpy6K)Jl1|>+b#kf!=O&TUb*_Fkv!XYhg+d!Jr?{pmDrbizHyX1v z`Ez4+w7BPj8ml*&#*y$ z&mW#o*1;N&Gs!)z+ek}wF;wBrZC_`!Usrus-ue@B4LM%xZg^edf${x}i(@`iFpBh+ zJ7#-#9zQqDw`!FK!|P%`ts8GF_8$DVIQ#a+QqQ%WOm%2})@A5;)*&=#M<54NDcED^u$@MsZBX2i?_?=->sXR>RJp}C&T#pgP|(wbpChJ+ zw6>$$HO?SW$5^eSaP{1EX-MQKTfC6}V0el!pX+MM_Tfgd+Rd!5*@n>b4WXTf(~?ad z0l%gn;2dz7VpUQbRdmDduM5Q-FP7U zjxN&|wV#bIhH!Nco|@8pP|Gpw6h*D>7UuY@iVymG zv87c@Ww}oq8U_YwWZZ7)EZxmLi+(2E73Xd^)YKncj6Q-J0?S>1%){z{4VtVPi#J7$ zXV+y4)4K_P)Zjr=eX-wXWeb~0u0KvT2|*x>YN1ZA@jY6PEucqs@@x>P!*&T=M4_qr z==wRs=TmH(zMLD$RNw@yS$oaE5 z`#k_;G|xD?XG#S?^JB1cOiLAPfWSxTrmm)Lw}`U3HA=g>eddzL^51zo()2Ij^t+i$ z6+bPmxUEW+SzHyf?Qve3!Bo@fFZ(#pi01~S^xbM?NMC+SHT3iAarTy?i}8DudHdbq z$wmpL<89r;jq;5jbY(v`4i-1-7td7nQl)7lBj#@ts^D~YfdeI-hW8U2(HZ*k_E~y2 ztTe?Dw-n8PZi7!+7e)sM@oTg>A;?S<2hzSZrg?J%EwCni}t} z$oU^EI3u$uOX#?6-S^MXgA6e^cji<6PaYf4_oqQR2imcDl{-~u>*}{~a=5p`u~?w# zvE&L)=x2XQj!VlK@^FDvD0lZXZ}@L;wy_A;hV(^H;+NRAp>NHAY^l27;6Tjz@V2!9 zt32cqOLrw+@1nMOBn>);1BFGb`5|xQ5jKB{ zXN0B`$#MXZkQF__z+D947rZR+u8Jr^x`lLsOdVn>M)n(gOq7kcPr+CvPB=g?LvSOB zJ=itSCj!yd;tdd#L0%HKjLNh_6eyTBkA7(Ish}cn)+Gr^@Iou!-Z3wfhDovC8QAjP z0U6F{+)MSm2MaX?*>HkO5t$uy_~6G~ybP^LZozuTgipl;N+`gvwZK7g^kSbAjOGOu zBDMyBHLxJux8Mm-%&YNx4LyvYU4Y;ys4hve&qx~fNgCvtYs&BcXcuU44A3RN68|W$ zJECj=Yl?FQxlhjuk)x3u=CR1Qu+RHQro3Rcij8_VKs0>+W{~HK!iTY79O|(ST@)-~ zKvow;p2n3I1q`jBR7KG<heaBFz3!Y0c_jH`Qwo$k#o`q z{A9u|eY=~k_vDyJKD9+~oemKBmJ(#aURT;nJ|X(t*6(fw;TwwLSc@cT$B_8h5y@IP z957jS$asxIHdk1dRC^A&LJU~D_(&Y(>m-$Nn{Exvf5JjZXFU4##hoS??biJ9LAd2- zKF@pXDRYsy`FF||s{)y+1-cjfsGI?GkD z$agL6x?b{b`Wv&TF8WnU-*r*;KL-31WS6ROlN0`OX-JZcV*9wmOs84vtmHaTcdnE-Wjl zvnD+y?#g0mKeIc@8*DrxLw`?-tshg3SX+Ek`xQ0>eu znfOevRqgDUqu;AKrfwh^~t5#=zTG4jtxXN9ef^JW3);%Jhr6@5NW+q~-)9-#;>l!)}gKy#WB0*Jk>QDga zbw1-AuXoNcxvQ2>OsU5!PUUO5aze;JtWZ~pS+=D3f zCVlR$qMVigE#>CCGdz2c7bva#((LZMRvDWrS2r^R?G zXEg2v;4rg~n7)~eTi!hJYaKahSBO24j>MG?6;FG7@V>p?tl7$ZhFL*ynly8|B^oC! zPjT|c{_ZJTK}8>gc?EG4U$vwfco_n1KF9E_PBNbZf`6}eUC_?{y_7_eadP1_wgX!tHa^wy_NyEN)&sKbi$QaYFS1 zofB6HGwDt9iGB5OIuR)rAdgA=pMxjf%1Gj(q;1q1Ey0=TRb&0fsWXo!a@tnZA$;}W zt(nByhQWvx*VJu(Ku`>T;cG7<^q8jwI7nYMFSAlb|7o?gEA%<5IIh%TrJ2jO_MS`3 zQm;idarH4D6fWLr99Fu1q{(zT3_N#Y0XXr01q&d@nv0n~Lt2$MWAoAp12B`fyimNfzVnjJeKH!yk(x zJO7GeTiM{@ILYNk|bwgF1ycNVsceZh0!OoUUjqp~H~4m6`eum&ap^&#v$z{?|$0zw2N z2NZ!~1(Ciao*=vK;mf0N2Qg<$KKbqJIY0#Bc+6x$)I)e(PJm#^&eWI25U>+r{$fFr zR;2q-iX~APGsAN)d`3UKp5U{X-1l`9pQdb#s)m9PWT;+e5lmKNu>L8yB3`EDU7_X3 z`=T63S?_Z`bKb?^U!(b~hz};=7hWn#0%7j4AsTc*3Jq6-)#{q}$x`h(^-BjUQ86QOx3#J zE?IZGmjim3J%6pBe6qTPn!mQRj@RYxAWP8aIpp(W5_QNII2{%B9542r$lAF;_=ocp z;zh{^>XDn1dc!?7N7z3HcMQT0zQw9YaT2={wD3BC_piCfPG)PsH*7)YQPLM5SS=Ns zDdBo9;+oS4d8<2D!*@ykdQFY;IKuu#2?}x8#A_@)paYTTR zO@94n-d)kWz>GDQBgdEw!pebvLH4_Q{5ob~$=-#Br}XPVE1^SiKU#Silo^L2MtBY@ zH=mfX5UW@v9Tb%`aRi=F*QypRQ|Vv-E$MiNOW~U|n?I*n7bJ}Px!BL}7`qK&x5b-s z#?fzKi4HY0{mqL~??zc5v3KC1c+xxleETDO^x-5&A!71VU2WShU!&3_jc#tvn(5al zPld?0WB%A;8yNVxCZB)`lS103d1D66LV-ZzwRUldzeOc=b44X6x-H>)*;weq!W)ya zK0S#}KKJ;@l~;Mtgv6i=rG_8m@Aiu2=($!0$M{ISl>dpkeKpQu$@-;l^qHgQ8McAB zT=I?)jHm~)IOP8=p!Fw%2;p;mKAWqZ=Ppf6hWttuCAZUs;|xjAb6KapDk1%DdF;$7 zaefsI@>NE+g+E3z(tq(%?ThejhnB;mlr9!Y-tE7ddX#C%o_N4A54gi<&XuYUgBT6j@i9xYcozy!ol! z^V4DLbYE9lf!N`DZ5JGQ?&8fXVq&)X;pvpO-FA>%-R@NL;)Rv55y7OFae}yN)tQWB z=xkTxRCCvE*=E7@o8|)lot!sYy!DVo=4xBFjHycTx_izsz;YJDA>bS%U+f$Mxk){R z$Hml-ua${8{0+0?!1B838_-Mv5foII4Uuyp z$fWfUTzy_Q7E+Wx_no5q^r3>AqQ}$bN`W*#18e<{X!}@q6UN@PKJ==juhLOt{n=ou zO1+kVclQx%bZwQgqVZFIK0_}bMmZ;czUVaZd`*>3H_INw(W}8#A@+r!(a%S4O4*aw8`fU1Q3IbBx0F zduVY|ueJ~@5prYs7D#&D-al%WPN=)8L{`B-x^PK+5m!J63g!(nQxOUEDeB`jWp%!@1)SR6a zD!=Jllw8t;`XJR=eF6YlKaIxwK!7`c4dXt!mA$-4OqDuMOMSYotXdp{323Ga@HJ-M z`}LU)Fuha2*Ns^8&vt0X$#$sc)sA{&FXR^aR3POHG$b zP>N^(Pk|CqhC!#4gdio@!^gCb9hlxxtdoV}{lUu*9&W+oBzZiAkpXW4pdILVeSnWElJgH{pl2+?=S}c7jb4Ww+U5MFquFYBdLA+zEZzA5UZiZ2Y0~{}ZT^ zt^ORew~-f+hc8EW-YdF@XZRi=#|+Xq{y>W2M|te9m1gW2JFYi-QdWSNTnHTwjnu*G z0eEMlohcoBtqiC*8UOrwhi}pWLn8CQ-7)*PJWUz+pH6`gq`OdRo-~u9%p(sN{eBxm z84I#HIedm-To8-_2dg~1!4nwnT%!I(2VxEv_I%7bp{g#Hwd1(NGavt~*0B{*nn8wT z{KJr{1R#!dFu@%(?~fM%@|jabH&jJr>94o7A17H^j5KA;BEH>@H^zP&jpP%jv;d4$ z0|b+IC|+eDE5k~2C5;Y)J)Z<~^iAT)f(D*`8?pV6)UL?>afC0Bl6gvx9?q6ep>P;- zvqkL}sddmwl3%cs$X^!jwa+9ICjjGtijn4T2@&L#F-(iF3g5^o!VMqO_Lr@kYNNE%PB&q2~$FQ5pxuLD-M9 zcId|kNcF>#QAbNqOL(5Az;q#zwo3E$o98n0LD;*8ubSiDSkkHR^OR$*7rk*$`~163 z7Q^5dLe!WhBa4EPOP;gWTn~8IgOBOoY#N+w#d_xt`qeser9F0#q1n5xu9C;{5Bu*BYIhAQ4bKa z9A`zlrOz2k9SCBYA|N|EF_!nrMAO+TUBB8A+6X_W&t3G!2!x^4mWoe&j%}0=7SF3_ zJV2enyLymX&&OYk=-Vk_`e$T;t#=#89`W ze@_)_kez^%`c5&exx>OoqEML}qk3!%6I~S1l^OcajYFYXtJjbOnX3y&w6O~OC@oc= zIkqJS?%F0*$rsz^P6{ijU3Dd`% z{g7_6SJ;;b-(#ab;oaG%ixP@g)4WcBkCp4OlcsjRay@&9ig}{>j+SFCF_M>tufw+B zZsB57N5zq?sM>GRd*M%Q>tvL>(v&@`tgf8-P7edc-)p^wB7ux?)1zN%8%;yV*FjE& z6D6c|%L!YZmum+mb-$zzs>%UQZp=h1dw6LjI(k|*opV#J4JW( zGtV}8O~!W@=D5Dmsqjb!)};~7XIw8E_1)a1e~N1|k23H12DvdG4!ds$bT5`>`HQ`+ zbM*aW;P?qxJ5&AJGa_Sis$pw6DeK(X(T%NOi zJL7LH3%HBP$)V^~+@S2e5>;|5xelz$Oxomp)}4D%&yjP{G_Y3JklMUJopYj`coL%h!{hvX@Jey>{Rt}3KNT>3Tr+82tU0A}6{K(6|^0~8re zTqeeQhy!zYd>fsgc>5o1o<--QF%)^_&-IaBK(#$c#+SMA(PifOB!h{Y&&cVu>&VHa zZ`9sxW5KTry{D%asy%i!JbmfMYn)o`K&ucit5&Xe(A_0XGjS0(?v0Sfvr60pFb65is?N$KLvS^nZ(9a{ad3>r60M%wpt&)79(d_5)B z0D8cZ@Q>YSp`aOg%;OC)!Hq>}x5O|9^sr9-T)x*>s*xo&)kvoqVDdE50e|&VrP{`&5 z@z?AU2is?Cena$>s7LIK1GdUn87bj2>SS-|#oAY|t(g|)e2xcrLaAC*W=eUk3Wr5n zGH%46jHqJ-b1B@M)S^v)8$3a?g}x`UB+9267dRycBwyMK_3vFgbvl2~I)(X(&Z2k& zs&ug5v3V(SmbpWzf&H}vidYO5Xc6?JpIHEZ5%zsU5i8OwN z!KFhFp!I+{(4{%lROFv+W9s6%=Sffry+;vpq3l`cfIy480VDdD!mMq+u@Nrr zHl9WD-!>VqHP#ZpI8h*yI24a~ja@#Jig2Ik#we_Idbr0MjaV?fG!~GxL_3~z5M6$V z>k0kpO#_{>78Iv8>gy4TKE^@J zh43n)XGp1^?KQOai|w`8$fdS4gJm~-YP0G}kW}yy!scT7e2EV^;BTH@M~R2^+A8Cq zs4|u%E)#mucpUG+n8AfI9Qt%g`FK?70bZ5?)XQ?bVvEiE5%7g^{G}%{@_rQr{h4GNh z-n~@v^wo_H^mg-wx_3L~Z#i(owPuSq!gE=5p@#tq}0Zs#+Nz+gbKKbiwcJ zlW9ufne){9q}*267aQShOiN3?^U-S}o~Sr-Jae3ZXh(lgu3;y_Ab(uCbBJ@=H_Ifx zRPq}xG*j0Tx(-ctHfC@%1h}$WU+}f{AH>^s)Jv!3ZdUdVF7S{t=o-%k|TH z14Gg2_w`}u?B;)9S%FSHON;8xF*FXHfYVik#X5AhTkur?mC`dj(XD+bS6WWXkdNTR5;I)a&Jm<>{X@IoukA=uSKC$ zuCnb#&4bDG@2yjQ`pI0=o?*sy*48}@c0-=?CSeOZXG^Ru8am%6Uc|&r$N$$&*h*}u z4lOO5GN6Sti^7UGd=zJz=iTOYs--8(Zm~7i6Uu;vW%K{XQUqCKXSQhp5eucC-Zo1> zT?Q0j);!=onWxc!lteP-I`KF8{qoto#r`1)im>Adr1oemiC~kKp~h(jnvGvO%b@i&O_d$jtK#75|TWt{PDdq`|!-B75!zdiSBcTwt0fc8@lGb&P(HN{a9 zHROxl&4R6~N(S8{z$w$(ADPF|NSts`B-9MVapq{glhy)6w~In{7q3fnR$D_If7@uJ zFm{F&>1#rX)4V`LJupt#y!36j(IrYb80=I1u9+Dr3bJ)AuCzKVo~ixc?v{?YsveNQKp^hFV!$de-#C!o z9?TK7M|=+@R(jvgR&rmOS`K8}QU<@;RCs&wm;9*$45StRL70SUc zm2lgHt%M1XyTP(5)F~tBku*vQNN6qn)Rr z0iz`M#sDYki#wl5)`Rh8u4$Qe2>cb@!?%?8i`&QsWMUE;<2u@L;RNRm4oI+;X ze)KM0_rZ2gkP4kubkk3rqHx`%@ZvtoFtjWZqROd9@v+6}WKcQ7dj5X7C83=yEe{?x zQ0N2xktwW-YH!n=PlRSZhTt(fwxajbcD@$cyouBQyUEUabq!6mWs6vcOCA}9lLuzF zOl)=Ek7En9i53R^Y8uuGiZ|%1G|^P>1!tU){7dcJl{#%h&mbEj>;n|M8LKb(1(xwV zDU=sqkflj@ycKG?NDzpj7hPnChY8j*B8<@TJCvY$OgA|;R%SrIDBR*AoD@9a)Jmbh zT|jopzH?PZIQS?zDxxn+8Z1LZ(Y9=}eLmUm50zO{xk(DUiNp5k_j<`Ur%@26~{ z;`!|UjI31}G=FXj5h@n6Y^{09dLBi-zGW=lqd|1JQk}73AcP=tEc?J0G=su*mqsy|!bvYQeQlY%ox_@f=W~m>JSSnupX*hLL1SyvWh0;00hYte zmVqK#72MKYv=a9@iert926V|>b5+K^N>@3WWE6f0g9g?xtYPcLM#xyA1IBfW6Qgu+ z-y<(3uN}F*G*x{s{cNxAR%LG_UM3wdk$kht&J!tg^mWS`_bIVE9w*6*jknhu|KV!v z7ts{A-M-TnigQ>?bq(zINaph~GXh5YPW;ebZN-hFdTQ8uVG=Op6hA4oZI&pvain)q zzuQT^DgiVR{{M=lsmfnb1iepqr1mnVV%qReU;TER=U;9`Ba-^WgbMEMuI{o24c9nr zu>(oLM|NSQMq+yxp)6&6YrCc<`f?+rw+d|7%<>bQ`)y0Rsgv3&%Sc*L_e+-EFs#k2<>HY2?Im3b{M@>e=*Sh_YN3{J92 zBKqe=gvXqGEQsqX)Ad`GcT?$~ZP`~{Jx~udnTMXCp<27lOrF*sX5s7cslQ0-cgIiB zihI&Ltbv8e9xI)-Wv&Y!Yqr*%+rPz<@4$Ad*!oexE=Con*+%Q>_iCGk!(Ile6J|`U zfpbR3>zYLfN#6={-#b?YoK;W1k={Dq+X*xTau$EJ1FjFnb_agAEdTzyl($g~)^JtoGPqMyo;zTzmvLQe=dw9CoV$6hIJh($iS*rZj%@v;Y^%xQ3-HLU z>4j!F#F%y?6%)Up+Y+-Pe4_P+q-PEbdPssE$y~Z>&NkXjbF?MmO6o0=4cp2&4f!=gIrAHngcewm@b+N(k3P>j4R5NF>B@ ze*5O81wDvN)%G*$f!-Q)=kmADWlq&guhM!n@n}MCj>I@BB?DSZ0ArV^C3ayC%lHEa zaK&5K|Ii+M8)yA;qXYaG*v5EmW7fL6&TZE6KO_OyW0JbD!iurbMSKHQo~sQ4(29LKo>Ls% zWwvG>dFh>fau||+IeqDz0`ptO0o7n>%lQ%62793un)3a*OOu$alNEaew2dd^1M8yZ>>{2|E}0Caq{8j! z*Ah#^djD8_g;awN!EyLBWnh+g`N=(>XXt~s@IP|XQ~#W+hN~FNnec^K+9V|HCEY`#h{*(|49H3kO@xclXf&s`;$HS#yO>CMB23po4_Kc7sV(N(L0)nRZ zLr5ZZvQAw7tFifluJx2)U2&XPjLdyyf3=C&8~22}6B#UR515$9KUb^}d7z;Dub!|{8elcJ&nNYF6LXK_JIJxZmJ>doRVt`nnzfc4 zU|0Qf=Fy_dNiLi>@$OYdw6?}&lCu+7XH>ui!X1xk4GI0N$(K@~y%7KIDt~@`SXFB*##a51JnKiI*|8bC?dQ&6 znaFYf5`^+QR@yAmuD!c|D#d=ZbA0htRu7xcOeX<0r0U$n>^Zp4wXKT{R~j<#_5lu( z5P5e8L!CMC-Z>uPz?-toOSzP(i6t^ick4>NH?&&-%~$Mu*3O2EtG|95~S^XH_am}WtO-E?Nagqi6~@HnDwET8|hBWsnut}A$&9nmv?NX)K&^Va#FPAw00 z$KvnnZ;qmf8cKy-_g*_=HjF<&i_i^>8@^D{wAPvKZ9e?4r5C$hQP)>{T_|w*lZeu= zk0{^sF!Q$ciOEKO;DMw6Cl1Xiqlw>@iRnGd?n?uA>KoYO0;2dr>uRyz#k-!RAx+Y| zF*}{2G0*lo&Q|$u?6sg%t`0KaPB4MxOqnaM#;05h#Jf+7{hk+3lbSgoW!y6-zvRR` zI_{F;*Y9FU&p){tn$Mr_9?d$lo&*|)%C&B-y4+hyhk4V*9l!~059kw^i%L@+HECeh zN}5>PlwW`1SeW7?a>8ZA<;~;@MTX8|c6hc`Os&r@SxU#WX^h32aBnx9IhiKx@l3|$(SALZ zQ+sGJj?~c|3A9$YK5TWyHWF>01GMi%_r7S`{vGewS&=+qE6)x!B?*t8X#HJW48!=| zPqE%54x(8Gh~}k&I`m+evpHN?dFFm1Fx#ZHUeks(IKH}W2RAPLa+Z23u`_tc+VIKu z6y130i~LWr)f(u$d!L6@{F$cI^)@i)!d0t~cOy|jI-YV!>#J?G~17uR;w&*Em} z@?o~8uD8=uv@MAZ7=LJBJO=8wUd;!XtFL2tW2CPu3jFQICv3CErP|5s^}FI-SQJdc z+&dz9TU0{9;Ex8CU@=e`_!W?p7ilS>Mcf>7xT2=eczJ|!pozs|Llg?W1Y!&tnq`Tl z09is_;3f&b;Uxx_w%iRl)=pUhjh@!>G1P!&fR9G-Ey9>Dcs=Cl*Rc9za5N3`Akgixs)Fn*$Z|a1?zU1ZXxc%!0mck2Kr{G)&rrB2 zjM+RY9ASib_J`mHme4^>s|xZ&+>~V-^h&7(#5zG<+ajV~)~GM&7sJS+U<)FCh!8>_P`j z+?C~%VS()Tgl22Gybo36Hi%wg#x2v!=RpZ75Tp zZ;fu+hq6R*UHtW?usy`bQRGa0>R#r(QNTZ_u39Dv{dju*XUYEJqvmCcz;^eZt0JM{ zWUB@k%ab0?gCrN?st(s#E=_&vwDC9a`gfRrFMLr>eU&yEtKNq})1TV9HD9QG;r{#r z$>cahYe>|h^mN4qX0yU7GOX-l6lGNw!*U)jVEGApuC^_ywLKtTj4#y{*-_cTk=aVb=7^iY;$k#b#&5!>S&a)lSzoj;V9dg-y&GEup<|w>tI& zqeQ#>%ZfJcm_*135207Gm7_^(920Mxpu?ls&ui0LCG@#gnLQedAx#eDzZM&vTq)&x zW=6+k#K|ZH^rGx{&@N5A9_V~!Xh4OSV0vVaJhu9x#lY<-RV*=g#iCWq)Ww0hYjhP{ zOH*sZ%v7>U;MlZnEy%YjDy|QIj?)Y)3eyq_nQ(LbH>HxbV(F3*+uL4UZJ=l$m|zs; zp}^v*ZFUZN$U{`mnm8R$M$06o1V>Mt)XY`U)NPj3&M@0K?FV?#Iac#w$VXuq!C|#)Q9F9ZBV3H z^RH2lJl-@j_>(lhN3$pGmZvIf{papagPaYYmPksb1r1X4ibhAQ*83?QL1uF-k#K9iZs530Y zxp@~z&@fqbOBMq;{|3&n0F1ripUrub|L~m4iuB9Oovj+*BcvmzW8ufgVgc(Vi$&Va zF~fwnPcFZl2QOZ&eTzQV9XYvCx+itAG`M0iyp#>meE7q@#67S(Xt*zP*cLPQsm`o+ zPjd0U&Nv4-D}yrY(?@ksNqFD=t9nZuAWDS4^$QUCNDGK6qy?h~8*hX^o;8T!Zv3N) z3|USBni#*6UitL=oM(1p+Ka6PJjMC|#XQd4%5+N4*sxlc!nr%`hG)m`5ial%ov8FA z5E@xLi2b$%<^2M8zLpoVosk!+{}+6W3pRLi(aAn3Qt#x3>8o90RduYA@^y34-i`D@ zinbSFyed^P`{AvhE1RQ*m9C%shqI0^ko>;eH!_FYXz;VVsi9+k=lRp?aKJ;TVKu>E ztWii{*VA8J%=1OVA?=@a2`L|I7N9kx8CeWrMV36KE94fPkn1iK$Mhe4cPzhP+y#|CriiGvtW zHz4?-I`hBojk$&5k~12@h=@3No+79TO-W1t*(d z_6eYc%%8=vz&=EQ$~fFA{)!-6J*)1M$G1Qo`jt?x^Jx6+sYyPx$dB2nHG?l4lHeQ5 z%sHl)gDmg9K);7Gbmy@^S4KTIiRv&UCd8R-l!x39ZOd?tI5a|JnSjZj=y89Q3LPKp zSPkd@PweWNPI6mGD?mqoH|1t1(F~;o05Cl`&=(rUhhYqs_Bb6lN>v)2(lAB!)rJWV zAGIFuc-dmJ$oiS%6jWiUuzj8KXS z^$@XryB_c{>R$(QUO0nt1_R%sag71d{W7f8})W z_M>3t#DHKJjoY!gB!CjDqn_k zg$C8uO}{)QK$Xl(zK*UecifkL0{Le#8qeUMH7H;{@s^Aeb#5a#e$Uld=3B*iubBhi zmuaK(nN&B-qHpeTrmi8h#oNBc*GQ4J!Gjnjz%$Yrx)>fE?jzt_}W^ z`Z%R?aLP@3sqW)$YpUxG`}fXYdiLxyE4x(*PRFBKm@$rUoVcY}#G7aLFiG8bV zo@;!!L^C5W?D>m(3_-_h{rw)WMGyOVS z*#WL(D^<>g%XMy@j!9#Kbxmstj??j)s;1SCd1KO9Y2~+abNWLI#4dXZ#NO$>+OB-W zD4&23SeU|)wVh(p zc9emx{!yY_)cG4WZuVBw5Wdal){Dze!(KVZ{_j4fpY=w@W3Z3fbF|yYYLRQO!C(HV zU@co(f4xYW;I-z{pmqB}f9*@bvPy@)=3ZLpTXSU^{7WuAOed=!LwjoXPj**L( zN71F>`1wM63|cEDz~28RJEc7>$%tfVSDu>B@`4sHKJWbZLg{nS1f18n+ot^b1p&HC z*-SNilXrKS*v{rZ?Q<91;~STMJ}=7!!c(VSP$Qds7WEc)2jr_ZIN)B#{g{Y=Q=eJkHLsuh4DEew^M2d$ zfhi+9Zu0?Vw9Y;_ZI=l!BxicCJlAgEBVaL#7HYU$Ebu+M7Q5)M(-w2FrqO&8!`jXt z(KIVVBVQN9OPFyO&oHs1BjmB}VbodkDcPgrX{(9$<{lrFTZa(e2Azigf0b*qM{j*4 z9B+}2GOx`rc^f}$Su;QDFNxDriZ&m7O&#AyJaPie$1y<#H3?2mvyDRZ@yZRc#Wi>K z{#oLVUP`)cLD2-PUZ4B2WG+QrRtwURdbm$we%p?1N47DI<>v6DPYwZ8vEDSeB3MGt zn5`A`r^RtW21LMs7fJxTN+eq#Ok$@+St0Zh;5dTwJ2fZXh-q+9i&WO`p&q<6nH8b9 z3@Hs^J;rFIqlH@@?L+NAoboV(A0ZRDOpPErgnafBM203>KmukC;zko9?#u>vplHph zaT!{Is5_l}s}sc9N%{$F_(kk;a-d-_UyDOCB|!^80HF;eEuN?4k@=GrrRLFYqL>4d zS(N!g;tgKo=#p`^#55>%@{TGt7UAiY3mG2mTvdTDkWUXYqREKyCNSVKFmXsWsCDYQ zmXAlI$kB5;oDI`7Zj2uPBNF#bSlS=&be-E2WDYWIrGjHPLe$LsmEVB;M*91!>>vYC z=Tvv64vqXe#6*SAzCcCf&wsOJ6$%3;rPP6&4%>u9r+;kLfi}BDlCsPY<&l7_673Mq^KSsZ6 zt}hOvp7Dm)QBt5hi7Y6k2{5&k{5f1Ggcl81IvDF-a4$Xrm0kV`J4~M8(mxm2 zZM~NzG5(YK;<^78{WP0RTwcrDx-A|ivhI z@7Mxb3F7k^rD6^>qX;oM7(--zA&hbb5y~g0cwP5!IsbLpFADd=|0C%;cs#aC)k=RsGReOt8?b=ijrM1N59Xs|{?Y;M^6?@NEPk#UB{r&3t-1l|d z$9W#(PaXf+KuzQh;p+HPVOwd%lB$C5tdth+CgfeCL<)HD^-qdeD=j_V3;@$;dt3xQK|P;ll~Ao<1Ga z88r)!%oEc^)fv8hL57SBUd^$29q=~#2biW7F7tGM!6-A-5y`eIZc%?tB9o)-ZkF&< zV`Gmo$#Ro6$GyaAxC%pm@2IeuKrqiI==9OeBk*YrMJPxS&-$6p-Yn& zWwVb4_{DP_XU+sGoL~u6dyPA$>Wz6*dAIi01d#9zetD*W76!V3i?r%K6e0LYLN*&{hjEePrSG<_-QM^B{I2`|KIzGzMn3Arz_Hnq*fgAii#5Os*HY>tD?KTp z|BZLeo9kY^&BZ*wPQK@A=RAs9f_9~HOemb_f5$T8-r8BWGws@Oc2IKQEAalYA9*&; z8vx#VJA!_vZ-$BVy=K&j#l>4iRjSJ3K+ZB|>z7NoXqOplK3Oy0Z?XpN&hs0Kcx9QD zW%jL>|5yYuK8mAz`Zs0EKB&@BY}B<(S7wFEWy#fZC2c{ zGQ1|tM*DAwApaf%Ys3{9MOEY9(ybPl@z{Om4GFTtPb(-2*YBIJK8kB$HjDT!PZ`u* zcSX$-JF{xS@{vU^vQqA%c_atNImolN{h#1cH`UzM7o>1X z7b#fnBQI&;t>>=CmatDq?xUVW3Z(GaCPPs}7870ONBBd?Ap$d9sDuN)I~4-rJqp=n zJVY=6^cBw>*op8_24sVt#0;ZYM}j{n7yCqgF~^6rOF!`dWSz{hOTTf|Q5J1Yq= zWp;E5G#RLbcQV?Xm&3|e5Xvynm&w}B@4^NayB99 z`CZOhEtJ>%c-0n|whep;x`0>Yd$;qO9)+Qlc-xWE(}O8Al}=pA?Uan+O6OLZw<=hB z3gfV8JfZDGRMc>GrJ80h3AS_arhn2P=cqx%LB9kWEtp+!XRp@pATjsfWrCWfVe(NK zDl$~rz{J|A@i|agW9zE-?5pPyK~A#3&JdS`yy<#Zyfa?9a)Xtm>Ucn zrjP;ecD*UOx6vw1G>z-s7BL{PWb|-v3hXicG43O8nHo}6bdMOC>=+=x^6MoMmUNO(v?5?{M3)eSUv(62^X_R^3uI8esXoP+;#9@E; zI1;Tf{{yqu%}nE+Y$ux;-~G4yrTh!pXtlru(gBdotJ{s73}fd_lg|0p(&Lrb@OraN zK3YnR4H@+0^mFY2uj8_GVefT0DbBJ{>JXNHTMWH{FlD(tT&j%e2)`v-T*Yi7jdxA- zA9M{gbrso%FzCh10Rg<@w=*WdhJz1YTKYeHVWocdd$|S2j)XXu~vq|8h zf&8>i55LA2Mhfd->M51cTVpthz2|o3?yS6j$^9KC_L%-1^m0(o&-8A7(dSJnMP*g> zH3QR?eb0UpbTTMqD!e zN`>d3+>~-hvN`CFAV-Gp+nDYNE#D?jUXo@n` zMw5DR49s@tWy6BPtbX1}Sdi!gO9sX-T6018{|431Iu%bFD!{8l0?K1`ZJL?I{Jm?6 z{nGU~lJh5aqjo~gV<>4|1C9BgA~KfsUXuf64u8K2~b-42mQ zIJ(NR3!(jd)6dQ{-1_2|kb*=mPc%ELHNf6oW;7DGkgj*@|0_ngQ?T($PjVCFn!|-A z8l``{+;ZF2_4suWf$74@3>gfN1M~rE{VYC)IN|=^&4u-Vqs}QNi{t4&I|8XGv>xUy z?{j3;_#B_}oa0cyihh}|CX;(>_Wwe=QeG@KjGS$Xu68S_strVF!f?fPo!yy^u-8*M z%C#_z${9)2uit&W1=4}mo>JRYl1BwwBKF<&lC^iSl0K)-ZrXd!A`SbQDW)xX>Z9yy z&)sT2D)zxdQQvSO! zZtDmVH?J%gRQ(*^(I35r_G=wqpI0(BalU$3ow?cA|39YWLEz_t-3hipr}(X$mVjq| z>tXt$P{TD7i(9~{J9$NWFZXqvFybBbPZHS`Gc&;MI$jX*0q_tAV2?wTw+iinq~heE z3iUvDAl^CfCZ45RBKt-8dlLqAkE8$4lL+1HB^6Ym+TpYJmed6I9 z%atC*PuQ>|H{CUMcD8)OcmOgs14ygM+$ku#kdCCQ2Decg_rc4}p=bc;0)p$$XWytl@cbOBjNz^cAF6Y!X>GbD*wt_-| zI9suteF#kN>COZur^M*p1C(ZQ@x12kQ ziYb9udx3EKY>^fG__lo;va7fyzrUre_HM=6&Q$dg*6qZ{q%&W4t*&21Qr)`C+7KGA z$$DKq^2hS?bP%#7WCEaU^w*IpM=>AA>(iDuuPCZ((1z+?w5O+#l_7ky_7>aA;-o?$ z!tWhl)Ge2r?e@~unSQR@;!4kgPN(x%bEWGbvei>ODKT2Z?`zr2fPBEW#0lq{zF>fj z-(U)@Pv>Wk7=34In6g>#nJ4vXr^SxG0#yIpinQH#i<8dhZMtSV-L(nu>)Ra7ovza) zet>~rg1J^_cuY-tZPS|vvo1x4@#pO({*m>-u5fCPlsb%(-$V=r!1o&1iw68CF;JZD zVMj}D+}j<kki2?D#Kb6QVKh(czf#gt1eMmv)o6oQEYg5O@Wz(?Q%-K;!u1>`p;?hTA6$ZE9@8MmORU4PijuKa`na5~Z zVFpKH2Gk<%Em%Q!p>@d&C?@b~K7KDw*V9W6GELC?(*wHNJQ^#NOS{f;{&N)KNafY5 zMQEcx@UhfK-gE4Gn+t8|6by@(bipwbL<4tcVlPt zZp>$W;JlX$_e~+|(J)4X3GN&hkBTa3cTKF?{?9A2+=Vem{zSKdc)O`i1v_TOg@$CX z)10C#$I0Qj?%AM)uGaxAl{dvHvar&wy@q?Yn{c#rimqn&D22Fz(wOyPF!E+LkVd0+ zG7?w!eLhTBG1y!Ga&7vY$LlIZLXeg8+!1J9J62wB;J3G-(E!wBuuz+4I-`RZ2ZuTe z85?qFy252$GSAN6Q+vkr3{WqEHJ55M$6H|e1^2JR3hqA$ZA+Xid9xl$_Mi3fC%Otg z;@^(*x(M)5fIE!rUe3COz$Su0Ij@sko0+6>f|v}dFUA=r+Otixq09*`UYIAccb!je zKKecibhCJr*(m!!M=-jr{++JxMyJtL6XS}ZTrGJm4qIh_Rq7J)z3#ueDbs>?SBVj&zWCd z+sApUC`?~LWJeEEUX7L?mzt-0ug%xFV=F~|VoN3WQl#8wN2+xLM#bVGFpX%2kEXBs zm*{?Bn;@#E{;tux{*LJrm`VD@on*v`J9OBcwqr^BY5? z(e)c1VcPq?{rbv#FzLn(UunkKwb8e;2CKm+xAo}!sC#Fhkm;sEBGfXfRxYwE5Fy63^o02Y7< zm{2mp7Z442-iX%>^bZGLr!c<$+f4j|joiK02Py;*18#D50FpLHvVS9QH>2SSp_dkr z-7?m5f=)a{iOVwzE55_<3@~UTvK>YjI6+~P>+HgvWLUX_Yhp}F~ zjW8s^Sc+H;IsrpZn6KGs0d~YPp~-jCsWHX93WP>lp}vZ*0URX^fWs(zT&^)U zE8rfkDiCQ1Wm^DSBh-$o#;mIFRik zAIIlUNwP)hu6QiY{`1~oca_Z?&N$pyrO^mM{Aw_iuApm8Bm+mBThnn-ws7PjkWK;y zYmM}Z>4&Ux#Bt<)N|0u}%U*qv*f<3i?wnYmt@!U7Kh(P(!T6f5jG`lWQF}&ESyoi= zZA=(EnLo5_oxEwijzN(kl=it+`Y~m|Ws*6iygCWOm1Akkb^XVuuOC)8t%_x*=ol|q zes25P7ECXfRgDhJ14`8mVB3ZnN^eKzp!uA&6gH2-a^Z2B9X)^5RoVHRQ7_j9aSfZfxE)V?U_b3&(mBx>QfZje()~L zETykyGLlnGlf0!hU1>Fnwdbo#Jttx+qGl=DYJVBzm4~`>GQ8h>A9VC{u$eZ7nG$XA z(f|+6FNVd-n|YP7riMy(Y1d7o6gBwH4V@{PPzrZ+nGLL)U%JkM}Z}Y2wm^uV5z+&dn{dc1@ zyl6bVcHCS{alu7nH3<3JYhf9lCogjlW!_GtFxV52n>X+AH}unf`djlAWBdlaD<&bF*P zD8{4Suyd`tf5*>p5po|nKj!$9+Fh%sj1`$7f6**?dMQ`4_n?7`$nN-DkZV_#>V#8F z*Q=KswZ{@+{8W=8Xqbr8vZ*2%?pSi_CwuJL@TmxAn*I^(XDPpt-T;dC`r*s8L73EiZ(73Sq%u}3})4W;SrEYumC_bQ}CbigOKFp(` zgABchdLbdX?X$&t#><+uI4|gznd{iov0(IZCTQCq#3XmzI+jN12xc-{ z%2iAa^Kb67#R35QyP0!9# zGGv8Q+&Oyihts8S{ke=MnUv#t-{ zcfM)-b=!-aYt&I*E`l+aPw~0kUAlJWB?d9rodpHgB1S;+-vR>FqBrjs>D@L;L=I2$+*FY#Fthu)obzHe*mj)Gqx-r2?Uko8$X@vS zzmZZ!dv{>cojZeX9Ud0kIMix3t1@Vb~;>P1mh$jXUQ;VS3trw&tX8L2_YemMR7S@wq|7uXUGs;YW|!hK~Q4KpnN z0DJ_<4AZnmg#&0gMT+0!y<}rY{3NDY<^zC##sRDWQA2^RK}tYYgZF^8v6qaH`rz4C zSpXh%sSe={Sp%}QKB@=mAYh0G{NKTPP{p!S!VO&i4bdsk8x#dhfIfiD&}DDS@QX!< zlmoZvS^r!1xB9#ahG4bV)Jz6|wglKwq}+6mIJT1X7%T}oBr5cMr-c7dZaO9gux0?l z8;H?h{RH?s)=Qn;I0SWWZ9WQ4#y*p`Vr3(bCR*GXx;Z6~Bmx6h5y~4xH+DK!B%}Y` z%#ge$e@nyysvG0vh&NKFvVEMx)$#StSt(^^=qcqj(0%4>Nu2I3l-KI_UaPNkS_`^D z@biQ}*Y8zI{tb1@u91x4FOtcYr?6M&M6~RX=st>#b$am%$ZOVrtzVsp3QnG8_Gh@* z;2k}fh7kcWQ&wPHq^xyOOt05uA4u%~>bZ=s`y%**5=@x)d|m6v0ISQ-k1 z0{Zj3(s=og3xqBI2G~2C|Ee_$&L2AlW9uNS_{S52 zJ#$D~zXyQlk9$zt3DXL@kqT}h#YfDRbEWbCyDLSfD0X?8U(FXk1p7g{f);U4TlJ+P z@u8(#VSDSv0ei5)8^p6p2;@&#w~qJQrT*Zuc-!sxgT1o52$?dQ47qVqkss zB%q%1YogV$$oOEmHZOj%bnksQp2r3env?ue_2#i@F<#Wnc;lM%_0eMpAc?YTmz#D* zxu4_dl?6Q9E;r-y!nld5VGwjqz>u%+vz-=5#a9}e>$|3;oLaw^B;Wbo^6ukUScs1MNDnllgSAd8Zr-3AU<@qa=g} zs#Lxq@J-0f2Q>#9bHU1|Z{=%pQ6)Ft3pROlriJDXMw*6gNi}PtHJ*dIrt_Pl--P+a z$*iAwf{0v6= z^bqim?t0IVkR6&DdqG{p*|l)#4OJ2hUUkc#_oahF4)v)AvcqrE3>;iCKL)xrC+`f{ zZ+~_q!kFf|Xr?i8;-WhY$(-$BGV+Hnr+>apoomy2P_$lS=ujg zRUhB&!j^iK%@Y_orhN8`?hU6HjK^i%4>DQMtny}Nf`;)aMO-t@dqLPMNvlr>o3ZLe z%H__^3J)ycYsr+}7jM-j8osJdutYsg@XV|5B5ufwcm3X!dD@+f%SK+pg(9Ap5>`0t zpYg1jYIgM2qYefoWbfS7eDU8$^#AGWTIa3#R?a!08`L^($m+92V=VDOWgOWcwmo$J zVO$vN{x@jif82$;&p_>VMY!u4+2=aaTi@WZw~~SWYhz#fTRG@JRI1!=e2V4K*+tdd zrN|GTjg_xN7tu1A>8w5_mIm>mj&CMicH_K|J~3@W+c}3t*eAs;A`gC$F(f7p2}ZasUEK+C?vfibL((tL zjr@X^B10$cz1(hRc*@Ee>nljnlRxWL265h`_4@swm;EePGm=3!KC8!nTB3I_%}j=` z0(exHscK5Q6s7>Q(5&IO4+sOTdF?^UVENC3?J8Alh@17djn83$)%v+CpF8ImeL! z9F{9Z_FQ8(K*3OI$bsB{5A>l_W$Z}r8#mrbne=FsQDu6w@_+>e(O38EtAOCXs1V+FPt^iYGPbQI(ocIl)i^NYT{GMwnUu99mE1>zvv92N(NP=5iGT2vlL(OA%`DRWn`Q3{K+%k?e*Gz!8O7_; z|6Q)VB2aHWE$pZtIZZSZF1yN#_%n~o^U#p(Gruhmgc`KJs382)#u6^3}w0@;_OZ+C1K}O`~Zh7C#u!?2q6(>#YkFvM~$V$mTggOAhn0qIKI= z__(Gk1!KLs1E;gbv*9~lil>5W>3L; z`7<3v3wA|DB(d8Yz01VcHKD~{QBtmnKqWa1Vz6|E;iS#S0eS?tVZTdAdNpYzTIwi>q5R}ZX35TK z&YR+|3AYu?`LqL{98F40^~kI98pz(SsyeEjaIoio7R04dGFmg5yu!1$+SL4#`>NhE z>$JHsY2WbAOeS_r$DS$A`OnoWcXZy5w;VgkDlP{*96lq)WcNCT5z&sN0{e7mA8i-5 zy-dI2=L&{Thl(TSgGzR974Ra7||V}=4Yw!=sPQU2Rplpka#Z*+TEp>ZG$gma?KA2bRoL~ zxnk~b}$GKM!~cB$Sv zGg}%v*Ph0j%^!bBTp6?!jA@t@ODy;Q6yke-@+vUCCsA`XQFEicPzYqBKPAYu{c?Rc z^+~$B&7=3VuJZP^CBzN-GHU^oZh0=obDvoFJQ0F_Y5xmD)$TOnak3o3W8>dT<$=uQYR%dbB~~eRBmEGdauDF*6G96R3xXG51mG)Ygpw~4q;ja@c2@kY z!1BjX;HGvFe{u4W9F*lFMK|Fj-g97ZH}x%`23Xg5@{6T_kV&lu=thkKJ`pE$$ITVj z2%&h9IP!x(jTgOlAh%3QjBEugay;I3^@{AG+|FX_1(RU$Uz?!bkwfXRBh(+%eOfE8 zw&{!kxkSeR6~v82@Qpe!Tk6M`*zHyQ?2v z$$Isr-P*rKpkmU740aW3Ge|Vb`6dq$`d#!F=6_g5QfMB5Lh9l#1 z{KE*Qs^bB9VxYLDPth0+VqY?sel%tQta*yZ!48PgvAY|mKxEvVYlNzD>^7?5g;PVD z472%j0AMmURREjs^qgBQw6;cD5msqCsezj^sK;rz5h3EznIeW4PEHoOiK< zOD2UCFli^nzkj9A6y@GqtnWy)759U`a#Brhrh#ABLWb?xT$2x*{Ik)cb8?oun4X;gqVw#+flQK59eb4hC$0PK+*(}p^uXiMmoF0lz*rC{2 z*Xq-$vWP#;#ZY+KHQ1{8#Z)Q3;008@(aip!cl}L5x+0HNU`4kiX~%sqVrp9r8@`(S zLK@(dff<+ZBa+1U*w$f%YR9yAH;_iUu4`nvQSF6l43XB-TyZn9@uc?e3R5{__YS@i zzzY0ar2n}}OdAD+J{cjp1q*FAT_%OBXg2l^4a^K*#_9y!BueD+@%G)XCgUn zX5$~zHv^WUvvu2y4LJ>|3>%9;Y1TTRT1;H+%3m@Pby+dpQnaf3qGze5ggIL|I0&0a z>T;^^`;YZTocf1~>eLuZ+M(wx^s)buC$RW}r!Grd=96fNB<_PmP z;53;v3*zX@2w_Nbt?+==7>I7}`X2OMoGmhq`Q!=irP<_rE_Eu)M#XeGnB+O<4P0RP znE9DkJx24Y*4+;Va`EgjEjy}%;qx)K{D~h0Y3}VW&Pn1;15DQ@%VOv2_0y=l*3ex! zt3eQ|YYS=d!umA}nTlAp-A@OU`WIE7%PTAPgMqr$ww`bInk5U}`^4Edd*AI)djF{E zD=pK$TT3pf*lFQ8mJpiF>9R2>8|*4aVqlXhSA=b)c#ms1yH_&!DUAn`fVx4`^93#2 zqPjt=u(UWAQx47VWf2#dl64cI3vxf^ljkZGx>QLTxWsgW+9GsYF3EI*f*Oq6?SvL@ zFT3lme=sr_^p?!A*{_@7RE-g@niG2rpI<5RWECJ~AWgC?&3EZW6JF3qVx_T%G0+w8B~#G&8V;&7VY>(l-15sZl9cy` zZ7}1qDMjLL$L+t+``EtU5XvczeFw|v4zGJg92Cjjv@CG&Z*JU)Ze#9b{BI2fQm-)_ zx?zo`h>vL(HZ?<F5+x~k=2Q6V;-hYBanZ4jQh=;ARaWqDR56?oF zQ;1$^g;FjPf?X^DPuac!-kt&52{`cffn=>_R$^>)b$FLG3`FXr_>;mpB&}8ugiy`{ z$$xSmS)P&46TBKFWh3KKs{%L;5LjEiS__i`t^x}X)&~O-u~4UF4)EMlYH8pm;1f=P z@hc!MnOLKp_O(F^Gzf~1+bKN&6MhBqAY>8x%jAk=>JNz3w!zn1)Wix9{1CT(vj1{| zt^v_;gb0h8+)6`)B-`I~O6f&Vmy7v3?O6F%2?fEUMCEF{E_&OZo!N)h`%4+Y~ z>A~KocyLf8LJ;2?Lu22@vfJg25QWkzl24O2671te2N1HMN)EO@JUnVuJy)riiEXXO z5&`tpj1g$$v3l5oK3%c&BoM3Li9(*o-VM+FDTA=gI;Eak zQEBewY*zG)(CMlOga7l#FTa{4`olFDudqT==gI;PJ%o0$rFMLGn*b`u`Hr*%Ts>O0 zV?C+X+U5M!@rPb*_tN5SG_CZw4YiFg*N(c2S*4d|?;fYUihcEr0%rzx3i(D;=I{Vg z!R($?QtVA*cl;$|y+t0F2>(mFq88Llce4A0Xq?Sw8}yzeLCO4A5&T8$QTu0om2->_ z3LyZREmU)e*gJkilE-ReQPbzhMa9aYh)8yddic#_qhH*HV1}reHs5Cc&fyEq%ZB}W zM-kc?ivjA3?TA@Ly0b9kW@{!f*)4-wY@hJCHPIa9M})JRrjOf>Dqb_?g$*L88qpO%j#2+=M${8l_}5RrT*J z)6DXibo;?yOz|G><6ja@%B6Dp=+hEM4etC*#pONs^5v^TKk_-dlW*}`FmURaj7=*n z(0Xha8BLps5{W5gN_~%jarJDZqS}iCGJZ`+c(|7u{z?~4N2cdb*i^UO#fUAT7u^Hn zEp5jA=EV{Zo?ZoLrl#i=!9Q}U!UALrBaOX+mr`M4ovDr@Qx9?TzM;= zcSo4g3PcSMG8c87j)h6*hKsdBECU);J*lY|H{Tpy{}~$fvDkWpZ8DrY{a)i=t+nuk znP0=hbQ{tnEGHhLzvzxu{d{)%Wf(J*-?;sV$Qa)6L%QWw?$hDTt zWYDBDm)Dh~kC}Y3rx0(M3CC^DUAM=tz$3$2UlnsSZfzwk->CE5fXaJs1%wWOsT>9E zh^tL<|B1j3f^q^6|DjGN$&c<_2g4h(>P7ak?*c%47jJoV-XB-K3QX^zcz)%;lQpy! z{A#~v?VQYAEnwd5AoB9G-56D=^UPAa!FaBL}b7sgv#%*Bzuir7{IK%>q&8>OSwG_?P?xZyF z)>I=|^v7(@jV&Xicmg1$8CP?4wrx7F-Z=jpy)N^}Yfq;Zz1;h9e-#VA@%IVND2HNm z-LStn=W{-bC@*1Vy#UYKC7MJ+IeO8s0G{nmxZq&cGs`QGcAdw zr}gzgPM45|AR0@${>p^GmuNa0>x}#IzQw7gM^nE28^svL?)sINji*^YK~L@s7uuwR z?G7rNF^#WpTxD&59Fwa@tuO>L&1iGbu)-DW^*;0XJP%DP|e|8`I0+yDZ8vm0V>I+0~sBb)}J z)zlfICdEPU!}g2_z;yYQ3-k(fyqji_U_5|hN$vP60AHdwf@6*cOd;u-Tx71pxK9+DhzCV=OD$12w zw3t<#qBf3qOhzmTgUT9<%c3l%{ zkSt39HL#V%dAPr1ITA4+e-IEJkhPa@x%~UnI}5nI{7UEfZw6=;)sxxuuiaKbVsj+l z?>FZY-aCoW=@RWuB2E6fZl^Or(}AJD_C?N$871>aq$~KqfAcVIiGPL|`gR<>bx6L8 zNJ7Dp(Qeubji_I02ah>tLb--h0QnOx5^RV09`PQ(On%mg<>xi0;#Fs0Zl8F1C~3AH zjDF2k8ZOUw3?DfA6#5yivDGj>iWzmDE0nV1_zj*c@yq3f6#eY} z;8$PmWw4qN*1oh6uIqLn8&#ZW=b&Nl_)=nt8}~C>K;n>=%IVYb$s<)h&Tl&jyVY_l z`#dRTz3?RaBzAUPnjpBc+Ud7JeXP%*BaXL9n~oBoX6EnH`CT`*n6?Q4V)#-^2^(ey zB84pX{fiDicciDR(kdfnonswR7^db87W0R0UiLb+TqS8rFFN)v95V@(1TXSxWR3aS z-~Tqby2$JL7WBPSU}+ILT{5`#>&N`Jo`mi*Sqb;PLe5&*#Fy=J$>B-f{Ddm|dVL%h z?Z4vvKWQCNrtIBgNKqIvjPitTgUc1{Swn4~#hlv2PZ_m|U?MyBZbGRSh4on1tz8+L zmN!x_67_r{3W*3+Cl;;<(M8IUa}_(#&jk%Z&_@yVyN!lkn-e34^!*$0Uij8iGKnQh z(}FSZ>-BiZ#(#pGdsuneD=8n9yOE#qmU7t~B8D0_b_=b->#)v=tAaHBVB$Fi+rfFb zS&I2zA!o~oMu*bVC@i&b43^t+jwf_s&!2T12P)=AA}N~gVuEZt7D;(O8ex;)>UKmm zS4wq+q8j8)S$$}pEA$6EPrMerQs-d|M>p&X#5Y(Z$sCxour}OP82PPbKk=N4ME(^> zIt}t(y_mguiR-WF_#vCnW5B*UtMZR%=5ohnI`o_4OM|=j8t_%>gIF(p{-~n$rwQ&_ z-Pn++&Wl0gNBjr&{!H&-#}86wc;>!bW}yw+F=Sk(-*0u0xahUmldd4q(p0ROndmKr z+e{T}SGl}|?Nlg{YS($g`!24}!il4S&+Vs6%bb;7dv~;hotj$DsrrZXim)daxyeNJ<6F!_~4=3a^B$l~%40AeZ@nH!@ z7o2zC@T^iLVW?LMKjR+7N!)N%t=>SlI$IgUc(P*=>1by+S5n@GJ+9NjQNH(suB(k2 zkXU2TB9kGLk2<`-a>y4xzI?f{X^q-0{&|%2FJzTpiLe7hL=iqj_83e-w#~@8J;(1N zf3{Y)9r|lE+nkYjMBF}6eC9s_Xs|D+6|^_%z+hFn2OzfMwR)T#8~4#r20+>Ug&1lC z{1$v2*bjm=;qfBOTD{l=TfxJGR)9%P6$B&h@&~@b=lft507%0*ISIzMIfKu_nGo;r zl7SsqWn#7+z9o)H=Zf6G zbPHzJw7Ynh^NR;y7%vyz@FTw*R}X?f&S1nnG^oC^l06^yUxM*dseB@fRhVg#-NT3V@=Ya9B3Wflwe zd-}3~ekNF8=Nd0EdPNlR&|T#r&^;!~jE2Zl=?RA?LaNodJ@yh0JT_z&SKav&vJz4X zuolneye%0$F^{AU4R%8q5lcz4t;c;*CtYHfW5PhP;bG5!&p7k@zm&}cXSF|FCZoiS zo^T4pgj=RC0i`tnBPE+UC=_ol%5;^|Lq|DD(wf>s0wT3q>c>S=5dxXc)B-FUjE9@M zv9UzkGkL4d;{84Cp>6%NEED%C6L`DlXm(HiH6`&nmQv5XJ<#UOLyqkBM6+jht!z1? zcQ*8X&H^G)FDMOfxQCoYW8ns*ai*=W(SyG`!DXIRNHe09BkqL`d`J{!DA2S#Mp98V zqUkg!!Di40ULwx+_)TeD1Y)Qo)0gVIfk}_9a$e)Qu$WRT=jLXqj@tn8c+nfn`6~V~ zLZ@s6(GvG|m)$a6cY|wc2CTs=6t8{!joe3 zTXeTF@Ei;V^TmFPyBcXGRgW7i<0bk#~ zAuoZ-g!zY8uv%ec7v;tq$I8MF1x3eS2@rXM4 z>3BU^{E8-RkaaM4uw-L?^fwQiNJdLK#LV@|oGm|{Zi3rOnIFlB5uKXb{-kNr`)AZ( zu{QZwG{De4tE%LMP9G#curXQF!(^LNW8250#50SqEw;FKO*DQ7Zn{>=-00k0&!t(} zTy}t4Ea^ne&r+!5w=JOV=TixD_J^Mzm!RL6$xR6r*6&m6UuUxDH)ur`YSSs}Ul)m@ zH}toB?ceTsYQNo+7A!pf-xH_(xrQOTd$%bCsp2w)i(*y5xhGkk?N95G*f=`+x4U4*v6+zQmw-j92=bUwZbzHg9q*vdm;&^p>@yQar z?}DDnr_sl4-V0Mfs7Nkis6Ctn_DEXW_y68yPB9OrF!Ks5mTlxQFr0YHGhg$SDd8+& zlutKh0_B&x5b&dTAeV|{%FOSb*TTB4QA-Yo$W%%(JkSlkvv|>oy`6f?wU+wLrD)|3 zteGCU^g_;HajJ~Nc!FofkGJoO_{?2yaB<(e7E$*Rl%A0Hto_Ai(CFs^Ml_EQ{rz5@ z1J=WBFPiRudWuMeCf7)9W}lMjq2CqGhS7V~UF>cvl!>cru=gFyV}|Vofwdi%Hwz*G zm-(w&i9uk)SN_k1GR`aOd}oJN3x5oCtjxA_CCq-E@amS%T}VLRhpTwp)8a(qQl%Lu zU3JapWix^Ij3O!U{Z{|8;mFq@EL~174$Y@GmnB zq5<(h8iNPu#5oE#EB^BbfOaDO?M-O?pXW1Y*I<-vgy6tO3&~ zeV`s(2oW%4s|TV!pq~JN=Ucmw@z3B5uq9X^R!tSq2%H9xSbb9q2W|!bivXM&-y8hn zT5ju=fN|;-_XD4fvBoPCA)dSerL<{>3ySloKVAY(1gGs%27q>DIxUA|Bs}zerWpt+VDmr(jrKWMg>Jg zIyNK*A}!qvMY>CB2ud?Tqy-hEV|0T!V06Q19Wc7PpMAd1zpx+PXXm`G`?|-uV3;sx z+^Qk$oV`HFfTN|JLA*;t5h-)jg2XVwd-xqWaB$BHeEl*0xLr(U8APueY57uzU}_~= z!kT)wG*@9Sg48c+4^Yj?yu!QKW3n%gib^H8%R*uJJ~_5NSILHZV?musS4j@;5wRG?b8ay@;II3f7J=m?J(B0;_j5C- zm&**iZ9GJQBY(QL2;aO@5dGaNE>02w+^0gHEMOL@k{T+&AEUGSLlz>$ZY&8!qcrid z4-_6e@oApJs^##I`3oodX&RAzuW16#!C3pACJB_PH zK_NBvnY(PTxQ$egmyHRK#S6ERdLk5e)mX1c>pxvcV}M? zN12k--Dvx7hF-Y*f9xfZu=&doRV z5c#}0fP2wB5=m9|V9s>K6gQ_RzSu{uNfZyYFY}0Vh&mc4tuc2>1e=VOw4d4#yibv z!#(p7$x}&}FLl4Jwwid7jidPG_KX{Y*M-*u&rfr&BmxV^R%SD1bwGJi$#q>9Ro8kQ z&VODtWr1Sn64QGXXD9C?(5AxAPS_@SsidDxUFdn~cYDnX6)ilID4O9O*0*v0^VvYr zxDeyLMDpnNX<&BCjtIDjB%4K#Q8TKDLL^OAw&;UdYG8_rxWM|TFbh5|MH@CRoaUG{ z;gwg(bHFcKxq|3oy;?ypiZmJB+OBG+{@g)})s^>^7Bh+^uY?#d{Xo=2|K z#w=yb#iQLtv9S55n*9^uscLwI17jVou~P?8>&Rea>t*IO7totqziFUYtm6xlmAyI#-v<=DiXzC089(TDwzqyEU?{E%G>0aXJmK%n=u92mx(w-(7cTCz= zj>k8!EbnN- zQ)#(4S;yB$a{HD4g_oF;+MfKPzO=~{-$6>aT+K+hV12OvaekjXZt$c+>peVICwhPC zy6Pw_yl&YQszHO3U&RMX>&9T zTx|k(y~V!@!Ux(VHSSTDpt)W zC*lj4n{Kn6n>idWkiOWH*oL?K*d9s!A5RBRjDOK?0eQ&<1WW?n=HyG8ga7~%#m?}u z+9rkj?G!PD9b9pMjtD7BF@j#|OCq!s`)?8^1wIbfEefIvYeE&uvl=#)42b{Vk3)8! zK5YkKxMgCf-|vp)Ytq_~#N#_sVIZFSIly%VJR=Sv&Y@f;%`|aZaei+Z)r|%Ir6p^( zyH2Ng#%A}^MXF(zy?)pKLltogjl2pYT$F~LhKhq!jHiOdmEw#W4TOMQGeAca&44RF zFB{>*x&!h(>Hsm@c4F7;(*D@2SUX2CWkG@l!2DGTTG+B^2oeC7_;|OWqZap-J+SMY z%7ZY<+x_Tk02Xkp7=!$o3Sk-sqDgX~RK9OAu8(a$v2%RZjER;|u*R1*6W;p;YM+vT zh+J1?`3+A8#VO1Ic0=MENscs8mKz2!z%JT5p2I?rMY;CC_PU#pmZO(5MoJ$aR(+)O z4Xaop4O+Er|IP{&L$=i~G3MwR2a>!{*ov@qvzA%vLwvD~Fbh&X;Y_Bfwr+n#fK&k; zPK66^MTfyaDAKGFW8pGGYi77;vLK;$`37i&J(S*6H%W zly7lUO>RtGu#$UJi#?hg`S!-1n!xBTPseMvG4b0p@b$FXV&qmz_fPEjBI8|Ik@vX%2J2%?8^Y=)nFxqJX0ED;=P84tr+ICE_1Z$ zi4HX0=YZCaPkBO6m~)qPwW?k$c&W!O=&g|3pv#8DEa#iEt|%cnVN$pDr-1i?>nTG6 zk#Z+qF_PS_=Tmc;)JIuY?Y7o`#LC_Evagais1^%2i5?^lie4n$*7ktHKF$bbANTpd zz0S+1rlGPl+;Q>?8@ic$EdIkG1En(Gf1bwC-l`0KE%`N_*rlODbyAy{TS$`oR_Hv$ zkhZv#H_CVv-hvvSv{sz+%`~4eSB3ZLpBt|8ed{c^B0+JJ0j|o3kJ7r{J3H80?8jDk zEX*YSk}FPdoWuBTl>7NQISJGlJR-}kP11q4{YRRuUw(bD%6W^#T@>f3$NCKXa&E%C zFBusLpxcknZJ<H!wxKvC&&QbOJFTddZC)SCHJ6 z*`DbU)r7@9DJjrx!Yqo0rs|li#O~JRHYj@py_AvyrF4;Dqv!jnf3Gv^P}a@|sjfkm ztMvTXvmUujI8Lzyy{Kom8w{5FDvr48yvd}7-cbC>Ft@|c3yYraYKKGZ@QPx{$8D9$ zl`ylmg5Bp&Hp*`t$Av7+51JU_7kofMMJ9v%!~|Fr*J)^b8z3OY7b*2 z%zWU`LH%JI@BU3+ez!W*GnO~a{5Z`tyXWA94I9|B13KOIPz<-RwtkB}>~r{8;XKV3HixrWak<}Jw-fAA z0=9H2DLw#st3FQhELW*>%-#`Ll1?$F71-T1Nhq*SBAF%|#?O*h=7Bu#2#v;|xQ{ ziYMZxZn$yT*G;M5OCKaUsB@b#Y~IU*^-{;}m<_vg;dgWU^tyW<6n*RFvvOn$n?#qR zN|r9WxX(rK1&k#Xmy@ZS`)BCy`zuzV*ggf4E&~$k7@@ZZh3PkLW9$4%^V-lZ%#Inh zzU8DyqV0d@F?oES6Xx{KgL;x`5~fRSsx=}w!2zufQF|l}K*r<~@i6HxLT7jj#DasS z;}61vgMn2ZoS zgf0M=Lt0OM(z{OC+Aw6%Y8{=j5s=m2ZTAuvYMEw1TpDgIaU!yGjWry$J}G&2!Mhx9LXHQ*k>a>BiKKgAH(Hi8w>2q@Vq4i+E@ zSydtA0qD^AI%|;Kt0gEJOWE!pFgH@f&I-AXcC4`V@oa{La0v&6@Z zzeIB=)3`ZqT~>F{{RYYqk^rmErq3eRV2sy*l0ech(*8X{_da2Od|=fhi)iw0<3c{M zvktc-XxREce zXPiEOl&grn{iroB8LkMY5Dzpx5^)vpaD~8BCHCy2sh4Bs{xa6av!EH^IdUO?k3>OX z6r)}9M@KJ90H@@$OlkpK#sEwAG%zNkZCMzQ^;CtjH3fW;7rKp$LO+*VtPE}bo{?$e z5oGOS$xZ9ft|1lWQM}4(`wcGEAaFw$>8N3+B=js^J*3<{J$5?2mF#}d^QUcGNu#|c zZs@iE{&&m#Y?vs@&NwMl7X;GCIYN`{nM(*_O5x}!<@#cRZT!OOe%HbfZ|Mgz6;nHY zHe{r>|8YJ-nWk>rA!lt+wlQ|{nJEdxAE7q2Rg>{KSB5gn2{U;*X|!MIiW z1!(sIdf#mbJ*V~CmOfFC;$WCokg1aA+E}jGZLy^gHDWcgLW4JSdqb+R>awHYCKiJQ zKRxPcjlpPb4+BJ?zR0=)CK7F1OP7D~gMKzj^mtb8;M>52ub*1KuIafsRYhcLbJ6~~ zY`dZ0gA6M7xb5*zQ$KpxL`dEgPe%`9-Ak!_w8J@OZsKJ!GeNtbMoVR7g-%r>OAkkQ zU2gKMrog=Z6wPe&c!tuhe+f&Z4IGOK6|77D*+3&>!rX0HtF1kXpz;2 zQ@|_B36>`Pji0>gW*#Epho5Frt-I98%Pt*H(Hga$^QBY`=I%S5aWIG6f{Suo{wDPl zZP2s&`;{&Z%uNSbL70B8+Rdl69)oVJ9^79p&_np^8DfyTY~M*F{MD1`;>7txY7Ceh zOjArm`)4C%DDRqQR?j~9L?Cd&fH_|WoR{6Vm@k)@>$HN0wa3Lcx1_+#4aLghSK(&7 zADviKns^DZf0w-NA6SK#R27vSp6_qiH}o!Jy!p5F73)sKy9&3zy0CPV9jYgQ52H;q zW{%BR&QHyl&bu%4`8J;ynr9%YcKW+n!=|WO8{-_48NBiR!9ktru@SYUkJJog@Qsq! zC-tzp7VOT}+$58ck3-qxvHW9!O+1p|Y~uNLF7Wn%i+oD3!QaUHNsEkgleb259`v-p zW%21|en^Qxa%UQ*Rc1=gd8b}&u4>9^zu~DZYGcP_-7PKr-8Jj9_#OJw_g5pS9?vDk zlZ4)l8jtQE1ApvAAO5IleS2$`VzW}7f|>%Kp7?I04s|z{S;TpT%cQHGe86lNPRS;{ zvSE|-^pf!#&9^@GSFR~7n~iZKdSBb)%}dr~AXnGdDd*2dH^E;XG5trstKnxG1Ec1J z-N{8(s_0ch{riJD7&b?G3H1}Fba}!S-R=GGTC-`&$a}Fx?TyzuD4$hQ_CuDd-CY?k zyO^Hfhl3e=1NAl=2yE|zO>DZ+5F>f5(%}uW8ty`~=~n2z|BH9?eVr3N6t-=qJd5}7 zdFwyH7|zXix2^T*&Lhn!QL{9`ktO~s9w!S+;zL<`Sxmu>ayx7O#sME(y-H*pv`VBL zTm!6B)B{QyEo4l`z;fVRDfXgu#$Cz7@%rO_U2OW2KkA6P=*R50CcR99|D*|999ZXB zq7H(R1TXkYOFk`D^jdf@mo*Im#FL0B=RpMZUE%_QaNs_~9g@}L8?s48ks}b#lm_@h zTt?u4FZMNUf40XCd?#Z`vNs`oGQ~g4a(0)aR%jUbemS-JBT+oTxH=IDfV-52@WA+( zgh;uc6B@6HBO6zW2hai-+aX~@Y$3+@5|}V*4#MwNJ6%f5fWYGwk@`3M_w z190_FC%SLJh3kL7@zUoKDcn{`>K-#6&t@%ut0J_BjNPTRxgy_Eq^gvDHdl-UNCP-w zQdAKLLn{NGLbvt1j&&cx08z3Xqf8ex9&q-+2byzhNu|dMLNJ1?v)^JoAwjH3VXf%) z>P9L~%M1fK(KrloKS4eXUfT4TX@wgiO(#fhNuIDF%SD(P{TC~M6#Po3tpalE<3|ex zDcKnDh6iw7K^3G&w9WvTI8s(8FWE!5lEx*MOB(z69e0zRK$t4?qaiAQ#XsRZaBJQDeI&tv|;iG8S_**`%_T5`; zJBQb#PXY~869?*)$5NPaGedsml22k|=PW6@xxCZu6ez1ISX^=5i^h2?Lb?1g$Sca+UlXHQZqcjPzbKz~6UeSf)Q}%|U+B^oE zyzabf@u}soiXc{bHwU{ZPES{}e-nOCHupg!9gSq+ z*V@{VJ_HqPR6tf|Y;MiT>xW0n;nS>f)zz2BD7V4zG8PsG_2~%8POC?D{8ST`fxT{* zUutb`f2HrL1*Uh=?mjx{!Ck06VY8UAP5fG|PS)ftz%Bl76kWR3MvklUV>m?cJv<9<5pza?;lCgFpfML$~)|KeW+`t%ukYMgl0T&_Me zza5muUPHe<@bR9J+;N_24QqA)?e?-Un;bCp>&RmQUH2IV__ub9zV;mWPJQ`}bezf( zpz~U>23fDnQ?f~QhF-GK3ltaC4gP$d;N6|g{wXahgKv9h(8h}|nXKWLjb8V|tDzWt z%(U=-!h>_uz<|q^KG^(V9jb9~H^NIg!KbUSWhc(dB|u^l4@5WaWRx|U1f$c>ZZh8@ z4_a#{yfTtv0Rv*wWx1IZhZf%aAS0Hl&w+fnyA}^>Yy(AcaUWz3y4(11v1as1q>J=0 z(tu}i;DC20mp=Jx!>ziL(95l}?G?AU?H_$N{N38~(9Xi{!RVWO!8qjk>`&)qgQbrB z#b~ws8!kMrX4(&}9=LQ6EWI=^1)qYD6(=r89{*kKl&OImCsT{d)2-|5s?#uZX=l4B@x!@4=0<`hYQ_EpDp0=~56x;2Di8b$i_m zF$c*U=^nv1U;{*92@n)g3b$Pj>0aXbNbO1lP;QmDziwp;C_@4T;qJ?9!vtrJpqwXK zESObUR~9tl2$;wP1w4k_$pQMO@^=j1k+`m+uw)j7-;?JUCe(_=2-cMvKqRaQBrQ8* zBniI*G63A|MC}Vqo?`4Ai~Bf41YxdWLiiV=cZARuf}hhA@nMEGwh%_M`QHQCTPorn z#24K10Nz^ZNnzaEGW5O1y(b4iP9TRu8PIO*6+{m3i}U)7fCFXA+MO5EN0!kf0YxQlO7akTUI+3IfMe3 zoW%)Yj58z1d00WTyCKQ?2Ap&8=61>a0K_6-EJB2cSau+EAmA%C+2a$UkNcuIgZ4nA z;40h)*M1-1e4})iUu|q0(igAw&u4mRv-b5dt$pxX2O|;N->1U^-`SB45_FeCXZq7 z7)8YYtV(b1M#*8}i|Z+9DI)e~Z?dh8ZZ|5>&o1B_FK-GpjYcd4qSPi z+8-R#m`j5$sYV`wQKXlJ=l01`LO3AGU2CwCcz)cpv4R4GCJj7WK)M?SzO+BrFy|fB zH-nWcju&1kI%(PVtF;z7SoeFo^$h8|F#RbquN_J8J1jI62OnS7yzjEIC{`I4dlG^K z*mx)IqNNl!9P$k8RT+;HH7C+_EL-lq*7#eQ9F5g{LZ5A)1q&!QM?ct~Wz{Loqx>DB z@+=6JQ@aiDTV*;?lo~0mj+B&&nm@p~^&BXaekf(nPG_D^ax8tfQ)Y)zXMd5;%Qh~C zEdE^lR$cUxMIh3U({5$tYk$v@(}aV-wGO+Jovs3nUTlJn3a=Ncfl|0sqe*Vu_<4#= zpJ&XKn}+g7W6|9JZkN$hd@{5Tp4+iZt9}af<)w6r; zc2!zz)AWg3>g^HUR`>U9rKb`7B5~0#otk=cv%0OH z4lM7#Hs{3l<_^ofl+41@a{Dj-{Q&HlMZ)nha>Mp`|4?@W7U-;6GOKdGyV1K3 zX0}?_-6%fCzS$V`k71O`=oHnH9V5ES%p$P+Kr12FKFQ!My;hZat;ss3&NRugiC50s3{r2Pa?d4DJ@m}AtGnZ~&ytd{)&03l4rTD*uY`hrf=8jdJ&B7u~ zejWttnY)ecthtR*@)GL2GQPE#g7g~Mg%>n^z#Y0x;88JAk#A4vK1`h>nr0Z6ij0Q3 zI$@w_fhvb}@$4X-fFLb>&}XWsWCeS?0q1c4Z@ZjZaI2=w^ZH;J9sEWzUT07uv9w%& zP|xnBihx<~jOZbC!#_K0{6FtS#F4J=1FW96qj*O2_+o^5PU$P44R{cQCcF;GZ-1U6 z9#3mX6+xUxpc1l-hF9D7*}|X1Gtj_eAOOJG*aihhJ;VEUe3`l{QO~M0p!yV!e^Q8l z;7UO>RSr6fP`D%jA5m0KAeLwt+pTS~&w*$0_W%z)##7EQ)aba^FPnk!z^--&A1}hM zz;pH_@*|S_8Pst4@0R8&9F`KUEW`M-Qsyv=QE0(W5!paQ7)4l8SwH326@eqw`4M|gZ z`Y{z!&qWd=-iB>>g2=F7`3$3L{GOXEV{d$X|02O-LZVlrA9`R4o zpl~0VYRV0d9%yr#$81YjR$UL^!ykQ`3y0MHyosd4nvB;Rt(b4~ogxI(4MZ|nP;vYj zO#;!@Dk%rc%V?p5q6kVkVOud#3o(WJXv*$r`9RjdqY)*V*x*RaU!SmW$#jZrLb_7V zs@Sy@CseA8(lah!6p3XV-gK9G0q{oB5)gCP#+}%j)Z+M;KMS))w_|<6q`2^=?__f{ z|9)&3eUpmtzE$#9B(0`<8Z{<9$Q_@>VGPh*4s9ePv!zF+xRs8}HyVDj$+!kYdK&1S zMG3XwUp$^K_PlkwYjckj`*h-I`wRC+31JYUFvjO|5?$ipzrW5|Qij(5)Ey}o^*&nM zCvRDP%%O9Qcet3pK8T)!`PYP$S!)j@1$(~r{~*Qg7yS&v)XTeHsQIBXn;}#`rAPE) zn9+@I0W-;Z-enIJvn3T^>%>hnIb=2s*JMK~eRLpZydPkvDhVh1f!5e4-5 zDyBCRZGKXu1%+M9pvD3v>j%iqcVrE`-s5_QIC^28{0Yj2HGlZi%fe%TpMX;TkW7r7 zMNN;S(yd${xtAJiW$Bz26je6VN@!CoiZu(yX0-q@8@#uA1d0M7c`Ml_qic?xQLM;D z1u*;dY5*?|zUF>d!?*b=gN5tt4J&Y#{%^RTcmHQsW%bA2%Z+<-%t}uDqF?grRLkjv&p$TfG*Yq&pZT>@omH++w^JDLCr1lwxobuqWoAz12$}R3 z_RTY#VclXVvTSzaY{E)lDT87VkxYG5rlM8T(^W~EgU5*rIp(D9E$+5%vX9*65(^jN z$|QWY(tXFmTso`2Q!CCFl%vKusk<;hP@GlE!hL>rQDl8^6V`2(*2;j(e|O|boOFQc zT{)Q2>jwvssj}E;VSKT+o6pEHsB=POk^yA99=v^j;2J8Jb-BAWvC-Iu!WttwuT1*0 zmqt>8`)k`$Tf}7UjP*)=EKw`o#*;$-$<@wP`?uXZ=jM0&&n63K_fe?{`z<4XmO=uu z>#Hov&$j*s1O#X;o*m_E_y%W-U~yxbvBY>x%L5_FH7H%{|7Lq+1`2b|mV2Khb`Iu- zzknAd^8ntX?!oUpTk39xS`x^U$Fr}+q{>GCO@Sq7wj8z`W;h84aR5*?B&e3q05}YP z{#Odlp!HXFc)k@N3|=c01S}JLf|qp>kPyzm(Gc-=SAq^;4nUmaX*^TC%gSAX?t1fe zqGv?jgzteJIG`)O*!DU>5Est+Bf~EZ^pd{aDw(_^j$MB*6>P~w7Pkd-Z;S>>=7Izy zFmz;tWdLvd6k|>JLH$=ki?!j4iewJu9;;gfdC0SLN*GHuK@0~WTvp=E_XDn5Hka96l}NRBYJ zpWY6u;n^`2A)Wi+8Rqn8i2|9Ra#xNR6T!BGK@6Qol*5gVro?Ais10Le_F5!25KpZW z7jSpKh*RfA8p_iRKPqj7V9|uF!g3v`B5u^(J+igv5-XEjl3}$njyf7&Z1f_A@==Ed z#IKe{7x&JKVEA>(Avj(ulO~KUJ1yV$9ZNe)`+%>?+e1;ti^}MrX~Hy4gAzk}{&vHq zu|H9~ACM0YsP-dLU+P4HiFma%cG3{i8xur4hfW>RBY!nYf zxA_61Dqf6R1A^R>{}HUn{cP|IZH0>Wg?=ewvraNAJ*yHjLp==c(-e&qn&zNAbd=|B zh|bNe3dAHit$gj48YQ<1{Zch>6>o9%q;74~Ury-&N!esH@;(Tna=y+->cvT0<@htG z=Yg1Yu-jw)bso+5Nb8WcGtfWFLF~dQHX$2TaHjMzjga6~OazPD67iQ(G<5^3AvMHy6qDardjZLw7l z{x@O%ZsDiEFZW#N{ITYldh@LFU~Mre*=qHH))wEv05YIRzar(l_||bVpnUGBY%VQDBfKDIPo%%(y;UwmsI?1oB&=lQ>f#i8^-e3v>y%f zOTyU;A|GbcN^e9MRwnkGkE;U*-A))>4h)?HTp}LVEZ)g=zpl%5TA%AP@wi+PS-m5s z?T^ZFV3%A{W-gvOla}oowO17`lB=we`r8#YS-YIk<+y%{>nBcI3FyeSt|^?HyUCwubkPbP9~7{j%VsyVFM6kbdo{4OcxKCm?Nn-XxK=|sD< z!PeGCD%vER_*8VU_+OdT#09Q)*+SHyMFG>W;OOizpZjarf^9KzPVMBCsDNq%dW@`p*x?0{(m`f_;I)*yA%)e zi7HZ1BWvWr$0?1C!b_U0bafn?l39M*cNkGB&KJGDL;0~n8VmDRzHKRsyb|*h#Eqh} zk5mrXqa`_J^BWVcNy=ib!iQq7Hf|Wmn>e%kq4U$pJ>_iL#+sPp*bCiqM?&)p!s zoqkUhcmK)NKTALNP(L1)xUAf1%HM=dXl^X6=9`!qM3xAo@FL5u4-D(N!mX^ipnrdJr0g`!1Qw{um->>`WB_v(p!YqW-lkFpGrC(%Dkqn#L5j zKKXoPO3TkG*RXtcAXf+S`@>G!{rfVTJy4_ZvGP%%0e*Vmx0v%z{P0IsyC+E~|f%6uye{(5I7c*@(<-w22DikmS&;!3?kWbn@P?F^3 zsoQZ3-h5UFj^)kIWJXXGM`p*cJrm8 z+y4!}+-XK{YDkIU*aHnSJ&yhfukRIM*0l2mXfDM|+#R{M@xgs_ad``)_~2iLCvco#e~kMIj%#OFB+L!4J*N7b`t3wqd@&6a zpJCo^u}JuN-STa8GIbY;C7~qX5+G

DjQBDw*EcYLf}V1hKLpUCCye1Z%x#CQt1!?3B%x!7aKJpnEx#M?pS>JFb-;PR zmLGYlhL#-N=fW`PcQf$TaLUPPVp0*{E+*z2;G#!!K5#m+NX0_-f_xmfPgMl7<=Ndt z(Bf$GwxUr0^zM||@U!5FYPvfX%N_Gv{ zhQHb%bHS#z^JZgZjw#jjy!^g}@stF|fAmB|+VWf`TDeD4tr~ZVN0~#6w7yKfQFH#l z-EprUi~%3_dh0!EABmR+J>MG6qE+ffDQE6Xdq~rQ zOR3upiKqYA>}ojeI?|wi_k_l{o-!^Q5KndJR=E3P6Vu~>ha*$qNP5LvP zXX~gYBl(in?uon>QvK&$j;P7-^Uo$ti-D5k*@&nv495k_CKvofXeum7NYL z!dxsOou(%RcqdMd2OMPHEugmnjetEIbhpYRQ5BVJr*xvVD3kBkpC=af zbp3E4mG!i^SYMLBbaP#_-GPwO5u4;6D{oye6tMoO zaCAS)+pvi_cWS##+7oCP&m>f?(BFI`K4ZTy_A*gQs-1mZth9yeeY_z*fv6!4(fQ z#+_;evjdvtv!g>*vPIJSj`6)H(T;l~!=nh3lWr?rgPsXq2hz%wzYq^JhMQM9X5O0R={{ zt;9FD?Xj`s{WMF{Dp&sPW>O$4Bn2-Q!yI&=u;K}|g03xiA81daf?q|OIf#>RF;HBf zcZ>avSw)h8Y}lxVT(8Au_-On{ztV6ij^W(`b5(aM)U^40FRfVab3^?a&BI#VV2ric z%#XTCCR?Jc-g)!LZa~3e81=>Lk4tSnsP6L?En+ye{pM?-UZi4Z;DWao_fpH$`4+z2 z%Y7+q%CAk*(RBjR+^Y7@kSoku^t=N~V~k$;-Vw`Gs>CHUK@>$+gts2f4rVcV#q>dB z@0eB(=Leb%RkX@F8)3bN?nbyt#dioJ*&F0M?{l#vm?gxiN*TpWl}`4Kk}jxKZX&B@ z`WB^sb#_v-1KYlf+vM4>M&zpq5M(?a&)Qh?9OWCKl_Z1Q=N~ojwcDEBwFS#O91&L* z7|A^YfApv1k`wa3?94wpBK0YToj*tbQjWx;G{q6>SEImn5|Dt{dB=^}RD5D)94)thTfw?#O-K zpF+Jm?uG=6FF+i+5Mxq=maW{7mCWr@`?tN)&y?|sTNin#Z`HH!phIlFE(XFaf~4}D zbFt?AqyTez|NIgPcmCbP8=iKN)#0E?h8LZ$=IHfQfVFUjLWPGD0n61d89F&&(Hx;X ziKR&3aOaB+V03w++9K}+Ow{z#w?Y3iP(N_2({h;-#vVxNuG0m$1FHvEhf&Dzc_oVG z&+FXa+e;MFV}l7Vb5c2ejGr3gwQ>)j{XKuw=?!BVkFu#F?^NfLr+XKP8JAs!uoTiK z_669nSOdI(lX|y#dc)4y0d zAOH12yUzXMEAZ=QIVGQ<_%zND#@7Nna=&e*i2+PS!cGVF0lp67ULM;_s=txJyCD#tM~e3w z^RyrF(oY~h*x44-K4pv40r%?^Iyc-M%!Cm;buKrqOvz9nJ_=k`#m_$yc7;NlGvbz! z-xFqt0C}B`MDVFTUC*CwnDaFz0nQUOvC^VPS)3DI1GG;_F#p_Hn#k&Y1O5Vh9G4LD zX!W1V>?B2((Ol?b)lCwLYcz2YU{K8elsm~WG!!skP;jaq9jdeIL>P_6k^A%?^;`6? z#TH_e3E!2WsGGkz*hV*|>4StCu+`0V4U-kjoZL;*)@OexC{cDY%)(k2t!R;rNN#QK4~w@O{CgcX|{@2kJN4;ZHTQ zdCTJG%xC^1h;G0^;s1HHJ{X>6aKk^DuaRdo#n&i4*N87OyM|#wv~q=NrgK6UGcFvj z-GW#?_piH`g+sT>0`L6s`D|6H>@mo3T0R=8fj<&+v_5|mkF+DuE;qtYkKEUGN4m^TCRGu9vlJe>5V-p z*BZ2m)>oZ*pm?781Va{-V#{ZMjcqb-r|fIdQz!J-;$NstGkz6O3o?tf5-&=u5h4m) zkYTBC{vY(K!kX5UF&Fh!rdQoU+RN0?p?Y5Be#D-cY?cH@BYe-I^GpwtcL=2u{?-lc zT)(`_ap-lnWvRR3WBI@|C#xVSex2eZ7f1bS1IX0WZrwk3!Z3m~1Tbz=JhrLN&xYrnBtKe}(nT&Y9V)0`0 z($@}K<`geW=2BW~=E0Dv*!B6@dvt<9fq6=d!;07Uv!iVphnb%g$uG4UrL)3Y)^Kt5 z`h-?F2~`QB!3;DWe`W6})U%NLtV!G{>7m>jA) z&;qY(k(^msjC*T;R`blOvb^OXm`>uC?v9M+-=rGo^9)Sxy&Uz~y*vzuex?5Nc-Rio z+&W;AeC%>acPWWjIoNadGT~G&!F?wRyLI17xn%WM#p1`wPhJau33wU%sy0l~sQ(-q z7-AedOTvp|J53zspA{fux+M^+Z@Ce@B;|rY6MCbXbyu+2=+&Q>XoqKKn%<{9a}Jks zBD>*?CqfHgYM}}QdzxxY)~Z+BCsbqKQMXadK^jehs<9h9s#6g2I~%H!p~msuS~ z1yx@?B61e#Bi{Z<$jEuS(%YAfJxd)p3TBe5QpkUdR+b7fP%@X734iMEXeC!CY4q(C zyWwgCr{?8o0$m$1?@Edsq*B@q&u9hn0Uj~ItWQ37a_NV-MaNEXDFuFXZu@@qpaEGd;_iVJc zYapRy)id_jKU?^(&r8VfI1c;u=@!y4H$y9I>kL&L?4;oALDFY0gR-CU+k;i{31QgI zD8m}F%=3OlQJV@%E$v`nUStcv_TDWr;IkVqF1Q}Xu>k^k7yuRLKtX^ufR9HMz?^vl zrs*CStH2)%;~`B{LOfh-djl?*ScSXWcf1(8}>XGklWxOxAJ*^WXz_*xiC~pwUcb!jb-&yqV~$XVLQ|OhFpgeLrkNse#?mxCfRl4O+jx zY0mj1G;bjyVzrwPM0s815fjyMy)Y^;6a=4i0_Tm(cGPC~$&rMS_hOBwW3tz1c1i+0 zsO>)B1>3eym$(uG!>vDXxAE-&h(3rtnD-pLpWg^^V(lLV8i&|an6$!a3L=T4a zJCCf{+JBTVUx-tr`5OZp=0K z0kg-GVkWw2I3DQT)PjfBNnh4{y%mB=gW&EA_Ve<1o55DfpINMbGn*TE|~v&#Le?t^+TDtr){Fyaei9& zdO4DO%q{=n#vmPsNaZtZl9HR}jydLL&?MVX-Z~#)I((Okr$MWEvysys&jp>xTd_#A z4N3dP*;>KkA3&oYu`=>QO^a(TOJdh7b`3T>HoDGIwl{3)H)N|Q!gYl{U$;9cbsMNm zw_m+uSy_QG@NR-=D2iB5<|t)XyxIGaAIIonsqxEH*Khrp;@E zrD>0`&dumMJ9?=eBF`H0zCbqy`ct5MaZtJ<^!1>@T;n7HJvu|JB zb?N*^uhqBBh!{eAR^H{6QDu!K86)7v_pgI%3oRL#_u25X>TXw#n-8%1YRA0N%58$X)8W=Yvq-7BwiTa@~4U=Lk*sUMs4ZXrn| zrTjsJ?tsEEMdl2@@;Lti*_K{SJ%dNDZS8c!cD31o%~)eq$U=j|()2~&j^@(*VoSgh zcGHNm=eMSDtmcIqJiCUJ#H2B1F)cFWxa!V)9&R{P)vRjd9;jgC9x7<`2J0kR9>nAP za*;blCsbhFtkf-Pn{svYsFBt29CPJhv8L>OUf6xBXMXg@gVn4{ebUZwZb!nh^ly)d ziQDR^p~(vP569}qzU{yYlsI?pLm9&O3$tmWy`~|)#{W6KJUDb-S_W*ZdR#5{x^pvA z`UvfPs6un}k1oBZU0~JW4UvgY6&ux0cj;%qcA3Q{y=>zBW*}<1s#sJI`SW4Pdc++B zu4T2HoyaUC+fGk%x(FinHooU8lAJ!$5RV}Q`SYsE(`=GS)p{szy5ZM;k5r$-4ma{s zjb)Mj?~dN6AG!{gKM(p2HI3oN6MyTD=SU715F}*&J;Y&m7y{i5Sb@J^?+sZpA2YX_ zH*QQS>Agsay5^i3(NV66A)^P%@I3*H0x0Y}8)9jHN9n0e$Ws*FwxU!Zb4n6F2k9qr z0$##IJGs08avC>)|1kvhlcRY}0jPdiQuKuVA*B>$2`C1(?^(jYrNli z0{n*6fpqu<>4gE5fV)Q=owV@{u_In{NtAE}txObO=?|{`h#^G%?wGy)(w&*3BJlz6Q zuwzxb*6|oaRFo&ZxM?%*^Sbv^;|=ZA?1ecCyP9NV4td>zyWNXaa_I3YR4vLu^0-e9 z!LHV~@7^byTV(^48}WCjiKRY*Nj;ObCM7(ke@mdp$nD7sKlW(onAelR>d0~ z`ZRB7h01d6HU(RdB)D2z=ro>_L4-;^Y+SX6GWo+b;6f$oxnCa(5_(&eJe?O_V-9g{ z(0tDG{*)=}bAg`HMl3U$_rqq~!6v9ceH+enkK#Fhoa$;RD}j#c?T@?JG-OgnyyUlwAYb+hl()E4@ZC zY_VCZ?o;9GwS77ne(oQOf3D}?4azM)mKc3V=3KRE|3MQ(9^))tp97?t8Z`0+2 z{4*1!8bxK)O~oUJvp)iS6Igm%lG_*(ast70TmzuN^h@@ZO8nFGKKK`vpS{jgI$&$; zJajM4Vt&h*UQSAc^Y}C1XP-+fjAdEzoMXQjs|ay(i5vvgm$hRtitE58`e(Y7_OQHM zhXQjg&p%;0f5+(x#!Jq7_>!ORZi2%8D1%dEapDiH7aNVa)J}$s))~Ds8NR_4n)G&S zR3p^Z>BDL48Vjnb3w+(D4#cdnbjdKTQ!j^)bj|P7k-z@T*#n0{u)RB$6*Z5H#|xN+ zsb~t1K0T(;0A=RAuO8G>DCqRKAu{JwmWks$o_otmh@DPD=Q=nIG}!b2ir!l@04zL1Z&-PZ*w5x+u}xs|0Yp-mf!krw=eC3}{xSByPFGL^U5&mzneW?bX9p&{p?H z;plQWf79a@Zoum$1aouZpIm;kUpsqo^Y-B9&y*Zh-lyJ~T7N|c?HAzSdw_+@-|}|# z)IDbw@rhQ7x6;0o-7?I&7dBhQV%E#^ey*@knJlmu2WjfNb8#H3%jIq~VDItd zj)Ef{so%=pMqM)71@ro=d5C2VU5Rc<%mCxMF{vE50EF0L4x&AIbi1~69$PV<+s?I!EBj(fMrZhwF5 zeR)D6$>+k7A>A~+k$%ByIqPS$LyK4ZMDLU7MA8M&2OSKB6K;rY}3#B`=UBY?rx<>P{w?ORX& z-SiEIv*b`E<#M)X4PvB%F6!iRz43Wv{iYJ=>*NC=VVzE>u6W0Ni->B{b4B>yl`Obe zw^^8d;I9tGZ!Kah5!x2qxU}ASc2n^G5E5{#>^(l=vf3kDfeQR3v0Aq!(HBEA`ag3>31s2!qrOFM z1hZ=V<@f!m)C8vfve$E-nWQ^XYY+->DnSL8aL}Q>lpldiM~fPMdEv2DW`4y-pb=Nz+I5(LLHfYWSgfm za1y|67xR(@P6be10m{)}P+-)WAakb&$5WCw-@@1xw46v!MRo;L?KD~TplAox01MQ- zMMPmo`JGcj%c_M;SS0;3*1|i9)VuZIY6LyV;uY@S%XGCj#mI0#9PkyAG&UswhG3x^ zfES@;6$_^zcK~`;vk(}uMHTqD3V_;W&g+zfZatFhI`Y$#0C*J2+0C*g-aY^G=z5#q zo>I@N98TjfM*D8aWUn(=VTekpGlw{)(atjhD3~SxQO)#}4vPpJW9g!hqw5cdpEQ`& zZD4a~c#tesGwIstCnG~~DY)Aufdwqv5F@Q;ekg5B_nmi|7Ag?|eSCV6cvz^1#aBlT zN$m)(QkqK$g-RrSkptOphloALu(5~_T+fBC@{_pS;e{H(V_*0D2G8@eOIhatV%rn4 z4LV&sChoEn?L+5&T447Cwc-#hmMfra-ur&dyBu+=^&iW}R0*&i^?O^28e~A{H1;b{ zZjC<{dj9xDgMT^XPutIbE_kw=j!t)qVmkQl>GXJh%9#x*VR~BZV4T!jq38hjkQO{2mE|J)hhh|lsb9BdnIegcy7z- zEDs1EQDCfiz<|D5unGdMT>>Z-b34O-KdoU>ow7E z_~9d#cD|0okc~r{1{V%K&zZc%yaP6jdQCou2ZfHKvO0L-4m!XEVHeB0Lp#(E|T|8)ct$!)Bl~L??#f(}a6eIwJ8hf5iEivj^2l&SS zJUG9vJBo46|pR@-(8Jn^vB`Ib7-&czu(ydF|a7)nM8?IA<8g;p{Di)@G$H7BR zu2%vnU)KJ*HQsi0`MRJ?TG`bgQvA(q>Sa8!myL5aAA_E$aOb5ZuwJq74>Sm1g zI&jfDV<>^ndK3sxg~d~42glR)Y90++viPfRMxbJ#>gL{^%FQ*KqEt)#;Z@PSsZ ztW1I(bCuue#mfacb5>7b-ekXf@-O1tD2LD@=l1u2x~ip|3#xfr{+)NIPsTr#=8|#o z(iA%AguqRr3QHj?Lio6@G&pUETBMWHiz~IEyu+uY+=EwSt6TpP8-iK3Z#Sk9jVHqe zMqGyZzChqDIBhQmNyFnyP84w^Q|?p*5;WadRC)RClu)qRy*>&(Ejh3{*!c$|H0__?Ni`wjo-k*$VFuBuu$PGy;~Sr z|3cX=hQg1x5AR4F(*ApmhdputzTpg4a(#-ldPfZETtuz zZ=|ssrIUOfLo>rVT}8vw5)3%i11@>^=B_3g!9h^6r5W9b^2&F#5i7b>T)|{4q*~t@ zTok!z{wy+xEmP4m=%_yE9uryN~>Sj%(b&^E;l~yZ{&&21j1~pN0;Yg|1 zpi3qu(}zG*WFSE4a`{XD12lgF0DCzgsFvFvcEv(P?;sP7>RLyR2|0cu9D@tXQK-Cj z-V<0%Rsy@o!fdo?O_63q(u>`gO*@l@@c=c^2=ZUsvZ_T9FiEoaBe?i!C!r4lMTsh# zCJVE`Z{s(YKGP8f!ASwgHDfB3s@Gb#aYnM2n(=>B{Fh7p(vx&Adps}E7x7%v<+fD+ z$J1NCHTk$<{~N6!A<`X!h{Qlifg!B|B1-o_QR+?C7(-NgFdB&=Axe)JJy3}ek|Lu7 zMz{1B_1)+BKF9M1?3eqvkDd2*UFZ2aIY88Re&OsL#M@aprjUB&1H*X=#9T?1VoBIm6sI%m-cOCmk208u~Pvb z0e->G4yQNRso?m96n#e~fU92i?5RMhp_HxAr)E=Pu~LegVpR2*49VN$Hq54^@eeqt ziC7=2=gB;MIGOgt4)Iz`I|sU>Nm0gy4BAi_!mn@-z&s|!Ut_#_`W`m@fGwpc7m1i8 zr5#T%2VV~UwM5Tpv6-Rw}n$&nKRbE`w#LV z?-aGEdn6)m8(Oz3FOX(hn-*~XVrzeyY-cQ`l^&SnGZ^;x)_5svZebgD=RtVZNkW#V zO6?Km*#N6u;pTUVJv??zG5dgHVv&#<&Q;>O1o34@Z47dDHJ@gCWoO9mL!YGILwV|7 zbse+ao>4H@eaPEXn^Di=!((Ne(OcF;oDU30g#E-UOgP;v+aiCwB&(8N=X&y?i#=6M z0M`ZI-Q_=hqFaBVn49J|O?cZpsNK%PT}UibYshhy-1sQg8{OQNoJtlRpZ?@~20oe# zz9?g;3S;ixHs>i`&E#@w}%B@h{H|t zOvUaOoW{2oGGKa82nk^MF<1sN)>uuofQ=W9%)F}$HBGlYbFhJq7}|#4euWwt@gc7B zh>`mXD^>UcAKTX5la#?ud9HtTZK{*7+G$m`GV}U80lAdz#Temlx7mkv<$9mo9)lcF z7ZN7bFyrQq0k^8UbJB~luUt;Pi#|zlS8xn8sr##;U}Z01l;1Y{93U53^gnZjn8%V4 z53=@~v(f5mTX@f`(^cDD2q9XgM?&7J&<|IWDMxBSS8qfp`F2bG&vihk`?5;!WqIw)5kHw-mdvl>G1@ zbs&`M^XkKV%*0Q@zVcRJ9;NH-ElL~s*J!S7z`uyH$#5%R0t?k(f3$Q_OqvrNr(!ok zle2MzMjMDls&qi-L11$YK;MQgJD^!kmOGes2}q)-uf2$-n-4yoG6pNj0fO>aw5NWn z&+`Giijj*z@Kmvk;C)%{d>;@TJ-tdr0!n z3iK}Aj04aK+xqljKqEkI(k-y+@hHvnp5PA7Fc&RY)BsbcLxcge1|Eo{B@M zTp4rp5PN)J1~ndWL6pX;3oS8be_?6-&4_++Jk}oet*bP$2%7w7w+PV+O}7$Zt=T{%y$Hy~sAXt$UnxsoSIeHh^_L zwIW|D?;kzJnI{Zz7)$TH#;fp|l`3QWy8F+o^=|c^ecx$jt@E7OPTBlhvUkOpA0HNa zZ79&ZXZSD6@Q4z>)v`Dlnb65TZ0cDpb6~t$%V#ei(DYp?y5z4KT?Yq|J6EWENur3Q z<|hamJ9sKk%`+mF#~g5Oui6bZ-WudUg15d;{5HhDxE#h@D(jZJXmbl^suQzcdeJ>o z|3wQOEzWc?eJ_!mAXC$Rtd>M(^6%4)FeI&-Z!Eutzd7TpGAz0?n&Yu_*MDE03e;hp zeg4syhaA0ieyDM4)9DdnS!7G10nH|?Y#l7JN+Fgj&Ulo7CA;)H zq|ajq4#0kGHwjYy?N@}pAL8=WU8)mk*u{wC!sqBzNS^lRn7Jd0Ipj}bOt3Dm$96$t?&Mpo zGldt#yr>i#EsM69v;w|nK=)YG#QQ#0erL^(^%HI54waTmm4>&e%m2II-nUKaJL&w= zWM3)kmHBfyT=`SD^>@kcsZH&ieoK-#DrP)k{po>1l!^AqKuP6j{?f88TX5tKk)scgWmpLx;~m~6 z^U(y6d_Ty(PoJaAF(Ow+N%olE4((A@cVHiCKeO#&>C!Oq$%f(d?bRK7xn?CHOa=Xq zN|=?q)DK1zz4EWBq6T^emA;nTp)3D8hoBNPQO#ny<;@~}_BLG0;TEhe6?UlL@c1`v zlHHiUT+0M1=m!V1I#A*{_VL+Ti>*`b!m7Q?wEtpP-b7zsQFt4 zYGXgZuSa$6Z+anC%3#S$7)9sF`oM0TtK;!TpD0J~msR_&y-29I++C{xkN9+G)K%ps zIS0PHj?aoKSbk?@hg`qflKvK(zKN}KF`Ej0@QNkb-8x0GDnt-QtRLze5=#ilNb=8m zA*!rqz+palWW`OE(WbYPD;MFjY#h3qQuGB!4ZG7~W)m#F|NYNG(aLjMWD~>q&2+za z^p4v3j1qd!9MrObb>$6%|5*E1<^pJ(=`FFLC>#C!T;*w6~ShJ{ZGU6!I7-Pab- zHWOP6t5>e zUDU-5FpIwYL8kkOW9 zT%;2522z!HO-m-uGQ~571bq^(v43C!3bK643-jj1&KY>E4Y}!0o8kTI66e|qz2^Sz z?d8&TSCic#ERpOz$J1feKfQH|%#j{yqYu0(-If^~G5}UcQGiMQy?NGu^iNN+ko@F- z?8D<&$^5$x?9~iQx8a=g_Z~58^^9KG z4(Zr?1P5{=;glUf^ZNc*hYm;AWqI{A=fKp9!T@PVZE_dPLFwIx1mGz^t9?Au2JLhM zpO`;PdqL&19(BpdlQgdMdtLP%>skqlj+yEk`fG*}e8-(>X-So<1A%`gGgmERt*j*; zP0?9)NvVgYM}Dwzcp~|o$Z0<&Q_E|qi}o*f~ag;n|-b`UNcylMa@+d|3ouD2C_LR~b=mS+PWk_L{*x7~(NQ==1leSPjV7 zgrO86DQuZ8SU+5$*ct9AmTirX`DM#17*}Kdi2@U`KbfHb|0vnLY%ZGy<}1sjMF2 zy$i$K`nEasy>-P(UtP+KSc zqRn;I(w$6SC)A!@_A9&c$+Cd&O@j16*EYHK`rkL$s$T<6a>f19^RFUDGkbCzzUREy zmUNS;GG+-D+#Lzvu}*WTJWBdVQnRW3=6xA(%lnPpzm99u+zp^t*p|=Up7hk~-5iH= z(B+Vis8{c++`^lFJwTsM`bP(k92G|846K@&dAjEu9~h{A_B^;$wTwM#Aj8bQJ;yW~ zR>~yKY_5M{(Vu#$Ii)tI8bESt$GgpZz0(S-5wXNbk;}?cDajP;symi#>b;m^D$Br* z#DLgQdOaPOWw7@nck7G_Fy5tX{c#F!mNWRKC~rZfoAYe;C}!XDO{#lFWmDp%5%1}) zMzleNqPEtiqEo9*2!UCpuiQ^5dbaESsWX_D!}>QolfK6@uK34W0Yi zSQ-c#t-NPNdZGQ~inY+?@I%+NW~b-rRNm&{K6TKy?%w|keq|&g(s#qX4-CkL_gg|Z zjG85%xm{@Z!?vq|AZ10l*c8ZgLC}L&TFJK!6skuVO(w*{cJ_;1D~M)w7@JYuDK?Qs z1u^r==s&x8Y!&S@QdXvRGP-$ftpCrS@#u~56kCeZs-NNUsk2Tzr{Al4rJ+hjpN=;z zo*jX6RL?Y=x;s?~OWkwbmWDE2leJ`K_aG_ko@Y=q_;>D~!$-~SGkHgZ4rzgHPn zQ~lNhc2sKd;>_W9!lm5+cR;{Bb*JY~IlV2lil$;+rsJ%OXaiP4OR)&yvcKTX3{wHt zH(=MJptbt;@YF4qPZ?I4fu9(5FG&=jG@8}; z8zpx=y|ZQxCwbNpBmK_P20RntliPnBF4sX*O@04h77chXuL=~j+@tW*5>;Z#f2s&R zc=|e;RuBldMPxk0@Z~SE3O$bR#RG42KmjTgIM#n8&0RS4Tm+5&E%@hgEmGAk-Sr~c z=QOShZ=3>Xi~y3%NpPPd!J915?(J)#A)0@OX+H~esD)C@9I=2k6`_>>=_qa`&I1a@ zfGxr=bI2LsU6O_gaoN1#qOT) z-;O-(uZ%Ao-5?o}a!$EJ{~Wz>UpA_L?fD5Q5P>{^6MUTdr0hZX_L_i30K#{DOaZ;} z9k?f|II23#5v0#?ZjpC0RGa@Z&t)WoPPx!2b13fNG`=ekBu%?nc;460#cwaCj()s) z4z?b2^i??g2mFybcVOMaQkF+d&FO8Aw-#6y3I4Oe9+n*0Mb|>!>+vENEmqfSmERAo zNAYTE=)b&JxjKxD_LZJ{t$L9zGuhopOtD$8IQVFxVD|3Leb~j#*X|25@v~Z1Kj0S+&xOU-vW-RDx>WfDC(pl_Q?s}n3AG97h6(>uIqvo9gkLzBdr}mUzbryZ z;x1j@+k((ClHK2#YRo13&Y+`r8{-=f=k<>rB3dEp@~EI{IB&B&+7dR%arkX9R_;>JtBiK?d%*V5AFSZw(!-wSk2k$mu1}a83JrGhqVL8U zH!oz8^erX(+)j%N#jb`snysNt%U^Acg*=HmO=3#2%0_ zv3x(cun@ugr&4llSj%F65@R=TRq1_NZ0swkA@gdY!bG9uMgY#PF!n!Z(}~tf@Jb|slJDU^yNXDd*~M&5mC35c z`d;S5F~K~B@Y9>1h6kgbFOty)*!y=M|2a%deyJ)xDQ!@t7>$vVhzj3?2kvgD)KJs4 zxU<<>CL;}K#FX#!UK%uG3p^KVUhlladu6O-o)Bs>=bA-VFw#$wVGYt@S}WL5-kwWm z&3kHoJ+6NXDIN7lN3km+rG-uBKMJU9_4cd=4I|Oh z?wY76b&Z1$xrF|Nv(9A!eirj%skpL`)x}afHiP|<8f(+K7v*=120WhjrRzPJl^Ch1 zD_|Y1yze2vDm8cYxUL*_$I7h25*0t48FYK4!XWmh^K_ogWgG2cFXd`?e-n#I4)3%X z^_xIwGJVQ@aZ8L*x~^N*^2pR{ow}Wa1lQakx4OYbMJtZVgg?dR9O8@3!scWH|38I; zy8};c?2rD>jm#25Wzuk|+;-+J@RK%&eeoky8c`OkWb~G3crWYZDyADfCv$E;YdL05 z=3!u;6Wbe4A24;I>l3@K-7x+z;h1-STao(FZVp#f7uh6n>vC)-vy`^*&3R%$>7lBL z0&$GYo1FGuBsLRQ4;7Lb9ZwPqOFFLt%}iToo@HYcyEn=4<&$;O#mR3k_g?&Z-}tTI zKJ1ygoaa|gF7rfQ_Blx&7JJSa4TL~2Y=ARRk5_F^90Vccg537iK#);mr|0VpkTbt3 zq_tkE&<u(;K_sqmFb^qv_>zXleTU_Ew?2?eri%A|_Ttw%HblaB~* zTpZqI`vPwGP&uyn2bp;QH6s>qtb&G^0;)UL%PF=f&ymz%XTkgVf38QncU^-|j&*GS zmMGmK%yA0&QqQHWvnX8y`Tv_tAP0BvP}tBoh)}_|JFEe+U`{$uh7MzgW*-0fST?Yk zEXx`E7;HtpmjUGR+{yNLhTq@pJO0Llf7>hWcLe%d3(EmY@xfp5lJZyr4iUp-^MAeX@5E?7oBzgliBJ)hECP(q5A zU;uoMyw!}p<#1a#YEa%4w61+&ln?Z!V*J#$XiQ)w} zaE}uQSy6V%VhFj=y&Ff-nwRkZ3OE$V(fCDLfJ|83J1WQT0^|J(Qv?~Xsi@GfC8MVM z+e9pWvQ$Cv0U=7QOMxPlpGC_oP-v7$ku9i!)ZB+h0rAgwkdj0NH8jYHo%jSl)#UUO zk59Y6^8nXun)>neX~>^W*;O@B9$VVXY_NXIeTteFm!Mb2=#317oRdKtfo{IHeLXdd z*!mDYPhcfT9C&$0I27Asqx=Y_KDXf`>hsMxdf^+3Oqk6mixPPcS7XFy`o&Rk(CzNE zPhM+^Xa9t-y}Qg`z)uvAXJq4HAIDZjVzgsX#RdP_{*tV` zb@1gp1YkVZ)w~#=Xt>S_Ms?}w-ilH4?yl_C;e9d(1>1IOR#{@xuJGRjRe-O!)HOBzRC`%+z{53N%LKjttqaV`rY*36)bV?n(`Q;O+3smC2YG+zTnv(E=H9_5_b zaTE@97V8$jHFsBJmS~(JnS?FnZXyKB87)z@wr<;J#1 z1msx~2>Pkrxii~M0_2GxK+cgeG0IIwj5=aUc7yD@K1lp>!%B5!>hT3W)k!_y*SqC& zfxZ3%Wo)6wa7=JYRWws@-@_ONEO&(<}ScSEW}HiCax?wGleipvMD7 z^6%&`34c5--Mr~>pmpkPYR_@E2Umhq2{wU^*(*;yytmuiv-0A2z%1WoiO;qVRf$Tv zoFp#G24JoaV*|C2;=h=nFD_S6INTt#G7ReONlr#2of-zl`l{XP=C72n3IAt2!8GY+ zG0n04Px7GAE$Dz^KjGI>GN%-by^i`kQ~$;BDH-7CA|q zM21Su-oxflftw|g2e&UC?c$q)ukLWw-)Q5my>IX`xk@xx@W}0@&P`NdauJpt*P?C^ zo8mP~E=dUOLT2!BFYo>t_os4HEDn9o=Tqr4yZTl1X9_QJ2`(C4?|yqWU3f#zWDYA} z#a;_*y0?P;Z6mlD+nb|d!&_4MHF{ZKsKOX;=`v9jc%P{yc@P6{LcBp2=W;)CG7ncduW*U74c8fzN>_F&E8ezbdtpz z#qfZ-dj|eezp7+@6&5Vll)5&pj=EZ2q_|qT)Z22zs5<{&Kgd;-tyo6*NkouSM?v7^ zb=7y(*}N5P>f@MX&z`tK|B@k{O>ykaibBumKW_qcHe1I>n*TGb8#G4wLfaLs+E3Sa zs%lz%g6sZTH~ng*scmbe9^OLouOq`j1}Bc2`bAsq<27Mnq*if84QIy}jAu>*+*c_| z#d}RkfyZ-XzqvqXjA>qMEkd_jjV-R!ysOpVq!Tor*a;#_A)y&X=0**5lDSbFcBbS6 zj48Tt!5mce_T}%Ds_4C+(g~#t8C_(g7O%^har8vV%bxHd_xLMF+U#LBar5va*=H|y zxz3g)&%LNIwo0Dx7BlM8yoVb18$;cLXRMHkExH*!<{$Z3%n{t&{WLoQwFni74ZU#1 zFY#FQFNia{r`g1xoMFF`Lhl8iPD%!SHYq@@#e;>Dm?x@^7o^DfMoDMaL7a)(= zch2l0&U0P{KOtLMbXs@ST8e%D)@dfXYXXIVs=%`jvH6=x6o7?~xAJ2;s^xCD-oOEt z01$Z}An_g1M?GoIP(6t~h|y0o73dN%2RPhf%P@0tc4$6G3I_`qlPGuHDFrE?F$=-N zjsRT|hH!y=b+~4G0+4tu2$%=_#C&Z7C{2kun(hN?Q$3>)OgIOm@??Y{-{9_0#a#+A z!#CjE@EgfguHV|}n9eFX$lJ$a5kUHJU74MVP&8MWE?^k^)?W`puGQfeHWnzD z0Ta{!ERy5Q+_L<#33U|es!W;ra|lWbVbQ}Vk2Q)cx=t{0opKmiS)WKnISSxm5dq5z z@=Q|<)-eUiNiThBM)E|nV4g+6gefO8)!{SxvVcac5L-@3;$g`U*#2VF7?6P$aX88{ zWT7#07#5lSCxPv3$FmADL4kSBqJ00xyo_fL#HUYhT&S=Mew~ZH>n|jTM+~m3mSt2j zkKrC%4C2JGx25q$?MaSw3i&KPkpdLJ_2($0`BtTrb|h#Ry(ipG!~{g>VMa21kzTL^ z$};QoLH%2MtGo^k$IMRWre`=?f2AROdA!!zJ{!E^0-Adz2xfk9_)Zq|YAM3Ilm{R+ z*f#pq{*V&j@!>9tAfoRxFa0lh7B3UWvZsmCR}vKhq#6rhfkp6|f$+mf+qD;-fP6Gx zi;&T&KyshL@j}Mo`oqq=y%=R!ZvzX3Q&!c#K$zFohKo6vPoPdsL=yS*JheUg!G#GE zA(avEj-Vux%cqsGQP>{;^pWn!1N#ZFANrL8V5o8zalGGbqeuYOX@=+rLool=E!4rg zJ_VWMieUqEDuDa8>#Q~O$oMh8GJsinGPT4e@CjBUL#)bBA$52W(|L?ypTlGEA2_739P^%7_q+V-uMxW-Wbz z%hGV4giAq_$%t@Ql-eog!jgZf#VNB|!g@GLdGIYC$azcuVX#C$a#o6m@(r+ue1~8` z!2;{+s-^?M4F{@ZhL}@RvR4y-(wM>vIB7puJzFbm$n17sgS%)zr&fB|A`4=&YU@Nv^uxVBe3nxtG_os{7SO@%P_CWdjeQVM_`5? zv$JkPUYo{+bVBqr)*d4lf0>%K?d=Y3;7Ah3o%v_id_}GnvR8~TyXB2L0SN=U5254Z z1+z~veiCM0l~9l52gv>^J2Lal$&OPQM|#qe+j8Hh?8Gbd#>$uS^36N?Epx{R z;{o0pkE8%IlBMOzFHxr3mg6Q#fi4D&M*Dw7y9^q4aCT+Bp!p58xi(3%AHMKB*~G+5 zL#of0gPpDs(P)bb9`Xj!r-@aWK{NF5@9LXcTv$7iKF0!e+LdaZivhcCyxYqLYPerTsu|u++ zFZwXX270_7N$4ASGG*3Rte{}|MoGC8-bqKcbD0rD;n+b@_Be*CTE3~bmE_d2_3iP z#De+-ghI0C_fLmScdb?fk|y7rm9&qm{TRIZGh3}>g}V5sa73O6V=1!9X*9Kc8DTor z_s^4mlvXSD3ZK~DMh*15BNuH3657beGYI*VcK{08Vp{x7w#8@F+Q+bNgr^_RaU7JI z_mHQ;9s&u~bIo7l$#nSN<4*%`+GA3w;fyOiMDHi1kjC4#6drKO^ zfHgoXtr_L`430948Dhsl1)%Amuz>r5x#wm6-DrwT)#L?eBk7{A38pW4kPD7OBJRUY z{FMa0LUh>vX;@z)Q;`Wb?oiyRaW$k7oE z{`H(jo01br4|jK9+`qxRZ2@?gWIYX5?Leyw0>{h3JN!u$_^+%cdWzVw4;XlDhiaKi zJZncxbiQH_r!md2h!V37IB5P_2b0OSu=)G%DB$l~M_yA!n5$9Til?qNvc~~PI@gxdawrg^%BoBUtb^_X z@UN~*0mp-BnA^CADKOTim;2Bbu@C0TSAPfi%FwxLpZ8Xe4iH;Ws);}KQ1$7^WC7wN zLTH)+`yN{N1PS=0!9!|J{Rw@lRqhnu_-uZ7YIkHRfqqc$DHkP=pk&w0{l{TWkyo5N z;eq$~ln0O9)0nOvl~ya;3Nk0b&NHO}ZwPSPPBGydN*~H=``~|x=~y7^sfcQ|On7}k zq%nm>{fCFEZrz58hh2(m6XNY-96c(u5)AWX8cH%#&3F^|O_-B$M;4KyqhB0q!vnX1 zV0;YtS*i%}L$BW_s5?8$Upe~*ET7QvkmFX7Oo<^X|yuh_0f*{*#(4VHv-ipO?FfB>0CWa1k&^POWNG~IsvF{86J zW*_|iTssl>GN8!IUvRiH{Vd+yDd!75=PzjyF;cTV^Ns-UX zO3i6{@hM>mDPfayL0z)pi{X={N|%v2MFJ|AIc2BEjI;r9I>!guFqX2Z`wHZh=D}+P zXIAuW{=<0_mqe)qbSfK!STl#qa4P{@RO; z+kW|;m;?I=eeF3Ui(lb({MUZcBm1mbzNj3>aBVS1ktVRwe9L~z%X1%@ce4SP{j0=A zXg7+eAy+G@vTZSysJ!V#E+T64Gh4E0vdr-;$G!0(Z&4re(TDZrt|+J=Cs+davv|MD zBsr`oPrTZ{<{h>kVq_!yGpUV_-nP%fFO%&!+3hf@J=$J0LHT1sv-R4`N=*{FZXR`wyk zX-$8yvsXjS2?nKJQK|uNMf(5tnnT{U2=}(%4i@YUakdqkENv-FhRPavlX1k)iA*gh zsBE7!H`i$~TbBV@aLiJ5)~VS*`B0;+vpjmju#GRn6GB?L*)JrEL3y6m@Tq`GRg?Ch z&|s2pXyw_KeyNAy`b3HHT^TpTX%&ai##C?4giP!rtW_|bf3&v@L@&8b(mh~#Fp^`R z?yOaXv*8zCp=G=5@f?h{$?@@&PS?m8G*++vR^#p=t$uP8x!4yg1;!gT3R+cuOGu9* zn?5`)D{91gH$;1{tj!YilM$8=Bzj{EuqjJD24-TG*;FwNrG`oVmo4PXoNy-|bJyIi zR?O2XgiKC6v(?2PadTB%3?=@7@JIiFqzJCBh_CC9)^n6?8MQQRAEkGZ3zU}jA~C(= z{!3EuSN}7?oW~hVOWsFXcsS2m+b1-g>_7;ISu)+^8L?}tZ<_v!RS~xK8sfcJHFlgq z-_9|vezRx%p_$$&! z6MSU^S`#6YymA8`Lv;SsCsY|%opeY2Z7|yz{%YLQalwAe&U8|VL<@3m zuPyj;UJDBQkpS{IOmrfcWOTv9UhAE*toFq3DR!lT<`CX`cDGufuI&`-r;XTxVA>z;59O<#!&P1F&!i+)9*A@Xv<0B#3u+W#*SZ&Brp@>il*%O$W<7 z%RiQb&02wXLfH-O<0!#v}Xjv25$Vi*vnt*iUD$w1Lguz^iInwBb&6yc8nK0IRW zrO2G%2$Ayypu@T;EFJ|6^R-bn0*<&?fB@RdktQ|;oMDKj58!XahmNPznZxYR#W0r-U9Qw|*UMUfUL?NlDc zEDmM(PTA_DSH`~<>v4((l*v)*`Q$O@gECh*Y^FhUpn=X;=M* zla%Z@=VN)Zo?#Sd^afvVziGXN!-a#I={dc=`qfJ}>-p54e7WSvz{ssj-?^7p!CdgOlHJ>_5|Apg zl61sB59+DmAR~=V>)2Eg@*1J=j;8M3#3j8`O}qV=H7(dMb@+Ub6T9*c^{wb_{9okZJ^(8N# zm!L=95bA3`SIdQe%YYp0zEthp(ypRqu%X9!`LwDx}5L!P{d%axk7Zt;@=6Nz#`m zbTqE1SoJm!D&)w~wA-@$t6r{?tjLi^|F-f&pNno?&#OX_KwK}9C&*w)*N&~}{_671 zx1ZHX<|dH-Q4C7b$9)z0HLc)QWLUDr1HJPr z8{NM83@7cW>Dw111-<171tUCiGMwa>bNr13eV)>Ebgf0PDDb{Oi1YnKrQ+GQEsV(+ z)C=|duQHaMU@p>w?aH|gVg@x=Wc{oAQ|X^vE#u<*aZNX37Inom z=Zg=_a*<0Lq9>x7GZiuEenWen*0$zJWoA9&b4`k{rcg+0s-%<=!o!zrC)IfPz>3E! z;m@gCT#9cOm1Dy^*7c%~qnXU-h-DigrF`*7FBkCw-v3{ep-6A4cTiwPX5&C=?5r@u=Nyr<&L2}Du}q4AR*p>Zn8$$NHaF>@*k@~2Z3^7wKpQ~gr! zLt0=0q%v_&OGDr%O&)u_%UsMl#1o;sxErm^x{FXw3oKsTMU0SLmM*7|#agz5MPHY( z#bOD&6ib1ths{El>X5hR^=}@ZH^WAGie@8Iy1PpIM!e@b_Z!1()UgUq|3OLrfM`GP z6>$_9)zc8g&!2IF>sAJ%5lZidL{e}MU$s4NTVT5quI;U3v8}ZF-bi5qw*0p4jfWcD zyr-v14vD3l&|z=T`S2JyzAp6!YTW&4DsAQ9 zFAB9F6S=gVm!U=o#|vZQ>A_galhTCI7bR&idWr37uM8XI$>2!aAhorE4ZZ7ECxLGl z4?cvf8e8RVV3ip)92^hV+rms#4{_|w9h~`m`O9C}I4LY>5fs+vQB0$fWWZxvo_+u# zjUD_NuJ()vOy5Dx353sTTW2lAguZ8!ol6-9@a4B{gFzh{!oWAcJG8?tVBUY)D0m>; z%VWJP+YQi=?W#D70OpI7)5%)$kr;|7`v7>kea5EuGr&Wkpd??g&jpPu0bg(hkpc*jHI$MyUh^E3{dtgzZ&J~Z1RfVc z0BX-t2Z52$;if}|e1CP-*HpI!|DZR9&EFS$&~cFpUaJ5Js>Y!m>Wdtd-C9wYGFIkq zvkZXxT$BhToOx-_bIX(v z#~&YM93$W$*AXLi8qY>CMHtfOe=n^1kEJtt@idWi%1p>kL>C5WF$fO=o|7E?KY*f@ zFC%5sneg=0s}@D+}9W$oX_Vn*JEvSwA#0Rd3GE0Y`M-5 z=w)e@$a_pOqtRf8Oh|T4iN`%}P{F@bn^YCC$sJ-^V?chB4*7#sdc^~=MCl}Huyqlizy!yoXAS|(yGN~z97JAs$Jv2Rmdc1D_Zv8;$^PK{o3y45-vOpKb)yhdX63I7(6h|g+iP@vGAC@IL z<$A2=Z68HSC)xXzdh9Kw2wD--@q5<%pEUr=&$5R^B91=%oqWW&`)Ue>*JKkPRl1b@>Aa;Ta=6C* zT{1CC;FRL|&vV2~iU6^3Jk(6h@-!-E0kWdK_xi8D^i|!^-i9uApUuDT*FNg<6akgh zm3+ZhB7l7@xnHk!C3;pV4STCGYVg;L!+zppYjZuW`S|w1BtxqB_BBR@rG6iTn^cGs zy>FzOnq?^@Jz%ccdY~?!4|qs)&c;>1BGNjbv6-XUpz>@%Sq^Z)k7fn`HamHxI46*D>VibonB&Js$klhF1$UzL>X2@g$sF{ z{_Ku6yWAoDdXU7)JV&tFSvB8s@m%JZ?0c*3!OupyAH^0uD>bQ9-~Jix>1y9YXuQYd z_uH{j6jgN3Cp5ubWcQdi9cvsr^C7g3#h*^uVO3SAYQ?DqwZj?un=y1%U-kWLNwWKY z{F10;85 z)TPxz!O+k(?~&(b@854C$cV$@5ufqjuE7p3Zi%lch~iYM`g4-Vg@VbVsF?IKEW6ai z-?JT&tz?_MSz5xNjy=NMME}2cRh}mV(xO*w(LFTAaEu!>X^8D!_I|}5iGX&Jn#dH)v=LdtXy$)l|E;55 zZxfY&?>N2jT;wl-6>@;0mdrpdC6@u%bN{TTF7TYcJQ%&KrN44iBnv5I*Ek-*LOE#Q zV;0Y~pM?{^-ly48mA{LyV3F^h{F6T@9s-w|HEF*H`oe_){)$^2E*;mI>5>?5wB3!LsdFei*Q5fz4Wme{pn8-q$Ofgg1F``h(NT8r!Vj#F9P*C7G%~})#<%)ZM>&!9J;DA&N0H%5UaME||d$qcfxsGcjT~WZrA({N8cZ)?qyK_x^ zpAF}jeF?Zc$~L-|D|8M19ZHqS_?vQGME_8Y@=(5pj!vr`pliHvAaVShBUG8@6kh%x zZ+pJ+dtgiGJ1cAbYtA<>MySIdneEAw3MAEkcpdUYyiJ22M0lP@$_Q?i|680Rfs=Us zdT8qssB}f&&T-aP7{VCA#i0uQ(N-kd=t+c9p*=|pAtZ~BLnMrq>8ULn(w@(P=xmnm z2;Z_;4hmp>0)Gzs?CJe8@TeaT$9I!C;G>{(omoH-ge{a*f!ex0>{q@gXoA<78B@y@ zG+t-*zOBfqG3{Ih^XKUt2XsDt}_Z{R^U>tmng9@OG!P;HtIbMcoTuHPa&s?GYL<} zXpegdse{Xp-*cVCxPX{C6kvcRP>j$)Ebn*Jk{wJhyaRS>%CjPPRFgoGqfj^-^dgE1 z=)M}IzA8Z-Q&(q23i2gyQ$AKrKNj5Rj?Jv?L#QMBbJ>o7mtCK7 zy2QKEX1-V9W2EpIM&)4R(+!Q{8ReSFkio-x*k?i*wSsB*>Fu01#7f zQ)}9?3xvbk(k^u(-k9GnPyLf|#P*8l0VnE~hI_YpXV$q#-inu~NB~O|Vu8$6^1^ZL z!||(u(2uCBp5>s<{D7KsaYWrv_1^hstiu5a5^@H8Am`b5JiM9RQvhwKd zD{oyd=+Ewx4`KRr0oc`;geA%kG8yPq~Y?2Vq^aeXKq9g}qGv z7wUZ427`VFO>s+VjkdxrP7T*52d&s|c~v@!Ok}yg%2pUy=MkZfOMB|o)!qDUG0;x0 zKw8q{y)Erz?R_8Ay~LUQHsOh>vVSNaoon?CT6RxJ=iPZDUd}q+k38Jyf9!0ClB;Ys z5Q5tzz23f)2Bc4-c(Akq_n7t4sVJ_6HhBi+JWe7UWnS!TvT9+ypYb#Wn7mn%d0Nw& zTdr4ByyzZy-nDs*dd_ufs>)I|`@-x0qva)S8O|L4p5uT|hHdBM7L zQnaFnPRdl;EOPQQHJ$ZKcb()OlM1!T>%7`O81-HOQQq2K6r^bbR}f*!C%<&|-W&Uu zg(*FC6F{$4Sr??wCl4CP>|MHC{LU&qnxidh_?l+yZ%V#dmS<^f4IiVw^(orBlT~-* zfR5ASF&2^SUP+}LPKT(6Y?oo~up^MP^O%*i_sFLdHG3T{m18KmQ0|wjx)b2#yP_h! zUP!sotXKR66D(a#Sd#ad+H>e@zoNhL3s@bTcEC^Apsv$(#XD@l?i_6Kh$qATS3+EU z`jX|R$Px$bTd@8Sn$52`>^ae+8Ocb;40`WMT?1~qb9%p!N#f6C&f|IMOT9#33e*@YFjFVxXk%$SY|g?vIm-3%DC8C zrmIS=hk1(2FOPhm4}SJv78m;qz2ihpYHp@D29DH5azge*>0u(rGmZl!`qob^8@8t` z)5t!7;b;Uk&+Vw){G=W7iAJ^YAer5NAM>5d+fHA86Ky~7j}5W>!7xD@dTB9{WyAIY zie?{AOROkSf1a;=)FS_Ob&u9TrR<;F=)=<}X+q6UYiM!pL@Wz}MymGdR z0&0Mp5U?!^y#KF6;S{X!M~;nLeYa;JH!paGUK`KtaxHt9h6f&-bLF~154f&F<9hI) z%6kC&Dv~pXW}V6mgbSb6*5u{fpNV~B+f<4If&q%~+{ya@K7f9s?x5GECV!b8ceg$q zrZq)OqyhE<0gQ|QkL7kRUK@C5{tzWU&>Zj^?gzLz!u+ga4*+okD8rxomUaQWdg40) zKj3EoQ#f38jIL0->w>BZcr!fCM05jWOW!;s+-=2sr)HwIR{&?zc-rl81l%BRL)V!g zz=&cc!Em=ZbzTlJ3k7r#hv(iSr^BkGx#Kd`2=3J0zztb}`;)`fGoYG58@P7})l6b8 zD0&=J7(ut=Oxq*2|Je{&1$>>~4SfQ*oaJ~Htv%4ICU}$ocgr@Q7t~1+O_E+t;$i=itIqHoWyygT7AUI7+Jcp1?DIGtrgq3SSdBTlj&WkW2! zq`;*_c>{6|m=!2zQNr8hu+GOl++oYKu6D+hw{ofuqpIQ`tHnbH%_L}-DHAuF7E(Jz zjcrItlfJGMPo?P&13KO2euAU>Otw+0hv9;Ss0z9khF_=?QsL=_zJa~ELS`kSoo^gt z2E*(psc1hKe^iao8UDe$Yy2-+G)%pzLt~_N@W!qEJw%eUcYab$Z6nU?82Yg;t6d7b zo)(IEaw%{cT`^r{`GID{^y0B^ObU*f_{QW40bDQ}Ofq|RF^rPUgOJ5#sTiyWmGP!)OL8!7d8zB3eB6f z4MFb<@S)`cGS5quG`mth&Bm6x>ccGTUc)e@gi^DN;uU|zuQm#fFXk4_HuM8-oNc|G zvT5m4Hwozu5%w7HX%rAed<zA%RlR$V9FCGS0;@9wEu(GsMlU3cQz#SHnxR*va5szdD@rgf2ayU&z) zF`spnvu!qld~T>|>Xr`&B4iiiSj1W@Zjuq$WkFH`5>38F&Zb*_xm<6pCj&9bj{-_hOB zzv7(htW8}BPn5-X+_i%qzdUK#@9w=gRQX?k)wV0u{Ti^qqqIFYZfW==#&C#->q5&v zAj8T$Cq1Kzxhsx)I)-@F+Ar87WS-_|9N^@u=%Jl{ZXb0w=-#yOYyGX5o!<5W5%atf zY-}4D$$1cN?X|qZQz9?jhv_vmyG?4LODRx!M2OquzbYF|u`%HZsvfGpwbwk?JFIhd z$GMT)=JU{2m;sJqM?))@i$q{&2;LP0{dxkspWQ>A2|yx!bt$#~{2bIt*^C8ZnH zUE&)@RKTXkLA2o~tBosXUx%ecg6``m$+#D%o;#2#m5_1_13~75G_q%iup`-6Mjz&*+hAV>~y$Z&-2hDG` z;@B!HJC>d#y2btfrlShsBX81qsny>4q!JtTo&~ctUj9*7Fc~f_)lY48dtB5#hFsi_ zaS*;zHgFH&{|F9wNA9+Z89l*?`&Z+KF%F>wDKAn8zZZKh#;8LM0zf;qL|FsI->Q)e)F52n%_6tz&JhZZY>Kw zqd1W~Cbz+CH`l=hD)!GT6>hToO526<*yIcB{GX3Ka#3`NKBr(t)NWhA zT)?xC-RM8|v)$_Ueee(1Ist~H3~WC(HU)~T15zWFlXjSnqW(iDMA5~rfR2+6qK0D- zU&ZYI)%ZcWM~5cV4kU=9W zdETB%<}*xG7?6md=1t)~O3H_K9G7#} z-1FdVot-wT!;dnD#v0@Q>_sawNrxm{?Q^S23QvlCT-OcZB@xT;eNQnruM14?GaWk% zNcW&;eu#ffD&a$?+Jgid%}eskKELGk^9Z zTRJby6*Hq=E|!I9fQjMn8aB8{(cD0Ei2lv}zWDtNF_L7Lj4FyEAVqps*M4WSjeRsA zC~J?iDD$bq`Yh5cP@L^1OAQWXe)*H!B6Vf_?i`#3; zem}oh{$7pNzZ@uSeGbnKZhaXo=jdRTZ>SCw*~$`qQQN5&ouUHDy9uN{rx*DLivoL`8;(C2ckqcQuvmy)uj8Jw*@#>WTg2_-3CwU>{aayu@B_#4*C2|Lu4sCkyU(tn5TJH|F21Y1BLpZ2N6 zCV)fJG!9z$9uIweTatRdewX6`pRVwPU|C{nE%SWitPSr$Z0@|ZmY{-kU#L#&;gz4J z<4X43pm)PVeXaU+7bXiTpK$*K#e8bBOkI{5LT@TR0)M5>XCoO}-XC<;9rK-5+ov2v$+O5ccU7L+6MMLFsraeo0 zYHEoUF3~z-^s&Vr!G?qFeyI0cq4V^ko`@>x)skZSk>p}*p$aSN*Tqnxf>eczg^FoJ zp@mH*>Jx2_14(2!aW$2slc-;(mnwNHfE#i3FX5>-H1!c#x8S4cXii9}HmI_0s;eSZ z)|sY`l7H*Xd8>RYu}$)&q$Q`s-|}K7(hnEX5=TyLf7J&wr+|6svZ1!LlGAG4Bb!l! zM!Q>kgguqpCx40h^{f3;I!txj+*v83ty|kJd0wXVLpCpRv&Do(M9eb!>@g7C1M{6TKg%RT5u0f86-l>k;qVHQA{Fv zH*AOa-fTaSfK?`b~?ITET@}OOs7*fG%p$yBBJ;QH= zd)!{5JD7E`wJ~44^hictMG%`!(xM&4RynK2WT!B8x^Lo zbh4DxwDAcxy>UiYTiLW{qVjE+93rb?qiD!WkeRPgTKgN?+hIR;nH~1HR*`mwI#&zA zrv+E+cIN$W?WHRJ$H>*KW@rz(0~nd3kmM_4 zWPpPq32xoYp;QqRp-dvk%u3I3sAG=m8-d_f@ON6qV{Z0%SI^=kNFkfXE%;pEWO)5J z4Fyz>_R^TCwMP{cwd14sjs#u_Z@#TVw4UaJP$0!es1|uK;*r5}smy zBe5E=T9FK_KVa_pk>Px3TY!ZhLTnwcd2+BbC_i*BR9RG7Qgs6ofy6}WcjRTKxP@^E zthJt-sVB4dT2Ca4d82?9k*j08z%Ar@vrhG#mhyUmB9UL_^HTjVlxWgeG^X0BrO3-g z^W;4&fwQ+q>pUm_5L6bY%*1dwcrtN)P-}Z#U_ZNnV6H)pzQq8LUE2@n;qItm3Zqgc zc!*Ik@twm%i4n)4chY1TVHoZBeLC26M$L*C!^`N0&%;)wq5)VC>jtw`oYe(Erab)G4AW{4eD6Dd>u1NXQ-O%?sbgEy<3lm5mSjN zHgLq|@=+{Q`5zjejHAHQ&W;|+qoVhPGLi!lplsNyl)^+I8J0W|s!Ua?&ycS?-g#&U0asJbTR&lqzTpxNw zO&HIO;(gNNSbetr-2&z=$%;lG@2NRQNL$2YC9t%l4#y=Nhn_qmqs)eIuSkt;)pHYJ z)9=nBVT!8vyNBav8|vQPkmhAQLcis(0tG(nw_N)i-UnR9br+2f2|MRHsrB1@D%m)2=iJL`I;Ek?(EDTl~wOF z#Q=SZ-hM37u!7DOD|@%a$1KbU@CTex(^i*>>sGi)1eHDYSJ*3DmkUv^MvBM%7H!3+ z6_=c@-~HropUxHPpFY@jw=dF2W^19*&3L@nagZqcd>D_|6n!eA*tep?qhI%i*~uwL zF-$wXz2@Rn(8~FJdoUkcuu5j!MQ4{Dm$9Gke<9ncvi6lFq^Gmx9VMY#eXXH8!?V9- z-XyKggq^wJ!!|OZT_@rR*PZENNepZDm+CFqO^qLvvl~l8X~DyYL2!rEW><^z;KkqV z?6a{*&E6Jzg13)&NWDVl&LY>};L7M#GHAdu7xzNvqu@r4;IvAg$zooX;88WZLQ{Ul z5F!@5!)_X~zTkqtGx+ehNxSapK%wBGxs$Ws;!Ire%ArNE6XLVWYikw>y=kq1(y-eS zO>!CopP!P{+7eSY&0ercsC6m4gr#i41RH9F`!00cpL(mO#y8I+d)vgSt(m98cE1H) zf|wi0Oz}+3x7CLV=d`1(`(H3UmQeiMAVMeEuWxBd0veXYr9z!D|aUvOFn( z(kLrNq4j^kq<1A9jwMXLCFdItqSTnw=@o^wxLcJs30WvS9RuR^(_wOohq~CmC*XfV zKk3)xv+Pul1)1&ROnYtd^|*Dy_#K;s7iq-MH{-NkA&XMv_>xH4dHcSNJ8DWfb13v7 ztFekD@9Aoy4afgX7A*}7$n#Bdxc8OYLz5*IT2!OPLGvoP?x{*fF7RDCyi{*rFk>E` zHbr@m{S{=S59XH+7Bhrr@!FcHYp&!6Hzi3Vm1}XcuM=g>RC-OrW`ME!~nNN)$W@JSc#`D+&(yggy zIACf&#9T=pXTM{b<#YMbRCP0BK`9^s`-O?aG{5Z zzc`71al9yzxEPR??cZIP-F${B_MKkD?i+5iLca!=s0S?FqhEAdV{aZG^6H6Fy#?K= z*Gu0a^s#4mc69|*2O91MQ0SNC^W>yD9d; zWgtgT^Goi3<9}uDFFlpwNpR>@XDRA!4MuUUc*r1 z91nkn`*Jx}c>#FsN5K!D*d+h8Q^5R)s-K-NLqAN|N%_~tQrS_M0cWk>?8v3CWC?zg7hjPjR53Edh;OBd_0l=_c%{ZSxi3Io)z@9BiXf z-L&3`OUf&T>yhiF2YINW{EFej8|PlC_s7^t+0sAIsxYmn<52~;w$1EkkNutayG~Fs zT1K{LZN~@}x7i=uu$wbf{)~cxUH_6GnkBiHu}uD~4CfR5pa`m~WvLLT5`>S8Le2wi zuaB^&u)3BdxfWk(({%o!8Y;CAyEYrmV77=n*~qKv5wl@Ti0&jayC>KB+ShMFe4 zqdyfzU6kyGN!WHVb7LXf@^?I+Qaz%y=i!I}y8X8vdNPvcpiEVeCr==&N634zlwF3^ zL0y~o+JooJ=EdkuY``X@O5hFxph5_9NcWjQdGy5kFeNl@K(%lLhSSU>BISInhw6uH ztV4)i7l|s55L}oQf`l^axfV-8xUWn_YMv>B_7M+5XFh(PV1xYtpXY_eO4s%?%*2IJ zlpk@J>o5>leh&t8{#okf5Tn>GR>C7h08yCFl9PYjeX&YR1pphEIGQl(s_E3YNw;4n z)hkQVoY&^snaN)fuKfmcybo?ftKTvY83iuJfbCtqIlH8-@dzH*KQ<)B`B!3Eq=EzD z4~LDXot}wYh2TSmW@GStw5D4e^+8H*HyG#NMG_8^l@0o(FhuT^e8@w@2C`AZeMzC} zDEGei_W_ci-3F{VG&D?hN=}eY5oSVx{Z9wN&94wxzv#sh*Q&j21|4|lU zT`}>(%>>l(23zX!Mi3QL{7a*y6(+Yh5RS*2eTkY2_{Rs=7k$O6EN~phKB1F&{Lp ze0J${Hh1N(_SZzn#80@*Si>C>n-g|5GjBN8@j32f;p*3n4N_rYrkD^YX4@o)t?7Kt~0{+F@BWN$v%bx|tp0&zGtdM33DQf3-OZ&Nd2M zypuyUk0(Ww7*_4cm*8?)@q;PcTw-WoQuf*JAn7JQ1bM(KeL8sQBi^ZO1r_0bxR)Wg zQT$W}W3I1mVr>}qs;k-i?4VevDJ1lF;&yHcyY%!Y zGb_^rgiFivl8br%?$;dChQ7MPi@0fxflvpzu&;|30!1r*6GHE0a{xbY#Lh!dkIsf|ChVxI1T(?r*uqUM@V3&4jp>x$`-sW%imA0Ch#rc z0`@R{@pjtBuzSKu=e`s1r!Pa^488T*t>{9`Lc8ub55H3x%DKprcOW~~$I{UVd;_^n zTH1)zc~KCD-GohPO-!m<^KOxaw6Dc~yeo0@vpV{mZ35F9;IKrMc5bQ+Z{Fq|Zn0p_lLXy#?gCS_0-v$pvIJNx-Z;Ez}K6}k5nrwq8b%SGbj zpu$OF6|HTduBtrw^1@RliE;DDHSDoqQ#_BkS;EOki5EU@PRA=uacwG=&>Xg~PJy3( zX~SG?SSiKmHC%EL-4Z37kYJ33q8uJEV>agciEg2O=dG{2&l@Eh@?dK6WS{Rd1zDc_ z`+QT0+?)*YQVCJWER@+1Rn+!@zou) z)VCcHKD!p$hy1c?f8AgX_UXYm|Z~Gjkl5X_jZ` zYOv(!5b!1i3-FiwVdV`FjCXFKSAYVZd<=RE=!U=Te&~6V(TTIhrVD_En2P;YHrl1) z(XpFMXR+G!e?UJ&&C06-cWVUB0RX4;_ebQ!@{_3`jO6xv%FUr89g%JYh$ zOoY+OL;+9N*w?LRI0d?#Vg3ZTHZG@F$R>C@6nG3r!db}6XUpJY&IhS~g5aDeUKW?oCc2s))?QZGRkhhSLWW!xe1B|`IYLql7+E)E3~awhQ{*N4ZVxvB zr-$r<-T0)4UrJk26uR#!;sW3vhIR+9FUG05V-1}hv)w}2;Ta^Z;2M!UM_h@+hOrGW z@LFGdJVg0*PW~*_=+|l*fy*AX++nG@4E?!lb)(cdfXSTzXg-|WH6$OXD zpy-I*2KCZJKl*=NA(1MibZMYXL-jDn^}nV)VrXXPImQP=&{v95!GLg&S_OOcJYNZ$ zTAM~fia~Niw~sX4{)?{K(MnmOx|Zia&S9S#DT|#2N)S+rF)ArkenZJ?F_I(i;Box8 zRjE_O%Z2OkL*XQ=?Ib=VT4i0=b+fp6L~4zH3+Hs%dxCS4PAW`~!|4{5Ufzkq4**Z2 zHMCOsFu0qFt0)d2N^bp$^?*t7oi_PNhEAb;M6GO3IG1A%^)(y~dgXLb1paT%G%66} z4@y3o|HIkX_kj?8{)$qM%DYi&=kc(8p$6Sm9)2Uv!jxuKh!W;d9?eR%+xx`m2 zk%ayj8zqUmEB(tokHrVF8hn0-W5QfojvqN_$E~Mj78KYo9nEv}Nr_l<@rl6+CMfwg z(p&O9s{BquwF*Z|t-YT}UK^`)SCB;M%rrH_Jzi5Q5%chGi;1;OLb2}wH&eAAIh%NZa9>p&E+Ackq?iIPxZ;`@O;F|caz$NjIYWCr$d4I>G1tG8hoZJR2 z#>G~v%nNeo3oG;qKkcMXz9umHi@@G;>zuIuP82tMU(cB-I2~F$wu=!YPs-4_WZrGn zfYHZZEB@~yf*|Mh}`I6AF1uICA95a?bSAW@SQwX@cIGF^kDWkkBetC)w8;HT!u^gS}I^K^SKJ zKsq0S`>L4#`QaDOOONqRwlVTl#)8Xo8BdbRq8rjgu^Y9Iyxs4-sagroea#NnznQ*;Vco)os?TmD zCuT3Rb^GyNzZjF_hj(s7bcFD8ADR~=^CC3@qM2c!bKnTyzx8W(-zZ_O@p|O!L8MCZ zN~XaKYCJz*axTrn}$k(P852b;R$-`?mL6@8lFpOT; zw4cQDhD-trpSbef2E_V)=PsdFA-wK%(Y$?sbgKcbe+Xe50tCRWd1Cg?U!KtbE+zbl zeD5g~VjxaZoiu`)yYj*U1?%asS-mj$1MMfa{A#NVA<5Q^TOqMY6v!U_dAu{cP@28T zY)bgzj#@JJv&iq?q#{bNN6fVm^2}ZKJtDy_!!R)#1Qp@a;(DxF>}#(oFj8WvVIa}o z_=+SHIxjplW6B*OEpP}AK7GZtxt!*m?ls~!s+T1qgy`EP(;mYds@KFtlegkjh9Yd571_M)Jj7 z&`H}$^8_QuVny74L57!4O6oq%+|D|u0@}LQ{?!%6x~j1`l8mZ`Ox9}X2!rGihbmP- z`bBs4ixJuv5J@V60?=r;%K|0@=CjAv&xN}Tj?>Jif7dGOv1{jV-ey+K+*S}2*-Sbg zT@q=1F*EuIB%|wo)aLNGuU*J+5HAU?_6y5p#hXb4vpLz#!Se&J`} ztp3n%h1JGy6bk>aQ9x5^lXQ+ zcX49;f?--gN8Z)zwaM(t4orvK-mSLjn@KQhi%(KXseR)`jze|yS9CDfEt(Szk>DL%;E@cKR9_)g`)S*9e%*Nf^|r zr&^x$gv}a@1l`ry9R666P@`mvjj*bFF%YgJn(CU~Y{4o)TNQNRm%W1!RU+&RYYwO| zx02os*14FQ-;rRL&>HaYh|ipA*h(WyCWE4ygH`*|$iO7h<6F2{CG91?ovPOJP9pvu zI@V_ICAhLf54*DPo&TCeKuPPK70mtCGt%U7Q95Wj8bITGDR6^{i* z72lP*CzDrk~-0~ml!=&s(QOpicN&9 zs=NpI-$YL3AD+{JhG< zfxY_EO)>Es)nDDZ#FG8uN|jke+e%$D2e%zl8+&z8Q-%vM}&bzu(;)#o{?G*fnb6;fO;b2($iLgp;> zyd8go&G^DISt8Ewfr+lfcUbzjNZeBWrSdHv=b_EP;^ zlKa5d*myy%Q^q>`C7Tp^K|anbqVe|6L}23&+5C!JE{1PsX`G_E4u}z;*RSqB_8WE} z%@yJaxDA;8~=eJ+J}Aze4#dRoW-aCyW8IXaM7c|ZHsT`2Id0!Q?*e12c+68U~%pSbxYfh5JMAp0QarF zQbk}uHxu9*&>dMF{XVhyZ^urzOJ(xYG@Y29*?o=R>B2G1no{-$7LZLGb%X zeM1^4-gs#s3Lt>Y?%-!2IfMYT0nxQU-V_P|)e%J|H|W|USu9YPqpK5Gy+QfwpE54q zhf%kiUDkvRL)H8P+0@Iw^9A+FskW|o0CdqrcFCC5f-|l4!6BnVWy!~y|GOtT*qR;4+ku`{xEolHO%LNdID~2 zurQ%)9)$9y0{W0h9t?=_V>%gscp;feyAb$aF+CHL&qYL8@Eue~FuI=q2CZ29^ z#|T=7)=8`NnZ)B6P~%G6`+hAzh;Zf+kVCWye|v|G%H@&T)*u7Ra%DdLmHV0cT@@f{EU#zFdl(oGTqF|ZW_;)4+ za9RRBrwGy|igEuG0%XE)Z?HHi!nKZa=;h<85sr(vjri`jhS`c*?lpf)54hI;QM>WK zn9<=*Ji2ExThQgCy32KWbAdG{Bsyte)YrCZZsIp|eZCyuC~G&~2}s&Vs0u&wCTH%% zAReZ0+roC`-lSyzkiU-r6x4R8X-kk}b>RVoqD#i3*UL4g5IAIk|FB>y;LoDwU2t&7 zT~oc}N(n~e?iWRiLH@%|vi`Ex+;m$D-3z+-x|Vn)Fq=Q=X&*G=aU)Lln?Goho~ zcRwvo8vAiFR}cO-tZ78}q-o?GrkP%`^t&W)n0%+uO&y9&@!fG6R$H~-FLFz&*}A%H zys8)|VfQ*V=*w@3DaZ*m@SGR<=_7tOT|z>d3vG zWWko*zFnP}4YE4(GJQueJE!Du`nH@{Vr8iO&}TeKKKK-kJy*Dj zXMR%<_u?YJitHkL>F_ppVc$}`>dKhQX02ut)4~B{5qQaPW{gOT;bP{m`z2b&n@G!*K8>F58YpwV|qduaV8y-tXP zz)pAX@QUD|H-6`hox&GdtW)2P-`sf5c)meC>CUCM5{Ee+V89PbQ8tXeFSf8>Pv?kk zZpQ6%&%j|GZ*=D?x62dO#*fvW=CFo6oxhy8|LAh!p~~fgyvn5+nq6wzFvfZ74c7T6 z4I8r=gWoUl^1ABr^3qcUXECUVerDJKJM)BiaPc`g2c|((zw{!ungrt+^2enW<17ge? zK+#$hytyG1=}e*k$0OjUa93?PcpkPx7v%-Fi=gPv1pEcI!1W4&wj9ssv_ZTS1@*N5 zQ62*0jwn;Y8NEKl=~KL%r?&K_?zJNIUdhuFH<(AdJ0UHunv|I9cQNdS69T2lW{2hUFq$61L%FUR z@UIV^AmSKpfs86d8Z0Z^EqR}PBnhsy#D6}+<>_kKtzM}19HP?QG$=)kMb9ybY-2Xw z!2pN2G$b}ew#ee$DijbFakGQzh))~vW%HrQGD{5;QJe}v^CgAzfw!eIjMs&a5ueRgsv!!;CvSvMoN}p*j2{PCu#KFY zU1@Se9^Qd8!XYou#t;k*Tu0JPOjcz$&W)>iMMoSss#wi`v%y4K1CaI;B5JpOo)40I zE3f888&&u106ax8Y9mr-uQbG-z0B#^yao~YBC@j)cd(wCv_D%xzqaqw$YyGvp5H@x zMxbtaW`GNb21ttu|2$u7J4aa`*`$31e`gWWr(QAST`I;z~1v13Jo9sMf{@j{kz)nvcy$*zvG|&w4X;HIQGx8hA|@ z|I*B}w$*?GKHmAr4~9WKT!?DYCuMTKE>XWwsmNJRSxcUVBsgQvln2ZMC zzBmv?QfyW%qy_yaB#sXUVxN`dO0R!V=FJjd1MYcepF35h%2@`;3zHil0&=sj&gTLo z96QG|v5Y;dja8eCZC}OwjVnYSqWZ=$4h}sdA2*%C@Q=e*D~=tbCZ7_(IU{0L&F;y} z#0Uj$BeBMfBrAklK&;uZXLh69e}{T)A;Y>a6l*F~ykJg}LUo9av!$HXUn%CiswI44O>-g{|IYkc?rtSS#nL zo1580SFtLNB?b*=TdI9__-nVy;uHCne)=0`oa?^|M_AS@HJ`J)SN_)L-F8u5^~m9t zMjr>sW2=Jtlj}Qk!>}qAC9zd{hMDiEBRaIZ4KYb!s9y=y`64ouSe-j?dEV?07Mtp2 zmC}*Aoq{U|CoSxa)A2(NcW(DA7WmX|Y5pum55_4mdgR>mN#*L`*Hvw@C95UNI;lTu z^;P@Fq_Ul9=)A3#4T`}n@dsbFnBFx156sdQqDTmqOggtlT(3{iQ_MOX5OkX_tXDh! z>(hT>vk1*%6Y6hdnSBso$EDE9$ErLR9x;ELJur4@7#4ccY>zV3%%W-ANxi9S|J6#mPBIN!wUt{V*1PFqPOz;Hxv29iS!kVh zsIqK|t?H=YVU|!+5_<`|sB{VXmw)&4&frs~p1fh_R5QPm4ngg<0DHvZWI2|cTV_XJ z^t;vmc=ehb8=F}_4V%w^ZjnFZ+gVgm1KGd!^59aoOb^YrGI#B|oLXPI-}Cqy3qvXq zvOq4|(b(%#7Oq0j>ZMha?8`1suX^i8?FkhFIKt@YyS4E7^K$9G;s5Wv`!(VF7I#OQ zV@aN2MBW7%@aOq3fuxfwvokB-@-LE%eb_6i#XzNf4pqGDFRHP)vSB3N&k$MrC<#S| z9ogF*eeklpFmy25`CqYDMQ1mT()cZQrWHyau4fLb&GYuBGZr_-9v-8l-(uXP{RU4Q z`q%dmxiJB#ihe=nz4&6(mHeH4iz2=-V||G((H~IQ1LVy!-FWWP6*KwG1)_1N)%o<` zN8;JwJ^b(n-4>0!;9@#O$_Z-Ya?jnn{r*=`>%5oDVXxmrPm}4x1!I?8`Z>4MD(`T1 zz5O0L&H0A5`sevpd@C_{d?K)+RyP0p=V!!W<*N*5r@X7bXI7!cc24NH7eBC?5mu*{ z2b(dGS6%937fc-4n-?z}LjPstTr%%fCzOSabG|^o!Ga@Ay<|&Z50U89bEmn92`z_n zyEp3RwUS3|l1I|qXD=PB+RaQ^hNn#sJ})*gWxj^TX=7t%Ui(0=P1qUY{MUyf!9|PO zgh{`SGhquBnkm0ySLn>eK-CCkIxrzz#=Ubf8x$D+LR*xV4$}QLaG?hDagk8~2xsmU zSZm{>+65$6^aC3yV#4o0WB?pB^erhsTL8~B3Qx30H;p%q3*9>P5YQVCMMDjs05BJc46eSgX7K`S&{*%Czy=N$t~@SIw)AClZ;J3;zy5w`EojPTh?L$jZT)tq z;biUNa(lQo_DKi8qwpKcBW;E=;HkSk5Cw6xRpw=RR=>md)oshe7e*pIY zJj;uJl`aciFm_11swLc801zTg4=UZr^1Nd-_6D*rBfqH@AaFj60YtSt73O6}7zeQD3a)p#s@_U* zPP(qJEdTf}(@_m`jp?WD3e{SEB*z5o*+eG3VCk`jTYKygA)Prs|mzpLZmVTXYNomky}A z|7%-^*8p2%*b3X^Z-x1?3fM=gFd9Ji^?OH+I1VB3+7DSgX!|I_G|UsthrPj zZdr{Yd8qz|#VNI#qZN+ZYvWv>_1-|NR%34jccF=XtaSN_^p*>gG)2$mNPSdXHi>Dqw?-i;a}6t|0glNkl%I&-#;XGqQoP6urk zxXnnM$X!4Uika)uc|wE?aGF7kq_36T-lT8|M3Xl$3wwM@fbT0% zs9xth6)7~&$txZ{S%9~4>_guH2zud5V|0OH;PpSf-KO>fr?pLZ^TD+Xi#e|8%!S5w zlJ)M(&_B%{kM7)pptnf>2PQ$;zJF!x!#}yN>T7akCfa<8ZR3Tw)7Q-dC zLbSyzG(89+E_1&!ZizYMjlL(RvIpCH*h2qigK{=}B{zEVmle~<<1OhU2DEoe=a>&^ zr`(wdH+J%10J|b*&2!{6ga*RGcq(U^%ZUeho{y{u-Ih%ph#xtXu3OsVK*X6>Xo?YI zmA)XcP0XN z_Ey?HF>Q`54(M-=BOkvMdAl{6GCTlbo?~paQkkF4sn}4zMTDFC==0`jFSTXe^*Q$p z;z^#~5&GJUANqq>m5YoKxlXacPUdUQE4LYs^mj3Vlq+{0U(0LqfpP7X-n7R9YVNb# zBhXcwGW#5{p7*ZJ(_q{$U9!WQeK+#uH9<7LXp0Rkx6LzFX+MUt8((X2- zT?y&7BLoSExVw8?47h)24EWdmW593siUEIkeGK^h?lItZZ;btZy>AS@U{*{T_lc+) zbZQh1SP`}FUKO?Pd9f7sS=oc6L%gN^$hLh?i^6+98HM+p5`}ksAPR3;x_Q~-h$y`4 z!|B|Qb)WC^ogYlcmZW1x#$mgCD)y~F+PzwdyOlBHqod-;d&&@S+agxk-M3FHd+_72 ztn0=9XICWbF4;)TZIQ5>nxtae#cMH_C%G?4(r1fud!M-U9UqR)id8Qr=*r3NNyaDH z+^aEbQ#l{KIXYKvC_~h3lod%%O~*TLkIvtHD?0y}GalG&`nLVA-L8{gAm|WtSzbiK zZL17V^6ey>A?=P#@`)rbMc5(h&iQr=`yPiDSGpZF_s%%B;r>`wcXu>bUlfaH+!Dt({#%^b z`s;48uK2%ncgK-)HWbOaBjl5!-&b((y-Ho8vzh%!{Wxn&ZFb z&nvEk``*+-{H%UPk%W5`**Cu_9cz!r+8X1xjdk&d<~i~6`dLM?&kDQWH#HPj>vg5y z2)hT0`{t&)=fs0a9!>k7YHv;VVI;sXZ7uKoH( zMc?Ejve8$4`LZHO(TD%UgqIjKB!Q%e6R+e0 zR){fx2_i+g%I7y^0iwZ53T?1b1CV8<5)j9C`t!B2lt~BWArZu}IA=@1uUHiG+9@7# zod7F#60_{%e8R7M2iQff0TkJd@AMB~zgQQ82n2)(k_geDz1k_>)uo+4Cg7H`l#j>( zg6CIbYA3La?GZD1RhigV4%@IlKpqi_KoQ&emv)ICs|)l`LOI(`X%xf@Fr&b_TBZa;YT`(ODh<(Uw`5! zF~h$AWP}6XB3aneIc%!$=nDu&Ksq3rzk#HVDO+0+9&E%v%9bPfMx5u>$aJQ^9HLEp zDwoIuY{xeGm2-gV`XZg#RGG>!R%9D18|i?gw_h3Bq0Q_ne&rFwBymic;?r;KQ;&0v z1Fi$y>rcilt1kIPA4VpMUGdd(1At~y3qgg%$@|J};>`m9^5o|J&ud3-bP;DrjSLcJ zAbN9~Ymf-Q@Z7$<`JR9K1pM=fIPl6y1R7FpOPlMgz!5`yn)5tgdVs<)t6F+)rS;Ow zYxl$f|I2^Mlgo_{R#26S{o-E#7RSaWeOw-rpOBgA2CC=seQrsdTY6rpZpc3Q!Z^Th=evhgg@R^=-Do1{xV)_uQK&nV~&`Ri}f?U zmJj6$b31uIuedai)bF-+m6zNhwh^>qc5|C@`9WQXH1#3bkZEF9pOkC# z*C3=_r%hI@8efh1a)tbr=c3weTsQxcPmDF2>l2%^ea~%c&nvgNR-1BcmzE`mvWpv1 z^LS(7w$|12eD#=j$+`NKu|*x`ROY;SoHWjwPm0H_*>XL~HFsifW9+u-ySdH70p<_< zZEljwmaFM5PK>8LH+@835?kgo#>aA-@;$hs9I^FEZv3yWc(B1dmcPyQ&44V@nE`1d?*QE^p%pGN!Ssj-NG|tz(oso?El#nrKbB8na@jYw^-4azbD!6 z?o{t>wQ=ZI8)L|-`7z@7BV)w-O5}tiW8{&?#H0ynyhGYqg@>fuZ$%W|^N}d*u`CL& zZ;e8~=~1YtdRbCaQ5h2}X2p<-<6~gOsj*+hswA&2;%;F7714ghUU9@-JqWn%k=v8} zCf#E^bjFJbyC+VM6VExlo2=U`VRu%N=}9WKUEZ1GlS%GRl62Xkq_$o-tvS|iEn!EJ z&Yd+YqO&@EmP*y~v_F+|X1d2-zP_87%b!{NUX^5Rk_R?K=fih(zv8kecbAdvc>U$} zNdB)o#N8c9u1N9VnTUhZnIJoUHc4)u0{Q}VFlgR%E%-)BTkYl1RJbhWR((C{D$kF)$rnar z)kVeqjWw4=ef7oBI%QqVpZV?Rn0{ll)UGR%b#;{&MngK@T61~Kt+_Uiopf?sUlzwNEjGGL$h{P^KHKH?PW3&K>UpNEG5%{oTm0w3_IM^;`vlUiIn_6}K7L(4C%#)ZBaR(BFpk@AV0?JL z!{UHF_Kd!}^xfzuKI<2+-zD9@_w5&(yb`m-m;W>Z!~kjlY=9PScme0Y7eEa%2>6T) zLVO^00Hr`zAe)N#wt)fPTPz0uTXkyWs~M1BZdrZae|pKx`m201jB9Za1b# z3Z#lve1JUU18@%+1Q=8=J%D$>8bAVlfB}dfIw9-;-GFRBHQ*l5ZJ$rSfo}jAAOs@7 zwSX!6fxXB&z&fEjK+8=(pagJ?l+i|dd-@n*p`Ac@H}^<0w$)x`0V#lf>_LC!u^G@P zgGa!Id@bNe8wp|nc?R(3Co5loCYh82_#+G0QT_J$?#3P<24n&LvJD^xsp49zr2wIb z9AG&@7D!{o0)oO*=>T$oHD79rGWpC?_jL98DL@|Z+=_)vKmpi&0$TyjfOx>FC%AzP zz#jHSDmjjX;6uQmPj*(X)l&QkC~*yvN}GWAp4vvjC<8g&M^Zt@>MQmiAp zfN|_WFDqEAszQ`_@*5z7v{4qKja}6(M)-`6kjwUKJAVP7tTM2V-TByl`;>v;Q?}SZ zEFtZHqU@o~?8OdZORTdwQWj~>PoDVK_gsg70GKL=jl>@ClrO~xa0(HNz;iykYK!k; zUd$p_^l7oApNj$h%TJ;M!|AInY^DutNDpn|``mZg4d2URS{zPu>O<@7(|NW z_R*hh*kG05^WN1q|D_}3Tsi4Tki#sFowj<`lFBl;cJFXc-*h-vXaFZyRfzUKza1%v`@5dugUze%|b z3B{lC3j1vDwk-fP@EmEc-x;S|o2A@lziW^mK6{?$cW$FLixuOr$pB)RJzuRG;z^9? zTYz=*4gK91kykn8_LjEW_nvmh+m?>y4XKHglvfc{{BM3F4mTGoJ9^7HBBb;~&^U_FE4LZLJ?z03UYTjkdMR7>+>F^Cl94|V zy*;;Fp7{!rP2SNTj8*ctaazCkFpTltyvTe({*a##b#kh)UamH8kSoj~teVX>(zmT% z%5xKQiY*a{+tNw&6yBKr9MZl8B6qG^GoB!)@)g?p1Ntb6{^Mv zhC;~=bDcRYCU6yam-3f%~~L9>~~*P?E90+o61io$A0%##sS}$ z8N)ujEGkEQG75Vh8--o#qtJIo6e=cfB;2Z#6n21AM|Jv~STQHYRLqM*D?YT5Ec^Qt zcL>B0BbLU}AN7l68+wp$+ap%l-ShV7`9F3`A3r^g|JLd8>G7w>>HGF1>9Y6_yH6)M zG)cv_%e#_%I>}ZLb}R0!h|hg#|5#gbc66_@^J>iH8|C!!(tkyCPCg?#>yk`K=aXsa z+9SUdo!`1XI)A=CI=`F5|HFMf$(c#cOLA?J8k_VC?$;y#ue^1H8-A|Gr?fk!8 z8FFoB$YodE9k(w1;zkl~JO0OR(!0A~e_57zdpTmI-FK7Rm1KRlAncAx^64a-U17H& zx>ns1U6-_Mo~&Dw^uA(pbp7THy@Xw_>|psP{vWDdd4(jCbfxmb@jeyl-f-{csGqzx zW{mlI%$;~e%o=}o%&WaV=1=)voY?luIHB=ZaZLSB})Cq_J>$G*zvR=E_T> ztCb-uNdb z>^!XrfCcmez<}JyGT<`8Ag_jV^Xo}yuN4G@0LlQmz*j(m8+yR5RTszvfL4B`o7F;o zyU``e2fDjCR*#!@z%^jS>(BsUNH#a}KwY4%?{1O-w|=V^m;`V}S^*K93#b9m0ug}N zZgc@SfOx>Wdg%+C2Kw0N8ui()9LE4bKwo4A5E!Tl@X4=g1Dt5TRVeC1QUTTN16(0M z+~5NPGEsuS0D1uO>87nffAu25a@~l({2DMm05%}c*c`EdTmsf9A8`QSM;y7Kw-Nw= zhEPJL&>#6m4{fC*(A}yTulDgOEViewHmj2^+6qLcw@&~y035&zH05UiFMk5_eIgzB zI};3fg&Yt?8Hfhp695n}#+S~sii$mv4e9{E^EZMPpwE}|1O6i$*eMgR+N6BG7ZXTP zU205)fe#nHX z@_>lQB7H{e09o}BeTUx=2->Kv+5lM69_>R|0LGNB9RO72>7Rfyx&o#2D`h#4@CQNx zh{h+tJAPKDKBvuMi7oYOASp6O{2=O(W}Y+`AL^yA^RyjEDo^NZY~xr4KlLyDM?a#! zcowVT-K(Ya5x(-+TLGrIEw8@q-b zou{4r?i{&>PV@ut(*bA*kQ8%tlXvKg7(y%ob=6Nt#2CU-d2%7}p6!u_ezPT?$#ZPZ z=i8-tvA#Le}WMdE4s4xFUpz?{hVH2@owJO4Z|DCIR`9|C18n%|F=)unX z;ZvORzg(%$>f3BCpXvL)^NqZqf5^4+4WBvJrw2Cp$T@sRPqAv;qL=pQ|9pqw0`$u{ z>g>4ziGj!YHHjHC-V$)k#vXEEdj!Ll&fVO$E!WTq32J2!+XL{+5pg#AGjWyML-OVt zzqJ=3!M?_syz-YXcf_Wi?Xk<2Hs$d?F|rS#a=YzQ9lEw7tA z$p^-9D|p!TrOI)9YtGx!CXVGtq@^(x*;J0S%YH_@ke4Ft^jAax;=*fkkr(oU{J?NGtw?B(9)|`b+k9^*7_T zIf0dQ#xdia@mS6`4=~@5zx9oB4J2X>0Rx>86h;(+xU% znP=x5YTRbmycye#xz3eaw7cA9PHXIUo-uiAb$L0Pwj0OH`}h@Es9najEs@E#vLxKL zidA+ChD62h(@pck>1Gi)`bx;oChQiT5d+RRzWa5UJNlKFJ6I5U``%v_!grH`E+ z$KQB*EFXS)tb9*TlCD(FNOEG5G~SgX^X4BHYb)-K z&Wan8T$SYONxqcij3lQeDJASyMCX2=i_V|j8lC_0{ph^*y6C*-+UUIdyWM2hqZ_&j zFRz-+gxsGtir@Jal&?mzu2kswvm~$JO1srp+!Z%|vNQhhhFRP8O3b3vMAz#lL|5x> zJLq+oJ!Ni^4I5>Bx4hIVF<0CfUFU!F#s6DZDywUw>s!O4>w*5guf*(?9W1?sU9Y_I zV*cK9U*)I|#q5a}$IQ_e#ndsUM@#kP(N?%VPHg+PIH~nN;+XoM#Zhzai6iIS5%X%k z70uOGMQhC!(J}4nXq$3HG*zvQ*4pdR@0()bjGLo<>NnHxE2FWxGa4%|j;88Mqorz1 z+ILMfPgxuFl@}JTZ%M!F3zx*~%CE+ps;{Q=)<$zGt8V<4V$`9>#9;$lWAvaSqh{1; zF?j#hc*`62iSE^9o6756_qKTNyC%n>1Dn(N$ENn27N?AFi%Y6z$1mnik7wt%#?u{5 z@pyZ4JiDMRo>|ZmPtDqy2bcf=|MW>jK~!&!zb>2?&!x}j+FRnU^XJ7MTjswFRSLf1~Zk7uzNCn{w2v@ z+gk%M_i!rjxm4$WFH}Z*{4JHEzNcH#ek<`7FN}YkJtw|jGd)fja!`Ei@PpzDBZkI# z<0r*QgN8@{G4oe&)WcQ#{7Pm*UFI0tb7pa*6nA=nq70-OMTSrNr1fHc>#7a$*S0dPbp zAUYAGz#xFUYk=PN^D$Bi@Iya!Ydib$3tJ-av@!pm6@mikfJ{PcW#HerY@_{j;dcNV z(hh(RbmSMnIz5pmo*ecRIoqj|oyCm$5M0{Lhpq$sXI-=n8G@ifOd#y63Kip4z9Hg# z0-y-u0_ch;(g(EJaln)^lq)Wg7VPV|R|^7ekQ2yB?FICRAHY>6sM%gQz#wI_BOf4? zw3*&HCJ?^#cb)cmvRzq-DE&@b#XACrzs00gQDOvPqYZqDs6g)Nzx3uC{SYDKeEnFN zK%Y!FDnmb3zBm+C6voEItt>eCb?%)fObIb|IYg8NLI|xfa2sZTu@X z^dEgmygQdZ1n4M^5QXYT)QEX8rGEXEkDVvpfy=;NJ`wZ!u66^pfa&s$xMmXslo*p& z)U7{g3*G6a?`A@Y?nLZsqjT9g_Z9Jw$vNfw)K}$EK2aavWfE09iW&Kl-7^3Rw9K!} z6if64$mbQx`j*@vc93iYVGV$^3WjgBRbN8#v9J6jrjTUfOB>}3`CI>1r`*D~>Jt;< z252ho#66$#ffcm!I-jwH{m4;qWuI%bRUboQ<@%f}j^zL`rmx9a;)AXAZQt2C*Xy?& z55#w_c4fj&9?^E6VnSPu74-0+0{^o&yU^b`$`H>!<%*sgAULnA+gd;vfq^VR1h5}a zb!Ttvhg6e?*cVCDQ&+#WCrc?wlH2Ax5S)#bBYyQAInubO+#RuPjUBhNWqtE^;IzJ| z|Cn%lAVnTDhGgHp)RxOEmF?Y(>-r`V#fm$9Sza_YZYdu4B@+COi-+NQg}2Zf=uPjD7N{{)D{qkVj8)tlVbah}d=)W|Z6H8FM)2nFAWTcGi~dr{A$LKdaY$j`7YMYiqU_k#E~0`z6`G zIx4=oXOToJORnt;J5Q{*n^4gZhgO_id`0Hp<29Mc!h`obC0Z|icN}?d8RBhw#VWg>9u`MDygZgZ zu_}(g>GU{lh5dH|Y1c2wu}SVoa(9yT-SUwn zF@NUTII-;)@xJDt#u0UQ$D$cOiuqG-il)kI zqH*$-(NcX?G*+#NITODcGsl0qNZPg4To z_3BtS>!vtj_K!+d>U}HftG=G(Ytd45S=6U%W=%LZCJs3%4%@#W4jDKr#vguSOdR@= zm@w=EvEO?p$2<2L9PfSCxY+ycBVxdNs$%ru<750`?~jSYPl?*mD`Likv!gEQ(@}k4 zoHJ=!{A}*jc%*G^JUp)_6JsfEp9McseSpO>VqNVYxN)*QcYu8;p(G%x+$N!q&9{+oON0GF9Zo$0xKg$*r2|KUMd@_kwZgvxPEydM% z&!q2Q&KNc%&KfZ^ zP8o7&Oxx!jam;}O zufP;j08Q6whyH{#5t|4K?MFTU+QpHTOu#v0kN%^thuKuTw0K~Gdkx$4) z*RV4i0?;y9C9dgdpSVVBt6zT?1DSkNJ|AnFIOP-e7lYd9dY?d7fT}X|_uO`|g%Bca zEI#D{`XYqHi2B(?d;#;sEbtPz41g22Id*fOWgB$@{Pb%i8(-6puG)i0hkoJV3-+`6jnBjhA0q?REv_8PeVE9P?8{%-2jWFs@jpMw zyL^-%5Yb+J%F0=F^M}5w9yU;(ha1FlCN1UYo*U2>@C)?a7NA)lMKFj{F|xBa{gZ#J z?32UgeXn^#%+R}3v$&AqIXnwv?_EBU`&UR~@d+^_P}Y zT2{~Bo70AOvxB5%=^-_-H<+UUlP#tk{hHOE?Ca-9(m^YrAd&z73lt~;mmD~B7Ej%D$jCY;9SXW|OUDR#u1 zG24R?#yJmn$koOfu`gcSCzwCv7~Gc4iaK*CZP6wqE0R*2=vO&T#E`MbLoH&%oW?xP zwH{7!f6%kNa-{LpyZ|X^{wK!tAM+36uvK^JG4}P`v;|?TK029im{aV`O`Yb(=6LzP z>Wp>9&aLrh-d;q$ZLjQI8x`}0zL-?oneyj~c zS7C0Y>~~Kg4!ph)69<(i)Lsd(+OD!Z&OfJp$gFZC*K0r!b?bh4b6owS zE8?nquZy+6yERrncK3_VwF=OyJHM6W6(H@_th+0&Uv*9V{w;I1ldwzDH_4#~N7wva zcEam1`zD#0p z^Z!HDE4}gxN;hHGC;Ij6Q=D6i!(j(4h`I?E#H@*5jIl$Gh$*Abh}r3TTj3iqujbll zulaT?oPKjGoqbcZPeIgORwU|XjXy8R`7vkGSEISwYcSWQ>%JOw6VHi;>aRyzI(N~u z@1$$L8w;l16bq(*JC2%jXS~1p7jaa>-Eqv^yJK11ZP7CI%4n>)JY92f)Ky&&vnO8= zlZJmJh99yxMjWyzYDbRE;_%s)v6(Du;czNahtro*Ffy zm&cSbr^l4BD`VQ&Gh@nxFU7Rcr^E%5C&dFTvx@&q_wRFO$0PF^it^|5`wxwClGMjf z=S+`#XU<HP#hLwr@?VjK|uVY*Jl?04=vf z7{D5zfWmxJj!biN3p4=8l1#1viM>7$fdHHaW+QA6Mas_5$StG~vJY5`V6t)rXp4+<1E0b7Of;xV9l$?2Sy2G&ptq;h zwI4_g*au(&-#m2-SVuGg;phMiat-hpU=6rHdT5t=0LBO?=lcY3YXh*G-bgf{9^jho zka%2eU%BQp<^a(kZ*tve#t9g5JkW~Bm|%hzzpO8=6j72n`t{x z0-(;G{45Umj4eH(4=_TO@HeuH9gq^vcYP+l)Tw>q2AG4u1mv} zQ+89s2nzN9Sn*Jl3D|1ZdoVwAu2E5wYxiX;`c;!|w0JHp8MVgVs0 zHrbdj>5Y`mB&@!|uI%j?pF3Z?YKQNxQ!iVn%k>B!W%EBf>f1S{m51yR>&O`GWd}L| z;|L#!L-Cf$7rxgnz?pW_UmoHY9$dmk`F6W7pOv;HR`AL3}Q^gzmD2q=JabgJh zr;jVwHQGs(C!Y0DueAhV%E|h%He2Dwp6tW+9y*Y#5nKF*$O2sJSNx<8D^vW*A#AQ5 zu_u4Z337#)XES9Z?Ub)fz64x~Gi`9K_SmN{BjP;Rpg$uP@_%#ky|DrTR~DU;3dOii9gAQ-J1xYG6Cy-6tZ>*d^xKQNGb1kSSK5 zAW-BeF~fdhL@qHtv7=QT^09K1i6HO^%m7Zxt*Jn(yesA>k)2pk@<`KXmu5T zh~IpE{-l$7#RfuzZ+zwzNsd{;W}n=yugPKg!2`KVj+0a62@i~jH~CwRB*s3uUw%NQ z@Q=BITtL74aDs8sn2dzi7wOHfa*eTAUX)vW7lX(s55R~^<2I7TYB{gy^w5oS%rkQi z7nh}kqEGQlcMt8b*=un#m(Xr~Gm}Z$$A^5uKPK>Upgyh7$fxECjv2%C!yF%5yRn~q zmSc#pvAl0SY^>%l^9qEj@!Nw7{3^$k#{1T8>heGbU-Pq^E@tF$_2f4=7?Z3ply?d8 zjTjG&v&I@_m2Pw~t{9*6PXwKOf?zg3RG;~l@n5@h``ON1z?dgbif{8V;}x4aucz=& z?uXm6xt6WPw>+Y4#%JU9OKs{G8?Gm1$+zth|7CYzRa9KNS5!QnZWsZiJ6j&Eh}Yfw zp4jL8r^JAzE6bB_+ap%jEkCg=Irgd&|7~|)Ar8E*5EF*H@+<3JEMApa8Ivp0xKOb) z4yyS0#?^K^pSVL1PC0&J9Cd#g!tG_skw2-3x~f5OOuyq})xK8Fl_TiN$yu>-Ktrq? zSdpa9rZS+6Y&^CqeP6y$|2XE5_r!<3xM!@oH|@VOm4Udk+HRw)NNqj)3*$;ix%FER z$M1^Hcc$;(yFEG|PrrMTTdxsW^XI$bsynZaTaI2Fca9ksx6hm&-~Zq-@r~;)-1yqg z9&Ph#%pWINo8%REHRfek-4nka&=C(;OfFBzZIw)kuJ;a$u32x1uA?fV>j=^(x|Wql z@psz4T{0-i8PT=vq6eJW-crU1fCrzF(P{(GeYI$*0-kgbFi}tD4MEkTW)4Auy_`x4a zbGB2Wsjxbh)%`GznsY}SJ$J*#m32Ri;~VdfqZ@ymK7SU+q|aq_KPvtgUiY9__!)9)LmRK+jrXGd34Q#{t%6i>}-F8&YR z|IA+)e{E}x|5~~r{@1dO;(yaU-rgEdWWvtsxpdxtF6@YBJKExLuhnd8EdIA0c^YXq zzcrpq=P2*5>H4P@w#V;V>f`n)HF3evadFt8``V zKP6!Y07fPNQ~}P20XM%uWnj3cQxQTyK43Y37{CmSMYy;*^u2UN9?-{kKrgUXS#I*( z-~(pe*aNiOhy&vhbbvwtt!t1403JjTzy(0$hB~kO0nP%2eWxoOfiqT$s24CqCm<(q z10V&6rayvNFFkO}YrUI7aMNq}N?5uh~CA1MO}M%<~3jz|SWiSGzI zq=s_=RGA<`)~QpQ0oSfqFJcQA2c#f$2fzSMl|u)F7u#!(YYaQlTNM| zkLqG;q!ODVN!Z`_{KPnb257{m_GbbM836F4hu_LUUh1y^DDCmIcqYWvFE*@Z)mMP3 z`Vb)9Z{-1C5nAFO(5@e`pIAX)(VMsqktIGeL9M-jHN-kVko|#$2sp6~oJWiR_vnCN z)SvlS*?gACFT{-Yu#r_#VoYoyfDlmnjqCL{Kr#K1Yx=6bE=KiJeGAbbKJCw|I@nQv zKo)ANy2KuR*hvg(GaJ!cyva4l1+gLS#3j-}|JHtl0X@Zo_J|+x!3ScU5A&)zF@pFa z`i=d_x-7YGx!$Wx#fjXbJ@Sh4f#G6B8T=-O*oe(si!9W?#76F)@|N}^4dh*YTVIe< zb4=(*^0Bxf*`CU#H@gDO#k*KzH+sok{G#9MFV54)#I1gSY-h{dC*^j80DIF1VJD{{ zG935G?f^--5YR40t(*{p{2{+&GF$G`fAVYl^g(TLt^7kbdWbLO%O%DfJ_qiX0;>5t z@Rj8Kw$ksL+vGf}IuQ)&dL=gYXeZUknIv!1a=T<7`9QH|=#yTg5Hnk$n&(#uWWnzcr5# zW5xva(Ff@wF6B6ROKdn-9$+iu3jGi|9;(=pWO}LJcIGA)%$rTn^&>vD<@$XZkK}si z_>^Of8^%uKyN7Db{g9d4vgKIJp9BdfubYP$tBpg(6?xT4@;qjXbGgX*+iELw6#br$ z&7n#+KJ?Iloa-T&{E&hEU~D%=icxWF+$fhP^eH(+Ovz<(x7e2J5X|zHdyqUwH#aut z%MW`QbLCGlrB3r3=b7u6lgY94Ghgt~Lbl#%rOmbGadh|a zm-`|4wk-L!z4G3gsF*b}D*koX;_A1uB-@UbM=IjY>#Abll2tFCw6n5KIS9MY9{Z~O z@4Ef&>Rweh@P~yMd{!YU-&T%1`+G`tl5XN|cyYzuCpVI6JLf;{kb?Wa?$oG1`=B`D zp7NyI_R10WR>Z<9ULRBU9TN**zc|hucxJ2|X!Tq&^v)%5#2y3Vs6F4C zWS@=l-e}rwXw2Dlbky%Us`%Ob`l0E(edDONzBgKS9};!DjE(Awny7taRm>|4j#Dms zL!9>gezE+PzR$~PKk5@-II1JoRs1y8z9eC{QAQ@o|3z0yYQ07zudKV}$VIVX{KQzF za@hKm*EdW^->VC8(`P>3-9E3$%-3n_uajJrnlU1}rj3rSx*=)b-qE$-4bio@e{_?06&pXj`f?+w_adUMRCY^} z$~<~Zbe*y)x>np0T`TX2uG4=SU0*(PBUxAdVv;V)nxx+k4|+|Ibz~DjvsYdd(o5L& z%HKmu3A?_1`^7u=8WJV>!Pu6Ns{xUFk)p)IP8Nl>fj?|^5Lh(%<*T$^l_`A zYUrsk>9CK-gux$*@qRu8RdTz7kKZv&4>(cdWVs7QdF=_b6qjvPlA`v(4 zu;XIvVaLXZgBQoRAs>iI!%m42gO^3sNQB*IV#=7aqI%?MF=h1WF=PB$F?GzDMbd88 z_%Fq*$>+tKs;@m?` z|{jQ_4nf`~)dJ=Q!oo=nFOb;SSOS!MTZQQFe?wso_n7PzT)0uQK%dLI4B67TAjS%0~@phu#T_; zFabj{Ndj=RG6is*fpOpjuo7VII3OM&2s8kwD-)0myru`cAe4Y(c@>cc8$^}XQF#tubS0}rO6}F@+-y-1v)nb|t`By9h zIq9H108JzWqJ)2(%WqzNXyt(N^aHvhE$A%vfrR47ljS*n044eh`vI+iSB~=y5K2s{ zA4!AM0UGh6^Vv!t5c|jq$Ha&0fMLp}2VmWIwg;B+n>vsi%H%J;b)EAN9ehwqZfYlR zOJ4y@=~wKo|N5=%>H_BSi~gpM0(ya6h)jLiaiA)4fRE%4fU=lC*eQ?w#Tar*+vvfE z{Knt;I-oHyjBSx&+QBCB3-C%@i!b@Zcc2-7Qd`-aUh+(~oxTC&=V!jnz?weGr}`(` zxfZ}Hf9Yq4C3ccqGSR_)+Q<%cXFvXRt$rpp5npVse-QD&*936J=i(2+is<7jZRT5T z5wr4$ypmTh$R$3-wwx*km8bs`vC6jmET73Au4NPbOPz9=oRW1=9zSRsd+JN<#x88G z3?j~y1vvGa|Fnrt@`T*seCH`&j?flmWj|!%hMo1%Oc014wgk-cKhl#O5exv~Y-88? zuHWm6?5(ZrfUFR|`lI}U)BsqD1Nm2OaGf~hd-jrplv!?jDNuEDo7D{B%^<41Tk~IE zFLwikBgf@&05w~P3xui|M^OiBh^E%1RjHlR7;#fedtxSX90|qkrl%;>|JFc})f2 z9jH!!eGH-VYTPo|UJB0hk(g$G{evB}OO7zM%7e%QD<3_iB2LA+{OcOymp;oT{L3!v z!QMz#Hf2x3?(&8QDELi`i+AG!pBsPjxXV|_SMvtqnEtIU|>ui zVEi&>8RytidF+bx-rS}PxkerOV;&Ra3%R2#@%D1$9aEy>D|^3k|7G`(&pz>%wN)_? zVYj`co$HQR5d%K_!5DDXf*5eo>=uCjoEme^Iy8>l5ro~H6>-Gf zN$%?t3$NHcW{n*hRTVWcz2EdW{%yy{$M*hMtQxSYNXnIyGX|UypWf%wvEWS$QroN2 zwY4uP$hn^T*f8(+Ip?5J(OP*}v`!jQl;(+pqjj%2vAp8ExTN9-ak>Ak>$AQ*QAheF zIVQS8C2V>5}i;J(b?3jLCj2ryH7-X3k!u8p?oNz!L) z?X@v)%Js!pWzMa>wD@0jg;A%+=`jP)j4C*m!oFvnNc(5jN*zrukoBQ_UxEB{+yUK@hck%yGxUf>tf#Y z>!YFOvN-JEg)!vN<6^?dmGRcSy5G>!Kiy+adiOh{{eXdS?4X0<=4mx?O`$T5JotdP zctX0T8!|AyJbGB%R9%SE#vB%3o-jK8y`eFlTi6=^wP0@izs2+8+4=49NNYnpW93{& zTRhX&oId9jUy1odOGEdnx&>{;m376}VwMnlPtR+KCt920$+o6=Bz^xyOIuuBGdaF6 z`tbPNsKeun!-mGWW5>n^1|J-Ki)3BDqTgQd;Xj$UDFwU$l-+OxkuzZjWCfZ5CV_!K z1V9fk+o}eD0Pqz+l@0go=Kmhw@kQ_M1 z9zYskJ)oN{Gl>JRVt>E^a7w)ZIyMKiu?NX3nUuwbhzY>HI@pOm{0qqT9UzCyU@OEa zu#PSn00RC1Q0WY)u`&+n$~RU|0Sf_YJ^?3yNq*rcpfJ)wJG4_902;s&fDgZGD;>oM zARmAX1k@%#CSV>AuWSSrqD*~xm4NcBQbQ*29lZf2h%Lv}!%lny=y5%w)o*@f8^Db3 z$V#Ljpj$cGZ9i}s04rt?fBd0dW%zX5x#A|rAYC%K$JYF$J%|(if`7z3dm=Kl8%ZT5 z#BT0SNIGrTPxK!on!beqVn^-PPIc2koqp@b%Ht312fhPq>8vh)lmS{j565S7tg0uD)$?ha+NbT`tC zqc;XT`~L9!18@$9^SRG`zhAHGddM;8fA z(nFzHDK3R`$dO|{#z)b*zuO0^Ptt+tGBxX7;?+g7O6Ta>{1)-s5$j+%ZBi)m*vmf@ z{t{Yb95*1oz?nA98n@+plTu>2|2~KN1~RLA_q~>p*MDCa4a@!=fBHp1xTq(9E9Sxs zDoz$je#dHK**-W)gUV36e!+i=5*G>nK3Fib=59iW-o&3d@tK$nY1FBW9nLW&?) z&tn$Qk7yQyMrwb$Hw1I^41jCAx3=0;jy7Pdj8Mr-`XeXqFD3s_Pv}vhr`l}=^;NIO zMoh;?+5trJb&54$k%;ql*cpU;Nls40YDxk2nFgPQOEAYgwc0gDO?y{v$Chh0Pe1c< z6oVMujl-||X@ABK;P+BVydjoQhDCX96x=xoJR0pcZO&v83oP%f&XRtRC<}x3jiA4K z{_1|Bc_LSI3bG!U4DK5--ZR_dVlKlrcp~n#_Bt?d2iP+NAzQtVxDl9PQ*g0l2{~+; zEcranv!_k3LQJR@j$|7(*rJw}zc0>gYv8QenC=*G+zvojcshAAEV65F0h0rzfqyx; zVVo#mjihB)zHf*u=`vagLP{4Ku)BIybg`S|ykjzd!sO}TwuI+TMJKo?he!X@S#vX| zC7M<9h3xoUv6JyWM3Psm0T!x3wGI}b3y(ST%EEBW$~weMbRJ2Lrf1D7AFEEeM0dDW z4AN92vtKA9@=>2e%rIZC`a`5OzTTfNol`e|A^j8h$8nRqLvnj!K7069-)!P&3ua;) z#{i_@#d%Pn%ie7o;@*4hKe?0#x~!rb^G(>=)xPL%w#@?-npni&v!ioJtn4pLobv4 zNA}W;Mu&=a%3^RS{7T7U*-!Q-+Xs)2IsD!DE@^tIFCaGaOv^Rr8d~m0i-L_8k)KUY zo(RGN9H&O*rHYQ_C4R!WM}OwGfPMe$EAlV+c|@yuSUu)$JNl%v2?=T!URW7>a?v`Y zVWeh6F54!@tFdoHZ6ao@q0xhFiA0U|^lXGsxcIM9|mX-Jnz1q4#i)*SM-y&w@LcS zQ4%Yh_I3B?&)5oS>?VF##sSwloyP_T{^(+D$5G|UoD5st*du&2cSpt#a|0$z8XZ_g zEqQcB>R$H2Wb=LECOC_-^n`hyCxp=EuCYEpgU%{=*Mj)TyzR z;NY+-st`!>dGvs)A`_E=M-29U-s?Gh)${j8IO;8-P*mFf31WblIdc2=7WUw7CXfkr zVU*wbhV2sVczWG{)(ZkVBiZ+lqd3Jv9y1wqP(?f5J&ki~Q(P#vWb!T*ikYVxjpb!{ z(D3Cq=eVJ_S)F0I(6KPd{qq>m=^d@-za(1m-HacMsFDnkz3lanY0`yG1p=lqihMFz znJ-LjPq|2-AyaWT+S=e*abv5L^ZgjJk|MS%c`sZ7))s&GH zg^p1=XZx($;#6tAEtZmDzu)qMzFkh8RDo}wD~I8xJ?Kn0c*)Q@-SWw@C zaI#3^zSv0b-ngjb2$HDLcsgclI#~gzo)O(@mWY^w&zdrF{FV^W+0cMkebU&AZQ{Pg z>|o+{ol8!j!}i#5zdS)ZTHol#aY*0IFABGuV;)7HgZ$23ukQtxBMp=K%(FJCi<*%Z z3-^E8wyzS0AMHCoS9_nSA1H?j#Da3Ix?khlkB~um=3Y>pO*ryA3 z3!ryDtzy8Nf1Z&rRJV*EgU)@|DZxjFVPX@h{FBx(BYIfrWt$+pvO0bdx z4uXKo;mxYT4sJpHYSe=_Etj~_%i68q3GD-0ga`1sn|<9mK5y z4g;O(5)24gCOyzw-k~Rh7q#u8{(H?C(K8x*C+EBu`xb=o)7MJLj`P=0-gv zuZSMsZCcOb(3fT45U}Y}_;uiN0)#to`ze%M@vi+yK{y^^WH!n-yAh1Q?RT9YDAW$q zA~ib-3D-z7U>sx20O9vcJUDnj8^8)l&QX3hPg z16)QEhg1uX^@%_Te>o{CX)muYdxTO31wCXieSuN;8H-+?)02y$K|W|I2oHEJ;LI(1 zZ6|wc1_wIxTHnGLs#zppP!i0z3F=d2qRILo^wuZ~(IGVx0c>9QW!&X}>}nvgwv$bY z9Nr`>NWWflynT5;?blEcafZDqq%Utiv;%Xg_dISdKP@B|HCXo9q(c4xM{0n_v2eJ~ z!FXY@gyETr;lPJ5olV*s`II+`t?W*xP>D$)NrnRd>JOt+47f*(wA3P&rpbY#1E7lhxrq~b5al9}2|$e&h{ z!>q$4R#~#Qc%>)(??zGByn4FSSj4&YrAlyso6V@i;jT`|rup-aO%m$6V01!T66mRj z-#`TONaAb*;pTmidm*+e-@fzZ+$JP&xQX@K1$W@DYo4n}Gm)5FGl(Ze$Dk}k& zkv2Apzg*k{!`oKO+hg&=(VI3q9rO)lH)*bQ&BMOyALTcBs|6~C^I?Qkb&E(7TZ}6> zD^XK3ATS4n{UuwG_}fag+Z?5?J{Vnjf(w?DCJ0{37g@^ycPb5DJjPr0gvS86 zp&SIk>rJ%p-3>@g4XAL1Dx-idl8=1NW>Pfw?gU&K^@YHv@{(D^RR0Mp1jd>EVvPkMMujLl`akV;wfzXTAGkXtC=ob zLw)#wTVt4^rLfA}{xO=Rzs02C!j*8nLbN{oTu%LPb=+<_t-u`aGdkmF6O1%B>1iRv zwwcUlGXxgT7{9^3a+`&fUjI|%N2 z(JE_g_S^mFOA{su)HABi3?eT!<$2lVR;vA?#_V^Tp@zv(-R^6z*FJ@q8A1MJmVYbh zc9k5|=E5(N8J87X6p|`#&R51SO0Il{2yctOnYb5iL`!`0S4pZ(wn*5-Jdze3Fw&ag zMwvZAtk`NL_?zF*4@aO2yd_^WZ)7D#Fz->3D^!_a_E*qN_vY4d7YERPI2rT&l@F9> zE>3IB0o4wXm%0}%hs{7)0!MoACxPYJKtlwNttlnN3nj2um zA#6wAoZa|3aL$B@w|m4in|%)V0`G=K?pNx2ZTGJ7hrKt1kA{&ncviNmn2zrX&}ZJS zgPkUJulxUoZ-{lP_hsfs^o_NzPfM3itBk_gU*#Ip7gMt|F4RFz& z2Uzc}kocjC8yt_T2j~dZ$L`?TSR}L?OBsU^2URFprkxS<(+5x006I!?xso=xbGrmj zGRW6d^;sUD8kD%d3$yakEBe5QyN<(?h>K111HYi0jMhZP7CqehCI58U-vAEXKb}1# zmAvhzSgj}JdB{Te9yhvvezMHC=!atXrRL+%>f&FP;W5u$rPTf3w8_6Nx3gyj;E`bx#ipHf}GNE%ees+dGITC;~nxV5%O0uTESVC$5_UIF0aPKyWvdB)=FpJfzey)k(@dK(O5tQP?%$x-=!bI!JncUMya`@&r;$du;MTZOmCpy)XD%hHkx5 zG07m)1h|;eOOFdyrkr?|eDVouEm+1I>t^kkckl@EYn;eI;nPnIrQu-U=sDFW4AQIt zdW#$QJh(Q@)ZYK-U+71b+RIb=f&ZaGlp-?Y0^VUfdwIWq34ZTHCDC-21xJC>AI$c}7jXF+OanyxQ5P4u)6=6%_~4htNmI z-uBv{mgd}!KM|>QFm&#@lW{B3TK^GW3a5)_5}PqibYU(%^eS*S`+c+(bzj3E!OQ0! z=xr#M=FZ&eS7ZA2O6fkJ?~0&LsbJCGz^2QDzQx)tuy{U1G?IuZSPvez952 zQMr}st2HC%WnvLD$?2)l62HXuR)ev!EXt$uTC)r_$yB{PE}MV$g|vE`n(Yu{vI3dr z?(6359eVVBkxw<*HL>cYzQJO6)zHT}mzOn(?-pMx_a^peoes9PRW3;rwSB93suh$( zm0b41>s3-#G8U7e$X&fp7HGnE$-2*c2(nZJC5*^Fg&Z?jhAi1r=^v{lRRs0>l3&EH z-nr^8`FG=c_Sq}O$r`Ux9n3B@^X6g);Rg}nqs7kjs)JOMh{x(V^wB#@w79F5G!T9( z8js*xb6fQFXfNVBx5fo*GOuGFgLU_rC1%UEKp~8)=aT`}lfpK?&OJ0-{_d}bjOj3V z`x%nT3vz+(_I}X$`Wcel2WT_+8++ngZ2gF*Hkpj2^U;o>uM;3s3{Yl-uC>vMR&kOs z!LqZMZ`vDW2#zfoBADhFBS2%6H=X`3Vwin=3}dfNwdvYL9b#m;9pY|m{s>waW8zy{ zB6rkO-}+7*F6Z5%x9peoZ>U8LgpjH{%wMT(wJI8OB{iwSaLYGk@X zR(Oi`xeuJP3PKQ)$;v6nY_3V!@BZ@q^~n=iIQYPG;yYn)H6bHCNHHK_NnechPPCJg z*~3ksWBru3bYJH6y5i1g^!Cty)hr?hSc+Zxg_hYYa!w173_t@UJa-0Umx~Uia4A!_6k)Vm~$MWQ^s#V zR&uCJlMLVsF(+Ip{Dwz;z%orL$qgdnwKkJM0639S$sknvDPupnrrpDaE=+cDT9Z|9bB!AKB$K{G-e{Cu|_tjuy0wI$3|1h$HYw z_3#H1x&r!>1WI9WsO66?8TANFw%w|soR zcXm0JyI6y3Ud?Yqq(xk1@J(i3hhbhd2vKym|N8P3IcOZ;^hZ0Uq_T$i4GAy&MhzO9 z{UIeE#FJHl##f08d9cbi#63Qm?TF6^pIEMsL*`_E;z{^J(BM>H?v~Z9oCUFK0464n~NDT^I#Wo0Dr)d+olIb-n z4sA)KN3NG3ii9yLu)PY8f}djY#(M&`l4%b#Ysym%XiZ7w(gg{^A`I>G}K% za=Kf3yNa10f#Hv^wGJ}bcO~s|=-}>b9Aoby5y+wVEc98j?QqX9Zi+2_Rd&1leXW_U z$KBKPf1wXlC=%^-1qolj5**EvbwAktPH9^oAt-Uh2X+&O8=h=?l_N>3)fBx?(y4-E zovCn7MUi74QQ?G9n||JaKJ!e<3_-%uZEsX|=V|v?E`^k>%)p?Coo|jEW zM9K@p4D{5Ud!63av6+J_7qcEQ{t%Y{5(~@LMB370E5Szh)99^-@YLnLphwP?p@;rz ztYj!VR<6!^3UP=8r^Vf?fo8#%SNBV-%PrPOn09I8LezlTp2C-y(qqr%G^`!l%2G>#DTq6CvRFOV??zE4=g)Bc=#;K zE3_PEJhD{$N^j}UwH$I^6O)}c7V4Y!-e z8#_!j={zsl#g>n@jMzO^H`W4ndhdM>7A1#eZ`xT`ZfC}kBaLM7w=43j4m#*yZBU4M z-Lw@`v;%}aE*qO!7T@Xkk@a5JkQw?xoALBJt=R4yEp#o3R`fkooBnif{eIFY-h$bd zTwX?oEOEI;2maI4TlaR|GNg9YfU$bxBD z+(i8##U=V?!7-Ts$tcE3AoHx-)Z)H7LlG;#47n!E59wUCnz|DlkoCusBJR>8dxBQa zzwAn_bx9$+fXI$pa#%juf}(=LZo>6kRrp3jiNU({&Pb%9e_c<$n+|gBcf)lh_Bpjv zc45QgXqo@0<-W8+)0p5Z^L#cG%>A})y)L5T{@;2h%hFscr4KvFAs!=c2IT5-ZLy=g z;0YJg8)8i*SAcTZw2~{oO@cy~_vQmVvUi8#pOmNpB6+_>Z14ekkM_2Dr-pybqME|+ zTX3vHyObO+_(lhr@Y0MPhkCA6oF+1#<2`0^4()+GvLl25S$xKHahC9%SvV=BLSJ=B z)$mZMe|v#7=(&CBR}un7E%We8-WNYf`0Cz8u)`Zs4w&wLfCqR_cU>-&%P;z|JoEtI z?}y{VE;CiaxJg*^F(-izVCl;)GRG)gV6hqHLh(%LeHV4^Zx>$x<}l*j8y9=v)4Cj{ zaw5a@%PKXi&-fg<#iu~x;Bw}j7UnKjP!~xTV9AkqYdrP%l0QBqfnCX)pE&f9>(+_#e_aK;A)j2pZ`&&?acNYP-=syNB_7h7p|_A%Y&naBcRc^N475! zk8fC_=80MNqZihyP;3HJqIb9(%y#q6oD4Vf1Ax4nLX!_V*Q zqI3cQ&X>>6Sp|SSy-&&CR(&>o^<|El80~t=0IG?FZWsjZMdcDa4w8R;cm7%&F`K63 z-^IIJ9wjo;@4eMPQZ}KsDsHt0NAu;<^Bx$GU9Ck;J3(<*=iOXjL^~|cb}jh2EKc>; zd=>8WcT(L)1gT}-6_a}Y2tkUh%}d44)v+0dOrC5#=8q_UjI``bw>^DWr#<63)X;p^ zSf9Oebkd3J%-~CHW3Ae0%9t7pY(h^&wxDKOB_Tf1f_OoSYGlB}N!; zWvvb_Zb`JzQO$Q}ydg=rah;c}{4yLabSG?lNdGccd0VensPyDihyHW~muI_wd!<=$ zfz|4Ip4QRo&7X6<=Vmo-8UwA)`Rip6{}H~{h{@P%+*U-^F~sCBXsdvxzhxFXxO`d3 zq{}Hb$U;P%u0{nlrS*?ZD_vs^jkV*XZ=NAatgpSwAOWgnkWElTo%vZn3mCIjUH$fV z!6}}lbV)@NsV}ij_xfbAK>US9SxgqV`DsPlzim@*R8Cfco2&}9%PLlJi-|=>v^(^4 zQzsAp*BlDs4AlB9q;(UK$6sG9_x7rUFR1J-oYGPDslbR3Ock<2Y#nY@^}c;tsY5VqH_ z472YP5;YnkX;dyeT_|%w;=?O^Yd`-%B>^o9eYzOflT>g!@rQDJ+2wR_txwn#2 zybF4jgipLKEI5ob47z&J)>mF-{#5ubyF+ox5ENf98ez_`KI%q_v@^HG6gDkXNHfD{ zA1Qt{rfLMkpTsu|M^A6`_D(@ABe74aaSD*3wv}^`RRTe%4L>d5OBYx&@e(%?_}zE~ zxEodp1BMDv#M!MQoQXIdQ!o)ly!U3-n;0bI(Bo30;08!b76S}J3$l#6K7IfWVdJ+S z0MA&MuSpXKpskc9LZMGG%H7wb--7~`xMkQ`moTj>u}_~OnvE}j(xJUdZzJ?s~Z^KW#^w0WD#4Dd`N3WobB)N7vd z2iBb~0b@|Y7bTjDCwX6f$~3gYV(Nt%m!+Z%rSOc%##tGQuv-6g1Yjj1>zmGp5Rq-2 z@!wu|d%Edi_Y4iWu?J!N#wi;?alZCI!@3@Y597-BfGKkboBE*v2r@^W*rkgm`j-gb z12&DqeQXsQhTUk)`=uZfRDh0Xpl=kD2#@>To{Yq-#uR^VJ^!Lg&>j}j8l`1NkYuE& zBEYKH1I$fuFD&4^`NzN{*34r(Rla;qVX)uuniyCphg9PBT^MyFl9c}SlV2v9b?1l1 z66-oDDQEuU{e=to?tli+t35Nw8rTUfW;%Zha_dK=noc-eI+DZpsmbGz)eQ%Y3qJ+i z`tMb>xb2cV9>hE!yRL{IELSM!N$5Lg@1W8M{;X{W`hd%ulb^G|v&}g9M4^#fvt)D< z_`R20lTv~k!%1HC{p9eSV&^|f_^!zUFBye7CbxWnhih;9HAh~}UiTd)yzAmU-s$5K zE(J?&lPGC4OWV9rFi$!R(%BO#dRD4-=Hd)Y=$FiW%D~1{E>|lW51KcOIjcusD9iA? z%yDI1-DzNvrGyzjWlNf)W{JY91M51x#NuD0h#SUF65kenQeHveS(Y6>RoFZu3Z-W4 z842!9@5k?Y7D9XA)&9w?UV1hYxKKVH+SF|I>9fn3M@{|W%*O?k9NcUwSxXhJWPh26 zi}-vOT4&3D|EqwUr6w@|%?=6zd=|WZvXcl>~LIK`Z z*#6{IyCKli@Er?V&bFV?d}KnqsQN4ZH%m>Q3mkceRZzxM^jmQt%hq> zjXu*}Ppibd*vK%kdxG{$_P-Ct#xU$PqVGr9H6*@0w!TIB+brAq->Xvi8_!WcXpLM{ znKSA`7v)DkUq;&()7W<>Z6Uj_a+qebgKW#J{AZ&z8`JsIEq%dDE$76t$G#aHTd;Jl zL+5;#y{G^YvvhnXf9<43j*_4Y|TK`uYg` z5Se`Pjndx=b<}h_0q;SJ`?tdi_)}@ZzWz5nCiv~QdhQ`J#d#j*N3Aah6n5JF?f1*C zwpo+N76_^{25bMJTcz{nwxCia--l^MgmCP01xq``VgsOYau?|Y6$xgax$6!SVFvg1{_^M!P}^!>|Z?$KLMp+KuKyrk?w{n@-{C1P5o zV>7jFS|yX_a~wwY`p~>CpAW2)DIRKcYl|*d6d~^KfuqJ@ly1*Wfkewotz=_|^nOY$ zz|>S+0FptIWDI{0H#lr&K{>?UiTFJ;EYG5#u!W*vKi?5bntK4$4J9kpor`7evcG#p zlkl6g4W01W*wsnw6mb#CTq>5J^li`{EO|pjeuMg|gECyKEeG%`xx1;bv5|$UDd__w z*+`L}^>8-NSlJ#1;3W80oKcAQDDSg%1O7=%SVRZ^4SMtN%|jHhZM5J?5)YMr7p-TC zmKa`U0Hy69(n&F^R5JOQQh_#EbMHg;f`>V&g>IUJ9loU1@XqN{CWU&sl6{NkpD+1M z%%{W0kR@)x1r|r! zMW3q+p2hyj_F5ap$N5wm@<41k%%_E@3AP9epW3PqhY z;i43~u9cmGAR?a5EnNQhTdG}O2_J7tly200mOqCe^5)c+29!^~AJi*XsD@T2N>SAk zy>r|2mQdA`rU44iAVitUCvb@d#ZTifx$!kwZAI-1Kim}d5LXL5?jwJ_t4no7T;Of2 z8muIVdJ6@^u0#Hq!Eb|8phO=ZlSb1-+{0NAWt^r|v)-bmFyUa(DUF_~Q1WDq`6&&< zCLy5imv}D^psLNuDF5!e@LuDg!2Q7Lsn~b^JebGaYxz4_G9ZAX0UT#X$RVV{huf+2 z<`O``P8CaqrkO}6M||}prZ{N&aPh#d&7^>}0npTsZ{MCRn2g6kWr(^OS@ z0x49!JIj=8w$`R^?D?+nw&S~SRka-F7r;@k2uF;9fPbVLbcqp}cHpQAM+My-)f&#O zV70xfQ4BAKTQM|Wjb1RDjyrC>z)H)4Id3}ztGN`0jmn>k6H4~F9&ue|QU$&HzQZRY z-D6?tF3Rk7FxWWkwt%Q`6~KDZeyKvCS>c2C+dRf?Zo>}v9nBpKR1oWV*Ca`ZiO@9J znM=pggu~ri1)&{2@JMmA7j}_k<*lEcK|5=>`8*>O(Gat~lEi`BTnhG9ifI3t@b}I# zTI;nwqLS>DyRxLlE#fTUV~4eQ-3(E9nu!zAj6v3lG6ZE65S{X${QT)2Dbd6tc4n--aXg4kdE!@D1FfR^ zak>8`{CTb7rJHT^|9n`?mb%FH-k4ZjdUU|t+1j*U!AN)MoGu>H!C%p~)6!I4&MQ%X z%oC6{(T)1F{3?sW56{W}X56t?d?(mDqO$I+Wq3&V_7%nzfvoPfifn$Fl&B@~a-r}; z(Qr&f;nrPug`q++M^0mzM-sE$e5qQ3UtgzCONW?3i^P;1cuv0VJ0H~dU>rFK3g$a* zL1Q0dhjTpp_HQP3mhB(3>~QAz-|PojkvLzzs62mB*`}EwBg}PZC1s3ecsnb(>{2kQ zKt0~Mdaz#Z!Th-UQc+Z$$;XC7_Pv%NsjU20;&e6JX?v{3ddGI8;LPUoQ)TgLj)=?e zz*n@lB^gqO-6F^TsB9+wg0$fv7#8~z`}Gxn9`v+lTn}P4WfCI)M5mQE&b3K4F5@i! z-A^-`VQg{HZLoeksRPV>mpB))TB0^FaxvYlKuPrl`gHng{zumJR))dt^t+!{Oy!^X zZP3@ky)ktm*w&#|<`z1s1_De?Q2$PSJK?}`?zr#%C{1AzSUdQ`KvN-|& z#+u$A?wTqDYchuX3q#I#lgC<%i}!>Gy=EL8@rZR?VA!bMZbn|W&0H^MXCiNA&;fi$ z_ltRPKDrum)kwv|Z@cdVlYGe~hWD)OXU7>w1>Qw=a-fXubu9Gdxu7eiH0d#P%>3#k zv5hAUdoJ>O)0MlW1q?OEpiHbU6PO;B8fph_Y(?UJ1CA{D;En<^0b)BiN=)7gzXwR! zv3`$-@B23i#^{m;};Z~78EtFNF%}i5%Cxe@oh=ZaIH-0ll%2QVE zQ`s&awB@^ZQqaP%*>7vO+Z&~U3 z>C2pBI)+}m52CUEj@x|VSK#3n5@jN14K6c8!tMHN`E!*|yc#)!_^zx8b>Waxe&sz) znjLm73j3}XNIXqdh3m)g_4uQ6bEs#9-^8nCmUm^G z<>vEEE|=uiQg%KiWU9EbNmur0b~e${$A-Ki5%(Mn!T*K-zJPr(igOi3`l`eoer`kM z_xzMa^E?_uuZI^8_AK#Wf6$inDr6cixA$%1O zU5c~wQAiImyLFfIK2p}RNXTv6;g0JxC%Y>IdS(!36sRinOrpQqxB%Zw z3;VJJ@U?OFp2?{am-B@zGT;4ZlG*cTyB7?@#a&a<5=>u<;Om?OCH6iU%w;e)KMGsI zWx-Vls|LL0NSc0tx4TD0nPMH7W&48hpWtokTceE20XUHiqW+9>@9?N8Y&t{(+vG92%;Kx6AYtHEk&WjU3nUAS_n_%P$=;TN~a7j8tVR~ne4J`!@S>Jra^22Kbf z7S(A|%FaDJnqnrh)~yw%<>ea5m~N+>w9O$XUm&3cws9veJ-;lEj8grXx1J{Hfp-4W zmQ=yBr;d)l-H5#^Ms*E`+rnLX{i(dtbs^O(doyj9##3&uX51}28(Sy{D|rxqUlNOa z&}Z!>(-95MkKsWyv3}+`4^noPcoeinlx4L?jrBm=_Y}MXH3}%)qP#bL-*hsi-=jvF zFp09ZN8JZQNw$^h%5#>!v-O_lFT4FH{IV*lf~?X6;uquYEi9k|>0}3{cJ8RbgU*r9{CZgnezQpj(Pnj(?=Qmp2GKJ6s;^! z+A168bgjj>h?$fsLiKsJjrM~2UXl9u{5D&SoLS({`|j+k4gdE!LmGv7_XG3cPnMUP z&!0Bd*F|N~X$$=M&D&A`VP{@Rucy%Z_5Y^*@IGiNPFk=iPP(+I({E}|#B)x=X7F0f z#vNNyH-$J&#op^bGjo%?h+HLSy)G6;pAAy=VR;g^b3WtXM%ciP3?0NC1_3Pc_d6g(=Ll*tsHpO?*S6M|RPp`zcKMeqpt&BDk0HSuT3EhdCd{zI zR0&oETqCS5h&?CVrMlVUvYJkGOR)~$qZf&>^JcOXV;$5Tq>>~esNR^43FVM!vNF@e za~r)tk+$W*MVWAwoRa+jt@Wz#eh$u$nwW#2bxo2;hFd+7pIJiv?tp~Le_}TW5w77J zdFfJ5im}YsRGCERc5Q#^*W2G257Vi^81k$=a9lev3x&2qW1cNBFy6Z ziuOCUjNM$ho4F~43*Np9BIeuVI3hOB@2;JRVd(r+Cs&S;ca1fOnrpoVT4f@qXql7^ zxt7xS@}9`x&DWbLgya;cQ2kF>_MKvy`4(vbJyTA&=In?o;bwe5Ua{$uSE{27Idq)obV&-o`4Ydl{S4J?gRou(IMb>-um7 z8%v9UtzMQ(nzR1y?8#lHMJv50r~>B8H;%S+UL&fHp$8iKz_!=aT;Rzprk;3ctC$wH z(Y?61a)i|w0K}Tuw828H=5f7B) zULe`tvK7iL=xF6krrJ^At(Dzz)S=qaZtb>|jfREUaJ-%hy;&gVN&>pDn%(b6<1izh z)_T+U?7J_0V7-Y@Ii}gXHPge6EkOq&$vi%pVNdeRs-L~m4z5v_c||Aezv$Mu zF6G3@A!{!m?5@jw(^HDHc8zBBt2ZJsP2G$U_4<&sWxq+qu(hFu&00f~S~!SW2085e zTmK8hi-hN`C;HTC-%W9&@4knezpPmlUSafT_Fi>Qs-SYZAg}Ur53*vZXlP7&QrTCm z;!K;bhN(?@Lk`6ynScJ^10&p`Ny_3XuodoBEA6?$+aqo@6KBUjte7L=gQhJ15t?&P zIjx=E&M7JXrUyO~3sZFe5xu&ExobK*J?UW*MlKBLH)D4t?B&klktO*|Z+E+Ewj&_q0aM1^?oD}R9f^)~vF*LCjs7(Ek#6xaQ(*;)&kb}Ou_F$;aNqocu2uA>hG6{Lh`PQXtQx&Bp4Krf$Q?x4gPq=( zNNe4lkb2XRbu-DniOj~w)*()6%O5i(5!ev=W0NB$qfUjQm|N{OBnqTPSxtz-gH*co?hq;M=96Te1G9NND_-r=xa0~740iYY7<$EM$; z@A3-WvFvkHTAnd zYWnw7lz4yM=f@TRwp&UFp)9J)D` zx(fi9BhNJ!dJ1R)`Ve-Ei6twH0PkFqQ`w0K)}+@6lz+u_dBa^JNK_w>GX#91eN}Xj z02{=)dnY^&J5$AmWQS7S+zF$C z4NXJsZwj;AU^fSLjz^2YMNw(OekCH-{weZ|9SvlWAb|Ew_Vr*Xq%3NHU!{k85f@vC zJOp#wv%d(QFbZ}|qBQ#sSpZt7iejO1e#&xew7Y^1h@y;XU93qkP)QO|uuDee1m zuQEJaLPV03aa;#~2P#3BQlerS><#}84>(76QuQ*KydKURylVh2P*iOG=H9PFZox7Y>|C4u zdnLF(ZJ~eF=aI%?SJA0V0&Nvv(eAbkWNc7^qZFzQnDE(RujUjUSN+3he(#{@IXbic z1?rW;=z93q)@@7(x!X8*y7qDQ-D~?UnuV^F^{n!qXhGcE!WzM>Ga%-iN)k;Gx{M&B zb?1!tt4%Z#yw^5w;QomF-Zk|VmvTcy)sQ_UgT8Jst?ZV-r8)(Svf5Qn@Dq<79X`>DF=*5MJ+X;Zchr{TBf?6Va8FqSj(0tOpcK=|idvp@9| z2B=@W-h$5`|L$2D!l)^vjfw?2woQFWU)WUL`U+27qnuYLD?3^{b%dSZn+mtCCm^i$tNJri=*an0}#)I>adcDW^M z`&fi)VD%21Y#r0?dj7(-m*C95V~qJq^;qQ3i5KWkP4low;I!OKH+%10FjP{+MAz88 zkmbslqgvF%Dv3_3O{Vr!(_$mVEm>t;<5Gup+tvtV-Az&I*~)GCU*tCi4Mf*a%Y&9M z7}{-WgdI$;Q>5E^x5i+w>ll3G9hZm9dj-T|wUwyfpUnq@hxxW4Q`b~o4Bs@fX` zdR1hz92QOYpbPm2ANgGdiEmHugg8cY(kGX7?0>ty97spN(KCq4cIHX({*J-j1;^Ju zIwi5|2f_x6Eu4@_-986#joFE0_-cr{&7_r9mTKhOM}1|K7^uJ5#yye+ADfUv7-`N~`>L(>otbE6j3TX!A)n$ZQI_ z^G$%rY0g1F>(>=~EADG6SkR}Gq_YM@==D#JD9+jr_$HyJ;Vr~7c%yQ?AdYZ7Kbko@ zUJxpyYj$q*($Vr5m=<`Rw!kJ%7WF^NwTjrp|8@f zj$yBNjq5Qy(SgehV8T)N7?QslS#A6wSp9`sE`@)4?d^}As#Ne&bPe{(mEZVTo8<(D zKz9Awu`5hOEgqJ|p$F4akBizMVj$69YqZN2cW}BZD=WLo^XhUfi+YM?aGnmX{FiUm`E$}X)WZ-)kHP_pJK!rY3v?&S5Qqt8Oum-&bPO?9ex$> z>%N|jQ3A~>>1g}+`HMe~%-X*r7EpNqw=80A+1n*K%-j@?wJjU4SRe^M-~g{ zi!+RKT*f$0EF*ujTNvFf{)^haf>0sq03d+(x~Yj}RI(q#3V3~H#R5STal-)6cS|WD zZ+^)C0!~CB0KY(TP)+J_+}F$?DC@or8B<(oXQQNi)!~eE0M;3HgAWZ&KekLko76R# zP_*$Tx?O7IHC4CNFZ1h8biAHQijgvN{Z+Rlb%wee)*nP#OTM%zU<6v-Z4Bt3!meZb zN9P^b^yCewtU$)k_rrHtz!w-6TTb1A(lE=5tN9=WfdsWSS(~vnF!q1NGIIH>OAc)t zV0}i#BpZeFE(D|WDfM%eySgXAEU}0x%#o>~t-|{J*+b#rR+V0IU?obz8-=A%Xu7;gv_Ujz6< z6!8QvPIH`7YFx1M=|Tjbhu)Pw9*BcU7rxS|zdU#hI*11wcDYwcT~C(YWBWW+@yy96 zj<4$pqbumD%L$6yRenE6@0OJP^~JW9*AIgG1dkN%}Z3@fiOOb^6lmn9bTjo-4G%XontNcql?yki)*92b}>|vVK#AY)9PBwC246( z0m~*r5f{ zT7d&suKac`k%HEj%a#i!S?3~>7P@o6=+FI5u3o4Typ3OwKAn2V8^*QC?U|pw{0~W4 z*HHSAh2gQ76}NBj_KoeLUU*K&fFgs%WDwegcn!vkOlFiIsgX<*Z{D&-k(t(-uNvi6 zE-@%BGoMy=O0#GNCUI$gPI}*$t4;}i6xFv5u4x=*TaiC_-Ad1UYcbV<%gN1WBJETR85ceJ2RWhfoQKm?zX$~k@Hv{@#?xIn#obgRLyL8QBC!v zt%;e(n_ZfKcOK*kUM7>sa;^!3F1FUVhR@Y>l13H`AN>68{$=R(nwRoLwaKs0T?T_~ z@A{A@nzyUZiRl{srEnvSa?H&9R@uf#QE(0`!r9D$o5t;33~hi?3NBU3(Q0z&wc*JAqLla0L7_f8`eELS~9EO|!OzT zdw>@c{3gV4&n&0wRNY?ASX4}$4Fqri zAz&1c2;?0F3bIm8Z}@%W{|Y)i?lqI$FG}7x^CmI}ZYkJ#I*KeYeW=p`PzPX9sVi)q zI1&EBeW(y8E9fS>sh1W8k!t7_5y)08{&UPHbtBZk`h_L6V_=V$rrn8^w;L}p?e&+~ zoK(RByAw?|9_6$DU4TwqN-|;v`f48)2KVyWr^ZZGMXFn(e!$^X10y_)>21l}JD@oL zy$C!7ZZg?6P$Lnghg%t_>AgMABH(XO$VPxyao+rsSrP~*5efDoduR3r8FQ#H*`K?@ zz(XdE#Ai-1_N2}I(ohn?_)a|Hydbigw)bi7l~PKxwaFO@QlKw~g;_2AHC>-@kp*i2 z987lbHKP0>e78X4cl>C-Vqlmq9&sSCkEVCijJzylRPC^DXI;Y=@AExH*?yY@K<E@q=1v{|G5 zE9x15ql5Il6T9m#0@Uj^M5P>F|cjP!6LYO51)(|-8U(fO0tYuqxB<;`9} z&P{uE@9{dF1A7gORTB4aC9lmXdD~EIKS$8Ik(XCoU4z#0kO(S#hS`neeiuJORU_(| zP??Mrx&{?X3x9?;q&*s`D5uQAomF#16#6< zXV+AvC7$$-xtFMju zZr~3%O|I9R*x*+xWXRa%JjHA{&UDdi$4oN7z15^AW?ro8^7}D8+@Y{`dVarCk^fci z(Brlbp0qgqcE(L+1n-$SvFxu1neteTH-SWn4o;i;@ISVdqTx(!4b3|xD~LZ>y{P4` zbMIEsEOKwT(Oe^spOUtSJ8(=y|7P_h@VYlL8{E}ON!eY)gXuZGu_{zk4a2Amd9 zPw=v+*Oa3nzh$7k59f=y%#{|wsjlGHk~kk6O24n{Y!eRD%L|n=gT2Mn0nc)krjPRt zye;6F#mh(wU*{+TZv*nw9s}>#h=!hWErETG5rz}R0%u)@E>5Y(FQy(3S6LI+_o5D~ z9=aa6cb&U;_DQqhyV~y81=Axjqh#@sqx$kxIgXuFIdc{yIdj>MVE9e@?%nGCZu`m2 zd)x03_Y#2&a6zd)y_nI#a^vJ<=4u@`|D^vT#pBLL`Vcp)qc64Q$+uur8-oO{tCBUn zX5MyY$aB+mJJz`9h+FMA6dV0QOHwshEy+eRjT0_BV6J(r?dI)q4rgs8lICgsyhdsM zjVvjEx3%0zZ7yc2&`~pKI?ip=Ow#wX-vIe%tmt}d>#}#h(VKnG!m5QM(Bg7tw8j1U ztIsLSywy_AB>er7gBzk6c@VD`e_r7lE6u+qSBJ?52VD-SIy_8c`V9ZOqs67@43zN- zka#hys_b@rak^Z&i28FW&;7r>)@>b2vgm_OTJ_Nd67^AY#=ckg5_03H=&SL&wY~xR z;27dYc@j>qJAPgJYlHS0q#Z;F-PMD;6hzNivUcM7;LDrii_uefy7PX&zPHbM7|GDT zZp`?Xnz=C+xBrhZ`dy?MQFHPgcfqpjn`JH5#|nsw`B#Tp}LyaHwW7wtAo-y}Krp0w!&oc<++ zthYrVCO{X_B7H=W6%~Dmn(s6iz`_@~7M+HuM=xz4eMfp88*kC=X+G^8qPf~Ad-U>^ z`&711L!%HwV?lKx`-8{kolk(Gy3E`n#n>ycUU!0}DD1y0?skYhWp#v0;H_HT+{ttD zHmCjgV0&Z{kKkaeXu?xCs0f$D_*uv@fDJ?r{dmy^^#1cK-;*!lKZy7^;8{g0bU}eE zpIVS61fcz7)AlzY1f&4^0B|IAq5j!l1I3mD`~&X#7AN=tS}xiaJd^jyd~z+-@$x~F zEPA_yyhdHL-U>ja9&Xyd+BjptMLZ2LKsIOzIG0EvFtV(qN#NBT>yaB{`5}gVX6N*`YXlMX7!Q`m^)M7>8 z;W55zKI_9xAsw;}` zh&0*>%cnp@nmMjPIS(ikWtvYFxIp+XCT1G<>U%8oI~XcU%DMl~{XS7(K0bB}c(3f# zs_X0Y!S zH58k3$-DTU!ZLThL0D_S!-jRoKCctu;>29aw1oh!0EgE@EFmyBDSsf+>ljgfs7!TYRl+ODdyYnyE{Wc5|J>C*pqf^TL=SrM; z?Gj|gP7c<-cgtPg0OnWuZf$OhwKA2}yENThzso|$9Bj9FP+0cLUk@wOy3yZPy%JI9 zHL4CAlf5*9XbYC52QQQ?Z=1Qxg=HX})m;zm<7|mGbAK=M+%ja^2XV&J@+?&D^rqbv z(BBP+$%qd&qXEu%3T3*dE z!hL_c{Fx+&Ord6^w;D5wG#1TI@2}=CeRSnO&h%@&HZDyH4oQ)LEln34x8Ua(wmr6v zxz+31%0uVM%wwi9ruug|o1ETBTCWa1d}Juf#|P;Ev0O0t7UZgNdlEU5zDC(xBg6f0 z_WEILWl|0qy+vQ!iHie@+OD$~cD~GqhG}B8J&!32wb3 zJJ!UwzJKPA{3g;#JG6fcW8JxX8CTiG8t2d=u)21GmZ-h=hJcr9qOn(RvmW^3s=Ih{ z-2Lh1PNyW8@8!yos}i4&!`EL+KT0<@9OKru9Q)TgZSx7)Ebo9f|FRYcqNaon^RFRS zAxCdTz!+=N!-rSohJAMqbL5ZBF391N|CyG0F^ETOu}Ek7AY3+W_#sG}KG>`Md<2(G zR@`|`OUw6n+>6JJ6JJx0lY_Npy~D&~XWJw6@f8Bb3_+bLZ)APjzdAa^2nG9oUs)0? zZq%T&HX<)de4H%YWhN)7%%9b7WWM6O()vy&Gi}UBT(TD5Al650Yt*ZcmR=Wdc1AjB z>EH3u2M1W_-*wh<9p?y1FJ91-ke78*!lo(DcHvJ?8P%3Ifs(=rg!WI;K9oIyd7^P& z;&AUgUNgaH{&J5KFk??Yp=evcc>{7Jd6uh&lVJy?&p%KzHGv8%5G0Iv7a3WYrx+E# zoO;I3GNvP%05nz;c;xv?^^SO)jw;p($O{??x$HLMdAo~mU%!tf`0S^5oG@_B1H@)u zK^y3-Qpd~-81n!Y-HxbXm-Xqw0H3hh92oDRTL6lDe-0}WcBnV>DG7B(9PE@HuI$}i z=a}%kJEHyTV64PnS_PsroCe1(DN=X97X;V1TIL}hp}GoS1$e07Zo_m8RSYQTfRXiO zgATE1fKu~>yWlRbTHxtB`o(8gzD=UQ8x0u;{VUY6|(VJ3wuxA=K~r6xLS7^H8{iAS(MEp#cfzj5QX#D+Y&B$EvmiDzUKyk6maI*9`QPLCnnJ? z5E5Z=1AS1UyiXoEGuYbK>K23?%Row?!f$pB!}X`TnOu>lTbE)wMr5 z2jdJyS*)+jmiM~Ax@{s5Zh3pwHe{q!YLC~UGdoa;oJ3%?(Lhc={Nd}z=Z`nU(tEdy z!(OAnURLY9YF#f%Z#M$V8@}AVA#q9m>yVD=A^t(baI+MAj^AE)eQ9_&aC~T~{9e5i z`}QVzVARO&%jzxeonP?fawlS5dkI!A#V@~EX<6(jQymKs*2%;tKp%?lij%@i8!M$bxV`6vgj7;b!Aen{Es!#d&Hp0-b{0}k8z%1Vbw3p_2C+^K zawRHV=DY5F{jru!kJj>Tm72DTDwx#k2CE=WHo>!4GC=FWeRz3s`3Z2)u=o8&bbHYu zN@YnmA<(Fo);5piMAA|BFxbX`(9Fmn&1pZCp3PAlb4bs8qiSi*YNs_ZhvDCn7ohl7 z-YwPmKe3phwVW4!fVxo6zJV#rCslU{4j8o!y&U|`X32vHDQo`|r?tb7UABHA;CY30=IbkZsI8gOK02fWuUDU!&5YcW$C8^8#9-}fvcF*C~a({IFXwi$Jf z!Aus3;}YNC+ts4jciVJDE8fXYGZjLlUe5#+=lM(+ngdRkpRa%J8~Q#(YIU%2(Im1F z-=-HIajUB#%+FA6{KA}EoDI%5faw7oaqQ%B?!U%s6JMq?7ag)>+IwBhF|f{7CYzNU zkyZ_pr-%3@R<^BAE;Y3jd>L76TSpDK#0Fn$OhPoN-JI2jCZl}*wlsU!RQhLrqF?y6 zU44bDvO`$M>uPV<%|t8y|KfdmUc*%KCvRs;E#Ka_yy#nN>iZ$&yIWe&xJ_GYf5TU6 zzwKRMy(s=aXHoCEWOHvV#@#pJeiB=_vz)ql%)%A%%T&xxnNC00l`gT9apj91UDl{% z!NaIT>qDH!13g50*>GN)`M4Lsz(_jg|)vpFtUfd z&2UWG{kHby0I6qlPo0T;%!SEXT-tX}WVLKW=TDs_{y?$olNLYzxAXhLrwA_k;5k|;vHcfRptn|}T;6Qi z!@nnTU9?;1@|!=|Yb-cz_x?M%xIfgdn@{QK?m;hQcl>7mZOGCEXdlQ7F#CvA*Y`|v zJ&Xwn=;#&}pM~;6g%Va82m5Of?$&X)jGC9^n1{E(+M1^0!BAb##8$-C_{IquE)?Ca10L!kYo8K2VmR+f*aSa zyMt}82oqi{;_(`}Sa22cLQ^idl4C^{aJy%9kJJPKg}X$D07U(>Q=kM)1GwEHd1>yO zNvHq-ph(H?)EFzUub@O89z>|nwRtSXzh)1h$=ml$dfk)&hD^X20L5f}MQYqjq`)F) zMJvXEC&%h>hKF4X}^W zKkEcJ1$<^TpU)jNOkw_(Ko+3MDU{E5_^ex%0Z5S8zesS1d?7E*LJ5u1NYI|=CZ71A z4cTeC8s1FxDH3?2HjE@t&@cm~TnT}+Z<4IE+|*N_F!DXg0lDL{Zx`XfJ z2Y9@%qdNAOx92m=&<f?^Wdl;2~_3CBIoV(C(F19p=Z^cGR7RwsUJc0Y)35f8pLI zB(3M2khFALg%yz7fZraTCN6WQ_cvl_L_@=$@j7m~Q+AC;(g_=*LqdaV9-cR=* zVzwXQxBd<2lMV+F%wokRj=L5bSCXMNW9vHKa$F4H4*l78?Hk11ETfN_F}O*5f7Nyf!IReCsK z!9D!Jc?Dzq#%k+#Kz$Qh25DHFbGuTFZMjH}mI_Tu9&Q^XbDVGYm_|X^e!|n}VvCk1 zXxn~8cG||gBBBx4wLPp4cF(#7uFPAx*Brjk(y-i$1fppmA7jMR#VDwh=lipXf56#; zw@0p+T@p*c5`718%ZP}Gctktot@hxfDXqv^qTO=(W`=?p3-^dkOy;(`%|K%gyMIko zP(-lsg~lcK$@TK#Jn^-4550-0lGyoRT*mH;v>O@K_iCxD>3DTm6Lzg?~OD|yVm zSVysK;nf*sVE_)@I?qQNBeDb2HOhl{V}rCxowlYAjh3xerB!vTcy%*It7K~r zyTuT7^x*vX7r(pPCFzYHQMax5aLPoFVmCXFXEz@(cdVCs^9G!mS)2WAWjZT$1sao{ z?7lt&sH>G)yB@y04k><9ZzGd?zrpW~-hJZyhcWW>$W}^NV-6cJ-yWH~W$l$sO(m;0 zyL2$R-~_Q}X+nL_*&%WKm@X**&HR5G!_qn=a(F+EQ*Bnhb{~+n9eyBfJ6mJFn7@Z+ z2yNflSHPtP7VWD$*}hls$Mya$7OJ^e{GT!+L!575+Og1j-?R41wodJ*ZN6HMS-x5} ze7Bk^FY{N1=Fc&^!6XE>K|FEU_k|6Qz5lmMrSEC=KJLMTkgYF%u}CHr&bgo!h8S@pdF8=)U!Y)H{Xg4~Dno7@4%o zdw7d%6)&|8+;|qq1OAOs?UjZT#_G{|DVWJxD=o`AzV;9ujonG(i{!+x>#QTskQ&y? zGINs*!P=KDI}~cYMjWwmjMKXDrTZT?%9>_(Kj+cLH;VU&(DNak{7vtQt5_MF^3u1T zCKqhWp2T$C-xS?=YX)g}UhZ)a`#<;UIeEkjGY@)4=RdBNd00YGLFoql0V5{x|KFWH-o z02^j*C<>~pLLr+Pfrpg>$_SZO2nLkZC5UM-79|MFI-hVbydgX_ETJ`b2J$skqF)2pqc{~t&%sy&`+EUQ zdN@a<9|s33RvV)8NPz1Ggr8W*VG%DC)qe5)&E}U3uk2N{{}tgzubjq&!b7P9FcnYt zHIL5N=Ho&8<-BZ(^G3;c@VHfIQGG#vzi`*k?DEL2tLLtVdI?n5=dt|+&ZWuoSWg`V zek1nTctjJeI$6PHtQONhi0hcgiT|n_?VL)>qvP-IzQs%!AwrDReoGM}lkpv!R0|@V zkA^BnFl%Dsi6)D$Eg_o3NN(|8@#J4s%nk%Jgnly)4%ZeD1sYg9zg>^g+hV>*(?hV! zE+B%gwQ>TuOZJYEM`8S1OkWTJYX|OwyzF;pj7@U_2}a;<(SH61bp-RubaX;teTxzs zSzxTox=a`U3?!_E>ILn3260GKKx}0)h*Y~;8N6+#5TpO<{buv@QzRG8)#UD1&X}X84J+eGjv%SU9PKMG8K?!{m?^UNmCCv#Ve(ox=Ft1%JyrrTcY-K z)}fupUSP?~2yTf~{PbNUWl84L>exZodX%~Jd*3b^RS4lrF2KZEM2oumLr^~gnB@nS zFkLt&__N}pQ*&)w#r=dk^PpWgoMQ(B;p@~I>W6g7X4P#vZ5G25%wD?E4E0dBh0|Bg ztBziG4ot-kY$KNcPbRw*!>XYN_f&UX7(Fb~F;qwK+>hYKSjMFZ`-0MgR?)0$&jvBs$LveEG!-{9i$0jUpe6*uD7tdh2$ zKl9UjKckgYvQK8WL9GEOL$y556yJVHZKZUZDBSSl=90QA)91F6^f2 z%*?O%E{@7ybO`g>r&(t+SuHg?ryG5amaoJ7NgW99DeZ}^;9n~XGf$hrw8ql|HXe4( z{Dbd?#{Jj-)nS{LIl-#UU1O{9^H%PjN{5*r?IFM1qI`TDlGukf^e}d%wf08>$VusB z#~5WN>0H1)Zml2fW2x&o=7ZPGRC+OLkjz>7HHJpy400Q_TaOz$;nDi-9P6avcDX3M zv8@$M!gza_4t{Xp0smKKhqxVkm@a|Z{y!*DH!(LX=cI_`=3K9@gQ32_vfW`Wa3diQ zgF#rkT!f*)z4K#zXSI3Jd)9KMcXE#Fl5dTCEnXQ~(m7+8!MIFuwZ6)eqLVol4@w>0_)X=is(oExi>AZK75{4ad*D4=-~LQ#urZ-!9ZGwOP|?U16xQI zfHgVHsT`zKSY!0)h~Ly}amAQ$xs7MDn*NrJkn=Kit=8j;f5YCE76&4iv&SniaB;26 zr!x3v<>sQp`Wp5F2^YfcX-u`=NaHd6DP^pEuhKJ>B3>AN(HFrEEja*^gyHdt|Sj^c78my}1Hp|kebys+Sezw9CQ zu`K<3;p)2Gh4vDov6{;4wonMk`Xr75xP(0yBu$991Kwfv0?S~W;tl;c0CF%OBU(X8 z4)6uo2{p*)W5WFjP9+&9*C3|C@d4?h2Z?R4NCC3d>it}_5+H3a5f^eIC47^AdtmGr z`3zsS!^vTwmPR*hU}9eXteS#gH&y>p2_r1l7?{%bc212g%Inid24fv@9%<*{f zq+0(LcOe#i6VM)VkTws@2kWQd1)rD2He_|r5`eRm{Erdn-TLwax&pv<8(vl z*Okq%i1+?}K&V;h*v*i)MfzXZVIB;lCCGOcGso;`p%lRr^a`aXNCBp(X9*hDj~$4@ z7Ay6gT9GA5#thc&L`HDJ1D>c93f@$XdHG7cddry~5w{pl_>WAl8uT@x?55c5ob^++ zSY5JP%7DBIBl#bvnyR}&!)tPnfd4oS_w-{1@L{hYk>g30Bm(_Ra0S8vMLZp;I_k%| ztbn56y*3T?>u6bFYE8@9UGeq!v2)6>++~anynJ!2S3?gfyu?hqpc#npy^*bp8EZ7k z8?SEPpYpD0txIAKjtW#LMyFO0UQCENrv~qBX9TPVz@t`!94ox~&3)Nl21l7VZ;RZU z94A>KXnwzcd_&n$CHB6w711OC07!AHia^TaH^~zM%EzL3eAU~3rTfeTZ?V^E2*52@ zZW^d;#O2&$C2TCkMEOs7@(q>%=>b+frNRp;52|0IMA%#{_+nn9-I842wkEN-wY2fjD2~J?>eE zwiKT8HkYw#J>_Kk*l`t! zC(KE*55%|qu-;9zzuHgr$f9(VniNRlT`|dNLS2*R2R?*MC;42OxP$+acNDES>SF9j zJIwd|T!`^Fj5ggEwm(N+Fs`*s-gCfDdqGV)q<27DA*WBuV`PBX<4Mk54^g~>zc%-Cp9l3X#|H$pJ~c{ox5vli?smii z2pfZM#zsqgj*hLxbbIF?((Ww1yxF+e_r!{tR(0Mjom7`awb@Pggxd@aC3zIDH)gCo zo*IFVY~-Uxo!J_jjAqR`<&MAC%Q0|iO{Na!Oq|C#wrRroDu3NtAC+J2-SWfybvuf# z7Kcvq0-Z0*JBLmJ9_q6hOrO{Ewxg0<`vml8>hv|G!&c(E&b}RS9Ey3kz!<9^-d4g- zTUkt+?R!whX}ywlpL}Utg)vo-|6RT6ri!wD4HcPRUb^-1te;|5y=vW0qBdxQDcmar zV)lhf`^J?idcv4b;s^d zCU+Vq-mOrJa0aqJwKh^c+9enIUw6}SJ>A+1lj?9p`CusEVf>xG_Qi@e zqeY!ZTi(p;P~%qz{uA&0eP8re!a6Q?AC|)C*)w18yk29w7YpLJJ=1C0T`Fa{@S8d) zxLEP;6`e_5pM}?N9Fj&LF3UMEpRA3w5z;t(HjE|C-JfF>sfn?f7Y%q-djGtzvM4FPG>rd zdi1`eNt3-?uE&eoG|QHtN)o8)>Geb zjR}fP^3$|qs2NYh@-C<-WCE%WNXoLu1{M(51I(J-23$QqD2Dx<(sfpmVqwlM)dt}G z)~AQ!ds*oz)H*`Gl&82Ks|{Z3Xmi8rWA{+e?VQVb@vzS zHyjmEnbGr2DR6Y|U8Mb6TvM!;1%cv5$;lfc%`mgePZU)(Z&X6>eB5&qrMQ&=&>GO+P8EurdIK z%%UkZu^MgK`!FG_6eZ*9qMEBIezA*kgC-*ZaOmiMF~K9#*DLKTpz@c?;+9@Ad>8oT>DcwaXZa)1>;!qgZF07lg9@?=$ zyoY_JgeiLUYeM$K&3FGwIkQ~Y$oD^UI*}5}*Kv!KxcCK73eQUk$;Qz|dRiES4}T&! z!g{(df+rm~FSKS}>g3Ffq7Foa*Ugj#*NV5j#5H-T4%{aFyjWe;&xv5W9aIIAE7ZvE zN;ACix!Eg?Zc^8-OFWVE9#=jFyGttOfMbKt13wH;m`P;D`a@8H$Ou=;|^UhU$U*F%*1U4Aus;oynlY9<+sfONn z%<~`_ibL~cU02h=qZz>6a%`O~8_KmjoCB&VPN!|{afCqQ55>-GfL-3(hPn~$0wpbH{Zrv?>ViRM{>8{{MFwu;jd9x^T z>uRXBZ>XcwW5^~kxAiv8Nsxk8Pn)AEU)Wn&YQS_G+RuJ(dHf3ZmE3MAcr~LLJ_9+d zqT?Al^Mr#SwW6l8A_o@STTQvQ_p4@kb$K;C4OC+_H@qvt)D5y(a75PXSqZo;QE(f> z!}(6gvC(Jw(HCSpw4X7BUPmCuLrI*57<;Qm61^BwPNg)_$vL&Pw86DjO~rKCMwWi_ zzgt-P{F(l=^siaqzV>!6l3^^afGmW1FIKx!!r1etnJGd zBOCM;=`0V;NR~9@UTRIXP^a9e^}_UlgXa~3PNin)+{5k>--B!qMQr!284832hVTEA z_-zqK8{DI6B7Ahhd}2;cej-(WH8|Yd8LW8djZAsj$z4w;In7h!Vqyvltl>g*qX~p| z|9qp8ZYMEl^XTG7=Rs!74OE>!dwYHk_N0@v>0;qZ*KDO6h>9}ywNkBYwk&AZHKr7>WiuK7K z-;6t5ndAITnd4R}q~iShrj13=%8;=MQwytf%V^)8x!^Z!&4YhYvrottpo3l zs}44P)Tx-KwG}!(&P<4&PuG1~QJ&#h|2Mb=d7Q9}7tNtvPvSX=)T(LmZ^LVKtGhwn zu7{)fVe$;;;Xd{bzL-49AUbTN^>*mFn`x4Ca#w<9Y4E?_#_a*By!^}ubuz@Z|4-y} z_-Y``tSm*^f^_DO{BuUjvrhq^_uL^$OEra67yDGwS63_$apyZq@NrR1Pxb(%igoIY zM>=Bpx2h(8?8PF6raz+v|BIo;IF)85-n8&;8=BL(mv>QkVtSLA8=dnVuU+pbtuGJ) zs^;9*H!WkmDMA$mUc)9rw&M^XyF0j0@QqH-0p;kG3vb5tihYik!K=B-*ngpEDZ6cC z*vy70lun_%{wG;$B+j7AxRa6cXj%?kSdAVHy^)bl9Brv?q~qj?V>!=8$*VpSOKEnO ztPf<~!`aWfT)vYLH;W?3oMVxQ_HCbr;X1i)iifP zbAMYbb$fB98F|M_;+1R2$G#0+$_xNKm&PISX0;b3D0tHUjPMBzbPW_3h3Lnod_iYe z?t!|oJ^>p;*1Pu!ok05`{R(z}e+9Z|Cjv0voPi2dr-1&Z@3@gq-s5ER^yx@<(}Z9N z;`DJ+?kD3%qLg2Y5hDxK-95w#AiZ>ua{{N!Akd=!%^L8N z0!g<3ln#m2fD?o!XJG?9WZwPLY6boy;n1C0LXR{$-67lR{4tB z!+xQZRBhT^ZOnh)6X}-v7EGYXOwseRjx-wY2@>~?($!ED*q^}K|7izc zer49-F|3k?ZWw^yB-HH=5`#m#=5@_8p-OQQahv(_zk6S^+Dy^=6a_ew#)Ea&>Yqjc0E052z%vr+OZh)yq2p8Vr*?7lA+pQLlVBHd6+U7f&SqYC9qE-L$gK`Gm^(4u4uOF@6-dKwuezl?#D`5l0F^b&g4$AcdJ+6l4bZV_$L{Ag>cHH~v;`yQmt*_6hL2%}2Z-+lHowJ^b5 zlCnNtE}Th?dr~X-4d>U?jvjo4_Yd!J{2iMQU|0WGuiyLAC$~*+1vEVuaeJ|}IHre+ zw7xc|I$M{%864`278gp>G*e;tLZeaTI`G!%HR44UHRqz$=b~7jbK@WrME}DJor3xlkQ@&lY8quYgnCI zX;cPC7I8>d+?{mSYIeJA@?1(gXg)W)=d8I&B}UZGr{R)d3QnJLeP)O^sVWL$rfw3l z-+YdzujQ&JbvkMi-MNerxS`dT%?~qE>fTN6&A-dDA4M+t{FC@P5b!on^`-A$4LQE% zNP6F)r-E#$wI;kB(`mQAn=T@AckUk-+K2_=~ zx*gwDJ6jjYE$5xp$H!c0TIn&bb6b`u<0o6*%J&l0Wlww^9*P+&wn#p2JD}@j?6Qok zSgMA5s;yrW2=|+D<9_(YUfLhHzyaUQ3vf`a_x1CCu`%YCpH(UC9)&y7KKjnA#Y>c8 zjxGSfa-k5Wi)t%mOkh%jZii_a7YiPZ9dSNJ9GkfigISepZ)m*M1>y&HhI%;d}w&Z zAj4#1p|bz|WVps=px*mkW&2VvOq2Xdj}+#%8BOA zGR=MKGS$6QAP0_z?&RK-YF*sfiBI5}1f0V!yX9s0`&9N<_!Nce56WqC&YV> zAL8B2kNg;4?!z{6Z~3!4=2pr(hI7hujBKTRJyULFqb>Bdr$&u1ZY_q2Mu3?1g#a-l zO&6mq%R}Jg)m1a{VaP?LT`WMmeY#YSQ1%LHzaZQUPegW5;z=_B{;ugTe5Az(UNw!x zvV9qhBK*slK#_2;=O8|chsVQ3Vhu1{qd)1Lf5!C-XtIU>hAC*z5fpOi66TD%4%!Pb zG5iAT2Y_7;fiif6MPz@e^2->QM7ozhQ!q8i0UVC%>Aw&Hy#JioiY3!1I93z`TClIN zuK+Y4?G*{u_arY2yCsNE!%2!5H$dTSKfLJzNdYg$=}8M^j~0)&=^%x!crQKSdpOUj zIP2crcDwJC&h(kDG$>D+GLGG&4Dv&qX=oiJd0$nxeZwBs* z89Sj0r})_)P4hGe*l>g2QeuVP0|gBWnfm879|KupNuY59HIhZ9erjI<#v;D|t;GN( zzIJb!UZ2O@DKjQYL7(R*$xTGpI#5P__4q;0j3hg-HTqYy6@Gu6_NwGlNMo7j0sS%F8y^W%#0&3Fq5s|MFO zRcO=sR8#xcw8v=KTSOre#ePnMTNl0-?Fb?4pAq~0lqvcr!HNd;#rZVavWX(EX=WyW4{vRkPdw`>Bzmj>;hMS5`?cL zA=)F)sA58Tso(mhxC^YsU%N(imE5AX>5$BT0NpbAS3OKK-fSPBo=Xo2z+74Quc?>N z@;hk0pn+0)o}euz$!J$*j@=Y_2f}N%3DU!E`_adOtk8m>JMk73J61r*@OU z`H4x)JWBogYw&4pds3-cu+tDqH+52u1S&jP>+#K8uG(r~$H`$~5$*0^OdOb%jwn80 ztHBYYWPLY}pU6T4+}?V+uDkjd&5+bzl-iO+yNkQ9fo`0$;Q4xnh+_PB-+S0mTx@3U zI~?l}-PI~r|605zCFwD?@4`(r7qX&Z)GsS{%q%47WZlzVW5E*7+(V;}GOl}7@=7Mi zdS^mUlK#3w)N62OXn?^-p%=*~Idfh?$5fM5pO|hT8l{mmHMqs|?WBK3gTF6p!z^?s zXpnOoBIYps_~?xBGtLrQs@rC@#cCdt=_5dX4D*6s?)A7cPLv|OACHSldw0LP49`{D z{eL{2WmMCT8}>H_3`I!^=|%*>i8PFs27e+YDFbPcZWtEbASfvzDJh*QjBbz)H)1p+ z$6({x|D5M}&e@B-+>7t|-n;Jmx;~esIIkG3FGt8XIZqctKh()eTyV>lLyD8zV5G0g zDNUa7%pvr%w&+GfK*&*!2V4$);hl7X4Dr}8%g8a4j$pxO7i*Atoqk7eLaD1C^e0D zXUG26AfxA>ONQFYI`cr4U4@6nQ{216k@20nc9jz^X!va{!;uHZAQ zw{NcOw=K{tsTUk{I>C8OT9XGkTzmbKZ7!(YRAbwo`tVrsnuBD3JSGF?tJjFlHFs=nUszE|_O_DIuM+e;}<} zp%Az6dI)Up1QL4mHFNT?jCmPPK(AgR(4K=c6J0|NFvl5o^}10PNTf-1T!c}Rde={O zr`fKd_}+BC4mk^k^gb&V%Y-cY4%yHrpL|+)KbfrD=WY8DM{6Wp5PbEu6dI+`5kxYTmN|VGioPs zpWUQM5&HRM9v!ubZ;VEpZ+vi@5n^&M0rPxzFrc~BC8R}THlQ>75Q|At#!Mb@V`6`S zkiEpFUVkDLU{xSKvCDv&KActV3E^qj%WFr?JkyzajqLU!Gb2e2c`nGC;#XEFyfqoTdJua;2SVFl{(|D7O~RL0H?AA zUZSQ93zUpVX}UQkNHpKV?ld27mO%i#lnOIW;RGS3{DakU6{r)YOLJlMo`3B+w zECar{)xYSg#ch~=xJ~z-15Vh{@M58SyFAj0;nhxhxS%u*INJw>@LKInF-Zbmftu%k zdjhQaK1lv>|Hit7b1SB2Z=09mP*MP}^&d!l=ogap?Ico{f0JDP{)8yk!;?6h#=jxU zXia*K0M~%Jfp~FXq0ZBLC6~&J3B@bG&e_LM^td0vmh*WoHOYBI{!Y!Z zbi}{wgs^S;q-xH7M!QJaGur2=CQ!_+#u9pzGBe0DNfvi#v3@6<4wRtUI8OhTc3a@n zlYb+GZY|Vn7t-{`OXlZ;kc15}BxUV@6tMU7!`m7EEjemhVUD?#)YAlUBJ=gpl{BaF zFY*u?0BH~K!vxXf>~a+coFDa=i?BSs?+JP^rP%j|M(<7x7{Ia$s^iu{|F<{U1OxEpiBq_?t?W0X*5ir-AnsFymFSQc>wMG) zPFvk-llk3?F*o$ey1e?EHW}1Ixk?P}skT^$M1#DkR7h_LKEo~|Za*(N$vT_poNQRw@Pq0qACYH;Pdn>=lySu5~t8w#htuYxBRw z;qZ8V)u!)u9hd8c6as4BK|B4AznZq@(l_%<4G&n=UB!}xN_S>fa> z`0tX(dJy)fi>YjZiMQ6av)X>p10D9wq!(VPcrPmV2RmX6ixx}+7f8-%;_2$F#YK=h z`v`a;ZmWHu(aw$O`Pvd;(0u;DWJ#_$*VeE)S`-R+ksuN*)gM7wIP>qs_K-}qaQ}Em z8l77;;b)(+IcwMHQgrv7==|nda5*aJsysDxQu0dj*%EEfa>w?Zd3oXT=?;4Cdn;Da z^)TJU-p_490T+&5&kUR-K*C>Cn1(oWJAap?DPli9IOWR__>w_t=I@X)lI-hrQ?hwL zuhVAITUUO=|G}~qVg31_mt!&fCg4qmC2~H;FUE-2KPQw-Ny(Wg`tg7Wpei=}=5iWr zUEN$r+>3Q`c+Z@wdyXw)wTGqb0^LL`%~&tOzDwqEShKD|TO`AdYZtJ;lpAUrJ>2Av zq8Cg9`@}J4Ef)x>l2y7@)?ih6?}@Q6?a0gqJ)jpVRHP}}7A{Z8OsA20fCU(zc^lbmSg?aiC!92e4 z9X)$lKe4LaQN9R!uCeHm5RopWej}PEoD%qcvh(%w=idHu`-v{p-HEF-7nnu4i)j-- zq;XaiQXXV~DtozrMMqMF>*O^xaE-=%V0X$XQXdHGF~i9_Hc|J+{Yi+ejbvkqO;8YZ zmSy8~V5>7&nkE!ALzbx(C+Z*O?o7&rNxN!Z+wC1;XZn>fZOQLZhp=b8UGewLLLP1A z3C1NbY1~aXq++8n$(!U)xQWE?EG)=0Y~P%o^3Io#vCcHLsm9J$2H;q+RF%*8nmv8r z?`+aWk#d3a7Y+qhB}qbjwvV>kM3#R(dPfa+JK@xjpu;s zh<`*vFOUU3=dL0iXln$1%#@sFJrH#dm5e< zQUw4BFbKCRV08mzRC+75t4U`Q4_Qovf1`)XaRm=2`JJ(ug&4W#+?A^M#1tdVkw|xcxHaEB%paw z<0nvwWU^KeU&EebdRD@56{nLoNA5Tl7Dbbv=E*%&HxkMsRTr7)#F;c^f@R716Ml4mH!7^t0W}{9e(d z-;(2q8uG`=XbgQztG5&3thid6CsspE6PtJ>6-s`+T^Ph(ax*F(Ci`0B z+yN}}2L#&dHrAvgjkV}Cp=tMVZ^P97kXOd$)E@hGj)2)v7O)HlG|)`23!O@sEX!8u z3jseKh2nTdx4)o;y>4Gth4C?1Co7(5K~HixqC0D2o5_xk%{sq@y?gMC#04DKP4F3x zq;)(6K3@;NR3W_hqtp>~w}NNgnUHLvk0pILDc41sALD_dL3JD9xhRa> zqJkw=1bC#eHBfuHdH>7ELl)ugjInVL>i|7Yj9OMOm9@CYlH4?+da+_%GD*nQet1({ zjpk@sx;J(<4>(RM>e}D9$=3>4dZqlY;cZy(V|XHlw_Dt{&_~z9LC8(4$)GQaU#ZR0 zqujup_!fCn=Bnq}c?pk4TXd$F=up1Xzc%B34@cf0TFc(`q*3UVeZKD4)vTaTSP|NOhn|u9LU@#*g^{RT^ zGxLU~-mBJAHeo%R`{q(D_j0)J>G#rA`B8(*FD{PWos!-Y)c6%aN44p$n7wY2sXI7Ov9La=m8GlLz2T^Hm#GsSv5#t* z(Q;;`ICeMw7gee&`M@FTMVZJ;^;OHDo}7-+W%y5X1!A`rG9?Rknc@&DJjRk@{PrDS2Mu|#=1_lwkUkxo1mlZh6k9DfTWoRrm6zhOsgw1oMlsTzF;6AvGXw&)u>mv6s@m zN3EGM0Y>!)yblcLKR zKlLx?a>=9yzH6GRX`0WgHVxp zFe3InxHs=ve9USh2S+%wxIEzr5ytp>360&T`G(1{Qbn1+e};%tJ&#rJb76nM?T#z42Khx`0zx41{d)Q z=UJ<##!v1$02CkuKz?*v$z6_%BkDkk1k80{n0GoB5A7cGSo61XLq(gyG**DE$!rwV zZoDGEe-v_n22UqS<$qdceW1n4I`7X|v`$wMB3YRTTaBUSVfyNw=UpFSF8!9{Vj1i2;!*vSR+zU!ehw@-=4 z1wQey4e^Q690>a(Hlt;IeT(*Y^{vIJyLrQ%&gmI`$<*DZ`5d+e_-;kgkC_Dq25}$~ zU;$jrBUWD6!TBc5+FYROjKo!D*y|6$Mml#&sDw2Cr!&zl1zV*YCMhd z$x-p)Xp>q18ElQqUa$M}Ij|-PvI+&<_8ZceNRuAby!v zU6;d_9|jo?+p(p;jOrTra}8IlQB-_wa+$Mg`lVa3hn-Gaq=s{qhLS^|rU0>ojG%#j zF`5DvF#Uzl$koY9i zbb?HD?9G|-AJZ7$^uT3?Z?mkG8w5t(kW@<yxU@_ktn2yZy#%eY3-x{r>iT~fTbCI3d@X5@&S^~N$JLaih zgk8cT%lQ{U9HGZDMeIt}u9H7tk`h*uG&f$w7Gh8ZilkLFu7r)A5QX&x?Ik-}UR!nD z%e0dExv{MciPhfp-N)-(%6A6+tCZJ6+=lKOQ)9rLQBTLIsfDAQPCm-Vy`>r26cg@h zERr@L(15B;dYl`-oLdfY>!aUz^X~>4wywN%is^E7o6tacTXLQEdW5N$Um_&PSf8@# zY-5MTkjuVFGKIAt6|*=yjFSz_TZFfGshb=I@S^y%3~ZB&b8P{&Yf_@nqj~7YdAcyi z9VKU;@o1OMPepaD+UgVFSzhBw?#W(NC(n*|5A4NGju9c>f9mHUzjSPXgEVdrURJSd zTL)+LWsZ#$|2y>R#h%`maS|Q&wlFK$Tjm3c#{GuI7S!AnI0p8#JBI!)#&qtS*e2dj zjjcFbSeox>E~waF_T{tceR6Etu%wLTlf?iZzw)c%GZTn8~$Y*?1L_!k{%s6p>fyd5aPUEN`_%s`spN zmx2it8i?9ByB!m5fx@3{5sXXXxMOsv?r3DXXHU zm@Mx*h<3I|XSwB9_;8S$^{D%0MhfeY=S2t>3 zxc-P;Wj)YPYH&6Z4C4&y#%4c3xnlp3R_p%QNfCg4tMeH7EcH> zM7>DuIe*%PSmLV}>|)G_3ltLNxUfxLYYVupMja1?$5SG@GCR9iyuV)yiRPU4H9Icp zc>0xJWdElaQ?C)CC~$t`{6F2;D)!9B`u?BtL*jNdPmFMA*>p}>h$~WuN^`3E&%UVsuz3s5{a7$I)9=*RwQyw?m$iAY7>KSBYEqV;dnjQ&RjKFo+JI z@D@t%2OwWPiIKCpWwUHL9q9-_fR>ZrDlzAa=iirprl?t^tA^7nK}1F=_z1R8eL+?GtMJU zMwL0tXl=8VSV4xJPTFBXI;mvY-b(TcYzV%@53Y0d|SY0ZYrVUxQ@ z`6;;g5}C*Sq3`yLOZIJVZx^zMJ#z1@cM%&PzU)*6wCTJ z^AO_@y2grJ_LnTAFDhvM&eSbFZWdA_-VuElqR&Jj7`7#i`S5(`Lx$V+?f*plqv#2) zY$2BNrC=fcb1Y5H<$=Zdqyqu2doMOhHZLSmFFu}QPVnO6;gG+N9RnpNiq%I%3T=HL znB(wRfj-fTWZ7X-&x%g?`inlXr-L>M3os}9+=266Wc!>-ip*XF35hM-}B94!xZM9 zi|fhG_HfTPkj-a;<*Q1b0Y1n_&=iM5(NcNzV#ukIYrbb2615LJCP3_Ev7JAo<XdR)>ml_D^_mvU3N} zy2WqD!dTwzKBOa&rb8Dax9sp{(V2@q@da%NU@ zuD!|_dO5F;(xh{|TVCeH{7r3Twq4K`^8fO#2ceh$1Z7q)+Ls*&2{g3^9A0?duGk8B zMXp}#?PCq%=A2`gCL^S$-I+uE=nFXMF2^2STRfh#Hl6{~w}q`><9VYnj%2wtVQZx# z>snoK7(a2-_;BHg$#_}p!8MCfV7RwkM~d%$(7;(Dn=RB)`=9D*d1#}%rk$JK0B*_R zn}=P^QlI~i{It}1b}t3B14nK5^X>??j2lXQU7p^1XC74?P`##86w8lOqsox~4$@%T zE57P2IIk|+`c1o&ob1F0zCT9BSkKF9QNkwKF78vGTvRdo)LyD)DSOKg``bV%du^o$ z!C4ztkuR zFH7L%)Z21>Q@qUjq6=At#aBH^S!iH6Jev2do|ND2*+IXx^YvMg8?eesPMqloIw?x6 zK&2(l;ss{fUTR$6W<66r6{*8|23uF!{NpHz`_z$}vaD9JcR%ICh>jF{3OO&7S!B<# z=%HoZ!QB+mjnc@;v!0BLc|m9MMv=Dis+WHSTMCaR(57g!zt1*EowmaFM;*lUa_R0@gtfkuS!E+@P&c~y-%e!Ajf=^v z)f9$Z`6}{usr{Vv9s9C*e`hD}ZBeN1g4+xfHArbyHIzjfo~ zR!QDxA1snB0tRcUsM)u^)2==>?g*0oZqKWWRsN+ zlXADa&WkQY9u|J;<$Ok!Xk9Xvfw&W2QGsI|TYUS`GG{O81AEG-9;XdrYAScm50+R1 zTmkt<%)zbTiCM3>O4DB}f%8SVR!4;1QLWuZ*WT{dcf6eSoq0MvRupP!P=gN9$DDnYQ5#fKc8zr!m-kSI-=9+tNw(mBHVY$f`r z5k4>thZb-e)kPuyff=czuxBs72aY4_2EGx0{Y{UQOpzuM$(-pC=aZ-_NeGUTI31vLf1Mr^ugClx8jsMPh&gh0fP>D6Br>QsMx=?>#F7L;j*`g+E z<9{VMY(e|)CK}&Us<*zP3NbP*AAg|fw@awDrWiW7crI%~a`y)qy|S7I_}W7pMZbY@ z`LM?PKk{JaJkuuvjf|8&&g~&zN8<;aLA89~3Bj%+RV4{?IyhwVPX8rt*SFeZags!y z3>xcu5+yTIe#fSqK>}$ds=O)5x6}9&5FWoeNAr1;xrLMaJ=fD;yP!HU$2}DaEm*Hn z*kkhh@0Dse#~(q_#=27E=+S)dKd5Uz=!-Nf$%}_AKOV8}M!snMaVl;16n7>W3)~_T`mgGU*_#ncvJmWcb~W7U+jc*T2`%}u$r?8&wlm3 zjC7%qsT0B^Ev8DXYXvBJt(#NWXeb|Y(U*=rR_KGYB>Uk!GcJ|Lqf?b^SXiq z#iNInzZcgezAkGQ1$V5k-c7_?i|FhckNV>NJ?n3!tL-{=nDHF%n8^xN*d+fAWle3{ zjp~rJ)|Bk1kcEcnrBq1qniPkvCXEI@&hge+_E=1mu9jUGDNR6K8TAe98-^>IvKtv6 z+S64(C#vpe+vhxH7X*FJurBJ}g6)sTY8HmY0=FisPR}y8+h%-qg8ZZHjW!0V*e#QM zsX08=LijgkN+uj9%RO~}=OJjY5SGmF|{~gMh zb;=r7TF`G%TblB1mrn)^Z5Lz*7;P4z3@WO(ew>M#)j|)t&Q`D!GLcWWZ}zP8`#PT# z+lOpa@*m%>6GrA#Q#oki(GdH*eiDYR*Grl z8r;)6yMzuGxBqzVanmE46BA?qES$&kF5F3=r^=#B@3Ul6ZCj!%3|63-`cxGgiy%B4 zWxuMI4qwuN1W$6JkkMU2gpy@`R2X}PKEcoeiofY$5GU|%8r&RaDxP(r>YTz8=M4$> zyuafmMDuV>1=GXWa7g$pHlh7v+nef4pKS*4!*! zJ_hy9Ei#R{ z7&)e^U3u{Dd1c9^1?bVKL;)B81SK-Sqjw~ZWG~fexV>rAx;2Ok8e)kD(RIWD_$is)*e^VS)-!<@WyHvl2i+>8N1O);AD0$}*H+v9U()?=CYHAYWa@HhDQh+VM z8~9(sR3`yg4ovQrhJ)dmTmnggUr4>Pv)sBBNhm15HRJ-ol_U)ui4yrk&}SN91esFP z?Osg3{uY$>N(umO!|!u{WL6#obZxV8jfzH*qA+T$LGrh%Mfpk$ z@>?0+?0^Or5sbJ`e85Q%AAIxF)wN%=^+g^Y@nKC#0Pr&ImJJnFDvY!M;tVR)q1L2w z1D*gWE`7t)%ui!zrdD-hNH!Y!zIO}5<&uD&-RHPFH5!>tk)nGVq|yjM_&bHU6@MEE zx`Z1vA*Scys{r0k(h6^L>c?^k&5r-Zi=Rc-S-cuSg3hGriFk-R+e;rGOR?|hZ zs;K9M@c5(2l+(0s!&|+RvRz5oyzZ!w|KfqpJ@2Ar@aZ*)kFUZ)>ptDo(|2>s3m#C( z?bRS}vr5udEGQkLnSR56^u7w)=TqFeFRTn2lKHH{t7t1$FL1#MHoL-#&)6zDa$0rrGU58arT`N~m8d)( zw%(^%&WVSB!Jf&vHLeZP?_jb;b`FI9d}5aZ^UM z_Z)0v;qgXnHM9zs)48a5_S(`gynpU0f_zPoLI5CFGv@D0hlw73Q4+E)XUY9$d(0os zV|nE7DM%gd58KH2a!RKX-A29EUU{aV)XxE`x7Z=XE_c0}MQ z^!ey=xI>aXvxH9{g-@{3-2)1Md0VGZucA0zg$w-58N)o{klF-V@8bw8L#!9iyD0r( zhEqgU)}%L#^2tjAgp;RnTYI=aaIyYqT&PXVLjUVZnyO`t6Y`3uDd{VioIh+Jy(uCvR3j08}uI&OF2Z@eC=N{ z47BQ1mkSF&YVAdyxQlh_*T2T=7|UDp?T3YIMr2t!UC@1*FAa%b1LVFh&t?(ff46K;`M*o;a5(omGE@?0$wx_e`iqb9I>cr0=qGdn-fm$AWvv>Bh+3!Wjir zONo&XkK>_eh_%o>?fUO!B0HC2NRpSGGjTi-J1AeeN+ohJ+MW}QON-ck(nSyft z(UbH-G{YAco-&3C?f~t0s3?-y`tLS3wLZ%-X0*>|&Acn}opPO2h34|z&nd>Fd$jK? zl-!x?F@Uj#4bxC{Y3bamQzquv)7MPCT$V{%?kjFX6&3Kenooo$vxhV&lwRbqtFCHN zN|OHNGD|K(L|HIULZicY|Ac51Ov-o}S<|ZfbdxwZrlX0_ogkoI${#>$H z6n}oMUwraNQbrV8?TEqgplo17!r5I+B79VM8CxaUzSLO0woPq7TX(P>g_~Dz`c}5 zJx_-;*j!k<3U~qRc&^5{h?_wLguc}EtD6m9Lbpb*L{2m>Zu31r8$SsqxO7RbD|Bs0 z2aea;W^!E8h0@?MOg0|uAE|~RsL>_|64w3PGS>D_vZ*KI*?t&=Xb;Eev}Ef~i*>Ou zDL5Kh&m5XUc~_#CQx)ae{{5ow9Q2qOi(KdEOzMlDqxbKB3V2XQSxaiO%r@@AIi5w` zzhV3$^Lc2DCCm}q+J+$MTP)9{S5UH@VOn-AM`tyof^EqoNSe=WNEFv*So&TzZc zOeVhEW$2kh|2j1NJ9u97E$=V0Ry_3&^d3zP-pG%%a3frO;Mbe!NI9o9+9HG zF>D(^X3_)~@{^vw_X1bmKfO*DlWNE;vCX-N<@Fr*|x+`G=Vx!Rst&NulBR$q^Hz0OzEY_BJV(C%3gNS zbFm+(A&&>3S_#@OzVKDIR|tl$Oieauj^FoRES~X1|3D%8?NNn8W92c`9U>az>8a%= z!l)iOjUGsS38FSbFaD3Bg!DpXrEWo(onuSm>YFm_j#=_AO?A2B^-qon#8VYwN7~gr zWoXBEgB!c2vBxgcn+~Lx|1$bU*bJ(db!gg4e>R z=W1X{Po=PE+%5G2_r(qf z@18Aj9qc)Z&g+?ng|RWk5$r9Vo`00~Uot=~)hZIVafFJ4rPIKF(l@Y+EuPm~5??d) z@H+nywaqIFDC!U*IIuBw)1bLxDT!Z=?HlE|aV|gXMQV3?_gz0d`_~2uMdLCh9euN3 zS;SwQp}ns6h-_U5hG4m~LP13N)7r6@@vgHd&(RiHezV`Rm=k&>h{5w7t_tBy_SpS> z(abl}Z=YYko-W0XX`zq?FmNA`)A5MY?~rVunpZ{1H2r=1K*cbi#$7X6(VZBNqLAu| zg@yXVc1?W&Fd%*uoJNutkpUp*QYQD^*Elj`*bwsP;!a|I`#uQ}04#`D0EA2Z(_{cV zwqe2EzJ9Lwc21`IzdX2~T?C5ucDGx1l^fj8*VO(Sr&?Ymn>VP^ol7eJZqgkt@@o)| z)Q&+6t)Ix~QcVk^L=B>h=GNJ;kboODC6HQWKtMMv(G&tdaW<=$F+)MI@>C+pE2 zKNr>k@*~WGLC`s|E+w)X)TkU*O3yVS+D{oYLk$lkbcx!CjI%ox9QwHL`P_C@TLNCp zGaUi!ns5{}z&LXKBe1NE$(j@^&jozCpM*;=l$WhxKqG{u#K^MW>a1cmAdWuiwy6el z&6n0=7uhpC#Rz@?1B_%EL?O_{(NlMRdS&tNSYe@)d4%mL?V4HZ>Z`+|7n2EdpWt;o z0~UWS6qfQi?BZvTQF?^&w-RRLpI571EI3@U0rVW=g%BfM>tg4mw^{SRz;#Zg;Htc* z(}to8-^X;{NiN;^F}QuE^NkW@f*Pv~F57-m(6JubYRcYiC_uh}^$H7&gr1@p0yb+u z!G1oxed{A&*`>N8rnaS4#R2zgO#93ThtGL{Q1aKjUAx~Za^VESJ3EK>e#4DG7Ta7s zERQKMu=Gc(Z!O;>EG^hp)lVjmxoHtebB~d;<~pu!TFJsawpN~PkM_EyEX`w_PJ;g| zElwkqxm!k6saB{aYx=_%YU#|fLX1T{4`H1UCf<=o2TujAM6+MJuad32G4RBeMv;GK zR_T&jRHpYn;u+Or8!2I3yBE=o!s5zJGRkOsHLvYDeAWHDf$3IstJLjH=69@oo{K!I(OX8mBb9HUp%inYl}dDH z8frUzpcAxTYHPpDG^ubP?v(4i6Vv($nVxyU=$A=n(1=vTvgoG|xo;Q4}fDIgW7O(D2vJ z71)(w1!Qc!epHLML97rZBckYQuYGi*8@D0j-=4CJ*`5yY3}073YUTgcBlcHApDOC8 zmafv!fyYJ@)u=6)>8#JA=`CSTT#X0f{vU$OoA?mO8v~rGg*;(a{r6s6vSL*Iv+D<= zl^OLKgva`<=lhv5*Q}ldbRL7ruMw83RB7+^3sfahK-5R39`-t^=8F9d+$`lpwD5-0 zZN(9kv&A>_Q12jOM6;h&%t>Dd4U=9#vF5s^~tb$5fslea}^S|OBCaC8{QKKYssu})c=gN^CirPLnB%Cg*)oQ za#r7W*sGs$maq2i$uYgssK61z-fkH~g7WYv!b&J|i}zFSD&kIT9`!CgC(d!1HDSdN zdCO*<{y9^!5)EZP9YD^OYyb{WsR0DKfi?pR*le5>A2T|U#*ujeLnBa893=f@B%p@l z9SVT(8s`yJX(LOo_Pw<-Rs*icEW}oZAG%MIhn6q|7|e zvT|RLukfq_E^%>3{iI(S;p+?IoPcV`{a92oYj=D54%M8;9Yox-Up-FZ=#g_Zy z9R_N*l-SnXiH1Hd=`6tC8rl4H7lwRxe{= z^H!k=LlqBz9{~5=%ILelvv+DT`GA_AtpLnuh5H3b$?9~hlkX#*DP9lE&BYsVLD>En zT-HJ7J>(Za$jw@=Wh~n}Erlq?&JT`C0#ge39ZG9DrhZ84U#9g}RxL5Z>TIPNk;tv6?${Cm{Zs=&ixt(dYr}y$9jE$V7&2MNCQqcrf|5WA1yU9 z<%ahq_I{g7#we`;1wl8a?whn%RpUJ9muk~_t<3LdIoBDvJ@;1M_~Rx0f*?>*-sg#y zJ#7}Btz(5QFnXA{X}gn2wm)O1AFCY|Z#KGL&|YYbfV z)lRhqw_yK>k`__J5yM;50qAPxI%~Egu`@GE!Ha%QSDQPwoJw(bAlBm%76VM!Z`gvq zZ0bwbM)sWD>P%aDqHj$K^RAS>DFn42GGYPic2}yhpq!KFl4Rgw`g2TP@VA#FYm$|- zDUtn>GwawtEcPd1Dv$8;)CKA+w+a*AGV^_L`>{v0ZROs##C`!`$N1NY3g-_-Q;~MC zYM~j$&i8D|!L*O>QX(V9K*abkoRdc|y>jc?DV=3?wp03nW#BfmZ%f!WUh3pbhvOUJ zP6E#S*7~Pj$+}wnVtI2yif|KaVRW7WXDeNmq-A?wlNT1l^L%#l{hfNx*pgDPd( zy}JW2yyRBE+q<;8xJ8MN*Mda*Ro|~hQ8Ph`ULNiYSM=A;*X~|=uc5*^u6U0md{ta% z^>W)SA|G}+^`{oXs9*)Ook%o z%#cU9;ClIr%BUNcSTVk9hp{ktiDT;a7{8gJmk{0{*(!I?5&c#R@dWm|w9m4OOhjRqTHDIpm<`2(+uzZmDMj&b~CuTTl3% zJ5f7cC^G*uuq@`_M=&C%DO6$kqTQdOE&ZY@)*EbDJ7dR=vGz+fkXATo{gYKXNDLXj zS==#I@P8iSfQW?QiD@R-78|{kh5XaeuZnU4e=Y9QGl{OaSM0>p)d+kSDUX(0=sGjX z9Qk1Rzvxms`((j*`Gd=gs>7?dY(|hLt!#$$3i?(ws^uQhn9$C9;^fuQ_d&^iigEM3 zH$}lhqIJLB(M^-*GZ62!uY47#pWLf)M1!|ZHWZnM+?%*zt4H8PMp>^;q`jvVdn;+T zFG~3eZ}{Kbv1CPEL0QBjD-(tAoh(!2@xxsX^T6x8XSFZ8 zjBs<%fE0${x0Wwq;l_MaVqcGTn***ZdS_jocYkB5d&p2$A}OCzufq9*a@(cP7f(LS z?T7k?e^a@3uo(L6v=`5}()jF&jETOa^xq1IInUwk30b_mkwu_MRO-co7=k0@xkUi_ zo9E?3AEJtLuH_)xr~0qy@sXvNrj*ooO?ss}%6ovvKywOK;{Bev|CWthT`yEgm@5VV zPksuwR;o3k%9SS@4t{hGz^wV%#DIuTs)HNbh$t~A-A03`fD6~;3$F%Vpb^EGo z07u|>KdF*j_c(N`Iq+hEbFDHIZgRGe5b*d}QAQZ=i|Gn|fDbt*5DBp3`;;ElZMJ20 zMy^>xDGPxb%)MF$y(D)gNjsCNzBBoKwo!(hD?t~4-IyV^H-@T7kJE?JguVb5kj`c7 zqr!FJ_X3N#Uh|T2yqosyerW)50Rsy~i-5$Y;`8lQW_g*!5cO_g-S%e=AWwgZZW42a zUp%mE$YU-CIz7O#NA|eHyl;MNvm3UiK*Ro^Dhy9XN|J=uS6C{%hS=8 zj)ntF7F1QrDBmLG33rA81mNr$csoC==zXUdd!%kYE55+HuT(X(pSE*Q44q7EW`vSP zsgWER6tSnokJVRu;_SvMVT2+pyk9OZj`rW5zC9G!N9O{-8+QAsk$u~i4M$P~IT!Ki z{_ErTF*{7UuX*lsCk;35b%>064{tC%Y2~aOQ1`@zwDzMy{h>$VDh7A*U+DO*J_p-_0g z<{M!m8O5#<$#>P(IT;UI2gy83P&ws}LdUEQaE7ED4*i*b(@)=cFBUhPht8os7W8$_ zIG}lIOWj-|3e~u=)v^e}s)Pvuphe_$3E{E^i>Jk6U*ti|C;zR^4}r*KOn_x0^gCpZ zb+z*9egB81^A2bG@uPhrX4R_Ndz7N6s!c@AmQq!#W`%0a#vUP2O6*mmMeR|W+Pkg2 zXYIW=u_NT>`@8r4okx%-&-4Dg&v~EMx#9wWNw#b?F=zmC6_8GP&oR`s<_Y`l5M}4X zybjU%FlC<=kbyE|H1_xHPJEIA;cuN(Wzii`VFN4F$1BE)59}(I-1#x}XkkS$_LiMS zzitTOW2@A`h`&Yri-V(#kXbR612sV|%Bk=&8_TORV(a0~oprsvsGu1Bt+2>-a_a=0 zwOsEmxG4QLIZU&7#$8^avLw~UMhn_G@-?ojtp=S~&s$dTYo-Tu2VO0P3tyqtBGUn@2-zg*nI|o)tlebZ=-MtIz&F@GGp>fmXz6PC7S zXieD~s}uWeHY-_ZT;L)(skW*ch<$rIL$6|`*VpNSuSrBCzNG8=F1ik#MK!Ew$F&T?oG)+ zai#B1!9ssMCgqI*;W&3a@@g9!=Fx*Kxz!~TU-c9^eH+ZhL6T%&qw1kOWjK+ZN&6qX z-(b-DnKzwnR5H=9S>0et-=I_ZnSCP9VvS1iaAVf6WP`)+-N%bDiSw&F;fG;# zLW?XoXsy-yOx@L3bVo*W2%TY90-Gysu1TNMalL)(o8m^(ls?1aaC>m=6Op>T;$-&@ zRk8QW?z3kTNfboJo)b&oz24{7w%qykt=#^{?sWb!kNe72PkvI>r4555bY)DXM}jd0;tU>H&dJQ$tMzO@+~z7fG6MsM35la z<1ZN_$qq2BB)D>g;F4I{RRqb-M9@aO<15QjaQ88K9<~GAE9{F@s03Y7lDdNbj7$Mk zNbhle-`5Z?s|LjYCIfzZCvd(RH3F{fjH#b7%5l4@pkQ(av0*D_rfAN*ZR6-kXSZo@XDKyGQ7d&%-IhRuo=3J}?My zx*4sZW9*Dk@;!gzFPWveRO^~r)QT^neD$_b2j@$>A!~s=` z{)W-05OBOnlHG<_oThV{Q#;J4j&mAMbuymxDl|YI5%k6i?@{*W_)5MiJ4DgkX1|op z2c2ij5%Mb<*4B*wEn^K=vC=utP~7P)gQyxvYvZkWU_*h#VX-UP#Ab#FK)9pJZbo5n-kF7PZu zk=wgHIQgqw@twXkUUayyYXl%>ouX?jy=Gf~Z;aNA=LwB4>Vx}E2%N-g5ISMuuVsPs z3QDd6p?Zk+?zW3l`aw?1iH>MtUBnJqBAYy;tR&R##j6pz&7IHF(OmO@b+*7^sLt7u zJA^j{O@_$|Pc@9d_tiY*^MCNZx^L);;)$LDYC-EW`ejgPQ@`OBp_h=s8p6L&8@lA$ zW_z|351SD=P+;2vDOT?E;GJ!3Tb@H_bSxY*;IU%Tv_;Y!{xK&KaWAxFoGtb=8Y&0`Ul2Km})VJ+*7&_oMra;rj9CCYNK#YErnRU_GR5b{o0?3UU&LO5ZSBRDfj{|J?7f1GN0?bOfI z?NLfXIHmIAefElA{8Oj0!lxGBMPJ}*?e%1Ee7nwSojn&&eDXL@hqp*}{O9fK%)mKzGfb7E3Bx(f z1odP-`SPyM#}U`?=70~Mfjq3l=Iz8jFXUC;L~SOV*yRSgv0A2MZY6z z^NzT#;+o|hj2kqFAEoRTZf)?Gxr8e`474Zqx)WV^uufLarrO{hZnM3xd;D}W zfoHzvO^myR@ZNo%J8U&u?#af5Z`~qKLjJY)`cCGvws0|3XZN5J?4bs@zHHY_z3F48 z&^I*&5#efP#);)774VmHZr4fBnLiyJ32yNWB7&NQj-pEc(&UQxTF}eijr4;5zY?{+ zPratQYXCNB4_R20jQSwX8zp0{#p*g7A-!DwapY`DW@I}#Jo}o=uxq&Yfmo(aZ%W|5 zj()D8j&Yz)SMmW>$FN9kS9$L&6yDkuR#qeLJSVzBP*%-~o2|26abEp%dJ}hggZIQE z@Tdg=k<_CXFxB~Xf1OSuTJx~*PClla*QW9t>&XfS6VlKvPb;mV>+H!M!>;6(XnKnh z@8#q-T|tW-Hng~yC|@oSkHIO~dq?K^g^7F7-whyCR(dGUXq^9vFnvZ=GVEeX?x4r*f1W59j3BmjG=x^{y{~W+Y6A~c?bTB z$_U?manFS5^W$D2Jyt3>aTq9LJMhmds79Yv(Z^L?(@ZjhYGd zK!~AO4fx46i?H05b>>Za12ttg*c}vqLmW{V!s5fJVD-lfaNq{A&d~w1`cyqfU{*hx zwFB6usFKwSfSXe!Kvj-5Z%gT;1i#pZQ`Ez35)6UYn9yT3u@Ei5UQviBQ|-x=Ag!zh zFTjOZIDlu6C<2f)p0Duv;hSho+A1Sdiv8x9+R@lvHr$XS;1&*03N2nPIvp}c5&8c< zyyT;1vFrs2ruZa+(!VSPIYqV`Eq|swi|b)mJy(p_rze52p~o-vlXF zjgq_u)c+>lA$-51cvJq3E{&AZ4_0~%czutpU0?;oRa4QY-G+&aoeVZ2t3@`w<@HY2`bVcBOLI-Z! zQ@Jv$I4G&yiOK#LDE&UUTkz4nNu*m)JYzq&&>WKDGx4#>Dv*8aJNs5A7^AGklEi3f zdy}Y6?Y6Tz=@Mah-D9kQAmm<@pzJ!~sHgRQ;D1UR${BT~X!W|4to7NYHxi;4>)=-E z4|_&ppm+I|;WXUYHa&^_l1*_X8cX;)y4cdTOM1v_T5sXO3i-PvL%VLrZw-8)U$IF>10r`6V#FE`YAC{9V*^eA!4TOJ&mZB@d+Cs*^BM<-O*pT9Ls)ZH8P znXO&(+*__PL!Pfya788`vw@8W%*H?tEzx5ze?1;jGT&3 z@8J48F8HioxqmHgcJ9qJex1SYn^!bcf6-ohN>$0I$l>(idKBjTf@J*;`rlls)5-Ba zdRI2w8K6tfcnkT1wDm!Y?Tv$$PSmP})!f|r?fXVmJTZL6ujF)n{%$e1-drSKGNH2SJWK$(SdnlYz{RabEbOW!pjGcj- zgQxM`{RZC7v)k7Z+h>+{%gpHm8|UuhS*TAs&%GWGGT-XJ7Piv6h_WqE;a$zlu6(y* zB56mPr&ndLjw(cSA3x65^vOXq>|Z$|>{x+4QYIcpourL*?bq%ymE5*~QhvLvt+U+I z)U6#oh{Dt8rlpg8DM)&1oCDL%U_;Ny=%0L7z zib(vHzcd+x&}&9$Y_>4wQ(c+IR>@)8epk5eQmM`3`X+YsHBgRP7S65XXGN(^^{qDH zi5ZbW=@_x*LYMppzbZuYMl^5 zkD{0&hJ(g{3J@o$9}wF%cEBV>d5V*zWci}AkWX<9pqJnaAefZck*DC4!IF4O-31r| zbc9$h0^0!!`%F~jTJsw8$fuT!Bg-2MJ-O!4)2Cq0+1-frpCfs z#Ox?_4gho$kibTcB8)0v2_TFZwdlHv3OZ&{0>$8!D5f)tZpSZ75L)Uy?e=6a!Qq)^ z^C=Y;bihLaEYu)FmcR&XSOcp*vA&``DsVgl{W$|x{G|eHX|P&0R4_|5a+?O6cm8;; z#woBg=M4{hc^W-Tg{1$zEMKIzMP})MI47wgE}vENM4AwO36EUK-Y{>+7F$ z;VZ#uNC{P$S@QQ!pVh*LESK{`ncc2c2VuhB^cET7 zD-Ml|-fuB7eZxQH_HgZ3$u+#UAQXq_nL}Q49i58dAAHmHde8SlNb^Ly!W_@LgT6If zaXyYTTf2K5OR-{Z{!|?h&9z33E1C}vUS=?_)M{@Uz{lJ`BNDiY6AkIzxb>wowGUa7G+K}H(0UkS4e}4qH(mSADk@Y>d(vI1nsT>N zu3m!kgk)rBzej!?a_70((+ElvI~Knp&2$9kg#Pk z!!8k~7n3ROT4(?8Mp*NG^W-{G$SNON8XcYHZX<>b8Ug@tr_WWC-n^N6`c%+KQCjd| ziod5tx5B!%z^K7K?UD00YjNuZH1DDo`dLxIrA>2FoIkF?99{FWXUH=w>~Nokj*26F zrewjReI8vp@?O;@tynA0p98+RwDoD9V|F z+tX(Jv|h$8SS#{-C`ah`pTd%yYm)rrd2}l~$BkWS3Ods;ToX`+9ctUmuL&=a9K6EyE98T8nwd)uLULOvQf$)bF{+qcKa~yLXDE zqK^$S|BY0t?t0-$8#|WiZdU68Z9B+fh8b)F0z-i`TfE?-rTUgJkEa6|~>7`pKEI@Dv?Jehd5&?y7#nE5f)hkzCek z6MuW}B=1(CH2FNe!V-gv^p3}gi?HF6qEB7m(BO<3)ag46~ zHzs&dZBneJOZn%Zuayr@0`_~#;yzB%`8;UxerVf?dNX6vcq{!$Rt3Hn>f?X$OHM)@ z4}J<+=!)MUto$*lDLc*9bLlJn%ZsSrY0i;9Z+=9^N6Sl{-)@bJaN`Hkl()iG3T|`q zk#lw(O#QysGv+PwIpt5lOkg!rH?b8L2=LkIE{%dgIiL!ySI{kxC6bZBVxMz&m|^Np zdo_lrpv*r595?9MMc^JV1ul63qgy@}Q&wKF6D z`ig*V)I;l7Fee&tyaSLPPRIL?R-maLKnDOla-RPWXoPr6`I*s!^>|LYfFcK?0`-Vt zTEH9(LuLsIDh!OICUJlkw>cq;D@Mux01Bdvl*>7zVhB%FJWoG!f|leGwL|x@fmB>P z#gCu(yKiT=u(Z;tp9XpX)rNC1NSyaNSK26z0^r9qk#V2-=@+jo@l{um&wsB@Z61I! zHK8PHXtrCjHg(8PTF$^afI0ALn^+){^XNMmDcBZ~&cvZ`thvb}yhSt}QP)$Hf{!tX z@Lfuk8=LK^BWBbufoAPwW?T};46I@o1@b%2=(nX7T)olZ&f}Upp^Bq)t?x+AS4|8I zf%B0e2Wjd_4(b+Iz~kuQdy1%Mk~E@L8aROO$_vCch%46_PE$_x^^8njx%;gEpGQaa z;oe~F6o4#*FacWiWjtHaZzGAFl@nmOy83r-9o~@Z+K?k8q}$G5K~mU9Zt$9`v;Bwv zj@-?NDxdpRFe72%OmN1MCx%zCJog+hfRBA|iQf!YNKWx6-fc4gM?Rqaa0^=nYJjMqZIrsb$C&XXFVJ23&1SfS8rL5KCY^O!```8LHi{ly{oN0TF?k=+=p(4 zxRAX{Md`}sk=N_7+r3a~=$Rya?n5_;5l&jCOVyC=x^iOqJaM6QfT!I3J=C)M>Q8V^ z!(kjF)-H3-q<)*W`_ahaCsxS_zPyhY_lc$mFYSlBK&c5SBMa<9AK z5*|`ew;SlbW~N+uP|7>R_aBbs0op3`tJC7wg4LvwU4!-cvHCiEwdjF}b1e7vd%78P zp{xK`MA+-Os2t6>D8;QBFlyf---Ff@@nlArm4SrW{x58w^UwS1xv>Yb z7T)hor?=&F^{T-=uDWAqDY|2;nFUO~T2B+IOpb`(O~OKW_Y(7b_d~`MHqSYC|6hP# zw_v7l^4)tp*_$ybqLuH!d+ADw^e5Z%7+cK)xTN->$8$FUHxaqc5}Km3hS~!f^1%j~ zgZhhlqn6^RV&(5IpSx-)bMNoRg&Iz@XT6iCC{(?|mGTt5#g`#t{|Ds$Zqvsb@8K>~ zhLw7|V2DkxN+Yj08RUq{7UWaego=b}?~8=9?=$?b)!|^jEE3GWNbM&F7r}To$q>6W zJRmk)NCZ1;&*BZ7iHk0j6IDBMuvTS)jC>{MuSkSBzZnD1==pQMAECzC{`3qHH~OYe zjwkA@W)`#GZy@-t%Id6k5cdtI2EJXs#k)P}*@(^El|Qi72>gm;(w~02D2C`nbToa$ zF`wk$EGCODFIsIN4?9i+Ebw^LTRst{i?{u0m+4~8y*S>hp{Ex&xkf{*W!RW*0w_aCD(^Ym2$G=HcSOaM8{)FX>>9dVV#}R>eY{k2>SGk&cdBQB}4aE1e$JM990qEGI}B|6IVX z28ng#p}_&?gW@ny3}_nIiDKu?si`i)8NiK!1ajxS^53n*i7@)MO^tJ?fv`kA--slQgIu$I4c*|41Ma2`b(9 z-M2$rV?ORhJ)Kaz;jRJp#C*hLIulOyI!B}o#<&0k{}}9yaPR^aGih%vwOWe8sjkM; zwQ8=M=+Y)T*Y%S$P)+wj7k@#W9#HyNL1K1)!6#+|`Jou{zeYhDLoM;;eAk;G1j#biM0&}vxYsXy`!YZP5 zuBlxB?m5Vl0F^;oTWk4yVLH1~DcnI@kwX;{W=AqhJQnXbFz6l+tFV`VV{Bye7GvE@ zTg=z%WJ9Ykvl{}|zIT{7GKn=F6P~Zd|8$cW^Tn6wIXog-!u5HjI3^I_9V3idU5~DY z{O!Jx*p>LiQsAa`O;#*nos?eS>m>P(5f~VZzF|w!WK_~S_C%^h^t1xoTGiyt#vY(Z|lxA+Dy{WM4PBm*EI?-E2-uXF@ zI{a5tobC;p2m#1(E+Vkr7=yrIap98GhAXJUo&c+mr~IU+$nnn=%E}R`kfy36jQ1l`-?rZX_6*+jkKYe*4_r?XM}- zsq*A!tRh`HzKHlM`>r^x*Ed!r|KaM}^;H+Y`oT!Lb62)blJ%<5EXoRd?Prfs`X`^o zBpmn|W;@DuQwC`MMs6?GJYuo$g9{io#3V9EsYm_d|D!NlE%qgPGbFlZqF32}!{_bd zbk0v3lkJu&_Qfkg#qO5xtx1@0)?~xw?<~D^U5<_%6OP(XYQ4JOyYixI1nUpm&%$?K zdYiF+qg8;fVEU?m*gu{%1*I%rW|BlsxE!z7g>9PS#X0@^hV$NZ8`;nO^>ykJ;@nIG&)UsW zIN*?*~^I0(FS2zfR>ZGx#oB6zFg|B9O@KqnGy`@?(Q&`EE_3i3XRFIDX zAAXjGbyJM|9BbC~?uY7nyTzSHt4;n&kJ?c+M;Hf3%%*bgmilBx6`PDbD744l6X>VC z@hf_QL9FyAkJ{-!-H=G8AbKa|F{HlIU8LR-;A!Xt3EJ1F#LcH=_a)?aB$)jO|GqOL zMdUqsf*)C)*5g|C@*it0N%-&sO9n%(&PF$sOBoT z+wAaB3G&sA1AIP%d~FWPOVQKtG>nBO<)+B)8XByr<5i36_5vxQ0V;o;U8EG9G*iN1u z-4q_VX;+2Kb?JoDQprha%Ub!IDy+{i>bg6pg4aUuoHaxgevf+eJ{lpsp>rM0{Z7ic z7m>4w5NP@1vXQZw-8b^f>fhF3=eiz_o;(lN`X7vDwXz2hh96(emv8&=shWGV7&uqn zDMDU^`NU2Z*E%ZEiED5AiKG9;kFBU%TG#rn7D&chZT{nUfq}?M#JjUF1eq1_E_9A_ zzpY)6kYyJanqhk)d49DOdK_?Z$k5n|NcX~BpNGwR%!`A|XG2Dt&1g@_K9Rsd+Q1Sg zZD5ZE8Q>1!Ze0)-XkG73NbiH5=ZBr7I%fsc89d-xFLrPhfv_GCn-bdrYJmOcz%Mki z0EdjmiHArr-XHsb_xPqfv&C^oA|fR_K+43jT-!8-(CC9QX#%fJI&Tz5dK8GBMU;A> zp7dwa>pL;TA0|1jV*zcj9N;S^F2eijD}XxS#3^Aii8kndEC^}k(`WqWIp;fD(*eJ0?)XebJ_V)~QY67TWy@Y!!+C4m*+r6X33h zK0lj3{b_EUdp=FE{bIB2t>kJnsVFpuiWjIjp|dH?(DqEHTM?P%2cgKZt@{ncIb$5Pt>STs2^OB@!1#H6rzdvM1wZ`Z>hm9g0soa zQu@rZKU%mv*CiUJ-v}7;TVzA2q@VH<;E#0_M{O$_>a!@WEd2KVhA1FE^PW5ow`Z@{ z04tAk6|$D4X&DvpTudBl)g>JCT}v6D#ZJd!ihteF_4O}`myU8M?Pfwp%Cwq_*`icW zB6rDPea;^1y*#U=1c{um7&*%4KzSu z4yPiq6RFAQNUlAXbk~oUzM7hUeJB(9-H=98`0pkgt1xBw}92v?&!@jU^?e_M3cEf&l=Jf{O_zMb_ zHu4ENfgcF6&q)aS>*`b{;IGV{&0sUB*+>>x=P$6@ZnGElQaKF+I|Zc$kvoCup(0&i zW`4?RtyJl?U$B*7mX)uC>$+#h`C-?EvpLXn3x@e~O_#Qrtr|pJ;H28wwtbcljErpZ z!}ERftLg%OueWc?woTRlC1^~{^ln+W8aR*{Z>9>A7{yCRdCa+F&QTv>*CiH_>q7r>eDl!lQ;n|^%cA6*uYI)SJ>JK@5t3?g z|U> zswGKd5^XZNF@XH~zart!&jmtNsKhULn?`nap|vk$g#+wj#OiufS0G!;R~XeQuPw8Z zD!txKo;7=HsD_J5kHDj=S@23ABS?;C*C`aZ?fNRo1o~<6v=QC8HM@;jLCmsMAtr09 zE{;JybkT>O+Pz0^%g3yYYEAyj_J@;qHc=;OT{_}Zol>v^6vODDMaR#;N%f&~!!A6I zhB-;+%EVL*Pp%33h@-=MS5U9W4V!qJgvgJhXR-$@VkL{;>#VWP;X;RYc{oo~@R?|b zA=HO%<3F5D>hsoUP5v9c{fn6a+;g;#F142{KhC88+hr2|CcA8PZbUKS=S_OlbHDU3 zrvGj@e(zf06m)$07#ChRNcN@tLA>oC@lbfIEwhn|FEi}jnqKb3ZUFLa63qlbF6f}sG~g7X#S9YD5DC`+h1 z!~RUQ(2QB@6wy|1v&B_8S#f@MS#73Phz(~gEAqP{iRKf zgdg?ni5)*U`0l;3y+DWr`;t#oM-#VX^!&Lz6H}RV4fiW~uHC8N<}03*xAh$eWYG#; z{g#nGXzo327Z=S{RozBWXVJmlb?0EsApV~u3*J-3axw$;+LXI^h__zOV7q;|3TVfir&&7JI~n#l4>`^S)MDk)!KuN+%8*g1XK%4w4VRTC(-D+wuo`8?FeY!E zIT;-jD<$*C@6UUE@@ZQq1k}4(T!h(pG!>9-xJXrzC-he-iaZxRsmz?@aQzf@hDw#xtbD^|BRK*LE7KzPdDYOtRP2z@)heuk_2h}NKrqH?% z1+xwen?Gmym%toJHhLZY;H^2WDK3T69#724x1PoUx{7^fOTD#%IRVL&rq$mf=b2Pg zgLNM9JnK5%9i|VYm{;>&Y$r?c%@z%(o7&uEFU|_t*WH5L=1EP;Iy6^*G2fc0{%L)C-PTUABewUIWn-es$IXxVp7mJ_@A zfrMbkq}y|aAqu#r6O2vhuwmnAE%z}qy-Z)lO1DH2Hf~oK&m7PgB^Icae(Q%Fo!ZaQ zJsw%uU(Ifw>0+Ok>vZCeLQzq*@XYl4O3s*9OA68_a;@PrE7?x#^MwU<2$y-pL;}}b z%?ooumD%)zducv%O!Ma^7V5(`O6_zu?z#pOTEzuMVBlzr@|NjW|>)>=32X(C?_ z-H_^;nW5^LozQNfBJ7+@G-RvthrDvGr}b z6JPwYviN9ut0@6zW++J7c&x4+J?nhq^T?tCT2gKT8*0GgVd7`8h+XCv`h|!kGAMLs z<%Dr=j^D(aT%GsfH2eA zJJG@;b3$Opmy4abv^Zv0Z1nt^V%MC&ZL~;F)nW%eBE-5Gg?)#)c{|=;_4-gT3}qtdk(D@z9Pbf@@~_!`crmrd$+<9p>x-I^T$ws`h2Qe?S75@beX+b zF=)5p>e^q?J7t}Z?xhGv<{z9zyJPGVgI`w|E=v2Zm067<%i2-weO4M1j;fz)7X@lN zs($O-cWlP}*eK(}a%AL>0PB$t+a4cLF*<(HYxLL;<0XI)p@>e24+t!gjcrhXRLtFF zd}o5WbrxkERTWV;@Gp%d#62gt2DylQ*G5-4C`f6U1Dz}9@fZ($itnDSo*;Qlf&{%g zWB3-JHBNO6=x)=@sG(zMXLZQpo{zI1Q{zyIk4r7W(bV^+P|zBB-CYK%+1oK{dx^$*1wA(OQvL4N}bbA!x&PIX1K(Lzcv zk>M><(H2~iTk#ZIfBbK9sTSEn#*Y^zqLf)dOPBmvs;#k<{-B<1>Tlc9;K((=66fRX zgu@S$mp3&8y7HAF{$U@}J2$o+IIAk&uD{dj3@g9ixO0zI<8jTpy_HB=(0%8X#i`Sf zwAhMnc^L3hjh%r5Oa5gH2ePuWj50{h>bb9m(AtyoU-;#$1IpHAfM1-Ht!DFn z);zFSN7p*l8Rs&q@~N=mE9BC>5Hv7tgpD9#|5T~9y;Sn_ucssGqof$IJ9o*t4EW_* z3U)`coqk0NP7u8=2L6p`C&s%p;HRzu|Ig!Du1?z@WG?a0gURoSEL^%iAQz zl^Of!wD&zW{1D}?!mdjjJ+m|-NFyPQHMNF3Iq-)jc3$c- zbd9{wzg{{pPuWNbY{TRGTXV$CnN>fhkpg3;V}0Nc8gUJV`atu63v__IWs4Fw| zGu+Wz5vTsoI|FhsO|Qyv8At+Y-|Bo(-@-+PZ-Nh};-+~KeKHTCu%hx70HeK_=>dwL zzaNe;nE5cG{9lldjw(Ml*NH4YVIe)N3-&ur0i0glwG!qiq5_}TRliJ_vt4xsFDlQ_ z6k*YJd2@zcat0|iyV+1`q0(QMU$Dkeuew#E9$zG{u1QuLWP)7pr9V;k&S;YtQt!#% zvF|r}@xWQU1?y|V;NB;Nc_iACK(XIY5>}TX4%?b>fC}|8CyrLw&L2_ue=I#-0)1Bh z;b??D&c#EA!LIXI8Cv%%C8Cqkt6+{g;>jVce?1HvJueeXJrncjE4JQ-N1Ex3&DV(3 zTjbv4kWcoOo|$@n?_>VuGB(H0?|mtBQT>RlM!EZsPu4-)<*THY3fz`Lw$+P1=?`j| z4;|yHzQt{{_kro?!v7_4;n%ed1qM1P;m9z)Q5O{? z^kAXpO-*8XN;(FHBhqcISq-)}Q+PLdbKD}9JMqg#qaOXFxm=R(@aqB7wFMKMX5++- zlm!!kgZllP`Sx#84tQZqN}~~fW!Syv={~M?Yc$^fX#6>P`g_mw7pO)e(nc5us?leU zGsvuVyvt4T+^b=5&fJ92-AB?!cK!Uq zgzzWQjw#Q>cNoD-(TdQ3;X5yFYraz%e$MatrDZH$gb#^tAadEeTaq*;2EbkgBmU*Ek z<_>X81@Fnh&QTm)S5R}2mX&)w9@{GI^Bk*jWTIVoVuIG}E$c~M3%#KhLfG%Nxvs(K zA1a;RaAAVRqg7|~_Q8hs?c~aie9`HK7MjBo5jIVGOU)3Cdub|tzV0?Cy0Z5U$7)N3 zQ%V)vV-YLdIsSm?E}lAs-u`MH zk6#=ogFiW%N-uZe>k0ASX5inx)J8HOn!9+85kwTQ<-{1Ui6Rg(nv>@VLu!J>8TZC0 z_?GaO9^HUcP{F(k!6I6Hpm}i` z^a|i#Yd?8F0bynQ+y>MDj+7igL&^!wsM?- z+SI%daLp&mv@60?rX)XrCbAy7rHuf7)6i~s3|>q22-sszS=4G;SB-G|i}#aflt+ zf%t#7NDqUL1h?>vB4sobRHAfhmj7zpxw#<2s#zzL-XXfrUC&G$qA!H(#NK(HWpUaQ z1rGptU3v4d%BPh$5)$FwJ9|Kt8&pb1$Pm=_q|`xo%NM{7j7GW%oV zinhuX?Nn!miolLe>xi0)Bv^7xRmj)PK!}pxNxQ6z(Opa_g-1DBva8^@qUZ#G_@=cX z)LEv@`{)T-<{t+92lM{38XQCDF-qmad~6Me2lz*_c{z0uRi@!ijv3m!3(zr5B*10CrLc`mo6=_e7+t#ch3ay!2207=O>*_fq(|ozVmNbVqJT95 zLrzCx>o#{?0^wVkK*Bueno~Q6VxDt**-1by)=>M|5tr4POOWKB$+;CNi~EK%8$xan z3pZ#nDbfB8&oe9E&t>&ruS?8$$ya2ef;g1?gDTT0!!ZnI2|+@QH0blOR`~>0Bg9GCWIl_UbsZccEgj z0D-C*Bi9uxG0&5XF}}&R%A7P#Wm!6L=v(UQ;{w{@Tcx{|!y}x5r z?eB-hexccBuBiMkZtH3Kove}V<%>{Rq4phvNUou`HG=KhC7w~B+f3PpS_{TiAA|tk z#r4~M)+X>EBj!fhwOePU_?=>efL|+nvkrb*rD8+3eDU{&ukuZ-KCD+t-m}#}$#j=Ba9Ri2w1(@J@W41IL+_>_rz06LZ*E6;Nb_ zMvAJo;ziJTk7>oTX)pYTPNJDxZrw3xu+-7GQ1@I4WXhQ&kSk$Dt+l1Q4o)CSE50#dRg8f=h4+{21aSksDIF3G zBH29gef!De)chfbIE%n<*LHU?KiMoFS^}3>qnQ8n3cT*oy2Ck!6+3B{pSrznk3O`xh5DoEPalG7fDa3%2f zX9uNXZY_swDxc%G-23*1tjA0(YLl2p3#5NgRGjy&s2gX~-N_z3ljfA(>U|-gLgojk zxr_i013BCyU^~BVHvtzcM^vXgJJl~j51B~hK;B#Wdm9r~ZN~l@{5y~;?qC`>4aU`F z6MvA~71Ei#%B!MScz)h_fzdAG#vUOA8GVYoG#`_&WHHPO(Oog`euzBX`+KijQ$U zdwc3`(cQ~ZQ84f#$<+U0=`6#V{@=I1QA24_y1Q{A-3?MAQW8TDQR%L23_84dx%GWI9Yz44A*mzAYr zfknLthBfIk-g48o+pJ_w;P}jiOVG<`=D#8<4xIK1NQ)WC78JIbrO|(gU&Wsf5a^(y5hSB)Z)3HGd~+B09B*+Id$HrF6#+g4-U(W!z3Og)vr!Chq63M1 zpJ+PBVC>tWJOo$L_sU`)(n`^CjAJ2<0M{x(qMRU-+2L^hbNdBu#m^P?HZRJEPCj_D z4S2qP_JwKgB}1hMJ+_x&CGPBZ^5&~PaRIkd-^km|)~~9N4DOhIqUd${vKe!tcb{$i zsm|@@Onz|ta$i4{o?N)#TT4Zrh|VzI=tT<+TVVFS7Gk6yjs8HswH|Wp@~9si~Ls8 zyO_rh4*cdt17&vK4Av$v9MJ{0`}S*FL<#Ch*45CYq18xZsp*nrGR@n;5%gXzSa;(H z?u#P<=MOHu*J>!p7V-VN#y?GT4`S@ zC;x5tEi03ThigxXa_m-_ycLJV6gC`O6q+=Y{Z~3?8jELoiRM^&fg0Q^^f{r|Y)jvm z=U7jGJ|DPFU_sV7Y+9tPP^}f(TIBA<7UW<$L^mHa{2cuI$m@T0#D4c3)!82gU^X)=g12BYoG zUKsx1^E(ilz}XJw$i zTOUNi_lt~aqG3jr?etCUETsLOaWM zy9BzwI(G)U!>nv&iZIO$cwEih`q-W8Ug&=o#nj{a2I$~Q!i|5r=mBJ{gjGJqclTO# z9TIN(9|124V~Eva`PjKv+;cxr%)YbNFP+CYQ661!ZQ+`jVQgdhbgKv3{8#X+4U7C{ zZ_k>)fot#FPD|__SFbb6P1L<(8180d^V-hvin(kRUgAHP1d}?8Jon2wYou8`uLftY zTMQ%>W3Bl2-wv+V8+;~4tufgJHcDB2>#?^OwTPs<&&AMIX9@%&%^JY{bWZ14Hc2S9 zBb*B7TsDxbg&-2A4fvc(4^jR^5!)7BJ{(M}x4_%2=Lv9!5EnsKLA@Fl42)#^Q*s3CFQyKS`|Sr)v795w zCZO7n;l2aXM&pi|2;x5lyZj(@Wi% z-mvU^keJGgWByyfEKP`O6?beX^SFFA?&_h5C#wR0Nscju_^o)8H8pG#7r@K!f%r#A z+O$b&v?!?t0WuiX?TB2DORmK*0pb7-9sCs&DOcp=YUyK?S=;M-@63v$p=@x3pB!-B zI$~*7vDrh}8{llkm6e0rtqiYaf#AMkr9xATGuzluioKV|*a*9J&zxB-pa(zz_WSCl z7x!~7Z|C1atQa~%^Z;Sq68AVawg8B{1Et;Bh}eiKoTUixdTrWd*93|aePCm(l3ZDt zzxV@rV{RTH>Xj?qk>oe43^`m6xd{o_XCBjnlgn$6b38)zV3YG6sT_6YNtfrl~ zJ3y=lcjj4CJG)t=PC!p$!+OD5g8Yf(JNgRqvK)0e0kZK@6CfVW{G2xP6#E7C8FMEf zw;>q(;}msr#zopA-f9Oq9nggi6!^_OUX2)g{@xSF0~@S_D#*IUwFIrko+7G4CAP=X zkRx%zh@ttXa<`P!9s?toe-c(a&r}48jI*K?%hZ+jaOqDyeZ$~qL9H;muHG`0Pujo| z9LLglrB9O}$VEp;qt1ctS{liQUw6Fgsb1&yCU0=d-GUk!6W8$=krmt>P-a4jL}j)R zv#gkmL#!mNU$%{jHz|D^)B{`(Kk@W23D*0=yXA69%y_EB5d`h_-jrMiQ%5MyP&2(& zxabET2$B``)qZVCd$SW#78y9of=`F*H<_>xfQ=iUSQA@w$0LXgp#-^IVkjPR{jFLLDh;>7K=g2w*-6Hmbau&o!oyc@@#GJfVunr z7;I^|NBO=SO2(uoS}^ryQ*Jv&^UN^MSQwF?KA5pIk`CivU$9hdPD4@RQCjq;LW8r| z)94JujJ>6zt%d#&y9#r+tQsZk5dN>+hy^xN4MN=x2qkB z#bNLg`(~y1c%802)WNxJ(nQnm6i@QnjnTK2K=-=tq zcOs+YGxr{QbQ&e8-qVM4`qAFQ*_N=xtRdR7Dp{hXh>(N&-a|~4xogSQMK-xvYVjH5 zP9bzp zZyTE&!tXV&EunG)O&q`OsFOKUGxK2axA82;sE0Bfmb`Jv0hE0;;kfq|1`Pg7B|CRy zD*}3Lj$sam{NQa_>S=!Au)W&dyP7)t*4HxuMt@5yu2D59RalDq-y9j!?fbo-HRey2 z2!x_>jg8dOI5r8(8FeCU@0**a24pkVW2OCi^u>vFXS8;u>i%F*DvY~LLZ1j^$VJ5& z9*gp0CvAyJtk<7?P8h^PegEn#|GF>U(&A5oEs{X#cc3Q!}uG&2sjwda`MGA zvSG5^l+z_|nAdB5uS8FVKt*cLUlSjAXuW2V=9a3Jme-YlYM)7bR3tvC;^@7^yoi%& zvAT&_>jang9-IV(Vy!1aLUi{pme4`%%vj$gScv9S=_D~_n?urmM{f-$Z|Mp`ttria zv_~jie7dJ0y&#l&oW{{E)MkBpGcJ#Xqu*nN>B*?;-%#crEC3hGbq2%M6pB}edQL^< z{x;e7Y^t0N=0FNF8FUwWdrXw89!!0zzgh)dgw|cN9(+~b&fQiiPoSp4+VYngHIuia z&>z#~kJNi+N}~5%18U})?e!r>-cBzds;+VYZVEwXQ=o_P!*2w8O>v_NWB_B?d8K8E84~GZfW$w_Rf29W$^-EZ zsuSQ4UK`F;ZOE$P8x}^uUM7ne)7lozajCq5s2<(6Aq&8A9Y_ZtM;!L9KY+X=cA*(~ zCrX1t%-S7vn6Q9jJDr2$z`JQHb@cM9lsk%Ky#TDqM81L}LH0kThlA?XaR7Nq_05X> z2E88Vvc?b9L1IYq@*yl~U=~*Z5);hhLd*#KT&rGyc!GHNa)h$G4(J^F3cc%)4Xo%y zBj~QlIiYy{L@BC%H0(UHylpm6h|1v1Zxtoi+ou%cmXSjK|(_N47z`TfcBebx= zxwxuf{{8j2TCtIb-p>+Led8^=6A=3HeY46XQq^QUTSL_65W-Wz(;NU_MsVBv$2Lvtq%$?E8 z=bBF0@?u^khE)fOv&uJsiJhn=bePx`hnpa!Wwb%N#1O}`Ea00ko9${~2feZOqh<=K(MM>3S^)Irdzq3V|jwrXzolOX@6M zZ}7WmWyb6nTJ#pdZsYrQ3~nSdg~LdEwT_hW96kcSvr&{(#c`L?JCBe&vvel` z;ykd&fBW$TFQa`@vzr)46Q)qIl*! za$kK0z6EJ~qnl0UUShu6^t<3@R851e@&KcJzv1D_vaL4rP;NLC#VK3<9Q(-y=+I}j|ubAPaixRDR2Y{Mk*oc zbH|WdJn5d^kA?hL9#StuxT)pInVDSN8NQ9!r$syZcVHtD)48timgpzg_=IG{`KZMH zwI5KG{7U#Ts@CI~6&VgW35B9;I}%lM zj#`fcJV8IfH9A?X?=2oDfR-O85CjNuk)j>a=hw>`vTuW2(I=3oFBZn?I`z-6l@;d9 zqIMY;>LZEqp0@9Pqd2^&*Q)JcGD*f4JbEdu%2hR%%h5Ad?@v~IMi0zGe+WveBr9D; z#cL&g8Dyh1UV7$e&$49Z8RJyiq>8lg@1s2&4YlvJWQp@iy8~KVYh~Nx%t$nwlg2kwB*)KFzJS}dDP6aYo%>9?+9^dq<>5ap zkl~auDO88@@b}o;W5o`9VsQsHVTZlIR$=$kg5bhQl!Se^JeC9xe}tt)7NmfE9Mh%p z#6}oSqOf9l+x6lY(w*7`Pv1}nmm=kReQn@z(Xh&^aBcqG7Pji>!au=`Y{+RW3XI=% z{EB-0b0wCxqINGZLW>se@zQ0+l;$w?o?m@p`1@Yr7HdSEO^kQlw4^p$T&_|f_c9%1 zXlEbjlk+oyLhl1zJKs*Oee!t#|`=!K-30bU2Sb&nNyyl2++;4$Z9Re(pE{ud9R5J}Z z5eD6A1PH*G)8JCxCo&!oz{Oy(%%Yi1;hlU{51)|UP17$`0vsYlPX|3qFg?Ud<|&O& z8U&mx4?t+=HN+XkR02c*%%NO1{l&EiTG|}~J|OW_ZWadL>SBSU<${5T_;02=p!Ndy z#o}}J!<}xp_$WZZu{jWQ41@sbdP#^Ck3WD;tlH_lH~_JDzX4MKIKULK+)w0Kv_M0s zFr_2ciBs{zkpp*Z34S{jpoc6-(9tVLxxTjtv3VV?{QY-Ja?+=c1IgF zsc$Llq4*zvTdrx`oU*q4Zr@dG8BDP5IC1C_E-j=qTbqsaxY|YKEZr*WNIn zD-xrqCFyo^$p|gv1Xfa%yUQhqu3GMhKN6gAq+vsx#}tHTFTA%(iR%W%q2ZRpxu{sV zu;k&mASQ`_WYDR_u5xr*n_o|!p^XQg&!s{TX7HT)$A%)Mq~4Lz8&>I9ehe!U+LLR2 z4$=DL9pR&Slc5zI&OdcEEC|5amRqH2Oh299H+tFGO38%{rIni=8go!T5{0)Se%T=Q z)>~>r3&n@(I6-~BDJa!GNSq9G?0@c+(PrJ(` z>z(=JNtD}{L#!cnT@O`lj(zLMV-qCKd$Y5eM=!Cxzm2`nP{KTaaI@gq=8eqVMAHqG z79sV?q2I*K#N#U6k0t>h=^I0B8|Q0_QnuC0%r-vA@dlvZ5xECTYLlK@z};oHF$?Dm zuNHBEmg6Qx+$v2p38Qmeq6zk((^`AsZT|+9OpjI;v7r;UuPvI$vmZ|98zBW7rk)bU z%ZbUGi3-2{E?`wK)Y?j7iJ;OFy)r&6WEO zIS(3cxl17PW9gIWVcvL`RrVlq>8|(Dxvy&Rdej{Bhn&=0d}6RisKRg)U*sYEm!pJS zm;M%#fm%mSji%f3(9X8geK@nH=VK{z<}Zp_F`c$#s{fJ-a$IJLcmy=vM!)kc)?etL zJDaXL@X1sbZnp~<^eLY>QmOZh7pV1M1CDC*I(mJhX!F+s&@vfCV?Lt4`RkdX;q;1-?;Y%AD~7~EYr}Xm{GgE9{cCax~SKWx-%W4e@T}Om(QpyP=8u4 zT=KJqj*Nu^Uz&0QwMd(Dt@%U(^qN3;wF^dmiv|`wuv|wpXwEkDT|^e(}=f5Cx+La zoGtU`*wOJnD*g6)A@kMci=j4fEd}-fP}2~dCoMf3B62o-QrO#+KcS@$R;r z8th7Kp*)cC*hkYyhM1sS@)6QlJg%fTL3H=~S=beNRGmt*nJxDJBATYWdZAMkUY_O8 zWp?{Ta!xC^)vlFC!#rbQlb|-p3!eV$4&%SvNqyu(5DcAPV7 zet57&6Sdd9IY-Wmi$wMV)V_qC`ufczBgva;X$VgWC@X3%HgHP@{XEKdkewoL= zuyD-;eb1Yl9oL(Joc&7o^(*C(=uB=)Mgx#s!pOBzy3{*Zyd_QAD@HvLZfWgD#s z2*&@O_~yMf^YJitKLNwyq0?M1`k8wr+3z?9V%87-$%kPN#R4OY=u?S+A)=lcD@&|v zimmaT=yFL7GF{(j_LimgWJ#*isbi1E^xP`lr+dSrylJ0){kR?0-={|5bw1&;f~_Y# zbX8(ley{PGDFE&vw{@_y@Xy_KZxz|AdPiMRI0@-B?Ft|_z+nBSr4LXbCpTC?keuUm0+;(A^P4+dS}gVAXnQlT zkpHk@RL}#?>F8c|aR&NbkmV7q@DzSH$@~-;21r-y1y-T#NdkF8 zsWH#F6v$B_%ZQtPB?Y_;oawnxM%aXW1*yVMW(`UfiX6RWBXQtkfJSN|&W#Vwk|Z?L zQRKk`7Zm-6E-ru<3q`j2J>sX)+12n0xpeR6n%s76ns@TbIB2|3oI~JRs)wzAla;a< zaHBfwgl#yM?ItDw*W`*LR=*wbPQjsEX3|&%xcY}b86ad1T6kbtX zoWQpx_`T-y`O1|T0yJWE-+6=>8Qsl@p-YyETHxP5Fy_9Ujd2-ogX8|b%CD@7@_GQ7 zB9I3jpDJFc{0-9=Tc;)z#SnaBWd+zmHEwXTcVYtenD14Ob}6MRVj5KMu+LGzqgW&m z!_d_R&62%(rVu9ALyib%o`{mbe~B})`5+s@^)8NPjUnu}6FLlQl~&Gz#SxVEMrJ2Vcc;m4&#-@r${=G~LG9y(xlZ6S7AYT* z)9?K|9htUk<71{3v7n{A9s}X@df)wl#9i*$*q!%hXh{2xfKh=fP#$@07PteJD3l-S zSVs}kt6+?hdD-;XoEy#_6`L~us(?l%k2QJ25Zx8@*p2*i$uIo3(fwPv&>8PjWy@4e zZfg~PXs@|Vrhxh)Fr5Muoi8m0%qhlwfMkm=FH~+xqUtEWb+EhhYmPt@T?reVD+iz> zTiP0@4UG^doL>LDw*)Fbl%St@O7?bV%dl~WG4`EOcvf8QpBML|?0)H8S-t@v5im5? zs8}Fc>+s2Zp?L$$>TBLNUJKQMKtr6JiUKZDn>WRq3P5o6`ZC*+oyGW*%8*3?%S|uI z;l)wA)+WlZ_<@Vw$9)twocR}=d)5Jx2`q|UgRO@yB;4aBfd0<^_V+9};u;i2h{3iIw%*CWEGr@8jx@KU`S z#Um@C(_D0-T>a1f^D^FH3$s^4OIxg$wi*kaHAOr_+Tx#E`_%s-dg$XF&DaQ=)?PGW zX5Q2_OFdL}(sUGz=#;!v`8U|N*Do2oxKx~5!8U-JmoojUFwvG&FUNSD;bQTcp&>iE zM*4WLa3{6QnH$OQWb)1PyXlkyCb}oaGA(h5Ud8)HQ^Nsrd}U3-d``QMpZuAW{1Y#r z<908nf3ohMyT-}CL+)nArXjO7oobn%8jwKH*Y=v;(NYH$GB0sZIWKV%IbVnscuj}K z^wS`&j~e}sx+N3#?NUX;7WC5*@lz$gl50wNJ_abKW^Gh!X1=JB(nKNm<~X9mL8Cl|J;$mmKeT&RR$z0g znixU;0bS8PE?x^;-Rq{zQYRTxV_~CtLG#a8%%(;4#L-E8TnT?!iM?Uy^`%hv zMBNvY)OX{37m<}nX`!NrOF8xtPGIX~N^8tDX|!HU)AP(G8^eie5<9Q_@y(AM!S@_#6?zghfs^(R|L zXuvDS78e)C7LSfSpC3AoL-2da@y3^?NhS;M_@fx_L)vxSW}csd^Dc>upQBm!sq+0L z@Rpi9nD5fw)kDM;8L~F(HQU^~NGka(s#_8x?IV3&GBSC5YHBMq%NWD9hK@Yw%x48p z3Lu3B#O6~n_AU+=F}JR36n0ods$EYdD2r~Idnn?LQJ$W?d4<{lB*TbR?hzkxjr$rb zA<@8sMW#MxvHZJ5@%>-yWqTW?j#GyL277hWj5B;v_02L^|Jf2&!h5d`{g5vVc(RE# zqW!yn9MrV<2v=&Eff6I9f3woUny8hFn*Fmj8}w6kW_`PR){=}0k|pWcVX&JbOl6E8 zjl9iIncW`XfW%-qL;pocqXup#F0mNzA;r+DaU!%KkApCr#<3npXJ zs_2?R_5$oKV0yo&uHGSlT9X}9hg6s9)dxj|7Eua^2VF8T=QhccS7R3m*ko*TgUe$1 zdds+x%pJ?ma|ktik#TPz^S-%ExqdL?Dl-s2^o&t~Bt`WNkatl5$8V|OO`>flUN9Ry zBG+gRpcE&jV7$tMgU9pr0BD8#7KURSNYY`lit9o%r$|odBo#;Gdrr36KiLd`vq)yo zd1v#J<0=p{5SZiEFy=xUkqF1bU(Ai`TnvOcF$#9sA?v`?&<8Aujw2v)pw)TTAX_)? zu^RIfsAV`0Ps!l6!?5WrBbr4zs`(HGMhgI?|5yZD#Cl|0tB%MAGjN)~FOp5Ok0| zreN=va_ubB09`)|b7WY<+5J+ZPkkJJxD$mOkGt&+6xeLmu)B+S`VVr}J+nh@6>MH9 z^;!m~eomcII-)H_7lJ%Pnru(T$ek#+;k;9NIYt3H6}6U^Jymbhc9>L`G7P!J^k>DY z_fvClbWrIR$OZF1f|QYq%S9#2Jy3e|Tb)~hPb%L#7>r2H3d3i~OUI_4TD6Z)EHDM` zlD*)AAo6(TE5-_@%Fg6Xx+b+}CpIe-lp5}GUu*t>99ZhdM4!IawOJqz$1y^uoAWXc za`rQ!<1(@TR3nuaFhN6<1_yyw*1~tT#11~Mu@qJeu_y3629#%$hc*$6qTY{KGE5N#(BQoWla`Vc5nI1?ry9->U^NZ%IWkaAYc<@oe^_l2v3BGCX{Nt zl*|lBm4;x$Lu|eZ+o^?rvM`2x`S_ZhVtc1ACl?IqE^>cy#`Ii8(wZuQ+*-{AnXdkA zJ!Bl1IZy$uXlP5zCFScjW>C(`Hi;hg+ z#Ld+km$=&0%hcF^qM?wNy7)VJj_Z>B@~ypAS^4X_8i{214t}5=JlnhN-H@4qw?RbR zhMRl4y;@^u%a9tXpmA0-2>rUmK~TS-f^tPnJk`EFFSHu!_=o$UK`|ESJ+PGHvWV7~ zaM91GF*V7ITqqO>?F4FGwB{T=Nme(f{URs+w{;mM0*UIJnCDq+7kYSE8rC_;vDx3~ z_9|deU2TQJ@v<0VYy9o(HYHVm9GOy>(xCNP+rH6vjr5~8rc&RvC)YXN>n_Vl@wTYB zCq});ZX`0iSq{TxnvDOk{_duf014B^LS)g zR6@I-eT~Im_T3X%h1t@Q$R7sw*5h~kg9#oa`Hu0F@sBl|MfE4qX8I!gQzZBGWtE?6 znu~20B`7~$j+EAz&6k=%c`ZVc*#Fk$v+P3UY7JPKmUGE3kIdBn3KshqILTKSLj6{j zBHZ@xq{ z7T)I!b8{?7ff}F9{qpt@^bk}oa@6}3?j-FQGrn%uQ`6&F-XPG{_G}3`qJ4=zI=@nL zYzn}beg_34A6&eMr>d#l6?w^Lhg zUM?s3Ju9>ffA=b)WujE~P3@UCpjqv@OD`h&P$<%g+ng5b$!20NLPoi^GRI)YanHxD zzkO$l_BO9p3L^4mHPtgR_vSb=AjZaw=p@@Nc!y#C*K0GC=AgdrvB6DnEd;wr_ko#! z#ea=ftH!%vUEqZ>7i%<2r$2W5ZoYu4Fh8d1&2sjFCC4{siEKVhGlGBiC0lD>hG0WM z@z^E34!G)i30$=R0~cKfeOzHzjdwNA3Yom{w^2fJ+ib;p_Ee@zZ8UO>_I=dUWkf}# z#LZ{Q6^i{N_2J?=_b-z8yBjodhYeRvhQOLNW;2pTQYC$KB9Bg9o*h&?C0%UhdsF*D z>ch!j@RNZ?w|I}SD%E0fhq0n*UHuQc;+jpqTCzws&D;5@B86+xtB^9+p}xM}fdTO* z23g_WOZ1Bq(Y$KzJ1k%OdVlSO+Qtsnk<)Wrl(>7P+v85JI@`#rn#YQdC;xI+FB;9B0RJC5Hyw9NX)L!sze2z25|*0f$du7EIA|Mqs@i9TpiFZ zHWNV&04gNGV{t~*<99+Zz}a4v_I|0=>a^1q6v--y#{^USOKAYl;Ul~V__i@G29FAe z+$BB} z2_ac$VK=}>lfW^;*e&S}ra;?#vWydYsqHM<*;6|44x(qDNza%&Gz$88J%6nXis}v7 zb%qLui3dNNnD;@;HJ?D5wyJMt<@!!MZ&fEMpS+r;Ie&88^%E+2{REOv84St@2VG!w z?{DPUlZvRPl>9d){utJ+9x1j6vZm0>0d9uTzXv>CJ#}?EifvW~@E{*WuUVl!fESuN z;GMe7*1omU?V8}i(CiK^i?ai~IzdnBNtefqSpy&bR-YY z29nH$I#0y8Q_#&1^Z$(Va;tPi$+S;Wqcx<@oYKzH|(XSZb8GGM(+OWC%F~|?R zJxdm<{thJy2O`vu!a#TU2s^S3GlF$UK&zAOt0bMM1Z21}`e4bjs#UAU1jgs~HKlH1 zU~j^W6B`yXG%TZ__;J8l&k{jrM)$X%B4}R?M!~!#=E`&V=WUtDCh%0~HiA*?IhA8| zy*)Qt@$NbGp9J)8h8Y!9Du`^u2;J@Zb6%WVyJ#wBjxiSKOEpSa>^|D%xa+S5vkDlcW_GMuChBDqLd=>iUq(?bvbnCt0 z_RmhM_8G|*95u03wX_@0dnJX1 zdrVJkE+WHs1qTy6O`m=AMtA8~TESkMw?5}9gFJpB9vzCE(?;r8JNZ6g=MfPoiF0b1 zs&ef}ToZ1lx2RJVwO6M}cYW^#Dv8(w+NpZ#{7{+a*iGSBqMk92+c?!cirK?o3Ee9; zRzGLoZ4qSM7mGD?9Sd*Mj6srgI*kqaR_=6&(#N}R=IPvSyWWi+4HQaV4;40^-m0#Z z3b4))npWh%^Ortim*YZ6z{lh=>h{>9)J(_ePq?2Q%^p@A4OkGJ!dK?kOS$oKD86jEHcb4LJ zXb5IqO7PprJ83AOCLwYuL-bTEmcbvz1%WI=A)U~6c)wAefx{YN=_xpabbd-JpoLm>T zpH8L|3hUixxOpM20hxHO48yj3W&`4|_>Fn4%I zW9jJ~?{BSA-<%*2^VaYWc2ZB!%%4YNE7G@UUiliw5vGIBQY9Q`zo&pd=nOHOMWukP zV0$aoJ&7uYr}+agtr`<~OcQfyJI>7`m5cg?!z?;?lG|Yx!bfzhP$z{tD`I z8Gbbex)5|)I9~J)+wq>OY~{T^+D%O9TAvLnP`SK_h=9A_%~D&B%u&#GdI3aNd4W8Vqk}?C$Mh`L%o%J-fv=&;u-?Gu zN*`D`cX<<<`yVLK1pIUEEw?zI41}FMNWs>hAY$!0XfB>JZBVn2$J!0u1TjTEsOU>R z2P$&DC;xfo=+F<5`zNpQOtRx^FF*i~l)b2C*sDVo9@(w1R+Mmy=*4~}VAAWrr%+m6 zL3k_);zQr0Xc}AEoGLRwOir_o@)_d(*r4fO!Oa^epbL$d=9Y9i3qkIO+>Hq@05#Fy zY1UUT-)v%!=FHRgvs|UA8?9}>wc)DP_E0$#j6$PfvnC9M$-0}YO;cQKrVupqqf}=) z%4R?TAoI*hz_K=M)sEdt#%z$;18;0&+Zx*g7P}FEA<5pd?|`-`@6buwKtsj0`zZjv zuy1A#?vX9|qYj@tCcNQlSnXMv7vRRA^zcWX;N2hfzy)a9F+W&O4-@zy-aBf>q&s5~ zXhIOJwb5bgDj?JyrH58O(&t{1iplb4zB_~#s*5Hg#{xM?eCaPudCQ0%Tu z9@Q>aiH}wM)xx-WFqBB6KK!ZL-CJ`H*1z2Z8U3j!_G^2H+^RI@&+-|E(OFMH!#jUJ z)iT-$zc7XY(TJLmp728gX zPq?YhY~At6_3GWIuG2s$T#7Zr=*kS?@9uOs18_UH>>9mrpQmJ@%#xQGJdFVltfW_h?rqUsy}+9(5el8n_Et_SUMI$XC-eyl2G9&Nr0d1th1b=~hSmWND2Aif`DG zx_{U4<=+m)Yjv%>=vvtfPk%oWTR&UM>$hS)XL7w+ck0dGwHYwOw6*>ftdQ(55nHlg zBAv!pc0DB0+a}6iJ2&sCd%~KjJ!?BLvJd7y5AEy^)TepM_t4_K+P|HMoG~v&M#W^~ z6;quVu3Nc(^E{EQA`eAlRQ^>%ip^BF19pv4yQ?jt|1u6BOjBAyis*L|MsIBjQ;nlKT&f4bBo8+ZB z>h6ru+@q2x1I&z?c;3>_P;6~`G?b@kR9d2lI`NSg3Fp%KOik1tIwJ@38>yuiuS5L%}XLGTQ^HlsO42E+ivDJmgHimbLPL_@J& zvdKiNy}+)%@KSMjHQRr79dPCGBWnYwD1?C7>Y?Zun^AZ&ZDZ*lbO_aRhf_zBa`^CQc!Zue$d*0IgqtUD+ zskD^}wyBGa>%#I0b`>4Pi<=p$FPqd?c;wv|E2L#@GSh6p%oJVLXHF@rcjIv;wQDfG zTd1`jtgIIWXLJ^L6k!1R+xrb}Z~dtWUZdpX*3ONcwZhzrvoNsQr3sZXpL6uxeOBu| zVxm~!lHe#+ldzSL@KwCF(t|wEqY07Gyvt?(5OPAGk~1$NCv-xEqMzgS6C%FPuO=uC zUa8qWAP;KG&TCqc*G=VK$lH6Qzx>=C zZu9$@zKrsyBS+y-Cp)2GOX09(M&X#YjPg);>e+_?{qzJ_fbK#>6}C3{mDfXJwT?@NF{8yFZXQ;xG56 z_2807h{L_tcy=>819hRqc~6N&=^DwnhXzv2W^p5!~PjIX4W@J(>L^gX2M z!)*pKDOgDX;k$SrX1HFyG$Z6iG}uJW_{6d*c;x|JlDqUL^*(s#7E(h=8dIV8x{~A= ze=MKu`pvIz0H{jn?G+x4YRNoMn_VRCWv^1K+XZgbejgt>jLr_Ho>DW22l#$rM(zfu z0|yQ)LtJZ!b(grBZQ`l`30PRVNuFvkYZ%{6aUC-eVpsQUteM^9&ypdtxHN>1)sn_2 zE9{02I+HaxS*Xk=B7^}h^FXD_=27cj=ZkT&ig~00KRBNR2FPGs_qii@k2~6(XzZF{ zP0z}j2@_KjqqHX^xloc}>5OG^;C>$q@6d7m=ii6(Hd6nln#5Y!e=TJxHUS{!heKYg zBY#mBIINI_!zJehYXCr=`psBXPE?C0zM#EfHF7_;#yIl!Yre212#5s{0i?? zs8N65{mi~>KW9yjaP9+BFAVs}+YS^XDSb zy=*YRsS$o9^=HzL11nG#p=koVA{#{M+BYGErJ6^Pj8j~B@hK__V_D2s>ZGCSw-MsS z6y4dg+QkM@VZ(7AVdhUJ`vuk?d0Vdx1FRtdga#^47uc!Dqm5owh%onCG;-)ollIZ2 zwe7|lMTDExDqi=$f)l*3*DEO`S}stEhK@z2|EQlQ=`b+ccw({1xiFv1I2Ro=C1+zJ zT}v#2EWnOLQ;@D865;=rxXhdf|D`PzCCY#k}QnT9b*CIJ)^{A$OnN_*jaL+&Sa zm}d*fSBG6a7Dm06nK1{}7w8-eS`^~|hpd%|!ykxhmQ6420A0AkJb3Zafa80aV%U8!yJ&v+DoBOPm<4MK^Is2F5_|VH; zcgM6wZKvbF#RcYt%--pjY4f>Xi)g=ef0%EfmKQyLt6UlM?N#%I?WETyNQT;{Q`($n zm+BbIJ6)Bs2s1QdQAeCh!qV~aA3_D|+HZ!A8lvvW-@lLCri;)9(St8)2DR?3l^0pV zh8YRpokq}EGih*SoRWx6$gD9`#NOzw>%4N;x~*tlkJZ?fmmMy*oQ9phSrQv9uH9=m z)v_u7GYs&b_bOOlcKSrRf=d1VNAB8R>!PGlGDdu~@$GMOlZJSysKyE^4zs+`^SL4X zEpBoD)P)Prb-V4%W^%7D-Agxc{iM24D1@KYGQYe8!e#R zjZC|u`=FyZL4A}JZk&fE(;@>1iW&H@e6+>mYiFtgr-4by$CV4wG`;4oU6 z;V^c;r@c}CRYVtSh3qDE_+kDRQyy1e?Yw7G1bRjoEF zrq0^!M2`l!pWNm~JGfLixpR#sCv}s3Kjhd8Fa23u{aiRKq^T~{dDx6xue?Pzvwd5- za`(63eN{J>SX^ls({tPv507xfOz9uU`*eX;!3DKtet`J&1hIv)t;A@)@=xV z)h9doeyR5MteOS%5?H-9TBu++>bFHZjeCgm@V)xtV%$m$MXU2D#$Vtk>6K+>q?v@5 z0r8HX)|r#H&e@TVX1aSXN}_o9Mmwu~li9w}Whf~{bfYmv@+vh2e02?mjTwL)SH({q zwM$CE$6?6m-*b|1Rcv!ix`^KNT39nvwnbI-oN=bWAGulL#h+I{Z( zdR^C5K6~k-Tus7@oqRjcp?{1%wD$g%a~uJ~$O1tfnJQDWSNj`A!uQPAnEuR!03QD) z`QYA%{+xbqwRf4!=8~IzRM6G&z?agRv2u)6(SGb=NLvvM!?fVlVT=DkS8tt~D>5wE zVp#s$S;OY6sFAnk`R3+^e(1-5}_|I2V66bXyVYiDF?J5CFgb+>( zD9GH+pEL$H2w)i^2Ebhgk-%xepA|RBx`5t^j$jFZjmhz6hBwLpt^GA4@MmeOkgS6= zJd-hsJp65Cb%1(;qAIOb>l7>aq2V2_a2OwO474)&0C@eW1dI##M$Q3t01LnQc@-jz z>NOzXhO3#>CW9$B@-KkH0EW+x+G~W}NO|^gq(gQi2$5hM(=+_fA4IxokLJ=sO1d4a zR`dxw1!W`UlTx}OmKk-Ztr`Op#62gP~%#%F}7E34PR_r z>^>$s2+bJ>pK}VEAu~lOQzPEZpOtF&F<*!C=xH>3N1S#AQCvGL7y#-zCG7NWkIHHE z+0Qu<6J@fe*wBqC1YjLKm$cblR+Z}lAKD>n7mcZ#YGkd? z%3MvWwTwA2X9_dMuU)O`iPc^5@cgPHU6;{t$}=>Z&NsS#p}DK@hx6EIC_Fym#Bzyp zW8RWSyD)I9PByt&97Vf4LlfBU95awCexUxhF-Xq6fJ((h-x%s%m9~)351M3aF8yFI zqi?tG8N918?(Tdz6nDt|^C6`$qo%#;;j{UmR_#g5A!?vKJ}PDJBbn>%i->kQ_urxE zGG|~I`Jg_9H$h8ey5^wGl8cQp*Q7}QE_mur({5|^Iy8fl zb8(lQpi5@Q&_ruO7HXpgJ8wxcT81!3w!Inu8)=b=v~JZtMz(6KUJJ^QXa05NSC0yO zZ+jY=xrT3f_j<@#`clEd-0;4wY8`oHy4eolFja`cRNoqV%eH*L7poJj`=B6JY~w7Z zUI3d}?P{eXY>zMF$bELHA^O3PF2z1jYJ~A}P$GDB)cPTUU)Z_((pr6^*&5bUAY3#W zC|tBWM>FjjcyawN?GL707~1_?xNtfay8dCxXrT(J(a4gXghp3qM5yP^XTRja(t7+~ z&RRt6NbW6$XfI%zj92GJeS;6?E|IjMxkEQ5^a=qBR4L{zQ3%HBsFC8KL3xtNGO_p{ zS<-jm=`zfxDlV~pzng8Gog!xaP7ZeNcH5udGsi;%r%^QrxzSPD)Ar70DkQj^>afb7lTd)HNUFT?&aK1a)Pv0x7oF0Pjud+X6^X~&@jCr##+{@ zjMK{&?-5K~xjjb2V8~bco7RoF<^e{rK?VWoeLQ$3F-5ok_Za{otxk>y*Dj|wtHF`J z_mf?rOLzQkDl--cLTH&S6VN;31OWNL)LravVb{q`W%_z(Yn;8d8BmsN~SO|<;Xm{0)sYf{Yff5u#sQ-eR2g&{Wq2jdd5MGViTckKX>;>s&j!IAv6 zYn^L}6cG~Eo7)?>u`M{(cos93n`-Y$HUrR7Njc z>-O)L%nGp^g^xi$uq(s`(xWc5A1!SYI^)xUK$0YV(ZV_&XNHV+@HHpJyV&>>bYV75 z*o3LxX%wj&MKdH?PE`jWbk7)1Hm=N;xbZnC2GsYcFgd{K_Xq(UM|kfSR;PXLrcO3C z_`7c3V}iVtU{tp~I^WeMCa9sm2m;n-8|y(_fm)1HkPoQ6bHU(ijU}DCaJNJsCwz&* z=$3V&*3zPFLw?~P9GgOlchclbkqrgmaxm_ogwUI(y(enf|Md28&aa~^W5g-t@}%;K z)c)&O)sBl4Z0-NH%hY~5EP>2D)T{iSIeHfZe@~j=?mj8eQ}17FzAg}$Pzs4Un9~)R zP&b3RR-idtX0>3)=_d2#hSeRzA(?%IYp++MO?%4}`gEyZp4rjg5BePQ#?AI0?`AY1 zbF8PhphX6yjGn3-lFZUM0^Lg8Wmn+4w%XTO<0-BQx9-4@ip|(u|aN8~wAEiwE6QS5x%I~%Em{VG%9!iS^Kt2eLGq^E=%HR4za9usyp&`Qe= zYn|BWu+*<57xD*s^U>FQWNW#uV>Q@%g+zVZrI=@j;YbSi=_IhAfC) zaD<7y_`2x4%O6mh?quXKKY1K5w_7l{o9nuhsPGuLEOkdf&jX_Eq5n&xj5yqJ>q z>fDTKeq+kQmlc|}{AUVc`hBG5tXXo@vmp9f+l=M)ki%|ihO3ifhX-RIt>EhPb>b=0 zX||u?h;-Nd{DPWw`Ew`N3QrOH(tzD;$?guDxc8G&?ydQ8rIi=QvYqI1F{x1%1Nwrw zUzjkzx0y4e4`*PeqQj574)St(lYgX6D_fDn?3=JH1;<>!SwAKJtctb0`X6$awjv~3 zwM^maf~Vbxrq*_?pq;^38OK|MQ~#1hG=*n7IdXBqLf5_bhR3+8QsQ5e;K|ruo>t84 zeb5BrEKA0E)N`@G}YNPo3V)#`Goc#y%KKT`fb6;)&dyB@ak01Yi) z&zuKs?v4B3M+|+TOn;wjiHZ7DLoe^4bx$b0n${lY;QPx(+#Pgs@F9MbFVeJHlC=z_ z|32B%!<)=awUw{>V~XMeCG7HyJFe{VvGlE}QZp+B?@o?n9tXn1S53zMmv)kXU{6Fd z9vSB2mTr3dg#-O^*Ky9w-BENcbg?KOcUDD9%+`NNW`C13rGoul{e`t>(eF_W5~mhS z$$adcT>HcI2XE&t*7mAWweJ1c4t%@+jlsT873Gr!`*a(iZ`rse!^>BLYkZxq(-2)v z<`bJC=1WCQI=A2$w4Y(je!E!mt@Zm{L7S5wG_fsvdX#G~n1k)sIm*Wh33$e>)0#j~06XQs1T&2BowRSYS&xKOrp1YnVbItQ2(uW{EnsW#r-F?9> zCWHR^%@8w!UuR{QvFW)T3G4;eB}P4F&&Lu`DXEYf&uMKL_hT)XVk`bupN|$ZX!P=6 zL&9}|ceYlrC+pv654QOx$|1Cic8zzsCm}~%WlKzNE#@10!P;}Zf{&S}`M0!#1wQS( z1v=r_&+x%~)69+Wrj2!pg6kNGe`)or5egZ--|-ol!x^q3CGHZwjW_P!8Oa=MK{v86 zQPEtT6kA$X(7($%){uj7iTaJteBl-EDjv#ngCF(ZPP6L{s;|L|RFqEF+Ep^Y{Vvcc z=7p@x=8igHU}hqR%+QS(OjNnugGg1*X>p6y-Qj8BVXca11c+2Zh~9&dP#R8oMBo2! zH4&g-epIZ_0eA}*IvP{rBU{*g;gg4RNKPcsK~4w&uJ8b!7-9EHcR;v#A?Q!yo9>r+ zK(c555f-YPw5%;UJ_R_iy{~Ai9Z;l)KWhV!h1>&PT2*=9Df{Fma@^pNjnP_>HVDZ9 zx(+M?cYZ(i(e(F3?`(%89B1@(G;a zC$cEQK#HC_PYnaZtNBZ9dCXh~c>U-ZNO>~XSI`@-6=!c+I}qfc^!G-dv|-wDN+^70=!+lVCN~P&Ec|4$Fb;2WB2Sek=ezp%mhn#OJ}i_0 zpv9iD7CTFu$DKU@%mDGR1G8l0!fP{7a-a%6w9K+ro74s$qLT>$)v_TPo$pYZ_}&SE zXhFMeWqd>;NR^DGE9EVEO}Yu3u}$4wlzrA^ylO#zlD0_R1<=3HSBWu{aUjyoWb!E0 zsb%Flue2bOED7%AnjqLgO~VG1VJ}dD7o9T6I-aRIxc{lm;75i@C^dm{$SqE&wg;;L z2G#JFepME%et(D`$V65rTF7-H`KShi413S|QG{tqiojd4w~(3RxLU!k?P&9m5d-dB z4cG+jzX5DU)PSYr;Pi!|>y+|!KVF{^;`QUB@GM(W?{^+#Chp;k=xRiLwOMUE!*>z) zv8#xC#&T^|haGF!Zps=%wOkZbvcT0p%12UAY&KqSU&YX$uK940;Jf+Sc_&@(^22;& zj?mOSClWOQl?b zN}cO-=UAB%j04*HwYJ2uS5yiq(yykQHmA(8e{kb-n{uy&UDH2an=f^ley*t;MRh%A zBC>whJ}2H>lId9TFlAGin1LIRSd)-wom`Uxz+I z&LjFl!Ul`<>YF;$Bo=_PTD`?A|AfL{q)cg!yC^w45I-w6f-u z*_)C+C)(SxeZ?{;#XLIv2HCTSpeoOFeXc#QuWe#?l5W7v^C5K|FR+R?7N6=ovaB_w zoy_e#vGJ65&D6fJjN(J;gt!hunKJpeEH=ZA$sG}DYh37 z*ub01h`nx#jmTMRdrCROJU@!dzZf;4Jyn)v_W0r)d5XGc`xX-{`7P$&HcNbSE4_n3 zqZdIn_`d+G>=SP@v3nipR95i1VSu^hseJuta3tkqQ!l69L&E;4GGFG^o{`kUxu!+* z4~k&AEuAH*XlyB*hq6<|jshZkr$%6MXY&p-+~_RIsx9rOnC1Sf275|fxmy!44a^VD za(B0FkP5Q$l(Bu+z|TxuoGbGxc^s;pX)9cGnYy-6D<4b5-9@Frb;q_D3uCQ6^m!?r z!>q#O@Ax(4z5MfC%QxO+om21VRG9tzJte##S>x`$Pb6+dg!8wktw+Y}Md&e-RXOL& z(2X-p6s5>=OeqLKzBq55W`4<()nidcdl;X5N%-!O)gI1rn1t0cFmc|asMbN|BlNHN zGCr^f3$5yxw;t4WDKEgb<$-2M(5Da-0U?}}jc_|;2J|2BBaj#jrLO39*k}FT5Qzo? zKtyodB@nC=#~MfkCSc)W0Z0(N0_Ol+6RjM==vM&bA)iH*tw^m%#wvBXo2`LN0NRyk zu@IVW_hnXR_&(y42~1p~yue}r*z6{}5D{2W_FreN0c~qhcMF?>YGa3Q8`ub;KZseP zt%1WAz?lD-j|*fkK5%ynwAWJxZ2uPSHj5X*b*UvEOWj{&jC1=y4S&4CaFtIgmQPfN zdu$y>77$4ckafo!hg5*63vn4Msc=fLUD$JxHb?3@N@>#naOr)dhHs)tS0MG>VFM50_oR@wgXJ@S}k(r)VAk(=j6pNlDs4jJ@89 zAVAw}3}1LxpRZm%n>-rzbHwuv2XHEJ+LJmtj=cJ&`9_l@QmvNn%ZwnowiCd~-mUaQ zY8D4NA>($6X?bl104Ij5T9~SufU|=tlqpG3U~XaD1x1S};&l>vc0i0JW;YbE&0>$l znHarFcnK@t{9o;1TBX5}?5ZX`Ot5$6EqdTlo{j&LA_>KbWAR&7`I*5>SPEpuXtGQh zx1nP?4$2yPjn%=DSNqbY6#Z$F7x3Fkg$?j<1Ot0r;av?Az_g0LV^h$$f27{Yqn_5{ zxHXwi)|vCM`zgofHe|sO+lb@Z1=P5f+Ufnanu8%jq5C#hU+y>rH-?fTLGtxoFr`C+7Rb z3K`J}-A=3G{^dld!5m0j4fG^gZm%8qmRx!_>TaCtm)4@2!si)2JhEGo|3+OL+21g$ z4i~$B>x`DA8h!B$8hZ3PDbm=(kqvQPt$b}BORg6oC&~yo#7)SicP~h8%X2qeqrFmR)*=n z!^Zv7*G`)xqP+}O4`qi%BPF(wR#x%z-@$>U6pgdJ)@oDUUXD5#S;P4vXGzB(vdiaN zQ;;q3O=~|i12(kN7YYnW1*{N*TL$?OwlhIn{Dr5aJw!9oX&O3qsd_AIhD>bfuM>DC2({Q7=>12bK@{FIZ_HMXcZm_3eG zLe7N2)2(4ZK;qQKJn46v;&uOEK?mi;$eJ*@ujmh&52^ix*a1l!nt%7NBD)OlX*rrn zR&2ns^RVFbzahqnrw*6q@x2RVt^c-^4^TL4RaKvA+KKKNE_-&J<9qfKmj`52Qi%dL>YxrcB1m*SE5R2PwDlDFU) z{%z)X;{7a3{_q6eXX|D`kIaqFtp&OQ6|wKka;2yjZKP3ogEst0RbOP>+|?E^kx5r0 zVX3`ED#0Ctm^o*QRC8+Tz9Rpp{ukAI$C-ciFPk~{mT!qaile`l5n~m{;p3T%YUF1f z&8xSVW&yR_q=)0MB&uWW&9(o#u=ajH$oPAPR#veqg$ye@d?i)Q5ObjWF?;TRz9j`e zh&^E?Tt@Ha%IGFpJ~G_zD$>g6k+e6XqhxfAga$H2w*JnE-U&r8Cg0efOWEt2>&NVG z9mjvPHX4;aDKr_qNVVH42#jvZywO-+sJi{y6EaK^@3OzCbm-lzs8nov!h3<2>k;r| zyN%1=r$ffSu}enz><04CZn1B$j*+jjZ!gae$V?fpg864HL431jA?i=0w)AS^4dR$-0oLHdxpA@ z8zK+Sc#AqIQZ@Z}r4M3T+*Ye0{Vln@6+cINA`bQ-PPyTb%`t9k)EGAevLO!9#5Q*u z#S5akJ+P-lDY^q=PK*L%ag!L}^*DG~&L&(EIXI@t0N zCg5!Y{*sxf7UG_OazmJc@afpM5@h0lFu;$>Z{R*a%q&0x#|G~P=#DMC12?I!6XyS% z0rJBiFH__()%~Q|`SJ(K_lEdrLmKfRAPB;ILnrbUD1>umZ=Ltby?>V`F9u4Jyawze zNL56${sM4E=KbToDN1oiO%-Wn${gXn2gtCC!DXDVl?*Y*KvPzRt1$$acAZj)K<$m? z3KcvuK8A3%Tl_}Hrvl_0Ge|S@*ulyYN^qs(!b(5W>*^F%xME)oFkK@nk1!9El1tPk zz_AurzK>wElFAzh08rE@XW<~OjfTeYStH!kZTN42>*pVac7)T=o1HX3A-eD>Ar$=W zQRiBPDrkZR-zqkHW@11nFiN!ANu9L&8)7yqxF=nPg8inR?w9@jbzJs3Iov#pRd78^ zhCCEIzR@qZ*6EoCDLyC6fQ5_$9eTpdo&{f|1fU-Q6agpCyA!k)Umr?K4L+}p1ivHQ z4l`Qy3FKxztp5H@_#;Uxp7}NU% z93yVhPeNqRLEDN+gPi-VYVZ+v1z5y!!|GeDe+sx+3x*0ae_SD<%d^xwUsl%TFEq|g z4{BNi8AiF|&fD)B59{XyT{c2%C(S!{NC`CzYgH_*l_mm)%KYs~$PL|-juds`o{73ONp5`c9Vp2@V zJofEcHd&j4vYhzYm%gV3H$qzxskm;zX_@q{Grz9G{W(T<+iFXFpG}^a2i1Gc?MfqX zzkW>BUR8jZ5~lQpH|&@0|M{D9F`ro};9T}-Rl`|>7ra+r$~aQF4pDe&yvcU@{VrLf zN6ZVqbzS)>hoQN+x8LQW&*@D@b+$BX;U9}rmQ_m&QwKq6^6T5*@}lCk1yv=&E(~rS zQLPG#`po2)Bj1NWPOEst*E=3d=8UJeK6UN{| z85U8sj*R((p!r1u-z;dW@vnu!>06Ie=6`qG7TLvO>jqzA%9GzK_E*U1*4ekv%k`+uDWD7>^>Fv<*ahjkJ=$Zv<-yN`d&M(PIrTICyc>0ke=dC<2$!gw;P znc#=j3Nb#@Fs-kGJLDVjHqP%w^A>XZ#phM7T@h3pu2_LDC(vkORZviIez;k&M+;v+ z*|kTtburS~Ksc^c@rTQF)42G?(-%=spzx#M+06;!?LRD2Wc zCNJq~iIwxXvY?Ex4PQrqWk?P;DUM~c%tSOcd{oBQP;xELx8hXyIAufy+00E66Wd%J zAA1=jt}`cV+4vlBzj4^(gSh(>aB?@dW&P1$dY8kPUcPVF>ff<^3nu+CXt^#FS-;%m zWqNWe2R*!89S=az`Yb|y`<63yH_(KrS@s;IPuW;p*mU_Mv*yy|(`aw_V3 zI825_?r2+LXT}0MSZc?Q|ICh84^9c^?O~gOnn!!OtD5chtD+FuRS`_~7CD&ej#5w; z1*omE|7NHvrOo_Vr?fepeM1_V`A8a-y;$xyY^`bsc_yTPX8Hs}=rbGR*y?`~+@oKQ zy>_NuyZWuV^fbu#C{Z+Hb)fmRiPGSx!TLZlFM}C#sr`L)d-K}rb62ENvSlO@*FDGP zlVC19&sJIbHBn)&Bam<~xMbcpG~ENJ6j%K}I^|I%FeD$5ko zJu8kxhFA^+1-$sC?JFsej*$I$8IPT`T|Fli@nHp)LqP#z%C_FJyGLt2GsUk+Mn=Rl z!~(nS<)Th3&|hE0a%l~$o^7tJqQx`{48x;WvzoSSt=qY|HW10Nm~$-UBMt5Uvy43H zukQUsE+6w@YXN&E_VgV0_TlY&N?RVLk%EHrOdJ~3XE1zYigpXnwa@Zj08#U*g> z)H-#Gu}HoICHxa-kzaje1<+J3VWkI$&HFu#hSAridvBxkLH~;8>pst*_O80pRHt`GimQ zMFO{h1u(;CMCkd)lC5Nh@xM=Rg}8cK^q7twE8;uV5ibJg38dNpXTU)Ks~oV6RiHwq z?w67&{69rrNUtL&AmbiT&#g2A08hk(gRHs? zZ|RaRVcQ(B^2n$36mU6kL^iS#$^wKhpqzS`toms}bRr~?S|$!DOwOFzGoLC$tkGri z!llE71rlJ*Izrhivb>%m0uE>|RUeN(@HRmQqL>K~fPO|(Y5)Y}CcC_mprp@>=bV2V zc)b%z5nJNNw!vV3ll%X&`UIM=a%R4caOitYj-2CKd^W8h2NjZ!h9nVz!kK7(d2&a> zSLZL5c96a9MglaU{@50Hnu##d$zj0RDt+z1boX1180Z9{-*9*Y=SuBbjDkfCYrsI@ zIpFzoiyjkyY)n7)31qYaGW#m&@UH5@m$DgmyoBVqQi7~N?$)^*4!riBdUbmp^PZx< z)M9(GeDq=ie>u`8C`Ch6`o=%LP*42+faaQL+s5ZylYf=Fwp4k-unYZj`R-rJFp}_= zRq^_Lc2PN9vO!k%+hRbKSvwgSAga>kToPIb#1Aiu6+6A>qx!4P9hiw!-TpvGd$ z{Yc6Smx%pk%>D9d+i5I@>8a@^p*TSr^B*y&wfm3ot5^1a&*dvB(vmgq%%2G1@v#fc zB#}m!{?{gbz}B#sbDk+h#llKE>9CUzPA6pJ=ml3-u`RmYENnD_*t#+| z_vOfF)T|1^l)RaHF*&eD=-pGb&o%noQ|`RIe^~Ze4CG2G-*T^iJEav}FxzDqSon@e z3mxJ{P&cc}LN_FY?S6bWQS#YJKpfMSzkK9wvy(XlK;e6#X11G6VWSt;PoFq3;Ez2m# zANr{(?UgLofN2oBv`PS1GJm?$BI~H#$+;#Xt6wXfW&fq*4vMEbi(nBaQb6}%UbDDaBrqz$o;j+cQ_`gK`u$nQUQ9_x6&|f2wc6*!Y56Iu&)L0@i@<{b z=&r(A!NwdS{XQxg!fY$KGoB;t|I@2>v#_#~`njs%tF$qkNsq_RwBtga2=m2jlpzQ~d?G z_b`dm)5UpJdh~@3(-Uk2#71k zH>LJOs$9aVhx6kVhMO(vRG7T|-)DI_VDFiZ4RRmeVkuM;PwCTqbUUT+cGkRif|t08 zQtDpap+G!IrCl#_K*jnmHUoLZB{wp}KKO-HZWGIh6!vi`FFWkH7vd>r`&zRMCbRiu zmMU5qL1j36V+p;E=|Y`ghasolavWB1B;Sg^SHg;;zcnp}5&EsN?dhGeA-r6yH?uS6a4kQwEBX|L$l5=h zG?KZohc2~Pq86|%f!Du-X*7BBUdYyjj`){D|_z${3#Jl z#W67oq>|UN^u~$XUH4^}LFcVqWPBOA?N`;S5eFY^Q^Q05_Us4a&909S&%;LHfWFNZ zC)Dz4l(DP*!M-~-%_WFA;-xg}`uh;qM9f0Rj_vLL^8JC`km^3}7`Q1Qb5QM}Tx1 zh&goP+d(xTjgUY&kogQs4h~hseFtA&7(c8HWJ*LW0T{dGS9=#{;f%Oc(x98l3J(V6 zF@^SSr4{KF+yr@Rf^*ROF7Y?F3?&J(0$atkWsoW+PagguD_q&YQSh>fXSL_wA&bpe25SRh=a4c zkUtFJ^7A!`?Nf|`OBDSfLKMvr^kSEelqnLEc=MBL6?Dmm0C|XVSA+;aAhWLZnC)pr z4t9{0rcrFgtr6kU*2VM@wcTdBUN5&?F@gt1`kt-h(f2)HOPEIUBko6vR-YO}Dpbjj z*{EjVE)m8E<)l8H{Zr=L(_F+1JjgvNLTlZvjQUPBf%_&o7{XxOuY58R&=novmjKi9 zxwezP86aKe{D8mqog(Rr<@&3WsVFrugVd{#k^8)SPnyLGPN^Ez)I=enz-nr520_B znFfUYrM`5{s@+rU!IWoWvS%2f>ZFG~2-pw&RRSO{Nl#J+zZf!vMrpg0@yxA)9`EXj z!waezv%48X7Z&_kgM(R>N<(&-cZbB=fOS6e$rljZ=9}N%yJg-ngRZ;zzD@7+_TM(| zXp*iq31Ut|>BW%|{&{hGslik1Vu}^Cre*uYt+lMnrCxA5%(0!mep|A-to8g&)mxmV zXzoT2AKZ!m;X=9biN9|sl5f{)VPTmqZVGV^L(t8_3;+hdvvk_=X%ebKr?|~2;*oGz zN%9`nRndTU;N^Jq)FA<(@IGBywrPA`WDedF>qWR6ND^ z>-UA(Osyg5=BK=nA^}tL-o58Qmx_d~O@ZT7MeVfs1ZPLZf39ll1ntrETSS}mqFjqB zwiXl`juCWGzH`f&(8*y;vE+0Ch53-73xhCedMc7EQ|j>TEwbYJndFu)J$=OUHAVFR zC1sP?T?S-U;YEO`ov8Z#vvva#sfW-wtap~sBm30YE0f>xskd5nM((7+sfT&fFYg4q zkw*y_bX}MD);EJQ>8_(^po8v?lpH}F#Ak%bhei= zwBe)Xi9HT}IiKhE%i1#D&G8MG%4Ad`Fs?c}N!H<6(oK9!g>BRpYO7;@D zRn*^#-#=mY?1`u+Rro6=7^yPPoWs2-Hc}olOoWFl(%i~eZH}GwJ$YGd>6Eo7EoO7R zhl<|njlmv%#p;~Ghx%-8&Zno0?Whd~o9RT4s#du# z*>Z9(#RtAk1d^&mqPw?O3)E=w9jNn(B7cIUg7cFkTTGbgB z8CnI(^Mg}Gv5T@ut<4>&^}$gwMa0(zPY%!1CF)^jUsI?~foeA9$C!s(o~T*|_pw^xn)zX4vjzIjdCSC3 zjEyG!m2Z~(Ln_uwiRnXM+1Z_@iZDCHRyo_FfLf&e%=5@#MzPY~T{B$z8j4cf_xKMt z=v5{+f+zTSY;QH=;9TpZWTK1rM0|KHI3Iwq0&O8n0Q=7@Z-ws-zw}-Ka)B`p`j2Xu z31R@aT!3caG}ulGcxny?#R5@SgcFpI25=Ag39wyZWSI&;;=maQ^ND*~B`)aea7zv( zScKvDKe5RM9iVzf{Aa*j*0*HA2G4isOCEvoRe^GFRTQz68VBntsE>5Pu1iq}7(ku_ z@a`sD#VLt311^EC8i`_#AE!N1WV^otOM|HjpZ&r)8jXXKw6UDdkbeJE1A1Clu(r@h zT!HhBl@^W;!XMe`Ex&+20NA_9-aQ_7jM>puNB@lPGyaUj%aZ88alGY zTBrON{--rjRA2JE+Wj?dh@q2O5_&w0uy~3oxpiJ1wVS#|xd63q*d>-=VU=rjO zkyU_Cwjj~bTy64Qt~R}8#iupT(!V4fqPUFu74IqHT`R!U&=cNYe7B`c(6}JeEpYZD z6{gf-{Ez+MeBalajX?ENx0vg;UI(DHC;Wz;WMPQ)@GRLS=f7=Y;n$Yl5K_tLj)L~l z?#&w)0-W==fo~6^LMFQXsyF%9&ad7GFC~}`2TgLt0p|>;Gq@+q7;dM%haMK-H;$?% zw%h`{W%!GUdm|b{Qvo+!Vr!b#jg%Lm+wZ!_o97g0qCa|M(HO2J@fxF=j)QO}EI+Z6BBb-oB;j(*&@PL-N)a^GoZ z(U;=yrnM4(cd7C$h&xq04foK~;Zr@g)`_piZgXkZ>7CiVX_;Au63oybt0#~iEbuDA zot`=La}!uDF>H#m&KfaJkn0l^Rpk3Y>1{v~CA^g}lAL8PX(;T|PrW7ONci$u|K;o6 z+#s?PlwkNqek(YTzevN`f6CC(Ik_PnpS)m%dnoiaK*XmMOKTnww^DMiT)eAj%AA*1 z7cghw6c6N5M;x8=l+KxT?z-H6lUUK)Te}+RJmE0!jA-NV`$fVUo;Gh3ZPV2_L$$I0 zSNXcwMCH0*7OH=1s$Ou{S}NUFSAn5hpABbob&b=r4CHe!C*k=YkMs1yWh@>CTFfDiPrY8i`(*d@k@G~Y^o6Xc%Gq)QYVJ`wRY%S($3#EzsyH>hZ_2jG1OG#L zSpSE*Dykj&maUgu=^2DalRFVVceOw9_a13{-Y&L~Hr!Z+PyZ$gCo^_}2mA6$a?BsT zt(ySlPd-1j_B|X`YMvB`lgs|r`!&QemUAr_yGdcZhUiY5G?{OFV@g}3zj$IipP(;F zx0k(av!+~NF!a&i@j~>9#KR2L_{CRN=x)D4{&j5%^h7wYV1xTcsaK4>!1=mFlWW7U zCl-C$O7r*h@Al*|w)XCHa`sl*TCuv_+RbO#oRa+}NUW`?RR}{c^3#5qNp_?~sx234 zoVDm}_GB9x=qcl+jWsiFZ_i#NVF}hAtT<`8n$e1h+1tFgH&qG@0gQP(2aeND8GZ;lV ziAmo-EtU|R54IU?Oc(I!{qwLKcieg|%z9~s-8lKUHkjhSZ!M4q&R55LUqq0t@g9yO zr?dM9v2tAo^Pn!;1?l&))6KP`6-cE7>OCeIy{m^w9lXpNb>vLy$}I?HLo*qfifs@~ z<9kbY1#0)0e`6kU)EZn)alBg{Db0HeKdVt$tnx$Xb2m>%5y#%+;kq@_s5*4xi1nj) zfGS`P7)E_gAPpvZ_sAE>fyV<1Gq+)*2GD^4$f$N7;1t*xKMVE9=8 zq{&ZwI6%4mzo{x|=MX}G4vWxOUjRk@GCaSV7EGOoXY?2jb^#uRK+YZ|?NCU7obb!o z^S1$>c<$`a8sgJFfc!zpz@l!D4Urr2F;5|5Qn&dX-0n^A`javGNMPQZLYnHP1btQB zb=vmvpD(D9v4(l@hgqEMCqh<+iUg4EE5LJrr%xCte1A_o5T^<_4tDRBd57ec-X$IH zMyRs#en`l_`@t+`qvMSa17d(TDA39@*94(4{7y(C1@a4zkc!2$#T@RkAr1m@{R%bR`yW8KNU8X0@NJ)TIrQ&N|*Wv8v&e=($ zSz_aV(zxFw?5&Zkc9~UkO0Y;mF~v8>i7m-QH&{bHX~KvYs^0}{qWIe6_={PM`mj;# z_~OyUq+m7~jXTRMJg_Gk%GL}EH(QhL^0T35CReNvy2gR_6~p>SP{iOZ(pxs0^+&nv z1~X}uA=&P|P*Po7iqF{2lmtbj>Z+_-iT# zK*OGApN1qDiLyNTGH0-!z>k`$ZqPg`P{Floz#OGL3VDE5X7(p{E+=2wGt68yAvt2q z1hpi0PO-H`vL6CVPEfq^k<7Ib?`=WHoW-+QmdI-8-eek*VAZ@*+~5NIK-(_iE&?tq zpL@5w(|d?$9_VpBqXvCGKr7l`7s^f0hD4~oBkIA+y*6KV8A>2M2?%!WcK0G%5%9jW zQ#dK@0{D9=-RpGMrHEK0NATFp^a~1F4Zrc=I5a`=R&D3X9|G`eJ&-tSvdPfgX zVrvxtkRYT}psl9yW-SX)IvCvOJf{)FBW57^O;zFA_^Lgq!r~=!q{bHAnP({c=0}{Q z&Og^ib&@&{b5u>UX|3=~g7j*?7OA_RtGMVpVy}_<_DV5X$N3p0^R18N)QM9rRbs&3L*Qx{HFf?d+m$tXIDPZ!me8ipai#fI^=^6F zb`jZD<)*>b)ULhMrNLj^q0$FsNhWzmp^e%D9@z;vb z|HExQUf(;utAbhYPryvS=H9D*4Hg?*!>?Z}yQr^NWR>qaXTSV!NWe0?#V5X};pJh7 zL*o3&J19<-T%E1Qd%0UPO(QqIA&la3nuofQrW7}IDA&en)}Z_NW}I10H?L)8G!^Ma z{>DwV;;f3&$>&9Lc58>j@Qa+9kF}BpIoH`0Vm?d3@jYgiPs< z`;I+s_mhrn@j870S-guf>cZAR1fCu;r!C40GUc`gy;gcZ+;8LATjJ^<@U9T$j1e)_9IVd!IPL!iOR|zXYiBSyYv<5n!vkV17zH9j%v~c1 zDJ|oV@0nt0L%S%~+%Hk^dO6yHn+4k60gIH@H-VA?ogz1$9WT39t1OH6Ac~{y5a0Or z0*yTn?9ZW6ES}_6+?upkN)OVsUE?M@#o&zJ=A`q)(T=5 z$T}+jAF@*y7(`B_^1wr7Z;dsE#IM~!;zl#_|x!I8Xncd`MP zX6&jcJv$T39Ifmcd)$g|{pO(dZf_kJZ)@$xS44VaH^gugOS5!;syl0I`(zLLF=qQA zjApv}h24`tKCVrs$bov7xOm2Nrr>n6d2->4JH)0d^CQ157bXY41zpBfw8%*8Ygq%- z7*lSXFg90#2n+U7Yh7bQg^zoO5Wx{W1r{St50I?Cu(w}Rz9~%>IdFd0PumG(L_I;) zls$nH-#ywi`2lnT+O_2Qe24@e%d&Kb$-)?2zB{?Je~DhlMmST zH%2MaE!`>z4(S@w3WA{0pIWRi6m9K2~vkefOdIBFGh|D#5|Z{d zb`HvlRx}}x<|;Wd!GFRO4CSlDlxbd+hNF dhUeTWVQTnd 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 MHaBT3IC& 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 h%gty@6G&|2yr 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%0A6e!yigj^P567d|j@BZJCODV!rdr&4tbL)c=(J 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

*)f1lT14 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 DLy{3l&4$Z?pT4}b%BfkZ-*@dpLJ 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ⓈH~e8RFpXfkQ~<6 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 |?mt*H3t^kCBWRCwl;Qjo_19`Y<4>_E~ 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

uZ1$t!ZAIYQnw7R9)+BTnR0^PreU*30YS*ZI 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

C7;>DSc9b-Mc9tL0c;LR^|LP9JOS34Q2PNig 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ℑ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

*2%iK3Zpo{nI)XK@(!+z!vc>@dh#t)Dc-Tny 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

Te|DD+RA?^I^vOoMbq)o+J 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 self.min_z: + p3d = F.max_pool3d(x3d, kernel_size=(2, 2, 2), stride=(2, 2, 2)) + else: + p3d = F.max_pool3d(x3d, kernel_size=(1, 2, 2), stride=(1, 2, 2)) + + x = FMU(p2d, p3d, mode=self.FMU) + + elif self.mode_in == '2d': + x = F.max_pool3d(x, kernel_size=(1, 2, 2), stride=(1, 2, 2)) + + elif self.mode_in == '3d': + if x.shape[2] >= self.min_z: + x = F.max_pool3d(x, kernel_size=(2, 2, 2), stride=(2, 2, 2)) + else: + x = F.max_pool3d(x, kernel_size=(1, 2, 2), stride=(1, 2, 2)) + + if self.mode_out == '2d': + return self.CB2d(x) + elif self.mode_out == '3d': + return self.CB3d(x) + elif self.mode_out == 'both': + return self.CB2d(x), self.CB3d(x) + + + +class Up(BasicNet): + def __init__(self, in_channels, out_channels, mode: tuple, FMU='sub'): + """ + basic module at upsampling stage + Args: + in_channels: + out_channels: + mode: represent the streams coming in and out. e.g., ('2d', 'both'): one input stream (2d) and two output streams (2d and 3d) + FMU: determine the type of feature fusion if there are two input streams + """ + super().__init__() + self.mode_in, self.mode_out = mode + self.FMU = FMU + norm_args = (self.norm_kwargs, self.norm_kwargs) + activation_args = (self.activation_kwargs, self.activation_kwargs) + + if self.mode_out == '2d' or self.mode_out == 'both': + self.CB2d = CB3d(in_channels=in_channels, out_channels=out_channels, + kSize=((1, 3, 3), (1, 3, 3)), stride=(1, 1), padding=(0, 1, 1), + norm_args=norm_args, activation_args=activation_args) + + if self.mode_out == '3d' or self.mode_out == 'both': + self.CB3d = CB3d(in_channels=in_channels, out_channels=out_channels, + kSize=(3, 3), stride=(1, 1), padding=(1, 1, 1), + norm_args=norm_args, activation_args=activation_args) + + def forward(self, x): + x2d, xskip2d, x3d, xskip3d = x + + xskip2d = torch.zeros_like(xskip2d) + xskip3d = torch.zeros_like(xskip3d) + + tarSize = xskip2d.shape[2:] + up2d = F.interpolate(x2d, size=tarSize, mode='trilinear', align_corners=False) + up3d = F.interpolate(x3d, size=tarSize, mode='trilinear', align_corners=False) + + cat = FMU(up2d, up3d, self.FMU) + + if self.mode_out == '2d': + return self.CB2d(cat) + elif self.mode_out == '3d': + return self.CB3d(cat) + elif self.mode_out == 'both': + return self.CB2d(cat), self.CB3d(cat) + + + +class MNet(BasicNet): + def __init__(self, in_channels, kn=(32, 48, 64, 80, 96), FMU='sub'): + """ + + Args: + in_channels: channels of input + num_classes: output classes + kn: the number of kernels + ds: deep supervision + FMU: type of feature merging unit + """ + super().__init__() + + channel_factor = {'sum': 1, 'sub': 1, 'cat': 2} + fct = channel_factor[FMU] + + self.down11 = Down(in_channels, kn[0], ('/', 'both'), downsample=False) + self.down12 = Down(kn[0], kn[1], ('2d', 'both')) + self.down13 = Down(kn[1], kn[2], ('2d', 'both')) + self.down14 = Down(kn[2], kn[3], ('2d', 'both')) + self.bottleneck1 = Down(kn[3], kn[4], ('2d', '2d')) + + self.up11 = Up(fct * kn[4], kn[3], ('both', '2d'), FMU) + self.up12 = Up(fct * kn[3], kn[2], ('both', '2d'), FMU) + self.up13 = Up(fct * kn[2], kn[1], ('both', '2d'), FMU) + self.up14 = Up(fct * kn[1], kn[0], ('both', 'both'), FMU) + + self.up11_ = Up(fct * kn[4], kn[3], ('both', '2d'), FMU) + self.up12_ = Up(fct * kn[3], kn[2], ('both', '2d'), FMU) + self.up13_ = Up(fct * kn[2], kn[1], ('both', '2d'), FMU) + self.up14_ = Up(fct * kn[1], kn[0], ('both', 'both'), FMU) + + + self.down21 = Down(kn[0], kn[1], ('3d', 'both')) + self.down22 = Down(fct * kn[1], kn[2], ('both', 'both'), FMU) + self.down23 = Down(fct * kn[2], kn[3], ('both', 'both'), FMU) + self.bottleneck2 = Down(fct * kn[3], kn[4], ('both', 'both'), FMU) + + self.up21 = Up(fct * kn[4], kn[3], ('both', 'both'), FMU) + self.up22 = Up(fct * kn[3], kn[2], ('both', 'both'), FMU) + self.up23 = Up(fct * kn[2], kn[1], ('both', '3d'), FMU) + + self.up21_ = Up(fct * kn[4], kn[3], ('both', 'both'), FMU) + self.up22_ = Up(fct * kn[3], kn[2], ('both', 'both'), FMU) + self.up23_ = Up(fct * kn[2], kn[1], ('both', '3d'), FMU) + + + self.down31 = Down(kn[1], kn[2], ('3d', 'both')) + self.down32 = Down(fct * kn[2], kn[3], ('both', 'both'), FMU) + self.bottleneck3 = Down(fct * kn[3], kn[4], ('both', 'both'), FMU) + + self.up31 = Up(fct * kn[4], kn[3], ('both', 'both'), FMU) + self.up32 = Up(fct * kn[3], kn[2], ('both', '3d'), FMU) + + self.up31_ = Up(fct * kn[4], kn[3], ('both', 'both'), FMU) + self.up32_ = Up(fct * kn[3], kn[2], ('both', '3d'), FMU) + + self.down41 = Down(kn[2], kn[3], ('3d', 'both'), FMU) + self.bottleneck4 = Down(fct * kn[3], kn[4], ('both', 'both'), FMU) + + self.up41 = Up(fct * kn[4], kn[3], ('both', '3d'), FMU) + self.up41_ = Up(fct * kn[4], kn[3], ('both', '3d'), FMU) + + self.bottleneck5 = Down(kn[3], kn[4], ('3d', '3d')) + + + self.outputs = nn.ModuleList( + [nn.Conv3d(c, 1, kernel_size=(1, 1, 1), stride=1, padding=0, bias=False) + for c in [kn[0], kn[1], kn[1], kn[2], kn[2], kn[3], kn[3]]] + ) + + self.outputs2 = nn.ModuleList( + [nn.Conv3d(c, 1, kernel_size=(1, 1, 1), stride=1, padding=0, bias=False) + for c in [kn[0], kn[1], kn[1], kn[2], kn[2], kn[3], kn[3]]] + ) + self.sigmoid = nn.Sigmoid() + + def forward(self, x): + down11 = self.down11(x) + down12 = self.down12(down11[0]) + down13 = self.down13(down12[0]) + down14 = self.down14(down13[0]) + bottleNeck1 = self.bottleneck1(down14[0]) + + down21 = self.down21(down11[1]) + down22 = self.down22([down21[0], down12[1]]) + down23 = self.down23([down22[0], down13[1]]) + bottleNeck2 = self.bottleneck2([down23[0], down14[1]]) + + down31 = self.down31(down21[1]) + down32 = self.down32([down31[0], down22[1]]) + bottleNeck3 = self.bottleneck3([down32[0], down23[1]]) + + down41 = self.down41(down31[1]) + bottleNeck4 = self.bottleneck4([down41[0], down32[1]]) + + bottleNeck5 = self.bottleneck5(down41[1]) + + up41 = self.up41([bottleNeck4[0], down41[0], bottleNeck5, down41[1]]) + + up31 = self.up31([bottleNeck3[0], down32[0], bottleNeck4[1], down32[1]]) + up32 = self.up32([up31[0], down31[0], up41, down31[1]]) + + up21 = self.up21([bottleNeck2[0], down23[0], bottleNeck3[1], down23[1]]) + up22 = self.up22([up21[0], down22[0], up31[1], down22[1]]) + up23 = self.up23([up22[0], down21[0], up32, down21[1]]) + + up11 = self.up11([bottleNeck1, down14[0], bottleNeck2[1], down14[1]]) + up12 = self.up12([up11, down13[0], up21[1], down13[1]]) + up13 = self.up13([up12, down12[0], up22[1], down12[1]]) + up14 = self.up14([up13, down11[0], up23, down11[1]]) + + + up41_ = self.up41_([bottleNeck4[0], down41[0], bottleNeck5, down41[1]]) + + up31_ = self.up31_([bottleNeck3[0], down32[0], bottleNeck4[1], down32[1]]) + up32_ = self.up32_([up31_[0], down31[0], up41_, down31[1]]) + + up21_ = self.up21_([bottleNeck2[0], down23[0], bottleNeck3[1], down23[1]]) + up22_ = self.up22_([up21_[0], down22[0], up31_[1], down22[1]]) + up23_ = self.up23_([up22_[0], down21[0], up32_, down21[1]]) + + up11_ = self.up11_([bottleNeck1, down14[0], bottleNeck2[1], down14[1]]) + up12_ = self.up12_([up11_, down13[0], up21_[1], down13[1]]) + up13_ = self.up13_([up12_, down12[0], up22_[1], down12[1]]) + up14_ = self.up14_([up13_, down11[0], up23_, down11[1]]) + + + return self.sigmoid(self.outputs[0](up14[0]+up14[1])), self.sigmoid(self.outputs2[0](up14_[0]+up14_[1])) + + +if __name__ == '__main__': + MNet = MNet(1, kn=(28, 36, 48, 64, 80), FMU='sub') + input = torch.randn((1, 1, 32, 96, 96)) + output = MNet(input) + + print([e.shape for e in output]) \ No newline at end of file diff --git a/legacy/Pretrain/pretrain.py b/legacy/Pretrain/pretrain.py new file mode 100644 index 0000000..75f9efb --- /dev/null +++ b/legacy/Pretrain/pretrain.py @@ -0,0 +1,263 @@ +from __future__ import absolute_import +from __future__ import print_function +from __future__ import division + +import os + +os.environ['CUDA_VISIBLE_DEVICES'] = "0, 1" +import sys +import yaml +import time +import logging +import argparse +import numpy as np +from attrdict import AttrDict +from tensorboardX import SummaryWriter +from collections import OrderedDict +import torch +import torch.nn as nn +from pretrain_provider import Provider +from utils.show import show_bound +from model.Mnet_pretrain import MNet +from utils.utils import setup_seed +import torch.nn.functional as F + + +def init_project(cfg): + def init_logging(path): + logging.basicConfig( + level=logging.INFO, + format='%(message)s', + datefmt='%m-%d %H:%M', + filename=path, + filemode='w') + + # define a Handler which writes INFO messages or higher to the sys.stderr + console = logging.StreamHandler() + console.setLevel(logging.INFO) + + # set a format which is simpler for console use + formatter = logging.Formatter('%(message)s') + # tell the handler to use this format + console.setFormatter(formatter) + logging.getLogger('').addHandler(console) + + # seeds + setup_seed(cfg.TRAIN.random_seed) + if cfg.TRAIN.if_cuda: + if torch.cuda.is_available() is False: + raise AttributeError('No GPU available') + + prefix = cfg.time + if cfg.TRAIN.resume: + model_name = cfg.TRAIN.model_name + else: + model_name = prefix + '_' + cfg.NAME + cfg.cache_path = os.path.join(cfg.TRAIN.cache_path, model_name) + cfg.save_path = os.path.join(cfg.TRAIN.save_path, model_name) + cfg.record_path = os.path.join(cfg.save_path, model_name) + cfg.valid_path = os.path.join(cfg.save_path, 'valid') + if cfg.TRAIN.resume is False: + if not os.path.exists(cfg.cache_path): + os.makedirs(cfg.cache_path) + if not os.path.exists(cfg.save_path): + os.makedirs(cfg.save_path) + if not os.path.exists(cfg.record_path): + os.makedirs(cfg.record_path) + if not os.path.exists(cfg.valid_path): + os.makedirs(cfg.valid_path) + init_logging(os.path.join(cfg.record_path, prefix + '.log')) + logging.info(cfg) + writer = SummaryWriter(cfg.record_path) + writer.add_text('cfg', str(cfg)) + return writer + + +def load_dataset(cfg): + print('Caching datasets ... ', flush=True) + t1 = time.time() + train_provider = Provider('train', cfg) + print('Done (time: %.2fs)' % (time.time() - t1)) + return train_provider, valid_provider + + +def build_model(cfg, writer): + print('Building model on ', end='', flush=True) + t1 = time.time() + device = torch.device('cuda:0') + + print('load mnet!') + + model = MNet(1, kn=(32, 64, 96, 128, 256), FMU='sub').cuda() + + if cfg.MODEL.pre_train: + ckpt_path = cfg.MODEL.pretrain_path + print('Load pre-trained model from' + ckpt_path) + checkpoint = torch.load(ckpt_path) + pretrained_dict = OrderedDict() + state_dict = checkpoint['model_weights'] + for k, v in state_dict.items(): + name = k.replace('module.', '') if 'module' in k else k + pretrained_dict[name] = v + model_dict = model.state_dict() + pretrained_dict = {k: v for k, v in pretrained_dict.items() if + k in model_dict} # 1. filter out unnecessary keys + print(pretrained_dict.keys()) + model_dict.update(pretrained_dict) # 2. overwrite entries in the existing state dict + model.load_state_dict(model_dict) + + if cfg.MODEL.continue_train: + ckpt_path = cfg.MODEL.continue_path + print('Load pre-trained model from' + ckpt_path) + checkpoint = torch.load(ckpt_path) + new_state_dict = OrderedDict() + state_dict = checkpoint['model_weights'] + for k, v in state_dict.items(): + name = k.replace('module.', '') if 'module' in k else k + new_state_dict[name] = v + + model.load_state_dict(new_state_dict) + model = model.to(device) + + cuda_count = torch.cuda.device_count() + if cuda_count > 1: + if cfg.TRAIN.batch_size % cuda_count == 0: + print('%d GPUs ... ' % cuda_count, end='', flush=True) + model = nn.DataParallel(model) + else: + raise AttributeError( + 'Batch size (%d) cannot be equally divided by GPU number (%d)' % (cfg.TRAIN.batch_size, cuda_count)) + else: + print('a single GPU ... ', end='', flush=True) + print('Done (time: %.2fs)' % (time.time() - t1)) + return model + + +def calculate_lr(iters): + if iters < cfg.TRAIN.warmup_iters: + current_lr = (cfg.TRAIN.base_lr - cfg.TRAIN.end_lr) * pow(float(iters) / cfg.TRAIN.warmup_iters, + cfg.TRAIN.power) + cfg.TRAIN.end_lr + else: + if iters < cfg.TRAIN.decay_iters: + current_lr = (cfg.TRAIN.base_lr - cfg.TRAIN.end_lr) * pow( + 1 - float(iters - cfg.TRAIN.warmup_iters) / cfg.TRAIN.decay_iters, cfg.TRAIN.power) + cfg.TRAIN.end_lr + else: + current_lr = cfg.TRAIN.end_lr + return current_lr + + +def loop(cfg, train_provider, model, optimizer, iters, writer): + f_loss_txt = open(os.path.join(cfg.record_path, 'loss.txt'), 'a') + rcd_time = [] + sum_time = 0 + sum_loss = 0 + sum_labeled_loss = 0 + sum_unlabel_loss = 0 + + while iters <= cfg.TRAIN.total_iters: + # train + model.train() + iters += 1 + t1 = time.time() + inputs, gt, hog = train_provider.next() + + # decay learning rate + if cfg.TRAIN.end_lr == cfg.TRAIN.base_lr: + current_lr = cfg.TRAIN.base_lr + else: + current_lr = calculate_lr(iters) + for param_group in optimizer.param_groups: + param_group['lr'] = current_lr + + optimizer.zero_grad() + + pred, pred_hog = model(inputs) + # LOSS + ############################## + loss1 = F.mse_loss(pred, gt) + loss2 = F.mse_loss(pred_hog, hog) + loss = 0.2 * loss1 + loss2 + loss.backward() + ############################## + + if cfg.TRAIN.weight_decay is not None: + for group in optimizer.param_groups: + for param in group['params']: + param.data = param.data.add(-cfg.TRAIN.weight_decay * group['lr'], param.data) + optimizer.step() + + sum_loss += loss.item() + sum_time += time.time() - t1 + + # log train + if iters % cfg.TRAIN.display_freq == 0 or iters == 1: + rcd_time.append(sum_time) + if iters == 1: + logging.info( + 'step %d, loss = %.6f, labeled_loss=%.6f, unlabel_loss=%.6f (wt: *1, lr: %.8f, et: %.2f sec, rd: %.2f min)' + % (iters, sum_loss, sum_labeled_loss, sum_unlabel_loss, current_lr, sum_time, + (cfg.TRAIN.total_iters - iters) / cfg.TRAIN.display_freq * np.mean(np.asarray(rcd_time)) / 60)) + writer.add_scalar('loss', sum_loss * 1, iters) + else: + logging.info( + 'step %d, loss = %.6f, labeled_loss=%.6f, unlabel_loss=%.6f (wt: *1, lr: %.8f, et: %.2f sec, rd: %.2f min)' \ + % (iters, sum_loss / cfg.TRAIN.display_freq * 1, \ + sum_labeled_loss / cfg.TRAIN.display_freq * 1, \ + sum_unlabel_loss / cfg.TRAIN.display_freq * 1, current_lr, sum_time, \ + (cfg.TRAIN.total_iters - iters) / cfg.TRAIN.display_freq * np.mean(np.asarray(rcd_time)) / 60)) + writer.add_scalar('loss', sum_loss / cfg.TRAIN.display_freq * 1, iters) + f_loss_txt.write('step = %d, loss = %.6f, labeled_loss=%.6f, unlabel_loss=%.6f' \ + % (iters, sum_loss / cfg.TRAIN.display_freq * 1, \ + sum_labeled_loss / cfg.TRAIN.display_freq * 1, \ + sum_unlabel_loss / cfg.TRAIN.display_freq * 1)) + f_loss_txt.write('\n') + f_loss_txt.flush() + sys.stdout.flush() + sum_time = 0 + sum_loss = 0 + + # display + if iters % cfg.TRAIN.valid_freq == 0 or iters == 1: + show_bound(iters, inputs, pred, gt, cfg.cache_path, model_type=cfg.MODEL.model_type) + + # save + if iters % cfg.TRAIN.save_freq == 0: + states = {'current_iter': iters, 'valid_result': None, + 'model_weights': model.state_dict()} + torch.save(states, os.path.join(cfg.save_path, 'model-%06d.ckpt' % iters)) + print('***************save modol, iters = %d.***************' % (iters), flush=True) + f_loss_txt.close() + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument('-c', '--cfg', type=str, default='SegNeuron', help='path to config file') + parser.add_argument('-m', '--mode', type=str, default='train', help='path to config file') + args = parser.parse_args() + + cfg_file = args.cfg + '.yaml' + print('cfg_file: ' + cfg_file) + print('mode: ' + args.mode) + + with open('./config/' + cfg_file, 'r') as f: + cfg = AttrDict(yaml.safe_load(f)) + + timeArray = time.localtime() + time_stamp = time.strftime('%Y-%m-%d--%H-%M-%S', timeArray) + print('time stamp:', time_stamp) + + cfg.path = cfg_file + cfg.time = time_stamp + + if args.mode == 'train': + writer = init_project(cfg) + train_provider = load_dataset(cfg) + model = build_model(cfg, writer) + optimizer = torch.optim.Adam(model.parameters(), lr=cfg.TRAIN.base_lr, betas=(0.9, 0.999), + eps=0.01, weight_decay=1e-6, amsgrad=True) + init_iters = 0 + loop(cfg, train_provider, model, optimizer, init_iters, writer) + writer.close() + else: + pass + print('***Done***') \ No newline at end of file diff --git a/legacy/Pretrain/pretrain_provider.py b/legacy/Pretrain/pretrain_provider.py new file mode 100644 index 0000000..a7c588a --- /dev/null +++ b/legacy/Pretrain/pretrain_provider.py @@ -0,0 +1,159 @@ +from __future__ import absolute_import +from __future__ import print_function +from __future__ import division + +import os +import sys +import time +import torch +import random +import numpy as np +from PIL import Image +from torch.utils.data import Dataset +from torch.utils.data import DataLoader +from skimage.feature import hog +from utils.augmentation import SimpleAugment as Filp +import imageio +from einops.layers.torch import Rearrange +from einops import repeat, rearrange + + +class Train(Dataset): + def __init__(self, cfg): + super(Train, self).__init__() + self.cfg = cfg + self.simple_aug = Filp() + self.crop_from_origin = [20, 128, 128] + self.dataset = [] + self.labels = [] + dataset_list = ['J0126-sbem', 'Kasthuri-atum', 'Hemi-brain-fib', 'CREMI-sstem', 'AxonEM[M]-sstem', + 'AxonEM[H]-atum', 'Mira-adwt', 'Fib-25-fib', 'Mira-scn', 'Mira-fish', 'MitoEM-atum', + 'Minnie-sstem', 'Zfish-sbfsem'] + + for sub_path in dataset_list: + self.folder_name = os.path.join(cfg.DATA.data_folder, sub_path) + file_num = len(os.listdir(self.folder_name)) + train_datasets = ['%d.tif' % i for i in range(file_num)] + for k in range(len(train_datasets)): + print('load ' + self.folder_name + train_datasets[k] + ' ...') + data = imageio.volread(os.path.join(self.folder_name, train_datasets[k])) + self.dataset.append(data[:]) + + def __getitem__(self, index): + + k = random.randint(0, len(self.dataset)) + used_data = self.dataset[k] + raw_data_shape = used_data.shape + + random_z = random.randint(0, raw_data_shape[0] - self.crop_from_origin[0]) + random_y = random.randint(0, raw_data_shape[1] - self.crop_from_origin[1]) + random_x = random.randint(0, raw_data_shape[2] - self.crop_from_origin[2]) + + imgs1 = used_data[random_z:random_z + self.crop_from_origin[0], \ + random_y:random_y + self.crop_from_origin[1], \ + random_x:random_x + self.crop_from_origin[2]].copy() + + [imgs1] = self.simple_aug([imgs1]) + noise = np.random.normal(loc=np.mean(imgs1), scale=np.std(imgs1), + size=(self.crop_from_origin[0], self.crop_from_origin[1], self.crop_from_origin[2])) + + imgs1 = imgs1.astype(np.float32) / 255.0 + noise = noise.astype(np.float32) / 255.0 + + # HOG feature + pixels_per_cell = (4, 4) + cells_per_block = (1, 1) + + hog_stack = [] + for slice in range(self.crop_from_origin[0]): + _, hog_image = hog(imgs1[slice], pixels_per_cell=pixels_per_cell, cells_per_block=cells_per_block, + visualize=True) + hog_stack.append(hog_image) + hog_stack = np.array(hog_stack) + + # Mask + mask = np.ones_like(imgs1) + z_bx = random.choice([2, 4, 5]) + x_y_bx = random.choice([4, 8, 16]) + mask_ratio = 0.5 + 0.2 * random.random() + + to_patch = Rearrange('b c (f pf) (h p1) (w p2) -> b (f h w) (p1 p2 pf c)', p1=x_y_bx, p2=x_y_bx, pf=z_bx) + to_img = Rearrange('b (f h w) (p1 p2 pf c) -> b c (f pf) (h p1) (w p2)', f=int(20 / z_bx), h=int(128 / x_y_bx), + w=int(128 / x_y_bx), p1=x_y_bx, p2=x_y_bx, pf=z_bx, c=1) + + patches = to_patch(torch.tensor(mask.reshape(1, 1, 20, 128, 128))) + patches = rearrange(patches, 'b p (h w d) -> b p h w d', h=x_y_bx, w=x_y_bx, d=z_bx) + random_dimensions = np.random.choice(int(20 / z_bx) * int(128 / x_y_bx) * int(128 / x_y_bx), size=int( + int(20 / z_bx) * int(128 / x_y_bx) * int(128 / x_y_bx) * mask_ratio), replace=False) + patches[:, random_dimensions, :, :, :] = 0 + + patches = rearrange(patches, 'b p h w d -> b p (h w d)', h=x_y_bx, w=x_y_bx, d=z_bx) + patches = to_img(patches) + mask = patches.numpy().squeeze() + + imgs_mask = mask * imgs1 + (1 - mask) * noise + + imgs1 = imgs1[np.newaxis, ...] + imgs1 = np.ascontiguousarray(imgs1, dtype=np.float32) + + imgs_mask = imgs_mask[np.newaxis, ...] + imgs_mask = np.ascontiguousarray(imgs_mask, dtype=np.float32) + + hog_stack = hog_stack[np.newaxis, ...] + hog_stack = np.ascontiguousarray(hog_stack, dtype=np.float32) + + return imgs_mask, imgs1, hog_stack + + def __len__(self): + return int(sys.maxsize) + + +class Provider(object): + def __init__(self, stage, cfg): + self.stage = stage + if self.stage == 'train': + self.data = Train(cfg) + self.batch_size = cfg.TRAIN.batch_size + self.num_workers = cfg.TRAIN.num_workers + elif self.stage == 'valid': + pass + else: + raise AttributeError('Stage must be train/valid') + self.is_cuda = cfg.TRAIN.if_cuda + self.data_iter = None + self.iteration = 0 + self.epoch = 1 + + def __len__(self): + return self.data.num_per_epoch + + def build(self): + if self.stage == 'train': + self.data_iter = iter( + DataLoader(dataset=self.data, batch_size=self.batch_size, num_workers=self.num_workers, + shuffle=False, drop_last=False, pin_memory=True)) + else: + self.data_iter = iter(DataLoader(dataset=self.data, batch_size=1, num_workers=0, + shuffle=False, drop_last=False, pin_memory=True)) + + def next(self): + if self.data_iter is None: + self.build() + try: + batch = next(self.data_iter) + self.iteration += 1 + if self.is_cuda: + batch[0] = batch[0].cuda() + batch[1] = batch[1].cuda() + batch[2] = batch[2].cuda() + return batch + except StopIteration: + self.epoch += 1 + self.build() + self.iteration += 1 + batch = next(self.data_iter) + if self.is_cuda: + batch[0] = batch[0].cuda() + batch[1] = batch[1].cuda() + batch[2] = batch[2].cuda() + return batch diff --git a/legacy/Pretrain/utils/__pycache__/aff_util.cpython-37.pyc b/legacy/Pretrain/utils/__pycache__/aff_util.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..643cb7b9ca56c7015c61570266fb1b9175ecf436 GIT binary patch literal 4493 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 VV1@ZsKr{yG8fQXwio_!KCKsg zuvKBcdHZ=T4lN9ZMI#~qjMC!fXKs%kHP4vppQ1Kdsv%q?OGRJ%y-O8shn8uij==DZ zIW8f#ZD7GNaF4@?g)P$%lb2r&(%diuA^Qi`a%hv;fWghhrw|r$aGqlUT*UFYSqQ+& z&9?I{qW35OGq$fg{y^v3x!Dw!;$>{O!4h@@jGLadlMxh_-=nEdp4!F-8*b6CCszw= z0{|0(3@pNHMeGQ=uwKe z{yxCv7XdE(&_iKMaEZ6)CorRa1#_=qrXVmAX22HUhSs*RUqvmprf~Puyx&yV~XZ}fLH-R8RS1B0%nJ-g9*rSf6!S|{d2UwOS1MA>n@4I z-BU=^Zy@=0rn=--&Yq|e2>BxsCLRex`ei%|-~~G>`EQ#h{c&z=lR!^wb%FKxO|l2> zF64s3ax5vV#t^h&HRgtNP?K$Hv2ApLyZxcd0RYqV=>Ul7-LbKq4jb4}i>J_*Og#|* zjcqje;z#bsgtAEd2xWsDj{Kc;8_^)p`X1b-@Ex?_7I7K6Ay{{oK z>QlxQ<8`e1#_sm`!q~>1O=DwRp1T(#+J_P1yL71AyJg*ekT$>+z90B?>i@9zGq(>O z2pfC?kR_J>=qy(LeeM1Csomd3y;%2mR-OfIjcm-_-c(vnWn(3R8nBZA@g&&xhWH2x z1#sTL4grK!oH}vh^jl@^^PZaODRp#=BA+%K_|x8!k`tmR)D3ik&6+ig0?z4IYxM3qm!NSnn9e!hsMJ^d zn$K8X^_&>!q13K6l0Wf%B(k>AUbsXYRUOH@*#{T{4e3-cg z-#d2lr(qwd-U#zc4Ikv*!zNEFXodsu&0{9Y{FoP_UAECI)w50Ev&!t7E* zHXc{%;Q&7bR@R{hu(If0^rkqw+FAz=bKsRfI)t zrl+GBFYz-n;7YwUUlB1i%rK}2pD^Itg_gUFV+9BHJj)=Kqw`91UM&^iqsOo@z~!#| zN>_e0wC2#y9Qv6S7Bbi6)W=kwUF%>jmA73 z6jjzyU)auCCfBKxlf8tuGIk6ja9ulOkb}ZMjPF{}yP6q1Wa4j~!WDzt$HD2wGl%er zm4jlTbgTpB0fu)KP3YU((H#g6+8Z?SgTJr3V)t#M2?H%-ky zDH<=gFxDEY4{zO6UdTt=)d6(n%`DAvyRL@eZ#G}(h@x|G!j6I|mr7^T_9K`2iAvTn)dl5EQMVmD^L;Q5fXc)Cv#f zvW4+nD)%9|Dinr?cMl&JJ~aH{;pO3T!%yc%atB!>wU_8mB^Dt106le|hZ&MPR4|9q KP&BNg=Kltx@q2&( literal 0 HcmV?d00001 diff --git a/legacy/Pretrain/utils/__pycache__/augmentation.cpython-38.pyc b/legacy/Pretrain/utils/__pycache__/augmentation.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f621fef4350483d3383290b3995963c14903124c GIT binary patch literal 22518 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 literal 0 HcmV?d00001 diff --git a/legacy/Pretrain/utils/__pycache__/augmentation.cpython-39.pyc b/legacy/Pretrain/utils/__pycache__/augmentation.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ee55fa92e134a331574b80beca33a1cb4617b6b5 GIT binary patch literal 22473 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 MTz48|HVbe42W&6GHUIzs literal 0 HcmV?d00001 diff --git a/legacy/Pretrain/utils/__pycache__/consistency_aug.cpython-38.pyc b/legacy/Pretrain/utils/__pycache__/consistency_aug.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..77d012c83fdad305c10e539711d31ee23a809d3b GIT binary patch literal 6560 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 literal 0 HcmV?d00001 diff --git a/legacy/Pretrain/utils/__pycache__/consistency_aug.cpython-39.pyc b/legacy/Pretrain/utils/__pycache__/consistency_aug.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..02bf66989613da58c40fea00e4226e39ca84b417 GIT binary patch literal 6566 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 fRw`Q zvwH7z^>@MMQNFqExE^OjoT`J(x3#5t=e&pIn||Os&8n(_Wnv(m-Ney`ecf{s(Y z+G${0JC}Wn0&8}B-*Hzwwy91a%Q<9u#d0G+pln_`4g18huA|eebUTeU_62pTHLmtJ zaOqO8f(Wa&&bF~soH`+4d8 zc;|U<{t)*JG}>6EkDX)K=7h1dI#)dxbwiL?dt`m|`CJYB4hDc%b`U!OoiyS$ z{Q%2oyP}AX&SkF9N*?X>ALk4YaNfDd-Hf&BFaW`iRm_k&dhmnNM2i{`lhJGX#2OZIHrMf( z(ZyVpD0tXo95VRrs)z9bR4YXDY9m;}v>HZ;k6TnR2&cvmDtNfz^PN?0K|jPn4-E~1 zySma09K6`0&H>F!ZBSiA26&^0V`X3ZEwP@&`l4cAs8j7Q#8VSn9a)}J(cv@Jbf-9; zUQmo!9@g=|tib#|HxeVF7p?h|=w1$nh*811b)*GsEjB6>@av5V_E{jH8XJQg&fJs^ zr+*!J(YfJ{u?ixb9F)mnF%g8~S%=$`GC8)|;?`lru3~A0ZQ_z8_izs}rU4_S4)ZbC zum?TfTtE*AX2Gi*(|=?_`!C#)=;L@V=@}X_JJF2Q zbXakffoDGxEu_%V$4EhMb(V-C+UloqL}-G=7tifrQ5EtC=WykjdICEHIlGM@7i*(l zHWpK{7uU8S#3DV*K~Cntr4IG^Yc`g=bCXGm^F;DWBp$$nj=WTaDSxFUKv8rYG>rPN z;2;Gc(IiMXiRee2n}FrJ7R6z99-8cb((mov?(t6hAj!AD%pl5Tm6hDEld7MxwZR z^(2jWOw151f=q0lO>)@z1p7~xCU9r6xtvA}*OJ*@EK+nCvxCdE%++u?H~X4}{e0U0cz;WpVyMK3M@C73y(6g8m7SW>c1hU zotzAFEhhVr4Eo>E_i$)3W2b$q-v1EM2muTE^hh3e;}%Am>nV9~Qj8?a|IXAb_8Vnllk;gG3Vq`iv4Ohk{_v+ zKYt!c;*)4^V`Pps4%W#e89xhA2y@S1YKlr;q7do{ zYe9Vj7b0YS4JY+~m|RDK6-3;;;nkw0M95@1i;KP&#Ivq{z^?xn$#@z38A2zA<~UNd zu`M3_R5AZ%$u8LM8;IZk0sm?80j6&&ET+6AKfDWJmyXYxEi2~-imK$1+OA2L& zJw#|0`Hb|_`Rv+mm@eEZy)jt(iVNW5lN_l3ysn2p#p-cfopbT+lsYCi+ApC;9zEWO zdO$?$9{je7^f-wE0pdaWxh*zkv^V~g*-qt`~yFSIYA51x-cr?%cj zMo?%!g+3So`Yev#CmKVceY-IfaD_zW@zxU{Z`qs(NKayOF>QzxHt|kj!Y7SbQx=nN z#m(u>l0>D7?v&tWTW?#h1d=ZRj}sttmLm*C3Q4fZ{347?wnGdQ7u0_T5k%5nImoNO z&V=@(NQi+CY)!L{;g|YR9+f3jWqdM)ipCrL8j&(Fh@T-ly$>TW%zc`X zvRrNfw!()|$W#L9^UF*OzvZHh{Aj^VO5Ohl D{pHiu literal 0 HcmV?d00001 diff --git a/legacy/Pretrain/utils/__pycache__/consistency_aug_perturbations.cpython-38.pyc b/legacy/Pretrain/utils/__pycache__/consistency_aug_perturbations.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fcfed710ce8da89dbf1e6b5b0fec8a80a70dafa6 GIT binary patch literal 21316 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 aM`ds2-IYpZva+jEtduL?UU{st^8WyM;d_Jt literal 0 HcmV?d00001 diff --git a/legacy/Pretrain/utils/__pycache__/consistency_aug_perturbations.cpython-39.pyc b/legacy/Pretrain/utils/__pycache__/consistency_aug_perturbations.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..81eb32b06ec1a606a4adc09b47621b274e53c8d1 GIT binary patch literal 21309 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 literal 0 HcmV?d00001 diff --git a/legacy/Pretrain/utils/__pycache__/consistency_aug_perturbations_sup.cpython-39.pyc b/legacy/Pretrain/utils/__pycache__/consistency_aug_perturbations_sup.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0bb1ec8901c3c0fb6c6f002f5380d60ac2528fc2 GIT binary patch literal 22121 zcmd6P36LDud0ux<&rHwk?CfB%00Ho7LJ)zWzy%4O0x4cNNYLUECZIT8QyL7Wdv|9s z7hm@P*ww7!5~#>Y#Kf*Ri7d-DAjwW(D|VvzkW;qHk&{?*>|Bm2c2`A_B}c5aQ;D6V zY{eyt`M&>k&$Y7SS zbhEfvlzbZbnZ+5&XOJ%~mL#7=e#hbt$vchN=FY{P&AG)nDd!ryn!6WwBcJ!CUNshP z@e1BF{`YuAZwCK+z306h-t4R9;=X0W+xZF8oAY*gyO(V57HPL&&+_8SftN9mw6~9ro_UJ@$L^-Vyx2 z?ODUS&%6Is!@J)W zQ_5wOk9m)w{Fs#QLHTj-T`0dx%I`q=3GYdipOo@pl%MjRM)_$e-;44y-f@(VOL-pU z6W&RbPfGa+%BQ?%QGQm+_o4ipcN*o>Qoi3a&l=_L+$1F|l+7r+RBwd73Xq*yu6Bc< zUTsx$9jflADZd)}mAdD*!g{z?301WfEVWg$8rIt_^te6l;Ww&5Sg&pEFjwt#8WS#b zn)RUCs4ut5R^%-EtxBWb@^x;h(Y}nK^YvzR*{@u#s!q+~eB%%E8T^jp7kmmyXk0UU z=5^CEFIvIu^Tr3wp0R3q7D}#^OfR+9P$zmMTEnwHl;Zz~NZd%5(6(XpOfQW-E4ok8 zmh|uU$)L|ihWiXg>-VwH=NjgeLci>F3u7AqxwEiIj@wKjQQ$aZ^G$puzhOnTR}HI?t-1~WhM{i36@T{KN1Cnh$ag(^ z{P`n`Yc>5ja=h*N!I3k{$HnzlrPU5D);pCKT7Gz>8`c}aky^VI)PvA()z&K2?sBE$ ztFWss2!?}7(Cy53)}mriZ+03!J2XKHJ8-*THxk2~HH(&G-Zu0rm})Otwny3r(Yh6B zp#`+1u4*(Mh!IC%9t-VjX#g{|YzjCvI?u$lcE6SgT#9Sc{aPEfALtp^GM?q7JljiO zw_}uK7St4GqTx=Es{#{Zpqy1D=J}jas^Pbybg)wG_)$7+tJ+FrFE#3&C<{D>PR@h)7dj>NRU4g&fJx^z5C+b#ucGGdh3OJYl@|BOB=+ z+HhTl|GSNiY|riim>W*dk@_6}QJ+twMlaX1=8Rs>OW$HJ_aUp7mzw;bhO(p=OQ~K) zS~G*zURG+dgPNt(N>-zS)E(v5ebo*ic`y1< z1dVnzeBfx5fr$6o&1gy!w}^o#jml-eJQdmX=5i3_THR))Qw_lhdHJh|lyX}B<%;fr z{*|`!d=;4&qwJNsS3z5pU5hi0v_Y@vwsr#*XUg6BIh=YZ5?n7hrQS+YuI z$#jyhb>EvuE%hK;Z^WWhXi^018Psl)5;h5l8p$^KjL^tuP#cm;%&X=`I>7FH6|C<}xFmo*nI)HfUr6o=6p$$uxh{@eZqAamqZ-wP4Rc3h_`k_)&?T*ImRI?gftkl}wRv1LOK#W(`qk^0s<<%2{RxoSNT(ShYsn=2)>DD2%+h~8^SUb=s z?LeuQzG}j_NCEZf>!xYEG8;PAa=jG9LMmZCA-YqT3@n&w0Mu8Vc0)5!mQUaZ;rgu$ zZ8u!02kuC_+k~dRtDM(Zp}>q%wM%43U%0Dqdg0v3mn!c*y>RmBm!fH1V*cdWb5Zf> zFjVymP(~+}YO5#%v&(OJqQ#=G^Xs(Z+6CUl+zQa zJm4*(V=RVkD1P$Z9{!-j3P77Wi}u&wKljtm{@(hlPr_({p*VsuT0mqz5y%~6La^F3 z%L6W``>&?}M+m-KXpm`aodN?wi}fIS_b>-L;JP`exfMNIccX6#m|MX(z&^}C<8hdI zlD99~j~gurZ5oA|RRlxt!Ofw}Rku~s)>f?Wg&8uOc(oyn6Q!E<7Lw|fXy-yZJWVTz z7Le}=pv$%fX(|Xkh(%miAxL4!#>VtGFlVZsSCK}TV)ekkgoy;RNN7nBpa<|Pz$UOw z^*+=p7s&_^N63B!trN)p(17ei3zle1?mY`2PJ@77h(V1IgOJ2hep(1;@W3F%!y z22iucgvFzp{2(mso~h;qayFPd-GT;yKA;_dau1pt`rd*Gm5HHftwJY5a5w@*60`-P z)P$IlyoRE6)=(APyqp^Xoakb^=~r9ILK{rY_65J8fj59#RufvbzEqK}HFO<o0^)N+KHjQDrZC7^9;m;x}zHVYuL;s9)Qw7veZAL8d1pBy2&6k7V6OC}+o^~_t0 zcam4Zt&iYeY*QFko(VETEl4J{pshkOUD?v&$gaV7hQA|^|wdbvz`Mb15N~mX_`75W9+<2nm38%WW^Y z^ab5!HwfJezWdN!+TNppJqI|`iBaE)B$^hF8+sh9rvmjH>TXzrcG!z43|n@FZ1zLE z&O8-O4Rn>SNt1>=Xf>?XF2Y^fg_1hMMDCOVE5rEoJK@R@k&ct59<%b0_fK(QOq#nv zoOzJsejt;|We#~DbsarM7WKNu_-`Owif2g zJG4oWf&Ep5@06}JV32D~Aa3z7_NLN|QecfJE&f@Q7S}AYYhACZ4zLTEL3NqXe2B8a zD_!45=gTOSXCiAk6jqGPXCm`>WS)r3=OXjFq70a_vW#(QaBD>yWtYPWjlO6)F$$%q zp60*^deoP~D33lJ2;F*Xd0ZCnh4_Yt4qss?iWJnU4gXg$KyV6)AxhZ>TNlC34$Pdq zF!-Fg&peFW-R9la9`hcw7FloYLwW#T2encoEsEM}L;%op>#HQf`DOy32Y>#W4dzON zxhUV^!NuO(A^7TGYLHD1f`I>dkZi7(ziOc-d(G+PgxMbsbE|nF3|dOrUKV5k^(N+| zV0cPp(=)DGl;4mi$X94c85OKWz^*VC%4v{i7eNa3gXkVP6_^C|uu_Q% za?iw^$O&09c2`aznCdr{)W^_Y{V)>fyIiGGL+CoFR5T!I9;qKf@^$=z3=#vN%9!h= z_*v$Y`;5>c?TS7veijAL8|+Kkfbi{UN$7vXdoHGfyAwNOxCJpJZFBT{!t$V{4jW(} zTv(=vEFj+GrRM0)(xFA)i-!7me4n%ytx$cjx`6$W5k(RION`n?90TCgbE0Je1waQZ zErKnMAFb~ZlR|=?eZ%7Zhwr=RsJ1Q0*y{aAV9!fzkMPuxy_>nmn4D#MR(+g#;e}kF zY84$wMf|@NM~&cH>0Dl8j-IJ{jTepC3&1fXOQTYG1C22)XG|CJr35p6M>4QM>75Zr4G!jdt@=CYb&@F;^^+^mKO~-Um^Lf9aiTnuXB~(JP`%_MY zOyZck(?W<_ScnwOPe93?u#hkg!bPt-U>q{gFyo{n`&7NrsZp{dALcm{f8z9v@&|cB z{R6bY-1{j0)D0%2^6| zpRC5M`V@y9kjel<1Ok>M6ATqn0+t$TM?QQweu5{EBpC9Ff+Mhp2)B%vC5}AD%i%vA zuS{m*mC39KJqJQ>Cd!>oJQIcvuDmWo8()4>ts*xPdZfT0aQPEWIf_#-F&DJ%VOTN# zN0cMDN3Vx@GefC`C)YHe$z4+2G z_jv3)y4rah>HN$~r=NZ9+``GTXXEbfG549iZ#jNNWIb>qvW}imKLu+Og$c<+P@2xhy|;Q1wqZBHbM|fg|ThtOYb0Q$_POs2zUSXZsX2 znL)|Iq@m;Z1$2qv`9J|($4alr1gNcIskyG5CLtHW5!fNMl5d=hO>aSpLm z7`e0Nwh^^Q3hs*rS|~m9nn44LizwGp$Z<^%!4vpWPeEL;BueU5gt?*atRBK5>X>J@ zEHAxbx8Sp_+6caY>u|*)SMB&58)j=3b&Sq7P=~-f>pXF;y^KWrEQlWR3H=1FaASpv zh}2fOh@yYY;!iWd17bZE_H-L2Szjh$DHU|DP4}Nck0=*&%+VA5>;oqfy#5?}IK(Tj z!piIlf}|^4$4HYYhBbyj_Gi)mI3c?a8AGhDyftgiS{dYNhtcINnCm+RxQ4^EXgsA&!{IPuA0g@& z*n7Y)4HTh7L|v4TkIZ$rNzHMWM12-*=Ll+!#Hi|Suo7K~eMr}L4glQ8?+A!V`h8RG zJPMSZb5O^rjDwac2HST>n18fg-`^!(ajgK-RWq7nuSTm1rwODSw>#pJ4J2 znb2$ym8?k60&2zksDH#{AWa53m=g3}&Vt52_6_Op8^u{C1NQ~Ks;i^YRX4Bi9Ji;xq$07b4av%Mo@0AdhbE&xa!?Tz4pzlSU-G@w;)iW zJndN>(?%W^ZJf_(JD1_@oHlfkO{B=br5u7h2;Sj>5FKk(0|y;N`WBk zlkq7Oba0k-8@vgSF#q9Ch>t>UMob&=a4xm1BFed%L0bxbFeBM8QMHc%VofYNQY^Gd zl~caJyfb9k^`9%sc3XAs7aDp%kG*3)rdKc+V~BwI>Zmn%_B{}gCGhe3?C`T|wS)nQ zbMZizz^PKX+36>HuiAv%*x!@l2}i}EtR1upNXa~L)bsej=~^;dWk z-ZJ?xpNfCtA$%)B99a4pZK8YuS8Ec?3aMcoDl3E*dg^7gC7}K{?Dv~YSUZW#E)yOO z8nw#{%VX!@K_*ifr{1Ts11Ka^MhYW!g;+_U+rFB{8oG!=(2%tN%K0Aj))UNV%K1Di z2D6mKFL{7r7eTHX$eBKwY;f)wjKFA9X?*4}jidw{>Nj{JVq$ypAW$z2kw-?c<}H#( zM#uxsk;o}}5X0VGHp(3Dh76DAC48~cZB|=bG*F)=uHe2CX+l^S7SZ!M7z2T2BbWLF zBPG~UAl?8Nxq`U2myuehbr14c$+NE$_eC5Wo&z?hNZ%>lmvmMxEJRqwZ&Yujl#6)` z5>z~bicR6U|H#}SCXXYzk=mqe*jz=T{mFqVlX7Y^kH5{mtcaMKV{(+mhmhRJ zY0CaBR>Z;;HdUj-tt`9^|&C3B3`=9hSf2?F<3qF!5S z5V#iOm3a}n1<8v5p3zvG%on7@zMXa+g)Mx+J&R%*OMD32v6s>q+ZW<`?kpkK;2-s} z>j-76GIIF<@;HqM5Mnln1c?#RUz-)VY|B%sck%J))T$?u+!&V7zsK6IF!`@czRct# z69G>~TNNUmM+cF(@FY3?_XslLkqo#;R&Fd4-#0S0W3CT?6|tr*k(JbcVe(Zb0$TyK0GNDr{VkCBjs#YJNeEs2J|E`4G5H#k0rALVeG+w_xhW|Q zKhRqwMtUpPMu?F$e@?_Wb(X9B2)|*g(CC&03pYu{KUo}|qz4A}fUTwGCa%zS`Z98{ z!>^d1L;}B(JQj8S`rOc5CgYoPqRny~zc>yFF(kocEQ)A<2I}3E8{+15-gkH+B2y+H z?Q=JqNP?$R+Y1an_Ae)6z@W1gYu+M`5Wl<0LWUEiU#MT{cC__Cy;dVyl23vn{=bE# z3mv9SYh?WauF)z^{Df+wvl9CWl1-wcf5>kCoyi0){yd*rn?ABqQIyFJ&^J6+qOOm= zr%)KvOA?Zq6PLG#C;{DE1X_~dih*TjpqLJE5@=BuF$he|yYZ*Qg6q#UF+7R!$gXy; z)T6XK)g+$%Ej|RT0;&%#`6Cw6e~=jc)&K$9(*Ys+>qB&qR;;OUWIz!m+Lx{bz~?%1iSu#T0I zwL#xO2=Xn&T5&cbs7wybvI%pQIYc(+HWWGd4FIzyq)6D}!+gRY!F?!95@GZYD%=*) z4`X9(3&!X`v^knv{wD^AU7Z*_L*crTOj>}Tryju;#A6T^x&pzJk8^}SX2QU%`V5o* z#pHi8nZR6MA}LYNCO(naex(;Q6b4L2xtM$sxqTcJlj5=JpP@nh3nmi;;n#Ra84l}M zgZpS67_n8z$ONw3hwf4mebw?9z5%wd>5!ke`4*N64|yrXTJ4RL#9C$Fs_dP74slf& zlyR&TLBG-XE8|o*u+8|VIO$I#!KMU~Ta@dQ+KsIGdA15*M}t<_cchPvRP;qVlH%av zk+_~xzr>Nofb+Ac<9V6b%4EniKN3J)pGm+qDRfFw?7ONOTG%g?())$5)~vU7pU~UB z8RVq-4T#O*ALl0kkH+Jh6iPRYO?8ZXLnO&8{J?K-u)0G_C||)Mp5PZi_IH7mx9p4=@qbO$}nP@a?%h zUPP$+27A20hP$nl6w% z2b8<`-D9rr9Y=egzYuVg$LjO14uX)AVXGl1Yuw0>#d@P`rQ)?~Sp24|FckD9=_yWV z`=Boc^%qHKm&sJqz5@oDIzIGh)O?x>nkB~~noAL_y z&*CsB4~7maH$*BHl(kHjzpgN>tugkeR6R zKK~b|@&xiYOMpY0*2YxGeTmzsFyLcK@Ucz17%Q(FBl0=Cp?Mew9K|f`SSz*775H-?h2Z8H#eKx6f zD4T#}Q_gBVMBHg!I*mG|vKy$~sC3%(7EX(Gsx|HrI&}Vg*u@d3^XIus=lprJoj+e5 z-4%2KhYqQBaTX!G?E5Xfv8df}WvIZ#(}<@VzcV0yzW&A}nTs2LF14@tjljh=&%uEQ zJzI9rv&ZH^tf_99n(Uh1GP$#u8n#gbHvXl$h65fXepo%jcv##J@Z^~~xbWODiX~V;iojeRBwR-Oo$+3gm(TxZmOG zJRcoA@`QWe04T8aV=Qhn!_zIihN0?_v*fiJeDrF|P55N=OR1fMG z8ve-aI(5J1U&czit0zA!O|+;HDH%UzK&)ZEZ(|L&8Q%g(iGrIw$SH&0F8P=rK-DFh zFW18rtl46Qc*{u@lW=QrEtY)@_+0xkUs7WB1y9?k;9L$og-Yg(lIe~&x=2+#889d4*AjE46l5;8aSYXmf zfR7uS72ZE&L_7NT5GsZsR(R)-p=O!vWHQHO7ZV8vPVid1zKJqb#CE+5eC^qI7mf}F z#+rJv^Fk!i0zZylj3`)h$$|;?udKhO&xnDx>z==--yk=uB9(!?fB*Grj zb1`&eSB2D}K6e$SR*wghQe1qIhr%-vB6O~$B1#3_rhrA!9Z&+L0W>&C0ZF{*5ET%U zSmr@-dGSecl(~n@Dq2+0uJ}DbqrG|ror`vZOTni7%}j>pPLSjG8_uk}zu`?gwSId7 z#EIjKggr6lAnZv#7~Af8^YH4&IVBE(P4A`TrpdX2k^2yEwEP5fpFn0byxKL@qqNhp z8ba&{PM3yqI5LMYs_c2;t}1gC$NR7!hMQKg+0|n>4Ib4h_f$Gw_B9J9K-0+y5RCn! z921*cQ^Vw520+a=zzBoKwk1CAfgKH`@sDp!i-xi-r^u#@Y?+k_pjz=AJU>Ec+rHv)WEWc z93DBP8}_3WRCft~(KMuNfcH&Rz^h$fj;vv)GD2|@Toy)U$TLcT@zp-^t#~nv?yA4W zbEA*gvJXQn#+S%RE^QFY-#*4lE(oIVWjD7i^Kg*%d)EBYckI7px;mI6A~jD8OBmxCrBO4>k9z;Upm5{v$zd zNNBt}0sC-zHiF?#=)E_44cY9DvsE5K+}9kQ4+M`xCgbQXPH`ibky;!U_ENXvZn8Y^ zux$E`-=(n0Xz((AhVkY0Q_!qJ=8Qh;Gcp4Jkj$fuHXvmU0q^(-Skg?C3b(uhM54dHOmHW0C@wZocymW) z9y_c@KtCa@Hj9z_s|*tRlin=2ntB=N02=V>1&ULmfO(z} zfGXrBRe3D~1Zo!fjP%p_EbJK`w7)W3_sRtzi)RZyrfVTuaUKCzIv!rOvy2sp*30OT zLyupIdq7z09();(^f-nddGz?w_!v;hdW=0=ul1w_$47B@oD$zRerFFSfWdLYFIG*0N#>VeZ?YXiptzuJB_qF|wCyta zT_!Xrwc#r!FnYvWcNwHx{^OOee&5f1{r8`c?dYn5s&YZEo!!B)4lohc zmA9gSpboO%AtdElZ6W?DYNO1G&o@m(>C1I5#G9<>Kvd#9d`~aVTNm$-tcyn@^GalO zknJ4Biw){QC4RY)d4X?(YhRXQ+Lw>&gVT7!4i%0+{x&OB#w5N#MtUAIFw6sB9y+We6{&`NBIu?`6I0X^murrA={GH-oygTDPI`867lzZ7cg{D;&nV`2|@u<8m zM!yVBaQ6f3A(CvTyeV(K)tXFYN2gZ8G@-CR|ICfTdUhTCEPEostvV+<6>JSUB$b1Q2Ni??%F7-})#% z2oJ|*^%uv&Q_d{DyYoACPvvLw)A>UFmOOG!*(sKGmF_CNvs5Zgmu|;5Un-U!D?ME5 F{68{*7`6Za literal 0 HcmV?d00001 diff --git a/legacy/Pretrain/utils/__pycache__/coordinate.cpython-37.pyc b/legacy/Pretrain/utils/__pycache__/coordinate.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8c44cea5e724d05bdfc4db59c93a536540b1988c GIT binary patch literal 5543 zcmeHL-EI>{6rS0&Q(fT7g>0qS|bBCeAkNU1w%Y zh-+?eB)IJxz-3>d&(J5>+g|k*kSg_@@xNm?RgBlj;K@T$O!6_Ff_{vrc?S9v&+>8T(|m$YLZ9Jh_!RV6 zKF!ZUKh9_PIp`<&EI$wZ zWSJ?y3`R3o`g*4tpk;IGjd*oV1tGh zCqG(y2@s|mIU3u5aL$UY{8CJx{Y2y#NWQ&a*on%bP}_0C(t%gF%_F^X(<|Isy0udH zN(une51lYlyMD!a7z$meYClkguCMczgSXkWz*pLf%9ZtLvn>{v_*1uoK#gnSE5{;YE1=GZ7)#8tShB^-~|4zfQQI9ju*H}IgYVkra(mE zPMv^TrJ*4-ODzkQpE+I~ZH0{8Q-rLM#87XGf2+~$cxqQ~mE*R2kp zk{h*x=Y}i_g9D7qJrR#Zl9_l9VLj^ky>?@yz%~BfZiAuAO&#U>ynf(w|G69_I6Z0dt9wbimPOgWf?W4@DiGbp+~i4wYTN2IJBI z!ty=%t%b0}csQ^u;%js-!GFi$YbGAS*KCLih->l+l6k|DtFVJD*unNIi1@IB7j&Yz zvtb9DauIhh{MXsRMl$t%8f2g7q$vp#P*$evot&XFJgKv&Zw~GkknOI2Iw#8^HvebBL6%9thW5LsmLDSX*#G>b0? z3nN^bn~Kx$X784Tb$ zmE{69m$CT-ns~Bx4 sQPZmDs(lhCq g<{5+COg5%+N1?91=ExL2>9yu#tmEO034Lkn56^k5`~Uy| literal 0 HcmV?d00001 diff --git a/legacy/Pretrain/utils/__pycache__/coordinate.cpython-38.pyc b/legacy/Pretrain/utils/__pycache__/coordinate.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..64755b6889224b61794a8982bc0cffd373a9181d GIT binary patch literal 5280 zcmds5-EI>{6rNeHosE<56GBMo-xLbPA=pWwsuYE&5GtffL`b1jvZyv2&m`Gqz3a@3 z39-x#i3GQO1GtRTC+IWu3HG*EeFaoO&lx-R+OY$Xq84?not<6JIdkTG-<)%He;gUf z5;*St_J{cWG$DWDP4cke<~ummC(v-hX+VnPF5wnW?Gm06bSG7`I9(z+`!5(l7E9PB zk5uzUtwTqUBIN`nimB&hl^Q)x(dIT!?~-DgXZQeIGu+{Wa2?=TJ_J{X5AzYY4)PQH zBwVxn6h95uAwJ5_z;&39@w0Fpc}{FnJOS2>$JvD_lH3nHExavC$St;BBZAysb-nSxv%{woMNiF zqNP_dH%3pn8fd=~_$99~fcuYqWrlhyDhjGvu*Y6d6;sR$ISa*_8JA}d)_ujirV)`* z1@o;&vdolU2BVoLeZ5{5+Ak@#1zlEZEl*7`kzdQt&Kfyfj#~FBg56|o7hJjW^%T24 z#ct$stx=DoCn9i_U+W$^Gd;z=nPM}EvCUCN@nk~qBD>i&4am-b@cu+4D?tYAr{P3S z7)EKLX`Sp?FReOoi(9*-PVbN%`pNcUTV7k(%dw@Zzqun=*f z3iqV|O#RReBemgI+3w{sZyYdSx-uD+YS5;u}9-U*DVE} zQm$(jA#p-E1kEs<3L8SR)S_U--}al@=s^=Y{E5EBSr_0m#)JRB^-Dw|Jm|SVgfOkG zM6lYJ5q)Q-jcx9i)mfB86@=DKCT7F`4orng%~Ye%(feonjVg*J*PJQ*|{SdZ1| z5J99L5=u7V+O*o3xo1fvSxmids|V-SL@1tAAVXXtPeYrhq zkdmiBv|GDD55y)=cLo|l9f0Bh5HRFey>kI(0`Ht}?S%36PU!Lvq6(2no&k|A^ChCm z;7qs$h}`KGknQOfIgSeZIK>Ekj+*;A#SG~gDhy?AgD|d1(;Z8VYDgbD^ce(>m#J4o z+qmmDEHw$wEqt!iJjLx@qBC`j2v&BU;1gKdoBiTKDO$xL>DBoHN@*RJ*z zSY=|f>IDqgEZ16EXP1c zOjmlrHVJ>30ASl0h(8blFa~u&$9Yfa_6FiCUx94~6$6RW5u{DoWfq1q@UZJ%M$^!A0+Gog*4qrV-rCj#Yz?P-YZ!rl zg9SHQpzdez1mu0GFnzex@$zA!FCXN2aAudg&E~ysEAL+EIB5kNfoq8*m=s}*=S=2WU=QAh|Airc5Yi$6Vb=r0Z?8gh>*wF#Ji7tKz zfM9t~06Q`Y=4ABrbyRpTJ=Ez7a)^1D93ao3T!Ut&(7^O?2lchHCd8O;J1btStlN3C zQK;%|s6{U+7DgHh=1L`!TJXIg`6=rE44Zav!7R~8uncwGKh;M)Wj zNe6?wk24867vtakJaP|=MOhIEP(5g{QOnivuB^mpAX8)b+y}2qehxKEc zS=&9FrHg6lLzrfSJ~*byDOg5F964eQa|k~Da@GoZ?f`vq?HB@YPg+*Re@LNqG%-mb zc@3WQC&f_0Vi#o(CB}H~rT+iOasKGBMfW7fWQWIA1M?l^cmm8JHueiJwIi})*mc_` zZ@!Zr=lU!*cQSV1E!8Uv*NwA~@FHFfun+q2t)%%6q(UB*;DZ5vCTQf@bJ)YzUwILm zFR{6b4Zfqu0ybFc#UstH4J8pk#gV8tM{o%42a~8xL5FXD4z-=(K_}%5z%L8GGtQ_p iYR2SJ@+%x~l0DWY32m)#9XoT4Ma<)e3G-ROvHk&eV}hOl literal 0 HcmV?d00001 diff --git a/legacy/Pretrain/utils/__pycache__/coordinate.cpython-39.pyc b/legacy/Pretrain/utils/__pycache__/coordinate.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..81e5204b01a703ef81c13e8632d278abb2f7b0b3 GIT binary patch literal 5255 zcmds5UvCpf5Z^tYor{wY2qC2O-!>G4L$H%VRVfNlAyi06L`XqYvZyW>?Q_J&bY|_?XU7giirT7Y-QJyVXLfdeznz&qZ)7A( z;JE+m@8Y*Jg#3XI$-{<+@8MLRLBk2B0V$HZgj+ndM|eum-Bi)ybcN*XKcNR%E@7KI zQq2do2{(ciDJLjVOuZ!Q)aY@FHn(|tj}+59!w2A+;SL{!>j2O4A-Fnxn2*49ke}kC zaLw}5{0v-&_!vJ6*I_=+&%t%%C9z5I6j(D6XP2T#azFI6@U|%-x7g~cu2urEy2_$; z=7(Br2&wW}2FI-+h_)5en}V%Jc<+ZBOa!7VLVa!9SAsK>L-zFL{j)+<)pT)74v3QBc)_J@taBm|&>#zeo3)yxMii*^wbO!`HlSiyphA{s7_#rv>h&~wCIVOaweGHSvoq}588(;b+w5f&PbUN~vYTDQfb1Ly9}HBo5@f*pG@Qr@ z!zfKOt&?5rwN(dhachs%=^e65-&lZQYPkfswGI?UI9c(z2SD=e?Ls-!g&*%O-76G#N{yqi6mg*n z52OH0{m=~~^~A5Z_d}rzRqY3=&~|ygvJ+<)0$=G;RIV(JqDc-k8QXf7d7rgvm)ow- zyKX49T{piFL?tg!i*R!wm`lZJRRyRe&MqEkb_IJ=r9c(4o|N8>8~9JeK8*)mw-k6v zxvrUn!~x|HG{bNzYzWO#i-Hk<+3#v&hfV14C;ApgU4qjX5B>w!uMmmwpyvV+!mzdy z!Fppv^qmGH5!m9j1(7cEC8EjT zOt=Mz-02pO?dcXdfeQOL#Rz?gn)^D%bmt9i%wz{h0#V}s+SR@S z>r8A_y?_DRMTkMZlk-U47J>8d01#b%Y(1yXt!BWQssnK$a81=|-8$c&&M8A@ISx8v zy4DM}X?SGe%yUywstLS#lY!sz>2kOpCiiMGe;ZcKDoXjvChSck1ESi1am4J=Ve~z$k^R0M;n+7hDz6DR8WUl%2_;h`MPW}L0 z!R`~G>k;N5U8SKwD`c5q_z2BQlJ)J}!Pe`eX(}(Fa)ymj-oZ38xBECs7t_*5FwF@4 z=a?q1!ZbQU$T3TmBk<{$tk%$Thv<`QhY#2!X;~HjB84{5#3Y5}4E)od6hjG%U6ehN z7!$px`u`)xh2zH--IE;C9UfZ`%;%1i2{1?4*e}4;j>(Q;*KM1;^+9@^?=#ulXzajd z)GG_ujkA#OB3=#f9`xhpqxl9>A&*M%T>!rZG*aw&yu)3t#F{`}#0Iws@)|a{ACU!U z;*sV@g^~!M*hrLvBiIGkgV_O?S`IgP4z-=(K_}%5z%L8Gv(A_^X8Pn(60844p2xBz Vp{*6JV`rf;iADVWV7?wW*569~dFKEC literal 0 HcmV?d00001 diff --git a/legacy/Pretrain/utils/__pycache__/flow_display.cpython-37.pyc b/legacy/Pretrain/utils/__pycache__/flow_display.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..283e0f0fd06281c05991825db69936f638c539c0 GIT binary patch literal 3931 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 D{a3L# literal 0 HcmV?d00001 diff --git a/legacy/Pretrain/utils/__pycache__/flow_display.cpython-38.pyc b/legacy/Pretrain/utils/__pycache__/flow_display.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..195d59c5243a98514f50e8f298cd68b62a730f11 GIT binary patch literal 3948 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 literal 0 HcmV?d00001 diff --git a/legacy/Pretrain/utils/__pycache__/flow_display.cpython-39.pyc b/legacy/Pretrain/utils/__pycache__/flow_display.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9923fd12be37e14dffbef5eaddc12fa0ad0b99f6 GIT binary patch literal 3948 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 literal 0 HcmV?d00001 diff --git a/legacy/Pretrain/utils/__pycache__/flow_synthesis.cpython-39.pyc b/legacy/Pretrain/utils/__pycache__/flow_synthesis.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8482fcbbe1984345ec00f75919265f6899472a62 GIT binary patch literal 2996 zcmZ`*&2J+~6|bu9w%cyUabi2p*Cg!h?1yJ}V{Q02MFZ0CwP+ZP1QJqfp|_JNJH58s zp6U)0kJ_gU5(ie=3kNtQoIv8rfq#J0iX##&Zi|2%xgjp_d)1zh$qd!1SMR-g@71fS zSMPPWv{Yqi4}SZZ`g4=9&xyF+Dj>dwo*W9sB$Ir^{9@!jH?;7D87<$&C`Qh>nKkglv?T#?&yN!Fine^oW*@=$y# z^p9l2Z=tuKUuU24AO6wrC~>|nt8(>1_#1?)4cY84*#f<3=9;n%eCry%t+v$m zQ0Tv0=RN*|+LBGI#5F7Usx6!A47#@@Q?~}f--$nh%$kw8vyf>$mr=J=+sGV1rekEj zebbI=E$pnntSuR7tL=pk&u;22eAtB#+Y29l{jwF~!)|;4nZk$9ZrWM+up9qBA9kVf z1-UM3*!gR!p?1{nnfOrnxBb`EDzw|`wt8J{s7>|SS@}cDzvI8*zo|TR=ZyPrVSEGQ z+sgj9tKL#?4}@&WjZcJsSC!7+QFkx+`MYvcy{9^7{Cp2L!*N$z9d^Mvd;BxWzsI__ zE-CsRc6si6Fb)T*EApyTaiW6$X!0cYl4+&1Amfs6und8`!PePaWI_rA!*)tIm%_{euCq*RvAG3F;?W3=7U|fa?7o1r z*27BI-$&oiJvcrgUOLe^ALjhVS=D4U=QG1D zK%F?1{z-gf)<)W330Y>m#`P-3OFH&TN-Tf>o5TcD6e}h9QJLl*E z-OBg{?&w0$$q&SZn3rFeMX*S4C2q^ix>@<$zF_l8=9;mZiL8PxRdIt>ho#PW33qHY zVT}R}cj{%{c{#(@`{IJnJy>@$4_NIATY~jk=1D%Z516zUI6ELeD@L|1dA5|*GkeG( zAr?5KAyG9F%U4(n%}d!z zR?2J>jV)kx?6-w0T!p3843I1VYk*(JN{w|~GUl7$EiZV>3m)XNT8mDlnbkbV&D%IH zZc^B)r6=+G@~x(Pp7#*1IuNXl-U&*;1b#SLvZi6}p7jzod6~`5!dObuyhzRd*#9 z@ie#b*j4VS(`gvXKt|&vFNHdc2P!Z3M`4<(7^x;qk8?YDtkb-#RdO6oRbG9n^d!NX z9ID(350ktyiB&;sdTzNLreU00Nd#~-Npi<1kkv_;esRCMotKVPG&oLk=Sd{f<7)|^ zN?9f_+`QVKjN}4$WRwKMyfn~}3{Ds0%y*`6!R`W_q^TJW z!Tp>0%cM@4>EL9Nj{q3o!RO+;E$Y0Auf}V_K$j?&X!iY{t83TK-9(&T2|C}#gxhc)GX z6KiYKx)wfE!L_M@?!kB>Pe$q<{Qx9%l@vYnQJgdoJvMh;*RFn}ijr(w fb>fz3&gFGPOaoDJ4GNU*S941>$Zy(Yd6oYcT8Y^$ literal 0 HcmV?d00001 diff --git a/legacy/Pretrain/utils/__pycache__/image_warp.cpython-37.pyc b/legacy/Pretrain/utils/__pycache__/image_warp.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..02e44dc289210afc7c77eb622f2cea6a5ca376c2 GIT binary patch literal 2334 zcma)6&2!sC6xXgk>^P2_Hg4*ErQ0THnl|4J9VP<|rNf~IIvwET(lN4kZL6^*Bgu`O zSzRbx7?|mw&>Z0};lP!PuAK5OaDe`HCA%#QGf4CH?R#(EZ{L^n$=qDY!1LFO-^6jn zF#b@&TWh>Xef&jCJP}HseuRY6Uh3Hb6+jO_ z(GSpal9LQM(^_urV>@4xYE;N8@C1bDw{JS%Z>L}cI>V~aa4$hSly@|uwprKR}{ zFC?XyzOtpki?Yz6Cp4MWGT}u|wOoem$npt!RX{$)6Ozn9GXp9~`-DhKI#r`X;91G_ z3ZW#e6T;0C%1vo&oHM!AmS=cTotKXGnwN8V{R(Z0`kbB0rk2miiadM4NEYP0JO^F{ zPFXI$%2-ukY*rNr7f+hk(}2NIEd~%q{aN^S-F@;bY4ev0eV|r$f8MVvL@kQ zHE_p8N%_nneM!Sbc~LGvb4kw1ONj3BOX4$FOR$>ZJvpros(M9Uc_)*rQ#s3I3HQyS z9#?Ay)}@+J1xMYkz0u31T*s77UVZ1>^-MQCb3-n06R|DJs^%-Om*sL^nPn}l_vp?aqZ^%tO zZxwY;ZsMygyT22|cr3zp5cVVHvZmWQJaR+MunbtxX0Fe?zS|LO7QU;qiz4!I(W4VdMpVNvrOMo#;UC)B&%5z&w92j5D|`=5w$A;ob(j%Yu;Y zZ?Gp%fYE5WajW}ugLQ@1>BbxE$m4Mr##Yz$ebI}aK85Gx9D?I)VqtD5STKljzuVhj zT(sR`54S~ZHw#fkp#nb8D`IWMK^WzM{I4kX-nkselk28g_5&_dp0NlALC;meFs0jK zYwDjUqIgZEyEgeru4&KDMLZ1sw~D2TFZcnAL)VW~Yf$T~3+RYyLFD$ablrhqZlpDD z*H(j`TKM0dQnjGP#-mg9KR#al65go1@KvK!gS|fM52Khh1)FvwR34{)<4Fs7+@V5R zC#mI*ylDMQYN`IEwvHjC{y-f(Qns{mKaNAMIgG`pVHkvI0cop9QybNX?6^@pRwBxD zcQ3VKuP2~HsvVKeiqQaFZ2&w+Jc2Xys znbg)ZQ=gfRNm`uDNZszcqsAy>1ZdVY)n}S+BpS*swbZs=(2DU+-S+sX;nruf zK4(|XPiCTVq-Q?@_z}QCM=q!dYJoWPyU_1W;C3^(X2x0><8}Jb1vNqNddO2JyXe6ZaO`eOSS-&JSa+P=$!cz?6Cy|=Tszx_BAm^{yK_(62&4H}>MBHkXNPtmrX z!iIv{8jRD@8&OSH^dlCdY>^UP3-1+DBM$au>}&bHLL6G8MN%Y|IZx)zb7qY!ks8Hb zX=#O2z$-Xip=DaaxiTryin3cZQpNk`Tp3pVYCPr5NEJTt0CJgz_YluI$!6C~ZT*)D e%TQ{IuEbl*doZNM4=_{1p7=<81Cg5gB7F@x&w@h$ literal 0 HcmV?d00001 diff --git a/legacy/Pretrain/utils/__pycache__/image_warp.cpython-38.pyc b/legacy/Pretrain/utils/__pycache__/image_warp.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6250ba86184e2f4ebbebdb90e0da7ff008e2a8d1 GIT binary patch literal 2341 zcma)6$!^<580HK~NtR{Bi4{lLoJnlQapEOTiZnSfW&t ziY#Mz>2fJrAde6qTl7JC=(U%*_T*RSrTu0|DNc(5B{B2QzkTy>dGd^vF35R# z3bY2Cid>LoSvs`S1;f?A&48;(S2{H-J#8W=AiC4w7W12DI$X$6Rizcnh zx`cnt!X0NNIHe>l}s*9`7Dzq z+&7DQT&!Ezm+Dpx6m`4wQZAQr8PhU(@fEwvnQUrvMJ{j~u`SD*p)1f=+Bvz2Iob@*L5gnx(gVyEq`b&ye}r{t z$xSnFRc$9X@#R+h--%^C5>dM!^2CUy^e#nBJ-w|vW2VsXLyMhfO z!Gl&JIBR$NqpdQ-6ApWWF?%MWIOvCEBYHRL#P`fe8w9<3EC>g~B!k;xArE?Q-P&Nc zSwCX0ZLr6WfzfFCNo)7X2HO=uXE)hkqkt#7P_}mcFcjVR$rE@^><}Dh6Akkt!TN&) z_xs%q#zos7c5z$GcCrw46guF0W=E{8q#wn3Apa|hTd!OW#n$wHQN+obPIqncqg*qdAB$udg~y7ei!b;+mPCFS>(-#wSr^a|-GbQfVcYcw zg88wL9IvebJ#z5BJ)(L;i>-%8`k#ET`YF6oc@gSH=>`Wq)*HqNYYH~)Mx;HC{=%b* zdEAjkS|`f!_k(!-gmQHMlxt#8G#qHdk=Ci|yGarS&0!+mkD`90ibz{Ws$5hbe8G>C zv1U=G+qaaH1YH3kQtb#eEA|KIY6IZ0a$4O0!0}f@Ar9a$gvZ_WEk$v&qg$yQU0i+k zJF1Y)jB?G)cr(*6QKiX@D7WYDH}*3!R?dNl`d%^UH2{!!Ga52Gmh+>I*B$g@_!K%( zz#HR?9V@c0$XL<+n~IKaDhKiIcynfY8~t`W7D?>QH2qjKw3~AD(JLAO%-w+RH+*k4 z>vMMH{A4B?BQyIkz(*b(j}#sGSWSA9bCFIf!oR8nw~*zWrTb5fsX~R2k?5p zRUy0VCo8&xPX77cb}vk}KmXwVhuhw`l|9?{QO$V!Q6w;ULD&fU@m?@!d=!dgdx$p0 z+hzzG8fj}VR^^wh9tu=4 zDb89-tE38Ag>{uyXc=}DQl?d{cj}~u_oZD0TJst_?afFHKJWl?g+_M~&pOFQ*H*6i gNktV1jm8w>*!DUUs`MsCYSrWuoLtmnQ1MByL761SM literal 0 HcmV?d00001 diff --git a/legacy/Pretrain/utils/__pycache__/image_warp.cpython-39.pyc b/legacy/Pretrain/utils/__pycache__/image_warp.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c5f8bf128a0c8d354fe2589ab603867c146b385a GIT binary patch literal 2341 zcma)6OK%%R9N(FJ*l`>uZQRs-rPC&9nl_K7g@VFElnS9DQB{D1w52j@&)C_zxls*y}7xPf#e912+X zv7+yx;UqDo@zmh-fQBwk1D8?3dz9C-|iO6e4Qk0ga zGrW+LV*0|C1~1A&n~rHRt9inUoNB%d-jU@oc~L+<#W6|dAeq4`NqbDBC7r6#Ch)A} za)nTm)|hZ}Ot~p-jWeHXZ8^`2%3eC!YeCNC^((X}>T_z!o0>l@EArG?BUzLS@-%1_ zIAysgOR_jNlSR!{!OeiHN?Tf0BRQiZa1h-Ya7+2kvvMhq=!}l&EabL4n?;k2e4!w{wY<<>iF)v_#*J}$li2R_<;(fvTq2PWq z7M!&@y~FJi!xId;{SkX6!pQFhB`vxawxd0LQU-o^kNH7=5NB}PEZ~0ko!gu24(o;N zwN3W;F)->4FK+HX*<|~|Z|}#O?9k`&K9tRUF9<{@dh!IG6FUUQ*+j#3afjqfxnq{}gg~~G)VZYb$R4`1* zw%NM+FN!E$SLv=#ew6Fl^Aiyd!r(-)RPhDhV{zyOk!lTUopk{nQ7wqPF1CHIFPIl; z$;sMk&|?e#+heLWwAgrftp3SIYoEazl^20(lxncwW!*s(vxZ>PZiLF?_%A$ZA&)y$ zNE;-zyrCa$%%_&>Uux?ZQX2G?;i1x{m3wg<`i(&>J_y5Jm==(>iZr!ReejMK#UsU{ zOm}XlR_u2Kgh;h5(pfR=qpNj*N2%59_yCT+8VGR&hXFj^+}KVjZnjh_Q%e6oO&$&9#m*BjP{85yP4kqCQk!SB`q5W6!9GCP*?ql(w=_oDhRb=slN z>!XYvrDT|rQA&rmQaZYoT8MYoozv4>@3mTyh$DBV;YFgZ+)_&&-GUat-1hmf?zyvB zpR+3$CNoh#)UzJ}{1D(+haOe~tBJ)S--Ud40=JvNHC&C_%m{bs0}rc#1+NF(b+XHT zGQ!u<$v@xU=?3x6=O5nxXvZBjvuEc%su}G(3Iztw59&cLI`I4Tj{_0!4A7=%M-O3L zA#L|ZY3U`ahAa93n^Cq%39p6sBB>Dv=Q7T<{9GXpEz%+>63bj53+8FFMwUs9;;f{! zLMosYSXXG7mS9&VC0bE>t46ALU)q(S)vv}=-i%b?0}mjVY4`@>*&x~InyIaSQehcF btJy06&==|71`L9m literal 0 HcmV?d00001 diff --git a/legacy/Pretrain/utils/__pycache__/post_lmc.cpython-37.pyc b/legacy/Pretrain/utils/__pycache__/post_lmc.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..288a170473943626c3d464aac3c9961133ed5b8d GIT binary patch literal 2988 zcmb7GO^@3|820!haqJ|!-EGTmKer#WY=K=URXOk}sNjOCN<~7lK$bT%Nu2s4j3;e( z<(w$Tp1E$1{1*;A&y@q}U*H1IJ4v>?(9+^4&%879+8)n5&olEyrxRGXIzRj(@{VQw zPL;*wAov{rYJ*u8w>ZnJh@rGIJ9i?NQJaIExD%-4AMI>+P%*~R=)bSb|aT}D0R?MGJh zChzbr$}4<@FY{xMSag-MyVmCFGn%*Cn@q1HJQ*v&W0@2@7E+cHt!wuanI97z^1L;JLuHzH)Zc$59?+wtgO|*|4aOXW&eIWVPyMZPor02Ww*e zj4|{vwrLAJ0eaXId*04Wd!WKmyKdD1MiM-BkQeTEkk`W3gt(`RI7Hm8+gPXY_A{E6 zXEa^9F-Z$`^9Ic+SG!{&scV2guBV^P1M724YfBBKsD@?6by%f?Jc%nIc=hZrT<8u2 zABeb0_e7=L9ifuVC2bdD-OQ7RX+FtyuqR|$#aVh!Xb;2~ps0q)SZMn}rO)uRQc2Mh zu|i)(+;~m|?e#^XDjoL9d<>3&R|CDis3iSrlbkRs5cf}JLRO{iQJ8IkrXkJ zF%!i=4Yi&3^v3fyjb*u$?4(($Qc=aK1l=mU?_@s7R0`I`_k=9c!4MD0(n6m_{z&vx zT$EhIhM?xIar#hzmL2V4OqK2)ygn^3Y~4Cwwr-S25K6N>?L4UVbOW;#r(8SqWzAV< zr9CqYxq`LO;h}fwb|nV6D3p=Uua?|K#-AT;56fI^?_rdK-QM=~_paZF=L6mT`qnqM z?{43b0^gh#+t5)~ZIAJhahCVC#=F{IRNla&s*3=N`Rq9BG8edp*k^4PururwYRib* zOumn-9?^)dF8;48G22MYo=XfOn7T${&Jl@uMq+ji(H)XlW7@16wF_wh>n2JUb;#_H z#2iS>{|||gkXp45iM9SAvA{@-M0!+Wp^;cnhcE_`7$gUY`E@|DG7|IaHsVg*F%pv@ zrbD&~$a^-Kr1^QNy5th|E)yK1blWVtT%~wP9;fyb1Sbh-iR2o=I>9M|(*$P-&Jvs> zI8U%aaDjjpb+aokQA`h(mkHh^xI%E1;4Okpf@=hC6TCw}B$V$GY!MLSX7C;&9WLk- zXG6O2bs2OWxqsk~>*;3)RHA7+pwe%sJa_96xiyGmoY^(bY{Qx1)rXwf9eG$aaa9Zdug5w z#8wV}OM8_$3Fze`rw}Rn=9HkD_scX!EjlH#{?=h5-8%5+8OO~xlEk9*f2A&VhR9z; zMs6?2T+FNX7m*R`3o zNpYhvr=@7gv~3M!G9GTxKI56t2t9HOYOzaf-YU(7^v#{4awki7bkodkTG9y(8zMH9 zo~SB}RJM>N=>To^0!eZ<>vYH;j8hns@ITH=KFP$VbjGO2MrcoIvz7U8w#Up`W-+0U M-DcVLSN+w$0o-lXtpET3 literal 0 HcmV?d00001 diff --git a/legacy/Pretrain/utils/__pycache__/post_lmc.cpython-38.pyc b/legacy/Pretrain/utils/__pycache__/post_lmc.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8fd6c2efa57392fc0cf8cf661e271e925cc6e04a GIT binary patch literal 2818 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 literal 0 HcmV?d00001 diff --git a/legacy/Pretrain/utils/__pycache__/post_waterz.cpython-37.pyc b/legacy/Pretrain/utils/__pycache__/post_waterz.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d3fb279ba71b027fff5b305892ec065b24eabdcb GIT binary patch literal 2959 zcmaJ@OLH5?5uTZSV(}0oQzEIzHmg!nj6{|cMY4ThM8yv|IfQvgPO7$?pw^fHuq3bx z&CZrc*5YD0hg3!XfjlNZz`w)i^+i=Vq;&H!l~cZ+1tD68EDAk6Grf&L_t#&~huv<( z@RYZ|9saG$*uQ9U_Bc=;;9L9!LNdvxEN(^~b2}HYgHcS~nHPJUNk_V0vDlaE(wD(k zJPza~*_It>q3p^Y_FD3ST*Da2%krXp13PWWAF=+%OZ*1g>+?FuWI9X6YRG8?kGK4O zgt0IX6+2;u?~7Buzr6X#ZSCb_KZuu!4?7*ekCflA4u_BEF8?k{g#O;{){)0 zj{Dp>fxrFWlvhs0cNiqwVhdM#m0L0C9SE$sIH14xk`9CedeR)t)k8X}R`Y2xRNC&e zYdQ-@}N(E2lFCb?`(U*r$^o!ToV$z16G z=5=I~HkhUdN>fCd{JwX$_7K*ws#{}a28B|xpd?LllN50@w9zjnN^1Jey1SYW(vhh> zg2)H`sCJXlsEFJ2`k*;Re5owdVCkqyBDskJvK$;90fcI9CUtA16N{8WZ_zLCW1QNa zqLr1i=0FxDjkruUt<@ zt1qDLF%D!}m?Rsj6(IXP{X=@iV$91a)U{ir0NYhswn+1qM3OW}1L-ul+=fN$YcNHc z)t;^EIz0P@W+OT5_v-MAyv$^xkMtGtNjQnS7Hen5wLekmcmhN|O{JN{J-ZA3NQr-d z%oUafN9QMp`W^E4V-hz=+$GGr)IjlA z+{1@NMCcKG3!MYhba&xZ=oEk$D2&>e3@thN1klPQiUEuRj4tL**a`iSkd!fQYT$ek;DBrlXtZ+rZ6L*=nj= zTbvDUKsZ2GIcqROF}9$Jub$<1U;v$BlKbX3s8@ZxVvkVgv~qy{gSL;hed4}q``{c8&7Rrj???xUb}>VO&C=rr zl7)2#X{3e^kZi$c-`%q{+cbtIWrz_Krf!kAK!O-hw@DBU>JEvYL7-YxH+g_jz*v@bF}jZHAek^s+0NTG5*Vq?R&RxY(E<2TKzGZmYCnU_ul>c zOJKj)eMw!Q?^yW6YX$6ZRT+%RY)CW`uK|ujtqj<0fE!V{yf(SZHZ#RBYTttVIBqB7 z@id<)jq6L_vq+77TPw0brzl4H7x*8qhqit0*7F(m3u;pgY~rG!34D57e~gtre~gn_ zx~4mU{;6HlyEJt4hqSZ}QG1}i`O%V}i(v}gULWY5)RZ9cnkH1+lv(HJ4rMcM+itis a%VjxL_vx}|vrZLZ=`MktKry*UhacQDHyl0%U* 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 b-B}^4X?h2)YT`~=VF@padeN1z8?OBinkuu4 literal 0 HcmV?d00001 diff --git a/legacy/Pretrain/utils/__pycache__/seg_util.cpython-37.pyc b/legacy/Pretrain/utils/__pycache__/seg_util.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c8e5a42ec8efe5e5159ef30e4ba409c386dfc921 GIT binary patch literal 5686 zcmb7I&2t<_6`$_;+|}yCvXV&7*H#ioUXw_%WDKZ8f`b#1Km_HO1ePSrczbp=yR$Q! zo>^NGvsDywxVb8oGgU}OZty>F3>Qu?#f<}{TaHvJeEeR|>{ym!Q_R-(y#9DS-S79_ z>-YNA>FKJ5=imFEdGQmP_IIjG9v#GY@Q;6kLTG{oT9e_;13u83I-@o{Fa~DR99T^Y zbwikUw5Bbd6Si>fu%;s_qKcM^m=ZO-tKz(v5wqx-63>e{aRyXPEQ_;Z0o1g3L_CU7 zGvYC^i1(~m66bs-9`A7Rgm@Ao=EPItY4n^C7sNB-S+vXx_KwzQ9ASmpR)b~Lb`-S+ zZX*4i2G3@0`k^a#Tb_(!KMJ$iqAvWvP0-M0#D~Wy{@=wrehWpS9k5h8WMh`_lpW}Y z+CCHPF>TBft!Jb>)q1AjcllUH-Ae3~?PGl2mg*_n)KF?m8WyK-9noj7I8!9ML$Bdv zJRD}$DD*!Xd718qNv03noy^>$bxI3^Gs~53*hO#Pg$*OC#a?&dg^5~qrjL9978Lft z9S;4l`#Vj}gYAo}tJ~4QTix3R^KN@}T|~*{7u&0AFRfi({gLz%>H1+SjN-mOY`qQgTE5oH4qR2 zgp@*jfjJ9-xGXjFj~urb7;ak;wTW;c0Fi{Rhtt$ZQ&` z9?7uPjz(b;OC?D&GvjS{=+RmgA#HqF(mFE34=;&^nd#V5(@eH8BIEI%oJD7okJ?I3 zd2yD;*Q7UyZh5VE;0D1NwB&nc7OS#(+VhiWYm+I^LvQ+)+U|281j{ugWs6$M4@f)o zL-sf{2eferjlp*KmLxefOtsF;XnTGDgk#c%%m+;VfNw?K{>mU*>!O8#)~hEi99!D%Ki>UMy+;%uXU#N_V%RX9k3OsY&Hp6BZXHt;D?e4CzyO5ZzYw|25JAKbZV`C1aZs;HLRIUVZCI7P%NG7@KhUY@j!=C@k3HIV{E2| z;AgcImU>ou3<^f?J{wz5J8MZ(yEam@q)qx_0xsA(R~TBr(}o(`=y5Qcmf9clC7Q9I zI#AeNk+Z^;g!fc6mf1ZPao_eG0U!p~##86u1j`GgG>^yg*J<*VEKx z!Y{0^W!9}Yaohcj-N??kF-gH)DRr zdYSEuoxbM{Gn-t@n*zQj+>Rn~Ql~0|zG`0+w1k+V>?GOwF*4#6Sz9S(kXBSswHiu zc1aVGW@4o#VSJA46fHfVHLjqilG;GFQevD_)}*ZitLars4uv$hYH9U;wB<6y(3n1f zw!DB=*+7w*3ch=2%Zt?YH7Z`9;zcS}P&B6GD$y@dafymG6dBu->r}a{Dt-BNs$8Ms z8&uF)aLmU|U|kn9WlYwr**UC$me&bb1??J>o9O$;pFX4K%U4Q2Lhg(H$~J!uB7rsS zGgu*`lMkmLxq03*1Y3fYrFu>+!0LqF;pjDmfzy&sPFRu9KjwMaf#Vlsr@GM427k0k zhl2&&^(l?4tLy^`AH!RzemjM4g>~6m>O@fTJ|bt=VCwvokAlvfuA{c3R5r(h^i_GZ zV?rl+H_WD!8_~{gb8bSl_6B}9iZ3-CWf?oWd(GK`nsj}o%x4QzS{E%h^yBDNd?B7e zp>c;f>;jn-t8@7ZT1r!*)2(!YcTgcQC#=W!c|4cszoHNWBJOi}QMJRdb>NQ1TKI*kckAod>Pnke6bdWyWvu&%{Co}#sm;;9aGG!JJ*ij+ zqd2MG^iJ`^iB~^wwE72b|`X3H*+g*7uf)Q7I2M<`0t@*a zEb{@fpNwzVk`y#I5Zar(M#XDXyiUdUP{6j{Ao_%NDTJALVH`;p1M+i233CC0R07RK zNs)DCsIbSNlStOlPzF~Nzm-nrb=U$NGX*Jd3lwO>t+2iopG!Ej6wVu3O_IF$2@4mC zI_doD6oTF33coD+O!N(frRMmsm;*sTs>2R&sBdcFpNo+WM*bc_zd_jxtOGGBXk;*; z5hC==9t994!inj-a8o7!rv?8E_&--Xvx*v*oKV7f3|Wm)y8Q&%zc z3-yj41fHnh_LJ>;JoMUr$4B*+8;rboMX_I%-FQP$G?`-Cs9&X^Ft6mJs87u$H|oDw zCbX9~mI?0Vas7huI_@Y)8s#iBnx1kbBF^RUgS!y|k%vf@U#KsuwJmR)?>uCD*B!;N z?}ju!h}tw7RNQt0EbF11NYFZw9OR6*3&w4~yZt}-khux}9+$x93NDeaQ=xE7kmRB^ z>RZa2{{Ns%j=b-~eB=*MWI9BcITJx;rV`Uu=1fG983PXqB8I95xl$sE+UKtzyw@Qo zq*x>(g!=v-l9WOg)O9;EXgdvEz6W;s6Dod;0@)aCJWQ0|-&^!UeAgF+D%432>OVUl zf6%BNJBO8ieG^XZ6d&;uA6y>z5E&_sJVH|R z1Naa#D?VgB;G;OJ{8IjH;-i?Fa;QG?BYfLJ4}M)$9)EWc>tZLA{UE!+8co{U*xq>~ zL7d%#Q(l6Lxu$(^W$YvsioB11j}APzC?-s}I7Hv~_ibt){qsEpAqQ3DofW}Sio4;= zvAPNzmX$|!bb71PoeqUOq~=)#+3={1D*+GDLgGnvBN8J_CNSi^*iPk8)+kS+4B>Y= z@>>{@88@RSpll1bE0Rufq~peznyb z<*`T`D>dzJsH9weN{B$O@B?ziyGy#q6X1q;9M>y7mE+(rx{iE@4ok|W7~*icgn@oh zWKA;v=r22WaD#>M0;nlWFCuqFmW!ap0xxvr1TPN2g7@ZoT8Ja}^lHjgkseJ}_0V;s zbXNlGOStpf9xi`QLZQe)h4l?5$C}_&sj?JAsmz&D8-=R$Kq0E3O9$CS(KJQWS`%`c z8hk1?P-J>C7@k6H;L84+x%c`52F2%4Xu84bYz7`;hA#lCc{Yzs82*CE0KIU+kK`{} zJ!x-(U^9o;div(<&_v@`FVnSarl|1VI-8t?!B literal 0 HcmV?d00001 diff --git a/legacy/Pretrain/utils/__pycache__/seg_util.cpython-38.pyc b/legacy/Pretrain/utils/__pycache__/seg_util.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..12c2db70ecb3e66e9e846ed01cc24720c43c796a GIT binary patch literal 5708 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 literal 0 HcmV?d00001 diff --git a/legacy/Pretrain/utils/__pycache__/seg_util.cpython-39.pyc b/legacy/Pretrain/utils/__pycache__/seg_util.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e373f41959210b328c89ddaa947241f9cd4082cb GIT binary patch literal 5677 zcmb7I&2t<_6`$_;+|}yCvJy+q*O1te*CY~_LI7bBhd5t`2+A=DED2lV?b+4r&c~)_ z)|SL<6@?QHRJkg}nJOf1uHpdy11BnQ;Kp1zP`c%u3I)H{v%A(uY>L_1H~sZ`y5H}; z*YCAAJzdrCT>HbPe)_nk{gWz(A03q|_@}=G5t?A3)?j$^kVkq$XVj*LMr1b3$ZA-q z8^ZiZYuMtPu!ZvxYdE4Js%WW*DN)0_D$a`;F^irl@vN8=r%B}SylDL>1)kP3`85&xQ_(qR`H~nA5KfMN$X?rZ!_SukSJZF3Q zzIKNRc19cWOzRps&$X^8_+38KQMWQXXLm5ZY|HhWUDiOgB@GMIHxKAj_gGBSxNhJIW(idyP-B0tX5$_srE2(W@;QBuEi(BC+71Lri-U|G69oro z4haed32GVdLKcDx{VsnW5*r%A$kDn73Mm;m>p@cc95N%R^L>KV+&uUXo*Te*8Y>^j zxYg%Jf$cjX*98+_1GqAJM( zjju^RN^behH1fjm6k5uCGmBN(Jnj2Qw6(}0#t)SVCbi{rCog$bONy>FV1RMf%)Fc7iDgblJ>WO)eGHSNv>1&& z&g8RrE6E%&NrIA;P|5huC>%0L4eMr8STmUrtpq-PcL=gfW%s_l}h^*%5oZ{a3Uyk2QU|=^ltf~oS`n4x=gr< z^|ivfm1bV6SFjt!DK9072Ax4NNEIA~)eeLHK-4RRB|Q-g(!wSsL%Cqv1=}fDP_S-c z2V%SD`~AWukMov*>xs9LL>$+xO4L*BYl4=T&Vy)rl`Y^m#}{E4XZZytzlGK#$W5VP zVjZ8OLUJ5A(~~GY2)W}38<>Th1>vc`uMf?kHMC1Cb8CdCeGFL#XgVWgf$OAf<@TgZ zSeluYn}qUNvRJfqf!DBto=R>5+sXvxvSf|h+OVB&b;6;r23IYwmUzo$Y`;Ez3};zK ztGozOm?_yH(gN&F=xvT(Qy4fl=?I1W2>oMT(l*?`APd!nhBkPk%XCCo zz+0cv$gU=Rkp9Q;RjS|4;a%aY>`iqp$O~A~0l7L!zC)fNqMWXyHl>ucM59JsuF~ffg~N(`8S6eEKVO1FKpgxVr~2mZ6N)t& zq?vouKf#X>sT!m~3||+w{POs*V^KOeBNjna*s*`x+YZVDNuI^bMeRD`gCO!>lQNMA zw+#BmaTBPuw)|GFi9;0!<`2M@J_@4oIbH=4RmRIhpF4bpNs0tdphEjm>K~)HL$eTotIg^njGe1rf>0v0sm^Dd4B<1?GU@6lG*EC?g)|8eRA(oGO}_ zz6;MZ;s4Eue+K-YDV|xyk8gs1PVv*ZVstH>LpJzN9pS$|;-ByFPncXA&2SoD9nWB+ zT+U#B=?rt3BNob89)(AS`RXv(N4$SPm{k|gbrnUAELEA3o3vdOJU{2QgD~`kdppRs z+_dkvf_8xFEiWAS>55{1MRw8+Rieoh+lKoJMS*3d97TOQ0$+SfyI2^jN+{y*G&bh{*lr9P?2XVrr^$0OL|R z-?f<;USlVs(J!0eI1&L-erDsZj({u5Q&Du=MTD|PmjQ@J z)FlD=2zaKu$fZUx4em@-v_sL0ei_R(v>Wz(;Y_ z`AK)WI$b6}8L{db@D*wM9)VY`hcPwSrWQd^MmK)S$+)R>?(ktAq zNIJ@qhbR4=dbOcf?Dv#5Upq{x%Kw@R1wCk#p{ znACIw{$K{aVTR8Gnt5crPm`x$GC^;hNeUbBB4r)Fc&Vu`Q4=pwte-}1P0n3y0{3{W zpue+{_C1;U>Tad6ST<2m>vjBMb*Wdx`k5LI^~54rQKytbA?J2 zs!EEpl*cOdh*o-Nx5_uF8!zW_l!!s-zXbPHDkUl3obF6jZAW*E>TGqPI_=Cmr{A$M&w*yW5#@ zV@G2NDUAeDL8wA~1Fa=qka$46@Gn$|7bG6gJn+I(UJ*|S2)}dg&g^=GUepB45 z?TQ_P`wjG)vDvW_Gcjr!q+ZjcxniIVFZ)w{$J+W`>?Fob@tpSkU+>skzrq#Pz|~tj zPGZye#5u0*xQUyHbu0WCX1WRAIbXx;JrSEjFVPbB1nw=3bu;|Ex*Ga43eV&9YN|!r zHErCQc!`C(n7E5AjpKO2ns!T19By&OEi3vJ?X@4is=fBgt6E}Vqnv9YZOv_q1lLIE zv~M!r9t5}V&{ZL|qP6BANX?CAyq21+pxsTam2STor+ROYS~r5QAEnl2yB9x^T4A%d z8l*lqHoEQgAT>6cTdCcQXvqaXwb~o2mt<=6HaAkc)$eX@^im`2Ur)`beIrO6bT^va zZYtWT=wNhD23x6t*57F1eR!aMJ-N8n-v}0Otl>`Et;I{SA76f~wYYR)>GI;sVGxJS zcCXRvN9*lDosv%g!f~_Z1edmdhXtQR&-Xp$;R_$ZahDN@!ZIbr#I7h-kdTXT4QV&77WA7%;h~9 z#t&c^FOLkvR)!IhIfN#}f(U8LLWk;pNQWr&NYIfA3nYppN+il8DkQ2T<{>cW2-RyO zj*>V=;y8(WNSq*XlEl3vPLUvOD?yq{T~b`5-wSA1L}IMGQxnQ##hpR#Y{mTrJs*(b zew-^Vf#P1z71wzWimQ&!`1@Cyb%4@7Dt&pGz8aswmMewfoT<|`sjw=YvSa!-j zDup?$uxGDc$<>uR$9?L0kkmzPfPQqs$ulsnz6~IWwV_A^A!|n;8oS!i+yzmPV%OMl z(Pt&DG87F{OS>pImjP!0Q!wy#m%N zV7)?O95A}bql-Mch|xuiMjP%{ObYqkN{J=4b?@gQT;?~iabF>=Tl&hLdyn3z%xji; z%`(<3V@+xkiSw@WDm<^k^D3BE!929#St?06f0in@_(>_LuHvnDH|BctSu4hk+G2lL zNal9Muo#y*xx)I(}uDv=)@TM7Fc%`j{dCO2OXQXMqH95Bh~^xM6Kd7wWAN2%TJ4K`zNjBax|=+^x~ z7|6zQf3qi3ztwE51r3^2ciStCXg%l#bxRd$AlFlmcm=OhpW~u2=r&uy+Mp|gkXT0p zPj^ubQ@1J8jEP%~#w^u&DRqbO7l?wN%#fYzT&f>UD4HE9QFs>Ez%(U=t$;A@hx18jv>qu$57wZ zc0gmLzOIL7L3AycoYgxc1qh@i#kzI{ES~G2pI5ZlR3p^k>x|d1(PLw-9a|ln$S2GY z>>mf!iJhUFI50ym_B(}P5l7LQGQ*5rd=ZbAv5T{)PZ(M$e3&{PA@L{)@;Bib63jC` zMKw0vPg9KmCVY$p?Pj??k6tF;>3AF#?*;k+YAE43TJQ?9zv-eD>Wp9 zVx3Y@60Ngl!;7?{%Lf)GH}#d%XrMk*zhy={3_`eo19=0pM;rz0U+ETX1*cJ?n1HqW z9NhtTgySGKOh4kkxsI;@`etZU0pa-ci2XWd-R2s_>0E}b;6y>E0KiPLW=X4X=V+Ud z(4w_sQXq?!pl!t74#1YK5Q<6{V5@W8;5vY0!a6*zdt@DG*Xa$|YCNuI?FK#dsGaKE z9wVS-YjP>z#p!n`42BIEfHATw7odgspJEgSC~pry6{hT}I0C4v*wyeU2sW`g3WQ*a~NaRKsK2Mjk(9UOX$eikz7&Bre zY<}P%$c^lgnfYbDkxlUHnD>bZlHcCvNk2v=SR^vvSnIDcq5rsgB4Q=o;fBXp^{U144>#C=d@s}v>pTGIFCm-#4ZV`TfMuS3Ym(vR9pv7SuTt48|ZHl z>7pM|@tlA?jF5on3o-;_x&;+awag%3P{Q6>CL@xfWHtv(F&*s>kCG8}+OJS4h}PW{ z>iPEfXLyPLfyvkY5z@<7@Q^{-Z%!lXh!xxep25#o@c+*WKu1PWA0-jO0(KGKA((WU zXfx4PMCqU`p``3j8KsA^f_L!~pYt%DEZ`_sxuuwt5S*x%Ic_N@mAqx1TdK)iGSB%D zns+3o!1D+&x)hf?m0=afs5nJ6OYf6vGW{GKor%D8?l8E{T$8N$(1f!#MK~40f0>rZ zVZLq?d2HMmmD{6oYYhK&m!c(Npmkr3ov3e5)VG+WewLR19Em4L%%Tld_Sd}DAPP2R z|8E!>QDB{M*J<|pjG%uw%?O?OW@BZvs6_XtLpk%zZ?7;H;w26jnY&V9+&=*#P|-{W@}-9oK%-~JB*q@ zB<%alw9ny^1Gcm$k^{~}a)9c_D5xhiARq1#Dxmb?X*nyO`0%v&tPf9HptRv0w59ao z-WE`xsTP~x#Dv8V`I-GDvuRP5<{)&&7jLAj=uPO#!IRL_Q*sRHEUw#la)mf9C%a0x zrnF_5-vqdVJbU&ggg#zUU}O>eZdFcLRN(=#jJhNJDHJJ;P~=0-RZPT$?BB}? literal 0 HcmV?d00001 diff --git a/legacy/Pretrain/utils/__pycache__/show.cpython-38.pyc b/legacy/Pretrain/utils/__pycache__/show.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a708051423e4cb0a31136f1e376e60618871c101 GIT binary patch literal 7950 zcmd^E&2t=A5uZ2TGy5rd<6tMToy0aQAC^Co5WoZ{aR`A#1d?!A0$ZznBWYKw-SwLh zwp^o=<0_zvDk=rJQMKZx3s?RD4moh(JV!XGiW8OMkc;_szx|ekWe6vBYy0)|`D4&rekwK`^-Ik1Q@-nX ze$ag}u?InFr2Z+~S6Umk`h&h2gft4z5_BtCBHfBHk)}cF;4U`q;!5jrJYB`OZ>Ang zyoqGhyl&ij|JK{710{LOiqx|25MhqYya%1hWV;{jKfqNrmpSozqaS7VW+Pe8>}J&J zWX@`**GMw6+s~Z4k?O^nv(@S*FJ_Kvbl0LRWMRG2+K4i1vvDVL8!;`p7iLatbM2bU ztnSuk<~Dnst<7#`sow3(j$3!5%tLp*(dlHOm5DY+cV%=Zvmo6w)LA^xr_V2~_co)Y zyX&~qc5~_K<*U!t`>NNDn#t1ZH{V=-XX#zlXmy`k+DclTcqv}*-M-Y{#`0iXED)ao zG0afdVo`+RjL7rX7bnd{v1nGrWuczNh@)NRFX;WxU1rr}gWEF>lTJBI_fUuV`JBVh z{E0I-aE4&yB9G(@wOh;V46b$tMJ}LhBBU%u`(!Uv0r9kNRE|iVNP$R^NQp?9$O4fQ zL@GqcV49o*m-%FadaoOu##KyYVuvTE?7%j77QIK?;Lqs&jBRjd$_DL6ut9maMgJ@P z?>UF-{~5gJp}Gu4x~zX0L$osC&f2M`m02c-zVLsgOm&{LcBJY&R^6+wT^}oM91RXA z?jk9UHo@q#2*$&Y!Q&%D&BPdpR1kc$&4IOR4D4OtpcK2-j*mVk^`*6If_GE@o*-G< zONsiD_b|8spb)H?gq7IUVT#$O01eW-Z%(heljHSryj~9L<*;5ZwT>8_=h1l{oyX`r zMni_X<5C`-aYE?w9agM3nG7YC)(mR@R{ zG68Y}rT}nbquXWe$)FcoHOly13tqBSs4y`6v)(xn{51Y$Q<^KSj69f>qVqY$(+r z7;5}1%1j`p-Df;)_gdZRB7hEqH`B3WPQZFOZ9HXF_Ls7|wL zervTJZ$zD_=IBNbWIhWBLV2Cq0yp)3r_qeo`yCl60@ym9?us6!Z&RchQ@0w9xmx3; z^c^N+^j(HyuHlh+!TDHUfPPxtR(GvVyX`HgA-)7+2-;%4C>yi{=7y=xBcF5NbWZo2 z6v&kvDK?DjNK=_drghy&Y&}A6zxHGe7dmaqD1C`Y`docMoNcc@6H;Bw(^2r%Hkr%L_gP}2DxPdIm7oka6 zlFvNMauf0yLr{J&HpIucIA92IK&_^ZTvLih%1x;?5@~AyV<6qtoB#)-AqH9ZO=(kf z(sY%Qa+osZ2+Rg`nRnTsPAat7*sxw=!F))@VLn%SFrUxn^QX*bOC;qpaU>Wf$&~2q z|Kq`f2m5W}J_7epYf^@kdGW2SC_+NaW<7>Q1GcClfMJ7D<{fXaS=EcQqR(3udo~Mo zxTu3a)VM`PIt zz(Q$DNjZa4Fau7xIj71G!D$&P;H=J(lVrNBW*l zP#deO@h>nu{vrs)68eU4wbQ7)iij!r!udu&azbBJgnAF7k9NTBXW@XyaW7MvL-#_t zk0?Y=Gv$t&A3G(v9!h=0DVjxBI4Zy_a-*YXSv<=c&YE>ui(QuCX~tzKQX(1-U3ucN z;BYSuXWr0d`5=OzYV5N9*kv`01xYXnQ*zl{l5ZCVMS$i}Fvgxa>y*{fkxr@Jh8?v- z9@7`q4`{|5NQE57I1lqOTd}x`j2=!z1HwmIfAIe_FkaZDR6a{?L zQxkxKiRUDTKo*QJJIm&MtwGG?_>dJ4V>lj#XbD1d&?1f}8K!N>Y{>FxJ+uY1R4W(J253uo zmoN>vY7Jx#Td~ZNd|E&*rzHz4DW;{dWRWH1bRk{jYLe!iNGM4^fk;W4J@yF>`2)jJ?Hm*BR3ci3(Z+dC7~ zuKAQp5@y#zJ$8!Up5pH?uG0yLdWp!lh}X7L^I_?LWavyjEU5tPa=^*JO4iFuc$N+n&O(<#6NkeL{nln{`zr2rv;K3z6 zFRfZSYh%YC$eAQ@pXTU-KuD6a5uq;xdS~RT=S>ekcQ0AUoO)ee|YcVBn++u@O3j=Amzqm~F~; zpuuq;4qxB5d-3WEvuD;txB7%^aPV%s?ldtISG}&&)|&21*+aL7B|qZ*q8!Gph0kYVofY z%5{1Zy7KTO^z?KvfKr}$7f-I?!{!ro*YYngoGlL8`A7?rHCv4LWFXFYah69+ABgFA|&&xdh@-rcpZX-1T&g?)%8BQ z`>FU)9tLh0ws~#g9IT{&3DP{z4by9}5>(@QXhJk%km4qpDj`6?|=0EwpCK-gK&t zFr+2z_l>G69qFR=q$ho}z6@lDHjvNAoXo#3s-ZkBi?ReRC(CjUeR+9C9+3->6y#a? zh&&3eD4&&&%E!Q!9O+aDLE!A+dWwYNY-#+*eu~w)&mE>V-54&l0p3v_!fK#z>k5se`-NxQi>T zNAYwE#yvCjSmKQ&tLA0n#=AGJrw%sBTT-+wdkzuiNa4HKGnw4(Mtk>hRmo*eyk74{ znY~$0)-!u0YP2$EwbiL7nc41U&Yehg;>_7B?N*b+rF<$T7 zJlDOAyMS@APJ9ByFhgOBc@c^eBF|r695v^~ytyFG3-uI69Bes%MDJ&}oK=(cZco@v zI%YTRnRfH@DZ8QhBb#tw6T!ez9?B-FHBQUAxU;lzbO;8Yc`zP+978^Y^GuAMNCicarrEQ0jGn!Nz$nFzwe6$N zNquSUnBd*izbi=A^ira}!sV%+KIBM*eI|5+DK#cSI=ZRw6uFW28&jhbXz~N6jIC6D}e0Kd-BmUGs zbN+dGuG?O#l-a#yu8O)50-i1FNjKljxfuublNNR zBx>WQ=$2Wqsydr>rRo%h>OYGz6M@t2a#(G48tuwF;vELZncHZ0w-Q9vR(&~YRl}}| zWNo>#)s|VfQeRn*YBa0rH&$!$M%0R`j&Afo=CgnzDX&wV%+w<*$$v0L@WT&(g^`VONp`Y!!3m+;8E;IywVa6oRf*J^ay-oiG-K$?aj=!p5E zj8J==I8AXCiqm|}6xS4v)yuSf`KtgL@wIlMI^EkVq`$$34(9MMet?VqL4-l#AeuYI zHb9#+H%xUJu+D+eIqg$Y05UmJY#5h;TbT#ox@;u29-)t4bF_ww9v5@n#A&(&w_u3C zyEv*|;`RL0gCPb<*v$3vIE>DeAr1oTD|kE|SS!SR0i;q;Um~71MlBK{ccUos>F9ca zIJVl0#9botWg=f8@;pezS6@W~Yl5YyuaWrcAl0CSEvsz;9jO;d_zfagh)l)gqZ4`} zD_}tjLt~2J22heOLX%LE&pg!fD&!N2Abc=X#K*YUrwFlcTTSh`#x@$rn-DhewAF($ zfO<72z(Hy7LDoG}+T@)yT_tP|Ri^BLS)nfTE-TbYg;pCY)=Mm?511V4bEOCM`K&&F zOntTlHlOe#K_4p<(AoRz{rmU#n#6qw?t$7Qgp_&ljjbpGE@rhJLZbm|R8fFog%SXd zH(0Ie1zOSPqlz<|h1y-zz|T}}ks}=j0UP5e-ofnnF%VKJeW6%89V!#2av5fVlLU1l^bII0l@tm`4%rxm0-aTx z(lx9EMI+1f5N7ELNtg5yW=-ZT<`F{13?pDZAj5#%q&HxL378+qEqdy{oOqTeNZr_w zd`j(b>U~Q0U_KTC7@3rhaD_~lAUTJoU?Mc-rc5f|4^2zhRdtQXw}`w(cIvFcuy{bZHuigbCbGSgC8JIl7-|% zS~bez)SEQ!J1o^h4zxTCPwT6z@h>nuCO|eYx)7#z9C=p}9wiUcqc54CFBXLQA;ukS zdhO4{^bTWKrZoG8g=`<*hs0BO`tVOQi>^>9z$`MLgJ)Sh%j(aXG**j^ zmBZ46v66>`7wjAH$XLPQUOJ3t0s_W3BHpN3)q52-pmq3ch(4as~WM5T9;>)H(oB z*r~X>^uuw6Ads&0a8RKmUI{a^wVVl=iSl(edoKqxpuKsiAg;2(RMM^;k=&sPux4(Z7lmMd{r|cgggW(DR z$_)F>sE@L+f`7m>gu@lW2dsb)!{I1IOV}xgT|{x3@tF;o4Ot$ohqi#0N+dB$S&SL7*!n#b&8j#_`Ed zp|Zk5qB4p_Y6#6LbBBqA49m!34~xwz3scxkeV=B(L4?qmdK;wb63(jK>9@E0?X3}9 ztNN5e5Ll~*dh8f~dyK!ufQ|}d>LnuIByxqwRAer*H|DjvakM2nf5xDga?=6KqvHBF z(0fJD7bh2~q=tJw72NR!?E4AkO(c}$mBF0PK{n>*E$bI19Y%u~hq@AOaH~@4=KzletO#(?46_`?c)tpEU z{iQwRf%ngGnY?0YxXy+_p=N~MKh1HBJELn$Ib9)VpUS0kHj6_5byw&5erGGG(bi|) znr5^uJW2PwLS#x=rIE63u6J6|KQJaPgJ@lq0mJEs{7*u5upYYTO-0W@ffK$Fdy1XM zev8Cx65PcO4*LjajQ5!sGuUGdK4(FTkw~0S);Wl$rCYuPIR8E_e0LM&8Tz(T920;jB z_M6PcHiPt@LM{H&M3si#gswb12|Yd4gHXX?-o=ya@ZocPr+{lJ(-rwm5F}7p9=r*K zk|51-m=OGKWlq$~IO2mEvM0l-kdW(#glo|7VRLl#T?|Gvm`thJZKG_<)!o`w)uki6 zb)ny0)aQ4YU8^6^4ao~v^MfhcN$Y82{6%)y?5nTPq^Xnt$mrywDjhdsl%-d07s;@x zlr-?wR0A3$;RLfpE_NuDpWuD|}K zu5CU=9b6qdL)=*+FB5r{$Xi6HETAZ%Qv~E0^l{8!hs8&dA8G9Mc_U6?aOPh|1!Jof my@a>cl?eTcdDCC;=l!xj7oH4@ekoiCkB7(oLU_UtegB`E5Z|Ey literal 0 HcmV?d00001 diff --git a/legacy/Pretrain/utils/aff_util.py b/legacy/Pretrain/utils/aff_util.py new file mode 100644 index 0000000..322251a --- /dev/null +++ b/legacy/Pretrain/utils/aff_util.py @@ -0,0 +1,139 @@ +import numpy as np +#from em_segLib.seg_util import check_volume +# from scipy.misc import comb +from scipy.special import comb +import scipy.sparse + + +def affinitize(img, ret=None, dst=(1,1,1), dtype='float32'): + # PNI code + """ + Transform segmentation to an affinity map. + Args: + img: 3D indexed image, with each index corresponding to each segment. + Returns: + ret: an affinity map (4D tensor). + """ + img = check_volume(img) + if ret is None: + ret = np.zeros(img.shape, dtype=dtype) + + # Sanity check. + (dz,dy,dx) = dst + assert abs(dx) < img.shape[-1] + assert abs(dy) < img.shape[-2] + assert abs(dz) < img.shape[-3] + + # Slices. + s0 = list() + s1 = list() + s2 = list() + for i in range(3): + if dst[i] == 0: + s0.append(slice(None)) + s1.append(slice(None)) + s2.append(slice(None)) + elif dst[i] > 0: + s0.append(slice(dst[i], None)) + s1.append(slice(dst[i], None)) + s2.append(slice(None, -dst[i])) + else: + s0.append(slice(None, dst[i])) + s1.append(slice(-dst[i], None)) + s2.append(slice(None, dst[i])) + + ret[s0] = (img[s1]==img[s2]) & (img[s1]>0) + return ret[np.newaxis,...] + +def bmap_to_affgraph(bmap,nhood,return_min_idx=False): + # constructs an affinity graph from a boundary map + # assume affinity graph is represented as: + # shape = (e, z, y, x) + # nhood.shape = (edges, 3) + shape = bmap.shape + nEdge = nhood.shape[0] + aff = np.zeros((nEdge,)+shape,dtype=np.int32) + minidx = np.zeros((nEdge,)+shape,dtype=np.int32) + + for e in range(nEdge): + aff[e, \ + max(0,-nhood[e,0]):min(shape[0],shape[0]-nhood[e,0]), \ + max(0,-nhood[e,1]):min(shape[1],shape[1]-nhood[e,1]), \ + max(0,-nhood[e,2]):min(shape[2],shape[2]-nhood[e,2])] = np.minimum( \ + bmap[max(0,-nhood[e,0]):min(shape[0],shape[0]-nhood[e,0]), \ + max(0,-nhood[e,1]):min(shape[1],shape[1]-nhood[e,1]), \ + max(0,-nhood[e,2]):min(shape[2],shape[2]-nhood[e,2])], \ + bmap[max(0,nhood[e,0]):min(shape[0],shape[0]+nhood[e,0]), \ + max(0,nhood[e,1]):min(shape[1],shape[1]+nhood[e,1]), \ + max(0,nhood[e,2]):min(shape[2],shape[2]+nhood[e,2])] ) + minidx[e, \ + max(0,-nhood[e,0]):min(shape[0],shape[0]-nhood[e,0]), \ + max(0,-nhood[e,1]):min(shape[1],shape[1]-nhood[e,1]), \ + max(0,-nhood[e,2]):min(shape[2],shape[2]-nhood[e,2])] = \ + bmap[max(0,-nhood[e,0]):min(shape[0],shape[0]-nhood[e,0]), \ + max(0,-nhood[e,1]):min(shape[1],shape[1]-nhood[e,1]), \ + max(0,-nhood[e,2]):min(shape[2],shape[2]-nhood[e,2])] > \ + bmap[max(0,nhood[e,0]):min(shape[0],shape[0]+nhood[e,0]), \ + max(0,nhood[e,1]):min(shape[1],shape[1]+nhood[e,1]), \ + max(0,nhood[e,2]):min(shape[2],shape[2]+nhood[e,2])] + return aff + +def seg_to_affgraph(seg,nhood,pad=''): + # constructs an affinity graph from a segmentation + # assume affinity graph is represented as: + # shape = (e, z, y, x) + # nhood.shape = (edges, 3) + shape = seg.shape + nEdge = nhood.shape[0] + aff = np.zeros((nEdge,)+shape,dtype=np.int32) + + for e in range(nEdge): + aff[e, \ + max(0,-nhood[e,0]):min(shape[0],shape[0]-nhood[e,0]), \ + max(0,-nhood[e,1]):min(shape[1],shape[1]-nhood[e,1]), \ + max(0,-nhood[e,2]):min(shape[2],shape[2]-nhood[e,2])] = \ + (seg[max(0,-nhood[e,0]):min(shape[0],shape[0]-nhood[e,0]), \ + max(0,-nhood[e,1]):min(shape[1],shape[1]-nhood[e,1]), \ + max(0,-nhood[e,2]):min(shape[2],shape[2]-nhood[e,2])] == \ + seg[max(0,nhood[e,0]):min(shape[0],shape[0]+nhood[e,0]), \ + max(0,nhood[e,1]):min(shape[1],shape[1]+nhood[e,1]), \ + max(0,nhood[e,2]):min(shape[2],shape[2]+nhood[e,2])] ) \ + * ( seg[max(0,-nhood[e,0]):min(shape[0],shape[0]-nhood[e,0]), \ + max(0,-nhood[e,1]):min(shape[1],shape[1]-nhood[e,1]), \ + max(0,-nhood[e,2]):min(shape[2],shape[2]-nhood[e,2])] > 0 ) \ + * ( seg[max(0,nhood[e,0]):min(shape[0],shape[0]+nhood[e,0]), \ + max(0,nhood[e,1]):min(shape[1],shape[1]+nhood[e,1]), \ + max(0,nhood[e,2]):min(shape[2],shape[2]+nhood[e,2])] > 0 ) + if nEdge==3 and pad == 'replicate': # pad the boundary affinity + aff[0,0] = (seg[0]>0).astype(aff.dtype) + aff[1,:,0] = (seg[:,0]>0).astype(aff.dtype) + aff[2,:,:,0] = (seg[:,:,0]>0).astype(aff.dtype) + + return aff + +def affgraph_to_edgelist(aff,nhood): + node1,node2 = nodelist_like(aff.shape[1:],nhood) + return (node1.ravel(),node2.ravel(),aff.ravel()) + +def nodelist_like(shape,nhood): + # constructs the node lists corresponding to the edge list representation of an affinity graph + # assume node shape is represented as: + # shape = (z, y, x) + # nhood.shape = (edges, 3) + nEdge = nhood.shape[0] + nodes = np.arange(np.prod(shape),dtype=np.uint64).reshape(shape) + node1 = np.tile(nodes,(nEdge,1,1,1)) + node2 = np.full(node1.shape,-1,dtype=np.uint64) + + for e in range(nEdge): + node2[e, \ + max(0,-nhood[e,0]):min(shape[0],shape[0]-nhood[e,0]), \ + max(0,-nhood[e,1]):min(shape[1],shape[1]-nhood[e,1]), \ + max(0,-nhood[e,2]):min(shape[2],shape[2]-nhood[e,2])] = \ + nodes[max(0,nhood[e,0]):min(shape[0],shape[0]+nhood[e,0]), \ + max(0,nhood[e,1]):min(shape[1],shape[1]+nhood[e,1]), \ + max(0,nhood[e,2]):min(shape[2],shape[2]+nhood[e,2])] + + return (node1, node2) + + diff --git a/legacy/Pretrain/utils/affine.py b/legacy/Pretrain/utils/affine.py new file mode 100644 index 0000000..4e63b8c --- /dev/null +++ b/legacy/Pretrain/utils/affine.py @@ -0,0 +1,288 @@ +import numpy as np + +def identity_xf(N): + """ + Construct N identity 2x3 transformation matrices + :return: array of shape (N, 2, 3) + """ + # Taken from https://github.com/Britefury/pytorch-mask-rcnn/blob/refactor/maskrcnn/utils/affine_transforms.py + xf = np.zeros((N, 2, 3), dtype=np.float32) + xf[:, 0, 0] = xf[:, 1, 1] = 1.0 + return xf + + +def inv_nx2x2(X): + """ + Invert the N 2x2 transformation matrices stored in X; a (N,2,2) array + :param X: transformation matrices to invert, (N,2,2) array + :return: inverse of X + """ + # Taken from https://github.com/Britefury/pytorch-mask-rcnn/blob/refactor/maskrcnn/utils/affine_transforms.py + rdet = 1.0 / (X[:, 0, 0] * X[:, 1, 1] - X[:, 1, 0] * X[:, 0, 1]) + y = np.zeros_like(X) + y[:, 0, 0] = X[:, 1, 1] * rdet + y[:, 1, 1] = X[:, 0, 0] * rdet + y[:, 0, 1] = -X[:, 0, 1] * rdet + y[:, 1, 0] = -X[:, 1, 0] * rdet + return y + +def inv_nx2x3(m): + """ + Invert the N 2x3 transformation matrices stored in X; a (N,2,3) array + :param X: transformation matrices to invert, (N,2,3) array + :return: inverse of X + """ + # Taken from https://github.com/Britefury/pytorch-mask-rcnn/blob/refactor/maskrcnn/utils/affine_transforms.py + m2 = m[:, :, :2] + mx = m[:, :, 2:3] + m2inv = inv_nx2x2(m2) + mxinv = np.matmul(m2inv, -mx) + return np.append(m2inv, mxinv, axis=2) + +def cat_nx2x3_2(a, b): + """ + Multiply the N 2x3 transformations stored in `a` with those in `b` + :param a: transformation matrices, (N,2,3) array + :param b: transformation matrices, (N,2,3) array + :return: `a . b` + """ + # Taken from https://github.com/Britefury/pytorch-mask-rcnn/blob/refactor/maskrcnn/utils/affine_transforms.py + a2 = a[:, :, :2] + b2 = b[:, :, :2] + + ax = a[:, :, 2:3] + bx = b[:, :, 2:3] + + ab2 = np.matmul(a2, b2) + abx = ax + np.matmul(a2, bx) + return np.append(ab2, abx, axis=2) + +def cat_nx2x3(*x): + """ + Multiply the N 2x3 transformations stored in the arrays in `x` + :param x: transformation matrices, tuple of (N,2,3) arrays + :return: `x[0] . x[1] . ... . x[N-1]` + """ + # Taken from https://github.com/Britefury/pytorch-mask-rcnn/blob/refactor/maskrcnn/utils/affine_transforms.py + y = x[0] + for i in range(1, len(x)): + y = cat_nx2x3_2(y, x[i]) + return y + +def translation_matrices(xlats_xy): + """ + Generate translation matrices + :param xlats_xy: translations as an (N, 2) array (x,y) + :return: translations matrices, (N,2,3) array + """ + # Taken from https://github.com/Britefury/pytorch-mask-rcnn/blob/refactor/maskrcnn/utils/affine_transforms.py + N = len(xlats_xy) + xf = np.zeros((N, 2, 3), dtype=np.float32) + xf[:, 0, 0] = xf[:, 1, 1] = 1.0 + xf[:, :, 2] = xlats_xy + return xf + +def scale_matrices(scale_xy): + """ + Generate translation matrices + :param scale_xy: scale factors as an (N, 2) array (x,y) + :return: translations matrices, (N,2,3) array + """ + # Taken from https://github.com/Britefury/pytorch-mask-rcnn/blob/refactor/maskrcnn/utils/affine_transforms.py + N = len(scale_xy) + xf = np.zeros((N, 2, 3), dtype=np.float32) + xf[:, 0, 0] = scale_xy[:, 0] + xf[:, 1, 1] = scale_xy[:, 1] + return xf + +def rotation_matrices(thetas): + """ + Generate rotation matrices + + Counter-clockwise, +y points downwards + + Where s = sin(theta) and c = cos(theta) + + M = [[ c s 0 ] + [ -s c 0 ]] + + :param thetas: rotation angles in radians as a (N,) array + :return: rotation matrices, (N,2,3) array + """ + # Taken from https://github.com/Britefury/pytorch-mask-rcnn/blob/refactor/maskrcnn/utils/affine_transforms.py + N = len(thetas) + c = np.cos(thetas) + s = np.sin(thetas) + rot_xf = np.zeros((N, 2, 3), dtype=np.float32) + rot_xf[:, 0, 0] = rot_xf[:, 1, 1] = c + rot_xf[:, 1, 0] = -s + rot_xf[:, 0, 1] = s + return rot_xf + +def flip_xyd_matrices(flip_flags_xyd, image_size): + """ + Generate flip matrices in OpenCV compatible form. Each sample has three flags: `x`, `y` and `d`: + `x == True` -> flip horizontally + `y == True` -> flip vertically + `d == True` -> flip diagonal or swap X and Y axes + + :param flip_flags_xyd: per sample flip flags as a (N,[x, y, d]) array + :param image_size: image size as a `(H, w)` tuple + :return: flip matrices, (N,2,3) array + """ + if flip_flags_xyd.ndim != 2: + raise ValueError('flip_flags_xyd should have 2 dimensions, not {}'.format(flip_flags_xyd.ndim)) + if flip_flags_xyd.shape[1] != 3: + raise ValueError('flip_flags_xyd.shape[1] should be 3 dimensions, not {}'.format(flip_flags_xyd.shape[1])) + + # False -> 1, True -> -1 + flip_scale_xy = flip_flags_xyd[:, :2] * -2 + 1 + # Negative scale factors need to be combined with a translation whose value is (image_size - 1) + # Mask the translation with the flip flags to only apply it where flipping is done + flip_xlat_xy = flip_flags_xyd[:, :2] * (np.array(image_size[::-1]).astype(float) - 1) + + hv_flip_xf = identity_xf(len(flip_flags_xyd)) + + # Diagonal flip: swap X and Y axes + diag = flip_flags_xyd[:, 2] + hv_flip_xf[diag] = hv_flip_xf[diag][:, ::-1, :] + + return cat_nx2x3( + hv_flip_xf, + translation_matrices(flip_xlat_xy), + scale_matrices(flip_scale_xy), + ) + + + +def centre_xf(xf, size): + """ + Centre the transformations in `xf` around (0,0), where the current centre is assumed to be at the + centre of an image of shape `size` + :param xf: transformation matrices, (N,2,3) array + :param size: image size + :return: centred transformation matrices, (N,2,3) array + """ + # Taken from https://github.com/Britefury/pytorch-mask-rcnn/blob/refactor/maskrcnn/utils/affine_transforms.py + height, width = size + + # centre_to_zero moves the centre of the image to (0,0) + centre_to_zero = np.zeros((1, 2, 3), dtype=np.float32) + centre_to_zero[0, 0, 0] = centre_to_zero[0, 1, 1] = 1.0 + centre_to_zero[0, 0, 2] = -float(width) * 0.5 + centre_to_zero[0, 1, 2] = -float(height) * 0.5 + + # centre_to_zero then xf + xf_centred = cat_nx2x3(xf, centre_to_zero) + + # move (0,0) back to the centre + xf_centred[:, 0, 2] += float(width) * 0.5 + xf_centred[:, 1, 2] += float(height) * 0.5 + + return xf_centred + + +def cv_to_torch(mtx, dst_size, src_size=None): + """ + Convert transformations matrices that can be used with `cv2.warpAffine` to work with PyTorch + grid sampling. + + NOTE: `align_corners=True` should be passed to `F.affine_Grid` and `F.grid_sample` to + correctly match OpenCV transformations. + + `cv2.warpAffine` expects a matrix that transforms an image in pixel co-ordinates. + PyTorch `F.affine_grid` and `F.grid_sample` maps pixel locations to a [-1, 1] grid + and transforms these sample locations, prior to sampling the image. + + :param mtx: OpenCV transformation matrices as a (N,2,3) array + :param dst_size: the size of the output image as a `(height, width)` tuple + :param src_size: the size of the input image as a `(height, width)` tuple, or None to use `dst_size` + :return: PyTorch transformation matrices as a (N,2,3) array + """ + # Taken from https://github.com/Britefury/pytorch-mask-rcnn/blob/refactor/maskrcnn/utils/affine_transforms.py + dst_scale_x = float(dst_size[1] - 1) / 2.0 + dst_scale_y = float(dst_size[0] - 1) / 2.0 + + if src_size is not None: + src_scale_x = float(src_size[1] - 1) / 2.0 + src_scale_y = float(src_size[0] - 1) / 2.0 + else: + src_scale_x = dst_scale_x + src_scale_y = dst_scale_y + + N = len(mtx) + + # OpenCV transforms the image, whereas the PyTorch transforms the points at which the + # image is samples. We account for this by inverting the transformation matrices + mtx = inv_nx2x3(mtx) + + torch_cv = identity_xf(N) + torch_cv[:, 0, 0] = dst_scale_x + torch_cv[:, 1, 1] = dst_scale_y + torch_cv[:, 0, 2] = dst_scale_x + torch_cv[:, 1, 2] = dst_scale_y + + cv_torch = identity_xf(N) + cv_torch[:, 0, 0] = 1.0 / src_scale_x + cv_torch[:, 1, 1] = 1.0 / src_scale_y + cv_torch[:, 0, 2] = -1.0 + cv_torch[:, 1, 2] = -1.0 + + # Transform torch co-ordinates to OpenCV, apply the transformation then OpenCV co-ordinates back to torch + return cat_nx2x3(cv_torch, mtx, torch_cv) + + +def pil_to_torch(mtx, dst_size, src_size=None, align_corners=True): + """ + Convert affine transformations matrices that can be used with Pillow `Image.transform` to work with PyTorch + grid sampling. + + `Image.transform` expects a matrix that transforms an image in pixel co-ordinates, where pixel [0,0] + is centred at [0.5, 0.5]. + PyTorch `F.affine_grid` and `F.grid_sample` maps pixel locations to a [-1, 1] grid + and transforms these sample locations, prior to sampling the image. + + :param mtx: PIL transformation matrices as a (N,2,3) array + :param dst_size: the size of the output image as a `(height, width)` tuple + :param src_size: the size of the input image as a `(height, width)` tuple, or None to use `dst_size` + :param align_corners: if you want to use `align_corners=False` for PyTorch `F.affine_grid` and `F.grid_sample`, + pass `align_corners=False` here + :return: PyTorch transformation matrices as a (N,2,3) array + """ + # Taken from https://github.com/Britefury/pytorch-mask-rcnn/blob/refactor/maskrcnn/utils/affine_transforms.py + if align_corners: + dst_size = (dst_size[0] - 1, dst_size[1] - 1) + dst_scale_x = float(dst_size[1]) / 2.0 + dst_scale_y = float(dst_size[0]) / 2.0 + + if src_size is not None: + if align_corners: + src_size = (src_size[0] - 1, src_size[1] - 1) + src_scale_x = float(src_size[1]) / 2.0 + src_scale_y = float(src_size[0]) / 2.0 + else: + src_scale_x = dst_scale_x + src_scale_y = dst_scale_y + + N = len(mtx) + + torch_cv = identity_xf(N) + torch_cv[:, 0, 0] = dst_scale_x + torch_cv[:, 1, 1] = dst_scale_y + torch_cv[:, 0, 2] = dst_scale_x + torch_cv[:, 1, 2] = dst_scale_y + if align_corners: + torch_cv[:, 0, 2] += 0.5 + torch_cv[:, 1, 2] += 0.5 + + cv_torch = identity_xf(N) + cv_torch[:, 0, 0] = 1.0 / src_scale_x + cv_torch[:, 1, 1] = 1.0 / src_scale_y + cv_torch[:, 0, 2] = -1.0 + cv_torch[:, 1, 2] = -1.0 + if align_corners: + cv_torch[:, 0, 2] += -0.5 / src_scale_x + cv_torch[:, 1, 2] += -0.5 / src_scale_y + + # Transform torch co-ordinates to OpenCV, apply the transformation then OpenCV co-ordinates back to torch + return cat_nx2x3(cv_torch, mtx, torch_cv) diff --git a/legacy/Pretrain/utils/augmentation.py b/legacy/Pretrain/utils/augmentation.py new file mode 100644 index 0000000..e0dcd95 --- /dev/null +++ b/legacy/Pretrain/utils/augmentation.py @@ -0,0 +1,737 @@ +## FUNCTIONS: data augmentation used for "superhuman" network +## Noted that it is only applied to 3D datasets +## Written by Wei Huang +## 2020/10/12 +## reference: https://github.com/donglaiw/EM-network/blob/master/em_net/data/augmentation.py + +import cv2 +import time +import math +import random +import torch +import numpy as np +from scipy.ndimage.interpolation import map_coordinates, zoom +from scipy.ndimage.filters import gaussian_filter + +from utils.coordinate import Coordinate + +def produce_simple_aug(data, rule): + '''Routine data augmentation, including flipping in x-, y- and z-dimensions, + and transposing x- and y-dimensions, they have 2^4=16 combinations + Args: + data: numpy array, [Z, Y, X], ndim=3 + rule: numpy array, list or tuple, but len(rule) = 4, such as rule=[1,1,0,0] + ''' + assert data.ndim == 3 and len(rule) == 4 + # z reflection. + if rule[0]: + data = data[::-1, :, :] + # x reflection. + if rule[1]: + data = data[:, :, ::-1] + # y reflection. + if rule[2]: + data = data[:, ::-1, :] + # Transpose in xy. + if rule[3]: + data = data.transpose(0, 2, 1) + return data + +######################################################################## +def create_identity_transformation(shape, subsample=1): + dims = len(shape) + subsample_shape = tuple(max(1, int(s/subsample)) for s in shape) + step_width = tuple(float(shape[d]-1)/(subsample_shape[d]-1) + if subsample_shape[d] > 1 else 1 for d in range(dims)) + + axis_ranges = ( + np.arange(subsample_shape[d], dtype=np.float32)*step_width[d] + for d in range(dims) + ) + return np.array(np.meshgrid(*axis_ranges, indexing='ij'), dtype=np.float32) + + +def upscale_transformation(transformation, + output_shape, + interpolate_order=1): + input_shape = transformation.shape[1:] + dims = len(output_shape) + scale = tuple(float(s)/c for s, c in zip(output_shape, input_shape)) + + scaled = np.zeros((dims,)+output_shape, dtype=np.float32) + for d in range(dims): + zoom(transformation[d], zoom=scale, + output=scaled[d], order=interpolate_order) + return scaled + + +def create_elastic_transformation(shape, + control_point_spacing=100, + jitter_sigma=10.0, + subsample=1): + dims = len(shape) + subsample_shape = tuple(max(1, int(s/subsample)) for s in shape) + + try: + spacing = tuple((d for d in control_point_spacing)) + except: + spacing = (control_point_spacing,)*dims + try: + sigmas = [s for s in jitter_sigma] + except: + sigmas = [jitter_sigma]*dims + + control_points = tuple( + max(1, int(round(float(shape[d])/spacing[d]))) + for d in range(len(shape)) + ) + + # jitter control points + control_point_offsets = np.zeros( + (dims,) + control_points, dtype=np.float32) + for d in range(dims): + if sigmas[d] > 0: + control_point_offsets[d] = np.random.normal( + scale=sigmas[d], size=control_points) + transform = upscale_transformation(control_point_offsets, subsample_shape, interpolate_order=3) + return transform + + +def rotate(point, angle): + res = np.array(point) + res[0] = math.sin(angle)*point[1] + math.cos(angle)*point[0] + res[1] = -math.sin(angle)*point[0] + math.cos(angle)*point[1] + return res + + +def create_rotation_transformation(shape, angle, subsample=1): + dims = len(shape) + subsample_shape = tuple(max(1, int(s/subsample)) for s in shape) + control_points = (2,)*dims + + # map control points to world coordinates + control_point_scaling_factor = tuple(float(s-1) for s in shape) + + # rotate control points + center = np.array([0.5*(d-1) for d in shape]) + + control_point_offsets = np.zeros( + (dims,) + control_points, dtype=np.float32) + for control_point in np.ndindex(control_points): + point = np.array(control_point)*control_point_scaling_factor + center_offset = np.array( + [p-c for c, p in zip(center, point)], dtype=np.float32) + rotated_offset = np.array(center_offset) + rotated_offset[-2:] = rotate(center_offset[-2:], angle) + displacement = rotated_offset - center_offset + control_point_offsets[(slice(None),) + control_point] += displacement + return upscale_transformation(control_point_offsets, subsample_shape) + + +def random_offset(max_misalign): + return Coordinate((0,) + tuple(max_misalign - random.randint(0, 2*int(max_misalign)) for d in range(2))) + + +def misalign(transformation, prob_slip, prob_shift, max_misalign): + num_sections = transformation[0].shape[0] + shifts = [Coordinate((0, 0, 0))]*num_sections + # orginal + # for z in range(num_sections): + # r = random.random() + # if r <= prob_slip: + # shifts[z] = random_offset(max_misalign) + # elif r <= prob_slip + prob_shift: + # offset = random_offset(max_misalign) + # for zp in range(z, num_sections): + # shifts[zp] += offset + + # written by Wei Huang + if random.random() > 0.5: + # slip type + for z in range(1, num_sections): + if random.random() <= prob_slip: + shifts[z] = random_offset(max_misalign) + else: + # translation type + for z in range(1, num_sections): + if random.random() <= prob_shift: + offset = random_offset(max_misalign) + for zp in range(z, num_sections): + shifts[zp] = offset + break + + for z in range(num_sections): + transformation[1][z, :, :] += shifts[z][1] + transformation[2][z, :, :] += shifts[z][2] + return transformation + +def apply_transformation(image, + transformation, + interpolate=True, + outside_value=0, + output=None): + order = 1 if interpolate == True else 0 + output = image.dtype if output is None else output + return map_coordinates(image, + transformation, + output=output, + order=order, + mode='constant', + cval=outside_value) + +def resize_3d(imgs, det_size, mode='linear'): + new_imgs = [] + for k in range(imgs.shape[0]): + temp = imgs[k] + if mode == 'linear': + temp = cv2.resize(temp, (det_size, det_size), interpolation=cv2.INTER_LINEAR) + elif mode == 'nearest': + temp = cv2.resize(temp, (det_size, det_size), interpolation=cv2.INTER_NEAREST) + else: + raise AttributeError('No this interpolation mode!') + new_imgs.append(temp) + new_imgs = np.asarray(new_imgs) + return new_imgs + +######################################################################## + +class Rescale(object): + def __init__(self, scale_factor=2, det_shape=[18, 160, 160]): + super(Rescale, self).__init__() + self.scale_factor = scale_factor + self.det_shape = det_shape + + def __call__(self, data, mask): + src_shape = data.shape + assert src_shape[-1] >= self.det_shape[-1] * self.scale_factor, 'data shape must be 160*2' + min_size = self.det_shape[-1] // self.scale_factor + max_size = self.det_shape[-1] * self.scale_factor + scale_size = random.randint(min_size // 2, max_size // 2) + scale_size = scale_size * 2 + + if scale_size < src_shape[-1]: + shift = (src_shape[-1] - scale_size) // 2 + data = data[:, shift:-shift, shift:-shift] + data = resize_3d(data, self.det_shape[-1], mode='linear') + mask = resize_3d(mask, self.det_shape[-1], mode='nearest') + return data, mask, scale_size + +class SimpleAugment(object): + def __init__(self, skip_ratio=0.5): + '''Routine data augmentation, including flipping in x-, y- and z-dimensions, + and transposing x- and y-dimensions, they have 2^4=16 combinations + Args: + skip_ratio: Probability of execution + ''' + super(SimpleAugment, self).__init__() + self.ratio = skip_ratio + + def __call__(self, inputs): + return self.forward(inputs) + + def forward(self, inputs): + ''' + Args: + inputs: list, such as [imgs, label, ...], imgs and label are numpy arrays with ndim=3 + ''' + skiprand = np.random.rand() + if skiprand < self.ratio: + rule = np.random.randint(2, size=4) + for idx in range(len(inputs)): + inputs[idx] = produce_simple_aug(inputs[idx], rule) + return inputs + else: + return inputs + + +class RandomRotationAugment(object): + def __init__(self, skip_ratio=0.5): + '''Random rotation augmentation in x-y plane + Args: + skip_ratio: Probability of execution + ''' + super(RandomRotationAugment, self).__init__() + self.ratio = skip_ratio + + def __call__(self, inputs, mask=None): + return self.forward(inputs, mask) + + def forward(self, inputs, mask=None): + ''' + Args: + inputs: list, such as [imgs, label, ...], imgs and label are numpy arrays with ndim=3 + ''' + skiprand = np.random.rand() + if skiprand < self.ratio: + angle = random.randint(0, 360-1) + center = tuple(np.array(inputs.shape)[1:] // 2) + rot_mat = cv2.getRotationMatrix2D(center, angle, 1) + for k in range(inputs.shape[0]): + inputs[k] = cv2.warpAffine(inputs[k], rot_mat, inputs[k].shape, flags=cv2.INTER_LINEAR) + if mask is not None: + for k in range(mask.shape[0]): + mask[k] = cv2.warpAffine(mask[k], rot_mat, mask[k].shape, flags=cv2.INTER_NEAREST) + return inputs, mask + else: + return inputs + else: + if mask is not None: + return inputs, mask + else: + return inputs + +class IntensityAugment(object): + def __init__(self, mode='mix', + skip_ratio=0.5, + CONTRAST_FACTOR=0.1, + BRIGHTNESS_FACTOR=0.1): + '''Image intensity augmentation, including adjusting contrast and brightness + Args: + mode: '2D', '3D' or 'mix' (contains '2D' and '3D') + skip_ratio: Probability of execution + CONTRAST_FACTOR: Contrast factor + BRIGHTNESS_FACTOR : Brightness factor + ''' + super(IntensityAugment, self).__init__() + assert mode == '3D' or mode == '2D' or mode == 'mix' + self.mode = mode + self.ratio = skip_ratio + self.CONTRAST_FACTOR = CONTRAST_FACTOR + self.BRIGHTNESS_FACTOR = BRIGHTNESS_FACTOR + + def __call__(self, inputs): + return self.forward(inputs) + + def forward(self, inputs): + skiprand = np.random.rand() + if skiprand < self.ratio: + if self.mode == 'mix': + # The probability of '2D' is more than '3D' + threshold = 1 - (1 - self.ratio) / 2 + mode_ = '3D' if skiprand > threshold else '2D' + else: + mode_ = self.mode + if mode_ == '2D': + inputs = self.augment2D(inputs) + elif mode_ == '3D': + inputs = self.augment3D(inputs) + return inputs + else: + return inputs + + def augment2D(self, imgs): + for z in range(imgs.shape[-3]): + img = imgs[z, :, :] + img *= 1 + (np.random.rand() - 0.5)*self.CONTRAST_FACTOR + img += (np.random.rand() - 0.5)*self.BRIGHTNESS_FACTOR + img = np.clip(img, 0, 1) + img **= 2.0**(np.random.rand()*2 - 1) + imgs[z, :, :] = img + return imgs + + def augment3D(self, imgs): + imgs *= 1 + (np.random.rand() - 0.5)*self.CONTRAST_FACTOR + imgs += (np.random.rand() - 0.5)*self.BRIGHTNESS_FACTOR + imgs = np.clip(imgs, 0, 1) + imgs **= 2.0**(np.random.rand()*2 - 1) + return imgs + + +class ElasticAugment(object): + '''Elasticly deform a batch. Requests larger batches upstream to avoid data + loss due to rotation and jitter. + Args: + control_point_spacing (``tuple`` of ``int``): + Distance between control points for the elastic deformation, in + voxels per dimension. + jitter_sigma (``tuple`` of ``float``): + Standard deviation of control point jitter distribution, in voxels + per dimension. + rotation_interval (``tuple`` of two ``floats``): + Interval to randomly sample rotation angles from (0, 2PI). + prob_slip (``float``): + Probability of a section to "slip", i.e., be independently moved in + x-y. + prob_shift (``float``): + Probability of a section and all following sections to move in x-y. + max_misalign (``int``): + Maximal voxels to shift in x and y. Samples will be drawn + uniformly. Used if ``prob_slip + prob_shift`` > 0. + subsample (``int``): + Instead of creating an elastic transformation on the full + resolution, create one subsampled by the given factor, and linearly + interpolate to obtain the full resolution transformation. This can + significantly speed up this node, at the expense of having visible + piecewise linear deformations for large factors. Usually, a factor + of 4 can savely by used without noticable changes. However, the + default is 1 (i.e., no subsampling). + ''' + def __init__( + self, + control_point_spacing=[4, 40, 40], + jitter_sigma=[0,0,0], # recommend: [0, 2, 2] + rotation_interval=[0,0], + prob_slip=0, # recommend: 0.05 + prob_shift=0, # recommend: 0.05 + max_misalign=0, # 17 in superhuman + subsample=1, + padding=None, + skip_ratio=0.5): # recommend: 10 + super(ElasticAugment, self).__init__() + + self.control_point_spacing = control_point_spacing + self.jitter_sigma = jitter_sigma + self.rotation_start = rotation_interval[0] + self.rotation_max_amount = rotation_interval[1] - rotation_interval[0] + self.prob_slip = prob_slip + self.prob_shift = prob_shift + self.max_misalign = max_misalign + self.subsample = subsample + self.padding = padding + self.ratio = skip_ratio + + def create_transformation(self, target_shape): + + transformation = create_identity_transformation( + target_shape, + subsample=self.subsample) + # shape: channel,d,w,h + + # elastic ##cost time## + if sum(self.jitter_sigma) > 0 and np.random.rand() < self.ratio: + transformation += create_elastic_transformation( + target_shape, + self.control_point_spacing, + self.jitter_sigma, + subsample=self.subsample) + + # rotation = random.random()*self.rotation_max_amount + self.rotation_start + # if rotation != 0: + # transformation += create_rotation_transformation( + # target_shape, + # rotation, + # subsample=self.subsample) + + # if self.subsample > 1: + # transformation = upscale_transformation( + # transformation, + # tuple(target_shape)) + + if self.prob_slip + self.prob_shift > 0 and np.random.rand() < self.ratio: + misalign(transformation, self.prob_slip, + self.prob_shift, self.max_misalign) + + return transformation + + def __call__(self, imgs, mask): + return self.forward(imgs, mask) + + def forward(self, imgs, mask): + '''Args: + imgs: numpy array, [Z, Y, Z], it always is float and 0~1 + mask: numpy array, [Z, Y, Z], it always is uint16 + ''' + if self.padding is not None: + imgs = np.pad(imgs, ((0,0), \ + (self.padding,self.padding), \ + (self.padding,self.padding)), mode='reflect') + mask = np.pad(mask, ((0,0), \ + (self.padding,self.padding), \ + (self.padding,self.padding)), mode='reflect') + transform = self.create_transformation(imgs.shape) + img_transform = apply_transformation(imgs, + transform, + interpolate=False, + outside_value=0, # imgs.dtype.type(-1) + output=np.zeros(imgs.shape, dtype=np.float32)) + seg_transform = apply_transformation(mask, + transform, + interpolate=False, + outside_value=0, # mask.dtype.type(-1) + output=np.zeros(mask.shape, dtype=np.uint16)) # dtype=np.float32 + # seg_transform[seg_transform < 0] = 0 + # seg_transform[seg_transform > 60000] = 0 + if self.padding is not None and self.padding != 0: + img_transform = img_transform[:, self.padding:-self.padding, self.padding:-self.padding] + seg_transform = seg_transform[:, self.padding:-self.padding, self.padding:-self.padding] + return img_transform, seg_transform + + +class MissingAugment(object): + '''Missing section augmentation + Args: + filling: the way of filling, 'zero' or 'random' + mode: 'mix', 'fully' or 'partially' + skip_ratio: Probability of execution + miss_ratio: Probability of missing + ''' + def __init__(self, filling='zero', mode='mix', skip_ratio=0.5, miss_ratio=0.1): + super(MissingAugment, self).__init__() + self.filling = filling + self.mode = mode + self.ratio = skip_ratio + self.miss_ratio = miss_ratio + + def __call__(self, imgs): + return self.forward(imgs) + + def forward(self, imgs): + skiprand = np.random.rand() + if skiprand < self.ratio: + if self.mode == 'mix': + r = np.random.rand() + mode_ = 'fully' if r < 0.5 else 'partially' + else: + mode_ = self.mode + if mode_ == 'fully': + imgs = self.augment_fully(imgs) + elif mode_ == 'partially': + imgs = self.augment_partially(imgs) + return imgs + else: + return imgs + + def augment_fully(self, imgs): + d, h, w = imgs.shape + for i in range(d): + if np.random.rand() < self.miss_ratio: + if self.filling == 'zero': + imgs[i] = 0 + elif self.filling == 'random': + imgs[i] = np.random.rand(h, w) + return imgs + + def augment_partially(self, imgs, size_ratio=0.3): + d, h, w = imgs.shape + for i in range(d): + if np.random.rand() < self.miss_ratio: + # randomly generate an area + sub_h = random.randint(int(h*size_ratio), int(h*(1-size_ratio))) + sub_w = random.randint(int(w*size_ratio), int(w*(1-size_ratio))) + start_h = random.randint(0, h - sub_h - 1) + start_w = random.randint(0, w - sub_w - 1) + if self.filling == 'zero': + imgs[i, start_h:start_h+sub_h, start_w:start_w+sub_w] = 0 + elif self.filling == 'random': + imgs[i, start_h:start_h+sub_h, start_w:start_w+sub_w] = np.random.rand(sub_h, sub_w) + return imgs + + +class BlurAugment(object): + '''Out-of-focus (Blur) section augmentation + Args: + mode: 'mix', 'fully' or 'partially' + skip_ratio: Probability of execution + blur_ratio: Probability of blur + ''' + def __init__(self, mode='mix', skip_ratio=0.5, blur_ratio=0.1): + super(BlurAugment, self).__init__() + self.mode = mode + self.ratio = skip_ratio + self.blur_ratio = blur_ratio + + def __call__(self, imgs): + return self.forward(imgs) + + def forward(self, imgs): + skiprand = np.random.rand() + if skiprand < self.ratio: + if self.mode == 'mix': + r = np.random.rand() + mode_ = 'fully' if r < 0.5 else 'partially' + else: + mode_ = self.mode + if mode_ == 'fully': + imgs = self.augment_fully(imgs) + elif mode_ == 'partially': + imgs = self.augment_partially(imgs) + return imgs + else: + return imgs + + def augment_fully(self, imgs): + d, h, w = imgs.shape + for i in range(d): + if np.random.rand() < self.blur_ratio: + sigma = np.random.uniform(0, 5) + imgs[i] = gaussian_filter(imgs[i], sigma) + return imgs + + def augment_partially(self, imgs, size_ratio=0.3): + d, h, w = imgs.shape + for i in range(d): + if np.random.rand() < self.blur_ratio: + # randomly generate an area + sub_h = random.randint(int(h*size_ratio), int(h*(1-size_ratio))) + sub_w = random.randint(int(w*size_ratio), int(w*(1-size_ratio))) + start_h = random.randint(0, h - sub_h - 1) + start_w = random.randint(0, w - sub_w - 1) + sigma = np.random.uniform(0, 5) + imgs[i, start_h:start_h+sub_h, start_w:start_w+sub_w] = \ + gaussian_filter(imgs[i, start_h:start_h+sub_h, start_w:start_w+sub_w], sigma) + return imgs + + +def show(img3d): + # only used for image with shape [18, 160, 160] + row = 4 + column = 5 + num = 18 + size = 160 + img_all = np.zeros((size*row, size*column), dtype=np.uint8) + for i in range(row): + for j in range(column): + index = i*column + j + if index >= num: + img = np.zeros_like(img3d[0], dtype=np.uint8) + else: + img = (img3d[index] * 255).astype(np.uint8) + img_all[i*size:(i+1)*size, j*size:(j+1)*size] = img + return img_all + + +def show_lb(img3d): + # only used for image with shape [18, 160, 160] + row = 4 + column = 5 + num = 18 + size = 160 + ids = np.unique(img3d) + color_pred = np.zeros([num, size, size, 3], dtype=np.uint8) + idx = np.searchsorted(ids, img3d) + for i in range(3): + color_val = np.random.randint(0, 255, ids.shape) + if ids[0] == 0: + color_val[0] = 0 + color_pred[:,:,:,i] = color_val[idx] + + img_all = np.zeros((size*row, size*column, 3), dtype=np.uint8) + for i in range(row): + for j in range(column): + index = i*column + j + if index >= num: + img = np.zeros_like((size, size, 3), dtype=np.uint8) + else: + img = color_pred[index] + img_all[i*size:(i+1)*size, j*size:(j+1)*size, :] = img + return img_all + + +def elastic_deform_3d_cuda(image_in, + label_in, + prob, + random_state=None, + padding=20, + alpha=(10,50), + sigma=10, + device='cuda:0'): + """Elastic deformation of image_ins as described in [Simard2003]_. + .. [Simard2003] Simard, Steinkraus and Platt, "Best Practices for + Convolutional Neural Networks applied to Visual Document Analysis", in + Proc. of the International Conference on Document Analysis and + Recognition, 2003. + """ + # skip + if random.uniform(0, 1) > prob: + return image_in, label_in + + if padding is not None: + image_in = np.pad(image_in, ((0,0), \ + (padding, padding), \ + (padding, padding)), mode='reflect') + label_in = np.pad(label_in, ((0,0), \ + (padding, padding), \ + (padding, padding)), mode='reflect') + + alpha = np.random.uniform(alpha[0], alpha[1]) + if random_state is None: + random_state = np.random.RandomState(None) + + shape = image_in.shape + + #rdx = torch.Tensor(random_state.rand(*shape) * 2 - 1).unsqueeze(0).unsqueeze(0).to(self.device) + #rdy = torch.Tensor(random_state.rand(*shape) * 2 - 1).unsqueeze(0).unsqueeze(0).to(self.device) + #rdz = torch.Tensor(random_state.rand(*shape) * 2 - 1).unsqueeze(0).unsqueeze(0).to(self.device) + #dx = self.gaussian_filter(rdx) * alpha + #dy = self.gaussian_filter(rdy) * alpha + #dz = self.gaussian_filter(rdz) * alpha + + #dx = np.squeeze(dx.data.cpu().numpy()) + #dy = np.squeeze(dy.data.cpu().numpy()) + #dz = np.squeeze(dz.data.cpu().numpy()) + + dx = gaussian_filter((random_state.rand(*shape) * 2 - 1), sigma, order=0, mode='constant', cval=0) * alpha + dy = gaussian_filter((random_state.rand(*shape) * 2 - 1), sigma, order=0, mode='constant', cval=0) * alpha + dz = gaussian_filter((random_state.rand(*shape) * 2 - 1), sigma, order=0, mode='constant', cval=0) * alpha + + grid_x, grid_y, grid_z = np.meshgrid(np.arange(shape[1]), np.arange(shape[0]), np.arange(shape[2])) + def_grid_x = grid_x + dx + def_grid_y = grid_y + dy + def_grid_z = grid_z + dz + + gx = 2.0*def_grid_x/(shape[2]-1)-1. + gy = 2.0*def_grid_y/(shape[1]-1)-1. + gz = 2.0*def_grid_z/(shape[0]-1)-1. + + #indices = np.reshape(def_grid_y, (-1, 1)), np.reshape(def_grid_x, (-1, 1)), np.reshape(def_grid_z, (-1, 1)) + #out = map_coordinates(image_in, indices, order=1).reshape(shape) + + # torch_grid = torch.Tensor(np.stack((gx,gy,gz),3)).unsqueeze(0).to(device) + torch_grid = torch.Tensor(np.stack((gz,gx,gy),3)).unsqueeze(0).to(device) + torch_im = torch.Tensor(np.expand_dims(np.expand_dims(image_in, axis=0), axis=0).copy()).to(device) + torch_lb = torch.Tensor(np.expand_dims(label_in, axis=0).copy()).to(device) + with torch.no_grad(): + torch_im_out = torch.nn.functional.grid_sample(torch_im, torch_grid, mode='bilinear', padding_mode='zeros') + torch_lb_out = torch.nn.functional.grid_sample(torch_lb, torch_grid, mode='bilinear', padding_mode='zeros') + + image_out = np.squeeze(torch_im_out.data.cpu().numpy()).astype(np.uint8) + label_out = np.squeeze(torch_lb_out.data.cpu().numpy()).astype(np.uint8) + + if padding is not None and padding != 0: + image_out = image_out[:, padding:-padding, padding:-padding] + label_out = label_out[:, padding:-padding, padding:-padding] + return image_out, label_out + +if __name__ == "__main__": + import os + import cv2 + import h5py + + input_vol = '../data/snemi3d/train-input.h5' + f = h5py.File(input_vol, 'r') + raw = f['main'][:] + f.close() + + input_vol = '../data/snemi3d/train-labels.h5' + f = h5py.File(input_vol, 'r') + lbs = f['main'][:] + f.close() + + out = './debug_img' + raw = raw.astype(np.float32) / 255.0 + vol = raw[0:18, 0:160, 0:160] + lb = lbs[0:18, 0:160, 0:160] + # vol_img = show_lb(lb) + # cv2.imwrite(os.path.join(out, 'raw.png'), vol_img) + + ################################################## + # Data_aug = ElasticAugment(jitter_sigma=[0,2,2], + # prob_slip=0.5, + # prob_shift=0.5, + # max_misalign=17, + # padding=20) + # print('min=%d, max=%d' % (np.min(lb), np.max(lb))) + ################################################## + # Data_aug = MissingAugment(filling='random') + ################################################## + Data_aug = BlurAugment(blur_ratio=0.1) + for i in range(20): + # vol_aug, lb_aug = Data_aug(vol.copy(), lb.copy()) + # print('min=%d, max=%d' % (np.min(lb_aug), np.max(lb_aug))) + # print(lb_aug.dtype) + # vol_img = show_lb(lb_aug) + vol_aug = Data_aug(vol.copy()) + vol_img = show(vol_aug) + + cv2.imwrite(os.path.join(out, 'raw_aug'+str(i)+'.png'), vol_img) + print('Done') \ No newline at end of file diff --git a/legacy/Pretrain/utils/augmentation_affine.py b/legacy/Pretrain/utils/augmentation_affine.py new file mode 100644 index 0000000..f863b63 --- /dev/null +++ b/legacy/Pretrain/utils/augmentation_affine.py @@ -0,0 +1,240 @@ +import cv2 +import math +import numpy as np + +from utils import affine + +class SegCVTransformRandomCropRotateScale(object): + """ + Random crop with random scale. + """ + def __init__(self, crop_size, crop_offset, rot_mag, max_scale, uniform_scale=True, constrain_rot_scale=True, + rng=None): + if crop_offset is None: + crop_offset = [0, 0] + self.crop_size = tuple(crop_size) + self.crop_size_arr = np.array(crop_size) + self.crop_offset = np.array(crop_offset) + self.rot_mag_rad = math.radians(rot_mag) + self.log_max_scale = np.log(max_scale) + self.uniform_scale = uniform_scale + self.constrain_rot_scale = constrain_rot_scale + self.__rng = rng + + @property + def rng(self): + if self.__rng is None: + self.__rng = np.random.RandomState() + return self.__rng + + def transform_single(self, sample0): + sample0 = sample0.copy() + + # Extract contents + image = sample0['image_arr'] + + # Choose scale and rotation + if self.uniform_scale: + scale_factor_yx = np.exp(self.rng.uniform(-self.log_max_scale, self.log_max_scale, size=(1,))) + scale_factor_yx = np.repeat(scale_factor_yx, 2, axis=0) + else: + scale_factor_yx = np.exp(self.rng.uniform(-self.log_max_scale, self.log_max_scale, size=(2,))) + rot_theta = self.rng.uniform(-self.rot_mag_rad, self.rot_mag_rad, size=(1,)) + + # Scale the crop size by the inverse of the scale + sc_size = self.crop_size_arr / scale_factor_yx + + # Randomly choose centre + img_size = np.array(image.shape[:2]) + extra = np.maximum(img_size - sc_size, 0.0) + centre = extra * self.rng.uniform(0.0, 1.0, size=(2,)) + np.minimum(sc_size, img_size) * 0.5 + + # Build affine transformation matrix + local_xf = affine.cat_nx2x3( + affine.translation_matrices(self.crop_size_arr[None, ::-1] * 0.5), + affine.rotation_matrices(rot_theta), + affine.scale_matrices(scale_factor_yx[None, ::-1]), + affine.translation_matrices(-centre[None, ::-1]), + ) + + # Reflect the image + # Use nearest neighbour sampling to stay consistent with labels, if labels present + if 'labels_arr' in sample0: + interpolation = cv2.INTER_NEAREST + else: + interpolation = self.rng.choice([cv2.INTER_NEAREST, cv2.INTER_LINEAR]) + + sample0['image_arr'] = cv2.warpAffine(image, local_xf[0], self.crop_size[::-1], flags=interpolation, borderValue=0, borderMode=cv2.BORDER_REFLECT_101) + + # Don't reflect labels and mask + if 'labels_arr' in sample0: + sample0['labels_arr'] = cv2.warpAffine(sample0['labels_arr'], local_xf[0], self.crop_size[::-1], flags=cv2.INTER_NEAREST, borderValue=0, borderMode=cv2.BORDER_CONSTANT) + + if 'mask_arr' in sample0: + sample0['mask_arr'] = cv2.warpAffine(sample0['mask_arr'], local_xf[0], self.crop_size[::-1], flags=interpolation, borderValue=0, borderMode=cv2.BORDER_CONSTANT) + + if 'xf_cv' in sample0: + sample0['xf_cv'] = affine.cat_nx2x3(local_xf, sample0['xf_cv'][None, ...])[0] + + return sample0 + + def transform_pair(self, sample0, sample1): + sample0 = sample0.copy() + sample1 = sample1.copy() + + # Choose scales and rotations + if self.constrain_rot_scale: + if self.uniform_scale: + scale_factors_yx = np.exp(self.rng.uniform(-self.log_max_scale, self.log_max_scale, size=(1, 1))) + scale_factors_yx = np.repeat(scale_factors_yx, 2, axis=1) + else: + scale_factors_yx = np.exp(self.rng.uniform(-self.log_max_scale, self.log_max_scale, size=(1, 2))) + + rot_thetas = self.rng.uniform(-self.rot_mag_rad, self.rot_mag_rad, size=(1,)) + scale_factors_yx = np.repeat(scale_factors_yx, 2, axis=0) + rot_thetas = np.repeat(rot_thetas, 2, axis=0) + else: + if self.uniform_scale: + scale_factors_yx = np.exp(self.rng.uniform(-self.log_max_scale, self.log_max_scale, size=(2, 1))) + scale_factors_yx = np.repeat(scale_factors_yx, 2, axis=1) + else: + scale_factors_yx = np.exp(self.rng.uniform(-self.log_max_scale, self.log_max_scale, size=(2, 2))) + rot_thetas = self.rng.uniform(-self.rot_mag_rad, self.rot_mag_rad, size=(2,)) + + img_size = np.array(sample0['image_arr'].shape[:2]) + + # Scale the crop size by the inverse of the scale + sc_size = self.crop_size_arr / scale_factors_yx.min(axis=0) + crop_centre_pos = np.minimum(sc_size, img_size) * 0.5 + + # Randomly choose centres + extra = np.maximum(img_size - sc_size, 0.0) + centre0 = extra * self.rng.uniform(0.0, 1.0, size=(2,)) + crop_centre_pos + offset1 = np.round(self.crop_offset * self.rng.uniform(-1.0, 1.0, size=(2,))) + centre_xlat = np.stack([centre0, centre0], axis=0) + offset1_xlat = np.stack([np.zeros((2,)), offset1], axis=0) + + # Build affine transformation matrices + local_xfs = affine.cat_nx2x3( + affine.translation_matrices(self.crop_size_arr[None, ::-1] * 0.5), + affine.translation_matrices(offset1_xlat[:, ::-1]), + affine.rotation_matrices(rot_thetas), + affine.scale_matrices(scale_factors_yx[:, ::-1]), + affine.translation_matrices(-centre_xlat[:, ::-1]), + ) + + # Use nearest neighbour sampling to stay consistent with labels, if labels present + interpolation = cv2.INTER_NEAREST if 'labels_arr' in sample0 else cv2.INTER_LINEAR + sample0['image_arr'] = cv2.warpAffine(sample0['image_arr'], local_xfs[0], self.crop_size[::-1], flags=interpolation, + borderValue=0, borderMode=cv2.BORDER_REFLECT_101) + sample1['image_arr'] = cv2.warpAffine(sample1['image_arr'], local_xfs[1], self.crop_size[::-1], flags=interpolation, + borderValue=0, borderMode=cv2.BORDER_REFLECT_101) + + if 'labels_arr' in sample0: + sample0['labels_arr'] = cv2.warpAffine(sample0['labels_arr'], local_xfs[0], self.crop_size[::-1], flags=cv2.INTER_NEAREST, + borderValue=0, borderMode=cv2.BORDER_CONSTANT) + sample1['labels_arr'] = cv2.warpAffine(sample1['labels_arr'], local_xfs[1], self.crop_size[::-1], flags=cv2.INTER_NEAREST, + borderValue=0, borderMode=cv2.BORDER_CONSTANT) + + if 'mask_arr' in sample0: + sample0['mask_arr'] = cv2.warpAffine(sample0['mask_arr'], local_xfs[0], self.crop_size[::-1], flags=interpolation, + borderValue=0, borderMode=cv2.BORDER_CONSTANT) + sample1['mask_arr'] = cv2.warpAffine(sample1['mask_arr'], local_xfs[1], self.crop_size[::-1], flags=interpolation, + borderValue=0, borderMode=cv2.BORDER_CONSTANT) + + if 'xf_cv' in sample0: + xf01 = affine.cat_nx2x3(local_xfs, np.stack([sample0['xf_cv'], sample1['xf_cv']], axis=0)) + sample0['xf_cv'] = xf01[0] + sample1['xf_cv'] = xf01[1] + + return sample0, sample1 + + +class SegCVTransformRandomFlip(object): + def __init__(self, hflip, vflip, hvflip, rng=None): + self.hflip = hflip + self.vflip = vflip + self.hvflip = hvflip + self.__rng = rng + + @property + def rng(self): + if self.__rng is None: + self.__rng = np.random.RandomState() + return self.__rng + + @staticmethod + def flip_image(img, flip_xyd): + if flip_xyd[0]: + img = img[:, ::-1] + if flip_xyd[1]: + img = img[::-1, ...] + if flip_xyd[2]: + img = np.swapaxes(img, 0, 1) + return img.copy() + + def transform_single(self, sample): + sample = sample.copy() + + # Flip flags + flip_flags_xyd = self.rng.binomial(1, 0.5, size=(3,)) != 0 + flip_flags_xyd = flip_flags_xyd & np.array([self.hflip, self.vflip, self.hvflip]) + + sample['image_arr'] = self.flip_image(sample['image_arr'], flip_flags_xyd) + + if 'mask_arr' in sample: + sample['mask_arr'] = self.flip_image(sample['mask_arr'], flip_flags_xyd) + + if 'labels_arr' in sample: + sample['labels_arr'] = self.flip_image(sample['labels_arr'], flip_flags_xyd) + + if 'xf_cv' in sample: + sample['xf_cv'] = affine.cat_nx2x3( + affine.flip_xyd_matrices(flip_flags_xyd[None, ...], sample['image_arr'].shape[:2]), + sample['xf_cv'][None, ...], + )[0] + + return sample + + def transform_pair(self, sample0, sample1): + sample0 = sample0.copy() + sample1 = sample1.copy() + + # Flip flags + flip_flags_xyd = self.rng.binomial(1, 0.5, size=(2, 3)) != 0 + flip_flags_xyd = flip_flags_xyd & np.array([[self.hflip, self.vflip, self.hvflip]]) + + sample0['image_arr'] = self.flip_image(sample0['image_arr'], flip_flags_xyd[0]) + sample1['image_arr'] = self.flip_image(sample1['image_arr'], flip_flags_xyd[1]) + + if 'mask_arr' in sample0: + sample0['mask_arr'] = self.flip_image(sample0['mask_arr'], flip_flags_xyd[0]) + sample1['mask_arr'] = self.flip_image(sample1['mask_arr'], flip_flags_xyd[1]) + + if 'labels_arr' in sample0: + sample0['labels_arr'] = self.flip_image(sample0['labels_arr'], flip_flags_xyd[0]) + sample1['labels_arr'] = self.flip_image(sample1['labels_arr'], flip_flags_xyd[1]) + + if 'xf_cv' in sample0: + # False -> 1, True -> -1 + flip_scale_xy = flip_flags_xyd[:, :2] * -2 + 1 + # Negative scale factors need to be combined with a translation whose value is (image_size - 1) + # Mask the translation with the flip flags to only apply it where flipping is done + flip_xlat_xy = flip_flags_xyd[:, :2] * (np.array([sample0['image_arr'].shape[:2][::-1], + sample1['image_arr'].shape[:2][::-1]]).astype(float) - 1) + + hv_flip_xf = affine.identity_xf(2) + hv_flip_xf[flip_flags_xyd[:, 2]] = hv_flip_xf[flip_flags_xyd[:, 2], ::-1, :] + + xf01 = np.stack([sample0['xf_cv'], sample1['xf_cv']], axis=0) + xf01 = affine.cat_nx2x3( + hv_flip_xf, + affine.translation_matrices(flip_xlat_xy), + affine.scale_matrices(flip_scale_xy), + xf01, + ) + sample0['xf_cv'] = xf01[0] + sample1['xf_cv'] = xf01[1] + + return sample0, sample1 + diff --git a/legacy/Pretrain/utils/compute_sdf.py b/legacy/Pretrain/utils/compute_sdf.py new file mode 100644 index 0000000..a8a1505 --- /dev/null +++ b/legacy/Pretrain/utils/compute_sdf.py @@ -0,0 +1,32 @@ +import numpy as np +from scipy.ndimage import distance_transform_edt as distance +from skimage import segmentation as skimage_seg + +def compute_sdf(img_gt): + """ + compute the signed distance map of binary mask + input: segmentation, shape = (batch_size, x, y, z) + output: the Signed Distance Map (SDM) + sdf(x) = 0; x in segmentation boundary + -inf|x-y|; x in segmentation + +inf|x-y|; x out of segmentation + normalize sdf to [-1,1] + """ + normalized_sdf = np.zeros_like(img_gt, dtype=np.float32) + ids, counts = np.unique(img_gt, return_counts=True) + # remove id 0 + if ids[0] == 0: + ids = ids[1:] + # if ids is None + if len(ids) == 0: + return normalized_sdf + + for id in ids: + posmask = np.zeros_like(img_gt) + posmask[img_gt == id] = 1 + posmask = posmask.astype(np.bool) + if posmask.any(): + posdis = distance(posmask) + posdis = (posdis - posdis.min()) / (posdis.max() - posdis.min()) + normalized_sdf += posdis + return normalized_sdf diff --git a/legacy/Pretrain/utils/consistency_aug.py b/legacy/Pretrain/utils/consistency_aug.py new file mode 100644 index 0000000..9ee32db --- /dev/null +++ b/legacy/Pretrain/utils/consistency_aug.py @@ -0,0 +1,235 @@ +import cv2 +import torch +import random +import numpy as np +import torch.nn.functional as F + +def simple_augment(data, rule): + assert np.size(rule) == 4 + assert data.ndim == 3 + # z reflection + if rule[0]: + data = data[::-1, :, :] + # x reflection + if rule[1]: + data = data[:, :, ::-1] + # y reflection + if rule[2]: + data = data[:, ::-1, :] + # transpose in xy + if rule[3]: + data = np.transpose(data, (0, 2, 1)) + return data + +def simple_augment_torch(data, rule): + assert np.size(rule) == 4 + assert len(data.shape) == 4 + # z reflection + if rule[0]: + data = torch.flip(data, [1]) + # x reflection + if rule[1]: + data = torch.flip(data, [3]) + # y reflection + if rule[2]: + data = torch.flip(data, [2]) + # transpose in xy + if rule[3]: + data = data.permute(0, 1, 3, 2) + return data + +def simple_augment_reverse(data, rule): + assert np.size(rule) == 4 + assert len(data.shape) == 5 + # transpose in xy + if rule[3]: + # data = np.transpose(data, (0, 1, 2, 4, 3)) + data = data.permute(0, 1, 2, 4, 3) + # y reflection + if rule[2]: + # data = data[:, :, :, ::-1, :] + data = torch.flip(data, [3]) + # x reflection + if rule[1]: + # data = data[:, :, :, :, ::-1] + data = torch.flip(data, [4]) + # z reflection + if rule[0]: + # data = data[:, :, ::-1, :, :] + data = torch.flip(data, [2]) + return data + +def order_aug(imgs, num_patch=4): + assert imgs.shape[-1] % num_patch == 0 + patch_size = imgs.shape[-1] // num_patch + new_imgs = np.zeros_like(imgs, dtype=np.float32) + # ran_order = np.random.shuffle(np.arange(num_patch**2)) + ran_order = np.random.permutation(num_patch**2) + for k in range(num_patch**2): + xid_new = k // num_patch + yid_new = k % num_patch + order_id = ran_order[k] + xid_old = order_id // num_patch + yid_old = order_id % num_patch + new_imgs[:, xid_new*patch_size:(xid_new+1)*patch_size, yid_new*patch_size:(yid_new+1)*patch_size] = \ + imgs[:, xid_old*patch_size:(xid_old+1)*patch_size, yid_old*patch_size:(yid_old+1)*patch_size] + return new_imgs + +def gen_mask(imgs, model_type='superhuman', min_mask_counts=40, max_mask_counts=60, min_mask_size=[3, 5, 5], max_mask_size=[7, 20, 20]): + if model_type == 'mala': + net_crop_size = [14, 106, 106] + else: + net_crop_size = [0, 0, 0] + crop_size = list(imgs.shape) + mask = np.ones_like(imgs, dtype=np.float32) + mask_counts = random.randint(min_mask_counts, max_mask_counts) + mask_size_z = random.randint(min_mask_size[0], max_mask_size[0]) + mask_size_xy = random.randint(min_mask_size[1], max_mask_size[1]) + for k in range(mask_counts): + mz = random.randint(net_crop_size[0], crop_size[0]-mask_size_z-net_crop_size[0]) + my = random.randint(net_crop_size[1], crop_size[1]-mask_size_xy-net_crop_size[1]) + mx = random.randint(net_crop_size[2], crop_size[2]-mask_size_xy-net_crop_size[2]) + mask[mz:mz+mask_size_z, my:my+mask_size_xy, mx:mx+mask_size_xy] = 0 + return mask + +def resize_3d(imgs, det_size, mode='linear'): + new_imgs = [] + for k in range(imgs.shape[0]): + temp = imgs[k] + if mode == 'linear': + temp = cv2.resize(temp, (det_size, det_size), interpolation=cv2.INTER_LINEAR) + elif mode == 'nearest': + temp = cv2.resize(temp, (det_size, det_size), interpolation=cv2.INTER_NEAREST) + else: + raise AttributeError('No this interpolation mode!') + new_imgs.append(temp) + new_imgs = np.asarray(new_imgs) + return new_imgs + +def add_gauss_noise(imgs, min_std=0.1, max_std=0.1, norm_mode='norm'): + if min_std == max_std: + std = min_std + else: + std = random.uniform(min_std, max_std) + gaussian = np.random.normal(0, std, (imgs.shape)) + imgs = imgs + gaussian + if norm_mode == 'norm': + imgs = (imgs-np.min(imgs)) / (np.max(imgs)-np.min(imgs)) + elif norm_mode == 'trunc': + imgs[imgs<0] = 0 + imgs[imgs>1] = 1 + else: + pass + return imgs + +def add_gauss_blur(imgs, kernel_size=5, sigma=0): + outs = [] + for k in range(imgs.shape[0]): + temp = imgs[k] + temp = cv2.GaussianBlur(temp, (kernel_size,kernel_size), sigma) + outs.append(temp) + outs = np.asarray(outs, dtype=np.float32) + outs[outs < 0] = 0 + outs[outs > 1] = 1 + return outs + +def add_intensity(imgs, contrast_factor=0.1, brightness_factor=0.1): + # imgs *= 1 + (np.random.rand() - 0.5) * contrast_factor + # imgs += (np.random.rand() - 0.5) * brightness_factor + # imgs = np.clip(imgs, 0, 1) + # imgs **= 2.0**(np.random.rand()*2 - 1) + imgs *= 1 + contrast_factor + imgs += brightness_factor + imgs = np.clip(imgs, 0, 1) + return imgs + +def interp_5d(data, det_size, mode='bilinear'): + assert len(data.shape) == 5, "the dimension of data must be 5!" + out = [] + depth = data.shape[2] + for k in range(depth): + temp = data[:,:,k,:,:] + if mode == 'bilinear': + temp = F.interpolate(temp, size=(det_size, det_size), mode='bilinear', align_corners=True) + elif mode == 'nearest': + temp = F.interpolate(temp, size=(det_size, det_size), mode='nearest') + out.append(temp) + out = torch.stack(out, dim=2) + return out + +def convert_consistency_scale(gt, det_size): + B, C, D, H, W = gt.shape + gt = gt.detach().clone() + out_gt = [] + masks = [] + for k in range(B): + gt_temp = gt[k] + det_size_temp = det_size[k] + if det_size_temp[0] == gt_temp.shape[-1]: + mask = torch.ones_like(gt_temp) + out_gt.append(gt_temp) + masks.append(mask) + elif det_size_temp[0] > gt_temp.shape[-1]: + shift = int((det_size_temp[0] - gt_temp.shape[-1]) // 2) + gt_padding = torch.zeros((1, C, D, int(det_size_temp[0]), int(det_size_temp[0]))).float().cuda() + mask = torch.zeros_like(gt_padding) + gt_padding[0,:,:,shift:-shift,shift:-shift] = gt_temp + mask[0,:,:,shift:-shift,shift:-shift] = 1 + # gt_padding = F.interpolate(gt_padding, size=(D, int(gt_temp.shape[-1]), int(gt_temp.shape[-1])), mode='trilinear', align_corners=True) + gt_padding = interp_5d(gt_padding, int(gt_temp.shape[-1]), mode='bilinear') + mask = F.interpolate(mask, size=(D, int(gt_temp.shape[-1]), int(gt_temp.shape[-1])), mode='nearest') + gt_padding = torch.squeeze(gt_padding, dim=0) + mask = torch.squeeze(mask, dim=0) + out_gt.append(gt_padding) + masks.append(mask) + else: + shift = int((gt_temp.shape[-1] - det_size_temp[0]) // 2) + mask = torch.zeros_like(gt_temp) + mask[:,:,shift:-shift,shift:-shift] = 1 + gt_padding = gt_temp[:,:,shift:-shift,shift:-shift] + gt_padding = gt_padding[None, ...] + # gt_padding = F.interpolate(gt_padding, size=(D, int(gt_temp.shape[-1]), int(gt_temp.shape[-1])), mode='trilinear', align_corners=True) + gt_padding = interp_5d(gt_padding, int(gt_temp.shape[-1]), mode='bilinear') + gt_padding = torch.squeeze(gt_padding, dim=0) + out_gt.append(gt_padding) + masks.append(mask) + out_gt = torch.stack(out_gt, dim=0) + masks = torch.stack(masks, dim=0) + return out_gt, masks + +def convert_consistency_flip(gt, rules): + B, C, D, H, W = gt.shape + gt = gt.detach().clone() + rules = rules.data.cpu().numpy() + out_gt = [] + for k in range(B): + gt_temp = gt[k] + rule = rules[k] + gt_temp = simple_augment_torch(gt_temp, rule) + out_gt.append(gt_temp) + out_gt = torch.stack(out_gt, dim=0) + return out_gt + +def convert_consistency_rot(gt, rotnums): + B, C, D, H, W = gt.shape + gt = gt.detach().clone() + rotnums = rotnums.data.cpu().numpy() + out_gt = [] + for k in range(B): + gt_temp = gt[k] + rotnum = int(rotnums[k]) + gt_temp = torch.rot90(gt_temp, rotnum, [2,3]) + out_gt.append(gt_temp) + out_gt = torch.stack(out_gt, dim=0) + return out_gt + + +if __name__ == "__main__": + test = np.random.random((3,3,18,160,160)).astype(np.float32) + det_size = np.asarray([[160],[320],[80]], dtype=np.float32) + test = torch.tensor(test).to('cuda:0') + det_size = torch.tensor(det_size).to('cuda:0') + out_gt, masks = convert_consistency_scale(test, det_size) + print(out_gt.shape) + + diff --git a/legacy/Pretrain/utils/consistency_aug_perturbations.py b/legacy/Pretrain/utils/consistency_aug_perturbations.py new file mode 100644 index 0000000..e1a2d6d --- /dev/null +++ b/legacy/Pretrain/utils/consistency_aug_perturbations.py @@ -0,0 +1,728 @@ +import cv2 +import torch +import random +import numpy as np +import torch.nn.functional as F +from skimage import filters +from scipy.ndimage.filters import gaussian_filter + +from utils.augmentation import create_identity_transformation +from utils.augmentation import create_elastic_transformation +from utils.augmentation import apply_transformation +from utils.augmentation import misalign +from utils.flow_synthesis import gen_line, gen_flow +from utils.image_warp import image_warp + + +def simple_augment(data, rule): + assert np.size(rule) == 4 + assert data.ndim == 3 + # z reflection + if rule[0]: + data = data[::-1, :, :] + # x reflection + if rule[1]: + data = data[:, :, ::-1] + # y reflection + if rule[2]: + data = data[:, ::-1, :] + # transpose in xy + if rule[3]: + data = np.transpose(data, (0, 2, 1)) + return data + + +def simple_augment_torch(data, rule): + assert np.size(rule) == 4 + assert len(data.shape) == 4 + # z reflection + if rule[0]: + data = torch.flip(data, [1]) + # x reflection + if rule[1]: + data = torch.flip(data, [3]) + # y reflection + if rule[2]: + data = torch.flip(data, [2]) + # transpose in xy + if rule[3]: + data = data.permute(0, 1, 3, 2) + return data + + +def simple_augment_reverse(data, rule): + assert np.size(rule) == 4 + assert len(data.shape) == 5 + # transpose in xy + if rule[3]: + # data = np.transpose(data, (0, 1, 2, 4, 3)) + data = data.permute(0, 1, 2, 4, 3) + # y reflection + if rule[2]: + # data = data[:, :, :, ::-1, :] + data = torch.flip(data, [3]) + # x reflection + if rule[1]: + # data = data[:, :, :, :, ::-1] + data = torch.flip(data, [4]) + # z reflection + if rule[0]: + # data = data[:, :, ::-1, :, :] + data = torch.flip(data, [2]) + return data + + +def order_aug(imgs, num_patch=4): + assert imgs.shape[-1] % num_patch == 0 + patch_size = imgs.shape[-1] // num_patch + new_imgs = np.zeros_like(imgs, dtype=np.float32) + # ran_order = np.random.shuffle(np.arange(num_patch**2)) + ran_order = np.random.permutation(num_patch ** 2) + for k in range(num_patch ** 2): + xid_new = k // num_patch + yid_new = k % num_patch + order_id = ran_order[k] + xid_old = order_id // num_patch + yid_old = order_id % num_patch + new_imgs[:, xid_new * patch_size:(xid_new + 1) * patch_size, yid_new * patch_size:(yid_new + 1) * patch_size] = \ + imgs[:, xid_old * patch_size:(xid_old + 1) * patch_size, yid_old * patch_size:(yid_old + 1) * patch_size] + return new_imgs + + +def gen_mask(imgs, net_crop_size=[0, 0, 0], mask_counts=80, mask_size_z=8, mask_size_xy=15): + crop_size = list(imgs.shape) + mask = np.ones_like(imgs, dtype=np.float32) + for k in range(mask_counts): + mz = random.randint(net_crop_size[0], crop_size[0] - mask_size_z - net_crop_size[0]) + my = random.randint(net_crop_size[1], crop_size[1] - mask_size_xy - net_crop_size[1]) + mx = random.randint(net_crop_size[2], crop_size[2] - mask_size_xy - net_crop_size[2]) + mask[mz:mz + mask_size_z, my:my + mask_size_xy, mx:mx + mask_size_xy] = 0 + return mask + + +def resize_3d(imgs, det_size, mode='linear'): + new_imgs = [] + for k in range(imgs.shape[0]): + temp = imgs[k] + if mode == 'linear': + temp = cv2.resize(temp, (det_size, det_size), interpolation=cv2.INTER_LINEAR) + elif mode == 'nearest': + temp = cv2.resize(temp, (det_size, det_size), interpolation=cv2.INTER_NEAREST) + else: + raise AttributeError('No this interpolation mode!') + new_imgs.append(temp) + new_imgs = np.asarray(new_imgs) + return new_imgs + + +def add_gauss_noise(imgs, std=0.01, norm_mode='norm'): + gaussian = np.random.normal(0, std, (imgs.shape)) + imgs = imgs + gaussian + if norm_mode == 'norm': + imgs = (imgs - np.min(imgs)) / (np.max(imgs) - np.min(imgs)) + elif norm_mode == 'trunc': + imgs[imgs < 0] = 0 + imgs[imgs > 1] = 1 + else: + raise NotImplementedError + return imgs + + +def add_gauss_blur(imgs, kernel_size=5, sigma=0): + outs = [] + for k in range(imgs.shape[0]): + temp = imgs[k] + temp = cv2.GaussianBlur(temp, (kernel_size, kernel_size), sigma) + outs.append(temp) + outs = np.asarray(outs, dtype=np.float32) + outs[outs < 0] = 0 + outs[outs > 1] = 1 + return outs + + +def add_sobel(imgs, if_mean=False): + outs = [] + for k in range(imgs.shape[0]): + temp = imgs[k] + # sobelx = cv2.Sobel(temp, cv2.CV_32F, 1, 0) + # sobely = cv2.Sobel(temp, cv2.CV_32F, 0, 1) + # sobelx = filters.sobel_h(temp) + # sobely = filters.sobel_v(temp) + # dst = cv2.addWeighted(sobelx, 0.5, sobely, 0.5, 0) + # dst = sobelx * 0.5 + sobely * 0.5 + # dst = cv2.Sobel(temp, cv2.CV_32F, 1, 1) + if if_mean: + mean = np.mean(temp) + else: + mean = 0 + dst = filters.sobel(temp) + mean + outs.append(dst) + outs = np.asarray(outs, dtype=np.float32) + outs[outs < 0] = 0 + outs[outs > 1] = 1 + return outs + + +def add_intensity(imgs, contrast_factor=0.1, brightness_factor=0.1): + # imgs *= 1 + (np.random.rand() - 0.5) * contrast_factor + # imgs += (np.random.rand() - 0.5) * brightness_factor + # imgs = np.clip(imgs, 0, 1) + # imgs **= 2.0**(np.random.rand()*2 - 1) + imgs *= 1 + contrast_factor + imgs += brightness_factor + imgs = np.clip(imgs, 0, 1) + return imgs + + +def interp_5d(data, det_size, mode='bilinear'): + assert len(data.shape) == 5, "the dimension of data must be 5!" + out = [] + depth = data.shape[2] + for k in range(depth): + temp = data[:, :, k, :, :] + if mode == 'bilinear': + temp = F.interpolate(temp, size=(det_size, det_size), mode='bilinear', align_corners=True) + elif mode == 'nearest': + temp = F.interpolate(temp, size=(det_size, det_size), mode='nearest') + out.append(temp) + out = torch.stack(out, dim=2) + return out + + +def convert_consistency_scale(gt, det_size): + B, C, D, H, W = gt.shape + gt = gt.detach().clone() + out_gt = [] + masks = [] + for k in range(B): + gt_temp = gt[k] + det_size_temp = det_size[k] + if det_size_temp[0] == gt_temp.shape[-1]: + mask = torch.ones_like(gt_temp) + out_gt.append(gt_temp) + masks.append(mask) + elif det_size_temp[0] > gt_temp.shape[-1]: + shift = int((det_size_temp[0] - gt_temp.shape[-1]) // 2) + gt_padding = torch.zeros((1, C, D, int(det_size_temp[0]), int(det_size_temp[0]))).float().cuda() + mask = torch.zeros_like(gt_padding) + gt_padding[0, :, :, shift:-shift, shift:-shift] = gt_temp + mask[0, :, :, shift:-shift, shift:-shift] = 1 + # gt_padding = F.interpolate(gt_padding, size=(D, int(gt_temp.shape[-1]), int(gt_temp.shape[-1])), mode='trilinear', align_corners=True) + gt_padding = interp_5d(gt_padding, int(gt_temp.shape[-1]), mode='bilinear') + mask = F.interpolate(mask, size=(D, int(gt_temp.shape[-1]), int(gt_temp.shape[-1])), mode='nearest') + gt_padding = torch.squeeze(gt_padding, dim=0) + mask = torch.squeeze(mask, dim=0) + out_gt.append(gt_padding) + masks.append(mask) + else: + shift = int((gt_temp.shape[-1] - det_size_temp[0]) // 2) + mask = torch.zeros_like(gt_temp) + mask[:, :, shift:-shift, shift:-shift] = 1 + gt_padding = gt_temp[:, :, shift:-shift, shift:-shift] + gt_padding = gt_padding[None, ...] + # gt_padding = F.interpolate(gt_padding, size=(D, int(gt_temp.shape[-1]), int(gt_temp.shape[-1])), mode='trilinear', align_corners=True) + gt_padding = interp_5d(gt_padding, int(gt_temp.shape[-1]), mode='bilinear') + gt_padding = torch.squeeze(gt_padding, dim=0) + out_gt.append(gt_padding) + masks.append(mask) + out_gt = torch.stack(out_gt, dim=0) + masks = torch.stack(masks, dim=0) + return out_gt, masks + + +def convert_consistency_flip(gt, rules): + B, C, D, H, W = gt.shape + gt = gt.detach().clone() + rules = rules.data.cpu().numpy() + out_gt = [] + for k in range(B): + gt_temp = gt[k] + rule = rules[k] + gt_temp = simple_augment_torch(gt_temp, rule) + out_gt.append(gt_temp) + out_gt = torch.stack(out_gt, dim=0) + return out_gt + + +class Rescale(object): + def __init__(self, scale_factor=2, det_shape=[18, 160, 160]): + super(Rescale, self).__init__() + self.scale_factor = scale_factor + self.det_shape = det_shape + + def __call__(self, data): + src_shape = data.shape + assert src_shape[-1] >= self.det_shape[-1] * self.scale_factor, 'data shape must be 160*2' + min_size = self.det_shape[-1] // self.scale_factor + max_size = self.det_shape[-1] * self.scale_factor + scale_size = random.randint(min_size // 2, max_size // 2) + scale_size = scale_size * 2 + + if scale_size < src_shape[-1]: + shift = (src_shape[-1] - scale_size) // 2 + data = data[:, shift:-shift, shift:-shift] + data = resize_3d(data, self.det_shape[-1], mode='linear') + return data, scale_size + + +class Filp(object): + def __init__(self): + super(Filp, self).__init__() + + def __call__(self, data): + rule = np.random.randint(2, size=4) + data = simple_augment(data, rule) + return data, rule + + +# class Intensity(object): +# def __init__(self, contrast_factor=0.3, brightness_factor=0.3): +# super(Intensity, self).__init__() +# self.CONTRAST_FACTOR = contrast_factor +# self.BRIGHTNESS_FACTOR = brightness_factor + +# def __call__(self, data): +# data = self._augment3D(data) +# return data + +# def _augment3D(self, data, random_state=np.random): +# """ +# Adapted from ELEKTRONN (http://elektronn.org/). +# """ +# ran = random_state.rand(3) + +# transformedimgs = np.copy(data) +# transformedimgs *= 1 + (ran[0] - 0.5)*self.CONTRAST_FACTOR +# transformedimgs += (ran[1] - 0.5)*self.BRIGHTNESS_FACTOR +# transformedimgs = np.clip(transformedimgs, 0, 1) +# transformedimgs **= 2.0**(ran[2]*2 - 1) + +# return transformedimgs +class Intensity(object): + def __init__(self, mode='mix', + skip_ratio=0.5, + CONTRAST_FACTOR=0.1, + BRIGHTNESS_FACTOR=0.1): + '''Image intensity augmentation, including adjusting contrast and brightness + Args: + mode: '2D', '3D' or 'mix' (contains '2D' and '3D') + skip_ratio: Probability of execution + CONTRAST_FACTOR: Contrast factor + BRIGHTNESS_FACTOR : Brightness factor + ''' + super(Intensity, self).__init__() + assert mode == '3D' or mode == '2D' or mode == 'mix' + self.mode = mode + self.ratio = skip_ratio + self.CONTRAST_FACTOR = CONTRAST_FACTOR + self.BRIGHTNESS_FACTOR = BRIGHTNESS_FACTOR + + def __call__(self, inputs): + return self.forward(inputs) + + def forward(self, inputs): + inputs = inputs.copy() + skiprand = np.random.rand() + if self.mode == 'mix': + # The probability of '2D' is more than '3D' + threshold = 1 - (1 - self.ratio) / 2 + mode_ = '3D' if skiprand > threshold else '2D' + else: + mode_ = self.mode + if mode_ == '2D': + inputs = self.augment2D(inputs) + elif mode_ == '3D': + inputs = self.augment3D(inputs) + inputs[inputs < 0] = 0 + inputs[inputs > 1] = 1 + return inputs + + def augment2D(self, imgs): + for z in range(imgs.shape[-3]): + img = imgs[z, :, :] + img *= 1 + (np.random.rand() - 0.5) * self.CONTRAST_FACTOR + img += (np.random.rand() - 0.5) * self.BRIGHTNESS_FACTOR + img = np.clip(img, 0, 1) + img **= 2.0 ** (np.random.rand() * 2 - 1) + imgs[z, :, :] = img + return imgs + + def augment3D(self, imgs): + imgs *= 1 + (np.random.rand() - 0.5) * self.CONTRAST_FACTOR + imgs += (np.random.rand() - 0.5) * self.BRIGHTNESS_FACTOR + imgs = np.clip(imgs, 0, 1) + imgs **= 2.0 ** (np.random.rand() * 2 - 1) + return imgs + + +class GaussBlur(object): + def __init__(self, min_kernel=3, max_kernel=9, min_sigma=0, max_sigma=2): + super(GaussBlur, self).__init__() + self.min_kernel = min_kernel + self.max_kernel = max_kernel + self.min_sigma = min_sigma + self.max_sigma = max_sigma + + def __call__(self, data): + kernel_size = random.randint(self.min_kernel // 2, self.max_kernel // 2) + kernel_size = kernel_size * 2 + 1 + sigma = random.uniform(self.min_sigma, self.max_sigma) + data = add_gauss_blur(data, kernel_size=kernel_size, sigma=sigma) + return data + + +class GaussNoise(object): + def __init__(self, min_std=0.01, max_std=0.2, norm_mode='trunc'): + super(GaussNoise, self).__init__() + self.min_std = min_std + self.max_std = max_std + self.norm_mode = norm_mode + + def __call__(self, data): + std = random.uniform(self.min_std, self.max_std) + data = add_gauss_noise(data, std=std, norm_mode=self.norm_mode) + return data + + +class Cutout(object): + def __init__(self, model_type='superhuman'): + super(Cutout, self).__init__() + self.model_type = model_type + # mask size + self.min_mask_size = [3, 5, 5] + self.max_mask_size = [5, 10, 10] + self.min_mask_counts = 20 + self.max_mask_counts = 50 + self.net_crop_size = [0, 0, 0] + + def __call__(self, data): + mask_counts = random.randint(self.min_mask_counts, self.max_mask_counts) + mask_size_z = random.randint(self.min_mask_size[0], self.max_mask_size[0]) + mask_size_xy = random.randint(self.min_mask_size[1], self.max_mask_size[1]) + mask = gen_mask(data, net_crop_size=self.net_crop_size, \ + mask_counts=mask_counts, \ + mask_size_z=mask_size_z, \ + mask_size_xy=mask_size_xy) + data = data * mask + return data + + +class SobelFilter(object): + def __init__(self, if_mean=False): + super(SobelFilter, self).__init__() + self.if_mean = if_mean + + def __call__(self, data): + data = add_sobel(data, if_mean=self.if_mean) + return data + + +class Mixup(object): + def __init__(self, min_alpha=0.01, max_alpha=0.1): + super(Mixup, self).__init__() + self.min_alpha = min_alpha + self.max_alpha = max_alpha + + def __call__(self, data, auxi): + alpha = random.uniform(self.min_alpha, self.max_alpha) + data = auxi * alpha + data * (1 - alpha) + data[data < 0] = 0 + data[data > 1] = 1 + return data + + +class Missing(object): + '''Missing section augmentation + Args: + filling: the way of filling, 'zero' or 'random' + mode: 'mix', 'fully' or 'partially' + skip_ratio: Probability of execution + miss_ratio: Probability of missing + ''' + + def __init__(self, filling='zero', mode='mix', skip_ratio=0.5, miss_fully_ratio=0.2, miss_part_ratio=0.5): + super(Missing, self).__init__() + self.filling = filling + self.mode = mode + self.ratio = skip_ratio + self.miss_fully_ratio = miss_fully_ratio + self.miss_part_ratio = miss_part_ratio + + def __call__(self, imgs): + return self.forward(imgs) + + def forward(self, imgs): + imgs = imgs.copy() + if self.mode == 'mix': + r = np.random.rand() + mode_ = 'fully' if r < 0.5 else 'partially' + else: + mode_ = self.mode + if mode_ == 'fully': + imgs = self.augment_fully(imgs) + elif mode_ == 'partially': + imgs = self.augment_partially(imgs) + return imgs + + def augment_fully(self, imgs): + d, h, w = imgs.shape + for i in range(d): + if np.random.rand() < self.miss_fully_ratio: + if self.filling == 'zero': + imgs[i] = 0 + elif self.filling == 'random': + imgs[i] = np.random.rand(h, w) + return imgs + + def augment_partially(self, imgs, size_ratio=0.3): + d, h, w = imgs.shape + for i in range(d): + if np.random.rand() < self.miss_part_ratio: + # randomly generate an area + sub_h = random.randint(int(h * size_ratio), int(h * (1 - size_ratio))) + sub_w = random.randint(int(w * size_ratio), int(w * (1 - size_ratio))) + start_h = random.randint(0, h - sub_h - 1) + start_w = random.randint(0, w - sub_w - 1) + if self.filling == 'zero': + imgs[i, start_h:start_h + sub_h, start_w:start_w + sub_w] = 0 + elif self.filling == 'random': + imgs[i, start_h:start_h + sub_h, start_w:start_w + sub_w] = np.random.rand(sub_h, sub_w) + return imgs + + +class BlurEnhanced(object): + '''Out-of-focus (Blur) section augmentation + Args: + mode: 'mix', 'fully' or 'partially' + skip_ratio: Probability of execution + blur_ratio: Probability of blur + ''' + + def __init__(self, mode='mix', skip_ratio=0.5, blur_fully_ratio=0.5, blur_part_ratio=0.7): + super(BlurEnhanced, self).__init__() + self.mode = mode + self.ratio = skip_ratio + self.blur_fully_ratio = blur_fully_ratio + self.blur_part_ratio = blur_part_ratio + + def __call__(self, imgs): + return self.forward(imgs) + + def forward(self, imgs): + imgs = imgs.copy() + if self.mode == 'mix': + r = np.random.rand() + mode_ = 'fully' if r < 0.5 else 'partially' + else: + mode_ = self.mode + if mode_ == 'fully': + imgs = self.augment_fully(imgs) + elif mode_ == 'partially': + imgs = self.augment_partially(imgs) + return imgs + + def augment_fully(self, imgs): + d, h, w = imgs.shape + for i in range(d): + if np.random.rand() < self.blur_fully_ratio: + sigma = np.random.uniform(0, 5) + imgs[i] = gaussian_filter(imgs[i], sigma) + return imgs + + def augment_partially(self, imgs, size_ratio=0.3): + d, h, w = imgs.shape + for i in range(d): + if np.random.rand() < self.blur_part_ratio: + # randomly generate an area + sub_h = random.randint(int(h * size_ratio), int(h * (1 - size_ratio))) + sub_w = random.randint(int(w * size_ratio), int(w * (1 - size_ratio))) + start_h = random.randint(0, h - sub_h - 1) + start_w = random.randint(0, w - sub_w - 1) + sigma = np.random.uniform(0, 5) + imgs[i, start_h:start_h + sub_h, start_w:start_w + sub_w] = \ + gaussian_filter(imgs[i, start_h:start_h + sub_h, start_w:start_w + sub_w], sigma) + return imgs + + +class Elastic(object): + '''Elasticly deform a batch. Requests larger batches upstream to avoid data + loss due to rotation and jitter. + Args: + control_point_spacing (``tuple`` of ``int``): + Distance between control points for the elastic deformation, in + voxels per dimension. + jitter_sigma (``tuple`` of ``float``): + Standard deviation of control point jitter distribution, in voxels + per dimension. + rotation_interval (``tuple`` of two ``floats``): + Interval to randomly sample rotation angles from (0, 2PI). + prob_slip (``float``): + Probability of a section to "slip", i.e., be independently moved in + x-y. + prob_shift (``float``): + Probability of a section and all following sections to move in x-y. + max_misalign (``int``): + Maximal voxels to shift in x and y. Samples will be drawn + uniformly. Used if ``prob_slip + prob_shift`` > 0. + subsample (``int``): + Instead of creating an elastic transformation on the full + resolution, create one subsampled by the given factor, and linearly + interpolate to obtain the full resolution transformation. This can + significantly speed up this node, at the expense of having visible + piecewise linear deformations for large factors. Usually, a factor + of 4 can savely by used without noticable changes. However, the + default is 1 (i.e., no subsampling). + ''' + + def __init__( + self, + control_point_spacing=[4, 40, 40], + jitter_sigma=[0, 0, 0], # recommend: [0, 2, 2] + rotation_interval=[0, 0], + prob_slip=0, # recommend: 0.05 + prob_shift=0, # recommend: 0.05 + max_misalign=0, # 17 in superhuman + subsample=1, + padding=None, + skip_ratio=0.5): # recommend: 10 + super(Elastic, self).__init__() + + self.control_point_spacing = control_point_spacing + self.jitter_sigma = jitter_sigma + self.rotation_start = rotation_interval[0] + self.rotation_max_amount = rotation_interval[1] - rotation_interval[0] + self.prob_slip = prob_slip + self.prob_shift = prob_shift + self.max_misalign = max_misalign + self.subsample = subsample + self.padding = padding + self.ratio = skip_ratio + + def create_transformation(self, target_shape): + transformation = create_identity_transformation( + target_shape, + subsample=self.subsample) + # shape: channel,d,w,h + + # elastic ##cost time## + if sum(self.jitter_sigma) > 0: + transformation += create_elastic_transformation( + target_shape, + self.control_point_spacing, + self.jitter_sigma, + subsample=self.subsample) + + # rotation = random.random()*self.rotation_max_amount + self.rotation_start + # if rotation != 0: + # transformation += create_rotation_transformation( + # target_shape, + # rotation, + # subsample=self.subsample) + + # if self.subsample > 1: + # transformation = upscale_transformation( + # transformation, + # tuple(target_shape)) + + if self.prob_slip + self.prob_shift > 0: + misalign(transformation, self.prob_slip, + self.prob_shift, self.max_misalign) + + return transformation + + def __call__(self, imgs): + return self.forward(imgs) + + def forward(self, imgs): + '''Args: + imgs: numpy array, [Z, Y, Z], it always is float and 0~1 + mask: numpy array, [Z, Y, Z], it always is uint16 + ''' + imgs = imgs.copy() + if self.padding is not None: + imgs = np.pad(imgs, ((0, 0), \ + (self.padding, self.padding), \ + (self.padding, self.padding)), mode='reflect') + transform = self.create_transformation(imgs.shape) + img_transform = apply_transformation(imgs, + transform, + interpolate=False, + outside_value=0, # imgs.dtype.type(-1) + output=np.zeros(imgs.shape, dtype=np.float32)) + # seg_transform[seg_transform < 0] = 0 + # seg_transform[seg_transform > 60000] = 0 + if self.padding is not None and self.padding != 0: + img_transform = img_transform[:, self.padding:-self.padding, self.padding:-self.padding] + return img_transform + + +class Artifact(object): + def __init__(self, min_sec=1, max_sec=5): + super(Artifact, self).__init__() + self.min_sec = min_sec + self.max_sec = max_sec + self.offset = 40 + + def __call__(self, data): + data = data.copy() + num_sec = random.randint(self.min_sec, self.max_sec) + num_imgs = data.shape[0] + rand_sample = random.sample(range(num_imgs), num_sec) + for k in rand_sample: + tmp = data[k].copy() + tmp = (tmp * 255).astype(np.uint8) + tmp = self.degradation(tmp) + data[k] = tmp.astype(np.float32) / 255.0 + return data + + def degradation(self, img): + img = np.pad(img, ((self.offset, self.offset), (self.offset, self.offset)), mode='reflect') + height, width = img.shape + line_width = random.randint(5, 10) + fold_width = random.randint(line_width + 1, 40) + + # two end points + # 1 --> top line (0, x) + # 2 --> right line (x, width) + # 3 --> bottom line (height, x) + # 4 --> left line (x, 0) + k1 = random.randint(1, 4) + k2 = random.randint(1, 4) + while k1 == k2: + k2 = random.randint(1, 4) + + if k1 == 1: + x = random.randint(1, width - 1) + p1 = [0, x] + elif k1 == 2: + x = random.randint(1, height - 1) + p1 = [x, width] + elif k1 == 3: + x = random.randint(1, width - 1) + p1 = [height, x] + else: + x = random.randint(1, height - 1) + p1 = [x, 0] + + if k2 == 1: + x = random.randint(1, width - 1) + p2 = [0, x] + elif k2 == 2: + x = random.randint(1, height - 1) + p2 = [x, width] + elif k2 == 3: + x = random.randint(1, width - 1) + p2 = [height, x] + else: + x = random.randint(1, height - 1) + p2 = [x, 0] + + dis_k = random.uniform(0.00001, 0.1) + k, b = gen_line(p1, p2) + flow, flow2, mask = gen_flow(height, width, k, b, line_width, fold_width, dis_k) + + deformed = image_warp(img, flow, mode='bilinear') # nearest or bilinear + deformed = (deformed * mask).astype(np.uint8) + deformed = deformed[self.offset:-self.offset, self.offset:-self.offset] + + return deformed diff --git a/legacy/Pretrain/utils/consistency_aug_perturbations_sup.py b/legacy/Pretrain/utils/consistency_aug_perturbations_sup.py new file mode 100644 index 0000000..346622e --- /dev/null +++ b/legacy/Pretrain/utils/consistency_aug_perturbations_sup.py @@ -0,0 +1,763 @@ +import cv2 +import torch +import random +import numpy as np +import torch.nn.functional as F +from skimage import filters +from scipy.ndimage.filters import gaussian_filter + +from utils.augmentation import create_identity_transformation +from utils.augmentation import create_elastic_transformation +from utils.augmentation import apply_transformation +from utils.augmentation import misalign +from utils.flow_synthesis import gen_line, gen_flow +from utils.image_warp import image_warp + + +def simple_augment(data, rule): + assert np.size(rule) == 4 + assert data.ndim == 3 + # z reflection + if rule[0]: + data = data[::-1, :, :] + # x reflection + if rule[1]: + data = data[:, :, ::-1] + # y reflection + if rule[2]: + data = data[:, ::-1, :] + # transpose in xy + if rule[3]: + data = np.transpose(data, (0, 2, 1)) + return data + + +def simple_augment_torch(data, rule): + assert np.size(rule) == 4 + assert len(data.shape) == 4 + # z reflection + if rule[0]: + data = torch.flip(data, [1]) + # x reflection + if rule[1]: + data = torch.flip(data, [3]) + # y reflection + if rule[2]: + data = torch.flip(data, [2]) + # transpose in xy + if rule[3]: + data = data.permute(0, 1, 3, 2) + return data + + +def simple_augment_reverse(data, rule): + assert np.size(rule) == 4 + assert len(data.shape) == 5 + # transpose in xy + if rule[3]: + # data = np.transpose(data, (0, 1, 2, 4, 3)) + data = data.permute(0, 1, 2, 4, 3) + # y reflection + if rule[2]: + # data = data[:, :, :, ::-1, :] + data = torch.flip(data, [3]) + # x reflection + if rule[1]: + # data = data[:, :, :, :, ::-1] + data = torch.flip(data, [4]) + # z reflection + if rule[0]: + # data = data[:, :, ::-1, :, :] + data = torch.flip(data, [2]) + return data + + +def order_aug(imgs, num_patch=4): + assert imgs.shape[-1] % num_patch == 0 + patch_size = imgs.shape[-1] // num_patch + new_imgs = np.zeros_like(imgs, dtype=np.float32) + # ran_order = np.random.shuffle(np.arange(num_patch**2)) + ran_order = np.random.permutation(num_patch ** 2) + for k in range(num_patch ** 2): + xid_new = k // num_patch + yid_new = k % num_patch + order_id = ran_order[k] + xid_old = order_id // num_patch + yid_old = order_id % num_patch + new_imgs[:, xid_new * patch_size:(xid_new + 1) * patch_size, yid_new * patch_size:(yid_new + 1) * patch_size] = \ + imgs[:, xid_old * patch_size:(xid_old + 1) * patch_size, yid_old * patch_size:(yid_old + 1) * patch_size] + return new_imgs + + +def gen_mask(imgs, net_crop_size=[0, 0, 0], mask_counts=80, mask_size_z=8, mask_size_xy=15): + crop_size = list(imgs.shape) + mask = np.ones_like(imgs, dtype=np.float32) + for k in range(mask_counts): + mz = random.randint(net_crop_size[0], crop_size[0] - mask_size_z - net_crop_size[0]) + my = random.randint(net_crop_size[1], crop_size[1] - mask_size_xy - net_crop_size[1]) + mx = random.randint(net_crop_size[2], crop_size[2] - mask_size_xy - net_crop_size[2]) + mask[mz:mz + mask_size_z, my:my + mask_size_xy, mx:mx + mask_size_xy] = 0 + return mask + + +def resize_3d(imgs, det_size, mode='linear'): + new_imgs = [] + for k in range(imgs.shape[0]): + temp = imgs[k] + if mode == 'linear': + temp = cv2.resize(temp, (det_size, det_size), interpolation=cv2.INTER_LINEAR) + elif mode == 'nearest': + temp = cv2.resize(temp, (det_size, det_size), interpolation=cv2.INTER_NEAREST) + else: + raise AttributeError('No this interpolation mode!') + new_imgs.append(temp) + new_imgs = np.asarray(new_imgs) + return new_imgs + + +def add_gauss_noise(imgs, std=0.01, norm_mode='norm'): + gaussian = np.random.normal(0, std, (imgs.shape)) + imgs = imgs + gaussian + if norm_mode == 'norm': + imgs = (imgs - np.min(imgs)) / (np.max(imgs) - np.min(imgs)) + elif norm_mode == 'trunc': + imgs[imgs < 0] = 0 + imgs[imgs > 1] = 1 + else: + raise NotImplementedError + return imgs + + +def add_gauss_blur(imgs, kernel_size=5, sigma=0): + outs = [] + for k in range(imgs.shape[0]): + temp = imgs[k] + temp = cv2.GaussianBlur(temp, (kernel_size, kernel_size), sigma) + outs.append(temp) + outs = np.asarray(outs, dtype=np.float32) + outs[outs < 0] = 0 + outs[outs > 1] = 1 + return outs + + +def add_sobel(imgs, if_mean=False): + outs = [] + for k in range(imgs.shape[0]): + temp = imgs[k] + # sobelx = cv2.Sobel(temp, cv2.CV_32F, 1, 0) + # sobely = cv2.Sobel(temp, cv2.CV_32F, 0, 1) + # sobelx = filters.sobel_h(temp) + # sobely = filters.sobel_v(temp) + # dst = cv2.addWeighted(sobelx, 0.5, sobely, 0.5, 0) + # dst = sobelx * 0.5 + sobely * 0.5 + # dst = cv2.Sobel(temp, cv2.CV_32F, 1, 1) + if if_mean: + mean = np.mean(temp) + else: + mean = 0 + dst = filters.sobel(temp) + mean + outs.append(dst) + outs = np.asarray(outs, dtype=np.float32) + outs[outs < 0] = 0 + outs[outs > 1] = 1 + return outs + + +def add_intensity(imgs, contrast_factor=0.1, brightness_factor=0.1): + # imgs *= 1 + (np.random.rand() - 0.5) * contrast_factor + # imgs += (np.random.rand() - 0.5) * brightness_factor + # imgs = np.clip(imgs, 0, 1) + # imgs **= 2.0**(np.random.rand()*2 - 1) + imgs *= 1 + contrast_factor + imgs += brightness_factor + imgs = np.clip(imgs, 0, 1) + return imgs + + +def interp_5d(data, det_size, mode='bilinear'): + assert len(data.shape) == 5, "the dimension of data must be 5!" + out = [] + depth = data.shape[2] + for k in range(depth): + temp = data[:, :, k, :, :] + if mode == 'bilinear': + temp = F.interpolate(temp, size=(det_size, det_size), mode='bilinear', align_corners=True) + elif mode == 'nearest': + temp = F.interpolate(temp, size=(det_size, det_size), mode='nearest') + out.append(temp) + out = torch.stack(out, dim=2) + return out + + +def convert_consistency_scale(gt, det_size): + B, C, D, H, W = gt.shape + gt = gt.detach().clone() + out_gt = [] + masks = [] + for k in range(B): + gt_temp = gt[k] + det_size_temp = det_size[k] + if det_size_temp[0] == gt_temp.shape[-1]: + mask = torch.ones_like(gt_temp) + out_gt.append(gt_temp) + masks.append(mask) + elif det_size_temp[0] > gt_temp.shape[-1]: + shift = int((det_size_temp[0] - gt_temp.shape[-1]) // 2) + gt_padding = torch.zeros((1, C, D, int(det_size_temp[0]), int(det_size_temp[0]))).float().cuda() + mask = torch.zeros_like(gt_padding) + gt_padding[0, :, :, shift:-shift, shift:-shift] = gt_temp + mask[0, :, :, shift:-shift, shift:-shift] = 1 + # gt_padding = F.interpolate(gt_padding, size=(D, int(gt_temp.shape[-1]), int(gt_temp.shape[-1])), mode='trilinear', align_corners=True) + gt_padding = interp_5d(gt_padding, int(gt_temp.shape[-1]), mode='bilinear') + mask = F.interpolate(mask, size=(D, int(gt_temp.shape[-1]), int(gt_temp.shape[-1])), mode='nearest') + gt_padding = torch.squeeze(gt_padding, dim=0) + mask = torch.squeeze(mask, dim=0) + out_gt.append(gt_padding) + masks.append(mask) + else: + shift = int((gt_temp.shape[-1] - det_size_temp[0]) // 2) + mask = torch.zeros_like(gt_temp) + mask[:, :, shift:-shift, shift:-shift] = 1 + gt_padding = gt_temp[:, :, shift:-shift, shift:-shift] + gt_padding = gt_padding[None, ...] + # gt_padding = F.interpolate(gt_padding, size=(D, int(gt_temp.shape[-1]), int(gt_temp.shape[-1])), mode='trilinear', align_corners=True) + gt_padding = interp_5d(gt_padding, int(gt_temp.shape[-1]), mode='bilinear') + gt_padding = torch.squeeze(gt_padding, dim=0) + out_gt.append(gt_padding) + masks.append(mask) + out_gt = torch.stack(out_gt, dim=0) + masks = torch.stack(masks, dim=0) + return out_gt, masks + + +def convert_consistency_flip(gt, rules): + B, C, D, H, W = gt.shape + gt = gt.detach().clone() + rules = rules.data.cpu().numpy() + out_gt = [] + for k in range(B): + gt_temp = gt[k] + rule = rules[k] + gt_temp = simple_augment_torch(gt_temp, rule) + out_gt.append(gt_temp) + out_gt = torch.stack(out_gt, dim=0) + return out_gt + + +class Rescale(object): + def __init__(self, scale_factor=2, det_shape=[18, 160, 160]): + super(Rescale, self).__init__() + self.scale_factor = scale_factor + self.det_shape = det_shape + + def __call__(self, data): + src_shape = data.shape + assert src_shape[-1] >= self.det_shape[-1] * self.scale_factor, 'data shape must be 160*2' + min_size = self.det_shape[-1] // self.scale_factor + max_size = self.det_shape[-1] * self.scale_factor + scale_size = random.randint(min_size // 2, max_size // 2) + scale_size = scale_size * 2 + + if scale_size < src_shape[-1]: + shift = (src_shape[-1] - scale_size) // 2 + data = data[:, shift:-shift, shift:-shift] + data = resize_3d(data, self.det_shape[-1], mode='linear') + return data, scale_size + + +class Filp(object): + def __init__(self): + super(Filp, self).__init__() + + def __call__(self, data): + rule = np.random.randint(2, size=4) + data = simple_augment(data, rule) + return data, rule + + +# class Intensity(object): +# def __init__(self, contrast_factor=0.3, brightness_factor=0.3): +# super(Intensity, self).__init__() +# self.CONTRAST_FACTOR = contrast_factor +# self.BRIGHTNESS_FACTOR = brightness_factor + +# def __call__(self, data): +# data = self._augment3D(data) +# return data + +# def _augment3D(self, data, random_state=np.random): +# """ +# Adapted from ELEKTRONN (http://elektronn.org/). +# """ +# ran = random_state.rand(3) + +# transformedimgs = np.copy(data) +# transformedimgs *= 1 + (ran[0] - 0.5)*self.CONTRAST_FACTOR +# transformedimgs += (ran[1] - 0.5)*self.BRIGHTNESS_FACTOR +# transformedimgs = np.clip(transformedimgs, 0, 1) +# transformedimgs **= 2.0**(ran[2]*2 - 1) + +# return transformedimgs +class Intensity(object): + def __init__(self, mode='mix', + skip_ratio=0.5, + CONTRAST_FACTOR=0.1, + BRIGHTNESS_FACTOR=0.1): + '''Image intensity augmentation, including adjusting contrast and brightness + Args: + mode: '2D', '3D' or 'mix' (contains '2D' and '3D') + skip_ratio: Probability of execution + CONTRAST_FACTOR: Contrast factor + BRIGHTNESS_FACTOR : Brightness factor + ''' + super(Intensity, self).__init__() + assert mode == '3D' or mode == '2D' or mode == 'mix' + self.mode = mode + self.ratio = skip_ratio + self.CONTRAST_FACTOR = CONTRAST_FACTOR + self.BRIGHTNESS_FACTOR = BRIGHTNESS_FACTOR + + def __call__(self, inputs): + return self.forward(inputs) + + def forward(self, inputs): + inputs = inputs.copy() + skiprand = np.random.rand() + if self.mode == 'mix': + # The probability of '2D' is more than '3D' + threshold = 1 - (1 - self.ratio) / 2 + mode_ = '3D' if skiprand > threshold else '2D' + else: + mode_ = self.mode + if mode_ == '2D': + inputs = self.augment2D(inputs) + elif mode_ == '3D': + inputs = self.augment3D(inputs) + inputs[inputs < 0] = 0 + inputs[inputs > 1] = 1 + return inputs + + def augment2D(self, imgs): + for z in range(imgs.shape[-3]): + img = imgs[z, :, :] + img *= 1 + (np.random.rand() - 0.5) * self.CONTRAST_FACTOR + img += (np.random.rand() - 0.5) * self.BRIGHTNESS_FACTOR + img = np.clip(img, 0, 1) + img **= 2.0 ** (np.random.rand() * 2 - 1) + imgs[z, :, :] = img + return imgs + + def augment3D(self, imgs): + imgs *= 1 + (np.random.rand() - 0.5) * self.CONTRAST_FACTOR + imgs += (np.random.rand() - 0.5) * self.BRIGHTNESS_FACTOR + imgs = np.clip(imgs, 0, 1) + imgs **= 2.0 ** (np.random.rand() * 2 - 1) + return imgs + + +class GaussBlur(object): + def __init__(self, min_kernel=3, max_kernel=9, min_sigma=0, max_sigma=2): + super(GaussBlur, self).__init__() + self.min_kernel = min_kernel + self.max_kernel = max_kernel + self.min_sigma = min_sigma + self.max_sigma = max_sigma + + def __call__(self, data): + kernel_size = random.randint(self.min_kernel // 2, self.max_kernel // 2) + kernel_size = kernel_size * 2 + 1 + sigma = random.uniform(self.min_sigma, self.max_sigma) + data = add_gauss_blur(data, kernel_size=kernel_size, sigma=sigma) + return data + + +class GaussNoise(object): + def __init__(self, min_std=0.01, max_std=0.2, norm_mode='trunc'): + super(GaussNoise, self).__init__() + self.min_std = min_std + self.max_std = max_std + self.norm_mode = norm_mode + + def __call__(self, data): + std = random.uniform(self.min_std, self.max_std) + data = add_gauss_noise(data, std=std, norm_mode=self.norm_mode) + return data + + +class Cutout(object): + def __init__(self, model_type='superhuman'): + super(Cutout, self).__init__() + self.model_type = model_type + # mask size + if self.model_type == 'mala': + self.min_mask_size = [5, 5, 5] + self.max_mask_size = [8, 12, 12] + self.min_mask_counts = 40 + self.max_mask_counts = 60 + self.net_crop_size = [14, 106, 106] + else: + self.min_mask_size = [5, 15, 15] + self.max_mask_size = [10, 25, 25] + self.min_mask_counts = 20 + self.max_mask_counts = 50 + self.net_crop_size = [0, 0, 0] + + def __call__(self, data): + mask_counts = random.randint(self.min_mask_counts, self.max_mask_counts) + mask_size_z = random.randint(self.min_mask_size[0], self.max_mask_size[0]) + mask_size_xy = random.randint(self.min_mask_size[1], self.max_mask_size[1]) + mask = gen_mask(data, net_crop_size=self.net_crop_size, \ + mask_counts=mask_counts, \ + mask_size_z=mask_size_z, \ + mask_size_xy=mask_size_xy) + data = data * mask + return data + +class Cutout_P(object): + def __init__(self, model_type='superhuman'): + super(Cutout, self).__init__() + self.model_type = model_type + # mask size + if self.model_type == 'mala': + self.min_mask_size = [5, 5, 5] + self.max_mask_size = [8, 12, 12] + self.min_mask_counts = 40 + self.max_mask_counts = 60 + self.net_crop_size = [14, 106, 106] + else: + self.min_mask_size = [3, 9, 9] + self.max_mask_size = [5, 15, 15] + self.min_mask_counts = 10 + self.max_mask_counts = 30 + self.net_crop_size = [0, 0, 0] + + def __call__(self, data): + mask_counts = random.randint(self.min_mask_counts, self.max_mask_counts) + mask_size_z = random.randint(self.min_mask_size[0], self.max_mask_size[0]) + mask_size_xy = random.randint(self.min_mask_size[1], self.max_mask_size[1]) + mask = gen_mask(data, net_crop_size=self.net_crop_size, \ + mask_counts=mask_counts, \ + mask_size_z=mask_size_z, \ + mask_size_xy=mask_size_xy) + data = data * mask + return data + +class SobelFilter(object): + def __init__(self, if_mean=False): + super(SobelFilter, self).__init__() + self.if_mean = if_mean + + def __call__(self, data): + data = add_sobel(data, if_mean=self.if_mean) + return data + + +class Mixup(object): + def __init__(self, min_alpha=0.01, max_alpha=0.1): + super(Mixup, self).__init__() + self.min_alpha = min_alpha + self.max_alpha = max_alpha + + def __call__(self, data, auxi): + alpha = random.uniform(self.min_alpha, self.max_alpha) + data = auxi * alpha + data * (1 - alpha) + data[data < 0] = 0 + data[data > 1] = 1 + return data + + +class Missing(object): + '''Missing section augmentation + Args: + filling: the way of filling, 'zero' or 'random' + mode: 'mix', 'fully' or 'partially' + skip_ratio: Probability of execution + miss_ratio: Probability of missing + ''' + + def __init__(self, filling='zero', mode='mix', skip_ratio=0.5, miss_fully_ratio=0.2, miss_part_ratio=0.5): + super(Missing, self).__init__() + self.filling = filling + self.mode = mode + self.ratio = skip_ratio + self.miss_fully_ratio = miss_fully_ratio + self.miss_part_ratio = miss_part_ratio + + def __call__(self, imgs): + return self.forward(imgs) + + def forward(self, imgs): + imgs = imgs.copy() + if self.mode == 'mix': + r = np.random.rand() + mode_ = 'fully' if r < 0.5 else 'partially' + else: + mode_ = self.mode + if mode_ == 'fully': + imgs = self.augment_fully(imgs) + elif mode_ == 'partially': + imgs = self.augment_partially(imgs) + return imgs + + def augment_fully(self, imgs): + d, h, w = imgs.shape + for i in range(d): + if np.random.rand() < self.miss_fully_ratio: + if self.filling == 'zero': + imgs[i] = 0 + elif self.filling == 'random': + imgs[i] = np.random.rand(h, w) + return imgs + + def augment_partially(self, imgs, size_ratio=0.3): + d, h, w = imgs.shape + for i in range(d): + if np.random.rand() < self.miss_part_ratio: + # randomly generate an area + sub_h = random.randint(int(h * size_ratio), int(h * (1 - size_ratio))) + sub_w = random.randint(int(w * size_ratio), int(w * (1 - size_ratio))) + start_h = random.randint(0, h - sub_h - 1) + start_w = random.randint(0, w - sub_w - 1) + if self.filling == 'zero': + imgs[i, start_h:start_h + sub_h, start_w:start_w + sub_w] = 0 + elif self.filling == 'random': + imgs[i, start_h:start_h + sub_h, start_w:start_w + sub_w] = np.random.rand(sub_h, sub_w) + return imgs + + +class BlurEnhanced(object): + '''Out-of-focus (Blur) section augmentation + Args: + mode: 'mix', 'fully' or 'partially' + skip_ratio: Probability of execution + blur_ratio: Probability of blur + ''' + + def __init__(self, mode='mix', skip_ratio=0.5, blur_fully_ratio=0.5, blur_part_ratio=0.7): + super(BlurEnhanced, self).__init__() + self.mode = mode + self.ratio = skip_ratio + self.blur_fully_ratio = blur_fully_ratio + self.blur_part_ratio = blur_part_ratio + + def __call__(self, imgs): + return self.forward(imgs) + + def forward(self, imgs): + imgs = imgs.copy() + if self.mode == 'mix': + r = np.random.rand() + mode_ = 'fully' if r < 0.5 else 'partially' + else: + mode_ = self.mode + if mode_ == 'fully': + imgs = self.augment_fully(imgs) + elif mode_ == 'partially': + imgs = self.augment_partially(imgs) + return imgs + + def augment_fully(self, imgs): + d, h, w = imgs.shape + for i in range(d): + if np.random.rand() < self.blur_fully_ratio: + sigma = np.random.uniform(0, 5) + imgs[i] = gaussian_filter(imgs[i], sigma) + return imgs + + def augment_partially(self, imgs, size_ratio=0.3): + d, h, w = imgs.shape + for i in range(d): + if np.random.rand() < self.blur_part_ratio: + # randomly generate an area + sub_h = random.randint(int(h * size_ratio), int(h * (1 - size_ratio))) + sub_w = random.randint(int(w * size_ratio), int(w * (1 - size_ratio))) + start_h = random.randint(0, h - sub_h - 1) + start_w = random.randint(0, w - sub_w - 1) + sigma = np.random.uniform(0, 5) + imgs[i, start_h:start_h + sub_h, start_w:start_w + sub_w] = \ + gaussian_filter(imgs[i, start_h:start_h + sub_h, start_w:start_w + sub_w], sigma) + return imgs + + +class Elastic(object): + '''Elasticly deform a batch. Requests larger batches upstream to avoid data + loss due to rotation and jitter. + Args: + control_point_spacing (``tuple`` of ``int``): + Distance between control points for the elastic deformation, in + voxels per dimension. + jitter_sigma (``tuple`` of ``float``): + Standard deviation of control point jitter distribution, in voxels + per dimension. + rotation_interval (``tuple`` of two ``floats``): + Interval to randomly sample rotation angles from (0, 2PI). + prob_slip (``float``): + Probability of a section to "slip", i.e., be independently moved in + x-y. + prob_shift (``float``): + Probability of a section and all following sections to move in x-y. + max_misalign (``int``): + Maximal voxels to shift in x and y. Samples will be drawn + uniformly. Used if ``prob_slip + prob_shift`` > 0. + subsample (``int``): + Instead of creating an elastic transformation on the full + resolution, create one subsampled by the given factor, and linearly + interpolate to obtain the full resolution transformation. This can + significantly speed up this node, at the expense of having visible + piecewise linear deformations for large factors. Usually, a factor + of 4 can savely by used without noticable changes. However, the + default is 1 (i.e., no subsampling). + ''' + + def __init__( + self, + control_point_spacing=[4, 40, 40], + jitter_sigma=[0, 0, 0], # recommend: [0, 2, 2] + rotation_interval=[0, 0], + prob_slip=0, # recommend: 0.05 + prob_shift=0, # recommend: 0.05 + max_misalign=0, # 17 in superhuman + subsample=1, + padding=None, + skip_ratio=0.5): # recommend: 10 + super(Elastic, self).__init__() + + self.control_point_spacing = control_point_spacing + self.jitter_sigma = jitter_sigma + self.rotation_start = rotation_interval[0] + self.rotation_max_amount = rotation_interval[1] - rotation_interval[0] + self.prob_slip = prob_slip + self.prob_shift = prob_shift + self.max_misalign = max_misalign + self.subsample = subsample + self.padding = padding + self.ratio = skip_ratio + + def create_transformation(self, target_shape): + transformation = create_identity_transformation( + target_shape, + subsample=self.subsample) + # shape: channel,d,w,h + + # elastic ##cost time## + if sum(self.jitter_sigma) > 0: + transformation += create_elastic_transformation( + target_shape, + self.control_point_spacing, + self.jitter_sigma, + subsample=self.subsample) + + # rotation = random.random()*self.rotation_max_amount + self.rotation_start + # if rotation != 0: + # transformation += create_rotation_transformation( + # target_shape, + # rotation, + # subsample=self.subsample) + + # if self.subsample > 1: + # transformation = upscale_transformation( + # transformation, + # tuple(target_shape)) + + if self.prob_slip + self.prob_shift > 0: + misalign(transformation, self.prob_slip, + self.prob_shift, self.max_misalign) + + return transformation + + def __call__(self, imgs): + return self.forward(imgs) + + def forward(self, imgs): + '''Args: + imgs: numpy array, [Z, Y, Z], it always is float and 0~1 + mask: numpy array, [Z, Y, Z], it always is uint16 + ''' + imgs = imgs.copy() + if self.padding is not None: + imgs = np.pad(imgs, ((0, 0), \ + (self.padding, self.padding), \ + (self.padding, self.padding)), mode='reflect') + transform = self.create_transformation(imgs.shape) + img_transform = apply_transformation(imgs, + transform, + interpolate=False, + outside_value=0, # imgs.dtype.type(-1) + output=np.zeros(imgs.shape, dtype=np.float32)) + # seg_transform[seg_transform < 0] = 0 + # seg_transform[seg_transform > 60000] = 0 + if self.padding is not None and self.padding != 0: + img_transform = img_transform[:, self.padding:-self.padding, self.padding:-self.padding] + return img_transform + + +class Artifact(object): + def __init__(self, min_sec=1, max_sec=5): + super(Artifact, self).__init__() + self.min_sec = min_sec + self.max_sec = max_sec + self.offset = 40 + + def __call__(self, data): + data = data.copy() + num_sec = random.randint(self.min_sec, self.max_sec) + num_imgs = data.shape[0] + rand_sample = random.sample(range(num_imgs), num_sec) + for k in rand_sample: + tmp = data[k].copy() + tmp = (tmp * 255).astype(np.uint8) + tmp = self.degradation(tmp) + data[k] = tmp.astype(np.float32) / 255.0 + return data + + def degradation(self, img): + img = np.pad(img, ((self.offset, self.offset), (self.offset, self.offset)), mode='reflect') + height, width = img.shape + line_width = random.randint(5, 10) + fold_width = random.randint(line_width + 1, 40) + + # two end points + # 1 --> top line (0, x) + # 2 --> right line (x, width) + # 3 --> bottom line (height, x) + # 4 --> left line (x, 0) + k1 = random.randint(1, 4) + k2 = random.randint(1, 4) + while k1 == k2: + k2 = random.randint(1, 4) + + if k1 == 1: + x = random.randint(1, width - 1) + p1 = [0, x] + elif k1 == 2: + x = random.randint(1, height - 1) + p1 = [x, width] + elif k1 == 3: + x = random.randint(1, width - 1) + p1 = [height, x] + else: + x = random.randint(1, height - 1) + p1 = [x, 0] + + if k2 == 1: + x = random.randint(1, width - 1) + p2 = [0, x] + elif k2 == 2: + x = random.randint(1, height - 1) + p2 = [x, width] + elif k2 == 3: + x = random.randint(1, width - 1) + p2 = [height, x] + else: + x = random.randint(1, height - 1) + p2 = [x, 0] + + dis_k = random.uniform(0.00001, 0.1) + k, b = gen_line(p1, p2) + flow, flow2, mask = gen_flow(height, width, k, b, line_width, fold_width, dis_k) + + deformed = image_warp(img, flow, mode='bilinear') # nearest or bilinear + deformed = (deformed * mask).astype(np.uint8) + deformed = deformed[self.offset:-self.offset, self.offset:-self.offset] + + return deformed diff --git a/legacy/Pretrain/utils/coordinate.py b/legacy/Pretrain/utils/coordinate.py new file mode 100644 index 0000000..fc77f31 --- /dev/null +++ b/legacy/Pretrain/utils/coordinate.py @@ -0,0 +1,131 @@ +import numbers + +class Coordinate(tuple): + '''A ``tuple`` of integers. + Allows the following element-wise operators: addition, subtraction, + multiplication, division, absolute value, and negation. This allows to + perform simple arithmetics with coordinates, e.g.:: + shape = Coordinate((2, 3, 4)) + voxel_size = Coordinate((10, 5, 1)) + size = shape*voxel_size # == Coordinate((20, 15, 4)) + ''' + def __new__(cls, array_like): + return super(Coordinate, cls).__new__( + cls, + [ + int(x) + if x is not None + else None + for x in array_like]) + + def dims(self): + return len(self) + + def __neg__(self): + return Coordinate( + -a + if a is not None + else None + for a in self) + + def __abs__(self): + return Coordinate( + abs(a) + if a is not None + else None + for a in self) + + def __add__(self, other): + assert isinstance( + other, tuple), "can only add Coordinate or tuples to Coordinate" + assert self.dims() == len(other), "can only add Coordinate of equal dimensions" + return Coordinate( + a+b + if a is not None and b is not None + else None + for a, b in zip(self, other)) + + def __sub__(self, other): + assert isinstance( + other, tuple), "can only subtract Coordinate or tuples to Coordinate" + assert self.dims() == len(other), "can only subtract Coordinate of equal dimensions" + return Coordinate( + a-b + if a is not None and b is not None + else None + for a, b in zip(self, other)) + + def __mul__(self, other): + if isinstance(other, tuple): + assert self.dims() == len(other), "can only multiply Coordinate of equal dimensions" + return Coordinate( + a*b + if a is not None and b is not None + else None + for a, b in zip(self, other)) + + elif isinstance(other, numbers.Number): + return Coordinate( + a*other + if a is not None + else None + for a in self) + else: + raise TypeError( + "multiplication of Coordinate with type %s not supported" % type(other)) + + def __div__(self, other): + if isinstance(other, tuple): + assert self.dims() == len(other), "can only divide Coordinate of equal dimensions" + return Coordinate( + a/b + if a is not None and b is not None + else None + for a, b in zip(self, other)) + elif isinstance(other, numbers.Number): + return Coordinate( + a/other + if a is not None + else None + for a in self) + else: + raise TypeError( + "division of Coordinate with type %s not supported" % type(other)) + + def __truediv__(self, other): + if isinstance(other, tuple): + assert self.dims() == len(other), "can only divide Coordinate of equal dimensions" + return Coordinate( + a/b + if a is not None and b is not None + else None + for a, b in zip(self, other)) + elif isinstance(other, numbers.Number): + return Coordinate( + a/other + if a is not None + else None + for a in self) + else: + raise TypeError( + "division of Coordinate with type %s not supported" % type(other)) + + def __floordiv__(self, other): + if isinstance(other, tuple): + assert self.dims() == len(other), "can only divide Coordinate of equal dimensions" + return Coordinate( + a//b + if a is not None and b is not None + else None + for a, b in zip(self, other)) + elif isinstance(other, numbers.Number): + return Coordinate( + a//other + if a is not None + else None + for a in self) + else: + raise TypeError( + "division of Coordinate with type %s not supported" % type(other)) + + diff --git a/legacy/Pretrain/utils/encoder_dict.py b/legacy/Pretrain/utils/encoder_dict.py new file mode 100644 index 0000000..3aedf4e --- /dev/null +++ b/legacy/Pretrain/utils/encoder_dict.py @@ -0,0 +1,159 @@ +import torch + +ENCODER_DICT = [ + 'embed_in.0.weight', + 'embed_in.0.bias', + 'conv0.block1.0.weight', + 'conv0.block1.1.weight', + 'conv0.block1.1.bias', + 'conv0.block2.0.weight', + 'conv0.block2.1.weight', + 'conv0.block2.1.bias', + 'conv0.block2.3.weight', + 'conv0.block3.weight', + 'conv0.block3.bias', + 'conv1.block1.0.weight', + 'conv1.block1.1.weight', + 'conv1.block1.1.bias', + 'conv1.block2.0.weight', + 'conv1.block2.1.weight', + 'conv1.block2.1.bias', + 'conv1.block2.3.weight', + 'conv1.block3.weight', + 'conv1.block3.bias', + 'conv2.block1.0.weight', + 'conv2.block1.1.weight', + 'conv2.block1.1.bias', + 'conv2.block2.0.weight', + 'conv2.block2.1.weight', + 'conv2.block2.1.bias', + 'conv2.block2.3.weight', + 'conv2.block3.weight', + 'conv2.block3.bias', + 'conv3.block1.0.weight', + 'conv3.block1.1.weight', + 'conv3.block1.1.bias', + 'conv3.block2.0.weight', + 'conv3.block2.1.weight', + 'conv3.block2.1.bias', + 'conv3.block2.3.weight', + 'conv3.block3.weight', + 'conv3.block3.bias', + 'center.block1.0.weight', + 'center.block1.1.weight', + 'center.block1.1.bias', + 'center.block2.0.weight', + 'center.block2.1.weight', + 'center.block2.1.bias', + 'center.block2.3.weight', + 'center.block3.weight', + 'center.block3.bias' +] + +ENCODER_DICT2 = [ + 'embed_in', + 'conv0', + 'conv1', + 'conv2', + 'conv3', + 'center' +] + +ENCODER_DECODER_DICT2 = [ + 'embed_in', + 'conv0', + 'conv1', + 'conv2', + 'conv3', + 'center', + 'up0', + 'cat0', + 'conv4', + 'up1', + 'cat1', + 'conv5', + 'up2', + 'cat2', + 'conv6', + 'up3', + 'cat3', + 'conv7', + 'embed_out' +] + +def freeze_layers(model, if_skip='False'): + print('Freeze encoder!') + for param in model.embed_in.parameters(): + param.requires_grad = False + for param in model.conv0.parameters(): + param.requires_grad = False + for param in model.conv1.parameters(): + param.requires_grad = False + for param in model.conv2.parameters(): + param.requires_grad = False + for param in model.conv3.parameters(): + param.requires_grad = False + for param in model.center.parameters(): + param.requires_grad = False + if if_skip == 'True': + print('Freeze encoder and decoder!') + for param in model.up0.parameters(): + param.requires_grad = False + for param in model.cat0.parameters(): + param.requires_grad = False + for param in model.conv4.parameters(): + param.requires_grad = False + for param in model.up1.parameters(): + param.requires_grad = False + for param in model.cat1.parameters(): + param.requires_grad = False + for param in model.conv5.parameters(): + param.requires_grad = False + for param in model.up2.parameters(): + param.requires_grad = False + for param in model.cat2.parameters(): + param.requires_grad = False + for param in model.conv6.parameters(): + param.requires_grad = False + for param in model.up3.parameters(): + param.requires_grad = False + for param in model.cat3.parameters(): + param.requires_grad = False + for param in model.conv7.parameters(): + param.requires_grad = False + for param in model.embed_out.parameters(): + param.requires_grad = False + for param in model.out_put.parameters(): + param.requires_grad = False + return model + +def difflr_optimizer(model, lr_base=1e-4, lr_encoder=1e-5, if_skip='False'): + print('Adjust the LR of encoder!') + encoder_layers_param = [] + encoder_layers_param += list(map(id, model.embed_in.parameters())) + encoder_layers_param += list(map(id, model.conv0.parameters())) + encoder_layers_param += list(map(id, model.conv1.parameters())) + encoder_layers_param += list(map(id, model.conv2.parameters())) + encoder_layers_param += list(map(id, model.conv3.parameters())) + encoder_layers_param += list(map(id, model.center.parameters())) + if if_skip == 'True': + print('Adjust the LR of encoder and decoder!') + encoder_layers_param += list(map(id, model.up0.parameters())) + encoder_layers_param += list(map(id, model.cat0.parameters())) + encoder_layers_param += list(map(id, model.conv4.parameters())) + encoder_layers_param += list(map(id, model.up1.parameters())) + encoder_layers_param += list(map(id, model.cat1.parameters())) + encoder_layers_param += list(map(id, model.conv5.parameters())) + encoder_layers_param += list(map(id, model.up2.parameters())) + encoder_layers_param += list(map(id, model.cat2.parameters())) + encoder_layers_param += list(map(id, model.conv6.parameters())) + encoder_layers_param += list(map(id, model.up3.parameters())) + encoder_layers_param += list(map(id, model.cat3.parameters())) + encoder_layers_param += list(map(id, model.conv7.parameters())) + encoder_layers_param += list(map(id, model.embed_out.parameters())) + encoder_param = filter(lambda p: id(p) in encoder_layers_param, model.parameters()) + decoder_param = filter(lambda p: id(p) not in encoder_layers_param, model.parameters()) + optimizer = torch.optim.Adam([{'params': encoder_param, 'lr': lr_encoder}, + {'params': decoder_param}], + lr=lr_base, betas=(0.9, 0.999), eps=0.01, weight_decay=1e-6, amsgrad=True) + return optimizer diff --git a/legacy/Pretrain/utils/flow_display.py b/legacy/Pretrain/utils/flow_display.py new file mode 100644 index 0000000..3ae85ee --- /dev/null +++ b/legacy/Pretrain/utils/flow_display.py @@ -0,0 +1,180 @@ +import numpy as np +import matplotlib.pyplot as plt + +def make_color_wheel(): + """ + Generate color wheel according Middlebury color code + :return: Color wheel + """ + RY = 15 + YG = 6 + GC = 4 + CB = 11 + BM = 13 + MR = 6 + + ncols = RY + YG + GC + CB + BM + MR + + colorwheel = np.zeros([ncols, 3]) + + col = 0 + + # RY + colorwheel[0:RY, 0] = 255 + colorwheel[0:RY, 1] = np.transpose(np.floor(255*np.arange(0, RY) / RY)) + col += RY + + # YG + colorwheel[col:col+YG, 0] = 255 - np.transpose(np.floor(255*np.arange(0, YG) / YG)) + colorwheel[col:col+YG, 1] = 255 + col += YG + + # GC + colorwheel[col:col+GC, 1] = 255 + colorwheel[col:col+GC, 2] = np.transpose(np.floor(255*np.arange(0, GC) / GC)) + col += GC + + # CB + colorwheel[col:col+CB, 1] = 255 - np.transpose(np.floor(255*np.arange(0, CB) / CB)) + colorwheel[col:col+CB, 2] = 255 + col += CB + + # BM + colorwheel[col:col+BM, 2] = 255 + colorwheel[col:col+BM, 0] = np.transpose(np.floor(255*np.arange(0, BM) / BM)) + col += + BM + + # MR + colorwheel[col:col+MR, 2] = 255 - np.transpose(np.floor(255 * np.arange(0, MR) / MR)) + colorwheel[col:col+MR, 0] = 255 + + return colorwheel + +def compute_color(u, v): + """ + compute optical flow color map + :param u: optical flow horizontal map + :param v: optical flow vertical map + :return: optical flow in color code + """ + [h, w] = u.shape + img = np.zeros([h, w, 3]) + nanIdx = np.isnan(u) | np.isnan(v) + u[nanIdx] = 0 + v[nanIdx] = 0 + + colorwheel = make_color_wheel() + ncols = np.size(colorwheel, 0) + + rad = np.sqrt(u**2+v**2) + + a = np.arctan2(-v, -u) / np.pi + + fk = (a+1) / 2 * (ncols - 1) + 1 + + k0 = np.floor(fk).astype(int) + + k1 = k0 + 1 + k1[k1 == ncols+1] = 1 + f = fk - k0 + + for i in range(0, np.size(colorwheel,1)): + tmp = colorwheel[:, i] + col0 = tmp[k0-1] / 255 + col1 = tmp[k1-1] / 255 + col = (1-f) * col0 + f * col1 + + idx = rad <= 1 + col[idx] = 1-rad[idx]*(1-col[idx]) + notidx = np.logical_not(idx) + + col[notidx] *= 0.75 + img[:, :, i] = np.uint8(np.floor(255 * col*(1-nanIdx))) + + return img + +def flow_to_image(flow): + """ + Convert flow into middlebury color code image + :param flow: optical flow map + :return: optical flow image in middlebury color + """ + u = flow[:, :, 0] + v = flow[:, :, 1] + + maxu = -999. + maxv = -999. + minu = 999. + minv = 999. + UNKNOWN_FLOW_THRESH = 1e7 + SMALLFLOW = 0.0 + LARGEFLOW = 1e8 + + idxUnknow = (abs(u) > UNKNOWN_FLOW_THRESH) | (abs(v) > UNKNOWN_FLOW_THRESH) + u[idxUnknow] = 0 + v[idxUnknow] = 0 + + maxu = max(maxu, np.max(u)) + minu = min(minu, np.min(u)) + + maxv = max(maxv, np.max(v)) + minv = min(minv, np.min(v)) + + rad = np.sqrt(u ** 2 + v ** 2) + maxrad = max(-1, np.max(rad)) + + u = u/(maxrad + np.finfo(float).eps) + v = v/(maxrad + np.finfo(float).eps) + + img = compute_color(u, v) + + idx = np.repeat(idxUnknow[:, :, np.newaxis], 3, axis=2) + img[idx] = 0 + + return np.uint8(img) + +def dense_flow(flow): + flow_img = flow_to_image(flow) + return flow_img + # plt.figure() + # plt.imshow(flow_img) + # plt.axis('off') + # plt.show() + +def sparse_flow(flow, X=None, Y=None, stride=1): + flow = flow.copy() + flow[:,:,0] = -flow[:,:,0] + if X is None: + height, width, _ = flow.shape + xx = np.arange(0,height,stride) + yy = np.arange(0,width,stride) + X, Y= np.meshgrid(xx,yy) + X = X.flatten() + Y = Y.flatten() + + # sample + sample_0 = flow[:, :, 0][xx] + sample_0 = sample_0.T + sample_x = sample_0[yy] + sample_x = sample_x.T + sample_1 = flow[:, :, 1][xx] + sample_1 = sample_1.T + sample_y = sample_1[yy] + sample_y = sample_y.T + + sample_x = sample_x[:,:,np.newaxis] + sample_y = sample_y[:,:,np.newaxis] + new_flow = np.concatenate([sample_x, sample_y], axis=2) + flow_x = new_flow[:, :, 0].flatten() + flow_y = new_flow[:, :, 1].flatten() + + # display + ax = plt.gca() + ax.xaxis.set_ticks_position('top') + ax.invert_yaxis() + # plt.quiver(X,Y, flow_x, flow_y, angles="xy", color="#666666") + ax.quiver(X,Y, flow_x, flow_y, color="#666666") + ax.grid() + # ax.legend() + plt.draw() + plt.show() \ No newline at end of file diff --git a/legacy/Pretrain/utils/flow_synthesis.py b/legacy/Pretrain/utils/flow_synthesis.py new file mode 100644 index 0000000..6396354 --- /dev/null +++ b/legacy/Pretrain/utils/flow_synthesis.py @@ -0,0 +1,161 @@ +import os +import math +import random +import numpy as np +from PIL import Image +import matplotlib.pyplot as plt +from utils.flow_display import dense_flow, sparse_flow +from utils.image_warp import image_warp + +mina = 0.000000001 +def gen_line(p1, p2): + denominator = p2[1] - p1[1] + if denominator == 0: + denominator = mina + k = (p2[0] - p1[0]) / denominator + b = p1[0] - (k * p1[1]) + return k, b + +def func_line(x, k, b): + y = k * x + b + return y + +def gen_flow(height, width, k, b, line_width=5, fold_width=10, dis_k=0.1): + grid_x = np.tile(np.expand_dims(np.arange(width), 0), [height, 1]) + grid_y = np.tile(np.expand_dims(np.arange(height), 1), [1, width]) + pos_x = grid_x.flatten() + pos_y = grid_y.flatten() + dis = (k * pos_x - pos_y + b) / (math.sqrt(k ** 2 + 1)) + # dis = 1 / dis + dis = dis.reshape((height, width)) + sign = np.zeros_like(dis) + mask = np.zeros_like(dis) + sign[dis > 0] = 1 + sign[dis < 0] = -1 + + dis_abs = np.abs(dis) + mask[dis_abs <= line_width] = 0 + mask[dis_abs > line_width] = 1 + + # dis = dis * 10 + # max_dis = np.max(dis) + # min_dis = np.min(dis) + # print(max_dis, min_dis) + # dis = (max_dis - dis) * sign + (min_dis - dis) * (1 - sign) + + mask_dis = np.ones_like(dis) + mask_dis2 = np.ones_like(dis) + dis_width = fold_width - line_width + mask_dis[dis_abs < line_width] = 0 + mask_dis[dis_abs >= line_width] = 1 + mask_dis2[dis_abs < fold_width] = 0 + mask_dis2[dis_abs >= fold_width] = 1 + + # dis_abs[dis_abs >= dis_width] = fold_width + dis_abs_s = np.zeros_like(dis_abs) + dis_abs_s2 = np.zeros_like(dis_abs) + dis_k = -dis_k + dis_b = dis_width - dis_k * line_width + dis_abs_s = dis_k * dis_abs + dis_b + dis_abs_s[dis_abs_s < 0] = 0 + dis_abs_s2 = dis_abs_s * mask_dis2 + dis_abs * (1 - mask_dis2) + dis_abs_s = dis_abs_s * mask_dis + dis_abs * (1 - mask_dis) + + dis = dis_abs_s * sign + dis2 = dis_abs_s2 * (-sign) + + if k == 0: + k_T = 1 / mina + else: + k_T = 1 / k + + angle = angle = math.atan(k_T) + sin_p = math.sin(angle) + cos_p = math.cos(angle) + + flow = np.zeros((height, width, 2), dtype=np.float32) + flow2 = np.zeros((height, width, 2), dtype=np.float32) + if k > 0: + flow[:, :, 0] = (dis * cos_p) + flow[:, :, 1] = -(dis * sin_p) + flow2[:, :, 0] = (dis2 * cos_p) + flow2[:, :, 1] = -(dis2 * sin_p) + else: + flow[:, :, 0] = -(dis * cos_p) + flow[:, :, 1] = (dis * sin_p) + flow2[:, :, 0] = -(dis2 * cos_p) + flow2[:, :, 1] = (dis2 * sin_p) + + # print(np.max(flow), np.min(flow)) + return flow, flow2, mask + +if __name__ == "__main__": + height = 256 + width = 256 + # line_width = 10 + # fold_width = 20 + for kkk in range(100): + line_width = random.randint(5, 20) + fold_width = random.randint(line_width+1, 80) + + # two end points + # 1 --> top line (0, x) + # 2 --> right line (x, width) + # 3 --> bottom line (height, x) + # 4 --> left line (x, 0) + k1 = random.randint(1, 4) + k2 = random.randint(1, 4) + while k1 == k2: + k2 = random.randint(1, 4) + + if k1 == 1: + x = random.randint(1, width-1) + p1 = [0, x] + elif k1 == 2: + x = random.randint(1, height-1) + p1 = [x, width] + elif k1 == 3: + x = random.randint(1, width-1) + p1 = [height, x] + else: + x = random.randint(1, height-1) + p1 = [x, 0] + + if k2 == 1: + x = random.randint(1, width-1) + p2 = [0, x] + elif k2 == 2: + x = random.randint(1, height-1) + p2 = [x, width] + elif k2 == 3: + x = random.randint(1, width-1) + p2 = [height, x] + else: + x = random.randint(1, height-1) + p2 = [x, 0] + + # p1 = [0, 128] + # p2 = [128, 256] + + # dis_k = random.uniform(0.001, 0.1) + dis_k = random.uniform(0.00001, 0.1) + k, b = gen_line(p1, p2) + + flow, flow2, mask = gen_flow(height, width, k, b, line_width, fold_width, dis_k) + # flow = flow * 10 + # print(flow[:10,-10:,0]) + # print(flow[:10,-10:,1]) + flow_show1 = dense_flow(flow) + flow_show2 = dense_flow(flow2) + flow_show = np.concatenate([flow_show1, flow_show2], axis=1) + Image.fromarray(flow_show).save('./temp/flow_'+str(kkk).zfill(4)+'.png') + # sparse_flow(flow2, stride=10) + + + # img = np.asarray(Image.open('./0000.png')) + # img = img[:256, :256] + + # deformed = image_warp(img, flow, mode='bilinear') # nearest or bilinear + # deformed = (deformed * mask).astype(np.uint8) + # Image.fromarray(img).save('./deformed1.png') + # Image.fromarray(deformed).save('./deformed2.png') diff --git a/legacy/Pretrain/utils/gen_pseudo.py b/legacy/Pretrain/utils/gen_pseudo.py new file mode 100644 index 0000000..25b15a9 --- /dev/null +++ b/legacy/Pretrain/utils/gen_pseudo.py @@ -0,0 +1,74 @@ +import math +import torch +import numpy as np +from yaml.events import NodeEvent + +class GenPseudo(object): + def __init__(self, mode='threshold', + threshold=0.99, + proportion=0.20): + super(GenPseudo, self).__init__() + self.mode = mode + self.threshold = threshold + self.proportion = proportion + + def __call__(self, inputs): + return self.forward(inputs) + + def forward(self, inputs): + inputs = inputs.detach().clone() + mask = torch.zeros_like(inputs) + if self.mode == 'threshold': + inputs[inputs > self.threshold] = 1 + mask[inputs == 1] = 1 + inputs[inputs < (1-self.threshold)] = 0 + mask[inputs == 0] = 1 + return inputs, mask + else: + num_classes = 2 # binary classification + pseudo_lb = [] + masks = [] + batch_size = inputs.shape[0] + for k in range(batch_size): + output_affs = inputs[k] + output_affs_0 = 1 - output_affs.clone() + output_affs_1 = output_affs.clone() + output_affs_all = torch.stack([output_affs_0, output_affs_1], dim=0) + probmap_max, pred_label = torch.max(output_affs_all, dim=0) + for idx_cls in range(num_classes): + out_div_all = [] + for i in range(3): + pred_label_temp = pred_label[i] + probmap_max_temp = probmap_max[i] + probmap_max_cls_temp = probmap_max_temp[pred_label_temp == idx_cls] + if len(probmap_max_cls_temp) > 0: + # probmap_max_cls_temp = probmap_max_cls_temp.view(probmap_max_cls_temp.size(0), -1) + probmap_max_cls_temp = probmap_max_cls_temp[0:len(probmap_max_cls_temp)] + probmap_max_cls_temp, _ = torch.sort(probmap_max_cls_temp, descending=True) + len_cls = len(probmap_max_cls_temp) + thresh_len = int(math.floor(len_cls * self.proportion)) + thresh_temp = probmap_max_cls_temp[thresh_len - 1] + out_div = torch.div(output_affs_all[idx_cls, i], thresh_temp) + else: + out_div = output_affs_all[idx_cls, i] + out_div_all.append(out_div) + out_div_all = torch.stack(out_div_all, dim=0) + output_affs_all[idx_cls] = out_div_all + + rw_probmap_max, pseudo_label = torch.max(output_affs_all, dim=0) + mask = torch.zeros_like(rw_probmap_max) + mask[rw_probmap_max>=1] = 1 + pseudo_lb.append(pseudo_label) + masks.append(mask) + pseudo_lb = torch.stack(pseudo_lb, dim=0) + masks = torch.stack(masks, dim=0) + + return pseudo_lb, masks + + +if __name__ == "__main__": + gen_pseudo = GenPseudo(mode='prop') + pred = np.random.random((2,3,18,160,160)).astype(np.float32) + pred = torch.tensor(pred).to('cuda:0') + + pseudo_lb, masks = gen_pseudo(pred) diff --git a/legacy/Pretrain/utils/image_warp.py b/legacy/Pretrain/utils/image_warp.py new file mode 100644 index 0000000..1bc473b --- /dev/null +++ b/legacy/Pretrain/utils/image_warp.py @@ -0,0 +1,112 @@ +import numpy as np + +def image_warp(im, flow, mode='bilinear'): + """Performs a backward warp of an image using the predicted flow. + numpy version + + Args: + im: input image. ndim=2, 3 or 4, [[num_batch], height, width, [channels]]. num_batch and channels are optional, default is 1. + flow: flow vectors. ndim=3 or 4, [[num_batch], height, width, 2]. num_batch is optional + mode: interpolation mode. 'nearest' or 'bilinear' + Returns: + warped: transformed image of the same shape as the input image. + """ + # assert im.ndim == flow.ndim, 'The dimension of im and flow must be equal ' + flag = 4 + if im.ndim == 2: + height, width = im.shape + num_batch = 1 + channels = 1 + im = im[np.newaxis, :, :, np.newaxis] + flow = flow[np.newaxis, :, :] + flag = 2 + elif im.ndim == 3: + height, width, channels = im.shape + num_batch = 1 + im = im[np.newaxis, :, :] + flow = flow[np.newaxis, :, :] + flag = 3 + elif im.ndim == 4: + num_batch, height, width, channels = im.shape + flag = 4 + else: + raise AttributeError('The dimension of im must be 2, 3 or 4') + + max_x = width - 1 + max_y = height - 1 + zero = 0 + + # We have to flatten our tensors to vectorize the interpolation + im_flat = np.reshape(im, [-1, channels]) + flow_flat = np.reshape(flow, [-1, 2]) + + # Floor the flow, as the final indices are integers + flow_floor = np.floor(flow_flat).astype(np.int32) + + # Construct base indices which are displaced with the flow + pos_x = np.tile(np.arange(width), [height * num_batch]) + grid_y = np.tile(np.expand_dims(np.arange(height), 1), [1, width]) + pos_y = np.tile(np.reshape(grid_y, [-1]), [num_batch]) + + x = flow_floor[:, 0] + y = flow_floor[:, 1] + + x0 = pos_x + x + y0 = pos_y + y + + x0 = np.clip(x0, zero, max_x) + y0 = np.clip(y0, zero, max_y) + + dim1 = width * height + batch_offsets = np.arange(num_batch) * dim1 + base_grid = np.tile(np.expand_dims(batch_offsets, 1), [1, dim1]) + base = np.reshape(base_grid, [-1]) + + base_y0 = base + y0 * width + + if mode == 'nearest': + idx_a = base_y0 + x0 + warped_flat = im_flat[idx_a] + elif mode == 'bilinear': + # The fractional part is used to control the bilinear interpolation. + bilinear_weights = flow_flat - np.floor(flow_flat) + + xw = bilinear_weights[:, 0] + yw = bilinear_weights[:, 1] + + # Compute interpolation weights for 4 adjacent pixels + # expand to num_batch * height * width x 1 for broadcasting in add_n below + wa = np.expand_dims((1 - xw) * (1 - yw), 1) # top left pixel + wb = np.expand_dims((1 - xw) * yw, 1) # bottom left pixel + wc = np.expand_dims(xw * (1 - yw), 1) # top right pixel + wd = np.expand_dims(xw * yw, 1) # bottom right pixel + + x1 = x0 + 1 + y1 = y0 + 1 + + x1 = np.clip(x1, zero, max_x) + y1 = np.clip(y1, zero, max_y) + + base_y1 = base + y1 * width + idx_a = base_y0 + x0 + idx_b = base_y1 + x0 + idx_c = base_y0 + x1 + idx_d = base_y1 + x1 + + Ia = im_flat[idx_a] + Ib = im_flat[idx_b] + Ic = im_flat[idx_c] + Id = im_flat[idx_d] + + warped_flat = wa * Ia + wb * Ib + wc * Ic + wd * Id + warped = np.reshape(warped_flat, [num_batch, height, width, channels]) + + if flag == 2: + warped = np.squeeze(warped) + elif flag == 3: + warped = np.squeeze(warped, axis=0) + else: + pass + warped = warped.astype(np.uint8) + + return warped \ No newline at end of file diff --git a/legacy/Pretrain/utils/malis_loss.py b/legacy/Pretrain/utils/malis_loss.py new file mode 100644 index 0000000..6a0eba0 --- /dev/null +++ b/legacy/Pretrain/utils/malis_loss.py @@ -0,0 +1,14 @@ +import numpy as np +from em_segLib.seg_malis import malis_init, malis_loss_weights_both +from em_segLib.seg_util import mknhood3d + +def malis_loss(output_affs, test_label, seg): + seg = seg.astype(np.uint64) + conn_dims = np.array(output_affs.shape).astype(np.uint64) + nhood_dims = np.array((3,3),dtype=np.uint64) + nhood_data = mknhood3d(1).astype(np.int32).flatten() + pre_ve, pre_prodDims, pre_nHood = malis_init(conn_dims, nhood_data, nhood_dims) + weight = malis_loss_weights_both(seg.flatten(), conn_dims, nhood_data, nhood_dims, pre_ve, + pre_prodDims, pre_nHood, output_affs.flatten(), test_label.flatten(), 0.5).reshape(conn_dims) + malis = np.sum(weight * (output_affs - test_label) ** 2) + return malis diff --git a/legacy/Pretrain/utils/optim_weight_ema.py b/legacy/Pretrain/utils/optim_weight_ema.py new file mode 100644 index 0000000..bf2b1c4 --- /dev/null +++ b/legacy/Pretrain/utils/optim_weight_ema.py @@ -0,0 +1,25 @@ +import torch + + +class EMAWeightOptimizer (object): + def __init__(self, target_net, source_net, ema_alpha): + self.target_net = target_net + self.source_net = source_net + self.ema_alpha = ema_alpha + self.target_params = [p for p in target_net.state_dict().values() if p.dtype == torch.float] + self.source_params = [p for p in source_net.state_dict().values() if p.dtype == torch.float] + + for tgt_p, src_p in zip(self.target_params, self.source_params): + tgt_p[...] = src_p[...] + + target_keys = set(target_net.state_dict().keys()) + source_keys = set(source_net.state_dict().keys()) + if target_keys != source_keys: + raise ValueError('Source and target networks do not have the same state dict keys; do they have different architectures?') + + + def step(self): + one_minus_alpha = 1.0 - self.ema_alpha + for tgt_p, src_p in zip(self.target_params, self.source_params): + tgt_p.mul_(self.ema_alpha) + tgt_p.add_(src_p * one_minus_alpha) diff --git a/legacy/Pretrain/utils/post_func.py b/legacy/Pretrain/utils/post_func.py new file mode 100644 index 0000000..372ab1a --- /dev/null +++ b/legacy/Pretrain/utils/post_func.py @@ -0,0 +1,213 @@ +''' +Descripttion: +version: 0.0 +Author: Wei Huang +Date: 2021-11-01 16:24:30 +''' +import mahotas +import numpy as np + +from scipy import ndimage +import elf.segmentation.multicut as mc +import elf.segmentation.features as feats +import elf.segmentation.watershed as ws +from scipy.ndimage.morphology import distance_transform_edt +from scipy.ndimage.filters import gaussian_filter, maximum_filter + +# reduce the labeling +def getSegType(mid): + m_type = np.uint64 + if mid<2**8: + m_type = np.uint8 + elif mid<2**16: + m_type = np.uint16 + elif mid<2**32: + m_type = np.uint32 + return m_type + +def relabel(seg, do_type=False): + # get the unique labels + uid = np.unique(seg) + # ignore all-background samples + if len(uid)==1 and uid[0] == 0: + return seg + + uid = uid[uid > 0] + mid = int(uid.max()) + 1 # get the maximum label for the segment + + # create an array from original segment id to reduced id + m_type = seg.dtype + if do_type: + m_type = getSegType(mid) + mapping = np.zeros(mid, dtype=m_type) + mapping[uid] = np.arange(1, len(uid) + 1, dtype=m_type) + return mapping[seg] + +def randomlabel(segmentation): + segmentation = segmentation.astype(np.uint32) + uid = np.unique(segmentation) + mid = int(uid.max()) + 1 + mapping = np.zeros(mid, dtype=segmentation.dtype) + mapping[uid] = np.random.choice(len(uid), len(uid), replace=False).astype(segmentation.dtype)#(len(uid), dtype=segmentation.dtype) + out = mapping[segmentation] + out[segmentation==0] = 0 + return out + +def mc_baseline(affs, fragments=None): + affs = 1 - affs + boundary_input = np.maximum(affs[1], affs[2]) + if fragments is None: + fragments = np.zeros_like(boundary_input, dtype='uint64') + offset = 0 + for z in range(fragments.shape[0]): + wsz, max_id = ws.distance_transform_watershed(boundary_input[z], threshold=.25, sigma_seeds=2.) + wsz += offset + offset += max_id + fragments[z] = wsz + rag = feats.compute_rag(fragments) + offsets = [[-1, 0, 0], [0, -1, 0], [0, 0, -1]] + costs = feats.compute_affinity_features(rag, affs, offsets)[:, 0] + edge_sizes = feats.compute_boundary_mean_and_length(rag, boundary_input)[:, 1] + costs = mc.transform_probabilities_to_costs(costs, edge_sizes=edge_sizes) + node_labels = mc.multicut_kernighan_lin(rag, costs) + segmentation = feats.project_node_labels_to_pixels(rag, node_labels) + return segmentation + +def watershed(affs, seed_method, use_mahotas_watershed=True): + affs_xy = 1.0 - 0.5*(affs[1] + affs[2]) + depth = affs_xy.shape[0] + fragments = np.zeros_like(affs[0]).astype(np.uint64) + next_id = 1 + for z in range(depth): + seeds, num_seeds = get_seeds(affs_xy[z], next_id=next_id, method=seed_method) + if use_mahotas_watershed: + fragments[z] = mahotas.cwatershed(affs_xy[z], seeds) + else: + fragments[z] = ndimage.watershed_ift((255.0*affs_xy[z]).astype(np.uint8), seeds) + next_id += num_seeds + return fragments + +def get_seeds(boundary, method='grid', next_id=1, seed_distance=10): + if method == 'grid': + height = boundary.shape[0] + width = boundary.shape[1] + seed_positions = np.ogrid[0:height:seed_distance, 0:width:seed_distance] + num_seeds_y = seed_positions[0].size + num_seeds_x = seed_positions[1].size + num_seeds = num_seeds_x*num_seeds_y + seeds = np.zeros_like(boundary).astype(np.int32) + seeds[seed_positions] = np.arange(next_id, next_id + num_seeds).reshape((num_seeds_y,num_seeds_x)) + + if method == 'minima': + minima = mahotas.regmin(boundary) + seeds, num_seeds = mahotas.label(minima) + seeds += next_id + seeds[seeds==next_id] = 0 + + if method == 'maxima_distance': + distance = mahotas.distance(boundary<0.5) + maxima = mahotas.regmax(distance) + seeds, num_seeds = mahotas.label(maxima) + seeds += next_id + seeds[seeds==next_id] = 0 + + return seeds, num_seeds + + +def watershed_lmc(affs): + affs = 1 - affs + boundary_input = np.maximum(affs[1], affs[2]) + fragments = np.zeros_like(boundary_input, dtype=np.uint64) + offset = 0 + for z in range(fragments.shape[0]): + wsz, max_id = ws.distance_transform_watershed(boundary_input[z], threshold=.25, sigma_seeds=2.) + wsz += offset + offset += max_id + fragments[z] = wsz + return fragments, offset + + +def agglomerate_lmc(affs, fragments): + affs = 1 - affs + boundary_input = np.maximum(affs[1], affs[2]) + rag = feats.compute_rag(fragments) + offsets = [[-1, 0, 0], [0, -1, 0], [0, 0, -1]] + costs = feats.compute_affinity_features(rag, affs, offsets)[:, 0] + edge_sizes = feats.compute_boundary_mean_and_length(rag, boundary_input)[:, 1] + costs = mc.transform_probabilities_to_costs(costs, edge_sizes=edge_sizes) + node_labels = mc.multicut_kernighan_lin(rag, costs) + segmentation = feats.project_node_labels_to_pixels(rag, node_labels) + return segmentation + + +# copy from LSD --> fragments.py +def watershed_from_affinities( + affs, + max_affinity_value=1.0, + fragments_in_xy=True, + return_seeds=False, + min_seed_distance=10): + '''Extract initial fragments from affinities using a watershed + transform. Returns the fragments and the maximal ID in it. + + Returns: + (fragments, max_id) + or + (fragments, max_id, seeds) if return_seeds == True''' + + if fragments_in_xy: + mean_affs = 0.5 * (affs[1] + affs[2]) + depth = mean_affs.shape[0] + fragments = np.zeros(mean_affs.shape, dtype=np.uint64) + if return_seeds: + seeds = np.zeros(mean_affs.shape, dtype=np.uint64) + id_offset = 0 + for z in range(depth): + boundary_mask = mean_affs[z] > 0.5 * max_affinity_value + boundary_distances = distance_transform_edt(boundary_mask) + ret = watershed_from_boundary_distance( + boundary_distances, + return_seeds=return_seeds, + id_offset=id_offset, + min_seed_distance=min_seed_distance) + fragments[z] = ret[0] + if return_seeds: + seeds[z] = ret[2] + id_offset = ret[1] + ret = (fragments, id_offset) + if return_seeds: + ret += (seeds,) + else: + boundary_mask = np.mean(affs, axis=0) > 0.5 * max_affinity_value + boundary_distances = distance_transform_edt(boundary_mask) + ret = watershed_from_boundary_distance( + boundary_distances, + return_seeds=return_seeds, + min_seed_distance=min_seed_distance) + fragments = ret[0] + return ret + + +def watershed_from_boundary_distance( + boundary_distances, + return_seeds=False, + id_offset=0, + min_seed_distance=10): + max_filtered = maximum_filter(boundary_distances, min_seed_distance) + maxima = max_filtered == boundary_distances + seeds, n = mahotas.label(maxima) + + if n == 0: + return np.zeros(boundary_distances.shape, dtype=np.uint64), id_offset + + seeds[seeds!=0] += id_offset + + fragments = mahotas.cwatershed( + boundary_distances.max() - boundary_distances, + seeds) + + ret = (fragments.astype(np.uint64), n + id_offset) + if return_seeds: + ret = ret + (seeds.astype(np.uint64),) + + return ret diff --git a/legacy/Pretrain/utils/post_lmc.py b/legacy/Pretrain/utils/post_lmc.py new file mode 100644 index 0000000..b846709 --- /dev/null +++ b/legacy/Pretrain/utils/post_lmc.py @@ -0,0 +1,77 @@ +import numpy as np +from skimage.metrics import adapted_rand_error as adapted_rand_ref +from skimage.metrics import variation_of_information as voi_ref +import elf.segmentation.watershed as ws +import elf.segmentation.multicut as mc +import elf.segmentation.features as feats +import elf.segmentation.watershed as ws +from elf.segmentation.features import * +from elf.segmentation.learning import * +from elf.segmentation.mutex_watershed import mutex_watershed +from elf.parallel.relabel import relabel_consecutive +from nifty import tools as ntools +import nifty.graph.rag as nrag +import os +import time +from tqdm import tqdm +import numpy as np +import joblib +import imageio +from skimage.metrics import variation_of_information, adapted_rand_error +from multiprocessing import Pool, Lock + +def post_lmc(affs): + affs = 1 - affs + boundary_input = np.maximum(affs[1], affs[2]) + watershed = np.zeros_like(boundary_input, dtype='uint64') + offset = 0 + for z in range(watershed.shape[0]): + wsz, max_id = ws.distance_transform_watershed(boundary_input[z], threshold=.25, sigma_seeds=2.) + wsz += offset + offset += max_id + watershed[z] = wsz + rag = feats.compute_rag(watershed) + offsets = [[-1, 0, 0], [0, -1, 0], [0, 0, -1]] + costs = feats.compute_affinity_features(rag, affs, offsets)[:, 0] + edge_sizes = feats.compute_boundary_mean_and_length(rag, boundary_input)[:, 1] + costs = mc.transform_probabilities_to_costs(costs, edge_sizes=edge_sizes, beta=0.25) + node_labels = mc.multicut_kernighan_lin(rag, costs) + segmentation = feats.project_node_labels_to_pixels(rag, node_labels) + return segmentation + +def post_lmc_lh(affs, beta): + affs = 1 - affs + boundary_input = np.maximum(affs[1], affs[2]) + watershed = np.zeros_like(boundary_input, dtype='uint64') + offset = 0 + for z in range(watershed.shape[0]): + wsz, max_id = ws.distance_transform_watershed(boundary_input[z], threshold=.25, sigma_seeds=2.) + wsz += offset + offset += max_id + watershed[z] = wsz + rag = feats.compute_rag(watershed) + offsets = [[-1, 0, 0], [0, -1, 0], [0, 0, -1]] + costs = feats.compute_affinity_features(rag, affs, offsets)[:, 0] + edge_sizes = feats.compute_boundary_mean_and_length(rag, boundary_input)[:, 1] + costs = mc.transform_probabilities_to_costs(costs, edge_sizes=edge_sizes, beta=beta) + node_labels = mc.multicut_kernighan_lin(rag, costs) + segmentation = feats.project_node_labels_to_pixels(rag, node_labels) + return segmentation + +def post_mc_b(boundary_input, beta=0.25): + boundary_input = 1 - boundary_input + watershed = np.zeros_like(boundary_input, dtype='uint64') + offset = 0 + for z in range(watershed.shape[0]): + wsz, max_id = ws.distance_transform_watershed(boundary_input[z], threshold=0.25, sigma_seeds=2.0) + wsz += offset + offset += max_id + watershed[z] = wsz + rag = feats.compute_rag(watershed) + costs = compute_boundary_features(rag, boundary_input, min_value=0, max_value=1)[:, 0] + edge_sizes = feats.compute_boundary_mean_and_length(rag, boundary_input)[:, 1] + costs = mc.transform_probabilities_to_costs(costs, edge_sizes=edge_sizes, beta=beta) + node_labels = mc.multicut_kernighan_lin(rag, costs) + segmentation = feats.project_node_labels_to_pixels(rag, node_labels) + + return segmentation \ No newline at end of file diff --git a/legacy/Pretrain/utils/post_waterz.py b/legacy/Pretrain/utils/post_waterz.py new file mode 100644 index 0000000..439de58 --- /dev/null +++ b/legacy/Pretrain/utils/post_waterz.py @@ -0,0 +1,92 @@ +import waterz +import mahotas +import numpy as np +from scipy import ndimage + +def randomlabel(segmentation): + segmentation = segmentation.astype(np.uint32) + uid = np.unique(segmentation) + mid = int(uid.max()) + 1 + mapping = np.zeros(mid, dtype=segmentation.dtype) + mapping[uid] = np.random.choice(len(uid), len(uid), replace=False).astype(segmentation.dtype)#(len(uid), dtype=segmentation.dtype) + out = mapping[segmentation] + out[segmentation==0] = 0 + return out + +def watershed(affs, seed_method, use_mahotas_watershed=True): + affs_xy = 1.0 - 0.5*(affs[1] + affs[2]) + depth = affs_xy.shape[0] + fragments = np.zeros_like(affs[0]).astype(np.uint64) + next_id = 1 + for z in range(depth): + seeds, num_seeds = get_seeds(affs_xy[z], next_id=next_id, method=seed_method) + if use_mahotas_watershed: + fragments[z] = mahotas.cwatershed(affs_xy[z], seeds) + else: + fragments[z] = ndimage.watershed_ift((255.0*affs_xy[z]).astype(np.uint8), seeds) + next_id += num_seeds + return fragments + +def get_seeds(boundary, method='grid', next_id=1, seed_distance=10): + if method == 'grid': + height = boundary.shape[0] + width = boundary.shape[1] + seed_positions = np.ogrid[0:height:seed_distance, 0:width:seed_distance] + num_seeds_y = seed_positions[0].size + num_seeds_x = seed_positions[1].size + num_seeds = num_seeds_x*num_seeds_y + seeds = np.zeros_like(boundary).astype(np.int32) + seeds[seed_positions] = np.arange(next_id, next_id + num_seeds).reshape((num_seeds_y,num_seeds_x)) + + if method == 'minima': + minima = mahotas.regmin(boundary) + seeds, num_seeds = mahotas.label(minima) + seeds += next_id + seeds[seeds==next_id] = 0 + + if method == 'maxima_distance': + distance = mahotas.distance(boundary<0.5) + maxima = mahotas.regmax(distance) + seeds, num_seeds = mahotas.label(maxima) + seeds += next_id + seeds[seeds==next_id] = 0 + + return seeds, num_seeds + +def elf_watershed(affs): + import elf.segmentation.watershed as ws + affs = 1 - affs + boundary_input = np.maximum(affs[1], affs[2]) + fragments = np.zeros_like(boundary_input, dtype='uint64') + offset = 0 + for z in range(fragments.shape[0]): + wsz, max_id = ws.distance_transform_watershed(boundary_input[z], threshold=.25, sigma_seeds=2.) + wsz += offset + offset += max_id + fragments[z] = wsz + return fragments + +def relabel(seg): + # get the unique labels + uid = np.unique(seg) + # ignore all-background samples + if len(uid)==1 and uid[0] == 0: + return seg + + uid = uid[uid > 0] + mid = int(uid.max()) + 1 # get the maximum label for the segment + + # create an array from original segment id to reduced id + m_type = seg.dtype + mapping = np.zeros(mid, dtype=m_type) + mapping[uid] = np.arange(1, len(uid) + 1, dtype=m_type) + return mapping[seg] + +def post_waterz(affs, thresd=0.5): + fragments = watershed(affs, 'maxima_distance') + sf = 'OneMinus>' + seg = list(waterz.agglomerate(affs, [0.50], + fragments=fragments, + scoring_function=sf, + discretize_queue=256))[0] + return seg diff --git a/legacy/Pretrain/utils/seeds_func.py b/legacy/Pretrain/utils/seeds_func.py new file mode 100644 index 0000000..edfe4d7 --- /dev/null +++ b/legacy/Pretrain/utils/seeds_func.py @@ -0,0 +1,443 @@ +import os +import numpy as np +import h5py +from scipy import ndimage +import cv2 +import mahotas +import matplotlib +matplotlib.use("agg") +import matplotlib.pyplot as plt + +# generate affinity +def seg_to_affgraph(seg, nhood=np.array([[-1, 0, 0], [0, -1, 0], [0, 0, -1]])): + # constructs an affinity graph from a segmentation + # assume affinity graph is represented as: + # shape = (e, z, y, x) + # nhood.shape = (edges, 3) + shape = seg.shape + nEdge = nhood.shape[0] + aff = np.zeros((nEdge,)+shape,dtype=np.int32) + + for e in range(nEdge): + aff[e, \ + max(0,-nhood[e,0]):min(shape[0],shape[0]-nhood[e,0]), \ + max(0,-nhood[e,1]):min(shape[1],shape[1]-nhood[e,1]), \ + max(0,-nhood[e,2]):min(shape[2],shape[2]-nhood[e,2])] = \ + (seg[max(0,-nhood[e,0]):min(shape[0],shape[0]-nhood[e,0]), \ + max(0,-nhood[e,1]):min(shape[1],shape[1]-nhood[e,1]), \ + max(0,-nhood[e,2]):min(shape[2],shape[2]-nhood[e,2])] == \ + seg[max(0,nhood[e,0]):min(shape[0],shape[0]+nhood[e,0]), \ + max(0,nhood[e,1]):min(shape[1],shape[1]+nhood[e,1]), \ + max(0,nhood[e,2]):min(shape[2],shape[2]+nhood[e,2])] ) \ + * ( seg[max(0,-nhood[e,0]):min(shape[0],shape[0]-nhood[e,0]), \ + max(0,-nhood[e,1]):min(shape[1],shape[1]-nhood[e,1]), \ + max(0,-nhood[e,2]):min(shape[2],shape[2]-nhood[e,2])] > 0 ) \ + * ( seg[max(0,nhood[e,0]):min(shape[0],shape[0]+nhood[e,0]), \ + max(0,nhood[e,1]):min(shape[1],shape[1]+nhood[e,1]), \ + max(0,nhood[e,2]):min(shape[2],shape[2]+nhood[e,2])] > 0 ) + + return aff + + + +# generate seeds +def gen_seeds(labels, affs_xy, min_size=10): + # remove some neurons whose size is smaller than min_size + ids, count = np.unique(labels, return_counts=True) + for i, icount in enumerate(count): + if icount < min_size: + labels[labels == ids[i]] = 0 + + boundary = np.ones_like(affs_xy) + boundary[1:-1, 1:-1] = affs_xy[1:-1, 1:-1] + boundary[boundary != 0] = 1 + + distance = mahotas.distance(boundary<0.5) + seeds = np.zeros_like(labels) + ite = 1 + for label in np.unique(labels): + if label == 0: + continue + label_mask = labels == label + label_mask = label_mask.astype(np.int) + temp_dis = np.multiply(distance, label_mask) + max_where = np.where(temp_dis == np.max(temp_dis)) + seeds[max_where[0][0], max_where[1][0]] = ite + ite += 1 + return seeds, boundary + + +def gen_seeds_2(labels, affs_xy, min_size=10): + # remove some neurons whose size is smaller than min_size + ids, count = np.unique(labels, return_counts=True) + for i, icount in enumerate(count): + if icount < min_size: + labels[labels == ids[i]] = 0 + + boundary = np.ones_like(affs_xy) + boundary[1:-1, 1:-1] = affs_xy[1:-1, 1:-1] + boundary[boundary != 0] = 1 + + distance = mahotas.distance(boundary<0.5) + seeds = np.zeros_like(labels) + # ite = 1 + for label in np.unique(labels): + if label == 0: + continue + label_mask = labels == label + label_mask = label_mask.astype(np.int) + temp_dis = np.multiply(distance, label_mask) + max_where = np.where(temp_dis == np.max(temp_dis)) + seeds[max_where[0][0], max_where[1][0]] = label + # ite += 1 + return seeds + + +# erosion labels +def erosion_labels(gt, steps=1): + self_background = 0 + foreground = np.zeros(shape=gt.shape, dtype=np.bool) + for label in np.unique(gt): + if label == self_background: + continue + label_mask = gt==label + # Assume that masked out values are the same as the label we are + # eroding in this iteration. This ensures that at the boundary to + # a masked region the value blob is not shrinking. + eroded_label_mask = ndimage.binary_erosion(label_mask, iterations=steps, border_value=1) + foreground = np.logical_or(eroded_label_mask, foreground) + background = np.logical_not(foreground) + gt[background] = self_background + return gt + + +# draw fragments +def draw_fragments(picture, raw=None, alpha=0.3): + m,n = picture.shape + ids = np.unique(picture) + size = len(ids) + print("The number of nuerons is %d" % size) + color = np.zeros([m, n, 3]) + idx = np.searchsorted(ids, picture) + for i in range(3): + color_val = np.random.randint(0, 255, ids.shape) + if ids[0] == 0: + color_val[0] = 0 + color[:,:,i] = color_val[idx] + color = color / 255 + if raw is not None: + plt.figure() + plt.subplots(figsize=(10,10)) + plt.imshow(raw) + plt.imshow(color, alpha=alpha) + plt.axis('off') + plt.show() + else: + plt.figure() + plt.subplots(figsize=(10,10)) + plt.imshow(color) + plt.axis('off') + plt.show() + + +# thresdholding +def binary_thresholding(img, t=0.5): + if np.max(img) > 1.0: + img = img / 255.0 + img[img >= t] = 1 + img[img < t] = 0 + return img + + +# draw seeds +def draw_seeds(raw, seeds): + plt.figure(figsize=(10,10)) + plt.imshow(raw, cmap='gray') + seeds_listx, seeds_listy = np.where(seeds != 0) + plt.scatter(seeds_listy, seeds_listx, c='r') + plt.axis('off') + plt.show() + + +def draw_seeds_v2(raw, seeds): + plt.figure(figsize=(10,10)) + plt.imshow(raw, cmap='gray') + seeds_listx = seeds[:, 0].astype(np.int) + seeds_listy = seeds[:, 1].astype(np.int) + plt.scatter(seeds_listy, seeds_listx, c='r') + plt.axis('off') + plt.show() + + +def draw_box(img, box): + img_box = img.copy() + if len(img_box.shape) == 2: + img_box = img_box[:,:,np.newaxis] + img_box = np.concatenate([img_box, img_box, img_box], axis=2) + for i in range(1, box.shape[0]): + position = box[i] + x1 = position[0] + y1 = position[1] + x2 = x1 + position[2] + y2 = y1 + position[3] + img_box = cv2.rectangle(img_box, (int(x1), int(y1)), (int(x2), int(y2)), (255, 0, 0), 2) + plt.figure(figsize=(10,10)) + plt.imshow(img_box) + plt.axis('off') + plt.show() + + +# draw affinity +def draw_general(img): + plt.figure(figsize=(10,10)) + plt.imshow(img, cmap='gray') + plt.axis('off') + plt.show() + + +def make_summary_plot(it, raw, output, net_output, seeds, target): + """ + This function create and save a summary figure + """ + f, axarr = plt.subplots(2, 2, figsize=(8, 9.5)) + f.suptitle("RW summary, Iteration: " + repr(it)) + + axarr[0, 0].set_title("Ground Truth Image") + axarr[0, 0].imshow(raw[0].detach().numpy(), cmap="gray") + axarr[0, 0].imshow(target[0, 0].detach().numpy(), alpha=0.6, vmin=-3, cmap="prism_r") + seeds_listx, seeds_listy = np.where(seeds[0].data != 0) + axarr[0, 0].scatter(seeds_listy, + seeds_listx, c="r") + axarr[0, 0].axis("off") + + axarr[0, 1].set_title("LRW output (white seed)") + axarr[0, 1].imshow(raw[0].detach().numpy(), cmap="gray") + axarr[0, 1].imshow(np.argmax(output[0][0].detach().numpy(), 0), alpha=0.6, vmin=-3, cmap="prism_r") + axarr[0, 1].axis("off") + + axarr[1, 0].set_title("Vertical Diffusivities") + axarr[1, 0].imshow(net_output[0, 0].detach().numpy(), cmap="gray") + axarr[1, 0].axis("off") + + axarr[1, 1].set_title("Horizontal Diffusivities") + axarr[1, 1].imshow(net_output[0, 1].detach().numpy(), cmap="gray") + axarr[1, 1].axis("off") + + plt.tight_layout() + plt.savefig("./results/%04i.png"%it) + plt.close() + + +def draw_fragments_seeds(out_path, k, pred, pred_seed, gt, gt_seed, f_txt, raw=None, alpha=0.8): + m,n = pred.shape + ids = np.unique(pred) + size = len(ids) + print("k = %d, the neurons number of pred is %d" % (k, size)) + f_txt.write("k = %d, the neurons number of pred is %d" % (k, size)) + f_txt.write('\n') + color_pred = np.zeros([m, n, 3]) + idx = np.searchsorted(ids, pred) + for i in range(3): + color_val = np.random.randint(0, 255, ids.shape) + if ids[0] == 0: + color_val[0] = 0 + color_pred[:,:,i] = color_val[idx] + color_pred = color_pred / 255 + if pred_seed is not None: + pred_seeds_listx, pred_seeds_listy = np.where(pred_seed != 0) + + ids = np.unique(gt) + size = len(ids) + print("k = %d, the neurons number of gt is %d" % (k, size)) + f_txt.write("k = %d, the neurons number of gt is %d" % (k, size)) + f_txt.write('\n') + color_gt= np.zeros([m, n, 3]) + idx = np.searchsorted(ids, gt) + for i in range(3): + color_val = np.random.randint(0, 255, ids.shape) + if ids[0] == 0: + color_val[0] = 0 + color_gt[:,:,i] = color_val[idx] + color_gt = color_gt / 255 + if gt_seed is not None: + gt_seeds_listx, gt_seeds_listy = np.where(gt_seed != 0) + + if raw is not None: + plt.figure(figsize=(20,20),dpi=100) + plt.subplot(121) + plt.imshow(raw) + plt.imshow(color_pred, alpha=alpha) + if pred_seed is not None: + plt.scatter(pred_seeds_listy, pred_seeds_listx, c='k', marker='.') + plt.axis('off') + plt.subplot(122) + plt.imshow(raw) + plt.imshow(color_gt, alpha=alpha) + if gt_seed is not None: + plt.scatter(gt_seeds_listy, gt_seeds_listx, c='k', marker='.') + plt.axis('off') + # plt.show() + plt.savefig(os.path.join(out_path, str(k).zfill(4)+'.png'), bbox_inches = 'tight') + else: + plt.figure(figsize=(20,20),dpi=100) + plt.subplot(121) + plt.imshow(color_pred) + if pred_seed is not None: + plt.scatter(pred_seeds_listy, pred_seeds_listx, c='b') + plt.axis('off') + plt.subplot(122) + plt.imshow(color_gt) + if gt_seed is not None: + plt.scatter(gt_seeds_listy, gt_seeds_listx, c='b') + plt.axis('off') + # plt.show() + plt.savefig(os.path.join(out_path, str(k).zfill(4)+'.png'), bbox_inches = 'tight') + plt.close('all') + + +def draw_fragments_noseeds(out_path, k, pred, gt=None, raw=None, alpha=0.8): + m,n = pred.shape + ids = np.unique(pred) + size = len(ids) + print("k = %d, the neurons number of pred is %d" % (k, size)) + color_pred = np.zeros([m, n, 3]) + idx = np.searchsorted(ids, pred) + for i in range(3): + color_val = np.random.randint(0, 255, ids.shape) + if ids[0] == 0: + color_val[0] = 0 + color_pred[:,:,i] = color_val[idx] + color_pred = color_pred / 255 + + if gt is not None: + ids = np.unique(gt) + size = len(ids) + print("k = %d, the neurons number of gt is %d" % (k, size)) + color_gt= np.zeros([m, n, 3]) + idx = np.searchsorted(ids, gt) + for i in range(3): + color_val = np.random.randint(0, 255, ids.shape) + if ids[0] == 0: + color_val[0] = 0 + color_gt[:,:,i] = color_val[idx] + color_gt = color_gt / 255 + + if gt is not None: + if raw is not None: + plt.figure(figsize=(20,20),dpi=100) + plt.subplot(121) + plt.imshow(raw) + plt.imshow(color_pred, alpha=alpha) + plt.axis('off') + plt.subplot(122) + plt.imshow(raw) + plt.imshow(color_gt, alpha=alpha) + plt.axis('off') + else: + plt.figure(figsize=(20,20),dpi=100) + plt.subplot(121) + plt.imshow(color_pred) + plt.axis('off') + plt.subplot(122) + plt.imshow(color_gt) + plt.axis('off') + else: + if raw is not None: + plt.figure(figsize=(20,20),dpi=100) + plt.imshow(raw) + plt.imshow(color_pred, alpha=alpha) + plt.axis('off') + else: + plt.figure(figsize=(20,20),dpi=100) + plt.imshow(color_pred) + plt.axis('off') + plt.savefig(os.path.join(out_path, str(k).zfill(4)+'.png'), bbox_inches = 'tight') + plt.close('all') + + +def draw_fragments_3d(out_path, pred, gt=None, raw=None, alpha=0.8): + d,m,n = pred.shape + ids = np.unique(pred) + size = len(ids) + print("the neurons number of pred is %d" % size) + color_pred = np.zeros([d, m, n, 3]) + idx = np.searchsorted(ids, pred) + for i in range(3): + color_val = np.random.randint(0, 255, ids.shape) + if ids[0] == 0: + color_val[0] = 0 + color_pred[:,:,:,i] = color_val[idx] + color_pred = color_pred / 255 + + if gt is not None: + ids = np.unique(gt) + size = len(ids) + print("the neurons number of gt is %d" % size) + color_gt= np.zeros([d, m, n, 3]) + idx = np.searchsorted(ids, gt) + for i in range(3): + color_val = np.random.randint(0, 255, ids.shape) + if ids[0] == 0: + color_val[0] = 0 + color_gt[:,:,:,i] = color_val[idx] + color_gt = color_gt / 255 + + if gt is not None: + if raw is not None: + for k in range(d): + plt.figure(figsize=(20,20),dpi=100) + plt.subplot(121) + plt.imshow(raw[k]) + plt.imshow(color_pred[k], alpha=alpha) + plt.axis('off') + plt.subplot(122) + plt.imshow(raw[k]) + plt.imshow(color_gt[k], alpha=alpha) + plt.axis('off') + plt.savefig(os.path.join(out_path, str(k).zfill(4)+'.png'), bbox_inches = 'tight') + plt.close('all') + else: + for k in range(d): + plt.figure(figsize=(20,20),dpi=100) + plt.subplot(121) + plt.imshow(color_pred[k]) + plt.axis('off') + plt.subplot(122) + plt.imshow(color_gt[k]) + plt.axis('off') + plt.savefig(os.path.join(out_path, str(k).zfill(4)+'.png'), bbox_inches = 'tight') + plt.close('all') + else: + if raw is not None: + for k in range(d): + plt.figure(figsize=(20,20),dpi=100) + plt.imshow(raw[k]) + plt.imshow(color_pred[k], alpha=alpha) + plt.axis('off') + plt.savefig(os.path.join(out_path, str(k).zfill(4)+'.png'), bbox_inches = 'tight') + plt.close('all') + else: + for k in range(d): + plt.figure(figsize=(20,20),dpi=100) + plt.imshow(color_pred[k]) + plt.axis('off') + plt.savefig(os.path.join(out_path, str(k).zfill(4)+'.png'), bbox_inches = 'tight') + plt.close('all') + + +if __name__ == "__main__": + in_path1 = '../data/snemi3d/AC4_inputs.h5' + in_path2 = '../data/snemi3d/AC4_labels.h5' + f = h5py.File(in_path1, 'r') + raw = f['main'][:] + f.close() + + f = h5py.File(in_path2, 'r') + labels = f['main'][:] + f.close() + + out_path = '../data/snemi3d/AC4' + if not os.path.exists(out_path): + os.mkdir(out_path) + + draw_fragments_3d(out_path, labels, None, raw) \ No newline at end of file diff --git a/legacy/Pretrain/utils/seg_util.py b/legacy/Pretrain/utils/seg_util.py new file mode 100644 index 0000000..3797c77 --- /dev/null +++ b/legacy/Pretrain/utils/seg_util.py @@ -0,0 +1,194 @@ +import numpy as np +from scipy.sparse import coo_matrix +from scipy.ndimage.morphology import binary_erosion,binary_dilation + +# reduce the labeling +def relabel(segmentation): + # get the unique labels + uid = np.unique(segmentation) + # get the maximum label for the segment + mid = int(uid.max()) + 1 + + # create an array from original segment id to reduced id + mapping = np.zeros(mid, dtype=segmentation.dtype) + mapping[uid] = np.arange(len(uid), dtype=segmentation.dtype) + return mapping[segmentation] + +def remove_small(seg, thres=100): + sz = seg.shape + seg = seg.reshape(-1) + uid, uc = np.unique(seg, return_counts=True) + seg[np.in1d(seg,uid[uc0) + #stel=np.array([[1, 1],[1,1]]).astype(bool) + stel=np.array([[1,1,1], [1,1,1], [1,1,1]]).astype(bool) + #stel=np.array([[1,1,1,1],[1, 1, 1, 1],[1,1,1,1],[1,1,1,1]]).astype(bool) + gg3gd=np.zeros(gg3g.shape) + for i in range(gg3g.shape[0]): + gg3gd[i,:,:]=binary_dilation(gg3g[i,:,:],structure=stel,iterations=iter_num) + out = gg3.copy() + out[gg3gd==1]=0 + return out + +def markInvalid(seg, iter_num=2, do_2d=True): + # find invalid + # if do erosion(seg==0), then miss the border + if do_2d: + stel=np.array([[1,1,1], [1,1,1]]).astype(bool) + if len(seg.shape)==2: + out = binary_dilation(seg>0, structure=stel, iterations=iter_num) + seg[out==0] = -1 + else: # save memory + for z in range(seg.shape[0]): + tmp = seg[z] # by reference + out = binary_dilation(tmp>0, structure=stel, iterations=iter_num) + tmp[out==0] = -1 + else: + stel=np.array([[1,1,1], [1,1,1], [1,1,1]]).astype(bool) + out = binary_dilation(seg>0, structure=stel, iterations=iter_num) + seg[out==0] = -1 + return seg diff --git a/legacy/Pretrain/utils/show.py b/legacy/Pretrain/utils/show.py new file mode 100644 index 0000000..17ce46b --- /dev/null +++ b/legacy/Pretrain/utils/show.py @@ -0,0 +1,299 @@ +import os +import math +import numpy as np +from PIL import Image + +def show(img3d): + # only used for image with shape [18, 160, 160, 3] + num = img3d.shape[0] + column = 5 + row = math.ceil(num / float(column)) + size = img3d.shape[1] + img_all = np.zeros((size*row, size*column, 3), dtype=np.uint8) + for i in range(row): + for j in range(column): + index = i*column + j + if index >= num: + img = np.zeros_like(img3d[0], dtype=np.uint8) + else: + if np.max(img3d[index]) > 1: + img = (img3d[index]).astype(np.uint8) + else: + img = (img3d[index] * 255).astype(np.uint8) + img_all[i*size:(i+1)*size, j*size:(j+1)*size] = img + return img_all + +def show_one(img3d): + # only used for image with shape [18, 160, 160] + num = img3d.shape[0] + column = 5 + row = math.ceil(num / float(column)) + size = img3d.shape[1] + img_all = np.zeros((size*row, size*column), dtype=np.uint8) + for i in range(row): + for j in range(column): + index = i*column + j + if index >= num: + img = np.zeros_like(img3d[0], dtype=np.uint8) + else: + img = (img3d[index] * 255).astype(np.uint8) + img_all[i*size:(i+1)*size, j*size:(j+1)*size] = img + return img_all + + +def show_one_(img3d): + num = img3d.shape[0] + column = 5 + row = math.ceil(num / float(column)) + size = img3d.shape[1] + img_all = np.zeros((size*row, size*column), dtype=np.uint8) + for i in range(row): + for j in range(column): + index = i*column + j + if index >= num: + img = np.zeros_like(img3d[0], dtype=np.uint8) + else: + img = (img3d[index]).astype(np.uint8) + img_all[i*size:(i+1)*size, j*size:(j+1)*size] = img + return img_all + +def show_CE(img3d): + # only used for image with shape [18, 160, 160] + num = img3d.shape[0] + column = 5 + row = math.ceil(num / float(column)) + size = img3d.shape[1] + img_all = np.zeros((size*row, size*column), dtype=np.uint8) + for i in range(row): + for j in range(column): + index = i*column + j + if index >= num: + img = np.zeros_like(img3d[0], dtype=np.uint8) + else: + img = (img3d[index]).astype(np.uint8) + img_all[i*size:(i+1)*size, j*size:(j+1)*size] = img + return img_all + +def training_show(iters, inputs, label, pred_bound, cache_path, if_skele=None, skele=None, pred_skele=None): + img_input = np.repeat(inputs[0].data.cpu().numpy(), 3, 0) + img_input = np.transpose(img_input, (1,2,3,0)) + img_input = show(img_input) + input_placehplder = np.zeros_like(img_input, dtype=np.uint8) + im_cat1 = np.concatenate([img_input, input_placehplder], axis=1) + + img_label = label[0][0:3].data.cpu().numpy() + img_label = np.transpose(img_label, (1,2,3,0)) + img_label = show(img_label) + + img_pred_bound = pred_bound[0][0:3].data.cpu().numpy() + img_pred_bound = np.transpose(img_pred_bound, (1,2,3,0)) + img_pred_bound = show(img_pred_bound) + im_cat2 = np.concatenate([img_pred_bound, img_label], axis=1) + + if if_skele is not None: + img_skele = np.repeat(skele[0, 0:1].data.cpu().numpy(), 3, 0) + img_skele = np.transpose(img_skele, (1,2,3,0)) + img_skele = show(img_skele) + + img_pred_skele = np.repeat(pred_skele[0, 0:1].data.cpu().numpy(), 3, 0) + img_pred_skele = np.transpose(img_pred_skele, (1,2,3,0)) + img_pred_skele = show(img_pred_skele) + im_cat3 = np.concatenate([img_pred_skele, img_skele], axis=1) + + im_cat = np.concatenate([im_cat1, im_cat2, im_cat3], axis=0) + else: + im_cat = np.concatenate([im_cat1, im_cat2], axis=0) + Image.fromarray(im_cat).save(os.path.join(cache_path, '%06d.png' % iters)) + +def training_show_pretrain(iters, pred, label, cache_path, loss_mode='CrossEntropy'): + img_input = pred[0].data.cpu().numpy() + if loss_mode == 'CrossEntropy': + img_input = show_CE(img_input) + else: + img_input[img_input < 0] = 0 + img_input[img_input > 1] = 1 + img_input = show_one(img_input) + img_label = label[0].data.cpu().numpy() + img_label = show_one(img_label) + im_cat = np.concatenate([img_input, img_label], axis=1) + Image.fromarray(im_cat).save(os.path.join(cache_path, '%06d.png' % iters)) + + +def show_inpaining(iters, pred, label, mask, cache_path): + pred = pred[0].data.cpu().numpy() + label = label[0].data.cpu().numpy() + mask = mask[0].data.cpu().numpy() + inputs = label * mask + inputs = np.squeeze(inputs) + pred = np.squeeze(pred) + inputs = inputs[14:-14, 106:-106, 106:-106] + pred[pred < 0] = 0; pred[pred > 1] =1 + pred_img = show_one(pred) + inputs_img = show_one(inputs) + im_cat = np.concatenate([inputs_img, pred_img], axis=1) + Image.fromarray(im_cat).save(os.path.join(cache_path, '%06d.png' % iters)) + + +def show_affs(iters, inputs, pred, target, cache_path, model_type='mala'): + pred = pred[0].data.cpu().numpy() + inputs = inputs[0].data.cpu().numpy() + target = target[0].data.cpu().numpy() + inputs = np.squeeze(inputs) + if model_type == 'mala': + inputs = inputs[14:-14, 106:-106, 106:-106] + inputs = inputs[:,:,:,np.newaxis] + inputs = np.repeat(inputs, 3, 3) + pred = np.transpose(pred, (1,2,3,0)) + target = np.transpose(target, (1,2,3,0)) + inputs[inputs<0]=0; inputs[inputs>1]=1 + pred[pred<0]=0; pred[pred>1]=1 + target[target<0]=0; target[target>1]=1 + inputs_img = show(inputs) + pred_img = show(pred) + target_img = show(target) + im_cat = np.concatenate([inputs_img, pred_img, target_img], axis=1) + Image.fromarray(im_cat).save(os.path.join(cache_path, '%06d.png' % iters)) + +def show_bound(iters, inputs, pred, target, cache_path, model_type='mala'): + pred = pred[0].data.cpu().numpy() + inputs = inputs[0].data.cpu().numpy() + target = target[0].data.cpu().numpy() + + inputs = np.squeeze(inputs) + inputs = inputs[:,:,:,np.newaxis] + inputs = np.repeat(inputs, 3, 3) + + pred = np.squeeze(pred) + pred = pred[:,:,:,np.newaxis] + pred = np.repeat(pred, 3, 3) + + target = np.squeeze(target) + target = target[:,:,:,np.newaxis] + target = np.repeat(target, 3, 3) + + inputs[inputs<0]=0; inputs[inputs>1]=1 + pred[pred<0]=0; pred[pred>1]=1 + target[target<0]=0; target[target>1]=1 + inputs_img = show(inputs) + pred_img = show(pred) + target_img = show(target) + im_cat = np.concatenate([inputs_img, pred_img, target_img], axis=1) + Image.fromarray(im_cat).save(os.path.join(cache_path, '%06d.png' % iters)) + +def show_bound2(iters, inputs, pred, target, cache_path, model_type='mala'): + pred = pred[0].data.cpu().numpy() + inputs = inputs[0].data.cpu().numpy() + target = target[0].data.cpu().numpy() + + inputs = np.squeeze(inputs) + inputs = inputs[:,:,:,np.newaxis] + inputs = np.repeat(inputs, 3, 3) + + pred = np.squeeze(pred) + pred = pred[:,:,:,np.newaxis] + pred = np.repeat(pred, 3, 3) + + target = np.squeeze(target) + target = target[:,:,:,np.newaxis] + target = np.repeat(target, 3, 3) + + inputs[inputs<0]=0; inputs[inputs>1]=1 + pred[pred<0]=0; pred[pred>1]=1 + target[target<0]=0; target[target>1]=1 + inputs_img = show(inputs) + pred_img = show(pred) + target_img = show(target) + im_cat = np.concatenate([inputs_img, pred_img, target_img], axis=1) + Image.fromarray(im_cat).save(os.path.join(cache_path, '%06d_hog.png' % iters)) + +def class_color(lb): + d, h, w = lb.shape + lb_color1 = np.zeros((d, h, w), dtype=np.uint8) + lb_color2 = np.zeros((d, h, w), dtype=np.uint8) + lb_color3 = np.zeros((d, h, w), dtype=np.uint8) + ids_0 = lb == 0 + ids_1 = lb == 1 + lb_color1[ids_0] = 0; lb_color2[ids_0] = 0; lb_color3[ids_0] = 255 + lb_color1[ids_1] = 0; lb_color2[ids_1] = 255; lb_color3[ids_1] = 0 + lb_color = np.concatenate([lb_color1[:,:,:,np.newaxis], lb_color2[:,:,:,np.newaxis], lb_color3[:,:,:,np.newaxis]], axis=3) + return lb_color + + +def show_affs_pseudo(iters, inputs, pred, target, mask, cache_path, model_type='mala'): + pred = pred[0].data.cpu().numpy() + inputs = inputs[0].data.cpu().numpy() + target = target[0].data.cpu().numpy() + mask = mask[0].data.cpu().numpy() + inputs = np.squeeze(inputs) + if model_type == 'mala': + inputs = inputs[14:-14, 106:-106, 106:-106] + inputs = inputs[:,:,:,np.newaxis] + inputs = np.repeat(inputs, 3, 3) + pred = np.transpose(pred, (1,2,3,0)) + target = np.transpose(target, (1,2,3,0)) + affs_z = class_color(target[:, :, :, 0]) * mask[0][:,:,:,np.newaxis] + affs_y = class_color(target[:, :, :, 1]) * mask[1][:,:,:,np.newaxis] + affs_x = class_color(target[:, :, :, 2]) * mask[2][:,:,:,np.newaxis] + inputs_img = show(inputs) + pred_img = show(pred) + # target_img = show(target) + mask = np.transpose(mask, (1,2,3,0)) + mask_img = show(mask) + affs_z_img = show(affs_z) + affs_y_img = show(affs_y) + affs_x_img = show(affs_x) + # im_cat = np.concatenate([inputs_img, pred_img, target_img], axis=1) + im_cat1 = np.concatenate([inputs_img, pred_img], axis=1) + im_cat2 = np.concatenate([mask_img, affs_z_img], axis=1) + im_cat3 = np.concatenate([affs_y_img, affs_x_img], axis=1) + im_cat = np.concatenate([im_cat1, im_cat2, im_cat3], axis=0) + Image.fromarray(im_cat).save(os.path.join(cache_path, '%06d.png' % iters)) + +def show_affs_whole(iters, out_affs, gt_affs, cache_path, index): + out_affs = out_affs[:, -1, ...] + gt_affs = gt_affs[:, -1, ...] + out_affs = (out_affs * 255).astype(np.uint8) + out_affs = np.transpose(out_affs, (1,2,0)) + gt_affs = (gt_affs * 255).astype(np.uint8) + gt_affs = np.transpose(gt_affs, (1,2,0)) + im_cat = np.concatenate([out_affs, gt_affs], axis=1) + Image.fromarray(im_cat).save(os.path.join(cache_path, '%06d_%d.png' % (iters,index))) + +def show_bound_whole(iters, out_affs, gt_affs, cache_path, index): + out_affs = out_affs.squeeze()[0] + out_affs = (out_affs * 255).astype(np.uint8) + gt_affs = gt_affs.squeeze()[0] + gt_affs = (gt_affs * 255).astype(np.uint8) + im_cat = np.concatenate([out_affs, gt_affs], axis=1) + Image.fromarray(im_cat).save(os.path.join(cache_path, '%06d_%d.png' % (iters,index))) + +def show_affs_consistency(iters, inputs, pred, target, inputs_u, out_u1, out_u2, cache_path): + pred = pred[0].data.cpu().numpy() + inputs = inputs[0].data.cpu().numpy() + target = target[0].data.cpu().numpy() + inputs = np.squeeze(inputs) + inputs = inputs[14:-14, 106:-106, 106:-106] + inputs = inputs[:,:,:,np.newaxis] + inputs = np.repeat(inputs, 3, 3) + pred = np.transpose(pred, (1,2,3,0)) + target = np.transpose(target, (1,2,3,0)) + inputs_img = show(inputs) + pred_img = show(pred) + target_img = show(target) + im_cat1 = np.concatenate([inputs_img, pred_img, target_img], axis=1) + + out_u1 = out_u1[0].data.cpu().numpy() + inputs_u = inputs_u[0].data.cpu().numpy() + out_u2 = out_u2[0].data.cpu().numpy() + inputs_u = np.squeeze(inputs_u) + inputs_u = inputs_u[14:-14, 106:-106, 106:-106] + inputs_u = inputs_u[:,:,:,np.newaxis] + inputs_u = np.repeat(inputs_u, 3, 3) + out_u1 = np.transpose(out_u1, (1,2,3,0)) + out_u2 = np.transpose(out_u2, (1,2,3,0)) + inputs_u_img = show(inputs_u) + out_u1_img = show(out_u1) + out_u2_img = show(out_u2) + im_cat2 = np.concatenate([inputs_u_img, out_u1_img, out_u2_img], axis=1) + im_cat = np.concatenate([im_cat1, im_cat2], axis=0) + Image.fromarray(im_cat).save(os.path.join(cache_path, '%06d.png' % iters)) \ No newline at end of file diff --git a/legacy/Pretrain/utils/torch_utils.py b/legacy/Pretrain/utils/torch_utils.py new file mode 100644 index 0000000..b56b616 --- /dev/null +++ b/legacy/Pretrain/utils/torch_utils.py @@ -0,0 +1,17 @@ +from distutils.version import LooseVersion, StrictVersion +import torch + +# align_corners option available for v1.3.0 and above +HAS_AFFINE_ALIGN_CORNERS = LooseVersion(torch.__version__) >= LooseVersion('1.3.0') +# align_corners defaults to True before v1.4.0, False from v1.4.0 and after +AFFINE_ALIGN_CORNERS_DEFAULT = LooseVersion(torch.__version__) <= LooseVersion('1.3.0') + + +def affine_align_corners_kw(val): + if HAS_AFFINE_ALIGN_CORNERS: + return dict(align_corners=val) + else: + if not val: + raise RuntimeError('align_corners not available in torch version {} so ' + 'cannot set to False'.format(torch.__version__)) + return {} diff --git a/legacy/Pretrain/utils/utils.py b/legacy/Pretrain/utils/utils.py new file mode 100644 index 0000000..6fc3be1 --- /dev/null +++ b/legacy/Pretrain/utils/utils.py @@ -0,0 +1,57 @@ +import torch +import random +import numpy as np +import subprocess + +def setup_seed(seed): + torch.manual_seed(seed) + # torch.cuda.manual_seed(seed) + torch.cuda.manual_seed_all(seed) + np.random.seed(seed) + random.seed(seed) + torch.backends.cudnn.deterministic = True + +def execute(cmd): + popen = subprocess.Popen(cmd, stdout=subprocess.PIPE, universal_newlines=True) + for stdout_line in iter(popen.stdout.readline, ""): + yield stdout_line + popen.stdout.close() + return_code = popen.wait() + if return_code: + raise subprocess.CalledProcessError(return_code, cmd) + +def compute_num_single(size, stride): + # 计算大概需要滑窗的个数 + num_window = size // stride + # 判断是否能整除,如果不可以就+1 + # 即滑窗个数加1 + if size % stride != 0: + num_window += 1 + # 计算padding的大小 + padding_2times = num_window * stride - size + (stride * 2) + # 如果padding的大小不能被2整除 + # 就继续增加滑窗的个数,已使得padding_2times能被2整除 + while padding_2times % 2 != 0: + num_window += 1 + padding_2times = num_window * stride - size + (stride * 2) + # 除以2是为了对称padding + padding = padding_2times // 2 + # 加1是为了补上最后一个完整的滑窗 + num_window += 1 + return num_window, padding + +def compute_num(raw_shape, stride): + size_z = raw_shape[0] + size_xy = raw_shape[1] + stride_z = stride[0] + stride_xy = stride[1] + num_z, padding_z = compute_num_single(size_z, stride_z) + num_xy, padding_xy = compute_num_single(size_xy, stride_xy) + return [num_z, num_xy, num_xy], [padding_z, padding_xy, padding_xy] + +if __name__ == "__main__": + raw = [500, 4096, 4096] + stride = [18, 128, 128] + num, padding = compute_num(raw, stride) + print(num) + print(padding) diff --git a/legacy/README.md b/legacy/README.md new file mode 100644 index 0000000..6a857b8 --- /dev/null +++ b/legacy/README.md @@ -0,0 +1,107 @@ + +# SegNeuron logo +Official implementation, datasets and trained models of "SegNeuron: 3D Neuron Instance Segmentation in + Any EM Volume with a Generalist Model" ([MICCAI 2024](https://papers.miccai.org/miccai-2024/paper/0518_paper.pdf)) + +![GitHub stars](https://img.shields.io/github/stars/yanchaoz/SegNeuron?style=social) +![GitHub forks](https://img.shields.io/github/forks/yanchaoz/SegNeuron?style=social) +![Visitors](https://visitor-badge.laobi.icu/badge?page_id=yanchaoz.SegNeuron) +[![HuggingFace](https://img.shields.io/badge/🤗%20Dataset-EMNeuron-yellow)](https://huggingface.co/datasets/yanchaoz/EMNeuron) +[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/yanchaoz/SegNeuron/blob/main/SegNeuron_Colab_Inference.ipynb) + + +> [!TIP] +> **SegNeuron is now available as an Agent Skill in [EM-Skills](https://github.com/yanchaoz/EM-Skills).** +> +> **EM-Skills** is a growing collection of reusable Agent Skills for EM analysis, currently including: +> - 🧠 **Neuron Segmentation Skill** — SegNeuron-based neuron reconstruction +> - 🧬 **Mitochondria Segmentation Skill** — MitoNet-based mitochondria segmentation +> - 🎯 **Annotation Selection Skill** — informative region selection for efficient annotation +> - 🎥 **EM Visualization Skill** — CloudVolume-based visualization and video generation +> +> 👉 See **[EM-Skills](https://github.com/yanchaoz/EM-Skills)** for installation and usage. Contributions are welcome—feel free to submit issues, propose new EM Skills, or improve existing ones. + + +## How does SegNeuron speed up neuron segmentation in EM volumes? +The general-purpose model achieves outstanding reconstruction performance on entirely unseen 3D EM datasets (x/y resolution: **5–10** nm). Human experts only need to perform connectivity corrections on the coarse segmentation results, which can then be directly used to fine-tune SegNeuron or to train new lightweight models. +

+ SegNeuron-based Pipeline +

+ + + + + +## Environments +We have packaged all the dependencies into Connect.tar.gz, which can be directly downloaded for easy access [here](https://huggingface.co/yanchaoz/SegNeuron). +## Datasets and Models +The datasets required for model development and validation are available [here](https://huggingface.co/datasets/yanchaoz/EMNeuron). The trained models can be download [here](https://huggingface.co/yanchaoz/SegNeuron). If you use any of the following vEM datasets in your work, please also cite the corresponding original publications: + +- **vEM1: MiRA-ADWT** + *Ultrastructural Alterations of Dendritic Morphology in the Prefrontal Cortex of Alzheimer’s Disease Model Rats* [link](https://link.springer.com/article/10.1007/s12264-026-01606-5) + +- **vEM2: MiRA-ZF** + *Multiplexed Neuromodulatory-Type-Annotated EM-Reconstruction of Larval Zebrafish* [link](https://www.biorxiv.org/content/10.1101/2025.06.12.659365v1) + +- **vEM3: MiRA-SCN** + *Connectomic Organization of the Suprachiasmatic Nucleus* [link](https://www.biorxiv.org/content/10.1101/2024.10.20.619252v1) + +- **vEM4: MiRA-PIB** + *PIB: Parallel ion beam etching of sections collected on wafer for ultra large-scale connectomics* [link](https://www.biorxiv.org/content/10.1101/2025.04.25.650569v4) + +### Table: Details of EMNeuron + +
+ +| Dataset | Modality | Res.($nm$) ($x\/y,z$) | Total voxels (M) | Labeled voxels (M) | Dataset | Modality | Res.($nm$) ($x\/y,z$) | Total voxels (M) | Labeled voxels (M) | +|----------------------|------------|----------------------|------------------|--------------------|-----------------------|------------|----------------------|------------------|--------------------| +| ZFinch | SBF-SEM | 9, 20 | 3635 | 131 | HBrain | FIB-SEM | 8, 8 | 3072 | 844 | +| Layer4 | SBF-SEM | 9, 20 | 1674 | - | FIB25 | FIB-SEM | 8, 8 | 312 | 312 | +| _vEM1_ (adwt) | ATUM-SEM | 8, 50 | 1205 | 157 | Minnie | ssTEM | 8, 40 | 2096 | - | +| _vEM2_ (zfish) | ATUM-SEM | 8, 30 | 1329 | 281 | Pinky | ssTEM | 8, 40 | 1165 | 117 | +| _vEM3_ (scn) | ATUM-SEM | 8, 40 | 1301 | 253 | FAFB | ssTEM | 8, 40 | 2625 | 577 | +|MitoEM | ATUM-SEM | 8, 30 | 1048 | - | Basil | ssTEM | 8, 40 | 23 | 23 | +| H01 | ATUM-SEM | 8, 30 | 1166 | 118 | Harris | others | 6, 50 | 30 | 30 | +| Kasthuri | ATUM-SEM | 6, 30 | 1526 | 478 | _vEM4_ (ionsem) | others | 8, 20 | 45 | - | + +
+ + + +## Training +### 1. Pretraining +``` +cd Pretrain +``` +``` +python pretrain.py +``` +### 2. Supervised Training +``` +cd Train_and_Inference +``` +``` +python supervised_train.py +``` +## Inference +### 1. Affinity Inference +``` +cd Train_and_Inference +``` +``` +python inference.py +``` +### 2. Instance Segmentation +``` +cd Postprocess +``` +``` +python FRMC_post.py +``` +### 3. Zero-shot Segmentation Examples on [MitoEM](https://mitoem.grand-challenge.org/) and [Wildenberg](https://bossdb.org/project/wildenberg2023) (scale bar: 2 um) +

+ +

+ +## Acknowledgement +This code is based on [SSNS-Net](https://github.com/weih527/SSNS-Net) (IEEE TMI'22) by Huang Wei et al. The postprocessing tools are based on [constantinpape/elf](https://github.com/constantinpape/elf). Should you have any further questions, please let us know. Thanks again for your interest. diff --git a/legacy/SNAPSHOT.md b/legacy/SNAPSHOT.md new file mode 100644 index 0000000..1ca26ce --- /dev/null +++ b/legacy/SNAPSHOT.md @@ -0,0 +1,10 @@ +# Original repository snapshot + +All files tracked at `yanchaoz/SegNeuron` commit +`ccb0ba2c5e28e0d2c454e7320c341e71f4eb148c` are preserved here byte for byte, +including the original README, dependency export, notebook, figures, training +code and inference scripts. `SNAPSHOT.md` is the only added file in this snapshot. + +These files document the original implementation. Use the repository-root README +for the maintained commands. The historical scripts contain machine-specific +paths and are not the supported entry points. diff --git a/legacy/SegNeuron_Colab_Inference.ipynb b/legacy/SegNeuron_Colab_Inference.ipynb new file mode 100644 index 0000000..61155d9 --- /dev/null +++ b/legacy/SegNeuron_Colab_Inference.ipynb @@ -0,0 +1,810 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# SegNeuron Colab: Predict and Segment New EM Volumes\n", + "\n", + "This is a **single-file, self-contained** Colab project. The model architecture, general-purpose sliding-window inference, blending logic, and FRMC postprocessing are all included in this notebook. It does not clone the repository or import any external Python files.\n", + "\n", + "**Intended users:** researchers who want to apply a trained SegNeuron model to their own 3D EM TIFF volumes. \n", + "**Required inputs:** one `raw.tif/.tiff` volume and the `SegNeuronModel.ckpt` checkpoint. \n", + "**Outputs:** affinity predictions, boundary predictions, and an instance segmentation.\n", + "\n", + "> In Colab, select **Runtime → Change runtime type → T4 GPU**. The checkpoint is about 155 MB, so Google Drive is recommended, although direct browser upload is also supported." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Workflow\n", + "\n", + "1. Install dependencies and verify GPU availability\n", + "2. Upload files from the browser or mount Google Drive\n", + "3. Configure input, checkpoint, output, and inference parameters\n", + "4. Define the embedded MNet, sliding-window inference, and FRMC postprocessing\n", + "5. Run prediction and instance segmentation in one call\n", + "6. Inspect and download the results" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Install dependencies that are not included in the default Colab runtime.\n", + "# python-elf provides the FRMC/multicut postprocessing used by SegNeuron.\n", + "%pip install -q \"python-elf==0.9.1\" \"imageio>=2.31\" \"tifffile>=2023.7\" \"scikit-image>=0.20\" tqdm\n", + "\n", + "import sys, torch, numpy as np\n", + "print(\"Python:\", sys.version.split()[0])\n", + "print(\"PyTorch:\", torch.__version__)\n", + "print(\"CUDA available:\", torch.cuda.is_available())\n", + "if not torch.cuda.is_available():\n", + " print(\"WARNING: No GPU is available. 3D inference will be very slow; switch to a GPU runtime.\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Prepare the Input Files\n", + "\n", + "Choose one method:\n", + "\n", + "- For smaller files, set `UPLOAD_FROM_BROWSER=True`, run the cell, and select both the TIFF and checkpoint.\n", + "- For the 155 MB checkpoint and larger TIFF volumes, place the files in Google Drive and set `USE_GOOGLE_DRIVE=True`.\n", + "\n", + "After uploading or mounting, enter the actual paths in the configuration cell." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#@title Input source\n", + "UPLOAD_FROM_BROWSER = False #@param {type:\"boolean\"}\n", + "USE_GOOGLE_DRIVE = False #@param {type:\"boolean\"}\n", + "\n", + "if UPLOAD_FROM_BROWSER:\n", + " from google.colab import files\n", + " uploaded = files.upload()\n", + " print(\"Uploaded:\", list(uploaded))\n", + "\n", + "if USE_GOOGLE_DRIVE:\n", + " from google.colab import drive\n", + " drive.mount(\"/content/drive\")\n", + " print(\"Google Drive mounted at /content/drive\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#@title Paths and parameters (edit, then run)\n", + "RAW_PATH = \"/content/raw.tif\" #@param {type:\"string\"}\n", + "CHECKPOINT_PATH = \"/content/SegNeuronModel.ckpt\" #@param {type:\"string\"}\n", + "OUTPUT_DIR = \"/content/segneuron_results\" #@param {type:\"string\"}\n", + "\n", + "# Values are ordered as z/y/x. The y and x crop sizes should be multiples of 16.\n", + "# A stride must not exceed the corresponding crop size.\n", + "CROP_SIZE = (20, 128, 128)\n", + "STRIDE = (10, 64, 64)\n", + "BATCH_SIZE = 1 #@param {type:\"integer\"}\n", + "NORMALIZATION = \"auto\" #@param [\"auto\", \"minmax\", \"none\"]\n", + "WEIGHT_SIGMA = 0.5 #@param {type:\"number\"}\n", + "BETA = 0.25 #@param {type:\"number\"}\n", + "\n", + "from pathlib import Path\n", + "Path(OUTPUT_DIR).mkdir(parents=True, exist_ok=True)\n", + "AFFINITY_OUTPUT = str(Path(OUTPUT_DIR) / \"affinities.npy\")\n", + "BOUNDARY_OUTPUT = str(Path(OUTPUT_DIR) / \"boundaries.tif\")\n", + "SEGMENTATION_OUTPUT = str(Path(OUTPUT_DIR) / \"instances.npy\")\n", + "print(\"Results will be written to\", OUTPUT_DIR)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Embedded MNet Model\n", + "\n", + "The following cell contains the complete MNet definition used by SegNeuron. It is embedded directly in this notebook and does not load code from GitHub or a local `.py` file." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from torch import nn\n", + "from torch import nn\n", + "import torch\n", + "import torch.nn.functional as F\n", + "\n", + "\n", + "class CNA3d(nn.Module): # conv + norm + activation\n", + " def __init__(self, in_channels, out_channels, kSize, stride, padding=(1, 1, 1), bias=True, norm_args=None,\n", + " activation_args=None):\n", + " super().__init__()\n", + " self.norm_args = norm_args\n", + " self.activation_args = activation_args\n", + "\n", + " self.conv = nn.Conv3d(in_channels, out_channels, kernel_size=kSize, stride=stride, padding=padding, bias=bias)\n", + "\n", + " if norm_args is not None:\n", + " self.norm = nn.InstanceNorm3d(out_channels, **norm_args)\n", + "\n", + " if activation_args is not None:\n", + " self.activation = nn.LeakyReLU(**activation_args)\n", + "\n", + " def forward(self, x):\n", + " x = self.conv(x)\n", + "\n", + " if self.norm_args is not None:\n", + " x = self.norm(x)\n", + "\n", + " if self.activation_args is not None:\n", + " x = self.activation(x)\n", + " return x\n", + "\n", + "\n", + "class CB3d(nn.Module): # conv block 3d\n", + " def __init__(self, in_channels, out_channels, kSize=(3, 3), stride=(1, 1), padding=(1, 1, 1), bias=True,\n", + " norm_args: tuple = (None, None), activation_args: tuple = (None, None)):\n", + " super().__init__()\n", + "\n", + " self.conv1 = CNA3d(in_channels, out_channels, kSize=kSize[0], stride=stride[0],\n", + " padding=padding, bias=bias, norm_args=norm_args[0], activation_args=activation_args[0])\n", + "\n", + " self.conv2 = CNA3d(out_channels, out_channels, kSize=kSize[1], stride=stride[1],\n", + " padding=padding, bias=bias, norm_args=norm_args[1], activation_args=activation_args[1])\n", + "\n", + " def forward(self, x):\n", + " x = self.conv1(x)\n", + " x = self.conv2(x)\n", + " return x\n", + "\n", + "\n", + "class BasicNet(nn.Module):\n", + " norm_kwargs = {'affine': True}\n", + " activation_kwargs = {'negative_slope': 1e-2, 'inplace': True}\n", + "\n", + " def __init__(self):\n", + " super(BasicNet, self).__init__()\n", + "\n", + " def parameter_count(self):\n", + " print(\"model have {} paramerters in total\".format(sum(x.numel() for x in self.parameters()) / 1e6))\n", + "\n", + "\n", + "def FMU(x1, x2, mode='sub'):\n", + " \"\"\"\n", + " feature merging unit\n", + " Args:\n", + " x1:\n", + " x2:\n", + " mode: type of fusion\n", + " Returns:\n", + " \"\"\"\n", + " if mode == 'sum':\n", + " return torch.add(x1, x2)\n", + " elif mode == 'sub':\n", + " return torch.abs(x1 - x2)\n", + " elif mode == 'cat':\n", + " return torch.cat((x1, x2), dim=1)\n", + " else:\n", + " raise Exception('Unexpected mode')\n", + "\n", + "\n", + "class Down(BasicNet):\n", + " def __init__(self, in_channels, out_channels, mode: tuple, FMU='sub', downsample=True, min_z=8):\n", + " \"\"\"\n", + " basic module at downsampling stage\n", + " Args:\n", + " in_channels:\n", + " out_channels:\n", + " mode: represent the streams coming in and out. e.g., ('2d', 'both'): one input stream (2d) and two output streams (2d and 3d)\n", + " FMU: determine the type of feature fusion if there are two input streams\n", + " downsample: determine whether to downsample input features (only the first module of MNet do not downsample)\n", + " min_z: if the size of z-axis < min_z, maxpooling won't be applied along z-axis\n", + " \"\"\"\n", + " super().__init__()\n", + " self.mode_in, self.mode_out = mode\n", + " self.downsample = downsample\n", + " self.FMU = FMU\n", + " self.min_z = min_z\n", + " norm_args = (self.norm_kwargs, self.norm_kwargs)\n", + " activation_args = (self.activation_kwargs, self.activation_kwargs)\n", + "\n", + " if self.mode_out == '2d' or self.mode_out == 'both':\n", + " self.CB2d = CB3d(in_channels=in_channels, out_channels=out_channels,\n", + " kSize=((1, 3, 3), (1, 3, 3)), stride=(1, 1), padding=(0, 1, 1),\n", + " norm_args=norm_args, activation_args=activation_args)\n", + "\n", + " if self.mode_out == '3d' or self.mode_out == 'both':\n", + " self.CB3d = CB3d(in_channels=in_channels, out_channels=out_channels,\n", + " kSize=(3, 3), stride=(1, 1), padding=(1, 1, 1),\n", + " norm_args=norm_args, activation_args=activation_args)\n", + "\n", + " def forward(self, x):\n", + " if self.downsample:\n", + " if self.mode_in == 'both':\n", + " x2d, x3d = x\n", + " p2d = F.max_pool3d(x2d, kernel_size=(1, 2, 2), stride=(1, 2, 2))\n", + " if x3d.shape[2] >= self.min_z:\n", + " p3d = F.max_pool3d(x3d, kernel_size=(2, 2, 2), stride=(2, 2, 2))\n", + " else:\n", + " p3d = F.max_pool3d(x3d, kernel_size=(1, 2, 2), stride=(1, 2, 2))\n", + "\n", + " x = FMU(p2d, p3d, mode=self.FMU)\n", + "\n", + " elif self.mode_in == '2d':\n", + " x = F.max_pool3d(x, kernel_size=(1, 2, 2), stride=(1, 2, 2))\n", + "\n", + " elif self.mode_in == '3d':\n", + " if x.shape[2] >= self.min_z:\n", + " x = F.max_pool3d(x, kernel_size=(2, 2, 2), stride=(2, 2, 2))\n", + " else:\n", + " x = F.max_pool3d(x, kernel_size=(1, 2, 2), stride=(1, 2, 2))\n", + "\n", + " if self.mode_out == '2d':\n", + " return self.CB2d(x)\n", + " elif self.mode_out == '3d':\n", + " return self.CB3d(x)\n", + " elif self.mode_out == 'both':\n", + " return self.CB2d(x), self.CB3d(x)\n", + "\n", + "\n", + "class Up(BasicNet):\n", + " def __init__(self, in_channels, out_channels, mode: tuple, FMU='sub'):\n", + " \"\"\"\n", + " basic module at upsampling stage\n", + " Args:\n", + " in_channels:\n", + " out_channels:\n", + " mode: represent the streams coming in and out. e.g., ('2d', 'both'): one input stream (2d) and two output streams (2d and 3d)\n", + " FMU: determine the type of feature fusion if there are two input streams\n", + " \"\"\"\n", + " super().__init__()\n", + " self.mode_in, self.mode_out = mode\n", + " self.FMU = FMU\n", + " norm_args = (self.norm_kwargs, self.norm_kwargs)\n", + " activation_args = (self.activation_kwargs, self.activation_kwargs)\n", + "\n", + " if self.mode_out == '2d' or self.mode_out == 'both':\n", + " self.CB2d = CB3d(in_channels=in_channels, out_channels=out_channels,\n", + " kSize=((1, 3, 3), (1, 3, 3)), stride=(1, 1), padding=(0, 1, 1),\n", + " norm_args=norm_args, activation_args=activation_args)\n", + "\n", + " if self.mode_out == '3d' or self.mode_out == 'both':\n", + " self.CB3d = CB3d(in_channels=in_channels, out_channels=out_channels,\n", + " kSize=(3, 3), stride=(1, 1), padding=(1, 1, 1),\n", + " norm_args=norm_args, activation_args=activation_args)\n", + "\n", + " def forward(self, x):\n", + " x2d, xskip2d, x3d, xskip3d = x\n", + "\n", + " tarSize = xskip2d.shape[2:]\n", + " up2d = F.interpolate(x2d, size=tarSize, mode='trilinear', align_corners=False)\n", + " up3d = F.interpolate(x3d, size=tarSize, mode='trilinear', align_corners=False)\n", + "\n", + " cat = torch.cat([FMU(xskip2d, xskip3d, self.FMU), FMU(up2d, up3d, self.FMU)], dim=1)\n", + "\n", + " if self.mode_out == '2d':\n", + " return self.CB2d(cat)\n", + " elif self.mode_out == '3d':\n", + " return self.CB3d(cat)\n", + " elif self.mode_out == 'both':\n", + " return self.CB2d(cat), self.CB3d(cat)\n", + "\n", + "\n", + "class MNet(BasicNet):\n", + " def __init__(self, in_channels, kn=(32, 48, 64, 80, 96), FMU='sub'):\n", + " \"\"\"\n", + "\n", + " Args:\n", + " in_channels: channels of input\n", + " num_classes: output classes\n", + " kn: the number of kernels\n", + " ds: deep supervision\n", + " FMU: type of feature merging unit\n", + " \"\"\"\n", + " super().__init__()\n", + "\n", + " channel_factor = {'sum': 1, 'sub': 1, 'cat': 2}\n", + " fct = channel_factor[FMU]\n", + "\n", + " self.down11 = Down(in_channels, kn[0], ('/', 'both'), downsample=False)\n", + " self.down12 = Down(kn[0], kn[1], ('2d', 'both'))\n", + " self.down13 = Down(kn[1], kn[2], ('2d', 'both'))\n", + " self.down14 = Down(kn[2], kn[3], ('2d', 'both'))\n", + " self.bottleneck1 = Down(kn[3], kn[4], ('2d', '2d'))\n", + " self.up11 = Up(fct * (kn[3] + kn[4]), kn[3], ('both', '2d'), FMU)\n", + " self.up12 = Up(fct * (kn[2] + kn[3]), kn[2], ('both', '2d'), FMU)\n", + " self.up13 = Up(fct * (kn[1] + kn[2]), kn[1], ('both', '2d'), FMU)\n", + " self.up14 = Up(fct * (kn[0] + kn[1]), kn[0], ('both', 'both'), FMU)\n", + "\n", + " self.up11_ = Up(fct * (kn[3] + kn[4]), kn[3], ('both', '2d'), FMU)\n", + " self.up12_ = Up(fct * (kn[2] + kn[3]), kn[2], ('both', '2d'), FMU)\n", + " self.up13_ = Up(fct * (kn[1] + kn[2]), kn[1], ('both', '2d'), FMU)\n", + " self.up14_ = Up(fct * (kn[0] + kn[1]), kn[0], ('both', 'both'), FMU)\n", + "\n", + " self.down21 = Down(kn[0], kn[1], ('3d', 'both'))\n", + " self.down22 = Down(fct * kn[1], kn[2], ('both', 'both'), FMU)\n", + " self.down23 = Down(fct * kn[2], kn[3], ('both', 'both'), FMU)\n", + " self.bottleneck2 = Down(fct * kn[3], kn[4], ('both', 'both'), FMU)\n", + " self.up21 = Up(fct * (kn[3] + kn[4]), kn[3], ('both', 'both'), FMU)\n", + " self.up22 = Up(fct * (kn[2] + kn[3]), kn[2], ('both', 'both'), FMU)\n", + " self.up23 = Up(fct * (kn[1] + kn[2]), kn[1], ('both', '3d'), FMU)\n", + "\n", + " self.up21_ = Up(fct * (kn[3] + kn[4]), kn[3], ('both', 'both'), FMU)\n", + " self.up22_ = Up(fct * (kn[2] + kn[3]), kn[2], ('both', 'both'), FMU)\n", + " self.up23_ = Up(fct * (kn[1] + kn[2]), kn[1], ('both', '3d'), FMU)\n", + "\n", + " self.down31 = Down(kn[1], kn[2], ('3d', 'both'))\n", + " self.down32 = Down(fct * kn[2], kn[3], ('both', 'both'), FMU)\n", + " self.bottleneck3 = Down(fct * kn[3], kn[4], ('both', 'both'), FMU)\n", + " self.up31 = Up(fct * (kn[3] + kn[4]), kn[3], ('both', 'both'), FMU)\n", + " self.up32 = Up(fct * (kn[2] + kn[3]), kn[2], ('both', '3d'), FMU)\n", + "\n", + " self.up31_ = Up(fct * (kn[3] + kn[4]), kn[3], ('both', 'both'), FMU)\n", + " self.up32_ = Up(fct * (kn[2] + kn[3]), kn[2], ('both', '3d'), FMU)\n", + "\n", + " self.down41 = Down(kn[2], kn[3], ('3d', 'both'), FMU)\n", + " self.bottleneck4 = Down(fct * kn[3], kn[4], ('both', 'both'), FMU)\n", + " self.up41 = Up(fct * (kn[3] + kn[4]), kn[3], ('both', '3d'), FMU)\n", + "\n", + " self.up41_ = Up(fct * (kn[3] + kn[4]), kn[3], ('both', '3d'), FMU)\n", + "\n", + " self.bottleneck5 = Down(kn[3], kn[4], ('3d', '3d'))\n", + "\n", + " self.outputs = nn.ModuleList(\n", + " [nn.Conv3d(c, 3, kernel_size=(1, 1, 1), stride=1, padding=0, bias=False)\n", + " for c in [kn[0], kn[1], kn[1], kn[2], kn[2], kn[3], kn[3]]]\n", + " )\n", + "\n", + " self.outputs2 = nn.ModuleList(\n", + " [nn.Conv3d(c, 1, kernel_size=(1, 1, 1), stride=1, padding=0, bias=False)\n", + " for c in [kn[0], kn[1], kn[1], kn[2], kn[2], kn[3], kn[3]]]\n", + " )\n", + " self.sigmoid = nn.Sigmoid()\n", + "\n", + " def forward(self, x):\n", + " down11 = self.down11(x)\n", + " down12 = self.down12(down11[0])\n", + " down13 = self.down13(down12[0])\n", + " down14 = self.down14(down13[0])\n", + " bottleNeck1 = self.bottleneck1(down14[0])\n", + "\n", + " down21 = self.down21(down11[1])\n", + " down22 = self.down22([down21[0], down12[1]])\n", + " down23 = self.down23([down22[0], down13[1]])\n", + " bottleNeck2 = self.bottleneck2([down23[0], down14[1]])\n", + "\n", + " down31 = self.down31(down21[1])\n", + " down32 = self.down32([down31[0], down22[1]])\n", + " bottleNeck3 = self.bottleneck3([down32[0], down23[1]])\n", + "\n", + " down41 = self.down41(down31[1])\n", + " bottleNeck4 = self.bottleneck4([down41[0], down32[1]])\n", + "\n", + " bottleNeck5 = self.bottleneck5(down41[1])\n", + "\n", + " up41 = self.up41([bottleNeck4[0], down41[0], bottleNeck5, down41[1]])\n", + "\n", + " up31 = self.up31([bottleNeck3[0], down32[0], bottleNeck4[1], down32[1]])\n", + " up32 = self.up32([up31[0], down31[0], up41, down31[1]])\n", + "\n", + " up21 = self.up21([bottleNeck2[0], down23[0], bottleNeck3[1], down23[1]])\n", + " up22 = self.up22([up21[0], down22[0], up31[1], down22[1]])\n", + " up23 = self.up23([up22[0], down21[0], up32, down21[1]])\n", + "\n", + " up11 = self.up11([bottleNeck1, down14[0], bottleNeck2[1], down14[1]])\n", + " up12 = self.up12([up11, down13[0], up21[1], down13[1]])\n", + " up13 = self.up13([up12, down12[0], up22[1], down12[1]])\n", + " up14 = self.up14([up13, down11[0], up23, down11[1]])\n", + "\n", + " up41_ = self.up41_([bottleNeck4[0], down41[0], bottleNeck5, down41[1]])\n", + "\n", + " up31_ = self.up31_([bottleNeck3[0], down32[0], bottleNeck4[1], down32[1]])\n", + " up32_ = self.up32_([up31_[0], down31[0], up41_, down31[1]])\n", + "\n", + " up21_ = self.up21_([bottleNeck2[0], down23[0], bottleNeck3[1], down23[1]])\n", + " up22_ = self.up22_([up21_[0], down22[0], up31_[1], down22[1]])\n", + " up23_ = self.up23_([up22_[0], down21[0], up32_, down21[1]])\n", + "\n", + " up11_ = self.up11_([bottleNeck1, down14[0], bottleNeck2[1], down14[1]])\n", + " up12_ = self.up12_([up11_, down13[0], up21_[1], down13[1]])\n", + " up13_ = self.up13_([up12_, down12[0], up22_[1], down12[1]])\n", + " up14_ = self.up14_([up13_, down11[0], up23_, down11[1]])\n", + "\n", + " return self.sigmoid(self.outputs[0](up14[0] + up14[1])), self.sigmoid(self.outputs2[0](up14_[0] + up14_[1]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. General-Purpose Sliding-Window Inference\n", + "\n", + "The implementation supports rectangular and non-divisible volumes, pads axes smaller than the crop, places the final window flush with each boundary, guarantees full coverage, blends overlaps with Gaussian weights, handles batches safely, and recognizes common checkpoint dictionary formats." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from collections import OrderedDict\n", + "from pathlib import Path\n", + "import math\n", + "import imageio.v2 as imageio\n", + "import numpy as np\n", + "import tifffile\n", + "import torch\n", + "from torch.utils.data import Dataset, DataLoader\n", + "from tqdm.auto import tqdm\n", + "\n", + "\n", + "def _triple(value, name):\n", + " if len(value) != 3 or any(int(v) <= 0 for v in value):\n", + " raise ValueError(f\"{name} must contain three positive integers (z, y, x): {value}\")\n", + " return tuple(int(v) for v in value)\n", + "\n", + "\n", + "def window_starts(length, window, step):\n", + " if step > window:\n", + " raise ValueError(f\"stride {step} cannot exceed crop size {window}\")\n", + " if length <= window:\n", + " return [0]\n", + " starts = list(range(0, length - window + 1, step))\n", + " if starts[-1] != length - window:\n", + " starts.append(length - window)\n", + " return starts\n", + "\n", + "\n", + "def normalize_volume(raw, mode=\"auto\"):\n", + " raw = np.asarray(raw)\n", + " if mode == \"none\":\n", + " return raw.astype(np.float32, copy=False)\n", + " if mode == \"minmax\":\n", + " out = raw.astype(np.float32)\n", + " lo, hi = float(np.nanmin(out)), float(np.nanmax(out))\n", + " return (out - lo) / (hi - lo) if hi > lo else np.zeros_like(out)\n", + " if mode != \"auto\":\n", + " raise ValueError(f\"unknown normalization: {mode}\")\n", + " if np.issubdtype(raw.dtype, np.integer):\n", + " return raw.astype(np.float32) / float(np.iinfo(raw.dtype).max)\n", + " out = raw.astype(np.float32, copy=False)\n", + " lo, hi = float(np.nanmin(out)), float(np.nanmax(out))\n", + " if 0 <= lo and hi <= 1:\n", + " return out\n", + " return (out - lo) / (hi - lo) if hi > lo else np.zeros_like(out)\n", + "\n", + "\n", + "class SlidingWindowVolume(Dataset):\n", + " def __init__(self, raw_path, crop_size=(20, 128, 128), stride=(10, 64, 64),\n", + " normalization=\"auto\", weight_sigma=0.5):\n", + " raw_path = Path(raw_path).expanduser()\n", + " if not raw_path.is_file():\n", + " raise FileNotFoundError(f\"Input TIFF not found: {raw_path}\")\n", + " raw = np.asarray(tifffile.imread(raw_path))\n", + " if raw.ndim != 3:\n", + " raise ValueError(f\"Expected TIFF shape (z,y,x), got {raw.shape}\")\n", + " self.original_shape = tuple(raw.shape)\n", + " self.crop_size = _triple(crop_size, \"crop_size\")\n", + " self.stride = _triple(stride, \"stride\")\n", + " if self.crop_size[1] % 16 or self.crop_size[2] % 16:\n", + " raise ValueError(\"crop y/x must be multiples of 16 for MNet\")\n", + " pad_after = tuple(max(crop - size, 0) for size, crop in zip(raw.shape, self.crop_size))\n", + " if any(pad_after):\n", + " raw = np.pad(raw, tuple((0, p) for p in pad_after), mode=\"edge\")\n", + " self.raw = normalize_volume(raw, normalization)\n", + " self.padded_shape = tuple(self.raw.shape)\n", + " axes = [window_starts(n, c, s) for n, c, s in\n", + " zip(self.padded_shape, self.crop_size, self.stride)]\n", + " self.positions = [(z, y, x) for z in axes[0] for y in axes[1] for x in axes[2]]\n", + " coords = [np.linspace(-1, 1, n, dtype=np.float32) for n in self.crop_size]\n", + " zz, yy, xx = np.meshgrid(*coords, indexing=\"ij\")\n", + " if weight_sigma > 0:\n", + " weight = np.exp(-(zz*zz + yy*yy + xx*xx) / (2 * weight_sigma**2))\n", + " weight = np.maximum(weight, 1e-3)\n", + " else:\n", + " weight = np.ones(self.crop_size, np.float32)\n", + " self.weight = weight[None].astype(np.float32)\n", + "\n", + " def __len__(self): return len(self.positions)\n", + "\n", + " def __getitem__(self, index):\n", + " z, y, x = self.positions[index]\n", + " dz, dy, dx = self.crop_size\n", + " patch = self.raw[z:z+dz, y:y+dy, x:x+dx]\n", + " return np.ascontiguousarray(patch[None], dtype=np.float32), index\n", + "\n", + " def accumulator(self, channels):\n", + " return (np.zeros((channels,) + self.padded_shape, np.float32),\n", + " np.zeros((1,) + self.padded_shape, np.float32))\n", + "\n", + " def add(self, total, weights, prediction, index):\n", + " z, y, x = self.positions[int(index)]\n", + " dz, dy, dx = self.crop_size\n", + " if tuple(prediction.shape[1:]) != self.crop_size:\n", + " raise ValueError(f\"Model output {prediction.shape[1:]} != crop {self.crop_size}\")\n", + " total[:, z:z+dz, y:y+dy, x:x+dx] += prediction * self.weight\n", + " weights[:, z:z+dz, y:y+dy, x:x+dx] += self.weight\n", + "\n", + " def finish(self, total, weights):\n", + " if np.any(weights == 0):\n", + " raise RuntimeError(\"Sliding windows left uncovered voxels\")\n", + " z, y, x = self.original_shape\n", + " return (total / weights)[:, :z, :y, :x]\n", + "\n", + "\n", + "def checkpoint_state_dict(checkpoint):\n", + " if isinstance(checkpoint, dict):\n", + " for key in (\"model_weights\", \"model_state_dict\", \"state_dict\", \"model\"):\n", + " if key in checkpoint and isinstance(checkpoint[key], dict):\n", + " checkpoint = checkpoint[key]\n", + " break\n", + " if not isinstance(checkpoint, dict):\n", + " raise ValueError(\"Checkpoint does not contain a state dictionary\")\n", + " return OrderedDict((key.removeprefix(\"module.\"), value) for key, value in checkpoint.items())\n", + "\n", + "\n", + "def load_model(checkpoint_path, device):\n", + " checkpoint_path = Path(checkpoint_path).expanduser()\n", + " if not checkpoint_path.is_file():\n", + " raise FileNotFoundError(f\"Checkpoint not found: {checkpoint_path}\")\n", + " model = MNet(1, kn=(32, 64, 96, 128, 256), FMU=\"sub\")\n", + " state = torch.load(checkpoint_path, map_location=device)\n", + " model.load_state_dict(checkpoint_state_dict(state))\n", + " return model.to(device).eval()\n", + "\n", + "\n", + "@torch.inference_mode()\n", + "def predict(raw_path, checkpoint_path, affinity_output, boundary_output,\n", + " crop_size=(20,128,128), stride=(10,64,64), batch_size=1,\n", + " normalization=\"auto\", weight_sigma=0.5, device=None):\n", + " device = torch.device(device or (\"cuda\" if torch.cuda.is_available() else \"cpu\"))\n", + " dataset = SlidingWindowVolume(raw_path, crop_size, stride, normalization, weight_sigma)\n", + " loader = DataLoader(dataset, batch_size=batch_size, shuffle=False,\n", + " num_workers=0, pin_memory=device.type == \"cuda\")\n", + " model = load_model(checkpoint_path, device)\n", + " affinity_sum = affinity_weight = boundary_sum = boundary_weight = None\n", + " for inputs, indices in tqdm(loader, desc=\"SegNeuron inference\"):\n", + " affinities, boundaries = model(inputs.to(device, non_blocking=True))\n", + " affinities, boundaries = affinities.cpu().numpy(), boundaries.cpu().numpy()\n", + " if affinity_sum is None:\n", + " affinity_sum, affinity_weight = dataset.accumulator(affinities.shape[1])\n", + " boundary_sum, boundary_weight = dataset.accumulator(boundaries.shape[1])\n", + " for affinity, boundary, index in zip(affinities, boundaries, indices.tolist()):\n", + " dataset.add(affinity_sum, affinity_weight, affinity, index)\n", + " dataset.add(boundary_sum, boundary_weight, boundary, index)\n", + " affinity = dataset.finish(affinity_sum, affinity_weight)\n", + " boundary = dataset.finish(boundary_sum, boundary_weight)\n", + " np.save(affinity_output, affinity)\n", + " tifffile.imwrite(boundary_output, boundary[0], photometric=\"minisblack\")\n", + " print(\"Affinity:\", affinity.shape, affinity.dtype, \"->\", affinity_output)\n", + " print(\"Boundary:\", boundary.shape, boundary.dtype, \"->\", boundary_output)\n", + " return affinity, boundary\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4. Embedded FRMC/Multicut Postprocessing\n", + "\n", + "This function receives in-memory prediction arrays directly. It implements the watershed, region adjacency graph, and Kernighan–Lin multicut workflow used by the original SegNeuron postprocessing script." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def postprocess(affinities, boundaries=None, output=None, beta=0.25):\n", + " import elf.segmentation.features as feats\n", + " import elf.segmentation.multicut as mc\n", + " import elf.segmentation.watershed as ws\n", + "\n", + " affinities = np.asarray(affinities, dtype=np.float32)\n", + " if affinities.ndim != 4 or affinities.shape[0] != 3:\n", + " raise ValueError(f\"Affinities must be (3,z,y,x), got {affinities.shape}\")\n", + " if boundaries is not None:\n", + " boundaries = np.asarray(boundaries, dtype=np.float32)\n", + " if boundaries.ndim == 4 and boundaries.shape[0] == 1:\n", + " boundaries = boundaries[0]\n", + " if boundaries.shape != affinities.shape[1:]:\n", + " raise ValueError(f\"Boundary {boundaries.shape} != {affinities.shape[1:]}\")\n", + " affinities = np.minimum(affinities, boundaries[None])\n", + "\n", + " inverted = 1.0 - affinities\n", + " boundary_input = np.maximum(inverted[1], inverted[2])\n", + " watershed = np.zeros_like(boundary_input, dtype=np.uint64)\n", + " offset = 0\n", + " for z in tqdm(range(watershed.shape[0]), desc=\"Watershed\"):\n", + " wsz, max_id = ws.distance_transform_watershed(\n", + " boundary_input[z], threshold=0.25, sigma_seeds=2.0)\n", + " wsz = wsz.astype(np.uint64, copy=False)\n", + " wsz[wsz != 0] += offset\n", + " offset += int(max_id)\n", + " watershed[z] = wsz\n", + "\n", + " rag = feats.compute_rag(watershed)\n", + " offsets = [[-1,0,0], [0,-1,0], [0,0,-1]]\n", + " probabilities = feats.compute_affinity_features(rag, inverted, offsets)[:, 0]\n", + " edge_sizes = feats.compute_boundary_mean_and_length(rag, boundary_input)[:, 1]\n", + " costs = mc.transform_probabilities_to_costs(\n", + " probabilities, edge_sizes=edge_sizes, beta=float(beta))\n", + " node_labels = mc.multicut_kernighan_lin(rag, costs)\n", + " segmentation = feats.project_node_labels_to_pixels(rag, node_labels)\n", + " if output:\n", + " np.save(output, segmentation)\n", + " print(\"Instances:\", segmentation.shape, segmentation.dtype, \"->\", output)\n", + " return segmentation\n", + "\n", + "\n", + "def run_segmentation(raw_path, checkpoint_path, output_dir,\n", + " crop_size=(20,128,128), stride=(10,64,64), batch_size=1,\n", + " normalization=\"auto\", weight_sigma=0.5, beta=0.25):\n", + " output_dir = Path(output_dir)\n", + " output_dir.mkdir(parents=True, exist_ok=True)\n", + " affinities, boundaries = predict(\n", + " raw_path, checkpoint_path,\n", + " str(output_dir / \"affinities.npy\"), str(output_dir / \"boundaries.tif\"),\n", + " crop_size, stride, batch_size, normalization, weight_sigma)\n", + " instances = postprocess(\n", + " affinities, boundaries, str(output_dir / \"instances.npy\"), beta)\n", + " return affinities, boundaries, instances\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 5. Preflight Check\n", + "\n", + "This cell only reads file metadata and validates paths; it does not start model inference. Confirm that the TIFF shape is displayed as `(z, y, x)`. If the exported volume is `(y, x, z)`, transpose it before inference." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os, tifffile\n", + "\n", + "for name, path in {\"raw\": RAW_PATH, \"checkpoint\": CHECKPOINT_PATH}.items():\n", + " if not Path(path).is_file():\n", + " raise FileNotFoundError(f\"{name} file not found: {path}\")\n", + "raw_info = tifffile.imread(RAW_PATH)\n", + "if raw_info.ndim != 3:\n", + " raise ValueError(f\"RAW must be 3-D, got {raw_info.shape}\")\n", + "estimated = (len(window_starts(max(raw_info.shape[0], CROP_SIZE[0]), CROP_SIZE[0], STRIDE[0])) *\n", + " len(window_starts(max(raw_info.shape[1], CROP_SIZE[1]), CROP_SIZE[1], STRIDE[1])) *\n", + " len(window_starts(max(raw_info.shape[2], CROP_SIZE[2]), CROP_SIZE[2], STRIDE[2])))\n", + "print(\"RAW:\", raw_info.shape, raw_info.dtype,\n", + " \"range\", (float(np.nanmin(raw_info)), float(np.nanmax(raw_info))))\n", + "print(\"Checkpoint:\", round(Path(CHECKPOINT_PATH).stat().st_size / 1024**2, 1), \"MiB\")\n", + "print(\"Sliding windows:\", estimated)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 6. Run Prediction and Instance Segmentation\n", + "\n", + "This cell performs full GPU inference followed by FRMC postprocessing. The in-memory affinity array requires approximately `3 × z × y × x × 4` bytes." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "affinities, boundaries, instances = run_segmentation(\n", + " RAW_PATH,\n", + " CHECKPOINT_PATH,\n", + " OUTPUT_DIR,\n", + " crop_size=CROP_SIZE,\n", + " stride=STRIDE,\n", + " batch_size=BATCH_SIZE,\n", + " normalization=NORMALIZATION,\n", + " weight_sigma=WEIGHT_SIGMA,\n", + " beta=BETA,\n", + ")\n", + "print(\"Unique instance labels:\", len(np.unique(instances)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 7. Inspect the Center Slice" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "z = instances.shape[0] // 2\n", + "raw = tifffile.imread(RAW_PATH)\n", + "fig, axes = plt.subplots(1, 3, figsize=(18, 6))\n", + "axes[0].imshow(raw[z], cmap=\"gray\")\n", + "axes[0].set_title(f\"Raw z={z}\")\n", + "axes[1].imshow(boundaries[0, z], cmap=\"magma\", vmin=0, vmax=1)\n", + "axes[1].set_title(\"Boundary\")\n", + "axes[2].imshow(instances[z], cmap=\"nipy_spectral\")\n", + "axes[2].set_title(\"Instances\")\n", + "for ax in axes: ax.axis(\"off\")\n", + "plt.tight_layout()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 8. Package and Download the Results\n", + "\n", + "The result directory contains:\n", + "\n", + "- `affinities.npy`: `(3,z,y,x)` float32\n", + "- `boundaries.tif`: `(z,y,x)` float32\n", + "- `instances.npy`: `(z,y,x)` uint64" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#@title Download ZIP\n", + "DOWNLOAD_RESULTS = True #@param {type:\"boolean\"}\n", + "\n", + "import shutil\n", + "archive = shutil.make_archive(\"/content/segneuron_results\", \"zip\", OUTPUT_DIR)\n", + "print(\"Created\", archive, round(Path(archive).stat().st_size / 1024**2, 1), \"MiB\")\n", + "if DOWNLOAD_RESULTS:\n", + " from google.colab import files\n", + " files.download(archive)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.12" + }, + "colab": { + "name": "SegNeuron_Colab_Inference.ipynb", + "provenance": [] + }, + "accelerator": "GPU" + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/legacy/Train_and_Inference/config/SegNeuron.yaml b/legacy/Train_and_Inference/config/SegNeuron.yaml new file mode 100644 index 0000000..eeef62c --- /dev/null +++ b/legacy/Train_and_Inference/config/SegNeuron.yaml @@ -0,0 +1,50 @@ +NAME: 'SegNeuron' + +MODEL: + pre_train: True + pretrain_path: '/***/***' + continue_train: False + continue_path: '/***/***' + +TRAIN: + resume: False + if_valid: True + cache_path: './caches/' + save_path: './models/' + pad: 0 + loss_func: 'BCELoss' + opt_type: 'adam' + display_freq: 100 + total_iters: 400000 + warmup_iters: 0 + base_lr: 0.01 + end_lr: 0.0001 + save_freq: 2000 + valid_freq: 2000 + decay_iters: 200000 + weight_decay: ~ + power: 1.5 + batch_size: 8 + num_workers: 32 + if_cuda: True + random_seed: 666 + min_valid_iter: 10000 + freq_mix_prob: 0.25 + spa_mix_prob: 0.25 + +DATA: + min_noise_std: 0.01 + max_noise_std: 0.2 + min_kernel_size: 3 + max_kernel_size: 9 + min_sigma: 0 + max_sigma: 2 + data_folder: '/***/***' + data_folder_val: '/***/***' + start_slice: 0 + end_slice: 100 + val_start: 0 + val_end: 100 + predict_split: False + if_ignore_bg: True + diff --git a/legacy/Train_and_Inference/inference.py b/legacy/Train_and_Inference/inference.py new file mode 100644 index 0000000..7aa21b6 --- /dev/null +++ b/legacy/Train_and_Inference/inference.py @@ -0,0 +1,67 @@ +import os +import yaml +import argparse +import imageio +import numpy as np +from attrdict import AttrDict +from collections import OrderedDict +from tqdm import tqdm +import warnings +import torch +import torch.nn as nn +from inference_provider import Provider_valid +from model.Mnet import MNet + +os.environ['CUDA_VISIBLE_DEVICES'] = "0" +warnings.filterwarnings("ignore") + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument('-c', '--cfg', type=str, default='SegNeuron', help='path to config file') + args = parser.parse_args() + cfg_file = args.cfg + '.yaml' + print('cfg_file: ' + cfg_file) + with open('./config/' + cfg_file, 'r') as f: + cfg = AttrDict(yaml.safe_load(f)) + + pth = '/***/***.pth' + + model = MNet(1, kn=(32, 64, 96, 128, 256), FMU='sub').cuda() + checkpoint = torch.load(pth) + new_state_dict = OrderedDict() + state_dict = checkpoint['model_weights'] + for k, v in state_dict.items(): + name = k.replace('module.', '') if 'module' in k else k + new_state_dict[name] = v + print('load mnet!') + model.load_state_dict(new_state_dict) + model = model.cuda() + + model.eval() + valid_provider = Provider_valid(cfg, valid_data='***') + criterion = nn.BCELoss() + dataloader = torch.utils.data.DataLoader(valid_provider, batch_size=1, num_workers=0, + shuffle=False, drop_last=False, pin_memory=True) + + pbar = tqdm(total=len(valid_provider)) + losses_valid = [] + for k, batch in enumerate(dataloader, 0): + inputs, target, _ = batch + inputs = inputs.cuda() + target = target.cuda() + with torch.no_grad(): + pred, bound = model(inputs) + valid_provider.add_vol(np.squeeze(pred.data.cpu().numpy())) + valid_provider.add_bound(np.squeeze(bound.data.cpu().numpy())) + pbar.update(1) + pbar.close() + + out_affs = valid_provider.get_results() + out_bounds = valid_provider.get_results_bound() + + gt_affs = valid_provider.get_gt_affs() + gt_seg = valid_provider.get_gt_lb() + valid_provider.reset_output() + + np.save('/***/***', out_affs) + imageio.volwrite('/***/***.tif', out_bounds.squeeze()) diff --git a/legacy/Train_and_Inference/inference_provider.py b/legacy/Train_and_Inference/inference_provider.py new file mode 100644 index 0000000..0026b5c --- /dev/null +++ b/legacy/Train_and_Inference/inference_provider.py @@ -0,0 +1,201 @@ +import os +import cv2 +import h5py +import math +import random +import numpy as np +from PIL import Image +from torch.utils.data import Dataset +from utils.seg_util import mknhood3d, genSegMalis +from utils.aff_util import seg_to_affgraph +import imageio + + +class Provider_valid(Dataset): + def __init__(self, cfg, valid_data=None): + # basic settings + self.cfg = cfg + if valid_data is not None: + valid_dataset_name = valid_data + else: + valid_dataset_name = cfg.DATA.valid_dataset + print('valid dataset:', valid_dataset_name) + + self.crop_size = [20, 128, 128] + self.stride = [10, 64, 64] + self.out_size = [20, 128, 128] + + if valid_dataset_name == 'Harris': + self.sub_path = 'OutofDistribution/Harris' + self.train_datasets = ['raw.tif'] + self.train_labels = ['label.tif'] + elif valid_dataset_name == 'Microns[B]': + self.sub_path = 'OutofDistribution/Microns[B]' + self.train_datasets = ['raw.tif'] + self.train_labels = ['label.tif'] + elif valid_dataset_name == 'IONSEM': + self.sub_path = 'OutofDistribution/Mira-ionsem' + self.train_datasets = ['raw.tif'] + self.train_labels = ['label.tif'] + else: + raise AttributeError('No this dataset type!') + + self.folder_name = os.path.join(cfg.DATA.data_folder_val, self.sub_path) + assert len(self.train_datasets) == len(self.train_labels) + + # load dataset + self.dataset = [] + self.labels = [] + for k in range(len(self.train_datasets)): + print('load ' + self.folder_name + self.train_datasets[k] + ' ...') + data = imageio.volread(os.path.join(self.folder_name, self.train_datasets[k])) + self.dataset.append(data[:]) + label = imageio.volread(os.path.join(self.folder_name, self.train_labels[k])) + self.labels.append(label[:]) + self.origin_data_shape = list(self.dataset[0].shape) + + self.gt_affs = [] + for k in range(len(self.labels)): + temp = self.labels[k].copy() + self.gt_affs.append(seg_to_affgraph(temp, mknhood3d(1), pad='replicate').astype(np.float32)) + + self.num_zyx = [(self.origin_data_shape[0] - self.out_size[0]) // self.stride[0] + 2, + (self.origin_data_shape[1] - self.out_size[1]) // self.stride[1] + 2, + (self.origin_data_shape[2] - self.out_size[2]) // self.stride[2] + 2] + self.valid_padding = [ + ((self.num_zyx[0] - 1) * self.stride[0] + self.out_size[0] - self.origin_data_shape[0]) // 2, + ((self.num_zyx[1] - 1) * self.stride[1] + self.out_size[1] - self.origin_data_shape[1]) // 2, + ((self.num_zyx[2] - 1) * self.stride[2] + self.out_size[2] - self.origin_data_shape[2]) // 2] + + for k in range(len(self.dataset)): + self.dataset[k] = np.pad(self.dataset[k], ((self.valid_padding[0], self.valid_padding[0]), \ + (self.valid_padding[1], self.valid_padding[1]), \ + (self.valid_padding[2], self.valid_padding[2])), mode='reflect') + self.labels[k] = np.pad(self.labels[k], ((self.valid_padding[0], self.valid_padding[0]), \ + (self.valid_padding[1], self.valid_padding[1]), \ + (self.valid_padding[2], self.valid_padding[2])), mode='reflect') + + # the training dataset size + self.raw_data_shape = list(self.dataset[0].shape) + print('valid_size:', self.raw_data_shape) + + self.reset_output() + self.weight_vol = self.get_weight() + + # the number of inference times + self.num_per_dataset = self.num_zyx[0] * self.num_zyx[1] * self.num_zyx[2] + self.iters_num = self.num_per_dataset * len(self.dataset) + + def __getitem__(self, index): + # print(index) + pos_data = index // self.num_per_dataset + pre_data = index % self.num_per_dataset + pos_z = pre_data // (self.num_zyx[1] * self.num_zyx[2]) + pos_xy = pre_data % (self.num_zyx[1] * self.num_zyx[2]) + pos_x = pos_xy // self.num_zyx[2] + pos_y = pos_xy % self.num_zyx[2] + + # find position + fromz = pos_z * self.stride[0] + endz = fromz + self.crop_size[0] + if endz > self.raw_data_shape[0]: + endz = self.raw_data_shape[0] + fromz = endz - self.crop_size[0] + fromy = pos_y * self.stride[1] + endy = fromy + self.crop_size[1] + if endy > self.raw_data_shape[1]: + endy = self.raw_data_shape[1] + fromy = endy - self.crop_size[1] + fromx = pos_x * self.stride[2] + endx = fromx + self.crop_size[2] + if endx > self.raw_data_shape[2]: + endx = self.raw_data_shape[2] + fromx = endx - self.crop_size[2] + + self.pos = [fromz, fromy, fromx] + + imgs = self.dataset[pos_data][fromz:endz, fromx:endx, fromy:endy].copy() + lb = self.labels[pos_data][fromz:endz, fromx:endx, fromy:endy].copy() + lb_affs = seg_to_affgraph(lb, mknhood3d(1), pad='replicate').astype(np.float32) + + weight_factor = np.sum(lb_affs) / np.size(lb_affs) + weight_factor = np.clip(weight_factor, 1e-3, 1) + weightmap = lb_affs * (1 - weight_factor) / weight_factor + (1 - lb_affs) + + imgs = imgs.astype(np.float32) / 255.0 + imgs = imgs[np.newaxis, ...] + imgs = np.ascontiguousarray(imgs, dtype=np.float32) + lb_affs = np.ascontiguousarray(lb_affs, dtype=np.float32) + weightmap = np.ascontiguousarray(weightmap, dtype=np.float32) + return imgs, lb_affs, weightmap + + def __len__(self): + return self.iters_num + + def reset_output(self): + self.out_affs = np.zeros(tuple([3] + self.raw_data_shape), dtype=np.float32) + self.weight_map = np.zeros(tuple([1] + self.raw_data_shape), dtype=np.float32) + + self.out_affs2 = np.zeros(tuple([1] + self.raw_data_shape), dtype=np.float32) + self.weight_map2 = np.zeros(tuple([1] + self.raw_data_shape), dtype=np.float32) + + self.out_affs3 = np.zeros(tuple([1] + self.raw_data_shape), dtype=np.float32) + self.weight_map3 = np.zeros(tuple([1] + self.raw_data_shape), dtype=np.float32) + + def get_weight(self, sigma=0.2, mu=0.0): + zz, yy, xx = np.meshgrid(np.linspace(-1, 1, self.out_size[0], dtype=np.float32), + np.linspace(-1, 1, self.out_size[1], dtype=np.float32), + np.linspace(-1, 1, self.out_size[2], dtype=np.float32), indexing='ij') + dd = np.sqrt(zz * zz + yy * yy + xx * xx) + weight = 1e-6 + np.exp(-((dd - mu) ** 2 / (2.0 * sigma ** 2))) + weight = weight[np.newaxis, ...] + return weight + + def add_vol(self, affs_vol): + fromz, fromy, fromx = self.pos + self.out_affs[:, fromz:fromz + self.out_size[0], \ + fromx:fromx + self.out_size[1], \ + fromy:fromy + self.out_size[2]] += affs_vol * self.weight_vol + self.weight_map[:, fromz:fromz + self.out_size[0], \ + fromx:fromx + self.out_size[1], \ + fromy:fromy + self.out_size[2]] += self.weight_vol + + def get_results(self): + self.out_affs = self.out_affs / self.weight_map + self.out_affs = self.out_affs[:, self.valid_padding[0]:-self.valid_padding[0], \ + self.valid_padding[1]:-self.valid_padding[1], \ + self.valid_padding[2]:-self.valid_padding[2]] + + return self.out_affs + + def add_bound(self, affs_vol): + fromz, fromy, fromx = self.pos + self.out_affs2[:, fromz:fromz + self.out_size[0], \ + fromx:fromx + self.out_size[1], \ + fromy:fromy + self.out_size[2]] += affs_vol * self.weight_vol + self.weight_map2[:, fromz:fromz + self.out_size[0], \ + fromx:fromx + self.out_size[1], \ + fromy:fromy + self.out_size[2]] += self.weight_vol + + def get_results_bound(self): + self.out_affs2 = self.out_affs2 / self.weight_map2 + self.out_affs2 = self.out_affs2[:, self.valid_padding[0]:-self.valid_padding[0], \ + self.valid_padding[1]:-self.valid_padding[1], \ + self.valid_padding[2]:-self.valid_padding[2]] + + return self.out_affs2 + + def get_gt_affs(self, num_data=0): + return self.gt_affs[num_data].copy() + + def get_gt_lb(self, num_data=0): + lbs = self.labels[num_data].copy() + return lbs[self.valid_padding[0]:-self.valid_padding[0], \ + self.valid_padding[1]:-self.valid_padding[1], \ + self.valid_padding[2]:-self.valid_padding[2]] + + def get_raw_data(self, num_data=0): + out = self.dataset[num_data].copy() + return out[self.valid_padding[0]:-self.valid_padding[0], \ + self.valid_padding[1]:-self.valid_padding[1], \ + self.valid_padding[2]:-self.valid_padding[2]] diff --git a/legacy/Train_and_Inference/loss/loss.py b/legacy/Train_and_Inference/loss/loss.py new file mode 100644 index 0000000..21a49b3 --- /dev/null +++ b/legacy/Train_and_Inference/loss/loss.py @@ -0,0 +1,190 @@ +from __future__ import print_function, division + +import torch +import torch.nn as nn +import torch.nn.functional as F + +####################################################### +# 0. Main loss functions +####################################################### + +class JaccardLoss(nn.Module): + """Jaccard loss. + """ + # binary case + + def __init__(self, size_average=True, reduce=True, smooth=1.0): + super(JaccardLoss, self).__init__() + self.smooth = smooth + self.reduce = reduce + + def jaccard_loss(self, pred, target): + loss = 0. + # for each sample in the batch + for index in range(pred.size()[0]): + iflat = pred[index].view(-1) + tflat = target[index].view(-1) + intersection = (iflat * tflat).sum() + loss += 1 - ((intersection + self.smooth) / + ( iflat.sum() + tflat.sum() - intersection + self.smooth)) + #print('loss:',intersection, iflat.sum(), tflat.sum()) + + # size_average=True for the jaccard loss + return loss / float(pred.size()[0]) + + def jaccard_loss_batch(self, pred, target): + iflat = pred.view(-1) + tflat = target.view(-1) + intersection = (iflat * tflat).sum() + loss = 1 - ((intersection + self.smooth) / + ( iflat.sum() + tflat.sum() - intersection + self.smooth)) + #print('loss:',intersection, iflat.sum(), tflat.sum()) + return loss + + def forward(self, pred, target): + #_assert_no_grad(target) + if not (target.size() == pred.size()): + raise ValueError("Target size ({}) must be the same as pred size ({})".format(target.size(), pred.size())) + if self.reduce: + loss = self.jaccard_loss(pred, target) + else: + loss = self.jaccard_loss_batch(pred, target) + return loss + +class DiceLoss(nn.Module): + """DICE loss. + """ + # https://lars76.github.io/neural-networks/object-detection/losses-for-segmentation/ + + def __init__(self, size_average=True, reduce=True, smooth=100.0, power=1): + super(DiceLoss, self).__init__() + self.smooth = smooth + self.reduce = reduce + self.power = power + + def dice_loss(self, pred, target): + loss = 0. + + for index in range(pred.size()[0]): + iflat = pred[index].view(-1) + tflat = target[index].view(-1) + intersection = (iflat * tflat).sum() + if self.power==1: + loss += 1 - ((2. * intersection + self.smooth) / + ( iflat.sum() + tflat.sum() + self.smooth)) + else: + loss += 1 - ((2. * intersection + self.smooth) / + ( (iflat**self.power).sum() + (tflat**self.power).sum() + self.smooth)) + + # size_average=True for the dice loss + return loss / float(pred.size()[0]) + + def dice_loss_batch(self, pred, target): + iflat = pred.view(-1) + tflat = target.view(-1) + intersection = (iflat * tflat).sum() + + if self.power==1: + loss = 1 - ((2. * intersection + self.smooth) / + (iflat.sum() + tflat.sum() + self.smooth)) + else: + loss = 1 - ((2. * intersection + self.smooth) / + ( (iflat**self.power).sum() + (tflat**self.power).sum() + self.smooth)) + return loss + + def forward(self, pred, target): + #_assert_no_grad(target) + if not (target.size() == pred.size()): + raise ValueError("Target size ({}) must be the same as pred size ({})".format(target.size(), pred.size())) + + if self.reduce: + loss = self.dice_loss(pred, target) + else: + loss = self.dice_loss_batch(pred, target) + return loss + +class WeightedMSE(nn.Module): + """Weighted mean-squared error. + """ + + def __init__(self): + super().__init__() + + def weighted_mse_loss(self, pred, target, weight): + + s1 = torch.prod(torch.tensor(pred.size()[2:]).float()) + s2 = pred.size()[0] + norm_term = (s1 * s2).cuda() + if weight is None: + return torch.sum((pred - target) ** 2) / norm_term + else: + return torch.sum(weight * (pred - target) ** 2) / norm_term + + def forward(self, pred, target, weight=None): + #_assert_no_grad(target) + return self.weighted_mse_loss(pred, target, weight) + +class MSELoss(nn.Module): + def __init__(self): + super().__init__() + self.criterion = nn.MSELoss() + + def forward(self, pred, target, weight=None): + return self.criterion(pred, target) + +class BCELoss(nn.Module): + def __init__(self): + super().__init__() + self.criterion = nn.BCELoss() + + def forward(self, pred, target, weight=None): + return self.criterion(pred, target) + +class WeightedBCE(nn.Module): + """Weighted binary cross-entropy. + """ + def __init__(self, size_average=True, reduce=True): + super().__init__() + self.size_average = size_average + self.reduce = reduce + + def forward(self, pred, target, weight=None): + #_assert_no_grad(target) + if pred.min()<0: + # pred = (pred-pred.min())/(pred-pred.min()).max() + pred = F.relu(pred) + + return F.binary_cross_entropy(pred, target, weight) + +class WeightedCE(nn.Module): + """Mask weighted multi-class cross-entropy (CE) loss. + """ + def __init__(self): + super().__init__() + + def forward(self, pred, target, weight_mask=None): + # Different from, F.binary_cross_entropy, the "weight" parameter + # in F.cross_entropy is a manual rescaling weight given to each + # class. Therefore we need to multiply the weight mask after the + # loss calculation. + loss = F.cross_entropy(pred, target, reduction='none') + if weight_mask is not None: + loss = loss * weight_mask + return loss.mean() + +####################################################### +# 1. Regularization +####################################################### + +class BinaryReg(nn.Module): + """Regularization for encouraging the outputs to be binary. + """ + def __init__(self, alpha=0.1): + super().__init__() + self.alpha = alpha + + def forward(self, pred): + diff = pred - 0.5 + diff = torch.clamp(torch.abs(diff), min=1e-2) + loss = (1.0 / diff).mean() + return self.alpha * loss diff --git a/legacy/Train_and_Inference/model/Mnet.py b/legacy/Train_and_Inference/model/Mnet.py new file mode 100644 index 0000000..3c535eb --- /dev/null +++ b/legacy/Train_and_Inference/model/Mnet.py @@ -0,0 +1,310 @@ +from torch import nn +from torch import nn +import torch +import torch.nn.functional as F + + +class CNA3d(nn.Module): # conv + norm + activation + def __init__(self, in_channels, out_channels, kSize, stride, padding=(1, 1, 1), bias=True, norm_args=None, + activation_args=None): + super().__init__() + self.norm_args = norm_args + self.activation_args = activation_args + + self.conv = nn.Conv3d(in_channels, out_channels, kernel_size=kSize, stride=stride, padding=padding, bias=bias) + + if norm_args is not None: + self.norm = nn.InstanceNorm3d(out_channels, **norm_args) + + if activation_args is not None: + self.activation = nn.LeakyReLU(**activation_args) + + def forward(self, x): + x = self.conv(x) + + if self.norm_args is not None: + x = self.norm(x) + + if self.activation_args is not None: + x = self.activation(x) + return x + + +class CB3d(nn.Module): # conv block 3d + def __init__(self, in_channels, out_channels, kSize=(3, 3), stride=(1, 1), padding=(1, 1, 1), bias=True, + norm_args: tuple = (None, None), activation_args: tuple = (None, None)): + super().__init__() + + self.conv1 = CNA3d(in_channels, out_channels, kSize=kSize[0], stride=stride[0], + padding=padding, bias=bias, norm_args=norm_args[0], activation_args=activation_args[0]) + + self.conv2 = CNA3d(out_channels, out_channels, kSize=kSize[1], stride=stride[1], + padding=padding, bias=bias, norm_args=norm_args[1], activation_args=activation_args[1]) + + def forward(self, x): + x = self.conv1(x) + x = self.conv2(x) + return x + + +class BasicNet(nn.Module): + norm_kwargs = {'affine': True} + activation_kwargs = {'negative_slope': 1e-2, 'inplace': True} + + def __init__(self): + super(BasicNet, self).__init__() + + def parameter_count(self): + print("model have {} paramerters in total".format(sum(x.numel() for x in self.parameters()) / 1e6)) + + +def FMU(x1, x2, mode='sub'): + """ + feature merging unit + Args: + x1: + x2: + mode: type of fusion + Returns: + """ + if mode == 'sum': + return torch.add(x1, x2) + elif mode == 'sub': + return torch.abs(x1 - x2) + elif mode == 'cat': + return torch.cat((x1, x2), dim=1) + else: + raise Exception('Unexpected mode') + + +class Down(BasicNet): + def __init__(self, in_channels, out_channels, mode: tuple, FMU='sub', downsample=True, min_z=8): + """ + basic module at downsampling stage + Args: + in_channels: + out_channels: + mode: represent the streams coming in and out. e.g., ('2d', 'both'): one input stream (2d) and two output streams (2d and 3d) + FMU: determine the type of feature fusion if there are two input streams + downsample: determine whether to downsample input features (only the first module of MNet do not downsample) + min_z: if the size of z-axis < min_z, maxpooling won't be applied along z-axis + """ + super().__init__() + self.mode_in, self.mode_out = mode + self.downsample = downsample + self.FMU = FMU + self.min_z = min_z + norm_args = (self.norm_kwargs, self.norm_kwargs) + activation_args = (self.activation_kwargs, self.activation_kwargs) + + if self.mode_out == '2d' or self.mode_out == 'both': + self.CB2d = CB3d(in_channels=in_channels, out_channels=out_channels, + kSize=((1, 3, 3), (1, 3, 3)), stride=(1, 1), padding=(0, 1, 1), + norm_args=norm_args, activation_args=activation_args) + + if self.mode_out == '3d' or self.mode_out == 'both': + self.CB3d = CB3d(in_channels=in_channels, out_channels=out_channels, + kSize=(3, 3), stride=(1, 1), padding=(1, 1, 1), + norm_args=norm_args, activation_args=activation_args) + + def forward(self, x): + if self.downsample: + if self.mode_in == 'both': + x2d, x3d = x + p2d = F.max_pool3d(x2d, kernel_size=(1, 2, 2), stride=(1, 2, 2)) + if x3d.shape[2] >= self.min_z: + p3d = F.max_pool3d(x3d, kernel_size=(2, 2, 2), stride=(2, 2, 2)) + else: + p3d = F.max_pool3d(x3d, kernel_size=(1, 2, 2), stride=(1, 2, 2)) + + x = FMU(p2d, p3d, mode=self.FMU) + + elif self.mode_in == '2d': + x = F.max_pool3d(x, kernel_size=(1, 2, 2), stride=(1, 2, 2)) + + elif self.mode_in == '3d': + if x.shape[2] >= self.min_z: + x = F.max_pool3d(x, kernel_size=(2, 2, 2), stride=(2, 2, 2)) + else: + x = F.max_pool3d(x, kernel_size=(1, 2, 2), stride=(1, 2, 2)) + + if self.mode_out == '2d': + return self.CB2d(x) + elif self.mode_out == '3d': + return self.CB3d(x) + elif self.mode_out == 'both': + return self.CB2d(x), self.CB3d(x) + + +class Up(BasicNet): + def __init__(self, in_channels, out_channels, mode: tuple, FMU='sub'): + """ + basic module at upsampling stage + Args: + in_channels: + out_channels: + mode: represent the streams coming in and out. e.g., ('2d', 'both'): one input stream (2d) and two output streams (2d and 3d) + FMU: determine the type of feature fusion if there are two input streams + """ + super().__init__() + self.mode_in, self.mode_out = mode + self.FMU = FMU + norm_args = (self.norm_kwargs, self.norm_kwargs) + activation_args = (self.activation_kwargs, self.activation_kwargs) + + if self.mode_out == '2d' or self.mode_out == 'both': + self.CB2d = CB3d(in_channels=in_channels, out_channels=out_channels, + kSize=((1, 3, 3), (1, 3, 3)), stride=(1, 1), padding=(0, 1, 1), + norm_args=norm_args, activation_args=activation_args) + + if self.mode_out == '3d' or self.mode_out == 'both': + self.CB3d = CB3d(in_channels=in_channels, out_channels=out_channels, + kSize=(3, 3), stride=(1, 1), padding=(1, 1, 1), + norm_args=norm_args, activation_args=activation_args) + + def forward(self, x): + x2d, xskip2d, x3d, xskip3d = x + + tarSize = xskip2d.shape[2:] + up2d = F.interpolate(x2d, size=tarSize, mode='trilinear', align_corners=False) + up3d = F.interpolate(x3d, size=tarSize, mode='trilinear', align_corners=False) + + cat = torch.cat([FMU(xskip2d, xskip3d, self.FMU), FMU(up2d, up3d, self.FMU)], dim=1) + + if self.mode_out == '2d': + return self.CB2d(cat) + elif self.mode_out == '3d': + return self.CB3d(cat) + elif self.mode_out == 'both': + return self.CB2d(cat), self.CB3d(cat) + + +class MNet(BasicNet): + def __init__(self, in_channels, kn=(32, 48, 64, 80, 96), FMU='sub'): + """ + + Args: + in_channels: channels of input + num_classes: output classes + kn: the number of kernels + ds: deep supervision + FMU: type of feature merging unit + """ + super().__init__() + + channel_factor = {'sum': 1, 'sub': 1, 'cat': 2} + fct = channel_factor[FMU] + + self.down11 = Down(in_channels, kn[0], ('/', 'both'), downsample=False) + self.down12 = Down(kn[0], kn[1], ('2d', 'both')) + self.down13 = Down(kn[1], kn[2], ('2d', 'both')) + self.down14 = Down(kn[2], kn[3], ('2d', 'both')) + self.bottleneck1 = Down(kn[3], kn[4], ('2d', '2d')) + self.up11 = Up(fct * (kn[3] + kn[4]), kn[3], ('both', '2d'), FMU) + self.up12 = Up(fct * (kn[2] + kn[3]), kn[2], ('both', '2d'), FMU) + self.up13 = Up(fct * (kn[1] + kn[2]), kn[1], ('both', '2d'), FMU) + self.up14 = Up(fct * (kn[0] + kn[1]), kn[0], ('both', 'both'), FMU) + + self.up11_ = Up(fct * (kn[3] + kn[4]), kn[3], ('both', '2d'), FMU) + self.up12_ = Up(fct * (kn[2] + kn[3]), kn[2], ('both', '2d'), FMU) + self.up13_ = Up(fct * (kn[1] + kn[2]), kn[1], ('both', '2d'), FMU) + self.up14_ = Up(fct * (kn[0] + kn[1]), kn[0], ('both', 'both'), FMU) + + self.down21 = Down(kn[0], kn[1], ('3d', 'both')) + self.down22 = Down(fct * kn[1], kn[2], ('both', 'both'), FMU) + self.down23 = Down(fct * kn[2], kn[3], ('both', 'both'), FMU) + self.bottleneck2 = Down(fct * kn[3], kn[4], ('both', 'both'), FMU) + self.up21 = Up(fct * (kn[3] + kn[4]), kn[3], ('both', 'both'), FMU) + self.up22 = Up(fct * (kn[2] + kn[3]), kn[2], ('both', 'both'), FMU) + self.up23 = Up(fct * (kn[1] + kn[2]), kn[1], ('both', '3d'), FMU) + + self.up21_ = Up(fct * (kn[3] + kn[4]), kn[3], ('both', 'both'), FMU) + self.up22_ = Up(fct * (kn[2] + kn[3]), kn[2], ('both', 'both'), FMU) + self.up23_ = Up(fct * (kn[1] + kn[2]), kn[1], ('both', '3d'), FMU) + + self.down31 = Down(kn[1], kn[2], ('3d', 'both')) + self.down32 = Down(fct * kn[2], kn[3], ('both', 'both'), FMU) + self.bottleneck3 = Down(fct * kn[3], kn[4], ('both', 'both'), FMU) + self.up31 = Up(fct * (kn[3] + kn[4]), kn[3], ('both', 'both'), FMU) + self.up32 = Up(fct * (kn[2] + kn[3]), kn[2], ('both', '3d'), FMU) + + self.up31_ = Up(fct * (kn[3] + kn[4]), kn[3], ('both', 'both'), FMU) + self.up32_ = Up(fct * (kn[2] + kn[3]), kn[2], ('both', '3d'), FMU) + + self.down41 = Down(kn[2], kn[3], ('3d', 'both'), FMU) + self.bottleneck4 = Down(fct * kn[3], kn[4], ('both', 'both'), FMU) + self.up41 = Up(fct * (kn[3] + kn[4]), kn[3], ('both', '3d'), FMU) + + self.up41_ = Up(fct * (kn[3] + kn[4]), kn[3], ('both', '3d'), FMU) + + self.bottleneck5 = Down(kn[3], kn[4], ('3d', '3d')) + + self.outputs = nn.ModuleList( + [nn.Conv3d(c, 3, kernel_size=(1, 1, 1), stride=1, padding=0, bias=False) + for c in [kn[0], kn[1], kn[1], kn[2], kn[2], kn[3], kn[3]]] + ) + + self.outputs2 = nn.ModuleList( + [nn.Conv3d(c, 1, kernel_size=(1, 1, 1), stride=1, padding=0, bias=False) + for c in [kn[0], kn[1], kn[1], kn[2], kn[2], kn[3], kn[3]]] + ) + self.sigmoid = nn.Sigmoid() + + def forward(self, x): + down11 = self.down11(x) + down12 = self.down12(down11[0]) + down13 = self.down13(down12[0]) + down14 = self.down14(down13[0]) + bottleNeck1 = self.bottleneck1(down14[0]) + + down21 = self.down21(down11[1]) + down22 = self.down22([down21[0], down12[1]]) + down23 = self.down23([down22[0], down13[1]]) + bottleNeck2 = self.bottleneck2([down23[0], down14[1]]) + + down31 = self.down31(down21[1]) + down32 = self.down32([down31[0], down22[1]]) + bottleNeck3 = self.bottleneck3([down32[0], down23[1]]) + + down41 = self.down41(down31[1]) + bottleNeck4 = self.bottleneck4([down41[0], down32[1]]) + + bottleNeck5 = self.bottleneck5(down41[1]) + + up41 = self.up41([bottleNeck4[0], down41[0], bottleNeck5, down41[1]]) + + up31 = self.up31([bottleNeck3[0], down32[0], bottleNeck4[1], down32[1]]) + up32 = self.up32([up31[0], down31[0], up41, down31[1]]) + + up21 = self.up21([bottleNeck2[0], down23[0], bottleNeck3[1], down23[1]]) + up22 = self.up22([up21[0], down22[0], up31[1], down22[1]]) + up23 = self.up23([up22[0], down21[0], up32, down21[1]]) + + up11 = self.up11([bottleNeck1, down14[0], bottleNeck2[1], down14[1]]) + up12 = self.up12([up11, down13[0], up21[1], down13[1]]) + up13 = self.up13([up12, down12[0], up22[1], down12[1]]) + up14 = self.up14([up13, down11[0], up23, down11[1]]) + + up41_ = self.up41_([bottleNeck4[0], down41[0], bottleNeck5, down41[1]]) + + up31_ = self.up31_([bottleNeck3[0], down32[0], bottleNeck4[1], down32[1]]) + up32_ = self.up32_([up31_[0], down31[0], up41_, down31[1]]) + + up21_ = self.up21_([bottleNeck2[0], down23[0], bottleNeck3[1], down23[1]]) + up22_ = self.up22_([up21_[0], down22[0], up31_[1], down22[1]]) + up23_ = self.up23_([up22_[0], down21[0], up32_, down21[1]]) + + up11_ = self.up11_([bottleNeck1, down14[0], bottleNeck2[1], down14[1]]) + up12_ = self.up12_([up11_, down13[0], up21_[1], down13[1]]) + up13_ = self.up13_([up12_, down12[0], up22_[1], down12[1]]) + up14_ = self.up14_([up13_, down11[0], up23_, down11[1]]) + + return self.sigmoid(self.outputs[0](up14[0] + up14[1])), self.sigmoid(self.outputs2[0](up14_[0] + up14_[1])) + + +if __name__ == '__main__': + MNet = MNet(1, kn=(28, 36, 48, 64, 80), FMU='sub') + input = torch.randn((1, 1, 32, 96, 96)) + output = MNet(input) + + print([e.shape for e in output]) diff --git a/legacy/Train_and_Inference/supervised_provider.py b/legacy/Train_and_Inference/supervised_provider.py new file mode 100644 index 0000000..29884d8 --- /dev/null +++ b/legacy/Train_and_Inference/supervised_provider.py @@ -0,0 +1,380 @@ +from __future__ import absolute_import +from __future__ import print_function +from __future__ import division + + +import os +import sys +import random +import numpy as np +from torch.utils.data import Dataset +from torch.utils.data import DataLoader +from utils.augmentation import SimpleAugment as Filp +from utils.consistency_aug_perturbations import Intensity +from utils.consistency_aug_perturbations import GaussBlur +from utils.consistency_aug_perturbations import GaussNoise +from utils.consistency_aug_perturbations_sup import Cutout +from utils.augmentation import ElasticAugment as Elastic +import imageio +from utils.seg_util import mknhood3d +from utils.aff_util import seg_to_affgraph + + +class Train(Dataset): + def __init__(self, cfg): + super(Train, self).__init__() + self.cfg = cfg + self.model_type = cfg.MODEL.model_type + + # split training data + self.start_slice = cfg.DATA.start_slice + self.end_slice = cfg.DATA.end_slice + # augmentation + self.simple_aug = Filp() + self.min_noise_std = cfg.DATA.min_noise_std + self.max_noise_std = cfg.DATA.max_noise_std + self.min_kernel_size = cfg.DATA.min_kernel_size + self.max_kernel_size = cfg.DATA.max_kernel_size + self.min_sigma = cfg.DATA.min_sigma + self.max_sigma = cfg.DATA.max_sigma + self.perturbations_init() + self.crop_from_origin = [20, 128, 128] + + self.dataset = [] + self.labels = [] + dataset_list = ['J0126-sbem', 'Kasthuri-atum', 'Hemi-brain-fib', 'CREMI-sstem', 'AxonEM[M]-sstem', + 'AxonEM[H]-atum', 'Mira-adwt', 'Fib-25-fib', 'Mira-scn', 'Mira-fish'] + + for sub_path in dataset_list: + self.folder_name = os.path.join(cfg.DATA.data_folder, sub_path) + file_num = len(os.listdir(self.folder_name)) // 2 + train_datasets = ['%d.tif' % i for i in range(file_num)] + train_labels = ['%d_MaskIns.tif' % i for i in range(file_num)] + + for k in range(len(train_datasets)): + print('load ' + self.folder_name + train_datasets[k] + ' ...') + data = imageio.volread(os.path.join(self.folder_name, train_datasets[k])) + self.dataset.append(data[:]) + label = imageio.volread(os.path.join(self.folder_name, train_labels[k])) + self.labels.append(label[:]) + + print(len(self.dataset)) + + def __getitem__(self, index): + + # dataset-balanced sampling + type_dataset = random.randint(0, 9) + if type_dataset == 0: + k = random.randint(0, 32) # j0126 + elif type_dataset == 1: + k = random.randint(33, 34) # kstr + elif type_dataset == 2: + k = random.randint(35, 40) # hemibrain + elif type_dataset == 3: + k = random.randint(41, 43) # cremi + elif type_dataset == 4: + k = random.randint(44, 52) # axon + elif type_dataset == 5: + k = random.randint(53, 61) # axon + elif type_dataset == 6: + k = random.randint(62, 64) # adwt + elif type_dataset == 7: + k = random.randint(65, 66) # fib25 + elif type_dataset == 8: + k = random.randint(67, 71) # scn + elif type_dataset == 9: + k = random.randint(72, 75) # fish + + # multi-z-ratio aug. + if type_dataset == 2 or type_dataset == 7: + z_scale_ratio = random.randint(1, 3) + used_data = self.dataset[k][::z_scale_ratio, :, :] + used_label = self.labels[k][::z_scale_ratio, :, :] + elif type_dataset == 0: + z_scale_ratio = random.randint(1, 2) + used_data = self.dataset[k][::z_scale_ratio, :, :] + used_label = self.labels[k][::z_scale_ratio, :, :] + else: + used_data = self.dataset[k] + used_label = self.labels[k] + + raw_data_shape = used_data.shape + + random_z = random.randint(0, raw_data_shape[0] - self.crop_from_origin[0]) + random_y = random.randint(0, raw_data_shape[1] - self.crop_from_origin[1]) + random_x = random.randint(0, raw_data_shape[2] - self.crop_from_origin[2]) + + imgs1 = used_data[random_z:random_z + self.crop_from_origin[0], \ + random_y:random_y + self.crop_from_origin[1], \ + random_x:random_x + self.crop_from_origin[2]].copy() + lb1 = used_label[random_z:random_z + self.crop_from_origin[0], \ + random_y:random_y + self.crop_from_origin[1], \ + random_x:random_x + self.crop_from_origin[2]].copy() + + imgs1 = imgs1.astype(np.float32) / 255.0 + + # style-mixing + if random.random() < self.cfg.TRAIN.freq_mix_prob: + type_dataset_r = random.choice(list(range(0, type_dataset)) + list(range(type_dataset + 1, 9))) + if type_dataset_r == 0: + r = random.randint(0, 32) # j0126 + elif type_dataset_r == 1: + r = random.randint(33, 34) # kstr + elif type_dataset_r == 2: + r = random.randint(35, 40) # hemibrain + elif type_dataset_r == 3: + r = random.randint(41, 43) # cremi + elif type_dataset_r == 4: + r = random.randint(44, 52) # axon + elif type_dataset_r == 5: + r = random.randint(53, 61) # axon + elif type_dataset_r == 6: + r = random.randint(62, 64) # adwt + elif type_dataset_r == 7: + r = random.randint(65, 66) # fib25 + elif type_dataset_r == 8: + r = random.randint(67, 71) # scn + elif type_dataset_r == 9: + r = random.randint(72, 75) # fish + + used_data_r = self.dataset[r] + raw_data_shape_r = used_data_r.shape + random_z = random.randint(0, raw_data_shape_r[0] - self.crop_from_origin[0]) + random_y = random.randint(0, raw_data_shape_r[1] - self.crop_from_origin[1]) + random_x = random.randint(0, raw_data_shape_r[2] - self.crop_from_origin[2]) + + imgs2 = used_data_r[random_z:random_z + self.crop_from_origin[0], \ + random_y:random_y + self.crop_from_origin[1], \ + random_x:random_x + self.crop_from_origin[2]].copy() + imgs2 = imgs2.astype(np.float32) / 255.0 + imgs1 = FDA_source_to_target_np_3D(imgs1, imgs2, 0.001) + + imgs1[imgs1 < 0] = 0 + imgs1[imgs1 > 1] = 1 + + # normal augumentation + [imgs1, lb1] = self.simple_aug([imgs1, lb1]) + imgs1, lb1 = self.apply_perturbations(imgs1, lb1) + + lb_affs1 = seg_to_affgraph(lb1, mknhood3d(1), pad='replicate').astype(np.float32) + bounds1 = np.float32(lb1 != 0) + + type_dataset_r2, r2 = -1, -1 + if random.random() < self.cfg.TRAIN.spa_mix_prob: + if random.random() < 0.5: + type_dataset_r2 = random.choice((list(range(0, type_dataset)) + list(range(type_dataset + 1, 9)))) + if type_dataset_r2 == 0: + r2 = random.randint(0, 32) # j0126 + elif type_dataset_r2 == 1: + r2 = random.randint(33, 34) # kstr + elif type_dataset_r2 == 2: + r2 = random.randint(35, 40) # hemibrain + elif type_dataset_r2 == 3: + r2 = random.randint(41, 43) # cremi + elif type_dataset_r2 == 4: + r2 = random.randint(44, 52) # axon + elif type_dataset_r2 == 5: + r2 = random.randint(53, 61) # axon + elif type_dataset_r2 == 6: + r2 = random.randint(62, 64) # adwt + elif type_dataset_r2 == 7: + r2 = random.randint(65, 66) # fib25 + elif type_dataset_r2 == 8: + r2 = random.randint(67, 71) # scn + elif type_dataset_r2 == 9: + r2 = random.randint(72, 75) # fish + + used_data = self.dataset[r2] + used_label = self.labels[r2] + raw_data_shape = used_data.shape + + random_z = random.randint(0, raw_data_shape[0] - self.crop_from_origin[0]) + random_y = random.randint(0, raw_data_shape[1] - self.crop_from_origin[1]) + random_x = random.randint(0, raw_data_shape[2] - self.crop_from_origin[2]) + imgs2 = used_data[random_z:random_z + self.crop_from_origin[0], \ + random_y:random_y + self.crop_from_origin[1], \ + random_x:random_x + self.crop_from_origin[2]].copy() + lb2 = used_label[random_z:random_z + self.crop_from_origin[0], \ + random_y:random_y + self.crop_from_origin[1], \ + random_x:random_x + self.crop_from_origin[2]].copy() + imgs2 = imgs2.astype(np.float32) / 255.0 + [imgs2, lb2] = self.simple_aug([imgs2, lb2]) + imgs2, lb2 = self.apply_perturbations(imgs2, lb2) + + lb_affs2 = seg_to_affgraph(lb2, mknhood3d(1), pad='replicate').astype(np.float32) + bounds2 = np.float32(lb2 != 0) + + random_y_mask = random.randint(0, 58) + random_x_mask = random.randint(0, 58) + mask = np.ones(self.crop_from_origin) + mask[:, random_y_mask:random_y_mask + 70, random_x_mask:random_x_mask + 70] = 0 + + imgs = mask * imgs1 + (1 - mask) * imgs2 + lb_affs = np.array([mask, mask, mask]) * lb_affs1 + (1 - np.array([mask, mask, mask])) * lb_affs2 + lb = mask * lb1 + (1 - mask) * lb2 + bounds = mask * bounds1 + (1 - mask) * bounds2 + + else: + imgs = imgs1 + lb_affs = lb_affs1 + lb = lb1 + bounds = bounds1 + + # area mask + if True: + if type_dataset == 10 or type_dataset == 0 or type_dataset == 8 or type_dataset_r2 == 0 or type_dataset_r2 == 8: + bmask = 1 - np.uint(lb == 10000) + elif (type_dataset == 1 and k == 33) or (type_dataset_r2 == 1 and r2 == 33): + bmask = 1 - (np.uint(lb == 121) + np.uint(lb == 122)) + else: + bmask = np.ones_like(lb) + else: + bmask = np.ones_like(lb) + + # extend dimension + imgs = imgs[np.newaxis, ...] + imgs = np.ascontiguousarray(imgs, dtype=np.float32) + + lb_affs = np.ascontiguousarray(lb_affs, dtype=np.float32) + + bounds = bounds[np.newaxis, ...] + bounds = np.ascontiguousarray(bounds, dtype=np.float32) + + bmask = bmask[np.newaxis, ...] + bmask = np.ascontiguousarray(bmask, dtype=np.float32) + + return imgs, lb_affs, bounds, bmask + + def perturbations_init(self): + self.per_intensity = Intensity() + self.per_gaussnoise = GaussNoise(min_std=self.min_noise_std, max_std=self.max_noise_std, norm_mode='trunc') + self.per_gaussblur = GaussBlur(min_kernel=self.min_kernel_size, max_kernel=self.max_kernel_size, + min_sigma=self.min_sigma, max_sigma=self.max_sigma) + self.per_cutout = Cutout(model_type=self.model_type) + self.per_misalign = Elastic(control_point_spacing=[4, 40, 40], jitter_sigma=[0, 0, 0], prob_slip=0.2, + prob_shift=0.2, max_misalign=17, padding=20) + self.per_elastic = Elastic(control_point_spacing=[4, 40, 40], jitter_sigma=[0, 2, 2], padding=20) + + def apply_perturbations(self, data, mask): + if random.random() < 0.25: + data = self.per_intensity(data) + if random.random() < 0.25: + data = self.per_gaussnoise(data) + if random.random() < 0.25: + data = self.per_gaussblur(data) + if random.random() < 0.25: + data = self.per_cutout(data) + if random.random() < 0.25: + data, mask = self.per_elastic(data, mask) + + return data, mask + + def __len__(self): + return int(sys.maxsize) + + +class Provider(object): + def __init__(self, stage, cfg): + self.stage = stage + if self.stage == 'train': + self.data = Train(cfg) + self.batch_size = cfg.TRAIN.batch_size + self.num_workers = cfg.TRAIN.num_workers + elif self.stage == 'valid': + pass + else: + raise AttributeError('Stage must be train/valid') + self.is_cuda = cfg.TRAIN.if_cuda + self.data_iter = None + self.iteration = 0 + self.epoch = 1 + + def __len__(self): + return self.data.num_per_epoch + + def build(self): + if self.stage == 'train': + self.data_iter = iter( + DataLoader(dataset=self.data, batch_size=self.batch_size, num_workers=self.num_workers, + shuffle=False, drop_last=False, pin_memory=True)) + else: + self.data_iter = iter(DataLoader(dataset=self.data, batch_size=1, num_workers=0, + shuffle=False, drop_last=False, pin_memory=True)) + + def next(self): + if self.data_iter is None: + self.build() + try: + batch = next(self.data_iter) + self.iteration += 1 + if self.is_cuda: + batch[0] = batch[0].cuda() + batch[1] = batch[1].cuda() + batch[2] = batch[2].cuda() + batch[3] = batch[3].cuda() + return batch + except StopIteration: + self.epoch += 1 + self.build() + self.iteration += 1 + batch = next(self.data_iter) + if self.is_cuda: + batch[0] = batch[0].cuda() + batch[1] = batch[1].cuda() + batch[2] = batch[2].cuda() + batch[3] = batch[3].cuda() + return batch + + +def FDA_source_to_target_np(src_img, trg_img, L=0.1): + # exchange magnitude + # input: src_img, trg_img + + src_img_np = src_img # .cpu().numpy() + trg_img_np = trg_img # .cpu().numpy() + + # get fft of both source and target + fft_src_np = np.fft.fft2(src_img_np, axes=(-2, -1)) + fft_trg_np = np.fft.fft2(trg_img_np, axes=(-2, -1)) + + # extract amplitude and phase of both ffts + amp_src, pha_src = np.abs(fft_src_np), np.angle(fft_src_np) + amp_trg, pha_trg = np.abs(fft_trg_np), np.angle(fft_trg_np) + + # mutate the amplitude part of source with target + amp_src_ = low_freq_mutate_np(amp_src, amp_trg, L=L) + + # mutated fft of source + fft_src_ = amp_src_ * np.exp(1j * pha_src) + + # get the mutated image + src_in_trg = np.fft.ifft2(fft_src_, axes=(-2, -1)) + src_in_trg = np.real(src_in_trg) + + return src_in_trg + + +def low_freq_mutate_np(amp_src, amp_trg, L=0.1): + a_src = np.fft.fftshift(amp_src, axes=(-2, -1)) + a_trg = np.fft.fftshift(amp_trg, axes=(-2, -1)) + + h, w = a_src.shape + b = (np.floor(np.amin((h, w)) * L)).astype(int) + c_h = np.floor(h / 2.0).astype(int) + c_w = np.floor(w / 2.0).astype(int) + + h1 = c_h - b + h2 = c_h + b + 1 + w1 = c_w - b + w2 = c_w + b + 1 + + a_src[h1:h2, w1:w2] = a_trg[h1:h2, w1:w2] + a_src = np.fft.ifftshift(a_src, axes=(-2, -1)) + return a_src + + +def FDA_source_to_target_np_3D(src_img, trg_img, L=0.01): + scr_out = [] + for i in range(src_img.shape[0]): + scr_out.append(FDA_source_to_target_np(src_img[i], trg_img[i], L)) + return np.array(scr_out) diff --git a/legacy/Train_and_Inference/supervised_train.py b/legacy/Train_and_Inference/supervised_train.py new file mode 100644 index 0000000..a486917 --- /dev/null +++ b/legacy/Train_and_Inference/supervised_train.py @@ -0,0 +1,266 @@ +from __future__ import absolute_import +from __future__ import print_function +from __future__ import division + +import os + +os.environ['CUDA_VISIBLE_DEVICES'] = "0, 1" + +import sys +import yaml +import time +import logging +import argparse +import numpy as np +from attrdict import AttrDict +from tensorboardX import SummaryWriter +from collections import OrderedDict +import torch +import torch.nn as nn +from supervised_provider import Provider +from utils.show import show_affs +from model.Mnet import MNet +from utils.utils import setup_seed +from loss.loss import WeightedBCE, WeightedMSE + + +def init_project(cfg): + def init_logging(path): + logging.basicConfig( + level=logging.INFO, + format='%(message)s', + datefmt='%m-%d %H:%M', + filename=path, + filemode='w') + console = logging.StreamHandler() + console.setLevel(logging.INFO) + formatter = logging.Formatter('%(message)s') + console.setFormatter(formatter) + logging.getLogger('').addHandler(console) + + setup_seed(cfg.TRAIN.random_seed) + if cfg.TRAIN.if_cuda: + if torch.cuda.is_available() is False: + raise AttributeError('No GPU available') + + prefix = cfg.time + if cfg.TRAIN.resume: + model_name = cfg.TRAIN.model_name + else: + model_name = prefix + '_' + cfg.NAME + cfg.cache_path = os.path.join(cfg.TRAIN.cache_path, model_name) + cfg.save_path = os.path.join(cfg.TRAIN.save_path, model_name) + cfg.record_path = os.path.join(cfg.save_path, model_name) + cfg.valid_path = os.path.join(cfg.save_path, 'valid') + if cfg.TRAIN.resume is False: + if not os.path.exists(cfg.cache_path): + os.makedirs(cfg.cache_path) + if not os.path.exists(cfg.save_path): + os.makedirs(cfg.save_path) + if not os.path.exists(cfg.record_path): + os.makedirs(cfg.record_path) + if not os.path.exists(cfg.valid_path): + os.makedirs(cfg.valid_path) + init_logging(os.path.join(cfg.record_path, prefix + '.log')) + logging.info(cfg) + writer = SummaryWriter(cfg.record_path) + writer.add_text('cfg', str(cfg)) + return writer + + +def load_dataset(cfg): + print('Caching datasets ... ', flush=True) + t1 = time.time() + train_provider = Provider('train', cfg) + print('Done (time: %.2fs)' % (time.time() - t1)) + return train_provider, valid_provider + + +def build_model(cfg, writer): + print('Building model on ', end='', flush=True) + t1 = time.time() + device = torch.device('cuda:0') + + print('load mnet!') + + model = MNet(1, kn=(32, 64, 96, 128, 256), FMU='sub').cuda() + + if cfg.MODEL.pre_train: + ckpt_path = cfg.MODEL.pretrain_path + print('Load pre-trained model from' + ckpt_path) + checkpoint = torch.load(ckpt_path) + pretrained_dict = OrderedDict() + state_dict = checkpoint['model_weights'] + for k, v in state_dict.items(): + name = k.replace('module.', '') if 'module' in k else k + pretrained_dict[name] = v + + model_dict = model.state_dict() + + pretrained_dict = {k: v for k, v in pretrained_dict.items() if + (k in model_dict) and ('up' not in k) and ( + 'outputs' not in k)} # 1. filter out unnecessary keys + print(pretrained_dict) + model_dict.update(pretrained_dict) # 2. overwrite entries in the existing state dict + model.load_state_dict(model_dict) + + if cfg.MODEL.continue_train: + ckpt_path = cfg.MODEL.continue_path + print('Load pre-trained model from' + ckpt_path) + checkpoint = torch.load(ckpt_path) + new_state_dict = OrderedDict() + state_dict = checkpoint['model_weights'] + for k, v in state_dict.items(): + name = k.replace('module.', '') if 'module' in k else k + new_state_dict[name] = v + + model.load_state_dict(new_state_dict) + model = model.to(device) + + cuda_count = torch.cuda.device_count() + if cuda_count > 1: + if cfg.TRAIN.batch_size % cuda_count == 0: + print('%d GPUs ... ' % cuda_count, end='', flush=True) + model = nn.DataParallel(model) + else: + raise AttributeError( + 'Batch size (%d) cannot be equally divided by GPU number (%d)' % (cfg.TRAIN.batch_size, cuda_count)) + else: + print('a single GPU ... ', end='', flush=True) + print('Done (time: %.2fs)' % (time.time() - t1)) + return model + + +def calculate_lr(iters): + if iters < cfg.TRAIN.warmup_iters: + current_lr = (cfg.TRAIN.base_lr - cfg.TRAIN.end_lr) * pow(float(iters) / cfg.TRAIN.warmup_iters, + cfg.TRAIN.power) + cfg.TRAIN.end_lr + else: + if iters < cfg.TRAIN.decay_iters: + current_lr = (cfg.TRAIN.base_lr - cfg.TRAIN.end_lr) * pow( + 1 - float(iters - cfg.TRAIN.warmup_iters) / cfg.TRAIN.decay_iters, cfg.TRAIN.power) + cfg.TRAIN.end_lr + else: + current_lr = cfg.TRAIN.end_lr + return current_lr + + +def loop(cfg, train_provider, model, optimizer, iters, writer): + f_loss_txt = open(os.path.join(cfg.record_path, 'loss.txt'), 'a') + rcd_time = [] + sum_time = 0 + sum_loss = 0 + sum_labeled_loss = 0 + + if cfg.TRAIN.loss_func == 'MSELoss': + criterion = WeightedMSE() + elif cfg.TRAIN.loss_func == 'BCELoss': + criterion = WeightedBCE() + else: + raise AttributeError("NO this criterion") + + while iters <= cfg.TRAIN.total_iters: + # train + model.train() + iters += 1 + t1 = time.time() + inputs, target, bound, bmask = train_provider.next() + + # decay learning rate + if cfg.TRAIN.end_lr == cfg.TRAIN.base_lr: + current_lr = cfg.TRAIN.base_lr + else: + current_lr = calculate_lr(iters) + for param_group in optimizer.param_groups: + param_group['lr'] = current_lr + + optimizer.zero_grad() + pred, pred_b = model(inputs) + + ############################## + loss1 = criterion(pred, target, weight=bmask) + loss2 = criterion(pred_b, bound, weight=bmask) + loss = loss1 + loss2 + loss.backward() + ############################## + + if cfg.TRAIN.weight_decay is not None: + for group in optimizer.param_groups: + for param in group['params']: + param.data = param.data.add(-cfg.TRAIN.weight_decay * group['lr'], param.data) + optimizer.step() + + sum_loss += loss.item() + sum_time += time.time() - t1 + + # log train + if iters % cfg.TRAIN.display_freq == 0 or iters == 1: + rcd_time.append(sum_time) + if iters == 1: + logging.info( + 'step %d, loss = %.6f, labeled_loss=%.6f (wt: *1, lr: %.8f, et: %.2f sec, rd: %.2f min)' + % (iters, sum_loss, sum_labeled_loss, current_lr, sum_time, + (cfg.TRAIN.total_iters - iters) / cfg.TRAIN.display_freq * np.mean(np.asarray(rcd_time)) / 60)) + writer.add_scalar('loss', sum_loss * 1, iters) + else: + logging.info( + 'step %d, loss = %.6f, labeled_loss=%.6f (wt: *1, lr: %.8f, et: %.2f sec, rd: %.2f min)' \ + % (iters, sum_loss / cfg.TRAIN.display_freq * 1, \ + sum_labeled_loss / cfg.TRAIN.display_freq * 1, \ + current_lr, sum_time, \ + (cfg.TRAIN.total_iters - iters) / cfg.TRAIN.display_freq * np.mean(np.asarray(rcd_time)) / 60)) + writer.add_scalar('loss', sum_loss / cfg.TRAIN.display_freq * 1, iters) + f_loss_txt.write('step = %d, loss = %.6f, labeled_loss=%.6f' \ + % (iters, sum_loss / cfg.TRAIN.display_freq * 1, \ + sum_labeled_loss / cfg.TRAIN.display_freq * 1)) + f_loss_txt.write('\n') + f_loss_txt.flush() + sys.stdout.flush() + sum_time = 0 + sum_loss = 0 + + # display + if iters % cfg.TRAIN.valid_freq == 0 or iters == 1: + show_affs(iters, inputs, pred, target, cfg.cache_path, model_type=cfg.MODEL.model_type) + + # save + if iters % cfg.TRAIN.save_freq == 0 and iters >= 0: + states = {'current_iter': iters, 'valid_result': None, + 'model_weights': model.state_dict()} + torch.save(states, os.path.join(cfg.save_path, 'model-%06d.ckpt' % iters)) + print('***************save modol, iters = %d.***************' % (iters), flush=True) + + f_loss_txt.close() + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument('-c', '--cfg', type=str, default='SegNeuron', help='path to config file') + parser.add_argument('-m', '--mode', type=str, default='train', help='path to config file') + args = parser.parse_args() + + cfg_file = args.cfg + '.yaml' + print('cfg_file: ' + cfg_file) + print('mode: ' + args.mode) + + with open('./config/' + cfg_file, 'r') as f: + cfg = AttrDict(yaml.safe_load(f)) + + timeArray = time.localtime() + time_stamp = time.strftime('%Y-%m-%d--%H-%M-%S', timeArray) + print('time stamp:', time_stamp) + + cfg.path = cfg_file + cfg.time = time_stamp + + if args.mode == 'train': + writer = init_project(cfg) + train_provider, valid_provider = load_dataset(cfg) + model = build_model(cfg, writer) + optimizer = torch.optim.Adam(model.parameters(), lr=cfg.TRAIN.base_lr, betas=(0.9, 0.999), + eps=0.01, weight_decay=1e-6, amsgrad=True) + init_iters = 0 + loop(cfg, train_provider, valid_provider, model, optimizer, init_iters, writer) + writer.close() + else: + pass + print('***Done***') diff --git a/legacy/Train_and_Inference/utils/aff_util.py b/legacy/Train_and_Inference/utils/aff_util.py new file mode 100644 index 0000000..322251a --- /dev/null +++ b/legacy/Train_and_Inference/utils/aff_util.py @@ -0,0 +1,139 @@ +import numpy as np +#from em_segLib.seg_util import check_volume +# from scipy.misc import comb +from scipy.special import comb +import scipy.sparse + + +def affinitize(img, ret=None, dst=(1,1,1), dtype='float32'): + # PNI code + """ + Transform segmentation to an affinity map. + Args: + img: 3D indexed image, with each index corresponding to each segment. + Returns: + ret: an affinity map (4D tensor). + """ + img = check_volume(img) + if ret is None: + ret = np.zeros(img.shape, dtype=dtype) + + # Sanity check. + (dz,dy,dx) = dst + assert abs(dx) < img.shape[-1] + assert abs(dy) < img.shape[-2] + assert abs(dz) < img.shape[-3] + + # Slices. + s0 = list() + s1 = list() + s2 = list() + for i in range(3): + if dst[i] == 0: + s0.append(slice(None)) + s1.append(slice(None)) + s2.append(slice(None)) + elif dst[i] > 0: + s0.append(slice(dst[i], None)) + s1.append(slice(dst[i], None)) + s2.append(slice(None, -dst[i])) + else: + s0.append(slice(None, dst[i])) + s1.append(slice(-dst[i], None)) + s2.append(slice(None, dst[i])) + + ret[s0] = (img[s1]==img[s2]) & (img[s1]>0) + return ret[np.newaxis,...] + +def bmap_to_affgraph(bmap,nhood,return_min_idx=False): + # constructs an affinity graph from a boundary map + # assume affinity graph is represented as: + # shape = (e, z, y, x) + # nhood.shape = (edges, 3) + shape = bmap.shape + nEdge = nhood.shape[0] + aff = np.zeros((nEdge,)+shape,dtype=np.int32) + minidx = np.zeros((nEdge,)+shape,dtype=np.int32) + + for e in range(nEdge): + aff[e, \ + max(0,-nhood[e,0]):min(shape[0],shape[0]-nhood[e,0]), \ + max(0,-nhood[e,1]):min(shape[1],shape[1]-nhood[e,1]), \ + max(0,-nhood[e,2]):min(shape[2],shape[2]-nhood[e,2])] = np.minimum( \ + bmap[max(0,-nhood[e,0]):min(shape[0],shape[0]-nhood[e,0]), \ + max(0,-nhood[e,1]):min(shape[1],shape[1]-nhood[e,1]), \ + max(0,-nhood[e,2]):min(shape[2],shape[2]-nhood[e,2])], \ + bmap[max(0,nhood[e,0]):min(shape[0],shape[0]+nhood[e,0]), \ + max(0,nhood[e,1]):min(shape[1],shape[1]+nhood[e,1]), \ + max(0,nhood[e,2]):min(shape[2],shape[2]+nhood[e,2])] ) + minidx[e, \ + max(0,-nhood[e,0]):min(shape[0],shape[0]-nhood[e,0]), \ + max(0,-nhood[e,1]):min(shape[1],shape[1]-nhood[e,1]), \ + max(0,-nhood[e,2]):min(shape[2],shape[2]-nhood[e,2])] = \ + bmap[max(0,-nhood[e,0]):min(shape[0],shape[0]-nhood[e,0]), \ + max(0,-nhood[e,1]):min(shape[1],shape[1]-nhood[e,1]), \ + max(0,-nhood[e,2]):min(shape[2],shape[2]-nhood[e,2])] > \ + bmap[max(0,nhood[e,0]):min(shape[0],shape[0]+nhood[e,0]), \ + max(0,nhood[e,1]):min(shape[1],shape[1]+nhood[e,1]), \ + max(0,nhood[e,2]):min(shape[2],shape[2]+nhood[e,2])] + return aff + +def seg_to_affgraph(seg,nhood,pad=''): + # constructs an affinity graph from a segmentation + # assume affinity graph is represented as: + # shape = (e, z, y, x) + # nhood.shape = (edges, 3) + shape = seg.shape + nEdge = nhood.shape[0] + aff = np.zeros((nEdge,)+shape,dtype=np.int32) + + for e in range(nEdge): + aff[e, \ + max(0,-nhood[e,0]):min(shape[0],shape[0]-nhood[e,0]), \ + max(0,-nhood[e,1]):min(shape[1],shape[1]-nhood[e,1]), \ + max(0,-nhood[e,2]):min(shape[2],shape[2]-nhood[e,2])] = \ + (seg[max(0,-nhood[e,0]):min(shape[0],shape[0]-nhood[e,0]), \ + max(0,-nhood[e,1]):min(shape[1],shape[1]-nhood[e,1]), \ + max(0,-nhood[e,2]):min(shape[2],shape[2]-nhood[e,2])] == \ + seg[max(0,nhood[e,0]):min(shape[0],shape[0]+nhood[e,0]), \ + max(0,nhood[e,1]):min(shape[1],shape[1]+nhood[e,1]), \ + max(0,nhood[e,2]):min(shape[2],shape[2]+nhood[e,2])] ) \ + * ( seg[max(0,-nhood[e,0]):min(shape[0],shape[0]-nhood[e,0]), \ + max(0,-nhood[e,1]):min(shape[1],shape[1]-nhood[e,1]), \ + max(0,-nhood[e,2]):min(shape[2],shape[2]-nhood[e,2])] > 0 ) \ + * ( seg[max(0,nhood[e,0]):min(shape[0],shape[0]+nhood[e,0]), \ + max(0,nhood[e,1]):min(shape[1],shape[1]+nhood[e,1]), \ + max(0,nhood[e,2]):min(shape[2],shape[2]+nhood[e,2])] > 0 ) + if nEdge==3 and pad == 'replicate': # pad the boundary affinity + aff[0,0] = (seg[0]>0).astype(aff.dtype) + aff[1,:,0] = (seg[:,0]>0).astype(aff.dtype) + aff[2,:,:,0] = (seg[:,:,0]>0).astype(aff.dtype) + + return aff + +def affgraph_to_edgelist(aff,nhood): + node1,node2 = nodelist_like(aff.shape[1:],nhood) + return (node1.ravel(),node2.ravel(),aff.ravel()) + +def nodelist_like(shape,nhood): + # constructs the node lists corresponding to the edge list representation of an affinity graph + # assume node shape is represented as: + # shape = (z, y, x) + # nhood.shape = (edges, 3) + nEdge = nhood.shape[0] + nodes = np.arange(np.prod(shape),dtype=np.uint64).reshape(shape) + node1 = np.tile(nodes,(nEdge,1,1,1)) + node2 = np.full(node1.shape,-1,dtype=np.uint64) + + for e in range(nEdge): + node2[e, \ + max(0,-nhood[e,0]):min(shape[0],shape[0]-nhood[e,0]), \ + max(0,-nhood[e,1]):min(shape[1],shape[1]-nhood[e,1]), \ + max(0,-nhood[e,2]):min(shape[2],shape[2]-nhood[e,2])] = \ + nodes[max(0,nhood[e,0]):min(shape[0],shape[0]+nhood[e,0]), \ + max(0,nhood[e,1]):min(shape[1],shape[1]+nhood[e,1]), \ + max(0,nhood[e,2]):min(shape[2],shape[2]+nhood[e,2])] + + return (node1, node2) + + diff --git a/legacy/Train_and_Inference/utils/affine.py b/legacy/Train_and_Inference/utils/affine.py new file mode 100644 index 0000000..4e63b8c --- /dev/null +++ b/legacy/Train_and_Inference/utils/affine.py @@ -0,0 +1,288 @@ +import numpy as np + +def identity_xf(N): + """ + Construct N identity 2x3 transformation matrices + :return: array of shape (N, 2, 3) + """ + # Taken from https://github.com/Britefury/pytorch-mask-rcnn/blob/refactor/maskrcnn/utils/affine_transforms.py + xf = np.zeros((N, 2, 3), dtype=np.float32) + xf[:, 0, 0] = xf[:, 1, 1] = 1.0 + return xf + + +def inv_nx2x2(X): + """ + Invert the N 2x2 transformation matrices stored in X; a (N,2,2) array + :param X: transformation matrices to invert, (N,2,2) array + :return: inverse of X + """ + # Taken from https://github.com/Britefury/pytorch-mask-rcnn/blob/refactor/maskrcnn/utils/affine_transforms.py + rdet = 1.0 / (X[:, 0, 0] * X[:, 1, 1] - X[:, 1, 0] * X[:, 0, 1]) + y = np.zeros_like(X) + y[:, 0, 0] = X[:, 1, 1] * rdet + y[:, 1, 1] = X[:, 0, 0] * rdet + y[:, 0, 1] = -X[:, 0, 1] * rdet + y[:, 1, 0] = -X[:, 1, 0] * rdet + return y + +def inv_nx2x3(m): + """ + Invert the N 2x3 transformation matrices stored in X; a (N,2,3) array + :param X: transformation matrices to invert, (N,2,3) array + :return: inverse of X + """ + # Taken from https://github.com/Britefury/pytorch-mask-rcnn/blob/refactor/maskrcnn/utils/affine_transforms.py + m2 = m[:, :, :2] + mx = m[:, :, 2:3] + m2inv = inv_nx2x2(m2) + mxinv = np.matmul(m2inv, -mx) + return np.append(m2inv, mxinv, axis=2) + +def cat_nx2x3_2(a, b): + """ + Multiply the N 2x3 transformations stored in `a` with those in `b` + :param a: transformation matrices, (N,2,3) array + :param b: transformation matrices, (N,2,3) array + :return: `a . b` + """ + # Taken from https://github.com/Britefury/pytorch-mask-rcnn/blob/refactor/maskrcnn/utils/affine_transforms.py + a2 = a[:, :, :2] + b2 = b[:, :, :2] + + ax = a[:, :, 2:3] + bx = b[:, :, 2:3] + + ab2 = np.matmul(a2, b2) + abx = ax + np.matmul(a2, bx) + return np.append(ab2, abx, axis=2) + +def cat_nx2x3(*x): + """ + Multiply the N 2x3 transformations stored in the arrays in `x` + :param x: transformation matrices, tuple of (N,2,3) arrays + :return: `x[0] . x[1] . ... . x[N-1]` + """ + # Taken from https://github.com/Britefury/pytorch-mask-rcnn/blob/refactor/maskrcnn/utils/affine_transforms.py + y = x[0] + for i in range(1, len(x)): + y = cat_nx2x3_2(y, x[i]) + return y + +def translation_matrices(xlats_xy): + """ + Generate translation matrices + :param xlats_xy: translations as an (N, 2) array (x,y) + :return: translations matrices, (N,2,3) array + """ + # Taken from https://github.com/Britefury/pytorch-mask-rcnn/blob/refactor/maskrcnn/utils/affine_transforms.py + N = len(xlats_xy) + xf = np.zeros((N, 2, 3), dtype=np.float32) + xf[:, 0, 0] = xf[:, 1, 1] = 1.0 + xf[:, :, 2] = xlats_xy + return xf + +def scale_matrices(scale_xy): + """ + Generate translation matrices + :param scale_xy: scale factors as an (N, 2) array (x,y) + :return: translations matrices, (N,2,3) array + """ + # Taken from https://github.com/Britefury/pytorch-mask-rcnn/blob/refactor/maskrcnn/utils/affine_transforms.py + N = len(scale_xy) + xf = np.zeros((N, 2, 3), dtype=np.float32) + xf[:, 0, 0] = scale_xy[:, 0] + xf[:, 1, 1] = scale_xy[:, 1] + return xf + +def rotation_matrices(thetas): + """ + Generate rotation matrices + + Counter-clockwise, +y points downwards + + Where s = sin(theta) and c = cos(theta) + + M = [[ c s 0 ] + [ -s c 0 ]] + + :param thetas: rotation angles in radians as a (N,) array + :return: rotation matrices, (N,2,3) array + """ + # Taken from https://github.com/Britefury/pytorch-mask-rcnn/blob/refactor/maskrcnn/utils/affine_transforms.py + N = len(thetas) + c = np.cos(thetas) + s = np.sin(thetas) + rot_xf = np.zeros((N, 2, 3), dtype=np.float32) + rot_xf[:, 0, 0] = rot_xf[:, 1, 1] = c + rot_xf[:, 1, 0] = -s + rot_xf[:, 0, 1] = s + return rot_xf + +def flip_xyd_matrices(flip_flags_xyd, image_size): + """ + Generate flip matrices in OpenCV compatible form. Each sample has three flags: `x`, `y` and `d`: + `x == True` -> flip horizontally + `y == True` -> flip vertically + `d == True` -> flip diagonal or swap X and Y axes + + :param flip_flags_xyd: per sample flip flags as a (N,[x, y, d]) array + :param image_size: image size as a `(H, w)` tuple + :return: flip matrices, (N,2,3) array + """ + if flip_flags_xyd.ndim != 2: + raise ValueError('flip_flags_xyd should have 2 dimensions, not {}'.format(flip_flags_xyd.ndim)) + if flip_flags_xyd.shape[1] != 3: + raise ValueError('flip_flags_xyd.shape[1] should be 3 dimensions, not {}'.format(flip_flags_xyd.shape[1])) + + # False -> 1, True -> -1 + flip_scale_xy = flip_flags_xyd[:, :2] * -2 + 1 + # Negative scale factors need to be combined with a translation whose value is (image_size - 1) + # Mask the translation with the flip flags to only apply it where flipping is done + flip_xlat_xy = flip_flags_xyd[:, :2] * (np.array(image_size[::-1]).astype(float) - 1) + + hv_flip_xf = identity_xf(len(flip_flags_xyd)) + + # Diagonal flip: swap X and Y axes + diag = flip_flags_xyd[:, 2] + hv_flip_xf[diag] = hv_flip_xf[diag][:, ::-1, :] + + return cat_nx2x3( + hv_flip_xf, + translation_matrices(flip_xlat_xy), + scale_matrices(flip_scale_xy), + ) + + + +def centre_xf(xf, size): + """ + Centre the transformations in `xf` around (0,0), where the current centre is assumed to be at the + centre of an image of shape `size` + :param xf: transformation matrices, (N,2,3) array + :param size: image size + :return: centred transformation matrices, (N,2,3) array + """ + # Taken from https://github.com/Britefury/pytorch-mask-rcnn/blob/refactor/maskrcnn/utils/affine_transforms.py + height, width = size + + # centre_to_zero moves the centre of the image to (0,0) + centre_to_zero = np.zeros((1, 2, 3), dtype=np.float32) + centre_to_zero[0, 0, 0] = centre_to_zero[0, 1, 1] = 1.0 + centre_to_zero[0, 0, 2] = -float(width) * 0.5 + centre_to_zero[0, 1, 2] = -float(height) * 0.5 + + # centre_to_zero then xf + xf_centred = cat_nx2x3(xf, centre_to_zero) + + # move (0,0) back to the centre + xf_centred[:, 0, 2] += float(width) * 0.5 + xf_centred[:, 1, 2] += float(height) * 0.5 + + return xf_centred + + +def cv_to_torch(mtx, dst_size, src_size=None): + """ + Convert transformations matrices that can be used with `cv2.warpAffine` to work with PyTorch + grid sampling. + + NOTE: `align_corners=True` should be passed to `F.affine_Grid` and `F.grid_sample` to + correctly match OpenCV transformations. + + `cv2.warpAffine` expects a matrix that transforms an image in pixel co-ordinates. + PyTorch `F.affine_grid` and `F.grid_sample` maps pixel locations to a [-1, 1] grid + and transforms these sample locations, prior to sampling the image. + + :param mtx: OpenCV transformation matrices as a (N,2,3) array + :param dst_size: the size of the output image as a `(height, width)` tuple + :param src_size: the size of the input image as a `(height, width)` tuple, or None to use `dst_size` + :return: PyTorch transformation matrices as a (N,2,3) array + """ + # Taken from https://github.com/Britefury/pytorch-mask-rcnn/blob/refactor/maskrcnn/utils/affine_transforms.py + dst_scale_x = float(dst_size[1] - 1) / 2.0 + dst_scale_y = float(dst_size[0] - 1) / 2.0 + + if src_size is not None: + src_scale_x = float(src_size[1] - 1) / 2.0 + src_scale_y = float(src_size[0] - 1) / 2.0 + else: + src_scale_x = dst_scale_x + src_scale_y = dst_scale_y + + N = len(mtx) + + # OpenCV transforms the image, whereas the PyTorch transforms the points at which the + # image is samples. We account for this by inverting the transformation matrices + mtx = inv_nx2x3(mtx) + + torch_cv = identity_xf(N) + torch_cv[:, 0, 0] = dst_scale_x + torch_cv[:, 1, 1] = dst_scale_y + torch_cv[:, 0, 2] = dst_scale_x + torch_cv[:, 1, 2] = dst_scale_y + + cv_torch = identity_xf(N) + cv_torch[:, 0, 0] = 1.0 / src_scale_x + cv_torch[:, 1, 1] = 1.0 / src_scale_y + cv_torch[:, 0, 2] = -1.0 + cv_torch[:, 1, 2] = -1.0 + + # Transform torch co-ordinates to OpenCV, apply the transformation then OpenCV co-ordinates back to torch + return cat_nx2x3(cv_torch, mtx, torch_cv) + + +def pil_to_torch(mtx, dst_size, src_size=None, align_corners=True): + """ + Convert affine transformations matrices that can be used with Pillow `Image.transform` to work with PyTorch + grid sampling. + + `Image.transform` expects a matrix that transforms an image in pixel co-ordinates, where pixel [0,0] + is centred at [0.5, 0.5]. + PyTorch `F.affine_grid` and `F.grid_sample` maps pixel locations to a [-1, 1] grid + and transforms these sample locations, prior to sampling the image. + + :param mtx: PIL transformation matrices as a (N,2,3) array + :param dst_size: the size of the output image as a `(height, width)` tuple + :param src_size: the size of the input image as a `(height, width)` tuple, or None to use `dst_size` + :param align_corners: if you want to use `align_corners=False` for PyTorch `F.affine_grid` and `F.grid_sample`, + pass `align_corners=False` here + :return: PyTorch transformation matrices as a (N,2,3) array + """ + # Taken from https://github.com/Britefury/pytorch-mask-rcnn/blob/refactor/maskrcnn/utils/affine_transforms.py + if align_corners: + dst_size = (dst_size[0] - 1, dst_size[1] - 1) + dst_scale_x = float(dst_size[1]) / 2.0 + dst_scale_y = float(dst_size[0]) / 2.0 + + if src_size is not None: + if align_corners: + src_size = (src_size[0] - 1, src_size[1] - 1) + src_scale_x = float(src_size[1]) / 2.0 + src_scale_y = float(src_size[0]) / 2.0 + else: + src_scale_x = dst_scale_x + src_scale_y = dst_scale_y + + N = len(mtx) + + torch_cv = identity_xf(N) + torch_cv[:, 0, 0] = dst_scale_x + torch_cv[:, 1, 1] = dst_scale_y + torch_cv[:, 0, 2] = dst_scale_x + torch_cv[:, 1, 2] = dst_scale_y + if align_corners: + torch_cv[:, 0, 2] += 0.5 + torch_cv[:, 1, 2] += 0.5 + + cv_torch = identity_xf(N) + cv_torch[:, 0, 0] = 1.0 / src_scale_x + cv_torch[:, 1, 1] = 1.0 / src_scale_y + cv_torch[:, 0, 2] = -1.0 + cv_torch[:, 1, 2] = -1.0 + if align_corners: + cv_torch[:, 0, 2] += -0.5 / src_scale_x + cv_torch[:, 1, 2] += -0.5 / src_scale_y + + # Transform torch co-ordinates to OpenCV, apply the transformation then OpenCV co-ordinates back to torch + return cat_nx2x3(cv_torch, mtx, torch_cv) diff --git a/legacy/Train_and_Inference/utils/augmentation.py b/legacy/Train_and_Inference/utils/augmentation.py new file mode 100644 index 0000000..e0dcd95 --- /dev/null +++ b/legacy/Train_and_Inference/utils/augmentation.py @@ -0,0 +1,737 @@ +## FUNCTIONS: data augmentation used for "superhuman" network +## Noted that it is only applied to 3D datasets +## Written by Wei Huang +## 2020/10/12 +## reference: https://github.com/donglaiw/EM-network/blob/master/em_net/data/augmentation.py + +import cv2 +import time +import math +import random +import torch +import numpy as np +from scipy.ndimage.interpolation import map_coordinates, zoom +from scipy.ndimage.filters import gaussian_filter + +from utils.coordinate import Coordinate + +def produce_simple_aug(data, rule): + '''Routine data augmentation, including flipping in x-, y- and z-dimensions, + and transposing x- and y-dimensions, they have 2^4=16 combinations + Args: + data: numpy array, [Z, Y, X], ndim=3 + rule: numpy array, list or tuple, but len(rule) = 4, such as rule=[1,1,0,0] + ''' + assert data.ndim == 3 and len(rule) == 4 + # z reflection. + if rule[0]: + data = data[::-1, :, :] + # x reflection. + if rule[1]: + data = data[:, :, ::-1] + # y reflection. + if rule[2]: + data = data[:, ::-1, :] + # Transpose in xy. + if rule[3]: + data = data.transpose(0, 2, 1) + return data + +######################################################################## +def create_identity_transformation(shape, subsample=1): + dims = len(shape) + subsample_shape = tuple(max(1, int(s/subsample)) for s in shape) + step_width = tuple(float(shape[d]-1)/(subsample_shape[d]-1) + if subsample_shape[d] > 1 else 1 for d in range(dims)) + + axis_ranges = ( + np.arange(subsample_shape[d], dtype=np.float32)*step_width[d] + for d in range(dims) + ) + return np.array(np.meshgrid(*axis_ranges, indexing='ij'), dtype=np.float32) + + +def upscale_transformation(transformation, + output_shape, + interpolate_order=1): + input_shape = transformation.shape[1:] + dims = len(output_shape) + scale = tuple(float(s)/c for s, c in zip(output_shape, input_shape)) + + scaled = np.zeros((dims,)+output_shape, dtype=np.float32) + for d in range(dims): + zoom(transformation[d], zoom=scale, + output=scaled[d], order=interpolate_order) + return scaled + + +def create_elastic_transformation(shape, + control_point_spacing=100, + jitter_sigma=10.0, + subsample=1): + dims = len(shape) + subsample_shape = tuple(max(1, int(s/subsample)) for s in shape) + + try: + spacing = tuple((d for d in control_point_spacing)) + except: + spacing = (control_point_spacing,)*dims + try: + sigmas = [s for s in jitter_sigma] + except: + sigmas = [jitter_sigma]*dims + + control_points = tuple( + max(1, int(round(float(shape[d])/spacing[d]))) + for d in range(len(shape)) + ) + + # jitter control points + control_point_offsets = np.zeros( + (dims,) + control_points, dtype=np.float32) + for d in range(dims): + if sigmas[d] > 0: + control_point_offsets[d] = np.random.normal( + scale=sigmas[d], size=control_points) + transform = upscale_transformation(control_point_offsets, subsample_shape, interpolate_order=3) + return transform + + +def rotate(point, angle): + res = np.array(point) + res[0] = math.sin(angle)*point[1] + math.cos(angle)*point[0] + res[1] = -math.sin(angle)*point[0] + math.cos(angle)*point[1] + return res + + +def create_rotation_transformation(shape, angle, subsample=1): + dims = len(shape) + subsample_shape = tuple(max(1, int(s/subsample)) for s in shape) + control_points = (2,)*dims + + # map control points to world coordinates + control_point_scaling_factor = tuple(float(s-1) for s in shape) + + # rotate control points + center = np.array([0.5*(d-1) for d in shape]) + + control_point_offsets = np.zeros( + (dims,) + control_points, dtype=np.float32) + for control_point in np.ndindex(control_points): + point = np.array(control_point)*control_point_scaling_factor + center_offset = np.array( + [p-c for c, p in zip(center, point)], dtype=np.float32) + rotated_offset = np.array(center_offset) + rotated_offset[-2:] = rotate(center_offset[-2:], angle) + displacement = rotated_offset - center_offset + control_point_offsets[(slice(None),) + control_point] += displacement + return upscale_transformation(control_point_offsets, subsample_shape) + + +def random_offset(max_misalign): + return Coordinate((0,) + tuple(max_misalign - random.randint(0, 2*int(max_misalign)) for d in range(2))) + + +def misalign(transformation, prob_slip, prob_shift, max_misalign): + num_sections = transformation[0].shape[0] + shifts = [Coordinate((0, 0, 0))]*num_sections + # orginal + # for z in range(num_sections): + # r = random.random() + # if r <= prob_slip: + # shifts[z] = random_offset(max_misalign) + # elif r <= prob_slip + prob_shift: + # offset = random_offset(max_misalign) + # for zp in range(z, num_sections): + # shifts[zp] += offset + + # written by Wei Huang + if random.random() > 0.5: + # slip type + for z in range(1, num_sections): + if random.random() <= prob_slip: + shifts[z] = random_offset(max_misalign) + else: + # translation type + for z in range(1, num_sections): + if random.random() <= prob_shift: + offset = random_offset(max_misalign) + for zp in range(z, num_sections): + shifts[zp] = offset + break + + for z in range(num_sections): + transformation[1][z, :, :] += shifts[z][1] + transformation[2][z, :, :] += shifts[z][2] + return transformation + +def apply_transformation(image, + transformation, + interpolate=True, + outside_value=0, + output=None): + order = 1 if interpolate == True else 0 + output = image.dtype if output is None else output + return map_coordinates(image, + transformation, + output=output, + order=order, + mode='constant', + cval=outside_value) + +def resize_3d(imgs, det_size, mode='linear'): + new_imgs = [] + for k in range(imgs.shape[0]): + temp = imgs[k] + if mode == 'linear': + temp = cv2.resize(temp, (det_size, det_size), interpolation=cv2.INTER_LINEAR) + elif mode == 'nearest': + temp = cv2.resize(temp, (det_size, det_size), interpolation=cv2.INTER_NEAREST) + else: + raise AttributeError('No this interpolation mode!') + new_imgs.append(temp) + new_imgs = np.asarray(new_imgs) + return new_imgs + +######################################################################## + +class Rescale(object): + def __init__(self, scale_factor=2, det_shape=[18, 160, 160]): + super(Rescale, self).__init__() + self.scale_factor = scale_factor + self.det_shape = det_shape + + def __call__(self, data, mask): + src_shape = data.shape + assert src_shape[-1] >= self.det_shape[-1] * self.scale_factor, 'data shape must be 160*2' + min_size = self.det_shape[-1] // self.scale_factor + max_size = self.det_shape[-1] * self.scale_factor + scale_size = random.randint(min_size // 2, max_size // 2) + scale_size = scale_size * 2 + + if scale_size < src_shape[-1]: + shift = (src_shape[-1] - scale_size) // 2 + data = data[:, shift:-shift, shift:-shift] + data = resize_3d(data, self.det_shape[-1], mode='linear') + mask = resize_3d(mask, self.det_shape[-1], mode='nearest') + return data, mask, scale_size + +class SimpleAugment(object): + def __init__(self, skip_ratio=0.5): + '''Routine data augmentation, including flipping in x-, y- and z-dimensions, + and transposing x- and y-dimensions, they have 2^4=16 combinations + Args: + skip_ratio: Probability of execution + ''' + super(SimpleAugment, self).__init__() + self.ratio = skip_ratio + + def __call__(self, inputs): + return self.forward(inputs) + + def forward(self, inputs): + ''' + Args: + inputs: list, such as [imgs, label, ...], imgs and label are numpy arrays with ndim=3 + ''' + skiprand = np.random.rand() + if skiprand < self.ratio: + rule = np.random.randint(2, size=4) + for idx in range(len(inputs)): + inputs[idx] = produce_simple_aug(inputs[idx], rule) + return inputs + else: + return inputs + + +class RandomRotationAugment(object): + def __init__(self, skip_ratio=0.5): + '''Random rotation augmentation in x-y plane + Args: + skip_ratio: Probability of execution + ''' + super(RandomRotationAugment, self).__init__() + self.ratio = skip_ratio + + def __call__(self, inputs, mask=None): + return self.forward(inputs, mask) + + def forward(self, inputs, mask=None): + ''' + Args: + inputs: list, such as [imgs, label, ...], imgs and label are numpy arrays with ndim=3 + ''' + skiprand = np.random.rand() + if skiprand < self.ratio: + angle = random.randint(0, 360-1) + center = tuple(np.array(inputs.shape)[1:] // 2) + rot_mat = cv2.getRotationMatrix2D(center, angle, 1) + for k in range(inputs.shape[0]): + inputs[k] = cv2.warpAffine(inputs[k], rot_mat, inputs[k].shape, flags=cv2.INTER_LINEAR) + if mask is not None: + for k in range(mask.shape[0]): + mask[k] = cv2.warpAffine(mask[k], rot_mat, mask[k].shape, flags=cv2.INTER_NEAREST) + return inputs, mask + else: + return inputs + else: + if mask is not None: + return inputs, mask + else: + return inputs + +class IntensityAugment(object): + def __init__(self, mode='mix', + skip_ratio=0.5, + CONTRAST_FACTOR=0.1, + BRIGHTNESS_FACTOR=0.1): + '''Image intensity augmentation, including adjusting contrast and brightness + Args: + mode: '2D', '3D' or 'mix' (contains '2D' and '3D') + skip_ratio: Probability of execution + CONTRAST_FACTOR: Contrast factor + BRIGHTNESS_FACTOR : Brightness factor + ''' + super(IntensityAugment, self).__init__() + assert mode == '3D' or mode == '2D' or mode == 'mix' + self.mode = mode + self.ratio = skip_ratio + self.CONTRAST_FACTOR = CONTRAST_FACTOR + self.BRIGHTNESS_FACTOR = BRIGHTNESS_FACTOR + + def __call__(self, inputs): + return self.forward(inputs) + + def forward(self, inputs): + skiprand = np.random.rand() + if skiprand < self.ratio: + if self.mode == 'mix': + # The probability of '2D' is more than '3D' + threshold = 1 - (1 - self.ratio) / 2 + mode_ = '3D' if skiprand > threshold else '2D' + else: + mode_ = self.mode + if mode_ == '2D': + inputs = self.augment2D(inputs) + elif mode_ == '3D': + inputs = self.augment3D(inputs) + return inputs + else: + return inputs + + def augment2D(self, imgs): + for z in range(imgs.shape[-3]): + img = imgs[z, :, :] + img *= 1 + (np.random.rand() - 0.5)*self.CONTRAST_FACTOR + img += (np.random.rand() - 0.5)*self.BRIGHTNESS_FACTOR + img = np.clip(img, 0, 1) + img **= 2.0**(np.random.rand()*2 - 1) + imgs[z, :, :] = img + return imgs + + def augment3D(self, imgs): + imgs *= 1 + (np.random.rand() - 0.5)*self.CONTRAST_FACTOR + imgs += (np.random.rand() - 0.5)*self.BRIGHTNESS_FACTOR + imgs = np.clip(imgs, 0, 1) + imgs **= 2.0**(np.random.rand()*2 - 1) + return imgs + + +class ElasticAugment(object): + '''Elasticly deform a batch. Requests larger batches upstream to avoid data + loss due to rotation and jitter. + Args: + control_point_spacing (``tuple`` of ``int``): + Distance between control points for the elastic deformation, in + voxels per dimension. + jitter_sigma (``tuple`` of ``float``): + Standard deviation of control point jitter distribution, in voxels + per dimension. + rotation_interval (``tuple`` of two ``floats``): + Interval to randomly sample rotation angles from (0, 2PI). + prob_slip (``float``): + Probability of a section to "slip", i.e., be independently moved in + x-y. + prob_shift (``float``): + Probability of a section and all following sections to move in x-y. + max_misalign (``int``): + Maximal voxels to shift in x and y. Samples will be drawn + uniformly. Used if ``prob_slip + prob_shift`` > 0. + subsample (``int``): + Instead of creating an elastic transformation on the full + resolution, create one subsampled by the given factor, and linearly + interpolate to obtain the full resolution transformation. This can + significantly speed up this node, at the expense of having visible + piecewise linear deformations for large factors. Usually, a factor + of 4 can savely by used without noticable changes. However, the + default is 1 (i.e., no subsampling). + ''' + def __init__( + self, + control_point_spacing=[4, 40, 40], + jitter_sigma=[0,0,0], # recommend: [0, 2, 2] + rotation_interval=[0,0], + prob_slip=0, # recommend: 0.05 + prob_shift=0, # recommend: 0.05 + max_misalign=0, # 17 in superhuman + subsample=1, + padding=None, + skip_ratio=0.5): # recommend: 10 + super(ElasticAugment, self).__init__() + + self.control_point_spacing = control_point_spacing + self.jitter_sigma = jitter_sigma + self.rotation_start = rotation_interval[0] + self.rotation_max_amount = rotation_interval[1] - rotation_interval[0] + self.prob_slip = prob_slip + self.prob_shift = prob_shift + self.max_misalign = max_misalign + self.subsample = subsample + self.padding = padding + self.ratio = skip_ratio + + def create_transformation(self, target_shape): + + transformation = create_identity_transformation( + target_shape, + subsample=self.subsample) + # shape: channel,d,w,h + + # elastic ##cost time## + if sum(self.jitter_sigma) > 0 and np.random.rand() < self.ratio: + transformation += create_elastic_transformation( + target_shape, + self.control_point_spacing, + self.jitter_sigma, + subsample=self.subsample) + + # rotation = random.random()*self.rotation_max_amount + self.rotation_start + # if rotation != 0: + # transformation += create_rotation_transformation( + # target_shape, + # rotation, + # subsample=self.subsample) + + # if self.subsample > 1: + # transformation = upscale_transformation( + # transformation, + # tuple(target_shape)) + + if self.prob_slip + self.prob_shift > 0 and np.random.rand() < self.ratio: + misalign(transformation, self.prob_slip, + self.prob_shift, self.max_misalign) + + return transformation + + def __call__(self, imgs, mask): + return self.forward(imgs, mask) + + def forward(self, imgs, mask): + '''Args: + imgs: numpy array, [Z, Y, Z], it always is float and 0~1 + mask: numpy array, [Z, Y, Z], it always is uint16 + ''' + if self.padding is not None: + imgs = np.pad(imgs, ((0,0), \ + (self.padding,self.padding), \ + (self.padding,self.padding)), mode='reflect') + mask = np.pad(mask, ((0,0), \ + (self.padding,self.padding), \ + (self.padding,self.padding)), mode='reflect') + transform = self.create_transformation(imgs.shape) + img_transform = apply_transformation(imgs, + transform, + interpolate=False, + outside_value=0, # imgs.dtype.type(-1) + output=np.zeros(imgs.shape, dtype=np.float32)) + seg_transform = apply_transformation(mask, + transform, + interpolate=False, + outside_value=0, # mask.dtype.type(-1) + output=np.zeros(mask.shape, dtype=np.uint16)) # dtype=np.float32 + # seg_transform[seg_transform < 0] = 0 + # seg_transform[seg_transform > 60000] = 0 + if self.padding is not None and self.padding != 0: + img_transform = img_transform[:, self.padding:-self.padding, self.padding:-self.padding] + seg_transform = seg_transform[:, self.padding:-self.padding, self.padding:-self.padding] + return img_transform, seg_transform + + +class MissingAugment(object): + '''Missing section augmentation + Args: + filling: the way of filling, 'zero' or 'random' + mode: 'mix', 'fully' or 'partially' + skip_ratio: Probability of execution + miss_ratio: Probability of missing + ''' + def __init__(self, filling='zero', mode='mix', skip_ratio=0.5, miss_ratio=0.1): + super(MissingAugment, self).__init__() + self.filling = filling + self.mode = mode + self.ratio = skip_ratio + self.miss_ratio = miss_ratio + + def __call__(self, imgs): + return self.forward(imgs) + + def forward(self, imgs): + skiprand = np.random.rand() + if skiprand < self.ratio: + if self.mode == 'mix': + r = np.random.rand() + mode_ = 'fully' if r < 0.5 else 'partially' + else: + mode_ = self.mode + if mode_ == 'fully': + imgs = self.augment_fully(imgs) + elif mode_ == 'partially': + imgs = self.augment_partially(imgs) + return imgs + else: + return imgs + + def augment_fully(self, imgs): + d, h, w = imgs.shape + for i in range(d): + if np.random.rand() < self.miss_ratio: + if self.filling == 'zero': + imgs[i] = 0 + elif self.filling == 'random': + imgs[i] = np.random.rand(h, w) + return imgs + + def augment_partially(self, imgs, size_ratio=0.3): + d, h, w = imgs.shape + for i in range(d): + if np.random.rand() < self.miss_ratio: + # randomly generate an area + sub_h = random.randint(int(h*size_ratio), int(h*(1-size_ratio))) + sub_w = random.randint(int(w*size_ratio), int(w*(1-size_ratio))) + start_h = random.randint(0, h - sub_h - 1) + start_w = random.randint(0, w - sub_w - 1) + if self.filling == 'zero': + imgs[i, start_h:start_h+sub_h, start_w:start_w+sub_w] = 0 + elif self.filling == 'random': + imgs[i, start_h:start_h+sub_h, start_w:start_w+sub_w] = np.random.rand(sub_h, sub_w) + return imgs + + +class BlurAugment(object): + '''Out-of-focus (Blur) section augmentation + Args: + mode: 'mix', 'fully' or 'partially' + skip_ratio: Probability of execution + blur_ratio: Probability of blur + ''' + def __init__(self, mode='mix', skip_ratio=0.5, blur_ratio=0.1): + super(BlurAugment, self).__init__() + self.mode = mode + self.ratio = skip_ratio + self.blur_ratio = blur_ratio + + def __call__(self, imgs): + return self.forward(imgs) + + def forward(self, imgs): + skiprand = np.random.rand() + if skiprand < self.ratio: + if self.mode == 'mix': + r = np.random.rand() + mode_ = 'fully' if r < 0.5 else 'partially' + else: + mode_ = self.mode + if mode_ == 'fully': + imgs = self.augment_fully(imgs) + elif mode_ == 'partially': + imgs = self.augment_partially(imgs) + return imgs + else: + return imgs + + def augment_fully(self, imgs): + d, h, w = imgs.shape + for i in range(d): + if np.random.rand() < self.blur_ratio: + sigma = np.random.uniform(0, 5) + imgs[i] = gaussian_filter(imgs[i], sigma) + return imgs + + def augment_partially(self, imgs, size_ratio=0.3): + d, h, w = imgs.shape + for i in range(d): + if np.random.rand() < self.blur_ratio: + # randomly generate an area + sub_h = random.randint(int(h*size_ratio), int(h*(1-size_ratio))) + sub_w = random.randint(int(w*size_ratio), int(w*(1-size_ratio))) + start_h = random.randint(0, h - sub_h - 1) + start_w = random.randint(0, w - sub_w - 1) + sigma = np.random.uniform(0, 5) + imgs[i, start_h:start_h+sub_h, start_w:start_w+sub_w] = \ + gaussian_filter(imgs[i, start_h:start_h+sub_h, start_w:start_w+sub_w], sigma) + return imgs + + +def show(img3d): + # only used for image with shape [18, 160, 160] + row = 4 + column = 5 + num = 18 + size = 160 + img_all = np.zeros((size*row, size*column), dtype=np.uint8) + for i in range(row): + for j in range(column): + index = i*column + j + if index >= num: + img = np.zeros_like(img3d[0], dtype=np.uint8) + else: + img = (img3d[index] * 255).astype(np.uint8) + img_all[i*size:(i+1)*size, j*size:(j+1)*size] = img + return img_all + + +def show_lb(img3d): + # only used for image with shape [18, 160, 160] + row = 4 + column = 5 + num = 18 + size = 160 + ids = np.unique(img3d) + color_pred = np.zeros([num, size, size, 3], dtype=np.uint8) + idx = np.searchsorted(ids, img3d) + for i in range(3): + color_val = np.random.randint(0, 255, ids.shape) + if ids[0] == 0: + color_val[0] = 0 + color_pred[:,:,:,i] = color_val[idx] + + img_all = np.zeros((size*row, size*column, 3), dtype=np.uint8) + for i in range(row): + for j in range(column): + index = i*column + j + if index >= num: + img = np.zeros_like((size, size, 3), dtype=np.uint8) + else: + img = color_pred[index] + img_all[i*size:(i+1)*size, j*size:(j+1)*size, :] = img + return img_all + + +def elastic_deform_3d_cuda(image_in, + label_in, + prob, + random_state=None, + padding=20, + alpha=(10,50), + sigma=10, + device='cuda:0'): + """Elastic deformation of image_ins as described in [Simard2003]_. + .. [Simard2003] Simard, Steinkraus and Platt, "Best Practices for + Convolutional Neural Networks applied to Visual Document Analysis", in + Proc. of the International Conference on Document Analysis and + Recognition, 2003. + """ + # skip + if random.uniform(0, 1) > prob: + return image_in, label_in + + if padding is not None: + image_in = np.pad(image_in, ((0,0), \ + (padding, padding), \ + (padding, padding)), mode='reflect') + label_in = np.pad(label_in, ((0,0), \ + (padding, padding), \ + (padding, padding)), mode='reflect') + + alpha = np.random.uniform(alpha[0], alpha[1]) + if random_state is None: + random_state = np.random.RandomState(None) + + shape = image_in.shape + + #rdx = torch.Tensor(random_state.rand(*shape) * 2 - 1).unsqueeze(0).unsqueeze(0).to(self.device) + #rdy = torch.Tensor(random_state.rand(*shape) * 2 - 1).unsqueeze(0).unsqueeze(0).to(self.device) + #rdz = torch.Tensor(random_state.rand(*shape) * 2 - 1).unsqueeze(0).unsqueeze(0).to(self.device) + #dx = self.gaussian_filter(rdx) * alpha + #dy = self.gaussian_filter(rdy) * alpha + #dz = self.gaussian_filter(rdz) * alpha + + #dx = np.squeeze(dx.data.cpu().numpy()) + #dy = np.squeeze(dy.data.cpu().numpy()) + #dz = np.squeeze(dz.data.cpu().numpy()) + + dx = gaussian_filter((random_state.rand(*shape) * 2 - 1), sigma, order=0, mode='constant', cval=0) * alpha + dy = gaussian_filter((random_state.rand(*shape) * 2 - 1), sigma, order=0, mode='constant', cval=0) * alpha + dz = gaussian_filter((random_state.rand(*shape) * 2 - 1), sigma, order=0, mode='constant', cval=0) * alpha + + grid_x, grid_y, grid_z = np.meshgrid(np.arange(shape[1]), np.arange(shape[0]), np.arange(shape[2])) + def_grid_x = grid_x + dx + def_grid_y = grid_y + dy + def_grid_z = grid_z + dz + + gx = 2.0*def_grid_x/(shape[2]-1)-1. + gy = 2.0*def_grid_y/(shape[1]-1)-1. + gz = 2.0*def_grid_z/(shape[0]-1)-1. + + #indices = np.reshape(def_grid_y, (-1, 1)), np.reshape(def_grid_x, (-1, 1)), np.reshape(def_grid_z, (-1, 1)) + #out = map_coordinates(image_in, indices, order=1).reshape(shape) + + # torch_grid = torch.Tensor(np.stack((gx,gy,gz),3)).unsqueeze(0).to(device) + torch_grid = torch.Tensor(np.stack((gz,gx,gy),3)).unsqueeze(0).to(device) + torch_im = torch.Tensor(np.expand_dims(np.expand_dims(image_in, axis=0), axis=0).copy()).to(device) + torch_lb = torch.Tensor(np.expand_dims(label_in, axis=0).copy()).to(device) + with torch.no_grad(): + torch_im_out = torch.nn.functional.grid_sample(torch_im, torch_grid, mode='bilinear', padding_mode='zeros') + torch_lb_out = torch.nn.functional.grid_sample(torch_lb, torch_grid, mode='bilinear', padding_mode='zeros') + + image_out = np.squeeze(torch_im_out.data.cpu().numpy()).astype(np.uint8) + label_out = np.squeeze(torch_lb_out.data.cpu().numpy()).astype(np.uint8) + + if padding is not None and padding != 0: + image_out = image_out[:, padding:-padding, padding:-padding] + label_out = label_out[:, padding:-padding, padding:-padding] + return image_out, label_out + +if __name__ == "__main__": + import os + import cv2 + import h5py + + input_vol = '../data/snemi3d/train-input.h5' + f = h5py.File(input_vol, 'r') + raw = f['main'][:] + f.close() + + input_vol = '../data/snemi3d/train-labels.h5' + f = h5py.File(input_vol, 'r') + lbs = f['main'][:] + f.close() + + out = './debug_img' + raw = raw.astype(np.float32) / 255.0 + vol = raw[0:18, 0:160, 0:160] + lb = lbs[0:18, 0:160, 0:160] + # vol_img = show_lb(lb) + # cv2.imwrite(os.path.join(out, 'raw.png'), vol_img) + + ################################################## + # Data_aug = ElasticAugment(jitter_sigma=[0,2,2], + # prob_slip=0.5, + # prob_shift=0.5, + # max_misalign=17, + # padding=20) + # print('min=%d, max=%d' % (np.min(lb), np.max(lb))) + ################################################## + # Data_aug = MissingAugment(filling='random') + ################################################## + Data_aug = BlurAugment(blur_ratio=0.1) + for i in range(20): + # vol_aug, lb_aug = Data_aug(vol.copy(), lb.copy()) + # print('min=%d, max=%d' % (np.min(lb_aug), np.max(lb_aug))) + # print(lb_aug.dtype) + # vol_img = show_lb(lb_aug) + vol_aug = Data_aug(vol.copy()) + vol_img = show(vol_aug) + + cv2.imwrite(os.path.join(out, 'raw_aug'+str(i)+'.png'), vol_img) + print('Done') \ No newline at end of file diff --git a/legacy/Train_and_Inference/utils/augmentation_affine.py b/legacy/Train_and_Inference/utils/augmentation_affine.py new file mode 100644 index 0000000..f863b63 --- /dev/null +++ b/legacy/Train_and_Inference/utils/augmentation_affine.py @@ -0,0 +1,240 @@ +import cv2 +import math +import numpy as np + +from utils import affine + +class SegCVTransformRandomCropRotateScale(object): + """ + Random crop with random scale. + """ + def __init__(self, crop_size, crop_offset, rot_mag, max_scale, uniform_scale=True, constrain_rot_scale=True, + rng=None): + if crop_offset is None: + crop_offset = [0, 0] + self.crop_size = tuple(crop_size) + self.crop_size_arr = np.array(crop_size) + self.crop_offset = np.array(crop_offset) + self.rot_mag_rad = math.radians(rot_mag) + self.log_max_scale = np.log(max_scale) + self.uniform_scale = uniform_scale + self.constrain_rot_scale = constrain_rot_scale + self.__rng = rng + + @property + def rng(self): + if self.__rng is None: + self.__rng = np.random.RandomState() + return self.__rng + + def transform_single(self, sample0): + sample0 = sample0.copy() + + # Extract contents + image = sample0['image_arr'] + + # Choose scale and rotation + if self.uniform_scale: + scale_factor_yx = np.exp(self.rng.uniform(-self.log_max_scale, self.log_max_scale, size=(1,))) + scale_factor_yx = np.repeat(scale_factor_yx, 2, axis=0) + else: + scale_factor_yx = np.exp(self.rng.uniform(-self.log_max_scale, self.log_max_scale, size=(2,))) + rot_theta = self.rng.uniform(-self.rot_mag_rad, self.rot_mag_rad, size=(1,)) + + # Scale the crop size by the inverse of the scale + sc_size = self.crop_size_arr / scale_factor_yx + + # Randomly choose centre + img_size = np.array(image.shape[:2]) + extra = np.maximum(img_size - sc_size, 0.0) + centre = extra * self.rng.uniform(0.0, 1.0, size=(2,)) + np.minimum(sc_size, img_size) * 0.5 + + # Build affine transformation matrix + local_xf = affine.cat_nx2x3( + affine.translation_matrices(self.crop_size_arr[None, ::-1] * 0.5), + affine.rotation_matrices(rot_theta), + affine.scale_matrices(scale_factor_yx[None, ::-1]), + affine.translation_matrices(-centre[None, ::-1]), + ) + + # Reflect the image + # Use nearest neighbour sampling to stay consistent with labels, if labels present + if 'labels_arr' in sample0: + interpolation = cv2.INTER_NEAREST + else: + interpolation = self.rng.choice([cv2.INTER_NEAREST, cv2.INTER_LINEAR]) + + sample0['image_arr'] = cv2.warpAffine(image, local_xf[0], self.crop_size[::-1], flags=interpolation, borderValue=0, borderMode=cv2.BORDER_REFLECT_101) + + # Don't reflect labels and mask + if 'labels_arr' in sample0: + sample0['labels_arr'] = cv2.warpAffine(sample0['labels_arr'], local_xf[0], self.crop_size[::-1], flags=cv2.INTER_NEAREST, borderValue=0, borderMode=cv2.BORDER_CONSTANT) + + if 'mask_arr' in sample0: + sample0['mask_arr'] = cv2.warpAffine(sample0['mask_arr'], local_xf[0], self.crop_size[::-1], flags=interpolation, borderValue=0, borderMode=cv2.BORDER_CONSTANT) + + if 'xf_cv' in sample0: + sample0['xf_cv'] = affine.cat_nx2x3(local_xf, sample0['xf_cv'][None, ...])[0] + + return sample0 + + def transform_pair(self, sample0, sample1): + sample0 = sample0.copy() + sample1 = sample1.copy() + + # Choose scales and rotations + if self.constrain_rot_scale: + if self.uniform_scale: + scale_factors_yx = np.exp(self.rng.uniform(-self.log_max_scale, self.log_max_scale, size=(1, 1))) + scale_factors_yx = np.repeat(scale_factors_yx, 2, axis=1) + else: + scale_factors_yx = np.exp(self.rng.uniform(-self.log_max_scale, self.log_max_scale, size=(1, 2))) + + rot_thetas = self.rng.uniform(-self.rot_mag_rad, self.rot_mag_rad, size=(1,)) + scale_factors_yx = np.repeat(scale_factors_yx, 2, axis=0) + rot_thetas = np.repeat(rot_thetas, 2, axis=0) + else: + if self.uniform_scale: + scale_factors_yx = np.exp(self.rng.uniform(-self.log_max_scale, self.log_max_scale, size=(2, 1))) + scale_factors_yx = np.repeat(scale_factors_yx, 2, axis=1) + else: + scale_factors_yx = np.exp(self.rng.uniform(-self.log_max_scale, self.log_max_scale, size=(2, 2))) + rot_thetas = self.rng.uniform(-self.rot_mag_rad, self.rot_mag_rad, size=(2,)) + + img_size = np.array(sample0['image_arr'].shape[:2]) + + # Scale the crop size by the inverse of the scale + sc_size = self.crop_size_arr / scale_factors_yx.min(axis=0) + crop_centre_pos = np.minimum(sc_size, img_size) * 0.5 + + # Randomly choose centres + extra = np.maximum(img_size - sc_size, 0.0) + centre0 = extra * self.rng.uniform(0.0, 1.0, size=(2,)) + crop_centre_pos + offset1 = np.round(self.crop_offset * self.rng.uniform(-1.0, 1.0, size=(2,))) + centre_xlat = np.stack([centre0, centre0], axis=0) + offset1_xlat = np.stack([np.zeros((2,)), offset1], axis=0) + + # Build affine transformation matrices + local_xfs = affine.cat_nx2x3( + affine.translation_matrices(self.crop_size_arr[None, ::-1] * 0.5), + affine.translation_matrices(offset1_xlat[:, ::-1]), + affine.rotation_matrices(rot_thetas), + affine.scale_matrices(scale_factors_yx[:, ::-1]), + affine.translation_matrices(-centre_xlat[:, ::-1]), + ) + + # Use nearest neighbour sampling to stay consistent with labels, if labels present + interpolation = cv2.INTER_NEAREST if 'labels_arr' in sample0 else cv2.INTER_LINEAR + sample0['image_arr'] = cv2.warpAffine(sample0['image_arr'], local_xfs[0], self.crop_size[::-1], flags=interpolation, + borderValue=0, borderMode=cv2.BORDER_REFLECT_101) + sample1['image_arr'] = cv2.warpAffine(sample1['image_arr'], local_xfs[1], self.crop_size[::-1], flags=interpolation, + borderValue=0, borderMode=cv2.BORDER_REFLECT_101) + + if 'labels_arr' in sample0: + sample0['labels_arr'] = cv2.warpAffine(sample0['labels_arr'], local_xfs[0], self.crop_size[::-1], flags=cv2.INTER_NEAREST, + borderValue=0, borderMode=cv2.BORDER_CONSTANT) + sample1['labels_arr'] = cv2.warpAffine(sample1['labels_arr'], local_xfs[1], self.crop_size[::-1], flags=cv2.INTER_NEAREST, + borderValue=0, borderMode=cv2.BORDER_CONSTANT) + + if 'mask_arr' in sample0: + sample0['mask_arr'] = cv2.warpAffine(sample0['mask_arr'], local_xfs[0], self.crop_size[::-1], flags=interpolation, + borderValue=0, borderMode=cv2.BORDER_CONSTANT) + sample1['mask_arr'] = cv2.warpAffine(sample1['mask_arr'], local_xfs[1], self.crop_size[::-1], flags=interpolation, + borderValue=0, borderMode=cv2.BORDER_CONSTANT) + + if 'xf_cv' in sample0: + xf01 = affine.cat_nx2x3(local_xfs, np.stack([sample0['xf_cv'], sample1['xf_cv']], axis=0)) + sample0['xf_cv'] = xf01[0] + sample1['xf_cv'] = xf01[1] + + return sample0, sample1 + + +class SegCVTransformRandomFlip(object): + def __init__(self, hflip, vflip, hvflip, rng=None): + self.hflip = hflip + self.vflip = vflip + self.hvflip = hvflip + self.__rng = rng + + @property + def rng(self): + if self.__rng is None: + self.__rng = np.random.RandomState() + return self.__rng + + @staticmethod + def flip_image(img, flip_xyd): + if flip_xyd[0]: + img = img[:, ::-1] + if flip_xyd[1]: + img = img[::-1, ...] + if flip_xyd[2]: + img = np.swapaxes(img, 0, 1) + return img.copy() + + def transform_single(self, sample): + sample = sample.copy() + + # Flip flags + flip_flags_xyd = self.rng.binomial(1, 0.5, size=(3,)) != 0 + flip_flags_xyd = flip_flags_xyd & np.array([self.hflip, self.vflip, self.hvflip]) + + sample['image_arr'] = self.flip_image(sample['image_arr'], flip_flags_xyd) + + if 'mask_arr' in sample: + sample['mask_arr'] = self.flip_image(sample['mask_arr'], flip_flags_xyd) + + if 'labels_arr' in sample: + sample['labels_arr'] = self.flip_image(sample['labels_arr'], flip_flags_xyd) + + if 'xf_cv' in sample: + sample['xf_cv'] = affine.cat_nx2x3( + affine.flip_xyd_matrices(flip_flags_xyd[None, ...], sample['image_arr'].shape[:2]), + sample['xf_cv'][None, ...], + )[0] + + return sample + + def transform_pair(self, sample0, sample1): + sample0 = sample0.copy() + sample1 = sample1.copy() + + # Flip flags + flip_flags_xyd = self.rng.binomial(1, 0.5, size=(2, 3)) != 0 + flip_flags_xyd = flip_flags_xyd & np.array([[self.hflip, self.vflip, self.hvflip]]) + + sample0['image_arr'] = self.flip_image(sample0['image_arr'], flip_flags_xyd[0]) + sample1['image_arr'] = self.flip_image(sample1['image_arr'], flip_flags_xyd[1]) + + if 'mask_arr' in sample0: + sample0['mask_arr'] = self.flip_image(sample0['mask_arr'], flip_flags_xyd[0]) + sample1['mask_arr'] = self.flip_image(sample1['mask_arr'], flip_flags_xyd[1]) + + if 'labels_arr' in sample0: + sample0['labels_arr'] = self.flip_image(sample0['labels_arr'], flip_flags_xyd[0]) + sample1['labels_arr'] = self.flip_image(sample1['labels_arr'], flip_flags_xyd[1]) + + if 'xf_cv' in sample0: + # False -> 1, True -> -1 + flip_scale_xy = flip_flags_xyd[:, :2] * -2 + 1 + # Negative scale factors need to be combined with a translation whose value is (image_size - 1) + # Mask the translation with the flip flags to only apply it where flipping is done + flip_xlat_xy = flip_flags_xyd[:, :2] * (np.array([sample0['image_arr'].shape[:2][::-1], + sample1['image_arr'].shape[:2][::-1]]).astype(float) - 1) + + hv_flip_xf = affine.identity_xf(2) + hv_flip_xf[flip_flags_xyd[:, 2]] = hv_flip_xf[flip_flags_xyd[:, 2], ::-1, :] + + xf01 = np.stack([sample0['xf_cv'], sample1['xf_cv']], axis=0) + xf01 = affine.cat_nx2x3( + hv_flip_xf, + affine.translation_matrices(flip_xlat_xy), + affine.scale_matrices(flip_scale_xy), + xf01, + ) + sample0['xf_cv'] = xf01[0] + sample1['xf_cv'] = xf01[1] + + return sample0, sample1 + diff --git a/legacy/Train_and_Inference/utils/compute_sdf.py b/legacy/Train_and_Inference/utils/compute_sdf.py new file mode 100644 index 0000000..a8a1505 --- /dev/null +++ b/legacy/Train_and_Inference/utils/compute_sdf.py @@ -0,0 +1,32 @@ +import numpy as np +from scipy.ndimage import distance_transform_edt as distance +from skimage import segmentation as skimage_seg + +def compute_sdf(img_gt): + """ + compute the signed distance map of binary mask + input: segmentation, shape = (batch_size, x, y, z) + output: the Signed Distance Map (SDM) + sdf(x) = 0; x in segmentation boundary + -inf|x-y|; x in segmentation + +inf|x-y|; x out of segmentation + normalize sdf to [-1,1] + """ + normalized_sdf = np.zeros_like(img_gt, dtype=np.float32) + ids, counts = np.unique(img_gt, return_counts=True) + # remove id 0 + if ids[0] == 0: + ids = ids[1:] + # if ids is None + if len(ids) == 0: + return normalized_sdf + + for id in ids: + posmask = np.zeros_like(img_gt) + posmask[img_gt == id] = 1 + posmask = posmask.astype(np.bool) + if posmask.any(): + posdis = distance(posmask) + posdis = (posdis - posdis.min()) / (posdis.max() - posdis.min()) + normalized_sdf += posdis + return normalized_sdf diff --git a/legacy/Train_and_Inference/utils/consistency_aug.py b/legacy/Train_and_Inference/utils/consistency_aug.py new file mode 100644 index 0000000..9ee32db --- /dev/null +++ b/legacy/Train_and_Inference/utils/consistency_aug.py @@ -0,0 +1,235 @@ +import cv2 +import torch +import random +import numpy as np +import torch.nn.functional as F + +def simple_augment(data, rule): + assert np.size(rule) == 4 + assert data.ndim == 3 + # z reflection + if rule[0]: + data = data[::-1, :, :] + # x reflection + if rule[1]: + data = data[:, :, ::-1] + # y reflection + if rule[2]: + data = data[:, ::-1, :] + # transpose in xy + if rule[3]: + data = np.transpose(data, (0, 2, 1)) + return data + +def simple_augment_torch(data, rule): + assert np.size(rule) == 4 + assert len(data.shape) == 4 + # z reflection + if rule[0]: + data = torch.flip(data, [1]) + # x reflection + if rule[1]: + data = torch.flip(data, [3]) + # y reflection + if rule[2]: + data = torch.flip(data, [2]) + # transpose in xy + if rule[3]: + data = data.permute(0, 1, 3, 2) + return data + +def simple_augment_reverse(data, rule): + assert np.size(rule) == 4 + assert len(data.shape) == 5 + # transpose in xy + if rule[3]: + # data = np.transpose(data, (0, 1, 2, 4, 3)) + data = data.permute(0, 1, 2, 4, 3) + # y reflection + if rule[2]: + # data = data[:, :, :, ::-1, :] + data = torch.flip(data, [3]) + # x reflection + if rule[1]: + # data = data[:, :, :, :, ::-1] + data = torch.flip(data, [4]) + # z reflection + if rule[0]: + # data = data[:, :, ::-1, :, :] + data = torch.flip(data, [2]) + return data + +def order_aug(imgs, num_patch=4): + assert imgs.shape[-1] % num_patch == 0 + patch_size = imgs.shape[-1] // num_patch + new_imgs = np.zeros_like(imgs, dtype=np.float32) + # ran_order = np.random.shuffle(np.arange(num_patch**2)) + ran_order = np.random.permutation(num_patch**2) + for k in range(num_patch**2): + xid_new = k // num_patch + yid_new = k % num_patch + order_id = ran_order[k] + xid_old = order_id // num_patch + yid_old = order_id % num_patch + new_imgs[:, xid_new*patch_size:(xid_new+1)*patch_size, yid_new*patch_size:(yid_new+1)*patch_size] = \ + imgs[:, xid_old*patch_size:(xid_old+1)*patch_size, yid_old*patch_size:(yid_old+1)*patch_size] + return new_imgs + +def gen_mask(imgs, model_type='superhuman', min_mask_counts=40, max_mask_counts=60, min_mask_size=[3, 5, 5], max_mask_size=[7, 20, 20]): + if model_type == 'mala': + net_crop_size = [14, 106, 106] + else: + net_crop_size = [0, 0, 0] + crop_size = list(imgs.shape) + mask = np.ones_like(imgs, dtype=np.float32) + mask_counts = random.randint(min_mask_counts, max_mask_counts) + mask_size_z = random.randint(min_mask_size[0], max_mask_size[0]) + mask_size_xy = random.randint(min_mask_size[1], max_mask_size[1]) + for k in range(mask_counts): + mz = random.randint(net_crop_size[0], crop_size[0]-mask_size_z-net_crop_size[0]) + my = random.randint(net_crop_size[1], crop_size[1]-mask_size_xy-net_crop_size[1]) + mx = random.randint(net_crop_size[2], crop_size[2]-mask_size_xy-net_crop_size[2]) + mask[mz:mz+mask_size_z, my:my+mask_size_xy, mx:mx+mask_size_xy] = 0 + return mask + +def resize_3d(imgs, det_size, mode='linear'): + new_imgs = [] + for k in range(imgs.shape[0]): + temp = imgs[k] + if mode == 'linear': + temp = cv2.resize(temp, (det_size, det_size), interpolation=cv2.INTER_LINEAR) + elif mode == 'nearest': + temp = cv2.resize(temp, (det_size, det_size), interpolation=cv2.INTER_NEAREST) + else: + raise AttributeError('No this interpolation mode!') + new_imgs.append(temp) + new_imgs = np.asarray(new_imgs) + return new_imgs + +def add_gauss_noise(imgs, min_std=0.1, max_std=0.1, norm_mode='norm'): + if min_std == max_std: + std = min_std + else: + std = random.uniform(min_std, max_std) + gaussian = np.random.normal(0, std, (imgs.shape)) + imgs = imgs + gaussian + if norm_mode == 'norm': + imgs = (imgs-np.min(imgs)) / (np.max(imgs)-np.min(imgs)) + elif norm_mode == 'trunc': + imgs[imgs<0] = 0 + imgs[imgs>1] = 1 + else: + pass + return imgs + +def add_gauss_blur(imgs, kernel_size=5, sigma=0): + outs = [] + for k in range(imgs.shape[0]): + temp = imgs[k] + temp = cv2.GaussianBlur(temp, (kernel_size,kernel_size), sigma) + outs.append(temp) + outs = np.asarray(outs, dtype=np.float32) + outs[outs < 0] = 0 + outs[outs > 1] = 1 + return outs + +def add_intensity(imgs, contrast_factor=0.1, brightness_factor=0.1): + # imgs *= 1 + (np.random.rand() - 0.5) * contrast_factor + # imgs += (np.random.rand() - 0.5) * brightness_factor + # imgs = np.clip(imgs, 0, 1) + # imgs **= 2.0**(np.random.rand()*2 - 1) + imgs *= 1 + contrast_factor + imgs += brightness_factor + imgs = np.clip(imgs, 0, 1) + return imgs + +def interp_5d(data, det_size, mode='bilinear'): + assert len(data.shape) == 5, "the dimension of data must be 5!" + out = [] + depth = data.shape[2] + for k in range(depth): + temp = data[:,:,k,:,:] + if mode == 'bilinear': + temp = F.interpolate(temp, size=(det_size, det_size), mode='bilinear', align_corners=True) + elif mode == 'nearest': + temp = F.interpolate(temp, size=(det_size, det_size), mode='nearest') + out.append(temp) + out = torch.stack(out, dim=2) + return out + +def convert_consistency_scale(gt, det_size): + B, C, D, H, W = gt.shape + gt = gt.detach().clone() + out_gt = [] + masks = [] + for k in range(B): + gt_temp = gt[k] + det_size_temp = det_size[k] + if det_size_temp[0] == gt_temp.shape[-1]: + mask = torch.ones_like(gt_temp) + out_gt.append(gt_temp) + masks.append(mask) + elif det_size_temp[0] > gt_temp.shape[-1]: + shift = int((det_size_temp[0] - gt_temp.shape[-1]) // 2) + gt_padding = torch.zeros((1, C, D, int(det_size_temp[0]), int(det_size_temp[0]))).float().cuda() + mask = torch.zeros_like(gt_padding) + gt_padding[0,:,:,shift:-shift,shift:-shift] = gt_temp + mask[0,:,:,shift:-shift,shift:-shift] = 1 + # gt_padding = F.interpolate(gt_padding, size=(D, int(gt_temp.shape[-1]), int(gt_temp.shape[-1])), mode='trilinear', align_corners=True) + gt_padding = interp_5d(gt_padding, int(gt_temp.shape[-1]), mode='bilinear') + mask = F.interpolate(mask, size=(D, int(gt_temp.shape[-1]), int(gt_temp.shape[-1])), mode='nearest') + gt_padding = torch.squeeze(gt_padding, dim=0) + mask = torch.squeeze(mask, dim=0) + out_gt.append(gt_padding) + masks.append(mask) + else: + shift = int((gt_temp.shape[-1] - det_size_temp[0]) // 2) + mask = torch.zeros_like(gt_temp) + mask[:,:,shift:-shift,shift:-shift] = 1 + gt_padding = gt_temp[:,:,shift:-shift,shift:-shift] + gt_padding = gt_padding[None, ...] + # gt_padding = F.interpolate(gt_padding, size=(D, int(gt_temp.shape[-1]), int(gt_temp.shape[-1])), mode='trilinear', align_corners=True) + gt_padding = interp_5d(gt_padding, int(gt_temp.shape[-1]), mode='bilinear') + gt_padding = torch.squeeze(gt_padding, dim=0) + out_gt.append(gt_padding) + masks.append(mask) + out_gt = torch.stack(out_gt, dim=0) + masks = torch.stack(masks, dim=0) + return out_gt, masks + +def convert_consistency_flip(gt, rules): + B, C, D, H, W = gt.shape + gt = gt.detach().clone() + rules = rules.data.cpu().numpy() + out_gt = [] + for k in range(B): + gt_temp = gt[k] + rule = rules[k] + gt_temp = simple_augment_torch(gt_temp, rule) + out_gt.append(gt_temp) + out_gt = torch.stack(out_gt, dim=0) + return out_gt + +def convert_consistency_rot(gt, rotnums): + B, C, D, H, W = gt.shape + gt = gt.detach().clone() + rotnums = rotnums.data.cpu().numpy() + out_gt = [] + for k in range(B): + gt_temp = gt[k] + rotnum = int(rotnums[k]) + gt_temp = torch.rot90(gt_temp, rotnum, [2,3]) + out_gt.append(gt_temp) + out_gt = torch.stack(out_gt, dim=0) + return out_gt + + +if __name__ == "__main__": + test = np.random.random((3,3,18,160,160)).astype(np.float32) + det_size = np.asarray([[160],[320],[80]], dtype=np.float32) + test = torch.tensor(test).to('cuda:0') + det_size = torch.tensor(det_size).to('cuda:0') + out_gt, masks = convert_consistency_scale(test, det_size) + print(out_gt.shape) + + diff --git a/legacy/Train_and_Inference/utils/consistency_aug_perturbations.py b/legacy/Train_and_Inference/utils/consistency_aug_perturbations.py new file mode 100644 index 0000000..e1a2d6d --- /dev/null +++ b/legacy/Train_and_Inference/utils/consistency_aug_perturbations.py @@ -0,0 +1,728 @@ +import cv2 +import torch +import random +import numpy as np +import torch.nn.functional as F +from skimage import filters +from scipy.ndimage.filters import gaussian_filter + +from utils.augmentation import create_identity_transformation +from utils.augmentation import create_elastic_transformation +from utils.augmentation import apply_transformation +from utils.augmentation import misalign +from utils.flow_synthesis import gen_line, gen_flow +from utils.image_warp import image_warp + + +def simple_augment(data, rule): + assert np.size(rule) == 4 + assert data.ndim == 3 + # z reflection + if rule[0]: + data = data[::-1, :, :] + # x reflection + if rule[1]: + data = data[:, :, ::-1] + # y reflection + if rule[2]: + data = data[:, ::-1, :] + # transpose in xy + if rule[3]: + data = np.transpose(data, (0, 2, 1)) + return data + + +def simple_augment_torch(data, rule): + assert np.size(rule) == 4 + assert len(data.shape) == 4 + # z reflection + if rule[0]: + data = torch.flip(data, [1]) + # x reflection + if rule[1]: + data = torch.flip(data, [3]) + # y reflection + if rule[2]: + data = torch.flip(data, [2]) + # transpose in xy + if rule[3]: + data = data.permute(0, 1, 3, 2) + return data + + +def simple_augment_reverse(data, rule): + assert np.size(rule) == 4 + assert len(data.shape) == 5 + # transpose in xy + if rule[3]: + # data = np.transpose(data, (0, 1, 2, 4, 3)) + data = data.permute(0, 1, 2, 4, 3) + # y reflection + if rule[2]: + # data = data[:, :, :, ::-1, :] + data = torch.flip(data, [3]) + # x reflection + if rule[1]: + # data = data[:, :, :, :, ::-1] + data = torch.flip(data, [4]) + # z reflection + if rule[0]: + # data = data[:, :, ::-1, :, :] + data = torch.flip(data, [2]) + return data + + +def order_aug(imgs, num_patch=4): + assert imgs.shape[-1] % num_patch == 0 + patch_size = imgs.shape[-1] // num_patch + new_imgs = np.zeros_like(imgs, dtype=np.float32) + # ran_order = np.random.shuffle(np.arange(num_patch**2)) + ran_order = np.random.permutation(num_patch ** 2) + for k in range(num_patch ** 2): + xid_new = k // num_patch + yid_new = k % num_patch + order_id = ran_order[k] + xid_old = order_id // num_patch + yid_old = order_id % num_patch + new_imgs[:, xid_new * patch_size:(xid_new + 1) * patch_size, yid_new * patch_size:(yid_new + 1) * patch_size] = \ + imgs[:, xid_old * patch_size:(xid_old + 1) * patch_size, yid_old * patch_size:(yid_old + 1) * patch_size] + return new_imgs + + +def gen_mask(imgs, net_crop_size=[0, 0, 0], mask_counts=80, mask_size_z=8, mask_size_xy=15): + crop_size = list(imgs.shape) + mask = np.ones_like(imgs, dtype=np.float32) + for k in range(mask_counts): + mz = random.randint(net_crop_size[0], crop_size[0] - mask_size_z - net_crop_size[0]) + my = random.randint(net_crop_size[1], crop_size[1] - mask_size_xy - net_crop_size[1]) + mx = random.randint(net_crop_size[2], crop_size[2] - mask_size_xy - net_crop_size[2]) + mask[mz:mz + mask_size_z, my:my + mask_size_xy, mx:mx + mask_size_xy] = 0 + return mask + + +def resize_3d(imgs, det_size, mode='linear'): + new_imgs = [] + for k in range(imgs.shape[0]): + temp = imgs[k] + if mode == 'linear': + temp = cv2.resize(temp, (det_size, det_size), interpolation=cv2.INTER_LINEAR) + elif mode == 'nearest': + temp = cv2.resize(temp, (det_size, det_size), interpolation=cv2.INTER_NEAREST) + else: + raise AttributeError('No this interpolation mode!') + new_imgs.append(temp) + new_imgs = np.asarray(new_imgs) + return new_imgs + + +def add_gauss_noise(imgs, std=0.01, norm_mode='norm'): + gaussian = np.random.normal(0, std, (imgs.shape)) + imgs = imgs + gaussian + if norm_mode == 'norm': + imgs = (imgs - np.min(imgs)) / (np.max(imgs) - np.min(imgs)) + elif norm_mode == 'trunc': + imgs[imgs < 0] = 0 + imgs[imgs > 1] = 1 + else: + raise NotImplementedError + return imgs + + +def add_gauss_blur(imgs, kernel_size=5, sigma=0): + outs = [] + for k in range(imgs.shape[0]): + temp = imgs[k] + temp = cv2.GaussianBlur(temp, (kernel_size, kernel_size), sigma) + outs.append(temp) + outs = np.asarray(outs, dtype=np.float32) + outs[outs < 0] = 0 + outs[outs > 1] = 1 + return outs + + +def add_sobel(imgs, if_mean=False): + outs = [] + for k in range(imgs.shape[0]): + temp = imgs[k] + # sobelx = cv2.Sobel(temp, cv2.CV_32F, 1, 0) + # sobely = cv2.Sobel(temp, cv2.CV_32F, 0, 1) + # sobelx = filters.sobel_h(temp) + # sobely = filters.sobel_v(temp) + # dst = cv2.addWeighted(sobelx, 0.5, sobely, 0.5, 0) + # dst = sobelx * 0.5 + sobely * 0.5 + # dst = cv2.Sobel(temp, cv2.CV_32F, 1, 1) + if if_mean: + mean = np.mean(temp) + else: + mean = 0 + dst = filters.sobel(temp) + mean + outs.append(dst) + outs = np.asarray(outs, dtype=np.float32) + outs[outs < 0] = 0 + outs[outs > 1] = 1 + return outs + + +def add_intensity(imgs, contrast_factor=0.1, brightness_factor=0.1): + # imgs *= 1 + (np.random.rand() - 0.5) * contrast_factor + # imgs += (np.random.rand() - 0.5) * brightness_factor + # imgs = np.clip(imgs, 0, 1) + # imgs **= 2.0**(np.random.rand()*2 - 1) + imgs *= 1 + contrast_factor + imgs += brightness_factor + imgs = np.clip(imgs, 0, 1) + return imgs + + +def interp_5d(data, det_size, mode='bilinear'): + assert len(data.shape) == 5, "the dimension of data must be 5!" + out = [] + depth = data.shape[2] + for k in range(depth): + temp = data[:, :, k, :, :] + if mode == 'bilinear': + temp = F.interpolate(temp, size=(det_size, det_size), mode='bilinear', align_corners=True) + elif mode == 'nearest': + temp = F.interpolate(temp, size=(det_size, det_size), mode='nearest') + out.append(temp) + out = torch.stack(out, dim=2) + return out + + +def convert_consistency_scale(gt, det_size): + B, C, D, H, W = gt.shape + gt = gt.detach().clone() + out_gt = [] + masks = [] + for k in range(B): + gt_temp = gt[k] + det_size_temp = det_size[k] + if det_size_temp[0] == gt_temp.shape[-1]: + mask = torch.ones_like(gt_temp) + out_gt.append(gt_temp) + masks.append(mask) + elif det_size_temp[0] > gt_temp.shape[-1]: + shift = int((det_size_temp[0] - gt_temp.shape[-1]) // 2) + gt_padding = torch.zeros((1, C, D, int(det_size_temp[0]), int(det_size_temp[0]))).float().cuda() + mask = torch.zeros_like(gt_padding) + gt_padding[0, :, :, shift:-shift, shift:-shift] = gt_temp + mask[0, :, :, shift:-shift, shift:-shift] = 1 + # gt_padding = F.interpolate(gt_padding, size=(D, int(gt_temp.shape[-1]), int(gt_temp.shape[-1])), mode='trilinear', align_corners=True) + gt_padding = interp_5d(gt_padding, int(gt_temp.shape[-1]), mode='bilinear') + mask = F.interpolate(mask, size=(D, int(gt_temp.shape[-1]), int(gt_temp.shape[-1])), mode='nearest') + gt_padding = torch.squeeze(gt_padding, dim=0) + mask = torch.squeeze(mask, dim=0) + out_gt.append(gt_padding) + masks.append(mask) + else: + shift = int((gt_temp.shape[-1] - det_size_temp[0]) // 2) + mask = torch.zeros_like(gt_temp) + mask[:, :, shift:-shift, shift:-shift] = 1 + gt_padding = gt_temp[:, :, shift:-shift, shift:-shift] + gt_padding = gt_padding[None, ...] + # gt_padding = F.interpolate(gt_padding, size=(D, int(gt_temp.shape[-1]), int(gt_temp.shape[-1])), mode='trilinear', align_corners=True) + gt_padding = interp_5d(gt_padding, int(gt_temp.shape[-1]), mode='bilinear') + gt_padding = torch.squeeze(gt_padding, dim=0) + out_gt.append(gt_padding) + masks.append(mask) + out_gt = torch.stack(out_gt, dim=0) + masks = torch.stack(masks, dim=0) + return out_gt, masks + + +def convert_consistency_flip(gt, rules): + B, C, D, H, W = gt.shape + gt = gt.detach().clone() + rules = rules.data.cpu().numpy() + out_gt = [] + for k in range(B): + gt_temp = gt[k] + rule = rules[k] + gt_temp = simple_augment_torch(gt_temp, rule) + out_gt.append(gt_temp) + out_gt = torch.stack(out_gt, dim=0) + return out_gt + + +class Rescale(object): + def __init__(self, scale_factor=2, det_shape=[18, 160, 160]): + super(Rescale, self).__init__() + self.scale_factor = scale_factor + self.det_shape = det_shape + + def __call__(self, data): + src_shape = data.shape + assert src_shape[-1] >= self.det_shape[-1] * self.scale_factor, 'data shape must be 160*2' + min_size = self.det_shape[-1] // self.scale_factor + max_size = self.det_shape[-1] * self.scale_factor + scale_size = random.randint(min_size // 2, max_size // 2) + scale_size = scale_size * 2 + + if scale_size < src_shape[-1]: + shift = (src_shape[-1] - scale_size) // 2 + data = data[:, shift:-shift, shift:-shift] + data = resize_3d(data, self.det_shape[-1], mode='linear') + return data, scale_size + + +class Filp(object): + def __init__(self): + super(Filp, self).__init__() + + def __call__(self, data): + rule = np.random.randint(2, size=4) + data = simple_augment(data, rule) + return data, rule + + +# class Intensity(object): +# def __init__(self, contrast_factor=0.3, brightness_factor=0.3): +# super(Intensity, self).__init__() +# self.CONTRAST_FACTOR = contrast_factor +# self.BRIGHTNESS_FACTOR = brightness_factor + +# def __call__(self, data): +# data = self._augment3D(data) +# return data + +# def _augment3D(self, data, random_state=np.random): +# """ +# Adapted from ELEKTRONN (http://elektronn.org/). +# """ +# ran = random_state.rand(3) + +# transformedimgs = np.copy(data) +# transformedimgs *= 1 + (ran[0] - 0.5)*self.CONTRAST_FACTOR +# transformedimgs += (ran[1] - 0.5)*self.BRIGHTNESS_FACTOR +# transformedimgs = np.clip(transformedimgs, 0, 1) +# transformedimgs **= 2.0**(ran[2]*2 - 1) + +# return transformedimgs +class Intensity(object): + def __init__(self, mode='mix', + skip_ratio=0.5, + CONTRAST_FACTOR=0.1, + BRIGHTNESS_FACTOR=0.1): + '''Image intensity augmentation, including adjusting contrast and brightness + Args: + mode: '2D', '3D' or 'mix' (contains '2D' and '3D') + skip_ratio: Probability of execution + CONTRAST_FACTOR: Contrast factor + BRIGHTNESS_FACTOR : Brightness factor + ''' + super(Intensity, self).__init__() + assert mode == '3D' or mode == '2D' or mode == 'mix' + self.mode = mode + self.ratio = skip_ratio + self.CONTRAST_FACTOR = CONTRAST_FACTOR + self.BRIGHTNESS_FACTOR = BRIGHTNESS_FACTOR + + def __call__(self, inputs): + return self.forward(inputs) + + def forward(self, inputs): + inputs = inputs.copy() + skiprand = np.random.rand() + if self.mode == 'mix': + # The probability of '2D' is more than '3D' + threshold = 1 - (1 - self.ratio) / 2 + mode_ = '3D' if skiprand > threshold else '2D' + else: + mode_ = self.mode + if mode_ == '2D': + inputs = self.augment2D(inputs) + elif mode_ == '3D': + inputs = self.augment3D(inputs) + inputs[inputs < 0] = 0 + inputs[inputs > 1] = 1 + return inputs + + def augment2D(self, imgs): + for z in range(imgs.shape[-3]): + img = imgs[z, :, :] + img *= 1 + (np.random.rand() - 0.5) * self.CONTRAST_FACTOR + img += (np.random.rand() - 0.5) * self.BRIGHTNESS_FACTOR + img = np.clip(img, 0, 1) + img **= 2.0 ** (np.random.rand() * 2 - 1) + imgs[z, :, :] = img + return imgs + + def augment3D(self, imgs): + imgs *= 1 + (np.random.rand() - 0.5) * self.CONTRAST_FACTOR + imgs += (np.random.rand() - 0.5) * self.BRIGHTNESS_FACTOR + imgs = np.clip(imgs, 0, 1) + imgs **= 2.0 ** (np.random.rand() * 2 - 1) + return imgs + + +class GaussBlur(object): + def __init__(self, min_kernel=3, max_kernel=9, min_sigma=0, max_sigma=2): + super(GaussBlur, self).__init__() + self.min_kernel = min_kernel + self.max_kernel = max_kernel + self.min_sigma = min_sigma + self.max_sigma = max_sigma + + def __call__(self, data): + kernel_size = random.randint(self.min_kernel // 2, self.max_kernel // 2) + kernel_size = kernel_size * 2 + 1 + sigma = random.uniform(self.min_sigma, self.max_sigma) + data = add_gauss_blur(data, kernel_size=kernel_size, sigma=sigma) + return data + + +class GaussNoise(object): + def __init__(self, min_std=0.01, max_std=0.2, norm_mode='trunc'): + super(GaussNoise, self).__init__() + self.min_std = min_std + self.max_std = max_std + self.norm_mode = norm_mode + + def __call__(self, data): + std = random.uniform(self.min_std, self.max_std) + data = add_gauss_noise(data, std=std, norm_mode=self.norm_mode) + return data + + +class Cutout(object): + def __init__(self, model_type='superhuman'): + super(Cutout, self).__init__() + self.model_type = model_type + # mask size + self.min_mask_size = [3, 5, 5] + self.max_mask_size = [5, 10, 10] + self.min_mask_counts = 20 + self.max_mask_counts = 50 + self.net_crop_size = [0, 0, 0] + + def __call__(self, data): + mask_counts = random.randint(self.min_mask_counts, self.max_mask_counts) + mask_size_z = random.randint(self.min_mask_size[0], self.max_mask_size[0]) + mask_size_xy = random.randint(self.min_mask_size[1], self.max_mask_size[1]) + mask = gen_mask(data, net_crop_size=self.net_crop_size, \ + mask_counts=mask_counts, \ + mask_size_z=mask_size_z, \ + mask_size_xy=mask_size_xy) + data = data * mask + return data + + +class SobelFilter(object): + def __init__(self, if_mean=False): + super(SobelFilter, self).__init__() + self.if_mean = if_mean + + def __call__(self, data): + data = add_sobel(data, if_mean=self.if_mean) + return data + + +class Mixup(object): + def __init__(self, min_alpha=0.01, max_alpha=0.1): + super(Mixup, self).__init__() + self.min_alpha = min_alpha + self.max_alpha = max_alpha + + def __call__(self, data, auxi): + alpha = random.uniform(self.min_alpha, self.max_alpha) + data = auxi * alpha + data * (1 - alpha) + data[data < 0] = 0 + data[data > 1] = 1 + return data + + +class Missing(object): + '''Missing section augmentation + Args: + filling: the way of filling, 'zero' or 'random' + mode: 'mix', 'fully' or 'partially' + skip_ratio: Probability of execution + miss_ratio: Probability of missing + ''' + + def __init__(self, filling='zero', mode='mix', skip_ratio=0.5, miss_fully_ratio=0.2, miss_part_ratio=0.5): + super(Missing, self).__init__() + self.filling = filling + self.mode = mode + self.ratio = skip_ratio + self.miss_fully_ratio = miss_fully_ratio + self.miss_part_ratio = miss_part_ratio + + def __call__(self, imgs): + return self.forward(imgs) + + def forward(self, imgs): + imgs = imgs.copy() + if self.mode == 'mix': + r = np.random.rand() + mode_ = 'fully' if r < 0.5 else 'partially' + else: + mode_ = self.mode + if mode_ == 'fully': + imgs = self.augment_fully(imgs) + elif mode_ == 'partially': + imgs = self.augment_partially(imgs) + return imgs + + def augment_fully(self, imgs): + d, h, w = imgs.shape + for i in range(d): + if np.random.rand() < self.miss_fully_ratio: + if self.filling == 'zero': + imgs[i] = 0 + elif self.filling == 'random': + imgs[i] = np.random.rand(h, w) + return imgs + + def augment_partially(self, imgs, size_ratio=0.3): + d, h, w = imgs.shape + for i in range(d): + if np.random.rand() < self.miss_part_ratio: + # randomly generate an area + sub_h = random.randint(int(h * size_ratio), int(h * (1 - size_ratio))) + sub_w = random.randint(int(w * size_ratio), int(w * (1 - size_ratio))) + start_h = random.randint(0, h - sub_h - 1) + start_w = random.randint(0, w - sub_w - 1) + if self.filling == 'zero': + imgs[i, start_h:start_h + sub_h, start_w:start_w + sub_w] = 0 + elif self.filling == 'random': + imgs[i, start_h:start_h + sub_h, start_w:start_w + sub_w] = np.random.rand(sub_h, sub_w) + return imgs + + +class BlurEnhanced(object): + '''Out-of-focus (Blur) section augmentation + Args: + mode: 'mix', 'fully' or 'partially' + skip_ratio: Probability of execution + blur_ratio: Probability of blur + ''' + + def __init__(self, mode='mix', skip_ratio=0.5, blur_fully_ratio=0.5, blur_part_ratio=0.7): + super(BlurEnhanced, self).__init__() + self.mode = mode + self.ratio = skip_ratio + self.blur_fully_ratio = blur_fully_ratio + self.blur_part_ratio = blur_part_ratio + + def __call__(self, imgs): + return self.forward(imgs) + + def forward(self, imgs): + imgs = imgs.copy() + if self.mode == 'mix': + r = np.random.rand() + mode_ = 'fully' if r < 0.5 else 'partially' + else: + mode_ = self.mode + if mode_ == 'fully': + imgs = self.augment_fully(imgs) + elif mode_ == 'partially': + imgs = self.augment_partially(imgs) + return imgs + + def augment_fully(self, imgs): + d, h, w = imgs.shape + for i in range(d): + if np.random.rand() < self.blur_fully_ratio: + sigma = np.random.uniform(0, 5) + imgs[i] = gaussian_filter(imgs[i], sigma) + return imgs + + def augment_partially(self, imgs, size_ratio=0.3): + d, h, w = imgs.shape + for i in range(d): + if np.random.rand() < self.blur_part_ratio: + # randomly generate an area + sub_h = random.randint(int(h * size_ratio), int(h * (1 - size_ratio))) + sub_w = random.randint(int(w * size_ratio), int(w * (1 - size_ratio))) + start_h = random.randint(0, h - sub_h - 1) + start_w = random.randint(0, w - sub_w - 1) + sigma = np.random.uniform(0, 5) + imgs[i, start_h:start_h + sub_h, start_w:start_w + sub_w] = \ + gaussian_filter(imgs[i, start_h:start_h + sub_h, start_w:start_w + sub_w], sigma) + return imgs + + +class Elastic(object): + '''Elasticly deform a batch. Requests larger batches upstream to avoid data + loss due to rotation and jitter. + Args: + control_point_spacing (``tuple`` of ``int``): + Distance between control points for the elastic deformation, in + voxels per dimension. + jitter_sigma (``tuple`` of ``float``): + Standard deviation of control point jitter distribution, in voxels + per dimension. + rotation_interval (``tuple`` of two ``floats``): + Interval to randomly sample rotation angles from (0, 2PI). + prob_slip (``float``): + Probability of a section to "slip", i.e., be independently moved in + x-y. + prob_shift (``float``): + Probability of a section and all following sections to move in x-y. + max_misalign (``int``): + Maximal voxels to shift in x and y. Samples will be drawn + uniformly. Used if ``prob_slip + prob_shift`` > 0. + subsample (``int``): + Instead of creating an elastic transformation on the full + resolution, create one subsampled by the given factor, and linearly + interpolate to obtain the full resolution transformation. This can + significantly speed up this node, at the expense of having visible + piecewise linear deformations for large factors. Usually, a factor + of 4 can savely by used without noticable changes. However, the + default is 1 (i.e., no subsampling). + ''' + + def __init__( + self, + control_point_spacing=[4, 40, 40], + jitter_sigma=[0, 0, 0], # recommend: [0, 2, 2] + rotation_interval=[0, 0], + prob_slip=0, # recommend: 0.05 + prob_shift=0, # recommend: 0.05 + max_misalign=0, # 17 in superhuman + subsample=1, + padding=None, + skip_ratio=0.5): # recommend: 10 + super(Elastic, self).__init__() + + self.control_point_spacing = control_point_spacing + self.jitter_sigma = jitter_sigma + self.rotation_start = rotation_interval[0] + self.rotation_max_amount = rotation_interval[1] - rotation_interval[0] + self.prob_slip = prob_slip + self.prob_shift = prob_shift + self.max_misalign = max_misalign + self.subsample = subsample + self.padding = padding + self.ratio = skip_ratio + + def create_transformation(self, target_shape): + transformation = create_identity_transformation( + target_shape, + subsample=self.subsample) + # shape: channel,d,w,h + + # elastic ##cost time## + if sum(self.jitter_sigma) > 0: + transformation += create_elastic_transformation( + target_shape, + self.control_point_spacing, + self.jitter_sigma, + subsample=self.subsample) + + # rotation = random.random()*self.rotation_max_amount + self.rotation_start + # if rotation != 0: + # transformation += create_rotation_transformation( + # target_shape, + # rotation, + # subsample=self.subsample) + + # if self.subsample > 1: + # transformation = upscale_transformation( + # transformation, + # tuple(target_shape)) + + if self.prob_slip + self.prob_shift > 0: + misalign(transformation, self.prob_slip, + self.prob_shift, self.max_misalign) + + return transformation + + def __call__(self, imgs): + return self.forward(imgs) + + def forward(self, imgs): + '''Args: + imgs: numpy array, [Z, Y, Z], it always is float and 0~1 + mask: numpy array, [Z, Y, Z], it always is uint16 + ''' + imgs = imgs.copy() + if self.padding is not None: + imgs = np.pad(imgs, ((0, 0), \ + (self.padding, self.padding), \ + (self.padding, self.padding)), mode='reflect') + transform = self.create_transformation(imgs.shape) + img_transform = apply_transformation(imgs, + transform, + interpolate=False, + outside_value=0, # imgs.dtype.type(-1) + output=np.zeros(imgs.shape, dtype=np.float32)) + # seg_transform[seg_transform < 0] = 0 + # seg_transform[seg_transform > 60000] = 0 + if self.padding is not None and self.padding != 0: + img_transform = img_transform[:, self.padding:-self.padding, self.padding:-self.padding] + return img_transform + + +class Artifact(object): + def __init__(self, min_sec=1, max_sec=5): + super(Artifact, self).__init__() + self.min_sec = min_sec + self.max_sec = max_sec + self.offset = 40 + + def __call__(self, data): + data = data.copy() + num_sec = random.randint(self.min_sec, self.max_sec) + num_imgs = data.shape[0] + rand_sample = random.sample(range(num_imgs), num_sec) + for k in rand_sample: + tmp = data[k].copy() + tmp = (tmp * 255).astype(np.uint8) + tmp = self.degradation(tmp) + data[k] = tmp.astype(np.float32) / 255.0 + return data + + def degradation(self, img): + img = np.pad(img, ((self.offset, self.offset), (self.offset, self.offset)), mode='reflect') + height, width = img.shape + line_width = random.randint(5, 10) + fold_width = random.randint(line_width + 1, 40) + + # two end points + # 1 --> top line (0, x) + # 2 --> right line (x, width) + # 3 --> bottom line (height, x) + # 4 --> left line (x, 0) + k1 = random.randint(1, 4) + k2 = random.randint(1, 4) + while k1 == k2: + k2 = random.randint(1, 4) + + if k1 == 1: + x = random.randint(1, width - 1) + p1 = [0, x] + elif k1 == 2: + x = random.randint(1, height - 1) + p1 = [x, width] + elif k1 == 3: + x = random.randint(1, width - 1) + p1 = [height, x] + else: + x = random.randint(1, height - 1) + p1 = [x, 0] + + if k2 == 1: + x = random.randint(1, width - 1) + p2 = [0, x] + elif k2 == 2: + x = random.randint(1, height - 1) + p2 = [x, width] + elif k2 == 3: + x = random.randint(1, width - 1) + p2 = [height, x] + else: + x = random.randint(1, height - 1) + p2 = [x, 0] + + dis_k = random.uniform(0.00001, 0.1) + k, b = gen_line(p1, p2) + flow, flow2, mask = gen_flow(height, width, k, b, line_width, fold_width, dis_k) + + deformed = image_warp(img, flow, mode='bilinear') # nearest or bilinear + deformed = (deformed * mask).astype(np.uint8) + deformed = deformed[self.offset:-self.offset, self.offset:-self.offset] + + return deformed diff --git a/legacy/Train_and_Inference/utils/consistency_aug_perturbations_sup.py b/legacy/Train_and_Inference/utils/consistency_aug_perturbations_sup.py new file mode 100644 index 0000000..346622e --- /dev/null +++ b/legacy/Train_and_Inference/utils/consistency_aug_perturbations_sup.py @@ -0,0 +1,763 @@ +import cv2 +import torch +import random +import numpy as np +import torch.nn.functional as F +from skimage import filters +from scipy.ndimage.filters import gaussian_filter + +from utils.augmentation import create_identity_transformation +from utils.augmentation import create_elastic_transformation +from utils.augmentation import apply_transformation +from utils.augmentation import misalign +from utils.flow_synthesis import gen_line, gen_flow +from utils.image_warp import image_warp + + +def simple_augment(data, rule): + assert np.size(rule) == 4 + assert data.ndim == 3 + # z reflection + if rule[0]: + data = data[::-1, :, :] + # x reflection + if rule[1]: + data = data[:, :, ::-1] + # y reflection + if rule[2]: + data = data[:, ::-1, :] + # transpose in xy + if rule[3]: + data = np.transpose(data, (0, 2, 1)) + return data + + +def simple_augment_torch(data, rule): + assert np.size(rule) == 4 + assert len(data.shape) == 4 + # z reflection + if rule[0]: + data = torch.flip(data, [1]) + # x reflection + if rule[1]: + data = torch.flip(data, [3]) + # y reflection + if rule[2]: + data = torch.flip(data, [2]) + # transpose in xy + if rule[3]: + data = data.permute(0, 1, 3, 2) + return data + + +def simple_augment_reverse(data, rule): + assert np.size(rule) == 4 + assert len(data.shape) == 5 + # transpose in xy + if rule[3]: + # data = np.transpose(data, (0, 1, 2, 4, 3)) + data = data.permute(0, 1, 2, 4, 3) + # y reflection + if rule[2]: + # data = data[:, :, :, ::-1, :] + data = torch.flip(data, [3]) + # x reflection + if rule[1]: + # data = data[:, :, :, :, ::-1] + data = torch.flip(data, [4]) + # z reflection + if rule[0]: + # data = data[:, :, ::-1, :, :] + data = torch.flip(data, [2]) + return data + + +def order_aug(imgs, num_patch=4): + assert imgs.shape[-1] % num_patch == 0 + patch_size = imgs.shape[-1] // num_patch + new_imgs = np.zeros_like(imgs, dtype=np.float32) + # ran_order = np.random.shuffle(np.arange(num_patch**2)) + ran_order = np.random.permutation(num_patch ** 2) + for k in range(num_patch ** 2): + xid_new = k // num_patch + yid_new = k % num_patch + order_id = ran_order[k] + xid_old = order_id // num_patch + yid_old = order_id % num_patch + new_imgs[:, xid_new * patch_size:(xid_new + 1) * patch_size, yid_new * patch_size:(yid_new + 1) * patch_size] = \ + imgs[:, xid_old * patch_size:(xid_old + 1) * patch_size, yid_old * patch_size:(yid_old + 1) * patch_size] + return new_imgs + + +def gen_mask(imgs, net_crop_size=[0, 0, 0], mask_counts=80, mask_size_z=8, mask_size_xy=15): + crop_size = list(imgs.shape) + mask = np.ones_like(imgs, dtype=np.float32) + for k in range(mask_counts): + mz = random.randint(net_crop_size[0], crop_size[0] - mask_size_z - net_crop_size[0]) + my = random.randint(net_crop_size[1], crop_size[1] - mask_size_xy - net_crop_size[1]) + mx = random.randint(net_crop_size[2], crop_size[2] - mask_size_xy - net_crop_size[2]) + mask[mz:mz + mask_size_z, my:my + mask_size_xy, mx:mx + mask_size_xy] = 0 + return mask + + +def resize_3d(imgs, det_size, mode='linear'): + new_imgs = [] + for k in range(imgs.shape[0]): + temp = imgs[k] + if mode == 'linear': + temp = cv2.resize(temp, (det_size, det_size), interpolation=cv2.INTER_LINEAR) + elif mode == 'nearest': + temp = cv2.resize(temp, (det_size, det_size), interpolation=cv2.INTER_NEAREST) + else: + raise AttributeError('No this interpolation mode!') + new_imgs.append(temp) + new_imgs = np.asarray(new_imgs) + return new_imgs + + +def add_gauss_noise(imgs, std=0.01, norm_mode='norm'): + gaussian = np.random.normal(0, std, (imgs.shape)) + imgs = imgs + gaussian + if norm_mode == 'norm': + imgs = (imgs - np.min(imgs)) / (np.max(imgs) - np.min(imgs)) + elif norm_mode == 'trunc': + imgs[imgs < 0] = 0 + imgs[imgs > 1] = 1 + else: + raise NotImplementedError + return imgs + + +def add_gauss_blur(imgs, kernel_size=5, sigma=0): + outs = [] + for k in range(imgs.shape[0]): + temp = imgs[k] + temp = cv2.GaussianBlur(temp, (kernel_size, kernel_size), sigma) + outs.append(temp) + outs = np.asarray(outs, dtype=np.float32) + outs[outs < 0] = 0 + outs[outs > 1] = 1 + return outs + + +def add_sobel(imgs, if_mean=False): + outs = [] + for k in range(imgs.shape[0]): + temp = imgs[k] + # sobelx = cv2.Sobel(temp, cv2.CV_32F, 1, 0) + # sobely = cv2.Sobel(temp, cv2.CV_32F, 0, 1) + # sobelx = filters.sobel_h(temp) + # sobely = filters.sobel_v(temp) + # dst = cv2.addWeighted(sobelx, 0.5, sobely, 0.5, 0) + # dst = sobelx * 0.5 + sobely * 0.5 + # dst = cv2.Sobel(temp, cv2.CV_32F, 1, 1) + if if_mean: + mean = np.mean(temp) + else: + mean = 0 + dst = filters.sobel(temp) + mean + outs.append(dst) + outs = np.asarray(outs, dtype=np.float32) + outs[outs < 0] = 0 + outs[outs > 1] = 1 + return outs + + +def add_intensity(imgs, contrast_factor=0.1, brightness_factor=0.1): + # imgs *= 1 + (np.random.rand() - 0.5) * contrast_factor + # imgs += (np.random.rand() - 0.5) * brightness_factor + # imgs = np.clip(imgs, 0, 1) + # imgs **= 2.0**(np.random.rand()*2 - 1) + imgs *= 1 + contrast_factor + imgs += brightness_factor + imgs = np.clip(imgs, 0, 1) + return imgs + + +def interp_5d(data, det_size, mode='bilinear'): + assert len(data.shape) == 5, "the dimension of data must be 5!" + out = [] + depth = data.shape[2] + for k in range(depth): + temp = data[:, :, k, :, :] + if mode == 'bilinear': + temp = F.interpolate(temp, size=(det_size, det_size), mode='bilinear', align_corners=True) + elif mode == 'nearest': + temp = F.interpolate(temp, size=(det_size, det_size), mode='nearest') + out.append(temp) + out = torch.stack(out, dim=2) + return out + + +def convert_consistency_scale(gt, det_size): + B, C, D, H, W = gt.shape + gt = gt.detach().clone() + out_gt = [] + masks = [] + for k in range(B): + gt_temp = gt[k] + det_size_temp = det_size[k] + if det_size_temp[0] == gt_temp.shape[-1]: + mask = torch.ones_like(gt_temp) + out_gt.append(gt_temp) + masks.append(mask) + elif det_size_temp[0] > gt_temp.shape[-1]: + shift = int((det_size_temp[0] - gt_temp.shape[-1]) // 2) + gt_padding = torch.zeros((1, C, D, int(det_size_temp[0]), int(det_size_temp[0]))).float().cuda() + mask = torch.zeros_like(gt_padding) + gt_padding[0, :, :, shift:-shift, shift:-shift] = gt_temp + mask[0, :, :, shift:-shift, shift:-shift] = 1 + # gt_padding = F.interpolate(gt_padding, size=(D, int(gt_temp.shape[-1]), int(gt_temp.shape[-1])), mode='trilinear', align_corners=True) + gt_padding = interp_5d(gt_padding, int(gt_temp.shape[-1]), mode='bilinear') + mask = F.interpolate(mask, size=(D, int(gt_temp.shape[-1]), int(gt_temp.shape[-1])), mode='nearest') + gt_padding = torch.squeeze(gt_padding, dim=0) + mask = torch.squeeze(mask, dim=0) + out_gt.append(gt_padding) + masks.append(mask) + else: + shift = int((gt_temp.shape[-1] - det_size_temp[0]) // 2) + mask = torch.zeros_like(gt_temp) + mask[:, :, shift:-shift, shift:-shift] = 1 + gt_padding = gt_temp[:, :, shift:-shift, shift:-shift] + gt_padding = gt_padding[None, ...] + # gt_padding = F.interpolate(gt_padding, size=(D, int(gt_temp.shape[-1]), int(gt_temp.shape[-1])), mode='trilinear', align_corners=True) + gt_padding = interp_5d(gt_padding, int(gt_temp.shape[-1]), mode='bilinear') + gt_padding = torch.squeeze(gt_padding, dim=0) + out_gt.append(gt_padding) + masks.append(mask) + out_gt = torch.stack(out_gt, dim=0) + masks = torch.stack(masks, dim=0) + return out_gt, masks + + +def convert_consistency_flip(gt, rules): + B, C, D, H, W = gt.shape + gt = gt.detach().clone() + rules = rules.data.cpu().numpy() + out_gt = [] + for k in range(B): + gt_temp = gt[k] + rule = rules[k] + gt_temp = simple_augment_torch(gt_temp, rule) + out_gt.append(gt_temp) + out_gt = torch.stack(out_gt, dim=0) + return out_gt + + +class Rescale(object): + def __init__(self, scale_factor=2, det_shape=[18, 160, 160]): + super(Rescale, self).__init__() + self.scale_factor = scale_factor + self.det_shape = det_shape + + def __call__(self, data): + src_shape = data.shape + assert src_shape[-1] >= self.det_shape[-1] * self.scale_factor, 'data shape must be 160*2' + min_size = self.det_shape[-1] // self.scale_factor + max_size = self.det_shape[-1] * self.scale_factor + scale_size = random.randint(min_size // 2, max_size // 2) + scale_size = scale_size * 2 + + if scale_size < src_shape[-1]: + shift = (src_shape[-1] - scale_size) // 2 + data = data[:, shift:-shift, shift:-shift] + data = resize_3d(data, self.det_shape[-1], mode='linear') + return data, scale_size + + +class Filp(object): + def __init__(self): + super(Filp, self).__init__() + + def __call__(self, data): + rule = np.random.randint(2, size=4) + data = simple_augment(data, rule) + return data, rule + + +# class Intensity(object): +# def __init__(self, contrast_factor=0.3, brightness_factor=0.3): +# super(Intensity, self).__init__() +# self.CONTRAST_FACTOR = contrast_factor +# self.BRIGHTNESS_FACTOR = brightness_factor + +# def __call__(self, data): +# data = self._augment3D(data) +# return data + +# def _augment3D(self, data, random_state=np.random): +# """ +# Adapted from ELEKTRONN (http://elektronn.org/). +# """ +# ran = random_state.rand(3) + +# transformedimgs = np.copy(data) +# transformedimgs *= 1 + (ran[0] - 0.5)*self.CONTRAST_FACTOR +# transformedimgs += (ran[1] - 0.5)*self.BRIGHTNESS_FACTOR +# transformedimgs = np.clip(transformedimgs, 0, 1) +# transformedimgs **= 2.0**(ran[2]*2 - 1) + +# return transformedimgs +class Intensity(object): + def __init__(self, mode='mix', + skip_ratio=0.5, + CONTRAST_FACTOR=0.1, + BRIGHTNESS_FACTOR=0.1): + '''Image intensity augmentation, including adjusting contrast and brightness + Args: + mode: '2D', '3D' or 'mix' (contains '2D' and '3D') + skip_ratio: Probability of execution + CONTRAST_FACTOR: Contrast factor + BRIGHTNESS_FACTOR : Brightness factor + ''' + super(Intensity, self).__init__() + assert mode == '3D' or mode == '2D' or mode == 'mix' + self.mode = mode + self.ratio = skip_ratio + self.CONTRAST_FACTOR = CONTRAST_FACTOR + self.BRIGHTNESS_FACTOR = BRIGHTNESS_FACTOR + + def __call__(self, inputs): + return self.forward(inputs) + + def forward(self, inputs): + inputs = inputs.copy() + skiprand = np.random.rand() + if self.mode == 'mix': + # The probability of '2D' is more than '3D' + threshold = 1 - (1 - self.ratio) / 2 + mode_ = '3D' if skiprand > threshold else '2D' + else: + mode_ = self.mode + if mode_ == '2D': + inputs = self.augment2D(inputs) + elif mode_ == '3D': + inputs = self.augment3D(inputs) + inputs[inputs < 0] = 0 + inputs[inputs > 1] = 1 + return inputs + + def augment2D(self, imgs): + for z in range(imgs.shape[-3]): + img = imgs[z, :, :] + img *= 1 + (np.random.rand() - 0.5) * self.CONTRAST_FACTOR + img += (np.random.rand() - 0.5) * self.BRIGHTNESS_FACTOR + img = np.clip(img, 0, 1) + img **= 2.0 ** (np.random.rand() * 2 - 1) + imgs[z, :, :] = img + return imgs + + def augment3D(self, imgs): + imgs *= 1 + (np.random.rand() - 0.5) * self.CONTRAST_FACTOR + imgs += (np.random.rand() - 0.5) * self.BRIGHTNESS_FACTOR + imgs = np.clip(imgs, 0, 1) + imgs **= 2.0 ** (np.random.rand() * 2 - 1) + return imgs + + +class GaussBlur(object): + def __init__(self, min_kernel=3, max_kernel=9, min_sigma=0, max_sigma=2): + super(GaussBlur, self).__init__() + self.min_kernel = min_kernel + self.max_kernel = max_kernel + self.min_sigma = min_sigma + self.max_sigma = max_sigma + + def __call__(self, data): + kernel_size = random.randint(self.min_kernel // 2, self.max_kernel // 2) + kernel_size = kernel_size * 2 + 1 + sigma = random.uniform(self.min_sigma, self.max_sigma) + data = add_gauss_blur(data, kernel_size=kernel_size, sigma=sigma) + return data + + +class GaussNoise(object): + def __init__(self, min_std=0.01, max_std=0.2, norm_mode='trunc'): + super(GaussNoise, self).__init__() + self.min_std = min_std + self.max_std = max_std + self.norm_mode = norm_mode + + def __call__(self, data): + std = random.uniform(self.min_std, self.max_std) + data = add_gauss_noise(data, std=std, norm_mode=self.norm_mode) + return data + + +class Cutout(object): + def __init__(self, model_type='superhuman'): + super(Cutout, self).__init__() + self.model_type = model_type + # mask size + if self.model_type == 'mala': + self.min_mask_size = [5, 5, 5] + self.max_mask_size = [8, 12, 12] + self.min_mask_counts = 40 + self.max_mask_counts = 60 + self.net_crop_size = [14, 106, 106] + else: + self.min_mask_size = [5, 15, 15] + self.max_mask_size = [10, 25, 25] + self.min_mask_counts = 20 + self.max_mask_counts = 50 + self.net_crop_size = [0, 0, 0] + + def __call__(self, data): + mask_counts = random.randint(self.min_mask_counts, self.max_mask_counts) + mask_size_z = random.randint(self.min_mask_size[0], self.max_mask_size[0]) + mask_size_xy = random.randint(self.min_mask_size[1], self.max_mask_size[1]) + mask = gen_mask(data, net_crop_size=self.net_crop_size, \ + mask_counts=mask_counts, \ + mask_size_z=mask_size_z, \ + mask_size_xy=mask_size_xy) + data = data * mask + return data + +class Cutout_P(object): + def __init__(self, model_type='superhuman'): + super(Cutout, self).__init__() + self.model_type = model_type + # mask size + if self.model_type == 'mala': + self.min_mask_size = [5, 5, 5] + self.max_mask_size = [8, 12, 12] + self.min_mask_counts = 40 + self.max_mask_counts = 60 + self.net_crop_size = [14, 106, 106] + else: + self.min_mask_size = [3, 9, 9] + self.max_mask_size = [5, 15, 15] + self.min_mask_counts = 10 + self.max_mask_counts = 30 + self.net_crop_size = [0, 0, 0] + + def __call__(self, data): + mask_counts = random.randint(self.min_mask_counts, self.max_mask_counts) + mask_size_z = random.randint(self.min_mask_size[0], self.max_mask_size[0]) + mask_size_xy = random.randint(self.min_mask_size[1], self.max_mask_size[1]) + mask = gen_mask(data, net_crop_size=self.net_crop_size, \ + mask_counts=mask_counts, \ + mask_size_z=mask_size_z, \ + mask_size_xy=mask_size_xy) + data = data * mask + return data + +class SobelFilter(object): + def __init__(self, if_mean=False): + super(SobelFilter, self).__init__() + self.if_mean = if_mean + + def __call__(self, data): + data = add_sobel(data, if_mean=self.if_mean) + return data + + +class Mixup(object): + def __init__(self, min_alpha=0.01, max_alpha=0.1): + super(Mixup, self).__init__() + self.min_alpha = min_alpha + self.max_alpha = max_alpha + + def __call__(self, data, auxi): + alpha = random.uniform(self.min_alpha, self.max_alpha) + data = auxi * alpha + data * (1 - alpha) + data[data < 0] = 0 + data[data > 1] = 1 + return data + + +class Missing(object): + '''Missing section augmentation + Args: + filling: the way of filling, 'zero' or 'random' + mode: 'mix', 'fully' or 'partially' + skip_ratio: Probability of execution + miss_ratio: Probability of missing + ''' + + def __init__(self, filling='zero', mode='mix', skip_ratio=0.5, miss_fully_ratio=0.2, miss_part_ratio=0.5): + super(Missing, self).__init__() + self.filling = filling + self.mode = mode + self.ratio = skip_ratio + self.miss_fully_ratio = miss_fully_ratio + self.miss_part_ratio = miss_part_ratio + + def __call__(self, imgs): + return self.forward(imgs) + + def forward(self, imgs): + imgs = imgs.copy() + if self.mode == 'mix': + r = np.random.rand() + mode_ = 'fully' if r < 0.5 else 'partially' + else: + mode_ = self.mode + if mode_ == 'fully': + imgs = self.augment_fully(imgs) + elif mode_ == 'partially': + imgs = self.augment_partially(imgs) + return imgs + + def augment_fully(self, imgs): + d, h, w = imgs.shape + for i in range(d): + if np.random.rand() < self.miss_fully_ratio: + if self.filling == 'zero': + imgs[i] = 0 + elif self.filling == 'random': + imgs[i] = np.random.rand(h, w) + return imgs + + def augment_partially(self, imgs, size_ratio=0.3): + d, h, w = imgs.shape + for i in range(d): + if np.random.rand() < self.miss_part_ratio: + # randomly generate an area + sub_h = random.randint(int(h * size_ratio), int(h * (1 - size_ratio))) + sub_w = random.randint(int(w * size_ratio), int(w * (1 - size_ratio))) + start_h = random.randint(0, h - sub_h - 1) + start_w = random.randint(0, w - sub_w - 1) + if self.filling == 'zero': + imgs[i, start_h:start_h + sub_h, start_w:start_w + sub_w] = 0 + elif self.filling == 'random': + imgs[i, start_h:start_h + sub_h, start_w:start_w + sub_w] = np.random.rand(sub_h, sub_w) + return imgs + + +class BlurEnhanced(object): + '''Out-of-focus (Blur) section augmentation + Args: + mode: 'mix', 'fully' or 'partially' + skip_ratio: Probability of execution + blur_ratio: Probability of blur + ''' + + def __init__(self, mode='mix', skip_ratio=0.5, blur_fully_ratio=0.5, blur_part_ratio=0.7): + super(BlurEnhanced, self).__init__() + self.mode = mode + self.ratio = skip_ratio + self.blur_fully_ratio = blur_fully_ratio + self.blur_part_ratio = blur_part_ratio + + def __call__(self, imgs): + return self.forward(imgs) + + def forward(self, imgs): + imgs = imgs.copy() + if self.mode == 'mix': + r = np.random.rand() + mode_ = 'fully' if r < 0.5 else 'partially' + else: + mode_ = self.mode + if mode_ == 'fully': + imgs = self.augment_fully(imgs) + elif mode_ == 'partially': + imgs = self.augment_partially(imgs) + return imgs + + def augment_fully(self, imgs): + d, h, w = imgs.shape + for i in range(d): + if np.random.rand() < self.blur_fully_ratio: + sigma = np.random.uniform(0, 5) + imgs[i] = gaussian_filter(imgs[i], sigma) + return imgs + + def augment_partially(self, imgs, size_ratio=0.3): + d, h, w = imgs.shape + for i in range(d): + if np.random.rand() < self.blur_part_ratio: + # randomly generate an area + sub_h = random.randint(int(h * size_ratio), int(h * (1 - size_ratio))) + sub_w = random.randint(int(w * size_ratio), int(w * (1 - size_ratio))) + start_h = random.randint(0, h - sub_h - 1) + start_w = random.randint(0, w - sub_w - 1) + sigma = np.random.uniform(0, 5) + imgs[i, start_h:start_h + sub_h, start_w:start_w + sub_w] = \ + gaussian_filter(imgs[i, start_h:start_h + sub_h, start_w:start_w + sub_w], sigma) + return imgs + + +class Elastic(object): + '''Elasticly deform a batch. Requests larger batches upstream to avoid data + loss due to rotation and jitter. + Args: + control_point_spacing (``tuple`` of ``int``): + Distance between control points for the elastic deformation, in + voxels per dimension. + jitter_sigma (``tuple`` of ``float``): + Standard deviation of control point jitter distribution, in voxels + per dimension. + rotation_interval (``tuple`` of two ``floats``): + Interval to randomly sample rotation angles from (0, 2PI). + prob_slip (``float``): + Probability of a section to "slip", i.e., be independently moved in + x-y. + prob_shift (``float``): + Probability of a section and all following sections to move in x-y. + max_misalign (``int``): + Maximal voxels to shift in x and y. Samples will be drawn + uniformly. Used if ``prob_slip + prob_shift`` > 0. + subsample (``int``): + Instead of creating an elastic transformation on the full + resolution, create one subsampled by the given factor, and linearly + interpolate to obtain the full resolution transformation. This can + significantly speed up this node, at the expense of having visible + piecewise linear deformations for large factors. Usually, a factor + of 4 can savely by used without noticable changes. However, the + default is 1 (i.e., no subsampling). + ''' + + def __init__( + self, + control_point_spacing=[4, 40, 40], + jitter_sigma=[0, 0, 0], # recommend: [0, 2, 2] + rotation_interval=[0, 0], + prob_slip=0, # recommend: 0.05 + prob_shift=0, # recommend: 0.05 + max_misalign=0, # 17 in superhuman + subsample=1, + padding=None, + skip_ratio=0.5): # recommend: 10 + super(Elastic, self).__init__() + + self.control_point_spacing = control_point_spacing + self.jitter_sigma = jitter_sigma + self.rotation_start = rotation_interval[0] + self.rotation_max_amount = rotation_interval[1] - rotation_interval[0] + self.prob_slip = prob_slip + self.prob_shift = prob_shift + self.max_misalign = max_misalign + self.subsample = subsample + self.padding = padding + self.ratio = skip_ratio + + def create_transformation(self, target_shape): + transformation = create_identity_transformation( + target_shape, + subsample=self.subsample) + # shape: channel,d,w,h + + # elastic ##cost time## + if sum(self.jitter_sigma) > 0: + transformation += create_elastic_transformation( + target_shape, + self.control_point_spacing, + self.jitter_sigma, + subsample=self.subsample) + + # rotation = random.random()*self.rotation_max_amount + self.rotation_start + # if rotation != 0: + # transformation += create_rotation_transformation( + # target_shape, + # rotation, + # subsample=self.subsample) + + # if self.subsample > 1: + # transformation = upscale_transformation( + # transformation, + # tuple(target_shape)) + + if self.prob_slip + self.prob_shift > 0: + misalign(transformation, self.prob_slip, + self.prob_shift, self.max_misalign) + + return transformation + + def __call__(self, imgs): + return self.forward(imgs) + + def forward(self, imgs): + '''Args: + imgs: numpy array, [Z, Y, Z], it always is float and 0~1 + mask: numpy array, [Z, Y, Z], it always is uint16 + ''' + imgs = imgs.copy() + if self.padding is not None: + imgs = np.pad(imgs, ((0, 0), \ + (self.padding, self.padding), \ + (self.padding, self.padding)), mode='reflect') + transform = self.create_transformation(imgs.shape) + img_transform = apply_transformation(imgs, + transform, + interpolate=False, + outside_value=0, # imgs.dtype.type(-1) + output=np.zeros(imgs.shape, dtype=np.float32)) + # seg_transform[seg_transform < 0] = 0 + # seg_transform[seg_transform > 60000] = 0 + if self.padding is not None and self.padding != 0: + img_transform = img_transform[:, self.padding:-self.padding, self.padding:-self.padding] + return img_transform + + +class Artifact(object): + def __init__(self, min_sec=1, max_sec=5): + super(Artifact, self).__init__() + self.min_sec = min_sec + self.max_sec = max_sec + self.offset = 40 + + def __call__(self, data): + data = data.copy() + num_sec = random.randint(self.min_sec, self.max_sec) + num_imgs = data.shape[0] + rand_sample = random.sample(range(num_imgs), num_sec) + for k in rand_sample: + tmp = data[k].copy() + tmp = (tmp * 255).astype(np.uint8) + tmp = self.degradation(tmp) + data[k] = tmp.astype(np.float32) / 255.0 + return data + + def degradation(self, img): + img = np.pad(img, ((self.offset, self.offset), (self.offset, self.offset)), mode='reflect') + height, width = img.shape + line_width = random.randint(5, 10) + fold_width = random.randint(line_width + 1, 40) + + # two end points + # 1 --> top line (0, x) + # 2 --> right line (x, width) + # 3 --> bottom line (height, x) + # 4 --> left line (x, 0) + k1 = random.randint(1, 4) + k2 = random.randint(1, 4) + while k1 == k2: + k2 = random.randint(1, 4) + + if k1 == 1: + x = random.randint(1, width - 1) + p1 = [0, x] + elif k1 == 2: + x = random.randint(1, height - 1) + p1 = [x, width] + elif k1 == 3: + x = random.randint(1, width - 1) + p1 = [height, x] + else: + x = random.randint(1, height - 1) + p1 = [x, 0] + + if k2 == 1: + x = random.randint(1, width - 1) + p2 = [0, x] + elif k2 == 2: + x = random.randint(1, height - 1) + p2 = [x, width] + elif k2 == 3: + x = random.randint(1, width - 1) + p2 = [height, x] + else: + x = random.randint(1, height - 1) + p2 = [x, 0] + + dis_k = random.uniform(0.00001, 0.1) + k, b = gen_line(p1, p2) + flow, flow2, mask = gen_flow(height, width, k, b, line_width, fold_width, dis_k) + + deformed = image_warp(img, flow, mode='bilinear') # nearest or bilinear + deformed = (deformed * mask).astype(np.uint8) + deformed = deformed[self.offset:-self.offset, self.offset:-self.offset] + + return deformed diff --git a/legacy/Train_and_Inference/utils/coordinate.py b/legacy/Train_and_Inference/utils/coordinate.py new file mode 100644 index 0000000..fc77f31 --- /dev/null +++ b/legacy/Train_and_Inference/utils/coordinate.py @@ -0,0 +1,131 @@ +import numbers + +class Coordinate(tuple): + '''A ``tuple`` of integers. + Allows the following element-wise operators: addition, subtraction, + multiplication, division, absolute value, and negation. This allows to + perform simple arithmetics with coordinates, e.g.:: + shape = Coordinate((2, 3, 4)) + voxel_size = Coordinate((10, 5, 1)) + size = shape*voxel_size # == Coordinate((20, 15, 4)) + ''' + def __new__(cls, array_like): + return super(Coordinate, cls).__new__( + cls, + [ + int(x) + if x is not None + else None + for x in array_like]) + + def dims(self): + return len(self) + + def __neg__(self): + return Coordinate( + -a + if a is not None + else None + for a in self) + + def __abs__(self): + return Coordinate( + abs(a) + if a is not None + else None + for a in self) + + def __add__(self, other): + assert isinstance( + other, tuple), "can only add Coordinate or tuples to Coordinate" + assert self.dims() == len(other), "can only add Coordinate of equal dimensions" + return Coordinate( + a+b + if a is not None and b is not None + else None + for a, b in zip(self, other)) + + def __sub__(self, other): + assert isinstance( + other, tuple), "can only subtract Coordinate or tuples to Coordinate" + assert self.dims() == len(other), "can only subtract Coordinate of equal dimensions" + return Coordinate( + a-b + if a is not None and b is not None + else None + for a, b in zip(self, other)) + + def __mul__(self, other): + if isinstance(other, tuple): + assert self.dims() == len(other), "can only multiply Coordinate of equal dimensions" + return Coordinate( + a*b + if a is not None and b is not None + else None + for a, b in zip(self, other)) + + elif isinstance(other, numbers.Number): + return Coordinate( + a*other + if a is not None + else None + for a in self) + else: + raise TypeError( + "multiplication of Coordinate with type %s not supported" % type(other)) + + def __div__(self, other): + if isinstance(other, tuple): + assert self.dims() == len(other), "can only divide Coordinate of equal dimensions" + return Coordinate( + a/b + if a is not None and b is not None + else None + for a, b in zip(self, other)) + elif isinstance(other, numbers.Number): + return Coordinate( + a/other + if a is not None + else None + for a in self) + else: + raise TypeError( + "division of Coordinate with type %s not supported" % type(other)) + + def __truediv__(self, other): + if isinstance(other, tuple): + assert self.dims() == len(other), "can only divide Coordinate of equal dimensions" + return Coordinate( + a/b + if a is not None and b is not None + else None + for a, b in zip(self, other)) + elif isinstance(other, numbers.Number): + return Coordinate( + a/other + if a is not None + else None + for a in self) + else: + raise TypeError( + "division of Coordinate with type %s not supported" % type(other)) + + def __floordiv__(self, other): + if isinstance(other, tuple): + assert self.dims() == len(other), "can only divide Coordinate of equal dimensions" + return Coordinate( + a//b + if a is not None and b is not None + else None + for a, b in zip(self, other)) + elif isinstance(other, numbers.Number): + return Coordinate( + a//other + if a is not None + else None + for a in self) + else: + raise TypeError( + "division of Coordinate with type %s not supported" % type(other)) + + diff --git a/legacy/Train_and_Inference/utils/encoder_dict.py b/legacy/Train_and_Inference/utils/encoder_dict.py new file mode 100644 index 0000000..3aedf4e --- /dev/null +++ b/legacy/Train_and_Inference/utils/encoder_dict.py @@ -0,0 +1,159 @@ +import torch + +ENCODER_DICT = [ + 'embed_in.0.weight', + 'embed_in.0.bias', + 'conv0.block1.0.weight', + 'conv0.block1.1.weight', + 'conv0.block1.1.bias', + 'conv0.block2.0.weight', + 'conv0.block2.1.weight', + 'conv0.block2.1.bias', + 'conv0.block2.3.weight', + 'conv0.block3.weight', + 'conv0.block3.bias', + 'conv1.block1.0.weight', + 'conv1.block1.1.weight', + 'conv1.block1.1.bias', + 'conv1.block2.0.weight', + 'conv1.block2.1.weight', + 'conv1.block2.1.bias', + 'conv1.block2.3.weight', + 'conv1.block3.weight', + 'conv1.block3.bias', + 'conv2.block1.0.weight', + 'conv2.block1.1.weight', + 'conv2.block1.1.bias', + 'conv2.block2.0.weight', + 'conv2.block2.1.weight', + 'conv2.block2.1.bias', + 'conv2.block2.3.weight', + 'conv2.block3.weight', + 'conv2.block3.bias', + 'conv3.block1.0.weight', + 'conv3.block1.1.weight', + 'conv3.block1.1.bias', + 'conv3.block2.0.weight', + 'conv3.block2.1.weight', + 'conv3.block2.1.bias', + 'conv3.block2.3.weight', + 'conv3.block3.weight', + 'conv3.block3.bias', + 'center.block1.0.weight', + 'center.block1.1.weight', + 'center.block1.1.bias', + 'center.block2.0.weight', + 'center.block2.1.weight', + 'center.block2.1.bias', + 'center.block2.3.weight', + 'center.block3.weight', + 'center.block3.bias' +] + +ENCODER_DICT2 = [ + 'embed_in', + 'conv0', + 'conv1', + 'conv2', + 'conv3', + 'center' +] + +ENCODER_DECODER_DICT2 = [ + 'embed_in', + 'conv0', + 'conv1', + 'conv2', + 'conv3', + 'center', + 'up0', + 'cat0', + 'conv4', + 'up1', + 'cat1', + 'conv5', + 'up2', + 'cat2', + 'conv6', + 'up3', + 'cat3', + 'conv7', + 'embed_out' +] + +def freeze_layers(model, if_skip='False'): + print('Freeze encoder!') + for param in model.embed_in.parameters(): + param.requires_grad = False + for param in model.conv0.parameters(): + param.requires_grad = False + for param in model.conv1.parameters(): + param.requires_grad = False + for param in model.conv2.parameters(): + param.requires_grad = False + for param in model.conv3.parameters(): + param.requires_grad = False + for param in model.center.parameters(): + param.requires_grad = False + if if_skip == 'True': + print('Freeze encoder and decoder!') + for param in model.up0.parameters(): + param.requires_grad = False + for param in model.cat0.parameters(): + param.requires_grad = False + for param in model.conv4.parameters(): + param.requires_grad = False + for param in model.up1.parameters(): + param.requires_grad = False + for param in model.cat1.parameters(): + param.requires_grad = False + for param in model.conv5.parameters(): + param.requires_grad = False + for param in model.up2.parameters(): + param.requires_grad = False + for param in model.cat2.parameters(): + param.requires_grad = False + for param in model.conv6.parameters(): + param.requires_grad = False + for param in model.up3.parameters(): + param.requires_grad = False + for param in model.cat3.parameters(): + param.requires_grad = False + for param in model.conv7.parameters(): + param.requires_grad = False + for param in model.embed_out.parameters(): + param.requires_grad = False + for param in model.out_put.parameters(): + param.requires_grad = False + return model + +def difflr_optimizer(model, lr_base=1e-4, lr_encoder=1e-5, if_skip='False'): + print('Adjust the LR of encoder!') + encoder_layers_param = [] + encoder_layers_param += list(map(id, model.embed_in.parameters())) + encoder_layers_param += list(map(id, model.conv0.parameters())) + encoder_layers_param += list(map(id, model.conv1.parameters())) + encoder_layers_param += list(map(id, model.conv2.parameters())) + encoder_layers_param += list(map(id, model.conv3.parameters())) + encoder_layers_param += list(map(id, model.center.parameters())) + if if_skip == 'True': + print('Adjust the LR of encoder and decoder!') + encoder_layers_param += list(map(id, model.up0.parameters())) + encoder_layers_param += list(map(id, model.cat0.parameters())) + encoder_layers_param += list(map(id, model.conv4.parameters())) + encoder_layers_param += list(map(id, model.up1.parameters())) + encoder_layers_param += list(map(id, model.cat1.parameters())) + encoder_layers_param += list(map(id, model.conv5.parameters())) + encoder_layers_param += list(map(id, model.up2.parameters())) + encoder_layers_param += list(map(id, model.cat2.parameters())) + encoder_layers_param += list(map(id, model.conv6.parameters())) + encoder_layers_param += list(map(id, model.up3.parameters())) + encoder_layers_param += list(map(id, model.cat3.parameters())) + encoder_layers_param += list(map(id, model.conv7.parameters())) + encoder_layers_param += list(map(id, model.embed_out.parameters())) + encoder_param = filter(lambda p: id(p) in encoder_layers_param, model.parameters()) + decoder_param = filter(lambda p: id(p) not in encoder_layers_param, model.parameters()) + optimizer = torch.optim.Adam([{'params': encoder_param, 'lr': lr_encoder}, + {'params': decoder_param}], + lr=lr_base, betas=(0.9, 0.999), eps=0.01, weight_decay=1e-6, amsgrad=True) + return optimizer diff --git a/legacy/Train_and_Inference/utils/flow_display.py b/legacy/Train_and_Inference/utils/flow_display.py new file mode 100644 index 0000000..3ae85ee --- /dev/null +++ b/legacy/Train_and_Inference/utils/flow_display.py @@ -0,0 +1,180 @@ +import numpy as np +import matplotlib.pyplot as plt + +def make_color_wheel(): + """ + Generate color wheel according Middlebury color code + :return: Color wheel + """ + RY = 15 + YG = 6 + GC = 4 + CB = 11 + BM = 13 + MR = 6 + + ncols = RY + YG + GC + CB + BM + MR + + colorwheel = np.zeros([ncols, 3]) + + col = 0 + + # RY + colorwheel[0:RY, 0] = 255 + colorwheel[0:RY, 1] = np.transpose(np.floor(255*np.arange(0, RY) / RY)) + col += RY + + # YG + colorwheel[col:col+YG, 0] = 255 - np.transpose(np.floor(255*np.arange(0, YG) / YG)) + colorwheel[col:col+YG, 1] = 255 + col += YG + + # GC + colorwheel[col:col+GC, 1] = 255 + colorwheel[col:col+GC, 2] = np.transpose(np.floor(255*np.arange(0, GC) / GC)) + col += GC + + # CB + colorwheel[col:col+CB, 1] = 255 - np.transpose(np.floor(255*np.arange(0, CB) / CB)) + colorwheel[col:col+CB, 2] = 255 + col += CB + + # BM + colorwheel[col:col+BM, 2] = 255 + colorwheel[col:col+BM, 0] = np.transpose(np.floor(255*np.arange(0, BM) / BM)) + col += + BM + + # MR + colorwheel[col:col+MR, 2] = 255 - np.transpose(np.floor(255 * np.arange(0, MR) / MR)) + colorwheel[col:col+MR, 0] = 255 + + return colorwheel + +def compute_color(u, v): + """ + compute optical flow color map + :param u: optical flow horizontal map + :param v: optical flow vertical map + :return: optical flow in color code + """ + [h, w] = u.shape + img = np.zeros([h, w, 3]) + nanIdx = np.isnan(u) | np.isnan(v) + u[nanIdx] = 0 + v[nanIdx] = 0 + + colorwheel = make_color_wheel() + ncols = np.size(colorwheel, 0) + + rad = np.sqrt(u**2+v**2) + + a = np.arctan2(-v, -u) / np.pi + + fk = (a+1) / 2 * (ncols - 1) + 1 + + k0 = np.floor(fk).astype(int) + + k1 = k0 + 1 + k1[k1 == ncols+1] = 1 + f = fk - k0 + + for i in range(0, np.size(colorwheel,1)): + tmp = colorwheel[:, i] + col0 = tmp[k0-1] / 255 + col1 = tmp[k1-1] / 255 + col = (1-f) * col0 + f * col1 + + idx = rad <= 1 + col[idx] = 1-rad[idx]*(1-col[idx]) + notidx = np.logical_not(idx) + + col[notidx] *= 0.75 + img[:, :, i] = np.uint8(np.floor(255 * col*(1-nanIdx))) + + return img + +def flow_to_image(flow): + """ + Convert flow into middlebury color code image + :param flow: optical flow map + :return: optical flow image in middlebury color + """ + u = flow[:, :, 0] + v = flow[:, :, 1] + + maxu = -999. + maxv = -999. + minu = 999. + minv = 999. + UNKNOWN_FLOW_THRESH = 1e7 + SMALLFLOW = 0.0 + LARGEFLOW = 1e8 + + idxUnknow = (abs(u) > UNKNOWN_FLOW_THRESH) | (abs(v) > UNKNOWN_FLOW_THRESH) + u[idxUnknow] = 0 + v[idxUnknow] = 0 + + maxu = max(maxu, np.max(u)) + minu = min(minu, np.min(u)) + + maxv = max(maxv, np.max(v)) + minv = min(minv, np.min(v)) + + rad = np.sqrt(u ** 2 + v ** 2) + maxrad = max(-1, np.max(rad)) + + u = u/(maxrad + np.finfo(float).eps) + v = v/(maxrad + np.finfo(float).eps) + + img = compute_color(u, v) + + idx = np.repeat(idxUnknow[:, :, np.newaxis], 3, axis=2) + img[idx] = 0 + + return np.uint8(img) + +def dense_flow(flow): + flow_img = flow_to_image(flow) + return flow_img + # plt.figure() + # plt.imshow(flow_img) + # plt.axis('off') + # plt.show() + +def sparse_flow(flow, X=None, Y=None, stride=1): + flow = flow.copy() + flow[:,:,0] = -flow[:,:,0] + if X is None: + height, width, _ = flow.shape + xx = np.arange(0,height,stride) + yy = np.arange(0,width,stride) + X, Y= np.meshgrid(xx,yy) + X = X.flatten() + Y = Y.flatten() + + # sample + sample_0 = flow[:, :, 0][xx] + sample_0 = sample_0.T + sample_x = sample_0[yy] + sample_x = sample_x.T + sample_1 = flow[:, :, 1][xx] + sample_1 = sample_1.T + sample_y = sample_1[yy] + sample_y = sample_y.T + + sample_x = sample_x[:,:,np.newaxis] + sample_y = sample_y[:,:,np.newaxis] + new_flow = np.concatenate([sample_x, sample_y], axis=2) + flow_x = new_flow[:, :, 0].flatten() + flow_y = new_flow[:, :, 1].flatten() + + # display + ax = plt.gca() + ax.xaxis.set_ticks_position('top') + ax.invert_yaxis() + # plt.quiver(X,Y, flow_x, flow_y, angles="xy", color="#666666") + ax.quiver(X,Y, flow_x, flow_y, color="#666666") + ax.grid() + # ax.legend() + plt.draw() + plt.show() \ No newline at end of file diff --git a/legacy/Train_and_Inference/utils/flow_synthesis.py b/legacy/Train_and_Inference/utils/flow_synthesis.py new file mode 100644 index 0000000..6396354 --- /dev/null +++ b/legacy/Train_and_Inference/utils/flow_synthesis.py @@ -0,0 +1,161 @@ +import os +import math +import random +import numpy as np +from PIL import Image +import matplotlib.pyplot as plt +from utils.flow_display import dense_flow, sparse_flow +from utils.image_warp import image_warp + +mina = 0.000000001 +def gen_line(p1, p2): + denominator = p2[1] - p1[1] + if denominator == 0: + denominator = mina + k = (p2[0] - p1[0]) / denominator + b = p1[0] - (k * p1[1]) + return k, b + +def func_line(x, k, b): + y = k * x + b + return y + +def gen_flow(height, width, k, b, line_width=5, fold_width=10, dis_k=0.1): + grid_x = np.tile(np.expand_dims(np.arange(width), 0), [height, 1]) + grid_y = np.tile(np.expand_dims(np.arange(height), 1), [1, width]) + pos_x = grid_x.flatten() + pos_y = grid_y.flatten() + dis = (k * pos_x - pos_y + b) / (math.sqrt(k ** 2 + 1)) + # dis = 1 / dis + dis = dis.reshape((height, width)) + sign = np.zeros_like(dis) + mask = np.zeros_like(dis) + sign[dis > 0] = 1 + sign[dis < 0] = -1 + + dis_abs = np.abs(dis) + mask[dis_abs <= line_width] = 0 + mask[dis_abs > line_width] = 1 + + # dis = dis * 10 + # max_dis = np.max(dis) + # min_dis = np.min(dis) + # print(max_dis, min_dis) + # dis = (max_dis - dis) * sign + (min_dis - dis) * (1 - sign) + + mask_dis = np.ones_like(dis) + mask_dis2 = np.ones_like(dis) + dis_width = fold_width - line_width + mask_dis[dis_abs < line_width] = 0 + mask_dis[dis_abs >= line_width] = 1 + mask_dis2[dis_abs < fold_width] = 0 + mask_dis2[dis_abs >= fold_width] = 1 + + # dis_abs[dis_abs >= dis_width] = fold_width + dis_abs_s = np.zeros_like(dis_abs) + dis_abs_s2 = np.zeros_like(dis_abs) + dis_k = -dis_k + dis_b = dis_width - dis_k * line_width + dis_abs_s = dis_k * dis_abs + dis_b + dis_abs_s[dis_abs_s < 0] = 0 + dis_abs_s2 = dis_abs_s * mask_dis2 + dis_abs * (1 - mask_dis2) + dis_abs_s = dis_abs_s * mask_dis + dis_abs * (1 - mask_dis) + + dis = dis_abs_s * sign + dis2 = dis_abs_s2 * (-sign) + + if k == 0: + k_T = 1 / mina + else: + k_T = 1 / k + + angle = angle = math.atan(k_T) + sin_p = math.sin(angle) + cos_p = math.cos(angle) + + flow = np.zeros((height, width, 2), dtype=np.float32) + flow2 = np.zeros((height, width, 2), dtype=np.float32) + if k > 0: + flow[:, :, 0] = (dis * cos_p) + flow[:, :, 1] = -(dis * sin_p) + flow2[:, :, 0] = (dis2 * cos_p) + flow2[:, :, 1] = -(dis2 * sin_p) + else: + flow[:, :, 0] = -(dis * cos_p) + flow[:, :, 1] = (dis * sin_p) + flow2[:, :, 0] = -(dis2 * cos_p) + flow2[:, :, 1] = (dis2 * sin_p) + + # print(np.max(flow), np.min(flow)) + return flow, flow2, mask + +if __name__ == "__main__": + height = 256 + width = 256 + # line_width = 10 + # fold_width = 20 + for kkk in range(100): + line_width = random.randint(5, 20) + fold_width = random.randint(line_width+1, 80) + + # two end points + # 1 --> top line (0, x) + # 2 --> right line (x, width) + # 3 --> bottom line (height, x) + # 4 --> left line (x, 0) + k1 = random.randint(1, 4) + k2 = random.randint(1, 4) + while k1 == k2: + k2 = random.randint(1, 4) + + if k1 == 1: + x = random.randint(1, width-1) + p1 = [0, x] + elif k1 == 2: + x = random.randint(1, height-1) + p1 = [x, width] + elif k1 == 3: + x = random.randint(1, width-1) + p1 = [height, x] + else: + x = random.randint(1, height-1) + p1 = [x, 0] + + if k2 == 1: + x = random.randint(1, width-1) + p2 = [0, x] + elif k2 == 2: + x = random.randint(1, height-1) + p2 = [x, width] + elif k2 == 3: + x = random.randint(1, width-1) + p2 = [height, x] + else: + x = random.randint(1, height-1) + p2 = [x, 0] + + # p1 = [0, 128] + # p2 = [128, 256] + + # dis_k = random.uniform(0.001, 0.1) + dis_k = random.uniform(0.00001, 0.1) + k, b = gen_line(p1, p2) + + flow, flow2, mask = gen_flow(height, width, k, b, line_width, fold_width, dis_k) + # flow = flow * 10 + # print(flow[:10,-10:,0]) + # print(flow[:10,-10:,1]) + flow_show1 = dense_flow(flow) + flow_show2 = dense_flow(flow2) + flow_show = np.concatenate([flow_show1, flow_show2], axis=1) + Image.fromarray(flow_show).save('./temp/flow_'+str(kkk).zfill(4)+'.png') + # sparse_flow(flow2, stride=10) + + + # img = np.asarray(Image.open('./0000.png')) + # img = img[:256, :256] + + # deformed = image_warp(img, flow, mode='bilinear') # nearest or bilinear + # deformed = (deformed * mask).astype(np.uint8) + # Image.fromarray(img).save('./deformed1.png') + # Image.fromarray(deformed).save('./deformed2.png') diff --git a/legacy/Train_and_Inference/utils/gen_pseudo.py b/legacy/Train_and_Inference/utils/gen_pseudo.py new file mode 100644 index 0000000..25b15a9 --- /dev/null +++ b/legacy/Train_and_Inference/utils/gen_pseudo.py @@ -0,0 +1,74 @@ +import math +import torch +import numpy as np +from yaml.events import NodeEvent + +class GenPseudo(object): + def __init__(self, mode='threshold', + threshold=0.99, + proportion=0.20): + super(GenPseudo, self).__init__() + self.mode = mode + self.threshold = threshold + self.proportion = proportion + + def __call__(self, inputs): + return self.forward(inputs) + + def forward(self, inputs): + inputs = inputs.detach().clone() + mask = torch.zeros_like(inputs) + if self.mode == 'threshold': + inputs[inputs > self.threshold] = 1 + mask[inputs == 1] = 1 + inputs[inputs < (1-self.threshold)] = 0 + mask[inputs == 0] = 1 + return inputs, mask + else: + num_classes = 2 # binary classification + pseudo_lb = [] + masks = [] + batch_size = inputs.shape[0] + for k in range(batch_size): + output_affs = inputs[k] + output_affs_0 = 1 - output_affs.clone() + output_affs_1 = output_affs.clone() + output_affs_all = torch.stack([output_affs_0, output_affs_1], dim=0) + probmap_max, pred_label = torch.max(output_affs_all, dim=0) + for idx_cls in range(num_classes): + out_div_all = [] + for i in range(3): + pred_label_temp = pred_label[i] + probmap_max_temp = probmap_max[i] + probmap_max_cls_temp = probmap_max_temp[pred_label_temp == idx_cls] + if len(probmap_max_cls_temp) > 0: + # probmap_max_cls_temp = probmap_max_cls_temp.view(probmap_max_cls_temp.size(0), -1) + probmap_max_cls_temp = probmap_max_cls_temp[0:len(probmap_max_cls_temp)] + probmap_max_cls_temp, _ = torch.sort(probmap_max_cls_temp, descending=True) + len_cls = len(probmap_max_cls_temp) + thresh_len = int(math.floor(len_cls * self.proportion)) + thresh_temp = probmap_max_cls_temp[thresh_len - 1] + out_div = torch.div(output_affs_all[idx_cls, i], thresh_temp) + else: + out_div = output_affs_all[idx_cls, i] + out_div_all.append(out_div) + out_div_all = torch.stack(out_div_all, dim=0) + output_affs_all[idx_cls] = out_div_all + + rw_probmap_max, pseudo_label = torch.max(output_affs_all, dim=0) + mask = torch.zeros_like(rw_probmap_max) + mask[rw_probmap_max>=1] = 1 + pseudo_lb.append(pseudo_label) + masks.append(mask) + pseudo_lb = torch.stack(pseudo_lb, dim=0) + masks = torch.stack(masks, dim=0) + + return pseudo_lb, masks + + +if __name__ == "__main__": + gen_pseudo = GenPseudo(mode='prop') + pred = np.random.random((2,3,18,160,160)).astype(np.float32) + pred = torch.tensor(pred).to('cuda:0') + + pseudo_lb, masks = gen_pseudo(pred) diff --git a/legacy/Train_and_Inference/utils/image_warp.py b/legacy/Train_and_Inference/utils/image_warp.py new file mode 100644 index 0000000..1bc473b --- /dev/null +++ b/legacy/Train_and_Inference/utils/image_warp.py @@ -0,0 +1,112 @@ +import numpy as np + +def image_warp(im, flow, mode='bilinear'): + """Performs a backward warp of an image using the predicted flow. + numpy version + + Args: + im: input image. ndim=2, 3 or 4, [[num_batch], height, width, [channels]]. num_batch and channels are optional, default is 1. + flow: flow vectors. ndim=3 or 4, [[num_batch], height, width, 2]. num_batch is optional + mode: interpolation mode. 'nearest' or 'bilinear' + Returns: + warped: transformed image of the same shape as the input image. + """ + # assert im.ndim == flow.ndim, 'The dimension of im and flow must be equal ' + flag = 4 + if im.ndim == 2: + height, width = im.shape + num_batch = 1 + channels = 1 + im = im[np.newaxis, :, :, np.newaxis] + flow = flow[np.newaxis, :, :] + flag = 2 + elif im.ndim == 3: + height, width, channels = im.shape + num_batch = 1 + im = im[np.newaxis, :, :] + flow = flow[np.newaxis, :, :] + flag = 3 + elif im.ndim == 4: + num_batch, height, width, channels = im.shape + flag = 4 + else: + raise AttributeError('The dimension of im must be 2, 3 or 4') + + max_x = width - 1 + max_y = height - 1 + zero = 0 + + # We have to flatten our tensors to vectorize the interpolation + im_flat = np.reshape(im, [-1, channels]) + flow_flat = np.reshape(flow, [-1, 2]) + + # Floor the flow, as the final indices are integers + flow_floor = np.floor(flow_flat).astype(np.int32) + + # Construct base indices which are displaced with the flow + pos_x = np.tile(np.arange(width), [height * num_batch]) + grid_y = np.tile(np.expand_dims(np.arange(height), 1), [1, width]) + pos_y = np.tile(np.reshape(grid_y, [-1]), [num_batch]) + + x = flow_floor[:, 0] + y = flow_floor[:, 1] + + x0 = pos_x + x + y0 = pos_y + y + + x0 = np.clip(x0, zero, max_x) + y0 = np.clip(y0, zero, max_y) + + dim1 = width * height + batch_offsets = np.arange(num_batch) * dim1 + base_grid = np.tile(np.expand_dims(batch_offsets, 1), [1, dim1]) + base = np.reshape(base_grid, [-1]) + + base_y0 = base + y0 * width + + if mode == 'nearest': + idx_a = base_y0 + x0 + warped_flat = im_flat[idx_a] + elif mode == 'bilinear': + # The fractional part is used to control the bilinear interpolation. + bilinear_weights = flow_flat - np.floor(flow_flat) + + xw = bilinear_weights[:, 0] + yw = bilinear_weights[:, 1] + + # Compute interpolation weights for 4 adjacent pixels + # expand to num_batch * height * width x 1 for broadcasting in add_n below + wa = np.expand_dims((1 - xw) * (1 - yw), 1) # top left pixel + wb = np.expand_dims((1 - xw) * yw, 1) # bottom left pixel + wc = np.expand_dims(xw * (1 - yw), 1) # top right pixel + wd = np.expand_dims(xw * yw, 1) # bottom right pixel + + x1 = x0 + 1 + y1 = y0 + 1 + + x1 = np.clip(x1, zero, max_x) + y1 = np.clip(y1, zero, max_y) + + base_y1 = base + y1 * width + idx_a = base_y0 + x0 + idx_b = base_y1 + x0 + idx_c = base_y0 + x1 + idx_d = base_y1 + x1 + + Ia = im_flat[idx_a] + Ib = im_flat[idx_b] + Ic = im_flat[idx_c] + Id = im_flat[idx_d] + + warped_flat = wa * Ia + wb * Ib + wc * Ic + wd * Id + warped = np.reshape(warped_flat, [num_batch, height, width, channels]) + + if flag == 2: + warped = np.squeeze(warped) + elif flag == 3: + warped = np.squeeze(warped, axis=0) + else: + pass + warped = warped.astype(np.uint8) + + return warped \ No newline at end of file diff --git a/legacy/Train_and_Inference/utils/malis_loss.py b/legacy/Train_and_Inference/utils/malis_loss.py new file mode 100644 index 0000000..6a0eba0 --- /dev/null +++ b/legacy/Train_and_Inference/utils/malis_loss.py @@ -0,0 +1,14 @@ +import numpy as np +from em_segLib.seg_malis import malis_init, malis_loss_weights_both +from em_segLib.seg_util import mknhood3d + +def malis_loss(output_affs, test_label, seg): + seg = seg.astype(np.uint64) + conn_dims = np.array(output_affs.shape).astype(np.uint64) + nhood_dims = np.array((3,3),dtype=np.uint64) + nhood_data = mknhood3d(1).astype(np.int32).flatten() + pre_ve, pre_prodDims, pre_nHood = malis_init(conn_dims, nhood_data, nhood_dims) + weight = malis_loss_weights_both(seg.flatten(), conn_dims, nhood_data, nhood_dims, pre_ve, + pre_prodDims, pre_nHood, output_affs.flatten(), test_label.flatten(), 0.5).reshape(conn_dims) + malis = np.sum(weight * (output_affs - test_label) ** 2) + return malis diff --git a/legacy/Train_and_Inference/utils/optim_weight_ema.py b/legacy/Train_and_Inference/utils/optim_weight_ema.py new file mode 100644 index 0000000..bf2b1c4 --- /dev/null +++ b/legacy/Train_and_Inference/utils/optim_weight_ema.py @@ -0,0 +1,25 @@ +import torch + + +class EMAWeightOptimizer (object): + def __init__(self, target_net, source_net, ema_alpha): + self.target_net = target_net + self.source_net = source_net + self.ema_alpha = ema_alpha + self.target_params = [p for p in target_net.state_dict().values() if p.dtype == torch.float] + self.source_params = [p for p in source_net.state_dict().values() if p.dtype == torch.float] + + for tgt_p, src_p in zip(self.target_params, self.source_params): + tgt_p[...] = src_p[...] + + target_keys = set(target_net.state_dict().keys()) + source_keys = set(source_net.state_dict().keys()) + if target_keys != source_keys: + raise ValueError('Source and target networks do not have the same state dict keys; do they have different architectures?') + + + def step(self): + one_minus_alpha = 1.0 - self.ema_alpha + for tgt_p, src_p in zip(self.target_params, self.source_params): + tgt_p.mul_(self.ema_alpha) + tgt_p.add_(src_p * one_minus_alpha) diff --git a/legacy/Train_and_Inference/utils/post_func.py b/legacy/Train_and_Inference/utils/post_func.py new file mode 100644 index 0000000..372ab1a --- /dev/null +++ b/legacy/Train_and_Inference/utils/post_func.py @@ -0,0 +1,213 @@ +''' +Descripttion: +version: 0.0 +Author: Wei Huang +Date: 2021-11-01 16:24:30 +''' +import mahotas +import numpy as np + +from scipy import ndimage +import elf.segmentation.multicut as mc +import elf.segmentation.features as feats +import elf.segmentation.watershed as ws +from scipy.ndimage.morphology import distance_transform_edt +from scipy.ndimage.filters import gaussian_filter, maximum_filter + +# reduce the labeling +def getSegType(mid): + m_type = np.uint64 + if mid<2**8: + m_type = np.uint8 + elif mid<2**16: + m_type = np.uint16 + elif mid<2**32: + m_type = np.uint32 + return m_type + +def relabel(seg, do_type=False): + # get the unique labels + uid = np.unique(seg) + # ignore all-background samples + if len(uid)==1 and uid[0] == 0: + return seg + + uid = uid[uid > 0] + mid = int(uid.max()) + 1 # get the maximum label for the segment + + # create an array from original segment id to reduced id + m_type = seg.dtype + if do_type: + m_type = getSegType(mid) + mapping = np.zeros(mid, dtype=m_type) + mapping[uid] = np.arange(1, len(uid) + 1, dtype=m_type) + return mapping[seg] + +def randomlabel(segmentation): + segmentation = segmentation.astype(np.uint32) + uid = np.unique(segmentation) + mid = int(uid.max()) + 1 + mapping = np.zeros(mid, dtype=segmentation.dtype) + mapping[uid] = np.random.choice(len(uid), len(uid), replace=False).astype(segmentation.dtype)#(len(uid), dtype=segmentation.dtype) + out = mapping[segmentation] + out[segmentation==0] = 0 + return out + +def mc_baseline(affs, fragments=None): + affs = 1 - affs + boundary_input = np.maximum(affs[1], affs[2]) + if fragments is None: + fragments = np.zeros_like(boundary_input, dtype='uint64') + offset = 0 + for z in range(fragments.shape[0]): + wsz, max_id = ws.distance_transform_watershed(boundary_input[z], threshold=.25, sigma_seeds=2.) + wsz += offset + offset += max_id + fragments[z] = wsz + rag = feats.compute_rag(fragments) + offsets = [[-1, 0, 0], [0, -1, 0], [0, 0, -1]] + costs = feats.compute_affinity_features(rag, affs, offsets)[:, 0] + edge_sizes = feats.compute_boundary_mean_and_length(rag, boundary_input)[:, 1] + costs = mc.transform_probabilities_to_costs(costs, edge_sizes=edge_sizes) + node_labels = mc.multicut_kernighan_lin(rag, costs) + segmentation = feats.project_node_labels_to_pixels(rag, node_labels) + return segmentation + +def watershed(affs, seed_method, use_mahotas_watershed=True): + affs_xy = 1.0 - 0.5*(affs[1] + affs[2]) + depth = affs_xy.shape[0] + fragments = np.zeros_like(affs[0]).astype(np.uint64) + next_id = 1 + for z in range(depth): + seeds, num_seeds = get_seeds(affs_xy[z], next_id=next_id, method=seed_method) + if use_mahotas_watershed: + fragments[z] = mahotas.cwatershed(affs_xy[z], seeds) + else: + fragments[z] = ndimage.watershed_ift((255.0*affs_xy[z]).astype(np.uint8), seeds) + next_id += num_seeds + return fragments + +def get_seeds(boundary, method='grid', next_id=1, seed_distance=10): + if method == 'grid': + height = boundary.shape[0] + width = boundary.shape[1] + seed_positions = np.ogrid[0:height:seed_distance, 0:width:seed_distance] + num_seeds_y = seed_positions[0].size + num_seeds_x = seed_positions[1].size + num_seeds = num_seeds_x*num_seeds_y + seeds = np.zeros_like(boundary).astype(np.int32) + seeds[seed_positions] = np.arange(next_id, next_id + num_seeds).reshape((num_seeds_y,num_seeds_x)) + + if method == 'minima': + minima = mahotas.regmin(boundary) + seeds, num_seeds = mahotas.label(minima) + seeds += next_id + seeds[seeds==next_id] = 0 + + if method == 'maxima_distance': + distance = mahotas.distance(boundary<0.5) + maxima = mahotas.regmax(distance) + seeds, num_seeds = mahotas.label(maxima) + seeds += next_id + seeds[seeds==next_id] = 0 + + return seeds, num_seeds + + +def watershed_lmc(affs): + affs = 1 - affs + boundary_input = np.maximum(affs[1], affs[2]) + fragments = np.zeros_like(boundary_input, dtype=np.uint64) + offset = 0 + for z in range(fragments.shape[0]): + wsz, max_id = ws.distance_transform_watershed(boundary_input[z], threshold=.25, sigma_seeds=2.) + wsz += offset + offset += max_id + fragments[z] = wsz + return fragments, offset + + +def agglomerate_lmc(affs, fragments): + affs = 1 - affs + boundary_input = np.maximum(affs[1], affs[2]) + rag = feats.compute_rag(fragments) + offsets = [[-1, 0, 0], [0, -1, 0], [0, 0, -1]] + costs = feats.compute_affinity_features(rag, affs, offsets)[:, 0] + edge_sizes = feats.compute_boundary_mean_and_length(rag, boundary_input)[:, 1] + costs = mc.transform_probabilities_to_costs(costs, edge_sizes=edge_sizes) + node_labels = mc.multicut_kernighan_lin(rag, costs) + segmentation = feats.project_node_labels_to_pixels(rag, node_labels) + return segmentation + + +# copy from LSD --> fragments.py +def watershed_from_affinities( + affs, + max_affinity_value=1.0, + fragments_in_xy=True, + return_seeds=False, + min_seed_distance=10): + '''Extract initial fragments from affinities using a watershed + transform. Returns the fragments and the maximal ID in it. + + Returns: + (fragments, max_id) + or + (fragments, max_id, seeds) if return_seeds == True''' + + if fragments_in_xy: + mean_affs = 0.5 * (affs[1] + affs[2]) + depth = mean_affs.shape[0] + fragments = np.zeros(mean_affs.shape, dtype=np.uint64) + if return_seeds: + seeds = np.zeros(mean_affs.shape, dtype=np.uint64) + id_offset = 0 + for z in range(depth): + boundary_mask = mean_affs[z] > 0.5 * max_affinity_value + boundary_distances = distance_transform_edt(boundary_mask) + ret = watershed_from_boundary_distance( + boundary_distances, + return_seeds=return_seeds, + id_offset=id_offset, + min_seed_distance=min_seed_distance) + fragments[z] = ret[0] + if return_seeds: + seeds[z] = ret[2] + id_offset = ret[1] + ret = (fragments, id_offset) + if return_seeds: + ret += (seeds,) + else: + boundary_mask = np.mean(affs, axis=0) > 0.5 * max_affinity_value + boundary_distances = distance_transform_edt(boundary_mask) + ret = watershed_from_boundary_distance( + boundary_distances, + return_seeds=return_seeds, + min_seed_distance=min_seed_distance) + fragments = ret[0] + return ret + + +def watershed_from_boundary_distance( + boundary_distances, + return_seeds=False, + id_offset=0, + min_seed_distance=10): + max_filtered = maximum_filter(boundary_distances, min_seed_distance) + maxima = max_filtered == boundary_distances + seeds, n = mahotas.label(maxima) + + if n == 0: + return np.zeros(boundary_distances.shape, dtype=np.uint64), id_offset + + seeds[seeds!=0] += id_offset + + fragments = mahotas.cwatershed( + boundary_distances.max() - boundary_distances, + seeds) + + ret = (fragments.astype(np.uint64), n + id_offset) + if return_seeds: + ret = ret + (seeds.astype(np.uint64),) + + return ret diff --git a/legacy/Train_and_Inference/utils/post_lmc.py b/legacy/Train_and_Inference/utils/post_lmc.py new file mode 100644 index 0000000..b846709 --- /dev/null +++ b/legacy/Train_and_Inference/utils/post_lmc.py @@ -0,0 +1,77 @@ +import numpy as np +from skimage.metrics import adapted_rand_error as adapted_rand_ref +from skimage.metrics import variation_of_information as voi_ref +import elf.segmentation.watershed as ws +import elf.segmentation.multicut as mc +import elf.segmentation.features as feats +import elf.segmentation.watershed as ws +from elf.segmentation.features import * +from elf.segmentation.learning import * +from elf.segmentation.mutex_watershed import mutex_watershed +from elf.parallel.relabel import relabel_consecutive +from nifty import tools as ntools +import nifty.graph.rag as nrag +import os +import time +from tqdm import tqdm +import numpy as np +import joblib +import imageio +from skimage.metrics import variation_of_information, adapted_rand_error +from multiprocessing import Pool, Lock + +def post_lmc(affs): + affs = 1 - affs + boundary_input = np.maximum(affs[1], affs[2]) + watershed = np.zeros_like(boundary_input, dtype='uint64') + offset = 0 + for z in range(watershed.shape[0]): + wsz, max_id = ws.distance_transform_watershed(boundary_input[z], threshold=.25, sigma_seeds=2.) + wsz += offset + offset += max_id + watershed[z] = wsz + rag = feats.compute_rag(watershed) + offsets = [[-1, 0, 0], [0, -1, 0], [0, 0, -1]] + costs = feats.compute_affinity_features(rag, affs, offsets)[:, 0] + edge_sizes = feats.compute_boundary_mean_and_length(rag, boundary_input)[:, 1] + costs = mc.transform_probabilities_to_costs(costs, edge_sizes=edge_sizes, beta=0.25) + node_labels = mc.multicut_kernighan_lin(rag, costs) + segmentation = feats.project_node_labels_to_pixels(rag, node_labels) + return segmentation + +def post_lmc_lh(affs, beta): + affs = 1 - affs + boundary_input = np.maximum(affs[1], affs[2]) + watershed = np.zeros_like(boundary_input, dtype='uint64') + offset = 0 + for z in range(watershed.shape[0]): + wsz, max_id = ws.distance_transform_watershed(boundary_input[z], threshold=.25, sigma_seeds=2.) + wsz += offset + offset += max_id + watershed[z] = wsz + rag = feats.compute_rag(watershed) + offsets = [[-1, 0, 0], [0, -1, 0], [0, 0, -1]] + costs = feats.compute_affinity_features(rag, affs, offsets)[:, 0] + edge_sizes = feats.compute_boundary_mean_and_length(rag, boundary_input)[:, 1] + costs = mc.transform_probabilities_to_costs(costs, edge_sizes=edge_sizes, beta=beta) + node_labels = mc.multicut_kernighan_lin(rag, costs) + segmentation = feats.project_node_labels_to_pixels(rag, node_labels) + return segmentation + +def post_mc_b(boundary_input, beta=0.25): + boundary_input = 1 - boundary_input + watershed = np.zeros_like(boundary_input, dtype='uint64') + offset = 0 + for z in range(watershed.shape[0]): + wsz, max_id = ws.distance_transform_watershed(boundary_input[z], threshold=0.25, sigma_seeds=2.0) + wsz += offset + offset += max_id + watershed[z] = wsz + rag = feats.compute_rag(watershed) + costs = compute_boundary_features(rag, boundary_input, min_value=0, max_value=1)[:, 0] + edge_sizes = feats.compute_boundary_mean_and_length(rag, boundary_input)[:, 1] + costs = mc.transform_probabilities_to_costs(costs, edge_sizes=edge_sizes, beta=beta) + node_labels = mc.multicut_kernighan_lin(rag, costs) + segmentation = feats.project_node_labels_to_pixels(rag, node_labels) + + return segmentation \ No newline at end of file diff --git a/legacy/Train_and_Inference/utils/post_waterz.py b/legacy/Train_and_Inference/utils/post_waterz.py new file mode 100644 index 0000000..439de58 --- /dev/null +++ b/legacy/Train_and_Inference/utils/post_waterz.py @@ -0,0 +1,92 @@ +import waterz +import mahotas +import numpy as np +from scipy import ndimage + +def randomlabel(segmentation): + segmentation = segmentation.astype(np.uint32) + uid = np.unique(segmentation) + mid = int(uid.max()) + 1 + mapping = np.zeros(mid, dtype=segmentation.dtype) + mapping[uid] = np.random.choice(len(uid), len(uid), replace=False).astype(segmentation.dtype)#(len(uid), dtype=segmentation.dtype) + out = mapping[segmentation] + out[segmentation==0] = 0 + return out + +def watershed(affs, seed_method, use_mahotas_watershed=True): + affs_xy = 1.0 - 0.5*(affs[1] + affs[2]) + depth = affs_xy.shape[0] + fragments = np.zeros_like(affs[0]).astype(np.uint64) + next_id = 1 + for z in range(depth): + seeds, num_seeds = get_seeds(affs_xy[z], next_id=next_id, method=seed_method) + if use_mahotas_watershed: + fragments[z] = mahotas.cwatershed(affs_xy[z], seeds) + else: + fragments[z] = ndimage.watershed_ift((255.0*affs_xy[z]).astype(np.uint8), seeds) + next_id += num_seeds + return fragments + +def get_seeds(boundary, method='grid', next_id=1, seed_distance=10): + if method == 'grid': + height = boundary.shape[0] + width = boundary.shape[1] + seed_positions = np.ogrid[0:height:seed_distance, 0:width:seed_distance] + num_seeds_y = seed_positions[0].size + num_seeds_x = seed_positions[1].size + num_seeds = num_seeds_x*num_seeds_y + seeds = np.zeros_like(boundary).astype(np.int32) + seeds[seed_positions] = np.arange(next_id, next_id + num_seeds).reshape((num_seeds_y,num_seeds_x)) + + if method == 'minima': + minima = mahotas.regmin(boundary) + seeds, num_seeds = mahotas.label(minima) + seeds += next_id + seeds[seeds==next_id] = 0 + + if method == 'maxima_distance': + distance = mahotas.distance(boundary<0.5) + maxima = mahotas.regmax(distance) + seeds, num_seeds = mahotas.label(maxima) + seeds += next_id + seeds[seeds==next_id] = 0 + + return seeds, num_seeds + +def elf_watershed(affs): + import elf.segmentation.watershed as ws + affs = 1 - affs + boundary_input = np.maximum(affs[1], affs[2]) + fragments = np.zeros_like(boundary_input, dtype='uint64') + offset = 0 + for z in range(fragments.shape[0]): + wsz, max_id = ws.distance_transform_watershed(boundary_input[z], threshold=.25, sigma_seeds=2.) + wsz += offset + offset += max_id + fragments[z] = wsz + return fragments + +def relabel(seg): + # get the unique labels + uid = np.unique(seg) + # ignore all-background samples + if len(uid)==1 and uid[0] == 0: + return seg + + uid = uid[uid > 0] + mid = int(uid.max()) + 1 # get the maximum label for the segment + + # create an array from original segment id to reduced id + m_type = seg.dtype + mapping = np.zeros(mid, dtype=m_type) + mapping[uid] = np.arange(1, len(uid) + 1, dtype=m_type) + return mapping[seg] + +def post_waterz(affs, thresd=0.5): + fragments = watershed(affs, 'maxima_distance') + sf = 'OneMinus>' + seg = list(waterz.agglomerate(affs, [0.50], + fragments=fragments, + scoring_function=sf, + discretize_queue=256))[0] + return seg diff --git a/legacy/Train_and_Inference/utils/seeds_func.py b/legacy/Train_and_Inference/utils/seeds_func.py new file mode 100644 index 0000000..edfe4d7 --- /dev/null +++ b/legacy/Train_and_Inference/utils/seeds_func.py @@ -0,0 +1,443 @@ +import os +import numpy as np +import h5py +from scipy import ndimage +import cv2 +import mahotas +import matplotlib +matplotlib.use("agg") +import matplotlib.pyplot as plt + +# generate affinity +def seg_to_affgraph(seg, nhood=np.array([[-1, 0, 0], [0, -1, 0], [0, 0, -1]])): + # constructs an affinity graph from a segmentation + # assume affinity graph is represented as: + # shape = (e, z, y, x) + # nhood.shape = (edges, 3) + shape = seg.shape + nEdge = nhood.shape[0] + aff = np.zeros((nEdge,)+shape,dtype=np.int32) + + for e in range(nEdge): + aff[e, \ + max(0,-nhood[e,0]):min(shape[0],shape[0]-nhood[e,0]), \ + max(0,-nhood[e,1]):min(shape[1],shape[1]-nhood[e,1]), \ + max(0,-nhood[e,2]):min(shape[2],shape[2]-nhood[e,2])] = \ + (seg[max(0,-nhood[e,0]):min(shape[0],shape[0]-nhood[e,0]), \ + max(0,-nhood[e,1]):min(shape[1],shape[1]-nhood[e,1]), \ + max(0,-nhood[e,2]):min(shape[2],shape[2]-nhood[e,2])] == \ + seg[max(0,nhood[e,0]):min(shape[0],shape[0]+nhood[e,0]), \ + max(0,nhood[e,1]):min(shape[1],shape[1]+nhood[e,1]), \ + max(0,nhood[e,2]):min(shape[2],shape[2]+nhood[e,2])] ) \ + * ( seg[max(0,-nhood[e,0]):min(shape[0],shape[0]-nhood[e,0]), \ + max(0,-nhood[e,1]):min(shape[1],shape[1]-nhood[e,1]), \ + max(0,-nhood[e,2]):min(shape[2],shape[2]-nhood[e,2])] > 0 ) \ + * ( seg[max(0,nhood[e,0]):min(shape[0],shape[0]+nhood[e,0]), \ + max(0,nhood[e,1]):min(shape[1],shape[1]+nhood[e,1]), \ + max(0,nhood[e,2]):min(shape[2],shape[2]+nhood[e,2])] > 0 ) + + return aff + + + +# generate seeds +def gen_seeds(labels, affs_xy, min_size=10): + # remove some neurons whose size is smaller than min_size + ids, count = np.unique(labels, return_counts=True) + for i, icount in enumerate(count): + if icount < min_size: + labels[labels == ids[i]] = 0 + + boundary = np.ones_like(affs_xy) + boundary[1:-1, 1:-1] = affs_xy[1:-1, 1:-1] + boundary[boundary != 0] = 1 + + distance = mahotas.distance(boundary<0.5) + seeds = np.zeros_like(labels) + ite = 1 + for label in np.unique(labels): + if label == 0: + continue + label_mask = labels == label + label_mask = label_mask.astype(np.int) + temp_dis = np.multiply(distance, label_mask) + max_where = np.where(temp_dis == np.max(temp_dis)) + seeds[max_where[0][0], max_where[1][0]] = ite + ite += 1 + return seeds, boundary + + +def gen_seeds_2(labels, affs_xy, min_size=10): + # remove some neurons whose size is smaller than min_size + ids, count = np.unique(labels, return_counts=True) + for i, icount in enumerate(count): + if icount < min_size: + labels[labels == ids[i]] = 0 + + boundary = np.ones_like(affs_xy) + boundary[1:-1, 1:-1] = affs_xy[1:-1, 1:-1] + boundary[boundary != 0] = 1 + + distance = mahotas.distance(boundary<0.5) + seeds = np.zeros_like(labels) + # ite = 1 + for label in np.unique(labels): + if label == 0: + continue + label_mask = labels == label + label_mask = label_mask.astype(np.int) + temp_dis = np.multiply(distance, label_mask) + max_where = np.where(temp_dis == np.max(temp_dis)) + seeds[max_where[0][0], max_where[1][0]] = label + # ite += 1 + return seeds + + +# erosion labels +def erosion_labels(gt, steps=1): + self_background = 0 + foreground = np.zeros(shape=gt.shape, dtype=np.bool) + for label in np.unique(gt): + if label == self_background: + continue + label_mask = gt==label + # Assume that masked out values are the same as the label we are + # eroding in this iteration. This ensures that at the boundary to + # a masked region the value blob is not shrinking. + eroded_label_mask = ndimage.binary_erosion(label_mask, iterations=steps, border_value=1) + foreground = np.logical_or(eroded_label_mask, foreground) + background = np.logical_not(foreground) + gt[background] = self_background + return gt + + +# draw fragments +def draw_fragments(picture, raw=None, alpha=0.3): + m,n = picture.shape + ids = np.unique(picture) + size = len(ids) + print("The number of nuerons is %d" % size) + color = np.zeros([m, n, 3]) + idx = np.searchsorted(ids, picture) + for i in range(3): + color_val = np.random.randint(0, 255, ids.shape) + if ids[0] == 0: + color_val[0] = 0 + color[:,:,i] = color_val[idx] + color = color / 255 + if raw is not None: + plt.figure() + plt.subplots(figsize=(10,10)) + plt.imshow(raw) + plt.imshow(color, alpha=alpha) + plt.axis('off') + plt.show() + else: + plt.figure() + plt.subplots(figsize=(10,10)) + plt.imshow(color) + plt.axis('off') + plt.show() + + +# thresdholding +def binary_thresholding(img, t=0.5): + if np.max(img) > 1.0: + img = img / 255.0 + img[img >= t] = 1 + img[img < t] = 0 + return img + + +# draw seeds +def draw_seeds(raw, seeds): + plt.figure(figsize=(10,10)) + plt.imshow(raw, cmap='gray') + seeds_listx, seeds_listy = np.where(seeds != 0) + plt.scatter(seeds_listy, seeds_listx, c='r') + plt.axis('off') + plt.show() + + +def draw_seeds_v2(raw, seeds): + plt.figure(figsize=(10,10)) + plt.imshow(raw, cmap='gray') + seeds_listx = seeds[:, 0].astype(np.int) + seeds_listy = seeds[:, 1].astype(np.int) + plt.scatter(seeds_listy, seeds_listx, c='r') + plt.axis('off') + plt.show() + + +def draw_box(img, box): + img_box = img.copy() + if len(img_box.shape) == 2: + img_box = img_box[:,:,np.newaxis] + img_box = np.concatenate([img_box, img_box, img_box], axis=2) + for i in range(1, box.shape[0]): + position = box[i] + x1 = position[0] + y1 = position[1] + x2 = x1 + position[2] + y2 = y1 + position[3] + img_box = cv2.rectangle(img_box, (int(x1), int(y1)), (int(x2), int(y2)), (255, 0, 0), 2) + plt.figure(figsize=(10,10)) + plt.imshow(img_box) + plt.axis('off') + plt.show() + + +# draw affinity +def draw_general(img): + plt.figure(figsize=(10,10)) + plt.imshow(img, cmap='gray') + plt.axis('off') + plt.show() + + +def make_summary_plot(it, raw, output, net_output, seeds, target): + """ + This function create and save a summary figure + """ + f, axarr = plt.subplots(2, 2, figsize=(8, 9.5)) + f.suptitle("RW summary, Iteration: " + repr(it)) + + axarr[0, 0].set_title("Ground Truth Image") + axarr[0, 0].imshow(raw[0].detach().numpy(), cmap="gray") + axarr[0, 0].imshow(target[0, 0].detach().numpy(), alpha=0.6, vmin=-3, cmap="prism_r") + seeds_listx, seeds_listy = np.where(seeds[0].data != 0) + axarr[0, 0].scatter(seeds_listy, + seeds_listx, c="r") + axarr[0, 0].axis("off") + + axarr[0, 1].set_title("LRW output (white seed)") + axarr[0, 1].imshow(raw[0].detach().numpy(), cmap="gray") + axarr[0, 1].imshow(np.argmax(output[0][0].detach().numpy(), 0), alpha=0.6, vmin=-3, cmap="prism_r") + axarr[0, 1].axis("off") + + axarr[1, 0].set_title("Vertical Diffusivities") + axarr[1, 0].imshow(net_output[0, 0].detach().numpy(), cmap="gray") + axarr[1, 0].axis("off") + + axarr[1, 1].set_title("Horizontal Diffusivities") + axarr[1, 1].imshow(net_output[0, 1].detach().numpy(), cmap="gray") + axarr[1, 1].axis("off") + + plt.tight_layout() + plt.savefig("./results/%04i.png"%it) + plt.close() + + +def draw_fragments_seeds(out_path, k, pred, pred_seed, gt, gt_seed, f_txt, raw=None, alpha=0.8): + m,n = pred.shape + ids = np.unique(pred) + size = len(ids) + print("k = %d, the neurons number of pred is %d" % (k, size)) + f_txt.write("k = %d, the neurons number of pred is %d" % (k, size)) + f_txt.write('\n') + color_pred = np.zeros([m, n, 3]) + idx = np.searchsorted(ids, pred) + for i in range(3): + color_val = np.random.randint(0, 255, ids.shape) + if ids[0] == 0: + color_val[0] = 0 + color_pred[:,:,i] = color_val[idx] + color_pred = color_pred / 255 + if pred_seed is not None: + pred_seeds_listx, pred_seeds_listy = np.where(pred_seed != 0) + + ids = np.unique(gt) + size = len(ids) + print("k = %d, the neurons number of gt is %d" % (k, size)) + f_txt.write("k = %d, the neurons number of gt is %d" % (k, size)) + f_txt.write('\n') + color_gt= np.zeros([m, n, 3]) + idx = np.searchsorted(ids, gt) + for i in range(3): + color_val = np.random.randint(0, 255, ids.shape) + if ids[0] == 0: + color_val[0] = 0 + color_gt[:,:,i] = color_val[idx] + color_gt = color_gt / 255 + if gt_seed is not None: + gt_seeds_listx, gt_seeds_listy = np.where(gt_seed != 0) + + if raw is not None: + plt.figure(figsize=(20,20),dpi=100) + plt.subplot(121) + plt.imshow(raw) + plt.imshow(color_pred, alpha=alpha) + if pred_seed is not None: + plt.scatter(pred_seeds_listy, pred_seeds_listx, c='k', marker='.') + plt.axis('off') + plt.subplot(122) + plt.imshow(raw) + plt.imshow(color_gt, alpha=alpha) + if gt_seed is not None: + plt.scatter(gt_seeds_listy, gt_seeds_listx, c='k', marker='.') + plt.axis('off') + # plt.show() + plt.savefig(os.path.join(out_path, str(k).zfill(4)+'.png'), bbox_inches = 'tight') + else: + plt.figure(figsize=(20,20),dpi=100) + plt.subplot(121) + plt.imshow(color_pred) + if pred_seed is not None: + plt.scatter(pred_seeds_listy, pred_seeds_listx, c='b') + plt.axis('off') + plt.subplot(122) + plt.imshow(color_gt) + if gt_seed is not None: + plt.scatter(gt_seeds_listy, gt_seeds_listx, c='b') + plt.axis('off') + # plt.show() + plt.savefig(os.path.join(out_path, str(k).zfill(4)+'.png'), bbox_inches = 'tight') + plt.close('all') + + +def draw_fragments_noseeds(out_path, k, pred, gt=None, raw=None, alpha=0.8): + m,n = pred.shape + ids = np.unique(pred) + size = len(ids) + print("k = %d, the neurons number of pred is %d" % (k, size)) + color_pred = np.zeros([m, n, 3]) + idx = np.searchsorted(ids, pred) + for i in range(3): + color_val = np.random.randint(0, 255, ids.shape) + if ids[0] == 0: + color_val[0] = 0 + color_pred[:,:,i] = color_val[idx] + color_pred = color_pred / 255 + + if gt is not None: + ids = np.unique(gt) + size = len(ids) + print("k = %d, the neurons number of gt is %d" % (k, size)) + color_gt= np.zeros([m, n, 3]) + idx = np.searchsorted(ids, gt) + for i in range(3): + color_val = np.random.randint(0, 255, ids.shape) + if ids[0] == 0: + color_val[0] = 0 + color_gt[:,:,i] = color_val[idx] + color_gt = color_gt / 255 + + if gt is not None: + if raw is not None: + plt.figure(figsize=(20,20),dpi=100) + plt.subplot(121) + plt.imshow(raw) + plt.imshow(color_pred, alpha=alpha) + plt.axis('off') + plt.subplot(122) + plt.imshow(raw) + plt.imshow(color_gt, alpha=alpha) + plt.axis('off') + else: + plt.figure(figsize=(20,20),dpi=100) + plt.subplot(121) + plt.imshow(color_pred) + plt.axis('off') + plt.subplot(122) + plt.imshow(color_gt) + plt.axis('off') + else: + if raw is not None: + plt.figure(figsize=(20,20),dpi=100) + plt.imshow(raw) + plt.imshow(color_pred, alpha=alpha) + plt.axis('off') + else: + plt.figure(figsize=(20,20),dpi=100) + plt.imshow(color_pred) + plt.axis('off') + plt.savefig(os.path.join(out_path, str(k).zfill(4)+'.png'), bbox_inches = 'tight') + plt.close('all') + + +def draw_fragments_3d(out_path, pred, gt=None, raw=None, alpha=0.8): + d,m,n = pred.shape + ids = np.unique(pred) + size = len(ids) + print("the neurons number of pred is %d" % size) + color_pred = np.zeros([d, m, n, 3]) + idx = np.searchsorted(ids, pred) + for i in range(3): + color_val = np.random.randint(0, 255, ids.shape) + if ids[0] == 0: + color_val[0] = 0 + color_pred[:,:,:,i] = color_val[idx] + color_pred = color_pred / 255 + + if gt is not None: + ids = np.unique(gt) + size = len(ids) + print("the neurons number of gt is %d" % size) + color_gt= np.zeros([d, m, n, 3]) + idx = np.searchsorted(ids, gt) + for i in range(3): + color_val = np.random.randint(0, 255, ids.shape) + if ids[0] == 0: + color_val[0] = 0 + color_gt[:,:,:,i] = color_val[idx] + color_gt = color_gt / 255 + + if gt is not None: + if raw is not None: + for k in range(d): + plt.figure(figsize=(20,20),dpi=100) + plt.subplot(121) + plt.imshow(raw[k]) + plt.imshow(color_pred[k], alpha=alpha) + plt.axis('off') + plt.subplot(122) + plt.imshow(raw[k]) + plt.imshow(color_gt[k], alpha=alpha) + plt.axis('off') + plt.savefig(os.path.join(out_path, str(k).zfill(4)+'.png'), bbox_inches = 'tight') + plt.close('all') + else: + for k in range(d): + plt.figure(figsize=(20,20),dpi=100) + plt.subplot(121) + plt.imshow(color_pred[k]) + plt.axis('off') + plt.subplot(122) + plt.imshow(color_gt[k]) + plt.axis('off') + plt.savefig(os.path.join(out_path, str(k).zfill(4)+'.png'), bbox_inches = 'tight') + plt.close('all') + else: + if raw is not None: + for k in range(d): + plt.figure(figsize=(20,20),dpi=100) + plt.imshow(raw[k]) + plt.imshow(color_pred[k], alpha=alpha) + plt.axis('off') + plt.savefig(os.path.join(out_path, str(k).zfill(4)+'.png'), bbox_inches = 'tight') + plt.close('all') + else: + for k in range(d): + plt.figure(figsize=(20,20),dpi=100) + plt.imshow(color_pred[k]) + plt.axis('off') + plt.savefig(os.path.join(out_path, str(k).zfill(4)+'.png'), bbox_inches = 'tight') + plt.close('all') + + +if __name__ == "__main__": + in_path1 = '../data/snemi3d/AC4_inputs.h5' + in_path2 = '../data/snemi3d/AC4_labels.h5' + f = h5py.File(in_path1, 'r') + raw = f['main'][:] + f.close() + + f = h5py.File(in_path2, 'r') + labels = f['main'][:] + f.close() + + out_path = '../data/snemi3d/AC4' + if not os.path.exists(out_path): + os.mkdir(out_path) + + draw_fragments_3d(out_path, labels, None, raw) \ No newline at end of file diff --git a/legacy/Train_and_Inference/utils/seg_util.py b/legacy/Train_and_Inference/utils/seg_util.py new file mode 100644 index 0000000..3797c77 --- /dev/null +++ b/legacy/Train_and_Inference/utils/seg_util.py @@ -0,0 +1,194 @@ +import numpy as np +from scipy.sparse import coo_matrix +from scipy.ndimage.morphology import binary_erosion,binary_dilation + +# reduce the labeling +def relabel(segmentation): + # get the unique labels + uid = np.unique(segmentation) + # get the maximum label for the segment + mid = int(uid.max()) + 1 + + # create an array from original segment id to reduced id + mapping = np.zeros(mid, dtype=segmentation.dtype) + mapping[uid] = np.arange(len(uid), dtype=segmentation.dtype) + return mapping[segmentation] + +def remove_small(seg, thres=100): + sz = seg.shape + seg = seg.reshape(-1) + uid, uc = np.unique(seg, return_counts=True) + seg[np.in1d(seg,uid[uc0) + #stel=np.array([[1, 1],[1,1]]).astype(bool) + stel=np.array([[1,1,1], [1,1,1], [1,1,1]]).astype(bool) + #stel=np.array([[1,1,1,1],[1, 1, 1, 1],[1,1,1,1],[1,1,1,1]]).astype(bool) + gg3gd=np.zeros(gg3g.shape) + for i in range(gg3g.shape[0]): + gg3gd[i,:,:]=binary_dilation(gg3g[i,:,:],structure=stel,iterations=iter_num) + out = gg3.copy() + out[gg3gd==1]=0 + return out + +def markInvalid(seg, iter_num=2, do_2d=True): + # find invalid + # if do erosion(seg==0), then miss the border + if do_2d: + stel=np.array([[1,1,1], [1,1,1]]).astype(bool) + if len(seg.shape)==2: + out = binary_dilation(seg>0, structure=stel, iterations=iter_num) + seg[out==0] = -1 + else: # save memory + for z in range(seg.shape[0]): + tmp = seg[z] # by reference + out = binary_dilation(tmp>0, structure=stel, iterations=iter_num) + tmp[out==0] = -1 + else: + stel=np.array([[1,1,1], [1,1,1], [1,1,1]]).astype(bool) + out = binary_dilation(seg>0, structure=stel, iterations=iter_num) + seg[out==0] = -1 + return seg diff --git a/legacy/Train_and_Inference/utils/show.py b/legacy/Train_and_Inference/utils/show.py new file mode 100644 index 0000000..1f2103d --- /dev/null +++ b/legacy/Train_and_Inference/utils/show.py @@ -0,0 +1,273 @@ +import os +import math +import numpy as np +from PIL import Image + +def show(img3d): + # only used for image with shape [18, 160, 160, 3] + num = img3d.shape[0] + column = 5 + row = math.ceil(num / float(column)) + size = img3d.shape[1] + img_all = np.zeros((size*row, size*column, 3), dtype=np.uint8) + for i in range(row): + for j in range(column): + index = i*column + j + if index >= num: + img = np.zeros_like(img3d[0], dtype=np.uint8) + else: + if np.max(img3d[index]) > 1: + img = (img3d[index]).astype(np.uint8) + else: + img = (img3d[index] * 255).astype(np.uint8) + img_all[i*size:(i+1)*size, j*size:(j+1)*size] = img + return img_all + +def show_one(img3d): + # only used for image with shape [18, 160, 160] + num = img3d.shape[0] + column = 5 + row = math.ceil(num / float(column)) + size = img3d.shape[1] + img_all = np.zeros((size*row, size*column), dtype=np.uint8) + for i in range(row): + for j in range(column): + index = i*column + j + if index >= num: + img = np.zeros_like(img3d[0], dtype=np.uint8) + else: + img = (img3d[index] * 255).astype(np.uint8) + img_all[i*size:(i+1)*size, j*size:(j+1)*size] = img + return img_all + + +def show_one_(img3d): + num = img3d.shape[0] + column = 5 + row = math.ceil(num / float(column)) + size = img3d.shape[1] + img_all = np.zeros((size*row, size*column), dtype=np.uint8) + for i in range(row): + for j in range(column): + index = i*column + j + if index >= num: + img = np.zeros_like(img3d[0], dtype=np.uint8) + else: + img = (img3d[index]).astype(np.uint8) + img_all[i*size:(i+1)*size, j*size:(j+1)*size] = img + return img_all + +def show_CE(img3d): + # only used for image with shape [18, 160, 160] + num = img3d.shape[0] + column = 5 + row = math.ceil(num / float(column)) + size = img3d.shape[1] + img_all = np.zeros((size*row, size*column), dtype=np.uint8) + for i in range(row): + for j in range(column): + index = i*column + j + if index >= num: + img = np.zeros_like(img3d[0], dtype=np.uint8) + else: + img = (img3d[index]).astype(np.uint8) + img_all[i*size:(i+1)*size, j*size:(j+1)*size] = img + return img_all + +def training_show(iters, inputs, label, pred_bound, cache_path, if_skele=None, skele=None, pred_skele=None): + img_input = np.repeat(inputs[0].data.cpu().numpy(), 3, 0) + img_input = np.transpose(img_input, (1,2,3,0)) + img_input = show(img_input) + input_placehplder = np.zeros_like(img_input, dtype=np.uint8) + im_cat1 = np.concatenate([img_input, input_placehplder], axis=1) + + img_label = label[0][0:3].data.cpu().numpy() + img_label = np.transpose(img_label, (1,2,3,0)) + img_label = show(img_label) + + img_pred_bound = pred_bound[0][0:3].data.cpu().numpy() + img_pred_bound = np.transpose(img_pred_bound, (1,2,3,0)) + img_pred_bound = show(img_pred_bound) + im_cat2 = np.concatenate([img_pred_bound, img_label], axis=1) + + if if_skele is not None: + img_skele = np.repeat(skele[0, 0:1].data.cpu().numpy(), 3, 0) + img_skele = np.transpose(img_skele, (1,2,3,0)) + img_skele = show(img_skele) + + img_pred_skele = np.repeat(pred_skele[0, 0:1].data.cpu().numpy(), 3, 0) + img_pred_skele = np.transpose(img_pred_skele, (1,2,3,0)) + img_pred_skele = show(img_pred_skele) + im_cat3 = np.concatenate([img_pred_skele, img_skele], axis=1) + + im_cat = np.concatenate([im_cat1, im_cat2, im_cat3], axis=0) + else: + im_cat = np.concatenate([im_cat1, im_cat2], axis=0) + Image.fromarray(im_cat).save(os.path.join(cache_path, '%06d.png' % iters)) + +def training_show_pretrain(iters, pred, label, cache_path, loss_mode='CrossEntropy'): + img_input = pred[0].data.cpu().numpy() + if loss_mode == 'CrossEntropy': + img_input = show_CE(img_input) + else: + img_input[img_input < 0] = 0 + img_input[img_input > 1] = 1 + img_input = show_one(img_input) + img_label = label[0].data.cpu().numpy() + img_label = show_one(img_label) + im_cat = np.concatenate([img_input, img_label], axis=1) + Image.fromarray(im_cat).save(os.path.join(cache_path, '%06d.png' % iters)) + + +def show_inpaining(iters, pred, label, mask, cache_path): + pred = pred[0].data.cpu().numpy() + label = label[0].data.cpu().numpy() + mask = mask[0].data.cpu().numpy() + inputs = label * mask + inputs = np.squeeze(inputs) + pred = np.squeeze(pred) + inputs = inputs[14:-14, 106:-106, 106:-106] + pred[pred < 0] = 0; pred[pred > 1] =1 + pred_img = show_one(pred) + inputs_img = show_one(inputs) + im_cat = np.concatenate([inputs_img, pred_img], axis=1) + Image.fromarray(im_cat).save(os.path.join(cache_path, '%06d.png' % iters)) + + +def show_affs(iters, inputs, pred, target, cache_path, model_type='mala'): + pred = pred[0].data.cpu().numpy() + inputs = inputs[0].data.cpu().numpy() + target = target[0].data.cpu().numpy() + inputs = np.squeeze(inputs) + if model_type == 'mala': + inputs = inputs[14:-14, 106:-106, 106:-106] + inputs = inputs[:,:,:,np.newaxis] + inputs = np.repeat(inputs, 3, 3) + pred = np.transpose(pred, (1,2,3,0)) + target = np.transpose(target, (1,2,3,0)) + inputs[inputs<0]=0; inputs[inputs>1]=1 + pred[pred<0]=0; pred[pred>1]=1 + target[target<0]=0; target[target>1]=1 + inputs_img = show(inputs) + pred_img = show(pred) + target_img = show(target) + im_cat = np.concatenate([inputs_img, pred_img, target_img], axis=1) + Image.fromarray(im_cat).save(os.path.join(cache_path, '%06d.png' % iters)) + +def show_bound(iters, inputs, pred, target, cache_path, model_type='mala'): + pred = pred[0].data.cpu().numpy() + inputs = inputs[0].data.cpu().numpy() + target = target[0].data.cpu().numpy() + + inputs = np.squeeze(inputs) + inputs = inputs[:,:,:,np.newaxis] + inputs = np.repeat(inputs, 3, 3) + + pred = np.squeeze(pred) + pred = pred[:,:,:,np.newaxis] + pred = np.repeat(pred, 3, 3) + + target = np.squeeze(target) + target = target[:,:,:,np.newaxis] + target = np.repeat(target, 3, 3) + + inputs[inputs<0]=0; inputs[inputs>1]=1 + pred[pred<0]=0; pred[pred>1]=1 + target[target<0]=0; target[target>1]=1 + inputs_img = show(inputs) + pred_img = show(pred) + target_img = show(target) + im_cat = np.concatenate([inputs_img, pred_img, target_img], axis=1) + Image.fromarray(im_cat).save(os.path.join(cache_path, '%06d.png' % iters)) + +def class_color(lb): + d, h, w = lb.shape + lb_color1 = np.zeros((d, h, w), dtype=np.uint8) + lb_color2 = np.zeros((d, h, w), dtype=np.uint8) + lb_color3 = np.zeros((d, h, w), dtype=np.uint8) + ids_0 = lb == 0 + ids_1 = lb == 1 + lb_color1[ids_0] = 0; lb_color2[ids_0] = 0; lb_color3[ids_0] = 255 + lb_color1[ids_1] = 0; lb_color2[ids_1] = 255; lb_color3[ids_1] = 0 + lb_color = np.concatenate([lb_color1[:,:,:,np.newaxis], lb_color2[:,:,:,np.newaxis], lb_color3[:,:,:,np.newaxis]], axis=3) + return lb_color + + +def show_affs_pseudo(iters, inputs, pred, target, mask, cache_path, model_type='mala'): + pred = pred[0].data.cpu().numpy() + inputs = inputs[0].data.cpu().numpy() + target = target[0].data.cpu().numpy() + mask = mask[0].data.cpu().numpy() + inputs = np.squeeze(inputs) + if model_type == 'mala': + inputs = inputs[14:-14, 106:-106, 106:-106] + inputs = inputs[:,:,:,np.newaxis] + inputs = np.repeat(inputs, 3, 3) + pred = np.transpose(pred, (1,2,3,0)) + target = np.transpose(target, (1,2,3,0)) + affs_z = class_color(target[:, :, :, 0]) * mask[0][:,:,:,np.newaxis] + affs_y = class_color(target[:, :, :, 1]) * mask[1][:,:,:,np.newaxis] + affs_x = class_color(target[:, :, :, 2]) * mask[2][:,:,:,np.newaxis] + inputs_img = show(inputs) + pred_img = show(pred) + # target_img = show(target) + mask = np.transpose(mask, (1,2,3,0)) + mask_img = show(mask) + affs_z_img = show(affs_z) + affs_y_img = show(affs_y) + affs_x_img = show(affs_x) + # im_cat = np.concatenate([inputs_img, pred_img, target_img], axis=1) + im_cat1 = np.concatenate([inputs_img, pred_img], axis=1) + im_cat2 = np.concatenate([mask_img, affs_z_img], axis=1) + im_cat3 = np.concatenate([affs_y_img, affs_x_img], axis=1) + im_cat = np.concatenate([im_cat1, im_cat2, im_cat3], axis=0) + Image.fromarray(im_cat).save(os.path.join(cache_path, '%06d.png' % iters)) + +def show_affs_whole(iters, out_affs, gt_affs, cache_path, index): + out_affs = out_affs[:, -1, ...] + gt_affs = gt_affs[:, -1, ...] + out_affs = (out_affs * 255).astype(np.uint8) + out_affs = np.transpose(out_affs, (1,2,0)) + gt_affs = (gt_affs * 255).astype(np.uint8) + gt_affs = np.transpose(gt_affs, (1,2,0)) + im_cat = np.concatenate([out_affs, gt_affs], axis=1) + Image.fromarray(im_cat).save(os.path.join(cache_path, '%06d_%d.png' % (iters,index))) + +def show_bound_whole(iters, out_affs, gt_affs, cache_path, index): + out_affs = out_affs.squeeze()[0] + out_affs = (out_affs * 255).astype(np.uint8) + gt_affs = gt_affs.squeeze()[0] + gt_affs = (gt_affs * 255).astype(np.uint8) + im_cat = np.concatenate([out_affs, gt_affs], axis=1) + Image.fromarray(im_cat).save(os.path.join(cache_path, '%06d_%d.png' % (iters,index))) + +def show_affs_consistency(iters, inputs, pred, target, inputs_u, out_u1, out_u2, cache_path): + pred = pred[0].data.cpu().numpy() + inputs = inputs[0].data.cpu().numpy() + target = target[0].data.cpu().numpy() + inputs = np.squeeze(inputs) + inputs = inputs[14:-14, 106:-106, 106:-106] + inputs = inputs[:,:,:,np.newaxis] + inputs = np.repeat(inputs, 3, 3) + pred = np.transpose(pred, (1,2,3,0)) + target = np.transpose(target, (1,2,3,0)) + inputs_img = show(inputs) + pred_img = show(pred) + target_img = show(target) + im_cat1 = np.concatenate([inputs_img, pred_img, target_img], axis=1) + + out_u1 = out_u1[0].data.cpu().numpy() + inputs_u = inputs_u[0].data.cpu().numpy() + out_u2 = out_u2[0].data.cpu().numpy() + inputs_u = np.squeeze(inputs_u) + inputs_u = inputs_u[14:-14, 106:-106, 106:-106] + inputs_u = inputs_u[:,:,:,np.newaxis] + inputs_u = np.repeat(inputs_u, 3, 3) + out_u1 = np.transpose(out_u1, (1,2,3,0)) + out_u2 = np.transpose(out_u2, (1,2,3,0)) + inputs_u_img = show(inputs_u) + out_u1_img = show(out_u1) + out_u2_img = show(out_u2) + im_cat2 = np.concatenate([inputs_u_img, out_u1_img, out_u2_img], axis=1) + im_cat = np.concatenate([im_cat1, im_cat2], axis=0) + Image.fromarray(im_cat).save(os.path.join(cache_path, '%06d.png' % iters)) \ No newline at end of file diff --git a/legacy/Train_and_Inference/utils/torch_utils.py b/legacy/Train_and_Inference/utils/torch_utils.py new file mode 100644 index 0000000..b56b616 --- /dev/null +++ b/legacy/Train_and_Inference/utils/torch_utils.py @@ -0,0 +1,17 @@ +from distutils.version import LooseVersion, StrictVersion +import torch + +# align_corners option available for v1.3.0 and above +HAS_AFFINE_ALIGN_CORNERS = LooseVersion(torch.__version__) >= LooseVersion('1.3.0') +# align_corners defaults to True before v1.4.0, False from v1.4.0 and after +AFFINE_ALIGN_CORNERS_DEFAULT = LooseVersion(torch.__version__) <= LooseVersion('1.3.0') + + +def affine_align_corners_kw(val): + if HAS_AFFINE_ALIGN_CORNERS: + return dict(align_corners=val) + else: + if not val: + raise RuntimeError('align_corners not available in torch version {} so ' + 'cannot set to False'.format(torch.__version__)) + return {} diff --git a/legacy/Train_and_Inference/utils/utils.py b/legacy/Train_and_Inference/utils/utils.py new file mode 100644 index 0000000..6fc3be1 --- /dev/null +++ b/legacy/Train_and_Inference/utils/utils.py @@ -0,0 +1,57 @@ +import torch +import random +import numpy as np +import subprocess + +def setup_seed(seed): + torch.manual_seed(seed) + # torch.cuda.manual_seed(seed) + torch.cuda.manual_seed_all(seed) + np.random.seed(seed) + random.seed(seed) + torch.backends.cudnn.deterministic = True + +def execute(cmd): + popen = subprocess.Popen(cmd, stdout=subprocess.PIPE, universal_newlines=True) + for stdout_line in iter(popen.stdout.readline, ""): + yield stdout_line + popen.stdout.close() + return_code = popen.wait() + if return_code: + raise subprocess.CalledProcessError(return_code, cmd) + +def compute_num_single(size, stride): + # 计算大概需要滑窗的个数 + num_window = size // stride + # 判断是否能整除,如果不可以就+1 + # 即滑窗个数加1 + if size % stride != 0: + num_window += 1 + # 计算padding的大小 + padding_2times = num_window * stride - size + (stride * 2) + # 如果padding的大小不能被2整除 + # 就继续增加滑窗的个数,已使得padding_2times能被2整除 + while padding_2times % 2 != 0: + num_window += 1 + padding_2times = num_window * stride - size + (stride * 2) + # 除以2是为了对称padding + padding = padding_2times // 2 + # 加1是为了补上最后一个完整的滑窗 + num_window += 1 + return num_window, padding + +def compute_num(raw_shape, stride): + size_z = raw_shape[0] + size_xy = raw_shape[1] + stride_z = stride[0] + stride_xy = stride[1] + num_z, padding_z = compute_num_single(size_z, stride_z) + num_xy, padding_xy = compute_num_single(size_xy, stride_xy) + return [num_z, num_xy, num_xy], [padding_z, padding_xy, padding_xy] + +if __name__ == "__main__": + raw = [500, 4096, 4096] + stride = [18, 128, 128] + num, padding = compute_num(raw, stride) + print(num) + print(padding) diff --git a/legacy/requirements.txt b/legacy/requirements.txt new file mode 100644 index 0000000..98c7bf8 --- /dev/null +++ b/legacy/requirements.txt @@ -0,0 +1,248 @@ +addict==2.4.0 +asttokens==2.2.1 +atomicwrites==1.4.1 +attrdict==2.0.1 +attrs==23.1.0 +backcall==0.2.0 +blinker==1.6.2 +boto3==1.26.118 +botocore==1.29.118 +Brotli==1.0.9 +cached-property @ file:///home/conda/feedstock_root/build_artifacts/cached_property_1615209429212/work +cachetools==5.3.0 +certifi==2023.5.7 +cffi==1.15.1 +chardet==5.1.0 +charset-normalizer @ file:///home/conda/feedstock_root/build_artifacts/charset-normalizer_1678108872112/work +click @ file:///home/conda/feedstock_root/build_artifacts/click_1666798198223/work +cloud-files==4.15.1 +cloud-volume==8.19.3 +cloudpickle @ file:///home/conda/feedstock_root/build_artifacts/cloudpickle_1674202310934/work +cmake==3.26.3 +colorama @ file:///home/conda/feedstock_root/build_artifacts/colorama_1666700638685/work +coloredlogs==15.0.1 +colorlog==6.7.0 +comm==0.1.3 +compressed-segmentation==2.2.0 +compresso==3.2.0 +ConfigArgParse==1.5.3 +connected-components-3d==3.10.5 +contourpy @ file:///home/conda/feedstock_root/build_artifacts/contourpy_1686733808435/work +crackle-codec==0.6.1 +crc32c==2.3.post0 +cryptography==40.0.2 +cycler @ file:///home/conda/feedstock_root/build_artifacts/cycler_1635519461629/work +Cython==0.29.34 +cytoolz @ file:///home/conda/feedstock_root/build_artifacts/cytoolz_1666829688252/work +dash==2.9.3 +dash-core-components==2.0.0 +dash-html-components==2.0.0 +dash-table==5.0.0 +dask @ file:///home/conda/feedstock_root/build_artifacts/dask-core_1687813538832/work +debugpy==1.6.7 +decorator==5.1.1 +deflate==0.3.0 +dijkstra3d==1.12.0 +dill==0.3.6 +DracoPy==1.0.1 +edt==2.3.0 +einops==0.8.0 +elf @ file:///home/conda/feedstock_root/build_artifacts/python-elf_1684541229700/work +et-xmlfile @ file:///home/conda/feedstock_root/build_artifacts/et_xmlfile_1674664118162/work +exceptiongroup==1.1.1 +executing==1.2.0 +fasteners==0.18 +fastjsonschema==2.16.3 +fastremap==1.13.4 +filelock==3.12.0 +fill-voids==2.0.3 +Flask==2.3.2 +flatbuffers==23.3.3 +fonttools @ file:///home/conda/feedstock_root/build_artifacts/fonttools_1686578436974/work +fpzip==1.2.0 +fsspec @ file:///home/conda/feedstock_root/build_artifacts/fsspec_1686342280219/work +gevent==22.10.2 +google-api-core==2.11.0 +google-apitools==0.5.32 +google-auth==2.17.3 +google-cloud-appengine-logging==1.3.0 +google-cloud-audit-log==0.2.5 +google-cloud-core==2.3.2 +google-cloud-logging==3.5.0 +google-cloud-storage==2.8.0 +google-crc32c==1.5.0 +google-resumable-media==2.4.1 +googleapis-common-protos==1.59.0 +greenlet==2.0.2 +grpc-google-iam-v1==0.12.6 +grpcio==1.54.0 +grpcio-status==1.54.0 +h5py @ file:///home/conda/feedstock_root/build_artifacts/h5py_1687263083757/work +httplib2==0.22.0 +huggingface-hub==0.23.4 +humanfriendly==10.0 +idna @ file:///home/conda/feedstock_root/build_artifacts/idna_1663625384323/work +igneous-pipeline==3.0.0 +imagecodecs @ file:///home/conda/feedstock_root/build_artifacts/imagecodecs_1679699549914/work +imageio @ file:///home/conda/feedstock_root/build_artifacts/imageio_1686552404404/work +importlib-metadata @ file:///home/conda/feedstock_root/build_artifacts/importlib-metadata_1687138353019/work +importlib-resources @ file:///home/conda/feedstock_root/build_artifacts/importlib_resources_1676919000169/work +inflection==0.5.1 +iniconfig==2.0.0 +ipykernel==6.22.0 +ipython==8.13.1 +ipywidgets==8.0.6 +itsdangerous==2.1.2 +jedi==0.18.2 +Jinja2==3.1.2 +jmespath==1.0.1 +joblib @ file:///home/conda/feedstock_root/build_artifacts/joblib_1663332044897/work +json5==0.9.11 +jsonschema==4.17.3 +jupyter_client==8.2.0 +jupyter_core==5.3.0 +jupyterlab-widgets==3.0.7 +kimimaro==3.3.0 +kiwisolver @ file:///home/conda/feedstock_root/build_artifacts/kiwisolver_1666805784128/work +lazy_loader==0.2 +lit==16.0.1 +llvmlite==0.40.1 +locket @ file:///home/conda/feedstock_root/build_artifacts/locket_1650660393415/work +lxml==4.9.2 +mapbox-earcut==1.0.1 +mapbuffer==0.7.0 +Markdown==3.4.3 +MarkupSafe==2.1.2 +matplotlib @ file:///home/conda/feedstock_root/build_artifacts/matplotlib-suite_1678135567769/work +matplotlib-inline==0.1.6 +monai==1.1.0 +mpmath==1.3.0 +mrcfile @ file:///home/conda/feedstock_root/build_artifacts/mrcfile_1663870629802/work +multiprocess==0.70.14 +munkres==1.1.4 +nbformat==5.7.0 +nest-asyncio==1.5.6 +networkx @ file:///home/conda/feedstock_root/build_artifacts/networkx_1680692919326/work +neuroglancer==2.36 +nibabel==5.2.1 +numba @ file:///home/conda/feedstock_root/build_artifacts/numba_1687804907391/work +numpy @ file:///home/conda/feedstock_root/build_artifacts/numpy_1687808300586/work +nvidia-cublas-cu11==11.10.3.66 +nvidia-cuda-cupti-cu11==11.7.101 +nvidia-cuda-nvrtc-cu11==11.7.99 +nvidia-cuda-runtime-cu11==11.7.99 +nvidia-cudnn-cu11==8.5.0.96 +nvidia-cufft-cu11==10.9.0.58 +nvidia-curand-cu11==10.2.10.91 +nvidia-cusolver-cu11==11.4.0.1 +nvidia-cusparse-cu11==11.7.4.91 +nvidia-nccl-cu11==2.14.3 +nvidia-nvtx-cu11==11.7.91 +oauth2client==4.1.3 +onnx==1.13.1 +onnxruntime==1.14.1 +open3d==0.17.0 +opencv-python==4.7.0.72 +openmesh==1.2.1 +openpyxl @ file:///home/conda/feedstock_root/build_artifacts/openpyxl_1682610773138/work +orjson==3.8.10 +packaging @ file:///home/conda/feedstock_root/build_artifacts/packaging_1681337016113/work +pandas @ file:///home/conda/feedstock_root/build_artifacts/pandas_1685342911872/work +parso==0.8.3 +partd @ file:///home/conda/feedstock_root/build_artifacts/partd_1681246756246/work +pathos==0.3.0 +pbr==5.11.1 +pexpect==4.8.0 +pickleshare==0.7.5 +Pillow @ file:///home/conda/feedstock_root/build_artifacts/pillow_1684654072636/work +platformdirs @ file:///home/conda/feedstock_root/build_artifacts/platformdirs_1687705014305/work +plotly==5.14.1 +pluggy==1.0.0 +pooch @ file:///home/conda/feedstock_root/build_artifacts/pooch_1679580333621/work +posix-ipc==1.1.1 +pox==0.3.2 +ppft==1.7.6.6 +prompt-toolkit==3.0.38 +proto-plus==1.22.2 +protobuf==3.20.1 +psutil==5.9.5 +ptyprocess==0.7.0 +pure-eval==0.2.2 +pyasn1==0.5.0 +pyasn1-modules==0.3.0 +pybind11==2.10.4 +pycocotools==2.0.6 +pycollada==0.7.2 +pycparser==2.21 +pyfqmr==0.1.2 +Pygments==2.15.1 +pynndescent==0.5.10 +pyOpenSSL==23.1.1 +pyparsing @ file:///home/conda/feedstock_root/build_artifacts/pyparsing_1687132014935/work +pyquaternion==0.9.9 +pyrsistent==0.19.3 +pysimdjson==5.0.2 +PySocks @ file:///home/conda/feedstock_root/build_artifacts/pysocks_1661604839144/work +pyspng-seunglab==1.0.0 +pytest==7.3.1 +python-dateutil @ file:///home/conda/feedstock_root/build_artifacts/python-dateutil_1626286286081/work +python-jsonschema-objects==0.4.1 +pytz @ file:///home/conda/feedstock_root/build_artifacts/pytz_1680088766131/work +PyWavelets @ file:///home/conda/feedstock_root/build_artifacts/pywavelets_1673082327051/work +PyYAML @ file:///home/conda/feedstock_root/build_artifacts/pyyaml_1666772387118/work +pyzmq==25.0.2 +quad-mesh-simplify==1.1.5 +requests @ file:///home/conda/feedstock_root/build_artifacts/requests_1684774241324/work +rsa==4.9 +Rtree==1.0.1 +s3transfer==0.6.0 +safetensors==0.4.3 +scikit-image==0.20.0 +scikit-learn @ file:///home/conda/feedstock_root/build_artifacts/scikit-learn_1685023709438/work +scipy @ file:///home/conda/feedstock_root/build_artifacts/scipy-split_1687763396626/work/base/dist/scipy-1.11.0-cp39-cp39-linux_x86_64.whl#sha256=5a44914d9d6aee4a88276a85f8fc857fdf47b30ccbaef31873614203f63769cf +seaborn==0.12.2 +shapely==2.0.1 +shard-computer==1.1.0 +simplejpeg==1.6.3 +six @ file:///home/conda/feedstock_root/build_artifacts/six_1620240208055/work +skan @ file:///home/conda/feedstock_root/build_artifacts/skan_1687524172302/work +stack-data==0.6.2 +svg.path==6.2 +sympy==1.11.1 +task-queue==2.12.1 +tenacity==8.2.2 +tensorboardX==2.6 +thop==0.1.1.post2209072238 +threadpoolctl @ file:///home/conda/feedstock_root/build_artifacts/threadpoolctl_1643647933166/work +tifffile @ file:///home/conda/feedstock_root/build_artifacts/tifffile_1681364231336/work +timm==1.0.7 +tinybrain==1.3.1 +tomli==2.0.1 +toolz @ file:///home/conda/feedstock_root/build_artifacts/toolz_1657485559105/work +torch==2.0.0 +torchaudio==2.0.1 +torchsummary==1.5.1 +torchvision==0.15.1 +tornado==6.3.1 +tqdm @ file:///home/conda/feedstock_root/build_artifacts/tqdm_1677948868469/work +traitlets==5.9.0 +trimesh==3.21.5 +triton==2.0.0 +typing_extensions @ file:///home/conda/feedstock_root/build_artifacts/typing_extensions_1685704949284/work +tzdata @ file:///home/conda/feedstock_root/build_artifacts/python-tzdata_1680081134351/work +umap-learn==0.5.3 +unicodedata2 @ file:///home/conda/feedstock_root/build_artifacts/unicodedata2_1667239485250/work +urllib3==1.26.16 +urllib3-secure-extra==0.1.0 +vit-pytorch==1.7.0 +wcwidth==0.2.6 +Werkzeug==2.3.3 +widgetsnbextension==4.0.7 +xxhash==3.2.0 +zfpc==0.1.2 +zfpy==1.0.0 +zipp @ file:///home/conda/feedstock_root/build_artifacts/zipp_1677313463193/work +zmesh==1.0.0 +zope.event==4.6 +zope.interface==6.0 +zstandard==0.21.0 diff --git a/requirements-training.txt b/requirements-training.txt new file mode 100644 index 0000000..9c884b9 --- /dev/null +++ b/requirements-training.txt @@ -0,0 +1,13 @@ +# Additional dependencies for the original CUDA research training entry points. +-r requirements.txt +numpy>=1.24,<2 +addict==2.4.0 +PyYAML>=6,<7 +tensorboardX>=2.6,<3 +einops>=0.8,<1 +imageio>=2.31,<3 +Pillow>=9.5 +scipy>=1.10,<2 +scikit-image>=0.20,<1 +opencv-python-headless>=4.7,<4.12 +matplotlib>=3.7,<4 diff --git a/requirements.txt b/requirements.txt index 98c7bf8..e2a441d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,248 +1,5 @@ -addict==2.4.0 -asttokens==2.2.1 -atomicwrites==1.4.1 -attrdict==2.0.1 -attrs==23.1.0 -backcall==0.2.0 -blinker==1.6.2 -boto3==1.26.118 -botocore==1.29.118 -Brotli==1.0.9 -cached-property @ file:///home/conda/feedstock_root/build_artifacts/cached_property_1615209429212/work -cachetools==5.3.0 -certifi==2023.5.7 -cffi==1.15.1 -chardet==5.1.0 -charset-normalizer @ file:///home/conda/feedstock_root/build_artifacts/charset-normalizer_1678108872112/work -click @ file:///home/conda/feedstock_root/build_artifacts/click_1666798198223/work -cloud-files==4.15.1 -cloud-volume==8.19.3 -cloudpickle @ file:///home/conda/feedstock_root/build_artifacts/cloudpickle_1674202310934/work -cmake==3.26.3 -colorama @ file:///home/conda/feedstock_root/build_artifacts/colorama_1666700638685/work -coloredlogs==15.0.1 -colorlog==6.7.0 -comm==0.1.3 -compressed-segmentation==2.2.0 -compresso==3.2.0 -ConfigArgParse==1.5.3 -connected-components-3d==3.10.5 -contourpy @ file:///home/conda/feedstock_root/build_artifacts/contourpy_1686733808435/work -crackle-codec==0.6.1 -crc32c==2.3.post0 -cryptography==40.0.2 -cycler @ file:///home/conda/feedstock_root/build_artifacts/cycler_1635519461629/work -Cython==0.29.34 -cytoolz @ file:///home/conda/feedstock_root/build_artifacts/cytoolz_1666829688252/work -dash==2.9.3 -dash-core-components==2.0.0 -dash-html-components==2.0.0 -dash-table==5.0.0 -dask @ file:///home/conda/feedstock_root/build_artifacts/dask-core_1687813538832/work -debugpy==1.6.7 -decorator==5.1.1 -deflate==0.3.0 -dijkstra3d==1.12.0 -dill==0.3.6 -DracoPy==1.0.1 -edt==2.3.0 -einops==0.8.0 -elf @ file:///home/conda/feedstock_root/build_artifacts/python-elf_1684541229700/work -et-xmlfile @ file:///home/conda/feedstock_root/build_artifacts/et_xmlfile_1674664118162/work -exceptiongroup==1.1.1 -executing==1.2.0 -fasteners==0.18 -fastjsonschema==2.16.3 -fastremap==1.13.4 -filelock==3.12.0 -fill-voids==2.0.3 -Flask==2.3.2 -flatbuffers==23.3.3 -fonttools @ file:///home/conda/feedstock_root/build_artifacts/fonttools_1686578436974/work -fpzip==1.2.0 -fsspec @ file:///home/conda/feedstock_root/build_artifacts/fsspec_1686342280219/work -gevent==22.10.2 -google-api-core==2.11.0 -google-apitools==0.5.32 -google-auth==2.17.3 -google-cloud-appengine-logging==1.3.0 -google-cloud-audit-log==0.2.5 -google-cloud-core==2.3.2 -google-cloud-logging==3.5.0 -google-cloud-storage==2.8.0 -google-crc32c==1.5.0 -google-resumable-media==2.4.1 -googleapis-common-protos==1.59.0 -greenlet==2.0.2 -grpc-google-iam-v1==0.12.6 -grpcio==1.54.0 -grpcio-status==1.54.0 -h5py @ file:///home/conda/feedstock_root/build_artifacts/h5py_1687263083757/work -httplib2==0.22.0 -huggingface-hub==0.23.4 -humanfriendly==10.0 -idna @ file:///home/conda/feedstock_root/build_artifacts/idna_1663625384323/work -igneous-pipeline==3.0.0 -imagecodecs @ file:///home/conda/feedstock_root/build_artifacts/imagecodecs_1679699549914/work -imageio @ file:///home/conda/feedstock_root/build_artifacts/imageio_1686552404404/work -importlib-metadata @ file:///home/conda/feedstock_root/build_artifacts/importlib-metadata_1687138353019/work -importlib-resources @ file:///home/conda/feedstock_root/build_artifacts/importlib_resources_1676919000169/work -inflection==0.5.1 -iniconfig==2.0.0 -ipykernel==6.22.0 -ipython==8.13.1 -ipywidgets==8.0.6 -itsdangerous==2.1.2 -jedi==0.18.2 -Jinja2==3.1.2 -jmespath==1.0.1 -joblib @ file:///home/conda/feedstock_root/build_artifacts/joblib_1663332044897/work -json5==0.9.11 -jsonschema==4.17.3 -jupyter_client==8.2.0 -jupyter_core==5.3.0 -jupyterlab-widgets==3.0.7 -kimimaro==3.3.0 -kiwisolver @ file:///home/conda/feedstock_root/build_artifacts/kiwisolver_1666805784128/work -lazy_loader==0.2 -lit==16.0.1 -llvmlite==0.40.1 -locket @ file:///home/conda/feedstock_root/build_artifacts/locket_1650660393415/work -lxml==4.9.2 -mapbox-earcut==1.0.1 -mapbuffer==0.7.0 -Markdown==3.4.3 -MarkupSafe==2.1.2 -matplotlib @ file:///home/conda/feedstock_root/build_artifacts/matplotlib-suite_1678135567769/work -matplotlib-inline==0.1.6 -monai==1.1.0 -mpmath==1.3.0 -mrcfile @ file:///home/conda/feedstock_root/build_artifacts/mrcfile_1663870629802/work -multiprocess==0.70.14 -munkres==1.1.4 -nbformat==5.7.0 -nest-asyncio==1.5.6 -networkx @ file:///home/conda/feedstock_root/build_artifacts/networkx_1680692919326/work -neuroglancer==2.36 -nibabel==5.2.1 -numba @ file:///home/conda/feedstock_root/build_artifacts/numba_1687804907391/work -numpy @ file:///home/conda/feedstock_root/build_artifacts/numpy_1687808300586/work -nvidia-cublas-cu11==11.10.3.66 -nvidia-cuda-cupti-cu11==11.7.101 -nvidia-cuda-nvrtc-cu11==11.7.99 -nvidia-cuda-runtime-cu11==11.7.99 -nvidia-cudnn-cu11==8.5.0.96 -nvidia-cufft-cu11==10.9.0.58 -nvidia-curand-cu11==10.2.10.91 -nvidia-cusolver-cu11==11.4.0.1 -nvidia-cusparse-cu11==11.7.4.91 -nvidia-nccl-cu11==2.14.3 -nvidia-nvtx-cu11==11.7.91 -oauth2client==4.1.3 -onnx==1.13.1 -onnxruntime==1.14.1 -open3d==0.17.0 -opencv-python==4.7.0.72 -openmesh==1.2.1 -openpyxl @ file:///home/conda/feedstock_root/build_artifacts/openpyxl_1682610773138/work -orjson==3.8.10 -packaging @ file:///home/conda/feedstock_root/build_artifacts/packaging_1681337016113/work -pandas @ file:///home/conda/feedstock_root/build_artifacts/pandas_1685342911872/work -parso==0.8.3 -partd @ file:///home/conda/feedstock_root/build_artifacts/partd_1681246756246/work -pathos==0.3.0 -pbr==5.11.1 -pexpect==4.8.0 -pickleshare==0.7.5 -Pillow @ file:///home/conda/feedstock_root/build_artifacts/pillow_1684654072636/work -platformdirs @ file:///home/conda/feedstock_root/build_artifacts/platformdirs_1687705014305/work -plotly==5.14.1 -pluggy==1.0.0 -pooch @ file:///home/conda/feedstock_root/build_artifacts/pooch_1679580333621/work -posix-ipc==1.1.1 -pox==0.3.2 -ppft==1.7.6.6 -prompt-toolkit==3.0.38 -proto-plus==1.22.2 -protobuf==3.20.1 -psutil==5.9.5 -ptyprocess==0.7.0 -pure-eval==0.2.2 -pyasn1==0.5.0 -pyasn1-modules==0.3.0 -pybind11==2.10.4 -pycocotools==2.0.6 -pycollada==0.7.2 -pycparser==2.21 -pyfqmr==0.1.2 -Pygments==2.15.1 -pynndescent==0.5.10 -pyOpenSSL==23.1.1 -pyparsing @ file:///home/conda/feedstock_root/build_artifacts/pyparsing_1687132014935/work -pyquaternion==0.9.9 -pyrsistent==0.19.3 -pysimdjson==5.0.2 -PySocks @ file:///home/conda/feedstock_root/build_artifacts/pysocks_1661604839144/work -pyspng-seunglab==1.0.0 -pytest==7.3.1 -python-dateutil @ file:///home/conda/feedstock_root/build_artifacts/python-dateutil_1626286286081/work -python-jsonschema-objects==0.4.1 -pytz @ file:///home/conda/feedstock_root/build_artifacts/pytz_1680088766131/work -PyWavelets @ file:///home/conda/feedstock_root/build_artifacts/pywavelets_1673082327051/work -PyYAML @ file:///home/conda/feedstock_root/build_artifacts/pyyaml_1666772387118/work -pyzmq==25.0.2 -quad-mesh-simplify==1.1.5 -requests @ file:///home/conda/feedstock_root/build_artifacts/requests_1684774241324/work -rsa==4.9 -Rtree==1.0.1 -s3transfer==0.6.0 -safetensors==0.4.3 -scikit-image==0.20.0 -scikit-learn @ file:///home/conda/feedstock_root/build_artifacts/scikit-learn_1685023709438/work -scipy @ file:///home/conda/feedstock_root/build_artifacts/scipy-split_1687763396626/work/base/dist/scipy-1.11.0-cp39-cp39-linux_x86_64.whl#sha256=5a44914d9d6aee4a88276a85f8fc857fdf47b30ccbaef31873614203f63769cf -seaborn==0.12.2 -shapely==2.0.1 -shard-computer==1.1.0 -simplejpeg==1.6.3 -six @ file:///home/conda/feedstock_root/build_artifacts/six_1620240208055/work -skan @ file:///home/conda/feedstock_root/build_artifacts/skan_1687524172302/work -stack-data==0.6.2 -svg.path==6.2 -sympy==1.11.1 -task-queue==2.12.1 -tenacity==8.2.2 -tensorboardX==2.6 -thop==0.1.1.post2209072238 -threadpoolctl @ file:///home/conda/feedstock_root/build_artifacts/threadpoolctl_1643647933166/work -tifffile @ file:///home/conda/feedstock_root/build_artifacts/tifffile_1681364231336/work -timm==1.0.7 -tinybrain==1.3.1 -tomli==2.0.1 -toolz @ file:///home/conda/feedstock_root/build_artifacts/toolz_1657485559105/work -torch==2.0.0 -torchaudio==2.0.1 -torchsummary==1.5.1 -torchvision==0.15.1 -tornado==6.3.1 -tqdm @ file:///home/conda/feedstock_root/build_artifacts/tqdm_1677948868469/work -traitlets==5.9.0 -trimesh==3.21.5 -triton==2.0.0 -typing_extensions @ file:///home/conda/feedstock_root/build_artifacts/typing_extensions_1685704949284/work -tzdata @ file:///home/conda/feedstock_root/build_artifacts/python-tzdata_1680081134351/work -umap-learn==0.5.3 -unicodedata2 @ file:///home/conda/feedstock_root/build_artifacts/unicodedata2_1667239485250/work -urllib3==1.26.16 -urllib3-secure-extra==0.1.0 -vit-pytorch==1.7.0 -wcwidth==0.2.6 -Werkzeug==2.3.3 -widgetsnbextension==4.0.7 -xxhash==3.2.0 -zfpc==0.1.2 -zfpy==1.0.0 -zipp @ file:///home/conda/feedstock_root/build_artifacts/zipp_1677313463193/work -zmesh==1.0.0 -zope.event==4.6 -zope.interface==6.0 -zstandard==0.21.0 +# Affinity inference only. Install the CPU/CUDA PyTorch build for your platform first. +# FRMC postprocessing: environment-postprocess.yml. Training: requirements-training.txt. +torch>=2.6,<3 +numpy>=1.24,<3 +tifffile>=2023.7.10 diff --git a/tests/test_inference.py b/tests/test_inference.py new file mode 100644 index 0000000..ad102e9 --- /dev/null +++ b/tests/test_inference.py @@ -0,0 +1,161 @@ +"""CPU-only correctness tests; no external data or downloaded weights needed.""" + +import importlib.util +import json +from pathlib import Path +import subprocess +import sys +import tempfile +import unittest +from unittest import mock +from types import ModuleType + +import numpy as np +import tifffile +import torch + + +ROOT = Path(__file__).resolve().parents[1] +SPEC = importlib.util.spec_from_file_location("segneuron_inference", ROOT / "Train_and_Inference" / "inference.py") +inference = importlib.util.module_from_spec(SPEC) +SPEC.loader.exec_module(inference) + + +class CoordinateModel(torch.nn.Module): + """Different channels expose coordinate transposition, normalization and blending errors.""" + def __init__(self): + super().__init__() + self.register_buffer("fixture", torch.tensor(0)) + + def forward(self, x): + assert not self.training + assert torch.is_inference_mode_enabled() + return torch.cat((x, 1 - x, x / 2), dim=1), x * 0.75 + + +class InferenceTests(unittest.TestCase): + @classmethod + def setUpClass(cls): + cls.previous_threads = torch.get_num_threads() + torch.set_num_threads(1) + + @classmethod + def tearDownClass(cls): + torch.set_num_threads(cls.previous_threads) + + def test_reconstructs_small_odd_nonsquare_and_singleton_volumes(self): + for shape in ((1, 1, 1), (18, 31, 71), (21, 131, 197), (20, 128, 128)): + with self.subTest(shape=shape): + raw = np.random.default_rng(123).integers(0, 256, size=shape, dtype=np.uint8) + actual, boundary = inference.infer_volume(CoordinateModel(), raw) + normalized = raw.astype(np.float32) / 255 + self.assertEqual(actual.shape, (3,) + shape) + self.assertEqual(boundary.shape, shape) + self.assertEqual(actual.dtype, np.float32) + self.assertTrue(np.isfinite(actual).all()) + # Overlap sums use float32, as in the original Gaussian blend. + np.testing.assert_allclose(actual, np.stack((normalized, 1 - normalized, normalized / 2)), atol=1e-6) + np.testing.assert_allclose(boundary, normalized * 0.75, atol=1e-6) + self.assertGreaterEqual(actual.min(), 0) + self.assertLessEqual(actual.max(), 1) + + def test_tiff_and_npy_load_identically(self): + with tempfile.TemporaryDirectory() as directory: + raw = np.arange(3 * 5 * 7, dtype=np.uint8).reshape(3, 5, 7) + for suffix in (".npy", ".tif"): + path = Path(directory) / ("raw" + suffix) + if suffix == ".npy": + np.save(path, raw) + else: + tifffile.imwrite(path, raw, photometric="minisblack") + np.testing.assert_array_equal(inference.load_volume(path), raw) + + def test_rejects_invalid_raw_arrays(self): + for raw in (np.zeros((4, 4), np.uint8), np.zeros((0, 4, 4), np.uint8), np.zeros((4, 4, 4), np.uint16)): + with self.subTest(shape=raw.shape, dtype=raw.dtype): + with self.assertRaises(ValueError): + inference.infer_volume(CoordinateModel(), raw) + + def test_rejects_rgb_and_time_series_tiff(self): + with tempfile.TemporaryDirectory() as directory: + path = Path(directory) / "raw.tif" + tifffile.imwrite(path, np.zeros((8, 9, 3), np.uint8), photometric="rgb") + with self.assertRaisesRegex(ValueError, "grayscale"): + inference.load_volume(path) + tifffile.imwrite(path, np.zeros((4, 8, 9), np.uint8), photometric="minisblack", metadata={"axes": "TYX"}) + with self.assertRaisesRegex(ValueError, "grayscale"): + inference.load_volume(path) + + def test_checkpoint_formats_and_dataparallel_prefix(self): + source = torch.nn.Conv3d(1, 1, 1) + state = source.state_dict() + variants = [state, {"model_weights": {"module." + k: v for k, v in state.items()}}, {"state_dict": state}] + with tempfile.TemporaryDirectory() as directory: + path = Path(directory) / "model.pt" + for checkpoint in variants: + torch.save(checkpoint, path) + target = torch.nn.Conv3d(1, 1, 1) + inference.load_checkpoint(target, path) + for name, tensor in target.state_dict().items(): + torch.testing.assert_close(tensor, state[name]) + + def test_checkpoint_mismatches_and_collisions_are_rejected(self): + with tempfile.TemporaryDirectory() as directory: + path = Path(directory) / "model.pt" + model = torch.nn.Conv3d(1, 1, 1) + torch.save({"weight": torch.zeros(1)}, path) + with self.assertRaises(RuntimeError): + inference.load_checkpoint(model, path) + torch.save({"weight": model.weight, "module.weight": model.weight}, path) + with self.assertRaisesRegex(ValueError, "duplicate"): + inference.load_checkpoint(model, path) + + def test_nonfinite_model_output_is_rejected(self): + class InvalidModel(CoordinateModel): + def forward(self, x): + affinity, boundary = super().forward(x) + return affinity * float("nan"), boundary + with self.assertRaisesRegex(ValueError, "finite probabilities"): + inference.infer_volume(InvalidModel(), np.zeros((1, 2, 3), np.uint8)) + + def test_cli_help_does_not_require_site_packages(self): + result = subprocess.run([sys.executable, "-S", str(Path(inference.__file__)), "--help"], capture_output=True, text=True) + self.assertEqual(result.returncode, 0, result.stderr) + self.assertIn("--checkpoint", result.stdout) + self.assertIn("--device", result.stdout) + + def test_cli_refuses_existing_output_before_loading_model(self): + with tempfile.TemporaryDirectory() as directory: + output = Path(directory) + raw, checkpoint = output / "raw.npy", output / "weights.pt" + np.save(raw, np.zeros((1, 2, 3), np.uint8)) + torch.save({}, checkpoint) + with self.assertRaises(SystemExit) as caught: + inference.main(["--input", str(raw), "--checkpoint", str(checkpoint), "--output-dir", str(output)]) + self.assertEqual(caught.exception.code, 2) + self.assertFalse((output / "inference.json").exists()) + + def test_cli_writes_complete_outputs_and_provenance(self): + # Exercise actual I/O and checkpoint loading with a small known model. + fake_package = ModuleType("model") + fake_module = ModuleType("model.Mnet") + fake_module.MNet = lambda *args, **kwargs: CoordinateModel() + with tempfile.TemporaryDirectory() as directory: + root = Path(directory) + raw, checkpoint, output = root / "raw.npy", root / "weights.pt", root / "output" + np.save(raw, np.full((1, 7, 11), 127, np.uint8)) + torch.save({"model_weights": CoordinateModel().state_dict()}, checkpoint) + with mock.patch.dict(sys.modules, {"model": fake_package, "model.Mnet": fake_module}): + inference.main(["--input", str(raw), "--checkpoint", str(checkpoint), "--output-dir", str(output)]) + affinity = np.load(output / "affinities.npy") + boundary = tifffile.imread(output / "boundaries.tif") + metadata = json.loads((output / "inference.json").read_text()) + self.assertEqual(affinity.shape, (3, 1, 7, 11)) + self.assertEqual(boundary.shape, (1, 7, 11)) + self.assertEqual(metadata["input"]["sha256"], inference.sha256(raw)) + self.assertEqual(metadata["checkpoint"]["sha256"], inference.sha256(checkpoint)) + self.assertEqual(metadata["affinities"]["offsets_zyx"], [[-1, 0, 0], [0, -1, 0], [0, 0, -1]]) + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/test_postprocess.py b/tests/test_postprocess.py new file mode 100644 index 0000000..e7cb360 --- /dev/null +++ b/tests/test_postprocess.py @@ -0,0 +1,198 @@ +"""CLI/input regression tests plus opt-in-required tests of the real ELF backend.""" + +import importlib.util +import json +import os +from pathlib import Path +import subprocess +import sys +import tempfile +from types import SimpleNamespace +import unittest +from unittest.mock import patch + +import numpy as np +import tifffile + +from Postprocess import FRMC_post as post + + +ROOT = Path(__file__).resolve().parents[1] + + +class PostprocessTests(unittest.TestCase): + def test_help_does_not_import_elf(self): + code = ( + "import sys; sys.modules['elf'] = None; " + "from Postprocess.FRMC_post import main; main(['--help'])" + ) + result = subprocess.run([sys.executable, "-c", code], cwd=ROOT, capture_output=True, text=True) + self.assertEqual(result.returncode, 0, result.stderr) + self.assertIn("--ground-truth", result.stdout) + + def test_invalid_input_is_rejected_before_backend_load(self): + valid = np.ones((3, 2, 8, 8), dtype=np.float32) + invalid = [np.ones((2, 2, 8, 8)), np.empty((3, 0, 8, 8)), + np.full_like(valid, np.nan), np.full_like(valid, 1.01), + np.full_like(valid, -0.01), valid.astype(complex)] + with patch.object(post, "_load_elf", side_effect=AssertionError("backend must not load")): + for values in invalid: + with self.subTest(shape=values.shape), self.assertRaises(ValueError): + post.post_mc(values) + for beta in [0, 1, -1, np.nan, np.inf, True, None, [0.25]]: + with self.subTest(beta=beta), self.assertRaises(ValueError): + post.post_mc(valid, beta) + + def test_fragments_are_disjoint_across_slices_and_solver_zero_is_preserved(self): + fragment_slice = np.array([[1, 1, 9], [1, 9, 9]], dtype=np.uint64) + captured = {} + + def compute_rag(watershed): + captured["watershed"] = watershed.copy() + return SimpleNamespace(numberOfEdges=3, numberOfNodes=4) + + def project(rag, labels): + return labels[captured["watershed"]] + + feats = SimpleNamespace( + compute_rag=compute_rag, + compute_affinity_features=lambda *a: np.full((3, 1), 0.5), + compute_boundary_mean_and_length=lambda *a: np.ones((3, 2)), + project_node_labels_to_pixels=project, + ) + mc = SimpleNamespace( + transform_probabilities_to_costs=lambda costs, **kw: costs, + multicut_kernighan_lin=lambda *a: np.array([0, 7, 0, 7]), + ) + ws = SimpleNamespace(distance_transform_watershed=lambda *a, **kw: (fragment_slice.copy(), 9)) + with patch.object(post, "_load_elf", return_value=(feats, mc, ws)): + result = post.post_mc(np.full((3, 2, 2, 3), 0.8)) + self.assertEqual(set(np.unique(captured["watershed"][0])), {0, 1}) + self.assertEqual(set(np.unique(captured["watershed"][1])), {2, 3}) + self.assertEqual(result.dtype, np.uint32) + np.testing.assert_array_equal(result[0], result[1]) + np.testing.assert_array_equal(np.unique(result), [1, 2]) + + def test_unassigned_watershed_is_an_error(self): + ws = SimpleNamespace(distance_transform_watershed=lambda *a, **kw: (np.zeros((8, 8), dtype=np.uint64), 0)) + with patch.object(post, "_load_elf", return_value=(None, None, ws)): + with self.assertRaisesRegex(RuntimeError, "unassigned"): + post.post_mc(np.ones((3, 1, 8, 8))) + + def test_cli_fusion_output_and_optional_metrics(self): + with tempfile.TemporaryDirectory() as temporary: + directory = Path(temporary) + affs = np.full((3, 2, 8, 8), 0.9, dtype=np.float32) + foreground = np.full((2, 8, 8), 0.7, dtype=np.float32) + labels = np.ones(foreground.shape, dtype=np.uint32) + labels[:, :, 4:] = 2 + np.save(directory / "affs.npy", affs) + tifffile.imwrite(directory / "head.tif", foreground, photometric="minisblack") + tifffile.imwrite(directory / "gt.tif", labels, photometric="minisblack") + base = ["--affinities", str(directory / "affs.npy"), "--boundaries", str(directory / "head.tif")] + for extension, with_gt in [("tif", False), ("npy", True)]: + output = directory / f"labels.{extension}" + args = base + ["--output", str(output)] + if with_gt: + args += ["--ground-truth", str(directory / "gt.tif")] + with patch.object(post, "post_mc", return_value=labels) as solver, patch("builtins.print") as printed: + self.assertEqual(post.main(args), 0) + np.testing.assert_array_equal(solver.call_args.args[0], np.minimum(affs, foreground[None])) + self.assertEqual(solver.call_args.args[1], 0.25) + np.testing.assert_array_equal(post._load_volume(output), labels) + summary = json.loads(printed.call_args.args[0]) + self.assertEqual("metrics" in summary, with_gt) + if with_gt: + self.assertEqual(summary["metrics"]["arand"], 0) + self.assertEqual(summary["metrics"]["voi"], 0) + original_bytes = output.read_bytes() + with patch.object(post, "post_mc", side_effect=AssertionError("must fail first")): + with self.assertRaises(SystemExit): + post.main(args) + self.assertEqual(output.read_bytes(), original_bytes) + + def test_backend_failure_does_not_leave_output(self): + with tempfile.TemporaryDirectory() as temporary: + directory = Path(temporary) + np.save(directory / "affs.npy", np.full((3, 2, 8, 8), 0.8)) + tifffile.imwrite(directory / "head.tif", np.full((2, 8, 8), 0.8), photometric="minisblack") + output = directory / "out.npy" + with patch.object(post, "_load_elf", side_effect=RuntimeError("backend unavailable")): + with self.assertRaises(SystemExit): + post.main(["--affinities", str(directory / "affs.npy"), "--boundaries", + str(directory / "head.tif"), "--output", str(output)]) + self.assertFalse(output.exists()) + + def test_ground_truth_validation_and_sparse_labels(self): + for invalid in [np.zeros((2, 3), dtype=np.uint32), np.full((2, 3), -1), np.ones((2, 3), dtype=float)]: + with self.assertRaises(ValueError): + post._validate_ground_truth(invalid, (2, 3)) + with self.assertRaisesRegex(ValueError, "shape"): + post._validate_ground_truth(np.ones((2, 3), dtype=np.uint32), (3, 2)) + compact = post._validate_ground_truth(np.array([[0, 2**40], [0, 9]], dtype=np.uint64), (2, 2)) + np.testing.assert_array_equal(compact, [[0, 2], [0, 1]]) + + def test_exclusive_write_preserves_existing_file(self): + with tempfile.TemporaryDirectory() as temporary: + output = Path(temporary) / "labels.npy" + post._write_labels(output, np.ones((2, 3, 4), dtype=np.uint32)) + before = output.read_bytes() + with self.assertRaises(FileExistsError): + post._write_labels(output, np.zeros((2, 3, 4), dtype=np.uint32)) + self.assertEqual(output.read_bytes(), before) + + +class RealElfTests(unittest.TestCase): + @classmethod + def setUpClass(cls): + try: + post._load_elf() + except RuntimeError as exc: + if os.environ.get("SEGNEURON_REQUIRE_ELF") == "1": + raise + raise unittest.SkipTest(str(exc)) from exc + + @staticmethod + def affinities(): + # Two large regions separated by a strong x boundary, linked across z. + affs = np.full((3, 3, 48, 64), 0.98, dtype=np.float32) + affs[2, :, :, 31:34] = 0.02 + return affs + + def test_real_multicut_preserves_original_partition(self): + specification = importlib.util.spec_from_file_location("legacy_postprocess", ROOT / "legacy/Postprocess/FRMC_post.py") + legacy = importlib.util.module_from_spec(specification) + specification.loader.exec_module(legacy) + affs = self.affinities() + before = affs.copy() + for beta in (0.1, 0.25, 0.5, 0.75): + with self.subTest(beta=beta): + original = legacy.post_mc(affs, beta) + result = post.post_mc(affs, beta) + pairs = np.unique(np.stack([original.ravel(), result.ravel()], axis=1), axis=0) + self.assertEqual(len(pairs), len(np.unique(original))) + self.assertEqual(len(pairs), len(np.unique(result))) + self.assertEqual(result.shape, affs.shape[1:]) + self.assertEqual(result.dtype, np.uint32) + self.assertGreater(result.min(), 0) + np.testing.assert_array_equal(affs, before) + + def test_real_cli_without_ground_truth(self): + with tempfile.TemporaryDirectory() as temporary: + directory = Path(temporary) + affinities = self.affinities() + np.save(directory / "affs.npy", affinities) + tifffile.imwrite(directory / "head.tif", np.ones(affinities.shape[1:], dtype=np.float32), photometric="minisblack") + output = directory / "labels.tif" + with patch("builtins.print") as printed: + post.main(["--affinities", str(directory / "affs.npy"), "--boundaries", + str(directory / "head.tif"), "--output", str(output)]) + labels = tifffile.imread(output) + self.assertEqual(labels.dtype, np.uint32) + self.assertEqual(labels.shape, affinities.shape[1:]) + self.assertGreater(labels.min(), 0) + self.assertNotIn("metrics", json.loads(printed.call_args.args[0])) + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/test_training.py b/tests/test_training.py new file mode 100644 index 0000000..8b3a73a --- /dev/null +++ b/tests/test_training.py @@ -0,0 +1,89 @@ +"""Exercise research training plumbing without the full EMNeuron corpus or a GPU.""" +import importlib.util +from pathlib import Path +import subprocess +import sys +import tempfile +import unittest + +ROOT = Path(__file__).resolve().parents[1] + + +def smoke(kind): + import random + from unittest.mock import Mock, patch + from addict import Dict + import numpy as np + import torch + import yaml + + folder, name = (('Pretrain', 'pretrain') if kind == 'pretrain' + else ('Train_and_Inference', 'supervised_train')) + sys.path.insert(0, str(ROOT / folder)) + module = __import__(name) + with (ROOT / folder / 'config' / 'SegNeuron.yaml').open() as handle: + cfg = Dict(yaml.safe_load(handle)) + assert cfg.MODEL.model_type != 'mala' + + class TinyModel(torch.nn.Module): + def __init__(self): + super().__init__() + self.bias = torch.nn.Parameter(torch.tensor(0.0)) + + def forward(self, inputs): + output = torch.sigmoid(inputs + self.bias) + return (output if kind == 'pretrain' else output.repeat(1, 3, 1, 1, 1), output) + + inputs = torch.zeros((1, 1, 2, 8, 8)) + target = torch.ones_like(inputs) + batch = ((inputs, target, target) if kind == 'pretrain' else + (inputs, target.repeat(1, 3, 1, 1, 1), target, target)) + provider = Mock() + provider.next.side_effect = [batch, batch] + with patch.object(module, 'Provider', return_value=provider): + assert module.load_dataset(cfg) is provider + + with tempfile.TemporaryDirectory() as directory: + cfg.record_path = cfg.cache_path = cfg.save_path = directory + cfg.TRAIN.total_iters = 2 + cfg.TRAIN.display_freq = cfg.TRAIN.valid_freq = 1 + cfg.TRAIN.save_freq = 2 + cfg.TRAIN.base_lr = cfg.TRAIN.end_lr = 0.01 + module.cfg = cfg + model = TinyModel() + optimizer = torch.optim.Adam(model.parameters(), lr=0.01) + module.loop(cfg, provider, model, optimizer, 0, Mock()) + assert provider.next.call_count == 2 + assert float(model.bias.detach()) > 0 + assert (Path(directory) / '000001.png').is_file() + checkpoint = torch.load(Path(directory) / 'model-000002.ckpt', weights_only=True) + assert checkpoint['current_iter'] == 2 + + if kind == 'pretrain': + from pretrain_provider import Train + dataset = Train.__new__(Train) + dataset.dataset = [np.zeros((20, 128, 128), dtype=np.uint8)] + dataset.crop_from_origin = [20, 128, 128] + dataset.simple_aug = lambda arrays: arrays + random.seed(0) + np.random.seed(0) + outputs = dataset[0] + assert all(value.shape == (1, 20, 128, 128) for value in outputs) + assert all(np.isfinite(value).all() for value in outputs) + + +class TrainingTests(unittest.TestCase): + @unittest.skipUnless(importlib.util.find_spec('addict'), 'Install requirements-training.txt') + def test_research_entrypoints_load_optimize_render_and_save(self): + for kind in ('pretrain', 'supervised'): + with self.subTest(kind=kind): + result = subprocess.run([sys.executable, str(Path(__file__).resolve()), '--smoke', kind], + capture_output=True, text=True, timeout=90) + self.assertEqual(result.returncode, 0, result.stdout + result.stderr) + + +if __name__ == '__main__': + if len(sys.argv) == 3 and sys.argv[1] == '--smoke': + smoke(sys.argv[2]) + else: + unittest.main() From 6bb446096219f163d6940dd3c117c4b1d1d3b845 Mon Sep 17 00:00:00 2001 From: Yanchao Zhang <47974713+yanchaoz@users.noreply.github.com> Date: Wed, 16 Sep 2026 21:33:50 +0800 Subject: [PATCH 2/2] Reject ambiguous TIFF axes in inference and postprocessing --- Postprocess/FRMC_post.py | 5 ++++- Train_and_Inference/inference.py | 4 ++-- tests/test_inference.py | 3 +++ tests/test_postprocess.py | 8 ++++++++ 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/Postprocess/FRMC_post.py b/Postprocess/FRMC_post.py index 357d211..a936099 100644 --- a/Postprocess/FRMC_post.py +++ b/Postprocess/FRMC_post.py @@ -93,7 +93,10 @@ def _load_volume(path): return np.load(path, allow_pickle=False) if path.suffix.lower() in (".tif", ".tiff"): import tifffile - return tifffile.imread(path) + with tifffile.TiffFile(path) as image: + if len(image.series) != 1 or image.series[0].axes not in {"ZYX", "QYX", "IYX"}: + raise ValueError("TIFF must contain one grayscale ZYX stack") + return image.series[0].asarray() raise ValueError(f"Expected .npy, .tif or .tiff: {path}") diff --git a/Train_and_Inference/inference.py b/Train_and_Inference/inference.py index fc52fdb..ef654cb 100644 --- a/Train_and_Inference/inference.py +++ b/Train_and_Inference/inference.py @@ -24,7 +24,7 @@ def load_volume(path): import tifffile with tifffile.TiffFile(path) as image: - if len(image.series) != 1 or any(axis in image.series[0].axes for axis in "CST"): + if len(image.series) != 1 or image.series[0].axes not in {"ZYX", "QYX", "IYX"}: raise ValueError("TIFF must contain one grayscale ZYX stack, without color, channel or time axes") volume = image.series[0].asarray() else: @@ -152,7 +152,7 @@ def sha256(path): def main(argv=None): parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("--input", required=True, type=Path, help="uint8 3D ZYX TIFF or NPY raw volume") - parser.add_argument("--checkpoint", required=True, type=Path, help="MNet checkpoint (.pth or .pt)") + parser.add_argument("--checkpoint", required=True, type=Path, help="MNet checkpoint (.ckpt, .pth or .pt)") parser.add_argument("--output-dir", required=True, type=Path, help="New directory; existing paths are refused") parser.add_argument("--device", default="cpu", help="cpu (default) or cuda:N, e.g. cuda:0") args = parser.parse_args(argv) diff --git a/tests/test_inference.py b/tests/test_inference.py index ad102e9..2d7c8c3 100644 --- a/tests/test_inference.py +++ b/tests/test_inference.py @@ -85,6 +85,9 @@ def test_rejects_rgb_and_time_series_tiff(self): tifffile.imwrite(path, np.zeros((4, 8, 9), np.uint8), photometric="minisblack", metadata={"axes": "TYX"}) with self.assertRaisesRegex(ValueError, "grayscale"): inference.load_volume(path) + tifffile.imwrite(path, np.zeros((4, 8, 9), np.uint8), photometric="minisblack", metadata={"axes": "YZX"}) + with self.assertRaisesRegex(ValueError, "grayscale"): + inference.load_volume(path) def test_checkpoint_formats_and_dataparallel_prefix(self): source = torch.nn.Conv3d(1, 1, 1) diff --git a/tests/test_postprocess.py b/tests/test_postprocess.py index e7cb360..23edd1e 100644 --- a/tests/test_postprocess.py +++ b/tests/test_postprocess.py @@ -21,6 +21,14 @@ class PostprocessTests(unittest.TestCase): + def test_tiff_axes_are_not_silently_reinterpreted(self): + with tempfile.TemporaryDirectory() as temporary: + path = Path(temporary) / "head.tif" + tifffile.imwrite(path, np.zeros((4, 8, 9), dtype=np.float32), + photometric="minisblack", metadata={"axes": "YZX"}) + with self.assertRaisesRegex(ValueError, "ZYX"): + post._load_volume(path) + def test_help_does_not_import_elf(self): code = ( "import sys; sys.modules['elf'] = None; "

<=gj!J!2YM^cc04IJ#XCD=8F4c?_c0GMBo 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%0AkWnxe!NhWx;6i^0k+mc6Vb<;iJ6)Mq1qa}Hs=p6 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