diff --git a/.gitignore b/.gitignore
index 9ff611a..3e920b7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,6 +12,9 @@ wheels/
data/
outputs/
+training-outputs/
+
+notebooks/.ipynb_checkpoints
#logs
wandb
diff --git a/README.md b/README.md
index 42c6371..4b61015 100644
--- a/README.md
+++ b/README.md
@@ -51,10 +51,17 @@ firebot/
│ ├── train_rl_agent.py # unified PPO/A2C/DQN trainer with checkpoint and final evaluation artifacts
│ └── evaluate_agents.py # classdef for PPO/A2C/DQN plus greedy/random baselines
├── scripts/
-│ ├── run_benchmark_train.sh # bash script for smoke validation then full 5-seed benchmark training
+│ ├── run_benchmark_train.sh # legacy all-in-one bash runner (staged scripts are canonical)
│ ├── run_benchmark_train.ps1 # powershell equivalent
│ ├── run_benchmark_eval.sh # bash script for post-training benchmark evaluation by seed
│ └── run_benchmark_eval.ps1 # powershell equivalent
+│ └── stages/
+│ ├── _common.sh # shared defaults, validation, and helper functions for staged runs
+│ ├── 01_karpathy_overfit.sh # one-record overfit checks
+│ ├── 02_smoke_train_and_repro.sh # smoke training + reproducibility canary
+│ ├── 03_smoke_eval.sh # smoke checkpoint artifact loading + sanity eval
+│ ├── 04_pilot_sweep.sh # one-seed validation-only pilot hyperparameter sweep
+│ └── 05_final_train.sh # canonical full 5-seed training with frozen protocol
├── tests/
│ ├── conftest.py
│ └── models/ # environment and benchmark metric contract tests
@@ -176,12 +183,16 @@ uv run python -m src.ingestion.static_dataset --fire-records path/to/fire_record
### Training
-For controlled and reproducible benchmark training, use the script wrappers in `scripts/`.
+For controlled and reproducible benchmark training, run the staged bash scripts in order.
Run from project root on macOS/Linux (bash):
```bash
-./scripts/run_benchmark_train.sh
+./scripts/stages/01_karpathy_overfit.sh
+./scripts/stages/02_smoke_train_and_repro.sh
+./scripts/stages/03_smoke_eval.sh
+./scripts/stages/04_pilot_sweep.sh
+./scripts/stages/05_final_train.sh
```
Run from project root on Windows (PowerShell):
@@ -190,23 +201,35 @@ Run from project root on Windows (PowerShell):
./scripts/run_benchmark_train.ps1
```
-Script runs:
+Staged bash flow:
-- Stage 1 (smoke): runs short validation training for `ppo`, `a2c`, `dqn` on one seed
-- Stage 2 (smoke eval): loads smoke `best_model.zip` artifacts and runs evaluator sanity checks
-- Stage 3 (formal): runs full canonical training for all three algorithms across 5 seeds (`11,22,33,44,55`)
-- Uses artifact root `outputs/benchmark/` and keeps default trainer settings for env count, timesteps, and checkpoint cadence on formal runs
+- Stage 1: Karpathy one-record overfit checks (`ppo`, `a2c`, `dqn`)
+- Stage 2: smoke training + reproducibility canary
+- Stage 3: smoke evaluation sanity check
+- Stage 4: validation-only pilot sweeps and winner selection
+- Stage 5: full canonical 5-seed training using frozen protocol values
-Training script environment overrides (optional):
+Shared staged-script environment overrides (optional):
- `ARTIFACT_ROOT` (default `outputs/benchmark`)
- `SMOKE_TIMESTEPS` (default `20000`, one canonical checkpoint interval)
- `SMOKE_SEED` (default `11`)
- `SMOKE_EVAL_EPISODES` (default `5`)
+- `RUN_REPRO_CANARY` (default `1`)
+- `REPRO_CANARY_TOL` (default `1e-9`)
+- `KARPATHY_TIMESTEPS` (default `10000`)
+- `KARPATHY_SEED` (default `11`)
+- `KARPATHY_FAMILY` (default `center,medium,A`)
+- `KARPATHY_CHECKPOINT_EVAL_EPISODES` (default `1`)
+- `PILOT_TIMESTEPS` (default `40000`)
+- `PILOT_SEED` (default `11`)
+- `RUN_KARPATHY_CHECK` (default `1`)
+- `RUN_PILOT_SWEEP` (default `1`)
+- `USE_PILOT_WINNERS` (default `1`)
- `FINAL_SEEDS_CSV` (default `11,22,33,44,55`)
- `ALGO_ORDER_CSV` (default `ppo,a2c,dqn`)
-After `run_benchmark_train` completes, run benchmark evaluation wrappers.
+After Stage 5 completes, run benchmark evaluation wrappers.
Run from project root on macOS/Linux (bash):
diff --git a/docs/data-pipeline.md b/docs/data-pipeline.md
index 147e8bf..64b74a8 100644
--- a/docs/data-pipeline.md
+++ b/docs/data-pipeline.md
@@ -221,6 +221,7 @@ Canonical integration note:
- ignition family and asset layout remain simulator-side controls
- seeded parameter records do not store explicit ignition/layout labels
- `ignition_seed` and `layout_seed` make those simulator-side initializations reproducible
+- severity remains record-conditioned through `severity_bucket`; it is not an independently sampled family control variable
Stored audit fields:
diff --git a/docs/envspec.md b/docs/envspec.md
index 637252a..a9c78b7 100644
--- a/docs/envspec.md
+++ b/docs/envspec.md
@@ -70,6 +70,7 @@ Important boundary:
- ignition family and asset layout labels remain simulator-side controls
- seeded records do not store explicit ignition/layout labels
- seeds make simulator-side initialization reproducible
+- severity is record-conditioned from `severity_bucket` and is not independently controlled by `scenario_families`
---
@@ -83,7 +84,7 @@ Record loading and benchmark setup:
Episode construction and parameter sampling:
-- `reset`: samples scenario family + parameter record, resets budgets/cooldowns/state, places assets, ignites fire
+- `reset`: samples ignition/layout family + parameter record, resets budgets/cooldowns/state, places assets, ignites fire
- `_sample_parameter_record`: seed-stable shuffled sampling over loaded records
- `_configure_initialization_rngs`: configures ignition/layout RNGs from record seeds
diff --git a/docs/planning/harden-training.md b/docs/planning/harden-training.md
new file mode 100644
index 0000000..35f25c1
--- /dev/null
+++ b/docs/planning/harden-training.md
@@ -0,0 +1,153 @@
+# Training Hardening Plan
+
+This document defines a staged hardening workflow before launching paper-facing benchmark runs.
+
+It assumes one full run has already been executed and should now be treated as a baseline sanity pass, not the final benchmark evidence.
+
+---
+
+## Step 0: Dummy Run
+
+Purpose: establish a baseline run with the current unclean pipeline and confirm the end-to-end system is operational.
+
+Current baseline configuration:
+
+- Data variant: original seeded datasets under `data/static/`
+- Algorithms: `PPO`, `A2C`, `DQN`
+- Final budget: `200,000` steps per algorithm per seed
+- Seed protocol: canonical 5 seeds (`11,22,33,44,55`) for final runs
+- Checkpoint cadence: every `20,000` steps
+- Checkpoint model selection: highest `val.asset_survival_rate`, tie-breaker `val.mean_return`
+- Final artifact for reporting: `best_model.zip` (not `last_model.zip`)
+
+Step 0 interpretation rules:
+
+- Treat this run as a reference point for stability and feasibility.
+- Do not treat it as final paper evidence until Step 1-3 hardening is complete.
+- Preserve all Step 0 artifacts for regression comparison.
+
+---
+
+## Step 1: Pilot Hardening
+
+Purpose: reduce debugging risk and improve interpretability before expensive reruns.
+
+### 1.1 One-factor-at-a-time pilot sweeps
+
+For each algorithm:
+
+1. Run small pilot sweeps where only one hyperparameter changes at a time.
+2. Keep all other hyperparameters fixed to algorithm defaults or current pilot anchor values.
+3. Use validation-only selection for pilot ranking.
+
+Recommended order:
+
+- `PPO`: learning rate -> `n_steps` -> entropy coefficient
+- `A2C`: learning rate -> `n_steps` -> entropy coefficient
+- `DQN`: learning rate -> exploration params -> target update interval -> replay buffer size
+
+Why: if performance changes unexpectedly, attribution is immediate and debugging is faster.
+
+### 1.2 Learning-rate schedule explicitness
+
+- Keep constant learning rate in pilot/debug unless a schedule is explicitly tested as an ablation.
+- Record in run config/logs that no scheduler is active.
+- If a scheduler is tested later, it must be clearly labeled and isolated from canonical results.
+
+### 1.3 Early stopping policy
+
+- Allow optional early stopping only in `pilot` or debug runs for faster iteration.
+- Do not use early stopping in canonical final benchmark runs.
+- Final benchmark remains fixed-budget for fairness (`200,000` per algorithm per seed).
+
+### 1.4 NaN and instability guardrails
+
+Add fail-fast checks during training/eval:
+
+- Abort if any non-finite metric/loss appears (`NaN`, `inf`, `-inf`).
+- Abort if checkpoint artifacts are malformed or missing expected keys.
+- Flag severe instability patterns (for example prolonged metric collapse) for manual review.
+
+---
+
+## Step 2: Re-run and Data Audit Decision
+
+Purpose: re-run after Step 1 hardening and decide whether dataset cleaning is required.
+
+### 2.1 Re-run hardened pilot
+
+- Re-run smoke + pilot with hardening controls enabled.
+- Compare against Step 0 baseline on key validation metrics and stability.
+
+### 2.2 Data outlier and null audit
+
+- Run the audit notebook: `notebooks/data_outlier_audit.ipynb`.
+- Inspect outliers, invalid ranges, missing fields, split consistency, and duplicates.
+- Decide if cleaning is required based on documented findings.
+
+### 2.3 If cleaning is required
+
+Use strict versioning and isolation:
+
+- Save cleaned variants under `data/static/clean/`.
+- Regenerate all split artifacts consistently from the cleaned source.
+- Keep old and cleaned artifacts side-by-side (no overwrite).
+- Save model weights and run artifacts before rerunning on cleaned data.
+- Label cleaned-data runs explicitly (for example run label suffix or metadata flag).
+
+Reproducibility note:
+
+- Do not mix pilot selection on one data variant with final reporting on another without clear disclosure.
+
+---
+
+## Step 3: Defensibility and Final Freeze
+
+Purpose: increase confidence in model health and lock benchmark settings before full reporting runs.
+
+### 3.1 Training-health diagnostics
+
+Add periodic diagnostics per algorithm where available:
+
+- gradient norm trends
+- value loss / TD loss trends
+- entropy (for policy-gradient methods)
+- checkpoint metric trajectories for train vs val
+
+### 3.2 Instability-aware pilot confirmation
+
+- For each algorithm, take top-2 pilot candidates.
+- Run 2 quick repeats per candidate.
+- Use aggregate validation ranking with instability-aware tie-breaking.
+
+### 3.3 Freeze and execute final benchmark
+
+- Freeze one hyperparameter config per algorithm.
+- Freeze data variant (`original` or specific `clean` version).
+- Run canonical fixed-budget benchmark over 5 seeds.
+- Report only frozen-protocol results as primary evidence.
+
+### Step 3 Acceptance Criteria
+
+| Area | Criterion | Threshold / Rule | Action if Failed |
+|---|---|---|---|
+| Reproducibility canary | Same-config rerun consistency | `checkpoint_metrics.json` and `best_checkpoint.json` match within tolerance | Block final runs; inspect nondeterminism sources |
+| Data contract | Required fields + split integrity | No missing required fields; no split mismatches | Rebuild/repair datasets before rerun |
+| Numeric validity | Core env-feature ranges | `base_spread_prob` and `wind_strength` remain in valid bounds | Fix pipeline mapping or cleaning rules |
+| Training stability | Non-finite values | Zero `NaN`/`inf` in training/eval metrics | Stop run immediately; debug before continue |
+| Pilot sanity | Learned policy beats weak baseline trend | At least one stable pilot config improves over random on val asset survival | Revisit hyperparameters/reward/debug before final |
+| Selection robustness | Top config repeatability | Top-1 config remains top or near-top across quick repeats | Expand pilot repeats or reduce search noise |
+| Protocol fairness | Final-run comparability | Same fixed step budget across all learned algorithms | Reject run as non-canonical |
+| Leakage control | Holdout usage discipline | No holdout-based tuning/model selection | Re-run selection using train/val only |
+| Artifact completeness | Paper-traceable outputs | Config, checkpoint logs, best checkpoint, best/last model, final eval all present | Re-run missing seeds or repair pipeline |
+
+---
+
+## Reporting Notes
+
+When writing paper-facing results after hardening:
+
+- explicitly state fixed-budget protocol and seed count
+- explicitly state model-selection rule
+- explicitly state data variant used (`original` or `clean/*`)
+- clearly separate pilot diagnostics from final benchmark evidence
diff --git a/docs/planning/train-plan.md b/docs/planning/train-plan.md
index 2e5e818..cff986e 100644
--- a/docs/planning/train-plan.md
+++ b/docs/planning/train-plan.md
@@ -48,7 +48,7 @@ The final paper may report a longer PPO run separately only if all compared meth
### 2.1 Split semantics are two-dimensional
-Canonical benchmarking has two distinct notions of split, and both must be enforced explicitly in code.
+Benchmarking has two distinct notions of split, and both must be enforced explicitly in code.
1. Temporal data split from the seeded scenario-record files:
- train records: `scenario_parameter_records_seeded_train.json`
@@ -58,17 +58,23 @@ Canonical benchmarking has two distinct notions of split, and both must be enfor
- in-distribution families: `TRAIN_FAMILIES`
- held-out OOD families: `HELD_OUT_FAMILIES`
-Canonical meaning of each split:
+Family semantics note:
-- Train: train records + `TRAIN_FAMILIES`
-- Validation: validation records + `TRAIN_FAMILIES`
-- Family holdout: validation or expanded holdout records + `HELD_OUT_FAMILIES`
-- Temporal holdout: holdout records + explicit family list, reported separately from train/val
+- families are ignition/layout controls in benchmark mode
+- severity is record-conditioned (`severity_bucket` from the sampled dataset record), not an independently sampled family axis
+- therefore, family OOD claims should be framed as ignition/layout OOD under record-conditioned spread severity
+
+Meaning of each split:
+
+- Train: train records + in-distribution ignition/layout families
+- Validation: validation records + in-distribution ignition/layout families
+- Family holdout: validation or expanded holdout records + held-out ignition/layout families
+- Temporal holdout: holdout records + explicit ignition/layout family list, reported separately from train/val
Implementation rule:
- The training/evaluation runner must pass `scenario_families` explicitly.
-- Canonical runs must not rely on the environment default of `TRAIN_FAMILIES` when split semantics matter.
+- runs must not rely on the environment default of `TRAIN_FAMILIES` when split semantics matter.
### 2.2 Current holdout limitation
@@ -99,20 +105,21 @@ Add a benchmark-safe preset in code:
The canonical preset should fill in the frozen benchmark defaults unless the user explicitly overrides them for an ablation run.
-Canonical preset values:
+Final preset values:
- train dataset: `data/static/scenario_parameter_records_seeded_train.json`
- validation dataset: `data/static/scenario_parameter_records_seeded_val.json`
- holdout dataset: `data/static/scenario_parameter_records_seeded_holdout.json`
- train/validation families: `TRAIN_FAMILIES`
- family-holdout families: `HELD_OUT_FAMILIES`
+- severity source: sampled record `severity_bucket` (record-conditioned, not family-controlled)
- checkpoint cadence: `20,000` env steps
- checkpoint evaluation episodes: `20`
- checkpoint-visible splits: `train`, `val`, and optional family holdout only
- final evaluation episodes for train/val: `100`
- benchmark-mode env creation enabled
-Holdout visibility rule for the canonical preset:
+Holdout visibility rule for the final preset config:
- Do not surface temporal holdout metrics during checkpoint evaluation or hyperparameter sweeps.
- Temporal holdout is final-reporting-only until the holdout dataset is expanded beyond one record.
@@ -137,9 +144,9 @@ Required `run_label` values:
Purpose:
-- prevent smoke tests and pilot sweeps from overwriting canonical final benchmark artifacts
+- prevent smoke tests and pilot sweeps from overwriting the final benchmark artifacts
-Canonical per-seed artifacts:
+per-seed artifacts:
- `config.json`
- `checkpoint_metrics.json`
@@ -148,7 +155,7 @@ Canonical per-seed artifacts:
- `last_model.zip`
- `final_eval_best.json`
-Optional convenience exports outside the artifact directory are allowed, but they are not the canonical benchmark outputs.
+Optional convenience exports outside the artifact directory are allowed, but they are not the benchmark outputs.
Artifact semantics:
@@ -245,16 +252,16 @@ Extend `src/models/evaluate_agents.py` so it can evaluate:
The rollout loop can remain shared because all learned methods expose `model.predict(...)`.
-Add a matching benchmark-safe preset in code for evaluation so canonical runs do not rely on ad hoc CLI arguments.
+Add a matching benchmark-safe preset in code for evaluation so runs do not rely on ad hoc CLI arguments.
The evaluation preset should:
-- use the canonical split dataset paths by default
+- use the final frozen split dataset paths by default
- default to `100` episodes for train/val
- use the benchmark metric schema defined in this file
- evaluate the chosen artifact explicitly, such as `best_model.zip` or `last_model.zip`
-Canonical evaluation outputs should distinguish:
+evaluation outputs should distinguish:
- `train`
- `val`
@@ -336,7 +343,7 @@ At each checkpoint, record per split:
- `mean_resource_efficiency`
- `wasted_deployment_rate`
-Checkpoint-visible splits for canonical runs:
+Checkpoint-visible splits for runs:
- `train`
- `val`
@@ -429,7 +436,7 @@ Verify that:
- train/val/holdout seeded files load in benchmark mode
- split mismatches fail fast
-- explicit `scenario_families` are passed for canonical train/val/family-holdout runs
+- explicit `scenario_families` are passed for train/val/family-holdout runs
- reset/step terminate correctly
- observations remain length `636`
- actions remain `Discrete(6)`
@@ -459,7 +466,7 @@ Run one short training job with checkpoint evaluation enabled and verify that:
- the best-checkpoint selection rule behaves as expected
- no fallback heuristic contaminates learned-agent evaluation
- the benchmark preset produces the frozen protocol values without needing manual CLI reconstruction
-- temporal holdout metrics do not appear in checkpoint artifacts for canonical runs
+- temporal holdout metrics do not appear in checkpoint artifacts for runs
### 7.4 Reward sanity pilot
@@ -490,7 +497,7 @@ Only proceed to full benchmark if:
1. Implement unified train/eval support for `ppo`, `a2c`, `dqn`.
2. Add benchmark-safe presets for training and evaluation.
3. Fix evaluator metric definitions to match this document.
-4. Add checkpoint evaluation, config serialization, and canonical artifact writing.
+4. Add checkpoint evaluation, config serialization, and artifact writing.
5. Run smoke tests for all methods.
6. Run one-seed pilot tuning sweeps.
7. Freeze one config per algorithm.
diff --git a/notebooks/data_outlier_audit.ipynb b/notebooks/data_outlier_audit.ipynb
new file mode 100644
index 0000000..f9df24a
--- /dev/null
+++ b/notebooks/data_outlier_audit.ipynb
@@ -0,0 +1,1985 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "1a39a1f8",
+ "metadata": {},
+ "source": [
+ "# Data Outlier Audit\n",
+ "\n",
+ "This notebook audits seeded benchmark parameter datasets for distribution drift, missing values, duplicates, and numeric outliers before full training."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "3004a9c6",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from __future__ import annotations\n",
+ "\n",
+ "import json\n",
+ "from pathlib import Path\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "import seaborn as sns\n",
+ "\n",
+ "sns.set_theme(style=\"whitegrid\")\n",
+ "pd.set_option(\"display.max_columns\", 200)\n",
+ "ROOT = Path(\"..\").resolve()\n",
+ "DATASETS = {\n",
+ " \"train\": ROOT / \"data/static/scenario_parameter_records_seeded_train.json\",\n",
+ " \"val\": ROOT / \"data/static/scenario_parameter_records_seeded_val.json\",\n",
+ " \"holdout\": ROOT / \"data/static/scenario_parameter_records_seeded_holdout.json\",\n",
+ "}\n",
+ "NUMERIC_COLUMNS = [\n",
+ " \"base_spread_prob\",\n",
+ " \"wind_strength\",\n",
+ " \"spread_rate_1h_m\",\n",
+ " \"spread_score\",\n",
+ " \"weather_score\",\n",
+ " \"cffdrs_dryness_score\",\n",
+ " \"size_factor\",\n",
+ " \"fire_type_factor\",\n",
+ " \"fuel_factor\",\n",
+ " \"rain_factor\",\n",
+ "]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "b0307f60",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " record_id \n",
+ " fire_id \n",
+ " source \n",
+ " province \n",
+ " year \n",
+ " split \n",
+ " base_spread_prob \n",
+ " severity_bucket \n",
+ " wind_direction \n",
+ " wind_strength \n",
+ " spread_rate_1h_m \n",
+ " spread_score \n",
+ " weather_score \n",
+ " cffdrs_dryness_score \n",
+ " size_factor \n",
+ " fire_type_factor \n",
+ " fuel_factor \n",
+ " rain_factor \n",
+ " observed_spread_rate_m_min \n",
+ " assessment_hectares \n",
+ " fire_type \n",
+ " fuel_type \n",
+ " record_quality_flag \n",
+ " ignition_seed \n",
+ " layout_seed \n",
+ " split_source \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " AB-2008-MWF074__20080703 \n",
+ " AB-2008-MWF074 \n",
+ " AB_HISTORICAL_WILDFIRE \n",
+ " AB \n",
+ " 2008 \n",
+ " train \n",
+ " 0.1792 \n",
+ " high \n",
+ " S \n",
+ " 0.1625 \n",
+ " 6000.0 \n",
+ " 0.7736 \n",
+ " 0.4535 \n",
+ " 0.0 \n",
+ " 0.9500 \n",
+ " 1.00 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " 100.0 \n",
+ " 0.50 \n",
+ " surface \n",
+ " C2 \n",
+ " measured \n",
+ " 14443855870861270751 \n",
+ " 1.127873e+19 \n",
+ " train \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " AB-2018-SWF158__20180901 \n",
+ " AB-2018-SWF158 \n",
+ " AB_HISTORICAL_WILDFIRE \n",
+ " AB \n",
+ " 2018 \n",
+ " train \n",
+ " 0.1571 \n",
+ " medium \n",
+ " NW \n",
+ " 0.1625 \n",
+ " 4260.0 \n",
+ " 0.6504 \n",
+ " 0.2518 \n",
+ " 0.0 \n",
+ " 0.9500 \n",
+ " 1.00 \n",
+ " 1.00 \n",
+ " 1.0 \n",
+ " 71.0 \n",
+ " 0.01 \n",
+ " surface \n",
+ " O1b \n",
+ " measured \n",
+ " 10198127025334700556 \n",
+ " 1.445778e+19 \n",
+ " train \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " AB-2012-MWF047__20120710 \n",
+ " AB-2012-MWF047 \n",
+ " AB_HISTORICAL_WILDFIRE \n",
+ " AB \n",
+ " 2012 \n",
+ " train \n",
+ " 0.1797 \n",
+ " high \n",
+ " W \n",
+ " 0.1625 \n",
+ " 4200.0 \n",
+ " 0.7759 \n",
+ " 0.4640 \n",
+ " 0.0 \n",
+ " 0.9500 \n",
+ " 1.00 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " 70.0 \n",
+ " 0.30 \n",
+ " surface \n",
+ " C2 \n",
+ " measured \n",
+ " 8000671072565187824 \n",
+ " 8.493056e+17 \n",
+ " train \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " AB-2014-GWF044__20140715 \n",
+ " AB-2014-GWF044 \n",
+ " AB_HISTORICAL_WILDFIRE \n",
+ " AB \n",
+ " 2014 \n",
+ " train \n",
+ " 0.2200 \n",
+ " high \n",
+ " SW \n",
+ " 0.2625 \n",
+ " 3900.0 \n",
+ " 1.0000 \n",
+ " 0.5501 \n",
+ " 0.0 \n",
+ " 1.0250 \n",
+ " 1.18 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " 65.0 \n",
+ " 1000.00 \n",
+ " crown \n",
+ " C3 \n",
+ " measured \n",
+ " 15167517599069789484 \n",
+ " 1.618321e+19 \n",
+ " train \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " AB-2017-CWF254__20171017 \n",
+ " AB-2017-CWF254 \n",
+ " AB_HISTORICAL_WILDFIRE \n",
+ " AB \n",
+ " 2017 \n",
+ " train \n",
+ " 0.2194 \n",
+ " high \n",
+ " W \n",
+ " 0.6000 \n",
+ " 3600.0 \n",
+ " 0.9966 \n",
+ " 0.7679 \n",
+ " 0.0 \n",
+ " 0.9507 \n",
+ " 1.18 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " 60.0 \n",
+ " 10.00 \n",
+ " crown \n",
+ " C3 \n",
+ " measured \n",
+ " 2787351251254423658 \n",
+ " 1.730736e+19 \n",
+ " train \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " record_id fire_id source province \\\n",
+ "0 AB-2008-MWF074__20080703 AB-2008-MWF074 AB_HISTORICAL_WILDFIRE AB \n",
+ "1 AB-2018-SWF158__20180901 AB-2018-SWF158 AB_HISTORICAL_WILDFIRE AB \n",
+ "2 AB-2012-MWF047__20120710 AB-2012-MWF047 AB_HISTORICAL_WILDFIRE AB \n",
+ "3 AB-2014-GWF044__20140715 AB-2014-GWF044 AB_HISTORICAL_WILDFIRE AB \n",
+ "4 AB-2017-CWF254__20171017 AB-2017-CWF254 AB_HISTORICAL_WILDFIRE AB \n",
+ "\n",
+ " year split base_spread_prob severity_bucket wind_direction \\\n",
+ "0 2008 train 0.1792 high S \n",
+ "1 2018 train 0.1571 medium NW \n",
+ "2 2012 train 0.1797 high W \n",
+ "3 2014 train 0.2200 high SW \n",
+ "4 2017 train 0.2194 high W \n",
+ "\n",
+ " wind_strength spread_rate_1h_m spread_score weather_score \\\n",
+ "0 0.1625 6000.0 0.7736 0.4535 \n",
+ "1 0.1625 4260.0 0.6504 0.2518 \n",
+ "2 0.1625 4200.0 0.7759 0.4640 \n",
+ "3 0.2625 3900.0 1.0000 0.5501 \n",
+ "4 0.6000 3600.0 0.9966 0.7679 \n",
+ "\n",
+ " cffdrs_dryness_score size_factor fire_type_factor fuel_factor \\\n",
+ "0 0.0 0.9500 1.00 1.12 \n",
+ "1 0.0 0.9500 1.00 1.00 \n",
+ "2 0.0 0.9500 1.00 1.12 \n",
+ "3 0.0 1.0250 1.18 1.12 \n",
+ "4 0.0 0.9507 1.18 1.12 \n",
+ "\n",
+ " rain_factor observed_spread_rate_m_min assessment_hectares fire_type \\\n",
+ "0 1.0 100.0 0.50 surface \n",
+ "1 1.0 71.0 0.01 surface \n",
+ "2 1.0 70.0 0.30 surface \n",
+ "3 1.0 65.0 1000.00 crown \n",
+ "4 1.0 60.0 10.00 crown \n",
+ "\n",
+ " fuel_type record_quality_flag ignition_seed layout_seed \\\n",
+ "0 C2 measured 14443855870861270751 1.127873e+19 \n",
+ "1 O1b measured 10198127025334700556 1.445778e+19 \n",
+ "2 C2 measured 8000671072565187824 8.493056e+17 \n",
+ "3 C3 measured 15167517599069789484 1.618321e+19 \n",
+ "4 C3 measured 2787351251254423658 1.730736e+19 \n",
+ "\n",
+ " split_source \n",
+ "0 train \n",
+ "1 train \n",
+ "2 train \n",
+ "3 train \n",
+ "4 train "
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "def load_records(path: Path, split_name: str) -> pd.DataFrame:\n",
+ " payload = json.loads(path.read_text())\n",
+ " records = payload.get(\"records\", []) if isinstance(payload, dict) else payload\n",
+ " frame = pd.DataFrame(records)\n",
+ " frame[\"split_source\"] = split_name\n",
+ " return frame\n",
+ "\n",
+ "frames = [load_records(path, split) for split, path in DATASETS.items()]\n",
+ "df = pd.concat(frames, ignore_index=True)\n",
+ "df.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "93c99575",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'rows_total': 19246,\n",
+ " 'rows_by_split_source': {'train': 18252, 'val': 993, 'holdout': 1},\n",
+ " 'rows_by_split_field': {'train': 18252, 'val': 993, 'holdout': 1},\n",
+ " 'unique_record_id': 19246,\n",
+ " 'duplicate_record_id_count': 0,\n",
+ " 'duplicate_fire_id_count': 0}"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "summary = {\n",
+ " \"rows_total\": int(len(df)),\n",
+ " \"rows_by_split_source\": df[\"split_source\"].value_counts(dropna=False).to_dict(),\n",
+ " \"rows_by_split_field\": df[\"split\"].value_counts(dropna=False).to_dict(),\n",
+ " \"unique_record_id\": int(df[\"record_id\"].nunique(dropna=True)),\n",
+ " \"duplicate_record_id_count\": int(df.duplicated(subset=[\"record_id\"]).sum()),\n",
+ " \"duplicate_fire_id_count\": int(df.duplicated(subset=[\"fire_id\"]).sum()),\n",
+ "}\n",
+ "summary"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "51f9ddf3",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "record_id 0\n",
+ "split 0\n",
+ "base_spread_prob 0\n",
+ "severity_bucket 0\n",
+ "wind_direction 0\n",
+ "wind_strength 0\n",
+ "ignition_seed 0\n",
+ "layout_seed 0\n",
+ "dtype: int64"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "required = [\n",
+ " \"record_id\",\n",
+ " \"split\",\n",
+ " \"base_spread_prob\",\n",
+ " \"severity_bucket\",\n",
+ " \"wind_direction\",\n",
+ " \"wind_strength\",\n",
+ " \"ignition_seed\",\n",
+ " \"layout_seed\",\n",
+ "]\n",
+ "null_counts = df[required].isna().sum().sort_values(ascending=False)\n",
+ "null_counts"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "6549fb3b",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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9JQrBMpoa2ujX79+nNuKiEhJ3bt3F342NTXF77//jmnTpuH3339H7dq1C40jIiqtchUDHz16BE9PzyKP16lTh50/IiIiomqsefPmePr0aZHHnz59Cnt7+0rMiIio6tq9e7fws2z+U5mCn60LxhERlVa5ioH6+vrIzMws8vjz589hYmJSnlsQERERkRr74YcfEB4ejh07dsjNZZWVlYXt27cjPDwcAQEBKsyQiKjqiI+PF36WLchU2HbBOCKi0irXnIEuLi44evQoxo4dq3Ds1atXOHjwILp161aeWxARERGRGvP394eGhgYCAwOxYsUKmJmZAcif6F4sFsPMzAyzZ8+WO0ckEuH48eOqSJeISK3Vr18ft27dQv369bF27VqcOXMGL1++RP369dG7d29MmzZN2CYiKqtyFQOnT5+O4cOHY+jQoejTpw9EIhEuXbqEP//8EwcOHIBUKoWfn19F5UpEREREasbExAQmJiawsrKS229hYaGijIiIqi5nZ2ecPn1aWDn47t27+Pfff/H69Wt06dIFiYmJQhwRUVmVqxhobW2NvXv3YvHixfjll18glUoREhICIP9/Tj/++CMaNmxYIYkSERERkfpRZnVeIiJSzrt37wAAYrEYPj4+wv7Y2FhcvXpVIY6IqCzKVQwEgGbNmmH79u1ITU1FbGwspFIpGjVqBFNT04rIj4iIiIiIiOijoOznaH7eJqLyKHMxMCcnB8eOHUNkZCSePXuGd+/ewdDQEFZWVujcuTP69+8PHR2disxVzpEjR7Bjxw48efIEBgYGaNmyJYKDg6GnpwcA+O2337BmzZr/196dx0VVtv8D/8zADPuAKKKopKAgJghuSBjmloKmppaUKeVGuZSav0cfLXKhNNM0cSdNc7dyRSQte7TcvrlrmimgoiguyDCsMzDn9wfPnMdx2Ldh4PN+vXzB3Oc+97nOxXg4XHPOfZCYmAgXFxeMGzcOQ4YMMdiHJUuWYN++fcjMzISfnx8+/fRTuLm5VVncRERERLXJtWvXEB8fj/79+4ttv//+O1avXg21Wo3+/fsXOr80EREZat68ufi9vb09lEploa+f7UdEVFbleprw9evXERwcjIiICMTFxSEpKQk5OTlISkrCwYMHMWvWLPTv3x/x8fGVHS8AYNWqVZg3bx5CQkKwbt06zJ07F02bNkV+fj4A4MyZM5g4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Fy/izp076N+/f6ni0mq1iIuLQ6tWrcp9VSBVvd69e4sPCVmyZAkLgURERIXglYFEREREVGOEhoZi06ZNmDBhAsLDw5GSkoKFCxciNDQUzs7OYr+wsDAkJyfj8OHDAApupQsPD0dUVBQcHR3h4eGBbdu2IS0tDaNHjzbYzv79+2FpaVlosejevXuYMWMG+vXrhxdeeAFKpRLbtm3DlStXEBUVVXU7T0RERFQNWAwkIiIiohrD3t4eGzduxLx58zBhwgTY2Nhg6NChmDJlil4/rVaL/Px8vbaxY8dCEASsX78eqamp8PLywrp16wyeFJyfn4+4uDh0794dNjY2BjHY2NjA1tYWq1atwpMnTyCTydC2bVtER0fj5ZdfrvydJiIiIqpGLAYSERERUY3i7u6ODRs2FNtn06ZNBm0SiQTh4eEIDw8vdl0zMzP88ccfRS53cHDAqlWrShUrERERkanhnIFERERERERERER1BIuBREREREREREREdQSLgURERERERERERHUEi4FERERERERERER1BIuBREREREREREREdQSfJkxERERERERG8/DhQ6Snpxs7jBopKSlJ7yvpUygUaNiwobHDIDI5LAYSERERERGRUTx8+BDvf/ABNGq1sUOp0b7++mtjh1AjyeRyrF61igVBojJiMZCIiIiIiIiMIj09HRq1GpYuXSCVK4wdDpkQrTodOcmnkJ6ezmIgURmxGEhERERERERGJZUrYGblaOwwiIjqBD5AhIiIiIiIiIiIqI7glYFERERERCaGD1woGh+4UDI+dIGIqG4zuWLgwYMHsW/fPvz1119IT0/HCy+8gBEjRmDIkCGQSCRivx9++AHffvstkpOT0aJFC0yZMgXdu3fXG0ulUmH+/Pn45ZdfoNFo8PLLL+OTTz7hL0YiIiIiqrH4wIXS4QMXisaHLhAR1W0mVwzcsGEDmjRpghkzZqBevXo4ceIEPv30Uzx48AATJ04EABw4cACffvop3n//fXTp0gWxsbGYOHEitmzZAl9fX3GsyZMn4+bNm5g9ezYsLCywdOlSjB07Fj/99BPMzU0uNURERERUB/CBC1QRfOgCERGZXMVr1apVcHT838SyAQEBSEtLw3fffYfx48dDKpVi2bJl6NevHyZPngwA6NKlC/755x+sWLEC0dHRAIDz58/jjz/+wLp169C1a1cAQIsW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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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+vVo1aoVdu7cif79+6Nnz54ICQnBkydPSiNWIiIiIjIS8fHxeO+990otEQgAUVFRcHNz0zgml8tRtWpVREVFFXqtUqnEvHnzMH78eDg6OpZaTERERETlTantJiwWi/H222/j7bffRnJyMmbNmoXw8HAsXboUy5cvR8uWLfH++++jffv2pXVLIiIiIjIQT09PxMfHl2qdycnJ+U43trOzQ1JSUqHX/vTTT0hPT8f7779favGo1WqkpaWVWn1UtIyMDOErP3sqr/icE1FZUavVWi3dV2rJQCBnasaBAwfw22+/ISkpCW+99Rb69u0LMzMz7NmzBxMmTMD48ePx6aefluZtiYiIiEjPgoKC8Omnn8Lf3x/NmjUzaCwvXrzAypUr8c0338Dc3LzU6lUoFLh161ap1UdFy13r8cGDB8jMzDRwNERlg885EZUlbfpCJU4G3rt3DwcOHMChQ4fw77//onLlyujXrx/69OmjsWZgQEAAvvzyS/z0009MBhIRERGZuJCQENja2mL48OHw8PBA9erVIRZrrkAjEomwdu1areuUy+VISUnJczwpKQl2dnYFXvfdd9/B09MTPj4+SE5OBgBkZ2cjOzsbycnJkMlkMDPTvdsrlUrh4eGh83VUfBYWFgAAV1fXPFPGicoLPudEVFbu3bunVbkSJQP79OmDO3fuwNzcHB07dsRXX32Ft99+O09HMJevry92795dklsSERERkRG4c+cOAKB69epITU3Nt/OpzTSV17m5ueVZGzAlJQXPnj0r9AfmBw8e4Ny5c2jRokWecy1atEBISAj8/f11igXIiV8mk+l8HRWfpaWl8JWfPZVXfM6JqKxo2/cqUTJQLpdj7ty56NatG2xsbIos37FjRxw7dqwktyQiIiIiI3D8+PFSr9Pf3x/r1q3TWDswPDwcYrEYbdq0KfC6GTNmCCMCcy1YsACWlpb47LPP4OnpWeqxEhEREZmqEiUDv/nmGzg4OAi/2XhTRkYGXr58iRo1agAArKysULNmzZLckoiIiIjKqSFDhmDLli0IDAzEuHHj8PTpUyxevBhDhgyBk5OTUC4gIABxcXE4evQoAGgsTZNLLpdDJpPB19dXb/ETERERmYL85/NqqWPHjkInLD/Hjx9Hx44dS3ILIiIiIjJSSqUShw8fxqxZsxAYGIjbt28DyJnae+TIETx//lyn+uzs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H3/8gXPnzuHChQu4ceMGsrOzYWFhgcaNG+P999+Hj48PmjZtaugwiYiIiOgNTAYSERERkc4mTJgAuVyOZs2a4dNPP4WPjw8aNWoEqVRq6NCIiIiIqBBMBhIRERGRzn755RfUrVuXG4QQERERmRgmA4mIiIhIZ56enoYOgYiIiIiKgRuIEBERERERERERVRBMBhIREREREREREVUQTAYSERERERERERFVEEwGEhERERERERERVRBMBhIREREREREREVUQTAYSERERERERERFVEEwGEhERERERERERVRBMBhIREREREREREVUQTAYSERERERERERFVEEwGEhERERERERERVRBMBhIREREREREREVUQTAYSERERERERERFVEEwGEhERERERERERVRBMBhIREREREREREVUQTAYSERERERERERFVEEwGEhERERERERERVRBmhg6AiIiIiKgiUGUmGzoEKif4LBERUUkwGUhEREREpAcZ//5l6BCIiIiImAwkIiIiIuNx//59zJ8/H5cuXYK1tTX69OmDyZMnw9zcvMBr4uPjsXHjRkRERCAmJga2trZo0aIFPvvsM9SsWVOP0RfOsnoriC3khg6DygFVZjKTy0REVGxMBhIRERGRUUhKSkJAQADq1KmDVatW4enTp1i0aBEyMjIwa9asAq+7ceMGjh49ivfeew9NmjRBQkIC1q5di4EDB+LQoUNwcHDQ47somNhCDomVccRCREREFReTgURERERkFHbs2IHU1FQEBwfD3t4eAKBUKjFnzhyMGzcOTk5O+V7XvHlz/PrrrzAz+1/XtlmzZmjfvj3279+PDz/8UB/hExEREZkE7iZMREREREbh1KlT8PPzExKBANCtWzeoVCpEREQUeJ1cLtdIBAJAtWrV4ODggPj4+LIKl4iIiMgkMRlIREREREYhKioKbm5uGsfkcjmqVq2KqKgonep68OABXrx4AXd399IMkYiIiMjkcZowlbrMLCWUKlWR5SRiMSzMJXqIiIiIiExBcnIy5PK8G2zY2dkhKSlJ63rUajXmz58PR0dH9OjRo9jxqNVqpKWlFfv6XBkZGSWugyg/GRkZpfKMlpbcZ12VmWzgSKi8yH2WjO1ZJzJWarUaIpGoyHJMBlKpU6pU2H/yfpHl+rZzB8BkIBEREZWuVatW4a+//sKGDRsgk8mKXY9CocCt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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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ETp06ICjR4/i888/F8uPHj0KNzc3mJqaonv37mK5IAho3bo1EhMTsWfPHvTp00cTYRMRERERVQpMBhIREVGV0717d0ydOhUJCQmoU6cOnjx5gosXL+Lbb78FAKSkpCAoKAinT59GYmIi5HI5AMDU1FSDURMRERERaR6XCRMREVGV07FjR+jr6+PYsWMAgOPHj0NXVxeffPIJAMDPzw9Hjx7FqFGjEBYWhh9//BGfffYZcnNzNRk2EREREZHGMRlIREREVY6enh4++eQThIeHAwDCw8PRsWNHGBgYICcnB7/++ivGjx+PoUOHwsXFBQ4ODhAEQcNRExERERFpHpcJExERUZXUo0cP+Pr64vfff8dff/2FMWPGAAByc3OhUCigo6Mj1k1PT8eZM2c0Feo75eLFi7h//z5SU1NVEqwSiQQjRozQTGBEREREVCJMBhIREVGV5OrqClNTU8yaNQvGxsZwd3cH8PKAEQcHB4SGhsLMzAza2toICQmBoaEhkpKSNBx11RUTE4MpU6bg3r17b5xlyWQgERERUeXHZCAREREBAKQGxiplgkIByOWQSqWQaKl/d5HCnllSOjo66NKlC/bs2QNvb2/IZDLx2vLly+Hv7w8/Pz+Ymppi6NChyMzMxKZNm9QR9ntp9uzZSEpKwvz58+Ho6AgjIyNNh0REREREZcBkIBEREUEQBBg2aauxZ0skkjLd+8033+Cbb75RKW/QoAG2bt2qUj5p0iTx387Ozrh582aZnvs+io2NxeTJk9G/f39Nh0JERERE5cADRIiIiOiNyTi5XI6srCzI5fIKfzZVLg0aNODPioiIiOgdwGQgERERFUmhUGg6BKoEJk2ahJ07dyIxMVHToRARERFROXCZMBEREREV69NPP0VOTg66du2Ktm3b4oMPPoBUKlWpN2fOHA1ER0REREQlxWQgERERERXrjz/+QEBAALKysvDLL78UWkcikTAZSERERFTJMRlIRERERMVasGABDA0NsWbNGjg5OcHQ0FDTIRERERFRGXDPQCIiIiIq1r179+Dj4wM3NzcmAomIiIiqMCYDiYiIiKhYjRs3RlpamqbDICIiIqJyYjKQiIiIiIo1Y8YM7NmzB9euXdN0KERERERUDtwzkIiIiIiKtWnTJlSrVg0DBgxA48aNUbt2bWhpKX+vLJFIsH79eg1FSO86uVyO6Oho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IBERERERERERUTPBZCAREREREREREVEzwWQgERERERERERFRM8FkIBERERERERERUTPBZCARUS3t2LEDfn5+uHbtmqlDMalx48ZhyJAhpg6DiIiIqMFcu3YNfn5+2LFjh1gWGxsLPz8/E0ZFRFQ/mAwkIjJzx48fR2xsLPLz8xv0fdauXYtXX30VTz75JPz8/BAbG9ug70dERERk6datW4effvrJ1GEQEdUJk4FERGYuNTUVq1atavBk4IoVK3DmzBn4+/s36PsQERERWaLXXnsNp06dMiiLi4tjMpCILI61qQMgInpQarUaNjY2kEot675GcXExHBwcTB2GkQMHDqBt27bIzc1FWFiYqcMhIiIiMivW1tawtm56f0KXlJTA3t7e1GEQUSOyrL+gicjiFBYW4v3330ffvn0RGBiIsLAwTJo0CX/88QeAv+efO3PmDMaMGYPg4GD07dsX33zzjUE7R44cgZ+fH3bv3o3ly5ejV69e6Ny5MwoLCwEAJ0+eRFRUFLp27YrOnTtj7NixOHbsmEEbWVlZeO+99zBw4EAEBwejR48emDVrVrVzAF68eBHjx49HcHAwIiIisGbNGuh0ujofv35umUuXLmHOnDno1q0bXnrpJQDAn3/+ifnz56Nfv34ICgpCeHg43nzzTdy9e9dg/2XLlgEA+vXrBz8/P6N5C7///nuMHDkSwcHB6N69O6Kjo3Hjxo06x9q2bds61b906RLGjRuHzp07o1evXkhISKjze/bt2xfTpk3DkSNHxGMYOnQojhw5AgDYt28fhg4diqCgIIwcORJnz56t83sQERFR81Ff157VqTpnoJ+fH4qLi/Hdd9+J12jz58+vday7d+/GyJEjERoaii5dumDo0KHYtGmTQZ3MzEzMmjUL3bt3R+fOnfHCCy/gP//5j0Gde81rrb9+1l9XVT3+l19+GZ07d8Znn30GoOJGe2xsLAYOHIigoCD07NkTM2bMwNWrV8X9dTodvvjiCwwePBhBQUF48sknERMTA5VKVevjJiLTa3q3NYjIrLz77rv48ccfMXbsWPj6+iIvLw/Hjh3D5cuXERAQAABQqVR45ZVXEBkZicGDB2PPnj147733YGNjg1GjRhm0t2bNGtjY2CAqKgplZWWwsbFBSkoKpk6disDAQMyYMQMSiQQ7duzAhAkTsGXLFgQHBwMATp8+jdTUVAwePBitWrVCVlYWvvnmG4wfPx67d+8W74jevn0b48ePh1arxSuvvAJ7e3skJibC1tb2gfvh9ddfR7t27RAdHQ1BEAAAv/32GzIzMzFy5Ei4u7vj4sWLSExMxKVLl5CYmAiJRIL+/fsjIyMDu3btwptvvokWLVoAAFxdXQFUzPP3z3/+E5GRkRg1ahRyc3OxefNmvPzyy9i5cyfkcvkDx1wTlUqFKVOmoH///oiMjMSPP/6ITz75BEqlEr17965TW1euXMGcOXMwZswYDBs2DBs2bMCrr76KhQsXYvny5XjxxRcBAPHx8Zg9ezb27t1rcaNBiYiIqHHU97VnTZYtW4a3334bwcHBeOGFFwAA3t7etdr38OHDeOONNxAWFoa5c+cCANLS0nD8+HFMmDABAHDnzh2MGTMGJSUlGDduHFq0aIHvvvsOr732GlauXIn+/fvXpWtEeXl5mDp1KgYPHoxhw4bBzc0NWq0W06ZNQ0pKCgYPHozx48ejqKgIhw8fxoULF8TjiomJwXfffYeRI0di3LhxuHbtGr7++mucPXsW33zzDWxsbB4oJiJqZAIRUQPq2rWrsHDhwntuHzt2rKBUKoUNGzaIZWq1Whg+fLgQFhYmlJWVCYIgCL///rugVCqFfv36CSUlJWJdnU4nDBgwQJg8ebKg0+nE8pKSEqFv377CpEmTDMqqSk1NFZRKpfDdd9+JZe+//76gVCqFkydPimU5OTlC165dBaVSKWRmZtb6+FeuXCkolUrhjTfeMNpWXTy7du0SlEqlcPToUbHs888/r/Z9r127Jvj7+wtr1641KD9//rzQqVMno/LaysnJEZRKpbBy5cpqt+u/Z5X7TK1WC+Hh4cLMmTPr9F59+vQRlEqlcPz4cbHsl19+EZRKpRAcHCxkZWWJ5Vu3bhWUSqXw+++/1+2AiIiIqNmor2vPzMxMQalUCtu3bxfr6a/rKgsJCRHmzZtX5ziXLFkidOnSRSgvL79nHf01aeXrwsLCQqFv375Cnz59BK1WKwiCIGzfvr3aa0X99XPlayf98X/zzTcGdf/1r38JSqVS2Lhxo1Ec+mvso0ePCkqlUvj3v/9tsD05ObnaciIyXxxaQUQNSi6X4+TJk8jOzr5nHWtra4wePVp8LZPJMHr0aOTk5IiPdOiNGDECdnZ24utz584hIyMDQ4cOxd27d5Gbm4vc3FwUFxcjLCwMR48eFR/vrbyfRqPB3bt34e3tDblcbvD46aFDhxASEiKOKAQqRuINHTr0gfthzJgxRmWV41Gr1cjNzUXnzp0BwOi4q7N//37odDpERkaKx52bm4uWLVuiXbt2Bo+E1DcHBwcMHz5cfC2TyRAUFITMzMw6t9WxY0eEhoaKr/V98MQTT6BNmzZG5Q/yHkRERNQ81Pe1Z0ORy+UoKSnB4cOH71nn0KFDCA4OxuOPPy6WOTo6YvTo0cjKysKlS5ce6L1lMhlGjhxpULZv3z60aNECY8eONaovkUgAAHv37oWzszPCw8MNrj0DAgLg4ODQoNeeRFS/+JgwETWouXPnYv78+XjqqacQEBCA3r17Y8SIEfDy8hLreHh4GC2o0b59ewAV8/yFhISI5VXntcvIyAAAzJs3754xFBQUQKFQoLS0FHFxcdixYweys7PFx3X1dfSuX78uJp4q69Chw32P916qm48vLy8Pq1atQlJSEnJycoxivp+MjAwIgoABAwZUu70hJ7hu1aqVeGGop1AocP78+Tq31bp1a4PXzs7O4ntU5uTkBAANvqoyERERWa76vvZsKC+99BL27NmDqVOnwtPTE+Hh4YiMjERERIRY517XpD4+PuJ2pVJZ5/f29PSETCYzKLt69So6dOhQ4/XjlStXUFBQcM+F5qpezxKR+WIykIga1KBBg/D4449j//79OHz4MNavX4+EhATExsbWeW45wHA0HQAxoff//t//g7+/f7X76C/2Fi9eLM4lGBISAmdnZ0gkEoN5/BpKdfMNzp49G6mpqYiKioK/vz8cHByg0+kwZcqUWsWj0+kgkUiQkJAAKysro+0NuWJxde9X323dq7yhv1dERERkuer72rOhuLm5YefOnfj111+RnJyM5ORk7NixAyNGjMBHH31Up7aq3qDVu9fid1Wvp2tLp9PBzc0Nn3zySbXb9XNaE5H5YzKQiBqch4cHXn75Zbz88svIycnBs88+i3Xr1okXZLdu3UJxcbFB8ko/4u+RRx6psW39XV4nJyc8+eSTNdb98ccfMWLECINV3tRqtdEovDZt2uDKlStG+6enp9fYfl2oVCqkpKRg5syZmDFjhliuP+7K7nWB5+3tDUEQ0LZt24catUhERETUlDTktWd9kslk6Nu3L/r27QudTof33nsP27Ztwz/+8Q+0a9cObdq0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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAABQMAAAGACAYAAAAZLHQ/AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAtXRJREFUeJzs3XdYFGf7NuBrd2ERpIkCVlRUECzYEewaY1ATS+y9a+wm8RVLjMZGYiyxN+walVhjFEtiJAFj72BFsaCgIL3vzveH387PdQGXsgW5zuN4jzAz9zxz7w6vzN77FIkgCAKIiIiIiIiIiIjooyc1dAJERERERERERESkHywGEhERERERERERFRMsBhIRERERERERERUTLAYSEREREREREREVEywGEhERERERERERFRMsBhIRERERERERERUTLAYSEREREREREREVEywGEhERERERERERFRMsBhIRERERERERERUTLAYSkZqVK1fC1dVVL9caOHAgBg4cKG6fP38erq6uCAwM1Mv1fX190bZtW71cqzg6cOAAXF1d8ezZM0OnQkRERIXI1dUVK1eu1Pl1fH19Ub9+fZ1fpzBl93ypr/erqGvbti18fX0NnQZRscBiINFHTFWMUf2vTp06aN68OYYPH47t27cjKSmpUK4TFRWFlStXIiwsrFDaK0zGnBsRERHRu95/dnN1dYWXlxcGDhyIs2fPGjq9Anvw4AFWrlxZ7L8ovHLlClauXImEhARDp0JExZSJoRMgIt2bOHEiKlasiKysLLx+/RoXLlzAwoULsXXrVqxZswY1a9YUY7/66iuMGjUqT+1HR0dj1apVqFChAtzc3LQ+z9/fP0/XyY/ccps3bx4EQdB5DkRERER5oXp2EwQBMTExOHjwIEaNGoV169ahTZs2hk4v3x48eIBVq1ahSZMmqFixoqHT0ZsbN25AJpOJ21evXsWqVavQrVs3WFtbGzAzIiquWAwkKgZatmyJOnXqiNujR4/GuXPnMGbMGIwdOxbHjh1DiRIlAAAmJiYwMdHtPw2pqakwNzeHXC7X6XU+xNTU1KDX17f09HSYmppCKmWn8NykpKTAwsLC0GkQEVEx9v6zW48ePdCsWTMcPXq0SBcDiyszMzNDp5Avqmd2yplSqURmZmaRvcdUfPETIVEx5eXlhbFjx+L58+c4cuSIuD+7OQODg4PRt29fNGrUCPXr10eHDh2wdOlSAG/n+evRowcAYPr06eKQlgMHDgB4Oy9g586dcevWLfTv3x8eHh7iue/PGaiiVCqxdOlSNGvWDPXq1cOYMWPw4sULtZic5hR5t80P5ZbdnC4pKSnw8/NDq1atULt2bXTo0AH+/v4aPQhdXV3xww8/4PTp0+jcuTNq166NTp06ISgoSCOnhw8fIjIyUmP/+5KSkrBgwQK0bdsWtWvXhpeXF4YOHYrbt2+rvT7V+9mnTx/UrVsXbdu2xa+//qrWlmr+xT/++APLli1DixYt4OHhIQ4Nv379OoYPH46GDRvCw8MDAwYMwOXLl9XaeP78OebMmYMOHTqgbt268PT0xMSJE7Md2nP//n0MGjQIdevWRcuWLbFmzRoolcoPvub8vAeq/EeOHInGjRujXr16+Pzzz7Ft2za1mHPnzqFfv36oV68eGjVqhK+++goPHz5Ui1H9vj948ADffPMNGjdujH79+onHDx8+jO7du6Nu3bpo0qQJpkyZovG7SEREpGvW1tYwMzPT+ML2Q88taWlp+Oyzz/DZZ58hLS1NPC8uLg7NmzdHnz59oFAoAPzf/HxPnz7F8OHDUa9ePTRv3hyrVq3SaiRFaGgoRowYgQYNGqB+/foYPHgwrl27Jh4/cOAAJk2aBAAYNGiQ+Fx2/vz5D7adW06CIKBt27b46quvNM5LT09Hw4YNMXv27Fzbz+1ZF/i/56pjx4598Bk1O+/OGbhy5Ur89NNPAIB27dqJ74Pq+So2NhYPHz5EamrqB9stzLxze2bPyMjAihUr0L59e9SuXRutWrXCTz/9hIyMDLU29u/fj0GDBsHLywu1a9dGx44dsXv3bo28BUHAmjVr0LJlS3h4eGDgwIG4f//+B19vft4D4O3vwcqVK9GhQwdx2qTx48fjyZMnYkxePwMcOXIEnTp1Qp06dfDPP/8AeDs90fTp0+Ht7S1+Nvjtt9/y9bqIdI09A4mKsS5dumDp0qX4999/0atXr2xj7t+/j9GjR8PV1RUTJ06EXC5HREQErly5AgCoVq0aJk6ciBUrVqB3795o2LAhAKBBgwZiG3FxcRg5ciQ6deqEL774AqVLl841r7Vr10IikWDkyJGIiYnBtm3bMGTIEBw+fFjswagNbXJ7lyAI+Oqrr8QiopubG/755x/89NNPiIqKwowZM9TiL1++jJMnT6Jfv34oWbIkduzYgYkTJ+LMmTMoVaqUGNexY0c0adIEO3bsyDXf77//HidOnMCAAQNQrVo1xMXF4fLly3j48CFq1aolxsXHx2PUqFHw8fFBp06dcPz4ccyZMwempqZi8VNlzZo1MDU1xfDhw5GRkQFTU1OcO3cOI0eORO3atTF+/HhIJBIcOHAAgwcPxu7du1G3bl0AwM2bN3H16lV06tQJZcuWxfPnz/Hrr79i0KBB+OOPP8Rvil+9eoVBgwZBoVBg1KhRMDc3x759+/L1Dak270FwcDBGjx4NBwcHDBo0CGXKlMHDhw/x999/Y/DgwQCAkJAQjBw5EhUrVsT48eORlpaGnTt3om/fvjhw4IDG0KRJkyahcuXKmDJlivjQt3btWvzyyy/w8fFBjx49EBsbi507d6J///44dOgQh/UQEZHOJCUlITY2FgAQExODHTt2ICUlBV988YUYo81zS4kSJfDjjz+ib9++WLZsGaZPnw4A+OGHH5CYmIhFixapDV9VKBQYMWIEPDw8MHXqVPzzzz9YuXIlFAqFWMjLzv3799G/f3+ULFkSI0aMgImJCfbu3YuBAwdi586d8PDwQOPGjTFw4EDs2LEDY8aMgbOzM4C3z2u5+VBOEokEn3/+Ofz9/REXFwdbW1vx3L/++gtJSUlq71t2uef2rPuuwnhGbd++PR4/foyjR49i+vTp4jOjnZ0dAGDXrl1YtWoVtm/fDk9PT73mnd0zu1KpxFdffYXLly+jV69eqFatGu7du4dt27bh8ePHWLNmjXj+r7/+iho1aqBt27YwMTHBmTNnMHfuXAiCgP79+4txv/zyC9auXYtWrVqhVatWuH37NoYNG4bMzEyt3sO8vAcKhUIcFdWpUycMGjQIycnJCA4Oxr179+Dk5JTnzwD//fcfjh8/jv79+6NUqVKoUKECXr9+jV69ekEikaB///6ws7NDUFAQZs6ciaSkJAwZMiRPr41I5wQi+mjt379fcHFxEW7cuJFjTMOGDYWuXbuK2ytWrBBcXFzE7S1btgguLi5CTExMjm3cuHFDcHFxEfbv369xbMCAAYKLi4vw66+/ZntswIAB4vZ///0nuLi4CC1atBASExPF/ceOHRNcXFyEbdu2ifvatGkjTJs27YNt5pbbtGnThDZt2ojbp06dElxcXIQ1a9aoxU2YMEFwdXUVIiIixH0uLi5CrVq11PaFhYUJLi4uwo4dO9TOd3FxUcspJw0bNhTmzp2ba4zq/dy8ebO4Lz09XejSpYvg5eUlZGRkCILwf+9lu3bthNTUVDFWqVQKn376qTBs2DBBqVSK+1NTU4W2bdsKQ4cOVdv3vqtXrwouLi7CwYMHxX0LFiwQXFxchOvXr4v7YmJihIYNGwouLi7C06dPP/jatX0PsrKyhLZt2wpt2rQR4uPj1Y69+3pU78ebN2/EfWFhYULNmjWF//3vf+I+1e/7119/rdbWs2fPBDc3N2Ht2rVq++/evSu4u7tr7CciIioMqme39/9Xu3Zt4cCBA2qxeXluWbJkiVCzZk3h4sWLwvHjxwUXFxdh69ataudNmzZNcHFxEebNmyfuUyqVwqhRo4RatWqpPQu6uLgIK1asELfHjh0r1KpVS3jy5Im4LyoqSqhfv77Qv39/cZ/q2v/9959W74e2OYWHhwsuLi7C7t271c4fM2aM0KZNG7VnhPdp86ybl2fU958vBUHz/dq0aVOOz0iqZ5MPvUeFnXdOz+yHDh0Sf3fe9euvvwouLi7C5cuXxX3ZPTsOGzZMaNeunbgdExMj1KpVSxg1apTafVm6dKng4uKS7fN9TrR5D3777TfBxcVF2LJli8Yx1fXz+hmgZs2awv3799ViZ8yYITRr1kyIjY1V2z9lyhShYcOG2b43RIbEYcJExZyFhQWSk5NzPK7q/fTnn3/ma9gnAMjlcnTv3l3r+K5du8LS0lLc/uyzz2Bvb6/zVfSCgoIgk8k0hi4PGzYMgiBoDAH29vaGk5OTuF2zZk1YWlri6dOnanF37979YK9A4O17ff36dURFReUaZ2Jigt69e4vbcrkcvXv3RkxMjMZw2q5du6p94xsWFobHjx/j888/x5s3bxAbG4vY2FikpKTAy8sLFy9eFO/zu+dlZmbizZs3cHJygrW1NUJDQ8VjZ8+eRb169cQehcDbb7c///zzD77mvL4HoaGhePbsGQYNGqTRM08ikQB4u2hMWFgYunXrptY7oGbNmvD29s7296hPnz5q26dOnYJSqYSPj4/4HsXGxqJMmTKoXLmyVkOaiIiI8mv27NnYsmULtmzZgsWLF8PT0xOzZs3CyZMnxZi8PLeMHz8e1atXx7Rp0zB37lw0adIEgwYNyvba7/bgUvVyyszMxLlz57KNVygUCA4OxieffIJKlSqJ+x0cHNC5c2dcvnxZnKYkvz6UU9WqVeHh4YHff/9djIuLi8M///yDzz//XHxGyE5ennX18Yw6YcIE3L17N9degYBu8s7umT0wMBDVqlWDs7Oz2jNR06ZNAUDtmejdZ8fExETExsaiSZMmePr0KRITEwG8Hb2RmZmJAQMGqN0X1eiOvNDmPTh58iRKlSqFAQMGaBxTXT+vnwEaN26M6tWri9uCIODkyZNo27YtBEFQe5+aN2+OxMREjWd0IkPjMGGiYi4lJSXXYbsdO3ZEQEAAZs2ahSVLlsDLywvt27fHZ599pvVCFI6OjnlaLKRy5cpq2xKJBJUrV8bz58+1biM/nj9/DgcHB7WHJeD/hq+8f/1y5cpptGFjY4OEhIR8Xf/bb7+Fr68vWrdujVq1aqFVq1bo2rWr2oM18Pbh+v0FLqpUqSLmWK9ePXH/+8NhHz9+DACYNm1ajnkkJibCxsYGaWlpWL9+PQ4cOICoqCi1OVNUD3QAEBkZCQ8PD412qlatmuvrzc6H3gNVodXFxSXHNlTzM2Z3/WrVquHff//VWCQku/dJEAR8+umn2V5D14vsEBFR8Va3bl21BUQ6d+6Mrl274ocffkDr1q0hl8vz9Nwil8uxcOFC9OjRA2ZmZli4cGG2BTKpVKrx3KH6e5rTc1hsbCxSU1Nz/LurVCrx4sUL1KhRQ8tXn7+cunTpgnnz5uH58+eoUKECAgMDkZmZiS5duuTafl6edQ31jJodXeSd3TN7REQEHj58CC8vr2zziImJEX++fPkyVq5ciWvXrmnMeZiYmAgrKyvxOU317KpiZ2cHGxubD7/wd2jzHjx58gRVq1bN9dktr58B3n9ujI2NRUJCAvbu3Yu9e/dmew3VsH8iY8FPM0TF2MuXL5GYmKjWu+19JUqUwK5du3D+/Hn8/fff+Oeff3Ds2DHs3bsXmzdvVptnJrc29EWhUGiVU2HI6TqCFpNsZ6djx45o1KgRTp06heDgYPj7+2Pjxo1YuXIlWrVqla8233/vVbn973//g5ubW7bnqIpk8+bNE+cSrFevHqysrCCRSNTm1StsungPtPH+/IZKpRISiQQbN27M9j5ztWEiItInqVQKT09PbN++HREREfkqrP37778A3i6mEBERoVFgK+o6deqERYsW4ffff8eYMWNw5MgR1K5dW5ybMCeF8axrCLrIO7tndqVSCRcXF3G+yfeVLVsWwNui25AhQ+Ds7AxfX1+UK1cOpqamOHv2LLZu3ZrvEUYfytcQ9+7990n12r744gt069Yt23PeX6CRyNBYDCQqxg4fPgwAaN68ea5xUqkUXl5e8PLywvTp07Fu3TosW7YM58+fh7e3d65DL/IjIiJCbVsQBERERKj9Ec2pB15kZKTaw21ecqtQoQLOnTuHpKQktW8Gw8PDxeO65uDggP79+6N///6IiYlBt27dsG7dOrVCWHR0tEbPNlWPvw/lqHpvLC0t4e3tnWvsiRMn0LVrV7VVm9PT09V6BQJA+fLlNe4ZADx69CjX9nOS23ugyv/evXs55l++fPkcrx8eHo5SpUp9sJinmky6YsWK+erhSEREVNhUq/6mpKQAyNtzy507d7B69Wp0794dd+7cwaxZs/D777/DyspK7RpKpRJPnz5V+9un+nua0zOGnZ0dzM3Nc/y7K5VKxdEU+Xlm1DYnW1tbtG7dGr///js+//xzXLlyRWPhh5x86FlXRZtnVG0U1rOzPvJ2cnLCnTt34OXllWvef/31FzIyMrB27VrxWQyAxtQqqmOPHz9We2aPjY1FfHz8B/N534feAycnJ1y/fh2ZmZkwNTXNto2Cfgaws7NDyZIloVQqP/h8TWQsOGcgUTF17tw5rFmzBhUrVsx1hbW4uDiNfaoeZRkZGQAgriqb3+Gx7zt06JDa3DKBgYF49eoVWrZsKe6rVKkSrl+/LuYAAGfOnMGLFy/U2spLbi1btoRCocCuXbvU9m/duhUSiUTt+nnx8OFDcUhEThQKhUaRrXTp0nBwcFB7jQCQlZWlNgQhIyMDe/fuhZ2dndqqw9mpXbs2nJycsHnz5mzninx3CEN236bu2LFD/DCi0qpVK1y7dg03btxQa+fdeXu0oc17UKtWLVSsWBHbt2/XuKeq3ooODg5wc3PDoUOH1GLu3buH4OBgrXoYfvrpp5DJZFi1apVGL0hBEPDmzZs8vTYiIqKCyMzMRHBwMExNTcWhi9o+t2RmZmL69OlwcHDAzJkzsWjRIrx+/RoLFy7M9lrvticIAnbt2gVTU9Mch4nKZDI0a9YMf/75J549eybuf/36NY4ePYqGDRuKBRbVc9n7f+8/RNucunTpggcPHuCnn36CTCZDp06dPti2Ns+6Kto8o2ojt/chNjYWDx8+1Bhma6i8fXx8EBUVhX379mkcS0tLE4vTqufG96eV2b9/v9o53t7eMDU1xc6dO9Vit23b9sFc3qfNe/Dpp5/izZs3Gv8/eTfXgn4GkMlk6NChA06cOIF79+5pHOcQYTJG7BlIVAwEBQUhPDwcCoUCr1+/xvnz5xEcHIzy5ctj7dq1GkMk37V69WpcunQJrVq1QoUKFRATE4Pdu3ejbNmyaNiwIQCIi0rs2bMHJUuWhIWFBerWrZvv4Sc2Njbo168funfvjpiYGGzbtg2VK1dGr169xJiePXvixIkTGDFiBHx8fPDkyRP8/vvvGkOe85Jb27Zt4enpiWXLluH58+dwdXVFcHAw/vzzTwwePDjX4dS56dixI5o0aZLrIiLJyclo1aoVOnTogJo1a8LCwgIhISG4efOmWs884G2xa+PGjXj+/DmqVKmCY8eOISwsDPPmzcvxG08VqVSK+fPnY+TIkejcuTO6d+8OR0dHREVF4fz587C0tMS6desAAK1bt8bhw4dhaWmJ6tWr49q1awgJCVFblAMARowYgcOHD2PEiBEYNGgQzM3NsW/fPpQvXx53797V+n3S5j2QSqWYM2cOvvrqK3Tt2hXdu3eHvb09wsPD8eDBA/j7+wN4Owx65MiR6N27N3r06IG0tDTs3LkTVlZWGD9+/AdzcXJywuTJk7FkyRI8f/4cn3zyCUqWLIlnz57h9OnT6NWrF4YPH671ayMiIsoL1bMb8H9fsD1+/BijRo0SC2vaPresXbsWYWFh2Lp1KywtLVGzZk2MGzcOy5cvx2effab2JZmZmRn++ecfTJs2DXXr1sU///yDv//+G2PGjIGdnV2O+U6ePBkhISHo168f+vXrB5lMhr179yIjIwNTp04V49zc3CCTybBx40YkJiZCLpejadOmuc5fnZecWrVqBVtbWwQGBqJly5a5tquizbOuijbPqNpQfXm7bNkydOzYEaampmjTpg0sLCywa9curFq1Ctu3b891ERF95d2lSxccP34c33//Pc6fP48GDRpAoVAgPDwcgYGB2LRpE+rUqYNmzZrB1NQUY8aMQZ8+fZCcnIyAgACULl0ar169Etuzs7PDsGHDsH79eowePRqtWrVCaGgogoKCUKpUqTy9j9q8B127dsWhQ4ewaNEi3LhxAw0bNkRqairOnTuHvn374pNPPimUzwDffPMNzp8/j169eqFnz56oXr064uPjcfv2bZw7dw4XLlzI02sj0jUWA4mKgRUrVgAATE1NYWtrCxcXF8yYMQPdu3fXmCj3fW3btsXz58+xf/9+vHnzBqVKlUKTJk0wYcIEcWiJqakp/Pz8sHTpUsyZMwdZWVlYtGhRvouBY8aMwd27d7FhwwYkJyfDy8sL33//vfgtKgC0aNECvr6+2LJlCxYuXIjatWtj3bp1+PHHH9XayktuUqkUa9euxYoVK3Ds2DEcOHAAFSpUwP/+9z8MGzYsX69FWyVKlEDfvn0RHByMkydPQhAEODk54fvvv0e/fv3UYm1sbODn54f58+dj3759KFOmDGbPnq31g6inpyf27t2LNWvWYOfOnUhJSYG9vT3q1q2rtkrxzJkzIZVK8fvvvyM9PR0NGjTAli1bMGLECLX2HBwcsH37dsyfPx8bNmyAra0t+vTpI/ZAKOz3oEWLFti2bRtWr16NzZs3QxAEVKpUSe31e3t7Y9OmTVixYgVWrFgBExMTNG7cGFOnTtX693LUqFGoUqUKtm7ditWrVwN4Oy9Os2bN0LZtW61fFxERUV6pnt2At8UwZ2dnzJkzB3369BH3a/Pccvv2baxfvx4DBgwQV38F3v6N+/PPPzFr1iz88ccf4qqsMpkMmzZtwpw5c7B48WKULFkS48ePx7hx43LNt0aNGti1axeWLFmC9evXQxAE1K1bF4sXL1ZbZMze3h5z587F+vXrMXPmTCgUCmzfvj3Xol1ecpLL5ejYsSN27979wYVDVLR51lXR5hlVG3Xr1sWkSZOwZ88e/PPPP1Aqlfjzzz/zNCexvvKWSqVYvXo1tm7disOHD+PUqVMwNzdHxYoVMXDgQHH4trOzM1asWIHly5fjxx9/RJkyZdC3b1/Y2dlpDNeePHky5HI59uzZg/Pnz6Nu3brYvHkzRo8erfXr1/Y9UBWf165di6NHj+LkyZOwtbVFgwYNxGHShfEZoEyZMggICMDq1atx6tQp/Prrr7C1tUX16tXx7bff5ul1EemDRNDVLPBERFToBg4ciDdv3uDo0aOGToWIiIg+Ir6+vjhx4gSuXr1q6FQKZOHChfjtt98QHByc5yJdTs6fP49Bgwbhl19+wWeffVYobepDUc2biHSPcwYSERERERFRkZeeno4jR46gQ4cOhVYIJCL6GHGYMBER6VxycrI4wXRO7Ozssl20hIiIiCg3MTExCAkJwYkTJxAXF4dBgwYZOiUqoHfnGcxOiRIlNIZDE5H2WAwkIiKd27x5M1atWpVrzJ9//omKFSvqKSMiIiL6WDx48ADffvstSpcujVmzZokrylLR1bx581yPd+vWDX5+fnrKhujjwzkDiYhI554+fYqnT5/mGtOwYcNcV7YmIiIiouIhJCQk1+MODg6oXr26nrIh+viwGEhERERERERERFRMcAERIiIiIiIiIiKiYoJzBubB1atXIQgCTE1NDZ0KERER0QdlZmZCIpGgfv36hk6lyOFzHxERERU12j77sWdgHgiCAF2NqhYEARkZGTprn/KH98U48b4YJ94X48V7Y5z0cV90+ezyseN7R0REREWNts8v7BmYB6pvhuvUqVPobaekpCAsLAzVq1eHhYVFobdP+cP7Ypx4X4wT74vx4r0xTvq4Lzdv3tRJu8WBLp/7iIiIiHRB22c/9gwkIiIiIiIiIiIqJlgMJCIiIiIiIiIiKiZYDCQiIiIiIiIiIiomWAwkIiIiIiIiIiIqJlgMJCIiIiIiIiIiKia4mrAOKBQKZGZm5umc9PR08b9SKWu0+mZqagqZTGboNIiIiIq9iIgI+Pv74/r167h//z6cnZ1x9OjRD54nCAI2btyI3bt3IzY2Fm5ubpg+fTrq1aun+6SJiIiIihAWAwuRIAh4+fIl4uLi8nyuUqmEiYkJIiMjWQw0EFtbW5QtWxYSicTQqRARERVb9+/fx9mzZ+Hh4QGlUglBELQ6b+PGjVixYgW+/fZbuLq6YteuXRg2bBgOHz6MSpUq6ThrKgypqanYunUrIiMjUb58eQwZMgTm5uaGTouoUCkUCoSGhiI2NhZ2dnZwd3dnpwQi0jsWAwuRqhDo4OAACwuLPBWVFAoF0tPTYWZmxj8GeiYIAlJSUhAdHQ0AKFeunIEzIiIiKr7atm2LTz75BADg6+uLW7duffCc9PR0rF+/HsOGDcOQIUMAAA0bNsRnn30Gf39/zJkzR4cZU2GYP38+zp8/L25fu3YNx44dg6enJ2bNmmXAzIgKT0hICPz9/cXPHQDg4OCA4cOHw9vb24CZEVFxw2JgIVEoFGIhsHTp0vk6HwBKlCjBYqABqL51jo6OhoODA+8BERGRgeRnhMSVK1eQlJQEHx8fcZ9cLkf79u1x6tSpwkyPdOD9QuC7zp8/j/nz57MgSEVeSEgI/Pz80LhxY0ydOhWVK1dGREQEAgIC4OfnB19fXxYEiUhvOB61kKjmCLSwsDBwJpRfqnuX1/keiYiIyLDCw8MBAM7Ozmr7q1WrhsjISKSlpRkiLdJCamqqWAhs2LAhFi9ejH379mHx4sVo2LAhgLcFwdTUVEOmSVQgCoUC/v7+aNy4MWbOnImaNWvC3NwcNWvWxMyZM9G4cWNs3rxZ7CBCRKRrRtUz8Pjx4zhy5Ahu376NhIQEVK5cGQMHDsSXX34pDrkdOHAgLly4oHHusWPHUK1aNXE7MTERixYtwunTp5GZmYkWLVpg1qxZcHBw0Olr4HxzRRfvHRERUdGUkJAAuVwOMzMztf3W1tYQBAHx8fEoUaJEnttVTSVCurNx40YAgKOjI7799ltIpVIIggAnJyd8++23mDx5MqKiorBhwwaMHDnSwNkS5c/t27cRHR2NCRMmZPvlxOeff47vvvsOV65cQa1atQyQIRF9LARB0Kq2YVTFwK1bt6JChQrw9fVFqVKlEBISgu+++w4vX77E+PHjxbgGDRpg2rRpaudWrFhRbXvy5Ml48OAB5syZAzMzMyxfvhwjR47E/v37YWJiVC+biIiIiIxQZmYmwsLCDJ3GRy00NBQA0KJFC9y9e1fjePPmzbF//36EhobyXlCRdfv2bQBASkpKtr/H6enpYhwXkySigpLL5R+MMaqq2Nq1a2FnZydue3l5IS4uDlu2bMHYsWPFfxitra1Rr169HNu5evUq/v33X/j7+6N58+YAgKpVq6Jjx444efIkOnbsqNPXoQ/Pnj1Du3btsGjRInTv3h0AsHLlSqxatSrbBykiIiJ9O37/bwCAT43WBs2DPn7W1tbIyMgQF2NTSUhIgEQigY2NTb7aNTU1RfXq1QsrTcpG6dKlERkZiZSUFLi5uWkcV40IKl26dLbHiYoCpVKJ/fv3w8LCAi4uLhrH7927BwCoVasWf8+JqEAePHigVZxRFQPfLQSquLm5Yd++fUhJSYGlpaVW7QQFBcHa2hrNmjUT9zk7O8PNzQ1BQUEfRTFQW+vWrUP16tXFVfmIiIj0JSMrw9ApUDGhmivw0aNHqFmzprg/PDwc5cuXz9cQYeDtFCKcD1q3unfvjps3b+LEiRMYPny4Wm+GjIwMnDhxQozjvaCiqkGDBnBwcMDvv/+OmTNnqvX+UyqV+P333+Ho6IgGDRpwIUMiKhBtpz8zqmJgdi5fvgxHR0e1QuCFCxdQr149KBQKeHh4YNKkSWjcuLF4PDw8HFWrVtV4E5ydncUJpj9GX331FUaNGqW2b/369ejQoQOLgURERPTRatCgASwtLXH8+HGxGJiZmYmTJ0+iZcuWBs6OclO/fn3I5XJkZGSgV69ecHJyQokSJZCWloYnT55AoVBALpejfv36hk6VKN9kMhmGDx8OPz8/LFiwAD179oSTkxOePHmCgIAAXLx4Eb6+viwEEpHeGHUx8NKlSzh27Jja/ICNGzdGly5dUKVKFURHR8Pf3x9Dhw7Fjh07xIeEhIQEWFlZabRnY2ODW7duFSinnCaSTk9Ph1KphEKhyNcqUIIgiP/V5nylUin+VxUvkUhgYmKidr4gCFq3aaxSU1Nhbm6u8+soFAoolUqkpqaK769q5TquYGdceF+ME++L8TLUvcnMers6OxdgyJ4+7ou2k0gbk9TUVJw9exYA8Pz5cyQlJSEwMBAA0KRJE9jZ2WHw4MGIjIzEqVOnAABmZmYYPXo0Vq5cCTs7O7i4uODXX39FXFwchg8fbrDXQh8mk8nwzTffYNGiRVAoFHj06JFGzDfffMMiCRV53t7e8PX1hb+/P6ZOnSrud3R0hK+vL7y9vQ2YHREVN0ZbDHz58iWmTJkCT09PDBo0SNw/ceJEtbjWrVujc+fOWLNmjbgamS7lNpG0iYmJOPlrTpKTk7FmzRr8/fffeP36NSwtLeHi4oKJEyfCzc0NgwYNQlxcHObOnYuffvoJd+/eRenSpTFkyBD06NFDbEd1nczMTHFFqnXr1mHDhg24cuUKgLffkgPAoUOHcOjQIQBvV6qaO3euVq/1xIkT2LZtG548eQKJRIJy5cqha9eu6Nevnxjz7NkzrFixAhcuXEBGRgaqV6+OkSNHokWLFmLMkSNHMGfOHBw9ehTly5cX91+6dAmjRo3Chg0b0KhRIwDAyJEjxde/ZMkShIWFoVu3bpg6dSrS09OxZcsWBAYG4uXLl7C2tkadOnUwefJkVKpUCcDb4uivv/6KgwcP4tmzZ7C0tETr1q0xceJEWFtb5/p609PTkZWVlW3v0cePH2v1npF+8b4YJ94X46XPe2NiYoLY2BgAwH3lfWRlZent2kWNru+LNpNIG5OYmBhMmjRJbZ9qe/v27fD09FT7MlRl5MiREAQBmzdvRmxsLNzc3ODv7y8+I5Dx+uuvvz54nIUS+hh4e3vD09MToaGhiI2NhZ2dHdzd3VnsJiK9M8piYEJCAkaOHAlbW1usXLky1xWVLCws0KpVK3E+EeDtJNIvX77UiI2Pj8/3BNIqOU0knZ6ejsjISJiZmeU6L813332HkydPol+/fqhevTri4uJw5coVPHv2DG5ubpBKpUhMTMSkSZPQoUMHdO7cGYGBgVi4cCHMzc3x5ZdfAoA4Obapqal4PdUqyaptPz8/zJ49G3Xq1EHPnj0BQBx68SEhISGYPn06mjZtKp778OFD3Lx5Uzz/9evXGDp0KNLS0jBgwADY2tri0KFDmDJlCpYvXy4OTTY1NRVzfvfaqg8ncrlc3C+VShEfH4+JEyfCx8cHXbp0QenSpWFqaoqxY8fiv//+Q8eOHTFo0CAkJycjJCQET548QY0aNQAAs2fPxqFDh9CtWzcMHDgQz58/x65du3D//n3s3LlTzCUnJiYmcHJyEt/f1NRUPH78GFWqVNFL70TSDu+LceJ9MV6Gujf3Hz4DANSoVkNv1yxK9HFftJ1E2phUrFjxg4uh7dixQ2OfRCLB6NGjMXr0aF2lRjqQmpqK8+fPA3j7HNasWTNUr14dDx48QHBwMLKysnD+/Hm9jRQhIiIqDoyuGJiWlobRo0cjMTERe/fuzXa474c4Ozvj3LlzGkNjHj16lO3qTXmR00TSUqkUUqkUMpks1292goKC0KtXL8yYMUNtv0KhEHv4RUdHw9fXF0OHDgUA9O3bF7169cLy5cvRrVs3mJqaigVS1TVVPwMQt7t164YffvgBTk5O6NatW55eZ1BQECwtLbF58+YcX4+/vz9iYmKwa9cusWdf79698cUXX+DHH39E+/btxffl/Vzfzffd/RKJBK9fv8bcuXPRp08fMXb//v3477//MH36dAwZMkTcP2bMGPE+X7p0Cb/99ht+/vlnfP7552JM06ZNMWLECJw6dUpt//tkMhmkUinMzc01Cqbm5uactNoI8b4YJ94X46Xve2Nq8vYLGP4+5E6X96WoDRGm4mfTpk0A3j4P7t27V60n68SJE9GjRw8IgoBNmzZhwoQJhkqTqFCEhITA398f0dHR4j4HBwcMHz6cvV+JSK9y7nJnAFlZWZg8eTLCw8OxadMmODo6fvCclJQU/P3336hTp464r2XLloiPj8e5c+fEfY8ePUJoaKjBJ5G2trbG9evXERUVlWOMiYkJevfuLW7L5XL07t0bMTExuH37tj7ShLW1NVJTUxEcHJxjzNmzZ1G3bl2xEAgAJUuWRO/evfH8+fN890aQy+Xo3r272r6TJ0+iVKlSGDBggEa86oNOYGAgrKys0KxZM8TGxor/q1WrFiwsLMRvnYmIiIjIOFy+fBkA0L59ewDA4cOHsW7dOhw+fFhtvyqOqKgKCQmBn58fqlSpgsWLF2Pfvn1YvHgxqlSpAj8/P4SEhBg6RSIqRoyqZ+DcuXNx5swZ+Pr6IikpCdeuXROPubu748aNG9i0aRPat2+PChUqIDo6Glu2bMGrV6/wyy+/iLH169dH8+bNMWPGDEybNg1mZmZYtmwZXF1d8emnnxrglf2fb7/9Fr6+vmjdujVq1aqFVq1aoWvXrmpz6Tk4OGj0EKhSpQqAtxNp16tXT+d59uvXD8ePH8fIkSPh6OiIZs2awcfHR62YGhkZCQ8PD41znZ2dxeP56Ynp6OioMb/RkydPULVqVXEodHYiIiKQmJgILy+vbI/HxMTkORciIiIi0h3Vl7p37txBz549xUXcAGDz5s2oWLGiWhxRUaRQKODv74/GjRtj5syZ4gipmjVrYubMmViwYAE2b94MT09Pzh9IRHphVMVAVS80Pz8/jWN//vkn7O3tkZmZiWXLliEuLg7m5uaoX78+5s6di7p166rFL1++HIsWLcLs2bORlZWF5s2bY9asWbkWk/ShY8eOaNSoEU6dOoXg4GD4+/tj48aN+OWXX9CkSROD5vau0qVL49ChQ/j3338RFBSEoKAgHDhwAF27dsWPP/6Yp7Zyenh792HvXdrMaZhTe6VLl8bPP/+c7XE7O7t8tUtEREREutGgQQOcPHkSERERsLa2xqBBg9CkSRNcuHAB27dvx5MnT8Q4oqIqNDQU0dHRmDp1qsZ8+FKpFD179sTUqVMRGhqqNuKNiEhXjKoY+KGVxIC389Rpw8rKCgsXLsTChQsLmlahc3BwQP/+/dG/f3/ExMSgW7du2LBhg1gMjI6ORkpKilrvQNVKgxUqVNBbnnK5HG3btkXbtm2hVCoxZ84c7N27F2PHjkXlypVRvnx5PHr0SOM81Wq8qt6OqlV8ExMT1eKeP3+udS5OTk64fv06MjMzc1wExMnJCefOnUODBg3yXVAkIiIiIv0ZMmQITp48CQBISkrC2bNncfPmTcTGxiIpKUktjqioio2NBQBUrlw52+NOTk5qcUREumZUcwZ+7BQKhUZBrHTp0nBwcEBGRoa4LysrC3v37hW3MzIysHfvXtjZ2aFWrVp5uqaFhQUSEhLynOubN2/UtqVSKVxdXcV8AKBVq1a4ceMGrl69KsalpKRg3759qFChgrjqsuqP28WLF8U4hUKBffv2aZ3Pp59+ijdv3mDXrl0axwRBAAD4+PhAoVBgzZo1GjFZWVn5eh+IiIiISHfe7QygVCpx8+ZNsSD47igSbToNEBkr1QiliIiIbI+resByJBMR6YtR9Qz82CUnJ6NVq1bo0KEDatasCQsLC4SEhODmzZv43//+J8Y5ODhg48aNeP78OapUqYJjx44hLCwM8+bNy7FXXE5q1aqFc+fOYcuWLXBwcEDFihWznefvfbNmzUJ8fDyaNm0KR0dHREZGYufOnXBzc0O1atUAAKNGjcIff/yBkSNHYuDAgbCxscGhQ4fw7NkzrFy5UuwCX6NGDdSrVw9Lly5FfHw8bGxscOzYMWRlZWn9Orp27YpDhw5h0aJFuHHjBho2bIjU1FScO3cOffv2xSeffIImTZqgd+/eWL9+PcLCwtCsWTOYmpri8ePHCAwMxMyZM/HZZ5/l6f0jIiIiIt158eJFocYRGSN3d3c4ODggICBAbc5A4G0RPCAgAI6OjnB3dzdglkRUnLAYqEclSpRA3759ERwcjJMnT0IQBDg5OeH7779H7969kZaWBgCwsbGBn58f5s+fj3379qFMmTKYPXs2evXqledr+vr6Yvbs2Vi+fDnS0tLQrVs3rYqBX3zxBfbt24fdu3cjISEB9vb28PHxwYQJE8Q/XmXKlMGePXuwePFi7Ny5E+np6XB1dcW6devQunVrtfZ+/vlnzJ49Gxs2bIC1tTV69OgBT09PDB06VKvXIZPJsHHjRqxduxZHjx7FyZMnYWtriwYNGog9FgHghx9+QO3atbFnzx4sW7YMMpkMFSpUwBdffMG5ZoiIiIiMjL29vfhzvXr18OLFCyQnJ6NkyZIoV66cuKDgu3FERY1MJsPw4cPFz3gNGzaEXC5HRkYGLl++jEuXLsHX15eLhxCR3kgE1RhL+qCbN28CQLaTuqalpeHRo0eoWrVqvuarUygUSEtLw+jRoxEXF4ejR48WOF/Km+zuYUpKCsLCwuDm5qaxwjMZDu+LceJ9MV6GujeHw97OA9bF7VO9XbMo0cd9ye3ZhXLH904/fvvtN2zbtu2DcYMHD0aPHj30kBGR7mzZsgWHDh1SGwIvlUrRtWtXrTtJEBHlRtvnF/YMJCIiIiIig7h7967adoMGDdCnTx/s2bMHV65cyTGOqKgJCQnBwYMH0ahRI42egQcPHoSrqyu8vb0NnSYRFRMsBhYzCoXig6tUWVhYoGTJknrKiIiIiIiKq/fnw75y5YpaETCnOKKiRKFQwN/fH40bN9aYM9DHxwcLFizA5s2b4enpyaHCRKQXLAYWMy9evEC7du1yjRk/fjwmTJigp4yIiIiIqLhSzZktk8lgZ2eHV69eicfs7e0RExMDpVIpxhEVRaGhoYiOjsbUqVPVCoHA22HCPXv2xNSpUxEaGsqpCYhIL1gMNDLbtm3T6bdB9vb22LJlS64xlSpV0tn1iYiIiIhUMjIyALztOfXmzRt8+eWXaN++PU6dOoXDhw+Lc6up4oiKItXIrMqVK2d73MnJSS2OiEjXWAwsZszMzDgXBREREREZhfLly+P69esAgKysLOzfvx/79+/PNo6oqLKzswMAREREoGbNmhrHnzx5ohZHRKRr0g+HEBERERERFb4mTZoAACQSCezt7dWOOTg4QCKRqMURFUXu7u5wcHBAQECA2krCAKBUKhEQEABHR0e4u7sbKEMiKm5YDCQiIiIiIoNITk4GAAiCgNjYWLRs2RLDhg1Dy5YtERMTA0EQ1OKIiiKZTIbhw4fj4sWLWLBgAe7cuYOUlBTcuXMHCxYswMWLFzFs2DAuHkJEesNhwkREREREZBCqYZHu7u4IDQ1FUFAQgoKCxOOq/Rw+SUWdt7c3fH194e/vj6lTp4r7HR0d4evry6mciEivWAwkIiIiIiKDUA2ftLS0xJ49e7B9+3ZERkaifPnyGDRoEJYuXcrhk/TR8Pb2hqenJ0JDQxEbGws7Ozu4u7uzRyAR6R2LgUREREREZBCq4ZN+fn5YunQpevbsCScnJzx58gRLly7FxYsX4evry2IJfTRkMhnq1Klj6DSIqJhjMZCIiIiIiAyGwyeJiIj0i8VAIyKVGs96LqdPn0ZUVBT69+9faG22bdsWrVu3xuzZswutTSIiIiIq+jh8koiISH9YDNQDQRAgkUhyjZHJZDA3NzfItbNz+vRp3Lp1q1CLgatWrYK1tXWhtUdEREREHw8OnyQiItIPFgP1QCKRIORGJOKT0nOMEQQBWQoFTGSyfBXvsmNjaQbvuuULpa3sCIKAzMxMyOVyreI58TMRERERERERkWGxGKgn8UnpeJOYczFQqVQiKysLJiYmBh8u7Ovri4MHDwIAXF1dAQDdunUDANy6dQtTp07FkiVLEB4ejp9//hktW7bEzz//jODgYLx8+RKlS5dG8+bNMXXqVFhZWYntvj9M2NfXF7du3cJ3332HRYsW4fHjx6hevTrmzJmD2rVr6/lVExEREZEhKRQKDhMmIiLSAxYDScPYsWMRGxsrFvsAwM7ODmvWrEF0dDTmz5+Pr776CuXKlUP58uWRlpYGhUKBKVOmwM7ODi9evMC6deswduxY7NixI9drvXr1CvPnz8eoUaNgZWWFJUuWYPz48Th16hRMTU318XKJiIiIyMBCQkLg7++P6OhocZ+DgwOGDx/OBUSIiIgKGYuBpMHJyQl2dnaIjIxEvXr11I7Fx8dj48aN8PDwUNs/d+5c8eesrCxUrFgR/fr1w6NHj1C1atUcrxUfH4+dO3eiRo0aAABzc3MMGjQI169fR6NGjQrvRRERERGRUQoJCYGfnx8aN26MqVOnonLlyoiIiEBAQAD8/Py4ojAREVEhYzGQ8sTW1lajEAgAhw4dwtatWxEREYGUlBRx/+PHj3MtBjo4OIiFQACoXr06ACAqKqoQsyYiIiIiY6RQKODv74/GjRtj5syZ4nQ5NWvWxMyZM7FgwQJs3rwZnp6eHDJMRERUSAw7OR0VOWXKlNHYd+rUKUybNg1169bF8uXLsW/fPqxevRoAkJ6e8zyJADRWF1YNDf7QeURERERU9IWGhiI6Oho9e/bUmDdbKpWiZ8+eiIqKQmhoqIEyJCIi+viwZyDlSXYrHQcGBsLNzQ0//PCDuO/ChQv6TIuIiIiIiqDY2FgAQOXKlbM97uTkpBZHREREBcdiIGXL1NRU6955aWlpGot9/P7777pIi4iIiIg+InZ2dgCAiIgI1KhRQ2M14SdPnqjFERV1XDWbiIwBi4GUrWrVqmH//v04evQoKleujFKlSuUY6+3tjR9++AGrV69G/fr1cfbsWZw7d06P2RIRERFRUeTu7g4HBwesX78eCQkJGqsJW1tbw9HREe7u7gbMkqhwcNXsj0d4eDgiIiIMnYaap0+fIikpydBpFAmWlpaoVKmSodNQU7lyZTg7O+vteiwG6omNpVmuxwVBQJZCAROZLNuhuLq4Zm569OiBGzduYN68eYiLi0O3bt1yjO3Tpw+ePXuGnTt3wt/fH82bN8eSJUvQq1evfF+fiIiIiD5+MpkMzZs3x4EDB2Bra4tu3brB0dERUVFROHPmDB48eIDu3buz5xQVeVw1++OyceNG3Lp1y9Bp0Eekdu3aWLRokd6ux2KgHgiCAO+65Q127fwUFy0tLbF06VKtYmUyGaZNm4Zp06ap7b97967a9l9//aW27efnp9GWtbW1xnlERERE9HFSKBT4999/UbZsWURFReHgwYPiMYlEgrJlyyI4OBiDBg1iQZCKLK6a/fEZOXIkewYWYcbaM1CfWAzUA22KcQqFAhkZGZDL5YX6B6CwehkSERERERU21WrCANC4cWM0bNgQcrkcGRkZuHz5Mi5evCjG1alTx5CpEuWb6vd86tSpOa6aPXXqVP6eFyHOzs56HdJJVNikHw4hfVEqlYZOgYiIiIhIb16/fg0AaNiwIaZPnw4nJyfI5XI4OTlh+vTpaNiwoVocUVHEVbOJyNiwZyARERERERlEQkICgLeLKIwZM0ZjYYUGDRqoxREVRe+uml2zZk2N41w1m4j0jT0DiYiIiIjIIKytrQEAx48fVysEAkB0dDQCAwPV4oiKItWq2QEBARqjwZRKJQICArhqNhHpFYuBRERERERkEO/2hJLJZGjZsiWGDRuGli1bqs2jzR5TVJTJZDIMHz4cFy9exIIFC3Dnzh2kpKTgzp07WLBgAS5evIhhw4Zx8RAi0hsOEyYiIiIiIoPIzMwE8HbRO0EQEBQUhKCgIABvF1ZQ7VfFERVV3t7e8PX1hb+/P6ZOnSrud3R0hK+vL7y9vQ2YHREVNywGEhERERGRQagKf4IgwNraGm3atEHZsmXx8uVLnDlzBvHx8WJco0aNDJkqUYF5e3vD09MToaGhiI2NhZ2dHdzd3dkjkIj0jsVAIiIiIjIaDx8+xPz583H16lWULFkSXbp0weTJkyGXy3M9782bN1i2bBmCgoIQFxeHihUron///ujbt6+eMqf8SElJAQCULVsWCoUChw4dEo85ODiIhUFVHFFRJ5PJUKdOHUOnQUTFHIuBRERERGQU4uPjMXjwYFSpUgUrV65EVFQU/Pz8kJaWhtmzZ+d67qRJkxAeHo6vv/4a5cqVQ1BQEObMmQOZTIZevXrp6RVQXqnmAkxPT4dEIlE7lpWVBUEQ1OKIiIio4FgMJCIiIiKjsGfPHiQnJ2PVqlWwtbUFACgUCsydOxejR4+Go6Njtue9evUK58+fx6JFi9C9e3cAgJeXF27evIk//viDxUAj5urqiuPHj+PNmzcax2JjY9XiiIiIqHBwNWEjIpV+XLfj/PnzcHV1xc2bNw2dChERERUBQUFB8PLyEguBAODj4wOlUong4OAcz8vKygIAWFlZqe23tLQUe5aRcSpTpkyhxhEZO4VCgZs3b+Ls2bO4efMmFAqFoVMiomKIPQP1QBAEjWEP75PJZDA3NzfItYmIiIiMQXh4OL788ku1fdbW1rC3t0d4eHiO55UrVw7NmzfHunXrULVqVZQtWxZBQUEIDg7Gzz//rOu0qQBSU1MLNY7ImIWEhMDf3x/R0dHiPgcHBwwfPpyrCRORXrEYqAcSiQRJd/6DIiUhxxhBqYRCoYBMJoOkkHoIyiysYVmzaaG0RURERKRrCQkJsLa21thvY2Mjriqbk5UrV2LKlCno1KkTgLdftM6aNQsdOnTIdz6CIHDhCh3bvXu31nF169bVcTZEunP+/HksW7YMDRo0wIQJE+Dk5IQnT57g0KFD8PPzw5QpU+Dp6WnoNImoiNO2Q5hRFQOPHz+OI0eO4Pbt20hISEDlypUxcOBAfPnll2ovJiAgAJs2bUJkZCSqVq2KKVOmoE2bNmptJSYmYtGiRTh9+jQyMzPRokULzJo1Cw4ODvp+WQAARUoCFEmac6GoCErl2yEuJiaFVgzMrwMHDmDWrFkICgpSG5IRFxeH5s2bY9asWXB1dcX69etx69YtJCUloXLlyhg6dCi6du1quMSJiIioWBIEAdOnT8fjx4+xZMkS2NvbIyQkBAsXLoSNjY1YIMyrzMxMhIWFFXK29K7s5grMKY73gooqpVKJzZs3o0aNGujUqRMUCgUePXoEAOjUqRMSExOxefNmWFpafnRTRxGR/snl8g/GGFUxcOvWrahQoQJ8fX1RqlQphISE4LvvvsPLly8xfvx4AMAff/yB7777DmPGjEHTpk1x7NgxjB8/Hrt27UK9evXEtiZPnowHDx5gzpw5MDMzw/LlyzFy5Ejs378fJiZG9bKNTvv27fH9998jMDAQAwYMEPefPHkSAPDZZ58hODgYDRo0QN++fSGXy3HlyhXMmjULgiCgW7duhkqdiIiIijBra2skJiZq7I+Pj4eNjU2O5/39998IDAzEkSNHxIUmPD09ERMTAz8/v3wXA01NTVG9evV8nUvaqVq1Kq5evQoAMDExEed/fH+7atWqcHNzM0iORAV1+/ZtxMXF4ZtvvoGLi4vG8YEDB+K7774DAP6eE1GBPHjwQKs4o6qKrV27FnZ2duK2l5cX4uLisGXLFowdOxZSqRQrVqxAp06dMHnyZABA06ZNce/ePaxevRobN24EAFy9ehX//vsv/P390bx5cwBvHyA6duyIkydPomPHjnp/bUWJlZUVWrVqhaNHj6oVA48ePYpmzZrB1tZW7aFaEAQ0btwYUVFR2Lt3L4uBRERElC/Ozs4acwMmJibi1atXcHZ2zvG8Bw8eQCaTaXzIdnNzQ0BAAFJTU/M1N7NEIoGFhUWezyPt1apVSywGvlsIfH+7Vq1avBdUZKmmG3B1dc323yLVv10pKSn8PSeiAtF2zQij6oP8biFQxc3NDUlJSUhJScHTp0/x+PFj+Pj4qMV07NgR586dQ0ZGBoC3K9FZW1ujWbNmYoyzszPc3NwQFBSk2xfxkejUqROuXbuGyMhIAEB0dDQuXrwoFgHj4+Mxf/58tGnTBrVq1UKtWrWwd+9esbs7ERERUV61bNkSISEhSEj4v3mWAwMDIZVK1Z7r3lehQgUoFArcvXtXbf/t27dRunRpnSzSRoXj/v37hRpHZIxUn3MjIiKyPf7kyRO1OCIiXTOqYmB2Ll++DEdHR1haWorfFFetWlUtplq1asjMzMTTp08BvF2JrmrVqhoV0ey+babstWnTBubm5vjjjz8AvJ3P0czMDJ988gkAwNfXF0ePHsWwYcPg7++P3377DV9++aVYkCUiIiLKqz59+qBkyZIYN24c/v33X+zfvx8//fQT+vTpA0dHRzFu8ODBaN++vbjdsmVLlC9fHhMnTsThw4dx7tw5LF68GAcPHlQb5UDGJzk5uVDjiIyRu7s7HBwcEBAQAKVSqXZMqVQiICAAjo6OcHd3N1CGRFTcGNUw4fddunQJx44dw7Rp0wBAXEXu/VXmVNuq4wkJCbCystJoz8bGBrdu3SpQTjmtKpeeng7l/18RWKFQqB2TyWQQlEoI7/3Dr9buu//NJS5Puf7/dt7PRxumpqZo164d/vjjDwwbNgx//PEHWrduDTMzM6SkpODvv//GtGnT0K9fP/EchUIBQRDE66n+0KneF2OnUCigVCqRmpoq5p6amqr2XzIOvC/GiffFeBnq3mRmZQIAV2PNgT7ui7YryhkLGxsbbNu2DfPmzcO4ceNQsmRJ9OjRA1OmTFGLe//ZwtLSElu3bsWyZcvw888/IzExERUrVoSvry+LgUbu9evX4s8bN27EzJkzxVWlFyxYgJEjR2rEERU1MpkMw4cPh5+fHxYsWICePXuKqwkHBATg4sWL8PX1hUwmM3SqRFRMGG0x8OXLl+Ly6oMGDTJ0OqLcVpUzMTFBenq62j6pVApzc3MoFAqNeVCyo9AiRmv//yE5IyND4xsobbRv3x6///47/vrrL1y/fh2DBw9GWloaEhMTxfbS0tIAvP229syZM2r7VL0EMzIyxH3GLD09HVlZWdn2Hn38+LH+E6IP4n0xTrwvxkuf98bExASxsTEAgPvK+1r9DSyudH1ftFlRzphUq1YNW7duzTVmx44dGvsqV66M5cuX6yYp0pmkpCTxZ1XhD3j7PPnu9rtxREWRt7c3fH194e/vj6lTp4r7HR0d4evrC29vbwNmR0TFjVEWAxMSEjBy5EjY2tpi5cqV4vLqqlXkEhMTYW9vrxb/7nFra2u8fPlSo90PrUSnjZxWlUtPT0dkZCTMzMxQokQJjeMymQzIZRVjAW8LgTITExTW9/eqb5by+yGgVatWsLW1xQ8//ABra2u0bdsWcrkcJUqUQJ06dbB161Y4ODhAJpNh06ZNsLKyQkxMjPj6VddVnVMUmJiYwMnJCWZmZgDe9tZ4/PgxqlSpwvmGjAjvi3HifTFehro39x8+AwDUqFZDb9csSvRxX7RdUY7IUMzNzbUq9PHvCn0MvL294enpidDQUMTGxsLOzg7u7u7sEUhEemd0xcC0tDSMHj0aiYmJ2Lt3r9pwX9UqcuHh4WoryoWHh8PU1BSVKlUS486dO6cxNObRo0fZLuWeFzmtKieVSiGVSiGTybL9x9zE0hYSac5TNApKJSQKBWQyWa5xeSGzeDt8Or9/XGQyGTp06IC9e/eiR48eag9hS5YswezZszFjxgzY2tpi4MCBSElJwebNm8XrqYq4qvfF2MlkMrEn5/vFS3Nzc67sZYR4X4wT74vx0ve9MTUxBQD+PnyALu9LURoiTMVTmzZtsG/fPq3iiD4GMpkMderUMXQaRFTMGVUxMCsrC5MnT0Z4eDh27dqlNlE0AFSqVAlVqlRBYGCguJAFABw7dgxeXl5iT7SWLVtizZo1OHfunNjd+tGjRwgNDcWIESP094L+P0EQYFmzqd6vq7p2QT4I/PDDD/jhhx809leuXBnbtm3T2D9hwgTxZ09PT41V/YiIiIiIVN68eVOocURERPRhRlUMnDt3Ls6cOQNfX18kJSXh2rVr4jF3d3fI5XJMmDAB3377LZycnODp6Yljx47hxo0b2Llzpxhbv359NG/eHDNmzMC0adNgZmaGZcuWwdXVFZ9++qneX5c2xTiFQoGMjAzI5fJC7UXHHgFEREREZKxu375dqHFERET0YUZVDAwODgYA+Pn5aRz7888/UbFiRXTu3BmpqanYuHEjNmzYgKpVq2LVqlWoX7++Wvzy5cuxaNEizJ49G1lZWWjevDlmzZoFk1zm7TO0/CzyQURERERUVKm+BJfJZGorRKtIpVIolcoiMeUMkTYyMjJw/PhxvHjxAuXKlYOPj0+RW+iJiIo+o6qM/fXXX1rF9ezZEz179sw1xsrKCgsXLsTChQsLIzUiIiIiIipkZcuWxdOnT6FQKGBnZ4fY2Fjx2LvbZcuWNVSKRIVmy5YtOHTokFonkM2bN6Nr164YOnSoATMjouLGqIqBRERERERUfJQuXVr8+d1C4Pvb78YRFUVbtmzBgQMHYGtriwEDBqBJkya4cOECdu7ciQMHDgAAC4JEpDeFs2wtERERERFRHpUvX75Q44iMUUZGBg4dOgRbW1ts2bIFHTp0QKlSpdChQwds2bIFtra2OHz4MDIyMgydKhEVEywGEhERERGRQTg5OQHIedE71X5VHFFRdPz4cSiVSgwYMEBjDnsTExP0798fCoUCx48fN1CGRFTccJgwEREREREZRGhoKABAEATY2NigUqVKEAQBEokET58+RXx8vBjXsGFDQ6ZKlG8vXrwAADRp0iTb440bN1aLIyLSNfYMJCIiIiIig1D1/KtZsybi4+Nx69Yt3L59G7du3UJ8fDxq1qypFkdUFJUrVw4AcOHChWyPX7x4US2OiEjXWAwkIiIiIiKDqF27NgDgzp072Q6fvHPnjlocUVHk4+MDqVSKnTt3IisrS+1YVlYWdu3aBZlMBh8fHwNlSETFDYuBlC1fX1907txZb+106dIFvr6+Bb5edk6fPo1du3bppG0iIiIiyj93d3ex11/JkiUxfvx4bNu2DePHj0fJkiUBvO0V6O7ubsg0iQpELpeja9euiIuLw9ChQxEYGIiYmBgEBgZi6NChiIuLQ5cuXSCXyw2dKhEVE5wz0IhIpazN6sLp06dx69Yt9O/f39CpEBEREdE7wsLCIAgCACA1NRWrVq0Sj6kKI4IgICwsDB4eHgbJkagwDB06FABw6NAhrF69Wtwvk8nQvXt38TgRkT6wGKgHqkmQcyOTyWBubm6QaxMRERERGcKNGzcAAH379sWff/6J6Oho8ZitrS3atm2LPXv24MaNGywGUpE3dOhQ9O/fH8ePH8eLFy9Qrlw5+Pj4sEcgEekdi4F6IJFI8N/Tq0hIT8w5SBCQlaWAiYkMKKTinbWZFZpWql+gNs6fP49Fixbh8ePHqF69OubMmSPO2ZKeno6lS5fijz/+QHx8PJydnTF+/Hi0b98+1zavXLmC+fPn4/79+6hcuTKmTp2abdzJkyexevVqhIeHw8bGBp06dcLXX38NMzMzAMCBAwcwffp0nDt3DnZ2duJ5Xbp0gZubG/z8/ODr64uDBw8CAFxdXQEA3bp1g5+fX4HeFyIiIiIquHe/tFYqlWrH3t3ml9v0sZDL5ejSpYuh0yCiYo7FQD1JSE9EXFpCjscFpRJZWVkwMTGBxEiGC7969Qrz58/HqFGjYGVlhSVLlmD8+PE4deoUTE1N8e233+Kff/7B5MmT4ezsjMOHD2PChAlYvXo12rVrl2Obw4cPh6urK5YvX46EhATMnTsXKSkpcHNzE+P+/PNPTJw4EZ06dcI333yD8PBwLFu2DC9evMCKFSu0fg1jx45FbGwswsPD8fPPPwOAWuGQiIiIiAyndu3a2Lt3L3799VeN3lEJCQnYs2ePGEdERESFg8VAylF8fDx27tyJGjVqAADMzc0xaNAgXL9+HZaWljh58iTmzp2LPn36AABatmyJ58+f51oM3LZtGyQSCTZu3AgrKysAQNmyZTFkyBC1uFWrVqFevXpYsmSJ2La5uTlmz56Nu3fvir38PsTJyQl2dnaIjIxEvXr18vEuEBEREZGuvLswSGZmptqxd7e5gAgREVHhMY4uaGSUHBwcxEIgAFSvXh0AEBUVhcuXLwMAPvvsM7VzfHx8EBoaipSUlGzbvH79Ojw9PcVCIAB4eXnB1tZW3E5OTkZYWBg6dOigdm7Hjh0BQLw2ERERERVtYWFh4s+qhUSy2343joiIiAqGxUDKkbW1tdq2qakpgLdzBcbHx8PU1FStiAcAZcqUgSAISEzMfn7EV69eoXTp0hr73x26m5iYCEEQNOKsrKwgl8sRHx+fn5dDREREREbm+vXrAIDy5cvD3t5e7ZiDgwPKly+vFkdEREQFx2HClC82NjbIzMxEfHw8bGxsxP2vX7+GRCJR6/n3Lnt7e8TExGjsj42NFX+2srKCRCJR2we8LRJmZGSI11MtJPL+kJKEhJznZiQiIqLCk5SUhN27d+P8+fOIiYnBDz/8gLp16yIuLg4HDx5E27ZtUblyZUOnSUbs9evXAIDOnTujY8eOCA0NRWxsLOzs7ODu7o4//vgDGzduFOOIiIio4NgzkPKlYcOGAIDAwEC1/YGBgXB3d4eFhUW259WtWxfnz59X6zl47tw5xMXFidslS5aEm5ubRtvHjx9Xu7ajoyMAIDw8XIx5+PAhXrx4oXaeqakp0tPT8/LyiIiI6ANevnyJrl27YsWKFXj58iXu3r2L5ORkAICtrS327NmDHTt2GDhLMnZlypQBAJw9exaZmZkIDw9HWFgYwsPDkZmZiaCgILU4IiIiKjj2DKR8qVmzJj799FP4+fkhLS0NVatWxZEjR3D16lWsWbMmx/MGDx6M3bt3Y+TIkRg5ciQSEhKwcuVKjeHG48ePx7hx4/Dtt9/iiy++wKNHj7Bs2TJ06NBBXDzEw8MD5cqVw8KFC/HNN98gKSkJGzZs0GirWrVq2L9/P44ePYrKlSujVKlSqFixYmG/JURERMXKTz/9hOTkZBw6dAh2dnbw9vZWO/7JJ5/g77//NkxyVGR4eHggICAAd+/eRc+ePdWObdq0SS2OiIiICgeLgXpibZb9sFmRICArSwETExkgkejnmgW0ePFiLF26FBs3bkRcXBycnZ2xYsUKtG3bNsdzHBwcsHHjRsyfPx+TJk2Ck5MTZs+ejWXLlqnFtWvXDr/88gtWr16NsWPHwtbWFr169cI333wjxpiammLVqlWYM2eO2NaMGTPg5+en1laPHj1w48YNzJs3D3FxcejWrZtGDBEREeVNcHAwBg8ejOrVq+PNmzcaxytVqqTRW5/ofbVr14ZcLkdGRkaOMXK5HLVr19ZjVkRERB83FgP1QBAENK1U32DXluSjuJhdscza2hp3794Vt0uUKIEZM2ZgxowZeWqnUaNGOHTokNq+1q1ba8R16NBBY0Xh99WuXRu//fab2r7Dhw+rbVtaWmLp0qW5tkNERER5k5aWprYA2PtUQ4aJcqNQKDTmf35fVlYWFAoFZDKZnrIiIiL6uHHOQD3QphinUCiQmpoKhUKh92sTERER5VW1atVw8eLFHI+fPn0a7u7uesyIiqLjx49DEIRcY5RKpTh3NBERERUcewYaEaVSaegUiIiIiLQyePBg+Pr6wtXVFT4+PgDejkiIiIjAqlWrcO3aNaxcudLAWZKxe/bsmfhzgwYNUKFCBWRkZEAul+P58+e4cuWKRhxRUaZQKDRWzWavVyLSNxYDiYiIiCjPunTpgsjISPzyyy9Yvnw5AGDEiBEQBAFSqRRTpkzBJ598YtgkyejFxsYCeDuty7Nnz8TiH/B2rmlLS0skJSWJcURFWUhICPz9/REdHS3uc3BwwPDhwzUWYSIi0iUWA4mIiIgoX7766it06dIFJ0+eREREBJRKJZycnPDpp5+iUqVKhk6PipCkpCS4uLigadOmSE9Ph5mZmUZxkKgoCwkJgZ+fHxo3boypU6eicuXKiIiIQEBAAPz8/ODr68uCIBHpDYuBRERERJQnqamp6N+/P3r27Im+fftiyJAhhk6JiigLCwvx5ytXruRY/Hs3jqioUSgU8Pf3R+PGjTFz5kxIpW+n7q9ZsyZmzpyJBQsWYPPmzfD09OSQYSLSCy4gUsg+NAEyGS/eOyIiIu2Ym5vj2bNnXKiMCqxKlSqFGkdkjEJDQxEdHY2ePXuKhUAVqVSKnj17IioqCqGhoQbKkIiKGxYDC4mpqSkAICUlxcCZUH6p7p3qXhIREVHOWrRogX///dfQaVARZ21tXahxRMZINedl5cqVsz3u5OSkFkdEpGscJlxIZDIZbG1txclgLSws8vRtuUKhQHp6utgW6Y8gCEhJSUF0dDRsbW35/hMREWlh7NixmDRpEqZOnYrevXujUqVKMDMz04iztbXVf3JUZDx48EDruPbt2+s4GyLdsLOzAwBERESgZs2aGsefPHmiFkdEpGssBhaismXLAoDa6lDaUiqVyMrKgomJiUbXcdIPW1tb8R4SERFR7jp16gTgbZHm6NGjOcaFhYXpKyUqgpRKZaHGERkjd3d3ODg4ICAgAL6+vrhz5w5iY2NhZ2eHmjVrIiAgAI6OjnB3dzd0qkRUTLAYWIgkEgnKlSsHBwcHZGZm5unc1NRUhIeHw8nJCebm5jrKkHJiamrKHoFERER5MG7cOM4ZSAUWExNTqHFExkgmk2H48OFYtGgR+vTpg4yMDPGYXC5HRkYGpk+fzs8jRKQ3LAbqgEwmy/M/5KpvO83MzFCiRAldpEVERERUaCZMmGDoFOgjkJiYWKhxREUNv1QhIkNgMZCIiIiICiwtLQ0A+KUm5Ym2o2nyOuqGyJgoFAr4+/ujSZMmmDp1Kk6cOIEXL16gXLly6NChAxYvXozNmzfD09OTvQOJSC9YDCQiIiKifImMjMTKlStx9uxZvHnzBgBQqlQptGrVCuPHj0eFChUMnCEZu2fPnhVqHJExCg0NRXR0ND777DOMGzdObY75I0eO4LPPPsOFCxcQGhqKOnXqGDBTIiouWAwkIiIiojx7+PAh+vXrh8TERHh7e6NatWoAgPDwcBw+fBhnzpzB7t274ezsbOBMyZgpFIpCjSMyRrGxsQCAHTt2oHHjxpg6dSoqV66MiIgIBAQEYMeOHWpxRES6xmIgEREREeXZkiVLIJVKcfDgQbi6uqodu3fvHoYMGYIlS5Zg9erVBsqQigKZTIasrCyt4oiKKltbWwCAm5ubuJrwhQsXYGdnB19fX8yaNQuhoaFiHBGRrrEYSERERER5dvHiRQwdOlSjEAgALi4u6N+/P7Zu3Zrndh8+fIj58+fj6tWrKFmyJLp06YLJkydDLpd/8NyoqCgsXboUZ8+eRUpKCipUqICvvvoKX3zxRZ7zIP2oUKECwsPDtYojKqoEQQAAJCQkYPTo0Xj16pV4zN7eXvz3TRVHRKRrLAYSERERUZ5lZWXluliIubm5Vj2+3hUfH4/BgwejSpUqWLlyJaKiouDn54e0tDTMnj0713Ojo6PRu3dvVK1aFfPmzYOlpSXu37+PjIyMPOVA+pWenl6ocUTGKD4+HsDbuS9tbW0xbtw4NGnSBBcuXMCuXbvE4qAqjohI11gMJCIiIqI8c3NzQ0BAAHr27AkrKyu1Y0lJSfjtt9/g7u6epzb37NmD5ORkrFq1Shwup1AoMHfuXIwePRqOjo45nrt48WKULVsWmzZtEoeUenl55e1Fkd6lpKQUahyRMbKxsQEAVKxYERkZGVi9erU4hYKjoyMqVKiA58+fi3FERLomNXQCRERERFT0TJgwAU+fPoWPjw+WLl2KAwcO4MCBA1iyZAk+++wzPHnyBBMmTMhTm0FBQfDy8lKbN8vHxwdKpRLBwcE5npeUlITjx4+jX79+nFuuiElNTVXblslkkEgkGvfx/TiiokQikQAArK2tsXr1aowYMQKdOnXCiBEjsGrVKrEIqIojItK1AvUMHDFiBLp06YL27dvnOkyEiIiIiD4uXl5e2LBhA3766Sds2LBB7ZibmxsWL16Mpk2b5qnN8PBwfPnll2r7rK2tYW9vn+u8crdv30ZmZiZMTEwwYMAAXL16Fba2tujatSsmT54MU1PTPOVB+vN+8UO1avD7qwezSEJFWVxcHAAgNDQU/fv3V5u+YPv27eK2Ko6ISNcKVAx8+vQppk6dCgsLC7Rv3x5dunSBl5cX/1gTERERFQPe3t44dOgQXr16hcjISABA+fLlYW9vn6/2EhISYG1trbHfxsYm17m0Xr9+DQCYNWsWevXqhfHjx+PGjRtYsWIFpFIpvvnmm3zlIwgCh6fqmKWlpVa9/iwtLXkvqMiysLDQOo6/50RUEIIgaFWTK1Ax8MSJE7hx4waOHDmCwMBAHDlyBGXKlEHnzp3xxRdfwM3NrSDNExEREVERYG9vn+8CYGFQKpUA3hYnfX19AQBNmzZFcnIyNm/ejHHjxuVrFEtmZibCwsIKNVdSZ2trq7ayam5xvBdUVCmVSkilUpibm2PixIm4cuUK3rx5g1KlSqFBgwZYsWIFUlNToVQq+XtORAWmWqE8NwVeQKRu3bqoW7cuZsyYgeDgYBw5cgR79+7F1q1bUa1aNXTp0gWff/45ypYtW9BLEREREZGR2L59O86ePQt/f/9sj48YMQJt27ZFv379tG7T2toaiYmJGvvj4+NznVhf1Zvw/WHJXl5eWLduHSIiIuDq6qp1HiqmpqaoXr16ns8j7Tk5OeH+/ftaxbGjARVVt2/fhlKpRHJyMpYsWaI2TPjMmTPitlQq5e85ERXIgwcPtIortNWEpVIpWrRogRYtWiAhIQGzZ89GYGAglixZgmXLlqFJkyYYMmQIWrdunWMbERER8Pf3x/Xr13H//n04Ozvj6NGjajEDBw7EhQsXNM49duwYqlWrJm4nJiZi0aJFOH36NDIzM9GiRQvMmjULDg4OhfWSiYiIiIqt3377Ldc5AatXr459+/blqRjo7OysMTdgYmIiXr16BWdn51yvlZv09HStc3iXRCLRengf5Y+2q6fa2NjwXlCRlZdVs/l7TkQFoe20fYVWDASAS5cu4ciRIzhx4gTi4+NRo0YNdO3aFSYmJti/fz+++uorjBkzBpMmTcr2/Pv37+Ps2bPw8PCAUqmEIAjZxjVo0ADTpk1T21exYkW17cmTJ+PBgweYM2cOzMzMsHz5cowcORL79++HiUmhvmwiIiKiYufp06fo379/jsednZ2xb9++PLXZsmVLrFu3Tm3uwMDAQEilUjRr1izH8ypUqAAXFxeEhIRgwIAB4v6QkBCUKFGCvfuMWGxsbKHGERkj1Qrp7u7umD9/Pu7cuYPY2FjY2dmhZs2amDVrFkJDQ9VWUici0qUCV8UePHiAI0eO4OjRo3jx4gVKly6Nbt26oUuXLmpdnAcPHozvvvsOu3fvzrEY2LZtW3zyyScAAF9fX9y6dSvbOGtra9SrVy/HnK5evYp///0X/v7+aN68OQCgatWq6NixI06ePImOHTvm89USEREREfB2CG1uc71FR0dDKpXmqc0+ffpgx44dGDduHEaPHo2oqCj89NNP6NOnDxwdHcW4wYMHIzIyEqdOnRL3TZkyBWPHjsWCBQvQunVr3Lx5E5s3b8bw4cPZ08aI5fTlf37jiIzRu7+/MpkMderUEbff7QTD33Mi0pcCFQO7dOmCe/fuQS6Xo127dvj+++/RokWLHB/8PD09ERAQkGN7eX1gzElQUBCsra3VvkF2dnaGm5sbgoKCWAwkIiIiKiAPDw8cPHgQQ4YMgaWlpdqxxMREHDhwAB4eHnlq08bGBtu2bcO8efMwbtw4lCxZEj169MCUKVPU4pRKJRQKhdq+tm3bYunSpVizZg1+/fVXODg4YMKECRg1alT+XiDpxbsLz0ilUnExmPe3DblADVFBqVZDDw0NxYIFC9CzZ084OTnhyZMnCAgIEBcNyW3VdCKiwlSgYqC1tTV++OEH+Pj4aDwEZqddu3b4888/C3JJAMCFCxdQr149KBQKeHh4YNKkSWjcuLF4PDw8HFWrVtUYK53dPDRERERElHfjx4/HgAED0LVrVwwePFgcinv//n1s27YNr169wpIlS/LcbrVq1bB169ZcY3bs2JHt/o4dO/JL3yJGNRwcgFoh8P3td+OIiho7OzsAwKBBgxAYGIipU6eKxxwdHTFw4EDs2LFDjCMi0rUCFQN//PFH2NnZoUSJEtkeT0tLQ2xsLMqXLw8AMDc3R4UKFQpySTRu3BhdunRBlSpVEB0dDX9/fwwdOhQ7duxA/fr1AQAJCQmwsrLSONfGxibHocfaEgRB6wlg8yI1NVXtv2QceF+ME++LceJ9MV6GujeZWZkAtJ84vbjRx30RBEHriaTzysPDA+vWrcPs2bOxYMEC8TqCIKBixYpYu3at+GxGlBNti3wsBlJR5u7uDgcHB9y5cwfr1q3TmDPQz88Pjo6OcHd3N3SqRFRMFKgY2K5dO/z000/4/PPPsz3+119/4ZtvvhG7PReGiRMnqm23bt0anTt3xpo1a7Bx48ZCu05OMjMzC/X1vO/x48c6a5vyj/fFOPG+GCfeF+Olz3tjYmKC2NgYAMB95X1kZWXp7dpFja7vi1wu11nbzZo1w6lTpxAaGoonT54AAJycnFCrVi2dFSHp48IFRKg4kMlkGD58OPz8/ODn54eePXuicePGePLkCfz8/HDx4kX4+vpCJpMZOlUiKiYKVAz80ASnmZmZhTYPYE4sLCzQqlUrnDhxQtxnbW2Nly9fasTGx8fDxsamQNczNTXVyYp0qampePz4MapUqQJzc/NCb5/yh/fFOPG+GCfeF+NlqHtz/+EzAECNajX0ds2iRB/35cGDBzpp911SqRS1a9dG7dq1dX4t+vhcu3ZN67iePXvqNhkiHfL29oavry/8/f01hgn7+vrC29vbgNkRUXGT52JgUlISEhISxO24uDhERkZqxCUkJODYsWMGmezX2dkZ586d0xga8+jRI7i4uBSobYlEotMV6czNzbninRHifTFOvC/GiffFeOn73piamAIAfx8+QJf3RZe988LCwvDw4UN07txZ3PfPP/9g3bp1yMjIQOfOnTF48GCdXZ8+DrmtSJ2fOCJj5u3tDU9PT4SGhorDhN3d3dkjkIj0Ls/FwK1bt2L16tUA3j5gLly4EAsXLsw2VhAETJ48uUAJfkhKSgr+/vtvteXZW7ZsiTVr1uDcuXPiNyyPHj1CaGgoRowYodN8iIiIiIqDxYsXo0SJEmIx8OnTpxg/fjxsbW3h4OAAPz8/lChRAr179zZwpmTM3l80pKBxRMZOJpOpfXYlIjKEPBcDmzVrBgsLCwiCgMWLF6NTp06oVauWWoxEIoG5uTlq1aqVp3/oUlNTcfbsWQDA8+fPkZSUhMDAQABAkyZNEB4ejk2bNqF9+/aoUKECoqOjsWXLFrx69Qq//PKL2E79+vXRvHlzzJgxA9OmTYOZmRmWLVsGV1dXfPrpp3l9yURERET0njt37mD48OHi9uHDhyGVSnHw4EHY2dlh8uTJ2LNnD4uBlCsWA4mIiPQvz8XA+vXriyvDpaamon379nB1dS2UZGJiYjBp0iS1fart7du3o2zZssjMzMSyZcsQFxcHc3Nz1K9fH3PnzkXdunXVzlu+fDkWLVqE2bNnIysrC82bN8esWbNgYlKgaRKJiIiICEBiYiJsbW3F7bNnz6JZs2aws7MD8PYL5KCgIANlR0WFQqEo1DgiIiL6sAJVxsaPH19YeQAAKlasiLt37+Ya4+/vr1VbVlZWuQ5hJiIiIqL8s7e3x8OHDwEA0dHRuH37Nrp37y4eT05O1vlCclT0WVtba7VSsLW1tR6yISIiKh7yVAxctWoVJBIJvvrqK0ilUqxateqD50gkEowbNy7fCRIRERGR8WnXrh127tyJjIwMXL9+HXK5HO3btxeP3717F5UqVTJghlQUlCxZslDjiIiI6MPyVQwcOXIk5HI5i4FERERExdTkyZMRGxuLw4cPw8rKCosWLUKZMmUAQJz3uX///gbOkoxdQkJCocYRERHRh+WpGHjnzp1ct4mIiIioeChZsiSWLFmS7TELCwsEBQWhRIkS4j6lUomXL1+iTJkykMvl+kqTjFx6enqhxhEZO4VCgdDQUMTGxsLOzg7u7u6QyWSGTouIihmupkFEREREhUoqlcLKykptX2xsLNq1a4fNmzfDy8vLQJmRseFqwlSchISEYNOmTXj16pW4z97eHiNGjIC3t7cBMyOi4qbQZ3VOTU3Fb7/9ht27d+P58+eF3TwRERERFVGCIBg6BTIyGRkZhRpHZKxCQkKwaNEixMXFqe2Pi4vDokWLEBISYpjEiKhYKlDPwBkzZuDGjRs4evQogLd/pHv16oX79+8DeLui77Zt2+Du7l7wTImIiIiI6KNiYqLdxxFt44iMkUKhwOrVqwG8nVP/XartNWvWwNPTk0OGiUgvCtQz8Pz582qrxh09ehT379/Hzz//jKNHj6JMmTJaLTJCRERERETFj42NTaHGERmjW7duiYvgeHh4YPHixdi3bx8WL14MDw8PAEB8fDxu3bplyDSJqBgpUDHw9evXqFChgrh9+vRp1K5dG507d0b16tXRq1cv3Lhxo8BJEhERERHRx6dixYqFGkdkjK5duwYAqFmzJmbNmoWaNWvC3Nxc3HZ1dVWLIyLStQIVA83NzZGYmAgAyMrKwoULF9C8eXPxeMmSJcXjRERERERERMVNTEwMAKBVq1aQStU/gkulUrRs2VItjohI1wpUDKxVqxb27duH0NBQrFu3DsnJyWjbtq14/MmTJyhdunSBkyQiIiIioo9PfHx8ocYRGaMyZcoAAM6ePauxMrZSqcTZs2fV4oiIdK1AM/FOnjwZI0aMwJdffglBENChQwfUrVtXPH7q1Ck0aNCgwEkSEREREdHHh6sJU3FQt25dBAQE4M6dO5g7dy7S0tKQmJgIKysrlChRAvfu3RPjiIj0oUDFwDp16uD48eO4cuUKrK2t0aRJE/FYQkIC+vXrp7aPiIiIiIonCwsLjB8/HpUqVTJ0KmRE5HJ5ocYRGaM6derAxsYG8fHxuHLlSrYxtra2qFOnjp4zI6LiqkDFQACws7PDJ598orHf2toagwcPLmjzRERERGQEIiMj83Ve+fLlAfxfMZDoXQqFolDjiIyRTCaDhYVFrsPdzc3NIZPJ9JgVERVnBS4GAkBSUhIiIyORkJAAQRA0jjdu3LgwLkNEREREBtK2bVtIJJI8nxcWFqaDbOhjERUVVahxRMYoOTkZL168APC2l+u7w95V2y9evEBycjJKlixpqDSJqBgpUDHwzZs3mDdvHk6ePJntt3WCIEAikfAhkIiIiKiIW7hwoVoxUKlUYvv27YiMjMTnn3+OqlWrAgDCw8Nx9OhRVKhQAQMHDjRUulREpKSkFGockTFaunQpAMDKygpyuVxt1WArKytkZGQgMTERS5cuxXfffWeoNImoGClQMfC7777DmTNnMHDgQDRq1AjW1taFlRcRERERGZHu3burba9duxbp6ek4efIkSpUqpXZswoQJ6Nu3L16/fq3PFKkIksvlWhX6OGcgFWUREREAgMTERI3f5cTERLGnoCqOiEjXClQMDA4OxuDBg/G///2vsPIhIiIioiJgz549GDJkiEYhEHg7p3SvXr2wY8cOjB492gDZUVGRmZlZqHFExsjS0lIc6u7h4YFevXqhcuXKiIiIwL59+3Dx4kUxjohIH6QFOblEiRKoUKFCYeVCREREREVEXFwcUlNTczyempqKuLg4/SVERVJycnKhxhEZo6ZNm4o/f/3118jMzMSFCxeQmZmJr7/+Ots4IiJdKlDPwC+++AKnT59G//79CysfIiIiIioCPDw8sG3bNrRs2RK1a9dWO3bz5k3s2LEDdevWNVB2RETG490FQ/r27atVHBGRLhWoGNihQwdcvHgRw4cPR+/evVG2bNlsl0OvVatWQS5DREREREZm9uzZGDhwIHr27AkPDw9UqVIFAPD48WNcv34dNjY2nAifiAiAVKrdgDxt44iICqpAxcB+/fqJP4eEhGgc52rCRERERB+n6tWr4/fff8eGDRsQFBSEY8eOAQDKly+PQYMGYcSIEbC3tzdwlkREhufu7g4AkMlkUCgUGsdV+1VxRES6VqBi4KJFiworDyIiIiIqYsqUKYMZM2ZgxowZhk6FiMhoqXr8KRQKmJiYoFmzZqhevToePHiA4OBgZGVlqcUREelagYqB3bp1K6w8iIiIiIiIiD46MTEx4s8SiQRnz57F2bNnAQCmpqbZxhER6VKBioHvio6ORmxsLJycnGBhYVFYzRIRERGRkUpPT8eJEycQGhqKxMREKJVKteMSiQQLFy40UHZERMbh3r17AN6uFvzw4UO8evVKPFaqVCk4Ozvjv//+w71799CuXTtDpUlExUiBi4GnT5/Gzz//jIiICADA5s2b4eXlhdjYWAwbNgzjxo1D+/btC5woERERERmP58+fY9CgQXj+/Dmsra2RmJgIGxsbJCYmQqFQoFSpUvyCmIjoHaGhoUhISFDbFx0djbS0NANlRETFVYEmJfjrr78wYcIElCpVCuPGjYMgCOIxOzs7ODo64sCBAwVOkoiIiIiMy08//YSkpCTs27cPgYGBEAQBy5Ytw9WrV/Htt9+iRIkS8Pf3N3SaREQGV758eQBAQkICJBIJ2rRpgxUrVqBNmzaQSCRigVAVR0SkawUqBq5evRqNGjXCr7/+iv79+2scr1evHlcSJiIiIvoI/ffff+jbty/q1q2rNum9XC7HiBEj0LRpUw4RJiIC0LZtW/FnOzs7nDlzBhMnTsSZM2dQunTpbOOIiHSpQMXA+/fvw8fHJ8fjZcqU4SSoRERERB+htLQ0VKhQAQBgaWkJiUSCxMRE8Xj9+vVx+fJlQ6VHRGQ0du7cKf4cGxurduzdz8vvxhER6VKBioHm5uZITU3N8fjTp09ha2tbkEsQERERkREqV64coqKiAAAmJiZwdHTEtWvXxOMPHjyAmZmZgbIjIjIekZGR4s/vTq31/va7cUREulSgBUQ8PT1x6NAhDB48WOPYq1evsG/fPrRp06YglyAiIiIiI9S0aVP8+eefGD9+PACgW7du2LBhAxISEqBUKnHkyBF06dLFwFkSERleuXLlcO3aNZQrVw4rVqzAiRMn8OLFC5QrVw4dOnTAxIkTxW0iIn0oUDFw8uTJ6N27N3r06IHPPvsMEokE//77L/777z/s3bsXgiBg3LhxhZUrERERERmJUaNG4ebNm8jIyIBcLseYMWMQHR2NEydOQCqVonPnzpg+fbqh0yQiMrgmTZrg+PHj4srBN2/exMuXL/H69Wu0atUK0dHRYhwRkT4UqBjo7OyM3bt3Y8GCBfjll18gCIK4alyTJk3w/fffo2LFioWSKBEREREZj/Lly6utfGlmZoYFCxZgwYIFBsyKiMj4JCcnAwAUCgUGDhwo7o+IiMD58+c14oiIdK1AxUAAqFGjBrZu3Yr4+HhERERAEARUqlQJdnZ2hZEfERERERUBiYmJsLCwgEwmK1A7Dx8+xPz583H16lWULFkSXbp0weTJkyGXy7VuY+vWrVi0aBFat26N9evXFygfIqKC0vazMT9DE5G+5LsYmJGRgcOHDyM4OBhPnjxBcnIySpYsicqVK6NFixbo3Llznh7aiIiIiKhouXnzJpYvX45Lly4hMzMT/v7+8PLyQmxsLGbOnIkhQ4bA09NT6/bi4+MxePBgVKlSBStXrkRUVBT8/PyQlpaG2bNna9XGq1evsHr1apQuXTq/L4uIqFBVqVJF/NnW1hZxcXHZbr8bR0SkS/kqBt69exdjx45FZGQkBEGAlZUVLCwsEBsbi9DQUAQGBmLdunVYu3YtqlWrVtg5ExEREZGBXblyBYMHD4ajoyO++OILBAQEiMfs7OyQlJSEvXv35qkYuGfPHiQnJ2PVqlWwtbUF8HZY3dy5czF69Gg4Ojp+sI3Fixejbdu2XJWTiIzGL7/8orbdtWtXlC1bFi9fvsTff/+tFjdr1iw9Z0dExZE0ryckJyfjq6++QkxMDKZMmYKzZ8/i4sWLav+dPHkyoqOjMWbMGKSkpOgibyIiIiIyoGXLlqFatWo4duwYpkyZonHc09MT169fz1ObQUFB8PLyEguBAODj4wOlUong4OAPnn/p0iWcPn0a33zzTZ6uS0SkSy9fvgQAlC5dGgkJCTh06BDWrVuHQ4cOISEhQRwerIojItK1PBcDDxw4gBcvXmD9+vUYNWqUxje0jo6OGD16NNauXYtnz57h4MGDhZYsERERERmHmzdvonv37pDL5ZBIJBrHHR0d8fr16zy1GR4eDmdnZ7V91tbWsLe3R3h4eK7nKhQKzJs3D2PGjIGDg0OerktEpEsWFhYAgJiYGI15VWUyGWJjY9XiiIh0Lc/DhP/++280a9bsg0M+vLy84O3tjb/++gv9+/fPd4JEREREZHxMTEygVCpzPB4VFZXnD7YJCQmwtrbW2G9jY4P4+Phcz929ezdSU1MxZMiQPF0zN4IgcJSLEeG9oKKqefPmCAsLAwC4u7ujR48ecHJywpMnT/Dbb7+JvaibN2/O33MiKhBBELL9kvZ9eS4G3rt3T2059Nw0bdoU27dvz+sliIiIiMjIeXh44MSJE9kW31JSUnDgwAE0btxYL7nExMRgxYoV+PHHHwt1AbvMzEzxAzwZHu8FFVURERHiz9evX0dUVBTs7OwQGxurNjQ4IiKCv+dEVGDaPAvluRgYHx8Pe3t7rWLLlCnzwW9xiYiIiKjomThxIgYMGIBRo0ahU6dOAN4uMvfs2TP4+/sjNjYWY8eOzVOb1tbWSExM1NgfHx8PGxubHM/75Zdf4OrqikaNGiEhIQEAkJWVhaysLCQkJMDCwgImJnlfN8/U1BTVq1fP83mkG25uboZOgShfrl27BgCQSqVQKpV4+fKlWhFQtd/CwoK/50RUIA8ePNAqLs9PRRkZGVo/TMlkMmRmZub1EkRERERk5Dw8PLBhwwbMmTMH06ZNAwD4+fkBAJycnLBhwwbUrFkzT206OztrzA2YmJiIV69eacwl+K5Hjx7h4sWL2fZEbNy4MTZu3IiWLVvmKRcAkEgknMPLiPBeUFFlZmYGAFAqlZDJZHBwcIBEIoEgCIiOjoZCoRDj+HtORAWhzRBhIB/FQAB4/vw5bt++/cG4Z8+e5andiIgI+Pv74/r167h//z6cnZ1x9OhRjbiAgABs2rQJkZGRqFq1KqZMmYI2bdqoxSQmJmLRokU4ffo0MjMz0aJFC8yaNYsTShMREREVkCAISE5ORoMGDXDixAmEhYXh8ePHEAQBlSpVQu3atbV+GH1Xy5YtsW7dOrW5AwMDAyGVStGsWbMcz5sxY4bYI1Bl4cKFKFGiBL7++mu4urrmORciosKi+mJEKpWiVKlSePHihXjM3t4eMTExUCqVef4ChYgov/JVDPzll1/wyy+/fDBO24kLVe7fv4+zZ8/Cw8MDSqUSgiBoxPzxxx/47rvvMGbMGDRt2hTHjh3D+PHjsWvXLtSrV0+Mmzx5Mh48eIA5c+bAzMwMy5cvx8iRI7F///58DRMhIiIiorcyMzPRpEkTTJkyBSNHjoSbm1uhDG3r06cPduzYgXHjxmH06NGIiorCTz/9hD59+sDR0VGMGzx4MCIjI3Hq1CkA2Q8ftba2hoWFxQcXvSMi0rWnT58CeNszsEqVKujRowfkcjkyMjJw6dIlvHr1Soxr1KiRIVMlomIiz1WxRYsW6SIPAEDbtm3xySefAAB8fX1x69YtjZgVK1agU6dOmDx5MoC3i5Tcu3cPq1evxsaNGwEAV69exb///gt/f380b94cAFC1alV07NgRJ0+eRMeOHXX2GoiIiIg+dnK5HGXKlCnUxTqAt6sGb9u2DfPmzcO4ceNQsmRJ9OjRA1OmTFGLUyqV4rA6IiJjFxUVJf58/fp1XLp0Sdw2NTXNNo6ISJfyXAzs1q2bLvIA8LbbdG6ePn2Kx48fY+rUqWr7O3bsiJ9++gkZGRmQy+UICgqCtbW12nASZ2dnuLm5ISgoiMVAIiIiogLq1q0bDh8+jL59+xZqUbBatWrYunVrrjE7duz4YDvaxBAR6UO5cuUAAPXr18f169fVjikUCtSrVw/Xrl0T44iIdK1IjZdVTShdtWpVtf3VqlVDZmYmnj59imrVqiE8PBxVq1bVGKKc3aTURERERJR3rq6u+PPPP9G5c2d069YNFSpUQIkSJTTiPv30UwNkR0RkPHx8fODv74+rV6+Kw4NVTExMcO3aNUilUvj4+BgwSyIqTopUMTA+Ph4AxAmlVVTbquMJCQmwsrLSON/Gxibbocd5IQgCUlJSCtRGdlJTU9X+S8aB98U48b4YJ94X42Woe5OZlQkAOvm7+THQx33J6/zNefH111+LP+c0l7REIkFYWJhOrk9EVFTIZDLI5XKkp6erFQIBiNumpqaQyWSGSI+IiqEiVQw0BpmZmTp9qH38+LHO2qb8430xTrwvxon3xXjp896YmJggNjYGAHBfeR9ZWVl6u3ZRo+v7Utjz+qls375dJ+0SEX1sbt68ifT09Fxj0tPTcfPmTbVFMYmIdKVIFQNtbGwAAImJibC3txf3JyQkqB23trbGy5cvNc6Pj48XY/LL1NQU1atXL1Ab2UlNTcXjx49RpUoVmJubF3r7lD+8L8aJ98U48b4YL0Pdm/sPnwEAalSrobdrFiX6uC8PHjzQSbsA0KRJE521TUT0Mblx44b4c8OGDVG+fHlxvvvIyEhcvnxZjGMxkIj0oUgVA52dnQG8nTtQ9bNq29TUFJUqVRLjzp07pzE05tGjR3BxcSlQDhKJBBYWFgVqIzfm5uY6bZ/yh/fFOPG+GCfeF+Ol73tjavJ2hUT+PuROl/dFV0OE36VQKHD79m08e/a2+FuxYkXUqlWLw92IiP6/6OhoAICTkxNmz56ttnCmUqnEhAkT8OTJEzGOiEjXilQxsFKlSqhSpQoCAwPxySefiPuPHTsGLy8vcRhMy5YtsWbNGpw7dw7e3t4A3hYCQ0NDMWLECIPkTkRERPSxOXDgAJYuXYqYmBgIggDgbQHSzs4OU6ZMQY8ePQycIRGR4Wn7xYw+vsAhIgKMrBiYmpqKs2fPAgCeP3+OpKQkBAYGAng7FMXOzg4TJkzAt99+CycnJ3h6euLYsWO4ceMGdu7cKbZTv359NG/eHDNmzMC0adNgZmaGZcuWwdXVlSvaERERERWCPXv2YM6cOXBzc8P48eNRpUoVAG+/gN27dy++++47ZGZmom/fvoZNlIjIwFRTXD158gTz5s1Do0aNxFWFL126hCdPnqjFERHpmlEVA2NiYjBp0iS1fart7du3w9PTE507d0Zqaio2btyIDRs2oGrVqli1ahXq16+vdt7y5cuxaNEizJ49G1lZWWjevDlmzZoFExOjeslERERERdLGjRvRqFEjbNmyBaampuL+pk2bokePHhg8eDA2bdrEYiARFXseHh4ICAgAAFy6dAmXLl3KMY6ISB+MqjJWsWJF3L1794NxPXv2RM+ePXONsbKywsKFC7Fw4cLCSo+IiIiI/r/Xr19j2LBhaoVAFVNTU3Tq1AmLFy82QGZERMaldu3asLCwQEpKSo4xFhYWqF27th6zIqLiTPrhECIiIiIidW5ubnj06FGOxx89eoSaNWvqMSMiIuOVlZVVoONERIWJxUAiIiIiyrPvvvsOgYGB2LZtG9LS0sT9aWlp2Lp1KwIDAzF79mwDZkhEZBxu3LiBjIyMbHtSA297U2dkZODGjRt6zoyIiiujGiZMREREREWDr68vpFIp/Pz8sHjxYjg4OAAAoqOjoVAo4ODggGnTpqmdI5FIcOTIEUOkS0RkMH/99RcAIDMzU1w4ROXd7b/++ktjLnwiIl1gMZCIiIiI8szW1ha2traoXLmy2v4KFSoYKCMiIuOUmppaqHFERAXFYiARERER5dmOHTsMnQIRUZFQqlQp8ec6deqgcePGYo/Aixcv4vLlyxpxRES6xGIgEREREeVZWFgYHj58iM6dO4v7/vnnH6xbtw4ZGRno3LkzBg8ebMAMiYiMg4WFhfjzzZs3xeIf8HaYcHZxRES6xAVEiIiIiCjPFi9ejGPHjonbT58+xfjx4/Hs2TMAgJ+fH/bu3Wuo9IiIjMabN2/En9+dL/D97XfjiIh0icVAIiIiIsqzO3fuoGHDhuL24cOHIZVKcfDgQQQEBKBDhw7Ys2ePATMkIjIOdnZ2AACpNPuP36r9qjgiIl1jMZCIiIiI8iwxMRG2trbi9tmzZ9GsWTPxw2yzZs0QERFhoOyIiIyHjY0NAECpVGZ7XLVfFUdEpGssBhIRERFRntnb2+Phw4cAgOjoaNy+fRvNmjUTjycnJ+fYC4aIqDixtLQs1DgiooLiAiJERERElGft2rXDzp07kZGRgevXr0Mul6N9+/bi8bt376JSpUoGzJCIyDjcu3dP67h3/x0lItIVFgOJiIiIKM8mT56M2NhYHD58GFZWVli0aBHKlCkDAEhKSkJgYCD69+9v4CyJiAxP2ykTOLUCEekLi4FERERElGclS5bEkiVLsj1mYWGBoKAglChRQs9ZEREZH0EQCjWOiKigWAwkIiIiokIllUphZWVl6DSIiIyCubl5ocYRERUUZ3UmIiIiIiIi0pFXr14VahwRUUGxGEhERERERESkI/Hx8YUaR0RUUCwGEhEREREREemIUqks1DgiooJiMZCIiIiIiIiIiKiYYDGQiIiIiIiISEcyMzMLNY6IqKBYDCQiIiIiIiLSEYlEUqhxREQFxWIgERERERERkY7IZLJCjSMiKigWA4mIiIiIiIh0RKFQFGocEVFBsRhIREREREREpCNSqXYfu7WNIyIqKP5rQ0RERERERKQjTk5OhRpHRFRQJoZOgIiIiIiIiEhXXr58iaSkJINdf9CgQZg5c6ZWcQ8ePNBDRjmztLRE2bJlDZoDEekei4FERERERET0UYqPj8fo0aOhVCoNncoHaVMw1DWpVIrt27fDxsbG0KkQkQ6xGEhEREREREQfJRsbG6xfv96gPQNV5s+fj5iYGI39pUuXxqxZswyQkSZLS0sWAomKARYDiYiIiIiI6KNlLMNet27disTERMyYMQOPHz9GlSpVsHDhQlhZWRk6NSIqZriACBEREREREZEeWFlZYdKkSQCASZMmsRBIRAbBYiAREREREREREVExwWIgERERERERERFRMcE5A4mIiIjIaDx8+BDz58/H1atXUbJkSXTp0gWTJ0+GXC7P8Zzo6Ghs3boVwcHBePLkCaysrNC4cWN8/fXXqFChgh6zJyIiIjJ+LAYSERERkVGIj4/H4MGDUaVKFaxcuRJRUVHw8/NDWloaZs+eneN5t2/fxqlTp/Dll1/Cw8MDb968wdq1a9GzZ08cPXoUdnZ2enwVRERERMaNxUAiIiIiMgp79uxBcnIyVq1aBVtbWwCAQqHA3LlzMXr0aDg6OmZ7XsOGDXH8+HGYmPzfo22DBg3QunVrHDp0CMOGDdNH+kRERERFAucMJCIiIiKjEBQUBC8vL7EQCAA+Pj5QKpUIDg7O8Txra2u1QiAAlC1bFnZ2doiOjtZVukRERERFEnsGEhEREZFRCA8Px5dffqm2z9raGvb29ggPD89TW48ePUJMTAyqVatWmCl+VF6+fImkpCRDp6G1Bw8eGOzalpaWKFu2rMGuT0REVJhYDCQiIiIio5CQkABra2uN/TY2NoiPj9e6HUEQMH/+fDg4OKBTp075zkcQBKSkpOT7fGOWkJCAUaNGQRAEQ6eitSlTphjs2lKpFOvXr8/295Mor9LS0sT/fqz/xhCRYQiCAIlE8sE4FgOJiIiI6KOycuVK/Pfff9i0aRMsLCzy3U5mZibCwsIKMTPjMmHCBLEoYSgbNmzQOnbUqFE6zCR3JUqUwPPnz/H8+XOD5UAfj8jISABvezCnp6cbOBsi+tjI5fIPxrAYSERERERGwdraGomJiRr74+PjYWNjo1Ub+/btw+rVq7FgwQJ4eXkVKB9TU1NUr169QG1Q7hITE/Hrr79+MK5v375o166dHjIi0j0zMzMAQNWqVeHs7GzgbIjoY6LtlBosBhIRERGRUXB2dtaYGzAxMRGvXr3S6gPzqVOnMGfOHEycOBE9evQocD4SiaRAPQvpw/r166dVMbBfv356yIZIP0qUKCH+l//GEFFh0maIMMDVhImIiIjISLRs2RIhISFISEgQ9wUGBkIqlaJZs2a5nnv+/Hl8/fXX6NmzJ8aNG6frVKkQ/f777wU6TkRERHlT5IqBBw4cgKurq8b/fv75Z7W4gIAAdOjQAXXq1MEXX3yBM2fOGChjIiIiItJGnz59ULJkSYwbNw7//vsv9u/fj59++gl9+vSBo6OjGDd48GC0b99e3H748CHGjRuHKlWqoEuXLrh27Zr4vydPnhjipVAe/f777xgyZIjaviFDhrAQSEREpANFdpjwpk2bYGVlJW6/+4D4xx9/4LvvvsOYMWPQtGlTHDt2DOPHj8euXbtQr149A2RLRERERB9iY2ODbdu2Yd68eRg3bhxKliyJHj16aKwiq1QqoVAoxO3r168jMTERiYmJ6Nu3r1pst27d4Ofnp5f8qWC+/PJLeHh4YMqUKVi2bBnnayQiItKRIlsMrFWrFuzs7LI9tmLFCnTq1AmTJ08GADRt2hT37t3D6tWrsXHjRj1mSURERER5Ua1aNWzdujXXmB07dqhtd+/eHd27d9dhVkREREQfjyI3TPhDnj59isePH8PHx0dtf8eOHXHu3DlkZGQYKDMiIiIiIiIiIiLDKrLFwM6dO8PNzQ3t2rXD+vXrxaEiqhXoqlatqhZfrVo1ZGZm4unTp3rPlYiIiIiIiIiIyBgUuWHC9vb2mDBhAjw8PCCRSPDXX39h+fLliIqKwuzZsxEfHw8AsLa2VjtPta06nl+CICAlJaVAbWQnNTVV7b9kHHhfjBPvi3HifTFehro3mVmZAKCTv5sfA33cF0EQIJFIdNY+ERERERU9Ra4Y2KJFC7Ro0ULcbt68OczMzLBt2zaMGTNG59fPzMxEWFiYztp//Pixztqm/ON9MU68L8aJ98V46fPemJiYIDY2BgBwX3kfWVlZert2UaPr+yKXy3XaPhEREREVLUWuGJgdHx8fbN68GWFhYbCxsQEAJCYmwt7eXoxJSEgAAPF4fpmamupkZbPU1FQ8fvwYVapUgbm5eaG3T/nD+/L/2rvzuKir/X/gr89s7AOyDIqAigbiAoiaIYZGpZGWZqZmLqUh19S6lPfmt3yQpt3MykrcSVOzXB7XpXLhqt1vekPz53VBS7+moMZigCzDPjPMfH5/EJPjsAkMA8zr+XjwYDhzPmfenzkDc3jP+ZzTNrFf2ib2S9tlrb65lpYJAHig5wOt9pjtSWv0y/Xr1y3SLhERERG1Xx0iGXi3gIAAANVrB9bcrvlZLpfDz8+vWe0LggBHR8dmtVEfBwcHi7ZPTcN+aZvYL20T+6Xtau2+kcvkAMDXQwMs2S+8RJiIiIiI7tVuNxC526FDhyCVStGnTx/4+fmhe/fuSE5ONqsTERHBS2WIiIiIiIiIiMhmtbuZgbNmzcKQIUMQFBQEAPj++++xe/duTJ8+3XhZ8Pz587FgwQL4+/tjyJAhOHToEC5evIjt27dbM3QiIiIiIqIOLTc317hEE9UuIyPD5DvVT6lUQqVSWTsMog6l3SUDe/TogT179uD333+HwWBA9+7d8dZbb2HatGnGOmPGjEFFRQWSkpKwceNG9OjRA6tXr8aAAQOsGDkREREREVHHlZubi7/MmQOdVmvtUNqFlStXWjuEdkGuUGD9unVMCBK1oHaXDFy0aFGj6j333HN47rnnLBwNERERERERAdWbNuq0Wtj7PASJQmntcKgDMGiLUZn9E4qLi5kMJGpB7S4ZSERERERERG2XRKGE1MHd2mEQEVEdOsQGIkRERERERERERNQwzgwkIiIiIrIwbqrQONxYofG4qQIRETUVk4FERERERBbETRXuHzdWaBg3VSAioqZiMpCIiIiIyIK4qQK1NG6qQEREzcFkIBERERFRK+CmCkRERNQWcAMRIiIiIiIiIiIiG8FkIBERERERERERkY3gZcJERERERETUYgwa7pxNLYOvJSLLYDKQiIiIiIiIWkzl7Z+sHQIREdWDyUAiIiIiolbAGS7UUtr6a8m+y0OQ2HHnbGo+g6aYyWUiC2AykIiIiIioFfAfWrIVEjvunE1E1JYxGUhERERE1Ao4W4paCmdLERFRczAZSERERETUCjhbioiIiNoCibUDICIiIiIiIiIiotbBmYFERERERETUYgzatr3BCbUffC0RWQaTgURERERErYD/1FJLaauvJaVSCblCgcpsrmdILUeuUECp5HqrRC2JyUAiIiIiIgtigoQsoS0mSFQqFdavW4fi4raZrGwrMjIysHLlSrz++uvw8/OzdjhtnlKphEqlsnYYRB0Kk4FERERERBbEBEnjMUnSeG01QaJSqdpkXG2Rn58fevXqZe0wiMgGMRlIRERERGRhTJDcHyZJiIiILIe7CRMREREREREREdkIJgOJiIiIiIiIiIhsBJOBRERERERERERENoLJQCIiIiIiIiIiIhvBZCAREREREREREZGNYDKQiIiIiIiIiIjIRjAZSEREREREREREZCOYDCQiIiIiIiIiIrIRTAYSERERERERERHZCCYDiYiIiIiIiIiIbASTgURERETUZqSlpeGll15CWFgYIiMjsWLFCmi12gaPE0URGzduxIgRIxASEoJJkybhwoULlg+YiIiIqJ1hMpCIiIiI2gS1Wo0ZM2ZAp9MhMTER8fHx2L17N5YvX97gsUlJSVi1ahVefPFFbNiwAV5eXpg5cyYyMjJaIXIiIiKi9kNm7QCIiIiIiABg586dKCsrw+rVq+Hm5gYA0Ov1WLJkCeLi4uDt7V3rcRqNBhs2bMDMmTPx4osvAgAGDhyIJ554Aps2bcLixYtb5wSIqE36/fffUVpaau0wjGo+pGiLH1Y4Ozujc+fO1g6DiCyMyUAiIiIiahNOnDiBiIgIYyIQAGJiYvDOO+8gJSUF48ePr/W4c+fOobS0FDExMcYyhUKBxx9/HEePHrV02ETUhqnVasTFxcFgMFg7FDMrV660dghmJBIJtm3bBldXV2uHQkQWxGQgEREREbUJ6enpePbZZ03KlEolvLy8kJ6eXu9xABAQEGBS3rNnT2zduhWVlZWwt7dv+YDbubY2WwpouzOmOFuq/XJ1dcWGDRva3Gu9rXJ2dmYikMgGMBlIjVJSrkV6phq/F5Qjr7AcFZoqXLueCUEQEOojwN1eRM9BQ9C9ixJymdTa4RIREVE7VFxcDKVSaVbu6uoKtVpd73EKhQJ2dnYm5UqlEqIoQq1WNykZKIoiysvL7/u49qC4uBizZ8+GKIrWDqVWbW3GlEQiwYYNG2p9fVLbp1Qq2Xf3oaP+3SOyBaIoQhCEBusxGUi10htEXL6Rj5MXs3HyYjYKijV11r2c/ceNH09AIgAerg6IGtAVg4K90bu7O2RS7lNDRERE7Y9Op8OVK1esHYbFzJ8/H5WVldYOo12wt7dHVlYWsrKyrB0KERFRvRQKRYN1mAwkE7fvlOHQyRv44VwmikpME4Aujgq4uSjgaCeHg70M2uICCBIJSiv1qNQBRZUCNDo98ooqsOd/r2PP/16Hk70MYUEqDA72xqBgb7g629XxyERERGTrlEolSkpKzMrVanW9l60plUpotVpoNBqT2YHFxcUQBKHJl7zJ5XL06tWrSccSERERtbbr1683qh6TgQSDQcS5q7k4mHIDZ/8vBzVXiyhkEnT3cYVKVoqu7gpIANjZyaCtrICDTITOQQc7hQQ6jRZ2cgEaLZBTUoUymRLZlY7IzC1FWWUVUlKzkZKaDYlEQP+eHogM7YqIfl3g5sLEIBEREf0pICDAbG3AkpIS5OXlma0HeO9xAHDjxg307t3bWJ6eng4fH58mrxcoCAIcHR2bdCwRERFRa2vMJcIAk4E2raRci2P/7zccPnkTt/PLjOVdPR0xoKsEAfICKKsygILfYPd7JWS6Uij05ZAZ6r5kuIZBkKLK1Q43qlT4Re+Pq5Uq/K51ROq1O0i9dgfr96Sib4AnhoX5IKJfF3RSclFvIiIiWxcVFYX169ebrB2YnJwMiUSCyMjIOo8LDw+Hs7MzDh8+bEwG6nQ6HDlyBFFRUa0SOxEREVF7wWSgDSg6cwgA4Db4SYiiiGsZRUg+dRPHz/4Grb66jp3UgHDnXDxsdwU+VZkQMhpeTFoEIAoSiJBCFCSAaIBU1EEAIBH1UOjLESTcRJDsJuAM3NE744K2Gy5ouyFD74lLaXdwKe0O1u1JRW8vARG93TFscC94+XRudDabiIiIOo7Jkyfjyy+/xNy5cxEXF4ecnBysWLECkydPhre3t7HejBkzkJ2djaNHjwIA7OzsEBcXh8TERLi7uyMwMBA7duxAUVERZs2aZa3TISIiImqTmAy0AWKVFqVa4D8nruFfJ9NwK+/PmX1dpQUYZncVA+1uwE6oAqqqy6tkjiiXKqF1cEe54AzR3gXloh3goESZXgGpgxM0Wj3s7OTQaHTG7xUlJXDv5Ay9phIOMgPEcjWchApIKtRwEMsxSKvGw1U/oqTSgFRtN6Rq/XFL74X/ywP+L68AW/5zGj3k+RjkWYohAfbw9u0KuacfFF5+kDp3YpKQiIioA3N1dcXWrVuxdOlSzJ07F05OTpgwYQLi4+NN6hkMBuj1epOy2NhYiKKIzZs3o6CgAMHBwdi0aRP8/Pxa8xSIiIiI2rwOnQxMS0vDsmXLcP78eTg5OWHs2LH461//2qidVdo7URRRnv87zp65guP/zcc5dSdUiZcBAHJUIVRxC0PtriFAlguNXIkyx564LfeEzskbakEJqaMSmspKs2SfnZ0cVRodpIIEgN78gQUBBqkCWqkAQSGHRnSCxk4Ojb1pG9qKCnQVSuFfdgcGza9IU8txpdQVv+ncka7zRPptT+y+DfhI8/CA7BIC5bfxgHMplKouUHhVJwflHr6Qu3eGTOkJQSJt3SeYiIiILKJnz57YsmVLvXW+/PJLszJBEBAXF4e4uDgLRUZERETUMXTYZKBarcaMGTPQvXt3JCYmIicnB8uXL0dlZSUSEhKsHV6LEkUR+uI70NxOR9Fv1/HfXwtw9ncpLleooIEcgCcAwEdagCH2NxDsaYDQyRcFmnBccvFBuV5mnuwTa0n0tWTMEhkq7LygEdxg5yGHu4cO0XZyFBZXIK+oEjcKDLhdrkC23h3Zencc1/SBpNQAv7x8dJPdQVdZOnylhegsLYJMKoHczQuyTp0h/+NL1qkz5K4qSJUekNg5ckYhERERERERERE6cDJw586dKCsrw+rVq+Hm5gYA0Ov1WLJkCeLi4kzWnWlPDFVa6PKzocvPgjb3FkqybuDqb0X4tdQFaVXeuFHlBT38jfVdpZV4wKkEvb2lkNk7QXR8GNme3aGQS1GScQ12Mjmg11nxjEw52skQ6N8J3bx1MAhS/F4iIqfEgKwCDUoqJbil98ItvRfwx5XOEhjgLVVDpS6Ge2Yp3CXpcJdchLukDK6SCjgIGkhkcsjdVJApPSB18YBM6QGZiwekjq6QOrlC4lg9E1Ji78SkIRERERERERF1aB02GXjixAlEREQYE4EAEBMTg3feeQcpKSkYP3689YKrhyiK0JcXo0qdhyp1HnR/fK8q/B2lebeRVaBFdpUrbuvd8FuVB25WBUMP00tkOyl0CPCUwtNZjs4entBq3SCrmfknlUKTcwuwk1vpDBvPQSGBj7MOPTzk0HQBdJAiR61HUSWQV6xDYbkBmioJbus74ba+E1BLTlOAAU6CBs4FGjgLldW3JRlwEq7DXtDBTtDB/o8vO4kejg4KODrZw8HRAXI7e0hkMthptFDn/wytiyskCofqmYZyOwgyOQS5AoJUUX1bpoBEroAgrb4tyOQQpB32V4yIiIiIiIiI2qEOm6lIT0/Hs88+a1KmVCrh5eWF9PR0K0XVsFt7V+PytVwUiw4oNjigxGCPYtEB+Xo/3DEEQ4TE7BgnuYgunezQyQHw9bCrTmz9kfyrdaabqAdE83baOmc7CeSuevRUyaHRAAqFDIWlOpTpJCjRGFChE6Aur0KZVkRJpQHaKhEiJCgVHVCqd2jcgxTXfZcEBshQAqmghgwGSAUDZNBDCgNkggESGCCFCIlggARi9c+CCAEipAIgEf74LsEf9f64fdf36tsCJILwZ7lEgFSC6jKJAInxNgBBAolEgCDUfEkgCMKfZZI/yv5os+Z29X2S6jKJBDAeI4FEKrmrnqS6nqSmfnX7grFOdRuQSACYvtbufumZ3FNHudDQ/Xf9oNFoUZSdjZtVOtjbK+6qX0uLDUz2rPkdqf7W0MzQu9pscBbpn/ff+3todqRgGvefoQjm9wuCSRxCrXX+PFa4p50/n+da2jG2ce/jNY5GU4mSwmLk3c6Fvb19g/Ub9ZSbVG78AYLJ89+I+hacFXy/Td9X9UY2XllRgYqSEhTnF0BbVt745iXNe16qSioAAOr8/Ga101FpNFprh0BERERENqjDJgOLi4uhVCrNyl1dXaFWq5vUpk6ngyiKuHjxYnPDMyOKIgDgd//hcPMX4FZHPQF/JogkAiCTCoBY/f+g2Aa+i6IbJBJJqz2mbwP3GwyA+MfzK0L443v1/fjje839d//cUYlo5vnVNGCos6CVCIB7V2RXAqhsO5e5EwC5I65l5lg7CqqN4ICf07Na9SFd0RkAcObn6636uO2JvVSPa9euWSwhrdPV8cEgNahm3Hfp0iVrh0JERETUKFqttlFjvw6bDLSEP2cQtfygWhAEKBQKeLl3/J2OiYiIqHXUzByn+8fnjYiIiNqbxo79OmwyUKlUoqSkxKxcrVbD1dW1SW0OGDCguWERERERUTvAcR8RERF1VO1v4bhGCggIMFsbsKSkBHl5eQgICLBSVERERERERERERNbTYZOBUVFROHnyJIqL/9wRIjk5GRKJBJGRkVaMjIiIiIiIiIiIyDoEsWbnhA5GrVZj9OjR6NGjB+Li4pCTk4Ply5fjqaeeQkJCgrXDIyIiIiIiIiIianUdNhkIAGlpaVi6dCnOnz8PJycnjB07FvHx8VAouEkHERERERERERHZng6dDCQiIiIiIiIiIqI/ddg1A4mIiIiIiIiIiMgUk4FEREREREREREQ2gslAIiIiIiIiIiIiG8FkIBERERERERERkY1gMpCIiIiIiIiIiMhGMBlIRERERERERERkI5gMbAVpaWl46aWXEBYWhsjISKxYsQJarbbB40RRxMaNGzFixAiEhIRg0qRJuHDhguUDthFN6Zfc3FysWLECY8eOxYABAxAVFYU33ngDWVlZrRR1x9fU35e7bdmyBUFBQYiLi7NQlLanOf2Sk5ODN998Ew899BBCQkIQExODb7/91sIR24am9kthYSESEhIwYsQIhIWFYcyYMdixY0crRGwbbt26hYSEBIwdOxZ9+vTBmDFjGnUc3/epIzh27Bi++uqrFm0zOjoa7777bou2SdSWnT59GkFBQbh06ZK1Q6EOaOHChY0em7REO2PHjsXChQub/Xi1scR7jq2QWTuAjk6tVmPGjBno3r07EhMTkZOTg+XLl6OyshIJCQn1HpuUlIRVq1ZhwYIFCAoKwldffYWZM2fim2++gZ+fXyudQcfU1H755ZdfcPToUTz77LMIDQ1FYWEh1q1bh+eeew4HDhyAu7t7K55Fx9Oc35caeXl5WLNmDTw8PCwcre1oTr/k5uZi0qRJ6NGjB5YuXQpnZ2dcu3btvhO8ZK45/fLaa68hPT0dr7/+Orp06YITJ05g8eLFkEqlmDhxYiudQcd17do1HD9+HKGhoTAYDBBFsVHH8X2fOoJjx47h559/xgsvvNBiba5evRpKpbLF2iMioo7BEu85toLJQAvbuXMnysrKsHr1ari5uQEA9Ho9lixZgri4OHh7e9d6nEajwYYNGzBz5ky8+OKLAICBAwfiiSeewKZNm7B48eLWOYEOqqn9MnDgQBw+fBgy2Z+/OuHh4RgxYgT279+PmTNntkb4HVZT++VuH374IaKjo5GdnW3haG1Hc/rlww8/ROfOnfH5559DKpUCACIiIloj7A6vqf2Sl5eH06dP4/3338f48eMBVPfJpUuXcPDgQSYDW0B0dDQee+wxANWfmv/8888NHsP3fbIloihCp9NBoVA0qn6fPn0sHBEREZFt4WXCFnbixAlEREQY/1EDgJiYGBgMBqSkpNR53Llz51BaWoqYmBhjmUKhwOOPP44TJ05YMmSb0NR+USqVJolAAOjcuTPc3d2Rm5trqXBtRlP7pcZ///tfHDt2DG+88YYFo7Q9Te2X0tJSHD58GFOmTDEmAqnlNLVfqqqqAAAuLi4m5c7Ozo2ewUb1k0juf3jF933qCBYuXIh9+/bh2rVrCAoKQlBQEBYuXGi8lOz48eN4+umn0b9/f/z73/9GeXk53n33XYwaNQqhoaGIjo5GQkICSkpKTNq99zLhmvZOnz6NcePGISwsDBMmTGhU4p3Ikvbu3Ys+ffrgzp07JuVFRUXo168fdu7cifPnz+Mvf/kLhg0bhrCwMIwdOxb79++3TsBk0+r7G6rRaPD+++9j2LBh6N+/P8aOHYujR4822Oa5c+cwfvx49O/f3/h3vzZHjhzB2LFj0b9/fwwbNgzvv/8+NBqN8f69e/ciKCgIBQUFJsfdfclxXe851DhMBlpYeno6AgICTMqUSiW8vLyQnp5e73EAzI7t2bMnsrOzUVlZ2fLB2pCm9kttbty4gfz8fPTs2bMlQ7RJzekXvV6PpUuX4i9/+QtUKpUlw7Q5Te2XX375BTqdDjKZDFOnTkXfvn0RGRmJDz/8EDqdztJhd3hN7ZcuXbpg2LBhWL9+Pa5fv47S0lIcOnQIKSkpvMTCivi+Tx3BK6+8guHDh8PPzw+7du3Crl278MorrwCoXjZi2bJlePHFF5GUlITg4GBUVlZCr9cjPj4eSUlJeO2113DmzBnjMfXJy8vDsmXLMGvWLHz66afQaDSYN28e31/Iqh5//HFIpVIkJyeblB85cgQA8MQTTyA7Oxvh4eF47733sG7dOowcORKLFi3Cvn37rBEy2aiG/oYuWLAAu3btwssvv4w1a9agV69emD9/Pr7//vt625w1axYUCgU+/fRTzJo1C0uWLEFOTo5Jve+//x6vvvoqevXqhTVr1uDll1/Gzp078be//e2+zqG+9xxqGC8TtrDi4uJa1zhxdXWFWq2u9ziFQgE7OzuTcqVSCVEUoVarYW9v3+Lx2oqm9su9RFHEsmXLoFKpMHr06JYM0SY1p1++/vprVFRUGC+vo5bT1H6p+VR80aJFmDhxIubNm4eLFy9i1apVkEgknMHZTM35fUlMTER8fLzx75ZUKsWiRYswatQoi8RKDeP7PnUE/v7+cHd3R3Z2NsLCwkzuU6vVSEpKQmhoqEn5kiVLjLerqqrg6+uLKVOm4MaNG+jRo0edj6VWq7F9+3Y88MADAAAHBwdMnz4dqampGDRoUMudFNF9cHFxwfDhw3HgwAFMnTrVWH7gwAFERkbCzc3N5H8GURQxePBg5OTkYNeuXXjmmWesETbZoPr+hjo7O+PIkSNYsmQJJk+eDACIiopCVlYW1qxZg0cffbTWNrdu3QpBEJCUlGS8AqVz585m/5+tXr0aYWFh+Pjjj41tOzg4ICEhAVevXkVQUFCjzqG+9xxqGJOBRM2QmJiIn376CZ9//jkcHR2tHY7Nys/Px6pVq/DBBx80ev0hsjyDwQAAGDp0qHHK/kMPPYSysjJs3rwZc+fOZXLDCkRRxP/8z//g5s2b+Pjjj+Hl5YWTJ0/iH//4B1xdXfnBBhFZhJubm1kiEAD279+PLVu24NatWygvLzeW37x5s95koEqlMv4TCwC9evUCALMZKEStbfTo0YiPj0d2djZ8fHyQm5uLM2fO4IMPPgBQnYRJTEzE999/j5ycHOj1egAwWfaDyNLq+xt69epVANUzWe8WExOD999/H+Xl5bX+75uamoohQ4aYLEVz75I2ZWVluHLlCt58802TY5988kkkJCTg7NmzjU4GUvPwMmELUyqVZuueANVvAq6urvUep9VqTa6bB6pnDgiCUO+x1LCm9svddu/ejTVr1mDJkiXcEKGFNLVfPvvsMwQFBWHQoEEoLi5GcXExqqqqUFVVZbxNTdecv2NAdQLwbhEREdBqtbh161bLBmpjmtovP/zwA5KTk7Fq1SqMGTMGQ4YMQXx8PMaNG4fly5dbMmSqB9/3qaPz9PQ0Kzt69CjefPNNhISE4NNPPzWOrQCY/S7c696Z0XK5vFHHEVnaI488AgcHBxw8eBAAcPjwYdjZ2ZlsLHXgwAHMnDkTmzZtwj//+U88++yz0Gq11gybbEx9f0PVajXkcrlZgtrT0xOiKNY6/gSqLxP28PAwK3d3dzfeLikpgSiKZvVcXFygUCju6yo9ah4mAy0sICDAbO2mkpIS5OXlma0LdO9xQPV6dHdLT0+Hj48PZ9M0U1P7pcbRo0exePFivPrqq5gwYYKlwrQ5Te2XGzdu4MyZMxg8eLDx69y5c/jxxx8xePBgnDx50tKhd2hN7ZeaTxjrwn/Ymqep/XL9+nVIpVIEBgaalAcHByM3NxcVFRUWiZfqx/d96ugEQTArS05ORnBwMN59910MHz4coaGhtS5/QNSe2Nvb47HHHsOhQ4cAAIcOHcIjjzwCR0dHaDQa/PDDD5gzZw6mTZuGiIgI9O/fnxt4UZvi6uoKnU5nlpi7c+cOBEEw24SuhpeXF/Lz883K794ExMXFBYIgmG0MUlJSAq1Wa/zws2bZlHvXgS0uLr7/E6JaMRloYVFRUTh58qTJizY5ORkSiQSRkZF1HhceHg5nZ2ccPnzYWKbT6XDkyBFERUVZNGZb0NR+Aap3XXr99dfx3HPPYe7cuZYO1aY0tV/eeustbNu2zeSrd+/eCAsLw7Zt2xASEtIa4XdYTe2Xrl27IjAw0CwZe/LkSdjb2zeYLKT6Nadf9Hq98RKQGr/88gs8PDzg4OBgsZipbnzfp45CLpc3+sOeyspK42yUGt99950lwiJqVWPGjMHly5fxn//8BxcuXDAuwaHVamEwGExe96Wlpfj3v/9trVCJzAwcOBAAzDbCSU5ORp8+fepcHiskJASnT582mTl46tQpFBUVGX92cnJCcHCwWds145+ax/b29gYAkw++09LScPv2bZPj7uc9h0xxzUALmzx5Mr788kvMnTsXcXFxyMnJwYoVKzB58mTjCxwAZsyYgezsbON23XZ2doiLi0NiYiLc3d0RGBiIHTt2oKioCLNmzbLW6XQYTe2XtLQ0zJ07F927d8fYsWNx4cIFY113d3f4+/u39ql0KE3tl+DgYLO2lEolHB0dMWTIkFaLv6Nqar8AQHx8PF555RW89957GDFiBC5duoTNmzdj1qxZXGezmZraL1FRUfDx8cGrr76KuXPnQqVS4ccff8S+ffswf/58a51Oh1JRUYHjx48DALKyslBaWmoc9D744INwd3fn+z51WD179sSePXtw4MABdOvWDZ06daqz7tChQ/Huu+9izZo1GDBgAI4fP45Tp061YrREljF06FC4ubnhrbfeglKpNH6o4+Ligv79+yMpKQnu7u6QyWTYuHEjnJ2dzWZKEVlL7969MXLkSCxfvhyVlZXo0aMHvv32W5w/fx5r166t87gZM2bg66+/RmxsLGJjY1FcXIzExESzy43nzZuHuXPnYsGCBXj66adx48YNfPLJJxg1apRxvcDQ0FB06dIF//jHP/DGG2+gtLQUGzduNGurtvccX1/fln5KOiQmAy3M1dUVW7duxdKlSzF37lw4OTlhwoQJiI+PN6lnMBiMi8fWiI2NhSiK2Lx5MwoKChAcHIxNmzbBz8+vNU+hQ2pqv6SmpqKkpAQlJSV4/vnnTeo+88wzXG+rmZrz+0KW05x+iY6OxsqVK7F27Vrs2LEDKpUK8+fPx+zZs1vzFDqkpvaLs7MztmzZgk8++QQfffQRSkpK4Ovri4ULF5rsfEhNl5+fj9dee82krObnbdu2YciQIXzfpw5rwoQJuHjxIpYuXYqioqJ6d0edPHkyMjMzsX37dmzatAnDhg3Dxx9/jIkTJ7ZixEQtTy6XY9SoUdi1axcmTJhgssHdxx9/jISEBCxcuBBubm6YNm0aysvLsXnzZitGTGTqww8/xMqVK5GUlISioiIEBARg1apViI6OrvMYlUqFpKQkLFu2DK+99hr8/f2RkJCATz75xKTeo48+is8++wxr1qzBK6+8Ajc3N0ycOBFvvPGGsY5cLsfq1auxePFiY1tvvfWW2f/btb3n8H/yxhFELlBARERERERERERkE7hmIBERERERERERkY1gMpCIiIiIiIiIiMhGMBlIRERERERERERkI5gMJCIiIiIiIiIishFMBhIREREREREREdkIJgOJiIiIiIiIiIhsBJOBRERERERERERENoLJQCIiIiIiIiIiIhvBZCARkRXt3bsXQUFByMzMtHYoRERERDYpMzMTQUFB2Lt3r7EsMTERQUFBVoyKiMhymAwkIiIiIiIiasD69etx7Ngxa4dBRNRsTAYSERERERER3WXOnDm4ePGiSdmGDRuYDCSiDoHJQCKiu2g0GhgMBmuH0eaVl5dbOwQiIiIii5HJZLCzs7N2GC2uoqLC2iEQURvAZCARtTulpaV47733EB0djX79+iEiIgIvvfQSfvnlFwDAtGnTMGbMGPz888+YPHkyQkJCEB0djR07dpi0c/r0aQQFBeHgwYP45JNP8PDDDyM0NBSlpaUAgNTUVMyaNQsDBw5EaGgopk6dirNnz5q0kZWVhcWLF2PUqFEICQnBkCFD8Oqrr9a6BuC1a9cwffp0hISEICoqCmvXrm1S4rGh86+RmpqK2NhYDB48GGFhYXjqqaewdetWkzqnTp3ClClTEBYWhkGDBmHOnDlIS0szqVOzZs7169fxxhtvYPDgwZgyZYrx/m+++Qbjx49HSEgIHnzwQcTHx+P27dv3fV5ERERE96OlxoS1uXfNwKCgIJSXl2Pfvn0ICgpCUFAQFi5c2OhYDx48iPHjx2PAgAEIDw+vdVyWkZGBV199FQ8++CBCQ0MxceJE/PDDDyZ16lpvumZce/r0aWPZ3ef/wgsvIDQ0FCtXrgRQ/QF4YmIiRo0ahf79+2PYsGGYN28efvvtN+PxBoMBW7ZswejRo9G/f38MHToUCQkJUKvVjT5vImqbZNYOgIjofr3zzjv417/+halTp6Jnz54oKirC2bNnkZaWhr59+wIA1Go1Zs+ejZiYGIwePRqHDx/G4sWLIZfLMWHCBJP21q5dC7lcjlmzZkGr1UIul+PUqVOIjY1Fv379MG/ePAiCgL1792LGjBn4+uuvERISAgC4dOkSzp8/j9GjR6Nz587IysrCjh07MH36dBw8eBAODg4AgLy8PEyfPh16vR6zZ8+Gg4MDdu/e3aRPnBtz/ikpKYiLi4NKpcL06dPh6emJtLQ0/PDDD5gxYwYA4OTJk4iNjYWvry/mzZuHyspKbN++Hc8//zz27t0LX19fk8d97bXX0K1bN8THx0MURQDAunXr8NlnnyEmJgYTJkxAQUEBtm/fjhdeeAH79++HUqm87/MjIiIiaoyWHhPWZ8WKFVi0aBFCQkIwceJEAIC/v3+jjk1JScHrr7+OiIgILFiwAACQnp6Oc+fOGcdld+7cweTJk1FRUYFp06ahU6dO2LdvH+bMmYNVq1bh8ccfv5+nxqioqAixsbEYPXo0nn76aXh4eECv1yMuLg6nTp3C6NGjMX36dJSVlSElJQW//vqr8bwSEhKwb98+jB8/HtOmTUNmZia++uorXL58GTt27IBcLm9STETUBohERO3MwIEDxSVLltR5/9SpU8XAwEBx8+bNxjKNRiOOHTtWjIiIELVarSiKovjTTz+JgYGB4qOPPipWVFQY6xoMBnHkyJHizJkzRYPBYCyvqKgQo6OjxZdeesmk7F7nz58XAwMDxX379hnL3nvvPTEwMFBMTU01luXn54sDBw4UAwMDxYyMjBY7/6qqKjE6Olp85JFHRLVabXLf3edT83wUFhYay65cuSL27t1b/Pvf/24sW7VqlRgYGCi+/vrrJm1lZmaKwcHB4rp160zKr169Kvbp08esnIiIiKgltdSYMCMjQwwMDBT37NljrFcz/rlbWFiY+Oabb953nMuWLRPDw8PFqqqqOuvUjBXPnDljLCstLTWO6fR6vSiKorhnz55ax44149qffvrJ7Px37NhhUvef//ynGBgYKH7xxRdmcdSMFc+cOSMGBgaK3377rcn9J06cqLWciNoXXiZMRO2OUqlEamoqcnJy6qwjk8kwadIk488KhQKTJk1Cfn6+2eW048aNg729vfHnK1eu4ObNm3jqqadQWFiIgoICFBQUoLy8HBEREThz5ozx8t67j9PpdCgsLIS/vz+USiUuX75svO/48eMICwszzigEAHd3dzz11FMtfv6XL19GZmYmpk+fbjYzTxAEAEBubi6uXLmCZ555Bm5ubsb7e/fujaFDh+L48eNm7U6ePNnk56NHj8JgMCAmJsb4HBUUFMDT0xPdunUzuUyFiIiIqKW19JjQUpRKJSoqKpCSklJnnePHjyMkJASDBg0yljk5OWHSpEnIysrC9evXm/TYCoUC48ePNyk7cuQIOnXqhKlTp5rVrxkrJicnw8XFBZGRkSbjvL59+8LR0ZHjPKJ2jpcJE1G7s2DBAixcuBAjRoxA3759MXz4cIwbNw5+fn7GOiqVCo6OjibHde/eHUD1On9hYWHG8nsvh7158yYA4M0336wzhpKSEri6uqKyshIbNmzA3r17kZOTY7x8tqZOjezsbISGhpq106NHjwbP914NnX9GRgYAIDAwsM42srOz63z8nj174scff0R5ebnJc1jb8ySKIkaOHFnrY8hkfIshIiIiy2npMaGlTJkyBYcPH0ZsbCy8vb0RGRmJmJgYREVFGevUNVYMCAgw3l/f2K4u3t7eUCgUJmW//fYbevToUe9Y7datWygpKUFERESt9+fn5993LETUdvA/NSJqd5588kkMGjQIR48eRUpKCjZt2oSkpCQkJiZi+PDh993e3bP7ABgTen//+98RHBxc6zE1g8qlS5ca1xIMCwuDi4sLBEEwWVevpbX0+TfWvesbGgwGCIKApKQkSKVSs/r3DryJiIiIWpK1xkT3y8PDA/v378ePP/6IEydO4MSJE9i7dy/GjRuHDz744L7aqpm5d6+6NqW7d5zbWAaDAR4eHvjoo49qvd/d3b1J7RJR28BkIBG1SyqVCi+88AJeeOEF5Ofn45lnnsH69euNA7/c3FyzmW01M/66du1ab9s1nyY7Oztj6NCh9db917/+hXHjxpnsJqfRaExmBQKAj48Pbt26ZXb8jRs36m2/LvWdf038v/76a53x+/j41Pn46enp6NSpU4PJ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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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4OBgLFy4EPb29pg2bRqePHmSJyHo7++POXPm4IcffkBGRgb69u2rVUIQeHlPOjo6YvPmzQgKCgIA1KxZE+3bt4eXl5fW78vrTE1NMXjwYISFheHYsWMQBAEODg74+uuvMWTIELHcO++8gy1btiAoKAgbN26EIAioU6eORtK3Xbt2WL9+PVauXImVK1fCyMgI7u7umD59epE/D5X1+RKVFolQ3BHziYiIiIiISO/5+/vj6NGjuHr1qq5DKZGFCxfil19+QVhYmNaJuoKEh4dj+PDh+PHHH9G9e/dSqZOIyBBwDEEiIiIiIiLSa5mZmTh48CC6detWaslAIqLKjF2GiYioTMXHxxe63dTUNE+3HSIiIiIAeP78Oc6fP4+jR48iMTERw4cP13VIVI7S0tLE2bcLYm1tXeCke0RUMCYEiYioTHXo0KHQ7X379sXixYvLKRoiIiIyJJGRkZg2bRpsbGwwe/ZscZZgqhw2btyIwMDAQsucPHkS9vb25RQRUcXBMQSJiKhMnT9/vtDtdnZ2cHZ2LqdoiIiIiMhQxMTEICYmptAyrVu3homJSTlFRFRxMCFIRERERERERERUiXBSESIiIiIiIiIiokqEYwgCuHr1KgRBgFwu13UoRERERMWiUqkgkUjQsmVLXYdikPg8SERERIZOm+dBthAEIAgCtO05LQgCsrKytN6PdI/XzjDxuhkmXjfDxWtneIrzPEP/j+8fERERGTptnmfYQhAQvwlu2rRpkfdJT0/H7du34ezsDHNz87IKjcoAr51h4nUzTLxuhovXzvD89ddfug7BoBXneZCIiIhIn2jzPMgWgkRERERERERERJUIE4JERERERERERESVCBOCRERERERERERElQgTgkRERERERERERJUIE4JERERERERERESVCGcZJiIiqoTUajVUKlWB2zMzM8WfUim/P9QHcrkcMplM12EQERERUQXAhCAREVElIggC/v33XyQmJhZaLicnB0ZGRoiNjWVCUI9YWVmhZs2akEgkug6FqMTUajVu3bqFhIQEWFtbo1GjRkx6ExERlRMmBImIiCqR3GSgnZ0dzM3NC0wsqdVqZGZmwsTEhB/Q9YAgCEhPT8fTp08BAG+99ZaOIyIqmfPnz2PDhg3iPQ0AdnZ2GDVqFNq1a6fDyIiIiCoHJgSJiIgqCbVaLSYDbWxs3lgWAExN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0qQJfH19AQADBgzAhg0bShYhEREREemMsbExqlevDmNjY12HYjA46yqVBc66SkREpalECUEzMzOkpKQAALKzs/Hf//4XH374obi9SpUq4nYiIiIiMkx9+/bFr7/+isGDBzMxqAXOukpERET6qkQJwcaNG2P37t3w8PDAqVOnkJaWBi8vL3H7o0ePYGNjU+IgiYiIiEh3XF1dcfLkSfj6+qJv376oXbs2TE1N85R7//33dRAdEREREWmrRAnBKVOmYPTo0fjggw8gCAK6deuGZs2aiduPHz+OVq1alThIIiIiItKdzz77THz9448/5ltGIpHg9u3b5RUSEREREZVAiRKCTZs2xZEjR/Dnn39CoVCgTZs24rbk5GQMGTJEYx0RERERGZ6tW7fqOgQiIiIiKkUlSggCgLW1Nbp27ZpnvUKhwIgRI0paPRERERHpGL/gJSIiIqpYSpwQBIDU1FTExsYiOTkZgiDk2e7u7l4ahyEiIiIiHcrKysLNmzfx/PlztGrVCtbWnDCDiIiIyBCVKCH44sULfPvttzh27BjUanWe7YIgcDwZIiIiogpg69atCAwMREpKCgBg48aN8PT0REJCAry9vTF9+nT0799fx1ESERERUVGUKCH41Vdf4fTp0xg2bBjc3NygUChKKy4iIiIi0hN79+7FwoUL4ePjg/bt22PWrFniNmtra7Rt2xYhISFMCBIREREZiBIlBMPCwjBixAh88cUXpRUPEREREemZTZs2oUuXLli2bBlevHiRZ3vjxo2xbds2HURGRERERMUhLcnOpqamqF27dmnFQkRERER66OHDh+jYsWOB262srJCYmFh+ARERERFRiZQoIdirVy+cOHGitGLRkJaWho4dO8LV1RV//fWXxrY9e/agW7duaNq0KXr16oXTp0+XSQxEREREBCgUinxbBuaKjIyEra1tOUZERERERCVRooRgt27dkJSUhFGjRuHYsWOIiIjAzZs38/wrjlWrVuU7Ucnhw4fx1VdfwdvbG8HBwWjRogUmTZqEa9euleRUiIiIiKgAHTt2xO7du5GcnJxn2/3797Fnzx54eXnpIDIiIiIiKo4SjSE4ZMgQ8fX58+fzbC/uLMMPHjzAzp07MWPGDHz99dca21auXAkfHx9MmTIFANC2bVvcu3cPQUFBCA4O1v4kiIiIiKhQU6ZMwYABA+Dr64vO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ofr164e7d+9CIpHA1dUV7u7uGDFiBFq3bo1q1arpOjwiIiIi0hITgkRERERUqFu3bkEqlaJLly7o1KkT3NzcULduXV2HRURERETFxIQgERERERVq7969Ylfh5cuXIyEhATY2NmjdujXc3Nzg5uaGBg0aQCKR6DpUIiIiIioCJgSJiIiIqFCNGzdG48aNMWLECADA33//LSYIN23ahIULF8LCwgKXLl3ScaREREREVBRSXQdARERERIYjIyMD//77L/7991/ExsYiISEBgiAgPT1d16ERERERURGxhSARERERFer06dO4dOkSrly5gps3byI7OxsmJiZo1qwZPvroI7i5uaFly5a6DpOIiIiIiogJQSIiIiIq1IQJE6BQKNCqVSt8+umncHNzQ5MmTSCXy3UdGhEREREVAxOCRERERFSoX3/9FS4uLpw0hIiIiKiCYEKQiIiIiArl6uqq6xCIiIiIqBRxUhEiIiIiIiIiIqJKhAlBIiIiIiIiIiKiSoQJQSIiIiIiIiIiokqECUEiIiIiIiIiIqJKhAlBIiIiIiIiIiKiSoQJQSIiIiIiIiIiokqECUEiIiIiIiIiIqJKhAlBIiIiIiIiIiKiSoQJQSIiIiIiIiIiokqECUEiIiIiIiIiIqJKRK8SgkeOHMGECRPQsWNHtGjRAr1798Yvv/wCQRA0yu3ZswfdunVD06ZN0atXL5w+fVpHERMRERERERERERkWvUoIbt68GWZmZvD398fq1avRsWNHfPXVVwgKChLLHD58GF999RW8vb0RHByMFi1aYNKkSbh27ZruAiciIiIiIiIiIjIQRroO4FWrV6+GtbW1uOzp6YnExERs2rQJH3/8MaRSKVauXAkfHx9MmTIFANC2bVvcu3cPQUFBCA4O1lHkREREREREREREhkGvWgi+mgzM1bBhQ6SmpiI9PR0xMTGIjo6Gt7e3RpkePXrgwoULyMrKKq9QiYiIiKiEHjx4gP/85z9o0aIF2rdvjyVLlrzxee7p06dYsmQJevfujZYtW6Jjx474/PPP8eTJk3KKmoiIiMjw6VVCMD9XrlxBjRo1YGFhgaioKABAvXr1NMo4OTlBpVIhJiZGFyESERERkZaSkpIwYsQIqFQqBAQEYOrUqdi9ezcWL15c6H43b97E8ePH4e3tjVWrVsHf3x/37t2Dn58fEhISyil6IiIiIsOmV12GX3f58mWEhIRgxowZAF4+OAKAQqHQKJe7nLu9OARBQHp6epHLK5VKjZ9kOHjtDBOvm2FRZ2dDpVIhW6UCAPFn7jZt/r8l3eDvnOERBAESiUTXYRTZzz//jLS0NAQGBsLKygoAoFarMW/ePIwbNw41atTId7/WrVvjyJEjMDL6/8fYVq1a4d1338WBAwcwcuTI8gifiIiIyKDpbULw33//xdSpU+Hh4YHhw4eX+fFUKhVu376t9X7R0dGlHwyVC147w8TrZhiq2inwLD5eXE5MTBRfJ1dPwpOnbNFtKPg7Z1iMjY11HUKRnT17Fp6enmIyEAC8vb3x9ddfIywsDP369ct3v9e/GAaAmjVrwtraGk+fPi2rcImIiIgqFL1MCCYnJ2PMmDGwsrJCQEAApNKXPZstLS0BACkpKbC1tdUo/+r24pDL5XB2di5yeaVSiejoaDg6OsLMzKzYx6Xyx2tnmHjdDEuyKhXVbW2RrVIhMTERVlZWMJLLAQAKhSXsbWrrOEJ6E/7OGZ7IyEhdh6CVqKgofPDBBxrrFAoFbG1txWFiiurvv//G8+fP4eTkVJohEhEREVVYepcQzMjIwLhx45CSkoJdu3ahatWq4rb69esDePkAmfs6d1kul6NOnTrFPq5EIoG5ubnW+5mZmRVrP9I9XjvDxOtmGNLSMiD/XwIQAIzkcnFZZmTEa2hA+DtnOAypuzDw8gvd/Fr7WVpaajUMjCAImD9/Puzs7ODj41OimLQdQoZKLiMjQ/zJ954qOt7vRFTWtBlCRq8SgtnZ2ZgyZQqioqKwY8eOPGPH1KlTB46OjggNDUXXrl3F9SEhIfD09DSobjJEREREVHIBAQG4ePEi1q9fX+LkdXGHkKHii42NBfCylWdmZqaOoyEqW7zfiag8FDU3plcJwXnz5uH06dPw9/dHamoqrl27Jm5r1KgRjI2NMXnyZEybNg0ODg7w8PBASEgIIiIisH37dt0FTkRERERaUSgUSElJybM+KSmpyMPA7N69G0FBQViwYAE8PT1LHJO2Q8hQyZmYmAAA6tWrp9EDiKgi4v1ORGVNmyFk9CohGBYWBgBYvHhxnm0nT56Evb09fH19oVQqERwcjHXr1qFevXoIDAxEy5YtyztcIiIiIiqm+vXr5xkrMCUlBfHx8UX6oHz8+HHMnTsXn3zyCfr3718qMRV3CBkqPlNTU/En33uq6Hi/E1FZ02YIGb1KCJ46dapI5fz8/ODn51fG0RARERFRWenYsSPWrFmjMZZgaGgopFIp2rdvX+i+4eHh+Oyzz+Dn54eJEyeWR7hEREREFYpU1wEQERERUeUzaNAgVKlSBRMnTsQff/yBvXv3YsmSJRg0aJDGONIjRozAe++9Jy4/ePAAEydOhKOjI3r37o1r166J/x49eqSLUyEiIiIyOHrVQpCIiIiIKgdLS0ts2bIF3377LSZOnIgqVaqgf//+mDp1qka5nJwcqNVqcfn69etISUlBSkoKBg8erFG2b9+++Q49Q0RERESamBAkIiIiIp1wcnLC5s2bCy2zbds2jeV+/fqhX79+ZRgVERERUcXHLsNERERERERERESVCBOCRERERERERERElQgTgkRERERERERERJUIE4JERERERERERESVCBOCRERERERERERElQgTgkRERERERERERJUIE4JERERERERERESVCBOCRERERERERERElQgTgkRERERERERERJUIE4JERERERERERESVCBOCRERERERERERElQgTgkRERERERERERJUIE4JERERERERERESVCBOCRERERERERERElQgTgkREREREVO6USiV++eUXAMAvv/wCpVKp44iIiIgqDyNdB0BERERERJXL/PnzER4eLi6HhYUhLCwMHh4emD17tg4jIyIiqhzYQpCIiIiIiMrN68nAV4WHh2P+/PnlHBEREVHlo1cJwYcPH2LOnDno3bs3GjVqBF9f33zL7dmzB926dUPTpk3Rq1cvnD59upwjJSIiIiIibSmVygKTgbnCw8PZfZiIiKiM6VWX4fv37+PMmTNo3rw5cnJyIAhCnjKHDx/GV199hfHjx6Nt27YICQnBpEmTsGPHDrRo0aL8gyYiIiIiMgD//vsvUlNTdRrDjh07ilRuyZIlGDp0aBlHUzALCwvUrFlTZ8cnIiIqa3qVEPTy8kLXrl0BAP7+/rhx40aeMitXroSPjw+mTJkCAGjbti3u3buHoKAgBAcHl2e4REREREQGISkpCePGjUNOTo6uQymSy5cv4/Llyzo7vlQqxdatW2FpaamzGIiIiMqSXiUEpdLCezDHxMQgOjoa06dP11jfo0cPLFmyBFlZWTA2Ni7LEImIiIiIDI6lpSXWrl2r8xaCU6dOLXLZFStW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JbsMF+1v//79DBkyhOjoaIYPH853331X3YcsRJk2bNjAbbfdxi+//OJVnpWVRYcOHVi7di1HjhzhD3/4Az169CA6OprBgwezadOmmglY1HnlvZ/abDZefPFFevToQceOHRk8eDA7duz41X0ePnyYYcOG0bFjR89nQFm2b9/O4MGD6dixIz169ODFF1/EZrN51m/YsIHIyEgyMzO9tive/fhqnz/i2khCsITTp0/TunVrr7Lg4GAaNmzI6dOny90OKLVtmzZtuHDhAlar9cYHK7xU9tyV5cyZM2RkZNCmTZsbGaIow/WcN5fLxbx58/jDH/5AeHh4VYYpSqjseTt27BgOhwOj0cjDDz9M+/btSUhI4OWXX8bhcFR12ILKn7tbbrmFHj16sHz5ck6ePEleXh5btmwhLS1NumoIUUc98cQT9OrVi+bNm7Nu3TrWrVvHE088AbiHh5g/fz6PPPIIqampREVFYbVacblczJgxg9TUVJ588kkOHDjg2aY8ly5dYv78+UyYMIHXXnsNm83G1KlT5bND3BT69u2LwWBg27ZtXuXbt28H4N577+XChQvExMTwwgsv8MYbb3DPPfcwa9YsNm7cWBMhizrs195PZ86cybp163jsscdYtmwZbdu2Zdq0aezatavcfU6YMAGz2cxrr73GhAkTmDNnDunp6V71du3axfTp02nbti3Lli3jscceY+3atfy///f/rukYyvv8ERUnXYZLyMnJKXPMkpCQELKzs8vdzmw24+Pj41UeHByMrutkZ2fj6+t7w+MVV1T23JWk6zrz588nPDycAQMG3MgQRRmu57ytXr2agoICTzd9UX0qe96KfjmfNWsWI0aMYOrUqRw9epQlS5agqqq09KwG1/M/l5KSwowZMzzvjQaDgVmzZtGvX78qiVUIcXNr0aIFoaGhXLhwgejoaK912dnZpKam0rlzZ6/yOXPmeJadTifNmjVj9OjRnDlzhlatWl31ubKzs3n//ff53e9+B4Cfnx+///3v+eabb4iLi7txByVEJQQFBdGrVy82b97Mww8/7CnfvHkzCQkJ1KtXz+t7ha7rdO3alfT0dNatW8fQoUNrImxRR5X3fhoYGMj27duZM2cOo0aNAqBnz56cP3+eZcuW0adPnzL3uWrVKhRFITU11dObpHHjxqW+py1dupTo6GgWLVrk2befnx/Jycn8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tmTLli0cP36cefPmXbV13NW0b9+effv28c477xAeHk6zZs3KHPevpFmzZpGdnc0dd9xBo0aNuHDhAu+//z5RUVGecZsnTZrEJ598wsSJExk7diwhISFs2rSJc+fOkZKS4hkj+ne/+x3R0dG8+uqrZGdnExISwpYtW3A6nRU+jopcI95+++2MHDmSN998k+PHj5OQkIDJZOLs2bNs27aNP//5z9x7773X9PoJIW5ekhAUQtS4Ll26YDAY8PX1pV27dp7yooRg8SQhwP333094eDhvvfUWK1aswG6306hRI+Li4rxmVFu0aBHz5s1j9erV6LpOQkICqamp3HnnnV7769SpE08++SRr167liy++QNM0du3adU0JwQYNGvD3v/+dZcuWsWPHDtasWUO9evVo27YtM2fOrOQr4y0xMZHz58/z0UcfcfnyZerXr8/tt9/OtGnTCAoKAtyt91JTU3njjTfYvHkz27dvp169esTExHh+lVZVlTfeeIMlS5awZcsWNmzYQNOmTfnTn/7E+PHjb5rjFUIIIYQoztfXl4ceeoi0tDS2b9+Oruu0aNGC559/ntGjR3vqhYSEsGDBAubPn8/69etp0KABycnJjBgx4pqfMykpieTkZF577TWsVitDhw6tUEJw0KBBrF+/ntWrV5OTk0PDhg3p378/06ZN8yT6GjRowNq1a3n55Zd5//33sdlsREZGsnz5cnr37u21v1deeYXk5GTeeustgoODGT58ON26dePRRx+t0HFU5BoRYO7cuXTo0IG1a9eyePFiDAYDTZs2ZdCgQcTExFT8hRNC3PQU/VpG1hdCCCGEEEIIIW5SY8eO5fLly2zevLmmQxFCiJuajCEohBBCCCGEEEIIIUQdIl2GhRDiJnDp0qVy1/v6+nq6BQshhBBCiJrhcrl+dQI1f39/AgICqikiIYSoHEkICiHETaBHjx7lrh86dCgLFiyopmiEEEIIIURZfv75Z/r06VNunalTpzJt2rRqikgIISpHxhAUQoibwN69e8tdHx4eTtu2baspGiGEEEIIURabzcahQ4fKrdO8eXOaN29eTREJIUTlSEJQCCGEEEIIIYQQQog6RCYVEUIIIYQQQgghhBCiDpGEoBBCCCGEEEIIIYQQdYgkBIUQQgghhBBCCCGEqEMkISiEEEIIIYQQQgghRB0iCUEhhBBCCCGEEEIIIeoQSQgKIYQQQgghhBBCCFGHSEJQCCGEEEIIIYQQQog6RBKCQgghhBBCCCGEEELUIf8firFPv/rrodwAAAAASUVORK5CYII=",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "ename": "LinAlgError",
+ "evalue": "The data appears to lie in a lower-dimensional subspace of the space in which it is expressed. This has resulted in a singular data covariance matrix, which cannot be treated using the algorithms implemented in `gaussian_kde`. Consider performing principal component analysis / dimensionality reduction and using `gaussian_kde` with the transformed data.",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[31m---------------------------------------------------------------------------\u001b[39m",
+ "\u001b[31mLinAlgError\u001b[39m Traceback (most recent call last)",
+ "\u001b[36mFile \u001b[39m\u001b[32m~/firebot-eval/.venv/lib/python3.14/site-packages/scipy/stats/_kde.py:236\u001b[39m, in \u001b[36mgaussian_kde.__init__\u001b[39m\u001b[34m(self, dataset, bw_method, weights)\u001b[39m\n\u001b[32m 235\u001b[39m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[32m--> \u001b[39m\u001b[32m236\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mset_bandwidth\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbw_method\u001b[49m\u001b[43m=\u001b[49m\u001b[43mbw_method\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 237\u001b[39m \u001b[38;5;28;01mexcept\u001b[39;00m linalg.LinAlgError \u001b[38;5;28;01mas\u001b[39;00m e:\n",
+ "\u001b[36mFile \u001b[39m\u001b[32m~/firebot-eval/.venv/lib/python3.14/site-packages/scipy/stats/_kde.py:579\u001b[39m, in \u001b[36mgaussian_kde.set_bandwidth\u001b[39m\u001b[34m(self, bw_method)\u001b[39m\n\u001b[32m 577\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(msg)\n\u001b[32m--> \u001b[39m\u001b[32m579\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_compute_covariance\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n",
+ "\u001b[36mFile \u001b[39m\u001b[32m~/firebot-eval/.venv/lib/python3.14/site-packages/scipy/stats/_kde.py:591\u001b[39m, in \u001b[36mgaussian_kde._compute_covariance\u001b[39m\u001b[34m(self)\u001b[39m\n\u001b[32m 588\u001b[39m \u001b[38;5;28mself\u001b[39m._data_covariance = atleast_2d(cov(\u001b[38;5;28mself\u001b[39m.dataset, rowvar=\u001b[32m1\u001b[39m,\n\u001b[32m 589\u001b[39m bias=\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[32m 590\u001b[39m aweights=\u001b[38;5;28mself\u001b[39m.weights))\n\u001b[32m--> \u001b[39m\u001b[32m591\u001b[39m \u001b[38;5;28mself\u001b[39m._data_cho_cov = \u001b[43mlinalg\u001b[49m\u001b[43m.\u001b[49m\u001b[43mcholesky\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_data_covariance\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 592\u001b[39m \u001b[43m \u001b[49m\u001b[43mlower\u001b[49m\u001b[43m=\u001b[49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n\u001b[32m 594\u001b[39m \u001b[38;5;28mself\u001b[39m.covariance = \u001b[38;5;28mself\u001b[39m._data_covariance * \u001b[38;5;28mself\u001b[39m.factor**\u001b[32m2\u001b[39m\n",
+ "\u001b[36mFile \u001b[39m\u001b[32m~/firebot-eval/.venv/lib/python3.14/site-packages/scipy/_lib/_util.py:1181\u001b[39m, in \u001b[36m_apply_over_batch..decorator..wrapper\u001b[39m\u001b[34m(*args, **kwargs)\u001b[39m\n\u001b[32m 1180\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28many\u001b[39m(batch_shapes):\n\u001b[32m-> \u001b[39m\u001b[32m1181\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mf\u001b[49m\u001b[43m(\u001b[49m\u001b[43m*\u001b[49m\u001b[43marrays\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43mother_args\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 1183\u001b[39m \u001b[38;5;66;03m# Determine broadcasted batch shape\u001b[39;00m\n",
+ "\u001b[36mFile \u001b[39m\u001b[32m~/firebot-eval/.venv/lib/python3.14/site-packages/scipy/linalg/_decomp_cholesky.py:106\u001b[39m, in \u001b[36mcholesky\u001b[39m\u001b[34m(a, lower, overwrite_a, check_finite)\u001b[39m\n\u001b[32m 52\u001b[39m \u001b[38;5;250m\u001b[39m\u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m 53\u001b[39m \u001b[33;03mCompute the Cholesky decomposition of a matrix.\u001b[39;00m\n\u001b[32m 54\u001b[39m \n\u001b[32m (...)\u001b[39m\u001b[32m 104\u001b[39m \n\u001b[32m 105\u001b[39m \u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m106\u001b[39m c, lower = \u001b[43m_cholesky\u001b[49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlower\u001b[49m\u001b[43m=\u001b[49m\u001b[43mlower\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43moverwrite_a\u001b[49m\u001b[43m=\u001b[49m\u001b[43moverwrite_a\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mclean\u001b[49m\u001b[43m=\u001b[49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[32m 107\u001b[39m \u001b[43m \u001b[49m\u001b[43mcheck_finite\u001b[49m\u001b[43m=\u001b[49m\u001b[43mcheck_finite\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 108\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m c\n",
+ "\u001b[36mFile \u001b[39m\u001b[32m~/firebot-eval/.venv/lib/python3.14/site-packages/scipy/linalg/_decomp_cholesky.py:39\u001b[39m, in \u001b[36m_cholesky\u001b[39m\u001b[34m(a, lower, overwrite_a, clean, check_finite)\u001b[39m\n\u001b[32m 38\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m info > \u001b[32m0\u001b[39m:\n\u001b[32m---> \u001b[39m\u001b[32m39\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m LinAlgError(\n\u001b[32m 40\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00minfo\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m-th leading minor of the array is not positive definite\u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 41\u001b[39m )\n\u001b[32m 42\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m info < \u001b[32m0\u001b[39m:\n",
+ "\u001b[31mLinAlgError\u001b[39m: 1-th leading minor of the array is not positive definite",
+ "\nThe above exception was the direct cause of the following exception:\n",
+ "\u001b[31mLinAlgError\u001b[39m Traceback (most recent call last)",
+ "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[5]\u001b[39m\u001b[32m, line 4\u001b[39m\n\u001b[32m 1\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m col \u001b[38;5;28;01min\u001b[39;00m NUMERIC_COLUMNS:\n\u001b[32m 2\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m col \u001b[38;5;28;01min\u001b[39;00m df.columns:\n\u001b[32m 3\u001b[39m fig, ax = plt.subplots(\u001b[32m1\u001b[39m, \u001b[32m2\u001b[39m, figsize=(\u001b[32m13\u001b[39m, \u001b[32m4\u001b[39m))\n\u001b[32m----> \u001b[39m\u001b[32m4\u001b[39m sns.histplot(data=df, x=col, hue=\u001b[33m\"split_source\"\u001b[39m, kde=\u001b[38;5;28;01mTrue\u001b[39;00m, ax=ax[\u001b[32m0\u001b[39m], stat=\u001b[33m\"density\"\u001b[39m, common_norm=\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[32m 5\u001b[39m sns.boxplot(data=df, x=\u001b[33m\"split_source\"\u001b[39m, y=col, ax=ax[\u001b[32m1\u001b[39m])\n\u001b[32m 6\u001b[39m ax[\u001b[32m0\u001b[39m].set_title(f\"Distribution: {col}\")\n\u001b[32m 7\u001b[39m ax[\u001b[32m1\u001b[39m].set_title(f\"Boxplot by split: {col}\")\n",
+ "\u001b[36mFile \u001b[39m\u001b[32m~/firebot-eval/.venv/lib/python3.14/site-packages/seaborn/distributions.py:1416\u001b[39m, in \u001b[36mhistplot\u001b[39m\u001b[34m(data, x, y, hue, weights, stat, bins, binwidth, binrange, discrete, cumulative, common_bins, common_norm, multiple, element, fill, shrink, kde, kde_kws, line_kws, thresh, pthresh, pmax, cbar, cbar_ax, cbar_kws, palette, hue_order, hue_norm, color, log_scale, legend, ax, **kwargs)\u001b[39m\n\u001b[32m 1405\u001b[39m estimate_kws = \u001b[38;5;28mdict\u001b[39m(\n\u001b[32m 1406\u001b[39m stat=stat,\n\u001b[32m 1407\u001b[39m bins=bins,\n\u001b[32m (...)\u001b[39m\u001b[32m 1411\u001b[39m cumulative=cumulative,\n\u001b[32m 1412\u001b[39m )\n\u001b[32m 1414\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m p.univariate:\n\u001b[32m-> \u001b[39m\u001b[32m1416\u001b[39m \u001b[43mp\u001b[49m\u001b[43m.\u001b[49m\u001b[43mplot_univariate_histogram\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 1417\u001b[39m \u001b[43m \u001b[49m\u001b[43mmultiple\u001b[49m\u001b[43m=\u001b[49m\u001b[43mmultiple\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1418\u001b[39m \u001b[43m \u001b[49m\u001b[43melement\u001b[49m\u001b[43m=\u001b[49m\u001b[43melement\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1419\u001b[39m \u001b[43m \u001b[49m\u001b[43mfill\u001b[49m\u001b[43m=\u001b[49m\u001b[43mfill\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1420\u001b[39m \u001b[43m \u001b[49m\u001b[43mshrink\u001b[49m\u001b[43m=\u001b[49m\u001b[43mshrink\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1421\u001b[39m \u001b[43m \u001b[49m\u001b[43mcommon_norm\u001b[49m\u001b[43m=\u001b[49m\u001b[43mcommon_norm\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1422\u001b[39m \u001b[43m \u001b[49m\u001b[43mcommon_bins\u001b[49m\u001b[43m=\u001b[49m\u001b[43mcommon_bins\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1423\u001b[39m \u001b[43m \u001b[49m\u001b[43mkde\u001b[49m\u001b[43m=\u001b[49m\u001b[43mkde\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1424\u001b[39m \u001b[43m \u001b[49m\u001b[43mkde_kws\u001b[49m\u001b[43m=\u001b[49m\u001b[43mkde_kws\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1425\u001b[39m \u001b[43m \u001b[49m\u001b[43mcolor\u001b[49m\u001b[43m=\u001b[49m\u001b[43mcolor\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1426\u001b[39m \u001b[43m \u001b[49m\u001b[43mlegend\u001b[49m\u001b[43m=\u001b[49m\u001b[43mlegend\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1427\u001b[39m \u001b[43m \u001b[49m\u001b[43mestimate_kws\u001b[49m\u001b[43m=\u001b[49m\u001b[43mestimate_kws\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1428\u001b[39m \u001b[43m \u001b[49m\u001b[43mline_kws\u001b[49m\u001b[43m=\u001b[49m\u001b[43mline_kws\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1429\u001b[39m \u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 1430\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 1432\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m 1434\u001b[39m p.plot_bivariate_histogram(\n\u001b[32m 1435\u001b[39m common_bins=common_bins,\n\u001b[32m 1436\u001b[39m common_norm=common_norm,\n\u001b[32m (...)\u001b[39m\u001b[32m 1446\u001b[39m **kwargs,\n\u001b[32m 1447\u001b[39m )\n",
+ "\u001b[36mFile \u001b[39m\u001b[32m~/firebot-eval/.venv/lib/python3.14/site-packages/seaborn/distributions.py:447\u001b[39m, in \u001b[36m_DistributionPlotter.plot_univariate_histogram\u001b[39m\u001b[34m(self, multiple, element, fill, common_norm, common_bins, shrink, kde, kde_kws, color, legend, line_kws, estimate_kws, **plot_kws)\u001b[39m\n\u001b[32m 445\u001b[39m kde_kws.setdefault(\u001b[33m\"\u001b[39m\u001b[33mcut\u001b[39m\u001b[33m\"\u001b[39m, \u001b[32m0\u001b[39m)\n\u001b[32m 446\u001b[39m kde_kws[\u001b[33m\"\u001b[39m\u001b[33mcumulative\u001b[39m\u001b[33m\"\u001b[39m] = estimate_kws[\u001b[33m\"\u001b[39m\u001b[33mcumulative\u001b[39m\u001b[33m\"\u001b[39m]\n\u001b[32m--> \u001b[39m\u001b[32m447\u001b[39m densities = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_compute_univariate_density\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 448\u001b[39m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mdata_variable\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 449\u001b[39m \u001b[43m \u001b[49m\u001b[43mcommon_norm\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 450\u001b[39m \u001b[43m \u001b[49m\u001b[43mcommon_bins\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 451\u001b[39m \u001b[43m \u001b[49m\u001b[43mkde_kws\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 452\u001b[39m \u001b[43m \u001b[49m\u001b[43mwarn_singular\u001b[49m\u001b[43m=\u001b[49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[32m 453\u001b[39m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 455\u001b[39m \u001b[38;5;66;03m# First pass through the data to compute the histograms\u001b[39;00m\n\u001b[32m 456\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m sub_vars, sub_data \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m.iter_data(\u001b[33m\"\u001b[39m\u001b[33mhue\u001b[39m\u001b[33m\"\u001b[39m, from_comp_data=\u001b[38;5;28;01mTrue\u001b[39;00m):\n\u001b[32m 457\u001b[39m \n\u001b[32m 458\u001b[39m \u001b[38;5;66;03m# Prepare the relevant data\u001b[39;00m\n",
+ "\u001b[36mFile \u001b[39m\u001b[32m~/firebot-eval/.venv/lib/python3.14/site-packages/seaborn/distributions.py:313\u001b[39m, in \u001b[36m_DistributionPlotter._compute_univariate_density\u001b[39m\u001b[34m(self, data_variable, common_norm, common_grid, estimate_kws, warn_singular)\u001b[39m\n\u001b[32m 311\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m common_grid:\n\u001b[32m 312\u001b[39m all_observations = \u001b[38;5;28mself\u001b[39m.comp_data.dropna()\n\u001b[32m--> \u001b[39m\u001b[32m313\u001b[39m \u001b[43mestimator\u001b[49m\u001b[43m.\u001b[49m\u001b[43mdefine_support\u001b[49m\u001b[43m(\u001b[49m\u001b[43mall_observations\u001b[49m\u001b[43m[\u001b[49m\u001b[43mdata_variable\u001b[49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 314\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m 315\u001b[39m common_norm = \u001b[38;5;28;01mFalse\u001b[39;00m\n",
+ "\u001b[36mFile \u001b[39m\u001b[32m~/firebot-eval/.venv/lib/python3.14/site-packages/seaborn/_statistics.py:128\u001b[39m, in \u001b[36mKDE.define_support\u001b[39m\u001b[34m(self, x1, x2, weights, cache)\u001b[39m\n\u001b[32m 126\u001b[39m \u001b[38;5;250m\u001b[39m\u001b[33;03m\"\"\"Create the evaluation grid for a given data set.\"\"\"\u001b[39;00m\n\u001b[32m 127\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m x2 \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[32m--> \u001b[39m\u001b[32m128\u001b[39m support = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_define_support_univariate\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx1\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mweights\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 129\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[32m 130\u001b[39m support = \u001b[38;5;28mself\u001b[39m._define_support_bivariate(x1, x2, weights)\n",
+ "\u001b[36mFile \u001b[39m\u001b[32m~/firebot-eval/.venv/lib/python3.14/site-packages/seaborn/_statistics.py:100\u001b[39m, in \u001b[36mKDE._define_support_univariate\u001b[39m\u001b[34m(self, x, weights)\u001b[39m\n\u001b[32m 98\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34m_define_support_univariate\u001b[39m(\u001b[38;5;28mself\u001b[39m, x, weights):\n\u001b[32m 99\u001b[39m \u001b[38;5;250m \u001b[39m\u001b[33;03m\"\"\"Create a 1D grid of evaluation points.\"\"\"\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m100\u001b[39m kde = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_fit\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mweights\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 101\u001b[39m bw = np.sqrt(kde.covariance.squeeze())\n\u001b[32m 102\u001b[39m grid = \u001b[38;5;28mself\u001b[39m._define_support_grid(\n\u001b[32m 103\u001b[39m x, bw, \u001b[38;5;28mself\u001b[39m.cut, \u001b[38;5;28mself\u001b[39m.clip, \u001b[38;5;28mself\u001b[39m.gridsize\n\u001b[32m 104\u001b[39m )\n",
+ "\u001b[36mFile \u001b[39m\u001b[32m~/firebot-eval/.venv/lib/python3.14/site-packages/seaborn/_statistics.py:143\u001b[39m, in \u001b[36mKDE._fit\u001b[39m\u001b[34m(self, fit_data, weights)\u001b[39m\n\u001b[32m 140\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m weights \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[32m 141\u001b[39m fit_kws[\u001b[33m\"\u001b[39m\u001b[33mweights\u001b[39m\u001b[33m\"\u001b[39m] = weights\n\u001b[32m--> \u001b[39m\u001b[32m143\u001b[39m kde = \u001b[43mgaussian_kde\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfit_data\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mfit_kws\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 144\u001b[39m kde.set_bandwidth(kde.factor * \u001b[38;5;28mself\u001b[39m.bw_adjust)\n\u001b[32m 146\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m kde\n",
+ "\u001b[36mFile \u001b[39m\u001b[32m~/firebot-eval/.venv/lib/python3.14/site-packages/scipy/stats/_kde.py:245\u001b[39m, in \u001b[36mgaussian_kde.__init__\u001b[39m\u001b[34m(self, dataset, bw_method, weights)\u001b[39m\n\u001b[32m 237\u001b[39m \u001b[38;5;28;01mexcept\u001b[39;00m linalg.LinAlgError \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[32m 238\u001b[39m msg = (\u001b[33m\"\u001b[39m\u001b[33mThe data appears to lie in a lower-dimensional subspace \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 239\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mof the space in which it is expressed. This has resulted \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 240\u001b[39m \u001b[33m\"\u001b[39m\u001b[33min a singular data covariance matrix, which cannot be \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m (...)\u001b[39m\u001b[32m 243\u001b[39m \u001b[33m\"\u001b[39m\u001b[33manalysis / dimensionality reduction and using \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 244\u001b[39m \u001b[33m\"\u001b[39m\u001b[33m`gaussian_kde` with the transformed data.\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m--> \u001b[39m\u001b[32m245\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m linalg.LinAlgError(msg) \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01me\u001b[39;00m\n",
+ "\u001b[31mLinAlgError\u001b[39m: The data appears to lie in a lower-dimensional subspace of the space in which it is expressed. This has resulted in a singular data covariance matrix, which cannot be treated using the algorithms implemented in `gaussian_kde`. Consider performing principal component analysis / dimensionality reduction and using `gaussian_kde` with the transformed data."
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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8yPr/AzVXFJUqVEoFKKzs3PAent7e1RUVBx13w9/+MOYNm1aXHHFFdHR0REREUeOHIkjR45ER0dHjB07NkaNKq1fqaysjDFjxpS0l+PX1dUVO3fulHdO5J0fWedL3vnZtm3byT7CkDOXDF+eS/Ij63zJOz+yztdQziVFvWJXVVUNuEa1s7Mz9u7dO+Ca1o/bsWNH/PKXv4wrr7xywP935ZVXxjPPPBO1tbXFHKXPmDFjYuzYsSXtpXjyzpe88yPrfMl76J3ul55EmEuQd55knS9550fW+RjKuaSoUqO2tjZWrVrV7xrWTZs2xYgRI6Kmpuao+773ve/1/SbkIw899FCMHj06Fi1aFNOmTSvh6ADAcGYuAQCKKjXmzZsX69ati8bGxmhoaIjdu3dHU1NTzJs3r99nwdfX18euXbti8+bNERExffr0AfdVKBRi7NixcdVVVw3yIQAAw5G5BAAo6iNdKyoqYu3atTFy5MhobGyMRx99NObMmROLFy/ud7ve3t7o6ek5oQcFAPg4cwkAUPS7YE2ZMiXWrFlzzNusW7fuU+/neG4DAHAs5hIAGN6K+ksNAAAAgFOFUgMAAABIklIDAAAASJJSAwAAAEiSUgMAAABIklIDAAAASJJSAwAAAEiSUgMAAABIklIDAAAASJJSAwAAAEiSUgMAAABIklIDAAAASJJSAwAAAEiSUgMAAABIklIDAAAASJJSAwAAAEiSUgMAAABIklIDAAAASJJSAwAAAEiSUgMAAABIklIDAAAASJJSAwAAAEiSUgMAAABIklIDAAAASJJSAwAAAEiSUgMAAABIklIDAAAASJJSAwAAAEiSUgMAAABIklIDAAAASJJSAwAAAEiSUgMAAABIklIDAAAASJJSAwAAAEiSUgMAAABIklIDAAAASJJSAwAAAEiSUgMAAABIklIDAAAASJJSAwAAAEiSUgMAAABIklIDAAAASJJSAwAAAEiSUgMAAABIklIDAAAASJJSAwAAAEiSUgMAAABIklIDAAAASNKoYjds3749HnjggXjzzTdj3LhxccMNN8Rf/uVfRnl5+VH37NmzJ9asWRNbtmyJ9957L84888y48sorY9GiRXH++ecP6gEAAMOXuQQAhreiSo329vaor6+PysrKaG5ujt27d8eKFSvi4MGDsWTJkqPu27p1a2zevDluuummuOSSS+KD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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "for col in NUMERIC_COLUMNS:\n",
+ " if col in df.columns:\n",
+ " fig, ax = plt.subplots(1, 2, figsize=(13, 4))\n",
+ " sns.histplot(data=df, x=col, hue=\"split_source\", kde=True, ax=ax[0], stat=\"density\", common_norm=False)\n",
+ " sns.boxplot(data=df, x=\"split_source\", y=col, ax=ax[1])\n",
+ " ax[0].set_title(f\"Distribution: {col}\")\n",
+ " ax[1].set_title(f\"Boxplot by split: {col}\")\n",
+ " plt.tight_layout()\n",
+ " plt.show()\n",
+ "\n",
+ "\n",
+ "sns.histplot(\n",
+ " data=df,\n",
+ " x=col,\n",
+ " hue=\"split_source\",\n",
+ " kde=False, # 🔥 turn this off\n",
+ " ax=ax[0],\n",
+ " stat=\"density\",\n",
+ " common_norm=False\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "b318d05e",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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io+GDh2qBx98MNdtu3fvroiIiJvu/6efflJERITatm2rwMBAderUSZMnT7asN8df0dHReuedd9SxY0cFBgZq6NChOnz48C3rf+3798knn2js2LGSpEceecTyXjP0JADcmnlehBMnTlgtP3r0qOWa1KJFC/Xr109bt2612T4pKUkzZ85Up06d1Lx5c4WGhupf//qXVVvz4sWLmjJliu655x61aNFCDz74oNatW2e1n+uvC126dFGLFi109OhRSXm/5t/Ihx9+qC5duigwMFD9+/fXnj17bOYyyG2+Ayn3eGfPnj0aM2aM7rvvPkt7fubMmVYx1Y3k9Ro2ceJEtW3bVpmZmTb7GDZsmLp3737TY5jbzO3bt79pGzojI0Ovv/66+vXrpzvvvFOtWrXSww8/nOtQon/99Zeef/55tW7dWnfddZcmTpyo33777Yb3VHJz5coVRUZGqm3btmrdurX+9a9/KTEx0bK+MOctSceOHdPo0aMVHBysFi1aKDQ0VOPHj1dycrKlTEBAgF566SV99tln6t69u+U7/v3339+y/td+b7777jv1799fkjR58mTL55fX9wKOiR4YQBGoU6eO9u3bp8OHD8vf3/+mZd988029/vrr6tGjh/r376+EhAStXLlSQ4YM0fr16+Xl5aWwsDCtWrVKX3/9tXr06GHZNi0tTV999ZX69u0rV1dXSVcngJo0aZJCQkI0YcIEpaWlafXq1Xr44Ye1bt06q+6OWVlZioiI0J133qmJEyeqQoUKNvXz8fHR9OnTNX36dHXt2tUyhEVAQIDq1q2rl156SRs2bFDTpk2tttuwYYPatGmjmjVr3vL9GjdunOrUqaPnnntOP/74o9577z0lJSVZbirkx7lz59S/f38lJydr4MCB8vPz07lz5/TFF1/oypUruWbiExISNGzYMCUmJmrlypWqX7++cnJy9PTTT+uHH37QwIED1ahRIx0+fFgrVqzQsWPH9MYbb0iS5syZo6lTpyowMFADBw6UJNWvX/+W9XzzzTdlMpk0fPhwXbx4UStWrNBjjz2mTz/9VBUqVFDv3r21ePFixcTEaOjQoZbtMjIy9MUXX6hbt243faJ29OjROnLkiIYOHao6deooISFBu3bt0pkzZ6y+A8eOHdP48eP10EMPqW/fvlq7dq3Gjh2r5cuXKzg4OE/v+c2+IwCAwrnzzjv16aefav/+/ZYh+vbu3augoCC1bt1aycnJOnz4sO644w7LOj8/P1WtWvWm+01MTNQTTzyhrl27qkePHvriiy80d+5c+fv7WxIFV65c0aOPPqozZ84oPDxcNWrU0KeffpprYzk3hw4dUkREhHx8fDR69GhlZWVp4cKFuT7McSMvvviifHx8NHLkSKWmpkrKe6zz22+/aciQISpXrpwGDRqkOnXq6I8//tC2bds0fvx4de3aVceOHdPGjRs1efJky3vm4+OTa13+/PNPPfTQQ0pLS1N4eLiqVq2qdevW6emnn7Y88HCtqKgomUwmDRs2TCkpKVq+fLkmTJigjz76KE/nfqv4qHfv3po6dapNvHngwAEdO3ZMTz/99A33ffHiRUVERKhq1aoaMWKEvLy8dPLkyVznW1m/fr0uX76shx9+WOnp6Xrvvff06KOPasOGDbrtttvydC533323wsPD9d577+mpp56Sn5+fJKlRo0Z52h4AyrJTp05JktUDkr///rsGDx6smjVravjw4fL09NSmTZs0cuRILVy40HJNunz5soYMGaKjR4/qn//8p5o2baq//vpL27Zt07lz5+Tj46MrV64oPDxcf/zxh4YMGaK6desqNjZWkyZNUlJSkh599FGr+nzyySdKT0/XwIED5e7uLm9v70Jf8z/66CNFRkYqKChIjz76qE6cOKGnn35a3t7eqlWrVoHet9jYWF25ckWDBw9WlSpVdODAAa1cuVJnz57VggUL8ryfm13DevfurfXr12vnzp3q2LGjZZsLFy7o22+/1ciRI2+43ylTpmj9+vX68ssvNX36dHl6et6wDZ2SkqKPPvpIvXr10oABA3T58mV9/PHHeuKJJ/TRRx9ZhkUy38c4cOCABg8eLD8/P23dulUTJ07M8/lKVx+i9fLy0qhRoxQfH6/Vq1fr9OnTeu+992QymQp13hkZGYqIiFBGRoaGDh2q2267TefOndPXX3+tpKQkq94o33//vWJiYhQeHi53d3etXr3acs63utdm1qhRI40ZM0YLFizQoEGDLL2UzQ/7wEkZAApt586dRpMmTYwmTZoYgwYNMubMmWN88803RkZGhlW5kydPGk2aNDHefPNNq+WHDh0ymjZtalmek5NjdOjQwRg9erRVuZiYGMPf39/4/vvvDcMwjJSUFOOuu+4ypk6dalXuwoULxp133mm1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B9WoUSNPjf3c4g5HdP18T/mNdezpRjGW+RzyK7d4KCQkRLfddps+++wz3X333frss89UvXp13XPPPbfc14IFC/Tjjz/qq6++0jfffKMpU6bo7bff1ocffqiKFSsWqI4AgMILDAy0jCjQpUsXPfzww3ruuecUGxurihUrKicnR9LVyZI7dOiQ6z7ye8M6P3KbO7Ok3OjegPk9McvOztbjjz9umfPLz89Pnp6eOnfunCZNmmRTvjAaN26sZs2a6bPPPlOfPn302Wefyc3NzWr+0sL69NNPNWnSJHXp0kURERGqVq2aXF1dtXTp0jz37CxqhTnvSZMmqW/fvtq6dat27dqlGTNmaOnSpVqzZk2J3GuB8yOBARQjc9e38+fPS7oaVBiGobp16+bpacYePXro3XffVUpKimJiYlSnTh21atXKst58w6JatWq3bLjmx62GWujdu7feeustbdu2TTt27JCPj0++hoc4fvy41c2W48ePKycnx/Ikgbe3tyTbJxavfxLEx8dHlSpV0u+//56n4w4dOlT169fXggULVLlyZY0YMcKyrn79+vrtt9/Uvn37Ag81cTPHjx+3em0Yho4fP24zaVfv3r31zDPP6MCBA5bJ0vPaw6R+/foaNmyYhg0bpmPHjqlPnz566623NHfuXKt6GIZhdY7mp1uvHVLrVorjPQIAXGXuUfHDDz9o7969Vr0PmjdvLnd3d3333Xc6cOCAQkNDi+y4derU0eHDh22uE/Hx8bfc1sfHRxUqVLC53uV1+xvJa6xjLnf48OGb7i8/16/atWvnWve4uDjL+qJ0q/hIupqw6dWrl9atW6cJEyZoy5YtNsNu3UyrVq3UqlUrjR8/Xhs2bNCECRMUExOjAQMGWB33eseOHctXnCARKwBAQbi6uurZZ5/VI488olWrVmnEiBGWa4Obm9st2/3169e/Zfu4Tp06OnTokHJycqyS73m9vhX2mm/e//Hjx61GQMjMzNTJkyd1xx13WJaZezMmJydb7ePangHS1ev/sWPH9Morr6hPnz6W5bt27bplfXJzq2tYnz59NHv2bJ0/f14bN27UfffdZ7mPURS++OIL1atXT4sWLbKqy/WTkdeuXVvfffed0tLSrHphXDssdV4cP37cMny2dHUy+AsXLtjEmYU574CAAAUEBOiZZ57R3r17NXjwYK1evVrjx4+3qsf1jh07Jg8PD6thzG6FGKT0YQ4MoAh8++23uT5dZ+46aR5qoFu3bnJ1ddWiRYtsyhuGob/++stqWVhYmDIyMrRu3Tp98803NpntDh06qFKlSlq6dGmu4xknJCQU6HzMF74bDXlwxx13KCAgQB9//LE2b96snj17Wg1/dSvmoS/MVq5cKUmWi2OlSpVUtWpV7dmzx6rc+++/b/XaxcVFXbp00VdffaWffvrJ5ji5fSYjR47UsGHD9Oqrr1rtr0ePHjp37pzWrFljs82VK1eUmppqee3p6Znn4SDM1q9fb9VtNTY2NteAIDQ0VFWrVtXy5cv1/fff56n3RVpamtLT062W1a9fXxUrVlRGRobV8vPnz+vLL7+0vE5JSdH69evVpEmTfHXHvNV3BABQcM2bN1f58uW1YcMGnTt3zqoHhru7u5o1a6b3339fqampeRo+Kq9CQ0N1/vx5xcbGWpalpaXlem28nqurq0JCQrRlyxarBw6OHj2qnTt3FrhOeY11fHx8dPfdd2vt2rU2DzxcGw+Yr1/X3wjJzb333qsDBw5o3759lmWpqalas2aN6tSpo8aNGxfonG7kVvGRWe/evZWYmKjIyEilpqbmKVZITEy0iYuaNGkiSTaxwpYtWyxjqUvSgQMHtH///nwny/LzXgMA/ta2bVsFBgZqxYoVSk9PV7Vq1dSmTRt9+OGHlocjr3Vtu79bt2767bffrNp8ZubrQGhoqC5cuKCYmBjLuqysLL333nvy9PTU3XfffdP6Ffaa37x5c/n4+OiDDz6wugatW7fOpn1p7lly7bwc2dnZNrGJORFz7bXOMAy9++67t6xPbm51DevVq5dMJpP+7//+TydOnCjUiBS5MT+YcO357N+/Xz/++KNVuZCQEGVmZlq9Hzk5OTYxxa18+OGHVnHW6tWrlZWVZXPtL8h5p6SkKCsry2qZv7+/XFxcbGKQffv26ZdffrG8PnPmjLZu3arg4OB89brlfkXpQw8MoAjMmDFDaWlp6tq1q/z8/JSZmam9e/dq06ZNqlOnjvr16yfp6sV33LhxevXVV3Xq1Cl16dJFFStW1MmTJy1P0EVERFj226xZMzVo0EDz5s1TRkaG1fBR0tUb/dOnT9e//vUv9evXT2FhYfLx8dHp06e1fft2tW7dWpGRkfk+nwoVKqhx48batGmTGjZsqCpVqugf//iH1TjPffr00SuvvCJJ+b5Ynzx5Uk899ZQ6dOigH3/8UZ999pl69epl9aTFgAEDtGzZMv373/9W8+bNtWfPnlyf5nj22We1a9cuhYeHa+DAgWrUqJEuXLig2NhYvf/++5YnNq41ceJEpaSk6KWXXlLFihXVu3dv9e7dW5s2bdILL7yg7777Tq1bt1Z2drbi4uIUGxur5cuXW7r1NmvWTLt379bbb7+tGjVqqG7durmOkX0tb29vPfzww+rXr58uXryoFStWqEGDBjYTo7q5ualnz55auXKlXF1d1bNnz1u+n8eOHdNjjz2m+++/X40bN5arq6u2bNmiP//802b7hg0b6t///rd++uknVatWTWvXrtXFixc1a9asWx7nWnn5jgAACsY8wfaePXvk7u5uNZmhdHUYqbfeektS3ua/yKuBAwdq1apVmjhxon755RdVr15dn376aZ6Hjhg9erS++eYbDRkyRIMHD1Z2drZWrlypxo0bW821kR/5iXWmTp2qwYMHq2/fvho0aJDq1q2rU6dO6euvv9ann34q6eo1XJLmzZunsLAwubm5qWPHjrlOgD1ixAh9/vnnGj58uMLDw+Xt7a3169fr5MmTWrhwYaGH5bxeXuIjSWratKn8/f0VGxurRo0aWc7pZtatW6fVq1erS5cuql+/vi5fvqw1a9aoUqVKNjcn6tevr8GDB2vw4MHKyMjQu+++qypVquiJJ57I1/k0adJErq6uioqKUnJystzd3dWuXTtVq1YtX/sBgLIoIiJCY8eO1SeffKLBgwfrhRde0MMPP6wHHnhAAwcOVL169fTnn3/qxx9/1NmzZ/XZZ59Ztvviiy80duxY/fOf/1SzZs2UmJiobdu26cUXX9Qdd9yhQYMG6cMPP9SkSZP0yy+/qE6dOvriiy+0d+9eTZkyJU9zWxbmmu/m5qZx48YpMjJSjz76qMLCwnTy5El98sknNsNi/uMf/1CrVq302muvKTExUd7e3oqJibG5Ie7n56f69evrlVde0blz51SpUiV98cUXBb6BfatrmI+Pjzp06KDY2Fh5eXnpvvvuK9BxbuS+++7T5s2bNXLkSN133306efKkPvjgAzVu3Njq4couXbooMDBQr7zyiv744w/5+flZzQGS154ImZmZeuyxx9SjRw/Fx8fr/fff15133qnOnTtblSvIeX/77bd66aWXdP/996thw4bKzs7Wp59+KldXV3Xv3t2qrL+/vyIiIhQeHi53d3etXr1a0tXvW37Ur19fXl5e+uCDD1SxYkV5enoqMDCwyCZZR8kjgQEUgX/961+KjY3V9u3bLZnr2rVr6+GHH9bTTz9tdRN9xIgRatiwod555x0tXrxY0tX5FYKDg9WpUyebfffo0UNLlixRgwYNcm2gPvDAA6pRo4aWLVum6OhoZWRkqGbNmrrrrrssiZOCmDFjhl5++WXNmjVLmZmZGjVqlNXN6QceeEBz585VvXr1FBgYmK99z58/X6+//rpeffVVlStXTkOHDtW//vUvqzIjR45UQkKCvvjiC23atEmhoaFavny5zSTbNWvW1Jo1a/T6669rw4YNSklJUc2aNRUaGnrTGy4vvviiUlNTNWXKFFWsWFFdunTR4sWL9c477+jTTz/Vl19+KQ8PD9WtW1fh4eFWQ35NmjRJkZGRmj9/vq5cuaK+ffveMoHx1FNP6dChQ1q2bJkuX76s9u3b64UXXrCZbEu6+mTlypUr1b59e9WoUeOW7+ftt9+unj17avfu3frss8/k6uoqPz8/zZ8/3yYgaNiwoaZNm6Y5c+YoPj5edevW1bx58244lurN3Oo7AgAouDvvvFN79uxRs2bNbCZZbt26td566y1VrFjR5uZ2YXh4eOidd97Ryy+/rJUrV6pChQp64IEHFBoamqeb13fccYeio6M1a9YsLViwQLfffrtGjx6tCxcuFDiBIeU91rnjjjssMcHq1auVnp6u2rVrW/VgDQwM1NixY/XBBx/om2++UU5OjrZu3ZprAuO2227TBx98oP/85z9auXKl0tPTFRAQoCVLlhT5jQopb/GRWe/evfWf//znlpN3m7Vp00Y//fSTYmJi9Oeff6py5coKDAy0xHLX6tOnj1xcXLRixQpdvHhRgYGBmjZtWp5ikmtVr15dL774opYuXap///vfys7O1rvvvksCAwDyoFu3bqpfv77eeustDRw4UI0bN9batWu1aNEirVu3TpcuXZKPj4+aNm2qkSNHWrarWLGiVq1apYULF+rLL7/UunXrVK1aNbVv3141a9aUdPVhtPfee09z587VunXrlJKSIl9fX82aNSvP9xAKe80fNGiQsrOzFR0drTlz5sjf319vvvlmrpOUz507V5GRkVq2bJm8vLzUv39/tW3bVo8//riljJub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gIAATZo0Kc91/fzzz9WvXz8FBQWpdevWeuCBB7RixQqrMidOnNCYMWPUpk0btWzZUgMHDtTXX39tVeaTTz5RQECATp48abX8u+++U0BAgL777jvLsmvPf8iQIWrZsqVee+01SVJ6eroWLlyo7t27q0WLFgoJCdGoUaP0xx9/WLbPycnRO++8o549e6pFixa65557FBkZqcREJhUDAAAAihJtm7/RtgEA4NaIHf5WmmMHJvF2ci+88IK++OILDR06VI0aNdKlS5f0ww8/6OjRo2rWrJkkKTExUSNGjFCPHj3Us2dPbdq0SdOnT5ebm5v69++f52PNmTNHU6dOVWBgoAYOHChJql+/fp623bVrl5599lm1b99eEyZMkCTFxcVp7969evTRRyVJf/75px566CGlpaUpPDxcVatW1bp16/T0009rwYIF6tq1a37eGotLly5p+PDh6tmzpx588EFVq1ZN2dnZevLJJ7V792717NlTjzzyiC5fvqxdu3bp8OHDlvOKjIzUunXr1K9fP4WHh+vkyZNatWqVfv31V61evVpubm4FqhMAAAAAa7Rtbo22DQAAfyN2uLXSEDuQwHBy27dv18CBA60yfsOHD7cqc/78eU2aNEmPP/64JGnQoEEaOHCgXnvtNfXu3TvPX7bevXtr+vTpqlevnnr37p2ven799deqVKmSoqOj5erqmmuZZcuW6c8//9SqVat01113SZIGDBigBx98ULNmzVLnzp3l4pL/TkMXLlzQiy++qIceesiybO3atdq9e7cmT56sxx57zLJ8xIgRMgxDkrRnzx599NFHmjt3rh544AFLmbZt2+qJJ55QbGys1XIAAAAABUfb5tZo2wAA8Ddih1srDbEDQ0g5OS8vL+3fv1/nzp27YZly5cpp0KBBltfu7u4aNGiQLl68aOlSVdy8vLyUlpamXbt23bDM9u3bFRgYaPmRSlLFihU1aNAgnTp1SkeOHCnQsd3d3dWvXz+rZZs3b1bVqlU1dOhQm/Imk0mSFBsbq8qVKys4OFgJCQmW/5o1ayZPT0+rLlkAAAAACoe2za3RtgEA4G/EDrdWGmIHemA4uQkTJmjSpEm677771KxZM917773q06eP6tWrZylTo0YNeXp6Wm3XsGFDSdKpU6fUqlWrYq/nww8/rE2bNmn48OGqWbOmgoOD1aNHD4WGhlrKnD59Wi1btrTZ1s/Pz7Le398/38euWbOm3N3drZb98ccf8vX1VblyN/4JHD9+XMnJyWrfvn2u6y9evJjvugAAAADIHW2bW6NtAwDA34gdbq00xA4kMJxcWFiY7rrrLn355ZfatWuXoqOjFRUVpYULF+ree++1d/UsqlWrpvXr12vnzp3asWOHduzYoU8++UR9+vTRK6+8kq99mTOB18vJycl1eYUKFfJdX/P+qlWrprlz5+a63sfHp0D7BQAAAGCLts3faNsAAHBrxA5/K82xAwmMUqBGjRoaMmSIhgwZoosXL6pv375asmSJ5Yd6/vx5paamWmUbjx07JkmqU6dOidXT3d1dnTp1UqdOnZSTk6Pp06frww8/1DPPPKMGDRqodu3aio+Pt9kuLi5OklS7dm1JV7tdSVJycrJVuVOnTuW5LvXr19f+/fuVmZl5w7Hu6tevr927d6t169YF/rEDAAAAyDvaNlfRtgEAIG+IHa4qzbEDc2A4sezsbJsva7Vq1VSjRg1lZGRYlmVlZenDDz+0vM7IyNCHH34oHx8fNWvWLF/H9PT0VFJSUr7r+tdff1m9dnFxUUBAgKU+knTvvffqwIED2rdvn6Vcamqq1qxZozp16qhx48aSrv6AJOn777+3lMvOztaaNWvyXJ9u3brpr7/+0qpVq2zWmSer6dGjh7Kzs/XGG2/YlMnKyirQ+wAAAADAFm0b2jYAAOQHsUPZiR3ogeHELl++rHvvvVfdu3fXHXfcIU9PT/33v//VTz/9pEmTJlnK1ahRQ1FRUTp16pQaNmyomJgYHTx4UC+//PINs2w30qxZM+3evVtvv/22atSoobp16+Y6Ptv1pk6dqsTERLVr1041a9bU6dOntXLlSjVp0kSNGjWSdHWm+88//1zDhw9XeHi4vL29tX79ep08eVILFy6Ui8vVfNs//vEPtWrVSq+99poSExPl7e2tmJgYZWVl5fk8+vTpo/Xr12vWrFk6cOCA7rzzTqWlpWn37t0aPHiwunTpojZt2mjQoEFaunSpDh48qODgYLm5uenYsWOKjY3Vv//9b91///35ev8AAAAA2KJtQ9sGAID8IHYoO7EDCQwnVqFCBQ0ePFi7du3S5s2bZRiG6tevrxdeeEEPP/ywpZy3t7dmz56tGTNmaM2aNbrtttsUGRmpgQMH5vuYkyZNUmRkpObPn68rV66ob9++efqhPvjgg1qzZo3ef/99JSUlqXr16urRo4dGjx5t+QHedttt+uCDD/Sf//xHK1euVHp6ugICArRkyRLdd999VvubO3euIiMjtWzZMnl5eal///5q27atHn/88Tydh6urq6KiovTmm29q48aN2rx5s6pUqaLWrVtbMqCS9NJLL6l58+b64IMPNG/ePLm6uqpOnTp68MEH1bp167y/cQAAAABuiLYNbRsAAPKD2KHsxA4mw9wvBCXqp59+kiS1aNEi1/VXrlxRfHy8fH19CzXOWHh4uP766y9t3LixwPtAwRTVZwjY05TXY3Ts1F+3LlhCGtapqpljw+xdjVLtVtcn2A+fTemQ37+r/N1DaUDbxvnd6jPkGuW4nO2zcbT2B/KOmAVFidjB+RVl7MAcGAAAAAAAAAAAwOEwhBQKJTs7WwkJCTct4+npqYoVK5ZQjQAAAAAg/2jbAACA/CB2KBkkMFAoZ86cUefOnW9aZtSoURo9enQJ1QgAAAAA8o+2DQAAyA9ih5JBAqOUe++994p1/9WrV9fbb7990zL16tUr1joAAAAAKP1o2wAAgPwgdigdSGCgUMqXL6977rnH3tUAAAAAgEKhbQMAAPKD2KFkMIk3AAAAAAAAAABwOCQwAAAAAAAAAACAwyGBAQAAAAAAAAAAHA4JDAAAAAAAAAAA4HBIYAAAAAAAAAAAAIdDAgMAAAAAAAAAADgcEhgodlu2bNGqVauKdJ+dOnXSSy+9VKT7BAAAAICboW0DAADyi/ihcMrZuwLIv5wcQy4uJqc57pYtW/Tzzz9ryJAhRVaXRYsWycvLq8j2BwAAAKDk2attU9Bj07YBAMC+nC12kIgfCsuhEhjHjx9XdHS09u/fr99//11+fn7auHGjVZnw8HD973//s9k2JiZGjRo1srxOTk7WrFmztGXLFmVmZqpDhw6aOnWqatSoYbXd3r179corr+jgwYOqVq2aBg8erOHDh8tk+vvLaBiGoqKi9P777yshIUFNmjTR5MmT1apVq6J9A/LIxcWkxat36dT5xBI7Zp0a3ho5OLjY9m8YhjIzM+Xu7p6n8k2bNi22ugAAAAAoGfZo20jF276hbQMAQPEpjbGDRPxwMw6VwPj999+1fft2tWzZUjk5OTIMI9dyrVu31sSJE62W1a1b1+r1uHHjdOTIEU2fPl3ly5fX/PnzNXz4cK1du1blyl097ePHjysiIkLBwcEaN26cDh06pLlz58rV1VURERGWfUVFRWnBggWaMGGCAgICtGrVKg0bNkyffvqp6tWrV8TvQt6cOp+oY6f+ssux82PSpElat26dJCkgIECS1LdvX0nSzz//rOeff16vvvqq4uLiNHfuXIWGhmru3LnatWuXzp49q2rVqikkJETPP/+8KleubNlvp06ddN999ykyMtJynJ9//lnTpk3TrFmzdOzYMTVu3FjTp09X8+bNS/isAQAAAOQVbRvaNgAA5IezxA4S8UNRcKgERqdOndSlSxdJf7/pufHy8rpp74d9+/Zp586dio6OVkhIiCTJ19dXYWFh2rx5s8LCwiRJ0dHRqlq1ql577TW5u7urffv2SkhI0JIlSxQeHi53d3elp6dr6dKlGjZsmB577DFJ0p133qn7779f0dHRmj59epGdf2n0zDPPKCEhwfIjlCQfHx+98cYbOn/+vGbMmKGnn35atWrVUu3atXXlyhVlZ2dr/Pjx8vHx0ZkzZ7RkyRI988wzeu+99256rAsXLmjGjBkaMWKEKleurFdffVWjRo3Sl19+KTc3t5I4XQAAAAClFG0bAACQX8QPhedQCQwXl6KZU3zHjh3y8vJScPDf3Xr8/PzUpEkT7dixw5LA2LFjh7p27WrVNScsLExLly7Vvn371LZtW+3du1cpKSnq0aOHpYy7u7u6du2qL7/8skjqW5rVr19fPj4+On36tE3SKTExUVFRUWrZsqXV8hdffNHy76ysLNWtW1cPP/yw4uPj5evre8NjJSYmauXKlfrHP/4hSfLw8NAjjzyi/fv366677iq6kwIAAABQ5tC2AQAA+UX8UHgOlcDIq//9739q1aqVsrOz1bJlS40dO1Z33323ZX1cXJx8fX2t5rGQriYx4uLiJEmpqak6c+aM/Pz8bMqYTCbFxcWpbdu2lvLXl2vUqJFWrFihK1euqEKFCsVxmqVelSpVbH6gkrR+/Xq98847On78uFJTUy3Ljx07dtMfaY0aNSw/UElq3LixJOncuXNFWGsAAAAAsEbbxrkw/yYAwBEQP+SN0yUw7r77bvXu3VsNGzbU+fPnFR0drccff1zvvfeegoKCJElJSUlWY4KZeXt7W4alSk5OliSb2drd3d3l4eGhxMREy77c3d1Vvnx5q3JeXl4yDEOJiYkFTmAY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BASwe/duunfvrtq+fft2ihcvTvXq1d/pNdq1a8fJkye5evVqjtf4O1tbW/bu3Yu2trba+U5OTvz666+q0uEbNmzg3r17LFq0CEdHRwC6detG+/bt3ykmId6F9tsPEUIIzdu7dy/u7u6kp6fz888/56gV+eDBA+rXr/+P/y1fvlxD0QshhBBCCCGEELlPt27dVP+/b98+MjMzcXJyIi4uTvVf4cKFKVmypOqp+qtXr3L//n169eqllrwAVEmGR48e8ddff+Hs7Ky2aqB8+fLUq1ePI0eO/GMs8GoFR1paGi4uLqrrAmolqt5V1utllXL6L9fKLnvyIiEhgbi4OGrVqsW9e/dISEj4T9fOUrp0aSpXrsyOHTtU2+Lj4zl69Cht2rRRe28+FD09PVXyIiMjg6dPn2JkZETp0qW5evWq6rijR49iaWlJ06ZNVdv09fXp0qXLB49JfLlkBYYQIk8YPny4qh7l6xQpUoQVK1b84zWsrKw+dFhCCCGEEEIIIUSelb2M0927d1EUhebNm7/2WB2dV9OI9+7dA6BcuXJvvG50dDTwavL972xsbDh27FiORt1/LymVdY1SpUqpbTczM8PExOSNr/06UVFRaGtrY21trba9TJky73Wdvzt//jz+/v5cvHiR5ORktX0JCQkUKFDgP10/S7t27fD29iYqKorixYuzZ88e0tLS3rqS4t/KzMxk9erVrF27lvv375ORkaHalz0hFRUVhbW1dY4kyt/fZyH+C0lgCCE+C/r6+tSrV0/TYQghhBBCCCGEEHlG9uoGmZmZaGlpERQURL58+XIcmz3Z8LFj0aQ3rWjIPokPEBkZSZ8+fShTpgxubm589dVX6OrqcuTIEVauXElmZuYHi6lVq1ZMnz6dHTt2MGjQILZv346dnd1/TsC8SUBAAPPnz6djx46MHDkSExMTtLW18fX1VSsTJsSnIAkMIYQQQgghhBBCCCG+cNbW1iiKQokSJV67ciJLVnWDGzduvPFBwmLFigFw586dHPtu375NoUKF3poQybrG3bt31SoqxMXF8ezZs38ezN8UL16czMxMIiMj1Sb9b9++nePYggUL8vz58xzbs1aEZDl48CCpqaksWbJEFSvwrxtY/1MpKFNTUxo1asSOHTto06YNFy5cYMKECf/qdd7F3r17qV27Nr6+vmrbnz9/TqFChVRfFy9enFu3bqEoilr8kZGRHy028eWRHhhCCCGEEEIIIYQQQnzhmjdvTr58+Vi4cGGOp+wVReHp06cAVKxYkRIlSrB69eocE/1Z51lYWFChQgW2bt2qdsyNGzc4fvw4Dg4Ob42nXr166OrqEhoaqhbPqlWr3ntsDRs2BCAkJERt++uuZW1tTUJCAteuXVNte/ToEfv27VM7LmuVSvbYEhIS2LRp03vHB2BoaAjw2uQJvCojdevWLfz8/MiXLx+tWrX6V6/zLvLly5fje2D37t3ExMSobatfvz4xMTEcOHBAte3ly5f88ssvHy028eWRFRhCCCGEEEIIIYQQQnzhrK2tGTVqFHPmzCEqKgpHR0fy58/P/fv32b9/P126dKFfv35oa2szefJkBg8eTPv27enQoQNFihTh9u3b3Lp1i2XLlgEwbtw4fvjhB7p27UqnTp1ISUkhNDSUAgUKMGzYsLfGY2ZmRt++fQkMDGTgwIE4ODhw9epV/vjjD7VVAO+iQoUKtG7dmrVr15KQkEDVqlU5deoUEREROY5t2bIls2fPZtiwYbi6upKSksK6desoXbo0V65cUR337bffoqury6BBg+jWrRtJSUls3LgRc3NzHj9+/F7xwavEEMC0adOoX79+jiSFg4MDpqam7Nmzh4YNG2Jubv7er/GuGjVqxKJFi3B3d6dq1arcuHGDHTt25Ogt2rVrV0JDQxkzZgy9evWiSJEi7NixQ1UO7GM0GBdfHlmBIYQQQgghhBBCCCGEYMCAAfj7+6Otrc2iRYvw8/Pj4MGDfPvttzRp0kR1XIMGDVi1ahWlSpVi+fLlzJgxg5MnT9K4cWPVMfXq1SM4OBhTU1MWLFjA8uXLqVy5MuvWrcsxEf4mo0aNYvjw4Vy9ehU/Pz8iIyNZvnz5v+rH4evri6urK0ePHmX27NmkpaWxdOnSHMcVKlSIhQsXYmhoyKxZs9iyZQs//vij2tjgVQPwBQsWoKWlxcyZM1m/fj1dunShV69e7x0bvFoBkxXfuHHj+PHHH9X26+np0bJlS4CP1rw7y6BBg+jbty9Hjx7Fx8eHK1euEBgYyFdffaV2XP78+Vm1ahV16tRh9erVLFmyhBo1ajBkyBAg9/Q1EXmbliKdV4QQQgghhBBCCCGEEF8gW1tbhg0bxvDhwzUdylv5+vry66+/cvz4cVXJqdxo5cqVTJ8+nT/++ANLS0tNhyPyOFmBIYQQQgghhBBCCCGEELnYy5cv2b59O999912uSl6kpKSoff3y5Us2bNhAqVKlJHkhPgjpgSGEEEIIIYQQQgghhMiT3tZvwsDAgAIFCnyiaD682NhYTpw4wd69e4mPj39tiaq4uDgyMjLeeA1dXV1MTU0/SnzDhg2jWLFilC9fnsTERLZv387t27eZPXv2R3k98eWRBIYQQgghhBBCCCGEECJPql+//j/ud3Z2ZsaMGZ8omg/v1q1bjB07FnNzcyZNmkSFChVyHNOpUyeioqLeeI1atWoREhLyUeKrX78+v/76Kzt27CAjI4Ovv/6auXPnqvp1CPFfSQ8MIYQQQgghhBBCCCFEnnTixIl/3G9hYcHXX3/9iaLRjPPnz/Py5cs37i9YsCB2dnafMCIhPhxJYAghhBBCCCGEEEIIIYQQIteRJt5CCCGEEEIIIYQQQgghhMh1JIEhhBBCCCGEEEIIIYQQQohcRxIYQgghhBBCCCGEEEIIIYTIdSSBIYQQQgghhBBCCCGEEEKIXEcSGEIIIYQQQgghhBBCCCGEyHUkgSGEEEIIIYQQQgghhBBCiFxHEhhCCCGEEEIIIYQQQgghhMh1JIEhhBBCCCGEEEIIIYQQQohc5/8BT2g3AhIDUtIAAAAASUVORK5CYII=",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, axes = plt.subplots(1, 3, figsize=(16, 4))\n",
+ "sns.countplot(data=df, x=\"severity_bucket\", hue=\"split_source\", ax=axes[0])\n",
+ "axes[0].set_title(\"Severity bucket by split\")\n",
+ "sns.countplot(data=df, x=\"wind_direction\", hue=\"split_source\", ax=axes[1])\n",
+ "axes[1].set_title(\"Wind direction by split\")\n",
+ "sns.countplot(data=df, x=\"record_quality_flag\", hue=\"split_source\", ax=axes[2])\n",
+ "axes[2].set_title(\"Record quality flag by split\")\n",
+ "for ax in axes:\n",
+ " ax.tick_params(axis=\"x\", rotation=45)\n",
+ "plt.tight_layout()\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "64b3f8d3",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "spread_rate_1h_m 1926\n",
+ "base_spread_prob 1372\n",
+ "spread_score 1366\n",
+ "wind_strength 728\n",
+ "weather_score 367\n",
+ "cffdrs_dryness_score 0\n",
+ "size_factor 0\n",
+ "fire_type_factor 0\n",
+ "fuel_factor 0\n",
+ "rain_factor 0\n",
+ "dtype: int64"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "def iqr_outlier_mask(series: pd.Series) -> pd.Series:\n",
+ " q1 = series.quantile(0.25)\n",
+ " q3 = series.quantile(0.75)\n",
+ " iqr = q3 - q1\n",
+ " if iqr == 0 or np.isnan(iqr):\n",
+ " return pd.Series(False, index=series.index)\n",
+ " lo = q1 - 1.5 * iqr\n",
+ " hi = q3 + 1.5 * iqr\n",
+ " return (series < lo) | (series > hi)\n",
+ "\n",
+ "outlier_flags = pd.DataFrame(index=df.index)\n",
+ "for col in NUMERIC_COLUMNS:\n",
+ " if col in df.columns:\n",
+ " outlier_flags[col] = iqr_outlier_mask(pd.to_numeric(df[col], errors=\"coerce\"))\n",
+ "\n",
+ "df_outliers = df[outlier_flags.any(axis=1)].copy()\n",
+ "df_outliers[\"outlier_feature_count\"] = outlier_flags.sum(axis=1)\n",
+ "outlier_summary = outlier_flags.sum().sort_values(ascending=False)\n",
+ "outlier_summary"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "82df6535",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " record_id \n",
+ " fire_id \n",
+ " split \n",
+ " split_source \n",
+ " severity_bucket \n",
+ " wind_direction \n",
+ " outlier_feature_count \n",
+ " base_spread_prob \n",
+ " wind_strength \n",
+ " spread_rate_1h_m \n",
+ " spread_score \n",
+ " weather_score \n",
+ " cffdrs_dryness_score \n",
+ " size_factor \n",
+ " fire_type_factor \n",
+ " fuel_factor \n",
+ " rain_factor \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 1081 \n",
+ " AB-2011-WWF021__20110514 \n",
+ " AB-2011-WWF021 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " NW \n",
+ " 5 \n",
+ " 0.0819 \n",
+ " 0.6000 \n",
+ " 240.0 \n",
+ " 0.2326 \n",
+ " 0.8912 \n",
+ " 0.0 \n",
+ " 0.9501 \n",
+ " 0.80 \n",
+ " 1.06 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 455 \n",
+ " AB-2018-SWF053__20180528 \n",
+ " AB-2018-SWF053 \n",
+ " train \n",
+ " train \n",
+ " medium \n",
+ " W \n",
+ " 5 \n",
+ " 0.1140 \n",
+ " 0.6000 \n",
+ " 360.0 \n",
+ " 0.4109 \n",
+ " 0.8345 \n",
+ " 0.0 \n",
+ " 0.9501 \n",
+ " 1.18 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 1097 \n",
+ " AB-2006-LWF125__20060705 \n",
+ " AB-2006-LWF125 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " S \n",
+ " 5 \n",
+ " 0.0988 \n",
+ " 0.4750 \n",
+ " 240.0 \n",
+ " 0.3268 \n",
+ " 0.7560 \n",
+ " 0.0 \n",
+ " 0.9501 \n",
+ " 1.18 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 18361 \n",
+ " AB-2023-CWF003__20230501 \n",
+ " AB-2023-CWF003 \n",
+ " val \n",
+ " val \n",
+ " low \n",
+ " E \n",
+ " 5 \n",
+ " 0.0905 \n",
+ " 0.5375 \n",
+ " 240.0 \n",
+ " 0.2805 \n",
+ " 0.8429 \n",
+ " 0.0 \n",
+ " 0.9500 \n",
+ " 1.00 \n",
+ " 1.06 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 18256 \n",
+ " AB-2023-WWF023__20230505 \n",
+ " AB-2023-WWF023 \n",
+ " val \n",
+ " val \n",
+ " high \n",
+ " SE \n",
+ " 5 \n",
+ " 0.1924 \n",
+ " 0.4750 \n",
+ " 1200.0 \n",
+ " 0.8465 \n",
+ " 0.7974 \n",
+ " 0.0 \n",
+ " 0.9515 \n",
+ " 1.18 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 845 \n",
+ " AB-2021-RWF070__20210723 \n",
+ " AB-2021-RWF070 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " SE \n",
+ " 5 \n",
+ " 0.0846 \n",
+ " 0.4750 \n",
+ " 300.0 \n",
+ " 0.2477 \n",
+ " 0.7819 \n",
+ " 0.0 \n",
+ " 0.9500 \n",
+ " 0.80 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 215 \n",
+ " AB-2011-SWF065__20110514 \n",
+ " AB-2011-SWF065 \n",
+ " train \n",
+ " train \n",
+ " medium \n",
+ " SE \n",
+ " 5 \n",
+ " 0.1400 \n",
+ " 0.6000 \n",
+ " 600.0 \n",
+ " 0.5557 \n",
+ " 0.9010 \n",
+ " 0.0 \n",
+ " 0.9504 \n",
+ " 1.18 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 328 \n",
+ " AB-2011-LWF119__20110512 \n",
+ " AB-2011-LWF119 \n",
+ " train \n",
+ " train \n",
+ " medium \n",
+ " SE \n",
+ " 5 \n",
+ " 0.1110 \n",
+ " 0.6000 \n",
+ " 600.0 \n",
+ " 0.3944 \n",
+ " 0.7720 \n",
+ " 0.0 \n",
+ " 0.9500 \n",
+ " 1.00 \n",
+ " 1.00 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 521 \n",
+ " AB-2010-MWF069__20100724 \n",
+ " AB-2010-MWF069 \n",
+ " train \n",
+ " train \n",
+ " medium \n",
+ " SW \n",
+ " 5 \n",
+ " 0.1047 \n",
+ " 0.5000 \n",
+ " 300.0 \n",
+ " 0.3595 \n",
+ " 0.7572 \n",
+ " 0.0 \n",
+ " 0.9509 \n",
+ " 1.18 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 679 \n",
+ " AB-2013-GWF012__20130512 \n",
+ " AB-2013-GWF012 \n",
+ " train \n",
+ " train \n",
+ " medium \n",
+ " W \n",
+ " 5 \n",
+ " 0.1094 \n",
+ " 0.6000 \n",
+ " 300.0 \n",
+ " 0.3855 \n",
+ " 0.8580 \n",
+ " 0.0 \n",
+ " 0.9502 \n",
+ " 1.18 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 835 \n",
+ " AB-2006-GWF027__20060425 \n",
+ " AB-2006-GWF027 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " W \n",
+ " 5 \n",
+ " 0.0906 \n",
+ " 0.4750 \n",
+ " 300.0 \n",
+ " 0.2808 \n",
+ " 0.8041 \n",
+ " 0.0 \n",
+ " 0.9500 \n",
+ " 1.00 \n",
+ " 1.00 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 1603 \n",
+ " AB-2016-RWF014__20160409 \n",
+ " AB-2016-RWF014 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " NW \n",
+ " 5 \n",
+ " 0.0808 \n",
+ " 0.5375 \n",
+ " 180.0 \n",
+ " 0.2268 \n",
+ " 0.7741 \n",
+ " 0.0 \n",
+ " 0.9500 \n",
+ " 1.00 \n",
+ " 1.00 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 219 \n",
+ " AB-2008-GWF062__20080622 \n",
+ " AB-2008-GWF062 \n",
+ " train \n",
+ " train \n",
+ " medium \n",
+ " W \n",
+ " 5 \n",
+ " 0.1364 \n",
+ " 0.5625 \n",
+ " 600.0 \n",
+ " 0.5354 \n",
+ " 0.8245 \n",
+ " 0.0 \n",
+ " 0.9504 \n",
+ " 1.18 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 1592 \n",
+ " AB-2008-GWF013__20080416 \n",
+ " AB-2008-GWF013 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " E \n",
+ " 5 \n",
+ " 0.0834 \n",
+ " 0.6000 \n",
+ " 180.0 \n",
+ " 0.2411 \n",
+ " 0.7771 \n",
+ " 0.0 \n",
+ " 0.9500 \n",
+ " 1.00 \n",
+ " 1.06 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 1092 \n",
+ " AB-2012-PWF166__20120914 \n",
+ " AB-2012-PWF166 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " W \n",
+ " 5 \n",
+ " 0.0886 \n",
+ " 0.6000 \n",
+ " 240.0 \n",
+ " 0.2702 \n",
+ " 0.7942 \n",
+ " 0.0 \n",
+ " 0.9501 \n",
+ " 1.00 \n",
+ " 1.06 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 308 \n",
+ " AB-2015-MWF072__20150624 \n",
+ " AB-2015-MWF072 \n",
+ " train \n",
+ " train \n",
+ " medium \n",
+ " NW \n",
+ " 5 \n",
+ " 0.1225 \n",
+ " 0.6000 \n",
+ " 600.0 \n",
+ " 0.4583 \n",
+ " 0.8456 \n",
+ " 0.0 \n",
+ " 0.9500 \n",
+ " 1.00 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 708 \n",
+ " AB-2011-SWF081__20110515 \n",
+ " AB-2011-SWF081 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " S \n",
+ " 5 \n",
+ " 0.0897 \n",
+ " 0.4750 \n",
+ " 300.0 \n",
+ " 0.2763 \n",
+ " 0.7812 \n",
+ " 0.0 \n",
+ " 0.9501 \n",
+ " 1.00 \n",
+ " 1.00 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 408 \n",
+ " AB-2015-LWF111__20150516 \n",
+ " AB-2015-LWF111 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " N \n",
+ " 5 \n",
+ " 0.0873 \n",
+ " 0.5500 \n",
+ " 420.0 \n",
+ " 0.2628 \n",
+ " 0.8018 \n",
+ " 0.0 \n",
+ " 0.9501 \n",
+ " 0.80 \n",
+ " 1.00 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 1617 \n",
+ " AB-2011-SWF058__20110514 \n",
+ " AB-2011-SWF058 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " S \n",
+ " 5 \n",
+ " 0.0905 \n",
+ " 0.6000 \n",
+ " 180.0 \n",
+ " 0.2804 \n",
+ " 0.8918 \n",
+ " 0.0 \n",
+ " 0.9500 \n",
+ " 1.00 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 1319 \n",
+ " AB-2008-LWF037__20080515 \n",
+ " AB-2008-LWF037 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " W \n",
+ " 5 \n",
+ " 0.0817 \n",
+ " 0.6000 \n",
+ " 180.0 \n",
+ " 0.2316 \n",
+ " 0.7974 \n",
+ " 0.0 \n",
+ " 0.9502 \n",
+ " 1.00 \n",
+ " 1.00 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 356 \n",
+ " AB-2011-MWF008__20110515 \n",
+ " AB-2011-MWF008 \n",
+ " train \n",
+ " train \n",
+ " medium \n",
+ " W \n",
+ " 5 \n",
+ " 0.1208 \n",
+ " 0.5375 \n",
+ " 480.0 \n",
+ " 0.4489 \n",
+ " 0.8283 \n",
+ " 0.0 \n",
+ " 0.9519 \n",
+ " 1.18 \n",
+ " 1.06 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 144 \n",
+ " AB-2010-HWF223__20101010 \n",
+ " AB-2010-HWF223 \n",
+ " train \n",
+ " train \n",
+ " medium \n",
+ " SW \n",
+ " 5 \n",
+ " 0.1150 \n",
+ " 0.5375 \n",
+ " 600.0 \n",
+ " 0.4167 \n",
+ " 0.8086 \n",
+ " 0.0 \n",
+ " 0.9725 \n",
+ " 1.00 \n",
+ " 1.00 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 134 \n",
+ " AB-2015-MWF101__20150626 \n",
+ " AB-2015-MWF101 \n",
+ " train \n",
+ " train \n",
+ " medium \n",
+ " NW \n",
+ " 5 \n",
+ " 0.1291 \n",
+ " 0.6000 \n",
+ " 720.0 \n",
+ " 0.4950 \n",
+ " 0.7690 \n",
+ " 0.0 \n",
+ " 0.9502 \n",
+ " 1.00 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 953 \n",
+ " AB-2016-PWF009__20160418 \n",
+ " AB-2016-PWF009 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " S \n",
+ " 5 \n",
+ " 0.0945 \n",
+ " 0.6000 \n",
+ " 300.0 \n",
+ " 0.3028 \n",
+ " 0.9140 \n",
+ " 0.0 \n",
+ " 0.9500 \n",
+ " 1.00 \n",
+ " 1.00 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 659 \n",
+ " AB-2010-GWF151__20101010 \n",
+ " AB-2010-GWF151 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " W \n",
+ " 5 \n",
+ " 0.0907 \n",
+ " 0.6000 \n",
+ " 300.0 \n",
+ " 0.2815 \n",
+ " 0.8068 \n",
+ " 0.0 \n",
+ " 0.9502 \n",
+ " 1.00 \n",
+ " 1.00 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 483 \n",
+ " AB-2017-RWF078__20171017 \n",
+ " AB-2017-RWF078 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " W \n",
+ " 5 \n",
+ " 0.0970 \n",
+ " 0.5375 \n",
+ " 300.0 \n",
+ " 0.3166 \n",
+ " 0.7883 \n",
+ " 0.0 \n",
+ " 0.9575 \n",
+ " 1.00 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 125 \n",
+ " AB-2011-SWF086__20110515 \n",
+ " AB-2011-SWF086 \n",
+ " train \n",
+ " train \n",
+ " high \n",
+ " SE \n",
+ " 5 \n",
+ " 0.1660 \n",
+ " 0.6000 \n",
+ " 900.0 \n",
+ " 0.7000 \n",
+ " 0.8484 \n",
+ " 0.0 \n",
+ " 0.9500 \n",
+ " 1.18 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 1052 \n",
+ " AB-2012-LWF055__20120512 \n",
+ " AB-2012-LWF055 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " W \n",
+ " 5 \n",
+ " 0.0931 \n",
+ " 0.6000 \n",
+ " 240.0 \n",
+ " 0.2950 \n",
+ " 0.8361 \n",
+ " 0.0 \n",
+ " 0.9503 \n",
+ " 1.00 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 18336 \n",
+ " AB-2023-SWF067__20230505 \n",
+ " AB-2023-SWF067 \n",
+ " val \n",
+ " val \n",
+ " medium \n",
+ " SE \n",
+ " 5 \n",
+ " 0.1053 \n",
+ " 0.4750 \n",
+ " 300.0 \n",
+ " 0.3627 \n",
+ " 0.7720 \n",
+ " 0.0 \n",
+ " 0.9501 \n",
+ " 1.18 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 117 \n",
+ " AB-2011-SWF066__20110514 \n",
+ " AB-2011-SWF066 \n",
+ " train \n",
+ " train \n",
+ " high \n",
+ " SE \n",
+ " 5 \n",
+ " 0.1615 \n",
+ " 0.4750 \n",
+ " 900.0 \n",
+ " 0.6752 \n",
+ " 0.7540 \n",
+ " 0.0 \n",
+ " 0.9501 \n",
+ " 1.18 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 791 \n",
+ " AB-2013-HWF062__20130621 \n",
+ " AB-2013-HWF062 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " NW \n",
+ " 5 \n",
+ " 0.0953 \n",
+ " 0.5375 \n",
+ " 300.0 \n",
+ " 0.3070 \n",
+ " 0.7704 \n",
+ " 0.0 \n",
+ " 0.9501 \n",
+ " 1.00 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 1248 \n",
+ " AB-2011-SWF077__20110515 \n",
+ " AB-2011-SWF077 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " E \n",
+ " 5 \n",
+ " 0.0895 \n",
+ " 0.6000 \n",
+ " 180.0 \n",
+ " 0.2748 \n",
+ " 0.8655 \n",
+ " 0.0 \n",
+ " 0.9504 \n",
+ " 1.00 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 1343 \n",
+ " AB-2011-SWF054__20110514 \n",
+ " AB-2011-SWF054 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " S \n",
+ " 5 \n",
+ " 0.0841 \n",
+ " 0.6000 \n",
+ " 180.0 \n",
+ " 0.2449 \n",
+ " 0.8639 \n",
+ " 0.0 \n",
+ " 0.9501 \n",
+ " 1.00 \n",
+ " 1.00 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 777 \n",
+ " AB-2015-PWF018__20150429 \n",
+ " AB-2015-PWF018 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " W \n",
+ " 5 \n",
+ " 0.0966 \n",
+ " 0.6000 \n",
+ " 300.0 \n",
+ " 0.3144 \n",
+ " 0.8034 \n",
+ " 0.0 \n",
+ " 0.9501 \n",
+ " 1.00 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 359 \n",
+ " AB-2018-MWF095__20180818 \n",
+ " AB-2018-MWF095 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " W \n",
+ " 5 \n",
+ " 0.0965 \n",
+ " 0.6000 \n",
+ " 480.0 \n",
+ " 0.3141 \n",
+ " 0.7902 \n",
+ " 0.0 \n",
+ " 0.9507 \n",
+ " 0.80 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 690 \n",
+ " AB-2019-SWF049__20190518 \n",
+ " AB-2019-SWF049 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " SE \n",
+ " 5 \n",
+ " 0.0939 \n",
+ " 0.5375 \n",
+ " 300.0 \n",
+ " 0.2993 \n",
+ " 0.8111 \n",
+ " 0.0 \n",
+ " 0.9501 \n",
+ " 1.00 \n",
+ " 1.06 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 18343 \n",
+ " AB-2023-CWF004__20230505 \n",
+ " AB-2023-CWF004 \n",
+ " val \n",
+ " val \n",
+ " low \n",
+ " E \n",
+ " 5 \n",
+ " 0.0912 \n",
+ " 0.5125 \n",
+ " 300.0 \n",
+ " 0.2846 \n",
+ " 0.8229 \n",
+ " 0.0 \n",
+ " 0.9500 \n",
+ " 1.00 \n",
+ " 1.00 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 524 \n",
+ " AB-2022-LWF110__20220714 \n",
+ " AB-2022-LWF110 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " SE \n",
+ " 5 \n",
+ " 0.0949 \n",
+ " 0.4750 \n",
+ " 300.0 \n",
+ " 0.3051 \n",
+ " 0.7594 \n",
+ " 0.0 \n",
+ " 0.9507 \n",
+ " 1.00 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 1053 \n",
+ " AB-2011-SWF070__20110515 \n",
+ " AB-2011-SWF070 \n",
+ " train \n",
+ " train \n",
+ " medium \n",
+ " SE \n",
+ " 5 \n",
+ " 0.1051 \n",
+ " 0.6000 \n",
+ " 240.0 \n",
+ " 0.3615 \n",
+ " 0.8868 \n",
+ " 0.0 \n",
+ " 0.9503 \n",
+ " 1.18 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 1196 \n",
+ " AB-2011-SWF088__20110516 \n",
+ " AB-2011-SWF088 \n",
+ " train \n",
+ " train \n",
+ " medium \n",
+ " SW \n",
+ " 5 \n",
+ " 0.1218 \n",
+ " 0.6000 \n",
+ " 180.0 \n",
+ " 0.4546 \n",
+ " 0.8598 \n",
+ " 0.0 \n",
+ " 1.1000 \n",
+ " 1.18 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 298 \n",
+ " AB-2013-RWF044__20130521 \n",
+ " AB-2013-RWF044 \n",
+ " train \n",
+ " train \n",
+ " medium \n",
+ " SE \n",
+ " 5 \n",
+ " 0.1107 \n",
+ " 0.4750 \n",
+ " 600.0 \n",
+ " 0.3929 \n",
+ " 0.7641 \n",
+ " 0.0 \n",
+ " 0.9501 \n",
+ " 1.00 \n",
+ " 1.00 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 1687 \n",
+ " AB-2018-HWF053__20180512 \n",
+ " AB-2018-HWF053 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " NW \n",
+ " 5 \n",
+ " 0.0837 \n",
+ " 0.5375 \n",
+ " 180.0 \n",
+ " 0.2427 \n",
+ " 0.8537 \n",
+ " 0.0 \n",
+ " 0.9500 \n",
+ " 1.00 \n",
+ " 1.00 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 494 \n",
+ " AB-2011-SWF082__20110515 \n",
+ " AB-2011-SWF082 \n",
+ " train \n",
+ " train \n",
+ " medium \n",
+ " SE \n",
+ " 5 \n",
+ " 0.1073 \n",
+ " 0.6000 \n",
+ " 300.0 \n",
+ " 0.3740 \n",
+ " 0.8075 \n",
+ " 0.0 \n",
+ " 0.9522 \n",
+ " 1.18 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 1660 \n",
+ " AB-2011-SWF056__20110514 \n",
+ " AB-2011-SWF056 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " SE \n",
+ " 5 \n",
+ " 0.0975 \n",
+ " 0.5625 \n",
+ " 180.0 \n",
+ " 0.3192 \n",
+ " 0.8476 \n",
+ " 0.0 \n",
+ " 0.9500 \n",
+ " 1.18 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 412 \n",
+ " AB-2015-SWF050__20150515 \n",
+ " AB-2015-SWF050 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " SW \n",
+ " 5 \n",
+ " 0.0916 \n",
+ " 0.4750 \n",
+ " 420.0 \n",
+ " 0.2865 \n",
+ " 0.7514 \n",
+ " 0.0 \n",
+ " 0.9501 \n",
+ " 1.00 \n",
+ " 1.00 \n",
+ " 0.9 \n",
+ " \n",
+ " \n",
+ " 742 \n",
+ " AB-2011-WWF020__20110514 \n",
+ " AB-2011-WWF020 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " NW \n",
+ " 5 \n",
+ " 0.0827 \n",
+ " 0.6000 \n",
+ " 300.0 \n",
+ " 0.2371 \n",
+ " 0.8813 \n",
+ " 0.0 \n",
+ " 0.9501 \n",
+ " 0.80 \n",
+ " 1.00 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 299 \n",
+ " AB-2013-RWF020__20130512 \n",
+ " AB-2013-RWF020 \n",
+ " train \n",
+ " train \n",
+ " medium \n",
+ " W \n",
+ " 5 \n",
+ " 0.1072 \n",
+ " 0.6000 \n",
+ " 600.0 \n",
+ " 0.3733 \n",
+ " 0.8829 \n",
+ " 0.0 \n",
+ " 0.9501 \n",
+ " 0.80 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 18281 \n",
+ " AB-2023-GWF066__20230917 \n",
+ " AB-2023-GWF066 \n",
+ " val \n",
+ " val \n",
+ " medium \n",
+ " SW \n",
+ " 5 \n",
+ " 0.1316 \n",
+ " 0.6000 \n",
+ " 600.0 \n",
+ " 0.5086 \n",
+ " 0.8319 \n",
+ " 0.0 \n",
+ " 0.9504 \n",
+ " 1.18 \n",
+ " 1.06 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 579 \n",
+ " AB-2015-PWF004__20150416 \n",
+ " AB-2015-PWF004 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " NW \n",
+ " 5 \n",
+ " 0.0907 \n",
+ " 0.6000 \n",
+ " 300.0 \n",
+ " 0.2816 \n",
+ " 0.8068 \n",
+ " 0.0 \n",
+ " 0.9504 \n",
+ " 1.00 \n",
+ " 1.00 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 1744 \n",
+ " AB-2020-HWF044__20200804 \n",
+ " AB-2020-HWF044 \n",
+ " train \n",
+ " train \n",
+ " low \n",
+ " SW \n",
+ " 5 \n",
+ " 0.0846 \n",
+ " 0.4750 \n",
+ " 180.0 \n",
+ " 0.2480 \n",
+ " 0.7471 \n",
+ " 0.0 \n",
+ " 0.9500 \n",
+ " 1.00 \n",
+ " 1.12 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " record_id fire_id split split_source \\\n",
+ "1081 AB-2011-WWF021__20110514 AB-2011-WWF021 train train \n",
+ "455 AB-2018-SWF053__20180528 AB-2018-SWF053 train train \n",
+ "1097 AB-2006-LWF125__20060705 AB-2006-LWF125 train train \n",
+ "18361 AB-2023-CWF003__20230501 AB-2023-CWF003 val val \n",
+ "18256 AB-2023-WWF023__20230505 AB-2023-WWF023 val val \n",
+ "845 AB-2021-RWF070__20210723 AB-2021-RWF070 train train \n",
+ "215 AB-2011-SWF065__20110514 AB-2011-SWF065 train train \n",
+ "328 AB-2011-LWF119__20110512 AB-2011-LWF119 train train \n",
+ "521 AB-2010-MWF069__20100724 AB-2010-MWF069 train train \n",
+ "679 AB-2013-GWF012__20130512 AB-2013-GWF012 train train \n",
+ "835 AB-2006-GWF027__20060425 AB-2006-GWF027 train train \n",
+ "1603 AB-2016-RWF014__20160409 AB-2016-RWF014 train train \n",
+ "219 AB-2008-GWF062__20080622 AB-2008-GWF062 train train \n",
+ "1592 AB-2008-GWF013__20080416 AB-2008-GWF013 train train \n",
+ "1092 AB-2012-PWF166__20120914 AB-2012-PWF166 train train \n",
+ "308 AB-2015-MWF072__20150624 AB-2015-MWF072 train train \n",
+ "708 AB-2011-SWF081__20110515 AB-2011-SWF081 train train \n",
+ "408 AB-2015-LWF111__20150516 AB-2015-LWF111 train train \n",
+ "1617 AB-2011-SWF058__20110514 AB-2011-SWF058 train train \n",
+ "1319 AB-2008-LWF037__20080515 AB-2008-LWF037 train train \n",
+ "356 AB-2011-MWF008__20110515 AB-2011-MWF008 train train \n",
+ "144 AB-2010-HWF223__20101010 AB-2010-HWF223 train train \n",
+ "134 AB-2015-MWF101__20150626 AB-2015-MWF101 train train \n",
+ "953 AB-2016-PWF009__20160418 AB-2016-PWF009 train train \n",
+ "659 AB-2010-GWF151__20101010 AB-2010-GWF151 train train \n",
+ "483 AB-2017-RWF078__20171017 AB-2017-RWF078 train train \n",
+ "125 AB-2011-SWF086__20110515 AB-2011-SWF086 train train \n",
+ "1052 AB-2012-LWF055__20120512 AB-2012-LWF055 train train \n",
+ "18336 AB-2023-SWF067__20230505 AB-2023-SWF067 val val \n",
+ "117 AB-2011-SWF066__20110514 AB-2011-SWF066 train train \n",
+ "791 AB-2013-HWF062__20130621 AB-2013-HWF062 train train \n",
+ "1248 AB-2011-SWF077__20110515 AB-2011-SWF077 train train \n",
+ "1343 AB-2011-SWF054__20110514 AB-2011-SWF054 train train \n",
+ "777 AB-2015-PWF018__20150429 AB-2015-PWF018 train train \n",
+ "359 AB-2018-MWF095__20180818 AB-2018-MWF095 train train \n",
+ "690 AB-2019-SWF049__20190518 AB-2019-SWF049 train train \n",
+ "18343 AB-2023-CWF004__20230505 AB-2023-CWF004 val val \n",
+ "524 AB-2022-LWF110__20220714 AB-2022-LWF110 train train \n",
+ "1053 AB-2011-SWF070__20110515 AB-2011-SWF070 train train \n",
+ "1196 AB-2011-SWF088__20110516 AB-2011-SWF088 train train \n",
+ "298 AB-2013-RWF044__20130521 AB-2013-RWF044 train train \n",
+ "1687 AB-2018-HWF053__20180512 AB-2018-HWF053 train train \n",
+ "494 AB-2011-SWF082__20110515 AB-2011-SWF082 train train \n",
+ "1660 AB-2011-SWF056__20110514 AB-2011-SWF056 train train \n",
+ "412 AB-2015-SWF050__20150515 AB-2015-SWF050 train train \n",
+ "742 AB-2011-WWF020__20110514 AB-2011-WWF020 train train \n",
+ "299 AB-2013-RWF020__20130512 AB-2013-RWF020 train train \n",
+ "18281 AB-2023-GWF066__20230917 AB-2023-GWF066 val val \n",
+ "579 AB-2015-PWF004__20150416 AB-2015-PWF004 train train \n",
+ "1744 AB-2020-HWF044__20200804 AB-2020-HWF044 train train \n",
+ "\n",
+ " severity_bucket wind_direction outlier_feature_count base_spread_prob \\\n",
+ "1081 low NW 5 0.0819 \n",
+ "455 medium W 5 0.1140 \n",
+ "1097 low S 5 0.0988 \n",
+ "18361 low E 5 0.0905 \n",
+ "18256 high SE 5 0.1924 \n",
+ "845 low SE 5 0.0846 \n",
+ "215 medium SE 5 0.1400 \n",
+ "328 medium SE 5 0.1110 \n",
+ "521 medium SW 5 0.1047 \n",
+ "679 medium W 5 0.1094 \n",
+ "835 low W 5 0.0906 \n",
+ "1603 low NW 5 0.0808 \n",
+ "219 medium W 5 0.1364 \n",
+ "1592 low E 5 0.0834 \n",
+ "1092 low W 5 0.0886 \n",
+ "308 medium NW 5 0.1225 \n",
+ "708 low S 5 0.0897 \n",
+ "408 low N 5 0.0873 \n",
+ "1617 low S 5 0.0905 \n",
+ "1319 low W 5 0.0817 \n",
+ "356 medium W 5 0.1208 \n",
+ "144 medium SW 5 0.1150 \n",
+ "134 medium NW 5 0.1291 \n",
+ "953 low S 5 0.0945 \n",
+ "659 low W 5 0.0907 \n",
+ "483 low W 5 0.0970 \n",
+ "125 high SE 5 0.1660 \n",
+ "1052 low W 5 0.0931 \n",
+ "18336 medium SE 5 0.1053 \n",
+ "117 high SE 5 0.1615 \n",
+ "791 low NW 5 0.0953 \n",
+ "1248 low E 5 0.0895 \n",
+ "1343 low S 5 0.0841 \n",
+ "777 low W 5 0.0966 \n",
+ "359 low W 5 0.0965 \n",
+ "690 low SE 5 0.0939 \n",
+ "18343 low E 5 0.0912 \n",
+ "524 low SE 5 0.0949 \n",
+ "1053 medium SE 5 0.1051 \n",
+ "1196 medium SW 5 0.1218 \n",
+ "298 medium SE 5 0.1107 \n",
+ "1687 low NW 5 0.0837 \n",
+ "494 medium SE 5 0.1073 \n",
+ "1660 low SE 5 0.0975 \n",
+ "412 low SW 5 0.0916 \n",
+ "742 low NW 5 0.0827 \n",
+ "299 medium W 5 0.1072 \n",
+ "18281 medium SW 5 0.1316 \n",
+ "579 low NW 5 0.0907 \n",
+ "1744 low SW 5 0.0846 \n",
+ "\n",
+ " wind_strength spread_rate_1h_m spread_score weather_score \\\n",
+ "1081 0.6000 240.0 0.2326 0.8912 \n",
+ "455 0.6000 360.0 0.4109 0.8345 \n",
+ "1097 0.4750 240.0 0.3268 0.7560 \n",
+ "18361 0.5375 240.0 0.2805 0.8429 \n",
+ "18256 0.4750 1200.0 0.8465 0.7974 \n",
+ "845 0.4750 300.0 0.2477 0.7819 \n",
+ "215 0.6000 600.0 0.5557 0.9010 \n",
+ "328 0.6000 600.0 0.3944 0.7720 \n",
+ "521 0.5000 300.0 0.3595 0.7572 \n",
+ "679 0.6000 300.0 0.3855 0.8580 \n",
+ "835 0.4750 300.0 0.2808 0.8041 \n",
+ "1603 0.5375 180.0 0.2268 0.7741 \n",
+ "219 0.5625 600.0 0.5354 0.8245 \n",
+ "1592 0.6000 180.0 0.2411 0.7771 \n",
+ "1092 0.6000 240.0 0.2702 0.7942 \n",
+ "308 0.6000 600.0 0.4583 0.8456 \n",
+ "708 0.4750 300.0 0.2763 0.7812 \n",
+ "408 0.5500 420.0 0.2628 0.8018 \n",
+ "1617 0.6000 180.0 0.2804 0.8918 \n",
+ "1319 0.6000 180.0 0.2316 0.7974 \n",
+ "356 0.5375 480.0 0.4489 0.8283 \n",
+ "144 0.5375 600.0 0.4167 0.8086 \n",
+ "134 0.6000 720.0 0.4950 0.7690 \n",
+ "953 0.6000 300.0 0.3028 0.9140 \n",
+ "659 0.6000 300.0 0.2815 0.8068 \n",
+ "483 0.5375 300.0 0.3166 0.7883 \n",
+ "125 0.6000 900.0 0.7000 0.8484 \n",
+ "1052 0.6000 240.0 0.2950 0.8361 \n",
+ "18336 0.4750 300.0 0.3627 0.7720 \n",
+ "117 0.4750 900.0 0.6752 0.7540 \n",
+ "791 0.5375 300.0 0.3070 0.7704 \n",
+ "1248 0.6000 180.0 0.2748 0.8655 \n",
+ "1343 0.6000 180.0 0.2449 0.8639 \n",
+ "777 0.6000 300.0 0.3144 0.8034 \n",
+ "359 0.6000 480.0 0.3141 0.7902 \n",
+ "690 0.5375 300.0 0.2993 0.8111 \n",
+ "18343 0.5125 300.0 0.2846 0.8229 \n",
+ "524 0.4750 300.0 0.3051 0.7594 \n",
+ "1053 0.6000 240.0 0.3615 0.8868 \n",
+ "1196 0.6000 180.0 0.4546 0.8598 \n",
+ "298 0.4750 600.0 0.3929 0.7641 \n",
+ "1687 0.5375 180.0 0.2427 0.8537 \n",
+ "494 0.6000 300.0 0.3740 0.8075 \n",
+ "1660 0.5625 180.0 0.3192 0.8476 \n",
+ "412 0.4750 420.0 0.2865 0.7514 \n",
+ "742 0.6000 300.0 0.2371 0.8813 \n",
+ "299 0.6000 600.0 0.3733 0.8829 \n",
+ "18281 0.6000 600.0 0.5086 0.8319 \n",
+ "579 0.6000 300.0 0.2816 0.8068 \n",
+ "1744 0.4750 180.0 0.2480 0.7471 \n",
+ "\n",
+ " cffdrs_dryness_score size_factor fire_type_factor fuel_factor \\\n",
+ "1081 0.0 0.9501 0.80 1.06 \n",
+ "455 0.0 0.9501 1.18 1.12 \n",
+ "1097 0.0 0.9501 1.18 1.12 \n",
+ "18361 0.0 0.9500 1.00 1.06 \n",
+ "18256 0.0 0.9515 1.18 1.12 \n",
+ "845 0.0 0.9500 0.80 1.12 \n",
+ "215 0.0 0.9504 1.18 1.12 \n",
+ "328 0.0 0.9500 1.00 1.00 \n",
+ "521 0.0 0.9509 1.18 1.12 \n",
+ "679 0.0 0.9502 1.18 1.12 \n",
+ "835 0.0 0.9500 1.00 1.00 \n",
+ "1603 0.0 0.9500 1.00 1.00 \n",
+ "219 0.0 0.9504 1.18 1.12 \n",
+ "1592 0.0 0.9500 1.00 1.06 \n",
+ "1092 0.0 0.9501 1.00 1.06 \n",
+ "308 0.0 0.9500 1.00 1.12 \n",
+ "708 0.0 0.9501 1.00 1.00 \n",
+ "408 0.0 0.9501 0.80 1.00 \n",
+ "1617 0.0 0.9500 1.00 1.12 \n",
+ "1319 0.0 0.9502 1.00 1.00 \n",
+ "356 0.0 0.9519 1.18 1.06 \n",
+ "144 0.0 0.9725 1.00 1.00 \n",
+ "134 0.0 0.9502 1.00 1.12 \n",
+ "953 0.0 0.9500 1.00 1.00 \n",
+ "659 0.0 0.9502 1.00 1.00 \n",
+ "483 0.0 0.9575 1.00 1.12 \n",
+ "125 0.0 0.9500 1.18 1.12 \n",
+ "1052 0.0 0.9503 1.00 1.12 \n",
+ "18336 0.0 0.9501 1.18 1.12 \n",
+ "117 0.0 0.9501 1.18 1.12 \n",
+ "791 0.0 0.9501 1.00 1.12 \n",
+ "1248 0.0 0.9504 1.00 1.12 \n",
+ "1343 0.0 0.9501 1.00 1.00 \n",
+ "777 0.0 0.9501 1.00 1.12 \n",
+ "359 0.0 0.9507 0.80 1.12 \n",
+ "690 0.0 0.9501 1.00 1.06 \n",
+ "18343 0.0 0.9500 1.00 1.00 \n",
+ "524 0.0 0.9507 1.00 1.12 \n",
+ "1053 0.0 0.9503 1.18 1.12 \n",
+ "1196 0.0 1.1000 1.18 1.12 \n",
+ "298 0.0 0.9501 1.00 1.00 \n",
+ "1687 0.0 0.9500 1.00 1.00 \n",
+ "494 0.0 0.9522 1.18 1.12 \n",
+ "1660 0.0 0.9500 1.18 1.12 \n",
+ "412 0.0 0.9501 1.00 1.00 \n",
+ "742 0.0 0.9501 0.80 1.00 \n",
+ "299 0.0 0.9501 0.80 1.12 \n",
+ "18281 0.0 0.9504 1.18 1.06 \n",
+ "579 0.0 0.9504 1.00 1.00 \n",
+ "1744 0.0 0.9500 1.00 1.12 \n",
+ "\n",
+ " rain_factor \n",
+ "1081 1.0 \n",
+ "455 1.0 \n",
+ "1097 1.0 \n",
+ "18361 1.0 \n",
+ "18256 1.0 \n",
+ "845 1.0 \n",
+ "215 1.0 \n",
+ "328 1.0 \n",
+ "521 1.0 \n",
+ "679 1.0 \n",
+ "835 1.0 \n",
+ "1603 1.0 \n",
+ "219 1.0 \n",
+ "1592 1.0 \n",
+ "1092 1.0 \n",
+ "308 1.0 \n",
+ "708 1.0 \n",
+ "408 1.0 \n",
+ "1617 1.0 \n",
+ "1319 1.0 \n",
+ "356 1.0 \n",
+ "144 1.0 \n",
+ "134 1.0 \n",
+ "953 1.0 \n",
+ "659 1.0 \n",
+ "483 1.0 \n",
+ "125 1.0 \n",
+ "1052 1.0 \n",
+ "18336 1.0 \n",
+ "117 1.0 \n",
+ "791 1.0 \n",
+ "1248 1.0 \n",
+ "1343 1.0 \n",
+ "777 1.0 \n",
+ "359 1.0 \n",
+ "690 1.0 \n",
+ "18343 1.0 \n",
+ "524 1.0 \n",
+ "1053 1.0 \n",
+ "1196 1.0 \n",
+ "298 1.0 \n",
+ "1687 1.0 \n",
+ "494 1.0 \n",
+ "1660 1.0 \n",
+ "412 0.9 \n",
+ "742 1.0 \n",
+ "299 1.0 \n",
+ "18281 1.0 \n",
+ "579 1.0 \n",
+ "1744 1.0 "
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "cols = [\"record_id\", \"fire_id\", \"split\", \"split_source\", \"severity_bucket\", \"wind_direction\", \"outlier_feature_count\"]\n",
+ "numeric_present = [c for c in NUMERIC_COLUMNS if c in df_outliers.columns]\n",
+ "display(df_outliers[cols + numeric_present].sort_values(\"outlier_feature_count\", ascending=False).head(50))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "22fe04f7",
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "TypeError",
+ "evalue": "NDFrame.describe() got an unexpected keyword argument 'datetime_is_numeric'",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[31m---------------------------------------------------------------------------\u001b[39m",
+ "\u001b[31mTypeError\u001b[39m Traceback (most recent call last)",
+ "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[9]\u001b[39m\u001b[32m, line 5\u001b[39m\n\u001b[32m 1\u001b[39m output_dir = ROOT / \u001b[33m\"outputs/data_audit\"\u001b[39m\n\u001b[32m 2\u001b[39m output_dir.mkdir(parents=\u001b[38;5;28;01mTrue\u001b[39;00m, exist_ok=\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[32m 3\u001b[39m \n\u001b[32m 4\u001b[39m (output_dir / \u001b[33m\"summary_stats.json\"\u001b[39m).write_text(json.dumps(summary, indent=\u001b[32m2\u001b[39m))\n\u001b[32m----> \u001b[39m\u001b[32m5\u001b[39m df.describe(include=\u001b[33m\"all\"\u001b[39m, datetime_is_numeric=\u001b[38;5;28;01mTrue\u001b[39;00m).to_csv(output_dir / \u001b[33m\"describe_all.csv\"\u001b[39m)\n\u001b[32m 6\u001b[39m df_outliers.to_csv(output_dir / \u001b[33m\"outlier_rows.csv\"\u001b[39m, index=\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[32m 7\u001b[39m outlier_summary.to_csv(output_dir / \u001b[33m\"outlier_feature_counts.csv\"\u001b[39m)\n\u001b[32m 8\u001b[39m print(f\"Wrote data audit artifacts to {output_dir}\")\n",
+ "\u001b[31mTypeError\u001b[39m: NDFrame.describe() got an unexpected keyword argument 'datetime_is_numeric'"
+ ]
+ }
+ ],
+ "source": [
+ "output_dir = ROOT / \"outputs/data_audit\"\n",
+ "output_dir.mkdir(parents=True, exist_ok=True)\n",
+ "\n",
+ "(output_dir / \"summary_stats.json\").write_text(json.dumps(summary, indent=2))\n",
+ "df.describe(include=\"all\", datetime_is_numeric=True).to_csv(output_dir / \"describe_all.csv\")\n",
+ "df_outliers.to_csv(output_dir / \"outlier_rows.csv\", index=False)\n",
+ "outlier_summary.to_csv(output_dir / \"outlier_feature_counts.csv\")\n",
+ "print(f\"Wrote data audit artifacts to {output_dir}\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "4ed5a0e0",
+ "metadata": {},
+ "source": [
+ "## Go/No-Go Checklist\n",
+ "\n",
+ "- No missing required fields in seeded split datasets\n",
+ "- No unexpected split leakage between `split_source` and `split`\n",
+ "- Numeric ranges are physically plausible (`base_spread_prob` in [0,1], `wind_strength` in [0,1])\n",
+ "- Outliers are explainable and not caused by parsing/ETL bugs\n",
+ "- Severity and wind distributions are plausible across train/val/holdout"
+ ]
+ }
+ ],
+ "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.14.3"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/pyproject.toml b/pyproject.toml
index 1251b7a..c0934d8 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -16,6 +16,8 @@ dependencies = [
"xgboost>=3.0.0",
"scikit-learn>=1.7.0",
"pandas>=2.3.0",
+ "notebook>=7.5.5",
+ "seaborn>=0.13.2",
]
[dependency-groups]
diff --git a/scripts/canary.py b/scripts/canary.py
new file mode 100644
index 0000000..6a41935
--- /dev/null
+++ b/scripts/canary.py
@@ -0,0 +1,105 @@
+"""
+Canary check for reproducibility across two identical training runs.
+
+This script compares `checkpoint_metrics.json` and `best_checkpoint.json` from
+two run roots (baseline vs candidate) to detect silent non-determinism, where running
+the same job produces different outputs with the same seeds and config, which should not happen.
+"""
+
+from __future__ import annotations
+
+import argparse
+import json
+import math
+from pathlib import Path
+from typing import Any
+
+
+def _compare_values(a: Any, b: Any, *, path: str, tol: float) -> None:
+ if isinstance(a, bool) or isinstance(b, bool):
+ if a != b:
+ raise AssertionError(f"Boolean mismatch at {path}: {a} vs {b}")
+ return
+
+ if isinstance(a, (int, float)) and isinstance(b, (int, float)):
+ af = float(a)
+ bf = float(b)
+ if not math.isclose(af, bf, rel_tol=0.0, abs_tol=tol):
+ raise AssertionError(
+ f"Numeric mismatch at {path}: {af} vs {bf} (tol={tol})"
+ )
+ return
+
+ if a is None or b is None:
+ if a is not b:
+ raise AssertionError(f"None mismatch at {path}: {a} vs {b}")
+ return
+
+ if isinstance(a, str) and isinstance(b, str):
+ if a != b:
+ raise AssertionError(f"String mismatch at {path}: {a} vs {b}")
+ return
+
+ if isinstance(a, list) and isinstance(b, list):
+ if len(a) != len(b):
+ raise AssertionError(
+ f"List length mismatch at {path}: {len(a)} vs {len(b)}"
+ )
+ for index, (av, bv) in enumerate(zip(a, b, strict=True)):
+ _compare_values(av, bv, path=f"{path}[{index}]", tol=tol)
+ return
+
+ if isinstance(a, dict) and isinstance(b, dict):
+ if set(a.keys()) != set(b.keys()):
+ raise AssertionError(
+ f"Dict keys mismatch at {path}: {sorted(a.keys())} vs {sorted(b.keys())}"
+ )
+ for key in sorted(a.keys()):
+ _compare_values(a[key], b[key], path=f"{path}.{key}", tol=tol)
+ return
+
+ if a != b:
+ raise AssertionError(f"Value mismatch at {path}: {a!r} vs {b!r}")
+
+
+def _load_json(path: Path) -> Any:
+ if not path.exists():
+ raise FileNotFoundError(f"Expected artifact not found: {path}")
+ return json.loads(path.read_text())
+
+
+def main() -> None:
+ parser = argparse.ArgumentParser(
+ description="Compare reproducibility canary artifacts"
+ )
+ parser.add_argument("--baseline-root", type=Path, required=True)
+ parser.add_argument("--candidate-root", type=Path, required=True)
+ parser.add_argument("--run-label", type=str, default="smoke")
+ parser.add_argument("--algo", type=str, required=True)
+ parser.add_argument("--seed", type=int, required=True)
+ parser.add_argument("--tol", type=float, default=1e-9)
+ args = parser.parse_args()
+
+ rel = Path(args.run_label) / args.algo / f"seed_{args.seed}"
+ checkpoint_a = args.baseline_root / rel / "checkpoint_metrics.json"
+ checkpoint_b = args.candidate_root / rel / "checkpoint_metrics.json"
+ best_a = args.baseline_root / rel / "best_checkpoint.json"
+ best_b = args.candidate_root / rel / "best_checkpoint.json"
+
+ payload_a = _load_json(checkpoint_a)
+ payload_b = _load_json(checkpoint_b)
+ best_payload_a = _load_json(best_a)
+ best_payload_b = _load_json(best_b)
+
+ _compare_values(payload_a, payload_b, path="checkpoint_metrics", tol=args.tol)
+ _compare_values(
+ best_payload_a, best_payload_b, path="best_checkpoint", tol=args.tol
+ )
+
+ print(
+ f"[REPRO][{args.algo}] PASS | run_label={args.run_label} seed={args.seed} tol={args.tol}"
+ )
+
+
+if __name__ == "__main__":
+ main()
diff --git a/scripts/run_benchmark_train.ps1 b/scripts/run_benchmark_train.ps1
index 8f57a19..a1ddc84 100644
--- a/scripts/run_benchmark_train.ps1
+++ b/scripts/run_benchmark_train.ps1
@@ -9,12 +9,30 @@ if (-not (Get-Command uv -ErrorAction SilentlyContinue)) {
}
$ArtifactRoot = if ($env:ARTIFACT_ROOT) { $env:ARTIFACT_ROOT } else { "outputs/benchmark" }
-# Default smoke length is one canonical checkpoint interval.
$SmokeTimesteps = if ($env:SMOKE_TIMESTEPS) { [int]$env:SMOKE_TIMESTEPS } else { 20000 }
$SmokeSeed = if ($env:SMOKE_SEED) { [int]$env:SMOKE_SEED } else { 11 }
$SmokeEvalEpisodes = if ($env:SMOKE_EVAL_EPISODES) { [int]$env:SMOKE_EVAL_EPISODES } else { 5 }
+$KarpathyTimesteps = if ($env:KARPATHY_TIMESTEPS) { [int]$env:KARPATHY_TIMESTEPS } else { 10000 }
+$KarpathySeed = if ($env:KARPATHY_SEED) { [int]$env:KARPATHY_SEED } else { 11 }
+$KarpathyFamily = if ($env:KARPATHY_FAMILY) { $env:KARPATHY_FAMILY } else { "center,medium,A" }
+$KarpathyCheckpointEvalEpisodes = if ($env:KARPATHY_CHECKPOINT_EVAL_EPISODES) { [int]$env:KARPATHY_CHECKPOINT_EVAL_EPISODES } else { 1 }
+$PilotTimesteps = if ($env:PILOT_TIMESTEPS) { [int]$env:PILOT_TIMESTEPS } else { 40000 }
+$PilotSeed = if ($env:PILOT_SEED) { [int]$env:PILOT_SEED } else { 11 }
$FinalSeedsCsv = if ($env:FINAL_SEEDS_CSV) { $env:FINAL_SEEDS_CSV } else { "11,22,33,44,55" }
$AlgoOrderCsv = if ($env:ALGO_ORDER_CSV) { $env:ALGO_ORDER_CSV } else { "ppo,a2c,dqn" }
+$RunKarpathyCheck = if ($env:RUN_KARPATHY_CHECK) { [int]$env:RUN_KARPATHY_CHECK } else { 1 }
+$RunPilotSweep = if ($env:RUN_PILOT_SWEEP) { [int]$env:RUN_PILOT_SWEEP } else { 1 }
+$UsePilotWinners = if ($env:USE_PILOT_WINNERS) { [int]$env:USE_PILOT_WINNERS } else { 1 }
+$RunReproCanary = if ($env:RUN_REPRO_CANARY) { [int]$env:RUN_REPRO_CANARY } else { 1 }
+$ReproCanaryTol = if ($env:REPRO_CANARY_TOL) { [double]$env:REPRO_CANARY_TOL } else { 1e-9 }
+
+# Frozen canonical benchmark protocol values.
+$CanonicalCheckpointInterval = 20000
+$CanonicalCheckpointEvalEpisodes = 20
+$CanonicalFinalEvalEpisodes = 100
+$CanonicalPpoTimesteps = 200000
+$CanonicalA2cTimesteps = 200000
+$CanonicalDqnTimesteps = 200000
$TrainDataset = "data/static/scenario_parameter_records_seeded_train.json"
$ValDataset = "data/static/scenario_parameter_records_seeded_val.json"
@@ -30,67 +48,455 @@ $AlgoOrder = $AlgoOrderCsv -split "," | ForEach-Object { $_.Trim() } | Where-Obj
$FinalSeeds = $FinalSeedsCsv -split "," | ForEach-Object { [int]$_.Trim() }
Write-Host "== Benchmark training configuration =="
-Write-Host "artifact_root : $ArtifactRoot"
-Write-Host "algo_order : $AlgoOrderCsv"
-Write-Host "smoke_seed : $SmokeSeed"
-Write-Host "smoke_timesteps : $SmokeTimesteps"
-Write-Host "smoke_eval_episodes: $SmokeEvalEpisodes"
-Write-Host "final_seeds : $FinalSeedsCsv"
-Write-Host ""
-Write-Host "Note: full runs keep default trainer timesteps/envs/checkpoint cadence."
+Write-Host "artifact_root : $ArtifactRoot"
+Write-Host "algo_order : $AlgoOrderCsv"
+Write-Host "smoke_seed : $SmokeSeed"
+Write-Host "smoke_timesteps : $SmokeTimesteps"
+Write-Host "smoke_eval_episodes : $SmokeEvalEpisodes"
+Write-Host "karpathy_seed : $KarpathySeed"
+Write-Host "karpathy_timesteps : $KarpathyTimesteps"
+Write-Host "karpathy_family : $KarpathyFamily"
+Write-Host "karpathy_ckpt_eps : $KarpathyCheckpointEvalEpisodes"
+Write-Host "pilot_seed : $PilotSeed"
+Write-Host "pilot_timesteps : $PilotTimesteps"
+Write-Host "final_seeds : $FinalSeedsCsv"
+Write-Host "run_karpathy_check : $RunKarpathyCheck"
+Write-Host "run_pilot_sweep : $RunPilotSweep"
+Write-Host "use_pilot_winners : $UsePilotWinners"
+Write-Host "run_repro_canary : $RunReproCanary"
+Write-Host "repro_canary_tol : $ReproCanaryTol"
+Write-Host "canonical_ckpt_int : $CanonicalCheckpointInterval"
+Write-Host "canonical_ckpt_eval : $CanonicalCheckpointEvalEpisodes"
+Write-Host "canonical_final_eval : $CanonicalFinalEvalEpisodes"
Write-Host ""
function Invoke-SmokeTrain {
param(
- [Parameter(Mandatory = $true)][string]$Algo
+ [Parameter(Mandatory = $true)][string]$Algo,
+ [Parameter(Mandatory = $true)][string]$Root
)
Write-Host "[SMOKE] Training $Algo (seed=$SmokeSeed, timesteps=$SmokeTimesteps)"
- uv run python -m src.models.train_rl_agent `
- --algo $Algo `
- --run-label smoke `
- --seed $SmokeSeed `
- --timesteps $SmokeTimesteps `
- --artifact-root $ArtifactRoot
+ & uv @(
+ "run", "python", "-m", "src.models.train_rl_agent",
+ "--algo", $Algo,
+ "--run-label", "smoke",
+ "--seed", "$SmokeSeed",
+ "--timesteps", "$SmokeTimesteps",
+ "--train-dataset", $TrainDataset,
+ "--val-dataset", $ValDataset,
+ "--holdout-dataset", $HoldoutDataset,
+ "--checkpoint-interval", "$CanonicalCheckpointInterval",
+ "--checkpoint-eval-episodes", "$CanonicalCheckpointEvalEpisodes",
+ "--final-eval-episodes", "$CanonicalFinalEvalEpisodes",
+ "--artifact-root", $Root
+ )
+}
+
+function Invoke-ReproCanary {
+ param([Parameter(Mandatory = $true)][string]$Algo)
+
+ $CanaryRoot = Join-Path -Path $ArtifactRoot -ChildPath "repro_canary"
+ Write-Host "[REPRO] Re-running smoke for $Algo with identical seed/config"
+ Invoke-SmokeTrain -Algo $Algo -Root $CanaryRoot
+
+ & uv @(
+ "run", "python", "scripts/canary.py",
+ "--baseline-root", $ArtifactRoot,
+ "--candidate-root", $CanaryRoot,
+ "--run-label", "smoke",
+ "--algo", $Algo,
+ "--seed", "$SmokeSeed",
+ "--tol", "$ReproCanaryTol"
+ )
+}
+
+function Build-SingleRecordDataset {
+ param(
+ [Parameter(Mandatory = $true)][string]$InputPath,
+ [Parameter(Mandatory = $true)][string]$OutputPath,
+ [Parameter(Mandatory = $true)][string]$SplitName
+ )
+
+ @'
+import json
+import sys
+from pathlib import Path
+
+src = Path(sys.argv[1])
+dst = Path(sys.argv[2])
+split = sys.argv[3]
+
+payload = json.loads(src.read_text())
+records = payload.get("records", []) if isinstance(payload, dict) else payload
+if not records:
+ raise SystemExit(f"No records found in {src}")
+
+records_sorted = sorted(
+ records,
+ key=lambda rec: float(rec.get("base_spread_prob", 1.0)),
+)
+record = dict(records_sorted[0])
+record["split"] = split
+dst.parent.mkdir(parents=True, exist_ok=True)
+dst.write_text(
+ json.dumps(
+ {
+ "schema_version": payload.get("schema_version", 3) if isinstance(payload, dict) else 3,
+ "generated_at": payload.get("generated_at") if isinstance(payload, dict) else None,
+ "split": split,
+ "record_count": 1,
+ "records": [record],
+ },
+ indent=2,
+ )
+)
+print(f"Wrote one-record {split} dataset -> {dst}")
+'@ | & uv run python - $InputPath $OutputPath $SplitName
+}
+
+function Invoke-KarpathyCheck {
+ param([Parameter(Mandatory = $true)][string]$Algo)
+
+ $KarpathyRoot = Join-Path -Path $ArtifactRoot -ChildPath "karpathy"
+ $OneRecordDir = Join-Path -Path $KarpathyRoot -ChildPath "one_record_datasets"
+ $TrainOne = Join-Path -Path $OneRecordDir -ChildPath "train_single.json"
+ $ValOne = Join-Path -Path $OneRecordDir -ChildPath "val_single.json"
+ $HoldoutOne = Join-Path -Path $OneRecordDir -ChildPath "holdout_single.json"
+
+ if ((-not (Test-Path $TrainOne)) -or (-not (Test-Path $ValOne)) -or (-not (Test-Path $HoldoutOne))) {
+ Build-SingleRecordDataset -InputPath $TrainDataset -OutputPath $TrainOne -SplitName "train"
+ Build-SingleRecordDataset -InputPath $ValDataset -OutputPath $ValOne -SplitName "val"
+ Build-SingleRecordDataset -InputPath $HoldoutDataset -OutputPath $HoldoutOne -SplitName "holdout"
+ }
+
+ Write-Host "[KARPATHY] Training $Algo on one-record datasets (seed=$KarpathySeed, timesteps=$KarpathyTimesteps)"
+ & uv @(
+ "run", "python", "-m", "src.models.train_rl_agent",
+ "--algo", $Algo,
+ "--run-label", "karpathy",
+ "--seed", "$KarpathySeed",
+ "--timesteps", "$KarpathyTimesteps",
+ "--envs", "1",
+ "--train-family", $KarpathyFamily,
+ "--val-family", $KarpathyFamily,
+ "--train-dataset", $TrainOne,
+ "--val-dataset", $ValOne,
+ "--holdout-dataset", $HoldoutOne,
+ "--checkpoint-interval", "1000",
+ "--checkpoint-eval-episodes", "$KarpathyCheckpointEvalEpisodes",
+ "--final-eval-episodes", "20",
+ "--artifact-root", $ArtifactRoot
+ )
+
+ $CheckpointPath = Join-Path -Path $ArtifactRoot -ChildPath "karpathy/$Algo/seed_$KarpathySeed/checkpoint_metrics.json"
+ @'
+import json
+import sys
+from pathlib import Path
+
+path = Path(sys.argv[1])
+algo = sys.argv[2]
+metrics = json.loads(path.read_text())
+if not metrics:
+ raise SystemExit(f"No checkpoint metrics found for {algo}: {path}")
+
+first = metrics[0]["splits"]["train"]
+last = metrics[-1]["splits"]["train"]
+print(
+ f"[KARPATHY][{algo}] train return {first['mean_return']:.2f} -> {last['mean_return']:.2f}; "
+ f"train asset survival {first['asset_survival_rate']:.3f} -> {last['asset_survival_rate']:.3f}"
+)
+'@ | & uv run python - $CheckpointPath $Algo
+}
+
+function Get-PilotConfigs {
+ param([Parameter(Mandatory = $true)][string]$Algo)
+
+ switch ($Algo) {
+ "ppo" {
+ return @(
+ @{ Id = "lr3e4_n512_ent001"; Flags = @("--learning-rate", "3e-4", "--n-steps", "512", "--ent-coef", "0.01") },
+ @{ Id = "lr1e4_n1024_ent005"; Flags = @("--learning-rate", "1e-4", "--n-steps", "1024", "--ent-coef", "0.005") },
+ @{ Id = "lr5e4_n256_ent002"; Flags = @("--learning-rate", "5e-4", "--n-steps", "256", "--ent-coef", "0.02") }
+ )
+ }
+ "a2c" {
+ return @(
+ @{ Id = "lr7e4_n5_ent001"; Flags = @("--learning-rate", "7e-4", "--n-steps", "5", "--ent-coef", "0.01") },
+ @{ Id = "lr3e4_n20_ent005"; Flags = @("--learning-rate", "3e-4", "--n-steps", "20", "--ent-coef", "0.005") },
+ @{ Id = "lr1e3_n10_ent002"; Flags = @("--learning-rate", "1e-3", "--n-steps", "10", "--ent-coef", "0.02") }
+ )
+ }
+ "dqn" {
+ return @(
+ @{ Id = "lr1e4_ef02_eps005_tu1000_buf100k"; Flags = @("--learning-rate", "1e-4", "--exploration-fraction", "0.2", "--exploration-final-eps", "0.05", "--target-update-interval", "1000", "--replay-buffer-size", "100000") },
+ @{ Id = "lr3e4_ef03_eps01_tu500_buf50k"; Flags = @("--learning-rate", "3e-4", "--exploration-fraction", "0.3", "--exploration-final-eps", "0.1", "--target-update-interval", "500", "--replay-buffer-size", "50000") },
+ @{ Id = "lr5e5_ef01_eps002_tu2000_buf200k"; Flags = @("--learning-rate", "5e-5", "--exploration-fraction", "0.1", "--exploration-final-eps", "0.02", "--target-update-interval", "2000", "--replay-buffer-size", "200000") }
+ )
+ }
+ default {
+ throw "Unsupported algo '$Algo' for pilot sweep"
+ }
+ }
+}
+
+function Invoke-PilotSweep {
+ param([Parameter(Mandatory = $true)][string]$Algo)
+
+ $BaseRoot = Join-Path -Path $ArtifactRoot -ChildPath "pilot_sweeps/$Algo"
+ $Configs = Get-PilotConfigs -Algo $Algo
+
+ Write-Host "[PILOT] $Algo validation-focused pilot sweep"
+ foreach ($cfg in $Configs) {
+ $cfgId = [string]$cfg.Id
+ $cfgFlags = [string[]]$cfg.Flags
+ Write-Host "[PILOT] $Algo config=$cfgId"
+
+ $cmdArgs = @(
+ "run", "python", "-m", "src.models.train_rl_agent",
+ "--algo", $Algo,
+ "--run-label", "pilot",
+ "--seed", "$PilotSeed",
+ "--timesteps", "$PilotTimesteps",
+ "--train-dataset", $TrainDataset,
+ "--val-dataset", $ValDataset,
+ "--holdout-dataset", $HoldoutDataset,
+ "--checkpoint-interval", "$CanonicalCheckpointInterval",
+ "--checkpoint-eval-episodes", "$CanonicalCheckpointEvalEpisodes",
+ "--final-eval-episodes", "$CanonicalFinalEvalEpisodes",
+ "--artifact-root", "$BaseRoot/$cfgId"
+ )
+ $cmdArgs += $cfgFlags
+ & uv @cmdArgs
+ }
+
+ @'
+import json
+import sys
+from pathlib import Path
+
+base = Path(sys.argv[1])
+algo = sys.argv[2]
+seed = int(sys.argv[3])
+pilot_timesteps = int(sys.argv[4])
+
+
+def cli_flags_from_hyperparams(algo_name: str, hp: dict) -> list[str]:
+ if algo_name in {"ppo", "a2c"}:
+ return [
+ "--learning-rate",
+ str(hp["learning_rate"]),
+ "--n-steps",
+ str(hp["n_steps"]),
+ "--ent-coef",
+ str(hp["ent_coef"]),
+ ]
+ if algo_name == "dqn":
+ return [
+ "--learning-rate",
+ str(hp["learning_rate"]),
+ "--exploration-fraction",
+ str(hp["exploration_fraction"]),
+ "--exploration-final-eps",
+ str(hp["exploration_final_eps"]),
+ "--target-update-interval",
+ str(int(hp["target_update_interval"])),
+ "--replay-buffer-size",
+ str(int(hp["buffer_size"])),
+ ]
+ raise ValueError(f"Unsupported algo for cli flag mapping: {algo_name}")
+
+
+rows = []
+for cfg_dir in sorted(base.iterdir()):
+ if not cfg_dir.is_dir():
+ continue
+ best_path = cfg_dir / "pilot" / algo / f"seed_{seed}" / "best_checkpoint.json"
+ run_cfg_path = cfg_dir / "pilot" / algo / f"seed_{seed}" / "config.json"
+ if not best_path.exists() or not run_cfg_path.exists():
+ continue
+ payload = json.loads(best_path.read_text())
+ run_cfg = json.loads(run_cfg_path.read_text())
+ hp = run_cfg.get("hyperparameters", {})
+ val = payload.get("val_metrics", {})
+ rows.append(
+ {
+ "config": cfg_dir.name,
+ "asset_survival": float(val.get("asset_survival_rate", 0.0)),
+ "mean_return": float(val.get("mean_return", 0.0)),
+ "containment": float(val.get("containment_success_rate", 0.0)),
+ "step": int(payload.get("selected_train_steps", 0)),
+ "hyperparameters": hp,
+ "cli_flags": cli_flags_from_hyperparams(algo, hp),
+ }
+ )
+
+rows.sort(key=lambda x: (x["asset_survival"], x["mean_return"], x["containment"]), reverse=True)
+print(f"[PILOT][{algo}] leaderboard (validation checkpoint metric):")
+for i, row in enumerate(rows, start=1):
+ print(
+ f" {i:>2}. {row['config']:<36} "
+ f"asset_survival={row['asset_survival']:.3f} "
+ f"return={row['mean_return']:.2f} "
+ f"containment={row['containment']:.3f} "
+ f"step={row['step']}"
+ )
+
+if rows:
+ winner = {
+ "algo": algo,
+ "pilot_seed": seed,
+ "pilot_timesteps": pilot_timesteps,
+ "selection_metric": "val.asset_survival_rate",
+ "tie_breakers": ["val.mean_return", "val.containment_success_rate"],
+ "selected": {
+ "config": rows[0]["config"],
+ "asset_survival": rows[0]["asset_survival"],
+ "mean_return": rows[0]["mean_return"],
+ "containment": rows[0]["containment"],
+ "selected_checkpoint_step": rows[0]["step"],
+ "hyperparameters": rows[0]["hyperparameters"],
+ "cli_flags": rows[0]["cli_flags"],
+ },
+ "candidates": [
+ {
+ "config": row["config"],
+ "asset_survival": row["asset_survival"],
+ "mean_return": row["mean_return"],
+ "containment": row["containment"],
+ "selected_checkpoint_step": row["step"],
+ }
+ for row in rows
+ ],
+ }
+ winner_path = base / "pilot_winner.json"
+ winner_path.write_text(json.dumps(winner, indent=2))
+ print(f"[PILOT][{algo}] selected candidate -> {rows[0]['config']}")
+ print(f"[PILOT][{algo}] wrote winner file -> {winner_path}")
+else:
+ print(f"[PILOT][{algo}] no completed pilot runs found")
+'@ | & uv run python - $BaseRoot $Algo $PilotSeed $PilotTimesteps
+}
+
+function Get-WinnerFlags {
+ param([Parameter(Mandatory = $true)][string]$Algo)
+
+ $winnerPath = Join-Path -Path $ArtifactRoot -ChildPath "pilot_sweeps/$Algo/pilot_winner.json"
+ if (-not (Test-Path $winnerPath)) {
+ return @()
+ }
+
+ $winner = Get-Content $winnerPath -Raw | ConvertFrom-Json -AsHashtable
+ if ($null -eq $winner.selected) {
+ return @()
+ }
+ if ($null -eq $winner.selected.cli_flags) {
+ return @()
+ }
+ return [string[]]$winner.selected.cli_flags
}
function Invoke-FinalTrain {
param(
[Parameter(Mandatory = $true)][string]$Algo,
- [Parameter(Mandatory = $true)][int]$Seed
+ [Parameter(Mandatory = $true)][int]$Seed,
+ [Parameter(Mandatory = $true)][int]$Timesteps,
+ [Parameter()][string[]]$ExtraArgs = @()
)
- Write-Host "[FINAL] Training $Algo (seed=$Seed, default timesteps/envs)"
- uv run python -m src.models.train_rl_agent `
- --algo $Algo `
- --run-label final `
- --seed $Seed `
- --artifact-root $ArtifactRoot
+ Write-Host "[FINAL] Training $Algo (seed=$Seed, timesteps=$Timesteps)"
+ $cmdArgs = @(
+ "run", "python", "-m", "src.models.train_rl_agent",
+ "--algo", $Algo,
+ "--run-label", "final",
+ "--seed", "$Seed",
+ "--timesteps", "$Timesteps",
+ "--train-dataset", $TrainDataset,
+ "--val-dataset", $ValDataset,
+ "--holdout-dataset", $HoldoutDataset,
+ "--checkpoint-interval", "$CanonicalCheckpointInterval",
+ "--checkpoint-eval-episodes", "$CanonicalCheckpointEvalEpisodes",
+ "--final-eval-episodes", "$CanonicalFinalEvalEpisodes",
+ "--artifact-root", $ArtifactRoot
+ )
+ $cmdArgs += $ExtraArgs
+ & uv @cmdArgs
+}
+
+Write-Host "== Stage 1/5: Karpathy one-record overfit checks =="
+if ($RunKarpathyCheck -eq 1) {
+ foreach ($algo in $AlgoOrder) {
+ Invoke-KarpathyCheck -Algo $algo
+ }
+}
+else {
+ Write-Host "Skipping Karpathy checks (RUN_KARPATHY_CHECK=$RunKarpathyCheck)"
}
-Write-Host "== Stage 1/3: Algorithm smoke training =="
+Write-Host ""
+Write-Host "== Stage 2/5: Algorithm smoke training =="
foreach ($algo in $AlgoOrder) {
- Invoke-SmokeTrain -Algo $algo
+ Invoke-SmokeTrain -Algo $algo -Root $ArtifactRoot
+ if ($RunReproCanary -eq 1) {
+ Invoke-ReproCanary -Algo $algo
+ }
}
Write-Host ""
-# TODO: Check seed!
-Write-Host "== Stage 2/3: Smoke evaluation (load + score sanity check) =="
-uv run python -m src.models.evaluate_agents `
- --agents ppo,a2c,dqn,greedy,random `
- --ppo-model "$ArtifactRoot/smoke/ppo/seed_$SmokeSeed/best_model.zip" `
- --a2c-model "$ArtifactRoot/smoke/a2c/seed_$SmokeSeed/best_model.zip" `
- --dqn-model "$ArtifactRoot/smoke/dqn/seed_$SmokeSeed/best_model.zip" `
- --seeds "$SmokeSeed" `
- --episodes $SmokeEvalEpisodes `
- --run-label smoke `
- --output "$ArtifactRoot/smoke/eval_smoke.json"
+Write-Host "== Stage 3/5: Smoke evaluation (load + score sanity check) =="
+& uv @(
+ "run", "python", "-m", "src.models.evaluate_agents",
+ "--agents", "ppo,a2c,dqn,greedy,random",
+ "--ppo-model", "$ArtifactRoot/smoke/ppo/seed_$SmokeSeed/best_model.zip",
+ "--a2c-model", "$ArtifactRoot/smoke/a2c/seed_$SmokeSeed/best_model.zip",
+ "--dqn-model", "$ArtifactRoot/smoke/dqn/seed_$SmokeSeed/best_model.zip",
+ "--seeds", "$SmokeSeed",
+ "--episodes", "$SmokeEvalEpisodes",
+ "--run-label", "smoke",
+ "--output", "$ArtifactRoot/smoke/eval_smoke.json"
+)
+
+Write-Host ""
+Write-Host "== Stage 4/5: Validation-only pilot sweeps (hyperparameter feasibility) =="
+if ($RunPilotSweep -eq 1) {
+ foreach ($algo in $AlgoOrder) {
+ Invoke-PilotSweep -Algo $algo
+ }
+}
+else {
+ Write-Host "Skipping pilot sweeps (RUN_PILOT_SWEEP=$RunPilotSweep)"
+}
Write-Host ""
-Write-Host "== Stage 3/3: Full 5-seed benchmark training =="
+Write-Host "== Stage 5/5: Full 5-seed benchmark training =="
foreach ($algo in $AlgoOrder) {
+ $finalTimesteps = switch ($algo) {
+ "ppo" { $CanonicalPpoTimesteps }
+ "a2c" { $CanonicalA2cTimesteps }
+ "dqn" { $CanonicalDqnTimesteps }
+ default { throw "Unsupported algo '$algo'" }
+ }
+
+ $finalFlags = @()
+ $hparamSource = "defaults"
+ if ($UsePilotWinners -eq 1) {
+ $finalFlags = Get-WinnerFlags -Algo $algo
+ if ($finalFlags.Count -gt 0) {
+ $hparamSource = "pilot_winner"
+ }
+ else {
+ Write-Warning "Missing or empty pilot winner file for $algo under $ArtifactRoot/pilot_sweeps/$algo; using defaults."
+ }
+ }
+
+ Write-Host "[FINAL] $algo hyperparameters source: $hparamSource"
+ if ($finalFlags.Count -gt 0) {
+ Write-Host "[FINAL] $algo hyperparameter flags: $($finalFlags -join ' ')"
+ }
+
foreach ($seed in $FinalSeeds) {
- Invoke-FinalTrain -Algo $algo -Seed $seed
+ Invoke-FinalTrain -Algo $algo -Seed $seed -Timesteps $finalTimesteps -ExtraArgs $finalFlags
}
}
diff --git a/scripts/run_benchmark_train.sh b/scripts/run_benchmark_train.sh
index 6d4d092..8b43876 100755
--- a/scripts/run_benchmark_train.sh
+++ b/scripts/run_benchmark_train.sh
@@ -1,22 +1,46 @@
#!/usr/bin/env bash
+
+# Re-exec under bash when invoked via `sh`.
+if [ -z "${BASH_VERSION:-}" ]; then
+ exec bash "$0" "$@"
+fi
+
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$ROOT_DIR"
if ! command -v uv >/dev/null 2>&1; then
- echo "ERROR: 'uv' is not installed or not on PATH."
- echo "Install: https://docs.astral.sh/uv/getting-started/installation/"
+ echo "ERROR: 'uv' is not installed!"
exit 1
fi
ARTIFACT_ROOT="${ARTIFACT_ROOT:-outputs/benchmark}"
-# Default smoke length is one canonical checkpoint interval.
+# NOTE: The default length for one smoke test is 1 checkpoint interval.
SMOKE_TIMESTEPS="${SMOKE_TIMESTEPS:-20000}"
SMOKE_SEED="${SMOKE_SEED:-11}"
SMOKE_EVAL_EPISODES="${SMOKE_EVAL_EPISODES:-5}"
+KARPATHY_TIMESTEPS="${KARPATHY_TIMESTEPS:-10000}"
+KARPATHY_SEED="${KARPATHY_SEED:-11}"
+KARPATHY_FAMILY="${KARPATHY_FAMILY:-center,medium,A}"
+KARPATHY_CHECKPOINT_EVAL_EPISODES="${KARPATHY_CHECKPOINT_EVAL_EPISODES:-1}"
+PILOT_TIMESTEPS="${PILOT_TIMESTEPS:-40000}"
+PILOT_SEED="${PILOT_SEED:-11}"
FINAL_SEEDS_CSV="${FINAL_SEEDS_CSV:-11,22,33,44,55}"
ALGO_ORDER_CSV="${ALGO_ORDER_CSV:-ppo,a2c,dqn}"
+RUN_KARPATHY_CHECK="${RUN_KARPATHY_CHECK:-1}"
+RUN_PILOT_SWEEP="${RUN_PILOT_SWEEP:-1}"
+USE_PILOT_WINNERS="${USE_PILOT_WINNERS:-1}"
+RUN_REPRO_CANARY="${RUN_REPRO_CANARY:-1}"
+REPRO_CANARY_TOL="${REPRO_CANARY_TOL:-1e-9}"
+
+# Benchmark values according to training plan
+CANONICAL_CHECKPOINT_INTERVAL=20000
+CANONICAL_CHECKPOINT_EVAL_EPISODES=20
+CANONICAL_FINAL_EVAL_EPISODES=100
+CANONICAL_PPO_TIMESTEPS=200000
+CANONICAL_A2C_TIMESTEPS=200000
+CANONICAL_DQN_TIMESTEPS=200000
TRAIN_DATASET="data/static/scenario_parameter_records_seeded_train.json"
VAL_DATASET="data/static/scenario_parameter_records_seeded_val.json"
@@ -39,40 +63,371 @@ echo "algo_order : $ALGO_ORDER_CSV"
echo "smoke_seed : $SMOKE_SEED"
echo "smoke_timesteps : $SMOKE_TIMESTEPS"
echo "smoke_eval_episodes: $SMOKE_EVAL_EPISODES"
+echo "karpathy_seed : $KARPATHY_SEED"
+echo "karpathy_timesteps : $KARPATHY_TIMESTEPS"
+echo "karpathy_family : $KARPATHY_FAMILY"
+echo "karpathy_ckpt_eps : $KARPATHY_CHECKPOINT_EVAL_EPISODES"
+echo "pilot_seed : $PILOT_SEED"
+echo "pilot_timesteps : $PILOT_TIMESTEPS"
echo "final_seeds : $FINAL_SEEDS_CSV"
-echo
-echo "Note: full runs keep default trainer timesteps/envs/checkpoint cadence."
+echo "run_karpathy_check : $RUN_KARPATHY_CHECK"
+echo "run_pilot_sweep : $RUN_PILOT_SWEEP"
+echo "use_pilot_winners : $USE_PILOT_WINNERS"
+echo "run_repro_canary : $RUN_REPRO_CANARY"
+echo "repro_canary_tol : $REPRO_CANARY_TOL"
+echo "canonical_ckpt_int : $CANONICAL_CHECKPOINT_INTERVAL"
+echo "canonical_ckpt_eval: $CANONICAL_CHECKPOINT_EVAL_EPISODES"
+echo "canonical_final_eval: $CANONICAL_FINAL_EVAL_EPISODES"
echo
train_smoke() {
local algo="$1"
+ local artifact_root="$2"
echo "[SMOKE] Training $algo (seed=$SMOKE_SEED, timesteps=$SMOKE_TIMESTEPS)"
uv run python -m src.models.train_rl_agent \
--algo "$algo" \
--run-label smoke \
--seed "$SMOKE_SEED" \
--timesteps "$SMOKE_TIMESTEPS" \
+ --train-dataset "$TRAIN_DATASET" \
+ --val-dataset "$VAL_DATASET" \
+ --holdout-dataset "$HOLDOUT_DATASET" \
+ --checkpoint-interval "$CANONICAL_CHECKPOINT_INTERVAL" \
+ --checkpoint-eval-episodes "$CANONICAL_CHECKPOINT_EVAL_EPISODES" \
+ --final-eval-episodes "$CANONICAL_FINAL_EVAL_EPISODES" \
+ --artifact-root "$artifact_root"
+}
+
+repro_canary_smoke() {
+ local algo="$1"
+ local canary_root="$ARTIFACT_ROOT/repro_canary"
+
+ echo "[REPRO] Re-running smoke for $algo with identical seed/config"
+ train_smoke "$algo" "$canary_root"
+
+ uv run python scripts/canary.py \
+ --baseline-root "$ARTIFACT_ROOT" \
+ --candidate-root "$canary_root" \
+ --run-label smoke \
+ --algo "$algo" \
+ --seed "$SMOKE_SEED" \
+ --tol "$REPRO_CANARY_TOL"
+}
+
+build_single_record_dataset() {
+ local input_path="$1"
+ local output_path="$2"
+ local split_name="$3"
+ uv run python - "$input_path" "$output_path" "$split_name" <<'PY'
+import json
+import sys
+from pathlib import Path
+
+src = Path(sys.argv[1])
+dst = Path(sys.argv[2])
+split = sys.argv[3]
+
+payload = json.loads(src.read_text())
+records = payload.get("records", []) if isinstance(payload, dict) else payload
+if not records:
+ raise SystemExit(f"No records found in {src}")
+
+records_sorted = sorted(
+ records,
+ key=lambda rec: float(rec.get("base_spread_prob", 1.0)),
+)
+record = dict(records_sorted[0])
+record["split"] = split
+dst.parent.mkdir(parents=True, exist_ok=True)
+dst.write_text(
+ json.dumps(
+ {
+ "schema_version": payload.get("schema_version", 3) if isinstance(payload, dict) else 3,
+ "generated_at": payload.get("generated_at") if isinstance(payload, dict) else None,
+ "split": split,
+ "record_count": 1,
+ "records": [record],
+ },
+ indent=2,
+ )
+)
+print(f"Wrote one-record {split} dataset -> {dst}")
+PY
+}
+
+karpathy_check() {
+ local algo="$1"
+ local karpathy_root="$ARTIFACT_ROOT/karpathy"
+ local one_record_dir="$karpathy_root/one_record_datasets"
+ local train_one="$one_record_dir/train_single.json"
+ local val_one="$one_record_dir/val_single.json"
+ local holdout_one="$one_record_dir/holdout_single.json"
+
+ if [[ ! -f "$train_one" || ! -f "$val_one" || ! -f "$holdout_one" ]]; then
+ build_single_record_dataset "$TRAIN_DATASET" "$train_one" "train"
+ build_single_record_dataset "$VAL_DATASET" "$val_one" "val"
+ build_single_record_dataset "$HOLDOUT_DATASET" "$holdout_one" "holdout"
+ fi
+
+ echo "[CHECK FOR OVERFIT ON SINGLE BATCH] Training $algo on one-record datasets (seed=$KARPATHY_SEED, timesteps=$KARPATHY_TIMESTEPS)"
+ uv run python -m src.models.train_rl_agent \
+ --algo "$algo" \
+ --run-label karpathy \
+ --seed "$KARPATHY_SEED" \
+ --timesteps "$KARPATHY_TIMESTEPS" \
+ --envs 1 \
+ --train-family "$KARPATHY_FAMILY" \
+ --val-family "$KARPATHY_FAMILY" \
+ --train-dataset "$train_one" \
+ --val-dataset "$val_one" \
+ --holdout-dataset "$holdout_one" \
+ --checkpoint-interval 1000 \
+ --checkpoint-eval-episodes "$KARPATHY_CHECKPOINT_EVAL_EPISODES" \
+ --final-eval-episodes 20 \
--artifact-root "$ARTIFACT_ROOT"
+
+ uv run python - "$ARTIFACT_ROOT/karpathy/$algo/seed_${KARPATHY_SEED}/checkpoint_metrics.json" "$algo" <<'PY'
+import json
+import sys
+from pathlib import Path
+
+path = Path(sys.argv[1])
+algo = sys.argv[2]
+metrics = json.loads(path.read_text())
+if not metrics:
+ raise SystemExit(f"No checkpoint metrics found for {algo}: {path}")
+
+first = metrics[0]["splits"]["train"]
+last = metrics[-1]["splits"]["train"]
+print(
+ f"[OVERFIT][{algo}] train return {first['mean_return']:.2f} -> {last['mean_return']:.2f}; "
+ f"train asset survival {first['asset_survival_rate']:.3f} -> {last['asset_survival_rate']:.3f}"
+)
+PY
+}
+
+pilot_sweep_algo() { # hyperparam tuning
+ local algo="$1"
+ local base_root="$ARTIFACT_ROOT/pilot_sweeps/$algo"
+ local cfg_id cfg_args
+ local -a configs
+
+ case "$algo" in
+ ppo)
+ configs=(
+ "lr3e4_n512_ent001 --learning-rate 3e-4 --n-steps 512 --ent-coef 0.01"
+ "lr1e4_n1024_ent005 --learning-rate 1e-4 --n-steps 1024 --ent-coef 0.005"
+ "lr5e4_n256_ent002 --learning-rate 5e-4 --n-steps 256 --ent-coef 0.02"
+ )
+ ;;
+ a2c)
+ configs=(
+ "lr7e4_n5_ent001 --learning-rate 7e-4 --n-steps 5 --ent-coef 0.01"
+ "lr3e4_n20_ent005 --learning-rate 3e-4 --n-steps 20 --ent-coef 0.005"
+ "lr1e3_n10_ent002 --learning-rate 1e-3 --n-steps 10 --ent-coef 0.02"
+ )
+ ;;
+ dqn)
+ configs=(
+ "lr1e4_ef02_eps005_tu1000_buf100k --learning-rate 1e-4 --exploration-fraction 0.2 --exploration-final-eps 0.05 --target-update-interval 1000 --replay-buffer-size 100000"
+ "lr3e4_ef03_eps01_tu500_buf50k --learning-rate 3e-4 --exploration-fraction 0.3 --exploration-final-eps 0.1 --target-update-interval 500 --replay-buffer-size 50000"
+ "lr5e5_ef01_eps002_tu2000_buf200k --learning-rate 5e-5 --exploration-fraction 0.1 --exploration-final-eps 0.02 --target-update-interval 2000 --replay-buffer-size 200000"
+ )
+ ;;
+ *)
+ echo "ERROR: unsupported algo '$algo' for pilot sweep"
+ exit 1
+ ;;
+ esac
+
+ echo "[HYPERPARAM TUNING] $algo validation hyperparam sweep"
+ for spec in "${configs[@]}"; do
+ cfg_id="${spec%% *}"
+ cfg_args="${spec#* }"
+ echo "[PILOT] $algo config=$cfg_id"
+ # shellcheck disable=SC2086
+ uv run python -m src.models.train_rl_agent \
+ --algo "$algo" \
+ --run-label pilot \
+ --seed "$PILOT_SEED" \
+ --timesteps "$PILOT_TIMESTEPS" \
+ --train-dataset "$TRAIN_DATASET" \
+ --val-dataset "$VAL_DATASET" \
+ --holdout-dataset "$HOLDOUT_DATASET" \
+ --checkpoint-interval "$CANONICAL_CHECKPOINT_INTERVAL" \
+ --checkpoint-eval-episodes "$CANONICAL_CHECKPOINT_EVAL_EPISODES" \
+ --final-eval-episodes "$CANONICAL_FINAL_EVAL_EPISODES" \
+ --artifact-root "$base_root/$cfg_id" \
+ $cfg_args
+ done
+
+ uv run python - "$base_root" "$algo" "$PILOT_SEED" "$PILOT_TIMESTEPS" <<'PY'
+import json
+import sys
+from pathlib import Path
+
+base = Path(sys.argv[1])
+algo = sys.argv[2]
+seed = int(sys.argv[3])
+pilot_timesteps = int(sys.argv[4])
+
+
+def cli_flags_from_hyperparams(algo_name: str, hp: dict) -> list[str]:
+ if algo_name in {"ppo", "a2c"}:
+ return [
+ "--learning-rate",
+ str(hp["learning_rate"]),
+ "--n-steps",
+ str(hp["n_steps"]),
+ "--ent-coef",
+ str(hp["ent_coef"]),
+ ]
+ if algo_name == "dqn":
+ return [
+ "--learning-rate",
+ str(hp["learning_rate"]),
+ "--exploration-fraction",
+ str(hp["exploration_fraction"]),
+ "--exploration-final-eps",
+ str(hp["exploration_final_eps"]),
+ "--target-update-interval",
+ str(int(hp["target_update_interval"])),
+ "--replay-buffer-size",
+ str(int(hp["buffer_size"])),
+ ]
+ raise ValueError(f"Unsupported algo for cli flag mapping: {algo_name}")
+
+rows = []
+for cfg_dir in sorted(base.iterdir()):
+ if not cfg_dir.is_dir():
+ continue
+ best_path = cfg_dir / "pilot" / algo / f"seed_{seed}" / "best_checkpoint.json"
+ if not best_path.exists():
+ continue
+ payload = json.loads(best_path.read_text())
+ run_cfg_path = cfg_dir / "pilot" / algo / f"seed_{seed}" / "config.json"
+ if not run_cfg_path.exists():
+ continue
+ run_cfg = json.loads(run_cfg_path.read_text())
+ hp = run_cfg.get("hyperparameters", {})
+ val = payload.get("val_metrics", {})
+ rows.append(
+ {
+ "config": cfg_dir.name,
+ "asset_survival": float(val.get("asset_survival_rate", 0.0)),
+ "mean_return": float(val.get("mean_return", 0.0)),
+ "containment": float(val.get("containment_success_rate", 0.0)),
+ "step": int(payload.get("selected_train_steps", 0)),
+ "hyperparameters": hp,
+ "cli_flags": cli_flags_from_hyperparams(algo, hp),
+ }
+ )
+
+rows.sort(key=lambda x: (x["asset_survival"], x["mean_return"], x["containment"]), reverse=True)
+print(f"[PILOT][{algo}] leaderboard (validation checkpoint metric):")
+for i, row in enumerate(rows, start=1):
+ print(
+ f" {i:>2}. {row['config']:<36} "
+ f"asset_survival={row['asset_survival']:.3f} "
+ f"return={row['mean_return']:.2f} "
+ f"containment={row['containment']:.3f} "
+ f"step={row['step']}"
+ )
+if rows:
+ print(f"[PILOT][{algo}] selected candidate -> {rows[0]['config']}")
+ winner = {
+ "algo": algo,
+ "pilot_seed": seed,
+ "pilot_timesteps": pilot_timesteps,
+ "selection_metric": "val.asset_survival_rate",
+ "tie_breakers": ["val.mean_return", "val.containment_success_rate"],
+ "selected": {
+ "config": rows[0]["config"],
+ "asset_survival": rows[0]["asset_survival"],
+ "mean_return": rows[0]["mean_return"],
+ "containment": rows[0]["containment"],
+ "selected_checkpoint_step": rows[0]["step"],
+ "hyperparameters": rows[0]["hyperparameters"],
+ "cli_flags": rows[0]["cli_flags"],
+ },
+ "candidates": [
+ {
+ "config": row["config"],
+ "asset_survival": row["asset_survival"],
+ "mean_return": row["mean_return"],
+ "containment": row["containment"],
+ "selected_checkpoint_step": row["step"],
+ }
+ for row in rows
+ ],
+ }
+ winner_path = base / "pilot_winner.json"
+ winner_path.write_text(json.dumps(winner, indent=2))
+ print(f"[PILOT][{algo}] wrote winner file -> {winner_path}")
+else:
+ print(f"[PILOT][{algo}] no completed pilot runs found")
+PY
+}
+
+load_winner_flags() {
+ local algo="$1"
+ local winner_path="$ARTIFACT_ROOT/pilot_sweeps/$algo/pilot_winner.json"
+ if [[ ! -f "$winner_path" ]]; then
+ return 0
+ fi
+ uv run python - "$winner_path" <<'PY'
+import json
+import sys
+from pathlib import Path
+
+path = Path(sys.argv[1])
+payload = json.loads(path.read_text())
+for token in payload.get("selected", {}).get("cli_flags", []):
+ print(str(token))
+PY
}
train_final() {
local algo="$1"
local seed="$2"
+ local timesteps="$3"
+ local -a extra_args=("${@:4}")
echo "[FINAL] Training $algo (seed=$seed, default timesteps/envs)"
uv run python -m src.models.train_rl_agent \
--algo "$algo" \
--run-label final \
--seed "$seed" \
- --artifact-root "$ARTIFACT_ROOT"
+ --timesteps "$timesteps" \
+ --train-dataset "$TRAIN_DATASET" \
+ --val-dataset "$VAL_DATASET" \
+ --holdout-dataset "$HOLDOUT_DATASET" \
+ --checkpoint-interval "$CANONICAL_CHECKPOINT_INTERVAL" \
+ --checkpoint-eval-episodes "$CANONICAL_CHECKPOINT_EVAL_EPISODES" \
+ --final-eval-episodes "$CANONICAL_FINAL_EVAL_EPISODES" \
+ --artifact-root "$ARTIFACT_ROOT" \
+ "${extra_args[@]}"
}
-echo "== Stage 1/3: Algorithm smoke training =="
+echo "== Stage 1/5: Fitting model on a single batch for overfit checks =="
+if [[ "$RUN_KARPATHY_CHECK" == "1" ]]; then
+ for algo in "${ALGO_ORDER[@]}"; do
+ karpathy_check "$algo"
+ done
+else
+ echo "Skipping ovefit check (RUN_KARPATHY_CHECK=$RUN_KARPATHY_CHECK)"
+fi
+
+echo
+echo "== Stage 2/5: Algo smoke training check =="
for algo in "${ALGO_ORDER[@]}"; do
- train_smoke "$algo"
+ train_smoke "$algo" "$ARTIFACT_ROOT"
+ if [[ "$RUN_REPRO_CANARY" == "1" ]]; then
+ repro_canary_smoke "$algo"
+ fi
done
echo
-echo "== Stage 2/3: Smoke evaluation (load + score sanity check) =="
+echo "== Stage 3/5: Smoke eval (load + score sanity check) =="
uv run python -m src.models.evaluate_agents \
--agents ppo,a2c,dqn,greedy,random \
--ppo-model "$ARTIFACT_ROOT/smoke/ppo/seed_${SMOKE_SEED}/best_model.zip" \
@@ -84,11 +439,46 @@ uv run python -m src.models.evaluate_agents \
--output "$ARTIFACT_ROOT/smoke/eval_smoke.json"
echo
-# TODO: Check seeds for correctness!
-echo "== Stage 3/3: Full 5-seed benchmark training =="
+echo "== Stage 4/5: Hyperparam Validation Holdout Sweep =="
+if [[ "$RUN_PILOT_SWEEP" == "1" ]]; then
+ for algo in "${ALGO_ORDER[@]}"; do
+ pilot_sweep_algo "$algo"
+ done
+else
+ echo "Skpping hyperparam validation holdout sweep (RUN_PILOT_SWEEP=$RUN_PILOT_SWEEP)"
+fi
+
+echo
+echo "== Stage 5/5: FULL TRAINING + 5 Seed Benchmark =="
for algo in "${ALGO_ORDER[@]}"; do
+ final_hparam_source="defaults"
+ final_hparam_file="$ARTIFACT_ROOT/pilot_sweeps/$algo/pilot_winner.json"
+ declare -a final_hparam_flags=()
+
+ if [[ "$USE_PILOT_WINNERS" == "1" ]]; then
+ if [[ -f "$final_hparam_file" ]]; then
+ mapfile -t final_hparam_flags < <(load_winner_flags "$algo")
+ final_hparam_source="pilot_winner"
+ else
+ echo "WARNING: Missing pilot winner file for $algo at $final_hparam_file; using defaults."
+ fi
+ fi
+
+ case "$algo" in
+ ppo) final_timesteps="$CANONICAL_PPO_TIMESTEPS" ;;
+ a2c) final_timesteps="$CANONICAL_A2C_TIMESTEPS" ;;
+ dqn) final_timesteps="$CANONICAL_DQN_TIMESTEPS" ;;
+ *)
+ echo "ERROR: unsupported algo '$algo'"
+ exit 1
+ ;;
+ esac
+ echo "[FINAL] $algo hyperparameters source: $final_hparam_source"
+ if [[ ${#final_hparam_flags[@]} -gt 0 ]]; then
+ echo "[FINAL] $algo hyperparameter flags: ${final_hparam_flags[*]}"
+ fi
for seed in "${FINAL_SEEDS[@]}"; do
- train_final "$algo" "$seed"
+ train_final "$algo" "$seed" "$final_timesteps" "${final_hparam_flags[@]}"
done
done
diff --git a/scripts/stages/01_karpathy_overfit.sh b/scripts/stages/01_karpathy_overfit.sh
new file mode 100755
index 0000000..bf58a88
--- /dev/null
+++ b/scripts/stages/01_karpathy_overfit.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+
+if [ -z "${BASH_VERSION:-}" ]; then
+ exec bash "$0" "$@"
+fi
+
+set -euo pipefail
+
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+source "$SCRIPT_DIR/_common.sh"
+init_benchmark_context
+
+print_stage_banner "Stage 1/5: Karpathy one-record overfit checks"
+if [[ "$RUN_KARPATHY_CHECK" != "1" ]]; then
+ echo "Skipping Karpathy checks (RUN_KARPATHY_CHECK=$RUN_KARPATHY_CHECK)"
+ exit 0
+fi
+
+for algo in "${ALGO_ORDER[@]}"; do
+ karpathy_check "$algo"
+done
+
+echo
+echo "Stage 1 complete."
diff --git a/scripts/stages/02_smoke_train_and_repro.sh b/scripts/stages/02_smoke_train_and_repro.sh
new file mode 100755
index 0000000..0f9155d
--- /dev/null
+++ b/scripts/stages/02_smoke_train_and_repro.sh
@@ -0,0 +1,22 @@
+#!/usr/bin/env bash
+
+if [ -z "${BASH_VERSION:-}" ]; then
+ exec bash "$0" "$@"
+fi
+
+set -euo pipefail
+
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+source "$SCRIPT_DIR/_common.sh"
+init_benchmark_context
+
+print_stage_banner "Stage 2/5: Smoke training and reproducibility canary"
+for algo in "${ALGO_ORDER[@]}"; do
+ train_smoke "$algo" "$ARTIFACT_ROOT"
+ if [[ "$RUN_REPRO_CANARY" == "1" ]]; then
+ repro_canary_smoke "$algo"
+ fi
+done
+
+echo
+echo "Stage 2 complete."
diff --git a/scripts/stages/03_smoke_eval.sh b/scripts/stages/03_smoke_eval.sh
new file mode 100755
index 0000000..af1827d
--- /dev/null
+++ b/scripts/stages/03_smoke_eval.sh
@@ -0,0 +1,25 @@
+#!/usr/bin/env bash
+
+if [ -z "${BASH_VERSION:-}" ]; then
+ exec bash "$0" "$@"
+fi
+
+set -euo pipefail
+
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+source "$SCRIPT_DIR/_common.sh"
+init_benchmark_context
+
+print_stage_banner "Stage 3/5: Smoke evaluation"
+uv run python -m src.models.evaluate_agents \
+ --agents ppo,a2c,dqn,greedy,random \
+ --ppo-model "$ARTIFACT_ROOT/smoke/ppo/seed_${SMOKE_SEED}/best_model.zip" \
+ --a2c-model "$ARTIFACT_ROOT/smoke/a2c/seed_${SMOKE_SEED}/best_model.zip" \
+ --dqn-model "$ARTIFACT_ROOT/smoke/dqn/seed_${SMOKE_SEED}/best_model.zip" \
+ --seeds "$SMOKE_SEED" \
+ --episodes "$SMOKE_EVAL_EPISODES" \
+ --run-label smoke \
+ --output "$ARTIFACT_ROOT/smoke/eval_smoke.json"
+
+echo
+echo "Stage 3 complete."
diff --git a/scripts/stages/04_pilot_sweep.sh b/scripts/stages/04_pilot_sweep.sh
new file mode 100755
index 0000000..b96fc53
--- /dev/null
+++ b/scripts/stages/04_pilot_sweep.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+
+if [ -z "${BASH_VERSION:-}" ]; then
+ exec bash "$0" "$@"
+fi
+
+set -euo pipefail
+
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+source "$SCRIPT_DIR/_common.sh"
+init_benchmark_context
+
+print_stage_banner "Stage 4/5: Validation-only pilot sweeps"
+if [[ "$RUN_PILOT_SWEEP" != "1" ]]; then
+ echo "Skipping pilot sweeps (RUN_PILOT_SWEEP=$RUN_PILOT_SWEEP)"
+ exit 0
+fi
+
+for algo in "${ALGO_ORDER[@]}"; do
+ pilot_sweep_algo "$algo"
+done
+
+echo
+echo "Stage 4 complete."
diff --git a/scripts/stages/05_final_train.sh b/scripts/stages/05_final_train.sh
new file mode 100755
index 0000000..8cefa10
--- /dev/null
+++ b/scripts/stages/05_final_train.sh
@@ -0,0 +1,49 @@
+#!/usr/bin/env bash
+
+if [ -z "${BASH_VERSION:-}" ]; then
+ exec bash "$0" "$@"
+fi
+
+set -euo pipefail
+
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+source "$SCRIPT_DIR/_common.sh"
+init_benchmark_context
+
+print_stage_banner "Stage 5/5: Full 5-seed benchmark training"
+for algo in "${ALGO_ORDER[@]}"; do
+ final_hparam_source="defaults"
+ final_hparam_file="$ARTIFACT_ROOT/pilot_sweeps/$algo/pilot_winner.json"
+ declare -a final_hparam_flags=()
+
+ if [[ "$USE_PILOT_WINNERS" == "1" ]]; then
+ if [[ -f "$final_hparam_file" ]]; then
+ mapfile -t final_hparam_flags < <(load_winner_flags "$algo")
+ final_hparam_source="pilot_winner"
+ else
+ echo "WARNING: Missing pilot winner file for $algo at $final_hparam_file; using defaults."
+ fi
+ fi
+
+ case "$algo" in
+ ppo) final_timesteps="$CANONICAL_PPO_TIMESTEPS" ;;
+ a2c) final_timesteps="$CANONICAL_A2C_TIMESTEPS" ;;
+ dqn) final_timesteps="$CANONICAL_DQN_TIMESTEPS" ;;
+ *)
+ echo "ERROR: unsupported algo '$algo'"
+ exit 1
+ ;;
+ esac
+
+ echo "[FINAL] $algo hyperparameters source: $final_hparam_source"
+ if [[ ${#final_hparam_flags[@]} -gt 0 ]]; then
+ echo "[FINAL] $algo hyperparameter flags: ${final_hparam_flags[*]}"
+ fi
+
+ for seed in "${FINAL_SEEDS[@]}"; do
+ train_final "$algo" "$seed" "$final_timesteps" "${final_hparam_flags[@]}"
+ done
+done
+
+echo
+echo "Stage 5 complete. Artifacts are under '$ARTIFACT_ROOT'."
diff --git a/scripts/stages/_common.sh b/scripts/stages/_common.sh
new file mode 100644
index 0000000..2bf60dc
--- /dev/null
+++ b/scripts/stages/_common.sh
@@ -0,0 +1,382 @@
+#!/usr/bin/env bash
+
+init_benchmark_context() {
+ ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
+ cd "$ROOT_DIR"
+
+ if ! command -v uv >/dev/null 2>&1; then
+ echo "ERROR: 'uv' is not installed!"
+ exit 1
+ fi
+
+ ARTIFACT_ROOT="${ARTIFACT_ROOT:-outputs/benchmark}"
+ SMOKE_TIMESTEPS="${SMOKE_TIMESTEPS:-20000}"
+ SMOKE_SEED="${SMOKE_SEED:-11}"
+ SMOKE_EVAL_EPISODES="${SMOKE_EVAL_EPISODES:-5}"
+ KARPATHY_TIMESTEPS="${KARPATHY_TIMESTEPS:-10000}"
+ KARPATHY_SEED="${KARPATHY_SEED:-11}"
+ KARPATHY_FAMILY="${KARPATHY_FAMILY:-center,medium,A}"
+ KARPATHY_CHECKPOINT_EVAL_EPISODES="${KARPATHY_CHECKPOINT_EVAL_EPISODES:-1}"
+ PILOT_TIMESTEPS="${PILOT_TIMESTEPS:-40000}"
+ PILOT_SEED="${PILOT_SEED:-11}"
+ FINAL_SEEDS_CSV="${FINAL_SEEDS_CSV:-11,22,33,44,55}"
+ ALGO_ORDER_CSV="${ALGO_ORDER_CSV:-ppo,a2c,dqn}"
+ RUN_KARPATHY_CHECK="${RUN_KARPATHY_CHECK:-1}"
+ RUN_PILOT_SWEEP="${RUN_PILOT_SWEEP:-1}"
+ USE_PILOT_WINNERS="${USE_PILOT_WINNERS:-1}"
+ RUN_REPRO_CANARY="${RUN_REPRO_CANARY:-1}"
+ REPRO_CANARY_TOL="${REPRO_CANARY_TOL:-1e-9}"
+
+ CANONICAL_CHECKPOINT_INTERVAL=20000
+ CANONICAL_CHECKPOINT_EVAL_EPISODES=20
+ CANONICAL_FINAL_EVAL_EPISODES=100
+ CANONICAL_PPO_TIMESTEPS=200000
+ CANONICAL_A2C_TIMESTEPS=200000
+ CANONICAL_DQN_TIMESTEPS=200000
+
+ TRAIN_DATASET="data/static/scenario_parameter_records_seeded_train.json"
+ VAL_DATASET="data/static/scenario_parameter_records_seeded_val.json"
+ HOLDOUT_DATASET="data/static/scenario_parameter_records_seeded_holdout.json"
+
+ for dataset in "$TRAIN_DATASET" "$VAL_DATASET" "$HOLDOUT_DATASET"; do
+ if [[ ! -f "$dataset" ]]; then
+ echo "ERROR: Missing dataset '$dataset'."
+ echo "Run dataset build first: uv run python -m src.ingestion.static_dataset --target-count 50000 --raw-alberta-csv data/static/fp-historical-wildfire-data-2006-2025.csv"
+ exit 1
+ fi
+ done
+
+ IFS=',' read -r -a ALGO_ORDER <<< "$ALGO_ORDER_CSV"
+ IFS=',' read -r -a FINAL_SEEDS <<< "$FINAL_SEEDS_CSV"
+}
+
+print_stage_banner() {
+ local title="$1"
+ echo
+ echo "== $title =="
+}
+
+train_smoke() {
+ local algo="$1"
+ local artifact_root="$2"
+ echo "[SMOKE] Training $algo (seed=$SMOKE_SEED, timesteps=$SMOKE_TIMESTEPS)"
+ uv run python -m src.models.train_rl_agent \
+ --algo "$algo" \
+ --run-label smoke \
+ --seed "$SMOKE_SEED" \
+ --timesteps "$SMOKE_TIMESTEPS" \
+ --train-dataset "$TRAIN_DATASET" \
+ --val-dataset "$VAL_DATASET" \
+ --holdout-dataset "$HOLDOUT_DATASET" \
+ --checkpoint-interval "$CANONICAL_CHECKPOINT_INTERVAL" \
+ --checkpoint-eval-episodes "$CANONICAL_CHECKPOINT_EVAL_EPISODES" \
+ --final-eval-episodes "$CANONICAL_FINAL_EVAL_EPISODES" \
+ --artifact-root "$artifact_root"
+}
+
+repro_canary_smoke() {
+ local algo="$1"
+ local canary_root="$ARTIFACT_ROOT/repro_canary"
+
+ echo "[REPRO] Re-running smoke for $algo with identical seed/config"
+ train_smoke "$algo" "$canary_root"
+
+ uv run python scripts/canary.py \
+ --baseline-root "$ARTIFACT_ROOT" \
+ --candidate-root "$canary_root" \
+ --run-label smoke \
+ --algo "$algo" \
+ --seed "$SMOKE_SEED" \
+ --tol "$REPRO_CANARY_TOL"
+}
+
+build_single_record_dataset() {
+ local input_path="$1"
+ local output_path="$2"
+ local split_name="$3"
+ uv run python - "$input_path" "$output_path" "$split_name" <<'PY'
+import json
+import sys
+from pathlib import Path
+
+src = Path(sys.argv[1])
+dst = Path(sys.argv[2])
+split = sys.argv[3]
+
+payload = json.loads(src.read_text())
+records = payload.get("records", []) if isinstance(payload, dict) else payload
+if not records:
+ raise SystemExit(f"No records found in {src}")
+
+records_sorted = sorted(records, key=lambda rec: float(rec.get("base_spread_prob", 1.0)))
+record = dict(records_sorted[0])
+record["split"] = split
+dst.parent.mkdir(parents=True, exist_ok=True)
+dst.write_text(
+ json.dumps(
+ {
+ "schema_version": payload.get("schema_version", 3) if isinstance(payload, dict) else 3,
+ "generated_at": payload.get("generated_at") if isinstance(payload, dict) else None,
+ "split": split,
+ "record_count": 1,
+ "records": [record],
+ },
+ indent=2,
+ )
+)
+print(f"Wrote one-record {split} dataset -> {dst}")
+PY
+}
+
+karpathy_check() {
+ local algo="$1"
+ local karpathy_root="$ARTIFACT_ROOT/karpathy"
+ local one_record_dir="$karpathy_root/one_record_datasets"
+ local train_one="$one_record_dir/train_single.json"
+ local val_one="$one_record_dir/val_single.json"
+ local holdout_one="$one_record_dir/holdout_single.json"
+
+ if [[ ! -f "$train_one" || ! -f "$val_one" || ! -f "$holdout_one" ]]; then
+ build_single_record_dataset "$TRAIN_DATASET" "$train_one" "train"
+ build_single_record_dataset "$VAL_DATASET" "$val_one" "val"
+ build_single_record_dataset "$HOLDOUT_DATASET" "$holdout_one" "holdout"
+ fi
+
+ echo "[KARPATHY] Training $algo on one-record datasets (seed=$KARPATHY_SEED, timesteps=$KARPATHY_TIMESTEPS)"
+ uv run python -m src.models.train_rl_agent \
+ --algo "$algo" \
+ --run-label karpathy \
+ --seed "$KARPATHY_SEED" \
+ --timesteps "$KARPATHY_TIMESTEPS" \
+ --envs 1 \
+ --train-family "$KARPATHY_FAMILY" \
+ --val-family "$KARPATHY_FAMILY" \
+ --train-dataset "$train_one" \
+ --val-dataset "$val_one" \
+ --holdout-dataset "$holdout_one" \
+ --checkpoint-interval 1000 \
+ --checkpoint-eval-episodes "$KARPATHY_CHECKPOINT_EVAL_EPISODES" \
+ --final-eval-episodes 20 \
+ --artifact-root "$ARTIFACT_ROOT"
+
+ uv run python - "$ARTIFACT_ROOT/karpathy/$algo/seed_${KARPATHY_SEED}/checkpoint_metrics.json" "$algo" <<'PY'
+import json
+import sys
+from pathlib import Path
+
+path = Path(sys.argv[1])
+algo = sys.argv[2]
+metrics = json.loads(path.read_text())
+if not metrics:
+ raise SystemExit(f"No checkpoint metrics found for {algo}: {path}")
+
+first = metrics[0]["splits"]["train"]
+last = metrics[-1]["splits"]["train"]
+print(
+ f"[OVERFIT][{algo}] train return {first['mean_return']:.2f} -> {last['mean_return']:.2f}; "
+ f"train asset survival {first['asset_survival_rate']:.3f} -> {last['asset_survival_rate']:.3f}"
+)
+PY
+}
+
+pilot_sweep_algo() {
+ local algo="$1"
+ local base_root="$ARTIFACT_ROOT/pilot_sweeps/$algo"
+ local cfg_id cfg_args
+ local -a configs
+
+ case "$algo" in
+ ppo)
+ configs=(
+ "lr3e4_n512_ent001 --learning-rate 3e-4 --n-steps 512 --ent-coef 0.01"
+ "lr1e4_n1024_ent005 --learning-rate 1e-4 --n-steps 1024 --ent-coef 0.005"
+ "lr5e4_n256_ent002 --learning-rate 5e-4 --n-steps 256 --ent-coef 0.02"
+ )
+ ;;
+ a2c)
+ configs=(
+ "lr7e4_n5_ent001 --learning-rate 7e-4 --n-steps 5 --ent-coef 0.01"
+ "lr3e4_n20_ent005 --learning-rate 3e-4 --n-steps 20 --ent-coef 0.005"
+ "lr1e3_n10_ent002 --learning-rate 1e-3 --n-steps 10 --ent-coef 0.02"
+ )
+ ;;
+ dqn)
+ configs=(
+ "lr1e4_ef02_eps005_tu1000_buf100k --learning-rate 1e-4 --exploration-fraction 0.2 --exploration-final-eps 0.05 --target-update-interval 1000 --replay-buffer-size 100000"
+ "lr3e4_ef03_eps01_tu500_buf50k --learning-rate 3e-4 --exploration-fraction 0.3 --exploration-final-eps 0.1 --target-update-interval 500 --replay-buffer-size 50000"
+ "lr5e5_ef01_eps002_tu2000_buf200k --learning-rate 5e-5 --exploration-fraction 0.1 --exploration-final-eps 0.02 --target-update-interval 2000 --replay-buffer-size 200000"
+ )
+ ;;
+ *)
+ echo "ERROR: unsupported algo '$algo' for pilot sweep"
+ exit 1
+ ;;
+ esac
+
+ echo "[PILOT] $algo validation-focused pilot sweep"
+ for spec in "${configs[@]}"; do
+ cfg_id="${spec%% *}"
+ cfg_args="${spec#* }"
+ echo "[PILOT] $algo config=$cfg_id"
+ # shellcheck disable=SC2086
+ uv run python -m src.models.train_rl_agent \
+ --algo "$algo" \
+ --run-label pilot \
+ --seed "$PILOT_SEED" \
+ --timesteps "$PILOT_TIMESTEPS" \
+ --train-dataset "$TRAIN_DATASET" \
+ --val-dataset "$VAL_DATASET" \
+ --holdout-dataset "$HOLDOUT_DATASET" \
+ --checkpoint-interval "$CANONICAL_CHECKPOINT_INTERVAL" \
+ --checkpoint-eval-episodes "$CANONICAL_CHECKPOINT_EVAL_EPISODES" \
+ --final-eval-episodes "$CANONICAL_FINAL_EVAL_EPISODES" \
+ --artifact-root "$base_root/$cfg_id" \
+ $cfg_args
+ done
+
+ uv run python - "$base_root" "$algo" "$PILOT_SEED" "$PILOT_TIMESTEPS" <<'PY'
+import json
+import sys
+from pathlib import Path
+
+base = Path(sys.argv[1])
+algo = sys.argv[2]
+seed = int(sys.argv[3])
+pilot_timesteps = int(sys.argv[4])
+
+
+def cli_flags_from_hyperparams(algo_name: str, hp: dict) -> list[str]:
+ if algo_name in {"ppo", "a2c"}:
+ return [
+ "--learning-rate",
+ str(hp["learning_rate"]),
+ "--n-steps",
+ str(hp["n_steps"]),
+ "--ent-coef",
+ str(hp["ent_coef"]),
+ ]
+ if algo_name == "dqn":
+ return [
+ "--learning-rate",
+ str(hp["learning_rate"]),
+ "--exploration-fraction",
+ str(hp["exploration_fraction"]),
+ "--exploration-final-eps",
+ str(hp["exploration_final_eps"]),
+ "--target-update-interval",
+ str(int(hp["target_update_interval"])),
+ "--replay-buffer-size",
+ str(int(hp["buffer_size"])),
+ ]
+ raise ValueError(f"Unsupported algo for cli flag mapping: {algo_name}")
+
+
+rows = []
+for cfg_dir in sorted(base.iterdir()):
+ if not cfg_dir.is_dir():
+ continue
+ best_path = cfg_dir / "pilot" / algo / f"seed_{seed}" / "best_checkpoint.json"
+ run_cfg_path = cfg_dir / "pilot" / algo / f"seed_{seed}" / "config.json"
+ if not best_path.exists() or not run_cfg_path.exists():
+ continue
+ payload = json.loads(best_path.read_text())
+ run_cfg = json.loads(run_cfg_path.read_text())
+ hp = run_cfg.get("hyperparameters", {})
+ val = payload.get("val_metrics", {})
+ rows.append(
+ {
+ "config": cfg_dir.name,
+ "asset_survival": float(val.get("asset_survival_rate", 0.0)),
+ "mean_return": float(val.get("mean_return", 0.0)),
+ "containment": float(val.get("containment_success_rate", 0.0)),
+ "step": int(payload.get("selected_train_steps", 0)),
+ "hyperparameters": hp,
+ "cli_flags": cli_flags_from_hyperparams(algo, hp),
+ }
+ )
+
+rows.sort(key=lambda x: (x["asset_survival"], x["mean_return"], x["containment"]), reverse=True)
+print(f"[PILOT][{algo}] leaderboard (validation checkpoint metric):")
+for i, row in enumerate(rows, start=1):
+ print(
+ f" {i:>2}. {row['config']:<36} "
+ f"asset_survival={row['asset_survival']:.3f} "
+ f"return={row['mean_return']:.2f} "
+ f"containment={row['containment']:.3f} "
+ f"step={row['step']}"
+ )
+
+if rows:
+ winner = {
+ "algo": algo,
+ "pilot_seed": seed,
+ "pilot_timesteps": pilot_timesteps,
+ "selection_metric": "val.asset_survival_rate",
+ "tie_breakers": ["val.mean_return", "val.containment_success_rate"],
+ "selected": {
+ "config": rows[0]["config"],
+ "asset_survival": rows[0]["asset_survival"],
+ "mean_return": rows[0]["mean_return"],
+ "containment": rows[0]["containment"],
+ "selected_checkpoint_step": rows[0]["step"],
+ "hyperparameters": rows[0]["hyperparameters"],
+ "cli_flags": rows[0]["cli_flags"],
+ },
+ "candidates": [
+ {
+ "config": row["config"],
+ "asset_survival": row["asset_survival"],
+ "mean_return": row["mean_return"],
+ "containment": row["containment"],
+ "selected_checkpoint_step": row["step"],
+ }
+ for row in rows
+ ],
+ }
+ winner_path = base / "pilot_winner.json"
+ winner_path.write_text(json.dumps(winner, indent=2))
+ print(f"[PILOT][{algo}] selected candidate -> {rows[0]['config']}")
+ print(f"[PILOT][{algo}] wrote winner file -> {winner_path}")
+else:
+ print(f"[PILOT][{algo}] no completed pilot runs found")
+PY
+}
+
+load_winner_flags() {
+ local algo="$1"
+ local winner_path="$ARTIFACT_ROOT/pilot_sweeps/$algo/pilot_winner.json"
+ if [[ ! -f "$winner_path" ]]; then
+ return 0
+ fi
+ uv run python - "$winner_path" <<'PY'
+import json
+import sys
+from pathlib import Path
+
+path = Path(sys.argv[1])
+payload = json.loads(path.read_text())
+for token in payload.get("selected", {}).get("cli_flags", []):
+ print(str(token))
+PY
+}
+
+train_final() {
+ local algo="$1"
+ local seed="$2"
+ local timesteps="$3"
+ local -a extra_args=("${@:4}")
+ echo "[FINAL] Training $algo (seed=$seed, timesteps=$timesteps)"
+ uv run python -m src.models.train_rl_agent \
+ --algo "$algo" \
+ --run-label final \
+ --seed "$seed" \
+ --timesteps "$timesteps" \
+ --train-dataset "$TRAIN_DATASET" \
+ --val-dataset "$VAL_DATASET" \
+ --holdout-dataset "$HOLDOUT_DATASET" \
+ --checkpoint-interval "$CANONICAL_CHECKPOINT_INTERVAL" \
+ --checkpoint-eval-episodes "$CANONICAL_CHECKPOINT_EVAL_EPISODES" \
+ --final-eval-episodes "$CANONICAL_FINAL_EVAL_EPISODES" \
+ --artifact-root "$ARTIFACT_ROOT" \
+ "${extra_args[@]}"
+}
diff --git a/src/models/benchmarking.py b/src/models/benchmarking.py
index 0e29997..5d655db 100644
--- a/src/models/benchmarking.py
+++ b/src/models/benchmarking.py
@@ -37,7 +37,7 @@
"a2c": 200_000,
"dqn": 200_000,
}
-RUN_LABELS = ("smoke", "pilot", "final")
+RUN_LABELS = ("smoke", "pilot", "final", "karpathy")
ROLLOUT_AGENT_TYPES = ("ppo", "a2c", "dqn", "greedy", "random", "non_intervention")
diff --git a/src/models/train_rl_agent.py b/src/models/train_rl_agent.py
index 83d7d3d..e3b8c41 100644
--- a/src/models/train_rl_agent.py
+++ b/src/models/train_rl_agent.py
@@ -144,6 +144,15 @@ def _families_to_jsonable(families: list[tuple[str, str, str]]) -> list[list[str
return [list(family) for family in families]
+def _parse_family_spec(value: str) -> tuple[str, str, str]:
+ parts = [part.strip() for part in value.split(",")]
+ if len(parts) != 3 or any(not part for part in parts):
+ raise ValueError(
+ f"Invalid family spec '{value}'. Expected format: ignition,severity,layout"
+ )
+ return (parts[0], parts[1], parts[2])
+
+
def main() -> None:
parser = argparse.ArgumentParser(description="Train benchmark RL agents for wildfire task")
parser.add_argument("--algo", type=str, default="ppo", choices=ALGO_CHOICES)
@@ -164,6 +173,24 @@ def main() -> None:
parser.add_argument("--train-dataset", type=Path, default=None)
parser.add_argument("--val-dataset", type=Path, default=None)
parser.add_argument("--holdout-dataset", type=Path, default=None)
+ parser.add_argument(
+ "--train-family",
+ type=str,
+ default=None,
+ help="Optional single-family override for train split (ignition,severity,layout)",
+ )
+ parser.add_argument(
+ "--val-family",
+ type=str,
+ default=None,
+ help="Optional single-family override for val split (ignition,severity,layout)",
+ )
+ parser.add_argument(
+ "--family-holdout-family",
+ type=str,
+ default=None,
+ help="Optional single-family override for family holdout split (ignition,severity,layout)",
+ )
parser.add_argument("--checkpoint-interval", type=int, default=None)
parser.add_argument("--checkpoint-eval-episodes", type=int, default=None)
@@ -189,8 +216,6 @@ def main() -> None:
print(f"Failed to load benchmark preset: {exc}")
sys.exit(1)
- del args.benchmark_preset # canonical is currently the only supported preset
-
total_timesteps = args.timesteps or int(preset["total_timesteps"])
checkpoint_interval = args.checkpoint_interval or int(preset["checkpoint_interval_steps"])
checkpoint_eval_episodes = args.checkpoint_eval_episodes or int(
@@ -206,6 +231,13 @@ def main() -> None:
val_families = list(preset["val_families"])
family_holdout_families = list(preset["family_holdout_families"])
+ if args.train_family is not None:
+ train_families = [_parse_family_spec(args.train_family)]
+ if args.val_family is not None:
+ val_families = [_parse_family_spec(args.val_family)]
+ if args.family_holdout_family is not None:
+ family_holdout_families = [_parse_family_spec(args.family_holdout_family)]
+
train_records = load_records(train_dataset, expected_split="train")
val_records = load_records(val_dataset, expected_split="val")
holdout_records = load_records(holdout_dataset, expected_split="holdout")
diff --git a/training_0.zip b/training_0.zip
new file mode 100644
index 0000000..aa0957e
Binary files /dev/null and b/training_0.zip differ
diff --git a/uv.lock b/uv.lock
index 80cff6e..5b1486d 100644
--- a/uv.lock
+++ b/uv.lock
@@ -16,10 +16,12 @@ dependencies = [
{ name = "gymnasium" },
{ name = "httpx" },
{ name = "matplotlib" },
+ { name = "notebook" },
{ name = "numpy" },
{ name = "pandas" },
{ name = "python-dotenv" },
{ name = "scikit-learn" },
+ { name = "seaborn" },
{ name = "stable-baselines3" },
{ name = "torch" },
{ name = "wandb" },
@@ -37,10 +39,12 @@ requires-dist = [
{ name = "gymnasium", specifier = ">=1.2.3" },
{ name = "httpx", specifier = ">=0.28.1" },
{ name = "matplotlib", specifier = ">=3.10.8" },
+ { name = "notebook", specifier = ">=7.5.5" },
{ name = "numpy", specifier = ">=2.4.2" },
{ name = "pandas", specifier = ">=2.3.0" },
{ name = "python-dotenv", specifier = ">=1.1.1" },
{ name = "scikit-learn", specifier = ">=1.7.0" },
+ { name = "seaborn", specifier = ">=0.13.2" },
{ name = "stable-baselines3", specifier = ">=2.4.1" },
{ name = "torch", specifier = ">=2.10.0" },
{ name = "wandb", specifier = ">=0.25.0" },
@@ -74,6 +78,137 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl", hash = "sha256:08b310f9e24a9594186fd75b4f73f4a4152069e3853f1ed8bfbf58369f4ad708", size = 114353, upload-time = "2026-03-24T12:59:08.246Z" },
]
+[[package]]
+name = "appnope"
+version = "0.1.4"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/35/5d/752690df9ef5b76e169e68d6a129fa6d08a7100ca7f754c89495db3c6019/appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee", size = 4170, upload-time = "2024-02-06T09:43:11.258Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/81/29/5ecc3a15d5a33e31b26c11426c45c501e439cb865d0bff96315d86443b78/appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c", size = 4321, upload-time = "2024-02-06T09:43:09.663Z" },
+]
+
+[[package]]
+name = "argon2-cffi"
+version = "25.1.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "argon2-cffi-bindings" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/0e/89/ce5af8a7d472a67cc819d5d998aa8c82c5d860608c4db9f46f1162d7dab9/argon2_cffi-25.1.0.tar.gz", hash = "sha256:694ae5cc8a42f4c4e2bf2ca0e64e51e23a040c6a517a85074683d3959e1346c1", size = 45706, upload-time = "2025-06-03T06:55:32.073Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/4f/d3/a8b22fa575b297cd6e3e3b0155c7e25db170edf1c74783d6a31a2490b8d9/argon2_cffi-25.1.0-py3-none-any.whl", hash = "sha256:fdc8b074db390fccb6eb4a3604ae7231f219aa669a2652e0f20e16ba513d5741", size = 14657, upload-time = "2025-06-03T06:55:30.804Z" },
+]
+
+[[package]]
+name = "argon2-cffi-bindings"
+version = "25.1.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "cffi" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/5c/2d/db8af0df73c1cf454f71b2bbe5e356b8c1f8041c979f505b3d3186e520a9/argon2_cffi_bindings-25.1.0.tar.gz", hash = "sha256:b957f3e6ea4d55d820e40ff76f450952807013d361a65d7f28acc0acbf29229d", size = 1783441, upload-time = "2025-07-30T10:02:05.147Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/60/97/3c0a35f46e52108d4707c44b95cfe2afcafc50800b5450c197454569b776/argon2_cffi_bindings-25.1.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:3d3f05610594151994ca9ccb3c771115bdb4daef161976a266f0dd8aa9996b8f", size = 54393, upload-time = "2025-07-30T10:01:40.97Z" },
+ { url = "https://files.pythonhosted.org/packages/9d/f4/98bbd6ee89febd4f212696f13c03ca302b8552e7dbf9c8efa11ea4a388c3/argon2_cffi_bindings-25.1.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:8b8efee945193e667a396cbc7b4fb7d357297d6234d30a489905d96caabde56b", size = 29328, upload-time = "2025-07-30T10:01:41.916Z" },
+ { url = "https://files.pythonhosted.org/packages/43/24/90a01c0ef12ac91a6be05969f29944643bc1e5e461155ae6559befa8f00b/argon2_cffi_bindings-25.1.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:3c6702abc36bf3ccba3f802b799505def420a1b7039862014a65db3205967f5a", size = 31269, upload-time = "2025-07-30T10:01:42.716Z" },
+ { url = "https://files.pythonhosted.org/packages/d4/d3/942aa10782b2697eee7af5e12eeff5ebb325ccfb86dd8abda54174e377e4/argon2_cffi_bindings-25.1.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a1c70058c6ab1e352304ac7e3b52554daadacd8d453c1752e547c76e9c99ac44", size = 86558, upload-time = "2025-07-30T10:01:43.943Z" },
+ { url = "https://files.pythonhosted.org/packages/0d/82/b484f702fec5536e71836fc2dbc8c5267b3f6e78d2d539b4eaa6f0db8bf8/argon2_cffi_bindings-25.1.0-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e2fd3bfbff3c5d74fef31a722f729bf93500910db650c925c2d6ef879a7e51cb", size = 92364, upload-time = "2025-07-30T10:01:44.887Z" },
+ { url = "https://files.pythonhosted.org/packages/c9/c1/a606ff83b3f1735f3759ad0f2cd9e038a0ad11a3de3b6c673aa41c24bb7b/argon2_cffi_bindings-25.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c4f9665de60b1b0e99bcd6be4f17d90339698ce954cfd8d9cf4f91c995165a92", size = 85637, upload-time = "2025-07-30T10:01:46.225Z" },
+ { url = "https://files.pythonhosted.org/packages/44/b4/678503f12aceb0262f84fa201f6027ed77d71c5019ae03b399b97caa2f19/argon2_cffi_bindings-25.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ba92837e4a9aa6a508c8d2d7883ed5a8f6c308c89a4790e1e447a220deb79a85", size = 91934, upload-time = "2025-07-30T10:01:47.203Z" },
+ { url = "https://files.pythonhosted.org/packages/f0/c7/f36bd08ef9bd9f0a9cff9428406651f5937ce27b6c5b07b92d41f91ae541/argon2_cffi_bindings-25.1.0-cp314-cp314t-win32.whl", hash = "sha256:84a461d4d84ae1295871329b346a97f68eade8c53b6ed9a7ca2d7467f3c8ff6f", size = 28158, upload-time = "2025-07-30T10:01:48.341Z" },
+ { url = "https://files.pythonhosted.org/packages/b3/80/0106a7448abb24a2c467bf7d527fe5413b7fdfa4ad6d6a96a43a62ef3988/argon2_cffi_bindings-25.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:b55aec3565b65f56455eebc9b9f34130440404f27fe21c3b375bf1ea4d8fbae6", size = 32597, upload-time = "2025-07-30T10:01:49.112Z" },
+ { url = "https://files.pythonhosted.org/packages/05/b8/d663c9caea07e9180b2cb662772865230715cbd573ba3b5e81793d580316/argon2_cffi_bindings-25.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:87c33a52407e4c41f3b70a9c2d3f6056d88b10dad7695be708c5021673f55623", size = 28231, upload-time = "2025-07-30T10:01:49.92Z" },
+ { url = "https://files.pythonhosted.org/packages/1d/57/96b8b9f93166147826da5f90376e784a10582dd39a393c99bb62cfcf52f0/argon2_cffi_bindings-25.1.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:aecba1723ae35330a008418a91ea6cfcedf6d31e5fbaa056a166462ff066d500", size = 54121, upload-time = "2025-07-30T10:01:50.815Z" },
+ { url = "https://files.pythonhosted.org/packages/0a/08/a9bebdb2e0e602dde230bdde8021b29f71f7841bd54801bcfd514acb5dcf/argon2_cffi_bindings-25.1.0-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:2630b6240b495dfab90aebe159ff784d08ea999aa4b0d17efa734055a07d2f44", size = 29177, upload-time = "2025-07-30T10:01:51.681Z" },
+ { url = "https://files.pythonhosted.org/packages/b6/02/d297943bcacf05e4f2a94ab6f462831dc20158614e5d067c35d4e63b9acb/argon2_cffi_bindings-25.1.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:7aef0c91e2c0fbca6fc68e7555aa60ef7008a739cbe045541e438373bc54d2b0", size = 31090, upload-time = "2025-07-30T10:01:53.184Z" },
+ { url = "https://files.pythonhosted.org/packages/c1/93/44365f3d75053e53893ec6d733e4a5e3147502663554b4d864587c7828a7/argon2_cffi_bindings-25.1.0-cp39-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1e021e87faa76ae0d413b619fe2b65ab9a037f24c60a1e6cc43457ae20de6dc6", size = 81246, upload-time = "2025-07-30T10:01:54.145Z" },
+ { url = "https://files.pythonhosted.org/packages/09/52/94108adfdd6e2ddf58be64f959a0b9c7d4ef2fa71086c38356d22dc501ea/argon2_cffi_bindings-25.1.0-cp39-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d3e924cfc503018a714f94a49a149fdc0b644eaead5d1f089330399134fa028a", size = 87126, upload-time = "2025-07-30T10:01:55.074Z" },
+ { url = "https://files.pythonhosted.org/packages/72/70/7a2993a12b0ffa2a9271259b79cc616e2389ed1a4d93842fac5a1f923ffd/argon2_cffi_bindings-25.1.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c87b72589133f0346a1cb8d5ecca4b933e3c9b64656c9d175270a000e73b288d", size = 80343, upload-time = "2025-07-30T10:01:56.007Z" },
+ { url = "https://files.pythonhosted.org/packages/78/9a/4e5157d893ffc712b74dbd868c7f62365618266982b64accab26bab01edc/argon2_cffi_bindings-25.1.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:1db89609c06afa1a214a69a462ea741cf735b29a57530478c06eb81dd403de99", size = 86777, upload-time = "2025-07-30T10:01:56.943Z" },
+ { url = "https://files.pythonhosted.org/packages/74/cd/15777dfde1c29d96de7f18edf4cc94c385646852e7c7b0320aa91ccca583/argon2_cffi_bindings-25.1.0-cp39-abi3-win32.whl", hash = "sha256:473bcb5f82924b1becbb637b63303ec8d10e84c8d241119419897a26116515d2", size = 27180, upload-time = "2025-07-30T10:01:57.759Z" },
+ { url = "https://files.pythonhosted.org/packages/e2/c6/a759ece8f1829d1f162261226fbfd2c6832b3ff7657384045286d2afa384/argon2_cffi_bindings-25.1.0-cp39-abi3-win_amd64.whl", hash = "sha256:a98cd7d17e9f7ce244c0803cad3c23a7d379c301ba618a5fa76a67d116618b98", size = 31715, upload-time = "2025-07-30T10:01:58.56Z" },
+ { url = "https://files.pythonhosted.org/packages/42/b9/f8d6fa329ab25128b7e98fd83a3cb34d9db5b059a9847eddb840a0af45dd/argon2_cffi_bindings-25.1.0-cp39-abi3-win_arm64.whl", hash = "sha256:b0fdbcf513833809c882823f98dc2f931cf659d9a1429616ac3adebb49f5db94", size = 27149, upload-time = "2025-07-30T10:01:59.329Z" },
+]
+
+[[package]]
+name = "arrow"
+version = "1.4.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "python-dateutil" },
+ { name = "tzdata" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/b9/33/032cdc44182491aa708d06a68b62434140d8c50820a087fac7af37703357/arrow-1.4.0.tar.gz", hash = "sha256:ed0cc050e98001b8779e84d461b0098c4ac597e88704a655582b21d116e526d7", size = 152931, upload-time = "2025-10-18T17:46:46.761Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/ed/c9/d7977eaacb9df673210491da99e6a247e93df98c715fc43fd136ce1d3d33/arrow-1.4.0-py3-none-any.whl", hash = "sha256:749f0769958ebdc79c173ff0b0670d59051a535fa26e8eba02953dc19eb43205", size = 68797, upload-time = "2025-10-18T17:46:45.663Z" },
+]
+
+[[package]]
+name = "asttokens"
+version = "3.0.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/be/a5/8e3f9b6771b0b408517c82d97aed8f2036509bc247d46114925e32fe33f0/asttokens-3.0.1.tar.gz", hash = "sha256:71a4ee5de0bde6a31d64f6b13f2293ac190344478f081c3d1bccfcf5eacb0cb7", size = 62308, upload-time = "2025-11-15T16:43:48.578Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/d2/39/e7eaf1799466a4aef85b6a4fe7bd175ad2b1c6345066aa33f1f58d4b18d0/asttokens-3.0.1-py3-none-any.whl", hash = "sha256:15a3ebc0f43c2d0a50eeafea25e19046c68398e487b9f1f5b517f7c0f40f976a", size = 27047, upload-time = "2025-11-15T16:43:16.109Z" },
+]
+
+[[package]]
+name = "async-lru"
+version = "2.3.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/e8/1f/989ecfef8e64109a489fff357450cb73fa73a865a92bd8c272170a6922c2/async_lru-2.3.0.tar.gz", hash = "sha256:89bdb258a0140d7313cf8f4031d816a042202faa61d0ab310a0a538baa1c24b6", size = 16332, upload-time = "2026-03-19T01:04:32.413Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/e5/e2/c2e3abf398f80732e58b03be77bde9022550d221dd8781bf586bd4d97cc1/async_lru-2.3.0-py3-none-any.whl", hash = "sha256:eea27b01841909316f2cc739807acea1c623df2be8c5cfad7583286397bb8315", size = 8403, upload-time = "2026-03-19T01:04:30.883Z" },
+]
+
+[[package]]
+name = "attrs"
+version = "26.1.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/9a/8e/82a0fe20a541c03148528be8cac2408564a6c9a0cc7e9171802bc1d26985/attrs-26.1.0.tar.gz", hash = "sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32", size = 952055, upload-time = "2026-03-19T14:22:25.026Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl", hash = "sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309", size = 67548, upload-time = "2026-03-19T14:22:23.645Z" },
+]
+
+[[package]]
+name = "babel"
+version = "2.18.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/7d/b2/51899539b6ceeeb420d40ed3cd4b7a40519404f9baf3d4ac99dc413a834b/babel-2.18.0.tar.gz", hash = "sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d", size = 9959554, upload-time = "2026-02-01T12:30:56.078Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/77/f5/21d2de20e8b8b0408f0681956ca2c69f1320a3848ac50e6e7f39c6159675/babel-2.18.0-py3-none-any.whl", hash = "sha256:e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35", size = 10196845, upload-time = "2026-02-01T12:30:53.445Z" },
+]
+
+[[package]]
+name = "beautifulsoup4"
+version = "4.14.3"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "soupsieve" },
+ { name = "typing-extensions" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/c3/b0/1c6a16426d389813b48d95e26898aff79abbde42ad353958ad95cc8c9b21/beautifulsoup4-4.14.3.tar.gz", hash = "sha256:6292b1c5186d356bba669ef9f7f051757099565ad9ada5dd630bd9de5fa7fb86", size = 627737, upload-time = "2025-11-30T15:08:26.084Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/1a/39/47f9197bdd44df24d67ac8893641e16f386c984a0619ef2ee4c51fbbc019/beautifulsoup4-4.14.3-py3-none-any.whl", hash = "sha256:0918bfe44902e6ad8d57732ba310582e98da931428d231a5ecb9e7c703a735bb", size = 107721, upload-time = "2025-11-30T15:08:24.087Z" },
+]
+
+[[package]]
+name = "bleach"
+version = "6.3.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "webencodings" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/07/18/3c8523962314be6bf4c8989c79ad9531c825210dd13a8669f6b84336e8bd/bleach-6.3.0.tar.gz", hash = "sha256:6f3b91b1c0a02bb9a78b5a454c92506aa0fdf197e1d5e114d2e00c6f64306d22", size = 203533, upload-time = "2025-10-27T17:57:39.211Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/cd/3a/577b549de0cc09d95f11087ee63c739bba856cd3952697eec4c4bb91350a/bleach-6.3.0-py3-none-any.whl", hash = "sha256:fe10ec77c93ddf3d13a73b035abaac7a9f5e436513864ccdad516693213c65d6", size = 164437, upload-time = "2025-10-27T17:57:37.538Z" },
+]
+
+[package.optional-dependencies]
+css = [
+ { name = "tinycss2" },
+]
+
[[package]]
name = "certifi"
version = "2026.1.4"
@@ -83,6 +218,39 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/e6/ad/3cc14f097111b4de0040c83a525973216457bbeeb63739ef1ed275c1c021/certifi-2026.1.4-py3-none-any.whl", hash = "sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c", size = 152900, upload-time = "2026-01-04T02:42:40.15Z" },
]
+[[package]]
+name = "cffi"
+version = "2.0.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "pycparser", marker = "implementation_name != 'PyPy'" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload-time = "2025-09-08T23:24:04.541Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/92/c4/3ce07396253a83250ee98564f8d7e9789fab8e58858f35d07a9a2c78de9f/cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5", size = 185320, upload-time = "2025-09-08T23:23:18.087Z" },
+ { url = "https://files.pythonhosted.org/packages/59/dd/27e9fa567a23931c838c6b02d0764611c62290062a6d4e8ff7863daf9730/cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13", size = 181487, upload-time = "2025-09-08T23:23:19.622Z" },
+ { url = "https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b", size = 220049, upload-time = "2025-09-08T23:23:20.853Z" },
+ { url = "https://files.pythonhosted.org/packages/b4/89/76799151d9c2d2d1ead63c2429da9ea9d7aac304603de0c6e8764e6e8e70/cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c", size = 207793, upload-time = "2025-09-08T23:23:22.08Z" },
+ { url = "https://files.pythonhosted.org/packages/bb/dd/3465b14bb9e24ee24cb88c9e3730f6de63111fffe513492bf8c808a3547e/cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef", size = 206300, upload-time = "2025-09-08T23:23:23.314Z" },
+ { url = "https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775", size = 219244, upload-time = "2025-09-08T23:23:24.541Z" },
+ { url = "https://files.pythonhosted.org/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205", size = 222828, upload-time = "2025-09-08T23:23:26.143Z" },
+ { url = "https://files.pythonhosted.org/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1", size = 220926, upload-time = "2025-09-08T23:23:27.873Z" },
+ { url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328, upload-time = "2025-09-08T23:23:44.61Z" },
+ { url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650, upload-time = "2025-09-08T23:23:45.848Z" },
+ { url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687, upload-time = "2025-09-08T23:23:47.105Z" },
+ { url = "https://files.pythonhosted.org/packages/3e/61/c768e4d548bfa607abcda77423448df8c471f25dbe64fb2ef6d555eae006/cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9", size = 188773, upload-time = "2025-09-08T23:23:29.347Z" },
+ { url = "https://files.pythonhosted.org/packages/2c/ea/5f76bce7cf6fcd0ab1a1058b5af899bfbef198bea4d5686da88471ea0336/cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d", size = 185013, upload-time = "2025-09-08T23:23:30.63Z" },
+ { url = "https://files.pythonhosted.org/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c", size = 221593, upload-time = "2025-09-08T23:23:31.91Z" },
+ { url = "https://files.pythonhosted.org/packages/e0/0d/eb704606dfe8033e7128df5e90fee946bbcb64a04fcdaa97321309004000/cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8", size = 209354, upload-time = "2025-09-08T23:23:33.214Z" },
+ { url = "https://files.pythonhosted.org/packages/d8/19/3c435d727b368ca475fb8742ab97c9cb13a0de600ce86f62eab7fa3eea60/cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc", size = 208480, upload-time = "2025-09-08T23:23:34.495Z" },
+ { url = "https://files.pythonhosted.org/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592", size = 221584, upload-time = "2025-09-08T23:23:36.096Z" },
+ { url = "https://files.pythonhosted.org/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512", size = 224443, upload-time = "2025-09-08T23:23:37.328Z" },
+ { url = "https://files.pythonhosted.org/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4", size = 223437, upload-time = "2025-09-08T23:23:38.945Z" },
+ { url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487, upload-time = "2025-09-08T23:23:40.423Z" },
+ { url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726, upload-time = "2025-09-08T23:23:41.742Z" },
+ { url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195, upload-time = "2025-09-08T23:23:43.004Z" },
+]
+
[[package]]
name = "charset-normalizer"
version = "3.4.4"
@@ -138,6 +306,15 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" },
]
+[[package]]
+name = "comm"
+version = "0.2.3"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/4c/13/7d740c5849255756bc17888787313b61fd38a0a8304fc4f073dfc46122aa/comm-0.2.3.tar.gz", hash = "sha256:2dc8048c10962d55d7ad693be1e7045d891b7ce8d999c97963a5e3e99c055971", size = 6319, upload-time = "2025-07-25T14:02:04.452Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/60/97/891a0971e1e4a8c5d2b20bbe0e524dc04548d2307fee33cdeba148fd4fc7/comm-0.2.3-py3-none-any.whl", hash = "sha256:c615d91d75f7f04f095b30d1c1711babd43bdc6419c1be9886a85f2f4e489417", size = 7294, upload-time = "2025-07-25T14:02:02.896Z" },
+]
+
[[package]]
name = "contourpy"
version = "1.3.3"
@@ -200,6 +377,46 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321, upload-time = "2023-10-07T05:32:16.783Z" },
]
+[[package]]
+name = "debugpy"
+version = "1.8.20"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/e0/b7/cd8080344452e4874aae67c40d8940e2b4d47b01601a8fd9f44786c757c7/debugpy-1.8.20.tar.gz", hash = "sha256:55bc8701714969f1ab89a6d5f2f3d40c36f91b2cbe2f65d98bf8196f6a6a2c33", size = 1645207, upload-time = "2026-01-29T23:03:28.199Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/33/2e/f6cb9a8a13f5058f0a20fe09711a7b726232cd5a78c6a7c05b2ec726cff9/debugpy-1.8.20-cp314-cp314-macosx_15_0_universal2.whl", hash = "sha256:9c74df62fc064cd5e5eaca1353a3ef5a5d50da5eb8058fcef63106f7bebe6173", size = 2538066, upload-time = "2026-01-29T23:03:54.999Z" },
+ { url = "https://files.pythonhosted.org/packages/c5/56/6ddca50b53624e1ca3ce1d1e49ff22db46c47ea5fb4c0cc5c9b90a616364/debugpy-1.8.20-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:077a7447589ee9bc1ff0cdf443566d0ecf540ac8aa7333b775ebcb8ce9f4ecad", size = 4269425, upload-time = "2026-01-29T23:03:56.518Z" },
+ { url = "https://files.pythonhosted.org/packages/c5/d9/d64199c14a0d4c476df46c82470a3ce45c8d183a6796cfb5e66533b3663c/debugpy-1.8.20-cp314-cp314-win32.whl", hash = "sha256:352036a99dd35053b37b7803f748efc456076f929c6a895556932eaf2d23b07f", size = 5331407, upload-time = "2026-01-29T23:03:58.481Z" },
+ { url = "https://files.pythonhosted.org/packages/e0/d9/1f07395b54413432624d61524dfd98c1a7c7827d2abfdb8829ac92638205/debugpy-1.8.20-cp314-cp314-win_amd64.whl", hash = "sha256:a98eec61135465b062846112e5ecf2eebb855305acc1dfbae43b72903b8ab5be", size = 5372521, upload-time = "2026-01-29T23:03:59.864Z" },
+ { url = "https://files.pythonhosted.org/packages/e0/c3/7f67dea8ccf8fdcb9c99033bbe3e90b9e7395415843accb81428c441be2d/debugpy-1.8.20-py2.py3-none-any.whl", hash = "sha256:5be9bed9ae3be00665a06acaa48f8329d2b9632f15fd09f6a9a8c8d9907e54d7", size = 5337658, upload-time = "2026-01-29T23:04:17.404Z" },
+]
+
+[[package]]
+name = "decorator"
+version = "5.2.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/43/fa/6d96a0978d19e17b68d634497769987b16c8f4cd0a7a05048bec693caa6b/decorator-5.2.1.tar.gz", hash = "sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360", size = 56711, upload-time = "2025-02-24T04:41:34.073Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a", size = 9190, upload-time = "2025-02-24T04:41:32.565Z" },
+]
+
+[[package]]
+name = "defusedxml"
+version = "0.7.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/0f/d5/c66da9b79e5bdb124974bfe172b4daf3c984ebd9c2a06e2b8a4dc7331c72/defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69", size = 75520, upload-time = "2021-03-08T10:59:26.269Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61", size = 25604, upload-time = "2021-03-08T10:59:24.45Z" },
+]
+
+[[package]]
+name = "executing"
+version = "2.2.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/cc/28/c14e053b6762b1044f34a13aab6859bbf40456d37d23aa286ac24cfd9a5d/executing-2.2.1.tar.gz", hash = "sha256:3632cc370565f6648cc328b32435bd120a1e4ebb20c77e3fdde9a13cd1e533c4", size = 1129488, upload-time = "2025-09-01T09:48:10.866Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl", hash = "sha256:760643d3452b4d777d295bb167ccc74c64a81df23fb5e08eff250c425a4b2017", size = 28317, upload-time = "2025-09-01T09:48:08.5Z" },
+]
+
[[package]]
name = "farama-notifications"
version = "0.0.4"
@@ -209,6 +426,15 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/05/2c/ffc08c54c05cdce6fbed2aeebc46348dbe180c6d2c541c7af7ba0aa5f5f8/Farama_Notifications-0.0.4-py3-none-any.whl", hash = "sha256:14de931035a41961f7c056361dc7f980762a143d05791ef5794a751a2caf05ae", size = 2511, upload-time = "2023-02-27T18:28:39.447Z" },
]
+[[package]]
+name = "fastjsonschema"
+version = "2.21.2"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/20/b5/23b216d9d985a956623b6bd12d4086b60f0059b27799f23016af04a74ea1/fastjsonschema-2.21.2.tar.gz", hash = "sha256:b1eb43748041c880796cd077f1a07c3d94e93ae84bba5ed36800a33554ae05de", size = 374130, upload-time = "2025-08-14T18:49:36.666Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/cb/a8/20d0723294217e47de6d9e2e40fd4a9d2f7c4b6ef974babd482a59743694/fastjsonschema-2.21.2-py3-none-any.whl", hash = "sha256:1c797122d0a86c5cace2e54bf4e819c36223b552017172f32c5c024a6b77e463", size = 24024, upload-time = "2025-08-14T18:49:34.776Z" },
+]
+
[[package]]
name = "filelock"
version = "3.24.2"
@@ -243,6 +469,15 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/c7/4e/ce75a57ff3aebf6fc1f4e9d508b8e5810618a33d900ad6c19eb30b290b97/fonttools-4.61.1-py3-none-any.whl", hash = "sha256:17d2bf5d541add43822bcf0c43d7d847b160c9bb01d15d5007d84e2217aaa371", size = 1148996, upload-time = "2025-12-12T17:31:21.03Z" },
]
+[[package]]
+name = "fqdn"
+version = "1.5.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/30/3e/a80a8c077fd798951169626cde3e239adeba7dab75deb3555716415bd9b0/fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f", size = 6015, upload-time = "2021-03-11T07:16:29.08Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/cf/58/8acf1b3e91c58313ce5cb67df61001fc9dcd21be4fadb76c1a2d540e09ed/fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014", size = 9121, upload-time = "2021-03-11T07:16:28.351Z" },
+]
+
[[package]]
name = "fsspec"
version = "2026.2.0"
@@ -346,6 +581,87 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" },
]
+[[package]]
+name = "ipykernel"
+version = "7.2.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "appnope", marker = "sys_platform == 'darwin'" },
+ { name = "comm" },
+ { name = "debugpy" },
+ { name = "ipython" },
+ { name = "jupyter-client" },
+ { name = "jupyter-core" },
+ { name = "matplotlib-inline" },
+ { name = "nest-asyncio" },
+ { name = "packaging" },
+ { name = "psutil" },
+ { name = "pyzmq" },
+ { name = "tornado" },
+ { name = "traitlets" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/ca/8d/b68b728e2d06b9e0051019640a40a9eb7a88fcd82c2e1b5ce70bef5ff044/ipykernel-7.2.0.tar.gz", hash = "sha256:18ed160b6dee2cbb16e5f3575858bc19d8f1fe6046a9a680c708494ce31d909e", size = 176046, upload-time = "2026-02-06T16:43:27.403Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/82/b9/e73d5d9f405cba7706c539aa8b311b49d4c2f3d698d9c12f815231169c71/ipykernel-7.2.0-py3-none-any.whl", hash = "sha256:3bbd4420d2b3cc105cbdf3756bfc04500b1e52f090a90716851f3916c62e1661", size = 118788, upload-time = "2026-02-06T16:43:25.149Z" },
+]
+
+[[package]]
+name = "ipython"
+version = "9.12.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "colorama", marker = "sys_platform == 'win32'" },
+ { name = "decorator" },
+ { name = "ipython-pygments-lexers" },
+ { name = "jedi" },
+ { name = "matplotlib-inline" },
+ { name = "pexpect", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" },
+ { name = "prompt-toolkit" },
+ { name = "pygments" },
+ { name = "stack-data" },
+ { name = "traitlets" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/3a/73/7114f80a8f9cabdb13c27732dce24af945b2923dcab80723602f7c8bc2d8/ipython-9.12.0.tar.gz", hash = "sha256:01daa83f504b693ba523b5a407246cabde4eb4513285a3c6acaff11a66735ee4", size = 4428879, upload-time = "2026-03-27T09:42:45.312Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/59/22/906c8108974c673ebef6356c506cebb6870d48cedea3c41e949e2dd556bb/ipython-9.12.0-py3-none-any.whl", hash = "sha256:0f2701e8ee86e117e37f50563205d36feaa259d2e08d4a6bc6b6d74b18ce128d", size = 625661, upload-time = "2026-03-27T09:42:42.831Z" },
+]
+
+[[package]]
+name = "ipython-pygments-lexers"
+version = "1.1.1"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "pygments" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/ef/4c/5dd1d8af08107f88c7f741ead7a40854b8ac24ddf9ae850afbcf698aa552/ipython_pygments_lexers-1.1.1.tar.gz", hash = "sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81", size = 8393, upload-time = "2025-01-17T11:24:34.505Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/d9/33/1f075bf72b0b747cb3288d011319aaf64083cf2efef8354174e3ed4540e2/ipython_pygments_lexers-1.1.1-py3-none-any.whl", hash = "sha256:a9462224a505ade19a605f71f8fa63c2048833ce50abc86768a0d81d876dc81c", size = 8074, upload-time = "2025-01-17T11:24:33.271Z" },
+]
+
+[[package]]
+name = "isoduration"
+version = "20.11.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "arrow" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/7c/1a/3c8edc664e06e6bd06cce40c6b22da5f1429aa4224d0c590f3be21c91ead/isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9", size = 11649, upload-time = "2020-11-01T11:00:00.312Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/7b/55/e5326141505c5d5e34c5e0935d2908a74e4561eca44108fbfb9c13d2911a/isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042", size = 11321, upload-time = "2020-11-01T10:59:58.02Z" },
+]
+
+[[package]]
+name = "jedi"
+version = "0.19.2"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "parso" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/72/3a/79a912fbd4d8dd6fbb02bf69afd3bb72cf0c729bb3063c6f4498603db17a/jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0", size = 1231287, upload-time = "2024-11-11T01:41:42.873Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9", size = 1572278, upload-time = "2024-11-11T01:41:40.175Z" },
+]
+
[[package]]
name = "jinja2"
version = "3.1.6"
@@ -367,6 +683,217 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/7b/91/984aca2ec129e2757d1e4e3c81c3fcda9d0f85b74670a094cc443d9ee949/joblib-1.5.3-py3-none-any.whl", hash = "sha256:5fc3c5039fc5ca8c0276333a188bbd59d6b7ab37fe6632daa76bc7f9ec18e713", size = 309071, upload-time = "2025-12-15T08:41:44.973Z" },
]
+[[package]]
+name = "json5"
+version = "0.14.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/9c/4b/6f8906aaf67d501e259b0adab4d312945bb7211e8b8d4dcc77c92320edaa/json5-0.14.0.tar.gz", hash = "sha256:b3f492fad9f6cdbced8b7d40b28b9b1c9701c5f561bef0d33b81c2ff433fefcb", size = 52656, upload-time = "2026-03-27T22:50:48.108Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/b8/42/cf027b4ac873b076189d935b135397675dac80cb29acb13e1ab86ad6c631/json5-0.14.0-py3-none-any.whl", hash = "sha256:56cf861bab076b1178eb8c92e1311d273a9b9acea2ccc82c276abf839ebaef3a", size = 36271, upload-time = "2026-03-27T22:50:47.073Z" },
+]
+
+[[package]]
+name = "jsonpointer"
+version = "3.1.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/18/c7/af399a2e7a67fd18d63c40c5e62d3af4e67b836a2107468b6a5ea24c4304/jsonpointer-3.1.1.tar.gz", hash = "sha256:0b801c7db33a904024f6004d526dcc53bbb8a4a0f4e32bfd10beadf60adf1900", size = 9068, upload-time = "2026-03-23T22:32:32.458Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/9e/6a/a83720e953b1682d2d109d3c2dbb0bc9bf28cc1cbc205be4ef4be5da709d/jsonpointer-3.1.1-py3-none-any.whl", hash = "sha256:8ff8b95779d071ba472cf5bc913028df06031797532f08a7d5b602d8b2a488ca", size = 7659, upload-time = "2026-03-23T22:32:31.568Z" },
+]
+
+[[package]]
+name = "jsonschema"
+version = "4.26.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "attrs" },
+ { name = "jsonschema-specifications" },
+ { name = "referencing" },
+ { name = "rpds-py" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/b3/fc/e067678238fa451312d4c62bf6e6cf5ec56375422aee02f9cb5f909b3047/jsonschema-4.26.0.tar.gz", hash = "sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326", size = 366583, upload-time = "2026-01-07T13:41:07.246Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl", hash = "sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce", size = 90630, upload-time = "2026-01-07T13:41:05.306Z" },
+]
+
+[package.optional-dependencies]
+format-nongpl = [
+ { name = "fqdn" },
+ { name = "idna" },
+ { name = "isoduration" },
+ { name = "jsonpointer" },
+ { name = "rfc3339-validator" },
+ { name = "rfc3986-validator" },
+ { name = "rfc3987-syntax" },
+ { name = "uri-template" },
+ { name = "webcolors" },
+]
+
+[[package]]
+name = "jsonschema-specifications"
+version = "2025.9.1"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "referencing" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855, upload-time = "2025-09-08T01:34:59.186Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" },
+]
+
+[[package]]
+name = "jupyter-client"
+version = "8.8.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "jupyter-core" },
+ { name = "python-dateutil" },
+ { name = "pyzmq" },
+ { name = "tornado" },
+ { name = "traitlets" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/05/e4/ba649102a3bc3fbca54e7239fb924fd434c766f855693d86de0b1f2bec81/jupyter_client-8.8.0.tar.gz", hash = "sha256:d556811419a4f2d96c869af34e854e3f059b7cc2d6d01a9cd9c85c267691be3e", size = 348020, upload-time = "2026-01-08T13:55:47.938Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/2d/0b/ceb7694d864abc0a047649aec263878acb9f792e1fec3e676f22dc9015e3/jupyter_client-8.8.0-py3-none-any.whl", hash = "sha256:f93a5b99c5e23a507b773d3a1136bd6e16c67883ccdbd9a829b0bbdb98cd7d7a", size = 107371, upload-time = "2026-01-08T13:55:45.562Z" },
+]
+
+[[package]]
+name = "jupyter-core"
+version = "5.9.1"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "platformdirs" },
+ { name = "traitlets" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/02/49/9d1284d0dc65e2c757b74c6687b6d319b02f822ad039e5c512df9194d9dd/jupyter_core-5.9.1.tar.gz", hash = "sha256:4d09aaff303b9566c3ce657f580bd089ff5c91f5f89cf7d8846c3cdf465b5508", size = 89814, upload-time = "2025-10-16T19:19:18.444Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/e7/e7/80988e32bf6f73919a113473a604f5a8f09094de312b9d52b79c2df7612b/jupyter_core-5.9.1-py3-none-any.whl", hash = "sha256:ebf87fdc6073d142e114c72c9e29a9d7ca03fad818c5d300ce2adc1fb0743407", size = 29032, upload-time = "2025-10-16T19:19:16.783Z" },
+]
+
+[[package]]
+name = "jupyter-events"
+version = "0.12.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "jsonschema", extra = ["format-nongpl"] },
+ { name = "packaging" },
+ { name = "python-json-logger" },
+ { name = "pyyaml" },
+ { name = "referencing" },
+ { name = "rfc3339-validator" },
+ { name = "rfc3986-validator" },
+ { name = "traitlets" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/9d/c3/306d090461e4cf3cd91eceaff84bede12a8e52cd821c2d20c9a4fd728385/jupyter_events-0.12.0.tar.gz", hash = "sha256:fc3fce98865f6784c9cd0a56a20644fc6098f21c8c33834a8d9fe383c17e554b", size = 62196, upload-time = "2025-02-03T17:23:41.485Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/e2/48/577993f1f99c552f18a0428731a755e06171f9902fa118c379eb7c04ea22/jupyter_events-0.12.0-py3-none-any.whl", hash = "sha256:6464b2fa5ad10451c3d35fabc75eab39556ae1e2853ad0c0cc31b656731a97fb", size = 19430, upload-time = "2025-02-03T17:23:38.643Z" },
+]
+
+[[package]]
+name = "jupyter-lsp"
+version = "2.3.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "jupyter-server" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/eb/5a/9066c9f8e94ee517133cd98dba393459a16cd48bba71a82f16a65415206c/jupyter_lsp-2.3.0.tar.gz", hash = "sha256:458aa59339dc868fb784d73364f17dbce8836e906cd75fd471a325cba02e0245", size = 54823, upload-time = "2025-08-27T17:47:34.671Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/1a/60/1f6cee0c46263de1173894f0fafcb3475ded276c472c14d25e0280c18d6d/jupyter_lsp-2.3.0-py3-none-any.whl", hash = "sha256:e914a3cb2addf48b1c7710914771aaf1819d46b2e5a79b0f917b5478ec93f34f", size = 76687, upload-time = "2025-08-27T17:47:33.15Z" },
+]
+
+[[package]]
+name = "jupyter-server"
+version = "2.17.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "anyio" },
+ { name = "argon2-cffi" },
+ { name = "jinja2" },
+ { name = "jupyter-client" },
+ { name = "jupyter-core" },
+ { name = "jupyter-events" },
+ { name = "jupyter-server-terminals" },
+ { name = "nbconvert" },
+ { name = "nbformat" },
+ { name = "packaging" },
+ { name = "prometheus-client" },
+ { name = "pywinpty", marker = "os_name == 'nt' and sys_platform != 'linux'" },
+ { name = "pyzmq" },
+ { name = "send2trash" },
+ { name = "terminado" },
+ { name = "tornado" },
+ { name = "traitlets" },
+ { name = "websocket-client" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/5b/ac/e040ec363d7b6b1f11304cc9f209dac4517ece5d5e01821366b924a64a50/jupyter_server-2.17.0.tar.gz", hash = "sha256:c38ea898566964c888b4772ae1ed58eca84592e88251d2cfc4d171f81f7e99d5", size = 731949, upload-time = "2025-08-21T14:42:54.042Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/92/80/a24767e6ca280f5a49525d987bf3e4d7552bf67c8be07e8ccf20271f8568/jupyter_server-2.17.0-py3-none-any.whl", hash = "sha256:e8cb9c7db4251f51ed307e329b81b72ccf2056ff82d50524debde1ee1870e13f", size = 388221, upload-time = "2025-08-21T14:42:52.034Z" },
+]
+
+[[package]]
+name = "jupyter-server-terminals"
+version = "0.5.4"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "pywinpty", marker = "os_name == 'nt' and sys_platform != 'linux'" },
+ { name = "terminado" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/f4/a7/bcd0a9b0cbba88986fe944aaaf91bfda603e5a50bda8ed15123f381a3b2f/jupyter_server_terminals-0.5.4.tar.gz", hash = "sha256:bbda128ed41d0be9020349f9f1f2a4ab9952a73ed5f5ac9f1419794761fb87f5", size = 31770, upload-time = "2026-01-14T16:53:20.213Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/d1/2d/6674563f71c6320841fc300911a55143925112a72a883e2ca71fba4c618d/jupyter_server_terminals-0.5.4-py3-none-any.whl", hash = "sha256:55be353fc74a80bc7f3b20e6be50a55a61cd525626f578dcb66a5708e2007d14", size = 13704, upload-time = "2026-01-14T16:53:18.738Z" },
+]
+
+[[package]]
+name = "jupyterlab"
+version = "4.5.6"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "async-lru" },
+ { name = "httpx" },
+ { name = "ipykernel" },
+ { name = "jinja2" },
+ { name = "jupyter-core" },
+ { name = "jupyter-lsp" },
+ { name = "jupyter-server" },
+ { name = "jupyterlab-server" },
+ { name = "notebook-shim" },
+ { name = "packaging" },
+ { name = "setuptools" },
+ { name = "tornado" },
+ { name = "traitlets" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/ac/d5/730628e03fff2e8a8e8ccdaedde1489ab1309f9a4fa2536248884e30b7c7/jupyterlab-4.5.6.tar.gz", hash = "sha256:642fe2cfe7f0f5922a8a558ba7a0d246c7bc133b708dfe43f7b3a826d163cf42", size = 23970670, upload-time = "2026-03-11T14:17:04.531Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/e1/1b/dad6fdcc658ed7af26fdf3841e7394072c9549a8b896c381ab49dd11e2d9/jupyterlab-4.5.6-py3-none-any.whl", hash = "sha256:d6b3dac883aa4d9993348e0f8e95b24624f75099aed64eab6a4351a9cdd1e580", size = 12447124, upload-time = "2026-03-11T14:17:00.229Z" },
+]
+
+[[package]]
+name = "jupyterlab-pygments"
+version = "0.3.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/90/51/9187be60d989df97f5f0aba133fa54e7300f17616e065d1ada7d7646b6d6/jupyterlab_pygments-0.3.0.tar.gz", hash = "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d", size = 512900, upload-time = "2023-11-23T09:26:37.44Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/b1/dd/ead9d8ea85bf202d90cc513b533f9c363121c7792674f78e0d8a854b63b4/jupyterlab_pygments-0.3.0-py3-none-any.whl", hash = "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780", size = 15884, upload-time = "2023-11-23T09:26:34.325Z" },
+]
+
+[[package]]
+name = "jupyterlab-server"
+version = "2.28.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "babel" },
+ { name = "jinja2" },
+ { name = "json5" },
+ { name = "jsonschema" },
+ { name = "jupyter-server" },
+ { name = "packaging" },
+ { name = "requests" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/d6/2c/90153f189e421e93c4bb4f9e3f59802a1f01abd2ac5cf40b152d7f735232/jupyterlab_server-2.28.0.tar.gz", hash = "sha256:35baa81898b15f93573e2deca50d11ac0ae407ebb688299d3a5213265033712c", size = 76996, upload-time = "2025-10-22T13:59:18.37Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/e0/07/a000fe835f76b7e1143242ab1122e6362ef1c03f23f83a045c38859c2ae0/jupyterlab_server-2.28.0-py3-none-any.whl", hash = "sha256:e4355b148fdcf34d312bbbc80f22467d6d20460e8b8736bf235577dd18506968", size = 59830, upload-time = "2025-10-22T13:59:16.767Z" },
+]
+
[[package]]
name = "kiwisolver"
version = "1.4.9"
@@ -401,6 +928,15 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/80/be/3578e8afd18c88cdf9cb4cffde75a96d2be38c5a903f1ed0ceec061bd09e/kiwisolver-1.4.9-cp314-cp314t-win_arm64.whl", hash = "sha256:4a48a2ce79d65d363597ef7b567ce3d14d68783d2b2263d98db3d9477805ba32", size = 70260, upload-time = "2025-08-10T21:27:36.606Z" },
]
+[[package]]
+name = "lark"
+version = "1.3.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/da/34/28fff3ab31ccff1fd4f6c7c7b0ceb2b6968d8ea4950663eadcb5720591a0/lark-1.3.1.tar.gz", hash = "sha256:b426a7a6d6d53189d318f2b6236ab5d6429eaf09259f1ca33eb716eed10d2905", size = 382732, upload-time = "2025-10-27T18:25:56.653Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/82/3d/14ce75ef66813643812f3093ab17e46d3a206942ce7376d31ec2d36229e7/lark-1.3.1-py3-none-any.whl", hash = "sha256:c629b661023a014c37da873b4ff58a817398d12635d3bbb2c5a03be7fe5d1e12", size = 113151, upload-time = "2025-10-27T18:25:54.882Z" },
+]
+
[[package]]
name = "markupsafe"
version = "3.0.3"
@@ -464,6 +1000,27 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/5d/49/d651878698a0b67f23aa28e17f45a6d6dd3d3f933fa29087fa4ce5947b5a/matplotlib-3.10.8-cp314-cp314t-win_arm64.whl", hash = "sha256:113bb52413ea508ce954a02c10ffd0d565f9c3bc7f2eddc27dfe1731e71c7b5f", size = 8192560, upload-time = "2025-12-10T22:56:38.008Z" },
]
+[[package]]
+name = "matplotlib-inline"
+version = "0.2.1"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "traitlets" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/c7/74/97e72a36efd4ae2bccb3463284300f8953f199b5ffbc04cbbb0ec78f74b1/matplotlib_inline-0.2.1.tar.gz", hash = "sha256:e1ee949c340d771fc39e241ea75683deb94762c8fa5f2927ec57c83c4dffa9fe", size = 8110, upload-time = "2025-10-23T09:00:22.126Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/af/33/ee4519fa02ed11a94aef9559552f3b17bb863f2ecfe1a35dc7f548cde231/matplotlib_inline-0.2.1-py3-none-any.whl", hash = "sha256:d56ce5156ba6085e00a9d54fead6ed29a9c47e215cd1bba2e976ef39f5710a76", size = 9516, upload-time = "2025-10-23T09:00:20.675Z" },
+]
+
+[[package]]
+name = "mistune"
+version = "3.2.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/9d/55/d01f0c4b45ade6536c51170b9043db8b2ec6ddf4a35c7ea3f5f559ac935b/mistune-3.2.0.tar.gz", hash = "sha256:708487c8a8cdd99c9d90eb3ed4c3ed961246ff78ac82f03418f5183ab70e398a", size = 95467, upload-time = "2025-12-23T11:36:34.994Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/9b/f7/4a5e785ec9fbd65146a27b6b70b6cdc161a66f2024e4b04ac06a67f5578b/mistune-3.2.0-py3-none-any.whl", hash = "sha256:febdc629a3c78616b94393c6580551e0e34cc289987ec6c35ed3f4be42d0eee1", size = 53598, upload-time = "2025-12-23T11:36:33.211Z" },
+]
+
[[package]]
name = "mpmath"
version = "1.3.0"
@@ -473,6 +1030,70 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198, upload-time = "2023-03-07T16:47:09.197Z" },
]
+[[package]]
+name = "nbclient"
+version = "0.10.4"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "jupyter-client" },
+ { name = "jupyter-core" },
+ { name = "nbformat" },
+ { name = "traitlets" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/56/91/1c1d5a4b9a9ebba2b4e32b8c852c2975c872aec1fe42ab5e516b2cecd193/nbclient-0.10.4.tar.gz", hash = "sha256:1e54091b16e6da39e297b0ece3e10f6f29f4ac4e8ee515d29f8a7099bd6553c9", size = 62554, upload-time = "2025-12-23T07:45:46.369Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/83/a0/5b0c2f11142ed1dddec842457d3f65eaf71a0080894eb6f018755b319c3a/nbclient-0.10.4-py3-none-any.whl", hash = "sha256:9162df5a7373d70d606527300a95a975a47c137776cd942e52d9c7e29ff83440", size = 25465, upload-time = "2025-12-23T07:45:44.51Z" },
+]
+
+[[package]]
+name = "nbconvert"
+version = "7.17.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "beautifulsoup4" },
+ { name = "bleach", extra = ["css"] },
+ { name = "defusedxml" },
+ { name = "jinja2" },
+ { name = "jupyter-core" },
+ { name = "jupyterlab-pygments" },
+ { name = "markupsafe" },
+ { name = "mistune" },
+ { name = "nbclient" },
+ { name = "nbformat" },
+ { name = "packaging" },
+ { name = "pandocfilters" },
+ { name = "pygments" },
+ { name = "traitlets" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/38/47/81f886b699450d0569f7bc551df2b1673d18df7ff25cc0c21ca36ed8a5ff/nbconvert-7.17.0.tar.gz", hash = "sha256:1b2696f1b5be12309f6c7d707c24af604b87dfaf6d950794c7b07acab96dda78", size = 862855, upload-time = "2026-01-29T16:37:48.478Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/0d/4b/8d5f796a792f8a25f6925a96032f098789f448571eb92011df1ae59e8ea8/nbconvert-7.17.0-py3-none-any.whl", hash = "sha256:4f99a63b337b9a23504347afdab24a11faa7d86b405e5c8f9881cd313336d518", size = 261510, upload-time = "2026-01-29T16:37:46.322Z" },
+]
+
+[[package]]
+name = "nbformat"
+version = "5.10.4"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "fastjsonschema" },
+ { name = "jsonschema" },
+ { name = "jupyter-core" },
+ { name = "traitlets" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/6d/fd/91545e604bc3dad7dca9ed03284086039b294c6b3d75c0d2fa45f9e9caf3/nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a", size = 142749, upload-time = "2024-04-04T11:20:37.371Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/a9/82/0340caa499416c78e5d8f5f05947ae4bc3cba53c9f038ab6e9ed964e22f1/nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b", size = 78454, upload-time = "2024-04-04T11:20:34.895Z" },
+]
+
+[[package]]
+name = "nest-asyncio"
+version = "1.6.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/83/f8/51569ac65d696c8ecbee95938f89d4abf00f47d58d48f6fbabfe8f0baefe/nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe", size = 7418, upload-time = "2024-01-21T14:25:19.227Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/a0/c4/c2971a3ba4c6103a3d10c4b0f24f461ddc027f0f09763220cf35ca1401b3/nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c", size = 5195, upload-time = "2024-01-21T14:25:17.223Z" },
+]
+
[[package]]
name = "networkx"
version = "3.6.1"
@@ -482,6 +1103,34 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl", hash = "sha256:d47fbf302e7d9cbbb9e2555a0d267983d2aa476bac30e90dfbe5669bd57f3762", size = 2068504, upload-time = "2025-12-08T17:02:38.159Z" },
]
+[[package]]
+name = "notebook"
+version = "7.5.5"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "jupyter-server" },
+ { name = "jupyterlab" },
+ { name = "jupyterlab-server" },
+ { name = "notebook-shim" },
+ { name = "tornado" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/1f/6d/41052c48d6f6349ca0a7c4d1f6a78464de135e6d18f5829ba2510e62184c/notebook-7.5.5.tar.gz", hash = "sha256:dc0bfab0f2372c8278c457423d3256c34154ac2cc76bf20e9925260c461013c3", size = 14169167, upload-time = "2026-03-11T16:32:51.922Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/f8/aa/cbd1deb9f07446241e88f8d5fecccd95b249bca0b4e5482214a4d1714c49/notebook-7.5.5-py3-none-any.whl", hash = "sha256:a7c14dbeefa6592e87f72290ca982e0c10f5bbf3786be2a600fda9da2764a2b8", size = 14578929, upload-time = "2026-03-11T16:32:48.021Z" },
+]
+
+[[package]]
+name = "notebook-shim"
+version = "0.2.4"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "jupyter-server" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/54/d2/92fa3243712b9a3e8bafaf60aac366da1cada3639ca767ff4b5b3654ec28/notebook_shim-0.2.4.tar.gz", hash = "sha256:b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb", size = 13167, upload-time = "2024-02-14T23:35:18.353Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/f9/33/bd5b9137445ea4b680023eb0469b2bb969d61303dedb2aac6560ff3d14a1/notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef", size = 13307, upload-time = "2024-02-14T23:35:16.286Z" },
+]
+
[[package]]
name = "numpy"
version = "2.4.2"
@@ -684,6 +1333,36 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/68/b0/34937815889fa982613775e4b97fddd13250f11012d769949c5465af2150/pandas-3.0.1-cp314-cp314t-win_arm64.whl", hash = "sha256:108dd1790337a494aa80e38def654ca3f0968cf4f362c85f44c15e471667102d", size = 9452085, upload-time = "2026-02-17T22:20:14.331Z" },
]
+[[package]]
+name = "pandocfilters"
+version = "1.5.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/70/6f/3dd4940bbe001c06a65f88e36bad298bc7a0de5036115639926b0c5c0458/pandocfilters-1.5.1.tar.gz", hash = "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e", size = 8454, upload-time = "2024-01-18T20:08:13.726Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/ef/af/4fbc8cab944db5d21b7e2a5b8e9211a03a79852b1157e2c102fcc61ac440/pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc", size = 8663, upload-time = "2024-01-18T20:08:11.28Z" },
+]
+
+[[package]]
+name = "parso"
+version = "0.8.6"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/81/76/a1e769043c0c0c9fe391b702539d594731a4362334cdf4dc25d0c09761e7/parso-0.8.6.tar.gz", hash = "sha256:2b9a0332696df97d454fa67b81618fd69c35a7b90327cbe6ba5c92d2c68a7bfd", size = 401621, upload-time = "2026-02-09T15:45:24.425Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/b6/61/fae042894f4296ec49e3f193aff5d7c18440da9e48102c3315e1bc4519a7/parso-0.8.6-py2.py3-none-any.whl", hash = "sha256:2c549f800b70a5c4952197248825584cb00f033b29c692671d3bf08bf380baff", size = 106894, upload-time = "2026-02-09T15:45:21.391Z" },
+]
+
+[[package]]
+name = "pexpect"
+version = "4.9.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "ptyprocess", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/42/92/cc564bf6381ff43ce1f4d06852fc19a2f11d180f23dc32d9588bee2f149d/pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f", size = 166450, upload-time = "2023-11-25T09:07:26.339Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772, upload-time = "2023-11-25T06:56:14.81Z" },
+]
+
[[package]]
name = "pillow"
version = "12.1.1"
@@ -735,6 +1414,27 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" },
]
+[[package]]
+name = "prometheus-client"
+version = "0.24.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/f0/58/a794d23feb6b00fc0c72787d7e87d872a6730dd9ed7c7b3e954637d8f280/prometheus_client-0.24.1.tar.gz", hash = "sha256:7e0ced7fbbd40f7b84962d5d2ab6f17ef88a72504dcf7c0b40737b43b2a461f9", size = 85616, upload-time = "2026-01-14T15:26:26.965Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/74/c3/24a2f845e3917201628ecaba4f18bab4d18a337834c1df2a159ee9d22a42/prometheus_client-0.24.1-py3-none-any.whl", hash = "sha256:150db128af71a5c2482b36e588fc8a6b95e498750da4b17065947c16070f4055", size = 64057, upload-time = "2026-01-14T15:26:24.42Z" },
+]
+
+[[package]]
+name = "prompt-toolkit"
+version = "3.0.52"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "wcwidth" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/a1/96/06e01a7b38dce6fe1db213e061a4602dd6032a8a97ef6c1a862537732421/prompt_toolkit-3.0.52.tar.gz", hash = "sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855", size = 434198, upload-time = "2025-08-27T15:24:02.057Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/84/03/0d3ce49e2505ae70cf43bc5bb3033955d2fc9f932163e84dc0779cc47f48/prompt_toolkit-3.0.52-py3-none-any.whl", hash = "sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955", size = 391431, upload-time = "2025-08-27T15:23:59.498Z" },
+]
+
[[package]]
name = "protobuf"
version = "6.33.5"
@@ -750,6 +1450,55 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/57/bf/2086963c69bdac3d7cff1cc7ff79b8ce5ea0bec6797a017e1be338a46248/protobuf-6.33.5-py3-none-any.whl", hash = "sha256:69915a973dd0f60f31a08b8318b73eab2bd6a392c79184b3612226b0a3f8ec02", size = 170687, upload-time = "2026-01-29T21:51:32.557Z" },
]
+[[package]]
+name = "psutil"
+version = "7.2.2"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/aa/c6/d1ddf4abb55e93cebc4f2ed8b5d6dbad109ecb8d63748dd2b20ab5e57ebe/psutil-7.2.2.tar.gz", hash = "sha256:0746f5f8d406af344fd547f1c8daa5f5c33dbc293bb8d6a16d80b4bb88f59372", size = 493740, upload-time = "2026-01-28T18:14:54.428Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/81/69/ef179ab5ca24f32acc1dac0c247fd6a13b501fd5534dbae0e05a1c48b66d/psutil-7.2.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:eed63d3b4d62449571547b60578c5b2c4bcccc5387148db46e0c2313dad0ee00", size = 130664, upload-time = "2026-01-28T18:15:09.469Z" },
+ { url = "https://files.pythonhosted.org/packages/7b/64/665248b557a236d3fa9efc378d60d95ef56dd0a490c2cd37dafc7660d4a9/psutil-7.2.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7b6d09433a10592ce39b13d7be5a54fbac1d1228ed29abc880fb23df7cb694c9", size = 131087, upload-time = "2026-01-28T18:15:11.724Z" },
+ { url = "https://files.pythonhosted.org/packages/d5/2e/e6782744700d6759ebce3043dcfa661fb61e2fb752b91cdeae9af12c2178/psutil-7.2.2-cp314-cp314t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fa4ecf83bcdf6e6c8f4449aff98eefb5d0604bf88cb883d7da3d8d2d909546a", size = 182383, upload-time = "2026-01-28T18:15:13.445Z" },
+ { url = "https://files.pythonhosted.org/packages/57/49/0a41cefd10cb7505cdc04dab3eacf24c0c2cb158a998b8c7b1d27ee2c1f5/psutil-7.2.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e452c464a02e7dc7822a05d25db4cde564444a67e58539a00f929c51eddda0cf", size = 185210, upload-time = "2026-01-28T18:15:16.002Z" },
+ { url = "https://files.pythonhosted.org/packages/dd/2c/ff9bfb544f283ba5f83ba725a3c5fec6d6b10b8f27ac1dc641c473dc390d/psutil-7.2.2-cp314-cp314t-win_amd64.whl", hash = "sha256:c7663d4e37f13e884d13994247449e9f8f574bc4655d509c3b95e9ec9e2b9dc1", size = 141228, upload-time = "2026-01-28T18:15:18.385Z" },
+ { url = "https://files.pythonhosted.org/packages/f2/fc/f8d9c31db14fcec13748d373e668bc3bed94d9077dbc17fb0eebc073233c/psutil-7.2.2-cp314-cp314t-win_arm64.whl", hash = "sha256:11fe5a4f613759764e79c65cf11ebdf26e33d6dd34336f8a337aa2996d71c841", size = 136284, upload-time = "2026-01-28T18:15:19.912Z" },
+ { url = "https://files.pythonhosted.org/packages/e7/36/5ee6e05c9bd427237b11b3937ad82bb8ad2752d72c6969314590dd0c2f6e/psutil-7.2.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ed0cace939114f62738d808fdcecd4c869222507e266e574799e9c0faa17d486", size = 129090, upload-time = "2026-01-28T18:15:22.168Z" },
+ { url = "https://files.pythonhosted.org/packages/80/c4/f5af4c1ca8c1eeb2e92ccca14ce8effdeec651d5ab6053c589b074eda6e1/psutil-7.2.2-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:1a7b04c10f32cc88ab39cbf606e117fd74721c831c98a27dc04578deb0c16979", size = 129859, upload-time = "2026-01-28T18:15:23.795Z" },
+ { url = "https://files.pythonhosted.org/packages/b5/70/5d8df3b09e25bce090399cf48e452d25c935ab72dad19406c77f4e828045/psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:076a2d2f923fd4821644f5ba89f059523da90dc9014e85f8e45a5774ca5bc6f9", size = 155560, upload-time = "2026-01-28T18:15:25.976Z" },
+ { url = "https://files.pythonhosted.org/packages/63/65/37648c0c158dc222aba51c089eb3bdfa238e621674dc42d48706e639204f/psutil-7.2.2-cp36-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b0726cecd84f9474419d67252add4ac0cd9811b04d61123054b9fb6f57df6e9e", size = 156997, upload-time = "2026-01-28T18:15:27.794Z" },
+ { url = "https://files.pythonhosted.org/packages/8e/13/125093eadae863ce03c6ffdbae9929430d116a246ef69866dad94da3bfbc/psutil-7.2.2-cp36-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fd04ef36b4a6d599bbdb225dd1d3f51e00105f6d48a28f006da7f9822f2606d8", size = 148972, upload-time = "2026-01-28T18:15:29.342Z" },
+ { url = "https://files.pythonhosted.org/packages/04/78/0acd37ca84ce3ddffaa92ef0f571e073faa6d8ff1f0559ab1272188ea2be/psutil-7.2.2-cp36-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b58fabe35e80b264a4e3bb23e6b96f9e45a3df7fb7eed419ac0e5947c61e47cc", size = 148266, upload-time = "2026-01-28T18:15:31.597Z" },
+ { url = "https://files.pythonhosted.org/packages/b4/90/e2159492b5426be0c1fef7acba807a03511f97c5f86b3caeda6ad92351a7/psutil-7.2.2-cp37-abi3-win_amd64.whl", hash = "sha256:eb7e81434c8d223ec4a219b5fc1c47d0417b12be7ea866e24fb5ad6e84b3d988", size = 137737, upload-time = "2026-01-28T18:15:33.849Z" },
+ { url = "https://files.pythonhosted.org/packages/8c/c7/7bb2e321574b10df20cbde462a94e2b71d05f9bbda251ef27d104668306a/psutil-7.2.2-cp37-abi3-win_arm64.whl", hash = "sha256:8c233660f575a5a89e6d4cb65d9f938126312bca76d8fe087b947b3a1aaac9ee", size = 134617, upload-time = "2026-01-28T18:15:36.514Z" },
+]
+
+[[package]]
+name = "ptyprocess"
+version = "0.7.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/20/e5/16ff212c1e452235a90aeb09066144d0c5a6a8c0834397e03f5224495c4e/ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220", size = 70762, upload-time = "2020-12-28T15:15:30.155Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", size = 13993, upload-time = "2020-12-28T15:15:28.35Z" },
+]
+
+[[package]]
+name = "pure-eval"
+version = "0.2.3"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/cd/05/0a34433a064256a578f1783a10da6df098ceaa4a57bbeaa96a6c0352786b/pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42", size = 19752, upload-time = "2024-07-21T12:58:21.801Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", size = 11842, upload-time = "2024-07-21T12:58:20.04Z" },
+]
+
+[[package]]
+name = "pycparser"
+version = "3.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/1b/7d/92392ff7815c21062bea51aa7b87d45576f649f16458d78b7cf94b9ab2e6/pycparser-3.0.tar.gz", hash = "sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29", size = 103492, upload-time = "2026-01-21T14:26:51.89Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl", hash = "sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992", size = 48172, upload-time = "2026-01-21T14:26:50.693Z" },
+]
+
[[package]]
name = "pydantic"
version = "2.12.5"
@@ -859,6 +1608,27 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload-time = "2026-03-01T16:00:25.09Z" },
]
+[[package]]
+name = "python-json-logger"
+version = "4.1.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/f7/ff/3cc9165fd44106973cd7ac9facb674a65ed853494592541d339bdc9a30eb/python_json_logger-4.1.0.tar.gz", hash = "sha256:b396b9e3ed782b09ff9d6e4f1683d46c83ad0d35d2e407c09a9ebbf038f88195", size = 17573, upload-time = "2026-03-29T04:39:56.805Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/27/be/0631a861af4d1c875f096c07d34e9a63639560a717130e7a87cbc82b7e3f/python_json_logger-4.1.0-py3-none-any.whl", hash = "sha256:132994765cf75bf44554be9aa49b06ef2345d23661a96720262716438141b6b2", size = 15021, upload-time = "2026-03-29T04:39:55.266Z" },
+]
+
+[[package]]
+name = "pywinpty"
+version = "3.0.3"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/f7/54/37c7370ba91f579235049dc26cd2c5e657d2a943e01820844ffc81f32176/pywinpty-3.0.3.tar.gz", hash = "sha256:523441dc34d231fb361b4b00f8c99d3f16de02f5005fd544a0183112bcc22412", size = 31309, upload-time = "2026-02-04T21:51:09.524Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/28/88/2ff917caff61e55f38bcdb27de06ee30597881b2cae44fbba7627be015c4/pywinpty-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:d4b6b7b0fe0cdcd02e956bd57cfe9f4e5a06514eecf3b5ae174da4f951b58be9", size = 2113282, upload-time = "2026-02-04T21:52:08.188Z" },
+ { url = "https://files.pythonhosted.org/packages/63/32/40a775343ace542cc43ece3f1d1fce454021521ecac41c4c4573081c2336/pywinpty-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:34789d685fc0d547ce0c8a65e5a70e56f77d732fa6e03c8f74fefb8cbb252019", size = 234207, upload-time = "2026-02-04T21:51:58.687Z" },
+ { url = "https://files.pythonhosted.org/packages/8d/54/5d5e52f4cb75028104ca6faf36c10f9692389b1986d34471663b4ebebd6d/pywinpty-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:0c37e224a47a971d1a6e08649a1714dac4f63c11920780977829ed5c8cadead1", size = 2112910, upload-time = "2026-02-04T21:52:30.976Z" },
+ { url = "https://files.pythonhosted.org/packages/0a/44/dcd184824e21d4620b06c7db9fbb15c3ad0a0f1fa2e6de79969fb82647ec/pywinpty-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:c4e9c3dff7d86ba81937438d5819f19f385a39d8f592d4e8af67148ceb4f6ab5", size = 233425, upload-time = "2026-02-04T21:51:56.754Z" },
+]
+
[[package]]
name = "pyyaml"
version = "6.0.3"
@@ -885,6 +1655,50 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" },
]
+[[package]]
+name = "pyzmq"
+version = "27.1.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "cffi", marker = "implementation_name == 'pypy'" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/04/0b/3c9baedbdf613ecaa7aa07027780b8867f57b6293b6ee50de316c9f3222b/pyzmq-27.1.0.tar.gz", hash = "sha256:ac0765e3d44455adb6ddbf4417dcce460fc40a05978c08efdf2948072f6db540", size = 281750, upload-time = "2025-09-08T23:10:18.157Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/92/e7/038aab64a946d535901103da16b953c8c9cc9c961dadcbf3609ed6428d23/pyzmq-27.1.0-cp312-abi3-macosx_10_15_universal2.whl", hash = "sha256:452631b640340c928fa343801b0d07eb0c3789a5ffa843f6e1a9cee0ba4eb4fc", size = 1306279, upload-time = "2025-09-08T23:08:03.807Z" },
+ { url = "https://files.pythonhosted.org/packages/e8/5e/c3c49fdd0f535ef45eefcc16934648e9e59dace4a37ee88fc53f6cd8e641/pyzmq-27.1.0-cp312-abi3-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1c179799b118e554b66da67d88ed66cd37a169f1f23b5d9f0a231b4e8d44a113", size = 895645, upload-time = "2025-09-08T23:08:05.301Z" },
+ { url = "https://files.pythonhosted.org/packages/f8/e5/b0b2504cb4e903a74dcf1ebae157f9e20ebb6ea76095f6cfffea28c42ecd/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3837439b7f99e60312f0c926a6ad437b067356dc2bc2ec96eb395fd0fe804233", size = 652574, upload-time = "2025-09-08T23:08:06.828Z" },
+ { url = "https://files.pythonhosted.org/packages/f8/9b/c108cdb55560eaf253f0cbdb61b29971e9fb34d9c3499b0e96e4e60ed8a5/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43ad9a73e3da1fab5b0e7e13402f0b2fb934ae1c876c51d0afff0e7c052eca31", size = 840995, upload-time = "2025-09-08T23:08:08.396Z" },
+ { url = "https://files.pythonhosted.org/packages/c2/bb/b79798ca177b9eb0825b4c9998c6af8cd2a7f15a6a1a4272c1d1a21d382f/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0de3028d69d4cdc475bfe47a6128eb38d8bc0e8f4d69646adfbcd840facbac28", size = 1642070, upload-time = "2025-09-08T23:08:09.989Z" },
+ { url = "https://files.pythonhosted.org/packages/9c/80/2df2e7977c4ede24c79ae39dcef3899bfc5f34d1ca7a5b24f182c9b7a9ca/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_i686.whl", hash = "sha256:cf44a7763aea9298c0aa7dbf859f87ed7012de8bda0f3977b6fb1d96745df856", size = 2021121, upload-time = "2025-09-08T23:08:11.907Z" },
+ { url = "https://files.pythonhosted.org/packages/46/bd/2d45ad24f5f5ae7e8d01525eb76786fa7557136555cac7d929880519e33a/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f30f395a9e6fbca195400ce833c731e7b64c3919aa481af4d88c3759e0cb7496", size = 1878550, upload-time = "2025-09-08T23:08:13.513Z" },
+ { url = "https://files.pythonhosted.org/packages/e6/2f/104c0a3c778d7c2ab8190e9db4f62f0b6957b53c9d87db77c284b69f33ea/pyzmq-27.1.0-cp312-abi3-win32.whl", hash = "sha256:250e5436a4ba13885494412b3da5d518cd0d3a278a1ae640e113c073a5f88edd", size = 559184, upload-time = "2025-09-08T23:08:15.163Z" },
+ { url = "https://files.pythonhosted.org/packages/fc/7f/a21b20d577e4100c6a41795842028235998a643b1ad406a6d4163ea8f53e/pyzmq-27.1.0-cp312-abi3-win_amd64.whl", hash = "sha256:9ce490cf1d2ca2ad84733aa1d69ce6855372cb5ce9223802450c9b2a7cba0ccf", size = 619480, upload-time = "2025-09-08T23:08:17.192Z" },
+ { url = "https://files.pythonhosted.org/packages/78/c2/c012beae5f76b72f007a9e91ee9401cb88c51d0f83c6257a03e785c81cc2/pyzmq-27.1.0-cp312-abi3-win_arm64.whl", hash = "sha256:75a2f36223f0d535a0c919e23615fc85a1e23b71f40c7eb43d7b1dedb4d8f15f", size = 552993, upload-time = "2025-09-08T23:08:18.926Z" },
+ { url = "https://files.pythonhosted.org/packages/87/45/19efbb3000956e82d0331bafca5d9ac19ea2857722fa2caacefb6042f39d/pyzmq-27.1.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:ce980af330231615756acd5154f29813d553ea555485ae712c491cd483df6b7a", size = 1341197, upload-time = "2025-09-08T23:08:44.973Z" },
+ { url = "https://files.pythonhosted.org/packages/48/43/d72ccdbf0d73d1343936296665826350cb1e825f92f2db9db3e61c2162a2/pyzmq-27.1.0-cp314-cp314t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1779be8c549e54a1c38f805e56d2a2e5c009d26de10921d7d51cfd1c8d4632ea", size = 897175, upload-time = "2025-09-08T23:08:46.601Z" },
+ { url = "https://files.pythonhosted.org/packages/2f/2e/a483f73a10b65a9ef0161e817321d39a770b2acf8bcf3004a28d90d14a94/pyzmq-27.1.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7200bb0f03345515df50d99d3db206a0a6bee1955fbb8c453c76f5bf0e08fb96", size = 660427, upload-time = "2025-09-08T23:08:48.187Z" },
+ { url = "https://files.pythonhosted.org/packages/f5/d2/5f36552c2d3e5685abe60dfa56f91169f7a2d99bbaf67c5271022ab40863/pyzmq-27.1.0-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:01c0e07d558b06a60773744ea6251f769cd79a41a97d11b8bf4ab8f034b0424d", size = 847929, upload-time = "2025-09-08T23:08:49.76Z" },
+ { url = "https://files.pythonhosted.org/packages/c4/2a/404b331f2b7bf3198e9945f75c4c521f0c6a3a23b51f7a4a401b94a13833/pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:80d834abee71f65253c91540445d37c4c561e293ba6e741b992f20a105d69146", size = 1650193, upload-time = "2025-09-08T23:08:51.7Z" },
+ { url = "https://files.pythonhosted.org/packages/1c/0b/f4107e33f62a5acf60e3ded67ed33d79b4ce18de432625ce2fc5093d6388/pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:544b4e3b7198dde4a62b8ff6685e9802a9a1ebf47e77478a5eb88eca2a82f2fd", size = 2024388, upload-time = "2025-09-08T23:08:53.393Z" },
+ { url = "https://files.pythonhosted.org/packages/0d/01/add31fe76512642fd6e40e3a3bd21f4b47e242c8ba33efb6809e37076d9b/pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cedc4c68178e59a4046f97eca31b148ddcf51e88677de1ef4e78cf06c5376c9a", size = 1885316, upload-time = "2025-09-08T23:08:55.702Z" },
+ { url = "https://files.pythonhosted.org/packages/c4/59/a5f38970f9bf07cee96128de79590bb354917914a9be11272cfc7ff26af0/pyzmq-27.1.0-cp314-cp314t-win32.whl", hash = "sha256:1f0b2a577fd770aa6f053211a55d1c47901f4d537389a034c690291485e5fe92", size = 587472, upload-time = "2025-09-08T23:08:58.18Z" },
+ { url = "https://files.pythonhosted.org/packages/70/d8/78b1bad170f93fcf5e3536e70e8fadac55030002275c9a29e8f5719185de/pyzmq-27.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:19c9468ae0437f8074af379e986c5d3d7d7bfe033506af442e8c879732bedbe0", size = 661401, upload-time = "2025-09-08T23:08:59.802Z" },
+ { url = "https://files.pythonhosted.org/packages/81/d6/4bfbb40c9a0b42fc53c7cf442f6385db70b40f74a783130c5d0a5aa62228/pyzmq-27.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:dc5dbf68a7857b59473f7df42650c621d7e8923fb03fa74a526890f4d33cc4d7", size = 575170, upload-time = "2025-09-08T23:09:01.418Z" },
+]
+
+[[package]]
+name = "referencing"
+version = "0.37.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "attrs" },
+ { name = "rpds-py" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/22/f5/df4e9027acead3ecc63e50fe1e36aca1523e1719559c499951bb4b53188f/referencing-0.37.0.tar.gz", hash = "sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8", size = 78036, upload-time = "2025-10-13T15:30:48.871Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl", hash = "sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231", size = 26766, upload-time = "2025-10-13T15:30:47.625Z" },
+]
+
[[package]]
name = "requests"
version = "2.32.5"
@@ -900,6 +1714,76 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" },
]
+[[package]]
+name = "rfc3339-validator"
+version = "0.1.4"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "six" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/28/ea/a9387748e2d111c3c2b275ba970b735e04e15cdb1eb30693b6b5708c4dbd/rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b", size = 5513, upload-time = "2021-05-12T16:37:54.178Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/7b/44/4e421b96b67b2daff264473f7465db72fbdf36a07e05494f50300cc7b0c6/rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa", size = 3490, upload-time = "2021-05-12T16:37:52.536Z" },
+]
+
+[[package]]
+name = "rfc3986-validator"
+version = "0.1.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/da/88/f270de456dd7d11dcc808abfa291ecdd3f45ff44e3b549ffa01b126464d0/rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055", size = 6760, upload-time = "2019-10-28T16:00:19.144Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/9e/51/17023c0f8f1869d8806b979a2bffa3f861f26a3f1a66b094288323fba52f/rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9", size = 4242, upload-time = "2019-10-28T16:00:13.976Z" },
+]
+
+[[package]]
+name = "rfc3987-syntax"
+version = "1.1.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "lark" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/2c/06/37c1a5557acf449e8e406a830a05bf885ac47d33270aec454ef78675008d/rfc3987_syntax-1.1.0.tar.gz", hash = "sha256:717a62cbf33cffdd16dfa3a497d81ce48a660ea691b1ddd7be710c22f00b4a0d", size = 14239, upload-time = "2025-07-18T01:05:05.015Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/7e/71/44ce230e1b7fadd372515a97e32a83011f906ddded8d03e3c6aafbdedbb7/rfc3987_syntax-1.1.0-py3-none-any.whl", hash = "sha256:6c3d97604e4c5ce9f714898e05401a0445a641cfa276432b0a648c80856f6a3f", size = 8046, upload-time = "2025-07-18T01:05:03.843Z" },
+]
+
+[[package]]
+name = "rpds-py"
+version = "0.30.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/20/af/3f2f423103f1113b36230496629986e0ef7e199d2aa8392452b484b38ced/rpds_py-0.30.0.tar.gz", hash = "sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84", size = 69469, upload-time = "2025-11-30T20:24:38.837Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/86/81/dad16382ebbd3d0e0328776d8fd7ca94220e4fa0798d1dc5e7da48cb3201/rpds_py-0.30.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:68f19c879420aa08f61203801423f6cd5ac5f0ac4ac82a2368a9fcd6a9a075e0", size = 362099, upload-time = "2025-11-30T20:23:27.316Z" },
+ { url = "https://files.pythonhosted.org/packages/2b/60/19f7884db5d5603edf3c6bce35408f45ad3e97e10007df0e17dd57af18f8/rpds_py-0.30.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ec7c4490c672c1a0389d319b3a9cfcd098dcdc4783991553c332a15acf7249be", size = 353192, upload-time = "2025-11-30T20:23:29.151Z" },
+ { url = "https://files.pythonhosted.org/packages/bf/c4/76eb0e1e72d1a9c4703c69607cec123c29028bff28ce41588792417098ac/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f251c812357a3fed308d684a5079ddfb9d933860fc6de89f2b7ab00da481e65f", size = 384080, upload-time = "2025-11-30T20:23:30.785Z" },
+ { url = "https://files.pythonhosted.org/packages/72/87/87ea665e92f3298d1b26d78814721dc39ed8d2c74b86e83348d6b48a6f31/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac98b175585ecf4c0348fd7b29c3864bda53b805c773cbf7bfdaffc8070c976f", size = 394841, upload-time = "2025-11-30T20:23:32.209Z" },
+ { url = "https://files.pythonhosted.org/packages/77/ad/7783a89ca0587c15dcbf139b4a8364a872a25f861bdb88ed99f9b0dec985/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3e62880792319dbeb7eb866547f2e35973289e7d5696c6e295476448f5b63c87", size = 516670, upload-time = "2025-11-30T20:23:33.742Z" },
+ { url = "https://files.pythonhosted.org/packages/5b/3c/2882bdac942bd2172f3da574eab16f309ae10a3925644e969536553cb4ee/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e7fc54e0900ab35d041b0601431b0a0eb495f0851a0639b6ef90f7741b39a18", size = 408005, upload-time = "2025-11-30T20:23:35.253Z" },
+ { url = "https://files.pythonhosted.org/packages/ce/81/9a91c0111ce1758c92516a3e44776920b579d9a7c09b2b06b642d4de3f0f/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47e77dc9822d3ad616c3d5759ea5631a75e5809d5a28707744ef79d7a1bcfcad", size = 382112, upload-time = "2025-11-30T20:23:36.842Z" },
+ { url = "https://files.pythonhosted.org/packages/cf/8e/1da49d4a107027e5fbc64daeab96a0706361a2918da10cb41769244b805d/rpds_py-0.30.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:b4dc1a6ff022ff85ecafef7979a2c6eb423430e05f1165d6688234e62ba99a07", size = 399049, upload-time = "2025-11-30T20:23:38.343Z" },
+ { url = "https://files.pythonhosted.org/packages/df/5a/7ee239b1aa48a127570ec03becbb29c9d5a9eb092febbd1699d567cae859/rpds_py-0.30.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4559c972db3a360808309e06a74628b95eaccbf961c335c8fe0d590cf587456f", size = 415661, upload-time = "2025-11-30T20:23:40.263Z" },
+ { url = "https://files.pythonhosted.org/packages/70/ea/caa143cf6b772f823bc7929a45da1fa83569ee49b11d18d0ada7f5ee6fd6/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:0ed177ed9bded28f8deb6ab40c183cd1192aa0de40c12f38be4d59cd33cb5c65", size = 565606, upload-time = "2025-11-30T20:23:42.186Z" },
+ { url = "https://files.pythonhosted.org/packages/64/91/ac20ba2d69303f961ad8cf55bf7dbdb4763f627291ba3d0d7d67333cced9/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:ad1fa8db769b76ea911cb4e10f049d80bf518c104f15b3edb2371cc65375c46f", size = 591126, upload-time = "2025-11-30T20:23:44.086Z" },
+ { url = "https://files.pythonhosted.org/packages/21/20/7ff5f3c8b00c8a95f75985128c26ba44503fb35b8e0259d812766ea966c7/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:46e83c697b1f1c72b50e5ee5adb4353eef7406fb3f2043d64c33f20ad1c2fc53", size = 553371, upload-time = "2025-11-30T20:23:46.004Z" },
+ { url = "https://files.pythonhosted.org/packages/72/c7/81dadd7b27c8ee391c132a6b192111ca58d866577ce2d9b0ca157552cce0/rpds_py-0.30.0-cp314-cp314-win32.whl", hash = "sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed", size = 215298, upload-time = "2025-11-30T20:23:47.696Z" },
+ { url = "https://files.pythonhosted.org/packages/3e/d2/1aaac33287e8cfb07aab2e6b8ac1deca62f6f65411344f1433c55e6f3eb8/rpds_py-0.30.0-cp314-cp314-win_amd64.whl", hash = "sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950", size = 228604, upload-time = "2025-11-30T20:23:49.501Z" },
+ { url = "https://files.pythonhosted.org/packages/e8/95/ab005315818cc519ad074cb7784dae60d939163108bd2b394e60dc7b5461/rpds_py-0.30.0-cp314-cp314-win_arm64.whl", hash = "sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6", size = 222391, upload-time = "2025-11-30T20:23:50.96Z" },
+ { url = "https://files.pythonhosted.org/packages/9e/68/154fe0194d83b973cdedcdcc88947a2752411165930182ae41d983dcefa6/rpds_py-0.30.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:7e6ecfcb62edfd632e56983964e6884851786443739dbfe3582947e87274f7cb", size = 364868, upload-time = "2025-11-30T20:23:52.494Z" },
+ { url = "https://files.pythonhosted.org/packages/83/69/8bbc8b07ec854d92a8b75668c24d2abcb1719ebf890f5604c61c9369a16f/rpds_py-0.30.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a1d0bc22a7cdc173fedebb73ef81e07faef93692b8c1ad3733b67e31e1b6e1b8", size = 353747, upload-time = "2025-11-30T20:23:54.036Z" },
+ { url = "https://files.pythonhosted.org/packages/ab/00/ba2e50183dbd9abcce9497fa5149c62b4ff3e22d338a30d690f9af970561/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d08f00679177226c4cb8c5265012eea897c8ca3b93f429e546600c971bcbae7", size = 383795, upload-time = "2025-11-30T20:23:55.556Z" },
+ { url = "https://files.pythonhosted.org/packages/05/6f/86f0272b84926bcb0e4c972262f54223e8ecc556b3224d281e6598fc9268/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5965af57d5848192c13534f90f9dd16464f3c37aaf166cc1da1cae1fd5a34898", size = 393330, upload-time = "2025-11-30T20:23:57.033Z" },
+ { url = "https://files.pythonhosted.org/packages/cb/e9/0e02bb2e6dc63d212641da45df2b0bf29699d01715913e0d0f017ee29438/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a4e86e34e9ab6b667c27f3211ca48f73dba7cd3d90f8d5b11be56e5dbc3fb4e", size = 518194, upload-time = "2025-11-30T20:23:58.637Z" },
+ { url = "https://files.pythonhosted.org/packages/ee/ca/be7bca14cf21513bdf9c0606aba17d1f389ea2b6987035eb4f62bd923f25/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5d3e6b26f2c785d65cc25ef1e5267ccbe1b069c5c21b8cc724efee290554419", size = 408340, upload-time = "2025-11-30T20:24:00.2Z" },
+ { url = "https://files.pythonhosted.org/packages/c2/c7/736e00ebf39ed81d75544c0da6ef7b0998f8201b369acf842f9a90dc8fce/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:626a7433c34566535b6e56a1b39a7b17ba961e97ce3b80ec62e6f1312c025551", size = 383765, upload-time = "2025-11-30T20:24:01.759Z" },
+ { url = "https://files.pythonhosted.org/packages/4a/3f/da50dfde9956aaf365c4adc9533b100008ed31aea635f2b8d7b627e25b49/rpds_py-0.30.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:acd7eb3f4471577b9b5a41baf02a978e8bdeb08b4b355273994f8b87032000a8", size = 396834, upload-time = "2025-11-30T20:24:03.687Z" },
+ { url = "https://files.pythonhosted.org/packages/4e/00/34bcc2565b6020eab2623349efbdec810676ad571995911f1abdae62a3a0/rpds_py-0.30.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fe5fa731a1fa8a0a56b0977413f8cacac1768dad38d16b3a296712709476fbd5", size = 415470, upload-time = "2025-11-30T20:24:05.232Z" },
+ { url = "https://files.pythonhosted.org/packages/8c/28/882e72b5b3e6f718d5453bd4d0d9cf8df36fddeb4ddbbab17869d5868616/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:74a3243a411126362712ee1524dfc90c650a503502f135d54d1b352bd01f2404", size = 565630, upload-time = "2025-11-30T20:24:06.878Z" },
+ { url = "https://files.pythonhosted.org/packages/3b/97/04a65539c17692de5b85c6e293520fd01317fd878ea1995f0367d4532fb1/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:3e8eeb0544f2eb0d2581774be4c3410356eba189529a6b3e36bbbf9696175856", size = 591148, upload-time = "2025-11-30T20:24:08.445Z" },
+ { url = "https://files.pythonhosted.org/packages/85/70/92482ccffb96f5441aab93e26c4d66489eb599efdcf96fad90c14bbfb976/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:dbd936cde57abfee19ab3213cf9c26be06d60750e60a8e4dd85d1ab12c8b1f40", size = 556030, upload-time = "2025-11-30T20:24:10.956Z" },
+ { url = "https://files.pythonhosted.org/packages/20/53/7c7e784abfa500a2b6b583b147ee4bb5a2b3747a9166bab52fec4b5b5e7d/rpds_py-0.30.0-cp314-cp314t-win32.whl", hash = "sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0", size = 211570, upload-time = "2025-11-30T20:24:12.735Z" },
+ { url = "https://files.pythonhosted.org/packages/d0/02/fa464cdfbe6b26e0600b62c528b72d8608f5cc49f96b8d6e38c95d60c676/rpds_py-0.30.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3", size = 226532, upload-time = "2025-11-30T20:24:14.634Z" },
+]
+
[[package]]
name = "ruff"
version = "0.15.7"
@@ -982,6 +1866,29 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/07/39/338d9219c4e87f3e708f18857ecd24d22a0c3094752393319553096b98af/scipy-1.17.1-cp314-cp314t-win_arm64.whl", hash = "sha256:200e1050faffacc162be6a486a984a0497866ec54149a01270adc8a59b7c7d21", size = 25489165, upload-time = "2026-02-23T00:22:29.563Z" },
]
+[[package]]
+name = "seaborn"
+version = "0.13.2"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "matplotlib" },
+ { name = "numpy" },
+ { name = "pandas" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/86/59/a451d7420a77ab0b98f7affa3a1d78a313d2f7281a57afb1a34bae8ab412/seaborn-0.13.2.tar.gz", hash = "sha256:93e60a40988f4d65e9f4885df477e2fdaff6b73a9ded434c1ab356dd57eefff7", size = 1457696, upload-time = "2024-01-25T13:21:52.551Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/83/11/00d3c3dfc25ad54e731d91449895a79e4bf2384dc3ac01809010ba88f6d5/seaborn-0.13.2-py3-none-any.whl", hash = "sha256:636f8336facf092165e27924f223d3c62ca560b1f2bb5dff7ab7fad265361987", size = 294914, upload-time = "2024-01-25T13:21:49.598Z" },
+]
+
+[[package]]
+name = "send2trash"
+version = "2.1.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/c5/f0/184b4b5f8d00f2a92cf96eec8967a3d550b52cf94362dad1100df9e48d57/send2trash-2.1.0.tar.gz", hash = "sha256:1c72b39f09457db3c05ce1d19158c2cbef4c32b8bedd02c155e49282b7ea7459", size = 17255, upload-time = "2026-01-14T06:27:36.056Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/1c/78/504fdd027da3b84ff1aecd9f6957e65f35134534ccc6da8628eb71e76d3f/send2trash-2.1.0-py3-none-any.whl", hash = "sha256:0da2f112e6d6bb22de6aa6daa7e144831a4febf2a87261451c4ad849fe9a873c", size = 17610, upload-time = "2026-01-14T06:27:35.218Z" },
+]
+
[[package]]
name = "sentry-sdk"
version = "2.53.0"
@@ -1022,6 +1929,15 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/04/be/d09147ad1ec7934636ad912901c5fd7667e1c858e19d355237db0d0cd5e4/smmap-5.0.2-py3-none-any.whl", hash = "sha256:b30115f0def7d7531d22a0fb6502488d879e75b260a9db4d0819cfb25403af5e", size = 24303, upload-time = "2025-01-02T07:14:38.724Z" },
]
+[[package]]
+name = "soupsieve"
+version = "2.8.3"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/7b/ae/2d9c981590ed9999a0d91755b47fc74f74de286b0f5cee14c9269041e6c4/soupsieve-2.8.3.tar.gz", hash = "sha256:3267f1eeea4251fb42728b6dfb746edc9acaffc4a45b27e19450b676586e8349", size = 118627, upload-time = "2026-01-20T04:27:02.457Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/46/2c/1462b1d0a634697ae9e55b3cecdcb64788e8b7d63f54d923fcd0bb140aed/soupsieve-2.8.3-py3-none-any.whl", hash = "sha256:ed64f2ba4eebeab06cc4962affce381647455978ffc1e36bb79a545b91f45a95", size = 37016, upload-time = "2026-01-20T04:27:01.012Z" },
+]
+
[[package]]
name = "stable-baselines3"
version = "2.7.1"
@@ -1039,6 +1955,20 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/df/cc/a3038d3833f329dcd03b2dce8b778e4b41044caff88b48429473b8629623/stable_baselines3-2.7.1-py3-none-any.whl", hash = "sha256:b017e76dfe5ca0ce6eabb29e79c42e8c7e125d5862bfcd43ce04ec19732348d0", size = 188039, upload-time = "2025-12-05T11:22:00.819Z" },
]
+[[package]]
+name = "stack-data"
+version = "0.6.3"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "asttokens" },
+ { name = "executing" },
+ { name = "pure-eval" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/28/e3/55dcc2cfbc3ca9c29519eb6884dd1415ecb53b0e934862d3559ddcb7e20b/stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9", size = 44707, upload-time = "2023-09-30T13:58:05.479Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521, upload-time = "2023-09-30T13:58:03.53Z" },
+]
+
[[package]]
name = "sympy"
version = "1.14.0"
@@ -1051,6 +1981,20 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl", hash = "sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5", size = 6299353, upload-time = "2025-04-27T18:04:59.103Z" },
]
+[[package]]
+name = "terminado"
+version = "0.18.1"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "ptyprocess", marker = "os_name != 'nt'" },
+ { name = "pywinpty", marker = "os_name == 'nt' and sys_platform != 'linux'" },
+ { name = "tornado" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/8a/11/965c6fd8e5cc254f1fe142d547387da17a8ebfd75a3455f637c663fb38a0/terminado-0.18.1.tar.gz", hash = "sha256:de09f2c4b85de4765f7714688fff57d3e75bad1f909b589fde880460c753fd2e", size = 32701, upload-time = "2024-03-12T14:34:39.026Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/6a/9e/2064975477fdc887e47ad42157e214526dcad8f317a948dee17e1659a62f/terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0", size = 14154, upload-time = "2024-03-12T14:34:36.569Z" },
+]
+
[[package]]
name = "threadpoolctl"
version = "3.6.0"
@@ -1060,6 +2004,18 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/32/d5/f9a850d79b0851d1d4ef6456097579a9005b31fea68726a4ae5f2d82ddd9/threadpoolctl-3.6.0-py3-none-any.whl", hash = "sha256:43a0b8fd5a2928500110039e43a5eed8480b918967083ea48dc3ab9f13c4a7fb", size = 18638, upload-time = "2025-03-13T13:49:21.846Z" },
]
+[[package]]
+name = "tinycss2"
+version = "1.4.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "webencodings" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/7a/fd/7a5ee21fd08ff70d3d33a5781c255cbe779659bd03278feb98b19ee550f4/tinycss2-1.4.0.tar.gz", hash = "sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7", size = 87085, upload-time = "2024-10-24T14:58:29.895Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/e6/34/ebdc18bae6aa14fbee1a08b63c015c72b64868ff7dae68808ab500c492e2/tinycss2-1.4.0-py3-none-any.whl", hash = "sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289", size = 26610, upload-time = "2024-10-24T14:58:28.029Z" },
+]
+
[[package]]
name = "torch"
version = "2.10.0"
@@ -1103,6 +2059,32 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/66/4d/35352043ee0eaffdeff154fad67cd4a31dbed7ff8e3be1cc4549717d6d51/torch-2.10.0-cp314-cp314t-win_amd64.whl", hash = "sha256:71283a373f0ee2c89e0f0d5f446039bdabe8dbc3c9ccf35f0f784908b0acd185", size = 113995816, upload-time = "2026-01-21T16:22:05.312Z" },
]
+[[package]]
+name = "tornado"
+version = "6.5.5"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/f8/f1/3173dfa4a18db4a9b03e5d55325559dab51ee653763bb8745a75af491286/tornado-6.5.5.tar.gz", hash = "sha256:192b8f3ea91bd7f1f50c06955416ed76c6b72f96779b962f07f911b91e8d30e9", size = 516006, upload-time = "2026-03-10T21:31:02.067Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/59/8c/77f5097695f4dd8255ecbd08b2a1ed8ba8b953d337804dd7080f199e12bf/tornado-6.5.5-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:487dc9cc380e29f58c7ab88f9e27cdeef04b2140862e5076a66fb6bb68bb1bfa", size = 445983, upload-time = "2026-03-10T21:30:44.28Z" },
+ { url = "https://files.pythonhosted.org/packages/ab/5e/7625b76cd10f98f1516c36ce0346de62061156352353ef2da44e5c21523c/tornado-6.5.5-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:65a7f1d46d4bb41df1ac99f5fcb685fb25c7e61613742d5108b010975a9a6521", size = 444246, upload-time = "2026-03-10T21:30:46.571Z" },
+ { url = "https://files.pythonhosted.org/packages/b2/04/7b5705d5b3c0fab088f434f9c83edac1573830ca49ccf29fb83bf7178eec/tornado-6.5.5-cp39-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:e74c92e8e65086b338fd56333fb9a68b9f6f2fe7ad532645a290a464bcf46be5", size = 447229, upload-time = "2026-03-10T21:30:48.273Z" },
+ { url = "https://files.pythonhosted.org/packages/34/01/74e034a30ef59afb4097ef8659515e96a39d910b712a89af76f5e4e1f93c/tornado-6.5.5-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:435319e9e340276428bbdb4e7fa732c2d399386d1de5686cb331ec8eee754f07", size = 448192, upload-time = "2026-03-10T21:30:51.22Z" },
+ { url = "https://files.pythonhosted.org/packages/be/00/fe9e02c5a96429fce1a1d15a517f5d8444f9c412e0bb9eadfbe3b0fc55bf/tornado-6.5.5-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:3f54aa540bdbfee7b9eb268ead60e7d199de5021facd276819c193c0fb28ea4e", size = 448039, upload-time = "2026-03-10T21:30:53.52Z" },
+ { url = "https://files.pythonhosted.org/packages/82/9e/656ee4cec0398b1d18d0f1eb6372c41c6b889722641d84948351ae19556d/tornado-6.5.5-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:36abed1754faeb80fbd6e64db2758091e1320f6bba74a4cf8c09cd18ccce8aca", size = 447445, upload-time = "2026-03-10T21:30:55.541Z" },
+ { url = "https://files.pythonhosted.org/packages/5a/76/4921c00511f88af86a33de770d64141170f1cfd9c00311aea689949e274e/tornado-6.5.5-cp39-abi3-win32.whl", hash = "sha256:dd3eafaaeec1c7f2f8fdcd5f964e8907ad788fe8a5a32c4426fbbdda621223b7", size = 448582, upload-time = "2026-03-10T21:30:57.142Z" },
+ { url = "https://files.pythonhosted.org/packages/2c/23/f6c6112a04d28eed765e374435fb1a9198f73e1ec4b4024184f21faeb1ad/tornado-6.5.5-cp39-abi3-win_amd64.whl", hash = "sha256:6443a794ba961a9f619b1ae926a2e900ac20c34483eea67be4ed8f1e58d3ef7b", size = 448990, upload-time = "2026-03-10T21:30:58.857Z" },
+ { url = "https://files.pythonhosted.org/packages/b7/c8/876602cbc96469911f0939f703453c1157b0c826ecb05bdd32e023397d4e/tornado-6.5.5-cp39-abi3-win_arm64.whl", hash = "sha256:2c9a876e094109333f888539ddb2de4361743e5d21eece20688e3e351e4990a6", size = 448016, upload-time = "2026-03-10T21:31:00.43Z" },
+]
+
+[[package]]
+name = "traitlets"
+version = "5.14.3"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/eb/79/72064e6a701c2183016abbbfedaba506d81e30e232a68c9f0d6f6fcd1574/traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7", size = 161621, upload-time = "2024-04-19T11:11:49.746Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f", size = 85359, upload-time = "2024-04-19T11:11:46.763Z" },
+]
+
[[package]]
name = "triton"
version = "3.6.0"
@@ -1142,6 +2124,15 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl", hash = "sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1", size = 348521, upload-time = "2025-12-13T17:45:33.889Z" },
]
+[[package]]
+name = "uri-template"
+version = "1.3.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/31/c7/0336f2bd0bcbada6ccef7aaa25e443c118a704f828a0620c6fa0207c1b64/uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7", size = 21678, upload-time = "2023-06-21T01:49:05.374Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/e7/00/3fca040d7cf8a32776d3d81a00c8ee7457e00f80c649f1e4a863c8321ae9/uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363", size = 11140, upload-time = "2023-06-21T01:49:03.467Z" },
+]
+
[[package]]
name = "urllib3"
version = "2.6.3"
@@ -1180,6 +2171,42 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/27/6c/5847b4dda1dfd52630dac08711d4348c69ed657f0698fc2d949c7f7a6622/wandb-0.25.0-py3-none-win_arm64.whl", hash = "sha256:c6174401fd6fb726295e98d57b4231c100eca96bd17de51bfc64038a57230aaf", size = 21785298, upload-time = "2026-02-13T00:17:42.475Z" },
]
+[[package]]
+name = "wcwidth"
+version = "0.6.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/35/a2/8e3becb46433538a38726c948d3399905a4c7cabd0df578ede5dc51f0ec2/wcwidth-0.6.0.tar.gz", hash = "sha256:cdc4e4262d6ef9a1a57e018384cbeb1208d8abbc64176027e2c2455c81313159", size = 159684, upload-time = "2026-02-06T19:19:40.919Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/68/5a/199c59e0a824a3db2b89c5d2dade7ab5f9624dbf6448dc291b46d5ec94d3/wcwidth-0.6.0-py3-none-any.whl", hash = "sha256:1a3a1e510b553315f8e146c54764f4fb6264ffad731b3d78088cdb1478ffbdad", size = 94189, upload-time = "2026-02-06T19:19:39.646Z" },
+]
+
+[[package]]
+name = "webcolors"
+version = "25.10.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/1d/7a/eb316761ec35664ea5174709a68bbd3389de60d4a1ebab8808bfc264ed67/webcolors-25.10.0.tar.gz", hash = "sha256:62abae86504f66d0f6364c2a8520de4a0c47b80c03fc3a5f1815fedbef7c19bf", size = 53491, upload-time = "2025-10-31T07:51:03.977Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/e2/cc/e097523dd85c9cf5d354f78310927f1656c422bd7b2613b2db3e3f9a0f2c/webcolors-25.10.0-py3-none-any.whl", hash = "sha256:032c727334856fc0b968f63daa252a1ac93d33db2f5267756623c210e57a4f1d", size = 14905, upload-time = "2025-10-31T07:51:01.778Z" },
+]
+
+[[package]]
+name = "webencodings"
+version = "0.5.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/0b/02/ae6ceac1baeda530866a85075641cec12989bd8d31af6d5ab4a3e8c92f47/webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923", size = 9721, upload-time = "2017-04-05T20:21:34.189Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", size = 11774, upload-time = "2017-04-05T20:21:32.581Z" },
+]
+
+[[package]]
+name = "websocket-client"
+version = "1.9.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/2c/41/aa4bf9664e4cda14c3b39865b12251e8e7d239f4cd0e3cc1b6c2ccde25c1/websocket_client-1.9.0.tar.gz", hash = "sha256:9e813624b6eb619999a97dc7958469217c3176312b3a16a4bd1bc7e08a46ec98", size = 70576, upload-time = "2025-10-07T21:16:36.495Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/34/db/b10e48aa8fff7407e67470363eac595018441cf32d5e1001567a7aeba5d2/websocket_client-1.9.0-py3-none-any.whl", hash = "sha256:af248a825037ef591efbf6ed20cc5faa03d3b47b9e5a2230a529eeee1c1fc3ef", size = 82616, upload-time = "2025-10-07T21:16:34.951Z" },
+]
+
[[package]]
name = "xgboost"
version = "3.2.0"