From 9cb260503dfa4c11454e35b1c924bcd1ccc253a5 Mon Sep 17 00:00:00 2001 From: liuruoyan Date: Mon, 31 Mar 2025 08:55:42 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90mindearth=E3=80=91=E3=80=90application?= =?UTF-8?q?=E3=80=91prediff?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../applications/nowcasting/PreDiff/README.md | 69 + .../nowcasting/PreDiff/README_CN.md | 70 + .../nowcasting/PreDiff/configs/diffusion.yaml | 193 ++ .../PreDiff/images/diffusion_result.png | Bin 0 -> 365552 bytes .../nowcasting/PreDiff/images/train.jpg | Bin 0 -> 1738898 bytes .../applications/nowcasting/PreDiff/main.py | 77 + .../nowcasting/PreDiff/prediff.ipynb | 1783 +++++++++++++++++ .../nowcasting/PreDiff/src/__init__.py | 30 + .../PreDiff/src/diffusion/__init__.py | 33 + .../src/diffusion/cuboid_transformer.py | 1062 ++++++++++ .../src/diffusion/cuboid_transformer_unet.py | 527 +++++ .../PreDiff/src/diffusion/forecast.py | 285 +++ .../PreDiff/src/diffusion/latent_diffusion.py | 1076 ++++++++++ .../PreDiff/src/diffusion/solver.py | 140 ++ .../PreDiff/src/diffusion/time_embed.py | 270 +++ .../src/knowledge_alignment/__init__.py | 15 + .../src/knowledge_alignment/alignment.py | 566 ++++++ .../src/knowledge_alignment/alignment_net.py | 119 ++ .../nowcasting/PreDiff/src/sevir_dataset.py | 1025 ++++++++++ .../nowcasting/PreDiff/src/utils.py | 1062 ++++++++++ .../nowcasting/PreDiff/src/vae/__init__.py | 20 + .../PreDiff/src/vae/autoencoder_kl.py | 378 ++++ .../nowcasting/PreDiff/src/vae/resnet.py | 907 +++++++++ .../PreDiff/src/vae/unet_2d_blocks.py | 508 +++++ .../nowcasting/PreDiff/src/visual.py | 203 ++ .../applications/nowcasting/dgmr/src/utils.py | 12 - MindEarth/mindearth/cell/demnet/demnet.py | 4 +- MindEarth/mindearth/cell/dgmr/dgmr.py | 107 +- MindEarth/mindearth/cell/dgmr/dgmrnet.py | 4 +- tests/st/mindearth/module/test_forecast.py | 2 +- tests/st/mindearth/module/test_pretrain.py | 3 + tests/st/mindearth/test_config.yaml | 1 + 32 files changed, 10497 insertions(+), 54 deletions(-) create mode 100644 MindEarth/applications/nowcasting/PreDiff/README.md create mode 100644 MindEarth/applications/nowcasting/PreDiff/README_CN.md create mode 100644 MindEarth/applications/nowcasting/PreDiff/configs/diffusion.yaml create mode 100644 MindEarth/applications/nowcasting/PreDiff/images/diffusion_result.png create mode 100644 MindEarth/applications/nowcasting/PreDiff/images/train.jpg create mode 100644 MindEarth/applications/nowcasting/PreDiff/main.py create mode 100644 MindEarth/applications/nowcasting/PreDiff/prediff.ipynb create mode 100644 MindEarth/applications/nowcasting/PreDiff/src/__init__.py create mode 100644 MindEarth/applications/nowcasting/PreDiff/src/diffusion/__init__.py create mode 100644 MindEarth/applications/nowcasting/PreDiff/src/diffusion/cuboid_transformer.py create mode 100644 MindEarth/applications/nowcasting/PreDiff/src/diffusion/cuboid_transformer_unet.py create mode 100644 MindEarth/applications/nowcasting/PreDiff/src/diffusion/forecast.py create mode 100644 MindEarth/applications/nowcasting/PreDiff/src/diffusion/latent_diffusion.py create mode 100644 MindEarth/applications/nowcasting/PreDiff/src/diffusion/solver.py create mode 100644 MindEarth/applications/nowcasting/PreDiff/src/diffusion/time_embed.py create mode 100644 MindEarth/applications/nowcasting/PreDiff/src/knowledge_alignment/__init__.py create mode 100644 MindEarth/applications/nowcasting/PreDiff/src/knowledge_alignment/alignment.py create mode 100644 MindEarth/applications/nowcasting/PreDiff/src/knowledge_alignment/alignment_net.py create mode 100644 MindEarth/applications/nowcasting/PreDiff/src/sevir_dataset.py create mode 100644 MindEarth/applications/nowcasting/PreDiff/src/utils.py create mode 100644 MindEarth/applications/nowcasting/PreDiff/src/vae/__init__.py create mode 100644 MindEarth/applications/nowcasting/PreDiff/src/vae/autoencoder_kl.py create mode 100644 MindEarth/applications/nowcasting/PreDiff/src/vae/resnet.py create mode 100644 MindEarth/applications/nowcasting/PreDiff/src/vae/unet_2d_blocks.py create mode 100644 MindEarth/applications/nowcasting/PreDiff/src/visual.py diff --git a/MindEarth/applications/nowcasting/PreDiff/README.md b/MindEarth/applications/nowcasting/PreDiff/README.md new file mode 100644 index 000000000..7d0c1c7b2 --- /dev/null +++ b/MindEarth/applications/nowcasting/PreDiff/README.md @@ -0,0 +1,69 @@ +# PreDiff: Short-Term Precipitation Forecasting Based on Latent Diffusion Models + +## Overview + +Traditional weather forecasting techniques rely on complex physical models. These models not only incur high computational costs but also require in-depth professional knowledge. However, in the past decade, with the explosive growth of Earth's spatio-temporal observation data, deep learning techniques have opened up new avenues for building data-driven prediction models. Although these models have demonstrated great potential in various Earth system prediction tasks, they still fall short in managing uncertainties and integrating domain-specific prior knowledge, often resulting in vague or physically implausible prediction results. + +To overcome these challenges, Gao Zhihan from the Hong Kong University of Science and Technology implemented the **PreDiff** model, specifically designed for probabilistic spatio-temporal prediction. This process integrates a conditional latent diffusion model with an explicit knowledge alignment mechanism, aiming to generate prediction results that adhere to domain-specific physical constraints and accurately capture spatio-temporal changes. Through this approach, we expect to significantly improve the accuracy and reliability of Earth system predictions. On this basis, refined results are generated to obtain the final precipitation forecast. The model framework diagram is shown below (the image is sourced from the paper [PreDiff: Precipitation Nowcasting with Latent Diffusion Models](https://openreview.net/pdf?id=Gh67ZZ6zkS)). + +![prediff](images/train.jpg) + +During the training process, data extracts key information into the latent space through the variational autoencoder, then randomly selects time steps to generate corresponding noise for the data, performing noise injection. The noisy data is then input into Earthformer-UNet for denoising, which utilizes a UNet architecture and cuboid attention while removing the cross-attention structure connecting the encoder and decoder in Earthformer. Finally, the results are restored to obtain the denoised data through a variational autoencoder. The diffusion model learns the data distribution by reversing the predefined noise injection process that corrupts the original data. + +This tutorial demonstrates how to train and perform rapid inference on the model using MindEarth. For more information, refer to the [article](https://openreview.net/pdf?id=Gh67ZZ6zkS). +In this tutorial, the open-source dataset [SEVIR-LR](https://deep-earth.s3.amazonaws.com/datasets/sevir_lr.zip) is used for training and inference. + +You can download the required checkpoint (ckpt) files for training and inference at [ckpt](https://download-mindspore.osinfra.cn/mindscience/mindearth/dataset/PreDiff/) + +## Quick Start + +Download and save the data from [PreDiff/dataset](https://deep-earth.s3.amazonaws.com/datasets/sevir_lr.zip), and then modify the `root_dir` path in `./configs/diffusion_cfg.yaml`. + +### Running Method: Invoke the `main` script from the command line + +```python + +python main.py --device_id 0 --device_target Ascend --cfg ./configs/diffusion_cfg.yaml --mode train + +``` + +Here, `--device_target` indicates the device type, with the default being Ascend. `--device_id` indicates the number of the running device, with the default value being 0. `--cfg` is the path to the configuration file, with the default value being `./configs/diffusion_cfg.yaml`. `--mode` is the running mode, with the default value being `train`. + +### Inference + +Set `ckpt_path` in `./configs/diffusion_cfg.yaml` to the ckpt address of the diffusion model. + +```python + +python main.py --device_id 0 --mode test + +``` + +### Results Presentation + +#### Visualization of Prediction Results + +The following figure shows the results of inference after training with approximately 20,000 samples for 2000 epochs. + +![diffusion](images\diffusion_result.png) + +### Performance + +| Parameter | NPU | +|:----------------------:|:--------------------------:| +| Hardware | Ascend,64G | +| MindSpore Version | 2.5.0 | +| Dataset | SEVIR-LR | +| Training Parameters | batch_size=1, steps_per_epoch=24834, epochs=5 | +| Testing Parameters | batch_size=1, steps=2500 | +| Optimizer | AdamW | +| Training Loss (MSE) | 0.0857 | +| POD robability of Detection(16h) | 0.50 | +| Training Resources | 1 Node, 1 NPU | +| Training Speed (ms/step) | 3000 ms | + +## Contributors + +Gitee ID: funfunplus + +Email: funniless@163.com \ No newline at end of file diff --git a/MindEarth/applications/nowcasting/PreDiff/README_CN.md b/MindEarth/applications/nowcasting/PreDiff/README_CN.md new file mode 100644 index 000000000..49904f6af --- /dev/null +++ b/MindEarth/applications/nowcasting/PreDiff/README_CN.md @@ -0,0 +1,70 @@ +# PreDiff: 基于潜在扩散模型的降水短时预报 + +## 概述 + +传统的天气预报技术依赖于复杂的物理模型,这些模型不仅计算成本高昂,还要求深厚的专业知识支撑。然而,近十年来,随着地球时空观测数据的爆炸式增长,深度学习技术为构建数据驱动的预测模型开辟了新的道路。虽然这些模型在多种地球系统预测任务中展现出巨大潜力,但它们在管理不确定性和整合特定领域先验知识方面仍有不足,时常导致预测结果模糊不清或在物理上不可信。 + +为克服这些难题,来自香港科技大学的Gao Zhihan实现了**prediff**模型,专门用于实现概率性的时空预测。该流程融合了条件潜在扩散模型与显式的知识对齐机制,旨在生成既符合特定领域物理约束,又能精确捕捉时空变化的预测结果。通过这种方法,我们期望能够显著提升地球系统预测的准确性和可靠性。 +基础上生成精细化的结果,从而得到最终的降水预报。模型框架图入下图所示(图片来源于论文 [PreDiff: Precipitation Nowcasting with Latent Diffusion Models](https://openreview.net/pdf?id=Gh67ZZ6zkS)) + +![prediff](images/train.jpg) + +训练的过程中,数据通过变分自编码器提取关键信息到隐空间,之后随机选择时间步生成对应时间步噪声,对数据进行加噪处理。之后将数据输入Earthformer-UNet进行降噪处理,Earthformer-UNet采用了UNet构架和cuboid attention,去除了Earthformer中连接encoder和decoder的cross-attention结构。最后将结果通过变分自解码器还原得到去噪后的数据,扩散模型通过反转预先定义的破坏原始数据的加噪过程来学习数据分布。 + +本教程展示了如何通过MindEarth训练和快速推理模型。更多信息参见[文章](https://openreview.net/pdf?id=Gh67ZZ6zkS) +本教程中使用开源数据集[SEVIR-LR](https://deep-earth.s3.amazonaws.com/datasets/sevir_lr.zip)数据集进行训练和推理。 + +可以在[ckpt](https://download-mindspore.osinfra.cn/mindscience/mindearth/dataset/PreDiff/)下载训练和推理所需要的ckpt + +## 快速开始 + +在[PreDiff/dataset](https://deep-earth.s3.amazonaws.com/datasets/sevir_lr.zip)下载数据并保存,然后在`./configs/diffusion_cfg.yaml`中修改`root_dir`路径。 + +### 运行方式: 在命令行调用`main`脚本 + +```python + +python main.py --device_id 0 --device_target Ascend --cfg ./configs/diffusion_cfg.yaml --mode train + +``` + +其中, --device_target 表示设备类型,默认Ascend。 --device_id 表示运行设备的编号,默认值0。 --cfg 配置文件路径,默认值"./configs/diffusion_cfg.yaml"。 --mode 运行模式,默认值train + +### 推理 + +在`./configs/diffusion_cfg.yaml`中设置`ckpt_path`为diffusion模型ckpt地址。 + +```python + +python main.py --device_id 0 --mode test + +``` + +### 结果展示: + +#### 预测结果可视化 + +下图展示了使用约2w条样本训练2000个epoch后进行推理绘制的结果。 + +![diffusion](images/diffusion_result.png) + +### 性能 + +| Parameter | NPU | +|:----------------------:|:--------------------------:| +| 硬件版本 | Ascend, 64G | +| mindspore版本 | 2.5.0 | +| 数据集 | SEVIR-LR | +| 训练参数 | batch_size=1, steps_per_epoch=24834, epochs=5 | +| 测试参数 | batch_size=1,steps=2500 | +| 优化器 | AdamW | +| 训练损失(MSE) | 0.0857 | +| POD预测命中率(16h) | 0.50 | +| 训练资源 | 1Node 1NPU | +| 训练速度(ms/step) | 3000ms | + +## 贡献者 + +gitee id: funfunplus + +email: funniless@163.com \ No newline at end of file diff --git a/MindEarth/applications/nowcasting/PreDiff/configs/diffusion.yaml b/MindEarth/applications/nowcasting/PreDiff/configs/diffusion.yaml new file mode 100644 index 000000000..408dfe6f0 --- /dev/null +++ b/MindEarth/applications/nowcasting/PreDiff/configs/diffusion.yaml @@ -0,0 +1,193 @@ +data: + dataset_name: "sevirlr" + seq_in: 13 + plot_stride: 1 + interval_real_time: 10 + raw_seq_len: 25 + sample_mode: "sequent" + stride: 6 + layout: "NTHWC" + start_date: null + train_val_split_date: [2019, 3, 19] + train_test_split_date: [2019, 6, 1] + end_date: null + val_ratio: 0.1 + metrics_mode: "0" + metrics_list: ['csi', 'pod', 'sucr', 'bias'] + threshold_list: [16, 74, 133, 160, 181, 219] + aug_mode: "0" + root_dir: "./dataset/sevir_lr" +layout: + t_in: 7 + t_out: 6 + data_channels: 1 + layout: "NTHWC" +optim: + total_batch_size: 64 + micro_batch_size: 2 + seed: 0 + float32_matmul_precision: "high" + method: "adamw" + lr: 1.0e-5 + betas: [0.9, 0.999] + gradient_clip_val: 1.0 + max_epochs: 2000 + loss_type: "l2" + warmup_percentage: 0.1 + lr_scheduler_mode: "cosine" + min_lr_ratio: 1.0e-3 + warmup_min_lr_ratio: 0.1 + monitor: "val/loss" + early_stop: false + early_stop_mode: "min" + early_stop_patience: 100 + save_top_k: 3 +logging: + logging_prefix: "PreDiff" + monitor_lr: true + monitor_device: false + track_grad_norm: -1 + use_wandb: false + profiler: null +trainer: + check_val_every_n_epoch: 50 + log_step_ratio: 0.001 + precision: 32 + find_unused_parameters: false +eval: + train_example_data_idx_list: [0, ] + val_example_data_idx_list: [0, 16, 32, 48, 64, 72, 96, 108, 128] + test_example_data_idx_list: [0, 16, 32, 48, 64, 72, 96, 108, 128] + eval_example_only: true + eval_aligned: true + eval_unaligned: true + num_samples_per_context: 1 + fs: 20 + label_offset: [-0.5, 0.5] + label_avg_int: false + fvd_features: 400 +model: + diffusion: + data_shape: [6, 128, 128, 1] + timesteps: 1000 + beta_schedule: "linear" + log_every_t: 100 + clip_denoised: false + linear_start: 1e-4 + linear_end: 2e-2 + cosine_s: 8e-3 + given_betas: null + original_elbo_weight: 0. + v_posterior: 0. + l_simple_weight: 1. + learn_logvar: false + logvar_init: 0. + latent_shape: [6, 16, 16, 64] + cond_stage_forward: null + scale_by_std: false + scale_factor: 1.0 + latent_cond_shape: [7, 16, 16, 64] + align: + alignment_type: "avg_x" + guide_scale: 50.0 + model_type: "cuboid" + model_args: + input_shape: [6, 16, 16, 64] + out_channels: 1 + base_units: 128 + scale_alpha: 1.0 + depth: [1, 1] + downsample: 2 + downsample_type: "patch_merge" + use_attn_pattern: true + num_heads: 4 + attn_drop: 0.1 + proj_drop: 0.1 + ffn_drop: 0.1 + ffn_activation: "gelu" + gated_ffn: false + norm_layer: "layer_norm" + use_inter_ffn: true + hierarchical_pos_embed: false + padding_type: "zeros" + use_relative_pos: true + self_attn_use_final_proj: true + num_global_vectors: 0 + use_global_vector_ffn: true + use_global_self_attn: false + separate_global_qkv: false + global_dim_ratio: 1 + attn_linear_init_mode: "0" + ffn_linear_init_mode: "0" + ffn2_linear_init_mode: "2" + attn_proj_linear_init_mode: "2" + conv_init_mode: "0" + down_linear_init_mode: "0" + global_proj_linear_init_mode: "2" + norm_init_mode: "0" + time_embed_channels_mult: 4 + time_embed_use_scale_shift_norm: false + time_embed_dropout: 0.0 + pool: "attention" + readout_seq: true + t_out: 6 + model_ckpt_path: "./ckpt/align.ckpt" + latent_model: + input_shape: [7, 16, 16, 64] + target_shape: [6, 16, 16, 64] + base_units: 256 + block_units: Null + scale_alpha: 1.0 + num_heads: 4 + attn_drop: 0.1 + proj_drop: 0.1 + ffn_drop: 0.1 + downsample: 2 + downsample_type: "patch_merge" + upsample_type: "upsample" + upsample_kernel_size: 3 + depth: [4, 4] + use_attn_pattern: true + num_global_vectors: 0 + use_global_vector_ffn: false + use_global_self_attn: true + separate_global_qkv: true + global_dim_ratio: 1 + ffn_activation: "gelu" + gated_ffn: false + norm_layer: "layer_norm" + padding_type: "zeros" + use_relative_pos: true + self_attn_use_final_proj: true + attn_linear_init_mode: "0" + ffn_linear_init_mode: "0" + ffn2_linear_init_mode: "2" + attn_proj_linear_init_mode: "2" + conv_init_mode: "0" + down_linear_init_mode: "0" + global_proj_linear_init_mode: "2" + norm_init_mode: "0" + time_embed_channels_mult: 4 + time_embed_use_scale_shift_norm: false + time_embed_dropout: 0.0 + unet_res_connect: true + vae: + pretrained_ckpt_path: "./ckpt/vae.ckpt" + data_channels: 1 + down_block_types: ['DownEncoderBlock2D', 'DownEncoderBlock2D', 'DownEncoderBlock2D', 'DownEncoderBlock2D'] + in_channels: 1 + block_out_channels: [128, 256, 512, 512] + act_fn: 'silu' + latent_channels: 64 + up_block_types: ['UpDecoderBlock2D', 'UpDecoderBlock2D', 'UpDecoderBlock2D', 'UpDecoderBlock2D'] + norm_num_groups: 32 + layers_per_block: 2 + out_channels: 1 +summary: + summary_dir: "./summary/prediff" + eval_interval: 10 + save_ckpt_epochs: 1 + keep_ckpt_max: 100 + ckpt_path: "./ckpt/diffusion.ckpt" + load_ckpt: false + diff --git a/MindEarth/applications/nowcasting/PreDiff/images/diffusion_result.png b/MindEarth/applications/nowcasting/PreDiff/images/diffusion_result.png new file mode 100644 index 0000000000000000000000000000000000000000..7bfe96978e3496305c62a3301d34826dd932521f GIT binary patch literal 365552 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
  • 9BUI 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

    1&}irD zjc#`7a!rkaDPfwWW7*;LOjq>uH1&tj_72>X1#c1%q;K;uC185Y12px>HTjF5IgA`= z=cp(-sG@j%K_!(}m6^+ydAq}&jafn0KBJ~HaH1b+of{V}2VIdob=R7^1&{RCx^cz> zo;KW>CXeJTFLbhIQ8^w1Bv^qTZu@#AG+Ol*we2y3Dj8pxLzdD0x+Mpaft*pXL9Tsv zZHEkD)@c*Pd^DgBsyKZB{F&xv7fAl#fJW|NHEpafos@#Y_U&5+EKhcE@deFFp3Ov- zRNc+V>FIC4?YeVmz?UsEben_YbI_7&94gvZ>^2m!#e`M2 z=hjal?e%V?QuFSbYJBDziRqzxOY?3yX-eE>C)3-R1%mI~%()J5R%pagWMJ{?o0ZnN zQ^E-!uFrg<8f4l3+U@c^$?dtMU&~}jY z`ndGjKzV7-cH=EpN=}pU<+r%KT=-_uwGFTM3$&w!8Un zws}J}GxDn>r&5g6!R}5p{c2zLLY=?Y2v}aWAi!$thuMz*J7m?MVIk1xK$#fly7zZ1 zdTI!{><>(_%{NR?kM5!PB}MKQDwjU#4U}S%iUI>LhP;h-HI?QaLz!GaGt2JF=!zj8 zrTQ%aRF(bGj2r{a*%$gnRm?dK0!4N*6>rwvVX!*Z>R|1AQK(8`7ihi>+f2C++7~pnuzZdl zPzA!eGq|xqfbk6shMIF!Bv_k-v+WBDCFtXKYk-AcZ!}jHB;2)$qltG0qQ>7FO$~U0 zH-M__GVk3cBji?N!G2-T4h^Fs0e-b9rsP}~+;7MzF%7TKMK|$OD*IU4yprk@yuhOD zxpMu5vFq}O|Iv8M_2KBj)$;Abpd*Q(&}Ven8L%AiCi|p3Uan zI}pXwV}LA&g`{TrZKMNi0qtYd`MIPV5PAGB3aMcxNNUT~A4cXFE&>tv=X`7Kil7pA zy5}HxGcE`#E&H@*rrDGBO3%Scm>O=#<49M`RmDdlma?US3}rkdRs4jkE7W>3n2|Bn z6yCOeNz9R~d*kpiP_HR=`qESfN`k+1$h#HimI$vdGN0NV9MfB{ijd7yAjOa_MEEKp zv=;u&N?JZ5l=89>46PD4xu>1?&m~#yyq~Q4&TyMw9CUe{j_UFuTAjK#~Jj)%Voop&Pyy@Xx60JO@*t`4 z6vd~(P^|%m!c9u^te(6qp)vXju7kP4~PpHv0t4cxIVg~C*rUDQ9|+$(mzPYF@b zl}G!2xYDHtZp{o4TNWtAd_Gu%1uFn!MG8Ph`wcAKK${>-Aj0L@dyi|SC{a7w0u6Mj3=R&ynvnWqwK0~SCiRAs zzhwpQ8gNBOI805A9Wr9mr{}aCz?wZ`HfTj z+*iLSIc!7|Z!w3mw1j7wb1L@V9^;F}CJ1VLq{tdsE|F_g(a-jb#E7%JjH0_-?cF?_ zkKOLjO@4%+;UHqMYhL4}MvxI?q8{CfsyH%zfOnFpC?Wfm#BThuBJ!IPs&lY~Y$4wzQaisyIrG} zwji43F2Y+v5$W7qCTiESz_0Rb_eg5)v{mK7pKc3uZ_KWMj@rIf+=5tVlWWbfAKv0* z;(ebd6{0woIPvaI6f>W6w8S^2m$k)i_m=V|AEh=7n4j%`9&vaO8UrbFg?3{)nR?yV z0m$A9y~bF84_5sZVT||AJP#2)cW~zAlj-xYbt<8pScMjsYi=`NgUl(w@;m4B&JVuR z5y2%5AbnP8_LWLAg|`PNd-(F~W=rS4IN8si7VQ_~9z-~1-g7WXKn)NS6#O8w*Mh$f zSaWIt+_>z%-(yfK`;Q~U=i#Thd%`HT@Fg~I6A~p`W(}Va{^0NtIqm{W8(Taj5Lb7l zZ~b-I%AXWbxta~wUTHClsTwvh%baaZ$cpx~ZN^!gzaixmQHRu8YddJS1%pNV{fL&& z5t{}of8&`2D-8_vlHY26)(ql7i{7C75Z=KdX3@PAbHB?c+}rLMAnz$WRG`S8WgsTA ziTmD&KP!&ppPRx_Sb8rEX4=>p6A$t;1 zQc@h8y^b>r0F3e*8?nZQt7HAw*jm;SG_y_v){~8XH`N62oi6z z(05WuZPO%6!js#Hk`dwBeu6~_R*q=}n=)0qA}<@H0(Puuzp%d?|}gZl{3P7f;@s#rYA-o6U#~cg>K=sMkswWcxG-k$1b6rA z3>VF)ysy@U$+vWi*-NMQP_YjDlQx9D@F$twwnln%P4-xkVM>Lvcx=?0ZzXUlQ)bNX z*VN!c@}FeoqVOz_*L5|z;+u6WhR(IvUUPt}k@(CkB9>`8Z6e_1UDM-(R552VVb{XF zp&JJYBzK=6pF_%jfjD~B_$t#ysC_tEcka%@uY`jFb4r-J2z!>@Yq5#@&s#-czlZGK z{M{te!P7+-F}v;ChRUJw-er1&?B0cq%(oULveWI%s?XEg{8e@pX2n>L_kg42Ave>B%VndoWb zzvdS0S%-BOV^iI}^N_u-UuI$wz+_IZn$~5L6R3PtZ*xDOo=phVs!4Ql+!6B{ZP*B{ zHHF=_zPeHTB=C|?)VEIziu}CeUn5JguD_weUH%cFK);fQHiAo)P&$*zU9nKsax^wSen2B1x0!cj?&?LVD3+#=_qO*{E8^IF_ClG-a^JaEK ziG$VekU0x}uX4+O(E>?KHm8;GDJXz*w_CxV8wn2@W)v8_x+g~&mWA)bLt!i34B^l@ zf@%v9NR=hL?r-4A5knYAoJ$Kq&i-pr1^{}vL!p|W3+>y<7|Kv}^X~Xbz`3bDgs)UG zGUQ_dgHWrst|(+zUBWABF)4Q}uOy9y7wQX$`4i><_pEgSAE&F>2*WC&cEtCBqo&Y! zJyw0&i zmcGe2r0O|{QRgS529NE8ppotc&z}TUrS<>%CvJIu>A+RhtB0~uGO!92Nw|?tw$}Xq z=dj3?VQqkJ4$rCCd`CD0*V{Q+}~PiQSdXy9mq~)TV^%f5C>%j?A1=GyDc?g2BY@D zLsO-DzITRW+2AUS2Yt|7cQ<+^w3A8Z8;pk%!S6_fy7P_`#v-N3@%KkL=v*p!6=*v{ z&hYG-0x%OaeFh&7-xDr-xW3ed+UQ&~1pHjHwSdP+P+H2xTfVsc8X31OBCl8?y zBK8tO5UzsJPw{MLcnoRms@Jt<;|)1WsYLmQ+cF}d~8p^#E-Nx`My*rg0Q&yYLfuY5@Q z7={a+X?iVSi~=Z=f&}7(a)e-CBgw4e91{940VQ`5ihDaIy}iFtY&O{WM$YTV`{`>W z^YPd=E~ODsVW-Q`%Hw5B#}_U7D5CMeT0Vwn1k4Os6ifU}0N}s6K6gZ4d$zefaTH+z zCi_D3eNq@=@-hgdv>m(sQm&10L}E=V9ZV(-{U-7`DjDrj{ik}mTcI8}V>A7?$EC=! z?F8>8YM~TfjktQuu#?O9LXzX%c%W0k?p?nJa0N4hFAP*D`sr(EdDG_Q3lr4snZPIcNvUAoqP^Psn)-(QF(V6^s3 zd06SyzEVt3WNRpuP6|vpnxFibk&lc^N*3e4BLL+{Q#jstU4?}7;kYJR7!WLMCAE$0 zc{Id1206>}U(Eu~J{|D%A6ZD%Ooi@U{^YO0V0({$Qv{tW{XRKs|ML{vVtjo2v*Y~% zmV_X&>@VWp@{0&KemS2>iHU_bOv*9&E_u`Mef{&W{V=(vztww(3Jowcp7jDKh8XNA zMiTg$fqINU8jtsAv<>?I+pTP|9B-ZGS`?Khp)T)pNq|3tq!DW&O(0x=LhJ1PW4hLR zICUljF%ZM1f{~#;@DS)@znD^by)IvZ!@z>J7H&BFEMN+mqhZZa)k=)!H(-a=8ecR> zGl>!1(@-Eo1PT{9hwg-Mp?%)9ZlT2R2!=^s_o|D`$kgOTP__^pM^}0vec&`>@kF+g^>8#{gf%J(fcIf-SVB*qKDfEvvAhM9X8VA!9lZUBwq3vo zI#U>@sV@lltEAp+SX~^hpPx2&RsGmF>$-h9A-PJL6>y3?2XKsE(C%$ySnz}=aL~0q z_&tF00UL3VJp1v+6Da&$!P-CVQ_UlQ%D`1@kr^;~jXPu#fi&IyDhZZJ%O|RZCs0>^ zui0%E`ox4FOnLnGo|P5a0p1G)I9I+idy55`9sQa776Z(cH=D4R^Jz^1VCKny1yt_H{rP{8hBld4oYr$@PXcU>F-|v@ zl$87Lxb#JnGmK{HFTmS+h;_VSo3~VQziyRe{!Om&CuI5eH_{-$GQx?=ACJaMKU5kH zs+tspgvRw~8}ERogBcusL}2}mQ&hbvn<0*6^&(C}JdcDR#d^GP#QrzaQwl-Vr_6~6 z52A~VxGS9p?c9A(Jiq)Txn-&OGoO18Au-HpHQ=YLtEkC{F&f9^4A0`*#lYS6AjjP% zH9zJ1vvJ9yKIx@eXu;&*mB3^ksz2fXeu1{jj7(rEk^9UBuux#CVVy?gc7ICV4{(Qh zj*Bg<0Q}d_vkaVET%H^0jyB^NVv?JAp&<`;fG*f>VEPGq?*^=kx3^czEZL*xzDwc2 zvJ-e0H28@Ti$YV*`=!5JsW$si&DME(jsnX=5g3?PB`LTE;;`>G(M#y$RHZq24Qu7!~OqfCERRzfpygCL_;qw?df8vfEM;tQqLBvq~;FGLqeOUbuNp zk#;q=0m%3eq6WlF|)I=Y7`yJg=VL+;h+D zTrY6k-Rs(OzULdC$eC%}e3-F%Avxy&Q9$1)&vvK{0=AkiPo+&!119^KM{5x;?vY4Hg4#51Roy zry-XY#@PWfpKy>9ZqRPk?&^G^z#48N4s+BMtn(QZig_|Rh#twH8mnr>hi+TanAu+b zlGO&eNQ2-foBSp(nn;+b0Xww1zo;r(&^B{wQv|8lO+8X{1nrlytdvDc$mtKuIDwkM z#yP*9oy_oqtClC5;5CsfI_PW{-9^TD)y~7P(+nb?Qxm%C7NaR;tY4W}!k> z<_BeZ4=3igX(|7~zUG2kwA*=kObfSpgB=baB>EpLcMw8YtVW5p z*NK5ks@K)p2eWEHFb3Q?KJL%vbsdL7qd*&FlZ#x=hy|^XdSru*KU|)g!oFLpcE23)^EH5U070J;?cd6WCHxD_I*wwkB!(i9li72c?^Q{+@xG z=y$V@Y_GYbBf=j#HBq_NmN%#XobE>9fIa>W#%2S3nr?in>=zvuKBYmNe01!AsB?(ML-#|qG)GOJ$l*{|f;Ojd(H0JgnPhWgWc*m+P`SO^Ic^u1Vx z*;@iDvZTFqz~X*Aw81ueZGq=*EItv%2{h#g2jke}X*Tl0+xPtUV@Ft`Kb3Yi1=BsD ziTL|gj^;7#-nuw3UIa*61Iylvrl+<)hYY+5M(c>H{*XEDc1q=8Hm| zDSZ9LlS#cXgEv^aP)-3jtx_mES-_sn0A` z?lU^`T^t}!EQ+AR9Z)38xE>Kjmxm@6Ci~~>l%^iwHmVdSz5A3+>))f!sq?u;LsQ*^ z4@Hk9H1A^on?|>oD5^M`nq z{0|-=FMhho9Ecx<%N#587dCc8ZNQ?<^BIMaFEEISC{AR!k0pYgB^# zRD5OZi2>#`V=c{r#&cVU7o@+QRE0}U7RBBq&;}t|LgYObKDG0_VunW%a4;WEXGaKX z6AR57c2Qv3xih|y%<$-Q&wmxfRVqrAe1G$VePxqtXlO|YvHsO}1pa~!k3{99BW6`L0Gxgx z-Gu(_=Naiz?oa?$r)ySzU0Q)`=R26`baX}|Ezk-=OF|?~K?2?wy9~9j2j5fJZF#

    z6DCrz);FZCYADJY(|b{@vYu??of!%5U{SOV3l1*jz|w%J_k5hNE5>@D6FERz1(10g zxu3kZWQu%5Lv)%wfFZ0u*faRfGFD;$DQQ_wnJxpVs8T^^bD|vzwN9ZpNJW0%Fu)t5 zrqiwTvh5K=vfYlrguXa7k7VDg?LKO8vNqLfse&F)p=DTubw~8 z+&y;65Hbe{$^bphRfS3Q<3!?baV!pPGQx%cNHPs#L>0TA{)#KNW!Da{N+#^ zndEAl!#}_E6%r?m{>|#Y4oN(sxlS=AYgm%Uhp992?QO(*JdSy=SNe&m4#Vh;2g68# zU3P~{WDo>s#N&knbjy|`EC`s{PXRi0CPyIyOOfJkI03(>Z5L~*uT~tui{-zI#4RDJ z&6qg!+%#Fd4G-DO7{#N9A}C7XO|~4u@)=eQQL3Lll6y1RPh&zy^RtYY;u7Am!Bv|iY>n5Lj`V4xBuD`5TNAe`NX6$dQA;UACl6| zqv2Z6+{0Fcz5R9IojQ-%4+h%b{Sj{UuD&H&iD)X2^Y`tVEEU#l+E28i7IJ{G1Y?gI zFJLgDn{H>e_YhEx17!%9+q@&g*l*-|UyFt40DJK4s#wrp-OteVsoH=*50w__a+AuU z*;OeGUE1ScN}q1=6d7#ifijkEIUZW@Dx%KM9(=ZsQ}JX{#sdGwFRynp%5KMX>G#+^);4LB>P{xYuJ6GY>Md8Wef9S~_Va;-I#DfgK|vr6 zRr^+#XRAFBjTcg>GZ%VpkL4)yD+!d6rDRGgqHz=*esybS3L=52Koa&igbW508Ow@O z_N^M%d$pSV&9iN;l#qbn;WNvoKSy||;6B5EOT1TLRPUPskda6m3I;U{$=muSW0z!b zC9^X3d2r5Hu$^_V%V;SI=;v-PwFU9HySsQJp1M9-8Ae}NGsQn$)$3AL5ka5=8n@`haZfQrng}m5ds~#Pubx z>tJ*pMczdNrjg)xAA(Lr2?i~Z`5nYu`*~_UpR*5$ zW63p@y3H9?4<~9|*{e{>n{;emM9$+)(Bi~^D|b2mX_;he@)$g>4c#xBr3rwlEs|PE zSdi5-aXUve8j>Mjbjqz@#&PcRlET-UQ)?}s3AK#DM5HP&eO%2c8VhS?wvNt28uQ+j zaDA|J4q;_e3r%wGq@Dr)#E@#y?hrdU{OLi32SZk$m-meY6`ql6-U1))keQb--J=5M z!JOAYA5phSWf~SftDS;K1zHC4t;k_Z5kvE+hMTc-a!KZNJsRam{3%4GG%jOl0p^A6 zin=BEE7EaEmh)y!2~K8$pC^n&wx&qWEW4CvDYhe$#1AIC;)CMj;zK7IN}eb8M>Lr} z?aZ(-ntHlG;+IxH6qyu;Cvk8IHdEte)ohhbWl^LulI!d;;oIjyyD@YU(eqd~@fdkt z3#n51ewcf13qMKR;LsC7Qg4c&`w|_ybXMuLdCl=!3gYB`CwUfDDELGhsLs`CX>@(r zHb>tHHXwGSv$pqwENCjJ7@%n?x9VwIhzQk;KhetTTJygZV<`x07ERxC{1-U(2d@HHFJQ--Fc_DHMr(Q9UFl5k^a3>8DxDL{vi71q&}cw&&24f&==Pj3 zQlw#Q&AZT#=G$cK_rkH@);+^7mVb`LQyhp5`8C4}f%ppNd(aH}He{ypsOQAAnh^*H zV>)9VB{ap7gK6+j`G+skkvYBf<3KM)!jLs`>t~1iHW4mA%RK(IiUmaj@Fydnp8WG; z%%}*2N#!=>x17 z)zpn$K(pQLP5bB8BxcvxH!O)2Ea0R|pn#&|OFy2tThEf8EVB+6;%f~$fqBpPx4$eU z*JuC43227T*ap;OG6F)3(q663OFkwdt^| zsbX}+&lxIb{JB;mO-`0J$GVoE)@=Z92CVOX-hBAAK~%3np$$=AWwrqtx?7l4HDSFv zZtDwl5P%D9|Mi)y`eoBW(SDxm>WRbVhlI3wTq*DgPdHP}OjEVSho7@~kK-?SkJSP4 zw>h!c|ZFjG)h&;p5&ueB=bKDO>Q2?CHws}73nfv>X%va zLy80w9(o%(azq7T5&&tirCJS7@542#j|=ZBod(WBt3|#5(-@HQ#ZBGjU^i zC>nOLbm#6h@iOa%04pV49}*+ZRDB`X%6FFoS$u)Gz1HA{;f$zLcnW&6;;F=*xK+Z$ zHNH&rBol#$sZJ@0(xYwgcNBiEQiZc&szf+`p}hNrR1uIc9nv1i1!jmQl21`7@V_!V zyLP-g`&Gu68#jsNtWaWVN1{o;TTsc0|uq>-SM4!)NVk(QEAODO2ElA2)(`Q5ZfavOQHv6+?u5^3! zD_0#(d=U$%r|vGYzyg~7ZC_V8iZ#1G?>&ZNnxAupz;1^9{=N)l}aWr zR{Y?g-T=Mxb^iHp zISe6&RJ4COK15SM5}PHNIp zKF0gV;lv<`>(^-sEUx{zLtYfU+yYn31UCyQ6p>8&bOlPf2Au*)#g$?3AR7w0JAY^!IypgRu zWVAf}o_`_XB1dXlVzTM)pI)ACiL1jnwixkdC#B`g*l#s4Bi{P|LCCS0g_;Wm-j|JhbtL;jn^J~)$7&CVK@D^; zaMMhPQrev9qRSz%I^>%A?9{=9SH6&&sFeHxa;ayLkS}Gd`q@*v*^|q~{YEUANWGV) zmkuWueT9<~b5f6B_cGIm?k>-F2KXCIAwCb(83ap7aa0)Ub21=fkw()scpF_`5!A*S zFyw;v)+bdgNCa1cPtI~xNh@othr6Y%@7c8(piBPTI>=T@JEWR11#f3)SMyM0L2fdA zBj+7`=3eyk-a4d!1VN9_)#XL+jgUwWo}MrY*4mbSWo0Yr*l-n}`wAAM`*Ez3iA<(g zfh{$(FH{OHM+S{>`mRq`e3KWvW9)w6e|XvzW;e(AZgEgn4!3Ka5-YXsoh)OoT_t26 zwfi@NQ_%XfZ?{RxD0-P#;C#+Ez_XZb-a3`7kmw7JIFKY;xv~aNnPD}dBRwTZ1Z(Dv zfXd&qLemTS_ZNI}RGe(q8h+CLvV3AA`bjn*FHz;1G`LPt9%;@eZ7Y?aHcjaRVG_D5 z1E+Ci#f*gbXYLRV^U4rUPV(>~z3`1q)2dfUU)1(-Kn@oQAPzCO{-}QKP4Z9ve1`T} zHU0Ee#L?6RbT(qh&K%6&4%Da%G(@G)xXpp?ZZ*Y;riuIz@qw_sR%txh+CpJ7TNCF~ z7nTf{vfsWbScy}xxu(GK#!J87c%Z!=gdz0-brVZ!8mGoz+-MkLO@Z8fyt|dS>nQdE zhP}B}qfo`d?iuz^Ejo}{IGYVFEF929vu{_UF;X*PLo{<2xqm4vB4=G?lTXqhXP$%$ zNIZn)8A#`d2doikxr)paMXafMA6xDUA%n#rm67_d;_O3y$*Z-eg7joU={&jGU1a)} zs1*j09lu_&Yf}lUaiK81ADkq5is&2!%G0T=H-%h!RIyYEBE}4sc*;uNm|yRryY4yL+cr9&3a(=k$hdo4R3|S<$gEWN|TGpgnjiQ4W*ZE z8&|_N5}5FMM$bLS`X`zqCo+bBh6mt63`?||Jkw3t-@^c4kw6{`KW>7lWCqyKJ zgCSCpq=a)bKO9?**=j*QFg2|k0QhvwO8P>X6Ry~l2DB1vyrijG~XZJe0PsnS*vuu zW*(L6Uc+|g`EuoN&ZK(zjKW)#>q0`YsMTn~^PQmY1O5bg<2R`LC+*Z>F%#4!&2p+( zq-HJcpq7(&ubt9PpzZy_lb{TXQlf$>g-D`cY_GbMSFPUbP_^NO_SxEj$rO@RMi9pf zWg8v4qey$M^fQMVYG0-oUfmw>y5<2Lrpnw1c8f`P^Rd6;Rv8LM^+DXNqtw2HD|m5K zi)Bd0B9&*RDOsI6e_GzMLkmDMyj6KFp+Ddur5k`AoM8u!`hGO5=A{lYvAbuy6cbrvRYj#NT}DWnf5G{tC}MFKN(`m*(95kT6|pJR&%K_@GSr|V6tOVNHR(~! z{fr${a<#R@&+^}<bV2049Rh6GwiXY3QtXZctw8^|MJL9@QTPDBDmjHHHQSF3;Q> zgSuZ&^r?J>qel>t!G^XTIxvz zDWE`WQ`wj@D|aw7iWf8&@E(Up@TqPFH_Npvp76?n2Lv}FFXxLciE$4kYvUWfF}Csg z#d|w6lCTH^HiKd8!G3ghL;xY#Q@yiI|NRk>*JA^P0gTiXx!TNXbyHQ9IIe)&@)a3G ztRtDH8yVDrhXu;0yX|}^FwsB4`OQOw4q&c?8@>jH0UOw5u95VI7<(xE3}QnoO%3bv z5XNjCo1e0|L~3d%kUU8yI#%A+9C!`tQ{VQ(hJS%&ZCyW&L9d=ZiB+^*MIx;3Z<;i5 zzvKUcM=M--SOif0?VGxG%CKyDn*)U^`x3P8;n8c1I}Ca?MhSlX3RA@q81ZwJT}V9? z%xF(A93n|$67^iI6Oi-O7+4}l{P8;FW6#yub;B!S1E|RXDQJ1RfH-_jVdgF8&GXd; zlyp;ETo_%=2H(f!yMhF1=J7h(p<1>lb5O7ElL}>PuViRSK1}2!_oHjrkSfS(AC4v_ z%<|Qo>7-P%5>WWd$+7I(eh4h_`~d$H{&`)xxK6E4r_-UaLLrBA-ug)vs zo;6DfQFz-5%*lyqr7e>qI?M=9dWmJ`a@qt^N+IHWpsKo1RgOpy-S3Q#&F5BF36FpU z+7ba(U8TQ6eOe*2lPP|;kGf(FpB~cU#MDAZE^E+tD9L=2>KZ{04ELqu47LBEJGW%& z(=;VYB^ZbB=E4g>FuEzH&hZ`ptl!d1w}Bk4dem%RQ*i`%1C~*QVtSS9Z{rKcNA8iD zi>-gNTD-YLCOc68ZLZId0XvYG5^9;|(S^L0yl^O#Mx&HcYtMLfu8>qPZz3`%`4+j+ z1Sa%ezQdW3?j1c}qe}onFpe!w(DOIuuiDWXaK)<*-k3ulsnVC?i>6Pj&o1*cGmhkI zRGd#?!lJ!t(*8tMVw)t|YcV{~HJx-l6`F>k+LzVIJR_Rq{`Kc4!MnnFO;~0tzP|+F zd><^CU#ts6F6E6}h67|QQ2#Ea_azb2F7tR0_`IDW3sFt;*Of#_7V&hIm6Z+qIMR#z zFLPw|M&VSx$>buCWP?lx({_I9>Xq;)Sq)t@#A%~PJR7EsW!IZBrcmenA)v@j5#4N8 z$a^Hh<%9*2wUft1O&7f;aOE`lS*r9&-je*?oNl8w2}Ynr&S{76H4i!vV&%)cmKZ#l^#| z2u;Rye3lCXV1W5CYrnh{k zO1G6k!GHBW)X8Kj5PAyhQSmA$Wp!XMKAXuW-9~Wlt`OD4UIdno&euNVvYhUZ5rAk2 zV}VY;Z`NM@ulKu4 z7^zHLN=&~vzTul1sSbIRo<@T4bkb*Pb_K2Gjc$O(^oN{LIQBv)0FTS>c=6ZdGt^O= zNV&pb`Xo9iI~MQB{0P!ftb@?Xnwv@;>S5`LF0=ERTFNvdr`&qf;%;ozH~D>1lO=X^ ziLMFjIn8gV*UBX6Uw2>ry_OuZw>6%%Ds7k|XN)Lh;&28^wtwXUVW>uy-HL=C=shA3 z*t^nl(>P!|^FJAl)n->WU3R+!^L!D8k&5Rq#a~?LsqBm?ujkR1*e%_QD?XJ}A80k1 zNws@aWvg#-`Bu$(`l#&)#Xtu)T^tqRP+%r}B&)&S!L&ijiL5WR?ZP7i#xc<@=7D~9 z-%yKND^tw~pIq z+G@514$mITN{~k$P1283j0xH!ND?K;rFLK^CFuv8Qth?bgO(E zrp$Vgsm66DsECs1r`W}fkxCCrN|7GYP2LG?T$~APsc0!>Wpt(wk0MY@9e*qHt}2B) zwcaUoH!Gu$59#ZiibcuprOiF;_=*v=*-g+9C?QO^*$v}f%9685x~ei~A{Bsy+2NU@y)FLU6-64PaLi4%& z_pF>^xoBXHQna-DK}~jjYic@$&sM??nNfeO zMj%lmatAT8swTU!X(A$OY_cSd_qG zXFTZn45BXGMDl?;R^?T5Mx$vN5%+oWonS?kPwgy) zv323GaAYUYg!~8`Z!Xo(6W1L<{@EExBmT7GQ8NyL_K6esx`fiGXe^i_o^qlkyBp|+ z)71v;{FoJcMA@6y1BHD<)Y{kUClH<&Utn5MG9gv|`HXVd@*YGWUAd1nnErmy8JQk` zGy`TDURuvLaZ_i9hIQJ(b>n#DvD)mCyR~3j+@hp%6pd{ZXGjP`_U5i4u6rlI!H`Qr z#PpETSyMcq9L#EL>P@0tB<1E_t*y&$7O~NSa&vA3{_!aWNq-yuf=6xW@l3M9*5UaI z-1Us>omz!iwve5FuTmE#zGgpV5H{$>at6T2Hb$#y2#3_lgV5Q5iC8sWE;*hAN+FnW z4n+Q2)vVcVS$jdzOpi5di9DMTh#-}m68g5|e9DdCR{{eiPC6i7FKq&X^REaLx-D=2 zc+yP0l2sA&N~+0rjB{nJgJB$#Xs%Ebaa0M{^`vx=6TH?SXN@--+IM5+uh#hjoj4}v z7A)-u>fqEbX7ye5PhZP`PQ>cze|jh+F}&+*R9qC(!2s!0R%XhX8TpOHYQz(KlC$g) zMPuY~*5t?1Hd#;zQ5|_j&nv5W$B@^SCaFnT_B!2jI<$hOEB(Cznz4}M-@9hh_E8VC zhUj{jtB2@M>)Y(aEL^`XNX9M86|Nx$8t9Z_`*4TSt$Xy<7gZYx>86M$9uXPRPr<^r z$#V(|Z~*@f0bEYNuP%>I#q_kg*kljE3*>Q(YV0*{rdN8uFlJmos=-q^tw!_}`y*U3 z4tP{4Q5Z~4#6^PYBK0W3h3bZaI{&6pnVb}q6IVg1>xWxYa0CEnfkL+HnPP&NxK~UG zx=Mg(gaaL`dh_Q*`}9V?DcKr+7sIK#!&Ep<;ws^L$q*2=hD50Y18vl=@=2TT4q9|R zlgV|Uo4A|5UTaRzd%|YGSS^^Ga*Ampg%~JV?lCrc!m9tyO{>cosjI#vW47-1Gj7Pm z?M3G@?|A|0o>>P9FFz!L@qZN_p675OEPC`*vdiU=lZP4^5`_Esd4pn-nj3p2=2Q`dfV!{ECG;rP@tN z3)+x2#z6rvm$F7(Ac6VzK2*el)6)k~zGsv)?;>yR9vyWRqX+->*Uv+-$seWPzm~Uk zCKCR4NZ*|LJ7KRm-c6WoShn!v9db1A6Au$fTVQ`LLd>TW5cRRO6u=_a?y}XYHUCBEPv*rCRExDUN@#h!U-$`HO z8hS-q`8*^Cg>J(tF!c9YBq}yaF7(*pm8;giAjed3gWi&RmiD0?@%P+~W(xMtlO^8m zhnfw&WfW9o-jV>)8R2k1bZ2_U{cJjqcpzD^6mJ-K&r0S-A*{ zsu9oX%qHtFL>KDp(}~@XdXJdq0Y$uD_D7fBU2LIr?0(HYzOCM=WXwpy2Wmb*@QK)W zGlNrReJuXvhF@NhAH>u;5%(+TU{ku67WG>|{}__{(${8tyJ+(kAjtL`dfACjgfSrK z`T25!(oe^CMFl48%q#q0T{yl!+GjU82e(>=A4aZvN#Cn_bHZuQP_#Lw*{&lI)k+l% zErUB~I-;8uB7LkfRRSnaSvvv*SmA2*R{=YCY6E|Pos9wYTonR=%H!r}MDeI#@QII$ z@>947$JI`HmeaFj(Bg^;GNhL%>H@ti%Z!3{KJLALALzh_{ zA{@mB4B)t%(+gn$EO51_vPjTnL9xRQ*H;>f^WhDt+PUN=K+U*k5Efx;80&DTVR&!T zG&k=)7G9CbEVg*o}0K^DP%C zF1c|GUs3*JRj;OUs&W8*tl716ggF#eO(Ri z-m?qyn2Y(5w-ys0zyaPv?L+IYwy zABP~sqf)_oY89N|VWOJo(HXh771Cyv+=8?iX8JQzpg%b7EIM>zaSVJ9<8c^(inLI^ ztE9F{DOq(25@;d70Wrkw4s+)Dm=mo?B|!TNL0VQHjqYwOjiB2UKNb6XC=G^=xQvqi z_Q5x3fz=;%L8$!592-nM7!`7?e?D8(Vz8Z>N8u|oc)p=x%iR6ka~WckamS-s({u8t zK@@tn+9!&*;zLa$11F&Aq4@-p8iu%kCUhY%*er_%Ji+Htzk;0fzH8p&{teV?kC%6Ym3 z4LjM?FR;6#*szWodfbrNiY8!0Azr;|*2g)i&5#l219eN@>5eA71v+4o#nXX$FQ^KM za%sZZ*sUK3%5CPp7vp=$4F=}v$i=bZ!U9)7b7nEt?FCfr2uGo$?AmHxX;tD8u1t+Mc6AuQdy!W(UOwX#o zs-!PDr$Br0bEDNXIl(lA_9>+uFqhz#vH%qhB^^M=bTIk@WWk`)LAcFdX^-4`XBYcX zT5F5UGH=3Phl|!2dI6N7S`o+aPXXJR^7+a^pxty`mPIuwOgvF-RifZ`oHJ}haY*GAg+vGO(d6KyNAh8emgg6Ul%$_%>ioFYnJ9(zkm|e4Pi4HVHHb}-zbY&C z$lC9v^J96ow)0}yXrrFoA^YC=cMa?&cJlyM|hLHc<#1e zJt{KumO;)T&4H?*>uB?BT844d8x?YxxptRVI9;!C!E50pvgpxwik=PA*ZoBv7xW#T zF?(k!g?MyOudrqbhZG@4Zvtcj{mhpP;{W>5ee=;YPkN~C>HuPh)Y)-^+-=+8r=f;@ z_z$AqF(m2Vf}y$;e{>wlU&VgQt2axUWd!pT*BQlDbxyO_@v(_Er#UZv9ER!Tw)V}> z)p(>gDxHt_(#{pYvW%X@4X&vb%XWTs&8m?rX@gn7iGyw4|6J8))>Zi^2bHNq16BSE z3Ru??Cb1i;oGtpq*v0?WmTp~MQqq+{z}a=5MR6qXeAR5kP72HDxuWf-EGMdud%yU% zB%5~>-y{EB4+|Xe_E{(zDYJ)zBS2>r z+0fYh%tbKtC8d;zNfE(EgBo$-WHSE?%H|4O&1g41+THFgRD{M76*xQRe)zJN8vf%9 zd(OCou+?4Aq(rd^Xu7i6YUChQ-i>5+MmLzoKsW5!1&&r7#CWRx*86H!W zs=EvvWz>ZY<&D>dZnIQU#mZ2{4J4%V{yq4N4fgRHX*S*&oowfuRe|euHFbMZ~KTX8L z%u5ogDf;LUlV_x?571n+MOPjmlcf#loqdz1;K3~BQ#4&|wmCW2dsfn1^g73+ z7*^x9oIe%YeK;PWozbpL%EeUNjjOnS&G>JETJ5LbyP!pZ zt;6!>FQWNoE-A$5gzY!aeT4Xql* z7~KGKGQ5{GtXi>TmewwzzCvye*`j{ z?hoUZAAljPGr+HRU#sOGru&-Yh|m$u`0lh`m7lV*eh`WGcf}iDD%XRSNnDJNq4&qT zABkjH!v1pZZBY)HFA1_$GM?PWxoR#B!5U}z(1RDw?HVZO^Q6qeSkAuzu+tj=0hw(P zz97Bh=fO3}_YqcnC_Gc8;L=S9Tb`-*tH) zAMBeVyxhm>ev_Q(NzSyGI8Ws@?0NW6JHaO|ZuQ)2Tz?&|5@r)j+U$LMoQ~SUd`w2a zmYWMHrw~M+%-Nz1KO@;w#Z?)VgcC)xm)pIl87Det+Gw#!q6f$KPIiK9L^<>^>&;&> z078aBtR+$D)FHMdu{52`O<$e=P$&zslAU9fC>qoV?er6~eatXCA}FHrOOarnxLd&U zmy{b zkQxo5bT?xoq;nu0Bi`|UKkdt&=eM16?i1HJ_jPJAg_MiD&G2ScQkQm;IVsX`aY8wT zMalFH6~J7VtGMOdrlemB(5st@PUezjdtZErd#}KSGe*F7f&Wiq-#d?6(MS1|8HsU82xT|pcT_=f({(`sqYm*+eeTp&Z25mi^ z38?$y1ZQ|Smi$Q<7f!=iWR?E9<2ET`EcJ5)Z{hO^an!`K@%^snNR5@EYPkXnjHk2nlX(MYS-wZG&C@JDc{WX2(96j1hWuB~$d?nrmOh0jNyP8fI z&B=h$;g5)sp{xURwY?R!)VmOJo(@kPI@NDv^;CNG9_UD7+W%XL$Cv!xn-`uyUYm9&1pM_I+tvNofJtBzPL4-=V?O|H;7$pT^2qZA2(OwXbN13<^S8bYgI;| z@Yx6p8R>EweWGidBYJ?Xmq=0 zyEFBt75&(``Yx7RP+NbZGW4sXnJ}ABRR=!Szb4x1yx|m#1;)(7vLS$G-OS3G>R0ej znl#Y>0*If87)NAdSL?cRiyel6QGNjP4#o53Yr{e)BM4LN%uYBT z@JeiUHjsB7Iw;dG&vdEc{UeCttC&S~r#l5+X1CD~zjeX7^cRihi3Ang*1jXr{}H zzB#O?m*aq`W@e@YzLog1oEv{0#OK)M#3Pp|H{F~mp7cw8T&g8G2Ei32*K6ofP!q~L zG@Y52aVaBo*JR*i;c$M|Cre0{rB&=}M^`cL9@5PrzB#L@fuzW(ZwvRe^2R35EW#eU z;R@nSJvUpwMqgOyxdQ9R87XXv;V=6Zfcnz+UFa?YDJ1e97oDY{*HHa{mB&#JxL4oi zHe1RWJ^KVMtGZyWKjATuU+pVBSVM}_wcIOf*}rSLCa~T~{IhYVBHjtPnrdV{AL+EI zKr#l6fysJK#q?5fFiLhgGcdEt|8g05PTo>g8GqjdJ#+cPBMWffIN}1v$!Zm2-*k3+ z5+u*|F-R0UGF9BKGv9p~6posJ4^>aAL{W+18r)4>2+14+3^_=ZY87Fd@uL zAjhCNBfiLBO8Ef7AT~?>5HR=wLk@WQfB#i>=4vyuK=CBTXj-D;7iNm&GtWj6W&8p= zG7ifMoqwigo#S-?Ir;lF^vwguQC4uU0H??gOUz&*2<(+})RprM?4O}q_WQ32QJ(I( z?8%g@=UJ-W`8uzAXudkYU^^ZQBKqGme!A7jg%{}vw;q4YA5rCozjuuhh^~;N_>>(f zGhBkG&o_+{Nqw&{#Q6s9_fdIJ*$}K4EdOl}!?kavPGF}c6j*TMO71J|)qjss_?7g@ zQI)f&ULdp<+k-vc4rrN>u==>1fBY4I%Tp2Jo!Dn17myAc>!qiz^<|=0pVrBIkrUXs zQLUpW7@vPgn~YzH?ld1VO#aSf==0XEBXUDJkC@q#bg=qVB`Q_ub}FSgj%fWB7_COH zaXjt|9}9EmVH#p0wJ*Fv?o1HZvz0%-$+HF6T_{+ebpfs|pbj=SBb z59|zR(gCuZOF0?|XW3NBkI`6ng}qj##%!+V>qXDthiT;%ZsAU973r08(yuAAn;TB* z_b(X))gAtJz1%rF&kX8iWEFVV5Q=+i9!M}5#f)vBrRSfQJ?e*S!V{yI(+rDuv|Edp z_`+9H@6q~7F89T&l>t1+iON<~Z~4mr{L)<`jH;?l{MyOGj7B@od{5%6G(pd|aeM|` z&)Q-QzP0q*ch)?j;Gp1U6_$q*ylYZ7!SG67SElF2jf26E?Uibh(WgPsR96sUPJDa(9q>hk3AtOqaZ3Ggf(ro4TMD z>cV<;mEZR}o~zinRDOlVv*T{PnW|4ne6uNqGgLKQBAMd5MK*pHySc7gN>#Sm7t1O% zj|+wis2K}m3@6@ib{@SHt?BJ|7Ns&0;$+(-PJ#%0)*dz@6+~at(|I5ANA=U6I=8!b zxckE=GdhGx2|4?=Ypj-PWdo3@>)wuA*7GO+Ll|x>m%;&G`JWCtiTM*UuVEsNNz&x zZ@kOW{Jit_<}crcvGE$0sIN_+dXq+6tFuE?ZM{PL>0Ok*;s3SwrsO{;O(3#f47VWz zCOP{fsoeT%Cm;AeY+UbiM5-sx<<%Lm{ZfyXF$qnj*&yRFtV&pg#?*K1%1_^Y3PiFD z%16x*|H{!0f18}b$rbm3+2IdQ0AU=Piidc^nS8t##Pi3yy#@rzjwR8GD(J{z-Uwf*hswAD!-4U80A z`}3Ukg!4l!Pcr8{br)nS2n#NFSOK)%{+jMXmH$h}MYiiZLw2VTn~k$Xx3`;^Z^9m6 zTKv_IqHyJzrTMC%(F;i@h%1XNz)%j=%k6R$_Bh% z5RBV%Q3Zssy92p}we5dQq9-je{w}VqwH?`EheLeiz(AMhNtA(PDm<5KXu=*0{k~vc z$;TT_e=fRxUi|ZW4y16X#`=ISEhV}1z@&I32DJNuwETIE=J9Vz;Eebx%&7PNl2Zi? zkTa55`PfO?1X3lNU+@9>a1FQ;vR=v5+K1+-az0y#+gUc;d8}3aG|kN5`tBqD3w<2R zv*CwJ&#CQ~M!Ej`eobp}|74%6rHxUN)8+0VG^ zB*YNmncV{Baq8?v3hSUZ4l$*hVOr@?2QH^!$xS_0wlT8E^bTM zTFr^vZTtJr>C#fk?EzGz5X?T@bXKF1ps{b8At4ug=5uAM4b}-{Vr{$J$$dWx zFh5JYDOZmhufzc$+*oQ$o0&<>mH-#GMw<}b^)H6E_7vUN*e|Eq1yc{H0v!~U z?VP>PaA_7ImZ(P=&Anvf@%ZbmU!n>)34r+(Wy{BxbceK~FB8K)m~vbX$)pKUrDVZU zu^_y^xS}j_q(|>p&-{-l@BhXhfZam;RE#Y7arz)D zBHz7u&)X&+XDkeWWkfE% z?Zbuk>fpcRjp$PiS}j&&uqKJ3cBQ!Kib|57{BVB;94Rb*e{f+=p87zJ6{~; zWAloNz0#0gU`OBAj{>Vn_eCB?>L4&K``9w~g6b$WgA=No1i7gHW75dIaosQmYPj_+ zs1dTxbyM%`tIy&?bzA0PrX2Ce;vO~*_!O3Tay_qOCy|R2Zq}D|cK-Eg@6(uJ#6bMi zcR#Aqu2oA82V-J|;rl!;oItxuimHU|%O%J?XcT|*P%F4iL)L+`20&nUuShfijTy;U zu0P*G@RW+H4(K~-N%Y&tD`qGN5V3+)nK>$-^zvj{IZXD$ymtrB+@3!{Ujh_+m;VUk zjZR9@o?VjwuYzUMQ@;=*1>I+2QUnE!XHPAa5|6i3>QCFM=WFY4qo{HGo~clN(IrE) z2LB7@D3A!RWE@kPU!E^rns>*2&f<4of%=n(TbIh~{$bl3L8Osw8{P2+e}A@-9hnu_ zFEl}4xMcZKC>H6wsB;(mG(dtRXamUk-j2zuPAOVKPanT`HY$5BH{#{9JCnoxC9Ub< z@r}0kEuz&m_atVu?*vN#oIC(rE^bhaOw_MwQS=IEvUoMY9m_zm_6m*Z*^S}%Z@l4A z)I(4Xj*4{CPC-t*&rxliViD!$RQ>U931PSPjLmI*vnL#A%myGwCL5$4s~-N++yH-C z&k|^!lme3#>$KX})OuU-C*zA!=${M*X%-wg%ecvPp8GcX%7zBU0z1Vg(kF@^+f`nOD?LwGP5R9S}yY=== zT=B!fpHw{yHF`O12-2sYr!J{HO0mna^DIZQ+Sc40()`v0EMu~Dy!EPKB#HLVr$-nV zYK(4n7#J~6dSs(mVr@&a{;sEYCuCFE!HwPQ=M%exREW8f9bXzZ>4rEynmKE?sU6fZ zAbm#v?zk)9AUpAfX0itPOo`EBuw>LJHy;y+aGb`Qx6>Ke#0=@;sXH$!Yhwu|yY{JGG%cE%ZZhKnFqDY~tL4YeL{y^-2ZU(xB z?Hb~T8d5P@5YXc=m(w7~4NVoEfE|QIzigDKjKmw{iv%4}+_W1Q8#ZK9u}vKHD}Z@x zJ&z=o@`UyL?tI!o3anYlEpK=lOu!em`!fgR2JQ|&@6G4I4568{iExN(Ut&^7{kShd z>d~|yHcy`{f>@;$V~Z*6q!lb-3^a)JRzxGiVS1aSk4SZb%{&}F$3j(C64s6ONyMq+xM%%Y_B+p9N^G0+Eq=NI|_jQed0kG$6Sjf=-| zE^mdea`iYe>WilRzwdAODAufznd1%d7QDEQIaE$KSa-oA9}*n-;7Y{!80TW`0B zZ246@7^|#$0G*jZH+NHp^P$w53tU77ub3sAd3JOrDIn8=x9!_Y<>I%isjPNnutdvz zJAS#Cx_nnY0|zYUrYoCT3{=5>lZ5R#s<9>uT zowrk2ZCT>bUC^Mlym%?L`IY_|wS%$Ok+v^wi_MyYu_#)c1O>_Um|F#l5oL4hJ`Q$d zX^Re%-7vMiK6dZd&qH=oXp&<*^Z$TNB({F#Fzq9oCz<*V{_L=+}Yt9YM6jXFR1Z7+UY?8 z6TUzMk7%@PUL`Tb?3dl#HSFgY_tlf5;dD%0HuZ@dFWbqE!fvh1NWWl&eq$8CPSzl) zQq#xy1I!!0Z=?Hfh*GQzMPMIOXEUY_etxKqTp=OhWcN=ihDFn~@{am_ga)5bqrHpe zzTh|ea9vW$q7Is1^98U$d1sJ@ve=2A$QQ+CwLQTycc(XqNcmGu)2#{77c)Qud=Az{ zgCYA~T)v(sN+zst!6dpII=&o*ZF~Blx*AQ9U0vuNIeI{(^3Md;@aJMJB;`8J#V8*|KW z(jOJlYPX@v+ozW&s(BJCmV=cj7 z|A_{FO_MpP!sEwionUG4q|gn zTB0l}oLrkse*^o7ow?~-?e=C&t=Vidd>f{E2U@hr!hcEVA_7!{SQ19H0{WLMcG?9H z2Z!54uftTA6>>x#rNx#FR#a3PL&w)Y@}Fmd#t;{uqQt<;)?peP6=-jbL5qb;fbn_M z0^7_Ky=*VTw4SNd6fda5Zs@u9M$*N`({m0X<;$0%L@0s#j?Aa-%fjcb#zev;E) z>`3VdDgNBkw+aKaV=z^&xx-?ixlcash^`L~!}2+_JMRa}PiZxMEj}%Gd}=*u!a0;w z_R87i7mts8x_ApwPzu8gR<8dI@AYwVO9i#!U+rshs`|)-UEQ;kYJ?m9Z4G&HNhULp zrFC80_yJHyTXsqn&8+@G2<5~gZT_yWAKGGPSHfM{kblUBik5?tgKl$zcJF&8@09N0 z6XlLn)=m5`Cfv%|A}gCSjEvc01ppkc6|n@J1D)t){R!KuD$DhBi+Qb>78{+nYHnZM z-3=E(79pjl;A@F%!Q02aux0qr>?Do)cg!RL*Kn(Z{kID9;Sxf2lReM9<&x%8SvRw% zA_;|q#jqF<$=7}PYxXJH%mE`4()_oFAs2MtGNVHB?OY1-eT=5qzE5h}Aq*HBlPTyC zr#1o6yF_0?&(p=_3*RuODx`TN@nR`BOnZWMS=Gx+K3~swd_q}XPh-dlJ6`|!?h*2` z(1vZq+zm@5c{g(I5Dew~J|&Nn&3WR(@YUNchA~R+i-Jzy$aKa^^s^BJ^$LrH6ijrI*2_W!RS-yH%c6A@lNKLc9 z+*|NWjWa6ec6%F3Khp zRZQT5bM@rPmUF5r6l}z>HXw&^;u&MKb zv#jSKPQ^;^`|~F*TZE4a(3b>h45oUY*J%$wknStcmrvAlH@(-~2_U%c!#;4cdsqGp zEy4H1|4C3rrC>=u^%))qq+c;$;!{uT3=@6DdfACzO6#X7aiMRlru9j8KpN6aAD5p) zpH=S`3{PLG`X-uRMy`I)BC#!sWrAMCkNgRI)qzK0jrw%RZeG!q`19=;vh$Tc|^ z9h1aOFLN;$-0qr68?=oQz@(o>oEJ72B;)B`ci=XY^9Lq=*bEFzu;7QSVM4jH9L4-_ z`sFeK3`#_p6`az$1NErmj{Hz0lzrDnwK#t#MJ504>HQ*I{5muAb*v&;b>`11qH%tXZj;8XRL+k zMa_T7z|VK`C`Ju@w7z0k{|n<``N}De7zS)cXJ4xV2o}IyYX7?N4a*4wbqcHnzp*+F zOCsV3fHZ=FA5v+mKQk9PmYzlA=s~BHpARIH++3jDJ};qG=b@BKPVzH#9r+}J{aGHo zz*;Q{_p*#Y%~(2-!_meFI;IL!g#tul&e&`aCl^qqhL}24P%t4b?36Lfox^e76iq5@6m5) zyYWr!h8i}us4^wt0Y}Cc%}VXx>YD)dh6m&aCgUJ2B@V_`E;YvMK~>sXuv~J`Ya)(eb4Px5m_zV`#rnZ?z&v(d^&zh1*TU0qLsFI3NRVgmY zUDX-k^RDIhtv7o5_PV>Uu-Y?)gXXK>eUXA7ULn{n8>y&Zvp9FKwM)WG+qYu+q45ty z+}v}tW$!4F&4Zg}@ve70oc@&<>2-Ee%jYp8*uj`G!hwb!QQ+W))gLW#$zYk-l6pLo zl&O?Fil4ugne=sFNd$bj0uHw5L<{jVJ`I|yu}U{eF_PxrQP1}(lfiqJCS|k0$XISw zO2g}8)syUTU@Fz{Sxoe{jf&ZTI6uc?vp(vW#x>D-qu zpO;;5*jy5pk#>RUKDSJUHa9cw2;pba=6dq>KjLc0M=BH}0m6Sxo{VetloUDcL{&=q z(j**zBPvZ}*v+Xjc~0y+|5rJPfwOEOUmUc>$6>k6dt5JfzFhN-6%!fyLVG@J-lr^Q z4wgA4EEw%?-176yDwBPIPfNDPXFJi_x%%d}25ozW!g4{q_Ka}(=!t|A`2e5Tyrih^ z^D_i_&NFj6HGpm!wd?jwfvMo1S3vl2NV&}Fn-KvMh;G7v1cL#MN&#lWc_V@ z04b&<_+k^Adju2KMpqiIOJ-?k1yg2~{W`=8V-cTABiuOzl;e5X^4MO)Ck@}o@)tI@m+#IklN7h zi^6xv!?cE21=N-w@7j;=6IiCBx96zy2241g4ky*TeY%u9225TFXU0R7dar?yR8M>&LiA?e{aYpK_FUuOnus zxuA97UEJ)B%#Bvywe<5E0?5S>nc&CuXuYjNwgQPel$rR!;pv=3wril+A9a6B67}JG zW^JgJxdW?t3#+*iq1AGpdsW20wI)cF18TIe zO}1}{g*tDI0$8n3HTyM z4A)iL7xH%QD2R3grY6Wa138O@pN?lCCo*I2_C`Uy#a8@>mXg4KrxhQ(@U+$RdO9c5^2zYG?n_g{92Rl z+~XvWlm|kkQdc|9Q`Oq6R$}=v|8lOxmvyy09UKn4eh2TEv9NgSmq!hUiD`~fiOVK) zg{_@_jk^?}9<{b(Qo6vSIP~<0iT2h=v(?;MARZNR4T?(HUQ=X2DhQQ-#^qZ zmI+3^T$0iu&}&GWh62Q^hwQt6BK6ipnbZF1jt}U{%>%fS5R);joSMgstN9I8oWT0ipJds#prSP6TVBEraB8st#$L5FcSpiWZU8v&MEK2h;4 zRCas6H7QUBH2tWDSoICq>E@!>5#Jo%q=fr*X|yCCr0|xkJ*3}vGahEvQ@LTgx6|kO zxDaI>5(Q(jyw_m|0=?iag{6rV!rKTV_5>jQ;t>SG-iSz&5167X# z1w@+hSDJeM^U47Uul{u0O}8JCaq{6X7x8sc9=LFkxOBH1^j;h*w14L8%h^mG4IVjmmAL%ihw$&>1s=MrvE_u%t%{Pbgm2~@ zUn&(j4+rdDMND>seOgQJC$=eN*dG16{e)JAxWRD%F}AeW$Ll|5@b zPu$(1NcWH1{u5?7DEIF!BISJWeQqb{+?Xr8QYv*E?wT`-?65)v^{}F6 z$HT``P(-iS0ZpS8PB1##uE;L+mHzj;KOtoz*iQPYgYD~(Qp?_Ipff^<5G>B>vnW?S zmFT$i)2mYAbPfltgc$xILD4@*o0q z`MIJ8L;KKa72T-T11XlR%D6eD1z`p1ocKM=VpwzUQoUY7C#11~ih4O{W=W@c&BxBk z1$`8HlmH~UWkPP)efx*oQ@NUl;7W;^L{+6j$(O^OIF(mN2 zdJ$bBW3Dc;3YU*02l_a6WcIZ+Ff(BU;H|g)iA!PJ_N#d#sG1zFAS>*GYyW^nb-AbC zNtL8!dHMRb%<+&@rzn1tcFT^$qdpb5cTbTT_B<2yOurQA`Hv#oGo9DXm@!euJE63VY^HIW4}b_%+bpx5vuJ#<1Ss7dPkM%AbI{PI<| zBxMYkyJ;OiDuNn2*6DP&PM4%V%-M^{jg{^QPkMto+EyS|&j%a?d%-K+TtlNR?cO1R zPwFHK=8J;>_VO`pSNl3qxEjDx7>}+F@G4rS89Ld037>>so9OtLz7LlEBN0X_%Ngf6#{}UGO1s ziuhgJ`vYjNtnE3@Nbtg=L~nc(b~2$Tuaat;Ai)wE53{vm{O$3+U|j7=@V=x(?i0hSI|~GEe&)QwSCh3ZL_&}y4mM;zW1w1a4FA=q|&@c;`O%( z!`Ah3PPttXefh@CMflu~ae71p-vCeXIct%_ILl=nf0QA3Om(f>;Uca1MDC#Dls#dJ z7(7!u^W#`H0y3YT@3M6d2*O72rEyS3a^e$Ohan&f1}lt;@n~VS_a#L>FATW^_e zU8gR}8jI_F_Qxvcsb^Pe4eN-;LmP=l3ysSQM&*!;k^4-))HVWJNcSiN7p-S)T^0y= zyngy`n~;v-cky=QOQt5>0;RyB^=C7G{e`9aLK7_I*vXq|C-~7Ax1CIP%KTNu5Ys1= zf2>1ferMg`NQQ)i^5ookP_xI|&5}5kM|91J4yF0WB?^uvP(a9cPHp~7TgHw1;ZRzO zItm%_2ny?H_RVD>*L0%qMgoy0^2OTox$5(s$ibk~gzyjTIr{7ylD=g^>pyEaweQrq zGf~%sJRb5NH{xELv~%r%;L9r7i%Edg^PEc4PS{}*#B;-+6U;|pk~9BSZvFW?G)yLO z=6f2>m_2geEdHlS3n0Rf@JBJrN3CWr$FKVv5R-`A;U=^iV)a>C%pjGRKICi)Y6R$0%D zd!C!;wU+zKk|4bY#RAK{b(ZDjh{2K(lOmj)ZPJdU`uI1J2xP6cz32){MTA`&xvH}@ zS!M}*CQ;T7HO`~JoE8GefBHlDb&^~TLr+)(l)4b`;ey;!&ouCZJql-I1SNq5eL$93 z{{taw6IaWAsEAl7$M(n5{`jT?SkL@9OiN2A7h@}a@u6CxMNp(BIoRfFxRTBD*Bi$N zBj*5XEwUBrbZ$GwDkV@8tDi@?EljYA^haz{0_iKKK;k6fq#S!%@?EI*vLxUzcMGP$ zLEhUtTsQSr&Z@50CBT;VwNE+3;(6%I@&x@TxuoT{mx__=wgq5ms}y}pXM>8eq_2C1 z#)yH$P4ECz&tH17^`w1_GumEf`3oXh6NvUkrhHc}b6CA%zn4Dg{G5qXRKJ@apZ%KH zs}BMYh~>(Vcz^au?9+FDW3A#qt%ev}xwQ>IsK_P}Y65$}Xg&vga0ULs&;j0&bGc$w zspvB@fbUny*jV^l7W#Pxg}t`yF@JCpo%H`AWI9Z?orY^zQts2ew&wl(}N?$Z&+ zB9m@*Sx8IYehso_)=zBn#yAF)wyOvEx~8L^0lnk>iLN5PtP!Jy{O0bVC7uw&-naM| z(vKbRq7dMvI>XMLha=j_llJv<7>wp`?@9aMV+~OA)Aqx`mHgZS{9icVZ6=}pC@!`0 z)7i6b1@*dW+L5Y_zdQ0c7cVAI1wM``4=IgA8Y{ohn0UCcobD*zf_?a(!q1Uj#EI~h zunO?EY_gatIAT7E8#^t?*TO@jsGQN6X=d++60yskt=pK>QqK<1E0@^s$;|JGkomAH zx{f+H{HJ>Em_jAH0e2blVE^6(Uru*CQAoFksMZ3_QKil%d!t*9$)4K7`W7|L11P7| z#4k39UGfrH{0_S?G&ZMuxNqSdhQ@{&TX;5IT9m-_d{q@9y2?oEtlL1mYAMv|qEbw| z2leE+EvQe#$EC4ON}{SfMVm!da8_nG9E$ITgLNV@CU6LcM&KI2@A_9Gwh2>7=1yGy zBzEB#*!(;cFjyqjg@C}89*q^v@q6XI&NzP({6p}T=y|}e2+niRb^LTGGH0<6{SS?u ztYGM)OAGgnIFAL(hV0lbTqn^t_|r}XJ`Y~bgc|D@xW|HY;C~HuQYq`d?RQx>HeYW8 zbEgt4Q|+l~kya{?Qoi>Vd1ED@^@st&MyIkELM(@8kBqXZ7|A0q3sftA%Rsz{npF}{ zJdt%Pj2Dch1oYd*{^eUqdvza^9fG(>V)_qVX*5S-m^&V*x;vbr_sRS>xDR8IhJ@20?C8Im42Fxyw>__nCA_SErE%8bS0fgdA2Q=H3E>jBy zdXk|tEu#6M$ZQ7!aNi3Sq=Z^b-FuM6a|X+0EX@q7^DR`NKF4AUHUYxG;+J+ z?c75Lz>Bsh8v{d+QU7a}s(Gnm8zAIO-a?W5XjzG2{agmWod)GccghPIKgCx0$#v@F zyX2w@Tj8-X8m^d1E527bJm#8FZ@qvX0C&|f{gbxhQ+#y^0a$R~!BA&K-LUE|Zjzvv z33I!M(rF|wZRpj~jpKgFVBOY+Yni$`%r}h<14JskeEe8PS9nPu9X%F>O%0;xCiJlo zP+j?S$MWveUx^m_J~kLLsF$FItnxV)%?@#z;!_z&Uz3dc2lYIUlzf_o?UUl|FSDXB2{6gau$lw49a{T=PW z8|O5mxn;2(hb)QmZde1Qrf)kB`%k^km&>|r@ufKr1+(x&h?cidJt*ZA>=qT6&Y04S z`aHmpSjE6>vBxy$t+G|^sbyd^!XQ&V8z&0QtGa4m-;ojx7xtFt+u>54LQE_{_U2EB z%5{M@Xs27R6JkU;Yv zsi7#>JgNF(9?bi77`P?4(*G9~ENm-o!=^A;{Dl-!v$1Nr7fDzs6L96Lin@kBobr~- zK95<#8h)fh;YFZ-JsFjtkE0vMB1JK_IY2;z~nRuB{Qb&ytPS`%CIf%9BH0a zBF>LX8nP3CN@fH_tdap+0I4de5T#HXHr-LD>Ocqi`BR1RV_^s$(iHgd)F>y$1hG?h zm@Yh{uLss~ZA!5;{_+~|{n)$id>%T-NxU3b)5HEMgD9cqq{f$H(KyOK!V#6=q1~?t z*Ozd>B$)vvRoHaSpZcE8Xmpqvw(~(?4o;KH-bp8K3zr~{h(3rYmwN$RRf*oDa9AXA z6hAEGPL9NEaJ z`KHY4lUp71)QQ!;uyuaV!O*mV2BL}zx!W4HfDD`pvO(6>%!mf!&!5y6LuB=I3^~$E zS+EM__r*gZwpR`VML|k)Knb_B^pbqxxzY&Y+PQ?^U-sJj*qOdX)M(q^WS$rc!mQq- zXLOKa4U2>;0VSEC8UvIA?-|=s65)L{y#x7L@2K2MQ?tKa_o+)@m86L6(CMU7>Dc*e zgj^_n%g9otqxcnm5VEYA}+ zqc4S{3A$=I*U3Z#$wpq~*BHnF^vpmn>YA0s4n-B+9SV&+U*iMgO6XvdgJ&C#BDe&Z z9_^b1e-il|g&~AIwNT{tOF5^^bg11>NqLIx0W4v6L93J`d~+!Y^(N$e7)l0?{Wnj- zo5tsyD4&Lk@@6_S*)^+wDmLd83UjPz7(PC63O37QOE1)ZQ${88lB%htU~ey}@l*xb(l#act!=I%iR!gW zE_7P{g>%()V|%<0v$^jRAu4ZbLivNXn}A|r|Hh08uNzfF+? z_Qh@b%nLLsL1guTk9z8D7rxlroZ!>`z)X!pkbP|5+RZD1I}wIrsy7pIxT{$6Dr&#k zlqxS{XzGOm$zFP#QCm90O5Z3?t6hIb4<{6hm2U>Z6!x3T7LbW!3_te37P}rce+6fj zTAY^auQ;Gp?(77yKs;||h_JY{mOVv%kLk0yQ-Uj4gYWsIFnVT&BA5xSmtRl$k8ugo z%=|fCn?SiQjT#)ta@>AD^IG!Tnn>$7Er#-DMMOL-iN>l%Z5PIuti?;`=3Y;iPWF(S ztIe4QOTOmjE{hB9Av4gbo-6bm6$>Y%`KS3Z5WNSt`2KwPj#~0GpQ!i`k#siQU-u4&kH2(fFJ~g*b z^mvW_{^NE|u6r+KL(U<3wR!1W$9aR-qzc=_?o7o_7tyCTl53P>KZt@a|Ll59F~61N z^>zo4q%snGH^o%Fo3M1vvii+*PPKotP&1bx{v&0SY|nz1b}DRW$KAAfC1=bf^F#IJ z=NFiHWz&kugalq_u*vGU4KLAyW21g_?gSuvHW-6Ke6p?P4$+l@F0vRZVifqc!3_K`Hytq{e6 zo-=L_d5bO6^!^!PAC}sM=N=#J9_JxT-}1Wj`8@GOkD{G&Se#{4oYOYffr4%G9zgl! zwL45EQv)JWS7Zr$+oH`SI z8s_vH$`)506pN&XZ*6}q2dV|>6<6oaH-7gC8n5{mmNxL+?sN~IqI82?;~emWNf)P9@>dEzhNXMMn9cFclrZo z;`i^zi$NEQr|5?hT$)y}{pVVj6b=KoB>uCYcBHdwApy1U$N2jL-_ES_{du|jo3VQ} z37`EReUb<6t3LPti0IZW7I+ z)`OPl+|weq3FpQ|#dyDAtL-Y+ATD)v^@+1Nb4~jD%Rc*ygT>RfElJ)z0V?k}vCZ^V z+WVcnI}YSRa~;$Z|J%h;-1~ZGj|uAdFT!CZ?CtNqyhiE zX{H?50FraDWJ=oakJsVxFZX4v-MRUp{ya)=ZA?J8e565Ay2Njb$2QCmm-kY}O#7s< zOYB!3{is2DG!M6-0t35|vR*^D__5xJ_=glHAq546!p~jBQV4mnc785i{iqG6Ts^;z zW}WAy^{=vIv1J69w&WnIfr7RKG5;89Rh`wO7 zJ5%qxM|Emy`VH!CPsD$!ZyL#$3*Wx@ba=5no-gM$p+G*-x_o=E+Gs0{nm_GVlB&JD zZ(Ta$X+c5}+c2y6;_6Rl74;q)07gdt9xgK(%}>Y4$+=xkbsigotF-3sJ!B1Hf`PYt z=B4Bv|3d3sm!g}1_S`RG74 zE@1R&T#xup^HHP`3MS=m%d1#L305~d4WbAKKJ=rH8Q>nk* zM^2l}oj{dJOcCC4gl9i^-X9c3J=Q6^1qaA(lbR~8&>&>B^h`QDqXx`XlnVwrNsdc4LC$MK^6e@JsI z4l>j21^5=XB=7R$=oB3emSSxOD&~+K>61Iu@8F%>ukXpqVP>g8LP7spbj!b8<5QW$ zA$8YXvi1&`49v7f|NbSKoOx-rUq{&Y)}E)B0IQ4DZ82>R#c7oY6O$;F1OHL!+Aw5C zI_@Lpmf)k|58<_N6)cq5>3BN0FN2IMSD0_0*WDelrzj3aE2rA)EBo02=mV zEWnZ6mI*B!1R8)85KwQsB1YvPRXZF5Z-U?TeP=2balgM}X@6wwGqa05s!Ur)fyRo9 zMiZ2G+6l_94OJXaH!MnYG8*IG@sPWgb`ZOqmJJ(Eb#4Gjgtt6+UA#p5gPY10w5t3S z!(ywmv_e$))1ophrskardO@g}=$y)MqirXUJl5lRvV^Z5yphK4gKMj0-rAj6rVg7O zF2YE(_>ONUpap*6w&Ey(h-0sEP^y_c%fE9Md<4XP*75E)qTl$X#zB8@ze*M@3H-+KAqo#f?twdLKNmi8>SFS+43EVg*dApi);bp|38ap|(rhfrXSg3m=n zY;W)eH#dzK+2$xrO-(&SIoDtm!v6NUtuDmJ%aMI>RISYZWws7_PYHIA7!!1)Mh8cM zbug6Zo37-o(AXbQPIT?RBXSoU`{a|ulm8L*)^Sb0U)Z<_DxpY9h=g>Agfw5eyA&8m z=jcumX&Eg!5EwCHh`-xtdW52Y-X%!|kq<#(=k20*?i>cp1m$EW_XrceFQ$xuvQ=IM^i}ZWp>1EM zu_-m(h*RCv>Czf9{|~fM=cE7ulAZ)%&PeANu?$$<|5&+&KPC091N?A23TyA`GPm|a zKkg%vJyzo1meVF(;esOUFX>}}(Frg=pHXq#fR`NBiEkpViN%Rz&~H12fS0*4%i5`D zaEheVb7SD7Oa_%{ZLW7Rf>c#RKTL$~oE4oK05x+)sYs~Obn2Qu$huLy}P=H z;F3OH;S>6xgz|N5BK=jEiZ&d(y}NC!C87I^o&dMaM4RJyFPa5roX~sNQkUOHihgeK zWBUiGu+Ski#09hJi3tSxL}$+RSa!F}%q8{4!EztAiBifJ+YccHcGb5;Gv(n-_A=yV+r4MfNaP{0={796VL^$!^pKIYfdk|n7TUd ztBt;`vATcNX>qBzelcsSXb@}USdk}=nwf$0ajjzOt(Ki}t-g<%ULjJ!zi;ToDBXF_u6g(-`HC+4Q3B56^!V!TgU}i z=Uex(RHCCUX5CaX7k`D{^#+QF;qSJ6YWeE?EooF#RO@lvh_4oB=@tcq(tF{ZZutB@ z8qyeqa}7Mqnb*MQWDZVFaYj`pirtK1k}Z3Y{4njX^Rb!T1$EM1s_#`_mrOk z1q$3Kmd722KMwv{cXPIuuif{Bx2RO+YNOK+|3m5*f8E>&EA{X8yPL!W<~RTviBJ4ea>$eOecCXm$`mB0)-yg~UuaH@n`y86Ns{<{h4JtzJD~!) zE2rN&Py+y4FWKevr---Dk=(fZiK%qW=5b(C%@&&?&IV~h!fOzsRmF6r(fMFDd#Q^r z#bJ|p-mA=H*DHt@BAh=3x6FN@*nQ!Gh#h~0_T{i;;QYUVqszTS!CwY)RXA0Z!wW0@#|_kO?3YY>9CaT3 zh`o({4a5Ldt3^GnCuBfDBEtoA2K-oB-_Q;d4_TLIWM(cr9F$0mp`s3Xs0^ZD69SNO97cG41b2_u1^}s$wqSKj@Sa1Ss35BSYL|_*^QNGdQXA;Myjtjt4Hrs zo9VbT_+rt^LH@u$5%a#ZxLl<6Ud^%}#g{N^`C-y6mn;0G7&jCY@ni8(V7J7aEaTZ9 z<#n(83o}*6BCOwOf?IGz-f^Y<2yi9z13Orr%esXg=4=!^4&fLW7#P7{o9ci8=al^9 z#E^@V|4Ji;c-tAmn=2ssb^UUPn>>zU^I(0bfANOetYkh~y@@}K%hF6G`9|7be1xF< zL_-cjToa*_aL;%zfzew~-ro_-$?>AOew_cq%K!Wm+@%s$LsT5sv3jOWa#e7x$ z_^!FYUWMS=>%2EI?lF$c+0?zul4Jv<=%S9mREx3etuaV)TuYhbCWA%(TbsS$a^~VA z6>y^2iqZF}aimGpoNmdEbUY}7^6GCm16j>cXqPKFx{c{23oQ&%lS^AT`a*2N-o2qsyDYhGYT4pY61C8Zmy$<60*0Ykh-ch>AHw4p%}LpwrXk2tk#m)Lz)Z73-i?H}wuGf0&#ZJ*c&YLl3Aln%|Fu+NVRw0>NE-qb4zgCuD)hf&+w8qy{NyhivL^ z05#gXFZNwo`T6{M;rI`l1E1|S%!dZ8c;(2}R_O1TxWsOJRZk_i`z3RoSdpYFt0Hct-jyU%$*8;^U<9vSGFf zfpLwuqK=6&9i|dyIL;NQ+gW_8}fol=Wzv7Wa@A(kiNGgD^6hyigD&GGnbJ;Efi|236{wC%Fk;|3ec8GKkl0akfU^PWAN$ljuSNLUQb`AN}en#_dJYg zxE&FqnT5gkyamxHidsTae)lV_oK_m0q%nfz`!pf>JK>Nd3EsYKLNiX%GQ`lD~AH z*|BIY`}tb_Jdz002v6wL%cyc>S&F7-fonI<8-k!*le*CkZ#@*-j9tCH>dL&vbn5w8 z2(M(Vw6Zx`zU(}E55U=A3lyl%cy5TnkdhS+1-jE-Dn=fz{oZ<^c{8-8Q?1LM6vG)! z0B)ul3;R>>WQ=n2bJQB-m87O=FLNkqsZT6W?Za1o@WCjw#Bymre^j)rP4?1hl~&rh zj>f9crJ5%-6cxD!iHMEg19h)-t9#@g)JN-;({S37;)hp&X7q!&sQ3DlS)VCT z=Nf>r!LXPHJmj2h_4|A|Rhv(bLM1o!e8Z~aqQd-`>puWdA>Q%%XYU&TYqVOc!3Pv( z6En#h0K-WMG?l0K8Q1Nc4>}Q&_*0hpAN&n~g0UzlfOSW<|DrTDTaeNs-`xWaruRy^ zF;Jl&9SKRTaB7p`=D%6qWe7c8nA_5{oNp~wOdsAq+YQ34GPq~`O_2Vn`zn^~fG;>A zr)m5ltkVO*W*IgmbP|BIuLCq0A34J8OdIO*ds&2DC5CqKTzz_`;M7|eKj$)JT2h>w zr78N!CTH0S_eJ7q6>0r#YOwN%Bm6)kyUuX!u+G!1)M}T`^SKvDJK6cIfTaziwL$M^ zh1sb=>I;3`fGia3(#xEz@Q2S!dsxjOPk%>sLQm$E7iws@B*BS+TBzf%vc~g^Cnl!L zVrv+P)pNt(W7T4_Macc8>%mZOI-V~Z3hdrvr8}Myv=_lv4O1ncn5(=Z-Zw=&hNv*i zDetJKr^G`;hMS2M))Db%qY}ao-RR22zb10|h7}>MmDjT((E@^#%Z&VE+xWK94==3Y z!|vS-e#6iUmG9(H7tJVjx4^NS^*=0$-p`i+e!yT)GXJdKJ`SZVx^NGVD|cW4 zwqSGbatn3sy!XSzKP{yCjdWgaZEfw~JgLO?t3Uuu(X;@NGlwYz2>AO|%=3e!=opO1 zJ}C;YJ{g|%o7YrOz~jBpwRer4FY%}~fCIj{U(HE?X! z3$n-ck`0u!_&%OlSt1^EJnsf79zv=z*9n$~87avD(&bIu1#T|rGK!U`zdz3VrS;I$ zW;iR1^~9199A&lH!^gu>%0-`feUO)few??s$@y0rdKJ8Y8^89RX!WWz$uGe^oZ)LQ zbll-ol zj!Rp<)BJ$Z=J5U(E+S>az4RL{qCJ5P+TiJ4E+!!J$fs9{hn?Jkuf99WrG=@^ymbU| zy47L#R#JZRxx*N_R85DP7+w$qbh5dD>Hc(W@@R>p%|k1ag}~^itp~b( z%cZbDgL>Y987g(;s(Sd!1<*sfDZ{J#eft@@r(8?gXQ_z~eEyJHvz*_X$rEEPgl+ry zo`I8jGpU9j{p&-Uni_3ff%W!Vlgp{``^7?3Lfck{6G{ zGb{EIu9(WVHEkCcz3JTXs56Ogj=)}BuE|hWt1pJ)`rKRrw5~4r%u^iyW&ou-J`)7c zgy0ir)nb4)CFZK&c^^$+Es#uM2&K(dlK3&c`iMQw>(Pk0y2`#>U=-r@@7w!&fA4AwT4G}Km2R0zy?m+sO<^a7622YDtPcYVAqV^D5_hJ|E2yy20zMgi8-J9w ziV2Ku9Lg#muT<7U30dKqA~VyamZc96<-fwl(!i}{dU_xCI0&&QY5(c2Kf;!)PR*wm z<7qcYYB^!-d-6x5!3+9h5VRJliG&Yt$@E%%Luy|5YSs_tYRq6ihF%Sg7T07CNcw%ZCCG;=aTcvI2eDbP?z@gRh znrRt{!ftP&yqY;RVWNuoO?K@XEhymhPrKOO=7IX69TW0yqUc;Xt`VERMqZLWmt4Ps za+4Vt(w3c*CW>!z>^HH>;nLg64J+2k68-OC(e?4IH&?qs4J#<;Q4a$}i48Endof>< z(L0BIl65_On$t3t>}H4}tz+Tji=H{RS5vP~-*`)n-YM&XGx;)gZF9Hg#5FzwZ4&zm zHPsDcj{fC8juXCX(-Vai5)dGprQME=G1L8Lf+^e7vDKeyo)8UCQPCnn+}CA9oGS(T zMq&dzC!$6ld&FT&GMIG-1Y(ZVxY^>s=l56CzN(B27d$kh)+Gl)R59fc|3)gc5L+#4 zR7yln1q961#&bOLDK}A$d_Ehizr_YLEv0-w_7!JFS-!WRjid-gFxe9rl>|u4D>%`3 zq0rZ^O#3KT*D@)-9uhib?)*n2XBWA_H8Lgit8ay3(=DfzBGoPqFOG_T#Wo^n^r*Ex z|9RW#lnK(*k&5`##kQ&(lnm!u)c)WRdxfz@_DB~NKs;&2e397U5eno$^IZK^2%NM5 z-FiKEU6?X`E1^8^3`Cm~b-i2k22&K&8k!h*A-+FBClA*Y)?zYZEYzyokQu;bBPAxD z4PIkhwLx{zbIxvG0f)X%&^gXdvH}(IvN|7Ni{Ga_jQ)0)T~JUR`gu2GHz*$?3tplFm}i%n*Wyc`1)UndAioh>aNeaI=tzx9(y)Z4N}Sx92(}t>BdA}s z7WHom`}fnQZ?PM9S=>Xjn{@jC94lU%r{u57;A_pcUD+T; zu!cdY)png~A=|@%(48lMLX4oceq93G(R9nu2K8HUt9DA85Qd}-5?{GmA z9pfRN^GJ;ggFy16RR;o+ME_)q@B1;4Z$m!=okw7^`#nBkjfGCaLj^V{N~jPwav`X}KRG_NmIE zDc|sg#AF)>C!uEwvDu7#5vw;>3|EE3PTM?da_eP0t(S9bmm>@Z^1D z`-cwx(0wAj1cVz@5s%k;;IZE)WFz>xJa9wZLcDGOVERJ%wn{Bf?catfv~ zgJ=HeUz4~?Rx^x0J7rZ*7|T`$3uXJTjc1fMm*$e^WDFB)xTcU9LL=)nS+5u~gO?WK zN1^d4t47#)zjqpkQ_rpJ)q!JquAemNw>!NPUFl^(NyGi zb*dGW8kBslk}t0Fi*I6aT&1{ftD^Q)Q2$wIeKIg<$pElr+ZeVvxqLAYU%DN;!TR}W zxcx%0--%ww8$T6h+JyTQp$R7;YGg3g59j060c-%O)dIm@c|uV+coNI;JvmIL-&=E`a@OLM`T1UPmbC z`l$|@Q5x89YREVgsamGhN*#ji^*8OJ=y7)EGJHXAx*K)}jE8102te!?XrBRGtF=_M zkX|3#V}5uGePk#AuinyOU#fjHcW21IOAybR3juiNwl(8_ii<^G6u{E2?_LAGLI8t) zWQsaAO&<){`zIT?!fm07Y2YXQWdV?-BT*!DTnx3&e?u>@omVqvfUM%EHvj5#OpN*U zL58uk@r2(GtIkJwQamm_p`>MRFE z*3fu;zD0B#^`>P*v)+tQS>nUauDkl?>eoSzWv=8Zu<|0TOg9s3Mev2&wNje1)Wh!8 zO_$OnCiR7n1_HfSMoTt(53K##4~o!U^rV}09~q5qXHf2+_tDykdX-wo)|Mf zGAKKSb5uX;{$&_l&hbPQIcWI8YTJEt84hz!dc~!6xpY2z-HIBkf)$2if-705lBE?> zu11nflyZ15oQLAzNr3{d!}(%dvCl^l+wZ7aK!!AmZYtM`0rv10>#gXhM*!pX8Q7|8 z2t;)8!Fi8%s2sJK`)z{faAEl|FgN{GSPIua4ZcUBK7P)YIkJg?bpo(a{!n%zC!W%Fk<-*Mc#fRaUQff>tAk&$%{tKkq-dD#{ zj~S-umpHWp9^qAoi>;-3fn1;YpE^&qoqR8(NQf1NY-CG#&^1k#`6U&67T< zNgP1|TAVQ;Fs$EP=HKX}aXZbsCC=3?Ut(fho3Y5niz?HG(TL|qFH8Wi5%|35(7g!8 zVc<*zpj$&E7{t9}o&$`}7-sH7Byi9xZz+Tgpk0jjXN_AAD4XzFj_&6{JkWsEtfTbm z;7EW{QG7EW>{T;>r~Bt`u5rMb{Qto1;v<*-!xli}6KC%=uB&Wo9P<_xD#hT@L3RXC zO4)-lH^JF?c_sgka{<0lr~>Lp9i=d39>iN^Qcn>wF)6{y9Qf}pqY9oNTz@wdNEHIm zn=rh>$^3jYV-#OfX6NJ-;Uiap;E-hMe_sYr3Egi32&(ukG#+LGK&tfo8S=cnd*>IZ zo1p)+ZNRk=4gr=9CO9Y>;k!GhiC3sN0!xU;XwQK=`1Z`q5Z;~~-cI=Pq_9kAU0`1Q zb>OI9&-aZxAk#mqPg@bOrB<&4_HL$S-;*}V9UtZ+uYG>Kyd#^{giSBYQ_Z3$FO^n~ zM$90HjG^qsuz#rTUURx~NnDCrM1)mM_!pR6&{m+e%zjb&+A1cE4S1WkR#^?DCk+vs zYD=l@t=3~&dsk-NF`AFb4}aE&F!1?6)kRtz!lZ^~bK^_BI5y*EdNYzf?OtQ0@6YqS ztT$9c)v9wM^v*+(hjL?{Q<}fV8nS%F8b19{%A0%d#y$g81sSXaHnD}f;Ux5!8$voD z4A?ZTR^J!ngLPFZRyZ=Rx@yg0H9_#VSz})@Q0WQuWmIpUw@G8ar87X6t^+i*kn(H{ zMRk#Og{Ipx)2Nph{h)5Y`}1D#K$Nud6ENs)dfGmMAFIl>B)xhcIO;;5f6BMZTrbIt zngWd9s2`rcgZj+{bl%95lHgB`V-RzpcJLzkQLJ|G$Cwy=3>|Ew(W=Wt{+l#)D+YK! zDenQ{sbRcW4BhO{n-DO zrndGNkbDIOPS)lr;@?;Y0KXXAO3v$9$*|DMum}~C!a8af;m-_!nd3&%jm_VoR{;b( zXdm}7!%VI;*E8h>5{W*z&>6KDGdmBM*w(JcK&S8Z+$Lkw|Ha2 z@jtOHfUmPKc=ZbuV=;lzQFvkH(d=$$2A-lE6P_}Y4?AEFlT&8!p%@q({4b9T>`^zD z!;|c>F%D~k(9ZfnfJ+3(&dh_DD1YGo$pa+RjS^mM2gV>rCaX;2o&7PGIVFG?LNxpx zkM$aUXWjHLHZ5EWL|z7Z_oRN8|HS-po|Xb+{JCkv6DSMud;PqP;Woohl7Yl_Ni?-8 zEGvB?r)*|Xg*2@&Y1<&1?=#Z}^Tj>+W=QUp%}OHa+uiJ;r&emjBjhy7Run`6$gqD2BHeICq+u`CJ$E1KGk3vXEXoh@RG$Bw_*gc)v&+sY)=dO%}V#DBw? z%ASuuZI%A%7NoyxP~{b@_P+JNyndh_%4!98_me7(`e5cer*m8K)pZrsHwC%Qhr0%O z>Zm?xleh$Urw3T}}f#6xNS@h-q2XgIwf zdGl9iVbfc3ku32mujx~xQl~D7bs?g$2w9{vlZN2Jl4)ii=h|jm-Nr$i8uSO1;u|vs z@8Oz6p&s(U(ABIrOza@xgK>o%a$UzeJ%97nQ)<9bY$)R7)b}Sr8ubYxxinVQ`ks&C zK;Au+^90nCORZW zU(8lFK6Y%=a0vnjiQH(r+mu?@AurVd`t0R7cIBF|=|*WBwCx;>MaV*9Pk0qhWlF}4JoMMHqun(3E zdYYLW#TMKKT8q?F?cDcv37!@XlwAf3a}gKbA;=LGR*3+}97VxD<6nF*S+XVy-n=|& z0Ur7`H(o4CvuZ@63i2oAoMV@>>SRMH;{PM}-1u4PxYJHu1+r~3${w$zrQDGix(2Ib zz~4?L{=^)_zO_JDxYn{Qiuy9w$3CPto*ntmktsfGx7CS%wxRSyU9}L%){zq$gAX;i z9y`)USRE!c4=!P}zVFjNVrY#_9Imn6k_`&NF6wWbp;K$_t}qS2DqDVKFlRtNHX?$2 zXZ8E`y`GxD;LPv=@T6gDxu~!~f{K=+c<9cN=4zus!qKFp=?*auoJEmakl00}%jl*5 zOdXW=GjEQULCqRqL(K3K_hMGnj}4ojlR~T6_R$UCxUbH>tI1c6sk)dxNez@k%S7^t z?M11;*UDjchNpQLiBwT^o<||^$jsx1@z-ZGqRji}e~xqFxk!IC8e*&re>SDX3Ec15 zNW7U(-|2Cw=qwg5(=}4{h+BQct#?+j`6?e>f@hAFx(<;1K(~4;vFfLx6E4Mjr=wbc zg>Sx5AyIs{rWQe!nZ@o|KQO-|Jh9+DWwBrcmE(N*^TQ>zSBCu`${~`HE8%B#vgr=p znXy%we?$h5b`p+3Q`eV4g7Bq2#?3a{>ZgX7Tk;48USZzeL$>7g{%=4NwCq~sc;xLt z4xXs#sc8kZOk`eP8J9+Y7y>$G^p4)CNSkS9?e|z8BQNONR&E?uT9Oj-jEep)M8hsU#(}z+rg#}Yb*6^niYRQIY5W6UP$An^|P#4m8r$DbhfV0 z(%_UB6s|l~*@vG8eX`L+%6wIC0R3}3>&Iaw>}^)~-9)}@$Nf1*K(!al+vU1xw*8Mw z&ak+!`##1T9P}m4Hh5fkh88o2R`FeqZ*zK`*w{#r@lm0SG^Wug<53EgwP3-Cf7#6& zM0_T(F=S7tJZIGJku59Z&#J2O>yhy`Rm8YvBPE?)a-pX6sE*1|Tj|$D79mK*clW1) z(#uH8>#%>nZf6&{^8Vd>;45F2|9-Q1&L#1D9EYi387S;?4Y2uM@poB+WwnS1qF%G? zFJh+o5~=lhr?#Jb#6^r&!smGxQtYAuVTn*RAn`t$!k)os>??AYM%hM*6YiQ^)KEV2 zlo>;BzLteD)$ej27c@IG0K50UF~Bp-X5pc>{~aLln~$H{JmQ5TT z6)m~UG;%>7cDe6;fo)hr(L5equ6#UyOPp}@R$ZKa1k=kpf|MT&ENU2LyWgu+gKRk$-8_%rW;V=Gma@|w z-;szuZzwqE4O_zc119?%3$s49vR$oi^O^EvVVq*Z{Xxi;5GUp4?OM~I%U^~_*zOjM zvjetjV4s6s`1szuJ#g1Hd{dzORnk7`zf$P&_GW-@GHVl}(W_|_fLj2=U_@w4pH>Lz z`BOdAsNo!2&ql%Ed9=(t4F=ICJND)|1WUL^oQKbpx+q13KJWwsil~B+i$!+QA<-pb zpr|Zch*Kgg(jjXHI0vU6DV8UHzej(mHZk9f=@u7R?s)#bDVLV?@A{y6g@?CFR`5f< z;ltYy=3Ycx_MPrG3u!?MQyI1IC>OvgN$naQLS=eU`qXwg{mP6H##Ym!!qfA%=H4|M zDY+%;^-LMi^B7&b7{%VTzAe;v&-8HNhu_mlJ)Kp>8z;(?9y7KjRbeca@co8@{uRp#{8BU-89Ms(#ff` z`&PN^YPwD*_rAYN`__xN(&)G8ii(esE_X-5BPe|0>Ernd%5=fwg__$RRr*!LMyX$cG|`SYIcPzs>tT5q_#*zZbYX4<{p%@(fZqBp*AUz0 zxFQHr(+7%5xKEvbwFYs}%&J_|BH@#m;JGIv^{{#Ei&R41kaDquM25KDy=+ftMP+ds zrhIK@R1TiD(>B;M5GJU=kM!@ox10YgXX3<9c=Twg>FZ)zE%oLbxXfZaEu-9q*}D3% zO~$i)adVBc(dnYuu-&*v5udgiSKRM;%vP6F`M9<(Z*IAlZ)D%KA}$CG8ug+p%WzzK zBNx&?-88#0{^UDO_v3sKG?4St5L1UA-~5RWhuG5*o$`mx^hSnf^ixP`U<*_%12Dj! znHq&u3fx+&YVO5RnTpgwWI74TUr<`;Tr=R#*Y8}vZk-39<<4$pzGtYpro5m<*4K~D zw~Y-@d0h|x7IEG!@OcoPwC<{jc$PeeAx*AZLui0i3I(1aBRdkqfA zeHKjK3r=6+TM8~k8wk|4sFB%cewq+4nCh<$Q#NEMu|&IQ7gM~dFDqx&v#0%~8#Sd} zqV1MT^%K$pnLn4HaMB{pnQV3L$qK*0P;P$frhG#h7L1ut1kNhEu!JCNv{>Y?4=+3< zZO(>(cZ_9*_Fl$n5d`F!sUYcESqI-l^vw_*IH(iO$0vhQUlNCt*;_5 zm6I0;hdM{~>uJGvtcvi;A0DE!3dt!}dpBvflZ48Al!9}DYMH%)^KJ}ZV!f0DoC;@x z>@(OYCx3=tb%(l5Hcx7)sEp{IyiW{jYc51=_NvqN=Jyrl#CcNZhp-Xpb$l2z=jQw3 z3G|Kn?TZm#qnNIS<;S7wrfL)K2c20!(Ji3#t%DmTH;=y)o9mWJ zNC$=^g2J|EYekCT;U&b=?oSv{xh@*%`+ueVqhn?Y0u<|Q}${rst<{879c{^T!mLch^31uqiHQE zbA&?X(yS|6TzCg`ak+*4e|20oo65%vzB}Twx_iP4;!#c1*OYi)=eP3x{j~Hb(M{I$geYNudoukNbpg9Z66I^Nh8g%a1f(xq0DE zopZSY7sGmt$2$?^KbSpySAUWqTfn7m6%=l3W`~okdOudEw z`m(2A1(4QQeaBaK{ia~aLY&s>Yn_qguc01~SV zuL$cfK@V%~IW)5QH+n8oq_?v7lL5!mzmc%@_ZgAH3Ka|!a9;J3D}Y;6sNKPW$l}lr z90|bemL@MbL(B@$@bt?td^4u2R~8-`U!%14oB}(pWy|8#*DD^w1Zb88V&Ww+v zWmfar-fE=*3lfigg9a{Kz+wWCnHZr42XeosV<+ePA9*pNCV&S7?#A4e+b4 zAAJQ@gGp6E)?hwTeQs@gs%~Zq3939sM-~= zYQnF&3ZIH(pDY~|^HES4ghj0~NDhoBLL`Fq8)sMbc{m!VWmZ8NNz4?l>X8?$bAT<0)jf8R-MUaOS#(cxv}uq<^C+(gYcO$U zwvuHb|HrYNGa|HP^JyWXZ;s8Txzj2slIuK2`_8-3Kf$_xwK^@em-l)wO$^E7L?3U{ zxmnkkrj#X?6V}CNlQs{we09|B7YSegnOa~zn)_x-A-!>qwUi}RBaRE0uq7t!0B?sg zy)hj7UvY}!p!nkKIeG#iF8GxHmUh@z)=!Qc=I5X&A zrn-FhUk#|L=-UQ=#(8^02o~wCN392Fimk$?Ryu_1s@{*mv8kMgOp#H1V#1%}s+{tT zzx>&Ggmr&_aotiYnpT7zxv%abPIQAI55UK~%J+>;kZEhhKBSPU=3>t`sv>ybBcX?Q zPxAT#P-fgSf3?(YbZ0Iw*o0aI%OT9XqM(Z?dwcLW&#LIRm!`WTm9zZr@UydBK*8`% z2bgfR{L2ir8;rPMO_`?)Q^vjIve|94eLQR(Qih|5sxmhh7&}Xn4j0pD?D)#zNr9JI9H)OFt#H9K21$r78QzP#fJZmUNhDLxx z-0S(Lb{lDM_YInNcRc^c{77bs9*&m7ezR#70K;JBqK;f7HBMYL)(aoU&te@#&+*|w z^Df?FIZ1^5rw~zhaqP)i@xuq4O)r0G#gv(x_eiHb*`T08jBBgE42&xGR zJ!cE(|A10U8>y4HQi5(0a}q_owCALj>!ssG+#k%<^#ewA0hvz++P+f%u5O4E3G!(y z)Tl=*bzGuZ8Q_5cuP`UHk75&vS1HFu^K|EE3QL3mN_btAmA9^=To9J@^la0MxDLx( z_da#8|H;M0uoQZ9LMWo6vm>{wo9q*}q&RMSMX*C7M$m`IE;&{puobYNa4 zwEXD(sa^kK9OBEAQa}1J_UI;HNQBfgp-%%NIT-)dB<{Ke+aW4*Iw&aOwV*#&8Rr3MH-2a_<3!z=!j9b0+}auasEA`a9(AN3JQIEjjfz=3SkmCg*Ugz*E1R z-0wxYso#?U%d}_b)7}C9D|MxIm`m+}P2~}U3l>ak3^@J*uw`P2R$gzQ8Rj8pBWbOn&g&5y zG-bwJbFE1iv)Og26*-LC^G*GGy&qdb7_OE?Fe^QZH!ne|x^Po3=I@!54o@wTd zp@n)*B%Fb)Q_BgzDOIThje#MI$w7KbdhWxm^Wz84Y7;4h%@y2D$>#WgufUs;=*Zlp z9m2^amuexY)}p-fT}6n)9uaFQ+xaURe8G1%AUwkHp-=0(jswtD|NJedL}$l zs!9I+e*Pk%G4K9wY%%zqnSO%`j<=*c3(H&LS@ynk^w491Njf%&GHc?Q#<(|!?VX0H zE|y*)Ul&dWL)8UX`tJ%**1VKz_h(JI)Ww(rJ-r1EhW}|c4kww44UH2SGHf+H zXs{d*wE^tv7Yy`!PlP9)gKSf|%QI2dP->x-&@^fpeS}ne#K)>U*o#Rr-6C@lJ|tcG z^X|~OFM$)onFFOUO96fYCp>VWj&0{ZD?HQn2ATrPc~g1|*%eH*TrAQOm(U6)M+ z|4oN@vJ~@52ySM$llOX!Me}FgHRL);U;dHLn$F;}*g}SBG5t9I2bz0LoE`v0GB}hsQx&7SUe{=wXO8Zq1_ywzGVFaGGWpIYjHDg5V!1z*vweMTXQr zDOXPO8DP2^M~zM948c!BS+d__=Ul3dBvx>gL1D#PKnv+!JqS`q>GNm9sAPqM(=k~k z71zLL2DU7d@)2W!jKa2oW~OuWGmDB~`ewdAEiv>i%Cs=YwW7>WTj)lU6X8gXERgoa zuQ%BZZB&dYG1Y6$o|p))yfck2<(z`fX33t1*(t%LAhr&{*_OfYoSa{-5f;ABMka$J z*kZa2pkE;bz?#&N;@8B<>Yy^JkWd41u=wK{;k}dP(swR3hY9DNgw7m_8Mf}kJe|%IEzDB*~o2f_u z7mbQ!mkHLGvCpM?32=GY1ncj4j*Z(m(h(Iim3~fwYC$CxFB~k60&xEqN9aAWt1vOB z!7S3$#22-}a<^!FO_w~K%FqZWk9zGnMXTr{T|P6hPW}D*-(s7mG%lv~*hyP`Fz-(d zsF0%HC^S8hobsg!i>Btdb007NQUP*G+OD_7fznWDYN%TH1PwYpr}_!-3q|!#$|jzS zZfP~(H{&uZjycoi}w%{nRbkc=}oQY zc4b93MLOKYC_A~4&~gS*7kKiPI65VnZ4ya$%UP&Bv_L;_t*{H)pb5^Q=n6PMQk4>P zf7Gxhi@xhAwnXCzI5T+iPM+)ivS}~3$Lz3=LtCpJIrE#Udl_h7a3?Sb;p`<&o<`1F zeioD`PSF%8$V+PGQ)z*4byu&PlXnpbIG(XRt6?0ZZ{H48Ftz^-NAa79q)lP!-$Fq)qIUO;! zz;wI)jYpaqzUo6#NAzHc_?`u=<?vbMLuO6VX|joe>g?+ zeM;N~t}gb`OIzfPbb!==^riS~4we}aq>uX9O$z8RJmfRf||8SxciFokxeyTPx0R26MZU_rjr3 zA2aS>gmf#}sgsp}zKo<7nsqu%hi`U)jdzNoC0VZ}@q-rQSTfXp0xE4AoMEzaxDZP@ zPK;k$!GX;(Sa)7pj?*9}iY3^9l>SkA6c?Fv{Xdmw|)1l4(hFi(UPAkp6N<&g3Aoq`196b2Zn3zx!A)&ZlN-DVzLoo4y0^l;JN!#_H52-L82JFAjsm$6iYwz1)tckLy zSYOd=7)ya6gynwdbv(P6K)cp3Hcs5KuED&>*Nb5zQPe_9hW>#U=(688lJW7Wlpfr( zpEI3ec{3 z;N8x3lAHC-73Y9vbvxZo2o?B#hNpb*C+q_S8V3qG&ox5Vcs?z65_rZde}#CXW4S|w zRqiwY#-#CQCiSKmS>?uI7%!n_UvzZYQ|N}i>3;g}#lLFZbcb&G6|{rmuxoN@iROol)CByLS9lID2V4}eeBSc9;i+j$}l zsha|~5yL0bNbvT>R7q@)Y{oW6WJKwkRJD3;|M`qzltXV8KEb+md~-km-7obxHasW^$yFO*KeYRO$gx-Tb?-?)#6ku!vk zWJVk}>+;czJBw-j69d&U=7mPfnn|8ELl)uipv7r zuMY7n6kLG@RN?0+NE!Di`kzIZ{#-MqrzHJv|1;QtgY7=%vg~gimUW0I#7Cd`i!ab+ z1O*LE&1oGXXo+>j;?f=V)o7rt?BcZPE)~}vUcwD&dhOAAqaL9Bj-MS>_rwnZ^daPT zWlHv6no+J!Y0x+WgB@B2>C2t8e(b6k`V1U%%G<|A3_9dXXQMEa+twm0vgj9zqLb-j z3&?RNOvdjhn&5j?V|HDg{M4KH!npdnwuudC`r|#CEjddR0*`4h zpd8ZyJG}!@Mc7+nz=wSB*Yi}D)QqtYLZNY)G}&*f1p!q^vU#g>5+m~0JlU%+05Jq% zU#jz>$q_kjg%N4<+GFWY3$hvoQjog?+v(#wBu@=EDI4g$(?D}S0BDxv)z>`^1rR#lE?co$+eD1 zOjL_bOHN-rQ<}SCka|)Xje|$BGPS~-cowrF^3qdQGznXZYW@9{FztGBG8#>l^&JR( z(s*RNdxd-P3Nmj2Pj|fyMVFkV6u%KexPd-_#)S@R_sNoG6#C)pOOO;1bq;HPzhy%2abvwR-Bsz|4CjSKsD zodcznM0wxUMI9s=ZE}vkUEr1i7#IK4>TFK8RG{B2NhIv1jn#Jt^(XjOr5n?PH#T6G6$P|;To8xwES*|LH*_)Q7G zf70|{q>`MwX||SqroH+lvMnBq3#}CXsRw!DrS&QO1*vF+Z`c3>2|O zTfJc8d~ULcL64sN(Yo#xU6$A zxr5yau)a^}_&gb1+am|{9%d^eRp_>ccI4HObmgo25wh;^M#$%4bSj|P&2$u{JyGQ7 z4N`1Y3m>l~w~-F{JsLBJ)9fyX)jrQ^W}kgUkwD7S{Snua9IXjaz+2iqsoNn!N_6Za za+L=mEkJc;zRPZvuO7lXf16QCjV7ahi5J={{=*Y`(Wl zgnhZNn*OBw9Q5T;N2+LGJFK+1F}_|10342ByaBKRIUkId*fhO-jCY>F;6sDer~eZm z&phM=@T}TIJ=dN#S6!yNESDC~>y6$&Yr8QdEp~m#0DEbyIHaAHxIgogT&cdzq{f#I zJ99ywp_RI+ahGs9 z12f+wZUC|mzVQH5u`-B5Z;RZ zw7hvvyK&53Oy{L#_K{73Uk=NBogM=I4RrPg?-P7JH3CUWQgkCQc;~DubA1;zpaTeV z($pt2w(@z3u^-LGs1d*)@g*SELbZgRuqc*8fClD^_Pmh9M$S5lkMu-y%g`w?-i%eQ zeB=p-CGv4b(%)zX9Z5EG6o;bL*eiz5?6diqnfd2R%P;$2ksA?M52ktCT~3f`C;x zM2rGphlHclYOTV+86GsyU-oH=M*i#7T`?Y20RWE@NH9N921htB<&pF#kC@2Mt{m-q zR*4t~S{s1jb>H3MZIPt-QRI3|^gfGkEo`wKw!w5H=pn)Va3fBGSmD<;Ynbf%&qvnn z@$4tT`zn$%Cz~Ddht1&URoxBB9s(}|Cad;O?>4rvg8xOOj84lHh)|iZ9(7Zm6Jot6 zl8yI4h>BdYrdJNE56ha^Gxd?+a0)t%Y0x|zn-<3iqRA0krf;i{Q(194N#i7R^aZw) zxvLj(xu_+<9-F@_QXZ{%E&FhBe$&s>_u;`&0rq8mkF+O{jSdiG0*GDIy6m93rMV-u zAUpP+wqG4%7uhU1K53GYV_z`n$tm_jybCbnnFzrv3dI~0Sq_wlWH+zh$IpA0MKQ*x z?^l~UyIir@fJoP`NdxKqUuT4^;@wvUQZb8Ht|dWURa~YgZtx&%1}3%m+%tM1oz*`Q z%k;{Fu_-K2Y_zDgi%5Ab%qzaiHCrdFA*#`=YtmOBnyVPNj9!kreoMxh(iY26utK{N z2b*kO;o)=I4yhe57s0?Gi$8KmNv&LKcu_n(YAZLf$g3@FEHyHnDYJY#GF|6Uc7pEj zPrjq8g!%pd%MDyw*kUD0DlBX&F|YeZTO75AFVzO?OC1B6hSI)yVq%@atBi%t=dKnpPTJ3=U8suE(0=remu5oR&w2aO=hefm+;bGzHMoRd z7yZASJzsQ2(bu4SkY$2{js@n3a@VGEVzV~tlyLoE-*d!A`)ap;3653A?%QR$-T zv=1`dm6OcDOM5_-fMX=3rwX0;hh7!0bhgKaOBDQgk=@Av_(jg`%yE&PQ|@s)iUB01fcoXQffYuI*!wouC?tR9#VVUFN*}q zwH<#qy!JXAnn^Y5`W{hN%{$jvzU~9dOW`h)HsGjn$fI%@T#~*U;NW**R)vNK_dh$Y zrJ_k*he>#a`agL=h>fj7R(wU1@D8RMRakBD$BtniB&#ygpPf=vNmf3XD3lzGV@Q6$ zp=MMX{$;ocI`+FlmxUdhTSQ)Md452}jG*WVnv@3fRYAuHK(8UPYFl3<Xz!f=4BN#R>YEX^uu+rzN?jDO_SB_pmNx@Mz!!D+NAbNI&DNw z^p8`d9)P50LvrGe<`X;l4<*8{Z+YVbt)FlXE#m5>k-ZX{R930NR|x7F&-RHMy)Vg# z{^6sa5v`lzPDWNyrKTQhjm8B^+WY<;zSU&S)G$#v`(n`vivmU$?D#uJF!PVNh<@^M zE}P#2)Md}B!ZXc)QmvmyPj4sL_TNl*Yg=x)41|$QgxpUQ@TtnfSBW!ZNM=thZOXK^ zO4j~WISSpdN^+KEGGxn%3_lRYRvn6tt)qzuo8c{n&~&7vHcJtr$WtDCy9wS6INlzS z%V!&W=7|*xC68_LGeS%B1`(Ss-m2PFF3am!@0-f>ZhS$8pF=gGGq=$Tom;Cy^H1=T< zpvo{n9_LZ~wY89KV>K1%gWfHQZPwvUox?j9kJxY5T{(k?xLQ-f~VyOd; zbdfV#TLOYEt=#Spgm0-z z6l}$nElgrs`p0UoQ6fw*j|nKbd!7GED4CZWz4dbfwV~QR!u(mqQ7u%v zs<0>DXvie^0-Qc6H&Y3dw3?LpOF&M@Bq zcu$#dv=SL_1br5r=0U;CoWlSD!VC>)Zx2(Igt;ZGmsM5 zg!aihHd(#rXOv9rng>=7kt*J~I6ULwY=Q@>EZz4~1berq`bFO1ZYw{(bd8|RT2M9B zw+C_xJB5c|aQb{-m=s}AEXp~fdfQe!VY(H2Fy7=a%3eT6L?>V?VNh0dn#wP&v5a^l zte)Y5TvW~|JZbqiggxd>J| zi{z+8PIJ`z`Y2`$DXJuz2P0c}m$+v(P7Xf5u}5d za(*92PaSBJ&3!1pc74%*36<$^PSrPbv10D-va5#l6@((^2c+3o+P1ZnihLBQW9Wfs zzT6MEp^k3gp_Vj*^II=IM0n~*c*E7)19MoB7IsADPSI{?<{$G>u^z5XJM`y?76Z=l zRlrieUX-wP)KblCEl1n5Bd9Tsm5IsO!f_xj#>YHDQw={2Y!u92Sh#T+k5*nl&E$IF zp<2q}%=~wycJ$waeT)-Ysc#=nYL!PN1|^W-*7kgK6xpV>_35NkA&*j`1R;rK z(amU7P>>n)V%3la%*XjxMYjUnHXGIVBASr&mztVyp=hUR!~m*n>b})2ysWX_FiQqq z7i&s2Q9eG+*l8N>RoKzSqBtnSpz=!~RhM{+%WlxldX%MY8>Nz|{WTK^hz4Na{|@2v z?I+;Y(q$qu{UgYmC;rs;ue!K5*iY=t?O6MAaT5Q>?T&u#?=(*%BNGOitS6;}3ad-P zdG@IpCPu$z0lq3BMp6NQ7pxZs0D&Xms|;A6S+>wEC@5;^<0nCH<%B!9JD11?el**X zTw9&CQFv5obiZRpl>Rhvwv-$?YM*XZy!8O0bZC>fah3&$98ruA{dXQOxSzgL{phIN zG1&l_YvbsLv~Vw;88Y=*$VU?tMT#0(4&JON6mG{V(AeHh?mrxaXSK3C?c0Pv{?6U# zpwm;U*RItH`c0PfC*xxYr8QsCh3?236cb)6+nUkt;H71N$=9t`(3?xZ!1 ze_Xs4?^?}$>%z9w1Zjo=b48r;x|d-l{3iY#Az06jKN1>+c*`6yk?ms*Iv@k?+~L7p z)Q3~a@JVLkOW{lN=qTx5;|ygnWH87u1wB!e!ybbFzQ80so@GjKy=2q=i?X#epLScvF4 z7_fUD39DH@zFKT=b%rfNl`!ppjkSOB|%69VCEz?(jAhYrtQvXo})~e8G+3!Lg z?Z!z$PD0{VNdtvgUCCJ=K~J&kp-SQ3o_CGchszIu$fVHVybvMsZ2RFudj-HoY5*HF z=pO{cnQ)UXe5KGImy7ZFi0t6VY!Dm$LlEn!Zms;5@4dEJur?)VDQzW>ds~5`p&qz0 zYMtm`@wv2rM~|93N7;S+9<{M_IS2VJIXLtw^4xxZ6m_(in|j4RB}1}QYw~D)(=-L9dREn5Sl0?)(8g><9=?3G=@^-mujw&?U zhA~s{B{diW?Uws6XPTvDRh&TaNOvQhN~p&R;OcbvRK)M!bD$8d#3j(WI1Cf!OTpSA zkq=|;k8^Zn6*X^ZX}8iQ@4!m$jw0ivX7KJ2Afen~sZeH;da`T$k2Y(PohR}XaIn=j zO2Vo~NYa)?N-*y`s?SvrBIA}%>%mRn6bq{}1Ale+7>q^nxl9WhPA=am+L-G83Jjm2 z1<=*GQ&v)7WaX^z0a>ji(P0K5ddWS$Jc*s9yLxPI!SG)$mam90Z!&3P20+&dBj|T7 zG|q zpaA`H=j&4edjN}r9h$LspCSz6TaWL;bxhYm z?FuZ~#*=!Cl6;!cQB!#y{##~k6D32VkaSsWLC~#2 zu&~w2*d+`f`zRZ=ZvlQNkCAhz#8Gq4^a-XJO=q6m!IC> zrSyMMM#z8tQt`QZ$ve{h_FjxI8$sCC@3E`l?#dr^e5X5!Q}e&-bybspdIrDy-f%T! zRmC2|$Qs|*CA@3tV!o*^`ReiNJbX5_+q22#y0GAT`K2y}?XM2vp=mc4+Q(Hzx?MQL zFygOcIgL~nzRqLC&UG*db~qzhno6lp4d>O?AzOLydQL&LRRx%O=#GiCiFHTR%(LP^ zjHg+B{kk*$Ob%suROs6XEYmkg)W<_A?A~nYJ4Ke2N0O}eHUNA~zYzP>&ud*`S=**H z)Y0>X>1eqhUTfnFiXL7p24pvFsY5xz=VvCB)B=0&hE_&a;}!kmsx@xKieTy**VKB4 zzf)QMZGK&>$Epj_f7vnWzAHx8JS)-2JRt*Rk<{R+$VNIB!80nmrM`pBT#yJP^!Pn_ zEIDt^TxF3;&lTxC@K7`JSG}vA5j@zF>#fE;BSTvDUR8bq|IhW99Q?Fb+gHaE#}1c6 zgG&2O_SIkKC?{_JgP1yT?@rpM_1#}T zjaLo4wZD93PK#j+>4%VC5>~%k@roj4=ml0PnzEyvXYSIVxK#|nYedCGipdgr)F9?M zV;UOiCiE=!uO#bRAYoe~ExbIy_I z)eeMWF+_CNcLAcuGp#*~X!*XS9-key3R8fmB=8^qCud zYv$ivgkN=)#G{fv#_6@A>|Fxg+@{cGb&Cvi3vk;yL}D~Nh>{wh$C;UlbIsgjgLMCJ z(cRtjo0|Vv=S0FO9$bE1ezSMa;xu^a@EC#^7y7D_RHUz`h_gSAHnk|KG*% z@f7o%R{*n;A2UVJVS^zF+#l{YX%3S1?+uCz9{M^t7V|#j`sP__Ou60Dg%DMRz?8sY z4v%P`vwi&Z*isCzuo0_^3@}Q5@X!}&>9LtyI|yes$fe#hG^7HtsUH}Xb7c)8!VyG+ zwZJvV9N+aBiDdq7EKFr|6^s^%#u#0oSm>zr7p8^UvrTIrk^hp4RYM!Hi>u#x7kpG+ zL&X?c<=d@OD~IW-&GBn3&J+RAtSV=};RKNE6+?n2#l$+V`jK1YS=lx&TQYNjND`fN z7@6v&z8-J8ri539VQf4n9rIA5(>)To-FBvK`DmFi=1?-&k8FloYE?TG&8I2Efobw& zoGKKMs*mtIZj!#B6Zgl=QAL$16off(jd}&yAs0cnq9##_@>R)HNprpir&r;ZZ6fGW zHs8)usz|hA6>A^i{s4XO39#FrWcxmN;LT4v0w4Fq)~+uMAeOE3inP`pI&Y~G%!2q* z=eXc%KCg+fMtLZJK=^Y@-ABwY!fXK;A47PseH$7SY%DZ6w^+LvYzXI*-_rpbsxuB4 zGd6)+WhL+Yn_8aU(U?qrO9-+E3ai=>+v<2xiv+8@}t7Cw+lla&lSq4%hKv*bq?;Uk5l$^Q-zZaL=LF% zku53Q3w%7Ew;X)Etn*8jl{q6-JATM8XVIYs&vKfzXk;rkJ(Tvwvh+3U!n_Om6WKZ? z%IF~Y+83k-BTRczf24@;U{En38AOox`Y}#9J__m+@9W&w2#-^DWDjW1r4_!K|G0P- zR~V)5)OUtsf5!oPv-RIb$1oQ8Z~CmLZ|d`oJZWz4a8?BR<+Iw5eJcH^N%u0d20Gf@ zj#+zufLBwC+mTCU1$T~F+#mCM-NpOeASUz^-L9sByy$L=bDsr9l~y&6kySHR;Z!kA zBL>&h>?tar8ytHb^@=yCS=!w-;b)WKpQY}scd>Z^-b)FhuVQ6sCcb!HBb4P26e_)M z#dCT6u1wk<>MW4!c5bDry1)P#<2$h@sj&+#zTC@OIcRz(c z69AbUYS(qCzIQLZwiyFNkurZnS&zb5#vk=y+>q6OuG^@fUsew}=X?6VUJ^L>y%wCi z@4Sh-ga8gn4C2G+%S;zJX~7D41u_str~K6tCl|gvi6_-GuY0-J{d2a!mOXMPQS@M2 z{lv}fB%Y6}!2Vpu{fI&CRX7%I@*|@zU|4Y8wa(8Z*@Hs56Py|24(Ua`0*~ zrUaBjg^o8gk@};gW_kwWJpLTGF1iP@|84bpC!Lh0ic84-plKe;-mia01vI4XD288c zPU&Lw`)R4flKX4FBwAHCGN~D9{SiNRN;SY&b>#RYJ(>v0G87rm>an@C_{fE4E$>j; zTWkMdF7;A}n~^~Okz6z#n=R8!gC^>B0iKqe`X#;cbdf73+uH?>ut?&X(UO$iYExD( z>&s_e^TO6F%XL3dmV@xqhM)m!Jnq5zYq~(wW2`pM4@$POAlBKchHs#OT}KC39@&YS zRC4Y{jEfwsFUozYP6FTYE$}ORaQ$!AX9ZSuQ88Qsz*O%qSrDj~Ibxw{qk+B<(|e-S z!pX1p^dIxJA-njm64z4agG&+TB&KAINAJjr;4jPOb0fV+x7favtPM+I=2|<(sdZ1pX-*6ga;$+%m}}pe1zXR zyQo|DG>$47RKAZ-Ju-n^>$Z55h*~^XR9>rNK4}fy6pa%K-Ip{%S3$UQ%E_*t9l*zM z6*b45?;bz~g1eDBH&aD~;yN#oiLuh$({7qDw*`$^C4b2;6+<3g+#`=CJlHIKY7WzF z(0p+arcY=tre}z=+VzXse#@AGTvlEf8t3o2B!3osaLrBEAC!RjlmN*|4vBU~KVzHw zR65NdE|eKnk_a};=NNebb5#CFLIA7-`xv>d``?&ZwwU7A2In2G`1CPXQBOm}qSLseB)R?FYh z(gsX@fkf3H@7$wq<-laPmLl7Tv{&v}*(5``0@dFV>#?53E`qPV1{8Xrv#C~hD<)R( zVYh?cXL}O&nkDk6P=+t6X{4oVucTSK;#AwnJuMPZqqOjBWYur^kG-TAG&K&k1I%5>g6vHxW-^1oXaLwJC`qC65Z~0U&6FBj?YOacr>~9WLR_ zILQg8$M>ImC7mvX_qz<<)_nxqI~?Gn|04!Jyn8*g{$I;V?CHVNOLW2h3{3JM;28zY z`Znrjwxy;;Y|o5?^~fI?QKxS6$P>4-v=zK%dfqEDt-U9=i&WJ!nRLr|=wCdf7)wH| zYhDU(`H=1GF&G1Ck{%E>Kk7nw1i~HpvX7h(K*Bp5i-E&4F{}OeB@(xDJN69hsXP|z z1}*&1wAD3hPI?z-0`V#awk2gx)chM2J==jzPys|$ltXQ;E0+ZLiZc;k(U$O*aL;l7 z%X{@N@2R##-SVNP!FpqTlx6*1rijKlO&8&kWk#_Ico8qSEC}P`CNK~mH)SXcI*Zk} zA4$D@F(*qDQ!*E+^)zK|*iunKTA?(_a5@u!GYIoUFL^;m%_{KpTG+Y<<<< zkxIYUyFH$mDyr0g=0#~8h@AMI(*>smNLT#^RXxvNFcZYp8JIwj? z;SRgk74Ul9-%T4oUmBTIj;|wo&$K(p-AtahG&Tm>7=ghpY4_P5FI)&iwP&H}`=&!> z%aE8wq;uUN#@Fq@wrBIR6dCNI$EF1APM)lyYd6i|=jqQg*>}0dXwM4CX6HG*S@D^t z<|aLvraVaiKC&M?Z2aDl0Eu-?JLRtwwnh%sS=3y9dQIo3wjId9mVveDlb+a_w6=qi<5EBCBmH32+^X?1McwIbk^9@K; z-O{?Gq80Lt-Gsb}ry|iU_9xha{ zcDhs;EP2h+`?-vwbZU9RFUJN}KMFdcU54T2F-6jM0+)Axy_U7qtgcbT%cWAAh*M@k zxC60u!au!jG03z5`(qxU#Bv?Uyb`P9tKa8VaSq)Tpw9C<(57-t7c1b8knl{A35O~b z3yL_fEDYrQar=cSL-7EIyAaHOa%gs{R#q}wirRt3b*-5J6q6g-A6lgfKxFosW3ktfyW9oiXY30Rce;ZC^TPet*6%t&k zgB+~Nr#Qh0)W1paQ092S_}rDTj?b{(20yRj*uJkzk`n#+F`y-LStLBZQtx6Op!~vWMH{D%aPNLu{Wgt_cmJ_?AK%d<-My4AdVrqE zEjx;|<>AX_x&#Lg%zpHxbPPG}PWU2Dn?&ZP5&Y?UA$gtrqT{bSj;A^g03SG7&-X7? z-N0@?H_`JEd?@OamnX!{I>cR-Oq?tRx~dZIE*nTdt|zH%wtLl9=$JurWikup!UWLQ?EIy3$FBL{b2sz%CXi9}^~`E`swHv49F9nTt-{;SJtub+ z7XH1w5VN0o01%&C1hQN9)^sU*9oa;?+RxWx8)$BsN7f=F3*1ZoU+{Y7lH!bxw#9Ez8-WqKIM@NSkehH^dJ`XAz~=j zobSa5h1Z&e)8V%I^)@Sp;EC3Z{Grp!2cJ5i>4Fo$s;{=qes1c{f(`Oud6JP1kN}H! z#ZFb^KG_w|;6jDffudXlqVTHdJRvFQ+cFTHP3r{bVegw2#o(O{0rU9$mCcA^t=8+u zZ~v99J=d9= zyy)l{m1T~ROA)d-%!8_A219uD)k-Tib)kZU)!}c+g9UJh{5AyR3zI)0jhnYp7vzM z2Q{4R43@~2de=W`Kq%iqUD~m3i1tszD2o?MA|oULFbs{a{>CYFiOaXPIg23og^M9bJ^NsCKk(&%`IME_cc!=A8fb$3{=MDDE>g%}Z; z#Z&ncZsv#w$>o6raRhp_e_O8{2Fsv}ev?NoXUuaL3&j@e%ToWi${{h5W$n8O*c1yO zjNW4h0wks`%;KM@uHKt|p;JC;TW`*%jq70_{@t7Pfe-~rPo+Q=i^k_cg$U0aZ^bYt zAZ-vENI_ycv*LOk;k}}3&QcrF;s9&4Ui6Qnj5@eDR~1706)DK$NpL!5gK_~anp6TC z+OBJvb|;l|Q|o{!@A6%`m;0RPXhr_FbwYf&Q0QQ{7cZN`VMo<*#1xECpD#6+nl>J1 z1R7)Y(f<1&DKVgE)({`b3-8~-IpFHI`>2P0njUlph@hp#1K3O5~^wu5InQ)l0Rhj2)Mh6 z4?Z#gyW<0eYB{fu&X45!Q`LQsiwXUUFKPQxlNVw$BDXvRB=QDJ(l4AoC`D#gHefoO zvNI|D(?m@B7W`O%er2`U1KbpO{#po`kz455l+Mx%aDvbGzd0Da#zD zlC1J8wewr}xAOJ517Fu`U$YQ-Y9t43!a2&KIZF@1e!9hd#p@|3g&R^mu|vDL?i%yn z{*qu%@|XSYQf`M@^;a>~qj*`H>a6nnHmTgoec?lb)i+<`J|8`_2w}xJ$OZ6n7hpL-ulW zqqO*`vTwJGS{Hn@8ZaK2&_7+^b|%1q!BgYoFZv3zKFspB=!?z-V4#gTm!Ov18Y zN>(z>zpDDw;pwUddLv|H^qb?;wpAJpZ#>!fSb_bl4E#aA4vTMCl&K{R_3U8wDS~2q zSrHXai?@`hpOMOBzfCOu4aug< zMiWsSro9x=dbRYNsVesuS5CH93T>2IJ)d(1sBX~8}L_aE>upo`xVf=*&Nm-JSKO4$! z2^IICGVx-AL2{7dt?@*w0x2s&@%IR)lvYfG=;+doW|Lw8DvIrWF2_cvUk6j0paQP- zs`PV;o)|uae`GA@+iV+Bw4rrd`M4`!p?JD9%_MMYMCeT|G%S2A?(DV1-w?Mv|rv$FfQ};KO&(VJ-#6<8FU7JUI zyL*{h88s#4+Fe8_e5fmQ&17(AppyHSC#?jQr1Rxj(>fw##R+V)U&@I0njQ4&+R5Qj z|7_7`zZ8aqm~EevT=VdhI-Nd!(cAe;TxmX-HZeaG^R0-!A7|=wJbV~Fp_}^>6esdR znRnA0!(9R=VW@u?5LomE{I;w}#V}9}>g0)}NwKR3PAFq^XI3bq=)k}Zd+`Za3W7qt za~G}W!|WKga|-|5PjKbuaya0#MfAnrTll*F2xH?ur?{n?IXn!mSkxk}Y(65AycivG zrHP45uFZa|HdGQ|)`yCY+6xHKHVUVLgW57u+wV{K@WZkg@oHk!Vb% z63J3q$!atUyl=5!zLBvUK=@y;qkVr;H7R~tlosJz$UdS)4VJASAvmnCyit8N=uidA=$I-zu5Q^W7ERHR5yl~=YB!=( zzEN7KW$;wx9+`6pPs=;O5faME`c7FRrXqPfKJ!}HCVNcrgidrkzKYLxn+qRB!X161 zC|LCy^n2v#%bu;pX)=}}EbE+Z(KcSsrRFam^6-qJaWfzW9^StdTb<(ZD*6TM?0=Z* z{HhYn*!qNQ$wN8NCVj?-i=YR@R?kr)8O^%hsOV`ogW_&>ssS&rx%GcvI#-e$b8>ue zM%Tq=?0VyI=L;I?2s$*&#r~-t3eB&C?=izxZG$Tst+j78vsZJ3mF0lb7HZyY9&m`M zX+>dGZwjjG?lbiK`rfogdGNub(Dh;>^Kts(d&UaQ{(RYG@4zM@!};zB93-zet0VKM zb!jGelDOL|R1ox@1@@%@O*C_17xb>6++Cb*>D1{)^!AeW@kg3CiD=(jg$On4W0GYG zs>Q6R!L#zfB=SZL(z<>NR!OH(CAcf+ZScd^L!=JX7>tnu%27$G#(BzAElabD@yLaf z84udN^#&vtmrJ#;%`U&1GSo>TzPQqeoP^YCSHB9bhSVjld^|IFclo6FEg9GIIv)X> zD=mNK5P71zAN1~k)68X&Dn+9=r^O>5`-&^>41Hr;n_})>*56)@dKapemk3?dzYndgN@!@F|t`+4l&X zk$NlOa@2b3@^C7-qHmUW5)0G51GDf;(HM3UvG~ZK7urA7KXtnaDaIlfMBz>c`f4Qd z`j+67S@CxDNmbgbPBqXuk=E00sjUX1@P>9)-gNO?GGH_Xmu9a)G=?qqjVtlv62Mi; znr8&&kVbBl>AyJfqB~btfJeG_I<;`BdJ>Y_#Hu(U>#fA#o1MI|@+w}Gc++at-xVc4 zMriqCc~C@|cr$aOX^ss5A=-|?DZ=SmbR}LPf%ZS#H`RC6CBt{MFF~Mh8{QhnFm5q@ zvhW{2#y#*6e`q<`0}5XQjov-s{{Pu$N|Z`4Eyf6nFLv7QmN2rt2RxB#N%ELUVo5ug z%P^am)$|=&&eI$cF`*B@@bwikVEYovP18QPR9Y-I=QRMh%m|9_GggY=r&t3%kOuzE zl7gRH1pju`uS#(xt%7pKUqch$|6A#__;Ww2-THU^7aWnp3$Z&=qCoKH1PO9Av_9{s z9D`G*Lyl1C`nqUkW8lb*6$a5&>#ogea2P@OZ>5#8bJqY)+QoRwx!aoukSAm z%~hR!JgAgJ6YbzRbdBE0H|~l{r8`?Hyv}J+;S%53(Q)J-YJwpDLSLG<*i0B?gYrCWL_)eQPDb1r88oPT-E*H;ls+!|Y>tDc=q?x>D;HH?Mn zf}ZI5UeqJBGxi8qg3t^3#}=QjpY3<3!P;=su&Sr>5T_1v(WRL73GuT{PHwpcLG&?K zZTkW0WgB+cUB6psao2P?#HQ_!;jwqiW(!}KvZ_gn?v49GChs%S;K-ISK2;*j3GU@D zAz!jpE^B*#O+-YOnVZ-MA@QjyiSy)J${oW3NNsyYdIiSE} zdeU0ausYMf5brdr;f)m*ir`pmsqc9f&31ObE3Tpnh&X^t7(!tX+a?Kt=*R!$k>*rz z3?JK<`?_CFri|l-%EyA0Cz3eQ46~VxdcGWQp6(8G`)b^FMO%md{en>;4LmR=d(w57 zB&&IMn0qJxxsRk=FObmDH^vuE_#PgqwIyt3kBi@h5L3tNdnop14rc?hT1i%yVWui2XIPG~pwecd>q;^w}7Z7bLujd7Y} zZ|$$U^?E1ia+9u4W3IdP*+Q*TIsbN{pCw}m@CVz&(Qm#kmFAn+U{7cor>o6+(55|$ zZRt^B_6o2itNkyRrq#LO$q!7rju>TjlLYSetRdgV>QXR`20ak4hUsnyG(W!8eaCC^ zdrNmJ@5g}Ra1gkPOWJ=&6m77>90x{QzaeOhe{2dEzOYEDyZhtO4P_judAV6bx(uId zM!(;gij;gs=|7o-RfWqtWa+;W6TFi{a||nO9sK)y72&mWI)SFM2xm1*LVe3@;Uiw@ z27Dj6#23$zh9rByUkG3@{|5-PrZ|7Fqoo{Qz~6rugE}{u_dCrWcU(iwWHFe-{q(g1BZ`M z=0G+7p<>Fe^RA4+y8DZ0_}Yk*lJA?O@sO~+rHOTG4{G6enO zo9Fj6OW-lFX)8kF!>->L?XgU>o`YUyoz4SDg0Mi$D5v#WXRc?!(3T@h%a8}K5O$yw z8JuB+Z8bcr9$zb}ss%EuUG|;r0SC}iza08835>DlGkD$*7W(%Ym6=bq7}b))tPwtj zJyjFdeUxTantG?BMBTsB^eq9AIfb_S>7JxnuZmKv`@WU-_HHHJ-y+2kB&k5-4oyWP205Zvc6 z@;wFTb`duL&8;;2W?Di>Skr|%>OogNUFp5XJnGUO@RsY4W?nM7k714z8wR@Dmi)(4 z>{UN_#Qwa!OakW{{*4tJ3Ra(2HRmq=@H8Yqu<^~4tEEhP4gw|t;~H#N5>ArmoRg%D zDbjU+1sT;y-ahnC%e9lCbo@BzVv%F#wTLQvx)U|+c8CUtBa2jopiy0$(R!Q$FSDt zwVR=1j)~~~c2tcC$2MN6I0A6uL8lSV{MziKWe^TDLleH%9Q!%jGTsqL6H_{ZS43D! z%B6{Zm-g78+ieu8?Ya61jY$mcZw)N=1BvstPnUmCRa6@p>{0hX)k`M!7QQckX#bcg ztpE1khGb69`yiDib!*G-OMDfxmM#U1-Ua33(YS>1aIu~1yFW}J{vCqGtXZdWSo6q+ z_+xzLNWMp2%iKoxXGc$j9w^M6Q_-8tiuFx>iqx(#c8Y7YrlzSHvhf48e|PFteUpyJ zUQ8jN<*Y_{%}8-u1518m2`9>&mRpgSQuC&jwqS7Of$sx^<~LrKZ;O@n1rH=4@a4Ey z8IWLUWh}tCT0~!$$C=vykB2__eXm8~8Jh&5Sb4t;x-sj6$OK<&^gJ)hdCoW4Y7DaU z8cBWk6VJR|`U*Jzqbcs+`$_J9dQfChuYCJQwix?$&%Ye?AU*09$6|iS$h#m7c@F!Z z;?Lc*xfW<@1$myvD|sNwRnNDo?UI$V8K?(#-UCj_oxeKwD_0L^kw|@ae?UibNi>7h zUx|8VR@B$ZK$N_hR_ZB2A|;I-Sq0}sy)e`GqZmmXXSd`O0(>xwzg&{5D*rJtY}G4v zf@hc1dgZOorC&`JRIki@HyZYd3dd0RaFYNMhzY#!tvfkR71jBz(dl&X8srbvQKoFq zL+)89k9m!GkGG52kwnXMGN{eLD;S%(3)|-aB(mvUTQe6oW+;Nea7a~Cnu++lKd_`# zA2Z?^-2UtP*YT`tgY{?B21MVpcxwBZO?<7Uz}v}c589ft)dRVi0^XoQo!dm^^e&f4 zU(KRM?w*C|LvRba%7;t$MY>u1wm8x-k{naW8}VLKCayZ~r1cg$Wgq5}_1eD~a(J+^ z(UtwwO}WK5-79UqllDmNSUuS^D;&O4YIW5O)J<>Yf7n0isZ7k68>-!tAG;$}p*`A}qV}RtaMLbS8VG@|dNDLIQ}+Xo=KUyY zr0fs^MWpeZmj*j!Kh6jgowIBuGkBMsNxP7CB`rLY1UCO!O_M>}1}RB#X%^RGq-5!; z*PHmnUF~j=W^Bt+{2Aj(HwBMzzfwzzZi5J^{R#?!_~sh$fUOrqbLpZGkfmQn>XZ0z zFORxEc~j&`2%wJcWt#t5xbsKr92*tNxPh0nl&NUlU~UIX9p; zeQfM?lpj;J1uc%;pjHB(1Y4MgrSPkDR&}B>6b{HW#q=t6z|e51vy2vES2q{`+q@&+ zp$D2LE&!Etw6cFw&B*VuF}PUE79F;ul@D~}R8uGIWrBC!<6Kw5=Pr6QjJ2%#&$pzX zC*8d3sz;f@(KuO`QJnTfzv1bxbH48pFb{Yrc#9EDbj?L|vix6r?-dp0610ti2y8__ zf`CLt1j&-a5JYksvM5nRBo0W%1}M{_V|{kcGJ~ zpKE^mqHouABBW5Ot2f8Uvc$>}A2(av-C|BB);m1vP^>7%qW&##ISBiyl0TuRUoM!nU}y`4R=r9k5U3 zZitjh+T`dP57!MhtIL(&nkr>e`6r&-OOQXkV#s!}16*O4lilp=rjpRfx@n#-_en^m z%N{>9Xz!(oQ3S_g%APm4Caj%b@c9=*P~f)+_V6ZW;+Tw*>;0gF4Oq4bO$~l?{ns)2 z4y})B%vCs<$nyOy{iIicXr@1Y*J@n-X2sX3ss(-uf}0RQ?%m_%?5rL)Sg~;K<|^}O zFwzZDBwVtE>Fh-bigi-7juA8=nt0Wfl9K&mr`I zK3cTG*JPrCEl(25<<|dQl4fgst;eYyUlx?0F~VQYFPrLO@lp~xx;#2KH^ob=rs((5 zb9y-QP)@F!SvFh;kIgk;!l`0 zx?$fh$`xAll|ELxql^z`#lyzDy@sirsn_m)NP+(K@V z5CEgcS^Jxk7AsDe!oEAEE-rLT0DDCuLwA3xO|H9??NzR;dETXq& zpF%i=5}M^yT1sI@$9Gm*`*H327yD4HfEx^RFI6qzzou;GVI8#zb9fpKrYd37)7#IcYhRc9&`Tx= zR|M&j>*?OjPR@UIiz1r@b-++;y^5Pj98!kwiwzOK(Ei=(wQ_p<$*{Gu`yEe&KI@X83-&phmYtyu1m{F^(qkDF zAqW(%scGDiVez3^17+0AGX2~WYBb}kl5B+sx_Zd$BHtPYd>&j^7Rj$;K31mzJcRgt z2q_;KTs`_5bZlP|UhC>>+ex_J3-58O&s}*cm~ml-?Vl|c3FdzZoowCqq=7Gh*FAm2_E^#R!k_COBf8`6&o)pB!7!e%TB zwrTbwe4h-J+)arN7zitj@v3Z+Z?L%dO=;v-q;)^MIwBBGq4m8K=QU~It)SAmyq{)9U1J5|fBpI)$+#yRe)R`4dlI`+M{npF&Ku%`1}6c1Yug}G{Bd&?vP!D(Qg0whZ>%S#T$I~6}^t2V>;9QpA96YQg zC?rM%88c(G)^`2~70;L0L-1QJ)esdLLnWzeUXwCdDu&?N*lcC;bZ$npBq#i)CQ{4511P#-kUT$zIe7MZC- zNoSW@Zewm-fZaNH=SYA(`++RvUt1*0kwB(uoVL+R>lOaElbCW%-};^b{pS7M-k6=L zB#9-@3=3;%I*R-J_Q%~-VPMCxNE=+E@es9eRi0h8@Y8xAqd;rYng*uZ+a}fdWdD)A z?H_iLC0&l+lN`i_L^ZDB0yLZTvNndlbtz&xKAUN0a>lS!=kR(?mDz&AWpIWl?lC5w zBDwa{vKzI0h}S6HnUBSb)3Y|zy*`Nh)$o)c4YUZ1PCqR^w4W~`H{+uE(7=)oVqJS$ z>56o?a}Zosarmv;PfW_YBv12Mn4?kwkwEnF#BIp4g9GYU7N%ejUv`Rhwhm4}x=NPzGy9Qz^ww%ffUUpv3J~ zk;Uez-8EMwtG4Cc$jjhS+&uG6BU^h&6wFZmA%2dUMIra(mP6uU zZS>*8*KFD-T3f@zL%lPW#b<=r%@5eS1PYvYkC4gqLtM@ICP|ccd3?X|Yskhg#a5C2 zT;4R!RS4E-o&N@~v1_ver*U)#( zPB^ldyKvZ2ZHl*}?D$&mcJZM&%E-A_VOU%}xi8p`^XS@2EpitW=n7rT&kCylv5+>7 zaH@jS9v>W2-hE{SYQ{|3`76$SKC~WXh+D798my2-^D5xN&#xrH_U@){;HL-!4PqZu2WIVKiuzT`E;*(XGgc585_7B&!&p&Dh2nXe>_YJMstVA2R zbsyaoddLDK^(ErpBb%;jMaRs|I?H0!a)m;V2%_bdB30Hfo9<5EDs8Q@uRV<%dB^`I z>-(MepB^y1UB{$sXiTvxeu!c4B#=+^P>}5AqI-5W&zV_Wc-?}v>Q7wipuq3Ln}&Tv zcF#2?wh+Wlhdnal9np$n*QWFS(YzN~kp{ELjl`8>#%s;g$#W8WZ1g@EOP zYpV8noel&PhDdyC6Ldp&#Tt+Q$@_54bMTQ>G)2W$zHW?bp*{9iCj~O>3a)PMtxKb` zwv}ZVC!r%Hf+Fz3KPi_v;u>4FHjAi4t%VWeZlRXM;(nwrQBK+<{;%io;L(D_+voMZ zTI?^V<07N_kHYeMgpv62iCU#>3J3MYnrid?!5uH{psdR99p z!hB{@H`G$nX;rjxRUp-%_DiKY1!9&}7Iq{-eDFCh=%XV?h_R+M&B5yDJikoFOUU@8 zV1GRVX1f#RA0;cVW4=U_N06N-T-#EaS@LoaAM*RSjBwFST065uQ|IG~Qoi-tS#m|m zefcmMyqczb-KX&t$Vsq+ZQmj{)@korcwjvu=17<-PXD-G*AyF3E&g3g7&<2Ku48?9 z@_mpRR|kbNocHZ<`DBNygnZdc2);aZu5d%R?W-FD?2(-E@;us`+5*1~k6dkIS(hJ& z-5to4E^p;~GfOcAw-b5l^21*6wWAz4m15rqu1!iSzQY%j>|#{LHo4(5Hix#(WC~6; z^XPQe_hsDU(F}J`1N2+@tdhi9LY*JP^_UymBHwccxOwmIjBn+0$s=vU17+{{xITp= zN2q`jBGl8j>=NCktC`lZM+)xU(uRT=w8|?N!sDROBY)t{y9MvVFhnu13!^xt1l3hD z6BbYDA5K1LZpmpmHjDd|d`z#nhGRE2&S}eQ2^?l286!U0(m|aXqfBIf4y5r5m?T|XuwiL{?NAOC{C@(jC|9Te7k~Oh21=~)x0dy3Mqyv zt0NxIL)?Z))!aB7Aaq@<h4~Ig61-#w zrSS0uq6HD94=!{@++Lw z#v)1p{r;w4dPj*0C7d{v1DkR{w2zBZ>KSSAgyIl>{G%+yUh@|1pm7(fWr#LHrM-fu zY^`<`4!?7w{P2sxdQJPKlAd%ixs1ugHPu}qPpYI&*Q~eT7_6hiqF0RTtIc?Sl@@s9 zj}M4n_U6785{f8V?fa3{Ge+yYdUxT%6VGg($a&FRrWp;WO1j5=d3W7PiELES?la?< zFqdMJV9^l?7(yfmHUJP616zPrQ)WGBEfIMAA0$Fq$@8EXSJzSZHk`W9aUHu(_QM-; zy$urRtZ^K0j!nDogXUwesNE$p=nsp^Yz9>lI+8Y}d-sdfs&t4TDM9dzcd&rxKEk$& zsVm88uwjIr+s5fET$sW}ky}OU{quJ?RR5NL)xYKIz^tMQYkMNrKB=kI0q-hA$nW{B zUT1RU`t{*-Mz0@@n$X99Q`S(r3uEt(IsJP%Ew@8p@WVX;O#ftw0aViQqoCdku2F){ z$cQ|v{bccn>;W^crW5bl-Tqt}a#T~>)DKJ9gM2vC#rH6@t!cO>deKybsdh@ zeOy#u@RXxL(=e|hOc?3xY}`nn;xqxy-8iYgxk?ttb^Qm(DE99;S7oK4Tv^ZCgf2+V z+3LsHEEc;R=zkVOTWp!5c{9etv_5=)XM0Yg?LuRoTaY<;jUUIAqO!n*9XNrq1f}P!h+Tu@+`!tdae}&^-Q&!J@A{p5A`p7W5U9s ze~Qf8MDLRoW?RUDQ#cWpv$>_O9KWEjx8yK@Ds8hck0sk76HSry*R{j4)MbHI#|A!! z>syKt=Dp4!$40o(hXmbR%w~NJICJPU`@5g~S?bC+R9f_{7aPH`KOZKZjW%9Hyjss?=c{i&sEN>=a(HSTq}aXLY*X%a4GwKkFFkWo^l8I^FsKJJf0xv< z<&n>=zp+dzf)dp-DehU>#01+pAy04pqZ}<_Eihd7vT~+1I(d4Dy3hMbp&Vwc+n7x@aJ!#SR%p`Z$`nhQ@iIx?A;& zyJtuql+%=PByoqRbeq(i5zGMvtF@+!OOzoWuzn(qh2(<2stUCmIMqtEm;~kkK0>JZhQ^Wk2Loj4glw^v9cjtMDdd0A zTqSV7Z4RfUi;CXP|4MA@Hz7e-xK%>_o}eRU?UzIT(lSDzF;Fj;JvU>Q}SK$8qCqngRq`wsUU!CgP43k zK4Vsd=$g}sxiIz={?I&<(BtVOK%WS0?W2N(s|)weMyHT|*xCJF@E#k?Ko`Sxm1p!H zn9t>&8=)Ih-q!^dkx>1iV&YAqp%G!1O%=BuNnHENnrQr(oxeV}v4Nfhw;JiBN}|L* zkcW2rTG~wTOEI#K%7TBGwJ6t{^M3BTKPuh&Z{NHnYj7C*=al|~Q)A$^dC#PxRyA>P zti60IRF%)AjH4|#)LNEX0e92ci44^xe)c8WTtrB?ERHk$SALrctA zsy6Oc5YFyAv>@fzk)bC!qxTRHb#5N39LSVgoL9hp6KSS;2-2+2vzHH1K4+3v%#&I% z$CpOifrpkvT8vCI?>1Lh??q<67bp!Mg&J0Ne$DF$(7yUK#xyKhVY#ZKYn>fs zD=Wn~N?1P82N~+ZNl#u|A|N?|SqW4{Yyb3U^0QvG1~s^Q0JXZ9Ziw%+eNQE{HNZu;9e# zQB)L0Zbri9o*o%a>=ig)qk^p--#+8XNuVVlq7g$ED{Q& zWUk9)Ap)S2P2M7vo{w+X7Nmp1qq@B5WKl1oZSQf*h;q&~}5yt95& z%8=_cS!{9r{r2Vb#`YQWuuBym=Ihrk^zU!NuQT5xs=H})b^0S< zZ+^NZqv{a4iY$kG9&^-N452{-vSbfAgsi&Dnxf!acTh^j48$4E$WxJAN-aGxKH(X? z?=NT&^n{}vKpO9Su)gyPGvy9yZip#G?uPpC(l1mx=aG9}+V?<-No}c3Be8GhW##As zp+V#I6f2OsGrOQe^j@M_)>Zv`M{XBy=FGEpkt{A_B0Jaf7v59IQ;j$=eRoH-Vcz=O z0;2ZeVDs_m{5s?&B}MDvPq5AFHES7ovTjbF6wq0eGgcA~Ee)AkZ!<&u8fQ$bq=1D(|sum(Za@#y#< z=abW3H@Z|5yZA8>DsN(27VUelIJwPo%XenglEs+&|Rh-d*<18?M&aByYcjxYRA^> z-uu)C+&U#jUz;4d7=0u10;NLs)qJ#1o6i=lAAR?T&mmc%7?CBqhI?WQ?w1b@B2}-8 zmQjfx((}O#ng~8gh1BbA2~3gCH;;x3yM@zC9P2^KqV&Y7{0FR4XLZF8CCxZ3pJKCV z{X>QW7*E@CdazmNW+4op4wAKBkm*FTqq>vD;0bPmt&-ndYPK`X*{)f__4KV%Q7T_?R-dLsUe``gjmIGkICWjgYK z{1fyOPhW=%$R@(lqe+LWUx(Yv>(YikWSwv)-&0-fs<4Vf&Ms?;FLbl(VF=w)V#-Fn z>vVp$f#it30@1bC@ubviPwVg&-!q_LmzW3~CXR`crl_oF7mbudVGpQY8l+WZ~8tFGEfl4nv<0xo#|Wss>rGu0igHWQ2T-2Wj3KPl$@_j9_WUymP=? z`MbB5ofYPX*8ZFlq&+`_(Ml;N=n$YnD8+sp4N35_hmS?C%T$RBw)W)eURL$rnk{f3 z=JMhSF~HNh6c1(MeV8&$o&E+@H1mmh9YVS|tuZ7nko*h7lA5@byGorSW=!(F%fgH`J!POtuA(JNn?mtmw@6UQZN=H<5qqIre@*)&IFh|{dT;Z}~!laDf!VNbR4h}l>!)3nzcCd2MgKYxcy?{H!} zDf9SE>m>DZVKw_fD;p#up=a{*oT$K8<3XY92h9{`Sz6KkeBH`IC@vZXaK69zak_$tYlH8*KByl6>4_7G&qC*iTw-%P{aYx>RwyCAF-z>`PVJ)UF|s=pRzl%uJn`X} znkuC~u5@Nka-$vcJpZmue85t~dqm17UsLz#2e_o4yE^KqM!Eog^Bm_^wvMblgqU7H zFl$(D-zsqr^>My1B0pZZ4zJZCop#+$gU+hh*X<77iSfiWVy!72Hb-)*(Fn&U-Rq){ z@^Umq8AoSAN;Zyt-hV(9EJ@&r&reh7ql#PX2Mnf4~XXGKDHG_hV

    QZt#em*& zW0`mGj9cb2YMaD}vEofYsM*+@ zk4gm}DySoJa+GH=AhqGjTEb^r^3+b1Ez+xiz(_d2Kf}D~yey#E4f!n7NLsEU6Ihx#~&8 zqjb_}MXa`41)Kpo1TtvefW-;xFRuth)|J(4=RrOp6XRPOg4hu|NToEY97=jTxM1Gv z=+il<;!eRW<viQyVx|r{HbJV0Q z_`%QDKYJK>d*YgIRp;@M_{G7*H>=U~;5w&1YS;9h%aa|m_R*JYQRlwhLzjyO3o{qD=_oZvpsS1so@~c+RCGx?YeBAh7=kSfS{1krp6j4;6b0bsoB$|Cnf-OH|ByI2ed%X1x zTu{e0-AV0a-r{tPA|_w*=*IF{^er|)-vyi_p9{tmanB-`C?4%C1?SDQ)f91S4v%I$ zLJ}^-%+YBLZr^S5;%R7~cmG8hi}yp?NR1$!t+2I2ZhD&OoY$EtsM>NnCPIwl^DYy+ z?aP%JLDym3w+*A0JRe)6{xArDH#^)?2AuB; zXLDCl4DQp8FjE2?iZ1X!nU;Ok7RqT7x0_GAze91?q`vClDBwkvwnA~Os6pj|8Aa3) zHtSIV+To*|MM7h9iZ)h+y8d`|4XTNoUCSQ z^nBu`J8fL%c2E|dHD@||zT+XBWa7on;JZKM@&lh*w<%~7tCHTcdyL}i1vyqz-z;2y z5{t+&nRiAr?C&PEq(Mc0UpJ_8dMLS{MVjZ_FBWonl6fU|g&$Z!=vMzL-F;Ts|0Ky@ zx#c9aMY)r~ou0w5jm%|KOL3^T_tr%}=A6X$axXJRd^V|h|Do4Vgo)h9$VipbvPw!u zMm}}Zn*9FN<=j;K#Z3%ytlJre3l;U4<|JzFrH0z4)b-=%N{k%U92UWM`y7~ z{JycDFVYmYUAstfu=5grPvonfwErJMf6eKic}XTkv!sZdPS?PTA_e+ym!mG}T}QQw z7JooxpfBM+r(H(W_k%?m-@mc6L|-1YNSB&4rC`T*T5WnJRKGv0iZ;DEFb(W{myX>F z{{Gd@%*-rnD*|w#vOkICK0$60 z%kKM|$n;V3+4-uphGm*#@F@+(|LP1qR_-Un4Q2;(-j5li$UK&-zc@spcYAo@nV0+U z{clN4kvuKuP6o~NQf^NOHxt(GlzZU&&f_tCIoocCiH2;8dV%*Uv1NELZ_Tx2B48*5 z><2+7EXwg>hMpfRXgv;ZYtK?_pChENYCq3w;c#Zs2`}(l5+J&3Q26x_z zA*Ktmrh`%k*uwbtWE{xDQ=l7aEr+%(3N6R&yjZ=dGW$v3wHu$QrlX@HC?cZBbUsgr zE^FA%eh?!OSJt?z;sq1|Bgwc)If`pH)+f@uL+rIck*P#T$_V77%2Ow|Jc?roj+3VI zICb2$Oz6ntiI&*?wNP*T9V%o060V9>)Q3q%PyG)q{S`>PCx2Qkc0>sZ2*_e3iw>r< z|6*HK7feM(wYC%EF9Dltp7EsrTTuo_1zQ63w%FzIB6VoNapNKbCKP!EH0041_@w`A z-In3(?x!HoPp97xc|Db@Bl_F2WJ9PBc2nQpE`3zwQBzmvmN@Cscs3K#Cp2MH`PJuS zH^>6mmJb*&*M-|gX$?=wi^@0eL#Zz3NiXm1F}zbY)85(-eGvWpUUm?$8q43a-WZ0{ zi}K6$@^J6d(z#P^Oa)KF<~Mw1gXeWl%dHd5htMP_EVs!@5_A z!-^R0nE@a&@@Zfe>u=(=_N_I%k*&eRbX4}uCvPyTb5|F0O`Y%41L{A&h8RD8{@i2B z*0kY?9MLK;?AB)AvtU2}xwF|C@Fd3nd@=ohEaPu-;r#sZVvMQiP8$U^31sst=%47} zq)ryO z;l4f8+D>iCW$(PxPR$E`&{AYrmSn==0WXM>{i$kts=X?lc{&OYKl7T|Fk!RDgW#+4 z6(TrxqTL(Kf%r1^(pC!?XkQk8xxqRG%{;7v>zP!6g)r9S*N~=_6kDoLtKSJa&=;a_ z=ik-#VHE=^b+Qy>DY1BW0Ru_ z^dyJX%}HzVuR4R2@m6pmBBCnm5mshquSL2!B`g59Z2=ae0KU{6Es%K`jH1zU(;41BMPx@-4;i5ksf{xETXKC7YEzh~b`ApC;Y^rW4PIb+K z*ZW1DxsmU|n4Fx;@$Zn4zlMRr!u5VGn`Brh6}1tj0n@CqdOf};cM8oWwQ~d6=vnEW zibkUsFefLTj;UCU1fM?N=^P1T%Xnm8>9%Fyb^MbFDyQm3{N!f*8#p}OjTYcQy5FLR z-_N?fkBW>h&YNt;I2`GKounvN>ZR&8F5Gbe3HV-DXLA}oNgHrApa#mUGf*916s(^G zAs4OG%};7(y*Rl|o74KG&Ni180r>+{e(x`F`sb_tj5zYE86FwgjNjST{!onHXu}0$ z?gZ)ua9D}g7p)rDDRp(eXAKZCZ-7{2S`)casNuUlC|on=2k`}83)crHX8w+XOp#uO z)OSr5-MH7EgR*bnK6pmd`vsC1NJu&yB{HidC&!lQ!_VM%{JS51}m( zxRuyX#G0gBIdZTuF_Ob{VTBRC@M}3vA|yQ^9|&qW`X2!N?MGP6&AiyOEHeLBPV?8W)bPuEl!K4? z&e7GW=~a)I^==^3`8z4#AqRmi+gRp4T>b0104dHEX+o>_!!B2^&NBhy@D1guoex-O z0Obal7=DLy&Hr-XO4 zr?x6Q;5A;kHtjr+2jHUgc-#Lx=1PX?bTDL%_iC3H4Q%eNvCmHXK95ECAoZ%FGM9)5%ULg$W~P;wIpgzg(OhjiBZ(-GCcBXc-2cuFcmB4uswXjS^@D z0$S@87|12!ZH#5SI_@0N(>IpSJZ@uK3n1e8Qto$9>~eXsI)Z&Gpe&d{J`h!b_V%x# zYPL#lTx||q+N~V{SV_h5CNH$AsS2sjJf3aSC%Du>;eHidvUGnYMaXsytNVZ^rGTQ= z2j}-|)8@MqIh#@%8T3+GAM%WpkG^uKFrC3GD^*;{r|FSnAotd!{ zX(@*x1!Ce;c2kkt2hn3%^Tn3K$Vy)-8lTq#SMqFXAYY{MH}U?KgMVtqNw4Lw`pWb4xKkSHf1vL#KLFUi)z4t! z{fwi=5UgGef3xVZLLp%L-TKW=YohIvjWzvRa;EmrYx!) z=A^tXHcU;=swGy%2FO~ZfvX1s3z0rIE5@t$Jv+SP&jgfw7IuP(3z5R%`wk7m60__G z9%kljfKn0shjO5=jPW*b%XC*NWB-eTD%Xu?UO=qMo%GJPnn1VnT{p&uTF!e~LjM(4 zcDwZaF8SjnL!G0o$9Sk^^GwzoPEqn;{k(c8n06C3pu@4MKq z@e*mb&F77$>&1LN$A4;fyE%D}rRsq*+gju{s8Wg{Ws>swar9ArIsZJ2g3ZRr(6d=N zo|W28gEIQ*0D5z((!4$V&QP9e((|t`Wkw5i;7C^|6`nhZiZffwO-#*X+yZzCB$F9Q5V5*y}_ijt^-H za#$JwnETc1bccyD<9*DWG&8fX-Q?|55r_WdBpoOAIp@;}Q-6zTCUF<5@#+T(kxDVt zJVwcUY;c?>!XU|d_2sYF`$KiktD&KfI5|~KyLSO~3jT@~2XgSCl#^Z3K+2Lq|jM&K9yd0+5`sJON%|E-jyr{9wJ&~&PRaY7R~JkiqR6hXYqQMu#=1t zXUD}Tk^D~EiL$=r_`jn7XCW&i&n8T~VdK?JUI!{M1Ls~eV)!`Uw5)JM39;Yfx<0yp zL2cr3ADSU?7u*G?l8}(_y76(t;F;35?o2K~5TAfv4^UH6n-*|uJ-I0a&-6WfG3|eK zF;t{i3Ws%HGy{JJ?*o0mA+~|+l~kwNm{>{4~N~dc2ksvw((YMjJP{UD!sQ zUJ>e>`nuNtzWPZjJzDFAnQcNl#xP3qtTjKP5BfCn?c29U+}u$SJoS&7j~61=#!FEz zVhYnlfShk~!>4qc_c4Idq=N5ak!gP83Y4h=L@lCz=N|j$5jJeB!%;IlJiLF3U4Sqz z+l9ASBpUThq-7NAz@d4az}Wvz1b3#hfv#@C4sBI_u|%$R;r??d?mMJ5m;yy&I^jrm zoqV}AH1(?i=_{Y36HmeFr;92cXu{`$ZGL2*$@(RPli3Rs<5N_j@Z_4o+^O0OQtPqjwNqs z61O20r+%5lM!na;dS0jH<&Hj7Il!mS2CM+Q0*MiyaXB;d!gd3u|9Dp6 z7=H6U94K&Au8Ln#ZPF~>u5XOWUj)z zGqR3~+u(JY#B`3S0ZV9YrM z1&0m9Jizkx(9qiDPliQJ*PGJfY){fg;^N{!0nQ%*_%F%}w09aDz~q=u*E;I0 zEK}kXL<1b36Lenb6$LNo&vj1YHSZ(C@OSRB!i?n|DlbGGbF=6k@* zoUitoe8Sk>mw4mYRB z$glv-k(oPH>uBElS%8h1`OQEEL#aV^{mX%{*2HqLC{g3*G(tAI9S^^9rb&46v#KS> z^3X@oiIgF)h?Wy_e*u6Y{iZ?=)H~B-A#AeQ*E_M3ltG*lfMaAln}$L>tNN?iM$a)u zUaTFjRN2qe?;vf<<$)tH2LeWy=pn3zviIkL-}I&EZRyMZV#m=;_p&s-rYQ>6OXB>@ ze;>{H#{jq27JyI0ys!_K5O>>5HZj!IrHrB#Dms+7)2Vx@yT7~KV-65z2w*N2RYF67 z{kMZpGA%DJ>x~1TWd|!1EBh(nao&Uvh!7poc}WV&%F3Wa;!T+K@w7S&vdDvEDnn6D zZezSOCpVX6LyUlwk-og?&;U%n*ml#=EDglX4vRiObQI++mtKH?^YXcEPI`c)f&ou| z$}-?U0j*pB;duDZ5K=|CHuD%sw{i3Eh=|I5^)yjF5_-|w1CmEZ(~g}Ce17N0YqL$> zJ|JY+88>uj-&yQ5Kix<3IWDvrY>_fA2{LC}4rEk-f6pu5sJnnMC`8lW1qK%dBIl0n znFjN&xQA#Fi;gHdYKO)hg>mODcIxnw@pA`l&rCyvowD?RT?<|h2X#Q2f{}Bd5LVZ* zK4pJ>j8h?!hRpYLKa7BwR?gGYvo}*(8sG;_sbNj@L)A}mhZgha~Y2o5%E+#uW+v9M`($pD6*dd(#BnSU#z6L{16Vxr`E#X{qD17aX+!R>6TW@6n4kN_x9 zE*?E2qcoezuVzJHz6#&t5#~#Q#kQ7ek(-8Dt1f^xRCikp8B(at+`wTR&uNHX&DIrtIN?w&pqwDyu3nax_DlSpmkgk05jl%pA|wd zjRHb|FN`|0Ts+&@>tY8Vd4mK9Y15s+UI>&uFGU!Z^7k8^SNjXW6vGkrGX@)bSUt~z zawIMjm13g`Y;($eGy#@<{%xZ1;Ec_`Emjn;o`2hu1#HH}zb!21|Ji|I0f_N`pZ@P3 m5JXBPgNOkH0jX9S5D<`zfRu=cfD%L`2;4RhBuGnA5hx{C zk}MIBOes-NL9!r03dymEMTJ}cf*S+?@epN;vq|CTN1Sg~>y=jt_U*MT?WZNw~J#=)_C1;@&jD^`Ga z`+;OKtEbKk1X zM+`V^+<12FzrK3Q(YuecU#}54U^vZt_HyG|K2iBTG3wV-`_q~I*oocvtIq5{PVE0b zuTIQ*j%DEDacsiiFeoaS6oP>-I0ldb$N*#jG5{HX3_u1T1CRm80Av6%02zP`Kn5TK zkO9a5WB@V%8GsBx1|S2F0muMk05Sj>fDAweAOnyA$N*#jG5{HX3_u1T1CRm80Av6% z02zP`Kn5TKkO9a5WB@V%8GsBx1|S2F0muMk05Sj>fDAweAOnyA$N*#jG5{HX3_u1T z1CRm80Av6%02zP`Kn5TKkO9a5WB@V%8GsBx1|S2F0muMk05Sj>fDAweAOnyA$N*#j zG5{HX3_u1T1CRm80Av6%02zP`Kn5TKkO9a5WB@V%8GsBx1|S2F0muMk05Sj>fDAwe zAOnyA$N*#jG5{HX3_u1T1CRm80Av6%02zP`Kn5TKkO9a5WB@V%8GsBx1|S2F0muMk z05Sj>fDAweAOnyA$N*#jG5{HX3_u1T1CRm80Av6%02zP`Kn5TKkO9a5WB@V%8GsBx z1|S2F0muMk05Sj>fDAweAOnyA$N*#jG5{HX3_u1T1CRm80Av6%02zP`Kn5TKkO9a5 zWB@V%8GsBx1|S2F0muMk05Sj>fDAweAOnyA$N*#jG5{HX3_u1T1CRm80Av6%02zP` zKn5TKkO9a5WB@V%8GsBx1|S2F0muMk05Sj>fDAweAOnyA$N*#jG5{HX3_u1T1CRm8 z0Av6%02zP`Kn5TKkO9a5WB@V%8GsBx1|S2F0muMk05Sj>fDAweAOnyA$N*#jG5{HX z3_u1T1CRm80Av6%02zP`Kn5TKkO9a5WB@V%8GsBx1|S2F0muMk05Sj>fDAweAOnyA z$N*#jG5{HX3_u1T1CRm80Av6%02zP`Kn5TKkO9a5WB@V%8GsBx1|S2FfqxYS$oCsQ z9awlrBT;b_a+s<@A8D&sP&t;XWG7|2QAN?J>wVpZQ|f|G8=b#2J9|v{4CzL;jhPg* zI%l0L&CM;1wbT`FGMCMIWEoRZQZnt%WMjB~wMlCy>81L_j4EG|G;-YIEE9J*dcb4# z5d}{Noj3#SJrkss5~*pTG8L~}HQ;S6w=TACf7kAP-ih|10ou9KbE7R+p3hzA8&Ocz zkl3VP(EMc7ASKNp>ri`G@@iu=ewajIpnUd~5p+p4MK-3KWX;BWq2v0_`yOXwl5X}R zOzHV4RG)N*jS0SY3=QB#re9#0^~ldi<^4fq4u1wm#a1G-pW5j@$OU;bsvjG(?f^xT zwFSG4jp;KZAv1p1=^Qmtr11!qjPm*{vM~~kY|N%TL9DgX;2r01OYu0$33nV_?m3ng zLBTCejIj>mas_2*Wo%5q1F8rb!X3`WOlP!{m((I?rwE&I!;fgaY|PryYivx^@NbU` zOBFvvVDW$CW@=Kg%!PS0kZh>bZA#MHWD559hZ1DrZjlZ`oCiV%qlH`NjT-tUag??#Zic^LVSL_+zF zu`v%SP|=zL;NmcrfpbSi*qFo~a&t4|ND?`8>U-n!`$4>Y1vhM92CmdjHs)O)8?)K= z0UOik_X`_SiELtH8eH%rBdkY__^QS44AOT-^5-J#oMZ+V$6wi)L02~B_P%#)%y8K& zgn|oZV}|lcb93m23qM9$GP>(DH+_oxEycO@7nk#B_-rdm5#Mo-(=y7xLUkvw(F%mSrSL3$P!}y!?#)M-R;&W`(C@J zofPUCHY0Rmr_`tJFrrX>%45E{%f^G0ypvHM(03O|fw(jJokmuy!kYj+;+O|KzFX|G1r%|z3%P9 zUh6Ndui*@;v58L*(p4}Ns+FoI>yrfUjIkam%XP!fyYtqK zZQFJ{cS5>pMoQMUCGXm4jnQ>)FR3|gBlUBiW+jm?aPv6k#|;JhEBRWsDfk_=FDPkI z;0`X^Q&^aIYHRlH8OI?$V){Q@Sf+VlevoMS4M6R zWXHkDPRCkDe_T!C-T~E3aTVg|yQ=daX&;EeRT?oqUfNsD+pSt0igJh+CNg>n>2;e@ z9GX^ zGsrO9j(m+YN`$a66{T{hCt*bF2gj=g$(Uth9z8`q6G7&K4ssjE;BfuF@q)tz>H79g zhc_dfyS`aS;8YJ+#@_@gFpz+8*Kguf7)ZcC0tOOL1VPRCja-Kk8)hV6Mgk^qelsyb zi47$-l-Mx&40H7`R}V`Y|GCTrS4Oxp!j%!OjBsUyD#y{WJ_ z^*5mr+|S553^n85Ni+JlBd>ShJ}0p;0&}E@GH%wxvb|o5mDr7_ps!)#)KAlS?coX! z=1ZMk^~fJI?76_9)1K$B$HQUnu+O!fefiTZ?JrJQIw~g;o{sG6(BgaSl5QLPX3QW} zIXi3ZvrU&>zqmO|S?leY(M|QVcS=nzy*ugJ8&P=BJO1(!b)LW0kyz0#B zPF7MR1dT%bkltY2(yoY(DOAU-g234N2$;f4-It_eq>a-! z*T&yI7W@8kwV7}2Scc}jry%tiF3^p3LY!yKt;%DYZqX|Tf)~2#tUFWH%o)Ami1>ScN_z@@CJvL_jB9(~V zZU`n%RbrWUHJJx`s|j=owOwosc_T8T?%!#kxv***iU1G3I)oWSn#;pcb`Rm_Wb4pz zJR2kbr^Boy)9lINxH&yvbvDKyT&^!6xNi?qW}ztr_k3^fES-!Rfp;86QqzFNpuI9M zA9OZbJPQsqxt(r-g6sS3-~bne-ySCZWwZh7dLSD^Xa)WPz(!#w7#V$9=%IGjy36EZ zem3U4FuAFnD);RL{@r1+a+4y)*DEqn5*rf@4uKm#;)qn9swWRy#;`t;(F>^E8u`#onVCyk}pXnGdQ@|7+eOhX~3b!z@QMQ zeC{MV-vDw|j*W=}BS)g(zr9k}Zx{pgs$)NHby;G8%k1*(rWv|hMHu63$E6&H~q*hWi0uKpG ziOw(^WMc$>dWyezEx$;{d%(ZI|04*c)m@PBvmbDCzO74GYhjy!K<-WBHd1nP_e4NufsgF*dF~$9z*SRLtNpB3`ULr5>k?s*vx&FRtF~r?ZvK2%;pvy% z$&q${P07^pF~S9hYCC4%(;B^g!lbB5P>Y)rD}SN;7@8r1- zS^q)AJ-wGf0VLUn z6|Fv3{OeCJGXm49RZmsS5lXjG`Al?YMO%_`cB^_=s${j*EKYze%tJ%;6I%?_G4KV) z;QtB(yiC0B31HoJm&%FOAiQkM2puKo3Ziml;z;fBue-`^$su5)I19nw_qxYipNy9E z1D=}f^ZA_z~20%J-}y;3_RlO$xE{M4Zx-V zeALfYz+TSx&JlFN5+##aiX4j#e8?B~SYWG{!^T|AUIuQWB7ft*{n(jz5`wQB7HB$b zWb)!g?2*D$9`#PpeC;-?NU( zk~cUmWH2f~aATUGw#+F7zR1=Np^qib+{=!d$NS51-KaQHrN1eZq{DS|gI=RyhJ`DU zU%V;gvTiAFM~=EtcFRQtCI3dEb!YF9geR6d!Ou2X3Ut2b*=x4F@p(l7@8xV#5Gf$b zh&$x5C0B5=#M)e$<^;i(C;0)|CL#jmI+=D`+HEZqo>HWYNI@CerE9Z|QZ2%dx276$ zI~b*LO6tj_Bz5|21!kLf9~r1`!TgbEsmcPf9Eq&(eR#V4TK^?B<~0`g}B@? zNSfEjFxKHC@Y9+NOX6(IR`RV|~7%)h*S!WRp^uLrpOS!W=lChp8``cb6zOMe7o z!&^3HUMCiqMc}pl_x~s>hzfbyjgxto(D4ba^9(`edGC;;1yK_DGlhFe1ecS~ik{j6 zIF{LtNGdFN%P|6QRN(2?)WMYKk6^}M>_uN+Ca_HVBE~e))!;|~McdKpq}So)=wi~%H+ zFk@0Cfpi=N4x%Y>F@C^TaRrzpq83>9ka40pGLmmdB9YJ`OZ0U*GLnXU8-Iw65eqy9 zOk(zc2_{3E^H1U1E9?lENdIng=-+E@hM)T{e9g?Le$)e~wq_-kv7HH6CXUh34^Ff) z+5^#fghJv5oA3&_ct98dM|R4>}I3D#umk)@M=PZy(g3 z>7K0HFJif?TyrBO!Q6(pzAjID??bB(M8iy}mb9(8>Dn<8^4*e`fvc~dBvmN@e{6O=E&iaFvUmS(h?@Dp+y4dS~HU6|vTW6ZshpToppIpM>qX zN)}hP^$6Hs==V-BxAoRm-})}HK>ciX^&w9s6QS(oNu<#pkn_W?(c!dqe zTdQmwO6*n_cbu#-I$7OE%1T%}_iz$XJZEKD*|pEa>JN+8 zp*04#tQ;0&^PdZywLC>hR86c(I={9j-SyRt)hh&P+L@i!J?1C&>~@~KID{`&$ecMM zDNxT*`Q~H)-FV@7=0Fwx=VyF13=5`2!k{YdbkE7xwv?Q(JY0@m{D7*O?NK>$g?gMSNm&ACr!RY3tMxjj^ldeL)fU-plp6H9s+g#hp|I%3 zJ5wD&b*U1(`f(~ z8RO`-hq^T{x;|wn35?EK{`AY4$W?C4jw-w+VT%&J)8y1H%6eWE@-x?Nt@FB7PM-IQ zuDBa7c|@5D7=_0zgv*e7Xzn#wZl$1(X7A$KeeN&l&-`@HYrG3f z14AL*I!)d91v$ILhF{QcAZwg+YiyerF+w8y!h;+6>G6Aa+*r0MtDTZJY*t~K7F5}o z5k%6~h-566w?zr0L$z&4bo$P_1QRDJT0Q<2-}Uc6Pa6Pj{g5p4F^N@3dI|i}jf`GPC5{ zC@+msE_^PoJuq)YZiL$rX7Rq{96K-h!xQ zZ`XUa=J;%SftcTTe0$)u$nA>ieJ&+qCrJ{;m+qO#R@6@lwGb9h_s@orMH^`i>i$n@ zgg&{7UcRMB#~#6K%i8@l2F=kUo`WDGB73eNdoL@k#>OjOs#(%?A2=eACgBu5hjLRT z-D-7JD)(J-KJ=X6(x^o&bVktX4H&|pao;591<0CK9(58i%avL{WPj`D|R!5e7dX+`*NGp%yjV_xn1l`cmyl&npchJ3h|M=t)!V@MbmK9Xga~ zw8z=I@v(J^YpY#P*#_c4{*Ad7rpX50|5K`I@xP*)N}y``UsFv`DM6(Kl@hFF{EspK zl@e4+P$~T}15hdbx$f~_S4#e2?L&&=;CYT>8qMgd&KmUg9kPbggfFP~M5bdGq+bJl z)n&jOh((HZ&@xbR)%pc=qAXn>4*2@mSMQqJ=w{|&s>=iMtiBB1lBnGt+Yjm8^FN21 zY10Yi;qHvT${%_;VSf;ZaD=*t&Ax(nD^2hmp_QMt0q@ON+ z@>cuqet|trTBJh4RxiTBNw-1$&uq-*Aff2yl4E>r{qbBz`oS5S)l5vAKAc-Vi_yX- zF!iTNH9Z?=McYago{FVh3w1nrL1DYnjuFv&v9hYBqZKih$t&*H54YUl94+OgiyKk$ zH=j9VbBF%Y<>*2Ev5m(2R5McCl)S2C7ZV(LzbszL34CT5l+bl34L4a_GbG@zl}t?x zVHtqux8Q@yWM@TNOBBxLN7~&bG`Fi|k)f3@&4hg)Tvc8+lw4`bzyi{p>*|x)K`JVobT>;x8N4vx= zTZaPs?s!jtsvr+jhPrr5wN`<|<+#Q{n9>;@$EB&aT3JhMAXJ~X==p%@@N4k{MG8Bv z54BDV3CX_dx^~O({Y+SB@UYU1QB_?cc2jUFU)~+;zKXoi3hf5GO>nAMPWH%`c#|q2 z8B2mly}RlYtFGDPqov3D(%+W)Zr8iGXXl07ERCcYwUkD556%8$hw!6(3;Bs({67Q^ zHoJ}I9~`Y;+wFiF|0eus|%W^WL?fERldxrQuRI@`tv*9QschsD>klH zn2tG>TUzq`zLj}*S4Tbhs?(`2H%=ai=e&J4yGBIm@YvE+NZD;G*@%Tan!d_AFaP3_ z$2V%K>;)W=^9hIQynL%~S=XmpnJVje=vm^rz1&CSD!t_FHE&;z-{7fkvA^o`mzfg3 zvR19~y;;|@K$%L1`(~)8o|~!DBwc18982j9k)O!!$$Oc-{PQNyt$|-8$M2c;?e8I} zDz0~LxagA@LG`Rq4tz7evZ#@Gkz?VO;=zXzc7^$-t_NBNUtY(&7G2-JloL`Gp(g1{ z&P{)zUb$7;6S3+mihTDlq-{#>%J5*?%$WG|{lskw6M|+)>GaSYHDNdIoF}uMk!OeO z=B?;)uS9!d&0CcVopeXGQ17ORHZM3Cml}qo*&()1%lF7L-dcX#uunFVsxPd6w(-D9 z7Zas3M^-H7vLsbGeINybKD67(X57}%@zRYXy(<}paXq|JEe7$TMb!qn9-3qFPKK3+ z0gk*5ZONw6S4JD-9Szesa~~USI2n)EQqQID1$|8-KP81oV*ZL3#{lvPiyqIKVue|7 zq7iXqk+J!Tg&Hu`$Xo+mhp36noZ5N34IeaOct@Ic*>Ky6k4sgs5S4Ot|#)Rc{BNgrA&p1TEFMrv!Y3)}C3 zJkq`0YbBG)qM7F;lR_{*@F z8Ei~y4o$xXyQI`XX5ART(X%SBZ4uvjdJwbV&*ygk0Buq55fLmq$Z1;QLd zUG1``;6AehZLJLdx8wz*Ox)b3G_yL;AMqnQ2Jm=1t3ID~(-^ee7~<|JxuZJkgU~uF z5*uS0%{|o_B1!rM*92zCziNW~YbI6rH*l=~+YFE>42nH7IwBaiph5#I>$lId9<~3z z^Nd+hN&akyonI7SV^VAyCJ2usnBhtc^pz3I_VqupbGcIjG2nmbtIw_xeJ zDCA2rUoLYmI`++E^VH9^f$hRIB*~e_|+6V5%3J7 zmn9xs#!o6za9LXEh%9iIf`&NHal)jyfd6R#KjTu+j2^MnS52y;=5P4H^lRVB1 zTI8CS+@{!=Zwp5CF25;00ZG+K%Lj_e7&mTm6Z}y@^3vPgVDrO0mft-z3S29hS&l|< zmcRVwH51CY!w_mqe{<%ICRa%%y5>KtF>Yq|KrQQ7rK zla}0W3$Lu!AnAOKHTx18(^hb|`pC?kAXYhxzPenoeg0z4t&4=V9Z%1Cn}KQ&HOz8K zxkaXS@{>K6RX(>$fx98n?HN(OpBbguf0&n^{KJ*GdQ^fHE#w_V!&N@65tEg4n(kK1{_FOQt=Dq)J;<0Wj|0LOOwBMsy+Fr%+&_9 zXO_VMU56Y=lf^n;C0$NGkkVb&d-3pU?J~ZX{k5)$;9W27tzxZh-Gfz*~ zKYnreh;y#PCk*Q`*ZU{^9nP0po>sa^5NUWuDW#P*Jc>$UdTUS7Y= z1(w(er|Cq``_n8>?_(mxP~ zC<#r5U8Ps%2&H4 z_i?>3=-880ZdYpU<-Bz$@#FkqEM+RtgX`|-I*(+%kDL>$oi8a0zjb%c{A{1`{?hVg zH;xO`%-Zw%3HzSxLmW)bg$D06o++@ukedj>F(@wkIQWjo22?h47G^kZD~HKyoP_F4Kg1e(*79F zW$^^dqw!3*R7%Mt**bp2G*zKQ+URMrl9oqUQru`n+l98&;MBD((#=^KnZ_fn$x1C> zxAYuM5qhjt78&X=XQRHwRO7n(mXlyl)DOKlL6Gti$GmIV%h;OB&B7}9YqpOC{eIUD zb!mvP$a+m&dWQy2=c8Kbga!F3WF%gSF$CJ?eSzF^p@yP0e&AuIC-$3-%laSw)6SM} zH|^w2BS3B7Sw2~yd)TC5)^lVH*gqL{2RE)F$HuhoF$WuS{G@1aelR(?j5!H52Yp8< z(aYGFo58p*VQ78tf>DVP8}l^NgZZev;|qBb?ANIQJ*_oU)c0%?qKMUP1VTJBD2nbX#Qo;>yOLDd&ln-w{ewxdo64jBK4ALaQZlbLv(8on~*oU?*G2 zV+^1zTyefsdsOp~3o8`2=(G_m$=8SjNB+k5&nkZq0_@1rM_(_J>AJGMa`-Eby)$cD zz#@wU2ba>+UOvxiol^lDgmpH_h4DQ|N>oogv2(2iMSSkTdCzHU#qy z2}{s)rWdQq&c)>iW}42N$ZokZpnQ4>bPm2fwP*JUoTJ-EYuUOhbwcZX4)eC&s_x&* zYvQ{>j^}3P%Z$J*!vGzLYwkwTmZzI9sXcvgl*cM3>|C*yc-f$@4F%~qQu6?Jlc_Cq z*+`GN-qP}ptAeiDuFT_0CYCx!eqHx&nV7#PC>4>hUdP@=SxmP*ioH82`?TXx%azYJ zQzEU+bE%dY8%&(THruKs8?MHt&zTKB&=2X-`eh(cWwfJoHK+s~IaxXL3{-;px90bF zJT;5zepxSA=q&8%Ita$HXbKx|w?ISaf~0xDvelaavLk1;c#L9 zGVfnRNh5{eP!uA-p^OQrd!9pcIPvSh&^3923?265kThFX>-Zh`Y zZE};2V%`2dB9HoO_4%c}d^L7OTeK1MXYHOtvI;?TR9 z2k!3m;cMqb0yFl^PkS7CUJ#JflqVSah930;JBCIMnk^`Y?dsPr$t(S(e{*NU7V4J; zS)RS7^G1OyHvY7uz1-ydA9gtol}XdZTwmfk+xt|f_Vv*xX9Cw@dE@QUSaDZ|r21wB zH(gVXaWfy0Z9R06jq&JfNFi_fT$&&(R_A)CoA<(7{+m&C)CGo##Om^wt8!yU6Lza@ zknKKHb&6CxOp299Lj5J1U)K1vbylwXMZN3nwqKK9oVL96)~95;YhT0R>`@X^+d%ru16=jc3xjS?+#b0dCbvTVKRwOFXyerk}AHMI=3Qf4z>OSg(iSjvRYdkuT zrI=z=t&tL?-;rfFuPvSW7s`3gWM0zIGQqqPYU1HmhkXoPGc-yMHDzf#c^MN8G+ZMA zhzhOP%*HI8P1?LqO^6oZ=4s6t8g6OYDZ)(w#}6HK^AqE19xe}&%nV=t7y6R8W7wFB z$kMKS^1{9gSh|`cGlJC4{cSy}f3{(9ig8na_5o{Cp9?d}1UK#g%rTmkj20XIGPH#FP1?VoND4h^(BOmk5}<*OuE%`P;a6e zQGflxBp1h0_xCl@ydN9Gxe=)qU?q^piC#oD#=v}R=?E#O7U=?&s5>MywxJIvgna2g z&&DjQiw0${{Pl4*0dnZnZNiM9+76%`rYK|<4&T0T^Y@BsmK#`2U5`fEyX?`sLAaOx zfw&p@{wW5gkBwm+f3KJSd!0nVkAoDTSVmt1E9@jP92&yPCEb04>&`&h!SA1Z_Ftkj zFz;OMW$+=BZ9Bk{yr^Gy<8OTXtY=xGM=S`en^VYKoCVFgY`B&Dg%_khKB|FZ&`Ko* zj4?8XJ=vIDJwQJ_9|s9dgV|%WsSzzu659YaK0Q|*0`<6o8Z!DGH)DJWH_nxb4BsD{ zJ5N4D{#HymQF@s%CxMlNDK{IVM~N8Pox|$H&oAKVC%`2jz2pA*NBUg8zDK5BRe$<^fTChOT5s2YwguYUB7p<3Lsow+>F?daMGfczC1~wY<-z8 z^w}}aSKa*XO!~{%n>+aLFV|*HQIG(CwdtS-;(2{pM`T61EDdswJRNz>sU=#H?Lf&l z6-w{kDq8KSk+KnIGE8dx%NwQQ6)tzFPWHVABkR$FQ+hk2iw&DI8;$tU9!4yvk^M+l zV)JFNXUho-_H4E751FiGo!?L4na__+1Cm$wd=#Ulm&+Rk!7hBKl{|n_iHIj=`pYy8zu3fP% z(dVo*kJLma?lGRGg{e#CWx6ii*`8@FXzIgQuP!B<5TP$hc_!Is(X}M({$ODL;821f z@2Do1>FKf0qwY3t>(qh21pnQ6@gHb>Yr04p_t>glP4ITQwyat#FHx$$cHBbzOx7rI z{puaR93kCGfB#1{10^7uEwk>l=XqiCELCvSKZQ&|s zu(>-6bGxp|zAwtTo=8&2UA=0}4twnTc#}DA>ahS;s!8OY9j}dw=|fyCvFEx>^S!ST zH5K&lol>|SqtrpV&{WKt3Q~2Oo(=X(P<&Vt#jhflKGf2-OnmM|bz19N3zy@>uy8GL zLXJi1XtasWA6N4nyZvRX1AG-6@B8Ws7WmAi^qGeHxTjh~w@s(%C582g0T7+iai@|k zVs}N$oXpV66U;Uunuhfo#vDJKy7t%0wrV-;{7x$oRtEjZ#>}X@0GGcH zxH;d}B`p3K_S<4q%@AR#cX1VA=m1@$ymv`F9r@S{{05)65~m1X8{V|Y)pCsOb6D2i zTKw}o+WhycQSGn6H|Y)_^P~A_su}KmZ;AvnQBUdX?j0?|z2IM(n|IQywa&gXr z5bApxX_SF(0BcU<0fq|Fp-0t6ld{`qZsP4D*_Z+lVr|E>WC`W|;CpMU--ApSKhRUH z&Rfx3Li7yPpPliLSszSGc0bt6of13w+wk`VK^Mn!=BjT?kt(1(d5A(YHw2%sv!g_QD?jx zP{P{?gcXN;dD@A5+-45WWMBL6dw+NTZ`4#-dlh*}`Z2J%%fzAyRoMDd_KaNe*f@Fa zJ~$`*ec|9A>~r~z4T)L2*AM$J49}UF@&M-v6O(DB61@#CI-d#VY4h$*n0T*eaLH3Q zm!4#|TK97OzQ_sDIK~5N(Cr^_ZCL6BYHKaiuaA4bu2Y4@4GYbJm&xaE8Z_V75UJ&T zwzl=Uahdn@Z&rDGaB(pc4{(i;vBJCr!vmZiJU{TS03Z3D*{!Zu(Q41ZI7+> zuYOW;94PSau8505$4dO&?tO{F2@I23u|L|rs0K=8KhTi)WI#>EwG9UjB-4(!JBt2p zyYGRh5h1}TEM zR^G)`Q=q=PSMp84otqJ2s#a-z)U6=~PUd~HLMrAZ@|p7sTSE*jRfH3@s;msk^9pBF zhYr-)y>C#Kmua~pm|5KZx@EAO!WXLD;wUFFs`~>?Zz&!4kE44-!_{Wm7C6FmoK%f! zqCV!Hcx~CLw{_zY%uW0nlRva4Bq!1`hGWV>H1CAJHCs{>G*(=V58qzYC>yFrk8)d}i_T1GM5RBBt zozK&0l}wNQ<5FI05!1AEEzPlYFD*{Nb$&#vJWFtHNIOp|tIse&{olO0js0^p@^-6B znm#s7a8x);)XNg6PL=-knl|r_fi+cg(U$tjAiRGe|L<*OYG$l#U|$mg%qc%sJwk?; zGG^4sR=96VQ4tNeUh*UtuHJr5GXPXtjKP%t1Q>gs=+p1TeeHFNLc;J1D#JLsO(faI zi8}V3Y7~nE+KsXUIeHas4ILc+eJS(}AFAmtTS2;}QMpqd%DA;vVw+ zu0(2GWD0>LN7R1d>etR53W23=OBz^J)&N!+S0buRrd#4}F~PS+g+Bymy$7hN^sap@ zAhEyWp#3)DJDq%#eq2vBc76eQKzCUS6qw>&@HshafR;Q9iVE(+w7+IDhJW+NyQty# z{L_rjGUk>aDk=GrsP3qCe&rNH(pnyDc!)A2rQ<$7KxX`VUre#0$GBMsM@{BIqNZyM z`KX}JQV>~k55j$U{stLO1=GyD!%rydX;KJ{gC+9s^Bw&EHyb-(%j`d9%k1|afYQnJ z9ZB_0RR>*V0Jh+|5$GC1Xa{{O*d){(K_2G-#hQ5$1?Aq~E2Z1W?;e#>rU|l*S3xHo zz88IXoiP-On>q9r83*>-#pb_&g}ECi{kOh%4$ObE!-1Fb)*zzmCivlbCw1!OtI5-L&x0F|qC5 zfgqgd=lEo&lynW*&N1VxYZ=}0Aey|O-_aT&I-dI0E8jkE$x^3jaRv-t(TVRCB}@8& zwEMvhK+UA0=l8qLFHa|3ucEkm#J0M&rk_kZH|6YjIn=4>60wy>@~Bg+Ti87Z(e|!} zFx4OF7XYdLqSUib3XiopHA(%d*nju$;ag{ zVl*|?QFAKCYc=KRq4l#uL!1HCU($0Wk&6RL_d;GbrDKCTy^d-gCVp`QG#;4RAF-ht1&H~OxDDgS`u3^SE5<+8 z+$3EWZD(q1yIQw~2&VU$V{^^W{{s47{DY>FVcP$nvh)G{FTj5LzZ7@EfB#n>qwj3i zg8mo(v;G&~rb$pW+~*10tsaq9RZfNw)1`TQQery)rmsHLzK?i&vgx3gJj=3%?sCId ztB+eDdeidWBS0KhHReXz2%F2EHQl@)SZ|$~pCwG-r*%H-Pl!y*)ZmsQ7v9Wys|hf* zo5|TOchWLO=)4nm(p+{qTI?z8%Q8Eub~-3TRVD4zC#N{EPEFSxCC@bq^NL?6n&!Bk zzpqa^vroxHY>n{^*XV>KqMlpY2K%NxC$;r0#k(Ig-y+TX>Po*qB&n4qRvebpC*$d$ zm0OgXXGy4XVG7>sN7h|HUfS0XR*bfrwk3*F+sBtg(aroD?$)Lu3wF8o-hZs@*M zPHoLo{cT*C-gn34br_{jWTZ|ZrK4<&qFkp6y5=F{YZ_g;OyvTS8!=woUnVTb7a1^_O=wcAbNh#BkE zkj7SCiuFcTDtNjqHrRCIXxVZa8#8TGO}DE&Yp#G@%`~2t3m!io9%#~E)Hwg?&GzF% zmkW72kn$!Puy#`Ce?_2~c>zzFSl;=N)I*~EhMV=zr}7b!^=iWUMaTO^+eV(mEp6}S zE&u&rZ28Wwmim~DY|N{BO92G?#RJ7jFXqDCf2MLhCVx-}m$Aw|mDo*^4?o&$m}?o_ zDtw%)D!RE`{O8DnUZGPacLkzX8G1-Z=^IZLKmLD~$N$%zG*!)}D{8FQosyt(29adP zZS723Wy|pnw(stq4X*V&-+aXR{N2V~cSasP=)U1?Q{Tz5Anm6CKTy%)YVyLWDDc48 zV|e0p!|nLv*-QTTh(zpx$05}=u90chk*OiXwex9>g8>(DIbj35YEEsbriPC77G1O1 z0)88`V|JwK8Qe;}P+V0|RjeS>xiH*XjE#+%=v|QzNPPB4!q&XASnh1CYoFHQ$w^K| zb%{o4&SwHMz=O=-`~({Cbp1RdYH_QTTIJ*DvCBGATKnS%UWB%%N9rDK*2*$iNL+WY zM88k`q5hax)s>0ly6llGW%*90^h<{Y=IlUef8YojL4f^@u)h)Z5B_uY5B{THPuSlG zlMersNr(Sul=EM`-rp(4!T!eot^P){8PF`sc?PL{=wFXta0lDWMl)$Q@h$US_iAt* z`JW{w4)jfklq0#^<+$a(XQtb(XGUzgP=t-hT_?A3r09IXZs)ni^o~!~DR*D{?3N?R zs?IHAhCWEHZ&#>#U}GQtin8~4w2krygD|4MaZA5UvG~I2O=Wy99tWpdXw@3Ubea}7 zX2}tan2024{u~<i4fjC}@dDBq;SV-#&@Rq#qne~p zHpYlbnBxy*q=T&`5~ZxdW2kQ{qYt%T(rv_#)_(V|lF{w^KoRl-@T3-Ifi|Y;j$te_ zLX%DaM(U4B6uZrUwF&n`9d>q*)XP1Kt8)$k7O?uXD>Y1>V`$j51s67^!u}C5a~L~4 z0ygsov9>Ob1OJo2hMz!>mJhClY0p~OS2jv!1|!a3EC~w!G~~fjG8?lBbhFnTR8mc8*_3hpp~`V?5-~_jdR*^!EM^NmmB3^?wfWgcUjSpWlg)|vW~V*J@> z{h&&`he~2y2UXL?5A9jMB5xK!Ls<69)4)G2`UFtp%kx=2puC%MoS93yNRt3hT|VuC zzFq(=$VS!@)*aLO=+UBH*3Aj<;OQsi%hW|wms=3@eQf}j)=a={u52CnhK4>l#`-G2 z9!bbg0QkWy=^-i57!MlbeVaalKmTKP-TV_>7if(4cQsY}!Tp`^82*9H{eExb0FCkf zcZ~7=9K~4??=ao_uz_mpsQ5}emUdHjns`H%t8W5d3m_J~pCD!8v(ura~tD*w8+xPb1!2T3#^ z`q)w0b*hQdyrNwJjxwZr2bBjE1rMfC$A9wEu(y7|L;CA@v@LRFz$&Dy+~Z&sgnpg(vb1vCAoDD}?6tII}J-63cMw*T>|-49-O!?tVAMwrCHbn`B=wBZ#d?E0w47CCNuz3lt(A1$5ygXJ z!WpUEHS5Sc^%k_4?WA&)=L;X2Rt#lsbD%_QrtO-o5*BKcmyr|jQaq__7OEP;`{hMDQ--ptacaEV#aFK1h3m9~V5h^q zPjRPZOc^U@GRr9n3kObgCK{*d<*jX%GKsp8rgQhHuFOoWwt;7~i{vK{flIbQYi`Ew ztKXZZ$8*DQfN(I|xm{0cI58rxZLyiPTat7Scb3$7tpfiNKb}3UzYsf}ySL*M7=63M ztc(lO@0@um68APc@412%qFJ4&d6(d;*uP!Is?nw}#$ZZz{Bg;?q%P@*r(;b-LtcmS ztV2>qQ$!3mTWa%!M4u~(bBK=&y_G5;qb*ylH5qr+fv#{SDMY&RdwT5a@1Q1wX5}#E z|0mKHf9u@<{|cW6H5t@H|G;|aA3@XpLuxYKAPSbp%d_0)N*p;vpmqQY&FiVycASH+2=80^E_APtee7+pz&Usk5QI&o>s9& zg0ykJbc}>Vip}am#U$MaZCRS!+Nr+k7FQ$d}4q_%Xv%R{PIwjO-j~chg$D`_9ga zW}V8$tQ2U8(-g#&7jNAuu$q1^WT@zFsX%|;hw(Pm#V{Rl+|c6&Y~DG7CbwV?eQ#x- z63@Q!lW~Sd^=^lp)eR)hKP*2_>k?KprrQu6EIB*%BLRi#rwl6HoY(P~$`Xa11*#mp z>7)@Wv8SBkTIAhstvRa8yQB!VKJieAEFKa_h<|PdJGv;KCoJeTtr@-D9snv84jBkl zVGf~6`GdDMD&9jVns?clSQRC_2!4XrqVX6{`=_y)2o zjUD$U-_O)DI8?9KNYrPT25#VW)auZXCn}0hY|9x{mX_SJqv(dr!&6CxFAKuOZ&223 zz91f=&LxzsvrYc8#^^DTw!6BM z>J^eXVz;&MNS>7Rl~4Fu!_1uuBa(;IL0)R=?M{LIr&6b$7V0%DJzk@YQxGM*VFK5| z8&b&Yy`Y-;IfamGo##MZJ7&^E{{Pr}53r`%HC;GX#D)q;H!4j;K&1*uY=D3msX-7T zf+8Rw0um`%Hb5z&NKuLr0Yed^RH>0JAR;vaN+6&}PbeXzEY9nHt~viVU)g)l>@#!C z%z^7dlf_EbT5q|Zc0bSKLbx4pJ&G0`Q5>K)c`*l#o^rI*j_cNXHInRz>%8REhi7K)0ZcK_c{=D(!P-hF;Hc zD#!BLJcu!SYAOz_@j_9IT+}?YsaLlsKGJUv9`}BdkDjACw*W54l zdA3YSNOOOn27Y)g8jIW`PuvgM1)45yav*0TS(-YqnJRr1Tu*v{WS4Ngu}z@92#DS* z9Ak*^9;w_#v5)3Z=0PNU?FiH)hetqPx)^|pfI&S_Y-xgqi7ikSh`o0vAL@w$F?j>Q z?l3qp6F-EZ=l|j>aJRH`flCekh(ylyY2{AAN?cV&LJf6mqnGGW|19oKim$!NsZOu( zTb1yL0gJFUL2^b=CVmI9uozjEcLr7J2CIVs1Jfut>SW9d<%;Ij$rZ4}8d?QgSLQu^ zHTQ0^QgGBduc_qgBR9=!{jz0FSE4iQH~!c=&x+q4j}E_9IJkG)onZON(FU}pn6aKw z@#n#&B%3h>4_Pylj-E!?74>Ki$k?ZhYn(b{9$!Q2o#F*^dx5)T$y}~}+N%dPqinu9 z6@D9|9Z4%)w)RGE#VOYIzKFc|y3oCTpTSB%Zcyi51gQDq$9NNuTs5m#_XFQ-aM0&_ zaE{mH){z@GhCa@eM{7!k%=kMg5+>RU2S=M;qHo6*x(Pc{zY!gBwRml}9qhI~tuvIm zXX3KQWJLSwW3Ds63zGBTUmA_GDv{(FlX7=JvUf$z`Kpf={*DvS{Q)%`7z5(>eac{V zn&hlN`DQz~!V=884Bi$~6eI{5a=tG9)sPe7DUbwzPYJ-5;5bVNxv(f`f^XFlA}8`4 z8@mQ@Cr0QAywD3E^B(g+FA^kHa*3$+<<8>EoyGsHhbv?THX9vA%&TF(M^A=v%GG@%j#_K2>XC5fomlvI zjjczmi?6jtOXViF9~x&>l((Cz8=tMY4qD)zpx4ys?P6Gj@8@bhtX6xGHlIvUBk`N? z#a{fJ?1&M&_dP#LQ^6o!WCQ=+C$CPVni{95TNkQ?5B2Lbmg{|RcezoXVSd`7Mx}Yw zSW)>2^?0uHXSYUo_3ldWw3DFbI011jl{4t=M zVC~}r@96zeT1{%!ih_G6q!&8Hx;}Do9y^b;k8M;|+Re>lBt+{vG5D;5z3QLs?$XuI zIu!iaO;bt6I&-q*`I~&x_yE76!AI^+US6KWxO>}7uUSn}H|z1Sq8p4hX9bKLp$|Q5 zguM9!%jP5r6MY&7p6>Q4V>b5dIL3VDWj&%H$5CN=TdoS+y>U@%_{(~ARYRlW$l8)9 zZNJ%9!A2_m^};1~Rf8|*LRYO2w-k~Vu~r{fpb!>28g|GsyzV{eY1OFjBqn4(u+fd? zJJi-he|VaHEjtV2HE%0+N_S8Iec?vzqVsecJyLpP@~w!Ux7`Sc=UQn-ax zEQL3{L3oU%M+04VZdEsmel~CkQNL#iaW@bPxWGH!0!y!%3Ln7c3R$DZWtI>>w;@@e zTl@?eJL(RZVP_e@eozFJ=25ash`}8ca01^eXdrK42@z?wgjmNUFCmT`b^^}C1Tyym z*>+DF&zZnm2@D=S6pR_?DWNk-i@(wzg#rH+2{h_|0UKaPTmS^;0ezHlJ1d* z;8^PtB90B(DO-#w!gv&S4K!moOy)}Wg5E2L`DpHThb06f9QC`0!;I?-L9ak=;PaEv zzzAS9^Pr5ZdGHh{B)pQmC_RIPw@yOv&431Yg9^l|L;mi;6z5-rqq>d2eaWEcK1+!2 zcyfCu8`ye;=q1DoEcel(${&U=`gczz%x=?1{%%s-g7u-+h9$&J5`2=I@P~Oc{QYzB zF29JLkAdd+1-O!+uN#&$SE%=bJTe3_LNOo%5^u7E`2Fyu{p%;g7nm8c8&T}lVen>% zOQNuC34eQCm?H(on-2P#o?FqGqA@4%u?Cx~_BW^WgVFQEZy)`)G_St%ShB7B^opOx z@2thxmR9W1K;jp-GlfNIPA-{tZ+1PeC<-0h&X;+aXtd=Hb+3DEkR#_XPP+C$i(b?Q zoSnsa+e5zJRbG}2-O`JldXpaf_5$++^2v04N5}DdmrXM%Y1*0{&kkB$C?76ylqu^m zTGV^mx(2|W!lHT;^<{4GWB}nHSDyF0QjRNCc9-R3A3t(@+jJTIH*qP=#Dy`;NdueX^L==bJ1 zjB4uavd5mEy~s~sGCCK4l-7NZ~~!Dto1M<)x@D*3iP8QkM|O<6hakY$zkj+K$FHDb1{@ecyS zUZhD@hZw}l-;ad~u69SHIam(rDtUErH5f_vxq5YHsxi4(t-;s08o?OaSktu{a}OWO zCU+}Oo4uc-zKiqojLWWBUCxe)3cz*<3(u-dv~Z4o3G$|=HDs>a7vw+q#bc16k+efP zlp(WLOPzO6cVt5IQ)Kb>A*Gl7Q$;~lO0f$lQ_P}zo$i5@tCygsbjp^2ky|Z!ua4Ky zGL2@BVT^sfh4#v%*=@L=rj3hK#|6e^T85k)RaBX?2%F`S?#~2m4t#vUDWW-Fd~eZ? z>~^!R>J0JEWxj8P_SXBlw0O4TcnYXt$0{n5FB#>sAn?Vbuo8ZnCZ~YAUd%8TN0?~bm z6D6;>mb{osVX)RjJ1%wl3G^g2*k%wS+Pmd$c<709?W2#i6)L$oiWfXSp2q5^!LKQD z-fQ08dakpOFGf^p3e@Y%H2z-hGZ4+sH33XAScZ&fFQ~8x1kdvf;4lEDXX>k z*Oc<^vK`)LV2{VCcmzB894;?AD`WMrz%yp=yP=Q!A2pn3h#Ki(JvJDit;FiGIv(3w zx`-CV=gK`Q63?%pWSmvx9Fn78MEumsG`DxL9Yz*GVo22nAWL3~gZgyM%qLwFdV9}( ztKsMb1-)(4m1i7dcZ*HS&<%=TI5?OLMBg_d_N5nVGWDb$+jP&7xAvShSRf64!vlv= zeo<$kl*sA!X;iyY&5k{EN>sVd3mmzs7mlKl*5eXR<#(6s(6F1wt_OSydHs_e$?xNs z?J8bGP_KKCO6<4$@Yv427rjsL#2BMYVJ*4E30@BzWUFtma=^b6tVgeK%~iIB_qc%^ zXQwl~Mbd&^ZF=u)&!y5VSCMkL+)mtZ{ zR-Ih*VyXkNnt|^lytyfkeJ>E1n38Zay*!4wFo=rGRpPqS>!)ZpHd1`-a4xpn2%8+R zEk&k=mh_9$p@mULUMT%YRdd@`si^cxaoFdX-ILFmqa8_CujZ#HyIdbgGRraWoQ*Iy z)s#ynHC1q}*FHO+7GB*Mt@|RDgg@IO6Ps8TaxzE%<+Db$Tz@ujKJlqSO=rr1v)9>V zPyl}DHqSc)=Hd@*Id~n)liKG+!*GQ*43!fKRO(2ZaMIP4>Sc77kaDR^SE_)Adb7aB z7J-oSrMLUx-sW1{>HF$BXQ#SH6KP`V5t(tFH}r)jkgE(G8t(`eCH?V@Z~MNq&mv$rjbaZv=T3iB6r8Zjlvco#M%AJCw3jewt`xqJ-9_c>= zc06`|cCl_MHPgOPa?6Rdb>TLRx~;qh^^cmdu-_XNq?B&J|SNDz~*Rb6BOxx9^ zj9Ye`%vJw}S8}R7aC~1IC5MG{AZeM;Kj zpTBHrnPH|bX4l)DSQ-%%;Y~a(a?Q2LWU}$KWlYt8>vzU8`K{*4Zc6spm}L9cX}-xs zrEPg=2g{Us7;KDzZfegG!iwd=5ePcY>UsUe#L0(qBFMhHjNWG=hMp8aaQ6dj9NgMo zD6A~p)I4NIxOY8sztiO_gU>V_4{hM7QdZD&2E%Uatq)SC%U7#}mP(OBxvS`X)rsIO0?0JX?^;7s$X<9g|eU|+n*XJTQ@nJZ-35IabbP|w{dUPdHNU2 z4qsP;gYK@D_<1AcqS&vAl|?R}XzsfD0fnz91xc=lJFkc1-4u2LH|(q0zsk2({6lWo zOUlzA;IWReAHs500sSs5m1GBsqduAfnv~O(G5}C}o?_rNUhH`b(9!bIqU-OH!^%(p zt^@@B`_MEuaR-2mHw`n1K_a01IH4NL6pH{%RtGKiLEz4w0W#<0awFj7M!1u?q|r&_uue!bC44SSaAjTMPMcGAa{IT{<6P21sr4F!LO*$xBnW_ZcXz z&w5pezNal8Hq6ir;kvjGdq>S#IRhQ@--rw@gAyU1`5V z;kN=zqR+Q6C~tlQlWHMg){z+#WAshu<+GN<%9Tdn)Y=w$^t|r0?ib46xbfvrt7{Qa zCo`=w%mw0ov#Sp6`J~)x1giQ(4k;KI<%REgg+BFHk>3B#$Cs;d|2+cL^56g8PMG!n&MZUvw~0BsG``64%bo=uD^C)xusvR!AoOWZIB#i|4XLQrV45pz+L00L za&=Wkc@8!-@+0^;`y~F-1rt@ln2)E8WMYiuWoFz*3B6RB8et2p&U#XHwf$%1)>sxw zKk~qVy+3CfcjS7DBBgoxb{@wpQw%N^Ym8YlUzV$!IU%b*1!f@D4+yl+-v`mBez}hEnl7_Xy-#1|H z)P836;O*onx=!)u-Hyd(+ShBb-;F&iE(YnkYC)buZd~_D&`yC7lFT9c@pCRV( z_`wche*Mse$KPY$vPylj#IqDk_&3TP!hU%fhvUTrfNt}eOPP&|8&6k;WjR9Qc?cgS74P{IsjIoi)4 zZf-7rHXA<^921UBHp>t{V`ew4;P)8NI@^5buK+nQr2dzgrGHYwX+PI+umV{Zpx=G} zwXN*;sP@6QH?p_S2*mk#C~F?|;g@|8x4-Ec@tSH5-XqA6zBYqCTYGR+GvxI?mrXwD zZbvmTc#p0Zbdi0$j7Uw7LQTC~STKDm2VOKx>TZtRb3Rg_41`FXcI<8+75kMpcBE>edk8HT=J zojk9YuCd;1hAj_o%N;JQTbP;P*~20%G(-L@%XFxPufA9DL+i`0*>2W~yB;WE_1|4I zMH>^cg-VN8S5LiGB1spO>(AzpQZ5Rps7#;P;=Rpn`&&e|AgXx@af-V6@}*>zn+%CnVJ51BrC);b4`r?EwMmZH zPnvjBsHm0{n>W#3vB#{p(?`-IIgx0pGAfWJB4ORkx+7MlRoXJ3+GO>%$5~cs&n1?& zUVFL1%l1g`lHk2DIc0wPwfsc;eY~cdK>OzwK~DN_m4ntU^006g$PLy5{9mICQposJ zlpTE3mcY9+4b3ImvK+{zm0{3~(h!-m`2#eMR6{+0V+k|+2c|izK0$NvIgo^!MPVxbNqV z{jM~^%0GF(5haLosllt!nT3NYqL;;0!pjwDhc%`R7y_YO!;Btx+s!5EZd)oUm_gzU3hutA}EK7Zsd6dhE)w(KW6&lO9)?@70?KacvTGMiY?`PoA~>>Qt~T;L zHWD?^Io(%mQtLFSC@nc*j!j}rCi(Wl-f-y+1@ds5_A zX~~8y@bqzj_FZJrf;VQ8YbL)pj|TeK!Tsc?-*|7M3QMxs9Cc`hEAU;D2@<;RSdm?j zE5-u+?~&b54|b@t7Sz)p*&7X@*0`=3l)v@b{^UW|-u|4m`82eoyYQ-K^R>zL!JcrGcwi-aJ>@X zHXF8JAI-A|Ibg#y3WH>zw-HA`)u36-aBvX*2FzPRTy=$gP%m`BHi~g0@}dr4*)HpU zc?7DEsNp0on7Fspqf3a6jd7d}*k~->uys)mBoL7&{69l;HM00>%484{T(2K6-yCwF zF)JVLH})~8ad;@2vl)QUyh%J5I;=7N;J>2T{SAs9q(i2A^Kl;$divld|8Qtt_yIXq z943(mXabAUsQhAH?6eSAcZyQb9(Cpo6;23>(FMv5^l;^eqPfXesBqOa0?&FddfX6R z2OdPuF%@JX9A!+y3B8oD!}xR1uSff+hT`neI}AR@vE><(M8x3vdrJsXKDV_4hk=dC zqv5(IXr3zQYp?iZ;rGQ={tQ9>ryLV_@XI2_&Rjwj81f$XQF+R5NVM1FLNsfS2={69 zg@1TTVD%i^j1E3 z<tATZ#l?3RKzJGE@P->JgP%UarNK1%gi6|BZ1-pPW zJhJ{0VvEV!h{67J(nm73je~@^ zm(j3r>k{JWuZ+6oFI*nO|FaR6m(B7{Sq6t?fL)d;|64Iw#=~ViT*kv?JY2@ZWjtKA zq?V1xWqWzq=kQy{(XxKHtRF7xhs*lmvVOR%A1>>M%lhGel72|*4^m*I5zl@b6A!EL zLfY8a*r9I(2j3W&-fG*^)6-i!`}Lds*H)s82D6)<)}lMBt-tZ)%*nCvlLPL&jd};6 z#$CT^Z8=jLQ0z#zIQYgqQ&OeYhbE3|Y~|mmSp6x|Jj4Y<=&eul=ubX$!yctW%_wAT zRv%m+B#%)cqNQ}*8Z2r}O9qFIcKFH~Yn&@|oAn8_8*lb>DDIdWhxs=Vt8Q@IaRxuE zpBSaHRA_5c-FC+f89YM^G-n+Ay8B^%wNjyCs7?Bs?Sto&1r7>Hv-?TIWOyBj`^l%g zfO-ytXzIgW%zUct59+iDTycE%5gQXSsw|P+UO0Qo0`K+3(TdtA`|~y^%d?*+`df0y z|CHCujM8Ps=>OY{(Z4tU|CJb}7}X(D91c^}ugK65T2)giK~Zn*-mbkV3e)&tjL#3O`S#OaFMF zbJ-f67aE%SNV&cyG@vgx$QAn>%D-ZQtZ}}IP#rIQl{@v`wwixl$I-0yybgwwmeSmF zvHkA0$cx&RB^P3h`Dgc}zlvGdme<~U1&R^1YQ-j+HuhS0loiWo^!b;SRrD8Ae5jXS zgtP8+|66FA|8g!$1+Q>9YjFCWo?<)gsN~kM4tu-$v<<>VFCUFvXY7QB&-BZ9JF}_dLjV)`GL$X2>)3Qk)3Sk*^85oEeY0 z-y3mr1>scN_bZ5l)h&*z*(q-_8%GeEZ(5Oi+y-;Wmysbe%GdgL2Kq!#eH%?+=CVAV zjC49%u?RPbDLDNGE!`8AJn|}+xU`S4x#88{g&8>8qQFvIsZjRo;_!U5)i^6SGAkYz zRxO%s?(O@IC{I+>ARVi8IxcW8gkt<8pirS=M@)d~!WfWbj4ewD>tnxR5B@i5vII+# z2ZoS+F3bwvGsp|th!Y&ZOe!%*gUCC|kP9-ba`!uWaSip}GdcR}5WR{_TnEiBg-KF= zn(nr}h?M!Q*R?dbu&&SGQoMxXZH}Qb8R?|TqNQdTvmJo$1@D73$H1mV}8Oa<5 zMbP%)KOpI6u#t&S1L{FhhE z%2cP`S6|_MRV7|wmz}d6u2=rXuNHUr&H+MF5_0YUzJtp0)sJWvg?gEC6{lv|&KubH@7EX{{;+l#`f)iU0K}rtKoKo{xK2 z2VQRoh;gkPb5Lt>ltEcSC<7LD7!j&E32LPQ#+VzHdst5!5RY0Q7f|_n1A!~(1c$2h z0#@qgush^M3Pybh#nMQC`R(Y_)p~M_=?9g&@NIfRbeB86N*1;Kdl?!f44*0ualJdw zFBkc^iNDUxaxkS=T`10fn^&AjyCF)ycUA13MeWRvokqpsMzYuYHL{HqHTrsF;z=15 zo4PN?7sb5j3y{e?w$R?_K1^Q4`u-Pph@{U=vlNg#Bx=&+*C`EHZpmvAW<~)oUe}6I z7bL)0#S$2@qSh34W2&DCb>ijR>9|&!N?paZCB&IK=yp&kw%S389vw!li7zee$RLGs z_nq(N8sU|nzw6A%>r`$Cn)+>Q{fJ+TN&C zz?of)y>)v^2^OnbcS-k=(bEd@sog% zxK(G1jlv&>&Yte7+Kr&k+4eDZ!@UkHK91AeM64anS+e@aVCa)&*!;!2<_0f zgG#pJ7NMe3esLkM&eaxc2UR(@g$!ErZX6b~BKPK&rTW^i>_ z01@uPlI?mTxExHUXQVCWPB}Wm9lxS$T33*^p+x3(!-?)bJ2IU~zOmcJo)o6i@~}Io z#BtWmCKHrA4*z1?wJ)obmG~$_qu1!ztBcy#%JNK2;>Y6(6{T~nsy;=KjFT0Qp|%l? zmA&&S-?$yLHqx?f;xCNwck_ z?jSXItry6>xeBojc5V?<*rMJEV&GuGok;+l%MzTFRbG}0ngc++!d8p?Yg9xW5#sz~W zGpn0Hb_kP~08J2WpwVJ;5{U$l*uhmGza$IUoD8N&HuN|sHLr{TofeJx7AEzDFz=D0 zqQB|)fLMMlv^)m-|Fy>e!w6=m!p4TRNRAX2tYzXj8~*Ihs$@L{D_oi;zBnN}cK}i(YT4GtW6zllld+$hn##|HL zGqBkTgTQuq8!o`x>WwXmn>obCDfD8)Ai40X09E%aC}aQ0ZV7RrmDgLl24^^_1Hfqm zErAyy2s)QoIcRpSRSO@G@A0BfFY<10@+}1Ur<5v=9DY7z@Ho2 zOyaB>MX}|Ky(WN^m7N{*;zex-EvC>u4n#4iF^@*&>|%v2AuMfba_*9ciw2`Pdk>;{ zwu9)O>%sle!L6UY{om7Z@+)4UxM%}xlT5PPVQ7#%(MLx!9qC0xy=3TevJ7M_Cek4A zW!5^*8U9egvS28letSV6)=x^MjxGEtGc!PJd!J3)$LH6CX|1a<_iL@>P2}s|X(Y$( z^~mkqYfTg*86ACxQcxu;-gSBKA|pE@xgDO{rC>M(nhiHXRj=+?&AjUyRB($md!G$PCV36FcN$4s7h3lS+Rbn z+PGqp*VGjGA(Ew*Pm>Grrgt!_S*Ixb^=TgR4cJYUyA3Z*<@f}r;v$Yvbk)^c3S0zq z#jR5Zal0#hzZT`Wiw86o^y`z^aMoa{?_jKBiWONTkx_E(H%_KMwTWFzJ}QQjm*6 z7h~tVNVFPw^8mv$#D|2h(OVOGS(c#@m5%?sL#Z>jMy2;kfy%aiu5{a+(NlwSN3-2_ z2r^bmODYA%dc%3SUx!qy5@osUYGlPzH%Tx6BaW_#&dh5W` zovloH*`;fO3{z{7x1?hu{P<;Em6b_;(QDns4~M?Z{@ScmpHB-GtksVFB>T=6-K!02 zKm%>Lpz)3&ufkVM=21Zk%AA*27^rpMYp;@_O(AR2CG*2`F6i7+6qd2?u48zgVcAY) zRG!;p;{n0Ci#FO_5lyPiD1u!OjBpM?&m&S*756JRBjS+!Epter00xanvr zu%Og|?x91O=f^fvxm$oDv(PXNEGThcL8Xkd?~)pDhaN4I0NjH2mjQz5Y#i`$D>5-c#E25r=>zlDhqtrjrpDNo&wj7v^)0JBr znbRG6VMJ5-qUf>pU%U36HY1)^N*~!n+>=wtR1)UC`HJr)7as1M`D((*scV+`)UMr^ zqTIgb(xKgocBa}JE^mQ0o;fagS<7-&co;09$xL5DyyzJMn=&7$v)c3Iw+E23%xD-5 z$}AuslBKk+PxTo1cFlQe3HAQ$We*wkWl(dz!dZJr-@X3$anxWws3i*t3bXtp4`#FPJcm;BeSkhdmqCQE>S4@UXacG z@aGaDw1t<2`dNhQ0F^9&mbSP#dg7EJ7fu5>1Ijt9SVC;=2qXVAO9}phgx%-iXM`?U zVJ@f?QF96IB+S|A0>8j5Yls_W$kp(gG+ILF=hqWh!Y<&ke4z^$P$Tn5E&*Igfb}35 zcvX%?j!(T`Ld=4ergQ(^hl6T;2dCLWF4*gQONc}sL?q4|=|hSTy@y;V&)eQA4h>j= zOYUl0LTpOnm_uz>fLme>u#;w_kYAoeFY*ilWe5z^Dp;B*0DVr==Db01DWDu4D%)6b z5n$vWhvX0A2G`a?tz)P~fPy=b3@NQZI7E!{?bZ_F2k5~&$}=~^Hc|g%K>jdjOgU*7 z0`8JVF!BfxSRAdP&h7bBIU%rwPzU=SjUI~$hpmC4`TP0)lQr>cMX~?)isIuMo(8_H zR0F?-^Uxw_{~7>U#$slQ|71k|FlxN}_dpTaPG|;#kD&g8*HIPjICF-VSuX$j%lJXA zX=jjyyT?KG{#&#hyG>}rE~ToE@x^WY6 zk~meGUX-BSD7^pkKEK%f7|Un&dNdr9I{Mgjhje_fGOUxU=YK@_WzjX^fX%uND~mQA zvyzk-D~f&IA7jjPGg9jgew(YZ&R+U!ndwFE42Pt>_zQuF=0h% z+UoAduHOCXXl7LH9XmMnu4&{ssBTgn{NZ<^Zv|I~3xdNjxeOh+NhAt2FVmSb7R{2w zatXx~Wx(I1U9*HREsYBzF??X-;@WA>9tW_8J0F{qvVXM(oWWD`rg^dB0z8c|tNHmQ z#Mg1?i#nR8F1_dzh8lkJ0h-8Y0wqjbkHEZ4K#y3(lm2IXsmq`J=X}x2e|$v zY1jl)L*R%$2Zc*SggLI*`%pfW8&3*DF%KLC5?5J~*PP)Yzi9pR9 z0?IHD2xT@mN$Yq-X!uqTAYQz^0P*$~lKlU8sH0p5h{Id&$xIu11N@pUKalJW9ARF- z-_)Z@fW~sRL#QtHRu1r_G^!SYno0HGYH4Yt)&Sl*UNSWNv==z_oB)iswNW@XfNXlF z@(bL7GwUgQ<~%tPIAByh$(I8}VHjrrdz2}BAlycsu}~&Y2mn3f=Til8K9ZZz8bW5O z0eLohxJBphyVcw~hg23d&VlotQGiu679r|)HGv!d^#DLE10dLQ&MEL#{3_`rMi}4! z8`%4A*Opm}O!q-fgyq7Yk#Ci6G00VkmTYna*?9>e?B<}><)L)mJ)(hSG^8k@gru3) zy)w&+10?D0TTkLk zH;vEzqwEJM!K>qoi$uEp6=W;ErF<{Q>-%PhmVDT{I$9|6=L9i9A|zCkAG<;Ga`(%j z7WbJ(^*yJ*-H=OD^ec?Yw2oWfIj(Qt5p#X2DAubZQ7LDx1U`eLpI$=r5o!NlKjtKQ z!X)2-gc-@Tn@Q2z&U!pxG`*v`h9*)I_#JKu+e(Ry*i^txlnWtax$W8Q)F-g?T z^-H2jbe|!uDAmhLyg`CBrota&R-?@P{&?qGnZzze0#`%; zUY|cyq35A#$II8-Wz&b2Fqpw<)=)RWQf}*Ct&@|o8(g?uejwZK!-~a=#pU6aS{JV# zQJ;cdi*B~#*@?7xA?X%t=Go?y+~PTs>BYJhcFDKryc)dm?e ziX$p_;mB4OJuK?*S`4{-TI)8qQzg9=_78GkrdvW}S(59!(uYwEtDPwm{@iU|@VYWa zKD>U@5VV=K(9kP?A1?xbNW2J^zpfcWZ-&BAv0#O)xjUB6IzG5hJW_u?Y0}s^0ZnEk zU-!pvr@y*7b`b5IInIp7OLPWFUUzvwTi^Kx=eAj>q%+Mxsj%pn~W+Y5&2HM7gMGct?;@UMamODko^rncsg%$%H1kMZrQc{`&ReH;powh+?+e zYs2??tLRWQbrs8Su()PgU=$XnYu@A@O2Zje>q)e~*gx8f4D;QvPOU}yRDprZ!y4C% z9vgQXImg^Ee(Dl`Hf7kelzim9qxA;9uxetmf23Ws%>Vhjo0lvD z7{j^H%xQQlkX56=7#WRHoX`8y!(~cK2t05~gk#yBE>)})VAse4_5X{W1jsB9Jx+gJ z_C!yLm56gp*;&A^X4Z7;_0Y!cCpM?v{IGG=#+xVkQV+X_l3veI7x`=;N*oEk_n@*r zR;ceZTlpE0{@VRP?(HZ({iCH1+|Dtsu`E5@jWt*)3qNrpTt%!9)GC4EZj9#c0ij`c zTJ++O3vebr0&jwa^*tsWdDCQ=Z{GjAmjuUOf?I&1pCd0i&XWG#CwJ5%`#E3$APn9b zRqRb}J`S`u5VMF!YA+$G3mJx72JpeY{{Y@Zv#cw@#h+GB5aexPUl5J!`(1H z*c1uC?9WJun|(^#n1FmbATalrA@V;9n=c>xb2`EDxcujh zi{hV9=%CB$Tx`%Ou*4rR_}~Ue7|1m?Oy18>VTl>?g6pACQ6G-WPp2h>^l3fdh1-k- zp7qGiamal_T-y>why=(M}TO2>jF<+ zSXnO31cEVU4Z{SkyAM2;+1(ZWe>_G$O`nEO^MMe3k5dhjUG|=E+ndCFRQ}7Q_9+;U zE?%AGE+H^~pwS&3pOa>KgYS0%@ZuN+PB%2fPX2)40rEHx#glVcJbD{e1)N&4)-whG zmAW07zwy8QqZH8YnI5BxR_bPF2 z4Y)bhCFoVvZ{Th%9>CMiTr^y@KxUgN1*u?t-KaC`J3%`IWFWX`JEeM_*EOdDXpCM` z;7+cCug+Xd<@(P7Pv)aAKIqF1A3&>|8KN#BE)f>@Y7m%fyHRte{Mf44WNJQ|8z+J0 zta3-P<+OQXq(X)lY@7*w$>9T^@iv@|KMPN)usJF`IRL?!AAB$V5$~$-;th@^@X3k; zB_f4d$jr#X5olf$V90R(w6!@h6cOq+J;8o^?m&KYhXJvXUL&H9%K88+}u^?#T5l_p7W`fvV2QULY1( z^%9leQt${VjPE9k%|AI2?t&Iz$-jriVou&!IVw~d*}u=m*}3Ue^v1DQ$3>Gjg%KGl zT&XaQw5@$3@-FHUsaM4z52GkWx#x)&XIbA6lH}7!gd&2@Wxcy5^iA-#rpKXGE>$SH zA9=zq$Dzi3hmBQBE4Or|w>qj3$u#*Q_JNiuNAh2yx_IS6JZD^oPpH0{XsnDFK4RrgBhNJuE!#B8wB(J}FT(BIwNyZWTZNBVH8L;>`M_6cEMq#bNQF=$+253O#{>HZYizOxk>u}W+!_M*(@s~9n zusAEf$%EgF6Dn&~LPr#T(kKtq-(1MM8v0&Flm z?ob56C(>UN;QAha_@&uF5_dgyevAk|lAdX=$R8kZL;T1bzCM7!rnr^VT3SEU06#PQDsY4Qy1m3p)VZ({9j%r zP7}CWXJI39y$VNa4$0f!h<#JYng>uB1Rl_f5dk*@10*I`6b6Q*qdlN|Mtrx^kbCjm=l;w_&!}<_7!+>o zlUDXT81qhB!%-OU&5;R92nrX1Us{7Xs64`<|AV|r#6Nf5B5^2e@+n6a-=ewI1_ZPU z2vx{C?7~`pANS`h;Q7bgr3O>oEQqWIY}WgX>vC=A>kv%-#v!T2foN5koNw?Fl2KKpU< z#hUT)CLf~qweMN{9dV>)t#?hWF0L{YoCm&R<_StCPbcT%&(@!bd-kc_sBah`gdEqM zR}Nih?P<1oTtkpTxe;!XHECF?6p+>&IBbb<7?FTt=HnpdKKP;9Qt+Obb9gkyXP`Inc-g9KZ7so2a)L#%pTrD zkYg_e*mlQx&rq(|+ho!5;~B2)?%IS<-8Bq>nt0-m@;lKUaQBNXT6mZCHM@Fm@0d!8 zxzYHqd|ab{6lQ)4IscVk^CfYe0q7lPVBkjb1882fOOZP}{^zBm*sY<2_W=9Gr+{v8 zvKDz4*9gyo8K6YgEFn%i3Uo%Zq^aCz*MX|-ywE^qA9uxehd{vAryG(NbteVk#_4Ei zF0`GTyPo~3k2eZYGV#|AlQx3(Kv{rPpo@W@R)chB2S@gvzaJvN0^@`aAyO&mmGI+Qpn6+{^MUJfB#FxoU6!f&~Hsf7S&5Ky|~-w^fxmG|B9z5TU{_CI=Tuyr8Xzo>xR0!{ccurPr%&N)h=acC~w z*ywvGCMcT$C`Od|#jyL(`zF-*lq!JQ8bTlHIC4?kdx3ZJ>JkD@zeKd-90nWKjpYM? zQwYi4O(T0K0?tMt!16Bo2wcAhHK$*P@5Ou=Mox8+$H6Y{xQYs5xWI;oKwB-;g8LTX zL1e)+_n}HSmbniN{G--|Q}cf~#P$c>6|ZWEz|A`VKy>x5<_bnZ!%-khPtIqWXLX@< zgiSt%azQT2T_-a|yU26Cev8xCRAhcM_puI^v(b&p)&}l-FYpu#K;OfT0u5Oe)wEHB zL14)))-Hqt9N9B}?Ei!{6@QR>Bbb>iFHojra}5n!7pz%N*|DjDl3RYrI|rvzlUD1V zHm3O*t?|t7T|E5BUa$F#yKAn8*Hed1>W%H@&B86;WBqmCOU=7F@)Yc(N)sK zY`veWY;5T&_c+Vk>twa&x%L2kw_c;X(T*(JbXW7cM02nBE#c)E@_8mX!P_U;=HXlq zKzkX-S7T=v8DNYz^#UV=Nj|xRaEb1f7z~@#rx)w9s_4;}cU|Sux%O^}0k2ap`%XHU zbg2dQT=CnaV%y$pNj_{I zvTs(W`C93_C#N&kbw}2OZAn zcgI|B36zUVKPP2CAJgphdsJA~b>aTXFGsWf7klp=*W~u6i{f@GA|fhP5TYW2(kviK z%T_laAVzuDGAbvBnaV^6wh+*x#yhu z&7M1R&&-{B{@DNIqj?kZW@WAK`mX2uJkQrFRyVxvq0^%2Y6-V>bK2FpnZ15T_b+tA#;$ELSZ%U+F`AI|9PKt2OU z#S!-g7Z7~|dDWEm#ic`W^fcSBGArC3L+y0}Yf%>blp4b^j{i9Ruq z>E?P&YDi!)Eqqay$V=)cJqMbI|3#KYIHg_kDP5|{pgPOhW&VD8X7UjQsZ(}V4L4#x z8GN~_1Cn;NmFe~p2qOa4G`)?$@b|JRhK(o?w)v~k=GWv+Z_>;)d%fNi^g3$x_G_*i zFWgS_knY?QLsQN*vhcP@yg}Y;WIEscCe^E~x9Zcsr(-VupLfh982ta(F*nD%>do`a z`P8_ILT^b&BSO}Yi+5^yey;ObSCUt%I}xKe#?Q=g`CMZ=aM#xMZM%P9;O#@Voa)8n z+va6X3a@bizFXgprX&}0ko*QoXq(=FJo9Y0nw`gr=IYeFD}P?Nd=R#yjc%fgMxGn7 z_MO&>NNLE}(XZC_tf)*>a)Eha&RO!(6~Cj>s%kjv{wbq0q8g(^EmL@PHZ2Czv#ynC zYO`pSB`0U1JU&=5Zdu`CPg0tL^uVdco(QX_G$TfZo5$5)Va`b`=?d)6QJh;(sS+6{ zWqx*^!>hs@YF~n#YB5dgpVC557vXz&+p{mR67oadRW~E^up_e7i~0J3jmWNuP_7(( z8R0V^FTvCZ!x>MZ#1`VE%eq8h)cHQHG1>dX!vwi-Le|K*x73|YAIyU9N$cM{y6$v3$qW~=_zG5NLG3$>MxhozBMv?uVe3TJpt*bbc3bwn+21n;3&#Pzr)oe zBl$51<7vTSf*@BS5JLXXn9$hSmGmf(^Ft8JlYSjK@6s&_`PNjEHZlgDj0CLgrj zTrbLdSt?%P`*P2%P2@GRSGCkNF zf$u9^0;{xNlPJa2XX#b>QQlw^-t$i~JF|8q*n1~ClEQ0HG=^j6g|EKjPEPNZD9%b2 zWl7iHg=OdlKRaYUeJ(~KpR*I(;6bQ980TDst*)mQPcS;BgmA_n9BK6v!uUJzpXwB< zM2ecppQ{|^>VAPs^E&G(?*c!J$murX4eEjht_`?V^m3j2^PIeWisp#D2nI+Ue+A|( zNDMJzaC{rgV=kKYttIvrsp%=OjEyLzJ$z*@vgQxn(Fv?w^9NtW)w^$6=_s56o-tcE@pzcMprnjFMpN$WL+-xgK&KR2XzPM7*>(xBR$sKHT@0&Jyt)K4MOexEjOVK|wd@7+r)6vfM(xMg5 zSDE~Q2p( z+#r`u+`Pcw#X3c~H7}iVrJsU4a?vyfa>!rZp^v@pY0+c_t5}6ymYqwJnW|LIz3qHuz-hM>$^H{Cji57-X;_Sw6 zI5Ni-90~q;Yi9gA{LnuF^@t3J3VoJ=UUbb7grP5~Ke3mKKd~2L9rPDnnWqN-C05Tt zgQfXF8*pm}^CmWuKpLx!|AV-4@AMSE5o8@a%jt)poY6y!`8NTK{|;mzI+wZoK0Ew^H+$;nR=#7rK@hAdA#(Ms7s4qT575GR*ii6gLoBEr*0)ut%0L{6@bgW5zqMgbro?qZ<$&;;=K8U6nvKv?-d2q^z=zyBB6=XG7aw{KTKPk$}F z**P|DeUlS(t^Dg~4C8d?t^0Q0N;zQt*MnL`aVz6M(6vdzh|BFy$x-C6)y2NmF^qZdTDt7z;{LJ_$Ch5J9*XmcuRtYX-nTjm zD^wNtX>t}F6e+dEwUlI)G_z_iw~ER~_A}wevHh_NKLn1VhO+qEQ#fAy_Zvx7I3buE zqVZtMw+V0RmKt1z!EyL(;RpTt>N*c*dOxF#zqhX6FZ6^rUxB$bA7pb<-p8HJdmx|0 zKJ%32DDlFe$uEQ<4*My;g^6MyM7bx>&B4^tVUXT~GP4Zz{qipKsXuWXL?qh11p0-S z)mGiFp;mXuD^)36PydE*0E;Eo^HQ*Qvz!>CU+&=+A_T-LW*Xm_!?g4!FX ze~Q2DYeArh!N!1zFXkr3*DY$M=j(`r@7JrzXEL8o1-jlZGw|^30yaMX89lrIPbcCs z5hGN3IhCovcI0InoW@>iHSXhDF?}XQTaZ!XGQGI-TNs@Wb3jE&6woLM%^O;AmA-E# z<{e{O2the>>`&ge?7dTcm&z?sa)rDX47nye54{&G6eD2vD^IM5;5{cYKs?Jk-zrhK zE!Q?{uS$!JS2L;fl9wjWN-I<1XrHShwyp4V8QZJlFfq@A1>)Ck-+xka%!Tn=AozEj z-w%OVP}AiaQUJF=7|1@=h6Ob}vKs}SXded>1kD!i#Pt6Dnd1G)!-dX1s`N5sQgR@em+f5V|rSSJZ1uee1 zk9Mj?R(*8+!!3cd!^q{!LUX5jqIkT;-JsdRt?3-41?coRz>OYPQhlAw{v@`bOVLY} zWP8D_KA0V6S*{Is@rUo(lPTyY<67ZL3J(~hkDI=<7)xwC=4gVk9G)m4G>I6aK2g1> z51~C&kLc(R2P;xq$I?Yn&Ks$cy5|J*#>#tUdFbM(Y~3mcJume*6x#=W)Wnr z2ataJ3DqmzG;jo~oj^pX5qw1RTpNKUv zr^!t~E5sMkhLa}KrR-S5C0$kl_bLGu9-PD9iMv+bU86L$IJDn3kiwj8a#mTA-^$uq zddKv&t-=0J26FR%Dg^OI;~fr`@3SE8po1diymf=AqtTsNk_TV8FW=;T-<7-(%HX4u zw41JMzod)%reAxg-#5|b&GqFQf{S$?>?2Yqjk}Hz*CI#CA7I`k&kj}I}O-$YIZPwetK>FCm!>EH+_TpkGY6>t_t@9GH5ZV&#o+tZV@0h52>y+*o` zhnLwkus^Z^GlHU_!s^uEtv;}pX8?N7`JjCpw#B~UY^INk{9r&@t#*^a-ho$?s_If_ z*T#|Z=efcv?d=*AS*PkJZnXBFIAq)DsJ>c?&KYnIJD!;%VHgG8J>`6|rSjl$+Bthc_quQzJP!bV7F zaw@*spzw|Jgwto2xeeUg9|E}k72~B$&Nlp?6K}tUk+H#SJ6Mi}3cZ_gBx3*)^Oo`L zq|!kzfrusfd%cXcE*Wf>Jqr<||}dyEOaM-DIAMHut4@p_&k872H<_KdHXx;?m~ zWmPFg#OC|Xg*_$$EKKxTPN1A{{rb1F{+QRTFJY3c(9Zm8uP#h9%`Ult1JWW7oa!b) z(z~n1KMyC@?Z?IVle{e!kP-&kI0shXG$H(^79*hDe>Y1zRx5BoYk3crXfv$%rRr|1 zD;>34)}NOh;vo?&T*@YM_tn$KoSGn}?L@4MLDua<1NcpFFcaC}xWjKcx!0ryM$?w% z%rVOQUV?Rs>FLA$V&*mNHgqDo7e=^A3}PVI~f*Nl=tJ67SU3`qPk^8 zI{Aziw9B03+9EGnQd4dmo$d8 zExk7eLi37zG(TUvr1v(qX9m}CY8rYIX8+~6q^wv3>5}~m*Vkhv&DB+(lH5An(_(dQ ze+jjYpTRM}%UY?hq9Avd2YZS40GiAqmi`cEorp#<-{8EMq{dWqbG4`hHjRdAk~?n; ziI~$dkH^n2XTnFqBd0LiVL^0l6vw$=lW`LNFnbZ{p8Qoeno?05NB@do7)7Z}v)(Ph z8^wj_gbd9oQ)YD3?HJObk?JdhX|)9f$!QfU&z3@P4Fx{e&*;BCa@3^vpI)Fj;#=g? zk)N-knEiEP#Rkj=AaT4_r+{zAWZ|2rB@*Jg-%R z=%U#h*><}@^(9hY!Jew3RB{ZMWBJ7L@%#dmVsl4C^9(b+`oc7~R^|P;G`KZQ zdoexLTV6UMFT5WMY*{-*Tm_|tM`v)Snd=S9u;T2}85)RT_M<~1K2T{_BiNTW9*s6V zO(XB(+V^C^&*^6KZ4cbuRSj_MLKNB$c&HSg*uC3sLCN99bE7@>-T~tZ;<;^sO7cE! z0le3vrI)UxTqa3=w;bpIX|aQ4$)9&{hu)UW*IZJwN-|A|4oaK{uKBiJ?N7BXz3_XL zQtSSe2tJ<+GJpQI3XT_4f9i(-NJqrE7BCCLBsZaVa1A+HFpy*1%{UD^Oy$;`B{{*> zHt<7c%9Wl~r!m>44bjJXXxRxb{Juf;SJcOiK{6MWP@d{*!aiwf(tgyUHf3^Bi>r!j ze(-&6Mt8$8zunX3Mr>c_#iH_(6$4}0*g`_#S`;^q-ispz!Ixpuc*>~qN;bshbHIW zB#9R(W=Wx@+E~zU1Dg6e zPOEGS+5LKXv2GX3 zJzYL4dyG;BIFt8wnqHaTc#|F^ZdYYn{N}U6LY2+x&olyA1Zg&UB=>qnx%A%hDUK#!87U3P^qz{?&QUL^E+0&XC@DW^_mLaRU-?TX|cG|+~= z0nG_uLJF__5Ks=|f#|km4TDvmUrkGbh;{(uUYchA|`PqEP{5GP9wS5aA|Ug!^ECzWQo;TE0UKeQ5NGW_iMuvl{(h zo?Q{SSS=CNOq+7}ly7TZ_L-NiBffCD+22r`B=8~))0FXx3Gq!W^^MuwHqyj|3xt{(#12(c4fK*8y$*#zQY5WipN zZYD;l898js4q?S5mK>=nWp1UiWNGD@st&RP6BaDVQkLV$__>pmFFjwa_Xx#4*bm&E z1o>u>mE*t?m(NVj!U!FA5lEQ+rEY@Y#r62_Bji{;?cg`3GMN+ft#7~7 z#CvbdBzfdxgRj)2kIy==L?2Vq@ss%rgFEjKi`y+cYJZ)gSkhps1`IhEz*Vv*ponplV!|4CvD z`2O-gMo#?S#*+RD!`j@z|BEJs{BXoyIp*;^8c~yg_r10*2qXsAMH}=0H|^e^&|=Fq zP;xvLv0(fcHh5G}U;Yc;S%|GKf0eq}hdd)c7>-ym?*j-{h6=#-Xn<`1S_%F%fd5PP z(f_LFRhTEIBDhi$lcG!coM7BFUM%DVMc|Jz?H=P1WAHB%=i%=(mFKwIq}@{*;d~KR z|5Ao79PIIW1e<2mv+AX17~~~SnylnP`3p{}S5e!X=rbEs+#)Xc>mr9cGv+Mnd?h>|d1VVpMm*zP(_-fA=T#X#V5E@2i?v}IZU^GZWq&!E)!v`PfKG$4N)ePiU zg2F2r)-f9o@5hm8Cch0!u_FiulHaQck!6^pBSIQl z&K|V2*=Q&0evIXy5$yBQtJ^QusLX{hh7S(m89?`jpWh1C74ES5m0xS1k4_P1L3CS?*~pt@avfq8*dvBVS#JoAa&Wl zD7vu%(4+3%gMTLd<1?Q>jk`pDLq5Vjo&?qyQRL~1)c~_M`F7ynV$}U}3FjiUXfxf8 z8x1NFgA5`+bWOrQ=)N3Qbp5ji@c0ARyTYtDKNsnW_^w5L1hExC{bt^68d3@5S>jue zD?SjYcPyEKo9tDN9H{GA7mlr zm%o62i~im2;NPny`}=kOhqop8hhxou+VAyuyMuqT-2qt_rZ7wEA=x?^xR-`((pS?W zY=ys_t!45nZ`>_t-_jHQXrsm5#Nb2Tyxr4L?^MH$11YF}Rffj3rhz%*R~8O-S;k^U z<%r#;5;@n8SZBG!+UNG>8x_dul;xc>X}OgvWO_2%+*IvNL0e3=kkPG#7@DGTn|e>o ztL43iDdw7~KJHL@5W|Xd8t!FVz_U|?NBC35smqNz57W*LN{%s>xDGVA-)dXKxmKin zDU^auFFPb}{0vFPy>Mq%R@X`A`N2)lMQAb-D%apDPY}d#zp^s&*_d!50#i_+nNpqR zmJ)$iJs0goOZzfDx<9(*m@gBg)5#fb18>In#NTtJ^tyTTGQqjvJ-=~+*#~WwrK2CL z-VS0_Os0ot7R)_$sHa|Lksc;Ft~c?wH<^0WQp+z8o8-kSMsFYK_g!8M-e!pw`+Skw z>_+KmPH&RBo6zACmRJIWaM+mjhxCg**Zr@h66 zu*>aawgcIlwp1*nct7wJ`BIIY;o+nUt5r$*)(-qsYrEMAt{944Tfuuvbw}@jE9`2+ z(NPB5R`i5f*FTDzd|{nR@!DO+I{omRL@6sH(U;N}uk2bHZIj^G<7);~45r3aKss3# z5rzbb=mWeyJWMYYdCweA^{qLXsW*NR^k;nYMh2kZvgP}q-_G&A81H@Zef$TKXZgsR z0+yx>ZiqkBa9iFYnznGoV#k#O3D)gYiegmGQVz}4q(7fwSsm-RuasmPUo+*nC)-2I z_1klrN~46T*qiYKw(O(A_srXq^=kWyUbu9s=@S|eu=)=HMuu8p0AZ->y-vl3A${KE zI6UF+hCDW$Z$DS zbfxtZM)gorA=lLm_D(y9gvY*VDhw=uqwV4qJsul>(#-K&b2j?jHgR;M=2Uk_km@e8 zR_^a05scy=g_oNr_Tc>UItpQGtNi|cJ#)I6C0=IHy1(dkb>;Ejh0J^|IG){-^x}Z; z(oH%L5uIjCMrrZu03sHPeoNw>BsPe#dgALK|+xF*8l$=kA+e1bp5H{>cAC{l}M)9<}k>qyI+1AtJ} z;CD7GXDYnjD&uY3N$Jn=(^c3!_=RO?u4PWjT%eM1_zJc`ucXODO9B`!7h9QSWI0s@ z^f>XJoRhkA0m!w}@xQ>bYoJ>mjnxv}wP?4)k1`?V%|Nst z&L=O#e_qfIMkQco6_ZjMU449hbs094;5COe(3q!h8VCy+Wgvt@GtET8Gfnl%=00U@ z>&-UZ?R0KejH|>jBDL?uLTBJnlg>cJBb}B(iP?ugzn-`|HUwBEm4B6d3C>a(03uO5 zu?Py(D1Kyo8s|7*U*KR+u5&e{@)JJyQazWyA4x&81$&^?i%Hx|@HaZtRI5Qp#b)>7 z55TjRlDk?mlqBQr;RPqhNSXTUVR zqXz)__EaS8rGXysdxk-3AED3!`i_!Uh&*cm(VqpyiF%M(PLtMwH?pb{PwX9md&Ua* zHJ{`;t8m`|W;yY@0W_+?@62L91O)X$desU9dx{bet4;>$5baM^3TVpe^D$7D!?3$t z)30SVT5D$2S9FNl7bwelPSzkVlchg9kB^Ui)=QDH3$oi|qTl>+#Y7X3o>fXqkFS-y z$Z&8o?M=cCu;0e00^RdUd+NG>((;OdXdL&qtQPw#TV;|R>;M@sit>5kde##g2~%(4 zQHxBoq6PHM(u`w>yj^?L`Z5R$h{yk<6#AdI8LKu_AL9(2a?0$o%wdU z$et1U{}?9{YDkPPyf+KqZ=l9pt|vrJ2-O(UP|;OAdUx+HH##GnSP_ls4ux5EHGNw8 zItOyGWZDc-JYlq9Q0GOR3Uemiuhe^7fffGPgCez|J@?_ojTefMbX9`p$ISB*O{YI* zPVdYiy+9OoWquF5qIM-q zBYAHNP4s?eCXnnzk#`E_Dd)0YxS5!yR8{7wbU?<)f3!#F#0-=8rm-a6LkfW> zCWnt1oWrYu5MU$9k+=$kUtg8E!K$FtoWcu9;U@qXM&;Y)?tj!~{fqze<*Abl^se#G z+#9^u8s!zxwg(-KmcX6&*{#%WHX(-1Zy53AM(JSUMTNZDW{ZZVy1e-`AGih-^vexo zC!&{!D(GvJns~2RFIEJtt~5aWyKM@qV-h0y?`}l+u^em}&bcbV6xJeBGa`citrH#B!|728X-8*`ZH zm;r;%BTnsR_ul|CJJ=&bf_o7}tWosNG9OWSd^1wg*EbWj3rlK1%NWS}1U;1SAYNd~ z7c)6c8PXL&n{iJ^U2ul1n@2^ z#NZmsk+~56;q8^tl>r~F#%>1yL@QEio_u7iEg6>A82pq7^0mR-t<8GyuOV~)`Tc^Z zLLgb8j2~nPg8cYeVUP`Tpt1lPWQ~eMitaZzJJ+`ykhT`?dyZ+oecT>}xm9c`u&3pa z(0+kq`?vGYOv3Z5@}W{E+;uqD@1uaLV3USqll|sDq+9cI_sjowMqqG+xBuNjl4`yV zbCz@Jb-ss#(dOOz1{aT8znz~sPX3^(RP3L_c#!Cq-{=@QIu^8{v167O-L%(O(mdpP zhD}UU<<(cb7mNN^7e1}~)L|RC_GA|x!AWxL&wA7muvumCdfUwSH@aZ7`b+f)<(4CBK`|v6Hc`{4b1Dja$&{vv z4dpsrke*dHA-HeJQV1IFrW{TOC~^qA zw7uo}w5szJ6eT?9T$E{na$~~NX^Pxni63`lOhtir1^Lr;!JK~_8d`n{5T$TaUKp8m zq??b#-DNIWod>XCELw6^+3$vf-@$Ia0^E8r>Yl}2)dXX=g7@)%=C0(wbGP|^c5~D) z=o|48VES{kpZ!N^Bdqlw0-6%*XVlTE`Kk?WD|z{5B0|mmG5f^7FZAUGN*&Si3&vey zQ=JeW>lAML8t6`4;Y1&~>XF>r=|fvI-fUTO`($ID^geZw7Mm&47;k?)-JH~H;UhW2 zlpy|KnH`)7HD1Q|Osw7lyezP67+4PIhOr$<%Rzc!Hcmrv5PY{L1a$w{azCPp$Otxs zqNKQ5f(#JujYV0Y0JL+EK>hwQi!bw-4QvpyBH&pNDSTQdxSuWya$LI6bTDH@&T`D4 z?#7>eRvRf(%Y0AezxtNqoBrS3kN`wsNbr@>%sxa}1#cg+70K0g0Sk2I5droV9dY8v zA*P6YIWhwJcJ?>K-?#p+j(P&bye-ImN*o^Lw*^H(YZ7tPL>aCC3v}{}bmaL<)M8QVtDtdplCv&Z@lJw(@)4(qo@Jr;AX0F{Cu~X_$`Y z$}bSPNiO4p+Hqo{GCLpVOdTqdjH1~c06o-`I>ffmHd&qiBPmUlR zioaMcgKQF&^h!2UeZAMs$w|#++pqC|?1)p?@#UAMr;bEs_e7ZnPl^yT0SD*-Jh#1# zRv2yLW1au!6yxx;pU=owc5TweDmsp6l?dNPtF|B8iz{`s$$s3>-B^_`boyvqqWHc< z=X<9~KCizpJ_CQ6qbghoqGeG%(Hk0wy;SBL7I5WL5}`(8{3q(Fi@`~V_K8LPA)ujx z^rI$$t&^z_`psnVvur?jl~^SA@Xu2La%g+h4*|pk?72K5#gA@n!EkltwZUOy8u2gh zSig#I2SUSp&`Kv_Bi4=|4hV|ORP@gy$iM$?l-Y~l(cn%ugU&991ugW3bT5dEUeL-E z??Dck1@1FEj+Y6|)!;x8tTA&6;=5RY)hx#WRqSpo+yPel`4+&-sL2{7PeTw_6g@u& z<@7^yt|%ZI$p#}!VE^)p+Pcn{(Pe`;@QTF(Re+rlv7k-OJ!7tB5Cc?$45y~F`EsJN zKo+n<_@ASb`S;-bJve{QoWGaV-!bR!fc#H;=ij^4|3hN&_u%|JIDaRB|7%YFcZU4; z@!{{Y)!%2U|LDPUa1c=1{s;sr@_WwET%-!uy9hZ&hc*}*{P6z8S#}IBQ(6KO2f9<4 z{&7~29ufQJ{+L~72alcIw+nl)=00Yv1TfKze+Ybvb+aVtmr=+AoKY?z^UphHzL3SU zBjXenk0x9x8#6$;GBkoagJ#(Il)`~80TzbtA$vDuIpR<~_QLKe_i(S>J*MTxE~m8AjHB)aUL-Tmz8 zil*3;zcX7S3Sx^g3=U$WFNbvT?*-UC%~f9dTCHE_Ow~|m{#df3;^a({qe1&FfWI9M z%k9V18hUK6)nF(bak|i^OI%dr1TEb6tKf)ou>%3V=UVN$*Dzs>+NRr4 zQP`L@K?XOxJTc8k#Bd&W5pIZryav4e6ch_^Q^?VC04Bn1hu$dgD2uxNL+d6p|? z#(#dQE2)0AMpxtW*Sqy z{B7AB|3&266b6Ht(xQF;;{b9S|EP}+x_%-~=Vpb7e1i5vu1B7u7dzufZDiU9Ct?Kt zK#CbFQ7Uq8t<2rDf;skzVtHiA|lTMgl)ycXHxs zTb3txZnVuDrke%lJ7hod>=NAW$8q+s>x_v8SA`IX*JUEoj(jYE z8V=CY?Hc(vLN`4}aCH6u5d4VxrLH|rg!kn#_TAK$9tG z(Yn33^Dq$zw~2cKeh5VJPxNv3zOl#doNXK!tn!^nd1X+kHpT(QCcTqB4p-0bxIXqJ z(e&&Mp^gv~XD`l(3O8~P;5U{G^cr6T)|#BtxLquM;cXSEWM8`$goxfrx`@e)d;8v4 zb|x~_{_8hwj~9dA0LMx29`vDv5Bwe2&Na?Ju+G2#{WDc$`*7?&wSdoxwgC%=K08gv zu)RBc530~8H(<;bE`;uP%%rPG9A#5sZ49CIPMCw z0?>*>iF^1mW4QgFa4O`5bpwMMCgr0{fxJpzV60A$h$c4Jy6=!l;f?N@_{lNV3zqhw zZqH7mK{@eJG*lnL{{<|_(^St~q=&{6>Sn$=_cxX}ek-#zj_^cJB4n~XM0^N-Wp1hK zbU?nkz56Bm*?(Fzc^+0 zs8fZ;I+pkLa<-s!gN>q=Wk9ZZ@P}_&LE8Bx-FJ}>knqtUM(iZuJ}e>wbPGR4lb*2rLeqSQS7%LvArphRw6F)u{d&Gn()D_iyK9US}MHBk5o( z9W@~}=ldk5Mk&^&JYf_nNu6R9S5>@dkx`JXm?Ur|2*3>}kh2v(HX%)Q>k5=Bf;2<=)9P&00>xP$Gb1wF30om-S0M5BtrXyYU`3Tn5DlYO-Fp6;x-;Ul`? zmG2z<-1!mEBq}M&2k~@#?#tG4(uw;3$;*>_f zH*=dD)$C^Ion=Nhr8XUJe*@p`que%+-jC&Ue)ZXG5{Q_Sb!B`L5MpJUlC5jeyA>gcl>K;3xiDsWJbQwZjK(9 zzG_AM6E2`Qzubb6HDQ%cygxOrgpPI`e54i7YeoB#aXiJ?_gAd$djlb#yVV$3Z&xdw z$KK~Ge6O)BJYC;uBUSjrVEiMNZgVjB9;z7C8x@6+1STa!5qOzi*cDzxVTiqVQGy*v zuxT?_ZIZeZD^nj3joQUkV5t{xM`dHLx6CYo@o!!eD*6)kvK;Gs^}8wN@CGl)!geE~ zgz(mEB-qfl?_OoW_d>|Gx_n>`m!usJdD;akpgBOUHl)bVCs8Qsem-UygY4>R-!BkR ziP6nD3w-wqc;p`fp3sPHLzQGPjkuG015P8uv&Kvy>pN7E;@ERD@SZF7CgqIge37cl z*ZrXv21?t74*B|{`&*Zy!Q?;B|A;On16_?aZWBvtX^b_69^?ygg<%^e$#GEA8AV&Y zZ%~{EZ?2b73L~%StLrlG!hOBVMP-$KH+#NH7ugEAiW$XkwczIP$0r2z6ggnL&}Gol z{G`5J)BV}U_?=u!mgqz7nS8iv_F@g|RA%=4o|fcwow0$~Y|s1F>nnnXy;L=04aT0x zs%7o7TWjTj{i*)##M@J3OzM0*GpMO zV8za{j0#;doxF)#D88m52M0LT86rAz=dJrNu4NbEXEqkDexvryppI^22rowEH?A}; ze15_G5UjlN?M@kA*oBAb+xXl)t+M6O#zG!*Afi7}pLD|I!<}z;C>pfU;Kdm{52`;7 zO_I<%K`8s;*gK1Al=!CT>G8hqqP#?ImtRxsH5qM%dTh_M%|6?2@5!1nbWG5Fs5PB9g}&3G1vBv*LYNDk_HX0^M%$q<}j6g zmGzS~6oc1cAs??|1Q+cx4lzT(pkDptM`IDf%a+9)8hs@xg$~}rYT4yka+D9rW0$*R zpG6zl5LPA7Ge7eKz&vQXf_O*fMrPuPjQJuQt6N{uSf<`#)`S56nug z9n=_-_}T7Z>m<}B4+8oGX9o`VLtr2RCZSD%M*wsaxd-0}WTXTFQjROAX*(gN&>Mgj z;2x_5w0E6GX<79ndMEqa*@}{yM@~MGmsx`i z6UXx(zbxbr>**^V9!n_?pmit(xn+;e-|aMoon~y_+6Vefd4#`uJzB!H%k*jL=0 zm6SY=k>>jMtvOqM-PL-t*J+L@qUmF9;2^c7Fn-bMg42HI&NJlM&3vIXjvV(KxS<#L zk&Ioiga$z)pu>u;o<%3fbFJZA`r#^;0fmGOG6|n;a?xbj^o)6i2cRh0HzH_x^*DLblKkq;uX0qGi&le|2>c)!gk|Q%;Y&;u|`>7e7NSw_c zkDHxFHXvZ#<@bXl>Dei*1fK-vK}_+TuIOii zte)@GpxsZC`89k|t_73YDjG@@#%sd+7XYVLiZ6#%pc6uOl0B>N1vm{r$J;TVq55fO z?$y#Og~_i1(j9vl<fH@<`iurLQgJl!SOtL)L}wSeS>3^v53+x zPp)w9u{Uon6T?K}UbHxvn+D{$eabb>O0)5@_V3ZFh)L1RGY-)orfQby;W{1kO|A3X z-sT!*y-4!5ku%F#A?;Q7>WeE{{G7w>`NZskm0KChlSo)eaA^th?0Pc3jTO`+x|1LW zyS@hvzP1yMDhBE%=ufonF)+A}yDKfNOUdo8FP4&tvtp`v$74H;8$rJ;0<0nWo(vy> zS{WEN9`<2c(YqRJq4V%HIwI=iV%_OFW=JRDR0?fk7i`>EA#>AWPNtSOM}7B>6_Vbh z%8b4(lKtmBiI1k^Dj*!0Lv88=-V2WgBu^VVLe0>CwKnrD9ax+B9b$BdU$Fehra!Fx zE#=OYOQ&unG+74TJ48B^a`161ov1Rl+PB!?_Rh3YUPbP-3H^vp-X5#?s4v#vF~5Fy zuFL>Vlah-M;4GFMja(0Abu=AnUY5h6Y1GCpp<%i6P59%iKVYf&0y=!y0n zM)U<5z3gqtlMlf;6XqCKSIq5uw|DFb+$b;1p3|`<6)oNm%Sg!btP1&Bn7>dJ+hm)H zf1W)*&@+x+kQ($aIq&1)=Cz|jTU$)WaL4hQ_!F<R&|<+tG@sIrG%bb^BgdoU(PK)TVWjh*5RNdLv`d*wN;cE?5B23;FgT1}K zz4L{v2eEf*O5V6R)FVBN(z6{4$!%$OL+uV8H;vOT%yDn(yvOfNy|^Xj=4~CWq7+wtGt1ih7Zc!95z*u2;%=UZ zmen)f`SN<#XPGpve#VeVoL=wiq%H$n14oD}wwW&yQVtg~XB((;)XA6fO03pLYBkqL z4%mnWVk!0E;Zo*uv~PgQT>Pwg4NRt|TV3i`4^Uy)_SjS=ysty_7El;6<7O6x*tClS zaoM!mlk1|^AR7m}#^fIx;o&3Zq@{H_V<+$BigDyBHEu#?W^j*rHNLNWV=yid650Fh z8v_#6FQ*Yom)a06uiyCyYoGl@j!HzUF0@$1S9On@QlzW($CMp8=<~z5>QW8np8{0q z(}L|f-HBf+lVkmZy^r4wuDW&m{&4Ax#;^u|Cy^J4*Ipd43q^V&H^Iwn)L`H}8l{4z zPRSVosh2q>P`BXt*?er*Z#`uQG0%L}uhG2hT&{ivlNV#)HeOsfpZvC_pLYU=nsh{? zHPsN!@)8591YjcFq~n`h`Vt%QTVKIitf*6umMr$`D$njhf57)5RV_80jRE_jo69$6 zQ%7cm_ISEs$G~YlU7IVZ%@P12!lM$c}8# zQaBNqL4$^nQ&LfWYv>2WeH2o6-7b^DalLsaaq2Kxr6X%@<4|w)2QL~j$}vrD>ue)a zWyA?yxBRqLYoK;|VO*`UUqLEyk|lk{btN@E@yMHn%L$387IvuwL#KXG9$H0^XG_^^FbAH1){;Y_?3b+N zrHZME2h_c|+jN4!Jby=@2G@)xa=w0-r&KrGTVI8US;{Jnb{JS%lL*$;zbkA;))|v1 zx|;M#W496VQ#$l4h`TT0hrp2#U>3II2#W&zM2R+i>kC##dg;a-{owRA+JDc1a{n89 zZyMCp)@=>ru|Y(PfPjJ!Tl&ThQ3P^O0TBVE?{gFp0Wm5d0U}ZQo+GW&Md|xUF9<~X z1Bmnlf)El!q>}_8Y)GngMyYSBBe1^I65XVP-^RC4ctahB zRZHxs)>c-dcCO0qMH?&JSEQ+Lq~Jy=rs(TT{|}_{&r4BNyv!v6pdIaaQMRa?FsjUZc+|$)v~NM`6w}Ria$ZW5F-&bkMmV6D6YJ5ch9b&}x0vWQj1WS2607oF z3mFHGP{_YC+KckFy|cy)rj>LTHW`pRNa{MlB$CC6&@LGAw*BDYZ#;(kgFIb%g{bjx z8WTm@yQ<_mzuf(sTfQeLM1A%tPRTXIz87=PQ{mZezoRL(xfV%A^DnLuluAs_ExUyk z$j2vYsP6c5_qvCF2gQJ5@+hrfr8Ccj<;rj=Fz71^>^xOB>=?@$O^GWqF?&;aFy(cq zNAeq11uG$~@G3zuCDCB4sEO#0PNMRnrk2yims`(TAd#T;O7hZWMpY}b1aubo3v$c? zTYV>A-nUce#7xDCL6$9#eOn6SAdJ-A&-X?PXPS%`kStqn5s+;hBk`^xW6%|Ov8%md zNW>aBspngXiJKC-g|d|WK)(QsZc7oEzf_3DwANYG*7)_vm{x~aR@GJv6{jrg12I!J zk@gPe2l?d=7;DNp3fX$IZT$b*oQ+(g2H1#}Vr<#DaZY}grz2?OJyj};{@YBtXp%O8;pcl6S0I%W(U==f-; zXXMS{F3u5dab_y5CfxIU>A|^bf}mn0SI-=>roXc_Y}!#t`78v9eK0AKPM)^ycxw=T z@192V!}AXIQSXf<6ALbyWyxKQPoUr;Q?ieX$ECeCIk}$It!#Za&h@H+orQVQ^rMaG zl|=bRSqH9qrsWPbq?i;KJuHyx5;=wp?3tiqU`3ZO!DXUc8D%Ap?oH!#xI3kdTr zI{Tu!B0etWN94SG5o~UL;Le?MTYldbcZFwnhQf4jBr2Q)Y4E>ykcuYVBt-1BwQZtz z_cMFn+oaPoBO6RxC^sP&y5ug3%gKh4RY?O2=DzB`_6)_hdf(H%y$ws{hzk zS(z5Blsfu`8QV-6v(#o9hoIYSREI36ROP<) zVg(~Fs9w#zsJYkuN%369VZybPg)2$T@H$Hd7Lev9uYoCs+r!O5xgmt+D#omVY^HID z{{ha~xOvfVBIhKdc!BJoLSAJZ6;rn;qAv^U(1z1a@)tq~^QZDJfC8#~yOqC~*+QOp ze3aQumB{rMM7Nz|3tq<5iV->0{-fW(-yQauG5OlFX(Bs~^&LtTD1*@%HPNUid4)IJ z46NW1t&<%6LI2&HBTxY|(0XvW>d8@>aZBt$oc^$9$;nrS2Bw2Jep<9?n;6AEW8Fl@ zwT4_>XIDKE?V%a#Pw%}0gvmD>Ps^w^^C@jG_ z+^^c;XbSmBKhJXg!6Q`fn1wxUIP7J$Sg)-*Jx6)+rAlC8#paSyx9ug_0J-C`q3fos zMPRXUm|Koo9LC?paLxQxh%0Drg1^!n9)Ov~W5ns|n!E{Dib|7lER|PFX@1i@Uf#jg z7u^yYmT{074HNEu+jV?+DK}cF>fJf{^1p(g@sLyFX5QX=EO9{nO~U+ui^)t{*0TB| zmoq6wD+V4tf34IjqXeSUT_2^}7|Lr@B&a5yuS_wN@i|@#zW~t~)O;W%%S8e}PkQ4z znljFdueaf2HYby%DzZ5ukk8qay6TtNcFXKNwP3~Uoi|l}ITbB&<7C}j(J^sSxa#q7 zpFFJVvVry5PLw>}aT!uKK~UmZxsU?;yeq0qv2klTG|oKTOckgk?H}{+3#Y#$3QS;$ z7BvHkRTqFzt}z4Ma$|t%mAzGmLAguuYAi%~Y6;<+$_VAe#aXsCj)(gi-huPyzEa}oFfP%_Phn|0ES_G$ zQD*{C`XcmBY(R%)egBcvW`|vnBmR}${9{(R_Kw2uZV$%n)VntAKm6W$CUJKpuTidq z;CXU;ds@Q0&Irr1Xyx5St)BL?QH$xrx+$*ie*HGah(G@*Fl(ket3%LWT)I`=EwxLscS{96@BXRa9$!agLnr%jP`}i$0FaMvv+O9mMq-7W5(MYwm^eSVe8=~8TrfJN4n{`RZL_{#Uk!>i*jVS&UWpn zKd1Y=u(uK#l81{%^jGTU&F$>d(}+uRU6T)T^;4s1a3> z$yQSX^^#1Ps|{}%!(8r%l@{kbmkb%>9Se2CoC2rJyOgL!&>vB+3Y(J{78vLlC?i70 zNv$QjsFougtw0ZfD)>!xJ7mcW>A3pj&?lRw(@jm6~u|@s+v}Eg;sCGnvmRJo_t(hRckc{yn zV%MjZ(kGI_@vj!hWaYv6$>WfFKKkoOH6?qcJAc7{-^e}x;e$0=qQhS9dIvjXTRL`C z?5@r#3ikad@co=lqr=_mgpvb(RfjKp+_UsfIxEIG{$^H?b&~as;pWPmb7w!(L^ph1 zQA{hHa;})wPkkFNcSQ~7+`=ZeP99`9hgK0qp%zeuQlOy)=925EVPKtTnsi_8J0mG! z`0QJifUWh2s@zf~_q1VIb%X(^29Jlim%NIeNiow=Jln}5WW@71z7JuF{sO}7_GJLP zwLvwkQK*xSAFG&hj#8CWVWA-N(%x4+QqjKdCH|UNY6~Uk`Mi`md8YCYFXL@4bvbV$ zX(OQ;gL8vTPKX$l!|*VWv^Pfhyu5F3d5XCBYD2C`&Z2O5=&+xH()m1@Y)3D@vy>a| zK0Xe%mZw|&WVNn7xaw6{?*n%areI*Q_$D2{&af|TsA#rggOS9Rx>qJ|wSlF7bC z6$Q2i2ctLgK%W_SlIBl-?{sD(a9V*^zn@b4=6@C&vwU69`J1GXN@$WryJ4-=9|IR> z2?|KLjTV>>1f(5QY&WZ&Ar?Y%K~Sh|jdB3!QfaFm+3aZP{S9k0(oCh3TYC{k+p04Z zQm>O2y_6K*YY7Zz%Bh8xmaZ!K*)fe$mI}w_HkG42UN6*jtQO?~L=wrk;-(~UCY3O@ z&{o&5`Tnq$%#i;D+`UMtBNn%va^n=_Om-SokUi^?CF_vf-Eilp|xH>Ay*5TlBCyG^oX&f6Gxesa5>mEO_2!uim#peA%J>5=^7%yWb#nAe#oCVvE0bPE5ANrjudOk1we??F89D21 znugZPGHC4)wVKuSaaPY$cOTAEyHV$1QjV^FlvFk{?-BWReHRBHO#wk5aNa}RGKOUA zXF38Jk7A1~pqI>Ar6aY*0Vuv#gKNuTF8W@(j2$0NN1L#(gHraCf!mAR>N*2^4|6H$ zx8V`e& zyuBRipjV9$9>k5?+22(tn4=g6DFQi*kLzvfRn=LVr6oC#hwY#YEKZtAK{5<6l&$ct z3APS4)u@_jQIL(jpwoyx0D8qL5s?-@c-qu_%^GD$^|e<0M9k55Owf5L;m}g}X|5XZ zyGWGnxx~^1@hFRtQ{227#V!|%*Bbs>Sy_R3e#bVPEEBV-s;Sq%tP4eWq%H4%TbcT; zt2{#W&G!!;yJBK?q%X$LBsy4Rj>j41d-#QGpC3w}786ZY`vy*p_$h{pM0ZgaPMEzL zvgpv(xBdfUM;^m#_6}dR-x6{`>qBl?)}!6>JU#cr^N+t1-d|VC{{=8mDX|#5^Ib2AuzLXdLot%W9ig77^z)zpkhsp2Cb-jpDIodE;C1H*pnwXx z%KaqVd){5XouX0)gTqf#6^Wsb{tc@;*wQEiiP4v%#D^Xi?05}!U(^AA1((UALoQDOk+YbWb2~6=2n;aY!OSw`>=j(mg*B<`y7YswVml! z)`zrVt(F#GeW!vI0Kkaa;$Yk%9YmDSC%{XT~I zrbM}+h)2G;O+Ip+XZyYOzWe7kKPBXnj>wTt>2V5*Dv%$EV zG((GCTL#>aJrQuTVNmq~-<_)3u=0A7ZSgoU!ESeTJ&jZC>CyNMJ&puGp0^)nqTiD! zm}}fH_z)B^zdnUtLgM`}QwjoC=RQ|JKFlV?oQD2yo@mukYZsExR9SqpZ)39i0fS|c z9-6>aRQZc49~F=Y_CgAJOWs6(fQ=giK@ee9FvI03?owa9W)9YrR+)U_l9xzwtkz*D z@+w33S!qK~m%f{Cqj0iaa@&BFebzX-<5fdK=MlU879Sv0uwh;H8g)XVcG)s{L6&Q&;M}W>06}_hO>_! z<~L^}@J$ym_cbKIHmpu;MMcZGhz#HaA$^ydbhP+f*~G<)(cWo=@d<;g4AL|AZ;mM= z^A|9J3y&v{yc<+@96p0VxUzyy<29wu0DSFzy}5LOI_?5D1c!3Y>`+ju>WJ1lKW~#! z;Iq@Q+GlYU6;fxIo2pQ%X4CPcu-Guo;Ti(jgI`o&%W@1rOiA@0*W!Z?sKu(d)0wJs;fCML_# zMRW4CJ9ixiM*JU`Z`>pgqbeqtj(-MB+1g5)-1dn9ecy0qEIlWtq3~M%HnNZlRiNH_ z3c+VpS$^NkUacjmWbff^#bO?Q=5Jm~n-mPRH~%bCd30+3dzor~Th(z9xsSeQSIfRx zHhs2M&ohwxw<^`~J-6fBJ6>v=XYFk2I(5S&Z8i&|8{35s!ZW;Q1Bt2^Y*j$8D?^9l zG_xwhRB(EXWco<*w1BSc%cp;iV?mipkfB*g6rUN=pMD#Z9i(NUR2JWF&0LI#yyNm-9so+-G;}lzfl)+avX$PIYb0q#*fX zj(p6cpLHsCy`*`A6tAO9d%r4i`?#{{FONFsO>#_?g0HGd>WNpnswZEcslQ#DXL6y) zFHy2C$MXq){=B;X^E|36rD`oBImhL(w|Y!Y!MxgaYnRQ(1SkGalW4Sq9qJOrC|V-!onqFOczxn-!SuY^%R%w_H%PQ^Zj#hCb|hx7(fpCuL5-W~IG_-8PJ zTRujSE4k-?%uQ5%GLOy^FSoLW=Eq7nFxnRPza7MB`$-(e05E2OIv&~qPQw}s3^eNy zj$zF7ccZS-y^R!sR*A!Cd%&=5@ySiMYK5}p}eW{ z8kY)cW4a_U)~UvjA6-dmWL{_NAZt>1BrCvDr!MZ?)(Mpnz+?qTJwvb7)4ac9k??SL z5l^(&+s5;7-?WXeI|U=|4HdIYj6PfoIiM)@{v;*IKs?)R1r>yvqF@5>6{Mw5_BnVM zRZeI}9l+xCAZ;eT*`XVCp8* zgNK!^Iv j~qNFV;ibqTCfXyPgk5+K`2lAw6wGjeFRsvpycG_)81Y8N#25%vRc@l zAt4x2SkOCWbU!CuN9-?xlJERS3(GVUdmBsV)oCEX+Cw<;@6zc1TR(kB?Zz9&P$Kxn z)Sr40H=<2Qy;`KcmT4JI95RB$GW;nOk>6f`{?g07JYhG66M~+5IX~3Q8In5ql2%)t zaz!S%t?eyhU;in6i9ep#?msAWy2rnS_JNxrd?9~$`25X0Hwq`A>{QjJ!$>Vu6Ap>J zoJ~8N)Sj88*dl1URlHQ$HNI{7#D1?EP3LO!)zd!8-*|MDY+1{`3E(O}0HuBGM=fSR z>%i>VU1772$n5KfWpM_KwfT845yGd_5jU(p2V++8q6?c&^KG)fStZSPUk`YA@adK# ze80T~x+|8pf7>Zf^cH)eXpV6$IOq2~I&G-heUel3ZeT)bZ7mM+4L_}Z|>0c!QQ2!!8kl4LMULlcSUgGNN zCVEYr$ldJ%GO{zIjfe1iGfM~tUH$)6p+NTUn*RUeV^Bk`q}7voAngLve5QlFAwcu1+EH7kp}y~b1wvK5$yz67;Li1$i?kC_}JyYQw8`}MFgn{yaKrF zlrN|}UE=B%0mC+NJY=W>+x-uQC&AB)Lj(umXA4|S#IMo$uj&=QM(6+PgZ%5#`Zag{ zLp|l!==_R1YCm;qenn-q|Epy4YtQ=s*^X`wJE0j5ker+jR^<<#QgDC)#vU2)KFcr3 zf0J|6kGJ{*xxGkL>w0Z^iMKUVxgq};Aa2_-cNF*)&#$+SZBMVQAF4X=4RhbHA*WvS z&C6W8JZ0w}vG;BqDfN>7o?YUOY1s7j0c3!|vA>}EK3dAT(pGOR%})%z?i5!}H8Q_D z^yQ0}jAuinS%KA<(zN{^{sJ2&4n<#*uM7ki5N8n_5hAQlZAP&rRY}~FIruc0pROHnKl&f89nt@A z?MQCMh~)p9Ye(3>xpvfu{~E=9X-*4 zzP6hS!~UI(HjN*n&-bw9&Ufli;`))smSkTHC$Jc`&_({ib6F34iR!SGJ1>- zK_^J`q775!ejNae{q^4o^;>RXD!@A7_ytz)51xy@%Yar2T9b~nlGc8bR$goB7za3n zI&9^x^Z(#M&jA6$D;pG2q48)3Y>1fxJi*7LO=}-?*96{-P!`Kcp*Eq|LQDA7@|8x% z3qN?gv%tGZtWLtPKUh?qI;nudl7!w&57bHn+OJ=X=MQB@{F95%R!HurxbksZx;HmL zMI1k`Utl?mWLzU{pfF?JaFjM?iP8D`C@BZ)J85zVqgvKX}Frzzxn1Jma!~jx~dKQ}=)C?E33- zba;M^!T11|#B_tec23JiSX{TI3?aAuoz5;evgXoI&0F*1J|6hQVroSeh!HdqFIv(@p zO^4EQaJ`NboDAwtA}%4izt>Pi^A3sypiZ45mRKxYdv~X-u`a^67k6zc;-E*%xwHn| zw9|GnXHQGFe(Yyijp|GW&DKAFMrA@v{MwZUN~h(n2WZ+6P9<4K1zU{2HW^~>wfSy} zp&Jy>k^D8$4g5K0@dv1kt3(PDv7sfm@gbbSZds=~6U|5ZM%f#YuxH89uoK6 zx~H+F4K4han~I3r>nx1?x51Xz=w{zz#pUw)ykS-R65;o%KC41p`UDST+U6k5_-Sd6 z1^jODk59d*2nPYZ-$!C%^FPf|DHN$!g^^FP=23UpcV1!zw+|=u8Hrq)QfsbLtqJ28 z(|QpOZYh=_?y5_Edi|yK`lX#`Y-B>0sthkqwmv21!Un(hm zxtsaCISY>%nAX?~-ATv(rn>JDN7sG#webSiHxY^RGhO!`y3VP;9UW*lo{TVm4G0uA zuQ#uiFDjNXdc+&7`X1Q$m2gu=CWfNV&K2c-tIDCrf_(ybv;EAA1W-%@EZWuP|P>YSZVp=6*rjQ z=CnU~Zx$b2I=1I~T9;48DK9TGxycNv)WM__-_FwbeDaw(;$tyaS%uGpFlr5cF_014 zo&uWL!ckHj0noxNfpxXL;zix#Iyf(v?-ECy8%e23u`3qG^>2NchaQ{gD7W095Y~A( zeCvWM?25V{3muJJy1+K{A0~)toyYQn-n8E;iF{ZV01MS@vVcl%3Q*<6iJbJc0{Ff$Ff zzW!RZ__$iR|2KBtCdiEtXSo6RuYdstFhC0sE4m6%v@g^*##~9>7BpwqFloaa-HYH{ zT4UeA_v>+A0;XRD^!f+S$NMA&ybE!R4DPBtxgE2QBLIaLK(ylX*fGPn)q^O8GpBtxc5-a? zx0#psg>tYrZ-%uFbhM|HiO3BV?b7c!89$q-u9}-z9Y{9xj~Dp!Gqx@!N#b;gP4*vO zrg^W<^R+A6^xMcBYjmqX)gU0Bnnhs{4z(HJ9)GLCz~(pp?q1cjx16ZRH(>HgkCXs&p;>=f^99a!L#QM4N-I z>B~2k0p2Coe~hpSu5t&@QG{jj-&2Wt0(4aL{(8;b4iYVCBKOY9M=R<|Rmx7M$@i7) z9Lg~f_@e)IDDSvzb#>gvv_@8_%g5^(7?aaMX)__OR;BP~ojN{U!;Y6L+l?=*t;Bx~kq~w8SaF4hH-7WvQ7&$qz-#$NCILeSWQW zJ8@=TPNwZ*^-mFa;eXF;w|=LxKm|4Kr56z3eIf&P)J}A7VhWh&Joq~$Y-$a)`pCuJNJw_;Sjs-FgKX{m3@I!w!&M6Wk$4sSnG&Pu-R*tNp zf~Z0o?u@}3BlixcOm^y>g)L}M zivS(Bo!^0u0Lu$miGWKmBIJfYzhFOj-Mf5J_2{|5yaPJ&4}wz@Gs>=RdZUz?mjcW8 z?0-LFzJgP-)4XP(+#vrkS3xk$BuKXXp}s|ds%Z9jy$Qzo^@{yI%PfvOgkl;@Cr7RJ zh7x!ik*CGpV{_l4IoMIusYI?l~A!Q!}5l`+(<_a2TJ%I=G82!pLc?D zlM%iQ&5k#*%3KgT2pve(>zlqgjCFPASEN=<+9_?RX&#z`{$BN%YvN zjnBo(54J}Zxu`Wdg+}Al3fkDD`Oqoe#ZCr4%bIZuyOs3>GNmDd8xI^ArCy?q?{G(> z-&Vw2aaZBk(xb0}ByS(oZC)Km0&4(t8^19RAUn8y=9DvskEO_Mx!DPf>N~0eM7;?krw8 zk=opY>`Gn)N#_nSL^6F-4HnoEX__`wbk1GEBz7vfxk1lhq~7}2pUuv;D&jcZl{I6& zuK@~09^2vMsUoy^DKUEzQ^q8Qteqoyv!638L1&W^TODhzA;vJEkwW|>AzY+~k7($f zoekg~w0dH&Q?u3X%yb*Gvi-ot=iCa{j&45!yPe;QM)pTSF#r;bK zalY<;Xx1E~stqnGM%&EQxkuMM*;rN~It7eSL}0l)iGqG_h|C@aITq(J)pD4DkJhlJ zT{?|<0gf0p?Lkhs?GuLwmX&br@3(r~p4yVOMK2uZH%&P3V!U1I4AVJMTy%nusS;Kd z?b$kd)YI9lzD{=ZnA3v?S3dF)4Y-f&NGmEhDr;XYW)i@#q^?QJ`9~n70Ekt6DSC5_ z2&cKtLddUxYp@+`SAjvO+r49Y&5ef{v5U)e5y$~Du&WEtmqjn-NkRE z5S%+BVQK7w{fkS0oYy42BZsc}XnFQ>+(XBl@lQPhiPdXy z>(}23T8(PgePPl0J$)?M8Q@&3f^XW|v6xp1d9w<*W$vDac-FH)3r#&*a&x3Ys-|}f zY6m7KR)LP$JD=2}l}yKnCq*oY#+@m^XsAwg2BqYt<}WlJa#t~9P+!cZJk*j-voqIF zm2;(MzgZQoIg^%pzr-0CqV|q0zxR<_iK4XWRU^(?Ze8WPncMBSfqjF+4ex68bxjBZl?0Wd~U2hZKgClvQF1)-|;N-Pei!C`UzL{#)R+hd$tc^FI^42#E^G* z-y^`05)EOUb$YuEjt2oM@?zA9RhR48B}UQb1_Ktlx5d4ipD3kTjBDM>p0V&KQ1dY| zGVy=p{dnbTvd$}j{}udG@cPez%mI+2VSVpt{Gxyi923%Tw!V8>g%h_74i=;0;5Z@R zJI2e2eS~I9I8irWUhX0>6!7Fi!sg}JSvPpscD4dGko6Zg-Ag5)@c`2yc51?e-IgK7 z6ms)jN?hUwTzX}1tTEDq$$S35>8X&)Jk|Pr ze1$O$C8l0ipJ8P#*!idSY{p6SkiDOC6KZ4E0-lAa0r5G7t2Vc#*;>*_fbMWMNj!^w zkf`|nM$;|0!rmm$@XiZgeS=+jYp${JV)hQ6pO=pPn|-VQIFDsDLt zu{pf6#>ivl{VfFr%TOgN8&5gXBe%kBwnX+unTa#Vv*(^7*{doZD>Wb$&lF znMC`56efMG!~*DQn-s`8=?m;IZW+LQBfuISZF`0Px>2;E)#!0%S`qZ(MzG8tnoT2| z`K)OVR)%ZsC(Xvc#*V%f{>r2|_{14YyuAIQYcy=SsLwRSEA@uM$9;^Ih|f8ZQTNkk zN=gTZzm{wSv*kg``sN1@$WdJh2#AR8LjkZkC}Uq}b4puM>_bd3_ENiAxqYYKZF0dG z6({+^Bl3$*_!l)tBQ}fRLlazJ*0a*M15e`x&NiCpAvKQRcUYg)uELgFMRHGcqTf_) zV)i&bJP>2>wEb3YUKr6RyU^%F)V?&g;eg6N5-i{CFA<`!E1-96@WC#uUTcgj?Ndw; zW6Z)jqS>UWufU;N+LLCf*mUbojzj&tdH#g!@Nu7>%9Myo69WzxMHip~ubWtfDQ9@E zzt#_)=^=cp1PM6eNLjw`Ckz{NB)izNulsN4fl-oJ^N{C3#=)@(|GMIl$;R@a4Rg@r%BesS~TGHU@Gu zNZZ2_oWh!}mzdX8 zcCEu{;m8~fU4^ZoL>o80kbuOi3Da_&x@U%NrMgq(j`tshZi6Xph`Nj4ykH!Ngmkde zKX_vL|Mn|H?|()a4k40fx2#kin_;mHs;^D(*xZu~XOIo|}G?D38_<|niq6_;HI5bdj z`@wfs=s@oI{A+LePgx8| zA%5-J|F7ig*U0=DnO`~ZuhYS=bJMRA<$rUc6e~qd4H7BhlaoHZOU?|ZpuOEEZ%h#- z0-BFG%kw4k{P}hpdByKs>mWk^HZnd12sXPLz}jTM2cH4u`^;lRX5m`^U4{SPS*Rp! zN?54g-2Z5$Wci6Lg~~84rQI8sOnKtHka*N|^a*-wWia@HpRs$d|CRQ2*276wb!xe| zEb$fI88v3gir|)TJj7ZEV;wX^RHGtP5?q;FJt;mI%F+v6QaK(sNj78RBfR+T;gqII z_W0$e^nfoQx}dHcR^z0UJtX8JD6ucKU!n1@&Dx=0*{eDF&FSY9x;)~7jwF3EiN6u? z-Tmn7{3b8UlbeXYO9UD~CvoSwY5semUV3lDsI9)AJ1za3q|EP?^+^VP_NHyH?9lNt zMomEF`EQwSs$`CR@z<0i6EBwj?NXbw++fnwNbkj?7eUt?qvcYMFm5qR>hZbh?sgHSRE^#E75b zeOB2ULf8gmv(#wLPb(kYE@#v{TNSv_Lb>rSPWEu!Fy`jqRB)A{#|=?NchLeRb<)kI zZ6LMB0$y2~yfb;mcEqT=2EBrgeZ6uZc|Yw0XXwq|%^7pAC8wUqBp%{dKQb0{WaP~un8f91m{h@0kWz8AtP;h~D zQxP`q$`WQK^g19e1bPzofFji-LEs~S$=eE0Obn{qUy{)q3VO!1GqH|3gPxMo3^k=MYTw6E2XYux3TBnD{q3<$D`h1SuxA>;tNuNL9@5ZuaYDk;*H_>hO zPqYk-(p=2rg3KE7R5X)ODvI{CHC1a>Oa7rNp;0ftxV^md((9nZ*?I=a#49T>TK^L7 zE~21~)X2HJRR)xm;|Mp|uA+#mrY^`v0^|4I4FxKa1iEKIaoxn5I4?v>CP9asIf=`$ zRM0&OZnxk9d5sVK=R-0l;YIJ}8jwX9veBEsI{n}|=8p!j5EF1XUs?eM<;K?K<_OtW zzx{9hYXlH-Ks11vG*K7?`!tFY_=CqRG)7^u3+jb;sr}%QUFFuJ7C!*E9lwVtbM_6TCW|nhne8oL{-#kB`9m-3RVuIr`_0A z*p!ZTQkBY*!nBgI8Q~fe0}#Y0f9b*8=s-Qym>Z)o7dunP`AG;dZ&=ve(;EoI^3PyS@Y&;dFSIZ z2A$H(kc!>g48%g}RZAun4pl3nx;7X@$qO^lJ6dnzfLBX!NmZ#Gl~_M#9n~;*lYyW z)+CxXREZpuV0jFxp1Zx>LE!2*4G|=K{aM0Fqv2GFX7+EtJ^dX>wPWBtE1)CViTnHq z&*D2QUlKb&K@ZE;e_GJwl9ZS;I$rvhV&#$+<${626)~B6XGi+l zcDuy~0cRfK=g`0VoN1@ivmZ|kj%PIJkJp@WMGY}e`LM4o2$+n_5-lDt_3VnPq2s_) z{8!%`E^sQy`};qbGkH1D50Ny0aOTP-x8hgS0Ao2M6n>G5e}Uv21Rp0C$OZ3RV2a5)ILF>Ay=Dk^1e=!gK3^tWL1#Ah>NBB?+tM`m$cL{ur;yez(Y1hPM zCd@f?_`h+R;OdZ9=0JB4h#y_&;9USUU*rHxdRUl!g&ZCaKCl-s4AIFmN8fjnKD#^v z%ZSN&xp5fW`QJE00EtP)-HQC5WjdE3MYWp6UjD*$dBVPWA<3t!rbo7ZwelseZ`j*` z^5W5}q_uCcaB4WYm9%meFgG2(;^*>%@h??42W!A{c?i(}F$MXa$~A+h3b}}TW$#*7qg0UtNHl46<#e}wWSfjCDMFs@ ztU10rOF1Qb54PleO1D4-WV66i_LBFh~=j5 z#OS9VJlV60`e2g8a>3KYNVp>nAY*2-0VA(X$!PyJ>NbCc2I5m#=2HHZXW4_EZUVaB z3=thBZE?M7Elb{QCptu>=1Oi0T|&+-bM{4o>NPhRh-TXRwUYLuoVi{oCsNGhq1tyN zs$W;5MO0%09W==I)4wUNA%P1b#gCuFw~$iRDS)S|Y@cj$Joeqebu%xpUb}eWlYKYm zuKyTVe!6%_7PTm=YKW)TG#MJVp?9x(D76yA{SgLUOa!e`)S|V*wXO$Fb#kYpwvHC? zDD}1?1Rz6)i$z-!%9A$LNn_{1?#6xBJiTwO(hSYKpLqHB`^-fwj>X#Qke>(PQDcd&AMQ9tVqrle)CXNuIfs;JfI=N@Dl1 zwV)+$XU_p#d188_+o`UT=Wl1uuMB0Koi?ge>7rQ9#Q8QqemCQ7DAO(XsEZm*VtA4{ znP0(@Z^wbfHRv5(v_S_`_d06kIAJepv0v+FMEeLGNB1prBta@6TZdvjBmlnV>cq4w zj3rGCAvW}#TM_It#vn!BtZ3x3tbGc&uNaAiFit_nx2>=~4i6QBpGSaJ>C)zu@s^(XJi5 zkQI2JApD_@cL@~1wqM|;<0Ph)PEoBHDo?8fJf4-fp>m%g~ z+CI6iTAJvcE}IRBeQs_&((^0|_KW_tQ}{nn3@?#j?kq})(WjxNLzSPmF~4Xy7Km`Z;G2rn8(-!Ej)1Y3!G-nc`&D4z;_2WBT=GN%c-tP{(+$?u`V@kaoovC zsgL%lxk|=0nvOmNWe$TsX_AlBlkbeLftp#JY-XbdR1pHD1D^r(eyxMpb(&smWxiMM zHr!Q)cen;0ed!48M&=OiJiXz_^5qewJ!@VTDa|ae7{i>*KeG!$b&hf#ac*W}Ygk^u zIE%2yYCe8$QXLXuVr=^r*WUf^{_UQIEu*7d%|diDr#!BmZ^x0R;wc|R+UnKIx z8LPss1jZv{PR=^(&z~Fh6bjBKgeJn__%|P8@igjaDocX_7sg5zy!P)#ReXyr(33rK zWqGwXs8O)IUVkgDX@t%v((-8kULWH3N-*o=@G~l;%1~}3dJEVvFLN}C&pnbqpL^sa zN}Az-gp8Y!r)@*b{6O^p%*8YO=!#BZx$$h1CDZ=cZ6 zVPC{ug-XEbfs&j+y8qUg529K@+OJ&(J_&wF<>yC)K0;fKePe4je5@##xEy)*wdV@{ zk}3o?!X4khR(ue2brCjM(9#c{5>;j<$Lyp{+{bTyoaFv7l!ngM9ERnC7aSm6Q z9{N{(k~BLfiXD!q;k$R02U&KV)b}|$gBd5#ScyzqmNK`v@t~VUzr7WuWo{swn;O@AEK(mh$gh^|BBMY2p z(k;w}M(-FB{^&6!1DBw8S@u5|$MC&qTaeHh&zUjG#QR1V_ahCOm+GaRc#AEM));gp znyWPEs62<;5vw>^KnmOGsef9@io#GBhS3gK4HxgyhOvqzNJGB!;q0_7JjX#F(*VpRtUSnK^qteZS9h z{On9VrP^YeKxulMWydLtWYbk7DZO)T*F(UQKZ&1{Aluq&OS z-W!3f2_L(w&VmB{(fAA>LzQmzEAt<^t85E=LI|&wLvIUFR*oUr7sMdN-}WPm_tj~9 zg5Dv%;1l*hGHWP6o3%hdN{gScPCX3>VX$N=gNt>U_x#z7o2iKo)lV}wYaWw2Zgp|;segPIVdZ506+1uQv>k)_j=3XmG8X%c1tBlH zI+n~dUWMCuM|G%m*Eh90wOg(#?jz>u&i2A!hmIzKNZ~Aw?#W&GrTu=8V9#ERGW-p0 z;kY=?gfJSA;+We%YSf|F%*;34UX1NkX9}DPN3!Wv4rOS>j1GeR=m!v73&rS0QY{Q1 z??r(kEDpH+B(^Ry2dJv?kFlH5Mi~*v-2~k%2vrM9cX#!7ns#YL2b5DIz9f!+tgJ}( zaq*T(oEwk{&wYyud^@A7t2}4+5d1=Xp0sgLz=> zZM@~9(c?C3e`ZHICxW$BM|&7@p~g6$gJPN7hYw80KU}_~7ZJlpWkDXTXbpugOACRg z$R5Um%G;Xg*+SkOQp?})AcE^nE7gVbkoyMKuaauDt!@CP`UL)DRS{t#0N%{~M&PwX zcihugTkNd$9|&&=+ExwA#D|OhkuoA`8q$nS_G|?3>Gmu)n_6urou;H=(lcsR^mzfsnGHO6)3jrgN+l-n{@q2QS1{(hbUB z&!y@lIV20+fI#qVIWARuwTweakDS!Qn2cRcu8&lw23;8ZOZ^(%gKKrTQW58zv)Wnt zltvmGV=~wF8jQJoC;-+Jy=S^?ZGg1NK$3|QBAkg^kW35!Z8Uszd;^w+_#IPp)=S$$ zwHDr8$)3F=O=3BYRYK=zFP+pW@NU67TI?8d&L;0-kyd4AIAY)Ng>S*$OR{8~woSP+-%g(W@c>;z?Tl7~cvZBwZ zj0-L7F%5j}qq^sy3Vw2@sc0<4qKoO%)74k;GAZRs`8t{5pC)taAz)1OD=ym zSS6Xn##gF6MdMTu=E(51+3^lWx69U?l$y$tnMN!2xz7%i^@IKR+$dK$;iU8MH~Pq1 z$HMF2lv;>^+}5sV1@X;<+uI*#AEPy_$+Z+@;52qU-0F1@GGeXa-w}E3u}4pRQak>% z_^roZV(U&o^K&H>RJn)@S}~BDSE%Nu^R5y*F8}Gar4-Ex;>$06FB`Gbcd#~p@n+OS z0(I!nl@#8t`@BmfCo<1q;ANBdw#wQ_Bd?s};4#d)oeta)W^ElPKn zI;5I$v{0s00MFcMlf5Yc>^3H!6Imr1^qYOn{ zXFjUQ9MuTlkSgSeH#*6E&y9G%XxKo9A7z)ndUWF{)>lI%$wpReVF=#sRZdHVg*7-H z<|hu7mqMv*voTxc-F@$HkDY7_Jg(kSfO|jo{HYYH)ui_f-9iHb%z2m)5??Zv>5~1L zqc&2`rj2r*%3Y-~E}yTK$HgNm_IJhWo<9(s?G^Von|zToa9`wHp~2y zLZ^Q*V|;viiuRfe9hw615LlOmf^Z}l-5>&kxR{#*`HeDSh&p`+7M$~A9;t!p5DRN5 zCXJ7_d(~#rO<4fZov`bWsZxZ&b})qC91v?R!rCphZcJ`7u6p6KehFN?FAlEL4E7bq zPzvL+qg1dV5?=1t3R48SLR?hxjq`FeV1wHU#9wg99&EVdG z^m(QblA8i4F&9Po*V(S*F*S{|{Q(*WuFlYp2gMqQPdg=S+$Xiq0NBYH_(8B?Yh9`jDUM-D|e6p@=5tM53ZHYN!lI} zZ{d;HBN-}>TX-MyL|e6$6;D80u~A5 zX#tJ)Ux(&S>_&?k9>64rEH=m~Tx2sE#ddh<5l*_G@eh`n5mBWiX>Ynzs^<>Oswmot zU6f3ju8@3GQMy(!(VvRjd2#7Dj$ivzsNoO@Z#4vRv7Zq9qcw*~OJ%g`AD5dYtm1^9 zYMnDVXL~MAvqSiR?NsnnnJhx(p0NC#eSh@io_0EE=a(qlV?FuA_f0Q%$R$Sed#8x~ zo+Q>S+jQ4#sX!%tl_MWL&js{;%#=Gac7`&56!MtO0I`a6e51>5UNfk{UUl z`YEWQhRnikMUR+f4MDWp8s)CVs?#irSek{}0>i9Vu}51Nr{!{aaHKJ7maFHo+E0E< zA428)LUjO)c^+KuG{JqOFAuxV6o3)Y79jMyYpoiPJQ~qBcpMCFlnzv}GM}#4V!wuC zGUQtetN(^XTsa5weQN^esnP3yH?!CH5~;9gognF_5cUkIfxMr%!w1c7qag_A{etpm z*HU&z%7ZEoYg=W&ykAf*MEUghcTC9-8Mx4Y*;`(T?U9+&c&5E^fm(z|H*Ba?6vC@t&@0J&p-siXauL|pRiafb|*~~)4mmYDva3^TieR)+;x^#5{vd7xT zb9Uw^xiC-U?cAy9_hb!ww#n`hKKJw~-f80y-gg>+H|<(g`83+-Das-g4}P zLVR7D!7~QPq28Fx)q}+2xS$B$%-0rVz#_9JeMq}uWjyf=&NyjCd7kQWaz-|CW!S$y zWc8)ZRTDRshRAH0Q*6ZQta6e1U*&xPvu~&smDDBQ?Dg->#~LQyN9VR#Ck$PgJ;yIB z48HN|T^e)BK_Vvm>{P#_`gTPA{I;(bhL0F7T!s~v&oMMXL$yEM~(-1%#NcQb|~yJ z$E054Kz5=hv)bGxzP?PI9C!8#0vHZ^H7IMott zf@pmgknodCqt>JWeY4OJ39k=_G`;H!NA%0I2W@a)5kOmsc+0z|+ zLr$xkNMg=hMHeSc;&(z@6Fq_+?yIyc$`kcpu3LUuI%R3uY7wd{kuY3DUXA8y5eE_P z7r}_E6Jw~s%rVlv8g(yD{jQA|&`|oTkIDb@I`+=_xijN~0=4-*?xIM9Op}ykik80R;l8*YF5lgbSR*gZr~Oh9}u; zF;uKZ?Z_5EmLm0iR~3pG`}<7t9!$lyWX^5X9XD67qhA45MeAcAx5yPt&t*_{+y+-&rN~E3BE@YR(T|59^hgEhZR`O zB{}xwb;e}IOBdG*Mc)-gdJ1o(t_2_AKDn`i{Ll)Zty}B&{x=~gq5tOn&F%0>Qp+JI zAIPIHnvok%yc6NuNQo+hKW8&@F^Vtk8N7`g$Wl9IVJJKFd^|}cDERu{rpNvED7@YC z_qhY(AV4u*d_rEjNIV8$JzY*GoGFt&wz9J`gVTLNW@a{;!YCtyN1TqIusANdH9qo7eB`;NPxIEh7gSdk z|06{o?GC~zdC&^AT#Di;)tmwSV6tX#sp^lCUGfMq7n>}p%(*eu)21^+HHD0vN#e6l zBZvL$g5o-*pO3xmZ#W(pveU2jnu>LJfGIU>&|TNZ{};^(AFBVqwgQIx zzxosY)w%Jno)*yV^RJ$ke|7u(s}Jg59b*6LolF0Jyr*SgxrOHkw;CQ2JO&DZk>vM_ zQB{ta_%Sqem7pjIrf3n6?ss!AGU=S42L`9d+T1)n-^PdTC@tj}RX>FN^cS!mamZmk z`;8&{^+ZzbC(=?fg5CpH@&SFNKNPZZw9VPys70-CE(c)Cvz4nSUU{5;Wk}uS?sX+= zmz-JG6O2uE@0hdLmc<>7)HZ9gfwJ;p1+EzdFh>q~)5$nM$Q){LoV?T*%F1v_3QIa{NZ`^jD7g;#b!5MC>E>$Png8 zDz@@SQeoMOshV@>fyMxM7aR2iR)8{%*e3N1VSH*cQIn&%65<&_P#B#TxxxX(6oJ{5 zxQnIp`_6V@ae)?g@Qo_6^Gs(a6VNjHfyJmr(L7fU+2u?!ytG#^iHo9biVxrJ2_mOoyZZ3|6PXdv%iiM~IX z!(Xzt9+?AmQ} zv3-J>es5wzLJ#$2M(0=?7hK@5YeXd98E)bX%;&NeAy1Uh_w{{bc0rYj&NEi*Q@x3Y zsp!_4DlmbFe4i*Sc;5=9->6nw@%>pAdfbs&6OKlG;o;HXT%I}45w2ytPo6u?Mlwwv zkvuvdg6hffiijwxK299pdL`KfiXPM47I|Q(%6_ccebK-u*HQ4{ySL6O`KR20x)iyI zi7CE9%C;D+zO&emY}ye}b0{P&S;BjOQo=OIJf>q*`&ya%$KG+Bmd)++A;mR90a2I* z2S1-Ah&Gs22kq1l3onz8neH;@ofpoG^0htV-HLU2)BTmNN-0`ltZ#Q94J1Gsg&fSM=D3#SiEWFxms~<4ijG1lGhR&F=4w7GPA4`9<;nAL#d%>$5YweW~-G_Fkna%CvjzV)ZjKIC{l0U*Hd zAB~{|rrO6gGGSprf>N62se|Ov67X1ie6!GKw4kG05OxLJvqmPL@`ufLMZm3B0cL5J zAht-4Ql{KPcK`9;%zOX4dGo*C|L+B<|8+k8i}OKY@mQYxgxJSOu090TGHPH|@OprA zm!k=rnKU2(4Fl91a%MO9^?+;Xj#yoj1_0@`&UtcrEI;NH5B_wD1ooDuO`!m=RmZ7> z(|}(RB_`P8hb~J5@Cd*%TD&2DKqZhsY#e6Mu&U#?#n!wTt6(ore?ZjW0V!7DWjWkP z=20K-WXIBj;EVejHF#2hs@9$Fv=;Io9unx+)7DQN5CQe=*j=QV#Z5%vCfbrQ2PcR> zy$0tMdoBym>4=h8e!M=Kx67Ncp{K`RqkN4WY=%wKD1vZpoIp;FR1PY8ya&KItpN7h z3-ZJ^5vY^Dm(L1q1lB|%B>mq?385d-*iPu70azlUK1c9^xNp|gq%k&X<9I|9Jv+@% z!$6qb!8iBu^DQy1Ei^bgmgO9C^2;XQn+B&+$}-D3CV}EgHK~U-w4IyDwx7GtR&At7 z8(jZ7{2c?>s_uA=`fa1m!%%0l%o9zZF^Tu>dbf1M-*guk9`N1j65S*0TAnxY62tBH z7XB83J(M+uiy`mfyK$UZ>c#4nV<)XCtJJ}T#beB8WbX)(JXp`0MNVehWff@vPUV}sa zgxtd4x*@RNitkFx7(sqp za2@<>kjr^B@j5~t$%kq&r=`=$( z8fkQHSLb%mZ)-`S<;OyYb>}V=2+ZY1JcIWFL5Z0b#dRDPXPgcgGkb59k!9A0cm^I%LhpTP7wqNN|U#a#`b}R3_ zCdsqEPdxZjsK61qQIcXm+3{X)kAqX9V#tedtL-uYIY9-pqq5;LmBf`FRoZq_*0$p{ zL6Pq%dDjg;p3|vk-B|Coi#fJ1Pf_l(e;J~p(rna9?*64=xIuVl&z=HBCh||Agh)OX zXo{oiVg*-fc2X8j(jt)1alrk0gBrsL9uOr+Gg)j~;^vj7fW*2F`11Fezx@=-`!c@q z3Pe)R(r~;@`M|inn_4{!(A*ZlZ4~}Rex6GKMWE>+TS}!W6A2wf@t>pSXaI-q9{@_5 z^uoJ?=puG3KknrT@E8{aJbB+wjJnYneq^rXV-Otl0R7mShZErEz5n%%1ZL1{aa|=D z&E4KjTDg?K7>tF@!E_Fuj2f^%uO`!YCZv{272seD!J5ptkqv(#Eujqoi}G6+4j9}u z?HRvheyTcn^?Sr)(yGxDy$|NFx$pj8#{|N|z9I?u-rEd-dhhC7eXh!HrFkPCA|z@~ zlWL7=KC%B$HpN%6&@ogJJ%=0SgAm1Qp6w-^&8x0LOI2M;4tdC>2Ug8{W?|~^Q$S#} z^Pd8v-aufq_?N(Fc46@1ed1oeI&>{)447WPqvA`BVog~4B3F?z(3&+nCmc-2wC0pY zQ=@0w&8;~~(b}SV-6P8lPJQi@>A{D3wSyNHuA9^>l zD4u-$dT-J96bq_v)Bt_fp9u|wkp^UfU1ji$+-q!yygts}M;bm(Z;P4QI_kDQWT6yV=m>$Gq+r1=+@ zsHmM@uWTERiU>4nbzW(@*qc=?A2;w}wwoO{5m*s~fO-Fo*k-s3B}D9`?Ib9$%j=Ig z%l;tf|J7_iFjZoDxRl26jMA3IRoRTm+0lhv>7wXHr;g%0BcHN9^~Nf{hMH+3wQ(UVKF8wotM=!s+U_NFzPJ zI4Jkpm~k}VA8tI7u)4av=fy@j{{a=r+dcvoq!yK3eYY#0^jXygtdqNoaJ)HMWMIwy z>mqDa6$JVp2F2ja$p{XkJ03PZAO~DYa3@S|i~T>64juUS(xDxWp1e}p>>O?7If$vz z&*dNgSA$5v*0ciF^e@_I<^Y*(fgFrCh6x97AU)8?q<)FOmCnfR)Xg;cyfZ`SeO14skAJrX07_ECq~EBWS&QLk7t>w`zNMi z)b^Ts4`Gia&A)Nc^Ut@I7^R$UF;>N*gSym)eo&G2sx5{Zgv}6w_va50ChjSE2T_La z%3dM5IZq?^@Fkgx`{@pC%D*iH^bM5qCVMot_1&oMq0<+XF2t!k>vABeG1!(QNCP?l z%f4(96cFWz9Yk3H8R;o1X4E&b*Z{ImH>@Y;+;r6*c5{8WFyDqH5ss2CJ?SleH>0_J zL@tU+Z1HCmhMuEVdlf3Z@&faSTBmBqZhcIX?tPtQ9TlIW;bYo#GS19GxjnSyXwh8X zaJeOYpuVrp^2FO-Pha;IExJW%s^4IxeqdQ8BBtgKkg))UOzlyEd$3NrAMY3)B65Q? z6d)vv+(g=qzgn` zS{Ok^o%rTMzxwPv&<}46IoCcWrqA2gSaYDJyUO%UFw=LRWuIF2%&8)4uQg+z26`(9@u%3yg7E8rQg8p%@Cg{#!OuZ< zZ=N6xA>fOJi-IRk+u_(0n!@aAJ+~QnT~$!VcaypgAoNMf=M9LzEa1VTJ)ryI0^S+) z^z@;4GS_J<9TI|Nu+R-jExJ%6ctcGXa5>VdTq&A7Z8Vm=WC5QbeOr7Dj9|E#;1Pum zAz{-h3S4amjx29#y>jIt@ZBxV2(BD(-!sX_!P%-w;NSSSV?_S{eusld|CuzN08OfG zKr9)PJaIgg5f$)Rc6#t-pSdOU+D_6Kh#ay?AXGDA{nQ{$@L&SDQCN@YkNqVQd8z(9 z@XKL9O3?vS~kK<^cOSqwe1P~=r=nU58|Jm!_272A; zUL#yaz0)oDGh0wN(a_JW$cg6Lyft@Y;ik6R6 zyw}Um%(XZEEiv)_u7Wqew|@Hj?3UjzDo9SDch-mzl%aj2v&abAR#+A<%S7FuQ%YGF zs3VJ2X=LKf&pOX$MdGwo0)}^Yw9=<+dv~2M&Gjx<(aC)K(1~^v7r;#PF253Tk#GbJ!mhZ0!)YX4*G*d~x3C z;+q)H@+TE~4{}yWFamtuR?thA$%Ogl#}0sq<{Jm(b!X?=B*^4;-uYgX zGV!EzwRmlP!~(6Ee=fkg>mN_Oow_q|r043pIBK#pV)i$*1aT0}zPt!}$9J(^fFw1| zYcU!=z^=)XPX#GV1T2dwFH2!Gl4M&!rsMIR9eWR}ZcHU=s9(548nQ2*9+B!f`bs5m zKGgKR#vSscCOBiN+xZf0tTUO@@`nW{23qaRO@4NjN+ zoHIO8U0UamBU(Im>sAoSlME@6`4X|*@0?@aG%=bdDw;k|d%P&Mcm?{%acZ++BOiF` z?#iA8lJpTA$?{4ac-Qg|{I+C(iKNRcJT%&mLc#kdZLAQvS zCaUD!*V5-Hvd+~ewlD=bIs}BWJs;EDJ9oIkL&(ygM^j&kr}+--X0ApZYLibAc3U~S zgz51PyQr}$2x*#@a#3hT|K2a6=yG~2`U<-_?6piF|DCt|G0yJDtdJo7-ey>|7EmlC$V{H-uWN?PBXA{7dBuv7P6*^Xt!OD8=6Vk{i4vhHW&X>s8PnfRW?So z(N(3VG!1F?L1(SPBrHG>WbuBWd8N%^@azo1er_Na`Cap2yBU{>1tp?1uvmf_x) z)iY0L9m*!cu`jQ|1@FHU89a9=GE21fvxy42l|#DQWL=qS?Ye3bSm3U7nDz_->9@fa z$y^iQ59e8n0{i8G)nWAKSial@h%MT93IJcf!wG`(*JnFgNaGmb_bDJ|>G3!C9t|6R z)7V(o5NKas-wum{AULj?=Sv#Yg>-=k2J)#7uYkft{pU{Y`$FzPnoA+R18i|ZHm&A9>aXrKZ7Ay~Wl7T)wBaNq+kA1|cwkN#Y$_a2 zhcxq={fLwj^nWZVFze4)mz+S4<^Y8Pwqe_2(zq@7ad4ZQlOA~|i^qECjW1Wy< zb`Hy21fzZkI?Y*QA{q*9GtW&9S(M=aHB+j`yUBb03sm~v6iTzPi6~uiA z$&KRZ=+U4?+&#qJx$$bYZX;teKI~J?VP}#Wu24;TNEmy)Zzb2=)UB+)RKKaLKft^x z25!uEaCFHlIk%NCvYXadj3=D$vn~{FQTr~Dtmo>hYyM@OAQ||m=~}Uuq4?QAwrE;Yd#$q>}S+1tsHMM%RcSd38p(9)mVZ<-D~_+6c^vrV7w? z@Co)2|Ic&jzSKntNCCz6Nc!_SJvj=S{@1hiBgG()v?V%0bQ+EOGHQS_NQEc%0dWvTx;ZRXF4^NdS*D0AbJP^v52QC`@`S|K7 z1*CgLh2WGRjW#-kgj75~#crN9+{95FsAbUQo6i@AS@eLOh59-}~gs%w)Z24`O#>b$G~l=y;{S**Xy*08io*6B2N3 zr_9=2JCm%ERb!704{H>6oD80f&x-wIn`J|{esbgGy!6}Qx;IDTEe4lbPfnB{D=Rk_ z9OB!vD5Cg%_40=~lqajhs&()lc2Z;>KE44yGNAESPXKoNpItYzdjqjAA4ZoZ&#S#r{6gFZMU3^A1HFDD#p*#Q zc(hQ~j4f8ri*7qD-O^-yzJ zqfh`3x5cL-JT;gFy70F0Pv_&sM<*X;)rTI4Wc?J1kyr1fq9mahzG9}ut{{#BKBqAy zDLE*A&`~Lzul*LHmPR|)07LwsnAl7d69DMmM}XqGus!kvS+eK|@=l^i3rkGG_4wcI zESfA7&+Lz20c7f_zRJ-La9htRa<6yFlM2J9B^_EZ2OKbk{=sSm$??;16P&hU@kb%0 zQ%?(xt*_+PxEnw8M7`*63hh%mcE`@_tFOA*Jm%TN*ET=#@WX|t$7V0bU&%FeHxZNW zx$Pfsx_l+|QDUK&p}m?Dyh{4d#3;C9m-_=^4y}A!b+NbTInp1fT#A)Hb8e%*W!1$s zG&J>tR-v}KdnARbQh1Z1e!ZBwci0q%@jrRN?SUPtfduJphA*%EDnx#B8=Hblk&Swz zw9!emeN7b%sY^z;SSE2J9DNlNv5N zyjh{+j*yX5!RaPH7B z7@3DB%44feP#}%wjrOLl=L=vpqxZDSV$msEf4A?iIRT7zDGe9nbN)jQL6L34y~?)B z_upI(I)Q#?Pc=~Xj5z40TLor)^Cs=h?6#g!s&CMCR`ckLDRKNFdIuF=vcEIQur{<#9%u!KNO4nlRfY>Fm^xisdexS1SH$XWc;{{(UWm?IiGE$xi)2cEu!s@!9b@jN_6y_ z$(~8SE38Eo-9^>ma|c??{Hh8wO)_8Eh07kRcc=Oo*PJwL?8SUMb<8j5W$IeuLi%oZ zX-nP2#1!N~+UPW8-KYzM+D{-5KV&b;+AjleVB2d_tGVGp(qP6vymT7djF!%T^n75e z0Mgu;AxJ`|E1UZG98&FD#8O=6V+7ZW44{rxPr}|`=>L%s-GM#pHcG#KtwHhuDsl_} zJm75J5G1Z5hjd}#d7cGf3w!ukuYq3?BxzvFp6U35hN*$V*bIjr!-EjYxb)eF2PARt zS2EFcloNG@Wgl-HIjrN4o&Mt45wXBf>>;9w@IylXuL9%*j|Y=EFN(%tc=GSrpj|h^i29G4Famr&2 zJb7NkI(ace6&mN!@LH6iF5I!PD5Pcg^6f|U-2{~y zj}Ae+F&szQ-`(YD9ph=C%>@V_lw4m>_i73exZkd*}-l-G+-a00=>RDU; zV7PpO&&0Rp{a+jXPqkWpwRtJ2_xH=1*4(Y~jyiD(H;2ay1(EzC5S2YOR$hW`njj(Kgj6LBXqxEpo(d4jLU< zqv*Yj+tQh0zgM0WttrgKdyLhMC{&u8`AMUsQtzNJqFdxG%q{@9hbxY$Qt#tTr?9RXQ?3gcacq8*WV!YKx z#1qz!WN@dhmQ`2Oww#%x+{kB_>1ZSR@~jGtD(h~OkMz2JpG{6It*9+sGj(m_T>+o? zj5q{u0=Fb$3qpeCh1fS!antok&&rweXCWhIXiLVvR|Zgd0cPzMq*`w$b!p`8#Cz{! z+T^`$Sczs+_N&AqpS?{Shxf>JJh2{Gq68f1PoW{*(dJKTrvuN}t+ARLLiH(+^=72q zKXx04V)5`{D1A(J_Vpie)32nc{j2-mq+BEp=gX=Ysu&FmD#{D+JuF?mL>Mfh!u!*U z>r_gXKzbvi9DFoHA?Ny(Gt^knYW{vYROI<<3d5q*6EV6 zkDQ~Gp@EyO+OMU9D`W)@PX}@X9hj$TJ}lmhpe8q-k?*f>9#QSKUC#mY0snWw0WCJV1Zqpx}1w)!ES-_aiBIX?bAzii~6jg7R00Z}n_1PQKpGoOS-+q$4+^l?bLzn;XvVI5$Qm5(UE0JS z$YQb}q6XApXYPTCJJ;e#pQE+F7XJQy^frYXF`it?qmQXa5od3I3-TNGq+} zlm9|&{u#)B@_FY;Gnt&bq{IQfxH)WnnkPgWoP%4*8`V|Y(KFHiiTHsF35=$kP$0kC zE_l^BmkYq^p-+LUe0_NA#RgKKsW}IE3YxW6&>J4=6jc8jugGA(y{&0Z>~tVE&F52y9) zV%F6#*bm9JCqV}h&A4y0Cg4|Ud75~WMx+e#MvUdsnsce)fzoP@ZY;cmZlUnK4fK$D z^*{SQt4DdH^|&oNo+HyC(x%;`)@Oh@8k<|7n=;UM<3p8>!ghP*#`d#UCb@gDM%udV zpHsW8JVKAypiIksT%6D@&&K}v1}4m=N^4tOnfk|Tbh28c&qzAh3MRBxQty~jJ>h3v z<`NtegS{qNn#OVUT9)sPj$13^$DdwMl-E5cEoW+HEp56*CXUvo`%Ag+!4mL=Mzrh5 z9n(nBDlv{iJwuWx1>G4@)et3|hL)MUPPrfO{^I)=ZcV?E2aV8$5Sq0uK7(GDi_3vR zhMLaT)32N;2=R#b$OZwa2OmTfVFk3&EO||~pg)p{5GH;h3u`PCjwo_)VKoQvw5uGo zhaFi)O=MByUZ~n3@K5nqgd|9V`;My_qM=Nh9M+>`JcdMJO zSxuFd;mnt>FmE<#AHcMUS*Ho;Pkm*A5)NFAU&!o8Htzi43Gcoxs4_UjGk_aH*5<0y zeYkP_TY~&UCG1{9L`lU{3;TM~_5$r_P}`Bm)9lKOJxY2Ej8i=Ms_lnxQVIoaMLq*E zXgVmg^~K~Yg9F*t34f*!%megbs|1_TWIlWhLzE%5(2u4A39gWr?=&$z_{FO|RFnuo zjXnB7=rI+e9o>#8noVO{(iWyZI& zBIXr1){A!Nh??IY5#Gjf*PblQPrTo5`fiE&wFUthkF43pT9k*k)sM(To0s6;liq;* zB>xwSlTCt!>v^Z}q)|j&`cdlJ>ROIc1LHA0=A}*uXdPud-d9$}-N=ay+c+&l@Tkz=Rr_u&=pCX;(6!|Em3A++1@I z&y867Q>b)pZt6{~WM^c}LBh#i54LvI;(^QG2^ZMd)reR_xgnInL&d`Cff)XY*Yxkh z;&2RBs|0)Nku1L$c>_V0Z9*0!=Ka`i+=o2@(GwhvPqfG~y)qiphnj5OOO-p^ADXtA zwf#X+|HNMG$we1-_2OfKMu6|(z2D493g*IIPMUCoB;TD>i${*$tI>w?$71&rhY;^N zA8mikcVXog5sWwtE~(2cO3tU@)geM#9>E-P_I&=jk2>!!c6Ur;OM_bWuI6t-Oh^#Nt@Dl-i|GKd6a9FyH(=NTzr%TZ{X@n{pVjZ=h^$q zL9FM}WP`D>NjQ^s(W3frUagUePMlu}R75L8-a{Y^!PrY+ECJJNXp|fs0K`xUI#6`_ zkWY<#f5DOShmU8vFFebqZ^x9z{{F+h#qSM1;(Ya<85x~o&)^)_ddc>x$7iBwpBcYI z79QM(hY@U0Ey2f|LvkG1M#j!5_#3|F5a9r)>4CP!4sX4_$L8kG`SzgkpNo=;XPvqp zt}neBErJzm?C<|t80Y=<&uke1SgntNM;gtbeIpHmCH5BSwp2d)58cuOZneU z98h}_W54Q@kbgP8O7ZlP<%v+0B3FBN?rVlNrA_wRPoeXv(WyQc`Qb~m;y5}4_=D@-Y&66we7IVD_T35drnYI8qEa%rwy2gOrCRM zND{CdRTkwwEC=@>w-XQh&~_7L@vdXWpsKT6FE7jKNX(rvJjp>kBJ9hl&ouIU?dUvW zR-?)JUQv|qE@E*r<%i=1Q8-?5!b6&{G;N(@mvy=?*P_EJ=T0uK-wHceHXpjwc&DOw z$^Up+@Xfb9`F3e$RF#VO7=0>gmqG@d=sM3=C*mksw=bQwsq?wMzTlTlgiKC~MzF}+c~OR*)sX&0)0 zRJOL9Vod+xUq2Om>EukJo4Itj)s>G_+@O+-t%6j~OBda_nIl8dzILWfK!?26i1dp{tRFzK1HF>OWex7xl0tP-bRyVI?Y|rtI<*h%&_usCDb9 zWYvv|7|{AKk5(#7IFkdL`U|AraA;xIIaxXN!3MU>aVYFAGsdK;pSS~i{S&@utd?$^ zpXKF5j=KKU0Mr0=*n+3jB8-eh6NQU=*Zg)yC&`0UYF6A|mRT?@gZ#FQk~dvp)fcFW zl{JUEYN*99F;2jAgJ@ zj$W5(lla^2xQR(py>I*Jqw^HCxexj7@3LN4wT(so^CcY9Cdp&YFO+j0CUb1-+ygB=IM!Wv1>$#Vb!+b&D0MIk*3#VpxbQw_A8 z#IGZg-PfW9EPF^^G*Je=$FZa|=3KC6^N9QaUydVg7k~Y}#K=*OD{WlTN+$SFIoL*V#3TPKaWPxy7gi&vGSlp>6P!_SGO+uo*l(0izit_W=a~_6Eu+!g0UA^6ePu7- zeM}lF)im3T{JqNPHXX1VY_(s<-6<)n>~-huj>s|h57K$YEYvsZny9W0-5jKw{<1Gz zR<(Yj51?l!LY4FlJ-2QdN=WTfvpwansM561e`&?P;$7XusheemUIR@UZk-taQ^qOS zRtsK>cW(U)6@agmV(x~?m%K60ABKo(_7?HzcRc|D58nBw8-1&xXB6xzdgn?D?G`N@ zE#_-db4PwuG-i|UY6<%U2fmrP!|iTSd(>@|g{}+YADH5paGwfNk)xT&63=;Iwo)Tm zg1Bd7kl0#tfSsMpv8mPcsn{JKTn0=SC#z+b|fx(Wkuj}4^+X*Ien*qz4kQ4a1N|11+FHF7aZ!aPW$ z9zd_CI;5e9S=q?0GPOgk20jUf?#IIJZ&C#E0K=TKV^Ef{C2eS z?aHf5xwp6);*Zj!>Uy)R>>{*sTU|STy+jvpim6O+s{ZIYwIR&+fK=J}+;GT;MR|yj zsS;)~K-3}1$7FYAK@oK|N8d%kbu-ddNvf3|f2jwwqfv=T%O(R_Ed{GF`>diE*4>nX z#re?>vHW19m)K@JiHU2b#E?Y|6bfjM4b<3Eti^`d&3Ly4vE$Y)g%GJuUb8^K7-Oko*1FDAua=R=#H1lw;|Yl9SU8*+X3y@3$-qZj-qDrurD6i!bxN7=_te8X z{5YN55eVRFPiS&{5tdj4qL>k(U8vcp$E_R_HC(*VXLyQ^Sv%pq2d}|gNG2VSd6mmt z+|wch#4?-x8h77!&os|FpD~jRD@5rl-~B=nwO34!q{J5P3>eQ~8f#8gWxN@R>e7p^ zh*t znj@>u^R(ek0HDX*_?X<}H1%omA-y@;y-FQ-grk!)s1C^P zP)ep+S2uLtVmH*1Qf)mAXPxADoBnZ(gXygNXtP)1VjWxI$J?{Q>uUvr6VOO zO=*!XB1U=>LPC?CAcTY@+y8Rz%>AEH=QlI=S7z>gJm=vtERyWK)?Vu?@ArP+XZNzY zHaTv9dQ#OvTT84!tDNU$_09IS8-WpG*_wZ!__~MXAAHXSkP5O7Iq~2d>ip7W9L+qh zp#7CaWgS?RTtBN-QcB1p$wBM%Ai&u>&Pq5S3)M^@SH}S-wEL0Tst~*lNMq6TOla^l zXpH(`$aM87stsc7T7vbJ0Y3E77ZA`6m0{-2))gv#W${6+&LSSiIyG|9L}sA@91lQ& zZh<@((?=bSXxPn6J`k*w(Iw89X+ zP6f66K4ABp;wQ(F6%oYImHM1ex(V%-{d;%U|8 z(K$`BXyeGYoKj{;KpXP8>3kY}2i2-ZiLS`lPr}_RSvqR_g3K2^8KUb+G>sB64Ivtn zHDXuuYRS@BHquYodd5ierj$DF&L#WDRNvn^7d}~F2KE^2Jue{TTZ>wqx#GTm>G=C$ zvxr4`i>k)1+EX0m#5527kyCMLdK8E2U`t${2oBH!&JT==j?ty ze#Zi4hJqse*p*MXAhI&7sdosl)%}#1D}T>i(1PGpBV1Dqt(@~%KJwkbn!HkS zCIdH?agcfpODv=rNq4IAbossgdk4&P16dMQ4~OO`xUVc{eU|3#QWF8#*o0lB+ka(w zdRkpS&^pw56LXCN5H4o`aH~lh!amare`Psh zLG)xM$nZn6S_P)P2+{>C4e2uI3BU6Qh0{DFXei<|Bhe)sPq|p*05~loIjBoey)0O1 zCe{v57wn!r7^BY}(d&*H%hNlcHk${4HlqV3INNoPNjFgEA+fHX|5u*h zU)TQE%Fq9f>ko?a`dt8|u7_k+xD^80Xl5P8mhri z(EJtfRp%^C7jpb!&cF*6Fc!;H+O&q_g(lpSz(EEm(w!F@tas4?I@Pw33W6h7fTy=^ z>}0+4lR;FTmnTrVo9;pLF9;y^F{WRCq94{Al>++KUKOy$Opd}(;ffH&6-><@Ahy+n^>YVf8Y5pu<|1R^(W@dv8Yf7G#$wpOYoSmFp_Q!v+ zyfCxpSj)2JY=mYdDg_H5rx0}cQmac4nC&L4-2xYA#NMiZ3(f0iTu5!bKd{XKE8I?B$)kJw3wd3{b$;$LzR-z{MsH@Q-d?8j>nr!bF@7iKHi^5m@|%x60dg> zR}zVL5N#L86E~OWf6ZtBnnfRbQwIb(mB-85y>3!wk%36gsUAONQso5~#cit|4soZQ zT0!%NEgn58mlcY*Z1^#yw?|odbzdw?9h%&&c`df_&Hf9i44NBpekl>S5v7wJo+S9h$VJ;OU;>V(Q3S1!f(2kh<_hvdZ; z=-o2AP{_sJhT1M*bbsbNDd%qEyHI)iQ_jpOo3!8E=8J9Is#cy|x^+q1m;Yf}b}Dny z;Z?0jx3kvlY@2q6IKshVxZYtiZ^d&pXD4UQJCwdYa`rKcdiJBY>Ng*M*1G5T`9fgt zK6{w?>{&32iA$ItGLu^RTOUJ;s4I&zCoP4`r)!)6_}E#VSI>KI`&)l-+ODrxa}T~; z>~dpKq#{F+Kzx|6S{xxsm%e!asf1gU9h-W?#RQ}KPx>XJGQ0Jp6d#+Hnk(3T=^66W z%}wvtzqD4nR=bX#UZDF1wE6VUyU@>5s|iIZ!43V4eaJWRqxmz#!;nKsYWDxW2H zeR?0zNZ5YsWF={->BPgBw?bW$>19jYWp?1HZMVXC%X=pK@WyWh1at(+2tRNmUEBx-JFO z-_)4VF7C3zrd4d6wp%TR1N+^Hol z@jbIaHKG~35Ns$)u7vB6?8sF^ss#4cJ9s~U(}1X5eu#|5QrM^lAik7bZ%jpZ0Ta=( z8h#hW3Kz=7f2L}{=RL6V>=-zs5#7tm;1-21h<>Yh`O*mp(>!OBx_Qif@Kq_uWgFy6 zK(>juKrxja%h&7zsvD5Y+P7Mn@q;pO;jPwtF<)8yTc80GAyCxd0uZI^+zEdXsNeo& ztTD5&6S-E<00J1eow7#IH6%?2%>m6{uLS;r}4paUF{orB-3>%-x3X>_1=+We?M zoZG5n;rLJe1udxM8?P$iw*kP!?d3f-OOT;Sy|M*!i3c@7UKy=#{FWXihwKAM3SumO z{@H{y0eM#@dEfG`@Jx}UIzCL5f(vbnBShf>en6Ll6Tt_bT?dzbTM1?`uMEDs$L}Mo zylx1+Z4AQBbDaeCH_dek@S^k?i30lcO-_h)kyFflm=7+4d9ZeL9`jy#ER$O>AgX_e z3Z`=85^~-c=)mq*S+sT#nZJ|F^iPK4!3{}%+0^-Wvm@Xm$gzc3ew3x(S!QH_AX~Ps zoCd)05&T*=i_RJ0z2YrMs-c|S2Z>rzQVhvc7Nu94Dl5;buw{=h%lpYdFS6dCN~{B~ zYyL8s$HueUBbL?g3h7cMdv@!VwUAZJ#<}NeavSdZRzp0Nr(eFN!cZ<6L{p>qV5dl@|`qKcP_8$fZG8($i*!FZ}N z_gG0Z0Sy>ufNNi@_(8x~huGh!FX)FP3n!7o;1O>UWJRLnilfy97mAZNL z{Y$g!cT9$(OpZ%Hw~ZMZp!FM``!@Kj>AWrJP8To+Y6L-W4!>KWUERasX%~EWE`ycS zA7YodL27r0JE^t#tjc)D^1xVFJ!VsQ!U6qoxAGp+V*1)NWu?0kEtJkE@c}qlt6{|l zg+18D`H9u9ER_iXcT`^hFIEqhbmRwnv6p_4!C(D4j@V5=w;f8R(l?v~j(Ta& z>11?mZ=#t*L!^pDn$3mt(n~J(o8G@lOk0108Arj}`8$`Mc41vyc4`Sor{y~$O3%kS zN$+TLDf4xSS*s)mt?5_{&!sx;l>M!0^VqIxx>)fmAHxjYK)2c+iDnedCaiGVQg@QX zsKs@?YYDCc_bX};A1)EZ{TH5teLQ$#f}$N6 zRRCs~JbL{U|LRLF+JOlyMX?>bDjS{%je!G-F-ES0Ba#vq(3^ofCJC&y0aZLGTIAF; zH>}DA&Za341JC`ja6dAWQr%bvN9f`2Z!Nz zo)OS0PYgDJpRSV3Y(P_IfoXpO<|enodWtSU?7i0iCZ1Qb0Nev65`PRNY0N*N0w_yo z!D;mXRvP(jZrAt`%ml;%@KOKbfUN#VkpJb=1oaQX_A@nLHo~JCz)pWJ3a5a?be{LV zgg@46`5*q8wG|>=l%dHXhJ@g@g(W!I%#>`38p>nr;eao+Qh){Z($^OxnfCE8jQc+V zGv-YpfG;4*TlD>J?WlyJK(!q#z1)(y0&J}x^X(Ww3)OEzPGJ1N{(I>{z%aE&vH98z z&lv1Pb_>*BBnoGCA@xb^uqFcwW5)rtR`xk~2+OSa|D!pp20besN*3K7f&!Pji#+@h zrZ1|y6`Vzl$||wl9;X%IQ5~HHWrG*hF%}lX0>hW>Dyqv~M_Bl#d0!2=KB{D=l%M4s zWXuw7R>9;XnWk2gM3Lx7LX^cRQC7GrXFUtFUm>m){<~C8tLwjTc`-i)q1BZ74Mwm%#-x4{mg5v96s?A#o+gxGSipc z`oCpHi0}4VtfVUk;6_DySGPk==#B6WuOO@5lB>179>p$%ltrzYA+}Rm zM&_oSO55r8UE0%0?$$ZkGp9`M<;)Bn2+nm_myXOD7@A4di_IRia2T>q&K+n->N5{W z&l_ysp7V`Y>N-3$WTCc)m(=o5o&S79*4c=gh7O|Q@)f!j$(g=;CdGww{`5;yQm0aG zst-uo){Kt;%<+Cge=~*yPZc8O-Sy)m%hdbi8x&AAT4BDA3|m6F#_zwQZ+`Ssv(2CJ zRNwSU?Q~(nr(w-D46YDMJq+sE?5anfom%E#LMXVTID(uV7m`&HJM;h-F z#>rESNGJm98#IU77!-)+2spqHBHiBYO$IJ+Wl#-rEPdOj1hdgaE4jwhfOLn`^Uoru zM{#?SO*xf1qcx1-OmZQZM)|3E3f3r@uSEnL@X}~H)$!isK~8Ov zDSvKp)(Bo#u)M~#{$`wBJEz#g^E^D4e2RJYf0=TdPL>tDs3$ zb!DN;9eODNWV-%G>oa_-l-`^rHHR($e;5@fZ)e0RJ|$kGS`nNDnomWQ=*XwWhS!|V zn>j^!GMVy7VJhpS$u+zBYoZ-0;y|6b0fB1iC37+IQYY31J-9eE%eMJNEH_nxOJFe6 zaG#DtokCg@zkBdO9@8>A)+apcrs_9em_2HZI}tIfSSe9#aDLeQok@93OmJlLd6kDv zL?OY~#*Pt+3-5AV-n=1U?=z&v{8{zDYSbuzd*0?{t9jSLK^5fZM(24!XSx>d9hF*H z5YnnB>z;qYskO_(qIs`y`fHKO&zaBvbKdsK;AOQ>#hOd?$yh!wq51%17xY}kn}Fc- z8a_+Eq=X%)ll~}=+3kRIuGlSAi>KTyb?~*PD4A}{2d0AA9ELg{qZque+fk*Aq6CZ;ZS@|22FUB~Xd!bwAH z2Nb<*?N;827idWvi;LBE-Na440Fk(6ZEYE^+%C`2SxR5~A}~oFigw`lBS8~7HA>Re zG|FA(V^wxP8*Iduii$qK)l($pg{!FBZronTn?|%!(@92k?=qd(q~B9qch+bzPIB_J zB)kp4@SBS}S9yA+kT%$RMwZ!uXLt*rpq#2)e|Ot-eSI`9-$4dZq<^(@SN+)&nC>CT z>sMUm$J_OHS?_|)j0^TMLD{W)HOI}KxlZJTWAqU1?7fE&jIFXdBw(QtDjQsa(OYXy zas}1x^iv?QHelH-uqmv;pplVsla6H;^t|>#FDo4s{h7Z^2 zcrAH=;0l1pLcRE>t5+tXdWuByln5frRKQWPP1|K0~mF7!^j$o z$f23Ch2h@}6RgHX`9>7cqfs*3y-8<*9ZCgn;OzSB)biLF7eqRc&`oK%sT$5hV%ea_+u~?(?eJpLf4+JvUF?i; zE;)*E9;+^`4z#eS*2&L$RZ&&(DmpV`l*ndGOl8aTj4{hTAEP<=us1PGRl$ZX4}Umi zyqc7k8-N4PYGpx3uNtWMRSvFT>&>Ng&+AH4q@`qTlq{_5U6i`Ha8oG8*EdW!=DJAq zk?`JLGhe$sJvjo)@3iTI<&edm9I=t}h7rEmL)hXB5Zp8r{^sg8kr5#^C&#z*(i;P$ zNN_l4pE?`9$0s9*cv_;-qSIsV*sF-yy-T3SGDo36S;*`*=_?jt!e)zyBCc-K>`cZn zlt`P#G=jI&k*T?ujE#`M;ei_`mp#kE9v#D&+i%F@@W^gh5gf4Nt%A1VB` z!IZ>j1B0_Z)_L~sd9&s>pE_?}2zhGb%Q0+ihQItNyJGE*=bhy?7k6jZ{SR=Qv3v4A z&*!~e!3<(4o*&C~l`J|{H~R5)uBIP=amHN={*r*yv%)me?pdLSEzT=QDZ<@nLl#@$ zmc_j#MN3k45yT;)*i^{5hdiNW2D;h?*rVB)+BDNua4aJnW#ja3r)jNcuYNm{hrady zYDVq_E=U@1fixC26k37&P}cb%I?}7ZY3M#iF^kxa3kl%wu0a*(96E~2r&gYO(XFD9 zfBc#~;zqB?(Bk4N`zwC!^=Og?$VmRma<^Q}!-WfOM3px6_bng&hzw`2*^TEPP84v{ z5loIjG?{1#-`vzh{3NgUjGSm^h}8UCJRaWE0wknql+;bL-u$eapPrdizWr=gbIG=C zzuw_v<*#}ELvA{Go3(u`+s@H21c*&boS&=oL*=)N3?5x6<~rMbVssx?u zKpGyrY@reVlH>Z}aM?Tg#g1Y{N}s0xQ*43o&S&VO= z*eO+>`vUYOX$|(%A_}T**=tsY-R;PKwF*wU=k}_*ToUylfu0?-oRkPQxFt{$CZC4_ zXYWAI@ox%B49|$g8h?~2Ur>2|kWiNHZq#!-FIMPLMq8$k#Kpif%+r|_A)>qVRLaOa z1+6q2lWg0y^I8F0NzGRrTH`Vf*BoLzFE#|w)Eir2>?Ry6@Fz>qsqvu~lEB)i&*CRR zO4uPB3Xt|4DuM+3CaRD4#-mp>S6nz}hORx1^L8w#bq-p%m_5c0?7*TlH|MsB(c+3> zmueT2E5q?_;D1lB2L8i7m9so=spCLIfL`KWH|h2G-G1BzM40u?ULI2;5++7PDa)(0 z(I=v0tkD1IT%UPJ%AIHX0wW_YvwRwubt=icKje_xZJwK+>fdd#(OJIRA@6o~seYBy zCER;|Uw9k9T{b@_AIK6Z$PZ{lZE#++dzf>*48e&bSe=mD|L{O8A(DyE3{hE$klYil z!G71(dXN+gv-Q(i{aAa76>#^Vm#p&(W3ju;Gy#(%?*i3ejK;9C6TT{|fR0oUlvr!J z(`;q@mBsbhL0O5nZnJy+Q`DW0nuzEmnMEu|7q?6F@>e>YRIv5FLNB%k}r!r>>GL&aQ7 zI(s?0N5$x=!#XNVW}sAVlV^c$c}mKy_f0fZFgP~Rc#@6_>+CK^AB}lAy6UG9wS!6W zp!3pUa&gS+p%A7_izz=PSf7xlhPY+tQt7-K*FV4#xI=bPwW3C^|@HQulPLt zuGriZKiHEXGxx4D=hW(F`~U!+>GV_ad62b9iJu$^4YL7fZ8L?6cs2yUVGaPyq6YDe zs)xHLwN{pPS2iNHJJpGFi$;ZLm0@>LtK{7Mr%ezjb`=7z_As!(CRE z4IeiQu#4pw7HeZti?w=^ec}`Fc#%N`iQZ?lXFUams18H7H2TCakbqC_X8!+Z?q5*d z|DAt-*6PT66%IlCj4H$g^?t^#0iSz~6_ka%!quR1^(%|_TWGGu2EgOTLT3T5>j(Z1 zHtySlz%w%LgoDaDYpvLIH3w8*u)m2jyn>zUL7qI&AA(rc?E&nL3;?cNAe;rL&@two zZ@Tl}s12}>T1;Hpfp>s7cekQQ*hVbh+`82G zAVZ4epFU(hTV)dKX?v@$@|M2St>+)6I3C#rUVPayi)39_BaruIY-^t(kfvLxHim9_?^=Ymd z$v+tfBHVNtz?D-d2jS0(Lew48W)w-!d6N~Xa{dfm$;-ECT?9kufV8RJ&Q8y+`%u!n zvz_>z-}WjfDXxKR;qA2xj|qbN8(lZMZLz!Z>UaI2@^u_r%SFOX{`=!%di%EO?rYF$ zF-UNmmrbzajR(vKUHMdp+!C)7eHn7R-MT8qcT#)hXFqhP765GAn)d#WM6Cc{xD&r@ zBn?8k*#MtT5yzGy7|FO`EJYp!mu60PC{sWHI4%V^{J;B)0uED~?l&NNqRvkWDC$fQ zj?!9m>KT`zDO!T}Uq$W&(Wl709=DPiNuPi}V0RvbwF@o9nHvB&5AQ?I9s2``as&GN zI>ICT-<2AMJp6Znt68){6hXi@oK?LJ2{Ofz6E^jD3hQHVgN#=oX7hc-d0J_{8-$$C zcf)UnTH){*?0KgJKX7|-&kz)edhn@F28_uhs9FcEYX=j!3+|0}@AKac90Y(!P(28* zz4(Bk11f60D#NP4OHw=8l$t_6HFwL;om7Ih-=tgMWX>CuGiz?&gyOnf>189)|4xLV?8&A+!s;f8{K zVEM^2<%N+>BXM=f_lu7N6!04qN+>w=#y0C|Yu&!%lQ+@Zy=+fA6wrjK;A+AR7*XP> zzI07LspD3&Fjq}#cath#?W?3=4KhAZ;l71FkC)8lIN^j=hoTvpq9@+ID*jyG!fo_U z^I;v|>|rS=&wgH=?jO*BuUu-V2EB(is5sf>TQ}QX8&#sZJo_|snQ@-#RQTy2_jULf ziHJMWQRC!RdM3|_f^s5_);-X2&2+4MkzHrHi~ykku-5~3c@2-PMb_BS&EOVQwpy~w zo26aWC~6kbw0?+bgZx7_Oi8;`Skr20b$>C6v6KOg5uL7A@Q3lA+97XqM}fJ zQh|3SbnGh&m+BEvUqpjgtJDgyGrY$UA)|_&>1b`T%RLpXA}{@>R9CmU-^=>SB-;hg zZ%&XX>TJCwl(MzWxLXp1CLAAF6lm&cxZ-f?mA6h>+~V=1_F=-Te79kQWv7!#f?eB* zYJaI4stAP~_MY6Q#=@AZLv!=9&B`OngL!>(sZxk}4|OPIx)Dn~VFa_6lIXgXUBb+# zD@zB=hR(k*M~9&~RRyR)hMK*u@IxX8@M{AO_e|J+QE0&wI`VOjTx;clK*Y=y!QgRf zS--Jvg=xiddF>vZRg56IYy{r2Q|_!jcY%qSg0pR-&tgHI)`!X0T}wxAj{nZ-xlNV} z3s>6JR8q`7IQgl5NMd3ZK$Mcfr9|iB^L77N8Q=|De*ncDrq`JCtMD+ov~~UnDIOFk zr2j@8ZEd9NvKSQ&RuOVIUEUv4C*;&eqCN1ke^V#m6n3*bU5{uQsGOGRykfP3EhLX9 zsIS$PnL&|RUSqyOI$^_*mBtIq7rI$L3c&-P^r~BH1-S z{xC<2Dkn1w=^(@5sJfl`@V4?CYUfOqjR8c>AfHx?3Z+p5CRsr2GN0bmwu-zhhH8Jab zmwSBp%*V!y?`A&KIz|}tPfnGW;Rm~;hi~di)>Y`{H_NR9M?UB_ka1QhiZj^mcf3%| z)>7R^x)=_0Z7Rl)I_d4;&7lU_j*XaJ=&C`IM!SB0b8Xm=R1)km?sVi}jVrZdJfSF} zvz6XvydWiYL&~}6hI8?JQBg6WthBT&MA^wg$KraQfUlF2m+_&%(QO8YL-sxtijcpg zZhUb|1e295B!qjr+ICj2k2(B~CZ+KaYq|XzC$056N~a2q6Mf1h+BFRIbfpqU!@ZAO ztp!o`lAwcs%WuTUQh_WKu5Q6nwgQJ%L(MwP+K!wIYk7j&%iBfan2_2VL9oVa8D{j$ zCFX@pI~0`%JJ+kvJghO9<7;1!q_NKd_7I@@bfuC{QE-9KGEW}}sv|(OJx76_9E)AP z{;e$ZE#&&E_ShT}3f6ZGa7r1e|{&HiGAnJJg92=BM$*P4p(9+$FC#S zRUH|zm{=SVk6ql3{9wPL5sY2d1u@eXxqtE+_3_9b83^P#cpDAO4nNMvj9KS`A6>-^ zm@_eek2I0?4&=Y~x-hj%pfs$eK27DZ>$fWQ5M1E)29P>t^jm-*`UI@q-~Hj5_JnsF z1X@Opt_%(8k@exs7yZjYsNOZk{xjg>_LMsymYq&SGu3S|lUwU>M*!_M4?cxmw?N)! zfUCww12A(y+UQTs9GKUEhCv`F-peEDVydUXveM0&8kqLjZ?j7Y2?hI(75LC7Csh6_ zaU41N0- zV*GJtCUQPw6j%Ws!4Qwf%1I5m+{hh8?VLxOsr zq<%Pi3Dt81l7UFS;b@Y01a>}+3LJPtPt5FYtl&6?CVm{fItLa#zbv+!Aq(~a66|dZ z70?4O6oJR!cW;gGy&3!K_lq0;3v0ld#sGj*oEq5_Zo|evt9yGT8DHj@oT@)`>-Jt< z$AzHZ0LXl9k?SjqW)tGRR~!5Vn3DZbji8Z=4Ob61P(OfD5ICA74J=J%fg5gHiiK7} zy0FFU>qW!N8K^%$!0j}K6FHFvc9gA(DV);q&8)Ur7yEZQWu_Bo1`h_-!Z#r4f(lsX z@tlB)AICiHuuB6FS?4Q@?t3bd8#{5Ih@i7JLbHwA0(koSeOwqpMaa2#0P#AffjVsZ z-GIBAw~x$wn2pF4!~siS6J;0n7+8tE|GRedEyQl@gjq6-y#X>SL`&emZray#iF)L- z#~2cS3;Qi4At5%s@F&gq7{&doT67QqYAa@Ng99rK?omfZa!L-n=7U_Ne`UFm!ZaO2 zF%m9gnc;RIuW3MT2I!c&t8gZOPye$g&bQadKy)N}*|<&=8azwRgR@f;{S5%33$$T8 zg_#V^=b1q>m4=u^SQ=_Gp{4`D%h7^fk8?C$)nIVT!1}`!t8a20K%coI+I4kUI%w&$ z73_`NY)JanG$Uyr7c=2C3N98y;LAZ96Ba1@TNvlRvhRO==GVIYOZEV&d94XY6G!ZX z<~_+M7>${upZN)DMGFmw-n>K3Ey@8=+lU@Usv&6nu4~M@x4yE#+1K(ce$t7LEJN`H zvb>ix4Y!CPSJayWhD_g1AQpSEbKn$r-$MG4?O~0RplUyI&1okO0a3QZcpwvjq8!x+ zhNVgQ;wk}IHYPg8*L-v%L`;56#%-J$h+kpZ?a$H?kWRoe9`D!+j%RBKwCZ^exp^E# z6Y{Er+a7~2H})!}F~4uh7vS6fS!13E5eJ9pPW;c2YZN&~*gu*h_0Pm9{sHR$es{9$ z(y&GsupY6}(8E3G(!HYNOAVjEMDy>0i4INtd7?g#?ejt`Ek`4n8bk!sz;;K;Zm_1q zA;|gsHsq>PF!BjMu&*2CnAiR&{Nz@@qx{pe0PFa#(*hPTPw|XMuO+zgC4#BZ!8MM} z5oJW3P=?=pK{Jub01=_f10ifs2Ey=)FF-uQ7Sox^m|~_v6Zu2XfPfjuYB=8ixx*h5 z2`w9|!Odn!rg8-G@k`vA17OlZGsnOkVUL~O`M3O%KaOMG#tv_Sw|N5T{Dt|l+{&~W zmZloGlQ6_DAfO?b|F$!DY%BuB%3 z#+&n7yF0w>;q8bX-4#QxcFO0Mx(fUE75jmZD^6h`xieqEP0ZHL;OwIky+oil3V4a#^~?u&%Qw$jk$Ev~>}9 z3d-1PRu&h?p5ZE@MAVRetGVU#ks(L4pv+2#eS^6_L*3#-H_ZRp$2yY0@ph9$jUp^t zN=``Xf+-x?4{fh9dnzj{%PIr=`nEY2J3oyW9U2-H4jCOC-D5@w+-7SWBX%X)LI^={Ab-P7yoavG(nTw=>sB_XW-G`M{S(H# z8o*jMVwnCQ`SfrAH?fitBa5elM2p2<_qA?#8%V`H;yb>^jEA;EvwEw{v!=^yK>Be4 z>HgP!YsjOgz*szZzx8wUdZZ>3*(gI3S_bJAUs+;7^47chKNVUH_#^iJ>-B#@<0FunEuLQ5N(LXsbW7ij*Bwl5D{34F2fxl0WAfnX*8;c>cHT{!*yf8-HAFw z)rdkbo#bMAy+^K0?PO{K-mbM~z*<%{HXhF}uqY zqHjp~+$z>9GOry!#p9ppZ-jh{1L^*cOzMfh&s;gyJ7;rz&t!H%f7VIE0zIt-vEHB{ z{b!5*gTQ2I$pE>P|8Q-yKL;(0dR!K67jlf~ts87fLOZ$oddS)C8Xi8^t<88Cw`=dc z$1mROf2b=mq-9kRr*mgC+^^9Y2jZu($!)%5ou-iWz_8eoXFM#vg9Tbw*z5eqagbS zQ&c=%A62aret;M0W8sg~&JaI4ebpzzr8PB$K+Zdn(|CZB+$UW#u7{eWY zTGq{HMA9_otN2iVv2T03u4>mT49||Xw6u)+whs@t5i80{%PPWi zUsqMVPKgun_4P8C%<#5493ku=Y^N@4hM5A9y4%bb3|*1{MVrJ2DBGv6OrIko7A_OH zcFkBz^&AzAz2Qwgjf*N1o4Ob0dyX7XNrc$0_rJfo%Q0YIZ1XAMkDn|Y`OZpT zxFfxH{}Dec^$z}HQwDk;+?~%qmMMNcE!IN0Q#-$4d*k%JE0VxXwm)gkjMHtS4T)EK zl*e)~v4DpSY{yN0(qzS266nT2;tQ>lbK*bJ(U+XhaHZZ;%}29;$hxtx&B^+MOm@QIrWg0`1?K`)bZ0iE*d zo>iS;9S(~~ko;SO8w5Q8Rr)lOQd?s!TK6l<&RnP-Sn!`q;XxD?S0;*Y{Ej$_IKhvZ^y`MIy{vvqyDy;BrCxEY- zG)9nUGE@l!^8mI5%h*4IWjw>oX~2grfTs$)flhnoODw7GTfWN2H4Vnu6yPL)2cC(e z+d%|>5{TnGT|`qvcS9eI^%*iC2GQm%^GX$)2;uTUo|p>scHI-+KF7?2PXu%Wz%Jl5 zS%?CP)Dck;b*CzsPXZ27uW@lxOQr;h^`tiG0J7Y02U7d;!N8F%#W{Ti`MSHkeS=2c z>FmFYyzNAc9T27Lq-ud%SfC#AC2@^m!&Qa6@*4O?Rr>1==@c+Pxo5c|>O&9oE{D{u ziM~#P_+XVIW3@*e9$HZEv@O^;3ogbv+)T9?>?Fn@%I6kHdkPKeZ3?akPg3<&Y+0 znD+qDt@C4l@dN1X8d%5|6;>cTlyIRCIO3H|AFycInvAmV8&O+}f>aNE_-qv()N%)Y zTrSp)yawxXeJkm(gBA2t-RHVe#{sT@BgoJ>n*mh~v)_LoP+&AYD4P{<3@VU}hZcDH z-ZCyGLLoq-e=c+Z_~pVTYjBIyCa?uNP!Cthv}yVpvp$dZ9u6Z_!dlPJ6!~x7oj83O ztTL!m5a&XUgj@Z=^)ASo&PxTHhQ3h*(im63H1Gf=?&eISbD+ve5NPC#V)_(=i5cU* zc+RkaYGLs)$a!TMP$Nd#46K^JIQ8v6s8}~Jz5$Fs=|R0-2M$UYav}=;fTtMM7y*a3 z$b<2ue{cf3xCbaUQxKA~C!u4I%dVvmeaky&)glC0jQ9zGf#&)j^ZULILye_9y-x_P z!+k;O5>PaeWh9-~2D$S7ETFR3;(q`UzYFaBPx`y6GLQiGpteVFCxW8y03oEw^LcZ zKtCzI3q1|}8O(H<)J@%oW%}0x63gBoQtUqDs2gIP{0N$Pe`x(7I7&YOjwY}_tJG_p z2Gz=}uX26RC?|w6;ysY__8=h9ec~dZKD|e(|683P27pQf%Yleh{?>`lHW#SrTzO32 zyPuAi%vUn$T(CGa^BT=c^kh7EtOgj&R2Qb14Oc_e`VvsK4?IGd-sV96hRscAe?PK# z-9<*7hOSpRL$ZOIO_y`6z=~wk9{e#J^|RL{n~0{2NMHl>FQDQ3tN8xEt_d4~-dww* zhLyg^2V;Q-?t1v8{D*3<*u*Nh0BMV$DPRL3%8?=PknJY@T0G$;4Hye8#3P?EfTD?u zR02Z(D0WqOtN%%$XWpZG&U{BJU?mxm-C^y@rX{+VHHgyn#2aFsA;(gn)WLb{#Ml0`0&;(*xSE6r&>K%5Z^cfB#n&cc4&y??tZk z#7=(L4{o9H5QwZMO9Gvevx!at3pB>H67}nl|LsHmYi<7h)<%+AM+J8D5g{TMGX@5m zxqFofU03*7Vc2728R|X_CMf7Pv)7$&|JfE8@_MSkklq0_Voy}h9P~rE*MK814q7&^ z1IJ~cnH3Iug&EeS?GIuORWc!H{U+;D#!*nnYZ|EM7xwVNm5o5D-e%-8Qkhs)9<3ZN zvuEmS)8vQ-|i0}jQ?}q1woS*B;&R*MeuV7{;$0ZzxNKA8@N5dxCl8wJ-4*v42 z33qMzLhyT~q~u)>4hTeg^O{|?3}gd!I5zW~Xxzxg!#v>k8z`1X7OEdw3#?IRi`VHd zvhLH`c_`xpLA%2)e~6E>5Ohq^*fLov`_lX4v$q)TQ%YaRWF(<74Bq2~Ga=cBKN0uL z1KkQ%g>IMj$-lk~Hx|y!)4oW_2pQhmmoY>TEqyiU;jH2S=lJigF>N5DSPjRH_H%D( z@;elA>DZ+?UH2(Jg?(bb&vqJCs=UnbntT*tplj67D)a19y5nQ?8>A+VOOmw4eTm4Z zyPu)eR9;&mahpgxc5*&*G9u5QaJlvPM3QQ>782TZ)J{ILKn=YFDCwifZupRw8~#$| zbz)C(pR&J`KBv+k>OL*yQd~>d+;)Y>d56YDL|jz&b)Mdem8cOIKkfczsOMB)sO#jr zCmJ43(oDfD6jb4atEX66j@3#D; zBfQ49yG{Pf`vu`rT}i&U%U9j3CLRu^kAz>lViu>Ru<}~fSm^|jeC$>feX3^BAJch*xA&#rsn8p_UTGj=Y)O+m<}|rcU1E z?RryGAT<_5vBn0grl?BTlm4SK{+Z7_m^Qro{1v5Ctb5$AVsXr`gl`M z4yQD4z@DA+jzq zNaADgJCS4>;s*nIv1LhFdFG?k4~>Q-R6T~>QBGZ8Ial&q45U6bJC&*^YFQ zu2@zj+8{#vjyT7EC}uwDCjkp-Ya!fcy&LqHaft!uk4BV-ldh;Cwb!123&XN+pC=Ei z7g9^#+%fM>j$+6-b|KgG$_u>!u}ZIhW%!b@NMn8K7neAbKp|$kiKT*s;k#q+5;1%x z3Wg)bl$S1P9rg8v%us~7_p{ViW4GGWpdjB9Zt9ZWBH8J6UH&(L>+ak7_;0};e;oe> zf&79%{)*@PZ{^JW7oeKI0f7vDWx3gbFzknHmxhG&x}5E5YmuDgb3GOJ__eZwv^C2u zy7xPBXp+qaEwzPyvwG)z(d-_oso8&rK7${-x(1ly;Z)Ozwy!Ksb}vgy+f((kT$}ow zMMuQd>-w#5y-4a2(*;ltmvWvOP1d)jHY3BOpjkr=M)_Ey9BGgb4RFNa6! zd3yMc(fYbol9sb&-vr=fb&u{=sKU`9kiD4448?v{CJTY$RtsNQzOsmz0y*KGlE*rE zvQ9QvndhiE#zcPn$oaBE97gvYS~?T=mC>$XmK;| zPg z2p?|U1L0~4fgF{Dz8EmWp~e}IShcjigP{qk8~cJqX-oLYSR&(2rv^jqQz-2V7eg!u z6v_n3VwY_Ma(dJlVCRWgT0Y!_C9D9edyUB&APf;|u^^4>9rDK^SowMud}vXPK?{ZV z7=kGQ8gkf+X2h2ziLWdT+IU6}bOl9PhX#D%Anb0CpN9vf!R-(~j6i~AU>SF=9fJKD zzp}84LtjonO=iSc+FBw+IN}03B45Z*{gLw^2yg};j-a}LI08*J_QxS?%n(?Z-w@zr&K^D!;NQAO?~ds%Q$})jk1@xfn`djFAEY72gk`TAlYm zO{d>N=wo0m5h%t71ey0l7VJL>@*OR{vZTh&>%a(oIv4cOlc)g;3w zNaBGBB<>MJP?v%2xu}u*!DLmJF$`hg?RRMWliLdMSDPyI*Pi;dr+)3JUvlb~ocg8v ze(AoSnNGj#sbBUKi^$(J(|_4hzijkhHu^8W?=P<4FTd{>mhdNd;TM+h3!nNkV)YB3 z`T<@2Wl#OWJbz)He-B5mR0T1E`m4w*OFR8elHs6iN9=CtRcDuaRf#V7Y83Ui5@)zO zf7YCbnV5)0yXUJpbEUh>8_+7b)i?WAwjXsZJO*oi&a7o5AAB=$yh&~2TzPon$xD<~ zA%oGl)L0p*Qx1}Prd6KZFP1;4H=jgv_cZjp&kBxueyfmOa=Z5J#KIHWevDPe*UH_| zMP1tK%IE^bk7bwOi`cQ~b=92wfC2IRA#)vtm>^PnOLA55yDV?TTh^)%bIen&wlsS$ zVTy?nvTAQtS}&T2vja+Yc{^Y?`WOZ?%HtWa11iULZ}p_tUhpjXfs=+6*= znY>U97DVgIq3_s)Kaf!@S(`94Ua*5O!$>CE9QHfvBabSZkDwRV+9w$%lm|++2u(Zw zNNa>7J(z|8Ey!gjXfr4lr~_`YtNk4(0j}&{tVBl#Bxc(V5Q-ElHd=lJ12;h&}Nt=Rdw%V*~ z3t)xbAZGUdgADrruC?@j-S&ZMe6Si_jKTcg}7L z9l_?Bu6h;em+JDeDu&I69~ZVB=DF>0kjL)#H_O`;m||Xq4XS&|Ez#~E%FX-P=MFY& zBzAOQR&h?nacpP&n`v%yEA>~8q!+G+%x+aCqzI%kW~omB!=HXx7;Q+^BAShv$cQq8 z4oJnB#HdWx6f2|30xxUFuHLekHIW|SA2(4chqCK-v589$_c_!htcDCEh zhjf*tEgbm498v8MyKVldk398xq=Z&ao~SCN;u=w9GEGujgeq%amyrdZZTYS0y>x#> zWDMWM^0-l=){c`&YYS0s?it5tlb~|rg5P8q`&{=2ZAitL$6R$WVN*=sB>FN1B+UiX z*fxWtkEuNaA_2q(!&E*}E*O8Lx`szv)gTmO9&E4uEvio=v6a7Lo zvqLl@u8)e_Ucu}SYdd^wwj^qkX4CLFV!eq?C4FM*mv%J@?CMwS7|W_zR@yo6;<0HOmI=^$cZZjXEQ5vhY^l|wP5ra zu_7^tpbFT5LQkE5%c1`S`dC=>|FQSw@ldt@-_zY)DoG`Y%2dc!M1+#L%Z(7ShnOS@ zAxTtnS}fViT3IGLS*Eg;?PL!{kv+zYeannx%z8YR@9(?a)&2W@U(f6N{GR9cyyg$( z95d&f>pIuK=c2O4yVqnXz(m?yIX){;G$;o^$}jsQI`#m!u;>pbFUUl0pJ8C1769;)CQKK+P!7e$$T*P_lmJZt?!Pp ze4n+b!k~Ci%>mTGIYD#S4nj=CpTBQ)rpaaHV?L5OQQbSI#Lz+OYJD{;CI0i7x1Pin znM{X1(|V8+eA*{!(z2}O9^6}4^t$B2s)Y(8!gN=VcM0fl6rp-C(#py5Z9%*J`#aL7 z)H8dICXDQtnDz1!9FiNbKBu|vR|ysI)?9^tEt5o->&@K#njS@}<(9^w#X!27vmOf>=PL=WpiBsN>Bbr9*N0mCq%mnS7t))Dr zR*9}P8aU#fc-4UGOsvww!wC`l()DGW^4*@=zMPLK((#isjnOHx3Enn-()3bq=)U1L z-+a?ZckwNq;XB2eJWluKrlmHkk$HGD4H($H_~wdhDaoRWDbp#VRf zLxMuhi+%TW5zEPAH4oG0#XAP%cmRrK`~I39?;DcQap9V4B^Lw3a$QcvoM+m9mAwMH z`Rro{RHAA7t@NB5;;`hGp0o|8W0kg(`l@e4ZPHXIk#Ei2(IYQv+o0{rDZz^Cce&T!-KQD+ONzvX7pOC+U*IrREW`GEs(;bj=v<9E0@_vdz*jwq*xBPd#cXUw(`@BT#)y z_$d+IG||a03rg+Pvd?s+zA)Q)+xy6L+0Q8SLiB}5ZJ@L*g#M>umw{d> z9-HZ5DkD|cO)N#qYU+~?&l%aOfnyY7@6|fMZHie&g^E^mx+)wuw~TCA(toLSc{;sq z0XR|e7GK^?Z(sXs(<|_aT=AncH8{k)L%}Ve zl8d4gzG$tagXU57yySU|eXN>clXKG{Go(4k+4#2m#v9e6q;;xLP(|1RNTOB@<>bm@J&W|0TIV{`G`koh}$}iLk>7P4v5-K>^Gpc z?gQ*J%hGZSA+Q=g0|tWKOn2ahKK1P&(837AQZcejC{!;vE zc<~B$jJ~IUSEfkB!I@2G%h1NEN4Dlk808t74x9OFe~Bp4)l(U2BIx!Xo48$u9uSLQ z?J5ISQAt@*FlneByQ8r2;%}|?cgVMGA}4?OZNCauuk_1-r(ejY1w8hj=$$^K2h)O# zk@Y|wYH*QYL=fH%QTSOqpc*b;VE0_Y7I`5eC3Uli-T2Q&(v^w49)lKmw3ks|^IUGs z80U2jT!ZX^o}Xtxw4=DVB}@(jJpi$O2TJKzpgvL_P_SV1gb)l3!0p5gXkroUZD>%0 zLA%5PCULDf8NdO5oSal-$1&>AGAdP`odZ*LSIR>3Xalx=3z%1-2xMy)APh)yp5>j+ zg%QXApz@99kg-Kbovi`c;rfmZI?VKtpUnJWQpgAkvFPFp(4JK#Xl^xe78)$G+fxJEXhr0q z1{`;}vFyxFiimkg4R(vqUK0A(sX0fbBtDwknv87WFp~AL(_gUqrAaN{b~<+yA8BuP z_Sj`qP$hvSOfo~)IK4^OE>v+jt0PB~FPmRrTUuwfre0xr{1rM&PuU1>mU!grUZowy z?Jfrs+q4O#W&pKZx>E1`2VWnQN&UxhdGnAgD{>Z;GIt9Zuy^y^a=95-kEM$ZC<1(_ z0*-N1Xz?{KU3eI#9%+Ub<%43NL4a+=n_?D%(6KQyI1qFgmIgS-ZZ*O(O2@f&s!we_ zsK+t~F3QV0FcRJM%|;E_70E+b=Bjs~sDDUCEv^cptFXiXp63b7HXVvc1x0J2E$RKa}~-VSb|XpGc9!Ltwh zV?dq%U<7VX50QhqXP<-W&j1~^KfVF~V_O4iB`>(2oAkXrDBB;a!!UvyuuVLWIf3lX#d?hE=|h^lf}utJ za5!3ssT#+w#?dCh171P+C=H1I5fGy}|JDG>x!SOp3Kl*X$oB>PuncBpY?p-4>}a$w z`0AZJ-_))UAVqK00yG?mes# zslp$5s$V@d^?q)6?uOT|BLz?GxqsqUA(kHv52p4qJ5lvE>7#m`Fb_p5OpU*9vSh1u zKh6B4p7>ev$Mg>$Z0wSICyR&9w7I0mBw=6f*7;W7<@GqDuiK)5Cl|sOnib}BJnu_4 zI&;nJMp0sMsbi+gl^IVjm!8p43pI-b<4j%os?T-R(FxhNHN=j(ni&meuh&d7i9AOM zjdo}jzDPHPc_3mvVFNV&mUR-y6R#SGWsN2ex%p!j&LMjt;xQtO$iUaK!0sxP!_6bu z>liv8P{4*XW5jO(L%tykP|B*X+B6I7)xe!Tl0Zz3QMdtKoB+%_%5|tFta2Mr79KQz zfcu^e0K&4A-INkBv(bUIjEd{$MSjP8@dckqKF-V99RlFp5wfjin1Au9Qkm+4%P7pq zk~%Q;c^A?Cm~jK}D;HqWprHV*0Ud}9W zW{G1jajeR}8s8kNl4E;wJQR)}$MJUmBvQe#mpJwk$6n&tOB{QN6RYGzbpP#f@Af!k zof|npK8`j*+4AVn*Bl}MF^TZEe&7$fnydNSh0s;QIjbHpA8Vj{ceK)%QL?3I7D%c8 zQ;dHOFifum`PDA6pFkIJ4?ynS!C$sqi432HBbQOuk)05~H(V=VI4LYnIbQehjTL%^ zJL}-|bY5=ZV(D95p2NB?U%f1uA4_~5OCA08ZD^uYBHyCLRCG*5MaS~3c7Me|I8s~Y zJ>#^D0Pp=|U2eZr1Kz+?VM`N7jgy05^Us0S&1HSoX z)V^AHkqKZ^$;Z7G-}&f(9LxnQgAFi$pOR8Ct7O&js}Lqg``{M%cNBlY*S@Uh}^Vc4lL!?wb{ z`4U&RD=x0#pFex38tqOM4^LRglaki)1VomR{9Ae`p#{Jj`*m3=|?>;5Y0Ac zbCo-39u8RyjWYPA0?|&e1OVbQ5QrY~i8R0lCWa^$o z`jCK|5y*BDM0bm1hGVC{mLYc!VQISR%cz(Hn6(E1Ur1K321)BZZ4iBH#E)0@+-Ate z$3vf57*>$A#x}@#l(2C414J(2TShhe#C=8gy!B$E&cozb@baYp)!9j9Vvm5a zCjoiw{|1Lx4Ob2#ADiLv)!=@9g&4X;GZ@`>V*t=xKXeteAmI&QQojm;$=GLZ2CJ_-^9!Q-U!?^KJ~mQ4Gy02)vw1-EX}A)#^#8+(33ZbdekvU>H4O zaecSsS@ao==X;nBtQEJZ_9;5G9{wP7OM&tx-l~M+^9Zb=<|}`Ds@Fw%F^Qp`o zdEVIsc8*m8MBV)efT+|iL%Z3Mm|@#00+lNPe2DdCX&Kd%iRgr7vhNi|u=#fThIWl9 zO}7I$xn?`^uD1aR3WqhFXMC)HqJDvzbxeKll_#6o4dNF`WN+IN9=r{5d*|Ia#H z^2g^+9n}iF9%f!Eyr<)OKlh1Gg?%#)R-KFSQ`U!1eO?HY@3iXIHSO?}?m7RueW72i zX?^}IK7TZzv#nFmRYojaqQ9Yq;@eAjRaE=x1lNo+Q~slBo9LMufd-s^r0#*&hfa}# z6)0A!k*B7&Y*}^b0{;oo4M8TEYojMm@=T{o)KxyS&Y5hZN2f~q$VKN>MBQLMUg+3n zXm;u!Mv1RF(t#yg&30p`inI|Dn3$mPYa$ z%ZN-HPjQZm$1bGH`ujl zMx*S8-hx7=PP(IVo8Jp<8HXL>`%|9j^;|F0K`yhsQ!4e@VHg+LdxVm}>SJ&iTtH1G z9XEIvYa`d`!+pFVSoOFEG4Yf$gC`&?+i6RFqL=9Fq8GhWy*Go0k2G4R|F-Jk*pyJI zr(}npQ(JpG60l@4Jg~&ia99#J(e%1tJnvKwnzCT0H?-;*pm3K<#zx^ zO}!qbuD%Dl7}TG;BMZdjoCi%8sgZ*iISpt{@PLRhZerCO{A0f!29XJ*TqA!4P=F!7 z0ev=aK77Z=_a?$#MqPD8JTNJ$2f>1M%4CPhVHpk^e1TW)PvQ}I0-cl4@EFHf%U$q8w)_#SRG&af3;Q>ItKp) z#fRYGK@u-r1XEDLj-CZ*s!8eHkc1-jrYzGRL+Jq3Up*}Gp$JyO6#`Oq4aYVkMu2`) z>%c(v+X5NfbAmF9#PxPf9``->mtI646fjH)wd3G>OiQ*FUO*681U?+TfYsXWZH{P{ zM<8`i4A_T3yLag)OaI5cC-^D0FAmudM#-NgjfEgWKEF`ZeN@Q;cZ+6ptLMD~bzZiQ zQ81yNVcUs?Y`Zg2#$Q}!>z}4*ys)xXPp(Q$kNG$fDU+OSecEl`OCXFgULYHMWuQj0 z6@ST|yB^1gbTXYBF>&n3HZt9lIXxu6FPdN+b*pf}#Y%TPzaM`IK1?}$q+z6cV`%^v zpZWU5rbTvzC0~qG%eK9G^$AW@+0|QPtXg9-Wlq&qnoBf~V`$#!860Q_wS~e3`cX|| z=vXb5DlfGaph+LDm|yp9pjmkQqv`2yi#waGF$P6%E8)tw_gk9kTh_bcWo5plpFNo8 z;_}@58EKT{aO(X1Z8z;>I+Z&T?;f9JNzR7g7Ib|@AmSF18)9buW}KK>A;n!p)VuMm z0<)U(WVC0x{pyE#$MjV9`XSM%=^4|c71CGU)hn*qI7tmyWrNl$#sGjt2i`+^fF?Eh<%owEnt&}({tPlN&6ps78INUY0)s-NmcYtQMYb)~ zwKBxuEim~ZMF~8o#CNwl!OjG;`>8=0e5KrN8Fc`xR799-#TETryJE<`E8|7XfeZQL zkf+{Zhz35uQ%tdOpK8RS;$#@eT<2gVFYZhw3N2R~3e}H&mdF`v3G&0PZsw}U~=3+lgXGq3=$4nULb3_p}ETP)j!VMPi}uai4VC$ z1oo1UuZ;~Z@DbG)HDOabzY(-*Ie}zgkNiTZLn1es7_3>`ac2 z!13=m{+%$#H|O}~oVW@nuJWJ6Jvng|PF#f(SK-7}Kq#COSK-7}IB^wDT!oXrfd2?S*T!n*q;NVp_coi;AT;=a}!jEVtPF#f(SK-7}IB^vYK9hs3 z{fD*0!K-laDjd8@ZYn3P!ilSJa<3d8f#V}^d<2e_Lk!# zaC`)gkHGN}{x^LD>HFmcW$k#GLiWkd(R!qQ^!Bm7o$tkpz}cdh=WmNjixZ8UZ^z$! zOiWt;SS;A&^02Ar9z`u4*?<@>*H0NtEBgr=-vNTE|J!-hUV*;&ouOfDS<`dubantd zm_-npQIqjjCuTMfwkg$OR(UVkwEM{NKJ>KWQRC&K9Xs2ZFJSO_aoytaqXRWegWuy! z-WCO(dvI2_FaDUgi@ILfgXwGCPUv=1Xf?!BNKd&_R0pzluH`N%Ue4j-n8KUCW&OM8KsG#46b zT*v)|jRaCd7e=u7ov9(T6OIm z?hy1tA(ynS1H7}s1J#}TF*mkN*oXlNhGg~&%(xDX7m!J0MqucpT@C0GC063n3^-$t zsl_smJC8`QhWO$y9jYbm-DPdRqbp}eT1T{7-Vab>N099 zUh604u#c~sq5A}J?6sZDE;?F$8MXOvHHNY08ZS#c2hdnVbQ#d@@Xi4Kr<3OIAeNXa zAZ2Jh67iFB@IKH0*X}T&>*^)kT1M>wolOOaX!d3mE`$%zuZ%Q&lYIv$BcvT>#3<53 z2Gz2GmP>xV+*X%;kJAzdF>9Tbj+zIQJG;HGny?Y4=*Ofu@l6!;v(zh#0uX849-B6+ zc0H}heBAu(;78f@t(7D=L~BCYL;f-`{fiNQdG@gcRu9Md|JY@@}u zj{0}(cI3NS^S8yc-}#2WKEqO4NFlatAlgX3zvjES`Pzq!bk%1WBFa_vjhXtzBK+bH zVr67JhI5R01dd*fGN#IB8rGf6Q#lRjVF;Kf_y5MK`Gz+LJ9j`A@WB;B48AVt99J!# zz8$O)d>@9rep1S3>%vhodiD*Lv5YbRjr_D)I@m_O^_V$l=+_ng$0EQ-)7*rZO)=8g zq0n$AvK~-f#yKye(&J+01qsXwGy_of6rV z_Rl})DucRKx)gyAo=)}##4tvBI+bA6+_wj8Kuq6em};DhS?J3)2fU90nBg2Bu)SXU z4;iqv6{Q%d$ojZtl=uu2P_*^vgB{lHnvTU{*)1jP2PWXi2otC5f#_}wM4Haw0U2jB z?`$t<<98R+b|@uS0>$~^%)$SZHGn5ENe--Nz}Z7Rw$irHplgx+yo+*&av0G8Y&6W> zEWmD+ImKYr)WU=I=*1<$WmKAN>kKYAf)%FBMBXU_>KvoP#(8W&Lo{6EqXKxgf_d3n z+_A+mv^XZqqzZD__m66_*9e2sU>iLeOv^28f-rFQ{neV$N))Zv*_3f zMf=?IfAiF>#+U&@F|*7SLNNk+e{7`yzEshTzQzfn@>T$$_VFbOec>quIf-$wz-Dg3=djnR?P6Os@XEbB~QMMqy#qE1Wyk1%fAjC7l zOq&8CsP;Fh^yUMAB{PnFCk}}MazT22_2<8{VoLnT6so4hhQTz}z%CI?1*lhR8D&BU zonj@Z0-Y~X0xmi2NCs%?#5`%X-7?AzG(tQy+h>P-L{lFFZZxH#qd;o$u7=*v3@)RX zLOvMq>YR0GYCw$L283i&UxBqTY>@UI)N^BzN^o^;Oph=ST;*z4q**x`KsuHI_A@=d zwtGxh-%oqi??S1%dEH&T8O0|2Ce1c+X4#7a`L4wFi~@8?PP7&oyk!IxdX;Aur_@QW zNYt*0kDKfq9dV+T6;aEI$I2p&GcmdI)qEwdN>uHnvAqLb`dzOp%48ZCEZ=5iPiMIW zQvqoemZa>@^vd%NsfAaoZS{VD?UWrkOmOP$EEq)dP9DwAye&8CT*jPw`YqpHwNW8| zEXrmKd(^jqFz1MQO<>0ZGGew_k{~{1YAWl<_-B{?Qj`43`|1Zz}8q85n1WEcm9X(<3ezArj_DQ z&q+!qlJ+bHy4CR$I_=)ZN+3Llne_Lpz&hNLPZR>%!3&|13xO=Y9K^tj>I&?mFkn1o zuusBoCXrpxU?O(zHeBGvj&=qP$|OI#!91}RJF9@1YCwjcRuPw2!4#N^mSt-_2kwv$ zW$CBx(9c{X&bc$IICJoy&jGe3g0;%vTd!NM$z01K1AR+?B` z*mVq9!Xi}!Bq76x_aSEPU=`Hug-ms-xzT_Q6tg0NkIJqAyqek>T}ye`DuZeaa2z&5 zz;TdWaU71o6;2BUxbQ%lldt=6^m@3z01vzvKttN@y+UsNW{-bp(;18Puz<+TaDftgC;lCt zrLfX(e$=<3Gq~~7^FG(G{e5Mw2|L}&ZhWQM*7~UHY|b=LYjJGP+)+ZWhKRfd(KNDGd8I-cr7 zQzAPIX2em@rU9MvB(9L_=m48F1z%XaDf+MayT^shQteZ;JThsiHV^AOZ+dQgb#9!o z@$pTO8Ox4}&P0Y6^M-F1Lv}im{KA>J{=gz{aHU-Eye`e1IMLLUedF;98(NN8Ny|{O z_f><9ZNLA9eEE|8vdu6hcyw~EnZBlLamJzU=qR3q-7@L*tP{phnwQoWO!4^NaNtenb7DEjoze5{-JdI?|aD36|zX z-`dnc^!+H(GOG5Ds1_x#fpP9qvwnpiH!cv_RKDfwiPR@)*3^l%s6!~Do$Bt3k zGJ)Y;kS&;0+gmnQ1PRmfZ0EkI8j_wq|Go5$(d7ORt@dchVSGE!J;%&iu_xMD{gVRb z7z0BM-#DF^quYo&(I%4Z!J+$#wS5mRy7U+KxfJ&xnqw;U_O*ifm}4z+p6)$K4#7F0 z^`snyG0O@^5A7bY9VewerRyZv>4ZsC$4Hz^5CM9NKY8@;2H92gR(SYq90CKH(*^N- zS5|uTFuZgN zv&aM#s!!SGgIHFy1NdOk@I;eDO65f)<$D=}`9Zbc0l}S(%<`x5)^Rp4x=UCOljNgRVBO9e(pWCwW+sh7YkXw>=kn!g`Lf9rs! zz%FjTit(X1AX+MJ>=4Y7^JXAPZfB01_&3kZTHibnj?Obcs+M4e-a#K(>~$x?+=ee8 zPJjjvm)6!*y~yrZI0jl!xPkaa_YGiDWYLpZUJGg9R3I1BE$jh81am`xf%p=RE_DP) zUE7ISIPJ+ej7=bXAMGfjxFI@OPQ~Qe5?gBBg4PXFom> zOb{q)4D{_oQ!g*03L}tgSg?z(?7b7waswCaZYKgxi>O!wW{uf+nC^NVvBhBnfyU_N(Z8MVdHhZ}HpV`v3{#~NL=jACV^BKz8C z0?Q~(h~lt}+Jt!kA}e}WE#&1zAnAAVvIMYzJX_d+>Us>hHv$;GjX{v6b;=j6H-Z-D zp)L!|!V&zp!#}-9O=wu9)>XNRo>voZgBpm>==$Ox4taz3z&0v(zAc-})YWt!q2kPk zVO6`^bGpvGy?yFEO@}%_oaZd{OTQXq-|Qvei*^1;E-8^GyhX~fua;QP45ooGd1->I zyNoi;3~(MVMHG+?P*oeeMvdP`h^9@hWKs=i={W-|C7S)9>?#|lVtBKUxSMl!zc;43 z)I2a>k=yxZVPGux?VjsnZvzCahl5p2cR!7ent&*K>X_oiX zZDh<7_7z?WE}G5nOA0sjt0hwS5}ow7T({rW7gC-uQCQKVRA@Dm%ua!-@}aq~h%Hc0 ztIrt_13X6bgtSaqz&iTr9~OF)SivvRR33vl)dYw+Dh`@l%mW==arn`nHQ18=P$>^K zfeZ!Dz6W;T=TBW3T~B?0mXEX^!ZKHDgH@S~x7q{t<~Q(S?XHw9ql_hr67>i)Z zoq9}nwCMr;wN922*bhK*XCb3pzoK9e$MW}tnOuD!q^jpTGBnG2CaeeoO}luJeEFdX zAF!^YaMf6C+m6F;vEp{+YB`dvJ>IyOz+HPl;PPa z`U!kNBlJ~r85NF4Vq1xrUC{8*B@poAjs|XD$wtT$v(nz-Fb^-%#2W!ERCdCKQ*%Q< zYog%&rgbS-i+u+->Kk7T&*=?A)C1Mf#1sE*hUXe8|4jV-yUz3fBy_{<#1CeY##k|K zK?LfVaz|h^?oYSr)T02?k_XeGHLM0UT-h*gkqLA_nyo<^<|m;W@(?f`C&5bTXUD_S zsTR-#dm|C~rzDg|43(@IeO@Zd^kh{vwnNDaJX z^J*UYNeBlt2H66nuNlp5r87ts#E5h(Vo#Z;C$O$#YK-TD#%X%UOd{095fzxLr z$r%4f&!26mzx{4LjAQZR5p6;>hPhi2X3M4f7XNt8%O0NXhA2Re>wTbM_~2nb5}L_X z15MVf^X2dAy5+`tkc*jW0(l z(Nis5O4s^&tiFD&nGjf_T3UyVW@ZmqIWle}I=kP=!Va|Z=OxC(q{+H_dU<&q7Cl1k z{G=t?-YT7D_+7;Y?(M0MlUr`9jzVzhp_@^x&$3P&WORv?K57FJ*&@aOUSMa=DNuZc?kRVyb56N-12@5f|;=(q#<(9VS`ku0xLmZm9 z^PTbC00WY_n}pleUZrhTL;hwqae)>hf4?Bz-@~_cRY1Hx2K(WhxQ;))B21#Iu8ChH zkm{*+o}J>W=G{e&qUDfegMF28E(19dg`cmVy%cGEta?DGFcLc*vB}Z4n$%e@X`>rd z>#mlXeGcnXvQ7q{DPA*5e_*l9m>JdXlIv$BOcDg z8F^w%itrwabl*qE^Jg*LS4dwJ0|ST(v#-w~UhB*oE|`dXG~e6^ z_RNlqg;QYE?%e~sfEDNOM56HWM3TFB>>q{N>PsnHeWQ9nM2k0|rrqFKp3`fpx6kn% z^JcXqDdSAxTSfc`FyHT+`PSmduN0ZGy}Bgd$D`i7)z6~P0li`@!3T8%2iwJ^5RoKF zbC>#iMBVqnJ$LgqrIXI;C?sk6-*&vs7VDG^V5uZ~V`><({yuW)J>yBc$={yZr(S-h ziQ9a?S+8AT>UvQ@LGi;o-OukUXowaRbC(@1kn6>_y`Em93iAjZDu^%4F)2#a33Fm* zNg5`o^}DT)IPWZXZ58KW_FF zUu49=4c8@&BvN2LXfPkzu6BfVxC2>JM-FU&Hka=dewD%cEead)j!|Efp3dw!N7K08 z^(9I>RxxI#bCT|2c~vLKVck{BOt}wxldLI1Wv!3x=DD1*E;)u~A>mDJ3o4XmM{qjIsr0Kws%~8MfHO zoZ{imwD9e@@u;G%s{xAG{z(BYYtRtiEe0(puT74 zWkf35vQsJ*bPwb|uG{9TMv-n54X-j%{_GZVtZZ{uF!$ljDA9X17)E;l012JbLe?0t zS|@g}dEVr^Ukenx`XMD=-!S>9j$~TA-isr8;$B`w@dSez%U}e=mx(W67YsuNjfTm2 z6p$DcHD5Gf3QZxR6ocuvWZhb|LmfqTyy}EX?jOis{D`$FE3NEwD-w89%J(s=-=?fz z*W>LCm8T)k4TbqlBo<$PXi9R}^?P<(wzlnvro8DctWvS*Gxre$dtnwDHJkJ`C1u`w zTjGDy%;MRo3Sto7{$YN-{lfUj%i8*M$p#+dt&=96#2s^rdUX>0#qGUg?Fxn(x3q{= zf5h`l!TGC6=B$vdAc;AHL;M!`)z;tI?ajONRhA6_n=4&p%n8ZH*rDl)@O_9X)(d2| z{RkxO`4h|!J#>~m5W)6cM)mCnaYJCPifwmWMqRLgCU0zHTm#nXQ%u(V?~-4`4@JqDi~qZGVg4hG2l?botE4>zD;zYIVuvHrz>!;I z``VJQWcdgNGZf%q4vkS;KQ$nl3BZv$zY7Dr3Bl}6q!pU8tlS0SG<96a!#DUo9hUA- z5I=J&T+AXj1_Dg7ue=0R3t*D90C(>~E4%kE7S#m(%)fb2{157FiB|UQ9@s$9s>S#4 zQL|_sgJJuvq532YJ3&p^Te@0k8(**G$2{-UI_$=BgXGIXr(c!TOT+UZM~7WY zB{w=Bl~?P=KeRP}47I2uyMV>J1~{>)M=9pWF4+fY)|@mOlZ8hgZoJx)JE31;xzN9( zX^V-y-u`s4{UfdVws*tQ~&JQQ`u*lL5N6XCy23q0tg#nxa|wlR|mD0 zW02Lr#gAoxyI|*6fxz8nsLBE!Zz(qgzjF^ZETdF|F+X{FxSbJ<>DUM(_vK*PZeGN2 ziha=FzvU@wv9vw1(*=}y>Irs05#AqD=v7m;j0(VPmZ>~WW7d80_Au;VDdnBhCiY`% z)KIV5i{x$+T^y|2fA=!KrIx;-x+~{;K*zJQB3eOd>{1XNIV~f+cD&E85^{@2<-Vfsr1OA`jlYr>vP&d1xdf8L{6XDkoJhDI$^R!VWQeoN-wK=b4bF7 zc%j{nOi88BqJ4ah(#4ThB`Mg$I>GdI;Dr>n-o1{M-_5VcyRAQCFr!7pHq*^!LnGu9 zBx&S3U0kf>{<2wmOBmr84M&Zk`RCCeO&qi%-d1|QTHnta`=piJn1wy?#=Y0-n6vnf z9U=+rdShY(|E2N*Z{F$2tp!wiLXuG9R0cZMyLjeBGSrV^5}!9v~hIitqef+shJiincF;uM}a zX1YXvruruT5bLW9r5z_uO>y7RvZ%PPd-2Ow?%O*?j3TvvJw2y;)$pa6CMcf}PnqVQQD& zPJZ#*o=a^4CVsOqdz+d$`xP+0f(KS~#B*qzo-?NgpTm3~UyNwQ5a4ehEakAEONJJ^B;_B;{4t+yiXK z5^F`qiaJnltRzZFIJSlzeq?QBs~G4Vn~5BS8CDoS7PxCvSUecD3=mK+zRIyddSj)7 z?00QenS z_HWjfKbWiLWMk03Qm3SLmMLMQ0D|68M)+CFA3*h`?R-8rDX!Ly*Jm%yZ3q{vcHm}LP0}iIWdSMA+GUGqc~ZOPt7nwl z=?jmCwB2T(i59#H8V(aHOWM){8~m@Y<}*+??!@zwh0!Z@u!9&K$GS=wwYlTgfbqv`M{|tD$yY&AZQ~ zwZAUB*hTfyfHq;s6l|Xt60Sv3Le@@zBo{sv5te2G7~kjjEA3d{^#ju`W^o+2IB)QD zphQ8Q2geG;FD!rq+Cvow_9{DM8hl1(5lO;*_2g%PhO9MpkPCsKf__M#?F3%lTxA5! z8$ScInwH2)!`0Q-LB7=dGm=k&#}M=~N(!12hTDN6fA}C4`m`PM4Oj+qv)G9Vc7x%{ z8c{W;f+&9K1;TRwlnmBM=dM72I;~6#FH- zp7yp?ziyR;{+cObPX1|Lr``}7gd^+B(j@TVu%k8BhK8op-`;IblJO_@s2UOtc3L=g zK094`@UsH5%=x&p0cA~iQf%+JTga2%F#nFQ&L~^^wVCN5qvb`xOM16I8dF=!ee{L$ zw-#oZY3m>H3MseWo}VsovDep8pD|@lO!R!YxTjewjlqwEe-3KKWv+S;19|Ac7Bxh^DM{T%Q zlCygMk(~8|0Henaz)g0Nj0Kb)E`ZWw!U40Jm;8lAx~0Ykl{sJ+!3zaxWXeiuUa)WJ z&+1S3>Ehr+&LHpY1#Z)z2QZhX9kF>aKRa#RDxD$ zq=tezdswnsr#wNTf$!;s@xgJO!Xd#Xg&50Eo?<(+>(>_vDmu`$z^quaOMJUzGMNW_ z4s?Ja)on!l14{I zsiUO1InwR2=C>nnOH1FzYJYQeb$FbfL?Yd^7cd*ni&M=m@B8mXg@z6Z^0R*d zOi^S*gKmgwN7H-mbBOHaS9zqR(~+G_f;Kk}!fR?EQY*i8-G<3tHVykQym3syuy>*} z>_ClPo68l2;b-NY5}I*^(Km0tP*1E^Dl_b`dfFGC^V(8+0Oa>; zasz7<%GO6ycKh_$zd5a2f5-S>Lpjd@{k`guF{drVq{872(&X)R#mVbU6TaH3X{$5* zfye&Qw+Xu-?E_X~wQd!GMb7%kxg7eflnU9!DEV1+@S-4U!!S&d9M}rAhVKRU{Q}dU zAUUdh;7_jXr#`obFzaYLHOPc|WzPs9Z`^O>q^KjQL};xGjWlY7Knwk1&;jhr238`d-=zStajXX9+NT(a>=J1B zGjtix6cauOHsJLb)+^r{^qdzUpK4%7&+o#{XSx^8aaI)BkVR=U}-f6pF|dkmnsx?>B7K z08w`X=-H&&WoS2B5;JUDMWAwln&t`C8(?dF&&oKaG~Es$@0#t%yWR#QC>+*wp7F5) zhR+K$RjLYn>#HGaBo->u1tr{o6!9*geWBkQ|4XsmcdW9YEbtF3vwwbU=9-f`A+$Tk zX38=Hm)0wD;_Vl=Jq3P`4i{Z~6RGH+x<*5+`w_qPo}KBgfGtTtrODuO zy_~+0TZ(q^{x)+L(Gs`cD=)?H&u0b!@X|Ii^V z6=rB=O}Ny@o0rJwo-bk!GxI8{icwvsF$X9veWpG~L;4b3-%1UUzkGX3@14-|fQDBX zDfh#V8LMAR9n}nU>MHHb&YURZ-}ljI>l90ZooWE zOftf# z+1{+JzX=g)_G5G`YKUN|f1-Oia*>P;UaFIoD3U5eW%ufMTttM>j+ z+ST9QO|Nn2GEAi%uI(MI2N>gwdt{A{>JZ(NnY7s34}^43!w*kKgxYHFLB9nwMuWNA zUU{ZRUj4R#J2pc}5X*f(G#B4&yfY+QC?>6~?Qot-#a6xUvj;Z0Cta}fYkuj?>Jm6^ z7x0dlLz?U5kbKF(IKWmApGCOv$%kydlx8;Om)YOBU*YEyvbn}63 zhhyjNu3tQkt`ZjbL@kPqy3(GpuC#3J-0&epA$G8F_|@$20p0ObaZE79ye*_AA*AMgjS3&>-ihr$aY9LyEZ%IvIe`dIF1 z8r-0aDKc37Am;b9()PLwSEI~24)VqpLTkO_&vp0uMqU4;wyyMzq2pzM>)qOV)lU1j zU60p4ri4n0uAcnQpM7aknqClG8J)DxA*nM!dsmtNA&=6CFA}*o?B6eiovuM|i2jn7 zlH>Poa8k=tbh>NyoXWzD!7I3)j*kP!g5(Sf;<}{Dg;yuKNSwdw;rG=oCo`yyl-=y8 zkwb|7%-TY{!|QC}c;w^J^C3Ae-DK2xhqPTcCg}UEX?HP;8tBNg$mRQAJcBg4SU8d-IK!%Wn-Cw4@|MlT?oSF-t~%BAf`iqWh5 zll@Y!=Y5#?EO6&)4jB29ANbSd|))K1lb@7gue#!6wt3K6~GS( zz+r2`Aa?@U5KEVr?bSjWKh7cv3JheI^E3!)w83mY3|r|mE3Otz7d#J7a{(q~>7BQD z1Io2X@r?jWzVWgU;o&T?_;zFN_1#iT^YY*p72Er|*#`@0GW&HeJ|hhXBtH86b?e3} z#F5|n9axgBA@G6@0wO9zUXmMP+BM_G+6;KAml|f7`w=1Fo+VB({P4I|T5rDY)6QmM zTzjo%v_x}nGoO^JO=q-};`^+RGB&Q*pnVcXT1I`!h(P#Tmr+mIP&)oIRJ*eV`ow^dodAeEZ-Lw-{P<<9ABV@- z@mY)YdnqWUlS~D5=XD@K}0%tF9_QHQde!;s0 zx4~CpqSNbEKr*?np>zB8?d=0ttc~}vTC?ICH*UOAT~adlIy}+HQ&ChdF>j#S@>qSV zYUI(BNM(@WQRfZC&7JZEP`n-`N-L5olny1`xf94u*+mOTlJ}@q-#{)%-Ii?8F-Cor z)#sJD$;RBEWog32cXgQeN!xZIG{(o8CUn*y&db6ycf+1bquF-+CTMD`?JnzcoEtx*{udH=B90S?!I5!UQ$>? zBF7{@tTE60kS=^nF}pfVC8bNjwA~UNzKkM|V0%iCV66sT)-D~+|YiI*e z)d272Z`YwYH$=C2{#)x8h@?t`L0j=r&m|&;9?b&4(LgEWBfMawrVI^^y~DC*SAe$P zoywu^3&y;fYh|nk$;T*Y&IXISfu;!iV3$!T^GBIv9IMIq7(m>{K$i#%N%SrZ*<(-^ z@%jRNf2M=EMFZVU2ZU0e0mT_imz8ZTL9vC@*|*9UBz>Z&1# z%X?m%_J9&OYf3fDCgUc^T_gcGcV}8GBX?5_pZ1^)zyctZ_OTk;bhQTtuTCE7xJqodt&bQ;S_KG9kvhFqnGEW1x@@jG~bn5y}XxR|K)!XnERUj^7=uyTEgqGh6rAon^uR9I^G$* zk!4_;cKMkw&MU`>k-k{x7qlieF{4}E{q`NNV~-y7S*agrliTpHAsBIi?65s$)Q4nv z#(*qdtG1uEo|0Nqy7n=JPrb6E=%W|WEnFcCt@}E_TzrRgZ;b?K=5$=UTU& z+GJ7Z(|^nJf3f!-U`?f6yD*LlA_@x9#f;LMSU?nz*Z_fnNEZ;IA|*sbq$+_uihy*b zDlMZlX-1_NiF5%GsSyxDK$K2G34tV=|KV%@`^`IZ&b-%ozwey$|6G@a?7i99`zh;L zYd!b6Z-m&mpv9?5le>Is#@7BP7o5IKqLO{aue@?PG-KL+j0ulxi80qo0I@ zpNet@Q% zt^qCCBcW3(ti7Qy%J&@jHBTD2#)zK4zHdcif}{YrB5vq2aVC{@7J$wJvY@LLv(D=r z^V9H#=wny5<9ld9GKn2}9l12Lp-I@F{rSI*E&N3|hav+Iz&{8FnTeoWLV!2C*Bk zh3`7ZutM8S5*K)1uX7L-(d@kvxUk6e{Sghp z-yRcuj|1c7$#wJ^y9j{j)2r4-w56dBZ&cWU{XiE4Wnwmx^qlnTI!6Ft5g@HWYo^*h zgsC_>Xt6k3hAdE;u><;^_ErmJ=w8_w2Vj57fLv-r6`HM7O?dhVH1h=by?ORq=VkPL zXu$*wNxF0roO87!2aK83xV1;WA38uZ@Gr@yTQMp&I%(7wbdne}rJrlni=h5OTt&L~ z`@*f>p>T?~!WvL7ne!&jh~>b^PgoW8_=U?ikaW{=Xs!4+D6q#w2e$=K>i^{m!@pXI zxOv^5S7~mx&Hr-SK*D4JYZ3Q6d|OCVf93 z4HN?8fXyiHU`z5sH`%+OZeGAw&S$mS4<~{>Tcct?w9qh5bJSXhvWK}$Y{sw}}>=D{lQp1s(JU)?`WqyvfDp@K7@aCZ)$@W1>@zng-h zYh|nlB}gV0&^Gy(tU^F%KJ-BmtUj*;=HWO)G!JRT>hnCTQw=if*ZTS3jPIc|a#tLz zyI%rmXx;6A@og~>I~n@+asc`wei^*UQPM~yWQ%KQ^)1=LVtU(?(PQOD~?tA0QN za2Ih;3GtYObOBDqX_W)>IU;{i6c$zE8BgNXG<0^mF}8J^C%(KDcXG6Vl<2;Nop#PL zkbFF@-ukpx{X&P(P>EIj%Xbxh)3L9RyN##uX|Li*>abBJw18bj{HF1$DAUEK(7(_% zIWW$pg7b$-^@C6RXFm1Dj$Z6dr3&s#x_-t&>Q|ijKOjo9#nt9jZo!b+9N{I|H7TZk z$W_>L_{x!%lgF>xrWrltG0!R0AVXN=Q zS;t(3+YaydN&Ga>(!{yrhqhp@Yh`wk7pbx)BOuQn$>;sjuH)|Qda03i52;wUZK;Q6 zc;8zFc#9!}w2WTebVKS_x*)dMU6Cs;R)E5s%a3OM#(VMM2S(Gr*e%RwW|RXvYYl~M ztYvveeyebG@JOJR%eA($N{*ISKFPH)QkK-{PU(~y3V!hZhv;{ilfP7P#k6~P_MN=R zD^_#3Fr}n-zn09{zTvmyCbp$d+B)r*GgyKSrAEG1JfBNmB|g(GS5LagA^H5L_7KmK z4;*;2|9OoqgCH0nSAFWkyR2Q$zVEk+3?5Ci(-~P9SEIW+on&;y|F&jPOF3Fh*6m~> zc>@ldoIXkS_Oy6Fsa7f&Y__;u;2Fd;r=C1zZeUobWhu+8=4SeN6{|;e4l8Mo%9&I* z+By=EA1ss@jG`&6aH_^{Y1#7(AyOB6Mmy_&{OEx%h$$!YC-p~V?#{a0c+ysG#-;g^ zeJ;G&=}L@W&&Q+GTqA=4h4No`c{6=YjoSm4>+yQGI9u3hSBA#Q;{?S|1>DK69XZw4 z6~e`J(x_>z(l6CsA+_y=6{(;8(0pdsue!&Pn3VoRe_IfhJfE`R2U?5@rY6AQY z810_CAFEYMAUca{X-3c`Kxj6Vq_h#2#j|ew-t+pi&#*5vGRn6qi7YAuy<{!M{_t`3^j_d&JFnuisRUNs zT?9Mg2!74!AlN25Iv@PI72}`10&R!3BZZM5GytCX+u$)2TVGA#Uqgf6dz~e5I1mcd zqZXg6@cn2N3pgIKC<9{=Ofb~0zNV)pa9he0*D?( zW;8+b5pmcBBE_&jzo@JAPiIy8x9{bP_!pJ%8|dN~ zc3cXXeG;?GItfB9!1*KyhSs4CmGIP!wYnZfpfuIgheAV&zz+f4-0juTvf-#aN#udw zLo3(cFhN1?wq0Q8zoRkX7Gel-S@s_MTyYij`vXp>#h$_52yg4rYjN+OO9`v$5>Sgi z5XmH5MzM7=1Dh#HtS74w8v>JO%JC|gb>H}if1AtO{P`~mzsvpobz0;xSyn6}oCq>J zo%7 zR&ct)wa#(q6!gVM5=@ni{A~64+5f8X{D=45WDrdGPn?2(&LH?FIH!NdKW&noZIYdB z0vP_U0x)cX7yb_dFKmJoHbDxTAcakk!hZrO{8?bL30~L)FKmJr{+;Y>6TI-^k5iC; zmYV$UI=%^B2-1TO%X6#$*Z(b-AR zOwMI!vdok~AizIt;o3ZCG8fU73cx(lApoM~c-RUQnHX@b%mQTHd&J}>cwrN~unAsh z3uXnHq z8UPa2escBFU#lDV%aVXw@V_sB7!vzkjl_SiQrjj-VH2dV2~yYuDf}gn!k+~Mo8W~_ z@WLi|;r|ry0_z8;!6=10ApznIGALe|Jxg2X82OZuGeH)p=BDuR=}~rL&AOGBBLW02 z(Vzyt9e!c~w0G+7;|kD+is|5q$}R8rsi)e>aDD4`o=JVCrz#^!L|5hQ>%sR zxp>=7dGpxtD*YUzYA}`M%tpCU?3NETo~20IiT;$q zd^t^8Nk{f%mAfnh50GoJE22Y)Wk9r!y(n&J*_n27IefUNrU)wqKdc6I^PIu( zC(Fuhmhf>lq2>fOU4D;TiY2xAffhH#Zp$klR+kQC))FP^D$fa9%F;Aj%Epi1m_z6* z@#@@X_o)k;)*OWRRqs~(yq0ekSz!|(YnGB9{$(x9k%j!VM9JrHwj_UXu9()>*GU$x zCP|8RIVLUht)<#?jIH4DjzhI7+9#$h4@l5tBVakWLnAv&)h96tv7fcwJ;(2kVTFi7 z79dJI;1@c2IOs)xtf7Qi!%8w|$}U%%x$ixXb5^SAwPmTKC@o|LqpWuL;AfUK1-%zT zA1DiD8Bz*u>g}j-MV5V&Oi|BLfU{wFWp~MG?I{^+H-geDr?T`DeET9Z0jumOJVQQ- zC4QfIF0h`+i_@d6jF206+y~Gjp+U1wy)3`dVd0cIa=dm+LCg_wrL_k{2=W!@MJZD(u$?9!0o*{Vv~ z_TG1&ihi5?IF3u=3ajf7jwdBp7^y29$F(nHj*AQ*NmYogbY!WrL^YP1!yoWs%OXIFnpgal=|a#0;z$BupnxU) zfWD$$G<=$oq)%(EM~M67Q|2R!Uk2`E-RPloYgvuF^8poRfrq+Bdy2{1>@WilE$`K& z+;x*!4sLHx7-*6$Nq3Qo)*XdLr8*c=vh4lnaERJ~^8oUNoWu@Wcqf=a@*M1n4V8N& zhQPM7KSAin2SHRUG)trvQTXbJk;7t)F{T10eLtg&N`Al2AyB+q{R&OC@q_m}MKV`M?nBT`~$C}FchZO05@zL0Uwr=`s#7ZCHC~WsjC+FD}h<;l(ClG1{l!7WU+oYHz1`eAYty`5wy%z+Z@S zsFa-bwLmt?lzcQT#4WMurzjM;7;3O*>?6?(Z{{|1e$i%L!*`lSx6-EK$36u|YYyrhx`l z%t(j0Zzu7dJjn)X_D?JnOcDkMJ|}1#i>n$qM#Lhfe&|3+WR^e`%tL10gzJ)Pf+;b3 z{i-b38ARtcOktrn@*#TP^7O2kX{YK#xkzmh))}H$(jzSaPwdXw*PY)rNDs_aU!ZnI zV24)nuNCc1i2kv1F^y-pVNb%F=g9A3olRw7k-j<60~=D@H{nvL#Qx!?Y|J z(;z3K?4*ciH@*~<M=l-MMQNx=s z8Vd8Ez|au&3pztni2xZZP+FN2KD#ujsu(f9n`O#=sTx}LuFB1ZE4JH;N~jeN5wITA z$+`IUiz~G6rz=<5@0D$RkG>w=THhoV>cq44QFEWUi;fH7RNFD$#x;khD#rj!W&G$T%d0D zWcBd?wa|y~0l0_EFC^<2bGb7R!QeUb`PJUbztWJvG*6`eY&W(m0vSTlM0LD@|3!q= z5&y-L-UkL=4C^B4IYXHGqlqlyy}E1`K;s)t3R|{TW+}dyvdLiQjhWI`8s>%U^|GU! zmJisS!7NVs!is%k(W7oE20i0?HgI^LAXNJtA-Dx_`TG#C0aBEBb`vxMcn>jWut$W>U)(AtU z!3J+o8Sy1HnK4<3CQlscA=jc)r~6NxQ_i>V3v7*4um}&>pOx1uxfD|m*p+<U!>1z|%=FUU%g`$vc+dUaFg|EZI&C6KPj;r%_YVDXN?~A1U>lNZOJvC4 zXYY=>^D($6F|&eME(m^>SuSQxCA3BYXYsjYJ|s}8Z+Xc6yP^c*%x8C;(KR;;lAjS| zMNAjpt#Xb^3M+}Sy;PGZZfJYTIeo`C>{aasEI@$YXa_3UJrq&q9IU06_vp*uWX%c2 z_I!p4>h76UQ#bc>jKZLGbpQlKyPL$w#6YaI+Zz8ST#m`8YS zw?IjpEOnh@_Bm4pJ&hFB-r*X@Iz#md%kIZ{P*qow%fh_AcY8q+eug@4OHtY@_B2#b zallXg`h0nbRy?V%ubh6AV>VS@QCDzH{@k(D=k0P$Q(EQW9-dWQpMCEQI-I)d=P6*E z(|a^7$MQ((b5Y|<-{Y@;%V>L)Bdj^l_b_f|3E4SZW6dTIZ_f8m)Auo~9BCQ!BwEzU z1MLH@2aa@UabpW6VL=))QZ^1~s;3pYR=S0CRZC}1YrN1qofNukZ9|(C>JlouJpN27 zT@cF6U&Vvdp$xaD6~ zKW^V~{Z0AJ(|Xc7dmXsTRWn}@ zt)o0`nja2U7FU%dYer!6v5)#LA6EVmmM%Y%E~|enS=QxSR6^&o%L1^R;jWH-aZ0AD zM~bmZd6Cz{vdH5~u^c91=))+bquc4)pM6S^pWWfzPeGriL-prz0x5I}M*S$FnB~My z$DQ8YQ5S_WuV`P1so8Gb!imRZWX4ut-?>wi7W-XPM2@x~AE@9C)9EXy-xv?r0bj`n zbAsv%bonh@byExN)ucsFHd&ga-aW`8_f97Hp1z@uPynZAeGm1rV_0o#$;EDn7-g;N zcD7$P^R9ed>oG<*N?+dPMaNV&Fo;Roml|oZk5mcVe!gg$W!3GzWZ4ieJF5n<#;&t! zZG#vawaB%^=eHC4T9g~>&tu$FBew0;SIxTMAz7t>Z{phlD)rG+ePGxbWp(flYRBxB zQS3awUt5EXY%mV#C|k=HCFC)T4LsO0TO1|RJ2%JT*`1Yl1wCwAM^ZP_asR0z@vcLd zb@LQy7C6#Ud}E>PSiUf5EqK}jJ_o&xVWlBv`hj6y8JUL*P`p;};vD^Ob%}?)$88RW z${xy*)6sTmues%7^zM2oHh1Zij77*t%=I7k7B435-0_z`C%>qhf&1F?Bj9Qw)`grv z>^}_NdfV#Q0+tRa3m$+H`r4Dk8>pz76YO+tEu0I9B}+q7DAWlWI&`LnpJhQ)D^15) zP)_qSt;r@7GTiILvLgcM1YW;5y?4+XG>VQnY~MB3TJ^xsVVUnsH@vfi$pe$^kJ8Zf z^ZlV?;tWz#%`WQ90i`~iS^-0)3FhoY*T+unoiv*kGa>?a_ql{?hf&XAFQ%RKQjwQe zg_@n>Z2rzEp^xhvKbC<}-v_litaIE%uT4^U);X;GN74el;1BB@C0vcjFG=)hhAs0V zPO&1fxe2+uWKj9WqyqujAeN0$fUo1cjVVA7HZO*WCh%8qbgag0PaiLea%BO zKx`?`Dq5kGKfxvU6K_&Unw(K%qnYWYJGa!o-;y6%v;l-aas)i&=ssXeNtz8}B5^A0 zjG8@D(11NBBZHD+=hGy5Be+DF%S<=6t-+q3=_hj1M1wnCd80FeX=}O7iM` zYSln2O=9iSq?>?_4VW0-N?PY|g&v9Fe=R14-Ak{?U}%pSQT3v5>&e(-l|c)Z2UJU5=UBK%ypCi7t|L)sS%j+W<5=$M z_t9;anw6SyesWxpfnj3m_kwXz=>m&+;jB+z2|OtAn0iWHMV|MSo>Vcj6^ya#CzDv4 zM*GRhfb^UteJ0>Fs5L@5;2CnK*Et$atJ5tRaru60ixkJ45JENfK-LICf+2_T89tn1 zTlU#rRLhYvyIW1bS0&Wj(W`r4d^WhUmbm$3ct3HZBW6{C=#F9v5}n=Int*X+ z?nJ(7U3aZR{Ig7ihyh-t{rj4SZdxdo=e?P>Nr`njBg45b*Mz1pe88MXqU z87F#NNf`#l%JOnOxgz?F#a%wP+Or9j&Jj?9KAw6JwRVySctj|V7-Q=kA9o{Y{LUcSj1N!g_k{Uw^L^hbD zzQ_^zRH#`#)UR9B!W(pG0FK=yNJ zfQtAU<*)1cc|lw_6wT>L!Pf-Qy(%mvbVv=?=ZwVjb$2Tl>bSRmKO2ig)Eo_LBbOzy z1R_Rdf?we-G2CfY^lP+FX)lj4kfXX$ck^6)j!)fIY&pb`9VOpa)5Py~U3uIrV5k)+ zMzi?VdA8(-MOaU%qEzb}{pPLD>eqgR)Nn$zdhT(JHM@FbiaU!D1CUV{ zrIhCUF!M?500|cQ9+Y9L<2*{_&3oGSqsc}Hj~y*MdOdcN2vwc+XX=h;(2p7p+t{utFh zl4ZA!7Js#I0dAKMI;?FKNlOxqi4Z?yBH z;CRB!RPCba%fz{3Z+-0?q(uwGqmtcC!{uH{KHRAB_^TAsA@>Du%|RV3U&%Dl)~@85Jrpgq_yx83+h1%$#v8L?seS;>4eRqGtik^$=+dG(DY6XU9ry&rEEPt~c(x85;*IGQD@ z;;inJ*4-;hFzafW?9P97O}_V`t67?E7I&k;u`97Y9==9)vUwUvhI$OVGl%I2?B=%i zb!91!*T)WpNa3gIh(R$7RY};Gi{1qIcTQ0O^_-cTF|qm{Nh`}B+R;8u>~@y%(F~V! z3P-InIA{08TDg@C72)701<|y7UYNQBwVlf6Qq2#gWO2@lWF`!{^}7z$0hdCG_TWDv zOS#{E`UigIQ)jdQ&nI-0z>b6V1NNDtc~+}GfW9XV*v8oNG%G-66Ajj$UPad8^fG=o z@;=CBkiH_|Cy$UjXmRWxAO}Mb4TV$d5c%Z4XF@?Y&;KDIYYA|?iG(#8h<^>9C2d*f z_z;bzOFY^j*7+%1F_BgljT4}D*Cqdm25F@Fx?v6~GUR4-#wbeEZ?HiO6^v7)uutEJ z79#es&c7P^f)TTLntb_%y4A|#Gg67FDiuA5Jxue|QzQYAO1 zu>bGP$>8RUf4}*szq`3WKp`X4uIhD{YW`8xHy3WX&;R^TUkO9>e2Hueot*?T-7v5N zzXMr{<6`b%sKa8Kqua{{0Dm9_So^lpE7+AR%NjX$wzjHYPIDjKD$d@|y;fh#Mz|j0 zeCCkY1J!NBVCN!G)K@Wg*=bVu+~%r;5{IQoZf+yc-f4}-(UR_gApgl#V1nUd?J=1V zrNN`$3Zu~dPpzEqQSUSwBfr+$9~K^19@j6Fdam}IJ;)%#yl2_*B{2hKBZ!$?rV<0y zfGCz;X(YxVd9?Zb@T1F(y`*|_h`r!j+Dh~il50w%?BSu_B}1|h>wK@5Wsl01GWHya<%Sbl-si8i+@qttZZVgRG+j$bGgtzuyq) zI`mbT9SY68bNIf_@eo?Ds1X6zpQEDT%w#v{UN37OOA^edLTWSID*OQO7fW?xnSBJq zQ;Z2HB9X3L*n`~jkw(1K(rqFHgohY(!@3#~aAuy6kT zvAH&g3`liHli-wR)IeFNg}VVs=L=cq=ndJ!QY5@uBCm2?hDZqn_)&Dth2MSt9-D%`y{g+MZJ|5x5 zbDcIheX!mHZ+^j~m_)w)v`scXbKvmViXQi$iyl5cUUH*6R?S&!yN>ji$AbDlBRFZu z+2bP;!XHC*jLtWzW6I@=9(}#%2^wv(WL}REIaGqI8@lu913P4|~MN z=UsO_9DX}L)IHFm)1qC$U@Bg6`>;Lhom-|=hN*Ticn(DxkL}{YE}P~$y8C0!v>lbi zqj*Z(r5fwoW5uODea1(Q=$)b#8d~(KrDVVBT^64;r7`>q&&~O_g^0>>V#B23T%;(z zSABjents{I5*>B(bO6l7-DenwrYJgD&&^ndr)#66IqqDL(Q7)A`Izr(D}D#na_8mB zu9lO&+qbuwiANHGYjrKH#&e?@d!h`wFc{Ik)Zs9h86_dElO0Eo);WIB3dBaFzp1}^ zyO-vDbLiDe3PoKcdpSuVe5g3uK76GRF_JIw7F$_vA6)2F+_GF-U3q4U#15gG$J1V& z*|wG*GZMoy;cwHXUyAA8W@i_4_l^i8W_bI?!sV3(A?YQPIDDgD{-h4&lg_N%jgBLu z)i+f3y`56wN|GlOnH_CziqGQedd0^bmA!T%rk~+CL2I^dF3L|X5Z+C3bQ;#kYjj9O z4CLIeZGB;ChZ%iyQa|4{F|^I*FR=YCEB_B4ow+Q?>Tg6Fp!Oc`z@C?iwyS%3YDjNt zpQYxpZ~jf$*J6SVTrE2->aO1QmaL5R!LGd8zovQn1ZrmL`@BTM)0h2i(+T!`TRxS> zA31rd?v{FQcf%;ne7yKY?|iEZNZ;0kmJ}4HIHeuY>HVUfbTE{bS;mQyj)4wdN9%~5 znwoe)#1~zeKH1@6+U$Jyl|#yywEw85l9QykeLFe9yumzIuD-F_>r5&wzk5xb+Z$iis^3yoI_L)YR_(7%{IghA5sL5^kh9Zq zhi0ySMlRucR}tt}h*Bi$i7lBaQq0Fjs0Hegnt$Nu$t#@rAIH}u>&UAzdC-?`ke187 zoimT$;E~lQHmNWrmJsYCE$G)JjAgLc^>@d)7J;+FwFhbuWv3Bma{O|D zDZD(rdX_N7gn54kUw@pb3H2M(Q1FX4q=g`~bL=`tIdFy~&}?OVT_E`0mZo;#5(~=% zC-asFTnue6_&SLp*zt%1z)cP)49p;nH~#@oF3kf!e>rB2iTub`4~D*_faLOwHOL5b z9|fLeMGWr0BJJ?E_f!PB7yv@>pClJn3emNw#*S45vH)@BxnDO>i!m~ISCBGBfW@HH zm=8FxQRLf#oTh_i<6<5DB2@eL)VCmX;O_mG&_NyQ*L}MYIXp*y^}hR62VOi6S3`69 zsRt0y2ZA`DdS3tpr1!P}6h#N(-tQgR|L)H?+drniC6>=`l;S)So&}N2jqhLqH5Lni zc-83pHQ`A#T!(;DvI7lA`B;&!(e$nB994obWYiyt>$H(sdyc~fE6wwOdKG|XdeWxX z9uiv0r(uI%oZ0v4pebcZI&v5BTMY24fWehfA-UB661CYW#L_&Mx$Ir}43PY0<{=R%L@@5w0fjcHKs<$so^`J9V=4QoJ+w$yR>T$QJ|g zj>3Me%KvsIvRzoGlck<9X@7t^7nePu!5N(0@3JNnnsIqx@}6!?CML1ddUC)%A-i8^ zdpbS`L%&^*b#%n+I?-3!skd#f9=}4AhFn(7DEUrwPBvy>IOXNUKx1%rZl)_;{hm{9 zwyO}$?u)C2H@iBqtWUT!F2B|jpw*46``vd)23 z35DJW&ot8<=y8lB2*dk?x>B!RW+N1Fy47~rkJPksy9GPa@zcbI%lg{6qiF#%OWzg} z5}VrRz5VMspJkKn&cY}>N8mo(S#~M7T?~jqciucOZ%JF36{X=(-OGih!x9U&Mq|jm zr8#40p|4GOql$cdlb+Lo^1Y5t z`Y?fvk(^Hj#E82<#WMsupM%^D%D8UaR*ty2KDfw)_X zn=m!E%Da|bLF12|TcYEcF8>yp8A`WR{ z#l`(*-IT|+#l00d6s_7K>lztnmH+KVcO1t0#DHDgJ(VZ4x0sgVf)uyIE$@VZ8AA{m za-pout#sf-7B#T5iOb%81H|6rbPy`W@v?zSIMcb#;WW=S3*1FmC<6ONkD%5w$XgIo z3pD_;L{?T&`D`=fRle0D^I!0AJA!@-7+3X?*0s4q>l_|!r-k8X_vu%R;IV`?B>VU; zYoj0)_*nZ0Y!0@ffk~sD1w7OTUqz7r$46pq~-cGHxqfaB(m#s7}&8- zVb}ImhCaHbRDCL^A+gfEv0T~ohebDG3F{IQb1S2wbGb@!e$Q00Pnk0-3aXU_l-V1E z$q#M?_QL#(!W{Bc5}u1?bvN7ZJpDdZqByo4B(+1;t)3tD#s;Y04sjP|2)=TnsRR)O zK2$Pq3MX$JKL3IdbLGK2`v#VkP8)N4r=O-eZGMm_6_7 zlCZ1YGg?TR=b0{T>Bfx7+b=Cbf1!@AbA+q$?dq@Fr?l6lPVn%fS7e9B*N0C;ODZ)E z7Yhn2+`6@3{_44$-SnKnr3Be(HT{93hO>VDBD5tBQTt=dxp{}pzYdMhRAg|QxeYO6 z!*}}RjJXe zNvSydUsm@UafLLH>RX07^Gy?&3;K;;FvE< z&}=N^v3vS_J@k{8`&JeoHB^J|to&|?7S^4%}J2$$y< zWOaaiWgl@NvSSCxWsz`7U>)TdU50-7vorTj>9HcI=w%p@I|)+z3#tGN`Q-xg_$pZL zAMnE;(s#0}U^SS8f7=nAZKTmLsxotw#yMSABf~@vI8%`gF}qmqY`j{`7Div+&!!mN zh=Qg=y*Fonl*V1A&cbESPk%hIRxpd^@bk9?y!j(fiKSVkIs1hXe2@#i-+45(kF@69 zftN}1_RnaOPS4G<6KT&S;kd`OJ+CSsp59}KpuX)P zX=6V^hIodi(L4vNB5W)D((l$Buru=Y_vcL;QRKmB*MKCuXL$L3opf$*_JHk~D>(0L(k&+r(lqfxu2UTxj$9MWWxu`jE@!N%lv5z5%0(;zjmW+9}d1>e~* zW5Kj#9cNb{onnH?#l*V&gaZgh&~v>Lg})hk3VzBTi4mFnF=Kz2dZN&!fnmf@EW*fv7gZ-*#4ml#9A@0m(^g8^*>?4$n9)%_%u zM09w9R7wUi@FDrKI<<_|L#{eZ(6^SC9P`9gTHiWs9(yawu&2I#Ih$NZwl)i#sVr%e ziH+3?q5~g1mWx&ow{SHO+2@w?);SI$`}JVs82U}HdBvoHyosf3s3O}R>4IAQ8QPDW zd5kjz!%)SBupq#WhrUgK#jS&>Lga#$ulwD3Hzxv|=8w=E*gG;`;{_3q??>XCF#O~) za3?E40#%Dq#Hs+295JiEK(i6+9Cq4UplKDH0O2M(2RV}B3u}XpSB2{#swwi}nrd0) z2JXu*heDcF%*4>Y+k#)&?m`r=kz{zjN9<$0j5k!O*=tcuwTh5wY>1#dtCoe{cIZ>H z2|hR!%qzFf5#J1dAue~12*YnzYBk^iuxdU`7oz@%hDIWgZwU{ouf3S8k)kF=RBxpb z>JP|L=iXoi>2U--$_dKVcnylJCznr@00QuP%d z7Ig;7o#n)ju&*Zgjnb3}59Zr0Uq1ZKS7lAoYV{mcYX^;_)yRT7y22z_hT-6pT-Z@d z7CGJAfasrYvf8Z`>l(PFni!D0eeUJSltv<-8b3~LlygzCy3#g4vT--o*>TkE#Bnxo zSZcRHBiS_Y|5>CX4|*p{kK|AVddNA&NW2y=*tg&fchg9r$wRX&0h*hnld`95*v%QI zE|#5=V=_W)Qmk;PbS)51n7G~c!}*JbcW!t4>-1#>T4-6BZr7zelI}W3sEJo{6iGF+ z)C)+t}Z`UN$oe zR3+Ub6WC3p4UdBp2Yr}j-h;jrf?#-Za7-HVDA`Z}k-TY@#mCmmMDK+@j0sMLf=S@I zq306mcmLnQY_9Q`S+J3?J!-@28%f6tR-dLi(4WwR8+J=JACP1CXW>v?ZlG`jgzhx^ zRCr$>PJgsxr#0$ChJ&id`FjJz2g@J6y>&dMx6NlUu9U*T-pM#m)2oB_YYVWBGP+0P z=WkW-rukClgS2J+j{Puw8)wvWOG|N#%!{d!r!K9mc{OIeewU=*>n2tCHX$;xsObH- zw*u(*D3-(rkGiO#DJuuG_P=`(GnV? z*`%Qy`bY~|V67iCZaD%ToJ99Z+)#IMBc3YMGfXeGN!oONOh*$ zCOf%Tb=l}9uF_4l8CY}PQp>|kC4X7xP;+Of@Uiy30BCQ$=weh9v}LS!8QHHg z+V{>Q1LGr>(D*4o4+k98#1)MfIPG5Vi0s7q%hbM-92-}$&|gc2&S924-LhN2y_g((-AWi8k*{RK|IaLdFV3 zu)65tLVH$6*5Qn?dG3Mj7nfpY@L~g^-@w+S&fB-}Z^)4xVo`bw(=zZqz64e4hC)SL z>QN&;)K;W%Jy>aYtM5z`f1k+jN2biq@C7N!AcZHyE~p#bYEfGAS}DCztZv%0&M}T= zO5;3wA*YxDXoRbIR&2`Omhcb~*5VpVi8=Vp=zG+2MtI$HgT{s09T=sO_ATD0#V-Y4 zR2NcT*>mIWGeSwN`Q2eNG~Xlk_d}soJEK1tyB;=IP$wRDHUGZk8J;lc`DEp?Sj_1b zn#fHQF|2<0$jjxp6sU zyP_jA^Cfe46>x9cbM|La9g%8+9Au6F7g8XC?oQ)tCWki}IWfMfgur4rjc&rhB49UJ zXKG3+%DbwMXLqQ2zDm2cOQ=kP5QaOeT-YPVdEe3hUSe|e3$GzbQ%0-Tlx6Nt^A|r% zGvlv`%*&rnS}nVgFo==q2+cCca($d-!0WA`e{N6oLY$A`+eJ43<^bnP)!zADpni&b ziG`*5R0(_&Hb%us$=M}^Q$oqcaoPP1$Cdk@=c3!)ot@o8zU$99MN9233TMsGI#@!o zF!x>Rv?*SnCOg~AL>dLSNuKvWJY+fZHHbWa#%+BtcK-blzvOnAuv+~W$HNXju{k9u zVXe2?6xfR|gJ#FT%&BAp1qJ~rO~;ObQl#-`qo8d^W3 zVA!Ho=rsK0;w_fNt5+qXDJd?FDJFd(clViuAMjKAIvhCH&teRscKM6=lZ%rfw zN*za{xZCYab6S%J=yy!xXNEGzjC8aMUE!?TFb~fTL)DKC=Q4YH6>f3AqI-h#OLwBw z_N~1m(0H+&V^o`4&cN4C^-7WhnK4AcgkC#QJBjlfW29hqsUu?M79HCaorC%DAg*PEmkzuT(BOT)C!GXFc zH73L1EN#DycctN7f29*gjJze>8B$>635(Oi!4mDy7_5W0gJmd83q^~e>r~eicWaqZ z3HCkNectY&16o~~ri{3ezUO&YRBI%NoeAlyEdDYdcsET8x>=OoeX&o)4QG<2@NB!- zlB2C+lb&G9JNc8R)UgYT%}I$qy}Gxf=H89>x!#@?TardAG&Ku@^LISei3+JUCTTSy zpZ1z|4;w;D%TgTrKXY(PrE+jd#rkpZX4m+GlErd%ydHYMlMW1SeJ7Q?&XH`hj0i>U z)e@w6zSrKx$e@lj*gz4utu&r`4V6eOiBUHN-6RxA>(nUE4z<&=CZ&gS6_nf48jL@q z_FJ9k5-zI<5r32whHPQNJKLCQ;I=ZL_JHV03=+Br(S1V-wB@F1j)TmChsf+f21Gld z2tBIV{pRiMZJxC+CIV%PsjRn+3lT$y=D7B@?|LJfmf%>tDAxPZyih|>zSc?0x55SMz4A7WImo)|XZ*jGX& zHP`Skf-^3YwUhkw{Sb{BhzQlT)5e4R4vppZiQHs`~C2_ekxqV)z1mhJ9 zG!_@_X%FLv#ySi8YL>5rm@gzeWnwgm3)T?udppU+!Yl=MhD;~JEN6ICV;<~Ude&D$_x#wb`yHYDIQbuBwrh0_t|`Lu2(?5}zYKFGitZf3lBa3b zY9At%Al_Jibrr^6>s*Suvv{eBDIJ{EyWG(~`)xsK_SIp>{$0m3mJet$azSO3cMaZ` zrap@N6_&7ZT|~KM+4;>k!Uw2PH8~zP!<0XY;f8QjA^Fv6#alt3>85Mz~5&b^;Erlu{wYj4v)&zym=NPRo=zgP2m&5 zBz5ZQhwupvXf|gi?B>Ulq6=f*9~DE^FHtdl@vj~XmsXlVbBzo!bX{3x4*+`mK0;3@2NOZc8LEw zx6cB4KN3UiAEdiMa!HH*5>JZZpHKR`{b{P_54yZdu%*A;r%+HB9Y z`&gp`1M~@ATg0ljQJQZp2|~8+^Q;JIc&Wo zE@5a8H>T4O#)3x8&x;LB1a2?x^~w#2jLZ7;j(`>8O~geV9;kW8afB+?s+$&^!#Q#sPAO*0CqX zT%oE)XalNl6gETLm)e(FDLMK5*0XP_FD>(EeqSim`0*Xx`6rvyj`Dj^PUYRcy;$UN{pT^iJn3s zGn8e)D%2>}W5fB3>A~7nMohkTE6y*-u18BcgIlyTNcK^+Rn|n!fpE~(Z4H$#&TxIa z!P6f2gyG&WEKW-d&SK=$9r(FZ%Yu@2r|b0j3p7N?vh8lqbA3uO9dZ6yQ)_mOefXC) zhC$Faz zhNR&y+-i^z!?pnyrpAOT{XguzcT`i|yDo~K1pyJ2UZbKQ%?N@>OFltBKtMo>AVgH8 z38=Infu$gzRHZ5{A04Dby3|NlQIOuGBmwD=AcR1QcXH0XP>T&h8d&!~Y%VAc z7sP4G1Kj)IFR0@T(*hT~aI^T5V2UbWDtY*(y?qEHcD;~y3Xt5p?~7;DGs~H2Vg@7_ z&na$^3m^&|6;s4ydUp&p)hAM=S=MOLoQ%^TmjzbW3f`_A9d)Nc0u z0Qqx#o3heB@iN)TN?*>HOUiYfz9^Y<$o$G7JRF)S!;;Nbd08B3bg89jp_zW4y_AwQ zCAM0ytvAGhd+5wNpHjOn+gNN+VRJ1}xiXcDN=|v99D~@l8}9FMzvZj(b`#63TexVA zI9W4T8tfJ$lC(6CW2iYK`$hZs_-cdO)GGx5t4;Gb)B83{FaLD4I^VtT<|Tut#LK4r zHVwR_HVrOq>My|Cd!ryuu=PBEL@7WF zQh$(MsU)eS?Wx(t=~vVd9O#B8+kssArMMzQl0W?sMksahjG}VA<@`&PN#ze7x%uVU zF6!ZL&IBwf`+q- zTu`)M!dIED)aKD5uN{cV)`2M2W&{7cOLG9MmIM-riry#u9|9Rt^NVK6C{=lW*w&QL$ zt_1ibK&McZ`ix`lEY2jlXD6P|lO+xd&xBDD@e?pIs8hMY`InlH4PtI=k7iUC{BRn; zSW=uV!&%Zs-9b;6TMA5uvH)LG!DLmae)Epfdw!74vFjkY5?s{29yj^<`*E#G`nXXL z-#xRYaeX~h;*EC4WL4qVf){OdJ;zO^`aK0qdOT$`n!pLweXvQ8hG_9Z&LkQaa$g9Z zm}c+zlF)tPB0A59*}nQ^D6K8j(B}8B#naRKf5B^0>D@EatL$V+>Ps>sQ;x<(NgzaY zqK^LEryo$vP@?pPGu)jEdX*~mUEdoJR`nQ**6otv<%3qk8<%3Q#vkr84L}Cm)9{w%}KUz$I>qN4y4FukD9ba8=E{bJ!Jk z@&Glq>O=XDMiknMAxLp=t@nvHa3VmF!Mt=8{Hv0Om_<+NsB6OtYgKqbn%~r~UrQSk zZNX>zR@c{@nq%kUMq$Fp+1Ct9kdX8uVVQa=hC4<58M6I3R_FOonGK|_o;`0p%Si1j zwTj+xOLW$&TClubEi>rztF|h!&Y?le&t0!tU(g98V7lv*=JGQNg8NZy>sws(xAG+q zA2wfLXx2A2HP$Dctf{K132iqweeC^M^VN}K+Hvyz_4*JZ^PG^4A73?pKx zzdpG)LfJ^om)p5r;?&?ul|ApZ56?U^=@vu2GOH!>@&r_>U0TD-tmr3e+4#QhnBS_++7DI4bE}Me7blcJKUbXOX;eyxt z6+*dhl6W@lDGeQ1viUkqO_~})DNCZOyVypALibF=SZ6&{TWwL%3|-$DTxc*~42L@M zRq#1C+n}0a)!5+k%gOMg<=)u~BFJc8zL_hUQfR_9vpmZ6f|B^8JqljJJHe6WG z0{61`;NgMFXvf24{=Mok4RXbH#jZw+<(evDT817Z$s@8a3SPDkziO1yXYiZ}gt z;p|FTe9h{|PSmLC%l}e&CL8f^xmTe5Z!$l!4)hjwJo3o&*xzm)EZ=uED>5CO(pv9X zN$7leLG7clW$CB+?_Da}(k*}3V(|y@E=Z0J68 zffER9pnnz$rSDjzU4rP#pB4?IKlpmvu6+jN^|kOZShBk+gD;AJ3h{*tqg8Eb?3Ahb zYZa-~-=C(BG&&Kxkz$j1je723KftaHqw%)XOH|8Vjdd)KXuq&5xbdQTpsKi`F8lc( zHZlBt?D#e{5qK`>;2)Qed@Sze-R)Sz69V%b4#NRV!-SJ%hTDHunM|9m2LR5p4po8yh95Pe z-XAX0RHTehakR7K?T#7`00C)9jfmN7GVL7q`&-r*dC292+tj%M^D9_cqgAO%DOsY_ zlUVkR7?6%~1_45NqcNqH5Z3~YEwebriqTk*<)cx^>z`O>0EvD5Q1#?|JMQrEAGTvF z3WzSc8v4+--V3*5G-}W8?-dCp3Qzc5)}ZP|S6lWloX2{ZN_7MQ7rK`$^E1% z69OL;3ulYWwu7n$?b9=M>h1+cp6Dx5jI+#g#6enG zM`~WXUn(-JjN$4`Fg@Y!AOFFoq)LIk6VRWm?V4U=;|C0?8td+G9j+-pzTE-6+1{&L z9B5_YpqX^UnIBbg<2s+lgYe-DJC#X%2y zH0%lw-@=r{NPdO>phDG`lH+9&TL5}>s0+L>%VtT2!(jFLC>J$?5?e&_aBf5J)Kdyp zR!Jz{C0;j&GYM@DqJcJ=mgF3ZA>0`dyW2)-4|x7Vfj^(3%s2EiwDM^=dhwf!BG%zm z%iM}%;_5cmF`tORmD+Ntt{Zjd9C{w7D+oWq$DUVwY)~^{Eb>5@Th>ND_S4u^JKov?7uX)=d(zw>AkNL(rfi^%I`P3V}`qbKstmnh&((=N zj)4(8?vLJXEb_o8fA_X2Z@T2qb71k{=g==ngrs|ZiXSD)QS-pNVmF7rnr{AKqhEqv zOz*yCT*ax%ed@Z<5#(Sges*Qv;+?Jmy-ar4Q{%T+kcPwqi_$E4w0~|E>$brt7I8jk-q`P>Hq?iYFh4VdeH%kujL$q4-^e6><3BI zLRu*WPVC78+&Nb(5~?p6ck^huP=Y=LfGn>r>0_#zCfwR zo!w?Up;Wuo3(QN86b8ROwWvIW#NP2;{}YVe7ZNjMof(v3=CV%G@aD8SB3F!sph7V% z?i#r(9C6a!O1)|Mn$w_yruTc7OsU$$iX~eg)l=CL@t+rdWEhYrZ(0dMw+3>)Wf$L- zOcoVCgGEnchAa+%Xfz`{!WA@nc1Yz z*UY?(uCEjw^K)X~gp7uKzIz*&5Bt~~w%PQn7}>z9zFQkL)($F9>UA!u0O6<3-F|~o z&sERUPRU$R0r$gg#vD|gPGW!aGb^B(DI`Ebt~{Qx_abIy5#s*B_|d!wX>u{v9S)~y z?6~FNbAydC+2fr9_UJ~a-RBCsFOpPImYv`6odgxmd1eE@ipqxbB91Ez2Qc!-lsjcO--< z&537%^xQRs<$WMgT`m`vq~%8sX@?)aMXw!~egb?C?Y4J)Rf zNE&J4FCH#9N}vb@Sbr@qJ~5NA_`T(~a@kD5K?wtVrEqJ{(njPUfL+S6jF2;H_#I`~ zm_MsW54cE{5mD~D@5!n$jWQH?OYm`8)QquTTRV$`G9O-r6hiB?KfRsrq3S^HeWl#( zaZhJh-buEES|1Bkz5Mt2=x@y3Scv6}o3mye1tvS;%ASb#tQUUE23^zG_)aC2z-z2x zWl)e~Y>@$^7Bth}sHEK)FjlcO$S)bVk?LCT-gPZ51O#CPZ1E=iBg1<7#yl zWtnyv>=xR{*%|1e7hMty$QxUi2AAnwr5{6CdLQG+KL7xi?>jAlrALb+-vEDH;G~U^ zY8iY;stEI4HBjoo_%VwS>nlRaNs3>9zRyI}* zDk$Jq&X?j!ygUdEl}(kIa%n~lb}xrP!rA@pEkfoLI^%4(O9m|8 zeeYe(Kp`q#5}+vBd_1^cAeBFHH#`qyjKk`?UX=u&HE?$qHT6ILir^)LcGmeok!<@* zqb<)R^K>KSeBL>Mr+T4<4hBa~(AXI#bXZ(+lzA3MHRYZ*Es(->n}UkL-v?r59NC!b zG$hVA2nr+<)z)JGCe<{I`ZQFfH(b-0FcF?fw;^W~j47jpb@9|5#pguv>|}ae^DL9a}4D1>IL2qy^bvJ-d^<0ch7{4 zlqhW3i`op7<$S$8>SpUZS-qOOVEElj`3d}poL{q3ewy*EQjx%dF|7Q6@m}p2tS8UZ zg&+SJ@H9AgADG$yZ4C2=O>_4Tn+{JjcH>&GEHF>1lwMYjNFJ0K6kJItAYX)b>A<_{ zS7awhC_#<0$Su+Zu+-k_Yz49ogB?-2AqyH)+vCgT(+ycQ7!MNmAV!&-Uq`~foVq}+ zeWuAnNRt|DG$6r6(V+%pT$m=ZK>khZ$nN~h>WKz!NrQ@8PLWde_{Q3224`IE|6JnP z=|IC-oJGY@3o=;Q4Me_nMrMCaZ1% zJX}8|qq&w~`aD&f5t#6OV6$Wac*V_9%=nEdV(0Gg2#bF>)ce42>PR@ln%^j}os3jpXSNbC)Vu_!PJ6z0@Iyz)K6t(k-A_=r^%? zl9anApDHLYjLOFCCh#w}O7BvDBH^X%#`gFz%r5rF4)VyH@EMC%$3zN;t<5)GKv~Pf z%8#4nVr}|jE;ko7X-A&R51b!Il8x7Qu6eDT0zl0;`bB7Ifou0E4J0LkF)n=`tO z%MiIATjk6YT#tchzM8%u*}U{lKXrV(tK+dL#~@K&PoPTiLu-kOaR1{Z4oh$EqTX+* z#U{hHwms`btj|@}v`MJV5UAj7qMB6znSYQn@`nu$g0}EPW)5-zk8uaJzaqc{LEWSy zk!>uFjcLje@V_6#IM#81%1qUQ3JU0_`%onC)!Z_4J*Y331}+g{(S>3(=deU9sL_Ae zvY8Zs(>PiXi{A;-ul&tG&O|VDL;z9xat0Q5Lj!|(tP{`N z1Go`@E4Y(0vilUOP~c~&qW=BBAPIR$m)>3YH27-r5*lpEDT9G~Pjwh-R|Gex6N#kh zBUvt6tW4}mlr9uA!cZ<)6$U5~Itj%RHx-9AcH?NSrsEfZ22CfPp`Hnn=5t#Ty}cmy z6$1O$!2D}q{xxI%wUqv4WBxZWz9VE3aNzkt>@^8M`YSmO00D_N#m!0n2iwx^OF0x# zqCk0&chM3{gOXfSyQcI{rxo@Be9tbdp7zzpZ+lb^Pq ztTL?GtuxaKoX#5s_9d+i;>hE}OPKBBG`Yy$M^zWd#3KmdzV<+88K)uHBDnMAC%NU1 zD!11In@T-=SZ@&^vj1X5y9cB*nvkM{8OfAYV(+QAV5` z%1#!(dxz4^_sS0^_NKl#C+CpfzQmAyW!pfDhZ+VpSqcRJA&*9YWa3VM{pFuMmurpR zpU0k#A9l0;^_aC(UDA_zjO@?b##cVL#IoGBO=Jx%k`^a5Y{ zRjZz5y$wWxz)l{q8)MB1R|aFQ5UeD}KWND|JTR-IZXW}oHl0Obb;7ls>XaAXaY;Mrd(G`eb)(0&9W>^p$BwubE z={g(ktZC2lT~2O-ZXkD{;Ry+M{DJ7qP#@ zkQT?qZf`v7g{2trb9zR*cXOF5XV~;7E~&d=YHxU_#jJkYKHsOyKNXDr?=g@0Kkezg zzqyOrWrEu1kIaVM|EC0ynZ-;>*2uFzY(XHIF|rHonj`%FBXysRTGWvA3Rv+{wPaIP zdjpCo--vq)_%D+nf*Dz7Ryc2=oMZ^nRy(Eklg?Jlh|;CnA%MV3Qu)gbtulI^)B(#+4>-PcN;AcE4_;_1lF?$9Lghm&3E8 z(^<3xZnS_|_%T1@Qy*|Wo$a=b56Yl>Vj)j70_Kv%tUU^6ZMIazn8HOff4 zfR-E>Dq_es`|^5Rv?CA`GVfz?mQP4E6o)O?ju>6X-WKi7Wjp@k`GYpK@mV%gycz0y zy5(jrg;$eWrF3oXr%Y(ZU~rc1y~^|YjeB2y*ICYx#g<)l_J^heoRqz$37p@=&QQUDk^kQn*2yf3l-r@J^i)P~^UM4B zr~XoFRAVqd;iom&CLGWOns`q!Z=74g6{x;I&z8vpN;_|6$Yr zj(W4TOQ3_D@(X_x;5SA64cyM(*0VvF-~blzHXpgNyph?O3V^ujR=|u=MD03r2Je6Z z1q?Zx#<&YUF?|K3V~-@!xlnN^vVQN56sS_-SNwlKn{8)_bkdz^iKOSR9lj0cZ52slzPq0iYLfo=G>o9l_ zDaS03biP7aXQhmfENKPbhV~xqn=+8dMreW0(QTRfI6-07)=MCzSjp%eKwGm68sk_U zZ%vsOj{&mv+wIo>$r@vS{kPY{hhU?yKmbx28q=l}0R6|L|Em9Z8@!c&t1>wLr5WVP z2n9Qz84(@WZA=0Se-FPIEwdTH;4NmE`tON7RKz#|hlQz)|G2~w0}M{oMj*b@pPA?m zR3ex7nO)Wy?WlES5l_FW5Mn-NLDQ(M zU{#@Zl;Gp~tS{f!S?S8VEHQUFs7{4|z~##uP}ZTEctM+l0uYy?9NX|~Nk9|h6!6pQ zooAa*0#(@VgCIOX(#vg_pgRkc1M~d;bQ@|np$WQ?!~n~nWj}HjhXF;Y3NHeV zX)uK^G-Ra3;%9R^p^*}4R(3z~9=V%!je%$3NnjEyeE?areuu7)cYUmEa(7-zaFN2DQhQN<|1Jd_o)#y-KU4+tSjE>~Ne6In@nuo=>Sk zo4O@{j^#OToT@Q-QQyg_u1{0i{joFARERBPm~^%8KDIp>YB?C20^<5ZV2t`$L%+YD zpbbzXXahtGQ534j;yM|0LOR4OZ+}4asF^wjDkSr|@d3fT?wq4-L50^TV-xNUvO|m} zqseY1S7Odq$xT*iNL=H*RE})9-A0}3VgF(U^(#i!Fi7t6d{o3R#oOlgk)V0CY7WcD z$(FBuVTjn0vU+W$p)OElodL8fvSr-3D2ub0;;*N^mgZ03d4UifcB-Vw(UCNVU%zkF z4&b(KAuCI_z6aZ!jD$oPM#EXDT9=oi3MM8-C%)|>!<94CMJJ87P|J2K?ltgKaCcOB ze)x1XXg`7^%z>cO6@t;8*ux3yZA`th@$?z5XVstIRLfLXd3JY$PY$-D%) zoMk=kdWUaz-}Owk`A6qWf7g*a&m636ew=u;&-vtErfkj${d;o#GgEQT$0I)dVWXXu zUYQf9y-yX{?s!h(i4}=ye0iffq8)W&+8!-M@t3X4&mj}LTIxd@&MW#>bF~+){)Ac{ zgIE(63)O%)vzv(ggdH1bc}xS^yUBPGDy+UUfl!1oBA9ZV9mW#yqOPgUm1@Hb_cFBq z-_OQfslRU@E>pRd|50YnwoCb2c`Y{PCPl3YU0wZ2L;TC_pb-?>q11UH)|DD6zzvk^=x`TTqJ>NtSWNYeHAO7P2ap3MH z?J4(^SlOak`#?vFo|0wJMq%w)f0$pME_!PlH!0cPMJOaF9*sF- zsp*8cW;9_wH|J?Eg_tvZPg!0^*_$Ijd$Txwi|m)C$>uy0zt**AD;Eoy1YU7+_Bt%i7R|=SX1!|*nkf3v6)v(k-04T`Y-Ht6uzE9(44&cmF||aw z?N*;4fz@zRtu>ZrDl4RK;eHnZJ2r?>ZlZyd;XyNIZKGgu@d7%*-t7}o)WA~0L$fYgFf;O8>m>CoCtEt(?n zv*erGi{o)&ji~qT65>^__t#0FBATVhmOJ{ElB@WWE;SlK2u#NH9C$JJos2`P6&7vX zNxMFHzZ8ol+VjBcY3GZ%T?-KrH4griuK58Q#83m(0fKK4Ip0Ij{Sg$N6+MhmnQp?!M*|~^+RrTG;Ylou0@rGqH zO}0bPq>}Rh&WgY+-3k(Ht@l`Drn8g~rKIU+Pro($kX`F79Q3Bn((d^O%J`?)&^!vK z#}_He13xFH(MD$E%<8~LBfA+Zmq1E!gdqx+#6c~P7M@|gwVr`GP{){f>RaZ!%^=CY zDF=IUeC`i5pJB+}NJWJ-OQvMR^yC#U7V|kAqs$F2*Y#9;iCb~Gvh9)1>wQxFzl4Ia&QqWx5_K5 zDe9QZ@Y5Id?Co)&x!CalvPxO0>%qy=QgZCB_(khbeF`F3s-b^#`T3GrqW4PKO{tL) za@5bnR1*(5J&!+Z3OAcF^eYMz$7yEEHxkhiGD(~h)tc z4L#0&j@x?9%tFpSXFLLK+7$}?58I62-PIm|TVO7otG$IvUn*FS7FzO*g! z2=yOkSfdgBZ_LTzfp*x@W?5Fxlm^8*e7!5V_J)rCOz9Ijrl?hItU(x1XV7}z67&x` z$|yj>L+qYFc$O%z~st*1L| zcNrwsRW<8;9xyKXL7BcF2&0-Uh5#KAk%#~=9e~Xad4h&moCfsMXe=Qwqb9?d((noC zLD^oR6N`Igr|BA9$yVnRXclIJLUI!{JEHgth#a$=HCZa}IjuvvI$WFLAXE+{ebP}Y z;&cZF3S7}Kc-%pV*5aJAoa$E!0JQbBZN0HbE*1WiYj}!kNNh=}X*(35KAAC{C|}(m zm!Z0vdSy^jCJQ}rrB6jJEkG}ox&f6LL!e+m_EBY=_`}9J4nJ`P+^;wdPFT$pp@dNr z2wvlXdi|w-6APIaK5i&u*)eu5Cw0UG5bz0S0!#=*MLF%6@=geF6t%-#uw1)r>@SOW%hGk+h$iNO8z8&QKPXjc`xHqje~ z4|FQDO$k)6xL$9w?o()$$P33k}FcSxAI}KSRcN$=tha!-(e#|E1iWN|L-CU)_<3Enif^b~)Zqqqv zNlP;7C4TmC#L6e-xqMpIKDf3 z5xox58i)d6z@F(~%?9MF(}b$El-7P}L|HfVSBr9MA57X8-@nF@B6B+76Vx^d^ubV@ zLDQ8mmbljuP~~!h5LmJWoTkc4En(K+Jx${vKvG`Xe{@a=%)7I#fAs z4E~9Ad`Q!nOm7!JoarmkG`&ZOAk|a`WZ9!!H;j(hX4E9%T4K% z(iS3{uG3_JJBuT%ufXX1Xs#|;O~lGN0VRT#q+VxcXi5^-kGNw`Fti*?(cbOgZgpmu zFoz%2fx>Ia?h2;Yh90h!z*nU#!45fPbN|L?U1%ThWl%t4ro)sbW!eSf#2ltIkh~&T znxIE=Gv5MMV8s`T;6=xJoS3*ef~^lT9>gH_wh@wLI2f>}NrTJWi8Uep8|_^_ zzlDhrTkbQ`43Xb-$KW5R{fHxsr{u1#-Z7jWd8D&949OF$Knv6#!3Cd_s>^f19tVvV z(QSqUzKH`Yag@#Z;(PZ>u6PtG#H`L`Pj+0WssH%m3~u!LyJw?(}pzlpF+Z<5&cP_?YB z9xTZ;3dkGS;tE(zZTgJ8NGPdt^Q3^KI#5HB&j*F{)6n=<(lZ7=r)d| z8~+r9banFrguMNwc*CPgPp~cGx$)Dh0kFLPteVp8f2*b>_PN)b;YS&JD2|f#4l{oY#<Gn?xlmuKrY#|twCr*r@VoJd+Bp7@3>sIczLF;_J{c|a=1ods- z1)I^I#-VdF%s4KbvkuJRsl~5cTwkD&WjbqNFba}f{b&}biEw!ToLBpW?}=a?^ zDY)@9chJt^&9AuJcO9)&ITkR7#`q_Bx*s7w%Lm!Bje~qSi&BsqlKhZ|!8;B7U3SRn zEz)BhbSLPcgAThQyQ{e8zV>>yVkIOTz$6E8P$iq`pQyGoQ zwcE9-f|Zv)1(cn^V1}qk=(_OJ==2AttMw*)A7o?4Ufd@gKL1tGAfTbP_#yeXnC^8e z4PM(EkNSaV3w(pgiN`NaEadQ|luoUNL1{RKSR0)Ktxq*(R%xnHLJ5AM&IBO-RgI0< z+9T3MY<9b>Y{m!@N5WJzxR8;TcC~WPeXw;MA4f;DIw-|Ya^^mrk5m~gy;Czls0=}F zM&f1#Sx2|}t9J0trla)RZzR?8GbqJfsg`N4HHQYauzyWBxLu1Vj9F6_Kl7FSV9txo zzsuHOIQ3f@Lb}a{OFr-Qb5qU~2#lb66kXSnhE~QF9?b>xeLvT#uwiW}b2HB1tcgWb z%}6vcH8Ag6S%Ndbp|%tvs}Ge^jHsG4JpB?a!92yRk@*fGxme3OPQO~x>qsV%ltq3u z6u5jSPIitkrHq6lPPuU|O*lr`*Hm$cJ<`Gd{>?i2iwQC*<-xMS-(b~caRsZDl<5~> z8-3n|>UaRo9ogDd*FeebI~^)%1aB=hA|6baJATx;KI*hCx9Ijz zkr>a3-+FxoR(UEa6-K-!vL371MR1qtFLb3tcbxyGX`%MiIE(;vB{`@@nJ8T^q(JO5oK%t~AlZU-qqR;`tfK zVHLSHk%WWuQTHxh5VTrG4PoOj9)$Jq=7S(A_7Zd`OCy-Fp+WcaOB6)*=!7F-opWJ3 zb*=j8#5+NcvNT6;wVz)Vg}e8C{==pU(Joo<0g}QLfOD)#j(e`cwO&E<2b$d8BwXlr zv2ufaLc2inBaA*dXdvqjH?y;R<{lwNrM2M|#!Q}*-_w3%mjuQ;3M4*xXwHC4iSM+( zXo{!vL_#iFc5SH2=?G4P8UqhaSFPc4(n6|=Q@oKoK3qbGQkEk3*XdXf!_n*Z_idco zR6o@@KhEKIipdZzR!Gt-8cg|mBYpaQ4~E1xm)RL@nG>7AkzX$xV^IuG%rf^X!$TB) zu-)y@%u1ma3*=1M6kiJQY}K|c1PpA<^f4fjfr~!F>+61xPYB-3c|}A!!uCV;)sQ0r0Wh*L{AK28V5xxf+~R=XoIo#;=prOS!KyeexCatwkN#mZ z?wTnz?28MLP;D5L^b=jt)OuWOO#D0E%jH*}LYbs>rcm*A1B;uNnX1`6JzhX<8CIs$ z4D;}?dYbnQ+A4hd{$w0#_li`M{Mc%6|PeCHV>SX1}Sv{q6-7YjL?Y@6pk{qKO)^up41QdG6ll z@Gd#?E6aJFnH^jDyYALIJ5b9w49Evb!)gRS;m4*;n&^57WZ2AVZ)A0vPXd=K2^(GC zZ$E8&`)Y1@GVCB)?$gs3C$6c=+kT4@d0$zDA4f5Ge^Xz^Q9tZSNj`v&ADiq7e2+1t zAqnE99SK*LCyp9e2o)WA2Gm7;9s#%Y2GywAuEXR-! zjQbzSTAzkh;N$Gnf-0I0xne<}E^@u?11-&fra~^8OIA|!WC`>!)V$R@r*21xZwV|!Wx{sT`H`|R-fA6s>Qf88Xj}IwX zpM^l|LH3B)>!-}g#o`DfuXogEVySR`R=>k}3aU%XxhG1{J!{Eg0`ol|@tQ1A-XQ5{IEAVMR^qN`k-8qdfw`L~6qL90d5*f&%$|O~|7cqNgr48~vYRveP+wFT;-I#8 z#+nMU+7&qzXOPZBaty0^_`m8cx+}5eK9XvhYcJba%$kfz`TVQfz0vxZdAkOSe%!&0 zd3teZ4nDEEUyHgUy_g*T+M0hYc!zz zW$)H?mFAkgZ1tpA*EiqR&3vg@IeyrKnzAi%q^5t1%e_hUMq@3s*^DDBvyM4j_XAv_Q zpK*CGp=RVsTEk=>A618FJ5ZE*vp`0blW$Qw-7DK7kF&znKe3>AGB-unO{6R--@V=; zFWcQVC>fXIE+Ci+co%L~AEp+^Gv5{3eQ|{frpIpQCU5&$*HjvL__}L8(RqBJLRVHv zL*@_LNiWbS{*!_R)s9&Me1&HsVo!7kxNxKh#`_-{LMAuBIqK8KGVf9*d+e`U!kO-g zNP8-IwF9zi!2kp2mNzWpRCbk0o2fCT_@vfqXB|T|PEdWGfW0w)%YX-MhD2 z@&=j-_80|oBmP%;{$J$P3r9>`ZoaVCGR#f+wnC7Nw`sJLYc_Bk(!&)f%eE@|ttA=A z?O+#xp*qk&dsT$70u$bw)jp*@?CI1rTS8;&?tj$ovTOewhl%oXzQu6kLJAZgVg8SnFqc%v}%tf6UOOO(U* zTs4lzEp<3dncC;(^;qy-c)LZ5v&57uUEStACEjrDLRyhQRsBYh_t}Q((l9_EMudnN+6o+fQ?-V9Ws*y1;nhHA=OXDGXlL}U4$S7jUD^0Z-{7Yoj z(J*ofi~ndH(XK&DcBCE1kE+06`Z$Kxz*gXPfel^;{+ z38U&r=osc=V=V7q(*=<$Ge4|Y`jtNz#>B(fg7Lnva-hTkWF6(`g8F%AF9TXBCWGPL%zvK>8y*)M&ux4;wE&Twb*M4MWvmO#9Gw zrC7FFp20n`P^zW9O+MaoJX zdri!@?OsS8?7lo5Z=x9Kv!r(^X(GPCh-tWhYXx#&D2Cwle`)?5wzR9-8uX;+Hxd*Pku9hyCfwp!JIIyRl_2J%0xilvJPQOfo5R}=aJDia!9 zt9tOs@f~?Rk!FFMyq9^hmM8G?$&0J!zNiZ8j+MF8l%+NeAT*AL<6gX9Aj%jf=~C}k zx$oqhMfbpSv&X0Hh3A6-ZHL@N%o}-zL!1GvJ{;822vE!_;tT^RA>F^a1>~4$bkjcH zULM!x^ZhI90(O_TR^<#RQq_l&3XKj_E_zR;F||so4=Z^7vuVh%0k82R*tA`OxuF(# zqgoElO5tGec~<|FM&H~pXw{lLVr4IF{DXlQ_-UgbYne*seV7_g6CfpM|aIi(Kp)8dm1LqpA{6Xl{Vop*q9DL*r)~?RP}DI z;|RcsCy^ssyRnf_1-t{t;U3I87<_t(#YZb3_Y$@8V~Q75>t{t&L$*xWX%U}zN=HY3 zb_YI`tOK2DS6Al;Prb_3HA36>kLDuZ7O*%f!DH<*ixX925kkSEEVT%8wx6(ZQIf)Z zcw*OiF3|~8EOdNRrq9vv75 z$>?!Q0oRD)TizXxi%--{Q_~ZS-&Z8%P#CZWyLP7jvR}!g^1dQbm)fjKlCG7gNa)K( z-keSKuu3e2#nB)~Ero)uQ(#YnXd@PQni1U#qn;cfst0Zi6~a>aP$Sn8-Mi`q zaOzTiB`E@UZl7y&clN7KXbZiLid#mJq#5zBNIcb;;SG|fokgfFEJGOhu_tk~bNb8| zNGB{)ikVeRKl1N;5JzR?Rz@45dLtmU8`;xS6PlV^=jLs4lTr}kjJb#$DV9eK6djz9 z=O(gNobQrqT#{0sUtW02)z%~Zq_F1}xArd$BMqD9CxxXyre1!1VxP0{Y5b@h6||$$ z%6SE791t|3En44O6L88ogq)3G>&dyB|YD=tOs++tqJ& zD}GOIEm~!ZBTXx7LK(@B)9fvzYuwnBs-+JUi{&`p_sq%33q}jNWh24);mk4g$(a$l ztTnE~QY!gqyvG%~TfDtk&KIE?e0`oA^eS^i&@$CVR;HRmedw&{qKrP!#KNr=nM@NM zQNMtT!+s^W*Fl7~7cEF5)XB;3Jn|NSHj;nKItS)9){)$vnp9i@%}f@>-&WX0vd5PO7%d*v%YUCHwx!!sf**O1%t` zI65ENlvvP-k4Dv)#%;RWKY)!bX|cD!4tuC@`P5ZZ)83H+6->6<5%5SgzU(CyH#sQ} z^dD3X(GBquHz@k_VM*Nz>&vtK1@$!rNUHJOqw+Abqz-4_Lb?Y9ODF92*5_&I4aJ?{ z9el66Q4#y>bGxq!(`s0F_14fgimY+9L2IJmwblz!6&niW7{52+ zD=K^Q!cov^Sy~3Ec5%a*#r1|P4dPT7G?R?49*!$n9NvB!(dHHY6xZd&IsN5?fp3;O znBkIM;=P57{p#g4ADe*sG7)~%!SI=8Dx%@N?V9Ds2eA2C;6m6@)_}Avi!+CQbb0sw zhFxzF!v~NYpXIxZ7A2U_a-0hp%0qWB$Llp>R69~`)Tf7(feO_H|3%{j8IGTI`os2Q3%V@f&jo!39>}N)iYfb!I?oUR@>%GM#6z_dBz1?D z_RlR^h*#K@9O}jNzK2^zH$PVNHTtCrq!D2fn7<>(edMGnvlfCS$vvS2<11HRkD8XE z^NA|fEn*^oyfRI@tU;9`7p&X@ z%ZiI)pVDT0Vx$eviO@n@U#I;a?7e$9lxyENZml*dY1$!*S%r|K4as&YA;c6R#H^AS zlO_oxW3E+pWxKL1V#+qzOxdpNCi_%UcEgAUX-I-~AlVv+nimj^lmb z-|sz+`;T&P|oGg?J0hEPaR;VJi3j|xJMkV>!Dv|Mb#aIU2@9b z7a8_*kCwV;kxjWT;~n;cu<~UMFXCQ}e(uSpD61ol{N&$5EAFoA8pFZ*G{j1L1rJgB zpbqq0FL9XP0iCNP4a2siFrS0{SlZf*3N7+}yac#3*285uZ$utBIWfTdz|u7EZhZm* zfk9}_6H_uPdK|Ne6riLTC-daU*mqJ_cnAEQ2sR=4n!?mGgSIh7`$q4Y8#ovyGxCj@ zV4?P=8A+^^js8s2v1|nn!B+~yi7`z8XJr6pk93H8m3mUQ8to}g;_9#~3cU55h9)wU z;D^_z%Y!|vs$!A}R&I?$KfU1P-J92cc0{ADH2cDt4g0k6h5bwR?CG&TYWLYi29=^&ir#76L z*XP{m;daT*V}mo((b35{+n-;NT)}HyQ(Lp8b>rri2d5$p%z~8>qP)lMex(~vxi7rkp5JvhTJ8LGp7)S1Uf=b$ zIzRf{#JH~AwbpIxMFA+&q6ukhxb~raE>EaQhc#71V4e%!SBan?FB+nYGa!3#QNr!t`7u3Z!9o1rxZ*SIyi#ZG zxAX%Ko=gHZRI(Irpp}^%m4m&>D4nQsnT^ycvgS0j5GsT6y#d33%pX^iet)ImIO=$Q zZrY(TSqF7Y&o}SbNh@6y5Bb5ec&uxb)qIEQTa{#vsODuKzAH($>+$Zrj}r?=sw?8p z-JZWbKph$v?zH30+QTfcwM${&%&E$`$=j8$QTL3D;EjtZTV)S8n|;KY@j5~avz3G| zJSm&tkSC-7tjUI#6IF)U(2=Za$};2oPry?Z3bg>iI*or=^rXg+XUU$8Guk=nKrNd= zN^?DjjJR?44CJ2;UHDAi2NT@(=DA`2RV?_+v%sXq9E?y}LVWtCd#MPI>K zap3slzfX7ncfJPFTd+$?7%6Bv4IT%Dl^7d(hY|f_<3EIk<5XNBj2CWXA$7xG)-3u2 zY!*$O)kTR&?=kaZn*|`M?hzazuU%o@$M2w^kWaXcWL+MX{jHok-rC`tNyrcK_H*}@ zN=j(XCqYem+Cz^x#0^si6Z7mKKENbyXdMu{!9A)a#am&OM*x3rv;PBnf%TtLS}s z`~*<~bai%M)$4e&jwq*Y6G@%382Y-(TMxBu;zJcH{2MVVa_68~Jw>x~tg8k$?0tE1 zXvfTTZMrz2N`a>FFi5AC;HY#Tq}SAej+He_{`;CSR@O}G)8E(33ar^yY$fS=791t`+xZsdMj&GC1KJ}3GD zi*S|Wl2VrVnCqL&uq(_txm;0TVjI~t&_-<;m72utsQcTp82oKn*#ELD!C+a8|Gq4j zG;-r_m39}+`2EYWX#d+~A^z*K6bimtOYN3R9G7jtTWkwWe5zXRr}|bSe{Z?f(bT>L z76`xD2eNqIN9gs?9Vb(o`x7sgoY6j^5sb~5VkU0;Ji!E)WtwkeL-&^x1O%G{*Y}rA zrC(Nm_e|qW#)aJ^&K^@IBpbuof&=6avEPUDkj;o5;Q#Is@_^^mp^xsSzlacJV5ULH zRghKhhg2_YO|Y+|ex>-e2u)JIJS>#lUst1cvQ8n#BJ!4+-B_a6v)uI4=0#d1c)!mG z>L2gi4K?kd1IiQm@p`Oqx6tp0SZjfxF*7T}6&J7|(itU2fYVM&LqfnJvlV21h$TS| z6#M_doniw6gISDuR#M!;;(hwp!+`084J|n=1dI}gzazV)R)|q%jW$4R6yQZMG!vdw zU!gr2A_HsOfCjWDx9K%{s^cjsgCfXk2^16l`7r-nnSbt?f1aj4TdaTDnUVj%mj82Q zMtb0p6~;bep2VVZQN~Gv)F+IgT z`PS0i++YiCG7HxjC*1C^f~$M5f~x~9=v_4(Q|43!0P+WKP# z-ki8?q<}^+7{1j&gMhhLKB#yye9~LRo>T+`SR{gtbVpBl&+gK^QKFak{%y9VlEVy9 zcoHu#1|Uu*c?WQn>aA#@{~y>;2*3xy_x&fiIDjAY2Kd2&N53BI!`qyHs+1?I>v}VZ z=~FRlH8d#F=w}1S*<&2_T$^Yniwg>&|i-aXk_y3A;K7op zjVgb!hH-Ex0KkFK;xhOUcxs1O3_Jt*-a0pZsb4e;dQuS-dra^9S>!Gr1Vq{>#2(s6 z<*m<~0rS^pc&;0u_M`2BcuWju8_>cT9qreD+isZ1)BC%fmF3t zgMwb<9L~^0Sy*-D13hiFjYVgad3BKu=21sKZaB6; zU?fy7gZ&DpQlWc9@A5%{y|>w!%2(y(o(txg$;VDPoO-LUTXs|H=w(x;$l~A8o-A$s z6Ay}DTK?F%P`s^u*fG;BRu$cDnbo&zr9on$`^U)9R*zRn*TxSQ$n}SNL^qH4Bweyj z-_hOVkhst8G2SK`-({2FeR4~*eVdXCm|cDW-vG1AV*lBn;#C|6VHB8!V9ZdF&;=Ib zC!RWDavz%Fcl;1Lc{`H2x^_i<5(w4OL94Fw!S{0LJoROqFqKu05p11-=1b=2NmWQb z#tprsO}`8Am6-s)>OM+t2|#Ae5IQuIfO#$i79u`M2h3aTr!VNQ4c7hJlw|jbKjCr3 zxwbrC#G8B*{NH$g$ zb0(Q1eAAlzHK39ejwk0!T2HO3+gq$_F(3_<3>O10*}zR8`!=Sbx`!nSta0u z1sX=pNB@~b<)7b2iv4p9{{OoM>Tn(W=!clHA_pakMZjk6S`a~=+Cm)p4A|liKwG&L z0yAq9%Lx4-PZO3k69u%<53y4h z9cFSU%18$^=TrxdOJB1%a_wu4qCxW*|v!gHUdxcyV?Z$kW^Jx`D00Xw1^KNB9b1TkRAiZD9j4 zQt*MJxtNMx7y%8#Gs9c~VnSjGP$@{(NAQm7NP>_5nTP#9aBUTb1sM5-k7Q;P0XxJP zcy-ot!O$jcQ7cq$0)2Ty$D;)*I`rimT~n|R?FE~)XaPDRn?Wc%cw`Q@8T#T5uy!xd zqP{}PGV~XG5{N6<;CHBV4s{r)Ux&*;vS)GK$`q?s+?xH>F@0?~E1`%5gtD z>)@le2<>?nb+Q_HxaRFItbDWJAS@U)mm}Tnlt^=qnh|f*OA1RLtexp8D_GXXHKT+I zYj`rYu`K>h*wWi~|84EhtX-5nQ~sCI+N!(f=V2c@MSd8Wro#HP>(AI0 zl5EjNn&d85jO5A8T3xHRnX?;iB$=DkcE-o4S5$rN>Yl&(c)!o1SQ*qg*T=b|=O8V$ zlXmVhyd>fkVa~W%F5vNnpn{v3usA#(a|1a`42I<$=j{Xbf(Hkz`e_Q zg>^f)SzZ+d9MtCW=jG+K-zxKQllBU`xDH`6a&H@F7E^;W4VfOS3?nIAXTA?tnHnn8zy3=#PrBB36bCan;`iKsGxp)o72w2r$su~N3mI|!QrTG+ zb=5_^k$E*PbAXAj_#rk9QiRnGAa<%E9|nJ)r_G>(Mo_HJ8cs*|UFb%LX z`;%3Eh`moo|KpEHP+uTT^s^;s8v%98j^%{6 z+?Z--ztfJ-rqk0B=vRdI`PR3*tdma9b?2#_^r<43M3p6V;rk0bncoen%EnEzC+y;s zEp8^NNO$=px@4zW%OW8=9D+RCW9`yD&<~k%Wz%mH{LhBGyupA&t2ZwYD9YI}1_W(Es>Y4+cQsNf(3wT|2Ee-mmrBv?a8Ne$V3A+}avasl7#qr1aV zNe-${w+RY04nJ7nEPK39B}%__G-U=%D2VF;5oE|y9(|sh($H_PMxaizwGAgY&KhmM z;H8(>)L&RE74IAX$8p}(n!4=qTVqvMG#rN_={T3)aFsW=l&q6FpzwauT&*)~$3nVA z8Pigzm1Bcb*SMWE{*^mKus64kRyC>hurE3qzrs^~J|Q?|AH%eFe7*o2SJ0}w`w`aU ztHS3vwEk*7#7j=1QTnJ`w1TK8m-G!wno6P!p=L3DR(>|dz{D`E>^9V-o^CXOVdG%0 zz^v~5-wqTB2?fmJIJcY&q%=4Z+|U(yJ){f1Mk5TPpJ4f?PLuw~&*gO$Jg8N3r?V*s zwT8T}lUT%RatL2|z=;AnWkVS|xM9_WMSfsB>un%M&Lty10N;r;P`Q?@0b68)FHhQe zHhf5$0kI{zg~q;tJVky2{Lt@S&8nQi!J*m~I^@Smo6i6h3gk#K$I&CLv2IteN0W@h z;<<}p)?=d7gjZ@6n%6tNoUpm!83wv|Ww}Jh9U*Gcc zg}p_jwgNTKq&7|U?#v!YVjZbU%oaWG;Xc+6$=D`w&i=i+=8%=+9~Ql~&l0>+bJO@* zX*a9K;=ODV1aXa&T_1%&-(yvS>yFMDEsP||*`%{Zmpvncy?5eLw&!i-Xt}EiIsGRO z?=I__*6^Ou$Q0kwxZ#%x=kw=qI|jTfz6}-C4t(o~@U9pLAleVjEMEG5Llbc>aR1_0 zkf!Ad>If7$Y(#(qGZE0d8R!3+sUQ5yhtWdGJGdsMoAmh22pnM2|tUR=-xdceaW77_pDx z(m5@U#x9U>El!1VIuCMz8mqq!5rAC1&g4t|7S~XPdfmu_x zgTwPZlmhG@fX-V=rBLb!vR+wm9I8J;QNuZrqRs$eAb|lX!QqcMHl{U3$Lc|u#^nzl z$wBCiq;6)`0LhG_oRoRk^=oC3WNw8B`-kQ3{v5^j<#`!vb8dB4rmEAeVul13iLCiR4<{Ssp1u#^PV zAEOVmaRcIf3GTNDZd$XyQ^3q20mk#t3HK+kcF4T6G zo!+xvGB1K``4p};?ksv5-qBcbdksBR8Tp+o4qm+n<+a>c$|_heJU(MSY#8)*MUP0R z2?V)sZ@>BAyUC?uXQAaMZT)8ZH(Li`H_Ok}&c7-r8AMy3c*q{>RtvtIE@CD+1-R%w zVLo=LwD-Z9sA*t#N;UQ;D|p*x^0a2Z^<;KcO|)Cl@iK#s&H79mCu(<&l<+zE6c{6^ zz+8&i+AxAhQD0-30jyZThS}>`1%yE_C5DkN0l}qqo#>jt5i}4188N#% z-%e~m_Q4NmeHZfh2MTgOTe?BwAvMaw)oB8?SuK&p9GKCmNqygJ5O+8=aoo7CVM}6; zUP<(=$eZ{Rx>nU1h66a$Puoj2e#l(8Y8&dVYh9Klzb6e`J@1{9_lhv91l?W`f|5~v zFMTe$V;!j8GRPoP?3UmxKxd@>gDY-{(3=imb8zhChgSd$Uh6eTxlUn@a2*gy5RoK4 zSed*oJpw0zPH_sKLYudseFx#wU(l#*EvUSY`Qm|D{%$ts0fBh*O($-F6F2$`jWd93 z0v_}(2ur>2eBk_TH17_{4?deX`*moWC|}EEZ`ZAqDvRK>Q(Utam2jz{@Ay>$%f=Tx%HFj@^E_UsEeR zsIdy6`s5ItjB*ISsQI|%;~5Up0cR_>o;X62Z4dloqx+e)`!e>(cxfhQYZCDmR=)Mi z*^ix>UWdO122zgZ;v)0z=RJ=a&6gNp+9X`$Qu0+~I=v2;zC>=Lxx`lC_KaEfDZo)Z zoI#iJ8^eWT${g<2?S98SEUYbQ_*Rp;oQ6?CMolc8}^>G zoN^u2o!=o#knx5k1gao|{e-kr`8Wz7dYEkDjs~Xy&j-fh?gG6IWPP0A3LL>MPV*_I zHM(4#CR>Ug*X>qXJc#pBSWC4HEPHpfwz%$y!rI$vmLV32jc z^-}7M)=zmh_V(6i!%mG~kB^VHjY+VLPFqaF^dA5@^1F_=sJT(F7yi2(BZxd;U5r~g z1I z3=?nvN?%y}RG@ef-HZ-*T?>EWj_#<#cBP zlY-B?ni^nb6k}+MX*+^!P!ve52&vx10lpGt*mSvqjz@+04eD?lrhka>Y(ALZs13|zPwoKb$ z(`6U7Q1tUe@$@IZ+I3#`(zDO;HV+#nQ}rgDniDkw#HzcRk(_JcTl{XtQ|=@)a?)%X zI9EGce%+^iv?$QGD^Y2tQz~<*to-?joJ_|2HQE+Sot)6-^Cc~#-@UTTUA}{9wWIX- zGMrKBzTfel&;gLVdkWSs*=ff~1_zn5zkO!h9o&*OKrd@Dn?R^dlH3X2UP7_@dH$^oA#zD%1Mbn^U z)s3Fk;f}OG;+V^{esMOs$$J+mh$GX$>JJ%KX{5<}t~%Sf;FC#et;YcdMmBvLewE$F zSw9UKTe<7yxkLRi#;3c9^Y1!TW~5~*?MqDb1xsOGN8TQ;I$L1jr}jO_!Y5zWT44$v zPD_MlzQkp|FZh(7;I8%5DRHvPhM&l`*_w|X6x^_Si{{Unb(ftpA&GwoqnHA(L4roN zVk&5&gun61Om=bQDX$#90K`)Sa!yg;1>6aSOGAnt_Xac;GP6GjUuDKevZ03sldr zut^ad;_!-lomzB)J<#ssM_)rqYapzaYyXg5aN=_B9AV;i$KLdtN|yG&?bFIUkCZ{2 zgP3sYyqf}uz&6Nu&SjX;GR@U<=t1U7kSo;K->*sg}d>WV{ zMeT2O^SR}9$y4t|tir*>B#X0UJx=lEdB6>#Pk(v{ zZN+S+4|6eFFZNw@Caa0UZyD}9@5!33>S)r8O+l1j#M-Pg_F+>cg-5tKO}zX@y;jbE z|L+-x!}9cn+S;KsZ@hn|?I;^29xTu*cy=j&(AUB?%zSQPG)&E0 zr{Cg+OaJJlKim!#XuaH!A)U?uNtu+&^_mAcYPmnenpLyrvB)NHOzt*&QY%$rwL1C( z_%|3S=S3+1&Kl!4NNDLrdxj5;;F_lNEo=1*-LT)2Wv{}}@Vg+9F_znCpeBBAA*jf* zc}GpxC2sm>v>W(Lg`lLTLA2+!yaEnR7S4KN<<7=!=mYL;ae6>H$Lmw&J+fVavCk9o zDfmI&`UkS}R7ubHNs3q}k^Q|$Tf+^oGR~{Zg<-&sCLhfT@Whf zm~G1U9+6ZLi5qMgrmiC&f6iwoAIg-~L7G#zUr0)?9pfb$@H=k=9E$E?}k$>nsASwI^FF?5#g!-gL6g!G-74 z_MP~{QD4=6><{7IRck~KlH1J7M(!2KswriZ?-?sgccNK5uABblvs8Mb9>`JEAozev zy}ZM)nNUif-|*2-Le0C79LO^}3-_}HxzRZl1=&LUUDUlrnPlse_n($AgeQtUQx0T# zdEGV<)tUd6fD}myJE3}@eQn;cjq(}2zD8GIfpiSXC%B5T>%_k5g{S0`jL-aLStPs& zA7?n|^>l=ndA>e8sc?{MROI`d6j8r?O4);<;YXMHn(X5xH?tT~nD*h#q2C+aitH`4 zUT(g1G2=n#Qr5nk315pJ@9g&-?BB~sYwTl^41x>HO_TSeWvNwqHe5fKq-#DO(-lHI z{r&sV_-g`1WSyeGiWJ082D|H5q^LUB6Ym-f?DRK)cQ7)=OIq z=`baiyAU2ziXE^ErZ@%d<(OQw6$gSosyH+ z!HJB`Jo`M2$9;e3U9Zg=TJjkf9BA`dUL|l`$qvvjI~r%jr=&3@*bsvt!EvE=Rapjl z)8x>8?$A>%gKhL6P|16jUdlZc#@$*D*(rho1jQ{w!GYE(@&2qTdx$$1E8}o zXanXN7T#|*^YVFPZn`B0*8(URj8q{hvN?~RN7Pc-#zln-2P}88q(~W)oie3d+HWvs=fEmW5r3%*xK%IS}_Mk@|53BU77-3)6H$c>ln%U9DnG` z3@{0-?IOeW0P2F~UdcAixv-!GLLr-BqcKmWrXgk5gwuE=*~9SV4axTOW=0cggJaaa z`Y_@x!hpMfszhj%K%BSfP8Li%&M?s6s7nMpG$P8M77SOpbbd<-F3!oCI%+$?Ob>f| zg;-fr@+xD<{mtO6=)*^FMhK8TrZ>{S{IeHq1%}2C#F}v{0Y+HTB&V(LV*Pfxlt`gj zu#Zs@hb2o`FJVA<4%3<{mvdhQtiI0Y?_JQE(nyx}e`z+~LvoB&pL#e6KO8jmb?wMH znwNkAYc|7NhhZxWGqBAjbs*~- z!BN@RT?QNVt3+Yk=*(38_PzLZcX6AYgsO0qbp8`o{A$l-C|b+#K*NIFr%QnS^0(4c zyC03vz5+y7xu|F!8?}8DJHa~!bFB}| zcdUV}t*$nSZI~D`7;-wHcTZ>xKw&F9FKkxjD z;XY@q82o%l`P}HssQORBL){0IY?P9}+y4=NWoYOYE0I-d7HRF0C6Mj9c&Or<~Wq-qBH!I4Z|ywzJF#!3)Zkvb!peJ?mVq*iM@t2%BbkQzO0Y_N(1)cwCEA|G$0=aQxPSLcZl;K_#sucP$Y0MuKJF9=7`QstQ~ua zJDWZ7Tf_RF!M=@p)Chy!H$tzUVE2vO{1!a}4}#Lib>suYO`?3DmPX7NXZJ0o#xG|Ju`bUx$?e`?5*xG#$-CJ+cg`XmjF zU&4EPdv|~cq-f-{_sq<&N#u@S!nH4O!gutzMIP(1(Xz8U`(y(wgKT&z(1jWupn5}y zfVykni)On1!a%kX>J+(FsjXvHK0I-DmowlilP{`PJ$!08B2uW4JyBx0S(8s_8&TVT z)4+y&b=ywWt7R`s{l}YL*#$7AvPW!3cUbj%XBzEX6PtMC_J#gxy@z@GiUlWY9($3q z)>mtkSsE_|1AD(8syC*y&j14i;-jajF5h19i93+ik>b}Qs6z|6v~fT$0%L3q4pzY&9t>rZ>_ssT4r zzBkvkV7CuCHxHwKcGMqE>eg7G%b0U!4xKo8g?no*SzW?Rh2wAs(IRENh9oFD)pBMfS2=VYB>x_LkA#j?V=@b?i5&K)%t3yXgI; zh}7(~HxJ?`_LPBMzOyK^ZXf92k|;AHZB?)z_bT(d@yk~gkGi)z$K6xd4M({J?9z=j z{W#5Z2;6gF1}Qk4x2sw_%^{?Ww{U5lvzb@oh-|@Z(7SEtZWlQFPJP$A@$N=o-5%-a z?;AdbY7m$?s-|9op}FSsF2%LD1s7ba$6s-UF!(C}(UtdCaC6!XP$Ug`_?(}`V9Kq5r7fn|0GJK&$D?S=zr`(09LgFw*38}K;pvlM7j zz8R3305>={A?G6_j6LM~5E7YYN+BRK=DNl$S*Fb7fqn-g1X{2W8qpTc(&oTQ~_TRsaFQ16wjz%6~Xy(0(qJ}rIE@v z*3uLm^GaHVa1YU36WWrA$Fwf6LPt)57F>8f4wOvlZ(xQC={xDe$vA1u<=Ox?E6hNJ zr^u!^d+U#U#z<4-;H>wZ#RkSQA(}=Tbt3#wlBCX-p;=pQGCjwP6GM>*dbD4AX2YbU z4RMAjIq4wHbpJpdHPF6z)eVO-G3iMsTSg|nvi;(>w`b^nxpdMrjZjwZdWu`_^C(vZ zb;6`4Lq(dCqr6@8_<1+s(bu$dc-Oc5YD?SYUw+wqLhSCkU!w1#Rs$$@>^egN*fNt~ zIW{4$aTQ~aIP&gwvUsW(qCI)z^JkD2$r?%ElU-$M5}cA;Pu1~gcc#Pg?g|6f^stil zmKx>dI>IIVex=GTAuj9P5f{yN+$w1JYaF~6(^M<{VT6-W%5&r2;;j!qls{pl0~0u! zyCyadd9StW)SeBs&(N#tE|hA!psB5~>UeeH&s})`&#O9xph*>yMjr;YOj4+k@5S0g zQ4}5*Ju$#a7PeY&q2DOmgeSRaEU%sG%0PKON6|LMmM~j)d8Cw&tG_gYwPmi{>#MSbiw1!PDXI7v)iugxh%vFP0seK*|YN%-x5gP?0t2!GXV8 z7qHVUG>jXKw77LocRG9BCf`naK4GNt@c_2pPhYjTaOiwR?fp*7!cDNwBr=5odExqe z`A)EiL)WOm@id1!LdvPK?HkVx3=EMvyRa@hTjauu$}C)#d|L6V_b!ZN#bv|JBR%PN%D zr0-UL3S%1mlas3=?k(U-och0}YOwBUznU)kwKfC2;4X>*UE={G#pN%-pL zXtar}!u7bbV0F3wilsN9$;mqITAfPoj9Ze;1@Cg|mb(1s&h>jD?(QtRKljF*4=0~n zuJ~E|mC>uh+$;~zDjz#Kl3*`XZ-&7WB}gHsYf8EFCi*>4I%jh$9pcw-vtkH;;yE|TQKR-l zCB-f$2Wepo&LZb}xvU$!DFr#Y{o149j!-rYRssS2t^$EBNrxW*69k5oL0?iOn-xt# z!M3Nk;t|NSDXBqqyX`Ae+;B5V&*5gG;bXg_Ps*u^R>un3%=5f=y2!Sm zw?w^tfj%4k{A0A*+gs13)QtO0Y`nJgdZk$%%Vs8EQwF^u_i~{=RL`PH8|Xls*}kmd z;IM@nWIwm=4ljZecfU~jJRwHMm*T&H_Pb;u)KKg6~ump(Gk&cwTl^Ws48xz;Sd?3(u%Uch}s1%?{+ z#;7@`hGjuRatlvG*j}=3W;oWNwgTCU@y@3cAf_=Ew7iFN(B+#(%SDBC%A{Fvk4;MP z%-J)gwVg)WCo<$JYa?DWHQrf?sN8oAK2ud5AqGc$`PFTHhFBAxgzFG)viEjw9@O|? z^kL+Mw-*Y}D@TOtj+jb0C|mS+SQC=9M)Ar!blWSEU)o!#9a~yjYj-azIwz{RD_L&y zc+3v_i%IJC>AJ-ix{~rdyL{8UH7*z3%6TW!0*(taw*j2;P^izC?+B)1iA*{Ai;jO# zg;#*M9&y6EAmTvtH;Vw3Wg0)6HhtvJ*w2fy&;XVCb`Y!aT>xX!=hU8h!gGm-GQqD;y%!KYwM@HW$~{scOZqd%?^wGxYtynJg8}^xC_*Q zzQz=0xuoWVYXER?Z#q*%K}7&4@FnoEHt^hDn1ye2B=x~^1bCajLv3NmM+`rJ0^DYg zHup09c`9N@AMQjg9i%hGkq@&?&~k3wMu!F4i~SwKm_yWs#UEnV?zd+^Zy3NA;~bE* zJG@Hab{uk!C-8^*(hM{A*jv5!j=J#l^Dg{L@K#hwkPbn@A8_vNl9ai9(G-P3pWC*Q6pB93S%^!NSDP}otogSokK zo`)M17f4b*0mf3{*48GpICOnB+!d_{x_U9Tq*gY+AlEB?$eb(S|qnkWLENp7kGD+%vd)lx;72D5_Je z?ZEnjUA6PV2O3*bnyk$;i}ile{WGepIg^yY_D|yscspBd{pPGL!eY6DGw+?Bld%22FRimDda%jaD(i+EY;6L}v&;PPsUD7|Y9s2GUzFwC z&vMPq7Txtzu`XKjYPbK3I-EmYm~dmtJp5q^4LaD z7uRXTZX)lZXLQ(9hd_I9M4{ zM!Q5^iZ>@6-RO$$A~HM9)rB-mS1dY7cFcjC8)>2{(1&wb<$#wkuO3@889-5HT;WBu zbVOBk4ow}+Si{Xho-;Buz$b|EbABY@B{%d`Ymt!I=jsX!Wfa*iz&o#~3G%F|E1!Nd zH~CP_?){;6liWP(bD>^ACFTPe*~vT$wT454RBP-Y99VsGS4r_&J1~~ET&C8UcuB5q zIzH*~q?IeT%t6Ubxm`sivn-Ha83${J47=uVTR}=)D8%*_W|vosp4RD-7%f%1N?I-l z#jS=h*pG-Desz{`I-*%YidWmcZF9b1`IoJyau1ih8>VstaKcp7G;p9EiXbU^-q>6& zIz^U+&479kw4SnyybboqF1|mE3ZqDH7w;G-=U#VI4mri`eMHQ4Yzw-PFI(GP+{v0r z&3(G>{(`&(XL9*Vd2>@N>m6Mv&j9QeA%X)SYI?(hCSUNp10U`(>n)wU5anpsbUx8` z(5%1x1V(#%!gqthO)67lW6NzNK-fO$~|j#6sT5RM;=~B>wJ9&^sTW{a|3qX$|;f+U;9s9yDjr^7>uYxUCZ> zcWha3{bjka`g~q^V*FrZUze?Adwp5WhsTU93)YGklG9?;F1c$}-r%2IxzMI**zp|% z;UUf#PmNV<8R2%K4G5KkPf8lK@?(IG2|a=$AN0s(oieBa4mzKJ!`M@JmEQ|37MIcC z1}@os$D6Oz_AJOBecM<2o?EZ8Y{*zzhxB4fI%a@9UHx8Euz(78)$u0QgSbtGRDk8B zG|=x4p=GM9sF7vq>KBlYT+L=;L{&q@h_{bVUVY#;=g)?V5q?wpGpp>RnZ0o!GhgTu ztb;(6ZjE2ZYEK0TQ5{)^)A5tgvU7h?naFGe-Ke=qC9+Nde$Q-qfVrnVD~_++Oe(0q zJ^FP(ng57gq}ZG))x#Ma>O-R(JMd4Ke&dh4FS=U=X|Q|i7BO+w^MFjw(oBoT5i`Xdy*$-Wr0l@&R<>r*nMqgH&KaGhOdTxEpuRF z?_q|&#KB6NVzSNi@$@pl)8|ZjAS=^|pkYbg(11fy!x!gPoyat&acx*XKn&NaHB}|<=5m*gy5CEUZ0N~O>-A&rI~e(GsWZW{Oi`s@ zVJ%weJ#X9D3l?Rzl!Y^=lufs|IFDP{xSowp`}#=Kd(M$*P=d|I+gi*hmEtQ7zf*i% z+NNA){jIh7$kwJsrPNQfgL4@%#r6Ng>1pvaAsC;CH|9AYZS+`ZVMmX;@cWc#qtRig zZ8r>j=@nKhW;xm`2?<A25&$N+6WF5G!QvDR_*M&nsPynj>uM3zRKg3uJ5h)LZ8)x4A20|Az zO~IxnXrc-XYCGHue)_#*Mp>|Th2OCp1d&QGQD8|1lda9O>+jrRk`+|C(*0Q8A=?H84 zWa(wxx1*8x^3tVShBbNje6Jfe z&jO}a&3k%zjhfOEMuxD@bGWr3Rpp)^PK?Ab2Au*I^=4Oz?gdMA5PobV^rkS~qqA&3 zUEg0kYI&t1!_oT@n|LNq&DYtAwk%J!Y{E@#=W6GKFPC4`Uf)@;qnn>Nu4ZL!o#u5o z+G%L(n9o2)5K#ZKA;0$I`y((Ie0+1M3;H zD+BB9av(CaS`H2t2SH~oa3n8)kHD&|1j+HFPKx*l4N z$Crzy9JsdJIDi;yL<7W_1ZZ$4SkY#kYWI(iJVoTFkFjPA#Kmh<2z{77KlBS2N9SP~ zC;w{v{4b@_7fSx}$JHPnr!@W$i^MHo_o!dd+E!B84Ca=MfEBjiVazT56Q1uM0e-1F z-+iKZaIu@oJ8(QZVSb8dX5@s?mH!GvqyF2~F`hoyNa!(Bd7XBnao|#v#X$)H8 z0&sR$7;fgX$uoZ;Ek1gk{v6xaidYecsiOP-^kv6D+#&EWsy~5WV+pQwOwxY_Cpi-w z+G$Hok##-Q8elrUt1N8((|-9$xLtS=*qwhX>p2OkLO3C{awW`g*8|IBRh2}h{WoBJ z3kyHQK2Je?+E|gc;*xI!=F5vW&~(mQAX$k&j)-7Ke zIw6{Md!e?|D=yQG9tqB*2*NQXAsN;-%$Mwy5v!N1W@wp0r@c3@MAn`IiLnoL*>o4u zzq|vauw8NV=~W=zUQpE5WA)D>mJW?n!Hy>YF)t$}z~k;ir7U4GEds+o1n!i1K%L)N zXZFhvG5;cP9~MZk1>;eeIo)^A3g=(-h2H?;br7@f|JFTW`jQ5W&r}alWKj&I(NANS3?BP{!J~c%$-ns;Eae2Y^-=-RptWuRuAhv?CloiU+8 z@V_R+0N3Alz!s!!pAU%uX5=q~pWnr;e7Z;BV86JFx6+q!1l+R)&Io4cC3=AmJz6Gi z01i~=0k}^o7&XYf4EW1@72rSF^nd5S|5scCF8Uv=|Ev@JA5@})9CZLwk`{nhqJM`= zk=b~NF&%(B2r~k)>0Ljl?Hke#_@xW!^Q>nMi}EXU7JnrZ{r!(9(O86t1bj)tF#{t| zv2oQw8b<;B?)=YSYBa-W{=f3F|GTflVE7X3#=Rzj(;%hPtzGFSQE`nikPquG#GS#A zI2NEC)&|M0K4W1$F2RQ(Onlg}ybuavBqy_JiY(NIP60u`5JGb8fkCJ{F5qVV7gPcN z_BySV1*@@yTS|xHgi?y2S+bsdjz{27o3RlA(7Idb?O)|I=#5X=+lcuCFzsxo_Rh8i zENo836uldFw#=%Ruk2SC!W?iU_dKYO65Y)#f9hH+mrXdEmS>|g`q_=5&6&JYVVE<#H~Ba zSbKZNX4vI(g;@!2?7lmhA0D6Cph`2!G4FXic|IX=()`2Cptm*w-UF5u-vZ0`S(lsl z%ck@r+}tn=$GR3D5Gtl${mv z^rzNF>~xH#102R_cW$mqPR|Lhtas3%_gCmt)%5ma2(SLA66`-0oEhlOQVfKICp87K z!0WVAx~QP4fc!eO{3f${wG?UxfT7fC3^o0H|Y;<`MtcFk%Ya6)Qan!lRLXq6F!w9y)p{;YA0pn0C(z5xW?Y^-7W~}Hyh`InnLK)}yYG52W&4!Z z^TGAbzxI9TwGBr0J{B_NK9&!kdvnCC(9N|Syj5Eh1OUvC^r1^TT zB8mG};QPFKCu`Mbsb8|)6+KKvC7GGIgoiyBOIsX9z1mH$%eYWgG#Ej%-I0&#JnRih zTNtCawPgkR#U1_6DyZjYDY>rqpMI^A>(pYQU|+LNA?C?f{tf)H>HSPRKh^$0&IRXR zVwtU0UDtNs{m}AZNc+NYMR~aD<>Onm?8NMIwmYm9WcUmIov`}Np`%>PT|}8=>%vuO z!mcL~TPf>#hM`rsdqTw#$!%6Vba?s9QL^kczu;{S6*XOcJ012F{#sp;Y&aRa{cyg# z)%LwzfS519%CpN^YgtQ+iO=lI4?3HSA28+mXAwr|;dq}L?Mhv(!?Qaj;x=ChIdVM$`%xH_U}!_*|^N>)+w%25LF9Rp5X`LQjV4jFa$ZnuO~?;Z#N#{;%_Cf5*o}1#T(~8^dMhU zY4*thspr5h@J+OjVw$FdV{@lFG!J+zh4TH2+F4TTIOD20?lYIH3+Y_F-xFCM&LHYF zYrrE10~p>3AD%IPvU_2t*c3k<{Tla^_bo!(=3SK!IM~fXTgKD-eeMqLxrOzp_W^P7 z^lOkC3jPHWZp-4U@pQuL6iE*3x>{ZkXFSwT19Oqv(KH)-d*0|!PmMNhBH$ovf;k>u zb0}vbV;3BpIi+WvMg6LB-(+~vSy~Q~`^r_j!<=kxdrZttV8-veMS=(t1Tt}@ z$QS0gYGwgxu3#lzcb26&+i~d(&YpuS*_uU^Z_p!!9p*FbDyKhb7_Lwca@tvU@|3ow zq(hv#GsWn6x|dgUGV*<$n5}T3d4y&u!;i#vr1bf+8(5?t2?Ymo8rrXbCgM{{d}KHo z(MKLiTtR-w#n>s&kEAp<9TZ0A&wKA3`jJ(z{uK3UTy&Y+P(l#*F_Ca0rD;R3u7t_E zw?(yd;~{E5y!!sFGucZiyxA-B zOn^#?!ezo^TF>+_5nd{C3S)gZEx8VBCxreh zyoI>y58BLrY=)yJjd$>N`(pK8ES+o)^$FJxV|$4`YltkLV)QBPGIE&I7}!qk%WTtJ z;2u`ox&Svn!rCNHDmti1R6r9(pk+u=tQLn9bc$w4lsu_9SIHf1U6GZR$=A3!i)-SA zuHM{wG-O0ks?K_GK(ayX(qsp-prz*arVpEzTtCjy3Tc3?t0e zjmDqrs|_>X6P1(7ebNi;mI z)n;xqNtT|zf^T)R`-91$3rC)vc5K47GxYU) zF1f^PFgP9Bx;D@<(7L+&{>b0q`Y;UnPT*AEEyvCwV-lKG*;|nQSIxvFN64ST@t+SN zk+i93{sUOQ=JH<;EoRD4_X;27cs|Zbb+A6DgHzforMtII4eiv{^gZo#cir?B2i7cu znLEVK%lhQ`R3L0)6jx^UId~jN7EA#pJ`(O#V&l`0h6l1vxRU&_`N^wRZ*Gp!EWze! z3XB-;-UG7JVkPFZo~YOG{XT6+==z#rwSbb0Bf&-bB^j%7+J;Yexm>bKkZscZc-xm+ zLGlmuJ!$8WpS0e~P}T_boY#3R&jC!%0mJDKpL~T^@jbx?&cJ@CYVNYF^I3*x=JOiz znL$z6TT190ueRL!==RDZMGeh9CYZdtlSPdVWx9J_=X;gh`jj*$M5Yx8#OcLrw$Gj= z(^eITv{fNUg}sMEt8fukvwRXg`f znC$qmi|-ScyHbyGtNn+>>Y|FqVw=@>4q54I-1NSGloh$7_W%@P<%@&)y*g4+FI>P1CttikTg>NrH(59jXNz%b%5baQlRrz zPj++fqS^JKfYT)u@fhv;n#VIXHM>)GX3a}Y$YJla{D^cnbIpZ;*m3eZzxH?dA^uuG z_6!yxa}O9zt<`wJeeNQAwKiz*<;_F0lA{6NtC14)pyBM2z4pN+DF@7yT)&MOTM)F- z%~sd!&Y@`y1~pF4AWv9ynsysw?gcdr9nI_alaR#5=pW z^1HWQE<0b3HS)OkS6t{^y_uYI&icTbch3&BN=tPu*?cqXesXzj%ZH3C@UE5XM&0_Z z9J)ro60rbY)V|rFW@H$im|baC8ddFiL^?c(ne?2=Y&wx z*Jzvspt4S}mHRI7H&T}iqkQBl9=5n^wToZY*sPJ@Xj2O9V;RudwdHkuvb*0tqADZx zF;UNv&PEe^qiFB?HTv^f9-4pHzQk*fx46D5YYqNtkAnI9gRY0fD`m^;ElnbLif+g2 zT1LGa8~tCcxs`P~!N15XdA*KG$$<<@3m5b6qa8JpGDf{^X9{v)gk#Wr^}PA8sw@Pm z?Dzt*be;m$5O+Jq4lB}AKlohCT99zH)V^M-*(XwQRiZT;kYZN|(uU+S63$x;ow_W$91q7SX^XerlnS zu5?Y{Q|Nob^Llx&=Ax6@%w8wO&(t_?DC+cNLrZXdOiyXO+I)k!RSn)+1~8V zfNPYa5jTvS-?;YH7uAJ3eukYO-1v-(BB0qiB96>FKywe>{ID z)mli;apiP$KugYk4rO2UNQ`}9>q3$Q+P<_#xjIKD&i$}#T2+6@bjOX6;ffFZC@z{! z40|-qbY025jOCymP;1rB*>`P4%g!zPE$_s??39dlaW-OjY|)e?^bb98zq6!s_nf_Z z>{W)0Ei9Z%ZyUD`IW`1%o$Ei_RRvSyJiDPU^5>}$og<&(l&8qX@&~8y$2Wc7kOS~1 zVeX@Sja4q2-E8PwtAr~tT)I<)HD56%XT4R?4U2wC70!RUx_2aR?_DR-Kj3ZO=96dGB!V zTwuRO3gckM@Rb06>twUc`el}oNxPNZjK(kB> zRCcUlNk~w4WoFbKZT_)}bmd(7%N2%KzM@b!fK!5`;prw$j6hnZd?yjOB$1oDu)XR9 zelEsxK>o$E437ELJO!t{QPhO(YT9`cwQttU-Q&9k<37>%M4KBKnws@FjJ^|RZ5tYW zHjTy7d4@^1&P#hrG)MhNy%VQe$s>T1ZEWt+|}NKd}}k zc$zX)YtGcGCt7XAIkOt~?Q?hAkrlewgK~~E^+c=e8_Ix&^Qpn%ilhqn6q#Yi0QHKb zy~!Ts365b&mSo8;Wz|h5(%s%_ENIl2|Di5~WoBfoIA_prRmU5j71WKjgRFqXmD}@MmG~Mx z&842#ZBd6$p2b&E+r5wV^(oeCtBzR-{q2wr7BvkK>)Dox)pLJX+JiD{sK7qOo zU*6#PF^2N2FQALeW)|71&pH0XGp38ol{CrYuQhHS#xerb8MAJ8Ja+j|$Wol?MrkZx zo%l^FBSJ?(ad9qLBW1+?)IyzCt9NnTso&o->*sGUkoq>drQ|3K_9-*4;bc4FOgV4*VZg+*D^Q}-(KVp!(W z^WDGmv&hJP;?dV7v;yN01g42J!E%GEFfaIgC0Nfv1F81x-SFH}8G;p$-DhpXbspf* zH0eBy&FelW{WkusjB#Dgro`^1Q#a!Fxtp73zU?~~=p^fW&tuuU!#gaI`Y4se+Z{di zbpKeTQ_1Rl-4hRMJ_cU9yM5<_q7@3=&Z4lcRbKqZnSL;y;5e; z`rX&8v^%A1X^KrP*$P8}#0+nMV}wp@SKmC&z#E;}AuMtc(?5|@g8H59?dQn4?^}1B zIah&`4Xk)f&cX-Ns1=$j=k%Mfp^HU@O^`o&Jt@|#4o&+%s z_kG|47nc@9B(#~!y4#m{dI#b7A@1Ue!CAd~ZCVnN2O9+vb4nXmty+2HO2^9x)tpFF z?R)Q^ki-C$vYwQO`34*KA1oI8s%mq^7Eb~IfRhl&Pz}etlj|A)3TN*B$%SGDT*e*4L!~9&& z(IN>C6yj)2Kb<66hDPP^bd;0pg)0qi$UbORX4k0r z)J{SJ?_|>r@jnTzF-lSKo1aX+4iwG*9Sf`zGC1H5n-V+yhM%-`tqPEV1odnM)6iin1MRN7}zBlWwSnj_(_V!vOyo?RM1o!uav(KzIM zD2IJ+^vYL@vg=ma8!6L*RWuij21c0N?Nj%w~IQxUOrrzp^kjqId+4rb2 z|KaO7pSO4@B}fh*95U*D9;>ysr0wkH{6j7a=!*_NdcGB2Z*BOHxJci)OnF7vQ{yg9 zG~1q-BhH>1ojeg0Nc2at7&4#c?+o#1Ctt>9X;*#KBV!RiZ4DzRXFrQUGMu>+aa&Hm z_|20C9a1mP?+xLB`U!S~+?dH-h99A@Bf0iCIgYxXO^=b{rn@+BgA9vWHS3S~y>v!P zV%2Ipvm0{Ef714fztXWMH%flvyOfyww%tt!)^S%05&hGLQYzBKc*R7t-V_JNmUOaQDsYT^IKoP$YT|$~&opWjE4xc5Lq3*1S8y zh3meIRu#OtqI1ANs2cY?(JFD10({2Xq9dlT2H| zpOiVC5@vd`^^;(t9|N2@S)XaJuvg_caSThqaO9~|t#Ln;V_nch@^$q>{4W)JU1gg3 zCfzCMU~3ml(#uYTO)HrWQBGF^DCtI<4_c-aSyzzWHL1`K<{mILw8?2P4z;knlYBnz z=0pa;NFz&%Jl|Fd>~5{AW0^j9lSmphSH z=AXaf_z`oavggMCWXBYIBTN@pDq5}82&}A*NdZOvFW%Rmr4W>a!T^Hx3K>gL`yT8rp{5QW(sU#+W)Dh5jgnYO@LDKS+(m@j%=zw|K z%oExdnztQ?;{B*N^sF3~DA)`jJ&%`YZ^5Bf~9Xkew>hd-G=(E`NP~b=(D3RRGkJ z2Z(BfYr#N=ne>KV%CeHbRT;>;KYgY-!@EWq}@b}B;l&KA#fbqwucCBYC^T3$LK-BX!5~`vm7Yl%`tzi9N(_X&u|5p z1DnjF%!5+4JH7YbWUxtcD9YZ8jVYt>HGSv677dq#^BN~R+7dA?hQYuWYYKI>+5~1$ zu3zYn_D$@PNwb&X)?~YGY-sLd07Qi`{LJ_Zog27xONFiY*W2S?Zl<^n`I? z#KLTGW#HYlV-OJst%ouv0ejtojBE?onubB)Q~MF}1$4*)rX*J}lA!-kMTciP7RK}c z^`o8m|0FcJBZh*7nuK}tgl^)~7#O7oEyj7)`16T}#Bzg&B!~7GC0f^!*gLT?gaWZ< zxvL)$?W)Fu4vhg(}*7i@| zLDF@A7XI(Ld`Rj9WH*QODL_L11{tQ-jgiPHqzpuG!!3g8im&0*O*@*jjh4 zweHjKX~>6fGVMf1dNPRwYowBSUs(`q29et1J`5B&pZ@?uIZW?ZHrYNh$uaTIked;o zhn6i8#$bK)2^74=zTUB|j2`}^XfOLvAdrXcTb?Y`pcVMQ_m-8w{?{j?3N3V}WPx02 z5~lUe(uw=qSqNB@rF1j6Y`R}e_YJ14C&>98?d8*wgb)Ihil3vJG3{|O|%*C{}U;@$9sL^^L8Q!9Wc7Hl!U%yECw9j5JZcfUqPEe70L5& zZLj}`*QmCC!MQJ=z`5T6^0n?lb4Gg!_H1xcVs`G5O++`DC?FBh4}44j=YH)mnL7nA zno=Q5^T_~Q6->cAEy8%TbP&2J`;j_eX#P|BQ23k99)8S4EoUv)cVLG1KZ$iaV*@u!ynf(muih^sLw``)`?O6bX-Ohgtd7 z&|o8i1%vrn;z3kRmZmtAtAD`r&#nq&#Vp*-CX(gTUt=e^4GSEa(vuTdTTlO(vmkBx zhCR|jw`MmCrb}Ausbv?j)DJJ&BkvgYkQGzw5q&;4yx+SocP{ndGS(9v&MLLJ=|+1_ zoAseIN8BkOB{A6sq_Hh6vxu^)B9c(I$(lQrTsk;u z0F+JxKb*niK)%TMcH~z8gARr!5Pz_4=im+)^Z4KWH&Ge{M1NcK=VM~S<&T^TH5EibeapKoA+UV^hK{(|K!rhevsmDa6XmV@1=l-hF?E)QSeQd~O z=0IbE5Y0!sb0&6r7A<8`XW0i(Mfo-mNySWj%aa-~NHucSy~n7F!7@$5#aV;F=ydH2 zwtRd~s~TG=kGh@GjyLH%Z#b77y{J#eb_-G&s>0lzX`NoH@q@#ZmSP9jV<$sf-!~Nr zZ_Ox)U3>XK?coPCVQ*KRC|4Vd%eJQIXTQOj^G@&ksr1s>KBbvKI}MZ`ELce2cJn|_ zEmt;5_G-x;sm=}jjk{0NCA&5#${JWYARkL|4VqcO@f7$Yj66zwzh*mD8RO=$BQg7w zSxfWTYj^AyZE;%O(e74MVbqzPjk|Ru+1`?mi*4;F(EIkH`_b)Jg7+P(so&9JK0El) z3-)&p(RSbrf@YXmB{bZ`i6*#2c946tvBbstb0Ff+S!8-ZKi>bvVdcK&r{OcpinEo{ zjF{g?`4~cMIg4xoun5ygArTvb+wek!U!TMVheuwc1)2C&kiL=$Lf8=v$k?@={V_lCG|UR9J^!prSx1hWjb{lUfGd*zO*oQ5pLhHso#t^dUf-lM30Sk(9`Gn z&ud*xx3xBy)vWC3)#wz~<>pYQg`HKS^;oyj3mb3?c4Yf#;cbRO?Wvq)?cSO@^74G` ze#ovp^rKOt`N^kWEpIAA6$@>C`f*3bN5!zNIS1#uS44suD|z3Bn~^z z|6GF<2}A!=g`xk>($&}hhu$wL(@iwv{(F?^{vdo4Dc`)fYD|r}5bL|=UIW}Orp9>> z0g(v^<1)Ta1;*X|6EfVKXk9)oCW8RD60nRQw0y?T1eSB!u%_$Qj{yB!3I6Hb?v{kOoPTc*|Ls zv-*cK5~GgH5h37zo{{q0Q=yOLP9{-IUwU4^S zvWEfO7FJeD;>v^V>WN$lqnUS8@ZVBq{xy^$+|V`<>r_BeGle$?CE*n6@~DcAkc{RR zk%kOVdkSB*6;OD!dp8ohoce~yqchQtBp|g-#m!4eW9u6+;l)mbmt07y519mxCwTVD zz1=#2a(7W-KoYp=ypV&dw1mC$0itd{Mti_!2*Nx_!obxu-f_SeTCW+L6vpuf?GHbL zLD8wmZ;k&i$ok(R_tL|tuApXV{`tn3L?ALSrY!U+MZ0BpcLS@sHITISwE&xt901Eq zdA_JiodAG~lVJBY`D3jo(1s9UnbxJk!7-^0v`>%B3;7P7!C1%OwtuoiCJ{K%1wC|> zoE9Psi)ISfJB$d{H;n4@eNJT2{E;IPO@=$GHI(x5kXh8N)QF5v)uxJh*KatEmZ;Rq z++aO<^8A*;g&0BZ!vueE+>Y_My*@9=&UIg4b6JgV9v^uoh%SO@m3Dg7>#A?6y%$^c zWaL^p5)XyDVP;tQG|{cegSdXFdY1XS8^2f|5 z*Ajz^O{A0Rg4UN=Bv0Q~+b-vlcFe$8Z(kC>DfirlAv2`v%Ue)#2=4b>;`2umZecPmcDs;RUMh)J<-j7Gp^kpG5MD(Ky8-n%$eSww99E$hSmv^u zlN<{doPTR5*#6#c?6ZVGB>`C6+5tatBmn7ZwSum$aBS=$QG~S*1L${DDDJZYZO_HP zxR)be9wIiKh$of}Y!{6A5t5d0OQ(S&?nyD}^Pn1F7mS<J$jai|0c6;s`t`7{+;{ z%Lr;Az#ml6&+E~meIQ0X8jiLrQV2)ni6-ui^ud0zm3ftfQz$^pvNq()Ls)PV44=Q( z^>H!1Lm+7&iH+SsSSwu&1^jZ19SXBVhx9H|phx2ZE!5q?q7Z>D9249&{PGaF)L9ZO z+VT>mt%iFEAPZiTIMVCm3GYraZUlxqDx}YZAer+e&^K-@Lt=3=5F71`|KbRvBO?G| zE&YI0-2$d5O~PIR4_pE_t2YFF*vaE!m4<)kv?BedN#!S+Q$MeD(VP;^DUqEL*(uT9 zC))c&{*=g{`rU5&eqP4iD6{ayo~H&ih7TM@vo7CQHghN;JS|g0PK$ak=CE4Avu`fC z-^0DGuV_xZwO<|M2G|1ihT2j!j-64#9o1u&cRFRaA$uM%RCQ#Na%_zI6Ov4_k*B}Y zVXaCcmQHPhR!8Ml2ru#RNkk!uC?pYuB)>Z((f^00cu!HG znsD)@PjTzF_}LDj_>MZC6?Q#M%!^d3`wr(Z_Jsq@Lb^q5nmS)y9o6gFb)|{4@#Bg3 z&!?0ErjJr0_I2z%B)IWb-)n5u)(bC>_+OdY;IvTfOk#hJL42;F&eDT6=c@PKVVoPJ zAL)D+7;sikIng)qw&AQrKeX?a+$(ppTYc~8n`2`=b!Xh@i}&9TA9h2mv9@c-kXM$B zFboP$JW3j)ZzgtwgfEW`Ozc52JRQ%U4>LUiMGN0N-MqSiaM{9R6nCE94aehQi=_rM z8U5`6Yqyv2OZ3$xebJO24%DAVp;KORaP*Z>{KCThi=DM&b?4R9_l5>!4WvY6^+dHm zIq={z?xFty^7`*ZYX8UkCj^?lU;@LQ^$<&buETj@P=~we#1!gwj|>AD#weM{XA*ZF zP$m44A&q?Wog2|xuSc1T1PoY43J}1)%titGqB((mS%>914yV$B{cuMgmo20jSW7Ac zSf`-JzQ+AWAV(`k?EcJFLF5Z9D{pWOzkzyb7*`mH_R;sD-IpOy&q@%!ki(_MmyMH0fB&&fox3W=ExlpbQ}{eS3_{723j(Rcmb zy%GPh;{KJ#j$AxiR5hkbnuqqeamWOX(aYaD2{>oW?<)GD9O)g<0*atQS~IepG$!XV zD*O=&uf+Z1blXWFHylka04_r7*j+@43Nox;?9*iZ@&jq04(sKE0XU6NIrfC%28u8c z8FiW<3iP6PZv9sttG{t=;(+J-Ei+cHUw;VTZ1#>4B^pzJRkxCSV}vu-#UB;s)5l&B z{_IS`=n;*pU5s|$QRM@D#bm@-TYzmJ`4BBQ3;-wQRv5O~;rv?8EEwtA1a`M>)jk+aZ&m#F$_RfY7=RSuBzPNM9?-h`BOk62ubJH469ktJ ze{vPvZD{;}4FIU3)OuXZ#GXwHMuuEcQU26&bj0=wl1!RJ?QqQHm-`D_{RSAZ?&7d9 zn)Ex3EX_G!&#zY?@~S=~rtRc0r6GhbeFzzT1*nviBg{W@bNKn(lkh42tX=$tFrpJ^ zkpohK)}=5+l15vG%z46Kp!-}+uO_k07{E2tmylpiiJp>83}l9j%f-O`;UutmbNhj>&fjTp$z8F#7*7p$Hjud z>6j}s;W6nCvUG`s2La635zepECpC?Q2&bBli;2MrUwZg>ze6A0L4e|>oQ&(j%~gbe z`pjvp0O4t(^D%Z5yJ}o)N&FWVt3LV&M6W)Rcr$6lS8%oo*~G`=Vpi)>!uKY|J_WZC zNxF#rc61ECxK8UqD@oMpBQh+72)?F`i!JLM8$Cok0vj)!rHZz_hdWq>Ohwy)?Q}Zu zpXLe-0HNYkhzQPvd~unK)<-Ht!z=WY8j4Rvi0u`h2MUFIz$T2usr~_nu!YhA}0uV5(|Mbb|t`wF1e5d&jeDFJ~3pHYsEYt#`DQ*0EYvvTpO6N zpQV;0Mt1wbJ?)2}WEu+@bHUXod1wG@`eN4kj93_cImbw%DFzErG{rG#qT7x$nc#vG9H2A7&CkNyUf*c}y1pX?J}+HMD0IV^`|Q z{Km~Yn>>;8v9Bw}kYuk^s^(0#z-7J1%8XFQTqRms(TTbpY2#u+@5jX!KO&OA6>VkU z%Jz^ObtYdz({uwiTX1BGh#Ak==0#PrK1pX}O$$$OoX6b$(A~yVe_$2K;+Xq~poR*o zkWTfok68Fjf(_?*J8>ONpNR_c1t2n=8ugeCVtxnfuf10@=r&r>low*8lx~_F(k-!I zwfjkQ#u4_rEaUVU^)JfzeCU*XzvkvK8F%Bg)ka%Lrsi*uFP!?xV-Mz+-ZT;=3X4Qx zkti$@Mc%*85{M#iQF77QO0yN#c3n>~@jbkDisWetMcaGAPjQj|zt`ySbHS$WS5*&uyiB z7uumXGh3iqJu*XQj*p2+h%{bNwNE2cNzF{wN+D|x3~D*ak1P6=%#i9Dh*ZI6cDosJPmps<6>DOA<+}X zGXT9DnE<`yqr6au^q&i#PzE#3EF|$&4$cD7g)mdbpiS<|u8wO=!+ zLsogpXyb$s#Qmu7NkKjg2GL~;ac-*sg!m2l3Sq_9bG6*UkqUStgYW0Gz<@0C4cx`hz#s$Ab`# zi=B2L&LVM}H2~%0NEZgJA@l5K`iwz!dlJY_2$^kIHKsH!CX4mCy+MZy6@3aC`l;ah zuV@7ubTA3+u{tYg;cY|9K6Hfe=T<=a&Ljc`lx*zt-wKufRY?uqgt1-31vhAo%|y9d z06HQSjNOzY7}#VSJ6sPVe2#A;G-SvuB1QoDz(^HT)wo*&J5UHwe9K&@H4gxu zw?+&8Y%3StpPbfPhJ8GG`M=It3vkD{7OP%JMdji?!3oUJCq*X`|FI0y}~Y zUsE0S6D&*uv0v^fpkfO;2Ix-Vw!gq(W5`2ZSSo0!I)U(PkCd>~I;My`sEzcN5+82o zw~q<}I2f0tDKxwb4}i)Uz4tc|V*eIsz<%mAUc2}522)z0XX&N% zkl9AA4{Ypuo|>`(Z4bHUEzW&DM?G5sTUp_=aNyQ*tMozm@9MhRNVE`*AD&3fu0b+Uz{6eal|&O)n7XL$%-5Pz@98K8@DwGd;`6 z8)#L3*H2OO+OM4c{K|$pIa`nG+RnyvwD~$bl&onYJhoJfrDBz^VRylqg8M7_0|L)q z3-dg~HT=Av+)5J2f$3K2;vYmCo!AI*H`SVb;THB>StukETI8Ql5bnlTqW!uPkY=`h z5#?*a6gD{@S?EAom}8#co=T>%Fu%=Cj2`K%h#Lv(LY$?;bba-{bysR_t?WOL!?9~( z?yPAKWof^%H&TBPY3pO(L){(0Ngn-O1)|2 zrJrSDdo(Yql{KQ#Zd(y(;;^#cK5Jj?0aIstofbhx#8A0>dqxD0yF=mF)q#OUv#So@ z$Nyca-~Ln3MzTu3N~TP_J)Y9zc|1O@$C{_dIOLVklV#QaIwr9@D=4A( z$~`)>aVK~5ymh^`%XU|LH>b^Kw!1i;oxM9>ZS!t}P<54fa<#o+Ng;nKv^Z!HjV?sB zkNDfXGIk_4mw3m4J9(GPeTSnRvEdqYfri~iRQ31?=y!;;toBjf>ix)0e_bYvB<0>( zVU%XKso<#xS{ZXHrrNuz`wnAud{ifXpuqR}8tr)9#Vs`t8FFd&>xUBdYSC8>=-OyQ z6sz@SCQ*j8)xy_k^1Vt(kR@)r+lstB`v8~WTel6qkjS)ctLTuY7zGm2wBX@!u{A$r z1@gu7dFiwt&&3$DFw(paQC&M)HjV;E09+9=7@%AOHH13r@n2N&`7%p2$HK``)nk& zCyo^jQz4Ib{x#N1K#{_f1*V80DLnUAO6fo2-%0w!ChZZn#-Bsp)s_W0BTYH9$0*Ud zj>O)HjUkjqH=^9tkBD|v<3R`XfGgG~M<=3g2%Z@xesCyda=$8s-mn`{F_gYhSVB-77GB$hehLf_rZI}J#zDfwx{$_~ zy$cz587aO4S>ZaG4P@4gL9hTXgrAFPV@ogCaDvUWE;|_ zpnZqmAj8zUF%mh2^xN*@(k|K{b95T5ON*yaz#LP0gubhR9=Hdm>4UThB77sPM3XN+ zOcJgxBR@{ZM<#DCZpepkGVMf1dNPRwYowBSUs(`q1~l@I`!GoKJ^ulQa+uz+>~|)H z#Xo05j&vScwn!L*_0ip-tKCSeG#MB%eyawP`%`oWgOEe- zguJBg9~W~gLwdQJpsBuqwga7nyC1}JWj`xR>nf7xUn@eQfAz)w))@FeAtE2_$f5pC#LOA|`BYnc#+-zkwE50`VJzhr z{l=XBHamq5<%|8A1DjPz%@p~Q!`bFCjjc}PxjHR}KW@5k-`&0>t2Kc#rM21SDH@hX zf8e-rRRS8{!8obvvJ0xxE{;Wy^j<{C1gZ8xg;Jeom$@Qxh3qqFmwNeuWs`zUpLK{yKai_d8)U zG1sROnbRR&fKI1M(cKTv*_y2IzYB~0OSp{m{{F?>xl-~KpFQPEib`C}>4!2RRK zSfqg~(!l-C@xVkf?n@e?*DTG^DAGvBxY(JUZEQZF@6O~)L=y3DASTLl=fC-(U3TzByTUR6N4YufjrLtdtGB~B%&PXY{s6tTP$p|4AnL$xCY z+>bcS-}jjK&Sw?)?$*dj>}srLt!v8^*0HVvZ0?q#OWWDx3(n`7P39=QSTj%GEy?cP z0VkUlzQKG3g)umLLCd0}j~~})*lbeqo;}x=OnTkDe%rjKH+$B_zZ$VHR?X;7sxGtX zw}!UToTlykt8X5A1^q_D6q0$_h?=+IKErlt$H?7!`# z4Nnc3;Or4(H}E`Bm)f79-V##6O!U(S9|g4S6m49roQJftu#7?Bk`Ul2no|SBHDp6x zHY8hVI4Xet>6e}$q_~|}J{RK3@Ai$0WlMmIpNrDzqw@L_6NE!;2R2h`i!mlH%jFItdsvG8Fu=^0}TxOCwAXaYaR@Gv5}JkjWh=ALM2hzyI!EQ@vx z(Vi=E2}BN+$Q}KE##^o%gI1%dwnD$OL0m<-PoG0+Td^*}lB%Ei)ZCvoC0)HV^TN51 zYq7J^uxIT1sB?~MYIXl+vb{$#b$x?t;H`maH`-}(y`JGY5?;=ZWrE`084A65<|Y~C z!vqau>JZTdfySo-JpAGWuR-H{ywrWv zEV8UFM}yDk3gkB6M>;fReBL^Dyu6k*@SMLLfAHC+E`8CmD=iE?MJJnpDpuw8J)y5# z4hPts=Ly^yyX#I_*!1u%8cwzB+^h8xq4<17)RNQaeRXW~1#L>+e5w=2?-D_x>Qx`B zIk#oj_r$B3VY~~g)pX7E+AV$KT~?_FOJaUcRHna<;oOhjyZ7Y8+>Wv|(;m8J<(U4d zRkCGHoneu=OHK4M?r3OOK6S~Be!{n3jHia}Zl4_{b;n}nRDOTlL|^fjG3;9qp8joQ+AOpyMymt}u?KKF zTOj0YM>+G(RPnwp6~03WyI$cIfT!mU|Paw&57+0VUt7`_xql!Xyin5PPAHooq`jY z5|I%WZC}62NsAVQXhDb;glIv~|A}t8JJP=af>^-uUHnm?hD&k8S>l%whY^{``}F*nTTP}$$I7J+x7yaeS|=g>WJ9p-tRD-rQZ75F;pM~Z;TR)>pE~6n z6Ta_KoS`Gx6zEC%G)Er|F9`!AtR*1fLcVPj9i2zDICRpPG9S$9?EHB*_1RF8zuPBWD z)@+JX=L2VP10aw!SfGT3v4A2?TZDSI$7&KXMvJjR!g0EB- zN-{5@_+f#}xLC=j58e$O#MW`Kd0kNRqdlh(k}z~1DLqx?<6=F|`e=l?K;Iq)6achw z(QFEEY>|PN7;hncd2Q#;==E~O#Q@yve-^SrRqr#$#b&CbpLIv<0am;&4y#ZmmZ!pl zDL~(v;<^AT)XYZ(r=EMCCFb6Q!>@X(D-`|uXS5-+S43FY+?ON0khs_|f9vM6m0CR( zqy@NUk=EkIj&O}*!5$B4E=#{jlb-iJy|}1LVE`iy$+0_-Q?D~@NxJ?FiXd_(v%RJo zZXs764edkOXP5%%%2oOef_1rt8SH*ZTIyh5N_}PUL+8>LoCWc7rw8r2HekuPLfR>S zQu3vAq%C>r6nC_JbuDU-23=2**i6;O*J*FMdZg;LLUg;t)jZklvzyN>zusgbrzf{V zX_rN?VT%v)VPotP`!_)ywksb2S}S&WR@gB2nel1 zBTiVOc*)Y)H*X!nIHi41{S|7KZaf*fV_R+`?$yD>x9eyuFK-FCt$m(AIQqTc$=|)` zQK#{dh(nJsaMgxBMZRZu#wh9OXg{e>ahsb^yn>1KYw?-{YGE9Q?_^5=4a_ydQNNF-}kDSxxdfL-Do_@m?~GhU{J00 znB_c7UstB{Tvg7exB$a|zlEFq-@Nv7xjbJV{V<9;0Ml3l#-r5q@`L{i#(}Mc*q|$* zx#a=>U2gvZzcenk{Jo6O4;{!o@)4weP~iTO1(up^Y%-94IsZcbq5uyfnOzFxFEDRM zR@6B0>lr2+@K5L!de_3Y>}X*#aKSKepmp&FEJV)kkv|g)F=Y~L_?K-#W8~jMcGlZF zF7~`0@cE83o}=MV*Icyh&~> zwgiR=b*GG0NuwXmMnIPm>{REUO!QD>`Rw_3ea=+IB$Q=7&wSqfwyTH~i(=?|=tZge z6fz6_5Cs^bBRj2$+Xb{dbP~3*j)pHAi}+-5Xxh;Q>(lUv$qNV4EnT1Mv>}i69Yo<% z&<(Tfya0n)O}qAc8yZQk2L(&u!L6|8o(I@-42vezKf>soh9wQ+>n{;Is`~nYwsBK2 z!V4%Rm(THzH6hx~1+M6D208=pfKHjk;A1>KKnMM^XGeIDtG=j*mfbpma(7X^#>Eo2 z>AVnfBx&OAwB|?<eOkUvVe`$=$@xK<*8=`Lpo&=yUWiKRKcUYm38%j*>yC zI4qheT<h_o>h!w8|v0@3LZ|}Nc(j51YV%<;&LiUXgHlJB| zax`q;r;S!zhKJOhGlkzoTG~3W5A2L6(<#o;-1P0$W3jT0h2W_--fyf^GSN4GO5m)4x zu}t=-=*<^=7i+tysi%B@&J>pF(bOz2+i2zI>2B5gle?VME3yru7KG{~*Hu10A~_Tf zAhDTeS%bm_m_L*tw&T&zrQ}Ln(Y63om>MRWsnUz_4~#Su_XOCgrp&eh`TMb`zoXh) z^RK4GrF0%68sa|QOgNU%?3IDWx(QUP0Ayu0Q$*y81PZ6CD!sLD&NIa;0nj~-=7uznU0s&Mcnef#{ z*(s=?s#mCCE;^fN-2M{Ui)M&uWr=LaFKI5(S`e)T(OM9#1(A;=@-2T|{`h}jUy%OX zZeA?E@%7-YTD`^Yyn=#)Ca;R#-YRkTfcn?3U)L+ge(V|e=)GZCW=5v(QirbF)hdS# zLk;&>8kW$~GcV^Db}$;7S(M8Hh5PS&^AzgOwJ6DJ8Kn;8)p)F2s`!?ov?Hf`dB~b( z+bS)}4TG1>-`tr(L}H7O57z}&P(h<~(1Zp$#^Yj}dA!yotQjurNUMVmtUMhMKsOw9 zjj>krr(5X`?)Fm;QKBtyYxw`zd+)HOwtig{D=H!)O+ko?i1ejW6p$=ML|{P#6r@H) zN} z$3Mc82PQKkV~#O??ft#4Cr&5wBtLDzyJa+9M7&&a@RiSZ?aQqmFN@gr2P8#9&y6#BC84Sysc~azAtTSNjz&%e zM>>P<2g@A2p6V zaxdT##-Klm{qExLfBltWoR&hzXuDsAbzNqX*(!t`=iYNaokx1Cd=Pqpyk| z$&;}?(SH1HvwALp6q8x@`D=)0Rl3dw-yi(k(}u7B{|4X11FSR{_CK}3mktVS%}C}o zoYIr>$Eq^uI1c}A3w#j7 zliNZ!_;Pkbpni(iJ+Q&o?SNp?5Rfv0x8JoL%~_-N!tS#?{I?vkUe`KISgu6U*^kvfq-yUH69yWo`4G(tS;3H-42HEDa3Uv~s#eoG56i*mBVK_Uu zSHm&5*_m`oi|4)%clj4J1U)(=LmoNczm~qglk{;Pa-<>pY|b2s2#7vR%%QZ5vETOC z;nLz2iq}J&1EzgvDcnpa0C~HGr&gUDZM%nbs#Q-kP+=cHx)DYLb>4L_*Pb<;in-;& ze^{^IL2s^DYIDvMKAOTjPl1#OO))`TBuQKo=^(MR0{W7^fDb2og|hNbKZ_Jky^0MD zTur#}>f-&nME%JlN6O2$THSz~2hDpphb>u3XDsUN#cfWn#46B>y84W-y@(2?_A+x= z^5MEB)Nbr$=18pW*)o62*1+G|$F49p_@dM^cmj3*n@G}@v&a;_YQIWSEaIG3t zA3xvkV^oS&UO4=wI>qWzuHj`vjuUPG`6^+qh;s`vtrO#1=5B#pS;hL7j)kI<+Hq19 zH7ucswnim&cpoe5X$1=(O3boJp3xH}ycUix#!$oazLhfze<&=t+oNB`MPO_&Y$+j^B&xC^5ofRVfH4 z)ap$||74!}>cEm-xdLm8;s?2ddV0yP$pfobUUXYEb=E7-7B&q`&dy^lW?Ch_Sm%NQ z?N$J^2rb>!(Q{S%q}#eb~)5Ju=2H%fh%(5W${5 zk5==#zUm=;r)ciu;@#HMi`;!N@UCgjMSPQD!%0IrF~WLP<`i_8&a(vhp|ByQkj>z+ zgyshAewy3-;hxnf330Sx62sZ;ffJmU6=mMWRWpL=)fKMEjLc> z@^1gaEC_2KBWv%y6D}g*8)Tq%H_S%m#%bGF3hPK_7U0o&*)8^+G?&M@5-iHAXxPj} z@^S#4XizRojaNG+Zo5-tM;6XF;yQLu(|>Gb^(j= z-z%5-Q$F^meC*%7rheY<@7<&SyXW(#eC*$M$o`a%{V5*{JobNH`B?ro(ho(KlWJr` zxU+i^&QxEA4|;IoK|BJW*PV}XK+(kvi(jS{j4&DK8!e=T6wsG(7+|$)T)#Ac4xo2k zpyTK|lJn{s53pxE+>Y;b{1;_aN(*{DsUCkhg!xBH`e-%Ic&#LqsQFrUe8y5eA z{8WYOlGPD84a^}>!M(}73R$xxsQA_dN$z2&n##jABKI{&LlNdoVw^65u4L(2{7riy z?Zm@{o=M$0i}p`8bBm>NZ(a_TxKs`L%oZ056ni|uf2NcEKttL=@J{)B_#IkUgod3bcLDXvcOEqo!@2Oi!L5YGB=tw z&WTM^meV9Xp+H&@@UE``Ao!c$71AJ2mQ$;>Iqn_0!jYH@1<_+A(oS~f1*@`h<76^u zsJMILW$ikreX9H`kddWsN0Ka<7g{XeL|h#VK0qrL16cV#^WxnY=?C^*bH0$OaML&O zjMHQNqmOG6%i?oSYA2TD?!9zq1TwH*&&D^sA~7$Q>a$0{4#$D?!fw4o?(;8#-Ffkg z>T02m3UxI#TG|DXu%v0839>0+zq_EU?!32F#BwRRF)dB&q^a)Vnh|Q2u z83_->>G^Z$#|*^wyS{Nd-jyzTYMWT@+tS^7hu88`Ww6$&?vkoDT09wW5IkA?O9N$XzGwXIwAJ?0L0BF6*j&yUBbX^TPt~M{l z(Hb2^VWb zG3%h1y1f!Nv>x%JEq9w4Q=-LW{>muC&n7YnQSdJR^kKS%GLm+@dcZ3f%WSdSyKptc zq0WK!rcNsVH~l|Lx!x}>h)5_;uR8&XjHg`wfn{tg`W1R!t$@t93_V~j($P&=(a(na zFAd?up@{P=LTEZ|WV1){Cs@h9S?u2SbDlW{B4^@HTOb)Eb_i7bB6t_{ooUJNin?>h zqa^qcRL-2G$=Lp+w&R%2k14gNmUP* zdS=9h1iMQIjn3AwPSfb=5=OE&T9h_x52d%l0b{@a-HpTl6QYdIzJDRfyS_(ygD;2( z(lVfUZDy&*--=ihr-I;ngU@#sp~aQ`3!)5a!Cz?d2HNy?=yNrYr?V3tQ5Hr=c=#s# zblnfBO*)}0>>s$B5&v03@h_FL-h^D?|x`M?{}Q<=N$aw=731&&|SI7 z36V&)4g}URYGj4?bc7YcIt3dWwjwyvKQIafv+LZJRua`2v9fw#gD>|+?>ymI0ypk7 z2W~u#-{7-2Wm)xmA>2+T6L$a@IdeLS`J^d$r+*`il#}M$P(nVgZEkB%)PLiEnX<>JOgHkC7e1Gu=0OvDF ze76p9zw6KoF;fP>|<5pu`p@$&h}? z*_y&9@Shf+f_V!!=7kZ-5E3@3Bf|AoARGH)YOQt|ux=%Fb|Bc&;Ov@7Q~n{=l+3;L zzbaA(`{Ai{p*2}#c{MM2Q54)lNg97#gNMd9wIY@-;$5*Eg$V`lSytNcWskWf^y)4= zqZm+QltZWv#M`;w!dJ>0D|#bg=&v|3eh54Lg(|O3Bx%A8Ka#-fJQdoqxF*KH&*`Dp6MhBHXpOOWKKl66&Ho?1 zgktc2!H=;D9D!{h)thvLmy4gv1c00A78H@z-p~?(A6EkT34LG?eR?~8D0n|k6@VM@ zt2bY9K!SHGK%gbovp8@kDV($-9|%8FS_2#5FUmV>TGIGVqgYTcxQ5~x|5!jR`CBBDuvi3FU>h3!S?DFXW2jlU}I3)tzXMErloSmF^R=0(KX*>M55v$qw&(;{25w>b{u zVVE@AhU6)_*aPh3ku&&D_kaUw`a@5yPJjNd*1Qm-0~R{jH($U5Y$VQcA=EgcdN28n z8`D8-`!&zX-bYAbtQXaA=GEse+N{D+$JpUlBCFf*nWgw=1g=aN{q5}yJ{Q!d@o|h8!-zjiG|~wnWN z22~Wrqpx_K!uEUhqDoNBCscIJ4tLOeXWpy_8QC$x9EI-vJ5A!xFrW~eLLjx&$-#Az z*p?;8<*_2`pJBjHH#_&LER;^PZ*)z}xu~e{+M6Y`chJs?8tpP@4;4U7Vp_ z8=HVe91>d5TQ%N(X!uPH%W^z>>VnMf)N8c2gO$Q8*%nxWnIGZ7_BhQADxQoaXzi(M&1|dNti#AH!v#v*U!o0v}SEc!3 z3o+^WPYUfi{B9IZkFXO>J%XHqJk+f<)9&?mVZE`+-uklbGwmz*B*QrXecWctt42}@ z=~=IXw?Ne)S}lDca&RfrkiP3P)JvUwE7#WIKq>dXxWFdk1t{(#=MQKk>BD1NX@fBZaPpRjH`2NxaKbRBJ0?5POh1tCvj>O-}0xcu3)Bf@XGHj zxWD=0BAND-S9hdlsCmND%G&FSgPVcUd-G3llG_Vy$D(|XbeF7Bx0<+kV$KX(Gd(}4 z7~^+uJ^aZFOnO+I-#y9rEIj7uaCMbdRk?vT#?Mo^YE^ToL;a+#R|)nCL43e8zhpS> z?7&>_KXFZl*hqnt7rEk7jYy^`VGpqx8&(x4(b`M?-nM>x&wyr%5 zYeH$#VQux}-EAyEtuU^zho4j7?C<&Z-nb>x90}#d=93>-lsb2~ zCo|cape!nHi#dCy|KXx&2#PI!_5LI0bOtF%4)1DaEd2fJ!`RtDqv@Vxk%m`h9dphE zu5>ks=;72ah9OJ@ySbuLnV+n}m1R0EUERtE8q?~K`jzkCOQSE>PgR_0L^=oW1BVvq z1EVHW4y*{Am0V?DBVmDA$wyIQc?Io@5r8Hmtm3j#ep9dw)j{U;dVNnNJxhB~ zs8&ZtiRB84+o8HE-)>8q3cjZH2eBDpAyOE%?o>>|ezI=Tbtr#l-@3aVb* zGP%^b=J8#Eodf>Ml|;?m;47a6>dG8$6*Dbr_Yy~0pXyA0wZ*N&#*XUH-P3r6K) z8V)f>qJnjbMm=o#BYmV@dZZ060qz1P)9fj;A)h#F)SK#tfl4KTsJX@4Q{j_j%#9T3 zDi1m!Mq$U5_A`4)en(99GDy%FS9llkDMV?vmC0hAqWJ{k;^@S^ z)0)DaOmx%9cd3E*hykwd2})#%$HP0!Z7<4YJ#aa5jMT69-a5UfAG716iRad`U-={w zkKQ}9hff)`<-td5s3F)AME3+10`BMq7H&qraD;=LCN1p&pev#hnkOtBf)u8`g#4+} zyF?3X9+yqc(e`^Ul_1r$6s@b(OGC;y8u-eRh*DX$nX9bF&Dstv934~`rVS&QEHVT z9xd62KWYf={pPKb*>HG-I=nnK*7Xiys;$l(4;kuE0i`^x+QplNu@eDtf~Z z(t5%+vw`AKFZ?r18iwk`7;5~pt5)PkuoO#;ZK?U{x&62G%G#OqJ@t8H_vd1R8l^gy z`_$T>IpLqL6>x=J;T_h1Jf@SC5Z|C3d<`mk7JL<&W+3=`nX{LwnPyL3T=N%coDd`p ztH=2{i2J24*?Gvw0+5h?%erJ$fnLJXwj9i`mTgF7vs?DmEUm z@*Hze1T>CEa6yXF-R|OI2Xe1Ttyk}|6M#NU3MKz5?4htA zTj1KUw{O#xf;{|lv+4AJeftkR6g_F8-v7?(^z *F;0-3kJ%q$B*4dY9ntWASJCi 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∋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

    Ki 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⪼$szR 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%0Dvhh?*8r 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

    m~xPu7s8%=O^$gip@`(bZx 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

    n$dQycdg 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 N; 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%0AoB?+i=PdI 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 FKLJR#evAMB literal 0 HcmV?d00001 diff --git a/MindEarth/applications/nowcasting/PreDiff/main.py b/MindEarth/applications/nowcasting/PreDiff/main.py new file mode 100644 index 000000000..e430ab0ae --- /dev/null +++ b/MindEarth/applications/nowcasting/PreDiff/main.py @@ -0,0 +1,77 @@ +# Copyright 2023 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +"diffusion main" +import argparse + +import mindspore as ms +from mindspore import set_seed, context +from mindearth.utils import load_yaml_config + +from src import ( + prepare_output_directory, + configure_logging_system, + prepare_dataset, + init_model, + PreDiffModule, + DiffusionTrainer, + DiffusionInferrence +) + + +set_seed(0) + + +def get_parser(): + parser = argparse.ArgumentParser() + parser.add_argument("--device_id", default=0, type=int) + parser.add_argument("--device_target", default="Ascend", type=str) + parser.add_argument('--cfg', default="./configs/diffusion.yaml", type=str) + parser.add_argument("--mode", default="train") + params = parser.parse_args() + return params + + +def train(cfg, arg, module): + output_dir = prepare_output_directory(cfg, arg.device_id) + logger = configure_logging_system(output_dir, cfg) + dm, total_num_steps = prepare_dataset(cfg, PreDiffModule) + trainer = DiffusionTrainer( + main_module=module, dm=dm, logger=logger, config=cfg + ) + trainer.train(total_steps=total_num_steps) + + +def test(cfg, arg, module): + output_dir = prepare_output_directory(cfg, arg.device_id) + logger = configure_logging_system(output_dir, cfg) + dm, _ = prepare_dataset(cfg, PreDiffModule) + tester = DiffusionInferrence( + main_module=module, dm=dm, logger=logger, config=cfg + ) + tester.test() + + +if __name__ == "__main__": + args = get_parser() + config = load_yaml_config(args.cfg) + context.set_context(mode=ms.PYNATIVE_MODE) + ms.set_device(device_target=args.device_target, device_id=args.device_id) + main_module = PreDiffModule(oc_file=args.cfg) + main_module = init_model(module=main_module, config=config, mode=args.mode) + if args.mode == "train": + train(config, args, main_module) + else: + test(config, args, main_module) + \ No newline at end of file diff --git a/MindEarth/applications/nowcasting/PreDiff/prediff.ipynb b/MindEarth/applications/nowcasting/PreDiff/prediff.ipynb new file mode 100644 index 000000000..777d8c62a --- /dev/null +++ b/MindEarth/applications/nowcasting/PreDiff/prediff.ipynb @@ -0,0 +1,1783 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "bb7af2dd-61ff-4033-bc04-3a1ec598f5c4", + "metadata": {}, + "source": [ + "# PreDiff: 基于潜在扩散模型的降水短时预报\n", + "\n", + "## 概述\n", + "\n", + "传统的天气预报技术依赖于复杂的物理模型,这些模型不仅计算成本高昂,还要求深厚的专业知识支撑。然而,近十年来,随着地球时空观测数据的爆炸式增长,深度学习技术为构建数据驱动的预测模型开辟了新的道路。虽然这些模型在多种地球系统预测任务中展现出巨大潜力,但它们在管理不确定性和整合特定领域先验知识方面仍有不足,时常导致预测结果模糊不清或在物理上不可信。\n", + "\n", + "为克服这些难题,来自香港科技大学的Gao Zhihan实现了**prediff**模型,专门用于实现概率性的时空预测。该流程融合了条件潜在扩散模型与显式的知识对齐机制,旨在生成既符合特定领域物理约束,又能精确捕捉时空变化的预测结果。通过这种方法,我们期望能够显著提升地球系统预测的准确性和可靠性。\n", + "基础上生成精细化的结果,从而得到最终的降水预报。模型框架图入下图所示(图片来源于论文 [PreDiff: Precipitation Nowcasting with Latent Diffusion Models](https://openreview.net/pdf?id=Gh67ZZ6zkS))\n", + "\n", + "![prediff](images/train.jpg)\n", + "\n", + "训练的过程中,数据通过变分自编码器提取关键信息到隐空间,之后随机选择时间步生成对应时间步噪声,对数据进行加噪处理。之后将数据输入Earthformer-UNet进行降噪处理,Earthformer-UNet采用了UNet构架和cuboid attention,去除了Earthformer中连接encoder和decoder的cross-attention结构。最后将结果通过变分自解码器还原得到去噪后的数据,扩散模型通过反转预先定义的破坏原始数据的加噪过程来学习数据分布。" + ] + }, + { + "cell_type": "markdown", + "id": "d3ca5c0b-4fe8-4764-b046-b154df49cc9b", + "metadata": {}, + "source": [ + "## 概述\n", + "\n", + "MindSpore Earth求解该问题的具体流程如下:\n", + "\n", + "1.创建数据集\n", + "\n", + "2.模型构建\n", + "\n", + "3.损失函数\n", + "\n", + "4.模型训练\n", + "\n", + "5.模型评估与可视化\n", + "\n", + "数据集可以在[PreDiff/dataset](https://deep-earth.s3.amazonaws.com/datasets/sevir_lr.zip)下载数据并保存" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "56631948-30aa-4360-84d1-e42bff3ab87c", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/data/zmmVol1/miniconda3/envs/lryms25py311/lib/python3.11/site-packages/numpy/core/getlimits.py:549: UserWarning: The value of the smallest subnormal for type is zero.\n", + " setattr(self, word, getattr(machar, word).flat[0])\n", + "/data/zmmVol1/miniconda3/envs/lryms25py311/lib/python3.11/site-packages/numpy/core/getlimits.py:89: UserWarning: The value of the smallest subnormal for type is zero.\n", + " return self._float_to_str(self.smallest_subnormal)\n", + "/data/zmmVol1/miniconda3/envs/lryms25py311/lib/python3.11/site-packages/numpy/core/getlimits.py:549: UserWarning: The value of the smallest subnormal for type is zero.\n", + " setattr(self, word, getattr(machar, word).flat[0])\n", + "/data/zmmVol1/miniconda3/envs/lryms25py311/lib/python3.11/site-packages/numpy/core/getlimits.py:89: UserWarning: The value of the smallest subnormal for type is zero.\n", + " return self._float_to_str(self.smallest_subnormal)\n" + ] + } + ], + "source": [ + "import time\n", + "import os\n", + "import random\n", + "import json\n", + "from typing import Sequence, Union\n", + "import numpy as np\n", + "from einops import rearrange\n", + "\n", + "import mindspore as ms\n", + "from mindspore import set_seed, context, ops, nn, mint\n", + "from mindspore.experimental import optim\n", + "from mindspore.train.serialization import save_checkpoint" + ] + }, + { + "cell_type": "markdown", + "id": "415eb386-b9ef-42af-9ab6-f98c9d8151da", + "metadata": {}, + "source": [ + "下述src可以在[PreDiff/src](./src)下载" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "3ab31256-d802-4c68-9066-6c2cc9e73dcd", + "metadata": {}, + "outputs": [], + "source": [ + "from mindearth.utils import load_yaml_config\n", + "\n", + "from src import (\n", + " prepare_output_directory,\n", + " configure_logging_system,\n", + " prepare_dataset,\n", + " init_model,\n", + " PreDiffModule,\n", + " DiffusionTrainer,\n", + " DiffusionInferrence\n", + ")\n", + "from src.sevir_dataset import SEVIRDataset\n", + "from src.visual import vis_sevir_seq\n", + "from src.utils import warmup_lambda" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "e2576e2e-b98f-4791-8634-d68e55531ede", + "metadata": {}, + "outputs": [], + "source": [ + "set_seed(0)\n", + "np.random.seed(0)\n", + "random.seed(0)" + ] + }, + { + "cell_type": "markdown", + "id": "7272ed00-61ef-439c-a420-b3bcefc13965", + "metadata": {}, + "source": [ + "可以在[配置文件](./configs/diffusion.yaml)中配置模型、数据和优化器等参数。" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "6c2a2194-7a48-4412-b4d8-9bcae2d5c280", + "metadata": {}, + "outputs": [], + "source": [ + "config = load_yaml_config(\"./configs/diffusion.yaml\")\n", + "context.set_context(mode=ms.PYNATIVE_MODE)\n", + "ms.set_device(device_target=\"Ascend\", device_id=0)" + ] + }, + { + "cell_type": "markdown", + "id": "9e4b94cd-f806-4e90-bf67-030e66253274", + "metadata": {}, + "source": [ + "## 模型构建\n", + "\n", + "模型初始化主要包括vae模块load ckpt以及earthformer部分初始化" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "36dabe74-de56-40c2-9db6-370ad2d7a0fa", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[WARNING] ME(2231351:281473150263328,MainProcess):2025-04-07-10:32:09.988.000 [mindspore/train/serialization.py:1956] For 'load_param_into_net', remove parameter prefix name: net., continue to load.\n", + "[WARNING] ME(2231351:281473150263328,MainProcess):2025-04-07-10:32:11.431.000 [mindspore/train/serialization.py:1956] For 'load_param_into_net', remove parameter prefix name: main_model., continue to load.\n", + "2025-04-07 10:32:11,466 - utils.py[line:820] - INFO: Process ID: 2231351\n", + "2025-04-07 10:32:11,467 - utils.py[line:821] - INFO: {'summary_dir': './summary/prediff/single_device0', 'eval_interval': 10, 'save_ckpt_epochs': 1, 'keep_ckpt_max': 100, 'ckpt_path': '/home/lry/202542测试/PreDiff/ckpt/diffusion.ckpt', 'load_ckpt': False}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "NoisyCuboidTransformerEncoder param_not_load: []\n", + "Cleared previous output directory: ./summary/prediff/single_device0\n" + ] + } + ], + "source": [ + "main_module = PreDiffModule(oc_file=\"./configs/diffusion.yaml\")\n", + "main_module = init_model(module=main_module, config=config, mode=\"train\")\n", + "output_dir = prepare_output_directory(config, \"0\")\n", + "logger = configure_logging_system(output_dir, config)" + ] + }, + { + "cell_type": "markdown", + "id": "ef546194-7eef-46a6-8ffa-504d4b58fa25", + "metadata": {}, + "source": [ + "## 创建数据集\n", + "\n", + "下载[sevir-lr](https://deep-earth.s3.amazonaws.com/datasets/sevir_lr.zip)数据集到./dataset目录。" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "d4b45562-49b1-4ab3-ab52-bad420c30236", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "train\n", + " vil_filename \\\n", + "id \n", + "R18020113057733 0 vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0101_0430.h5 \n", + "R18020113057811 0 vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0101_0430.h5 \n", + "R18020113057875 0 vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0101_0430.h5 \n", + "R18020113057888 0 vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0101_0430.h5 \n", + "R18020113057982 0 vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0101_0430.h5 \n", + "R18020113058079 0 vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0101_0430.h5 \n", + "R18020113058477 0 vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0101_0430.h5 \n", + "R18020113058635 0 vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0101_0430.h5 \n", + "R18020306327357 0 vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0101_0430.h5 \n", + "R18020306327410 0 vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0101_0430.h5 \n", + "\n", + " vil_index \n", + "id \n", + "R18020113057733 0 1310 \n", + "R18020113057811 0 1311 \n", + "R18020113057875 0 1312 \n", + "R18020113057888 0 1309 \n", + "R18020113057982 0 1308 \n", + "R18020113058079 0 1306 \n", + "R18020113058477 0 1313 \n", + "R18020113058635 0 1307 \n", + "R18020306327357 0 98 \n", + "R18020306327410 0 103 \n", + "len 837\n", + "hdf_filenames ['vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0101_0430.h5', 'vil/2018/SEVIR_VIL_STORMEVENTS_2018_0101_0630.h5']\n", + "Opening HDF5 file for reading vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0101_0430.h5\n", + "f: vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0101_0430.h5\n", + "self._hdf_files[f]: \n", + "Opening HDF5 file for reading vil/2018/SEVIR_VIL_STORMEVENTS_2018_0101_0630.h5\n", + "f: vil/2018/SEVIR_VIL_STORMEVENTS_2018_0101_0630.h5\n", + "self._hdf_files[f]: \n", + "val\n", + " vil_filename \\\n", + "id \n", + "R18031116527414 0 vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0101_0430.h5 \n", + "R18031116527427 0 vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0101_0430.h5 \n", + "R18031116527438 0 vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0101_0430.h5 \n", + "R18031116527505 0 vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0101_0430.h5 \n", + "R18031116527686 0 vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0101_0430.h5 \n", + "R18031116527705 0 vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0101_0430.h5 \n", + "R18031116527805 0 vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0101_0430.h5 \n", + "R18031116527860 0 vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0101_0430.h5 \n", + "R18031116577456 0 vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0101_0430.h5 \n", + "R18031116577481 0 vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0101_0430.h5 \n", + "\n", + " vil_index \n", + "id \n", + "R18031116527414 0 1684 \n", + "R18031116527427 0 1685 \n", + "R18031116527438 0 1687 \n", + "R18031116527505 0 1686 \n", + "R18031116527686 0 1681 \n", + "R18031116527705 0 1682 \n", + "R18031116527805 0 1683 \n", + "R18031116527860 0 1680 \n", + "R18031116577456 0 883 \n", + "R18031116577481 0 882 \n", + "len 9939\n", + "hdf_filenames ['vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0101_0430.h5', 'vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0501_0831.h5', 'vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0901_1231.h5', 'vil/2018/SEVIR_VIL_STORMEVENTS_2018_0101_0630.h5', 'vil/2018/SEVIR_VIL_STORMEVENTS_2018_0701_1231.h5', 'vil/2019/SEVIR_VIL_RANDOMEVENTS_2019_0101_0430.h5', 'vil/2019/SEVIR_VIL_RANDOMEVENTS_2019_0501_0831.h5', 'vil/2019/SEVIR_VIL_STORMEVENTS_2019_0101_0630.h5']\n", + "Opening HDF5 file for reading vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0101_0430.h5\n", + "f: vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0101_0430.h5\n", + "self._hdf_files[f]: \n", + "Opening HDF5 file for reading vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0501_0831.h5\n", + "f: vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0501_0831.h5\n", + "self._hdf_files[f]: \n", + "Opening HDF5 file for reading vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0901_1231.h5\n", + "f: vil/2018/SEVIR_VIL_RANDOMEVENTS_2018_0901_1231.h5\n", + "self._hdf_files[f]: \n", + "Opening HDF5 file for reading vil/2018/SEVIR_VIL_STORMEVENTS_2018_0101_0630.h5\n", + "f: vil/2018/SEVIR_VIL_STORMEVENTS_2018_0101_0630.h5\n", + "self._hdf_files[f]: \n", + "Opening HDF5 file for reading vil/2018/SEVIR_VIL_STORMEVENTS_2018_0701_1231.h5\n", + "f: vil/2018/SEVIR_VIL_STORMEVENTS_2018_0701_1231.h5\n", + "self._hdf_files[f]: \n", + "Opening HDF5 file for reading vil/2019/SEVIR_VIL_RANDOMEVENTS_2019_0101_0430.h5\n", + "f: vil/2019/SEVIR_VIL_RANDOMEVENTS_2019_0101_0430.h5\n", + "self._hdf_files[f]: \n", + "Opening HDF5 file for reading vil/2019/SEVIR_VIL_RANDOMEVENTS_2019_0501_0831.h5\n", + "f: vil/2019/SEVIR_VIL_RANDOMEVENTS_2019_0501_0831.h5\n", + "self._hdf_files[f]: \n", + "Opening HDF5 file for reading vil/2019/SEVIR_VIL_STORMEVENTS_2019_0101_0630.h5\n", + "f: vil/2019/SEVIR_VIL_STORMEVENTS_2019_0101_0630.h5\n", + "self._hdf_files[f]: \n", + "test\n", + " vil_filename \\\n", + "id \n", + "R19060101537335 0 vil/2019/SEVIR_VIL_RANDOMEVENTS_2019_0501_0831.h5 \n", + "R19060101537490 0 vil/2019/SEVIR_VIL_RANDOMEVENTS_2019_0501_0831.h5 \n", + "R19060101537544 0 vil/2019/SEVIR_VIL_RANDOMEVENTS_2019_0501_0831.h5 \n", + "R19060101537604 0 vil/2019/SEVIR_VIL_RANDOMEVENTS_2019_0501_0831.h5 \n", + "R19060101537632 0 vil/2019/SEVIR_VIL_RANDOMEVENTS_2019_0501_0831.h5 \n", + "R19060101537740 0 vil/2019/SEVIR_VIL_RANDOMEVENTS_2019_0501_0831.h5 \n", + "R19060101538445 0 vil/2019/SEVIR_VIL_RANDOMEVENTS_2019_0501_0831.h5 \n", + "R19060101538500 0 vil/2019/SEVIR_VIL_RANDOMEVENTS_2019_0501_0831.h5 \n", + "R19060103457525 0 vil/2019/SEVIR_VIL_RANDOMEVENTS_2019_0501_0831.h5 \n", + "R19060103457650 0 vil/2019/SEVIR_VIL_RANDOMEVENTS_2019_0501_0831.h5 \n", + "\n", + " vil_index \n", + "id \n", + "R19060101537335 0 2317 \n", + "R19060101537490 0 2323 \n", + "R19060101537544 0 2318 \n", + "R19060101537604 0 2316 \n", + "R19060101537632 0 2322 \n", + "R19060101537740 0 2321 \n", + "R19060101538445 0 2320 \n", + "R19060101538500 0 2319 \n", + "R19060103457525 0 1469 \n", + "R19060103457650 0 1468 \n", + "len 4053\n", + "hdf_filenames ['vil/2019/SEVIR_VIL_RANDOMEVENTS_2019_0501_0831.h5', 'vil/2019/SEVIR_VIL_RANDOMEVENTS_2019_0901_1231.h5', 'vil/2019/SEVIR_VIL_STORMEVENTS_2019_0101_0630.h5', 'vil/2019/SEVIR_VIL_STORMEVENTS_2019_0701_1231.h5']\n", + "Opening HDF5 file for reading vil/2019/SEVIR_VIL_RANDOMEVENTS_2019_0501_0831.h5\n", + "f: vil/2019/SEVIR_VIL_RANDOMEVENTS_2019_0501_0831.h5\n", + "self._hdf_files[f]: \n", + "Opening HDF5 file for reading vil/2019/SEVIR_VIL_RANDOMEVENTS_2019_0901_1231.h5\n", + "f: vil/2019/SEVIR_VIL_RANDOMEVENTS_2019_0901_1231.h5\n", + "self._hdf_files[f]: \n", + "Opening HDF5 file for reading vil/2019/SEVIR_VIL_STORMEVENTS_2019_0101_0630.h5\n", + "f: vil/2019/SEVIR_VIL_STORMEVENTS_2019_0101_0630.h5\n", + "self._hdf_files[f]: \n", + "Opening HDF5 file for reading vil/2019/SEVIR_VIL_STORMEVENTS_2019_0701_1231.h5\n", + "f: vil/2019/SEVIR_VIL_STORMEVENTS_2019_0701_1231.h5\n", + "self._hdf_files[f]: \n" + ] + } + ], + "source": [ + "dm, total_num_steps = prepare_dataset(config, PreDiffModule)" + ] + }, + { + "cell_type": "markdown", + "id": "0fc4c0ce-9870-43f5-931b-30c8b5705122", + "metadata": {}, + "source": [ + "## 损失函数\n", + "\n", + "PreDiff训练中使用mse作为loss计算,采用了梯度裁剪,并将过程封装在了DiffusionTrainer中" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "4e8ff7ff-3641-4a1a-b412-6587c5b09562", + "metadata": {}, + "outputs": [], + "source": [ + "class DiffusionTrainer(nn.Cell):\n", + " \"\"\"\n", + " Class managing the training pipeline for diffusion models. Handles dataset processing,\n", + " optimizer configuration, gradient clipping, checkpoint saving, and logging.\n", + " \"\"\"\n", + " def __init__(self, main_module, dm, logger, config):\n", + " \"\"\"\n", + " Initialize trainer with model, data module, logger, and configuration.\n", + " Args:\n", + " main_module: Main diffusion model to be trained\n", + " dm: Data module providing training dataset\n", + " logger: Logging utility for training progress\n", + " config: Configuration dictionary containing hyperparameters\n", + " \"\"\"\n", + " super().__init__()\n", + " self.main_module = main_module\n", + " self.traindataset = dm.sevir_train\n", + " self.logger = logger\n", + " self.datasetprocessing = SEVIRDataset(\n", + " data_types=[\"vil\"],\n", + " layout=\"NHWT\",\n", + " rescale_method=config.get(\"rescale_method\", \"01\"),\n", + " )\n", + " self.example_save_dir = config[\"summary\"].get(\"summary_dir\", \"./summary\")\n", + " self.fs = config[\"eval\"].get(\"fs\", 20)\n", + " self.label_offset = config[\"eval\"].get(\"label_offset\", [-0.5, 0.5])\n", + " self.label_avg_int = config[\"eval\"].get(\"label_avg_int\", False)\n", + " self.current_epoch = 0\n", + " self.learn_logvar = (\n", + " config.get(\"model\", {}).get(\"diffusion\", {}).get(\"learn_logvar\", False)\n", + " )\n", + " self.logvar = main_module.logvar\n", + " self.maeloss = nn.MAELoss()\n", + " self.optim_config = config[\"optim\"]\n", + " self.clip_norm = config.get(\"clip_norm\", 2.0)\n", + " self.ckpt_dir = os.path.join(self.example_save_dir, \"ckpt\")\n", + " self.keep_ckpt_max = config[\"summary\"].get(\"keep_ckpt_max\", 100)\n", + " self.ckpt_history = []\n", + " self.grad_clip_fn = ops.clip_by_global_norm\n", + " self.optimizer = nn.Adam(params=self.main_module.main_model.trainable_params(), learning_rate=0.00001)\n", + " os.makedirs(self.ckpt_dir, exist_ok=True)\n", + "\n", + " def train(self, total_steps: int):\n", + " \"\"\"Execute complete training pipeline.\"\"\"\n", + " self.main_module.main_model.set_train(True)\n", + " self.logger.info(\"Initializing training process...\")\n", + " # optimizer, lr_scheduler = self._get_optimizer(total_steps)\n", + " loss_processor = Trainonestepforward(self.main_module)\n", + " grad_func = ms.ops.value_and_grad(loss_processor, None, self.main_module.main_model.trainable_params())\n", + " for epoch in range(self.optim_config[\"max_epochs\"]):\n", + " epoch_loss = 0.0\n", + " epoch_start = time.time()\n", + "\n", + " iterator = self.traindataset.create_dict_iterator()\n", + " assert iterator, \"dataset is empty\"\n", + " batch_idx = 0\n", + " for batch_idx, batch in enumerate(iterator):\n", + " processed_data = self.datasetprocessing.process_data(batch[\"vil\"])\n", + " loss_value, gradients = grad_func(processed_data)\n", + " clipped_grads = self.grad_clip_fn(gradients, self.clip_norm)\n", + " self.optimizer(clipped_grads)\n", + " #lr_scheduler.step()\n", + " epoch_loss += loss_value.asnumpy()\n", + " self.logger.info(\n", + " f\"epoch: {epoch} step: {batch_idx}, loss: {loss_value}\"\n", + " )\n", + " self._save_ckpt(epoch)\n", + " epoch_time = time.time() - epoch_start\n", + " self.logger.info(\n", + " f\"Epoch {epoch} completed in {epoch_time:.2f}s | \"\n", + " f\"Avg Loss: {epoch_loss/(batch_idx+1):.4f}\"\n", + " )\n", + "\n", + " def _get_optimizer(self, total_steps: int):\n", + " \"\"\"Configure optimization components\"\"\"\n", + " trainable_params = list(self.main_module.main_model.trainable_params())\n", + " if self.learn_logvar:\n", + " self.logger.info(\"Including log variance parameters\")\n", + " trainable_params.append(self.logvar)\n", + " optimizer = optim.AdamW(\n", + " trainable_params,\n", + " lr=self.optim_config[\"lr\"],\n", + " betas=tuple(self.optim_config[\"betas\"]),\n", + " )\n", + " warmup_steps = int(self.optim_config[\"warmup_percentage\"] * total_steps)\n", + " scheduler = self._create_lr_scheduler(optimizer, total_steps, warmup_steps)\n", + "\n", + " return optimizer, scheduler\n", + "\n", + " def _create_lr_scheduler(self, optimizer, total_steps: int, warmup_steps: int):\n", + " \"\"\"Build learning rate scheduler\"\"\"\n", + " warmup_scheduler = optim.lr_scheduler.LambdaLR(\n", + " optimizer,\n", + " lr_lambda=warmup_lambda(\n", + " warmup_steps=warmup_steps,\n", + " min_lr_ratio=self.optim_config[\"warmup_min_lr_ratio\"],\n", + " ),\n", + " )\n", + "\n", + " cosine_scheduler = optim.lr_scheduler.CosineAnnealingLR(\n", + " optimizer,\n", + " T_max=total_steps - warmup_steps,\n", + " eta_min=self.optim_config[\"min_lr_ratio\"] * self.optim_config[\"lr\"],\n", + " )\n", + "\n", + " return optim.lr_scheduler.SequentialLR(\n", + " optimizer,\n", + " schedulers=[warmup_scheduler, cosine_scheduler],\n", + " milestones=[warmup_steps],\n", + " )\n", + "\n", + " def _save_ckpt(self, epoch: int):\n", + " \"\"\"Save model ckpt with rotation policy\"\"\"\n", + " ckpt_file = f\"diffusion_epoch{epoch}.ckpt\"\n", + " ckpt_path = os.path.join(self.ckpt_dir, ckpt_file)\n", + "\n", + " save_checkpoint(self.main_module.main_model, ckpt_path)\n", + " self.ckpt_history.append(ckpt_path)\n", + "\n", + " if len(self.ckpt_history) > self.keep_ckpt_max:\n", + " removed_ckpt = self.ckpt_history.pop(0)\n", + " os.remove(removed_ckpt)\n", + " self.logger.info(f\"Removed outdated ckpt: {removed_ckpt}\")\n", + "\n", + "\n", + "class Trainonestepforward(nn.Cell):\n", + " \"\"\"A neural network cell that performs one training step forward pass for a diffusion model.\n", + " This class encapsulates the forward pass computation for training a diffusion model,\n", + " handling the input processing, latent space encoding, conditioning, and loss calculation.\n", + " Args:\n", + " model (nn.Cell): The main diffusion model containing the necessary submodules\n", + " for encoding, conditioning, and loss computation.\n", + " \"\"\"\n", + "\n", + " def __init__(self, model):\n", + " super().__init__()\n", + " self.main_module = model\n", + "\n", + " def construct(self, inputs):\n", + " \"\"\"Perform one forward training step and compute the loss.\"\"\"\n", + " x, condition = self.main_module.get_input(inputs)\n", + " x = x.transpose(0, 1, 4, 2, 3)\n", + " n, t_, c_, h, w = x.shape\n", + " x = x.reshape(n * t_, c_, h, w)\n", + " z = self.main_module.encode_first_stage(x)\n", + " _, c_z, h_z, w_z = z.shape\n", + " z = z.reshape(n, -1, c_z, h_z, w_z)\n", + " z = z.transpose(0, 1, 3, 4, 2)\n", + " t = ops.randint(0, self.main_module.num_timesteps, (n,)).long()\n", + " zc = self.main_module.cond_stage_forward(condition)\n", + " loss = self.main_module.p_losses(z, zc, t, noise=None)\n", + " return loss" + ] + }, + { + "cell_type": "markdown", + "id": "da1c23d7-fbff-4492-af19-79f30bcc0185", + "metadata": {}, + "source": [ + "## 模型训练\n", + "\n", + "在本教程中,我们使用DiffusionTrainer对模型进行训练" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "024a0222-c7c7-4cd0-9b6f-7350b92619af", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:32:36,351 - 4106154625.py[line:46] - INFO: Initializing training process...\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "........." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:34:09,378 - 4106154625.py[line:64] - INFO: epoch: 0 step: 0, loss: 1.0008465\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:34:16,871 - 4106154625.py[line:64] - INFO: epoch: 0 step: 1, loss: 1.0023363\n", + "2025-04-07 10:34:18,724 - 4106154625.py[line:64] - INFO: epoch: 0 step: 2, loss: 1.0009086\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:34:20,513 - 4106154625.py[line:64] - INFO: epoch: 0 step: 3, loss: 0.99787366\n", + "2025-04-07 10:34:22,280 - 4106154625.py[line:64] - INFO: epoch: 0 step: 4, loss: 0.9979043\n", + "2025-04-07 10:34:24,072 - 4106154625.py[line:64] - INFO: epoch: 0 step: 5, loss: 0.99897844\n", + "2025-04-07 10:34:25,864 - 4106154625.py[line:64] - INFO: epoch: 0 step: 6, loss: 1.0021904\n", + "2025-04-07 10:34:27,709 - 4106154625.py[line:64] - INFO: epoch: 0 step: 7, loss: 0.9984627\n", + "2025-04-07 10:34:29,578 - 4106154625.py[line:64] - INFO: epoch: 0 step: 8, loss: 0.9952746\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:34:31,432 - 4106154625.py[line:64] - INFO: epoch: 0 step: 9, loss: 1.0003254\n", + "2025-04-07 10:34:33,402 - 4106154625.py[line:64] - INFO: epoch: 0 step: 10, loss: 1.0020428\n", + "2025-04-07 10:34:35,218 - 4106154625.py[line:64] - INFO: epoch: 0 step: 11, loss: 0.99563503\n", + "2025-04-07 10:34:37,149 - 4106154625.py[line:64] - INFO: epoch: 0 step: 12, loss: 0.99336195\n", + "2025-04-07 10:34:38,949 - 4106154625.py[line:64] - INFO: epoch: 0 step: 13, loss: 1.0023757\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:34:40,962 - 4106154625.py[line:64] - INFO: epoch: 0 step: 14, loss: 1.0007098\n", + "2025-04-07 10:34:43,332 - 4106154625.py[line:64] - INFO: epoch: 0 step: 15, loss: 0.99492\n", + "2025-04-07 10:34:45,177 - 4106154625.py[line:64] - INFO: epoch: 0 step: 16, loss: 0.99957407\n", + "2025-04-07 10:34:47,040 - 4106154625.py[line:64] - INFO: epoch: 0 step: 17, loss: 0.99685913\n", + "2025-04-07 10:34:48,823 - 4106154625.py[line:64] - INFO: epoch: 0 step: 18, loss: 0.9956614\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:34:50,720 - 4106154625.py[line:64] - INFO: epoch: 0 step: 19, loss: 0.9934994\n", + "2025-04-07 10:34:52,552 - 4106154625.py[line:64] - INFO: epoch: 0 step: 20, loss: 0.99108785\n", + "2025-04-07 10:34:54,389 - 4106154625.py[line:64] - INFO: epoch: 0 step: 21, loss: 0.99182785\n", + "2025-04-07 10:34:56,159 - 4106154625.py[line:64] - INFO: epoch: 0 step: 22, loss: 0.99136275\n", + "2025-04-07 10:34:58,118 - 4106154625.py[line:64] - INFO: epoch: 0 step: 23, loss: 0.9886243\n", + "2025-04-07 10:35:00,045 - 4106154625.py[line:64] - INFO: epoch: 0 step: 24, loss: 0.9947286\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:35:01,964 - 4106154625.py[line:64] - INFO: epoch: 0 step: 25, loss: 0.99265075\n", + "2025-04-07 10:35:03,818 - 4106154625.py[line:64] - INFO: epoch: 0 step: 26, loss: 0.98734057\n", + "2025-04-07 10:35:05,604 - 4106154625.py[line:64] - INFO: epoch: 0 step: 27, loss: 0.9867786\n", + "2025-04-07 10:35:07,383 - 4106154625.py[line:64] - INFO: epoch: 0 step: 28, loss: 0.98637533\n", + "2025-04-07 10:35:09,311 - 4106154625.py[line:64] - INFO: epoch: 0 step: 29, loss: 0.98799324\n", + "2025-04-07 10:35:11,054 - 4106154625.py[line:64] - INFO: epoch: 0 step: 30, loss: 0.9851307\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:35:12,883 - 4106154625.py[line:64] - INFO: epoch: 0 step: 31, loss: 0.98547524\n", + "2025-04-07 10:35:14,629 - 4106154625.py[line:64] - INFO: epoch: 0 step: 32, loss: 0.9783558\n", + "2025-04-07 10:35:16,444 - 4106154625.py[line:64] - INFO: epoch: 0 step: 33, loss: 0.9851396\n", + "2025-04-07 10:35:18,122 - 4106154625.py[line:64] - INFO: epoch: 0 step: 34, loss: 0.98461366\n", + "2025-04-07 10:35:20,102 - 4106154625.py[line:64] - INFO: epoch: 0 step: 35, loss: 0.9879103\n", + "2025-04-07 10:35:22,232 - 4106154625.py[line:64] - INFO: epoch: 0 step: 36, loss: 0.9743713\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:35:24,417 - 4106154625.py[line:64] - INFO: epoch: 0 step: 37, loss: 0.98045284\n", + "2025-04-07 10:35:26,435 - 4106154625.py[line:64] - INFO: epoch: 0 step: 38, loss: 0.97129095\n", + "2025-04-07 10:35:28,351 - 4106154625.py[line:64] - INFO: epoch: 0 step: 39, loss: 0.98204684\n", + "2025-04-07 10:35:30,122 - 4106154625.py[line:64] - INFO: epoch: 0 step: 40, loss: 0.97880834\n", + "2025-04-07 10:35:31,760 - 4106154625.py[line:64] - INFO: epoch: 0 step: 41, loss: 0.96932787\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:35:33,513 - 4106154625.py[line:64] - INFO: epoch: 0 step: 42, loss: 0.9717276\n", + "2025-04-07 10:35:35,276 - 4106154625.py[line:64] - INFO: epoch: 0 step: 43, loss: 0.9716038\n", + "2025-04-07 10:35:37,238 - 4106154625.py[line:64] - INFO: epoch: 0 step: 44, loss: 0.9686392\n", + "2025-04-07 10:35:39,268 - 4106154625.py[line:64] - INFO: epoch: 0 step: 45, loss: 0.99201906\n", + "2025-04-07 10:35:41,141 - 4106154625.py[line:64] - INFO: epoch: 0 step: 46, loss: 0.977281\n", + "2025-04-07 10:35:43,166 - 4106154625.py[line:64] - INFO: epoch: 0 step: 47, loss: 0.96613944\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:35:45,249 - 4106154625.py[line:64] - INFO: epoch: 0 step: 48, loss: 0.9612762\n", + "2025-04-07 10:35:47,142 - 4106154625.py[line:64] - INFO: epoch: 0 step: 49, loss: 0.9577536\n", + "2025-04-07 10:35:49,114 - 4106154625.py[line:64] - INFO: epoch: 0 step: 50, loss: 0.95175207\n", + "2025-04-07 10:35:51,080 - 4106154625.py[line:64] - INFO: epoch: 0 step: 51, loss: 0.95729643\n", + "2025-04-07 10:35:53,116 - 4106154625.py[line:64] - INFO: epoch: 0 step: 52, loss: 0.960687\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:35:55,202 - 4106154625.py[line:64] - INFO: epoch: 0 step: 53, loss: 0.9575224\n", + "2025-04-07 10:35:57,168 - 4106154625.py[line:64] - INFO: epoch: 0 step: 54, loss: 0.9500365\n", + "2025-04-07 10:35:59,015 - 4106154625.py[line:64] - INFO: epoch: 0 step: 55, loss: 0.94735086\n", + "2025-04-07 10:36:01,016 - 4106154625.py[line:64] - INFO: epoch: 0 step: 56, loss: 0.97874105\n", + "2025-04-07 10:36:02,904 - 4106154625.py[line:64] - INFO: epoch: 0 step: 57, loss: 0.9451903\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:36:04,717 - 4106154625.py[line:64] - INFO: epoch: 0 step: 58, loss: 0.94447565\n", + "2025-04-07 10:36:06,499 - 4106154625.py[line:64] - INFO: epoch: 0 step: 59, loss: 0.94874763\n", + "2025-04-07 10:36:08,260 - 4106154625.py[line:64] - INFO: epoch: 0 step: 60, loss: 0.9672854\n", + "2025-04-07 10:36:10,146 - 4106154625.py[line:64] - INFO: epoch: 0 step: 61, loss: 0.9565505\n", + "2025-04-07 10:36:12,112 - 4106154625.py[line:64] - INFO: epoch: 0 step: 62, loss: 0.9480209\n", + "2025-04-07 10:36:13,989 - 4106154625.py[line:64] - INFO: epoch: 0 step: 63, loss: 0.94844496\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:36:15,759 - 4106154625.py[line:64] - INFO: epoch: 0 step: 64, loss: 0.94463414\n", + "2025-04-07 10:36:17,409 - 4106154625.py[line:64] - INFO: epoch: 0 step: 65, loss: 0.9484377\n", + "2025-04-07 10:36:19,103 - 4106154625.py[line:64] - INFO: epoch: 0 step: 66, loss: 0.93955624\n", + "2025-04-07 10:36:21,005 - 4106154625.py[line:64] - INFO: epoch: 0 step: 67, loss: 0.9357619\n", + "2025-04-07 10:36:22,738 - 4106154625.py[line:64] - INFO: epoch: 0 step: 68, loss: 0.9534744\n", + "2025-04-07 10:36:24,626 - 4106154625.py[line:64] - INFO: epoch: 0 step: 69, loss: 0.970679\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:36:26,527 - 4106154625.py[line:64] - INFO: epoch: 0 step: 70, loss: 0.9313204\n", + "2025-04-07 10:36:28,335 - 4106154625.py[line:64] - INFO: epoch: 0 step: 71, loss: 0.927449\n", + "2025-04-07 10:36:30,082 - 4106154625.py[line:64] - INFO: epoch: 0 step: 72, loss: 0.9536683\n", + "2025-04-07 10:36:31,761 - 4106154625.py[line:64] - INFO: epoch: 0 step: 73, loss: 0.92975646\n", + "2025-04-07 10:36:33,780 - 4106154625.py[line:64] - INFO: epoch: 0 step: 74, loss: 0.9387269\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:36:35,917 - 4106154625.py[line:64] - INFO: epoch: 0 step: 75, loss: 0.9491191\n", + "2025-04-07 10:36:37,922 - 4106154625.py[line:64] - INFO: epoch: 0 step: 76, loss: 0.9263407\n", + "2025-04-07 10:36:39,572 - 4106154625.py[line:64] - INFO: epoch: 0 step: 77, loss: 0.95135903\n", + "2025-04-07 10:36:41,209 - 4106154625.py[line:64] - INFO: epoch: 0 step: 78, loss: 0.92555064\n", + "2025-04-07 10:36:42,827 - 4106154625.py[line:64] - INFO: epoch: 0 step: 79, loss: 0.93047976\n", + "2025-04-07 10:36:44,649 - 4106154625.py[line:64] - INFO: epoch: 0 step: 80, loss: 0.9445814\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:36:46,501 - 4106154625.py[line:64] - INFO: epoch: 0 step: 81, loss: 0.92167306\n", + "2025-04-07 10:36:48,449 - 4106154625.py[line:64] - INFO: epoch: 0 step: 82, loss: 0.9199027\n", + "2025-04-07 10:36:50,603 - 4106154625.py[line:64] - INFO: epoch: 0 step: 83, loss: 0.95979875\n", + "2025-04-07 10:36:52,662 - 4106154625.py[line:64] - INFO: epoch: 0 step: 84, loss: 0.94403404\n", + "2025-04-07 10:36:54,314 - 4106154625.py[line:64] - INFO: epoch: 0 step: 85, loss: 0.91954345\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:36:55,996 - 4106154625.py[line:64] - INFO: epoch: 0 step: 86, loss: 0.92873365\n", + "2025-04-07 10:36:57,701 - 4106154625.py[line:64] - INFO: epoch: 0 step: 87, loss: 0.91166925\n", + "2025-04-07 10:36:59,362 - 4106154625.py[line:64] - INFO: epoch: 0 step: 88, loss: 0.92743254\n", + "2025-04-07 10:37:01,139 - 4106154625.py[line:64] - INFO: epoch: 0 step: 89, loss: 0.9097767\n", + "2025-04-07 10:37:03,120 - 4106154625.py[line:64] - INFO: epoch: 0 step: 90, loss: 0.918455\n", + "2025-04-07 10:37:05,260 - 4106154625.py[line:64] - INFO: epoch: 0 step: 91, loss: 0.9123219\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:37:06,972 - 4106154625.py[line:64] - INFO: epoch: 0 step: 92, loss: 0.9185343\n", + "2025-04-07 10:37:08,881 - 4106154625.py[line:64] - INFO: epoch: 0 step: 93, loss: 0.9153005\n", + "2025-04-07 10:37:10,973 - 4106154625.py[line:64] - INFO: epoch: 0 step: 94, loss: 0.90332276\n", + "2025-04-07 10:37:13,070 - 4106154625.py[line:64] - INFO: epoch: 0 step: 95, loss: 0.90544885\n", + "2025-04-07 10:37:14,777 - 4106154625.py[line:64] - INFO: epoch: 0 step: 96, loss: 0.92892224\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:37:16,919 - 4106154625.py[line:64] - INFO: epoch: 0 step: 97, loss: 0.92682004\n", + "2025-04-07 10:37:18,923 - 4106154625.py[line:64] - INFO: epoch: 0 step: 98, loss: 0.9004317\n", + "2025-04-07 10:37:20,940 - 4106154625.py[line:64] - INFO: epoch: 0 step: 99, loss: 0.908974\n", + "2025-04-07 10:37:22,739 - 4106154625.py[line:64] - INFO: epoch: 0 step: 100, loss: 0.8956867\n", + "2025-04-07 10:37:24,509 - 4106154625.py[line:64] - INFO: epoch: 0 step: 101, loss: 0.8987319\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:37:26,159 - 4106154625.py[line:64] - INFO: epoch: 0 step: 102, loss: 0.9083508\n", + "2025-04-07 10:37:27,783 - 4106154625.py[line:64] - INFO: epoch: 0 step: 103, loss: 0.89505464\n", + "2025-04-07 10:37:29,432 - 4106154625.py[line:64] - INFO: epoch: 0 step: 104, loss: 0.9006442\n", + "2025-04-07 10:37:31,031 - 4106154625.py[line:64] - INFO: epoch: 0 step: 105, loss: 0.8925739\n", + "2025-04-07 10:37:32,688 - 4106154625.py[line:64] - INFO: epoch: 0 step: 106, loss: 0.8919925\n", + "2025-04-07 10:37:34,278 - 4106154625.py[line:64] - INFO: epoch: 0 step: 107, loss: 0.8901893\n", + "2025-04-07 10:37:35,874 - 4106154625.py[line:64] - INFO: epoch: 0 step: 108, loss: 0.8947307\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:37:37,562 - 4106154625.py[line:64] - INFO: epoch: 0 step: 109, loss: 0.89940923\n", + "2025-04-07 10:37:39,124 - 4106154625.py[line:64] - INFO: epoch: 0 step: 110, loss: 0.88965017\n", + "2025-04-07 10:37:40,773 - 4106154625.py[line:64] - INFO: epoch: 0 step: 111, loss: 0.8835504\n", + "2025-04-07 10:37:42,345 - 4106154625.py[line:64] - INFO: epoch: 0 step: 112, loss: 0.8785033\n", + "2025-04-07 10:37:43,921 - 4106154625.py[line:64] - INFO: epoch: 0 step: 113, loss: 0.8814548\n", + "2025-04-07 10:37:45,600 - 4106154625.py[line:64] - INFO: epoch: 0 step: 114, loss: 0.8877945\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:37:47,338 - 4106154625.py[line:64] - INFO: epoch: 0 step: 115, loss: 0.88197625\n", + "2025-04-07 10:37:48,996 - 4106154625.py[line:64] - INFO: epoch: 0 step: 116, loss: 0.8941308\n", + "2025-04-07 10:37:50,679 - 4106154625.py[line:64] - INFO: epoch: 0 step: 117, loss: 0.88495713\n", + "2025-04-07 10:37:52,603 - 4106154625.py[line:64] - INFO: epoch: 0 step: 118, loss: 0.90219486\n", + "2025-04-07 10:37:54,497 - 4106154625.py[line:64] - INFO: epoch: 0 step: 119, loss: 0.89262724\n", + "2025-04-07 10:37:56,103 - 4106154625.py[line:64] - INFO: epoch: 0 step: 120, loss: 0.8879415\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:37:57,735 - 4106154625.py[line:64] - INFO: epoch: 0 step: 121, loss: 0.878676\n", + "2025-04-07 10:37:59,364 - 4106154625.py[line:64] - INFO: epoch: 0 step: 122, loss: 0.8715365\n", + "2025-04-07 10:38:00,946 - 4106154625.py[line:64] - INFO: epoch: 0 step: 123, loss: 0.8677654\n", + "2025-04-07 10:38:02,558 - 4106154625.py[line:64] - INFO: epoch: 0 step: 124, loss: 0.8684499\n", + "2025-04-07 10:38:04,199 - 4106154625.py[line:64] - INFO: epoch: 0 step: 125, loss: 0.8848672\n", + "2025-04-07 10:38:05,816 - 4106154625.py[line:64] - INFO: epoch: 0 step: 126, loss: 0.8611082\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:38:07,435 - 4106154625.py[line:64] - INFO: epoch: 0 step: 127, loss: 0.87677616\n", + "2025-04-07 10:38:09,051 - 4106154625.py[line:64] - INFO: epoch: 0 step: 128, loss: 0.8892087\n", + "2025-04-07 10:38:10,675 - 4106154625.py[line:64] - INFO: epoch: 0 step: 129, loss: 0.87242335\n", + "2025-04-07 10:38:12,362 - 4106154625.py[line:64] - INFO: epoch: 0 step: 130, loss: 0.86540776\n", + "2025-04-07 10:38:13,976 - 4106154625.py[line:64] - INFO: epoch: 0 step: 131, loss: 0.9510796\n", + "2025-04-07 10:38:15,605 - 4106154625.py[line:64] - INFO: epoch: 0 step: 132, loss: 0.8619976\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:38:17,224 - 4106154625.py[line:64] - INFO: epoch: 0 step: 133, loss: 0.8630925\n", + "2025-04-07 10:38:18,780 - 4106154625.py[line:64] - INFO: epoch: 0 step: 134, loss: 0.85540855\n", + "2025-04-07 10:38:20,350 - 4106154625.py[line:64] - INFO: epoch: 0 step: 135, loss: 0.85183513\n", + "2025-04-07 10:38:21,884 - 4106154625.py[line:64] - INFO: epoch: 0 step: 136, loss: 0.8917813\n", + "2025-04-07 10:38:23,435 - 4106154625.py[line:64] - INFO: epoch: 0 step: 137, loss: 0.8526528\n", + "2025-04-07 10:38:24,950 - 4106154625.py[line:64] - INFO: epoch: 0 step: 138, loss: 0.8536273\n", + "2025-04-07 10:38:26,598 - 4106154625.py[line:64] - INFO: epoch: 0 step: 139, loss: 0.8565655\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:38:28,139 - 4106154625.py[line:64] - INFO: epoch: 0 step: 140, loss: 0.8921677\n", + "2025-04-07 10:38:29,688 - 4106154625.py[line:64] - INFO: epoch: 0 step: 141, loss: 0.86149573\n", + "2025-04-07 10:38:31,311 - 4106154625.py[line:64] - INFO: epoch: 0 step: 142, loss: 0.8502701\n", + "2025-04-07 10:38:32,945 - 4106154625.py[line:64] - INFO: epoch: 0 step: 143, loss: 0.84761256\n", + "2025-04-07 10:38:34,574 - 4106154625.py[line:64] - INFO: epoch: 0 step: 144, loss: 0.8530063\n", + "2025-04-07 10:38:36,196 - 4106154625.py[line:64] - INFO: epoch: 0 step: 145, loss: 0.89813197\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:38:37,836 - 4106154625.py[line:64] - INFO: epoch: 0 step: 146, loss: 0.86497414\n", + "2025-04-07 10:38:39,461 - 4106154625.py[line:64] - INFO: epoch: 0 step: 147, loss: 0.86043245\n", + "2025-04-07 10:38:41,038 - 4106154625.py[line:64] - INFO: epoch: 0 step: 148, loss: 0.8537921\n", + "2025-04-07 10:38:42,593 - 4106154625.py[line:64] - INFO: epoch: 0 step: 149, loss: 0.84643245\n", + "2025-04-07 10:38:44,350 - 4106154625.py[line:64] - INFO: epoch: 0 step: 150, loss: 0.84086126\n", + "2025-04-07 10:38:45,982 - 4106154625.py[line:64] - INFO: epoch: 0 step: 151, loss: 0.8376725\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:38:47,621 - 4106154625.py[line:64] - INFO: epoch: 0 step: 152, loss: 0.8443006\n", + "2025-04-07 10:38:49,414 - 4106154625.py[line:64] - INFO: epoch: 0 step: 153, loss: 0.87024367\n", + "2025-04-07 10:38:51,379 - 4106154625.py[line:64] - INFO: epoch: 0 step: 154, loss: 0.8439486\n", + "2025-04-07 10:38:53,492 - 4106154625.py[line:64] - INFO: epoch: 0 step: 155, loss: 0.8428738\n", + "2025-04-07 10:38:55,505 - 4106154625.py[line:64] - INFO: epoch: 0 step: 156, loss: 0.8446244\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:38:57,390 - 4106154625.py[line:64] - INFO: epoch: 0 step: 157, loss: 0.82819533\n", + "2025-04-07 10:38:59,154 - 4106154625.py[line:64] - INFO: epoch: 0 step: 158, loss: 0.8346045\n", + "2025-04-07 10:39:00,861 - 4106154625.py[line:64] - INFO: epoch: 0 step: 159, loss: 0.91556245\n", + "2025-04-07 10:39:02,460 - 4106154625.py[line:64] - INFO: epoch: 0 step: 160, loss: 0.8365531\n", + "2025-04-07 10:39:03,994 - 4106154625.py[line:64] - INFO: epoch: 0 step: 161, loss: 0.82283574\n", + "2025-04-07 10:39:05,550 - 4106154625.py[line:64] - INFO: epoch: 0 step: 162, loss: 0.83937204\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:39:07,130 - 4106154625.py[line:64] - INFO: epoch: 0 step: 163, loss: 0.82220745\n", + "2025-04-07 10:39:08,702 - 4106154625.py[line:64] - INFO: epoch: 0 step: 164, loss: 0.8206043\n", + "2025-04-07 10:39:10,286 - 4106154625.py[line:64] - INFO: epoch: 0 step: 165, loss: 0.82163304\n", + "2025-04-07 10:39:11,858 - 4106154625.py[line:64] - INFO: epoch: 0 step: 166, loss: 0.9156118\n", + "2025-04-07 10:39:13,664 - 4106154625.py[line:64] - INFO: epoch: 0 step: 167, loss: 0.8271665\n", + "2025-04-07 10:39:15,392 - 4106154625.py[line:64] - INFO: epoch: 0 step: 168, loss: 0.8538544\n", + "2025-04-07 10:39:17,448 - 4106154625.py[line:64] - INFO: epoch: 0 step: 169, loss: 0.81377554\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:39:19,382 - 4106154625.py[line:64] - INFO: epoch: 0 step: 170, loss: 0.82164574\n", + "2025-04-07 10:39:21,451 - 4106154625.py[line:64] - INFO: epoch: 0 step: 171, loss: 0.8611313\n", + "2025-04-07 10:39:23,232 - 4106154625.py[line:64] - INFO: epoch: 0 step: 172, loss: 0.910937\n", + "2025-04-07 10:39:25,157 - 4106154625.py[line:64] - INFO: epoch: 0 step: 173, loss: 0.81960344\n", + "2025-04-07 10:39:27,027 - 4106154625.py[line:64] - INFO: epoch: 0 step: 174, loss: 0.8318243\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:39:28,879 - 4106154625.py[line:64] - INFO: epoch: 0 step: 175, loss: 0.8163141\n", + "2025-04-07 10:39:30,569 - 4106154625.py[line:64] - INFO: epoch: 0 step: 176, loss: 0.81251186\n", + "2025-04-07 10:39:32,357 - 4106154625.py[line:64] - INFO: epoch: 0 step: 177, loss: 0.8562678\n", + "2025-04-07 10:39:34,015 - 4106154625.py[line:64] - INFO: epoch: 0 step: 178, loss: 0.815516\n", + "2025-04-07 10:39:35,701 - 4106154625.py[line:64] - INFO: epoch: 0 step: 179, loss: 0.8176594\n", + "2025-04-07 10:39:37,351 - 4106154625.py[line:64] - INFO: epoch: 0 step: 180, loss: 0.81118274\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:39:38,946 - 4106154625.py[line:64] - INFO: epoch: 0 step: 181, loss: 0.80203724\n", + "2025-04-07 10:39:40,642 - 4106154625.py[line:64] - INFO: epoch: 0 step: 182, loss: 0.87345916\n", + "2025-04-07 10:39:42,321 - 4106154625.py[line:64] - INFO: epoch: 0 step: 183, loss: 0.81266487\n", + "2025-04-07 10:39:43,999 - 4106154625.py[line:64] - INFO: epoch: 0 step: 184, loss: 0.80216926\n", + "2025-04-07 10:39:45,764 - 4106154625.py[line:64] - INFO: epoch: 0 step: 185, loss: 0.80834883\n", + "2025-04-07 10:39:47,643 - 4106154625.py[line:64] - INFO: epoch: 0 step: 186, loss: 0.8091302\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:39:49,513 - 4106154625.py[line:64] - INFO: epoch: 0 step: 187, loss: 0.85867965\n", + "2025-04-07 10:39:51,513 - 4106154625.py[line:64] - INFO: epoch: 0 step: 188, loss: 0.83379465\n", + "2025-04-07 10:39:53,201 - 4106154625.py[line:64] - INFO: epoch: 0 step: 189, loss: 0.8088391\n", + "2025-04-07 10:39:54,998 - 4106154625.py[line:64] - INFO: epoch: 0 step: 190, loss: 0.80790806\n", + "2025-04-07 10:39:57,158 - 4106154625.py[line:64] - INFO: epoch: 0 step: 191, loss: 0.8407364\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:39:59,182 - 4106154625.py[line:64] - INFO: epoch: 0 step: 192, loss: 0.8151839\n", + "2025-04-07 10:40:00,872 - 4106154625.py[line:64] - INFO: epoch: 0 step: 193, loss: 0.78970444\n", + "2025-04-07 10:40:02,929 - 4106154625.py[line:64] - INFO: epoch: 0 step: 194, loss: 0.79682875\n", + "2025-04-07 10:40:04,755 - 4106154625.py[line:64] - INFO: epoch: 0 step: 195, loss: 0.82242036\n", + "2025-04-07 10:40:06,438 - 4106154625.py[line:64] - INFO: epoch: 0 step: 196, loss: 0.7956406\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:40:08,369 - 4106154625.py[line:64] - INFO: epoch: 0 step: 197, loss: 0.8161787\n", + "2025-04-07 10:40:10,191 - 4106154625.py[line:64] - INFO: epoch: 0 step: 198, loss: 0.8084446\n", + "2025-04-07 10:40:11,973 - 4106154625.py[line:64] - INFO: epoch: 0 step: 199, loss: 0.8210702\n", + "2025-04-07 10:40:13,663 - 4106154625.py[line:64] - INFO: epoch: 0 step: 200, loss: 0.80087566\n", + "2025-04-07 10:40:15,493 - 4106154625.py[line:64] - INFO: epoch: 0 step: 201, loss: 0.87920845\n", + "2025-04-07 10:40:17,323 - 4106154625.py[line:64] - INFO: epoch: 0 step: 202, loss: 0.8160571\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:40:19,189 - 4106154625.py[line:64] - INFO: epoch: 0 step: 203, loss: 0.7799623\n", + "2025-04-07 10:40:21,020 - 4106154625.py[line:64] - INFO: epoch: 0 step: 204, loss: 0.81907594\n", + "2025-04-07 10:40:22,823 - 4106154625.py[line:64] - INFO: epoch: 0 step: 205, loss: 0.78082323\n", + "2025-04-07 10:40:24,593 - 4106154625.py[line:64] - INFO: epoch: 0 step: 206, loss: 0.7767377\n", + "2025-04-07 10:40:26,411 - 4106154625.py[line:64] - INFO: epoch: 0 step: 207, loss: 0.78217006\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:40:28,204 - 4106154625.py[line:64] - INFO: epoch: 0 step: 208, loss: 0.78541696\n", + "2025-04-07 10:40:30,055 - 4106154625.py[line:64] - INFO: epoch: 0 step: 209, loss: 0.788193\n", + "2025-04-07 10:40:31,905 - 4106154625.py[line:64] - INFO: epoch: 0 step: 210, loss: 0.77395964\n", + "2025-04-07 10:40:33,954 - 4106154625.py[line:64] - INFO: epoch: 0 step: 211, loss: 0.7963271\n", + "2025-04-07 10:40:35,947 - 4106154625.py[line:64] - INFO: epoch: 0 step: 212, loss: 0.77294105\n", + "2025-04-07 10:40:37,721 - 4106154625.py[line:64] - INFO: epoch: 0 step: 213, loss: 0.7669926\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:40:39,729 - 4106154625.py[line:64] - INFO: epoch: 0 step: 214, loss: 0.79589576\n", + "2025-04-07 10:40:41,758 - 4106154625.py[line:64] - INFO: epoch: 0 step: 215, loss: 0.7651855\n", + "2025-04-07 10:40:43,662 - 4106154625.py[line:64] - INFO: epoch: 0 step: 216, loss: 0.820046\n", + "2025-04-07 10:40:45,532 - 4106154625.py[line:64] - INFO: epoch: 0 step: 217, loss: 0.7689292\n", + "2025-04-07 10:40:47,505 - 4106154625.py[line:64] - INFO: epoch: 0 step: 218, loss: 0.81641614\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:40:49,338 - 4106154625.py[line:64] - INFO: epoch: 0 step: 219, loss: 0.76227266\n", + "2025-04-07 10:40:51,284 - 4106154625.py[line:64] - INFO: epoch: 0 step: 220, loss: 0.85349905\n", + "2025-04-07 10:40:53,122 - 4106154625.py[line:64] - INFO: epoch: 0 step: 221, loss: 0.8078137\n", + "2025-04-07 10:40:54,912 - 4106154625.py[line:64] - INFO: epoch: 0 step: 222, loss: 0.7646342\n", + "2025-04-07 10:40:56,772 - 4106154625.py[line:64] - INFO: epoch: 0 step: 223, loss: 0.7557045\n", + "2025-04-07 10:40:58,621 - 4106154625.py[line:64] - INFO: epoch: 0 step: 224, loss: 0.76513314\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:41:00,458 - 4106154625.py[line:64] - INFO: epoch: 0 step: 225, loss: 0.7822351\n", + "2025-04-07 10:41:02,231 - 4106154625.py[line:64] - INFO: epoch: 0 step: 226, loss: 0.7729878\n", + "2025-04-07 10:41:04,074 - 4106154625.py[line:64] - INFO: epoch: 0 step: 227, loss: 0.75777054\n", + "2025-04-07 10:41:05,926 - 4106154625.py[line:64] - INFO: epoch: 0 step: 228, loss: 0.7532151\n", + "2025-04-07 10:41:07,785 - 4106154625.py[line:64] - INFO: epoch: 0 step: 229, loss: 0.795061\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:41:09,631 - 4106154625.py[line:64] - INFO: epoch: 0 step: 230, loss: 0.7710381\n", + "2025-04-07 10:41:11,459 - 4106154625.py[line:64] - INFO: epoch: 0 step: 231, loss: 0.7682188\n", + "2025-04-07 10:41:13,288 - 4106154625.py[line:64] - INFO: epoch: 0 step: 232, loss: 0.7783369\n", + "2025-04-07 10:41:15,137 - 4106154625.py[line:64] - INFO: epoch: 0 step: 233, loss: 0.7680697\n", + "2025-04-07 10:41:17,048 - 4106154625.py[line:64] - INFO: epoch: 0 step: 234, loss: 0.75664115\n", + "2025-04-07 10:41:18,831 - 4106154625.py[line:64] - INFO: epoch: 0 step: 235, loss: 0.7511877\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:41:20,764 - 4106154625.py[line:64] - INFO: epoch: 0 step: 236, loss: 0.7427261\n", + "2025-04-07 10:41:22,569 - 4106154625.py[line:64] - INFO: epoch: 0 step: 237, loss: 0.8036304\n", + "2025-04-07 10:41:24,487 - 4106154625.py[line:64] - INFO: epoch: 0 step: 238, loss: 0.76217574\n", + "2025-04-07 10:41:26,373 - 4106154625.py[line:64] - INFO: epoch: 0 step: 239, loss: 0.7397079\n", + "2025-04-07 10:41:28,139 - 4106154625.py[line:64] - INFO: epoch: 0 step: 240, loss: 0.8942822\n", + "2025-04-07 10:41:30,037 - 4106154625.py[line:64] - INFO: epoch: 0 step: 241, loss: 0.74506545\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:41:32,130 - 4106154625.py[line:64] - INFO: epoch: 0 step: 242, loss: 0.7901791\n", + "2025-04-07 10:41:34,077 - 4106154625.py[line:64] - INFO: epoch: 0 step: 243, loss: 0.74124205\n", + "2025-04-07 10:41:35,979 - 4106154625.py[line:64] - INFO: epoch: 0 step: 244, loss: 0.7894727\n", + "2025-04-07 10:41:37,959 - 4106154625.py[line:64] - INFO: epoch: 0 step: 245, loss: 0.83756655\n", + "2025-04-07 10:41:39,831 - 4106154625.py[line:64] - INFO: epoch: 0 step: 246, loss: 0.7398231\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 10:41:41,763 - 4106154625.py[line:64] - INFO: epoch: 0 step: 247, loss: 0.76385504\n", + "2025-04-07 10:41:43,700 - 4106154625.py[line:64] - INFO: epoch: 0 step: 248, loss: 0.7347469\n", + "2025-04-07 10:41:45,518 - 4106154625.py[line:64] - INFO: epoch: 0 step: 249, loss: 0.8313259\n", + "2025-04-07 10:41:47,373 - 4106154625.py[line:64] - INFO: epoch: 0 step: 250, loss: 0.8136975\n", + "2025-04-07 10:41:49,420 - 4106154625.py[line:64] - INFO: epoch: 0 step: 251, loss: 0.7310439\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "......" + ] + }, + + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 13:39:55,859 - 4106154625.py[line:64] - INFO: epoch: 4 step: 1247, loss: 0.021378823\n", + "2025-04-07 13:39:57,754 - 4106154625.py[line:64] - INFO: epoch: 4 step: 1248, loss: 0.01565772\n", + "2025-04-07 13:39:59,606 - 4106154625.py[line:64] - INFO: epoch: 4 step: 1249, loss: 0.012067624\n", + "2025-04-07 13:40:01,396 - 4106154625.py[line:64] - INFO: epoch: 4 step: 1250, loss: 0.017700804\n", + "2025-04-07 13:40:03,181 - 4106154625.py[line:64] - INFO: epoch: 4 step: 1251, loss: 0.06254268\n", + "2025-04-07 13:40:04,945 - 4106154625.py[line:64] - INFO: epoch: 4 step: 1252, loss: 0.013293369\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 13:40:06,770 - 4106154625.py[line:64] - INFO: epoch: 4 step: 1253, loss: 0.026906993\n", + "2025-04-07 13:40:08,644 - 4106154625.py[line:64] - INFO: epoch: 4 step: 1254, loss: 0.18210539\n", + "2025-04-07 13:40:10,593 - 4106154625.py[line:64] - INFO: epoch: 4 step: 1255, loss: 0.024170894\n", + "2025-04-07 13:40:12,430 - 4106154625.py[line:69] - INFO: Epoch 4 completed in 2274.61s | Avg Loss: 0.0517\n" + ] + } + ], + "source": [ + "trainer = DiffusionTrainer(\n", + " main_module=main_module, dm=dm, logger=logger, config=config\n", + ")\n", + "trainer.train(total_steps=total_num_steps)" + ] + }, + { + "cell_type": "markdown", + "id": "5be19a94-d51c-487f-bfde-8a9d9dc57d79", + "metadata": {}, + "source": [ + "## 模型评估与可视化\n", + "\n", + "完成训练后,我们使用第5个ckpt进行推理。下述展示了预测值与实际值之间的误差和各项指标以及结果可视化。" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "e0654f48-d02d-4258-b86c-61da318cf10e", + "metadata": {}, + "outputs": [], + "source": [ + "def get_alignment_kwargs_avg_x(target_seq):\n", + " \"\"\"Generate alignment parameters for guided sampling\"\"\"\n", + " batch_size = target_seq.shape[0]\n", + " avg_intensity = mint.mean(target_seq.view(batch_size, -1), dim=1, keepdim=True)\n", + " return {\"avg_x_gt\": avg_intensity * 2.0}\n", + "\n", + "\n", + "class DiffusionInferrence(nn.Cell):\n", + " \"\"\"\n", + " Class managing model inference and evaluation processes. Handles loading checkpoints,\n", + " generating predictions, calculating evaluation metrics, and saving visualization results.\n", + " \"\"\"\n", + " def __init__(self, main_module, dm, logger, config):\n", + " \"\"\"\n", + " Initialize inference manager with model, data module, logger, and configuration.\n", + " Args:\n", + " main_module: Main diffusion model for inference\n", + " dm: Data module providing test dataset\n", + " logger: Logging utility for evaluation progress\n", + " config: Configuration dictionary containing evaluation parameters\n", + " \"\"\"\n", + " super().__init__()\n", + " self.num_samples = config[\"eval\"].get(\"num_samples_per_context\", 1)\n", + " self.eval_example_only = config[\"eval\"].get(\"eval_example_only\", True)\n", + " self.alignment_type = (\n", + " config.get(\"model\", {}).get(\"align\", {}).get(\"alignment_type\", \"avg_x\")\n", + " )\n", + " self.use_alignment = self.alignment_type is not None\n", + " self.eval_aligned = config[\"eval\"].get(\"eval_aligned\", True)\n", + " self.eval_unaligned = config[\"eval\"].get(\"eval_unaligned\", True)\n", + " self.num_samples_per_context = config[\"eval\"].get(\"num_samples_per_context\", 1)\n", + " self.logging_prefix = config[\"logging\"].get(\"logging_prefix\", \"PreDiff\")\n", + " self.test_example_data_idx_list = [48]\n", + " self.main_module = main_module\n", + " self.testdataset = dm.sevir_test\n", + " self.logger = logger\n", + " self.datasetprocessing = SEVIRDataset(\n", + " data_types=[\"vil\"],\n", + " layout=\"NHWT\",\n", + " rescale_method=config.get(\"rescale_method\", \"01\"),\n", + " )\n", + " self.example_save_dir = config[\"summary\"].get(\"summary_dir\", \"./summary\")\n", + "\n", + " self.fs = config[\"eval\"].get(\"fs\", 20)\n", + " self.label_offset = config[\"eval\"].get(\"label_offset\", [-0.5, 0.5])\n", + " self.label_avg_int = config[\"eval\"].get(\"label_avg_int\", False)\n", + "\n", + " self.current_epoch = 0\n", + "\n", + " self.learn_logvar = (\n", + " config.get(\"model\", {}).get(\"diffusion\", {}).get(\"learn_logvar\", False)\n", + " )\n", + " self.logvar = main_module.logvar\n", + " self.maeloss = nn.MAELoss()\n", + " self.test_metrics = {\n", + " \"step\": 0,\n", + " \"mse\": 0.0,\n", + " \"mae\": 0.0,\n", + " \"ssim\": 0.0,\n", + " \"mse_kc\": 0.0,\n", + " \"mae_kc\": 0.0,\n", + " }\n", + "\n", + " def test(self):\n", + " \"\"\"Execute complete evaluation pipeline.\"\"\"\n", + " self.logger.info(\"============== Start Test ==============\")\n", + " self.start_time = time.time()\n", + " for batch_idx, item in enumerate(self.testdataset.create_dict_iterator()):\n", + " self.test_metrics = self._test_onestep(item, batch_idx, self.test_metrics)\n", + "\n", + " self._finalize_test(self.test_metrics)\n", + "\n", + " def _test_onestep(self, item, batch_idx, metrics):\n", + " \"\"\"Process one test batch and update evaluation metrics.\"\"\"\n", + " data_idx = int(batch_idx * 2)\n", + " if not self._should_test_onestep(data_idx):\n", + " return metrics\n", + " data = item.get(\"vil\")\n", + " data = self.datasetprocessing.process_data(data)\n", + " target_seq, cond, context_seq = self._get_model_inputs(data)\n", + " aligned_preds, unaligned_preds = self._generate_predictions(\n", + " cond, target_seq\n", + " )\n", + " metrics = self._update_metrics(\n", + " aligned_preds, unaligned_preds, target_seq, metrics\n", + " )\n", + " self._plt_pred(\n", + " data_idx,\n", + " context_seq,\n", + " target_seq,\n", + " aligned_preds,\n", + " unaligned_preds,\n", + " metrics[\"step\"],\n", + " )\n", + "\n", + " metrics[\"step\"] += 1\n", + " return metrics\n", + "\n", + " def _should_test_onestep(self, data_idx):\n", + " \"\"\"Determine if evaluation should be performed on current data index.\"\"\"\n", + " return (not self.eval_example_only) or (\n", + " data_idx in self.test_example_data_idx_list\n", + " )\n", + "\n", + " def _get_model_inputs(self, data):\n", + " \"\"\"Extract and prepare model inputs from raw data.\"\"\"\n", + " target_seq, cond, context_seq = self.main_module.get_input(\n", + " data, return_verbose=True\n", + " )\n", + " return target_seq, cond, context_seq\n", + "\n", + " def _generate_predictions(self, cond, target_seq):\n", + " \"\"\"Generate both aligned and unaligned predictions from the model.\"\"\"\n", + " aligned_preds = []\n", + " unaligned_preds = []\n", + "\n", + " for _ in range(self.num_samples_per_context):\n", + " if self.use_alignment and self.eval_aligned:\n", + " aligned_pred = self._sample_with_alignment(\n", + " cond, target_seq\n", + " )\n", + " aligned_preds.append(aligned_pred)\n", + "\n", + " if self.eval_unaligned:\n", + " unaligned_pred = self._sample_without_alignment(cond)\n", + " unaligned_preds.append(unaligned_pred)\n", + "\n", + " return aligned_preds, unaligned_preds\n", + "\n", + " def _sample_with_alignment(self, cond, target_seq):\n", + " \"\"\"Generate predictions using alignment mechanism.\"\"\"\n", + " alignment_kwargs = get_alignment_kwargs_avg_x(target_seq)\n", + " pred_seq = self.main_module.sample(\n", + " cond=cond,\n", + " batch_size=cond[\"y\"].shape[0],\n", + " return_intermediates=False,\n", + " use_alignment=True,\n", + " alignment_kwargs=alignment_kwargs,\n", + " verbose=False,\n", + " )\n", + " if pred_seq.dtype != ms.float32:\n", + " pred_seq = pred_seq.float()\n", + " return pred_seq\n", + "\n", + " def _sample_without_alignment(self, cond):\n", + " \"\"\"Generate predictions without alignment.\"\"\"\n", + " pred_seq = self.main_module.sample(\n", + " cond=cond,\n", + " batch_size=cond[\"y\"].shape[0],\n", + " return_intermediates=False,\n", + " verbose=False,\n", + " )\n", + " if pred_seq.dtype != ms.float32:\n", + " pred_seq = pred_seq.float()\n", + " return pred_seq\n", + "\n", + " def _update_metrics(self, aligned_preds, unaligned_preds, target_seq, metrics):\n", + " \"\"\"Update evaluation metrics with new predictions.\"\"\"\n", + " for pred in aligned_preds:\n", + " metrics[\"mse_kc\"] += ops.mse_loss(pred, target_seq)\n", + " metrics[\"mae_kc\"] += self.maeloss(pred, target_seq)\n", + " self.main_module.test_aligned_score.update(pred, target_seq)\n", + "\n", + " for pred in unaligned_preds:\n", + " metrics[\"mse\"] += ops.mse_loss(pred, target_seq)\n", + " metrics[\"mae\"] += self.maeloss(pred, target_seq)\n", + " self.main_module.test_score.update(pred, target_seq)\n", + "\n", + " pred_bchw = self._convert_to_bchw(pred)\n", + " target_bchw = self._convert_to_bchw(target_seq)\n", + " metrics[\"ssim\"] += self.main_module.test_ssim(pred_bchw, target_bchw)[0]\n", + "\n", + " return metrics\n", + "\n", + " def _convert_to_bchw(self, tensor):\n", + " \"\"\"Convert tensor to batch-channel-height-width format for metrics.\"\"\"\n", + " return rearrange(tensor.asnumpy(), \"b t h w c -> (b t) c h w\")\n", + "\n", + " def _plt_pred(\n", + " self, data_idx, context_seq, target_seq, aligned_preds, unaligned_preds, step\n", + " ):\n", + " \"\"\"Generate and save visualization of predictions.\"\"\"\n", + " pred_sequences = [pred[0].asnumpy() for pred in aligned_preds + unaligned_preds]\n", + " pred_labels = [\n", + " f\"{self.logging_prefix}_aligned_pred_{i}\" for i in range(len(aligned_preds))\n", + " ] + [f\"{self.logging_prefix}_pred_{i}\" for i in range(len(unaligned_preds))]\n", + "\n", + " self.save_vis_step_end(\n", + " data_idx=data_idx,\n", + " context_seq=context_seq[0].asnumpy(),\n", + " target_seq=target_seq[0].asnumpy(),\n", + " pred_seq=pred_sequences,\n", + " pred_label=pred_labels,\n", + " mode=\"test\",\n", + " suffix=f\"_step_{step}\",\n", + " )\n", + "\n", + " def _finalize_test(self, metrics):\n", + " \"\"\"Complete test process and log final metrics.\"\"\"\n", + " total_time = (time.time() - self.start_time) * 1000\n", + " self.logger.info(f\"test cost: {total_time:.2f} ms\")\n", + " self._compute_total_metrics(metrics)\n", + " self.logger.info(\"============== Test Completed ==============\")\n", + "\n", + " def _compute_total_metrics(self, metrics):\n", + " \"\"\"log_metrics\"\"\"\n", + " step_count = max(metrics[\"step\"], 1)\n", + " if self.eval_unaligned:\n", + " self.logger.info(f\"MSE: {metrics['mse'] / step_count}\")\n", + " self.logger.info(f\"MAE: {metrics['mae'] / step_count}\")\n", + " self.logger.info(f\"SSIM: {metrics['ssim'] / step_count}\")\n", + " test_score = self.main_module.test_score.eval()\n", + " self.logger.info(\"SCORE:\\n%s\", json.dumps(test_score, indent=4))\n", + " if self.use_alignment:\n", + " self.logger.info(f\"KC_MSE: {metrics['mse_kc'] / step_count}\")\n", + " self.logger.info(f\"KC_MAE: {metrics['mae_kc'] / step_count}\")\n", + " aligned_score = self.main_module.test_aligned_score.eval()\n", + " self.logger.info(\"KC_SCORE:\\n%s\", json.dumps(aligned_score, indent=4))\n", + "\n", + " def save_vis_step_end(\n", + " self,\n", + " data_idx: int,\n", + " context_seq: np.ndarray,\n", + " target_seq: np.ndarray,\n", + " pred_seq: Union[np.ndarray, Sequence[np.ndarray]],\n", + " pred_label: Union[str, Sequence[str]] = None,\n", + " mode: str = \"train\",\n", + " prefix: str = \"\",\n", + " suffix: str = \"\",\n", + " ):\n", + " \"\"\"Save visualization of predictions with context and target.\"\"\"\n", + " example_data_idx_list = self.test_example_data_idx_list\n", + " if isinstance(pred_seq, Sequence):\n", + " seq_list = [context_seq, target_seq] + list(pred_seq)\n", + " label_list = [\"context\", \"target\"] + pred_label\n", + " else:\n", + " seq_list = [context_seq, target_seq, pred_seq]\n", + " label_list = [\"context\", \"target\", pred_label]\n", + " if data_idx in example_data_idx_list:\n", + " png_save_name = f\"{prefix}{mode}_data_{data_idx}{suffix}.png\"\n", + " vis_sevir_seq(\n", + " save_path=os.path.join(self.example_save_dir, png_save_name),\n", + " seq=seq_list,\n", + " label=label_list,\n", + " interval_real_time=10,\n", + " plot_stride=1,\n", + " fs=self.fs,\n", + " label_offset=self.label_offset,\n", + " label_avg_int=self.label_avg_int,\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "bf830d99-eec2-473e-8ffa-900fc2314b22", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 14:04:16,558 - 2610859736.py[line:66] - INFO: ============== Start Test ==============\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[]\n", + ".." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-07 14:10:31,931 - 2610859736.py[line:201] - INFO: test cost: 375371.60 ms\n", + "2025-04-07 14:10:31,937 - 2610859736.py[line:215] - INFO: KC_MSE: 0.0036273836\n", + "2025-04-07 14:10:31,939 - 2610859736.py[line:216] - INFO: KC_MAE: 0.017427118\n", + "2025-04-07 14:10:31,955 - 2610859736.py[line:218] - INFO: KC_SCORE:\n", + "{\n", + " \"16\": {\n", + " \"csi\": 0.2715393900871277,\n", + " \"pod\": 0.5063194632530212,\n", + " \"sucr\": 0.369321346282959,\n", + " \"bias\": 3.9119162559509277\n", + " },\n", + " \"74\": {\n", + " \"csi\": 0.15696434676647186,\n", + " \"pod\": 0.17386901378631592,\n", + " \"sucr\": 0.6175059080123901,\n", + " \"bias\": 0.16501028835773468\n", + " }\n", + "}\n", + "2025-04-07 14:10:31,956 - 2610859736.py[line:203] - INFO: ============== Test Completed ==============\n" + ] + } + ], + "source": [ + "main_module.main_model.set_train(False)\n", + "params = ms.load_checkpoint(\"/home/lry/202542测试/PreDiff/summary/prediff/single_device0/ckpt/diffusion_epoch4.ckpt\")\n", + "a, b = ms.load_param_into_net(main_module.main_model, params)\n", + "print(b)\n", + "tester = DiffusionInferrence(\n", + " main_module=main_module, dm=dm, logger=logger, config=config\n", + " )\n", + "tester.test()\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/MindEarth/applications/nowcasting/PreDiff/src/__init__.py b/MindEarth/applications/nowcasting/PreDiff/src/__init__.py new file mode 100644 index 000000000..7139ede48 --- /dev/null +++ b/MindEarth/applications/nowcasting/PreDiff/src/__init__.py @@ -0,0 +1,30 @@ +# Copyright 2023 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this filepio[] except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================ +"""init""" +from src.diffusion import PreDiffModule, DiffusionTrainer, DiffusionInferrence +from src.utils import ( + prepare_output_directory, + configure_logging_system, + prepare_dataset, + init_model, +) +__all__ = ['prepare_output_directory', + 'configure_logging_system', + 'prepare_dataset', + 'init_model', + 'PreDiffModule', + 'DiffusionTrainer', + 'DiffusionInferrence', + ] diff --git a/MindEarth/applications/nowcasting/PreDiff/src/diffusion/__init__.py b/MindEarth/applications/nowcasting/PreDiff/src/diffusion/__init__.py new file mode 100644 index 000000000..ccf0ef127 --- /dev/null +++ b/MindEarth/applications/nowcasting/PreDiff/src/diffusion/__init__.py @@ -0,0 +1,33 @@ +# Copyright 2023 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this filepio[] except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================ +"""init""" +from .time_embed import TimeEmbedLayer, TimeEmbedResBlock +from .cuboid_transformer import PatchMerging3D, PosEmbed, StackCuboidSelfAttentionBlock +from .latent_diffusion import PreDiffModule +from .forecast import DiffusionInferrence +from .solver import DiffusionTrainer +from .cuboid_transformer_unet import self_axial + +__all__ = [ + "TimeEmbedLayer", + "TimeEmbedResBlock", + "PatchMerging3D", + "PosEmbed", + "StackCuboidSelfAttentionBlock", + "PreDiffModule", + "DiffusionInferrence", + "DiffusionTrainer", + "self_axial" +] diff --git a/MindEarth/applications/nowcasting/PreDiff/src/diffusion/cuboid_transformer.py b/MindEarth/applications/nowcasting/PreDiff/src/diffusion/cuboid_transformer.py new file mode 100644 index 000000000..b51fb72cd --- /dev/null +++ b/MindEarth/applications/nowcasting/PreDiff/src/diffusion/cuboid_transformer.py @@ -0,0 +1,1062 @@ +# Copyright 2023 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +"""The Substructure of cuboid_transformer_unet""" +from functools import lru_cache +from collections import OrderedDict + +import mindspore as ms +from mindspore import nn, ops, Parameter +from mindspore.common.initializer import initializer, TruncatedNormal + +from src.utils import ( + get_activation, + get_norm_layer, + generalize_padding, + generalize_unpadding, + apply_initialization, +) + + +class PosEmbed(nn.Cell): + """ + Spatiotemporal positional embedding layer combining temporal, height, and width embeddings. + """ + def __init__(self, embed_dim, max_t, max_h, max_w): + """ + Initialize positional embedding with separate temporal/spatial components. + Args: + embed_dim (int): Dimensionality of the embedding vectors. + maxT (int): Maximum temporal length (number of time steps). + maxH (int): Maximum height dimension size. + maxW (int): Maximum width dimension size. + """ + super().__init__() + self.embed_dim = embed_dim + # spatiotemporal learned positional embedding + self.t_embed = nn.Embedding(vocab_size=max_t, embedding_size=embed_dim) + self.h_embed = nn.Embedding(vocab_size=max_h, embedding_size=embed_dim) + self.w_embed = nn.Embedding(vocab_size=max_w, embedding_size=embed_dim) + self.reset_parameters() + + def reset_parameters(self): + for cell in self.cells(): + apply_initialization(cell, embed_mode="0") + + def construct(self, x): + """Forward pass of positional embedding. + + Args: + x (Tensor): Input tensor of shape (B, T, H, W, C) + + Returns: + Tensor: Output tensor with added positional embeddings + """ + + _, t, h, w, _ = x.shape + + t_idx = ops.arange(t) + h_idx = ops.arange(h) + w_idx = ops.arange(w) + return ( + x + + self.t_embed(t_idx).reshape(t, 1, 1, self.embed_dim) + + self.h_embed(h_idx).reshape(1, h, 1, self.embed_dim) + + self.w_embed(w_idx).reshape(1, 1, w, self.embed_dim) + ) + + +class PositionwiseFFN(nn.Cell): + """The Position-wise Feed-Forward Network layer used in Transformer architectures. + + This implements a two-layer MLP with optional gating mechanism and normalization. + The processing order depends on the pre_norm parameter: + + If pre_norm is True: + norm(data) -> fc1 -> act -> act_dropout -> fc2 -> dropout -> residual_add(+data) + Else: + data -> fc1 -> act -> act_dropout -> fc2 -> dropout -> norm(residual_add(+data)) + + When gated projection is enabled, uses: + fc1_1 * act(fc1_2(data)) for the first projection + """ + + def __init__( + self, + units: int = 512, + hidden_size: int = 2048, + activation_dropout: float = 0.0, + dropout: float = 0.1, + gated_proj: bool = False, + activation="relu", + normalization: str = "layer_norm", + layer_norm_eps: float = 1e-5, + pre_norm: bool = False, + linear_init_mode="0", + ffn2_linear_init_mode="2", + norm_init_mode="0", + ): + super().__init__() + self.linear_init_mode = linear_init_mode + self.ffn2_linear_init_mode = ffn2_linear_init_mode + self.norm_init_mode = norm_init_mode + + self._pre_norm = pre_norm + self._gated_proj = gated_proj + self._kwargs = OrderedDict( + [ + ("units", units), + ("hidden_size", hidden_size), + ("activation_dropout", activation_dropout), + ("activation", activation), + ("dropout", dropout), + ("normalization", normalization), + ("layer_norm_eps", layer_norm_eps), + ("gated_proj", gated_proj), + ("pre_norm", pre_norm), + ] + ) + self.dropout_layer = nn.Dropout(p=dropout) + self.activation_dropout_layer = nn.Dropout(p=activation_dropout) + self.ffn_1 = nn.Dense( + in_channels=units, out_channels=hidden_size, has_bias=True + ) + if self._gated_proj: + self.ffn_1_gate = nn.Dense( + in_channels=units, out_channels=hidden_size, has_bias=True + ) + self.activation = get_activation(activation) + self.ffn_2 = nn.Dense( + in_channels=hidden_size, out_channels=units, has_bias=True + ) + self.layer_norm = get_norm_layer( + norm_type=normalization, in_channels=units, epsilon=layer_norm_eps + ) + self.reset_parameters() + + def reset_parameters(self): + """Initialize all sublayers with specified initialization modes.""" + apply_initialization(self.ffn_1, linear_mode=self.linear_init_mode) + if self._gated_proj: + apply_initialization(self.ffn_1_gate, linear_mode=self.linear_init_mode) + apply_initialization(self.ffn_2, linear_mode=self.ffn2_linear_init_mode) + apply_initialization(self.layer_norm, norm_mode=self.norm_init_mode) + + def construct(self, data): + """ + Forward pass of the Position-wise FFN. + + Args: + data: Input tensor of shape (batch_size, sequence_length, units) + + Returns: + Output tensor of same shape as input with transformed features + """ + residual = data + if self._pre_norm: + data = self.layer_norm(data) + if self._gated_proj: + out = self.activation(self.ffn_1_gate(data)) * self.ffn_1(data) + else: + out = self.activation(self.ffn_1(data)) + out = self.activation_dropout_layer(out) + out = self.ffn_2(out) + out = self.dropout_layer(out) + out = out + residual + if not self._pre_norm: + out = self.layer_norm(out) + return out + + +class PatchMerging3D(nn.Cell): + """3D Patch Merging Layer for spatial-temporal feature downsampling. + This layer merges patches in 3D (temporal, height, width) and applies a linear transformation + to reduce the feature dimension while increasing the channel dimension. + """ + + def __init__( + self, + dim, + out_dim=None, + downsample=(1, 2, 2), + norm_layer="layer_norm", + padding_type="nearest", + linear_init_mode="0", + norm_init_mode="0", + ): + super().__init__() + self.linear_init_mode = linear_init_mode + self.norm_init_mode = norm_init_mode + self.dim = dim + if out_dim is None: + out_dim = max(downsample) * dim + self.out_dim = out_dim + self.downsample = downsample + self.padding_type = padding_type + self.reduction = nn.Dense( + downsample[0] * downsample[1] * downsample[2] * dim, out_dim, has_bias=False + ) + self.norm = get_norm_layer( + norm_layer, in_channels=downsample[0] * downsample[1] * downsample[2] * dim + ) + self.reset_parameters() + + def reset_parameters(self): + """Initialize all sublayers with specified initialization modes.""" + for cell in self.cells(): + apply_initialization( + cell, linear_mode=self.linear_init_mode, norm_mode=self.norm_init_mode + ) + + def get_out_shape(self, data_shape): + """ + Calculate the output shape given input dimensions. + + Args: + data_shape: Input shape tuple (T, H, W, C_in) + + Returns: + Tuple of output shape (T_out, H_out, W_out, C_out) + """ + t, h, w, _ = data_shape + pad_t = (self.downsample[0] - t % self.downsample[0]) % self.downsample[0] + pad_h = (self.downsample[1] - h % self.downsample[1]) % self.downsample[1] + pad_w = (self.downsample[2] - w % self.downsample[2]) % self.downsample[2] + return ( + (t + pad_t) // self.downsample[0], + (h + pad_h) // self.downsample[1], + (w + pad_w) // self.downsample[2], + self.out_dim, + ) + + def construct(self, x): + """ + Forward pass of the 3D Patch Merging layer. + + Args: + x: Input tensor of shape (B, T, H, W, C) + + Returns: + Output tensor of shape: + (B, T//downsample[0], H//downsample[1], W//downsample[2], out_dim) + """ + b, t, h, w, c = x.shape + + # padding + pad_t = (self.downsample[0] - t % self.downsample[0]) % self.downsample[0] + pad_h = (self.downsample[1] - h % self.downsample[1]) % self.downsample[1] + pad_w = (self.downsample[2] - w % self.downsample[2]) % self.downsample[2] + if pad_h or pad_h or pad_w: + t += pad_t + h += pad_h + w += pad_w + x = generalize_padding( + x, pad_t, pad_h, pad_w, padding_type=self.padding_type + ) + + x = ( + x.reshape( + ( + b, + t // self.downsample[0], + self.downsample[0], + h // self.downsample[1], + self.downsample[1], + w // self.downsample[2], + self.downsample[2], + c, + ) + ) + .permute(0, 1, 3, 5, 2, 4, 6, 7) + .reshape( + b, + t // self.downsample[0], + h // self.downsample[1], + w // self.downsample[2], + self.downsample[0] * self.downsample[1] * self.downsample[2] * c, + ) + ) + x = self.norm(x) + x = self.reduction(x) + + return x + + +class Upsample3DLayer(nn.Cell): + """3D Upsampling Layer combining interpolation and convolution. + + Performs spatial upsampling (with optional temporal upsampling) followed by convolution. + The operation consists of: + 1. Spatial upsampling using nearest-neighbor interpolation + 2. 2D or 3D convolution to refine features and adjust channel dimensions + + Note: Currently only implements 2D upsampling (spatial only) + """ + + def __init__( + self, + dim, + out_dim, + target_size, + kernel_size=3, + conv_init_mode="0", + ): + super().__init__() + self.conv_init_mode = conv_init_mode + self.target_size = target_size + self.out_dim = out_dim + self.up = nn.Upsample(size=(target_size[1], target_size[2]), mode="nearest") + self.conv = nn.Conv2d( + in_channels=dim, + out_channels=out_dim, + kernel_size=(kernel_size, kernel_size), + padding=kernel_size // 2, + has_bias=True, + pad_mode="pad", + ) + self.reset_parameters() + + def reset_parameters(self): + """Initialize all sublayers with specified initialization modes.""" + for cell in self.cells(): + apply_initialization(cell, conv_mode=self.conv_init_mode) + + def construct(self, x): + """Forward pass of the 3D Upsampling layer.""" + b, t, h, w, c = x.shape + assert self.target_size[0] == t + x = x.reshape(b * t, h, w, c).permute(0, 3, 1, 2) + x = self.up(x) + return ( + self.conv(x) + .permute(0, 2, 3, 1) + .reshape((b,) + self.target_size + (self.out_dim,)) + ) + + +def cuboid_reorder(data, cuboid_size, strategy): + """Reorder the tensor into (B, num_cuboids, bT * bH * bW, C) + + We assume that the tensor shapes are divisible to the cuboid sizes. + + Parameters + ---------- + data + The input data + cuboid_size + The size of the cuboid + strategy + The cuboid strategy + + Returns + ------- + reordered_data + Shape will be (B, num_cuboids, bT * bH * bW, C) + num_cuboids = T / bT * H / bH * W / bW + """ + b, t, h, w, c = data.shape + num_cuboids = t // cuboid_size[0] * h // cuboid_size[1] * w // cuboid_size[2] + cuboid_volume = cuboid_size[0] * cuboid_size[1] * cuboid_size[2] + intermediate_shape = [] + + nblock_axis = [] + block_axis = [] + for i, (block_size, total_size, ele_strategy) in enumerate( + zip(cuboid_size, (t, h, w), strategy) + ): + if ele_strategy == "l": + intermediate_shape.extend([total_size // block_size, block_size]) + nblock_axis.append(2 * i + 1) + block_axis.append(2 * i + 2) + elif ele_strategy == "d": + intermediate_shape.extend([block_size, total_size // block_size]) + nblock_axis.append(2 * i + 2) + block_axis.append(2 * i + 1) + else: + raise NotImplementedError + + a = (b,) + tuple(intermediate_shape) + (c,) + data = data.reshape(a) + reordered_data = data.permute((0,) + tuple(nblock_axis) + tuple(block_axis) + (7,)) + reordered_data = reordered_data.reshape((b, num_cuboids, cuboid_volume, c)) + return reordered_data + + +def cuboid_reorder_reverse(data, cuboid_size, strategy, orig_data_shape): + """Reverse the reordered cuboid back to the original space + + Parameters + ---------- + data + cuboid_size + strategy + orig_data_shape + + Returns + ------- + data + The recovered data + """ + b, _, _, c = data.shape + t, h, w = orig_data_shape + + permutation_axis = [0] + for i, (_, _, ele_strategy) in enumerate( + zip(cuboid_size, (t, h, w), strategy) + ): + if ele_strategy == "l": + permutation_axis.append(i + 1) + permutation_axis.append(i + 4) + elif ele_strategy == "d": + permutation_axis.append(i + 4) + permutation_axis.append(i + 1) + else: + raise NotImplementedError + permutation_axis.append(7) + data = data.reshape( + b, + t // cuboid_size[0], + h // cuboid_size[1], + w // cuboid_size[2], + cuboid_size[0], + cuboid_size[1], + cuboid_size[2], + c, + ) + data = data.permute(permutation_axis) + data = data.reshape((b, t, h, w, c)) + return data + + +@lru_cache() +def compute_cuboid_self_attention_mask( + data_shape, cuboid_size, shift_size, strategy, padding_type +): + """compute_cuboid_self_attention_mask""" + t, h, w = data_shape + pad_t = (cuboid_size[0] - t % cuboid_size[0]) % cuboid_size[0] + pad_h = (cuboid_size[1] - h % cuboid_size[1]) % cuboid_size[1] + pad_w = (cuboid_size[2] - w % cuboid_size[2]) % cuboid_size[2] + + data_mask = None + if pad_t > 0 or pad_h > 0 or pad_w > 0: + if padding_type == "ignore": + data_mask = ops.ones((1, t, h, w, 1), dtype=ms.bool_) + data_mask = ops.pad( + data_mask, ((0, 0), (0, pad_t), (0, pad_h), (0, pad_w), (0, 0)) + ) + else: + data_mask = ops.ones((1, t + pad_t, h + pad_h, w + pad_w, 1), dtype=ms.bool_) + + if any(i > 0 for i in shift_size): + if padding_type == "ignore": + data_mask = ops.roll( + data_mask, + shifts=(-shift_size[0], -shift_size[1], -shift_size[2]), + dims=(1, 2, 3), + ) + t_padded, h_padded, w_padded = t + pad_t, h + pad_h, w + pad_w + if t_padded <= 0 or h_padded <= 0 or w_padded <= 0: + raise ValueError( + f"invalid padded dimensions: t={t_padded}, h={h_padded}, w={w_padded}" + ) + + shift_mask = ops.zeros((1, t_padded, h_padded, w_padded, 1)) + cnt = 0 + t_slices = ( + [ + slice(0, cuboid_size[0]), + slice(cuboid_size[0] - shift_size[0], t_padded - shift_size[0]), + slice(t_padded - cuboid_size[0], t_padded), + ] + if shift_size[0] > 0 + else [slice(0, t_padded)] + ) + + h_slices = ( + [ + slice(0, cuboid_size[1]), + slice(cuboid_size[1] - shift_size[1], h_padded - shift_size[1]), + slice(h_padded - cuboid_size[1], h_padded), + ] + if shift_size[1] > 0 + else [slice(0, h_padded)] + ) + + w_slices = ( + [ + slice(0, cuboid_size[2]), + slice(cuboid_size[2] - shift_size[2], w_padded - shift_size[2]), + slice(w_padded - cuboid_size[2], w_padded), + ] + if shift_size[2] > 0 + else [slice(0, w_padded)] + ) + + for t in t_slices: + for h in h_slices: + for w in w_slices: + shift_mask[:, t, h, w, :] = cnt + cnt += 1 + + shift_mask = cuboid_reorder(shift_mask, cuboid_size, strategy=strategy) + shift_mask = shift_mask.squeeze(-1).squeeze(0) # num_cuboids, cuboid_volume + attn_mask = (shift_mask.unsqueeze(1) - shift_mask.unsqueeze(2)) == 0 + + if padding_type == "ignore": + if padding_type == "ignore": + data_mask = cuboid_reorder(data_mask, cuboid_size, strategy=strategy) + data_mask = data_mask.squeeze(-1).squeeze(0) + attn_mask = data_mask.unsqueeze(1) * data_mask.unsqueeze(2) * attn_mask + + return attn_mask + + +def masked_softmax(att_score, mask, axis: int = -1): + """Computes softmax while ignoring masked elements with broadcastable masks. + + Parameters + ---------- + att_score : Tensor + mask : Tensor or None + Binary mask tensor of shape (..., length, ...) where: + - 1 indicates unmasked (valid) elements + - 0 indicates masked elements + Must be broadcastable with att_score + axis : int, optional + + Returns + ------- + Tensor + Softmax output of same shape as input att_score, with: + - Proper attention weights for unmasked elements + - Zero weights for masked elements + """ + if mask is not None: + # Fill in the masked scores with a very small value + if att_score.dtype == ms.float16: + att_score = att_score.masked_fill(ops.logical_not(mask), -1e4) + else: + att_score = att_score.masked_fill(ops.logical_not(mask), -1e18) + att_weights = ops.softmax(att_score, axis=axis) * mask + else: + att_weights = ops.softmax(att_score, axis=axis) + return att_weights + + +def update_cuboid_size_shift_size(data_shape, cuboid_size, shift_size, strategy): + """Update the + + Parameters + ---------- + data_shape + The shape of the data + cuboid_size + Size of the cuboid + shift_size + Size of the shift + strategy + The strategy of attention + + Returns + ------- + new_cuboid_size + Size of the cuboid + new_shift_size + Size of the shift + """ + new_cuboid_size = list(cuboid_size) + new_shift_size = list(shift_size) + for i in range(len(data_shape)): + if strategy[i] == "d": + new_shift_size[i] = 0 + if data_shape[i] <= cuboid_size[i]: + new_cuboid_size[i] = data_shape[i] + new_shift_size[i] = 0 + return tuple(new_cuboid_size), tuple(new_shift_size) + + +class CuboidSelfAttentionLayer(nn.Cell): + """ + A self-attention layer designed for 3D data (e.g., video or 3D images), + implementing cuboid-based attention with optional global vectors and relative position encoding. + """ + def __init__( + self, + dim, + num_heads, + cuboid_size=(2, 7, 7), + shift_size=(0, 0, 0), + strategy=("l", "l", "l"), + padding_type="ignore", + qkv_bias=False, + qk_scale=None, + attn_drop=0.0, + proj_drop=0.0, + use_final_proj=True, + norm_layer="layer_norm", + use_global_vector=False, + use_global_self_attn=False, + separate_global_qkv=False, + global_dim_ratio=1, + use_relative_pos=True, + attn_linear_init_mode="0", + ffn_linear_init_mode="2", + norm_init_mode="0", + ): + """Initialize the CuboidSelfAttentionLayer. + + Args: + dim (int): Input feature dimension. + num_heads (int): Number of attention heads. + cuboid_size (tuple): 3D dimensions (T, H, W) of the cuboid blocks. + shift_size (tuple): Shift sizes for each dimension to avoid attention blindness. + strategy (tuple): Strategy for each dimension ('l' for local, 'g' for global). + padding_type (str): Padding method for attention computation ("ignore", "zeros", "nearest"). + qkv_bias (bool): Whether to include bias in QKV projections. + qk_scale (float, optional): Scaling factor for QK dot product. Defaults to head_dim**-0.5. + attn_drop (float): Dropout rate after attention softmax. + proj_drop (float): Dropout rate after output projection. + use_final_proj (bool): Whether to apply the final linear projection. + norm_layer (str): Type of normalization layer ("layer_norm", etc.). + use_global_vector (bool): Whether to include a global vector in attention. + use_global_self_attn (bool): Whether to apply self-attention to global vectors. + separate_global_qkv (bool): Whether to use separate QKV for global vectors. + global_dim_ratio (int): Dimension ratio for global vector (requires separate_global_qkv=True if !=1). + use_relative_pos (bool): Whether to use relative position embeddings. + attn_linear_init_mode (str): Initialization mode for attention linear layers. + ffn_linear_init_mode (str): Initialization mode for FFN linear layers. + norm_init_mode (str): Initialization mode for normalization layers. + """ + super().__init__() + # initialization + self.attn_linear_init_mode = attn_linear_init_mode + self.ffn_linear_init_mode = ffn_linear_init_mode + self.norm_init_mode = norm_init_mode + + assert dim % num_heads == 0 + self.num_heads = num_heads + self.dim = dim + self.cuboid_size = cuboid_size + self.shift_size = shift_size + self.strategy = strategy + self.padding_type = padding_type + self.use_final_proj = use_final_proj + self.use_relative_pos = use_relative_pos + # global vectors + self.use_global_vector = use_global_vector + self.use_global_self_attn = use_global_self_attn + self.separate_global_qkv = separate_global_qkv + self.global_dim_ratio = global_dim_ratio + assert self.padding_type in ["ignore", "zeros", "nearest"] + head_dim = dim // num_heads + self.scale = qk_scale or head_dim**-0.5 + + if self.use_relative_pos: + self.relative_position_bias_table = Parameter( + initializer( + TruncatedNormal(sigma=0.02), + [ + (2 * cuboid_size[0] - 1) + * (2 * cuboid_size[1] - 1) + * (2 * cuboid_size[2] - 1), + num_heads, + ], + ms.float32, + ) + ) + self.relative_position_bias_table.name = "relative_position_bias_table" + coords_t = ops.arange(self.cuboid_size[0]) + coords_h = ops.arange(self.cuboid_size[1]) + coords_w = ops.arange(self.cuboid_size[2]) + coords = ops.stack(ops.meshgrid(coords_t, coords_h, coords_w)) + + coords_flatten = ops.flatten(coords, start_dim=1) + relative_coords = coords_flatten[:, :, None] - coords_flatten[:, None, :] + relative_coords = relative_coords.permute(1, 2, 0) + relative_coords[:, :, 0] += self.cuboid_size[0] - 1 + relative_coords[:, :, 1] += self.cuboid_size[1] - 1 + relative_coords[:, :, 2] += self.cuboid_size[2] - 1 + + relative_coords[:, :, 0] *= (2 * self.cuboid_size[1] - 1) * ( + 2 * self.cuboid_size[2] - 1 + ) + relative_coords[:, :, 1] *= 2 * self.cuboid_size[2] - 1 + relative_position_index = relative_coords.sum(-1) + self.relative_position_index = Parameter( + relative_position_index, + name="relative_position_index", + requires_grad=False, + ) + self.qkv = nn.Dense(dim, dim * 3, has_bias=qkv_bias) + self.attn_drop = nn.Dropout(p=attn_drop) + + if use_final_proj: + self.proj = nn.Dense(dim, dim) + self.proj_drop = nn.Dropout(p=proj_drop) + + if self.use_global_vector: + self.global_proj = nn.Dense( + in_channels=global_dim_ratio * dim, + out_channels=global_dim_ratio * dim, + ) + + self.norm = get_norm_layer(norm_layer, in_channels=dim) + if self.use_global_vector: + self.global_vec_norm = get_norm_layer( + norm_layer, in_channels=global_dim_ratio * dim + ) + + self.reset_parameters() + + def reset_parameters(self): + '''set_parameters''' + apply_initialization(self.qkv, linear_mode=self.attn_linear_init_mode) + if self.use_final_proj: + apply_initialization(self.proj, linear_mode=self.ffn_linear_init_mode) + apply_initialization(self.norm, norm_mode=self.norm_init_mode) + if self.use_global_vector: + if self.separate_global_qkv: + apply_initialization( + self.l2g_q_net, linear_mode=self.attn_linear_init_mode + ) + apply_initialization( + self.l2g_global_kv_net, linear_mode=self.attn_linear_init_mode + ) + apply_initialization( + self.g2l_global_q_net, linear_mode=self.attn_linear_init_mode + ) + apply_initialization( + self.g2l_k_net, linear_mode=self.attn_linear_init_mode + ) + apply_initialization( + self.g2l_v_net, linear_mode=self.attn_linear_init_mode + ) + if self.use_global_self_attn: + apply_initialization( + self.g2g_global_qkv_net, linear_mode=self.attn_linear_init_mode + ) + else: + apply_initialization( + self.global_qkv, linear_mode=self.attn_linear_init_mode + ) + apply_initialization(self.global_vec_norm, norm_mode=self.norm_init_mode) + + def construct(self, x): + """ + Constructs the output by applying normalization, padding, shifting, and attention mechanisms. + + Parameters: + - x (Tensor): Input tensor with shape (batch, time, height, width, channels). + - global_vectors (Tensor, optional): Global vectors used in global-local interactions. Defaults to None. + + Returns: + - Tensor: Processed tensor after applying all transformations. + - Tensor: Updated global vectors if global vectors are used; otherwise, returns only the processed tensor. + """ + x = self.norm(x) + batch, time, height, width, channels = x.shape + assert channels == self.dim + cuboid_size, shift_size = update_cuboid_size_shift_size( + (time, height, width), self.cuboid_size, self.shift_size, self.strategy + ) + pad_t = (cuboid_size[0] - time % cuboid_size[0]) % cuboid_size[0] + pad_h = (cuboid_size[1] - height % cuboid_size[1]) % cuboid_size[1] + pad_w = (cuboid_size[2] - width % cuboid_size[2]) % cuboid_size[2] + x = generalize_padding(x, pad_t, pad_h, pad_w, self.padding_type) + if any(i > 0 for i in shift_size): + shifted_x = ops.roll( + x, + shifts=(-shift_size[0], -shift_size[1], -shift_size[2]), + dims=(1, 2, 3), + ) + else: + shifted_x = x + reordered_x = cuboid_reorder( + shifted_x, cuboid_size=cuboid_size, strategy=self.strategy + ) + _, num_cuboids, cuboid_volume, _ = reordered_x.shape + attn_mask = compute_cuboid_self_attention_mask( + (time, height, width), + cuboid_size, + shift_size=shift_size, + strategy=self.strategy, + padding_type=self.padding_type, + ) + head_c = channels // self.num_heads + qkv = ( + self.qkv(reordered_x) + .reshape(batch, num_cuboids, cuboid_volume, 3, self.num_heads, head_c) + .permute(3, 0, 4, 1, 2, 5) + ) + q, k, v = ( + qkv[0], + qkv[1], + qkv[2], + ) + q = q * self.scale + attn_score = q @ k.swapaxes(-2, -1) + if self.use_relative_pos: + relative_position_bias = self.relative_position_bias_table[ + self.relative_position_index[:cuboid_volume, :cuboid_volume].reshape(-1) + ].reshape(cuboid_volume, cuboid_volume, -1) + relative_position_bias = relative_position_bias.permute(2, 0, 1).unsqueeze( + 1 + ) + attn_score = attn_score + relative_position_bias + attn_score = masked_softmax(attn_score, mask=attn_mask) + attn_score = self.attn_drop(attn_score) + reordered_x = ( + (attn_score @ v) + .permute(0, 2, 3, 1, 4) + .reshape(batch, num_cuboids, cuboid_volume, self.dim) + ) + + if self.use_final_proj: + reordered_x = self.proj_drop(self.proj(reordered_x)) + if self.use_global_vector: + new_global_vector = self.proj_drop(self.global_proj(new_global_vector)) + shifted_x = cuboid_reorder_reverse( + reordered_x, + cuboid_size=cuboid_size, + strategy=self.strategy, + orig_data_shape=(time + pad_t, height + pad_h, width + pad_w), + ) + if any(i > 0 for i in shift_size): + x = ops.roll( + shifted_x, + shifts=(shift_size[0], shift_size[1], shift_size[2]), + dims=(1, 2, 3), + ) + else: + x = shifted_x + x = generalize_unpadding( + x, pad_t=pad_t, pad_h=pad_h, pad_w=pad_w, padding_type=self.padding_type + ) + if self.use_global_vector: + return x, new_global_vector + return x + + +class StackCuboidSelfAttentionBlock(nn.Cell): + """ + + - "use_inter_ffn" is True + x --> attn1 --> ffn1 --> attn2 --> ... --> ffn_k --> out + - "use_inter_ffn" is False + x --> attn1 --> attn2 --> ... attnk --> ffnk --> out + If we have enabled global memory vectors, each attention will be a + + """ + + def __init__( + self, + dim=None, + num_heads=None, + block_cuboid_size=None, + block_shift_size=None, + block_strategy=None, + padding_type="ignore", + qkv_bias=False, + qk_scale=None, + attn_drop=0.0, + proj_drop=0.0, + ffn_drop=0.0, + activation="leaky", + gated_ffn=False, + norm_layer="layer_norm", + use_inter_ffn=False, + use_global_vector=False, + use_global_vector_ffn=True, + use_global_self_attn=False, + separate_global_qkv=False, + global_dim_ratio=1, + use_relative_pos=True, + use_final_proj=True, + # initialization + attn_linear_init_mode="0", + ffn_linear_init_mode="0", + ffn2_linear_init_mode="2", + attn_proj_linear_init_mode="2", + norm_init_mode="0", + ): + super().__init__() + # initialization + self.attn_linear_init_mode = attn_linear_init_mode + self.ffn_linear_init_mode = ffn_linear_init_mode + self.attn_proj_linear_init_mode = attn_proj_linear_init_mode + self.norm_init_mode = norm_init_mode + self.num_attn = len(block_cuboid_size) + self.use_inter_ffn = use_inter_ffn + # global vectors + self.use_global_vector = use_global_vector + self.use_global_vector_ffn = use_global_vector_ffn + self.use_global_self_attn = use_global_self_attn + self.global_dim_ratio = global_dim_ratio + + if self.use_inter_ffn: + self.ffn_l = nn.CellList( + [ + PositionwiseFFN( + units=dim, + hidden_size=4 * dim, + activation_dropout=ffn_drop, + dropout=ffn_drop, + gated_proj=gated_ffn, + activation=activation, + normalization=norm_layer, + pre_norm=True, + linear_init_mode=ffn_linear_init_mode, + ffn2_linear_init_mode=ffn2_linear_init_mode, + norm_init_mode=norm_init_mode, + ) + for _ in range(self.num_attn) + ] + ) + if self.use_global_vector_ffn and self.use_global_vector: + self.global_ffn_l = nn.CellList( + [ + PositionwiseFFN( + units=global_dim_ratio * dim, + hidden_size=global_dim_ratio * 4 * dim, + activation_dropout=ffn_drop, + dropout=ffn_drop, + gated_proj=gated_ffn, + activation=activation, + normalization=norm_layer, + pre_norm=True, + linear_init_mode=ffn_linear_init_mode, + ffn2_linear_init_mode=ffn2_linear_init_mode, + norm_init_mode=norm_init_mode, + ) + for _ in range(self.num_attn) + ] + ) + else: + self.ffn_l = nn.CellList( + [ + PositionwiseFFN( + units=dim, + hidden_size=4 * dim, + activation_dropout=ffn_drop, + dropout=ffn_drop, + gated_proj=gated_ffn, + activation=activation, + normalization=norm_layer, + pre_norm=True, + linear_init_mode=ffn_linear_init_mode, + ffn2_linear_init_mode=ffn2_linear_init_mode, + norm_init_mode=norm_init_mode, + ) + ] + ) + if self.use_global_vector_ffn and self.use_global_vector: + self.global_ffn_l = nn.CellList( + [ + PositionwiseFFN( + units=global_dim_ratio * dim, + hidden_size=global_dim_ratio * 4 * dim, + activation_dropout=ffn_drop, + dropout=ffn_drop, + gated_proj=gated_ffn, + activation=activation, + normalization=norm_layer, + pre_norm=True, + linear_init_mode=ffn_linear_init_mode, + ffn2_linear_init_mode=ffn2_linear_init_mode, + norm_init_mode=norm_init_mode, + ) + ] + ) + self.attn_l = nn.CellList( + [ + CuboidSelfAttentionLayer( + dim=dim, + num_heads=num_heads, + cuboid_size=ele_cuboid_size, + shift_size=ele_shift_size, + strategy=ele_strategy, + padding_type=padding_type, + qkv_bias=qkv_bias, + qk_scale=qk_scale, + attn_drop=attn_drop, + proj_drop=proj_drop, + norm_layer=norm_layer, + use_global_vector=use_global_vector, + use_global_self_attn=use_global_self_attn, + separate_global_qkv=separate_global_qkv, + global_dim_ratio=global_dim_ratio, + use_relative_pos=use_relative_pos, + use_final_proj=use_final_proj, + attn_linear_init_mode=attn_linear_init_mode, + ffn_linear_init_mode=attn_proj_linear_init_mode, + norm_init_mode=norm_init_mode, + ) + for ele_cuboid_size, ele_shift_size, ele_strategy in zip( + block_cuboid_size, block_shift_size, block_strategy + ) + ] + ) + + def reset_parameters(self): + for m in self.ffn_l: + m.reset_parameters() + if self.use_global_vector_ffn and self.use_global_vector: + for m in self.global_ffn_l: + m.reset_parameters() + for m in self.attn_l: + m.reset_parameters() + + def construct(self, x, global_vectors=None): + """ + Constructs the network output by processing input data with attention and feed-forward layers. + + Args: + x (Tensor): Input data tensor. + global_vectors (Tensor, optional): Global vectors for contextual processing. Defaults to None. + + Returns: + Union[Tensor, Tuple[Tensor, Tensor]]: + - If `global_vectors` is used, returns a tuple (processed_x, updated_global_vectors). + - Otherwise, returns the processed input tensor x. + """ + if self.use_inter_ffn: + if self.use_global_vector: + for idx, (attn, ffn) in enumerate(zip(self.attn_l, self.ffn_l)): + x_out, global_vectors_out = attn(x, global_vectors) + x = x + x_out + global_vectors = global_vectors + global_vectors_out + x = ffn(x) + if self.use_global_vector_ffn: + global_vectors = self.global_ffn_l[idx](global_vectors) + return x, global_vectors + for idx, (attn, ffn) in enumerate(zip(self.attn_l, self.ffn_l)): + x_ = attn(x) + x = x + x_ + x = ffn(x) + return x + if self.use_global_vector: + for idx, attn in enumerate(self.attn_l): + x_out, global_vectors_out = attn(x, global_vectors) + x = x + x_out + global_vectors = global_vectors + global_vectors_out + x = self.ffn_l[0](x) + if self.use_global_vector_ffn: + global_vectors = self.global_ffn_l[0](global_vectors) + return x, global_vectors + for idx, attn in enumerate(self.attn_l): + out = attn(x) + x = x + out + x = self.ffn_l[0](x) + return x diff --git a/MindEarth/applications/nowcasting/PreDiff/src/diffusion/cuboid_transformer_unet.py b/MindEarth/applications/nowcasting/PreDiff/src/diffusion/cuboid_transformer_unet.py new file mode 100644 index 000000000..ae3292ceb --- /dev/null +++ b/MindEarth/applications/nowcasting/PreDiff/src/diffusion/cuboid_transformer_unet.py @@ -0,0 +1,527 @@ +# Copyright 2023 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +"CuboidTransformerUNet base class" +from mindspore import ops, nn, Parameter +import mindspore.common.initializer as initializer + +from src.utils import timestep_embedding, apply_initialization, round_to, self_axial +from .time_embed import TimeEmbedLayer, TimeEmbedResBlock +from .cuboid_transformer import ( + PosEmbed, + Upsample3DLayer, + PatchMerging3D, + StackCuboidSelfAttentionBlock, +) + + +class CuboidTransformerUNet(nn.Cell): + r""" + U-Net style CuboidTransformer that parametrizes `p(x_{t-1}|x_t)`. + It takes `x_t`, `t` as input. + The conditioning can be concatenated to the input like the U-Net in FVD paper. + + For each block, we apply the StackCuboidSelfAttention in U-Net style + + x --> attn --> downscale --> ... --> z --> attn --> upscale --> ... --> out + + Besides, we insert the embeddings of the timesteps `t` before each cuboid attention blocks. + """ + + def __init__( + self, + input_shape=None, + target_shape=None, + base_units=256, + block_units=None, + scale_alpha=1.0, + depth=None, + downsample=2, + downsample_type="patch_merge", + upsample_type="upsample", + upsample_kernel_size=3, + use_attn_pattern=True, + block_cuboid_size=None, + block_cuboid_strategy=None, + block_cuboid_shift_size=None, + num_heads=4, + attn_drop=0.0, + proj_drop=0.0, + ffn_drop=0.0, + ffn_activation="leaky", + gated_ffn=False, + norm_layer="layer_norm", + use_inter_ffn=True, + hierarchical_pos_embed=False, + padding_type="ignore", + use_relative_pos=True, + self_attn_use_final_proj=True, + # global vectors + num_global_vectors=False, + use_global_vector_ffn=True, + use_global_self_attn=False, + separate_global_qkv=False, + global_dim_ratio=1, + # initialization + attn_linear_init_mode="0", + ffn_linear_init_mode="0", + ffn2_linear_init_mode="2", + attn_proj_linear_init_mode="2", + conv_init_mode="0", + down_linear_init_mode="0", + global_proj_linear_init_mode="2", + norm_init_mode="0", + # timestep embedding for diffusion + time_embed_channels_mult=4, + time_embed_use_scale_shift_norm=False, + time_embed_dropout=0.0, + unet_res_connect=True, + ): + super().__init__() + # initialization mode + self.attn_linear_init_mode = attn_linear_init_mode + self.ffn_linear_init_mode = ffn_linear_init_mode + self.ffn2_linear_init_mode = ffn2_linear_init_mode + self.attn_proj_linear_init_mode = attn_proj_linear_init_mode + self.conv_init_mode = conv_init_mode + self.down_linear_init_mode = down_linear_init_mode + self.global_proj_linear_init_mode = global_proj_linear_init_mode + self.norm_init_mode = norm_init_mode + + self.input_shape = input_shape + self.target_shape = target_shape + self.num_blocks = len(depth) + self.depth = depth + self.base_units = base_units + self.scale_alpha = scale_alpha + self.downsample = downsample + self.downsample_type = downsample_type + self.upsample_type = upsample_type + self.upsample_kernel_size = upsample_kernel_size + if not isinstance(downsample, (tuple, list)): + downsample = (1, downsample, downsample) + if block_units is None: + block_units = [ + round_to(base_units * int((max(downsample) ** scale_alpha) ** i), 4) + for i in range(self.num_blocks) + ] + else: + assert len(block_units) == self.num_blocks and block_units[0] == base_units + self.block_units = block_units + self.hierarchical_pos_embed = hierarchical_pos_embed + self.num_global_vectors = num_global_vectors + use_global_vector = num_global_vectors > 0 + self.use_global_vector = use_global_vector + if global_dim_ratio != 1: + assert ( + separate_global_qkv is True + ), f"Setting global_dim_ratio != 1 requires separate_global_qkv == True." + self.global_dim_ratio = global_dim_ratio + self.use_global_vector_ffn = use_global_vector_ffn + + self.time_embed_channels_mult = time_embed_channels_mult + self.time_embed_channels = self.block_units[0] * time_embed_channels_mult + self.time_embed_use_scale_shift_norm = time_embed_use_scale_shift_norm + self.time_embed_dropout = time_embed_dropout + self.unet_res_connect = unet_res_connect + + if self.use_global_vector: + self.init_global_vectors = Parameter( + ops.zeros((self.num_global_vectors, global_dim_ratio * base_units)) + ) + + t_in, h_in, w_in, c_in = input_shape + t_out, h_out, w_out, c_out = target_shape + assert h_in == h_out and w_in == w_out and c_in == c_out + self.t_in = t_in + self.t_out = t_out + self.first_proj = TimeEmbedResBlock( + channels=self.data_shape[-1], + emb_channels=None, + dropout=proj_drop, + out_channels=self.base_units, + use_conv=False, + use_embed=False, + use_scale_shift_norm=False, + dims=3, + up=False, + down=False, + ) + self.pos_embed = PosEmbed( + embed_dim=base_units, + max_t=self.data_shape[0], + max_h=h_in, + max_w=w_in, + ) + + # diffusion time embed + self.time_embed = TimeEmbedLayer( + base_channels=self.block_units[0], + time_embed_channels=self.time_embed_channels, + ) + # # inner U-Net + if self.num_blocks > 1: + # Construct downsampling layers + if downsample_type == "patch_merge": + self.downsample_layers = nn.CellList( + [ + PatchMerging3D( + dim=self.block_units[i], + downsample=downsample, + padding_type=padding_type, + out_dim=self.block_units[i + 1], + linear_init_mode=down_linear_init_mode, + norm_init_mode=norm_init_mode, + ) + for i in range(self.num_blocks - 1) + ] + ) + else: + raise NotImplementedError + if self.use_global_vector: + self.down_layer_global_proj = nn.CellList( + [ + nn.Dense( + in_channels=global_dim_ratio * self.block_units[i], + out_channels=global_dim_ratio * self.block_units[i + 1], + ) + for i in range(self.num_blocks - 1) + ] + ) + # Construct upsampling layers + if self.upsample_type == "upsample": + self.upsample_layers = nn.CellList( + [ + Upsample3DLayer( + dim=self.mem_shapes[i + 1][-1], + out_dim=self.mem_shapes[i][-1], + target_size=self.mem_shapes[i][:3], + kernel_size=upsample_kernel_size, + conv_init_mode=conv_init_mode, + ) + for i in range(self.num_blocks - 1) + ] + ) + else: + raise NotImplementedError + if self.use_global_vector: + self.up_layer_global_proj = nn.CellList( + [ + nn.Dense( + in_channels=global_dim_ratio * self.block_units[i + 1], + out_channels=global_dim_ratio * self.block_units[i], + ) + for i in range(self.num_blocks - 1) + ] + ) + if self.hierarchical_pos_embed: + self.down_hierarchical_pos_embed_l = nn.CellList( + [ + PosEmbed( + embed_dim=self.block_units[i], + max_t=self.mem_shapes[i][0], + max_h=self.mem_shapes[i][1], + max_w=self.mem_shapes[i][2], + ) + for i in range(self.num_blocks - 1) + ] + ) + self.up_hierarchical_pos_embed_l = nn.CellList( + [ + PosEmbed( + embed_dim=self.block_units[i], + max_t=self.mem_shapes[i][0], + max_h=self.mem_shapes[i][1], + max_w=self.mem_shapes[i][2], + ) + for i in range(self.num_blocks - 1) + ] + ) + + if use_attn_pattern: + block_attn_patterns = self.depth + block_cuboid_size = [] + block_cuboid_strategy = [] + block_cuboid_shift_size = [] + for idx, _ in enumerate(block_attn_patterns): + cuboid_size, strategy, shift_size = self_axial(self.mem_shapes[idx]) + block_cuboid_size.append(cuboid_size) + block_cuboid_strategy.append(strategy) + block_cuboid_shift_size.append(shift_size) + else: + if not isinstance(block_cuboid_size[0][0], (list, tuple)): + block_cuboid_size = [block_cuboid_size for _ in range(self.num_blocks)] + else: + assert ( + len(block_cuboid_size) == self.num_blocks + ), f"Incorrect input format! Received block_cuboid_size={block_cuboid_size}" + + if not isinstance(block_cuboid_strategy[0][0], (list, tuple)): + block_cuboid_strategy = [ + block_cuboid_strategy for _ in range(self.num_blocks) + ] + else: + assert ( + len(block_cuboid_strategy) == self.num_blocks + ), f"Incorrect input format! Received block_strategy={block_cuboid_strategy}" + + if not isinstance(block_cuboid_shift_size[0][0], (list, tuple)): + block_cuboid_shift_size = [ + block_cuboid_shift_size for _ in range(self.num_blocks) + ] + else: + assert ( + len(block_cuboid_shift_size) == self.num_blocks + ), f"Incorrect input format! Received block_shift_size={block_cuboid_shift_size}" + self.block_cuboid_size = block_cuboid_size + self.block_cuboid_strategy = block_cuboid_strategy + self.block_cuboid_shift_size = block_cuboid_shift_size + + # cuboid self attention blocks + down_self_blocks = [] + up_self_blocks = [] + # ResBlocks that incorporate `time_embed` + down_time_embed_blocks = [] + up_time_embed_blocks = [] + for i in range(self.num_blocks): + down_time_embed_blocks.append( + TimeEmbedResBlock( + channels=self.mem_shapes[i][-1], + emb_channels=self.time_embed_channels, + dropout=self.time_embed_dropout, + out_channels=self.mem_shapes[i][-1], + use_conv=False, + use_embed=True, + use_scale_shift_norm=self.time_embed_use_scale_shift_norm, + dims=3, + up=False, + down=False, + ) + ) + + ele_depth = depth[i] + stack_cuboid_blocks = [ + StackCuboidSelfAttentionBlock( + dim=self.mem_shapes[i][-1], + num_heads=num_heads, + block_cuboid_size=block_cuboid_size[i], + block_strategy=block_cuboid_strategy[i], + block_shift_size=block_cuboid_shift_size[i], + attn_drop=attn_drop, + proj_drop=proj_drop, + ffn_drop=ffn_drop, + activation=ffn_activation, + gated_ffn=gated_ffn, + norm_layer=norm_layer, + use_inter_ffn=use_inter_ffn, + padding_type=padding_type, + use_global_vector=use_global_vector, + use_global_vector_ffn=use_global_vector_ffn, + use_global_self_attn=use_global_self_attn, + separate_global_qkv=separate_global_qkv, + global_dim_ratio=global_dim_ratio, + use_relative_pos=use_relative_pos, + use_final_proj=self_attn_use_final_proj, + # initialization + attn_linear_init_mode=attn_linear_init_mode, + ffn_linear_init_mode=ffn_linear_init_mode, + ffn2_linear_init_mode=ffn2_linear_init_mode, + attn_proj_linear_init_mode=attn_proj_linear_init_mode, + norm_init_mode=norm_init_mode, + ) + for _ in range(ele_depth) + ] + down_self_blocks.append(nn.CellList(stack_cuboid_blocks)) + + up_time_embed_blocks.append( + TimeEmbedResBlock( + channels=self.mem_shapes[i][-1], + emb_channels=self.time_embed_channels, + dropout=self.time_embed_dropout, + out_channels=self.mem_shapes[i][-1], + use_conv=False, + use_embed=True, + use_scale_shift_norm=self.time_embed_use_scale_shift_norm, + dims=3, + up=False, + down=False, + ) + ) + + stack_cuboid_blocks = [ + StackCuboidSelfAttentionBlock( + dim=self.mem_shapes[i][-1], + num_heads=num_heads, + block_cuboid_size=block_cuboid_size[i], + block_strategy=block_cuboid_strategy[i], + block_shift_size=block_cuboid_shift_size[i], + attn_drop=attn_drop, + proj_drop=proj_drop, + ffn_drop=ffn_drop, + activation=ffn_activation, + gated_ffn=gated_ffn, + norm_layer=norm_layer, + use_inter_ffn=use_inter_ffn, + padding_type=padding_type, + use_global_vector=use_global_vector, + use_global_vector_ffn=use_global_vector_ffn, + use_global_self_attn=use_global_self_attn, + separate_global_qkv=separate_global_qkv, + global_dim_ratio=global_dim_ratio, + use_relative_pos=use_relative_pos, + use_final_proj=self_attn_use_final_proj, + # initialization + attn_linear_init_mode=attn_linear_init_mode, + ffn_linear_init_mode=ffn_linear_init_mode, + ffn2_linear_init_mode=ffn2_linear_init_mode, + attn_proj_linear_init_mode=attn_proj_linear_init_mode, + norm_init_mode=norm_init_mode, + ) + for _ in range(ele_depth) + ] + up_self_blocks.append(nn.CellList(stack_cuboid_blocks)) + self.down_self_blocks = nn.CellList(down_self_blocks) + self.up_self_blocks = nn.CellList(up_self_blocks) + self.down_time_embed_blocks = nn.CellList(down_time_embed_blocks) + self.up_time_embed_blocks = nn.CellList(up_time_embed_blocks) + self.final_proj = nn.Dense(self.base_units, c_out) + + self.reset_parameters() + + def reset_parameters(self): + '''init parameters''' + if self.num_global_vectors > 0: + initializer.TruncatedNormal(self.init_global_vectors, sigma=0.02) + self.first_proj.reset_parameters() + apply_initialization(self.final_proj, linear_mode="2") + self.pos_embed.reset_parameters() + for block in self.down_self_blocks: + for m in block: + m.reset_parameters() + for m in self.down_time_embed_blocks: + m.reset_parameters() + for block in self.up_self_blocks: + for m in block: + m.reset_parameters() + for m in self.up_time_embed_blocks: + m.reset_parameters() + if self.num_blocks > 1: + for m in self.downsample_layers: + m.reset_parameters() + for m in self.upsample_layers: + m.reset_parameters() + if self.use_global_vector: + apply_initialization( + self.down_layer_global_proj, + linear_mode=self.global_proj_linear_init_mode, + ) + apply_initialization( + self.up_layer_global_proj, + linear_mode=self.global_proj_linear_init_mode, + ) + if self.hierarchical_pos_embed: + for m in self.down_hierarchical_pos_embed_l: + m.reset_parameters() + for m in self.up_hierarchical_pos_embed_l: + m.reset_parameters() + + @property + def data_shape(self): + '''set datashape''' + if not hasattr(self, "_data_shape"): + t_in, h_in, w_in, c_in = self.input_shape + t_out, h_out, w_out, c_out = self.target_shape + assert h_in == h_out and w_in == w_out and c_in == c_out + self._data_shape = ( + t_in + t_out, + h_in, + w_in, + c_in + 1, + ) + return self._data_shape + + @property + def mem_shapes(self): + """Get the shape of the output memory based on the input shape. This can be used for constructing the decoder. + + Returns + ------- + mem_shapes + A list of shapes of the output memory + """ + inner_data_shape = tuple(self.data_shape)[:3] + (self.base_units,) + if self.num_blocks == 1: + return [inner_data_shape] + mem_shapes = [inner_data_shape] + curr_shape = inner_data_shape + for down_layer in self.downsample_layers: + curr_shape = down_layer.get_out_shape(curr_shape) + mem_shapes.append(curr_shape) + return mem_shapes + + def construct(self, x, t, cond): + """ + + Parameters + ---------- + x: mindspore.Tensor + Shape (B, t_out, H, W, C) + t: mindspore.Tensor + Shape (B, ) + cond: mindspore.Tensor + Shape (B, t_in, H, W, C) + verbose: bool + + Returns + ------- + out: mindspore.Tensor + Shape (B, T, H, W, C) + """ + + x = ops.cat([cond, x], axis=1) + obs_indicator = ops.ones_like(x[..., :1]) + obs_indicator[:, self.t_in :, ...] = 0.0 + x = ops.cat([x, obs_indicator], axis=-1) + x = x.transpose((0, 4, 1, 2, 3)) + x = self.first_proj(x) + x = x.transpose((0, 2, 3, 4, 1)) + x = self.pos_embed(x) + # inner U-Net + t_emb = self.time_embed(timestep_embedding(t, self.block_units[0])) + if self.unet_res_connect: + res_connect_l = [] + for i in range(self.num_blocks): + # Downample + if i > 0: + x = self.downsample_layers[i - 1](x) + for idx in range(self.depth[i]): + x = x.transpose((0, 4, 1, 2, 3)) + x = self.down_time_embed_blocks[i](x, t_emb) + x = x.transpose((0, 2, 3, 4, 1)) + x = self.down_self_blocks[i][idx](x) + if self.unet_res_connect and i < self.num_blocks - 1: + res_connect_l.append(x) + + for i in range(self.num_blocks - 1, -1, -1): + if self.unet_res_connect and i < self.num_blocks - 1: + x = x + res_connect_l[i] + for idx in range(self.depth[i]): + x = x.transpose((0, 4, 1, 2, 3)) + x = self.up_time_embed_blocks[i](x, t_emb) + x = x.transpose((0, 2, 3, 4, 1)) + x = self.up_self_blocks[i][idx](x) + if i > 0: + x = self.upsample_layers[i - 1](x) + x = self.final_proj(x[:, self.t_in :, ...]) + return x diff --git a/MindEarth/applications/nowcasting/PreDiff/src/diffusion/forecast.py b/MindEarth/applications/nowcasting/PreDiff/src/diffusion/forecast.py new file mode 100644 index 000000000..1873274ed --- /dev/null +++ b/MindEarth/applications/nowcasting/PreDiff/src/diffusion/forecast.py @@ -0,0 +1,285 @@ +# Copyright 2023 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +'''diffusion inferrence''' +import time +import os +import json +from typing import Sequence, Union +import numpy as np +from einops import rearrange + +import mindspore as ms +from mindspore import ops, mint, nn + +from src.visual import vis_sevir_seq +from src.sevir_dataset import SEVIRDataset + + +def get_alignment_kwargs_avg_x(target_seq): + """Generate alignment parameters for guided sampling""" + batch_size = target_seq.shape[0] + avg_intensity = mint.mean(target_seq.view(batch_size, -1), dim=1, keepdim=True) + return {"avg_x_gt": avg_intensity * 2.0} + + +class DiffusionInferrence(nn.Cell): + """ + Class managing model inference and evaluation processes. Handles loading checkpoints, + generating predictions, calculating evaluation metrics, and saving visualization results. + """ + def __init__(self, main_module, dm, logger, config): + """ + Initialize inference manager with model, data module, logger, and configuration. + Args: + main_module: Main diffusion model for inference + dm: Data module providing test dataset + logger: Logging utility for evaluation progress + config: Configuration dictionary containing evaluation parameters + """ + super().__init__() + self.ckpt_path = config["summary"].get( + "ckpt_path", + "./ckpt/diffusion.ckpt", + ) # 删除 + self.num_samples = config["eval"].get("num_samples_per_context", 1) + self.eval_example_only = config["eval"].get("eval_example_only", True) + self.alignment_type = ( + config.get("model", {}).get("align", {}).get("alignment_type", "avg_x") + ) + self.use_alignment = self.alignment_type is not None + self.eval_aligned = config["eval"].get("eval_aligned", True) + self.eval_unaligned = config["eval"].get("eval_unaligned", True) + self.num_samples_per_context = config["eval"].get("num_samples_per_context", 1) + self.logging_prefix = config["logging"].get("logging_prefix", "PreDiff") + self.test_example_data_idx_list = config["eval"].get( + "test_example_data_idx_list", [0, 16, 32, 48, 64, 72, 96, 108, 128] + ) + self.main_module = main_module + self.testdataset = dm.sevir_test + self.logger = logger + self.datasetprocessing = SEVIRDataset( + data_types=["vil"], + layout="NHWT", + rescale_method=config.get("rescale_method", "01"), + ) + self.example_save_dir = config["summary"].get("summary_dir", "./summary") + + self.fs = config["eval"].get("fs", 20) + self.label_offset = config["eval"].get("label_offset", [-0.5, 0.5]) + self.label_avg_int = config["eval"].get("label_avg_int", False) + + self.current_epoch = 0 + + self.learn_logvar = ( + config.get("model", {}).get("diffusion", {}).get("learn_logvar", False) + ) + self.logvar = main_module.logvar + self.maeloss = nn.MAELoss() + self.test_metrics = { + "step": 0, + "mse": 0.0, + "mae": 0.0, + "ssim": 0.0, + "mse_kc": 0.0, + "mae_kc": 0.0, + } + + def test(self): + """Execute complete evaluation pipeline.""" + self.logger.info("============== Start Test ==============") + self.start_time = time.time() + for batch_idx, item in enumerate(self.testdataset.create_dict_iterator()): + self.test_metrics = self._test_onestep(item, batch_idx, self.test_metrics) + + self._finalize_test(self.test_metrics) + + def _test_onestep(self, item, batch_idx, metrics): + """Process one test batch and update evaluation metrics.""" + data_idx = int(batch_idx * 2) + if not self._should_test_onestep(data_idx): + return metrics + data = item.get("vil") + data = self.datasetprocessing.process_data(data) + target_seq, cond, context_seq = self._get_model_inputs(data) + aligned_preds, unaligned_preds = self._generate_predictions( + cond, target_seq + ) + metrics = self._update_metrics( + aligned_preds, unaligned_preds, target_seq, metrics + ) + self._plt_pred( + data_idx, + context_seq, + target_seq, + aligned_preds, + unaligned_preds, + metrics["step"], + ) + + metrics["step"] += 1 + return metrics + + def _should_test_onestep(self, data_idx): + """Determine if evaluation should be performed on current data index.""" + return (not self.eval_example_only) or ( + data_idx in self.test_example_data_idx_list + ) + + def _get_model_inputs(self, data): + """Extract and prepare model inputs from raw data.""" + target_seq, cond, context_seq = self.main_module.get_input( + data, return_verbose=True + ) + return target_seq, cond, context_seq + + def _generate_predictions(self, cond, target_seq): + """Generate both aligned and unaligned predictions from the model.""" + aligned_preds = [] + unaligned_preds = [] + + for _ in range(self.num_samples_per_context): + if self.use_alignment and self.eval_aligned: + aligned_pred = self._sample_with_alignment( + cond, target_seq + ) + aligned_preds.append(aligned_pred) + + if self.eval_unaligned: + unaligned_pred = self._sample_without_alignment(cond) + unaligned_preds.append(unaligned_pred) + + return aligned_preds, unaligned_preds + + def _sample_with_alignment(self, cond, target_seq): + """Generate predictions using alignment mechanism.""" + alignment_kwargs = get_alignment_kwargs_avg_x(target_seq) + pred_seq = self.main_module.sample( + cond=cond, + batch_size=cond["y"].shape[0], + return_intermediates=False, + use_alignment=True, + alignment_kwargs=alignment_kwargs, + verbose=False, + ) + if pred_seq.dtype != ms.float32: + pred_seq = pred_seq.float() + return pred_seq + + def _sample_without_alignment(self, cond): + """Generate predictions without alignment.""" + pred_seq = self.main_module.sample( + cond=cond, + batch_size=cond["y"].shape[0], + return_intermediates=False, + verbose=False, + ) + if pred_seq.dtype != ms.float32: + pred_seq = pred_seq.float() + return pred_seq + + def _update_metrics(self, aligned_preds, unaligned_preds, target_seq, metrics): + """Update evaluation metrics with new predictions.""" + for pred in aligned_preds: + metrics["mse_kc"] += ops.mse_loss(pred, target_seq) + metrics["mae_kc"] += self.maeloss(pred, target_seq) + self.main_module.test_aligned_score.update(pred, target_seq) + + for pred in unaligned_preds: + metrics["mse"] += ops.mse_loss(pred, target_seq) + metrics["mae"] += self.maeloss(pred, target_seq) + self.main_module.test_score.update(pred, target_seq) + + pred_bchw = self._convert_to_bchw(pred) + target_bchw = self._convert_to_bchw(target_seq) + metrics["ssim"] += self.main_module.test_ssim(pred_bchw, target_bchw)[0] + + return metrics + + def _convert_to_bchw(self, tensor): + """Convert tensor to batch-channel-height-width format for metrics.""" + return rearrange(tensor.asnumpy(), "b t h w c -> (b t) c h w") + + def _plt_pred( + self, data_idx, context_seq, target_seq, aligned_preds, unaligned_preds, step + ): + """Generate and save visualization of predictions.""" + pred_sequences = [pred[0].asnumpy() for pred in aligned_preds + unaligned_preds] + pred_labels = [ + f"{self.logging_prefix}_aligned_pred_{i}" for i in range(len(aligned_preds)) + ] + [f"{self.logging_prefix}_pred_{i}" for i in range(len(unaligned_preds))] + + self.save_vis_step_end( + data_idx=data_idx, + context_seq=context_seq[0].asnumpy(), + target_seq=target_seq[0].asnumpy(), + pred_seq=pred_sequences, + pred_label=pred_labels, + mode="test", + suffix=f"_step_{step}", + ) + + def _finalize_test(self, metrics): + """Complete test process and log final metrics.""" + total_time = (time.time() - self.start_time) * 1000 + self.logger.info(f"test cost: {total_time:.2f} ms") + self._compute_total_metrics(metrics) + self.logger.info("============== Test Completed ==============") + + def _compute_total_metrics(self, metrics): + """log_metrics""" + step_count = max(metrics["step"], 1) + if self.eval_unaligned: + self.logger.info(f"MSE: {metrics['mse'] / step_count}") + self.logger.info(f"MAE: {metrics['mae'] / step_count}") + self.logger.info(f"SSIM: {metrics['ssim'] / step_count}") + test_score = self.main_module.test_score.eval() + self.logger.info("SCORE:\n%s", json.dumps(test_score, indent=4)) + if self.use_alignment: + self.logger.info(f"KC_MSE: {metrics['mse_kc'] / step_count}") + self.logger.info(f"KC_MAE: {metrics['mae_kc'] / step_count}") + aligned_score = self.main_module.test_aligned_score.eval() + self.logger.info("KC_SCORE:\n%s", json.dumps(aligned_score, indent=4)) + + def save_vis_step_end( + self, + data_idx: int, + context_seq: np.ndarray, + target_seq: np.ndarray, + pred_seq: Union[np.ndarray, Sequence[np.ndarray]], + pred_label: Union[str, Sequence[str]] = None, + mode: str = "train", + prefix: str = "", + suffix: str = "", + ): + """Save visualization of predictions with context and target.""" + example_data_idx_list = self.test_example_data_idx_list + if isinstance(pred_seq, Sequence): + seq_list = [context_seq, target_seq] + list(pred_seq) + label_list = ["context", "target"] + pred_label + else: + seq_list = [context_seq, target_seq, pred_seq] + label_list = ["context", "target", pred_label] + if data_idx in example_data_idx_list: + png_save_name = f"{prefix}{mode}_data_{data_idx}{suffix}.png" + vis_sevir_seq( + save_path=os.path.join(self.example_save_dir, png_save_name), + seq=seq_list, + label=label_list, + interval_real_time=10, + plot_stride=1, + fs=self.fs, + label_offset=self.label_offset, + label_avg_int=self.label_avg_int, + ) diff --git a/MindEarth/applications/nowcasting/PreDiff/src/diffusion/latent_diffusion.py b/MindEarth/applications/nowcasting/PreDiff/src/diffusion/latent_diffusion.py new file mode 100644 index 000000000..1454a67a0 --- /dev/null +++ b/MindEarth/applications/nowcasting/PreDiff/src/diffusion/latent_diffusion.py @@ -0,0 +1,1076 @@ +# Copyright 2023 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +"Latent Diffusion Model" +import warnings +from typing import Sequence, Dict, Any, Callable +from copy import deepcopy +from functools import partial +import numpy as np +from tqdm import tqdm +from einops import rearrange +from omegaconf import OmegaConf + +import mindspore as ms +from mindspore import nn, ops, Tensor, Parameter, mint + +from src.utils import ( + DiagonalGaussianDistribution, + make_beta_schedule, + extract_into_tensor, + noise_like, + default, + parse_layout_shape, + disabled_train, + layout_to_in_out_slice, + calculate_ssim, + SEVIRSkillScore, +) +from src.sevir_dataset import SEVIRDataModule +from src.vae import AutoencoderKL +from src.knowledge_alignment.alignment_net import AvgIntensityAlignment +from .cuboid_transformer_unet import CuboidTransformerUNet + + +class LatentDiffusion(nn.Cell): + """ + Base class for latent space diffusion models. Implements core diffusion processes including + noise scheduling, model application, loss calculation, and latent space operations. Integrates + main UNet model, VAE, and conditioning modules with support for temporal alignment. + """ + + def __init__( + self, + main_model: nn.Cell, + layout: str = "NTHWC", + data_shape: Sequence[int] = (10, 128, 128, 4), + timesteps=1000, + beta_schedule="linear", + loss_type="l2", + monitor="val/loss", + log_every_t=100, + clip_denoised=False, + linear_start=1e-4, + linear_end=2e-2, + cosine_s=8e-3, + given_betas=None, + original_elbo_weight=0.0, + v_posterior=0.0, + l_simple_weight=1.0, + learn_logvar=False, + logvar_init=0.0, + latent_shape: Sequence[int] = (10, 16, 16, 4), + first_stage_model: nn.Cell = None, + cond_stage_forward=None, + scale_by_std=False, + scale_factor=1.0, + ): + super().__init__() + + self.clip_denoised = clip_denoised + self.log_every_t = log_every_t + self.main_model = main_model + self.layout = layout + self.data_shape = data_shape + self.parse_layout_shape(layout=layout) + self.v_posterior = v_posterior + self.original_elbo_weight = original_elbo_weight + self.l_simple_weight = l_simple_weight + + if monitor is not None: + self.monitor = monitor + + self.register_schedule( + given_betas=given_betas, + beta_schedule=beta_schedule, + timesteps=timesteps, + linear_start=linear_start, + linear_end=linear_end, + cosine_s=cosine_s, + ) + + self.loss_type = loss_type + + self.learn_logvar = learn_logvar + logvar = ops.full(fill_value=logvar_init, size=(self.num_timesteps,)).astype( + ms.float32 + ) + if self.learn_logvar: + self.logvar = Parameter(logvar, requires_grad=True) + else: + self.logvar = Parameter(logvar, name="logvar", requires_grad=False) + + self.latent_shape = latent_shape + self.scale_by_std = scale_by_std + if not scale_by_std: + self.scale_factor = scale_factor + else: + self.logvar = Parameter( + scale_factor, name="scale_factor", requires_grad=False + ) + + self.instantiate_first_stage(first_stage_model) + self.instantiate_cond_stage(cond_stage_forward) + + def set_alignment(self, alignment_fn: Callable = None): + """ + Sets alignment function for denoising process after initialization. + Args: + alignment_fn (Callable): Alignment function with signature + `alignment_fn(zt, t, zc=None, y=None, **kwargs)` + """ + self.alignment_fn = alignment_fn + + def parse_layout_shape(self, layout): + """ + Parses data layout string to determine axis indices. + Args: + layout (str): Data layout specification (e.g., 'NTHWC') + """ + parsed_dict = parse_layout_shape(layout=layout) + self.batch_axis = parsed_dict["batch_axis"] + self.t_axis = parsed_dict["t_axis"] + self.h_axis = parsed_dict["h_axis"] + self.w_axis = parsed_dict["w_axis"] + self.c_axis = parsed_dict["c_axis"] + self.all_slice = [ + slice(None, None), + ] * len(layout) + + def extract_into_tensor(self, a, t, x_shape): + """Extracts schedule parameters into tensor format for current batch.""" + return extract_into_tensor( + a=a, t=t, x_shape=x_shape, batch_axis=self.batch_axis + ) + + @property + def loss_mean_dim(self): + """Computes mean dimensions for loss calculation excluding batch axis.""" + if not hasattr(self, "loss_m_dim"): + loss_m_dim = list(range(len(self.layout))) + loss_m_dim.pop(self.batch_axis) + self.loss_m_dim = tuple(loss_m_dim) + return self.loss_m_dim + + def get_batch_latent_shape(self, batch_size=1): + """ + Generates latent shape with specified batch size. + Args: + batch_size (int): Desired batch size + """ + batch_latent_shape = deepcopy(list(self.latent_shape)) + batch_latent_shape.insert(self.batch_axis, batch_size) + self.batch_latent_shape = tuple(batch_latent_shape) + return self.batch_latent_shape + + def register_schedule( + self, + given_betas=None, + beta_schedule="linear", + timesteps=1000, + linear_start=1e-4, + linear_end=2e-2, + cosine_s=8e-3, + ): + """ + Registers diffusion schedule parameters and precomputes necessary tensors. + Args: + given_betas (Tensor): Custom beta values + beta_schedule (str): Schedule type ('linear', 'cosine') + timesteps (int): Number of diffusion steps + linear_start (float): Linear schedule start value + linear_end (float): Linear schedule end value + cosine_s (float): Cosine schedule parameter + """ + if given_betas is not None: + betas = given_betas + else: + betas = make_beta_schedule( + beta_schedule, + timesteps, + linear_start=linear_start, + linear_end=linear_end, + cosine_s=cosine_s, + ) + alphas = 1.0 - betas + alphas_cumprod = np.cumprod(alphas, axis=0) + alphas_cumprod_prev = np.append(1.0, alphas_cumprod[:-1]) + + (timesteps,) = betas.shape + self.num_timesteps = int(timesteps) + self.linear_start = linear_start + self.linear_end = linear_end + assert ( + alphas_cumprod.shape[0] == self.num_timesteps + ), "alphas have to be defined for each timestep" + + to_mindspore = partial(Tensor, dtype=ms.float32) + self.betas = Parameter(to_mindspore(betas), name="betas", requires_grad=False) + self.alphas_cumprod = Parameter( + to_mindspore(alphas_cumprod), name="alphas_cumprod", requires_grad=False + ) + self.alphas_cumprod_prev = Parameter( + to_mindspore(alphas_cumprod_prev), + name="alphas_cumprod_prev", + requires_grad=False, + ) + self.sqrt_alphas_cumprod = Parameter( + to_mindspore(np.sqrt(alphas_cumprod)), + name="sqrt_alphas_cumprod", + requires_grad=False, + ) + self.sqrt_one_minus_alphas_cumprod = Parameter( + to_mindspore(np.sqrt(1.0 - alphas_cumprod)), + name="sqrt_one_minus_alphas_cumprod", + requires_grad=False, + ) + self.log_one_minus_alphas_cumprod = Parameter( + to_mindspore(np.log(1.0 - alphas_cumprod)), + name="log_one_minus_alphas_cumprod", + requires_grad=False, + ) + self.sqrt_recip_alphas_cumprod = Parameter( + to_mindspore(np.sqrt(1.0 / alphas_cumprod)), + name="sqrt_recip_alphas_cumprod", + requires_grad=False, + ) + self.sqrt_recipm1_alphas_cumprod = Parameter( + to_mindspore(np.sqrt(1.0 / alphas_cumprod - 1)), + name="sqrt_recipm1_alphas_cumprod", + requires_grad=False, + ) + + posterior_variance = (1 - self.v_posterior) * betas * ( + 1.0 - alphas_cumprod_prev + ) / (1.0 - alphas_cumprod) + self.v_posterior * betas + self.posterior_variance = Parameter( + to_mindspore(posterior_variance), + name="posterior_variance", + requires_grad=False, + ) + self.posterior_log_variance_clipped = Parameter( + to_mindspore(np.log(np.maximum(posterior_variance, 1e-20))), + name="posterior_log_variance_clipped", + requires_grad=False, + ) + self.posterior_mean_coef1 = Parameter( + to_mindspore(betas * np.sqrt(alphas_cumprod_prev) / (1.0 - alphas_cumprod)), + name="posterior_mean_coef1", + requires_grad=False, + ) + self.posterior_mean_coef2 = Parameter( + to_mindspore( + (1.0 - alphas_cumprod_prev) * np.sqrt(alphas) / (1.0 - alphas_cumprod) + ), + name="posterior_mean_coef2", + requires_grad=False, + ) + + lvlb_weights = self.betas**2 / ( + 2 + * self.posterior_variance + * to_mindspore(alphas) + * (1 - self.alphas_cumprod) + ) + lvlb_weights[0] = lvlb_weights[1] + self.lvlb_weights = Parameter( + lvlb_weights, name="lvlb_weights", requires_grad=False + ) + assert not ops.isnan(self.lvlb_weights).all() + + def instantiate_first_stage(self, first_stage_model): + """ + Initializes and freezes the first stage autoencoder model. + Args: + first_stage_model (nn.Cell): Autoencoder model instance + """ + if isinstance(first_stage_model, nn.Cell): + model = first_stage_model + else: + assert first_stage_model is None + raise NotImplementedError("No default first_stage_model supported yet!") + self.first_stage_model = model.set_train(False) + self.first_stage_model.train = disabled_train + for param in self.first_stage_model.trainable_params(): + param.requires_grad = False + + def instantiate_cond_stage(self, cond_stage_forward): + """Configures conditioning stage encoder with spatial rearrangement.""" + self.cond_stage_model = self.first_stage_model + for param in self.cond_stage_model.trainable_params(): + param.requires_grad = False + cond_stage_forward = self.cond_stage_model.encode + + def wrapper(cond_stage_forward: Callable): + def func(c: Dict[str, Any]): + c = c.get("y") + batch_size = c.shape[self.batch_axis] + c = c.transpose(0, 1, 4, 2, 3) + n_new, t_new, c_new, h_new, w_new = c.shape + c = c.reshape(n_new * t_new, c_new, h_new, w_new) + c = cond_stage_forward(c) + if isinstance(c, DiagonalGaussianDistribution): + c = c.mode() + n_new, c_new, h_new, w_new = c.shape + c = c.reshape(batch_size, -1, c_new, h_new, w_new) + c = c.transpose(0, 1, 3, 4, 2) + return c + + return func + + self.cond_stage_forward = wrapper(cond_stage_forward) + + def get_first_stage_encoding(self, encoder_posterior): + """ + Extracts latent representation from encoder output. + Args: + encoder_posterior (Tensor/DiagonalGaussianDistribution): Encoder output + """ + if isinstance(encoder_posterior, DiagonalGaussianDistribution): + z = encoder_posterior.sample() + elif isinstance(encoder_posterior, Tensor): + z = encoder_posterior + else: + raise NotImplementedError( + f"encoder_posterior of type '{type(encoder_posterior)}' not yet implemented" + ) + return self.scale_factor * z + + @property + def einops_layout(self): + """Returns Einops layout string for data rearrangement.""" + return " ".join(self.layout) + + @property + def einops_spatial_layout(self): + """Generates spatial Einops pattern for 2D/3D data handling.""" + if not hasattr(self, "_einops_spatial_layout"): + assert len(self.layout) == 4 or len(self.layout) == 5 + self._einops_spatial_layout = ( + "(N T) C H W" if self.layout.find("T") else "N C H W" + ) + return self._einops_spatial_layout + + def decode_first_stage(self, z): + """ + Decodes latent representation to data space with spatial rearrangement. + Args: + z (Tensor): Latent tensor + """ + z = 1.0 / self.scale_factor * z + batch_size = z.shape[self.batch_axis] + z = rearrange( + z.asnumpy(), f"{self.einops_layout} -> {self.einops_spatial_layout}" + ) + z = Tensor.from_numpy(z) + output = self.first_stage_model.decode(z) + output = rearrange( + output.asnumpy(), + f"{self.einops_spatial_layout} -> {self.einops_layout}", + N=batch_size, + ) + output = Tensor.from_numpy(output) + return output + + def encode_first_stage(self, x): + """ + Encodes input data into latent space. + Args: + x (Tensor): Input data tensor + """ + encoder_posterior = self.first_stage_model.encode(x) + output = self.get_first_stage_encoding(encoder_posterior) + return output + + def apply_model(self, x_noisy, t, cond): + """ + Applies main UNet model to denoise inputs. + Args: + x_noisy (Tensor): Noisy input tensor + t (Tensor): Time step tensor + cond (Dict): Conditioning information + Returns: + Tensor: Denoising model output + """ + x_recon = self.main_model(x_noisy, t, cond) + if isinstance(x_recon, tuple): + return x_recon[0] + return x_recon + + def q_sample(self, x_start, t, noise=None): + """ + Adds noise to clean data according to diffusion schedule. + Args: + x_start (Tensor): Clean data tensor + t (Tensor): Time step tensor + noise (Tensor): Optional noise tensor + Returns: + Tensor: Noisy data tensor + """ + noise = default(noise, lambda: ops.randn_like(x_start)) + return ( + self.extract_into_tensor(self.sqrt_alphas_cumprod, t, x_start.shape) + * x_start + + self.extract_into_tensor( + self.sqrt_one_minus_alphas_cumprod, t, x_start.shape + ) + * noise + ) + + def get_loss(self, pred, target, mean=True): + """ + Calculates loss between prediction and target. + Args: + pred (Tensor): Model predictions + target (Tensor): Target values + mean (bool): Whether to return mean loss + Returns: + Tensor: Loss value(s) + """ + if self.loss_type == "l1": + loss = (target - pred).abs() + if mean: + loss = loss.mean() + elif self.loss_type == "l2": + if mean: + loss = mint.nn.functional.mse_loss(target, pred) + else: + loss = mint.nn.functional.mse_loss(target, pred, reduction="none") + else: + raise NotImplementedError("unknown loss type '{loss_type}'") + + return loss + + def p_losses(self, x_start, cond, t, noise=None): + """ + Computes diffusion training loss for given time steps. + Args: + x_start (Tensor): Clean data tensor + cond (Dict): Conditioning information + t (Tensor): Time step tensor + noise (Tensor): Optional noise tensor + Returns: + Tensor: Total training loss + """ + noise = default(noise, lambda: ops.randn_like(x_start)) + x_noisy = self.q_sample(x_start=x_start, t=t, noise=noise) + model_output = self.apply_model(x_noisy, t, cond) + loss_simple = self.get_loss(model_output, noise, mean=False).mean( + axis=self.loss_mean_dim + ) + + logvar_t = self.logvar[t] + + loss = loss_simple / ops.exp(logvar_t) + logvar_t + + loss = self.l_simple_weight * loss.mean() + return loss + + def predict_start_from_noise(self, x_t, t, noise): + """ + Reconstructs clean data from noisy input and predicted noise. + Args: + x_t (Tensor): Noisy data tensor + t (Tensor): Time step tensor + noise (Tensor): Predicted noise tensor + Returns: + Tensor: Reconstructed clean data + """ + sqrt_recip_alphas_cumprod_t = self.extract_into_tensor( + self.sqrt_recip_alphas_cumprod, t, x_t.shape + ) + sqrt_recipm1_alphas_cumprod_t = self.extract_into_tensor( + self.sqrt_recipm1_alphas_cumprod, t, x_t.shape + ) + term1 = sqrt_recip_alphas_cumprod_t * x_t + term2 = sqrt_recipm1_alphas_cumprod_t * noise + pred = term1 - term2 + return pred + + def q_posterior(self, x_start, x_t, t): + """ + Calculates posterior distribution parameters for given time steps. + Args: + x_start (Tensor): Clean data tensor + x_t (Tensor): Noisy data tensor + t (Tensor): Time step tensor + Returns: + Tuple[Tensor]: (posterior mean, variance, log variance) + """ + posterior_mean = ( + self.extract_into_tensor(self.posterior_mean_coef1, t, x_t.shape) * x_start + + self.extract_into_tensor(self.posterior_mean_coef2, t, x_t.shape) * x_t + ) + posterior_variance = self.extract_into_tensor( + self.posterior_variance, t, x_t.shape + ) + posterior_log_variance_clipped = self.extract_into_tensor( + self.posterior_log_variance_clipped, t, x_t.shape + ) + return posterior_mean, posterior_variance, posterior_log_variance_clipped + + def p_mean_variance( + self, + zt, + zc, + t, + clip_denoised: bool, + return_x0=False, + score_corrector=None, + corrector_kwargs=None, + ): + """ + Computes predicted mean and variance during denoising. + Args: + zt (Tensor): Current latent sample + zc (Tensor): Conditioning tensor + t (Tensor): Time step tensor + clip_denoised (bool): Whether to clip denoised outputs + return_x0 (bool): Whether to return reconstructed x0 + score_corrector (Callable): Optional score correction function + corrector_kwargs (Dict): Correction function parameters + Returns: + Tuple[Tensor]: (mean, variance, log variance, [reconstructed x0]) + """ + t_in = t + model_out = self.apply_model(zt, t_in, zc) + if score_corrector is not None: + model_out = score_corrector.modify_score( + self, model_out, zt, t, zc, **corrector_kwargs + ) + z_recon = self.predict_start_from_noise(zt, t=t, noise=model_out) + if clip_denoised: + z_recon = z_recon.clamp(-1.0, 1.0) + model_mean, posterior_variance, posterior_log_variance = self.q_posterior( + x_start=z_recon, x_t=zt, t=t + ) + if return_x0: + return model_mean, posterior_variance, posterior_log_variance, z_recon + return model_mean, posterior_variance, posterior_log_variance + + def aligned_mean(self, zt, t, zc, y, orig_mean, orig_log_var, **kwargs): + """ + Calculates aligned mean using gradient-based alignment function. + Args: + zt (Tensor): Current latent sample + t (Tensor): Time step tensor + zc (Tensor): Conditioning tensor + y (Tensor): Ground truth tensor + orig_mean (Tensor): Original mean + orig_log_var (Tensor): Original log variance + **kwargs: Additional alignment parameters + Returns: + Tensor: Aligned mean tensor + """ + align_gradient = self.alignment_fn(zt, t, zc=zc, y=y, **kwargs) + new_mean = orig_mean - (0.5 * orig_log_var).exp() * align_gradient + return new_mean + + def p_sample( + self, + zt, + zc, + t, + y=None, + use_alignment=False, + alignment_kwargs=None, + clip_denoised=False, + return_x0=False, + temperature=1.0, + noise_dropout=0.0, + score_corrector=None, + corrector_kwargs=None, + ): + """ + Single step diffusion sampling. + Args: + zt (Tensor): Current noisy sample at time step t + zc (Tensor/Dict): Condition input (latent or processed) + t (Tensor): Time step tensor + y (Tensor, optional): Additional conditioning information + use_alignment (bool): Whether to apply alignment correction + alignment_kwargs (dict, optional): Parameters for alignment correction + clip_denoised (bool): Clip model output to [-1,1] range + return_x0 (bool): Return estimated x0 along with sample + temperature (float): Noise scaling factor + noise_dropout (float): Dropout rate for noise component + score_corrector (object, optional): Model output corrector instance + corrector_kwargs (dict, optional): Parameters for score correction + + Returns: + Tensor: Next denoised sample + Tensor (optional): Estimated x0 if return_x0 is True + """ + batch_size = zt.shape[self.batch_axis] + outputs = self.p_mean_variance( + zt=zt, + zc=zc, + t=t, + clip_denoised=clip_denoised, + return_x0=return_x0, + score_corrector=score_corrector, + corrector_kwargs=corrector_kwargs, + ) + if use_alignment: + if alignment_kwargs is None: + alignment_kwargs = {} + model_mean, posterior_variance, model_log_variance, *_ = outputs + model_mean = self.aligned_mean( + zt=zt, + t=t, + zc=zc, + y=y, + orig_mean=model_mean, + orig_log_var=model_log_variance, + **alignment_kwargs, + ) + outputs = (model_mean, posterior_variance, model_log_variance, *outputs[3:]) + if return_x0: + model_mean, _, model_log_variance, x0 = outputs + else: + model_mean, _, model_log_variance = outputs + + noise = noise_like(zt.shape) * temperature + if noise_dropout > 0.0: + noise = ops.dropout(noise, p=noise_dropout) + # no noise when t == 0 + nonzero_mask_shape = [ + 1, + ] * len(zt.shape) + nonzero_mask_shape[self.batch_axis] = batch_size + nonzero_mask = (1 - (t == 0).float()).reshape(*nonzero_mask_shape) + + if return_x0: + return ( + model_mean + nonzero_mask * (0.5 * model_log_variance).exp() * noise, + x0, + ) + return model_mean + nonzero_mask * (0.5 * model_log_variance).exp() * noise + + def p_sample_loop( + self, + cond, + shape, + y=None, + use_alignment=False, + alignment_kwargs=None, + return_intermediates=False, + x_t=None, + verbose=False, + timesteps=None, + mask=None, + x0=None, + start_t=None, + log_every_t=None, + ): + """ + Full diffusion sampling loop. + Args: + cond (Tensor/Dict): Conditioning input (processed) + shape (tuple): Output tensor shape (B, C, H, W) + y (Tensor, optional): Additional conditioning info + use_alignment (bool): Enable alignment correction during sampling + alignment_kwargs (dict, optional): Alignment parameters + return_intermediates (bool): Return intermediate steps + x_t (Tensor, optional): Initial noise sample (default: random) + verbose (bool): Show progress bar + timesteps (int): Number of sampling steps + mask (Tensor, optional): Mask for conditional generation (requires x0) + x0 (Tensor, optional): Original image for inpainting/conditional generation + start_t (int): Override maximum time step + log_every_t (int): Frequency of intermediate saves + + Returns: + Tensor: Final generated sample + list[Tensor] (optional): Intermediate samples if requested + """ + + if not log_every_t: + log_every_t = self.log_every_t + batch_size = shape[self.batch_axis] + if x_t is None: + img = ops.randn(shape) + + else: + img = x_t + + intermediates = [img] + if timesteps is None: + timesteps = self.num_timesteps + + if start_t is not None: + timesteps = min(timesteps, start_t) + iterator = ( + tqdm(reversed(range(0, timesteps)), desc="Sampling t", total=timesteps) + if verbose + else reversed(range(0, timesteps)) + ) + + if mask is not None: + assert x0 is not None + assert x0.shape[2:3] == mask.shape[2:3] # spatial size has to match + for i in iterator: + ts = ops.full((batch_size,), i, dtype=ms.int64) + img = self.p_sample( + zt=img, + zc=cond, + t=ts, + y=y, + use_alignment=use_alignment, + alignment_kwargs=alignment_kwargs, + clip_denoised=self.clip_denoised, + ) + if mask is not None: + img_orig = self.q_sample(x0, ts) + img = img_orig * mask + (1.0 - mask) * img + + if i % log_every_t == 0 or i == timesteps - 1: + intermediates.append(img) + + if return_intermediates: + return img, intermediates + return img + + def sample( + self, + cond, + batch_size=16, + use_alignment=False, + alignment_kwargs=None, + return_intermediates=False, + x_t=None, + verbose=False, + timesteps=None, + mask=None, + x0=None, + shape=None, + return_decoded=True, + ): + """ + High-level sampling interface with conditioning handling. + + Args: + cond (Tensor/Dict): Raw conditioning input (e.g., text/image) + batch_size (int): Number of samples to generate + use_alignment (bool): Enable alignment correction + alignment_kwargs (dict, optional): Alignment parameters + return_intermediates (bool): Return intermediate steps + x_t (Tensor, optional): Initial noise sample + verbose (bool): Show progress + timesteps (int): Sampling steps + mask (Tensor, optional): Inpainting mask (requires x0) + x0 (Tensor, optional): Original image for conditioning + shape (tuple, optional): Output shape override + return_decoded (bool): Return decoded image instead of latent + + Returns: + Tensor: Generated image (decoded if return_decoded) + list[Tensor] (optional): Decoded intermediate steps if requested + """ + if shape is None: + shape = self.get_batch_latent_shape(batch_size=batch_size) + if self.cond_stage_model is not None: + assert cond is not None + cond_tensor_slice = [ + slice(None, None), + ] * len(self.data_shape) + cond_tensor_slice[self.batch_axis] = slice(0, batch_size) + if isinstance(cond, dict): + zc = { + key: ( + cond[key][cond_tensor_slice] + if not isinstance(cond[key], list) + else list(map(lambda x: x[cond_tensor_slice], cond[key])) + ) + for key in cond + } + else: + zc = ( + [c[cond_tensor_slice] for c in cond] + if isinstance(cond, list) + else cond[cond_tensor_slice] + ) + zc = self.cond_stage_forward(zc) + else: + zc = cond if isinstance(cond, Tensor) else cond.get("y", None) + y = cond if isinstance(cond, Tensor) else cond.get("y", None) + output = self.p_sample_loop( + cond=zc, + shape=shape, + y=y, + use_alignment=use_alignment, + alignment_kwargs=alignment_kwargs, + return_intermediates=return_intermediates, + x_t=x_t, + verbose=verbose, + timesteps=timesteps, + mask=mask, + x0=x0, + ) + if return_decoded: + if return_intermediates: + samples, intermediates = output + decoded_samples = self.decode_first_stage(samples) + decoded_intermediates = [ + self.decode_first_stage(ele) for ele in intermediates + ] + output = [decoded_samples, decoded_intermediates] + else: + output = self.decode_first_stage(output) + return output + + + +class PreDiffModule(LatentDiffusion): + """ + Main module for pre-training diffusion models with latent representations. + Integrates configuration loading, model creation, alignment setup, metric initialization, + and visualization parameters. Extends LatentDiffusion to handle cuboid-based UNet architectures + and knowledge alignment for sequential data generation tasks. + """ + + def __init__(self, oc_file: str = None): + self.oc = self._load_configs(oc_file) + latent_model = self._create_latent_model() + first_stage_model = self._create_vae_model() + super().__init__( + **self._prepare_parent_init_params(latent_model, first_stage_model) + ) + self._setup_alignment() + self._initialize_metrics() + self._setup_visualization() + + def _load_configs(self, oc_file): + """Loads all configuration files through a unified entry point.""" + oc_from_file = OmegaConf.load(open(oc_file, "r")) if oc_file else None + return self.get_base_config(oc_from_file=oc_from_file) + + def _create_latent_model(self): + """Builds the CuboidTransformerUNet model based on configurations.""" + latent_model_cfg = OmegaConf.to_object(self.oc.model.latent_model) + return CuboidTransformerUNet( + **{ + k: latent_model_cfg[k] + for k in latent_model_cfg + }, + ) + + def _process_attention_patterns(self, cfg, num_blocks): + """Processes attention patterns from configuration settings.""" + if isinstance(cfg["self_pattern"], str): + return [cfg["self_pattern"]] * num_blocks + return OmegaConf.to_container(cfg["self_pattern"]) + + def _create_vae_model(self): + """Creates and loads pretrained weights for the VAE model.""" + vae_cfg = OmegaConf.to_object(self.oc.model.vae) + model = AutoencoderKL( + **{ + k: vae_cfg[k] + for k in vae_cfg + if k not in ["pretrained_ckpt_path", "data_channels"] + } + ) + self._load_pretrained_weights(model, vae_cfg["pretrained_ckpt_path"]) + return model + + def _load_pretrained_weights(self, model, ckpt_path): + """Loads pretrained weights into the given model if a checkpoint path is provided.""" + if ckpt_path: + param_dict = ms.load_checkpoint(ckpt_path) + param_not_load, _ = ms.load_param_into_net(model, param_dict) + if param_not_load: + print(f"Unloaded AutoencoderKLparameters: {param_not_load}") + else: + warnings.warn( + "Pretrained weights for AutoencoderKL not set. Running sanity check only." + ) + + def _prepare_parent_init_params(self, latent_model, first_stage_model): + """Prepares initialization parameters for the parent class.""" + diffusion_cfg = OmegaConf.to_object(self.oc.model.diffusion) + return { + "main_model": latent_model, + "layout": self.oc.layout.layout, + "loss_type": self.oc.optim.loss_type, + "monitor": self.oc.optim.monitor, + "first_stage_model": first_stage_model, + **{ + k: diffusion_cfg[k] + for k in diffusion_cfg + if k not in ["latent_cond_shape"] + }, + } + + def _setup_alignment(self): + """Sets up alignment using AvgIntensityAlignment if specified in configurations.""" + # from src.knowledge_alignment.alignment_net import AvgIntensityAlignment + + knowledge_cfg = OmegaConf.to_object(self.oc.model.align) + self.alignment_type = knowledge_cfg["alignment_type"] + self.use_alignment = self.alignment_type is not None + + if self.use_alignment: + self.alignment_obj = AvgIntensityAlignment( + guide_scale=knowledge_cfg["guide_scale"], + model_args=knowledge_cfg["model_args"], + model_ckpt_path=knowledge_cfg["model_ckpt_path"], + ) + self.alignment_obj.model.set_train(False) + self.set_alignment(self.alignment_obj.get_mean_shift) + else: + self.set_alignment(None) + + def _initialize_metrics(self): + """Initializes metrics for evaluation based on configurations.""" + if self.oc.eval.eval_unaligned: + self._init_unaligned_metrics() + if self.oc.eval.eval_aligned: + self._init_aligned_metrics() + + def _init_unaligned_metrics(self): + """Initializes unaligned metrics for evaluation.""" + common_args = { + "mode": self.oc.data.metrics_mode, + "seq_in": self.oc.layout.t_out, + "layout": self.layout, + "threshold_list": self.oc.data.threshold_list, + "metrics_list": self.oc.data.metrics_list, + "eps": 1e-4, + } + + self.valid_score = SEVIRSkillScore(**common_args) + + self.test_ssim = calculate_ssim + self.test_aligned_ssim = calculate_ssim + self.test_score = SEVIRSkillScore(**common_args) + + def _init_aligned_metrics(self): + """Initializes aligned metrics for evaluation.""" + common_args = { + "mode": self.oc.data.metrics_mode, + "seq_in": self.oc.layout.t_out, + "layout": self.layout, + "threshold_list": self.oc.data.threshold_list, + "metrics_list": self.oc.data.metrics_list, + "eps": 1e-4, + } + + self.valid_aligned_score = SEVIRSkillScore(**common_args) + + self.test_aligned_ssim = nn.SSIM() + self.test_aligned_score = SEVIRSkillScore(**common_args) + + def _setup_visualization(self): + """Sets up visualization parameters based on configurations.""" + self.logging_prefix = self.oc.logging.logging_prefix + self.train_example_data_idx_list = list( + self.oc.eval.train_example_data_idx_list + ) + self.val_example_data_idx_list = list(self.oc.eval.val_example_data_idx_list) + self.test_example_data_idx_list = list(self.oc.eval.test_example_data_idx_list) + + def get_base_config(self, oc_from_file=None): + """Merges base configuration with configuration loaded from file.""" + if oc_from_file is None: + raise ValueError("oc_from_file is required but not provided") + oc = OmegaConf.create() + oc = OmegaConf.merge(oc, oc_from_file) + return oc + + @classmethod + def get_total_num_steps( + cls, num_samples: int, total_batch_size: int, epoch: int = None + ): + """ + Parameters + ---------- + num_samples: int + The number of samples of the datasets. `num_samples / micro_batch_size` is the number of steps per epoch. + total_batch_size: int + `total_batch_size == micro_batch_size * world_size * grad_accum` + epoch: int + """ + if epoch is None: + epoch = cls.get_optim_config().max_epochs + return int(epoch * num_samples / total_batch_size) + + @staticmethod + def get_sevir_datamodule( + dataset_cfg, micro_batch_size: int = 1, num_workers: int = 8 + ): + """Creates and returns a SEVIRDataModule instance based on dataset configurations.""" + dm = SEVIRDataModule( + sevir_dir=dataset_cfg["root_dir"], + seq_in=dataset_cfg["seq_in"], + sample_mode=dataset_cfg["sample_mode"], + stride=dataset_cfg["stride"], + batch_size=micro_batch_size, + layout=dataset_cfg["layout"], + output_type=np.float32, + preprocess=True, + rescale_method="01", + verbose=False, + aug_mode=dataset_cfg["aug_mode"], + dataset_name=dataset_cfg["dataset_name"], + start_date=dataset_cfg["start_date"], + train_val_split_date=dataset_cfg["train_val_split_date"], + train_test_split_date=dataset_cfg["train_test_split_date"], + end_date=dataset_cfg["end_date"], + val_ratio=dataset_cfg["val_ratio"], + num_workers=num_workers, + raw_seq_len=dataset_cfg["raw_seq_len"] + ) + return dm + + @property + def in_slice(self): + """Returns the input slice based on layout and sequence length configurations.""" + if not hasattr(self, "_in_slice"): + in_slice, out_slice = layout_to_in_out_slice( + layout=self.oc.layout.layout, + t_in=self.oc.layout.t_in, + t_out=self.oc.layout.t_out, + ) + self._in_slice = in_slice + self._out_slice = out_slice + return self._in_slices + + @property + def out_slice(self): + """Returns the output slice based on layout and sequence length configurations.""" + if not hasattr(self, "_out_slice"): + in_slice, out_slice = layout_to_in_out_slice( + layout=self.oc.layout.layout, + t_in=self.oc.layout.t_in, + t_out=self.oc.layout.t_out, + ) + self._in_slice = in_slice + self._out_slice = out_slice + return self._out_slice + + def get_input(self, batch, **kwargs): + """Extracts input data and conditioning information from a raw data batch.""" + return self._get_input_sevirlr( + batch=batch, return_verbose=kwargs.get("return_verbose", False) + ) + + def _get_input_sevirlr(self, batch, return_verbose=False): + """Specific implementation of input extraction for SEVIRLR dataset.""" + seq = batch + in_seq = seq[self.in_slice] + out_seq = seq[self.out_slice] + if return_verbose: + return out_seq, {"y": in_seq}, in_seq + return out_seq, {"y": in_seq} diff --git a/MindEarth/applications/nowcasting/PreDiff/src/diffusion/solver.py b/MindEarth/applications/nowcasting/PreDiff/src/diffusion/solver.py new file mode 100644 index 000000000..103cf7064 --- /dev/null +++ b/MindEarth/applications/nowcasting/PreDiff/src/diffusion/solver.py @@ -0,0 +1,140 @@ +# Copyright 2023 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +"diffusion model training" +import time +import os + + +import mindspore as ms +from mindspore import ops, nn +from mindspore.train.serialization import save_checkpoint + +from src.sevir_dataset import SEVIRDataset + + +class DiffusionTrainer(nn.Cell): + """ + Class managing the training pipeline for diffusion models. Handles dataset processing, + optimizer configuration, gradient clipping, checkpoint saving, and logging. + """ + def __init__(self, main_module, dm, logger, config): + """ + Initialize trainer with model, data module, logger, and configuration. + Args: + main_module: Main diffusion model to be trained + dm: Data module providing training dataset + logger: Logging utility for training progress + config: Configuration dictionary containing hyperparameters + """ + super().__init__() + self.main_module = main_module + self.traindataset = dm.sevir_train + self.logger = logger + self.datasetprocessing = SEVIRDataset( + data_types=["vil"], + layout="NHWT", + rescale_method=config.get("rescale_method", "01"), + ) + self.example_save_dir = config["summary"].get("summary_dir", "./summary") + self.fs = config["eval"].get("fs", 20) + self.label_offset = config["eval"].get("label_offset", [-0.5, 0.5]) + self.label_avg_int = config["eval"].get("label_avg_int", False) + self.current_epoch = 0 + self.learn_logvar = ( + config.get("model", {}).get("diffusion", {}).get("learn_logvar", False) + ) + self.logvar = main_module.logvar + self.maeloss = nn.MAELoss() + self.optim_config = config["optim"] + self.clip_norm = config.get("clip_norm", 2) + self.ckpt_dir = os.path.join(self.example_save_dir, "ckpt") + self.keep_ckpt_max = config["summary"].get("keep_ckpt_max", 100) + self.ckpt_history = [] + self.grad_clip_fn = ops.clip_by_global_norm + self.optimizer = nn.Adam(params=self.main_module.main_model.trainable_params(), + learning_rate=config["optim"].get("lr", 1e-5)) + os.makedirs(self.ckpt_dir, exist_ok=True) + + def train(self, total_steps: int): + """Execute complete training pipeline.""" + self.main_module.main_model.set_train(True) + self.logger.info(f"total_steps: {total_steps}") + self.logger.info("Initializing training process...") + loss_processor = Trainonestepforward(self.main_module) + grad_func = ms.ops.value_and_grad(loss_processor, None, self.main_module.main_model.trainable_params()) + for epoch in range(self.optim_config["max_epochs"]): + epoch_loss = 0.0 + epoch_start = time.time() + + iterator = self.traindataset.create_dict_iterator() + assert iterator, "dataset is empty" + batch_idx = 0 + for batch_idx, batch in enumerate(iterator): + processed_data = self.datasetprocessing.process_data(batch["vil"]) + loss_value, gradients = grad_func(processed_data) + clipped_grads = self.grad_clip_fn(gradients, self.clip_norm) + self.optimizer(clipped_grads) + epoch_loss += loss_value.asnumpy() + self.logger.info( + f"epoch: {epoch} step: {batch_idx}, loss: {loss_value}" + ) + self._save_ckpt(epoch) + epoch_time = time.time() - epoch_start + self.logger.info( + f"Epoch {epoch} completed in {epoch_time:.2f}s | " + f"Avg Loss: {epoch_loss/(batch_idx+1):.4f}" + ) + + def _save_ckpt(self, epoch: int): + """Save model ckpt with rotation policy""" + ckpt_file = f"diffusion_epoch{epoch}.ckpt" + ckpt_path = os.path.join(self.ckpt_dir, ckpt_file) + + save_checkpoint(self.main_module.main_model, ckpt_path) + self.ckpt_history.append(ckpt_path) + + if len(self.ckpt_history) > self.keep_ckpt_max: + removed_ckpt = self.ckpt_history.pop(0) + os.remove(removed_ckpt) + self.logger.info(f"Removed outdated ckpt: {removed_ckpt}") + + +class Trainonestepforward(nn.Cell): + """A neural network cell that performs one training step forward pass for a diffusion model. + This class encapsulates the forward pass computation for training a diffusion model, + handling the input processing, latent space encoding, conditioning, and loss calculation. + Args: + model (nn.Cell): The main diffusion model containing the necessary submodules + for encoding, conditioning, and loss computation. + """ + + def __init__(self, model): + super().__init__() + self.main_module = model + + def construct(self, inputs): + """Perform one forward training step and compute the loss.""" + x, condition = self.main_module.get_input(inputs) + x = x.transpose(0, 1, 4, 2, 3) + n, t_, c_, h, w = x.shape + x = x.reshape(n * t_, c_, h, w) + z = self.main_module.encode_first_stage(x) + _, c_z, h_z, w_z = z.shape + z = z.reshape(n, -1, c_z, h_z, w_z) + z = z.transpose(0, 1, 3, 4, 2) + t = ops.randint(0, self.main_module.num_timesteps, (n,)).long() + zc = self.main_module.cond_stage_forward(condition) + loss = self.main_module.p_losses(z, zc, t, noise=None) + return loss diff --git a/MindEarth/applications/nowcasting/PreDiff/src/diffusion/time_embed.py b/MindEarth/applications/nowcasting/PreDiff/src/diffusion/time_embed.py new file mode 100644 index 000000000..1642d0c29 --- /dev/null +++ b/MindEarth/applications/nowcasting/PreDiff/src/diffusion/time_embed.py @@ -0,0 +1,270 @@ +# Copyright 2023 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +"TimeEmbedLayer and TimeEmbedResBlock" +from mindspore import nn, ops + +from src.utils import conv_nd, apply_initialization, avg_pool_nd + + +class Upsample(nn.Cell): + """ + An upsampling layer with an optional convolution. + :param channels: channels in the inputs and outputs. + :param use_conv: a bool determining if a convolution is applied. + :param dims: determines if the signal is 1D, 2D, or 3D. If 3D, then + upsampling occurs in the inner-two dimensions. + """ + + def __init__(self, channels, use_conv, dims=2, out_channels=None, padding=1): + super().__init__() + self.channels = channels + self.out_channels = out_channels or channels + self.use_conv = use_conv + self.dims = dims + if use_conv: + self.conv = conv_nd( + dims, self.channels, self.out_channels, 3, padding=padding + ) + + def construct(self, x): + '''upsample forward''' + assert x.shape[1] == self.channels + if self.dims == 3: + x = ops.interpolate( + x, (x.shape[2], x.shape[3] * 2, x.shape[4] * 2), mode="nearest" + ) + else: + x = ops.interpolate(x, scale_factor=2, mode="nearest") + if self.use_conv: + x = self.conv(x) + return x + + +class Downsample(nn.Cell): + """ + A downsampling layer with an optional convolution. + :param channels: channels in the inputs and outputs. + :param use_conv: a bool determining if a convolution is applied. + :param dims: determines if the signal is 1D, 2D, or 3D. If 3D, then + downsampling occurs in the inner-two dimensions. + """ + + def __init__(self, channels, use_conv, dims=2, out_channels=None, padding=1): + super().__init__() + self.channels = channels + self.out_channels = out_channels or channels + self.use_conv = use_conv + self.dims = dims + stride = 2 if dims != 3 else (1, 2, 2) + if use_conv: + self.op = conv_nd( + dims, + self.channels, + self.out_channels, + 3, + stride=stride, + padding=padding, + ) + else: + assert self.channels == self.out_channels + self.op = avg_pool_nd(dims, kernel_size=stride, stride=stride) + + def construct(self, x): + assert x.shape[1] == self.channels + return self.op(x) + + +class TimeEmbedLayer(nn.Cell): + """ + A neural network layer that embeds time information into a higher-dimensional space. + + The layer consists of two linear layers separated by a SiLU activation function. + It takes an input tensor with a specified number of base channels and transforms it + into a tensor with a specified number of time embedding channels. + Parameters: + - base_channels (int): Number of channels in the input tensor. + - time_embed_channels (int): Number of channels in the output embedded tensor. + - linear_init_mode (str, optional): Initialization mode for the linear layers. Defaults to "0". + """ + + def __init__(self, base_channels, time_embed_channels, linear_init_mode="0"): + super().__init__() + self.layer = nn.SequentialCell( + nn.Dense(base_channels, time_embed_channels), + nn.SiLU(), + nn.Dense(time_embed_channels, time_embed_channels), + ) + self.linear_init_mode = linear_init_mode + + def construct(self, x): + """Forward pass through the TimeEmbedLayer.""" + return self.layer(x) + + def reset_parameters(self): + """Reset the parameters of the linear layers in the TimeEmbedLayer.""" + apply_initialization(self.layer[0], linear_mode=self.linear_init_mode) + apply_initialization(self.layer[2], linear_mode=self.linear_init_mode) + + +class TimeEmbedResBlock(nn.Cell): + r""" + Modifications: + 1. Change GroupNorm32 to use arbitrary `num_groups`. + 2. Add method `self.reset_parameters()`. + 3. Use gradient ckpt from mindspore instead of the stable diffusion implementation + 4. If no input time embed, it degrades to res block. + """ + + def __init__( + self, + channels, + dropout, + emb_channels=None, + out_channels=None, + use_conv=False, + use_embed=True, + use_scale_shift_norm=False, + dims=2, + up=False, + down=False, + norm_groups=32, + ): + r""" + Parameters + ---------- + channels + dropout + emb_channels + out_channels + use_conv + use_embed: bool + include `emb` as input in `self.forward()` + use_scale_shift_norm: bool + take effect only when `use_embed == True` + dims + up + down + norm_groups + """ + super().__init__() + self.channels = channels + self.dropout = dropout + self.use_embed = use_embed + if use_embed: + assert isinstance(emb_channels, int) + self.emb_channels = emb_channels + self.out_channels = out_channels or channels + self.use_conv = use_conv + self.use_scale_shift_norm = use_scale_shift_norm + + self.in_layers = nn.SequentialCell( + nn.GroupNorm( + num_groups=norm_groups if channels % norm_groups == 0 else channels, + num_channels=channels, + ), + nn.SiLU(), + conv_nd(dims, channels, self.out_channels, 3, padding=1), + ) + self.updown = up or down + + if up: + self.h_upd = Upsample(channels, False, dims) + self.x_upd = Upsample(channels, False, dims) + elif down: + self.h_upd = Downsample(channels, False, dims) + self.x_upd = Downsample(channels, False, dims) + else: + self.h_upd = self.x_upd = nn.Identity() + + if use_embed: + self.emb_layers = nn.SequentialCell( + nn.SiLU(), + nn.Dense( + in_channels=emb_channels, + out_channels=( + 2 * self.out_channels + if use_scale_shift_norm + else self.out_channels + ), + ), + ) + self.out_layers = nn.SequentialCell( + nn.GroupNorm( + num_groups=( + norm_groups + if self.out_channels % norm_groups == 0 + else self.out_channels + ), + num_channels=self.out_channels, + ), + nn.SiLU(), + nn.Dropout(p=dropout), + # nn.Dropout(p=0), + conv_nd(dims, self.out_channels, self.out_channels, 3, padding=1), + ) + if self.out_channels == channels: + self.skip_connection = nn.Identity() + elif use_conv: + self.skip_connection = conv_nd( + dims, channels, self.out_channels, 3, padding=1 + ) + else: + self.skip_connection = conv_nd(dims, channels, self.out_channels, 1) + + self.reset_parameters() + + def construct(self, x, emb=None): + """ + Apply the block to a Tensor, conditioned on a timestep embedding. + + Parameters + ---------- + x: an [N x C x ...] Tensor of features. + emb: an [N x emb_channels] Tensor of timestep embeddings. + + Returns + ------- + out: an [N x C x ...] Tensor of outputs. + """ + if self.updown: + in_rest, in_conv = self.in_layers[:-1], self.in_layers[-1] + h = in_rest(x) + h = self.h_upd(h) + x = self.x_upd(x) + h = in_conv(h) + else: + h = self.in_layers(x) + if self.use_embed: + emb_out = self.emb_layers(emb).astype(h.dtype) + while len(emb_out.shape) < len(h.shape): + emb_out = emb_out[..., None] + if self.use_scale_shift_norm: + out_norm, out_rest = self.out_layers[0], self.out_layers[1:] + scale, shift = ops.chunk(emb_out, 2, axis=1) + h = out_norm(h) * (1 + scale) + shift + h = out_rest(h) + else: + h = h + emb_out + h = self.out_layers(h) + else: + h = self.out_layers(h) + n = self.skip_connection(x) + h + return n + + def reset_parameters(self): + for _, cell in self.cells_and_names(): + apply_initialization(cell) + for p in self.out_layers[-1].get_parameters(): + p.set_data(ops.zeros(p.shape, dtype=p.dtype)) diff --git a/MindEarth/applications/nowcasting/PreDiff/src/knowledge_alignment/__init__.py b/MindEarth/applications/nowcasting/PreDiff/src/knowledge_alignment/__init__.py new file mode 100644 index 000000000..eeb2f631d --- /dev/null +++ b/MindEarth/applications/nowcasting/PreDiff/src/knowledge_alignment/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2023 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this filepio[] except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================ +"""init""" diff --git a/MindEarth/applications/nowcasting/PreDiff/src/knowledge_alignment/alignment.py b/MindEarth/applications/nowcasting/PreDiff/src/knowledge_alignment/alignment.py new file mode 100644 index 000000000..f1a6785b3 --- /dev/null +++ b/MindEarth/applications/nowcasting/PreDiff/src/knowledge_alignment/alignment.py @@ -0,0 +1,566 @@ +# Copyright 2023 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +"NoisyCuboidTransformerEncoder" +import math +import numpy as np + +import mindspore as ms +from mindspore import nn, ops, mint +from mindspore.common.initializer import TruncatedNormal + +from src.utils import ( + conv_nd, + zero_module, + timestep_embedding, + apply_initialization, + round_to, + self_axial +) +from src.diffusion import ( + PatchMerging3D, + PosEmbed, + StackCuboidSelfAttentionBlock, + TimeEmbedLayer, + TimeEmbedResBlock, +) + + +class QKVAttention(nn.Cell): + """ + A module which performs QKV attention and splits in a different order. + """ + + def __init__(self, n_heads): + super().__init__() + self.n_heads = n_heads + + def construct(self, qkv): + """ + Apply QKV attention. + :param qkv: an [N x (3 * H * C) x T] tensor of Qs, Ks, and Vs. + :return: an [N x (H * C) x T] tensor after attention. + """ + bs, width, length = qkv.shape + assert width % (3 * self.n_heads) == 0 + ch = width // (3 * self.n_heads) + q, k, v = qkv.chunk(3, dim=1) + scale = 1 / math.sqrt(math.sqrt(ch)) + q_transposed = ops.transpose( + (q * scale).view(bs * self.n_heads, ch, length), (0, 2, 1) + ) + k_reshaped = (k * scale).view(bs * self.n_heads, ch, length) + weight = ops.BatchMatMul()(q_transposed, k_reshaped) + weight = nn.Softmax(axis=-1)(weight.float()).type(weight.dtype) + weight_transposed = ops.transpose(weight, (0, 2, 1)) + v_reshaped = v.reshape(bs * self.n_heads, ch, length) + a = ops.BatchMatMul()(v_reshaped, weight_transposed) + return a.reshape(bs, -1, length) + + +class AttentionPool3d(nn.Cell): + """ + Adapted from CLIP: https://github.com/openai/CLIP/blob/main/clip/model.py + """ + + def __init__( + self, + data_dim: int, + embed_dim: int, + num_heads: int, + output_dim: int = None, + init_mode: str = "0", + ): + r""" + Parameters + ---------- + data_dim: int + e.g. T*H*W if data is 3D + embed_dim: int + input data channels + num_heads: int + output_dim: int + """ + super().__init__() + self.positional_embedding = ms.Parameter( + ops.randn(embed_dim, data_dim + 1) / embed_dim**0.5 + ) + self.qkv_proj = conv_nd(1, embed_dim, 3 * embed_dim, 1) + self.c_proj = conv_nd(1, embed_dim, output_dim or embed_dim, 1) + self.num_heads = num_heads + self.attention = QKVAttention(self.num_heads) + self.init_mode = init_mode + + def construct(self, x): + r""" + + Parameters + ---------- + x: ms.Tensor + layout = "NCTHW" + + Returns + ------- + ret: ms.Tensor + layout = "NC" + """ + b, c, _ = x.shape + x = x.reshape(b, c, -1) + x = mint.cat([x.mean(axis=-1, keep_dims=True), x], dim=-1) + x = x + self.positional_embedding[None, :, :].to(x.dtype) + x = self.qkv_proj(x) + x = self.attention(x) + x = self.c_proj(x) + return x[:, :, 0] + + def reset_parameters(self): + '''set parameters''' + apply_initialization(self.qkv_proj, conv_mode="0") + apply_initialization(self.c_proj, conv_mode=self.init_mode) + + +class NoisyCuboidTransformerEncoder(nn.Cell): + r""" + Half U-Net style CuboidTransformerEncoder that parametrizes `U(z_t, t, ...)`. + It takes `x_t`, `t` as input. + The conditioning can be concatenated to the input like the U-Net in FVD paper. + + For each block, we apply the StackCuboidSelfAttention. The final block state is read out by a pooling layer. + + x --> attn --> downscale --> ... --> poll --> out + + Besides, we insert the embeddings of the timesteps `t` before each cuboid attention blocks. + """ + + def __init__( + self, + input_shape=None, + out_channels=1, + base_units=128, + block_units=None, + scale_alpha=1.0, + depth=None, + downsample=2, + downsample_type="patch_merge", + use_attn_pattern=None, + block_cuboid_size=None, + block_cuboid_strategy=None, + block_cuboid_shift_size=None, + num_heads=4, + attn_drop=0.0, + proj_drop=0.0, + ffn_drop=0.0, + ffn_activation="gelu", + gated_ffn=False, + norm_layer="layer_norm", + use_inter_ffn=True, + hierarchical_pos_embed=False, + padding_type="zeros", + use_relative_pos=True, + self_attn_use_final_proj=True, + # global vectors + num_global_vectors=0, + use_global_vector_ffn=True, + use_global_self_attn=False, + separate_global_qkv=False, + global_dim_ratio=1, + # initialization + attn_linear_init_mode="0", + ffn_linear_init_mode="0", + ffn2_linear_init_mode="2", + attn_proj_linear_init_mode="2", + conv_init_mode="0", + down_linear_init_mode="0", + global_proj_linear_init_mode="2", + norm_init_mode="0", + # timestep embedding for diffusion + time_embed_channels_mult=4, + time_embed_use_scale_shift_norm=False, + time_embed_dropout=0.0, + # readout + pool: str = "attention", + readout_seq: bool = True, + t_out: int = None, + ): + super().__init__() + # initialization mode + self.attn_linear_init_mode = attn_linear_init_mode + self.ffn_linear_init_mode = ffn_linear_init_mode + self.ffn2_linear_init_mode = ffn2_linear_init_mode + self.attn_proj_linear_init_mode = attn_proj_linear_init_mode + self.conv_init_mode = conv_init_mode + self.down_linear_init_mode = down_linear_init_mode + self.global_proj_linear_init_mode = global_proj_linear_init_mode + self.norm_init_mode = norm_init_mode + + self.input_shape = input_shape + self.out_channels = out_channels + self.num_blocks = len(depth) + self.depth = depth + self.base_units = base_units + self.scale_alpha = scale_alpha + self.downsample = downsample + self.downsample_type = downsample_type + if not isinstance(downsample, (tuple, list)): + downsample = (1, downsample, downsample) + if block_units is None: + block_units = [ + round_to(base_units * int((max(downsample) ** scale_alpha) ** i), 4) + for i in range(self.num_blocks) + ] + else: + assert len(block_units) == self.num_blocks and block_units[0] == base_units + self.block_units = block_units + self.hierarchical_pos_embed = hierarchical_pos_embed + self.num_global_vectors = num_global_vectors + use_global_vector = num_global_vectors > 0 + self.use_global_vector = use_global_vector + self.global_dim_ratio = global_dim_ratio + self.use_global_vector_ffn = use_global_vector_ffn + + self.time_embed_channels_mult = time_embed_channels_mult + self.time_embed_channels = self.block_units[0] * time_embed_channels_mult + self.time_embed_use_scale_shift_norm = time_embed_use_scale_shift_norm + self.time_embed_dropout = time_embed_dropout + self.pool = pool + self.readout_seq = readout_seq + self.t_out = t_out + + if self.use_global_vector: + self.init_global_vectors = ms.Parameter( + mint.zeros((self.num_global_vectors, global_dim_ratio * base_units)) + ) + + _, h_in, w_in, _ = input_shape + self.first_proj = TimeEmbedResBlock( + channels=input_shape[-1], + emb_channels=None, + dropout=proj_drop, + out_channels=self.base_units, + use_conv=False, + use_embed=False, + use_scale_shift_norm=False, + dims=3, + up=False, + down=False, + ) + self.pos_embed = PosEmbed( + embed_dim=base_units, + max_t=input_shape[0], + max_h=h_in, + max_w=w_in, + ) + + # diffusion time embed + self.time_embed = TimeEmbedLayer( + base_channels=self.block_units[0], + time_embed_channels=self.time_embed_channels, + ) + if self.num_blocks > 1: + if downsample_type == "patch_merge": + self.downsample_layers = nn.CellList( + [ + PatchMerging3D( + dim=self.block_units[i], + downsample=downsample, + padding_type=padding_type, + out_dim=self.block_units[i + 1], + linear_init_mode=down_linear_init_mode, + norm_init_mode=norm_init_mode, + ) + for i in range(self.num_blocks - 1) + ] + ) + else: + raise NotImplementedError + if self.use_global_vector: + self.down_layer_global_proj = nn.CellList( + [ + mint.nn.Linear( + in_features=global_dim_ratio * self.block_units[i], + out_features=global_dim_ratio * self.block_units[i + 1], + ) + for i in range(self.num_blocks - 1) + ] + ) + if self.hierarchical_pos_embed: + self.down_hierarchical_pos_embed_l = nn.CellList( + [ + PosEmbed( + embed_dim=self.block_units[i], + max_t=self.mem_shapes[i][0], + max_h=self.mem_shapes[i][1], + max_w=self.mem_shapes[i][2], + ) + for i in range(self.num_blocks - 1) + ] + ) + + if use_attn_pattern: + block_attn_patterns = self.depth + block_cuboid_size = [] + block_cuboid_strategy = [] + block_cuboid_shift_size = [] + for idx, _ in enumerate(block_attn_patterns): + cuboid_size, strategy, shift_size = self_axial(self.mem_shapes[idx]) + block_cuboid_size.append(cuboid_size) + block_cuboid_strategy.append(strategy) + block_cuboid_shift_size.append(shift_size) + else: + if not isinstance(block_cuboid_size[0][0], (list, tuple)): + block_cuboid_size = [block_cuboid_size for _ in range(self.num_blocks)] + else: + assert ( + len(block_cuboid_size) == self.num_blocks + ), f"Incorrect input format! Received block_cuboid_size={block_cuboid_size}" + + if not isinstance(block_cuboid_strategy[0][0], (list, tuple)): + block_cuboid_strategy = [ + block_cuboid_strategy for _ in range(self.num_blocks) + ] + else: + assert ( + len(block_cuboid_strategy) == self.num_blocks + ), f"Incorrect input format! Received block_strategy={block_cuboid_strategy}" + + if not isinstance(block_cuboid_shift_size[0][0], (list, tuple)): + block_cuboid_shift_size = [ + block_cuboid_shift_size for _ in range(self.num_blocks) + ] + else: + assert ( + len(block_cuboid_shift_size) == self.num_blocks + ), f"Incorrect input format! Received block_shift_size={block_cuboid_shift_size}" + self.block_cuboid_size = block_cuboid_size + self.block_cuboid_strategy = block_cuboid_strategy + self.block_cuboid_shift_size = block_cuboid_shift_size + + # cuboid self attention blocks + down_self_blocks = [] + # ResBlocks that incorporate `time_embed` + down_time_embed_blocks = [] + for i in range(self.num_blocks): + down_time_embed_blocks.append( + TimeEmbedResBlock( + channels=self.mem_shapes[i][-1], + emb_channels=self.time_embed_channels, + dropout=self.time_embed_dropout, + out_channels=self.mem_shapes[i][-1], + use_conv=False, + use_embed=True, + use_scale_shift_norm=self.time_embed_use_scale_shift_norm, + dims=3, + up=False, + down=False, + ) + ) + + ele_depth = depth[i] + + stack_cuboid_blocks = [ + StackCuboidSelfAttentionBlock( + dim=self.mem_shapes[i][-1], + num_heads=num_heads, + block_cuboid_size=block_cuboid_size[i], + block_strategy=block_cuboid_strategy[i], + block_shift_size=block_cuboid_shift_size[i], + attn_drop=attn_drop, + proj_drop=proj_drop, + ffn_drop=ffn_drop, + activation=ffn_activation, + gated_ffn=gated_ffn, + norm_layer=norm_layer, + use_inter_ffn=use_inter_ffn, + padding_type=padding_type, + use_global_vector=use_global_vector, + use_global_vector_ffn=use_global_vector_ffn, + use_global_self_attn=use_global_self_attn, + separate_global_qkv=separate_global_qkv, + global_dim_ratio=global_dim_ratio, + use_relative_pos=use_relative_pos, + use_final_proj=self_attn_use_final_proj, + # initialization + attn_linear_init_mode=attn_linear_init_mode, + ffn_linear_init_mode=ffn_linear_init_mode, + ffn2_linear_init_mode=ffn2_linear_init_mode, + attn_proj_linear_init_mode=attn_proj_linear_init_mode, + norm_init_mode=norm_init_mode, + ) + for _ in range(ele_depth) + ] + down_self_blocks.append(nn.CellList(stack_cuboid_blocks)) + + self.down_self_blocks = nn.CellList(down_self_blocks) + self.down_time_embed_blocks = nn.CellList(down_time_embed_blocks) + + out_shape = self.mem_shapes[-1] + cuboid_out_channels = out_shape[-1] + if pool == "adaptive": + self.out = nn.SequentialCell( + nn.GroupNorm(min(cuboid_out_channels, 32), cuboid_out_channels), + nn.SiLU(), + nn.AdaptiveAvgPool2d((1, 1)), + zero_module(conv_nd(2, cuboid_out_channels, out_channels, 1)), + nn.Flatten(), + ) + elif pool == "attention": + if readout_seq: + data_dim = np.prod(out_shape[1:-1]).item() + num_global_vectors + else: + data_dim = np.prod(out_shape[:-1]).item() + num_global_vectors + self.out = nn.SequentialCell( + nn.GroupNorm(min(cuboid_out_channels, 32), cuboid_out_channels), + nn.SiLU(), + AttentionPool3d( + data_dim, + cuboid_out_channels, + num_heads, + out_channels, + init_mode="0", + ), + ) + elif pool == "spatial": + self.out = nn.SequentialCell( + mint.nn.Linear(self._feature_size, 2048), + mint.nn.ReLU(), + mint.nn.Linear(2048, out_channels), + ) + elif pool == "spatial_v2": + self.out = nn.SequentialCell( + mint.nn.Linear(self._feature_size, 2048), + mint.nn.GroupNorm(2048, 2048), + nn.SiLU(), + mint.nn.Linear(2048, out_channels), + ) + else: + raise NotImplementedError(f"Unexpected {pool} pooling") + + self.reset_parameters() + + def reset_parameters(self): + """set parameters""" + if self.num_global_vectors > 0: + TruncatedNormal(self.init_global_vectors, sigma=0.02) + self.first_proj.reset_parameters() + self.pos_embed.reset_parameters() + # inner U-Net + for block in self.down_self_blocks: + for m in block: + m.reset_parameters() + for m in self.down_time_embed_blocks: + m.reset_parameters() + if self.num_blocks > 1: + for m in self.downsample_layers: + m.reset_parameters() + if self.use_global_vector: + apply_initialization( + self.down_layer_global_proj, + linear_mode=self.global_proj_linear_init_mode, + ) + if self.hierarchical_pos_embed: + for m in self.down_hierarchical_pos_embed_l: + m.reset_parameters() + if self.pool == "attention": + apply_initialization(self.out[0], norm_mode=self.norm_init_mode) + self.out[2].reset_parameters() + else: + raise NotImplementedError + + def transpose_and_first_proj(self, x, batch_size): + """transpose and first_proj""" + x = x.transpose(0, 4, 1, 2, 3) + x = self.first_proj(x) + x = x.transpose(0, 2, 3, 4, 1) + if self.use_global_vector: + global_vectors = self.init_global_vectors.broadcast_to( + batch_size, + self.num_global_vectors, + self.global_dim_ratio * self.base_units, + ) + return x, global_vectors + return x, None + + @property + def mem_shapes(self): + """Get the shape of the output memory based on the input shape. This can be used for constructing the decoder. + + Returns + ------- + mem_shapes + A list of shapes of the output memory + """ + inner_data_shape = tuple(self.input_shape)[:3] + (self.base_units,) + if self.num_blocks == 1: + return [inner_data_shape] + mem_shapes = [inner_data_shape] + curr_shape = inner_data_shape + for down_layer in self.downsample_layers: + curr_shape = down_layer.get_out_shape(curr_shape) + mem_shapes.append(curr_shape) + return mem_shapes + + def construct(self, x, t): + """ + Forward pass through the NoisyCuboidTransformerEncoder. + + Parameters: + - x (Tensor): Input tensor of shape (batch_size, seq_in, H, W, C). + - t (Tensor): Timestep tensor. + + Returns: + - Tensor: Output tensor after processing through the encoder. + """ + batch_size, seq_in, _, _, _ = x.shape + x, global_vectors = self.transpose_and_first_proj(x, batch_size) + x = self.pos_embed(x) + t_emb = self.time_embed(timestep_embedding(t, self.block_units[0])) + for i in range(self.num_blocks): + if i > 0: + x = self.downsample_layers[i - 1](x) + if self.hierarchical_pos_embed: + x = self.down_hierarchical_pos_embed_l[i - 1](x) + if self.use_global_vector: + global_vectors = self.down_layer_global_proj[i - 1](global_vectors) + for idx in range(self.depth[i]): + x = x.transpose(0, 4, 1, 2, 3) + x = self.down_time_embed_blocks[i](x, t_emb) + x = x.transpose(0, 2, 3, 4, 1) + if self.use_global_vector: + x, global_vectors = self.down_self_blocks[i][idx](x, global_vectors) + else: + x = self.down_self_blocks[i][idx](x) + + if self.readout_seq: + if self.t_out is not None: + seq_in = self.t_out + start_idx = x.shape[1] - self.t_out + x = x[:, start_idx:, ...] + out = x.transpose(0, 1, 4, 2, 3) + b_out, t_out, c_out, h_out, w_out = out.shape + out = out.reshape(b_out * t_out, c_out, h_out * w_out) + if self.num_global_vectors > 0: + out_global = global_vectors.tile((seq_in, 1, 1)) + out_global = out_global.transpose(0, 2, 1) + out = mint.cat([out, out_global], dim=2) + out = self.out(out) + out = out.reshape(batch_size, seq_in, -1) + else: + out = x.transpose(0, 4, 1, 2, 3) + b_out, c_out, t_out, h_out, w_out = out.shape + out = out.reshape(b_out, c_out, t_out * h_out * w_out) + if self.num_global_vectors > 0: + out_global = global_vectors.transpose(0, 2, 1) + out = mint.cat([out, out_global], dim=2) + out = self.out(out) + return out diff --git a/MindEarth/applications/nowcasting/PreDiff/src/knowledge_alignment/alignment_net.py b/MindEarth/applications/nowcasting/PreDiff/src/knowledge_alignment/alignment_net.py new file mode 100644 index 000000000..3cfeee2e2 --- /dev/null +++ b/MindEarth/applications/nowcasting/PreDiff/src/knowledge_alignment/alignment_net.py @@ -0,0 +1,119 @@ +# Copyright 2023 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +"alignment main model" +from typing import Dict, Any + +import mindspore +from mindspore import mint, ops + +from .alignment import NoisyCuboidTransformerEncoder + + +class AvgIntensityAlignment: + """ + A class for intensity alignment using a NoisyCuboidTransformerEncoder model to guide latent space adjustments. + """ + + def __init__( + self, + guide_scale: float = 1.0, + model_args: Dict[str, Any] = None, + model_ckpt_path: str = None, + ): + r""" + + Parameters + ---------- + alignment_type: str + guide_scale: float + model_type: str + model_args: Dict[str, Any] + model_ckpt_path: str + if not None, load the model from the checkpoint + """ + super().__init__() + self.guide_scale = guide_scale + if model_args is None: + model_args = {} + self.model = NoisyCuboidTransformerEncoder(**model_args) + self.load_ckpt(model_ckpt_path) + + def load_ckpt(self, model_ckpt_path): + if model_ckpt_path is not None: + param_dict = mindspore.load_checkpoint(model_ckpt_path) + param_not_load, _ = mindspore.load_param_into_net(self.model, param_dict) + print("NoisyCuboidTransformerEncoder param_not_load:", param_not_load) + + def get_sample_align_fn(self, sample_align_model): + """get_sample_align_fn""" + + def sample_align_fn(x, *args, **kwargs): + def forward_fn(x_in): + x_stop = ops.stop_gradient(x_in) + return sample_align_model(x_stop, *args, **kwargs) + + grad_fn = mindspore.grad(forward_fn, grad_position=0) + gradient = grad_fn(x) + return gradient + + return sample_align_fn + + def alignment_fn(self, zt, t, **kwargs): + r""" + transform the learned model to the final guidance \mathcal{F}. + + Parameters + ---------- + zt: ms.Tensor + noisy latent z + t: ms.Tensor + timestamp + y: ms.Tensor + context sequence in pixel space + zc: ms.Tensor + encoded context sequence in latente space + kwargs: Dict[str, Any] + auxiliary knowledge for guided generation + `avg_x_gt`: float is required. + Returns + ------- + ret: ms.Tensor + """ + pred = self.model(zt, t) + target = kwargs.get("avg_x_gt") + pred = pred.mean(axis=1) + ret = mint.linalg.vector_norm(pred - target, ord=2) + return ret + + def get_mean_shift(self, zt, t, y=None, zc=None, **kwargs): + r""" + Parameters + ---------- + zt: ms.Tensor + noisy latent z + t: ms.Tensor + timestamp + y: ms.Tensor + context sequence in pixel space + zc: ms.Tensor + encoded context sequence in latente space + Returns + ------- + ret: ms.Tensor + \nabla_zt U + """ + grad_fn = self.get_sample_align_fn(self.alignment_fn) + grad = grad_fn(zt, t, y=y, zc=zc, **kwargs) + return self.guide_scale * grad diff --git a/MindEarth/applications/nowcasting/PreDiff/src/sevir_dataset.py b/MindEarth/applications/nowcasting/PreDiff/src/sevir_dataset.py new file mode 100644 index 000000000..d0fca3d1c --- /dev/null +++ b/MindEarth/applications/nowcasting/PreDiff/src/sevir_dataset.py @@ -0,0 +1,1025 @@ +# Copyright 2023 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +"generate dataset" +import os +import datetime +from typing import Union, Sequence, Tuple +import h5py +import pandas as pd +from einops import rearrange +import numpy as np + +import mindspore as ms +import mindspore.dataset as ds +import mindspore.dataset.vision.transforms as vision +from mindspore import nn, ops, Tensor +from mindspore.dataset.vision import RandomRotation, Rotate +from mindspore.dataset.transforms import Compose + + +SEVIR_DATA_TYPES = ["vis", "ir069", "ir107", "vil", "lght"] +LIGHTING_FRAME_TIMES = np.arange(-120.0, 125.0, 5) * 60 +SEVIR_DATA_SHAPE = { + "lght": (48, 48), +} +PREPROCESS_SCALE_01 = { + "vis": 1, + "ir069": 1, + "ir107": 1, + "vil": 1 / 255, + "lght": 1, +} +PREPROCESS_OFFSET_01 = { + "vis": 0, + "ir069": 0, + "ir107": 0, + "vil": 0, + "lght": 0, +} + + +def path_splitall(path): + """ + Split a file path into all its components. + + Recursively splits the path into directory components and the final file name, + handling both absolute and relative paths across different OS conventions. + + Args: + path (str): Input file path to split + + Returns: + List[str]: List of path components from root to leaf + """ + allparts = [] + while 1: + parts = os.path.split(path) + if parts[0] == path: + allparts.insert(0, parts[0]) + break + elif parts[1] == path: + allparts.insert(0, parts[1]) + break + else: + path = parts[0] + allparts.insert(0, parts[1]) + return allparts + + +def change_layout(data, in_layout="NHWT", out_layout="NHWT"): + """ + Convert data layout between different dimension orderings. + + Handles layout transformations using einops.rearrange, with special handling + for 'C' (channel) dimensions which are treated as singleton dimensions. + + Args: + data (Tensor/ndarray): Input data to transform + in_layout (str): Current dimension order (e.g., "NHWT") + out_layout (str): Target dimension order (e.g., "THWC") + + Returns: + ndarray: Data in new layout with applied transformations + """ + if isinstance(data, ms.Tensor): + data = data.asnumpy() + in_layout = " ".join(in_layout.replace("C", "1")) + out_layout = " ".join(out_layout.replace("C", "1")) + data = rearrange(data, f"{in_layout} -> {out_layout}") + return data + + +class DatasetSEVIR: + """ + SEVIR Dataset class for weather event sequence data. + + Provides data loading and augmentation capabilities for SEVIR (Severe Weather Events Dataset) + with support for different temporal layouts and data preprocessing. + + Attributes: + layout (str): Output data layout configuration + sevir_dataloader (SEVIRDataLoader): Core data loading component + aug_pipeline (AugmentationPipeline): Data augmentation operations + """ + def __init__( + self, + seq_in: int = 25, + raw_seq_in: int = 49, + sample_mode: str = "sequent", + stride: int = 12, + layout: str = "THWC", + ori_layout: str = "NHWT", + split_mode: str = "uneven", + sevir_catalog: Union[str, pd.DataFrame] = None, + sevir_data_dir: str = None, + start_date: datetime.datetime = None, + end_date: datetime.datetime = None, + datetime_filter=None, + catalog_filter="default", + shuffle: bool = False, + shuffle_seed: int = 1, + output_type=np.float32, + preprocess: bool = True, + rescale_method: str = "01", + verbose: bool = False, + aug_mode: str = "0", + ): + super().__init__() + self.layout = layout.replace("C", "1") + self.sevir_dataloader = SEVIRDataLoader( + data_types=[ + "vil", + ], + seq_in=seq_in, + raw_seq_in=raw_seq_in, + sample_mode=sample_mode, + stride=stride, + batch_size=1, + layout=ori_layout, + num_shard=1, + rank=0, + split_mode=split_mode, + sevir_catalog=sevir_catalog, + sevir_data_dir=sevir_data_dir, + start_date=start_date, + end_date=end_date, + datetime_filter=datetime_filter, + catalog_filter=catalog_filter, + shuffle=shuffle, + shuffle_seed=shuffle_seed, + output_type=output_type, + preprocess=preprocess, + rescale_method=rescale_method, + verbose=verbose, + ) + self.aug_mode = aug_mode + self.aug_pipeline = AugmentationPipeline( + self.aug_mode, + self.layout, + ) + + def __getitem__(self, index): + """ + Get processed data sample by index. + + Performs data extraction, augmentation, and layout conversion. + + Args: + index (int): Sample index + + Returns: + ndarray: Processed data in specified layout + """ + data_dict = self.sevir_dataloader.extract_data(index=index) + data = data_dict["vil"] + if self.aug_pipeline is not None: + data = self.aug_pipeline(data_dict) + return data + + def __len__(self): + """len""" + return self.sevir_dataloader.__len__() + + +class SEVIRDataModule(nn.Cell): + """ + DataModule for SEVIR dataset. + + Manages dataset splits (train/val/test), data loading, and augmentation + for training diffusion models on weather event sequences. + + Attributes: + sevir_dir (str): Root directory of SEVIR dataset + batch_size (int): Data loader batch size + num_workers (int): Number of data loader workers + aug_mode (str): Data augmentation configuration + layout (str): Data layout configuration + """ + + def __init__( + self, + seq_in: int = 25, + sample_mode: str = "sequent", + stride: int = 12, + layout: str = "NTHWC", + output_type=np.float32, + preprocess: bool = True, + rescale_method: str = "01", + verbose: bool = False, + aug_mode: str = "0", + dataset_name: str = "sevir", + sevir_dir: str = None, + start_date: Tuple[int] = None, + train_val_split_date: Tuple[int] = (2019, 3, 20), + train_test_split_date: Tuple[int] = (2019, 6, 1), + end_date: Tuple[int] = None, + val_ratio: float = 0.1, + batch_size: int = 1, + num_workers: int = 1, + raw_seq_len: int = 25, + seed: int = 0, + ): + super().__init__() + self.sevir_dir = sevir_dir + self.aug_mode = aug_mode + self.seq_in = seq_in + self.sample_mode = sample_mode + self.stride = stride + self.layout = layout.replace("N", "") + self.output_type = output_type + self.preprocess = preprocess + self.rescale_method = rescale_method + self.verbose = verbose + self.aug_mode = aug_mode + self.batch_size = batch_size + self.num_workers = num_workers + self.seed = seed + self.dataset_name = dataset_name + self.sevir_dir = sevir_dir + self.catalog_path = os.path.join(sevir_dir, "CATALOG.csv") + self.raw_data_dir = os.path.join(sevir_dir, "data") + self.raw_seq_in = raw_seq_len + self.start_date = ( + datetime.datetime(*start_date) if start_date is not None else None + ) + self.train_test_split_date = ( + datetime.datetime(*train_test_split_date) + if train_test_split_date is not None + else None + ) + self.train_val_split_date = ( + datetime.datetime(*train_val_split_date) + if train_val_split_date is not None + else None + ) + self.end_date = datetime.datetime(*end_date) if end_date is not None else None + self.val_ratio = val_ratio + + def setup(self, stage=None) -> None: + """ + Prepare dataset splits for different stages. + + Creates train/val/test splits based on date ranges and configuration. + + Args: + stage (str): Current stage ("fit", "test", etc.) + """ + if stage in (None, "fit"): + print("train") + self.sevir_train_ori = DatasetSEVIR( + sevir_catalog=self.catalog_path, + sevir_data_dir=self.raw_data_dir, + raw_seq_in=self.raw_seq_in, + split_mode="uneven", + shuffle=False, + seq_in=self.seq_in, + stride=self.stride, + sample_mode=self.sample_mode, + layout=self.layout, + start_date=self.start_date, + end_date=self.train_val_split_date, + output_type=self.output_type, + preprocess=self.preprocess, + rescale_method=self.rescale_method, + verbose=self.verbose, + aug_mode=self.aug_mode, + ) + self.sevir_train = ds.GeneratorDataset( + source=self.sevir_train_ori, + column_names="vil", + shuffle=False, + num_parallel_workers=self.num_workers, + ) + self.sevir_train = self.sevir_train.batch(batch_size=self.batch_size) + + if stage in (None, "fit"): + print("val") + self.sevir_val = DatasetSEVIR( + sevir_catalog=self.catalog_path, + sevir_data_dir=self.raw_data_dir, + raw_seq_in=self.raw_seq_in, + split_mode="uneven", + shuffle=False, + seq_in=self.seq_in, + stride=self.stride, + sample_mode=self.sample_mode, + layout=self.layout, + start_date=self.train_val_split_date, + end_date=self.train_test_split_date, + output_type=self.output_type, + preprocess=self.preprocess, + rescale_method=self.rescale_method, + verbose=self.verbose, + aug_mode=self.aug_mode, + ) + self.sevir_val = ds.GeneratorDataset( + source=self.sevir_val, + column_names="vil", + shuffle=False, + num_parallel_workers=self.num_workers, + ) + self.sevir_val = self.sevir_val.batch(batch_size=self.batch_size) + + if stage in (None, "test"): + print("test") + self.sevir_test = DatasetSEVIR( + sevir_catalog=self.catalog_path, + sevir_data_dir=self.raw_data_dir, + raw_seq_in=self.raw_seq_in, + split_mode="uneven", + shuffle=False, + seq_in=self.seq_in, + stride=self.stride, + sample_mode=self.sample_mode, + layout=self.layout, + start_date=self.train_test_split_date, + end_date=self.end_date, + output_type=self.output_type, + preprocess=self.preprocess, + rescale_method=self.rescale_method, + verbose=self.verbose, + aug_mode=self.aug_mode, + ) + self.sevir_test = ds.GeneratorDataset( + source=self.sevir_test, + column_names="vil", + shuffle=False, + num_parallel_workers=self.num_workers, + ) + self.sevir_test = self.sevir_test.batch(batch_size=self.batch_size) + + @property + def num_train_samples(self): + """Get number of training samples""" + return len(self.sevir_train_ori) + + @property + def num_val_samples(self): + """Get number of validation samples""" + return len(self.sevir_val) + + @property + def num_test_samples(self): + """Get number of test samples""" + return len(self.sevir_test) + + +class SEVIRDataLoader: + r""" + DataLoader that loads SEVIR sequences, and spilts each event + into segments according to specified sequence length. + """ + + def __init__( + self, + data_types: Sequence[str] = None, + seq_in: int = 49, + raw_seq_in: int = 49, + sample_mode: str = "sequent", + stride: int = 12, + batch_size: int = 1, + layout: str = "NHWT", + num_shard: int = 1, + rank: int = 0, + split_mode: str = "uneven", + sevir_catalog: Union[str, pd.DataFrame] = None, + sevir_data_dir: str = None, + start_date: datetime.datetime = None, + end_date: datetime.datetime = None, + datetime_filter=None, + catalog_filter="default", + shuffle: bool = False, + shuffle_seed: int = 1, + output_type=np.float32, + preprocess: bool = True, + rescale_method: str = "01", + verbose: bool = False, + ): + super().__init__() + + # configs which should not be modified + self.lght_frame_times = LIGHTING_FRAME_TIMES + self.data_shape = SEVIR_DATA_SHAPE + + self.raw_seq_in = raw_seq_in + assert ( + seq_in <= self.raw_seq_in + ), f"seq_in must not be larger than raw_seq_in = {raw_seq_in}, got {seq_in}." + self.seq_in = seq_in + assert sample_mode in [ + "random", + "sequent", + ], f"Invalid sample_mode = {sample_mode}, must be 'random' or 'sequent'." + self.sample_mode = sample_mode + self.stride = stride + self.batch_size = batch_size + valid_layout = ("NHWT", "NTHW", "NTCHW", "NTHWC", "TNHW", "TNCHW") + if layout not in valid_layout: + raise ValueError( + f"Invalid layout = {layout}! Must be one of {valid_layout}." + ) + self.layout = layout + self.num_shard = num_shard + self.rank = rank + valid_split_mode = ("ceil", "floor", "uneven") + if split_mode not in valid_split_mode: + raise ValueError( + f"Invalid split_mode: {split_mode}! Must be one of {valid_split_mode}." + ) + self.split_mode = split_mode + self._samples = None + self._hdf_files = {} + self.data_types = data_types + if isinstance(sevir_catalog, str): + self.catalog = pd.read_csv( + sevir_catalog, parse_dates=["time_utc"], low_memory=False + ) + else: + self.catalog = sevir_catalog + self.sevir_data_dir = sevir_data_dir + self.datetime_filter = datetime_filter + self.catalog_filter = catalog_filter + self.start_date = start_date + self.end_date = end_date + self.shuffle = shuffle + self.shuffle_seed = int(shuffle_seed) + self.output_type = output_type + self.preprocess = preprocess + self.rescale_method = rescale_method + self.verbose = verbose + + if self.start_date is not None: + self.catalog = self.catalog[self.catalog.time_utc > self.start_date] + if self.end_date is not None: + self.catalog = self.catalog[self.catalog.time_utc <= self.end_date] + if self.datetime_filter: + self.catalog = self.catalog[self.datetime_filter(self.catalog.time_utc)] + + if self.catalog_filter is not None: + if self.catalog_filter == "default": + self.catalog_filter = lambda c: c.pct_missing == 0 + self.catalog = self.catalog[self.catalog_filter(self.catalog)] + + self._compute_samples() + print(self._samples.head(n=10)) + print("len", len(self._samples)) + self._open_files(verbose=self.verbose) + self.reset() + + def _compute_samples(self): + """ + Computes the list of samples in catalog to be used. This sets self._samples + """ + imgt = self.data_types + imgts = set(imgt) + filtcat = self.catalog[ + np.logical_or.reduce([self.catalog.img_type == i for i in imgt]) + ] + filtcat = filtcat.groupby("id").filter( + lambda x: imgts.issubset(set(x["img_type"])) + ) + filtcat = filtcat.groupby("id").filter(lambda x: x.shape[0] == len(imgt)) + self._samples = filtcat.groupby("id").apply( + lambda df: self._df_to_series(df, imgt) + ) + if self.shuffle: + self.shuffle_samples() + + def shuffle_samples(self): + """Shuffle the dataset samples using a fixed random seed for reproducibility.""" + self._samples = self._samples.sample(frac=1, random_state=self.shuffle_seed) + + def _df_to_series(self, df, imgt): + """Convert catalog DataFrame entries to structured format for multi-image types.""" + d = {} + df = df.set_index("img_type") + for i in imgt: + s = df.loc[i] + idx = s.file_index if i != "lght" else s.id + d.update({f"{i}_filename": [s.file_name], f"{i}_index": [idx]}) + + return pd.DataFrame(d) + + def _open_files(self, verbose=True): + """ + Opens HDF files + """ + imgt = self.data_types + hdf_filenames = [] + for t in imgt: + hdf_filenames += list(np.unique(self._samples[f"{t}_filename"].values)) + + print("hdf_filenames", hdf_filenames) + self._hdf_files = {} + for f in hdf_filenames: + print("Opening HDF5 file for reading", f) + if verbose: + print("Opening HDF5 file for reading", f) + self._hdf_files[f] = h5py.File(self.sevir_data_dir + "/" + f, "r") + print("f:", f) + print("self._hdf_files[f]:", self._hdf_files[f]) + + def close(self): + """ + Closes all open file handles + """ + for f in self._hdf_files: + self._hdf_files[f].close() + print("close: ", f) + self._hdf_files = {} + + @property + def num_seq_per_event(self): + """num seq per event""" + return 1 + (self.raw_seq_in - self.seq_in) // self.stride + + @property + def total_num_seq(self): + """ + The total number of sequences within each shard. + Notice that it is not the product of `self.num_seq_per_event` and `self.total_num_event`. + """ + return int(self.num_seq_per_event * self.num_event) + + @property + def total_num_event(self): + """ + The total number of events in the whole dataset, before split into different shards. + """ + return int(self._samples.shape[0]) + + @property + def start_event_idx(self): + """ + The event idx used in certain rank should satisfy event_idx >= start_event_idx + """ + return self.total_num_event // self.num_shard * self.rank + + @property + def end_event_idx(self): + """ + The event idx used in certain rank should satisfy event_idx < end_event_idx + + """ + if self.split_mode == "ceil": + last_start_event_idx = ( + self.total_num_event // self.num_shard * (self.num_shard - 1) + ) + num_event = self.total_num_event - last_start_event_idx + return self.start_event_idx + num_event + if self.split_mode == "floor": + return self.total_num_event // self.num_shard * (self.rank + 1) + if self.rank == self.num_shard - 1: + return self.total_num_event + return self.total_num_event // self.num_shard * (self.rank + 1) + + @property + def num_event(self): + """ + The number of events split into each rank + """ + return self.end_event_idx - self.start_event_idx + + def _read_data(self, row, data): + """ + Iteratively read data into data dict. Finally data[imgt] gets shape (batch_size, height, width, raw_seq_in). + + Parameters + ---------- + row + A series with fields IMGTYPE_filename, IMGTYPE_index, IMGTYPE_time_index. + data + Dict, data[imgt] is a data tensor with shape = (tmp_batch_size, height, width, raw_seq_in). + + Returns + ------- + data + Updated data. Updated shape = (tmp_batch_size + 1, height, width, raw_seq_in). + """ + imgtyps = np.unique([x.split("_")[0] for x in list(row.keys())]) + for t in imgtyps: + fname = row[f"{t}_filename"] + idx = row[f"{t}_index"] + t_slice = slice(0, None) + if t == "lght": + lght_data = self._hdf_files[fname][idx][:] + data_i = self._lght_to_grid(lght_data, t_slice) + else: + data_i = self._hdf_files[fname][t][idx : idx + 1, :, :, t_slice] + data[t] = ( + np.concatenate((data[t], data_i), axis=0) if (t in data) else data_i + ) + + return data + + def _lght_to_grid(self, data, t_slice=slice(0, None)): + """ + Converts Nx5 lightning data matrix into a 2D grid of pixel counts + """ + + out_size = ( + (*self.data_shape["lght"], len(self.lght_frame_times)) + if t_slice.stop is None + else (*self.data_shape["lght"], 1) + ) + if data.shape[0] == 0: + return np.zeros((1,) + out_size, dtype=np.float32) + + x, y = data[:, 3], data[:, 4] + m = np.logical_and.reduce([x >= 0, x < out_size[0], y >= 0, y < out_size[1]]) + data = data[m, :] + if data.shape[0] == 0: + return np.zeros((1,) + out_size, dtype=np.float32) + t = data[:, 0] + if t_slice.stop is not None: + if t_slice.stop > 0: + if t_slice.stop < len(self.lght_frame_times): + tm = np.logical_and( + t >= self.lght_frame_times[t_slice.stop - 1], + t < self.lght_frame_times[t_slice.stop], + ) + else: + tm = t >= self.lght_frame_times[-1] + else: + tm = np.logical_and( + t >= self.lght_frame_times[0], t < self.lght_frame_times[1] + ) + + data = data[tm, :] + z = np.zeros(data.shape[0], dtype=np.int64) + else: + z = np.digitize(t, self.lght_frame_times) - 1 + z[z == -1] = 0 + + x = data[:, 3].astype(np.int64) + y = data[:, 4].astype(np.int64) + + k = np.ravel_multi_index(np.array([y, x, z]), out_size) + n = np.bincount(k, minlength=np.prod(out_size)) + return np.reshape(n, out_size).astype(np.int16)[np.newaxis, :] + + @property + def sample_count(self): + """ + Record how many times self.__next__() is called. + """ + return self._sample_count + + @property + def _curr_event_idx(self): + return self.__curr_event_idx + + @property + def _curr_seq_idx(self): + """ + Used only when self.sample_mode == 'sequent' + """ + return self.__curr_seq_idx + + def _set__curr_event_idx(self, val): + self.__curr_event_idx = val + + def _set__curr_seq_idx(self, val): + """ + Used only when self.sample_mode == 'sequent' + """ + self.__curr_seq_idx = val + + def reset(self, shuffle: bool = None): + """reset""" + self._set__curr_event_idx(val=self.start_event_idx) + self._set__curr_seq_idx(0) + self._sample_count = 0 + if shuffle is None: + shuffle = self.shuffle + if shuffle: + self.shuffle_samples() + + def __len__(self): + """ + Used only when self.sample_mode == 'sequent' + """ + return self.total_num_seq // self.batch_size + + def _load_event_batch(self, event_idx, event_batch_size): + """ + Loads a selected batch of events (not batch of sequences) into memory. + + Parameters + ---------- + idx + event_batch_size + event_batch[i] = all_type_i_available_events[idx:idx + event_batch_size] + Returns + ------- + event_batch + list of event batches. + event_batch[i] is the event batch of the i-th data type. + Each event_batch[i] is a np.ndarray with shape = (event_batch_size, height, width, raw_seq_in) + """ + event_idx_slice_end = event_idx + event_batch_size + pad_size = 0 + if event_idx_slice_end > self.end_event_idx: + pad_size = event_idx_slice_end - self.end_event_idx + event_idx_slice_end = self.end_event_idx + pd_batch = self._samples.iloc[event_idx:event_idx_slice_end] + data = {} + for _, row in pd_batch.iterrows(): + data = self._read_data(row, data) + if pad_size > 0: + event_batch = [] + for t in self.data_types: + pad_shape = [ + pad_size, + ] + list(data[t].shape[1:]) + data_pad = np.concatenate( + ( + data[t].astype(self.output_type), + np.zeros(pad_shape, dtype=self.output_type), + ), + axis=0, + ) + event_batch.append(data_pad) + else: + event_batch = [data[t].astype(self.output_type) for t in self.data_types] + return event_batch + + + def extract_data(self, index): + """ + Extracts a batch of data without any processing. + + Parameters + ---------- + index + The index of the batch to sample. + + Returns + ------- + event_batch + The extracted data from the event batch without any processing. + """ + event_idx = (index * self.batch_size) // self.num_seq_per_event + seq_idx = (index * self.batch_size) % self.num_seq_per_event + num_sampled = 0 + sampled_idx_list = [] + while num_sampled < self.batch_size: + sampled_idx_list.append({"event_idx": event_idx, "seq_idx": seq_idx}) + seq_idx += 1 + if seq_idx >= self.num_seq_per_event: + event_idx += 1 + seq_idx = 0 + num_sampled += 1 + + start_event_idx = sampled_idx_list[0]["event_idx"] + event_batch_size = sampled_idx_list[-1]["event_idx"] - start_event_idx + 1 + + event_batch = self._load_event_batch( + event_idx=start_event_idx, event_batch_size=event_batch_size + ) + ret_dict = {} + for sampled_idx in sampled_idx_list: + batch_slice = [ + sampled_idx["event_idx"] - start_event_idx, + ] + seq_slice = slice( + sampled_idx["seq_idx"] * self.stride, + sampled_idx["seq_idx"] * self.stride + self.seq_in, + ) + for imgt_idx, imgt in enumerate(self.data_types): + sampled_seq = event_batch[imgt_idx][batch_slice, :, :, seq_slice] + if imgt in ret_dict: + ret_dict[imgt] = np.concatenate( + (ret_dict[imgt], sampled_seq), axis=0 + ) + else: + ret_dict.update({imgt: sampled_seq}) + + return ret_dict + + +class AugmentationPipeline: + """Data augmentation pipeline for multi-frame image processing. + """ + def __init__( + self, + aug_mode="0", + layout=None, + ): + self.layout = layout + self.aug_mode = aug_mode + + if aug_mode == "0": + self.aug = lambda x: x + elif self.aug_mode == "1": + self.aug = Compose( + [ + vision.RandomHorizontalFlip(), + vision.RandomVerticalFlip(), + RandomRotation(degrees=180), + ] + ) + elif aug_mode == "2": + self.aug = Compose( + [ + vision.RandomHorizontalFlip(), + vision.RandomVerticalFlip(), + FixedAngleRotation(angles=[0, 90, 180, 270]), + ] + ) + else: + raise NotImplementedError + + def rearrange_tensor(self, tensor, from_layout, to_layout): + """Permute and reshape tensor dimensions according to layout specifications.""" + return tensor.permute(*tuple(range(len(from_layout)))).reshape(to_layout) + + def __call__(self, data_dict): + """Apply augmentation pipeline to input data dictionary. + + Args: + data_dict (dict): Input data containing "vil" key with tensor data + + Returns: + ms.Tensor: Processed tensor with applied augmentations and layout conversion + """ + data = data_dict["vil"].squeeze(0) + if self.aug_mode != "0": + data = rearrange( + data, + "H W T -> T H W", + ) + data = self.aug(data) + data = rearrange(data, f"{' '.join('THW')} -> {' '.join(self.layout)}") + else: + data = rearrange( + data, + f"{' '.join('HWT')} -> {' '.join(self.layout)}", + ) + + return data + + +class FixedAngleRotation: + """Image augmentation for rotating images by fixed predefined angles. + + Args: + angles (List[int]): List of allowed rotation angles (degrees) + """ + def __init__(self, angles=None): + self.angles = angles + + def __call__(self, img): + """Apply random rotation from predefined angles. + + Args: + img (PIL.Image or mindspore.Tensor): Input image to transform + + Returns: + PIL.Image or mindspore.Tensor: Rotated image with same format as input + """ + angle = np.random.choice(self.angles) + return Rotate(angle)(img) + + +class SEVIRDataset: + """Base dataset class for processing SEVIR data with configurable preprocessing. + + Args: + data_types (Sequence[str], optional): + List of data types to process (e.g., ["vil", "lght"]). Defaults to SEVIR_DATA_TYPES. + layout (str, optional): + Tensor layout specification containing dimensions: + N - batch size + H - height + W - width + T - time/sequence length + C - channel + Defaults to "NHWT". + rescale_method (str, optional): + Data rescaling strategy identifier (e.g., "01" for 0-1 normalization). Defaults to "01". + """ + def __init__( + self, + data_types: Sequence[str] = None, + layout: str = "NHWT", + rescale_method: str = "01", + ): + super().__init__() + if data_types is None: + data_types = SEVIR_DATA_TYPES + else: + assert set(data_types).issubset(SEVIR_DATA_TYPES) + + self.layout = layout + self.data_types = data_types + self.rescale_method = rescale_method + + @staticmethod + def preprocess_data_dict(data_dict, data_types=None, layout="NHWT"): + """ + Parameterss + ---------- + data_dict: Dict[str, Union[np.ndarray, ms.Tensor]] + data_types: Sequence[str] + The data types that we want to rescale. This mainly excludes "mask" from preprocessing. + layout: str + consists of batch_size 'N', seq_in 'T', channel 'C', height 'H', width 'W' + Returns + ------- + data_dict: Dict[str, Union[np.ndarray, ms.Tensor]] + preprocessed data + """ + scale_dict = PREPROCESS_SCALE_01 + offset_dict = PREPROCESS_OFFSET_01 + if data_types is None: + data_types = data_dict.keys() + for key, data in data_dict.items(): + if key in data_types: + if isinstance(data, np.ndarray): + data = data.astype(np.float32) + elif isinstance(data, ms.Tensor): + data = data.float() + else: + raise TypeError + data = change_layout( + data=scale_dict[key] * (data + offset_dict[key]), + in_layout="NHWT", + out_layout=layout, + ) + data_dict[key] = data + return data_dict + + @staticmethod + def data_dict_to_tensor(data_dict, data_types=None): + """ + Convert each element in data_dict to ms.Tensor (copy without grad). + """ + ret_dict = {} + if data_types is None: + data_types = data_dict.keys() + for key, data in data_dict.items(): + if key in data_types: + if isinstance(data, ms.Tensor): + ret_dict[key] = data + elif isinstance(data, np.ndarray): + ret_dict[key] = Tensor.from_numpy(data) + else: + raise ValueError( + f"Invalid data type: {type(data)}. Should be ms.Tensor or np.ndarray" + ) + else: + ret_dict[key] = data + return ret_dict + + def process_data(self, data_dict): + """ + Processes the extracted data. + + Parameters + ---------- + data_dict + The dictionary containing the extracted data. + + Returns + ------- + processed_dict + The dictionary containing the processed data. + """ + split_tensors = data_dict.split(1, axis=0) + processed_tensors = [ + self.process_singledata(tensor) for tensor in split_tensors + ] + tensor_list = [] + for item in processed_tensors: + numpy_array = item["vil"] + tensor = Tensor(numpy_array) + tensor_list.append(tensor) + output_tensor = ops.Stack(axis=0)(tensor_list) + return output_tensor + + def process_singledata(self, singledata): + """process singledata""" + squeezed_tensor = ops.squeeze(singledata, 0) + singledata = {"vil": squeezed_tensor} + processed_dict = self.data_dict_to_tensor( + data_dict=singledata, data_types=self.data_types + ) + processed_dict = self.preprocess_data_dict( + data_dict=processed_dict, + data_types=self.data_types, + layout=self.layout, + ) + return processed_dict diff --git a/MindEarth/applications/nowcasting/PreDiff/src/utils.py b/MindEarth/applications/nowcasting/PreDiff/src/utils.py new file mode 100644 index 000000000..5727573a7 --- /dev/null +++ b/MindEarth/applications/nowcasting/PreDiff/src/utils.py @@ -0,0 +1,1062 @@ +# Copyright 2023 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +"all util" +import math +import os +import shutil +import re +from copy import deepcopy +from inspect import isfunction +from typing import Dict, Any, Callable, Optional, Sequence +import numpy as np +import cv2 +from einops import repeat, rearrange + +import mindspore as ms +from mindspore import ops, mint, nn, Parameter, Tensor +from mindspore.train.metrics.metric import Metric +from mindspore.common.initializer import ( + initializer, + One, + Zero, + HeNormal, + Uniform, + TruncatedNormal, +) +from mindearth.utils import create_logger + + +PREPROCESS_SCALE_01 = { + "vis": 1, + "ir069": 1, + "ir107": 1, + "vil": 1 / 255, + "lght": 1, +} +PREPROCESS_OFFSET_01 = { + "vis": 0, + "ir069": 0, + "ir107": 0, + "vil": 0, + "lght": 0, +} + + +class DiagonalGaussianDistribution(nn.Cell): + """Diagonal Gaussian distribution layer for variational autoencoders. + + This class represents a diagonal Gaussian distribution parameterized by mean and log-variance, + supporting sampling, KL divergence computation, and negative log-likelihood evaluation. + + Attributes: + mean (Tensor): Mean values of the distribution + logvar (Tensor): Clamped log-variance values + std (Tensor): Standard deviation derived from logvar + var (Tensor): Variance derived from logvar + deterministic (bool): Flag indicating deterministic sampling mode + """ + def __init__(self, parameters, deterministic=False): + super().__init__() + self.parameters = parameters + self.mean, self.logvar = ops.chunk(parameters, 2, axis=1) + self.logvar = ops.clamp(self.logvar, -30.0, 20.0) + + self.deterministic = deterministic + self.std = ops.exp(0.5 * self.logvar) + + self.var = ops.exp(self.logvar) + + if self.deterministic: + self.var = self.std = ops.zeros_like(self.mean) + + def sample(self): + """Generate a sample from the distribution. + + Returns: + Tensor: Sampled tensor with same shape as mean + + Notes: + - If deterministic=True, returns mean directly without noise + - Uses reparameterization trick for differentiable sampling + """ + sample = mint.randn(self.mean.shape) + + x = self.mean + self.std * sample + return x + + def kl(self, other=None): + """Compute KL divergence between this distribution and another or standard normal.""" + if self.deterministic: + return ms.Tensor([0.0]) + if other is None: + return 0.5 * ops.sum( + ops.pow(self.mean, 2) + self.var - 1.0 - self.logvar, dim=[1, 2, 3] + ) + return 0.5 * ops.sum( + ops.pow(self.mean - other.mean, 2) / other.var + + self.var / other.var + - 1.0 + - self.logvar + + other.logvar, + dim=[1, 2, 3], + ) + + def mode(self): + """Return the mode of the distribution (mean value).""" + return self.mean + + +def _threshold(target, pred, t_input): + """Apply thresholding to target and prediction tensors.""" + t = (target >= t_input).float() + p = (pred >= t_input).float() + is_nan = ops.logical_or(ops.isnan(target), ops.isnan(pred)) + t[is_nan] = 0 + p[is_nan] = 0 + return t, p + + +@staticmethod +def process_data_dict_back(data_dict, data_types=None): + """Rescale and offset data in dictionary using predefined parameters. + + Applies normalization using scale and offset values from global dictionaries. + + Args: + data_dict (dict): Dictionary containing data tensors + data_types (list, optional): Keys to process. Defaults to all keys in data_dict. + rescale (str, optional): Rescaling mode identifier. Defaults to "01". + + Returns: + dict: Processed data dictionary with normalized values + """ + scale_dict = PREPROCESS_SCALE_01 + offset_dict = PREPROCESS_OFFSET_01 + if data_types is None: + data_types = data_dict.keys() + for key in data_types: + data = data_dict[key] + data = data.float() / scale_dict[key] - offset_dict[key] + data_dict[key] = data + return data_dict + + +class SEVIRSkillScore(Metric): + """ + Class for calculating meteorological skill scores using threshold-based metrics. + This metric class computes performance metrics like CSI, POD, etc., + across multiple thresholds for weather prediction evaluation. + Args: + layout (str): Data dimension layout specification (default "NHWT") + mode (str): Operation mode affecting dimension handling ("0", "1", or "2") + seq_in (Optional[int]): Input sequence length (required for modes 1/2) + preprocess_type (str): Data preprocessing method ("sevir" or "sevir_pool*") + threshold_list (Sequence[int]): List of thresholds for binary classification + metrics_list (Sequence[str]): List of metrics to compute (csi, bias, sucr, pod) + eps (float): Small value to prevent division by zero + """ + def __init__( + self, + layout: str = "NHWT", + mode: str = "0", + seq_in: Optional[int] = None, + preprocess_type: str = "sevir", + threshold_list: Sequence[int] = (16, 74, 133, 160, 181, 219), + metrics_list: Sequence[str] = ("csi", "bias", "sucr", "pod"), + eps: float = 1e-4, + ): + super().__init__() + self.layout = layout + assert preprocess_type == "sevir" or preprocess_type.startswith("sevir_pool") + self.preprocess_type = preprocess_type + self.threshold_list = threshold_list + self.metrics_list = metrics_list + self.eps = eps + self.mode = mode + self.seq_in = seq_in + if mode in ("0",): + self.keep_seq_in_dim = False + state_shape = (len(self.threshold_list),) + elif mode in ("1", "2"): + self.keep_seq_in_dim = True + assert isinstance( + self.seq_in, int + ), "seq_in must be provided when we need to keep seq_in dim." + state_shape = (len(self.threshold_list), self.seq_in) + + else: + raise NotImplementedError(f"mode {mode} not supported!") + + self.hits = Parameter(ops.zeros(state_shape), name="hits") + self.misses = Parameter(ops.zeros(state_shape), name="misses") + self.fas = Parameter(ops.zeros(state_shape), name="fas") + + @property + def hits_misses_fas_reduce_dims(self): + """Dimensions to reduce when calculating metric statistics. + + Returns: + list[int]: List of dimensions to collapse during metric computation + """ + if not hasattr(self, "_hits_misses_fas_reduce_dims"): + seq_dim = self.layout.find("T") + self._hits_misses_fas_reduce_dims = list(range(len(self.layout))) + if self.keep_seq_in_dim: + self._hits_misses_fas_reduce_dims.pop(seq_dim) + return self._hits_misses_fas_reduce_dims + + def clear(self): + """Clear the internal states.""" + self.hits.set_data(mint.zeros_like(self.hits)) + self.misses.set_data(mint.zeros_like(self.misses)) + self.fas.set_data(mint.zeros_like(self.fas)) + + @staticmethod + def pod(hits, misses, _, eps): + """Probability of Detection""" + return hits / (hits + misses + eps) + + @staticmethod + def sucr(hits, _, fas, eps): + """Probability of hits""" + return hits / (hits + fas + eps) + + @staticmethod + def csi(hits, misses, fas, eps): + """critical success index""" + return hits / (hits + misses + fas + eps) + + @staticmethod + def bias(hits, misses, fas, eps): + """Bias score""" + bias = (hits + fas) / (hits + misses + eps) + logbias = ops.pow(bias / ops.log(Tensor(2.0)), 2.0) + return logbias + + def calc_seq_hits_misses_fas(self, pred, target, threshold): + """Calculate contingency table statistics for given threshold. + + Args: + pred (Tensor): Model prediction tensor + target (Tensor): Ground truth tensor + threshold (int): Threshold value for binarization + + Returns: + tuple[Tensor, Tensor, Tensor]: Hits, misses, false alarms + """ + t, p = _threshold(target, pred, threshold) + hits = ops.sum(t * p, dim=self.hits_misses_fas_reduce_dims).int() + misses = ops.sum(t * (1 - p), dim=self.hits_misses_fas_reduce_dims).int() + fas = ops.sum((1 - t) * p, dim=self.hits_misses_fas_reduce_dims).int() + return hits, misses, fas + + def preprocess(self, pred, target): + """Apply data preprocessing based on configuration. + + Handles SEVIR-specific normalization and optional spatial pooling. + + Args: + pred (Tensor): Raw model predictions + target (Tensor): Raw ground truth data + + Returns: + tuple[Tensor, Tensor]: Processed prediction and target tensors + """ + if self.preprocess_type == "sevir": + pred = process_data_dict_back(data_dict={"vil": pred.float()})["vil"] + target = process_data_dict_back(data_dict={"vil": target.float()})["vil"] + elif self.preprocess_type.startswith("sevir_pool"): + pred = process_data_dict_back(data_dict={"vil": pred.float()})["vil"] + target = process_data_dict_back(data_dict={"vil": target.float()})["vil"] + self.pool_scale = int(re.search(r"\d+", self.preprocess_type).group()) + batch_size = target.shape[0] + pred = rearrange( + pred, f"{self.einops_layout} -> {self.einops_spatial_layout}" + ) + target = rearrange( + target, f"{self.einops_layout} -> {self.einops_spatial_layout}" + ) + max_pool = nn.MaxPool2d( + kernel_size=self.pool_scale, stride=self.pool_scale, pad_mode="pad" + ) + pred = max_pool(pred) + target = max_pool(target) + pred = rearrange( + pred, + f"{self.einops_spatial_layout} -> {self.einops_layout}", + N=batch_size, + ) + target = rearrange( + target, + f"{self.einops_spatial_layout} -> {self.einops_layout}", + N=batch_size, + ) + else: + raise NotImplementedError + return pred, target + + def update(self, pred: Tensor, target: Tensor): + """Update metric statistics with new batch of predictions.""" + pred, target = self.preprocess(pred, target) + for i, threshold in enumerate(self.threshold_list): + hits, misses, fas = self.calc_seq_hits_misses_fas(pred, target, threshold) + self.hits[i] += hits + self.misses[i] += misses + self.fas[i] += fas + + def eval(self): + """Compute final metric scores across all thresholds.""" + metrics_dict = { + "pod": self.pod, + "csi": self.csi, + "sucr": self.sucr, + "bias": self.bias, + } + ret = {} + for threshold in self.threshold_list: + ret[threshold] = {} + ret["avg"] = {} + for metrics in self.metrics_list: + if self.keep_seq_in_dim: + score_avg = np.zeros((self.seq_in,)) + else: + score_avg = 0 + scores = metrics_dict[metrics](self.hits, self.misses, self.fas, self.eps) + scores = scores.asnumpy() + for i, threshold in enumerate(self.threshold_list): + if self.keep_seq_in_dim: + score = scores[i] + else: + score = scores[i].item() + if self.mode in ("0", "1"): + ret[threshold][metrics] = score + elif self.mode in ("2",): + ret[threshold][metrics] = np.mean(score).item() + else: + raise NotImplementedError + score_avg += score + score_avg /= len(self.threshold_list) + if self.mode in ("0", "1"): + ret["avg"][metrics] = score_avg + elif self.mode in ("2",): + ret["avg"][metrics] = np.mean(score_avg).item() + else: + raise NotImplementedError + return ret + + +def make_beta_schedule( + schedule, n_timestep, linear_start=1e-4, linear_end=2e-2, cosine_s=8e-3 +): + """Generate beta schedule for diffusion models. + + Supports linear, cosine, sqrt_linear and sqrt schedules. + + Args: + schedule (str): Schedule type ("linear", "cosine", etc.) + n_timestep (int): Number of time steps + linear_start (float): Linear schedule start value + linear_end (float): Linear schedule end value + cosine_s (float): Cosine schedule shift parameter + + Returns: + Tensor: Beta values for each time step + """ + if schedule == "linear": + betas = ( + mint.linspace( + linear_start**0.5, linear_end**0.5, n_timestep, dtype=ms.float64 + ) + ** 2 + ) + + elif schedule == "cosine": + timesteps = ops.arange(n_timestep + 1, dtype=ms.float64) / n_timestep + cosine_s + alphas = timesteps / (1 + cosine_s) * np.pi / 2 + alphas = ops.cos(alphas).pow(2) + alphas = alphas / alphas[0] + betas = 1 - alphas[1:] / alphas[:-1] + betas = np.clip(betas, a_min=0, a_max=0.999) + + elif schedule == "sqrt_linear": + betas = ops.linspace(linear_start, linear_end, n_timestep) + elif schedule == "sqrt": + betas = ops.linspace(linear_start, linear_end, n_timestep) ** 0.5 + else: + raise ValueError(f"schedule '{schedule}' unknown.") + return betas.asnumpy() + + +def extract_into_tensor(a, t, x_shape, batch_axis=0): + """Extract tensor elements and reshape to match target dimensions.""" + batch_size = t.shape[0] + out = a.gather_elements(-1, t) + out_shape = [ + 1, + ] * len(x_shape) + out_shape[batch_axis] = batch_size + return out.reshape(out_shape) + + +def noise_like(shape): + """Generate random noise tensor matching given shape.""" + return ops.randn(shape) + + +def default(val, d): + """Return val if present, otherwise resolve default value.""" + if val is not None: + return val + return d() if isfunction(d) else d + + +def timestep_embedding(timesteps, dim, max_period=10000, repeat_only=False): + """ + Create sinusoidal timestep embeddings. + :param timesteps: a 1-D Tensor of N indices, one per batch element. + These may be fractional. + :param dim: the dimension of the output. + :param max_period: controls the minimum frequency of the embeddings. + :return: an [N x dim] Tensor of positional embeddings. + """ + if not repeat_only: + half = dim // 2 + freqs = ops.exp( + -math.log(max_period) + * ops.arange(start=0, end=half, dtype=ms.float32) + / half + ) + args = timesteps[:, None].float() * freqs[None] + embedding = ops.cat([ops.cos(args), ops.sin(args)], axis=-1) + if dim % 2: + embedding = ops.cat([embedding, ops.zeros_like(embedding[:, :1])], axis=-1) + else: + embedding = repeat(timesteps, "b -> b d", d=dim) + return embedding + + +def zero_module(module): + """ + Zero out the parameters of a module and return it. + """ + for param in module.trainable_params(): + param.set_data(Zero()(shape=param.shape, dtype=param.dtype)) + return module + + +def normalization(channels): + """ + Make a standard normalization layer. + :param channels: number of input channels. + :return: an nn.Module for normalization. + """ + num_groups = min(32, channels) + return nn.GroupNorm(num_groups, channels) + + +def conv_nd(dims, *args, **kwargs): + """ + Create a 1D, 2D, or 3D convolution module. + """ + if dims == 1: + return nn.Conv1d(*args, **kwargs, pad_mode="pad", has_bias=True) + if dims == 2: + return nn.Conv2d(*args, **kwargs, pad_mode="pad", has_bias=True) + return mint.nn.Conv3d(*args, **kwargs) + + + +def linear(*args, **kwargs): + """ + Create a linear module. + """ + return nn.Dense(*args, **kwargs) + + +def avg_pool_nd(dims, *args, **kwargs): + """ + Create a 1D, 2D, or 3D average pooling module. + """ + if dims == 1: + return nn.AvgPool1d(*args, **kwargs) + if dims == 2: + return mint.nn.AvgPool2d(*args, **kwargs) + if dims == 3: + return nn.AvgPool3d(*args, **kwargs) + raise ValueError(f"unsupported dimensions: {dims}") + + + +def round_to(dat, c): + """round to""" + return dat + (dat - dat % c) % c + + +def get_activation(act, inplace=False, **kwargs): + """ + + Parameters + ---------- + act + Name of the activation + inplace + Whether to perform inplace activation + + Returns + ------- + activation_layer + The activation + """ + if act is None: + return lambda x: x + if isinstance(act, str): + if act == "leaky": + negative_slope = kwargs.get("negative_slope", 0.1) + return nn.LeakyReLU(negative_slope, inplace=inplace) + if act == "identity": + return nn.Identity() + if act == "elu": + return nn.ELU(inplace=inplace) + if act == "gelu": + return nn.GELU(approximate=False) + if act == "relu": + return nn.ReLU() + if act == "sigmoid": + return nn.Sigmoid() + if act == "tanh": + return nn.Tanh() + if act in ('softrelu', 'softplus'): + return ops.Softplus() + if act == "softsign": + return nn.Softsign() + raise NotImplementedError('act="{}" is not supported. ') + return act + + +def get_norm_layer( + norm_type: str = "layer_norm", + axis: int = -1, + epsilon: float = 1e-5, + in_channels: int = 0, + **kwargs, +): + """Get the normalization layer based on the provided type + + Parameters + ---------- + norm_type + The type of the layer normalization from ['layer_norm'] + axis + The axis to normalize the + epsilon + The epsilon of the normalization layer + in_channels + Input channel + + Returns + ------- + norm_layer + The layer normalization layer + """ + if isinstance(norm_type, str): + if norm_type == "layer_norm": + assert in_channels > 0 + assert axis == -1 + norm_layer = nn.LayerNorm( + normalized_shape=[in_channels], epsilon=epsilon, **kwargs + ) + else: + raise NotImplementedError("norm_type={} is not supported".format(norm_type)) + return norm_layer + if norm_type is None: + return nn.Identity() + raise NotImplementedError("The type of normalization must be str") + + +def generalize_padding(x, pad_t, pad_h, pad_w, padding_type, t_pad_left=False): + """ + + Parameters + ---------- + x + Shape (B, T, H, W, C) + pad_t + pad_h + pad_w + padding_type + t_pad_left + + Returns + ------- + out + The result after padding the x. Shape will be (B, T + pad_t, H + pad_h, W + pad_w, C) + """ + if pad_t == 0 and pad_h == 0 and pad_w == 0: + return x + + assert padding_type in ["zeros", "ignore", "nearest"] + _, t, h, w, _ = x.shape + + if padding_type == "nearest": + return ops.interpolate( + x.permute(0, 4, 1, 2, 3), size=(t + pad_t, h + pad_h, w + pad_w) + ).permute(0, 2, 3, 4, 1) + if t_pad_left: + return ops.pad(x, (0, 0, 0, pad_w, 0, pad_h, pad_t, 0)) + return ops.pad(x, (0, 0, 0, pad_w, 0, pad_h, 0, pad_t)) + + +def generalize_unpadding(x, pad_t, pad_h, pad_w, padding_type): + """Removes padding from a 5D tensor based on specified padding type and dimensions. + + Args: + x (Tensor): Input tensor with shape (batch, time, height, width, channels). + pad_t (int): Number of time steps to remove from the end. + pad_h (int): Number of height units to remove from the end. + pad_w (int): Number of width units to remove from the end. + padding_type (str): Type of padding removal method ("zeros", "ignore", "nearest"). + + Returns: + Tensor: Processed tensor with padding removed according to specified method. + + Raises: + AssertionError: If invalid padding_type is provided. + """ + assert padding_type in ["zeros", "ignore", "nearest"] + _, t, h, w, _ = x.shape + if pad_t == 0 and pad_h == 0 and pad_w == 0: + return x + + if padding_type == "nearest": + return ops.interpolate( + x.permute(0, 4, 1, 2, 3), size=(t - pad_t, h - pad_h, w - pad_w) + ).permute(0, 2, 3, 4, 1) + return x[:, : (t - pad_t), : (h - pad_h), : (w - pad_w), :] + + +def _calculate_fan_in_and_fan_out(parameter): + """Calculates fan_in and fan_out values for neural network weight initialization.""" + dimensions = parameter.ndim + if dimensions < 2: + raise ValueError( + "Fan in and fan out can not be computed for parameter with fewer than 2 dimensions" + ) + num_input_fmaps = parameter.shape[1] + num_output_fmaps = parameter.shape[0] + receptive_field_size = 1 + if dimensions > 2: + for s in parameter.shape[2:]: + receptive_field_size *= s + fan_in = num_input_fmaps * receptive_field_size + fan_out = num_output_fmaps * receptive_field_size + return fan_in, fan_out + + +def apply_initialization( + cell, linear_mode="0", conv_mode="0", norm_mode="0", embed_mode="0" +): + """Applies parameter initialization strategies to neural network layers. + + Args: + cell (nn.Cell): Neural network layer to initialize. + linear_mode (str): Initialization mode for dense layers ("0", "1", "2"). + conv_mode (str): Initialization mode for convolutional layers ("0", "1", "2"). + norm_mode (str): Initialization mode for normalization layers ("0"). + embed_mode (str): Initialization mode for embedding layers ("0"). + + Raises: + NotImplementedError: If unsupported initialization mode is requested. + """ + if isinstance(cell, nn.Dense): + if linear_mode in ("0",): + cell.weight.set_data( + initializer( + HeNormal(mode="fan_in", nonlinearity="linear"), + cell.weight.shape, + cell.weight.dtype, + ) + ) + elif linear_mode in ("1",): + cell.weight.set_data( + initializer.initializer( + HeNormal(mode="fan_out", nonlinearity="leaky_relu"), + cell.weight.shape, + cell.weight.dtype, + ) + ) + elif linear_mode in ("2",): + zeros_tensor = ops.zeros(cell.weight.shape, cell.weight.dtype) + cell.weight.set_data(zeros_tensor) + else: + raise NotImplementedError + if hasattr(cell, "bias") and cell.bias is not None: + zeros_tensor = ops.zeros(cell.bias.shape, cell.bias.dtype) + cell.bias.set_data(zeros_tensor) + + elif isinstance( + cell, (nn.Conv2d, nn.Conv3d, nn.Conv2dTranspose, nn.Conv3dTranspose) + ): + if conv_mode in ("0",): + cell.weight.set_data( + initializer( + HeNormal( + negative_slope=math.sqrt(5), mode="fan_out", nonlinearity="relu" + ), + cell.weight.shape, + cell.weight.dtype, + ) + ) + if cell.has_bias: + fan_in, _ = _calculate_fan_in_and_fan_out(cell.weight) + if fan_in != 0: + bound = 1 / math.sqrt(fan_in) + cell.bias.set_data( + initializer(Uniform(bound), cell.bias.shape, cell.bias.dtype) + ) + elif conv_mode in ("1",): + cell.weight.set_data( + initializer( + HeNormal( + mode="fan_out", nonlinearity="leaky_relu", negative_slope=0.1 + ), + cell.weight.shape, + cell.weight.dtype, + ) + ) + if hasattr(mcell, "bias") and mcell.bias is not None: + cell.bias.set_data( + initializer(Zero(), cell.bias.shape, cell.bias.dtype) + ) + elif conv_mode in ("2",): + cell.weight.set_data( + initializer(Zero(), cell.weight.shape, cell.weight.dtype) + ) + if hasattr(m, "bias") and m.bias is not None: + cell.bias.set_data( + initializer(Zero(), cell.bias.shape, cell.bias.dtype) + ) + else: + raise NotImplementedError + + elif isinstance(cell, nn.GroupNorm): + if norm_mode in ("0",): + if cell.gamma is not None: + cell.gamma.set_data( + initializer(One(), cell.gamma.shape, cell.gamma.dtype) + ) + if cell.beta is not None: + cell.beta.set_data( + initializer(Zero(), cell.beta.shape, cell.beta.dtype) + ) + else: + raise NotImplementedError("Normalization mode not supported") + elif isinstance(cell, nn.Embedding): + if embed_mode == "0": + cell.embedding_table.set_data( + initializer( + TruncatedNormal(sigma=0.02), + cell.embedding_table.shape, + cell.embedding_table.dtype, + ) + ) + else: + raise NotImplementedError + else: + pass + + +def prepare_output_directory(base_config, device_id): + """Creates/updates output directory for experiment results. + + Args: + base_config (dict): Configuration dictionary containing directory paths. + device_id (int): Device identifier for directory naming. + + Returns: + str: Path to the created/updated output directory. + + Raises: + OSError: If directory operations fail unexpectedly. + """ + output_path = os.path.join( + base_config["summary"]["summary_dir"], f"single_device{device_id}" + ) + + try: + if os.path.exists(output_path): + shutil.rmtree(output_path) + print(f"Cleared previous output directory: {output_path}") + os.makedirs(output_path, exist_ok=True) + except OSError as e: + print(f"Directory operation failed: {e}", exc_info=True) + raise + base_config["summary"]["summary_dir"] = output_path + return output_path + + +def configure_logging_system(output_dir, config): + """Sets up logging system for the application. + + Args: + output_dir (str): Directory where logs should be stored. + config (dict): Configuration dictionary containing experiment parameters. + + Returns: + Logger: Configured logger instance. + """ + logger = create_logger(path=os.path.join(output_dir, "results.log")) + logger.info(f"Process ID: {os.getpid()}") + logger.info(config["summary"]) + return logger + + +def prepare_dataset(config, module): + """Initializes and prepares the dataset for training/evaluation. + + Args: + config (dict): Configuration dictionary with dataset parameters. + SEVIRPLModule (Module): Data module class for dataset handling. + + Returns: + tuple: (DataModule, total_num_steps) containing initialized data module and total training steps. + + Raises: + ValueError: If configuration is not provided. + """ + if config is not None: + dataset_cfg = config["data"] + total_batch_size = config["optim"]["total_batch_size"] + micro_batch_size = config["optim"]["micro_batch_size"] + max_epochs = config["optim"]["max_epochs"] + else: + raise ValueError("config is required but not provided") + dm = module.get_sevir_datamodule( + dataset_cfg=dataset_cfg, + micro_batch_size=micro_batch_size, + num_workers=8, + ) + dm.setup() + total_num_steps = module.get_total_num_steps( + epoch=max_epochs, + num_samples=dm.num_train_samples, + total_batch_size=total_batch_size, + ) + return dm, total_num_steps + + +def warmup_lambda(warmup_steps, min_lr_ratio=0.1): + """Creates a learning rate warmup schedule as a lambda function. + + Args: + warmup_steps (int): Number of steps for the warmup phase. + min_lr_ratio (float): Minimum learning rate ratio at the start of training. + + Returns: + function: Lambda function that calculates the warmup multiplier based on current step. + """ + def ret_lambda(epoch): + if epoch <= warmup_steps: + return min_lr_ratio + (1.0 - min_lr_ratio) * epoch / warmup_steps + return 1.0 + + return ret_lambda + + +def get_loss_fn(loss: str = "l2") -> Callable: + """ + Returns a loss function based on the provided loss type. + + Args: + loss (str): Type of loss function. Default is "l2". + + Returns: + Callable: A loss function corresponding to the provided loss type. + """ + if loss in ("l2", "mse"): + return nn.MSELoss() + return nn.L1Loss() + + +def disabled_train(self): + """Overwrite model.train with this function to make sure train/eval mode + does not change anymore.""" + return self + + +def disable_train(model: nn.Cell): + """ + Disable training to avoid error when used in pl.LightningModule + """ + model.set_train(False) + model.train = disabled_train + return model + + +def layout_to_in_out_slice(layout, t_in, t_out=None): + """layout_to_in_out_slice""" + t_axis = layout.find("T") + num_axes = len(layout) + in_slice = [ + slice(None, None), + ] * num_axes + out_slice = deepcopy(in_slice) + in_slice[t_axis] = slice(None, t_in) + if t_out is None: + out_slice[t_axis] = slice(t_in, None) + else: + out_slice[t_axis] = slice(t_in, t_in + t_out) + return in_slice, out_slice + + +def parse_layout_shape(layout: str) -> Dict[str, Any]: + r""" + + Parameters + ---------- + layout: str + e.g., "NTHWC", "NHWC". + + Returns + ------- + ret: Dict + """ + batch_axis = layout.find("N") + t_axis = layout.find("T") + h_axis = layout.find("H") + w_axis = layout.find("W") + c_axis = layout.find("C") + return { + "batch_axis": batch_axis, + "t_axis": t_axis, + "h_axis": h_axis, + "w_axis": w_axis, + "c_axis": c_axis, + } + + +def ssim(img1, img2): + """Compute Structural Similarity Index (SSIM) between two images. + + Args: + img1 (np.ndarray): First input image (grayscale or single-channel), shape (H, W) + img2 (np.ndarray): Second input image with identical shape to img1 + + Returns: + float: SSIM value between 0 (completely dissimilar) and 1 (perfect similarity) + + Notes: + - Uses 11x11 Gaussian window with σ=1.5 for weighted filtering + - Follows the standard SSIM formulation with constants c1=0.0001, c2=0.0009 + - Computes valid convolution regions (edges truncated by kernel size) + """ + c1 = 0.01**2 + c2 = 0.03**2 + img1 = img1.astype(np.float64) + img2 = img2.astype(np.float64) + kernel = cv2.getGaussianKernel(11, 1.5) + window = np.outer(kernel, kernel.transpose()) + mu1 = cv2.filter2D(img1, -1, window)[5:-5, 5:-5] # valid + mu2 = cv2.filter2D(img2, -1, window)[5:-5, 5:-5] + mu1_sq = mu1**2 + mu2_sq = mu2**2 + mu1_mu2 = mu1 * mu2 + sigma1_sq = cv2.filter2D(img1**2, -1, window)[5:-5, 5:-5] - mu1_sq + sigma2_sq = cv2.filter2D(img2**2, -1, window)[5:-5, 5:-5] - mu2_sq + sigma12 = cv2.filter2D(img1 * img2, -1, window)[5:-5, 5:-5] - mu1_mu2 + ssim_map = ((2 * mu1_mu2 + c1) * (2 * sigma12 + c2)) / ( + (mu1_sq + mu2_sq + c1) * (sigma1_sq + sigma2_sq + c2) + ) + return ssim_map.mean() + + +def calculate_ssim_function(img1, img2): + """calculate ssim function""" + if not img1.shape == img2.shape: + raise ValueError("Input images must have the same dimensions.") + if img1.ndim == 2: + return ssim(img1, img2) + if img1.ndim == 3: + if img1.shape[0] == 3: + ssims = [] + for i in range(3): + ssims.append(ssim(img1[i], img2[i])) + return np.array(ssims).mean() + if img1.shape[0] == 1: + return ssim(np.squeeze(img1), np.squeeze(img2)) + raise ValueError("Wrong input image dimensions.") + + + + +def calculate_ssim(videos1, videos2): + """Calculate Structural Similarity Index (SSIM) between two video sequences across all timestamps. + + Args: + videos1 (Tensor or np.ndarray): First video sequence with shape (batch_size, time_steps, + height, width, channels) + videos2 (Tensor or np.ndarray): Second video sequence with identical shape to videos1 + + Returns: + dict[int, float]: Dictionary where keys are timestamp indices and values are the mean SSIM values + across all batches for that timestamp + + Raises: + AssertionError: If input video tensors have different shapes + """ + ssim_results = [] + for video_num in range(videos1.shape[0]): + video1 = videos1[video_num] + video2 = videos2[video_num] + ssim_results_of_a_video = [] + for clip_timestamp in range(len(video1)): + img1 = video1[clip_timestamp] + img2 = video2[clip_timestamp] + ssim_results_of_a_video.append(calculate_ssim_function(img1, img2)) + ssim_results.append(ssim_results_of_a_video) + ssim_results = np.array(ssim_results) + ssim_score = {} + for clip_timestamp in range(len(video1)): + ssim_score[clip_timestamp] = np.mean(ssim_results[:, clip_timestamp]) + + return ssim_score + + +def init_model(module, config, mode): + """Initialize model with ckpt""" + summary_params = config.get("summary") + module.main_model.set_train(True) + if mode != "train": + summary_params["load_ckpt"] = "True" + module.main_model.set_train(False) + if summary_params["load_ckpt"]: + params = ms.load_checkpoint(summary_params.get("ckpt_path")) + ms.load_param_into_net( + module.main_model, params + ) + return module + +def self_axial(input_shape): + """Axial attention implementation from "Axial-Deeplab: + Efficient Convolutional Neural Networks for Semantic Segmentation" + Args: + input_shape (tuple): Input tensor shape (T, H, W, C). + Returns: + tuple: Axial attention parameters with separate temporal/spatial cuboids. + """ + t, h, w, _ = input_shape + cuboid_size = [(t, 1, 1), (1, h, 1), (1, 1, w)] + strategy = [("l", "l", "l"), ("l", "l", "l"), ("l", "l", "l")] + shift_size = [(0, 0, 0), (0, 0, 0), (0, 0, 0)] + return cuboid_size, strategy, shift_size diff --git a/MindEarth/applications/nowcasting/PreDiff/src/vae/__init__.py b/MindEarth/applications/nowcasting/PreDiff/src/vae/__init__.py new file mode 100644 index 000000000..d8769bc9d --- /dev/null +++ b/MindEarth/applications/nowcasting/PreDiff/src/vae/__init__.py @@ -0,0 +1,20 @@ +# Copyright 2023 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this filepio[] except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================ +"""init""" +from .autoencoder_kl import AutoencoderKL + +__all__ = [ + "AutoencoderKL", +] diff --git a/MindEarth/applications/nowcasting/PreDiff/src/vae/autoencoder_kl.py b/MindEarth/applications/nowcasting/PreDiff/src/vae/autoencoder_kl.py new file mode 100644 index 000000000..63d0b9d7e --- /dev/null +++ b/MindEarth/applications/nowcasting/PreDiff/src/vae/autoencoder_kl.py @@ -0,0 +1,378 @@ +# Copyright 2023 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +"vae base class" +from typing import Tuple + +import mindspore as ms +import mindspore.nn as nn +import mindspore.ops as ops +import mindspore.mint as mint + +from src.utils import DiagonalGaussianDistribution +from .unet_2d_blocks import UNetMidBlock2D, get_down_block, get_up_block + + +class Encoder(nn.Cell): + """ + A class representing an encoder network for image encoding. + + Args: + in_channels (int): Number of input image channels (default: 3) + out_channels (int): Number of output image channels (default: 3) + down_block_types (tuple): Types of downsampling blocks (default: ("DownEncoderBlock2D",)) + block_out_channels (tuple): Output channels for each downsampling block (default: (64,)) + layers_per_block (int): Number of layers per downsampling block (default: 2) + norm_num_groups (int): Number of groups for group normalization (default: 32) + act_fn (str): Activation function type (default: "silu") + double_z (bool): Whether to double output channels (default: True) + + Returns: + None + """ + def __init__( + self, + in_channels=3, + out_channels=3, + down_block_types=("DownEncoderBlock2D",), + block_out_channels=(64,), + layers_per_block=2, + norm_num_groups=32, + act_fn="silu", + double_z=True, + ): + super().__init__() + self.layers_per_block = layers_per_block + self.conv_in = nn.Conv2d( + in_channels, + block_out_channels[0], + kernel_size=3, + stride=1, + padding=1, + has_bias=True, + pad_mode="pad", + ) + + self.mid_block = None + self.down_blocks = nn.CellList([]) + output_channel = block_out_channels[0] + for i, down_block_type in enumerate(down_block_types): + input_channel = output_channel + output_channel = block_out_channels[i] + is_final_block = i == len(block_out_channels) - 1 + + down_block = get_down_block( + down_block_type, + num_layers=self.layers_per_block, + in_channels=input_channel, + out_channels=output_channel, + add_downsample=not is_final_block, + resnet_eps=1e-6, + downsample_padding=0, + resnet_act_fn=act_fn, + resnet_groups=norm_num_groups, + attn_num_head_channels=None, + temb_channels=None, + ) + self.down_blocks.append(down_block) + self.mid_block = UNetMidBlock2D( + in_channels=block_out_channels[-1], + resnet_eps=1e-6, + resnet_act_fn=act_fn, + output_scale_factor=1, + resnet_time_scale_shift="default", + attn_num_head_channels=None, + resnet_groups=norm_num_groups, + temb_channels=None, + ) + self.conv_norm_out = nn.GroupNorm( + num_channels=block_out_channels[-1], num_groups=norm_num_groups, eps=1e-6 + ) + self.conv_act = nn.SiLU() + + conv_out_channels = 2 * out_channels if double_z else out_channels + self.conv_out = nn.Conv2d( + block_out_channels[-1], + conv_out_channels, + 3, + pad_mode="pad", + padding=1, + has_bias=True, + ) + + def construct(self, x): + """ + Forward pass through the encoder network. + + Args: + x (Tensor): Input image tensor + + Returns: + Tensor: Encoded output tensor + """ + + sample = self.conv_in(x) + + for _, down_block in enumerate(self.down_blocks): + sample = down_block(sample) + + sample = self.mid_block(sample) + sample = self.conv_norm_out(sample) + sample = self.conv_act(sample) + sample = self.conv_out(sample) + return sample + + +class Decoder(nn.Cell): + """ + Decoder class for the decoding process in image generation tasks. + + Args: + in_channels (int): Number of input channels, defaults to 3. + out_channels (int): Number of output channels, defaults to 3. + up_block_types (tuple): Types of upsample blocks, defaults to ("UpDecoderBlock2D",). + block_out_channels (tuple): Output channels for each block, defaults to (64,). + layers_per_block (int): Number of layers per block, defaults to 2. + norm_num_groups (int): Number of groups for normalization, defaults to 32. + act_fn (str): Activation function type, defaults to "silu". + + Attributes: + layers_per_block (int): Number of layers per block. + conv_in (nn.Conv2d): Input convolution layer. + mid_block (UNetMidBlock2D): Middle block. + up_blocks (nn.CellList): List of upsample blocks. + conv_norm_out (nn.GroupNorm): Output normalization layer. + conv_act (nn.SiLU): Output activation layer. + conv_out (nn.Conv2d): Output convolution layer. + """ + def __init__( + self, + in_channels=3, + out_channels=3, + up_block_types=("UpDecoderBlock2D",), + block_out_channels=(64,), + layers_per_block=2, + norm_num_groups=32, + act_fn="silu", + ): + super().__init__() + self.layers_per_block = layers_per_block + + self.conv_in = nn.Conv2d( + in_channels, + block_out_channels[-1], + kernel_size=3, + stride=1, + padding=1, + pad_mode="pad", + has_bias=True, + ) + + self.mid_block = None + self.up_blocks = nn.CellList([]) + self.mid_block = UNetMidBlock2D( + in_channels=block_out_channels[-1], + resnet_eps=1e-6, + resnet_act_fn=act_fn, + output_scale_factor=1, + resnet_time_scale_shift="default", + attn_num_head_channels=None, + resnet_groups=norm_num_groups, + temb_channels=None, + ) + reversed_block_out_channels = list(reversed(block_out_channels)) + output_channel = reversed_block_out_channels[0] + for i, up_block_type in enumerate(up_block_types): + prev_output_channel = output_channel + output_channel = reversed_block_out_channels[i] + + is_final_block = i == len(block_out_channels) - 1 + + up_block = get_up_block( + up_block_type, + num_layers=self.layers_per_block + 1, + in_channels=prev_output_channel, + out_channels=output_channel, + prev_output_channel=None, + add_upsample=not is_final_block, + resnet_eps=1e-6, + resnet_act_fn=act_fn, + resnet_groups=norm_num_groups, + attn_num_head_channels=None, + temb_channels=None, + ) + self.up_blocks.append(up_block) + prev_output_channel = output_channel + self.conv_norm_out = nn.GroupNorm( + num_channels=block_out_channels[0], num_groups=norm_num_groups, eps=1e-6 + ) + self.conv_act = nn.SiLU() + self.conv_out = nn.Conv2d( + block_out_channels[0], + out_channels, + 3, + padding=1, + pad_mode="pad", + has_bias=True, + ) + + def construct(self, z): + """ + Builds the decoder computation graph. + + Args: + z (Tensor): Input tensor. + + Returns: + Tensor: Decoded output tensor. + """ + sample = z + sample = self.conv_in(sample) + sample = self.mid_block(sample) + for up_block in self.up_blocks: + sample = up_block(sample) + sample = self.conv_norm_out(sample) + sample = self.conv_act(sample) + sample = self.conv_out(sample) + return sample + + +class AutoencoderKL(nn.Cell): + r"""Variational Autoencoder (VAE) model with KL loss from the paper Auto-Encoding Variational Bayes by Diederik P. Kingma + and Max Welling. + + This model inherits from [`ModelMixin`]. Check the superclass documentation for the generic methods the library + implements for all the model (such as downloading or saving, etc.) + + Parameters: + in_channels (int, *optional*, defaults to 3): Number of channels in the input image. + out_channels (int, *optional*, defaults to 3): Number of channels in the output. + down_block_types (`Tuple[str]`, *optional*, defaults to : + obj:`("DownEncoderBlock2D",)`): Tuple of downsample block types. + up_block_types (`Tuple[str]`, *optional*, defaults to : + obj:`("UpDecoderBlock2D",)`): Tuple of upsample block types. + block_out_channels (`Tuple[int]`, *optional*, defaults to : + obj:`(64,)`): Tuple of block output channels. + act_fn (`str`, *optional*, defaults to `"silu"`): The activation function to use. + latent_channels (`int`, *optional*, defaults to 4): Number of channels in the latent space. + sample_size (`int`, *optional*, defaults to `32`): TODO + scaling_factor (`float`, *optional*, defaults to 0.18215): + The component-wise standard deviation of the trained latent space computed using the first batch of the + training set. This is used to scale the latent space to have unit variance when training the diffusion + model. The latents are scaled with the formula `z = z * scaling_factor` before being passed to the + diffusion model. When decoding, the latents are scaled back to the original scale with the formula: `z = 1 + / scaling_factor * z`. For more details, refer to sections 4.3.2 and D.1 of the [High-Resolution Image + """ + + def __init__( + self, + in_channels: int = 3, + out_channels: int = 3, + down_block_types: Tuple[str] = ("DownEncoderBlock2D",), + up_block_types: Tuple[str] = ("UpDecoderBlock2D",), + block_out_channels: Tuple[int] = (64,), + layers_per_block: int = 1, + act_fn: str = "silu", + latent_channels: int = 4, + norm_num_groups: int = 32, + ): + super().__init__() + + # pass init params to Encoder + self.encoder = Encoder( + in_channels=in_channels, + out_channels=latent_channels, + down_block_types=down_block_types, + block_out_channels=block_out_channels, + layers_per_block=layers_per_block, + act_fn=act_fn, + norm_num_groups=norm_num_groups, + double_z=True, + ) + + # pass init params to Decoder + self.decoder = Decoder( + in_channels=latent_channels, + out_channels=out_channels, + up_block_types=up_block_types, + block_out_channels=block_out_channels, + layers_per_block=layers_per_block, + norm_num_groups=norm_num_groups, + act_fn=act_fn, + ) + + self.quant_conv = mint.nn.Conv2d(2 * latent_channels, 2 * latent_channels, 1) + self.post_quant_conv = mint.nn.Conv2d(latent_channels, latent_channels, 1) + self.use_slicing = False + + def encode(self, x: ms.Tensor) -> DiagonalGaussianDistribution: + h = self.encoder(x) + moments = self.quant_conv(h) + posterior = DiagonalGaussianDistribution(moments) + return posterior + + def _decode(self, z: ms.Tensor) -> ms.Tensor: + z = self.post_quant_conv(z) + dec = self.decoder(z) + return dec + + def enable_slicing(self): + r""" + Enable sliced VAE decoding. + + When this option is enabled, the VAE will split the input tensor in slices to compute decoding in several + steps. This is useful to save some memory and allow larger batch sizes. + """ + self.use_slicing = True + + def disable_slicing(self): + r""" + Disable sliced VAE decoding. If `enable_slicing` was previously invoked, this method will go back to computing + decoding in one step. + """ + self.use_slicing = False + + def decode(self, z: ms.Tensor) -> ms.Tensor: + if self.use_slicing and z.shape[0] > 1: + decoded_slices = [self._decode(z_slice) for z_slice in z.split(1)] + decoded = ops.cat(decoded_slices) + else: + decoded = self._decode(z) + return decoded + + def construct( + self, + sample: ms.Tensor, + sample_posterior: bool = False, + return_posterior: bool = False, + ) -> ms.Tensor: + r""" + Args: + sample (`ms.FloatTensor`): Input sample. + sample_posterior (`bool`, *optional*, defaults to `False`): + Whether to sample from the posterior. + return_posterior (`bool`, *optional*, defaults to `False`): + Whether or not to return `posterior` along with `dec` for calculating the training loss. + """ + + posterior = self.encode(sample) + + if sample_posterior: + z = posterior.sample() + else: + z = posterior.mode() + dec = self.decode(z) + if return_posterior: + return dec, posterior + return dec diff --git a/MindEarth/applications/nowcasting/PreDiff/src/vae/resnet.py b/MindEarth/applications/nowcasting/PreDiff/src/vae/resnet.py new file mode 100644 index 000000000..6a20d3b5f --- /dev/null +++ b/MindEarth/applications/nowcasting/PreDiff/src/vae/resnet.py @@ -0,0 +1,907 @@ +# Copyright 2023 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +"resnet model" +from functools import partial +import numpy as np + +import mindspore as ms +from mindspore import Tensor, mint, nn, ops + + +class AvgPool1d(nn.Cell): + """ + 1D average pooling layer implementation with customizable kernel size, stride, and padding. + Performs spatial downsampling by computing average values over sliding windows. + """ + def __init__(self, kernel_size, stride=1, padding=0): + """ + Initialize 1D average pooling parameters with validation checks. + + Args: + kernel_size (int): Length of the pooling window + stride (int): Stride size for window movement (default=1) + padding (int): Zero-padding added to both sides of input (default=0) + + Raises: + ValueError: If kernel_size ≤ 0, stride ≤ 0, or padding < 0 + """ + super().__init__() + self.kernel_size = kernel_size + self.stride = stride + self.padding = padding + self.mean = ops.ReduceMean(keep_dims=False) + if stride <= 0: + raise ValueError("stride must be positive") + if kernel_size <= 0: + raise ValueError("kernel_size must be positive") + if padding < 0: + raise ValueError("padding must be non-negative") + + def construct(self, x): + """ + Apply 1D average pooling to input tensor. + """ + input_shape = x.shape + n, c, l_in = input_shape[0], input_shape[1], input_shape[2] + pad_left = self.padding + pad_right = self.padding + x = ops.Pad(((0, 0), (0, 0), (pad_left, pad_right)))(x) + l_in += pad_left + pad_right + l_out = (l_in - self.kernel_size) // self.stride + 1 + output = Tensor(np.zeros((n, c, l_out)), dtype=ms.float32) + for i in range(l_out): + start = i * self.stride + end = start + self.kernel_size + if end <= l_in: + window = x[:, :, start:end] + output[:, :, i] = self.mean(window, -1) + + return output + + +class Upsample1D(nn.Cell): + """ + An upsampling layer with an optional convolution. + + Parameters: + channels: channels in the inputs and outputs. + use_conv: a bool determining if a convolution is applied. + use_conv_transpose: + out_channels: + """ + + def __init__( + self, + channels, + use_conv=False, + use_conv_transpose=False, + out_channels=None, + name="conv", + ): + super().__init__() + self.channels = channels + self.out_channels = out_channels or channels + self.use_conv = use_conv + self.use_conv_transpose = use_conv_transpose + self.name = name + + self.conv = None + if use_conv_transpose: + self.conv = nn.Conv1dTranspose( + channels, + self.out_channels, + kernel_size=4, + stride=2, + pad_mode="pad", + padding=1, + has_bias=True, + ) + elif use_conv: + self.conv = nn.Conv1d( + self.channels, + self.out_channels, + 3, + padding=1, + pad_mode="pad", + has_bias=True, + ) + + def construct(self, x): + """forward""" + assert x.shape[1] == self.channels + if self.use_conv_transpose: + return self.conv(x) + + x = ops.interpolate(x, scale_factor=2.0, mode="nearest") + + if self.use_conv: + x = self.conv(x) + + return x + + +class Downsample1D(nn.Cell): + """ + A downsampling layer with an optional convolution. + + Parameters: + channels: channels in the inputs and outputs. + use_conv: a bool determining if a convolution is applied. + out_channels: + padding: + """ + + def __init__( + self, channels, use_conv=False, out_channels=None, padding=1, name="conv" + ): + super().__init__() + self.channels = channels + self.out_channels = out_channels or channels + self.use_conv = use_conv + self.padding = padding + stride = 2 + self.name = name + + if use_conv: + self.conv = nn.Conv1d( + self.channels, + self.out_channels, + 3, + stride=stride, + padding=padding, + pad_mode="pad", + has_bias=True, + ) + else: + assert self.channels == self.out_channels + self.conv = AvgPool1d(kernel_size=stride, stride=stride) + + def construct(self, x): + assert x.shape[1] == self.channels + return self.conv(x) + + +class Upsample2D(nn.Cell): + """ + An upsampling layer with an optional convolution. + + Parameters: + channels: channels in the inputs and outputs. + use_conv: a bool determining if a convolution is applied. + use_conv_transpose: + out_channels: + """ + + def __init__( + self, + channels, + use_conv=False, + use_conv_transpose=False, + out_channels=None, + name="conv", + ): + super().__init__() + self.channels = channels + self.out_channels = out_channels or channels + self.use_conv = use_conv + self.use_conv_transpose = use_conv_transpose + self.name = name + + conv = None + if use_conv_transpose: + conv = nn.Conv2dTranspose( + channels, + self.out_channels, + kernel_size=4, + stride=2, + padding=1, + pad_mode="pad", + has_bias=True, + ) + elif use_conv: + conv = nn.Conv2d( + self.channels, + self.out_channels, + kernel_size=3, + padding=1, + pad_mode="pad", + has_bias=True, + ) + if name == "conv": + self.conv = conv + else: + self.conv2d_0 = conv + + def construct(self, hidden_states, output_size=None): + """forward""" + assert hidden_states.shape[1] == self.channels + + if self.use_conv_transpose: + return self.conv(hidden_states) + + dtype = hidden_states.dtype + if dtype == ms.bfloat16: + hidden_states = hidden_states.to(ms.float32) + if hidden_states.shape[0] >= 64: + hidden_states = hidden_states.contiguous() + if output_size is None: + hidden_states = ops.interpolate( + hidden_states, + scale_factor=2.0, + recompute_scale_factor=True, + mode="nearest", + ) + else: + hidden_states = ops.interpolate( + hidden_states, size=output_size, mode="nearest" + ) + + if dtype == ms.bfloat16: + hidden_states = hidden_states.to(dtype) + if self.use_conv: + if self.name == "conv": + hidden_states = self.conv(hidden_states) + else: + hidden_states = self.conv2d_0(hidden_states) + + return hidden_states + + +class Downsample2D(nn.Cell): + """ + A downsampling layer with an optional convolution. + + Parameters: + channels: channels in the inputs and outputs. + use_conv: a bool determining if a convolution is applied. + out_channels: + padding: + """ + + def __init__( + self, channels, use_conv=False, out_channels=None, padding=1, name="conv" + ): + super().__init__() + self.channels = channels + self.out_channels = out_channels or channels + self.use_conv = use_conv + self.padding = padding + stride = 2 + self.name = name + + if use_conv: + conv = nn.Conv2d( + self.channels, + self.out_channels, + kernel_size=3, + stride=stride, + padding=padding, + pad_mode="pad", + has_bias=True, + ) + else: + assert self.channels == self.out_channels + conv = mint.nn.AvgPool2d(kernel_size=stride, stride=stride) + if name == "conv": + self.conv2d_0 = conv + self.conv = conv + elif name == "Conv2d_0": + self.conv = conv + else: + self.conv = conv + + def construct(self, hidden_states): + """forward""" + assert hidden_states.shape[1] == self.channels + if self.use_conv and self.padding == 0: + pad = (0, 1, 0, 1) + hidden_states = ops.pad(hidden_states, pad, mode="constant", value=None) + + assert hidden_states.shape[1] == self.channels + hidden_states = self.conv(hidden_states) + + return hidden_states + + +class FirUpsample2D(nn.Cell): + """ + 2D upsampling layer with optional FIR filtering and convolutional projection. + Implements pixel-shuffle based upsampling with optional convolutional transformation. + """ + def __init__( + self, channels=None, out_channels=None, use_conv=False, fir_kernel=(1, 3, 3, 1) + ): + """ + Initialize upsample layer parameters. + + Args: + channels (int): Number of input channels + out_channels (int): Number of output channels (defaults to input channels if not specified) + use_conv (bool): Whether to apply 3x3 convolution after upsampling + fir_kernel (tuple): FIR filter kernel coefficients for antialiasing + + Raises: + ValueError: If invalid kernel parameters are provided + """ + super().__init__() + out_channels = out_channels if out_channels else channels + if use_conv: + self.conv2d_0 = nn.Conv2d( + channels, + out_channels, + kernel_size=3, + stride=1, + padding=1, + pad_mode="pad", + has_bias=True, + ) + self.use_conv = use_conv + self.fir_kernel = fir_kernel + self.out_channels = out_channels + + def _upsample_2d(self, hidden_states, weight=None, kernel=None, factor=2, gain=1): + """ + Core upsampling operation with optional convolution and FIR filtering. + """ + + assert isinstance(factor, int) and factor >= 1 + + # Setup filter kernel. + if kernel is None: + kernel = [1] * factor + + # setup kernel + kernel = Tensor(kernel, dtype=ms.float32) + if kernel.ndim == 1: + kernel = ops.outer(kernel, kernel) + kernel /= ops.sum(kernel) + + kernel = kernel * (gain * (factor**2)) + + if self.use_conv: + convh = weight.shape[2] + convw = weight.shape[3] + in_c = weight.shape[1] + + pad_value = (kernel.shape[0] - factor) - (convw - 1) + + stride = (factor, factor) + # Determine data dimensions. + output_shape = ( + (hidden_states.shape[2] - 1) * factor + convh, + (hidden_states.shape[3] - 1) * factor + convw, + ) + output_padding = ( + output_shape[0] - (hidden_states.shape[2] - 1) * stride[0] - convh, + output_shape[1] - (hidden_states.shape[3] - 1) * stride[1] - convw, + ) + assert output_padding[0] >= 0 and output_padding[1] >= 0 + num_groups = hidden_states.shape[1] // in_c + + # Transpose weights. + weight = ops.reshape(weight, (num_groups, -1, in_c, convh, convw)) + weight = ops.flip(weight, dims=[3, 4]).permute(0, 2, 1, 3, 4) + weight = ops.reshape(weight, (num_groups * in_c, -1, convh, convw)) + conv_transpose2d = nn.Conv2dTranspose( + weight[0], + weight[1], + (weight[2], weight[3]), + stride=stride, + output_padding=output_padding, + padding=0, + pad_mode="pad", + ) + inverse_conv = conv_transpose2d(hidden_states) + + output = upfirdn2d_native( + inverse_conv, + ms.tensor(kernel), + pad=((pad_value + 1) // 2 + factor - 1, pad_value // 2 + 1), + ) + else: + pad_value = kernel.shape[0] - factor + output = upfirdn2d_native( + hidden_states, + ms.tensor( + kernel, + ), + up=factor, + pad=((pad_value + 1) // 2 + factor - 1, pad_value // 2), + ) + + return output + + def construct(self, hidden_states): + """ + Apply upsampling transformation with optional convolutional projection. + """ + if self.use_conv: + height = self._upsample_2d( + hidden_states, self.conv2d_0.weight, kernel=self.fir_kernel + ) + height = height + self.conv2d_0.bias.reshape(1, -1, 1, 1) + else: + height = self._upsample_2d(hidden_states, kernel=self.fir_kernel, factor=2) + + return height + + +class FirDownsample2D(nn.Cell): + """ + 2D downsampling layer with optional FIR filtering and convolutional projection. + Implements anti-aliased downsampling with optional 3x3 convolution. + """ + def __init__( + self, channels=None, out_channels=None, use_conv=False, fir_kernel=(1, 3, 3, 1) + ): + """ + Initialize downsampling layer parameters. + Args: + channels (int): Number of input channels + out_channels (int): Number of output channels (defaults to input channels if not specified) + use_conv (bool): Whether to apply 3x3 convolution before downsampling + fir_kernel (tuple): FIR filter kernel coefficients for antialiasing + + Raises: + ValueError: If invalid kernel parameters are provided + """ + super().__init__() + out_channels = out_channels if out_channels else channels + if use_conv: + self.conv2d_0 = nn.Conv2d( + channels, + out_channels, + kernel_size=3, + stride=1, + padding=1, + pad_mode="pad", + has_bias=True, + ) + self.fir_kernel = fir_kernel + self.use_conv = use_conv + self.out_channels = out_channels + + def _downsample_2d(self, hidden_states, weight=None, kernel=None, factor=2, gain=1): + """ + Core downsampling operation with optional convolution and FIR filtering. + """ + assert isinstance(factor, int) and factor >= 1 + if kernel is None: + kernel = [1] * factor + + # setup kernel + kernel = ms.tensor(kernel, dtype=ms.float32) + if kernel.ndim == 1: + kernel = ms.outer(kernel, kernel) + kernel /= ms.sum(kernel) + + kernel = kernel * gain + + if self.use_conv: + _, _, _, convw = weight.shape + pad_value = (kernel.shape[0] - factor) + (convw - 1) + stride_value = [factor, factor] + upfirdn_input = upfirdn2d_native( + hidden_states, + ms.tensor(kernel), + pad=((pad_value + 1) // 2, pad_value // 2), + ) + output = ops.conv2d(upfirdn_input, weight, stride=stride_value, padding=0) + else: + pad_value = kernel.shape[0] - factor + output = upfirdn2d_native( + hidden_states, + ms.tensor(kernel), + down=factor, + pad=((pad_value + 1) // 2, pad_value // 2), + ) + + return output + + def construct(self, hidden_states): + """ + Apply downsampling transformation with optional convolutional projection. + """ + if self.use_conv: + downsample_input = self._downsample_2d( + hidden_states, weight=self.conv2d_0.weight, kernel=self.fir_kernel + ) + hidden_states = downsample_input + self.conv2d_0.bias.reshape(1, -1, 1, 1) + else: + hidden_states = self._downsample_2d( + hidden_states, kernel=self.fir_kernel, factor=2 + ) + + return hidden_states + + +class ResnetBlock2D(nn.Cell): + """ + 2D ResNet block with optional time embeddings and spatial transformations. + Implements pre-activation residual connections with optional upsampling/downsampling. + """ + def __init__( + self, + *, + in_channels, + out_channels=None, + conv_shortcut=False, + dropout=0.0, + temb_channels=512, + groups=32, + groups_out=None, + pre_norm=True, + eps=1e-6, + non_linearity="swish", + time_embedding_norm="default", + kernel=None, + output_scale_factor=1.0, + use_in_shortcut=None, + up=False, + down=False, + ): + """ + Initialize ResNet block with configurable normalization and spatial transformations. + + Args: + in_channels (int): Number of input channels + out_channels (int): Number of output channels (defaults to in_channels) + conv_shortcut (bool): Use 1x1 convolution for shortcut connection + dropout (float): Dropout probability (default=0) + temb_channels (int): Time embedding dimension (default=512) + groups (int): Number of groups for group normalization + groups_out (int): Groups for second normalization layer (defaults to groups) + pre_norm (bool): Apply normalization before non-linearity + eps (float): Epsilon for numerical stability in normalization + non_linearity (str): Activation function type ("swish", "mish", "silu") + time_embedding_norm (str): Time embedding normalization mode ("default" or "scale_shift") + kernel (str): Upsample/downsample kernel type ("fir", "sde_vp") + output_scale_factor (float): Output scaling factor (default=1.0) + use_in_shortcut (bool): Force shortcut connection usage + up (bool): Enable upsampling transformation + down (bool): Enable downsampling transformation + + Raises: + ValueError: If invalid non_linearity or time_embedding_norm values are provided + """ + super().__init__() + self.pre_norm = pre_norm + self.pre_norm = True + self.in_channels = in_channels + out_channels = in_channels if out_channels is None else out_channels + self.out_channels = out_channels + self.use_conv_shortcut = conv_shortcut + self.time_embedding_norm = time_embedding_norm + self.up = up + self.down = down + self.output_scale_factor = output_scale_factor + self.groups = groups + self.in_channels = in_channels + self.eps = eps + if groups_out is None: + groups_out = groups + + self.norm1 = nn.GroupNorm( + num_groups=groups, num_channels=in_channels, eps=eps, affine=True + ) + + self.conv1 = nn.Conv2d( + in_channels, + out_channels, + kernel_size=3, + stride=1, + padding=1, + pad_mode="pad", + has_bias=True, + ) + + if temb_channels is not None: + if self.time_embedding_norm == "default": + time_emb_proj_out_channels = out_channels + elif self.time_embedding_norm == "scale_shift": + time_emb_proj_out_channels = out_channels * 2 + else: + raise ValueError( + f"unknown time_embedding_norm : {self.time_embedding_norm} " + ) + + self.time_emb_proj = nn.Dense(temb_channels, time_emb_proj_out_channels) + else: + self.time_emb_proj = None + + self.norm2 = nn.GroupNorm( + num_groups=groups_out, num_channels=out_channels, eps=eps, affine=True + ) + self.dropout = nn.Dropout(p=dropout) + self.conv2 = mint.nn.Conv2d( + out_channels, out_channels, kernel_size=3, stride=1, padding=1 + ) + if non_linearity == "swish": + self.nonlinearity = ops.silu() + elif non_linearity == "mish": + self.nonlinearity = Mish() + elif non_linearity == "silu": + self.nonlinearity = nn.SiLU() + + self.upsample = self.downsample = None + if self.up: + if kernel == "fir": + fir_kernel = (1, 3, 3, 1) + self.upsample = lambda x: upsample_2d(x, kernel=fir_kernel) + elif kernel == "sde_vp": + self.upsample = partial( + ops.interpolate, scale_factor=2.0, mode="nearest" + ) + else: + self.upsample = Upsample2D(in_channels, use_conv=False) + elif self.down: + if kernel == "fir": + fir_kernel = (1, 3, 3, 1) + self.downsample = lambda x: downsample_2d(x, kernel=fir_kernel) + elif kernel == "sde_vp": + self.downsample = partial(mint.nn.AvgPool2d, kernel_size=2, stride=2) + else: + self.downsample = Downsample2D( + in_channels, use_conv=False, padding=1, name="op" + ) + + self.use_in_shortcut = ( + self.in_channels != self.out_channels + if use_in_shortcut is None + else use_in_shortcut + ) + + self.conv_shortcut = None + if self.use_in_shortcut: + self.conv_shortcut = nn.Conv2d( + in_channels, + out_channels, + kernel_size=1, + stride=1, + padding=0, + pad_mode="pad", + has_bias=True, + ) + + def construct(self, input_tensor, temb): + """ + Forward pass of the ResNet block. + + Args: + input_tensor (Tensor): Input tensor of shape (batch, channels, height, width). + temb (Tensor): Optional time embedding tensor. + + Returns: + Tensor: Output tensor after applying residual block operations. + """ + hidden_states = input_tensor + hidden_states = self.norm1(hidden_states) + hidden_states = self.nonlinearity(hidden_states) + if self.upsample is not None: + input_tensor = self.upsample(input_tensor) + hidden_states = self.upsample(hidden_states) + + elif self.downsample is not None: + input_tensor = self.downsample(input_tensor) + hidden_states = self.downsample(hidden_states) + hidden_states = self.conv1(hidden_states) + if temb is not None: + temb = self.time_emb_proj(self.nonlinearity(temb))[:, :, None, None] + if temb is not None and self.time_embedding_norm == "default": + hidden_states = hidden_states + temb + hidden_states = self.norm2(hidden_states) + if temb is not None and self.time_embedding_norm == "scale_shift": + scale, shift = ops.chunk(temb, 2, axis=1) + hidden_states = hidden_states * (1 + scale) + shift + hidden_states = self.nonlinearity(hidden_states) + hidden_states = self.dropout(hidden_states) + hidden_states = self.conv2(hidden_states) + if self.conv_shortcut is not None: + input_tensor = self.conv_shortcut(input_tensor) + output_tensor = (input_tensor + hidden_states) / self.output_scale_factor + return output_tensor + + +class Mish(nn.Cell): + """Implements the Mish activation function: x * tanh(softplus(x)).""" + def __init__(self): + super().__init__() + self.tanh = ops.Tanh() + self.softplus = ops.Softplus() + + def construct(self, hidden_states): + """Compute Mish activation on input tensor.""" + return hidden_states * self.tanh(self.softplus(hidden_states)) + + +def rearrange_dims(tensor): + """ + Adjust tensor dimensions based on input shape: + - 2D → add two singleton dimensions + - 3D → add one singleton dimension + - 4D → squeeze spatial dimensions + + Args: + tensor (Tensor): Input tensor. + + Returns: + Tensor: Dimension-adjusted tensor. + + Raises: + ValueError: If input tensor has invalid dimensions. + """ + if len(tensor.shape) == 2: + return tensor[:, :, None] + if len(tensor.shape) == 3: + return tensor[:, :, None, :] + if len(tensor.shape) == 4: + return tensor[:, :, 0, :] + raise ValueError(f"`len(tensor)`: {len(tensor)} has to be 2, 3 or 4.") + + +class Conv1dBlock(nn.Cell): + """ + 1D Convolution block with GroupNorm and Mish activation. + + Args: + inp_channels (int): Number of input channels. + out_channels (int): Number of output channels. + kernel_size (int): Convolution kernel size. + n_groups (int): Number of groups for GroupNorm. Defaults to 8. + """ + def __init__(self, inp_channels, out_channels, kernel_size, n_groups=8): + super().__init__() + + self.conv1d = nn.Conv1d( + inp_channels, + out_channels, + kernel_size, + padding=kernel_size // 2, + has_bias=True, + pad_mode="valid", + ) + self.group_norm = nn.GroupNorm(n_groups, out_channels) + self.mish = ops.mish() + + def construct(self, x): + """Apply convolution, normalization, dimension rearrangement and activation.""" + x = self.conv1d(x) + x = rearrange_dims(x) + x = self.group_norm(x) + x = rearrange_dims(x) + x = self.mish(x) + return x + + +class ResidualTemporalBlock1D(nn.Cell): + """ResidualTemporalBlock1D""" + def __init__(self, inp_channels, out_channels, embed_dim, kernel_size=5): + super().__init__() + self.conv_in = Conv1dBlock(inp_channels, out_channels, kernel_size) + self.conv_out = Conv1dBlock(out_channels, out_channels, kernel_size) + + self.time_emb_act = nn.Mish() + self.time_emb = nn.Linear(embed_dim, out_channels) + + self.residual_conv = ( + nn.Conv1d(inp_channels, out_channels, 1, has_bias=True, pad_mode="valid") + if inp_channels != out_channels + else nn.Identity() + ) + + def construct(self, x, t): + """ + Args: + x : [ batch_size x inp_channels x horizon ] + t : [ batch_size x embed_dim ] + + returns: + out : [ batch_size x out_channels x horizon ] + """ + t = self.time_emb_act(t) + t = self.time_emb(t) + out = self.conv_in(x) + rearrange_dims(t) + out = self.conv_out(out) + return out + self.residual_conv(x) + + +def upsample_2d(hidden_states, kernel=None, factor=2, gain=1): + """Upsample2D a batch of 2D images with the given filter.""" + assert isinstance(factor, int) and factor >= 1 + if kernel is None: + kernel = [1] * factor + + kernel = ms.tensor(kernel, dtype=ms.float32) + if kernel.ndim == 1: + kernel = ms.outer(kernel, kernel) + kernel /= ms.sum(kernel) + + kernel = kernel * (gain * (factor**2)) + pad_value = kernel.shape[0] - factor + output = upfirdn2d_native( + hidden_states, + up=factor, + pad=((pad_value + 1) // 2 + factor - 1, pad_value // 2), + ) + return output + + +def downsample_2d(hidden_states, kernel=None, factor=2, gain=1): + """Downsample2D a batch of 2D images with the given filter.""" + assert isinstance(factor, int) and factor >= 1 + if kernel is None: + kernel = [1] * factor + + kernel = ms.tensor(kernel, dtype=ms.float32) + if kernel.ndim == 1: + kernel = ms.outer(kernel, kernel) + kernel /= ms.sum(kernel) + + kernel = kernel * gain + pad_value = kernel.shape[0] - factor + output = upfirdn2d_native( + hidden_states, + down=factor, + pad=((pad_value + 1) // 2, pad_value // 2), + ) + return output + + +def upfirdn2d_native(tensor, kernel=None, up=1, down=1, pad=(0, 0)): + """upfirdn2d native""" + up_x = up_y = up + down_x = down_y = down + pad_x0 = pad_y0 = pad[0] + pad_x1 = pad_y1 = pad[1] + + _, channel, in_h, in_w = tensor.shape + tensor = tensor.reshape(-1, in_h, in_w, 1) + + _, in_h, in_w, minor = tensor.shape + kernel_h, kernel_w = kernel.shape + + out = tensor.view(-1, in_h, 1, in_w, 1, minor) + out = ops.pad(out, [0, 0, 0, up_x - 1, 0, 0, 0, up_y - 1]) + out = out.view(-1, in_h * up_y, in_w * up_x, minor) + + out = ops.pad( + out, [0, 0, max(pad_x0, 0), max(pad_x1, 0), max(pad_y0, 0), max(pad_y1, 0)] + ) + out = out[ + :, + max(-pad_y0, 0) : out.shape[1] - max(-pad_y1, 0), + max(-pad_x0, 0) : out.shape[2] - max(-pad_x1, 0), + :, + ] + + out = out.permute(0, 3, 1, 2) + out = out.reshape( + [-1, 1, in_h * up_y + pad_y0 + pad_y1, in_w * up_x + pad_x0 + pad_x1] + ) + w = ms.flip(kernel, [0, 1]).view(1, 1, kernel_h, kernel_w) + out = ops.conv2d(out, w) + out = out.reshape( + -1, + minor, + in_h * up_y + pad_y0 + pad_y1 - kernel_h + 1, + in_w * up_x + pad_x0 + pad_x1 - kernel_w + 1, + ) + out = out.permute(0, 2, 3, 1) + out = out[:, ::down_y, ::down_x, :] + + out_h = (in_h * up_y + pad_y0 + pad_y1 - kernel_h) // down_y + 1 + out_w = (in_w * up_x + pad_x0 + pad_x1 - kernel_w) // down_x + 1 + + return out.view(-1, channel, out_h, out_w) diff --git a/MindEarth/applications/nowcasting/PreDiff/src/vae/unet_2d_blocks.py b/MindEarth/applications/nowcasting/PreDiff/src/vae/unet_2d_blocks.py new file mode 100644 index 000000000..4f98b3d5e --- /dev/null +++ b/MindEarth/applications/nowcasting/PreDiff/src/vae/unet_2d_blocks.py @@ -0,0 +1,508 @@ +# Copyright 2023 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +"UNetMidBlock2D" +import math +from typing import Optional + +import mindspore as ms +from mindspore import nn, ops + +from .resnet import Downsample2D, ResnetBlock2D, Upsample2D + + +def get_down_block( + down_block_type, + num_layers, + in_channels, + out_channels, + temb_channels, + add_downsample, + resnet_eps, + resnet_act_fn, + attn_num_head_channels, + resnet_groups=None, + cross_attention_dim=None, + downsample_padding=None, + dual_cross_attention=False, + use_linear_projection=False, + only_cross_attention=False, + upcast_attention=False, + resnet_time_scale_shift="default", +): + """set down_block""" + down_block_type = ( + down_block_type[7:] + if down_block_type.startswith("UNetRes") + else down_block_type + ) + if down_block_type == "DownEncoderBlock2D": + return DownEncoderBlock2D( + num_layers=num_layers, + in_channels=in_channels, + out_channels=out_channels, + add_downsample=add_downsample, + resnet_eps=resnet_eps, + resnet_act_fn=resnet_act_fn, + resnet_groups=resnet_groups, + downsample_padding=downsample_padding, + resnet_time_scale_shift=resnet_time_scale_shift, + ) + raise ValueError(f"{down_block_type} does not exist.") + + +def get_up_block( + up_block_type, + num_layers, + in_channels, + out_channels, + prev_output_channel, + temb_channels, + add_upsample, + resnet_eps, + resnet_act_fn, + attn_num_head_channels, + resnet_groups=None, + cross_attention_dim=None, + dual_cross_attention=False, + use_linear_projection=False, + only_cross_attention=False, + upcast_attention=False, + resnet_time_scale_shift="default", +): + """set up_block""" + up_block_type = ( + up_block_type[7:] if up_block_type.startswith("UNetRes") else up_block_type + ) + if up_block_type == "UpDecoderBlock2D": + return UpDecoderBlock2D( + num_layers=num_layers, + in_channels=in_channels, + out_channels=out_channels, + add_upsample=add_upsample, + resnet_eps=resnet_eps, + resnet_act_fn=resnet_act_fn, + resnet_groups=resnet_groups, + resnet_time_scale_shift=resnet_time_scale_shift, + ) + raise ValueError(f"{up_block_type} does not exist.") + + +class AttentionBlock(nn.Cell): + """ + An attention block that allows spatial positions to attend to each other. Originally ported from here, but adapted + to the N-d case. Uses three q, k, v linear layers to compute attention. + + Args: + channels (int): The number of channels in the input and output. + num_head_channels (int, optional): The number of channels in each attention head. If None, uses a single head. + norm_num_groups (int, optional): Number of groups for group normalization (default: 32). + rescale_output_factor (float, optional): Factor to rescale the output (default: 1.0). + eps (float, optional): Epsilon value for group normalization (default: 1e-5). + + Attributes: + num_heads (int): Calculated number of attention heads based on `num_head_channels`. + group_norm (nn.GroupNorm): Group normalization layer. + query/key/value (nn.Dense): Linear layers for query, key, and value projections. + proj_attn (nn.Dense): Final projection layer after attention computation. + """ + + def __init__( + self, + channels: int, + num_head_channels: Optional[int] = None, + norm_num_groups: int = 32, + rescale_output_factor: float = 1.0, + eps: float = 1e-5, + ): + super().__init__() + self.channels = channels + + self.num_heads = ( + channels // num_head_channels if num_head_channels is not None else 1 + ) + self.num_head_size = num_head_channels + self.group_norm = nn.GroupNorm( + num_channels=channels, num_groups=norm_num_groups, eps=eps, affine=True + ) + + # define q,k,v as linear layers + self.query = nn.Dense(channels, channels) + self.key = nn.Dense(channels, channels) + self.value = nn.Dense(channels, channels) + + self.rescale_output_factor = rescale_output_factor + self.proj_attn = nn.Dense(channels, channels, 1) + + self._use_memory_efficient_attention_xformers = False + self._attention_op = None + self.softmax_op = ops.Softmax(axis=-1) + + def reshape_heads_to_batch_dim(self, tensor): + """ + Reshape tensor to split attention heads into batch dimension for efficient computation." + """ + batch_size, seq_in, dim = tensor.shape + head_size = self.num_heads + tensor = tensor.reshape(batch_size, seq_in, head_size, dim // head_size) + tensor = tensor.permute(0, 2, 1, 3).reshape( + batch_size * head_size, seq_in, dim // head_size + ) + return tensor + + def reshape_batch_dim_to_heads(self, tensor): + """ + Reverse reshape_heads_to_batch_dim to merge batch dimension back into heads." + """ + batch_size, seq_in, dim = tensor.shape + head_size = self.num_heads + tensor = tensor.reshape(batch_size // head_size, head_size, seq_in, dim) + tensor = tensor.permute(0, 2, 1, 3).reshape( + batch_size // head_size, seq_in, dim * head_size + ) + return tensor + + def construct(self, hidden_states): + """Compute multi-head self-attention.""" + residual = hidden_states + batch, channel, height, width = hidden_states.shape + hidden_states = self.group_norm(hidden_states) + hidden_states = hidden_states.view(batch, channel, height * width).swapaxes( + 1, 2 + ) + query_proj = self.query(hidden_states) + key_proj = self.key(hidden_states) + value_proj = self.value(hidden_states) + + scale = 1 / math.sqrt(self.channels / self.num_heads) + + query_proj = self.reshape_heads_to_batch_dim(query_proj) + key_proj = self.reshape_heads_to_batch_dim(key_proj) + value_proj = self.reshape_heads_to_batch_dim(value_proj) + + shape = (query_proj.shape[0], query_proj.shape[1], key_proj.shape[1]) + uninitialized_tensor = ms.numpy.empty(shape=shape, dtype=query_proj.dtype) + attention_scores = ops.baddbmm( + uninitialized_tensor, + query_proj, + key_proj.swapaxes(-1, -2), + beta=0, + alpha=scale, + ) + attention_probs = self.softmax_op(attention_scores.astype(ms.float32)).type( + attention_scores.dtype + ) + + hidden_states = ops.bmm(attention_probs, value_proj) + hidden_states = self.reshape_batch_dim_to_heads(hidden_states) + hidden_states = self.proj_attn(hidden_states) + + hidden_states = hidden_states.swapaxes(-1, -2).reshape( + batch, channel, height, width + ) + hidden_states = (hidden_states + residual) / self.rescale_output_factor + return hidden_states + + +class UNetMidBlock2D(nn.Cell): + """ + UNet middle block for 2D architectures. + """ + def __init__( + self, + in_channels: int, + temb_channels: int, + dropout: float = 0.0, + num_layers: int = 1, + resnet_eps: float = 1e-6, + resnet_time_scale_shift: str = "default", + resnet_act_fn: str = "swish", + resnet_groups: int = 32, + resnet_pre_norm: bool = True, + add_attention: bool = True, + attn_num_head_channels=1, + output_scale_factor=1.0, + ): + """ + UNet middle block for 2D architectures. Contains residual blocks and optional attention layers. + + Args: + in_channels (int): Number of input channels. + temb_channels (int): Number of time embedding channels. + dropout (float): Dropout probability (default: 0.0). + num_layers (int): Number of residual blocks (default: 1). + resnet_eps (float): Epsilon for ResNet normalization (default: 1e-6). + resnet_time_scale_shift (str): Time scale shift method for ResNet ("default" or "scale_shift"). + resnet_act_fn (str): Activation function for ResNet layers (default: "swish"). + resnet_groups (int): Number of groups for group normalization in ResNet. + resnet_pre_norm (bool): Whether to use pre-normalization in ResNet. + add_attention (bool): Whether to include attention blocks (default: True). + attn_num_head_channels (int): Number of channels per attention head. + output_scale_factor (float): Scaling factor for output (default: 1.0). + + Attributes: + resnets (nn.CellList): List of ResNet blocks. + attentions (nn.CellList): List of attention blocks (or None if disabled). + """ + super().__init__() + resnet_groups = ( + resnet_groups if resnet_groups is not None else min(in_channels // 4, 32) + ) + self.add_attention = add_attention + self.num_layers = num_layers + # there is always at least one resnet + resnets = [ + ResnetBlock2D( + in_channels=in_channels, + out_channels=in_channels, + temb_channels=temb_channels, + eps=resnet_eps, + groups=resnet_groups, + dropout=dropout, + time_embedding_norm=resnet_time_scale_shift, + non_linearity=resnet_act_fn, + output_scale_factor=output_scale_factor, + pre_norm=resnet_pre_norm, + ) + ] + attentions = [] + + for _ in range(self.num_layers): + if self.add_attention: + attentions.append( + AttentionBlock( + in_channels, + num_head_channels=attn_num_head_channels, + rescale_output_factor=output_scale_factor, + eps=resnet_eps, + norm_num_groups=resnet_groups, + ) + ) + else: + attentions.append(None) + + resnets.append( + ResnetBlock2D( + in_channels=in_channels, + out_channels=in_channels, + temb_channels=temb_channels, + eps=resnet_eps, + groups=resnet_groups, + dropout=dropout, + time_embedding_norm=resnet_time_scale_shift, + non_linearity=resnet_act_fn, + output_scale_factor=output_scale_factor, + pre_norm=resnet_pre_norm, + ) + ) + + self.attentions = nn.CellList(attentions) + self.resnets = nn.CellList(resnets) + + def construct(self, hidden_states, temb=None): + """ + Forward pass through the middle block. + + Args: + hidden_states (Tensor): Input tensor. + temb (Tensor, optional): Time embedding tensor. + + Returns: + Tensor: Output tensor after processing through all blocks. + """ + + hidden_states = self.resnets[0](hidden_states, temb) + for attn, resnet in zip(self.attentions, self.resnets[1:]): + if attn is not None: + hidden_states = attn(hidden_states) + hidden_states = resnet(hidden_states, temb) + + return hidden_states + + +class DownEncoderBlock2D(nn.Cell): + """ + Downsample block for encoder part of UNet. + """ + def __init__( + self, + in_channels: int, + out_channels: int, + dropout: float = 0.0, + num_layers: int = 1, + resnet_eps: float = 1e-6, + resnet_time_scale_shift: str = "default", + resnet_act_fn: str = "swish", + resnet_groups: int = 32, + resnet_pre_norm: bool = True, + output_scale_factor=1.0, + add_downsample=True, + downsample_padding=1, + ): + """ + Downsample block for encoder part of UNet. Contains residual blocks and optional downsampling. + + Args: + in_channels (int): Number of input channels. + out_channels (int): Number of output channels. + dropout (float): Dropout probability (default: 0.0). + num_layers (int): Number of residual blocks (default: 1). + resnet_eps (float): Epsilon for ResNet normalization (default: 1e-6). + resnet_time_scale_shift (str): Time scale shift method for ResNet ("default" or "scale_shift"). + resnet_act_fn (str): Activation function for ResNet layers (default: "swish"). + resnet_groups (int): Number of groups for group normalization in ResNet. + resnet_pre_norm (bool): Whether to use pre-normalization in ResNet. + output_scale_factor (float): Scaling factor for output (default: 1.0). + add_downsample (bool): Whether to include downsampling layer (default: True). + downsample_padding (int): Padding for downsampling convolution (default: 1). + + Attributes: + resnets (nn.CellList): List of ResNet blocks. + downsamplers (nn.CellList or None): Downsampling layer if enabled. + """ + super().__init__() + resnets = [] + + for i in range(num_layers): + in_channels = in_channels if i == 0 else out_channels + resnets.append( + ResnetBlock2D( + in_channels=in_channels, + out_channels=out_channels, + temb_channels=None, + eps=resnet_eps, + groups=resnet_groups, + dropout=dropout, + time_embedding_norm=resnet_time_scale_shift, + non_linearity=resnet_act_fn, + output_scale_factor=output_scale_factor, + pre_norm=resnet_pre_norm, + ) + ) + + self.resnets = nn.CellList(resnets) + + if add_downsample: + self.downsamplers = nn.CellList( + [ + Downsample2D( + out_channels, + use_conv=True, + out_channels=out_channels, + padding=downsample_padding, + name="op", + ) + ] + ) + else: + self.downsamplers = None + + def construct(self, hidden_states): + """ + Forward pass through the downsample block. + + Args: + hidden_states (Tensor): Input tensor. + + Returns: + Tensor: Output tensor after residual blocks and optional downsampling. + """ + for resnet in self.resnets: + hidden_states = resnet(hidden_states, temb=None) + + if self.downsamplers is not None: + for downsampler in self.downsamplers: + hidden_states = downsampler(hidden_states) + + return hidden_states + + +class UpDecoderBlock2D(nn.Cell): + """ + Upsample block for decoder part of UNet. + """ + def __init__( + self, + in_channels: int, + out_channels: int, + dropout: float = 0.0, + num_layers: int = 1, + resnet_eps: float = 1e-6, + resnet_time_scale_shift: str = "default", + resnet_act_fn: str = "swish", + resnet_groups: int = 32, + resnet_pre_norm: bool = True, + output_scale_factor=1.0, + add_upsample=True, + ): + """ + Upsample block for decoder part of UNet. Contains residual blocks and optional upsampling. + + Args: + in_channels (int): Number of input channels. + out_channels (int): Number of output channels. + dropout (float): Dropout probability (default: 0.0). + num_layers (int): Number of residual blocks (default: 1). + resnet_eps (float): Epsilon for ResNet normalization (default: 1e-6). + resnet_time_scale_shift (str): Time scale shift method for ResNet ("default" or "scale_shift"). + resnet_act_fn (str): Activation function for ResNet layers (default: "swish"). + resnet_groups (int): Number of groups for group normalization in ResNet. + resnet_pre_norm (bool): Whether to use pre-normalization in ResNet. + output_scale_factor (float): Scaling factor for output (default: 1.0). + add_upsample (bool): Whether to include upsampling layer (default: True). + + Attributes: + resnets (nn.CellList): List of ResNet blocks. + upsamplers (nn.CellList or None): Upsampling layer if enabled. + """ + super().__init__() + resnets = [] + + for i in range(num_layers): + input_channels = in_channels if i == 0 else out_channels + + resnets.append( + ResnetBlock2D( + in_channels=input_channels, + out_channels=out_channels, + temb_channels=None, + eps=resnet_eps, + groups=resnet_groups, + dropout=dropout, + time_embedding_norm=resnet_time_scale_shift, + non_linearity=resnet_act_fn, + output_scale_factor=output_scale_factor, + pre_norm=resnet_pre_norm, + ) + ) + + self.resnets = nn.CellList(resnets) + + if add_upsample: + self.upsamplers = nn.CellList( + [Upsample2D(out_channels, use_conv=True, out_channels=out_channels)] + ) + else: + self.upsamplers = None + + def construct(self, hidden_states): + """Forward pass through the upsample block.""" + for resnet in self.resnets: + hidden_states = resnet(hidden_states, temb=None) + + if self.upsamplers is not None: + for upsampler in self.upsamplers: + hidden_states = upsampler(hidden_states) + + return hidden_states diff --git a/MindEarth/applications/nowcasting/PreDiff/src/visual.py b/MindEarth/applications/nowcasting/PreDiff/src/visual.py new file mode 100644 index 000000000..343f3e17e --- /dev/null +++ b/MindEarth/applications/nowcasting/PreDiff/src/visual.py @@ -0,0 +1,203 @@ +# Copyright 2023 Huawei Technologies Co., Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +"visualization" +import math +from copy import deepcopy +from typing import Optional, Sequence, Union, Dict +from matplotlib import pyplot as plt +from matplotlib.colors import ListedColormap, BoundaryNorm +from matplotlib.font_manager import FontProperties +from matplotlib.patches import Patch +import numpy as np + + +VIL_COLORS = [ + [0, 0, 0], + [0.30196078431372547, 0.30196078431372547, 0.30196078431372547], + [0.1568627450980392, 0.7450980392156863, 0.1568627450980392], + [0.09803921568627451, 0.5882352941176471, 0.09803921568627451], + [0.0392156862745098, 0.4117647058823529, 0.0392156862745098], + [0.0392156862745098, 0.29411764705882354, 0.0392156862745098], + [0.9607843137254902, 0.9607843137254902, 0.0], + [0.9294117647058824, 0.6745098039215687, 0.0], + [0.9411764705882353, 0.43137254901960786, 0.0], + [0.6274509803921569, 0.0, 0.0], + [0.9058823529411765, 0.0, 1.0], +] + +VIL_LEVELS = [0.0, 16.0, 31.0, 59.0, 74.0, 100.0, 133.0, 160.0, 181.0, 219.0, 255.0] + + +def vil_cmap(): + """ + Generate a ListedColormap and normalization for VIL (Vertically Integrated Liquid) visualization. + + This function creates a colormap with specific color levels for VIL data visualization. It sets under/over colors + for values outside the defined levels and handles invalid (NaN) values. + + Returns: + tuple: A tuple containing: + - cmap (ListedColormap): Colormap object with defined colors. + - norm (BoundaryNorm): Normalization object based on VIL levels. + - vmin (None): Minimum value for colormap (set to None). + - vmax (None): Maximum value for colormap (set to None). + """ + cols = deepcopy(VIL_COLORS) + lev = deepcopy(VIL_LEVELS) + nil = cols.pop(0) + under = cols[0] + over = cols[-1] + cmap = ListedColormap(cols) + cmap.set_bad(nil) + cmap.set_under(under) + cmap.set_over(over) + norm = BoundaryNorm(lev, cmap.N) + vmin, vmax = None, None + return cmap, norm, vmin, vmax + + +def vis_sevir_seq( + save_path, + seq: Union[np.ndarray, Sequence[np.ndarray]], + label: Union[str, Sequence[str]] = "pred", + norm: Optional[Dict[str, float]] = None, + interval_real_time: float = 10.0, + plot_stride=2, + label_rotation=0, + label_offset=(-0.06, 0.4), + label_avg_int=False, + fs=10, + max_cols=10, +): + """Visualize SEVIR sequence data as a grid of images with colormap and annotations. + Args: + save_path (str): Path to save the output visualization figure. + seq (Union[np.ndarray, Sequence[np.ndarray]]): Input data sequence(s) to visualize. + Can be a single array or list of arrays. + label (Union[str, Sequence[str]], optional): Labels for each sequence. Defaults to "pred". + norm (Optional[Dict[str, float]], optional): Normalization parameters (scale/shift). + Defaults to {"scale": 255, "shift": 0}. + interval_real_time (float, optional): Time interval between frames in real time. Defaults to 10.0. + plot_stride (int, optional): Stride for subsampling frames. Defaults to 2. + label_rotation (int, optional): Rotation angle for y-axis labels. Defaults to 0. + label_offset (tuple, optional): Offset for y-axis label position. Defaults to (-0.06, 0.4). + label_avg_int (bool, optional): Append average intensity to labels. Defaults to False. + fs (int, optional): Font size for text elements. Defaults to 10. + max_cols (int, optional): Maximum number of columns per row. Defaults to 10. + + Raises: + NotImplementedError: If input sequence type is not supported. + + Returns: + None: Saves visualization to disk and closes the figure. + """ + def cmap_dict(): + return { + "cmap": vil_cmap()[0], + "norm": vil_cmap()[1], + "vmin": vil_cmap()[2], + "vmax": vil_cmap()[3], + } + + fontproperties = FontProperties() + fontproperties.set_family("serif") + fontproperties.set_size(fs) + + if isinstance(seq, Sequence): + seq_list = [ele.astype(np.float32) for ele in seq] + assert isinstance(label, Sequence) and len(label) == len(seq) + label_list = label + elif isinstance(seq, np.ndarray): + seq_list = [ + seq.astype(np.float32), + ] + assert isinstance(label, str) + label_list = [ + label, + ] + else: + raise NotImplementedError + if label_avg_int: + label_list = [ + f"{ele1}\nAvgInt = {np.mean(ele2): .3f}" + for ele1, ele2 in zip(label_list, seq_list) + ] + seq_list = [ele[::plot_stride, ...] for ele in seq_list] + seq_in_list = [len(ele) for ele in seq_list] + max_len = max(seq_in_list) + max_len = min(max_len, max_cols) + seq_list_wrap = [] + label_list_wrap = [] + seq_in_list_wrap = [] + for i, (processed_seq, processed_label, seq_in) in enumerate(zip(seq_list, label_list, seq_in_list)): + num_row = math.ceil(seq_in / max_len) + for j in range(num_row): + slice_end = min(seq_in, (j + 1) * max_len) + seq_list_wrap.append(processed_seq[j * max_len : slice_end]) + if j == 0: + label_list_wrap.append(processed_label) + else: + label_list_wrap.append("") + seq_in_list_wrap.append(min(seq_in - j * max_len, max_len)) + + if norm is None: + norm = {"scale": 255, "shift": 0} + nrows = len(seq_list_wrap) + fig, ax = plt.subplots(nrows=nrows, ncols=max_len, figsize=(3 * max_len, 3 * nrows)) + + for i, (processed_seq, processed_label, seq_in) in enumerate( + zip(seq_list_wrap, label_list_wrap, seq_in_list_wrap) + ): + ax[i][0].set_ylabel( + ylabel=processed_label, fontproperties=fontproperties, rotation=label_rotation + ) + ax[i][0].yaxis.set_label_coords(label_offset[0], label_offset[1]) + for j in range(0, max_len): + if j < seq_in: + x = processed_seq[j] * norm["scale"] + norm["shift"] + ax[i][j].imshow(x, **cmap_dict()) + if i == len(seq_list) - 1 and i > 0: + ax[-1][j].set_title( + f"Min {int(interval_real_time * (j + 1) * plot_stride)}", + y=-0.25, + fontproperties=fontproperties, + ) + else: + ax[i][j].axis("off") + + for i in range(len(ax)): + for j in range(len(ax[i])): + ax[i][j].xaxis.set_ticks([]) + ax[i][j].yaxis.set_ticks([]) + + num_thresh_legend = len(VIL_LEVELS) - 1 + legend_elements = [ + Patch( + facecolor=VIL_COLORS[i], + label=f"{int(VIL_LEVELS[i - 1])}-{int(VIL_LEVELS[i])}", + ) + for i in range(1, num_thresh_legend + 1) + ] + ax[0][0].legend( + handles=legend_elements, + loc="center left", + bbox_to_anchor=(-1.2, -0.0), + borderaxespad=0, + frameon=False, + fontsize="10", + ) + plt.subplots_adjust(hspace=0.05, wspace=0.05) + plt.savefig(save_path) + plt.close(fig) diff --git a/MindEarth/applications/nowcasting/dgmr/src/utils.py b/MindEarth/applications/nowcasting/dgmr/src/utils.py index d65e1102c..7df841fac 100644 --- a/MindEarth/applications/nowcasting/dgmr/src/utils.py +++ b/MindEarth/applications/nowcasting/dgmr/src/utils.py @@ -17,11 +17,6 @@ import os import numpy as np import matplotlib.pyplot as plt - -import mindspore.nn.probability.distribution as msd -from mindspore import ops - - from mindspore import context from mindspore.train.serialization import load_checkpoint, load_param_into_net import mindspore.communication.management as D @@ -50,12 +45,6 @@ def init_data_parallel(use_ascend): def init_model(config): r"""init model.""" model_params = config["model"] - - net = msd.Normal(0.0, 1.0, seed=42) - z = net.sample((8, 8, 8, 1)) - z = ops.transpose(z, (3, 0, 1, 2)) - print(z.shape) - g_model = DgmrGenerator( forecast_steps=model_params["forecast_steps"], in_channels=model_params["in_channels"], @@ -64,7 +53,6 @@ def init_model(config): latent_channels=model_params["latent_channels"], context_channels=model_params["context_channels"], generation_steps=model_params["generation_steps"], - z=z ) d_model = DgmrDiscriminator( in_channels=model_params["in_channels"], diff --git a/MindEarth/mindearth/cell/demnet/demnet.py b/MindEarth/mindearth/cell/demnet/demnet.py index 98bd1c6bb..b1981eb00 100644 --- a/MindEarth/mindearth/cell/demnet/demnet.py +++ b/MindEarth/mindearth/cell/demnet/demnet.py @@ -128,6 +128,8 @@ class DEMNet(nn.Cell): self.conv_up = nn.Conv2d(out_channels, out_channels, kernel_size, pad_mode='same') self.conv_out = nn.Conv2d(out_channels, in_channels, kernel_size, pad_mode='same') self.body = self.make_layer(ResBlock, num_blocks) + self.resizebilinear = ms.ops.ResizeBilinearV2() + def make_layer(self, block, layers): res_block = [] @@ -141,6 +143,6 @@ class DEMNet(nn.Cell): out = self.conv2(out) out += x out = self.conv_up(out) - out = ms.nn.ResizeBilinear()(out, scale_factor=self.scale) + out = self.resizebilinear(out, (out.shape[2]*self.scale, out.shape[3]*self.scale)) out = self.conv_out(out) return out diff --git a/MindEarth/mindearth/cell/dgmr/dgmr.py b/MindEarth/mindearth/cell/dgmr/dgmr.py index 2adf22623..9a327fd10 100644 --- a/MindEarth/mindearth/cell/dgmr/dgmr.py +++ b/MindEarth/mindearth/cell/dgmr/dgmr.py @@ -20,7 +20,7 @@ import numpy as np import mindspore as ms from mindspore import set_seed import mindspore.nn.probability.distribution as msd -from mindspore import nn, ops, Tensor, Parameter +from mindspore import nn, ops, Tensor, Parameter, mint from mindearth.cell.utils import SpectralNorm, PixelUnshuffle, PixelShuffle @@ -35,7 +35,7 @@ def get_conv_layer(conv_type="standard"): elif conv_type == "coord": conv_layer = CoordConv elif conv_type == "3d": - conv_layer = nn.Conv3d + conv_layer = mint.nn.Conv3d else: raise ValueError(f"{conv_type} is not a recognized Conv method") return conv_layer @@ -311,43 +311,74 @@ class DBlock(nn.Cell): conv2d = get_conv_layer(conv_type) if conv_type == "3d": # 3D Average pooling - self.pooling = ops.AvgPool3D(kernel_size=2, strides=2) + self.pooling = ops.MaxPool3D(kernel_size=2, strides=2) + self.conv_1x1 = conv2d( + in_channels=in_channels, + out_channels=out_channels, + kernel_size=1, + bias=True + ) + if use_spectral_norm: + self.conv_1x1 = SpectralNorm( + self.conv_1x1 + ) + + self.first_conv_3x3 = conv2d( + in_channels=in_channels, + out_channels=out_channels, + kernel_size=3, + padding=1, + bias=True + ) + if use_spectral_norm: + self.first_conv_3x3 = SpectralNorm( + self.first_conv_3x3 + ) + + self.last_conv_3x3 = conv2d( + in_channels=out_channels, + out_channels=out_channels, + kernel_size=3, + padding=1, + stride=1, + bias=True + ) else: self.pooling = nn.AvgPool2d(kernel_size=2, stride=2) - self.conv_1x1 = conv2d( - in_channels=in_channels, - out_channels=out_channels, - kernel_size=1, - has_bias=True - ) - if use_spectral_norm: - self.conv_1x1 = SpectralNorm( - self.conv_1x1 + self.conv_1x1 = conv2d( + in_channels=in_channels, + out_channels=out_channels, + kernel_size=1, + has_bias=True ) + if use_spectral_norm: + self.conv_1x1 = SpectralNorm( + self.conv_1x1 + ) - self.first_conv_3x3 = conv2d( - in_channels=in_channels, - out_channels=out_channels, - kernel_size=3, - padding=1, - pad_mode="pad", - has_bias=True - ) - if use_spectral_norm: - self.first_conv_3x3 = SpectralNorm( - self.first_conv_3x3 + self.first_conv_3x3 = conv2d( + in_channels=in_channels, + out_channels=out_channels, + kernel_size=3, + padding=1, + pad_mode="pad", + has_bias=True ) + if use_spectral_norm: + self.first_conv_3x3 = SpectralNorm( + self.first_conv_3x3 + ) - self.last_conv_3x3 = conv2d( - in_channels=out_channels, - out_channels=out_channels, - kernel_size=3, - padding=1, - pad_mode="pad", - stride=1, - has_bias=True - ) + self.last_conv_3x3 = conv2d( + in_channels=out_channels, + out_channels=out_channels, + kernel_size=3, + padding=1, + pad_mode="pad", + stride=1, + has_bias=True + ) self.relu = nn.ReLU() @@ -723,7 +754,7 @@ class UpsampleGBlock(nn.Cell): eps=spectral_normalized_eps, ) - self.upsample = nn.ResizeBilinear() + self.upsample = ops.ResizeBilinearV2(align_corners=True) # Upsample 2D conv self.first_conv_3x3 = conv2d( in_channels=in_channels, @@ -751,12 +782,14 @@ class UpsampleGBlock(nn.Cell): def construct(self, x): """UpsampleGBlock forward function""" # Spectrally normalized 1x1 convolution - sc = self.upsample(x, scale_factor=2, align_corners=True) + shape = x.shape + sc = self.upsample(x, (2*shape[2], 2*shape[3])) sc = self.conv_1x1(sc) x2 = self.bn1(x) x2 = self.relu(x2) # Upsample - x2 = self.upsample(x2, scale_factor=2, align_corners=True) + shape = x2.shape + x2 = self.upsample(x2, (2*shape[2], 2*shape[3])) x2 = self.first_conv_3x3(x2) # Make sure size is doubled x2 = self.bn2(x2) x2 = self.relu(x2) @@ -935,7 +968,7 @@ class TemporalDiscriminator(nn.Cell): conv_type="standard", use_spectral_norm=True): super().__init__() - self.downsample = ops.AvgPool3D(kernel_size=(1, 2, 2), strides=(1, 2, 2)) + self.downsample = ops.MaxPool3D(kernel_size=(1, 2, 2), strides=(1, 2, 2)) self.space2depth = PixelUnshuffle(downscale_factor=2) hidden_channels = 48 self.d1 = DBlock( @@ -1025,7 +1058,7 @@ class SpatialDiscriminator(nn.Cell): super().__init__() self.num_timesteps = num_timesteps self.mean_pool = nn.AvgPool2d(kernel_size=2, stride=2) - self.downsample = ops.AvgPool3D(kernel_size=(1, 2, 2), strides=(1, 2, 2)) + self.downsample = ops.MaxPool3D(kernel_size=(1, 2, 2), strides=(1, 2, 2)) self.space2depth = PixelUnshuffle(downscale_factor=2) hidden_channels = 24 self.d1 = DBlock( diff --git a/MindEarth/mindearth/cell/dgmr/dgmrnet.py b/MindEarth/mindearth/cell/dgmr/dgmrnet.py index 8985581f4..411dd57fa 100644 --- a/MindEarth/mindearth/cell/dgmr/dgmrnet.py +++ b/MindEarth/mindearth/cell/dgmr/dgmrnet.py @@ -133,7 +133,6 @@ class DgmrGenerator(Cell): """ def __init__( self, - z, forecast_steps=18, in_channels=1, out_channels=256, @@ -147,7 +146,6 @@ class DgmrGenerator(Cell): self.context_channels = context_channels self.in_channels = in_channels self.generation_steps = generation_steps - self.z = z self.conditioning_stack = ContextConditioningStack( in_channels=in_channels, conv_type=conv_type, @@ -167,6 +165,6 @@ class DgmrGenerator(Cell): def construct(self, x): """Dgmr generator forward function.""" conditioning_states = self.conditioning_stack(x) - latent_dim = self.latent_stack(x, self.z) + latent_dim = self.latent_stack(x) output = self.sampler(conditioning_states, latent_dim) return output diff --git a/tests/st/mindearth/module/test_forecast.py b/tests/st/mindearth/module/test_forecast.py index 9e9cd1996..bac0dedd7 100644 --- a/tests/st/mindearth/module/test_forecast.py +++ b/tests/st/mindearth/module/test_forecast.py @@ -68,7 +68,7 @@ class MyInference(WeatherForecast): def forecast(self, inputs): pred_lst = [] - for _ in range(self.t_out_test): + for _ in range(self.t_out): pred = self.model(inputs) pred_lst.append(pred) inputs = pred diff --git a/tests/st/mindearth/module/test_pretrain.py b/tests/st/mindearth/module/test_pretrain.py index c3619bd48..8c2136613 100644 --- a/tests/st/mindearth/module/test_pretrain.py +++ b/tests/st/mindearth/module/test_pretrain.py @@ -73,6 +73,9 @@ class MyTrainer(Trainer): dataset = ds.GeneratorDataset(source=MyIterable(), column_names=["inputs", "labels"]) return dataset, dataset + def get_data_generator(self): + train_dataset_generator, valid_dataset_generator = self.get_dataset() + return train_dataset_generator, valid_dataset_generator @pytest.mark.level0 @platform_arm_ascend910b_training diff --git a/tests/st/mindearth/test_config.yaml b/tests/st/mindearth/test_config.yaml index 9073c5b66..e752d0b74 100644 --- a/tests/st/mindearth/test_config.yaml +++ b/tests/st/mindearth/test_config.yaml @@ -46,6 +46,7 @@ summary: save_checkpoint_steps: 10 keep_checkpoint_max: 10 plt_key_info: False + save_checkpoint_epochs: 10 key_info_timestep: [6,] train: name: "oop" -- Gitee

    =Z=U^))5k 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